0.07/0.12 % Problem : theBenchmark.p : TPTP v0.0.0. Released v0.0.0. 0.07/0.13 % Command : twee %s --tstp --casc --quiet --explain-encoding --conditional-encoding if --smaller --drop-non-horn 0.13/0.34 % Computer : n017.cluster.edu 0.13/0.34 % Model : x86_64 x86_64 0.13/0.34 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz 0.13/0.34 % Memory : 8042.1875MB 0.13/0.34 % OS : Linux 3.10.0-693.el7.x86_64 0.13/0.34 % CPULimit : 180 0.13/0.34 % DateTime : Thu Aug 29 13:41:34 EDT 2019 0.13/0.34 % CPUTime : 164.03/164.38 % SZS status Unsatisfiable 164.03/164.38 164.03/164.39 % SZS output start Proof 164.03/164.39 Take the following subset of the input axioms: 179.53/179.90 fof(a_times_b_is_c, negated_conjecture, multiply(a, b)=c). 179.53/179.90 fof(associativity_for_addition, axiom, ![X, Y, Z]: add(X, add(Y, Z))=add(add(X, Y), Z)). 179.53/179.90 fof(associativity_for_multiplication, axiom, ![X, Y, Z]: multiply(X, multiply(Y, Z))=multiply(multiply(X, Y), Z)). 179.53/179.90 fof(commutativity_for_addition, axiom, ![X, Y]: add(Y, X)=add(X, Y)). 179.53/179.90 fof(distribute1, axiom, ![X, Y, Z]: multiply(X, add(Y, Z))=add(multiply(X, Y), multiply(X, Z))). 179.53/179.90 fof(distribute2, axiom, ![X, Y, Z]: add(multiply(X, Z), multiply(Y, Z))=multiply(add(X, Y), Z)). 179.53/179.90 fof(left_additive_identity, axiom, ![X]: X=add(additive_identity, X)). 179.53/179.90 fof(left_additive_inverse, axiom, ![X]: add(additive_inverse(X), X)=additive_identity). 179.53/179.90 fof(prove_commutativity, negated_conjecture, multiply(b, a)!=c). 179.53/179.90 fof(right_additive_identity, axiom, ![X]: add(X, additive_identity)=X). 179.53/179.90 fof(right_additive_inverse, axiom, ![X]: additive_identity=add(X, additive_inverse(X))). 179.53/179.90 fof(x_fourthed_is_x, hypothesis, ![X]: multiply(X, multiply(X, multiply(X, X)))=X). 179.53/179.90 179.53/179.90 Now clausify the problem and encode Horn clauses using encoding 3 of 179.53/179.90 http://www.cse.chalmers.se/~nicsma/papers/horn.pdf. 179.53/179.90 We repeatedly replace C & s=t => u=v by the two clauses: 179.53/179.90 fresh(y, y, x1...xn) = u 179.53/179.90 C => fresh(s, t, x1...xn) = v 179.53/179.90 where fresh is a fresh function symbol and x1..xn are the free 179.53/179.90 variables of u and v. 179.53/179.90 A predicate p(X) is encoded as p(X)=true (this is sound, because the 179.53/179.90 input problem has no model of domain size 1). 179.53/179.90 179.53/179.90 The encoding turns the above axioms into the following unit equations and goals: 179.53/179.90 179.53/179.90 Axiom 1 (associativity_for_addition): add(X, add(Y, Z)) = add(add(X, Y), Z). 179.53/179.90 Axiom 2 (associativity_for_multiplication): multiply(X, multiply(Y, Z)) = multiply(multiply(X, Y), Z). 179.53/179.90 Axiom 3 (left_additive_identity): X = add(additive_identity, X). 179.53/179.90 Axiom 4 (left_additive_inverse): add(additive_inverse(X), X) = additive_identity. 179.53/179.90 Axiom 5 (distribute2): add(multiply(X, Y), multiply(Z, Y)) = multiply(add(X, Z), Y). 179.53/179.90 Axiom 6 (right_additive_identity): add(X, additive_identity) = X. 179.53/179.90 Axiom 7 (distribute1): multiply(X, add(Y, Z)) = add(multiply(X, Y), multiply(X, Z)). 179.53/179.90 Axiom 8 (right_additive_inverse): additive_identity = add(X, additive_inverse(X)). 179.53/179.90 Axiom 9 (commutativity_for_addition): add(X, Y) = add(Y, X). 179.53/179.90 Axiom 10 (a_times_b_is_c): multiply(a, b) = c. 180.10/180.41 EOF