TPTP Axioms File: NUM007^0.ax


%------------------------------------------------------------------------------
% File     : NUM007^0 : TPTP v9.0.0. Released v7.1.0.
% Domain   : Number Theory
% Axioms   : Grundlagen preliminaries
% Version  : [Bro17] axioms : Especial.
% English  :

% Refs     : [Bro17] Brown (2017), Email to G. Sutcliffe
% Source   : [Bro17]
% Names    : 

% Status   : Satisfiable
% Syntax   : Number of formulae    :  283 ( 121 unt; 112 typ; 105 def)
%            Number of atoms       :  500 ( 135 equ;   0 cnn)
%            Maximal formula atoms :    8 (   1 avg)
%            Number of connectives : 1229 (   7   ~;   4   |;  14   &;1122   @)
%                                         (   3 <=>;  79  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   14 (   4 avg;1122 nst)
%            Number of types       :    2 (   0 usr)
%            Number of type conns  :  407 ( 407   >;   0   *;   0   +;   0  <<)
%            Number of symbols     :  114 ( 112 usr;   6 con; 0-7 aty)
%            Number of variables   :  506 ( 349   ^ 149   !;   8   ?; 506   :)
% SPC      :

% Comments :
%------------------------------------------------------------------------------
thf(typ_is_of,type,
    is_of: $i > ( $i > $o ) > $o ).

thf(def_is_of,definition,
    ( is_of
    = ( ^ [X0: $i,X1: $i > $o] : ( X1 @ X0 ) ) ) ).

thf(typ_all_of,type,
    all_of: ( $i > $o ) > ( $i > $o ) > $o ).

thf(def_all_of,definition,
    ( all_of
    = ( ^ [X0: $i > $o,X1: $i > $o] :
        ! [X2: $i] :
          ( ( is_of @ X2 @ X0 )
         => ( X1 @ X2 ) ) ) ) ).

thf(typ_eps,type,
    eps: ( $i > $o ) > $i ).

thf(typ_in,type,
    in: $i > $i > $o ).

thf(typ_d_Subq,type,
    d_Subq: $i > $i > $o ).

thf(def_d_Subq,definition,
    ( d_Subq
    = ( ^ [X0: $i,X1: $i] :
        ! [X2: $i] :
          ( ( in @ X2 @ X0 )
         => ( in @ X2 @ X1 ) ) ) ) ).

thf(set_ext,axiom,
    ! [X0: $i,X1: $i] :
      ( ( d_Subq @ X0 @ X1 )
     => ( ( d_Subq @ X1 @ X0 )
       => ( X0 = X1 ) ) ) ).

thf(k_In_ind,axiom,
    ! [X0: $i > $o] :
      ( ! [X1: $i] :
          ( ! [X2: $i] :
              ( ( in @ X2 @ X1 )
             => ( X0 @ X2 ) )
         => ( X0 @ X1 ) )
     => ! [X1: $i] : ( X0 @ X1 ) ) ).

thf(typ_emptyset,type,
    emptyset: $i ).

thf(k_EmptyAx,axiom,
    ~ ? [X0: $i] : ( in @ X0 @ emptyset ) ).

thf(typ_union,type,
    union: $i > $i ).

thf(k_UnionEq,axiom,
    ! [X0: $i,X1: $i] :
      ( ( in @ X1 @ ( union @ X0 ) )
    <=> ? [X2: $i] :
          ( ( in @ X1 @ X2 )
          & ( in @ X2 @ X0 ) ) ) ).

thf(typ_power,type,
    power: $i > $i ).

thf(k_PowerEq,axiom,
    ! [X0: $i,X1: $i] :
      ( ( in @ X1 @ ( power @ X0 ) )
    <=> ( d_Subq @ X1 @ X0 ) ) ).

thf(typ_repl,type,
    repl: $i > ( $i > $i ) > $i ).

thf(k_ReplEq,axiom,
    ! [X0: $i,X1: $i > $i,X2: $i] :
      ( ( in @ X2 @ ( repl @ X0 @ X1 ) )
    <=> ? [X3: $i] :
          ( ( in @ X3 @ X0 )
          & ( X2
            = ( X1 @ X3 ) ) ) ) ).

thf(typ_d_Union_closed,type,
    d_Union_closed: $i > $o ).

thf(def_d_Union_closed,definition,
    ( d_Union_closed
    = ( ^ [X0: $i] :
        ! [X1: $i] :
          ( ( in @ X1 @ X0 )
         => ( in @ ( union @ X1 ) @ X0 ) ) ) ) ).

thf(typ_d_Power_closed,type,
    d_Power_closed: $i > $o ).

thf(def_d_Power_closed,definition,
    ( d_Power_closed
    = ( ^ [X0: $i] :
        ! [X1: $i] :
          ( ( in @ X1 @ X0 )
         => ( in @ ( power @ X1 ) @ X0 ) ) ) ) ).

thf(typ_d_Repl_closed,type,
    d_Repl_closed: $i > $o ).

thf(def_d_Repl_closed,definition,
    ( d_Repl_closed
    = ( ^ [X0: $i] :
        ! [X1: $i] :
          ( ( in @ X1 @ X0 )
         => ! [X2: $i > $i] :
              ( ! [X3: $i] :
                  ( ( in @ X3 @ X1 )
                 => ( in @ ( X2 @ X3 ) @ X0 ) )
             => ( in @ ( repl @ X1 @ X2 ) @ X0 ) ) ) ) ) ).

thf(typ_d_ZF_closed,type,
    d_ZF_closed: $i > $o ).

thf(def_d_ZF_closed,definition,
    ( d_ZF_closed
    = ( ^ [X0: $i] :
          ( ( d_Union_closed @ X0 )
          & ( d_Power_closed @ X0 )
          & ( d_Repl_closed @ X0 ) ) ) ) ).

thf(typ_univof,type,
    univof: $i > $i ).

thf(k_UnivOf_In,axiom,
    ! [X0: $i] : ( in @ X0 @ ( univof @ X0 ) ) ).

thf(k_UnivOf_ZF_closed,axiom,
    ! [X0: $i] : ( d_ZF_closed @ ( univof @ X0 ) ) ).

thf(typ_if,type,
    if: $o > $i > $i > $i ).

thf(def_if,definition,
    ( if
    = ( ^ [X0: $o,X1: $i,X2: $i] :
          ( eps
          @ ^ [X3: $i] :
              ( ( X0
                & ( X3 = X1 ) )
              | ( ~ X0
                & ( X3 = X2 ) ) ) ) ) ) ).

thf(if_i_correct,axiom,
    ! [X0: $o,X1: $i,X2: $i] :
      ( ( X0
        & ( ( if @ X0 @ X1 @ X2 )
          = X1 ) )
      | ( ~ X0
        & ( ( if @ X0 @ X1 @ X2 )
          = X2 ) ) ) ).

thf(if_i_0,axiom,
    ! [X0: $o,X1: $i,X2: $i] :
      ( ~ X0
     => ( ( if @ X0 @ X1 @ X2 )
        = X2 ) ) ).

thf(if_i_1,axiom,
    ! [X0: $o,X1: $i,X2: $i] :
      ( X0
     => ( ( if @ X0 @ X1 @ X2 )
        = X1 ) ) ).

thf(if_i_or,axiom,
    ! [X0: $o,X1: $i,X2: $i] :
      ( ( ( if @ X0 @ X1 @ X2 )
        = X1 )
      | ( ( if @ X0 @ X1 @ X2 )
        = X2 ) ) ).

thf(typ_nIn,type,
    nIn: $i > $i > $o ).

thf(def_nIn,definition,
    ( nIn
    = ( ^ [X0: $i,X1: $i] :
          ~ ( in @ X0 @ X1 ) ) ) ).

thf(k_PowerE,axiom,
    ! [X0: $i,X1: $i] :
      ( ( in @ X1 @ ( power @ X0 ) )
     => ( d_Subq @ X1 @ X0 ) ) ).

thf(k_PowerI,axiom,
    ! [X0: $i,X1: $i] :
      ( ( d_Subq @ X1 @ X0 )
     => ( in @ X1 @ ( power @ X0 ) ) ) ).

thf(k_Self_In_Power,axiom,
    ! [X0: $i] : ( in @ X0 @ ( power @ X0 ) ) ).

thf(typ_d_UPair,type,
    d_UPair: $i > $i > $i ).

thf(def_d_UPair,definition,
    ( d_UPair
    = ( ^ [X0: $i,X1: $i] :
          ( repl @ ( power @ ( power @ emptyset ) )
          @ ^ [X2: $i] : ( if @ ( in @ emptyset @ X2 ) @ X0 @ X1 ) ) ) ) ).

thf(typ_d_Sing,type,
    d_Sing: $i > $i ).

thf(def_d_Sing,definition,
    ( d_Sing
    = ( ^ [X0: $i] : ( d_UPair @ X0 @ X0 ) ) ) ).

thf(typ_binunion,type,
    binunion: $i > $i > $i ).

thf(def_binunion,definition,
    ( binunion
    = ( ^ [X0: $i,X1: $i] : ( union @ ( d_UPair @ X0 @ X1 ) ) ) ) ).

thf(typ_famunion,type,
    famunion: $i > ( $i > $i ) > $i ).

thf(def_famunion,definition,
    ( famunion
    = ( ^ [X0: $i,X1: $i > $i] : ( union @ ( repl @ X0 @ X1 ) ) ) ) ).

thf(typ_d_Sep,type,
    d_Sep: $i > ( $i > $o ) > $i ).

thf(def_d_Sep,definition,
    ( d_Sep
    = ( ^ [X0: $i,X1: $i > $o] :
          ( if
          @ ? [X2: $i] :
              ( ( in @ X2 @ X0 )
              & ( X1 @ X2 ) )
          @ ( repl @ X0
            @ ^ [X2: $i] :
                ( if @ ( X1 @ X2 ) @ X2
                @ ( eps
                  @ ^ [X3: $i] :
                      ( ( in @ X3 @ X0 )
                      & ( X1 @ X3 ) ) ) ) )
          @ emptyset ) ) ) ).

thf(k_SepI,axiom,
    ! [X0: $i,X1: $i > $o,X2: $i] :
      ( ( in @ X2 @ X0 )
     => ( ( X1 @ X2 )
       => ( in @ X2 @ ( d_Sep @ X0 @ X1 ) ) ) ) ).

thf(k_SepE1,axiom,
    ! [X0: $i,X1: $i > $o,X2: $i] :
      ( ( in @ X2 @ ( d_Sep @ X0 @ X1 ) )
     => ( in @ X2 @ X0 ) ) ).

thf(k_SepE2,axiom,
    ! [X0: $i,X1: $i > $o,X2: $i] :
      ( ( in @ X2 @ ( d_Sep @ X0 @ X1 ) )
     => ( X1 @ X2 ) ) ).

thf(typ_d_ReplSep,type,
    d_ReplSep: $i > ( $i > $o ) > ( $i > $i ) > $i ).

thf(def_d_ReplSep,definition,
    ( d_ReplSep
    = ( ^ [X0: $i,X1: $i > $o] : ( repl @ ( d_Sep @ X0 @ X1 ) ) ) ) ).

thf(typ_setminus,type,
    setminus: $i > $i > $i ).

thf(def_setminus,definition,
    ( setminus
    = ( ^ [X0: $i,X1: $i] :
          ( d_Sep @ X0
          @ ^ [X2: $i] : ( nIn @ X2 @ X1 ) ) ) ) ).

thf(typ_d_In_rec_G,type,
    d_In_rec_G: ( $i > ( $i > $i ) > $i ) > $i > $i > $o ).

thf(def_d_In_rec_G,definition,
    ( d_In_rec_G
    = ( ^ [X0: $i > ( $i > $i ) > $i,X1: $i,X2: $i] :
        ! [X3: $i > $i > $o] :
          ( ! [X4: $i,X5: $i > $i] :
              ( ! [X6: $i] :
                  ( ( in @ X6 @ X4 )
                 => ( X3 @ X6 @ ( X5 @ X6 ) ) )
             => ( X3 @ X4 @ ( X0 @ X4 @ X5 ) ) )
         => ( X3 @ X1 @ X2 ) ) ) ) ).

thf(typ_d_In_rec,type,
    d_In_rec: ( $i > ( $i > $i ) > $i ) > $i > $i ).

thf(def_d_In_rec,definition,
    ( d_In_rec
    = ( ^ [X0: $i > ( $i > $i ) > $i,X1: $i] : ( eps @ ( d_In_rec_G @ X0 @ X1 ) ) ) ) ).

thf(typ_ordsucc,type,
    ordsucc: $i > $i ).

thf(def_ordsucc,definition,
    ( ordsucc
    = ( ^ [X0: $i] : ( binunion @ X0 @ ( d_Sing @ X0 ) ) ) ) ).

thf(neq_ordsucc_0,axiom,
    ! [X0: $i] :
      ( ( ordsucc @ X0 )
     != emptyset ) ).

thf(ordsucc_inj,axiom,
    ! [X0: $i,X1: $i] :
      ( ( ( ordsucc @ X0 )
        = ( ordsucc @ X1 ) )
     => ( X0 = X1 ) ) ).

thf(k_In_0_1,axiom,
    in @ emptyset @ ( ordsucc @ emptyset ) ).

thf(typ_nat_p,type,
    nat_p: $i > $o ).

thf(def_nat_p,definition,
    ( nat_p
    = ( ^ [X0: $i] :
        ! [X1: $i > $o] :
          ( ( X1 @ emptyset )
         => ( ! [X2: $i] :
                ( ( X1 @ X2 )
               => ( X1 @ ( ordsucc @ X2 ) ) )
           => ( X1 @ X0 ) ) ) ) ) ).

thf(nat_ordsucc,axiom,
    ! [X0: $i] :
      ( ( nat_p @ X0 )
     => ( nat_p @ ( ordsucc @ X0 ) ) ) ).

thf(nat_1,axiom,
    nat_p @ ( ordsucc @ emptyset ) ).

thf(nat_ind,axiom,
    ! [X0: $i > $o] :
      ( ( X0 @ emptyset )
     => ( ! [X1: $i] :
            ( ( nat_p @ X1 )
           => ( ( X0 @ X1 )
             => ( X0 @ ( ordsucc @ X1 ) ) ) )
       => ! [X1: $i] :
            ( ( nat_p @ X1 )
           => ( X0 @ X1 ) ) ) ) ).

thf(nat_inv,axiom,
    ! [X0: $i] :
      ( ( nat_p @ X0 )
     => ( ( X0 = emptyset )
        | ? [X1: $i] :
            ( ( nat_p @ X1 )
            & ( X0
              = ( ordsucc @ X1 ) ) ) ) ) ).

thf(typ_omega,type,
    omega: $i ).

thf(def_omega,definition,
    ( omega
    = ( d_Sep @ ( univof @ emptyset ) @ nat_p ) ) ).

thf(omega_nat_p,axiom,
    ! [X0: $i] :
      ( ( in @ X0 @ omega )
     => ( nat_p @ X0 ) ) ).

thf(nat_p_omega,axiom,
    ! [X0: $i] :
      ( ( nat_p @ X0 )
     => ( in @ X0 @ omega ) ) ).

thf(typ_d_Inj1,type,
    d_Inj1: $i > $i ).

thf(def_d_Inj1,definition,
    ( d_Inj1
    = ( d_In_rec
      @ ^ [X0: $i,X1: $i > $i] : ( binunion @ ( d_Sing @ emptyset ) @ ( repl @ X0 @ X1 ) ) ) ) ).

thf(typ_d_Inj0,type,
    d_Inj0: $i > $i ).

thf(def_d_Inj0,definition,
    ( d_Inj0
    = ( ^ [X0: $i] : ( repl @ X0 @ d_Inj1 ) ) ) ).

thf(typ_d_Unj,type,
    d_Unj: $i > $i ).

thf(def_d_Unj,definition,
    ( d_Unj
    = ( d_In_rec
      @ ^ [X0: $i] : ( repl @ ( setminus @ X0 @ ( d_Sing @ emptyset ) ) ) ) ) ).

thf(typ_pair,type,
    pair: $i > $i > $i ).

thf(def_pair,definition,
    ( pair
    = ( ^ [X0: $i,X1: $i] : ( binunion @ ( repl @ X0 @ d_Inj0 ) @ ( repl @ X1 @ d_Inj1 ) ) ) ) ).

thf(typ_proj0,type,
    proj0: $i > $i ).

thf(def_proj0,definition,
    ( proj0
    = ( ^ [X0: $i] :
          ( d_ReplSep @ X0
          @ ^ [X1: $i] :
            ? [X2: $i] :
              ( ( d_Inj0 @ X2 )
              = X1 )
          @ d_Unj ) ) ) ).

thf(typ_proj1,type,
    proj1: $i > $i ).

thf(def_proj1,definition,
    ( proj1
    = ( ^ [X0: $i] :
          ( d_ReplSep @ X0
          @ ^ [X1: $i] :
            ? [X2: $i] :
              ( ( d_Inj1 @ X2 )
              = X1 )
          @ d_Unj ) ) ) ).

thf(proj0_pair_eq,axiom,
    ! [X0: $i,X1: $i] :
      ( ( proj0 @ ( pair @ X0 @ X1 ) )
      = X0 ) ).

thf(proj1_pair_eq,axiom,
    ! [X0: $i,X1: $i] :
      ( ( proj1 @ ( pair @ X0 @ X1 ) )
      = X1 ) ).

thf(typ_d_Sigma,type,
    d_Sigma: $i > ( $i > $i ) > $i ).

thf(def_d_Sigma,definition,
    ( d_Sigma
    = ( ^ [X0: $i,X1: $i > $i] :
          ( famunion @ X0
          @ ^ [X2: $i] : ( repl @ ( X1 @ X2 ) @ ( pair @ X2 ) ) ) ) ) ).

thf(pair_Sigma,axiom,
    ! [X0: $i,X1: $i > $i,X2: $i] :
      ( ( in @ X2 @ X0 )
     => ! [X3: $i] :
          ( ( in @ X3 @ ( X1 @ X2 ) )
         => ( in @ ( pair @ X2 @ X3 ) @ ( d_Sigma @ X0 @ X1 ) ) ) ) ).

thf(k_Sigma_eta_proj0_proj1,axiom,
    ! [X0: $i,X1: $i > $i,X2: $i] :
      ( ( in @ X2 @ ( d_Sigma @ X0 @ X1 ) )
     => ( ( ( pair @ ( proj0 @ X2 ) @ ( proj1 @ X2 ) )
          = X2 )
        & ( in @ ( proj0 @ X2 ) @ X0 )
        & ( in @ ( proj1 @ X2 ) @ ( X1 @ ( proj0 @ X2 ) ) ) ) ) ).

thf(proj_Sigma_eta,axiom,
    ! [X0: $i,X1: $i > $i,X2: $i] :
      ( ( in @ X2 @ ( d_Sigma @ X0 @ X1 ) )
     => ( ( pair @ ( proj0 @ X2 ) @ ( proj1 @ X2 ) )
        = X2 ) ) ).

thf(proj0_Sigma,axiom,
    ! [X0: $i,X1: $i > $i,X2: $i] :
      ( ( in @ X2 @ ( d_Sigma @ X0 @ X1 ) )
     => ( in @ ( proj0 @ X2 ) @ X0 ) ) ).

thf(proj1_Sigma,axiom,
    ! [X0: $i,X1: $i > $i,X2: $i] :
      ( ( in @ X2 @ ( d_Sigma @ X0 @ X1 ) )
     => ( in @ ( proj1 @ X2 ) @ ( X1 @ ( proj0 @ X2 ) ) ) ) ).

thf(typ_setprod,type,
    setprod: $i > $i > $i ).

thf(def_setprod,definition,
    ( setprod
    = ( ^ [X0: $i,X1: $i] :
          ( d_Sigma @ X0
          @ ^ [X2: $i] : X1 ) ) ) ).

thf(typ_ap,type,
    ap: $i > $i > $i ).

thf(def_ap,definition,
    ( ap
    = ( ^ [X0: $i,X1: $i] :
          ( d_ReplSep @ X0
          @ ^ [X2: $i] :
            ? [X3: $i] :
              ( X2
              = ( pair @ X1 @ X3 ) )
          @ proj1 ) ) ) ).

thf(beta,axiom,
    ! [X0: $i,X1: $i > $i,X2: $i] :
      ( ( in @ X2 @ X0 )
     => ( ( ap @ ( d_Sigma @ X0 @ X1 ) @ X2 )
        = ( X1 @ X2 ) ) ) ).

thf(typ_pair_p,type,
    pair_p: $i > $o ).

thf(def_pair_p,definition,
    ( pair_p
    = ( ^ [X0: $i] :
          ( ( pair @ ( ap @ X0 @ emptyset ) @ ( ap @ X0 @ ( ordsucc @ emptyset ) ) )
          = X0 ) ) ) ).

thf(typ_d_Pi,type,
    d_Pi: $i > ( $i > $i ) > $i ).

thf(def_d_Pi,definition,
    ( d_Pi
    = ( ^ [X0: $i,X1: $i > $i] :
          ( d_Sep
          @ ( power
            @ ( d_Sigma @ X0
              @ ^ [X2: $i] : ( union @ ( X1 @ X2 ) ) ) )
          @ ^ [X2: $i] :
            ! [X3: $i] :
              ( ( in @ X3 @ X0 )
             => ( in @ ( ap @ X2 @ X3 ) @ ( X1 @ X3 ) ) ) ) ) ) ).

thf(lam_Pi,axiom,
    ! [X0: $i,X1: $i > $i,X2: $i > $i] :
      ( ! [X3: $i] :
          ( ( in @ X3 @ X0 )
         => ( in @ ( X2 @ X3 ) @ ( X1 @ X3 ) ) )
     => ( in @ ( d_Sigma @ X0 @ X2 ) @ ( d_Pi @ X0 @ X1 ) ) ) ).

thf(ap_Pi,axiom,
    ! [X0: $i,X1: $i > $i,X2: $i,X3: $i] :
      ( ( in @ X2 @ ( d_Pi @ X0 @ X1 ) )
     => ( ( in @ X3 @ X0 )
       => ( in @ ( ap @ X2 @ X3 ) @ ( X1 @ X3 ) ) ) ) ).

thf(k_Pi_ext,axiom,
    ! [X0: $i,X1: $i > $i,X2: $i] :
      ( ( in @ X2 @ ( d_Pi @ X0 @ X1 ) )
     => ! [X3: $i] :
          ( ( in @ X3 @ ( d_Pi @ X0 @ X1 ) )
         => ( ! [X4: $i] :
                ( ( in @ X4 @ X0 )
               => ( ( ap @ X2 @ X4 )
                  = ( ap @ X3 @ X4 ) ) )
           => ( X2 = X3 ) ) ) ) ).

thf(xi_ext,axiom,
    ! [X0: $i,X1: $i > $i,X2: $i > $i] :
      ( ! [X3: $i] :
          ( ( in @ X3 @ X0 )
         => ( ( X1 @ X3 )
            = ( X2 @ X3 ) ) )
     => ( ( d_Sigma @ X0 @ X1 )
        = ( d_Sigma @ X0 @ X2 ) ) ) ).

thf(k_If_In_01,axiom,
    ! [X0: $o,X1: $i,X2: $i] :
      ( ( X0
       => ( in @ X1 @ X2 ) )
     => ( in @ ( if @ X0 @ X1 @ emptyset ) @ ( if @ X0 @ X2 @ ( ordsucc @ emptyset ) ) ) ) ).

thf(k_If_In_then_E,axiom,
    ! [X0: $o,X1: $i,X2: $i,X3: $i] :
      ( X0
     => ( ( in @ X1 @ ( if @ X0 @ X2 @ X3 ) )
       => ( in @ X1 @ X2 ) ) ) ).

thf(typ_imp,type,
    imp: $o > $o > $o ).

thf(def_imp,definition,
    ( imp
    = ( ^ [X0: $o,X1: $o] :
          ( X0
         => X1 ) ) ) ).

thf(typ_d_not,type,
    d_not: $o > $o ).

thf(def_d_not,definition,
    ( d_not
    = ( ^ [X0: $o] : ( imp @ X0 @ $false ) ) ) ).

thf(typ_wel,type,
    wel: $o > $o ).

thf(def_wel,definition,
    ( wel
    = ( ^ [X0: $o] : ( d_not @ ( d_not @ X0 ) ) ) ) ).

thf(l_et,axiom,
    ! [X0: $o] :
      ( ( wel @ X0 )
     => X0 ) ).

thf(typ_obvious,type,
    obvious: $o ).

thf(def_obvious,definition,
    ( obvious
    = ( imp @ $false @ $false ) ) ).

thf(typ_l_ec,type,
    l_ec: $o > $o > $o ).

thf(def_l_ec,definition,
    ( l_ec
    = ( ^ [X0: $o,X1: $o] : ( imp @ X0 @ ( d_not @ X1 ) ) ) ) ).

thf(typ_d_and,type,
    d_and: $o > $o > $o ).

thf(def_d_and,definition,
    ( d_and
    = ( ^ [X0: $o,X1: $o] : ( d_not @ ( l_ec @ X0 @ X1 ) ) ) ) ).

thf(typ_l_or,type,
    l_or: $o > $o > $o ).

thf(def_l_or,definition,
    ( l_or
    = ( ^ [X0: $o] : ( imp @ ( d_not @ X0 ) ) ) ) ).

thf(typ_orec,type,
    orec: $o > $o > $o ).

thf(def_orec,definition,
    ( orec
    = ( ^ [X0: $o,X1: $o] : ( d_and @ ( l_or @ X0 @ X1 ) @ ( l_ec @ X0 @ X1 ) ) ) ) ).

thf(typ_l_iff,type,
    l_iff: $o > $o > $o ).

thf(def_l_iff,definition,
    ( l_iff
    = ( ^ [X0: $o,X1: $o] : ( d_and @ ( imp @ X0 @ X1 ) @ ( imp @ X1 @ X0 ) ) ) ) ).

thf(typ_all,type,
    all: $i > ( $i > $o ) > $o ).

thf(def_all,definition,
    ( all
    = ( ^ [X0: $i] :
          ( all_of
          @ ^ [X1: $i] : ( in @ X1 @ X0 ) ) ) ) ).

thf(typ_non,type,
    non: $i > ( $i > $o ) > $i > $o ).

thf(def_non,definition,
    ( non
    = ( ^ [X0: $i,X1: $i > $o,X2: $i] : ( d_not @ ( X1 @ X2 ) ) ) ) ).

thf(typ_l_some,type,
    l_some: $i > ( $i > $o ) > $o ).

thf(def_l_some,definition,
    ( l_some
    = ( ^ [X0: $i,X1: $i > $o] :
          ( d_not
          @ ( all_of
            @ ^ [X2: $i] : ( in @ X2 @ X0 )
            @ ( non @ X0 @ X1 ) ) ) ) ) ).

thf(typ_or3,type,
    or3: $o > $o > $o > $o ).

thf(def_or3,definition,
    ( or3
    = ( ^ [X0: $o,X1: $o,X2: $o] : ( l_or @ X0 @ ( l_or @ X1 @ X2 ) ) ) ) ).

thf(typ_and3,type,
    and3: $o > $o > $o > $o ).

thf(def_and3,definition,
    ( and3
    = ( ^ [X0: $o,X1: $o,X2: $o] : ( d_and @ X0 @ ( d_and @ X1 @ X2 ) ) ) ) ).

thf(typ_ec3,type,
    ec3: $o > $o > $o > $o ).

thf(def_ec3,definition,
    ( ec3
    = ( ^ [X0: $o,X1: $o,X2: $o] : ( and3 @ ( l_ec @ X0 @ X1 ) @ ( l_ec @ X1 @ X2 ) @ ( l_ec @ X2 @ X0 ) ) ) ) ).

thf(typ_orec3,type,
    orec3: $o > $o > $o > $o ).

thf(def_orec3,definition,
    ( orec3
    = ( ^ [X0: $o,X1: $o,X2: $o] : ( d_and @ ( or3 @ X0 @ X1 @ X2 ) @ ( ec3 @ X0 @ X1 @ X2 ) ) ) ) ).

thf(typ_e_is,type,
    e_is: $i > $i > $i > $o ).

thf(def_e_is,definition,
    ( e_is
    = ( ^ [X0: $i,X: $i,Y: $i] : ( X = Y ) ) ) ).

thf(refis,axiom,
    ! [X0: $i] :
      ( all_of
      @ ^ [X1: $i] : ( in @ X1 @ X0 )
      @ ^ [X1: $i] : ( e_is @ X0 @ X1 @ X1 ) ) ).

thf(e_isp,axiom,
    ! [X0: $i,X1: $i > $o] :
      ( all_of
      @ ^ [X2: $i] : ( in @ X2 @ X0 )
      @ ^ [X2: $i] :
          ( all_of
          @ ^ [X3: $i] : ( in @ X3 @ X0 )
          @ ^ [X3: $i] :
              ( ( X1 @ X2 )
             => ( ( e_is @ X0 @ X2 @ X3 )
               => ( X1 @ X3 ) ) ) ) ) ).

thf(typ_amone,type,
    amone: $i > ( $i > $o ) > $o ).

thf(def_amone,definition,
    ( amone
    = ( ^ [X0: $i,X1: $i > $o] :
          ( all_of
          @ ^ [X2: $i] : ( in @ X2 @ X0 )
          @ ^ [X2: $i] :
              ( all_of
              @ ^ [X3: $i] : ( in @ X3 @ X0 )
              @ ^ [X3: $i] :
                  ( ( X1 @ X2 )
                 => ( ( X1 @ X3 )
                   => ( e_is @ X0 @ X2 @ X3 ) ) ) ) ) ) ) ).

thf(typ_one,type,
    one: $i > ( $i > $o ) > $o ).

thf(def_one,definition,
    ( one
    = ( ^ [X0: $i,X1: $i > $o] : ( d_and @ ( amone @ X0 @ X1 ) @ ( l_some @ X0 @ X1 ) ) ) ) ).

thf(typ_ind,type,
    ind: $i > ( $i > $o ) > $i ).

thf(def_ind,definition,
    ( ind
    = ( ^ [X0: $i,X1: $i > $o] :
          ( eps
          @ ^ [X2: $i] :
              ( ( in @ X2 @ X0 )
              & ( X1 @ X2 ) ) ) ) ) ).

thf(ind_p,axiom,
    ! [X0: $i,X1: $i > $o] :
      ( ( one @ X0 @ X1 )
     => ( is_of @ ( ind @ X0 @ X1 )
        @ ^ [X2: $i] : ( in @ X2 @ X0 ) ) ) ).

thf(oneax,axiom,
    ! [X0: $i,X1: $i > $o] :
      ( ( one @ X0 @ X1 )
     => ( X1 @ ( ind @ X0 @ X1 ) ) ) ).

thf(typ_injective,type,
    injective: $i > $i > $i > $o ).

thf(def_injective,definition,
    ( injective
    = ( ^ [X0: $i,X1: $i,X2: $i] :
          ( all @ X0
          @ ^ [X3: $i] :
              ( all @ X0
              @ ^ [X4: $i] : ( imp @ ( e_is @ X1 @ ( ap @ X2 @ X3 ) @ ( ap @ X2 @ X4 ) ) @ ( e_is @ X0 @ X3 @ X4 ) ) ) ) ) ) ).

thf(typ_image,type,
    image: $i > $i > $i > $i > $o ).

thf(def_image,definition,
    ( image
    = ( ^ [X0: $i,X1: $i,X2: $i,X3: $i] :
          ( l_some @ X0
          @ ^ [X4: $i] : ( e_is @ X1 @ X3 @ ( ap @ X2 @ X4 ) ) ) ) ) ).

thf(typ_tofs,type,
    tofs: $i > $i > $i > $i > $i ).

thf(def_tofs,definition,
    ( tofs
    = ( ^ [X0: $i,X1: $i] : ap ) ) ).

thf(typ_soft,type,
    soft: $i > $i > $i > $i > $i ).

thf(def_soft,definition,
    ( soft
    = ( ^ [X0: $i,X1: $i,X2: $i,X3: $i] :
          ( ind @ X0
          @ ^ [X4: $i] : ( e_is @ X1 @ X3 @ ( ap @ X2 @ X4 ) ) ) ) ) ).

thf(typ_inverse,type,
    inverse: $i > $i > $i > $i ).

thf(def_inverse,definition,
    ( inverse
    = ( ^ [X0: $i,X1: $i,X2: $i] :
          ( d_Sigma @ X1
          @ ^ [X3: $i] : ( if @ ( image @ X0 @ X1 @ X2 @ X3 ) @ ( soft @ X0 @ X1 @ X2 @ X3 ) @ emptyset ) ) ) ) ).

thf(typ_surjective,type,
    surjective: $i > $i > $i > $o ).

thf(def_surjective,definition,
    ( surjective
    = ( ^ [X0: $i,X1: $i,X2: $i] : ( all @ X1 @ ( image @ X0 @ X1 @ X2 ) ) ) ) ).

thf(typ_bijective,type,
    bijective: $i > $i > $i > $o ).

thf(def_bijective,definition,
    ( bijective
    = ( ^ [X0: $i,X1: $i,X2: $i] : ( d_and @ ( injective @ X0 @ X1 @ X2 ) @ ( surjective @ X0 @ X1 @ X2 ) ) ) ) ).

thf(typ_invf,type,
    invf: $i > $i > $i > $i ).

thf(def_invf,definition,
    ( invf
    = ( ^ [X0: $i,X1: $i,X2: $i] : ( d_Sigma @ X1 @ ( soft @ X0 @ X1 @ X2 ) ) ) ) ).

thf(typ_inj_h,type,
    inj_h: $i > $i > $i > $i > $i > $i ).

thf(def_inj_h,definition,
    ( inj_h
    = ( ^ [X0: $i,X1: $i,X2: $i,X3: $i,X4: $i] :
          ( d_Sigma @ X0
          @ ^ [X5: $i] : ( ap @ X4 @ ( ap @ X3 @ X5 ) ) ) ) ) ).

thf(e_fisi,axiom,
    ! [X0: $i,X1: $i] :
      ( all_of
      @ ^ [X2: $i] :
          ( in @ X2
          @ ( d_Pi @ X0
            @ ^ [X3: $i] : X1 ) )
      @ ^ [X2: $i] :
          ( all_of
          @ ^ [X3: $i] :
              ( in @ X3
              @ ( d_Pi @ X0
                @ ^ [X4: $i] : X1 ) )
          @ ^ [X3: $i] :
              ( ( all_of
                @ ^ [X4: $i] : ( in @ X4 @ X0 )
                @ ^ [X4: $i] : ( e_is @ X1 @ ( ap @ X2 @ X4 ) @ ( ap @ X3 @ X4 ) ) )
             => ( e_is
                @ ( d_Pi @ X0
                  @ ^ [X4: $i] : X1 )
                @ X2
                @ X3 ) ) ) ) ).

thf(typ_e_in,type,
    e_in: $i > ( $i > $o ) > $i > $i ).

thf(def_e_in,definition,
    ( e_in
    = ( ^ [X0: $i,X1: $i > $o,X2: $i] : X2 ) ) ).

thf(e_in_p,axiom,
    ! [X0: $i,X1: $i > $o] :
      ( all_of
      @ ^ [X2: $i] : ( in @ X2 @ ( d_Sep @ X0 @ X1 ) )
      @ ^ [X2: $i] :
          ( is_of @ ( e_in @ X0 @ X1 @ X2 )
          @ ^ [X3: $i] : ( in @ X3 @ X0 ) ) ) ).

thf(e_inp,axiom,
    ! [X0: $i,X1: $i > $o] :
      ( all_of
      @ ^ [X2: $i] : ( in @ X2 @ ( d_Sep @ X0 @ X1 ) )
      @ ^ [X2: $i] : ( X1 @ ( e_in @ X0 @ X1 @ X2 ) ) ) ).

thf(otax1,axiom,
    ! [X0: $i,X1: $i > $o] : ( injective @ ( d_Sep @ X0 @ X1 ) @ X0 @ ( d_Sigma @ ( d_Sep @ X0 @ X1 ) @ ( e_in @ X0 @ X1 ) ) ) ).

thf(otax2,axiom,
    ! [X0: $i,X1: $i > $o] :
      ( all_of
      @ ^ [X2: $i] : ( in @ X2 @ X0 )
      @ ^ [X2: $i] :
          ( ( X1 @ X2 )
         => ( image @ ( d_Sep @ X0 @ X1 ) @ X0 @ ( d_Sigma @ ( d_Sep @ X0 @ X1 ) @ ( e_in @ X0 @ X1 ) ) @ X2 ) ) ) ).

thf(typ_out,type,
    out: $i > ( $i > $o ) > $i > $i ).

thf(def_out,definition,
    ( out
    = ( ^ [X0: $i,X1: $i > $o] : ( soft @ ( d_Sep @ X0 @ X1 ) @ X0 @ ( d_Sigma @ ( d_Sep @ X0 @ X1 ) @ ( e_in @ X0 @ X1 ) ) ) ) ) ).

thf(typ_d_pair,type,
    d_pair: $i > $i > $i > $i > $i ).

thf(def_d_pair,definition,
    ( d_pair
    = ( ^ [X0: $i,X1: $i] : pair ) ) ).

thf(e_pair_p,axiom,
    ! [X0: $i,X1: $i] :
      ( all_of
      @ ^ [X2: $i] : ( in @ X2 @ X0 )
      @ ^ [X2: $i] :
          ( all_of
          @ ^ [X3: $i] : ( in @ X3 @ X1 )
          @ ^ [X3: $i] :
              ( is_of @ ( d_pair @ X0 @ X1 @ X2 @ X3 )
              @ ^ [X4: $i] : ( in @ X4 @ ( setprod @ X0 @ X1 ) ) ) ) ) ).

thf(typ_first,type,
    first: $i > $i > $i > $i ).

thf(def_first,definition,
    ( first
    = ( ^ [X0: $i,X1: $i] : proj0 ) ) ).

thf(first_p,axiom,
    ! [X0: $i,X1: $i] :
      ( all_of
      @ ^ [X2: $i] : ( in @ X2 @ ( setprod @ X0 @ X1 ) )
      @ ^ [X2: $i] :
          ( is_of @ ( first @ X0 @ X1 @ X2 )
          @ ^ [X3: $i] : ( in @ X3 @ X0 ) ) ) ).

thf(typ_second,type,
    second: $i > $i > $i > $i ).

thf(def_second,definition,
    ( second
    = ( ^ [X0: $i,X1: $i] : proj1 ) ) ).

thf(second_p,axiom,
    ! [X0: $i,X1: $i] :
      ( all_of
      @ ^ [X2: $i] : ( in @ X2 @ ( setprod @ X0 @ X1 ) )
      @ ^ [X2: $i] :
          ( is_of @ ( second @ X0 @ X1 @ X2 )
          @ ^ [X3: $i] : ( in @ X3 @ X1 ) ) ) ).

thf(pairis1,axiom,
    ! [X0: $i,X1: $i] :
      ( all_of
      @ ^ [X2: $i] : ( in @ X2 @ ( setprod @ X0 @ X1 ) )
      @ ^ [X2: $i] : ( e_is @ ( setprod @ X0 @ X1 ) @ ( d_pair @ X0 @ X1 @ ( first @ X0 @ X1 @ X2 ) @ ( second @ X0 @ X1 @ X2 ) ) @ X2 ) ) ).

thf(firstis1,axiom,
    ! [X0: $i,X1: $i] :
      ( all_of
      @ ^ [X2: $i] : ( in @ X2 @ X0 )
      @ ^ [X2: $i] :
          ( all_of
          @ ^ [X3: $i] : ( in @ X3 @ X1 )
          @ ^ [X3: $i] : ( e_is @ X0 @ ( first @ X0 @ X1 @ ( d_pair @ X0 @ X1 @ X2 @ X3 ) ) @ X2 ) ) ) ).

thf(secondis1,axiom,
    ! [X0: $i,X1: $i] :
      ( all_of
      @ ^ [X2: $i] : ( in @ X2 @ X0 )
      @ ^ [X2: $i] :
          ( all_of
          @ ^ [X3: $i] : ( in @ X3 @ X1 )
          @ ^ [X3: $i] : ( e_is @ X1 @ ( second @ X0 @ X1 @ ( d_pair @ X0 @ X1 @ X2 @ X3 ) ) @ X3 ) ) ) ).

thf(typ_prop1,type,
    prop1: $o > $i > $i > $i > $i > $o ).

thf(def_prop1,definition,
    ( prop1
    = ( ^ [X0: $o,X1: $i,X2: $i,X3: $i,X4: $i] : ( d_and @ ( imp @ X0 @ ( e_is @ X1 @ X4 @ X2 ) ) @ ( imp @ ( d_not @ X0 ) @ ( e_is @ X1 @ X4 @ X3 ) ) ) ) ) ).

thf(typ_ite,type,
    ite: $o > $i > $i > $i > $i ).

thf(def_ite,definition,
    ( ite
    = ( ^ [X0: $o,X1: $i,X2: $i,X3: $i] : ( ind @ X1 @ ( prop1 @ X0 @ X1 @ X2 @ X3 ) ) ) ) ).

thf(typ_wissel_wa,type,
    wissel_wa: $i > $i > $i > $i > $i ).

thf(def_wissel_wa,definition,
    ( wissel_wa
    = ( ^ [X0: $i,X1: $i,X2: $i,X3: $i] : ( ite @ ( e_is @ X0 @ X3 @ X1 ) @ X0 @ X2 @ X3 ) ) ) ).

thf(typ_wissel_wb,type,
    wissel_wb: $i > $i > $i > $i > $i ).

thf(def_wissel_wb,definition,
    ( wissel_wb
    = ( ^ [X0: $i,X1: $i,X2: $i,X3: $i] : ( ite @ ( e_is @ X0 @ X3 @ X2 ) @ X0 @ X1 @ ( wissel_wa @ X0 @ X1 @ X2 @ X3 ) ) ) ) ).

thf(typ_wissel,type,
    wissel: $i > $i > $i > $i ).

thf(def_wissel,definition,
    ( wissel
    = ( ^ [X0: $i,X1: $i,X2: $i] : ( d_Sigma @ X0 @ ( wissel_wb @ X0 @ X1 @ X2 ) ) ) ) ).

thf(typ_changef,type,
    changef: $i > $i > $i > $i > $i > $i ).

thf(def_changef,definition,
    ( changef
    = ( ^ [X0: $i,X1: $i,X2: $i,X3: $i,X4: $i] :
          ( d_Sigma @ X0
          @ ^ [X5: $i] : ( ap @ X2 @ ( ap @ ( wissel @ X0 @ X3 @ X4 ) @ X5 ) ) ) ) ) ).

thf(typ_r_ec,type,
    r_ec: $o > $o > $o ).

thf(def_r_ec,definition,
    ( r_ec
    = ( ^ [X0: $o,X1: $o] :
          ( X0
         => ( d_not @ X1 ) ) ) ) ).

thf(typ_esti,type,
    esti: $i > $i > $i > $o ).

thf(def_esti,definition,
    ( esti
    = ( ^ [X0: $i] : in ) ) ).

thf(setof_p,axiom,
    ! [X0: $i,X1: $i > $o] :
      ( is_of @ ( d_Sep @ X0 @ X1 )
      @ ^ [X2: $i] : ( in @ X2 @ ( power @ X0 ) ) ) ).

thf(estii,axiom,
    ! [X0: $i,X1: $i > $o] :
      ( all_of
      @ ^ [X2: $i] : ( in @ X2 @ X0 )
      @ ^ [X2: $i] :
          ( ( X1 @ X2 )
         => ( esti @ X0 @ X2 @ ( d_Sep @ X0 @ X1 ) ) ) ) ).

thf(estie,axiom,
    ! [X0: $i,X1: $i > $o] :
      ( all_of
      @ ^ [X2: $i] : ( in @ X2 @ X0 )
      @ ^ [X2: $i] :
          ( ( esti @ X0 @ X2 @ ( d_Sep @ X0 @ X1 ) )
         => ( X1 @ X2 ) ) ) ).

thf(typ_empty,type,
    empty: $i > $i > $o ).

thf(def_empty,definition,
    ( empty
    = ( ^ [X0: $i,X1: $i] :
          ( all_of
          @ ^ [X2: $i] : ( in @ X2 @ X0 )
          @ ( non @ X0
            @ ^ [X2: $i] : ( esti @ X0 @ X2 @ X1 ) ) ) ) ) ).

thf(typ_nonempty,type,
    nonempty: $i > $i > $o ).

thf(def_nonempty,definition,
    ( nonempty
    = ( ^ [X0: $i,X1: $i] :
          ( l_some @ X0
          @ ^ [X2: $i] : ( esti @ X0 @ X2 @ X1 ) ) ) ) ).

thf(typ_incl,type,
    incl: $i > $i > $i > $o ).

thf(def_incl,definition,
    ( incl
    = ( ^ [X0: $i,X1: $i,X2: $i] :
          ( all @ X0
          @ ^ [X3: $i] : ( imp @ ( esti @ X0 @ X3 @ X1 ) @ ( esti @ X0 @ X3 @ X2 ) ) ) ) ) ).

thf(typ_st_disj,type,
    st_disj: $i > $i > $i > $o ).

thf(def_st_disj,definition,
    ( st_disj
    = ( ^ [X0: $i,X1: $i,X2: $i] :
          ( all @ X0
          @ ^ [X3: $i] : ( l_ec @ ( esti @ X0 @ X3 @ X1 ) @ ( esti @ X0 @ X3 @ X2 ) ) ) ) ) ).

thf(isseti,axiom,
    ! [X0: $i] :
      ( all_of
      @ ^ [X1: $i] : ( in @ X1 @ ( power @ X0 ) )
      @ ^ [X1: $i] :
          ( all_of
          @ ^ [X2: $i] : ( in @ X2 @ ( power @ X0 ) )
          @ ^ [X2: $i] :
              ( ( incl @ X0 @ X1 @ X2 )
             => ( ( incl @ X0 @ X2 @ X1 )
               => ( e_is @ ( power @ X0 ) @ X1 @ X2 ) ) ) ) ) ).

thf(typ_nissetprop,type,
    nissetprop: $i > $i > $i > $i > $o ).

thf(def_nissetprop,definition,
    ( nissetprop
    = ( ^ [X0: $i,X1: $i,X2: $i,X3: $i] : ( d_and @ ( esti @ X0 @ X3 @ X1 ) @ ( d_not @ ( esti @ X0 @ X3 @ X2 ) ) ) ) ) ).

thf(typ_unmore,type,
    unmore: $i > $i > $i > $i ).

thf(def_unmore,definition,
    ( unmore
    = ( ^ [X0: $i,X1: $i,X2: $i] :
          ( d_Sep @ X0
          @ ^ [X3: $i] :
              ( l_some @ X1
              @ ^ [X4: $i] : ( esti @ X0 @ X3 @ ( ap @ X2 @ X4 ) ) ) ) ) ) ).

thf(typ_ecelt,type,
    ecelt: $i > ( $i > $i > $o ) > $i > $i ).

thf(def_ecelt,definition,
    ( ecelt
    = ( ^ [X0: $i,X1: $i > $i > $o,X2: $i] : ( d_Sep @ X0 @ ( X1 @ X2 ) ) ) ) ).

thf(typ_ecp,type,
    ecp: $i > ( $i > $i > $o ) > $i > $i > $o ).

thf(def_ecp,definition,
    ( ecp
    = ( ^ [X0: $i,X1: $i > $i > $o,X2: $i,X3: $i] : ( e_is @ ( power @ X0 ) @ X2 @ ( ecelt @ X0 @ X1 @ X3 ) ) ) ) ).

thf(typ_anec,type,
    anec: $i > ( $i > $i > $o ) > $i > $o ).

thf(def_anec,definition,
    ( anec
    = ( ^ [X0: $i,X1: $i > $i > $o,X2: $i] : ( l_some @ X0 @ ( ecp @ X0 @ X1 @ X2 ) ) ) ) ).

thf(typ_ect,type,
    ect: $i > ( $i > $i > $o ) > $i ).

thf(def_ect,definition,
    ( ect
    = ( ^ [X0: $i,X1: $i > $i > $o] : ( d_Sep @ ( power @ X0 ) @ ( anec @ X0 @ X1 ) ) ) ) ).

thf(typ_ectset,type,
    ectset: $i > ( $i > $i > $o ) > $i > $i ).

thf(def_ectset,definition,
    ( ectset
    = ( ^ [X0: $i,X1: $i > $i > $o] : ( out @ ( power @ X0 ) @ ( anec @ X0 @ X1 ) ) ) ) ).

thf(typ_ectelt,type,
    ectelt: $i > ( $i > $i > $o ) > $i > $i ).

thf(def_ectelt,definition,
    ( ectelt
    = ( ^ [X0: $i,X1: $i > $i > $o,X2: $i] : ( ectset @ X0 @ X1 @ ( ecelt @ X0 @ X1 @ X2 ) ) ) ) ).

thf(typ_ecect,type,
    ecect: $i > ( $i > $i > $o ) > $i > $i ).

thf(def_ecect,definition,
    ( ecect
    = ( ^ [X0: $i,X1: $i > $i > $o] : ( e_in @ ( power @ X0 ) @ ( anec @ X0 @ X1 ) ) ) ) ).

thf(typ_fixfu,type,
    fixfu: $i > ( $i > $i > $o ) > $i > $i > $o ).

thf(def_fixfu,definition,
    ( fixfu
    = ( ^ [X0: $i,X1: $i > $i > $o,X2: $i,X3: $i] :
          ( all_of
          @ ^ [X4: $i] : ( in @ X4 @ X0 )
          @ ^ [X4: $i] :
              ( all_of
              @ ^ [X5: $i] : ( in @ X5 @ X0 )
              @ ^ [X5: $i] :
                  ( ( X1 @ X4 @ X5 )
                 => ( e_is @ X2 @ ( ap @ X3 @ X4 ) @ ( ap @ X3 @ X5 ) ) ) ) ) ) ) ).

thf(typ_d_10_prop1,type,
    d_10_prop1: $i > ( $i > $i > $o ) > $i > $i > $i > $i > $i > $o ).

thf(def_d_10_prop1,definition,
    ( d_10_prop1
    = ( ^ [X0: $i,X1: $i > $i > $o,X2: $i,X3: $i,X4: $i,X5: $i,X6: $i] : ( d_and @ ( esti @ X0 @ X6 @ ( ecect @ X0 @ X1 @ X4 ) ) @ ( e_is @ X2 @ ( ap @ X3 @ X6 ) @ X5 ) ) ) ) ).

thf(typ_prop2,type,
    prop2: $i > ( $i > $i > $o ) > $i > $i > $i > $i > $o ).

thf(def_prop2,definition,
    ( prop2
    = ( ^ [X0: $i,X1: $i > $i > $o,X2: $i,X3: $i,X4: $i,X5: $i] : ( l_some @ X0 @ ( d_10_prop1 @ X0 @ X1 @ X2 @ X3 @ X4 @ X5 ) ) ) ) ).

thf(typ_indeq,type,
    indeq: $i > ( $i > $i > $o ) > $i > $i > $i > $i ).

thf(def_indeq,definition,
    ( indeq
    = ( ^ [X0: $i,X1: $i > $i > $o,X2: $i,X3: $i,X4: $i] : ( ind @ X2 @ ( prop2 @ X0 @ X1 @ X2 @ X3 @ X4 ) ) ) ) ).

thf(typ_fixfu2,type,
    fixfu2: $i > ( $i > $i > $o ) > $i > $i > $o ).

thf(def_fixfu2,definition,
    ( fixfu2
    = ( ^ [X0: $i,X1: $i > $i > $o,X2: $i,X3: $i] :
          ( all_of
          @ ^ [X4: $i] : ( in @ X4 @ X0 )
          @ ^ [X4: $i] :
              ( all_of
              @ ^ [X5: $i] : ( in @ X5 @ X0 )
              @ ^ [X5: $i] :
                  ( all_of
                  @ ^ [X6: $i] : ( in @ X6 @ X0 )
                  @ ^ [X6: $i] :
                      ( all_of
                      @ ^ [X7: $i] : ( in @ X7 @ X0 )
                      @ ^ [X7: $i] :
                          ( ( X1 @ X4 @ X5 )
                         => ( ( X1 @ X6 @ X7 )
                           => ( e_is @ X2 @ ( ap @ ( ap @ X3 @ X4 ) @ X6 ) @ ( ap @ ( ap @ X3 @ X5 ) @ X7 ) ) ) ) ) ) ) ) ) ) ).

thf(typ_d_11_i,type,
    d_11_i: $i > ( $i > $i > $o ) > $i > $i > $i > $i ).

thf(def_d_11_i,definition,
    ( d_11_i
    = ( ^ [X0: $i,X1: $i > $i > $o,X2: $i] :
          ( indeq @ X0 @ X1
          @ ( d_Pi @ X0
            @ ^ [X3: $i] : X2 ) ) ) ) ).

thf(typ_indeq2,type,
    indeq2: $i > ( $i > $i > $o ) > $i > $i > $i > $i > $i ).

thf(def_indeq2,definition,
    ( indeq2
    = ( ^ [X0: $i,X1: $i > $i > $o,X2: $i,X3: $i,X4: $i] : ( indeq @ X0 @ X1 @ X2 @ ( d_11_i @ X0 @ X1 @ X2 @ X3 @ X4 ) ) ) ) ).

thf(typ_nat,type,
    nat: $i ).

thf(def_nat,definition,
    ( nat
    = ( d_Sep @ omega
      @ ^ [X0: $i] : ( X0 != emptyset ) ) ) ).

thf(typ_n_is,type,
    n_is: $i > $i > $o ).

thf(def_n_is,definition,
    ( n_is
    = ( e_is @ nat ) ) ).

thf(typ_nis,type,
    nis: $i > $i > $o ).

thf(def_nis,definition,
    ( nis
    = ( ^ [X0: $i,X1: $i] : ( d_not @ ( n_is @ X0 @ X1 ) ) ) ) ).

thf(typ_n_in,type,
    n_in: $i > $i > $o ).

thf(def_n_in,definition,
    ( n_in
    = ( esti @ nat ) ) ).

thf(typ_n_some,type,
    n_some: ( $i > $o ) > $o ).

thf(def_n_some,definition,
    ( n_some
    = ( l_some @ nat ) ) ).

thf(typ_n_all,type,
    n_all: ( $i > $o ) > $o ).

thf(def_n_all,definition,
    ( n_all
    = ( all @ nat ) ) ).

thf(typ_n_one,type,
    n_one: ( $i > $o ) > $o ).

thf(def_n_one,definition,
    ( n_one
    = ( one @ nat ) ) ).

thf(typ_n_1,type,
    n_1: $i ).

thf(def_n_1,definition,
    ( n_1
    = ( ordsucc @ emptyset ) ) ).

thf(n_1_p,axiom,
    ( is_of @ n_1
    @ ^ [X0: $i] : ( in @ X0 @ nat ) ) ).

thf(suc_p,axiom,
    ( all_of
    @ ^ [X0: $i] : ( in @ X0 @ nat )
    @ ^ [X0: $i] :
        ( is_of @ ( ordsucc @ X0 )
        @ ^ [X1: $i] : ( in @ X1 @ nat ) ) ) ).

thf(n_ax3,axiom,
    ( all_of
    @ ^ [X0: $i] : ( in @ X0 @ nat )
    @ ^ [X0: $i] : ( nis @ ( ordsucc @ X0 ) @ n_1 ) ) ).

thf(n_ax4,axiom,
    ( all_of
    @ ^ [X0: $i] : ( in @ X0 @ nat )
    @ ^ [X0: $i] :
        ( all_of
        @ ^ [X1: $i] : ( in @ X1 @ nat )
        @ ^ [X1: $i] :
            ( ( n_is @ ( ordsucc @ X0 ) @ ( ordsucc @ X1 ) )
           => ( n_is @ X0 @ X1 ) ) ) ) ).

thf(typ_cond1,type,
    cond1: $i > $o ).

thf(def_cond1,definition,
    ( cond1
    = ( n_in @ n_1 ) ) ).

thf(typ_cond2,type,
    cond2: $i > $o ).

thf(def_cond2,definition,
    ( cond2
    = ( ^ [X0: $i] :
          ( n_all
          @ ^ [X1: $i] : ( imp @ ( n_in @ X1 @ X0 ) @ ( n_in @ ( ordsucc @ X1 ) @ X0 ) ) ) ) ) ).

thf(n_ax5,axiom,
    ( all_of
    @ ^ [X0: $i] : ( in @ X0 @ ( power @ nat ) )
    @ ^ [X0: $i] :
        ( ( cond1 @ X0 )
       => ( ( cond2 @ X0 )
         => ( all_of
            @ ^ [X1: $i] : ( in @ X1 @ nat )
            @ ^ [X1: $i] : ( n_in @ X1 @ X0 ) ) ) ) ) ).

thf(typ_i1_s,type,
    i1_s: ( $i > $o ) > $i ).

thf(def_i1_s,definition,
    ( i1_s
    = ( d_Sep @ nat ) ) ).

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