def test_bdd_simplify(self): s = BddSimplifier() for (f, _, _, logic) in get_example_formulae(): if logic == QF_BOOL: fprime = s.simplify(f) self.assertValid(Iff(fprime, f)) s = BddSimplifier() try: s.validate_simplifications = True except ValueError: self.assertTrue(len(self.env.factory.all_solvers())==1) for (f, _, _, logic) in get_example_formulae(): if logic == QF_BOOL: fprime = s.simplify(f) self.assertValid(Iff(fprime, f))
def test_bdd_simplify_bool_abs(self): s = BddSimplifier() for (f, _, _, logic) in get_example_formulae(): if not logic.theory.linear: continue if logic != QF_BOOL: with self.assertRaises(ConvertExpressionError): s.simplify(f) s = BddSimplifier(bool_abstraction=True) for (f, _, _, logic) in get_example_formulae(): if logic.quantifier_free: fprime = s.simplify(f) self.assertValid(Iff(fprime, f)) s = BddSimplifier(bool_abstraction=True) f = And(Equals(Plus(Int(5), Int(1)), Int(6)), Symbol("x")) fs = s.simplify(f) self.assertEqual(fs, Symbol("x"))
def test_bdd_simplify(self): s = BddSimplifier() for (f, _, _, logic) in get_example_formulae(): if logic == QF_BOOL: fprime = s.simplify(f) self.assertValid(Iff(fprime, f)) s = BddSimplifier() try: s.validate_simplifications = True except ValueError: self.assertTrue(len(self.env.factory.all_solvers()) == 1) for (f, _, _, logic) in get_example_formulae(): if logic == QF_BOOL: fprime = s.simplify(f) self.assertValid(Iff(fprime, f))