ITP001 Axioms: ITP083^7.ax
%------------------------------------------------------------------------------
% File : ITP083^7 : TPTP v9.0.0. Bugfixed v7.5.0.
% Domain : Interactive Theorem Proving
% Axioms : HOL4 syntactic export, chainy mode
% Version : [BG+19] axioms.
% English :
% Refs : [BG+19] Brown et al. (2019), GRUNGE: A Grand Unified ATP Chall
% : [Gau19] Gauthier (2019), Email to Geoff Sutcliffe
% Source : [BG+19]
% Names : fmaptree.ax [Gau19]
% : HL4083^7.ax [TPAP]
% Status : Satisfiable
% Syntax : Number of formulae : 80 ( 17 unt; 45 typ; 0 def)
% Number of atoms : 129 ( 31 equ; 1 cnn)
% Maximal formula atoms : 7 ( 1 avg)
% Number of connectives : 1342 ( 1 ~; 1 |; 15 &;1288 @)
% ( 11 <=>; 26 =>; 0 <=; 0 <~>)
% Maximal formula depth : 23 ( 10 avg;1288 nst)
% Number of types : 2 ( 1 usr)
% Number of type conns : 180 ( 180 >; 0 *; 0 +; 0 <<)
% Number of symbols : 46 ( 44 usr; 1 con; 0-6 aty)
% Number of variables : 262 ( 24 ^ 169 !; 10 ?; 262 :)
% ( 59 !>; 0 ?*; 0 @-; 0 @+)
% SPC : TH1_SAT_EQU_NAR
% Comments :
% Bugfixes : v7.5.0 - Fixes to the axioms.
%------------------------------------------------------------------------------
thf(tyop_2Efinite__map_2Efmap,type,
tyop_2Efinite__map_2Efmap: $tType > $tType > $tType ).
thf(tyop_2Efmaptree_2Efmaptree,type,
tyop_2Efmaptree_2Efmaptree: $tType > $tType > $tType ).
thf(tyop_2Elist_2Elist,type,
tyop_2Elist_2Elist: $tType > $tType ).
thf(tyop_2Emin_2Ebool,type,
tyop_2Emin_2Ebool: $tType ).
thf(tyop_2Emin_2Efun,type,
tyop_2Emin_2Efun: $tType > $tType > $tType ).
thf(tyop_2Eoption_2Eoption,type,
tyop_2Eoption_2Eoption: $tType > $tType ).
thf(tyop_2Epair_2Eprod,type,
tyop_2Epair_2Eprod: $tType > $tType > $tType ).
thf(c_2Ebool_2E_21,type,
c_2Ebool_2E_21:
!>[A_27a: $tType] : ( ( A_27a > $o ) > $o ) ).
thf(c_2Epair_2E_2C,type,
c_2Epair_2E_2C:
!>[A_27a: $tType,A_27b: $tType] : ( A_27a > A_27b > ( tyop_2Epair_2Eprod @ A_27a @ A_27b ) ) ).
thf(c_2Ebool_2E_2F_5C,type,
c_2Ebool_2E_2F_5C: $o > $o > $o ).
thf(c_2Emin_2E_3D,type,
c_2Emin_2E_3D:
!>[A_27a: $tType] : ( A_27a > A_27a > $o ) ).
thf(c_2Emin_2E_3D_3D_3E,type,
c_2Emin_2E_3D_3D_3E: $o > $o > $o ).
thf(c_2Ebool_2E_3F,type,
c_2Ebool_2E_3F:
!>[A_27a: $tType] : ( ( A_27a > $o ) > $o ) ).
thf(c_2Emin_2E_40,type,
c_2Emin_2E_40:
!>[A_27a: $tType] : ( ( A_27a > $o ) > A_27a ) ).
thf(c_2Elist_2EAPPEND,type,
c_2Elist_2EAPPEND:
!>[A_27a: $tType] : ( ( tyop_2Elist_2Elist @ A_27a ) > ( tyop_2Elist_2Elist @ A_27a ) > ( tyop_2Elist_2Elist @ A_27a ) ) ).
thf(c_2Ebool_2ECOND,type,
c_2Ebool_2ECOND:
!>[A_27a: $tType] : ( $o > A_27a > A_27a > A_27a ) ).
thf(c_2Elist_2ECONS,type,
c_2Elist_2ECONS:
!>[A_27a: $tType] : ( A_27a > ( tyop_2Elist_2Elist @ A_27a ) > ( tyop_2Elist_2Elist @ A_27a ) ) ).
thf(c_2Efinite__map_2EFAPPLY,type,
c_2Efinite__map_2EFAPPLY:
!>[A_27a: $tType,A_27b: $tType] : ( ( tyop_2Efinite__map_2Efmap @ A_27a @ A_27b ) > A_27a > A_27b ) ).
thf(c_2Efinite__map_2EFDOM,type,
c_2Efinite__map_2EFDOM:
!>[A_27a: $tType,A_27b: $tType] : ( ( tyop_2Efinite__map_2Efmap @ A_27a @ A_27b ) > A_27a > $o ) ).
thf(c_2Epred__set_2EFINITE,type,
c_2Epred__set_2EFINITE:
!>[A_27a: $tType] : ( ( A_27a > $o ) > $o ) ).
thf(c_2Efinite__map_2EFLOOKUP,type,
c_2Efinite__map_2EFLOOKUP:
!>[A_27a: $tType,A_27b: $tType] : ( ( tyop_2Efinite__map_2Efmap @ A_27a @ A_27b ) > A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) ).
thf(c_2Efmaptree_2EFTNode,type,
c_2Efmaptree_2EFTNode:
!>[A_27a: $tType,A_27b: $tType] : ( A_27b > ( tyop_2Efinite__map_2Efmap @ A_27a @ ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) ) > ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) ) ).
thf(c_2Efinite__map_2EFUPDATE,type,
c_2Efinite__map_2EFUPDATE:
!>[A_27a: $tType,A_27b: $tType] : ( ( tyop_2Efinite__map_2Efmap @ A_27a @ A_27b ) > ( tyop_2Epair_2Eprod @ A_27a @ A_27b ) > ( tyop_2Efinite__map_2Efmap @ A_27a @ A_27b ) ) ).
thf(c_2Epred__set_2EGSPEC,type,
c_2Epred__set_2EGSPEC:
!>[A_27a: $tType,A_27b: $tType] : ( ( A_27b > ( tyop_2Epair_2Eprod @ A_27a @ $o ) ) > A_27a > $o ) ).
thf(c_2Ebool_2EIN,type,
c_2Ebool_2EIN:
!>[A_27a: $tType] : ( A_27a > ( A_27a > $o ) > $o ) ).
thf(c_2Elist_2ENIL,type,
c_2Elist_2ENIL:
!>[A_27a: $tType] : ( tyop_2Elist_2Elist @ A_27a ) ).
thf(c_2Eoption_2ENONE,type,
c_2Eoption_2ENONE:
!>[A_27a: $tType] : ( tyop_2Eoption_2Eoption @ A_27a ) ).
thf(c_2Eoption_2ESOME,type,
c_2Eoption_2ESOME:
!>[A_27a: $tType] : ( A_27a > ( tyop_2Eoption_2Eoption @ A_27a ) ) ).
thf(c_2Ebool_2ETYPE__DEFINITION,type,
c_2Ebool_2ETYPE__DEFINITION:
!>[A_27a: $tType,A_27b: $tType] : ( ( A_27a > $o ) > ( A_27b > A_27a ) > $o ) ).
thf(c_2Ebool_2E_5C_2F,type,
c_2Ebool_2E_5C_2F: $o > $o > $o ).
thf(c_2Efmaptree_2Eapply__path,type,
c_2Efmaptree_2Eapply__path:
!>[A_27a: $tType,A_27b: $tType] : ( ( tyop_2Elist_2Elist @ A_27a ) > ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) > ( tyop_2Eoption_2Eoption @ ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) ) ) ).
thf(c_2Efmaptree_2Econstruct,type,
c_2Efmaptree_2Econstruct:
!>[A_27a: $tType,A_27b: $tType] : ( A_27a > ( tyop_2Efinite__map_2Efmap @ A_27b @ ( ( tyop_2Elist_2Elist @ A_27b ) > ( tyop_2Eoption_2Eoption @ A_27a ) ) ) > ( tyop_2Elist_2Elist @ A_27b ) > ( tyop_2Eoption_2Eoption @ A_27a ) ) ).
thf(c_2Efmaptree_2Efmtreerec,type,
c_2Efmaptree_2Efmtreerec:
!>[A_27a: $tType,A_27b: $tType,A_27c: $tType] : ( ( A_27b > ( tyop_2Efinite__map_2Efmap @ A_27c @ A_27a ) > ( tyop_2Efinite__map_2Efmap @ A_27c @ ( tyop_2Efmaptree_2Efmaptree @ A_27c @ A_27b ) ) > A_27a ) > ( tyop_2Efmaptree_2Efmaptree @ A_27c @ A_27b ) > A_27a ) ).
thf(c_2Efmaptree_2EfromF,type,
c_2Efmaptree_2EfromF:
!>[A_27key: $tType,A_27value: $tType] : ( ( ( tyop_2Elist_2Elist @ A_27key ) > ( tyop_2Eoption_2Eoption @ A_27value ) ) > ( tyop_2Efmaptree_2Efmaptree @ A_27key @ A_27value ) ) ).
thf(c_2Efmaptree_2Efupd__at__path,type,
c_2Efmaptree_2Efupd__at__path:
!>[A_27a: $tType,A_27b: $tType] : ( ( tyop_2Elist_2Elist @ A_27a ) > ( ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) > ( tyop_2Eoption_2Eoption @ ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) ) ) > ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) > ( tyop_2Eoption_2Eoption @ ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) ) ) ).
thf(c_2Efmaptree_2Eitem,type,
c_2Efmaptree_2Eitem:
!>[A_27a: $tType,A_27b: $tType] : ( ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) > A_27b ) ).
thf(c_2Elist_2Elist__CASE,type,
c_2Elist_2Elist__CASE:
!>[A_27a: $tType,A_27b: $tType] : ( ( tyop_2Elist_2Elist @ A_27a ) > A_27b > ( A_27a > ( tyop_2Elist_2Elist @ A_27a ) > A_27b ) > A_27b ) ).
thf(c_2Efmaptree_2Emap,type,
c_2Efmaptree_2Emap:
!>[A_27a: $tType,A_27b: $tType] : ( ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) > ( tyop_2Efinite__map_2Efmap @ A_27a @ ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) ) ) ).
thf(c_2Efinite__map_2Eo__f,type,
c_2Efinite__map_2Eo__f:
!>[A_27a: $tType,A_27b: $tType,A_27c: $tType] : ( ( A_27b > A_27c ) > ( tyop_2Efinite__map_2Efmap @ A_27a @ A_27b ) > ( tyop_2Efinite__map_2Efmap @ A_27a @ A_27c ) ) ).
thf(c_2Eoption_2Eoption__CASE,type,
c_2Eoption_2Eoption__CASE:
!>[A_27a: $tType,A_27b: $tType] : ( ( tyop_2Eoption_2Eoption @ A_27a ) > A_27b > ( A_27a > A_27b ) > A_27b ) ).
thf(c_2Efmaptree_2Erelrec,type,
c_2Efmaptree_2Erelrec:
!>[A_27a: $tType,A_27b: $tType,A_27c: $tType] : ( ( A_27a > ( tyop_2Efinite__map_2Efmap @ A_27b @ A_27c ) > ( tyop_2Efinite__map_2Efmap @ A_27b @ ( tyop_2Efmaptree_2Efmaptree @ A_27b @ A_27a ) ) > A_27c ) > ( tyop_2Efmaptree_2Efmaptree @ A_27b @ A_27a ) > A_27c > $o ) ).
thf(c_2Efmaptree_2EtoF,type,
c_2Efmaptree_2EtoF:
!>[A_27key: $tType,A_27value: $tType] : ( ( tyop_2Efmaptree_2Efmaptree @ A_27key @ A_27value ) > ( tyop_2Elist_2Elist @ A_27key ) > ( tyop_2Eoption_2Eoption @ A_27value ) ) ).
thf(c_2Efmaptree_2Eupdate__at__path,type,
c_2Efmaptree_2Eupdate__at__path:
!>[A_27a: $tType,A_27b: $tType] : ( ( tyop_2Elist_2Elist @ A_27a ) > A_27b > ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) > ( tyop_2Eoption_2Eoption @ ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) ) ) ).
thf(c_2Efmaptree_2Ewf,type,
c_2Efmaptree_2Ewf:
!>[A_27a: $tType,A_27b: $tType] : ( ( ( tyop_2Elist_2Elist @ A_27b ) > ( tyop_2Eoption_2Eoption @ A_27a ) ) > $o ) ).
thf(c_2Ebool_2E_7E,type,
c_2Ebool_2E_7E: $o > $o ).
thf(logicdef_2E_2F_5C,axiom,
! [V0: $o,V1: $o] :
( ( c_2Ebool_2E_2F_5C @ V0 @ V1 )
<=> ( V0
& V1 ) ) ).
thf(logicdef_2E_5C_2F,axiom,
! [V0: $o,V1: $o] :
( ( c_2Ebool_2E_5C_2F @ V0 @ V1 )
<=> ( V0
| V1 ) ) ).
thf(logicdef_2E_7E,axiom,
! [V0: $o] :
( ( c_2Ebool_2E_7E @ V0 )
<=> ( (~) @ V0 ) ) ).
thf(logicdef_2E_3D_3D_3E,axiom,
! [V0: $o,V1: $o] :
( ( c_2Emin_2E_3D_3D_3E @ V0 @ V1 )
<=> ( V0
=> V1 ) ) ).
thf(logicdef_2E_3D,axiom,
! [A_27a: $tType,V0: A_27a,V1: A_27a] :
( ( c_2Emin_2E_3D @ A_27a @ V0 @ V1 )
<=> ( V0 = V1 ) ) ).
thf(quantdef_2E_21,axiom,
! [A_27a: $tType,V0f: A_27a > $o] :
( ( c_2Ebool_2E_21 @ A_27a @ V0f )
<=> ! [V1x: A_27a] : ( V0f @ V1x ) ) ).
thf(quantdef_2E_3F,axiom,
! [A_27a: $tType,V0f: A_27a > $o] :
( ( c_2Ebool_2E_3F @ A_27a @ V0f )
<=> ? [V1x: A_27a] : ( V0f @ V1x ) ) ).
thf(thm_2Efmaptree_2Econstruct__def,axiom,
! [A_27a: $tType,A_27b: $tType,V0a: A_27a,V1kfm: tyop_2Efinite__map_2Efmap @ A_27b @ ( ( tyop_2Elist_2Elist @ A_27b ) > ( tyop_2Eoption_2Eoption @ A_27a ) ),V2kl: tyop_2Elist_2Elist @ A_27b] :
( ( c_2Efmaptree_2Econstruct @ A_27a @ A_27b @ V0a @ V1kfm @ V2kl )
= ( c_2Elist_2Elist__CASE @ A_27b @ ( tyop_2Eoption_2Eoption @ A_27a ) @ V2kl @ ( c_2Eoption_2ESOME @ A_27a @ V0a )
@ ^ [V3h: A_27b,V4t: tyop_2Elist_2Elist @ A_27b] : ( c_2Ebool_2ECOND @ ( tyop_2Eoption_2Eoption @ A_27a ) @ ( c_2Ebool_2EIN @ A_27b @ V3h @ ( c_2Efinite__map_2EFDOM @ A_27b @ ( ( tyop_2Elist_2Elist @ A_27b ) > ( tyop_2Eoption_2Eoption @ A_27a ) ) @ V1kfm ) ) @ ( c_2Efinite__map_2EFAPPLY @ A_27b @ ( ( tyop_2Elist_2Elist @ A_27b ) > ( tyop_2Eoption_2Eoption @ A_27a ) ) @ V1kfm @ V3h @ V4t ) @ ( c_2Eoption_2ENONE @ A_27a ) ) ) ) ).
thf(thm_2Efmaptree_2Ewf__def,axiom,
! [A_27a: $tType,A_27b: $tType] :
( ( c_2Efmaptree_2Ewf @ A_27a @ A_27b )
= ( ^ [V0a0: ( tyop_2Elist_2Elist @ A_27b ) > ( tyop_2Eoption_2Eoption @ A_27a )] :
( c_2Ebool_2E_21 @ ( ( ( tyop_2Elist_2Elist @ A_27b ) > ( tyop_2Eoption_2Eoption @ A_27a ) ) > $o )
@ ^ [V1wf_27: ( ( tyop_2Elist_2Elist @ A_27b ) > ( tyop_2Eoption_2Eoption @ A_27a ) ) > $o] :
( c_2Emin_2E_3D_3D_3E
@ ( c_2Ebool_2E_21 @ ( ( tyop_2Elist_2Elist @ A_27b ) > ( tyop_2Eoption_2Eoption @ A_27a ) )
@ ^ [V2a0: ( tyop_2Elist_2Elist @ A_27b ) > ( tyop_2Eoption_2Eoption @ A_27a )] :
( c_2Emin_2E_3D_3D_3E
@ ( c_2Ebool_2E_3F @ A_27a
@ ^ [V3a: A_27a] :
( c_2Ebool_2E_3F @ ( tyop_2Efinite__map_2Efmap @ A_27b @ ( ( tyop_2Elist_2Elist @ A_27b ) > ( tyop_2Eoption_2Eoption @ A_27a ) ) )
@ ^ [V4fm: tyop_2Efinite__map_2Efmap @ A_27b @ ( ( tyop_2Elist_2Elist @ A_27b ) > ( tyop_2Eoption_2Eoption @ A_27a ) )] :
( c_2Ebool_2E_2F_5C @ ( c_2Emin_2E_3D @ ( ( tyop_2Elist_2Elist @ A_27b ) > ( tyop_2Eoption_2Eoption @ A_27a ) ) @ V2a0 @ ( c_2Efmaptree_2Econstruct @ A_27a @ A_27b @ V3a @ V4fm ) )
@ ( c_2Ebool_2E_21 @ A_27b
@ ^ [V5k: A_27b] : ( c_2Emin_2E_3D_3D_3E @ ( c_2Ebool_2EIN @ A_27b @ V5k @ ( c_2Efinite__map_2EFDOM @ A_27b @ ( ( tyop_2Elist_2Elist @ A_27b ) > ( tyop_2Eoption_2Eoption @ A_27a ) ) @ V4fm ) ) @ ( V1wf_27 @ ( c_2Efinite__map_2EFAPPLY @ A_27b @ ( ( tyop_2Elist_2Elist @ A_27b ) > ( tyop_2Eoption_2Eoption @ A_27a ) ) @ V4fm @ V5k ) ) ) ) ) ) )
@ ( V1wf_27 @ V2a0 ) ) )
@ ( V1wf_27 @ V0a0 ) ) ) ) ) ).
thf(thm_2Efmaptree_2Efmaptree__TY__DEF,axiom,
! [A_27key: $tType,A_27value: $tType] :
? [V0rep: ( tyop_2Efmaptree_2Efmaptree @ A_27key @ A_27value ) > ( tyop_2Elist_2Elist @ A_27key ) > ( tyop_2Eoption_2Eoption @ A_27value )] : ( c_2Ebool_2ETYPE__DEFINITION @ ( ( tyop_2Elist_2Elist @ A_27key ) > ( tyop_2Eoption_2Eoption @ A_27value ) ) @ ( tyop_2Efmaptree_2Efmaptree @ A_27key @ A_27value ) @ ( c_2Efmaptree_2Ewf @ A_27value @ A_27key ) @ V0rep ) ).
thf(thm_2Efmaptree_2Efmap__bij__thm,axiom,
! [A_27key: $tType,A_27value: $tType] :
( ! [V0a: tyop_2Efmaptree_2Efmaptree @ A_27key @ A_27value] :
( ( c_2Efmaptree_2EfromF @ A_27key @ A_27value @ ( c_2Efmaptree_2EtoF @ A_27key @ A_27value @ V0a ) )
= V0a )
& ! [V1r: ( tyop_2Elist_2Elist @ A_27key ) > ( tyop_2Eoption_2Eoption @ A_27value )] :
( ( c_2Efmaptree_2Ewf @ A_27value @ A_27key @ V1r )
<=> ( ( c_2Efmaptree_2EtoF @ A_27key @ A_27value @ ( c_2Efmaptree_2EfromF @ A_27key @ A_27value @ V1r ) )
= V1r ) ) ) ).
thf(thm_2Efmaptree_2EFTNode__def,axiom,
! [A_27a: $tType,A_27b: $tType,V0i: A_27b,V1fm: tyop_2Efinite__map_2Efmap @ A_27a @ ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b )] :
( ( c_2Efmaptree_2EFTNode @ A_27a @ A_27b @ V0i @ V1fm )
= ( c_2Efmaptree_2EfromF @ A_27a @ A_27b @ ( c_2Efmaptree_2Econstruct @ A_27b @ A_27a @ V0i @ ( c_2Efinite__map_2Eo__f @ A_27a @ ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) @ ( ( tyop_2Elist_2Elist @ A_27a ) > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ ( c_2Efmaptree_2EtoF @ A_27a @ A_27b ) @ V1fm ) ) ) ) ).
thf(thm_2Efmaptree_2Eitem__map__def,axiom,
! [A_27a: $tType,A_27b: $tType,V0ft: tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b] :
( V0ft
= ( c_2Efmaptree_2EFTNode @ A_27a @ A_27b @ ( c_2Efmaptree_2Eitem @ A_27a @ A_27b @ V0ft ) @ ( c_2Efmaptree_2Emap @ A_27a @ A_27b @ V0ft ) ) ) ).
thf(thm_2Efmaptree_2Eapply__path__def,axiom,
! [A_27a: $tType,A_27b: $tType] :
( ! [V0ft: tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b] :
( ( c_2Efmaptree_2Eapply__path @ A_27a @ A_27b @ ( c_2Elist_2ENIL @ A_27a ) @ V0ft )
= ( c_2Eoption_2ESOME @ ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) @ V0ft ) )
& ! [V1h: A_27a,V2t: tyop_2Elist_2Elist @ A_27a,V3ft: tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b] :
( ( c_2Efmaptree_2Eapply__path @ A_27a @ A_27b @ ( c_2Elist_2ECONS @ A_27a @ V1h @ V2t ) @ V3ft )
= ( c_2Ebool_2ECOND @ ( tyop_2Eoption_2Eoption @ ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) ) @ ( c_2Ebool_2EIN @ A_27a @ V1h @ ( c_2Efinite__map_2EFDOM @ A_27a @ ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) @ ( c_2Efmaptree_2Emap @ A_27a @ A_27b @ V3ft ) ) ) @ ( c_2Efmaptree_2Eapply__path @ A_27a @ A_27b @ V2t @ ( c_2Efinite__map_2EFAPPLY @ A_27a @ ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) @ ( c_2Efmaptree_2Emap @ A_27a @ A_27b @ V3ft ) @ V1h ) ) @ ( c_2Eoption_2ENONE @ ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) ) ) ) ) ).
thf(thm_2Efmaptree_2Eupdate__at__path__def,axiom,
! [A_27a: $tType,A_27b: $tType] :
( ! [V0a: A_27b,V1ft: tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b] :
( ( c_2Efmaptree_2Eupdate__at__path @ A_27a @ A_27b @ ( c_2Elist_2ENIL @ A_27a ) @ V0a @ V1ft )
= ( c_2Eoption_2ESOME @ ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) @ ( c_2Efmaptree_2EFTNode @ A_27a @ A_27b @ V0a @ ( c_2Efmaptree_2Emap @ A_27a @ A_27b @ V1ft ) ) ) )
& ! [V2h: A_27a,V3t: tyop_2Elist_2Elist @ A_27a,V4a: A_27b,V5ft: tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b] :
( ( c_2Efmaptree_2Eupdate__at__path @ A_27a @ A_27b @ ( c_2Elist_2ECONS @ A_27a @ V2h @ V3t ) @ V4a @ V5ft )
= ( c_2Ebool_2ECOND @ ( tyop_2Eoption_2Eoption @ ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) ) @ ( c_2Ebool_2EIN @ A_27a @ V2h @ ( c_2Efinite__map_2EFDOM @ A_27a @ ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) @ ( c_2Efmaptree_2Emap @ A_27a @ A_27b @ V5ft ) ) )
@ ( c_2Eoption_2Eoption__CASE @ ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) @ ( tyop_2Eoption_2Eoption @ ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) ) @ ( c_2Efmaptree_2Eupdate__at__path @ A_27a @ A_27b @ V3t @ V4a @ ( c_2Efinite__map_2EFAPPLY @ A_27a @ ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) @ ( c_2Efmaptree_2Emap @ A_27a @ A_27b @ V5ft ) @ V2h ) ) @ ( c_2Eoption_2ENONE @ ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) )
@ ^ [V6ft_27: tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b] : ( c_2Eoption_2ESOME @ ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) @ ( c_2Efmaptree_2EFTNode @ A_27a @ A_27b @ ( c_2Efmaptree_2Eitem @ A_27a @ A_27b @ V5ft ) @ ( c_2Efinite__map_2EFUPDATE @ A_27a @ ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) @ ( c_2Efmaptree_2Emap @ A_27a @ A_27b @ V5ft ) @ ( c_2Epair_2E_2C @ A_27a @ ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) @ V2h @ V6ft_27 ) ) ) ) )
@ ( c_2Eoption_2ENONE @ ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) ) ) ) ) ).
thf(thm_2Efmaptree_2Efupd__at__path__def,axiom,
! [A_27a: $tType,A_27b: $tType] :
( ! [V0f: ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) > ( tyop_2Eoption_2Eoption @ ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) ),V1ft: tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b] :
( ( c_2Efmaptree_2Efupd__at__path @ A_27a @ A_27b @ ( c_2Elist_2ENIL @ A_27a ) @ V0f @ V1ft )
= ( V0f @ V1ft ) )
& ! [V2h: A_27a,V3t: tyop_2Elist_2Elist @ A_27a,V4f: ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) > ( tyop_2Eoption_2Eoption @ ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) ),V5ft: tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b] :
( ( c_2Efmaptree_2Efupd__at__path @ A_27a @ A_27b @ ( c_2Elist_2ECONS @ A_27a @ V2h @ V3t ) @ V4f @ V5ft )
= ( c_2Ebool_2ECOND @ ( tyop_2Eoption_2Eoption @ ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) ) @ ( c_2Ebool_2EIN @ A_27a @ V2h @ ( c_2Efinite__map_2EFDOM @ A_27a @ ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) @ ( c_2Efmaptree_2Emap @ A_27a @ A_27b @ V5ft ) ) )
@ ( c_2Eoption_2Eoption__CASE @ ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) @ ( tyop_2Eoption_2Eoption @ ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) ) @ ( c_2Efmaptree_2Efupd__at__path @ A_27a @ A_27b @ V3t @ V4f @ ( c_2Efinite__map_2EFAPPLY @ A_27a @ ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) @ ( c_2Efmaptree_2Emap @ A_27a @ A_27b @ V5ft ) @ V2h ) ) @ ( c_2Eoption_2ENONE @ ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) )
@ ^ [V6ft_27: tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b] : ( c_2Eoption_2ESOME @ ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) @ ( c_2Efmaptree_2EFTNode @ A_27a @ A_27b @ ( c_2Efmaptree_2Eitem @ A_27a @ A_27b @ V5ft ) @ ( c_2Efinite__map_2EFUPDATE @ A_27a @ ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) @ ( c_2Efmaptree_2Emap @ A_27a @ A_27b @ V5ft ) @ ( c_2Epair_2E_2C @ A_27a @ ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) @ V2h @ V6ft_27 ) ) ) ) )
@ ( c_2Eoption_2ENONE @ ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) ) ) ) ) ).
thf(thm_2Efmaptree_2Erelrec__def,axiom,
! [A_27a: $tType,A_27b: $tType,A_27c: $tType] :
( ( c_2Efmaptree_2Erelrec @ A_27a @ A_27b @ A_27c )
= ( ^ [V0h: A_27a > ( tyop_2Efinite__map_2Efmap @ A_27b @ A_27c ) > ( tyop_2Efinite__map_2Efmap @ A_27b @ ( tyop_2Efmaptree_2Efmaptree @ A_27b @ A_27a ) ) > A_27c,V1a0: tyop_2Efmaptree_2Efmaptree @ A_27b @ A_27a,V2a1: A_27c] :
( c_2Ebool_2E_21 @ ( ( tyop_2Efmaptree_2Efmaptree @ A_27b @ A_27a ) > A_27c > $o )
@ ^ [V3relrec_27: ( tyop_2Efmaptree_2Efmaptree @ A_27b @ A_27a ) > A_27c > $o] :
( c_2Emin_2E_3D_3D_3E
@ ( c_2Ebool_2E_21 @ ( tyop_2Efmaptree_2Efmaptree @ A_27b @ A_27a )
@ ^ [V4a0: tyop_2Efmaptree_2Efmaptree @ A_27b @ A_27a] :
( c_2Ebool_2E_21 @ A_27c
@ ^ [V5a1: A_27c] :
( c_2Emin_2E_3D_3D_3E
@ ( c_2Ebool_2E_3F @ A_27a
@ ^ [V6i: A_27a] :
( c_2Ebool_2E_3F @ ( tyop_2Efinite__map_2Efmap @ A_27b @ ( tyop_2Efmaptree_2Efmaptree @ A_27b @ A_27a ) )
@ ^ [V7fm: tyop_2Efinite__map_2Efmap @ A_27b @ ( tyop_2Efmaptree_2Efmaptree @ A_27b @ A_27a )] :
( c_2Ebool_2E_3F @ ( tyop_2Efinite__map_2Efmap @ A_27b @ A_27c )
@ ^ [V8rfm: tyop_2Efinite__map_2Efmap @ A_27b @ A_27c] :
( c_2Ebool_2E_2F_5C @ ( c_2Emin_2E_3D @ ( tyop_2Efmaptree_2Efmaptree @ A_27b @ A_27a ) @ V4a0 @ ( c_2Efmaptree_2EFTNode @ A_27b @ A_27a @ V6i @ V7fm ) )
@ ( c_2Ebool_2E_2F_5C @ ( c_2Emin_2E_3D @ A_27c @ V5a1 @ ( V0h @ V6i @ V8rfm @ V7fm ) )
@ ( c_2Ebool_2E_2F_5C @ ( c_2Emin_2E_3D @ ( A_27b > $o ) @ ( c_2Efinite__map_2EFDOM @ A_27b @ A_27c @ V8rfm ) @ ( c_2Efinite__map_2EFDOM @ A_27b @ ( tyop_2Efmaptree_2Efmaptree @ A_27b @ A_27a ) @ V7fm ) )
@ ( c_2Ebool_2E_21 @ A_27b
@ ^ [V9d: A_27b] : ( c_2Emin_2E_3D_3D_3E @ ( c_2Ebool_2EIN @ A_27b @ V9d @ ( c_2Efinite__map_2EFDOM @ A_27b @ ( tyop_2Efmaptree_2Efmaptree @ A_27b @ A_27a ) @ V7fm ) ) @ ( V3relrec_27 @ ( c_2Efinite__map_2EFAPPLY @ A_27b @ ( tyop_2Efmaptree_2Efmaptree @ A_27b @ A_27a ) @ V7fm @ V9d ) @ ( c_2Efinite__map_2EFAPPLY @ A_27b @ A_27c @ V8rfm @ V9d ) ) ) ) ) ) ) ) ) )
@ ( V3relrec_27 @ V4a0 @ V5a1 ) ) ) )
@ ( V3relrec_27 @ V1a0 @ V2a1 ) ) ) ) ) ).
thf(thm_2Efmaptree_2Efmtreerec__def,axiom,
! [A_27a: $tType,A_27b: $tType,A_27c: $tType,V0h: A_27b > ( tyop_2Efinite__map_2Efmap @ A_27c @ A_27a ) > ( tyop_2Efinite__map_2Efmap @ A_27c @ ( tyop_2Efmaptree_2Efmaptree @ A_27c @ A_27b ) ) > A_27a,V1ft: tyop_2Efmaptree_2Efmaptree @ A_27c @ A_27b] :
( ( c_2Efmaptree_2Efmtreerec @ A_27a @ A_27b @ A_27c @ V0h @ V1ft )
= ( c_2Emin_2E_40 @ A_27a
@ ^ [V2r: A_27a] : ( c_2Efmaptree_2Erelrec @ A_27b @ A_27c @ A_27a @ V0h @ V1ft @ V2r ) ) ) ).
thf(thm_2Efmaptree_2Ewf__rules,axiom,
! [A_27a: $tType,A_27b: $tType,V0a: A_27a,V1fm: tyop_2Efinite__map_2Efmap @ A_27b @ ( ( tyop_2Elist_2Elist @ A_27b ) > ( tyop_2Eoption_2Eoption @ A_27a ) )] :
( ! [V2k: A_27b] :
( ( c_2Ebool_2EIN @ A_27b @ V2k @ ( c_2Efinite__map_2EFDOM @ A_27b @ ( ( tyop_2Elist_2Elist @ A_27b ) > ( tyop_2Eoption_2Eoption @ A_27a ) ) @ V1fm ) )
=> ( c_2Efmaptree_2Ewf @ A_27a @ A_27b @ ( c_2Efinite__map_2EFAPPLY @ A_27b @ ( ( tyop_2Elist_2Elist @ A_27b ) > ( tyop_2Eoption_2Eoption @ A_27a ) ) @ V1fm @ V2k ) ) )
=> ( c_2Efmaptree_2Ewf @ A_27a @ A_27b @ ( c_2Efmaptree_2Econstruct @ A_27a @ A_27b @ V0a @ V1fm ) ) ) ).
thf(thm_2Efmaptree_2Ewf__ind,axiom,
! [A_27a: $tType,A_27b: $tType,V0wf_27: ( ( tyop_2Elist_2Elist @ A_27b ) > ( tyop_2Eoption_2Eoption @ A_27a ) ) > $o] :
( ! [V1a: A_27a,V2fm: tyop_2Efinite__map_2Efmap @ A_27b @ ( ( tyop_2Elist_2Elist @ A_27b ) > ( tyop_2Eoption_2Eoption @ A_27a ) )] :
( ! [V3k: A_27b] :
( ( c_2Ebool_2EIN @ A_27b @ V3k @ ( c_2Efinite__map_2EFDOM @ A_27b @ ( ( tyop_2Elist_2Elist @ A_27b ) > ( tyop_2Eoption_2Eoption @ A_27a ) ) @ V2fm ) )
=> ( V0wf_27 @ ( c_2Efinite__map_2EFAPPLY @ A_27b @ ( ( tyop_2Elist_2Elist @ A_27b ) > ( tyop_2Eoption_2Eoption @ A_27a ) ) @ V2fm @ V3k ) ) )
=> ( V0wf_27 @ ( c_2Efmaptree_2Econstruct @ A_27a @ A_27b @ V1a @ V2fm ) ) )
=> ! [V4a0: ( tyop_2Elist_2Elist @ A_27b ) > ( tyop_2Eoption_2Eoption @ A_27a )] :
( ( c_2Efmaptree_2Ewf @ A_27a @ A_27b @ V4a0 )
=> ( V0wf_27 @ V4a0 ) ) ) ).
thf(thm_2Efmaptree_2Ewf__strongind,axiom,
! [A_27a: $tType,A_27b: $tType,V0wf_27: ( ( tyop_2Elist_2Elist @ A_27b ) > ( tyop_2Eoption_2Eoption @ A_27a ) ) > $o] :
( ! [V1a: A_27a,V2fm: tyop_2Efinite__map_2Efmap @ A_27b @ ( ( tyop_2Elist_2Elist @ A_27b ) > ( tyop_2Eoption_2Eoption @ A_27a ) )] :
( ! [V3k: A_27b] :
( ( c_2Ebool_2EIN @ A_27b @ V3k @ ( c_2Efinite__map_2EFDOM @ A_27b @ ( ( tyop_2Elist_2Elist @ A_27b ) > ( tyop_2Eoption_2Eoption @ A_27a ) ) @ V2fm ) )
=> ( ( c_2Efmaptree_2Ewf @ A_27a @ A_27b @ ( c_2Efinite__map_2EFAPPLY @ A_27b @ ( ( tyop_2Elist_2Elist @ A_27b ) > ( tyop_2Eoption_2Eoption @ A_27a ) ) @ V2fm @ V3k ) )
& ( V0wf_27 @ ( c_2Efinite__map_2EFAPPLY @ A_27b @ ( ( tyop_2Elist_2Elist @ A_27b ) > ( tyop_2Eoption_2Eoption @ A_27a ) ) @ V2fm @ V3k ) ) ) )
=> ( V0wf_27 @ ( c_2Efmaptree_2Econstruct @ A_27a @ A_27b @ V1a @ V2fm ) ) )
=> ! [V4a0: ( tyop_2Elist_2Elist @ A_27b ) > ( tyop_2Eoption_2Eoption @ A_27a )] :
( ( c_2Efmaptree_2Ewf @ A_27a @ A_27b @ V4a0 )
=> ( V0wf_27 @ V4a0 ) ) ) ).
thf(thm_2Efmaptree_2Ewf__cases,axiom,
! [A_27a: $tType,A_27b: $tType,V0a0: ( tyop_2Elist_2Elist @ A_27b ) > ( tyop_2Eoption_2Eoption @ A_27a )] :
( ( c_2Efmaptree_2Ewf @ A_27a @ A_27b @ V0a0 )
<=> ? [V1a: A_27a,V2fm: tyop_2Efinite__map_2Efmap @ A_27b @ ( ( tyop_2Elist_2Elist @ A_27b ) > ( tyop_2Eoption_2Eoption @ A_27a ) )] :
( ( V0a0
= ( c_2Efmaptree_2Econstruct @ A_27a @ A_27b @ V1a @ V2fm ) )
& ! [V3k: A_27b] :
( ( c_2Ebool_2EIN @ A_27b @ V3k @ ( c_2Efinite__map_2EFDOM @ A_27b @ ( ( tyop_2Elist_2Elist @ A_27b ) > ( tyop_2Eoption_2Eoption @ A_27a ) ) @ V2fm ) )
=> ( c_2Efmaptree_2Ewf @ A_27a @ A_27b @ ( c_2Efinite__map_2EFAPPLY @ A_27b @ ( ( tyop_2Elist_2Elist @ A_27b ) > ( tyop_2Eoption_2Eoption @ A_27a ) ) @ V2fm @ V3k ) ) ) ) ) ).
thf(thm_2Efmaptree_2EFTNode__11,axiom,
! [A_27a: $tType,A_27b: $tType,V0i2: A_27b,V1i1: A_27b,V2f2: tyop_2Efinite__map_2Efmap @ A_27a @ ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ),V3f1: tyop_2Efinite__map_2Efmap @ A_27a @ ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b )] :
( ( ( c_2Efmaptree_2EFTNode @ A_27a @ A_27b @ V1i1 @ V3f1 )
= ( c_2Efmaptree_2EFTNode @ A_27a @ A_27b @ V0i2 @ V2f2 ) )
<=> ( ( V1i1 = V0i2 )
& ( V3f1 = V2f2 ) ) ) ).
thf(thm_2Efmaptree_2Efmaptree__nchotomy,axiom,
! [A_27a: $tType,A_27b: $tType,V0ft: tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b] :
? [V1i: A_27b,V2fm: tyop_2Efinite__map_2Efmap @ A_27a @ ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b )] :
( V0ft
= ( c_2Efmaptree_2EFTNode @ A_27a @ A_27b @ V1i @ V2fm ) ) ).
thf(thm_2Efmaptree_2Eitem__thm,axiom,
! [A_27a: $tType,A_27b: $tType,V0i: A_27a,V1fm: tyop_2Efinite__map_2Efmap @ A_27b @ ( tyop_2Efmaptree_2Efmaptree @ A_27b @ A_27a )] :
( ( c_2Efmaptree_2Eitem @ A_27b @ A_27a @ ( c_2Efmaptree_2EFTNode @ A_27b @ A_27a @ V0i @ V1fm ) )
= V0i ) ).
thf(thm_2Efmaptree_2Emap__thm,axiom,
! [A_27a: $tType,A_27b: $tType,V0i: A_27a,V1fm: tyop_2Efinite__map_2Efmap @ A_27b @ ( tyop_2Efmaptree_2Efmaptree @ A_27b @ A_27a )] :
( ( c_2Efmaptree_2Emap @ A_27b @ A_27a @ ( c_2Efmaptree_2EFTNode @ A_27b @ A_27a @ V0i @ V1fm ) )
= V1fm ) ).
thf(thm_2Efmaptree_2Eft__ind,axiom,
! [A_27a: $tType,A_27b: $tType,V0P: ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) > $o] :
( ! [V1a: A_27b,V2fm: tyop_2Efinite__map_2Efmap @ A_27a @ ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b )] :
( ! [V3k: A_27a] :
( ( c_2Ebool_2EIN @ A_27a @ V3k @ ( c_2Efinite__map_2EFDOM @ A_27a @ ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) @ V2fm ) )
=> ( V0P @ ( c_2Efinite__map_2EFAPPLY @ A_27a @ ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) @ V2fm @ V3k ) ) )
=> ( V0P @ ( c_2Efmaptree_2EFTNode @ A_27a @ A_27b @ V1a @ V2fm ) ) )
=> ! [V4ft: tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b] : ( V0P @ V4ft ) ) ).
thf(thm_2Efmaptree_2Eapplicable__paths__FINITE,axiom,
! [A_27a: $tType,A_27b: $tType,V0ft: tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b] :
( c_2Epred__set_2EFINITE @ ( tyop_2Elist_2Elist @ A_27a )
@ ( c_2Epred__set_2EGSPEC @ ( tyop_2Elist_2Elist @ A_27a ) @ ( tyop_2Elist_2Elist @ A_27a )
@ ^ [V1p: tyop_2Elist_2Elist @ A_27a] :
( c_2Epair_2E_2C @ ( tyop_2Elist_2Elist @ A_27a ) @ $o @ V1p
@ ( c_2Ebool_2E_3F @ ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b )
@ ^ [V2ft_27: tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b] : ( c_2Emin_2E_3D @ ( tyop_2Eoption_2Eoption @ ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) ) @ ( c_2Efmaptree_2Eapply__path @ A_27a @ A_27b @ V1p @ V0ft ) @ ( c_2Eoption_2ESOME @ ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) @ V2ft_27 ) ) ) ) ) ) ).
thf(thm_2Efmaptree_2Eapply__path__SNOC,axiom,
! [A_27a: $tType,A_27b: $tType,V0ft: tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b,V1x: A_27a,V2p: tyop_2Elist_2Elist @ A_27a] :
( ( c_2Efmaptree_2Eapply__path @ A_27a @ A_27b @ ( c_2Elist_2EAPPEND @ A_27a @ V2p @ ( c_2Elist_2ECONS @ A_27a @ V1x @ ( c_2Elist_2ENIL @ A_27a ) ) ) @ V0ft )
= ( c_2Eoption_2Eoption__CASE @ ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) @ ( tyop_2Eoption_2Eoption @ ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) ) @ ( c_2Efmaptree_2Eapply__path @ A_27a @ A_27b @ V2p @ V0ft ) @ ( c_2Eoption_2ENONE @ ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) )
@ ^ [V3ft_27: tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b] : ( c_2Efinite__map_2EFLOOKUP @ A_27a @ ( tyop_2Efmaptree_2Efmaptree @ A_27a @ A_27b ) @ ( c_2Efmaptree_2Emap @ A_27a @ A_27b @ V3ft_27 ) @ V1x ) ) ) ).
thf(thm_2Efmaptree_2Erelrec__rules,axiom,
! [A_27a: $tType,A_27b: $tType,A_27c: $tType,V0h: A_27a > ( tyop_2Efinite__map_2Efmap @ A_27b @ A_27c ) > ( tyop_2Efinite__map_2Efmap @ A_27b @ ( tyop_2Efmaptree_2Efmaptree @ A_27b @ A_27a ) ) > A_27c,V1i: A_27a,V2fm: tyop_2Efinite__map_2Efmap @ A_27b @ ( tyop_2Efmaptree_2Efmaptree @ A_27b @ A_27a ),V3rfm: tyop_2Efinite__map_2Efmap @ A_27b @ A_27c] :
( ( ( ( c_2Efinite__map_2EFDOM @ A_27b @ A_27c @ V3rfm )
= ( c_2Efinite__map_2EFDOM @ A_27b @ ( tyop_2Efmaptree_2Efmaptree @ A_27b @ A_27a ) @ V2fm ) )
& ! [V4d: A_27b] :
( ( c_2Ebool_2EIN @ A_27b @ V4d @ ( c_2Efinite__map_2EFDOM @ A_27b @ ( tyop_2Efmaptree_2Efmaptree @ A_27b @ A_27a ) @ V2fm ) )
=> ( c_2Efmaptree_2Erelrec @ A_27a @ A_27b @ A_27c @ V0h @ ( c_2Efinite__map_2EFAPPLY @ A_27b @ ( tyop_2Efmaptree_2Efmaptree @ A_27b @ A_27a ) @ V2fm @ V4d ) @ ( c_2Efinite__map_2EFAPPLY @ A_27b @ A_27c @ V3rfm @ V4d ) ) ) )
=> ( c_2Efmaptree_2Erelrec @ A_27a @ A_27b @ A_27c @ V0h @ ( c_2Efmaptree_2EFTNode @ A_27b @ A_27a @ V1i @ V2fm ) @ ( V0h @ V1i @ V3rfm @ V2fm ) ) ) ).
thf(thm_2Efmaptree_2Erelrec__ind,axiom,
! [A_27a: $tType,A_27b: $tType,A_27c: $tType,V0h: A_27a > ( tyop_2Efinite__map_2Efmap @ A_27b @ A_27c ) > ( tyop_2Efinite__map_2Efmap @ A_27b @ ( tyop_2Efmaptree_2Efmaptree @ A_27b @ A_27a ) ) > A_27c,V1relrec_27: ( tyop_2Efmaptree_2Efmaptree @ A_27b @ A_27a ) > A_27c > $o] :
( ! [V2i: A_27a,V3fm: tyop_2Efinite__map_2Efmap @ A_27b @ ( tyop_2Efmaptree_2Efmaptree @ A_27b @ A_27a ),V4rfm: tyop_2Efinite__map_2Efmap @ A_27b @ A_27c] :
( ( ( ( c_2Efinite__map_2EFDOM @ A_27b @ A_27c @ V4rfm )
= ( c_2Efinite__map_2EFDOM @ A_27b @ ( tyop_2Efmaptree_2Efmaptree @ A_27b @ A_27a ) @ V3fm ) )
& ! [V5d: A_27b] :
( ( c_2Ebool_2EIN @ A_27b @ V5d @ ( c_2Efinite__map_2EFDOM @ A_27b @ ( tyop_2Efmaptree_2Efmaptree @ A_27b @ A_27a ) @ V3fm ) )
=> ( V1relrec_27 @ ( c_2Efinite__map_2EFAPPLY @ A_27b @ ( tyop_2Efmaptree_2Efmaptree @ A_27b @ A_27a ) @ V3fm @ V5d ) @ ( c_2Efinite__map_2EFAPPLY @ A_27b @ A_27c @ V4rfm @ V5d ) ) ) )
=> ( V1relrec_27 @ ( c_2Efmaptree_2EFTNode @ A_27b @ A_27a @ V2i @ V3fm ) @ ( V0h @ V2i @ V4rfm @ V3fm ) ) )
=> ! [V6a0: tyop_2Efmaptree_2Efmaptree @ A_27b @ A_27a,V7a1: A_27c] :
( ( c_2Efmaptree_2Erelrec @ A_27a @ A_27b @ A_27c @ V0h @ V6a0 @ V7a1 )
=> ( V1relrec_27 @ V6a0 @ V7a1 ) ) ) ).
thf(thm_2Efmaptree_2Erelrec__strongind,axiom,
! [A_27a: $tType,A_27b: $tType,A_27c: $tType,V0h: A_27a > ( tyop_2Efinite__map_2Efmap @ A_27b @ A_27c ) > ( tyop_2Efinite__map_2Efmap @ A_27b @ ( tyop_2Efmaptree_2Efmaptree @ A_27b @ A_27a ) ) > A_27c,V1relrec_27: ( tyop_2Efmaptree_2Efmaptree @ A_27b @ A_27a ) > A_27c > $o] :
( ! [V2i: A_27a,V3fm: tyop_2Efinite__map_2Efmap @ A_27b @ ( tyop_2Efmaptree_2Efmaptree @ A_27b @ A_27a ),V4rfm: tyop_2Efinite__map_2Efmap @ A_27b @ A_27c] :
( ( ( ( c_2Efinite__map_2EFDOM @ A_27b @ A_27c @ V4rfm )
= ( c_2Efinite__map_2EFDOM @ A_27b @ ( tyop_2Efmaptree_2Efmaptree @ A_27b @ A_27a ) @ V3fm ) )
& ! [V5d: A_27b] :
( ( c_2Ebool_2EIN @ A_27b @ V5d @ ( c_2Efinite__map_2EFDOM @ A_27b @ ( tyop_2Efmaptree_2Efmaptree @ A_27b @ A_27a ) @ V3fm ) )
=> ( ( c_2Efmaptree_2Erelrec @ A_27a @ A_27b @ A_27c @ V0h @ ( c_2Efinite__map_2EFAPPLY @ A_27b @ ( tyop_2Efmaptree_2Efmaptree @ A_27b @ A_27a ) @ V3fm @ V5d ) @ ( c_2Efinite__map_2EFAPPLY @ A_27b @ A_27c @ V4rfm @ V5d ) )
& ( V1relrec_27 @ ( c_2Efinite__map_2EFAPPLY @ A_27b @ ( tyop_2Efmaptree_2Efmaptree @ A_27b @ A_27a ) @ V3fm @ V5d ) @ ( c_2Efinite__map_2EFAPPLY @ A_27b @ A_27c @ V4rfm @ V5d ) ) ) ) )
=> ( V1relrec_27 @ ( c_2Efmaptree_2EFTNode @ A_27b @ A_27a @ V2i @ V3fm ) @ ( V0h @ V2i @ V4rfm @ V3fm ) ) )
=> ! [V6a0: tyop_2Efmaptree_2Efmaptree @ A_27b @ A_27a,V7a1: A_27c] :
( ( c_2Efmaptree_2Erelrec @ A_27a @ A_27b @ A_27c @ V0h @ V6a0 @ V7a1 )
=> ( V1relrec_27 @ V6a0 @ V7a1 ) ) ) ).
thf(thm_2Efmaptree_2Erelrec__cases,axiom,
! [A_27a: $tType,A_27b: $tType,A_27c: $tType,V0h: A_27a > ( tyop_2Efinite__map_2Efmap @ A_27b @ A_27c ) > ( tyop_2Efinite__map_2Efmap @ A_27b @ ( tyop_2Efmaptree_2Efmaptree @ A_27b @ A_27a ) ) > A_27c,V1a0: tyop_2Efmaptree_2Efmaptree @ A_27b @ A_27a,V2a1: A_27c] :
( ( c_2Efmaptree_2Erelrec @ A_27a @ A_27b @ A_27c @ V0h @ V1a0 @ V2a1 )
<=> ? [V3i: A_27a,V4fm: tyop_2Efinite__map_2Efmap @ A_27b @ ( tyop_2Efmaptree_2Efmaptree @ A_27b @ A_27a ),V5rfm: tyop_2Efinite__map_2Efmap @ A_27b @ A_27c] :
( ( V1a0
= ( c_2Efmaptree_2EFTNode @ A_27b @ A_27a @ V3i @ V4fm ) )
& ( V2a1
= ( V0h @ V3i @ V5rfm @ V4fm ) )
& ( ( c_2Efinite__map_2EFDOM @ A_27b @ A_27c @ V5rfm )
= ( c_2Efinite__map_2EFDOM @ A_27b @ ( tyop_2Efmaptree_2Efmaptree @ A_27b @ A_27a ) @ V4fm ) )
& ! [V6d: A_27b] :
( ( c_2Ebool_2EIN @ A_27b @ V6d @ ( c_2Efinite__map_2EFDOM @ A_27b @ ( tyop_2Efmaptree_2Efmaptree @ A_27b @ A_27a ) @ V4fm ) )
=> ( c_2Efmaptree_2Erelrec @ A_27a @ A_27b @ A_27c @ V0h @ ( c_2Efinite__map_2EFAPPLY @ A_27b @ ( tyop_2Efmaptree_2Efmaptree @ A_27b @ A_27a ) @ V4fm @ V6d ) @ ( c_2Efinite__map_2EFAPPLY @ A_27b @ A_27c @ V5rfm @ V6d ) ) ) ) ) ).
thf(thm_2Efmaptree_2Efmtreerec__thm,axiom,
! [A_27a: $tType,A_27b: $tType,A_27c: $tType,V0i: A_27b,V1h: A_27b > ( tyop_2Efinite__map_2Efmap @ A_27c @ A_27a ) > ( tyop_2Efinite__map_2Efmap @ A_27c @ ( tyop_2Efmaptree_2Efmaptree @ A_27c @ A_27b ) ) > A_27a,V2fm: tyop_2Efinite__map_2Efmap @ A_27c @ ( tyop_2Efmaptree_2Efmaptree @ A_27c @ A_27b )] :
( ( c_2Efmaptree_2Efmtreerec @ A_27a @ A_27b @ A_27c @ V1h @ ( c_2Efmaptree_2EFTNode @ A_27c @ A_27b @ V0i @ V2fm ) )
= ( V1h @ V0i @ ( c_2Efinite__map_2Eo__f @ A_27c @ ( tyop_2Efmaptree_2Efmaptree @ A_27c @ A_27b ) @ A_27a @ ( c_2Efmaptree_2Efmtreerec @ A_27a @ A_27b @ A_27c @ V1h ) @ V2fm ) @ V2fm ) ) ).
thf(thm_2Efmaptree_2Efmtree__Axiom,axiom,
! [A_27a: $tType,A_27b: $tType,A_27c: $tType,V0h: A_27a > ( tyop_2Efinite__map_2Efmap @ A_27b @ ( tyop_2Efmaptree_2Efmaptree @ A_27b @ A_27a ) ) > ( tyop_2Efinite__map_2Efmap @ A_27b @ A_27c ) > A_27c] :
? [V1f: ( tyop_2Efmaptree_2Efmaptree @ A_27b @ A_27a ) > A_27c] :
! [V2i: A_27a,V3fm: tyop_2Efinite__map_2Efmap @ A_27b @ ( tyop_2Efmaptree_2Efmaptree @ A_27b @ A_27a )] :
( ( V1f @ ( c_2Efmaptree_2EFTNode @ A_27b @ A_27a @ V2i @ V3fm ) )
= ( V0h @ V2i @ V3fm @ ( c_2Efinite__map_2Eo__f @ A_27b @ ( tyop_2Efmaptree_2Efmaptree @ A_27b @ A_27a ) @ A_27c @ V1f @ V3fm ) ) ) ).
%------------------------------------------------------------------------------