예제 #1
0
파일: test_back.py 프로젝트: 0Chuzz/pysmt
        f = GT(Plus(r, Real(1)), Plus(s, Real(1)))

        term = msat.converter.convert(f)
        res = msat.converter.back(term)
        self.assertFalse(f == res)


    def do_back(self, solver_name):
        for formula, _, _, logic in get_example_formulae():
            if logic.quantifier_free:
                try:
                    s = Solver(name=solver_name, logic=logic)
                    term = s.converter.convert(formula)
                    res = s.converter.back(term)
                    self.assertValid(Iff(formula, res), logic=logic,
                                     solver_name=solver_name)
                except NoSolverAvailableError:
                    pass

    @skipIfSolverNotAvailable("msat")
    def test_msat_back_formulae(self):
        self.do_back("msat")

    @skipIfSolverNotAvailable("z3")
    def test_z3_back_formulae(self):
        self.do_back("z3")


if __name__ == '__main__':
    main()
예제 #2
0
                   "(define-fun-rec f ((a A)) B a)",
                   "(define-fun-rec g ((a A)) B (g a))",
                   """(define-funs-rec ((h ((a A)) B) (i ((a A)) B) )
                                       ( (i a) (h a))
                   )
                   """,
                   "(define-sort A () B)",
                   "(define-sort A (B C) (Array B C))",
                   "(echo \"hello world\")",
                   "(exit)",
                   "(get-assertions)",
                   "(get-assignment)",
                   "(get-info :name)",
                   "(get-model)",
                   "(get-option :keyword)",
                   "(get-proof)",
                   "(get-unsat-assumptions)",
                   "(get-unsat-core)",
                   "(get-value (x y z))",
                   "(pop 42)",
                   "(push 42)",
                   "(reset)",
                   "(reset-assertions)",
                   "(set-info :number 42)",
                   "(set-logic QF_LIA)",
                   "(set-option :produce-models true)",
               ]

if __name__ == "__main__":
    main()