0.03/0.12 % Problem : theBenchmark.p : TPTP v0.0.0. Released v0.0.0. 0.03/0.13 % Command : twee %s --tstp --casc --quiet --explain-encoding --conditional-encoding if --smaller --drop-non-horn 0.13/0.34 % Computer : n008.cluster.edu 0.13/0.34 % Model : x86_64 x86_64 0.13/0.34 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz 0.13/0.34 % Memory : 8042.1875MB 0.13/0.34 % OS : Linux 3.10.0-693.el7.x86_64 0.13/0.34 % CPULimit : 180 0.13/0.34 % DateTime : Thu Aug 29 10:12:53 EDT 2019 0.13/0.34 % CPUTime : 0.13/0.36 % SZS status Unsatisfiable 0.13/0.36 0.13/0.37 % SZS output start Proof 0.13/0.37 Take the following subset of the input axioms: 0.13/0.37 fof(prove_wajsberg_lemma, negated_conjecture, not(not(x))!=x). 0.13/0.37 fof(wajsberg_1, axiom, ![X]: implies(truth, X)=X). 0.13/0.37 fof(wajsberg_2, axiom, ![X, Y, Z]: truth=implies(implies(X, Y), implies(implies(Y, Z), implies(X, Z)))). 0.13/0.37 fof(wajsberg_3, axiom, ![X, Y]: implies(implies(Y, X), X)=implies(implies(X, Y), Y)). 0.13/0.37 fof(wajsberg_4, axiom, ![X, Y]: truth=implies(implies(not(X), not(Y)), implies(Y, X))). 0.13/0.37 0.13/0.37 Now clausify the problem and encode Horn clauses using encoding 3 of 0.13/0.37 http://www.cse.chalmers.se/~nicsma/papers/horn.pdf. 0.13/0.37 We repeatedly replace C & s=t => u=v by the two clauses: 0.13/0.37 fresh(y, y, x1...xn) = u 0.13/0.37 C => fresh(s, t, x1...xn) = v 0.13/0.37 where fresh is a fresh function symbol and x1..xn are the free 0.13/0.37 variables of u and v. 0.13/0.37 A predicate p(X) is encoded as p(X)=true (this is sound, because the 0.13/0.37 input problem has no model of domain size 1). 0.13/0.37 0.13/0.37 The encoding turns the above axioms into the following unit equations and goals: 0.13/0.37 0.13/0.37 Axiom 1 (wajsberg_4): truth = implies(implies(not(X), not(Y)), implies(Y, X)). 0.13/0.37 Axiom 2 (wajsberg_2): truth = implies(implies(X, Y), implies(implies(Y, Z), implies(X, Z))). 0.13/0.37 Axiom 3 (wajsberg_3): implies(implies(X, Y), Y) = implies(implies(Y, X), X). 0.13/0.37 Axiom 4 (wajsberg_1): implies(truth, X) = X. 0.13/0.37 0.13/0.37 Lemma 5: implies(X, implies(implies(X, Y), Y)) = truth. 0.13/0.37 Proof: 0.13/0.37 implies(X, implies(implies(X, Y), Y)) 0.13/0.37 = { by axiom 4 (wajsberg_1) } 0.13/0.37 implies(implies(truth, X), implies(implies(X, Y), Y)) 0.13/0.37 = { by axiom 4 (wajsberg_1) } 0.13/0.37 implies(implies(truth, X), implies(implies(X, Y), implies(truth, Y))) 0.13/0.37 = { by axiom 2 (wajsberg_2) } 0.13/0.37 truth 0.13/0.37 0.13/0.37 Lemma 6: implies(X, implies(Y, X)) = truth. 0.13/0.37 Proof: 0.13/0.37 implies(X, implies(Y, X)) 0.13/0.37 = { by axiom 4 (wajsberg_1) } 0.13/0.37 implies(implies(truth, X), implies(Y, X)) 0.13/0.37 = { by axiom 4 (wajsberg_1) } 0.13/0.37 implies(truth, implies(implies(truth, X), implies(Y, X))) 0.13/0.37 = { by lemma 5 } 0.13/0.37 implies(implies(Y, implies(implies(Y, truth), truth)), implies(implies(truth, X), implies(Y, X))) 0.13/0.37 = { by axiom 3 (wajsberg_3) } 0.13/0.37 implies(implies(Y, implies(implies(truth, Y), Y)), implies(implies(truth, X), implies(Y, X))) 0.13/0.37 = { by axiom 4 (wajsberg_1) } 0.13/0.37 implies(implies(Y, implies(truth, implies(implies(truth, Y), Y))), implies(implies(truth, X), implies(Y, X))) 0.13/0.37 = { by lemma 5 } 0.13/0.37 implies(implies(Y, truth), implies(implies(truth, X), implies(Y, X))) 0.13/0.37 = { by axiom 2 (wajsberg_2) } 0.13/0.37 truth 0.13/0.37 0.13/0.37 Lemma 7: implies(implies(not(X), not(truth)), X) = truth. 0.13/0.37 Proof: 0.13/0.37 implies(implies(not(X), not(truth)), X) 0.13/0.37 = { by axiom 4 (wajsberg_1) } 0.13/0.37 implies(implies(not(X), not(truth)), implies(truth, X)) 0.13/0.37 = { by axiom 1 (wajsberg_4) } 0.21/0.37 truth 0.21/0.37 0.21/0.37 Lemma 8: implies(not(not(X)), X) = truth. 0.21/0.37 Proof: 0.21/0.37 implies(not(not(X)), X) 0.21/0.37 = { by axiom 4 (wajsberg_1) } 0.21/0.37 implies(implies(truth, not(not(X))), X) 0.21/0.37 = { by axiom 2 (wajsberg_2) } 0.21/0.37 implies(implies(implies(implies(not(truth), implies(not(not(not(truth))), not(truth))), implies(implies(implies(not(not(not(truth))), not(truth)), not(not(truth))), implies(not(truth), not(not(truth))))), not(not(X))), X) 0.21/0.37 = { by lemma 6 } 0.21/0.37 implies(implies(implies(truth, implies(implies(implies(not(not(not(truth))), not(truth)), not(not(truth))), implies(not(truth), not(not(truth))))), not(not(X))), X) 0.21/0.37 = { by axiom 4 (wajsberg_1) } 0.21/0.37 implies(implies(implies(implies(implies(not(not(not(truth))), not(truth)), not(not(truth))), implies(not(truth), not(not(truth)))), not(not(X))), X) 0.21/0.37 = { by lemma 7 } 0.21/0.37 implies(implies(implies(truth, implies(not(truth), not(not(truth)))), not(not(X))), X) 0.21/0.37 = { by lemma 6 } 0.21/0.37 implies(implies(implies(implies(not(not(truth)), implies(not(truth), not(not(truth)))), implies(not(truth), not(not(truth)))), not(not(X))), X) 0.21/0.37 = { by axiom 3 (wajsberg_3) } 0.21/0.37 implies(implies(implies(implies(implies(not(truth), not(not(truth))), not(not(truth))), not(not(truth))), not(not(X))), X) 0.21/0.37 = { by axiom 3 (wajsberg_3) } 0.21/0.37 implies(implies(implies(implies(implies(not(not(truth)), not(truth)), not(truth)), not(not(truth))), not(not(X))), X) 0.21/0.37 = { by lemma 7 } 0.21/0.37 implies(implies(implies(truth, not(not(truth))), not(not(X))), X) 0.21/0.37 = { by axiom 4 (wajsberg_1) } 0.21/0.37 implies(implies(not(not(truth)), not(not(X))), X) 0.21/0.37 = { by axiom 4 (wajsberg_1) } 0.21/0.37 implies(truth, implies(implies(not(not(truth)), not(not(X))), X)) 0.21/0.37 = { by axiom 1 (wajsberg_4) } 0.21/0.37 implies(implies(implies(not(not(truth)), not(not(X))), implies(not(X), not(truth))), implies(implies(not(not(truth)), not(not(X))), X)) 0.21/0.37 = { by axiom 4 (wajsberg_1) } 0.21/0.37 implies(implies(implies(not(not(truth)), not(not(X))), implies(not(X), not(truth))), implies(truth, implies(implies(not(not(truth)), not(not(X))), X))) 0.21/0.37 = { by lemma 7 } 0.21/0.37 implies(implies(implies(not(not(truth)), not(not(X))), implies(not(X), not(truth))), implies(implies(implies(not(X), not(truth)), X), implies(implies(not(not(truth)), not(not(X))), X))) 0.21/0.37 = { by axiom 2 (wajsberg_2) } 0.21/0.38 truth 0.21/0.38 0.21/0.38 Goal 1 (prove_wajsberg_lemma): not(not(x)) = x. 0.21/0.38 Proof: 0.21/0.38 not(not(x)) 0.21/0.38 = { by axiom 4 (wajsberg_1) } 0.21/0.38 implies(truth, not(not(x))) 0.21/0.38 = { by axiom 1 (wajsberg_4) } 0.21/0.38 implies(implies(implies(not(not(not(x))), not(x)), implies(x, not(not(x)))), not(not(x))) 0.21/0.38 = { by lemma 8 } 0.21/0.38 implies(implies(truth, implies(x, not(not(x)))), not(not(x))) 0.21/0.38 = { by axiom 4 (wajsberg_1) } 0.21/0.38 implies(implies(x, not(not(x))), not(not(x))) 0.21/0.38 = { by axiom 3 (wajsberg_3) } 0.21/0.38 implies(implies(not(not(x)), x), x) 0.21/0.38 = { by lemma 8 } 0.21/0.38 implies(truth, x) 0.21/0.38 = { by axiom 4 (wajsberg_1) } 0.21/0.38 x 0.21/0.38 % SZS output end Proof 0.21/0.38 0.21/0.38 RESULT: Unsatisfiable (the axioms are contradictory). 0.21/0.38 EOF