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.12/0.34 % Computer : n016.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 11:47:53 EDT 2019 0.12/0.34 % CPUTime : 0.20/0.44 % SZS status Unsatisfiable 0.20/0.44 0.20/0.44 % SZS output start Proof 0.20/0.44 Take the following subset of the input axioms: 0.20/0.44 fof(c01, axiom, ![A, B]: B=mult(A, ld(A, B))). 0.20/0.44 fof(c02, axiom, ![A, B]: B=ld(A, mult(A, B))). 0.20/0.44 fof(c03, axiom, ![A, B]: A=mult(rd(A, B), B)). 0.20/0.44 fof(c05, axiom, ![A]: mult(A, unit)=A). 0.20/0.44 fof(c07, axiom, ![A, B, C]: mult(mult(mult(A, B), A), mult(A, C))=mult(A, mult(mult(mult(B, A), A), C))). 0.20/0.45 fof(goals, negated_conjecture, mult(a, mult(b, c))!=mult(rd(mult(a, b), a), mult(a, c))). 0.20/0.45 0.20/0.45 Now clausify the problem and encode Horn clauses using encoding 3 of 0.20/0.45 http://www.cse.chalmers.se/~nicsma/papers/horn.pdf. 0.20/0.45 We repeatedly replace C & s=t => u=v by the two clauses: 0.20/0.45 fresh(y, y, x1...xn) = u 0.20/0.45 C => fresh(s, t, x1...xn) = v 0.20/0.45 where fresh is a fresh function symbol and x1..xn are the free 0.20/0.45 variables of u and v. 0.20/0.45 A predicate p(X) is encoded as p(X)=true (this is sound, because the 0.20/0.45 input problem has no model of domain size 1). 0.20/0.45 0.20/0.45 The encoding turns the above axioms into the following unit equations and goals: 0.20/0.45 0.20/0.45 Axiom 1 (c05): mult(X, unit) = X. 0.20/0.45 Axiom 2 (c03): X = mult(rd(X, Y), Y). 0.20/0.45 Axiom 3 (c01): X = mult(Y, ld(Y, X)). 0.20/0.45 Axiom 4 (c02): X = ld(Y, mult(Y, X)). 0.20/0.45 Axiom 5 (c07): mult(mult(mult(X, Y), X), mult(X, Z)) = mult(X, mult(mult(mult(Y, X), X), Z)). 0.20/0.45 0.20/0.45 Goal 1 (goals): mult(a, mult(b, c)) = mult(rd(mult(a, b), a), mult(a, c)). 0.20/0.45 Proof: 0.20/0.45 mult(a, mult(b, c)) 0.20/0.45 = { by axiom 4 (c02) } 0.20/0.45 mult(a, mult(ld(a, mult(a, b)), c)) 0.20/0.45 = { by axiom 2 (c03) } 0.20/0.45 mult(a, mult(ld(a, mult(rd(mult(a, b), a), a)), c)) 0.20/0.45 = { by axiom 2 (c03) } 0.20/0.45 mult(a, mult(ld(a, mult(mult(rd(rd(mult(a, b), a), a), a), a)), c)) 0.20/0.45 = { by axiom 3 (c01) } 0.20/0.45 mult(a, mult(ld(a, mult(mult(mult(a, ld(a, rd(rd(mult(a, b), a), a))), a), a)), c)) 0.20/0.45 = { by axiom 1 (c05) } 0.20/0.45 mult(a, mult(ld(a, mult(mult(mult(a, ld(a, rd(rd(mult(a, b), a), a))), a), mult(a, unit))), c)) 0.20/0.45 = { by axiom 5 (c07) } 0.20/0.45 mult(a, mult(ld(a, mult(a, mult(mult(mult(ld(a, rd(rd(mult(a, b), a), a)), a), a), unit))), c)) 0.20/0.45 = { by axiom 1 (c05) } 0.20/0.45 mult(a, mult(ld(a, mult(a, mult(mult(ld(a, rd(rd(mult(a, b), a), a)), a), a))), c)) 0.20/0.45 = { by axiom 4 (c02) } 0.20/0.45 mult(a, mult(mult(mult(ld(a, rd(rd(mult(a, b), a), a)), a), a), c)) 0.20/0.45 = { by axiom 4 (c02) } 0.20/0.45 mult(a, ld(a, mult(a, mult(mult(mult(ld(a, rd(rd(mult(a, b), a), a)), a), a), c)))) 0.20/0.45 = { by axiom 5 (c07) } 0.20/0.45 mult(a, ld(a, mult(mult(mult(a, ld(a, rd(rd(mult(a, b), a), a))), a), mult(a, c)))) 0.20/0.45 = { by axiom 3 (c01) } 0.20/0.45 mult(a, ld(a, mult(mult(rd(rd(mult(a, b), a), a), a), mult(a, c)))) 0.20/0.45 = { by axiom 2 (c03) } 0.20/0.45 mult(a, ld(a, mult(rd(mult(a, b), a), mult(a, c)))) 0.20/0.45 = { by axiom 3 (c01) } 0.20/0.45 mult(rd(mult(a, b), a), mult(a, c)) 0.20/0.45 % SZS output end Proof 0.20/0.45 0.20/0.45 RESULT: Unsatisfiable (the axioms are contradictory). 0.20/0.45 EOF