ITP001 Axioms: ITP081^5.ax
%------------------------------------------------------------------------------
% File : ITP081^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 : alist^2.ax [Gau20]
% : HL4081^5.ax [TPAP]
% Status : Satisfiable
% Syntax : Number of formulae : 66 ( 1 unt; 4 typ; 0 def)
% Number of atoms : 1418 ( 71 equ; 0 cnn)
% Maximal formula atoms : 39 ( 21 avg)
% Number of connectives : 2842 ( 3 ~; 0 |; 16 &;2644 @)
% ( 6 <=>; 173 =>; 0 <=; 0 <~>)
% Maximal formula depth : 30 ( 14 avg;2644 nst)
% Number of types : 1 ( 0 usr)
% Number of type conns : 8 ( 8 >; 0 *; 0 +; 0 <<)
% Number of symbols : 71 ( 70 usr; 66 con; 0-2 aty)
% Number of variables : 307 ( 25 ^ 282 !; 0 ?; 307 :)
% SPC : TH0_SAT_EQU_NAR
% Comments :
% Bugfixes : v7.5.0 - Fixes to the axioms.
%------------------------------------------------------------------------------
thf(tp_c_2Ealist_2EALOOKUP,type,
c_2Ealist_2EALOOKUP: del > del > $i ).
thf(mem_c_2Ealist_2EALOOKUP,axiom,
! [A_27a: del,A_27b: del] : ( mem @ ( c_2Ealist_2EALOOKUP @ A_27a @ A_27b ) @ ( arr @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27b @ A_27a ) ) @ ( arr @ A_27b @ ( ty_2Eoption_2Eoption @ A_27a ) ) ) ) ).
thf(tp_c_2Ealist_2Ealist__range,type,
c_2Ealist_2Ealist__range: del > del > $i ).
thf(mem_c_2Ealist_2Ealist__range,axiom,
! [A_27a: del,A_27b: del] : ( mem @ ( c_2Ealist_2Ealist__range @ A_27a @ A_27b ) @ ( arr @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27b @ A_27a ) ) @ ( arr @ A_27a @ bool ) ) ) ).
thf(tp_c_2Ealist_2Ealist__to__fmap,type,
c_2Ealist_2Ealist__to__fmap: del > del > $i ).
thf(mem_c_2Ealist_2Ealist__to__fmap,axiom,
! [A_27a: del,A_27b: del] : ( mem @ ( c_2Ealist_2Ealist__to__fmap @ A_27a @ A_27b ) @ ( arr @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) @ ( ty_2Efinite__map_2Efmap @ A_27a @ A_27b ) ) ) ).
thf(tp_c_2Ealist_2Efmap__to__alist,type,
c_2Ealist_2Efmap__to__alist: del > del > $i ).
thf(mem_c_2Ealist_2Efmap__to__alist,axiom,
! [A_27a: del,A_27b: del] : ( mem @ ( c_2Ealist_2Efmap__to__alist @ A_27a @ A_27b ) @ ( arr @ ( ty_2Efinite__map_2Efmap @ A_27a @ A_27b ) @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) ) ) ).
thf(ax_thm_2Ealist_2Efmap__to__alist__def,axiom,
! [A_27a: del,A_27b: del,V0s: $i] :
( ( mem @ V0s @ ( ty_2Efinite__map_2Efmap @ A_27a @ A_27b ) )
=> ( ( ap @ ( c_2Ealist_2Efmap__to__alist @ A_27a @ A_27b ) @ V0s )
= ( ap
@ ( ap @ ( c_2Elist_2EMAP @ A_27a @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) )
@ ( lam @ A_27a
@ ^ [V1k: $i] : ( ap @ ( ap @ ( c_2Epair_2E_2C @ A_27a @ A_27b ) @ V1k ) @ ( ap @ ( ap @ ( c_2Efinite__map_2EFAPPLY @ A_27a @ A_27b ) @ V0s ) @ V1k ) ) ) )
@ ( ap @ ( c_2Elist_2ESET__TO__LIST @ A_27a ) @ ( ap @ ( c_2Efinite__map_2EFDOM @ A_27a @ A_27b ) @ V0s ) ) ) ) ) ).
thf(conj_thm_2Ealist_2Efmap__to__alist__FEMPTY,axiom,
! [A_27a: del,A_27b: del] :
( ( ap @ ( c_2Ealist_2Efmap__to__alist @ A_27a @ A_27b ) @ ( c_2Efinite__map_2EFEMPTY @ A_27a @ A_27b ) )
= ( c_2Elist_2ENIL @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) ) ).
thf(ax_thm_2Ealist_2Ealist__to__fmap__def,axiom,
! [A_27a: del,A_27b: del,V0s: $i] :
( ( mem @ V0s @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) )
=> ( ( ap @ ( c_2Ealist_2Ealist__to__fmap @ A_27a @ A_27b ) @ V0s )
= ( ap
@ ( ap
@ ( ap @ ( c_2Elist_2EFOLDR @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) @ ( ty_2Efinite__map_2Efmap @ A_27a @ A_27b ) )
@ ( ap @ ( c_2Epair_2EUNCURRY @ A_27a @ A_27b @ ( arr @ ( ty_2Efinite__map_2Efmap @ A_27a @ A_27b ) @ ( ty_2Efinite__map_2Efmap @ A_27a @ A_27b ) ) )
@ ( lam @ A_27a
@ ^ [V1k: $i] :
( lam @ A_27b
@ ^ [V2v: $i] :
( lam @ ( ty_2Efinite__map_2Efmap @ A_27a @ A_27b )
@ ^ [V3f: $i] : ( ap @ ( ap @ ( c_2Efinite__map_2EFUPDATE @ A_27a @ A_27b ) @ V3f ) @ ( ap @ ( ap @ ( c_2Epair_2E_2C @ A_27a @ A_27b ) @ V1k ) @ V2v ) ) ) ) ) ) )
@ ( c_2Efinite__map_2EFEMPTY @ A_27a @ A_27b ) )
@ V0s ) ) ) ).
thf(conj_thm_2Ealist_2Ealist__to__fmap__thm,axiom,
! [A_27a: del,A_27b: del,A_27c: del,A_27d: del,V0k: $i] :
( ( mem @ V0k @ A_27c )
=> ! [V1v: $i] :
( ( mem @ V1v @ A_27d )
=> ! [V2t: $i] :
( ( mem @ V2t @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27c @ A_27d ) ) )
=> ( ( ( ap @ ( c_2Ealist_2Ealist__to__fmap @ A_27a @ A_27b ) @ ( c_2Elist_2ENIL @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) )
= ( c_2Efinite__map_2EFEMPTY @ A_27a @ A_27b ) )
& ( ( ap @ ( c_2Ealist_2Ealist__to__fmap @ A_27c @ A_27d ) @ ( ap @ ( ap @ ( c_2Elist_2ECONS @ ( ty_2Epair_2Eprod @ A_27c @ A_27d ) ) @ ( ap @ ( ap @ ( c_2Epair_2E_2C @ A_27c @ A_27d ) @ V0k ) @ V1v ) ) @ V2t ) )
= ( ap @ ( ap @ ( c_2Efinite__map_2EFUPDATE @ A_27c @ A_27d ) @ ( ap @ ( c_2Ealist_2Ealist__to__fmap @ A_27c @ A_27d ) @ V2t ) ) @ ( ap @ ( ap @ ( c_2Epair_2E_2C @ A_27c @ A_27d ) @ V0k ) @ V1v ) ) ) ) ) ) ) ).
thf(conj_thm_2Ealist_2EALOOKUP__ind,axiom,
! [A_27a: del,A_27b: del,V0P: $i] :
( ( mem @ V0P @ ( arr @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27b @ A_27a ) ) @ ( arr @ A_27b @ bool ) ) )
=> ( ( ! [V1q: $i] :
( ( mem @ V1q @ A_27b )
=> ( p @ ( ap @ ( ap @ V0P @ ( c_2Elist_2ENIL @ ( ty_2Epair_2Eprod @ A_27b @ A_27a ) ) ) @ V1q ) ) )
& ! [V2x: $i] :
( ( mem @ V2x @ A_27b )
=> ! [V3y: $i] :
( ( mem @ V3y @ A_27a )
=> ! [V4t: $i] :
( ( mem @ V4t @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27b @ A_27a ) ) )
=> ! [V5q: $i] :
( ( mem @ V5q @ A_27b )
=> ( ( ( V2x != V5q )
=> ( p @ ( ap @ ( ap @ V0P @ V4t ) @ V5q ) ) )
=> ( p @ ( ap @ ( ap @ V0P @ ( ap @ ( ap @ ( c_2Elist_2ECONS @ ( ty_2Epair_2Eprod @ A_27b @ A_27a ) ) @ ( ap @ ( ap @ ( c_2Epair_2E_2C @ A_27b @ A_27a ) @ V2x ) @ V3y ) ) @ V4t ) ) @ V5q ) ) ) ) ) ) ) )
=> ! [V6v: $i] :
( ( mem @ V6v @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27b @ A_27a ) ) )
=> ! [V7v1: $i] :
( ( mem @ V7v1 @ A_27b )
=> ( p @ ( ap @ ( ap @ V0P @ V6v ) @ V7v1 ) ) ) ) ) ) ).
thf(conj_thm_2Ealist_2EALOOKUP__def,axiom,
! [A_27a: del,A_27b: del] :
( ! [V0q: $i] :
( ( mem @ V0q @ A_27b )
=> ( ( ap @ ( ap @ ( c_2Ealist_2EALOOKUP @ A_27a @ A_27b ) @ ( c_2Elist_2ENIL @ ( ty_2Epair_2Eprod @ A_27b @ A_27a ) ) ) @ V0q )
= ( c_2Eoption_2ENONE @ A_27a ) ) )
& ! [V1y: $i] :
( ( mem @ V1y @ A_27a )
=> ! [V2x: $i] :
( ( mem @ V2x @ A_27b )
=> ! [V3t: $i] :
( ( mem @ V3t @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27b @ A_27a ) ) )
=> ! [V4q: $i] :
( ( mem @ V4q @ A_27b )
=> ( ( ap @ ( ap @ ( c_2Ealist_2EALOOKUP @ A_27a @ A_27b ) @ ( ap @ ( ap @ ( c_2Elist_2ECONS @ ( ty_2Epair_2Eprod @ A_27b @ A_27a ) ) @ ( ap @ ( ap @ ( c_2Epair_2E_2C @ A_27b @ A_27a ) @ V2x ) @ V1y ) ) @ V3t ) ) @ V4q )
= ( ap @ ( ap @ ( ap @ ( c_2Ebool_2ECOND @ ( ty_2Eoption_2Eoption @ A_27a ) ) @ ( ap @ ( ap @ ( c_2Emin_2E_3D @ A_27b ) @ V2x ) @ V4q ) ) @ ( ap @ ( c_2Eoption_2ESOME @ A_27a ) @ V1y ) ) @ ( ap @ ( ap @ ( c_2Ealist_2EALOOKUP @ A_27a @ A_27b ) @ V3t ) @ V4q ) ) ) ) ) ) ) ) ).
thf(conj_thm_2Ealist_2EALOOKUP__FAILS,axiom,
! [A_27a: del,A_27b: del,V0l: $i] :
( ( mem @ V0l @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27b @ A_27a ) ) )
=> ! [V1x: $i] :
( ( mem @ V1x @ A_27b )
=> ( ( ( ap @ ( ap @ ( c_2Ealist_2EALOOKUP @ A_27a @ A_27b ) @ V0l ) @ V1x )
= ( c_2Eoption_2ENONE @ A_27a ) )
<=> ! [V2k: $i] :
( ( mem @ V2k @ A_27b )
=> ! [V3v: $i] :
( ( mem @ V3v @ A_27a )
=> ( ( p @ ( ap @ ( ap @ ( c_2Ebool_2EIN @ ( ty_2Epair_2Eprod @ A_27b @ A_27a ) ) @ ( ap @ ( ap @ ( c_2Epair_2E_2C @ A_27b @ A_27a ) @ V2k ) @ V3v ) ) @ ( ap @ ( c_2Elist_2ELIST__TO__SET @ ( ty_2Epair_2Eprod @ A_27b @ A_27a ) ) @ V0l ) ) )
=> ( V2k != V1x ) ) ) ) ) ) ) ).
thf(conj_thm_2Ealist_2EALOOKUP__NONE,axiom,
! [A_27a: del,A_27b: del,V0l: $i] :
( ( mem @ V0l @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) )
=> ! [V1x: $i] :
( ( mem @ V1x @ A_27a )
=> ( ( ( ap @ ( ap @ ( c_2Ealist_2EALOOKUP @ A_27b @ A_27a ) @ V0l ) @ V1x )
= ( c_2Eoption_2ENONE @ A_27b ) )
<=> ~ ( p @ ( ap @ ( ap @ ( c_2Ebool_2EIN @ A_27a ) @ V1x ) @ ( ap @ ( c_2Elist_2ELIST__TO__SET @ A_27a ) @ ( ap @ ( ap @ ( c_2Elist_2EMAP @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) @ A_27a ) @ ( c_2Epair_2EFST @ A_27a @ A_27b ) ) @ V0l ) ) ) ) ) ) ) ).
thf(conj_thm_2Ealist_2EALOOKUP__TABULATE,axiom,
! [A_27a: del,A_27b: del,V0x: $i] :
( ( mem @ V0x @ A_27a )
=> ! [V1l: $i] :
( ( mem @ V1l @ ( ty_2Elist_2Elist @ A_27a ) )
=> ! [V2f: $i] :
( ( mem @ V2f @ ( arr @ A_27a @ A_27b ) )
=> ( ( p @ ( ap @ ( ap @ ( c_2Ebool_2EIN @ A_27a ) @ V0x ) @ ( ap @ ( c_2Elist_2ELIST__TO__SET @ A_27a ) @ V1l ) ) )
=> ( ( ap
@ ( ap @ ( c_2Ealist_2EALOOKUP @ A_27b @ A_27a )
@ ( ap
@ ( ap @ ( c_2Elist_2EMAP @ A_27a @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) )
@ ( lam @ A_27a
@ ^ [V3k: $i] : ( ap @ ( ap @ ( c_2Epair_2E_2C @ A_27a @ A_27b ) @ V3k ) @ ( ap @ V2f @ V3k ) ) ) )
@ V1l ) )
@ V0x )
= ( ap @ ( c_2Eoption_2ESOME @ A_27b ) @ ( ap @ V2f @ V0x ) ) ) ) ) ) ) ).
thf(conj_thm_2Ealist_2EALOOKUP__EQ__FLOOKUP,axiom,
! [A_27a: del,A_27b: del,A_27c: del,A_27d: del,V0al: $i] :
( ( mem @ V0al @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) )
=> ! [V1fm: $i] :
( ( mem @ V1fm @ ( ty_2Efinite__map_2Efmap @ A_27c @ A_27d ) )
=> ( ( ( ap @ ( c_2Efinite__map_2EFLOOKUP @ A_27a @ A_27b ) @ ( ap @ ( c_2Ealist_2Ealist__to__fmap @ A_27a @ A_27b ) @ V0al ) )
= ( ap @ ( c_2Ealist_2EALOOKUP @ A_27b @ A_27a ) @ V0al ) )
& ( ( ap @ ( c_2Ealist_2EALOOKUP @ A_27d @ A_27c ) @ ( ap @ ( c_2Ealist_2Efmap__to__alist @ A_27c @ A_27d ) @ V1fm ) )
= ( ap @ ( c_2Efinite__map_2EFLOOKUP @ A_27c @ A_27d ) @ V1fm ) ) ) ) ) ).
thf(conj_thm_2Ealist_2EMEM__fmap__to__alist,axiom,
! [A_27a: del,A_27b: del,V0x: $i] :
( ( mem @ V0x @ A_27a )
=> ! [V1y: $i] :
( ( mem @ V1y @ A_27b )
=> ! [V2fm: $i] :
( ( mem @ V2fm @ ( ty_2Efinite__map_2Efmap @ A_27a @ A_27b ) )
=> ( ( p @ ( ap @ ( ap @ ( c_2Ebool_2EIN @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) @ ( ap @ ( ap @ ( c_2Epair_2E_2C @ A_27a @ A_27b ) @ V0x ) @ V1y ) ) @ ( ap @ ( c_2Elist_2ELIST__TO__SET @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) @ ( ap @ ( c_2Ealist_2Efmap__to__alist @ A_27a @ A_27b ) @ V2fm ) ) ) )
<=> ( ( p @ ( ap @ ( ap @ ( c_2Ebool_2EIN @ A_27a ) @ V0x ) @ ( ap @ ( c_2Efinite__map_2EFDOM @ A_27a @ A_27b ) @ V2fm ) ) )
& ( ( ap @ ( ap @ ( c_2Efinite__map_2EFAPPLY @ A_27a @ A_27b ) @ V2fm ) @ V0x )
= V1y ) ) ) ) ) ) ).
thf(conj_thm_2Ealist_2EMEM__fmap__to__alist__FLOOKUP,axiom,
! [A_27a: del,A_27b: del,V0p: $i] :
( ( mem @ V0p @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) )
=> ! [V1fm: $i] :
( ( mem @ V1fm @ ( ty_2Efinite__map_2Efmap @ A_27a @ A_27b ) )
=> ( ( p @ ( ap @ ( ap @ ( c_2Ebool_2EIN @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) @ V0p ) @ ( ap @ ( c_2Elist_2ELIST__TO__SET @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) @ ( ap @ ( c_2Ealist_2Efmap__to__alist @ A_27a @ A_27b ) @ V1fm ) ) ) )
<=> ( ( ap @ ( ap @ ( c_2Efinite__map_2EFLOOKUP @ A_27a @ A_27b ) @ V1fm ) @ ( ap @ ( c_2Epair_2EFST @ A_27a @ A_27b ) @ V0p ) )
= ( ap @ ( c_2Eoption_2ESOME @ A_27b ) @ ( ap @ ( c_2Epair_2ESND @ A_27a @ A_27b ) @ V0p ) ) ) ) ) ) ).
thf(conj_thm_2Ealist_2EMEM__pair__fmap__to__alist__FLOOKUP,axiom,
! [A_27a: del,A_27b: del,V0x: $i] :
( ( mem @ V0x @ A_27a )
=> ! [V1y: $i] :
( ( mem @ V1y @ A_27b )
=> ! [V2fm: $i] :
( ( mem @ V2fm @ ( ty_2Efinite__map_2Efmap @ A_27a @ A_27b ) )
=> ( ( p @ ( ap @ ( ap @ ( c_2Ebool_2EIN @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) @ ( ap @ ( ap @ ( c_2Epair_2E_2C @ A_27a @ A_27b ) @ V0x ) @ V1y ) ) @ ( ap @ ( c_2Elist_2ELIST__TO__SET @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) @ ( ap @ ( c_2Ealist_2Efmap__to__alist @ A_27a @ A_27b ) @ V2fm ) ) ) )
<=> ( ( ap @ ( ap @ ( c_2Efinite__map_2EFLOOKUP @ A_27a @ A_27b ) @ V2fm ) @ V0x )
= ( ap @ ( c_2Eoption_2ESOME @ A_27b ) @ V1y ) ) ) ) ) ) ).
thf(conj_thm_2Ealist_2ELENGTH__fmap__to__alist,axiom,
! [A_27a: del,A_27b: del,V0fm: $i] :
( ( mem @ V0fm @ ( ty_2Efinite__map_2Efmap @ A_27a @ A_27b ) )
=> ( ( surj__ty_2Enum_2Enum @ ( ap @ ( c_2Elist_2ELENGTH @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) @ ( ap @ ( c_2Ealist_2Efmap__to__alist @ A_27a @ A_27b ) @ V0fm ) ) )
= ( surj__ty_2Enum_2Enum @ ( ap @ ( c_2Epred__set_2ECARD @ A_27a ) @ ( ap @ ( c_2Efinite__map_2EFDOM @ A_27a @ A_27b ) @ V0fm ) ) ) ) ) ).
thf(conj_thm_2Ealist_2Efmap__to__alist__to__fmap,axiom,
! [A_27a: del,A_27b: del,V0fm: $i] :
( ( mem @ V0fm @ ( ty_2Efinite__map_2Efmap @ A_27a @ A_27b ) )
=> ( ( ap @ ( c_2Ealist_2Ealist__to__fmap @ A_27a @ A_27b ) @ ( ap @ ( c_2Ealist_2Efmap__to__alist @ A_27a @ A_27b ) @ V0fm ) )
= V0fm ) ) ).
thf(conj_thm_2Ealist_2EALOOKUP__MEM,axiom,
! [A_27a: del,A_27b: del,V0al: $i] :
( ( mem @ V0al @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) )
=> ! [V1k: $i] :
( ( mem @ V1k @ A_27a )
=> ! [V2v: $i] :
( ( mem @ V2v @ A_27b )
=> ( ( ( ap @ ( ap @ ( c_2Ealist_2EALOOKUP @ A_27b @ A_27a ) @ V0al ) @ V1k )
= ( ap @ ( c_2Eoption_2ESOME @ A_27b ) @ V2v ) )
=> ( p @ ( ap @ ( ap @ ( c_2Ebool_2EIN @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) @ ( ap @ ( ap @ ( c_2Epair_2E_2C @ A_27a @ A_27b ) @ V1k ) @ V2v ) ) @ ( ap @ ( c_2Elist_2ELIST__TO__SET @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) @ V0al ) ) ) ) ) ) ) ).
thf(conj_thm_2Ealist_2EALOOKUP__SOME__FAPPLY__alist__to__fmap,axiom,
! [A_27a: del,A_27b: del,V0al: $i] :
( ( mem @ V0al @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) )
=> ! [V1k: $i] :
( ( mem @ V1k @ A_27a )
=> ! [V2v: $i] :
( ( mem @ V2v @ A_27b )
=> ( ( ( ap @ ( ap @ ( c_2Ealist_2EALOOKUP @ A_27b @ A_27a ) @ V0al ) @ V1k )
= ( ap @ ( c_2Eoption_2ESOME @ A_27b ) @ V2v ) )
=> ( ( ap @ ( ap @ ( c_2Efinite__map_2EFAPPLY @ A_27a @ A_27b ) @ ( ap @ ( c_2Ealist_2Ealist__to__fmap @ A_27a @ A_27b ) @ V0al ) ) @ V1k )
= V2v ) ) ) ) ) ).
thf(conj_thm_2Ealist_2Ealist__to__fmap__FAPPLY__MEM,axiom,
! [A_27a: del,A_27b: del,V0al: $i] :
( ( mem @ V0al @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) )
=> ! [V1z: $i] :
( ( mem @ V1z @ A_27a )
=> ( ( p @ ( ap @ ( ap @ ( c_2Ebool_2EIN @ A_27a ) @ V1z ) @ ( ap @ ( c_2Efinite__map_2EFDOM @ A_27a @ A_27b ) @ ( ap @ ( c_2Ealist_2Ealist__to__fmap @ A_27a @ A_27b ) @ V0al ) ) ) )
=> ( p @ ( ap @ ( ap @ ( c_2Ebool_2EIN @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) @ ( ap @ ( ap @ ( c_2Epair_2E_2C @ A_27a @ A_27b ) @ V1z ) @ ( ap @ ( ap @ ( c_2Efinite__map_2EFAPPLY @ A_27a @ A_27b ) @ ( ap @ ( c_2Ealist_2Ealist__to__fmap @ A_27a @ A_27b ) @ V0al ) ) @ V1z ) ) ) @ ( ap @ ( c_2Elist_2ELIST__TO__SET @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) @ V0al ) ) ) ) ) ) ).
thf(conj_thm_2Ealist_2EALOOKUP__MAP,axiom,
! [A_27a: del,A_27b: del,A_27c: del,V0f: $i] :
( ( mem @ V0f @ ( arr @ A_27a @ A_27b ) )
=> ! [V1al: $i] :
( ( mem @ V1al @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27c @ A_27a ) ) )
=> ( ( ap @ ( c_2Ealist_2EALOOKUP @ A_27b @ A_27c )
@ ( ap
@ ( ap @ ( c_2Elist_2EMAP @ ( ty_2Epair_2Eprod @ A_27c @ A_27a ) @ ( ty_2Epair_2Eprod @ A_27c @ A_27b ) )
@ ( ap @ ( c_2Epair_2EUNCURRY @ A_27c @ A_27a @ ( ty_2Epair_2Eprod @ A_27c @ A_27b ) )
@ ( lam @ A_27c
@ ^ [V2x: $i] :
( lam @ A_27a
@ ^ [V3y: $i] : ( ap @ ( ap @ ( c_2Epair_2E_2C @ A_27c @ A_27b ) @ V2x ) @ ( ap @ V0f @ V3y ) ) ) ) ) )
@ V1al ) )
= ( ap @ ( ap @ ( c_2Ecombin_2Eo @ A_27c @ ( ty_2Eoption_2Eoption @ A_27b ) @ ( ty_2Eoption_2Eoption @ A_27a ) ) @ ( ap @ ( c_2Eoption_2EOPTION__MAP @ A_27a @ A_27b ) @ V0f ) ) @ ( ap @ ( c_2Ealist_2EALOOKUP @ A_27a @ A_27c ) @ V1al ) ) ) ) ) ).
thf(conj_thm_2Ealist_2EFDOM__alist__to__fmap,axiom,
! [A_27a: del,A_27b: del,V0al: $i] :
( ( mem @ V0al @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) )
=> ( ( ap @ ( c_2Efinite__map_2EFDOM @ A_27a @ A_27b ) @ ( ap @ ( c_2Ealist_2Ealist__to__fmap @ A_27a @ A_27b ) @ V0al ) )
= ( ap @ ( c_2Elist_2ELIST__TO__SET @ A_27a ) @ ( ap @ ( ap @ ( c_2Elist_2EMAP @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) @ A_27a ) @ ( c_2Epair_2EFST @ A_27a @ A_27b ) ) @ V0al ) ) ) ) ).
thf(conj_thm_2Ealist_2Ealist__to__fmap__prefix,axiom,
! [A_27a: del,A_27b: del,V0ls: $i] :
( ( mem @ V0ls @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) )
=> ! [V1l1: $i] :
( ( mem @ V1l1 @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) )
=> ! [V2l2: $i] :
( ( mem @ V2l2 @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) )
=> ( ( ( ap @ ( c_2Ealist_2Ealist__to__fmap @ A_27a @ A_27b ) @ V1l1 )
= ( ap @ ( c_2Ealist_2Ealist__to__fmap @ A_27a @ A_27b ) @ V2l2 ) )
=> ( ( ap @ ( c_2Ealist_2Ealist__to__fmap @ A_27a @ A_27b ) @ ( ap @ ( ap @ ( c_2Elist_2EAPPEND @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) @ V0ls ) @ V1l1 ) )
= ( ap @ ( c_2Ealist_2Ealist__to__fmap @ A_27a @ A_27b ) @ ( ap @ ( ap @ ( c_2Elist_2EAPPEND @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) @ V0ls ) @ V2l2 ) ) ) ) ) ) ) ).
thf(conj_thm_2Ealist_2Ealist__to__fmap__APPEND,axiom,
! [A_27a: del,A_27b: del,V0l1: $i] :
( ( mem @ V0l1 @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) )
=> ! [V1l2: $i] :
( ( mem @ V1l2 @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) )
=> ( ( ap @ ( c_2Ealist_2Ealist__to__fmap @ A_27a @ A_27b ) @ ( ap @ ( ap @ ( c_2Elist_2EAPPEND @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) @ V0l1 ) @ V1l2 ) )
= ( ap @ ( ap @ ( c_2Efinite__map_2EFUNION @ A_27a @ A_27b ) @ ( ap @ ( c_2Ealist_2Ealist__to__fmap @ A_27a @ A_27b ) @ V0l1 ) ) @ ( ap @ ( c_2Ealist_2Ealist__to__fmap @ A_27a @ A_27b ) @ V1l2 ) ) ) ) ) ).
thf(conj_thm_2Ealist_2EALOOKUP__prefix,axiom,
! [A_27a: del,A_27b: del,V0v: $i] :
( ( mem @ V0v @ A_27b )
=> ! [V1ls: $i] :
( ( mem @ V1ls @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) )
=> ! [V2k: $i] :
( ( mem @ V2k @ A_27a )
=> ! [V3ls2: $i] :
( ( mem @ V3ls2 @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) )
=> ( ( ( ( ap @ ( ap @ ( c_2Ealist_2EALOOKUP @ A_27b @ A_27a ) @ V1ls ) @ V2k )
= ( ap @ ( c_2Eoption_2ESOME @ A_27b ) @ V0v ) )
=> ( ( ap @ ( ap @ ( c_2Ealist_2EALOOKUP @ A_27b @ A_27a ) @ ( ap @ ( ap @ ( c_2Elist_2EAPPEND @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) @ V1ls ) @ V3ls2 ) ) @ V2k )
= ( ap @ ( c_2Eoption_2ESOME @ A_27b ) @ V0v ) ) )
& ( ( ( ap @ ( ap @ ( c_2Ealist_2EALOOKUP @ A_27b @ A_27a ) @ V1ls ) @ V2k )
= ( c_2Eoption_2ENONE @ A_27b ) )
=> ( ( ap @ ( ap @ ( c_2Ealist_2EALOOKUP @ A_27b @ A_27a ) @ ( ap @ ( ap @ ( c_2Elist_2EAPPEND @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) @ V1ls ) @ V3ls2 ) ) @ V2k )
= ( ap @ ( ap @ ( c_2Ealist_2EALOOKUP @ A_27b @ A_27a ) @ V3ls2 ) @ V2k ) ) ) ) ) ) ) ) ).
thf(conj_thm_2Ealist_2EALOOKUP__APPEND,axiom,
! [A_27a: del,A_27b: del,V0l1: $i] :
( ( mem @ V0l1 @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) )
=> ! [V1l2: $i] :
( ( mem @ V1l2 @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) )
=> ! [V2k: $i] :
( ( mem @ V2k @ A_27a )
=> ( ( ap @ ( ap @ ( c_2Ealist_2EALOOKUP @ A_27b @ A_27a ) @ ( ap @ ( ap @ ( c_2Elist_2EAPPEND @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) @ V0l1 ) @ V1l2 ) ) @ V2k )
= ( ap @ ( ap @ ( ap @ ( c_2Eoption_2Eoption__CASE @ A_27b @ ( ty_2Eoption_2Eoption @ A_27b ) ) @ ( ap @ ( ap @ ( c_2Ealist_2EALOOKUP @ A_27b @ A_27a ) @ V0l1 ) @ V2k ) ) @ ( ap @ ( ap @ ( c_2Ealist_2EALOOKUP @ A_27b @ A_27a ) @ V1l2 ) @ V2k ) )
@ ( lam @ A_27b
@ ^ [V3v: $i] : ( ap @ ( c_2Eoption_2ESOME @ A_27b ) @ V3v ) ) ) ) ) ) ) ).
thf(conj_thm_2Ealist_2EFUPDATE__LIST__EQ__APPEND__REVERSE,axiom,
! [A_27a: del,A_27b: del,V0ls: $i] :
( ( mem @ V0ls @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) )
=> ! [V1fm: $i] :
( ( mem @ V1fm @ ( ty_2Efinite__map_2Efmap @ A_27a @ A_27b ) )
=> ( ( ap @ ( ap @ ( c_2Efinite__map_2EFUPDATE__LIST @ A_27a @ A_27b ) @ V1fm ) @ V0ls )
= ( ap @ ( c_2Ealist_2Ealist__to__fmap @ A_27a @ A_27b ) @ ( ap @ ( ap @ ( c_2Elist_2EAPPEND @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) @ ( ap @ ( c_2Elist_2EREVERSE @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) @ V0ls ) ) @ ( ap @ ( c_2Ealist_2Efmap__to__alist @ A_27a @ A_27b ) @ V1fm ) ) ) ) ) ) ).
thf(conj_thm_2Ealist_2EFLOOKUP__FUPDATE__LIST__ALOOKUP__SOME,axiom,
! [A_27a: del,A_27b: del,V0ls: $i] :
( ( mem @ V0ls @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27b @ A_27a ) ) )
=> ! [V1k: $i] :
( ( mem @ V1k @ A_27b )
=> ! [V2v: $i] :
( ( mem @ V2v @ A_27a )
=> ! [V3fm: $i] :
( ( mem @ V3fm @ ( ty_2Efinite__map_2Efmap @ A_27b @ A_27a ) )
=> ( ( ( ap @ ( ap @ ( c_2Ealist_2EALOOKUP @ A_27a @ A_27b ) @ V0ls ) @ V1k )
= ( ap @ ( c_2Eoption_2ESOME @ A_27a ) @ V2v ) )
=> ( ( ap @ ( ap @ ( c_2Efinite__map_2EFLOOKUP @ A_27b @ A_27a ) @ ( ap @ ( ap @ ( c_2Efinite__map_2EFUPDATE__LIST @ A_27b @ A_27a ) @ V3fm ) @ ( ap @ ( c_2Elist_2EREVERSE @ ( ty_2Epair_2Eprod @ A_27b @ A_27a ) ) @ V0ls ) ) ) @ V1k )
= ( ap @ ( c_2Eoption_2ESOME @ A_27a ) @ V2v ) ) ) ) ) ) ) ).
thf(conj_thm_2Ealist_2EFLOOKUP__FUPDATE__LIST__ALOOKUP__NONE,axiom,
! [A_27a: del,A_27b: del,V0ls: $i] :
( ( mem @ V0ls @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27b @ A_27a ) ) )
=> ! [V1k: $i] :
( ( mem @ V1k @ A_27b )
=> ! [V2fm: $i] :
( ( mem @ V2fm @ ( ty_2Efinite__map_2Efmap @ A_27b @ A_27a ) )
=> ( ( ( ap @ ( ap @ ( c_2Ealist_2EALOOKUP @ A_27a @ A_27b ) @ V0ls ) @ V1k )
= ( c_2Eoption_2ENONE @ A_27a ) )
=> ( ( ap @ ( ap @ ( c_2Efinite__map_2EFLOOKUP @ A_27b @ A_27a ) @ ( ap @ ( ap @ ( c_2Efinite__map_2EFUPDATE__LIST @ A_27b @ A_27a ) @ V2fm ) @ ( ap @ ( c_2Elist_2EREVERSE @ ( ty_2Epair_2Eprod @ A_27b @ A_27a ) ) @ V0ls ) ) ) @ V1k )
= ( ap @ ( ap @ ( c_2Efinite__map_2EFLOOKUP @ A_27b @ A_27a ) @ V2fm ) @ V1k ) ) ) ) ) ) ).
thf(conj_thm_2Ealist_2EFUNION__alist__to__fmap,axiom,
! [A_27a: del,A_27b: del,V0ls: $i] :
( ( mem @ V0ls @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) )
=> ! [V1fm: $i] :
( ( mem @ V1fm @ ( ty_2Efinite__map_2Efmap @ A_27a @ A_27b ) )
=> ( ( ap @ ( ap @ ( c_2Efinite__map_2EFUNION @ A_27a @ A_27b ) @ ( ap @ ( c_2Ealist_2Ealist__to__fmap @ A_27a @ A_27b ) @ V0ls ) ) @ V1fm )
= ( ap @ ( ap @ ( c_2Efinite__map_2EFUPDATE__LIST @ A_27a @ A_27b ) @ V1fm ) @ ( ap @ ( c_2Elist_2EREVERSE @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) @ V0ls ) ) ) ) ) ).
thf(conj_thm_2Ealist_2Ealist__to__fmap__MAP,axiom,
! [A_27a: del,A_27b: del,A_27c: del,A_27d: del,V0f1: $i] :
( ( mem @ V0f1 @ ( arr @ A_27a @ A_27b ) )
=> ! [V1f2: $i] :
( ( mem @ V1f2 @ ( arr @ A_27c @ A_27d ) )
=> ! [V2al: $i] :
( ( mem @ V2al @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27a @ A_27c ) ) )
=> ( ( p @ ( ap @ ( ap @ ( ap @ ( c_2Epred__set_2EINJ @ A_27a @ A_27b ) @ V0f1 ) @ ( ap @ ( c_2Elist_2ELIST__TO__SET @ A_27a ) @ ( ap @ ( ap @ ( c_2Elist_2EMAP @ ( ty_2Epair_2Eprod @ A_27a @ A_27c ) @ A_27a ) @ ( c_2Epair_2EFST @ A_27a @ A_27c ) ) @ V2al ) ) ) @ ( c_2Epred__set_2EUNIV @ A_27b ) ) )
=> ( ( ap @ ( c_2Ealist_2Ealist__to__fmap @ A_27b @ A_27d )
@ ( ap
@ ( ap @ ( c_2Elist_2EMAP @ ( ty_2Epair_2Eprod @ A_27a @ A_27c ) @ ( ty_2Epair_2Eprod @ A_27b @ A_27d ) )
@ ( ap @ ( c_2Epair_2EUNCURRY @ A_27a @ A_27c @ ( ty_2Epair_2Eprod @ A_27b @ A_27d ) )
@ ( lam @ A_27a
@ ^ [V3x: $i] :
( lam @ A_27c
@ ^ [V4y: $i] : ( ap @ ( ap @ ( c_2Epair_2E_2C @ A_27b @ A_27d ) @ ( ap @ V0f1 @ V3x ) ) @ ( ap @ V1f2 @ V4y ) ) ) ) ) )
@ V2al ) )
= ( ap @ ( ap @ ( c_2Efinite__map_2EMAP__KEYS @ A_27a @ A_27b @ A_27d ) @ V0f1 ) @ ( ap @ ( ap @ ( c_2Efinite__map_2Eo__f @ A_27a @ A_27c @ A_27d ) @ V1f2 ) @ ( ap @ ( c_2Ealist_2Ealist__to__fmap @ A_27a @ A_27c ) @ V2al ) ) ) ) ) ) ) ) ).
thf(conj_thm_2Ealist_2Ealist__to__fmap__to__alist,axiom,
! [A_27a: del,A_27b: del,V0al: $i] :
( ( mem @ V0al @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) )
=> ( ( ap @ ( c_2Ealist_2Efmap__to__alist @ A_27a @ A_27b ) @ ( ap @ ( c_2Ealist_2Ealist__to__fmap @ A_27a @ A_27b ) @ V0al ) )
= ( ap
@ ( ap @ ( c_2Elist_2EMAP @ A_27a @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) )
@ ( lam @ A_27a
@ ^ [V1k: $i] : ( ap @ ( ap @ ( c_2Epair_2E_2C @ A_27a @ A_27b ) @ V1k ) @ ( ap @ ( c_2Eoption_2ETHE @ A_27b ) @ ( ap @ ( ap @ ( c_2Ealist_2EALOOKUP @ A_27b @ A_27a ) @ V0al ) @ V1k ) ) ) ) )
@ ( ap @ ( c_2Elist_2ESET__TO__LIST @ A_27a ) @ ( ap @ ( c_2Elist_2ELIST__TO__SET @ A_27a ) @ ( ap @ ( ap @ ( c_2Elist_2EMAP @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) @ A_27a ) @ ( c_2Epair_2EFST @ A_27a @ A_27b ) ) @ V0al ) ) ) ) ) ) ).
thf(conj_thm_2Ealist_2Ealist__to__fmap__to__alist__PERM,axiom,
! [A_27a: del,A_27b: del,V0al: $i] :
( ( mem @ V0al @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) )
=> ( ( p @ ( ap @ ( c_2Elist_2EALL__DISTINCT @ A_27a ) @ ( ap @ ( ap @ ( c_2Elist_2EMAP @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) @ A_27a ) @ ( c_2Epair_2EFST @ A_27a @ A_27b ) ) @ V0al ) ) )
=> ( p @ ( ap @ ( ap @ ( c_2Esorting_2EPERM @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) @ ( ap @ ( c_2Ealist_2Efmap__to__alist @ A_27a @ A_27b ) @ ( ap @ ( c_2Ealist_2Ealist__to__fmap @ A_27a @ A_27b ) @ V0al ) ) ) @ V0al ) ) ) ) ).
thf(conj_thm_2Ealist_2EALOOKUP__LEAST__EL,axiom,
! [A_27a: del,A_27b: del,V0ls: $i] :
( ( mem @ V0ls @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) )
=> ! [V1k: $i] :
( ( mem @ V1k @ A_27a )
=> ( ( ap @ ( ap @ ( c_2Ealist_2EALOOKUP @ A_27b @ A_27a ) @ V0ls ) @ V1k )
= ( ap
@ ( ap @ ( ap @ ( c_2Ebool_2ECOND @ ( ty_2Eoption_2Eoption @ A_27b ) ) @ ( ap @ ( ap @ ( c_2Ebool_2EIN @ A_27a ) @ V1k ) @ ( ap @ ( c_2Elist_2ELIST__TO__SET @ A_27a ) @ ( ap @ ( ap @ ( c_2Elist_2EMAP @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) @ A_27a ) @ ( c_2Epair_2EFST @ A_27a @ A_27b ) ) @ V0ls ) ) ) )
@ ( ap @ ( c_2Eoption_2ESOME @ A_27b )
@ ( ap
@ ( ap @ ( c_2Elist_2EEL @ A_27b )
@ ( ap @ c_2Ewhile_2ELEAST
@ ( lam @ ty_2Enum_2Enum
@ ^ [V2n: $i] : ( ap @ ( ap @ ( c_2Emin_2E_3D @ A_27a ) @ ( ap @ ( ap @ ( c_2Elist_2EEL @ A_27a ) @ V2n ) @ ( ap @ ( ap @ ( c_2Elist_2EMAP @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) @ A_27a ) @ ( c_2Epair_2EFST @ A_27a @ A_27b ) ) @ V0ls ) ) ) @ V1k ) ) ) )
@ ( ap @ ( ap @ ( c_2Elist_2EMAP @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) @ A_27b ) @ ( c_2Epair_2ESND @ A_27a @ A_27b ) ) @ V0ls ) ) ) )
@ ( c_2Eoption_2ENONE @ A_27b ) ) ) ) ) ).
thf(conj_thm_2Ealist_2EALOOKUP__ALL__DISTINCT__MEM,axiom,
! [A_27a: del,A_27b: del,V0al: $i] :
( ( mem @ V0al @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) )
=> ! [V1k: $i] :
( ( mem @ V1k @ A_27a )
=> ! [V2v: $i] :
( ( mem @ V2v @ A_27b )
=> ( ( ( p @ ( ap @ ( c_2Elist_2EALL__DISTINCT @ A_27a ) @ ( ap @ ( ap @ ( c_2Elist_2EMAP @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) @ A_27a ) @ ( c_2Epair_2EFST @ A_27a @ A_27b ) ) @ V0al ) ) )
& ( p @ ( ap @ ( ap @ ( c_2Ebool_2EIN @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) @ ( ap @ ( ap @ ( c_2Epair_2E_2C @ A_27a @ A_27b ) @ V1k ) @ V2v ) ) @ ( ap @ ( c_2Elist_2ELIST__TO__SET @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) @ V0al ) ) ) )
=> ( ( ap @ ( ap @ ( c_2Ealist_2EALOOKUP @ A_27b @ A_27a ) @ V0al ) @ V1k )
= ( ap @ ( c_2Eoption_2ESOME @ A_27b ) @ V2v ) ) ) ) ) ) ).
thf(conj_thm_2Ealist_2EALL__DISTINCT__fmap__to__alist__keys,axiom,
! [A_27a: del,A_27b: del,V0fm: $i] :
( ( mem @ V0fm @ ( ty_2Efinite__map_2Efmap @ A_27a @ A_27b ) )
=> ( p @ ( ap @ ( c_2Elist_2EALL__DISTINCT @ A_27a ) @ ( ap @ ( ap @ ( c_2Elist_2EMAP @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) @ A_27a ) @ ( c_2Epair_2EFST @ A_27a @ A_27b ) ) @ ( ap @ ( c_2Ealist_2Efmap__to__alist @ A_27a @ A_27b ) @ V0fm ) ) ) ) ) ).
thf(conj_thm_2Ealist_2Efmap__to__alist__inj,axiom,
! [A_27a: del,A_27b: del,V0f1: $i] :
( ( mem @ V0f1 @ ( ty_2Efinite__map_2Efmap @ A_27a @ A_27b ) )
=> ! [V1f2: $i] :
( ( mem @ V1f2 @ ( ty_2Efinite__map_2Efmap @ A_27a @ A_27b ) )
=> ( ( ( ap @ ( c_2Ealist_2Efmap__to__alist @ A_27a @ A_27b ) @ V0f1 )
= ( ap @ ( c_2Ealist_2Efmap__to__alist @ A_27a @ A_27b ) @ V1f2 ) )
=> ( V0f1 = V1f2 ) ) ) ) ).
thf(conj_thm_2Ealist_2Efmap__to__alist__preserves__FDOM,axiom,
! [A_27a: del,A_27b: del,A_27c: del,V0fm1: $i] :
( ( mem @ V0fm1 @ ( ty_2Efinite__map_2Efmap @ A_27a @ A_27b ) )
=> ! [V1fm2: $i] :
( ( mem @ V1fm2 @ ( ty_2Efinite__map_2Efmap @ A_27a @ A_27c ) )
=> ( ( ( ap @ ( c_2Efinite__map_2EFDOM @ A_27a @ A_27b ) @ V0fm1 )
= ( ap @ ( c_2Efinite__map_2EFDOM @ A_27a @ A_27c ) @ V1fm2 ) )
=> ( ( ap @ ( ap @ ( c_2Elist_2EMAP @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) @ A_27a ) @ ( c_2Epair_2EFST @ A_27a @ A_27b ) ) @ ( ap @ ( c_2Ealist_2Efmap__to__alist @ A_27a @ A_27b ) @ V0fm1 ) )
= ( ap @ ( ap @ ( c_2Elist_2EMAP @ ( ty_2Epair_2Eprod @ A_27a @ A_27c ) @ A_27a ) @ ( c_2Epair_2EFST @ A_27a @ A_27c ) ) @ ( ap @ ( c_2Ealist_2Efmap__to__alist @ A_27a @ A_27c ) @ V1fm2 ) ) ) ) ) ) ).
thf(conj_thm_2Ealist_2EPERM__fmap__to__alist,axiom,
! [A_27a: del,A_27b: del,V0fm1: $i] :
( ( mem @ V0fm1 @ ( ty_2Efinite__map_2Efmap @ A_27a @ A_27b ) )
=> ! [V1fm2: $i] :
( ( mem @ V1fm2 @ ( ty_2Efinite__map_2Efmap @ A_27a @ A_27b ) )
=> ( ( p @ ( ap @ ( ap @ ( c_2Esorting_2EPERM @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) @ ( ap @ ( c_2Ealist_2Efmap__to__alist @ A_27a @ A_27b ) @ V0fm1 ) ) @ ( ap @ ( c_2Ealist_2Efmap__to__alist @ A_27a @ A_27b ) @ V1fm2 ) ) )
<=> ( V0fm1 = V1fm2 ) ) ) ) ).
thf(conj_thm_2Ealist_2Ealist__to__fmap__PERM,axiom,
! [A_27a: del,A_27b: del,V0l1: $i] :
( ( mem @ V0l1 @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) )
=> ! [V1l2: $i] :
( ( mem @ V1l2 @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) )
=> ( ( ( p @ ( ap @ ( ap @ ( c_2Esorting_2EPERM @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) @ V0l1 ) @ V1l2 ) )
& ( p @ ( ap @ ( c_2Elist_2EALL__DISTINCT @ A_27a ) @ ( ap @ ( ap @ ( c_2Elist_2EMAP @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) @ A_27a ) @ ( c_2Epair_2EFST @ A_27a @ A_27b ) ) @ V0l1 ) ) ) )
=> ( ( ap @ ( c_2Ealist_2Ealist__to__fmap @ A_27a @ A_27b ) @ V0l1 )
= ( ap @ ( c_2Ealist_2Ealist__to__fmap @ A_27a @ A_27b ) @ V1l2 ) ) ) ) ) ).
thf(conj_thm_2Ealist_2EALOOKUP__ALL__DISTINCT__EL,axiom,
! [A_27a: del,A_27b: del,V0ls: $i] :
( ( mem @ V0ls @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) )
=> ! [V1n: tp__ty_2Enum_2Enum] :
( ( ( p @ ( ap @ ( ap @ c_2Eprim__rec_2E_3C @ ( inj__ty_2Enum_2Enum @ V1n ) ) @ ( ap @ ( c_2Elist_2ELENGTH @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) @ V0ls ) ) )
& ( p @ ( ap @ ( c_2Elist_2EALL__DISTINCT @ A_27a ) @ ( ap @ ( ap @ ( c_2Elist_2EMAP @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) @ A_27a ) @ ( c_2Epair_2EFST @ A_27a @ A_27b ) ) @ V0ls ) ) ) )
=> ( ( ap @ ( ap @ ( c_2Ealist_2EALOOKUP @ A_27b @ A_27a ) @ V0ls ) @ ( ap @ ( c_2Epair_2EFST @ A_27a @ A_27b ) @ ( ap @ ( ap @ ( c_2Elist_2EEL @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) @ ( inj__ty_2Enum_2Enum @ V1n ) ) @ V0ls ) ) )
= ( ap @ ( c_2Eoption_2ESOME @ A_27b ) @ ( ap @ ( c_2Epair_2ESND @ A_27a @ A_27b ) @ ( ap @ ( ap @ ( c_2Elist_2EEL @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) @ ( inj__ty_2Enum_2Enum @ V1n ) ) @ V0ls ) ) ) ) ) ) ).
thf(conj_thm_2Ealist_2EALOOKUP__ZIP__MAP__SND,axiom,
! [A_27a: del,A_27b: del,A_27c: del,A_27d: del,V0l1: $i] :
( ( mem @ V0l1 @ ( ty_2Elist_2Elist @ A_27a ) )
=> ! [V1l2: $i] :
( ( mem @ V1l2 @ ( ty_2Elist_2Elist @ A_27b ) )
=> ! [V2k: $i] :
( ( mem @ V2k @ A_27c )
=> ! [V3f: $i] :
( ( mem @ V3f @ ( arr @ A_27b @ A_27d ) )
=> ( ( ( surj__ty_2Enum_2Enum @ ( ap @ ( c_2Elist_2ELENGTH @ A_27a ) @ V0l1 ) )
= ( surj__ty_2Enum_2Enum @ ( ap @ ( c_2Elist_2ELENGTH @ A_27b ) @ V1l2 ) ) )
=> ( ( ap @ ( c_2Ealist_2EALOOKUP @ A_27d @ A_27a ) @ ( ap @ ( c_2Elist_2EZIP @ A_27a @ A_27d ) @ ( ap @ ( ap @ ( c_2Epair_2E_2C @ ( ty_2Elist_2Elist @ A_27a ) @ ( ty_2Elist_2Elist @ A_27d ) ) @ V0l1 ) @ ( ap @ ( ap @ ( c_2Elist_2EMAP @ A_27b @ A_27d ) @ V3f ) @ V1l2 ) ) ) )
= ( ap @ ( ap @ ( c_2Ecombin_2Eo @ A_27a @ ( ty_2Eoption_2Eoption @ A_27d ) @ ( ty_2Eoption_2Eoption @ A_27b ) ) @ ( ap @ ( c_2Eoption_2EOPTION__MAP @ A_27b @ A_27d ) @ V3f ) ) @ ( ap @ ( c_2Ealist_2EALOOKUP @ A_27b @ A_27a ) @ ( ap @ ( c_2Elist_2EZIP @ A_27a @ A_27b ) @ ( ap @ ( ap @ ( c_2Epair_2E_2C @ ( ty_2Elist_2Elist @ A_27a ) @ ( ty_2Elist_2Elist @ A_27b ) ) @ V0l1 ) @ V1l2 ) ) ) ) ) ) ) ) ) ) ).
thf(conj_thm_2Ealist_2EALOOKUP__FILTER,axiom,
! [A_27a: del,A_27b: del,V0P: $i] :
( ( mem @ V0P @ ( arr @ A_27a @ bool ) )
=> ! [V1ls: $i] :
( ( mem @ V1ls @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) )
=> ! [V2x: $i] :
( ( mem @ V2x @ A_27a )
=> ( ( ap
@ ( ap @ ( c_2Ealist_2EALOOKUP @ A_27b @ A_27a )
@ ( ap
@ ( ap @ ( c_2Elist_2EFILTER @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) )
@ ( ap @ ( c_2Epair_2EUNCURRY @ A_27a @ A_27b @ bool )
@ ( lam @ A_27a
@ ^ [V3k: $i] :
( lam @ A_27b
@ ^ [V4v: $i] : ( ap @ V0P @ V3k ) ) ) ) )
@ V1ls ) )
@ V2x )
= ( ap @ ( ap @ ( ap @ ( c_2Ebool_2ECOND @ ( ty_2Eoption_2Eoption @ A_27b ) ) @ ( ap @ V0P @ V2x ) ) @ ( ap @ ( ap @ ( c_2Ealist_2EALOOKUP @ A_27b @ A_27a ) @ V1ls ) @ V2x ) ) @ ( c_2Eoption_2ENONE @ A_27b ) ) ) ) ) ) ).
thf(conj_thm_2Ealist_2EALOOKUP__APPEND__same,axiom,
! [A_27a: del,A_27b: del,V0l1: $i] :
( ( mem @ V0l1 @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) )
=> ! [V1l2: $i] :
( ( mem @ V1l2 @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) )
=> ! [V2l: $i] :
( ( mem @ V2l @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) )
=> ( ( ( ap @ ( c_2Ealist_2EALOOKUP @ A_27b @ A_27a ) @ V0l1 )
= ( ap @ ( c_2Ealist_2EALOOKUP @ A_27b @ A_27a ) @ V1l2 ) )
=> ( ( ap @ ( c_2Ealist_2EALOOKUP @ A_27b @ A_27a ) @ ( ap @ ( ap @ ( c_2Elist_2EAPPEND @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) @ V0l1 ) @ V2l ) )
= ( ap @ ( c_2Ealist_2EALOOKUP @ A_27b @ A_27a ) @ ( ap @ ( ap @ ( c_2Elist_2EAPPEND @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) @ V1l2 ) @ V2l ) ) ) ) ) ) ) ).
thf(conj_thm_2Ealist_2EALOOKUP__IN__FRANGE,axiom,
! [A_27a: del,A_27b: del,V0ls: $i] :
( ( mem @ V0ls @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) )
=> ! [V1k: $i] :
( ( mem @ V1k @ A_27a )
=> ! [V2v: $i] :
( ( mem @ V2v @ A_27b )
=> ( ( ( ap @ ( ap @ ( c_2Ealist_2EALOOKUP @ A_27b @ A_27a ) @ V0ls ) @ V1k )
= ( ap @ ( c_2Eoption_2ESOME @ A_27b ) @ V2v ) )
=> ( p @ ( ap @ ( ap @ ( c_2Ebool_2EIN @ A_27b ) @ V2v ) @ ( ap @ ( c_2Efinite__map_2EFRANGE @ A_27a @ A_27b ) @ ( ap @ ( c_2Ealist_2Ealist__to__fmap @ A_27a @ A_27b ) @ V0ls ) ) ) ) ) ) ) ) ).
thf(conj_thm_2Ealist_2EFRANGE__alist__to__fmap__SUBSET,axiom,
! [A_27a: del,A_27b: del,V0ls: $i] :
( ( mem @ V0ls @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27b @ A_27a ) ) )
=> ( p @ ( ap @ ( ap @ ( c_2Epred__set_2ESUBSET @ A_27a ) @ ( ap @ ( c_2Efinite__map_2EFRANGE @ A_27b @ A_27a ) @ ( ap @ ( c_2Ealist_2Ealist__to__fmap @ A_27b @ A_27a ) @ V0ls ) ) ) @ ( ap @ ( ap @ ( c_2Epred__set_2EIMAGE @ ( ty_2Epair_2Eprod @ A_27b @ A_27a ) @ A_27a ) @ ( c_2Epair_2ESND @ A_27b @ A_27a ) ) @ ( ap @ ( c_2Elist_2ELIST__TO__SET @ ( ty_2Epair_2Eprod @ A_27b @ A_27a ) ) @ V0ls ) ) ) ) ) ).
thf(conj_thm_2Ealist_2EIN__FRANGE__alist__to__fmap__suff,axiom,
! [A_27a: del,A_27b: del,V0ls: $i] :
( ( mem @ V0ls @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27b @ A_27a ) ) )
=> ! [V1P: $i] :
( ( mem @ V1P @ ( arr @ A_27a @ bool ) )
=> ( ! [V2v: $i] :
( ( mem @ V2v @ A_27a )
=> ( ( p @ ( ap @ ( ap @ ( c_2Ebool_2EIN @ A_27a ) @ V2v ) @ ( ap @ ( c_2Elist_2ELIST__TO__SET @ A_27a ) @ ( ap @ ( ap @ ( c_2Elist_2EMAP @ ( ty_2Epair_2Eprod @ A_27b @ A_27a ) @ A_27a ) @ ( c_2Epair_2ESND @ A_27b @ A_27a ) ) @ V0ls ) ) ) )
=> ( p @ ( ap @ V1P @ V2v ) ) ) )
=> ! [V3v: $i] :
( ( mem @ V3v @ A_27a )
=> ( ( p @ ( ap @ ( ap @ ( c_2Ebool_2EIN @ A_27a ) @ V3v ) @ ( ap @ ( c_2Efinite__map_2EFRANGE @ A_27b @ A_27a ) @ ( ap @ ( c_2Ealist_2Ealist__to__fmap @ A_27b @ A_27a ) @ V0ls ) ) ) )
=> ( p @ ( ap @ V1P @ V3v ) ) ) ) ) ) ) ).
thf(conj_thm_2Ealist_2Ealist__to__fmap__MAP__matchable,axiom,
! [A_27a: del,A_27b: del,A_27c: del,A_27d: del,V0f1: $i] :
( ( mem @ V0f1 @ ( arr @ A_27a @ A_27b ) )
=> ! [V1f2: $i] :
( ( mem @ V1f2 @ ( arr @ A_27c @ A_27d ) )
=> ! [V2al: $i] :
( ( mem @ V2al @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27a @ A_27c ) ) )
=> ! [V3mal: $i] :
( ( mem @ V3mal @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27b @ A_27d ) ) )
=> ! [V4v: $i] :
( ( mem @ V4v @ ( ty_2Efinite__map_2Efmap @ A_27b @ A_27d ) )
=> ( ( ( p @ ( ap @ ( ap @ ( ap @ ( c_2Epred__set_2EINJ @ A_27a @ A_27b ) @ V0f1 ) @ ( ap @ ( c_2Elist_2ELIST__TO__SET @ A_27a ) @ ( ap @ ( ap @ ( c_2Elist_2EMAP @ ( ty_2Epair_2Eprod @ A_27a @ A_27c ) @ A_27a ) @ ( c_2Epair_2EFST @ A_27a @ A_27c ) ) @ V2al ) ) ) @ ( c_2Epred__set_2EUNIV @ A_27b ) ) )
& ( V3mal
= ( ap
@ ( ap @ ( c_2Elist_2EMAP @ ( ty_2Epair_2Eprod @ A_27a @ A_27c ) @ ( ty_2Epair_2Eprod @ A_27b @ A_27d ) )
@ ( ap @ ( c_2Epair_2EUNCURRY @ A_27a @ A_27c @ ( ty_2Epair_2Eprod @ A_27b @ A_27d ) )
@ ( lam @ A_27a
@ ^ [V5x: $i] :
( lam @ A_27c
@ ^ [V6y: $i] : ( ap @ ( ap @ ( c_2Epair_2E_2C @ A_27b @ A_27d ) @ ( ap @ V0f1 @ V5x ) ) @ ( ap @ V1f2 @ V6y ) ) ) ) ) )
@ V2al ) )
& ( V4v
= ( ap @ ( ap @ ( c_2Efinite__map_2EMAP__KEYS @ A_27a @ A_27b @ A_27d ) @ V0f1 ) @ ( ap @ ( ap @ ( c_2Efinite__map_2Eo__f @ A_27a @ A_27c @ A_27d ) @ V1f2 ) @ ( ap @ ( c_2Ealist_2Ealist__to__fmap @ A_27a @ A_27c ) @ V2al ) ) ) ) )
=> ( ( ap @ ( c_2Ealist_2Ealist__to__fmap @ A_27b @ A_27d ) @ V3mal )
= V4v ) ) ) ) ) ) ) ).
thf(conj_thm_2Ealist_2EMAP__values__fmap__to__alist,axiom,
! [A_27a: del,A_27b: del,A_27c: del,V0f: $i] :
( ( mem @ V0f @ ( arr @ A_27a @ A_27b ) )
=> ! [V1fm: $i] :
( ( mem @ V1fm @ ( ty_2Efinite__map_2Efmap @ A_27c @ A_27a ) )
=> ( ( ap
@ ( ap @ ( c_2Elist_2EMAP @ ( ty_2Epair_2Eprod @ A_27c @ A_27a ) @ ( ty_2Epair_2Eprod @ A_27c @ A_27b ) )
@ ( ap @ ( c_2Epair_2EUNCURRY @ A_27c @ A_27a @ ( ty_2Epair_2Eprod @ A_27c @ A_27b ) )
@ ( lam @ A_27c
@ ^ [V2k: $i] :
( lam @ A_27a
@ ^ [V3v: $i] : ( ap @ ( ap @ ( c_2Epair_2E_2C @ A_27c @ A_27b ) @ V2k ) @ ( ap @ V0f @ V3v ) ) ) ) ) )
@ ( ap @ ( c_2Ealist_2Efmap__to__alist @ A_27c @ A_27a ) @ V1fm ) )
= ( ap @ ( c_2Ealist_2Efmap__to__alist @ A_27c @ A_27b ) @ ( ap @ ( ap @ ( c_2Efinite__map_2Eo__f @ A_27c @ A_27a @ A_27b ) @ V0f ) @ V1fm ) ) ) ) ) ).
thf(conj_thm_2Ealist_2EMAP__KEYS__I,axiom,
! [A_27a: del,A_27b: del,V0fm: $i] :
( ( mem @ V0fm @ ( ty_2Efinite__map_2Efmap @ A_27a @ A_27b ) )
=> ( ( ap @ ( ap @ ( c_2Efinite__map_2EMAP__KEYS @ A_27a @ A_27a @ A_27b ) @ ( c_2Ecombin_2EI @ A_27a ) ) @ V0fm )
= V0fm ) ) ).
thf(conj_thm_2Ealist_2Ealist__to__fmap__MAP__values,axiom,
! [A_27a: del,A_27b: del,A_27c: del,V0f: $i] :
( ( mem @ V0f @ ( arr @ A_27a @ A_27b ) )
=> ! [V1al: $i] :
( ( mem @ V1al @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27c @ A_27a ) ) )
=> ( ( ap @ ( c_2Ealist_2Ealist__to__fmap @ A_27c @ A_27b )
@ ( ap
@ ( ap @ ( c_2Elist_2EMAP @ ( ty_2Epair_2Eprod @ A_27c @ A_27a ) @ ( ty_2Epair_2Eprod @ A_27c @ A_27b ) )
@ ( ap @ ( c_2Epair_2EUNCURRY @ A_27c @ A_27a @ ( ty_2Epair_2Eprod @ A_27c @ A_27b ) )
@ ( lam @ A_27c
@ ^ [V2k: $i] :
( lam @ A_27a
@ ^ [V3v: $i] : ( ap @ ( ap @ ( c_2Epair_2E_2C @ A_27c @ A_27b ) @ V2k ) @ ( ap @ V0f @ V3v ) ) ) ) ) )
@ V1al ) )
= ( ap @ ( ap @ ( c_2Efinite__map_2Eo__f @ A_27c @ A_27a @ A_27b ) @ V0f ) @ ( ap @ ( c_2Ealist_2Ealist__to__fmap @ A_27c @ A_27a ) @ V1al ) ) ) ) ) ).
thf(conj_thm_2Ealist_2Eset__MAP__FST__fmap__to__alist,axiom,
! [A_27a: del,A_27b: del,V0fm: $i] :
( ( mem @ V0fm @ ( ty_2Efinite__map_2Efmap @ A_27a @ A_27b ) )
=> ( ( ap @ ( c_2Elist_2ELIST__TO__SET @ A_27a ) @ ( ap @ ( ap @ ( c_2Elist_2EMAP @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) @ A_27a ) @ ( c_2Epair_2EFST @ A_27a @ A_27b ) ) @ ( ap @ ( c_2Ealist_2Efmap__to__alist @ A_27a @ A_27b ) @ V0fm ) ) )
= ( ap @ ( c_2Efinite__map_2EFDOM @ A_27a @ A_27b ) @ V0fm ) ) ) ).
thf(conj_thm_2Ealist_2Ealookup__distinct__reverse,axiom,
! [A_27a: del,A_27b: del,V0l: $i] :
( ( mem @ V0l @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) )
=> ! [V1k: $i] :
( ( mem @ V1k @ A_27a )
=> ( ( p @ ( ap @ ( c_2Elist_2EALL__DISTINCT @ A_27a ) @ ( ap @ ( ap @ ( c_2Elist_2EMAP @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) @ A_27a ) @ ( c_2Epair_2EFST @ A_27a @ A_27b ) ) @ V0l ) ) )
=> ( ( ap @ ( ap @ ( c_2Ealist_2EALOOKUP @ A_27b @ A_27a ) @ ( ap @ ( c_2Elist_2EREVERSE @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) @ V0l ) ) @ V1k )
= ( ap @ ( ap @ ( c_2Ealist_2EALOOKUP @ A_27b @ A_27a ) @ V0l ) @ V1k ) ) ) ) ) ).
thf(conj_thm_2Ealist_2Eflookup__fupdate__list,axiom,
! [A_27a: del,A_27b: del,V0l: $i] :
( ( mem @ V0l @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) )
=> ! [V1k: $i] :
( ( mem @ V1k @ A_27a )
=> ! [V2m: $i] :
( ( mem @ V2m @ ( ty_2Efinite__map_2Efmap @ A_27a @ A_27b ) )
=> ( ( ap @ ( ap @ ( c_2Efinite__map_2EFLOOKUP @ A_27a @ A_27b ) @ ( ap @ ( ap @ ( c_2Efinite__map_2EFUPDATE__LIST @ A_27a @ A_27b ) @ V2m ) @ V0l ) ) @ V1k )
= ( ap @ ( ap @ ( ap @ ( c_2Eoption_2Eoption__CASE @ A_27b @ ( ty_2Eoption_2Eoption @ A_27b ) ) @ ( ap @ ( ap @ ( c_2Ealist_2EALOOKUP @ A_27b @ A_27a ) @ ( ap @ ( c_2Elist_2EREVERSE @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) @ V0l ) ) @ V1k ) ) @ ( ap @ ( ap @ ( c_2Efinite__map_2EFLOOKUP @ A_27a @ A_27b ) @ V2m ) @ V1k ) )
@ ( lam @ A_27b
@ ^ [V3v: $i] : ( ap @ ( c_2Eoption_2ESOME @ A_27b ) @ V3v ) ) ) ) ) ) ) ).
thf(conj_thm_2Ealist_2Efupdate__list__funion,axiom,
! [A_27a: del,A_27b: del,V0m: $i] :
( ( mem @ V0m @ ( ty_2Efinite__map_2Efmap @ A_27a @ A_27b ) )
=> ! [V1l: $i] :
( ( mem @ V1l @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) )
=> ( ( ap @ ( ap @ ( c_2Efinite__map_2EFUPDATE__LIST @ A_27a @ A_27b ) @ V0m ) @ V1l )
= ( ap @ ( ap @ ( c_2Efinite__map_2EFUNION @ A_27a @ A_27b ) @ ( ap @ ( ap @ ( c_2Efinite__map_2EFUPDATE__LIST @ A_27a @ A_27b ) @ ( c_2Efinite__map_2EFEMPTY @ A_27a @ A_27b ) ) @ V1l ) ) @ V0m ) ) ) ) ).
thf(conj_thm_2Ealist_2Emem__to__flookup,axiom,
! [A_27a: del,A_27b: del,V0x: $i] :
( ( mem @ V0x @ A_27a )
=> ! [V1y: $i] :
( ( mem @ V1y @ A_27b )
=> ! [V2l: $i] :
( ( mem @ V2l @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) )
=> ( ( ( p @ ( ap @ ( c_2Elist_2EALL__DISTINCT @ A_27a ) @ ( ap @ ( ap @ ( c_2Elist_2EMAP @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) @ A_27a ) @ ( c_2Epair_2EFST @ A_27a @ A_27b ) ) @ V2l ) ) )
& ( p @ ( ap @ ( ap @ ( c_2Ebool_2EIN @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) @ ( ap @ ( ap @ ( c_2Epair_2E_2C @ A_27a @ A_27b ) @ V0x ) @ V1y ) ) @ ( ap @ ( c_2Elist_2ELIST__TO__SET @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) @ V2l ) ) ) )
=> ( ( ap @ ( ap @ ( c_2Efinite__map_2EFLOOKUP @ A_27a @ A_27b ) @ ( ap @ ( ap @ ( c_2Efinite__map_2EFUPDATE__LIST @ A_27a @ A_27b ) @ ( c_2Efinite__map_2EFEMPTY @ A_27a @ A_27b ) ) @ V2l ) ) @ V0x )
= ( ap @ ( c_2Eoption_2ESOME @ A_27b ) @ V1y ) ) ) ) ) ) ).
thf(conj_thm_2Ealist_2Ealookup__filter,axiom,
! [A_27a: del,A_27b: del,A_27c: del,V0f: $i] :
( ( mem @ V0f @ A_27a )
=> ! [V1l: $i] :
( ( mem @ V1l @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27b @ A_27c ) ) )
=> ! [V2x: $i] :
( ( mem @ V2x @ A_27b )
=> ( ( ap @ ( ap @ ( c_2Ealist_2EALOOKUP @ A_27c @ A_27b ) @ V1l ) @ V2x )
= ( ap
@ ( ap @ ( c_2Ealist_2EALOOKUP @ A_27c @ A_27b )
@ ( ap
@ ( ap @ ( c_2Elist_2EFILTER @ ( ty_2Epair_2Eprod @ A_27b @ A_27c ) )
@ ( ap @ ( c_2Epair_2EUNCURRY @ A_27b @ A_27c @ bool )
@ ( lam @ A_27b
@ ^ [V3x_27: $i] :
( lam @ A_27c
@ ^ [V4y: $i] : ( ap @ ( ap @ ( c_2Emin_2E_3D @ A_27b ) @ V2x ) @ V3x_27 ) ) ) ) )
@ V1l ) )
@ V2x ) ) ) ) ) ).
thf(ax_thm_2Ealist_2Ealist__range__def,axiom,
! [A_27a: del,A_27b: del,V0m: $i] :
( ( mem @ V0m @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27b @ A_27a ) ) )
=> ( ( ap @ ( c_2Ealist_2Ealist__range @ A_27a @ A_27b ) @ V0m )
= ( ap @ ( c_2Epred__set_2EGSPEC @ A_27a @ A_27a )
@ ( lam @ A_27a
@ ^ [V1v: $i] :
( ap @ ( ap @ ( c_2Epair_2E_2C @ A_27a @ bool ) @ V1v )
@ ( ap @ ( c_2Ebool_2E_3F @ A_27b )
@ ( lam @ A_27b
@ ^ [V2k: $i] : ( ap @ ( ap @ ( c_2Emin_2E_3D @ ( ty_2Eoption_2Eoption @ A_27a ) ) @ ( ap @ ( ap @ ( c_2Ealist_2EALOOKUP @ A_27a @ A_27b ) @ V0m ) @ V2k ) ) @ ( ap @ ( c_2Eoption_2ESOME @ A_27a ) @ V1v ) ) ) ) ) ) ) ) ) ).
thf(conj_thm_2Ealist_2Ealookup__stable__sorted,axiom,
! [A_27a: del,A_27b: del,V0R: $i] :
( ( mem @ V0R @ ( arr @ A_27a @ ( arr @ A_27a @ bool ) ) )
=> ! [V1sort: $i] :
( ( mem @ V1sort @ ( arr @ ( arr @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) @ ( arr @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) @ bool ) ) @ ( arr @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) ) ) )
=> ! [V2x: $i] :
( ( mem @ V2x @ A_27a )
=> ! [V3l: $i] :
( ( mem @ V3l @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) )
=> ( ( ( p @ ( ap @ ( c_2Erelation_2Etransitive @ A_27a ) @ V0R ) )
& ( p @ ( ap @ ( c_2Erelation_2Etotal @ A_27a ) @ V0R ) )
& ( p @ ( ap @ ( ap @ ( c_2Esorting_2ESTABLE @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) @ V1sort ) @ ( ap @ ( ap @ ( c_2Erelation_2Einv__image @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) @ A_27a ) @ V0R ) @ ( c_2Epair_2EFST @ A_27a @ A_27b ) ) ) ) )
=> ( ( ap @ ( ap @ ( c_2Ealist_2EALOOKUP @ A_27b @ A_27a ) @ ( ap @ ( ap @ V1sort @ ( ap @ ( ap @ ( c_2Erelation_2Einv__image @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) @ A_27a ) @ V0R ) @ ( c_2Epair_2EFST @ A_27a @ A_27b ) ) ) @ V3l ) ) @ V2x )
= ( ap @ ( ap @ ( c_2Ealist_2EALOOKUP @ A_27b @ A_27a ) @ V3l ) @ V2x ) ) ) ) ) ) ) ).
thf(conj_thm_2Ealist_2EALOOKUP__ALL__DISTINCT__PERM__same,axiom,
! [A_27a: del,A_27b: del,V0l1: $i] :
( ( mem @ V0l1 @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) )
=> ! [V1l2: $i] :
( ( mem @ V1l2 @ ( ty_2Elist_2Elist @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) )
=> ( ( ( p @ ( ap @ ( c_2Elist_2EALL__DISTINCT @ A_27a ) @ ( ap @ ( ap @ ( c_2Elist_2EMAP @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) @ A_27a ) @ ( c_2Epair_2EFST @ A_27a @ A_27b ) ) @ V0l1 ) ) )
& ( p @ ( ap @ ( ap @ ( c_2Esorting_2EPERM @ A_27a ) @ ( ap @ ( ap @ ( c_2Elist_2EMAP @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) @ A_27a ) @ ( c_2Epair_2EFST @ A_27a @ A_27b ) ) @ V0l1 ) ) @ ( ap @ ( ap @ ( c_2Elist_2EMAP @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) @ A_27a ) @ ( c_2Epair_2EFST @ A_27a @ A_27b ) ) @ V1l2 ) ) )
& ( ( ap @ ( c_2Elist_2ELIST__TO__SET @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) @ V0l1 )
= ( ap @ ( c_2Elist_2ELIST__TO__SET @ ( ty_2Epair_2Eprod @ A_27a @ A_27b ) ) @ V1l2 ) ) )
=> ( ( ap @ ( c_2Ealist_2EALOOKUP @ A_27b @ A_27a ) @ V0l1 )
= ( ap @ ( c_2Ealist_2EALOOKUP @ A_27b @ A_27a ) @ V1l2 ) ) ) ) ) ).
%------------------------------------------------------------------------------