Пример #1
0
def reverse_join_concrete_clauses(state,join_of,clauses=None):
    if clauses == None:
        clauses = state.clauses
    for s in join_of:
        if not clauses_imply(and_clauses(s.clauses,clauses),false_clauses()):
            return (and_clauses(s.clauses,clauses),s)
    pre = or_clauses(*[s.clauses for s in join_of])
    itp = interpolant(pre,clauses,state.domain.functions)
    if itp:
        raise UnsatCoreWithInterpolant(*itp)
    raise IvyError(None,"decision procedure incompleteness")
Пример #2
0
def reverse_join_concrete_clauses(state, join_of, clauses=None):
    if clauses == None:
        clauses = state.clauses
    for s in join_of:
        if not clauses_imply(and_clauses(s.clauses, clauses), false_clauses()):
            return (and_clauses(s.clauses, clauses), s)
    pre = or_clauses(*[s.clauses for s in join_of])
    itp = interpolant(pre, clauses, state.domain.functions)
    if itp:
        raise UnsatCoreWithInterpolant(*itp)
    raise IvyError(None, "decision procedure incompleteness")