Esempio n. 1
0
 def __init__(self, model):
     self.model = model  # should be an IvyModel instance
     self.ivy_ag = model.ivy_ag
     self.ivy_interp = model.ivy_interp
     self.goal_stack = ProofGoalStack()
     self.conjectures = []
     # initialise an AnalysisGraph for the crg
     self.crg = AnalysisGraph(self.ivy_ag.domain, self.ivy_ag.pvars)
     self.crg.actions = self.ivy_ag.actions
Esempio n. 2
0
 def try_property(self,prop=None):
     if prop == None:
         udc = false_properties()
         udc_text = [str(prop) for prop in udc]
         msg = "Choose a property to see counterexample:"
         cmd = lambda idx: self.try_property(udc[idx])
         self.listbox_dialog(msg,udc_text,command=cmd)
     else:
         print "type(prop) = {}".format(type(prop))
         if hasattr(prop,'lineno'):
             filename,lineno = prop.lineno
             self.browse(filename,lineno)
         dual = dual_clauses(formula_to_clauses(prop.formula))
         ag = AnalysisGraph(initializer=top_alpha)
         oag = ag.bmc(ag.states[0],dual)
         self.add(oag)
Esempio n. 3
0
 def reachable_tree(self):
     if  not hasattr(self,'_reachable_tree'):
         self._reachable_tree = AnalysisGraph(self.g.domain,self.g.pvars)
         for s in self.g.domain.unders[0:1]:
             self._reachable_tree.add(s)
     return self._reachable_tree
Esempio n. 4
0
        return sys.modules[__name__]
    return __import__('ivy.ivy_ui_' + defui).__dict__['ivy_ui_' + defui]
    
def get_default_ui_class():
    mod = get_default_ui_module()
    return mod.IvyUI

def get_default_ui_compile_kwargs():
    mod = get_default_ui_module()
    return mod.compile_kwargs
    


if __name__ == '__main__':
    d = ShapeDomain(["x", "y", "t"], True)
    ag = AnalysisGraph(d)
    s = State(d, to_clauses("[[~n(V1,V2)],[~=(x,y)],[~r_x(y)],[~r_y(x)]]")) # start with empty next relation
    ag.add(s)
    ag.execute("alloc t")
    ag.execute("t.n := x")
    s1 = ag.execute("x := t")
    ag.execute("alloc t")
    ag.execute("t.n := x")
    ag.execute("x := t")
    ag.join(s1)
    ag.execute("alloc t")
    ag.execute("t.n := y")
    ag.execute("y := t")
    ag.display()

 def new_ag(self):
     from ivy_art import AnalysisGraph
     ag = AnalysisGraph()
     return ag