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.33 % Computer : n017.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 12:39:19 EDT 2019 0.12/0.33 % CPUTime : 1.66/1.84 % SZS status Unsatisfiable 1.66/1.84 1.66/1.84 % SZS output start Proof 1.66/1.84 Take the following subset of the input axioms: 1.66/1.84 fof(b_definition, axiom, ![X, Y, Z]: apply(X, apply(Y, Z))=apply(apply(apply(b, X), Y), Z)). 1.66/1.84 fof(prove_f_combinator, negated_conjecture, ![X]: apply(apply(apply(X, f(X)), g(X)), h(X))!=apply(apply(h(X), g(X)), f(X))). 1.66/1.84 fof(t_definition, axiom, ![X, Y]: apply(Y, X)=apply(apply(t, X), Y)). 1.66/1.84 1.66/1.84 Now clausify the problem and encode Horn clauses using encoding 3 of 1.66/1.84 http://www.cse.chalmers.se/~nicsma/papers/horn.pdf. 1.66/1.84 We repeatedly replace C & s=t => u=v by the two clauses: 1.66/1.84 fresh(y, y, x1...xn) = u 1.66/1.84 C => fresh(s, t, x1...xn) = v 1.66/1.84 where fresh is a fresh function symbol and x1..xn are the free 1.66/1.84 variables of u and v. 1.66/1.84 A predicate p(X) is encoded as p(X)=true (this is sound, because the 1.66/1.84 input problem has no model of domain size 1). 1.66/1.84 1.66/1.84 The encoding turns the above axioms into the following unit equations and goals: 1.66/1.84 1.66/1.84 Axiom 1 (t_definition): apply(X, Y) = apply(apply(t, Y), X). 1.66/1.84 Axiom 2 (b_definition): apply(X, apply(Y, Z)) = apply(apply(apply(b, X), Y), Z). 1.66/1.84 1.66/1.84 Goal 1 (prove_f_combinator): apply(apply(apply(X, f(X)), g(X)), h(X)) = apply(apply(h(X), g(X)), f(X)). 1.66/1.84 The goal is true when: 1.66/1.84 X = apply(apply(b, apply(t, t)), apply(apply(b, b), apply(apply(b, b), t))) 1.66/1.84 1.66/1.84 Proof: 1.66/1.84 apply(apply(apply(apply(apply(b, apply(t, t)), apply(apply(b, b), apply(apply(b, b), t))), f(apply(apply(b, apply(t, t)), apply(apply(b, b), apply(apply(b, b), t))))), g(apply(apply(b, apply(t, t)), apply(apply(b, b), apply(apply(b, b), t))))), h(apply(apply(b, apply(t, t)), apply(apply(b, b), apply(apply(b, b), t))))) 1.66/1.84 = { by axiom 2 (b_definition) } 1.66/1.84 apply(apply(apply(apply(t, t), apply(apply(apply(b, b), apply(apply(b, b), t)), f(apply(apply(b, apply(t, t)), apply(apply(b, b), apply(apply(b, b), t)))))), g(apply(apply(b, apply(t, t)), apply(apply(b, b), apply(apply(b, b), t))))), h(apply(apply(b, apply(t, t)), apply(apply(b, b), apply(apply(b, b), t))))) 1.66/1.84 = { by axiom 1 (t_definition) } 1.66/1.84 apply(apply(apply(apply(apply(apply(b, b), apply(apply(b, b), t)), f(apply(apply(b, apply(t, t)), apply(apply(b, b), apply(apply(b, b), t))))), t), g(apply(apply(b, apply(t, t)), apply(apply(b, b), apply(apply(b, b), t))))), h(apply(apply(b, apply(t, t)), apply(apply(b, b), apply(apply(b, b), t))))) 1.66/1.84 = { by axiom 2 (b_definition) } 1.66/1.84 apply(apply(apply(apply(b, apply(apply(apply(b, b), t), f(apply(apply(b, apply(t, t)), apply(apply(b, b), apply(apply(b, b), t)))))), t), g(apply(apply(b, apply(t, t)), apply(apply(b, b), apply(apply(b, b), t))))), h(apply(apply(b, apply(t, t)), apply(apply(b, b), apply(apply(b, b), t))))) 1.66/1.84 = { by axiom 2 (b_definition) } 1.66/1.84 apply(apply(apply(apply(apply(b, b), t), f(apply(apply(b, apply(t, t)), apply(apply(b, b), apply(apply(b, b), t))))), apply(t, g(apply(apply(b, apply(t, t)), apply(apply(b, b), apply(apply(b, b), t)))))), h(apply(apply(b, apply(t, t)), apply(apply(b, b), apply(apply(b, b), t))))) 1.66/1.84 = { by axiom 2 (b_definition) } 1.66/1.84 apply(apply(apply(b, apply(t, f(apply(apply(b, apply(t, t)), apply(apply(b, b), apply(apply(b, b), t)))))), apply(t, g(apply(apply(b, apply(t, t)), apply(apply(b, b), apply(apply(b, b), t)))))), h(apply(apply(b, apply(t, t)), apply(apply(b, b), apply(apply(b, b), t))))) 1.66/1.84 = { by axiom 2 (b_definition) } 1.66/1.84 apply(apply(t, f(apply(apply(b, apply(t, t)), apply(apply(b, b), apply(apply(b, b), t))))), apply(apply(t, g(apply(apply(b, apply(t, t)), apply(apply(b, b), apply(apply(b, b), t))))), h(apply(apply(b, apply(t, t)), apply(apply(b, b), apply(apply(b, b), t)))))) 1.66/1.84 = { by axiom 1 (t_definition) } 1.66/1.84 apply(apply(t, f(apply(apply(b, apply(t, t)), apply(apply(b, b), apply(apply(b, b), t))))), apply(h(apply(apply(b, apply(t, t)), apply(apply(b, b), apply(apply(b, b), t)))), g(apply(apply(b, apply(t, t)), apply(apply(b, b), apply(apply(b, b), t)))))) 1.66/1.84 = { by axiom 1 (t_definition) } 1.66/1.84 apply(apply(h(apply(apply(b, apply(t, t)), apply(apply(b, b), apply(apply(b, b), t)))), g(apply(apply(b, apply(t, t)), apply(apply(b, b), apply(apply(b, b), t))))), f(apply(apply(b, apply(t, t)), apply(apply(b, b), apply(apply(b, b), t))))) 1.66/1.84 % SZS output end Proof 1.66/1.84 1.66/1.84 RESULT: Unsatisfiable (the axioms are contradictory). 1.66/1.85 EOF