ITP001 Axioms: ITP082_5.ax


%------------------------------------------------------------------------------
% File     : ITP082_5 : TPTP v8.2.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    : container_2.ax [Gau20]
%          : HL4082_5.ax [TPAP]

% Status   : Satisfiable
% Syntax   : Number of formulae    :   71 (   7 unt;  16 typ;   0 def)
%            Number of atoms       :  846 (  46 equ)
%            Maximal formula atoms :    8 (  11 avg)
%            Number of connectives :  133 (   2   ~;   0   |;   8   &)
%                                         (  13 <=>; 110  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   16 (   7 avg)
%            Maximal term depth    :    2 (   1 avg)
%            Number of FOOLs       :  660 ( 660 fml;   0 var)
%            Number of types       :    1 (   0 usr)
%            Number of type conns  :   47 (  16   >;  31   *;   0   +;   0  <<)
%            Number of predicates  :   65 (  64 usr;   8 prp; 0-2 aty)
%            Number of functors    :   16 (  16 usr;   0 con; 1-6 aty)
%            Number of variables   :  180 ( 179   !;   1   ?; 180   :)
% SPC      : TF0_SAT_EQU_NAR

% Comments :
% Bugfixes : v7.5.0 - Fixes to the axioms.
%------------------------------------------------------------------------------
tff(tp_c_2Econtainer_2EBAG__OF__FMAP,type,
    c_2Econtainer_2EBAG__OF__FMAP: ( del * del * del ) > $i ).

tff(mem_c_2Econtainer_2EBAG__OF__FMAP,axiom,
    ! [A_27a: del,A_27b: del,A_27c: del] : mem(c_2Econtainer_2EBAG__OF__FMAP(A_27a,A_27b,A_27c),arr(arr(A_27b,arr(A_27c,A_27a)),arr(ty_2Efinite__map_2Efmap(A_27b,A_27c),arr(A_27a,ty_2Enum_2Enum)))) ).

tff(tp_c_2Econtainer_2EBAG__TO__LIST,type,
    c_2Econtainer_2EBAG__TO__LIST: del > $i ).

tff(mem_c_2Econtainer_2EBAG__TO__LIST,axiom,
    ! [A_27a: del] : mem(c_2Econtainer_2EBAG__TO__LIST(A_27a),arr(arr(A_27a,ty_2Enum_2Enum),ty_2Elist_2Elist(A_27a))) ).

tff(tp_c_2Econtainer_2ELIST__TO__BAG,type,
    c_2Econtainer_2ELIST__TO__BAG: del > $i ).

tff(mem_c_2Econtainer_2ELIST__TO__BAG,axiom,
    ! [A_27a: del] : mem(c_2Econtainer_2ELIST__TO__BAG(A_27a),arr(ty_2Elist_2Elist(A_27a),arr(A_27a,ty_2Enum_2Enum))) ).

tff(tp_c_2Econtainer_2Emlt__list,type,
    c_2Econtainer_2Emlt__list: del > $i ).

tff(mem_c_2Econtainer_2Emlt__list,axiom,
    ! [A_27a: del] : mem(c_2Econtainer_2Emlt__list(A_27a),arr(arr(A_27a,arr(A_27a,bool)),arr(ty_2Elist_2Elist(A_27a),arr(ty_2Elist_2Elist(A_27a),bool)))) ).

tff(conj_thm_2Econtainer_2ESET__TO__LIST__THM,axiom,
    ! [A_27a: del,V0s: $i] :
      ( mem(V0s,arr(A_27a,bool))
     => ( p(ap(c_2Epred__set_2EFINITE(A_27a),V0s))
       => ( ap(c_2Elist_2ESET__TO__LIST(A_27a),V0s) = ap(ap(ap(c_2Ebool_2ECOND(ty_2Elist_2Elist(A_27a)),ap(ap(c_2Emin_2E_3D(arr(A_27a,bool)),V0s),c_2Epred__set_2EEMPTY(A_27a))),c_2Elist_2ENIL(A_27a)),ap(ap(c_2Elist_2ECONS(A_27a),ap(c_2Epred__set_2ECHOICE(A_27a),V0s)),ap(c_2Elist_2ESET__TO__LIST(A_27a),ap(c_2Epred__set_2EREST(A_27a),V0s)))) ) ) ) ).

tff(conj_thm_2Econtainer_2ESET__TO__LIST__IND,axiom,
    ! [A_27a: del,V0P: $i] :
      ( mem(V0P,arr(arr(A_27a,bool),bool))
     => ( ! [V1s: $i] :
            ( mem(V1s,arr(A_27a,bool))
           => ( ( ( p(ap(c_2Epred__set_2EFINITE(A_27a),V1s))
                  & ( V1s != c_2Epred__set_2EEMPTY(A_27a) ) )
               => p(ap(V0P,ap(c_2Epred__set_2EREST(A_27a),V1s))) )
             => p(ap(V0P,V1s)) ) )
       => ! [V2v: $i] :
            ( mem(V2v,arr(A_27a,bool))
           => p(ap(V0P,V2v)) ) ) ) ).

tff(conj_thm_2Econtainer_2ELIST__TO__SET__THM,axiom,
    ! [A_27a: del,A_27b: del,V0h: $i] :
      ( mem(V0h,A_27b)
     => ! [V1t: $i] :
          ( mem(V1t,ty_2Elist_2Elist(A_27b))
         => ( ( ap(c_2Elist_2ELIST__TO__SET(A_27a),c_2Elist_2ENIL(A_27a)) = c_2Epred__set_2EEMPTY(A_27a) )
            & ( ap(c_2Elist_2ELIST__TO__SET(A_27b),ap(ap(c_2Elist_2ECONS(A_27b),V0h),V1t)) = ap(ap(c_2Epred__set_2EINSERT(A_27b),V0h),ap(c_2Elist_2ELIST__TO__SET(A_27b),V1t)) ) ) ) ) ).

tff(conj_thm_2Econtainer_2ESET__TO__LIST__INV,axiom,
    ! [A_27a: del,V0s: $i] :
      ( mem(V0s,arr(A_27a,bool))
     => ( p(ap(c_2Epred__set_2EFINITE(A_27a),V0s))
       => ( ap(c_2Elist_2ELIST__TO__SET(A_27a),ap(c_2Elist_2ESET__TO__LIST(A_27a),V0s)) = V0s ) ) ) ).

tff(conj_thm_2Econtainer_2ESET__TO__LIST__CARD,axiom,
    ! [A_27a: del,V0s: $i] :
      ( mem(V0s,arr(A_27a,bool))
     => ( p(ap(c_2Epred__set_2EFINITE(A_27a),V0s))
       => ( surj__ty_2Enum_2Enum(ap(c_2Elist_2ELENGTH(A_27a),ap(c_2Elist_2ESET__TO__LIST(A_27a),V0s))) = surj__ty_2Enum_2Enum(ap(c_2Epred__set_2ECARD(A_27a),V0s)) ) ) ) ).

tff(conj_thm_2Econtainer_2ESET__TO__LIST__IN__MEM,axiom,
    ! [A_27a: del,V0s: $i] :
      ( mem(V0s,arr(A_27a,bool))
     => ( p(ap(c_2Epred__set_2EFINITE(A_27a),V0s))
       => ! [V1x: $i] :
            ( mem(V1x,A_27a)
           => ( p(ap(ap(c_2Ebool_2EIN(A_27a),V1x),V0s))
            <=> p(ap(ap(c_2Ebool_2EIN(A_27a),V1x),ap(c_2Elist_2ELIST__TO__SET(A_27a),ap(c_2Elist_2ESET__TO__LIST(A_27a),V0s)))) ) ) ) ) ).

tff(conj_thm_2Econtainer_2EMEM__SET__TO__LIST,axiom,
    ! [A_27a: del,V0s: $i] :
      ( mem(V0s,arr(A_27a,bool))
     => ( p(ap(c_2Epred__set_2EFINITE(A_27a),V0s))
       => ! [V1x: $i] :
            ( mem(V1x,A_27a)
           => ( p(ap(ap(c_2Ebool_2EIN(A_27a),V1x),ap(c_2Elist_2ELIST__TO__SET(A_27a),ap(c_2Elist_2ESET__TO__LIST(A_27a),V0s))))
            <=> p(ap(ap(c_2Ebool_2EIN(A_27a),V1x),V0s)) ) ) ) ) ).

tff(conj_thm_2Econtainer_2ESET__TO__LIST__SING,axiom,
    ! [A_27a: del,V0x: $i] :
      ( mem(V0x,A_27a)
     => ( ap(c_2Elist_2ESET__TO__LIST(A_27a),ap(ap(c_2Epred__set_2EINSERT(A_27a),V0x),c_2Epred__set_2EEMPTY(A_27a))) = ap(ap(c_2Elist_2ECONS(A_27a),V0x),c_2Elist_2ENIL(A_27a)) ) ) ).

tff(conj_thm_2Econtainer_2EUNION__APPEND,axiom,
    ! [A_27a: del,V0l1: $i] :
      ( mem(V0l1,ty_2Elist_2Elist(A_27a))
     => ! [V1l2: $i] :
          ( mem(V1l2,ty_2Elist_2Elist(A_27a))
         => ( ap(ap(c_2Epred__set_2EUNION(A_27a),ap(c_2Elist_2ELIST__TO__SET(A_27a),V0l1)),ap(c_2Elist_2ELIST__TO__SET(A_27a),V1l2)) = ap(c_2Elist_2ELIST__TO__SET(A_27a),ap(ap(c_2Elist_2EAPPEND(A_27a),V0l1),V1l2)) ) ) ) ).

tff(conj_thm_2Econtainer_2ELIST__TO__SET__APPEND,axiom,
    ! [A_27a: del,V0l1: $i] :
      ( mem(V0l1,ty_2Elist_2Elist(A_27a))
     => ! [V1l2: $i] :
          ( mem(V1l2,ty_2Elist_2Elist(A_27a))
         => ( ap(c_2Elist_2ELIST__TO__SET(A_27a),ap(ap(c_2Elist_2EAPPEND(A_27a),V0l1),V1l2)) = ap(ap(c_2Epred__set_2EUNION(A_27a),ap(c_2Elist_2ELIST__TO__SET(A_27a),V0l1)),ap(c_2Elist_2ELIST__TO__SET(A_27a),V1l2)) ) ) ) ).

tff(conj_thm_2Econtainer_2EFINITE__LIST__TO__SET,axiom,
    ! [A_27a: del,V0l: $i] :
      ( mem(V0l,ty_2Elist_2Elist(A_27a))
     => p(ap(c_2Epred__set_2EFINITE(A_27a),ap(c_2Elist_2ELIST__TO__SET(A_27a),V0l))) ) ).

tff(ax_thm_2Econtainer_2ELIST__TO__BAG__def,axiom,
    ! [A_27a: del] :
      ( ( ap(c_2Econtainer_2ELIST__TO__BAG(A_27a),c_2Elist_2ENIL(A_27a)) = c_2Ebag_2EEMPTY__BAG(A_27a) )
      & ! [V0h: $i] :
          ( mem(V0h,A_27a)
         => ! [V1t: $i] :
              ( mem(V1t,ty_2Elist_2Elist(A_27a))
             => ( ap(c_2Econtainer_2ELIST__TO__BAG(A_27a),ap(ap(c_2Elist_2ECONS(A_27a),V0h),V1t)) = ap(ap(c_2Ebag_2EBAG__INSERT(A_27a),V0h),ap(c_2Econtainer_2ELIST__TO__BAG(A_27a),V1t)) ) ) ) ) ).

tff(conj_thm_2Econtainer_2ELIST__TO__BAG__alt,axiom,
    ! [A_27a: del,V0l: $i] :
      ( mem(V0l,ty_2Elist_2Elist(A_27a))
     => ! [V1x: $i] :
          ( mem(V1x,A_27a)
         => ( surj__ty_2Enum_2Enum(ap(ap(c_2Econtainer_2ELIST__TO__BAG(A_27a),V0l),V1x)) = surj__ty_2Enum_2Enum(ap(c_2Elist_2ELENGTH(A_27a),ap(ap(c_2Elist_2EFILTER(A_27a),ap(c_2Emin_2E_3D(A_27a),V1x)),V0l))) ) ) ) ).

tff(lamtp_f2083,type,
    f2083: ( del * $i ) > $i ).

tff(lameq_f2083,axiom,
    ! [A_27a: del,V0R: $i] :
      ( mem(V0R,arr(arr(A_27a,ty_2Enum_2Enum),arr(arr(A_27a,ty_2Enum_2Enum),bool)))
     => ! [V1bag: $i] : ( ap(f2083(A_27a,V0R),V1bag) = ap(ap(c_2Emin_2E_3D_3D_3E,ap(ap(c_2Ebool_2E_2F_5C,ap(c_2Ebag_2EFINITE__BAG(A_27a),V1bag)),ap(c_2Ebool_2E_7E,ap(ap(c_2Emin_2E_3D(arr(A_27a,ty_2Enum_2Enum)),V1bag),c_2Ebag_2EEMPTY__BAG(A_27a))))),ap(ap(V0R,ap(c_2Ebag_2EBAG__REST(A_27a),V1bag)),V1bag)) ) ) ).

tff(lamtp_f2084,type,
    f2084: del > $i ).

tff(lameq_f2084,axiom,
    ! [A_27a: del,V0R: $i] : ( ap(f2084(A_27a),V0R) = ap(ap(c_2Ebool_2E_2F_5C,ap(c_2Erelation_2EWF(arr(A_27a,ty_2Enum_2Enum)),V0R)),ap(c_2Ebool_2E_21(arr(A_27a,ty_2Enum_2Enum)),f2083(A_27a,V0R))) ) ).

tff(lamtp_f2085,type,
    f2085: ( del * $i ) > $i ).

tff(lameq_f2085,axiom,
    ! [A_27a: del,V2BAG__TO__LIST: $i] :
      ( mem(V2BAG__TO__LIST,arr(arr(A_27a,ty_2Enum_2Enum),ty_2Elist_2Elist(A_27a)))
     => ! [V3a: $i] : ( ap(f2085(A_27a,V2BAG__TO__LIST),V3a) = ap(c_2Ecombin_2EI(ty_2Elist_2Elist(A_27a)),ap(ap(ap(c_2Ebool_2ECOND(ty_2Elist_2Elist(A_27a)),ap(c_2Ebag_2EFINITE__BAG(A_27a),V3a)),ap(ap(ap(c_2Ebool_2ECOND(ty_2Elist_2Elist(A_27a)),ap(ap(c_2Emin_2E_3D(arr(A_27a,ty_2Enum_2Enum)),V3a),c_2Ebag_2EEMPTY__BAG(A_27a))),c_2Elist_2ENIL(A_27a)),ap(ap(c_2Elist_2ECONS(A_27a),ap(c_2Ebag_2EBAG__CHOICE(A_27a),V3a)),ap(V2BAG__TO__LIST,ap(c_2Ebag_2EBAG__REST(A_27a),V3a))))),c_2Ebool_2EARB(ty_2Elist_2Elist(A_27a)))) ) ) ).

tff(lamtp_f2086,type,
    f2086: del > $i ).

tff(lameq_f2086,axiom,
    ! [A_27a: del,V2BAG__TO__LIST: $i] : ( ap(f2086(A_27a),V2BAG__TO__LIST) = f2085(A_27a,V2BAG__TO__LIST) ) ).

tff(ax_thm_2Econtainer_2EBAG__TO__LIST__primitive__def,axiom,
    ! [A_27a: del] : ( c_2Econtainer_2EBAG__TO__LIST(A_27a) = ap(ap(c_2Erelation_2EWFREC(arr(A_27a,ty_2Enum_2Enum),ty_2Elist_2Elist(A_27a)),ap(c_2Emin_2E_40(arr(arr(A_27a,ty_2Enum_2Enum),arr(arr(A_27a,ty_2Enum_2Enum),bool))),f2084(A_27a))),f2086(A_27a)) ) ).

tff(conj_thm_2Econtainer_2EBAG__TO__LIST__THM,axiom,
    ! [A_27a: del,V0bag: $i] :
      ( mem(V0bag,arr(A_27a,ty_2Enum_2Enum))
     => ( p(ap(c_2Ebag_2EFINITE__BAG(A_27a),V0bag))
       => ( ap(c_2Econtainer_2EBAG__TO__LIST(A_27a),V0bag) = ap(ap(ap(c_2Ebool_2ECOND(ty_2Elist_2Elist(A_27a)),ap(ap(c_2Emin_2E_3D(arr(A_27a,ty_2Enum_2Enum)),V0bag),c_2Ebag_2EEMPTY__BAG(A_27a))),c_2Elist_2ENIL(A_27a)),ap(ap(c_2Elist_2ECONS(A_27a),ap(c_2Ebag_2EBAG__CHOICE(A_27a),V0bag)),ap(c_2Econtainer_2EBAG__TO__LIST(A_27a),ap(c_2Ebag_2EBAG__REST(A_27a),V0bag)))) ) ) ) ).

tff(conj_thm_2Econtainer_2EBAG__TO__LIST__IND,axiom,
    ! [A_27a: del,V0P: $i] :
      ( mem(V0P,arr(arr(A_27a,ty_2Enum_2Enum),bool))
     => ( ! [V1bag: $i] :
            ( mem(V1bag,arr(A_27a,ty_2Enum_2Enum))
           => ( ( ( p(ap(c_2Ebag_2EFINITE__BAG(A_27a),V1bag))
                  & ( V1bag != c_2Ebag_2EEMPTY__BAG(A_27a) ) )
               => p(ap(V0P,ap(c_2Ebag_2EBAG__REST(A_27a),V1bag))) )
             => p(ap(V0P,V1bag)) ) )
       => ! [V2v: $i] :
            ( mem(V2v,arr(A_27a,ty_2Enum_2Enum))
           => p(ap(V0P,V2v)) ) ) ) ).

tff(conj_thm_2Econtainer_2EBAG__TO__LIST__INV,axiom,
    ! [A_27a: del,V0b: $i] :
      ( mem(V0b,arr(A_27a,ty_2Enum_2Enum))
     => ( p(ap(c_2Ebag_2EFINITE__BAG(A_27a),V0b))
       => ( ap(c_2Econtainer_2ELIST__TO__BAG(A_27a),ap(c_2Econtainer_2EBAG__TO__LIST(A_27a),V0b)) = V0b ) ) ) ).

tff(conj_thm_2Econtainer_2EBAG__IN__MEM,axiom,
    ! [A_27a: del,V0b: $i] :
      ( mem(V0b,arr(A_27a,ty_2Enum_2Enum))
     => ( p(ap(c_2Ebag_2EFINITE__BAG(A_27a),V0b))
       => ! [V1x: $i] :
            ( mem(V1x,A_27a)
           => ( p(ap(ap(c_2Ebag_2EBAG__IN(A_27a),V1x),V0b))
            <=> p(ap(ap(c_2Ebool_2EIN(A_27a),V1x),ap(c_2Elist_2ELIST__TO__SET(A_27a),ap(c_2Econtainer_2EBAG__TO__LIST(A_27a),V0b)))) ) ) ) ) ).

tff(conj_thm_2Econtainer_2EMEM__BAG__TO__LIST,axiom,
    ! [A_27a: del,V0b: $i] :
      ( mem(V0b,arr(A_27a,ty_2Enum_2Enum))
     => ( p(ap(c_2Ebag_2EFINITE__BAG(A_27a),V0b))
       => ! [V1x: $i] :
            ( mem(V1x,A_27a)
           => ( p(ap(ap(c_2Ebool_2EIN(A_27a),V1x),ap(c_2Elist_2ELIST__TO__SET(A_27a),ap(c_2Econtainer_2EBAG__TO__LIST(A_27a),V0b))))
            <=> p(ap(ap(c_2Ebag_2EBAG__IN(A_27a),V1x),V0b)) ) ) ) ) ).

tff(conj_thm_2Econtainer_2EFINITE__LIST__TO__BAG,axiom,
    ! [A_27a: del,V0ls: $i] :
      ( mem(V0ls,ty_2Elist_2Elist(A_27a))
     => p(ap(c_2Ebag_2EFINITE__BAG(A_27a),ap(c_2Econtainer_2ELIST__TO__BAG(A_27a),V0ls))) ) ).

tff(conj_thm_2Econtainer_2EEVERY__LIST__TO__BAG,axiom,
    ! [A_27a: del,V0P: $i] :
      ( mem(V0P,arr(A_27a,bool))
     => ! [V1ls: $i] :
          ( mem(V1ls,ty_2Elist_2Elist(A_27a))
         => ( p(ap(ap(c_2Ebag_2EBAG__EVERY(A_27a),V0P),ap(c_2Econtainer_2ELIST__TO__BAG(A_27a),V1ls)))
          <=> p(ap(ap(c_2Elist_2EEVERY(A_27a),V0P),V1ls)) ) ) ) ).

tff(conj_thm_2Econtainer_2ELIST__TO__BAG__APPEND,axiom,
    ! [A_27a: del,V0l1: $i] :
      ( mem(V0l1,ty_2Elist_2Elist(A_27a))
     => ! [V1l2: $i] :
          ( mem(V1l2,ty_2Elist_2Elist(A_27a))
         => ( ap(c_2Econtainer_2ELIST__TO__BAG(A_27a),ap(ap(c_2Elist_2EAPPEND(A_27a),V0l1),V1l2)) = ap(ap(c_2Ebag_2EBAG__UNION(A_27a),ap(c_2Econtainer_2ELIST__TO__BAG(A_27a),V0l1)),ap(c_2Econtainer_2ELIST__TO__BAG(A_27a),V1l2)) ) ) ) ).

tff(conj_thm_2Econtainer_2ELIST__TO__BAG__MAP,axiom,
    ! [A_27a: del,A_27b: del,V0f: $i] :
      ( mem(V0f,arr(A_27b,A_27a))
     => ! [V1b: $i] :
          ( mem(V1b,ty_2Elist_2Elist(A_27b))
         => ( ap(c_2Econtainer_2ELIST__TO__BAG(A_27a),ap(ap(c_2Elist_2EMAP(A_27b,A_27a),V0f),V1b)) = ap(ap(c_2Ebag_2EBAG__IMAGE(A_27a,A_27b),V0f),ap(c_2Econtainer_2ELIST__TO__BAG(A_27b),V1b)) ) ) ) ).

tff(conj_thm_2Econtainer_2ELIST__TO__BAG__FILTER,axiom,
    ! [A_27a: del,V0f: $i] :
      ( mem(V0f,arr(A_27a,bool))
     => ! [V1b: $i] :
          ( mem(V1b,ty_2Elist_2Elist(A_27a))
         => ( ap(c_2Econtainer_2ELIST__TO__BAG(A_27a),ap(ap(c_2Elist_2EFILTER(A_27a),V0f),V1b)) = ap(ap(c_2Ebag_2EBAG__FILTER(A_27a),V0f),ap(c_2Econtainer_2ELIST__TO__BAG(A_27a),V1b)) ) ) ) ).

tff(conj_thm_2Econtainer_2EINN__LIST__TO__BAG,axiom,
    ! [A_27a: del,V0n: tp__ty_2Enum_2Enum,V1h: $i] :
      ( mem(V1h,A_27a)
     => ! [V2l: $i] :
          ( mem(V2l,ty_2Elist_2Elist(A_27a))
         => ( p(ap(ap(ap(c_2Ebag_2EBAG__INN(A_27a),V1h),inj__ty_2Enum_2Enum(V0n)),ap(c_2Econtainer_2ELIST__TO__BAG(A_27a),V2l)))
          <=> p(ap(ap(c_2Earithmetic_2E_3E_3D,ap(c_2Elist_2ELENGTH(A_27a),ap(ap(c_2Elist_2EFILTER(A_27a),ap(c_2Emin_2E_3D(A_27a),V1h)),V2l))),inj__ty_2Enum_2Enum(V0n))) ) ) ) ).

tff(conj_thm_2Econtainer_2EIN__LIST__TO__BAG,axiom,
    ! [A_27a: del,V0h: $i] :
      ( mem(V0h,A_27a)
     => ! [V1l: $i] :
          ( mem(V1l,ty_2Elist_2Elist(A_27a))
         => ( p(ap(ap(c_2Ebag_2EBAG__IN(A_27a),V0h),ap(c_2Econtainer_2ELIST__TO__BAG(A_27a),V1l)))
          <=> p(ap(ap(c_2Ebool_2EIN(A_27a),V0h),ap(c_2Elist_2ELIST__TO__SET(A_27a),V1l))) ) ) ) ).

tff(conj_thm_2Econtainer_2ELIST__TO__BAG__DISTINCT,axiom,
    ! [A_27a: del,V0b: $i] :
      ( mem(V0b,ty_2Elist_2Elist(A_27a))
     => ( p(ap(c_2Ebag_2EBAG__ALL__DISTINCT(A_27a),ap(c_2Econtainer_2ELIST__TO__BAG(A_27a),V0b)))
      <=> p(ap(c_2Elist_2EALL__DISTINCT(A_27a),V0b)) ) ) ).

tff(conj_thm_2Econtainer_2ELIST__TO__BAG__EQ__EMPTY,axiom,
    ! [A_27a: del,V0l: $i] :
      ( mem(V0l,ty_2Elist_2Elist(A_27a))
     => ( ( ap(c_2Econtainer_2ELIST__TO__BAG(A_27a),V0l) = c_2Ebag_2EEMPTY__BAG(A_27a) )
      <=> ( V0l = c_2Elist_2ENIL(A_27a) ) ) ) ).

tff(conj_thm_2Econtainer_2EPERM__LIST__TO__BAG,axiom,
    ! [A_27a: del,V0l1: $i] :
      ( mem(V0l1,ty_2Elist_2Elist(A_27a))
     => ! [V1l2: $i] :
          ( mem(V1l2,ty_2Elist_2Elist(A_27a))
         => ( ( ap(c_2Econtainer_2ELIST__TO__BAG(A_27a),V0l1) = ap(c_2Econtainer_2ELIST__TO__BAG(A_27a),V1l2) )
          <=> p(ap(ap(c_2Esorting_2EPERM(A_27a),V0l1),V1l2)) ) ) ) ).

tff(conj_thm_2Econtainer_2ECARD__LIST__TO__BAG,axiom,
    ! [A_27a: del,V0ls: $i] :
      ( mem(V0ls,ty_2Elist_2Elist(A_27a))
     => ( surj__ty_2Enum_2Enum(ap(c_2Ebag_2EBAG__CARD(A_27a),ap(c_2Econtainer_2ELIST__TO__BAG(A_27a),V0ls))) = surj__ty_2Enum_2Enum(ap(c_2Elist_2ELENGTH(A_27a),V0ls)) ) ) ).

tff(conj_thm_2Econtainer_2EBAG__TO__LIST__CARD,axiom,
    ! [A_27a: del,V0b: $i] :
      ( mem(V0b,arr(A_27a,ty_2Enum_2Enum))
     => ( p(ap(c_2Ebag_2EFINITE__BAG(A_27a),V0b))
       => ( surj__ty_2Enum_2Enum(ap(c_2Elist_2ELENGTH(A_27a),ap(c_2Econtainer_2EBAG__TO__LIST(A_27a),V0b))) = surj__ty_2Enum_2Enum(ap(c_2Ebag_2EBAG__CARD(A_27a),V0b)) ) ) ) ).

tff(conj_thm_2Econtainer_2EBAG__TO__LIST__EQ__NIL,axiom,
    ! [A_27a: del,V0b: $i] :
      ( mem(V0b,arr(A_27a,ty_2Enum_2Enum))
     => ( p(ap(c_2Ebag_2EFINITE__BAG(A_27a),V0b))
       => ( ( ( c_2Elist_2ENIL(A_27a) = ap(c_2Econtainer_2EBAG__TO__LIST(A_27a),V0b) )
          <=> ( V0b = c_2Ebag_2EEMPTY__BAG(A_27a) ) )
          & ( ( ap(c_2Econtainer_2EBAG__TO__LIST(A_27a),V0b) = c_2Elist_2ENIL(A_27a) )
          <=> ( V0b = c_2Ebag_2EEMPTY__BAG(A_27a) ) ) ) ) ) ).

tff(conj_thm_2Econtainer_2ELIST__ELEM__COUNT__LIST__TO__BAG,axiom,
    ! [A_27a: del,V0e: $i] :
      ( mem(V0e,A_27a)
     => ! [V1ls: $i] :
          ( mem(V1ls,ty_2Elist_2Elist(A_27a))
         => ( surj__ty_2Enum_2Enum(ap(ap(c_2Erich__list_2ELIST__ELEM__COUNT(A_27a),V0e),V1ls)) = surj__ty_2Enum_2Enum(ap(ap(c_2Econtainer_2ELIST__TO__BAG(A_27a),V1ls),V0e)) ) ) ) ).

tff(lamtp_f2087,type,
    f2087: ( del * $i * $i * $i ) > $i ).

tff(lameq_f2087,axiom,
    ! [A_27a: del,V3h: $i] :
      ( mem(V3h,A_27a)
     => ! [V0R: $i] :
          ( mem(V0R,arr(A_27a,arr(A_27a,bool)))
         => ! [V5list: $i] :
              ( mem(V5list,ty_2Elist_2Elist(A_27a))
             => ! [V6e: $i] : ( ap(f2087(A_27a,V3h,V0R,V5list),V6e) = ap(ap(c_2Emin_2E_3D_3D_3E,ap(ap(c_2Ebool_2EIN(A_27a),V6e),ap(c_2Elist_2ELIST__TO__SET(A_27a),V5list))),ap(ap(V0R,V6e),V3h)) ) ) ) ) ).

tff(lamtp_f2088,type,
    f2088: ( del * $i * $i * $i * $i * $i ) > $i ).

tff(lameq_f2088,axiom,
    ! [A_27a: del,V3h: $i] :
      ( mem(V3h,A_27a)
     => ! [V0R: $i] :
          ( mem(V0R,arr(A_27a,arr(A_27a,bool)))
         => ! [V2l2: $i] :
              ( mem(V2l2,ty_2Elist_2Elist(A_27a))
             => ! [V1l1: $i] :
                  ( mem(V1l1,ty_2Elist_2Elist(A_27a))
                 => ! [V4t: $i] :
                      ( mem(V4t,ty_2Elist_2Elist(A_27a))
                     => ! [V5list: $i] : ( ap(f2088(A_27a,V3h,V0R,V2l2,V1l1,V4t),V5list) = ap(ap(c_2Ebool_2E_2F_5C,ap(ap(c_2Emin_2E_3D(ty_2Elist_2Elist(A_27a)),V1l1),ap(ap(c_2Elist_2EAPPEND(A_27a),V5list),V4t))),ap(ap(c_2Ebool_2E_2F_5C,ap(ap(c_2Emin_2E_3D(ty_2Elist_2Elist(A_27a)),V2l2),ap(ap(c_2Elist_2ECONS(A_27a),V3h),V4t))),ap(c_2Ebool_2E_21(A_27a),f2087(A_27a,V3h,V0R,V5list)))) ) ) ) ) ) ) ).

tff(lamtp_f2089,type,
    f2089: ( del * $i * $i * $i * $i ) > $i ).

tff(lameq_f2089,axiom,
    ! [A_27a: del,V1l1: $i] :
      ( mem(V1l1,ty_2Elist_2Elist(A_27a))
     => ! [V2l2: $i] :
          ( mem(V2l2,ty_2Elist_2Elist(A_27a))
         => ! [V0R: $i] :
              ( mem(V0R,arr(A_27a,arr(A_27a,bool)))
             => ! [V3h: $i] :
                  ( mem(V3h,A_27a)
                 => ! [V4t: $i] : ( ap(f2089(A_27a,V1l1,V2l2,V0R,V3h),V4t) = ap(c_2Ebool_2E_3F(ty_2Elist_2Elist(A_27a)),f2088(A_27a,V3h,V0R,V2l2,V1l1,V4t)) ) ) ) ) ) ).

tff(lamtp_f2090,type,
    f2090: ( del * $i * $i * $i ) > $i ).

tff(lameq_f2090,axiom,
    ! [A_27a: del,V0R: $i] :
      ( mem(V0R,arr(A_27a,arr(A_27a,bool)))
     => ! [V2l2: $i] :
          ( mem(V2l2,ty_2Elist_2Elist(A_27a))
         => ! [V1l1: $i] :
              ( mem(V1l1,ty_2Elist_2Elist(A_27a))
             => ! [V3h: $i] : ( ap(f2090(A_27a,V0R,V2l2,V1l1),V3h) = ap(c_2Ebool_2E_3F(ty_2Elist_2Elist(A_27a)),f2089(A_27a,V1l1,V2l2,V0R,V3h)) ) ) ) ) ).

tff(lamtp_f2091,type,
    f2091: ( del * $i * $i ) > $i ).

tff(lameq_f2091,axiom,
    ! [A_27a: del,V1l1: $i] :
      ( mem(V1l1,ty_2Elist_2Elist(A_27a))
     => ! [V0R: $i] :
          ( mem(V0R,arr(A_27a,arr(A_27a,bool)))
         => ! [V2l2: $i] : ( ap(f2091(A_27a,V1l1,V0R),V2l2) = ap(c_2Ebool_2E_3F(A_27a),f2090(A_27a,V0R,V2l2,V1l1)) ) ) ) ).

tff(lamtp_f2092,type,
    f2092: ( del * $i ) > $i ).

tff(lameq_f2092,axiom,
    ! [A_27a: del,V0R: $i] :
      ( mem(V0R,arr(A_27a,arr(A_27a,bool)))
     => ! [V1l1: $i] : ( ap(f2092(A_27a,V0R),V1l1) = f2091(A_27a,V1l1,V0R) ) ) ).

tff(ax_thm_2Econtainer_2Emlt__list__def,axiom,
    ! [A_27a: del,V0R: $i] :
      ( mem(V0R,arr(A_27a,arr(A_27a,bool)))
     => ( ap(c_2Econtainer_2Emlt__list(A_27a),V0R) = f2092(A_27a,V0R) ) ) ).

tff(conj_thm_2Econtainer_2EWF__mlt__list,axiom,
    ! [A_27a: del,V0R: $i] :
      ( mem(V0R,arr(A_27a,arr(A_27a,bool)))
     => ( p(ap(c_2Erelation_2EWF(A_27a),V0R))
       => p(ap(c_2Erelation_2EWF(ty_2Elist_2Elist(A_27a)),ap(c_2Econtainer_2Emlt__list(A_27a),V0R))) ) ) ).

tff(lamtp_f2093,type,
    f2093: ( del * del * del * $i * $i * $i ) > $i ).

tff(lameq_f2093,axiom,
    ! [A_27c: del,A_27a: del,A_27b: del,V2x: $i] :
      ( mem(V2x,A_27a)
     => ! [V0f: $i] :
          ( mem(V0f,arr(A_27b,arr(A_27c,A_27a)))
         => ! [V1b: $i] :
              ( mem(V1b,ty_2Efinite__map_2Efmap(A_27b,A_27c))
             => ! [V3k: $i] : ( ap(f2093(A_27c,A_27a,A_27b,V2x,V0f,V1b),V3k) = ap(ap(c_2Ebool_2E_2F_5C,ap(ap(c_2Ebool_2EIN(A_27b),V3k),ap(c_2Efinite__map_2EFDOM(A_27b,A_27c),V1b))),ap(ap(c_2Emin_2E_3D(A_27a),V2x),ap(ap(V0f,V3k),ap(ap(c_2Efinite__map_2EFAPPLY(A_27b,A_27c),V1b),V3k)))) ) ) ) ) ).

tff(lamtp_f2094,type,
    f2094: ( del * del * del * $i * $i ) > $i ).

tff(lameq_f2094,axiom,
    ! [A_27b: del,A_27c: del,A_27a: del,V1b: $i] :
      ( mem(V1b,ty_2Efinite__map_2Efmap(A_27b,A_27c))
     => ! [V0f: $i] :
          ( mem(V0f,arr(A_27b,arr(A_27c,A_27a)))
         => ! [V2x: $i] : ( ap(f2094(A_27b,A_27c,A_27a,V1b,V0f),V2x) = ap(c_2Epred__set_2ECARD(A_27b),f2093(A_27c,A_27a,A_27b,V2x,V0f,V1b)) ) ) ) ).

tff(ax_thm_2Econtainer_2EBAG__OF__FMAP__def,axiom,
    ! [A_27a: del,A_27b: del,A_27c: del,V0f: $i] :
      ( mem(V0f,arr(A_27b,arr(A_27c,A_27a)))
     => ! [V1b: $i] :
          ( mem(V1b,ty_2Efinite__map_2Efmap(A_27b,A_27c))
         => ( ap(ap(c_2Econtainer_2EBAG__OF__FMAP(A_27a,A_27b,A_27c),V0f),V1b) = f2094(A_27b,A_27c,A_27a,V1b,V0f) ) ) ) ).

tff(conj_thm_2Econtainer_2EBAG__OF__FMAP__THM,axiom,
    ! [A_27a: del,A_27b: del,A_27c: del,A_27d: del,A_27e: del,A_27f: del] :
      ( ! [V0f: $i] :
          ( mem(V0f,arr(A_27a,arr(A_27b,A_27c)))
         => ( ap(ap(c_2Econtainer_2EBAG__OF__FMAP(A_27c,A_27a,A_27b),V0f),c_2Efinite__map_2EFEMPTY(A_27a,A_27b)) = c_2Ebag_2EEMPTY__BAG(A_27c) ) )
      & ! [V1f: $i] :
          ( mem(V1f,arr(A_27d,arr(A_27e,A_27f)))
         => ! [V2b: $i] :
              ( mem(V2b,ty_2Efinite__map_2Efmap(A_27d,A_27e))
             => ! [V3k: $i] :
                  ( mem(V3k,A_27d)
                 => ! [V4v: $i] :
                      ( mem(V4v,A_27e)
                     => ( ap(ap(c_2Econtainer_2EBAG__OF__FMAP(A_27f,A_27d,A_27e),V1f),ap(ap(c_2Efinite__map_2EFUPDATE(A_27d,A_27e),V2b),ap(ap(c_2Epair_2E_2C(A_27d,A_27e),V3k),V4v))) = ap(ap(c_2Ebag_2EBAG__INSERT(A_27f),ap(ap(V1f,V3k),V4v)),ap(ap(c_2Econtainer_2EBAG__OF__FMAP(A_27f,A_27d,A_27e),V1f),ap(ap(c_2Efinite__map_2Efdomsub(A_27d,A_27e),V2b),V3k))) ) ) ) ) ) ) ).

tff(conj_thm_2Econtainer_2EBAG__IN__BAG__OF__FMAP,axiom,
    ! [A_27a: del,A_27b: del,A_27c: del,V0x: $i] :
      ( mem(V0x,A_27a)
     => ! [V1f: $i] :
          ( mem(V1f,arr(A_27b,arr(A_27c,A_27a)))
         => ! [V2b: $i] :
              ( mem(V2b,ty_2Efinite__map_2Efmap(A_27b,A_27c))
             => ( p(ap(ap(c_2Ebag_2EBAG__IN(A_27a),V0x),ap(ap(c_2Econtainer_2EBAG__OF__FMAP(A_27a,A_27b,A_27c),V1f),V2b)))
              <=> ? [V3k: $i] :
                    ( mem(V3k,A_27b)
                    & p(ap(ap(c_2Ebool_2EIN(A_27b),V3k),ap(c_2Efinite__map_2EFDOM(A_27b,A_27c),V2b)))
                    & ( V0x = ap(ap(V1f,V3k),ap(ap(c_2Efinite__map_2EFAPPLY(A_27b,A_27c),V2b),V3k)) ) ) ) ) ) ) ).

tff(conj_thm_2Econtainer_2EFINITE__BAG__OF__FMAP,axiom,
    ! [A_27a: del,A_27b: del,A_27c: del,V0f: $i] :
      ( mem(V0f,arr(A_27a,arr(A_27b,A_27c)))
     => ! [V1b: $i] :
          ( mem(V1b,ty_2Efinite__map_2Efmap(A_27a,A_27b))
         => p(ap(c_2Ebag_2EFINITE__BAG(A_27c),ap(ap(c_2Econtainer_2EBAG__OF__FMAP(A_27c,A_27a,A_27b),V0f),V1b))) ) ) ).

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