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