0.03/0.12 % Problem : theBenchmark.p : TPTP v0.0.0. Released v0.0.0. 0.03/0.12 % Command : twee %s --tstp --casc --quiet --explain-encoding --conditional-encoding if --smaller --drop-non-horn 0.12/0.34 % Computer : n023.cluster.edu 0.12/0.34 % Model : x86_64 x86_64 0.12/0.34 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz 0.12/0.34 % Memory : 8042.1875MB 0.12/0.34 % OS : Linux 3.10.0-693.el7.x86_64 0.12/0.34 % CPULimit : 180 0.12/0.34 % DateTime : Thu Aug 29 13:07:07 EDT 2019 0.12/0.34 % CPUTime : 0.70/0.88 % SZS status Unsatisfiable 0.70/0.88 0.70/0.88 % SZS output start Proof 0.70/0.88 Take the following subset of the input axioms: 0.70/0.88 fof(c01, axiom, ![A]: mult(unit, A)=A). 0.70/0.88 fof(c02, axiom, ![A]: mult(A, unit)=A). 0.70/0.88 fof(c03, axiom, ![A]: unit=mult(A, i(A))). 0.70/0.88 fof(c04, axiom, ![A]: mult(i(A), A)=unit). 0.70/0.88 fof(c05, axiom, ![A, B]: mult(i(A), i(B))=i(mult(A, B))). 0.70/0.88 fof(c06, axiom, ![A, B]: mult(i(A), mult(A, B))=B). 0.70/0.88 fof(c07, axiom, ![A, B]: rd(mult(A, B), B)=A). 0.70/0.88 fof(c08, axiom, ![A, B]: A=mult(rd(A, B), B)). 0.70/0.88 fof(c09, axiom, ![A, B, C]: mult(A, mult(B, mult(A, C)))=mult(mult(A, mult(B, A)), C)). 0.70/0.88 fof(c10, axiom, ![A, B, C]: mult(mult(A, B), C)=mult(mult(A, mult(B, C)), asoc(A, B, C))). 0.70/0.88 fof(c11, axiom, ![A, B]: mult(A, B)=mult(mult(B, A), op_k(A, B))). 0.70/0.88 fof(c12, axiom, ![A, B, C]: op_l(A, B, C)=mult(i(mult(C, B)), mult(C, mult(B, A)))). 0.70/0.88 fof(c22, axiom, ![A, B, C, D, E]: asoc(A, B, asoc(C, D, E))=unit). 0.70/0.88 fof(goals, negated_conjecture, asoc(a, b, op_k(c, d))!=unit). 0.70/0.88 0.70/0.88 Now clausify the problem and encode Horn clauses using encoding 3 of 0.70/0.88 http://www.cse.chalmers.se/~nicsma/papers/horn.pdf. 0.70/0.88 We repeatedly replace C & s=t => u=v by the two clauses: 0.70/0.88 fresh(y, y, x1...xn) = u 0.70/0.88 C => fresh(s, t, x1...xn) = v 0.70/0.88 where fresh is a fresh function symbol and x1..xn are the free 0.70/0.88 variables of u and v. 0.70/0.88 A predicate p(X) is encoded as p(X)=true (this is sound, because the 0.70/0.88 input problem has no model of domain size 1). 0.70/0.88 0.70/0.88 The encoding turns the above axioms into the following unit equations and goals: 0.70/0.88 0.70/0.88 Axiom 1 (c06): mult(i(X), mult(X, Y)) = Y. 0.70/0.88 Axiom 2 (c03): unit = mult(X, i(X)). 0.70/0.88 Axiom 3 (c02): mult(X, unit) = X. 0.70/0.88 Axiom 4 (c01): mult(unit, X) = X. 0.70/0.88 Axiom 5 (c11): mult(X, Y) = mult(mult(Y, X), op_k(X, Y)). 0.70/0.88 Axiom 6 (c12): op_l(X, Y, Z) = mult(i(mult(Z, Y)), mult(Z, mult(Y, X))). 0.70/0.88 Axiom 7 (c05): mult(i(X), i(Y)) = i(mult(X, Y)). 0.70/0.88 Axiom 8 (c22): asoc(X, Y, asoc(Z, W, V)) = unit. 0.70/0.88 Axiom 9 (c08): X = mult(rd(X, Y), Y). 0.70/0.88 Axiom 10 (c07): rd(mult(X, Y), Y) = X. 0.70/0.88 Axiom 11 (c09): mult(X, mult(Y, mult(X, Z))) = mult(mult(X, mult(Y, X)), Z). 0.70/0.88 Axiom 12 (c04): mult(i(X), X) = unit. 0.70/0.88 Axiom 13 (c10): mult(mult(X, Y), Z) = mult(mult(X, mult(Y, Z)), asoc(X, Y, Z)). 0.70/0.88 0.70/0.88 Lemma 14: mult(i(mult(Y, X)), Y) = op_l(i(X), X, Y). 0.70/0.88 Proof: 0.70/0.88 mult(i(mult(Y, X)), Y) 0.70/0.88 = { by axiom 3 (c02) } 0.70/0.88 mult(i(mult(Y, X)), mult(Y, unit)) 0.70/0.88 = { by axiom 2 (c03) } 0.70/0.88 mult(i(mult(Y, X)), mult(Y, mult(X, i(X)))) 0.70/0.88 = { by axiom 6 (c12) } 0.70/0.88 op_l(i(X), X, Y) 0.70/0.88 0.70/0.88 Lemma 15: i(i(X)) = X. 0.70/0.88 Proof: 0.70/0.88 i(i(X)) 0.70/0.88 = { by axiom 3 (c02) } 0.70/0.88 mult(i(i(X)), unit) 0.70/0.88 = { by axiom 12 (c04) } 0.70/0.88 mult(i(i(X)), mult(i(X), X)) 0.70/0.88 = { by axiom 1 (c06) } 0.70/0.88 X 0.70/0.88 0.70/0.88 Lemma 16: i(mult(X, i(Y))) = mult(i(X), Y). 0.70/0.88 Proof: 0.70/0.88 i(mult(X, i(Y))) 0.70/0.88 = { by axiom 7 (c05) } 0.70/0.88 mult(i(X), i(i(Y))) 0.70/0.88 = { by lemma 15 } 0.70/0.88 mult(i(X), Y) 0.70/0.88 0.70/0.88 Lemma 17: mult(i(mult(Y, X)), mult(X, Y)) = op_k(X, Y). 0.70/0.88 Proof: 0.70/0.88 mult(i(mult(Y, X)), mult(X, Y)) 0.70/0.88 = { by axiom 5 (c11) } 0.70/0.89 mult(i(mult(Y, X)), mult(mult(Y, X), op_k(X, Y))) 0.70/0.89 = { by axiom 1 (c06) } 0.70/0.89 op_k(X, Y) 0.70/0.89 0.70/0.89 Lemma 18: mult(mult(Y, X), i(mult(X, Y))) = op_k(i(X), i(Y)). 0.70/0.89 Proof: 0.70/0.89 mult(mult(Y, X), i(mult(X, Y))) 0.70/0.89 = { by lemma 15 } 0.70/0.89 mult(i(i(mult(Y, X))), i(mult(X, Y))) 0.70/0.89 = { by axiom 7 (c05) } 0.70/0.89 mult(i(mult(i(Y), i(X))), i(mult(X, Y))) 0.70/0.89 = { by axiom 7 (c05) } 0.70/0.89 mult(i(mult(i(Y), i(X))), mult(i(X), i(Y))) 0.70/0.89 = { by lemma 17 } 0.70/0.89 op_k(i(X), i(Y)) 0.70/0.89 0.70/0.89 Lemma 19: i(op_k(i(X), i(Y))) = op_k(X, Y). 0.70/0.89 Proof: 0.70/0.89 i(op_k(i(X), i(Y))) 0.70/0.89 = { by lemma 18 } 0.70/0.89 i(mult(mult(Y, X), i(mult(X, Y)))) 0.70/0.89 = { by lemma 16 } 0.70/0.89 mult(i(mult(Y, X)), mult(X, Y)) 0.70/0.89 = { by lemma 17 } 0.70/0.89 op_k(X, Y) 0.70/0.89 0.70/0.89 Lemma 20: i(mult(X, rd(Y, Z))) = mult(i(X), rd(Z, Y)). 0.70/0.89 Proof: 0.70/0.89 i(mult(X, rd(Y, Z))) 0.70/0.89 = { by axiom 7 (c05) } 0.70/0.89 mult(i(X), i(rd(Y, Z))) 0.70/0.89 = { by axiom 10 (c07) } 0.70/0.89 mult(i(X), rd(mult(i(rd(Y, Z)), mult(rd(Y, Z), Z)), mult(rd(Y, Z), Z))) 0.70/0.89 = { by axiom 1 (c06) } 0.70/0.89 mult(i(X), rd(Z, mult(rd(Y, Z), Z))) 0.70/0.89 = { by axiom 9 (c08) } 0.70/0.89 mult(i(X), rd(Z, Y)) 0.70/0.89 0.70/0.89 Goal 1 (goals): asoc(a, b, op_k(c, d)) = unit. 0.70/0.89 Proof: 0.70/0.89 asoc(a, b, op_k(c, d)) 0.70/0.89 = { by axiom 10 (c07) } 0.70/0.89 asoc(a, b, op_k(rd(mult(c, d), d), d)) 0.70/0.89 = { by lemma 17 } 0.70/0.89 asoc(a, b, mult(i(mult(d, rd(mult(c, d), d))), mult(rd(mult(c, d), d), d))) 0.70/0.89 = { by axiom 3 (c02) } 0.70/0.89 asoc(a, b, mult(i(mult(d, mult(rd(mult(c, d), d), unit))), mult(rd(mult(c, d), d), d))) 0.70/0.89 = { by axiom 2 (c03) } 0.70/0.89 asoc(a, b, mult(i(mult(d, mult(rd(mult(c, d), d), mult(d, i(d))))), mult(rd(mult(c, d), d), d))) 0.70/0.89 = { by axiom 11 (c09) } 0.70/0.89 asoc(a, b, mult(i(mult(mult(d, mult(rd(mult(c, d), d), d)), i(d))), mult(rd(mult(c, d), d), d))) 0.70/0.89 = { by axiom 9 (c08) } 0.70/0.89 asoc(a, b, mult(i(mult(mult(d, mult(c, d)), i(d))), mult(rd(mult(c, d), d), d))) 0.70/0.89 = { by axiom 9 (c08) } 0.70/0.89 asoc(a, b, mult(i(mult(mult(d, mult(c, d)), i(d))), mult(c, d))) 0.70/0.89 = { by axiom 1 (c06) } 0.70/0.89 asoc(a, b, mult(i(mult(mult(d, mult(c, d)), i(d))), mult(i(d), mult(d, mult(c, d))))) 0.70/0.89 = { by lemma 17 } 0.70/0.89 asoc(a, b, op_k(i(d), mult(d, mult(c, d)))) 0.70/0.89 = { by lemma 19 } 0.70/0.89 asoc(a, b, i(op_k(i(i(d)), i(mult(d, mult(c, d)))))) 0.70/0.89 = { by lemma 15 } 0.70/0.89 asoc(a, b, i(op_k(d, i(mult(d, mult(c, d)))))) 0.70/0.89 = { by lemma 19 } 0.70/0.89 asoc(a, b, i(i(op_k(i(d), i(i(mult(d, mult(c, d)))))))) 0.70/0.89 = { by lemma 15 } 0.70/0.89 asoc(a, b, op_k(i(d), i(i(mult(d, mult(c, d)))))) 0.70/0.89 = { by lemma 18 } 0.70/0.89 asoc(a, b, mult(mult(i(mult(d, mult(c, d))), d), i(mult(d, i(mult(d, mult(c, d))))))) 0.70/0.89 = { by lemma 16 } 0.70/0.89 asoc(a, b, mult(mult(i(mult(d, mult(c, d))), d), mult(i(d), mult(d, mult(c, d))))) 0.70/0.89 = { by axiom 1 (c06) } 0.70/0.89 asoc(a, b, mult(mult(i(mult(d, mult(c, d))), d), mult(c, d))) 0.70/0.89 = { by axiom 13 (c10) } 0.70/0.89 asoc(a, b, mult(mult(i(mult(d, mult(c, d))), mult(d, mult(c, d))), asoc(i(mult(d, mult(c, d))), d, mult(c, d)))) 0.70/0.89 = { by axiom 12 (c04) } 0.70/0.89 asoc(a, b, mult(unit, asoc(i(mult(d, mult(c, d))), d, mult(c, d)))) 0.70/0.89 = { by axiom 4 (c01) } 0.70/0.89 asoc(a, b, asoc(i(mult(d, mult(c, d))), d, mult(c, d))) 0.70/0.89 = { by axiom 8 (c22) } 0.70/0.89 unit 0.70/0.89 % SZS output end Proof 0.70/0.89 0.70/0.89 RESULT: Unsatisfiable (the axioms are contradictory). 0.70/0.89 EOF