0.11/0.12 % Problem : theBenchmark.p : TPTP v0.0.0. Released v0.0.0. 0.11/0.13 % Command : twee %s --tstp --casc --quiet --explain-encoding --conditional-encoding if --smaller --drop-non-horn 0.14/0.34 % Computer : n020.cluster.edu 0.14/0.34 % Model : x86_64 x86_64 0.14/0.34 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz 0.14/0.34 % Memory : 8042.1875MB 0.14/0.34 % OS : Linux 3.10.0-693.el7.x86_64 0.14/0.34 % CPULimit : 180 0.14/0.34 % DateTime : Thu Aug 29 09:45:55 EDT 2019 0.14/0.34 % CPUTime : 0.14/0.38 % SZS status Unsatisfiable 0.14/0.38 0.14/0.38 % SZS output start Proof 0.14/0.38 Take the following subset of the input axioms: 0.14/0.38 fof(b_definition, axiom, ![Y, X, Z]: apply(X, apply(Y, Z))=apply(apply(apply(b, X), Y), Z)). 0.14/0.38 fof(l_definition, axiom, ![Y, X]: apply(apply(l, X), Y)=apply(X, apply(Y, Y))). 0.14/0.38 fof(m_definition, axiom, ![X]: apply(X, X)=apply(m, X)). 0.14/0.38 fof(prove_fixed_point, negated_conjecture, ![Y]: apply(Y, f(Y))!=apply(f(Y), apply(Y, f(Y)))). 0.14/0.38 0.14/0.38 Now clausify the problem and encode Horn clauses using encoding 3 of 0.14/0.38 http://www.cse.chalmers.se/~nicsma/papers/horn.pdf. 0.14/0.38 We repeatedly replace C & s=t => u=v by the two clauses: 0.14/0.38 fresh(y, y, x1...xn) = u 0.14/0.38 C => fresh(s, t, x1...xn) = v 0.14/0.38 where fresh is a fresh function symbol and x1..xn are the free 0.14/0.38 variables of u and v. 0.14/0.38 A predicate p(X) is encoded as p(X)=true (this is sound, because the 0.14/0.38 input problem has no model of domain size 1). 0.14/0.38 0.14/0.38 The encoding turns the above axioms into the following unit equations and goals: 0.14/0.38 0.14/0.38 Axiom 1 (m_definition): apply(X, X) = apply(m, X). 0.14/0.38 Axiom 2 (l_definition): apply(apply(l, X), Y) = apply(X, apply(Y, Y)). 0.14/0.38 Axiom 3 (b_definition): apply(X, apply(Y, Z)) = apply(apply(apply(b, X), Y), Z). 0.14/0.38 0.14/0.38 Goal 1 (prove_fixed_point): apply(X, f(X)) = apply(f(X), apply(X, f(X))). 0.14/0.38 The goal is true when: 0.14/0.38 X = apply(apply(b, m), l) 0.14/0.38 0.14/0.38 Proof: 0.14/0.38 apply(apply(apply(b, m), l), f(apply(apply(b, m), l))) 0.14/0.38 = { by axiom 3 (b_definition) } 0.14/0.38 apply(m, apply(l, f(apply(apply(b, m), l)))) 0.14/0.38 = { by axiom 1 (m_definition) } 0.14/0.38 apply(apply(l, f(apply(apply(b, m), l))), apply(l, f(apply(apply(b, m), l)))) 0.14/0.38 = { by axiom 2 (l_definition) } 0.14/0.38 apply(f(apply(apply(b, m), l)), apply(apply(l, f(apply(apply(b, m), l))), apply(l, f(apply(apply(b, m), l))))) 0.14/0.38 = { by axiom 1 (m_definition) } 0.14/0.38 apply(f(apply(apply(b, m), l)), apply(m, apply(l, f(apply(apply(b, m), l))))) 0.14/0.38 = { by axiom 3 (b_definition) } 0.14/0.38 apply(f(apply(apply(b, m), l)), apply(apply(apply(b, m), l), f(apply(apply(b, m), l)))) 0.14/0.38 % SZS output end Proof 0.14/0.38 0.14/0.38 RESULT: Unsatisfiable (the axioms are contradictory). 0.14/0.39 EOF