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