Beispiel #1
0
def diagram(state,clauses,implied=false_clauses(),extra_axioms=None,weaken=True):
    """ Return the diagram of a single model of clauses in state or
    None if clauses are unsat.
    """
    axioms = state.domain.background_theory(state.in_scope)
    if extra_axioms:
        axioms = and_clauses(axioms,extra_axioms)
    under = clauses_model_to_diagram(clauses,is_skolem,implied,axioms=axioms,weaken=weaken)
    return under
Beispiel #2
0
def diagram(state,clauses,implied=false_clauses(),extra_axioms=None,weaken=True):
    """ Return the diagram of a single model of clauses in state or
    None if clauses are unsat.
    """
    axioms = state.domain.background_theory(state.in_scope)
    if extra_axioms:
        axioms = and_clauses(axioms,extra_axioms)
    under = clauses_model_to_diagram(clauses,is_skolem,implied,axioms=axioms,weaken=weaken)
    return under
Beispiel #3
0
def get_diagram(goal, weaken=False):
    axioms = _ivy_interp.background_theory()
    d = ivy_solver.clauses_model_to_diagram(
        and_clauses(goal.node.clauses, goal.formula),
        is_skolem,
        #None,
        false_clauses(),
        axioms=axioms,
        weaken=weaken,
    )
    return goal_at_arg_node(d, goal.node)
Beispiel #4
0
def get_diagram(goal, weaken=False):
    axioms = _ivy_interp.background_theory()
    d = ivy_solver.clauses_model_to_diagram(
        and_clauses(goal.node.clauses, goal.formula),
        is_skolem,
        # None,
        false_clauses(),
        axioms=axioms,
        weaken=weaken,
    )
    return goal_at_arg_node(d, goal.node)
Beispiel #5
0
 def diagram(self):
     from ivy_solver import clauses_model_to_diagram, get_model_clauses
     from ivy_transrel import is_skolem, reverse_image
     if not self.have_cti:
         if self.check_inductiveness() or len(self.g.states) != 2:
             return
     conj = self.current_conjecture
     post = ilu.dual_clauses(conj) if conj != None else ilu.true_clauses()
     pre = self.g.states[0].clauses
     axioms = im.module.background_theory()
     rev = ilu.and_clauses(reverse_image(post,axioms,self.g.states[1].update), axioms)
     clauses = ilu.and_clauses(pre,rev)
     mod = get_model_clauses(clauses)
     assert mod != None
     diag = clauses_model_to_diagram(rev,is_skolem,model=mod)
     self.g.states[0].clauses = diag
     self.view_state(self.g.states[0], reset=True)
     self.show_used_relations(diag,both=True)
Beispiel #6
0
 def diagram(self):
     from ivy_solver import clauses_model_to_diagram, get_model_clauses
     from ivy_transrel import is_skolem, reverse_image
     if not self.have_cti:
         if self.check_inductiveness() or len(self.g.states) != 2:
             return
     conj = self.current_conjecture
     post = ilu.dual_clauses(conj) if conj != None else ilu.true_clauses()
     pre = self.g.states[0].clauses
     axioms = im.module.background_theory()
     rev = ilu.and_clauses(
         reverse_image(post, axioms, self.g.states[1].update), axioms)
     clauses = ilu.and_clauses(pre, rev)
     mod = get_model_clauses(clauses)
     assert mod != None
     diag = clauses_model_to_diagram(rev, is_skolem, model=mod)
     self.g.states[0].clauses = diag
     self.view_state(self.g.states[0], reset=True)
     self.show_used_relations(diag, both=True)