0.07/0.12 % Problem : theBenchmark.p : TPTP v0.0.0. Released v0.0.0. 0.07/0.12 % Command : twee %s --tstp --casc --quiet --explain-encoding --conditional-encoding if --smaller --drop-non-horn 0.12/0.33 % Computer : n014.cluster.edu 0.12/0.33 % Model : x86_64 x86_64 0.12/0.33 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz 0.12/0.33 % Memory : 8042.1875MB 0.12/0.33 % OS : Linux 3.10.0-693.el7.x86_64 0.12/0.33 % CPULimit : 180 0.12/0.33 % DateTime : Thu Aug 29 09:50:09 EDT 2019 0.12/0.33 % CPUTime : 0.12/0.35 % SZS status Theorem 0.12/0.35 0.12/0.35 % SZS output start Proof 0.12/0.35 Take the following subset of the input axioms: 0.12/0.35 fof(f03, axiom, ![B, A]: A=mult(rd(A, B), B)). 0.12/0.35 fof(f05, axiom, ![A]: A=mult(A, unit)). 0.12/0.35 fof(f06, axiom, ![A]: mult(unit, A)=A). 0.12/0.35 fof(f08, axiom, ![B, A]: mult(mult(op_c, A), B)=mult(op_c, mult(A, B))). 0.12/0.35 fof(f09, axiom, ![B, A]: mult(A, mult(B, op_c))=mult(mult(A, B), op_c)). 0.12/0.35 fof(f10, axiom, ![B, A]: mult(A, mult(op_c, B))=mult(mult(A, op_c), B)). 0.12/0.35 fof(f12, axiom, ![B, A]: op_e=mult(mult(rd(op_c, mult(A, B)), B), A)). 0.12/0.35 fof(goals, conjecture, ![X2, X3]: (mult(op_e, mult(X2, X3))=mult(mult(op_e, X2), X3) & (mult(mult(X2, op_e), X3)=mult(X2, mult(op_e, X3)) & mult(X2, mult(X3, op_e))=mult(mult(X2, X3), op_e)))). 0.12/0.35 0.12/0.35 Now clausify the problem and encode Horn clauses using encoding 3 of 0.12/0.35 http://www.cse.chalmers.se/~nicsma/papers/horn.pdf. 0.12/0.35 We repeatedly replace C & s=t => u=v by the two clauses: 0.12/0.35 fresh(y, y, x1...xn) = u 0.12/0.35 C => fresh(s, t, x1...xn) = v 0.12/0.35 where fresh is a fresh function symbol and x1..xn are the free 0.12/0.35 variables of u and v. 0.12/0.35 A predicate p(X) is encoded as p(X)=true (this is sound, because the 0.12/0.35 input problem has no model of domain size 1). 0.12/0.35 0.12/0.35 The encoding turns the above axioms into the following unit equations and goals: 0.12/0.35 0.12/0.35 Axiom 1 (f03): X = mult(rd(X, Y), Y). 0.12/0.35 Axiom 2 (f06): mult(unit, X) = X. 0.12/0.35 Axiom 3 (f10): mult(X, mult(op_c, Y)) = mult(mult(X, op_c), Y). 0.12/0.35 Axiom 4 (f08): mult(mult(op_c, X), Y) = mult(op_c, mult(X, Y)). 0.12/0.35 Axiom 5 (f09): mult(X, mult(Y, op_c)) = mult(mult(X, Y), op_c). 0.12/0.35 Axiom 6 (f05): X = mult(X, unit). 0.12/0.35 Axiom 7 (f12): op_e = mult(mult(rd(op_c, mult(X, Y)), Y), X). 0.12/0.35 0.12/0.35 Lemma 8: op_e = op_c. 0.12/0.35 Proof: 0.12/0.35 op_e 0.12/0.35 = { by axiom 7 (f12) } 0.12/0.35 mult(mult(rd(op_c, mult(unit, ?)), ?), unit) 0.12/0.35 = { by axiom 2 (f06) } 0.12/0.35 mult(mult(rd(op_c, ?), ?), unit) 0.12/0.35 = { by axiom 6 (f05) } 0.12/0.35 mult(rd(op_c, ?), ?) 0.12/0.35 = { by axiom 1 (f03) } 0.12/0.35 op_c 0.12/0.35 0.12/0.35 Goal 1 (goals): tuple(mult(op_e, mult(sK6_goals_X2, sK5_goals_X3)), mult(mult(sK4_goals_X2, op_e), sK3_goals_X3), mult(sK2_goals_X2, mult(sK1_goals_X3, op_e))) = tuple(mult(mult(op_e, sK6_goals_X2), sK5_goals_X3), mult(sK4_goals_X2, mult(op_e, sK3_goals_X3)), mult(mult(sK2_goals_X2, sK1_goals_X3), op_e)). 0.12/0.35 Proof: 0.12/0.35 tuple(mult(op_e, mult(sK6_goals_X2, sK5_goals_X3)), mult(mult(sK4_goals_X2, op_e), sK3_goals_X3), mult(sK2_goals_X2, mult(sK1_goals_X3, op_e))) 0.12/0.35 = { by lemma 8 } 0.12/0.35 tuple(mult(op_c, mult(sK6_goals_X2, sK5_goals_X3)), mult(mult(sK4_goals_X2, op_e), sK3_goals_X3), mult(sK2_goals_X2, mult(sK1_goals_X3, op_e))) 0.12/0.35 = { by axiom 4 (f08) } 0.12/0.35 tuple(mult(mult(op_c, sK6_goals_X2), sK5_goals_X3), mult(mult(sK4_goals_X2, op_e), sK3_goals_X3), mult(sK2_goals_X2, mult(sK1_goals_X3, op_e))) 0.12/0.35 = { by lemma 8 } 0.12/0.35 tuple(mult(mult(op_e, sK6_goals_X2), sK5_goals_X3), mult(mult(sK4_goals_X2, op_e), sK3_goals_X3), mult(sK2_goals_X2, mult(sK1_goals_X3, op_e))) 0.12/0.35 = { by lemma 8 } 0.12/0.35 tuple(mult(mult(op_e, sK6_goals_X2), sK5_goals_X3), mult(mult(sK4_goals_X2, op_c), sK3_goals_X3), mult(sK2_goals_X2, mult(sK1_goals_X3, op_e))) 0.12/0.35 = { by axiom 3 (f10) } 0.12/0.35 tuple(mult(mult(op_e, sK6_goals_X2), sK5_goals_X3), mult(sK4_goals_X2, mult(op_c, sK3_goals_X3)), mult(sK2_goals_X2, mult(sK1_goals_X3, op_e))) 0.12/0.35 = { by lemma 8 } 0.12/0.35 tuple(mult(mult(op_e, sK6_goals_X2), sK5_goals_X3), mult(sK4_goals_X2, mult(op_e, sK3_goals_X3)), mult(sK2_goals_X2, mult(sK1_goals_X3, op_e))) 0.12/0.35 = { by lemma 8 } 0.12/0.35 tuple(mult(mult(op_e, sK6_goals_X2), sK5_goals_X3), mult(sK4_goals_X2, mult(op_e, sK3_goals_X3)), mult(sK2_goals_X2, mult(sK1_goals_X3, op_c))) 0.12/0.35 = { by axiom 5 (f09) } 0.12/0.35 tuple(mult(mult(op_e, sK6_goals_X2), sK5_goals_X3), mult(sK4_goals_X2, mult(op_e, sK3_goals_X3)), mult(mult(sK2_goals_X2, sK1_goals_X3), op_c)) 0.12/0.35 = { by lemma 8 } 0.12/0.35 tuple(mult(mult(op_e, sK6_goals_X2), sK5_goals_X3), mult(sK4_goals_X2, mult(op_e, sK3_goals_X3)), mult(mult(sK2_goals_X2, sK1_goals_X3), op_e)) 0.12/0.35 % SZS output end Proof 0.12/0.35 0.12/0.35 RESULT: Theorem (the conjecture is true). 0.12/0.35 EOF