ITP001 Axioms: ITP093_5.ax


%------------------------------------------------------------------------------
% File     : ITP093_5 : TPTP v8.2.0. Bugfixed v7.5.0.
% Domain   : Interactive Theorem Proving
% Axioms   : HOL4 set theory export, chainy mode
% Version  : [BG+19] axioms.
% English  :

% Refs     : [BG+19] Brown et al. (2019), GRUNGE: A Grand Unified ATP Chall
%          : [Gau20] Gauthier (2020), Email to Geoff Sutcliffe
% Source   : [BG+19]
% Names    : alignment_2.ax [Gau20]
%          : HL4093_5.ax [TPAP]

% Status   : Satisfiable
% Syntax   : Number of formulae    :   34 (   4 unt;   4 typ;   0 def)
%            Number of atoms       : 2406 (  16 equ)
%            Maximal formula atoms :  116 (  70 avg)
%            Number of connectives :  195 (   1   ~;   1   |;  51   &)
%                                         (  45 <=>;  97  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   94 (   9 avg)
%            Maximal term depth    :    2 (   1 avg)
%            Number of FOOLs       : 2182 (2182 fml;   0 var)
%            Number of types       :    1 (   0 usr)
%            Number of type conns  :    4 (   4   >;   0   *;   0   +;   0  <<)
%            Number of predicates  :   43 (  42 usr;  17 prp; 0-2 aty)
%            Number of functors    :    4 (   4 usr;   0 con; 1-1 aty)
%            Number of variables   :  224 ( 224   !;   0   ?; 224   :)
% SPC      : TF0_SAT_EQU_NAR

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

tff(mem_c_2Ealignment_2Ealign,axiom,
    ! [A_27a: del] : mem(c_2Ealignment_2Ealign(A_27a),arr(ty_2Enum_2Enum,arr(ty_2Efcp_2Ecart(bool,A_27a),ty_2Efcp_2Ecart(bool,A_27a)))) ).

tff(tp_c_2Ealignment_2Ealigned,type,
    c_2Ealignment_2Ealigned: del > $i ).

tff(mem_c_2Ealignment_2Ealigned,axiom,
    ! [A_27a: del] : mem(c_2Ealignment_2Ealigned(A_27a),arr(ty_2Enum_2Enum,arr(ty_2Efcp_2Ecart(bool,A_27a),bool))) ).

tff(tp_c_2Ealignment_2Ebyte__align,type,
    c_2Ealignment_2Ebyte__align: del > $i ).

tff(mem_c_2Ealignment_2Ebyte__align,axiom,
    ! [A_27a: del] : mem(c_2Ealignment_2Ebyte__align(A_27a),arr(ty_2Efcp_2Ecart(bool,A_27a),ty_2Efcp_2Ecart(bool,A_27a))) ).

tff(tp_c_2Ealignment_2Ebyte__aligned,type,
    c_2Ealignment_2Ebyte__aligned: del > $i ).

tff(mem_c_2Ealignment_2Ebyte__aligned,axiom,
    ! [A_27a: del] : mem(c_2Ealignment_2Ebyte__aligned(A_27a),arr(ty_2Efcp_2Ecart(bool,A_27a),bool)) ).

tff(ax_thm_2Ealignment_2Ealign__def,axiom,
    ! [A_27a: del,V0p: tp__ty_2Enum_2Enum,V1w: $i] :
      ( mem(V1w,ty_2Efcp_2Ecart(bool,A_27a))
     => ( ap(ap(c_2Ealignment_2Ealign(A_27a),inj__ty_2Enum_2Enum(V0p)),V1w) = ap(ap(ap(c_2Ewords_2Eword__slice(A_27a),ap(ap(c_2Earithmetic_2E_2D,ap(c_2Efcp_2Edimindex(A_27a),c_2Ebool_2Ethe__value(A_27a))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),inj__ty_2Enum_2Enum(V0p)),V1w) ) ) ).

tff(ax_thm_2Ealignment_2Ealigned__def,axiom,
    ! [A_27a: del,V0p: tp__ty_2Enum_2Enum,V1w: $i] :
      ( mem(V1w,ty_2Efcp_2Ecart(bool,A_27a))
     => ( p(ap(ap(c_2Ealignment_2Ealigned(A_27a),inj__ty_2Enum_2Enum(V0p)),V1w))
      <=> ( ap(ap(c_2Ealignment_2Ealign(A_27a),inj__ty_2Enum_2Enum(V0p)),V1w) = V1w ) ) ) ).

tff(ax_thm_2Ealignment_2Ebyte__align__def,axiom,
    ! [A_27a: del,V0w: $i] :
      ( mem(V0w,ty_2Efcp_2Ecart(bool,A_27a))
     => ( ap(c_2Ealignment_2Ebyte__align(A_27a),V0w) = ap(ap(c_2Ealignment_2Ealign(A_27a),ap(c_2Ebit_2ELOG2,ap(ap(c_2Earithmetic_2EDIV,ap(c_2Efcp_2Edimindex(A_27a),c_2Ebool_2Ethe__value(A_27a))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))))))),V0w) ) ) ).

tff(ax_thm_2Ealignment_2Ebyte__aligned__def,axiom,
    ! [A_27a: del,V0w: $i] :
      ( mem(V0w,ty_2Efcp_2Ecart(bool,A_27a))
     => ( p(ap(c_2Ealignment_2Ebyte__aligned(A_27a),V0w))
      <=> p(ap(ap(c_2Ealignment_2Ealigned(A_27a),ap(c_2Ebit_2ELOG2,ap(ap(c_2Earithmetic_2EDIV,ap(c_2Efcp_2Edimindex(A_27a),c_2Ebool_2Ethe__value(A_27a))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))))))),V0w)) ) ) ).

tff(conj_thm_2Ealignment_2Ealign__0,axiom,
    ! [A_27a: del,V0w: $i] :
      ( mem(V0w,ty_2Efcp_2Ecart(bool,A_27a))
     => ( ap(ap(c_2Ealignment_2Ealign(A_27a),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),V0w) = V0w ) ) ).

tff(conj_thm_2Ealignment_2Ealign__align,axiom,
    ! [A_27a: del,V0p: tp__ty_2Enum_2Enum,V1w: $i] :
      ( mem(V1w,ty_2Efcp_2Ecart(bool,A_27a))
     => ( ap(ap(c_2Ealignment_2Ealign(A_27a),inj__ty_2Enum_2Enum(V0p)),ap(ap(c_2Ealignment_2Ealign(A_27a),inj__ty_2Enum_2Enum(V0p)),V1w)) = ap(ap(c_2Ealignment_2Ealign(A_27a),inj__ty_2Enum_2Enum(V0p)),V1w) ) ) ).

tff(conj_thm_2Ealignment_2Ealigned__align,axiom,
    ! [A_27a: del,V0p: tp__ty_2Enum_2Enum,V1w: $i] :
      ( mem(V1w,ty_2Efcp_2Ecart(bool,A_27a))
     => p(ap(ap(c_2Ealignment_2Ealigned(A_27a),inj__ty_2Enum_2Enum(V0p)),ap(ap(c_2Ealignment_2Ealign(A_27a),inj__ty_2Enum_2Enum(V0p)),V1w))) ) ).

tff(conj_thm_2Ealignment_2Ealign__aligned,axiom,
    ! [A_27a: del,V0p: tp__ty_2Enum_2Enum,V1w: $i] :
      ( mem(V1w,ty_2Efcp_2Ecart(bool,A_27a))
     => ( p(ap(ap(c_2Ealignment_2Ealigned(A_27a),inj__ty_2Enum_2Enum(V0p)),V1w))
       => ( ap(ap(c_2Ealignment_2Ealign(A_27a),inj__ty_2Enum_2Enum(V0p)),V1w) = V1w ) ) ) ).

tff(conj_thm_2Ealignment_2Ealign__bitwise__and,axiom,
    ! [A_27a: del,V0p: tp__ty_2Enum_2Enum,V1w: $i] :
      ( mem(V1w,ty_2Efcp_2Ecart(bool,A_27a))
     => ( ap(ap(c_2Ealignment_2Ealign(A_27a),inj__ty_2Enum_2Enum(V0p)),V1w) = ap(ap(c_2Ewords_2Eword__and(A_27a),V1w),ap(ap(c_2Ewords_2Eword__lsl(A_27a),c_2Ewords_2Eword__T(A_27a)),inj__ty_2Enum_2Enum(V0p))) ) ) ).

tff(conj_thm_2Ealignment_2Ealign__shift,axiom,
    ! [A_27a: del,V0p: tp__ty_2Enum_2Enum,V1w: $i] :
      ( mem(V1w,ty_2Efcp_2Ecart(bool,A_27a))
     => ( ap(ap(c_2Ealignment_2Ealign(A_27a),inj__ty_2Enum_2Enum(V0p)),V1w) = ap(ap(c_2Ewords_2Eword__lsl(A_27a),ap(ap(c_2Ewords_2Eword__lsr(A_27a),V1w),inj__ty_2Enum_2Enum(V0p))),inj__ty_2Enum_2Enum(V0p)) ) ) ).

tff(conj_thm_2Ealignment_2Ealign__w2n,axiom,
    ! [A_27a: del,V0p: tp__ty_2Enum_2Enum,V1w: $i] :
      ( mem(V1w,ty_2Efcp_2Ecart(bool,A_27a))
     => ( ap(ap(c_2Ealignment_2Ealign(A_27a),inj__ty_2Enum_2Enum(V0p)),V1w) = ap(c_2Ewords_2En2w(A_27a),ap(ap(c_2Earithmetic_2E_2A,ap(ap(c_2Earithmetic_2EDIV,ap(c_2Ewords_2Ew2n(A_27a),V1w)),ap(ap(c_2Earithmetic_2EEXP,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),inj__ty_2Enum_2Enum(V0p)))),ap(ap(c_2Earithmetic_2EEXP,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),inj__ty_2Enum_2Enum(V0p)))) ) ) ).

tff(conj_thm_2Ealignment_2Ealign__sub,axiom,
    ! [A_27a: del,V0p: tp__ty_2Enum_2Enum,V1w: $i] :
      ( mem(V1w,ty_2Efcp_2Ecart(bool,A_27a))
     => ( ap(ap(c_2Ealignment_2Ealign(A_27a),inj__ty_2Enum_2Enum(V0p)),V1w) = ap(ap(ap(c_2Ebool_2ECOND(ty_2Efcp_2Ecart(bool,A_27a)),ap(ap(c_2Emin_2E_3D(ty_2Enum_2Enum),inj__ty_2Enum_2Enum(V0p)),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0))),V1w),ap(ap(c_2Ewords_2Eword__sub(A_27a),V1w),ap(ap(ap(c_2Ewords_2Eword__extract(A_27a,A_27a),ap(ap(c_2Earithmetic_2E_2D,inj__ty_2Enum_2Enum(V0p)),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),V1w))) ) ) ).

tff(conj_thm_2Ealignment_2Ealigned__extract,axiom,
    ! [A_27a: del,V0p: tp__ty_2Enum_2Enum,V1w: $i] :
      ( mem(V1w,ty_2Efcp_2Ecart(bool,A_27a))
     => ( p(ap(ap(c_2Ealignment_2Ealigned(A_27a),inj__ty_2Enum_2Enum(V0p)),V1w))
      <=> ( ( V0p = fo__c_2Enum_2E0 )
          | ( ap(ap(ap(c_2Ewords_2Eword__extract(A_27a,A_27a),ap(ap(c_2Earithmetic_2E_2D,inj__ty_2Enum_2Enum(V0p)),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),V1w) = ap(c_2Ewords_2En2w(A_27a),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)) ) ) ) ) ).

tff(conj_thm_2Ealignment_2Ealigned__0,axiom,
    ! [A_27a: del,A_27b: del] :
      ( ! [V0p: tp__ty_2Enum_2Enum] : p(ap(ap(c_2Ealignment_2Ealigned(A_27a),inj__ty_2Enum_2Enum(V0p)),ap(c_2Ewords_2En2w(A_27a),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0))))
      & ! [V1w: $i] :
          ( mem(V1w,ty_2Efcp_2Ecart(bool,A_27b))
         => p(ap(ap(c_2Ealignment_2Ealigned(A_27b),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)),V1w)) ) ) ).

tff(conj_thm_2Ealignment_2Ealigned__1__lsb,axiom,
    ! [A_27a: del,V0w: $i] :
      ( mem(V0w,ty_2Efcp_2Ecart(bool,A_27a))
     => ( p(ap(ap(c_2Ealignment_2Ealigned(A_27a),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),V0w))
      <=> ~ p(ap(c_2Ewords_2Eword__lsb(A_27a),V0w)) ) ) ).

tff(conj_thm_2Ealignment_2Ealigned__ge__dim,axiom,
    ! [A_27a: del,V0p: tp__ty_2Enum_2Enum,V1w: $i] :
      ( mem(V1w,ty_2Efcp_2Ecart(bool,A_27a))
     => ( p(ap(ap(c_2Earithmetic_2E_3C_3D,ap(c_2Efcp_2Edimindex(A_27a),c_2Ebool_2Ethe__value(A_27a))),inj__ty_2Enum_2Enum(V0p)))
       => ( p(ap(ap(c_2Ealignment_2Ealigned(A_27a),inj__ty_2Enum_2Enum(V0p)),V1w))
        <=> ( V1w = ap(c_2Ewords_2En2w(A_27a),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)) ) ) ) ) ).

tff(conj_thm_2Ealignment_2Ealigned__bitwise__and,axiom,
    ! [A_27a: del,V0p: tp__ty_2Enum_2Enum,V1w: $i] :
      ( mem(V1w,ty_2Efcp_2Ecart(bool,A_27a))
     => ( p(ap(ap(c_2Ealignment_2Ealigned(A_27a),inj__ty_2Enum_2Enum(V0p)),V1w))
      <=> ( ap(ap(c_2Ewords_2Eword__and(A_27a),V1w),ap(c_2Ewords_2En2w(A_27a),ap(ap(c_2Earithmetic_2E_2D,ap(ap(c_2Earithmetic_2EEXP,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),inj__ty_2Enum_2Enum(V0p))),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))))) = ap(c_2Ewords_2En2w(A_27a),inj__ty_2Enum_2Enum(fo__c_2Enum_2E0)) ) ) ) ).

tff(conj_thm_2Ealignment_2Ealigned__bit__count__upto,axiom,
    ! [A_27a: del,V0p: tp__ty_2Enum_2Enum,V1w: $i] :
      ( mem(V1w,ty_2Efcp_2Ecart(bool,A_27a))
     => ( p(ap(ap(c_2Ealignment_2Ealigned(A_27a),inj__ty_2Enum_2Enum(V0p)),V1w))
      <=> ( surj__ty_2Enum_2Enum(ap(ap(c_2Ewords_2Ebit__count__upto(A_27a),ap(ap(c_2Earithmetic_2EMIN,ap(c_2Efcp_2Edimindex(A_27a),c_2Ebool_2Ethe__value(A_27a))),inj__ty_2Enum_2Enum(V0p))),V1w)) = fo__c_2Enum_2E0 ) ) ) ).

tff(conj_thm_2Ealignment_2Ealigned__add__sub,axiom,
    ! [A_27a: del,V0p: tp__ty_2Enum_2Enum,V1a: $i] :
      ( mem(V1a,ty_2Efcp_2Ecart(bool,A_27a))
     => ! [V2b: $i] :
          ( mem(V2b,ty_2Efcp_2Ecart(bool,A_27a))
         => ( p(ap(ap(c_2Ealignment_2Ealigned(A_27a),inj__ty_2Enum_2Enum(V0p)),V2b))
           => ( ( p(ap(ap(c_2Ealignment_2Ealigned(A_27a),inj__ty_2Enum_2Enum(V0p)),ap(ap(c_2Ewords_2Eword__add(A_27a),V1a),V2b)))
              <=> p(ap(ap(c_2Ealignment_2Ealigned(A_27a),inj__ty_2Enum_2Enum(V0p)),V1a)) )
              & ( p(ap(ap(c_2Ealignment_2Ealigned(A_27a),inj__ty_2Enum_2Enum(V0p)),ap(ap(c_2Ewords_2Eword__sub(A_27a),V1a),V2b)))
              <=> p(ap(ap(c_2Ealignment_2Ealigned(A_27a),inj__ty_2Enum_2Enum(V0p)),V1a)) ) ) ) ) ) ).

tff(conj_thm_2Ealignment_2Ealigned__add__sub__cor,axiom,
    ! [A_27a: del,V0p: tp__ty_2Enum_2Enum,V1a: $i] :
      ( mem(V1a,ty_2Efcp_2Ecart(bool,A_27a))
     => ! [V2b: $i] :
          ( mem(V2b,ty_2Efcp_2Ecart(bool,A_27a))
         => ( ( p(ap(ap(c_2Ealignment_2Ealigned(A_27a),inj__ty_2Enum_2Enum(V0p)),V1a))
              & p(ap(ap(c_2Ealignment_2Ealigned(A_27a),inj__ty_2Enum_2Enum(V0p)),V2b)) )
           => ( p(ap(ap(c_2Ealignment_2Ealigned(A_27a),inj__ty_2Enum_2Enum(V0p)),ap(ap(c_2Ewords_2Eword__add(A_27a),V1a),V2b)))
              & p(ap(ap(c_2Ealignment_2Ealigned(A_27a),inj__ty_2Enum_2Enum(V0p)),ap(ap(c_2Ewords_2Eword__sub(A_27a),V1a),V2b))) ) ) ) ) ).

tff(conj_thm_2Ealignment_2Ealigned__mul__shift__1,axiom,
    ! [A_27a: del,V0p: tp__ty_2Enum_2Enum,V1w: $i] :
      ( mem(V1w,ty_2Efcp_2Ecart(bool,A_27a))
     => p(ap(ap(c_2Ealignment_2Ealigned(A_27a),inj__ty_2Enum_2Enum(V0p)),ap(ap(c_2Ewords_2Eword__mul(A_27a),ap(ap(c_2Ewords_2Eword__lsl(A_27a),ap(c_2Ewords_2En2w(A_27a),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),inj__ty_2Enum_2Enum(V0p))),V1w))) ) ).

tff(conj_thm_2Ealignment_2Ealigned__add__sub__prod,axiom,
    ! [A_27a: del,V0p: tp__ty_2Enum_2Enum,V1w: $i] :
      ( mem(V1w,ty_2Efcp_2Ecart(bool,A_27a))
     => ! [V2x: $i] :
          ( mem(V2x,ty_2Efcp_2Ecart(bool,A_27a))
         => ( ( p(ap(ap(c_2Ealignment_2Ealigned(A_27a),inj__ty_2Enum_2Enum(V0p)),ap(ap(c_2Ewords_2Eword__add(A_27a),V1w),ap(ap(c_2Ewords_2Eword__mul(A_27a),ap(ap(c_2Ewords_2Eword__lsl(A_27a),ap(c_2Ewords_2En2w(A_27a),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),inj__ty_2Enum_2Enum(V0p))),V2x))))
            <=> p(ap(ap(c_2Ealignment_2Ealigned(A_27a),inj__ty_2Enum_2Enum(V0p)),V1w)) )
            & ( p(ap(ap(c_2Ealignment_2Ealigned(A_27a),inj__ty_2Enum_2Enum(V0p)),ap(ap(c_2Ewords_2Eword__sub(A_27a),V1w),ap(ap(c_2Ewords_2Eword__mul(A_27a),ap(ap(c_2Ewords_2Eword__lsl(A_27a),ap(c_2Ewords_2En2w(A_27a),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),inj__ty_2Enum_2Enum(V0p))),V2x))))
            <=> p(ap(ap(c_2Ealignment_2Ealigned(A_27a),inj__ty_2Enum_2Enum(V0p)),V1w)) ) ) ) ) ).

tff(conj_thm_2Ealignment_2Ealigned__imp,axiom,
    ! [A_27a: del,V0p: tp__ty_2Enum_2Enum,V1q: tp__ty_2Enum_2Enum,V2w: $i] :
      ( mem(V2w,ty_2Efcp_2Ecart(bool,A_27a))
     => ( ( p(ap(ap(c_2Eprim__rec_2E_3C,inj__ty_2Enum_2Enum(V0p)),inj__ty_2Enum_2Enum(V1q)))
          & p(ap(ap(c_2Ealignment_2Ealigned(A_27a),inj__ty_2Enum_2Enum(V1q)),V2w)) )
       => p(ap(ap(c_2Ealignment_2Ealigned(A_27a),inj__ty_2Enum_2Enum(V0p)),V2w)) ) ) ).

tff(conj_thm_2Ealignment_2Ealign__add__aligned,axiom,
    ! [A_27a: del,V0p: tp__ty_2Enum_2Enum,V1a: $i] :
      ( mem(V1a,ty_2Efcp_2Ecart(bool,A_27a))
     => ! [V2b: $i] :
          ( mem(V2b,ty_2Efcp_2Ecart(bool,A_27a))
         => ( ( p(ap(ap(c_2Ealignment_2Ealigned(A_27a),inj__ty_2Enum_2Enum(V0p)),V1a))
              & p(ap(ap(c_2Eprim__rec_2E_3C,ap(c_2Ewords_2Ew2n(A_27a),V2b)),ap(ap(c_2Earithmetic_2EEXP,ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),inj__ty_2Enum_2Enum(V0p)))) )
           => ( ap(ap(c_2Ealignment_2Ealign(A_27a),inj__ty_2Enum_2Enum(V0p)),ap(ap(c_2Ewords_2Eword__add(A_27a),V1a),V2b)) = V1a ) ) ) ) ).

tff(conj_thm_2Ealignment_2Ealigned__add__sub__123,axiom,
    ! [A_27a: del] :
      ( ! [V0w: $i] :
          ( mem(V0w,ty_2Efcp_2Ecart(bool,A_27a))
         => ! [V1x: $i] :
              ( mem(V1x,ty_2Efcp_2Ecart(bool,A_27a))
             => ( ( p(ap(ap(c_2Ealignment_2Ealigned(A_27a),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),ap(ap(c_2Ewords_2Eword__add(A_27a),V0w),ap(ap(c_2Ewords_2Eword__mul(A_27a),ap(c_2Ewords_2En2w(A_27a),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),V1x))))
                <=> p(ap(ap(c_2Ealignment_2Ealigned(A_27a),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),V0w)) )
                & ( p(ap(ap(c_2Ealignment_2Ealigned(A_27a),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),ap(ap(c_2Ewords_2Eword__sub(A_27a),V0w),ap(ap(c_2Ewords_2Eword__mul(A_27a),ap(c_2Ewords_2En2w(A_27a),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),V1x))))
                <=> p(ap(ap(c_2Ealignment_2Ealigned(A_27a),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),V0w)) ) ) ) )
      & ! [V2x: $i] :
          ( mem(V2x,ty_2Efcp_2Ecart(bool,A_27a))
         => ( p(ap(ap(c_2Ealignment_2Ealigned(A_27a),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),ap(ap(c_2Ewords_2Eword__mul(A_27a),ap(c_2Ewords_2En2w(A_27a),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),V2x)))
            & p(ap(ap(c_2Ealignment_2Ealigned(A_27a),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),ap(ap(c_2Ewords_2Eword__mul(A_27a),ap(c_2Ewords_2Eword__2comp(A_27a),ap(c_2Ewords_2En2w(A_27a),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))))),V2x))) ) )
      & ! [V3w: $i] :
          ( mem(V3w,ty_2Efcp_2Ecart(bool,A_27a))
         => ! [V4x: $i] :
              ( mem(V4x,ty_2Efcp_2Ecart(bool,A_27a))
             => ( ( p(ap(ap(c_2Ealignment_2Ealigned(A_27a),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),ap(ap(c_2Ewords_2Eword__add(A_27a),V3w),ap(ap(c_2Ewords_2Eword__mul(A_27a),ap(c_2Ewords_2En2w(A_27a),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))))),V4x))))
                <=> p(ap(ap(c_2Ealignment_2Ealigned(A_27a),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),V3w)) )
                & ( p(ap(ap(c_2Ealignment_2Ealigned(A_27a),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),ap(ap(c_2Ewords_2Eword__sub(A_27a),V3w),ap(ap(c_2Ewords_2Eword__mul(A_27a),ap(c_2Ewords_2En2w(A_27a),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))))),V4x))))
                <=> p(ap(ap(c_2Ealignment_2Ealigned(A_27a),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),V3w)) ) ) ) )
      & ! [V5x: $i] :
          ( mem(V5x,ty_2Efcp_2Ecart(bool,A_27a))
         => ( p(ap(ap(c_2Ealignment_2Ealigned(A_27a),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),ap(ap(c_2Ewords_2Eword__mul(A_27a),ap(c_2Ewords_2En2w(A_27a),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))))),V5x)))
            & p(ap(ap(c_2Ealignment_2Ealigned(A_27a),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),ap(ap(c_2Ewords_2Eword__mul(A_27a),ap(c_2Ewords_2Eword__2comp(A_27a),ap(c_2Ewords_2En2w(A_27a),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))))),V5x))) ) )
      & ! [V6w: $i] :
          ( mem(V6w,ty_2Efcp_2Ecart(bool,A_27a))
         => ! [V7x: $i] :
              ( mem(V7x,ty_2Efcp_2Ecart(bool,A_27a))
             => ( ( p(ap(ap(c_2Ealignment_2Ealigned(A_27a),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),ap(ap(c_2Ewords_2Eword__add(A_27a),V6w),ap(ap(c_2Ewords_2Eword__mul(A_27a),ap(c_2Ewords_2En2w(A_27a),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))))),V7x))))
                <=> p(ap(ap(c_2Ealignment_2Ealigned(A_27a),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),V6w)) )
                & ( p(ap(ap(c_2Ealignment_2Ealigned(A_27a),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),ap(ap(c_2Ewords_2Eword__sub(A_27a),V6w),ap(ap(c_2Ewords_2Eword__mul(A_27a),ap(c_2Ewords_2En2w(A_27a),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))))),V7x))))
                <=> p(ap(ap(c_2Ealignment_2Ealigned(A_27a),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),V6w)) ) ) ) )
      & ! [V8x: $i] :
          ( mem(V8x,ty_2Efcp_2Ecart(bool,A_27a))
         => ( p(ap(ap(c_2Ealignment_2Ealigned(A_27a),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),ap(ap(c_2Ewords_2Eword__mul(A_27a),ap(c_2Ewords_2En2w(A_27a),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))))),V8x)))
            & p(ap(ap(c_2Ealignment_2Ealigned(A_27a),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),ap(ap(c_2Ewords_2Eword__mul(A_27a),ap(c_2Ewords_2Eword__2comp(A_27a),ap(c_2Ewords_2En2w(A_27a),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))))))),V8x))) ) ) ) ).

tff(conj_thm_2Ealignment_2Ealigned__numeric,axiom,
    ! [A_27a: del,A_27a0: del,A_27a1: del,A_27a10: del,A_27a11: del,A_27a12: del,A_27a13: del,A_27a14: del,A_27a15: del,A_27a16: del,A_27a17: del,A_27a18: del,A_27a19: del,A_27a2: del,A_27a20: del,A_27a21: del,A_27a22: del,A_27a23: del,A_27a24: del,A_27a25: del,A_27a26: del,A_27a27: del,A_27a3: del,A_27a4: del,A_27a5: del,A_27a6: del,A_27a7: del,A_27a8: del,A_27a9: del,A_27b: del,A_27c: del,A_27d: del,A_27e: del,A_27f: del,A_27g: del,A_27h: del,A_27i: del,A_27j: del,A_27k: del,A_27l: del,A_27m: del,A_27n: del,A_27o: del,A_27p: del,A_27q: del,A_27r: del,A_27s: del,A_27t: del,A_27u: del,A_27v: del,A_27w: del,A_27x: del,A_27y: del,A_27z: del] :
      ( ! [V0x: tp__ty_2Enum_2Enum] : p(ap(ap(c_2Ealignment_2Ealigned(A_27a),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),ap(c_2Ewords_2En2w(A_27a),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V0x))))))))
      & ! [V1x: tp__ty_2Enum_2Enum] : p(ap(ap(c_2Ealignment_2Ealigned(A_27b),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),ap(c_2Ewords_2En2w(A_27b),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V1x)))))))
      & ! [V2x: tp__ty_2Enum_2Enum] : p(ap(ap(c_2Ealignment_2Ealigned(A_27c),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),ap(c_2Ewords_2En2w(A_27c),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(V2x))))))
      & ! [V3x: tp__ty_2Enum_2Enum] : p(ap(ap(c_2Ealignment_2Ealigned(A_27d),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),ap(c_2Ewords_2Eword__2comp(A_27d),ap(c_2Ewords_2En2w(A_27d),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V3x)))))))))
      & ! [V4x: tp__ty_2Enum_2Enum] : p(ap(ap(c_2Ealignment_2Ealigned(A_27e),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),ap(c_2Ewords_2Eword__2comp(A_27e),ap(c_2Ewords_2En2w(A_27e),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V4x))))))))
      & ! [V5x: tp__ty_2Enum_2Enum] : p(ap(ap(c_2Ealignment_2Ealigned(A_27f),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),ap(c_2Ewords_2Eword__2comp(A_27f),ap(c_2Ewords_2En2w(A_27f),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(V5x)))))))
      & ! [V6x: $i] :
          ( mem(V6x,A_27g)
         => ! [V7y: $i] :
              ( mem(V7y,ty_2Efcp_2Ecart(bool,A_27h))
             => ! [V8f: $i] :
                  ( mem(V8f,arr(A_27g,ty_2Enum_2Enum))
                 => ( p(ap(ap(c_2Ealignment_2Ealigned(A_27h),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),ap(ap(c_2Ewords_2Eword__add(A_27h),V7y),ap(c_2Ewords_2En2w(A_27h),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(V8f,V6x)))))))))
                  <=> p(ap(ap(c_2Ealignment_2Ealigned(A_27h),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),ap(ap(c_2Ewords_2Eword__add(A_27h),V7y),ap(c_2Ewords_2En2w(A_27h),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))))))) ) ) ) )
      & ! [V9x: tp__ty_2Enum_2Enum,V10y: $i] :
          ( mem(V10y,ty_2Efcp_2Ecart(bool,A_27i))
         => ! [V11f: $i] :
              ( mem(V11f,A_27j)
             => ( p(ap(ap(c_2Ealignment_2Ealigned(A_27i),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),ap(ap(c_2Ewords_2Eword__add(A_27i),V10y),ap(c_2Ewords_2En2w(A_27i),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(V9x)))))))))
              <=> p(ap(ap(c_2Ealignment_2Ealigned(A_27i),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),ap(ap(c_2Ewords_2Eword__add(A_27i),V10y),ap(c_2Ewords_2En2w(A_27i),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))))))) ) ) )
      & ! [V12x: tp__ty_2Enum_2Enum,V13y: $i] :
          ( mem(V13y,ty_2Efcp_2Ecart(bool,A_27k))
         => ! [V14f: $i] :
              ( mem(V14f,A_27l)
             => ( p(ap(ap(c_2Ealignment_2Ealigned(A_27k),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),ap(ap(c_2Ewords_2Eword__add(A_27k),V13y),ap(c_2Ewords_2En2w(A_27k),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT2,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V12x)))))))))
              <=> p(ap(ap(c_2Ealignment_2Ealigned(A_27k),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),ap(ap(c_2Ewords_2Eword__add(A_27k),V13y),ap(c_2Ewords_2En2w(A_27k),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))))) ) ) )
      & ! [V15x: tp__ty_2Enum_2Enum,V16y: $i] :
          ( mem(V16y,ty_2Efcp_2Ecart(bool,A_27m))
         => ! [V17f: $i] :
              ( mem(V17f,A_27n)
             => ( p(ap(ap(c_2Ealignment_2Ealigned(A_27m),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),ap(ap(c_2Ewords_2Eword__add(A_27m),V16y),ap(c_2Ewords_2En2w(A_27m),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT2,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(V15x)))))))))
              <=> p(ap(ap(c_2Ealignment_2Ealigned(A_27m),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),ap(ap(c_2Ewords_2Eword__add(A_27m),V16y),ap(c_2Ewords_2En2w(A_27m),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))))))) ) ) )
      & ! [V18x: tp__ty_2Enum_2Enum,V19y: $i] :
          ( mem(V19y,ty_2Efcp_2Ecart(bool,A_27o))
         => ! [V20f: $i] :
              ( mem(V20f,A_27p)
             => ( p(ap(ap(c_2Ealignment_2Ealigned(A_27o),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),ap(ap(c_2Ewords_2Eword__add(A_27o),V19y),ap(c_2Ewords_2En2w(A_27o),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V18x)))))))))
              <=> p(ap(ap(c_2Ealignment_2Ealigned(A_27o),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),V19y)) ) ) )
      & ! [V21x: tp__ty_2Enum_2Enum,V22y: $i] :
          ( mem(V22y,ty_2Efcp_2Ecart(bool,A_27q))
         => ! [V23f: $i] :
              ( mem(V23f,A_27r)
             => ( p(ap(ap(c_2Ealignment_2Ealigned(A_27q),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),ap(ap(c_2Ewords_2Eword__add(A_27q),V22y),ap(c_2Ewords_2En2w(A_27q),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(V21x)))))))))
              <=> p(ap(ap(c_2Ealignment_2Ealigned(A_27q),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),ap(ap(c_2Ewords_2Eword__add(A_27q),V22y),ap(c_2Ewords_2En2w(A_27q),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))))))) ) ) )
      & ! [V24x: tp__ty_2Enum_2Enum,V25y: $i] :
          ( mem(V25y,ty_2Efcp_2Ecart(bool,A_27s))
         => ! [V26f: $i] :
              ( mem(V26f,A_27t)
             => ( p(ap(ap(c_2Ealignment_2Ealigned(A_27s),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),ap(ap(c_2Ewords_2Eword__add(A_27s),V25y),ap(c_2Ewords_2En2w(A_27s),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,ap(c_2Earithmetic_2EBIT2,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V24x)))))))))
              <=> p(ap(ap(c_2Ealignment_2Ealigned(A_27s),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),ap(ap(c_2Ewords_2Eword__add(A_27s),V25y),ap(c_2Ewords_2En2w(A_27s),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))))) ) ) )
      & ! [V27x: tp__ty_2Enum_2Enum,V28y: $i] :
          ( mem(V28y,ty_2Efcp_2Ecart(bool,A_27u))
         => ! [V29f: $i] :
              ( mem(V29f,A_27v)
             => ( p(ap(ap(c_2Ealignment_2Ealigned(A_27u),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),ap(ap(c_2Ewords_2Eword__add(A_27u),V28y),ap(c_2Ewords_2En2w(A_27u),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,ap(c_2Earithmetic_2EBIT2,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(V27x)))))))))
              <=> p(ap(ap(c_2Ealignment_2Ealigned(A_27u),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),ap(ap(c_2Ewords_2Eword__add(A_27u),V28y),ap(c_2Ewords_2En2w(A_27u),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))))))) ) ) )
      & ! [V30x: $i] :
          ( mem(V30x,A_27w)
         => ! [V31y: $i] :
              ( mem(V31y,ty_2Efcp_2Ecart(bool,A_27x))
             => ! [V32f: $i] :
                  ( mem(V32f,arr(A_27w,ty_2Enum_2Enum))
                 => ( p(ap(ap(c_2Ealignment_2Ealigned(A_27x),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),ap(ap(c_2Ewords_2Eword__sub(A_27x),V31y),ap(c_2Ewords_2En2w(A_27x),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(V32f,V30x)))))))))
                  <=> p(ap(ap(c_2Ealignment_2Ealigned(A_27x),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),ap(ap(c_2Ewords_2Eword__sub(A_27x),V31y),ap(c_2Ewords_2En2w(A_27x),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))))))) ) ) ) )
      & ! [V33x: tp__ty_2Enum_2Enum,V34y: $i] :
          ( mem(V34y,ty_2Efcp_2Ecart(bool,A_27y))
         => ! [V35f: $i] :
              ( mem(V35f,A_27z)
             => ( p(ap(ap(c_2Ealignment_2Ealigned(A_27y),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),ap(ap(c_2Ewords_2Eword__sub(A_27y),V34y),ap(c_2Ewords_2En2w(A_27y),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(V33x)))))))))
              <=> p(ap(ap(c_2Ealignment_2Ealigned(A_27y),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),ap(ap(c_2Ewords_2Eword__sub(A_27y),V34y),ap(c_2Ewords_2En2w(A_27y),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))))))) ) ) )
      & ! [V36x: tp__ty_2Enum_2Enum,V37y: $i] :
          ( mem(V37y,ty_2Efcp_2Ecart(bool,A_27a0))
         => ! [V38f: $i] :
              ( mem(V38f,A_27a1)
             => ( p(ap(ap(c_2Ealignment_2Ealigned(A_27a0),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),ap(ap(c_2Ewords_2Eword__sub(A_27a0),V37y),ap(c_2Ewords_2En2w(A_27a0),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT2,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V36x)))))))))
              <=> p(ap(ap(c_2Ealignment_2Ealigned(A_27a0),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),ap(ap(c_2Ewords_2Eword__sub(A_27a0),V37y),ap(c_2Ewords_2En2w(A_27a0),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))))) ) ) )
      & ! [V39x: tp__ty_2Enum_2Enum,V40y: $i] :
          ( mem(V40y,ty_2Efcp_2Ecart(bool,A_27a2))
         => ! [V41f: $i] :
              ( mem(V41f,A_27a3)
             => ( p(ap(ap(c_2Ealignment_2Ealigned(A_27a2),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),ap(ap(c_2Ewords_2Eword__sub(A_27a2),V40y),ap(c_2Ewords_2En2w(A_27a2),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT2,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(V39x)))))))))
              <=> p(ap(ap(c_2Ealignment_2Ealigned(A_27a2),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),ap(ap(c_2Ewords_2Eword__sub(A_27a2),V40y),ap(c_2Ewords_2En2w(A_27a2),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))))))) ) ) )
      & ! [V42x: tp__ty_2Enum_2Enum,V43y: $i] :
          ( mem(V43y,ty_2Efcp_2Ecart(bool,A_27a4))
         => ! [V44f: $i] :
              ( mem(V44f,A_27a5)
             => ( p(ap(ap(c_2Ealignment_2Ealigned(A_27a4),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),ap(ap(c_2Ewords_2Eword__sub(A_27a4),V43y),ap(c_2Ewords_2En2w(A_27a4),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V42x)))))))))
              <=> p(ap(ap(c_2Ealignment_2Ealigned(A_27a4),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),V43y)) ) ) )
      & ! [V45x: tp__ty_2Enum_2Enum,V46y: $i] :
          ( mem(V46y,ty_2Efcp_2Ecart(bool,A_27a6))
         => ! [V47f: $i] :
              ( mem(V47f,A_27a7)
             => ( p(ap(ap(c_2Ealignment_2Ealigned(A_27a6),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),ap(ap(c_2Ewords_2Eword__sub(A_27a6),V46y),ap(c_2Ewords_2En2w(A_27a6),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(V45x)))))))))
              <=> p(ap(ap(c_2Ealignment_2Ealigned(A_27a6),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),ap(ap(c_2Ewords_2Eword__sub(A_27a6),V46y),ap(c_2Ewords_2En2w(A_27a6),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))))))) ) ) )
      & ! [V48x: tp__ty_2Enum_2Enum,V49y: $i] :
          ( mem(V49y,ty_2Efcp_2Ecart(bool,A_27a8))
         => ! [V50f: $i] :
              ( mem(V50f,A_27a9)
             => ( p(ap(ap(c_2Ealignment_2Ealigned(A_27a8),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),ap(ap(c_2Ewords_2Eword__sub(A_27a8),V49y),ap(c_2Ewords_2En2w(A_27a8),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,ap(c_2Earithmetic_2EBIT2,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V48x)))))))))
              <=> p(ap(ap(c_2Ealignment_2Ealigned(A_27a8),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),ap(ap(c_2Ewords_2Eword__sub(A_27a8),V49y),ap(c_2Ewords_2En2w(A_27a8),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))))) ) ) )
      & ! [V51x: tp__ty_2Enum_2Enum,V52y: $i] :
          ( mem(V52y,ty_2Efcp_2Ecart(bool,A_27a10))
         => ! [V53f: $i] :
              ( mem(V53f,A_27a11)
             => ( p(ap(ap(c_2Ealignment_2Ealigned(A_27a10),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),ap(ap(c_2Ewords_2Eword__sub(A_27a10),V52y),ap(c_2Ewords_2En2w(A_27a10),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,ap(c_2Earithmetic_2EBIT2,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(V51x)))))))))
              <=> p(ap(ap(c_2Ealignment_2Ealigned(A_27a10),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))),ap(ap(c_2Ewords_2Eword__sub(A_27a10),V52y),ap(c_2Ewords_2En2w(A_27a10),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))))))) ) ) )
      & ! [V54x: $i] :
          ( mem(V54x,A_27a12)
         => ! [V55y: $i] :
              ( mem(V55y,ty_2Efcp_2Ecart(bool,A_27a13))
             => ! [V56f: $i] :
                  ( mem(V56f,arr(A_27a12,ty_2Enum_2Enum))
                 => ( p(ap(ap(c_2Ealignment_2Ealigned(A_27a13),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),ap(ap(c_2Ewords_2Eword__add(A_27a13),V55y),ap(c_2Ewords_2En2w(A_27a13),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(V56f,V54x))))))))
                  <=> p(ap(ap(c_2Ealignment_2Ealigned(A_27a13),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),ap(ap(c_2Ewords_2Eword__add(A_27a13),V55y),ap(c_2Ewords_2En2w(A_27a13),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))))))) ) ) ) )
      & ! [V57x: tp__ty_2Enum_2Enum,V58y: $i] :
          ( mem(V58y,ty_2Efcp_2Ecart(bool,A_27a14))
         => ( p(ap(ap(c_2Ealignment_2Ealigned(A_27a14),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),ap(ap(c_2Ewords_2Eword__add(A_27a14),V58y),ap(c_2Ewords_2En2w(A_27a14),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(V57x))))))))
          <=> p(ap(ap(c_2Ealignment_2Ealigned(A_27a14),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),ap(ap(c_2Ewords_2Eword__add(A_27a14),V58y),ap(c_2Ewords_2En2w(A_27a14),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))))) ) )
      & ! [V59x: tp__ty_2Enum_2Enum,V60y: $i] :
          ( mem(V60y,ty_2Efcp_2Ecart(bool,A_27a15))
         => ( p(ap(ap(c_2Ealignment_2Ealigned(A_27a15),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),ap(ap(c_2Ewords_2Eword__add(A_27a15),V60y),ap(c_2Ewords_2En2w(A_27a15),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V59x))))))))
          <=> p(ap(ap(c_2Ealignment_2Ealigned(A_27a15),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),V60y)) ) )
      & ! [V61x: tp__ty_2Enum_2Enum,V62y: $i] :
          ( mem(V62y,ty_2Efcp_2Ecart(bool,A_27a16))
         => ( p(ap(ap(c_2Ealignment_2Ealigned(A_27a16),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),ap(ap(c_2Ewords_2Eword__add(A_27a16),V62y),ap(c_2Ewords_2En2w(A_27a16),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(V61x))))))))
          <=> p(ap(ap(c_2Ealignment_2Ealigned(A_27a16),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),ap(ap(c_2Ewords_2Eword__add(A_27a16),V62y),ap(c_2Ewords_2En2w(A_27a16),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))))) ) )
      & ! [V63x: $i] :
          ( mem(V63x,A_27a17)
         => ! [V64y: $i] :
              ( mem(V64y,ty_2Efcp_2Ecart(bool,A_27a18))
             => ! [V65f: $i] :
                  ( mem(V65f,arr(A_27a17,ty_2Enum_2Enum))
                 => ( p(ap(ap(c_2Ealignment_2Ealigned(A_27a18),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),ap(ap(c_2Ewords_2Eword__sub(A_27a18),V64y),ap(c_2Ewords_2En2w(A_27a18),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,ap(V65f,V63x))))))))
                  <=> p(ap(ap(c_2Ealignment_2Ealigned(A_27a18),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),ap(ap(c_2Ewords_2Eword__sub(A_27a18),V64y),ap(c_2Ewords_2En2w(A_27a18),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))))))) ) ) ) )
      & ! [V66x: tp__ty_2Enum_2Enum,V67y: $i] :
          ( mem(V67y,ty_2Efcp_2Ecart(bool,A_27a19))
         => ( p(ap(ap(c_2Ealignment_2Ealigned(A_27a19),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),ap(ap(c_2Ewords_2Eword__sub(A_27a19),V67y),ap(c_2Ewords_2En2w(A_27a19),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(V66x))))))))
          <=> p(ap(ap(c_2Ealignment_2Ealigned(A_27a19),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),ap(ap(c_2Ewords_2Eword__sub(A_27a19),V67y),ap(c_2Ewords_2En2w(A_27a19),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))))) ) )
      & ! [V68x: tp__ty_2Enum_2Enum,V69y: $i] :
          ( mem(V69y,ty_2Efcp_2Ecart(bool,A_27a20))
         => ( p(ap(ap(c_2Ealignment_2Ealigned(A_27a20),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),ap(ap(c_2Ewords_2Eword__sub(A_27a20),V69y),ap(c_2Ewords_2En2w(A_27a20),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(V68x))))))))
          <=> p(ap(ap(c_2Ealignment_2Ealigned(A_27a20),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),V69y)) ) )
      & ! [V70x: tp__ty_2Enum_2Enum,V71y: $i] :
          ( mem(V71y,ty_2Efcp_2Ecart(bool,A_27a21))
         => ( p(ap(ap(c_2Ealignment_2Ealigned(A_27a21),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),ap(ap(c_2Ewords_2Eword__sub(A_27a21),V71y),ap(c_2Ewords_2En2w(A_27a21),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(V70x))))))))
          <=> p(ap(ap(c_2Ealignment_2Ealigned(A_27a21),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),ap(ap(c_2Ewords_2Eword__sub(A_27a21),V71y),ap(c_2Ewords_2En2w(A_27a21),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))))) ) )
      & ! [V72x: $i] :
          ( mem(V72x,A_27a22)
         => ! [V73y: $i] :
              ( mem(V73y,ty_2Efcp_2Ecart(bool,A_27a23))
             => ! [V74f: $i] :
                  ( mem(V74f,arr(A_27a22,ty_2Enum_2Enum))
                 => ( p(ap(ap(c_2Ealignment_2Ealigned(A_27a23),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),ap(ap(c_2Ewords_2Eword__add(A_27a23),V73y),ap(c_2Ewords_2En2w(A_27a23),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(V74f,V72x)))))))
                  <=> p(ap(ap(c_2Ealignment_2Ealigned(A_27a23),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),ap(ap(c_2Ewords_2Eword__add(A_27a23),V73y),ap(c_2Ewords_2En2w(A_27a23),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))))) ) ) ) )
      & ! [V75x: $i] :
          ( mem(V75x,A_27a24)
         => ! [V76y: $i] :
              ( mem(V76y,ty_2Efcp_2Ecart(bool,A_27a25))
             => ! [V77f: $i] :
                  ( mem(V77f,arr(A_27a24,ty_2Enum_2Enum))
                 => ( p(ap(ap(c_2Ealignment_2Ealigned(A_27a25),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),ap(ap(c_2Ewords_2Eword__sub(A_27a25),V76y),ap(c_2Ewords_2En2w(A_27a25),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,ap(V77f,V75x)))))))
                  <=> p(ap(ap(c_2Ealignment_2Ealigned(A_27a25),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),ap(ap(c_2Ewords_2Eword__sub(A_27a25),V76y),ap(c_2Ewords_2En2w(A_27a25),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO))))))) ) ) ) )
      & ! [V78x: tp__ty_2Enum_2Enum,V79y: $i] :
          ( mem(V79y,ty_2Efcp_2Ecart(bool,A_27a26))
         => ( p(ap(ap(c_2Ealignment_2Ealigned(A_27a26),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),ap(ap(c_2Ewords_2Eword__add(A_27a26),V79y),ap(c_2Ewords_2En2w(A_27a26),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(V78x)))))))
          <=> p(ap(ap(c_2Ealignment_2Ealigned(A_27a26),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),V79y)) ) )
      & ! [V80x: tp__ty_2Enum_2Enum,V81y: $i] :
          ( mem(V81y,ty_2Efcp_2Ecart(bool,A_27a27))
         => ( p(ap(ap(c_2Ealignment_2Ealigned(A_27a27),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),ap(ap(c_2Ewords_2Eword__sub(A_27a27),V81y),ap(c_2Ewords_2En2w(A_27a27),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT2,inj__ty_2Enum_2Enum(V80x)))))))
          <=> p(ap(ap(c_2Ealignment_2Ealigned(A_27a27),ap(c_2Earithmetic_2ENUMERAL,ap(c_2Earithmetic_2EBIT1,inj__ty_2Enum_2Enum(fo__c_2Earithmetic_2EZERO)))),V81y)) ) ) ) ).

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