ITP001 Axioms: ITP010^5.ax


%------------------------------------------------------------------------------
% File     : ITP010^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    : one^2.ax [Gau20]
%          : HL4010^5.ax [TPAP]

% Status   : Satisfiable
% Syntax   : Number of formulae    :   23 (   6 unt;   7 typ;   0 def)
%            Number of atoms       :   68 (   9 equ;   0 cnn)
%            Maximal formula atoms :   11 (   2 avg)
%            Number of connectives :  128 (   0   ~;   0   |;   2   &; 115   @)
%                                         (   1 <=>;  10  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   13 (   6 avg; 115 nst)
%            Number of types       :    2 (   1 usr)
%            Number of type conns  :    3 (   3   >;   0   *;   0   +;   0  <<)
%            Number of symbols     :   19 (  18 usr;  15 con; 0-2 aty)
%            Number of variables   :   26 (   3   ^  21   !;   2   ?;  26   :)
% SPC      : TH0_SAT_EQU_NAR

% Comments :
% Bugfixes : v7.5.0 - Fixes to the axioms.
%------------------------------------------------------------------------------
thf(tp_ty_2Eone_2Eone,type,
    ty_2Eone_2Eone: del ).

thf(stp_ty_2Eone_2Eone,type,
    tp__ty_2Eone_2Eone: $tType ).

thf(stp_inj_ty_2Eone_2Eone,type,
    inj__ty_2Eone_2Eone: tp__ty_2Eone_2Eone > $i ).

thf(stp_surj_ty_2Eone_2Eone,type,
    surj__ty_2Eone_2Eone: $i > tp__ty_2Eone_2Eone ).

thf(stp_inj_surj_ty_2Eone_2Eone,axiom,
    ! [X: tp__ty_2Eone_2Eone] :
      ( ( surj__ty_2Eone_2Eone @ ( inj__ty_2Eone_2Eone @ X ) )
      = X ) ).

thf(stp_inj_mem_ty_2Eone_2Eone,axiom,
    ! [X: tp__ty_2Eone_2Eone] : ( mem @ ( inj__ty_2Eone_2Eone @ X ) @ ty_2Eone_2Eone ) ).

thf(stp_iso_mem_ty_2Eone_2Eone,axiom,
    ! [X: $i] :
      ( ( mem @ X @ ty_2Eone_2Eone )
     => ( X
        = ( inj__ty_2Eone_2Eone @ ( surj__ty_2Eone_2Eone @ X ) ) ) ) ).

thf(tp_c_2Eone_2Eone,type,
    c_2Eone_2Eone: $i ).

thf(mem_c_2Eone_2Eone,axiom,
    mem @ c_2Eone_2Eone @ ty_2Eone_2Eone ).

thf(stp_fo_c_2Eone_2Eone,type,
    fo__c_2Eone_2Eone: tp__ty_2Eone_2Eone ).

thf(stp_eq_fo_c_2Eone_2Eone,axiom,
    ( ( inj__ty_2Eone_2Eone @ fo__c_2Eone_2Eone )
    = c_2Eone_2Eone ) ).

thf(tp_c_2Eone_2Eone__CASE,type,
    c_2Eone_2Eone__CASE: del > $i ).

thf(mem_c_2Eone_2Eone__CASE,axiom,
    ! [A_27a: del] : ( mem @ ( c_2Eone_2Eone__CASE @ A_27a ) @ ( arr @ ty_2Eone_2Eone @ ( arr @ A_27a @ A_27a ) ) ) ).

thf(ax_thm_2Eone_2Eone__TY__DEF,axiom,
    ? [V0rep: $i] :
      ( ( mem @ V0rep @ ( arr @ ty_2Eone_2Eone @ bool ) )
      & ( p
        @ ( ap
          @ ( ap @ ( c_2Ebool_2ETYPE__DEFINITION @ bool @ ty_2Eone_2Eone )
            @ ( lam @ bool
              @ ^ [V1b: $i] : V1b ) )
          @ V0rep ) ) ) ).

thf(conj_thm_2Eone_2Eone__axiom,axiom,
    ! [A_27a: del,V0f: $i] :
      ( ( mem @ V0f @ ( arr @ A_27a @ ty_2Eone_2Eone ) )
     => ! [V1g: $i] :
          ( ( mem @ V1g @ ( arr @ A_27a @ ty_2Eone_2Eone ) )
         => ( V0f = V1g ) ) ) ).

thf(ax_thm_2Eone_2Eone__DEF,axiom,
    ( fo__c_2Eone_2Eone
    = ( surj__ty_2Eone_2Eone
      @ ( ap @ ( c_2Emin_2E_40 @ ty_2Eone_2Eone )
        @ ( lam @ ty_2Eone_2Eone
          @ ^ [V0x: $i] : c_2Ebool_2ET ) ) ) ) ).

thf(conj_thm_2Eone_2Eone,axiom,
    ! [V0v: tp__ty_2Eone_2Eone] : ( V0v = fo__c_2Eone_2Eone ) ).

thf(conj_thm_2Eone_2Eone__Axiom,axiom,
    ! [A_27a: del,V0e: $i] :
      ( ( mem @ V0e @ A_27a )
     => ( p
        @ ( ap @ ( c_2Ebool_2E_3F_21 @ ( arr @ ty_2Eone_2Eone @ A_27a ) )
          @ ( lam @ ( arr @ ty_2Eone_2Eone @ A_27a )
            @ ^ [V1fn: $i] : ( ap @ ( ap @ ( c_2Emin_2E_3D @ A_27a ) @ ( ap @ V1fn @ ( inj__ty_2Eone_2Eone @ fo__c_2Eone_2Eone ) ) ) @ V0e ) ) ) ) ) ).

thf(conj_thm_2Eone_2Eone__prim__rec,axiom,
    ! [A_27a: del,V0e: $i] :
      ( ( mem @ V0e @ A_27a )
     => ? [V1fn: $i] :
          ( ( mem @ V1fn @ ( arr @ ty_2Eone_2Eone @ A_27a ) )
          & ( ( ap @ V1fn @ ( inj__ty_2Eone_2Eone @ fo__c_2Eone_2Eone ) )
            = V0e ) ) ) ).

thf(conj_thm_2Eone_2Eone__induction,axiom,
    ! [V0P: $i] :
      ( ( mem @ V0P @ ( arr @ ty_2Eone_2Eone @ bool ) )
     => ( ( p @ ( ap @ V0P @ ( inj__ty_2Eone_2Eone @ fo__c_2Eone_2Eone ) ) )
       => ! [V1x: tp__ty_2Eone_2Eone] : ( p @ ( ap @ V0P @ ( inj__ty_2Eone_2Eone @ V1x ) ) ) ) ) ).

thf(conj_thm_2Eone_2EFORALL__ONE,axiom,
    ! [V0P: $i] :
      ( ( mem @ V0P @ ( arr @ ty_2Eone_2Eone @ bool ) )
     => ( ! [V1x: tp__ty_2Eone_2Eone] : ( p @ ( ap @ V0P @ ( inj__ty_2Eone_2Eone @ V1x ) ) )
      <=> ( p @ ( ap @ V0P @ ( inj__ty_2Eone_2Eone @ fo__c_2Eone_2Eone ) ) ) ) ) ).

thf(ax_thm_2Eone_2Eone__case__def,axiom,
    ! [A_27a: del,V0u: tp__ty_2Eone_2Eone,V1x: $i] :
      ( ( mem @ V1x @ A_27a )
     => ( ( ap @ ( ap @ ( c_2Eone_2Eone__CASE @ A_27a ) @ ( inj__ty_2Eone_2Eone @ V0u ) ) @ V1x )
        = V1x ) ) ).

thf(conj_thm_2Eone_2Eone__case__thm,axiom,
    ! [A_27a: del,V0x: $i] :
      ( ( mem @ V0x @ A_27a )
     => ( ( ap @ ( ap @ ( c_2Eone_2Eone__CASE @ A_27a ) @ ( inj__ty_2Eone_2Eone @ fo__c_2Eone_2Eone ) ) @ V0x )
        = V0x ) ) ).

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