0.07/0.12 % Problem : theBenchmark.p : TPTP v0.0.0. Released v0.0.0. 0.07/0.13 % Command : twee %s --tstp --casc --quiet --explain-encoding --conditional-encoding if --smaller --drop-non-horn 0.13/0.35 % Computer : n003.cluster.edu 0.13/0.35 % Model : x86_64 x86_64 0.13/0.35 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz 0.13/0.35 % Memory : 8042.1875MB 0.13/0.35 % OS : Linux 3.10.0-693.el7.x86_64 0.13/0.35 % CPULimit : 180 0.13/0.35 % DateTime : Thu Aug 29 11:45:47 EDT 2019 0.13/0.35 % CPUTime : 0.20/0.41 % SZS status Unsatisfiable 0.20/0.41 0.20/0.41 % SZS output start Proof 0.20/0.41 Take the following subset of the input axioms: 0.20/0.41 fof(and_definition, axiom, ![X, Y]: and(X, Y)=not(or(not(X), not(Y)))). 0.20/0.41 fof(and_star_commutativity, axiom, ![X, Y]: and_star(X, Y)=and_star(Y, X)). 0.20/0.41 fof(and_star_definition, axiom, ![X, Y]: not(or(not(X), not(Y)))=and_star(X, Y)). 0.20/0.41 fof(false_definition, axiom, not(truth)=falsehood). 0.20/0.41 fof(or_commutativity, axiom, ![X, Y]: or(X, Y)=or(Y, X)). 0.20/0.41 fof(or_definition, axiom, ![X, Y]: or(X, Y)=implies(not(X), Y)). 0.20/0.41 fof(prove_alternative_wajsberg_axiom, negated_conjecture, and_star(xor(and_star(xor(truth, y), x), truth), x)!=and_star(xor(and_star(xor(truth, x), y), truth), y)). 0.20/0.41 fof(wajsberg_1, axiom, ![X]: implies(truth, X)=X). 0.20/0.41 fof(wajsberg_2, axiom, ![X, Y, Z]: truth=implies(implies(X, Y), implies(implies(Y, Z), implies(X, Z)))). 0.20/0.41 fof(wajsberg_3, axiom, ![X, Y]: implies(implies(Y, X), X)=implies(implies(X, Y), Y)). 0.20/0.41 fof(wajsberg_4, axiom, ![X, Y]: truth=implies(implies(not(X), not(Y)), implies(Y, X))). 0.20/0.41 fof(xor_commutativity, axiom, ![X, Y]: xor(X, Y)=xor(Y, X)). 0.20/0.41 fof(xor_definition, axiom, ![X, Y]: or(and(X, not(Y)), and(not(X), Y))=xor(X, Y)). 0.20/0.41 0.20/0.41 Now clausify the problem and encode Horn clauses using encoding 3 of 0.20/0.41 http://www.cse.chalmers.se/~nicsma/papers/horn.pdf. 0.20/0.41 We repeatedly replace C & s=t => u=v by the two clauses: 0.20/0.41 fresh(y, y, x1...xn) = u 0.20/0.41 C => fresh(s, t, x1...xn) = v 0.20/0.41 where fresh is a fresh function symbol and x1..xn are the free 0.20/0.41 variables of u and v. 0.20/0.41 A predicate p(X) is encoded as p(X)=true (this is sound, because the 0.20/0.41 input problem has no model of domain size 1). 0.20/0.41 0.20/0.41 The encoding turns the above axioms into the following unit equations and goals: 0.20/0.41 0.20/0.41 Axiom 1 (wajsberg_4): truth = implies(implies(not(X), not(Y)), implies(Y, X)). 0.20/0.41 Axiom 2 (wajsberg_2): truth = implies(implies(X, Y), implies(implies(Y, Z), implies(X, Z))). 0.20/0.41 Axiom 3 (wajsberg_3): implies(implies(X, Y), Y) = implies(implies(Y, X), X). 0.20/0.41 Axiom 4 (wajsberg_1): implies(truth, X) = X. 0.20/0.41 Axiom 5 (and_definition): and(X, Y) = not(or(not(X), not(Y))). 0.20/0.41 Axiom 6 (or_definition): or(X, Y) = implies(not(X), Y). 0.20/0.41 Axiom 7 (or_commutativity): or(X, Y) = or(Y, X). 0.20/0.41 Axiom 8 (xor_commutativity): xor(X, Y) = xor(Y, X). 0.20/0.41 Axiom 9 (xor_definition): or(and(X, not(Y)), and(not(X), Y)) = xor(X, Y). 0.20/0.41 Axiom 10 (and_star_definition): not(or(not(X), not(Y))) = and_star(X, Y). 0.20/0.41 Axiom 11 (false_definition): not(truth) = falsehood. 0.20/0.42 Axiom 12 (and_star_commutativity): and_star(X, Y) = and_star(Y, X). 0.20/0.42 0.20/0.42 Lemma 13: and(X, Y) = and_star(X, Y). 0.20/0.42 Proof: 0.20/0.42 and(X, Y) 0.20/0.42 = { by axiom 5 (and_definition) } 0.20/0.42 not(or(not(X), not(Y))) 0.20/0.42 = { by axiom 10 (and_star_definition) } 0.20/0.42 and_star(X, Y) 0.20/0.42 0.20/0.42 Lemma 14: implies(X, implies(implies(X, Y), Y)) = truth. 0.20/0.42 Proof: 0.20/0.42 implies(X, implies(implies(X, Y), Y)) 0.20/0.42 = { by axiom 4 (wajsberg_1) } 0.20/0.42 implies(implies(truth, X), implies(implies(X, Y), Y)) 0.20/0.42 = { by axiom 4 (wajsberg_1) } 0.20/0.42 implies(implies(truth, X), implies(implies(X, Y), implies(truth, Y))) 0.20/0.42 = { by axiom 2 (wajsberg_2) } 0.20/0.42 truth 0.20/0.42 0.20/0.42 Lemma 15: implies(X, X) = truth. 0.20/0.42 Proof: 0.20/0.42 implies(X, X) 0.20/0.42 = { by axiom 4 (wajsberg_1) } 0.20/0.42 implies(implies(truth, X), X) 0.20/0.42 = { by axiom 4 (wajsberg_1) } 0.20/0.42 implies(truth, implies(implies(truth, X), X)) 0.20/0.42 = { by lemma 14 } 0.20/0.42 truth 0.20/0.42 0.20/0.42 Lemma 16: or(falsehood, X) = X. 0.20/0.42 Proof: 0.20/0.42 or(falsehood, X) 0.20/0.42 = { by axiom 7 (or_commutativity) } 0.20/0.42 or(X, falsehood) 0.20/0.42 = { by axiom 7 (or_commutativity) } 0.20/0.42 or(falsehood, X) 0.20/0.42 = { by axiom 6 (or_definition) } 0.20/0.42 implies(not(falsehood), X) 0.20/0.42 = { by axiom 4 (wajsberg_1) } 0.20/0.42 implies(implies(truth, not(falsehood)), X) 0.20/0.42 = { by lemma 15 } 0.20/0.42 implies(implies(implies(not(falsehood), not(falsehood)), not(falsehood)), X) 0.20/0.42 = { by axiom 6 (or_definition) } 0.20/0.42 implies(implies(or(falsehood, not(falsehood)), not(falsehood)), X) 0.20/0.42 = { by axiom 7 (or_commutativity) } 0.20/0.42 implies(implies(or(not(falsehood), falsehood), not(falsehood)), X) 0.20/0.42 = { by axiom 6 (or_definition) } 0.20/0.42 implies(implies(implies(not(not(falsehood)), falsehood), not(falsehood)), X) 0.20/0.42 = { by axiom 11 (false_definition) } 0.20/0.42 implies(implies(implies(not(not(falsehood)), not(truth)), not(falsehood)), X) 0.20/0.42 = { by axiom 4 (wajsberg_1) } 0.20/0.42 implies(implies(implies(not(not(falsehood)), not(truth)), implies(truth, not(falsehood))), X) 0.20/0.42 = { by axiom 1 (wajsberg_4) } 0.20/0.42 implies(truth, X) 0.20/0.42 = { by axiom 4 (wajsberg_1) } 0.20/0.42 X 0.20/0.42 0.20/0.42 Lemma 17: implies(implies(X, not(Y)), not(Y)) = implies(or(X, Y), X). 0.20/0.42 Proof: 0.20/0.42 implies(implies(X, not(Y)), not(Y)) 0.20/0.42 = { by axiom 3 (wajsberg_3) } 0.20/0.42 implies(implies(not(Y), X), X) 0.20/0.42 = { by axiom 6 (or_definition) } 0.20/0.42 implies(or(Y, X), X) 0.20/0.42 = { by axiom 7 (or_commutativity) } 0.20/0.42 implies(or(X, Y), X) 0.20/0.42 0.20/0.42 Lemma 18: or(X, truth) = implies(falsehood, X). 0.20/0.42 Proof: 0.20/0.42 or(X, truth) 0.20/0.42 = { by axiom 7 (or_commutativity) } 0.20/0.42 or(truth, X) 0.20/0.42 = { by axiom 6 (or_definition) } 0.20/0.42 implies(not(truth), X) 0.20/0.42 = { by axiom 11 (false_definition) } 0.20/0.42 implies(falsehood, X) 0.20/0.42 0.20/0.42 Lemma 19: implies(X, truth) = truth. 0.20/0.42 Proof: 0.20/0.42 implies(X, truth) 0.20/0.42 = { by lemma 15 } 0.20/0.42 implies(X, implies(X, X)) 0.20/0.42 = { by axiom 4 (wajsberg_1) } 0.20/0.42 implies(X, implies(implies(truth, X), X)) 0.20/0.42 = { by axiom 3 (wajsberg_3) } 0.20/0.42 implies(X, implies(implies(X, truth), truth)) 0.20/0.42 = { by lemma 14 } 0.20/0.42 truth 0.20/0.42 0.20/0.42 Lemma 20: implies(falsehood, X) = truth. 0.20/0.42 Proof: 0.20/0.42 implies(falsehood, X) 0.20/0.42 = { by lemma 18 } 0.20/0.42 or(X, truth) 0.20/0.42 = { by axiom 6 (or_definition) } 0.20/0.42 implies(not(X), truth) 0.20/0.42 = { by lemma 19 } 0.20/0.42 truth 0.20/0.42 0.20/0.42 Lemma 21: implies(X, falsehood) = not(X). 0.20/0.42 Proof: 0.20/0.42 implies(X, falsehood) 0.20/0.42 = { by lemma 16 } 0.20/0.42 implies(or(falsehood, X), falsehood) 0.20/0.42 = { by lemma 17 } 0.20/0.42 implies(implies(falsehood, not(X)), not(X)) 0.20/0.42 = { by lemma 20 } 0.20/0.42 implies(truth, not(X)) 0.20/0.42 = { by axiom 4 (wajsberg_1) } 0.20/0.42 not(X) 0.20/0.42 0.20/0.42 Lemma 22: not(not(X)) = X. 0.20/0.42 Proof: 0.20/0.42 not(not(X)) 0.20/0.42 = { by lemma 21 } 0.20/0.42 not(implies(X, falsehood)) 0.20/0.42 = { by lemma 21 } 0.20/0.42 implies(implies(X, falsehood), falsehood) 0.20/0.42 = { by axiom 11 (false_definition) } 0.20/0.42 implies(implies(X, not(truth)), falsehood) 0.20/0.42 = { by axiom 11 (false_definition) } 0.20/0.42 implies(implies(X, not(truth)), not(truth)) 0.20/0.42 = { by axiom 3 (wajsberg_3) } 0.20/0.42 implies(implies(not(truth), X), X) 0.20/0.42 = { by axiom 6 (or_definition) } 0.20/0.42 implies(or(truth, X), X) 0.20/0.42 = { by axiom 7 (or_commutativity) } 0.20/0.42 implies(or(X, truth), X) 0.20/0.42 = { by lemma 18 } 0.20/0.42 implies(implies(falsehood, X), X) 0.20/0.42 = { by lemma 20 } 0.20/0.42 implies(truth, X) 0.20/0.42 = { by axiom 4 (wajsberg_1) } 0.20/0.42 X 0.20/0.42 0.20/0.42 Lemma 23: or(X, not(Y)) = implies(Y, X). 0.20/0.42 Proof: 0.20/0.42 or(X, not(Y)) 0.20/0.42 = { by axiom 7 (or_commutativity) } 0.20/0.42 or(not(Y), X) 0.20/0.42 = { by axiom 6 (or_definition) } 0.20/0.42 implies(not(not(Y)), X) 0.20/0.42 = { by lemma 22 } 0.20/0.42 implies(Y, X) 0.20/0.42 0.20/0.42 Lemma 24: and_star(X, not(Y)) = not(implies(X, Y)). 0.20/0.42 Proof: 0.20/0.42 and_star(X, not(Y)) 0.20/0.42 = { by axiom 12 (and_star_commutativity) } 0.20/0.42 and_star(not(Y), X) 0.20/0.42 = { by lemma 13 } 0.20/0.42 and(not(Y), X) 0.20/0.42 = { by axiom 5 (and_definition) } 0.20/0.42 not(or(not(not(Y)), not(X))) 0.20/0.42 = { by lemma 22 } 0.20/0.42 not(or(Y, not(X))) 0.20/0.42 = { by lemma 23 } 0.20/0.42 not(implies(X, Y)) 0.20/0.42 0.20/0.42 Lemma 25: xor(truth, X) = not(X). 0.20/0.42 Proof: 0.20/0.42 xor(truth, X) 0.20/0.42 = { by axiom 8 (xor_commutativity) } 0.20/0.42 xor(X, truth) 0.20/0.42 = { by axiom 9 (xor_definition) } 0.20/0.42 or(and(X, not(truth)), and(not(X), truth)) 0.20/0.42 = { by axiom 11 (false_definition) } 0.20/0.42 or(and(X, falsehood), and(not(X), truth)) 0.20/0.42 = { by lemma 13 } 0.20/0.42 or(and_star(X, falsehood), and(not(X), truth)) 0.20/0.42 = { by axiom 11 (false_definition) } 0.20/0.42 or(and_star(X, not(truth)), and(not(X), truth)) 0.20/0.42 = { by lemma 24 } 0.20/0.42 or(not(implies(X, truth)), and(not(X), truth)) 0.20/0.42 = { by lemma 19 } 0.20/0.42 or(not(truth), and(not(X), truth)) 0.20/0.42 = { by axiom 11 (false_definition) } 0.20/0.42 or(falsehood, and(not(X), truth)) 0.20/0.42 = { by lemma 13 } 0.20/0.42 or(falsehood, and_star(not(X), truth)) 0.20/0.42 = { by axiom 12 (and_star_commutativity) } 0.20/0.42 or(falsehood, and_star(truth, not(X))) 0.20/0.42 = { by lemma 24 } 0.20/0.43 or(falsehood, not(implies(truth, X))) 0.20/0.43 = { by lemma 16 } 0.20/0.43 not(implies(truth, X)) 0.20/0.43 = { by axiom 4 (wajsberg_1) } 0.20/0.43 not(X) 0.20/0.43 0.20/0.43 Lemma 26: or(not(X), Y) = implies(X, Y). 0.20/0.43 Proof: 0.20/0.43 or(not(X), Y) 0.20/0.43 = { by axiom 7 (or_commutativity) } 0.20/0.43 or(Y, not(X)) 0.20/0.43 = { by lemma 23 } 0.20/0.43 implies(X, Y) 0.20/0.43 0.20/0.43 Lemma 27: not(and_star(X, Y)) = implies(X, not(Y)). 0.20/0.43 Proof: 0.20/0.43 not(and_star(X, Y)) 0.20/0.43 = { by lemma 13 } 0.20/0.43 not(and(X, Y)) 0.20/0.43 = { by axiom 5 (and_definition) } 0.20/0.43 not(not(or(not(X), not(Y)))) 0.20/0.43 = { by lemma 22 } 0.20/0.43 or(not(X), not(Y)) 0.20/0.43 = { by lemma 26 } 0.20/0.43 implies(X, not(Y)) 0.20/0.43 0.20/0.43 Lemma 28: implies(X, not(Y)) = implies(Y, not(X)). 0.20/0.43 Proof: 0.20/0.43 implies(X, not(Y)) 0.20/0.43 = { by lemma 27 } 0.20/0.43 not(and_star(X, Y)) 0.20/0.43 = { by axiom 12 (and_star_commutativity) } 0.20/0.43 not(and_star(Y, X)) 0.20/0.43 = { by lemma 27 } 0.20/0.43 implies(Y, not(X)) 0.20/0.43 0.20/0.43 Lemma 29: not(implies(X, not(Y))) = and_star(X, Y). 0.20/0.43 Proof: 0.20/0.43 not(implies(X, not(Y))) 0.20/0.43 = { by lemma 28 } 0.20/0.43 not(implies(Y, not(X))) 0.20/0.43 = { by lemma 23 } 0.20/0.43 not(or(not(X), not(Y))) 0.20/0.43 = { by axiom 5 (and_definition) } 0.20/0.43 and(X, Y) 0.20/0.43 = { by lemma 13 } 0.20/0.43 and_star(X, Y) 0.20/0.43 0.20/0.43 Goal 1 (prove_alternative_wajsberg_axiom): and_star(xor(and_star(xor(truth, y), x), truth), x) = and_star(xor(and_star(xor(truth, x), y), truth), y). 0.20/0.43 Proof: 0.20/0.43 and_star(xor(and_star(xor(truth, y), x), truth), x) 0.20/0.43 = { by axiom 8 (xor_commutativity) } 0.20/0.43 and_star(xor(truth, and_star(xor(truth, y), x)), x) 0.20/0.43 = { by axiom 12 (and_star_commutativity) } 0.20/0.43 and_star(x, xor(truth, and_star(xor(truth, y), x))) 0.20/0.43 = { by axiom 12 (and_star_commutativity) } 0.20/0.43 and_star(x, xor(truth, and_star(x, xor(truth, y)))) 0.20/0.43 = { by lemma 25 } 0.20/0.43 and_star(x, not(and_star(x, xor(truth, y)))) 0.20/0.43 = { by lemma 25 } 0.20/0.43 and_star(x, not(and_star(x, not(y)))) 0.20/0.43 = { by lemma 24 } 0.20/0.43 not(implies(x, and_star(x, not(y)))) 0.20/0.43 = { by lemma 24 } 0.20/0.43 not(implies(x, not(implies(x, y)))) 0.20/0.43 = { by lemma 28 } 0.20/0.43 not(implies(implies(x, y), not(x))) 0.20/0.43 = { by lemma 26 } 0.20/0.43 not(implies(or(not(x), y), not(x))) 0.20/0.43 = { by lemma 17 } 0.20/0.43 not(implies(implies(not(x), not(y)), not(y))) 0.20/0.43 = { by axiom 6 (or_definition) } 0.20/0.43 not(implies(or(x, not(y)), not(y))) 0.20/0.43 = { by lemma 23 } 0.20/0.43 not(implies(implies(y, x), not(y))) 0.20/0.43 = { by lemma 28 } 0.20/0.43 not(implies(y, not(implies(y, x)))) 0.20/0.43 = { by lemma 24 } 0.20/0.43 not(implies(y, and_star(y, not(x)))) 0.20/0.43 = { by lemma 24 } 0.20/0.43 and_star(y, not(and_star(y, not(x)))) 0.20/0.43 = { by lemma 25 } 0.20/0.43 and_star(y, not(and_star(y, xor(truth, x)))) 0.20/0.43 = { by lemma 25 } 0.20/0.43 and_star(y, xor(truth, and_star(y, xor(truth, x)))) 0.20/0.43 = { by axiom 12 (and_star_commutativity) } 0.20/0.43 and_star(y, xor(truth, and_star(xor(truth, x), y))) 0.20/0.43 = { by axiom 12 (and_star_commutativity) } 0.20/0.43 and_star(xor(truth, and_star(xor(truth, x), y)), y) 0.20/0.43 = { by axiom 8 (xor_commutativity) } 0.20/0.43 and_star(xor(and_star(xor(truth, x), y), truth), y) 0.20/0.43 % SZS output end Proof 0.20/0.43 0.20/0.43 RESULT: Unsatisfiable (the axioms are contradictory). 0.20/0.43 EOF