Esempio n. 1
0
    def _smtlib_cnf(self, filename, logic, res_is_sat):
        reset_env()
        conv = CNFizer()
        smtfile = os.path.join(SMTLIB_DIR, filename)
        assert os.path.exists(smtfile)

        expr = get_formula_fname(smtfile)
        if not logic.quantifier_free:
            with self.assertRaises(NotImplementedError):
                conv.convert_as_formula(expr)
            return
        cnf = conv.convert_as_formula(expr)
        self.assertValid(Implies(cnf, expr), logic=logic)

        res = is_sat(cnf, logic=logic)
        self.assertEqual(res, res_is_sat)
Esempio n. 2
0
    def _smtlib_cnf(self, filename, logic, res_is_sat):
        reset_env()
        conv = CNFizer()
        smtfile = os.path.join(SMTLIB_DIR, filename)
        assert os.path.exists(smtfile)

        expr = get_formula_fname(smtfile)
        if not logic.quantifier_free:
            with self.assertRaises(NotImplementedError):
                conv.convert_as_formula(expr)
            return
        cnf = conv.convert_as_formula(expr)
        self.assertValid(Implies(cnf, expr), logic=logic)

        res = is_sat(cnf, logic=logic)
        self.assertEqual(res, res_is_sat)
Esempio n. 3
0
    def test_implies(self):
        a, b, c, d = (Symbol(x) for x in "abcd")
        f = Implies(Iff(a, b), Iff(c, d))

        conv = CNFizer()
        cnf = conv.convert_as_formula(f)

        self.assertValid(Implies(cnf, f), logic=QF_BOOL)
Esempio n. 4
0
    def test_implies(self):
        a,b,c,d = (Symbol(x) for x in "abcd")
        f = Implies(Iff(a, b), Iff(c, d))

        conv = CNFizer()
        cnf = conv.convert_as_formula(f)

        self.assertValid(Implies(cnf, f), logic=QF_BOOL)
Esempio n. 5
0
    def do_examples(self, logic):
        conv = CNFizer()
        for example in EXAMPLE_FORMULAS:
            if example.logic != logic:
                continue
            cnf = conv.convert_as_formula(example.expr)

            self.assertValid(Implies(cnf, example.expr), logic=logic)

            res = is_sat(cnf, logic=logic)
            self.assertEqual(res, example.is_sat)
Esempio n. 6
0
    def do_examples(self, logic):
        conv = CNFizer()
        for example in get_example_formulae():
            if example.logic != logic:
                continue
            cnf = conv.convert_as_formula(example.expr)

            self.assertValid(Implies(cnf, example.expr), logic=logic)

            res = is_sat(cnf, logic=logic)
            self.assertEqual(res, example.is_sat)