human
Here's a good function header given the following:
I wrote the below code

    clauses = tuple(clauses)
    if sat(clauses):
        raise ValueError(u'Clauses    are    not    unsatisfiable')
    def split(S):
        u'\n                                Split    S    into    two    equal    parts\n                                '
        S = tuple(S)
        L = len(S)
        return (S[:(L // 2)], S[(L // 2):])
    def minimal_unsat(clauses, include=()):
        u'\n                                Return    a    minimal    subset    A    of    clauses    such    that    A    +    include    is\n                                unsatisfiable.\n\n                                Implicitly    assumes    that    clauses    +    include    is    unsatisfiable.\n                                '
        global L, d
        if (len(clauses) == 1):
            return clauses
        (A, B) = split(clauses)
        if (not sat((A + include))):
            d += len(B)
            return minimal_unsat(A, include)
        if (not sat((B + include))):
            d += len(A)
            return minimal_unsat(B, include)
        Astar = minimal_unsat(A, (B + include))
        Bstar = minimal_unsat(B, (Astar + include))
        return (Astar + Bstar)
    global L, d
    L = len(clauses)
    d = 0
    ret = minimal_unsat(clauses)
    return ret

What's a good function header?
assistant
#Here's a good function header.

def minimal_unsatisfiable_subset(clauses, sat):