Beispiel #1
0
 def test_generate_invar_problem(self):
     # PROBLEM = BASE STEP & INDUCTION
     for prop in prop_database():
         expr    = utils.make_nnf_boolean_wff(prop.expr)
         problem = invarspec.generate_invar_problem(self.fsm, expr)
     
         manual  = (invarspec.generate_base_step(self.fsm, expr) & 
                    invarspec.generate_inductive_step(self.fsm, expr))
        
         self.assertEqual(problem.to_cnf().vars_list, manual.to_cnf().vars_list)
Beispiel #2
0
    def test_generate_invar_problem(self):
        # PROBLEM = BASE STEP & INDUCTION
        for prop in prop_database():
            expr = utils.make_nnf_boolean_wff(prop.expr)
            problem = invarspec.generate_invar_problem(self.fsm, expr)

            manual = (invarspec.generate_base_step(self.fsm, expr)
                      & invarspec.generate_inductive_step(self.fsm, expr))

            self.assertEqual(problem.to_cnf().vars_list,
                             manual.to_cnf().vars_list)
Beispiel #3
0
 def test_generate_base_step(self):
     # BASE STEP = (I0 -> P0 )  
     for prop in prop_database():
         expr  = utils.make_nnf_boolean_wff(prop.expr)
         gen   = invarspec.generate_base_step(self.fsm, expr)
     
         # 
         model = BmcModel()
         i0    = model.init[0] & model.invar[0]
         # recall: the prop has to be shifted to time 0
         p0    = self.fsm.encoding.shift_to_time(expr.to_be(self.fsm.encoding), 0)
         manual= i0.imply(p0)
         self.assertEqual(gen.to_cnf().vars_list, manual.to_cnf().vars_list)
Beispiel #4
0
    def test_generate_base_step(self):
        # BASE STEP = (I0 -> P0 )
        for prop in prop_database():
            expr = utils.make_nnf_boolean_wff(prop.expr)
            gen = invarspec.generate_base_step(self.fsm, expr)

            #
            model = BmcModel()
            i0 = model.init[0] & model.invar[0]
            # recall: the prop has to be shifted to time 0
            p0 = self.fsm.encoding.shift_to_time(expr.to_be(self.fsm.encoding),
                                                 0)
            manual = i0.imply(p0)
            self.assertEqual(gen.to_cnf().vars_list, manual.to_cnf().vars_list)