ITP001 Axioms: ITP039_5.ax


%------------------------------------------------------------------------------
% File     : ITP039_5 : TPTP v9.0.0. Bugfixed v7.5.0.
% Domain   : Interactive Theorem Proving
% Axioms   : HOL4 set theory export, chainy mode
% Version  : [BG+19] axioms.
% English  :

% Refs     : [BG+19] Brown et al. (2019), GRUNGE: A Grand Unified ATP Chall
%          : [Gau20] Gauthier (2020), Email to Geoff Sutcliffe
% Source   : [BG+19]
% Names    : defCNF_2.ax [Gau20]
%          : HL4039_5.ax [TPAP]

% Status   : Satisfiable
% Syntax   : Number of formulae    :   31 (   8 unt;  10 typ;   0 def)
%            Number of atoms       : 1406 (   4 equ)
%            Maximal formula atoms :   16 (  45 avg)
%            Number of connectives :   91 (   0   ~;   0   |;  25   &)
%                                         (  23 <=>;  43  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   15 (   6 avg)
%            Maximal term depth    :    3 (   1 avg)
%            Number of FOOLs       : 1294 (1294 fml;   0 var)
%            Number of types       :    3 (   2 usr)
%            Number of type conns  :    4 (   4   >;   0   *;   0   +;   0  <<)
%            Number of predicates  :   25 (  23 usr;   8 prp; 0-2 aty)
%            Number of functors    :    8 (   8 usr;   4 con; 0-1 aty)
%            Number of variables   :   95 (  92   !;   3   ?;  95   :)
% SPC      : TF0_SAT_EQU_NAR

% Comments :
% Bugfixes : v7.5.0 - Fixes to the axioms.
%------------------------------------------------------------------------------
tff(stp_c_ty_2Epair_2Eprod_c_ty_2Esum_2Esum_ty_2Enum_2Enum_o_c_ty_2Esum_2Esum_ty_2Enum_2Enum_o,type,
    tp__c_ty_2Epair_2Eprod_c_ty_2Esum_2Esum_ty_2Enum_2Enum_o_c_ty_2Esum_2Esum_ty_2Enum_2Enum_o: $tType ).

tff(stp_inj_c_ty_2Epair_2Eprod_c_ty_2Esum_2Esum_ty_2Enum_2Enum_o_c_ty_2Esum_2Esum_ty_2Enum_2Enum_o,type,
    inj__c_ty_2Epair_2Eprod_c_ty_2Esum_2Esum_ty_2Enum_2Enum_o_c_ty_2Esum_2Esum_ty_2Enum_2Enum_o: tp__c_ty_2Epair_2Eprod_c_ty_2Esum_2Esum_ty_2Enum_2Enum_o_c_ty_2Esum_2Esum_ty_2Enum_2Enum_o > $i ).

tff(stp_surj_c_ty_2Epair_2Eprod_c_ty_2Esum_2Esum_ty_2Enum_2Enum_o_c_ty_2Esum_2Esum_ty_2Enum_2Enum_o,type,
    surj__c_ty_2Epair_2Eprod_c_ty_2Esum_2Esum_ty_2Enum_2Enum_o_c_ty_2Esum_2Esum_ty_2Enum_2Enum_o: $i > tp__c_ty_2Epair_2Eprod_c_ty_2Esum_2Esum_ty_2Enum_2Enum_o_c_ty_2Esum_2Esum_ty_2Enum_2Enum_o ).

tff(stp_inj_surj_c_ty_2Epair_2Eprod_c_ty_2Esum_2Esum_ty_2Enum_2Enum_o_c_ty_2Esum_2Esum_ty_2Enum_2Enum_o,axiom,
    ! [X: tp__c_ty_2Epair_2Eprod_c_ty_2Esum_2Esum_ty_2Enum_2Enum_o_c_ty_2Esum_2Esum_ty_2Enum_2Enum_o] : ( surj__c_ty_2Epair_2Eprod_c_ty_2Esum_2Esum_ty_2Enum_2Enum_o_c_ty_2Esum_2Esum_ty_2Enum_2Enum_o(inj__c_ty_2Epair_2Eprod_c_ty_2Esum_2Esum_ty_2Enum_2Enum_o_c_ty_2Esum_2Esum_ty_2Enum_2Enum_o(X)) = X ) ).

tff(stp_inj_mem_c_ty_2Epair_2Eprod_c_ty_2Esum_2Esum_ty_2Enum_2Enum_o_c_ty_2Esum_2Esum_ty_2Enum_2Enum_o,axiom,
    ! [X: tp__c_ty_2Epair_2Eprod_c_ty_2Esum_2Esum_ty_2Enum_2Enum_o_c_ty_2Esum_2Esum_ty_2Enum_2Enum_o] : mem(inj__c_ty_2Epair_2Eprod_c_ty_2Esum_2Esum_ty_2Enum_2Enum_o_c_ty_2Esum_2Esum_ty_2Enum_2Enum_o(X),ty_2Epair_2Eprod(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool))) ).

tff(stp_iso_mem_c_ty_2Epair_2Eprod_c_ty_2Esum_2Esum_ty_2Enum_2Enum_o_c_ty_2Esum_2Esum_ty_2Enum_2Enum_o,axiom,
    ! [X: $i] :
      ( mem(X,ty_2Epair_2Eprod(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool)))
     => ( X = inj__c_ty_2Epair_2Eprod_c_ty_2Esum_2Esum_ty_2Enum_2Enum_o_c_ty_2Esum_2Esum_ty_2Enum_2Enum_o(surj__c_ty_2Epair_2Eprod_c_ty_2Esum_2Esum_ty_2Enum_2Enum_o_c_ty_2Esum_2Esum_ty_2Enum_2Enum_o(X)) ) ) ).

tff(stp_c_ty_2Esum_2Esum_ty_2Enum_2Enum_o,type,
    tp__c_ty_2Esum_2Esum_ty_2Enum_2Enum_o: $tType ).

tff(stp_inj_c_ty_2Esum_2Esum_ty_2Enum_2Enum_o,type,
    inj__c_ty_2Esum_2Esum_ty_2Enum_2Enum_o: tp__c_ty_2Esum_2Esum_ty_2Enum_2Enum_o > $i ).

tff(stp_surj_c_ty_2Esum_2Esum_ty_2Enum_2Enum_o,type,
    surj__c_ty_2Esum_2Esum_ty_2Enum_2Enum_o: $i > tp__c_ty_2Esum_2Esum_ty_2Enum_2Enum_o ).

tff(stp_inj_surj_c_ty_2Esum_2Esum_ty_2Enum_2Enum_o,axiom,
    ! [X: tp__c_ty_2Esum_2Esum_ty_2Enum_2Enum_o] : ( surj__c_ty_2Esum_2Esum_ty_2Enum_2Enum_o(inj__c_ty_2Esum_2Esum_ty_2Enum_2Enum_o(X)) = X ) ).

tff(stp_inj_mem_c_ty_2Esum_2Esum_ty_2Enum_2Enum_o,axiom,
    ! [X: tp__c_ty_2Esum_2Esum_ty_2Enum_2Enum_o] : mem(inj__c_ty_2Esum_2Esum_ty_2Enum_2Enum_o(X),ty_2Esum_2Esum(ty_2Enum_2Enum,bool)) ).

tff(stp_iso_mem_c_ty_2Esum_2Esum_ty_2Enum_2Enum_o,axiom,
    ! [X: $i] :
      ( mem(X,ty_2Esum_2Esum(ty_2Enum_2Enum,bool))
     => ( X = inj__c_ty_2Esum_2Esum_ty_2Enum_2Enum_o(surj__c_ty_2Esum_2Esum_ty_2Enum_2Enum_o(X)) ) ) ).

tff(tp_c_2EdefCNF_2EDEF,type,
    c_2EdefCNF_2EDEF: $i ).

tff(mem_c_2EdefCNF_2EDEF,axiom,
    mem(c_2EdefCNF_2EDEF,arr(arr(ty_2Enum_2Enum,bool),arr(ty_2Enum_2Enum,arr(ty_2Elist_2Elist(ty_2Epair_2Eprod(arr(bool,arr(bool,bool)),ty_2Epair_2Eprod(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool)))),bool)))) ).

tff(tp_c_2EdefCNF_2EOK,type,
    c_2EdefCNF_2EOK: $i ).

tff(mem_c_2EdefCNF_2EOK,axiom,
    mem(c_2EdefCNF_2EOK,arr(ty_2Enum_2Enum,arr(ty_2Epair_2Eprod(arr(bool,arr(bool,bool)),ty_2Epair_2Eprod(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool))),bool))) ).

tff(tp_c_2EdefCNF_2EOKDEF,type,
    c_2EdefCNF_2EOKDEF: $i ).

tff(mem_c_2EdefCNF_2EOKDEF,axiom,
    mem(c_2EdefCNF_2EOKDEF,arr(ty_2Enum_2Enum,arr(ty_2Elist_2Elist(ty_2Epair_2Eprod(arr(bool,arr(bool,bool)),ty_2Epair_2Eprod(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool)))),bool))) ).

tff(tp_c_2EdefCNF_2EUNIQUE,type,
    c_2EdefCNF_2EUNIQUE: $i ).

tff(mem_c_2EdefCNF_2EUNIQUE,axiom,
    mem(c_2EdefCNF_2EUNIQUE,arr(arr(ty_2Enum_2Enum,bool),arr(ty_2Enum_2Enum,arr(ty_2Epair_2Eprod(arr(bool,arr(bool,bool)),ty_2Epair_2Eprod(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool))),bool)))) ).

tff(conj_thm_2EdefCNF_2EUNIQUE__ind,axiom,
    ! [V0P: $i] :
      ( mem(V0P,arr(arr(ty_2Enum_2Enum,bool),arr(ty_2Enum_2Enum,arr(ty_2Epair_2Eprod(arr(bool,arr(bool,bool)),ty_2Epair_2Eprod(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool))),bool))))
     => ( ( ! [V1v: $i] :
              ( mem(V1v,arr(ty_2Enum_2Enum,bool))
             => ! [V2n: tp__ty_2Enum_2Enum,V3conn: $i] :
                  ( mem(V3conn,arr(bool,arr(bool,bool)))
                 => ! [V4i: tp__ty_2Enum_2Enum,V5j: tp__ty_2Enum_2Enum] : p(ap(ap(ap(V0P,V1v),inj__ty_2Enum_2Enum(V2n)),ap(ap(c_2Epair_2E_2C(arr(bool,arr(bool,bool)),ty_2Epair_2Eprod(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool))),V3conn),ap(ap(c_2Epair_2E_2C(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool)),ap(c_2Esum_2EINL(ty_2Enum_2Enum,bool),inj__ty_2Enum_2Enum(V4i))),ap(c_2Esum_2EINL(ty_2Enum_2Enum,bool),inj__ty_2Enum_2Enum(V5j)))))) ) )
          & ! [V6v: $i] :
              ( mem(V6v,arr(ty_2Enum_2Enum,bool))
             => ! [V7n: tp__ty_2Enum_2Enum,V8conn: $i] :
                  ( mem(V8conn,arr(bool,arr(bool,bool)))
                 => ! [V9i: tp__ty_2Enum_2Enum,V10b: tp__o] : p(ap(ap(ap(V0P,V6v),inj__ty_2Enum_2Enum(V7n)),ap(ap(c_2Epair_2E_2C(arr(bool,arr(bool,bool)),ty_2Epair_2Eprod(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool))),V8conn),ap(ap(c_2Epair_2E_2C(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool)),ap(c_2Esum_2EINL(ty_2Enum_2Enum,bool),inj__ty_2Enum_2Enum(V9i))),ap(c_2Esum_2EINR(ty_2Enum_2Enum,bool),inj__o(V10b)))))) ) )
          & ! [V11v: $i] :
              ( mem(V11v,arr(ty_2Enum_2Enum,bool))
             => ! [V12n: tp__ty_2Enum_2Enum,V13conn: $i] :
                  ( mem(V13conn,arr(bool,arr(bool,bool)))
                 => ! [V14a: tp__o,V15j: tp__ty_2Enum_2Enum] : p(ap(ap(ap(V0P,V11v),inj__ty_2Enum_2Enum(V12n)),ap(ap(c_2Epair_2E_2C(arr(bool,arr(bool,bool)),ty_2Epair_2Eprod(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool))),V13conn),ap(ap(c_2Epair_2E_2C(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool)),ap(c_2Esum_2EINR(ty_2Enum_2Enum,bool),inj__o(V14a))),ap(c_2Esum_2EINL(ty_2Enum_2Enum,bool),inj__ty_2Enum_2Enum(V15j)))))) ) )
          & ! [V16v: $i] :
              ( mem(V16v,arr(ty_2Enum_2Enum,bool))
             => ! [V17n: tp__ty_2Enum_2Enum,V18conn: $i] :
                  ( mem(V18conn,arr(bool,arr(bool,bool)))
                 => ! [V19a: tp__o,V20b: tp__o] : p(ap(ap(ap(V0P,V16v),inj__ty_2Enum_2Enum(V17n)),ap(ap(c_2Epair_2E_2C(arr(bool,arr(bool,bool)),ty_2Epair_2Eprod(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool))),V18conn),ap(ap(c_2Epair_2E_2C(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool)),ap(c_2Esum_2EINR(ty_2Enum_2Enum,bool),inj__o(V19a))),ap(c_2Esum_2EINR(ty_2Enum_2Enum,bool),inj__o(V20b)))))) ) ) )
       => ! [V21v: $i] :
            ( mem(V21v,arr(ty_2Enum_2Enum,bool))
           => ! [V22v1: tp__ty_2Enum_2Enum,V23v2: $i] :
                ( mem(V23v2,arr(bool,arr(bool,bool)))
               => ! [V24v3: tp__c_ty_2Esum_2Esum_ty_2Enum_2Enum_o,V25v4: tp__c_ty_2Esum_2Esum_ty_2Enum_2Enum_o] : p(ap(ap(ap(V0P,V21v),inj__ty_2Enum_2Enum(V22v1)),ap(ap(c_2Epair_2E_2C(arr(bool,arr(bool,bool)),ty_2Epair_2Eprod(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool))),V23v2),ap(ap(c_2Epair_2E_2C(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool)),inj__c_ty_2Esum_2Esum_ty_2Enum_2Enum_o(V24v3)),inj__c_ty_2Esum_2Esum_ty_2Enum_2Enum_o(V25v4))))) ) ) ) ) ).

tff(conj_thm_2EdefCNF_2EUNIQUE__def,axiom,
    ! [V0v: $i] :
      ( mem(V0v,arr(ty_2Enum_2Enum,bool))
     => ! [V1n: tp__ty_2Enum_2Enum,V2conn: $i] :
          ( mem(V2conn,arr(bool,arr(bool,bool)))
         => ! [V3i: tp__ty_2Enum_2Enum,V4j: tp__ty_2Enum_2Enum,V5b: tp__o,V6a: tp__o] :
              ( ( p(ap(ap(ap(c_2EdefCNF_2EUNIQUE,V0v),inj__ty_2Enum_2Enum(V1n)),ap(ap(c_2Epair_2E_2C(arr(bool,arr(bool,bool)),ty_2Epair_2Eprod(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool))),V2conn),ap(ap(c_2Epair_2E_2C(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool)),ap(c_2Esum_2EINL(ty_2Enum_2Enum,bool),inj__ty_2Enum_2Enum(V3i))),ap(c_2Esum_2EINL(ty_2Enum_2Enum,bool),inj__ty_2Enum_2Enum(V4j))))))
              <=> ( p(ap(V0v,inj__ty_2Enum_2Enum(V1n)))
                <=> p(ap(ap(V2conn,ap(V0v,inj__ty_2Enum_2Enum(V3i))),ap(V0v,inj__ty_2Enum_2Enum(V4j)))) ) )
              & ( p(ap(ap(ap(c_2EdefCNF_2EUNIQUE,V0v),inj__ty_2Enum_2Enum(V1n)),ap(ap(c_2Epair_2E_2C(arr(bool,arr(bool,bool)),ty_2Epair_2Eprod(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool))),V2conn),ap(ap(c_2Epair_2E_2C(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool)),ap(c_2Esum_2EINL(ty_2Enum_2Enum,bool),inj__ty_2Enum_2Enum(V3i))),ap(c_2Esum_2EINR(ty_2Enum_2Enum,bool),inj__o(V5b))))))
              <=> ( p(ap(V0v,inj__ty_2Enum_2Enum(V1n)))
                <=> p(ap(ap(V2conn,ap(V0v,inj__ty_2Enum_2Enum(V3i))),inj__o(V5b))) ) )
              & ( p(ap(ap(ap(c_2EdefCNF_2EUNIQUE,V0v),inj__ty_2Enum_2Enum(V1n)),ap(ap(c_2Epair_2E_2C(arr(bool,arr(bool,bool)),ty_2Epair_2Eprod(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool))),V2conn),ap(ap(c_2Epair_2E_2C(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool)),ap(c_2Esum_2EINR(ty_2Enum_2Enum,bool),inj__o(V6a))),ap(c_2Esum_2EINL(ty_2Enum_2Enum,bool),inj__ty_2Enum_2Enum(V4j))))))
              <=> ( p(ap(V0v,inj__ty_2Enum_2Enum(V1n)))
                <=> p(ap(ap(V2conn,inj__o(V6a)),ap(V0v,inj__ty_2Enum_2Enum(V4j)))) ) )
              & ( p(ap(ap(ap(c_2EdefCNF_2EUNIQUE,V0v),inj__ty_2Enum_2Enum(V1n)),ap(ap(c_2Epair_2E_2C(arr(bool,arr(bool,bool)),ty_2Epair_2Eprod(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool))),V2conn),ap(ap(c_2Epair_2E_2C(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool)),ap(c_2Esum_2EINR(ty_2Enum_2Enum,bool),inj__o(V6a))),ap(c_2Esum_2EINR(ty_2Enum_2Enum,bool),inj__o(V5b))))))
              <=> ( p(ap(V0v,inj__ty_2Enum_2Enum(V1n)))
                <=> p(ap(ap(V2conn,inj__o(V6a)),inj__o(V5b))) ) ) ) ) ) ).

tff(ax_thm_2EdefCNF_2EDEF__def,axiom,
    ( ! [V0v: $i] :
        ( mem(V0v,arr(ty_2Enum_2Enum,bool))
       => ! [V1n: tp__ty_2Enum_2Enum] :
            ( p(ap(ap(ap(c_2EdefCNF_2EDEF,V0v),inj__ty_2Enum_2Enum(V1n)),c_2Elist_2ENIL(ty_2Epair_2Eprod(arr(bool,arr(bool,bool)),ty_2Epair_2Eprod(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool))))))
          <=> $true ) )
    & ! [V2v: $i] :
        ( mem(V2v,arr(ty_2Enum_2Enum,bool))
       => ! [V3n: tp__ty_2Enum_2Enum,V4x: $i] :
            ( mem(V4x,ty_2Epair_2Eprod(arr(bool,arr(bool,bool)),ty_2Epair_2Eprod(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool))))
           => ! [V5xs: $i] :
                ( mem(V5xs,ty_2Elist_2Elist(ty_2Epair_2Eprod(arr(bool,arr(bool,bool)),ty_2Epair_2Eprod(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool)))))
               => ( p(ap(ap(ap(c_2EdefCNF_2EDEF,V2v),inj__ty_2Enum_2Enum(V3n)),ap(ap(c_2Elist_2ECONS(ty_2Epair_2Eprod(arr(bool,arr(bool,bool)),ty_2Epair_2Eprod(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool)))),V4x),V5xs)))
                <=> ( p(ap(ap(ap(c_2EdefCNF_2EUNIQUE,V2v),inj__ty_2Enum_2Enum(V3n)),V4x))
                    & p(ap(ap(ap(c_2EdefCNF_2EDEF,V2v),ap(c_2Enum_2ESUC,inj__ty_2Enum_2Enum(V3n))),V5xs)) ) ) ) ) ) ) ).

tff(conj_thm_2EdefCNF_2EOK__ind,axiom,
    ! [V0P: $i] :
      ( mem(V0P,arr(ty_2Enum_2Enum,arr(ty_2Epair_2Eprod(arr(bool,arr(bool,bool)),ty_2Epair_2Eprod(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool))),bool)))
     => ( ( ! [V1n: tp__ty_2Enum_2Enum,V2conn: $i] :
              ( mem(V2conn,arr(bool,arr(bool,bool)))
             => ! [V3i: tp__ty_2Enum_2Enum,V4j: tp__ty_2Enum_2Enum] : p(ap(ap(V0P,inj__ty_2Enum_2Enum(V1n)),ap(ap(c_2Epair_2E_2C(arr(bool,arr(bool,bool)),ty_2Epair_2Eprod(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool))),V2conn),ap(ap(c_2Epair_2E_2C(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool)),ap(c_2Esum_2EINL(ty_2Enum_2Enum,bool),inj__ty_2Enum_2Enum(V3i))),ap(c_2Esum_2EINL(ty_2Enum_2Enum,bool),inj__ty_2Enum_2Enum(V4j)))))) )
          & ! [V5n: tp__ty_2Enum_2Enum,V6conn: $i] :
              ( mem(V6conn,arr(bool,arr(bool,bool)))
             => ! [V7i: tp__ty_2Enum_2Enum,V8b: tp__o] : p(ap(ap(V0P,inj__ty_2Enum_2Enum(V5n)),ap(ap(c_2Epair_2E_2C(arr(bool,arr(bool,bool)),ty_2Epair_2Eprod(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool))),V6conn),ap(ap(c_2Epair_2E_2C(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool)),ap(c_2Esum_2EINL(ty_2Enum_2Enum,bool),inj__ty_2Enum_2Enum(V7i))),ap(c_2Esum_2EINR(ty_2Enum_2Enum,bool),inj__o(V8b)))))) )
          & ! [V9n: tp__ty_2Enum_2Enum,V10conn: $i] :
              ( mem(V10conn,arr(bool,arr(bool,bool)))
             => ! [V11a: tp__o,V12j: tp__ty_2Enum_2Enum] : p(ap(ap(V0P,inj__ty_2Enum_2Enum(V9n)),ap(ap(c_2Epair_2E_2C(arr(bool,arr(bool,bool)),ty_2Epair_2Eprod(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool))),V10conn),ap(ap(c_2Epair_2E_2C(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool)),ap(c_2Esum_2EINR(ty_2Enum_2Enum,bool),inj__o(V11a))),ap(c_2Esum_2EINL(ty_2Enum_2Enum,bool),inj__ty_2Enum_2Enum(V12j)))))) )
          & ! [V13n: tp__ty_2Enum_2Enum,V14conn: $i] :
              ( mem(V14conn,arr(bool,arr(bool,bool)))
             => ! [V15a: tp__o,V16b: tp__o] : p(ap(ap(V0P,inj__ty_2Enum_2Enum(V13n)),ap(ap(c_2Epair_2E_2C(arr(bool,arr(bool,bool)),ty_2Epair_2Eprod(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool))),V14conn),ap(ap(c_2Epair_2E_2C(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool)),ap(c_2Esum_2EINR(ty_2Enum_2Enum,bool),inj__o(V15a))),ap(c_2Esum_2EINR(ty_2Enum_2Enum,bool),inj__o(V16b)))))) ) )
       => ! [V17v: tp__ty_2Enum_2Enum,V18v1: $i] :
            ( mem(V18v1,arr(bool,arr(bool,bool)))
           => ! [V19v2: tp__c_ty_2Esum_2Esum_ty_2Enum_2Enum_o,V20v3: tp__c_ty_2Esum_2Esum_ty_2Enum_2Enum_o] : p(ap(ap(V0P,inj__ty_2Enum_2Enum(V17v)),ap(ap(c_2Epair_2E_2C(arr(bool,arr(bool,bool)),ty_2Epair_2Eprod(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool))),V18v1),ap(ap(c_2Epair_2E_2C(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool)),inj__c_ty_2Esum_2Esum_ty_2Enum_2Enum_o(V19v2)),inj__c_ty_2Esum_2Esum_ty_2Enum_2Enum_o(V20v3))))) ) ) ) ).

tff(conj_thm_2EdefCNF_2EOK__def,axiom,
    ! [V0n: tp__ty_2Enum_2Enum,V1conn: $i] :
      ( mem(V1conn,arr(bool,arr(bool,bool)))
     => ! [V2i: tp__ty_2Enum_2Enum,V3j: tp__ty_2Enum_2Enum,V4b: tp__o,V5a: tp__o] :
          ( ( p(ap(ap(c_2EdefCNF_2EOK,inj__ty_2Enum_2Enum(V0n)),ap(ap(c_2Epair_2E_2C(arr(bool,arr(bool,bool)),ty_2Epair_2Eprod(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool))),V1conn),ap(ap(c_2Epair_2E_2C(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool)),ap(c_2Esum_2EINL(ty_2Enum_2Enum,bool),inj__ty_2Enum_2Enum(V2i))),ap(c_2Esum_2EINL(ty_2Enum_2Enum,bool),inj__ty_2Enum_2Enum(V3j))))))
          <=> ( p(ap(ap(c_2Eprim__rec_2E_3C,inj__ty_2Enum_2Enum(V2i)),inj__ty_2Enum_2Enum(V0n)))
              & p(ap(ap(c_2Eprim__rec_2E_3C,inj__ty_2Enum_2Enum(V3j)),inj__ty_2Enum_2Enum(V0n))) ) )
          & ( p(ap(ap(c_2EdefCNF_2EOK,inj__ty_2Enum_2Enum(V0n)),ap(ap(c_2Epair_2E_2C(arr(bool,arr(bool,bool)),ty_2Epair_2Eprod(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool))),V1conn),ap(ap(c_2Epair_2E_2C(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool)),ap(c_2Esum_2EINL(ty_2Enum_2Enum,bool),inj__ty_2Enum_2Enum(V2i))),ap(c_2Esum_2EINR(ty_2Enum_2Enum,bool),inj__o(V4b))))))
          <=> p(ap(ap(c_2Eprim__rec_2E_3C,inj__ty_2Enum_2Enum(V2i)),inj__ty_2Enum_2Enum(V0n))) )
          & ( p(ap(ap(c_2EdefCNF_2EOK,inj__ty_2Enum_2Enum(V0n)),ap(ap(c_2Epair_2E_2C(arr(bool,arr(bool,bool)),ty_2Epair_2Eprod(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool))),V1conn),ap(ap(c_2Epair_2E_2C(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool)),ap(c_2Esum_2EINR(ty_2Enum_2Enum,bool),inj__o(V5a))),ap(c_2Esum_2EINL(ty_2Enum_2Enum,bool),inj__ty_2Enum_2Enum(V3j))))))
          <=> p(ap(ap(c_2Eprim__rec_2E_3C,inj__ty_2Enum_2Enum(V3j)),inj__ty_2Enum_2Enum(V0n))) )
          & ( p(ap(ap(c_2EdefCNF_2EOK,inj__ty_2Enum_2Enum(V0n)),ap(ap(c_2Epair_2E_2C(arr(bool,arr(bool,bool)),ty_2Epair_2Eprod(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool))),V1conn),ap(ap(c_2Epair_2E_2C(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool)),ap(c_2Esum_2EINR(ty_2Enum_2Enum,bool),inj__o(V5a))),ap(c_2Esum_2EINR(ty_2Enum_2Enum,bool),inj__o(V4b))))))
          <=> $true ) ) ) ).

tff(ax_thm_2EdefCNF_2EOKDEF__def,axiom,
    ( ! [V0n: tp__ty_2Enum_2Enum] :
        ( p(ap(ap(c_2EdefCNF_2EOKDEF,inj__ty_2Enum_2Enum(V0n)),c_2Elist_2ENIL(ty_2Epair_2Eprod(arr(bool,arr(bool,bool)),ty_2Epair_2Eprod(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool))))))
      <=> $true )
    & ! [V1n: tp__ty_2Enum_2Enum,V2x: $i] :
        ( mem(V2x,ty_2Epair_2Eprod(arr(bool,arr(bool,bool)),ty_2Epair_2Eprod(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool))))
       => ! [V3xs: $i] :
            ( mem(V3xs,ty_2Elist_2Elist(ty_2Epair_2Eprod(arr(bool,arr(bool,bool)),ty_2Epair_2Eprod(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool)))))
           => ( p(ap(ap(c_2EdefCNF_2EOKDEF,inj__ty_2Enum_2Enum(V1n)),ap(ap(c_2Elist_2ECONS(ty_2Epair_2Eprod(arr(bool,arr(bool,bool)),ty_2Epair_2Eprod(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool)))),V2x),V3xs)))
            <=> ( p(ap(ap(c_2EdefCNF_2EOK,inj__ty_2Enum_2Enum(V1n)),V2x))
                & p(ap(ap(c_2EdefCNF_2EOKDEF,ap(c_2Enum_2ESUC,inj__ty_2Enum_2Enum(V1n))),V3xs)) ) ) ) ) ) ).

tff(conj_thm_2EdefCNF_2EDEF__SNOC,axiom,
    ! [V0n: tp__ty_2Enum_2Enum,V1x: $i] :
      ( mem(V1x,ty_2Epair_2Eprod(arr(bool,arr(bool,bool)),ty_2Epair_2Eprod(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool))))
     => ! [V2l: $i] :
          ( mem(V2l,ty_2Elist_2Elist(ty_2Epair_2Eprod(arr(bool,arr(bool,bool)),ty_2Epair_2Eprod(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool)))))
         => ! [V3v: $i] :
              ( mem(V3v,arr(ty_2Enum_2Enum,bool))
             => ( p(ap(ap(ap(c_2EdefCNF_2EDEF,V3v),inj__ty_2Enum_2Enum(V0n)),ap(ap(c_2Elist_2ESNOC(ty_2Epair_2Eprod(arr(bool,arr(bool,bool)),ty_2Epair_2Eprod(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool)))),V1x),V2l)))
              <=> ( p(ap(ap(ap(c_2EdefCNF_2EDEF,V3v),inj__ty_2Enum_2Enum(V0n)),V2l))
                  & p(ap(ap(ap(c_2EdefCNF_2EUNIQUE,V3v),ap(ap(c_2Earithmetic_2E_2B,inj__ty_2Enum_2Enum(V0n)),ap(c_2Elist_2ELENGTH(ty_2Epair_2Eprod(arr(bool,arr(bool,bool)),ty_2Epair_2Eprod(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool)))),V2l))),V1x)) ) ) ) ) ) ).

tff(conj_thm_2EdefCNF_2EOKDEF__SNOC,axiom,
    ! [V0n: tp__ty_2Enum_2Enum,V1x: $i] :
      ( mem(V1x,ty_2Epair_2Eprod(arr(bool,arr(bool,bool)),ty_2Epair_2Eprod(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool))))
     => ! [V2l: $i] :
          ( mem(V2l,ty_2Elist_2Elist(ty_2Epair_2Eprod(arr(bool,arr(bool,bool)),ty_2Epair_2Eprod(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool)))))
         => ( p(ap(ap(c_2EdefCNF_2EOKDEF,inj__ty_2Enum_2Enum(V0n)),ap(ap(c_2Elist_2ESNOC(ty_2Epair_2Eprod(arr(bool,arr(bool,bool)),ty_2Epair_2Eprod(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool)))),V1x),V2l)))
          <=> ( p(ap(ap(c_2EdefCNF_2EOKDEF,inj__ty_2Enum_2Enum(V0n)),V2l))
              & p(ap(ap(c_2EdefCNF_2EOK,ap(ap(c_2Earithmetic_2E_2B,inj__ty_2Enum_2Enum(V0n)),ap(c_2Elist_2ELENGTH(ty_2Epair_2Eprod(arr(bool,arr(bool,bool)),ty_2Epair_2Eprod(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool)))),V2l))),V1x)) ) ) ) ) ).

tff(conj_thm_2EdefCNF_2ECONSISTENCY,axiom,
    ! [V0n: tp__ty_2Enum_2Enum,V1l: $i] :
      ( mem(V1l,ty_2Elist_2Elist(ty_2Epair_2Eprod(arr(bool,arr(bool,bool)),ty_2Epair_2Eprod(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool)))))
     => ( p(ap(ap(c_2EdefCNF_2EOKDEF,inj__ty_2Enum_2Enum(V0n)),V1l))
       => ? [V2v: $i] :
            ( mem(V2v,arr(ty_2Enum_2Enum,bool))
            & p(ap(ap(ap(c_2EdefCNF_2EDEF,V2v),inj__ty_2Enum_2Enum(V0n)),V1l)) ) ) ) ).

tff(conj_thm_2EdefCNF_2EBIGSTEP,axiom,
    ! [V0P: $i] :
      ( mem(V0P,arr(arr(ty_2Enum_2Enum,bool),bool))
     => ! [V1Q: tp__o,V2R: $i] :
          ( mem(V2R,arr(arr(ty_2Enum_2Enum,bool),bool))
         => ( ! [V3v: $i] :
                ( mem(V3v,arr(ty_2Enum_2Enum,bool))
               => ( p(ap(V0P,V3v))
                 => ( p(inj__o(V1Q))
                  <=> p(ap(V2R,V3v)) ) ) )
           => ( ( ? [V4v: $i] :
                    ( mem(V4v,arr(ty_2Enum_2Enum,bool))
                    & p(ap(V0P,V4v)) )
                & p(inj__o(V1Q)) )
            <=> ? [V5v: $i] :
                  ( mem(V5v,arr(ty_2Enum_2Enum,bool))
                  & p(ap(V0P,V5v))
                  & p(ap(V2R,V5v)) ) ) ) ) ) ).

tff(conj_thm_2EdefCNF_2EFINAL__DEF,axiom,
    ! [V0v: $i] :
      ( mem(V0v,arr(ty_2Enum_2Enum,bool))
     => ! [V1n: tp__ty_2Enum_2Enum,V2x: tp__o] :
          ( ( p(ap(V0v,inj__ty_2Enum_2Enum(V1n)))
          <=> p(inj__o(V2x)) )
        <=> ( ( p(ap(V0v,inj__ty_2Enum_2Enum(V1n)))
            <=> p(inj__o(V2x)) )
            & p(ap(ap(ap(c_2EdefCNF_2EDEF,V0v),ap(c_2Enum_2ESUC,inj__ty_2Enum_2Enum(V1n))),c_2Elist_2ENIL(ty_2Epair_2Eprod(arr(bool,arr(bool,bool)),ty_2Epair_2Eprod(ty_2Esum_2Esum(ty_2Enum_2Enum,bool),ty_2Esum_2Esum(ty_2Enum_2Enum,bool)))))) ) ) ) ).

%------------------------------------------------------------------------------