ITP001 Axioms: ITP035^5.ax


%------------------------------------------------------------------------------
% File     : ITP035^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    : listRange^2.ax [Gau20]
%          : HL4035^5.ax [TPAP]

% Status   : Satisfiable
% Syntax   : Number of formulae    :   17 (   5 unt;   2 typ;   0 def)
%            Number of atoms       :  282 (  10 equ;   0 cnn)
%            Maximal formula atoms :   25 (  16 avg)
%            Number of connectives :  331 (   0   ~;   0   |;   2   &; 322   @)
%                                         (   2 <=>;   5  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   13 (   7 avg; 322 nst)
%            Number of types       :    1 (   0 usr)
%            Number of type conns  :    0 (   0   >;   0   *;   0   +;   0  <<)
%            Number of symbols     :   29 (  28 usr;  28 con; 0-2 aty)
%            Number of variables   :   29 (   2   ^  27   !;   0   ?;  29   :)
% SPC      : TH0_SAT_EQU_NAR

% Comments :
% Bugfixes : v7.5.0 - Fixes to the axioms.
%------------------------------------------------------------------------------
thf(tp_c_2ElistRange_2ElistRangeINC,type,
    c_2ElistRange_2ElistRangeINC: $i ).

thf(mem_c_2ElistRange_2ElistRangeINC,axiom,
    mem @ c_2ElistRange_2ElistRangeINC @ ( arr @ ty_2Enum_2Enum @ ( arr @ ty_2Enum_2Enum @ ( ty_2Elist_2Elist @ ty_2Enum_2Enum ) ) ) ).

thf(tp_c_2ElistRange_2ElistRangeLHI,type,
    c_2ElistRange_2ElistRangeLHI: $i ).

thf(mem_c_2ElistRange_2ElistRangeLHI,axiom,
    mem @ c_2ElistRange_2ElistRangeLHI @ ( arr @ ty_2Enum_2Enum @ ( arr @ ty_2Enum_2Enum @ ( ty_2Elist_2Elist @ ty_2Enum_2Enum ) ) ) ).

thf(ax_thm_2ElistRange_2ElistRangeINC__def,axiom,
    ! [V0m: tp__ty_2Enum_2Enum,V1n: tp__ty_2Enum_2Enum] :
      ( ( surj__c_ty_2Elist_2Elist_ty_2Enum_2Enum @ ( ap @ ( ap @ c_2ElistRange_2ElistRangeINC @ ( inj__ty_2Enum_2Enum @ V0m ) ) @ ( inj__ty_2Enum_2Enum @ V1n ) ) )
      = ( surj__c_ty_2Elist_2Elist_ty_2Enum_2Enum
        @ ( ap
          @ ( ap @ ( c_2Elist_2EGENLIST @ ty_2Enum_2Enum )
            @ ( lam @ ty_2Enum_2Enum
              @ ^ [V2i: $i] : ( ap @ ( ap @ c_2Earithmetic_2E_2B @ ( inj__ty_2Enum_2Enum @ V0m ) ) @ V2i ) ) )
          @ ( ap @ ( ap @ c_2Earithmetic_2E_2D @ ( ap @ ( ap @ c_2Earithmetic_2E_2B @ ( inj__ty_2Enum_2Enum @ V1n ) ) @ ( ap @ c_2Earithmetic_2ENUMERAL @ ( ap @ c_2Earithmetic_2EBIT1 @ ( inj__ty_2Enum_2Enum @ fo__c_2Earithmetic_2EZERO ) ) ) ) ) @ ( inj__ty_2Enum_2Enum @ V0m ) ) ) ) ) ).

thf(conj_thm_2ElistRange_2ElistRangeINC__SING,axiom,
    ! [V0m: tp__ty_2Enum_2Enum] :
      ( ( surj__c_ty_2Elist_2Elist_ty_2Enum_2Enum @ ( ap @ ( ap @ c_2ElistRange_2ElistRangeINC @ ( inj__ty_2Enum_2Enum @ V0m ) ) @ ( inj__ty_2Enum_2Enum @ V0m ) ) )
      = ( surj__c_ty_2Elist_2Elist_ty_2Enum_2Enum @ ( ap @ ( ap @ ( c_2Elist_2ECONS @ ty_2Enum_2Enum ) @ ( inj__ty_2Enum_2Enum @ V0m ) ) @ ( c_2Elist_2ENIL @ ty_2Enum_2Enum ) ) ) ) ).

thf(conj_thm_2ElistRange_2EMEM__listRangeINC,axiom,
    ! [V0x: tp__ty_2Enum_2Enum,V1m: tp__ty_2Enum_2Enum,V2n: tp__ty_2Enum_2Enum] :
      ( ( p @ ( ap @ ( ap @ ( c_2Ebool_2EIN @ ty_2Enum_2Enum ) @ ( inj__ty_2Enum_2Enum @ V0x ) ) @ ( ap @ ( c_2Elist_2ELIST__TO__SET @ ty_2Enum_2Enum ) @ ( ap @ ( ap @ c_2ElistRange_2ElistRangeINC @ ( inj__ty_2Enum_2Enum @ V1m ) ) @ ( inj__ty_2Enum_2Enum @ V2n ) ) ) ) )
    <=> ( ( p @ ( ap @ ( ap @ c_2Earithmetic_2E_3C_3D @ ( inj__ty_2Enum_2Enum @ V1m ) ) @ ( inj__ty_2Enum_2Enum @ V0x ) ) )
        & ( p @ ( ap @ ( ap @ c_2Earithmetic_2E_3C_3D @ ( inj__ty_2Enum_2Enum @ V0x ) ) @ ( inj__ty_2Enum_2Enum @ V2n ) ) ) ) ) ).

thf(conj_thm_2ElistRange_2ElistRangeINC__CONS,axiom,
    ! [V0m: tp__ty_2Enum_2Enum,V1n: tp__ty_2Enum_2Enum] :
      ( ( p @ ( ap @ ( ap @ c_2Earithmetic_2E_3C_3D @ ( inj__ty_2Enum_2Enum @ V0m ) ) @ ( inj__ty_2Enum_2Enum @ V1n ) ) )
     => ( ( surj__c_ty_2Elist_2Elist_ty_2Enum_2Enum @ ( ap @ ( ap @ c_2ElistRange_2ElistRangeINC @ ( inj__ty_2Enum_2Enum @ V0m ) ) @ ( inj__ty_2Enum_2Enum @ V1n ) ) )
        = ( surj__c_ty_2Elist_2Elist_ty_2Enum_2Enum @ ( ap @ ( ap @ ( c_2Elist_2ECONS @ ty_2Enum_2Enum ) @ ( inj__ty_2Enum_2Enum @ V0m ) ) @ ( ap @ ( ap @ c_2ElistRange_2ElistRangeINC @ ( ap @ ( ap @ c_2Earithmetic_2E_2B @ ( inj__ty_2Enum_2Enum @ V0m ) ) @ ( ap @ c_2Earithmetic_2ENUMERAL @ ( ap @ c_2Earithmetic_2EBIT1 @ ( inj__ty_2Enum_2Enum @ fo__c_2Earithmetic_2EZERO ) ) ) ) ) @ ( inj__ty_2Enum_2Enum @ V1n ) ) ) ) ) ) ).

thf(conj_thm_2ElistRange_2ElistRangeINC__EMPTY,axiom,
    ! [V0n: tp__ty_2Enum_2Enum,V1m: tp__ty_2Enum_2Enum] :
      ( ( p @ ( ap @ ( ap @ c_2Eprim__rec_2E_3C @ ( inj__ty_2Enum_2Enum @ V0n ) ) @ ( inj__ty_2Enum_2Enum @ V1m ) ) )
     => ( ( surj__c_ty_2Elist_2Elist_ty_2Enum_2Enum @ ( ap @ ( ap @ c_2ElistRange_2ElistRangeINC @ ( inj__ty_2Enum_2Enum @ V1m ) ) @ ( inj__ty_2Enum_2Enum @ V0n ) ) )
        = ( surj__c_ty_2Elist_2Elist_ty_2Enum_2Enum @ ( c_2Elist_2ENIL @ ty_2Enum_2Enum ) ) ) ) ).

thf(ax_thm_2ElistRange_2ElistRangeLHI__def,axiom,
    ! [V0m: tp__ty_2Enum_2Enum,V1n: tp__ty_2Enum_2Enum] :
      ( ( surj__c_ty_2Elist_2Elist_ty_2Enum_2Enum @ ( ap @ ( ap @ c_2ElistRange_2ElistRangeLHI @ ( inj__ty_2Enum_2Enum @ V0m ) ) @ ( inj__ty_2Enum_2Enum @ V1n ) ) )
      = ( surj__c_ty_2Elist_2Elist_ty_2Enum_2Enum
        @ ( ap
          @ ( ap @ ( c_2Elist_2EGENLIST @ ty_2Enum_2Enum )
            @ ( lam @ ty_2Enum_2Enum
              @ ^ [V2i: $i] : ( ap @ ( ap @ c_2Earithmetic_2E_2B @ ( inj__ty_2Enum_2Enum @ V0m ) ) @ V2i ) ) )
          @ ( ap @ ( ap @ c_2Earithmetic_2E_2D @ ( inj__ty_2Enum_2Enum @ V1n ) ) @ ( inj__ty_2Enum_2Enum @ V0m ) ) ) ) ) ).

thf(conj_thm_2ElistRange_2ElistRangeLHI__EQ,axiom,
    ! [V0m: tp__ty_2Enum_2Enum] :
      ( ( surj__c_ty_2Elist_2Elist_ty_2Enum_2Enum @ ( ap @ ( ap @ c_2ElistRange_2ElistRangeLHI @ ( inj__ty_2Enum_2Enum @ V0m ) ) @ ( inj__ty_2Enum_2Enum @ V0m ) ) )
      = ( surj__c_ty_2Elist_2Elist_ty_2Enum_2Enum @ ( c_2Elist_2ENIL @ ty_2Enum_2Enum ) ) ) ).

thf(conj_thm_2ElistRange_2EMEM__listRangeLHI,axiom,
    ! [V0x: tp__ty_2Enum_2Enum,V1m: tp__ty_2Enum_2Enum,V2n: tp__ty_2Enum_2Enum] :
      ( ( p @ ( ap @ ( ap @ ( c_2Ebool_2EIN @ ty_2Enum_2Enum ) @ ( inj__ty_2Enum_2Enum @ V0x ) ) @ ( ap @ ( c_2Elist_2ELIST__TO__SET @ ty_2Enum_2Enum ) @ ( ap @ ( ap @ c_2ElistRange_2ElistRangeLHI @ ( inj__ty_2Enum_2Enum @ V1m ) ) @ ( inj__ty_2Enum_2Enum @ V2n ) ) ) ) )
    <=> ( ( p @ ( ap @ ( ap @ c_2Earithmetic_2E_3C_3D @ ( inj__ty_2Enum_2Enum @ V1m ) ) @ ( inj__ty_2Enum_2Enum @ V0x ) ) )
        & ( p @ ( ap @ ( ap @ c_2Eprim__rec_2E_3C @ ( inj__ty_2Enum_2Enum @ V0x ) ) @ ( inj__ty_2Enum_2Enum @ V2n ) ) ) ) ) ).

thf(conj_thm_2ElistRange_2ElistRangeLHI__EMPTY,axiom,
    ! [V0hi: tp__ty_2Enum_2Enum,V1lo: tp__ty_2Enum_2Enum] :
      ( ( p @ ( ap @ ( ap @ c_2Earithmetic_2E_3C_3D @ ( inj__ty_2Enum_2Enum @ V0hi ) ) @ ( inj__ty_2Enum_2Enum @ V1lo ) ) )
     => ( ( surj__c_ty_2Elist_2Elist_ty_2Enum_2Enum @ ( ap @ ( ap @ c_2ElistRange_2ElistRangeLHI @ ( inj__ty_2Enum_2Enum @ V1lo ) ) @ ( inj__ty_2Enum_2Enum @ V0hi ) ) )
        = ( surj__c_ty_2Elist_2Elist_ty_2Enum_2Enum @ ( c_2Elist_2ENIL @ ty_2Enum_2Enum ) ) ) ) ).

thf(conj_thm_2ElistRange_2ElistRangeLHI__CONS,axiom,
    ! [V0lo: tp__ty_2Enum_2Enum,V1hi: tp__ty_2Enum_2Enum] :
      ( ( p @ ( ap @ ( ap @ c_2Eprim__rec_2E_3C @ ( inj__ty_2Enum_2Enum @ V0lo ) ) @ ( inj__ty_2Enum_2Enum @ V1hi ) ) )
     => ( ( surj__c_ty_2Elist_2Elist_ty_2Enum_2Enum @ ( ap @ ( ap @ c_2ElistRange_2ElistRangeLHI @ ( inj__ty_2Enum_2Enum @ V0lo ) ) @ ( inj__ty_2Enum_2Enum @ V1hi ) ) )
        = ( surj__c_ty_2Elist_2Elist_ty_2Enum_2Enum @ ( ap @ ( ap @ ( c_2Elist_2ECONS @ ty_2Enum_2Enum ) @ ( inj__ty_2Enum_2Enum @ V0lo ) ) @ ( ap @ ( ap @ c_2ElistRange_2ElistRangeLHI @ ( ap @ ( ap @ c_2Earithmetic_2E_2B @ ( inj__ty_2Enum_2Enum @ V0lo ) ) @ ( ap @ c_2Earithmetic_2ENUMERAL @ ( ap @ c_2Earithmetic_2EBIT1 @ ( inj__ty_2Enum_2Enum @ fo__c_2Earithmetic_2EZERO ) ) ) ) ) @ ( inj__ty_2Enum_2Enum @ V1hi ) ) ) ) ) ) ).

thf(conj_thm_2ElistRange_2ElistRangeLHI__ALL__DISTINCT,axiom,
    ! [V0lo: tp__ty_2Enum_2Enum,V1hi: tp__ty_2Enum_2Enum] : ( p @ ( ap @ ( c_2Elist_2EALL__DISTINCT @ ty_2Enum_2Enum ) @ ( ap @ ( ap @ c_2ElistRange_2ElistRangeLHI @ ( inj__ty_2Enum_2Enum @ V0lo ) ) @ ( inj__ty_2Enum_2Enum @ V1hi ) ) ) ) ).

thf(conj_thm_2ElistRange_2ELENGTH__listRangeLHI,axiom,
    ! [V0lo: tp__ty_2Enum_2Enum,V1hi: tp__ty_2Enum_2Enum] :
      ( ( surj__ty_2Enum_2Enum @ ( ap @ ( c_2Elist_2ELENGTH @ ty_2Enum_2Enum ) @ ( ap @ ( ap @ c_2ElistRange_2ElistRangeLHI @ ( inj__ty_2Enum_2Enum @ V0lo ) ) @ ( inj__ty_2Enum_2Enum @ V1hi ) ) ) )
      = ( surj__ty_2Enum_2Enum @ ( ap @ ( ap @ c_2Earithmetic_2E_2D @ ( inj__ty_2Enum_2Enum @ V1hi ) ) @ ( inj__ty_2Enum_2Enum @ V0lo ) ) ) ) ).

thf(conj_thm_2ElistRange_2EEL__listRangeLHI,axiom,
    ! [V0lo: tp__ty_2Enum_2Enum,V1i: tp__ty_2Enum_2Enum,V2hi: tp__ty_2Enum_2Enum] :
      ( ( p @ ( ap @ ( ap @ c_2Eprim__rec_2E_3C @ ( ap @ ( ap @ c_2Earithmetic_2E_2B @ ( inj__ty_2Enum_2Enum @ V0lo ) ) @ ( inj__ty_2Enum_2Enum @ V1i ) ) ) @ ( inj__ty_2Enum_2Enum @ V2hi ) ) )
     => ( ( surj__ty_2Enum_2Enum @ ( ap @ ( ap @ ( c_2Elist_2EEL @ ty_2Enum_2Enum ) @ ( inj__ty_2Enum_2Enum @ V1i ) ) @ ( ap @ ( ap @ c_2ElistRange_2ElistRangeLHI @ ( inj__ty_2Enum_2Enum @ V0lo ) ) @ ( inj__ty_2Enum_2Enum @ V2hi ) ) ) )
        = ( surj__ty_2Enum_2Enum @ ( ap @ ( ap @ c_2Earithmetic_2E_2B @ ( inj__ty_2Enum_2Enum @ V0lo ) ) @ ( inj__ty_2Enum_2Enum @ V1i ) ) ) ) ) ).

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