0.04/0.09 % Problem : theBenchmark.p : TPTP v0.0.0. Released v0.0.0. 0.04/0.10 % Command : parallel-twee %s --tstp --conditional-encoding if --smaller --drop-non-horn --give-up-on-saturation --explain-encoding --formal-proof 0.09/0.30 % Computer : n008.cluster.edu 0.09/0.30 % Model : x86_64 x86_64 0.09/0.30 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz 0.09/0.30 % Memory : 8042.1875MB 0.09/0.30 % OS : Linux 3.10.0-693.el7.x86_64 0.09/0.30 % CPULimit : 1200 0.09/0.30 % WCLimit : 120 0.09/0.30 % DateTime : Tue Jul 13 16:41:44 EDT 2021 0.09/0.30 % CPUTime : 0.15/0.35 % SZS status Theorem 0.15/0.35 0.15/0.37 % SZS output start Proof 0.15/0.37 Take the following subset of the input axioms: 0.15/0.38 fof(axiom_1, axiom, ?[Y24]: ![X19]: ((r1(X19) & Y24=X19) | (X19!=Y24 & ~r1(X19)))). 0.15/0.38 fof(axiom_1a, axiom, ![X1, X8]: ?[Y4]: (?[Y7]: (r3(X1, X8, Y7) & r2(Y7, Y4)) & ?[Y5]: (Y4=Y5 & ?[Y15]: (r3(X1, Y15, Y5) & r2(X8, Y15))))). 0.15/0.38 fof(axiom_2, axiom, ![X11]: ?[Y21]: ![X12]: ((Y21!=X12 & ~r2(X11, X12)) | (r2(X11, X12) & X12=Y21))). 0.15/0.38 fof(axiom_3, axiom, ![X13, X14]: ?[Y22]: ![X15]: ((Y22=X15 & r3(X13, X14, X15)) | (X15!=Y22 & ~r3(X13, X14, X15)))). 0.15/0.38 fof(axiom_4a, axiom, ![X4]: ?[Y9]: (X4=Y9 & ?[Y16]: (r3(X4, Y16, Y9) & r1(Y16)))). 0.15/0.38 fof(axiom_7a, axiom, ![X7, Y10]: (~r2(X7, Y10) | ![Y20]: (~r1(Y20) | Y10!=Y20))). 0.15/0.38 fof(zeroplusoneidzero, conjecture, ![Y1]: (![Y5]: (Y5!=Y1 | ~r1(Y5)) | ![Y2]: (![Y3]: (~r3(Y3, Y2, Y1) | ~r1(Y3)) | ![Y4]: (~r2(Y4, Y2) | ~r1(Y4))))). 0.15/0.38 0.15/0.38 Now clausify the problem and encode Horn clauses using encoding 3 of 0.15/0.38 http://www.cse.chalmers.se/~nicsma/papers/horn.pdf. 0.15/0.38 We repeatedly replace C & s=t => u=v by the two clauses: 0.15/0.38 fresh(y, y, x1...xn) = u 0.15/0.38 C => fresh(s, t, x1...xn) = v 0.15/0.38 where fresh is a fresh function symbol and x1..xn are the free 0.15/0.38 variables of u and v. 0.15/0.38 A predicate p(X) is encoded as p(X)=true (this is sound, because the 0.15/0.38 input problem has no model of domain size 1). 0.15/0.38 0.15/0.38 The encoding turns the above axioms into the following unit equations and goals: 0.15/0.38 0.15/0.38 Axiom 1 (zeroplusoneidzero): y5 = y1. 0.15/0.38 Axiom 2 (axiom_4a): X = y9(X). 0.15/0.38 Axiom 3 (zeroplusoneidzero_3): r1(y5) = true2. 0.15/0.38 Axiom 4 (zeroplusoneidzero_4): r1(y3) = true2. 0.15/0.38 Axiom 5 (zeroplusoneidzero_5): r1(y4) = true2. 0.15/0.38 Axiom 6 (axiom_1a): y4_2(X, Y) = y5_2(X, Y). 0.15/0.38 Axiom 7 (zeroplusoneidzero_1): r2(y4, y2) = true2. 0.15/0.38 Axiom 8 (axiom_4a_2): r1(y16(X)) = true2. 0.15/0.38 Axiom 9 (axiom_1): fresh9(X, X, Y) = true2. 0.15/0.38 Axiom 10 (axiom_1): fresh9(X, y24, X) = r1(X). 0.15/0.38 Axiom 11 (axiom_1_1): fresh2(X, X, Y) = Y. 0.15/0.38 Axiom 12 (zeroplusoneidzero_2): r3(y3, y2, y1) = true2. 0.15/0.38 Axiom 13 (axiom_2_1): fresh(X, X, Y, Z) = Z. 0.15/0.38 Axiom 14 (axiom_2): fresh10(X, X, Y, Z) = true2. 0.15/0.38 Axiom 15 (axiom_1_1): fresh2(r1(X), true2, X) = y24. 0.15/0.38 Axiom 16 (axiom_1a_1): r2(X, y15(Y, X)) = true2. 0.15/0.38 Axiom 17 (axiom_2): fresh10(y21(X), Y, X, Y) = r2(X, Y). 0.15/0.38 Axiom 18 (axiom_3_1): fresh3(X, X, Y, Z, W) = W. 0.15/0.38 Axiom 19 (axiom_1a_3): r3(X, Y, y7(X, Y)) = true2. 0.15/0.38 Axiom 20 (axiom_4a_1): r3(X, y16(X), y9(X)) = true2. 0.15/0.38 Axiom 21 (axiom_2_1): fresh(r2(X, Y), true2, X, Y) = y21(X). 0.15/0.38 Axiom 22 (axiom_1a_2): r2(y7(X, Y), y4_2(X, Y)) = true2. 0.15/0.38 Axiom 23 (axiom_1a_4): r3(X, y15(X, Y), y5_2(X, Y)) = true2. 0.15/0.38 Axiom 24 (axiom_3_1): fresh3(r3(X, Y, Z), true2, X, Y, Z) = y22(X, Y). 0.15/0.38 0.15/0.38 Goal 1 (axiom_7a): tuple(r2(X, Y), r1(Y)) = tuple(true2, true2). 0.15/0.38 The goal is true when: 0.15/0.38 X = y24 0.15/0.38 Y = y24 0.15/0.38 0.15/0.38 Proof: 0.15/0.38 tuple(r2(y24, y24), r1(y24)) 0.15/0.38 = { by axiom 15 (axiom_1_1) R->L } 0.15/0.38 tuple(r2(y24, fresh2(r1(y1), true2, y1)), r1(y24)) 0.15/0.38 = { by axiom 1 (zeroplusoneidzero) R->L } 0.15/0.38 tuple(r2(y24, fresh2(r1(y5), true2, y1)), r1(y24)) 0.15/0.38 = { by axiom 3 (zeroplusoneidzero_3) } 0.15/0.38 tuple(r2(y24, fresh2(true2, true2, y1)), r1(y24)) 0.15/0.38 = { by axiom 11 (axiom_1_1) } 0.15/0.38 tuple(r2(y24, y1), r1(y24)) 0.15/0.38 = { by axiom 18 (axiom_3_1) R->L } 0.15/0.38 tuple(r2(y24, fresh3(true2, true2, y3, y2, y1)), r1(y24)) 0.15/0.38 = { by axiom 12 (zeroplusoneidzero_2) R->L } 0.15/0.38 tuple(r2(y24, fresh3(r3(y3, y2, y1), true2, y3, y2, y1)), r1(y24)) 0.15/0.38 = { by axiom 24 (axiom_3_1) } 0.15/0.38 tuple(r2(y24, y22(y3, y2)), r1(y24)) 0.15/0.38 = { by axiom 11 (axiom_1_1) R->L } 0.15/0.38 tuple(r2(y24, y22(fresh2(true2, true2, y3), y2)), r1(y24)) 0.15/0.38 = { by axiom 4 (zeroplusoneidzero_4) R->L } 0.15/0.38 tuple(r2(y24, y22(fresh2(r1(y3), true2, y3), y2)), r1(y24)) 0.15/0.38 = { by axiom 15 (axiom_1_1) } 0.15/0.38 tuple(r2(y24, y22(y24, y2)), r1(y24)) 0.15/0.38 = { by axiom 13 (axiom_2_1) R->L } 0.15/0.38 tuple(r2(y24, y22(y24, fresh(true2, true2, y4, y2))), r1(y24)) 0.15/0.38 = { by axiom 7 (zeroplusoneidzero_1) R->L } 0.15/0.38 tuple(r2(y24, y22(y24, fresh(r2(y4, y2), true2, y4, y2))), r1(y24)) 0.15/0.38 = { by axiom 21 (axiom_2_1) } 0.15/0.38 tuple(r2(y24, y22(y24, y21(y4))), r1(y24)) 0.15/0.38 = { by axiom 11 (axiom_1_1) R->L } 0.15/0.38 tuple(r2(y24, y22(y24, y21(fresh2(true2, true2, y4)))), r1(y24)) 0.15/0.38 = { by axiom 5 (zeroplusoneidzero_5) R->L } 0.15/0.38 tuple(r2(y24, y22(y24, y21(fresh2(r1(y4), true2, y4)))), r1(y24)) 0.15/0.38 = { by axiom 15 (axiom_1_1) } 0.15/0.38 tuple(r2(y24, y22(y24, y21(y24))), r1(y24)) 0.15/0.38 = { by axiom 21 (axiom_2_1) R->L } 0.15/0.38 tuple(r2(y24, y22(y24, fresh(r2(y24, y15(y24, y24)), true2, y24, y15(y24, y24)))), r1(y24)) 0.15/0.38 = { by axiom 16 (axiom_1a_1) } 0.15/0.38 tuple(r2(y24, y22(y24, fresh(true2, true2, y24, y15(y24, y24)))), r1(y24)) 0.15/0.38 = { by axiom 13 (axiom_2_1) } 0.15/0.38 tuple(r2(y24, y22(y24, y15(y24, y24))), r1(y24)) 0.15/0.38 = { by axiom 24 (axiom_3_1) R->L } 0.15/0.38 tuple(r2(y24, fresh3(r3(y24, y15(y24, y24), y4_2(y24, y24)), true2, y24, y15(y24, y24), y4_2(y24, y24))), r1(y24)) 0.15/0.38 = { by axiom 6 (axiom_1a) } 0.15/0.38 tuple(r2(y24, fresh3(r3(y24, y15(y24, y24), y5_2(y24, y24)), true2, y24, y15(y24, y24), y4_2(y24, y24))), r1(y24)) 0.15/0.38 = { by axiom 23 (axiom_1a_4) } 0.15/0.39 tuple(r2(y24, fresh3(true2, true2, y24, y15(y24, y24), y4_2(y24, y24))), r1(y24)) 0.15/0.39 = { by axiom 18 (axiom_3_1) } 0.15/0.39 tuple(r2(y24, y4_2(y24, y24)), r1(y24)) 0.15/0.39 = { by axiom 13 (axiom_2_1) R->L } 0.15/0.39 tuple(r2(y24, fresh(true2, true2, y7(y24, y24), y4_2(y24, y24))), r1(y24)) 0.15/0.39 = { by axiom 22 (axiom_1a_2) R->L } 0.15/0.39 tuple(r2(y24, fresh(r2(y7(y24, y24), y4_2(y24, y24)), true2, y7(y24, y24), y4_2(y24, y24))), r1(y24)) 0.15/0.39 = { by axiom 21 (axiom_2_1) } 0.15/0.39 tuple(r2(y24, y21(y7(y24, y24))), r1(y24)) 0.15/0.39 = { by axiom 18 (axiom_3_1) R->L } 0.15/0.39 tuple(r2(y24, y21(fresh3(true2, true2, y24, y24, y7(y24, y24)))), r1(y24)) 0.15/0.39 = { by axiom 19 (axiom_1a_3) R->L } 0.15/0.39 tuple(r2(y24, y21(fresh3(r3(y24, y24, y7(y24, y24)), true2, y24, y24, y7(y24, y24)))), r1(y24)) 0.15/0.39 = { by axiom 24 (axiom_3_1) } 0.15/0.39 tuple(r2(y24, y21(y22(y24, y24))), r1(y24)) 0.15/0.39 = { by axiom 15 (axiom_1_1) R->L } 0.15/0.39 tuple(r2(y24, y21(y22(y24, fresh2(r1(y16(y24)), true2, y16(y24))))), r1(y24)) 0.15/0.39 = { by axiom 8 (axiom_4a_2) } 0.15/0.39 tuple(r2(y24, y21(y22(y24, fresh2(true2, true2, y16(y24))))), r1(y24)) 0.15/0.39 = { by axiom 11 (axiom_1_1) } 0.15/0.39 tuple(r2(y24, y21(y22(y24, y16(y24)))), r1(y24)) 0.15/0.39 = { by axiom 24 (axiom_3_1) R->L } 0.15/0.39 tuple(r2(y24, y21(fresh3(r3(y24, y16(y24), y24), true2, y24, y16(y24), y24))), r1(y24)) 0.15/0.39 = { by axiom 2 (axiom_4a) } 0.15/0.39 tuple(r2(y24, y21(fresh3(r3(y24, y16(y24), y9(y24)), true2, y24, y16(y24), y24))), r1(y24)) 0.15/0.39 = { by axiom 20 (axiom_4a_1) } 0.15/0.39 tuple(r2(y24, y21(fresh3(true2, true2, y24, y16(y24), y24))), r1(y24)) 0.15/0.39 = { by axiom 18 (axiom_3_1) } 0.15/0.39 tuple(r2(y24, y21(y24)), r1(y24)) 0.15/0.39 = { by axiom 17 (axiom_2) R->L } 0.15/0.39 tuple(fresh10(y21(y24), y21(y24), y24, y21(y24)), r1(y24)) 0.15/0.39 = { by axiom 14 (axiom_2) } 0.15/0.39 tuple(true2, r1(y24)) 0.15/0.39 = { by axiom 10 (axiom_1) R->L } 0.15/0.39 tuple(true2, fresh9(y24, y24, y24)) 0.15/0.39 = { by axiom 9 (axiom_1) } 0.15/0.39 tuple(true2, true2) 0.15/0.39 % SZS output end Proof 0.15/0.39 0.15/0.39 RESULT: Theorem (the conjecture is true). 0.15/0.39 EOF