0.03/0.12 % Problem : theBenchmark.p : TPTP v0.0.0. Released v0.0.0. 0.03/0.13 % Command : twee %s --tstp --casc --quiet --explain-encoding --conditional-encoding if --smaller --drop-non-horn 0.13/0.35 % Computer : n010.cluster.edu 0.13/0.35 % Model : x86_64 x86_64 0.13/0.35 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz 0.13/0.35 % Memory : 8042.1875MB 0.13/0.35 % OS : Linux 3.10.0-693.el7.x86_64 0.13/0.35 % CPULimit : 180 0.13/0.35 % DateTime : Thu Aug 29 10:19:36 EDT 2019 0.13/0.35 % CPUTime : 0.20/0.50 % SZS status Unsatisfiable 0.20/0.50 0.20/0.50 % SZS output start Proof 0.20/0.50 Take the following subset of the input axioms: 0.20/0.52 fof(additive_id1, axiom, ![X]: X=add(X, additive_identity)). 0.20/0.52 fof(additive_inverse1, axiom, ![X]: add(X, inverse(X))=multiplicative_identity). 0.20/0.52 fof(commutativity_of_add, axiom, ![X, Y]: add(X, Y)=add(Y, X)). 0.20/0.52 fof(commutativity_of_multiply, axiom, ![X, Y]: multiply(X, Y)=multiply(Y, X)). 0.20/0.52 fof(distributivity1, axiom, ![X, Y, Z]: multiply(add(X, Y), add(X, Z))=add(X, multiply(Y, Z))). 0.20/0.52 fof(distributivity2, axiom, ![X, Y, Z]: multiply(X, add(Y, Z))=add(multiply(X, Y), multiply(X, Z))). 0.20/0.52 fof(multiplicative_id1, axiom, ![X]: multiply(X, multiplicative_identity)=X). 0.20/0.52 fof(multiplicative_inverse1, axiom, ![X]: multiply(X, inverse(X))=additive_identity). 0.20/0.52 fof(prove_associativity, negated_conjecture, multiply(a, multiply(b, c))!=multiply(multiply(a, b), c)). 0.20/0.52 0.20/0.52 Now clausify the problem and encode Horn clauses using encoding 3 of 0.20/0.52 http://www.cse.chalmers.se/~nicsma/papers/horn.pdf. 0.20/0.52 We repeatedly replace C & s=t => u=v by the two clauses: 0.20/0.52 fresh(y, y, x1...xn) = u 0.20/0.52 C => fresh(s, t, x1...xn) = v 0.20/0.52 where fresh is a fresh function symbol and x1..xn are the free 0.20/0.52 variables of u and v. 0.20/0.52 A predicate p(X) is encoded as p(X)=true (this is sound, because the 0.20/0.52 input problem has no model of domain size 1). 0.20/0.52 0.20/0.52 The encoding turns the above axioms into the following unit equations and goals: 0.20/0.52 0.20/0.52 Axiom 1 (commutativity_of_multiply): multiply(X, Y) = multiply(Y, X). 0.20/0.52 Axiom 2 (additive_inverse1): add(X, inverse(X)) = multiplicative_identity. 0.20/0.52 Axiom 3 (distributivity2): multiply(X, add(Y, Z)) = add(multiply(X, Y), multiply(X, Z)). 0.20/0.52 Axiom 4 (multiplicative_inverse1): multiply(X, inverse(X)) = additive_identity. 0.20/0.52 Axiom 5 (commutativity_of_add): add(X, Y) = add(Y, X). 0.20/0.52 Axiom 6 (distributivity1): multiply(add(X, Y), add(X, Z)) = add(X, multiply(Y, Z)). 0.20/0.52 Axiom 7 (multiplicative_id1): multiply(X, multiplicative_identity) = X. 0.20/0.52 Axiom 8 (additive_id1): X = add(X, additive_identity). 0.20/0.52 0.20/0.52 Lemma 9: multiply(multiplicative_identity, X) = X. 0.20/0.52 Proof: 0.20/0.52 multiply(multiplicative_identity, X) 0.20/0.52 = { by axiom 1 (commutativity_of_multiply) } 0.20/0.52 multiply(X, multiplicative_identity) 0.20/0.52 = { by axiom 7 (multiplicative_id1) } 0.20/0.52 X 0.20/0.52 0.20/0.52 Lemma 10: add(additive_identity, X) = X. 0.20/0.52 Proof: 0.20/0.52 add(additive_identity, X) 0.20/0.52 = { by axiom 5 (commutativity_of_add) } 0.20/0.52 add(X, additive_identity) 0.20/0.52 = { by axiom 8 (additive_id1) } 0.20/0.52 X 0.20/0.52 0.20/0.52 Lemma 11: multiply(X, add(Y, inverse(X))) = multiply(X, Y). 0.20/0.52 Proof: 0.20/0.52 multiply(X, add(Y, inverse(X))) 0.20/0.52 = { by axiom 5 (commutativity_of_add) } 0.20/0.52 multiply(X, add(inverse(X), Y)) 0.20/0.52 = { by axiom 3 (distributivity2) } 0.20/0.52 add(multiply(X, inverse(X)), multiply(X, Y)) 0.20/0.52 = { by axiom 4 (multiplicative_inverse1) } 0.20/0.52 add(additive_identity, multiply(X, Y)) 0.20/0.52 = { by lemma 10 } 0.20/0.52 multiply(X, Y) 0.20/0.52 0.20/0.52 Lemma 12: multiply(X, additive_identity) = additive_identity. 0.20/0.52 Proof: 0.20/0.52 multiply(X, additive_identity) 0.20/0.52 = { by lemma 11 } 0.20/0.52 multiply(X, add(additive_identity, inverse(X))) 0.20/0.52 = { by lemma 10 } 0.20/0.52 multiply(X, inverse(X)) 0.20/0.52 = { by axiom 4 (multiplicative_inverse1) } 0.20/0.52 additive_identity 0.20/0.52 0.20/0.52 Lemma 13: add(X, multiplicative_identity) = multiplicative_identity. 0.20/0.52 Proof: 0.20/0.52 add(X, multiplicative_identity) 0.20/0.52 = { by axiom 5 (commutativity_of_add) } 0.20/0.52 add(multiplicative_identity, X) 0.20/0.52 = { by lemma 9 } 0.20/0.52 multiply(multiplicative_identity, add(multiplicative_identity, X)) 0.20/0.52 = { by axiom 8 (additive_id1) } 0.20/0.52 multiply(add(multiplicative_identity, additive_identity), add(multiplicative_identity, X)) 0.20/0.52 = { by axiom 6 (distributivity1) } 0.20/0.52 add(multiplicative_identity, multiply(additive_identity, X)) 0.20/0.52 = { by axiom 1 (commutativity_of_multiply) } 0.20/0.52 add(multiplicative_identity, multiply(X, additive_identity)) 0.20/0.52 = { by lemma 12 } 0.20/0.52 add(multiplicative_identity, additive_identity) 0.20/0.52 = { by axiom 8 (additive_id1) } 0.20/0.52 multiplicative_identity 0.20/0.52 0.20/0.52 Lemma 14: add(X, multiply(X, Y)) = multiply(X, add(Y, multiplicative_identity)). 0.20/0.52 Proof: 0.20/0.52 add(X, multiply(X, Y)) 0.20/0.52 = { by axiom 7 (multiplicative_id1) } 0.20/0.52 add(multiply(X, multiplicative_identity), multiply(X, Y)) 0.20/0.52 = { by axiom 3 (distributivity2) } 0.20/0.52 multiply(X, add(multiplicative_identity, Y)) 0.20/0.52 = { by axiom 5 (commutativity_of_add) } 0.20/0.52 multiply(X, add(Y, multiplicative_identity)) 0.20/0.52 0.20/0.52 Lemma 15: multiply(X, add(inverse(X), Y)) = multiply(X, Y). 0.20/0.52 Proof: 0.20/0.52 multiply(X, add(inverse(X), Y)) 0.20/0.52 = { by axiom 5 (commutativity_of_add) } 0.20/0.52 multiply(X, add(Y, inverse(X))) 0.20/0.52 = { by lemma 11 } 0.20/0.52 multiply(X, Y) 0.20/0.52 0.20/0.52 Lemma 16: add(X, multiply(Y, inverse(X))) = add(X, Y). 0.20/0.52 Proof: 0.20/0.52 add(X, multiply(Y, inverse(X))) 0.20/0.52 = { by axiom 1 (commutativity_of_multiply) } 0.20/0.52 add(X, multiply(inverse(X), Y)) 0.20/0.52 = { by axiom 6 (distributivity1) } 0.20/0.52 multiply(add(X, inverse(X)), add(X, Y)) 0.20/0.52 = { by axiom 2 (additive_inverse1) } 0.20/0.52 multiply(multiplicative_identity, add(X, Y)) 0.20/0.52 = { by lemma 9 } 0.38/0.54 add(X, Y) 0.38/0.54 0.38/0.54 Goal 1 (prove_associativity): multiply(a, multiply(b, c)) = multiply(multiply(a, b), c). 0.38/0.54 Proof: 0.38/0.54 multiply(a, multiply(b, c)) 0.38/0.54 = { by axiom 1 (commutativity_of_multiply) } 0.38/0.54 multiply(a, multiply(c, b)) 0.38/0.54 = { by axiom 8 (additive_id1) } 0.38/0.54 add(multiply(a, multiply(c, b)), additive_identity) 0.38/0.54 = { by lemma 12 } 0.38/0.54 add(multiply(a, multiply(c, b)), multiply(c, additive_identity)) 0.38/0.54 = { by axiom 1 (commutativity_of_multiply) } 0.38/0.54 add(multiply(a, multiply(c, b)), multiply(additive_identity, c)) 0.38/0.54 = { by axiom 6 (distributivity1) } 0.38/0.54 multiply(add(multiply(a, multiply(c, b)), additive_identity), add(multiply(a, multiply(c, b)), c)) 0.38/0.54 = { by axiom 8 (additive_id1) } 0.38/0.54 multiply(multiply(a, multiply(c, b)), add(multiply(a, multiply(c, b)), c)) 0.38/0.54 = { by axiom 5 (commutativity_of_add) } 0.38/0.54 multiply(multiply(a, multiply(c, b)), add(c, multiply(a, multiply(c, b)))) 0.38/0.54 = { by axiom 1 (commutativity_of_multiply) } 0.38/0.54 multiply(multiply(a, multiply(c, b)), add(c, multiply(multiply(c, b), a))) 0.38/0.54 = { by axiom 6 (distributivity1) } 0.38/0.54 multiply(multiply(a, multiply(c, b)), multiply(add(c, multiply(c, b)), add(c, a))) 0.38/0.54 = { by lemma 14 } 0.38/0.54 multiply(multiply(a, multiply(c, b)), multiply(multiply(c, add(b, multiplicative_identity)), add(c, a))) 0.38/0.54 = { by lemma 13 } 0.38/0.54 multiply(multiply(a, multiply(c, b)), multiply(multiply(c, multiplicative_identity), add(c, a))) 0.38/0.54 = { by axiom 7 (multiplicative_id1) } 0.38/0.54 multiply(multiply(a, multiply(c, b)), multiply(c, add(c, a))) 0.38/0.54 = { by axiom 8 (additive_id1) } 0.38/0.54 multiply(multiply(a, multiply(c, b)), multiply(add(c, additive_identity), add(c, a))) 0.38/0.54 = { by axiom 6 (distributivity1) } 0.38/0.54 multiply(multiply(a, multiply(c, b)), add(c, multiply(additive_identity, a))) 0.38/0.54 = { by axiom 1 (commutativity_of_multiply) } 0.38/0.54 multiply(multiply(a, multiply(c, b)), add(c, multiply(a, additive_identity))) 0.38/0.54 = { by lemma 12 } 0.38/0.54 multiply(multiply(a, multiply(c, b)), add(c, additive_identity)) 0.38/0.54 = { by axiom 8 (additive_id1) } 0.38/0.54 multiply(multiply(a, multiply(c, b)), c) 0.38/0.54 = { by axiom 1 (commutativity_of_multiply) } 0.38/0.54 multiply(c, multiply(a, multiply(c, b))) 0.38/0.54 = { by axiom 1 (commutativity_of_multiply) } 0.38/0.54 multiply(c, multiply(a, multiply(b, c))) 0.38/0.54 = { by axiom 8 (additive_id1) } 0.38/0.54 multiply(c, multiply(a, multiply(b, add(c, additive_identity)))) 0.38/0.54 = { by axiom 4 (multiplicative_inverse1) } 0.38/0.54 multiply(c, multiply(a, multiply(b, add(c, multiply(inverse(c), inverse(inverse(c))))))) 0.38/0.54 = { by axiom 1 (commutativity_of_multiply) } 0.38/0.54 multiply(c, multiply(a, multiply(b, add(c, multiply(inverse(inverse(c)), inverse(c)))))) 0.38/0.54 = { by lemma 16 } 0.38/0.54 multiply(c, multiply(a, multiply(b, add(c, inverse(inverse(c)))))) 0.38/0.54 = { by axiom 5 (commutativity_of_add) } 0.38/0.54 multiply(c, multiply(a, multiply(b, add(inverse(inverse(c)), c)))) 0.38/0.54 = { by axiom 7 (multiplicative_id1) } 0.38/0.54 multiply(c, multiply(a, multiply(b, add(inverse(inverse(c)), multiply(c, multiplicative_identity))))) 0.38/0.54 = { by axiom 2 (additive_inverse1) } 0.38/0.54 multiply(c, multiply(a, multiply(b, add(inverse(inverse(c)), multiply(c, add(inverse(c), inverse(inverse(c)))))))) 0.38/0.54 = { by lemma 15 } 0.38/0.54 multiply(c, multiply(a, multiply(b, add(inverse(inverse(c)), multiply(c, inverse(inverse(c))))))) 0.38/0.54 = { by axiom 1 (commutativity_of_multiply) } 0.38/0.54 multiply(c, multiply(a, multiply(b, add(inverse(inverse(c)), multiply(inverse(inverse(c)), c))))) 0.38/0.54 = { by lemma 14 } 0.38/0.54 multiply(c, multiply(a, multiply(b, multiply(inverse(inverse(c)), add(c, multiplicative_identity))))) 0.38/0.54 = { by lemma 13 } 0.38/0.54 multiply(c, multiply(a, multiply(b, multiply(inverse(inverse(c)), multiplicative_identity)))) 0.38/0.54 = { by axiom 7 (multiplicative_id1) } 0.38/0.54 multiply(c, multiply(a, multiply(b, inverse(inverse(c))))) 0.38/0.54 = { by lemma 15 } 0.38/0.54 multiply(c, add(inverse(c), multiply(a, multiply(b, inverse(inverse(c)))))) 0.38/0.54 = { by axiom 1 (commutativity_of_multiply) } 0.38/0.54 multiply(c, add(inverse(c), multiply(multiply(b, inverse(inverse(c))), a))) 0.38/0.54 = { by axiom 6 (distributivity1) } 0.38/0.54 multiply(c, multiply(add(inverse(c), multiply(b, inverse(inverse(c)))), add(inverse(c), a))) 0.38/0.54 = { by lemma 16 } 0.38/0.54 multiply(c, multiply(add(inverse(c), b), add(inverse(c), a))) 0.38/0.54 = { by axiom 6 (distributivity1) } 0.38/0.54 multiply(c, add(inverse(c), multiply(b, a))) 0.38/0.54 = { by lemma 15 } 0.38/0.54 multiply(c, multiply(b, a)) 0.38/0.54 = { by axiom 1 (commutativity_of_multiply) } 0.38/0.54 multiply(c, multiply(a, b)) 0.38/0.54 = { by axiom 1 (commutativity_of_multiply) } 0.38/0.54 multiply(multiply(a, b), c) 0.38/0.54 % SZS output end Proof 0.38/0.54 0.38/0.54 RESULT: Unsatisfiable (the axioms are contradictory). 0.38/0.54 EOF