0.08/0.13 % Problem : theBenchmark.p : TPTP v0.0.0. Released v0.0.0. 0.08/0.14 % Command : twee %s --tstp --casc --quiet --explain-encoding --conditional-encoding if --smaller --drop-non-horn 0.13/0.36 % Computer : n026.cluster.edu 0.13/0.36 % Model : x86_64 x86_64 0.13/0.36 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz 0.13/0.36 % Memory : 8042.1875MB 0.13/0.36 % OS : Linux 3.10.0-693.el7.x86_64 0.13/0.36 % CPULimit : 180 0.13/0.36 % DateTime : Thu Aug 29 10:51:20 EDT 2019 0.13/0.36 % CPUTime : 0.13/0.38 % SZS status Unsatisfiable 0.13/0.38 0.13/0.38 % SZS output start Proof 0.13/0.38 Take the following subset of the input axioms: 0.13/0.38 fof(multiply, axiom, ![A, B]: inverse(double_divide(B, A))=multiply(A, B)). 0.13/0.38 fof(prove_these_axioms_2, negated_conjecture, a2!=multiply(multiply(inverse(b2), b2), a2)). 0.13/0.38 fof(single_axiom, axiom, ![C, A, B]: C=double_divide(inverse(double_divide(double_divide(A, B), inverse(double_divide(A, inverse(C))))), B)). 0.13/0.38 0.13/0.38 Now clausify the problem and encode Horn clauses using encoding 3 of 0.13/0.38 http://www.cse.chalmers.se/~nicsma/papers/horn.pdf. 0.13/0.38 We repeatedly replace C & s=t => u=v by the two clauses: 0.13/0.38 fresh(y, y, x1...xn) = u 0.13/0.38 C => fresh(s, t, x1...xn) = v 0.13/0.38 where fresh is a fresh function symbol and x1..xn are the free 0.13/0.38 variables of u and v. 0.13/0.38 A predicate p(X) is encoded as p(X)=true (this is sound, because the 0.13/0.38 input problem has no model of domain size 1). 0.13/0.38 0.13/0.38 The encoding turns the above axioms into the following unit equations and goals: 0.13/0.38 0.13/0.38 Axiom 1 (multiply): inverse(double_divide(X, Y)) = multiply(Y, X). 0.13/0.38 Axiom 2 (single_axiom): X = double_divide(inverse(double_divide(double_divide(Y, Z), inverse(double_divide(Y, inverse(X))))), Z). 0.13/0.38 0.13/0.38 Lemma 3: double_divide(multiply(multiply(inverse(X), Y), double_divide(Y, Z)), Z) = X. 0.13/0.38 Proof: 0.13/0.38 double_divide(multiply(multiply(inverse(X), Y), double_divide(Y, Z)), Z) 0.13/0.38 = { by axiom 1 (multiply) } 0.13/0.38 double_divide(multiply(inverse(double_divide(Y, inverse(X))), double_divide(Y, Z)), Z) 0.13/0.38 = { by axiom 1 (multiply) } 0.13/0.38 double_divide(inverse(double_divide(double_divide(Y, Z), inverse(double_divide(Y, inverse(X))))), Z) 0.13/0.38 = { by axiom 2 (single_axiom) } 0.13/0.38 X 0.13/0.38 0.13/0.38 Lemma 4: multiply(X, multiply(multiply(inverse(Y), Z), double_divide(Z, X))) = inverse(Y). 0.13/0.38 Proof: 0.13/0.38 multiply(X, multiply(multiply(inverse(Y), Z), double_divide(Z, X))) 0.13/0.38 = { by axiom 1 (multiply) } 0.13/0.38 inverse(double_divide(multiply(multiply(inverse(Y), Z), double_divide(Z, X)), X)) 0.13/0.38 = { by lemma 3 } 0.13/0.38 inverse(Y) 0.13/0.38 0.13/0.38 Lemma 5: double_divide(multiply(inverse(Y), Y), inverse(X)) = X. 0.13/0.38 Proof: 0.13/0.38 double_divide(multiply(inverse(Y), Y), inverse(X)) 0.13/0.38 = { by lemma 4 } 0.13/0.38 double_divide(multiply(multiply(inverse(X), multiply(multiply(inverse(Y), ?), double_divide(?, inverse(X)))), Y), inverse(X)) 0.13/0.38 = { by lemma 3 } 0.13/0.38 double_divide(multiply(multiply(inverse(X), multiply(multiply(inverse(Y), ?), double_divide(?, inverse(X)))), double_divide(multiply(multiply(inverse(Y), ?), double_divide(?, inverse(X))), inverse(X))), inverse(X)) 0.13/0.38 = { by lemma 3 } 0.13/0.38 X 0.13/0.38 0.13/0.38 Lemma 6: multiply(inverse(X), multiply(inverse(Y), Y)) = inverse(X). 0.13/0.38 Proof: 0.13/0.38 multiply(inverse(X), multiply(inverse(Y), Y)) 0.13/0.38 = { by axiom 1 (multiply) } 0.13/0.38 inverse(double_divide(multiply(inverse(Y), Y), inverse(X))) 0.13/0.38 = { by lemma 5 } 0.13/0.38 inverse(X) 0.13/0.38 0.13/0.38 Lemma 7: double_divide(multiply(inverse(X), Y), inverse(Y)) = X. 0.13/0.38 Proof: 0.13/0.38 double_divide(multiply(inverse(X), Y), inverse(Y)) 0.13/0.38 = { by lemma 6 } 0.13/0.38 double_divide(multiply(multiply(inverse(X), multiply(inverse(?), ?)), Y), inverse(Y)) 0.13/0.38 = { by lemma 3 } 0.13/0.38 double_divide(multiply(multiply(inverse(X), multiply(inverse(?), ?)), double_divide(multiply(multiply(inverse(Y), ?), double_divide(?, ?)), ?)), inverse(Y)) 0.13/0.38 = { by lemma 5 } 0.13/0.39 double_divide(multiply(multiply(inverse(X), multiply(inverse(?), ?)), double_divide(multiply(inverse(?), ?), inverse(double_divide(multiply(multiply(inverse(Y), ?), double_divide(?, ?)), ?)))), inverse(Y)) 0.13/0.39 = { by axiom 1 (multiply) } 0.13/0.39 double_divide(multiply(multiply(inverse(X), multiply(inverse(?), ?)), double_divide(multiply(inverse(?), ?), multiply(?, multiply(multiply(inverse(Y), ?), double_divide(?, ?))))), inverse(Y)) 0.13/0.39 = { by lemma 4 } 0.13/0.39 double_divide(multiply(multiply(inverse(X), multiply(inverse(?), ?)), double_divide(multiply(inverse(?), ?), multiply(?, multiply(multiply(inverse(Y), ?), double_divide(?, ?))))), multiply(?, multiply(multiply(inverse(Y), ?), double_divide(?, ?)))) 0.13/0.39 = { by lemma 3 } 0.13/0.39 X 0.13/0.39 0.13/0.39 Lemma 8: double_divide(inverse(Y), inverse(multiply(inverse(Y), X))) = X. 0.13/0.39 Proof: 0.13/0.39 double_divide(inverse(Y), inverse(multiply(inverse(Y), X))) 0.13/0.39 = { by lemma 7 } 0.13/0.39 double_divide(inverse(double_divide(multiply(inverse(Y), X), inverse(X))), inverse(multiply(inverse(Y), X))) 0.13/0.39 = { by axiom 1 (multiply) } 0.13/0.39 double_divide(multiply(inverse(X), multiply(inverse(Y), X)), inverse(multiply(inverse(Y), X))) 0.13/0.39 = { by lemma 7 } 0.13/0.39 X 0.13/0.39 0.13/0.39 Lemma 9: multiply(inverse(X), X) = multiply(inverse(?), ?). 0.13/0.39 Proof: 0.13/0.39 multiply(inverse(X), X) 0.13/0.39 = { by lemma 8 } 0.13/0.39 double_divide(inverse(Y), inverse(multiply(inverse(Y), multiply(inverse(X), X)))) 0.13/0.39 = { by lemma 6 } 0.13/0.39 double_divide(inverse(Y), inverse(inverse(Y))) 0.13/0.39 = { by lemma 6 } 0.13/0.39 double_divide(inverse(Y), inverse(multiply(inverse(Y), multiply(inverse(?), ?)))) 0.13/0.39 = { by lemma 8 } 0.13/0.39 multiply(inverse(?), ?) 0.13/0.39 0.13/0.39 Lemma 10: inverse(multiply(inverse(?), ?)) = multiply(inverse(?), ?). 0.13/0.39 Proof: 0.13/0.39 inverse(multiply(inverse(?), ?)) 0.13/0.39 = { by lemma 8 } 0.13/0.39 double_divide(inverse(?), inverse(multiply(inverse(?), inverse(multiply(inverse(?), ?))))) 0.13/0.39 = { by lemma 6 } 0.13/0.39 double_divide(inverse(?), inverse(multiply(inverse(?), multiply(inverse(multiply(inverse(?), ?)), multiply(inverse(?), ?))))) 0.13/0.39 = { by lemma 6 } 0.13/0.39 double_divide(inverse(?), inverse(inverse(?))) 0.13/0.39 = { by lemma 6 } 0.13/0.39 double_divide(inverse(?), inverse(multiply(inverse(?), multiply(inverse(?), ?)))) 0.13/0.39 = { by lemma 8 } 0.13/0.39 multiply(inverse(?), ?) 0.13/0.39 0.13/0.39 Lemma 11: multiply(inverse(?), ?) = double_divide(?, inverse(?)). 0.13/0.39 Proof: 0.13/0.39 multiply(inverse(?), ?) 0.13/0.39 = { by lemma 3 } 0.13/0.39 double_divide(multiply(multiply(inverse(multiply(inverse(?), ?)), ?), double_divide(?, ?)), ?) 0.13/0.39 = { by lemma 10 } 0.13/0.39 double_divide(multiply(multiply(multiply(inverse(?), ?), ?), double_divide(?, ?)), ?) 0.13/0.39 = { by axiom 1 (multiply) } 0.13/0.39 double_divide(multiply(multiply(inverse(double_divide(?, inverse(?))), ?), double_divide(?, ?)), ?) 0.13/0.39 = { by lemma 3 } 0.13/0.39 double_divide(?, inverse(?)) 0.13/0.39 0.13/0.39 Goal 1 (prove_these_axioms_2): a2 = multiply(multiply(inverse(b2), b2), a2). 0.13/0.39 Proof: 0.13/0.39 a2 0.13/0.39 = { by lemma 8 } 0.13/0.39 double_divide(inverse(multiply(inverse(?), ?)), inverse(multiply(inverse(multiply(inverse(?), ?)), a2))) 0.13/0.39 = { by lemma 6 } 0.13/0.39 double_divide(multiply(inverse(multiply(inverse(?), ?)), multiply(inverse(?), ?)), inverse(multiply(inverse(multiply(inverse(?), ?)), a2))) 0.13/0.39 = { by lemma 5 } 0.13/0.39 multiply(inverse(multiply(inverse(?), ?)), a2) 0.13/0.39 = { by lemma 10 } 0.13/0.39 multiply(multiply(inverse(?), ?), a2) 0.13/0.39 = { by lemma 9 } 0.13/0.39 multiply(multiply(inverse(b2), b2), a2) 0.13/0.39 % SZS output end Proof 0.13/0.39 0.13/0.39 RESULT: Unsatisfiable (the axioms are contradictory). 0.13/0.39 EOF