Example #1
0
def refuted_goal(goal):
    from z3_utils import z3_implies

    axioms = _ivy_interp.background_theory()
    premise = (and_clauses(axioms, goal.node.clauses)).to_formula()
    f = Not(goal.formula.to_formula())
    return z3_implies(premise, f)
Example #2
0
def try_conjectures(s):
    axioms = _analysis_session.analysis_state.ivy_interp.background_theory()
    premise = (and_clauses(axioms, s.clauses)).to_formula()
    return [
        ('conj: {}'.format(conj), try_conjecture, conj)
        for conj in _analysis_session.analysis_state.ivy_interp.conjs
        if not z3_implies(premise, conj.to_formula())
    ]
Example #3
0
def alpha(concept_domain, state, cache=None):
    """
    Right now, state is just a plain formula

    This is a *very* unoptimized implementation
    """
    if z3_implies(state, Or()):
        return [(tag, True) for tag, formula in concept_domain.get_facts()]

    if cache is None:
        cache = dict()
    facts = concept_domain.get_facts()
    result = []
    for tag, formula in facts:
        if tag in cache:
            value = cache[tag]
        else:
            # assert len(cache) == 0, tag
            value = z3_implies(state, formula)
        result.append((tag, value))
    return result
Example #4
0
def refuted_goal(goal):
    from z3_utils import z3_implies
    axioms = _ivy_interp.background_theory()
    premise = (and_clauses(axioms, goal.node.clauses)).to_formula()
    f = Not(goal.formula.to_formula())
    return z3_implies(premise, f)
 def is_witness(c):
     try:
         return z3_implies(f, Eq(x, c))
     except SortError:
         return False
Example #6
0
 def is_witness(c):
     try:
         return z3_implies(f, Eq(x, c))
     except SortError:
         return False
def try_conjectures(s):
    axioms = _analysis_session.analysis_state.ivy_interp.background_theory()
    premise = (and_clauses(axioms, s.clauses)).to_formula()
    return [('conj: {}'.format(conj), try_conjecture, conj)
            for conj in _analysis_session.analysis_state.ivy_interp.conjs
            if not z3_implies(premise, conj.to_formula())]