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    :   25 (   7 unt;   8 typ;   0 def)
%            Number of atoms       :   69 (  10 equ)
%            Maximal formula atoms :    3 (   2 avg)
%            Number of connectives :   14 (   0   ~;   0   |;   2   &)
%                                         (   1 <=>;  11  =>;   0  <=;   0 <~>)
%            Maximal formula depth :    6 (   3 avg)
%            Maximal term depth    :    3 (   1 avg)
%            Number of FOOLs       :   38 (  38 fml;   0 var)
%            Number of types       :    2 (   1 usr)
%            Number of type conns  :    5 (   4   >;   1   *;   0   +;   0  <<)
%            Number of predicates  :   14 (  13 usr;   3 prp; 0-2 aty)
%            Number of functors    :    7 (   7 usr;   3 con; 0-2 aty)
%            Number of variables   :   26 (  24   !;   2   ?;  26   :)
% SPC      : TF0_SAT_EQU_NAR

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

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

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

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

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

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

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

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

tff(mem_c_2Eone_2Eone,axiom,
    mem(c_2Eone_2Eone,ty_2Eone_2Eone) ).

tff(stp_fo_c_2Eone_2Eone,type,
    fo__c_2Eone_2Eone: tp__ty_2Eone_2Eone ).

tff(stp_eq_fo_c_2Eone_2Eone,axiom,
    inj__ty_2Eone_2Eone(fo__c_2Eone_2Eone) = c_2Eone_2Eone ).

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

tff(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))) ).

tff(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),i(bool)),V0rep)) ) ).

tff(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 ) ) ) ).

tff(ax_thm_2Eone_2Eone__DEF,axiom,
    fo__c_2Eone_2Eone = surj__ty_2Eone_2Eone(ap(c_2Emin_2E_40(ty_2Eone_2Eone),k(ty_2Eone_2Eone,c_2Ebool_2ET))) ).

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

tff(lamtp_f87,type,
    f87: ( del * $i ) > $i ).

tff(lameq_f87,axiom,
    ! [A_27a: del,V0e: $i] :
      ( mem(V0e,A_27a)
     => ! [V1fn: $i] : ( ap(f87(A_27a,V0e),V1fn) = ap(ap(c_2Emin_2E_3D(A_27a),ap(V1fn,inj__ty_2Eone_2Eone(fo__c_2Eone_2Eone))),V0e) ) ) ).

tff(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)),f87(A_27a,V0e))) ) ).

tff(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 ) ) ) ).

tff(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))) ) ) ).

tff(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))) ) ) ).

tff(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 ) ) ).

tff(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 ) ) ).

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