TSTP Solution File: SET838-1 by Twee---2.4.2

View Problem - Process Solution

%------------------------------------------------------------------------------
% File     : Twee---2.4.2
% Problem  : SET838-1 : TPTP v8.1.2. Released v3.2.0.
% Transfm  : none
% Format   : tptp:raw
% Command  : parallel-twee %s --tstp --conditional-encoding if --smaller --drop-non-horn --give-up-on-saturation --explain-encoding --formal-proof

% Computer : n029.cluster.edu
% Model    : x86_64 x86_64
% CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 2.10GHz
% Memory   : 8042.1875MB
% OS       : Linux 3.10.0-693.el7.x86_64
% CPULimit : 300s
% WCLimit  : 300s
% DateTime : Thu Aug 31 15:33:27 EDT 2023

% Result   : Unsatisfiable 45.35s 6.32s
% Output   : Proof 45.35s
% Verified : 
% SZS Type : -

% Comments : 
%------------------------------------------------------------------------------
%----WARNING: Could not form TPTP format derivation
%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.00/0.16  % Problem  : SET838-1 : TPTP v8.1.2. Released v3.2.0.
% 0.15/0.17  % Command  : parallel-twee %s --tstp --conditional-encoding if --smaller --drop-non-horn --give-up-on-saturation --explain-encoding --formal-proof
% 0.16/0.38  % Computer : n029.cluster.edu
% 0.16/0.38  % Model    : x86_64 x86_64
% 0.16/0.38  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.16/0.38  % Memory   : 8042.1875MB
% 0.16/0.38  % OS       : Linux 3.10.0-693.el7.x86_64
% 0.16/0.38  % CPULimit : 300
% 0.16/0.38  % WCLimit  : 300
% 0.16/0.38  % DateTime : Sat Aug 26 09:40:39 EDT 2023
% 0.16/0.38  % CPUTime  : 
% 45.35/6.32  Command-line arguments: --no-flatten-goal
% 45.35/6.32  
% 45.35/6.32  % SZS status Unsatisfiable
% 45.35/6.32  
% 45.35/6.32  % SZS output start Proof
% 45.35/6.32  Take the following subset of the input axioms:
% 45.35/6.33    fof(cls_Datatype_Ooption_Odistinct__1__iff1_0, axiom, ![T_a, V_a_H]: c_Datatype_Ooption_ONone!=c_Datatype_Ooption_OSome(V_a_H, T_a)).
% 45.35/6.33    fof(cls_Datatype_Ooption_Odistinct__2__iff1_0, axiom, ![T_a2, V_a_H2]: c_Datatype_Ooption_OSome(V_a_H2, T_a2)!=c_Datatype_Ooption_ONone).
% 45.35/6.33    fof(cls_Datatype__Universe_OAtom__not__Scons__iff1_0, axiom, ![V_a, T_b, V_M, V_N, T_a2]: c_Datatype__Universe_OAtom(V_a, T_a2, T_b)!=c_Datatype__Universe_OScons(V_M, V_N, T_a2, T_b)).
% 45.35/6.33    fof(cls_Datatype__Universe_OIn0__not__In1__iff1_0, axiom, ![T_a2, T_b2, V_M2, V_N2]: c_Datatype__Universe_OIn0(V_M2, T_a2, T_b2)!=c_Datatype__Universe_OIn1(V_N2, T_a2, T_b2)).
% 45.35/6.33    fof(cls_Datatype__Universe_OIn1__not__In0__iff1_0, axiom, ![T_a2, T_b2, V_M2, V_N2]: c_Datatype__Universe_OIn1(V_N2, T_a2, T_b2)!=c_Datatype__Universe_OIn0(V_M2, T_a2, T_b2)).
% 45.35/6.33    fof(cls_Datatype__Universe_OLeaf__not__Numb__iff1_0, axiom, ![V_k, T_a2, V_a2, T_b2]: c_Datatype__Universe_OLeaf(V_a2, T_a2, T_b2)!=c_Datatype__Universe_ONumb(V_k, T_a2, T_b2)).
% 45.35/6.33    fof(cls_Datatype__Universe_OLeaf__not__Scons__iff1_0, axiom, ![T_a2, V_a2, T_b2, V_M2, V_N2]: c_Datatype__Universe_OLeaf(V_a2, T_a2, T_b2)!=c_Datatype__Universe_OScons(V_M2, V_N2, T_a2, T_b2)).
% 45.35/6.33    fof(cls_Datatype__Universe_ONumb__not__Leaf__iff1_0, axiom, ![T_a2, V_a2, T_b2, V_k2]: c_Datatype__Universe_ONumb(V_k2, T_a2, T_b2)!=c_Datatype__Universe_OLeaf(V_a2, T_a2, T_b2)).
% 45.35/6.33    fof(cls_Datatype__Universe_ONumb__not__Scons__iff1_0, axiom, ![T_a2, T_b2, V_M2, V_N2, V_k2]: c_Datatype__Universe_ONumb(V_k2, T_a2, T_b2)!=c_Datatype__Universe_OScons(V_M2, V_N2, T_a2, T_b2)).
% 45.35/6.33    fof(cls_Datatype__Universe_OScons__not__Atom__iff1_0, axiom, ![T_a2, V_a2, T_b2, V_M2, V_N2]: c_Datatype__Universe_OScons(V_M2, V_N2, T_a2, T_b2)!=c_Datatype__Universe_OAtom(V_a2, T_a2, T_b2)).
% 45.35/6.33    fof(cls_Datatype__Universe_OScons__not__Leaf__iff1_0, axiom, ![T_a2, V_a2, T_b2, V_M2, V_N2]: c_Datatype__Universe_OScons(V_M2, V_N2, T_a2, T_b2)!=c_Datatype__Universe_OLeaf(V_a2, T_a2, T_b2)).
% 45.35/6.33    fof(cls_Datatype__Universe_OScons__not__Numb__iff1_0, axiom, ![T_a2, T_b2, V_M2, V_N2, V_k2]: c_Datatype__Universe_OScons(V_M2, V_N2, T_a2, T_b2)!=c_Datatype__Universe_ONumb(V_k2, T_a2, T_b2)).
% 45.35/6.33    fof(cls_List_ONil2__notin__lex__iff1_0, axiom, ![V_r, V_xs, T_a2]: ~c_in(c_Pair(V_xs, c_List_Olist_ONil, tc_List_Olist(T_a2), tc_List_Olist(T_a2)), c_List_Olex(V_r, T_a2), tc_prod(tc_List_Olist(T_a2), tc_List_Olist(T_a2)))).
% 45.35/6.33    fof(cls_List_ONil__notin__lex__iff1_0, axiom, ![V_ys, T_a2, V_r2]: ~c_in(c_Pair(c_List_Olist_ONil, V_ys, tc_List_Olist(T_a2), tc_List_Olist(T_a2)), c_List_Olex(V_r2, T_a2), tc_prod(tc_List_Olist(T_a2), tc_List_Olist(T_a2)))).
% 45.35/6.33    fof(cls_List_Olength__greater__0__conv__iff1_0, axiom, ![T_a2]: ~c_less(c_0, c_Nat_Osize(c_List_Olist_ONil, tc_List_Olist(T_a2)), tc_nat)).
% 45.35/6.33    fof(cls_List_Olist_Odistinct__1__iff1_0, axiom, ![V_list_H, T_a2, V_a_H2]: c_List_Olist_ONil!=c_List_Olist_OCons(V_a_H2, V_list_H, T_a2)).
% 45.35/6.33    fof(cls_List_Olist_Odistinct__2__iff1_0, axiom, ![T_a2, V_a_H2, V_list_H2]: c_List_Olist_OCons(V_a_H2, V_list_H2, T_a2)!=c_List_Olist_ONil).
% 45.35/6.33    fof(cls_Nat_OSuc__not__Zero__iff1_0, axiom, ![V_m]: c_Suc(V_m)!=c_0).
% 45.35/6.33    fof(cls_Nat_OZero__not__Suc__iff1_0, axiom, ![V_m2]: c_0!=c_Suc(V_m2)).
% 45.35/6.33    fof(cls_Nat_Oless__irrefl_0, axiom, ![V_n]: ~c_less(V_n, V_n, tc_nat)).
% 45.35/6.33    fof(cls_Nat_Onot__add__less1__iff1_0, axiom, ![V_i, V_j]: ~c_less(c_plus(V_i, V_j, tc_nat), V_i, tc_nat)).
% 45.35/6.33    fof(cls_Nat_Onot__add__less2__iff1_0, axiom, ![V_i2, V_j2]: ~c_less(c_plus(V_j2, V_i2, tc_nat), V_i2, tc_nat)).
% 45.35/6.33    fof(cls_Nat_Onot__less0__iff1_0, axiom, ![V_n2]: ~c_less(V_n2, c_0, tc_nat)).
% 45.35/6.33    fof(cls_Orderings_Oorder__less__irrefl__iff1_0, axiom, ![V_x, T_a2]: (~class_Orderings_Oorder(T_a2) | ~c_less(V_x, V_x, T_a2))).
% 45.35/6.33    fof(cls_Set_OComplD__dest_0, axiom, ![V_A, V_c, T_a2]: (~c_in(V_c, V_A, T_a2) | ~c_in(V_c, c_uminus(V_A, tc_set(T_a2)), T_a2))).
% 45.35/6.33    fof(cls_Set_ODiffE_0, axiom, ![V_B, T_a2, V_A2, V_c2]: (~c_in(V_c2, V_B, T_a2) | ~c_in(V_c2, c_minus(V_A2, V_B, tc_set(T_a2)), T_a2))).
% 45.35/6.33    fof(cls_Set_OemptyE_0, axiom, ![T_a2, V_a2]: ~c_in(V_a2, c_emptyset, T_a2)).
% 45.35/6.33    fof(cls_Set_Onot__psubset__empty__iff1_0, axiom, ![T_a2, V_A2]: ~c_less(V_A2, c_emptyset, tc_set(T_a2))).
% 45.35/6.33    fof(cls_Set_OpsubsetE_0, axiom, ![T_a2, V_A2, V_B2]: (~c_less(V_A2, V_B2, tc_set(T_a2)) | ~c_lessequals(V_B2, V_A2, tc_set(T_a2)))).
% 45.35/6.33    fof(cls_Sum__Type_OInl__not__Inr__iff1_0, axiom, ![V_b, T_a2, V_a2, T_b2]: c_Sum__Type_OInl(V_a2, T_a2, T_b2)!=c_Sum__Type_OInr(V_b, T_b2, T_a2)).
% 45.35/6.33    fof(cls_Sum__Type_OInr__not__Inl__iff1_0, axiom, ![T_a2, V_a2, T_b2, V_b2]: c_Sum__Type_OInr(V_b2, T_b2, T_a2)!=c_Sum__Type_OInl(V_a2, T_a2, T_b2)).
% 45.35/6.33    fof(cls_Wellfounded__Recursion_Oacyclic__insert__iff1_1, axiom, ![V_y, V_x2, T_a2, V_r2]: (~c_Wellfounded__Recursion_Oacyclic(c_insert(c_Pair(V_y, V_x2, T_a2, T_a2), V_r2, tc_prod(T_a2, T_a2)), T_a2) | ~c_in(c_Pair(V_x2, V_y, T_a2, T_a2), c_Transitive__Closure_Ortrancl(V_r2, T_a2), tc_prod(T_a2, T_a2)))).
% 45.35/6.33    fof(cls_Wellfounded__Recursion_Owf__insert__iff1_1, axiom, ![V_x2, T_a2, V_r2, V_y2]: (~c_Wellfounded__Recursion_Owf(c_insert(c_Pair(V_y2, V_x2, T_a2, T_a2), V_r2, tc_prod(T_a2, T_a2)), T_a2) | ~c_in(c_Pair(V_x2, V_y2, T_a2, T_a2), c_Transitive__Closure_Ortrancl(V_r2, T_a2), tc_prod(T_a2, T_a2)))).
% 45.35/6.33    fof(cls_conjecture_0, negated_conjecture, v_f(v_g(v_x))=v_x).
% 45.35/6.33    fof(cls_conjecture_1, negated_conjecture, ![V_U]: (V_U=v_x | v_f(v_g(V_U))!=V_U)).
% 45.35/6.33    fof(cls_conjecture_2, negated_conjecture, ![V_U2]: (v_g(v_f(v_xa(V_U2)))=v_xa(V_U2) | v_g(v_f(V_U2))!=V_U2)).
% 45.35/6.33    fof(cls_conjecture_3, negated_conjecture, ![V_U2]: (v_xa(V_U2)!=V_U2 | v_g(v_f(V_U2))!=V_U2)).
% 45.35/6.33  
% 45.35/6.33  Now clausify the problem and encode Horn clauses using encoding 3 of
% 45.35/6.33  http://www.cse.chalmers.se/~nicsma/papers/horn.pdf.
% 45.35/6.33  We repeatedly replace C & s=t => u=v by the two clauses:
% 45.35/6.33    fresh(y, y, x1...xn) = u
% 45.35/6.33    C => fresh(s, t, x1...xn) = v
% 45.35/6.33  where fresh is a fresh function symbol and x1..xn are the free
% 45.35/6.33  variables of u and v.
% 45.35/6.33  A predicate p(X) is encoded as p(X)=true (this is sound, because the
% 45.35/6.33  input problem has no model of domain size 1).
% 45.35/6.33  
% 45.35/6.33  The encoding turns the above axioms into the following unit equations and goals:
% 45.35/6.33  
% 45.35/6.33  Axiom 1 (cls_conjecture_0): v_f(v_g(v_x)) = v_x.
% 45.35/6.33  Axiom 2 (cls_conjecture_1): fresh970(X, X, Y) = v_x.
% 45.35/6.33  Axiom 3 (cls_conjecture_2): fresh969(X, X, Y) = v_xa(Y).
% 45.35/6.33  Axiom 4 (cls_conjecture_1): fresh970(v_f(v_g(X)), X, X) = X.
% 45.35/6.33  Axiom 5 (cls_conjecture_2): fresh969(v_g(v_f(X)), X, X) = v_g(v_f(v_xa(X))).
% 45.35/6.33  
% 45.35/6.33  Lemma 6: v_g(v_f(v_xa(v_g(v_x)))) = v_xa(v_g(v_x)).
% 45.35/6.33  Proof:
% 45.35/6.33    v_g(v_f(v_xa(v_g(v_x))))
% 45.35/6.33  = { by axiom 5 (cls_conjecture_2) R->L }
% 45.35/6.33    fresh969(v_g(v_f(v_g(v_x))), v_g(v_x), v_g(v_x))
% 45.35/6.33  = { by axiom 1 (cls_conjecture_0) }
% 45.35/6.33    fresh969(v_g(v_x), v_g(v_x), v_g(v_x))
% 45.35/6.33  = { by axiom 3 (cls_conjecture_2) }
% 45.35/6.33    v_xa(v_g(v_x))
% 45.35/6.33  
% 45.35/6.33  Goal 1 (cls_conjecture_3): tuple2(v_g(v_f(X)), v_xa(X)) = tuple2(X, X).
% 45.35/6.33  The goal is true when:
% 45.35/6.33    X = v_g(v_x)
% 45.35/6.33  
% 45.35/6.33  Proof:
% 45.35/6.33    tuple2(v_g(v_f(v_g(v_x))), v_xa(v_g(v_x)))
% 45.35/6.33  = { by lemma 6 R->L }
% 45.35/6.33    tuple2(v_g(v_f(v_g(v_x))), v_g(v_f(v_xa(v_g(v_x)))))
% 45.35/6.33  = { by axiom 4 (cls_conjecture_1) R->L }
% 45.35/6.33    tuple2(v_g(v_f(v_g(v_x))), v_g(fresh970(v_f(v_g(v_f(v_xa(v_g(v_x))))), v_f(v_xa(v_g(v_x))), v_f(v_xa(v_g(v_x))))))
% 45.35/6.33  = { by lemma 6 }
% 45.35/6.33    tuple2(v_g(v_f(v_g(v_x))), v_g(fresh970(v_f(v_xa(v_g(v_x))), v_f(v_xa(v_g(v_x))), v_f(v_xa(v_g(v_x))))))
% 45.35/6.33  = { by axiom 2 (cls_conjecture_1) }
% 45.35/6.33    tuple2(v_g(v_f(v_g(v_x))), v_g(v_x))
% 45.35/6.33  = { by axiom 1 (cls_conjecture_0) }
% 45.35/6.33    tuple2(v_g(v_x), v_g(v_x))
% 45.35/6.33  % SZS output end Proof
% 45.35/6.33  
% 45.35/6.33  RESULT: Unsatisfiable (the axioms are contradictory).
%------------------------------------------------------------------------------