def split_logic_conjunction(ast):
    """Splits a top-level logical conjunction of expressions into sub-expressions.

    Args:
        ast: The AST dict.

    Returns:
        The list of sub-expressions.
    """
    terms = []
    ast = ast["expr"]
    if "op" not in ast:
        terms.insert(0, ast)
        return terms

    while ast["op"] == "LogAnd":
        terms.insert(0, ast["right"])
        ast = ast["left"]
    terms.insert(0, ast)
    return terms