ITP001 Axioms: ITP042^7.ax
%------------------------------------------------------------------------------
% File : ITP042^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 : patternMatches.ax [Gau19]
% : HL4042^7.ax [TPAP]
% Status : Satisfiable
% Syntax : Number of formulae : 175 ( 27 unt; 69 typ; 0 def)
% Number of atoms : 391 ( 155 equ; 20 cnn)
% Maximal formula atoms : 12 ( 2 avg)
% Number of connectives : 2930 ( 20 ~; 5 |; 65 &;2695 @)
% ( 37 <=>; 108 =>; 0 <=; 0 <~>)
% Maximal formula depth : 27 ( 13 avg;2695 nst)
% Number of types : 3 ( 2 usr)
% Number of type conns : 601 ( 601 >; 0 *; 0 +; 0 <<)
% Number of symbols : 69 ( 67 usr; 4 con; 0-7 aty)
% Number of variables : 850 ( 56 ^ 704 !; 15 ?; 850 :)
% ( 75 !>; 0 ?*; 0 @-; 0 @+)
% SPC : TH1_SAT_EQU_NAR
% Comments :
% Bugfixes : v7.5.0 - Fixes to the axioms.
%------------------------------------------------------------------------------
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_2Enum_2Enum,type,
tyop_2Enum_2Enum: $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_2Earithmetic_2E_2B,type,
c_2Earithmetic_2E_2B: tyop_2Enum_2Enum > tyop_2Enum_2Enum > tyop_2Enum_2Enum ).
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_2Earithmetic_2E_2D,type,
c_2Earithmetic_2E_2D: tyop_2Enum_2Enum > tyop_2Enum_2Enum > tyop_2Enum_2Enum ).
thf(c_2Ebool_2E_2F_5C,type,
c_2Ebool_2E_2F_5C: $o > $o > $o ).
thf(c_2Enum_2E0,type,
c_2Enum_2E0: tyop_2Enum_2Enum ).
thf(c_2Eprim__rec_2E_3C,type,
c_2Eprim__rec_2E_3C: tyop_2Enum_2Enum > tyop_2Enum_2Enum > $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_2Earithmetic_2E_3E_3D,type,
c_2Earithmetic_2E_3E_3D: tyop_2Enum_2Enum > tyop_2Enum_2Enum > $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_2EpatternMatches_2EAPPLY__REDUNDANT__ROWS__INFO,type,
c_2EpatternMatches_2EAPPLY__REDUNDANT__ROWS__INFO:
!>[A_27a: $tType] : ( ( tyop_2Elist_2Elist @ $o ) > ( tyop_2Elist_2Elist @ A_27a ) > ( tyop_2Elist_2Elist @ A_27a ) ) ).
thf(c_2Ebool_2EARB,type,
c_2Ebool_2EARB:
!>[A_27a: $tType] : 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_2Elist_2EEL,type,
c_2Elist_2EEL:
!>[A_27a: $tType] : ( tyop_2Enum_2Enum > ( tyop_2Elist_2Elist @ A_27a ) > A_27a ) ).
thf(c_2Elist_2EEVERY,type,
c_2Elist_2EEVERY:
!>[A_27a: $tType] : ( ( A_27a > $o ) > ( tyop_2Elist_2Elist @ A_27a ) > $o ) ).
thf(c_2Elist_2EEXISTS,type,
c_2Elist_2EEXISTS:
!>[A_27a: $tType] : ( ( A_27a > $o ) > ( tyop_2Elist_2Elist @ A_27a ) > $o ) ).
thf(c_2Ebool_2EF,type,
c_2Ebool_2EF: $o ).
thf(c_2Elist_2EFILTER,type,
c_2Elist_2EFILTER:
!>[A_27a: $tType] : ( ( A_27a > $o ) > ( tyop_2Elist_2Elist @ A_27a ) > ( tyop_2Elist_2Elist @ A_27a ) ) ).
thf(c_2Epair_2EFST,type,
c_2Epair_2EFST:
!>[A_27a: $tType,A_27b: $tType] : ( ( tyop_2Epair_2Eprod @ A_27a @ A_27b ) > A_27a ) ).
thf(c_2Ecombin_2EI,type,
c_2Ecombin_2EI:
!>[A_27a: $tType] : ( A_27a > A_27a ) ).
thf(c_2Ebool_2EIN,type,
c_2Ebool_2EIN:
!>[A_27a: $tType] : ( A_27a > ( A_27a > $o ) > $o ) ).
thf(c_2EpatternMatches_2EIS__REDUNDANT__ROWS__INFO,type,
c_2EpatternMatches_2EIS__REDUNDANT__ROWS__INFO:
!>[A_27a: $tType,A_27b: $tType] : ( A_27a > ( tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) ) > $o > ( tyop_2Elist_2Elist @ $o ) > $o ) ).
thf(c_2Eoption_2EIS__SOME,type,
c_2Eoption_2EIS__SOME:
!>[A_27a: $tType] : ( ( tyop_2Eoption_2Eoption @ A_27a ) > $o ) ).
thf(c_2Elist_2ELENGTH,type,
c_2Elist_2ELENGTH:
!>[A_27a: $tType] : ( ( tyop_2Elist_2Elist @ A_27a ) > tyop_2Enum_2Enum ) ).
thf(c_2Elist_2ELIST__TO__SET,type,
c_2Elist_2ELIST__TO__SET:
!>[A_27a: $tType] : ( ( tyop_2Elist_2Elist @ A_27a ) > A_27a > $o ) ).
thf(c_2Elist_2EMAP,type,
c_2Elist_2EMAP:
!>[A_27a: $tType,A_27b: $tType] : ( ( A_27a > A_27b ) > ( tyop_2Elist_2Elist @ A_27a ) > ( tyop_2Elist_2Elist @ A_27b ) ) ).
thf(c_2Elist_2EMAP2,type,
c_2Elist_2EMAP2:
!>[A_27a: $tType,A_27b: $tType,A_27c: $tType] : ( ( A_27b > A_27c > A_27a ) > ( tyop_2Elist_2Elist @ A_27b ) > ( tyop_2Elist_2Elist @ A_27c ) > ( tyop_2Elist_2Elist @ A_27a ) ) ).
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_2EOPTION__MAP,type,
c_2Eoption_2EOPTION__MAP:
!>[A_27a: $tType,A_27b: $tType] : ( ( A_27a > A_27b ) > ( tyop_2Eoption_2Eoption @ A_27a ) > ( tyop_2Eoption_2Eoption @ A_27b ) ) ).
thf(c_2EpatternMatches_2EPMATCH,type,
c_2EpatternMatches_2EPMATCH:
!>[A_27a: $tType,A_27b: $tType] : ( A_27b > ( tyop_2Elist_2Elist @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27a ) ) ) > A_27a ) ).
thf(c_2EpatternMatches_2EPMATCH__EQUIV__ROWS,type,
c_2EpatternMatches_2EPMATCH__EQUIV__ROWS:
!>[A_27a: $tType,A_27b: $tType] : ( A_27a > ( tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) ) > ( tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) ) > $o ) ).
thf(c_2EpatternMatches_2EPMATCH__EXPAND__PRED,type,
c_2EpatternMatches_2EPMATCH__EXPAND__PRED:
!>[A_27a: $tType,A_27b: $tType] : ( ( A_27a > $o ) > A_27b > ( tyop_2Elist_2Elist @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27a ) ) ) > ( tyop_2Elist_2Elist @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27a ) ) ) > $o ) ).
thf(c_2EpatternMatches_2EPMATCH__FLATTEN__FUN,type,
c_2EpatternMatches_2EPMATCH__FLATTEN__FUN:
!>[A_27a: $tType,A_27b: $tType,A_27c: $tType] : ( ( A_27b > A_27c ) > ( A_27b > $o ) > ( A_27b > A_27b > ( tyop_2Eoption_2Eoption @ A_27a ) ) > A_27c > ( tyop_2Eoption_2Eoption @ A_27a ) ) ).
thf(c_2EpatternMatches_2EPMATCH__INCOMPLETE,type,
c_2EpatternMatches_2EPMATCH__INCOMPLETE:
!>[A_27a: $tType] : A_27a ).
thf(c_2EpatternMatches_2EPMATCH__IS__EXHAUSTIVE,type,
c_2EpatternMatches_2EPMATCH__IS__EXHAUSTIVE:
!>[A_27a: $tType,A_27b: $tType] : ( A_27a > ( tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) ) > $o ) ).
thf(c_2EpatternMatches_2EPMATCH__ROW,type,
c_2EpatternMatches_2EPMATCH__ROW:
!>[A_27a: $tType,A_27b: $tType,A_27c: $tType] : ( ( A_27b > A_27c ) > ( A_27b > $o ) > ( A_27b > A_27a ) > A_27c > ( tyop_2Eoption_2Eoption @ A_27a ) ) ).
thf(c_2EpatternMatches_2EPMATCH__ROW__COND,type,
c_2EpatternMatches_2EPMATCH__ROW__COND:
!>[A_27a: $tType,A_27b: $tType] : ( ( A_27a > A_27b ) > ( A_27a > $o ) > A_27b > A_27a > $o ) ).
thf(c_2EpatternMatches_2EPMATCH__ROW__COND__EX,type,
c_2EpatternMatches_2EPMATCH__ROW__COND__EX:
!>[A_27a: $tType,A_27b: $tType] : ( A_27a > ( A_27b > A_27a ) > ( A_27b > $o ) > $o ) ).
thf(c_2EpatternMatches_2EPMATCH__ROW__COND__NOT__EX__OR__EQ,type,
c_2EpatternMatches_2EPMATCH__ROW__COND__NOT__EX__OR__EQ:
!>[A_27a: $tType,A_27b: $tType] : ( A_27a > ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) > ( tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) ) > $o ) ).
thf(c_2EpatternMatches_2EPMATCH__ROW__LIFT,type,
c_2EpatternMatches_2EPMATCH__ROW__LIFT:
!>[A_27a: $tType,A_27b: $tType,A_27c: $tType] : ( ( A_27c > A_27b ) > ( A_27a > ( tyop_2Eoption_2Eoption @ A_27c ) ) > A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) ).
thf(c_2EpatternMatches_2EPMATCH__ROW__REDUNDANT,type,
c_2EpatternMatches_2EPMATCH__ROW__REDUNDANT:
!>[A_27a: $tType,A_27b: $tType] : ( A_27a > ( tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) ) > tyop_2Enum_2Enum > $o ) ).
thf(c_2EpatternMatches_2EREDUNDANT__ROWS__INFOS__CONJ,type,
c_2EpatternMatches_2EREDUNDANT__ROWS__INFOS__CONJ: ( tyop_2Elist_2Elist @ $o ) > ( tyop_2Elist_2Elist @ $o ) > ( tyop_2Elist_2Elist @ $o ) ).
thf(c_2EpatternMatches_2EREDUNDANT__ROWS__INFOS__DISJ,type,
c_2EpatternMatches_2EREDUNDANT__ROWS__INFOS__DISJ: ( tyop_2Elist_2Elist @ $o ) > ( tyop_2Elist_2Elist @ $o ) > ( tyop_2Elist_2Elist @ $o ) ).
thf(c_2Elist_2EREVERSE,type,
c_2Elist_2EREVERSE:
!>[A_27a: $tType] : ( ( tyop_2Elist_2Elist @ A_27a ) > ( tyop_2Elist_2Elist @ A_27a ) ) ).
thf(c_2Epair_2ESND,type,
c_2Epair_2ESND:
!>[A_27a: $tType,A_27b: $tType] : ( ( tyop_2Epair_2Eprod @ A_27a @ A_27b ) > A_27b ) ).
thf(c_2Elist_2ESNOC,type,
c_2Elist_2ESNOC:
!>[A_27a: $tType] : ( A_27a > ( tyop_2Elist_2Elist @ A_27a ) > ( tyop_2Elist_2Elist @ A_27a ) ) ).
thf(c_2Eoption_2ESOME,type,
c_2Eoption_2ESOME:
!>[A_27a: $tType] : ( A_27a > ( tyop_2Eoption_2Eoption @ A_27a ) ) ).
thf(c_2EpatternMatches_2ESTRONGEST__REDUNDANT__ROWS__INFO,type,
c_2EpatternMatches_2ESTRONGEST__REDUNDANT__ROWS__INFO:
!>[A_27a: $tType,A_27b: $tType] : ( A_27a > ( tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) ) > ( tyop_2Elist_2Elist @ $o ) ) ).
thf(c_2EpatternMatches_2ESTRONGEST__REDUNDANT__ROWS__INFO__AUX,type,
c_2EpatternMatches_2ESTRONGEST__REDUNDANT__ROWS__INFO__AUX:
!>[A_27a: $tType,A_27b: $tType] : ( A_27a > ( tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) ) > $o > ( tyop_2Elist_2Elist @ $o ) > ( tyop_2Epair_2Eprod @ $o @ ( tyop_2Elist_2Elist @ $o ) ) ) ).
thf(c_2Enum_2ESUC,type,
c_2Enum_2ESUC: tyop_2Enum_2Enum > tyop_2Enum_2Enum ).
thf(c_2Ebool_2ET,type,
c_2Ebool_2ET: $o ).
thf(c_2Elist_2ETAKE,type,
c_2Elist_2ETAKE:
!>[A_27a: $tType] : ( tyop_2Enum_2Enum > ( tyop_2Elist_2Elist @ A_27a ) > ( tyop_2Elist_2Elist @ A_27a ) ) ).
thf(c_2Eoption_2ETHE,type,
c_2Eoption_2ETHE:
!>[A_27a: $tType] : ( ( tyop_2Eoption_2Eoption @ A_27a ) > A_27a ) ).
thf(c_2Elist_2EZIP,type,
c_2Elist_2EZIP:
!>[A_27a: $tType,A_27b: $tType] : ( ( tyop_2Epair_2Eprod @ ( tyop_2Elist_2Elist @ A_27a ) @ ( tyop_2Elist_2Elist @ A_27b ) ) > ( tyop_2Elist_2Elist @ ( tyop_2Epair_2Eprod @ A_27a @ A_27b ) ) ) ).
thf(c_2Ebool_2E_5C_2F,type,
c_2Ebool_2E_5C_2F: $o > $o > $o ).
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_2Eoption_2Esome,type,
c_2Eoption_2Esome:
!>[A_27a: $tType] : ( ( A_27a > $o ) > ( tyop_2Eoption_2Eoption @ A_27a ) ) ).
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_2EpatternMatches_2EPMATCH__ROW__COND__def,axiom,
! [A_27a: $tType,A_27b: $tType,V0pat: A_27a > A_27b,V1guard: A_27a > $o,V2inp: A_27b,V3v: A_27a] :
( ( c_2EpatternMatches_2EPMATCH__ROW__COND @ A_27a @ A_27b @ V0pat @ V1guard @ V2inp @ V3v )
<=> ( ( ( V0pat @ V3v )
= V2inp )
& ( V1guard @ V3v ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__ROW__def,axiom,
! [A_27a: $tType,A_27b: $tType,A_27c: $tType,V0pat: A_27b > A_27c,V1guard: A_27b > $o,V2rhs: A_27b > A_27a,V3i: A_27c] :
( ( c_2EpatternMatches_2EPMATCH__ROW @ A_27a @ A_27b @ A_27c @ V0pat @ V1guard @ V2rhs @ V3i )
= ( c_2Eoption_2EOPTION__MAP @ A_27b @ A_27a @ V2rhs
@ ( c_2Eoption_2Esome @ A_27b
@ ^ [V4v: A_27b] : ( c_2EpatternMatches_2EPMATCH__ROW__COND @ A_27b @ A_27c @ V0pat @ V1guard @ V3i @ V4v ) ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__INCOMPLETE__def,axiom,
! [A_27a: $tType] :
( ( c_2EpatternMatches_2EPMATCH__INCOMPLETE @ A_27a )
= ( c_2Ebool_2EARB @ A_27a ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__def,axiom,
! [A_27a: $tType,A_27b: $tType] :
( ! [V0v: A_27b] :
( ( c_2EpatternMatches_2EPMATCH @ A_27a @ A_27b @ V0v @ ( c_2Elist_2ENIL @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27a ) ) ) )
= ( c_2EpatternMatches_2EPMATCH__INCOMPLETE @ A_27a ) )
& ! [V1v: A_27b,V2r: A_27b > ( tyop_2Eoption_2Eoption @ A_27a ),V3rs: tyop_2Elist_2Elist @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27a ) )] :
( ( c_2EpatternMatches_2EPMATCH @ A_27a @ A_27b @ V1v @ ( c_2Elist_2ECONS @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27a ) ) @ V2r @ V3rs ) )
= ( c_2Eoption_2Eoption__CASE @ A_27a @ A_27a @ ( V2r @ V1v ) @ ( c_2EpatternMatches_2EPMATCH @ A_27a @ A_27b @ V1v @ V3rs ) @ ( c_2Ecombin_2EI @ A_27a ) ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__EQUIV__ROWS__def,axiom,
! [A_27a: $tType,A_27b: $tType,V0v: A_27a,V1rows1: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ),V2rows2: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) )] :
( ( c_2EpatternMatches_2EPMATCH__EQUIV__ROWS @ A_27a @ A_27b @ V0v @ V1rows1 @ V2rows2 )
<=> ( ( ( c_2EpatternMatches_2EPMATCH @ A_27b @ A_27a @ V0v @ V1rows1 )
= ( c_2EpatternMatches_2EPMATCH @ A_27b @ A_27a @ V0v @ V2rows2 ) )
& ( ? [V3r: A_27a > ( tyop_2Eoption_2Eoption @ A_27b )] :
( ( c_2Ebool_2EIN @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V3r @ ( c_2Elist_2ELIST__TO__SET @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V1rows1 ) )
& ( c_2Eoption_2EIS__SOME @ A_27b @ ( V3r @ V0v ) ) )
<=> ? [V4r: A_27a > ( tyop_2Eoption_2Eoption @ A_27b )] :
( ( c_2Ebool_2EIN @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V4r @ ( c_2Elist_2ELIST__TO__SET @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V2rows2 ) )
& ( c_2Eoption_2EIS__SOME @ A_27b @ ( V4r @ V0v ) ) ) ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__ROW__REDUNDANT__def,axiom,
! [A_27a: $tType,A_27b: $tType,V0v: A_27a,V1rs: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ),V2i: tyop_2Enum_2Enum] :
( ( c_2EpatternMatches_2EPMATCH__ROW__REDUNDANT @ A_27a @ A_27b @ V0v @ V1rs @ V2i )
<=> ( ( c_2Eprim__rec_2E_3C @ V2i @ ( c_2Elist_2ELENGTH @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V1rs ) )
& ( ( c_2Eoption_2EIS__SOME @ A_27b @ ( c_2Elist_2EEL @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V2i @ V1rs @ V0v ) )
=> ? [V3j: tyop_2Enum_2Enum] :
( ( c_2Eprim__rec_2E_3C @ V3j @ V2i )
& ( c_2Eoption_2EIS__SOME @ A_27b @ ( c_2Elist_2EEL @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V3j @ V1rs @ V0v ) ) ) ) ) ) ).
thf(thm_2EpatternMatches_2EIS__REDUNDANT__ROWS__INFO__def,axiom,
! [A_27a: $tType,A_27b: $tType,V0v: A_27a,V1rows: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ),V2c: $o,V3infos: tyop_2Elist_2Elist @ $o] :
( ( c_2EpatternMatches_2EIS__REDUNDANT__ROWS__INFO @ A_27a @ A_27b @ V0v @ V1rows @ V2c @ V3infos )
<=> ( ( ( c_2Elist_2ELENGTH @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V1rows )
= ( c_2Elist_2ELENGTH @ $o @ V3infos ) )
& ! [V4i: tyop_2Enum_2Enum] :
( ( c_2Eprim__rec_2E_3C @ V4i @ ( c_2Elist_2ELENGTH @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V1rows ) )
=> ( ( c_2Elist_2EEL @ $o @ V4i @ V3infos )
=> ( c_2EpatternMatches_2EPMATCH__ROW__REDUNDANT @ A_27a @ A_27b @ V0v @ V1rows @ V4i ) ) )
& ( ( c_2Elist_2EEVERY @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) )
@ ^ [V5r: A_27a > ( tyop_2Eoption_2Eoption @ A_27b )] : ( c_2Emin_2E_3D @ ( tyop_2Eoption_2Eoption @ A_27b ) @ ( V5r @ V0v ) @ ( c_2Eoption_2ENONE @ A_27b ) )
@ V1rows )
=> V2c ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__ROW__COND__EX__def,axiom,
! [A_27a: $tType,A_27b: $tType,V0i: A_27a,V1p: A_27b > A_27a,V2g: A_27b > $o] :
( ( c_2EpatternMatches_2EPMATCH__ROW__COND__EX @ A_27a @ A_27b @ V0i @ V1p @ V2g )
<=> ? [V3x: A_27b] : ( c_2EpatternMatches_2EPMATCH__ROW__COND @ A_27b @ A_27a @ V1p @ V2g @ V0i @ V3x ) ) ).
thf(thm_2EpatternMatches_2EAPPLY__REDUNDANT__ROWS__INFO__def,axiom,
! [A_27a: $tType,V0is: tyop_2Elist_2Elist @ $o,V1xs: tyop_2Elist_2Elist @ A_27a] :
( ( c_2EpatternMatches_2EAPPLY__REDUNDANT__ROWS__INFO @ A_27a @ V0is @ V1xs )
= ( c_2Elist_2EMAP @ ( tyop_2Epair_2Eprod @ $o @ A_27a ) @ A_27a @ ( c_2Epair_2ESND @ $o @ A_27a )
@ ( c_2Elist_2EFILTER @ ( tyop_2Epair_2Eprod @ $o @ A_27a )
@ ^ [V2x: tyop_2Epair_2Eprod @ $o @ A_27a] : ( c_2Ebool_2E_7E @ ( c_2Epair_2EFST @ $o @ A_27a @ V2x ) )
@ ( c_2Elist_2EZIP @ $o @ A_27a @ ( c_2Epair_2E_2C @ ( tyop_2Elist_2Elist @ $o ) @ ( tyop_2Elist_2Elist @ A_27a ) @ V0is @ V1xs ) ) ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__IS__EXHAUSTIVE__def,axiom,
! [A_27a: $tType,A_27b: $tType,V0v: A_27a,V1rs: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) )] :
( ( c_2EpatternMatches_2EPMATCH__IS__EXHAUSTIVE @ A_27a @ A_27b @ V0v @ V1rs )
= ( c_2Elist_2EEXISTS @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) )
@ ^ [V2r: A_27a > ( tyop_2Eoption_2Eoption @ A_27b )] : ( c_2Eoption_2EIS__SOME @ A_27b @ ( V2r @ V0v ) )
@ V1rs ) ) ).
thf(thm_2EpatternMatches_2EREDUNDANT__ROWS__INFOS__CONJ__def,axiom,
! [V0ip1: tyop_2Elist_2Elist @ $o,V1ip2: tyop_2Elist_2Elist @ $o] :
( ( c_2EpatternMatches_2EREDUNDANT__ROWS__INFOS__CONJ @ V0ip1 @ V1ip2 )
= ( c_2Elist_2EMAP2 @ $o @ $o @ $o
@ ^ [V2i1: $o,V3i2: $o] : ( c_2Ebool_2E_2F_5C @ V2i1 @ V3i2 )
@ V0ip1
@ V1ip2 ) ) ).
thf(thm_2EpatternMatches_2EREDUNDANT__ROWS__INFOS__DISJ__def,axiom,
! [V0ip1: tyop_2Elist_2Elist @ $o,V1ip2: tyop_2Elist_2Elist @ $o] :
( ( c_2EpatternMatches_2EREDUNDANT__ROWS__INFOS__DISJ @ V0ip1 @ V1ip2 )
= ( c_2Elist_2EMAP2 @ $o @ $o @ $o
@ ^ [V2i1: $o,V3i2: $o] : ( c_2Ebool_2E_5C_2F @ V2i1 @ V3i2 )
@ V0ip1
@ V1ip2 ) ) ).
thf(thm_2EpatternMatches_2ESTRONGEST__REDUNDANT__ROWS__INFO__AUX__def,axiom,
! [A_27a: $tType,A_27b: $tType] :
( ! [V0v: A_27a,V1p: $o,V2infos: tyop_2Elist_2Elist @ $o] :
( ( c_2EpatternMatches_2ESTRONGEST__REDUNDANT__ROWS__INFO__AUX @ A_27a @ A_27b @ V0v @ ( c_2Elist_2ENIL @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) ) @ V1p @ V2infos )
= ( c_2Epair_2E_2C @ $o @ ( tyop_2Elist_2Elist @ $o ) @ V1p @ V2infos ) )
& ! [V3v: A_27a,V4r: A_27a > ( tyop_2Eoption_2Eoption @ A_27b ),V5rows: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ),V6p: $o,V7infos: tyop_2Elist_2Elist @ $o] :
( ( c_2EpatternMatches_2ESTRONGEST__REDUNDANT__ROWS__INFO__AUX @ A_27a @ A_27b @ V3v @ ( c_2Elist_2ECONS @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V4r @ V5rows ) @ V6p @ V7infos )
= ( c_2EpatternMatches_2ESTRONGEST__REDUNDANT__ROWS__INFO__AUX @ A_27a @ A_27b @ V3v @ V5rows @ ( c_2Ebool_2E_2F_5C @ V6p @ ( c_2Emin_2E_3D @ ( tyop_2Eoption_2Eoption @ A_27b ) @ ( V4r @ V3v ) @ ( c_2Eoption_2ENONE @ A_27b ) ) ) @ ( c_2Elist_2ESNOC @ $o @ ( c_2Emin_2E_3D_3D_3E @ V6p @ ( c_2Emin_2E_3D @ ( tyop_2Eoption_2Eoption @ A_27b ) @ ( V4r @ V3v ) @ ( c_2Eoption_2ENONE @ A_27b ) ) ) @ V7infos ) ) ) ) ).
thf(thm_2EpatternMatches_2ESTRONGEST__REDUNDANT__ROWS__INFO__def,axiom,
! [A_27a: $tType,A_27b: $tType,V0v: A_27a,V1rows: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) )] :
( ( c_2EpatternMatches_2ESTRONGEST__REDUNDANT__ROWS__INFO @ A_27a @ A_27b @ V0v @ V1rows )
= ( c_2Epair_2ESND @ $o @ ( tyop_2Elist_2Elist @ $o ) @ ( c_2EpatternMatches_2ESTRONGEST__REDUNDANT__ROWS__INFO__AUX @ A_27a @ A_27b @ V0v @ V1rows @ c_2Ebool_2ET @ ( c_2Elist_2ENIL @ $o ) ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__FLATTEN__FUN__def,axiom,
! [A_27a: $tType,A_27b: $tType,A_27c: $tType,V0p: A_27b > A_27c,V1g: A_27b > $o,V2row: A_27b > A_27b > ( tyop_2Eoption_2Eoption @ A_27a ),V3v: A_27c] :
( ( c_2EpatternMatches_2EPMATCH__FLATTEN__FUN @ A_27a @ A_27b @ A_27c @ V0p @ V1g @ V2row @ V3v )
= ( c_2Eoption_2Eoption__CASE @ A_27b @ ( tyop_2Eoption_2Eoption @ A_27a )
@ ( c_2Eoption_2Esome @ A_27b
@ ^ [V4x: A_27b] : ( c_2EpatternMatches_2EPMATCH__ROW__COND @ A_27b @ A_27c @ V0p @ V1g @ V3v @ V4x ) )
@ ( c_2Eoption_2ENONE @ A_27a )
@ ^ [V5x: A_27b] : ( V2row @ V5x @ V5x ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__ROW__COND__NOT__EX__OR__EQ__def,axiom,
! [A_27a: $tType,A_27b: $tType,V0i: A_27a,V1r: A_27a > ( tyop_2Eoption_2Eoption @ A_27b ),V2rows: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) )] :
( ( c_2EpatternMatches_2EPMATCH__ROW__COND__NOT__EX__OR__EQ @ A_27a @ A_27b @ V0i @ V1r @ V2rows )
<=> ( ( (~)
@ ( (~)
@ ( ( V1r @ V0i )
= ( c_2Eoption_2ENONE @ A_27b ) ) ) )
| ( ( c_2Elist_2EEXISTS @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) )
@ ^ [V3row: A_27a > ( tyop_2Eoption_2Eoption @ A_27b )] : ( c_2Ebool_2E_7E @ ( c_2Emin_2E_3D @ ( tyop_2Eoption_2Eoption @ A_27b ) @ ( V3row @ V0i ) @ ( c_2Eoption_2ENONE @ A_27b ) ) )
@ V2rows )
& ( ( c_2Eoption_2ETHE @ A_27b @ ( V1r @ V0i ) )
= ( c_2EpatternMatches_2EPMATCH @ A_27b @ A_27a @ V0i @ V2rows ) ) ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__EXPAND__PRED__def,axiom,
! [A_27a: $tType,A_27b: $tType] :
( ! [V0P: A_27a > $o,V1v: A_27b,V2rows__before: tyop_2Elist_2Elist @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27a ) )] :
( ( c_2EpatternMatches_2EPMATCH__EXPAND__PRED @ A_27a @ A_27b @ V0P @ V1v @ V2rows__before @ ( c_2Elist_2ENIL @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27a ) ) ) )
<=> ( ( (~) @ ( c_2EpatternMatches_2EPMATCH__IS__EXHAUSTIVE @ A_27b @ A_27a @ V1v @ ( c_2Elist_2EREVERSE @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27a ) ) @ V2rows__before ) ) )
=> ( V0P @ ( c_2Ebool_2EARB @ A_27a ) ) ) )
& ! [V3P: A_27a > $o,V4v: A_27b,V5rows__before: tyop_2Elist_2Elist @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27a ) ),V6r: A_27b > ( tyop_2Eoption_2Eoption @ A_27a ),V7rows__after: tyop_2Elist_2Elist @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27a ) )] :
( ( c_2EpatternMatches_2EPMATCH__EXPAND__PRED @ A_27a @ A_27b @ V3P @ V4v @ V5rows__before @ ( c_2Elist_2ECONS @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27a ) ) @ V6r @ V7rows__after ) )
<=> ( ( ( (~)
@ ( ( V6r @ V4v )
= ( c_2Eoption_2ENONE @ A_27a ) ) )
=> ( ( c_2Elist_2EEVERY @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27a ) )
@ ^ [V8r_27: A_27b > ( tyop_2Eoption_2Eoption @ A_27a )] : ( c_2Emin_2E_3D_3D_3E @ ( c_2Ebool_2E_7E @ ( c_2Emin_2E_3D @ ( tyop_2Eoption_2Eoption @ A_27a ) @ ( V8r_27 @ V4v ) @ ( c_2Eoption_2ENONE @ A_27a ) ) ) @ ( c_2Emin_2E_3D @ ( tyop_2Eoption_2Eoption @ A_27a ) @ ( V8r_27 @ V4v ) @ ( V6r @ V4v ) ) )
@ V5rows__before )
=> ( V3P @ ( c_2Eoption_2ETHE @ A_27a @ ( V6r @ V4v ) ) ) ) )
& ( c_2EpatternMatches_2EPMATCH__EXPAND__PRED @ A_27a @ A_27b @ V3P @ V4v @ ( c_2Elist_2ECONS @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27a ) ) @ V6r @ V5rows__before ) @ V7rows__after ) ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__ROW__LIFT__def,axiom,
! [A_27a: $tType,A_27b: $tType,A_27c: $tType,V0f: A_27c > A_27b,V1r: A_27a > ( tyop_2Eoption_2Eoption @ A_27c )] :
( ( c_2EpatternMatches_2EPMATCH__ROW__LIFT @ A_27a @ A_27b @ A_27c @ V0f @ V1r )
= ( ^ [V2x: A_27a] : ( c_2Eoption_2EOPTION__MAP @ A_27c @ A_27b @ V0f @ ( V1r @ V2x ) ) ) ) ).
thf(thm_2EpatternMatches_2ELENGTH__STRONGEST__REDUNDANT__ROWS__INFO,axiom,
! [A_27a: $tType,A_27b: $tType,V0v: A_27a,V1rows: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) )] :
( ( c_2Elist_2ELENGTH @ $o @ ( c_2EpatternMatches_2ESTRONGEST__REDUNDANT__ROWS__INFO @ A_27a @ A_27b @ V0v @ V1rows ) )
= ( c_2Elist_2ELENGTH @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V1rows ) ) ).
thf(thm_2EpatternMatches_2EEL2__STRONGEST__REDUNDANT__ROWS__INFO__AUX,axiom,
! [A_27a: $tType,A_27b: $tType,V0v: A_27a,V1rows: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ),V2p: $o,V3infos: tyop_2Elist_2Elist @ $o,V4i: tyop_2Enum_2Enum] :
( ( ( c_2Earithmetic_2E_3E_3D @ V4i @ ( c_2Elist_2ELENGTH @ $o @ V3infos ) )
& ( c_2Eprim__rec_2E_3C @ V4i @ ( c_2Earithmetic_2E_2B @ ( c_2Elist_2ELENGTH @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V1rows ) @ ( c_2Elist_2ELENGTH @ $o @ V3infos ) ) ) )
=> ( ( c_2Elist_2EEL @ $o @ V4i @ ( c_2Epair_2ESND @ $o @ ( tyop_2Elist_2Elist @ $o ) @ ( c_2EpatternMatches_2ESTRONGEST__REDUNDANT__ROWS__INFO__AUX @ A_27a @ A_27b @ V0v @ V1rows @ V2p @ V3infos ) ) )
<=> ( ( V2p
& ( c_2Elist_2EEVERY @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) )
@ ^ [V5r: A_27a > ( tyop_2Eoption_2Eoption @ A_27b )] : ( c_2Emin_2E_3D @ ( tyop_2Eoption_2Eoption @ A_27b ) @ ( V5r @ V0v ) @ ( c_2Eoption_2ENONE @ A_27b ) )
@ ( c_2Elist_2ETAKE @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ ( c_2Earithmetic_2E_2D @ V4i @ ( c_2Elist_2ELENGTH @ $o @ V3infos ) ) @ V1rows ) ) )
=> ( ( c_2Elist_2EEL @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ ( c_2Earithmetic_2E_2D @ V4i @ ( c_2Elist_2ELENGTH @ $o @ V3infos ) ) @ V1rows @ V0v )
= ( c_2Eoption_2ENONE @ A_27b ) ) ) ) ) ).
thf(thm_2EpatternMatches_2EEL1__STRONGEST__REDUNDANT__ROWS__INFO__AUX,axiom,
! [A_27a: $tType,A_27b: $tType,V0v: A_27a,V1rows: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ),V2p: $o,V3infos: tyop_2Elist_2Elist @ $o,V4i: tyop_2Enum_2Enum] :
( ( c_2Eprim__rec_2E_3C @ V4i @ ( c_2Elist_2ELENGTH @ $o @ V3infos ) )
=> ( ( c_2Elist_2EEL @ $o @ V4i @ ( c_2Epair_2ESND @ $o @ ( tyop_2Elist_2Elist @ $o ) @ ( c_2EpatternMatches_2ESTRONGEST__REDUNDANT__ROWS__INFO__AUX @ A_27a @ A_27b @ V0v @ V1rows @ V2p @ V3infos ) ) )
= ( c_2Elist_2EEL @ $o @ V4i @ V3infos ) ) ) ).
thf(thm_2EpatternMatches_2Esome__var__bool__T,axiom,
( ( c_2Eoption_2Esome @ $o
@ ^ [V0x: $o] : V0x )
= ( c_2Eoption_2ESOME @ $o @ c_2Ebool_2ET ) ) ).
thf(thm_2EpatternMatches_2Esome__var__bool__F,axiom,
( ( c_2Eoption_2Esome @ $o
@ ^ [V0x: $o] : ( c_2Ebool_2E_7E @ V0x ) )
= ( c_2Eoption_2ESOME @ $o @ c_2Ebool_2EF ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__ROW__CONG,axiom,
! [A_27a: $tType,A_27b: $tType,A_27c: $tType,V0p: A_27a > A_27b,V1p_27: A_27a > A_27b,V2g: A_27a > $o,V3g_27: A_27a > $o,V4r: A_27a > A_27c,V5r_27: A_27a > A_27c,V6v: A_27b,V7v_27: A_27b] :
( ( ( V0p = V1p_27 )
& ( V6v = V7v_27 )
& ! [V8x: A_27a] :
( ( V6v
= ( V0p @ V8x ) )
=> ( ( V2g @ V8x )
= ( V3g_27 @ V8x ) ) )
& ! [V9x: A_27a] :
( ( ( V6v
= ( V0p @ V9x ) )
& ( V2g @ V9x ) )
=> ( ( V4r @ V9x )
= ( V5r_27 @ V9x ) ) ) )
=> ( ( c_2EpatternMatches_2EPMATCH__ROW @ A_27c @ A_27a @ A_27b @ V0p @ V2g @ V4r @ V6v )
= ( c_2EpatternMatches_2EPMATCH__ROW @ A_27c @ A_27a @ A_27b @ V1p_27 @ V3g_27 @ V5r_27 @ V7v_27 ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__CONG,axiom,
! [A_27a: $tType,A_27b: $tType,V0v: A_27a,V1v_27: A_27a,V2rows: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ),V3rows_27: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ),V4r: A_27a > ( tyop_2Eoption_2Eoption @ A_27b ),V5r_27: A_27a > ( tyop_2Eoption_2Eoption @ A_27b )] :
( ( ( V0v = V1v_27 )
& ( ( V4r @ V1v_27 )
= ( V5r_27 @ V1v_27 ) )
& ( ( c_2EpatternMatches_2EPMATCH @ A_27b @ A_27a @ V1v_27 @ V2rows )
= ( c_2EpatternMatches_2EPMATCH @ A_27b @ A_27a @ V1v_27 @ V3rows_27 ) ) )
=> ( ( c_2EpatternMatches_2EPMATCH @ A_27b @ A_27a @ V0v @ ( c_2Elist_2ECONS @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V4r @ V2rows ) )
= ( c_2EpatternMatches_2EPMATCH @ A_27b @ A_27a @ V1v_27 @ ( c_2Elist_2ECONS @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V5r_27 @ V3rows_27 ) ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__ROW__EQ__AUX,axiom,
! [A_27a: $tType,A_27b: $tType,A_27c: $tType,A_27d: $tType,V0r_27: A_27c > A_27d,V1r: A_27b > A_27d,V2p_27: A_27c > A_27a,V3p: A_27b > A_27a,V4g_27: A_27c > $o,V5g: A_27b > $o] :
( ( ! [V6i: A_27a] :
( ? [V7x: A_27b] : ( c_2EpatternMatches_2EPMATCH__ROW__COND @ A_27b @ A_27a @ V3p @ V5g @ V6i @ V7x )
<=> ? [V8x_27: A_27c] : ( c_2EpatternMatches_2EPMATCH__ROW__COND @ A_27c @ A_27a @ V2p_27 @ V4g_27 @ V6i @ V8x_27 ) )
& ! [V9x: A_27b,V10x_27: A_27c] :
( ( ( ( V3p @ V9x )
= ( V2p_27 @ V10x_27 ) )
& ( V5g @ V9x )
& ( V4g_27 @ V10x_27 ) )
=> ( ( V1r @ V9x )
= ( V0r_27 @ V10x_27 ) ) ) )
=> ( ( c_2EpatternMatches_2EPMATCH__ROW @ A_27d @ A_27b @ A_27a @ V3p @ V5g @ V1r )
= ( c_2EpatternMatches_2EPMATCH__ROW @ A_27d @ A_27c @ A_27a @ V2p_27 @ V4g_27 @ V0r_27 ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__ROW__EQ__NONE,axiom,
! [A_27a: $tType,A_27b: $tType,A_27c: $tType,V0r: A_27b > A_27a,V1p: A_27b > A_27c,V2i: A_27c,V3g: A_27b > $o] :
( ( ( c_2EpatternMatches_2EPMATCH__ROW @ A_27a @ A_27b @ A_27c @ V1p @ V3g @ V0r @ V2i )
= ( c_2Eoption_2ENONE @ A_27a ) )
<=> ! [V4x: A_27b] : ( (~) @ ( c_2EpatternMatches_2EPMATCH__ROW__COND @ A_27b @ A_27c @ V1p @ V3g @ V2i @ V4x ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__ROW__EQ__SOME,axiom,
! [A_27a: $tType,A_27b: $tType,A_27c: $tType,V0y: A_27a,V1r: A_27b > A_27a,V2p: A_27b > A_27c,V3i: A_27c,V4g: A_27b > $o] :
( ( ( c_2EpatternMatches_2EPMATCH__ROW @ A_27a @ A_27b @ A_27c @ V2p @ V4g @ V1r @ V3i )
= ( c_2Eoption_2ESOME @ A_27a @ V0y ) )
=> ? [V5x: A_27b] :
( ( c_2EpatternMatches_2EPMATCH__ROW__COND @ A_27b @ A_27c @ V2p @ V4g @ V3i @ V5x )
& ( V0y
= ( V1r @ V5x ) ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__COND__SELECT__UNIQUE,axiom,
! [A_27a: $tType,A_27b: $tType,V0p: A_27a > A_27b,V1g: A_27a > $o,V2i: A_27b] :
( ! [V3x1: A_27a,V4x2: A_27a] :
( ( ( V1g @ V3x1 )
& ( V1g @ V4x2 )
& ( ( V0p @ V3x1 )
= ( V0p @ V4x2 ) ) )
=> ( V3x1 = V4x2 ) )
=> ! [V5x: A_27a] :
( ( c_2EpatternMatches_2EPMATCH__ROW__COND @ A_27a @ A_27b @ V0p @ V1g @ V2i @ V5x )
=> ( ( c_2Emin_2E_40 @ A_27a
@ ^ [V6y: A_27a] : ( c_2EpatternMatches_2EPMATCH__ROW__COND @ A_27a @ A_27b @ V0p @ V1g @ V2i @ V6y ) )
= V5x ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__ROW__COND__DEF__GSYM,axiom,
! [A_27a: $tType,A_27b: $tType,V0v: A_27a,V1pat: A_27a > A_27b,V2inp: A_27b,V3guard: A_27a > $o] :
( ( c_2EpatternMatches_2EPMATCH__ROW__COND @ A_27a @ A_27b @ V1pat @ V3guard @ V2inp @ V0v )
<=> ( ( V2inp
= ( V1pat @ V0v ) )
& ( V3guard @ V0v ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__EVAL,axiom,
! [A_27a: $tType,A_27b: $tType,A_27c: $tType,A_27d: $tType,V0v: A_27b,V1rs: tyop_2Elist_2Elist @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27c ) ),V2r: A_27d > A_27c,V3p: A_27d > A_27b,V4g: A_27d > $o] :
( ( ( c_2EpatternMatches_2EPMATCH @ A_27a @ A_27b @ V0v @ ( c_2Elist_2ENIL @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27a ) ) ) )
= ( c_2EpatternMatches_2EPMATCH__INCOMPLETE @ A_27a ) )
& ( ( c_2EpatternMatches_2EPMATCH @ A_27c @ A_27b @ V0v @ ( c_2Elist_2ECONS @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27c ) ) @ ( c_2EpatternMatches_2EPMATCH__ROW @ A_27c @ A_27d @ A_27b @ V3p @ V4g @ V2r ) @ V1rs ) )
= ( c_2Ebool_2ECOND @ A_27c
@ ( c_2Ebool_2E_3F @ A_27d
@ ^ [V5x: A_27d] : ( c_2EpatternMatches_2EPMATCH__ROW__COND @ A_27d @ A_27b @ V3p @ V4g @ V0v @ V5x ) )
@ ( V2r
@ ( c_2Emin_2E_40 @ A_27d
@ ^ [V6x: A_27d] : ( c_2EpatternMatches_2EPMATCH__ROW__COND @ A_27d @ A_27b @ V3p @ V4g @ V0v @ V6x ) ) )
@ ( c_2EpatternMatches_2EPMATCH @ A_27c @ A_27b @ V0v @ V1rs ) ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__EVAL__MATCH,axiom,
! [A_27a: $tType,A_27b: $tType,A_27c: $tType,V0v: A_27c,V1rs: tyop_2Elist_2Elist @ ( A_27c > ( tyop_2Eoption_2Eoption @ A_27a ) ),V2r: A_27b > A_27a,V3p: A_27b > A_27c,V4g: A_27b > $o] :
( ( (~)
@ ( ( c_2EpatternMatches_2EPMATCH__ROW @ A_27a @ A_27b @ A_27c @ V3p @ V4g @ V2r @ V0v )
= ( c_2Eoption_2ENONE @ A_27a ) ) )
=> ( ( c_2EpatternMatches_2EPMATCH @ A_27a @ A_27c @ V0v @ ( c_2Elist_2ECONS @ ( A_27c > ( tyop_2Eoption_2Eoption @ A_27a ) ) @ ( c_2EpatternMatches_2EPMATCH__ROW @ A_27a @ A_27b @ A_27c @ V3p @ V4g @ V2r ) @ V1rs ) )
= ( V2r
@ ( c_2Emin_2E_40 @ A_27b
@ ^ [V5x: A_27b] : ( c_2EpatternMatches_2EPMATCH__ROW__COND @ A_27b @ A_27c @ V3p @ V4g @ V0v @ V5x ) ) ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__EXTEND__BASE,axiom,
! [A_27a: $tType,A_27b: $tType,A_27c: $tType,V0v__old: A_27a,V1v__new: A_27b] :
( ( c_2EpatternMatches_2EPMATCH @ A_27c @ A_27a @ V0v__old @ ( c_2Elist_2ENIL @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27c ) ) ) )
= ( c_2EpatternMatches_2EPMATCH @ A_27c @ A_27b @ V1v__new @ ( c_2Elist_2ENIL @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27c ) ) ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__EXTEND__BOTH,axiom,
! [A_27a: $tType,A_27b: $tType,A_27c: $tType,V0v__old: A_27a,V1v__new: A_27b,V2rows__old: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27c ) ),V3rows__new: tyop_2Elist_2Elist @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27c ) ),V4r__old: A_27a > ( tyop_2Eoption_2Eoption @ A_27c ),V5r__new: A_27b > ( tyop_2Eoption_2Eoption @ A_27c )] :
( ( ( V4r__old @ V0v__old )
= ( V5r__new @ V1v__new ) )
=> ( ( ( c_2EpatternMatches_2EPMATCH @ A_27c @ A_27a @ V0v__old @ V2rows__old )
= ( c_2EpatternMatches_2EPMATCH @ A_27c @ A_27b @ V1v__new @ V3rows__new ) )
=> ( ( c_2EpatternMatches_2EPMATCH @ A_27c @ A_27a @ V0v__old @ ( c_2Elist_2ECONS @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27c ) ) @ V4r__old @ V2rows__old ) )
= ( c_2EpatternMatches_2EPMATCH @ A_27c @ A_27b @ V1v__new @ ( c_2Elist_2ECONS @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27c ) ) @ V5r__new @ V3rows__new ) ) ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__EXTEND__BOTH__ID,axiom,
! [A_27a: $tType,A_27b: $tType,V0v: A_27a,V1rows__old: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ),V2rows__new: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ),V3r: A_27a > ( tyop_2Eoption_2Eoption @ A_27b )] :
( ( ( c_2EpatternMatches_2EPMATCH @ A_27b @ A_27a @ V0v @ V1rows__old )
= ( c_2EpatternMatches_2EPMATCH @ A_27b @ A_27a @ V0v @ V2rows__new ) )
=> ( ( c_2EpatternMatches_2EPMATCH @ A_27b @ A_27a @ V0v @ ( c_2Elist_2ECONS @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V3r @ V1rows__old ) )
= ( c_2EpatternMatches_2EPMATCH @ A_27b @ A_27a @ V0v @ ( c_2Elist_2ECONS @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V3r @ V2rows__new ) ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__EXTEND__OLD,axiom,
! [A_27a: $tType,A_27b: $tType,A_27c: $tType,V0v__old: A_27a,V1v__new: A_27b,V2rows__old: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27c ) ),V3rows__new: tyop_2Elist_2Elist @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27c ) ),V4r__old: A_27a > ( tyop_2Eoption_2Eoption @ A_27c )] :
( ( ( V4r__old @ V0v__old )
= ( c_2Eoption_2ENONE @ A_27c ) )
=> ( ( ( c_2EpatternMatches_2EPMATCH @ A_27c @ A_27a @ V0v__old @ V2rows__old )
= ( c_2EpatternMatches_2EPMATCH @ A_27c @ A_27b @ V1v__new @ V3rows__new ) )
=> ( ( c_2EpatternMatches_2EPMATCH @ A_27c @ A_27a @ V0v__old @ ( c_2Elist_2ECONS @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27c ) ) @ V4r__old @ V2rows__old ) )
= ( c_2EpatternMatches_2EPMATCH @ A_27c @ A_27b @ V1v__new @ V3rows__new ) ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__ROW__REMOVE__FUN,axiom,
! [A_27a: $tType,A_27b: $tType,A_27c: $tType,A_27d: $tType,V0ff: A_27a > A_27b,V1v: A_27a,V2p: A_27c > A_27a,V3g: A_27c > $o,V4r: A_27c > A_27d] :
( ! [V5x: A_27a,V6y: A_27a] :
( ( ( V0ff @ V5x )
= ( V0ff @ V6y ) )
=> ( V5x = V6y ) )
=> ( ( c_2EpatternMatches_2EPMATCH__ROW @ A_27d @ A_27c @ A_27b
@ ^ [V7x: A_27c] : ( V0ff @ ( V2p @ V7x ) )
@ V3g
@ V4r
@ ( V0ff @ V1v ) )
= ( c_2EpatternMatches_2EPMATCH__ROW @ A_27d @ A_27c @ A_27a
@ ^ [V8x: A_27c] : ( V2p @ V8x )
@ V3g
@ V4r
@ V1v ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__ROW__EXTEND__INPUT,axiom,
! [A_27a: $tType,A_27b: $tType,A_27c: $tType,A_27d: $tType,A_27e: $tType,A_27f: $tType,V0v: A_27a,V1v_27: A_27b,V2f_27: A_27b > A_27c,V3f: A_27d > A_27e,V4p: A_27e > A_27a,V5g: A_27c > A_27e > $o,V6r: A_27c > A_27e > A_27f,V7p_27: A_27d > A_27b] :
( ( ! [V8x_27: A_27d] :
( ( V1v_27
= ( V7p_27 @ V8x_27 ) )
=> ( ( V4p @ ( V3f @ V8x_27 ) )
= V0v ) )
& ! [V9x: A_27e] :
( ( V0v
= ( V4p @ V9x ) )
=> ? [V10x_27: A_27d] :
( ( V7p_27 @ V10x_27 )
= V1v_27 ) )
& ! [V11x: A_27e,V12y: A_27e] :
( ( ( V4p @ V11x )
= ( V4p @ V12y ) )
=> ( V11x = V12y ) ) )
=> ( ( c_2EpatternMatches_2EPMATCH__ROW @ A_27f @ A_27e @ A_27a @ V4p @ ( V5g @ ( V2f_27 @ V1v_27 ) ) @ ( V6r @ ( V2f_27 @ V1v_27 ) ) @ V0v )
= ( c_2EpatternMatches_2EPMATCH__ROW @ A_27f @ A_27d @ A_27b @ V7p_27
@ ^ [V13x: A_27d] : ( V5g @ ( V2f_27 @ ( V7p_27 @ V13x ) ) @ ( V3f @ V13x ) )
@ ^ [V14x: A_27d] : ( V6r @ ( V2f_27 @ ( V7p_27 @ V14x ) ) @ ( V3f @ V14x ) )
@ V1v_27 ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__ROW__REMOVE__FUN__VAR,axiom,
! [A_27a: $tType,A_27b: $tType,A_27c: $tType,A_27d: $tType,A_27e: $tType,V0v: A_27a,V1v_27: A_27b,V2f: A_27c > A_27d,V3p: A_27d > A_27a,V4g: A_27d > $o,V5r: A_27d > A_27e,V6p_27: A_27c > A_27b] :
( ( ! [V7x_27: A_27c] :
( ( V1v_27
= ( V6p_27 @ V7x_27 ) )
<=> ( ( V3p @ ( V2f @ V7x_27 ) )
= V0v ) )
& ! [V8x: A_27d] :
( ( V0v
= ( V3p @ V8x ) )
=> ? [V9x_27: A_27c] :
( ( V2f @ V9x_27 )
= V8x ) )
& ! [V10x: A_27d,V11y: A_27d] :
( ( ( V3p @ V10x )
= ( V3p @ V11y ) )
=> ( V10x = V11y ) ) )
=> ( ( c_2EpatternMatches_2EPMATCH__ROW @ A_27e @ A_27d @ A_27a @ V3p @ V4g @ V5r @ V0v )
= ( c_2EpatternMatches_2EPMATCH__ROW @ A_27e @ A_27c @ A_27b @ V6p_27
@ ^ [V12x: A_27c] : ( V4g @ ( V2f @ V12x ) )
@ ^ [V13x: A_27c] : ( V5r @ ( V2f @ V13x ) )
@ V1v_27 ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__EQUIV__ROWS__EQUIV__EXPAND,axiom,
! [A_27a: $tType,A_27b: $tType,V0v: A_27a,V1rows2: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ),V2rows1: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) )] :
( ( c_2EpatternMatches_2EPMATCH__EQUIV__ROWS @ A_27a @ A_27b @ V0v @ V2rows1 @ V1rows2 )
<=> ( ( c_2EpatternMatches_2EPMATCH__EQUIV__ROWS @ A_27a @ A_27b @ V0v @ V2rows1 )
= ( c_2EpatternMatches_2EPMATCH__EQUIV__ROWS @ A_27a @ A_27b @ V0v @ V1rows2 ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__EQUIV__ROWS__is__equiv__1,axiom,
! [A_27a: $tType,A_27b: $tType,V0v: A_27a,V1rows: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) )] : ( c_2EpatternMatches_2EPMATCH__EQUIV__ROWS @ A_27a @ A_27b @ V0v @ V1rows @ V1rows ) ).
thf(thm_2EpatternMatches_2EPMATCH__EQUIV__ROWS__is__equiv__2,axiom,
! [A_27a: $tType,A_27b: $tType,V0v: A_27a,V1rows1: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ),V2rows2: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) )] :
( ( c_2EpatternMatches_2EPMATCH__EQUIV__ROWS @ A_27a @ A_27b @ V0v @ V1rows1 @ V2rows2 )
= ( c_2EpatternMatches_2EPMATCH__EQUIV__ROWS @ A_27a @ A_27b @ V0v @ V2rows2 @ V1rows1 ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__EQUIV__ROWS__is__equiv__3,axiom,
! [A_27a: $tType,A_27b: $tType,V0v: A_27a,V1rows1: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ),V2rows2: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ),V3rows3: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) )] :
( ( c_2EpatternMatches_2EPMATCH__EQUIV__ROWS @ A_27a @ A_27b @ V0v @ V1rows1 @ V2rows2 )
=> ( ( c_2EpatternMatches_2EPMATCH__EQUIV__ROWS @ A_27a @ A_27b @ V0v @ V2rows2 @ V3rows3 )
=> ( c_2EpatternMatches_2EPMATCH__EQUIV__ROWS @ A_27a @ A_27b @ V0v @ V1rows1 @ V3rows3 ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__EQUIV__ROWS__MATCH,axiom,
! [A_27a: $tType,A_27b: $tType,V0v: A_27a,V1rows2: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ),V2rows1: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) )] :
( ( c_2EpatternMatches_2EPMATCH__EQUIV__ROWS @ A_27a @ A_27b @ V0v @ V2rows1 @ V1rows2 )
=> ( ( c_2EpatternMatches_2EPMATCH @ A_27b @ A_27a @ V0v @ V2rows1 )
= ( c_2EpatternMatches_2EPMATCH @ A_27b @ A_27a @ V0v @ V1rows2 ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__APPEND__SEM,axiom,
! [A_27a: $tType,A_27b: $tType,V0v: A_27a,V1rows1: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ),V2rows2: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) )] :
( ( c_2EpatternMatches_2EPMATCH @ A_27b @ A_27a @ V0v @ ( c_2Elist_2EAPPEND @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V1rows1 @ V2rows2 ) )
= ( c_2Ebool_2ECOND @ A_27b
@ ( c_2Ebool_2E_3F @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) )
@ ^ [V3r: A_27a > ( tyop_2Eoption_2Eoption @ A_27b )] : ( c_2Ebool_2E_2F_5C @ ( c_2Ebool_2EIN @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V3r @ ( c_2Elist_2ELIST__TO__SET @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V1rows1 ) ) @ ( c_2Eoption_2EIS__SOME @ A_27b @ ( V3r @ V0v ) ) ) )
@ ( c_2EpatternMatches_2EPMATCH @ A_27b @ A_27a @ V0v @ V1rows1 )
@ ( c_2EpatternMatches_2EPMATCH @ A_27b @ A_27a @ V0v @ V2rows2 ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__EQUIV__APPEND,axiom,
! [A_27a: $tType,A_27b: $tType,V0v: A_27a,V1rows1a: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ),V2rows1b: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ),V3rows2a: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ),V4rows2b: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) )] :
( ( c_2EpatternMatches_2EPMATCH__EQUIV__ROWS @ A_27a @ A_27b @ V0v @ V1rows1a @ V2rows1b )
=> ( ( c_2EpatternMatches_2EPMATCH__EQUIV__ROWS @ A_27a @ A_27b @ V0v @ V3rows2a @ V4rows2b )
=> ( c_2EpatternMatches_2EPMATCH__EQUIV__ROWS @ A_27a @ A_27b @ V0v @ ( c_2Elist_2EAPPEND @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V1rows1a @ V3rows2a ) @ ( c_2Elist_2EAPPEND @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V2rows1b @ V4rows2b ) ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__EQUIV__ROWS__CONS__NONE,axiom,
! [A_27a: $tType,A_27b: $tType,V0v: A_27b,V1rows: tyop_2Elist_2Elist @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27a ) ),V2row: A_27b > ( tyop_2Eoption_2Eoption @ A_27a )] :
( ( ( V2row @ V0v )
= ( c_2Eoption_2ENONE @ A_27a ) )
=> ( ( c_2EpatternMatches_2EPMATCH__EQUIV__ROWS @ A_27b @ A_27a @ V0v @ ( c_2Elist_2ECONS @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27a ) ) @ V2row @ V1rows ) )
= ( c_2EpatternMatches_2EPMATCH__EQUIV__ROWS @ A_27b @ A_27a @ V0v @ V1rows ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__ROWS__DROP__REDUNDANT__TRIVIAL__SOUNDNESS__EQUIV,axiom,
! [A_27a: $tType,A_27b: $tType,V0v: A_27a,V1rows: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ),V2n: tyop_2Enum_2Enum] :
( ( ( c_2Eprim__rec_2E_3C @ V2n @ ( c_2Elist_2ELENGTH @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V1rows ) )
& ( c_2Eoption_2EIS__SOME @ A_27b @ ( c_2Elist_2EEL @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V2n @ V1rows @ V0v ) ) )
=> ( c_2EpatternMatches_2EPMATCH__EQUIV__ROWS @ A_27a @ A_27b @ V0v @ V1rows @ ( c_2Elist_2ETAKE @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ ( c_2Enum_2ESUC @ V2n ) @ V1rows ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__ROWS__DROP__REDUNDANT__TRIVIAL__SOUNDNESS,axiom,
! [A_27a: $tType,A_27b: $tType,V0v: A_27a,V1rows: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ),V2n: tyop_2Enum_2Enum] :
( ( ( c_2Eprim__rec_2E_3C @ V2n @ ( c_2Elist_2ELENGTH @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V1rows ) )
& ( c_2Eoption_2EIS__SOME @ A_27b @ ( c_2Elist_2EEL @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V2n @ V1rows @ V0v ) ) )
=> ( ( c_2EpatternMatches_2EPMATCH @ A_27b @ A_27a @ V0v @ V1rows )
= ( c_2EpatternMatches_2EPMATCH @ A_27b @ A_27a @ V0v @ ( c_2Elist_2ETAKE @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ ( c_2Enum_2ESUC @ V2n ) @ V1rows ) ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__ROWS__DROP__REDUNDANT,axiom,
! [A_27a: $tType,A_27b: $tType,V0r1: A_27a > ( tyop_2Eoption_2Eoption @ A_27b ),V1r2: A_27a > ( tyop_2Eoption_2Eoption @ A_27b ),V2rows1: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ),V3rows2: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ),V4rows3: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ),V5v: A_27a] :
( ( ( c_2Eoption_2EIS__SOME @ A_27b @ ( V1r2 @ V5v ) )
=> ( c_2Eoption_2EIS__SOME @ A_27b @ ( V0r1 @ V5v ) ) )
=> ( ( c_2EpatternMatches_2EPMATCH @ A_27b @ A_27a @ V5v @ ( c_2Elist_2EAPPEND @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ ( c_2Elist_2EAPPEND @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V2rows1 @ ( c_2Elist_2ECONS @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V0r1 @ V3rows2 ) ) @ ( c_2Elist_2ECONS @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V1r2 @ V4rows3 ) ) )
= ( c_2EpatternMatches_2EPMATCH @ A_27b @ A_27a @ V5v @ ( c_2Elist_2EAPPEND @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ ( c_2Elist_2EAPPEND @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V2rows1 @ ( c_2Elist_2ECONS @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V0r1 @ V3rows2 ) ) @ V4rows3 ) ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__ROWS__DROP__REDUNDANT__PMATCH__ROWS,axiom,
! [A_27a: $tType,A_27b: $tType,A_27c: $tType,A_27d: $tType,V0p: A_27a > A_27b,V1g: A_27a > $o,V2r: A_27a > A_27c,V3p_27: A_27d > A_27b,V4g_27: A_27d > $o,V5r_27: A_27d > A_27c,V6rows1: tyop_2Elist_2Elist @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27c ) ),V7rows2: tyop_2Elist_2Elist @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27c ) ),V8rows3: tyop_2Elist_2Elist @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27c ) ),V9v: A_27b] :
( ! [V10x_27: A_27d] :
( ( ( V9v
= ( V3p_27 @ V10x_27 ) )
& ( V4g_27 @ V10x_27 ) )
=> ? [V11x: A_27a] :
( ( ( V3p_27 @ V10x_27 )
= ( V0p @ V11x ) )
& ( V1g @ V11x ) ) )
=> ( ( c_2EpatternMatches_2EPMATCH @ A_27c @ A_27b @ V9v @ ( c_2Elist_2EAPPEND @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27c ) ) @ ( c_2Elist_2EAPPEND @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27c ) ) @ V6rows1 @ ( c_2Elist_2ECONS @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27c ) ) @ ( c_2EpatternMatches_2EPMATCH__ROW @ A_27c @ A_27a @ A_27b @ V0p @ V1g @ V2r ) @ V7rows2 ) ) @ ( c_2Elist_2ECONS @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27c ) ) @ ( c_2EpatternMatches_2EPMATCH__ROW @ A_27c @ A_27d @ A_27b @ V3p_27 @ V4g_27 @ V5r_27 ) @ V8rows3 ) ) )
= ( c_2EpatternMatches_2EPMATCH @ A_27c @ A_27b @ V9v @ ( c_2Elist_2EAPPEND @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27c ) ) @ ( c_2Elist_2EAPPEND @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27c ) ) @ V6rows1 @ ( c_2Elist_2ECONS @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27c ) ) @ ( c_2EpatternMatches_2EPMATCH__ROW @ A_27c @ A_27a @ A_27b @ V0p @ V1g @ V2r ) @ V7rows2 ) ) @ V8rows3 ) ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__ROWS__DROP__SUBSUMED,axiom,
! [A_27a: $tType,A_27b: $tType,V0r1: A_27a > ( tyop_2Eoption_2Eoption @ A_27b ),V1r2: A_27a > ( tyop_2Eoption_2Eoption @ A_27b ),V2rows1: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ),V3rows2: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ),V4rows3: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ),V5v: A_27a] :
( ( ! [V6x: A_27b] :
( ( ( V0r1 @ V5v )
= ( c_2Eoption_2ESOME @ A_27b @ V6x ) )
=> ( ( V1r2 @ V5v )
= ( c_2Eoption_2ESOME @ A_27b @ V6x ) ) )
& ( ( c_2Eoption_2EIS__SOME @ A_27b @ ( V0r1 @ V5v ) )
=> ( c_2Elist_2EEVERY @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) )
@ ^ [V7row: A_27a > ( tyop_2Eoption_2Eoption @ A_27b )] : ( c_2Emin_2E_3D @ ( tyop_2Eoption_2Eoption @ A_27b ) @ ( V7row @ V5v ) @ ( c_2Eoption_2ENONE @ A_27b ) )
@ V3rows2 ) ) )
=> ( ( c_2EpatternMatches_2EPMATCH @ A_27b @ A_27a @ V5v @ ( c_2Elist_2EAPPEND @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V2rows1 @ ( c_2Elist_2ECONS @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V0r1 @ ( c_2Elist_2EAPPEND @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V3rows2 @ ( c_2Elist_2ECONS @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V1r2 @ V4rows3 ) ) ) ) )
= ( c_2EpatternMatches_2EPMATCH @ A_27b @ A_27a @ V5v @ ( c_2Elist_2EAPPEND @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ ( c_2Elist_2EAPPEND @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V2rows1 @ V3rows2 ) @ ( c_2Elist_2ECONS @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V1r2 @ V4rows3 ) ) ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__ROWS__DROP__SUBSUMED__PMATCH__ROWS,axiom,
! [A_27a: $tType,A_27b: $tType,A_27c: $tType,A_27d: $tType,V0p: A_27a > A_27b,V1g: A_27a > $o,V2r: A_27a > A_27c,V3p_27: A_27d > A_27b,V4g_27: A_27d > $o,V5r_27: A_27d > A_27c,V6rows1: tyop_2Elist_2Elist @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27c ) ),V7rows2: tyop_2Elist_2Elist @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27c ) ),V8rows3: tyop_2Elist_2Elist @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27c ) ),V9v: A_27b] :
( ( ! [V10x: A_27a] :
( ( ( V9v
= ( V0p @ V10x ) )
& ( V1g @ V10x ) )
=> ? [V11x_27: A_27d] :
( ( ( V0p @ V10x )
= ( V3p_27 @ V11x_27 ) )
& ( V4g_27 @ V11x_27 ) ) )
& ! [V12x: A_27a,V13x_27: A_27d] :
( ( ( V9v
= ( V0p @ V12x ) )
& ( ( V0p @ V12x )
= ( V3p_27 @ V13x_27 ) )
& ( V1g @ V12x )
& ( V4g_27 @ V13x_27 ) )
=> ( ( V2r @ V12x )
= ( V5r_27 @ V13x_27 ) ) )
& ! [V14x: A_27a] :
( ( ( V9v
= ( V0p @ V14x ) )
& ( V1g @ V14x ) )
=> ( c_2Elist_2EEVERY @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27c ) )
@ ^ [V15row: A_27b > ( tyop_2Eoption_2Eoption @ A_27c )] : ( c_2Emin_2E_3D @ ( tyop_2Eoption_2Eoption @ A_27c ) @ ( V15row @ ( V0p @ V14x ) ) @ ( c_2Eoption_2ENONE @ A_27c ) )
@ V7rows2 ) ) )
=> ( ( c_2EpatternMatches_2EPMATCH @ A_27c @ A_27b @ V9v @ ( c_2Elist_2EAPPEND @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27c ) ) @ V6rows1 @ ( c_2Elist_2ECONS @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27c ) ) @ ( c_2EpatternMatches_2EPMATCH__ROW @ A_27c @ A_27a @ A_27b @ V0p @ V1g @ V2r ) @ ( c_2Elist_2EAPPEND @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27c ) ) @ V7rows2 @ ( c_2Elist_2ECONS @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27c ) ) @ ( c_2EpatternMatches_2EPMATCH__ROW @ A_27c @ A_27d @ A_27b @ V3p_27 @ V4g_27 @ V5r_27 ) @ V8rows3 ) ) ) ) )
= ( c_2EpatternMatches_2EPMATCH @ A_27c @ A_27b @ V9v @ ( c_2Elist_2EAPPEND @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27c ) ) @ ( c_2Elist_2EAPPEND @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27c ) ) @ V6rows1 @ V7rows2 ) @ ( c_2Elist_2ECONS @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27c ) ) @ ( c_2EpatternMatches_2EPMATCH__ROW @ A_27c @ A_27d @ A_27b @ V3p_27 @ V4g_27 @ V5r_27 ) @ V8rows3 ) ) ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__REMOVE__ARB,axiom,
! [A_27a: $tType,A_27b: $tType,A_27c: $tType,V0p: A_27a > A_27b,V1g: A_27a > $o,V2r: A_27a > A_27c,V3v: A_27b,V4rows: tyop_2Elist_2Elist @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27c ) )] :
( ! [V5x: A_27a] :
( ( V2r @ V5x )
= ( c_2Ebool_2EARB @ A_27c ) )
=> ( ( c_2EpatternMatches_2EPMATCH @ A_27c @ A_27b @ V3v @ ( c_2Elist_2ESNOC @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27c ) ) @ ( c_2EpatternMatches_2EPMATCH__ROW @ A_27c @ A_27a @ A_27b @ V0p @ V1g @ V2r ) @ V4rows ) )
= ( c_2EpatternMatches_2EPMATCH @ A_27c @ A_27b @ V3v @ V4rows ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__INTRO__CATCHALL,axiom,
! [A_27a: $tType,A_27b: $tType,V0v: A_27b,V1rows: tyop_2Elist_2Elist @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27a ) )] :
( ( c_2EpatternMatches_2EPMATCH @ A_27a @ A_27b @ V0v @ V1rows )
= ( c_2EpatternMatches_2EPMATCH @ A_27a @ A_27b @ V0v
@ ( c_2Elist_2ESNOC @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27a ) )
@ ( c_2EpatternMatches_2EPMATCH__ROW @ A_27a @ A_27b @ A_27b
@ ^ [V2__0: A_27b] : V2__0
@ ^ [V3__0: A_27b] : c_2Ebool_2ET
@ ^ [V4__0: A_27b] : ( c_2Ebool_2EARB @ A_27a ) )
@ V1rows ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__REMOVE__ARB__NO__OVERLAP,axiom,
! [A_27a: $tType,A_27b: $tType,A_27c: $tType,V0v: A_27a,V1p: A_27b > A_27a,V2g: A_27b > $o,V3r: A_27b > A_27c,V4rows1: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27c ) ),V5rows2: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27c ) )] :
( ( ! [V6x: A_27b] :
( ( V3r @ V6x )
= ( c_2Ebool_2EARB @ A_27c ) )
& ! [V7x: A_27b] :
( ( ( V0v
= ( V1p @ V7x ) )
& ( V2g @ V7x ) )
=> ( c_2Elist_2EEVERY @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27c ) )
@ ^ [V8row: A_27a > ( tyop_2Eoption_2Eoption @ A_27c )] : ( c_2Emin_2E_3D @ ( tyop_2Eoption_2Eoption @ A_27c ) @ ( V8row @ ( V1p @ V7x ) ) @ ( c_2Eoption_2ENONE @ A_27c ) )
@ V5rows2 ) ) )
=> ( ( c_2EpatternMatches_2EPMATCH @ A_27c @ A_27a @ V0v @ ( c_2Elist_2EAPPEND @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27c ) ) @ V4rows1 @ ( c_2Elist_2ECONS @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27c ) ) @ ( c_2EpatternMatches_2EPMATCH__ROW @ A_27c @ A_27b @ A_27a @ V1p @ V2g @ V3r ) @ V5rows2 ) ) )
= ( c_2EpatternMatches_2EPMATCH @ A_27c @ A_27a @ V0v @ ( c_2Elist_2EAPPEND @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27c ) ) @ V4rows1 @ V5rows2 ) ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__ROW__REDUNDANT__NIL,axiom,
! [A_27a: $tType,A_27b: $tType,V0v: A_27a,V1i: tyop_2Enum_2Enum] :
( ( c_2EpatternMatches_2EPMATCH__ROW__REDUNDANT @ A_27a @ A_27b @ V0v @ ( c_2Elist_2ENIL @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) ) @ V1i )
= c_2Ebool_2EF ) ).
thf(thm_2EpatternMatches_2EPMATCH__ROW__REDUNDANT__0,axiom,
! [A_27a: $tType,A_27b: $tType,V0v: A_27a,V1rs: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ),V2r: A_27a > ( tyop_2Eoption_2Eoption @ A_27b )] :
( ( c_2EpatternMatches_2EPMATCH__ROW__REDUNDANT @ A_27a @ A_27b @ V0v @ ( c_2Elist_2ECONS @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V2r @ V1rs ) @ c_2Enum_2E0 )
<=> ( ( V2r @ V0v )
= ( c_2Eoption_2ENONE @ A_27b ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__ROW__REDUNDANT__SUC,axiom,
! [A_27a: $tType,A_27b: $tType,V0v: A_27a,V1r: A_27a > ( tyop_2Eoption_2Eoption @ A_27b ),V2rs: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ),V3i: tyop_2Enum_2Enum] :
( ( c_2EpatternMatches_2EPMATCH__ROW__REDUNDANT @ A_27a @ A_27b @ V0v @ ( c_2Elist_2ECONS @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V1r @ V2rs ) @ ( c_2Enum_2ESUC @ V3i ) )
<=> ( ( ( (~)
@ ( ( V1r @ V0v )
= ( c_2Eoption_2ENONE @ A_27b ) ) )
& ( c_2Eprim__rec_2E_3C @ V3i @ ( c_2Elist_2ELENGTH @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V2rs ) ) )
| ( c_2EpatternMatches_2EPMATCH__ROW__REDUNDANT @ A_27a @ A_27b @ V0v @ V2rs @ V3i ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__ROW__REDUNDANT__APPEND__LT,axiom,
! [A_27a: $tType,A_27b: $tType,V0v: A_27a,V1rs1: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ),V2rs2: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ),V3i: tyop_2Enum_2Enum] :
( ( c_2Eprim__rec_2E_3C @ V3i @ ( c_2Elist_2ELENGTH @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V1rs1 ) )
=> ( ( c_2EpatternMatches_2EPMATCH__ROW__REDUNDANT @ A_27a @ A_27b @ V0v @ ( c_2Elist_2EAPPEND @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V1rs1 @ V2rs2 ) @ V3i )
= ( c_2EpatternMatches_2EPMATCH__ROW__REDUNDANT @ A_27a @ A_27b @ V0v @ V1rs1 @ V3i ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__ROW__REDUNDANT__APPEND__GE,axiom,
! [A_27a: $tType,A_27b: $tType,V0v: A_27a,V1rs1: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ),V2rs2: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ),V3i: tyop_2Enum_2Enum] :
( ( (~) @ ( c_2Eprim__rec_2E_3C @ V3i @ ( c_2Elist_2ELENGTH @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V1rs1 ) ) )
=> ( ( c_2EpatternMatches_2EPMATCH__ROW__REDUNDANT @ A_27a @ A_27b @ V0v @ ( c_2Elist_2EAPPEND @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V1rs1 @ V2rs2 ) @ V3i )
<=> ( ( ( (~)
@ ( c_2Elist_2EEVERY @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) )
@ ^ [V4r: A_27a > ( tyop_2Eoption_2Eoption @ A_27b )] : ( c_2Emin_2E_3D @ ( tyop_2Eoption_2Eoption @ A_27b ) @ ( V4r @ V0v ) @ ( c_2Eoption_2ENONE @ A_27b ) )
@ V1rs1 ) )
& ( c_2Eprim__rec_2E_3C @ V3i @ ( c_2Earithmetic_2E_2B @ ( c_2Elist_2ELENGTH @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V1rs1 ) @ ( c_2Elist_2ELENGTH @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V2rs2 ) ) ) )
| ( c_2EpatternMatches_2EPMATCH__ROW__REDUNDANT @ A_27a @ A_27b @ V0v @ V2rs2 @ ( c_2Earithmetic_2E_2D @ V3i @ ( c_2Elist_2ELENGTH @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V1rs1 ) ) ) ) ) ) ).
thf(thm_2EpatternMatches_2EIS__REDUNDANT__ROWS__INFO__NIL,axiom,
! [A_27a: $tType,A_27b: $tType,V0v: A_27a] : ( c_2EpatternMatches_2EIS__REDUNDANT__ROWS__INFO @ A_27a @ A_27b @ V0v @ ( c_2Elist_2ENIL @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) ) @ c_2Ebool_2ET @ ( c_2Elist_2ENIL @ $o ) ) ).
thf(thm_2EpatternMatches_2EIS__REDUNDANT__ROWS__INFO__SNOC,axiom,
! [A_27a: $tType,A_27b: $tType,V0v: A_27a,V1rows: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ),V2c: $o,V3infos: tyop_2Elist_2Elist @ $o,V4r: A_27a > ( tyop_2Eoption_2Eoption @ A_27b ),V5i: $o,V6c_27: $o] :
( ( c_2EpatternMatches_2EIS__REDUNDANT__ROWS__INFO @ A_27a @ A_27b @ V0v @ V1rows @ V2c @ V3infos )
=> ( ( ( ( V4r @ V0v )
= ( c_2Eoption_2ENONE @ A_27b ) )
=> ( V2c
=> V6c_27 ) )
=> ( ( V2c
=> ( V5i
=> ( ( V4r @ V0v )
= ( c_2Eoption_2ENONE @ A_27b ) ) ) )
=> ( c_2EpatternMatches_2EIS__REDUNDANT__ROWS__INFO @ A_27a @ A_27b @ V0v @ ( c_2Elist_2ESNOC @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V4r @ V1rows ) @ V6c_27 @ ( c_2Elist_2ESNOC @ $o @ V5i @ V3infos ) ) ) ) ) ).
thf(thm_2EpatternMatches_2EIS__REDUNDANT__ROWS__INFO__SNOC__PMATCH__ROW,axiom,
! [A_27a: $tType,A_27b: $tType,A_27c: $tType,V0v: A_27a,V1rows: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ),V2c: $o,V3infos: tyop_2Elist_2Elist @ $o,V4p: A_27c > A_27a,V5g: A_27c > $o,V6r: A_27c > A_27b,V7c_27: $o] :
( ( c_2EpatternMatches_2EIS__REDUNDANT__ROWS__INFO @ A_27a @ A_27b @ V0v @ V1rows @ V2c @ V3infos )
=> ( ( ( (~) @ ( c_2EpatternMatches_2EPMATCH__ROW__COND__EX @ A_27a @ A_27c @ V0v @ V4p @ V5g ) )
=> ( V2c = V7c_27 ) )
=> ( c_2EpatternMatches_2EIS__REDUNDANT__ROWS__INFO @ A_27a @ A_27b @ V0v @ ( c_2Elist_2ESNOC @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ ( c_2EpatternMatches_2EPMATCH__ROW @ A_27b @ A_27c @ A_27a @ V4p @ V5g @ V6r ) @ V1rows ) @ V7c_27 @ ( c_2Elist_2ESNOC @ $o @ ( c_2Emin_2E_3D_3D_3E @ V2c @ ( c_2Ebool_2E_7E @ ( c_2EpatternMatches_2EPMATCH__ROW__COND__EX @ A_27a @ A_27c @ V0v @ V4p @ V5g ) ) ) @ V3infos ) ) ) ) ).
thf(thm_2EpatternMatches_2EIS__REDUNDANT__ROWS__INFO__CONS,axiom,
! [A_27a: $tType,A_27b: $tType,V0v: A_27a,V1rows: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ),V2row: A_27a > ( tyop_2Eoption_2Eoption @ A_27b ),V3infos_27: tyop_2Elist_2Elist @ $o,V4i: $o,V5c: $o] :
( ( c_2EpatternMatches_2EIS__REDUNDANT__ROWS__INFO @ A_27a @ A_27b @ V0v @ ( c_2Elist_2ECONS @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V2row @ V1rows ) @ V5c @ ( c_2Elist_2ECONS @ $o @ V4i @ V3infos_27 ) )
<=> ( ( ( c_2Elist_2ELENGTH @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V1rows )
= ( c_2Elist_2ELENGTH @ $o @ V3infos_27 ) )
& ( V4i
=> ( ( V2row @ V0v )
= ( c_2Eoption_2ENONE @ A_27b ) ) )
& ( ( ( V2row @ V0v )
= ( c_2Eoption_2ENONE @ A_27b ) )
=> ( c_2EpatternMatches_2EIS__REDUNDANT__ROWS__INFO @ A_27a @ A_27b @ V0v @ V1rows @ V5c @ V3infos_27 ) ) ) ) ).
thf(thm_2EpatternMatches_2EAPPLY__REDUNDANT__ROWS__INFO__THMS,axiom,
! [A_27a: $tType,A_27b: $tType,A_27c: $tType] :
( ( ( c_2EpatternMatches_2EAPPLY__REDUNDANT__ROWS__INFO @ A_27a @ ( c_2Elist_2ENIL @ $o ) @ ( c_2Elist_2ENIL @ A_27a ) )
= ( c_2Elist_2ENIL @ A_27a ) )
& ! [V0is: tyop_2Elist_2Elist @ $o,V1x: A_27b,V2xs: tyop_2Elist_2Elist @ A_27b] :
( ( c_2EpatternMatches_2EAPPLY__REDUNDANT__ROWS__INFO @ A_27b @ ( c_2Elist_2ECONS @ $o @ c_2Ebool_2ET @ V0is ) @ ( c_2Elist_2ECONS @ A_27b @ V1x @ V2xs ) )
= ( c_2EpatternMatches_2EAPPLY__REDUNDANT__ROWS__INFO @ A_27b @ V0is @ V2xs ) )
& ! [V3is: tyop_2Elist_2Elist @ $o,V4x: A_27c,V5xs: tyop_2Elist_2Elist @ A_27c] :
( ( c_2EpatternMatches_2EAPPLY__REDUNDANT__ROWS__INFO @ A_27c @ ( c_2Elist_2ECONS @ $o @ c_2Ebool_2EF @ V3is ) @ ( c_2Elist_2ECONS @ A_27c @ V4x @ V5xs ) )
= ( c_2Elist_2ECONS @ A_27c @ V4x @ ( c_2EpatternMatches_2EAPPLY__REDUNDANT__ROWS__INFO @ A_27c @ V3is @ V5xs ) ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__ROWS__DROP__REDUNDANT__ROWS__INFO__EQUIV,axiom,
! [A_27a: $tType,A_27b: $tType,V0v: A_27a,V1c: $o,V2rows: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ),V3infos: tyop_2Elist_2Elist @ $o] :
( ( c_2EpatternMatches_2EIS__REDUNDANT__ROWS__INFO @ A_27a @ A_27b @ V0v @ V2rows @ V1c @ V3infos )
=> ( c_2EpatternMatches_2EPMATCH__EQUIV__ROWS @ A_27a @ A_27b @ V0v @ V2rows @ ( c_2EpatternMatches_2EAPPLY__REDUNDANT__ROWS__INFO @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V3infos @ V2rows ) ) ) ).
thf(thm_2EpatternMatches_2EREDUNDANT__ROWS__INFO__TO__PMATCH__EQ,axiom,
! [A_27a: $tType,A_27b: $tType,V0v: A_27a,V1c: $o,V2rows: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ),V3infos: tyop_2Elist_2Elist @ $o] :
( ( c_2EpatternMatches_2EIS__REDUNDANT__ROWS__INFO @ A_27a @ A_27b @ V0v @ V2rows @ V1c @ V3infos )
=> ( ( c_2EpatternMatches_2EPMATCH @ A_27b @ A_27a @ V0v @ V2rows )
= ( c_2EpatternMatches_2EPMATCH @ A_27b @ A_27a @ V0v @ ( c_2EpatternMatches_2EAPPLY__REDUNDANT__ROWS__INFO @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V3infos @ V2rows ) ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__IS__EXHAUSTIVE__REWRITES,axiom,
! [A_27a: $tType,A_27b: $tType,A_27c: $tType,A_27d: $tType] :
( ! [V0v: A_27a] :
( ( c_2EpatternMatches_2EPMATCH__IS__EXHAUSTIVE @ A_27a @ A_27b @ V0v @ ( c_2Elist_2ENIL @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) ) )
= c_2Ebool_2EF )
& ! [V1v: A_27c,V2r: A_27c > ( tyop_2Eoption_2Eoption @ A_27d ),V3rs: tyop_2Elist_2Elist @ ( A_27c > ( tyop_2Eoption_2Eoption @ A_27d ) )] :
( ( c_2EpatternMatches_2EPMATCH__IS__EXHAUSTIVE @ A_27c @ A_27d @ V1v @ ( c_2Elist_2ECONS @ ( A_27c > ( tyop_2Eoption_2Eoption @ A_27d ) ) @ V2r @ V3rs ) )
<=> ( ( (~)
@ ( ( V2r @ V1v )
= ( c_2Eoption_2ENONE @ A_27d ) ) )
| ( c_2EpatternMatches_2EPMATCH__IS__EXHAUSTIVE @ A_27c @ A_27d @ V1v @ V3rs ) ) ) ) ).
thf(thm_2EpatternMatches_2EIS__REDUNDANT__ROWS__INFO__EXTRACT__IS__EXHAUSTIVE,axiom,
! [A_27a: $tType,A_27b: $tType,V0v: A_27a,V1rows: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ),V2c: $o,V3infos: tyop_2Elist_2Elist @ $o] :
( ( c_2EpatternMatches_2EIS__REDUNDANT__ROWS__INFO @ A_27a @ A_27b @ V0v @ V1rows @ V2c @ V3infos )
=> ( ( (~) @ V2c )
=> ( c_2EpatternMatches_2EPMATCH__IS__EXHAUSTIVE @ A_27a @ A_27b @ V0v @ V1rows ) ) ) ).
thf(thm_2EpatternMatches_2EREDUNDANT__ROWS__INFOS__CONJ__REWRITE,axiom,
! [V0is2: tyop_2Elist_2Elist @ $o,V1is1: tyop_2Elist_2Elist @ $o,V2i2: $o,V3i1: $o] :
( ( ( c_2EpatternMatches_2EREDUNDANT__ROWS__INFOS__CONJ @ ( c_2Elist_2ENIL @ $o ) @ ( c_2Elist_2ENIL @ $o ) )
= ( c_2Elist_2ENIL @ $o ) )
& ( ( c_2EpatternMatches_2EREDUNDANT__ROWS__INFOS__CONJ @ ( c_2Elist_2ECONS @ $o @ V3i1 @ V1is1 ) @ ( c_2Elist_2ECONS @ $o @ V2i2 @ V0is2 ) )
= ( c_2Elist_2ECONS @ $o @ ( c_2Ebool_2E_2F_5C @ V3i1 @ V2i2 ) @ ( c_2EpatternMatches_2EREDUNDANT__ROWS__INFOS__CONJ @ V1is1 @ V0is2 ) ) ) ) ).
thf(thm_2EpatternMatches_2EREDUNDANT__ROWS__INFOS__CONJ__THM,axiom,
! [A_27a: $tType,A_27b: $tType,V0v: A_27a,V1rows: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ),V2c: $o,V3infos: tyop_2Elist_2Elist @ $o,V4c_27: $o,V5infos_27: tyop_2Elist_2Elist @ $o] :
( ( c_2EpatternMatches_2EIS__REDUNDANT__ROWS__INFO @ A_27a @ A_27b @ V0v @ V1rows @ V2c @ V3infos )
=> ( ( ( c_2Elist_2ELENGTH @ $o @ V5infos_27 )
= ( c_2Elist_2ELENGTH @ $o @ V3infos ) )
=> ( c_2EpatternMatches_2EIS__REDUNDANT__ROWS__INFO @ A_27a @ A_27b @ V0v @ V1rows @ ( c_2Ebool_2E_5C_2F @ V2c @ V4c_27 ) @ ( c_2EpatternMatches_2EREDUNDANT__ROWS__INFOS__CONJ @ V3infos @ V5infos_27 ) ) ) ) ).
thf(thm_2EpatternMatches_2EREDUNDANT__ROWS__INFOS__DISJ__THM,axiom,
! [A_27a: $tType,A_27b: $tType,V0v: A_27a,V1rows: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ),V2c: $o,V3infos: tyop_2Elist_2Elist @ $o,V4c_27: $o,V5infos_27: tyop_2Elist_2Elist @ $o] :
( ( c_2EpatternMatches_2EIS__REDUNDANT__ROWS__INFO @ A_27a @ A_27b @ V0v @ V1rows @ V2c @ V3infos )
=> ( ( c_2EpatternMatches_2EIS__REDUNDANT__ROWS__INFO @ A_27a @ A_27b @ V0v @ V1rows @ V4c_27 @ V5infos_27 )
=> ( c_2EpatternMatches_2EIS__REDUNDANT__ROWS__INFO @ A_27a @ A_27b @ V0v @ V1rows @ ( c_2Ebool_2E_2F_5C @ V2c @ V4c_27 ) @ ( c_2EpatternMatches_2EREDUNDANT__ROWS__INFOS__DISJ @ V3infos @ V5infos_27 ) ) ) ) ).
thf(thm_2EpatternMatches_2ELENGTH__STRONGEST__REDUNDANT__ROWS__INFO__AUX,axiom,
! [A_27a: $tType,A_27b: $tType,V0v: A_27a,V1rows: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ),V2p: $o,V3infos: tyop_2Elist_2Elist @ $o] :
( ( c_2Elist_2ELENGTH @ $o @ ( c_2Epair_2ESND @ $o @ ( tyop_2Elist_2Elist @ $o ) @ ( c_2EpatternMatches_2ESTRONGEST__REDUNDANT__ROWS__INFO__AUX @ A_27a @ A_27b @ V0v @ V1rows @ V2p @ V3infos ) ) )
= ( c_2Earithmetic_2E_2B @ ( c_2Elist_2ELENGTH @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V1rows ) @ ( c_2Elist_2ELENGTH @ $o @ V3infos ) ) ) ).
thf(thm_2EpatternMatches_2EFST__STRONGEST__REDUNDANT__ROWS__INFO__AUX,axiom,
! [A_27a: $tType,A_27b: $tType,V0v: A_27a,V1rows: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ),V2p: $o,V3infos: tyop_2Elist_2Elist @ $o] :
( ( c_2Epair_2EFST @ $o @ ( tyop_2Elist_2Elist @ $o ) @ ( c_2EpatternMatches_2ESTRONGEST__REDUNDANT__ROWS__INFO__AUX @ A_27a @ A_27b @ V0v @ V1rows @ V2p @ V3infos ) )
<=> ( V2p
& ( c_2Elist_2EEVERY @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) )
@ ^ [V4r: A_27a > ( tyop_2Eoption_2Eoption @ A_27b )] : ( c_2Emin_2E_3D @ ( tyop_2Eoption_2Eoption @ A_27b ) @ ( V4r @ V0v ) @ ( c_2Eoption_2ENONE @ A_27b ) )
@ V1rows ) ) ) ).
thf(thm_2EpatternMatches_2EEL__STRONGEST__REDUNDANT__ROWS__INFO,axiom,
! [A_27a: $tType,A_27b: $tType,V0v: A_27a,V1rows: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ),V2i: tyop_2Enum_2Enum] :
( ( c_2Eprim__rec_2E_3C @ V2i @ ( c_2Elist_2ELENGTH @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V1rows ) )
=> ( ( c_2Elist_2EEL @ $o @ V2i @ ( c_2EpatternMatches_2ESTRONGEST__REDUNDANT__ROWS__INFO @ A_27a @ A_27b @ V0v @ V1rows ) )
<=> ( ( c_2Elist_2EEVERY @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) )
@ ^ [V3r: A_27a > ( tyop_2Eoption_2Eoption @ A_27b )] : ( c_2Emin_2E_3D @ ( tyop_2Eoption_2Eoption @ A_27b ) @ ( V3r @ V0v ) @ ( c_2Eoption_2ENONE @ A_27b ) )
@ ( c_2Elist_2ETAKE @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V2i @ V1rows ) )
=> ( ( c_2Elist_2EEL @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V2i @ V1rows @ V0v )
= ( c_2Eoption_2ENONE @ A_27b ) ) ) ) ) ).
thf(thm_2EpatternMatches_2ESTRONGEST__REDUNDANT__ROWS__INFO__OK,axiom,
! [A_27a: $tType,A_27b: $tType,V0v: A_27a,V1rows: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) )] :
( c_2EpatternMatches_2EIS__REDUNDANT__ROWS__INFO @ A_27a @ A_27b @ V0v @ V1rows
@ ( c_2Elist_2EEVERY @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) )
@ ^ [V2r: A_27a > ( tyop_2Eoption_2Eoption @ A_27b )] : ( c_2Emin_2E_3D @ ( tyop_2Eoption_2Eoption @ A_27b ) @ ( V2r @ V0v ) @ ( c_2Eoption_2ENONE @ A_27b ) )
@ V1rows )
@ ( c_2EpatternMatches_2ESTRONGEST__REDUNDANT__ROWS__INFO @ A_27a @ A_27b @ V0v @ V1rows ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__ROW__COND__EX__FULL__DEF,axiom,
! [A_27a: $tType,A_27b: $tType,V0p: A_27b > A_27a,V1i: A_27a,V2g: A_27b > $o] :
( ( c_2EpatternMatches_2EPMATCH__ROW__COND__EX @ A_27a @ A_27b @ V1i @ V0p @ V2g )
<=> ? [V3x: A_27b] :
( ( V1i
= ( V0p @ V3x ) )
& ( V2g @ V3x ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__ROW__COND__EX__WEAKEN,axiom,
! [A_27a: $tType,A_27b: $tType,A_27c: $tType,V0f: A_27a > A_27b,V1v: A_27c,V2p: A_27b > A_27c,V3g: A_27b > $o,V4p_27: A_27a > A_27c,V5g_27: A_27a > $o] :
( ( (~) @ ( c_2EpatternMatches_2EPMATCH__ROW__COND__EX @ A_27c @ A_27b @ V1v @ V2p @ V3g ) )
=> ( ! [V6x: A_27a] :
( ( V4p_27 @ V6x )
= ( V2p @ ( V0f @ V6x ) ) )
=> ( ( c_2EpatternMatches_2EPMATCH__ROW__COND__EX @ A_27c @ A_27a @ V1v @ V4p_27 @ V5g_27 )
= ( c_2EpatternMatches_2EPMATCH__ROW__COND__EX @ A_27c @ A_27a @ V1v @ V4p_27
@ ^ [V7x: A_27a] : ( c_2Ebool_2E_2F_5C @ ( V5g_27 @ V7x ) @ ( c_2Ebool_2E_7E @ ( V3g @ ( V0f @ V7x ) ) ) ) ) ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__ROW__COND__EX__FALSE,axiom,
! [A_27a: $tType,A_27b: $tType,V0v: A_27a,V1p: A_27b > A_27a,V2g: A_27b > $o] :
( ! [V3x: A_27b] : ( (~) @ ( V2g @ V3x ) )
=> ( ( c_2EpatternMatches_2EPMATCH__ROW__COND__EX @ A_27a @ A_27b @ V0v @ V1p @ V2g )
= c_2Ebool_2EF ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__ROW__COND__EX__IMP__REWRITE,axiom,
! [A_27a: $tType,A_27b: $tType,A_27c: $tType,V0v: A_27a,V1p: A_27b > A_27a,V2g: A_27b > $o,V3p_27: A_27c > A_27a,V4g_27: A_27c > $o,V5RES: $o] :
( ( c_2EpatternMatches_2EPMATCH__ROW__COND__EX @ A_27a @ A_27b @ V0v @ V1p @ V2g )
=> ( ! [V6x: A_27b] :
( ( V2g @ V6x )
=> ( ? [V7x_27: A_27c] :
( ( ( V3p_27 @ V7x_27 )
= ( V1p @ V6x ) )
& ( V4g_27 @ V7x_27 ) )
<=> V5RES ) )
=> ( ( c_2EpatternMatches_2EPMATCH__ROW__COND__EX @ A_27a @ A_27c @ V0v @ V3p_27 @ V4g_27 )
= V5RES ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__IS__EXHAUSTIVE__CONTRADICT,axiom,
! [A_27a: $tType,A_27b: $tType,V0v: A_27a,V1rs: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) )] :
( ( ( c_2Elist_2EEVERY @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) )
@ ^ [V2r: A_27a > ( tyop_2Eoption_2Eoption @ A_27b )] : ( c_2Emin_2E_3D @ ( tyop_2Eoption_2Eoption @ A_27b ) @ ( V2r @ V0v ) @ ( c_2Eoption_2ENONE @ A_27b ) )
@ V1rs )
=> c_2Ebool_2EF )
=> ( c_2EpatternMatches_2EPMATCH__IS__EXHAUSTIVE @ A_27a @ A_27b @ V0v @ V1rs ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__ROW__EVAL__COND__EX,axiom,
! [A_27a: $tType,A_27b: $tType,A_27c: $tType,V0r: A_27b > A_27c,V1p: A_27b > A_27a,V2i: A_27a,V3g: A_27b > $o] :
( ( c_2EpatternMatches_2EPMATCH__ROW__COND__EX @ A_27a @ A_27b @ V2i @ V1p @ V3g )
=> ( ( c_2EpatternMatches_2EPMATCH__ROW @ A_27c @ A_27b @ A_27a @ V1p @ V3g @ V0r @ V2i )
= ( c_2Eoption_2ESOME @ A_27c
@ ( V0r
@ ( c_2Emin_2E_40 @ A_27b
@ ^ [V4x: A_27b] : ( c_2EpatternMatches_2EPMATCH__ROW__COND @ A_27b @ A_27a @ V1p @ V3g @ V2i @ V4x ) ) ) ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__ROW__NEQ__NONE,axiom,
! [A_27a: $tType,A_27b: $tType,A_27c: $tType,V0r: A_27b > A_27a,V1p: A_27b > A_27c,V2i: A_27c,V3g: A_27b > $o] :
( ( (~)
@ ( ( c_2EpatternMatches_2EPMATCH__ROW @ A_27a @ A_27b @ A_27c @ V1p @ V3g @ V0r @ V2i )
= ( c_2Eoption_2ENONE @ A_27a ) ) )
<=> ( c_2EpatternMatches_2EPMATCH__ROW__COND__EX @ A_27c @ A_27b @ V2i @ V1p @ V3g ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__ROW__REMOVE__DOUBLE__BINDS__THM,axiom,
! [A_27a: $tType,A_27b: $tType,A_27c: $tType,A_27d: $tType,V0g: A_27a > A_27b,V1p1: A_27a > A_27c,V2g1: A_27a > $o,V3r1: A_27a > A_27d,V4p2: A_27b > A_27c,V5g2: A_27b > $o,V6r2: A_27b > A_27d] :
( ( ! [V7x: A_27a,V8y: A_27a] :
( ( ( V1p1 @ V7x )
= ( V1p1 @ V8y ) )
=> ( V7x = V8y ) )
& ! [V9x: A_27a] :
( ( V4p2 @ ( V0g @ V9x ) )
= ( V1p1 @ V9x ) )
& ! [V10x_27: A_27b] :
( ( V5g2 @ V10x_27 )
<=> ? [V11x: A_27a] :
( ( V10x_27
= ( V0g @ V11x ) )
& ( V2g1 @ V11x ) ) )
& ! [V12x: A_27a] :
( ( V6r2 @ ( V0g @ V12x ) )
= ( V3r1 @ V12x ) ) )
=> ( ( c_2EpatternMatches_2EPMATCH__ROW @ A_27d @ A_27a @ A_27c @ V1p1 @ V2g1 @ V3r1 )
= ( c_2EpatternMatches_2EPMATCH__ROW @ A_27d @ A_27b @ A_27c @ V4p2 @ V5g2 @ V6r2 ) ) ) ).
thf(thm_2EpatternMatches_2EGUARDS__ELIM__THM,axiom,
! [A_27a: $tType,A_27b: $tType,A_27c: $tType,V0v: A_27a,V1rs1: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ),V2rs2: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ),V3p: A_27c > A_27a,V4g: A_27c > $o,V5r: A_27c > A_27b] :
( ! [V6x1: A_27c,V7x2: A_27c] :
( ( ( V3p @ V6x1 )
= ( V3p @ V7x2 ) )
=> ( V6x1 = V7x2 ) )
=> ( ( c_2EpatternMatches_2EPMATCH @ A_27b @ A_27a @ V0v @ ( c_2Elist_2EAPPEND @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V1rs1 @ ( c_2Elist_2ECONS @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ ( c_2EpatternMatches_2EPMATCH__ROW @ A_27b @ A_27c @ A_27a @ V3p @ V4g @ V5r ) @ V2rs2 ) ) )
= ( c_2EpatternMatches_2EPMATCH @ A_27b @ A_27a @ V0v
@ ( c_2Elist_2EAPPEND @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V1rs1
@ ( c_2Elist_2ECONS @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) )
@ ( c_2EpatternMatches_2EPMATCH__ROW @ A_27b @ A_27c @ A_27a @ V3p
@ ^ [V8x: A_27c] : c_2Ebool_2ET
@ ^ [V9x: A_27c] : ( c_2Ebool_2ECOND @ A_27b @ ( V4g @ V9x ) @ ( V5r @ V9x ) @ ( c_2EpatternMatches_2EPMATCH @ A_27b @ A_27a @ ( V3p @ V9x ) @ V2rs2 ) ) )
@ V2rs2 ) ) ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__FLATTEN__THM__SINGLE,axiom,
! [A_27a: $tType,A_27b: $tType,A_27c: $tType,V0v: A_27a,V1p: A_27b > A_27a,V2g: A_27b > $o,V3rows: tyop_2Elist_2Elist @ ( A_27b > A_27b > ( tyop_2Eoption_2Eoption @ A_27c ) )] :
( ! [V4x: A_27b] :
( c_2EpatternMatches_2EPMATCH__IS__EXHAUSTIVE @ A_27b @ A_27c @ V4x
@ ( c_2Elist_2EMAP @ ( A_27b > A_27b > ( tyop_2Eoption_2Eoption @ A_27c ) ) @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27c ) )
@ ^ [V5r: A_27b > A_27b > ( tyop_2Eoption_2Eoption @ A_27c )] : ( V5r @ V4x )
@ V3rows ) )
=> ( c_2EpatternMatches_2EPMATCH__EQUIV__ROWS @ A_27a @ A_27c @ V0v
@ ( c_2Elist_2ECONS @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27c ) )
@ ( c_2EpatternMatches_2EPMATCH__ROW @ A_27c @ A_27b @ A_27a @ V1p @ V2g
@ ^ [V6x: A_27b] :
( c_2EpatternMatches_2EPMATCH @ A_27c @ A_27b @ V6x
@ ( c_2Elist_2EMAP @ ( A_27b > A_27b > ( tyop_2Eoption_2Eoption @ A_27c ) ) @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27c ) )
@ ^ [V7r: A_27b > A_27b > ( tyop_2Eoption_2Eoption @ A_27c )] : ( V7r @ V6x )
@ V3rows ) ) )
@ ( c_2Elist_2ENIL @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27c ) ) ) )
@ ( c_2Elist_2EMAP @ ( A_27b > A_27b > ( tyop_2Eoption_2Eoption @ A_27c ) ) @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27c ) )
@ ^ [V8r: A_27b > A_27b > ( tyop_2Eoption_2Eoption @ A_27c )] : ( c_2EpatternMatches_2EPMATCH__FLATTEN__FUN @ A_27c @ A_27b @ A_27a @ V1p @ V2g @ V8r )
@ V3rows ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__FLATTEN__THM,axiom,
! [A_27a: $tType,A_27b: $tType,A_27c: $tType,V0v: A_27a,V1p: A_27b > A_27a,V2g: A_27b > $o,V3rows1: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27c ) ),V4rows2: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27c ) ),V5rows: tyop_2Elist_2Elist @ ( A_27b > A_27b > ( tyop_2Eoption_2Eoption @ A_27c ) )] :
( ! [V6x: A_27b] :
( c_2EpatternMatches_2EPMATCH__IS__EXHAUSTIVE @ A_27b @ A_27c @ V6x
@ ( c_2Elist_2EMAP @ ( A_27b > A_27b > ( tyop_2Eoption_2Eoption @ A_27c ) ) @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27c ) )
@ ^ [V7r: A_27b > A_27b > ( tyop_2Eoption_2Eoption @ A_27c )] : ( V7r @ V6x )
@ V5rows ) )
=> ( ( c_2EpatternMatches_2EPMATCH @ A_27c @ A_27a @ V0v
@ ( c_2Elist_2EAPPEND @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27c ) ) @ V3rows1
@ ( c_2Elist_2ECONS @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27c ) )
@ ( c_2EpatternMatches_2EPMATCH__ROW @ A_27c @ A_27b @ A_27a @ V1p @ V2g
@ ^ [V8x: A_27b] :
( c_2EpatternMatches_2EPMATCH @ A_27c @ A_27b @ V8x
@ ( c_2Elist_2EMAP @ ( A_27b > A_27b > ( tyop_2Eoption_2Eoption @ A_27c ) ) @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27c ) )
@ ^ [V9r: A_27b > A_27b > ( tyop_2Eoption_2Eoption @ A_27c )] : ( V9r @ V8x )
@ V5rows ) ) )
@ V4rows2 ) ) )
= ( c_2EpatternMatches_2EPMATCH @ A_27c @ A_27a @ V0v
@ ( c_2Elist_2EAPPEND @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27c ) )
@ ( c_2Elist_2EAPPEND @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27c ) ) @ V3rows1
@ ( c_2Elist_2EMAP @ ( A_27b > A_27b > ( tyop_2Eoption_2Eoption @ A_27c ) ) @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27c ) )
@ ^ [V10r: A_27b > A_27b > ( tyop_2Eoption_2Eoption @ A_27c )] : ( c_2EpatternMatches_2EPMATCH__FLATTEN__FUN @ A_27c @ A_27b @ A_27a @ V1p @ V2g @ V10r )
@ V5rows ) )
@ V4rows2 ) ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__FLATTEN__FUN__PMATCH__ROW,axiom,
! [A_27a: $tType,A_27b: $tType,A_27c: $tType,A_27d: $tType,V0p: A_27a > A_27b] :
( ! [V1x1: A_27a,V2x2: A_27a] :
( ( ( V0p @ V1x1 )
= ( V0p @ V2x2 ) )
=> ( V1x1 = V2x2 ) )
=> ! [V3g: A_27a > $o,V4p_27: A_27c > A_27a,V5g_27: A_27a > A_27c > $o,V6r_27: A_27a > A_27c > A_27d] :
( ( c_2EpatternMatches_2EPMATCH__FLATTEN__FUN @ A_27d @ A_27a @ A_27b @ V0p @ V3g
@ ^ [V7x: A_27a] : ( c_2EpatternMatches_2EPMATCH__ROW @ A_27d @ A_27c @ A_27a @ V4p_27 @ ( V5g_27 @ V7x ) @ ( V6r_27 @ V7x ) ) )
= ( c_2EpatternMatches_2EPMATCH__ROW @ A_27d @ A_27c @ A_27b
@ ^ [V8x: A_27c] : ( V0p @ ( V4p_27 @ V8x ) )
@ ^ [V9x: A_27c] : ( c_2Ebool_2E_2F_5C @ ( V3g @ ( V4p_27 @ V9x ) ) @ ( V5g_27 @ ( V4p_27 @ V9x ) @ V9x ) )
@ ^ [V10x: A_27c] : ( V6r_27 @ ( V4p_27 @ V10x ) @ V10x ) ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__ROW__COND__NOT__EX__OR__EQ__FIRST__ROW,axiom,
! [A_27a: $tType,A_27b: $tType,V0i: A_27a,V1r: A_27a > ( tyop_2Eoption_2Eoption @ A_27b ),V2r_27: A_27a > ( tyop_2Eoption_2Eoption @ A_27b ),V3rows: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) )] :
( ( (~)
@ ( ( V2r_27 @ V0i )
= ( c_2Eoption_2ENONE @ A_27b ) ) )
=> ( ( c_2EpatternMatches_2EPMATCH__ROW__COND__NOT__EX__OR__EQ @ A_27a @ A_27b @ V0i @ V1r @ ( c_2Elist_2ECONS @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V2r_27 @ V3rows ) )
<=> ( ( (~)
@ ( ( V1r @ V0i )
= ( c_2Eoption_2ENONE @ A_27b ) ) )
=> ( ( V1r @ V0i )
= ( V2r_27 @ V0i ) ) ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__ROW__COND__NOT__EX__OR__EQ__NIL,axiom,
! [A_27a: $tType,A_27b: $tType,V0r: A_27a > ( tyop_2Eoption_2Eoption @ A_27b ),V1i: A_27a] :
( ( c_2EpatternMatches_2EPMATCH__ROW__COND__NOT__EX__OR__EQ @ A_27a @ A_27b @ V1i @ V0r @ ( c_2Elist_2ENIL @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) ) )
<=> ( ( (~)
@ ( ( V0r @ V1i )
= ( c_2Eoption_2ENONE @ A_27b ) ) )
=> c_2Ebool_2EF ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__ROW__COND__NOT__EX__OR__EQ__NOT__FIRST__ROW,axiom,
! [A_27a: $tType,A_27b: $tType,V0rows: tyop_2Elist_2Elist @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ),V1r_27: A_27a > ( tyop_2Eoption_2Eoption @ A_27b ),V2r: A_27a > ( tyop_2Eoption_2Eoption @ A_27b ),V3i: A_27a] :
( ( c_2EpatternMatches_2EPMATCH__ROW__COND__NOT__EX__OR__EQ @ A_27a @ A_27b @ V3i @ V1r_27 @ V0rows )
=> ( ( c_2EpatternMatches_2EPMATCH__ROW__COND__NOT__EX__OR__EQ @ A_27a @ A_27b @ V3i @ V2r @ ( c_2Elist_2ECONS @ ( A_27a > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ V1r_27 @ V0rows ) )
= ( c_2EpatternMatches_2EPMATCH__ROW__COND__NOT__EX__OR__EQ @ A_27a @ A_27b @ V3i @ V2r @ V0rows ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__PRED__UNROLL__NIL,axiom,
! [A_27a: $tType,A_27b: $tType,A_27c: $tType,V0P: A_27a > A_27b,V1v: A_27c] :
( ( V0P @ ( c_2EpatternMatches_2EPMATCH @ A_27a @ A_27c @ V1v @ ( c_2Elist_2ENIL @ ( A_27c > ( tyop_2Eoption_2Eoption @ A_27a ) ) ) ) )
= ( V0P @ ( c_2Ebool_2EARB @ A_27a ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__PRED__UNROLL__CONS,axiom,
! [A_27a: $tType,A_27b: $tType,V0P: A_27a > $o,V1v: A_27b,V2r: A_27b > ( tyop_2Eoption_2Eoption @ A_27a ),V3rows: tyop_2Elist_2Elist @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27a ) )] :
( ( V0P @ ( c_2EpatternMatches_2EPMATCH @ A_27a @ A_27b @ V1v @ ( c_2Elist_2ECONS @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27a ) ) @ V2r @ V3rows ) ) )
<=> ( ( ( (~)
@ ( ( V2r @ V1v )
= ( c_2Eoption_2ENONE @ A_27a ) ) )
=> ( V0P @ ( c_2Eoption_2ETHE @ A_27a @ ( V2r @ V1v ) ) ) )
& ( ( c_2EpatternMatches_2EPMATCH__ROW__COND__NOT__EX__OR__EQ @ A_27b @ A_27a @ V1v @ V2r @ V3rows )
=> ( V0P @ ( c_2EpatternMatches_2EPMATCH @ A_27a @ A_27b @ V1v @ V3rows ) ) ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__EXPAND__PRED__THM__GEN,axiom,
! [A_27a: $tType,A_27b: $tType,V0P: A_27a > $o,V1v: A_27b,V2rows__before: tyop_2Elist_2Elist @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27a ) ),V3rows__after: tyop_2Elist_2Elist @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27a ) )] :
( ( c_2EpatternMatches_2EPMATCH__EXPAND__PRED @ A_27a @ A_27b @ V0P @ V1v @ V2rows__before @ V3rows__after )
<=> ( ( c_2Elist_2EEVERY @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27a ) )
@ ^ [V4r: A_27b > ( tyop_2Eoption_2Eoption @ A_27a )] : ( c_2EpatternMatches_2EPMATCH__ROW__COND__NOT__EX__OR__EQ @ A_27b @ A_27a @ V1v @ V4r @ V3rows__after )
@ V2rows__before )
=> ( V0P @ ( c_2EpatternMatches_2EPMATCH @ A_27a @ A_27b @ V1v @ V3rows__after ) ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__EXPAND__PRED__THM,axiom,
! [A_27a: $tType,A_27b: $tType,V0P: A_27a > $o,V1v: A_27b,V2rows: tyop_2Elist_2Elist @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27a ) )] :
( ( V0P @ ( c_2EpatternMatches_2EPMATCH @ A_27a @ A_27b @ V1v @ V2rows ) )
= ( c_2EpatternMatches_2EPMATCH__EXPAND__PRED @ A_27a @ A_27b @ V0P @ V1v @ ( c_2Elist_2ENIL @ ( A_27b > ( tyop_2Eoption_2Eoption @ A_27a ) ) ) @ V2rows ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__LIFT__THM,axiom,
! [A_27a: $tType,A_27b: $tType,A_27c: $tType,V0f: A_27a > A_27b,V1v: A_27c,V2rows: tyop_2Elist_2Elist @ ( A_27c > ( tyop_2Eoption_2Eoption @ A_27a ) )] :
( ( c_2EpatternMatches_2EPMATCH__IS__EXHAUSTIVE @ A_27c @ A_27a @ V1v @ V2rows )
=> ( ( V0f @ ( c_2EpatternMatches_2EPMATCH @ A_27a @ A_27c @ V1v @ V2rows ) )
= ( c_2EpatternMatches_2EPMATCH @ A_27b @ A_27c @ V1v @ ( c_2Elist_2EMAP @ ( A_27c > ( tyop_2Eoption_2Eoption @ A_27a ) ) @ ( A_27c > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ ( c_2EpatternMatches_2EPMATCH__ROW__LIFT @ A_27c @ A_27b @ A_27a @ V0f ) @ V2rows ) ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__ROW__LIFT__THM,axiom,
! [A_27a: $tType,A_27b: $tType,A_27c: $tType,A_27d: $tType,V0f: A_27a > A_27b,V1p: A_27c > A_27d,V2g: A_27c > $o,V3r: A_27c > A_27a] :
( ( c_2EpatternMatches_2EPMATCH__ROW__LIFT @ A_27d @ A_27b @ A_27a @ V0f @ ( c_2EpatternMatches_2EPMATCH__ROW @ A_27a @ A_27c @ A_27d @ V1p @ V2g @ V3r ) )
= ( c_2EpatternMatches_2EPMATCH__ROW @ A_27b @ A_27c @ A_27d @ V1p @ V2g
@ ^ [V4x: A_27c] : ( V0f @ ( V3r @ V4x ) ) ) ) ).
thf(thm_2EpatternMatches_2EPMATCH__IS__EXHAUSTIVE__LIFT,axiom,
! [A_27a: $tType,A_27b: $tType,A_27c: $tType,V0f: A_27a > A_27b,V1v: A_27c,V2rows: tyop_2Elist_2Elist @ ( A_27c > ( tyop_2Eoption_2Eoption @ A_27a ) )] :
( ( c_2EpatternMatches_2EPMATCH__IS__EXHAUSTIVE @ A_27c @ A_27a @ V1v @ V2rows )
=> ( c_2EpatternMatches_2EPMATCH__IS__EXHAUSTIVE @ A_27c @ A_27b @ V1v @ ( c_2Elist_2EMAP @ ( A_27c > ( tyop_2Eoption_2Eoption @ A_27a ) ) @ ( A_27c > ( tyop_2Eoption_2Eoption @ A_27b ) ) @ ( c_2EpatternMatches_2EPMATCH__ROW__LIFT @ A_27c @ A_27b @ A_27a @ V0f ) @ V2rows ) ) ) ).
%------------------------------------------------------------------------------