def test_problem_02(self):
     prover = Prover()
     prover.add_formula('if(K, H)')
     prover.add_formula('if(H, L)')
     prover.add_formula('if(L, M)')
     prover.add_goal('if(K, M)')
     self.assertTrue(prover.run_prover())
 def test_problem_15(self):
     prover = Prover()
     prover.add_formula("if(or(not(A), B), and(C, D))")
     prover.add_formula("not(or(A, E))")
     prover.add_formula("if(F, not(D))")
     prover.add_goal("not(F)")
     self.assertTrue(prover.run_prover())
 def test_problem_17(self):
     prover = Prover()
     prover.add_formula("and(A, and(B, C))")
     prover.add_formula("if(A, or(D, E))")
     prover.add_formula("if(B, or(D, F))")
     prover.add_goal("or(D, and(E, F))")
     self.assertTrue(prover.run_prover())
 def test_problem_06(self):
     prover = Prover()
     prover.add_formula("or(A, and(B, C))")
     prover.add_formula("if(A, D)")
     prover.add_formula("if(D, C)")
     prover.add_goal("C")
     self.assertTrue(prover.run_prover())
 def test_problem_16(self):
     prover = Prover()
     prover.add_formula('if(S, T)')
     prover.add_formula('if(S, not(T))')
     prover.add_formula('if(not(T), S)')
     prover.add_goal('or(S, not(T))')
     self.assertFalse(prover.run_prover())
 def test_problem_15(self):
     prover = Prover()
     prover.add_formula('if(L, M)')
     prover.add_formula('if(M, N)')
     prover.add_formula('if(N, L)')
     prover.add_goal('or(L, N)')
     self.assertFalse(prover.run_prover())
Example #7
0
 def test_problem_15(self):
     prover = Prover()
     prover.add_formula("forall(x,forall(y,forall(z,if(and(L(x,y),L(y,z)),"
                        "L(x,z)))))")
     prover.add_formula("forall(x,forall(y,if(L(x,y),L(y,x))))")
     prover.add_goal("forall(x,L(x,x))")
     self.assertFalse(prover.run_prover())
 def test_problem_03(self):
     prover = Prover()
     prover.add_formula('not(iff(A, B))')
     prover.add_formula('not(A)')
     prover.add_formula('not(B)')
     prover.add_goal('and(C, not(C))')
     self.assertTrue(prover.run_prover())
Example #9
0
 def test_problem_04(self):
     prover = Prover()
     prover.add_formula("exists(x,and(A(x),not(B(x))))")
     prover.add_formula("exists(x,and(A(x),not(C(x))))")
     prover.add_formula("exists(x,and(not(B(x)),D(x)))")
     prover.add_goal("exists(x,and(and(A(x),not(B(x))),D(x)))")
     self.assertFalse(prover.run_prover())
 def test_problem_17(self):
     prover = Prover()
     prover.add_formula('if(W, X)')
     prover.add_formula('if(X, W)')
     prover.add_formula('if(X, Y)')
     prover.add_formula('if(Y, X)')
     prover.add_goal('iff(W, Y)')
     self.assertTrue(prover.run_prover())
Example #11
0
 def test_get_proof(self):
     prover = Prover()
     prover.add_formula("and(a,b)")
     prover.add_goal("a")
     prover.run_prover()
     proof = prover.get_proof()
     expected = ['  1)    a                                                    '
                 '                    Assumption',
                 '  3)    ~a                                                   '
                 '                    Assumption',
                 '  4)    $$FALSE                                              '
                 '                    resolve(1,3)']
     self.assertEqual(expected, proof)
 def test_problem_15(self):
     prover = Prover()
     prover.add_formula('and(B, or(H, Z))')
     prover.add_formula('not(if(Z, K))')
     prover.add_formula('if(iff(B, Z), not(Z))')
     prover.add_formula('not(K)')
     prover.add_goal('and(M, N)')
     self.assertTrue(prover.run_prover())
 def test_problem_20(self):
     prover = Prover()
     prover.add_formula('or(not(A), R)')
     prover.add_formula('not(and(N, not(C)))')
     prover.add_formula('if(R, C)')
     prover.add_formula('if(C, not(N))')
     prover.add_goal('or(A, C)')
     self.assertFalse(prover.run_prover())
 def test_problem_19(self):
     prover = Prover()
     prover.add_formula("if(if(R, M), L)")
     prover.add_formula("if(or(N, S), and(M, T))")
     prover.add_formula("if(if(P, R), L)")
     prover.add_formula("if(or(T, K), not(N))")
     prover.add_goal("L")
     self.assertTrue(prover.run_prover())
Example #15
0
 def test_problem_18(self):
     self.skipTest('Should work')
     prover = Prover()
     prover.add_formula("forall(x,if(exists(y,and(A(y),B(x,y))),C(x)))")
     prover.add_formula(
         "exists(y,and(D(y),exists(x,and(F(x),and(G(x),B(y,x))))))")
     prover.add_formula("forall(x,if(F(x),A(x)))")
     prover.add_formula(
         "if(exists(x,and(C(x),D(x))),if(exists(y,and(D(y),exists(z,B(y,z)))),forall(x,F(x))))"
     )
     prover.add_goal("forall(x,A(x))")
     self.assertTrue(prover.run_prover())
 def test_problem_01(self):
     prover = Prover()
     prover.add_formula('if(A, and(B, C))')
     prover.add_formula('iff(C, B)')
     prover.add_formula('not(C)')
     prover.add_goal('not(A)')
     self.assertTrue(prover.run_prover())
 def test_problem_11(self):
     prover = Prover()
     prover.add_formula("and(or(A, B), not(C))")
     prover.add_formula("if(not(C), and(D, not(A)))")
     prover.add_formula("if(B, or(A, E))")
     prover.add_goal("or(E, F)")
     self.assertTrue(prover.run_prover())
 def test_problem_13(self):
     prover = Prover()
     prover.add_formula("if(A, B)")
     prover.add_formula("if(not(C), not(B))")
     prover.add_formula("iff(C, D)")
     prover.add_goal("if(A, D)")
     self.assertTrue(prover.run_prover())
 def test_problem_12(self):
     prover = Prover()
     prover.add_formula("if(G, and(H, not(K)))")
     prover.add_formula("iff(H, and(L, I))")
     prover.add_formula("or(not(I), K)")
     prover.add_goal("not(G)")
     self.assertTrue(prover.run_prover())
 def test_problem_11(self):
     prover = Prover()
     prover.add_formula("if(A, not(if(B, C)))")
     prover.add_formula("if(and(D, B), C)")
     prover.add_formula("D")
     prover.add_goal("not(A)")
     self.assertTrue(prover.run_prover())
 def test_problem_12(self):
     prover = Prover()
     prover.add_formula("if(A, B)")
     prover.add_formula("if(not(B), not(C))")
     prover.add_formula("not(and(not(C), not(A)))")
     prover.add_goal("B")
     self.assertTrue(prover.run_prover())
 def test_problem_19(self):
     prover = Prover()
     prover.add_formula('if(A, B)')
     prover.add_formula('if(and(A, B), C)')
     prover.add_formula('if(A, if(C, D))')
     prover.add_goal('if(A, D)')
     self.assertTrue(prover.run_prover())
 def test_problem_10(self):
     prover = Prover()
     prover.add_formula("or(not(A), B)")
     prover.add_formula("or(A, C)")
     prover.add_formula("if(not(D), not(C))")
     prover.add_goal("or(B, D)")
     self.assertTrue(prover.run_prover())
 def test_problem_14(self):
     prover = Prover()
     prover.add_formula('if(G, H)')
     prover.add_formula('iff(R, G)')
     prover.add_formula('or(not(H), G)')
     prover.add_goal('iff(R, H)')
     self.assertTrue(prover.run_prover())
 def test_problem_18(self):
     prover = Prover()
     prover.add_formula("if(and(A, B), C)")
     prover.add_formula("and(not(C), B)")
     prover.add_formula("if(or(not(A), D), E)")
     prover.add_goal("E")
     self.assertTrue(prover.run_prover())
 def test_problem_19(self):
     prover = Prover()
     prover.add_formula('or(A, not(and(B, C)))')
     prover.add_formula('not(B)')
     prover.add_formula('not(or(A, C))')
     prover.add_goal('A')
     self.assertFalse(prover.run_prover())
 def test_problem_14(self):
     prover = Prover()
     prover.add_formula('or(iff(M, K), not(and(K, D)))')
     prover.add_formula('if(not(M), not(K))')
     prover.add_formula('if(not(D), not(and(K, D)))')
     prover.add_goal('M')
     self.assertFalse(prover.run_prover())
 def test_problem_11(self):
     prover = Prover()
     prover.add_formula('if(M, if(K, B))')
     prover.add_formula('if(not(K), not(M))')
     prover.add_formula('and(L, M)')
     prover.add_goal('B')
     self.assertTrue(prover.run_prover())
 def test_problem_09(self):
     prover = Prover()
     prover.add_formula("or(A, B)")
     prover.add_formula("or(not(B), C)")
     prover.add_formula("not(C)")
     prover.add_goal("A")
     self.assertTrue(prover.run_prover())
 def test_problem_05(self):
     prover = Prover()
     prover.add_formula('if(R, Q)')
     prover.add_formula('not(and(T, not(S)))')
     prover.add_formula('or(not(Q), not(S))')
     prover.add_goal('or(not(R), not(T))')
     self.assertTrue(prover.run_prover())