0.10/0.12 % Problem : theBenchmark.p : TPTP v0.0.0. Released v0.0.0. 0.10/0.12 % 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 : 960 0.12/0.34 % WCLimit : 120 0.12/0.34 % DateTime : Thu Jul 2 07:04:48 EDT 2020 0.12/0.34 % CPUTime : 0.12/0.39 % SZS status Theorem 0.12/0.39 0.12/0.39 % SZS output start Proof 0.12/0.39 Take the following subset of the input axioms: 0.12/0.40 fof(ax3, axiom, ?[U]: (sorti1(U) & ![V]: (sorti1(V) => V!=op1(V, U)))). 0.12/0.40 fof(ax4, axiom, ~?[U]: (sorti2(U) & ![V]: (V!=op2(V, U) <= sorti2(V)))). 0.12/0.40 fof(co1, conjecture, ~(![X1]: (h(j(X1))=X1 <= sorti2(X1)) & (![X2]: (sorti1(X2) => X2=j(h(X2))) & (![Y]: (![Z]: (sorti2(Z) => j(op2(Y, Z))=op1(j(Y), j(Z))) <= sorti2(Y)) & ![W]: (sorti1(W) => ![X]: (op2(h(W), h(X))=h(op1(W, X)) <= sorti1(X)))))) <= (![V]: (sorti2(V) => sorti1(j(V))) & ![U]: (sorti1(U) => sorti2(h(U))))). 0.12/0.40 0.12/0.40 Now clausify the problem and encode Horn clauses using encoding 3 of 0.12/0.40 http://www.cse.chalmers.se/~nicsma/papers/horn.pdf. 0.12/0.40 We repeatedly replace C & s=t => u=v by the two clauses: 0.12/0.40 fresh(y, y, x1...xn) = u 0.12/0.40 C => fresh(s, t, x1...xn) = v 0.12/0.40 where fresh is a fresh function symbol and x1..xn are the free 0.12/0.40 variables of u and v. 0.12/0.40 A predicate p(X) is encoded as p(X)=true (this is sound, because the 0.12/0.40 input problem has no model of domain size 1). 0.12/0.40 0.12/0.40 The encoding turns the above axioms into the following unit equations and goals: 0.12/0.40 0.12/0.40 Axiom 1 (ax4): fresh10(X, X, Y) = sK2_ax4_V(Y). 0.12/0.40 Axiom 2 (ax4_1): fresh9(X, X, Y) = true2. 0.12/0.40 Axiom 3 (co1_1): fresh8(X, X, Y, Z) = j(op2(Y, Z)). 0.12/0.40 Axiom 4 (co1_1): fresh7(X, X, Y, Z) = op1(j(Y), j(Z)). 0.12/0.40 Axiom 5 (co1_2): fresh6(X, X, Y) = true2. 0.12/0.40 Axiom 6 (co1_3): fresh(X, X, Y) = Y. 0.12/0.40 Axiom 7 (co1_5): fresh3(X, X, Y) = true2. 0.12/0.40 Axiom 8 (ax4_1): fresh9(sorti2(X), true2, X) = sorti2(sK2_ax4_V(X)). 0.12/0.40 Axiom 9 (ax4): fresh10(sorti2(X), true2, X) = op2(sK2_ax4_V(X), X). 0.12/0.40 Axiom 10 (ax3): sorti1(sK1_ax3_U) = true2. 0.12/0.40 Axiom 11 (co1_1): fresh7(sorti2(X), true2, Y, X) = fresh8(sorti2(Y), true2, Y, X). 0.12/0.40 Axiom 12 (co1_2): fresh6(sorti2(X), true2, X) = sorti1(j(X)). 0.12/0.40 Axiom 13 (co1_3): fresh(sorti1(X), true2, X) = j(h(X)). 0.12/0.40 Axiom 14 (co1_5): fresh3(sorti1(X), true2, X) = sorti2(h(X)). 0.12/0.40 0.12/0.40 Lemma 15: sorti2(h(sK1_ax3_U)) = true2. 0.12/0.40 Proof: 0.12/0.40 sorti2(h(sK1_ax3_U)) 0.12/0.40 = { by axiom 14 (co1_5) } 0.12/0.40 fresh3(sorti1(sK1_ax3_U), true2, sK1_ax3_U) 0.12/0.40 = { by axiom 10 (ax3) } 0.12/0.40 fresh3(true2, true2, sK1_ax3_U) 0.12/0.40 = { by axiom 7 (co1_5) } 0.12/0.40 true2 0.12/0.40 0.12/0.40 Lemma 16: sorti2(sK2_ax4_V(h(sK1_ax3_U))) = true2. 0.12/0.40 Proof: 0.12/0.40 sorti2(sK2_ax4_V(h(sK1_ax3_U))) 0.12/0.40 = { by axiom 8 (ax4_1) } 0.12/0.40 fresh9(sorti2(h(sK1_ax3_U)), true2, h(sK1_ax3_U)) 0.12/0.40 = { by lemma 15 } 0.12/0.40 fresh9(true2, true2, h(sK1_ax3_U)) 0.12/0.40 = { by axiom 2 (ax4_1) } 0.12/0.40 true2 0.12/0.40 0.12/0.40 Goal 1 (ax3_1): tuple(X, sorti1(X)) = tuple(op1(X, sK1_ax3_U), true2). 0.12/0.40 The goal is true when: 0.12/0.40 X = j(sK2_ax4_V(h(sK1_ax3_U))) 0.12/0.40 0.12/0.40 Proof: 0.12/0.40 tuple(j(sK2_ax4_V(h(sK1_ax3_U))), sorti1(j(sK2_ax4_V(h(sK1_ax3_U))))) 0.12/0.40 = { by axiom 1 (ax4) } 0.12/0.40 tuple(j(fresh10(true2, true2, h(sK1_ax3_U))), sorti1(j(sK2_ax4_V(h(sK1_ax3_U))))) 0.12/0.40 = { by lemma 15 } 0.12/0.40 tuple(j(fresh10(sorti2(h(sK1_ax3_U)), true2, h(sK1_ax3_U))), sorti1(j(sK2_ax4_V(h(sK1_ax3_U))))) 0.12/0.40 = { by axiom 9 (ax4) } 0.12/0.40 tuple(j(op2(sK2_ax4_V(h(sK1_ax3_U)), h(sK1_ax3_U))), sorti1(j(sK2_ax4_V(h(sK1_ax3_U))))) 0.12/0.40 = { by axiom 3 (co1_1) } 0.12/0.40 tuple(fresh8(true2, true2, sK2_ax4_V(h(sK1_ax3_U)), h(sK1_ax3_U)), sorti1(j(sK2_ax4_V(h(sK1_ax3_U))))) 0.12/0.40 = { by lemma 16 } 0.12/0.40 tuple(fresh8(sorti2(sK2_ax4_V(h(sK1_ax3_U))), true2, sK2_ax4_V(h(sK1_ax3_U)), h(sK1_ax3_U)), sorti1(j(sK2_ax4_V(h(sK1_ax3_U))))) 0.12/0.40 = { by axiom 11 (co1_1) } 0.12/0.40 tuple(fresh7(sorti2(h(sK1_ax3_U)), true2, sK2_ax4_V(h(sK1_ax3_U)), h(sK1_ax3_U)), sorti1(j(sK2_ax4_V(h(sK1_ax3_U))))) 0.12/0.40 = { by lemma 15 } 0.12/0.40 tuple(fresh7(true2, true2, sK2_ax4_V(h(sK1_ax3_U)), h(sK1_ax3_U)), sorti1(j(sK2_ax4_V(h(sK1_ax3_U))))) 0.12/0.40 = { by axiom 4 (co1_1) } 0.12/0.40 tuple(op1(j(sK2_ax4_V(h(sK1_ax3_U))), j(h(sK1_ax3_U))), sorti1(j(sK2_ax4_V(h(sK1_ax3_U))))) 0.12/0.40 = { by axiom 13 (co1_3) } 0.12/0.40 tuple(op1(j(sK2_ax4_V(h(sK1_ax3_U))), fresh(sorti1(sK1_ax3_U), true2, sK1_ax3_U)), sorti1(j(sK2_ax4_V(h(sK1_ax3_U))))) 0.12/0.40 = { by axiom 10 (ax3) } 0.12/0.40 tuple(op1(j(sK2_ax4_V(h(sK1_ax3_U))), fresh(true2, true2, sK1_ax3_U)), sorti1(j(sK2_ax4_V(h(sK1_ax3_U))))) 0.12/0.40 = { by axiom 6 (co1_3) } 0.12/0.40 tuple(op1(j(sK2_ax4_V(h(sK1_ax3_U))), sK1_ax3_U), sorti1(j(sK2_ax4_V(h(sK1_ax3_U))))) 0.12/0.40 = { by axiom 12 (co1_2) } 0.12/0.40 tuple(op1(j(sK2_ax4_V(h(sK1_ax3_U))), sK1_ax3_U), fresh6(sorti2(sK2_ax4_V(h(sK1_ax3_U))), true2, sK2_ax4_V(h(sK1_ax3_U)))) 0.12/0.40 = { by lemma 16 } 0.12/0.40 tuple(op1(j(sK2_ax4_V(h(sK1_ax3_U))), sK1_ax3_U), fresh6(true2, true2, sK2_ax4_V(h(sK1_ax3_U)))) 0.12/0.40 = { by axiom 5 (co1_2) } 0.12/0.40 tuple(op1(j(sK2_ax4_V(h(sK1_ax3_U))), sK1_ax3_U), true2) 0.12/0.40 % SZS output end Proof 0.12/0.40 0.12/0.40 RESULT: Theorem (the conjecture is true). 0.12/0.41 EOF