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