0.02/0.10 % Problem : theBenchmark.p : TPTP v0.0.0. Released v0.0.0. 0.02/0.10 % Command : parallel-twee %s --tstp --conditional-encoding if --smaller --drop-non-horn --give-up-on-saturation --explain-encoding --formal-proof 0.10/0.31 % Computer : n002.cluster.edu 0.10/0.31 % Model : x86_64 x86_64 0.10/0.31 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz 0.10/0.31 % Memory : 8042.1875MB 0.10/0.31 % OS : Linux 3.10.0-693.el7.x86_64 0.10/0.31 % CPULimit : 1200 0.10/0.31 % WCLimit : 120 0.10/0.31 % DateTime : Tue Jul 13 16:20:33 EDT 2021 0.10/0.31 % CPUTime : 0.16/0.38 % SZS status Theorem 0.16/0.38 0.16/0.39 % SZS output start Proof 0.16/0.39 Take the following subset of the input axioms: 0.16/0.40 fof(goals_14, conjecture, ![X17]: X17='==>'('==>'(X17, '1'), '1')). 0.16/0.40 fof(sos_02, axiom, ![A, B]: '+'(B, A)='+'(A, B)). 0.16/0.40 fof(sos_03, axiom, ![A]: '+'(A, '0')=A). 0.16/0.40 fof(sos_04, axiom, ![A]: '>='(A, A)). 0.16/0.40 fof(sos_06, axiom, ![X3, X4]: (('>='(X4, X3) & '>='(X3, X4)) => X3=X4)). 0.16/0.40 fof(sos_07, axiom, ![X5, X6, X7]: ('>='('+'(X5, X6), X7) <=> '>='(X6, '==>'(X5, X7)))). 0.16/0.40 fof(sos_08, axiom, ![A]: '>='(A, '0')). 0.16/0.40 fof(sos_09, axiom, ![X8, X9, X10]: ('>='(X8, X9) => '>='('+'(X8, X10), '+'(X9, X10)))). 0.16/0.40 fof(sos_11, axiom, ![X14, X15, X16]: ('>='(X14, X15) => '>='('==>'(X16, X14), '==>'(X16, X15)))). 0.16/0.40 fof(sos_12, axiom, ![A]: '1'='+'(A, '1')). 0.16/0.40 fof(sos_13, axiom, ![A]: '==>'('==>'('==>'(A, '1'), A), A)='0'). 0.16/0.40 0.16/0.40 Now clausify the problem and encode Horn clauses using encoding 3 of 0.16/0.40 http://www.cse.chalmers.se/~nicsma/papers/horn.pdf. 0.16/0.40 We repeatedly replace C & s=t => u=v by the two clauses: 0.16/0.40 fresh(y, y, x1...xn) = u 0.16/0.40 C => fresh(s, t, x1...xn) = v 0.16/0.40 where fresh is a fresh function symbol and x1..xn are the free 0.16/0.40 variables of u and v. 0.16/0.40 A predicate p(X) is encoded as p(X)=true (this is sound, because the 0.16/0.40 input problem has no model of domain size 1). 0.16/0.40 0.16/0.40 The encoding turns the above axioms into the following unit equations and goals: 0.16/0.40 0.16/0.40 Axiom 1 (sos_02): X + Y = Y + X. 0.16/0.40 Axiom 2 (sos_03): X + 0 = X. 0.16/0.40 Axiom 3 (sos_12): 1 = X + 1. 0.16/0.40 Axiom 4 (sos_04): X >= X = true. 0.16/0.40 Axiom 5 (sos_08): X >= 0 = true. 0.16/0.40 Axiom 6 (sos_06): fresh(X, X, Y, Z) = Z. 0.16/0.40 Axiom 7 (sos_06): fresh2(X, X, Y, Z) = Y. 0.16/0.40 Axiom 8 (sos_09): fresh9(X, X, Y, Z, W) = true. 0.16/0.40 Axiom 9 (sos_07): fresh6(X, X, Y, Z, W) = true. 0.16/0.40 Axiom 10 (sos_07_1): fresh5(X, X, Y, Z, W) = true. 0.16/0.40 Axiom 11 (sos_11): fresh3(X, X, Y, Z, W) = true. 0.16/0.40 Axiom 12 (sos_06): fresh2(X >= Y, true, Y, X) = fresh(Y >= X, true, Y, X). 0.16/0.40 Axiom 13 (sos_13): ((X ==> 1) ==> X) ==> X = 0. 0.16/0.40 Axiom 14 (sos_09): fresh9(X >= Y, true, X, Y, Z) = (X + Z) >= (Y + Z). 0.16/0.40 Axiom 15 (sos_11): fresh3(X >= Y, true, X, Y, Z) = (Z ==> X) >= (Z ==> Y). 0.16/0.40 Axiom 16 (sos_07): fresh6(X >= (Y ==> Z), true, Y, X, Z) = (Y + X) >= Z. 0.16/0.40 Axiom 17 (sos_07_1): fresh5((X + Y) >= Z, true, X, Y, Z) = Y >= (X ==> Z). 0.16/0.40 0.16/0.40 Lemma 18: (X + Y) >= X = true. 0.16/0.40 Proof: 0.16/0.40 (X + Y) >= X 0.16/0.40 = { by axiom 1 (sos_02) R->L } 0.16/0.40 (Y + X) >= X 0.16/0.40 = { by axiom 2 (sos_03) R->L } 0.16/0.40 (Y + X) >= (X + 0) 0.16/0.40 = { by axiom 1 (sos_02) } 0.16/0.40 (Y + X) >= (0 + X) 0.16/0.40 = { by axiom 14 (sos_09) R->L } 0.16/0.40 fresh9(Y >= 0, true, Y, 0, X) 0.16/0.40 = { by axiom 5 (sos_08) } 0.16/0.40 fresh9(true, true, Y, 0, X) 0.16/0.40 = { by axiom 8 (sos_09) } 0.16/0.40 true 0.16/0.40 0.16/0.40 Lemma 19: (X + (X ==> Y)) >= Y = true. 0.16/0.40 Proof: 0.16/0.40 (X + (X ==> Y)) >= Y 0.16/0.40 = { by axiom 16 (sos_07) R->L } 0.16/0.40 fresh6((X ==> Y) >= (X ==> Y), true, X, X ==> Y, Y) 0.16/0.40 = { by axiom 4 (sos_04) } 0.16/0.40 fresh6(true, true, X, X ==> Y, Y) 0.16/0.40 = { by axiom 9 (sos_07) } 0.16/0.40 true 0.16/0.40 0.16/0.40 Goal 1 (goals_14): x17 = (x17 ==> 1) ==> 1. 0.16/0.40 Proof: 0.16/0.40 x17 0.16/0.40 = { by axiom 7 (sos_06) R->L } 0.16/0.40 fresh2(true, true, x17, (x17 ==> 1) ==> 1) 0.16/0.40 = { by axiom 11 (sos_11) R->L } 0.16/0.40 fresh2(fresh3(true, true, 1, x17, x17 ==> 1), true, x17, (x17 ==> 1) ==> 1) 0.16/0.40 = { by lemma 18 R->L } 0.16/0.40 fresh2(fresh3((x17 + 1) >= x17, true, 1, x17, x17 ==> 1), true, x17, (x17 ==> 1) ==> 1) 0.16/0.40 = { by axiom 3 (sos_12) R->L } 0.16/0.40 fresh2(fresh3(1 >= x17, true, 1, x17, x17 ==> 1), true, x17, (x17 ==> 1) ==> 1) 0.16/0.40 = { by axiom 15 (sos_11) } 0.16/0.40 fresh2(((x17 ==> 1) ==> 1) >= ((x17 ==> 1) ==> x17), true, x17, (x17 ==> 1) ==> 1) 0.16/0.40 = { by axiom 6 (sos_06) R->L } 0.16/0.40 fresh2(((x17 ==> 1) ==> 1) >= fresh(true, true, x17, (x17 ==> 1) ==> x17), true, x17, (x17 ==> 1) ==> 1) 0.16/0.40 = { by axiom 10 (sos_07_1) R->L } 0.16/0.40 fresh2(((x17 ==> 1) ==> 1) >= fresh(fresh5(true, true, x17 ==> 1, x17, x17), true, x17, (x17 ==> 1) ==> x17), true, x17, (x17 ==> 1) ==> 1) 0.16/0.40 = { by lemma 18 R->L } 0.16/0.40 fresh2(((x17 ==> 1) ==> 1) >= fresh(fresh5((x17 + (x17 ==> 1)) >= x17, true, x17 ==> 1, x17, x17), true, x17, (x17 ==> 1) ==> x17), true, x17, (x17 ==> 1) ==> 1) 0.16/0.40 = { by axiom 1 (sos_02) } 0.16/0.40 fresh2(((x17 ==> 1) ==> 1) >= fresh(fresh5(((x17 ==> 1) + x17) >= x17, true, x17 ==> 1, x17, x17), true, x17, (x17 ==> 1) ==> x17), true, x17, (x17 ==> 1) ==> 1) 0.16/0.40 = { by axiom 17 (sos_07_1) } 0.16/0.40 fresh2(((x17 ==> 1) ==> 1) >= fresh(x17 >= ((x17 ==> 1) ==> x17), true, x17, (x17 ==> 1) ==> x17), true, x17, (x17 ==> 1) ==> 1) 0.16/0.40 = { by axiom 12 (sos_06) R->L } 0.16/0.40 fresh2(((x17 ==> 1) ==> 1) >= fresh2(((x17 ==> 1) ==> x17) >= x17, true, x17, (x17 ==> 1) ==> x17), true, x17, (x17 ==> 1) ==> 1) 0.16/0.40 = { by axiom 2 (sos_03) R->L } 0.16/0.40 fresh2(((x17 ==> 1) ==> 1) >= fresh2((((x17 ==> 1) ==> x17) + 0) >= x17, true, x17, (x17 ==> 1) ==> x17), true, x17, (x17 ==> 1) ==> 1) 0.16/0.40 = { by axiom 13 (sos_13) R->L } 0.16/0.40 fresh2(((x17 ==> 1) ==> 1) >= fresh2((((x17 ==> 1) ==> x17) + (((x17 ==> 1) ==> x17) ==> x17)) >= x17, true, x17, (x17 ==> 1) ==> x17), true, x17, (x17 ==> 1) ==> 1) 0.16/0.40 = { by lemma 19 } 0.16/0.40 fresh2(((x17 ==> 1) ==> 1) >= fresh2(true, true, x17, (x17 ==> 1) ==> x17), true, x17, (x17 ==> 1) ==> 1) 0.16/0.40 = { by axiom 7 (sos_06) } 0.16/0.40 fresh2(((x17 ==> 1) ==> 1) >= x17, true, x17, (x17 ==> 1) ==> 1) 0.16/0.40 = { by axiom 12 (sos_06) } 0.16/0.40 fresh(x17 >= ((x17 ==> 1) ==> 1), true, x17, (x17 ==> 1) ==> 1) 0.16/0.40 = { by axiom 17 (sos_07_1) R->L } 0.16/0.40 fresh(fresh5(((x17 ==> 1) + x17) >= 1, true, x17 ==> 1, x17, 1), true, x17, (x17 ==> 1) ==> 1) 0.16/0.40 = { by axiom 1 (sos_02) R->L } 0.16/0.40 fresh(fresh5((x17 + (x17 ==> 1)) >= 1, true, x17 ==> 1, x17, 1), true, x17, (x17 ==> 1) ==> 1) 0.16/0.40 = { by lemma 19 } 0.16/0.40 fresh(fresh5(true, true, x17 ==> 1, x17, 1), true, x17, (x17 ==> 1) ==> 1) 0.16/0.40 = { by axiom 10 (sos_07_1) } 0.16/0.40 fresh(true, true, x17, (x17 ==> 1) ==> 1) 0.16/0.40 = { by axiom 6 (sos_06) } 0.16/0.40 (x17 ==> 1) ==> 1 0.16/0.40 % SZS output end Proof 0.16/0.40 0.16/0.40 RESULT: Theorem (the conjecture is true). 0.16/0.40 EOF