0.00/0.06 % Problem : theBenchmark.p : TPTP v0.0.0. Released v0.0.0. 0.00/0.07 % Command : twee %s --tstp --casc --quiet --conditional-encoding if --smaller --drop-non-horn 0.02/0.40 % Computer : n021.star.cs.uiowa.edu 0.02/0.40 % Model : x86_64 x86_64 0.02/0.40 % CPU : Intel(R) Xeon(R) CPU E5-2609 0 @ 2.40GHz 0.02/0.40 % Memory : 32218.625MB 0.02/0.40 % OS : Linux 3.10.0-693.2.2.el7.x86_64 0.02/0.40 % CPULimit : 300 0.02/0.40 % DateTime : Fri Jul 13 14:53:02 CDT 2018 0.02/0.40 % CPUTime : 1.46/1.89 % SZS status Theorem 1.46/1.89 1.46/1.89 % SZS output start Proof 1.46/1.89 Take the following subset of the input axioms: 1.46/1.89 fof('ass(cond(33, 0), 0)', axiom, 1.46/1.89 ![Vd46, Vd47, Vd48]: 1.46/1.89 vplus(vplus(Vd46, Vd47), Vd48)=vplus(Vd46, vplus(Vd47, Vd48))). 1.46/1.89 fof('ass(cond(61, 0), 0)', axiom, 1.46/1.89 ![Vd78, Vd79]: vplus(Vd79, Vd78)=vplus(Vd78, Vd79)). 1.46/1.89 fof('holds(285, 440, 0)', axiom, 1.46/1.89 vmul(vd436, vplus(vd437, vd439))=vplus(vmul(vd436, vd437), 1.46/1.89 vmul(vd436, vd439))). 1.46/1.89 fof('holds(286, 441, 3)', conjecture, 1.46/1.89 vplus(vplus(vmul(vd436, vd437), vmul(vd436, vd439)), 1.46/1.89 vd436)=vplus(vmul(vd436, vd437), 1.46/1.89 vplus(vmul(vd436, vd439), vd436))). 1.46/1.89 1.46/1.89 Now clausify the problem and encode Horn clauses using encoding 3 of 1.46/1.89 http://www.cse.chalmers.se/~nicsma/papers/horn.pdf. 1.46/1.89 We repeatedly replace C & s=t => u=v by the two clauses: 1.46/1.89 $$fresh(y, y, x1...xn) = u 1.46/1.89 C => $$fresh(s, t, x1...xn) = v 1.46/1.89 where $$fresh is a fresh function symbol and x1..xn are the free 1.46/1.89 variables of u and v. 1.46/1.89 A predicate p(X) is encoded as p(X)=$$true (this is sound, because the 1.46/1.89 input problem has no model of domain size 1). 1.46/1.89 1.46/1.89 The encoding turns the above axioms into the following unit equations and goals: 1.46/1.89 1.46/1.89 Axiom 52 (holds(285, 440, 0)): vmul(vd436, vplus(vd437, vd439)) = vplus(vmul(vd436, vd437), vmul(vd436, vd439)). 1.46/1.89 Axiom 64 (ass(cond(61, 0), 0)): vplus(X, Y) = vplus(Y, X). 1.46/1.89 Axiom 74 (ass(cond(33, 0), 0)): vplus(vplus(X, Y), Z) = vplus(X, vplus(Y, Z)). 1.46/1.89 1.46/1.89 Goal 1 (holds(286, 441, 3)): vplus(vplus(vmul(vd436, vd437), vmul(vd436, vd439)), vd436) = vplus(vmul(vd436, vd437), vplus(vmul(vd436, vd439), vd436)). 1.46/1.89 Proof: 1.46/1.89 vplus(vplus(vmul(vd436, vd437), vmul(vd436, vd439)), vd436) 1.46/1.89 = { by axiom 52 (holds(285, 440, 0)) } 1.46/1.89 vplus(vmul(vd436, vplus(vd437, vd439)), vd436) 1.46/1.89 = { by axiom 64 (ass(cond(61, 0), 0)) } 1.46/1.89 vplus(vd436, vmul(vd436, vplus(vd437, vd439))) 1.46/1.89 = { by axiom 52 (holds(285, 440, 0)) } 1.46/1.89 vplus(vd436, vplus(vmul(vd436, vd437), vmul(vd436, vd439))) 1.46/1.89 = { by axiom 74 (ass(cond(33, 0), 0)) } 1.46/1.89 vplus(vplus(vd436, vmul(vd436, vd437)), vmul(vd436, vd439)) 1.46/1.89 = { by axiom 64 (ass(cond(61, 0), 0)) } 1.46/1.89 vplus(vplus(vmul(vd436, vd437), vd436), vmul(vd436, vd439)) 1.46/1.89 = { by axiom 74 (ass(cond(33, 0), 0)) } 1.46/1.89 vplus(vmul(vd436, vd437), vplus(vd436, vmul(vd436, vd439))) 1.46/1.89 = { by axiom 64 (ass(cond(61, 0), 0)) } 1.46/1.89 vplus(vmul(vd436, vd437), vplus(vmul(vd436, vd439), vd436)) 1.46/1.89 % SZS output end Proof 1.46/1.89 1.46/1.89 RESULT: Theorem (the conjecture is true). 1.56/2.02 EOF