ITP001 Axioms: ITP013_5.ax


%------------------------------------------------------------------------------
% File     : ITP013_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    : option_2.ax [Gau20]
%          : HL4013_5.ax [TPAP]

% Status   : Satisfiable
% Syntax   : Number of formulae    :  132 (  25 unt;  28 typ;   0 def)
%            Number of atoms       : 1244 ( 163 equ)
%            Maximal formula atoms :   55 (   9 avg)
%            Number of connectives :  402 (  12   ~;   9   |;  94   &)
%                                         (  45 <=>; 242  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   31 (   8 avg)
%            Maximal term depth    :    3 (   1 avg)
%            Number of FOOLs       :  750 ( 750 fml;   0 var)
%            Number of types       :    2 (   1 usr)
%            Number of type conns  :   41 (  26   >;  15   *;   0   +;   0  <<)
%            Number of predicates  :   32 (  29 usr;  12 prp; 0-3 aty)
%            Number of functors    :   27 (  27 usr;   1 con; 0-3 aty)
%            Number of variables   :  397 ( 380   !;  17   ?; 397   :)
% SPC      : TF0_SAT_EQU_NAR

% Comments :
% Bugfixes : v7.5.0 - Fixes to the axioms.
%------------------------------------------------------------------------------
tff(tp_ty_2Eoption_2Eoption,type,
    ty_2Eoption_2Eoption: del > del ).

tff(tp_c_2Eoption_2EIS__NONE,type,
    c_2Eoption_2EIS__NONE: del > $i ).

tff(mem_c_2Eoption_2EIS__NONE,axiom,
    ! [A_27a: del] : mem(c_2Eoption_2EIS__NONE(A_27a),arr(ty_2Eoption_2Eoption(A_27a),bool)) ).

tff(tp_c_2Eoption_2EIS__SOME,type,
    c_2Eoption_2EIS__SOME: del > $i ).

tff(mem_c_2Eoption_2EIS__SOME,axiom,
    ! [A_27a: del] : mem(c_2Eoption_2EIS__SOME(A_27a),arr(ty_2Eoption_2Eoption(A_27a),bool)) ).

tff(tp_c_2Eoption_2ENONE,type,
    c_2Eoption_2ENONE: del > $i ).

tff(mem_c_2Eoption_2ENONE,axiom,
    ! [A_27a: del] : mem(c_2Eoption_2ENONE(A_27a),ty_2Eoption_2Eoption(A_27a)) ).

tff(tp_c_2Eoption_2EOPTION__ALL,type,
    c_2Eoption_2EOPTION__ALL: del > $i ).

tff(mem_c_2Eoption_2EOPTION__ALL,axiom,
    ! [A_27a: del] : mem(c_2Eoption_2EOPTION__ALL(A_27a),arr(arr(A_27a,bool),arr(ty_2Eoption_2Eoption(A_27a),bool))) ).

tff(tp_c_2Eoption_2EOPTION__APPLY,type,
    c_2Eoption_2EOPTION__APPLY: ( del * del ) > $i ).

tff(mem_c_2Eoption_2EOPTION__APPLY,axiom,
    ! [A_27a: del,A_27b: del] : mem(c_2Eoption_2EOPTION__APPLY(A_27a,A_27b),arr(ty_2Eoption_2Eoption(arr(A_27b,A_27a)),arr(ty_2Eoption_2Eoption(A_27b),ty_2Eoption_2Eoption(A_27a)))) ).

tff(tp_c_2Eoption_2EOPTION__BIND,type,
    c_2Eoption_2EOPTION__BIND: ( del * del ) > $i ).

tff(mem_c_2Eoption_2EOPTION__BIND,axiom,
    ! [A_27a: del,A_27b: del] : mem(c_2Eoption_2EOPTION__BIND(A_27a,A_27b),arr(ty_2Eoption_2Eoption(A_27b),arr(arr(A_27b,ty_2Eoption_2Eoption(A_27a)),ty_2Eoption_2Eoption(A_27a)))) ).

tff(tp_c_2Eoption_2EOPTION__CHOICE,type,
    c_2Eoption_2EOPTION__CHOICE: del > $i ).

tff(mem_c_2Eoption_2EOPTION__CHOICE,axiom,
    ! [A_27a: del] : mem(c_2Eoption_2EOPTION__CHOICE(A_27a),arr(ty_2Eoption_2Eoption(A_27a),arr(ty_2Eoption_2Eoption(A_27a),ty_2Eoption_2Eoption(A_27a)))) ).

tff(stp_c_ty_2Eoption_2Eoption_ty_2Eone_2Eone,type,
    tp__c_ty_2Eoption_2Eoption_ty_2Eone_2Eone: $tType ).

tff(stp_inj_c_ty_2Eoption_2Eoption_ty_2Eone_2Eone,type,
    inj__c_ty_2Eoption_2Eoption_ty_2Eone_2Eone: tp__c_ty_2Eoption_2Eoption_ty_2Eone_2Eone > $i ).

tff(stp_surj_c_ty_2Eoption_2Eoption_ty_2Eone_2Eone,type,
    surj__c_ty_2Eoption_2Eoption_ty_2Eone_2Eone: $i > tp__c_ty_2Eoption_2Eoption_ty_2Eone_2Eone ).

tff(stp_inj_surj_c_ty_2Eoption_2Eoption_ty_2Eone_2Eone,axiom,
    ! [X: tp__c_ty_2Eoption_2Eoption_ty_2Eone_2Eone] : ( surj__c_ty_2Eoption_2Eoption_ty_2Eone_2Eone(inj__c_ty_2Eoption_2Eoption_ty_2Eone_2Eone(X)) = X ) ).

tff(stp_inj_mem_c_ty_2Eoption_2Eoption_ty_2Eone_2Eone,axiom,
    ! [X: tp__c_ty_2Eoption_2Eoption_ty_2Eone_2Eone] : mem(inj__c_ty_2Eoption_2Eoption_ty_2Eone_2Eone(X),ty_2Eoption_2Eoption(ty_2Eone_2Eone)) ).

tff(stp_iso_mem_c_ty_2Eoption_2Eoption_ty_2Eone_2Eone,axiom,
    ! [X: $i] :
      ( mem(X,ty_2Eoption_2Eoption(ty_2Eone_2Eone))
     => ( X = inj__c_ty_2Eoption_2Eoption_ty_2Eone_2Eone(surj__c_ty_2Eoption_2Eoption_ty_2Eone_2Eone(X)) ) ) ).

tff(tp_c_2Eoption_2EOPTION__GUARD,type,
    c_2Eoption_2EOPTION__GUARD: $i ).

tff(mem_c_2Eoption_2EOPTION__GUARD,axiom,
    mem(c_2Eoption_2EOPTION__GUARD,arr(bool,ty_2Eoption_2Eoption(ty_2Eone_2Eone))) ).

tff(tp_c_2Eoption_2EOPTION__IGNORE__BIND,type,
    c_2Eoption_2EOPTION__IGNORE__BIND: ( del * del ) > $i ).

tff(mem_c_2Eoption_2EOPTION__IGNORE__BIND,axiom,
    ! [A_27a: del,A_27b: del] : mem(c_2Eoption_2EOPTION__IGNORE__BIND(A_27a,A_27b),arr(ty_2Eoption_2Eoption(A_27b),arr(ty_2Eoption_2Eoption(A_27a),ty_2Eoption_2Eoption(A_27a)))) ).

tff(tp_c_2Eoption_2EOPTION__JOIN,type,
    c_2Eoption_2EOPTION__JOIN: del > $i ).

tff(mem_c_2Eoption_2EOPTION__JOIN,axiom,
    ! [A_27a: del] : mem(c_2Eoption_2EOPTION__JOIN(A_27a),arr(ty_2Eoption_2Eoption(ty_2Eoption_2Eoption(A_27a)),ty_2Eoption_2Eoption(A_27a))) ).

tff(tp_c_2Eoption_2EOPTION__MAP,type,
    c_2Eoption_2EOPTION__MAP: ( del * del ) > $i ).

tff(mem_c_2Eoption_2EOPTION__MAP,axiom,
    ! [A_27a: del,A_27b: del] : mem(c_2Eoption_2EOPTION__MAP(A_27a,A_27b),arr(arr(A_27a,A_27b),arr(ty_2Eoption_2Eoption(A_27a),ty_2Eoption_2Eoption(A_27b)))) ).

tff(tp_c_2Eoption_2EOPTION__MAP2,type,
    c_2Eoption_2EOPTION__MAP2: ( del * del * del ) > $i ).

tff(mem_c_2Eoption_2EOPTION__MAP2,axiom,
    ! [A_27a: del,A_27b: del,A_27c: del] : mem(c_2Eoption_2EOPTION__MAP2(A_27a,A_27b,A_27c),arr(arr(A_27b,arr(A_27c,A_27a)),arr(ty_2Eoption_2Eoption(A_27b),arr(ty_2Eoption_2Eoption(A_27c),ty_2Eoption_2Eoption(A_27a))))) ).

tff(tp_c_2Eoption_2EOPTION__MCOMP,type,
    c_2Eoption_2EOPTION__MCOMP: ( del * del * del ) > $i ).

tff(mem_c_2Eoption_2EOPTION__MCOMP,axiom,
    ! [A_27a: del,A_27b: del,A_27c: del] : mem(c_2Eoption_2EOPTION__MCOMP(A_27a,A_27b,A_27c),arr(arr(A_27b,ty_2Eoption_2Eoption(A_27a)),arr(arr(A_27c,ty_2Eoption_2Eoption(A_27b)),arr(A_27c,ty_2Eoption_2Eoption(A_27a))))) ).

tff(tp_c_2Eoption_2EOPTREL,type,
    c_2Eoption_2EOPTREL: ( del * del ) > $i ).

tff(mem_c_2Eoption_2EOPTREL,axiom,
    ! [A_27a: del,A_27b: del] : mem(c_2Eoption_2EOPTREL(A_27a,A_27b),arr(arr(A_27a,arr(A_27b,bool)),arr(ty_2Eoption_2Eoption(A_27a),arr(ty_2Eoption_2Eoption(A_27b),bool)))) ).

tff(tp_c_2Eoption_2ESOME,type,
    c_2Eoption_2ESOME: del > $i ).

tff(mem_c_2Eoption_2ESOME,axiom,
    ! [A_27a: del] : mem(c_2Eoption_2ESOME(A_27a),arr(A_27a,ty_2Eoption_2Eoption(A_27a))) ).

tff(tp_c_2Eoption_2ETHE,type,
    c_2Eoption_2ETHE: del > $i ).

tff(mem_c_2Eoption_2ETHE,axiom,
    ! [A_27a: del] : mem(c_2Eoption_2ETHE(A_27a),arr(ty_2Eoption_2Eoption(A_27a),A_27a)) ).

tff(tp_c_2Eoption_2Eoption__ABS,type,
    c_2Eoption_2Eoption__ABS: del > $i ).

tff(mem_c_2Eoption_2Eoption__ABS,axiom,
    ! [A_27a: del] : mem(c_2Eoption_2Eoption__ABS(A_27a),arr(ty_2Esum_2Esum(A_27a,ty_2Eone_2Eone),ty_2Eoption_2Eoption(A_27a))) ).

tff(tp_c_2Eoption_2Eoption__CASE,type,
    c_2Eoption_2Eoption__CASE: ( del * del ) > $i ).

tff(mem_c_2Eoption_2Eoption__CASE,axiom,
    ! [A_27a: del,A_27b: del] : mem(c_2Eoption_2Eoption__CASE(A_27a,A_27b),arr(ty_2Eoption_2Eoption(A_27a),arr(A_27b,arr(arr(A_27a,A_27b),A_27b)))) ).

tff(tp_c_2Eoption_2Eoption__REP,type,
    c_2Eoption_2Eoption__REP: del > $i ).

tff(mem_c_2Eoption_2Eoption__REP,axiom,
    ! [A_27a: del] : mem(c_2Eoption_2Eoption__REP(A_27a),arr(ty_2Eoption_2Eoption(A_27a),ty_2Esum_2Esum(A_27a,ty_2Eone_2Eone))) ).

tff(tp_c_2Eoption_2Esome,type,
    c_2Eoption_2Esome: del > $i ).

tff(mem_c_2Eoption_2Esome,axiom,
    ! [A_27a: del] : mem(c_2Eoption_2Esome(A_27a),arr(arr(A_27a,bool),ty_2Eoption_2Eoption(A_27a))) ).

tff(ax_thm_2Eoption_2Eoption__TY__DEF,axiom,
    ! [A_27a: del] :
    ? [V0rep: $i] :
      ( mem(V0rep,arr(ty_2Eoption_2Eoption(A_27a),ty_2Esum_2Esum(A_27a,ty_2Eone_2Eone)))
      & p(ap(ap(c_2Ebool_2ETYPE__DEFINITION(ty_2Esum_2Esum(A_27a,ty_2Eone_2Eone),ty_2Eoption_2Eoption(A_27a)),k(ty_2Esum_2Esum(A_27a,ty_2Eone_2Eone),c_2Ebool_2ET)),V0rep)) ) ).

tff(ax_thm_2Eoption_2Eoption__REP__ABS__DEF,axiom,
    ! [A_27a: del] :
      ( ! [V0a: $i] :
          ( mem(V0a,ty_2Eoption_2Eoption(A_27a))
         => ( ap(c_2Eoption_2Eoption__ABS(A_27a),ap(c_2Eoption_2Eoption__REP(A_27a),V0a)) = V0a ) )
      & ! [V1r: $i] :
          ( mem(V1r,ty_2Esum_2Esum(A_27a,ty_2Eone_2Eone))
         => ( p(ap(k(ty_2Esum_2Esum(A_27a,ty_2Eone_2Eone),c_2Ebool_2ET),V1r))
          <=> ( ap(c_2Eoption_2Eoption__REP(A_27a),ap(c_2Eoption_2Eoption__ABS(A_27a),V1r)) = V1r ) ) ) ) ).

tff(ax_thm_2Eoption_2ESOME__DEF,axiom,
    ! [A_27a: del,V0x: $i] :
      ( mem(V0x,A_27a)
     => ( ap(c_2Eoption_2ESOME(A_27a),V0x) = ap(c_2Eoption_2Eoption__ABS(A_27a),ap(c_2Esum_2EINL(A_27a,ty_2Eone_2Eone),V0x)) ) ) ).

tff(ax_thm_2Eoption_2ENONE__DEF,axiom,
    ! [A_27a: del] : ( c_2Eoption_2ENONE(A_27a) = ap(c_2Eoption_2Eoption__ABS(A_27a),ap(c_2Esum_2EINR(A_27a,ty_2Eone_2Eone),inj__ty_2Eone_2Eone(fo__c_2Eone_2Eone))) ) ).

tff(conj_thm_2Eoption_2Eoption__Axiom,axiom,
    ! [A_27a: del,A_27b: del,V0e: $i] :
      ( mem(V0e,A_27b)
     => ! [V1f: $i] :
          ( mem(V1f,arr(A_27a,A_27b))
         => ? [V2fn: $i] :
              ( mem(V2fn,arr(ty_2Eoption_2Eoption(A_27a),A_27b))
              & ( ap(V2fn,c_2Eoption_2ENONE(A_27a)) = V0e )
              & ! [V3x: $i] :
                  ( mem(V3x,A_27a)
                 => ( ap(V2fn,ap(c_2Eoption_2ESOME(A_27a),V3x)) = ap(V1f,V3x) ) ) ) ) ) ).

tff(conj_thm_2Eoption_2Eoption__induction,axiom,
    ! [A_27a: del,V0P: $i] :
      ( mem(V0P,arr(ty_2Eoption_2Eoption(A_27a),bool))
     => ( ( p(ap(V0P,c_2Eoption_2ENONE(A_27a)))
          & ! [V1a: $i] :
              ( mem(V1a,A_27a)
             => p(ap(V0P,ap(c_2Eoption_2ESOME(A_27a),V1a))) ) )
       => ! [V2x: $i] :
            ( mem(V2x,ty_2Eoption_2Eoption(A_27a))
           => p(ap(V0P,V2x)) ) ) ) ).

tff(conj_thm_2Eoption_2Eoption__nchotomy,axiom,
    ! [A_27a: del,V0opt: $i] :
      ( mem(V0opt,ty_2Eoption_2Eoption(A_27a))
     => ( ( V0opt = c_2Eoption_2ENONE(A_27a) )
        | ? [V1x: $i] :
            ( mem(V1x,A_27a)
            & ( V0opt = ap(c_2Eoption_2ESOME(A_27a),V1x) ) ) ) ) ).

tff(ax_thm_2Eoption_2Eoption__case__def,axiom,
    ! [A_27a: del,A_27b: del] :
      ( ! [V0v: $i] :
          ( mem(V0v,A_27b)
         => ! [V1f: $i] :
              ( mem(V1f,arr(A_27a,A_27b))
             => ( ap(ap(ap(c_2Eoption_2Eoption__CASE(A_27a,A_27b),c_2Eoption_2ENONE(A_27a)),V0v),V1f) = V0v ) ) )
      & ! [V2x: $i] :
          ( mem(V2x,A_27a)
         => ! [V3v: $i] :
              ( mem(V3v,A_27b)
             => ! [V4f: $i] :
                  ( mem(V4f,arr(A_27a,A_27b))
                 => ( ap(ap(ap(c_2Eoption_2Eoption__CASE(A_27a,A_27b),ap(c_2Eoption_2ESOME(A_27a),V2x)),V3v),V4f) = ap(V4f,V2x) ) ) ) ) ) ).

tff(conj_thm_2Eoption_2EFORALL__OPTION,axiom,
    ! [A_27a: del,V0P: $i] :
      ( mem(V0P,arr(ty_2Eoption_2Eoption(A_27a),bool))
     => ( ! [V1opt: $i] :
            ( mem(V1opt,ty_2Eoption_2Eoption(A_27a))
           => p(ap(V0P,V1opt)) )
      <=> ( p(ap(V0P,c_2Eoption_2ENONE(A_27a)))
          & ! [V2x: $i] :
              ( mem(V2x,A_27a)
             => p(ap(V0P,ap(c_2Eoption_2ESOME(A_27a),V2x))) ) ) ) ) ).

tff(conj_thm_2Eoption_2EEXISTS__OPTION,axiom,
    ! [A_27a: del,V0P: $i] :
      ( mem(V0P,arr(ty_2Eoption_2Eoption(A_27a),bool))
     => ( ? [V1opt: $i] :
            ( mem(V1opt,ty_2Eoption_2Eoption(A_27a))
            & p(ap(V0P,V1opt)) )
      <=> ( p(ap(V0P,c_2Eoption_2ENONE(A_27a)))
          | ? [V2x: $i] :
              ( mem(V2x,A_27a)
              & p(ap(V0P,ap(c_2Eoption_2ESOME(A_27a),V2x))) ) ) ) ) ).

tff(conj_thm_2Eoption_2ESOME__11,axiom,
    ! [A_27a: del,V0x: $i] :
      ( mem(V0x,A_27a)
     => ! [V1y: $i] :
          ( mem(V1y,A_27a)
         => ( ( ap(c_2Eoption_2ESOME(A_27a),V0x) = ap(c_2Eoption_2ESOME(A_27a),V1y) )
          <=> ( V0x = V1y ) ) ) ) ).

tff(conj_thm_2Eoption_2ENOT__NONE__SOME,axiom,
    ! [A_27a: del,V0x: $i] :
      ( mem(V0x,A_27a)
     => ( c_2Eoption_2ENONE(A_27a) != ap(c_2Eoption_2ESOME(A_27a),V0x) ) ) ).

tff(conj_thm_2Eoption_2ENOT__SOME__NONE,axiom,
    ! [A_27a: del,V0x: $i] :
      ( mem(V0x,A_27a)
     => ( ap(c_2Eoption_2ESOME(A_27a),V0x) != c_2Eoption_2ENONE(A_27a) ) ) ).

tff(ax_thm_2Eoption_2EOPTION__MAP__DEF,axiom,
    ! [A_27a: del,A_27b: del] :
      ( ! [V0f: $i] :
          ( mem(V0f,arr(A_27a,A_27b))
         => ! [V1x: $i] :
              ( mem(V1x,A_27a)
             => ( ap(ap(c_2Eoption_2EOPTION__MAP(A_27a,A_27b),V0f),ap(c_2Eoption_2ESOME(A_27a),V1x)) = ap(c_2Eoption_2ESOME(A_27b),ap(V0f,V1x)) ) ) )
      & ! [V2f: $i] :
          ( mem(V2f,arr(A_27a,A_27b))
         => ( ap(ap(c_2Eoption_2EOPTION__MAP(A_27a,A_27b),V2f),c_2Eoption_2ENONE(A_27a)) = c_2Eoption_2ENONE(A_27b) ) ) ) ).

tff(ax_thm_2Eoption_2EIS__SOME__DEF,axiom,
    ! [A_27a: del] :
      ( ! [V0x: $i] :
          ( mem(V0x,A_27a)
         => ( p(ap(c_2Eoption_2EIS__SOME(A_27a),ap(c_2Eoption_2ESOME(A_27a),V0x)))
          <=> $true ) )
      & ( p(ap(c_2Eoption_2EIS__SOME(A_27a),c_2Eoption_2ENONE(A_27a)))
      <=> $false ) ) ).

tff(ax_thm_2Eoption_2EIS__NONE__DEF,axiom,
    ! [A_27a: del] :
      ( ! [V0x: $i] :
          ( mem(V0x,A_27a)
         => ( p(ap(c_2Eoption_2EIS__NONE(A_27a),ap(c_2Eoption_2ESOME(A_27a),V0x)))
          <=> $false ) )
      & ( p(ap(c_2Eoption_2EIS__NONE(A_27a),c_2Eoption_2ENONE(A_27a)))
      <=> $true ) ) ).

tff(ax_thm_2Eoption_2ETHE__DEF,axiom,
    ! [A_27a: del,V0x: $i] :
      ( mem(V0x,A_27a)
     => ( ap(c_2Eoption_2ETHE(A_27a),ap(c_2Eoption_2ESOME(A_27a),V0x)) = V0x ) ) ).

tff(ax_thm_2Eoption_2EOPTION__MAP2__DEF,axiom,
    ! [A_27a: del,A_27b: del,A_27c: del,V0f: $i] :
      ( mem(V0f,arr(A_27b,arr(A_27c,A_27a)))
     => ! [V1x: $i] :
          ( mem(V1x,ty_2Eoption_2Eoption(A_27b))
         => ! [V2y: $i] :
              ( mem(V2y,ty_2Eoption_2Eoption(A_27c))
             => ( ap(ap(ap(c_2Eoption_2EOPTION__MAP2(A_27a,A_27b,A_27c),V0f),V1x),V2y) = ap(ap(ap(c_2Ebool_2ECOND(ty_2Eoption_2Eoption(A_27a)),ap(ap(c_2Ebool_2E_2F_5C,ap(c_2Eoption_2EIS__SOME(A_27b),V1x)),ap(c_2Eoption_2EIS__SOME(A_27c),V2y))),ap(c_2Eoption_2ESOME(A_27a),ap(ap(V0f,ap(c_2Eoption_2ETHE(A_27b),V1x)),ap(c_2Eoption_2ETHE(A_27c),V2y)))),c_2Eoption_2ENONE(A_27a)) ) ) ) ) ).

tff(ax_thm_2Eoption_2EOPTION__JOIN__DEF,axiom,
    ! [A_27a: del] :
      ( ( ap(c_2Eoption_2EOPTION__JOIN(A_27a),c_2Eoption_2ENONE(ty_2Eoption_2Eoption(A_27a))) = c_2Eoption_2ENONE(A_27a) )
      & ! [V0x: $i] :
          ( mem(V0x,ty_2Eoption_2Eoption(A_27a))
         => ( ap(c_2Eoption_2EOPTION__JOIN(A_27a),ap(c_2Eoption_2ESOME(ty_2Eoption_2Eoption(A_27a)),V0x)) = V0x ) ) ) ).

tff(conj_thm_2Eoption_2EOPTION__MAP2__THM,axiom,
    ! [A_27a: del,A_27b: del,A_27c: del,V0f: $i] :
      ( mem(V0f,arr(A_27b,arr(A_27c,A_27a)))
     => ! [V1x: $i] :
          ( mem(V1x,A_27b)
         => ! [V2y: $i] :
              ( mem(V2y,A_27c)
             => ( ( ap(ap(ap(c_2Eoption_2EOPTION__MAP2(A_27a,A_27b,A_27c),V0f),ap(c_2Eoption_2ESOME(A_27b),V1x)),ap(c_2Eoption_2ESOME(A_27c),V2y)) = ap(c_2Eoption_2ESOME(A_27a),ap(ap(V0f,V1x),V2y)) )
                & ( ap(ap(ap(c_2Eoption_2EOPTION__MAP2(A_27a,A_27b,A_27c),V0f),ap(c_2Eoption_2ESOME(A_27b),V1x)),c_2Eoption_2ENONE(A_27c)) = c_2Eoption_2ENONE(A_27a) )
                & ( ap(ap(ap(c_2Eoption_2EOPTION__MAP2(A_27a,A_27b,A_27c),V0f),c_2Eoption_2ENONE(A_27b)),ap(c_2Eoption_2ESOME(A_27c),V2y)) = c_2Eoption_2ENONE(A_27a) )
                & ( ap(ap(ap(c_2Eoption_2EOPTION__MAP2(A_27a,A_27b,A_27c),V0f),c_2Eoption_2ENONE(A_27b)),c_2Eoption_2ENONE(A_27c)) = c_2Eoption_2ENONE(A_27a) ) ) ) ) ) ).

tff(conj_thm_2Eoption_2EIS__SOME__EXISTS,axiom,
    ! [A_27a: del,V0opt: $i] :
      ( mem(V0opt,ty_2Eoption_2Eoption(A_27a))
     => ( p(ap(c_2Eoption_2EIS__SOME(A_27a),V0opt))
      <=> ? [V1x: $i] :
            ( mem(V1x,A_27a)
            & ( V0opt = ap(c_2Eoption_2ESOME(A_27a),V1x) ) ) ) ) ).

tff(conj_thm_2Eoption_2EIS__NONE__EQ__NONE,axiom,
    ! [A_27a: del,V0x: $i] :
      ( mem(V0x,ty_2Eoption_2Eoption(A_27a))
     => ( p(ap(c_2Eoption_2EIS__NONE(A_27a),V0x))
      <=> ( V0x = c_2Eoption_2ENONE(A_27a) ) ) ) ).

tff(conj_thm_2Eoption_2ENOT__IS__SOME__EQ__NONE,axiom,
    ! [A_27a: del,V0x: $i] :
      ( mem(V0x,ty_2Eoption_2Eoption(A_27a))
     => ( ~ p(ap(c_2Eoption_2EIS__SOME(A_27a),V0x))
      <=> ( V0x = c_2Eoption_2ENONE(A_27a) ) ) ) ).

tff(conj_thm_2Eoption_2Eoption__case__ID,axiom,
    ! [A_27a: del,V0x: $i] :
      ( mem(V0x,ty_2Eoption_2Eoption(A_27a))
     => ( ap(ap(ap(c_2Eoption_2Eoption__CASE(A_27a,ty_2Eoption_2Eoption(A_27a)),V0x),c_2Eoption_2ENONE(A_27a)),c_2Eoption_2ESOME(A_27a)) = V0x ) ) ).

tff(conj_thm_2Eoption_2Eoption__case__SOME__ID,axiom,
    ! [A_27a: del,V0x: $i] :
      ( mem(V0x,ty_2Eoption_2Eoption(A_27a))
     => ( ap(ap(ap(c_2Eoption_2Eoption__CASE(A_27a,ty_2Eoption_2Eoption(A_27a)),V0x),V0x),c_2Eoption_2ESOME(A_27a)) = V0x ) ) ).

tff(conj_thm_2Eoption_2Eoption__CLAUSES,axiom,
    ! [A_27a: del,A_27b: del,V0e: $i] :
      ( mem(V0e,A_27b)
     => ! [V1f: $i] :
          ( mem(V1f,arr(A_27a,A_27b))
         => ! [V2e: $i] :
              ( mem(V2e,ty_2Eoption_2Eoption(A_27a))
             => ( ! [V3x: $i] :
                    ( mem(V3x,A_27a)
                   => ! [V4y: $i] :
                        ( mem(V4y,A_27a)
                       => ( ( ap(c_2Eoption_2ESOME(A_27a),V3x) = ap(c_2Eoption_2ESOME(A_27a),V4y) )
                        <=> ( V3x = V4y ) ) ) )
                & ! [V5x: $i] :
                    ( mem(V5x,A_27a)
                   => ( ap(c_2Eoption_2ETHE(A_27a),ap(c_2Eoption_2ESOME(A_27a),V5x)) = V5x ) )
                & ! [V6x: $i] :
                    ( mem(V6x,A_27a)
                   => ( c_2Eoption_2ENONE(A_27a) != ap(c_2Eoption_2ESOME(A_27a),V6x) ) )
                & ! [V7x: $i] :
                    ( mem(V7x,A_27a)
                   => ( ap(c_2Eoption_2ESOME(A_27a),V7x) != c_2Eoption_2ENONE(A_27a) ) )
                & ! [V8x: $i] :
                    ( mem(V8x,A_27a)
                   => ( p(ap(c_2Eoption_2EIS__SOME(A_27a),ap(c_2Eoption_2ESOME(A_27a),V8x)))
                    <=> $true ) )
                & ( p(ap(c_2Eoption_2EIS__SOME(A_27a),c_2Eoption_2ENONE(A_27a)))
                <=> $false )
                & ! [V9x: $i] :
                    ( mem(V9x,ty_2Eoption_2Eoption(A_27a))
                   => ( p(ap(c_2Eoption_2EIS__NONE(A_27a),V9x))
                    <=> ( V9x = c_2Eoption_2ENONE(A_27a) ) ) )
                & ! [V10x: $i] :
                    ( mem(V10x,ty_2Eoption_2Eoption(A_27a))
                   => ( ~ p(ap(c_2Eoption_2EIS__SOME(A_27a),V10x))
                    <=> ( V10x = c_2Eoption_2ENONE(A_27a) ) ) )
                & ! [V11x: $i] :
                    ( mem(V11x,ty_2Eoption_2Eoption(A_27a))
                   => ( p(ap(c_2Eoption_2EIS__SOME(A_27a),V11x))
                     => ( ap(c_2Eoption_2ESOME(A_27a),ap(c_2Eoption_2ETHE(A_27a),V11x)) = V11x ) ) )
                & ! [V12x: $i] :
                    ( mem(V12x,ty_2Eoption_2Eoption(A_27a))
                   => ( ap(ap(ap(c_2Eoption_2Eoption__CASE(A_27a,ty_2Eoption_2Eoption(A_27a)),V12x),c_2Eoption_2ENONE(A_27a)),c_2Eoption_2ESOME(A_27a)) = V12x ) )
                & ! [V13x: $i] :
                    ( mem(V13x,ty_2Eoption_2Eoption(A_27a))
                   => ( ap(ap(ap(c_2Eoption_2Eoption__CASE(A_27a,ty_2Eoption_2Eoption(A_27a)),V13x),V13x),c_2Eoption_2ESOME(A_27a)) = V13x ) )
                & ! [V14x: $i] :
                    ( mem(V14x,ty_2Eoption_2Eoption(A_27a))
                   => ( p(ap(c_2Eoption_2EIS__NONE(A_27a),V14x))
                     => ( ap(ap(ap(c_2Eoption_2Eoption__CASE(A_27a,A_27b),V14x),V0e),V1f) = V0e ) ) )
                & ! [V15x: $i] :
                    ( mem(V15x,ty_2Eoption_2Eoption(A_27a))
                   => ( p(ap(c_2Eoption_2EIS__SOME(A_27a),V15x))
                     => ( ap(ap(ap(c_2Eoption_2Eoption__CASE(A_27a,A_27b),V15x),V0e),V1f) = ap(V1f,ap(c_2Eoption_2ETHE(A_27a),V15x)) ) ) )
                & ! [V16x: $i] :
                    ( mem(V16x,ty_2Eoption_2Eoption(A_27a))
                   => ( p(ap(c_2Eoption_2EIS__SOME(A_27a),V16x))
                     => ( ap(ap(ap(c_2Eoption_2Eoption__CASE(A_27a,ty_2Eoption_2Eoption(A_27a)),V16x),V2e),c_2Eoption_2ESOME(A_27a)) = V16x ) ) )
                & ! [V17v: $i] :
                    ( mem(V17v,A_27b)
                   => ! [V18f: $i] :
                        ( mem(V18f,arr(A_27a,A_27b))
                       => ( ap(ap(ap(c_2Eoption_2Eoption__CASE(A_27a,A_27b),c_2Eoption_2ENONE(A_27a)),V17v),V18f) = V17v ) ) )
                & ! [V19x: $i] :
                    ( mem(V19x,A_27a)
                   => ! [V20v: $i] :
                        ( mem(V20v,A_27b)
                       => ! [V21f: $i] :
                            ( mem(V21f,arr(A_27a,A_27b))
                           => ( ap(ap(ap(c_2Eoption_2Eoption__CASE(A_27a,A_27b),ap(c_2Eoption_2ESOME(A_27a),V19x)),V20v),V21f) = ap(V21f,V19x) ) ) ) )
                & ! [V22f: $i] :
                    ( mem(V22f,arr(A_27a,A_27b))
                   => ! [V23x: $i] :
                        ( mem(V23x,A_27a)
                       => ( ap(ap(c_2Eoption_2EOPTION__MAP(A_27a,A_27b),V22f),ap(c_2Eoption_2ESOME(A_27a),V23x)) = ap(c_2Eoption_2ESOME(A_27b),ap(V22f,V23x)) ) ) )
                & ! [V24f: $i] :
                    ( mem(V24f,arr(A_27a,A_27b))
                   => ( ap(ap(c_2Eoption_2EOPTION__MAP(A_27a,A_27b),V24f),c_2Eoption_2ENONE(A_27a)) = c_2Eoption_2ENONE(A_27b) ) )
                & ( ap(c_2Eoption_2EOPTION__JOIN(A_27a),c_2Eoption_2ENONE(ty_2Eoption_2Eoption(A_27a))) = c_2Eoption_2ENONE(A_27a) )
                & ! [V25x: $i] :
                    ( mem(V25x,ty_2Eoption_2Eoption(A_27a))
                   => ( ap(c_2Eoption_2EOPTION__JOIN(A_27a),ap(c_2Eoption_2ESOME(ty_2Eoption_2Eoption(A_27a)),V25x)) = V25x ) ) ) ) ) ) ).

tff(conj_thm_2Eoption_2Eoption__case__compute,axiom,
    ! [A_27a: del,A_27b: del,V0x: $i] :
      ( mem(V0x,ty_2Eoption_2Eoption(A_27a))
     => ! [V1e: $i] :
          ( mem(V1e,A_27b)
         => ! [V2f: $i] :
              ( mem(V2f,arr(A_27a,A_27b))
             => ( ap(ap(ap(c_2Eoption_2Eoption__CASE(A_27a,A_27b),V0x),V1e),V2f) = ap(ap(ap(c_2Ebool_2ECOND(A_27b),ap(c_2Eoption_2EIS__SOME(A_27a),V0x)),ap(V2f,ap(c_2Eoption_2ETHE(A_27a),V0x))),V1e) ) ) ) ) ).

tff(conj_thm_2Eoption_2EIF__EQUALS__OPTION,axiom,
    ! [A_27a: del,V0P: tp__o,V1x: $i] :
      ( mem(V1x,A_27a)
     => ! [V2y: $i] :
          ( mem(V2y,A_27a)
         => ( ( ( ap(ap(ap(c_2Ebool_2ECOND(ty_2Eoption_2Eoption(A_27a)),inj__o(V0P)),ap(c_2Eoption_2ESOME(A_27a),V1x)),c_2Eoption_2ENONE(A_27a)) = c_2Eoption_2ENONE(A_27a) )
            <=> ~ p(inj__o(V0P)) )
            & ( ( ap(ap(ap(c_2Ebool_2ECOND(ty_2Eoption_2Eoption(A_27a)),inj__o(V0P)),c_2Eoption_2ENONE(A_27a)),ap(c_2Eoption_2ESOME(A_27a),V1x)) = c_2Eoption_2ENONE(A_27a) )
            <=> p(inj__o(V0P)) )
            & ( ( ap(ap(ap(c_2Ebool_2ECOND(ty_2Eoption_2Eoption(A_27a)),inj__o(V0P)),ap(c_2Eoption_2ESOME(A_27a),V1x)),c_2Eoption_2ENONE(A_27a)) = ap(c_2Eoption_2ESOME(A_27a),V2y) )
            <=> ( p(inj__o(V0P))
                & ( V1x = V2y ) ) )
            & ( ( ap(ap(ap(c_2Ebool_2ECOND(ty_2Eoption_2Eoption(A_27a)),inj__o(V0P)),c_2Eoption_2ENONE(A_27a)),ap(c_2Eoption_2ESOME(A_27a),V1x)) = ap(c_2Eoption_2ESOME(A_27a),V2y) )
            <=> ( ~ p(inj__o(V0P))
                & ( V1x = V2y ) ) ) ) ) ) ).

tff(conj_thm_2Eoption_2EIF__NONE__EQUALS__OPTION,axiom,
    ! [A_27a: del,V0P: tp__o,V1X: $i] :
      ( mem(V1X,ty_2Eoption_2Eoption(A_27a))
     => ! [V2x: $i] :
          ( mem(V2x,A_27a)
         => ( ( ( ap(ap(ap(c_2Ebool_2ECOND(ty_2Eoption_2Eoption(A_27a)),inj__o(V0P)),V1X),c_2Eoption_2ENONE(A_27a)) = c_2Eoption_2ENONE(A_27a) )
            <=> ( p(inj__o(V0P))
               => p(ap(c_2Eoption_2EIS__NONE(A_27a),V1X)) ) )
            & ( ( ap(ap(ap(c_2Ebool_2ECOND(ty_2Eoption_2Eoption(A_27a)),inj__o(V0P)),c_2Eoption_2ENONE(A_27a)),V1X) = c_2Eoption_2ENONE(A_27a) )
            <=> ( p(ap(c_2Eoption_2EIS__SOME(A_27a),V1X))
               => p(inj__o(V0P)) ) )
            & ( ( ap(ap(ap(c_2Ebool_2ECOND(ty_2Eoption_2Eoption(A_27a)),inj__o(V0P)),V1X),c_2Eoption_2ENONE(A_27a)) = ap(c_2Eoption_2ESOME(A_27a),V2x) )
            <=> ( p(inj__o(V0P))
                & ( V1X = ap(c_2Eoption_2ESOME(A_27a),V2x) ) ) )
            & ( ( ap(ap(ap(c_2Ebool_2ECOND(ty_2Eoption_2Eoption(A_27a)),inj__o(V0P)),c_2Eoption_2ENONE(A_27a)),V1X) = ap(c_2Eoption_2ESOME(A_27a),V2x) )
            <=> ( ~ p(inj__o(V0P))
                & ( V1X = ap(c_2Eoption_2ESOME(A_27a),V2x) ) ) ) ) ) ) ).

tff(conj_thm_2Eoption_2EOPTION__MAP__EQ__SOME,axiom,
    ! [A_27a: del,A_27b: del,V0f: $i] :
      ( mem(V0f,arr(A_27a,A_27b))
     => ! [V1x: $i] :
          ( mem(V1x,ty_2Eoption_2Eoption(A_27a))
         => ! [V2y: $i] :
              ( mem(V2y,A_27b)
             => ( ( ap(ap(c_2Eoption_2EOPTION__MAP(A_27a,A_27b),V0f),V1x) = ap(c_2Eoption_2ESOME(A_27b),V2y) )
              <=> ? [V3z: $i] :
                    ( mem(V3z,A_27a)
                    & ( V1x = ap(c_2Eoption_2ESOME(A_27a),V3z) )
                    & ( V2y = ap(V0f,V3z) ) ) ) ) ) ) ).

tff(conj_thm_2Eoption_2EOPTION__MAP__EQ__NONE,axiom,
    ! [A_27a: del,A_27b: del,V0f: $i] :
      ( mem(V0f,arr(A_27a,A_27b))
     => ! [V1x: $i] :
          ( mem(V1x,ty_2Eoption_2Eoption(A_27a))
         => ( ( ap(ap(c_2Eoption_2EOPTION__MAP(A_27a,A_27b),V0f),V1x) = c_2Eoption_2ENONE(A_27b) )
          <=> ( V1x = c_2Eoption_2ENONE(A_27a) ) ) ) ) ).

tff(conj_thm_2Eoption_2EOPTION__MAP__EQ__NONE__both__ways,axiom,
    ! [A_27a: del,A_27b: del,V0f: $i] :
      ( mem(V0f,arr(A_27b,A_27a))
     => ! [V1x: $i] :
          ( mem(V1x,ty_2Eoption_2Eoption(A_27b))
         => ( ( ( ap(ap(c_2Eoption_2EOPTION__MAP(A_27b,A_27a),V0f),V1x) = c_2Eoption_2ENONE(A_27a) )
            <=> ( V1x = c_2Eoption_2ENONE(A_27b) ) )
            & ( ( c_2Eoption_2ENONE(A_27a) = ap(ap(c_2Eoption_2EOPTION__MAP(A_27b,A_27a),V0f),V1x) )
            <=> ( V1x = c_2Eoption_2ENONE(A_27b) ) ) ) ) ) ).

tff(conj_thm_2Eoption_2EOPTION__MAP__COMPOSE,axiom,
    ! [A_27a: del,A_27b: del,A_27c: del,V0f: $i] :
      ( mem(V0f,arr(A_27c,A_27b))
     => ! [V1g: $i] :
          ( mem(V1g,arr(A_27a,A_27c))
         => ! [V2x: $i] :
              ( mem(V2x,ty_2Eoption_2Eoption(A_27a))
             => ( ap(ap(c_2Eoption_2EOPTION__MAP(A_27c,A_27b),V0f),ap(ap(c_2Eoption_2EOPTION__MAP(A_27a,A_27c),V1g),V2x)) = ap(ap(c_2Eoption_2EOPTION__MAP(A_27a,A_27b),ap(ap(c_2Ecombin_2Eo(A_27a,A_27b,A_27c),V0f),V1g)),V2x) ) ) ) ) ).

tff(conj_thm_2Eoption_2EOPTION__MAP__CONG,axiom,
    ! [A_27a: del,A_27b: del,V0opt1: $i] :
      ( mem(V0opt1,ty_2Eoption_2Eoption(A_27a))
     => ! [V1opt2: $i] :
          ( mem(V1opt2,ty_2Eoption_2Eoption(A_27a))
         => ! [V2f1: $i] :
              ( mem(V2f1,arr(A_27a,A_27b))
             => ! [V3f2: $i] :
                  ( mem(V3f2,arr(A_27a,A_27b))
                 => ( ( ( V0opt1 = V1opt2 )
                      & ! [V4x: $i] :
                          ( mem(V4x,A_27a)
                         => ( ( V1opt2 = ap(c_2Eoption_2ESOME(A_27a),V4x) )
                           => ( ap(V2f1,V4x) = ap(V3f2,V4x) ) ) ) )
                   => ( ap(ap(c_2Eoption_2EOPTION__MAP(A_27a,A_27b),V2f1),V0opt1) = ap(ap(c_2Eoption_2EOPTION__MAP(A_27a,A_27b),V3f2),V1opt2) ) ) ) ) ) ) ).

tff(conj_thm_2Eoption_2EIS__SOME__MAP,axiom,
    ! [A_27a: del,A_27b: del,V0f: $i] :
      ( mem(V0f,arr(A_27a,A_27b))
     => ! [V1x: $i] :
          ( mem(V1x,ty_2Eoption_2Eoption(A_27a))
         => ( p(ap(c_2Eoption_2EIS__SOME(A_27b),ap(ap(c_2Eoption_2EOPTION__MAP(A_27a,A_27b),V0f),V1x)))
          <=> p(ap(c_2Eoption_2EIS__SOME(A_27a),V1x)) ) ) ) ).

tff(conj_thm_2Eoption_2EOPTION__JOIN__EQ__SOME,axiom,
    ! [A_27a: del,V0x: $i] :
      ( mem(V0x,ty_2Eoption_2Eoption(ty_2Eoption_2Eoption(A_27a)))
     => ! [V1y: $i] :
          ( mem(V1y,A_27a)
         => ( ( ap(c_2Eoption_2EOPTION__JOIN(A_27a),V0x) = ap(c_2Eoption_2ESOME(A_27a),V1y) )
          <=> ( V0x = ap(c_2Eoption_2ESOME(ty_2Eoption_2Eoption(A_27a)),ap(c_2Eoption_2ESOME(A_27a),V1y)) ) ) ) ) ).

tff(conj_thm_2Eoption_2EOPTION__MAP2__SOME,axiom,
    ! [A_27a: del,A_27b: del,A_27c: del,V0f: $i] :
      ( mem(V0f,arr(A_27a,arr(A_27b,A_27c)))
     => ! [V1o1: $i] :
          ( mem(V1o1,ty_2Eoption_2Eoption(A_27a))
         => ! [V2o2: $i] :
              ( mem(V2o2,ty_2Eoption_2Eoption(A_27b))
             => ! [V3v: $i] :
                  ( mem(V3v,A_27c)
                 => ( ( ap(ap(ap(c_2Eoption_2EOPTION__MAP2(A_27c,A_27a,A_27b),V0f),V1o1),V2o2) = ap(c_2Eoption_2ESOME(A_27c),V3v) )
                  <=> ? [V4x1: $i] :
                        ( mem(V4x1,A_27a)
                        & ? [V5x2: $i] :
                            ( mem(V5x2,A_27b)
                            & ( V1o1 = ap(c_2Eoption_2ESOME(A_27a),V4x1) )
                            & ( V2o2 = ap(c_2Eoption_2ESOME(A_27b),V5x2) )
                            & ( V3v = ap(ap(V0f,V4x1),V5x2) ) ) ) ) ) ) ) ) ).

tff(conj_thm_2Eoption_2EOPTION__MAP2__NONE,axiom,
    ! [A_27a: del,A_27b: del,A_27c: del,V0f: $i] :
      ( mem(V0f,arr(A_27a,arr(A_27b,A_27c)))
     => ! [V1o1: $i] :
          ( mem(V1o1,ty_2Eoption_2Eoption(A_27a))
         => ! [V2o2: $i] :
              ( mem(V2o2,ty_2Eoption_2Eoption(A_27b))
             => ( ( ap(ap(ap(c_2Eoption_2EOPTION__MAP2(A_27c,A_27a,A_27b),V0f),V1o1),V2o2) = c_2Eoption_2ENONE(A_27c) )
              <=> ( ( V1o1 = c_2Eoption_2ENONE(A_27a) )
                  | ( V2o2 = c_2Eoption_2ENONE(A_27b) ) ) ) ) ) ) ).

tff(conj_thm_2Eoption_2EOPTION__MAP2__cong,axiom,
    ! [A_27a: del,A_27b: del,A_27c: del,V0x1: $i] :
      ( mem(V0x1,ty_2Eoption_2Eoption(A_27a))
     => ! [V1x2: $i] :
          ( mem(V1x2,ty_2Eoption_2Eoption(A_27a))
         => ! [V2y1: $i] :
              ( mem(V2y1,ty_2Eoption_2Eoption(A_27b))
             => ! [V3y2: $i] :
                  ( mem(V3y2,ty_2Eoption_2Eoption(A_27b))
                 => ! [V4f1: $i] :
                      ( mem(V4f1,arr(A_27a,arr(A_27b,A_27c)))
                     => ! [V5f2: $i] :
                          ( mem(V5f2,arr(A_27a,arr(A_27b,A_27c)))
                         => ( ( ( V0x1 = V1x2 )
                              & ( V2y1 = V3y2 )
                              & ! [V6x: $i] :
                                  ( mem(V6x,A_27a)
                                 => ! [V7y: $i] :
                                      ( mem(V7y,A_27b)
                                     => ( ( ( V1x2 = ap(c_2Eoption_2ESOME(A_27a),V6x) )
                                          & ( V3y2 = ap(c_2Eoption_2ESOME(A_27b),V7y) ) )
                                       => ( ap(ap(V4f1,V6x),V7y) = ap(ap(V5f2,V6x),V7y) ) ) ) ) )
                           => ( ap(ap(ap(c_2Eoption_2EOPTION__MAP2(A_27c,A_27a,A_27b),V4f1),V0x1),V2y1) = ap(ap(ap(c_2Eoption_2EOPTION__MAP2(A_27c,A_27a,A_27b),V5f2),V1x2),V3y2) ) ) ) ) ) ) ) ) ).

tff(conj_thm_2Eoption_2EOPTION__MAP__CASE,axiom,
    ! [A_27a: del,A_27b: del,V0f: $i] :
      ( mem(V0f,arr(A_27a,A_27b))
     => ! [V1x: $i] :
          ( mem(V1x,ty_2Eoption_2Eoption(A_27a))
         => ( ap(ap(c_2Eoption_2EOPTION__MAP(A_27a,A_27b),V0f),V1x) = ap(ap(ap(c_2Eoption_2Eoption__CASE(A_27a,ty_2Eoption_2Eoption(A_27b)),V1x),c_2Eoption_2ENONE(A_27b)),ap(ap(c_2Ecombin_2Eo(A_27a,ty_2Eoption_2Eoption(A_27b),A_27b),c_2Eoption_2ESOME(A_27b)),V0f)) ) ) ) ).

tff(ax_thm_2Eoption_2EOPTION__BIND__def,axiom,
    ! [A_27a: del,A_27b: del] :
      ( ! [V0f: $i] :
          ( mem(V0f,arr(A_27b,ty_2Eoption_2Eoption(A_27a)))
         => ( ap(ap(c_2Eoption_2EOPTION__BIND(A_27a,A_27b),c_2Eoption_2ENONE(A_27b)),V0f) = c_2Eoption_2ENONE(A_27a) ) )
      & ! [V1x: $i] :
          ( mem(V1x,A_27b)
         => ! [V2f: $i] :
              ( mem(V2f,arr(A_27b,ty_2Eoption_2Eoption(A_27a)))
             => ( ap(ap(c_2Eoption_2EOPTION__BIND(A_27a,A_27b),ap(c_2Eoption_2ESOME(A_27b),V1x)),V2f) = ap(V2f,V1x) ) ) ) ) ).

tff(conj_thm_2Eoption_2EOPTION__BIND__cong,axiom,
    ! [A_27a: del,A_27b: del,V0o1: $i] :
      ( mem(V0o1,ty_2Eoption_2Eoption(A_27a))
     => ! [V1o2: $i] :
          ( mem(V1o2,ty_2Eoption_2Eoption(A_27a))
         => ! [V2f1: $i] :
              ( mem(V2f1,arr(A_27a,ty_2Eoption_2Eoption(A_27b)))
             => ! [V3f2: $i] :
                  ( mem(V3f2,arr(A_27a,ty_2Eoption_2Eoption(A_27b)))
                 => ( ( ( V0o1 = V1o2 )
                      & ! [V4x: $i] :
                          ( mem(V4x,A_27a)
                         => ( ( V1o2 = ap(c_2Eoption_2ESOME(A_27a),V4x) )
                           => ( ap(V2f1,V4x) = ap(V3f2,V4x) ) ) ) )
                   => ( ap(ap(c_2Eoption_2EOPTION__BIND(A_27b,A_27a),V0o1),V2f1) = ap(ap(c_2Eoption_2EOPTION__BIND(A_27b,A_27a),V1o2),V3f2) ) ) ) ) ) ) ).

tff(conj_thm_2Eoption_2EOPTION__BIND__EQUALS__OPTION,axiom,
    ! [A_27a: del,A_27b: del,V0p: $i] :
      ( mem(V0p,ty_2Eoption_2Eoption(A_27a))
     => ! [V1f: $i] :
          ( mem(V1f,arr(A_27a,ty_2Eoption_2Eoption(A_27b)))
         => ! [V2y: $i] :
              ( mem(V2y,A_27b)
             => ( ( ( ap(ap(c_2Eoption_2EOPTION__BIND(A_27b,A_27a),V0p),V1f) = c_2Eoption_2ENONE(A_27b) )
                <=> ( ( V0p = c_2Eoption_2ENONE(A_27a) )
                    | ? [V3x: $i] :
                        ( mem(V3x,A_27a)
                        & ( V0p = ap(c_2Eoption_2ESOME(A_27a),V3x) )
                        & ( ap(V1f,V3x) = c_2Eoption_2ENONE(A_27b) ) ) ) )
                & ( ( ap(ap(c_2Eoption_2EOPTION__BIND(A_27b,A_27a),V0p),V1f) = ap(c_2Eoption_2ESOME(A_27b),V2y) )
                <=> ? [V4x: $i] :
                      ( mem(V4x,A_27a)
                      & ( V0p = ap(c_2Eoption_2ESOME(A_27a),V4x) )
                      & ( ap(V1f,V4x) = ap(c_2Eoption_2ESOME(A_27b),V2y) ) ) ) ) ) ) ) ).

tff(conj_thm_2Eoption_2EIS__SOME__BIND,axiom,
    ! [A_27a: del,A_27b: del,V0x: $i] :
      ( mem(V0x,ty_2Eoption_2Eoption(A_27a))
     => ! [V1g: $i] :
          ( mem(V1g,arr(A_27a,ty_2Eoption_2Eoption(A_27b)))
         => ( p(ap(c_2Eoption_2EIS__SOME(A_27b),ap(ap(c_2Eoption_2EOPTION__BIND(A_27b,A_27a),V0x),V1g)))
           => p(ap(c_2Eoption_2EIS__SOME(A_27a),V0x)) ) ) ) ).

tff(ax_thm_2Eoption_2EOPTION__IGNORE__BIND__def,axiom,
    ! [A_27a: del,A_27b: del,V0m1: $i] :
      ( mem(V0m1,ty_2Eoption_2Eoption(A_27b))
     => ! [V1m2: $i] :
          ( mem(V1m2,ty_2Eoption_2Eoption(A_27a))
         => ( ap(ap(c_2Eoption_2EOPTION__IGNORE__BIND(A_27a,A_27b),V0m1),V1m2) = ap(ap(c_2Eoption_2EOPTION__BIND(A_27a,A_27b),V0m1),ap(c_2Ecombin_2EK(ty_2Eoption_2Eoption(A_27a),A_27b),V1m2)) ) ) ) ).

tff(conj_thm_2Eoption_2EOPTION__IGNORE__BIND__thm,axiom,
    ! [A_27a: del,A_27b: del,A_27c: del,V0m: $i] :
      ( mem(V0m,ty_2Eoption_2Eoption(A_27a))
     => ! [V1v: $i] :
          ( mem(V1v,A_27c)
         => ( ( ap(ap(c_2Eoption_2EOPTION__IGNORE__BIND(A_27a,A_27b),c_2Eoption_2ENONE(A_27b)),V0m) = c_2Eoption_2ENONE(A_27a) )
            & ( ap(ap(c_2Eoption_2EOPTION__IGNORE__BIND(A_27a,A_27c),ap(c_2Eoption_2ESOME(A_27c),V1v)),V0m) = V0m ) ) ) ) ).

tff(conj_thm_2Eoption_2EOPTION__IGNORE__BIND__EQUALS__OPTION,axiom,
    ! [A_27a: del,A_27b: del,V0m1: $i] :
      ( mem(V0m1,ty_2Eoption_2Eoption(A_27a))
     => ! [V1m2: $i] :
          ( mem(V1m2,ty_2Eoption_2Eoption(A_27b))
         => ! [V2y: $i] :
              ( mem(V2y,A_27b)
             => ( ( ( ap(ap(c_2Eoption_2EOPTION__IGNORE__BIND(A_27b,A_27a),V0m1),V1m2) = c_2Eoption_2ENONE(A_27b) )
                <=> ( ( V0m1 = c_2Eoption_2ENONE(A_27a) )
                    | ( V1m2 = c_2Eoption_2ENONE(A_27b) ) ) )
                & ( ( ap(ap(c_2Eoption_2EOPTION__IGNORE__BIND(A_27b,A_27a),V0m1),V1m2) = ap(c_2Eoption_2ESOME(A_27b),V2y) )
                <=> ? [V3x: $i] :
                      ( mem(V3x,A_27a)
                      & ( V0m1 = ap(c_2Eoption_2ESOME(A_27a),V3x) )
                      & ( V1m2 = ap(c_2Eoption_2ESOME(A_27b),V2y) ) ) ) ) ) ) ) ).

tff(ax_thm_2Eoption_2EOPTION__GUARD__def,axiom,
    ( ( surj__c_ty_2Eoption_2Eoption_ty_2Eone_2Eone(ap(c_2Eoption_2EOPTION__GUARD,inj__o(fo__c_2Ebool_2ET))) = surj__c_ty_2Eoption_2Eoption_ty_2Eone_2Eone(ap(c_2Eoption_2ESOME(ty_2Eone_2Eone),inj__ty_2Eone_2Eone(fo__c_2Eone_2Eone))) )
    & ( surj__c_ty_2Eoption_2Eoption_ty_2Eone_2Eone(ap(c_2Eoption_2EOPTION__GUARD,inj__o(fo__c_2Ebool_2EF))) = surj__c_ty_2Eoption_2Eoption_ty_2Eone_2Eone(c_2Eoption_2ENONE(ty_2Eone_2Eone)) ) ) ).

tff(conj_thm_2Eoption_2EOPTION__GUARD__COND,axiom,
    ! [V0b: tp__o] : ( surj__c_ty_2Eoption_2Eoption_ty_2Eone_2Eone(ap(c_2Eoption_2EOPTION__GUARD,inj__o(V0b))) = surj__c_ty_2Eoption_2Eoption_ty_2Eone_2Eone(ap(ap(ap(c_2Ebool_2ECOND(ty_2Eoption_2Eoption(ty_2Eone_2Eone)),inj__o(V0b)),ap(c_2Eoption_2ESOME(ty_2Eone_2Eone),inj__ty_2Eone_2Eone(fo__c_2Eone_2Eone))),c_2Eoption_2ENONE(ty_2Eone_2Eone))) ) ).

tff(conj_thm_2Eoption_2EOPTION__GUARD__EQ__THM,axiom,
    ! [V0b: tp__o] :
      ( ( ( surj__c_ty_2Eoption_2Eoption_ty_2Eone_2Eone(ap(c_2Eoption_2EOPTION__GUARD,inj__o(V0b))) = surj__c_ty_2Eoption_2Eoption_ty_2Eone_2Eone(ap(c_2Eoption_2ESOME(ty_2Eone_2Eone),inj__ty_2Eone_2Eone(fo__c_2Eone_2Eone))) )
      <=> p(inj__o(V0b)) )
      & ( ( surj__c_ty_2Eoption_2Eoption_ty_2Eone_2Eone(ap(c_2Eoption_2EOPTION__GUARD,inj__o(V0b))) = surj__c_ty_2Eoption_2Eoption_ty_2Eone_2Eone(c_2Eoption_2ENONE(ty_2Eone_2Eone)) )
      <=> ~ p(inj__o(V0b)) ) ) ).

tff(ax_thm_2Eoption_2EOPTION__CHOICE__def,axiom,
    ! [A_27a: del] :
      ( ! [V0m2: $i] :
          ( mem(V0m2,ty_2Eoption_2Eoption(A_27a))
         => ( ap(ap(c_2Eoption_2EOPTION__CHOICE(A_27a),c_2Eoption_2ENONE(A_27a)),V0m2) = V0m2 ) )
      & ! [V1x: $i] :
          ( mem(V1x,A_27a)
         => ! [V2m2: $i] :
              ( mem(V2m2,ty_2Eoption_2Eoption(A_27a))
             => ( ap(ap(c_2Eoption_2EOPTION__CHOICE(A_27a),ap(c_2Eoption_2ESOME(A_27a),V1x)),V2m2) = ap(c_2Eoption_2ESOME(A_27a),V1x) ) ) ) ) ).

tff(conj_thm_2Eoption_2EOPTION__CHOICE__EQ__NONE,axiom,
    ! [A_27a: del,V0m1: $i] :
      ( mem(V0m1,ty_2Eoption_2Eoption(A_27a))
     => ! [V1m2: $i] :
          ( mem(V1m2,ty_2Eoption_2Eoption(A_27a))
         => ( ( ap(ap(c_2Eoption_2EOPTION__CHOICE(A_27a),V0m1),V1m2) = c_2Eoption_2ENONE(A_27a) )
          <=> ( ( V0m1 = c_2Eoption_2ENONE(A_27a) )
              & ( V1m2 = c_2Eoption_2ENONE(A_27a) ) ) ) ) ) ).

tff(conj_thm_2Eoption_2EOPTION__CHOICE__NONE,axiom,
    ! [A_27a: del,V0m1: $i] :
      ( mem(V0m1,ty_2Eoption_2Eoption(A_27a))
     => ( ap(ap(c_2Eoption_2EOPTION__CHOICE(A_27a),V0m1),c_2Eoption_2ENONE(A_27a)) = V0m1 ) ) ).

tff(ax_thm_2Eoption_2EOPTION__MCOMP__def,axiom,
    ! [A_27a: del,A_27b: del,A_27c: del,V0g: $i] :
      ( mem(V0g,arr(A_27b,ty_2Eoption_2Eoption(A_27a)))
     => ! [V1f: $i] :
          ( mem(V1f,arr(A_27c,ty_2Eoption_2Eoption(A_27b)))
         => ! [V2m: $i] :
              ( mem(V2m,A_27c)
             => ( ap(ap(ap(c_2Eoption_2EOPTION__MCOMP(A_27a,A_27b,A_27c),V0g),V1f),V2m) = ap(ap(c_2Eoption_2EOPTION__BIND(A_27a,A_27b),ap(V1f,V2m)),V0g) ) ) ) ) ).

tff(conj_thm_2Eoption_2EOPTION__MCOMP__ASSOC,axiom,
    ! [A_27a: del,A_27b: del,A_27c: del,A_27d: del,V0f: $i] :
      ( mem(V0f,arr(A_27d,ty_2Eoption_2Eoption(A_27c)))
     => ! [V1g: $i] :
          ( mem(V1g,arr(A_27b,ty_2Eoption_2Eoption(A_27d)))
         => ! [V2h: $i] :
              ( mem(V2h,arr(A_27a,ty_2Eoption_2Eoption(A_27b)))
             => ( ap(ap(c_2Eoption_2EOPTION__MCOMP(A_27c,A_27d,A_27a),V0f),ap(ap(c_2Eoption_2EOPTION__MCOMP(A_27d,A_27b,A_27a),V1g),V2h)) = ap(ap(c_2Eoption_2EOPTION__MCOMP(A_27c,A_27b,A_27a),ap(ap(c_2Eoption_2EOPTION__MCOMP(A_27c,A_27d,A_27b),V0f),V1g)),V2h) ) ) ) ) ).

tff(conj_thm_2Eoption_2EOPTION__MCOMP__ID,axiom,
    ! [A_27a: del,A_27b: del,A_27c: del,A_27d: del,V0g: $i] :
      ( mem(V0g,arr(A_27c,ty_2Eoption_2Eoption(A_27d)))
     => ! [V1f: $i] :
          ( mem(V1f,arr(A_27a,ty_2Eoption_2Eoption(A_27b)))
         => ( ( ap(ap(c_2Eoption_2EOPTION__MCOMP(A_27d,A_27c,A_27c),V0g),c_2Eoption_2ESOME(A_27c)) = V0g )
            & ( ap(ap(c_2Eoption_2EOPTION__MCOMP(A_27b,A_27b,A_27a),c_2Eoption_2ESOME(A_27b)),V1f) = V1f ) ) ) ) ).

tff(ax_thm_2Eoption_2EOPTION__APPLY__def,axiom,
    ! [A_27a: del,A_27b: del] :
      ( ! [V0x: $i] :
          ( mem(V0x,ty_2Eoption_2Eoption(A_27b))
         => ( ap(ap(c_2Eoption_2EOPTION__APPLY(A_27a,A_27b),c_2Eoption_2ENONE(arr(A_27b,A_27a))),V0x) = c_2Eoption_2ENONE(A_27a) ) )
      & ! [V1f: $i] :
          ( mem(V1f,arr(A_27b,A_27a))
         => ! [V2x: $i] :
              ( mem(V2x,ty_2Eoption_2Eoption(A_27b))
             => ( ap(ap(c_2Eoption_2EOPTION__APPLY(A_27a,A_27b),ap(c_2Eoption_2ESOME(arr(A_27b,A_27a)),V1f)),V2x) = ap(ap(c_2Eoption_2EOPTION__MAP(A_27b,A_27a),V1f),V2x) ) ) ) ) ).

tff(conj_thm_2Eoption_2EOPTION__APPLY__MAP2,axiom,
    ! [A_27a: del,A_27b: del,A_27c: del,V0f: $i] :
      ( mem(V0f,arr(A_27a,arr(A_27b,A_27c)))
     => ! [V1x: $i] :
          ( mem(V1x,ty_2Eoption_2Eoption(A_27a))
         => ! [V2y: $i] :
              ( mem(V2y,ty_2Eoption_2Eoption(A_27b))
             => ( ap(ap(c_2Eoption_2EOPTION__APPLY(A_27c,A_27b),ap(ap(c_2Eoption_2EOPTION__MAP(A_27a,arr(A_27b,A_27c)),V0f),V1x)),V2y) = ap(ap(ap(c_2Eoption_2EOPTION__MAP2(A_27c,A_27a,A_27b),V0f),V1x),V2y) ) ) ) ) ).

tff(conj_thm_2Eoption_2ESOME__SOME__APPLY,axiom,
    ! [A_27a: del,A_27b: del,V0f: $i] :
      ( mem(V0f,arr(A_27b,A_27a))
     => ! [V1x: $i] :
          ( mem(V1x,A_27b)
         => ( ap(ap(c_2Eoption_2EOPTION__APPLY(A_27a,A_27b),ap(c_2Eoption_2ESOME(arr(A_27b,A_27a)),V0f)),ap(c_2Eoption_2ESOME(A_27b),V1x)) = ap(c_2Eoption_2ESOME(A_27a),ap(V0f,V1x)) ) ) ) ).

tff(lamtp_f107,type,
    f107: ( del * del * $i ) > $i ).

tff(lameq_f107,axiom,
    ! [A_27b: del,A_27a: del,V1x: $i] :
      ( mem(V1x,A_27a)
     => ! [V2f: $i] : ( ap(f107(A_27b,A_27a,V1x),V2f) = ap(V2f,V1x) ) ) ).

tff(conj_thm_2Eoption_2ESOME__APPLY__PERMUTE,axiom,
    ! [A_27a: del,A_27b: del,V0f: $i] :
      ( mem(V0f,ty_2Eoption_2Eoption(arr(A_27a,A_27b)))
     => ! [V1x: $i] :
          ( mem(V1x,A_27a)
         => ( ap(ap(c_2Eoption_2EOPTION__APPLY(A_27b,A_27a),V0f),ap(c_2Eoption_2ESOME(A_27a),V1x)) = ap(ap(c_2Eoption_2EOPTION__APPLY(A_27b,arr(A_27a,A_27b)),ap(c_2Eoption_2ESOME(arr(arr(A_27a,A_27b),A_27b)),f107(A_27b,A_27a,V1x))),V0f) ) ) ) ).

tff(conj_thm_2Eoption_2EOPTION__APPLY__o,axiom,
    ! [A_27a: del,A_27b: del,A_27c: del,V0f: $i] :
      ( mem(V0f,ty_2Eoption_2Eoption(arr(A_27b,A_27c)))
     => ! [V1g: $i] :
          ( mem(V1g,ty_2Eoption_2Eoption(arr(A_27a,A_27b)))
         => ! [V2x: $i] :
              ( mem(V2x,ty_2Eoption_2Eoption(A_27a))
             => ( ap(ap(c_2Eoption_2EOPTION__APPLY(A_27c,A_27a),ap(ap(c_2Eoption_2EOPTION__APPLY(arr(A_27a,A_27c),arr(A_27a,A_27b)),ap(ap(c_2Eoption_2EOPTION__APPLY(arr(arr(A_27a,A_27b),arr(A_27a,A_27c)),arr(A_27b,A_27c)),ap(c_2Eoption_2ESOME(arr(arr(A_27b,A_27c),arr(arr(A_27a,A_27b),arr(A_27a,A_27c)))),c_2Ecombin_2Eo(A_27a,A_27c,A_27b))),V0f)),V1g)),V2x) = ap(ap(c_2Eoption_2EOPTION__APPLY(A_27c,A_27b),V0f),ap(ap(c_2Eoption_2EOPTION__APPLY(A_27b,A_27a),V1g),V2x)) ) ) ) ) ).

tff(ax_thm_2Eoption_2EOPTREL__def,axiom,
    ! [A_27a: del,A_27b: del,V0R: $i] :
      ( mem(V0R,arr(A_27a,arr(A_27b,bool)))
     => ! [V1x: $i] :
          ( mem(V1x,ty_2Eoption_2Eoption(A_27a))
         => ! [V2y: $i] :
              ( mem(V2y,ty_2Eoption_2Eoption(A_27b))
             => ( p(ap(ap(ap(c_2Eoption_2EOPTREL(A_27a,A_27b),V0R),V1x),V2y))
              <=> ( ( ( V1x = c_2Eoption_2ENONE(A_27a) )
                    & ( V2y = c_2Eoption_2ENONE(A_27b) ) )
                  | ? [V3x0: $i] :
                      ( mem(V3x0,A_27a)
                      & ? [V4y0: $i] :
                          ( mem(V4y0,A_27b)
                          & ( V1x = ap(c_2Eoption_2ESOME(A_27a),V3x0) )
                          & ( V2y = ap(c_2Eoption_2ESOME(A_27b),V4y0) )
                          & p(ap(ap(V0R,V3x0),V4y0)) ) ) ) ) ) ) ) ).

tff(conj_thm_2Eoption_2EOPTREL__MONO,axiom,
    ! [A_27a: del,A_27b: del,V0P: $i] :
      ( mem(V0P,arr(A_27a,arr(A_27b,bool)))
     => ! [V1Q: $i] :
          ( mem(V1Q,arr(A_27a,arr(A_27b,bool)))
         => ! [V2x: $i] :
              ( mem(V2x,ty_2Eoption_2Eoption(A_27a))
             => ! [V3y: $i] :
                  ( mem(V3y,ty_2Eoption_2Eoption(A_27b))
                 => ( ! [V4x: $i] :
                        ( mem(V4x,A_27a)
                       => ! [V5y: $i] :
                            ( mem(V5y,A_27b)
                           => ( p(ap(ap(V0P,V4x),V5y))
                             => p(ap(ap(V1Q,V4x),V5y)) ) ) )
                   => ( p(ap(ap(ap(c_2Eoption_2EOPTREL(A_27a,A_27b),V0P),V2x),V3y))
                     => p(ap(ap(ap(c_2Eoption_2EOPTREL(A_27a,A_27b),V1Q),V2x),V3y)) ) ) ) ) ) ) ).

tff(conj_thm_2Eoption_2EOPTREL__refl,axiom,
    ! [A_27a: del,V0R: $i] :
      ( mem(V0R,arr(A_27a,arr(A_27a,bool)))
     => ( ! [V1x: $i] :
            ( mem(V1x,A_27a)
           => p(ap(ap(V0R,V1x),V1x)) )
       => ! [V2x: $i] :
            ( mem(V2x,ty_2Eoption_2Eoption(A_27a))
           => p(ap(ap(ap(c_2Eoption_2EOPTREL(A_27a,A_27a),V0R),V2x),V2x)) ) ) ) ).

tff(lamtp_f108,type,
    f108: ( del * $i ) > $i ).

tff(lameq_f108,axiom,
    ! [A_27a: del,V0P: $i] :
      ( mem(V0P,arr(A_27a,bool))
     => ! [V2x: $i] : ( ap(f108(A_27a,V0P),V2x) = ap(V0P,V2x) ) ) ).

tff(ax_thm_2Eoption_2Esome__def,axiom,
    ! [A_27a: del,V0P: $i] :
      ( mem(V0P,arr(A_27a,bool))
     => ( ap(c_2Eoption_2Esome(A_27a),V0P) = ap(ap(ap(c_2Ebool_2ECOND(ty_2Eoption_2Eoption(A_27a)),ap(c_2Ebool_2E_3F(A_27a),f49(A_27a,V0P))),ap(c_2Eoption_2ESOME(A_27a),ap(c_2Emin_2E_40(A_27a),f108(A_27a,V0P)))),c_2Eoption_2ENONE(A_27a)) ) ) ).

tff(conj_thm_2Eoption_2Esome__intro,axiom,
    ! [A_27a: del,V0P: $i] :
      ( mem(V0P,arr(A_27a,bool))
     => ! [V1Q: $i] :
          ( mem(V1Q,arr(ty_2Eoption_2Eoption(A_27a),bool))
         => ( ( ! [V2x: $i] :
                  ( mem(V2x,A_27a)
                 => ( p(ap(V0P,V2x))
                   => p(ap(V1Q,ap(c_2Eoption_2ESOME(A_27a),V2x))) ) )
              & ( ! [V3x: $i] :
                    ( mem(V3x,A_27a)
                   => ~ p(ap(V0P,V3x)) )
               => p(ap(V1Q,c_2Eoption_2ENONE(A_27a))) ) )
           => p(ap(V1Q,ap(c_2Eoption_2Esome(A_27a),V0P))) ) ) ) ).

tff(conj_thm_2Eoption_2Esome__elim,axiom,
    ! [A_27a: del,V0Q: $i] :
      ( mem(V0Q,arr(ty_2Eoption_2Eoption(A_27a),bool))
     => ! [V1P: $i] :
          ( mem(V1P,arr(A_27a,bool))
         => ( p(ap(V0Q,ap(c_2Eoption_2Esome(A_27a),V1P)))
           => ( ? [V2x: $i] :
                  ( mem(V2x,A_27a)
                  & p(ap(V1P,V2x))
                  & p(ap(V0Q,ap(c_2Eoption_2ESOME(A_27a),V2x))) )
              | ( ! [V3x: $i] :
                    ( mem(V3x,A_27a)
                   => ~ p(ap(V1P,V3x)) )
                & p(ap(V0Q,c_2Eoption_2ENONE(A_27a))) ) ) ) ) ) ).

tff(conj_thm_2Eoption_2Esome__F,axiom,
    ! [A_27a: del] : ( ap(c_2Eoption_2Esome(A_27a),k(A_27a,c_2Ebool_2EF)) = c_2Eoption_2ENONE(A_27a) ) ).

tff(lamtp_f109,type,
    f109: ( del * $i ) > $i ).

tff(lameq_f109,axiom,
    ! [A_27a: del,V0y: $i] :
      ( mem(V0y,A_27a)
     => ! [V1x: $i] : ( ap(f109(A_27a,V0y),V1x) = ap(ap(c_2Emin_2E_3D(A_27a),V1x),V0y) ) ) ).

tff(lamtp_f110,type,
    f110: ( del * $i ) > $i ).

tff(lameq_f110,axiom,
    ! [A_27a: del,V0y: $i] :
      ( mem(V0y,A_27a)
     => ! [V2x: $i] : ( ap(f110(A_27a,V0y),V2x) = ap(ap(c_2Emin_2E_3D(A_27a),V0y),V2x) ) ) ).

tff(conj_thm_2Eoption_2Esome__EQ,axiom,
    ! [A_27a: del,V0y: $i] :
      ( mem(V0y,A_27a)
     => ( ( ap(c_2Eoption_2Esome(A_27a),f109(A_27a,V0y)) = ap(c_2Eoption_2ESOME(A_27a),V0y) )
        & ( ap(c_2Eoption_2Esome(A_27a),f110(A_27a,V0y)) = ap(c_2Eoption_2ESOME(A_27a),V0y) ) ) ) ).

tff(conj_thm_2Eoption_2Eoption__case__cong,axiom,
    ! [A_27a: del,A_27b: del,V0v_27: $i] :
      ( mem(V0v_27,A_27b)
     => ! [V1f_27: $i] :
          ( mem(V1f_27,arr(A_27a,A_27b))
         => ! [V2M: $i] :
              ( mem(V2M,ty_2Eoption_2Eoption(A_27a))
             => ! [V3M_27: $i] :
                  ( mem(V3M_27,ty_2Eoption_2Eoption(A_27a))
                 => ! [V4v: $i] :
                      ( mem(V4v,A_27b)
                     => ! [V5f: $i] :
                          ( mem(V5f,arr(A_27a,A_27b))
                         => ( ( ( V2M = V3M_27 )
                              & ( ( V3M_27 = c_2Eoption_2ENONE(A_27a) )
                               => ( V4v = V0v_27 ) )
                              & ! [V6x: $i] :
                                  ( mem(V6x,A_27a)
                                 => ( ( V3M_27 = ap(c_2Eoption_2ESOME(A_27a),V6x) )
                                   => ( ap(V5f,V6x) = ap(V1f_27,V6x) ) ) ) )
                           => ( ap(ap(ap(c_2Eoption_2Eoption__CASE(A_27a,A_27b),V2M),V4v),V5f) = ap(ap(ap(c_2Eoption_2Eoption__CASE(A_27a,A_27b),V3M_27),V0v_27),V1f_27) ) ) ) ) ) ) ) ) ).

tff(ax_thm_2Eoption_2EOPTION__ALL__def,axiom,
    ! [A_27a: del] :
      ( ! [V0P: $i] :
          ( mem(V0P,arr(A_27a,bool))
         => ( p(ap(ap(c_2Eoption_2EOPTION__ALL(A_27a),V0P),c_2Eoption_2ENONE(A_27a)))
          <=> $true ) )
      & ! [V1P: $i] :
          ( mem(V1P,arr(A_27a,bool))
         => ! [V2x: $i] :
              ( mem(V2x,A_27a)
             => ( p(ap(ap(c_2Eoption_2EOPTION__ALL(A_27a),V1P),ap(c_2Eoption_2ESOME(A_27a),V2x)))
              <=> p(ap(V1P,V2x)) ) ) ) ) ).

tff(conj_thm_2Eoption_2EOPTION__ALL__MONO,axiom,
    ! [A_27a: del,V0P: $i] :
      ( mem(V0P,arr(A_27a,bool))
     => ! [V1P_27: $i] :
          ( mem(V1P_27,arr(A_27a,bool))
         => ! [V2opt: $i] :
              ( mem(V2opt,ty_2Eoption_2Eoption(A_27a))
             => ( ! [V3x: $i] :
                    ( mem(V3x,A_27a)
                   => ( p(ap(V0P,V3x))
                     => p(ap(V1P_27,V3x)) ) )
               => ( p(ap(ap(c_2Eoption_2EOPTION__ALL(A_27a),V0P),V2opt))
                 => p(ap(ap(c_2Eoption_2EOPTION__ALL(A_27a),V1P_27),V2opt)) ) ) ) ) ) ).

tff(conj_thm_2Eoption_2EOPTION__ALL__CONG,axiom,
    ! [A_27a: del,V0opt: $i] :
      ( mem(V0opt,ty_2Eoption_2Eoption(A_27a))
     => ! [V1opt_27: $i] :
          ( mem(V1opt_27,ty_2Eoption_2Eoption(A_27a))
         => ! [V2P: $i] :
              ( mem(V2P,arr(A_27a,bool))
             => ! [V3P_27: $i] :
                  ( mem(V3P_27,arr(A_27a,bool))
                 => ( ( ( V0opt = V1opt_27 )
                      & ! [V4x: $i] :
                          ( mem(V4x,A_27a)
                         => ( ( V1opt_27 = ap(c_2Eoption_2ESOME(A_27a),V4x) )
                           => ( p(ap(V2P,V4x))
                            <=> p(ap(V3P_27,V4x)) ) ) ) )
                   => ( p(ap(ap(c_2Eoption_2EOPTION__ALL(A_27a),V2P),V0opt))
                    <=> p(ap(ap(c_2Eoption_2EOPTION__ALL(A_27a),V3P_27),V1opt_27)) ) ) ) ) ) ) ).

tff(conj_thm_2Eoption_2Eoption__case__eq,axiom,
    ! [A_27a: del,A_27b: del,V0opt: $i] :
      ( mem(V0opt,ty_2Eoption_2Eoption(A_27a))
     => ! [V1nc: $i] :
          ( mem(V1nc,A_27b)
         => ! [V2sc: $i] :
              ( mem(V2sc,arr(A_27a,A_27b))
             => ! [V3v: $i] :
                  ( mem(V3v,A_27b)
                 => ( ( ap(ap(ap(c_2Eoption_2Eoption__CASE(A_27a,A_27b),V0opt),V1nc),V2sc) = V3v )
                  <=> ( ( ( V0opt = c_2Eoption_2ENONE(A_27a) )
                        & ( V1nc = V3v ) )
                      | ? [V4x: $i] :
                          ( mem(V4x,A_27a)
                          & ( V0opt = ap(c_2Eoption_2ESOME(A_27a),V4x) )
                          & ( ap(V2sc,V4x) = V3v ) ) ) ) ) ) ) ) ).

tff(conj_thm_2Eoption_2Eoption__Induct,axiom,
    ! [A_27a: del,V0P: $i] :
      ( mem(V0P,arr(ty_2Eoption_2Eoption(A_27a),bool))
     => ( ( ! [V1a: $i] :
              ( mem(V1a,A_27a)
             => p(ap(V0P,ap(c_2Eoption_2ESOME(A_27a),V1a))) )
          & p(ap(V0P,c_2Eoption_2ENONE(A_27a))) )
       => ! [V2x: $i] :
            ( mem(V2x,ty_2Eoption_2Eoption(A_27a))
           => p(ap(V0P,V2x)) ) ) ) ).

tff(conj_thm_2Eoption_2Eoption__CASES,axiom,
    ! [A_27a: del,V0opt: $i] :
      ( mem(V0opt,ty_2Eoption_2Eoption(A_27a))
     => ( ? [V1x: $i] :
            ( mem(V1x,A_27a)
            & ( V0opt = ap(c_2Eoption_2ESOME(A_27a),V1x) ) )
        | ( V0opt = c_2Eoption_2ENONE(A_27a) ) ) ) ).

tff(conj_thm_2Eoption_2Edatatype__option,axiom,
    ! [A_27a: del,A_27b: del,V0option: $i] :
      ( mem(V0option,arr(ty_2Eoption_2Eoption(A_27a),arr(arr(A_27a,ty_2Eoption_2Eoption(A_27a)),A_27b)))
     => p(ap(c_2Ebool_2EDATATYPE(A_27b),ap(ap(V0option,c_2Eoption_2ENONE(A_27a)),c_2Eoption_2ESOME(A_27a)))) ) ).

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