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)
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)
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)