0.00/0.10 % Problem : theBenchmark.p : TPTP v0.0.0. Released v0.0.0. 0.00/0.10 % Command : twee %s --tstp --casc --quiet --explain-encoding --conditional-encoding if --smaller --drop-non-horn 0.09/0.30 % Computer : n032.cluster.edu 0.09/0.30 % Model : x86_64 x86_64 0.09/0.30 % CPU : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz 0.09/0.30 % Memory : 8042.1875MB 0.09/0.30 % OS : Linux 3.10.0-693.el7.x86_64 0.09/0.30 % CPULimit : 960 0.09/0.30 % WCLimit : 120 0.09/0.30 % DateTime : Thu Jul 2 07:06:34 EDT 2020 0.09/0.30 % CPUTime : 108.05/13.95 % SZS status Theorem 108.05/13.95 108.05/13.95 % SZS output start Proof 108.05/13.95 Take the following subset of the input axioms: 108.05/13.95 fof(dt_k2_funct_1, axiom, ![A]: ((relation(function_inverse(A)) & function(function_inverse(A))) <= (function(A) & relation(A)))). 108.05/13.95 fof(t23_funct_1, axiom, ![A, B]: ((relation(B) & function(B)) => ![C]: ((in(A, relation_dom(B)) => apply(C, apply(B, A))=apply(relation_composition(B, C), A)) <= (function(C) & relation(C))))). 108.05/13.95 fof(t54_funct_1, axiom, ![A]: ((![B]: ((function(B) & relation(B)) => ((relation_dom(B)=relation_rng(A) & ![C, D]: (((D=apply(B, C) & in(C, relation_rng(A))) => (in(D, relation_dom(A)) & apply(A, D)=C)) & ((apply(A, D)=C & in(D, relation_dom(A))) => (in(C, relation_rng(A)) & D=apply(B, C))))) <=> function_inverse(A)=B)) <= one_to_one(A)) <= (relation(A) & function(A)))). 108.05/13.95 fof(t56_funct_1, conjecture, ![A, B]: ((function(B) & relation(B)) => ((A=apply(relation_composition(B, function_inverse(B)), A) & apply(function_inverse(B), apply(B, A))=A) <= (one_to_one(B) & in(A, relation_dom(B)))))). 108.05/13.95 108.05/13.95 Now clausify the problem and encode Horn clauses using encoding 3 of 108.05/13.95 http://www.cse.chalmers.se/~nicsma/papers/horn.pdf. 108.05/13.95 We repeatedly replace C & s=t => u=v by the two clauses: 108.05/13.95 fresh(y, y, x1...xn) = u 108.05/13.95 C => fresh(s, t, x1...xn) = v 108.05/13.95 where fresh is a fresh function symbol and x1..xn are the free 108.05/13.95 variables of u and v. 108.05/13.95 A predicate p(X) is encoded as p(X)=true (this is sound, because the 108.05/13.95 input problem has no model of domain size 1). 108.05/13.95 108.05/13.95 The encoding turns the above axioms into the following unit equations and goals: 108.05/13.95 108.05/13.95 Axiom 1 (dt_k2_funct_1): fresh33(X, X, Y) = relation(function_inverse(Y)). 108.05/13.95 Axiom 2 (dt_k2_funct_1): fresh32(X, X, Y) = true2. 108.05/13.95 Axiom 3 (dt_k2_funct_1_1): fresh31(X, X, Y) = function(function_inverse(Y)). 108.05/13.95 Axiom 4 (dt_k2_funct_1_1): fresh30(X, X, Y) = true2. 108.05/13.95 Axiom 5 (t23_funct_1): fresh77(X, X, Y, Z, W) = apply(W, apply(Z, Y)). 108.05/13.95 Axiom 6 (t23_funct_1): fresh79(X, X, Y, Z, W) = apply(relation_composition(Z, W), Y). 108.05/13.95 Axiom 7 (t23_funct_1): fresh78(X, X, Y, Z, W) = fresh79(relation(Z), true2, Y, Z, W). 108.05/13.95 Axiom 8 (t23_funct_1): fresh76(X, X, Y, Z, W) = fresh77(relation(W), true2, Y, Z, W). 108.05/13.95 Axiom 9 (t23_funct_1): fresh75(X, X, Y, Z, W) = fresh76(function(Z), true2, Y, Z, W). 108.05/13.95 Axiom 10 (t54_funct_1_2): fresh60(X, X, Y, Z, W) = Z. 108.05/13.95 Axiom 11 (t54_funct_1_2): fresh56(X, X, Y, Z, W, V) = apply(Z, V). 108.05/13.95 Axiom 12 (t54_funct_1_2): fresh59(X, X, Y, Z, W, V) = fresh60(function_inverse(Y), Z, Z, W, V). 108.05/13.95 Axiom 13 (t54_funct_1_2): fresh58(X, X, Y, Z, W, V) = fresh59(relation(Y), true2, Y, Z, W, V). 108.05/13.95 Axiom 14 (t54_funct_1_2): fresh57(X, X, Y, Z, W, V) = fresh58(relation(Z), true2, Y, Z, W, V). 108.05/13.95 Axiom 15 (t54_funct_1_2): fresh55(X, X, Y, Z, W, V) = fresh56(apply(Y, W), V, Y, Z, W, V). 108.05/13.95 Axiom 16 (t54_funct_1_2): fresh54(X, X, Y, Z, W, V) = fresh55(function(Y), true2, Y, Z, W, V). 108.05/13.95 Axiom 17 (t54_funct_1_2): fresh53(X, X, Y, Z, W, V) = fresh54(function(Z), true2, Y, Z, W, V). 108.05/13.95 Axiom 18 (dt_k2_funct_1_1): fresh31(function(X), true2, X) = fresh30(relation(X), true2, X). 108.05/13.95 Axiom 19 (dt_k2_funct_1): fresh33(function(X), true2, X) = fresh32(relation(X), true2, X). 108.05/13.95 Axiom 20 (t23_funct_1): fresh75(function(X), true2, Y, Z, X) = fresh78(in(Y, relation_dom(Z)), true2, Y, Z, X). 108.05/13.95 Axiom 21 (t54_funct_1_2): fresh53(one_to_one(X), true2, X, Y, Z, W) = fresh57(in(Z, relation_dom(X)), true2, X, Y, Z, W). 108.05/13.95 Axiom 22 (t56_funct_1): relation(sK12_t56_funct_1_B) = true2. 108.05/13.95 Axiom 23 (t56_funct_1_1): in(sK11_t56_funct_1_A, relation_dom(sK12_t56_funct_1_B)) = true2. 108.05/13.95 Axiom 24 (t56_funct_1_2): function(sK12_t56_funct_1_B) = true2. 108.05/13.96 Axiom 25 (t56_funct_1_3): one_to_one(sK12_t56_funct_1_B) = true2. 108.05/13.96 108.05/13.96 Lemma 26: function(function_inverse(sK12_t56_funct_1_B)) = true2. 108.05/13.96 Proof: 108.05/13.96 function(function_inverse(sK12_t56_funct_1_B)) 108.05/13.96 = { by axiom 3 (dt_k2_funct_1_1) } 108.05/13.96 fresh31(true2, true2, sK12_t56_funct_1_B) 108.05/13.96 = { by axiom 24 (t56_funct_1_2) } 108.05/13.96 fresh31(function(sK12_t56_funct_1_B), true2, sK12_t56_funct_1_B) 108.05/13.96 = { by axiom 18 (dt_k2_funct_1_1) } 108.05/13.96 fresh30(relation(sK12_t56_funct_1_B), true2, sK12_t56_funct_1_B) 108.05/13.96 = { by axiom 22 (t56_funct_1) } 108.05/13.96 fresh30(true2, true2, sK12_t56_funct_1_B) 108.05/13.96 = { by axiom 4 (dt_k2_funct_1_1) } 108.05/13.96 true2 108.05/13.96 108.05/13.96 Lemma 27: relation(function_inverse(sK12_t56_funct_1_B)) = true2. 108.05/13.96 Proof: 108.05/13.96 relation(function_inverse(sK12_t56_funct_1_B)) 108.05/13.96 = { by axiom 1 (dt_k2_funct_1) } 108.05/13.96 fresh33(true2, true2, sK12_t56_funct_1_B) 108.05/13.96 = { by axiom 24 (t56_funct_1_2) } 108.05/13.96 fresh33(function(sK12_t56_funct_1_B), true2, sK12_t56_funct_1_B) 108.05/13.96 = { by axiom 19 (dt_k2_funct_1) } 108.05/13.96 fresh32(relation(sK12_t56_funct_1_B), true2, sK12_t56_funct_1_B) 108.05/13.96 = { by axiom 22 (t56_funct_1) } 108.05/13.96 fresh32(true2, true2, sK12_t56_funct_1_B) 108.05/13.96 = { by axiom 2 (dt_k2_funct_1) } 108.05/13.96 true2 108.05/13.96 108.05/13.96 Lemma 28: apply(function_inverse(sK12_t56_funct_1_B), apply(sK12_t56_funct_1_B, sK11_t56_funct_1_A)) = sK11_t56_funct_1_A. 108.05/13.96 Proof: 108.05/13.96 apply(function_inverse(sK12_t56_funct_1_B), apply(sK12_t56_funct_1_B, sK11_t56_funct_1_A)) 108.05/13.96 = { by axiom 11 (t54_funct_1_2) } 108.05/13.96 fresh56(apply(sK12_t56_funct_1_B, sK11_t56_funct_1_A), apply(sK12_t56_funct_1_B, sK11_t56_funct_1_A), sK12_t56_funct_1_B, function_inverse(sK12_t56_funct_1_B), sK11_t56_funct_1_A, apply(sK12_t56_funct_1_B, sK11_t56_funct_1_A)) 108.05/13.96 = { by axiom 15 (t54_funct_1_2) } 108.05/13.96 fresh55(true2, true2, sK12_t56_funct_1_B, function_inverse(sK12_t56_funct_1_B), sK11_t56_funct_1_A, apply(sK12_t56_funct_1_B, sK11_t56_funct_1_A)) 108.05/13.96 = { by axiom 24 (t56_funct_1_2) } 108.05/13.96 fresh55(function(sK12_t56_funct_1_B), true2, sK12_t56_funct_1_B, function_inverse(sK12_t56_funct_1_B), sK11_t56_funct_1_A, apply(sK12_t56_funct_1_B, sK11_t56_funct_1_A)) 108.05/13.96 = { by axiom 16 (t54_funct_1_2) } 108.05/13.96 fresh54(true2, true2, sK12_t56_funct_1_B, function_inverse(sK12_t56_funct_1_B), sK11_t56_funct_1_A, apply(sK12_t56_funct_1_B, sK11_t56_funct_1_A)) 108.05/13.96 = { by lemma 26 } 108.05/13.96 fresh54(function(function_inverse(sK12_t56_funct_1_B)), true2, sK12_t56_funct_1_B, function_inverse(sK12_t56_funct_1_B), sK11_t56_funct_1_A, apply(sK12_t56_funct_1_B, sK11_t56_funct_1_A)) 108.05/13.96 = { by axiom 17 (t54_funct_1_2) } 108.05/13.96 fresh53(true2, true2, sK12_t56_funct_1_B, function_inverse(sK12_t56_funct_1_B), sK11_t56_funct_1_A, apply(sK12_t56_funct_1_B, sK11_t56_funct_1_A)) 108.05/13.96 = { by axiom 25 (t56_funct_1_3) } 108.05/13.96 fresh53(one_to_one(sK12_t56_funct_1_B), true2, sK12_t56_funct_1_B, function_inverse(sK12_t56_funct_1_B), sK11_t56_funct_1_A, apply(sK12_t56_funct_1_B, sK11_t56_funct_1_A)) 108.05/13.96 = { by axiom 21 (t54_funct_1_2) } 108.05/13.96 fresh57(in(sK11_t56_funct_1_A, relation_dom(sK12_t56_funct_1_B)), true2, sK12_t56_funct_1_B, function_inverse(sK12_t56_funct_1_B), sK11_t56_funct_1_A, apply(sK12_t56_funct_1_B, sK11_t56_funct_1_A)) 108.05/13.96 = { by axiom 23 (t56_funct_1_1) } 108.05/13.96 fresh57(true2, true2, sK12_t56_funct_1_B, function_inverse(sK12_t56_funct_1_B), sK11_t56_funct_1_A, apply(sK12_t56_funct_1_B, sK11_t56_funct_1_A)) 108.05/13.96 = { by axiom 14 (t54_funct_1_2) } 108.05/13.96 fresh58(relation(function_inverse(sK12_t56_funct_1_B)), true2, sK12_t56_funct_1_B, function_inverse(sK12_t56_funct_1_B), sK11_t56_funct_1_A, apply(sK12_t56_funct_1_B, sK11_t56_funct_1_A)) 108.05/13.96 = { by lemma 27 } 108.05/13.96 fresh58(true2, true2, sK12_t56_funct_1_B, function_inverse(sK12_t56_funct_1_B), sK11_t56_funct_1_A, apply(sK12_t56_funct_1_B, sK11_t56_funct_1_A)) 108.05/13.96 = { by axiom 13 (t54_funct_1_2) } 108.05/13.96 fresh59(relation(sK12_t56_funct_1_B), true2, sK12_t56_funct_1_B, function_inverse(sK12_t56_funct_1_B), sK11_t56_funct_1_A, apply(sK12_t56_funct_1_B, sK11_t56_funct_1_A)) 108.05/13.96 = { by axiom 22 (t56_funct_1) } 108.05/13.96 fresh59(true2, true2, sK12_t56_funct_1_B, function_inverse(sK12_t56_funct_1_B), sK11_t56_funct_1_A, apply(sK12_t56_funct_1_B, sK11_t56_funct_1_A)) 108.05/13.96 = { by axiom 12 (t54_funct_1_2) } 108.05/13.96 fresh60(function_inverse(sK12_t56_funct_1_B), function_inverse(sK12_t56_funct_1_B), function_inverse(sK12_t56_funct_1_B), sK11_t56_funct_1_A, apply(sK12_t56_funct_1_B, sK11_t56_funct_1_A)) 108.05/13.96 = { by axiom 10 (t54_funct_1_2) } 108.05/13.96 sK11_t56_funct_1_A 108.05/13.96 108.05/13.96 Goal 1 (t56_funct_1_4): tuple4(sK11_t56_funct_1_A, apply(function_inverse(sK12_t56_funct_1_B), apply(sK12_t56_funct_1_B, sK11_t56_funct_1_A))) = tuple4(apply(relation_composition(sK12_t56_funct_1_B, function_inverse(sK12_t56_funct_1_B)), sK11_t56_funct_1_A), sK11_t56_funct_1_A). 108.05/13.96 Proof: 108.05/13.96 tuple4(sK11_t56_funct_1_A, apply(function_inverse(sK12_t56_funct_1_B), apply(sK12_t56_funct_1_B, sK11_t56_funct_1_A))) 108.05/13.96 = { by lemma 28 } 108.05/13.96 tuple4(apply(function_inverse(sK12_t56_funct_1_B), apply(sK12_t56_funct_1_B, sK11_t56_funct_1_A)), apply(function_inverse(sK12_t56_funct_1_B), apply(sK12_t56_funct_1_B, sK11_t56_funct_1_A))) 108.05/13.96 = { by axiom 5 (t23_funct_1) } 108.05/13.97 tuple4(fresh77(true2, true2, sK11_t56_funct_1_A, sK12_t56_funct_1_B, function_inverse(sK12_t56_funct_1_B)), apply(function_inverse(sK12_t56_funct_1_B), apply(sK12_t56_funct_1_B, sK11_t56_funct_1_A))) 108.05/13.97 = { by lemma 27 } 108.05/13.97 tuple4(fresh77(relation(function_inverse(sK12_t56_funct_1_B)), true2, sK11_t56_funct_1_A, sK12_t56_funct_1_B, function_inverse(sK12_t56_funct_1_B)), apply(function_inverse(sK12_t56_funct_1_B), apply(sK12_t56_funct_1_B, sK11_t56_funct_1_A))) 108.05/13.97 = { by axiom 8 (t23_funct_1) } 108.05/13.97 tuple4(fresh76(true2, true2, sK11_t56_funct_1_A, sK12_t56_funct_1_B, function_inverse(sK12_t56_funct_1_B)), apply(function_inverse(sK12_t56_funct_1_B), apply(sK12_t56_funct_1_B, sK11_t56_funct_1_A))) 108.05/13.97 = { by axiom 24 (t56_funct_1_2) } 108.05/13.97 tuple4(fresh76(function(sK12_t56_funct_1_B), true2, sK11_t56_funct_1_A, sK12_t56_funct_1_B, function_inverse(sK12_t56_funct_1_B)), apply(function_inverse(sK12_t56_funct_1_B), apply(sK12_t56_funct_1_B, sK11_t56_funct_1_A))) 108.05/13.97 = { by axiom 9 (t23_funct_1) } 108.05/13.97 tuple4(fresh75(true2, true2, sK11_t56_funct_1_A, sK12_t56_funct_1_B, function_inverse(sK12_t56_funct_1_B)), apply(function_inverse(sK12_t56_funct_1_B), apply(sK12_t56_funct_1_B, sK11_t56_funct_1_A))) 108.05/13.97 = { by lemma 26 } 108.05/13.97 tuple4(fresh75(function(function_inverse(sK12_t56_funct_1_B)), true2, sK11_t56_funct_1_A, sK12_t56_funct_1_B, function_inverse(sK12_t56_funct_1_B)), apply(function_inverse(sK12_t56_funct_1_B), apply(sK12_t56_funct_1_B, sK11_t56_funct_1_A))) 108.05/13.97 = { by axiom 20 (t23_funct_1) } 108.05/13.97 tuple4(fresh78(in(sK11_t56_funct_1_A, relation_dom(sK12_t56_funct_1_B)), true2, sK11_t56_funct_1_A, sK12_t56_funct_1_B, function_inverse(sK12_t56_funct_1_B)), apply(function_inverse(sK12_t56_funct_1_B), apply(sK12_t56_funct_1_B, sK11_t56_funct_1_A))) 108.05/13.97 = { by axiom 23 (t56_funct_1_1) } 108.05/13.97 tuple4(fresh78(true2, true2, sK11_t56_funct_1_A, sK12_t56_funct_1_B, function_inverse(sK12_t56_funct_1_B)), apply(function_inverse(sK12_t56_funct_1_B), apply(sK12_t56_funct_1_B, sK11_t56_funct_1_A))) 108.05/13.97 = { by axiom 7 (t23_funct_1) } 108.05/13.97 tuple4(fresh79(relation(sK12_t56_funct_1_B), true2, sK11_t56_funct_1_A, sK12_t56_funct_1_B, function_inverse(sK12_t56_funct_1_B)), apply(function_inverse(sK12_t56_funct_1_B), apply(sK12_t56_funct_1_B, sK11_t56_funct_1_A))) 108.05/13.97 = { by axiom 22 (t56_funct_1) } 108.05/13.97 tuple4(fresh79(true2, true2, sK11_t56_funct_1_A, sK12_t56_funct_1_B, function_inverse(sK12_t56_funct_1_B)), apply(function_inverse(sK12_t56_funct_1_B), apply(sK12_t56_funct_1_B, sK11_t56_funct_1_A))) 108.05/13.97 = { by axiom 6 (t23_funct_1) } 108.05/13.97 tuple4(apply(relation_composition(sK12_t56_funct_1_B, function_inverse(sK12_t56_funct_1_B)), sK11_t56_funct_1_A), apply(function_inverse(sK12_t56_funct_1_B), apply(sK12_t56_funct_1_B, sK11_t56_funct_1_A))) 108.05/13.97 = { by lemma 28 } 108.05/13.97 tuple4(apply(relation_composition(sK12_t56_funct_1_B, function_inverse(sK12_t56_funct_1_B)), sK11_t56_funct_1_A), sK11_t56_funct_1_A) 108.05/13.97 % SZS output end Proof 108.05/13.97 108.05/13.97 RESULT: Theorem (the conjecture is true). 108.05/13.99 EOF