]> matita.cs.unibo.it Git - helm.git/commitdiff
components: arity, csuba
authorFerruccio Guidi <ferruccio.guidi@unibo.it>
Wed, 4 Mar 2015 19:39:26 +0000 (19:39 +0000)
committerFerruccio Guidi <ferruccio.guidi@unibo.it>
Wed, 4 Mar 2015 19:39:26 +0000 (19:39 +0000)
15 files changed:
matita/matita/contribs/lambdadelta/basic_1/arity/aprem.ma
matita/matita/contribs/lambdadelta/basic_1/arity/cimp.ma
matita/matita/contribs/lambdadelta/basic_1/arity/defs.ma
matita/matita/contribs/lambdadelta/basic_1/arity/fwd.ma
matita/matita/contribs/lambdadelta/basic_1/arity/lift1.ma
matita/matita/contribs/lambdadelta/basic_1/arity/pr3.ma
matita/matita/contribs/lambdadelta/basic_1/arity/props.ma
matita/matita/contribs/lambdadelta/basic_1/arity/subst0.ma
matita/matita/contribs/lambdadelta/basic_1/csuba/arity.ma
matita/matita/contribs/lambdadelta/basic_1/csuba/clear.ma
matita/matita/contribs/lambdadelta/basic_1/csuba/defs.ma
matita/matita/contribs/lambdadelta/basic_1/csuba/drop.ma
matita/matita/contribs/lambdadelta/basic_1/csuba/fwd.ma
matita/matita/contribs/lambdadelta/basic_1/csuba/getl.ma
matita/matita/contribs/lambdadelta/basic_1/csuba/props.ma

index 35e8f58e09f21f1b560e0fc9ca7e6a568ffad0d7..ab79ccd872c7a066e284c61895b4e064ae8e344d 100644 (file)
 
 (* This file was automatically generated: do not edit *********************)
 
-include "Basic-1/arity/props.ma".
+include "basic_1/arity/props.ma".
 
-include "Basic-1/arity/cimp.ma".
+include "basic_1/arity/cimp.ma".
 
-include "Basic-1/aprem/props.ma".
+include "basic_1/aprem/props.ma".
 
 theorem arity_aprem:
  \forall (g: G).(\forall (c: C).(\forall (t: T).(\forall (a: A).((arity g c t 
@@ -28,233 +28,338 @@ a) \to (\forall (i: nat).(\forall (b: A).((aprem i a b) \to (ex2_3 C T nat
 b)))))))))))))
 \def
  \lambda (g: G).(\lambda (c: C).(\lambda (t: T).(\lambda (a: A).(\lambda (H: 
-(arity g c t a)).(arity_ind g (\lambda (c0: C).(\lambda (_: T).(\lambda (a0: 
-A).(\forall (i: nat).(\forall (b: A).((aprem i a0 b) \to (ex2_3 C T nat 
-(\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i j) O d c0)))) 
-(\lambda (d: C).(\lambda (u: T).(\lambda (_: nat).(arity g d u (asucc g 
-b)))))))))))) (\lambda (c0: C).(\lambda (n: nat).(\lambda (i: nat).(\lambda 
-(b: A).(\lambda (H0: (aprem i (ASort O n) b)).(let H_x \def (aprem_gen_sort b 
-i O n H0) in (let H1 \def H_x in (False_ind (ex2_3 C T nat (\lambda (d: 
-C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i j) O d c0)))) (\lambda (d: 
-C).(\lambda (u: T).(\lambda (_: nat).(arity g d u (asucc g b)))))) H1)))))))) 
-(\lambda (c0: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: nat).(\lambda 
-(H0: (getl i c0 (CHead d (Bind Abbr) u))).(\lambda (a0: A).(\lambda (_: 
-(arity g d u a0)).(\lambda (H2: ((\forall (i0: nat).(\forall (b: A).((aprem 
-i0 a0 b) \to (ex2_3 C T nat (\lambda (d0: C).(\lambda (_: T).(\lambda (j: 
-nat).(drop (plus i0 j) O d0 d)))) (\lambda (d0: C).(\lambda (u0: T).(\lambda 
-(_: nat).(arity g d0 u0 (asucc g b))))))))))).(\lambda (i0: nat).(\lambda (b: 
-A).(\lambda (H3: (aprem i0 a0 b)).(let H_x \def (H2 i0 b H3) in (let H4 \def 
-H_x in (ex2_3_ind C T nat (\lambda (d0: C).(\lambda (_: T).(\lambda (j: 
-nat).(drop (plus i0 j) O d0 d)))) (\lambda (d0: C).(\lambda (u0: T).(\lambda 
-(_: nat).(arity g d0 u0 (asucc g b))))) (ex2_3 C T nat (\lambda (d0: 
-C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i0 j) O d0 c0)))) (\lambda 
-(d0: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d0 u0 (asucc g b)))))) 
-(\lambda (x0: C).(\lambda (x1: T).(\lambda (x2: nat).(\lambda (H5: (drop 
-(plus i0 x2) O x0 d)).(\lambda (H6: (arity g x0 x1 (asucc g b))).(let H_x0 
-\def (getl_drop_conf_rev (plus i0 x2) x0 d H5 Abbr c0 u i H0) in (let H7 \def 
-H_x0 in (ex2_ind C (\lambda (c1: C).(drop (plus i0 x2) O c1 c0)) (\lambda 
-(c1: C).(drop (S i) (plus i0 x2) c1 x0)) (ex2_3 C T nat (\lambda (d0: 
-C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i0 j) O d0 c0)))) (\lambda 
-(d0: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d0 u0 (asucc g b)))))) 
-(\lambda (x: C).(\lambda (H8: (drop (plus i0 x2) O x c0)).(\lambda (H9: (drop 
-(S i) (plus i0 x2) x x0)).(ex2_3_intro C T nat (\lambda (d0: C).(\lambda (_: 
-T).(\lambda (j: nat).(drop (plus i0 j) O d0 c0)))) (\lambda (d0: C).(\lambda 
-(u0: T).(\lambda (_: nat).(arity g d0 u0 (asucc g b))))) x (lift (S i) (plus 
-i0 x2) x1) x2 H8 (arity_lift g x0 x1 (asucc g b) H6 x (S i) (plus i0 x2) 
-H9))))) H7)))))))) H4)))))))))))))) (\lambda (c0: C).(\lambda (d: C).(\lambda 
-(u: T).(\lambda (i: nat).(\lambda (H0: (getl i c0 (CHead d (Bind Abst) 
-u))).(\lambda (a0: A).(\lambda (_: (arity g d u (asucc g a0))).(\lambda (H2: 
-((\forall (i0: nat).(\forall (b: A).((aprem i0 (asucc g a0) b) \to (ex2_3 C T 
-nat (\lambda (d0: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i0 j) O d0 
+(arity g c t a)).(let TMP_5 \def (\lambda (c0: C).(\lambda (_: T).(\lambda 
+(a0: A).(\forall (i: nat).(\forall (b: A).((aprem i a0 b) \to (let TMP_2 \def 
+(\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_1 \def (plus i j) 
+in (drop TMP_1 O d c0))))) in (let TMP_4 \def (\lambda (d: C).(\lambda (u: 
+T).(\lambda (_: nat).(let TMP_3 \def (asucc g b) in (arity g d u TMP_3))))) 
+in (ex2_3 C T nat TMP_2 TMP_4))))))))) in (let TMP_11 \def (\lambda (c0: 
+C).(\lambda (n: nat).(\lambda (i: nat).(\lambda (b: A).(\lambda (H0: (aprem i 
+(ASort O n) b)).(let H_x \def (aprem_gen_sort b i O n H0) in (let H1 \def H_x 
+in (let TMP_7 \def (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(let 
+TMP_6 \def (plus i j) in (drop TMP_6 O d c0))))) in (let TMP_9 \def (\lambda 
+(d: C).(\lambda (u: T).(\lambda (_: nat).(let TMP_8 \def (asucc g b) in 
+(arity g d u TMP_8))))) in (let TMP_10 \def (ex2_3 C T nat TMP_7 TMP_9) in 
+(False_ind TMP_10 H1))))))))))) in (let TMP_45 \def (\lambda (c0: C).(\lambda 
+(d: C).(\lambda (u: T).(\lambda (i: nat).(\lambda (H0: (getl i c0 (CHead d 
+(Bind Abbr) u))).(\lambda (a0: A).(\lambda (_: (arity g d u a0)).(\lambda 
+(H2: ((\forall (i0: nat).(\forall (b: A).((aprem i0 a0 b) \to (ex2_3 C T nat 
+(\lambda (d0: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i0 j) O d0 
 d)))) (\lambda (d0: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d0 u0 
 (asucc g b))))))))))).(\lambda (i0: nat).(\lambda (b: A).(\lambda (H3: (aprem 
-i0 a0 b)).(let H4 \def (H2 i0 b (aprem_asucc g a0 b i0 H3)) in (ex2_3_ind C T 
-nat (\lambda (d0: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i0 j) O d0 
-d)))) (\lambda (d0: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d0 u0 
-(asucc g b))))) (ex2_3 C T nat (\lambda (d0: C).(\lambda (_: T).(\lambda (j: 
-nat).(drop (plus i0 j) O d0 c0)))) (\lambda (d0: C).(\lambda (u0: T).(\lambda 
-(_: nat).(arity g d0 u0 (asucc g b)))))) (\lambda (x0: C).(\lambda (x1: 
-T).(\lambda (x2: nat).(\lambda (H5: (drop (plus i0 x2) O x0 d)).(\lambda (H6: 
-(arity g x0 x1 (asucc g b))).(let H_x \def (getl_drop_conf_rev (plus i0 x2) 
-x0 d H5 Abst c0 u i H0) in (let H7 \def H_x in (ex2_ind C (\lambda (c1: 
-C).(drop (plus i0 x2) O c1 c0)) (\lambda (c1: C).(drop (S i) (plus i0 x2) c1 
-x0)) (ex2_3 C T nat (\lambda (d0: C).(\lambda (_: T).(\lambda (j: nat).(drop 
-(plus i0 j) O d0 c0)))) (\lambda (d0: C).(\lambda (u0: T).(\lambda (_: 
-nat).(arity g d0 u0 (asucc g b)))))) (\lambda (x: C).(\lambda (H8: (drop 
-(plus i0 x2) O x c0)).(\lambda (H9: (drop (S i) (plus i0 x2) x 
-x0)).(ex2_3_intro C T nat (\lambda (d0: C).(\lambda (_: T).(\lambda (j: 
-nat).(drop (plus i0 j) O d0 c0)))) (\lambda (d0: C).(\lambda (u0: T).(\lambda 
-(_: nat).(arity g d0 u0 (asucc g b))))) x (lift (S i) (plus i0 x2) x1) x2 H8 
-(arity_lift g x0 x1 (asucc g b) H6 x (S i) (plus i0 x2) H9))))) H7)))))))) 
-H4))))))))))))) (\lambda (b: B).(\lambda (_: (not (eq B b Abst))).(\lambda 
-(c0: C).(\lambda (u: T).(\lambda (a1: A).(\lambda (_: (arity g c0 u 
-a1)).(\lambda (_: ((\forall (i: nat).(\forall (b0: A).((aprem i a1 b0) \to 
+i0 a0 b)).(let H_x \def (H2 i0 b H3) in (let H4 \def H_x in (let TMP_13 \def 
+(\lambda (d0: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_12 \def (plus i0 
+j) in (drop TMP_12 O d0 d))))) in (let TMP_15 \def (\lambda (d0: C).(\lambda 
+(u0: T).(\lambda (_: nat).(let TMP_14 \def (asucc g b) in (arity g d0 u0 
+TMP_14))))) in (let TMP_17 \def (\lambda (d0: C).(\lambda (_: T).(\lambda (j: 
+nat).(let TMP_16 \def (plus i0 j) in (drop TMP_16 O d0 c0))))) in (let TMP_19 
+\def (\lambda (d0: C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_18 \def 
+(asucc g b) in (arity g d0 u0 TMP_18))))) in (let TMP_20 \def (ex2_3 C T nat 
+TMP_17 TMP_19) in (let TMP_44 \def (\lambda (x0: C).(\lambda (x1: T).(\lambda 
+(x2: nat).(\lambda (H5: (drop (plus i0 x2) O x0 d)).(\lambda (H6: (arity g x0 
+x1 (asucc g b))).(let TMP_21 \def (plus i0 x2) in (let H_x0 \def 
+(getl_drop_conf_rev TMP_21 x0 d H5 Abbr c0 u i H0) in (let H7 \def H_x0 in 
+(let TMP_23 \def (\lambda (c1: C).(let TMP_22 \def (plus i0 x2) in (drop 
+TMP_22 O c1 c0))) in (let TMP_26 \def (\lambda (c1: C).(let TMP_24 \def (S i) 
+in (let TMP_25 \def (plus i0 x2) in (drop TMP_24 TMP_25 c1 x0)))) in (let 
+TMP_28 \def (\lambda (d0: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_27 
+\def (plus i0 j) in (drop TMP_27 O d0 c0))))) in (let TMP_30 \def (\lambda 
+(d0: C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_29 \def (asucc g b) in 
+(arity g d0 u0 TMP_29))))) in (let TMP_31 \def (ex2_3 C T nat TMP_28 TMP_30) 
+in (let TMP_43 \def (\lambda (x: C).(\lambda (H8: (drop (plus i0 x2) O x 
+c0)).(\lambda (H9: (drop (S i) (plus i0 x2) x x0)).(let TMP_33 \def (\lambda 
+(d0: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_32 \def (plus i0 j) in 
+(drop TMP_32 O d0 c0))))) in (let TMP_35 \def (\lambda (d0: C).(\lambda (u0: 
+T).(\lambda (_: nat).(let TMP_34 \def (asucc g b) in (arity g d0 u0 
+TMP_34))))) in (let TMP_36 \def (S i) in (let TMP_37 \def (plus i0 x2) in 
+(let TMP_38 \def (lift TMP_36 TMP_37 x1) in (let TMP_39 \def (asucc g b) in 
+(let TMP_40 \def (S i) in (let TMP_41 \def (plus i0 x2) in (let TMP_42 \def 
+(arity_lift g x0 x1 TMP_39 H6 x TMP_40 TMP_41 H9) in (ex2_3_intro C T nat 
+TMP_33 TMP_35 x TMP_38 x2 H8 TMP_42))))))))))))) in (ex2_ind C TMP_23 TMP_26 
+TMP_31 TMP_43 H7))))))))))))))) in (ex2_3_ind C T nat TMP_13 TMP_15 TMP_20 
+TMP_44 H4)))))))))))))))))))) in (let TMP_80 \def (\lambda (c0: C).(\lambda 
+(d: C).(\lambda (u: T).(\lambda (i: nat).(\lambda (H0: (getl i c0 (CHead d 
+(Bind Abst) u))).(\lambda (a0: A).(\lambda (_: (arity g d u (asucc g 
+a0))).(\lambda (H2: ((\forall (i0: nat).(\forall (b: A).((aprem i0 (asucc g 
+a0) b) \to (ex2_3 C T nat (\lambda (d0: C).(\lambda (_: T).(\lambda (j: 
+nat).(drop (plus i0 j) O d0 d)))) (\lambda (d0: C).(\lambda (u0: T).(\lambda 
+(_: nat).(arity g d0 u0 (asucc g b))))))))))).(\lambda (i0: nat).(\lambda (b: 
+A).(\lambda (H3: (aprem i0 a0 b)).(let H_y \def (H2 i0 b) in (let TMP_46 \def 
+(aprem_asucc g a0 b i0 H3) in (let H4 \def (H_y TMP_46) in (let TMP_48 \def 
+(\lambda (d0: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_47 \def (plus i0 
+j) in (drop TMP_47 O d0 d))))) in (let TMP_50 \def (\lambda (d0: C).(\lambda 
+(u0: T).(\lambda (_: nat).(let TMP_49 \def (asucc g b) in (arity g d0 u0 
+TMP_49))))) in (let TMP_52 \def (\lambda (d0: C).(\lambda (_: T).(\lambda (j: 
+nat).(let TMP_51 \def (plus i0 j) in (drop TMP_51 O d0 c0))))) in (let TMP_54 
+\def (\lambda (d0: C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_53 \def 
+(asucc g b) in (arity g d0 u0 TMP_53))))) in (let TMP_55 \def (ex2_3 C T nat 
+TMP_52 TMP_54) in (let TMP_79 \def (\lambda (x0: C).(\lambda (x1: T).(\lambda 
+(x2: nat).(\lambda (H5: (drop (plus i0 x2) O x0 d)).(\lambda (H6: (arity g x0 
+x1 (asucc g b))).(let TMP_56 \def (plus i0 x2) in (let H_x \def 
+(getl_drop_conf_rev TMP_56 x0 d H5 Abst c0 u i H0) in (let H7 \def H_x in 
+(let TMP_58 \def (\lambda (c1: C).(let TMP_57 \def (plus i0 x2) in (drop 
+TMP_57 O c1 c0))) in (let TMP_61 \def (\lambda (c1: C).(let TMP_59 \def (S i) 
+in (let TMP_60 \def (plus i0 x2) in (drop TMP_59 TMP_60 c1 x0)))) in (let 
+TMP_63 \def (\lambda (d0: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_62 
+\def (plus i0 j) in (drop TMP_62 O d0 c0))))) in (let TMP_65 \def (\lambda 
+(d0: C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_64 \def (asucc g b) in 
+(arity g d0 u0 TMP_64))))) in (let TMP_66 \def (ex2_3 C T nat TMP_63 TMP_65) 
+in (let TMP_78 \def (\lambda (x: C).(\lambda (H8: (drop (plus i0 x2) O x 
+c0)).(\lambda (H9: (drop (S i) (plus i0 x2) x x0)).(let TMP_68 \def (\lambda 
+(d0: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_67 \def (plus i0 j) in 
+(drop TMP_67 O d0 c0))))) in (let TMP_70 \def (\lambda (d0: C).(\lambda (u0: 
+T).(\lambda (_: nat).(let TMP_69 \def (asucc g b) in (arity g d0 u0 
+TMP_69))))) in (let TMP_71 \def (S i) in (let TMP_72 \def (plus i0 x2) in 
+(let TMP_73 \def (lift TMP_71 TMP_72 x1) in (let TMP_74 \def (asucc g b) in 
+(let TMP_75 \def (S i) in (let TMP_76 \def (plus i0 x2) in (let TMP_77 \def 
+(arity_lift g x0 x1 TMP_74 H6 x TMP_75 TMP_76 H9) in (ex2_3_intro C T nat 
+TMP_68 TMP_70 x TMP_73 x2 H8 TMP_77))))))))))))) in (ex2_ind C TMP_58 TMP_61 
+TMP_66 TMP_78 H7))))))))))))))) in (ex2_3_ind C T nat TMP_48 TMP_50 TMP_55 
+TMP_79 H4))))))))))))))))))))) in (let TMP_106 \def (\lambda (b: B).(\lambda 
+(_: (not (eq B b Abst))).(\lambda (c0: C).(\lambda (u: T).(\lambda (a1: 
+A).(\lambda (_: (arity g c0 u a1)).(\lambda (_: ((\forall (i: nat).(\forall 
+(b0: A).((aprem i a1 b0) \to (ex2_3 C T nat (\lambda (d: C).(\lambda (_: 
+T).(\lambda (j: nat).(drop (plus i j) O d c0)))) (\lambda (d: C).(\lambda 
+(u0: T).(\lambda (_: nat).(arity g d u0 (asucc g b0))))))))))).(\lambda (t0: 
+T).(\lambda (a2: A).(\lambda (_: (arity g (CHead c0 (Bind b) u) t0 
+a2)).(\lambda (H4: ((\forall (i: nat).(\forall (b0: A).((aprem i a2 b0) \to 
 (ex2_3 C T nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus 
-i j) O d c0)))) (\lambda (d: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d 
-u0 (asucc g b0))))))))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda (_: 
-(arity g (CHead c0 (Bind b) u) t0 a2)).(\lambda (H4: ((\forall (i: 
-nat).(\forall (b0: A).((aprem i a2 b0) \to (ex2_3 C T nat (\lambda (d: 
-C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i j) O d (CHead c0 (Bind b) 
-u))))) (\lambda (d: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d u0 
-(asucc g b0))))))))))).(\lambda (i: nat).(\lambda (b0: A).(\lambda (H5: 
-(aprem i a2 b0)).(let H_x \def (H4 i b0 H5) in (let H6 \def H_x in (ex2_3_ind 
-C T nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i j) O 
-d (CHead c0 (Bind b) u))))) (\lambda (d: C).(\lambda (u0: T).(\lambda (_: 
-nat).(arity g d u0 (asucc g b0))))) (ex2_3 C T nat (\lambda (d: C).(\lambda 
-(_: T).(\lambda (j: nat).(drop (plus i j) O d c0)))) (\lambda (d: C).(\lambda 
-(u0: T).(\lambda (_: nat).(arity g d u0 (asucc g b0)))))) (\lambda (x0: 
-C).(\lambda (x1: T).(\lambda (x2: nat).(\lambda (H7: (drop (plus i x2) O x0 
-(CHead c0 (Bind b) u))).(\lambda (H8: (arity g x0 x1 (asucc g b0))).(let H9 
-\def (eq_ind nat (S (plus i x2)) (\lambda (n: nat).(drop n O x0 c0)) (drop_S 
-b x0 c0 u (plus i x2) H7) (plus i (S x2)) (plus_n_Sm i x2)) in (ex2_3_intro C 
-T nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i j) O d 
-c0)))) (\lambda (d: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d u0 
-(asucc g b0))))) x0 x1 (S x2) H9 H8))))))) H6))))))))))))))))) (\lambda (c0: 
-C).(\lambda (u: T).(\lambda (a1: A).(\lambda (H0: (arity g c0 u (asucc g 
-a1))).(\lambda (_: ((\forall (i: nat).(\forall (b: A).((aprem i (asucc g a1) 
-b) \to (ex2_3 C T nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop 
-(plus i j) O d c0)))) (\lambda (d: C).(\lambda (u0: T).(\lambda (_: 
-nat).(arity g d u0 (asucc g b))))))))))).(\lambda (t0: T).(\lambda (a2: 
-A).(\lambda (_: (arity g (CHead c0 (Bind Abst) u) t0 a2)).(\lambda (H3: 
-((\forall (i: nat).(\forall (b: A).((aprem i a2 b) \to (ex2_3 C T nat 
-(\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i j) O d (CHead 
-c0 (Bind Abst) u))))) (\lambda (d: C).(\lambda (u0: T).(\lambda (_: 
-nat).(arity g d u0 (asucc g b))))))))))).(\lambda (i: nat).(\lambda (b: 
-A).(\lambda (H4: (aprem i (AHead a1 a2) b)).(nat_ind (\lambda (n: 
-nat).((aprem n (AHead a1 a2) b) \to (ex2_3 C T nat (\lambda (d: C).(\lambda 
-(_: T).(\lambda (j: nat).(drop (plus n j) O d c0)))) (\lambda (d: C).(\lambda 
-(u0: T).(\lambda (_: nat).(arity g d u0 (asucc g b)))))))) (\lambda (H5: 
-(aprem O (AHead a1 a2) b)).(let H_y \def (aprem_gen_head_O a1 a2 b H5) in 
-(eq_ind_r A a1 (\lambda (a0: A).(ex2_3 C T nat (\lambda (d: C).(\lambda (_: 
-T).(\lambda (j: nat).(drop (plus O j) O d c0)))) (\lambda (d: C).(\lambda 
-(u0: T).(\lambda (_: nat).(arity g d u0 (asucc g a0))))))) (ex2_3_intro C T 
-nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus O j) O d 
-c0)))) (\lambda (d: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d u0 
-(asucc g a1))))) c0 u O (drop_refl c0) H0) b H_y))) (\lambda (i0: 
+i j) O d (CHead c0 (Bind b) u))))) (\lambda (d: C).(\lambda (u0: T).(\lambda 
+(_: nat).(arity g d u0 (asucc g b0))))))))))).(\lambda (i: nat).(\lambda (b0: 
+A).(\lambda (H5: (aprem i a2 b0)).(let H_x \def (H4 i b0 H5) in (let H6 \def 
+H_x in (let TMP_84 \def (\lambda (d: C).(\lambda (_: T).(\lambda (j: 
+nat).(let TMP_81 \def (plus i j) in (let TMP_82 \def (Bind b) in (let TMP_83 
+\def (CHead c0 TMP_82 u) in (drop TMP_81 O d TMP_83))))))) in (let TMP_86 
+\def (\lambda (d: C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_85 \def 
+(asucc g b0) in (arity g d u0 TMP_85))))) in (let TMP_88 \def (\lambda (d: 
+C).(\lambda (_: T).(\lambda (j: nat).(let TMP_87 \def (plus i j) in (drop 
+TMP_87 O d c0))))) in (let TMP_90 \def (\lambda (d: C).(\lambda (u0: 
+T).(\lambda (_: nat).(let TMP_89 \def (asucc g b0) in (arity g d u0 
+TMP_89))))) in (let TMP_91 \def (ex2_3 C T nat TMP_88 TMP_90) in (let TMP_105 
+\def (\lambda (x0: C).(\lambda (x1: T).(\lambda (x2: nat).(\lambda (H7: (drop 
+(plus i x2) O x0 (CHead c0 (Bind b) u))).(\lambda (H8: (arity g x0 x1 (asucc 
+g b0))).(let TMP_92 \def (plus i x2) in (let TMP_93 \def (S TMP_92) in (let 
+TMP_94 \def (\lambda (n: nat).(drop n O x0 c0)) in (let TMP_95 \def (plus i 
+x2) in (let TMP_96 \def (drop_S b x0 c0 u TMP_95 H7) in (let TMP_97 \def (S 
+x2) in (let TMP_98 \def (plus i TMP_97) in (let TMP_99 \def (plus_n_Sm i x2) 
+in (let H9 \def (eq_ind nat TMP_93 TMP_94 TMP_96 TMP_98 TMP_99) in (let 
+TMP_101 \def (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_100 
+\def (plus i j) in (drop TMP_100 O d c0))))) in (let TMP_103 \def (\lambda 
+(d: C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_102 \def (asucc g b0) in 
+(arity g d u0 TMP_102))))) in (let TMP_104 \def (S x2) in (ex2_3_intro C T 
+nat TMP_101 TMP_103 x0 x1 TMP_104 H9 H8)))))))))))))))))) in (ex2_3_ind C T 
+nat TMP_84 TMP_86 TMP_91 TMP_105 H6))))))))))))))))))))))) in (let TMP_145 
+\def (\lambda (c0: C).(\lambda (u: T).(\lambda (a1: A).(\lambda (H0: (arity g 
+c0 u (asucc g a1))).(\lambda (_: ((\forall (i: nat).(\forall (b: A).((aprem i 
+(asucc g a1) b) \to (ex2_3 C T nat (\lambda (d: C).(\lambda (_: T).(\lambda 
+(j: nat).(drop (plus i j) O d c0)))) (\lambda (d: C).(\lambda (u0: 
+T).(\lambda (_: nat).(arity g d u0 (asucc g b))))))))))).(\lambda (t0: 
+T).(\lambda (a2: A).(\lambda (_: (arity g (CHead c0 (Bind Abst) u) t0 
+a2)).(\lambda (H3: ((\forall (i: nat).(\forall (b: A).((aprem i a2 b) \to 
+(ex2_3 C T nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus 
+i j) O d (CHead c0 (Bind Abst) u))))) (\lambda (d: C).(\lambda (u0: 
+T).(\lambda (_: nat).(arity g d u0 (asucc g b))))))))))).(\lambda (i: 
+nat).(\lambda (b: A).(\lambda (H4: (aprem i (AHead a1 a2) b)).(let TMP_111 
+\def (\lambda (n: nat).((aprem n (AHead a1 a2) b) \to (let TMP_108 \def 
+(\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_107 \def (plus n 
+j) in (drop TMP_107 O d c0))))) in (let TMP_110 \def (\lambda (d: C).(\lambda 
+(u0: T).(\lambda (_: nat).(let TMP_109 \def (asucc g b) in (arity g d u0 
+TMP_109))))) in (ex2_3 C T nat TMP_108 TMP_110))))) in (let TMP_123 \def 
+(\lambda (H5: (aprem O (AHead a1 a2) b)).(let H_y \def (aprem_gen_head_O a1 
+a2 b H5) in (let TMP_116 \def (\lambda (a0: A).(let TMP_113 \def (\lambda (d: 
+C).(\lambda (_: T).(\lambda (j: nat).(let TMP_112 \def (plus O j) in (drop 
+TMP_112 O d c0))))) in (let TMP_115 \def (\lambda (d: C).(\lambda (u0: 
+T).(\lambda (_: nat).(let TMP_114 \def (asucc g a0) in (arity g d u0 
+TMP_114))))) in (ex2_3 C T nat TMP_113 TMP_115)))) in (let TMP_118 \def 
+(\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_117 \def (plus O 
+j) in (drop TMP_117 O d c0))))) in (let TMP_120 \def (\lambda (d: C).(\lambda 
+(u0: T).(\lambda (_: nat).(let TMP_119 \def (asucc g a1) in (arity g d u0 
+TMP_119))))) in (let TMP_121 \def (drop_refl c0) in (let TMP_122 \def 
+(ex2_3_intro C T nat TMP_118 TMP_120 c0 u O TMP_121 H0) in (eq_ind_r A a1 
+TMP_116 TMP_122 b H_y)))))))) in (let TMP_144 \def (\lambda (i0: 
 nat).(\lambda (_: (((aprem i0 (AHead a1 a2) b) \to (ex2_3 C T nat (\lambda 
 (d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i0 j) O d c0)))) 
 (\lambda (d: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d u0 (asucc g 
 b))))))))).(\lambda (H5: (aprem (S i0) (AHead a1 a2) b)).(let H_y \def 
 (aprem_gen_head_S a1 a2 b i0 H5) in (let H_x \def (H3 i0 b H_y) in (let H6 
-\def H_x in (ex2_3_ind C T nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: 
-nat).(drop (plus i0 j) O d (CHead c0 (Bind Abst) u))))) (\lambda (d: 
-C).(\lambda (u0: T).(\lambda (_: nat).(arity g d u0 (asucc g b))))) (ex2_3 C 
-T nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus (S i0) j) 
-O d c0)))) (\lambda (d: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d u0 
-(asucc g b)))))) (\lambda (x0: C).(\lambda (x1: T).(\lambda (x2: 
-nat).(\lambda (H7: (drop (plus i0 x2) O x0 (CHead c0 (Bind Abst) 
-u))).(\lambda (H8: (arity g x0 x1 (asucc g b))).(ex2_3_intro C T nat (\lambda 
-(d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus (S i0) j) O d c0)))) 
+\def H_x in (let TMP_127 \def (\lambda (d: C).(\lambda (_: T).(\lambda (j: 
+nat).(let TMP_124 \def (plus i0 j) in (let TMP_125 \def (Bind Abst) in (let 
+TMP_126 \def (CHead c0 TMP_125 u) in (drop TMP_124 O d TMP_126))))))) in (let 
+TMP_129 \def (\lambda (d: C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_128 
+\def (asucc g b) in (arity g d u0 TMP_128))))) in (let TMP_132 \def (\lambda 
+(d: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_130 \def (S i0) in (let 
+TMP_131 \def (plus TMP_130 j) in (drop TMP_131 O d c0)))))) in (let TMP_134 
+\def (\lambda (d: C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_133 \def 
+(asucc g b) in (arity g d u0 TMP_133))))) in (let TMP_135 \def (ex2_3 C T nat 
+TMP_132 TMP_134) in (let TMP_143 \def (\lambda (x0: C).(\lambda (x1: 
+T).(\lambda (x2: nat).(\lambda (H7: (drop (plus i0 x2) O x0 (CHead c0 (Bind 
+Abst) u))).(\lambda (H8: (arity g x0 x1 (asucc g b))).(let TMP_138 \def 
+(\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_136 \def (S i0) in 
+(let TMP_137 \def (plus TMP_136 j) in (drop TMP_137 O d c0)))))) in (let 
+TMP_140 \def (\lambda (d: C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_139 
+\def (asucc g b) in (arity g d u0 TMP_139))))) in (let TMP_141 \def (plus i0 
+x2) in (let TMP_142 \def (drop_S Abst x0 c0 u TMP_141 H7) in (ex2_3_intro C T 
+nat TMP_138 TMP_140 x0 x1 x2 TMP_142 H8)))))))))) in (ex2_3_ind C T nat 
+TMP_127 TMP_129 TMP_135 TMP_143 H6))))))))))))) in (nat_ind TMP_111 TMP_123 
+TMP_144 i H4)))))))))))))))) in (let TMP_236 \def (\lambda (c0: C).(\lambda 
+(u: T).(\lambda (a1: A).(\lambda (_: (arity g c0 u a1)).(\lambda (_: 
+((\forall (i: nat).(\forall (b: A).((aprem i a1 b) \to (ex2_3 C T nat 
+(\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i j) O d c0)))) 
 (\lambda (d: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d u0 (asucc g 
-b))))) x0 x1 x2 (drop_S Abst x0 c0 u (plus i0 x2) H7) H8)))))) H6))))))) i 
-H4))))))))))))) (\lambda (c0: C).(\lambda (u: T).(\lambda (a1: A).(\lambda 
-(_: (arity g c0 u a1)).(\lambda (_: ((\forall (i: nat).(\forall (b: 
-A).((aprem i a1 b) \to (ex2_3 C T nat (\lambda (d: C).(\lambda (_: 
-T).(\lambda (j: nat).(drop (plus i j) O d c0)))) (\lambda (d: C).(\lambda 
-(u0: T).(\lambda (_: nat).(arity g d u0 (asucc g b))))))))))).(\lambda (t0: 
-T).(\lambda (a2: A).(\lambda (_: (arity g c0 t0 (AHead a1 a2))).(\lambda (H3: 
-((\forall (i: nat).(\forall (b: A).((aprem i (AHead a1 a2) b) \to (ex2_3 C T 
+b))))))))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda (_: (arity g c0 t0 
+(AHead a1 a2))).(\lambda (H3: ((\forall (i: nat).(\forall (b: A).((aprem i 
+(AHead a1 a2) b) \to (ex2_3 C T nat (\lambda (d: C).(\lambda (_: T).(\lambda 
+(j: nat).(drop (plus i j) O d c0)))) (\lambda (d: C).(\lambda (u0: 
+T).(\lambda (_: nat).(arity g d u0 (asucc g b))))))))))).(\lambda (i: 
+nat).(\lambda (b: A).(\lambda (H4: (aprem i a2 b)).(let TMP_146 \def (S i) in 
+(let H_y \def (H3 TMP_146 b) in (let TMP_147 \def (aprem_succ a2 b i H4 a1) 
+in (let H5 \def (H_y TMP_147) in (let TMP_150 \def (\lambda (d: C).(\lambda 
+(_: T).(\lambda (j: nat).(let TMP_148 \def (plus i j) in (let TMP_149 \def (S 
+TMP_148) in (drop TMP_149 O d c0)))))) in (let TMP_152 \def (\lambda (d: 
+C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_151 \def (asucc g b) in (arity 
+g d u0 TMP_151))))) in (let TMP_154 \def (\lambda (d: C).(\lambda (_: 
+T).(\lambda (j: nat).(let TMP_153 \def (plus i j) in (drop TMP_153 O d 
+c0))))) in (let TMP_156 \def (\lambda (d: C).(\lambda (u0: T).(\lambda (_: 
+nat).(let TMP_155 \def (asucc g b) in (arity g d u0 TMP_155))))) in (let 
+TMP_157 \def (ex2_3 C T nat TMP_154 TMP_156) in (let TMP_235 \def (\lambda 
+(x0: C).(\lambda (x1: T).(\lambda (x2: nat).(\lambda (H6: (drop (S (plus i 
+x2)) O x0 c0)).(\lambda (H7: (arity g x0 x1 (asucc g b))).(let TMP_162 \def 
+(\lambda (c1: C).((drop (S (plus i x2)) O c1 c0) \to ((arity g c1 x1 (asucc g 
+b)) \to (let TMP_159 \def (\lambda (d: C).(\lambda (_: T).(\lambda (j: 
+nat).(let TMP_158 \def (plus i j) in (drop TMP_158 O d c0))))) in (let 
+TMP_161 \def (\lambda (d: C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_160 
+\def (asucc g b) in (arity g d u0 TMP_160))))) in (ex2_3 C T nat TMP_159 
+TMP_161)))))) in (let TMP_186 \def (\lambda (n: nat).(\lambda (H8: (drop (S 
+(plus i x2)) O (CSort n) c0)).(\lambda (_: (arity g (CSort n) x1 (asucc g 
+b))).(let TMP_163 \def (CSort n) in (let TMP_164 \def (eq C c0 TMP_163) in 
+(let TMP_165 \def (plus i x2) in (let TMP_166 \def (S TMP_165) in (let 
+TMP_167 \def (eq nat TMP_166 O) in (let TMP_168 \def (eq nat O O) in (let 
+TMP_170 \def (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_169 
+\def (plus i j) in (drop TMP_169 O d c0))))) in (let TMP_172 \def (\lambda 
+(d: C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_171 \def (asucc g b) in 
+(arity g d u0 TMP_171))))) in (let TMP_173 \def (ex2_3 C T nat TMP_170 
+TMP_172) in (let TMP_182 \def (\lambda (_: (eq C c0 (CSort n))).(\lambda 
+(H11: (eq nat (S (plus i x2)) O)).(\lambda (_: (eq nat O O)).(let TMP_174 
+\def (plus i x2) in (let TMP_175 \def (S TMP_174) in (let TMP_176 \def 
+(\lambda (ee: nat).(match ee with [O \Rightarrow False | (S _) \Rightarrow 
+True])) in (let H13 \def (eq_ind nat TMP_175 TMP_176 I O H11) in (let TMP_178 
+\def (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_177 \def 
+(plus i j) in (drop TMP_177 O d c0))))) in (let TMP_180 \def (\lambda (d: 
+C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_179 \def (asucc g b) in (arity 
+g d u0 TMP_179))))) in (let TMP_181 \def (ex2_3 C T nat TMP_178 TMP_180) in 
+(False_ind TMP_181 H13))))))))))) in (let TMP_183 \def (plus i x2) in (let 
+TMP_184 \def (S TMP_183) in (let TMP_185 \def (drop_gen_sort n TMP_184 O c0 
+H8) in (and3_ind TMP_164 TMP_167 TMP_168 TMP_173 TMP_182 
+TMP_185))))))))))))))))) in (let TMP_234 \def (\lambda (d: C).(\lambda (IHd: 
+(((drop (S (plus i x2)) O d c0) \to ((arity g d x1 (asucc g b)) \to (ex2_3 C 
+T nat (\lambda (d0: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i j) O 
+d0 c0)))) (\lambda (d0: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d0 u0 
+(asucc g b)))))))))).(\lambda (k: K).(\lambda (t1: T).(\lambda (H8: (drop (S 
+(plus i x2)) O (CHead d k t1) c0)).(\lambda (H9: (arity g (CHead d k t1) x1 
+(asucc g b))).(let TMP_191 \def (\lambda (k0: K).((arity g (CHead d k0 t1) x1 
+(asucc g b)) \to ((drop (r k0 (plus i x2)) O d c0) \to (let TMP_188 \def 
+(\lambda (d0: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_187 \def (plus i 
+j) in (drop TMP_187 O d0 c0))))) in (let TMP_190 \def (\lambda (d0: 
+C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_189 \def (asucc g b) in (arity 
+g d0 u0 TMP_189))))) in (ex2_3 C T nat TMP_188 TMP_190)))))) in (let TMP_211 
+\def (\lambda (b0: B).(\lambda (H10: (arity g (CHead d (Bind b0) t1) x1 
+(asucc g b))).(\lambda (H11: (drop (r (Bind b0) (plus i x2)) O d c0)).(let 
+TMP_193 \def (\lambda (d0: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_192 
+\def (plus i j) in (drop TMP_192 O d0 c0))))) in (let TMP_195 \def (\lambda 
+(d0: C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_194 \def (asucc g b) in 
+(arity g d0 u0 TMP_194))))) in (let TMP_196 \def (Bind b0) in (let TMP_197 
+\def (CHead d TMP_196 t1) in (let TMP_198 \def (S x2) in (let TMP_199 \def 
+(plus i x2) in (let TMP_200 \def (S TMP_199) in (let TMP_203 \def (\lambda 
+(n: nat).(let TMP_201 \def (Bind b0) in (let TMP_202 \def (CHead d TMP_201 
+t1) in (drop n O TMP_202 c0)))) in (let TMP_204 \def (Bind b0) in (let 
+TMP_205 \def (plus i x2) in (let TMP_206 \def (drop_drop TMP_204 TMP_205 d c0 
+H11 t1) in (let TMP_207 \def (S x2) in (let TMP_208 \def (plus i TMP_207) in 
+(let TMP_209 \def (plus_n_Sm i x2) in (let TMP_210 \def (eq_ind nat TMP_200 
+TMP_203 TMP_206 TMP_208 TMP_209) in (ex2_3_intro C T nat TMP_193 TMP_195 
+TMP_197 x1 TMP_198 TMP_210 H10))))))))))))))))))) in (let TMP_231 \def 
+(\lambda (f: F).(\lambda (H10: (arity g (CHead d (Flat f) t1) x1 (asucc g 
+b))).(\lambda (H11: (drop (r (Flat f) (plus i x2)) O d c0)).(let TMP_212 \def 
+(Flat f) in (let TMP_213 \def (CHead d TMP_212 t1) in (let TMP_214 \def 
+(asucc g b) in (let TMP_215 \def (cimp_flat_sx f d t1) in (let TMP_216 \def 
+(arity_cimp_conf g TMP_213 x1 TMP_214 H10 d TMP_215) in (let H12 \def (IHd 
+H11 TMP_216) in (let TMP_218 \def (\lambda (d0: C).(\lambda (_: T).(\lambda 
+(j: nat).(let TMP_217 \def (plus i j) in (drop TMP_217 O d0 c0))))) in (let 
+TMP_220 \def (\lambda (d0: C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_219 
+\def (asucc g b) in (arity g d0 u0 TMP_219))))) in (let TMP_222 \def (\lambda 
+(d0: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_221 \def (plus i j) in 
+(drop TMP_221 O d0 c0))))) in (let TMP_224 \def (\lambda (d0: C).(\lambda 
+(u0: T).(\lambda (_: nat).(let TMP_223 \def (asucc g b) in (arity g d0 u0 
+TMP_223))))) in (let TMP_225 \def (ex2_3 C T nat TMP_222 TMP_224) in (let 
+TMP_230 \def (\lambda (x3: C).(\lambda (x4: T).(\lambda (x5: nat).(\lambda 
+(H13: (drop (plus i x5) O x3 c0)).(\lambda (H14: (arity g x3 x4 (asucc g 
+b))).(let TMP_227 \def (\lambda (d0: C).(\lambda (_: T).(\lambda (j: 
+nat).(let TMP_226 \def (plus i j) in (drop TMP_226 O d0 c0))))) in (let 
+TMP_229 \def (\lambda (d0: C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_228 
+\def (asucc g b) in (arity g d0 u0 TMP_228))))) in (ex2_3_intro C T nat 
+TMP_227 TMP_229 x3 x4 x5 H13 H14)))))))) in (ex2_3_ind C T nat TMP_218 
+TMP_220 TMP_225 TMP_230 H12)))))))))))))))) in (let TMP_232 \def (plus i x2) 
+in (let TMP_233 \def (drop_gen_drop k d c0 t1 TMP_232 H8) in (K_ind TMP_191 
+TMP_211 TMP_231 k H9 TMP_233)))))))))))) in (C_ind TMP_162 TMP_186 TMP_234 x0 
+H6 H7))))))))) in (ex2_3_ind C T nat TMP_150 TMP_152 TMP_157 TMP_235 
+H5))))))))))))))))))))))) in (let TMP_251 \def (\lambda (c0: C).(\lambda (u: 
+T).(\lambda (a0: A).(\lambda (_: (arity g c0 u (asucc g a0))).(\lambda (_: 
+((\forall (i: nat).(\forall (b: A).((aprem i (asucc g a0) b) \to (ex2_3 C T 
 nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i j) O d 
 c0)))) (\lambda (d: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d u0 
-(asucc g b))))))))))).(\lambda (i: nat).(\lambda (b: A).(\lambda (H4: (aprem 
-i a2 b)).(let H5 \def (H3 (S i) b (aprem_succ a2 b i H4 a1)) in (ex2_3_ind C 
-T nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop (S (plus i j)) 
-O d c0)))) (\lambda (d: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d u0 
-(asucc g b))))) (ex2_3 C T nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: 
-nat).(drop (plus i j) O d c0)))) (\lambda (d: C).(\lambda (u0: T).(\lambda 
-(_: nat).(arity g d u0 (asucc g b)))))) (\lambda (x0: C).(\lambda (x1: 
-T).(\lambda (x2: nat).(\lambda (H6: (drop (S (plus i x2)) O x0 c0)).(\lambda 
-(H7: (arity g x0 x1 (asucc g b))).(C_ind (\lambda (c1: C).((drop (S (plus i 
-x2)) O c1 c0) \to ((arity g c1 x1 (asucc g b)) \to (ex2_3 C T nat (\lambda 
-(d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i j) O d c0)))) (\lambda 
-(d: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d u0 (asucc g b))))))))) 
-(\lambda (n: nat).(\lambda (H8: (drop (S (plus i x2)) O (CSort n) 
-c0)).(\lambda (_: (arity g (CSort n) x1 (asucc g b))).(and3_ind (eq C c0 
-(CSort n)) (eq nat (S (plus i x2)) O) (eq nat O O) (ex2_3 C T nat (\lambda 
-(d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i j) O d c0)))) (\lambda 
-(d: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d u0 (asucc g b)))))) 
-(\lambda (_: (eq C c0 (CSort n))).(\lambda (H11: (eq nat (S (plus i x2)) 
-O)).(\lambda (_: (eq nat O O)).(let H13 \def (eq_ind nat (S (plus i x2)) 
-(\lambda (ee: nat).(match ee in nat return (\lambda (_: nat).Prop) with [O 
-\Rightarrow False | (S _) \Rightarrow True])) I O H11) in (False_ind (ex2_3 C 
-T nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i j) O d 
-c0)))) (\lambda (d: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d u0 
-(asucc g b)))))) H13))))) (drop_gen_sort n (S (plus i x2)) O c0 H8))))) 
-(\lambda (d: C).(\lambda (IHd: (((drop (S (plus i x2)) O d c0) \to ((arity g 
-d x1 (asucc g b)) \to (ex2_3 C T nat (\lambda (d0: C).(\lambda (_: 
-T).(\lambda (j: nat).(drop (plus i j) O d0 c0)))) (\lambda (d0: C).(\lambda 
-(u0: T).(\lambda (_: nat).(arity g d0 u0 (asucc g b)))))))))).(\lambda (k: 
-K).(\lambda (t1: T).(\lambda (H8: (drop (S (plus i x2)) O (CHead d k t1) 
-c0)).(\lambda (H9: (arity g (CHead d k t1) x1 (asucc g b))).(K_ind (\lambda 
-(k0: K).((arity g (CHead d k0 t1) x1 (asucc g b)) \to ((drop (r k0 (plus i 
-x2)) O d c0) \to (ex2_3 C T nat (\lambda (d0: C).(\lambda (_: T).(\lambda (j: 
-nat).(drop (plus i j) O d0 c0)))) (\lambda (d0: C).(\lambda (u0: T).(\lambda 
-(_: nat).(arity g d0 u0 (asucc g b))))))))) (\lambda (b0: B).(\lambda (H10: 
-(arity g (CHead d (Bind b0) t1) x1 (asucc g b))).(\lambda (H11: (drop (r 
-(Bind b0) (plus i x2)) O d c0)).(ex2_3_intro C T nat (\lambda (d0: 
-C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i j) O d0 c0)))) (\lambda 
-(d0: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d0 u0 (asucc g b))))) 
-(CHead d (Bind b0) t1) x1 (S x2) (eq_ind nat (S (plus i x2)) (\lambda (n: 
-nat).(drop n O (CHead d (Bind b0) t1) c0)) (drop_drop (Bind b0) (plus i x2) d 
-c0 H11 t1) (plus i (S x2)) (plus_n_Sm i x2)) H10)))) (\lambda (f: F).(\lambda 
-(H10: (arity g (CHead d (Flat f) t1) x1 (asucc g b))).(\lambda (H11: (drop (r 
-(Flat f) (plus i x2)) O d c0)).(let H12 \def (IHd H11 (arity_cimp_conf g 
-(CHead d (Flat f) t1) x1 (asucc g b) H10 d (cimp_flat_sx f d t1))) in 
-(ex2_3_ind C T nat (\lambda (d0: C).(\lambda (_: T).(\lambda (j: nat).(drop 
-(plus i j) O d0 c0)))) (\lambda (d0: C).(\lambda (u0: T).(\lambda (_: 
-nat).(arity g d0 u0 (asucc g b))))) (ex2_3 C T nat (\lambda (d0: C).(\lambda 
-(_: T).(\lambda (j: nat).(drop (plus i j) O d0 c0)))) (\lambda (d0: 
-C).(\lambda (u0: T).(\lambda (_: nat).(arity g d0 u0 (asucc g b)))))) 
-(\lambda (x3: C).(\lambda (x4: T).(\lambda (x5: nat).(\lambda (H13: (drop 
-(plus i x5) O x3 c0)).(\lambda (H14: (arity g x3 x4 (asucc g 
-b))).(ex2_3_intro C T nat (\lambda (d0: C).(\lambda (_: T).(\lambda (j: 
-nat).(drop (plus i j) O d0 c0)))) (\lambda (d0: C).(\lambda (u0: T).(\lambda 
-(_: nat).(arity g d0 u0 (asucc g b))))) x3 x4 x5 H13 H14)))))) H12))))) k H9 
-(drop_gen_drop k d c0 t1 (plus i x2) H8)))))))) x0 H6 H7)))))) 
-H5)))))))))))))) (\lambda (c0: C).(\lambda (u: T).(\lambda (a0: A).(\lambda 
-(_: (arity g c0 u (asucc g a0))).(\lambda (_: ((\forall (i: nat).(\forall (b: 
-A).((aprem i (asucc g a0) b) \to (ex2_3 C T nat (\lambda (d: C).(\lambda (_: 
-T).(\lambda (j: nat).(drop (plus i j) O d c0)))) (\lambda (d: C).(\lambda 
-(u0: T).(\lambda (_: nat).(arity g d u0 (asucc g b))))))))))).(\lambda (t0: 
-T).(\lambda (_: (arity g c0 t0 a0)).(\lambda (H3: ((\forall (i: nat).(\forall 
-(b: A).((aprem i a0 b) \to (ex2_3 C T nat (\lambda (d: C).(\lambda (_: 
-T).(\lambda (j: nat).(drop (plus i j) O d c0)))) (\lambda (d: C).(\lambda 
-(u0: T).(\lambda (_: nat).(arity g d u0 (asucc g b))))))))))).(\lambda (i: 
-nat).(\lambda (b: A).(\lambda (H4: (aprem i a0 b)).(let H_x \def (H3 i b H4) 
-in (let H5 \def H_x in (ex2_3_ind C T nat (\lambda (d: C).(\lambda (_: 
-T).(\lambda (j: nat).(drop (plus i j) O d c0)))) (\lambda (d: C).(\lambda 
-(u0: T).(\lambda (_: nat).(arity g d u0 (asucc g b))))) (ex2_3 C T nat 
-(\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i j) O d c0)))) 
-(\lambda (d: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d u0 (asucc g 
-b)))))) (\lambda (x0: C).(\lambda (x1: T).(\lambda (x2: nat).(\lambda (H6: 
-(drop (plus i x2) O x0 c0)).(\lambda (H7: (arity g x0 x1 (asucc g 
-b))).(ex2_3_intro C T nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: 
-nat).(drop (plus i j) O d c0)))) (\lambda (d: C).(\lambda (u0: T).(\lambda 
-(_: nat).(arity g d u0 (asucc g b))))) x0 x1 x2 H6 H7)))))) H5)))))))))))))) 
-(\lambda (c0: C).(\lambda (t0: T).(\lambda (a1: A).(\lambda (_: (arity g c0 
-t0 a1)).(\lambda (H1: ((\forall (i: nat).(\forall (b: A).((aprem i a1 b) \to 
+(asucc g b))))))))))).(\lambda (t0: T).(\lambda (_: (arity g c0 t0 
+a0)).(\lambda (H3: ((\forall (i: nat).(\forall (b: A).((aprem i a0 b) \to 
 (ex2_3 C T nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus 
-i j) O d c0)))) (\lambda (d: C).(\lambda (u: T).(\lambda (_: nat).(arity g d 
-u (asucc g b))))))))))).(\lambda (a2: A).(\lambda (H2: (leq g a1 
-a2)).(\lambda (i: nat).(\lambda (b: A).(\lambda (H3: (aprem i a2 b)).(let H_x 
-\def (aprem_repl g a1 a2 H2 i b H3) in (let H4 \def H_x in (ex2_ind A 
-(\lambda (b1: A).(leq g b1 b)) (\lambda (b1: A).(aprem i a1 b1)) (ex2_3 C T 
-nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i j) O d 
-c0)))) (\lambda (d: C).(\lambda (u: T).(\lambda (_: nat).(arity g d u (asucc 
-g b)))))) (\lambda (x: A).(\lambda (H5: (leq g x b)).(\lambda (H6: (aprem i 
-a1 x)).(let H_x0 \def (H1 i x H6) in (let H7 \def H_x0 in (ex2_3_ind C T nat 
-(\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i j) O d c0)))) 
-(\lambda (d: C).(\lambda (u: T).(\lambda (_: nat).(arity g d u (asucc g 
-x))))) (ex2_3 C T nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop 
-(plus i j) O d c0)))) (\lambda (d: C).(\lambda (u: T).(\lambda (_: 
-nat).(arity g d u (asucc g b)))))) (\lambda (x0: C).(\lambda (x1: T).(\lambda 
-(x2: nat).(\lambda (H8: (drop (plus i x2) O x0 c0)).(\lambda (H9: (arity g x0 
-x1 (asucc g x))).(ex2_3_intro C T nat (\lambda (d: C).(\lambda (_: 
+i j) O d c0)))) (\lambda (d: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d 
+u0 (asucc g b))))))))))).(\lambda (i: nat).(\lambda (b: A).(\lambda (H4: 
+(aprem i a0 b)).(let H_x \def (H3 i b H4) in (let H5 \def H_x in (let TMP_238 
+\def (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_237 \def 
+(plus i j) in (drop TMP_237 O d c0))))) in (let TMP_240 \def (\lambda (d: 
+C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_239 \def (asucc g b) in (arity 
+g d u0 TMP_239))))) in (let TMP_242 \def (\lambda (d: C).(\lambda (_: 
+T).(\lambda (j: nat).(let TMP_241 \def (plus i j) in (drop TMP_241 O d 
+c0))))) in (let TMP_244 \def (\lambda (d: C).(\lambda (u0: T).(\lambda (_: 
+nat).(let TMP_243 \def (asucc g b) in (arity g d u0 TMP_243))))) in (let 
+TMP_245 \def (ex2_3 C T nat TMP_242 TMP_244) in (let TMP_250 \def (\lambda 
+(x0: C).(\lambda (x1: T).(\lambda (x2: nat).(\lambda (H6: (drop (plus i x2) O 
+x0 c0)).(\lambda (H7: (arity g x0 x1 (asucc g b))).(let TMP_247 \def (\lambda 
+(d: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_246 \def (plus i j) in 
+(drop TMP_246 O d c0))))) in (let TMP_249 \def (\lambda (d: C).(\lambda (u0: 
+T).(\lambda (_: nat).(let TMP_248 \def (asucc g b) in (arity g d u0 
+TMP_248))))) in (ex2_3_intro C T nat TMP_247 TMP_249 x0 x1 x2 H6 H7)))))))) 
+in (ex2_3_ind C T nat TMP_238 TMP_240 TMP_245 TMP_250 H5)))))))))))))))))))) 
+in (let TMP_278 \def (\lambda (c0: C).(\lambda (t0: T).(\lambda (a1: 
+A).(\lambda (_: (arity g c0 t0 a1)).(\lambda (H1: ((\forall (i: nat).(\forall 
+(b: A).((aprem i a1 b) \to (ex2_3 C T nat (\lambda (d: C).(\lambda (_: 
 T).(\lambda (j: nat).(drop (plus i j) O d c0)))) (\lambda (d: C).(\lambda (u: 
-T).(\lambda (_: nat).(arity g d u (asucc g b))))) x0 x1 x2 H8 (arity_repl g 
-x0 x1 (asucc g x) H9 (asucc g b) (asucc_repl g x b H5)))))))) H7)))))) 
-H4))))))))))))) c t a H))))).
-(* COMMENTS
-Initial nodes: 4526
-END *)
+T).(\lambda (_: nat).(arity g d u (asucc g b))))))))))).(\lambda (a2: 
+A).(\lambda (H2: (leq g a1 a2)).(\lambda (i: nat).(\lambda (b: A).(\lambda 
+(H3: (aprem i a2 b)).(let H_x \def (aprem_repl g a1 a2 H2 i b H3) in (let H4 
+\def H_x in (let TMP_252 \def (\lambda (b1: A).(leq g b1 b)) in (let TMP_253 
+\def (\lambda (b1: A).(aprem i a1 b1)) in (let TMP_255 \def (\lambda (d: 
+C).(\lambda (_: T).(\lambda (j: nat).(let TMP_254 \def (plus i j) in (drop 
+TMP_254 O d c0))))) in (let TMP_257 \def (\lambda (d: C).(\lambda (u: 
+T).(\lambda (_: nat).(let TMP_256 \def (asucc g b) in (arity g d u 
+TMP_256))))) in (let TMP_258 \def (ex2_3 C T nat TMP_255 TMP_257) in (let 
+TMP_277 \def (\lambda (x: A).(\lambda (H5: (leq g x b)).(\lambda (H6: (aprem 
+i a1 x)).(let H_x0 \def (H1 i x H6) in (let H7 \def H_x0 in (let TMP_260 \def 
+(\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_259 \def (plus i 
+j) in (drop TMP_259 O d c0))))) in (let TMP_262 \def (\lambda (d: C).(\lambda 
+(u: T).(\lambda (_: nat).(let TMP_261 \def (asucc g x) in (arity g d u 
+TMP_261))))) in (let TMP_264 \def (\lambda (d: C).(\lambda (_: T).(\lambda 
+(j: nat).(let TMP_263 \def (plus i j) in (drop TMP_263 O d c0))))) in (let 
+TMP_266 \def (\lambda (d: C).(\lambda (u: T).(\lambda (_: nat).(let TMP_265 
+\def (asucc g b) in (arity g d u TMP_265))))) in (let TMP_267 \def (ex2_3 C T 
+nat TMP_264 TMP_266) in (let TMP_276 \def (\lambda (x0: C).(\lambda (x1: 
+T).(\lambda (x2: nat).(\lambda (H8: (drop (plus i x2) O x0 c0)).(\lambda (H9: 
+(arity g x0 x1 (asucc g x))).(let TMP_269 \def (\lambda (d: C).(\lambda (_: 
+T).(\lambda (j: nat).(let TMP_268 \def (plus i j) in (drop TMP_268 O d 
+c0))))) in (let TMP_271 \def (\lambda (d: C).(\lambda (u: T).(\lambda (_: 
+nat).(let TMP_270 \def (asucc g b) in (arity g d u TMP_270))))) in (let 
+TMP_272 \def (asucc g x) in (let TMP_273 \def (asucc g b) in (let TMP_274 
+\def (asucc_repl g x b H5) in (let TMP_275 \def (arity_repl g x0 x1 TMP_272 
+H9 TMP_273 TMP_274) in (ex2_3_intro C T nat TMP_269 TMP_271 x0 x1 x2 H8 
+TMP_275)))))))))))) in (ex2_3_ind C T nat TMP_260 TMP_262 TMP_267 TMP_276 
+H7)))))))))))) in (ex2_ind A TMP_252 TMP_253 TMP_258 TMP_277 
+H4))))))))))))))))))) in (arity_ind g TMP_5 TMP_11 TMP_45 TMP_80 TMP_106 
+TMP_145 TMP_236 TMP_251 TMP_278 c t a H)))))))))))))).
 
index c6212ac15a24b90c46db976861c3af1de5b18a0e..dfa771c6b3861ff5e86b1e28fa6c612037ea6c09 100644 (file)
 
 (* This file was automatically generated: do not edit *********************)
 
-include "Basic-1/arity/defs.ma".
+include "basic_1/arity/fwd.ma".
 
-include "Basic-1/cimp/props.ma".
+include "basic_1/cimp/props.ma".
 
 theorem arity_cimp_conf:
  \forall (g: G).(\forall (c1: C).(\forall (t: T).(\forall (a: A).((arity g c1 
 t a) \to (\forall (c2: C).((cimp c1 c2) \to (arity g c2 t a)))))))
 \def
  \lambda (g: G).(\lambda (c1: C).(\lambda (t: T).(\lambda (a: A).(\lambda (H: 
-(arity g c1 t a)).(arity_ind g (\lambda (c: C).(\lambda (t0: T).(\lambda (a0: 
-A).(\forall (c2: C).((cimp c c2) \to (arity g c2 t0 a0)))))) (\lambda (c: 
-C).(\lambda (n: nat).(\lambda (c2: C).(\lambda (_: (cimp c c2)).(arity_sort g 
-c2 n))))) (\lambda (c: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: 
-nat).(\lambda (H0: (getl i c (CHead d (Bind Abbr) u))).(\lambda (a0: 
-A).(\lambda (_: (arity g d u a0)).(\lambda (H2: ((\forall (c2: C).((cimp d 
-c2) \to (arity g c2 u a0))))).(\lambda (c2: C).(\lambda (H3: (cimp c 
-c2)).(let H_x \def (H3 Abbr d u i H0) in (let H4 \def H_x in (ex_ind C 
-(\lambda (d2: C).(getl i c2 (CHead d2 (Bind Abbr) u))) (arity g c2 (TLRef i) 
-a0) (\lambda (x: C).(\lambda (H5: (getl i c2 (CHead x (Bind Abbr) u))).(let 
-H_x0 \def (cimp_getl_conf c c2 H3 Abbr d u i H0) in (let H6 \def H_x0 in 
-(ex2_ind C (\lambda (d2: C).(cimp d d2)) (\lambda (d2: C).(getl i c2 (CHead 
-d2 (Bind Abbr) u))) (arity g c2 (TLRef i) a0) (\lambda (x0: C).(\lambda (H7: 
-(cimp d x0)).(\lambda (H8: (getl i c2 (CHead x0 (Bind Abbr) u))).(let H9 \def 
-(eq_ind C (CHead x (Bind Abbr) u) (\lambda (c0: C).(getl i c2 c0)) H5 (CHead 
-x0 (Bind Abbr) u) (getl_mono c2 (CHead x (Bind Abbr) u) i H5 (CHead x0 (Bind 
-Abbr) u) H8)) in (let H10 \def (f_equal C C (\lambda (e: C).(match e in C 
-return (\lambda (_: C).C) with [(CSort _) \Rightarrow x | (CHead c0 _ _) 
-\Rightarrow c0])) (CHead x (Bind Abbr) u) (CHead x0 (Bind Abbr) u) (getl_mono 
-c2 (CHead x (Bind Abbr) u) i H5 (CHead x0 (Bind Abbr) u) H8)) in (let H11 
-\def (eq_ind_r C x0 (\lambda (c0: C).(getl i c2 (CHead c0 (Bind Abbr) u))) H9 
-x H10) in (let H12 \def (eq_ind_r C x0 (\lambda (c0: C).(cimp d c0)) H7 x 
-H10) in (arity_abbr g c2 x u i H11 a0 (H2 x H12))))))))) H6))))) 
-H4))))))))))))) (\lambda (c: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: 
-nat).(\lambda (H0: (getl i c (CHead d (Bind Abst) u))).(\lambda (a0: 
-A).(\lambda (_: (arity g d u (asucc g a0))).(\lambda (H2: ((\forall (c2: 
-C).((cimp d c2) \to (arity g c2 u (asucc g a0)))))).(\lambda (c2: C).(\lambda 
-(H3: (cimp c c2)).(let H_x \def (H3 Abst d u i H0) in (let H4 \def H_x in 
-(ex_ind C (\lambda (d2: C).(getl i c2 (CHead d2 (Bind Abst) u))) (arity g c2 
-(TLRef i) a0) (\lambda (x: C).(\lambda (H5: (getl i c2 (CHead x (Bind Abst) 
-u))).(let H_x0 \def (cimp_getl_conf c c2 H3 Abst d u i H0) in (let H6 \def 
-H_x0 in (ex2_ind C (\lambda (d2: C).(cimp d d2)) (\lambda (d2: C).(getl i c2 
-(CHead d2 (Bind Abst) u))) (arity g c2 (TLRef i) a0) (\lambda (x0: 
-C).(\lambda (H7: (cimp d x0)).(\lambda (H8: (getl i c2 (CHead x0 (Bind Abst) 
-u))).(let H9 \def (eq_ind C (CHead x (Bind Abst) u) (\lambda (c0: C).(getl i 
-c2 c0)) H5 (CHead x0 (Bind Abst) u) (getl_mono c2 (CHead x (Bind Abst) u) i 
-H5 (CHead x0 (Bind Abst) u) H8)) in (let H10 \def (f_equal C C (\lambda (e: 
-C).(match e in C return (\lambda (_: C).C) with [(CSort _) \Rightarrow x | 
-(CHead c0 _ _) \Rightarrow c0])) (CHead x (Bind Abst) u) (CHead x0 (Bind 
-Abst) u) (getl_mono c2 (CHead x (Bind Abst) u) i H5 (CHead x0 (Bind Abst) u) 
-H8)) in (let H11 \def (eq_ind_r C x0 (\lambda (c0: C).(getl i c2 (CHead c0 
-(Bind Abst) u))) H9 x H10) in (let H12 \def (eq_ind_r C x0 (\lambda (c0: 
-C).(cimp d c0)) H7 x H10) in (arity_abst g c2 x u i H11 a0 (H2 x H12))))))))) 
-H6))))) H4))))))))))))) (\lambda (b: B).(\lambda (H0: (not (eq B b 
-Abst))).(\lambda (c: C).(\lambda (u: T).(\lambda (a1: A).(\lambda (_: (arity 
-g c u a1)).(\lambda (H2: ((\forall (c2: C).((cimp c c2) \to (arity g c2 u 
-a1))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda (_: (arity g (CHead c 
-(Bind b) u) t0 a2)).(\lambda (H4: ((\forall (c2: C).((cimp (CHead c (Bind b) 
-u) c2) \to (arity g c2 t0 a2))))).(\lambda (c2: C).(\lambda (H5: (cimp c 
-c2)).(arity_bind g b H0 c2 u a1 (H2 c2 H5) t0 a2 (H4 (CHead c2 (Bind b) u) 
-(cimp_bind c c2 H5 b u)))))))))))))))) (\lambda (c: C).(\lambda (u: 
-T).(\lambda (a1: A).(\lambda (_: (arity g c u (asucc g a1))).(\lambda (H1: 
-((\forall (c2: C).((cimp c c2) \to (arity g c2 u (asucc g a1)))))).(\lambda 
-(t0: T).(\lambda (a2: A).(\lambda (_: (arity g (CHead c (Bind Abst) u) t0 
-a2)).(\lambda (H3: ((\forall (c2: C).((cimp (CHead c (Bind Abst) u) c2) \to 
-(arity g c2 t0 a2))))).(\lambda (c2: C).(\lambda (H4: (cimp c 
-c2)).(arity_head g c2 u a1 (H1 c2 H4) t0 a2 (H3 (CHead c2 (Bind Abst) u) 
-(cimp_bind c c2 H4 Abst u)))))))))))))) (\lambda (c: C).(\lambda (u: 
-T).(\lambda (a1: A).(\lambda (_: (arity g c u a1)).(\lambda (H1: ((\forall 
+(arity g c1 t a)).(let TMP_1 \def (\lambda (c: C).(\lambda (t0: T).(\lambda 
+(a0: A).(\forall (c2: C).((cimp c c2) \to (arity g c2 t0 a0)))))) in (let 
+TMP_2 \def (\lambda (c: C).(\lambda (n: nat).(\lambda (c2: C).(\lambda (_: 
+(cimp c c2)).(arity_sort g c2 n))))) in (let TMP_41 \def (\lambda (c: 
+C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: nat).(\lambda (H0: (getl i c 
+(CHead d (Bind Abbr) u))).(\lambda (a0: A).(\lambda (_: (arity g d u 
+a0)).(\lambda (H2: ((\forall (c2: C).((cimp d c2) \to (arity g c2 u 
+a0))))).(\lambda (c2: C).(\lambda (H3: (cimp c c2)).(let H_x \def (H3 Abbr d 
+u i H0) in (let H4 \def H_x in (let TMP_5 \def (\lambda (d2: C).(let TMP_3 
+\def (Bind Abbr) in (let TMP_4 \def (CHead d2 TMP_3 u) in (getl i c2 
+TMP_4)))) in (let TMP_6 \def (TLRef i) in (let TMP_7 \def (arity g c2 TMP_6 
+a0) in (let TMP_40 \def (\lambda (x: C).(\lambda (H5: (getl i c2 (CHead x 
+(Bind Abbr) u))).(let H_x0 \def (cimp_getl_conf c c2 H3 Abbr d u i H0) in 
+(let H6 \def H_x0 in (let TMP_8 \def (\lambda (d2: C).(cimp d d2)) in (let 
+TMP_11 \def (\lambda (d2: C).(let TMP_9 \def (Bind Abbr) in (let TMP_10 \def 
+(CHead d2 TMP_9 u) in (getl i c2 TMP_10)))) in (let TMP_12 \def (TLRef i) in 
+(let TMP_13 \def (arity g c2 TMP_12 a0) in (let TMP_39 \def (\lambda (x0: 
+C).(\lambda (H7: (cimp d x0)).(\lambda (H8: (getl i c2 (CHead x0 (Bind Abbr) 
+u))).(let TMP_14 \def (Bind Abbr) in (let TMP_15 \def (CHead x TMP_14 u) in 
+(let TMP_16 \def (\lambda (c0: C).(getl i c2 c0)) in (let TMP_17 \def (Bind 
+Abbr) in (let TMP_18 \def (CHead x0 TMP_17 u) in (let TMP_19 \def (Bind Abbr) 
+in (let TMP_20 \def (CHead x TMP_19 u) in (let TMP_21 \def (Bind Abbr) in 
+(let TMP_22 \def (CHead x0 TMP_21 u) in (let TMP_23 \def (getl_mono c2 TMP_20 
+i H5 TMP_22 H8) in (let H9 \def (eq_ind C TMP_15 TMP_16 H5 TMP_18 TMP_23) in 
+(let TMP_24 \def (\lambda (e: C).(match e with [(CSort _) \Rightarrow x | 
+(CHead c0 _ _) \Rightarrow c0])) in (let TMP_25 \def (Bind Abbr) in (let 
+TMP_26 \def (CHead x TMP_25 u) in (let TMP_27 \def (Bind Abbr) in (let TMP_28 
+\def (CHead x0 TMP_27 u) in (let TMP_29 \def (Bind Abbr) in (let TMP_30 \def 
+(CHead x TMP_29 u) in (let TMP_31 \def (Bind Abbr) in (let TMP_32 \def (CHead 
+x0 TMP_31 u) in (let TMP_33 \def (getl_mono c2 TMP_30 i H5 TMP_32 H8) in (let 
+H10 \def (f_equal C C TMP_24 TMP_26 TMP_28 TMP_33) in (let TMP_36 \def 
+(\lambda (c0: C).(let TMP_34 \def (Bind Abbr) in (let TMP_35 \def (CHead c0 
+TMP_34 u) in (getl i c2 TMP_35)))) in (let H11 \def (eq_ind_r C x0 TMP_36 H9 
+x H10) in (let TMP_37 \def (\lambda (c0: C).(cimp d c0)) in (let H12 \def 
+(eq_ind_r C x0 TMP_37 H7 x H10) in (let TMP_38 \def (H2 x H12) in (arity_abbr 
+g c2 x u i H11 a0 TMP_38))))))))))))))))))))))))))))))) in (ex2_ind C TMP_8 
+TMP_11 TMP_13 TMP_39 H6)))))))))) in (ex_ind C TMP_5 TMP_7 TMP_40 
+H4))))))))))))))))) in (let TMP_80 \def (\lambda (c: C).(\lambda (d: 
+C).(\lambda (u: T).(\lambda (i: nat).(\lambda (H0: (getl i c (CHead d (Bind 
+Abst) u))).(\lambda (a0: A).(\lambda (_: (arity g d u (asucc g a0))).(\lambda 
+(H2: ((\forall (c2: C).((cimp d c2) \to (arity g c2 u (asucc g 
+a0)))))).(\lambda (c2: C).(\lambda (H3: (cimp c c2)).(let H_x \def (H3 Abst d 
+u i H0) in (let H4 \def H_x in (let TMP_44 \def (\lambda (d2: C).(let TMP_42 
+\def (Bind Abst) in (let TMP_43 \def (CHead d2 TMP_42 u) in (getl i c2 
+TMP_43)))) in (let TMP_45 \def (TLRef i) in (let TMP_46 \def (arity g c2 
+TMP_45 a0) in (let TMP_79 \def (\lambda (x: C).(\lambda (H5: (getl i c2 
+(CHead x (Bind Abst) u))).(let H_x0 \def (cimp_getl_conf c c2 H3 Abst d u i 
+H0) in (let H6 \def H_x0 in (let TMP_47 \def (\lambda (d2: C).(cimp d d2)) in 
+(let TMP_50 \def (\lambda (d2: C).(let TMP_48 \def (Bind Abst) in (let TMP_49 
+\def (CHead d2 TMP_48 u) in (getl i c2 TMP_49)))) in (let TMP_51 \def (TLRef 
+i) in (let TMP_52 \def (arity g c2 TMP_51 a0) in (let TMP_78 \def (\lambda 
+(x0: C).(\lambda (H7: (cimp d x0)).(\lambda (H8: (getl i c2 (CHead x0 (Bind 
+Abst) u))).(let TMP_53 \def (Bind Abst) in (let TMP_54 \def (CHead x TMP_53 
+u) in (let TMP_55 \def (\lambda (c0: C).(getl i c2 c0)) in (let TMP_56 \def 
+(Bind Abst) in (let TMP_57 \def (CHead x0 TMP_56 u) in (let TMP_58 \def (Bind 
+Abst) in (let TMP_59 \def (CHead x TMP_58 u) in (let TMP_60 \def (Bind Abst) 
+in (let TMP_61 \def (CHead x0 TMP_60 u) in (let TMP_62 \def (getl_mono c2 
+TMP_59 i H5 TMP_61 H8) in (let H9 \def (eq_ind C TMP_54 TMP_55 H5 TMP_57 
+TMP_62) in (let TMP_63 \def (\lambda (e: C).(match e with [(CSort _) 
+\Rightarrow x | (CHead c0 _ _) \Rightarrow c0])) in (let TMP_64 \def (Bind 
+Abst) in (let TMP_65 \def (CHead x TMP_64 u) in (let TMP_66 \def (Bind Abst) 
+in (let TMP_67 \def (CHead x0 TMP_66 u) in (let TMP_68 \def (Bind Abst) in 
+(let TMP_69 \def (CHead x TMP_68 u) in (let TMP_70 \def (Bind Abst) in (let 
+TMP_71 \def (CHead x0 TMP_70 u) in (let TMP_72 \def (getl_mono c2 TMP_69 i H5 
+TMP_71 H8) in (let H10 \def (f_equal C C TMP_63 TMP_65 TMP_67 TMP_72) in (let 
+TMP_75 \def (\lambda (c0: C).(let TMP_73 \def (Bind Abst) in (let TMP_74 \def 
+(CHead c0 TMP_73 u) in (getl i c2 TMP_74)))) in (let H11 \def (eq_ind_r C x0 
+TMP_75 H9 x H10) in (let TMP_76 \def (\lambda (c0: C).(cimp d c0)) in (let 
+H12 \def (eq_ind_r C x0 TMP_76 H7 x H10) in (let TMP_77 \def (H2 x H12) in 
+(arity_abst g c2 x u i H11 a0 TMP_77))))))))))))))))))))))))))))))) in 
+(ex2_ind C TMP_47 TMP_50 TMP_52 TMP_78 H6)))))))))) in (ex_ind C TMP_44 
+TMP_46 TMP_79 H4))))))))))))))))) in (let TMP_86 \def (\lambda (b: 
+B).(\lambda (H0: (not (eq B b Abst))).(\lambda (c: C).(\lambda (u: 
+T).(\lambda (a1: A).(\lambda (_: (arity g c u a1)).(\lambda (H2: ((\forall 
 (c2: C).((cimp c c2) \to (arity g c2 u a1))))).(\lambda (t0: T).(\lambda (a2: 
-A).(\lambda (_: (arity g c t0 (AHead a1 a2))).(\lambda (H3: ((\forall (c2: 
-C).((cimp c c2) \to (arity g c2 t0 (AHead a1 a2)))))).(\lambda (c2: 
-C).(\lambda (H4: (cimp c c2)).(arity_appl g c2 u a1 (H1 c2 H4) t0 a2 (H3 c2 
-H4))))))))))))) (\lambda (c: C).(\lambda (u: T).(\lambda (a0: A).(\lambda (_: 
-(arity g c u (asucc g a0))).(\lambda (H1: ((\forall (c2: C).((cimp c c2) \to 
-(arity g c2 u (asucc g a0)))))).(\lambda (t0: T).(\lambda (_: (arity g c t0 
-a0)).(\lambda (H3: ((\forall (c2: C).((cimp c c2) \to (arity g c2 t0 
-a0))))).(\lambda (c2: C).(\lambda (H4: (cimp c c2)).(arity_cast g c2 u a0 (H1 
-c2 H4) t0 (H3 c2 H4)))))))))))) (\lambda (c: C).(\lambda (t0: T).(\lambda 
-(a1: A).(\lambda (_: (arity g c t0 a1)).(\lambda (H1: ((\forall (c2: 
-C).((cimp c c2) \to (arity g c2 t0 a1))))).(\lambda (a2: A).(\lambda (H2: 
-(leq g a1 a2)).(\lambda (c2: C).(\lambda (H3: (cimp c c2)).(arity_repl g c2 
-t0 a1 (H1 c2 H3) a2 H2)))))))))) c1 t a H))))).
-(* COMMENTS
-Initial nodes: 1505
-END *)
+A).(\lambda (_: (arity g (CHead c (Bind b) u) t0 a2)).(\lambda (H4: ((\forall 
+(c2: C).((cimp (CHead c (Bind b) u) c2) \to (arity g c2 t0 a2))))).(\lambda 
+(c2: C).(\lambda (H5: (cimp c c2)).(let TMP_81 \def (H2 c2 H5) in (let TMP_82 
+\def (Bind b) in (let TMP_83 \def (CHead c2 TMP_82 u) in (let TMP_84 \def 
+(cimp_bind c c2 H5 b u) in (let TMP_85 \def (H4 TMP_83 TMP_84) in (arity_bind 
+g b H0 c2 u a1 TMP_81 t0 a2 TMP_85))))))))))))))))))) in (let TMP_92 \def 
+(\lambda (c: C).(\lambda (u: T).(\lambda (a1: A).(\lambda (_: (arity g c u 
+(asucc g a1))).(\lambda (H1: ((\forall (c2: C).((cimp c c2) \to (arity g c2 u 
+(asucc g a1)))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda (_: (arity g 
+(CHead c (Bind Abst) u) t0 a2)).(\lambda (H3: ((\forall (c2: C).((cimp (CHead 
+c (Bind Abst) u) c2) \to (arity g c2 t0 a2))))).(\lambda (c2: C).(\lambda 
+(H4: (cimp c c2)).(let TMP_87 \def (H1 c2 H4) in (let TMP_88 \def (Bind Abst) 
+in (let TMP_89 \def (CHead c2 TMP_88 u) in (let TMP_90 \def (cimp_bind c c2 
+H4 Abst u) in (let TMP_91 \def (H3 TMP_89 TMP_90) in (arity_head g c2 u a1 
+TMP_87 t0 a2 TMP_91))))))))))))))))) in (let TMP_95 \def (\lambda (c: 
+C).(\lambda (u: T).(\lambda (a1: A).(\lambda (_: (arity g c u a1)).(\lambda 
+(H1: ((\forall (c2: C).((cimp c c2) \to (arity g c2 u a1))))).(\lambda (t0: 
+T).(\lambda (a2: A).(\lambda (_: (arity g c t0 (AHead a1 a2))).(\lambda (H3: 
+((\forall (c2: C).((cimp c c2) \to (arity g c2 t0 (AHead a1 a2)))))).(\lambda 
+(c2: C).(\lambda (H4: (cimp c c2)).(let TMP_93 \def (H1 c2 H4) in (let TMP_94 
+\def (H3 c2 H4) in (arity_appl g c2 u a1 TMP_93 t0 a2 TMP_94)))))))))))))) in 
+(let TMP_98 \def (\lambda (c: C).(\lambda (u: T).(\lambda (a0: A).(\lambda 
+(_: (arity g c u (asucc g a0))).(\lambda (H1: ((\forall (c2: C).((cimp c c2) 
+\to (arity g c2 u (asucc g a0)))))).(\lambda (t0: T).(\lambda (_: (arity g c 
+t0 a0)).(\lambda (H3: ((\forall (c2: C).((cimp c c2) \to (arity g c2 t0 
+a0))))).(\lambda (c2: C).(\lambda (H4: (cimp c c2)).(let TMP_96 \def (H1 c2 
+H4) in (let TMP_97 \def (H3 c2 H4) in (arity_cast g c2 u a0 TMP_96 t0 
+TMP_97))))))))))))) in (let TMP_100 \def (\lambda (c: C).(\lambda (t0: 
+T).(\lambda (a1: A).(\lambda (_: (arity g c t0 a1)).(\lambda (H1: ((\forall 
+(c2: C).((cimp c c2) \to (arity g c2 t0 a1))))).(\lambda (a2: A).(\lambda 
+(H2: (leq g a1 a2)).(\lambda (c2: C).(\lambda (H3: (cimp c c2)).(let TMP_99 
+\def (H1 c2 H3) in (arity_repl g c2 t0 a1 TMP_99 a2 H2))))))))))) in 
+(arity_ind g TMP_1 TMP_2 TMP_41 TMP_80 TMP_86 TMP_92 TMP_95 TMP_98 TMP_100 c1 
+t a H)))))))))))))).
 
index 99324dcbcc76555a201eb0fe938b669baaab197a..b193fac10c7db4d8837f614e095ccc703355fc09 100644 (file)
@@ -14,9 +14,9 @@
 
 (* This file was automatically generated: do not edit *********************)
 
-include "Basic-1/leq/defs.ma".
+include "basic_1/leq/defs.ma".
 
-include "Basic-1/getl/defs.ma".
+include "basic_1/getl/defs.ma".
 
 inductive arity (g: G): C \to (T \to (A \to Prop)) \def
 | arity_sort: \forall (c: C).(\forall (n: nat).(arity g c (TSort n) (ASort O 
index 31fa35f3cdcaa17a0fb202118872d5e3dfe5caf0..77eaa993b56634e184558292170250e91edcb98f 100644 (file)
 
 (* This file was automatically generated: do not edit *********************)
 
-include "Basic-1/arity/defs.ma".
+include "basic_1/arity/defs.ma".
 
-include "Basic-1/leq/asucc.ma".
+include "basic_1/leq/asucc.ma".
 
-include "Basic-1/getl/drop.ma".
+include "basic_1/getl/drop.ma".
+
+let rec arity_ind (g: G) (P: (C \to (T \to (A \to Prop)))) (f: (\forall (c: 
+C).(\forall (n: nat).(P c (TSort n) (ASort O n))))) (f0: (\forall (c: 
+C).(\forall (d: C).(\forall (u: T).(\forall (i: nat).((getl i c (CHead d 
+(Bind Abbr) u)) \to (\forall (a: A).((arity g d u a) \to ((P d u a) \to (P c 
+(TLRef i) a)))))))))) (f1: (\forall (c: C).(\forall (d: C).(\forall (u: 
+T).(\forall (i: nat).((getl i c (CHead d (Bind Abst) u)) \to (\forall (a: 
+A).((arity g d u (asucc g a)) \to ((P d u (asucc g a)) \to (P c (TLRef i) 
+a)))))))))) (f2: (\forall (b: B).((not (eq B b Abst)) \to (\forall (c: 
+C).(\forall (u: T).(\forall (a1: A).((arity g c u a1) \to ((P c u a1) \to 
+(\forall (t: T).(\forall (a2: A).((arity g (CHead c (Bind b) u) t a2) \to ((P 
+(CHead c (Bind b) u) t a2) \to (P c (THead (Bind b) u t) a2))))))))))))) (f3: 
+(\forall (c: C).(\forall (u: T).(\forall (a1: A).((arity g c u (asucc g a1)) 
+\to ((P c u (asucc g a1)) \to (\forall (t: T).(\forall (a2: A).((arity g 
+(CHead c (Bind Abst) u) t a2) \to ((P (CHead c (Bind Abst) u) t a2) \to (P c 
+(THead (Bind Abst) u t) (AHead a1 a2)))))))))))) (f4: (\forall (c: 
+C).(\forall (u: T).(\forall (a1: A).((arity g c u a1) \to ((P c u a1) \to 
+(\forall (t: T).(\forall (a2: A).((arity g c t (AHead a1 a2)) \to ((P c t 
+(AHead a1 a2)) \to (P c (THead (Flat Appl) u t) a2))))))))))) (f5: (\forall 
+(c: C).(\forall (u: T).(\forall (a: A).((arity g c u (asucc g a)) \to ((P c u 
+(asucc g a)) \to (\forall (t: T).((arity g c t a) \to ((P c t a) \to (P c 
+(THead (Flat Cast) u t) a)))))))))) (f6: (\forall (c: C).(\forall (t: 
+T).(\forall (a1: A).((arity g c t a1) \to ((P c t a1) \to (\forall (a2: 
+A).((leq g a1 a2) \to (P c t a2))))))))) (c: C) (t: T) (a: A) (a0: arity g c 
+t a) on a0: P c t a \def match a0 with [(arity_sort c0 n) \Rightarrow (f c0 
+n) | (arity_abbr c0 d u i g0 a1 a2) \Rightarrow (f0 c0 d u i g0 a1 a2 
+((arity_ind g P f f0 f1 f2 f3 f4 f5 f6) d u a1 a2)) | (arity_abst c0 d u i g0 
+a1 a2) \Rightarrow (f1 c0 d u i g0 a1 a2 ((arity_ind g P f f0 f1 f2 f3 f4 f5 
+f6) d u (asucc g a1) a2)) | (arity_bind b n c0 u a1 a2 t0 a3 a4) \Rightarrow 
+(f2 b n c0 u a1 a2 ((arity_ind g P f f0 f1 f2 f3 f4 f5 f6) c0 u a1 a2) t0 a3 
+a4 ((arity_ind g P f f0 f1 f2 f3 f4 f5 f6) (CHead c0 (Bind b) u) t0 a3 a4)) | 
+(arity_head c0 u a1 a2 t0 a3 a4) \Rightarrow (f3 c0 u a1 a2 ((arity_ind g P f 
+f0 f1 f2 f3 f4 f5 f6) c0 u (asucc g a1) a2) t0 a3 a4 ((arity_ind g P f f0 f1 
+f2 f3 f4 f5 f6) (CHead c0 (Bind Abst) u) t0 a3 a4)) | (arity_appl c0 u a1 a2 
+t0 a3 a4) \Rightarrow (f4 c0 u a1 a2 ((arity_ind g P f f0 f1 f2 f3 f4 f5 f6) 
+c0 u a1 a2) t0 a3 a4 ((arity_ind g P f f0 f1 f2 f3 f4 f5 f6) c0 t0 (AHead a1 
+a3) a4)) | (arity_cast c0 u a1 a2 t0 a3) \Rightarrow (f5 c0 u a1 a2 
+((arity_ind g P f f0 f1 f2 f3 f4 f5 f6) c0 u (asucc g a1) a2) t0 a3 
+((arity_ind g P f f0 f1 f2 f3 f4 f5 f6) c0 t0 a1 a3)) | (arity_repl c0 t0 a1 
+a2 a3 l) \Rightarrow (f6 c0 t0 a1 a2 ((arity_ind g P f f0 f1 f2 f3 f4 f5 f6) 
+c0 t0 a1 a2) a3 l)].
 
 theorem arity_gen_sort:
  \forall (g: G).(\forall (c: C).(\forall (n: nat).(\forall (a: A).((arity g c 
@@ -30,49 +71,46 @@ c t a)) (\lambda (_: T).(leq g a (ASort O n))) (\lambda (y: T).(\lambda (H0:
 (arity g c y a)).(arity_ind g (\lambda (_: C).(\lambda (t: T).(\lambda (a0: 
 A).((eq T t (TSort n)) \to (leq g a0 (ASort O n)))))) (\lambda (_: 
 C).(\lambda (n0: nat).(\lambda (H1: (eq T (TSort n0) (TSort n))).(let H2 \def 
-(f_equal T nat (\lambda (e: T).(match e in T return (\lambda (_: T).nat) with 
-[(TSort n1) \Rightarrow n1 | (TLRef _) \Rightarrow n0 | (THead _ _ _) 
-\Rightarrow n0])) (TSort n0) (TSort n) H1) in (eq_ind_r nat n (\lambda (n1: 
-nat).(leq g (ASort O n1) (ASort O n))) (leq_refl g (ASort O n)) n0 H2))))) 
-(\lambda (c0: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: nat).(\lambda 
-(_: (getl i c0 (CHead d (Bind Abbr) u))).(\lambda (a0: A).(\lambda (_: (arity 
-g d u a0)).(\lambda (_: (((eq T u (TSort n)) \to (leq g a0 (ASort O 
-n))))).(\lambda (H4: (eq T (TLRef i) (TSort n))).(let H5 \def (eq_ind T 
-(TLRef i) (\lambda (ee: T).(match ee in T return (\lambda (_: T).Prop) with 
+(f_equal T nat (\lambda (e: T).(match e with [(TSort n1) \Rightarrow n1 | 
+(TLRef _) \Rightarrow n0 | (THead _ _ _) \Rightarrow n0])) (TSort n0) (TSort 
+n) H1) in (eq_ind_r nat n (\lambda (n1: nat).(leq g (ASort O n1) (ASort O 
+n))) (leq_refl g (ASort O n)) n0 H2))))) (\lambda (c0: C).(\lambda (d: 
+C).(\lambda (u: T).(\lambda (i: nat).(\lambda (_: (getl i c0 (CHead d (Bind 
+Abbr) u))).(\lambda (a0: A).(\lambda (_: (arity g d u a0)).(\lambda (_: (((eq 
+T u (TSort n)) \to (leq g a0 (ASort O n))))).(\lambda (H4: (eq T (TLRef i) 
+(TSort n))).(let H5 \def (eq_ind T (TLRef i) (\lambda (ee: T).(match ee with 
 [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow True | (THead _ _ _) 
 \Rightarrow False])) I (TSort n) H4) in (False_ind (leq g a0 (ASort O n)) 
 H5))))))))))) (\lambda (c0: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: 
 nat).(\lambda (_: (getl i c0 (CHead d (Bind Abst) u))).(\lambda (a0: 
 A).(\lambda (_: (arity g d u (asucc g a0))).(\lambda (_: (((eq T u (TSort n)) 
 \to (leq g (asucc g a0) (ASort O n))))).(\lambda (H4: (eq T (TLRef i) (TSort 
-n))).(let H5 \def (eq_ind T (TLRef i) (\lambda (ee: T).(match ee in T return 
-(\lambda (_: T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) 
-\Rightarrow True | (THead _ _ _) \Rightarrow False])) I (TSort n) H4) in 
-(False_ind (leq g a0 (ASort O n)) H5))))))))))) (\lambda (b: B).(\lambda (_: 
-(not (eq B b Abst))).(\lambda (c0: C).(\lambda (u: T).(\lambda (a1: 
-A).(\lambda (_: (arity g c0 u a1)).(\lambda (_: (((eq T u (TSort n)) \to (leq 
-g a1 (ASort O n))))).(\lambda (t: T).(\lambda (a2: A).(\lambda (_: (arity g 
-(CHead c0 (Bind b) u) t a2)).(\lambda (_: (((eq T t (TSort n)) \to (leq g a2 
-(ASort O n))))).(\lambda (H6: (eq T (THead (Bind b) u t) (TSort n))).(let H7 
-\def (eq_ind T (THead (Bind b) u t) (\lambda (ee: T).(match ee in T return 
-(\lambda (_: T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) 
-\Rightarrow False | (THead _ _ _) \Rightarrow True])) I (TSort n) H6) in 
-(False_ind (leq g a2 (ASort O n)) H7)))))))))))))) (\lambda (c0: C).(\lambda 
-(u: T).(\lambda (a1: A).(\lambda (_: (arity g c0 u (asucc g a1))).(\lambda 
-(_: (((eq T u (TSort n)) \to (leq g (asucc g a1) (ASort O n))))).(\lambda (t: 
-T).(\lambda (a2: A).(\lambda (_: (arity g (CHead c0 (Bind Abst) u) t 
-a2)).(\lambda (_: (((eq T t (TSort n)) \to (leq g a2 (ASort O n))))).(\lambda 
-(H5: (eq T (THead (Bind Abst) u t) (TSort n))).(let H6 \def (eq_ind T (THead 
-(Bind Abst) u t) (\lambda (ee: T).(match ee in T return (\lambda (_: T).Prop) 
-with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | (THead _ _ 
-_) \Rightarrow True])) I (TSort n) H5) in (False_ind (leq g (AHead a1 a2) 
-(ASort O n)) H6)))))))))))) (\lambda (c0: C).(\lambda (u: T).(\lambda (a1: 
-A).(\lambda (_: (arity g c0 u a1)).(\lambda (_: (((eq T u (TSort n)) \to (leq 
-g a1 (ASort O n))))).(\lambda (t: T).(\lambda (a2: A).(\lambda (_: (arity g 
-c0 t (AHead a1 a2))).(\lambda (_: (((eq T t (TSort n)) \to (leq g (AHead a1 
-a2) (ASort O n))))).(\lambda (H5: (eq T (THead (Flat Appl) u t) (TSort 
-n))).(let H6 \def (eq_ind T (THead (Flat Appl) u t) (\lambda (ee: T).(match 
-ee in T return (\lambda (_: T).Prop) with [(TSort _) \Rightarrow False | 
+n))).(let H5 \def (eq_ind T (TLRef i) (\lambda (ee: T).(match ee with [(TSort 
+_) \Rightarrow False | (TLRef _) \Rightarrow True | (THead _ _ _) \Rightarrow 
+False])) I (TSort n) H4) in (False_ind (leq g a0 (ASort O n)) H5))))))))))) 
+(\lambda (b: B).(\lambda (_: (not (eq B b Abst))).(\lambda (c0: C).(\lambda 
+(u: T).(\lambda (a1: A).(\lambda (_: (arity g c0 u a1)).(\lambda (_: (((eq T 
+u (TSort n)) \to (leq g a1 (ASort O n))))).(\lambda (t: T).(\lambda (a2: 
+A).(\lambda (_: (arity g (CHead c0 (Bind b) u) t a2)).(\lambda (_: (((eq T t 
+(TSort n)) \to (leq g a2 (ASort O n))))).(\lambda (H6: (eq T (THead (Bind b) 
+u t) (TSort n))).(let H7 \def (eq_ind T (THead (Bind b) u t) (\lambda (ee: 
+T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False 
+| (THead _ _ _) \Rightarrow True])) I (TSort n) H6) in (False_ind (leq g a2 
+(ASort O n)) H7)))))))))))))) (\lambda (c0: C).(\lambda (u: T).(\lambda (a1: 
+A).(\lambda (_: (arity g c0 u (asucc g a1))).(\lambda (_: (((eq T u (TSort 
+n)) \to (leq g (asucc g a1) (ASort O n))))).(\lambda (t: T).(\lambda (a2: 
+A).(\lambda (_: (arity g (CHead c0 (Bind Abst) u) t a2)).(\lambda (_: (((eq T 
+t (TSort n)) \to (leq g a2 (ASort O n))))).(\lambda (H5: (eq T (THead (Bind 
+Abst) u t) (TSort n))).(let H6 \def (eq_ind T (THead (Bind Abst) u t) 
+(\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) 
+\Rightarrow False | (THead _ _ _) \Rightarrow True])) I (TSort n) H5) in 
+(False_ind (leq g (AHead a1 a2) (ASort O n)) H6)))))))))))) (\lambda (c0: 
+C).(\lambda (u: T).(\lambda (a1: A).(\lambda (_: (arity g c0 u a1)).(\lambda 
+(_: (((eq T u (TSort n)) \to (leq g a1 (ASort O n))))).(\lambda (t: 
+T).(\lambda (a2: A).(\lambda (_: (arity g c0 t (AHead a1 a2))).(\lambda (_: 
+(((eq T t (TSort n)) \to (leq g (AHead a1 a2) (ASort O n))))).(\lambda (H5: 
+(eq T (THead (Flat Appl) u t) (TSort n))).(let H6 \def (eq_ind T (THead (Flat 
+Appl) u t) (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | 
 (TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow True])) I (TSort n) 
 H5) in (False_ind (leq g a2 (ASort O n)) H6)))))))))))) (\lambda (c0: 
 C).(\lambda (u: T).(\lambda (a0: A).(\lambda (_: (arity g c0 u (asucc g 
@@ -80,21 +118,17 @@ a0))).(\lambda (_: (((eq T u (TSort n)) \to (leq g (asucc g a0) (ASort O
 n))))).(\lambda (t: T).(\lambda (_: (arity g c0 t a0)).(\lambda (_: (((eq T t 
 (TSort n)) \to (leq g a0 (ASort O n))))).(\lambda (H5: (eq T (THead (Flat 
 Cast) u t) (TSort n))).(let H6 \def (eq_ind T (THead (Flat Cast) u t) 
-(\lambda (ee: T).(match ee in T return (\lambda (_: T).Prop) with [(TSort _) 
-\Rightarrow False | (TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow 
-True])) I (TSort n) H5) in (False_ind (leq g a0 (ASort O n)) H6))))))))))) 
-(\lambda (c0: C).(\lambda (t: T).(\lambda (a1: A).(\lambda (H1: (arity g c0 t 
-a1)).(\lambda (H2: (((eq T t (TSort n)) \to (leq g a1 (ASort O 
-n))))).(\lambda (a2: A).(\lambda (H3: (leq g a1 a2)).(\lambda (H4: (eq T t 
-(TSort n))).(let H5 \def (f_equal T T (\lambda (e: T).e) t (TSort n) H4) in 
-(let H6 \def (eq_ind T t (\lambda (t0: T).((eq T t0 (TSort n)) \to (leq g a1 
-(ASort O n)))) H2 (TSort n) H5) in (let H7 \def (eq_ind T t (\lambda (t0: 
-T).(arity g c0 t0 a1)) H1 (TSort n) H5) in (leq_trans g a2 a1 (leq_sym g a1 
-a2 H3) (ASort O n) (H6 (refl_equal T (TSort n))))))))))))))) c y a H0))) 
-H))))).
-(* COMMENTS
-Initial nodes: 1235
-END *)
+(\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) 
+\Rightarrow False | (THead _ _ _) \Rightarrow True])) I (TSort n) H5) in 
+(False_ind (leq g a0 (ASort O n)) H6))))))))))) (\lambda (c0: C).(\lambda (t: 
+T).(\lambda (a1: A).(\lambda (H1: (arity g c0 t a1)).(\lambda (H2: (((eq T t 
+(TSort n)) \to (leq g a1 (ASort O n))))).(\lambda (a2: A).(\lambda (H3: (leq 
+g a1 a2)).(\lambda (H4: (eq T t (TSort n))).(let H5 \def (f_equal T T 
+(\lambda (e: T).e) t (TSort n) H4) in (let H6 \def (eq_ind T t (\lambda (t0: 
+T).((eq T t0 (TSort n)) \to (leq g a1 (ASort O n)))) H2 (TSort n) H5) in (let 
+H7 \def (eq_ind T t (\lambda (t0: T).(arity g c0 t0 a1)) H1 (TSort n) H5) in 
+(leq_trans g a2 a1 (leq_sym g a1 a2 H3) (ASort O n) (H6 (refl_equal T (TSort 
+n))))))))))))))) c y a H0))) H))))).
 
 theorem arity_gen_lref:
  \forall (g: G).(\forall (c: C).(\forall (i: nat).(\forall (a: A).((arity g c 
@@ -116,52 +150,50 @@ C).(\lambda (t: T).(\lambda (a0: A).((eq T t (TLRef i)) \to (or (ex2_2 C T
 C).(\lambda (u: T).(getl i c0 (CHead d (Bind Abst) u)))) (\lambda (d: 
 C).(\lambda (u: T).(arity g d u (asucc g a0)))))))))) (\lambda (c0: 
 C).(\lambda (n: nat).(\lambda (H1: (eq T (TSort n) (TLRef i))).(let H2 \def 
-(eq_ind T (TSort n) (\lambda (ee: T).(match ee in T return (\lambda (_: 
-T).Prop) with [(TSort _) \Rightarrow True | (TLRef _) \Rightarrow False | 
-(THead _ _ _) \Rightarrow False])) I (TLRef i) H1) in (False_ind (or (ex2_2 C 
-T (\lambda (d: C).(\lambda (u: T).(getl i c0 (CHead d (Bind Abbr) u)))) 
-(\lambda (d: C).(\lambda (u: T).(arity g d u (ASort O n))))) (ex2_2 C T 
-(\lambda (d: C).(\lambda (u: T).(getl i c0 (CHead d (Bind Abst) u)))) 
-(\lambda (d: C).(\lambda (u: T).(arity g d u (asucc g (ASort O n))))))) 
-H2))))) (\lambda (c0: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i0: 
-nat).(\lambda (H1: (getl i0 c0 (CHead d (Bind Abbr) u))).(\lambda (a0: 
-A).(\lambda (H2: (arity g d u a0)).(\lambda (_: (((eq T u (TLRef i)) \to (or 
-(ex2_2 C T (\lambda (d0: C).(\lambda (u0: T).(getl i d (CHead d0 (Bind Abbr) 
-u0)))) (\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 a0)))) (ex2_2 C T 
-(\lambda (d0: C).(\lambda (u0: T).(getl i d (CHead d0 (Bind Abst) u0)))) 
-(\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 (asucc g 
-a0))))))))).(\lambda (H4: (eq T (TLRef i0) (TLRef i))).(let H5 \def (f_equal 
-T nat (\lambda (e: T).(match e in T return (\lambda (_: T).nat) with [(TSort 
-_) \Rightarrow i0 | (TLRef n) \Rightarrow n | (THead _ _ _) \Rightarrow i0])) 
-(TLRef i0) (TLRef i) H4) in (let H6 \def (eq_ind nat i0 (\lambda (n: 
-nat).(getl n c0 (CHead d (Bind Abbr) u))) H1 i H5) in (or_introl (ex2_2 C T 
-(\lambda (d0: C).(\lambda (u0: T).(getl i c0 (CHead d0 (Bind Abbr) u0)))) 
-(\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 a0)))) (ex2_2 C T (\lambda 
-(d0: C).(\lambda (u0: T).(getl i c0 (CHead d0 (Bind Abst) u0)))) (\lambda 
-(d0: C).(\lambda (u0: T).(arity g d0 u0 (asucc g a0))))) (ex2_2_intro C T 
-(\lambda (d0: C).(\lambda (u0: T).(getl i c0 (CHead d0 (Bind Abbr) u0)))) 
-(\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 a0))) d u H6 H2))))))))))))) 
-(\lambda (c0: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i0: nat).(\lambda 
-(H1: (getl i0 c0 (CHead d (Bind Abst) u))).(\lambda (a0: A).(\lambda (H2: 
-(arity g d u (asucc g a0))).(\lambda (_: (((eq T u (TLRef i)) \to (or (ex2_2 
-C T (\lambda (d0: C).(\lambda (u0: T).(getl i d (CHead d0 (Bind Abbr) u0)))) 
-(\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 (asucc g a0))))) (ex2_2 C T 
-(\lambda (d0: C).(\lambda (u0: T).(getl i d (CHead d0 (Bind Abst) u0)))) 
-(\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 (asucc g (asucc g 
-a0)))))))))).(\lambda (H4: (eq T (TLRef i0) (TLRef i))).(let H5 \def (f_equal 
-T nat (\lambda (e: T).(match e in T return (\lambda (_: T).nat) with [(TSort 
-_) \Rightarrow i0 | (TLRef n) \Rightarrow n | (THead _ _ _) \Rightarrow i0])) 
-(TLRef i0) (TLRef i) H4) in (let H6 \def (eq_ind nat i0 (\lambda (n: 
-nat).(getl n c0 (CHead d (Bind Abst) u))) H1 i H5) in (or_intror (ex2_2 C T 
-(\lambda (d0: C).(\lambda (u0: T).(getl i c0 (CHead d0 (Bind Abbr) u0)))) 
-(\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 a0)))) (ex2_2 C T (\lambda 
-(d0: C).(\lambda (u0: T).(getl i c0 (CHead d0 (Bind Abst) u0)))) (\lambda 
-(d0: C).(\lambda (u0: T).(arity g d0 u0 (asucc g a0))))) (ex2_2_intro C T 
-(\lambda (d0: C).(\lambda (u0: T).(getl i c0 (CHead d0 (Bind Abst) u0)))) 
-(\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 (asucc g a0)))) d u H6 
-H2))))))))))))) (\lambda (b: B).(\lambda (_: (not (eq B b Abst))).(\lambda 
-(c0: C).(\lambda (u: T).(\lambda (a1: A).(\lambda (_: (arity g c0 u 
-a1)).(\lambda (_: (((eq T u (TLRef i)) \to (or (ex2_2 C T (\lambda (d: 
+(eq_ind T (TSort n) (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow 
+True | (TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow False])) I 
+(TLRef i) H1) in (False_ind (or (ex2_2 C T (\lambda (d: C).(\lambda (u: 
+T).(getl i c0 (CHead d (Bind Abbr) u)))) (\lambda (d: C).(\lambda (u: 
+T).(arity g d u (ASort O n))))) (ex2_2 C T (\lambda (d: C).(\lambda (u: 
+T).(getl i c0 (CHead d (Bind Abst) u)))) (\lambda (d: C).(\lambda (u: 
+T).(arity g d u (asucc g (ASort O n))))))) H2))))) (\lambda (c0: C).(\lambda 
+(d: C).(\lambda (u: T).(\lambda (i0: nat).(\lambda (H1: (getl i0 c0 (CHead d 
+(Bind Abbr) u))).(\lambda (a0: A).(\lambda (H2: (arity g d u a0)).(\lambda 
+(_: (((eq T u (TLRef i)) \to (or (ex2_2 C T (\lambda (d0: C).(\lambda (u0: 
+T).(getl i d (CHead d0 (Bind Abbr) u0)))) (\lambda (d0: C).(\lambda (u0: 
+T).(arity g d0 u0 a0)))) (ex2_2 C T (\lambda (d0: C).(\lambda (u0: T).(getl i 
+d (CHead d0 (Bind Abst) u0)))) (\lambda (d0: C).(\lambda (u0: T).(arity g d0 
+u0 (asucc g a0))))))))).(\lambda (H4: (eq T (TLRef i0) (TLRef i))).(let H5 
+\def (f_equal T nat (\lambda (e: T).(match e with [(TSort _) \Rightarrow i0 | 
+(TLRef n) \Rightarrow n | (THead _ _ _) \Rightarrow i0])) (TLRef i0) (TLRef 
+i) H4) in (let H6 \def (eq_ind nat i0 (\lambda (n: nat).(getl n c0 (CHead d 
+(Bind Abbr) u))) H1 i H5) in (or_introl (ex2_2 C T (\lambda (d0: C).(\lambda 
+(u0: T).(getl i c0 (CHead d0 (Bind Abbr) u0)))) (\lambda (d0: C).(\lambda 
+(u0: T).(arity g d0 u0 a0)))) (ex2_2 C T (\lambda (d0: C).(\lambda (u0: 
+T).(getl i c0 (CHead d0 (Bind Abst) u0)))) (\lambda (d0: C).(\lambda (u0: 
+T).(arity g d0 u0 (asucc g a0))))) (ex2_2_intro C T (\lambda (d0: C).(\lambda 
+(u0: T).(getl i c0 (CHead d0 (Bind Abbr) u0)))) (\lambda (d0: C).(\lambda 
+(u0: T).(arity g d0 u0 a0))) d u H6 H2))))))))))))) (\lambda (c0: C).(\lambda 
+(d: C).(\lambda (u: T).(\lambda (i0: nat).(\lambda (H1: (getl i0 c0 (CHead d 
+(Bind Abst) u))).(\lambda (a0: A).(\lambda (H2: (arity g d u (asucc g 
+a0))).(\lambda (_: (((eq T u (TLRef i)) \to (or (ex2_2 C T (\lambda (d0: 
+C).(\lambda (u0: T).(getl i d (CHead d0 (Bind Abbr) u0)))) (\lambda (d0: 
+C).(\lambda (u0: T).(arity g d0 u0 (asucc g a0))))) (ex2_2 C T (\lambda (d0: 
+C).(\lambda (u0: T).(getl i d (CHead d0 (Bind Abst) u0)))) (\lambda (d0: 
+C).(\lambda (u0: T).(arity g d0 u0 (asucc g (asucc g a0)))))))))).(\lambda 
+(H4: (eq T (TLRef i0) (TLRef i))).(let H5 \def (f_equal T nat (\lambda (e: 
+T).(match e with [(TSort _) \Rightarrow i0 | (TLRef n) \Rightarrow n | (THead 
+_ _ _) \Rightarrow i0])) (TLRef i0) (TLRef i) H4) in (let H6 \def (eq_ind nat 
+i0 (\lambda (n: nat).(getl n c0 (CHead d (Bind Abst) u))) H1 i H5) in 
+(or_intror (ex2_2 C T (\lambda (d0: C).(\lambda (u0: T).(getl i c0 (CHead d0 
+(Bind Abbr) u0)))) (\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 a0)))) 
+(ex2_2 C T (\lambda (d0: C).(\lambda (u0: T).(getl i c0 (CHead d0 (Bind Abst) 
+u0)))) (\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 (asucc g a0))))) 
+(ex2_2_intro C T (\lambda (d0: C).(\lambda (u0: T).(getl i c0 (CHead d0 (Bind 
+Abst) u0)))) (\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 (asucc g a0)))) 
+d u H6 H2))))))))))))) (\lambda (b: B).(\lambda (_: (not (eq B b 
+Abst))).(\lambda (c0: C).(\lambda (u: T).(\lambda (a1: A).(\lambda (_: (arity 
+g c0 u a1)).(\lambda (_: (((eq T u (TLRef i)) \to (or (ex2_2 C T (\lambda (d: 
 C).(\lambda (u0: T).(getl i c0 (CHead d (Bind Abbr) u0)))) (\lambda (d: 
 C).(\lambda (u0: T).(arity g d u0 a1)))) (ex2_2 C T (\lambda (d: C).(\lambda 
 (u0: T).(getl i c0 (CHead d (Bind Abst) u0)))) (\lambda (d: C).(\lambda (u0: 
@@ -173,71 +205,69 @@ T).(arity g d u0 a2)))) (ex2_2 C T (\lambda (d: C).(\lambda (u0: T).(getl i
 (CHead c0 (Bind b) u) (CHead d (Bind Abst) u0)))) (\lambda (d: C).(\lambda 
 (u0: T).(arity g d u0 (asucc g a2))))))))).(\lambda (H6: (eq T (THead (Bind 
 b) u t) (TLRef i))).(let H7 \def (eq_ind T (THead (Bind b) u t) (\lambda (ee: 
-T).(match ee in T return (\lambda (_: T).Prop) with [(TSort _) \Rightarrow 
-False | (TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow True])) I 
-(TLRef i) H6) in (False_ind (or (ex2_2 C T (\lambda (d: C).(\lambda (u0: 
-T).(getl i c0 (CHead d (Bind Abbr) u0)))) (\lambda (d: C).(\lambda (u0: 
-T).(arity g d u0 a2)))) (ex2_2 C T (\lambda (d: C).(\lambda (u0: T).(getl i 
-c0 (CHead d (Bind Abst) u0)))) (\lambda (d: C).(\lambda (u0: T).(arity g d u0 
-(asucc g a2)))))) H7)))))))))))))) (\lambda (c0: C).(\lambda (u: T).(\lambda 
-(a1: A).(\lambda (_: (arity g c0 u (asucc g a1))).(\lambda (_: (((eq T u 
-(TLRef i)) \to (or (ex2_2 C T (\lambda (d: C).(\lambda (u0: T).(getl i c0 
-(CHead d (Bind Abbr) u0)))) (\lambda (d: C).(\lambda (u0: T).(arity g d u0 
-(asucc g a1))))) (ex2_2 C T (\lambda (d: C).(\lambda (u0: T).(getl i c0 
-(CHead d (Bind Abst) u0)))) (\lambda (d: C).(\lambda (u0: T).(arity g d u0 
-(asucc g (asucc g a1)))))))))).(\lambda (t: T).(\lambda (a2: A).(\lambda (_: 
-(arity g (CHead c0 (Bind Abst) u) t a2)).(\lambda (_: (((eq T t (TLRef i)) 
-\to (or (ex2_2 C T (\lambda (d: C).(\lambda (u0: T).(getl i (CHead c0 (Bind 
-Abst) u) (CHead d (Bind Abbr) u0)))) (\lambda (d: C).(\lambda (u0: T).(arity 
-g d u0 a2)))) (ex2_2 C T (\lambda (d: C).(\lambda (u0: T).(getl i (CHead c0 
-(Bind Abst) u) (CHead d (Bind Abst) u0)))) (\lambda (d: C).(\lambda (u0: 
-T).(arity g d u0 (asucc g a2))))))))).(\lambda (H5: (eq T (THead (Bind Abst) 
-u t) (TLRef i))).(let H6 \def (eq_ind T (THead (Bind Abst) u t) (\lambda (ee: 
-T).(match ee in T return (\lambda (_: T).Prop) with [(TSort _) \Rightarrow 
-False | (TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow True])) I 
-(TLRef i) H5) in (False_ind (or (ex2_2 C T (\lambda (d: C).(\lambda (u0: 
-T).(getl i c0 (CHead d (Bind Abbr) u0)))) (\lambda (d: C).(\lambda (u0: 
-T).(arity g d u0 (AHead a1 a2))))) (ex2_2 C T (\lambda (d: C).(\lambda (u0: 
-T).(getl i c0 (CHead d (Bind Abst) u0)))) (\lambda (d: C).(\lambda (u0: 
-T).(arity g d u0 (asucc g (AHead a1 a2))))))) H6)))))))))))) (\lambda (c0: 
-C).(\lambda (u: T).(\lambda (a1: A).(\lambda (_: (arity g c0 u a1)).(\lambda 
+T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False 
+| (THead _ _ _) \Rightarrow True])) I (TLRef i) H6) in (False_ind (or (ex2_2 
+C T (\lambda (d: C).(\lambda (u0: T).(getl i c0 (CHead d (Bind Abbr) u0)))) 
+(\lambda (d: C).(\lambda (u0: T).(arity g d u0 a2)))) (ex2_2 C T (\lambda (d: 
+C).(\lambda (u0: T).(getl i c0 (CHead d (Bind Abst) u0)))) (\lambda (d: 
+C).(\lambda (u0: T).(arity g d u0 (asucc g a2)))))) H7)))))))))))))) (\lambda 
+(c0: C).(\lambda (u: T).(\lambda (a1: A).(\lambda (_: (arity g c0 u (asucc g 
+a1))).(\lambda (_: (((eq T u (TLRef i)) \to (or (ex2_2 C T (\lambda (d: 
+C).(\lambda (u0: T).(getl i c0 (CHead d (Bind Abbr) u0)))) (\lambda (d: 
+C).(\lambda (u0: T).(arity g d u0 (asucc g a1))))) (ex2_2 C T (\lambda (d: 
+C).(\lambda (u0: T).(getl i c0 (CHead d (Bind Abst) u0)))) (\lambda (d: 
+C).(\lambda (u0: T).(arity g d u0 (asucc g (asucc g a1)))))))))).(\lambda (t: 
+T).(\lambda (a2: A).(\lambda (_: (arity g (CHead c0 (Bind Abst) u) t 
+a2)).(\lambda (_: (((eq T t (TLRef i)) \to (or (ex2_2 C T (\lambda (d: 
+C).(\lambda (u0: T).(getl i (CHead c0 (Bind Abst) u) (CHead d (Bind Abbr) 
+u0)))) (\lambda (d: C).(\lambda (u0: T).(arity g d u0 a2)))) (ex2_2 C T 
+(\lambda (d: C).(\lambda (u0: T).(getl i (CHead c0 (Bind Abst) u) (CHead d 
+(Bind Abst) u0)))) (\lambda (d: C).(\lambda (u0: T).(arity g d u0 (asucc g 
+a2))))))))).(\lambda (H5: (eq T (THead (Bind Abst) u t) (TLRef i))).(let H6 
+\def (eq_ind T (THead (Bind Abst) u t) (\lambda (ee: T).(match ee with 
+[(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | (THead _ _ _) 
+\Rightarrow True])) I (TLRef i) H5) in (False_ind (or (ex2_2 C T (\lambda (d: 
+C).(\lambda (u0: T).(getl i c0 (CHead d (Bind Abbr) u0)))) (\lambda (d: 
+C).(\lambda (u0: T).(arity g d u0 (AHead a1 a2))))) (ex2_2 C T (\lambda (d: 
+C).(\lambda (u0: T).(getl i c0 (CHead d (Bind Abst) u0)))) (\lambda (d: 
+C).(\lambda (u0: T).(arity g d u0 (asucc g (AHead a1 a2))))))) H6)))))))))))) 
+(\lambda (c0: C).(\lambda (u: T).(\lambda (a1: A).(\lambda (_: (arity g c0 u 
+a1)).(\lambda (_: (((eq T u (TLRef i)) \to (or (ex2_2 C T (\lambda (d: 
+C).(\lambda (u0: T).(getl i c0 (CHead d (Bind Abbr) u0)))) (\lambda (d: 
+C).(\lambda (u0: T).(arity g d u0 a1)))) (ex2_2 C T (\lambda (d: C).(\lambda 
+(u0: T).(getl i c0 (CHead d (Bind Abst) u0)))) (\lambda (d: C).(\lambda (u0: 
+T).(arity g d u0 (asucc g a1))))))))).(\lambda (t: T).(\lambda (a2: 
+A).(\lambda (_: (arity g c0 t (AHead a1 a2))).(\lambda (_: (((eq T t (TLRef 
+i)) \to (or (ex2_2 C T (\lambda (d: C).(\lambda (u0: T).(getl i c0 (CHead d 
+(Bind Abbr) u0)))) (\lambda (d: C).(\lambda (u0: T).(arity g d u0 (AHead a1 
+a2))))) (ex2_2 C T (\lambda (d: C).(\lambda (u0: T).(getl i c0 (CHead d (Bind 
+Abst) u0)))) (\lambda (d: C).(\lambda (u0: T).(arity g d u0 (asucc g (AHead 
+a1 a2)))))))))).(\lambda (H5: (eq T (THead (Flat Appl) u t) (TLRef i))).(let 
+H6 \def (eq_ind T (THead (Flat Appl) u t) (\lambda (ee: T).(match ee with 
+[(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | (THead _ _ _) 
+\Rightarrow True])) I (TLRef i) H5) in (False_ind (or (ex2_2 C T (\lambda (d: 
+C).(\lambda (u0: T).(getl i c0 (CHead d (Bind Abbr) u0)))) (\lambda (d: 
+C).(\lambda (u0: T).(arity g d u0 a2)))) (ex2_2 C T (\lambda (d: C).(\lambda 
+(u0: T).(getl i c0 (CHead d (Bind Abst) u0)))) (\lambda (d: C).(\lambda (u0: 
+T).(arity g d u0 (asucc g a2)))))) H6)))))))))))) (\lambda (c0: C).(\lambda 
+(u: T).(\lambda (a0: A).(\lambda (_: (arity g c0 u (asucc g a0))).(\lambda 
 (_: (((eq T u (TLRef i)) \to (or (ex2_2 C T (\lambda (d: C).(\lambda (u0: 
 T).(getl i c0 (CHead d (Bind Abbr) u0)))) (\lambda (d: C).(\lambda (u0: 
-T).(arity g d u0 a1)))) (ex2_2 C T (\lambda (d: C).(\lambda (u0: T).(getl i 
-c0 (CHead d (Bind Abst) u0)))) (\lambda (d: C).(\lambda (u0: T).(arity g d u0 
-(asucc g a1))))))))).(\lambda (t: T).(\lambda (a2: A).(\lambda (_: (arity g 
-c0 t (AHead a1 a2))).(\lambda (_: (((eq T t (TLRef i)) \to (or (ex2_2 C T 
+T).(arity g d u0 (asucc g a0))))) (ex2_2 C T (\lambda (d: C).(\lambda (u0: 
+T).(getl i c0 (CHead d (Bind Abst) u0)))) (\lambda (d: C).(\lambda (u0: 
+T).(arity g d u0 (asucc g (asucc g a0)))))))))).(\lambda (t: T).(\lambda (_: 
+(arity g c0 t a0)).(\lambda (_: (((eq T t (TLRef i)) \to (or (ex2_2 C T 
 (\lambda (d: C).(\lambda (u0: T).(getl i c0 (CHead d (Bind Abbr) u0)))) 
-(\lambda (d: C).(\lambda (u0: T).(arity g d u0 (AHead a1 a2))))) (ex2_2 C T 
-(\lambda (d: C).(\lambda (u0: T).(getl i c0 (CHead d (Bind Abst) u0)))) 
-(\lambda (d: C).(\lambda (u0: T).(arity g d u0 (asucc g (AHead a1 
-a2)))))))))).(\lambda (H5: (eq T (THead (Flat Appl) u t) (TLRef i))).(let H6 
-\def (eq_ind T (THead (Flat Appl) u t) (\lambda (ee: T).(match ee in T return 
-(\lambda (_: T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) 
+(\lambda (d: C).(\lambda (u0: T).(arity g d u0 a0)))) (ex2_2 C T (\lambda (d: 
+C).(\lambda (u0: T).(getl i c0 (CHead d (Bind Abst) u0)))) (\lambda (d: 
+C).(\lambda (u0: T).(arity g d u0 (asucc g a0))))))))).(\lambda (H5: (eq T 
+(THead (Flat Cast) u t) (TLRef i))).(let H6 \def (eq_ind T (THead (Flat Cast) 
+u t) (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) 
 \Rightarrow False | (THead _ _ _) \Rightarrow True])) I (TLRef i) H5) in 
 (False_ind (or (ex2_2 C T (\lambda (d: C).(\lambda (u0: T).(getl i c0 (CHead 
-d (Bind Abbr) u0)))) (\lambda (d: C).(\lambda (u0: T).(arity g d u0 a2)))) 
+d (Bind Abbr) u0)))) (\lambda (d: C).(\lambda (u0: T).(arity g d u0 a0)))) 
 (ex2_2 C T (\lambda (d: C).(\lambda (u0: T).(getl i c0 (CHead d (Bind Abst) 
-u0)))) (\lambda (d: C).(\lambda (u0: T).(arity g d u0 (asucc g a2)))))) 
-H6)))))))))))) (\lambda (c0: C).(\lambda (u: T).(\lambda (a0: A).(\lambda (_: 
-(arity g c0 u (asucc g a0))).(\lambda (_: (((eq T u (TLRef i)) \to (or (ex2_2 
-C T (\lambda (d: C).(\lambda (u0: T).(getl i c0 (CHead d (Bind Abbr) u0)))) 
-(\lambda (d: C).(\lambda (u0: T).(arity g d u0 (asucc g a0))))) (ex2_2 C T 
-(\lambda (d: C).(\lambda (u0: T).(getl i c0 (CHead d (Bind Abst) u0)))) 
-(\lambda (d: C).(\lambda (u0: T).(arity g d u0 (asucc g (asucc g 
-a0)))))))))).(\lambda (t: T).(\lambda (_: (arity g c0 t a0)).(\lambda (_: 
-(((eq T t (TLRef i)) \to (or (ex2_2 C T (\lambda (d: C).(\lambda (u0: 
-T).(getl i c0 (CHead d (Bind Abbr) u0)))) (\lambda (d: C).(\lambda (u0: 
-T).(arity g d u0 a0)))) (ex2_2 C T (\lambda (d: C).(\lambda (u0: T).(getl i 
-c0 (CHead d (Bind Abst) u0)))) (\lambda (d: C).(\lambda (u0: T).(arity g d u0 
-(asucc g a0))))))))).(\lambda (H5: (eq T (THead (Flat Cast) u t) (TLRef 
-i))).(let H6 \def (eq_ind T (THead (Flat Cast) u t) (\lambda (ee: T).(match 
-ee in T return (\lambda (_: T).Prop) with [(TSort _) \Rightarrow False | 
-(TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow True])) I (TLRef i) 
-H5) in (False_ind (or (ex2_2 C T (\lambda (d: C).(\lambda (u0: T).(getl i c0 
-(CHead d (Bind Abbr) u0)))) (\lambda (d: C).(\lambda (u0: T).(arity g d u0 
-a0)))) (ex2_2 C T (\lambda (d: C).(\lambda (u0: T).(getl i c0 (CHead d (Bind 
-Abst) u0)))) (\lambda (d: C).(\lambda (u0: T).(arity g d u0 (asucc g a0)))))) 
+u0)))) (\lambda (d: C).(\lambda (u0: T).(arity g d u0 (asucc g a0)))))) 
 H6))))))))))) (\lambda (c0: C).(\lambda (t: T).(\lambda (a1: A).(\lambda (H1: 
 (arity g c0 t a1)).(\lambda (H2: (((eq T t (TLRef i)) \to (or (ex2_2 C T 
 (\lambda (d: C).(\lambda (u: T).(getl i c0 (CHead d (Bind Abbr) u)))) 
@@ -293,9 +323,6 @@ T).(arity g d u a2)))) (ex2_2 C T (\lambda (d: C).(\lambda (u: T).(getl i c0
 (CHead d (Bind Abst) u)))) (\lambda (d: C).(\lambda (u: T).(arity g d u 
 (asucc g a2)))) x0 x1 H10 (arity_repl g x0 x1 (asucc g a1) H11 (asucc g a2) 
 (asucc_repl g a1 a2 H3)))))))) H9)) H8))))))))))))) c y a H0))) H))))).
-(* COMMENTS
-Initial nodes: 3853
-END *)
 
 theorem arity_gen_bind:
  \forall (b: B).((not (eq B b Abst)) \to (\forall (g: G).(\forall (c: 
@@ -313,138 +340,130 @@ T).(\lambda (H1: (arity g c y a2)).(arity_ind g (\lambda (c0: C).(\lambda
 (a1: A).(arity g c0 u a1)) (\lambda (_: A).(arity g (CHead c0 (Bind b) u) t 
 a))))))) (\lambda (c0: C).(\lambda (n: nat).(\lambda (H2: (eq T (TSort n) 
 (THead (Bind b) u t))).(let H3 \def (eq_ind T (TSort n) (\lambda (ee: 
-T).(match ee in T return (\lambda (_: T).Prop) with [(TSort _) \Rightarrow 
-True | (TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow False])) I 
-(THead (Bind b) u t) H2) in (False_ind (ex2 A (\lambda (a1: A).(arity g c0 u 
-a1)) (\lambda (_: A).(arity g (CHead c0 (Bind b) u) t (ASort O n)))) H3))))) 
-(\lambda (c0: C).(\lambda (d: C).(\lambda (u0: T).(\lambda (i: nat).(\lambda 
-(_: (getl i c0 (CHead d (Bind Abbr) u0))).(\lambda (a: A).(\lambda (_: (arity 
-g d u0 a)).(\lambda (_: (((eq T u0 (THead (Bind b) u t)) \to (ex2 A (\lambda 
-(a1: A).(arity g d u a1)) (\lambda (_: A).(arity g (CHead d (Bind b) u) t 
-a)))))).(\lambda (H5: (eq T (TLRef i) (THead (Bind b) u t))).(let H6 \def 
-(eq_ind T (TLRef i) (\lambda (ee: T).(match ee in T return (\lambda (_: 
-T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow True | 
-(THead _ _ _) \Rightarrow False])) I (THead (Bind b) u t) H5) in (False_ind 
+T).(match ee with [(TSort _) \Rightarrow True | (TLRef _) \Rightarrow False | 
+(THead _ _ _) \Rightarrow False])) I (THead (Bind b) u t) H2) in (False_ind 
 (ex2 A (\lambda (a1: A).(arity g c0 u a1)) (\lambda (_: A).(arity g (CHead c0 
-(Bind b) u) t a))) H6))))))))))) (\lambda (c0: C).(\lambda (d: C).(\lambda 
-(u0: T).(\lambda (i: nat).(\lambda (_: (getl i c0 (CHead d (Bind Abst) 
-u0))).(\lambda (a: A).(\lambda (_: (arity g d u0 (asucc g a))).(\lambda (_: 
-(((eq T u0 (THead (Bind b) u t)) \to (ex2 A (\lambda (a1: A).(arity g d u 
+(Bind b) u) t (ASort O n)))) H3))))) (\lambda (c0: C).(\lambda (d: 
+C).(\lambda (u0: T).(\lambda (i: nat).(\lambda (_: (getl i c0 (CHead d (Bind 
+Abbr) u0))).(\lambda (a: A).(\lambda (_: (arity g d u0 a)).(\lambda (_: (((eq 
+T u0 (THead (Bind b) u t)) \to (ex2 A (\lambda (a1: A).(arity g d u a1)) 
+(\lambda (_: A).(arity g (CHead d (Bind b) u) t a)))))).(\lambda (H5: (eq T 
+(TLRef i) (THead (Bind b) u t))).(let H6 \def (eq_ind T (TLRef i) (\lambda 
+(ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow 
+True | (THead _ _ _) \Rightarrow False])) I (THead (Bind b) u t) H5) in 
+(False_ind (ex2 A (\lambda (a1: A).(arity g c0 u a1)) (\lambda (_: A).(arity 
+g (CHead c0 (Bind b) u) t a))) H6))))))))))) (\lambda (c0: C).(\lambda (d: 
+C).(\lambda (u0: T).(\lambda (i: nat).(\lambda (_: (getl i c0 (CHead d (Bind 
+Abst) u0))).(\lambda (a: A).(\lambda (_: (arity g d u0 (asucc g a))).(\lambda 
+(_: (((eq T u0 (THead (Bind b) u t)) \to (ex2 A (\lambda (a1: A).(arity g d u 
 a1)) (\lambda (_: A).(arity g (CHead d (Bind b) u) t (asucc g 
 a))))))).(\lambda (H5: (eq T (TLRef i) (THead (Bind b) u t))).(let H6 \def 
-(eq_ind T (TLRef i) (\lambda (ee: T).(match ee in T return (\lambda (_: 
-T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow True | 
-(THead _ _ _) \Rightarrow False])) I (THead (Bind b) u t) H5) in (False_ind 
-(ex2 A (\lambda (a1: A).(arity g c0 u a1)) (\lambda (_: A).(arity g (CHead c0 
-(Bind b) u) t a))) H6))))))))))) (\lambda (b0: B).(\lambda (H2: (not (eq B b0 
-Abst))).(\lambda (c0: C).(\lambda (u0: T).(\lambda (a1: A).(\lambda (H3: 
-(arity g c0 u0 a1)).(\lambda (H4: (((eq T u0 (THead (Bind b) u t)) \to (ex2 A 
-(\lambda (a3: A).(arity g c0 u a3)) (\lambda (_: A).(arity g (CHead c0 (Bind 
-b) u) t a1)))))).(\lambda (t0: T).(\lambda (a0: A).(\lambda (H5: (arity g 
-(CHead c0 (Bind b0) u0) t0 a0)).(\lambda (H6: (((eq T t0 (THead (Bind b) u 
-t)) \to (ex2 A (\lambda (a3: A).(arity g (CHead c0 (Bind b0) u0) u a3)) 
-(\lambda (_: A).(arity g (CHead (CHead c0 (Bind b0) u0) (Bind b) u) t 
-a0)))))).(\lambda (H7: (eq T (THead (Bind b0) u0 t0) (THead (Bind b) u 
-t))).(let H8 \def (f_equal T B (\lambda (e: T).(match e in T return (\lambda 
-(_: T).B) with [(TSort _) \Rightarrow b0 | (TLRef _) \Rightarrow b0 | (THead 
-k _ _) \Rightarrow (match k in K return (\lambda (_: K).B) with [(Bind b1) 
+(eq_ind T (TLRef i) (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow 
+False | (TLRef _) \Rightarrow True | (THead _ _ _) \Rightarrow False])) I 
+(THead (Bind b) u t) H5) in (False_ind (ex2 A (\lambda (a1: A).(arity g c0 u 
+a1)) (\lambda (_: A).(arity g (CHead c0 (Bind b) u) t a))) H6))))))))))) 
+(\lambda (b0: B).(\lambda (H2: (not (eq B b0 Abst))).(\lambda (c0: 
+C).(\lambda (u0: T).(\lambda (a1: A).(\lambda (H3: (arity g c0 u0 
+a1)).(\lambda (H4: (((eq T u0 (THead (Bind b) u t)) \to (ex2 A (\lambda (a3: 
+A).(arity g c0 u a3)) (\lambda (_: A).(arity g (CHead c0 (Bind b) u) t 
+a1)))))).(\lambda (t0: T).(\lambda (a0: A).(\lambda (H5: (arity g (CHead c0 
+(Bind b0) u0) t0 a0)).(\lambda (H6: (((eq T t0 (THead (Bind b) u t)) \to (ex2 
+A (\lambda (a3: A).(arity g (CHead c0 (Bind b0) u0) u a3)) (\lambda (_: 
+A).(arity g (CHead (CHead c0 (Bind b0) u0) (Bind b) u) t a0)))))).(\lambda 
+(H7: (eq T (THead (Bind b0) u0 t0) (THead (Bind b) u t))).(let H8 \def 
+(f_equal T B (\lambda (e: T).(match e with [(TSort _) \Rightarrow b0 | (TLRef 
+_) \Rightarrow b0 | (THead k _ _) \Rightarrow (match k with [(Bind b1) 
 \Rightarrow b1 | (Flat _) \Rightarrow b0])])) (THead (Bind b0) u0 t0) (THead 
-(Bind b) u t) H7) in ((let H9 \def (f_equal T T (\lambda (e: T).(match e in T 
-return (\lambda (_: T).T) with [(TSort _) \Rightarrow u0 | (TLRef _) 
-\Rightarrow u0 | (THead _ t1 _) \Rightarrow t1])) (THead (Bind b0) u0 t0) 
-(THead (Bind b) u t) H7) in ((let H10 \def (f_equal T T (\lambda (e: 
-T).(match e in T return (\lambda (_: T).T) with [(TSort _) \Rightarrow t0 | 
-(TLRef _) \Rightarrow t0 | (THead _ _ t1) \Rightarrow t1])) (THead (Bind b0) 
-u0 t0) (THead (Bind b) u t) H7) in (\lambda (H11: (eq T u0 u)).(\lambda (H12: 
-(eq B b0 b)).(let H13 \def (eq_ind T t0 (\lambda (t1: T).((eq T t1 (THead 
-(Bind b) u t)) \to (ex2 A (\lambda (a3: A).(arity g (CHead c0 (Bind b0) u0) u 
-a3)) (\lambda (_: A).(arity g (CHead (CHead c0 (Bind b0) u0) (Bind b) u) t 
-a0))))) H6 t H10) in (let H14 \def (eq_ind T t0 (\lambda (t1: T).(arity g 
-(CHead c0 (Bind b0) u0) t1 a0)) H5 t H10) in (let H15 \def (eq_ind T u0 
-(\lambda (t1: T).((eq T t (THead (Bind b) u t)) \to (ex2 A (\lambda (a3: 
-A).(arity g (CHead c0 (Bind b0) t1) u a3)) (\lambda (_: A).(arity g (CHead 
-(CHead c0 (Bind b0) t1) (Bind b) u) t a0))))) H13 u H11) in (let H16 \def 
-(eq_ind T u0 (\lambda (t1: T).(arity g (CHead c0 (Bind b0) t1) t a0)) H14 u 
-H11) in (let H17 \def (eq_ind T u0 (\lambda (t1: T).((eq T t1 (THead (Bind b) 
-u t)) \to (ex2 A (\lambda (a3: A).(arity g c0 u a3)) (\lambda (_: A).(arity g 
-(CHead c0 (Bind b) u) t a1))))) H4 u H11) in (let H18 \def (eq_ind T u0 
-(\lambda (t1: T).(arity g c0 t1 a1)) H3 u H11) in (let H19 \def (eq_ind B b0 
-(\lambda (b1: B).((eq T t (THead (Bind b) u t)) \to (ex2 A (\lambda (a3: 
-A).(arity g (CHead c0 (Bind b1) u) u a3)) (\lambda (_: A).(arity g (CHead 
-(CHead c0 (Bind b1) u) (Bind b) u) t a0))))) H15 b H12) in (let H20 \def 
-(eq_ind B b0 (\lambda (b1: B).(arity g (CHead c0 (Bind b1) u) t a0)) H16 b 
-H12) in (let H21 \def (eq_ind B b0 (\lambda (b1: B).(not (eq B b1 Abst))) H2 
-b H12) in (ex_intro2 A (\lambda (a3: A).(arity g c0 u a3)) (\lambda (_: 
-A).(arity g (CHead c0 (Bind b) u) t a0)) a1 H18 H20))))))))))))) H9)) 
-H8)))))))))))))) (\lambda (c0: C).(\lambda (u0: T).(\lambda (a1: A).(\lambda 
-(H2: (arity g c0 u0 (asucc g a1))).(\lambda (H3: (((eq T u0 (THead (Bind b) u 
-t)) \to (ex2 A (\lambda (a3: A).(arity g c0 u a3)) (\lambda (_: A).(arity g 
-(CHead c0 (Bind b) u) t (asucc g a1))))))).(\lambda (t0: T).(\lambda (a0: 
-A).(\lambda (H4: (arity g (CHead c0 (Bind Abst) u0) t0 a0)).(\lambda (H5: 
-(((eq T t0 (THead (Bind b) u t)) \to (ex2 A (\lambda (a3: A).(arity g (CHead 
-c0 (Bind Abst) u0) u a3)) (\lambda (_: A).(arity g (CHead (CHead c0 (Bind 
-Abst) u0) (Bind b) u) t a0)))))).(\lambda (H6: (eq T (THead (Bind Abst) u0 
-t0) (THead (Bind b) u t))).(let H7 \def (f_equal T B (\lambda (e: T).(match e 
-in T return (\lambda (_: T).B) with [(TSort _) \Rightarrow Abst | (TLRef _) 
-\Rightarrow Abst | (THead k _ _) \Rightarrow (match k in K return (\lambda 
-(_: K).B) with [(Bind b0) \Rightarrow b0 | (Flat _) \Rightarrow Abst])])) 
-(THead (Bind Abst) u0 t0) (THead (Bind b) u t) H6) in ((let H8 \def (f_equal 
-T T (\lambda (e: T).(match e in T return (\lambda (_: T).T) with [(TSort _) 
+(Bind b) u t) H7) in ((let H9 \def (f_equal T T (\lambda (e: T).(match e with 
+[(TSort _) \Rightarrow u0 | (TLRef _) \Rightarrow u0 | (THead _ t1 _) 
+\Rightarrow t1])) (THead (Bind b0) u0 t0) (THead (Bind b) u t) H7) in ((let 
+H10 \def (f_equal T T (\lambda (e: T).(match e with [(TSort _) \Rightarrow t0 
+| (TLRef _) \Rightarrow t0 | (THead _ _ t1) \Rightarrow t1])) (THead (Bind 
+b0) u0 t0) (THead (Bind b) u t) H7) in (\lambda (H11: (eq T u0 u)).(\lambda 
+(H12: (eq B b0 b)).(let H13 \def (eq_ind T t0 (\lambda (t1: T).((eq T t1 
+(THead (Bind b) u t)) \to (ex2 A (\lambda (a3: A).(arity g (CHead c0 (Bind 
+b0) u0) u a3)) (\lambda (_: A).(arity g (CHead (CHead c0 (Bind b0) u0) (Bind 
+b) u) t a0))))) H6 t H10) in (let H14 \def (eq_ind T t0 (\lambda (t1: 
+T).(arity g (CHead c0 (Bind b0) u0) t1 a0)) H5 t H10) in (let H15 \def 
+(eq_ind T u0 (\lambda (t1: T).((eq T t (THead (Bind b) u t)) \to (ex2 A 
+(\lambda (a3: A).(arity g (CHead c0 (Bind b0) t1) u a3)) (\lambda (_: 
+A).(arity g (CHead (CHead c0 (Bind b0) t1) (Bind b) u) t a0))))) H13 u H11) 
+in (let H16 \def (eq_ind T u0 (\lambda (t1: T).(arity g (CHead c0 (Bind b0) 
+t1) t a0)) H14 u H11) in (let H17 \def (eq_ind T u0 (\lambda (t1: T).((eq T 
+t1 (THead (Bind b) u t)) \to (ex2 A (\lambda (a3: A).(arity g c0 u a3)) 
+(\lambda (_: A).(arity g (CHead c0 (Bind b) u) t a1))))) H4 u H11) in (let 
+H18 \def (eq_ind T u0 (\lambda (t1: T).(arity g c0 t1 a1)) H3 u H11) in (let 
+H19 \def (eq_ind B b0 (\lambda (b1: B).((eq T t (THead (Bind b) u t)) \to 
+(ex2 A (\lambda (a3: A).(arity g (CHead c0 (Bind b1) u) u a3)) (\lambda (_: 
+A).(arity g (CHead (CHead c0 (Bind b1) u) (Bind b) u) t a0))))) H15 b H12) in 
+(let H20 \def (eq_ind B b0 (\lambda (b1: B).(arity g (CHead c0 (Bind b1) u) t 
+a0)) H16 b H12) in (let H21 \def (eq_ind B b0 (\lambda (b1: B).(not (eq B b1 
+Abst))) H2 b H12) in (ex_intro2 A (\lambda (a3: A).(arity g c0 u a3)) 
+(\lambda (_: A).(arity g (CHead c0 (Bind b) u) t a0)) a1 H18 H20))))))))))))) 
+H9)) H8)))))))))))))) (\lambda (c0: C).(\lambda (u0: T).(\lambda (a1: 
+A).(\lambda (H2: (arity g c0 u0 (asucc g a1))).(\lambda (H3: (((eq T u0 
+(THead (Bind b) u t)) \to (ex2 A (\lambda (a3: A).(arity g c0 u a3)) (\lambda 
+(_: A).(arity g (CHead c0 (Bind b) u) t (asucc g a1))))))).(\lambda (t0: 
+T).(\lambda (a0: A).(\lambda (H4: (arity g (CHead c0 (Bind Abst) u0) t0 
+a0)).(\lambda (H5: (((eq T t0 (THead (Bind b) u t)) \to (ex2 A (\lambda (a3: 
+A).(arity g (CHead c0 (Bind Abst) u0) u a3)) (\lambda (_: A).(arity g (CHead 
+(CHead c0 (Bind Abst) u0) (Bind b) u) t a0)))))).(\lambda (H6: (eq T (THead 
+(Bind Abst) u0 t0) (THead (Bind b) u t))).(let H7 \def (f_equal T B (\lambda 
+(e: T).(match e with [(TSort _) \Rightarrow Abst | (TLRef _) \Rightarrow Abst 
+| (THead k _ _) \Rightarrow (match k with [(Bind b0) \Rightarrow b0 | (Flat 
+_) \Rightarrow Abst])])) (THead (Bind Abst) u0 t0) (THead (Bind b) u t) H6) 
+in ((let H8 \def (f_equal T T (\lambda (e: T).(match e with [(TSort _) 
 \Rightarrow u0 | (TLRef _) \Rightarrow u0 | (THead _ t1 _) \Rightarrow t1])) 
 (THead (Bind Abst) u0 t0) (THead (Bind b) u t) H6) in ((let H9 \def (f_equal 
-T T (\lambda (e: T).(match e in T return (\lambda (_: T).T) with [(TSort _) 
-\Rightarrow t0 | (TLRef _) \Rightarrow t0 | (THead _ _ t1) \Rightarrow t1])) 
-(THead (Bind Abst) u0 t0) (THead (Bind b) u t) H6) in (\lambda (H10: (eq T u0 
-u)).(\lambda (H11: (eq B Abst b)).(let H12 \def (eq_ind T t0 (\lambda (t1: 
-T).((eq T t1 (THead (Bind b) u t)) \to (ex2 A (\lambda (a3: A).(arity g 
-(CHead c0 (Bind Abst) u0) u a3)) (\lambda (_: A).(arity g (CHead (CHead c0 
-(Bind Abst) u0) (Bind b) u) t a0))))) H5 t H9) in (let H13 \def (eq_ind T t0 
-(\lambda (t1: T).(arity g (CHead c0 (Bind Abst) u0) t1 a0)) H4 t H9) in (let 
-H14 \def (eq_ind T u0 (\lambda (t1: T).((eq T t (THead (Bind b) u t)) \to 
-(ex2 A (\lambda (a3: A).(arity g (CHead c0 (Bind Abst) t1) u a3)) (\lambda 
-(_: A).(arity g (CHead (CHead c0 (Bind Abst) t1) (Bind b) u) t a0))))) H12 u 
-H10) in (let H15 \def (eq_ind T u0 (\lambda (t1: T).(arity g (CHead c0 (Bind 
-Abst) t1) t a0)) H13 u H10) in (let H16 \def (eq_ind T u0 (\lambda (t1: 
-T).((eq T t1 (THead (Bind b) u t)) \to (ex2 A (\lambda (a3: A).(arity g c0 u 
-a3)) (\lambda (_: A).(arity g (CHead c0 (Bind b) u) t (asucc g a1)))))) H3 u 
-H10) in (let H17 \def (eq_ind T u0 (\lambda (t1: T).(arity g c0 t1 (asucc g 
-a1))) H2 u H10) in (let H18 \def (eq_ind_r B b (\lambda (b0: B).((eq T t 
-(THead (Bind b0) u t)) \to (ex2 A (\lambda (a3: A).(arity g (CHead c0 (Bind 
-Abst) u) u a3)) (\lambda (_: A).(arity g (CHead (CHead c0 (Bind Abst) u) 
-(Bind b0) u) t a0))))) H14 Abst H11) in (let H19 \def (eq_ind_r B b (\lambda 
-(b0: B).((eq T u (THead (Bind b0) u t)) \to (ex2 A (\lambda (a3: A).(arity g 
-c0 u a3)) (\lambda (_: A).(arity g (CHead c0 (Bind b0) u) t (asucc g a1)))))) 
-H16 Abst H11) in (let H20 \def (eq_ind_r B b (\lambda (b0: B).(not (eq B b0 
-Abst))) H Abst H11) in (eq_ind B Abst (\lambda (b0: B).(ex2 A (\lambda (a3: 
-A).(arity g c0 u a3)) (\lambda (_: A).(arity g (CHead c0 (Bind b0) u) t 
-(AHead a1 a0))))) (let H21 \def (match (H20 (refl_equal B Abst)) in False 
-return (\lambda (_: False).(ex2 A (\lambda (a3: A).(arity g c0 u a3)) 
-(\lambda (_: A).(arity g (CHead c0 (Bind Abst) u) t (AHead a1 a0))))) with 
-[]) in H21) b H11))))))))))))) H8)) H7)))))))))))) (\lambda (c0: C).(\lambda 
-(u0: T).(\lambda (a1: A).(\lambda (_: (arity g c0 u0 a1)).(\lambda (_: (((eq 
-T u0 (THead (Bind b) u t)) \to (ex2 A (\lambda (a3: A).(arity g c0 u a3)) 
-(\lambda (_: A).(arity g (CHead c0 (Bind b) u) t a1)))))).(\lambda (t0: 
-T).(\lambda (a0: A).(\lambda (_: (arity g c0 t0 (AHead a1 a0))).(\lambda (_: 
-(((eq T t0 (THead (Bind b) u t)) \to (ex2 A (\lambda (a3: A).(arity g c0 u 
-a3)) (\lambda (_: A).(arity g (CHead c0 (Bind b) u) t (AHead a1 
-a0))))))).(\lambda (H6: (eq T (THead (Flat Appl) u0 t0) (THead (Bind b) u 
-t))).(let H7 \def (eq_ind T (THead (Flat Appl) u0 t0) (\lambda (ee: T).(match 
-ee in T return (\lambda (_: T).Prop) with [(TSort _) \Rightarrow False | 
-(TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow (match k in K return 
-(\lambda (_: K).Prop) with [(Bind _) \Rightarrow False | (Flat _) \Rightarrow 
-True])])) I (THead (Bind b) u t) H6) in (False_ind (ex2 A (\lambda (a3: 
-A).(arity g c0 u a3)) (\lambda (_: A).(arity g (CHead c0 (Bind b) u) t a0))) 
-H7)))))))))))) (\lambda (c0: C).(\lambda (u0: T).(\lambda (a: A).(\lambda (_: 
-(arity g c0 u0 (asucc g a))).(\lambda (_: (((eq T u0 (THead (Bind b) u t)) 
-\to (ex2 A (\lambda (a1: A).(arity g c0 u a1)) (\lambda (_: A).(arity g 
-(CHead c0 (Bind b) u) t (asucc g a))))))).(\lambda (t0: T).(\lambda (_: 
-(arity g c0 t0 a)).(\lambda (_: (((eq T t0 (THead (Bind b) u t)) \to (ex2 A 
+T T (\lambda (e: T).(match e with [(TSort _) \Rightarrow t0 | (TLRef _) 
+\Rightarrow t0 | (THead _ _ t1) \Rightarrow t1])) (THead (Bind Abst) u0 t0) 
+(THead (Bind b) u t) H6) in (\lambda (H10: (eq T u0 u)).(\lambda (H11: (eq B 
+Abst b)).(let H12 \def (eq_ind T t0 (\lambda (t1: T).((eq T t1 (THead (Bind 
+b) u t)) \to (ex2 A (\lambda (a3: A).(arity g (CHead c0 (Bind Abst) u0) u 
+a3)) (\lambda (_: A).(arity g (CHead (CHead c0 (Bind Abst) u0) (Bind b) u) t 
+a0))))) H5 t H9) in (let H13 \def (eq_ind T t0 (\lambda (t1: T).(arity g 
+(CHead c0 (Bind Abst) u0) t1 a0)) H4 t H9) in (let H14 \def (eq_ind T u0 
+(\lambda (t1: T).((eq T t (THead (Bind b) u t)) \to (ex2 A (\lambda (a3: 
+A).(arity g (CHead c0 (Bind Abst) t1) u a3)) (\lambda (_: A).(arity g (CHead 
+(CHead c0 (Bind Abst) t1) (Bind b) u) t a0))))) H12 u H10) in (let H15 \def 
+(eq_ind T u0 (\lambda (t1: T).(arity g (CHead c0 (Bind Abst) t1) t a0)) H13 u 
+H10) in (let H16 \def (eq_ind T u0 (\lambda (t1: T).((eq T t1 (THead (Bind b) 
+u t)) \to (ex2 A (\lambda (a3: A).(arity g c0 u a3)) (\lambda (_: A).(arity g 
+(CHead c0 (Bind b) u) t (asucc g a1)))))) H3 u H10) in (let H17 \def (eq_ind 
+T u0 (\lambda (t1: T).(arity g c0 t1 (asucc g a1))) H2 u H10) in (let H18 
+\def (eq_ind_r B b (\lambda (b0: B).((eq T t (THead (Bind b0) u t)) \to (ex2 
+A (\lambda (a3: A).(arity g (CHead c0 (Bind Abst) u) u a3)) (\lambda (_: 
+A).(arity g (CHead (CHead c0 (Bind Abst) u) (Bind b0) u) t a0))))) H14 Abst 
+H11) in (let H19 \def (eq_ind_r B b (\lambda (b0: B).((eq T u (THead (Bind 
+b0) u t)) \to (ex2 A (\lambda (a3: A).(arity g c0 u a3)) (\lambda (_: 
+A).(arity g (CHead c0 (Bind b0) u) t (asucc g a1)))))) H16 Abst H11) in (let 
+H20 \def (eq_ind_r B b (\lambda (b0: B).(not (eq B b0 Abst))) H Abst H11) in 
+(eq_ind B Abst (\lambda (b0: B).(ex2 A (\lambda (a3: A).(arity g c0 u a3)) 
+(\lambda (_: A).(arity g (CHead c0 (Bind b0) u) t (AHead a1 a0))))) (let H21 
+\def (match (H20 (refl_equal B Abst)) in False with []) in H21) b 
+H11))))))))))))) H8)) H7)))))))))))) (\lambda (c0: C).(\lambda (u0: 
+T).(\lambda (a1: A).(\lambda (_: (arity g c0 u0 a1)).(\lambda (_: (((eq T u0 
+(THead (Bind b) u t)) \to (ex2 A (\lambda (a3: A).(arity g c0 u a3)) (\lambda 
+(_: A).(arity g (CHead c0 (Bind b) u) t a1)))))).(\lambda (t0: T).(\lambda 
+(a0: A).(\lambda (_: (arity g c0 t0 (AHead a1 a0))).(\lambda (_: (((eq T t0 
+(THead (Bind b) u t)) \to (ex2 A (\lambda (a3: A).(arity g c0 u a3)) (\lambda 
+(_: A).(arity g (CHead c0 (Bind b) u) t (AHead a1 a0))))))).(\lambda (H6: (eq 
+T (THead (Flat Appl) u0 t0) (THead (Bind b) u t))).(let H7 \def (eq_ind T 
+(THead (Flat Appl) u0 t0) (\lambda (ee: T).(match ee with [(TSort _) 
+\Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow 
+(match k with [(Bind _) \Rightarrow False | (Flat _) \Rightarrow True])])) I 
+(THead (Bind b) u t) H6) in (False_ind (ex2 A (\lambda (a3: A).(arity g c0 u 
+a3)) (\lambda (_: A).(arity g (CHead c0 (Bind b) u) t a0))) H7)))))))))))) 
+(\lambda (c0: C).(\lambda (u0: T).(\lambda (a: A).(\lambda (_: (arity g c0 u0 
+(asucc g a))).(\lambda (_: (((eq T u0 (THead (Bind b) u t)) \to (ex2 A 
 (\lambda (a1: A).(arity g c0 u a1)) (\lambda (_: A).(arity g (CHead c0 (Bind 
-b) u) t a)))))).(\lambda (H6: (eq T (THead (Flat Cast) u0 t0) (THead (Bind b) 
-u t))).(let H7 \def (eq_ind T (THead (Flat Cast) u0 t0) (\lambda (ee: 
-T).(match ee in T return (\lambda (_: T).Prop) with [(TSort _) \Rightarrow 
-False | (TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow (match k in K 
-return (\lambda (_: K).Prop) with [(Bind _) \Rightarrow False | (Flat _) 
+b) u) t (asucc g a))))))).(\lambda (t0: T).(\lambda (_: (arity g c0 t0 
+a)).(\lambda (_: (((eq T t0 (THead (Bind b) u t)) \to (ex2 A (\lambda (a1: 
+A).(arity g c0 u a1)) (\lambda (_: A).(arity g (CHead c0 (Bind b) u) t 
+a)))))).(\lambda (H6: (eq T (THead (Flat Cast) u0 t0) (THead (Bind b) u 
+t))).(let H7 \def (eq_ind T (THead (Flat Cast) u0 t0) (\lambda (ee: T).(match 
+ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | (THead k 
+_ _) \Rightarrow (match k with [(Bind _) \Rightarrow False | (Flat _) 
 \Rightarrow True])])) I (THead (Bind b) u t) H6) in (False_ind (ex2 A 
 (\lambda (a1: A).(arity g c0 u a1)) (\lambda (_: A).(arity g (CHead c0 (Bind 
 b) u) t a))) H7))))))))))) (\lambda (c0: C).(\lambda (t0: T).(\lambda (a1: 
@@ -465,9 +484,6 @@ b) u) t a0))) (\lambda (x: A).(\lambda (H10: (arity g c0 u x)).(\lambda (H11:
 c0 u a3)) (\lambda (_: A).(arity g (CHead c0 (Bind b) u) t a0)) x H10 
 (arity_repl g (CHead c0 (Bind b) u) t a1 H11 a0 H4))))) H9))))))))))))) c y 
 a2 H1))) H0)))))))).
-(* COMMENTS
-Initial nodes: 3365
-END *)
 
 theorem arity_gen_abst:
  \forall (g: G).(\forall (c: C).(\forall (u: T).(\forall (t: T).(\forall (a: 
@@ -488,58 +504,55 @@ A).(\lambda (a2: A).(eq A a0 (AHead a1 a2)))) (\lambda (a1: A).(\lambda (_:
 A).(arity g c0 u (asucc g a1)))) (\lambda (_: A).(\lambda (a2: A).(arity g 
 (CHead c0 (Bind Abst) u) t a2)))))))) (\lambda (c0: C).(\lambda (n: 
 nat).(\lambda (H1: (eq T (TSort n) (THead (Bind Abst) u t))).(let H2 \def 
-(eq_ind T (TSort n) (\lambda (ee: T).(match ee in T return (\lambda (_: 
-T).Prop) with [(TSort _) \Rightarrow True | (TLRef _) \Rightarrow False | 
-(THead _ _ _) \Rightarrow False])) I (THead (Bind Abst) u t) H1) in 
-(False_ind (ex3_2 A A (\lambda (a1: A).(\lambda (a2: A).(eq A (ASort O n) 
-(AHead a1 a2)))) (\lambda (a1: A).(\lambda (_: A).(arity g c0 u (asucc g 
-a1)))) (\lambda (_: A).(\lambda (a2: A).(arity g (CHead c0 (Bind Abst) u) t 
-a2)))) H2))))) (\lambda (c0: C).(\lambda (d: C).(\lambda (u0: T).(\lambda (i: 
-nat).(\lambda (_: (getl i c0 (CHead d (Bind Abbr) u0))).(\lambda (a0: 
-A).(\lambda (_: (arity g d u0 a0)).(\lambda (_: (((eq T u0 (THead (Bind Abst) 
-u t)) \to (ex3_2 A A (\lambda (a1: A).(\lambda (a2: A).(eq A a0 (AHead a1 
-a2)))) (\lambda (a1: A).(\lambda (_: A).(arity g d u (asucc g a1)))) (\lambda 
-(_: A).(\lambda (a2: A).(arity g (CHead d (Bind Abst) u) t a2))))))).(\lambda 
-(H4: (eq T (TLRef i) (THead (Bind Abst) u t))).(let H5 \def (eq_ind T (TLRef 
-i) (\lambda (ee: T).(match ee in T return (\lambda (_: T).Prop) with [(TSort 
-_) \Rightarrow False | (TLRef _) \Rightarrow True | (THead _ _ _) \Rightarrow 
-False])) I (THead (Bind Abst) u t) H4) in (False_ind (ex3_2 A A (\lambda (a1: 
-A).(\lambda (a2: A).(eq A a0 (AHead a1 a2)))) (\lambda (a1: A).(\lambda (_: 
-A).(arity g c0 u (asucc g a1)))) (\lambda (_: A).(\lambda (a2: A).(arity g 
-(CHead c0 (Bind Abst) u) t a2)))) H5))))))))))) (\lambda (c0: C).(\lambda (d: 
-C).(\lambda (u0: T).(\lambda (i: nat).(\lambda (_: (getl i c0 (CHead d (Bind 
-Abst) u0))).(\lambda (a0: A).(\lambda (_: (arity g d u0 (asucc g 
-a0))).(\lambda (_: (((eq T u0 (THead (Bind Abst) u t)) \to (ex3_2 A A 
-(\lambda (a1: A).(\lambda (a2: A).(eq A (asucc g a0) (AHead a1 a2)))) 
+(eq_ind T (TSort n) (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow 
+True | (TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow False])) I 
+(THead (Bind Abst) u t) H1) in (False_ind (ex3_2 A A (\lambda (a1: 
+A).(\lambda (a2: A).(eq A (ASort O n) (AHead a1 a2)))) (\lambda (a1: 
+A).(\lambda (_: A).(arity g c0 u (asucc g a1)))) (\lambda (_: A).(\lambda 
+(a2: A).(arity g (CHead c0 (Bind Abst) u) t a2)))) H2))))) (\lambda (c0: 
+C).(\lambda (d: C).(\lambda (u0: T).(\lambda (i: nat).(\lambda (_: (getl i c0 
+(CHead d (Bind Abbr) u0))).(\lambda (a0: A).(\lambda (_: (arity g d u0 
+a0)).(\lambda (_: (((eq T u0 (THead (Bind Abst) u t)) \to (ex3_2 A A (\lambda 
+(a1: A).(\lambda (a2: A).(eq A a0 (AHead a1 a2)))) (\lambda (a1: A).(\lambda 
+(_: A).(arity g d u (asucc g a1)))) (\lambda (_: A).(\lambda (a2: A).(arity g 
+(CHead d (Bind Abst) u) t a2))))))).(\lambda (H4: (eq T (TLRef i) (THead 
+(Bind Abst) u t))).(let H5 \def (eq_ind T (TLRef i) (\lambda (ee: T).(match 
+ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow True | (THead _ 
+_ _) \Rightarrow False])) I (THead (Bind Abst) u t) H4) in (False_ind (ex3_2 
+A A (\lambda (a1: A).(\lambda (a2: A).(eq A a0 (AHead a1 a2)))) (\lambda (a1: 
+A).(\lambda (_: A).(arity g c0 u (asucc g a1)))) (\lambda (_: A).(\lambda 
+(a2: A).(arity g (CHead c0 (Bind Abst) u) t a2)))) H5))))))))))) (\lambda 
+(c0: C).(\lambda (d: C).(\lambda (u0: T).(\lambda (i: nat).(\lambda (_: (getl 
+i c0 (CHead d (Bind Abst) u0))).(\lambda (a0: A).(\lambda (_: (arity g d u0 
+(asucc g a0))).(\lambda (_: (((eq T u0 (THead (Bind Abst) u t)) \to (ex3_2 A 
+A (\lambda (a1: A).(\lambda (a2: A).(eq A (asucc g a0) (AHead a1 a2)))) 
 (\lambda (a1: A).(\lambda (_: A).(arity g d u (asucc g a1)))) (\lambda (_: 
 A).(\lambda (a2: A).(arity g (CHead d (Bind Abst) u) t a2))))))).(\lambda 
 (H4: (eq T (TLRef i) (THead (Bind Abst) u t))).(let H5 \def (eq_ind T (TLRef 
-i) (\lambda (ee: T).(match ee in T return (\lambda (_: T).Prop) with [(TSort 
-_) \Rightarrow False | (TLRef _) \Rightarrow True | (THead _ _ _) \Rightarrow 
-False])) I (THead (Bind Abst) u t) H4) in (False_ind (ex3_2 A A (\lambda (a1: 
-A).(\lambda (a2: A).(eq A a0 (AHead a1 a2)))) (\lambda (a1: A).(\lambda (_: 
-A).(arity g c0 u (asucc g a1)))) (\lambda (_: A).(\lambda (a2: A).(arity g 
-(CHead c0 (Bind Abst) u) t a2)))) H5))))))))))) (\lambda (b: B).(\lambda (H1: 
-(not (eq B b Abst))).(\lambda (c0: C).(\lambda (u0: T).(\lambda (a1: 
-A).(\lambda (H2: (arity g c0 u0 a1)).(\lambda (H3: (((eq T u0 (THead (Bind 
-Abst) u t)) \to (ex3_2 A A (\lambda (a2: A).(\lambda (a3: A).(eq A a1 (AHead 
-a2 a3)))) (\lambda (a2: A).(\lambda (_: A).(arity g c0 u (asucc g a2)))) 
-(\lambda (_: A).(\lambda (a3: A).(arity g (CHead c0 (Bind Abst) u) t 
-a3))))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda (H4: (arity g (CHead c0 
-(Bind b) u0) t0 a2)).(\lambda (H5: (((eq T t0 (THead (Bind Abst) u t)) \to 
-(ex3_2 A A (\lambda (a3: A).(\lambda (a4: A).(eq A a2 (AHead a3 a4)))) 
-(\lambda (a3: A).(\lambda (_: A).(arity g (CHead c0 (Bind b) u0) u (asucc g 
-a3)))) (\lambda (_: A).(\lambda (a4: A).(arity g (CHead (CHead c0 (Bind b) 
-u0) (Bind Abst) u) t a4))))))).(\lambda (H6: (eq T (THead (Bind b) u0 t0) 
-(THead (Bind Abst) u t))).(let H7 \def (f_equal T B (\lambda (e: T).(match e 
-in T return (\lambda (_: T).B) with [(TSort _) \Rightarrow b | (TLRef _) 
-\Rightarrow b | (THead k _ _) \Rightarrow (match k in K return (\lambda (_: 
-K).B) with [(Bind b0) \Rightarrow b0 | (Flat _) \Rightarrow b])])) (THead 
-(Bind b) u0 t0) (THead (Bind Abst) u t) H6) in ((let H8 \def (f_equal T T 
-(\lambda (e: T).(match e in T return (\lambda (_: T).T) with [(TSort _) 
-\Rightarrow u0 | (TLRef _) \Rightarrow u0 | (THead _ t1 _) \Rightarrow t1])) 
-(THead (Bind b) u0 t0) (THead (Bind Abst) u t) H6) in ((let H9 \def (f_equal 
-T T (\lambda (e: T).(match e in T return (\lambda (_: T).T) with [(TSort _) 
+i) (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) 
+\Rightarrow True | (THead _ _ _) \Rightarrow False])) I (THead (Bind Abst) u 
+t) H4) in (False_ind (ex3_2 A A (\lambda (a1: A).(\lambda (a2: A).(eq A a0 
+(AHead a1 a2)))) (\lambda (a1: A).(\lambda (_: A).(arity g c0 u (asucc g 
+a1)))) (\lambda (_: A).(\lambda (a2: A).(arity g (CHead c0 (Bind Abst) u) t 
+a2)))) H5))))))))))) (\lambda (b: B).(\lambda (H1: (not (eq B b 
+Abst))).(\lambda (c0: C).(\lambda (u0: T).(\lambda (a1: A).(\lambda (H2: 
+(arity g c0 u0 a1)).(\lambda (H3: (((eq T u0 (THead (Bind Abst) u t)) \to 
+(ex3_2 A A (\lambda (a2: A).(\lambda (a3: A).(eq A a1 (AHead a2 a3)))) 
+(\lambda (a2: A).(\lambda (_: A).(arity g c0 u (asucc g a2)))) (\lambda (_: 
+A).(\lambda (a3: A).(arity g (CHead c0 (Bind Abst) u) t a3))))))).(\lambda 
+(t0: T).(\lambda (a2: A).(\lambda (H4: (arity g (CHead c0 (Bind b) u0) t0 
+a2)).(\lambda (H5: (((eq T t0 (THead (Bind Abst) u t)) \to (ex3_2 A A 
+(\lambda (a3: A).(\lambda (a4: A).(eq A a2 (AHead a3 a4)))) (\lambda (a3: 
+A).(\lambda (_: A).(arity g (CHead c0 (Bind b) u0) u (asucc g a3)))) (\lambda 
+(_: A).(\lambda (a4: A).(arity g (CHead (CHead c0 (Bind b) u0) (Bind Abst) u) 
+t a4))))))).(\lambda (H6: (eq T (THead (Bind b) u0 t0) (THead (Bind Abst) u 
+t))).(let H7 \def (f_equal T B (\lambda (e: T).(match e with [(TSort _) 
+\Rightarrow b | (TLRef _) \Rightarrow b | (THead k _ _) \Rightarrow (match k 
+with [(Bind b0) \Rightarrow b0 | (Flat _) \Rightarrow b])])) (THead (Bind b) 
+u0 t0) (THead (Bind Abst) u t) H6) in ((let H8 \def (f_equal T T (\lambda (e: 
+T).(match e with [(TSort _) \Rightarrow u0 | (TLRef _) \Rightarrow u0 | 
+(THead _ t1 _) \Rightarrow t1])) (THead (Bind b) u0 t0) (THead (Bind Abst) u 
+t) H6) in ((let H9 \def (f_equal T T (\lambda (e: T).(match e with [(TSort _) 
 \Rightarrow t0 | (TLRef _) \Rightarrow t0 | (THead _ _ t1) \Rightarrow t1])) 
 (THead (Bind b) u0 t0) (THead (Bind Abst) u t) H6) in (\lambda (H10: (eq T u0 
 u)).(\lambda (H11: (eq B b Abst)).(let H12 \def (eq_ind T t0 (\lambda (t1: 
@@ -567,26 +580,22 @@ A a2 (AHead a3 a4)))) (\lambda (a3: A).(\lambda (_: A).(arity g (CHead c0
 H19 \def (eq_ind B b (\lambda (b0: B).(arity g (CHead c0 (Bind b0) u) t a2)) 
 H15 Abst H11) in (let H20 \def (eq_ind B b (\lambda (b0: B).(not (eq B b0 
 Abst))) H1 Abst H11) in (let H21 \def (match (H20 (refl_equal B Abst)) in 
-False return (\lambda (_: False).(ex3_2 A A (\lambda (a3: A).(\lambda (a4: 
-A).(eq A a2 (AHead a3 a4)))) (\lambda (a3: A).(\lambda (_: A).(arity g c0 u 
-(asucc g a3)))) (\lambda (_: A).(\lambda (a4: A).(arity g (CHead c0 (Bind 
-Abst) u) t a4))))) with []) in H21))))))))))))) H8)) H7)))))))))))))) 
-(\lambda (c0: C).(\lambda (u0: T).(\lambda (a1: A).(\lambda (H1: (arity g c0 
-u0 (asucc g a1))).(\lambda (H2: (((eq T u0 (THead (Bind Abst) u t)) \to 
-(ex3_2 A A (\lambda (a2: A).(\lambda (a3: A).(eq A (asucc g a1) (AHead a2 
-a3)))) (\lambda (a2: A).(\lambda (_: A).(arity g c0 u (asucc g a2)))) 
-(\lambda (_: A).(\lambda (a3: A).(arity g (CHead c0 (Bind Abst) u) t 
-a3))))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda (H3: (arity g (CHead c0 
-(Bind Abst) u0) t0 a2)).(\lambda (H4: (((eq T t0 (THead (Bind Abst) u t)) \to 
-(ex3_2 A A (\lambda (a3: A).(\lambda (a4: A).(eq A a2 (AHead a3 a4)))) 
-(\lambda (a3: A).(\lambda (_: A).(arity g (CHead c0 (Bind Abst) u0) u (asucc 
-g a3)))) (\lambda (_: A).(\lambda (a4: A).(arity g (CHead (CHead c0 (Bind 
-Abst) u0) (Bind Abst) u) t a4))))))).(\lambda (H5: (eq T (THead (Bind Abst) 
-u0 t0) (THead (Bind Abst) u t))).(let H6 \def (f_equal T T (\lambda (e: 
-T).(match e in T return (\lambda (_: T).T) with [(TSort _) \Rightarrow u0 | 
-(TLRef _) \Rightarrow u0 | (THead _ t1 _) \Rightarrow t1])) (THead (Bind 
-Abst) u0 t0) (THead (Bind Abst) u t) H5) in ((let H7 \def (f_equal T T 
-(\lambda (e: T).(match e in T return (\lambda (_: T).T) with [(TSort _) 
+False with []) in H21))))))))))))) H8)) H7)))))))))))))) (\lambda (c0: 
+C).(\lambda (u0: T).(\lambda (a1: A).(\lambda (H1: (arity g c0 u0 (asucc g 
+a1))).(\lambda (H2: (((eq T u0 (THead (Bind Abst) u t)) \to (ex3_2 A A 
+(\lambda (a2: A).(\lambda (a3: A).(eq A (asucc g a1) (AHead a2 a3)))) 
+(\lambda (a2: A).(\lambda (_: A).(arity g c0 u (asucc g a2)))) (\lambda (_: 
+A).(\lambda (a3: A).(arity g (CHead c0 (Bind Abst) u) t a3))))))).(\lambda 
+(t0: T).(\lambda (a2: A).(\lambda (H3: (arity g (CHead c0 (Bind Abst) u0) t0 
+a2)).(\lambda (H4: (((eq T t0 (THead (Bind Abst) u t)) \to (ex3_2 A A 
+(\lambda (a3: A).(\lambda (a4: A).(eq A a2 (AHead a3 a4)))) (\lambda (a3: 
+A).(\lambda (_: A).(arity g (CHead c0 (Bind Abst) u0) u (asucc g a3)))) 
+(\lambda (_: A).(\lambda (a4: A).(arity g (CHead (CHead c0 (Bind Abst) u0) 
+(Bind Abst) u) t a4))))))).(\lambda (H5: (eq T (THead (Bind Abst) u0 t0) 
+(THead (Bind Abst) u t))).(let H6 \def (f_equal T T (\lambda (e: T).(match e 
+with [(TSort _) \Rightarrow u0 | (TLRef _) \Rightarrow u0 | (THead _ t1 _) 
+\Rightarrow t1])) (THead (Bind Abst) u0 t0) (THead (Bind Abst) u t) H5) in 
+((let H7 \def (f_equal T T (\lambda (e: T).(match e with [(TSort _) 
 \Rightarrow t0 | (TLRef _) \Rightarrow t0 | (THead _ _ t1) \Rightarrow t1])) 
 (THead (Bind Abst) u0 t0) (THead (Bind Abst) u t) H5) in (\lambda (H8: (eq T 
 u0 u)).(let H9 \def (eq_ind T t0 (\lambda (t1: T).((eq T t1 (THead (Bind 
@@ -621,77 +630,73 @@ A).(\lambda (a4: A).(eq A (AHead a1 a2) (AHead a3 a4)))) (\lambda (a3:
 A).(\lambda (_: A).(arity g c0 u (asucc g a3)))) (\lambda (_: A).(\lambda 
 (a4: A).(arity g (CHead c0 (Bind Abst) u) t a4))))))).(\lambda (H5: (eq T 
 (THead (Flat Appl) u0 t0) (THead (Bind Abst) u t))).(let H6 \def (eq_ind T 
-(THead (Flat Appl) u0 t0) (\lambda (ee: T).(match ee in T return (\lambda (_: 
-T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | 
-(THead k _ _) \Rightarrow (match k in K return (\lambda (_: K).Prop) with 
-[(Bind _) \Rightarrow False | (Flat _) \Rightarrow True])])) I (THead (Bind 
-Abst) u t) H5) in (False_ind (ex3_2 A A (\lambda (a3: A).(\lambda (a4: A).(eq 
-A a2 (AHead a3 a4)))) (\lambda (a3: A).(\lambda (_: A).(arity g c0 u (asucc g 
-a3)))) (\lambda (_: A).(\lambda (a4: A).(arity g (CHead c0 (Bind Abst) u) t 
-a4)))) H6)))))))))))) (\lambda (c0: C).(\lambda (u0: T).(\lambda (a0: 
-A).(\lambda (_: (arity g c0 u0 (asucc g a0))).(\lambda (_: (((eq T u0 (THead 
-(Bind Abst) u t)) \to (ex3_2 A A (\lambda (a1: A).(\lambda (a2: A).(eq A 
-(asucc g a0) (AHead a1 a2)))) (\lambda (a1: A).(\lambda (_: A).(arity g c0 u 
-(asucc g a1)))) (\lambda (_: A).(\lambda (a2: A).(arity g (CHead c0 (Bind 
-Abst) u) t a2))))))).(\lambda (t0: T).(\lambda (_: (arity g c0 t0 
-a0)).(\lambda (_: (((eq T t0 (THead (Bind Abst) u t)) \to (ex3_2 A A (\lambda 
-(a1: A).(\lambda (a2: A).(eq A a0 (AHead a1 a2)))) (\lambda (a1: A).(\lambda 
-(_: A).(arity g c0 u (asucc g a1)))) (\lambda (_: A).(\lambda (a2: A).(arity 
-g (CHead c0 (Bind Abst) u) t a2))))))).(\lambda (H5: (eq T (THead (Flat Cast) 
-u0 t0) (THead (Bind Abst) u t))).(let H6 \def (eq_ind T (THead (Flat Cast) u0 
-t0) (\lambda (ee: T).(match ee in T return (\lambda (_: T).Prop) with [(TSort 
-_) \Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _) 
-\Rightarrow (match k in K return (\lambda (_: K).Prop) with [(Bind _) 
-\Rightarrow False | (Flat _) \Rightarrow True])])) I (THead (Bind Abst) u t) 
-H5) in (False_ind (ex3_2 A A (\lambda (a1: A).(\lambda (a2: A).(eq A a0 
-(AHead a1 a2)))) (\lambda (a1: A).(\lambda (_: A).(arity g c0 u (asucc g 
-a1)))) (\lambda (_: A).(\lambda (a2: A).(arity g (CHead c0 (Bind Abst) u) t 
-a2)))) H6))))))))))) (\lambda (c0: C).(\lambda (t0: T).(\lambda (a1: 
-A).(\lambda (H1: (arity g c0 t0 a1)).(\lambda (H2: (((eq T t0 (THead (Bind 
-Abst) u t)) \to (ex3_2 A A (\lambda (a2: A).(\lambda (a3: A).(eq A a1 (AHead 
-a2 a3)))) (\lambda (a2: A).(\lambda (_: A).(arity g c0 u (asucc g a2)))) 
-(\lambda (_: A).(\lambda (a3: A).(arity g (CHead c0 (Bind Abst) u) t 
-a3))))))).(\lambda (a2: A).(\lambda (H3: (leq g a1 a2)).(\lambda (H4: (eq T 
-t0 (THead (Bind Abst) u t))).(let H5 \def (f_equal T T (\lambda (e: T).e) t0 
-(THead (Bind Abst) u t) H4) in (let H6 \def (eq_ind T t0 (\lambda (t1: 
-T).((eq T t1 (THead (Bind Abst) u t)) \to (ex3_2 A A (\lambda (a3: 
+(THead (Flat Appl) u0 t0) (\lambda (ee: T).(match ee with [(TSort _) 
+\Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow 
+(match k with [(Bind _) \Rightarrow False | (Flat _) \Rightarrow True])])) I 
+(THead (Bind Abst) u t) H5) in (False_ind (ex3_2 A A (\lambda (a3: 
+A).(\lambda (a4: A).(eq A a2 (AHead a3 a4)))) (\lambda (a3: A).(\lambda (_: 
+A).(arity g c0 u (asucc g a3)))) (\lambda (_: A).(\lambda (a4: A).(arity g 
+(CHead c0 (Bind Abst) u) t a4)))) H6)))))))))))) (\lambda (c0: C).(\lambda 
+(u0: T).(\lambda (a0: A).(\lambda (_: (arity g c0 u0 (asucc g a0))).(\lambda 
+(_: (((eq T u0 (THead (Bind Abst) u t)) \to (ex3_2 A A (\lambda (a1: 
+A).(\lambda (a2: A).(eq A (asucc g a0) (AHead a1 a2)))) (\lambda (a1: 
+A).(\lambda (_: A).(arity g c0 u (asucc g a1)))) (\lambda (_: A).(\lambda 
+(a2: A).(arity g (CHead c0 (Bind Abst) u) t a2))))))).(\lambda (t0: 
+T).(\lambda (_: (arity g c0 t0 a0)).(\lambda (_: (((eq T t0 (THead (Bind 
+Abst) u t)) \to (ex3_2 A A (\lambda (a1: A).(\lambda (a2: A).(eq A a0 (AHead 
+a1 a2)))) (\lambda (a1: A).(\lambda (_: A).(arity g c0 u (asucc g a1)))) 
+(\lambda (_: A).(\lambda (a2: A).(arity g (CHead c0 (Bind Abst) u) t 
+a2))))))).(\lambda (H5: (eq T (THead (Flat Cast) u0 t0) (THead (Bind Abst) u 
+t))).(let H6 \def (eq_ind T (THead (Flat Cast) u0 t0) (\lambda (ee: T).(match 
+ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | (THead k 
+_ _) \Rightarrow (match k with [(Bind _) \Rightarrow False | (Flat _) 
+\Rightarrow True])])) I (THead (Bind Abst) u t) H5) in (False_ind (ex3_2 A A 
+(\lambda (a1: A).(\lambda (a2: A).(eq A a0 (AHead a1 a2)))) (\lambda (a1: 
+A).(\lambda (_: A).(arity g c0 u (asucc g a1)))) (\lambda (_: A).(\lambda 
+(a2: A).(arity g (CHead c0 (Bind Abst) u) t a2)))) H6))))))))))) (\lambda 
+(c0: C).(\lambda (t0: T).(\lambda (a1: A).(\lambda (H1: (arity g c0 t0 
+a1)).(\lambda (H2: (((eq T t0 (THead (Bind Abst) u t)) \to (ex3_2 A A 
+(\lambda (a2: A).(\lambda (a3: A).(eq A a1 (AHead a2 a3)))) (\lambda (a2: 
+A).(\lambda (_: A).(arity g c0 u (asucc g a2)))) (\lambda (_: A).(\lambda 
+(a3: A).(arity g (CHead c0 (Bind Abst) u) t a3))))))).(\lambda (a2: 
+A).(\lambda (H3: (leq g a1 a2)).(\lambda (H4: (eq T t0 (THead (Bind Abst) u 
+t))).(let H5 \def (f_equal T T (\lambda (e: T).e) t0 (THead (Bind Abst) u t) 
+H4) in (let H6 \def (eq_ind T t0 (\lambda (t1: T).((eq T t1 (THead (Bind 
+Abst) u t)) \to (ex3_2 A A (\lambda (a3: A).(\lambda (a4: A).(eq A a1 (AHead 
+a3 a4)))) (\lambda (a3: A).(\lambda (_: A).(arity g c0 u (asucc g a3)))) 
+(\lambda (_: A).(\lambda (a4: A).(arity g (CHead c0 (Bind Abst) u) t a4)))))) 
+H2 (THead (Bind Abst) u t) H5) in (let H7 \def (eq_ind T t0 (\lambda (t1: 
+T).(arity g c0 t1 a1)) H1 (THead (Bind Abst) u t) H5) in (let H8 \def (H6 
+(refl_equal T (THead (Bind Abst) u t))) in (ex3_2_ind A A (\lambda (a3: 
 A).(\lambda (a4: A).(eq A a1 (AHead a3 a4)))) (\lambda (a3: A).(\lambda (_: 
 A).(arity g c0 u (asucc g a3)))) (\lambda (_: A).(\lambda (a4: A).(arity g 
-(CHead c0 (Bind Abst) u) t a4)))))) H2 (THead (Bind Abst) u t) H5) in (let H7 
-\def (eq_ind T t0 (\lambda (t1: T).(arity g c0 t1 a1)) H1 (THead (Bind Abst) 
-u t) H5) in (let H8 \def (H6 (refl_equal T (THead (Bind Abst) u t))) in 
-(ex3_2_ind A A (\lambda (a3: A).(\lambda (a4: A).(eq A a1 (AHead a3 a4)))) 
-(\lambda (a3: A).(\lambda (_: A).(arity g c0 u (asucc g a3)))) (\lambda (_: 
-A).(\lambda (a4: A).(arity g (CHead c0 (Bind Abst) u) t a4))) (ex3_2 A A 
-(\lambda (a3: A).(\lambda (a4: A).(eq A a2 (AHead a3 a4)))) (\lambda (a3: 
-A).(\lambda (_: A).(arity g c0 u (asucc g a3)))) (\lambda (_: A).(\lambda 
-(a4: A).(arity g (CHead c0 (Bind Abst) u) t a4)))) (\lambda (x0: A).(\lambda 
-(x1: A).(\lambda (H9: (eq A a1 (AHead x0 x1))).(\lambda (H10: (arity g c0 u 
-(asucc g x0))).(\lambda (H11: (arity g (CHead c0 (Bind Abst) u) t x1)).(let 
-H12 \def (eq_ind A a1 (\lambda (a0: A).(leq g a0 a2)) H3 (AHead x0 x1) H9) in 
-(let H13 \def (eq_ind A a1 (\lambda (a0: A).(arity g c0 (THead (Bind Abst) u 
-t) a0)) H7 (AHead x0 x1) H9) in (let H_x \def (leq_gen_head1 g x0 x1 a2 H12) 
-in (let H14 \def H_x in (ex3_2_ind A A (\lambda (a3: A).(\lambda (_: A).(leq 
-g x0 a3))) (\lambda (_: A).(\lambda (a4: A).(leq g x1 a4))) (\lambda (a3: 
-A).(\lambda (a4: A).(eq A a2 (AHead a3 a4)))) (ex3_2 A A (\lambda (a3: 
-A).(\lambda (a4: A).(eq A a2 (AHead a3 a4)))) (\lambda (a3: A).(\lambda (_: 
+(CHead c0 (Bind Abst) u) t a4))) (ex3_2 A A (\lambda (a3: A).(\lambda (a4: 
+A).(eq A a2 (AHead a3 a4)))) (\lambda (a3: A).(\lambda (_: A).(arity g c0 u 
+(asucc g a3)))) (\lambda (_: A).(\lambda (a4: A).(arity g (CHead c0 (Bind 
+Abst) u) t a4)))) (\lambda (x0: A).(\lambda (x1: A).(\lambda (H9: (eq A a1 
+(AHead x0 x1))).(\lambda (H10: (arity g c0 u (asucc g x0))).(\lambda (H11: 
+(arity g (CHead c0 (Bind Abst) u) t x1)).(let H12 \def (eq_ind A a1 (\lambda 
+(a0: A).(leq g a0 a2)) H3 (AHead x0 x1) H9) in (let H13 \def (eq_ind A a1 
+(\lambda (a0: A).(arity g c0 (THead (Bind Abst) u t) a0)) H7 (AHead x0 x1) 
+H9) in (let H_x \def (leq_gen_head1 g x0 x1 a2 H12) in (let H14 \def H_x in 
+(ex3_2_ind A A (\lambda (a3: A).(\lambda (_: A).(leq g x0 a3))) (\lambda (_: 
+A).(\lambda (a4: A).(leq g x1 a4))) (\lambda (a3: A).(\lambda (a4: A).(eq A 
+a2 (AHead a3 a4)))) (ex3_2 A A (\lambda (a3: A).(\lambda (a4: A).(eq A a2 
+(AHead a3 a4)))) (\lambda (a3: A).(\lambda (_: A).(arity g c0 u (asucc g 
+a3)))) (\lambda (_: A).(\lambda (a4: A).(arity g (CHead c0 (Bind Abst) u) t 
+a4)))) (\lambda (x2: A).(\lambda (x3: A).(\lambda (H15: (leq g x0 
+x2)).(\lambda (H16: (leq g x1 x3)).(\lambda (H17: (eq A a2 (AHead x2 
+x3))).(let H18 \def (f_equal A A (\lambda (e: A).e) a2 (AHead x2 x3) H17) in 
+(eq_ind_r A (AHead x2 x3) (\lambda (a0: A).(ex3_2 A A (\lambda (a3: 
+A).(\lambda (a4: A).(eq A a0 (AHead a3 a4)))) (\lambda (a3: A).(\lambda (_: 
 A).(arity g c0 u (asucc g a3)))) (\lambda (_: A).(\lambda (a4: A).(arity g 
-(CHead c0 (Bind Abst) u) t a4)))) (\lambda (x2: A).(\lambda (x3: A).(\lambda 
-(H15: (leq g x0 x2)).(\lambda (H16: (leq g x1 x3)).(\lambda (H17: (eq A a2 
-(AHead x2 x3))).(let H18 \def (f_equal A A (\lambda (e: A).e) a2 (AHead x2 
-x3) H17) in (eq_ind_r A (AHead x2 x3) (\lambda (a0: A).(ex3_2 A A (\lambda 
-(a3: A).(\lambda (a4: A).(eq A a0 (AHead a3 a4)))) (\lambda (a3: A).(\lambda 
-(_: A).(arity g c0 u (asucc g a3)))) (\lambda (_: A).(\lambda (a4: A).(arity 
-g (CHead c0 (Bind Abst) u) t a4))))) (ex3_2_intro A A (\lambda (a3: 
-A).(\lambda (a4: A).(eq A (AHead x2 x3) (AHead a3 a4)))) (\lambda (a3: 
-A).(\lambda (_: A).(arity g c0 u (asucc g a3)))) (\lambda (_: A).(\lambda 
-(a4: A).(arity g (CHead c0 (Bind Abst) u) t a4))) x2 x3 (refl_equal A (AHead 
-x2 x3)) (arity_repl g c0 u (asucc g x0) H10 (asucc g x2) (asucc_repl g x0 x2 
-H15)) (arity_repl g (CHead c0 (Bind Abst) u) t x1 H11 x3 H16)) a2 H18))))))) 
+(CHead c0 (Bind Abst) u) t a4))))) (ex3_2_intro A A (\lambda (a3: A).(\lambda 
+(a4: A).(eq A (AHead x2 x3) (AHead a3 a4)))) (\lambda (a3: A).(\lambda (_: 
+A).(arity g c0 u (asucc g a3)))) (\lambda (_: A).(\lambda (a4: A).(arity g 
+(CHead c0 (Bind Abst) u) t a4))) x2 x3 (refl_equal A (AHead x2 x3)) 
+(arity_repl g c0 u (asucc g x0) H10 (asucc g x2) (asucc_repl g x0 x2 H15)) 
+(arity_repl g (CHead c0 (Bind Abst) u) t x1 H11 x3 H16)) a2 H18))))))) 
 H14)))))))))) H8))))))))))))) c y a H0))) H)))))).
-(* COMMENTS
-Initial nodes: 4265
-END *)
 
 theorem arity_gen_appl:
  \forall (g: G).(\forall (c: C).(\forall (u: T).(\forall (t: T).(\forall (a2: 
@@ -707,116 +712,108 @@ a2))))) (\lambda (y: T).(\lambda (H0: (arity g c y a2)).(arity_ind g (\lambda
 \to (ex2 A (\lambda (a1: A).(arity g c0 u a1)) (\lambda (a1: A).(arity g c0 t 
 (AHead a1 a)))))))) (\lambda (c0: C).(\lambda (n: nat).(\lambda (H1: (eq T 
 (TSort n) (THead (Flat Appl) u t))).(let H2 \def (eq_ind T (TSort n) (\lambda 
-(ee: T).(match ee in T return (\lambda (_: T).Prop) with [(TSort _) 
-\Rightarrow True | (TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow 
-False])) I (THead (Flat Appl) u t) H1) in (False_ind (ex2 A (\lambda (a1: 
-A).(arity g c0 u a1)) (\lambda (a1: A).(arity g c0 t (AHead a1 (ASort O 
-n))))) H2))))) (\lambda (c0: C).(\lambda (d: C).(\lambda (u0: T).(\lambda (i: 
-nat).(\lambda (_: (getl i c0 (CHead d (Bind Abbr) u0))).(\lambda (a: 
-A).(\lambda (_: (arity g d u0 a)).(\lambda (_: (((eq T u0 (THead (Flat Appl) 
-u t)) \to (ex2 A (\lambda (a1: A).(arity g d u a1)) (\lambda (a1: A).(arity g 
-d t (AHead a1 a))))))).(\lambda (H4: (eq T (TLRef i) (THead (Flat Appl) u 
-t))).(let H5 \def (eq_ind T (TLRef i) (\lambda (ee: T).(match ee in T return 
-(\lambda (_: T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) 
-\Rightarrow True | (THead _ _ _) \Rightarrow False])) I (THead (Flat Appl) u 
-t) H4) in (False_ind (ex2 A (\lambda (a1: A).(arity g c0 u a1)) (\lambda (a1: 
-A).(arity g c0 t (AHead a1 a)))) H5))))))))))) (\lambda (c0: C).(\lambda (d: 
+(ee: T).(match ee with [(TSort _) \Rightarrow True | (TLRef _) \Rightarrow 
+False | (THead _ _ _) \Rightarrow False])) I (THead (Flat Appl) u t) H1) in 
+(False_ind (ex2 A (\lambda (a1: A).(arity g c0 u a1)) (\lambda (a1: A).(arity 
+g c0 t (AHead a1 (ASort O n))))) H2))))) (\lambda (c0: C).(\lambda (d: 
+C).(\lambda (u0: T).(\lambda (i: nat).(\lambda (_: (getl i c0 (CHead d (Bind 
+Abbr) u0))).(\lambda (a: A).(\lambda (_: (arity g d u0 a)).(\lambda (_: (((eq 
+T u0 (THead (Flat Appl) u t)) \to (ex2 A (\lambda (a1: A).(arity g d u a1)) 
+(\lambda (a1: A).(arity g d t (AHead a1 a))))))).(\lambda (H4: (eq T (TLRef 
+i) (THead (Flat Appl) u t))).(let H5 \def (eq_ind T (TLRef i) (\lambda (ee: 
+T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow True | 
+(THead _ _ _) \Rightarrow False])) I (THead (Flat Appl) u t) H4) in 
+(False_ind (ex2 A (\lambda (a1: A).(arity g c0 u a1)) (\lambda (a1: A).(arity 
+g c0 t (AHead a1 a)))) H5))))))))))) (\lambda (c0: C).(\lambda (d: 
 C).(\lambda (u0: T).(\lambda (i: nat).(\lambda (_: (getl i c0 (CHead d (Bind 
 Abst) u0))).(\lambda (a: A).(\lambda (_: (arity g d u0 (asucc g a))).(\lambda 
 (_: (((eq T u0 (THead (Flat Appl) u t)) \to (ex2 A (\lambda (a1: A).(arity g 
 d u a1)) (\lambda (a1: A).(arity g d t (AHead a1 (asucc g a)))))))).(\lambda 
 (H4: (eq T (TLRef i) (THead (Flat Appl) u t))).(let H5 \def (eq_ind T (TLRef 
-i) (\lambda (ee: T).(match ee in T return (\lambda (_: T).Prop) with [(TSort 
-_) \Rightarrow False | (TLRef _) \Rightarrow True | (THead _ _ _) \Rightarrow 
-False])) I (THead (Flat Appl) u t) H4) in (False_ind (ex2 A (\lambda (a1: 
-A).(arity g c0 u a1)) (\lambda (a1: A).(arity g c0 t (AHead a1 a)))) 
-H5))))))))))) (\lambda (b: B).(\lambda (_: (not (eq B b Abst))).(\lambda (c0: 
-C).(\lambda (u0: T).(\lambda (a1: A).(\lambda (_: (arity g c0 u0 
-a1)).(\lambda (_: (((eq T u0 (THead (Flat Appl) u t)) \to (ex2 A (\lambda 
-(a3: A).(arity g c0 u a3)) (\lambda (a3: A).(arity g c0 t (AHead a3 
-a1))))))).(\lambda (t0: T).(\lambda (a0: A).(\lambda (_: (arity g (CHead c0 
-(Bind b) u0) t0 a0)).(\lambda (_: (((eq T t0 (THead (Flat Appl) u t)) \to 
-(ex2 A (\lambda (a3: A).(arity g (CHead c0 (Bind b) u0) u a3)) (\lambda (a3: 
-A).(arity g (CHead c0 (Bind b) u0) t (AHead a3 a0))))))).(\lambda (H6: (eq T 
-(THead (Bind b) u0 t0) (THead (Flat Appl) u t))).(let H7 \def (eq_ind T 
-(THead (Bind b) u0 t0) (\lambda (ee: T).(match ee in T return (\lambda (_: 
-T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | 
-(THead k _ _) \Rightarrow (match k in K return (\lambda (_: K).Prop) with 
-[(Bind _) \Rightarrow True | (Flat _) \Rightarrow False])])) I (THead (Flat 
-Appl) u t) H6) in (False_ind (ex2 A (\lambda (a3: A).(arity g c0 u a3)) 
-(\lambda (a3: A).(arity g c0 t (AHead a3 a0)))) H7)))))))))))))) (\lambda 
-(c0: C).(\lambda (u0: T).(\lambda (a1: A).(\lambda (_: (arity g c0 u0 (asucc 
-g a1))).(\lambda (_: (((eq T u0 (THead (Flat Appl) u t)) \to (ex2 A (\lambda 
-(a3: A).(arity g c0 u a3)) (\lambda (a3: A).(arity g c0 t (AHead a3 (asucc g 
-a1)))))))).(\lambda (t0: T).(\lambda (a0: A).(\lambda (_: (arity g (CHead c0 
-(Bind Abst) u0) t0 a0)).(\lambda (_: (((eq T t0 (THead (Flat Appl) u t)) \to 
-(ex2 A (\lambda (a3: A).(arity g (CHead c0 (Bind Abst) u0) u a3)) (\lambda 
-(a3: A).(arity g (CHead c0 (Bind Abst) u0) t (AHead a3 a0))))))).(\lambda 
-(H5: (eq T (THead (Bind Abst) u0 t0) (THead (Flat Appl) u t))).(let H6 \def 
-(eq_ind T (THead (Bind Abst) u0 t0) (\lambda (ee: T).(match ee in T return 
-(\lambda (_: T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) 
-\Rightarrow False | (THead k _ _) \Rightarrow (match k in K return (\lambda 
-(_: K).Prop) with [(Bind _) \Rightarrow True | (Flat _) \Rightarrow 
-False])])) I (THead (Flat Appl) u t) H5) in (False_ind (ex2 A (\lambda (a3: 
-A).(arity g c0 u a3)) (\lambda (a3: A).(arity g c0 t (AHead a3 (AHead a1 
-a0))))) H6)))))))))))) (\lambda (c0: C).(\lambda (u0: T).(\lambda (a1: 
-A).(\lambda (H1: (arity g c0 u0 a1)).(\lambda (H2: (((eq T u0 (THead (Flat 
+i) (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) 
+\Rightarrow True | (THead _ _ _) \Rightarrow False])) I (THead (Flat Appl) u 
+t) H4) in (False_ind (ex2 A (\lambda (a1: A).(arity g c0 u a1)) (\lambda (a1: 
+A).(arity g c0 t (AHead a1 a)))) H5))))))))))) (\lambda (b: B).(\lambda (_: 
+(not (eq B b Abst))).(\lambda (c0: C).(\lambda (u0: T).(\lambda (a1: 
+A).(\lambda (_: (arity g c0 u0 a1)).(\lambda (_: (((eq T u0 (THead (Flat 
 Appl) u t)) \to (ex2 A (\lambda (a3: A).(arity g c0 u a3)) (\lambda (a3: 
 A).(arity g c0 t (AHead a3 a1))))))).(\lambda (t0: T).(\lambda (a0: 
-A).(\lambda (H3: (arity g c0 t0 (AHead a1 a0))).(\lambda (H4: (((eq T t0 
-(THead (Flat Appl) u t)) \to (ex2 A (\lambda (a3: A).(arity g c0 u a3)) 
-(\lambda (a3: A).(arity g c0 t (AHead a3 (AHead a1 a0)))))))).(\lambda (H5: 
-(eq T (THead (Flat Appl) u0 t0) (THead (Flat Appl) u t))).(let H6 \def 
-(f_equal T T (\lambda (e: T).(match e in T return (\lambda (_: T).T) with 
+A).(\lambda (_: (arity g (CHead c0 (Bind b) u0) t0 a0)).(\lambda (_: (((eq T 
+t0 (THead (Flat Appl) u t)) \to (ex2 A (\lambda (a3: A).(arity g (CHead c0 
+(Bind b) u0) u a3)) (\lambda (a3: A).(arity g (CHead c0 (Bind b) u0) t (AHead 
+a3 a0))))))).(\lambda (H6: (eq T (THead (Bind b) u0 t0) (THead (Flat Appl) u 
+t))).(let H7 \def (eq_ind T (THead (Bind b) u0 t0) (\lambda (ee: T).(match ee 
+with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ 
+_) \Rightarrow (match k with [(Bind _) \Rightarrow True | (Flat _) 
+\Rightarrow False])])) I (THead (Flat Appl) u t) H6) in (False_ind (ex2 A 
+(\lambda (a3: A).(arity g c0 u a3)) (\lambda (a3: A).(arity g c0 t (AHead a3 
+a0)))) H7)))))))))))))) (\lambda (c0: C).(\lambda (u0: T).(\lambda (a1: 
+A).(\lambda (_: (arity g c0 u0 (asucc g a1))).(\lambda (_: (((eq T u0 (THead 
+(Flat Appl) u t)) \to (ex2 A (\lambda (a3: A).(arity g c0 u a3)) (\lambda 
+(a3: A).(arity g c0 t (AHead a3 (asucc g a1)))))))).(\lambda (t0: T).(\lambda 
+(a0: A).(\lambda (_: (arity g (CHead c0 (Bind Abst) u0) t0 a0)).(\lambda (_: 
+(((eq T t0 (THead (Flat Appl) u t)) \to (ex2 A (\lambda (a3: A).(arity g 
+(CHead c0 (Bind Abst) u0) u a3)) (\lambda (a3: A).(arity g (CHead c0 (Bind 
+Abst) u0) t (AHead a3 a0))))))).(\lambda (H5: (eq T (THead (Bind Abst) u0 t0) 
+(THead (Flat Appl) u t))).(let H6 \def (eq_ind T (THead (Bind Abst) u0 t0) 
+(\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) 
+\Rightarrow False | (THead k _ _) \Rightarrow (match k with [(Bind _) 
+\Rightarrow True | (Flat _) \Rightarrow False])])) I (THead (Flat Appl) u t) 
+H5) in (False_ind (ex2 A (\lambda (a3: A).(arity g c0 u a3)) (\lambda (a3: 
+A).(arity g c0 t (AHead a3 (AHead a1 a0))))) H6)))))))))))) (\lambda (c0: 
+C).(\lambda (u0: T).(\lambda (a1: A).(\lambda (H1: (arity g c0 u0 
+a1)).(\lambda (H2: (((eq T u0 (THead (Flat Appl) u t)) \to (ex2 A (\lambda 
+(a3: A).(arity g c0 u a3)) (\lambda (a3: A).(arity g c0 t (AHead a3 
+a1))))))).(\lambda (t0: T).(\lambda (a0: A).(\lambda (H3: (arity g c0 t0 
+(AHead a1 a0))).(\lambda (H4: (((eq T t0 (THead (Flat Appl) u t)) \to (ex2 A 
+(\lambda (a3: A).(arity g c0 u a3)) (\lambda (a3: A).(arity g c0 t (AHead a3 
+(AHead a1 a0)))))))).(\lambda (H5: (eq T (THead (Flat Appl) u0 t0) (THead 
+(Flat Appl) u t))).(let H6 \def (f_equal T T (\lambda (e: T).(match e with 
 [(TSort _) \Rightarrow u0 | (TLRef _) \Rightarrow u0 | (THead _ t1 _) 
 \Rightarrow t1])) (THead (Flat Appl) u0 t0) (THead (Flat Appl) u t) H5) in 
-((let H7 \def (f_equal T T (\lambda (e: T).(match e in T return (\lambda (_: 
-T).T) with [(TSort _) \Rightarrow t0 | (TLRef _) \Rightarrow t0 | (THead _ _ 
-t1) \Rightarrow t1])) (THead (Flat Appl) u0 t0) (THead (Flat Appl) u t) H5) 
-in (\lambda (H8: (eq T u0 u)).(let H9 \def (eq_ind T t0 (\lambda (t1: T).((eq 
-T t1 (THead (Flat Appl) u t)) \to (ex2 A (\lambda (a3: A).(arity g c0 u a3)) 
-(\lambda (a3: A).(arity g c0 t (AHead a3 (AHead a1 a0))))))) H4 t H7) in (let 
-H10 \def (eq_ind T t0 (\lambda (t1: T).(arity g c0 t1 (AHead a1 a0))) H3 t 
-H7) in (let H11 \def (eq_ind T u0 (\lambda (t1: T).((eq T t1 (THead (Flat 
+((let H7 \def (f_equal T T (\lambda (e: T).(match e with [(TSort _) 
+\Rightarrow t0 | (TLRef _) \Rightarrow t0 | (THead _ _ t1) \Rightarrow t1])) 
+(THead (Flat Appl) u0 t0) (THead (Flat Appl) u t) H5) in (\lambda (H8: (eq T 
+u0 u)).(let H9 \def (eq_ind T t0 (\lambda (t1: T).((eq T t1 (THead (Flat 
 Appl) u t)) \to (ex2 A (\lambda (a3: A).(arity g c0 u a3)) (\lambda (a3: 
-A).(arity g c0 t (AHead a3 a1)))))) H2 u H8) in (let H12 \def (eq_ind T u0 
-(\lambda (t1: T).(arity g c0 t1 a1)) H1 u H8) in (ex_intro2 A (\lambda (a3: 
-A).(arity g c0 u a3)) (\lambda (a3: A).(arity g c0 t (AHead a3 a0))) a1 H12 
-H10))))))) H6)))))))))))) (\lambda (c0: C).(\lambda (u0: T).(\lambda (a: 
-A).(\lambda (_: (arity g c0 u0 (asucc g a))).(\lambda (_: (((eq T u0 (THead 
-(Flat Appl) u t)) \to (ex2 A (\lambda (a1: A).(arity g c0 u a1)) (\lambda 
-(a1: A).(arity g c0 t (AHead a1 (asucc g a)))))))).(\lambda (t0: T).(\lambda 
-(_: (arity g c0 t0 a)).(\lambda (_: (((eq T t0 (THead (Flat Appl) u t)) \to 
-(ex2 A (\lambda (a1: A).(arity g c0 u a1)) (\lambda (a1: A).(arity g c0 t 
-(AHead a1 a))))))).(\lambda (H5: (eq T (THead (Flat Cast) u0 t0) (THead (Flat 
-Appl) u t))).(let H6 \def (eq_ind T (THead (Flat Cast) u0 t0) (\lambda (ee: 
-T).(match ee in T return (\lambda (_: T).Prop) with [(TSort _) \Rightarrow 
-False | (TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow (match k in K 
-return (\lambda (_: K).Prop) with [(Bind _) \Rightarrow False | (Flat f) 
-\Rightarrow (match f in F return (\lambda (_: F).Prop) with [Appl \Rightarrow 
-False | Cast \Rightarrow True])])])) I (THead (Flat Appl) u t) H5) in 
-(False_ind (ex2 A (\lambda (a1: A).(arity g c0 u a1)) (\lambda (a1: A).(arity 
-g c0 t (AHead a1 a)))) H6))))))))))) (\lambda (c0: C).(\lambda (t0: 
-T).(\lambda (a1: A).(\lambda (H1: (arity g c0 t0 a1)).(\lambda (H2: (((eq T 
-t0 (THead (Flat Appl) u t)) \to (ex2 A (\lambda (a3: A).(arity g c0 u a3)) 
-(\lambda (a3: A).(arity g c0 t (AHead a3 a1))))))).(\lambda (a0: A).(\lambda 
-(H3: (leq g a1 a0)).(\lambda (H4: (eq T t0 (THead (Flat Appl) u t))).(let H5 
-\def (f_equal T T (\lambda (e: T).e) t0 (THead (Flat Appl) u t) H4) in (let 
-H6 \def (eq_ind T t0 (\lambda (t1: T).((eq T t1 (THead (Flat Appl) u t)) \to 
+A).(arity g c0 t (AHead a3 (AHead a1 a0))))))) H4 t H7) in (let H10 \def 
+(eq_ind T t0 (\lambda (t1: T).(arity g c0 t1 (AHead a1 a0))) H3 t H7) in (let 
+H11 \def (eq_ind T u0 (\lambda (t1: T).((eq T t1 (THead (Flat Appl) u t)) \to 
 (ex2 A (\lambda (a3: A).(arity g c0 u a3)) (\lambda (a3: A).(arity g c0 t 
-(AHead a3 a1)))))) H2 (THead (Flat Appl) u t) H5) in (let H7 \def (eq_ind T 
-t0 (\lambda (t1: T).(arity g c0 t1 a1)) H1 (THead (Flat Appl) u t) H5) in 
-(let H8 \def (H6 (refl_equal T (THead (Flat Appl) u t))) in (ex2_ind A 
-(\lambda (a3: A).(arity g c0 u a3)) (\lambda (a3: A).(arity g c0 t (AHead a3 
-a1))) (ex2 A (\lambda (a3: A).(arity g c0 u a3)) (\lambda (a3: A).(arity g c0 
-t (AHead a3 a0)))) (\lambda (x: A).(\lambda (H9: (arity g c0 u x)).(\lambda 
-(H10: (arity g c0 t (AHead x a1))).(ex_intro2 A (\lambda (a3: A).(arity g c0 
-u a3)) (\lambda (a3: A).(arity g c0 t (AHead a3 a0))) x H9 (arity_repl g c0 t 
-(AHead x a1) H10 (AHead x a0) (leq_head g x x (leq_refl g x) a1 a0 H3)))))) 
-H8))))))))))))) c y a2 H0))) H)))))).
-(* COMMENTS
-Initial nodes: 2277
-END *)
+(AHead a3 a1)))))) H2 u H8) in (let H12 \def (eq_ind T u0 (\lambda (t1: 
+T).(arity g c0 t1 a1)) H1 u H8) in (ex_intro2 A (\lambda (a3: A).(arity g c0 
+u a3)) (\lambda (a3: A).(arity g c0 t (AHead a3 a0))) a1 H12 H10))))))) 
+H6)))))))))))) (\lambda (c0: C).(\lambda (u0: T).(\lambda (a: A).(\lambda (_: 
+(arity g c0 u0 (asucc g a))).(\lambda (_: (((eq T u0 (THead (Flat Appl) u t)) 
+\to (ex2 A (\lambda (a1: A).(arity g c0 u a1)) (\lambda (a1: A).(arity g c0 t 
+(AHead a1 (asucc g a)))))))).(\lambda (t0: T).(\lambda (_: (arity g c0 t0 
+a)).(\lambda (_: (((eq T t0 (THead (Flat Appl) u t)) \to (ex2 A (\lambda (a1: 
+A).(arity g c0 u a1)) (\lambda (a1: A).(arity g c0 t (AHead a1 
+a))))))).(\lambda (H5: (eq T (THead (Flat Cast) u0 t0) (THead (Flat Appl) u 
+t))).(let H6 \def (eq_ind T (THead (Flat Cast) u0 t0) (\lambda (ee: T).(match 
+ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | (THead k 
+_ _) \Rightarrow (match k with [(Bind _) \Rightarrow False | (Flat f) 
+\Rightarrow (match f with [Appl \Rightarrow False | Cast \Rightarrow 
+True])])])) I (THead (Flat Appl) u t) H5) in (False_ind (ex2 A (\lambda (a1: 
+A).(arity g c0 u a1)) (\lambda (a1: A).(arity g c0 t (AHead a1 a)))) 
+H6))))))))))) (\lambda (c0: C).(\lambda (t0: T).(\lambda (a1: A).(\lambda 
+(H1: (arity g c0 t0 a1)).(\lambda (H2: (((eq T t0 (THead (Flat Appl) u t)) 
+\to (ex2 A (\lambda (a3: A).(arity g c0 u a3)) (\lambda (a3: A).(arity g c0 t 
+(AHead a3 a1))))))).(\lambda (a0: A).(\lambda (H3: (leq g a1 a0)).(\lambda 
+(H4: (eq T t0 (THead (Flat Appl) u t))).(let H5 \def (f_equal T T (\lambda 
+(e: T).e) t0 (THead (Flat Appl) u t) H4) in (let H6 \def (eq_ind T t0 
+(\lambda (t1: T).((eq T t1 (THead (Flat Appl) u t)) \to (ex2 A (\lambda (a3: 
+A).(arity g c0 u a3)) (\lambda (a3: A).(arity g c0 t (AHead a3 a1)))))) H2 
+(THead (Flat Appl) u t) H5) in (let H7 \def (eq_ind T t0 (\lambda (t1: 
+T).(arity g c0 t1 a1)) H1 (THead (Flat Appl) u t) H5) in (let H8 \def (H6 
+(refl_equal T (THead (Flat Appl) u t))) in (ex2_ind A (\lambda (a3: A).(arity 
+g c0 u a3)) (\lambda (a3: A).(arity g c0 t (AHead a3 a1))) (ex2 A (\lambda 
+(a3: A).(arity g c0 u a3)) (\lambda (a3: A).(arity g c0 t (AHead a3 a0)))) 
+(\lambda (x: A).(\lambda (H9: (arity g c0 u x)).(\lambda (H10: (arity g c0 t 
+(AHead x a1))).(ex_intro2 A (\lambda (a3: A).(arity g c0 u a3)) (\lambda (a3: 
+A).(arity g c0 t (AHead a3 a0))) x H9 (arity_repl g c0 t (AHead x a1) H10 
+(AHead x a0) (leq_head g x x (leq_refl g x) a1 a0 H3)))))) H8))))))))))))) c 
+y a2 H0))) H)))))).
 
 theorem arity_gen_cast:
  \forall (g: G).(\forall (c: C).(\forall (u: T).(\forall (t: T).(\forall (a: 
@@ -831,16 +828,15 @@ A).(\lambda (H: (arity g c (THead (Flat Cast) u t) a)).(insert_eq T (THead
 A).((eq T t0 (THead (Flat Cast) u t)) \to (land (arity g c0 u (asucc g a0)) 
 (arity g c0 t a0)))))) (\lambda (c0: C).(\lambda (n: nat).(\lambda (H1: (eq T 
 (TSort n) (THead (Flat Cast) u t))).(let H2 \def (eq_ind T (TSort n) (\lambda 
-(ee: T).(match ee in T return (\lambda (_: T).Prop) with [(TSort _) 
-\Rightarrow True | (TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow 
-False])) I (THead (Flat Cast) u t) H1) in (False_ind (land (arity g c0 u 
-(asucc g (ASort O n))) (arity g c0 t (ASort O n))) H2))))) (\lambda (c0: 
-C).(\lambda (d: C).(\lambda (u0: T).(\lambda (i: nat).(\lambda (_: (getl i c0 
-(CHead d (Bind Abbr) u0))).(\lambda (a0: A).(\lambda (_: (arity g d u0 
-a0)).(\lambda (_: (((eq T u0 (THead (Flat Cast) u t)) \to (land (arity g d u 
-(asucc g a0)) (arity g d t a0))))).(\lambda (H4: (eq T (TLRef i) (THead (Flat 
-Cast) u t))).(let H5 \def (eq_ind T (TLRef i) (\lambda (ee: T).(match ee in T 
-return (\lambda (_: T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) 
+(ee: T).(match ee with [(TSort _) \Rightarrow True | (TLRef _) \Rightarrow 
+False | (THead _ _ _) \Rightarrow False])) I (THead (Flat Cast) u t) H1) in 
+(False_ind (land (arity g c0 u (asucc g (ASort O n))) (arity g c0 t (ASort O 
+n))) H2))))) (\lambda (c0: C).(\lambda (d: C).(\lambda (u0: T).(\lambda (i: 
+nat).(\lambda (_: (getl i c0 (CHead d (Bind Abbr) u0))).(\lambda (a0: 
+A).(\lambda (_: (arity g d u0 a0)).(\lambda (_: (((eq T u0 (THead (Flat Cast) 
+u t)) \to (land (arity g d u (asucc g a0)) (arity g d t a0))))).(\lambda (H4: 
+(eq T (TLRef i) (THead (Flat Cast) u t))).(let H5 \def (eq_ind T (TLRef i) 
+(\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) 
 \Rightarrow True | (THead _ _ _) \Rightarrow False])) I (THead (Flat Cast) u 
 t) H4) in (False_ind (land (arity g c0 u (asucc g a0)) (arity g c0 t a0)) 
 H5))))))))))) (\lambda (c0: C).(\lambda (d: C).(\lambda (u0: T).(\lambda (i: 
@@ -848,34 +844,32 @@ nat).(\lambda (_: (getl i c0 (CHead d (Bind Abst) u0))).(\lambda (a0:
 A).(\lambda (_: (arity g d u0 (asucc g a0))).(\lambda (_: (((eq T u0 (THead 
 (Flat Cast) u t)) \to (land (arity g d u (asucc g (asucc g a0))) (arity g d t 
 (asucc g a0)))))).(\lambda (H4: (eq T (TLRef i) (THead (Flat Cast) u 
-t))).(let H5 \def (eq_ind T (TLRef i) (\lambda (ee: T).(match ee in T return 
-(\lambda (_: T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) 
-\Rightarrow True | (THead _ _ _) \Rightarrow False])) I (THead (Flat Cast) u 
-t) H4) in (False_ind (land (arity g c0 u (asucc g a0)) (arity g c0 t a0)) 
-H5))))))))))) (\lambda (b: B).(\lambda (_: (not (eq B b Abst))).(\lambda (c0: 
-C).(\lambda (u0: T).(\lambda (a1: A).(\lambda (_: (arity g c0 u0 
-a1)).(\lambda (_: (((eq T u0 (THead (Flat Cast) u t)) \to (land (arity g c0 u 
-(asucc g a1)) (arity g c0 t a1))))).(\lambda (t0: T).(\lambda (a2: 
-A).(\lambda (_: (arity g (CHead c0 (Bind b) u0) t0 a2)).(\lambda (_: (((eq T 
-t0 (THead (Flat Cast) u t)) \to (land (arity g (CHead c0 (Bind b) u0) u 
-(asucc g a2)) (arity g (CHead c0 (Bind b) u0) t a2))))).(\lambda (H6: (eq T 
-(THead (Bind b) u0 t0) (THead (Flat Cast) u t))).(let H7 \def (eq_ind T 
-(THead (Bind b) u0 t0) (\lambda (ee: T).(match ee in T return (\lambda (_: 
-T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | 
-(THead k _ _) \Rightarrow (match k in K return (\lambda (_: K).Prop) with 
-[(Bind _) \Rightarrow True | (Flat _) \Rightarrow False])])) I (THead (Flat 
-Cast) u t) H6) in (False_ind (land (arity g c0 u (asucc g a2)) (arity g c0 t 
-a2)) H7)))))))))))))) (\lambda (c0: C).(\lambda (u0: T).(\lambda (a1: 
-A).(\lambda (_: (arity g c0 u0 (asucc g a1))).(\lambda (_: (((eq T u0 (THead 
-(Flat Cast) u t)) \to (land (arity g c0 u (asucc g (asucc g a1))) (arity g c0 
-t (asucc g a1)))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda (_: (arity g 
-(CHead c0 (Bind Abst) u0) t0 a2)).(\lambda (_: (((eq T t0 (THead (Flat Cast) 
-u t)) \to (land (arity g (CHead c0 (Bind Abst) u0) u (asucc g a2)) (arity g 
-(CHead c0 (Bind Abst) u0) t a2))))).(\lambda (H5: (eq T (THead (Bind Abst) u0 
-t0) (THead (Flat Cast) u t))).(let H6 \def (eq_ind T (THead (Bind Abst) u0 
-t0) (\lambda (ee: T).(match ee in T return (\lambda (_: T).Prop) with [(TSort 
-_) \Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _) 
-\Rightarrow (match k in K return (\lambda (_: K).Prop) with [(Bind _) 
+t))).(let H5 \def (eq_ind T (TLRef i) (\lambda (ee: T).(match ee with [(TSort 
+_) \Rightarrow False | (TLRef _) \Rightarrow True | (THead _ _ _) \Rightarrow 
+False])) I (THead (Flat Cast) u t) H4) in (False_ind (land (arity g c0 u 
+(asucc g a0)) (arity g c0 t a0)) H5))))))))))) (\lambda (b: B).(\lambda (_: 
+(not (eq B b Abst))).(\lambda (c0: C).(\lambda (u0: T).(\lambda (a1: 
+A).(\lambda (_: (arity g c0 u0 a1)).(\lambda (_: (((eq T u0 (THead (Flat 
+Cast) u t)) \to (land (arity g c0 u (asucc g a1)) (arity g c0 t 
+a1))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda (_: (arity g (CHead c0 
+(Bind b) u0) t0 a2)).(\lambda (_: (((eq T t0 (THead (Flat Cast) u t)) \to 
+(land (arity g (CHead c0 (Bind b) u0) u (asucc g a2)) (arity g (CHead c0 
+(Bind b) u0) t a2))))).(\lambda (H6: (eq T (THead (Bind b) u0 t0) (THead 
+(Flat Cast) u t))).(let H7 \def (eq_ind T (THead (Bind b) u0 t0) (\lambda 
+(ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow 
+False | (THead k _ _) \Rightarrow (match k with [(Bind _) \Rightarrow True | 
+(Flat _) \Rightarrow False])])) I (THead (Flat Cast) u t) H6) in (False_ind 
+(land (arity g c0 u (asucc g a2)) (arity g c0 t a2)) H7)))))))))))))) 
+(\lambda (c0: C).(\lambda (u0: T).(\lambda (a1: A).(\lambda (_: (arity g c0 
+u0 (asucc g a1))).(\lambda (_: (((eq T u0 (THead (Flat Cast) u t)) \to (land 
+(arity g c0 u (asucc g (asucc g a1))) (arity g c0 t (asucc g 
+a1)))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda (_: (arity g (CHead c0 
+(Bind Abst) u0) t0 a2)).(\lambda (_: (((eq T t0 (THead (Flat Cast) u t)) \to 
+(land (arity g (CHead c0 (Bind Abst) u0) u (asucc g a2)) (arity g (CHead c0 
+(Bind Abst) u0) t a2))))).(\lambda (H5: (eq T (THead (Bind Abst) u0 t0) 
+(THead (Flat Cast) u t))).(let H6 \def (eq_ind T (THead (Bind Abst) u0 t0) 
+(\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) 
+\Rightarrow False | (THead k _ _) \Rightarrow (match k with [(Bind _) 
 \Rightarrow True | (Flat _) \Rightarrow False])])) I (THead (Flat Cast) u t) 
 H5) in (False_ind (land (arity g c0 u (asucc g (AHead a1 a2))) (arity g c0 t 
 (AHead a1 a2))) H6)))))))))))) (\lambda (c0: C).(\lambda (u0: T).(\lambda 
@@ -885,51 +879,46 @@ a1))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda (_: (arity g c0 t0 (AHead
 a1 a2))).(\lambda (_: (((eq T t0 (THead (Flat Cast) u t)) \to (land (arity g 
 c0 u (asucc g (AHead a1 a2))) (arity g c0 t (AHead a1 a2)))))).(\lambda (H5: 
 (eq T (THead (Flat Appl) u0 t0) (THead (Flat Cast) u t))).(let H6 \def 
-(eq_ind T (THead (Flat Appl) u0 t0) (\lambda (ee: T).(match ee in T return 
-(\lambda (_: T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) 
-\Rightarrow False | (THead k _ _) \Rightarrow (match k in K return (\lambda 
-(_: K).Prop) with [(Bind _) \Rightarrow False | (Flat f) \Rightarrow (match f 
-in F return (\lambda (_: F).Prop) with [Appl \Rightarrow True | Cast 
-\Rightarrow False])])])) I (THead (Flat Cast) u t) H5) in (False_ind (land 
-(arity g c0 u (asucc g a2)) (arity g c0 t a2)) H6)))))))))))) (\lambda (c0: 
-C).(\lambda (u0: T).(\lambda (a0: A).(\lambda (H1: (arity g c0 u0 (asucc g 
-a0))).(\lambda (H2: (((eq T u0 (THead (Flat Cast) u t)) \to (land (arity g c0 
-u (asucc g (asucc g a0))) (arity g c0 t (asucc g a0)))))).(\lambda (t0: 
-T).(\lambda (H3: (arity g c0 t0 a0)).(\lambda (H4: (((eq T t0 (THead (Flat 
-Cast) u t)) \to (land (arity g c0 u (asucc g a0)) (arity g c0 t 
-a0))))).(\lambda (H5: (eq T (THead (Flat Cast) u0 t0) (THead (Flat Cast) u 
-t))).(let H6 \def (f_equal T T (\lambda (e: T).(match e in T return (\lambda 
-(_: T).T) with [(TSort _) \Rightarrow u0 | (TLRef _) \Rightarrow u0 | (THead 
-_ t1 _) \Rightarrow t1])) (THead (Flat Cast) u0 t0) (THead (Flat Cast) u t) 
-H5) in ((let H7 \def (f_equal T T (\lambda (e: T).(match e in T return 
-(\lambda (_: T).T) with [(TSort _) \Rightarrow t0 | (TLRef _) \Rightarrow t0 
-| (THead _ _ t1) \Rightarrow t1])) (THead (Flat Cast) u0 t0) (THead (Flat 
-Cast) u t) H5) in (\lambda (H8: (eq T u0 u)).(let H9 \def (eq_ind T t0 
-(\lambda (t1: T).((eq T t1 (THead (Flat Cast) u t)) \to (land (arity g c0 u 
-(asucc g a0)) (arity g c0 t a0)))) H4 t H7) in (let H10 \def (eq_ind T t0 
-(\lambda (t1: T).(arity g c0 t1 a0)) H3 t H7) in (let H11 \def (eq_ind T u0 
+(eq_ind T (THead (Flat Appl) u0 t0) (\lambda (ee: T).(match ee with [(TSort 
+_) \Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _) 
+\Rightarrow (match k with [(Bind _) \Rightarrow False | (Flat f) \Rightarrow 
+(match f with [Appl \Rightarrow True | Cast \Rightarrow False])])])) I (THead 
+(Flat Cast) u t) H5) in (False_ind (land (arity g c0 u (asucc g a2)) (arity g 
+c0 t a2)) H6)))))))))))) (\lambda (c0: C).(\lambda (u0: T).(\lambda (a0: 
+A).(\lambda (H1: (arity g c0 u0 (asucc g a0))).(\lambda (H2: (((eq T u0 
+(THead (Flat Cast) u t)) \to (land (arity g c0 u (asucc g (asucc g a0))) 
+(arity g c0 t (asucc g a0)))))).(\lambda (t0: T).(\lambda (H3: (arity g c0 t0 
+a0)).(\lambda (H4: (((eq T t0 (THead (Flat Cast) u t)) \to (land (arity g c0 
+u (asucc g a0)) (arity g c0 t a0))))).(\lambda (H5: (eq T (THead (Flat Cast) 
+u0 t0) (THead (Flat Cast) u t))).(let H6 \def (f_equal T T (\lambda (e: 
+T).(match e with [(TSort _) \Rightarrow u0 | (TLRef _) \Rightarrow u0 | 
+(THead _ t1 _) \Rightarrow t1])) (THead (Flat Cast) u0 t0) (THead (Flat Cast) 
+u t) H5) in ((let H7 \def (f_equal T T (\lambda (e: T).(match e with [(TSort 
+_) \Rightarrow t0 | (TLRef _) \Rightarrow t0 | (THead _ _ t1) \Rightarrow 
+t1])) (THead (Flat Cast) u0 t0) (THead (Flat Cast) u t) H5) in (\lambda (H8: 
+(eq T u0 u)).(let H9 \def (eq_ind T t0 (\lambda (t1: T).((eq T t1 (THead 
+(Flat Cast) u t)) \to (land (arity g c0 u (asucc g a0)) (arity g c0 t a0)))) 
+H4 t H7) in (let H10 \def (eq_ind T t0 (\lambda (t1: T).(arity g c0 t1 a0)) 
+H3 t H7) in (let H11 \def (eq_ind T u0 (\lambda (t1: T).((eq T t1 (THead 
+(Flat Cast) u t)) \to (land (arity g c0 u (asucc g (asucc g a0))) (arity g c0 
+t (asucc g a0))))) H2 u H8) in (let H12 \def (eq_ind T u0 (\lambda (t1: 
+T).(arity g c0 t1 (asucc g a0))) H1 u H8) in (conj (arity g c0 u (asucc g 
+a0)) (arity g c0 t a0) H12 H10))))))) H6))))))))))) (\lambda (c0: C).(\lambda 
+(t0: T).(\lambda (a1: A).(\lambda (H1: (arity g c0 t0 a1)).(\lambda (H2: 
+(((eq T t0 (THead (Flat Cast) u t)) \to (land (arity g c0 u (asucc g a1)) 
+(arity g c0 t a1))))).(\lambda (a2: A).(\lambda (H3: (leq g a1 a2)).(\lambda 
+(H4: (eq T t0 (THead (Flat Cast) u t))).(let H5 \def (f_equal T T (\lambda 
+(e: T).e) t0 (THead (Flat Cast) u t) H4) in (let H6 \def (eq_ind T t0 
 (\lambda (t1: T).((eq T t1 (THead (Flat Cast) u t)) \to (land (arity g c0 u 
-(asucc g (asucc g a0))) (arity g c0 t (asucc g a0))))) H2 u H8) in (let H12 
-\def (eq_ind T u0 (\lambda (t1: T).(arity g c0 t1 (asucc g a0))) H1 u H8) in 
-(conj (arity g c0 u (asucc g a0)) (arity g c0 t a0) H12 H10))))))) 
-H6))))))))))) (\lambda (c0: C).(\lambda (t0: T).(\lambda (a1: A).(\lambda 
-(H1: (arity g c0 t0 a1)).(\lambda (H2: (((eq T t0 (THead (Flat Cast) u t)) 
-\to (land (arity g c0 u (asucc g a1)) (arity g c0 t a1))))).(\lambda (a2: 
-A).(\lambda (H3: (leq g a1 a2)).(\lambda (H4: (eq T t0 (THead (Flat Cast) u 
-t))).(let H5 \def (f_equal T T (\lambda (e: T).e) t0 (THead (Flat Cast) u t) 
-H4) in (let H6 \def (eq_ind T t0 (\lambda (t1: T).((eq T t1 (THead (Flat 
-Cast) u t)) \to (land (arity g c0 u (asucc g a1)) (arity g c0 t a1)))) H2 
-(THead (Flat Cast) u t) H5) in (let H7 \def (eq_ind T t0 (\lambda (t1: 
-T).(arity g c0 t1 a1)) H1 (THead (Flat Cast) u t) H5) in (let H8 \def (H6 
-(refl_equal T (THead (Flat Cast) u t))) in (land_ind (arity g c0 u (asucc g 
-a1)) (arity g c0 t a1) (land (arity g c0 u (asucc g a2)) (arity g c0 t a2)) 
-(\lambda (H9: (arity g c0 u (asucc g a1))).(\lambda (H10: (arity g c0 t 
-a1)).(conj (arity g c0 u (asucc g a2)) (arity g c0 t a2) (arity_repl g c0 u 
-(asucc g a1) H9 (asucc g a2) (asucc_repl g a1 a2 H3)) (arity_repl g c0 t a1 
-H10 a2 H3)))) H8))))))))))))) c y a H0))) H)))))).
-(* COMMENTS
-Initial nodes: 2147
-END *)
+(asucc g a1)) (arity g c0 t a1)))) H2 (THead (Flat Cast) u t) H5) in (let H7 
+\def (eq_ind T t0 (\lambda (t1: T).(arity g c0 t1 a1)) H1 (THead (Flat Cast) 
+u t) H5) in (let H8 \def (H6 (refl_equal T (THead (Flat Cast) u t))) in 
+(land_ind (arity g c0 u (asucc g a1)) (arity g c0 t a1) (land (arity g c0 u 
+(asucc g a2)) (arity g c0 t a2)) (\lambda (H9: (arity g c0 u (asucc g 
+a1))).(\lambda (H10: (arity g c0 t a1)).(conj (arity g c0 u (asucc g a2)) 
+(arity g c0 t a2) (arity_repl g c0 u (asucc g a1) H9 (asucc g a2) (asucc_repl 
+g a1 a2 H3)) (arity_repl g c0 t a1 H10 a2 H3)))) H8))))))))))))) c y a H0))) 
+H)))))).
 
 theorem arity_gen_appls:
  \forall (g: G).(\forall (c: C).(\forall (t: T).(\forall (vs: TList).(\forall 
@@ -952,9 +941,6 @@ a2))).(let H_x \def (H (AHead x a2) H3) in (let H4 \def H_x in (ex_ind A
 (\lambda (a: A).(arity g c t a)) (ex A (\lambda (a: A).(arity g c t a))) 
 (\lambda (x0: A).(\lambda (H5: (arity g c t x0)).(ex_intro A (\lambda (a: 
 A).(arity g c t a)) x0 H5))) H4)))))) H1))))))) vs)))).
-(* COMMENTS
-Initial nodes: 341
-END *)
 
 theorem arity_gen_lift:
  \forall (g: G).(\forall (c1: C).(\forall (t: T).(\forall (a: A).(\forall (h: 
@@ -1157,7 +1143,149 @@ A).(\lambda (_: (arity g c t0 a1)).(\lambda (H2: ((\forall (x: nat).(\forall
 a2)).(\lambda (x: nat).(\lambda (x0: T).(\lambda (H4: (eq T t0 (lift h x 
 x0))).(\lambda (c2: C).(\lambda (H5: (drop h x c c2)).(arity_repl g c2 x0 a1 
 (H2 x x0 H4 c2 H5) a2 H3))))))))))))) c1 y a H0))))) H))))))).
-(* COMMENTS
-Initial nodes: 4693
-END *)
+
+theorem arity_mono:
+ \forall (g: G).(\forall (c: C).(\forall (t: T).(\forall (a1: A).((arity g c 
+t a1) \to (\forall (a2: A).((arity g c t a2) \to (leq g a1 a2)))))))
+\def
+ \lambda (g: G).(\lambda (c: C).(\lambda (t: T).(\lambda (a1: A).(\lambda (H: 
+(arity g c t a1)).(arity_ind g (\lambda (c0: C).(\lambda (t0: T).(\lambda (a: 
+A).(\forall (a2: A).((arity g c0 t0 a2) \to (leq g a a2)))))) (\lambda (c0: 
+C).(\lambda (n: nat).(\lambda (a2: A).(\lambda (H0: (arity g c0 (TSort n) 
+a2)).(leq_sym g a2 (ASort O n) (arity_gen_sort g c0 n a2 H0)))))) (\lambda 
+(c0: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: nat).(\lambda (H0: (getl 
+i c0 (CHead d (Bind Abbr) u))).(\lambda (a: A).(\lambda (_: (arity g d u 
+a)).(\lambda (H2: ((\forall (a2: A).((arity g d u a2) \to (leq g a 
+a2))))).(\lambda (a2: A).(\lambda (H3: (arity g c0 (TLRef i) a2)).(let H4 
+\def (arity_gen_lref g c0 i a2 H3) in (or_ind (ex2_2 C T (\lambda (d0: 
+C).(\lambda (u0: T).(getl i c0 (CHead d0 (Bind Abbr) u0)))) (\lambda (d0: 
+C).(\lambda (u0: T).(arity g d0 u0 a2)))) (ex2_2 C T (\lambda (d0: 
+C).(\lambda (u0: T).(getl i c0 (CHead d0 (Bind Abst) u0)))) (\lambda (d0: 
+C).(\lambda (u0: T).(arity g d0 u0 (asucc g a2))))) (leq g a a2) (\lambda 
+(H5: (ex2_2 C T (\lambda (d0: C).(\lambda (u0: T).(getl i c0 (CHead d0 (Bind 
+Abbr) u0)))) (\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 
+a2))))).(ex2_2_ind C T (\lambda (d0: C).(\lambda (u0: T).(getl i c0 (CHead d0 
+(Bind Abbr) u0)))) (\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 a2))) 
+(leq g a a2) (\lambda (x0: C).(\lambda (x1: T).(\lambda (H6: (getl i c0 
+(CHead x0 (Bind Abbr) x1))).(\lambda (H7: (arity g x0 x1 a2)).(let H8 \def 
+(eq_ind C (CHead d (Bind Abbr) u) (\lambda (c1: C).(getl i c0 c1)) H0 (CHead 
+x0 (Bind Abbr) x1) (getl_mono c0 (CHead d (Bind Abbr) u) i H0 (CHead x0 (Bind 
+Abbr) x1) H6)) in (let H9 \def (f_equal C C (\lambda (e: C).(match e with 
+[(CSort _) \Rightarrow d | (CHead c1 _ _) \Rightarrow c1])) (CHead d (Bind 
+Abbr) u) (CHead x0 (Bind Abbr) x1) (getl_mono c0 (CHead d (Bind Abbr) u) i H0 
+(CHead x0 (Bind Abbr) x1) H6)) in ((let H10 \def (f_equal C T (\lambda (e: 
+C).(match e with [(CSort _) \Rightarrow u | (CHead _ _ t0) \Rightarrow t0])) 
+(CHead d (Bind Abbr) u) (CHead x0 (Bind Abbr) x1) (getl_mono c0 (CHead d 
+(Bind Abbr) u) i H0 (CHead x0 (Bind Abbr) x1) H6)) in (\lambda (H11: (eq C d 
+x0)).(let H12 \def (eq_ind_r T x1 (\lambda (t0: T).(getl i c0 (CHead x0 (Bind 
+Abbr) t0))) H8 u H10) in (let H13 \def (eq_ind_r T x1 (\lambda (t0: T).(arity 
+g x0 t0 a2)) H7 u H10) in (let H14 \def (eq_ind_r C x0 (\lambda (c1: C).(getl 
+i c0 (CHead c1 (Bind Abbr) u))) H12 d H11) in (let H15 \def (eq_ind_r C x0 
+(\lambda (c1: C).(arity g c1 u a2)) H13 d H11) in (H2 a2 H15))))))) H9))))))) 
+H5)) (\lambda (H5: (ex2_2 C T (\lambda (d0: C).(\lambda (u0: T).(getl i c0 
+(CHead d0 (Bind Abst) u0)))) (\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 
+(asucc g a2)))))).(ex2_2_ind C T (\lambda (d0: C).(\lambda (u0: T).(getl i c0 
+(CHead d0 (Bind Abst) u0)))) (\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 
+(asucc g a2)))) (leq g a a2) (\lambda (x0: C).(\lambda (x1: T).(\lambda (H6: 
+(getl i c0 (CHead x0 (Bind Abst) x1))).(\lambda (_: (arity g x0 x1 (asucc g 
+a2))).(let H8 \def (eq_ind C (CHead d (Bind Abbr) u) (\lambda (c1: C).(getl i 
+c0 c1)) H0 (CHead x0 (Bind Abst) x1) (getl_mono c0 (CHead d (Bind Abbr) u) i 
+H0 (CHead x0 (Bind Abst) x1) H6)) in (let H9 \def (eq_ind C (CHead d (Bind 
+Abbr) u) (\lambda (ee: C).(match ee with [(CSort _) \Rightarrow False | 
+(CHead _ k _) \Rightarrow (match k with [(Bind b) \Rightarrow (match b with 
+[Abbr \Rightarrow True | Abst \Rightarrow False | Void \Rightarrow False]) | 
+(Flat _) \Rightarrow False])])) I (CHead x0 (Bind Abst) x1) (getl_mono c0 
+(CHead d (Bind Abbr) u) i H0 (CHead x0 (Bind Abst) x1) H6)) in (False_ind 
+(leq g a a2) H9))))))) H5)) H4)))))))))))) (\lambda (c0: C).(\lambda (d: 
+C).(\lambda (u: T).(\lambda (i: nat).(\lambda (H0: (getl i c0 (CHead d (Bind 
+Abst) u))).(\lambda (a: A).(\lambda (_: (arity g d u (asucc g a))).(\lambda 
+(H2: ((\forall (a2: A).((arity g d u a2) \to (leq g (asucc g a) 
+a2))))).(\lambda (a2: A).(\lambda (H3: (arity g c0 (TLRef i) a2)).(let H4 
+\def (arity_gen_lref g c0 i a2 H3) in (or_ind (ex2_2 C T (\lambda (d0: 
+C).(\lambda (u0: T).(getl i c0 (CHead d0 (Bind Abbr) u0)))) (\lambda (d0: 
+C).(\lambda (u0: T).(arity g d0 u0 a2)))) (ex2_2 C T (\lambda (d0: 
+C).(\lambda (u0: T).(getl i c0 (CHead d0 (Bind Abst) u0)))) (\lambda (d0: 
+C).(\lambda (u0: T).(arity g d0 u0 (asucc g a2))))) (leq g a a2) (\lambda 
+(H5: (ex2_2 C T (\lambda (d0: C).(\lambda (u0: T).(getl i c0 (CHead d0 (Bind 
+Abbr) u0)))) (\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 
+a2))))).(ex2_2_ind C T (\lambda (d0: C).(\lambda (u0: T).(getl i c0 (CHead d0 
+(Bind Abbr) u0)))) (\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 a2))) 
+(leq g a a2) (\lambda (x0: C).(\lambda (x1: T).(\lambda (H6: (getl i c0 
+(CHead x0 (Bind Abbr) x1))).(\lambda (_: (arity g x0 x1 a2)).(let H8 \def 
+(eq_ind C (CHead d (Bind Abst) u) (\lambda (c1: C).(getl i c0 c1)) H0 (CHead 
+x0 (Bind Abbr) x1) (getl_mono c0 (CHead d (Bind Abst) u) i H0 (CHead x0 (Bind 
+Abbr) x1) H6)) in (let H9 \def (eq_ind C (CHead d (Bind Abst) u) (\lambda 
+(ee: C).(match ee with [(CSort _) \Rightarrow False | (CHead _ k _) 
+\Rightarrow (match k with [(Bind b) \Rightarrow (match b with [Abbr 
+\Rightarrow False | Abst \Rightarrow True | Void \Rightarrow False]) | (Flat 
+_) \Rightarrow False])])) I (CHead x0 (Bind Abbr) x1) (getl_mono c0 (CHead d 
+(Bind Abst) u) i H0 (CHead x0 (Bind Abbr) x1) H6)) in (False_ind (leq g a a2) 
+H9))))))) H5)) (\lambda (H5: (ex2_2 C T (\lambda (d0: C).(\lambda (u0: 
+T).(getl i c0 (CHead d0 (Bind Abst) u0)))) (\lambda (d0: C).(\lambda (u0: 
+T).(arity g d0 u0 (asucc g a2)))))).(ex2_2_ind C T (\lambda (d0: C).(\lambda 
+(u0: T).(getl i c0 (CHead d0 (Bind Abst) u0)))) (\lambda (d0: C).(\lambda 
+(u0: T).(arity g d0 u0 (asucc g a2)))) (leq g a a2) (\lambda (x0: C).(\lambda 
+(x1: T).(\lambda (H6: (getl i c0 (CHead x0 (Bind Abst) x1))).(\lambda (H7: 
+(arity g x0 x1 (asucc g a2))).(let H8 \def (eq_ind C (CHead d (Bind Abst) u) 
+(\lambda (c1: C).(getl i c0 c1)) H0 (CHead x0 (Bind Abst) x1) (getl_mono c0 
+(CHead d (Bind Abst) u) i H0 (CHead x0 (Bind Abst) x1) H6)) in (let H9 \def 
+(f_equal C C (\lambda (e: C).(match e with [(CSort _) \Rightarrow d | (CHead 
+c1 _ _) \Rightarrow c1])) (CHead d (Bind Abst) u) (CHead x0 (Bind Abst) x1) 
+(getl_mono c0 (CHead d (Bind Abst) u) i H0 (CHead x0 (Bind Abst) x1) H6)) in 
+((let H10 \def (f_equal C T (\lambda (e: C).(match e with [(CSort _) 
+\Rightarrow u | (CHead _ _ t0) \Rightarrow t0])) (CHead d (Bind Abst) u) 
+(CHead x0 (Bind Abst) x1) (getl_mono c0 (CHead d (Bind Abst) u) i H0 (CHead 
+x0 (Bind Abst) x1) H6)) in (\lambda (H11: (eq C d x0)).(let H12 \def 
+(eq_ind_r T x1 (\lambda (t0: T).(getl i c0 (CHead x0 (Bind Abst) t0))) H8 u 
+H10) in (let H13 \def (eq_ind_r T x1 (\lambda (t0: T).(arity g x0 t0 (asucc g 
+a2))) H7 u H10) in (let H14 \def (eq_ind_r C x0 (\lambda (c1: C).(getl i c0 
+(CHead c1 (Bind Abst) u))) H12 d H11) in (let H15 \def (eq_ind_r C x0 
+(\lambda (c1: C).(arity g c1 u (asucc g a2))) H13 d H11) in (asucc_inj g a a2 
+(H2 (asucc g a2) H15)))))))) H9))))))) H5)) H4)))))))))))) (\lambda (b: 
+B).(\lambda (H0: (not (eq B b Abst))).(\lambda (c0: C).(\lambda (u: 
+T).(\lambda (a2: A).(\lambda (_: (arity g c0 u a2)).(\lambda (_: ((\forall 
+(a3: A).((arity g c0 u a3) \to (leq g a2 a3))))).(\lambda (t0: T).(\lambda 
+(a3: A).(\lambda (_: (arity g (CHead c0 (Bind b) u) t0 a3)).(\lambda (H4: 
+((\forall (a4: A).((arity g (CHead c0 (Bind b) u) t0 a4) \to (leq g a3 
+a4))))).(\lambda (a0: A).(\lambda (H5: (arity g c0 (THead (Bind b) u t0) 
+a0)).(let H6 \def (arity_gen_bind b H0 g c0 u t0 a0 H5) in (ex2_ind A 
+(\lambda (a4: A).(arity g c0 u a4)) (\lambda (_: A).(arity g (CHead c0 (Bind 
+b) u) t0 a0)) (leq g a3 a0) (\lambda (x: A).(\lambda (_: (arity g c0 u 
+x)).(\lambda (H8: (arity g (CHead c0 (Bind b) u) t0 a0)).(H4 a0 H8)))) 
+H6))))))))))))))) (\lambda (c0: C).(\lambda (u: T).(\lambda (a2: A).(\lambda 
+(_: (arity g c0 u (asucc g a2))).(\lambda (H1: ((\forall (a3: A).((arity g c0 
+u a3) \to (leq g (asucc g a2) a3))))).(\lambda (t0: T).(\lambda (a3: 
+A).(\lambda (_: (arity g (CHead c0 (Bind Abst) u) t0 a3)).(\lambda (H3: 
+((\forall (a4: A).((arity g (CHead c0 (Bind Abst) u) t0 a4) \to (leq g a3 
+a4))))).(\lambda (a0: A).(\lambda (H4: (arity g c0 (THead (Bind Abst) u t0) 
+a0)).(let H5 \def (arity_gen_abst g c0 u t0 a0 H4) in (ex3_2_ind A A (\lambda 
+(a4: A).(\lambda (a5: A).(eq A a0 (AHead a4 a5)))) (\lambda (a4: A).(\lambda 
+(_: A).(arity g c0 u (asucc g a4)))) (\lambda (_: A).(\lambda (a5: A).(arity 
+g (CHead c0 (Bind Abst) u) t0 a5))) (leq g (AHead a2 a3) a0) (\lambda (x0: 
+A).(\lambda (x1: A).(\lambda (H6: (eq A a0 (AHead x0 x1))).(\lambda (H7: 
+(arity g c0 u (asucc g x0))).(\lambda (H8: (arity g (CHead c0 (Bind Abst) u) 
+t0 x1)).(eq_ind_r A (AHead x0 x1) (\lambda (a: A).(leq g (AHead a2 a3) a)) 
+(leq_head g a2 x0 (asucc_inj g a2 x0 (H1 (asucc g x0) H7)) a3 x1 (H3 x1 H8)) 
+a0 H6)))))) H5))))))))))))) (\lambda (c0: C).(\lambda (u: T).(\lambda (a2: 
+A).(\lambda (_: (arity g c0 u a2)).(\lambda (_: ((\forall (a3: A).((arity g 
+c0 u a3) \to (leq g a2 a3))))).(\lambda (t0: T).(\lambda (a3: A).(\lambda (_: 
+(arity g c0 t0 (AHead a2 a3))).(\lambda (H3: ((\forall (a4: A).((arity g c0 
+t0 a4) \to (leq g (AHead a2 a3) a4))))).(\lambda (a0: A).(\lambda (H4: (arity 
+g c0 (THead (Flat Appl) u t0) a0)).(let H5 \def (arity_gen_appl g c0 u t0 a0 
+H4) in (ex2_ind A (\lambda (a4: A).(arity g c0 u a4)) (\lambda (a4: A).(arity 
+g c0 t0 (AHead a4 a0))) (leq g a3 a0) (\lambda (x: A).(\lambda (_: (arity g 
+c0 u x)).(\lambda (H7: (arity g c0 t0 (AHead x a0))).(ahead_inj_snd g a2 a3 x 
+a0 (H3 (AHead x a0) H7))))) H5))))))))))))) (\lambda (c0: C).(\lambda (u: 
+T).(\lambda (a: A).(\lambda (_: (arity g c0 u (asucc g a))).(\lambda (_: 
+((\forall (a2: A).((arity g c0 u a2) \to (leq g (asucc g a) a2))))).(\lambda 
+(t0: T).(\lambda (_: (arity g c0 t0 a)).(\lambda (H3: ((\forall (a2: 
+A).((arity g c0 t0 a2) \to (leq g a a2))))).(\lambda (a2: A).(\lambda (H4: 
+(arity g c0 (THead (Flat Cast) u t0) a2)).(let H5 \def (arity_gen_cast g c0 u 
+t0 a2 H4) in (land_ind (arity g c0 u (asucc g a2)) (arity g c0 t0 a2) (leq g 
+a a2) (\lambda (_: (arity g c0 u (asucc g a2))).(\lambda (H7: (arity g c0 t0 
+a2)).(H3 a2 H7))) H5)))))))))))) (\lambda (c0: C).(\lambda (t0: T).(\lambda 
+(a2: A).(\lambda (_: (arity g c0 t0 a2)).(\lambda (H1: ((\forall (a3: 
+A).((arity g c0 t0 a3) \to (leq g a2 a3))))).(\lambda (a3: A).(\lambda (H2: 
+(leq g a2 a3)).(\lambda (a0: A).(\lambda (H3: (arity g c0 t0 a0)).(leq_trans 
+g a3 a2 (leq_sym g a2 a3 H2) a0 (H1 a0 H3))))))))))) c t a1 H))))).
 
index 4077a8a1c117154e130fd249a94857cdc4e5e4c2..5d668d2c2d650d2a6e48a497a631ff226e96348f 100644 (file)
 
 (* This file was automatically generated: do not edit *********************)
 
-include "Basic-1/arity/props.ma".
+include "basic_1/arity/props.ma".
 
-include "Basic-1/drop1/fwd.ma".
+include "basic_1/drop1/fwd.ma".
 
 theorem arity_lift1:
  \forall (g: G).(\forall (a: A).(\forall (c2: C).(\forall (hds: 
 PList).(\forall (c1: C).(\forall (t: T).((drop1 hds c1 c2) \to ((arity g c2 t 
 a) \to (arity g c1 (lift1 hds t) a))))))))
 \def
- \lambda (g: G).(\lambda (a: A).(\lambda (c2: C).(\lambda (hds: 
-PList).(PList_ind (\lambda (p: PList).(\forall (c1: C).(\forall (t: 
-T).((drop1 p c1 c2) \to ((arity g c2 t a) \to (arity g c1 (lift1 p t) a)))))) 
-(\lambda (c1: C).(\lambda (t: T).(\lambda (H: (drop1 PNil c1 c2)).(\lambda 
-(H0: (arity g c2 t a)).(let H_y \def (drop1_gen_pnil c1 c2 H) in (eq_ind_r C 
-c2 (\lambda (c: C).(arity g c t a)) H0 c1 H_y)))))) (\lambda (n: 
+ \lambda (g: G).(\lambda (a: A).(\lambda (c2: C).(\lambda (hds: PList).(let 
+TMP_2 \def (\lambda (p: PList).(\forall (c1: C).(\forall (t: T).((drop1 p c1 
+c2) \to ((arity g c2 t a) \to (let TMP_1 \def (lift1 p t) in (arity g c1 
+TMP_1 a))))))) in (let TMP_4 \def (\lambda (c1: C).(\lambda (t: T).(\lambda 
+(H: (drop1 PNil c1 c2)).(\lambda (H0: (arity g c2 t a)).(let H_y \def 
+(drop1_gen_pnil c1 c2 H) in (let TMP_3 \def (\lambda (c: C).(arity g c t a)) 
+in (eq_ind_r C c2 TMP_3 H0 c1 H_y))))))) in (let TMP_13 \def (\lambda (n: 
 nat).(\lambda (n0: nat).(\lambda (p: PList).(\lambda (H: ((\forall (c1: 
 C).(\forall (t: T).((drop1 p c1 c2) \to ((arity g c2 t a) \to (arity g c1 
 (lift1 p t) a))))))).(\lambda (c1: C).(\lambda (t: T).(\lambda (H0: (drop1 
 (PCons n n0 p) c1 c2)).(\lambda (H1: (arity g c2 t a)).(let H_x \def 
-(drop1_gen_pcons c1 c2 p n n0 H0) in (let H2 \def H_x in (ex2_ind C (\lambda 
-(c3: C).(drop n n0 c1 c3)) (\lambda (c3: C).(drop1 p c3 c2)) (arity g c1 
-(lift n n0 (lift1 p t)) a) (\lambda (x: C).(\lambda (H3: (drop n n0 c1 
-x)).(\lambda (H4: (drop1 p x c2)).(arity_lift g x (lift1 p t) a (H x t H4 H1) 
-c1 n n0 H3)))) H2))))))))))) hds)))).
-(* COMMENTS
-Initial nodes: 289
-END *)
+(drop1_gen_pcons c1 c2 p n n0 H0) in (let H2 \def H_x in (let TMP_5 \def 
+(\lambda (c3: C).(drop n n0 c1 c3)) in (let TMP_6 \def (\lambda (c3: 
+C).(drop1 p c3 c2)) in (let TMP_7 \def (lift1 p t) in (let TMP_8 \def (lift n 
+n0 TMP_7) in (let TMP_9 \def (arity g c1 TMP_8 a) in (let TMP_12 \def 
+(\lambda (x: C).(\lambda (H3: (drop n n0 c1 x)).(\lambda (H4: (drop1 p x 
+c2)).(let TMP_10 \def (lift1 p t) in (let TMP_11 \def (H x t H4 H1) in 
+(arity_lift g x TMP_10 a TMP_11 c1 n n0 H3)))))) in (ex2_ind C TMP_5 TMP_6 
+TMP_9 TMP_12 H2))))))))))))))))) in (PList_ind TMP_2 TMP_4 TMP_13 hds))))))).
 
index f8952088ee20470060d56e69f6d2f49c20307b3e..68308fb93352096d078eb35d8d091d536d44cbb4 100644 (file)
 
 (* This file was automatically generated: do not edit *********************)
 
-include "Basic-1/csuba/arity.ma".
+include "basic_1/csuba/arity.ma".
 
-include "Basic-1/pr3/defs.ma".
+include "basic_1/pr3/fwd.ma".
 
-include "Basic-1/pr1/defs.ma".
+include "basic_1/pr1/fwd.ma".
 
-include "Basic-1/wcpr0/getl.ma".
+include "basic_1/wcpr0/getl.ma".
 
-include "Basic-1/pr0/fwd.ma".
+include "basic_1/pr0/props.ma".
 
-include "Basic-1/arity/subst0.ma".
+include "basic_1/arity/subst0.ma".
 
 theorem arity_sred_wcpr0_pr0:
  \forall (g: G).(\forall (c1: C).(\forall (t1: T).(\forall (a: A).((arity g 
@@ -83,108 +83,93 @@ T).(\lambda (u2: T).(\lambda (H8: (pr0 u1 u2)).(\lambda (H9: (((eq T u1
 (t4: T).(\lambda (H10: (pr0 t3 t4)).(\lambda (H11: (((eq T t3 (THead (Bind b) 
 u t)) \to (arity g c2 t4 a2)))).(\lambda (k: K).(\lambda (H12: (eq T (THead k 
 u1 t3) (THead (Bind b) u t))).(let H13 \def (f_equal T K (\lambda (e: 
-T).(match e in T return (\lambda (_: T).K) with [(TSort _) \Rightarrow k | 
-(TLRef _) \Rightarrow k | (THead k0 _ _) \Rightarrow k0])) (THead k u1 t3) 
-(THead (Bind b) u t) H12) in ((let H14 \def (f_equal T T (\lambda (e: 
-T).(match e in T return (\lambda (_: T).T) with [(TSort _) \Rightarrow u1 | 
-(TLRef _) \Rightarrow u1 | (THead _ t0 _) \Rightarrow t0])) (THead k u1 t3) 
+T).(match e with [(TSort _) \Rightarrow k | (TLRef _) \Rightarrow k | (THead 
+k0 _ _) \Rightarrow k0])) (THead k u1 t3) (THead (Bind b) u t) H12) in ((let 
+H14 \def (f_equal T T (\lambda (e: T).(match e with [(TSort _) \Rightarrow u1 
+| (TLRef _) \Rightarrow u1 | (THead _ t0 _) \Rightarrow t0])) (THead k u1 t3) 
 (THead (Bind b) u t) H12) in ((let H15 \def (f_equal T T (\lambda (e: 
-T).(match e in T return (\lambda (_: T).T) with [(TSort _) \Rightarrow t3 | 
-(TLRef _) \Rightarrow t3 | (THead _ _ t0) \Rightarrow t0])) (THead k u1 t3) 
-(THead (Bind b) u t) H12) in (\lambda (H16: (eq T u1 u)).(\lambda (H17: (eq K 
-k (Bind b))).(eq_ind_r K (Bind b) (\lambda (k0: K).(arity g c2 (THead k0 u2 
-t4) a2)) (let H18 \def (eq_ind T t3 (\lambda (t0: T).((eq T t0 (THead (Bind 
-b) u t)) \to (arity g c2 t4 a2))) H11 t H15) in (let H19 \def (eq_ind T t3 
-(\lambda (t0: T).(pr0 t0 t4)) H10 t H15) in (let H20 \def (eq_ind T u1 
+T).(match e with [(TSort _) \Rightarrow t3 | (TLRef _) \Rightarrow t3 | 
+(THead _ _ t0) \Rightarrow t0])) (THead k u1 t3) (THead (Bind b) u t) H12) in 
+(\lambda (H16: (eq T u1 u)).(\lambda (H17: (eq K k (Bind b))).(eq_ind_r K 
+(Bind b) (\lambda (k0: K).(arity g c2 (THead k0 u2 t4) a2)) (let H18 \def 
+(eq_ind T t3 (\lambda (t0: T).((eq T t0 (THead (Bind b) u t)) \to (arity g c2 
+t4 a2))) H11 t H15) in (let H19 \def (eq_ind T t3 (\lambda (t0: T).(pr0 t0 
+t4)) H10 t H15) in (let H20 \def (eq_ind T u1 (\lambda (t0: T).((eq T t0 
+(THead (Bind b) u t)) \to (arity g c2 u2 a2))) H9 u H16) in (let H21 \def 
+(eq_ind T u1 (\lambda (t0: T).(pr0 t0 u2)) H8 u H16) in (arity_bind g b H0 c2 
+u2 a1 (H2 c2 H5 u2 H21) t4 a2 (H4 (CHead c2 (Bind b) u2) (wcpr0_comp c c2 H5 
+u u2 H21 (Bind b)) t4 H19)))))) k H17)))) H14)) H13)))))))))))) (\lambda (u0: 
+T).(\lambda (v1: T).(\lambda (v2: T).(\lambda (_: (pr0 v1 v2)).(\lambda (_: 
+(((eq T v1 (THead (Bind b) u t)) \to (arity g c2 v2 a2)))).(\lambda (t3: 
+T).(\lambda (t4: T).(\lambda (_: (pr0 t3 t4)).(\lambda (_: (((eq T t3 (THead 
+(Bind b) u t)) \to (arity g c2 t4 a2)))).(\lambda (H12: (eq T (THead (Flat 
+Appl) v1 (THead (Bind Abst) u0 t3)) (THead (Bind b) u t))).(let H13 \def 
+(eq_ind T (THead (Flat Appl) v1 (THead (Bind Abst) u0 t3)) (\lambda (ee: 
+T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False 
+| (THead k _ _) \Rightarrow (match k with [(Bind _) \Rightarrow False | (Flat 
+_) \Rightarrow True])])) I (THead (Bind b) u t) H12) in (False_ind (arity g 
+c2 (THead (Bind Abbr) v2 t4) a2) H13)))))))))))) (\lambda (b0: B).(\lambda 
+(_: (not (eq B b0 Abst))).(\lambda (v1: T).(\lambda (v2: T).(\lambda (_: (pr0 
+v1 v2)).(\lambda (_: (((eq T v1 (THead (Bind b) u t)) \to (arity g c2 v2 
+a2)))).(\lambda (u1: T).(\lambda (u2: T).(\lambda (_: (pr0 u1 u2)).(\lambda 
+(_: (((eq T u1 (THead (Bind b) u t)) \to (arity g c2 u2 a2)))).(\lambda (t3: 
+T).(\lambda (t4: T).(\lambda (_: (pr0 t3 t4)).(\lambda (_: (((eq T t3 (THead 
+(Bind b) u t)) \to (arity g c2 t4 a2)))).(\lambda (H15: (eq T (THead (Flat 
+Appl) v1 (THead (Bind b0) u1 t3)) (THead (Bind b) u t))).(let H16 \def 
+(eq_ind T (THead (Flat Appl) v1 (THead (Bind b0) u1 t3)) (\lambda (ee: 
+T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False 
+| (THead k _ _) \Rightarrow (match k with [(Bind _) \Rightarrow False | (Flat 
+_) \Rightarrow True])])) I (THead (Bind b) u t) H15) in (False_ind (arity g 
+c2 (THead (Bind b0) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) a2) 
+H16))))))))))))))))) (\lambda (u1: T).(\lambda (u2: T).(\lambda (H8: (pr0 u1 
+u2)).(\lambda (H9: (((eq T u1 (THead (Bind b) u t)) \to (arity g c2 u2 
+a2)))).(\lambda (t3: T).(\lambda (t4: T).(\lambda (H10: (pr0 t3 t4)).(\lambda 
+(H11: (((eq T t3 (THead (Bind b) u t)) \to (arity g c2 t4 a2)))).(\lambda (w: 
+T).(\lambda (H12: (subst0 O u2 t4 w)).(\lambda (H13: (eq T (THead (Bind Abbr) 
+u1 t3) (THead (Bind b) u t))).(let H14 \def (f_equal T B (\lambda (e: 
+T).(match e with [(TSort _) \Rightarrow Abbr | (TLRef _) \Rightarrow Abbr | 
+(THead k _ _) \Rightarrow (match k with [(Bind b0) \Rightarrow b0 | (Flat _) 
+\Rightarrow Abbr])])) (THead (Bind Abbr) u1 t3) (THead (Bind b) u t) H13) in 
+((let H15 \def (f_equal T T (\lambda (e: T).(match e with [(TSort _) 
+\Rightarrow u1 | (TLRef _) \Rightarrow u1 | (THead _ t0 _) \Rightarrow t0])) 
+(THead (Bind Abbr) u1 t3) (THead (Bind b) u t) H13) in ((let H16 \def 
+(f_equal T T (\lambda (e: T).(match e with [(TSort _) \Rightarrow t3 | (TLRef 
+_) \Rightarrow t3 | (THead _ _ t0) \Rightarrow t0])) (THead (Bind Abbr) u1 
+t3) (THead (Bind b) u t) H13) in (\lambda (H17: (eq T u1 u)).(\lambda (H18: 
+(eq B Abbr b)).(let H19 \def (eq_ind T t3 (\lambda (t0: T).((eq T t0 (THead 
+(Bind b) u t)) \to (arity g c2 t4 a2))) H11 t H16) in (let H20 \def (eq_ind T 
+t3 (\lambda (t0: T).(pr0 t0 t4)) H10 t H16) in (let H21 \def (eq_ind T u1 
 (\lambda (t0: T).((eq T t0 (THead (Bind b) u t)) \to (arity g c2 u2 a2))) H9 
-u H16) in (let H21 \def (eq_ind T u1 (\lambda (t0: T).(pr0 t0 u2)) H8 u H16) 
-in (arity_bind g b H0 c2 u2 a1 (H2 c2 H5 u2 H21) t4 a2 (H4 (CHead c2 (Bind b) 
-u2) (wcpr0_comp c c2 H5 u u2 H21 (Bind b)) t4 H19)))))) k H17)))) H14)) 
-H13)))))))))))) (\lambda (u0: T).(\lambda (v1: T).(\lambda (v2: T).(\lambda 
-(_: (pr0 v1 v2)).(\lambda (_: (((eq T v1 (THead (Bind b) u t)) \to (arity g 
-c2 v2 a2)))).(\lambda (t3: T).(\lambda (t4: T).(\lambda (_: (pr0 t3 
-t4)).(\lambda (_: (((eq T t3 (THead (Bind b) u t)) \to (arity g c2 t4 
-a2)))).(\lambda (H12: (eq T (THead (Flat Appl) v1 (THead (Bind Abst) u0 t3)) 
-(THead (Bind b) u t))).(let H13 \def (eq_ind T (THead (Flat Appl) v1 (THead 
-(Bind Abst) u0 t3)) (\lambda (ee: T).(match ee in T return (\lambda (_: 
-T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | 
-(THead k _ _) \Rightarrow (match k in K return (\lambda (_: K).Prop) with 
-[(Bind _) \Rightarrow False | (Flat _) \Rightarrow True])])) I (THead (Bind 
-b) u t) H12) in (False_ind (arity g c2 (THead (Bind Abbr) v2 t4) a2) 
-H13)))))))))))) (\lambda (b0: B).(\lambda (_: (not (eq B b0 Abst))).(\lambda 
-(v1: T).(\lambda (v2: T).(\lambda (_: (pr0 v1 v2)).(\lambda (_: (((eq T v1 
-(THead (Bind b) u t)) \to (arity g c2 v2 a2)))).(\lambda (u1: T).(\lambda 
-(u2: T).(\lambda (_: (pr0 u1 u2)).(\lambda (_: (((eq T u1 (THead (Bind b) u 
-t)) \to (arity g c2 u2 a2)))).(\lambda (t3: T).(\lambda (t4: T).(\lambda (_: 
-(pr0 t3 t4)).(\lambda (_: (((eq T t3 (THead (Bind b) u t)) \to (arity g c2 t4 
-a2)))).(\lambda (H15: (eq T (THead (Flat Appl) v1 (THead (Bind b0) u1 t3)) 
-(THead (Bind b) u t))).(let H16 \def (eq_ind T (THead (Flat Appl) v1 (THead 
-(Bind b0) u1 t3)) (\lambda (ee: T).(match ee in T return (\lambda (_: 
-T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | 
-(THead k _ _) \Rightarrow (match k in K return (\lambda (_: K).Prop) with 
-[(Bind _) \Rightarrow False | (Flat _) \Rightarrow True])])) I (THead (Bind 
-b) u t) H15) in (False_ind (arity g c2 (THead (Bind b0) u2 (THead (Flat Appl) 
-(lift (S O) O v2) t4)) a2) H16))))))))))))))))) (\lambda (u1: T).(\lambda 
-(u2: T).(\lambda (H8: (pr0 u1 u2)).(\lambda (H9: (((eq T u1 (THead (Bind b) u 
-t)) \to (arity g c2 u2 a2)))).(\lambda (t3: T).(\lambda (t4: T).(\lambda 
-(H10: (pr0 t3 t4)).(\lambda (H11: (((eq T t3 (THead (Bind b) u t)) \to (arity 
-g c2 t4 a2)))).(\lambda (w: T).(\lambda (H12: (subst0 O u2 t4 w)).(\lambda 
-(H13: (eq T (THead (Bind Abbr) u1 t3) (THead (Bind b) u t))).(let H14 \def 
-(f_equal T B (\lambda (e: T).(match e in T return (\lambda (_: T).B) with 
-[(TSort _) \Rightarrow Abbr | (TLRef _) \Rightarrow Abbr | (THead k _ _) 
-\Rightarrow (match k in K return (\lambda (_: K).B) with [(Bind b0) 
-\Rightarrow b0 | (Flat _) \Rightarrow Abbr])])) (THead (Bind Abbr) u1 t3) 
-(THead (Bind b) u t) H13) in ((let H15 \def (f_equal T T (\lambda (e: 
-T).(match e in T return (\lambda (_: T).T) with [(TSort _) \Rightarrow u1 | 
-(TLRef _) \Rightarrow u1 | (THead _ t0 _) \Rightarrow t0])) (THead (Bind 
-Abbr) u1 t3) (THead (Bind b) u t) H13) in ((let H16 \def (f_equal T T 
-(\lambda (e: T).(match e in T return (\lambda (_: T).T) with [(TSort _) 
-\Rightarrow t3 | (TLRef _) \Rightarrow t3 | (THead _ _ t0) \Rightarrow t0])) 
-(THead (Bind Abbr) u1 t3) (THead (Bind b) u t) H13) in (\lambda (H17: (eq T 
-u1 u)).(\lambda (H18: (eq B Abbr b)).(let H19 \def (eq_ind T t3 (\lambda (t0: 
-T).((eq T t0 (THead (Bind b) u t)) \to (arity g c2 t4 a2))) H11 t H16) in 
-(let H20 \def (eq_ind T t3 (\lambda (t0: T).(pr0 t0 t4)) H10 t H16) in (let 
-H21 \def (eq_ind T u1 (\lambda (t0: T).((eq T t0 (THead (Bind b) u t)) \to 
-(arity g c2 u2 a2))) H9 u H17) in (let H22 \def (eq_ind T u1 (\lambda (t0: 
-T).(pr0 t0 u2)) H8 u H17) in (let H23 \def (eq_ind_r B b (\lambda (b0: 
-B).((eq T t (THead (Bind b0) u t)) \to (arity g c2 t4 a2))) H19 Abbr H18) in 
-(let H24 \def (eq_ind_r B b (\lambda (b0: B).((eq T u (THead (Bind b0) u t)) 
-\to (arity g c2 u2 a2))) H21 Abbr H18) in (let H25 \def (eq_ind_r B b 
-(\lambda (b0: B).(\forall (c3: C).((wcpr0 (CHead c (Bind b0) u) c3) \to 
-(\forall (t5: T).((pr0 t t5) \to (arity g c3 t5 a2)))))) H4 Abbr H18) in (let 
-H26 \def (eq_ind_r B b (\lambda (b0: B).(arity g (CHead c (Bind b0) u) t a2)) 
-H3 Abbr H18) in (let H27 \def (eq_ind_r B b (\lambda (b0: B).(not (eq B b0 
-Abst))) H0 Abbr H18) in (arity_bind g Abbr H27 c2 u2 a1 (H2 c2 H5 u2 H22) w 
-a2 (arity_subst0 g (CHead c2 (Bind Abbr) u2) t4 a2 (H25 (CHead c2 (Bind Abbr) 
-u2) (wcpr0_comp c c2 H5 u u2 H22 (Bind Abbr)) t4 H20) c2 u2 O (getl_refl Abbr 
-c2 u2) w H12)))))))))))))) H15)) H14))))))))))))) (\lambda (b0: B).(\lambda 
-(H8: (not (eq B b0 Abst))).(\lambda (t3: T).(\lambda (t4: T).(\lambda (H9: 
-(pr0 t3 t4)).(\lambda (H10: (((eq T t3 (THead (Bind b) u t)) \to (arity g c2 
-t4 a2)))).(\lambda (u0: T).(\lambda (H11: (eq T (THead (Bind b0) u0 (lift (S 
-O) O t3)) (THead (Bind b) u t))).(let H12 \def (f_equal T B (\lambda (e: 
-T).(match e in T return (\lambda (_: T).B) with [(TSort _) \Rightarrow b0 | 
-(TLRef _) \Rightarrow b0 | (THead k _ _) \Rightarrow (match k in K return 
-(\lambda (_: K).B) with [(Bind b1) \Rightarrow b1 | (Flat _) \Rightarrow 
-b0])])) (THead (Bind b0) u0 (lift (S O) O t3)) (THead (Bind b) u t) H11) in 
-((let H13 \def (f_equal T T (\lambda (e: T).(match e in T return (\lambda (_: 
-T).T) with [(TSort _) \Rightarrow u0 | (TLRef _) \Rightarrow u0 | (THead _ t0 
-_) \Rightarrow t0])) (THead (Bind b0) u0 (lift (S O) O t3)) (THead (Bind b) u 
-t) H11) in ((let H14 \def (f_equal T T (\lambda (e: T).(match e in T return 
-(\lambda (_: T).T) with [(TSort _) \Rightarrow ((let rec lref_map (f: ((nat 
-\to nat))) (d: nat) (t0: T) on t0: T \def (match t0 with [(TSort n) 
-\Rightarrow (TSort n) | (TLRef i) \Rightarrow (TLRef (match (blt i d) with 
-[true \Rightarrow i | false \Rightarrow (f i)])) | (THead k u1 t5) 
-\Rightarrow (THead k (lref_map f d u1) (lref_map f (s k d) t5))]) in 
-lref_map) (\lambda (x: nat).(plus x (S O))) O t3) | (TLRef _) \Rightarrow 
-((let rec lref_map (f: ((nat \to nat))) (d: nat) (t0: T) on t0: T \def (match 
-t0 with [(TSort n) \Rightarrow (TSort n) | (TLRef i) \Rightarrow (TLRef 
-(match (blt i d) with [true \Rightarrow i | false \Rightarrow (f i)])) | 
-(THead k u1 t5) \Rightarrow (THead k (lref_map f d u1) (lref_map f (s k d) 
-t5))]) in lref_map) (\lambda (x: nat).(plus x (S O))) O t3) | (THead _ _ t0) 
-\Rightarrow t0])) (THead (Bind b0) u0 (lift (S O) O t3)) (THead (Bind b) u t) 
-H11) in (\lambda (_: (eq T u0 u)).(\lambda (H16: (eq B b0 b)).(let H17 \def 
-(eq_ind B b0 (\lambda (b1: B).(not (eq B b1 Abst))) H8 b H16) in (let H18 
-\def (eq_ind_r T t (\lambda (t0: T).((eq T t3 (THead (Bind b) u t0)) \to 
+u H17) in (let H22 \def (eq_ind T u1 (\lambda (t0: T).(pr0 t0 u2)) H8 u H17) 
+in (let H23 \def (eq_ind_r B b (\lambda (b0: B).((eq T t (THead (Bind b0) u 
+t)) \to (arity g c2 t4 a2))) H19 Abbr H18) in (let H24 \def (eq_ind_r B b 
+(\lambda (b0: B).((eq T u (THead (Bind b0) u t)) \to (arity g c2 u2 a2))) H21 
+Abbr H18) in (let H25 \def (eq_ind_r B b (\lambda (b0: B).(\forall (c3: 
+C).((wcpr0 (CHead c (Bind b0) u) c3) \to (\forall (t5: T).((pr0 t t5) \to 
+(arity g c3 t5 a2)))))) H4 Abbr H18) in (let H26 \def (eq_ind_r B b (\lambda 
+(b0: B).(arity g (CHead c (Bind b0) u) t a2)) H3 Abbr H18) in (let H27 \def 
+(eq_ind_r B b (\lambda (b0: B).(not (eq B b0 Abst))) H0 Abbr H18) in 
+(arity_bind g Abbr H27 c2 u2 a1 (H2 c2 H5 u2 H22) w a2 (arity_subst0 g (CHead 
+c2 (Bind Abbr) u2) t4 a2 (H25 (CHead c2 (Bind Abbr) u2) (wcpr0_comp c c2 H5 u 
+u2 H22 (Bind Abbr)) t4 H20) c2 u2 O (getl_refl Abbr c2 u2) w 
+H12)))))))))))))) H15)) H14))))))))))))) (\lambda (b0: B).(\lambda (H8: (not 
+(eq B b0 Abst))).(\lambda (t3: T).(\lambda (t4: T).(\lambda (H9: (pr0 t3 
+t4)).(\lambda (H10: (((eq T t3 (THead (Bind b) u t)) \to (arity g c2 t4 
+a2)))).(\lambda (u0: T).(\lambda (H11: (eq T (THead (Bind b0) u0 (lift (S O) 
+O t3)) (THead (Bind b) u t))).(let H12 \def (f_equal T B (\lambda (e: 
+T).(match e with [(TSort _) \Rightarrow b0 | (TLRef _) \Rightarrow b0 | 
+(THead k _ _) \Rightarrow (match k with [(Bind b1) \Rightarrow b1 | (Flat _) 
+\Rightarrow b0])])) (THead (Bind b0) u0 (lift (S O) O t3)) (THead (Bind b) u 
+t) H11) in ((let H13 \def (f_equal T T (\lambda (e: T).(match e with [(TSort 
+_) \Rightarrow u0 | (TLRef _) \Rightarrow u0 | (THead _ t0 _) \Rightarrow 
+t0])) (THead (Bind b0) u0 (lift (S O) O t3)) (THead (Bind b) u t) H11) in 
+((let H14 \def (f_equal T T (\lambda (e: T).(match e with [(TSort _) 
+\Rightarrow (lref_map (\lambda (x: nat).(plus x (S O))) O t3) | (TLRef _) 
+\Rightarrow (lref_map (\lambda (x: nat).(plus x (S O))) O t3) | (THead _ _ 
+t0) \Rightarrow t0])) (THead (Bind b0) u0 (lift (S O) O t3)) (THead (Bind b) 
+u t) H11) in (\lambda (_: (eq T u0 u)).(\lambda (H16: (eq B b0 b)).(let H17 
+\def (eq_ind B b0 (\lambda (b1: B).(not (eq B b1 Abst))) H8 b H16) in (let 
+H18 \def (eq_ind_r T t (\lambda (t0: T).((eq T t3 (THead (Bind b) u t0)) \to 
 (arity g c2 t4 a2))) H10 (lift (S O) O t3) H14) in (let H19 \def (eq_ind_r T 
 t (\lambda (t0: T).(\forall (c3: C).((wcpr0 (CHead c (Bind b) u) c3) \to 
 (\forall (t5: T).((pr0 t0 t5) \to (arity g c3 t5 a2)))))) H4 (lift (S O) O 
@@ -196,10 +181,9 @@ t3) H14) in (let H20 \def (eq_ind_r T t (\lambda (t0: T).(arity g (CHead c
 (\lambda (t3: T).(\lambda (t4: T).(\lambda (_: (pr0 t3 t4)).(\lambda (_: 
 (((eq T t3 (THead (Bind b) u t)) \to (arity g c2 t4 a2)))).(\lambda (u0: 
 T).(\lambda (H10: (eq T (THead (Flat Cast) u0 t3) (THead (Bind b) u t))).(let 
-H11 \def (eq_ind T (THead (Flat Cast) u0 t3) (\lambda (ee: T).(match ee in T 
-return (\lambda (_: T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) 
-\Rightarrow False | (THead k _ _) \Rightarrow (match k in K return (\lambda 
-(_: K).Prop) with [(Bind _) \Rightarrow False | (Flat _) \Rightarrow 
+H11 \def (eq_ind T (THead (Flat Cast) u0 t3) (\lambda (ee: T).(match ee with 
+[(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _) 
+\Rightarrow (match k with [(Bind _) \Rightarrow False | (Flat _) \Rightarrow 
 True])])) I (THead (Bind b) u t) H10) in (False_ind (arity g c2 t4 a2) 
 H11)))))))) y t2 H7))) H6)))))))))))))))) (\lambda (c: C).(\lambda (u: 
 T).(\lambda (a1: A).(\lambda (_: (arity g c u (asucc g a1))).(\lambda (H1: 
@@ -223,34 +207,32 @@ T).(\lambda (u2: T).(\lambda (H7: (pr0 u1 u2)).(\lambda (H8: (((eq T u1
 T).(\lambda (t4: T).(\lambda (H9: (pr0 t3 t4)).(\lambda (H10: (((eq T t3 
 (THead (Bind Abst) u t)) \to (arity g c2 t4 (AHead a1 a2))))).(\lambda (k: 
 K).(\lambda (H11: (eq T (THead k u1 t3) (THead (Bind Abst) u t))).(let H12 
-\def (f_equal T K (\lambda (e: T).(match e in T return (\lambda (_: T).K) 
-with [(TSort _) \Rightarrow k | (TLRef _) \Rightarrow k | (THead k0 _ _) 
-\Rightarrow k0])) (THead k u1 t3) (THead (Bind Abst) u t) H11) in ((let H13 
-\def (f_equal T T (\lambda (e: T).(match e in T return (\lambda (_: T).T) 
-with [(TSort _) \Rightarrow u1 | (TLRef _) \Rightarrow u1 | (THead _ t0 _) 
-\Rightarrow t0])) (THead k u1 t3) (THead (Bind Abst) u t) H11) in ((let H14 
-\def (f_equal T T (\lambda (e: T).(match e in T return (\lambda (_: T).T) 
-with [(TSort _) \Rightarrow t3 | (TLRef _) \Rightarrow t3 | (THead _ _ t0) 
-\Rightarrow t0])) (THead k u1 t3) (THead (Bind Abst) u t) H11) in (\lambda 
-(H15: (eq T u1 u)).(\lambda (H16: (eq K k (Bind Abst))).(eq_ind_r K (Bind 
-Abst) (\lambda (k0: K).(arity g c2 (THead k0 u2 t4) (AHead a1 a2))) (let H17 
-\def (eq_ind T t3 (\lambda (t0: T).((eq T t0 (THead (Bind Abst) u t)) \to 
-(arity g c2 t4 (AHead a1 a2)))) H10 t H14) in (let H18 \def (eq_ind T t3 
-(\lambda (t0: T).(pr0 t0 t4)) H9 t H14) in (let H19 \def (eq_ind T u1 
-(\lambda (t0: T).((eq T t0 (THead (Bind Abst) u t)) \to (arity g c2 u2 (AHead 
-a1 a2)))) H8 u H15) in (let H20 \def (eq_ind T u1 (\lambda (t0: T).(pr0 t0 
-u2)) H7 u H15) in (arity_head g c2 u2 a1 (H1 c2 H4 u2 H20) t4 a2 (H3 (CHead 
-c2 (Bind Abst) u2) (wcpr0_comp c c2 H4 u u2 H20 (Bind Abst)) t4 H18)))))) k 
-H16)))) H13)) H12)))))))))))) (\lambda (u0: T).(\lambda (v1: T).(\lambda (v2: 
-T).(\lambda (_: (pr0 v1 v2)).(\lambda (_: (((eq T v1 (THead (Bind Abst) u t)) 
-\to (arity g c2 v2 (AHead a1 a2))))).(\lambda (t3: T).(\lambda (t4: 
-T).(\lambda (_: (pr0 t3 t4)).(\lambda (_: (((eq T t3 (THead (Bind Abst) u t)) 
-\to (arity g c2 t4 (AHead a1 a2))))).(\lambda (H11: (eq T (THead (Flat Appl) 
-v1 (THead (Bind Abst) u0 t3)) (THead (Bind Abst) u t))).(let H12 \def (eq_ind 
-T (THead (Flat Appl) v1 (THead (Bind Abst) u0 t3)) (\lambda (ee: T).(match ee 
-in T return (\lambda (_: T).Prop) with [(TSort _) \Rightarrow False | (TLRef 
-_) \Rightarrow False | (THead k _ _) \Rightarrow (match k in K return 
-(\lambda (_: K).Prop) with [(Bind _) \Rightarrow False | (Flat _) \Rightarrow 
+\def (f_equal T K (\lambda (e: T).(match e with [(TSort _) \Rightarrow k | 
+(TLRef _) \Rightarrow k | (THead k0 _ _) \Rightarrow k0])) (THead k u1 t3) 
+(THead (Bind Abst) u t) H11) in ((let H13 \def (f_equal T T (\lambda (e: 
+T).(match e with [(TSort _) \Rightarrow u1 | (TLRef _) \Rightarrow u1 | 
+(THead _ t0 _) \Rightarrow t0])) (THead k u1 t3) (THead (Bind Abst) u t) H11) 
+in ((let H14 \def (f_equal T T (\lambda (e: T).(match e with [(TSort _) 
+\Rightarrow t3 | (TLRef _) \Rightarrow t3 | (THead _ _ t0) \Rightarrow t0])) 
+(THead k u1 t3) (THead (Bind Abst) u t) H11) in (\lambda (H15: (eq T u1 
+u)).(\lambda (H16: (eq K k (Bind Abst))).(eq_ind_r K (Bind Abst) (\lambda 
+(k0: K).(arity g c2 (THead k0 u2 t4) (AHead a1 a2))) (let H17 \def (eq_ind T 
+t3 (\lambda (t0: T).((eq T t0 (THead (Bind Abst) u t)) \to (arity g c2 t4 
+(AHead a1 a2)))) H10 t H14) in (let H18 \def (eq_ind T t3 (\lambda (t0: 
+T).(pr0 t0 t4)) H9 t H14) in (let H19 \def (eq_ind T u1 (\lambda (t0: T).((eq 
+T t0 (THead (Bind Abst) u t)) \to (arity g c2 u2 (AHead a1 a2)))) H8 u H15) 
+in (let H20 \def (eq_ind T u1 (\lambda (t0: T).(pr0 t0 u2)) H7 u H15) in 
+(arity_head g c2 u2 a1 (H1 c2 H4 u2 H20) t4 a2 (H3 (CHead c2 (Bind Abst) u2) 
+(wcpr0_comp c c2 H4 u u2 H20 (Bind Abst)) t4 H18)))))) k H16)))) H13)) 
+H12)))))))))))) (\lambda (u0: T).(\lambda (v1: T).(\lambda (v2: T).(\lambda 
+(_: (pr0 v1 v2)).(\lambda (_: (((eq T v1 (THead (Bind Abst) u t)) \to (arity 
+g c2 v2 (AHead a1 a2))))).(\lambda (t3: T).(\lambda (t4: T).(\lambda (_: (pr0 
+t3 t4)).(\lambda (_: (((eq T t3 (THead (Bind Abst) u t)) \to (arity g c2 t4 
+(AHead a1 a2))))).(\lambda (H11: (eq T (THead (Flat Appl) v1 (THead (Bind 
+Abst) u0 t3)) (THead (Bind Abst) u t))).(let H12 \def (eq_ind T (THead (Flat 
+Appl) v1 (THead (Bind Abst) u0 t3)) (\lambda (ee: T).(match ee with [(TSort 
+_) \Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _) 
+\Rightarrow (match k with [(Bind _) \Rightarrow False | (Flat _) \Rightarrow 
 True])])) I (THead (Bind Abst) u t) H11) in (False_ind (arity g c2 (THead 
 (Bind Abbr) v2 t4) (AHead a1 a2)) H12)))))))))))) (\lambda (b: B).(\lambda 
 (_: (not (eq B b Abst))).(\lambda (v1: T).(\lambda (v2: T).(\lambda (_: (pr0 
@@ -261,214 +243,194 @@ u2)).(\lambda (_: (((eq T u1 (THead (Bind Abst) u t)) \to (arity g c2 u2
 t4)).(\lambda (_: (((eq T t3 (THead (Bind Abst) u t)) \to (arity g c2 t4 
 (AHead a1 a2))))).(\lambda (H14: (eq T (THead (Flat Appl) v1 (THead (Bind b) 
 u1 t3)) (THead (Bind Abst) u t))).(let H15 \def (eq_ind T (THead (Flat Appl) 
-v1 (THead (Bind b) u1 t3)) (\lambda (ee: T).(match ee in T return (\lambda 
-(_: T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False 
-| (THead k _ _) \Rightarrow (match k in K return (\lambda (_: K).Prop) with 
-[(Bind _) \Rightarrow False | (Flat _) \Rightarrow True])])) I (THead (Bind 
-Abst) u t) H14) in (False_ind (arity g c2 (THead (Bind b) u2 (THead (Flat 
-Appl) (lift (S O) O v2) t4)) (AHead a1 a2)) H15))))))))))))))))) (\lambda 
-(u1: T).(\lambda (u2: T).(\lambda (_: (pr0 u1 u2)).(\lambda (_: (((eq T u1 
-(THead (Bind Abst) u t)) \to (arity g c2 u2 (AHead a1 a2))))).(\lambda (t3: 
-T).(\lambda (t4: T).(\lambda (_: (pr0 t3 t4)).(\lambda (_: (((eq T t3 (THead 
-(Bind Abst) u t)) \to (arity g c2 t4 (AHead a1 a2))))).(\lambda (w: 
-T).(\lambda (_: (subst0 O u2 t4 w)).(\lambda (H12: (eq T (THead (Bind Abbr) 
-u1 t3) (THead (Bind Abst) u t))).(let H13 \def (eq_ind T (THead (Bind Abbr) 
-u1 t3) (\lambda (ee: T).(match ee in T return (\lambda (_: T).Prop) with 
-[(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _) 
-\Rightarrow (match k in K return (\lambda (_: K).Prop) with [(Bind b) 
-\Rightarrow (match b in B return (\lambda (_: B).Prop) with [Abbr \Rightarrow 
-True | Abst \Rightarrow False | Void \Rightarrow False]) | (Flat _) 
-\Rightarrow False])])) I (THead (Bind Abst) u t) H12) in (False_ind (arity g 
-c2 (THead (Bind Abbr) u2 w) (AHead a1 a2)) H13))))))))))))) (\lambda (b: 
-B).(\lambda (H7: (not (eq B b Abst))).(\lambda (t3: T).(\lambda (t4: 
-T).(\lambda (_: (pr0 t3 t4)).(\lambda (H9: (((eq T t3 (THead (Bind Abst) u 
-t)) \to (arity g c2 t4 (AHead a1 a2))))).(\lambda (u0: T).(\lambda (H10: (eq 
-T (THead (Bind b) u0 (lift (S O) O t3)) (THead (Bind Abst) u t))).(let H11 
-\def (f_equal T B (\lambda (e: T).(match e in T return (\lambda (_: T).B) 
-with [(TSort _) \Rightarrow b | (TLRef _) \Rightarrow b | (THead k _ _) 
-\Rightarrow (match k in K return (\lambda (_: K).B) with [(Bind b0) 
+v1 (THead (Bind b) u1 t3)) (\lambda (ee: T).(match ee with [(TSort _) 
+\Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow 
+(match k with [(Bind _) \Rightarrow False | (Flat _) \Rightarrow True])])) I 
+(THead (Bind Abst) u t) H14) in (False_ind (arity g c2 (THead (Bind b) u2 
+(THead (Flat Appl) (lift (S O) O v2) t4)) (AHead a1 a2)) H15))))))))))))))))) 
+(\lambda (u1: T).(\lambda (u2: T).(\lambda (_: (pr0 u1 u2)).(\lambda (_: 
+(((eq T u1 (THead (Bind Abst) u t)) \to (arity g c2 u2 (AHead a1 
+a2))))).(\lambda (t3: T).(\lambda (t4: T).(\lambda (_: (pr0 t3 t4)).(\lambda 
+(_: (((eq T t3 (THead (Bind Abst) u t)) \to (arity g c2 t4 (AHead a1 
+a2))))).(\lambda (w: T).(\lambda (_: (subst0 O u2 t4 w)).(\lambda (H12: (eq T 
+(THead (Bind Abbr) u1 t3) (THead (Bind Abst) u t))).(let H13 \def (eq_ind T 
+(THead (Bind Abbr) u1 t3) (\lambda (ee: T).(match ee with [(TSort _) 
+\Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow 
+(match k with [(Bind b) \Rightarrow (match b with [Abbr \Rightarrow True | 
+Abst \Rightarrow False | Void \Rightarrow False]) | (Flat _) \Rightarrow 
+False])])) I (THead (Bind Abst) u t) H12) in (False_ind (arity g c2 (THead 
+(Bind Abbr) u2 w) (AHead a1 a2)) H13))))))))))))) (\lambda (b: B).(\lambda 
+(H7: (not (eq B b Abst))).(\lambda (t3: T).(\lambda (t4: T).(\lambda (_: (pr0 
+t3 t4)).(\lambda (H9: (((eq T t3 (THead (Bind Abst) u t)) \to (arity g c2 t4 
+(AHead a1 a2))))).(\lambda (u0: T).(\lambda (H10: (eq T (THead (Bind b) u0 
+(lift (S O) O t3)) (THead (Bind Abst) u t))).(let H11 \def (f_equal T B 
+(\lambda (e: T).(match e with [(TSort _) \Rightarrow b | (TLRef _) 
+\Rightarrow b | (THead k _ _) \Rightarrow (match k with [(Bind b0) 
 \Rightarrow b0 | (Flat _) \Rightarrow b])])) (THead (Bind b) u0 (lift (S O) O 
 t3)) (THead (Bind Abst) u t) H10) in ((let H12 \def (f_equal T T (\lambda (e: 
-T).(match e in T return (\lambda (_: T).T) with [(TSort _) \Rightarrow u0 | 
-(TLRef _) \Rightarrow u0 | (THead _ t0 _) \Rightarrow t0])) (THead (Bind b) 
-u0 (lift (S O) O t3)) (THead (Bind Abst) u t) H10) in ((let H13 \def (f_equal 
-T T (\lambda (e: T).(match e in T return (\lambda (_: T).T) with [(TSort _) 
-\Rightarrow ((let rec lref_map (f: ((nat \to nat))) (d: nat) (t0: T) on t0: T 
-\def (match t0 with [(TSort n) \Rightarrow (TSort n) | (TLRef i) \Rightarrow 
-(TLRef (match (blt i d) with [true \Rightarrow i | false \Rightarrow (f i)])) 
-| (THead k u1 t5) \Rightarrow (THead k (lref_map f d u1) (lref_map f (s k d) 
-t5))]) in lref_map) (\lambda (x: nat).(plus x (S O))) O t3) | (TLRef _) 
-\Rightarrow ((let rec lref_map (f: ((nat \to nat))) (d: nat) (t0: T) on t0: T 
-\def (match t0 with [(TSort n) \Rightarrow (TSort n) | (TLRef i) \Rightarrow 
-(TLRef (match (blt i d) with [true \Rightarrow i | false \Rightarrow (f i)])) 
-| (THead k u1 t5) \Rightarrow (THead k (lref_map f d u1) (lref_map f (s k d) 
-t5))]) in lref_map) (\lambda (x: nat).(plus x (S O))) O t3) | (THead _ _ t0) 
-\Rightarrow t0])) (THead (Bind b) u0 (lift (S O) O t3)) (THead (Bind Abst) u 
-t) H10) in (\lambda (_: (eq T u0 u)).(\lambda (H15: (eq B b Abst)).(let H16 
-\def (eq_ind B b (\lambda (b0: B).(not (eq B b0 Abst))) H7 Abst H15) in (let 
-H17 \def (eq_ind_r T t (\lambda (t0: T).((eq T t3 (THead (Bind Abst) u t0)) 
-\to (arity g c2 t4 (AHead a1 a2)))) H9 (lift (S O) O t3) H13) in (let H18 
-\def (eq_ind_r T t (\lambda (t0: T).(\forall (c3: C).((wcpr0 (CHead c (Bind 
-Abst) u) c3) \to (\forall (t5: T).((pr0 t0 t5) \to (arity g c3 t5 a2)))))) H3 
-(lift (S O) O t3) H13) in (let H19 \def (eq_ind_r T t (\lambda (t0: T).(arity 
-g (CHead c (Bind Abst) u) t0 a2)) H2 (lift (S O) O t3) H13) in (let H20 \def 
-(match (H16 (refl_equal B Abst)) in False return (\lambda (_: False).(arity g 
-c2 t4 (AHead a1 a2))) with []) in H20)))))))) H12)) H11)))))))))) (\lambda 
-(t3: T).(\lambda (t4: T).(\lambda (_: (pr0 t3 t4)).(\lambda (_: (((eq T t3 
-(THead (Bind Abst) u t)) \to (arity g c2 t4 (AHead a1 a2))))).(\lambda (u0: 
-T).(\lambda (H9: (eq T (THead (Flat Cast) u0 t3) (THead (Bind Abst) u 
-t))).(let H10 \def (eq_ind T (THead (Flat Cast) u0 t3) (\lambda (ee: 
-T).(match ee in T return (\lambda (_: T).Prop) with [(TSort _) \Rightarrow 
-False | (TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow (match k in K 
-return (\lambda (_: K).Prop) with [(Bind _) \Rightarrow False | (Flat _) 
-\Rightarrow True])])) I (THead (Bind Abst) u t) H9) in (False_ind (arity g c2 
-t4 (AHead a1 a2)) H10)))))))) y t2 H6))) H5)))))))))))))) (\lambda (c: 
-C).(\lambda (u: T).(\lambda (a1: A).(\lambda (_: (arity g c u a1)).(\lambda 
-(H1: ((\forall (c2: C).((wcpr0 c c2) \to (\forall (t2: T).((pr0 u t2) \to 
-(arity g c2 t2 a1))))))).(\lambda (t: T).(\lambda (a2: A).(\lambda (H2: 
-(arity g c t (AHead a1 a2))).(\lambda (H3: ((\forall (c2: C).((wcpr0 c c2) 
-\to (\forall (t2: T).((pr0 t t2) \to (arity g c2 t2 (AHead a1 
-a2)))))))).(\lambda (c2: C).(\lambda (H4: (wcpr0 c c2)).(\lambda (t2: 
-T).(\lambda (H5: (pr0 (THead (Flat Appl) u t) t2)).(insert_eq T (THead (Flat 
-Appl) u t) (\lambda (t0: T).(pr0 t0 t2)) (\lambda (_: T).(arity g c2 t2 a2)) 
-(\lambda (y: T).(\lambda (H6: (pr0 y t2)).(pr0_ind (\lambda (t0: T).(\lambda 
-(t3: T).((eq T t0 (THead (Flat Appl) u t)) \to (arity g c2 t3 a2)))) (\lambda 
-(t0: T).(\lambda (H7: (eq T t0 (THead (Flat Appl) u t))).(let H8 \def 
-(f_equal T T (\lambda (e: T).e) t0 (THead (Flat Appl) u t) H7) in (eq_ind_r T 
-(THead (Flat Appl) u t) (\lambda (t3: T).(arity g c2 t3 a2)) (arity_appl g c2 
-u a1 (H1 c2 H4 u (pr0_refl u)) t a2 (H3 c2 H4 t (pr0_refl t))) t0 H8)))) 
-(\lambda (u1: T).(\lambda (u2: T).(\lambda (H7: (pr0 u1 u2)).(\lambda (H8: 
-(((eq T u1 (THead (Flat Appl) u t)) \to (arity g c2 u2 a2)))).(\lambda (t3: 
-T).(\lambda (t4: T).(\lambda (H9: (pr0 t3 t4)).(\lambda (H10: (((eq T t3 
-(THead (Flat Appl) u t)) \to (arity g c2 t4 a2)))).(\lambda (k: K).(\lambda 
-(H11: (eq T (THead k u1 t3) (THead (Flat Appl) u t))).(let H12 \def (f_equal 
-T K (\lambda (e: T).(match e in T return (\lambda (_: T).K) with [(TSort _) 
-\Rightarrow k | (TLRef _) \Rightarrow k | (THead k0 _ _) \Rightarrow k0])) 
-(THead k u1 t3) (THead (Flat Appl) u t) H11) in ((let H13 \def (f_equal T T 
-(\lambda (e: T).(match e in T return (\lambda (_: T).T) with [(TSort _) 
-\Rightarrow u1 | (TLRef _) \Rightarrow u1 | (THead _ t0 _) \Rightarrow t0])) 
-(THead k u1 t3) (THead (Flat Appl) u t) H11) in ((let H14 \def (f_equal T T 
-(\lambda (e: T).(match e in T return (\lambda (_: T).T) with [(TSort _) 
-\Rightarrow t3 | (TLRef _) \Rightarrow t3 | (THead _ _ t0) \Rightarrow t0])) 
-(THead k u1 t3) (THead (Flat Appl) u t) H11) in (\lambda (H15: (eq T u1 
-u)).(\lambda (H16: (eq K k (Flat Appl))).(eq_ind_r K (Flat Appl) (\lambda 
-(k0: K).(arity g c2 (THead k0 u2 t4) a2)) (let H17 \def (eq_ind T t3 (\lambda 
-(t0: T).((eq T t0 (THead (Flat Appl) u t)) \to (arity g c2 t4 a2))) H10 t 
-H14) in (let H18 \def (eq_ind T t3 (\lambda (t0: T).(pr0 t0 t4)) H9 t H14) in 
-(let H19 \def (eq_ind T u1 (\lambda (t0: T).((eq T t0 (THead (Flat Appl) u 
-t)) \to (arity g c2 u2 a2))) H8 u H15) in (let H20 \def (eq_ind T u1 (\lambda 
-(t0: T).(pr0 t0 u2)) H7 u H15) in (arity_appl g c2 u2 a1 (H1 c2 H4 u2 H20) t4 
-a2 (H3 c2 H4 t4 H18)))))) k H16)))) H13)) H12)))))))))))) (\lambda (u0: 
-T).(\lambda (v1: T).(\lambda (v2: T).(\lambda (H7: (pr0 v1 v2)).(\lambda (H8: 
-(((eq T v1 (THead (Flat Appl) u t)) \to (arity g c2 v2 a2)))).(\lambda (t3: 
-T).(\lambda (t4: T).(\lambda (H9: (pr0 t3 t4)).(\lambda (H10: (((eq T t3 
-(THead (Flat Appl) u t)) \to (arity g c2 t4 a2)))).(\lambda (H11: (eq T 
-(THead (Flat Appl) v1 (THead (Bind Abst) u0 t3)) (THead (Flat Appl) u 
-t))).(let H12 \def (f_equal T T (\lambda (e: T).(match e in T return (\lambda 
-(_: T).T) with [(TSort _) \Rightarrow v1 | (TLRef _) \Rightarrow v1 | (THead 
-_ t0 _) \Rightarrow t0])) (THead (Flat Appl) v1 (THead (Bind Abst) u0 t3)) 
-(THead (Flat Appl) u t) H11) in ((let H13 \def (f_equal T T (\lambda (e: 
-T).(match e in T return (\lambda (_: T).T) with [(TSort _) \Rightarrow (THead 
-(Bind Abst) u0 t3) | (TLRef _) \Rightarrow (THead (Bind Abst) u0 t3) | (THead 
-_ _ t0) \Rightarrow t0])) (THead (Flat Appl) v1 (THead (Bind Abst) u0 t3)) 
-(THead (Flat Appl) u t) H11) in (\lambda (H14: (eq T v1 u)).(let H15 \def 
-(eq_ind T v1 (\lambda (t0: T).((eq T t0 (THead (Flat Appl) u t)) \to (arity g 
-c2 v2 a2))) H8 u H14) in (let H16 \def (eq_ind T v1 (\lambda (t0: T).(pr0 t0 
-v2)) H7 u H14) in (let H17 \def (eq_ind_r T t (\lambda (t0: T).((eq T t3 
-(THead (Flat Appl) u t0)) \to (arity g c2 t4 a2))) H10 (THead (Bind Abst) u0 
-t3) H13) in (let H18 \def (eq_ind_r T t (\lambda (t0: T).((eq T u (THead 
-(Flat Appl) u t0)) \to (arity g c2 v2 a2))) H15 (THead (Bind Abst) u0 t3) 
-H13) in (let H19 \def (eq_ind_r T t (\lambda (t0: T).(\forall (c3: C).((wcpr0 
-c c3) \to (\forall (t5: T).((pr0 t0 t5) \to (arity g c3 t5 (AHead a1 
-a2))))))) H3 (THead (Bind Abst) u0 t3) H13) in (let H20 \def (eq_ind_r T t 
-(\lambda (t0: T).(arity g c t0 (AHead a1 a2))) H2 (THead (Bind Abst) u0 t3) 
-H13) in (let H21 \def (H1 c2 H4 v2 H16) in (let H22 \def (H19 c2 H4 (THead 
-(Bind Abst) u0 t4) (pr0_comp u0 u0 (pr0_refl u0) t3 t4 H9 (Bind Abst))) in 
-(let H23 \def (arity_gen_abst g c2 u0 t4 (AHead a1 a2) H22) in (ex3_2_ind A A 
-(\lambda (a3: A).(\lambda (a4: A).(eq A (AHead a1 a2) (AHead a3 a4)))) 
-(\lambda (a3: A).(\lambda (_: A).(arity g c2 u0 (asucc g a3)))) (\lambda (_: 
-A).(\lambda (a4: A).(arity g (CHead c2 (Bind Abst) u0) t4 a4))) (arity g c2 
-(THead (Bind Abbr) v2 t4) a2) (\lambda (x0: A).(\lambda (x1: A).(\lambda 
-(H24: (eq A (AHead a1 a2) (AHead x0 x1))).(\lambda (H25: (arity g c2 u0 
-(asucc g x0))).(\lambda (H26: (arity g (CHead c2 (Bind Abst) u0) t4 x1)).(let 
-H27 \def (f_equal A A (\lambda (e: A).(match e in A return (\lambda (_: A).A) 
-with [(ASort _ _) \Rightarrow a1 | (AHead a0 _) \Rightarrow a0])) (AHead a1 
-a2) (AHead x0 x1) H24) in ((let H28 \def (f_equal A A (\lambda (e: A).(match 
-e in A return (\lambda (_: A).A) with [(ASort _ _) \Rightarrow a2 | (AHead _ 
-a0) \Rightarrow a0])) (AHead a1 a2) (AHead x0 x1) H24) in (\lambda (H29: (eq 
-A a1 x0)).(let H30 \def (eq_ind_r A x1 (\lambda (a0: A).(arity g (CHead c2 
-(Bind Abst) u0) t4 a0)) H26 a2 H28) in (let H31 \def (eq_ind_r A x0 (\lambda 
-(a0: A).(arity g c2 u0 (asucc g a0))) H25 a1 H29) in (arity_bind g Abbr 
-not_abbr_abst c2 v2 a1 H21 t4 a2 (csuba_arity g (CHead c2 (Bind Abst) u0) t4 
-a2 H30 (CHead c2 (Bind Abbr) v2) (csuba_abst g c2 c2 (csuba_refl g c2) u0 a1 
-H31 v2 H21))))))) H27))))))) H23)))))))))))) H12)))))))))))) (\lambda (b: 
-B).(\lambda (H7: (not (eq B b Abst))).(\lambda (v1: T).(\lambda (v2: 
-T).(\lambda (H8: (pr0 v1 v2)).(\lambda (H9: (((eq T v1 (THead (Flat Appl) u 
-t)) \to (arity g c2 v2 a2)))).(\lambda (u1: T).(\lambda (u2: T).(\lambda 
-(H10: (pr0 u1 u2)).(\lambda (H11: (((eq T u1 (THead (Flat Appl) u t)) \to 
-(arity g c2 u2 a2)))).(\lambda (t3: T).(\lambda (t4: T).(\lambda (H12: (pr0 
-t3 t4)).(\lambda (H13: (((eq T t3 (THead (Flat Appl) u t)) \to (arity g c2 t4 
-a2)))).(\lambda (H14: (eq T (THead (Flat Appl) v1 (THead (Bind b) u1 t3)) 
-(THead (Flat Appl) u t))).(let H15 \def (f_equal T T (\lambda (e: T).(match e 
-in T return (\lambda (_: T).T) with [(TSort _) \Rightarrow v1 | (TLRef _) 
-\Rightarrow v1 | (THead _ t0 _) \Rightarrow t0])) (THead (Flat Appl) v1 
-(THead (Bind b) u1 t3)) (THead (Flat Appl) u t) H14) in ((let H16 \def 
-(f_equal T T (\lambda (e: T).(match e in T return (\lambda (_: T).T) with 
-[(TSort _) \Rightarrow (THead (Bind b) u1 t3) | (TLRef _) \Rightarrow (THead 
-(Bind b) u1 t3) | (THead _ _ t0) \Rightarrow t0])) (THead (Flat Appl) v1 
-(THead (Bind b) u1 t3)) (THead (Flat Appl) u t) H14) in (\lambda (H17: (eq T 
-v1 u)).(let H18 \def (eq_ind T v1 (\lambda (t0: T).((eq T t0 (THead (Flat 
-Appl) u t)) \to (arity g c2 v2 a2))) H9 u H17) in (let H19 \def (eq_ind T v1 
-(\lambda (t0: T).(pr0 t0 v2)) H8 u H17) in (let H20 \def (eq_ind_r T t 
-(\lambda (t0: T).((eq T t3 (THead (Flat Appl) u t0)) \to (arity g c2 t4 a2))) 
-H13 (THead (Bind b) u1 t3) H16) in (let H21 \def (eq_ind_r T t (\lambda (t0: 
-T).((eq T u1 (THead (Flat Appl) u t0)) \to (arity g c2 u2 a2))) H11 (THead 
-(Bind b) u1 t3) H16) in (let H22 \def (eq_ind_r T t (\lambda (t0: T).((eq T u 
-(THead (Flat Appl) u t0)) \to (arity g c2 v2 a2))) H18 (THead (Bind b) u1 t3) 
-H16) in (let H23 \def (eq_ind_r T t (\lambda (t0: T).(\forall (c3: C).((wcpr0 
-c c3) \to (\forall (t5: T).((pr0 t0 t5) \to (arity g c3 t5 (AHead a1 
-a2))))))) H3 (THead (Bind b) u1 t3) H16) in (let H24 \def (eq_ind_r T t 
-(\lambda (t0: T).(arity g c t0 (AHead a1 a2))) H2 (THead (Bind b) u1 t3) H16) 
-in (let H25 \def (H1 c2 H4 v2 H19) in (let H26 \def (H23 c2 H4 (THead (Bind 
-b) u2 t4) (pr0_comp u1 u2 H10 t3 t4 H12 (Bind b))) in (let H27 \def 
-(arity_gen_bind b H7 g c2 u2 t4 (AHead a1 a2) H26) in (ex2_ind A (\lambda 
-(a3: A).(arity g c2 u2 a3)) (\lambda (_: A).(arity g (CHead c2 (Bind b) u2) 
-t4 (AHead a1 a2))) (arity g c2 (THead (Bind b) u2 (THead (Flat Appl) (lift (S 
-O) O v2) t4)) a2) (\lambda (x: A).(\lambda (H28: (arity g c2 u2 x)).(\lambda 
-(H29: (arity g (CHead c2 (Bind b) u2) t4 (AHead a1 a2))).(arity_bind g b H7 
-c2 u2 x H28 (THead (Flat Appl) (lift (S O) O v2) t4) a2 (arity_appl g (CHead 
-c2 (Bind b) u2) (lift (S O) O v2) a1 (arity_lift g c2 v2 a1 H25 (CHead c2 
-(Bind b) u2) (S O) O (drop_drop (Bind b) O c2 c2 (drop_refl c2) u2)) t4 a2 
-H29))))) H27))))))))))))) H15))))))))))))))))) (\lambda (u1: T).(\lambda (u2: 
-T).(\lambda (_: (pr0 u1 u2)).(\lambda (_: (((eq T u1 (THead (Flat Appl) u t)) 
-\to (arity g c2 u2 a2)))).(\lambda (t3: T).(\lambda (t4: T).(\lambda (_: (pr0 
-t3 t4)).(\lambda (_: (((eq T t3 (THead (Flat Appl) u t)) \to (arity g c2 t4 
-a2)))).(\lambda (w: T).(\lambda (_: (subst0 O u2 t4 w)).(\lambda (H12: (eq T 
-(THead (Bind Abbr) u1 t3) (THead (Flat Appl) u t))).(let H13 \def (eq_ind T 
-(THead (Bind Abbr) u1 t3) (\lambda (ee: T).(match ee in T return (\lambda (_: 
-T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | 
-(THead k _ _) \Rightarrow (match k in K return (\lambda (_: K).Prop) with 
-[(Bind _) \Rightarrow True | (Flat _) \Rightarrow False])])) I (THead (Flat 
-Appl) u t) H12) in (False_ind (arity g c2 (THead (Bind Abbr) u2 w) a2) 
+T).(match e with [(TSort _) \Rightarrow u0 | (TLRef _) \Rightarrow u0 | 
+(THead _ t0 _) \Rightarrow t0])) (THead (Bind b) u0 (lift (S O) O t3)) (THead 
+(Bind Abst) u t) H10) in ((let H13 \def (f_equal T T (\lambda (e: T).(match e 
+with [(TSort _) \Rightarrow (lref_map (\lambda (x: nat).(plus x (S O))) O t3) 
+| (TLRef _) \Rightarrow (lref_map (\lambda (x: nat).(plus x (S O))) O t3) | 
+(THead _ _ t0) \Rightarrow t0])) (THead (Bind b) u0 (lift (S O) O t3)) (THead 
+(Bind Abst) u t) H10) in (\lambda (_: (eq T u0 u)).(\lambda (H15: (eq B b 
+Abst)).(let H16 \def (eq_ind B b (\lambda (b0: B).(not (eq B b0 Abst))) H7 
+Abst H15) in (let H17 \def (eq_ind_r T t (\lambda (t0: T).((eq T t3 (THead 
+(Bind Abst) u t0)) \to (arity g c2 t4 (AHead a1 a2)))) H9 (lift (S O) O t3) 
+H13) in (let H18 \def (eq_ind_r T t (\lambda (t0: T).(\forall (c3: C).((wcpr0 
+(CHead c (Bind Abst) u) c3) \to (\forall (t5: T).((pr0 t0 t5) \to (arity g c3 
+t5 a2)))))) H3 (lift (S O) O t3) H13) in (let H19 \def (eq_ind_r T t (\lambda 
+(t0: T).(arity g (CHead c (Bind Abst) u) t0 a2)) H2 (lift (S O) O t3) H13) in 
+(let H20 \def (match (H16 (refl_equal B Abst)) in False with []) in 
+H20)))))))) H12)) H11)))))))))) (\lambda (t3: T).(\lambda (t4: T).(\lambda 
+(_: (pr0 t3 t4)).(\lambda (_: (((eq T t3 (THead (Bind Abst) u t)) \to (arity 
+g c2 t4 (AHead a1 a2))))).(\lambda (u0: T).(\lambda (H9: (eq T (THead (Flat 
+Cast) u0 t3) (THead (Bind Abst) u t))).(let H10 \def (eq_ind T (THead (Flat 
+Cast) u0 t3) (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | 
+(TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow (match k with [(Bind 
+_) \Rightarrow False | (Flat _) \Rightarrow True])])) I (THead (Bind Abst) u 
+t) H9) in (False_ind (arity g c2 t4 (AHead a1 a2)) H10)))))))) y t2 H6))) 
+H5)))))))))))))) (\lambda (c: C).(\lambda (u: T).(\lambda (a1: A).(\lambda 
+(_: (arity g c u a1)).(\lambda (H1: ((\forall (c2: C).((wcpr0 c c2) \to 
+(\forall (t2: T).((pr0 u t2) \to (arity g c2 t2 a1))))))).(\lambda (t: 
+T).(\lambda (a2: A).(\lambda (H2: (arity g c t (AHead a1 a2))).(\lambda (H3: 
+((\forall (c2: C).((wcpr0 c c2) \to (\forall (t2: T).((pr0 t t2) \to (arity g 
+c2 t2 (AHead a1 a2)))))))).(\lambda (c2: C).(\lambda (H4: (wcpr0 c 
+c2)).(\lambda (t2: T).(\lambda (H5: (pr0 (THead (Flat Appl) u t) 
+t2)).(insert_eq T (THead (Flat Appl) u t) (\lambda (t0: T).(pr0 t0 t2)) 
+(\lambda (_: T).(arity g c2 t2 a2)) (\lambda (y: T).(\lambda (H6: (pr0 y 
+t2)).(pr0_ind (\lambda (t0: T).(\lambda (t3: T).((eq T t0 (THead (Flat Appl) 
+u t)) \to (arity g c2 t3 a2)))) (\lambda (t0: T).(\lambda (H7: (eq T t0 
+(THead (Flat Appl) u t))).(let H8 \def (f_equal T T (\lambda (e: T).e) t0 
+(THead (Flat Appl) u t) H7) in (eq_ind_r T (THead (Flat Appl) u t) (\lambda 
+(t3: T).(arity g c2 t3 a2)) (arity_appl g c2 u a1 (H1 c2 H4 u (pr0_refl u)) t 
+a2 (H3 c2 H4 t (pr0_refl t))) t0 H8)))) (\lambda (u1: T).(\lambda (u2: 
+T).(\lambda (H7: (pr0 u1 u2)).(\lambda (H8: (((eq T u1 (THead (Flat Appl) u 
+t)) \to (arity g c2 u2 a2)))).(\lambda (t3: T).(\lambda (t4: T).(\lambda (H9: 
+(pr0 t3 t4)).(\lambda (H10: (((eq T t3 (THead (Flat Appl) u t)) \to (arity g 
+c2 t4 a2)))).(\lambda (k: K).(\lambda (H11: (eq T (THead k u1 t3) (THead 
+(Flat Appl) u t))).(let H12 \def (f_equal T K (\lambda (e: T).(match e with 
+[(TSort _) \Rightarrow k | (TLRef _) \Rightarrow k | (THead k0 _ _) 
+\Rightarrow k0])) (THead k u1 t3) (THead (Flat Appl) u t) H11) in ((let H13 
+\def (f_equal T T (\lambda (e: T).(match e with [(TSort _) \Rightarrow u1 | 
+(TLRef _) \Rightarrow u1 | (THead _ t0 _) \Rightarrow t0])) (THead k u1 t3) 
+(THead (Flat Appl) u t) H11) in ((let H14 \def (f_equal T T (\lambda (e: 
+T).(match e with [(TSort _) \Rightarrow t3 | (TLRef _) \Rightarrow t3 | 
+(THead _ _ t0) \Rightarrow t0])) (THead k u1 t3) (THead (Flat Appl) u t) H11) 
+in (\lambda (H15: (eq T u1 u)).(\lambda (H16: (eq K k (Flat Appl))).(eq_ind_r 
+K (Flat Appl) (\lambda (k0: K).(arity g c2 (THead k0 u2 t4) a2)) (let H17 
+\def (eq_ind T t3 (\lambda (t0: T).((eq T t0 (THead (Flat Appl) u t)) \to 
+(arity g c2 t4 a2))) H10 t H14) in (let H18 \def (eq_ind T t3 (\lambda (t0: 
+T).(pr0 t0 t4)) H9 t H14) in (let H19 \def (eq_ind T u1 (\lambda (t0: T).((eq 
+T t0 (THead (Flat Appl) u t)) \to (arity g c2 u2 a2))) H8 u H15) in (let H20 
+\def (eq_ind T u1 (\lambda (t0: T).(pr0 t0 u2)) H7 u H15) in (arity_appl g c2 
+u2 a1 (H1 c2 H4 u2 H20) t4 a2 (H3 c2 H4 t4 H18)))))) k H16)))) H13)) 
+H12)))))))))))) (\lambda (u0: T).(\lambda (v1: T).(\lambda (v2: T).(\lambda 
+(H7: (pr0 v1 v2)).(\lambda (H8: (((eq T v1 (THead (Flat Appl) u t)) \to 
+(arity g c2 v2 a2)))).(\lambda (t3: T).(\lambda (t4: T).(\lambda (H9: (pr0 t3 
+t4)).(\lambda (H10: (((eq T t3 (THead (Flat Appl) u t)) \to (arity g c2 t4 
+a2)))).(\lambda (H11: (eq T (THead (Flat Appl) v1 (THead (Bind Abst) u0 t3)) 
+(THead (Flat Appl) u t))).(let H12 \def (f_equal T T (\lambda (e: T).(match e 
+with [(TSort _) \Rightarrow v1 | (TLRef _) \Rightarrow v1 | (THead _ t0 _) 
+\Rightarrow t0])) (THead (Flat Appl) v1 (THead (Bind Abst) u0 t3)) (THead 
+(Flat Appl) u t) H11) in ((let H13 \def (f_equal T T (\lambda (e: T).(match e 
+with [(TSort _) \Rightarrow (THead (Bind Abst) u0 t3) | (TLRef _) \Rightarrow 
+(THead (Bind Abst) u0 t3) | (THead _ _ t0) \Rightarrow t0])) (THead (Flat 
+Appl) v1 (THead (Bind Abst) u0 t3)) (THead (Flat Appl) u t) H11) in (\lambda 
+(H14: (eq T v1 u)).(let H15 \def (eq_ind T v1 (\lambda (t0: T).((eq T t0 
+(THead (Flat Appl) u t)) \to (arity g c2 v2 a2))) H8 u H14) in (let H16 \def 
+(eq_ind T v1 (\lambda (t0: T).(pr0 t0 v2)) H7 u H14) in (let H17 \def 
+(eq_ind_r T t (\lambda (t0: T).((eq T t3 (THead (Flat Appl) u t0)) \to (arity 
+g c2 t4 a2))) H10 (THead (Bind Abst) u0 t3) H13) in (let H18 \def (eq_ind_r T 
+t (\lambda (t0: T).((eq T u (THead (Flat Appl) u t0)) \to (arity g c2 v2 
+a2))) H15 (THead (Bind Abst) u0 t3) H13) in (let H19 \def (eq_ind_r T t 
+(\lambda (t0: T).(\forall (c3: C).((wcpr0 c c3) \to (\forall (t5: T).((pr0 t0 
+t5) \to (arity g c3 t5 (AHead a1 a2))))))) H3 (THead (Bind Abst) u0 t3) H13) 
+in (let H20 \def (eq_ind_r T t (\lambda (t0: T).(arity g c t0 (AHead a1 a2))) 
+H2 (THead (Bind Abst) u0 t3) H13) in (let H21 \def (H1 c2 H4 v2 H16) in (let 
+H22 \def (H19 c2 H4 (THead (Bind Abst) u0 t4) (pr0_comp u0 u0 (pr0_refl u0) 
+t3 t4 H9 (Bind Abst))) in (let H23 \def (arity_gen_abst g c2 u0 t4 (AHead a1 
+a2) H22) in (ex3_2_ind A A (\lambda (a3: A).(\lambda (a4: A).(eq A (AHead a1 
+a2) (AHead a3 a4)))) (\lambda (a3: A).(\lambda (_: A).(arity g c2 u0 (asucc g 
+a3)))) (\lambda (_: A).(\lambda (a4: A).(arity g (CHead c2 (Bind Abst) u0) t4 
+a4))) (arity g c2 (THead (Bind Abbr) v2 t4) a2) (\lambda (x0: A).(\lambda 
+(x1: A).(\lambda (H24: (eq A (AHead a1 a2) (AHead x0 x1))).(\lambda (H25: 
+(arity g c2 u0 (asucc g x0))).(\lambda (H26: (arity g (CHead c2 (Bind Abst) 
+u0) t4 x1)).(let H27 \def (f_equal A A (\lambda (e: A).(match e with [(ASort 
+_ _) \Rightarrow a1 | (AHead a0 _) \Rightarrow a0])) (AHead a1 a2) (AHead x0 
+x1) H24) in ((let H28 \def (f_equal A A (\lambda (e: A).(match e with [(ASort 
+_ _) \Rightarrow a2 | (AHead _ a0) \Rightarrow a0])) (AHead a1 a2) (AHead x0 
+x1) H24) in (\lambda (H29: (eq A a1 x0)).(let H30 \def (eq_ind_r A x1 
+(\lambda (a0: A).(arity g (CHead c2 (Bind Abst) u0) t4 a0)) H26 a2 H28) in 
+(let H31 \def (eq_ind_r A x0 (\lambda (a0: A).(arity g c2 u0 (asucc g a0))) 
+H25 a1 H29) in (arity_bind g Abbr not_abbr_abst c2 v2 a1 H21 t4 a2 
+(csuba_arity g (CHead c2 (Bind Abst) u0) t4 a2 H30 (CHead c2 (Bind Abbr) v2) 
+(csuba_abst g c2 c2 (csuba_refl g c2) u0 a1 H31 v2 H21))))))) H27))))))) 
+H23)))))))))))) H12)))))))))))) (\lambda (b: B).(\lambda (H7: (not (eq B b 
+Abst))).(\lambda (v1: T).(\lambda (v2: T).(\lambda (H8: (pr0 v1 v2)).(\lambda 
+(H9: (((eq T v1 (THead (Flat Appl) u t)) \to (arity g c2 v2 a2)))).(\lambda 
+(u1: T).(\lambda (u2: T).(\lambda (H10: (pr0 u1 u2)).(\lambda (H11: (((eq T 
+u1 (THead (Flat Appl) u t)) \to (arity g c2 u2 a2)))).(\lambda (t3: 
+T).(\lambda (t4: T).(\lambda (H12: (pr0 t3 t4)).(\lambda (H13: (((eq T t3 
+(THead (Flat Appl) u t)) \to (arity g c2 t4 a2)))).(\lambda (H14: (eq T 
+(THead (Flat Appl) v1 (THead (Bind b) u1 t3)) (THead (Flat Appl) u t))).(let 
+H15 \def (f_equal T T (\lambda (e: T).(match e with [(TSort _) \Rightarrow v1 
+| (TLRef _) \Rightarrow v1 | (THead _ t0 _) \Rightarrow t0])) (THead (Flat 
+Appl) v1 (THead (Bind b) u1 t3)) (THead (Flat Appl) u t) H14) in ((let H16 
+\def (f_equal T T (\lambda (e: T).(match e with [(TSort _) \Rightarrow (THead 
+(Bind b) u1 t3) | (TLRef _) \Rightarrow (THead (Bind b) u1 t3) | (THead _ _ 
+t0) \Rightarrow t0])) (THead (Flat Appl) v1 (THead (Bind b) u1 t3)) (THead 
+(Flat Appl) u t) H14) in (\lambda (H17: (eq T v1 u)).(let H18 \def (eq_ind T 
+v1 (\lambda (t0: T).((eq T t0 (THead (Flat Appl) u t)) \to (arity g c2 v2 
+a2))) H9 u H17) in (let H19 \def (eq_ind T v1 (\lambda (t0: T).(pr0 t0 v2)) 
+H8 u H17) in (let H20 \def (eq_ind_r T t (\lambda (t0: T).((eq T t3 (THead 
+(Flat Appl) u t0)) \to (arity g c2 t4 a2))) H13 (THead (Bind b) u1 t3) H16) 
+in (let H21 \def (eq_ind_r T t (\lambda (t0: T).((eq T u1 (THead (Flat Appl) 
+u t0)) \to (arity g c2 u2 a2))) H11 (THead (Bind b) u1 t3) H16) in (let H22 
+\def (eq_ind_r T t (\lambda (t0: T).((eq T u (THead (Flat Appl) u t0)) \to 
+(arity g c2 v2 a2))) H18 (THead (Bind b) u1 t3) H16) in (let H23 \def 
+(eq_ind_r T t (\lambda (t0: T).(\forall (c3: C).((wcpr0 c c3) \to (\forall 
+(t5: T).((pr0 t0 t5) \to (arity g c3 t5 (AHead a1 a2))))))) H3 (THead (Bind 
+b) u1 t3) H16) in (let H24 \def (eq_ind_r T t (\lambda (t0: T).(arity g c t0 
+(AHead a1 a2))) H2 (THead (Bind b) u1 t3) H16) in (let H25 \def (H1 c2 H4 v2 
+H19) in (let H26 \def (H23 c2 H4 (THead (Bind b) u2 t4) (pr0_comp u1 u2 H10 
+t3 t4 H12 (Bind b))) in (let H27 \def (arity_gen_bind b H7 g c2 u2 t4 (AHead 
+a1 a2) H26) in (ex2_ind A (\lambda (a3: A).(arity g c2 u2 a3)) (\lambda (_: 
+A).(arity g (CHead c2 (Bind b) u2) t4 (AHead a1 a2))) (arity g c2 (THead 
+(Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) a2) (\lambda (x: 
+A).(\lambda (H28: (arity g c2 u2 x)).(\lambda (H29: (arity g (CHead c2 (Bind 
+b) u2) t4 (AHead a1 a2))).(arity_bind g b H7 c2 u2 x H28 (THead (Flat Appl) 
+(lift (S O) O v2) t4) a2 (arity_appl g (CHead c2 (Bind b) u2) (lift (S O) O 
+v2) a1 (arity_lift g c2 v2 a1 H25 (CHead c2 (Bind b) u2) (S O) O (drop_drop 
+(Bind b) O c2 c2 (drop_refl c2) u2)) t4 a2 H29))))) H27))))))))))))) 
+H15))))))))))))))))) (\lambda (u1: T).(\lambda (u2: T).(\lambda (_: (pr0 u1 
+u2)).(\lambda (_: (((eq T u1 (THead (Flat Appl) u t)) \to (arity g c2 u2 
+a2)))).(\lambda (t3: T).(\lambda (t4: T).(\lambda (_: (pr0 t3 t4)).(\lambda 
+(_: (((eq T t3 (THead (Flat Appl) u t)) \to (arity g c2 t4 a2)))).(\lambda 
+(w: T).(\lambda (_: (subst0 O u2 t4 w)).(\lambda (H12: (eq T (THead (Bind 
+Abbr) u1 t3) (THead (Flat Appl) u t))).(let H13 \def (eq_ind T (THead (Bind 
+Abbr) u1 t3) (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | 
+(TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow (match k with [(Bind 
+_) \Rightarrow True | (Flat _) \Rightarrow False])])) I (THead (Flat Appl) u 
+t) H12) in (False_ind (arity g c2 (THead (Bind Abbr) u2 w) a2) 
 H13))))))))))))) (\lambda (b: B).(\lambda (_: (not (eq B b Abst))).(\lambda 
 (t3: T).(\lambda (t4: T).(\lambda (_: (pr0 t3 t4)).(\lambda (_: (((eq T t3 
 (THead (Flat Appl) u t)) \to (arity g c2 t4 a2)))).(\lambda (u0: T).(\lambda 
 (H10: (eq T (THead (Bind b) u0 (lift (S O) O t3)) (THead (Flat Appl) u 
 t))).(let H11 \def (eq_ind T (THead (Bind b) u0 (lift (S O) O t3)) (\lambda 
-(ee: T).(match ee in T return (\lambda (_: T).Prop) with [(TSort _) 
-\Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow 
-(match k in K return (\lambda (_: K).Prop) with [(Bind _) \Rightarrow True | 
+(ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow 
+False | (THead k _ _) \Rightarrow (match k with [(Bind _) \Rightarrow True | 
 (Flat _) \Rightarrow False])])) I (THead (Flat Appl) u t) H10) in (False_ind 
 (arity g c2 t4 a2) H11)))))))))) (\lambda (t3: T).(\lambda (t4: T).(\lambda 
 (_: (pr0 t3 t4)).(\lambda (_: (((eq T t3 (THead (Flat Appl) u t)) \to (arity 
 g c2 t4 a2)))).(\lambda (u0: T).(\lambda (H9: (eq T (THead (Flat Cast) u0 t3) 
 (THead (Flat Appl) u t))).(let H10 \def (eq_ind T (THead (Flat Cast) u0 t3) 
-(\lambda (ee: T).(match ee in T return (\lambda (_: T).Prop) with [(TSort _) 
-\Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow 
-(match k in K return (\lambda (_: K).Prop) with [(Bind _) \Rightarrow False | 
-(Flat f) \Rightarrow (match f in F return (\lambda (_: F).Prop) with [Appl 
-\Rightarrow False | Cast \Rightarrow True])])])) I (THead (Flat Appl) u t) 
-H9) in (False_ind (arity g c2 t4 a2) H10)))))))) y t2 H6))) H5)))))))))))))) 
+(\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) 
+\Rightarrow False | (THead k _ _) \Rightarrow (match k with [(Bind _) 
+\Rightarrow False | (Flat f) \Rightarrow (match f with [Appl \Rightarrow 
+False | Cast \Rightarrow True])])])) I (THead (Flat Appl) u t) H9) in 
+(False_ind (arity g c2 t4 a2) H10)))))))) y t2 H6))) H5)))))))))))))) 
 (\lambda (c: C).(\lambda (u: T).(\lambda (a0: A).(\lambda (_: (arity g c u 
 (asucc g a0))).(\lambda (H1: ((\forall (c2: C).((wcpr0 c c2) \to (\forall 
 (t2: T).((pr0 u t2) \to (arity g c2 t2 (asucc g a0)))))))).(\lambda (t: 
@@ -488,18 +450,17 @@ T).(\lambda (u2: T).(\lambda (H7: (pr0 u1 u2)).(\lambda (H8: (((eq T u1
 (t4: T).(\lambda (H9: (pr0 t3 t4)).(\lambda (H10: (((eq T t3 (THead (Flat 
 Cast) u t)) \to (arity g c2 t4 a0)))).(\lambda (k: K).(\lambda (H11: (eq T 
 (THead k u1 t3) (THead (Flat Cast) u t))).(let H12 \def (f_equal T K (\lambda 
-(e: T).(match e in T return (\lambda (_: T).K) with [(TSort _) \Rightarrow k 
-| (TLRef _) \Rightarrow k | (THead k0 _ _) \Rightarrow k0])) (THead k u1 t3) 
-(THead (Flat Cast) u t) H11) in ((let H13 \def (f_equal T T (\lambda (e: 
-T).(match e in T return (\lambda (_: T).T) with [(TSort _) \Rightarrow u1 | 
-(TLRef _) \Rightarrow u1 | (THead _ t0 _) \Rightarrow t0])) (THead k u1 t3) 
-(THead (Flat Cast) u t) H11) in ((let H14 \def (f_equal T T (\lambda (e: 
-T).(match e in T return (\lambda (_: T).T) with [(TSort _) \Rightarrow t3 | 
-(TLRef _) \Rightarrow t3 | (THead _ _ t0) \Rightarrow t0])) (THead k u1 t3) 
-(THead (Flat Cast) u t) H11) in (\lambda (H15: (eq T u1 u)).(\lambda (H16: 
-(eq K k (Flat Cast))).(eq_ind_r K (Flat Cast) (\lambda (k0: K).(arity g c2 
-(THead k0 u2 t4) a0)) (let H17 \def (eq_ind T t3 (\lambda (t0: T).((eq T t0 
-(THead (Flat Cast) u t)) \to (arity g c2 t4 a0))) H10 t H14) in (let H18 \def 
+(e: T).(match e with [(TSort _) \Rightarrow k | (TLRef _) \Rightarrow k | 
+(THead k0 _ _) \Rightarrow k0])) (THead k u1 t3) (THead (Flat Cast) u t) H11) 
+in ((let H13 \def (f_equal T T (\lambda (e: T).(match e with [(TSort _) 
+\Rightarrow u1 | (TLRef _) \Rightarrow u1 | (THead _ t0 _) \Rightarrow t0])) 
+(THead k u1 t3) (THead (Flat Cast) u t) H11) in ((let H14 \def (f_equal T T 
+(\lambda (e: T).(match e with [(TSort _) \Rightarrow t3 | (TLRef _) 
+\Rightarrow t3 | (THead _ _ t0) \Rightarrow t0])) (THead k u1 t3) (THead 
+(Flat Cast) u t) H11) in (\lambda (H15: (eq T u1 u)).(\lambda (H16: (eq K k 
+(Flat Cast))).(eq_ind_r K (Flat Cast) (\lambda (k0: K).(arity g c2 (THead k0 
+u2 t4) a0)) (let H17 \def (eq_ind T t3 (\lambda (t0: T).((eq T t0 (THead 
+(Flat Cast) u t)) \to (arity g c2 t4 a0))) H10 t H14) in (let H18 \def 
 (eq_ind T t3 (\lambda (t0: T).(pr0 t0 t4)) H9 t H14) in (let H19 \def (eq_ind 
 T u1 (\lambda (t0: T).((eq T t0 (THead (Flat Cast) u t)) \to (arity g c2 u2 
 a0))) H8 u H15) in (let H20 \def (eq_ind T u1 (\lambda (t0: T).(pr0 t0 u2)) 
@@ -510,69 +471,61 @@ T).(\lambda (v2: T).(\lambda (_: (pr0 v1 v2)).(\lambda (_: (((eq T v1 (THead
 T).(\lambda (_: (pr0 t3 t4)).(\lambda (_: (((eq T t3 (THead (Flat Cast) u t)) 
 \to (arity g c2 t4 a0)))).(\lambda (H11: (eq T (THead (Flat Appl) v1 (THead 
 (Bind Abst) u0 t3)) (THead (Flat Cast) u t))).(let H12 \def (eq_ind T (THead 
-(Flat Appl) v1 (THead (Bind Abst) u0 t3)) (\lambda (ee: T).(match ee in T 
-return (\lambda (_: T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) 
-\Rightarrow False | (THead k _ _) \Rightarrow (match k in K return (\lambda 
-(_: K).Prop) with [(Bind _) \Rightarrow False | (Flat f) \Rightarrow (match f 
-in F return (\lambda (_: F).Prop) with [Appl \Rightarrow True | Cast 
-\Rightarrow False])])])) I (THead (Flat Cast) u t) H11) in (False_ind (arity 
-g c2 (THead (Bind Abbr) v2 t4) a0) H12)))))))))))) (\lambda (b: B).(\lambda 
-(_: (not (eq B b Abst))).(\lambda (v1: T).(\lambda (v2: T).(\lambda (_: (pr0 
-v1 v2)).(\lambda (_: (((eq T v1 (THead (Flat Cast) u t)) \to (arity g c2 v2 
-a0)))).(\lambda (u1: T).(\lambda (u2: T).(\lambda (_: (pr0 u1 u2)).(\lambda 
-(_: (((eq T u1 (THead (Flat Cast) u t)) \to (arity g c2 u2 a0)))).(\lambda 
-(t3: T).(\lambda (t4: T).(\lambda (_: (pr0 t3 t4)).(\lambda (_: (((eq T t3 
-(THead (Flat Cast) u t)) \to (arity g c2 t4 a0)))).(\lambda (H14: (eq T 
-(THead (Flat Appl) v1 (THead (Bind b) u1 t3)) (THead (Flat Cast) u t))).(let 
-H15 \def (eq_ind T (THead (Flat Appl) v1 (THead (Bind b) u1 t3)) (\lambda 
-(ee: T).(match ee in T return (\lambda (_: T).Prop) with [(TSort _) 
+(Flat Appl) v1 (THead (Bind Abst) u0 t3)) (\lambda (ee: T).(match ee with 
+[(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _) 
+\Rightarrow (match k with [(Bind _) \Rightarrow False | (Flat f) \Rightarrow 
+(match f with [Appl \Rightarrow True | Cast \Rightarrow False])])])) I (THead 
+(Flat Cast) u t) H11) in (False_ind (arity g c2 (THead (Bind Abbr) v2 t4) a0) 
+H12)))))))))))) (\lambda (b: B).(\lambda (_: (not (eq B b Abst))).(\lambda 
+(v1: T).(\lambda (v2: T).(\lambda (_: (pr0 v1 v2)).(\lambda (_: (((eq T v1 
+(THead (Flat Cast) u t)) \to (arity g c2 v2 a0)))).(\lambda (u1: T).(\lambda 
+(u2: T).(\lambda (_: (pr0 u1 u2)).(\lambda (_: (((eq T u1 (THead (Flat Cast) 
+u t)) \to (arity g c2 u2 a0)))).(\lambda (t3: T).(\lambda (t4: T).(\lambda 
+(_: (pr0 t3 t4)).(\lambda (_: (((eq T t3 (THead (Flat Cast) u t)) \to (arity 
+g c2 t4 a0)))).(\lambda (H14: (eq T (THead (Flat Appl) v1 (THead (Bind b) u1 
+t3)) (THead (Flat Cast) u t))).(let H15 \def (eq_ind T (THead (Flat Appl) v1 
+(THead (Bind b) u1 t3)) (\lambda (ee: T).(match ee with [(TSort _) 
 \Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow 
-(match k in K return (\lambda (_: K).Prop) with [(Bind _) \Rightarrow False | 
-(Flat f) \Rightarrow (match f in F return (\lambda (_: F).Prop) with [Appl 
-\Rightarrow True | Cast \Rightarrow False])])])) I (THead (Flat Cast) u t) 
-H14) in (False_ind (arity g c2 (THead (Bind b) u2 (THead (Flat Appl) (lift (S 
-O) O v2) t4)) a0) H15))))))))))))))))) (\lambda (u1: T).(\lambda (u2: 
-T).(\lambda (_: (pr0 u1 u2)).(\lambda (_: (((eq T u1 (THead (Flat Cast) u t)) 
-\to (arity g c2 u2 a0)))).(\lambda (t3: T).(\lambda (t4: T).(\lambda (_: (pr0 
+(match k with [(Bind _) \Rightarrow False | (Flat f) \Rightarrow (match f 
+with [Appl \Rightarrow True | Cast \Rightarrow False])])])) I (THead (Flat 
+Cast) u t) H14) in (False_ind (arity g c2 (THead (Bind b) u2 (THead (Flat 
+Appl) (lift (S O) O v2) t4)) a0) H15))))))))))))))))) (\lambda (u1: 
+T).(\lambda (u2: T).(\lambda (_: (pr0 u1 u2)).(\lambda (_: (((eq T u1 (THead 
+(Flat Cast) u t)) \to (arity g c2 u2 a0)))).(\lambda (t3: T).(\lambda (t4: 
+T).(\lambda (_: (pr0 t3 t4)).(\lambda (_: (((eq T t3 (THead (Flat Cast) u t)) 
+\to (arity g c2 t4 a0)))).(\lambda (w: T).(\lambda (_: (subst0 O u2 t4 
+w)).(\lambda (H12: (eq T (THead (Bind Abbr) u1 t3) (THead (Flat Cast) u 
+t))).(let H13 \def (eq_ind T (THead (Bind Abbr) u1 t3) (\lambda (ee: 
+T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False 
+| (THead k _ _) \Rightarrow (match k with [(Bind _) \Rightarrow True | (Flat 
+_) \Rightarrow False])])) I (THead (Flat Cast) u t) H12) in (False_ind (arity 
+g c2 (THead (Bind Abbr) u2 w) a0) H13))))))))))))) (\lambda (b: B).(\lambda 
+(_: (not (eq B b Abst))).(\lambda (t3: T).(\lambda (t4: T).(\lambda (_: (pr0 
 t3 t4)).(\lambda (_: (((eq T t3 (THead (Flat Cast) u t)) \to (arity g c2 t4 
-a0)))).(\lambda (w: T).(\lambda (_: (subst0 O u2 t4 w)).(\lambda (H12: (eq T 
-(THead (Bind Abbr) u1 t3) (THead (Flat Cast) u t))).(let H13 \def (eq_ind T 
-(THead (Bind Abbr) u1 t3) (\lambda (ee: T).(match ee in T return (\lambda (_: 
-T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | 
-(THead k _ _) \Rightarrow (match k in K return (\lambda (_: K).Prop) with 
+a0)))).(\lambda (u0: T).(\lambda (H10: (eq T (THead (Bind b) u0 (lift (S O) O 
+t3)) (THead (Flat Cast) u t))).(let H11 \def (eq_ind T (THead (Bind b) u0 
+(lift (S O) O t3)) (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow 
+False | (TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow (match k with 
 [(Bind _) \Rightarrow True | (Flat _) \Rightarrow False])])) I (THead (Flat 
-Cast) u t) H12) in (False_ind (arity g c2 (THead (Bind Abbr) u2 w) a0) 
-H13))))))))))))) (\lambda (b: B).(\lambda (_: (not (eq B b Abst))).(\lambda 
-(t3: T).(\lambda (t4: T).(\lambda (_: (pr0 t3 t4)).(\lambda (_: (((eq T t3 
+Cast) u t) H10) in (False_ind (arity g c2 t4 a0) H11)))))))))) (\lambda (t3: 
+T).(\lambda (t4: T).(\lambda (H7: (pr0 t3 t4)).(\lambda (H8: (((eq T t3 
 (THead (Flat Cast) u t)) \to (arity g c2 t4 a0)))).(\lambda (u0: T).(\lambda 
-(H10: (eq T (THead (Bind b) u0 (lift (S O) O t3)) (THead (Flat Cast) u 
-t))).(let H11 \def (eq_ind T (THead (Bind b) u0 (lift (S O) O t3)) (\lambda 
-(ee: T).(match ee in T return (\lambda (_: T).Prop) with [(TSort _) 
-\Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow 
-(match k in K return (\lambda (_: K).Prop) with [(Bind _) \Rightarrow True | 
-(Flat _) \Rightarrow False])])) I (THead (Flat Cast) u t) H10) in (False_ind 
-(arity g c2 t4 a0) H11)))))))))) (\lambda (t3: T).(\lambda (t4: T).(\lambda 
-(H7: (pr0 t3 t4)).(\lambda (H8: (((eq T t3 (THead (Flat Cast) u t)) \to 
-(arity g c2 t4 a0)))).(\lambda (u0: T).(\lambda (H9: (eq T (THead (Flat Cast) 
-u0 t3) (THead (Flat Cast) u t))).(let H10 \def (f_equal T T (\lambda (e: 
-T).(match e in T return (\lambda (_: T).T) with [(TSort _) \Rightarrow u0 | 
-(TLRef _) \Rightarrow u0 | (THead _ t0 _) \Rightarrow t0])) (THead (Flat 
-Cast) u0 t3) (THead (Flat Cast) u t) H9) in ((let H11 \def (f_equal T T 
-(\lambda (e: T).(match e in T return (\lambda (_: T).T) with [(TSort _) 
-\Rightarrow t3 | (TLRef _) \Rightarrow t3 | (THead _ _ t0) \Rightarrow t0])) 
-(THead (Flat Cast) u0 t3) (THead (Flat Cast) u t) H9) in (\lambda (_: (eq T 
-u0 u)).(let H13 \def (eq_ind T t3 (\lambda (t0: T).((eq T t0 (THead (Flat 
-Cast) u t)) \to (arity g c2 t4 a0))) H8 t H11) in (let H14 \def (eq_ind T t3 
-(\lambda (t0: T).(pr0 t0 t4)) H7 t H11) in (H3 c2 H4 t4 H14))))) H10)))))))) 
-y t2 H6))) H5))))))))))))) (\lambda (c: C).(\lambda (t: T).(\lambda (a1: 
-A).(\lambda (_: (arity g c t a1)).(\lambda (H1: ((\forall (c2: C).((wcpr0 c 
-c2) \to (\forall (t2: T).((pr0 t t2) \to (arity g c2 t2 a1))))))).(\lambda 
-(a2: A).(\lambda (H2: (leq g a1 a2)).(\lambda (c2: C).(\lambda (H3: (wcpr0 c 
-c2)).(\lambda (t2: T).(\lambda (H4: (pr0 t t2)).(arity_repl g c2 t2 a1 (H1 c2 
-H3 t2 H4) a2 H2)))))))))))) c1 t1 a H))))).
-(* COMMENTS
-Initial nodes: 10246
-END *)
+(H9: (eq T (THead (Flat Cast) u0 t3) (THead (Flat Cast) u t))).(let H10 \def 
+(f_equal T T (\lambda (e: T).(match e with [(TSort _) \Rightarrow u0 | (TLRef 
+_) \Rightarrow u0 | (THead _ t0 _) \Rightarrow t0])) (THead (Flat Cast) u0 
+t3) (THead (Flat Cast) u t) H9) in ((let H11 \def (f_equal T T (\lambda (e: 
+T).(match e with [(TSort _) \Rightarrow t3 | (TLRef _) \Rightarrow t3 | 
+(THead _ _ t0) \Rightarrow t0])) (THead (Flat Cast) u0 t3) (THead (Flat Cast) 
+u t) H9) in (\lambda (_: (eq T u0 u)).(let H13 \def (eq_ind T t3 (\lambda 
+(t0: T).((eq T t0 (THead (Flat Cast) u t)) \to (arity g c2 t4 a0))) H8 t H11) 
+in (let H14 \def (eq_ind T t3 (\lambda (t0: T).(pr0 t0 t4)) H7 t H11) in (H3 
+c2 H4 t4 H14))))) H10)))))))) y t2 H6))) H5))))))))))))) (\lambda (c: 
+C).(\lambda (t: T).(\lambda (a1: A).(\lambda (_: (arity g c t a1)).(\lambda 
+(H1: ((\forall (c2: C).((wcpr0 c c2) \to (\forall (t2: T).((pr0 t t2) \to 
+(arity g c2 t2 a1))))))).(\lambda (a2: A).(\lambda (H2: (leq g a1 
+a2)).(\lambda (c2: C).(\lambda (H3: (wcpr0 c c2)).(\lambda (t2: T).(\lambda 
+(H4: (pr0 t t2)).(arity_repl g c2 t2 a1 (H1 c2 H3 t2 H4) a2 H2)))))))))))) c1 
+t1 a H))))).
 
 theorem arity_sred_wcpr0_pr1:
  \forall (t1: T).(\forall (t2: T).((pr1 t1 t2) \to (\forall (g: G).(\forall 
@@ -592,9 +545,6 @@ a))))))))).(\lambda (g: G).(\lambda (c1: C).(\lambda (a: A).(\lambda (H3:
 (arity g c1 t4 a)).(\lambda (c2: C).(\lambda (H4: (wcpr0 c1 c2)).(H2 g c2 a 
 (arity_sred_wcpr0_pr0 g c1 t4 a H3 c2 H4 t3 H0) c2 (wcpr0_refl 
 c2)))))))))))))) t1 t2 H))).
-(* COMMENTS
-Initial nodes: 213
-END *)
 
 theorem arity_sred_pr2:
  \forall (c: C).(\forall (t1: T).(\forall (t2: T).((pr2 c t1 t2) \to (\forall 
@@ -612,9 +562,6 @@ t4)).(\lambda (t: T).(\lambda (H2: (subst0 i u t4 t)).(\lambda (g:
 G).(\lambda (a: A).(\lambda (H3: (arity g c0 t3 a)).(arity_subst0 g c0 t4 a 
 (arity_sred_wcpr0_pr0 g c0 t3 a H3 c0 (wcpr0_refl c0) t4 H1) d u i H0 t 
 H2)))))))))))))) c t1 t2 H)))).
-(* COMMENTS
-Initial nodes: 205
-END *)
 
 theorem arity_sred_pr3:
  \forall (c: C).(\forall (t1: T).(\forall (t2: T).((pr3 c t1 t2) \to (\forall 
@@ -629,7 +576,4 @@ T).(\lambda (t4: T).(\lambda (H0: (pr2 c t4 t3)).(\lambda (t5: T).(\lambda
 t3 a) \to (arity g c t5 a)))))).(\lambda (g: G).(\lambda (a: A).(\lambda (H3: 
 (arity g c t4 a)).(H2 g a (arity_sred_pr2 c t4 t3 H0 g a H3))))))))))) t1 t2 
 H)))).
-(* COMMENTS
-Initial nodes: 151
-END *)
 
index 6f131df09a09547f7dd4753447560501cb6c8fe6..971f8d47ef999f41af94b2e3fcffa792ba44d142 100644 (file)
 
 (* This file was automatically generated: do not edit *********************)
 
-include "Basic-1/arity/fwd.ma".
+include "basic_1/arity/fwd.ma".
 
 theorem node_inh:
  \forall (g: G).(\forall (n: nat).(\forall (k: nat).(ex_2 C T (\lambda (c: 
 C).(\lambda (t: T).(arity g c t (ASort k n)))))))
 \def
- \lambda (g: G).(\lambda (n: nat).(\lambda (k: nat).(nat_ind (\lambda (n0: 
-nat).(ex_2 C T (\lambda (c: C).(\lambda (t: T).(arity g c t (ASort n0 n)))))) 
-(ex_2_intro C T (\lambda (c: C).(\lambda (t: T).(arity g c t (ASort O n)))) 
-(CSort O) (TSort n) (arity_sort g (CSort O) n)) (\lambda (n0: nat).(\lambda 
-(H: (ex_2 C T (\lambda (c: C).(\lambda (t: T).(arity g c t (ASort n0 
-n)))))).(let H0 \def H in (ex_2_ind C T (\lambda (c: C).(\lambda (t: 
-T).(arity g c t (ASort n0 n)))) (ex_2 C T (\lambda (c: C).(\lambda (t: 
-T).(arity g c t (ASort (S n0) n))))) (\lambda (x0: C).(\lambda (x1: 
-T).(\lambda (H1: (arity g x0 x1 (ASort n0 n))).(ex_2_intro C T (\lambda (c: 
-C).(\lambda (t: T).(arity g c t (ASort (S n0) n)))) (CHead x0 (Bind Abst) x1) 
-(TLRef O) (arity_abst g (CHead x0 (Bind Abst) x1) x0 x1 O (getl_refl Abst x0 
-x1) (ASort (S n0) n) H1))))) H0)))) k))).
-(* COMMENTS
-Initial nodes: 253
-END *)
+ \lambda (g: G).(\lambda (n: nat).(\lambda (k: nat).(let TMP_3 \def (\lambda 
+(n0: nat).(let TMP_2 \def (\lambda (c: C).(\lambda (t: T).(let TMP_1 \def 
+(ASort n0 n) in (arity g c t TMP_1)))) in (ex_2 C T TMP_2))) in (let TMP_5 
+\def (\lambda (c: C).(\lambda (t: T).(let TMP_4 \def (ASort O n) in (arity g 
+c t TMP_4)))) in (let TMP_6 \def (CSort O) in (let TMP_7 \def (TSort n) in 
+(let TMP_8 \def (CSort O) in (let TMP_9 \def (arity_sort g TMP_8 n) in (let 
+TMP_10 \def (ex_2_intro C T TMP_5 TMP_6 TMP_7 TMP_9) in (let TMP_30 \def 
+(\lambda (n0: nat).(\lambda (H: (ex_2 C T (\lambda (c: C).(\lambda (t: 
+T).(arity g c t (ASort n0 n)))))).(let H0 \def H in (let TMP_12 \def (\lambda 
+(c: C).(\lambda (t: T).(let TMP_11 \def (ASort n0 n) in (arity g c t 
+TMP_11)))) in (let TMP_15 \def (\lambda (c: C).(\lambda (t: T).(let TMP_13 
+\def (S n0) in (let TMP_14 \def (ASort TMP_13 n) in (arity g c t TMP_14))))) 
+in (let TMP_16 \def (ex_2 C T TMP_15) in (let TMP_29 \def (\lambda (x0: 
+C).(\lambda (x1: T).(\lambda (H1: (arity g x0 x1 (ASort n0 n))).(let TMP_19 
+\def (\lambda (c: C).(\lambda (t: T).(let TMP_17 \def (S n0) in (let TMP_18 
+\def (ASort TMP_17 n) in (arity g c t TMP_18))))) in (let TMP_20 \def (Bind 
+Abst) in (let TMP_21 \def (CHead x0 TMP_20 x1) in (let TMP_22 \def (TLRef O) 
+in (let TMP_23 \def (Bind Abst) in (let TMP_24 \def (CHead x0 TMP_23 x1) in 
+(let TMP_25 \def (getl_refl Abst x0 x1) in (let TMP_26 \def (S n0) in (let 
+TMP_27 \def (ASort TMP_26 n) in (let TMP_28 \def (arity_abst g TMP_24 x0 x1 O 
+TMP_25 TMP_27 H1) in (ex_2_intro C T TMP_19 TMP_21 TMP_22 
+TMP_28)))))))))))))) in (ex_2_ind C T TMP_12 TMP_16 TMP_29 H0)))))))) in 
+(nat_ind TMP_3 TMP_10 TMP_30 k))))))))))).
 
 theorem arity_lift:
  \forall (g: G).(\forall (c2: C).(\forall (t: T).(\forall (a: A).((arity g c2 
@@ -42,274 +50,457 @@ t a) \to (\forall (c1: C).(\forall (h: nat).(\forall (d: nat).((drop h d c1
 c2) \to (arity g c1 (lift h d t) a)))))))))
 \def
  \lambda (g: G).(\lambda (c2: C).(\lambda (t: T).(\lambda (a: A).(\lambda (H: 
-(arity g c2 t a)).(arity_ind g (\lambda (c: C).(\lambda (t0: T).(\lambda (a0: 
-A).(\forall (c1: C).(\forall (h: nat).(\forall (d: nat).((drop h d c1 c) \to 
-(arity g c1 (lift h d t0) a0)))))))) (\lambda (c: C).(\lambda (n: 
-nat).(\lambda (c1: C).(\lambda (h: nat).(\lambda (d: nat).(\lambda (_: (drop 
-h d c1 c)).(eq_ind_r T (TSort n) (\lambda (t0: T).(arity g c1 t0 (ASort O 
-n))) (arity_sort g c1 n) (lift h d (TSort n)) (lift_sort n h d)))))))) 
-(\lambda (c: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: nat).(\lambda 
-(H0: (getl i c (CHead d (Bind Abbr) u))).(\lambda (a0: A).(\lambda (H1: 
-(arity g d u a0)).(\lambda (H2: ((\forall (c1: C).(\forall (h: nat).(\forall 
-(d0: nat).((drop h d0 c1 d) \to (arity g c1 (lift h d0 u) a0))))))).(\lambda 
-(c1: C).(\lambda (h: nat).(\lambda (d0: nat).(\lambda (H3: (drop h d0 c1 
-c)).(lt_le_e i d0 (arity g c1 (lift h d0 (TLRef i)) a0) (\lambda (H4: (lt i 
-d0)).(eq_ind_r T (TLRef i) (\lambda (t0: T).(arity g c1 t0 a0)) (let H5 \def 
-(drop_getl_trans_le i d0 (le_S_n i d0 (le_S (S i) d0 H4)) c1 c h H3 (CHead d 
-(Bind Abbr) u) H0) in (ex3_2_ind C C (\lambda (e0: C).(\lambda (_: C).(drop i 
-O c1 e0))) (\lambda (e0: C).(\lambda (e1: C).(drop h (minus d0 i) e0 e1))) 
-(\lambda (_: C).(\lambda (e1: C).(clear e1 (CHead d (Bind Abbr) u)))) (arity 
-g c1 (TLRef i) a0) (\lambda (x0: C).(\lambda (x1: C).(\lambda (H6: (drop i O 
-c1 x0)).(\lambda (H7: (drop h (minus d0 i) x0 x1)).(\lambda (H8: (clear x1 
-(CHead d (Bind Abbr) u))).(let H9 \def (eq_ind nat (minus d0 i) (\lambda (n: 
-nat).(drop h n x0 x1)) H7 (S (minus d0 (S i))) (minus_x_Sy d0 i H4)) in (let 
-H10 \def (drop_clear_S x1 x0 h (minus d0 (S i)) H9 Abbr d u H8) in (ex2_ind C 
-(\lambda (c3: C).(clear x0 (CHead c3 (Bind Abbr) (lift h (minus d0 (S i)) 
-u)))) (\lambda (c3: C).(drop h (minus d0 (S i)) c3 d)) (arity g c1 (TLRef i) 
-a0) (\lambda (x: C).(\lambda (H11: (clear x0 (CHead x (Bind Abbr) (lift h 
-(minus d0 (S i)) u)))).(\lambda (H12: (drop h (minus d0 (S i)) x 
-d)).(arity_abbr g c1 x (lift h (minus d0 (S i)) u) i (getl_intro i c1 (CHead 
-x (Bind Abbr) (lift h (minus d0 (S i)) u)) x0 H6 H11) a0 (H2 x h (minus d0 (S 
-i)) H12))))) H10)))))))) H5)) (lift h d0 (TLRef i)) (lift_lref_lt i h d0 
-H4))) (\lambda (H4: (le d0 i)).(eq_ind_r T (TLRef (plus i h)) (\lambda (t0: 
-T).(arity g c1 t0 a0)) (arity_abbr g c1 d u (plus i h) (drop_getl_trans_ge i 
-c1 c d0 h H3 (CHead d (Bind Abbr) u) H0 H4) a0 H1) (lift h d0 (TLRef i)) 
-(lift_lref_ge i h d0 H4)))))))))))))))) (\lambda (c: C).(\lambda (d: 
+(arity g c2 t a)).(let TMP_2 \def (\lambda (c: C).(\lambda (t0: T).(\lambda 
+(a0: A).(\forall (c1: C).(\forall (h: nat).(\forall (d: nat).((drop h d c1 c) 
+\to (let TMP_1 \def (lift h d t0) in (arity g c1 TMP_1 a0))))))))) in (let 
+TMP_10 \def (\lambda (c: C).(\lambda (n: nat).(\lambda (c1: C).(\lambda (h: 
+nat).(\lambda (d: nat).(\lambda (_: (drop h d c1 c)).(let TMP_3 \def (TSort 
+n) in (let TMP_5 \def (\lambda (t0: T).(let TMP_4 \def (ASort O n) in (arity 
+g c1 t0 TMP_4))) in (let TMP_6 \def (arity_sort g c1 n) in (let TMP_7 \def 
+(TSort n) in (let TMP_8 \def (lift h d TMP_7) in (let TMP_9 \def (lift_sort n 
+h d) in (eq_ind_r T TMP_3 TMP_5 TMP_6 TMP_8 TMP_9))))))))))))) in (let TMP_86 
+\def (\lambda (c: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: 
+nat).(\lambda (H0: (getl i c (CHead d (Bind Abbr) u))).(\lambda (a0: 
+A).(\lambda (H1: (arity g d u a0)).(\lambda (H2: ((\forall (c1: C).(\forall 
+(h: nat).(\forall (d0: nat).((drop h d0 c1 d) \to (arity g c1 (lift h d0 u) 
+a0))))))).(\lambda (c1: C).(\lambda (h: nat).(\lambda (d0: nat).(\lambda (H3: 
+(drop h d0 c1 c)).(let TMP_11 \def (TLRef i) in (let TMP_12 \def (lift h d0 
+TMP_11) in (let TMP_13 \def (arity g c1 TMP_12 a0) in (let TMP_73 \def 
+(\lambda (H4: (lt i d0)).(let TMP_14 \def (TLRef i) in (let TMP_15 \def 
+(\lambda (t0: T).(arity g c1 t0 a0)) in (let TMP_16 \def (S i) in (let TMP_17 
+\def (S d0) in (let TMP_18 \def (S i) in (let TMP_19 \def (S TMP_18) in (let 
+TMP_20 \def (S d0) in (let TMP_21 \def (S i) in (let TMP_22 \def (le_n_S 
+TMP_21 d0 H4) in (let TMP_23 \def (le_S TMP_19 TMP_20 TMP_22) in (let TMP_24 
+\def (le_S_n TMP_16 TMP_17 TMP_23) in (let TMP_25 \def (le_S_n i d0 TMP_24) 
+in (let TMP_26 \def (Bind Abbr) in (let TMP_27 \def (CHead d TMP_26 u) in 
+(let H5 \def (drop_getl_trans_le i d0 TMP_25 c1 c h H3 TMP_27 H0) in (let 
+TMP_28 \def (\lambda (e0: C).(\lambda (_: C).(drop i O c1 e0))) in (let 
+TMP_30 \def (\lambda (e0: C).(\lambda (e1: C).(let TMP_29 \def (minus d0 i) 
+in (drop h TMP_29 e0 e1)))) in (let TMP_33 \def (\lambda (_: C).(\lambda (e1: 
+C).(let TMP_31 \def (Bind Abbr) in (let TMP_32 \def (CHead d TMP_31 u) in 
+(clear e1 TMP_32))))) in (let TMP_34 \def (TLRef i) in (let TMP_35 \def 
+(arity g c1 TMP_34 a0) in (let TMP_68 \def (\lambda (x0: C).(\lambda (x1: 
+C).(\lambda (H6: (drop i O c1 x0)).(\lambda (H7: (drop h (minus d0 i) x0 
+x1)).(\lambda (H8: (clear x1 (CHead d (Bind Abbr) u))).(let TMP_36 \def 
+(minus d0 i) in (let TMP_37 \def (\lambda (n: nat).(drop h n x0 x1)) in (let 
+TMP_38 \def (S i) in (let TMP_39 \def (minus d0 TMP_38) in (let TMP_40 \def 
+(S TMP_39) in (let TMP_41 \def (minus_x_Sy d0 i H4) in (let H9 \def (eq_ind 
+nat TMP_36 TMP_37 H7 TMP_40 TMP_41) in (let TMP_42 \def (S i) in (let TMP_43 
+\def (minus d0 TMP_42) in (let H10 \def (drop_clear_S x1 x0 h TMP_43 H9 Abbr 
+d u H8) in (let TMP_49 \def (\lambda (c3: C).(let TMP_44 \def (Bind Abbr) in 
+(let TMP_45 \def (S i) in (let TMP_46 \def (minus d0 TMP_45) in (let TMP_47 
+\def (lift h TMP_46 u) in (let TMP_48 \def (CHead c3 TMP_44 TMP_47) in (clear 
+x0 TMP_48))))))) in (let TMP_52 \def (\lambda (c3: C).(let TMP_50 \def (S i) 
+in (let TMP_51 \def (minus d0 TMP_50) in (drop h TMP_51 c3 d)))) in (let 
+TMP_53 \def (TLRef i) in (let TMP_54 \def (arity g c1 TMP_53 a0) in (let 
+TMP_67 \def (\lambda (x: C).(\lambda (H11: (clear x0 (CHead x (Bind Abbr) 
+(lift h (minus d0 (S i)) u)))).(\lambda (H12: (drop h (minus d0 (S i)) x 
+d)).(let TMP_55 \def (S i) in (let TMP_56 \def (minus d0 TMP_55) in (let 
+TMP_57 \def (lift h TMP_56 u) in (let TMP_58 \def (Bind Abbr) in (let TMP_59 
+\def (S i) in (let TMP_60 \def (minus d0 TMP_59) in (let TMP_61 \def (lift h 
+TMP_60 u) in (let TMP_62 \def (CHead x TMP_58 TMP_61) in (let TMP_63 \def 
+(getl_intro i c1 TMP_62 x0 H6 H11) in (let TMP_64 \def (S i) in (let TMP_65 
+\def (minus d0 TMP_64) in (let TMP_66 \def (H2 x h TMP_65 H12) in (arity_abbr 
+g c1 x TMP_57 i TMP_63 a0 TMP_66)))))))))))))))) in (ex2_ind C TMP_49 TMP_52 
+TMP_54 TMP_67 H10))))))))))))))))))))) in (let TMP_69 \def (ex3_2_ind C C 
+TMP_28 TMP_30 TMP_33 TMP_35 TMP_68 H5) in (let TMP_70 \def (TLRef i) in (let 
+TMP_71 \def (lift h d0 TMP_70) in (let TMP_72 \def (lift_lref_lt i h d0 H4) 
+in (eq_ind_r T TMP_14 TMP_15 TMP_69 TMP_71 TMP_72))))))))))))))))))))))))))) 
+in (let TMP_85 \def (\lambda (H4: (le d0 i)).(let TMP_74 \def (plus i h) in 
+(let TMP_75 \def (TLRef TMP_74) in (let TMP_76 \def (\lambda (t0: T).(arity g 
+c1 t0 a0)) in (let TMP_77 \def (plus i h) in (let TMP_78 \def (Bind Abbr) in 
+(let TMP_79 \def (CHead d TMP_78 u) in (let TMP_80 \def (drop_getl_trans_ge i 
+c1 c d0 h H3 TMP_79 H0 H4) in (let TMP_81 \def (arity_abbr g c1 d u TMP_77 
+TMP_80 a0 H1) in (let TMP_82 \def (TLRef i) in (let TMP_83 \def (lift h d0 
+TMP_82) in (let TMP_84 \def (lift_lref_ge i h d0 H4) in (eq_ind_r T TMP_75 
+TMP_76 TMP_81 TMP_83 TMP_84))))))))))))) in (lt_le_e i d0 TMP_13 TMP_73 
+TMP_85)))))))))))))))))) in (let TMP_162 \def (\lambda (c: C).(\lambda (d: 
 C).(\lambda (u: T).(\lambda (i: nat).(\lambda (H0: (getl i c (CHead d (Bind 
 Abst) u))).(\lambda (a0: A).(\lambda (H1: (arity g d u (asucc g 
 a0))).(\lambda (H2: ((\forall (c1: C).(\forall (h: nat).(\forall (d0: 
 nat).((drop h d0 c1 d) \to (arity g c1 (lift h d0 u) (asucc g 
 a0)))))))).(\lambda (c1: C).(\lambda (h: nat).(\lambda (d0: nat).(\lambda 
-(H3: (drop h d0 c1 c)).(lt_le_e i d0 (arity g c1 (lift h d0 (TLRef i)) a0) 
-(\lambda (H4: (lt i d0)).(eq_ind_r T (TLRef i) (\lambda (t0: T).(arity g c1 
-t0 a0)) (let H5 \def (drop_getl_trans_le i d0 (le_S_n i d0 (le_S (S i) d0 
-H4)) c1 c h H3 (CHead d (Bind Abst) u) H0) in (ex3_2_ind C C (\lambda (e0: 
-C).(\lambda (_: C).(drop i O c1 e0))) (\lambda (e0: C).(\lambda (e1: C).(drop 
-h (minus d0 i) e0 e1))) (\lambda (_: C).(\lambda (e1: C).(clear e1 (CHead d 
-(Bind Abst) u)))) (arity g c1 (TLRef i) a0) (\lambda (x0: C).(\lambda (x1: 
-C).(\lambda (H6: (drop i O c1 x0)).(\lambda (H7: (drop h (minus d0 i) x0 
-x1)).(\lambda (H8: (clear x1 (CHead d (Bind Abst) u))).(let H9 \def (eq_ind 
-nat (minus d0 i) (\lambda (n: nat).(drop h n x0 x1)) H7 (S (minus d0 (S i))) 
-(minus_x_Sy d0 i H4)) in (let H10 \def (drop_clear_S x1 x0 h (minus d0 (S i)) 
-H9 Abst d u H8) in (ex2_ind C (\lambda (c3: C).(clear x0 (CHead c3 (Bind 
-Abst) (lift h (minus d0 (S i)) u)))) (\lambda (c3: C).(drop h (minus d0 (S 
-i)) c3 d)) (arity g c1 (TLRef i) a0) (\lambda (x: C).(\lambda (H11: (clear x0 
-(CHead x (Bind Abst) (lift h (minus d0 (S i)) u)))).(\lambda (H12: (drop h 
-(minus d0 (S i)) x d)).(arity_abst g c1 x (lift h (minus d0 (S i)) u) i 
-(getl_intro i c1 (CHead x (Bind Abst) (lift h (minus d0 (S i)) u)) x0 H6 H11) 
-a0 (H2 x h (minus d0 (S i)) H12))))) H10)))))))) H5)) (lift h d0 (TLRef i)) 
-(lift_lref_lt i h d0 H4))) (\lambda (H4: (le d0 i)).(eq_ind_r T (TLRef (plus 
-i h)) (\lambda (t0: T).(arity g c1 t0 a0)) (arity_abst g c1 d u (plus i h) 
-(drop_getl_trans_ge i c1 c d0 h H3 (CHead d (Bind Abst) u) H0 H4) a0 H1) 
-(lift h d0 (TLRef i)) (lift_lref_ge i h d0 H4)))))))))))))))) (\lambda (b: 
-B).(\lambda (H0: (not (eq B b Abst))).(\lambda (c: C).(\lambda (u: 
-T).(\lambda (a1: A).(\lambda (_: (arity g c u a1)).(\lambda (H2: ((\forall 
-(c1: C).(\forall (h: nat).(\forall (d: nat).((drop h d c1 c) \to (arity g c1 
-(lift h d u) a1))))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda (_: (arity 
-g (CHead c (Bind b) u) t0 a2)).(\lambda (H4: ((\forall (c1: C).(\forall (h: 
-nat).(\forall (d: nat).((drop h d c1 (CHead c (Bind b) u)) \to (arity g c1 
-(lift h d t0) a2))))))).(\lambda (c1: C).(\lambda (h: nat).(\lambda (d: 
-nat).(\lambda (H5: (drop h d c1 c)).(eq_ind_r T (THead (Bind b) (lift h d u) 
-(lift h (s (Bind b) d) t0)) (\lambda (t1: T).(arity g c1 t1 a2)) (arity_bind 
-g b H0 c1 (lift h d u) a1 (H2 c1 h d H5) (lift h (s (Bind b) d) t0) a2 (H4 
-(CHead c1 (Bind b) (lift h d u)) h (s (Bind b) d) (drop_skip_bind h d c1 c H5 
-b u))) (lift h d (THead (Bind b) u t0)) (lift_head (Bind b) u t0 h 
-d))))))))))))))))) (\lambda (c: C).(\lambda (u: T).(\lambda (a1: A).(\lambda 
-(_: (arity g c u (asucc g a1))).(\lambda (H1: ((\forall (c1: C).(\forall (h: 
-nat).(\forall (d: nat).((drop h d c1 c) \to (arity g c1 (lift h d u) (asucc g 
+(H3: (drop h d0 c1 c)).(let TMP_87 \def (TLRef i) in (let TMP_88 \def (lift h 
+d0 TMP_87) in (let TMP_89 \def (arity g c1 TMP_88 a0) in (let TMP_149 \def 
+(\lambda (H4: (lt i d0)).(let TMP_90 \def (TLRef i) in (let TMP_91 \def 
+(\lambda (t0: T).(arity g c1 t0 a0)) in (let TMP_92 \def (S i) in (let TMP_93 
+\def (S d0) in (let TMP_94 \def (S i) in (let TMP_95 \def (S TMP_94) in (let 
+TMP_96 \def (S d0) in (let TMP_97 \def (S i) in (let TMP_98 \def (le_n_S 
+TMP_97 d0 H4) in (let TMP_99 \def (le_S TMP_95 TMP_96 TMP_98) in (let TMP_100 
+\def (le_S_n TMP_92 TMP_93 TMP_99) in (let TMP_101 \def (le_S_n i d0 TMP_100) 
+in (let TMP_102 \def (Bind Abst) in (let TMP_103 \def (CHead d TMP_102 u) in 
+(let H5 \def (drop_getl_trans_le i d0 TMP_101 c1 c h H3 TMP_103 H0) in (let 
+TMP_104 \def (\lambda (e0: C).(\lambda (_: C).(drop i O c1 e0))) in (let 
+TMP_106 \def (\lambda (e0: C).(\lambda (e1: C).(let TMP_105 \def (minus d0 i) 
+in (drop h TMP_105 e0 e1)))) in (let TMP_109 \def (\lambda (_: C).(\lambda 
+(e1: C).(let TMP_107 \def (Bind Abst) in (let TMP_108 \def (CHead d TMP_107 
+u) in (clear e1 TMP_108))))) in (let TMP_110 \def (TLRef i) in (let TMP_111 
+\def (arity g c1 TMP_110 a0) in (let TMP_144 \def (\lambda (x0: C).(\lambda 
+(x1: C).(\lambda (H6: (drop i O c1 x0)).(\lambda (H7: (drop h (minus d0 i) x0 
+x1)).(\lambda (H8: (clear x1 (CHead d (Bind Abst) u))).(let TMP_112 \def 
+(minus d0 i) in (let TMP_113 \def (\lambda (n: nat).(drop h n x0 x1)) in (let 
+TMP_114 \def (S i) in (let TMP_115 \def (minus d0 TMP_114) in (let TMP_116 
+\def (S TMP_115) in (let TMP_117 \def (minus_x_Sy d0 i H4) in (let H9 \def 
+(eq_ind nat TMP_112 TMP_113 H7 TMP_116 TMP_117) in (let TMP_118 \def (S i) in 
+(let TMP_119 \def (minus d0 TMP_118) in (let H10 \def (drop_clear_S x1 x0 h 
+TMP_119 H9 Abst d u H8) in (let TMP_125 \def (\lambda (c3: C).(let TMP_120 
+\def (Bind Abst) in (let TMP_121 \def (S i) in (let TMP_122 \def (minus d0 
+TMP_121) in (let TMP_123 \def (lift h TMP_122 u) in (let TMP_124 \def (CHead 
+c3 TMP_120 TMP_123) in (clear x0 TMP_124))))))) in (let TMP_128 \def (\lambda 
+(c3: C).(let TMP_126 \def (S i) in (let TMP_127 \def (minus d0 TMP_126) in 
+(drop h TMP_127 c3 d)))) in (let TMP_129 \def (TLRef i) in (let TMP_130 \def 
+(arity g c1 TMP_129 a0) in (let TMP_143 \def (\lambda (x: C).(\lambda (H11: 
+(clear x0 (CHead x (Bind Abst) (lift h (minus d0 (S i)) u)))).(\lambda (H12: 
+(drop h (minus d0 (S i)) x d)).(let TMP_131 \def (S i) in (let TMP_132 \def 
+(minus d0 TMP_131) in (let TMP_133 \def (lift h TMP_132 u) in (let TMP_134 
+\def (Bind Abst) in (let TMP_135 \def (S i) in (let TMP_136 \def (minus d0 
+TMP_135) in (let TMP_137 \def (lift h TMP_136 u) in (let TMP_138 \def (CHead 
+x TMP_134 TMP_137) in (let TMP_139 \def (getl_intro i c1 TMP_138 x0 H6 H11) 
+in (let TMP_140 \def (S i) in (let TMP_141 \def (minus d0 TMP_140) in (let 
+TMP_142 \def (H2 x h TMP_141 H12) in (arity_abst g c1 x TMP_133 i TMP_139 a0 
+TMP_142)))))))))))))))) in (ex2_ind C TMP_125 TMP_128 TMP_130 TMP_143 
+H10))))))))))))))))))))) in (let TMP_145 \def (ex3_2_ind C C TMP_104 TMP_106 
+TMP_109 TMP_111 TMP_144 H5) in (let TMP_146 \def (TLRef i) in (let TMP_147 
+\def (lift h d0 TMP_146) in (let TMP_148 \def (lift_lref_lt i h d0 H4) in 
+(eq_ind_r T TMP_90 TMP_91 TMP_145 TMP_147 TMP_148))))))))))))))))))))))))))) 
+in (let TMP_161 \def (\lambda (H4: (le d0 i)).(let TMP_150 \def (plus i h) in 
+(let TMP_151 \def (TLRef TMP_150) in (let TMP_152 \def (\lambda (t0: 
+T).(arity g c1 t0 a0)) in (let TMP_153 \def (plus i h) in (let TMP_154 \def 
+(Bind Abst) in (let TMP_155 \def (CHead d TMP_154 u) in (let TMP_156 \def 
+(drop_getl_trans_ge i c1 c d0 h H3 TMP_155 H0 H4) in (let TMP_157 \def 
+(arity_abst g c1 d u TMP_153 TMP_156 a0 H1) in (let TMP_158 \def (TLRef i) in 
+(let TMP_159 \def (lift h d0 TMP_158) in (let TMP_160 \def (lift_lref_ge i h 
+d0 H4) in (eq_ind_r T TMP_151 TMP_152 TMP_157 TMP_159 TMP_160))))))))))))) in 
+(lt_le_e i d0 TMP_89 TMP_149 TMP_161)))))))))))))))))) in (let TMP_188 \def 
+(\lambda (b: B).(\lambda (H0: (not (eq B b Abst))).(\lambda (c: C).(\lambda 
+(u: T).(\lambda (a1: A).(\lambda (_: (arity g c u a1)).(\lambda (H2: 
+((\forall (c1: C).(\forall (h: nat).(\forall (d: nat).((drop h d c1 c) \to 
+(arity g c1 (lift h d u) a1))))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda 
+(_: (arity g (CHead c (Bind b) u) t0 a2)).(\lambda (H4: ((\forall (c1: 
+C).(\forall (h: nat).(\forall (d: nat).((drop h d c1 (CHead c (Bind b) u)) 
+\to (arity g c1 (lift h d t0) a2))))))).(\lambda (c1: C).(\lambda (h: 
+nat).(\lambda (d: nat).(\lambda (H5: (drop h d c1 c)).(let TMP_163 \def (Bind 
+b) in (let TMP_164 \def (lift h d u) in (let TMP_165 \def (Bind b) in (let 
+TMP_166 \def (s TMP_165 d) in (let TMP_167 \def (lift h TMP_166 t0) in (let 
+TMP_168 \def (THead TMP_163 TMP_164 TMP_167) in (let TMP_169 \def (\lambda 
+(t1: T).(arity g c1 t1 a2)) in (let TMP_170 \def (lift h d u) in (let TMP_171 
+\def (H2 c1 h d H5) in (let TMP_172 \def (Bind b) in (let TMP_173 \def (s 
+TMP_172 d) in (let TMP_174 \def (lift h TMP_173 t0) in (let TMP_175 \def 
+(Bind b) in (let TMP_176 \def (lift h d u) in (let TMP_177 \def (CHead c1 
+TMP_175 TMP_176) in (let TMP_178 \def (Bind b) in (let TMP_179 \def (s 
+TMP_178 d) in (let TMP_180 \def (drop_skip_bind h d c1 c H5 b u) in (let 
+TMP_181 \def (H4 TMP_177 h TMP_179 TMP_180) in (let TMP_182 \def (arity_bind 
+g b H0 c1 TMP_170 a1 TMP_171 TMP_174 a2 TMP_181) in (let TMP_183 \def (Bind 
+b) in (let TMP_184 \def (THead TMP_183 u t0) in (let TMP_185 \def (lift h d 
+TMP_184) in (let TMP_186 \def (Bind b) in (let TMP_187 \def (lift_head 
+TMP_186 u t0 h d) in (eq_ind_r T TMP_168 TMP_169 TMP_182 TMP_185 
+TMP_187))))))))))))))))))))))))))))))))))))))))) in (let TMP_215 \def 
+(\lambda (c: C).(\lambda (u: T).(\lambda (a1: A).(\lambda (_: (arity g c u 
+(asucc g a1))).(\lambda (H1: ((\forall (c1: C).(\forall (h: nat).(\forall (d: 
+nat).((drop h d c1 c) \to (arity g c1 (lift h d u) (asucc g 
 a1)))))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda (_: (arity g (CHead c 
 (Bind Abst) u) t0 a2)).(\lambda (H3: ((\forall (c1: C).(\forall (h: 
 nat).(\forall (d: nat).((drop h d c1 (CHead c (Bind Abst) u)) \to (arity g c1 
 (lift h d t0) a2))))))).(\lambda (c1: C).(\lambda (h: nat).(\lambda (d: 
-nat).(\lambda (H4: (drop h d c1 c)).(eq_ind_r T (THead (Bind Abst) (lift h d 
-u) (lift h (s (Bind Abst) d) t0)) (\lambda (t1: T).(arity g c1 t1 (AHead a1 
-a2))) (arity_head g c1 (lift h d u) a1 (H1 c1 h d H4) (lift h (s (Bind Abst) 
-d) t0) a2 (H3 (CHead c1 (Bind Abst) (lift h d u)) h (s (Bind Abst) d) 
-(drop_skip_bind h d c1 c H4 Abst u))) (lift h d (THead (Bind Abst) u t0)) 
-(lift_head (Bind Abst) u t0 h d))))))))))))))) (\lambda (c: C).(\lambda (u: 
-T).(\lambda (a1: A).(\lambda (_: (arity g c u a1)).(\lambda (H1: ((\forall 
-(c1: C).(\forall (h: nat).(\forall (d: nat).((drop h d c1 c) \to (arity g c1 
-(lift h d u) a1))))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda (_: (arity 
-g c t0 (AHead a1 a2))).(\lambda (H3: ((\forall (c1: C).(\forall (h: 
-nat).(\forall (d: nat).((drop h d c1 c) \to (arity g c1 (lift h d t0) (AHead 
-a1 a2)))))))).(\lambda (c1: C).(\lambda (h: nat).(\lambda (d: nat).(\lambda 
-(H4: (drop h d c1 c)).(eq_ind_r T (THead (Flat Appl) (lift h d u) (lift h (s 
-(Flat Appl) d) t0)) (\lambda (t1: T).(arity g c1 t1 a2)) (arity_appl g c1 
-(lift h d u) a1 (H1 c1 h d H4) (lift h (s (Flat Appl) d) t0) a2 (H3 c1 h (s 
-(Flat Appl) d) H4)) (lift h d (THead (Flat Appl) u t0)) (lift_head (Flat 
-Appl) u t0 h d))))))))))))))) (\lambda (c: C).(\lambda (u: T).(\lambda (a0: 
-A).(\lambda (_: (arity g c u (asucc g a0))).(\lambda (H1: ((\forall (c1: 
-C).(\forall (h: nat).(\forall (d: nat).((drop h d c1 c) \to (arity g c1 (lift 
-h d u) (asucc g a0)))))))).(\lambda (t0: T).(\lambda (_: (arity g c t0 
-a0)).(\lambda (H3: ((\forall (c1: C).(\forall (h: nat).(\forall (d: 
-nat).((drop h d c1 c) \to (arity g c1 (lift h d t0) a0))))))).(\lambda (c1: 
-C).(\lambda (h: nat).(\lambda (d: nat).(\lambda (H4: (drop h d c1 
-c)).(eq_ind_r T (THead (Flat Cast) (lift h d u) (lift h (s (Flat Cast) d) 
-t0)) (\lambda (t1: T).(arity g c1 t1 a0)) (arity_cast g c1 (lift h d u) a0 
-(H1 c1 h d H4) (lift h (s (Flat Cast) d) t0) (H3 c1 h (s (Flat Cast) d) H4)) 
-(lift h d (THead (Flat Cast) u t0)) (lift_head (Flat Cast) u t0 h 
-d)))))))))))))) (\lambda (c: C).(\lambda (t0: T).(\lambda (a1: A).(\lambda 
-(_: (arity g c t0 a1)).(\lambda (H1: ((\forall (c1: C).(\forall (h: 
-nat).(\forall (d: nat).((drop h d c1 c) \to (arity g c1 (lift h d t0) 
-a1))))))).(\lambda (a2: A).(\lambda (H2: (leq g a1 a2)).(\lambda (c1: 
-C).(\lambda (h: nat).(\lambda (d: nat).(\lambda (H3: (drop h d c1 
-c)).(arity_repl g c1 (lift h d t0) a1 (H1 c1 h d H3) a2 H2)))))))))))) c2 t a 
-H))))).
-(* COMMENTS
-Initial nodes: 2661
-END *)
+nat).(\lambda (H4: (drop h d c1 c)).(let TMP_189 \def (Bind Abst) in (let 
+TMP_190 \def (lift h d u) in (let TMP_191 \def (Bind Abst) in (let TMP_192 
+\def (s TMP_191 d) in (let TMP_193 \def (lift h TMP_192 t0) in (let TMP_194 
+\def (THead TMP_189 TMP_190 TMP_193) in (let TMP_196 \def (\lambda (t1: 
+T).(let TMP_195 \def (AHead a1 a2) in (arity g c1 t1 TMP_195))) in (let 
+TMP_197 \def (lift h d u) in (let TMP_198 \def (H1 c1 h d H4) in (let TMP_199 
+\def (Bind Abst) in (let TMP_200 \def (s TMP_199 d) in (let TMP_201 \def 
+(lift h TMP_200 t0) in (let TMP_202 \def (Bind Abst) in (let TMP_203 \def 
+(lift h d u) in (let TMP_204 \def (CHead c1 TMP_202 TMP_203) in (let TMP_205 
+\def (Bind Abst) in (let TMP_206 \def (s TMP_205 d) in (let TMP_207 \def 
+(drop_skip_bind h d c1 c H4 Abst u) in (let TMP_208 \def (H3 TMP_204 h 
+TMP_206 TMP_207) in (let TMP_209 \def (arity_head g c1 TMP_197 a1 TMP_198 
+TMP_201 a2 TMP_208) in (let TMP_210 \def (Bind Abst) in (let TMP_211 \def 
+(THead TMP_210 u t0) in (let TMP_212 \def (lift h d TMP_211) in (let TMP_213 
+\def (Bind Abst) in (let TMP_214 \def (lift_head TMP_213 u t0 h d) in 
+(eq_ind_r T TMP_194 TMP_196 TMP_209 TMP_212 
+TMP_214))))))))))))))))))))))))))))))))))))))) in (let TMP_237 \def (\lambda 
+(c: C).(\lambda (u: T).(\lambda (a1: A).(\lambda (_: (arity g c u 
+a1)).(\lambda (H1: ((\forall (c1: C).(\forall (h: nat).(\forall (d: 
+nat).((drop h d c1 c) \to (arity g c1 (lift h d u) a1))))))).(\lambda (t0: 
+T).(\lambda (a2: A).(\lambda (_: (arity g c t0 (AHead a1 a2))).(\lambda (H3: 
+((\forall (c1: C).(\forall (h: nat).(\forall (d: nat).((drop h d c1 c) \to 
+(arity g c1 (lift h d t0) (AHead a1 a2)))))))).(\lambda (c1: C).(\lambda (h: 
+nat).(\lambda (d: nat).(\lambda (H4: (drop h d c1 c)).(let TMP_216 \def (Flat 
+Appl) in (let TMP_217 \def (lift h d u) in (let TMP_218 \def (Flat Appl) in 
+(let TMP_219 \def (s TMP_218 d) in (let TMP_220 \def (lift h TMP_219 t0) in 
+(let TMP_221 \def (THead TMP_216 TMP_217 TMP_220) in (let TMP_222 \def 
+(\lambda (t1: T).(arity g c1 t1 a2)) in (let TMP_223 \def (lift h d u) in 
+(let TMP_224 \def (H1 c1 h d H4) in (let TMP_225 \def (Flat Appl) in (let 
+TMP_226 \def (s TMP_225 d) in (let TMP_227 \def (lift h TMP_226 t0) in (let 
+TMP_228 \def (Flat Appl) in (let TMP_229 \def (s TMP_228 d) in (let TMP_230 
+\def (H3 c1 h TMP_229 H4) in (let TMP_231 \def (arity_appl g c1 TMP_223 a1 
+TMP_224 TMP_227 a2 TMP_230) in (let TMP_232 \def (Flat Appl) in (let TMP_233 
+\def (THead TMP_232 u t0) in (let TMP_234 \def (lift h d TMP_233) in (let 
+TMP_235 \def (Flat Appl) in (let TMP_236 \def (lift_head TMP_235 u t0 h d) in 
+(eq_ind_r T TMP_221 TMP_222 TMP_231 TMP_234 
+TMP_236))))))))))))))))))))))))))))))))))) in (let TMP_259 \def (\lambda (c: 
+C).(\lambda (u: T).(\lambda (a0: A).(\lambda (_: (arity g c u (asucc g 
+a0))).(\lambda (H1: ((\forall (c1: C).(\forall (h: nat).(\forall (d: 
+nat).((drop h d c1 c) \to (arity g c1 (lift h d u) (asucc g 
+a0)))))))).(\lambda (t0: T).(\lambda (_: (arity g c t0 a0)).(\lambda (H3: 
+((\forall (c1: C).(\forall (h: nat).(\forall (d: nat).((drop h d c1 c) \to 
+(arity g c1 (lift h d t0) a0))))))).(\lambda (c1: C).(\lambda (h: 
+nat).(\lambda (d: nat).(\lambda (H4: (drop h d c1 c)).(let TMP_238 \def (Flat 
+Cast) in (let TMP_239 \def (lift h d u) in (let TMP_240 \def (Flat Cast) in 
+(let TMP_241 \def (s TMP_240 d) in (let TMP_242 \def (lift h TMP_241 t0) in 
+(let TMP_243 \def (THead TMP_238 TMP_239 TMP_242) in (let TMP_244 \def 
+(\lambda (t1: T).(arity g c1 t1 a0)) in (let TMP_245 \def (lift h d u) in 
+(let TMP_246 \def (H1 c1 h d H4) in (let TMP_247 \def (Flat Cast) in (let 
+TMP_248 \def (s TMP_247 d) in (let TMP_249 \def (lift h TMP_248 t0) in (let 
+TMP_250 \def (Flat Cast) in (let TMP_251 \def (s TMP_250 d) in (let TMP_252 
+\def (H3 c1 h TMP_251 H4) in (let TMP_253 \def (arity_cast g c1 TMP_245 a0 
+TMP_246 TMP_249 TMP_252) in (let TMP_254 \def (Flat Cast) in (let TMP_255 
+\def (THead TMP_254 u t0) in (let TMP_256 \def (lift h d TMP_255) in (let 
+TMP_257 \def (Flat Cast) in (let TMP_258 \def (lift_head TMP_257 u t0 h d) in 
+(eq_ind_r T TMP_243 TMP_244 TMP_253 TMP_256 
+TMP_258)))))))))))))))))))))))))))))))))) in (let TMP_262 \def (\lambda (c: 
+C).(\lambda (t0: T).(\lambda (a1: A).(\lambda (_: (arity g c t0 a1)).(\lambda 
+(H1: ((\forall (c1: C).(\forall (h: nat).(\forall (d: nat).((drop h d c1 c) 
+\to (arity g c1 (lift h d t0) a1))))))).(\lambda (a2: A).(\lambda (H2: (leq g 
+a1 a2)).(\lambda (c1: C).(\lambda (h: nat).(\lambda (d: nat).(\lambda (H3: 
+(drop h d c1 c)).(let TMP_260 \def (lift h d t0) in (let TMP_261 \def (H1 c1 
+h d H3) in (arity_repl g c1 TMP_260 a1 TMP_261 a2 H2)))))))))))))) in 
+(arity_ind g TMP_2 TMP_10 TMP_86 TMP_162 TMP_188 TMP_215 TMP_237 TMP_259 
+TMP_262 c2 t a H)))))))))))))).
 
 theorem arity_mono:
  \forall (g: G).(\forall (c: C).(\forall (t: T).(\forall (a1: A).((arity g c 
 t a1) \to (\forall (a2: A).((arity g c t a2) \to (leq g a1 a2)))))))
 \def
  \lambda (g: G).(\lambda (c: C).(\lambda (t: T).(\lambda (a1: A).(\lambda (H: 
-(arity g c t a1)).(arity_ind g (\lambda (c0: C).(\lambda (t0: T).(\lambda (a: 
-A).(\forall (a2: A).((arity g c0 t0 a2) \to (leq g a a2)))))) (\lambda (c0: 
-C).(\lambda (n: nat).(\lambda (a2: A).(\lambda (H0: (arity g c0 (TSort n) 
-a2)).(leq_sym g a2 (ASort O n) (arity_gen_sort g c0 n a2 H0)))))) (\lambda 
-(c0: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: nat).(\lambda (H0: (getl 
-i c0 (CHead d (Bind Abbr) u))).(\lambda (a: A).(\lambda (_: (arity g d u 
-a)).(\lambda (H2: ((\forall (a2: A).((arity g d u a2) \to (leq g a 
-a2))))).(\lambda (a2: A).(\lambda (H3: (arity g c0 (TLRef i) a2)).(let H4 
-\def (arity_gen_lref g c0 i a2 H3) in (or_ind (ex2_2 C T (\lambda (d0: 
-C).(\lambda (u0: T).(getl i c0 (CHead d0 (Bind Abbr) u0)))) (\lambda (d0: 
-C).(\lambda (u0: T).(arity g d0 u0 a2)))) (ex2_2 C T (\lambda (d0: 
-C).(\lambda (u0: T).(getl i c0 (CHead d0 (Bind Abst) u0)))) (\lambda (d0: 
-C).(\lambda (u0: T).(arity g d0 u0 (asucc g a2))))) (leq g a a2) (\lambda 
-(H5: (ex2_2 C T (\lambda (d0: C).(\lambda (u0: T).(getl i c0 (CHead d0 (Bind 
-Abbr) u0)))) (\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 
-a2))))).(ex2_2_ind C T (\lambda (d0: C).(\lambda (u0: T).(getl i c0 (CHead d0 
-(Bind Abbr) u0)))) (\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 a2))) 
-(leq g a a2) (\lambda (x0: C).(\lambda (x1: T).(\lambda (H6: (getl i c0 
-(CHead x0 (Bind Abbr) x1))).(\lambda (H7: (arity g x0 x1 a2)).(let H8 \def 
-(eq_ind C (CHead d (Bind Abbr) u) (\lambda (c1: C).(getl i c0 c1)) H0 (CHead 
-x0 (Bind Abbr) x1) (getl_mono c0 (CHead d (Bind Abbr) u) i H0 (CHead x0 (Bind 
-Abbr) x1) H6)) in (let H9 \def (f_equal C C (\lambda (e: C).(match e in C 
-return (\lambda (_: C).C) with [(CSort _) \Rightarrow d | (CHead c1 _ _) 
-\Rightarrow c1])) (CHead d (Bind Abbr) u) (CHead x0 (Bind Abbr) x1) 
-(getl_mono c0 (CHead d (Bind Abbr) u) i H0 (CHead x0 (Bind Abbr) x1) H6)) in 
-((let H10 \def (f_equal C T (\lambda (e: C).(match e in C return (\lambda (_: 
-C).T) with [(CSort _) \Rightarrow u | (CHead _ _ t0) \Rightarrow t0])) (CHead 
-d (Bind Abbr) u) (CHead x0 (Bind Abbr) x1) (getl_mono c0 (CHead d (Bind Abbr) 
-u) i H0 (CHead x0 (Bind Abbr) x1) H6)) in (\lambda (H11: (eq C d x0)).(let 
-H12 \def (eq_ind_r T x1 (\lambda (t0: T).(getl i c0 (CHead x0 (Bind Abbr) 
-t0))) H8 u H10) in (let H13 \def (eq_ind_r T x1 (\lambda (t0: T).(arity g x0 
-t0 a2)) H7 u H10) in (let H14 \def (eq_ind_r C x0 (\lambda (c1: C).(getl i c0 
-(CHead c1 (Bind Abbr) u))) H12 d H11) in (let H15 \def (eq_ind_r C x0 
-(\lambda (c1: C).(arity g c1 u a2)) H13 d H11) in (H2 a2 H15))))))) H9))))))) 
-H5)) (\lambda (H5: (ex2_2 C T (\lambda (d0: C).(\lambda (u0: T).(getl i c0 
-(CHead d0 (Bind Abst) u0)))) (\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 
-(asucc g a2)))))).(ex2_2_ind C T (\lambda (d0: C).(\lambda (u0: T).(getl i c0 
-(CHead d0 (Bind Abst) u0)))) (\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 
-(asucc g a2)))) (leq g a a2) (\lambda (x0: C).(\lambda (x1: T).(\lambda (H6: 
-(getl i c0 (CHead x0 (Bind Abst) x1))).(\lambda (_: (arity g x0 x1 (asucc g 
-a2))).(let H8 \def (eq_ind C (CHead d (Bind Abbr) u) (\lambda (c1: C).(getl i 
-c0 c1)) H0 (CHead x0 (Bind Abst) x1) (getl_mono c0 (CHead d (Bind Abbr) u) i 
-H0 (CHead x0 (Bind Abst) x1) H6)) in (let H9 \def (eq_ind C (CHead d (Bind 
-Abbr) u) (\lambda (ee: C).(match ee in C return (\lambda (_: C).Prop) with 
-[(CSort _) \Rightarrow False | (CHead _ k _) \Rightarrow (match k in K return 
-(\lambda (_: K).Prop) with [(Bind b) \Rightarrow (match b in B return 
-(\lambda (_: B).Prop) with [Abbr \Rightarrow True | Abst \Rightarrow False | 
-Void \Rightarrow False]) | (Flat _) \Rightarrow False])])) I (CHead x0 (Bind 
-Abst) x1) (getl_mono c0 (CHead d (Bind Abbr) u) i H0 (CHead x0 (Bind Abst) 
-x1) H6)) in (False_ind (leq g a a2) H9))))))) H5)) H4)))))))))))) (\lambda 
+(arity g c t a1)).(let TMP_1 \def (\lambda (c0: C).(\lambda (t0: T).(\lambda 
+(a: A).(\forall (a2: A).((arity g c0 t0 a2) \to (leq g a a2)))))) in (let 
+TMP_4 \def (\lambda (c0: C).(\lambda (n: nat).(\lambda (a2: A).(\lambda (H0: 
+(arity g c0 (TSort n) a2)).(let TMP_2 \def (ASort O n) in (let TMP_3 \def 
+(arity_gen_sort g c0 n a2 H0) in (leq_sym g a2 TMP_2 TMP_3))))))) in (let 
+TMP_92 \def (\lambda (c0: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: 
+nat).(\lambda (H0: (getl i c0 (CHead d (Bind Abbr) u))).(\lambda (a: 
+A).(\lambda (_: (arity g d u a)).(\lambda (H2: ((\forall (a2: A).((arity g d 
+u a2) \to (leq g a a2))))).(\lambda (a2: A).(\lambda (H3: (arity g c0 (TLRef 
+i) a2)).(let H4 \def (arity_gen_lref g c0 i a2 H3) in (let TMP_7 \def 
+(\lambda (d0: C).(\lambda (u0: T).(let TMP_5 \def (Bind Abbr) in (let TMP_6 
+\def (CHead d0 TMP_5 u0) in (getl i c0 TMP_6))))) in (let TMP_8 \def (\lambda 
+(d0: C).(\lambda (u0: T).(arity g d0 u0 a2))) in (let TMP_9 \def (ex2_2 C T 
+TMP_7 TMP_8) in (let TMP_12 \def (\lambda (d0: C).(\lambda (u0: T).(let 
+TMP_10 \def (Bind Abst) in (let TMP_11 \def (CHead d0 TMP_10 u0) in (getl i 
+c0 TMP_11))))) in (let TMP_14 \def (\lambda (d0: C).(\lambda (u0: T).(let 
+TMP_13 \def (asucc g a2) in (arity g d0 u0 TMP_13)))) in (let TMP_15 \def 
+(ex2_2 C T TMP_12 TMP_14) in (let TMP_16 \def (leq g a a2) in (let TMP_62 
+\def (\lambda (H5: (ex2_2 C T (\lambda (d0: C).(\lambda (u0: T).(getl i c0 
+(CHead d0 (Bind Abbr) u0)))) (\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 
+a2))))).(let TMP_19 \def (\lambda (d0: C).(\lambda (u0: T).(let TMP_17 \def 
+(Bind Abbr) in (let TMP_18 \def (CHead d0 TMP_17 u0) in (getl i c0 
+TMP_18))))) in (let TMP_20 \def (\lambda (d0: C).(\lambda (u0: T).(arity g d0 
+u0 a2))) in (let TMP_21 \def (leq g a a2) in (let TMP_61 \def (\lambda (x0: 
+C).(\lambda (x1: T).(\lambda (H6: (getl i c0 (CHead x0 (Bind Abbr) 
+x1))).(\lambda (H7: (arity g x0 x1 a2)).(let TMP_22 \def (Bind Abbr) in (let 
+TMP_23 \def (CHead d TMP_22 u) in (let TMP_24 \def (\lambda (c1: C).(getl i 
+c0 c1)) in (let TMP_25 \def (Bind Abbr) in (let TMP_26 \def (CHead x0 TMP_25 
+x1) in (let TMP_27 \def (Bind Abbr) in (let TMP_28 \def (CHead d TMP_27 u) in 
+(let TMP_29 \def (Bind Abbr) in (let TMP_30 \def (CHead x0 TMP_29 x1) in (let 
+TMP_31 \def (getl_mono c0 TMP_28 i H0 TMP_30 H6) in (let H8 \def (eq_ind C 
+TMP_23 TMP_24 H0 TMP_26 TMP_31) in (let TMP_32 \def (\lambda (e: C).(match e 
+with [(CSort _) \Rightarrow d | (CHead c1 _ _) \Rightarrow c1])) in (let 
+TMP_33 \def (Bind Abbr) in (let TMP_34 \def (CHead d TMP_33 u) in (let TMP_35 
+\def (Bind Abbr) in (let TMP_36 \def (CHead x0 TMP_35 x1) in (let TMP_37 \def 
+(Bind Abbr) in (let TMP_38 \def (CHead d TMP_37 u) in (let TMP_39 \def (Bind 
+Abbr) in (let TMP_40 \def (CHead x0 TMP_39 x1) in (let TMP_41 \def (getl_mono 
+c0 TMP_38 i H0 TMP_40 H6) in (let H9 \def (f_equal C C TMP_32 TMP_34 TMP_36 
+TMP_41) in (let TMP_42 \def (\lambda (e: C).(match e with [(CSort _) 
+\Rightarrow u | (CHead _ _ t0) \Rightarrow t0])) in (let TMP_43 \def (Bind 
+Abbr) in (let TMP_44 \def (CHead d TMP_43 u) in (let TMP_45 \def (Bind Abbr) 
+in (let TMP_46 \def (CHead x0 TMP_45 x1) in (let TMP_47 \def (Bind Abbr) in 
+(let TMP_48 \def (CHead d TMP_47 u) in (let TMP_49 \def (Bind Abbr) in (let 
+TMP_50 \def (CHead x0 TMP_49 x1) in (let TMP_51 \def (getl_mono c0 TMP_48 i 
+H0 TMP_50 H6) in (let H10 \def (f_equal C T TMP_42 TMP_44 TMP_46 TMP_51) in 
+(let TMP_60 \def (\lambda (H11: (eq C d x0)).(let TMP_54 \def (\lambda (t0: 
+T).(let TMP_52 \def (Bind Abbr) in (let TMP_53 \def (CHead x0 TMP_52 t0) in 
+(getl i c0 TMP_53)))) in (let H12 \def (eq_ind_r T x1 TMP_54 H8 u H10) in 
+(let TMP_55 \def (\lambda (t0: T).(arity g x0 t0 a2)) in (let H13 \def 
+(eq_ind_r T x1 TMP_55 H7 u H10) in (let TMP_58 \def (\lambda (c1: C).(let 
+TMP_56 \def (Bind Abbr) in (let TMP_57 \def (CHead c1 TMP_56 u) in (getl i c0 
+TMP_57)))) in (let H14 \def (eq_ind_r C x0 TMP_58 H12 d H11) in (let TMP_59 
+\def (\lambda (c1: C).(arity g c1 u a2)) in (let H15 \def (eq_ind_r C x0 
+TMP_59 H13 d H11) in (H2 a2 H15)))))))))) in (TMP_60 
+H9))))))))))))))))))))))))))))))))))))))) in (ex2_2_ind C T TMP_19 TMP_20 
+TMP_21 TMP_61 H5)))))) in (let TMP_91 \def (\lambda (H5: (ex2_2 C T (\lambda 
+(d0: C).(\lambda (u0: T).(getl i c0 (CHead d0 (Bind Abst) u0)))) (\lambda 
+(d0: C).(\lambda (u0: T).(arity g d0 u0 (asucc g a2)))))).(let TMP_65 \def 
+(\lambda (d0: C).(\lambda (u0: T).(let TMP_63 \def (Bind Abst) in (let TMP_64 
+\def (CHead d0 TMP_63 u0) in (getl i c0 TMP_64))))) in (let TMP_67 \def 
+(\lambda (d0: C).(\lambda (u0: T).(let TMP_66 \def (asucc g a2) in (arity g 
+d0 u0 TMP_66)))) in (let TMP_68 \def (leq g a a2) in (let TMP_90 \def 
+(\lambda (x0: C).(\lambda (x1: T).(\lambda (H6: (getl i c0 (CHead x0 (Bind 
+Abst) x1))).(\lambda (_: (arity g x0 x1 (asucc g a2))).(let TMP_69 \def (Bind 
+Abbr) in (let TMP_70 \def (CHead d TMP_69 u) in (let TMP_71 \def (\lambda 
+(c1: C).(getl i c0 c1)) in (let TMP_72 \def (Bind Abst) in (let TMP_73 \def 
+(CHead x0 TMP_72 x1) in (let TMP_74 \def (Bind Abbr) in (let TMP_75 \def 
+(CHead d TMP_74 u) in (let TMP_76 \def (Bind Abst) in (let TMP_77 \def (CHead 
+x0 TMP_76 x1) in (let TMP_78 \def (getl_mono c0 TMP_75 i H0 TMP_77 H6) in 
+(let H8 \def (eq_ind C TMP_70 TMP_71 H0 TMP_73 TMP_78) in (let TMP_79 \def 
+(Bind Abbr) in (let TMP_80 \def (CHead d TMP_79 u) in (let TMP_81 \def 
+(\lambda (ee: C).(match ee with [(CSort _) \Rightarrow False | (CHead _ k _) 
+\Rightarrow (match k with [(Bind b) \Rightarrow (match b with [Abbr 
+\Rightarrow True | Abst \Rightarrow False | Void \Rightarrow False]) | (Flat 
+_) \Rightarrow False])])) in (let TMP_82 \def (Bind Abst) in (let TMP_83 \def 
+(CHead x0 TMP_82 x1) in (let TMP_84 \def (Bind Abbr) in (let TMP_85 \def 
+(CHead d TMP_84 u) in (let TMP_86 \def (Bind Abst) in (let TMP_87 \def (CHead 
+x0 TMP_86 x1) in (let TMP_88 \def (getl_mono c0 TMP_85 i H0 TMP_87 H6) in 
+(let H9 \def (eq_ind C TMP_80 TMP_81 I TMP_83 TMP_88) in (let TMP_89 \def 
+(leq g a a2) in (False_ind TMP_89 H9)))))))))))))))))))))))))))) in 
+(ex2_2_ind C T TMP_65 TMP_67 TMP_68 TMP_90 H5)))))) in (or_ind TMP_9 TMP_15 
+TMP_16 TMP_62 TMP_91 H4))))))))))))))))))))) in (let TMP_184 \def (\lambda 
 (c0: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: nat).(\lambda (H0: (getl 
 i c0 (CHead d (Bind Abst) u))).(\lambda (a: A).(\lambda (_: (arity g d u 
 (asucc g a))).(\lambda (H2: ((\forall (a2: A).((arity g d u a2) \to (leq g 
 (asucc g a) a2))))).(\lambda (a2: A).(\lambda (H3: (arity g c0 (TLRef i) 
-a2)).(let H4 \def (arity_gen_lref g c0 i a2 H3) in (or_ind (ex2_2 C T 
-(\lambda (d0: C).(\lambda (u0: T).(getl i c0 (CHead d0 (Bind Abbr) u0)))) 
-(\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 a2)))) (ex2_2 C T (\lambda 
-(d0: C).(\lambda (u0: T).(getl i c0 (CHead d0 (Bind Abst) u0)))) (\lambda 
-(d0: C).(\lambda (u0: T).(arity g d0 u0 (asucc g a2))))) (leq g a a2) 
-(\lambda (H5: (ex2_2 C T (\lambda (d0: C).(\lambda (u0: T).(getl i c0 (CHead 
-d0 (Bind Abbr) u0)))) (\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 
-a2))))).(ex2_2_ind C T (\lambda (d0: C).(\lambda (u0: T).(getl i c0 (CHead d0 
-(Bind Abbr) u0)))) (\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 a2))) 
-(leq g a a2) (\lambda (x0: C).(\lambda (x1: T).(\lambda (H6: (getl i c0 
-(CHead x0 (Bind Abbr) x1))).(\lambda (_: (arity g x0 x1 a2)).(let H8 \def 
-(eq_ind C (CHead d (Bind Abst) u) (\lambda (c1: C).(getl i c0 c1)) H0 (CHead 
-x0 (Bind Abbr) x1) (getl_mono c0 (CHead d (Bind Abst) u) i H0 (CHead x0 (Bind 
-Abbr) x1) H6)) in (let H9 \def (eq_ind C (CHead d (Bind Abst) u) (\lambda 
-(ee: C).(match ee in C return (\lambda (_: C).Prop) with [(CSort _) 
-\Rightarrow False | (CHead _ k _) \Rightarrow (match k in K return (\lambda 
-(_: K).Prop) with [(Bind b) \Rightarrow (match b in B return (\lambda (_: 
-B).Prop) with [Abbr \Rightarrow False | Abst \Rightarrow True | Void 
-\Rightarrow False]) | (Flat _) \Rightarrow False])])) I (CHead x0 (Bind Abbr) 
-x1) (getl_mono c0 (CHead d (Bind Abst) u) i H0 (CHead x0 (Bind Abbr) x1) H6)) 
-in (False_ind (leq g a a2) H9))))))) H5)) (\lambda (H5: (ex2_2 C T (\lambda 
-(d0: C).(\lambda (u0: T).(getl i c0 (CHead d0 (Bind Abst) u0)))) (\lambda 
-(d0: C).(\lambda (u0: T).(arity g d0 u0 (asucc g a2)))))).(ex2_2_ind C T 
-(\lambda (d0: C).(\lambda (u0: T).(getl i c0 (CHead d0 (Bind Abst) u0)))) 
-(\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 (asucc g a2)))) (leq g a a2) 
-(\lambda (x0: C).(\lambda (x1: T).(\lambda (H6: (getl i c0 (CHead x0 (Bind 
-Abst) x1))).(\lambda (H7: (arity g x0 x1 (asucc g a2))).(let H8 \def (eq_ind 
-C (CHead d (Bind Abst) u) (\lambda (c1: C).(getl i c0 c1)) H0 (CHead x0 (Bind 
-Abst) x1) (getl_mono c0 (CHead d (Bind Abst) u) i H0 (CHead x0 (Bind Abst) 
-x1) H6)) in (let H9 \def (f_equal C C (\lambda (e: C).(match e in C return 
-(\lambda (_: C).C) with [(CSort _) \Rightarrow d | (CHead c1 _ _) \Rightarrow 
-c1])) (CHead d (Bind Abst) u) (CHead x0 (Bind Abst) x1) (getl_mono c0 (CHead 
-d (Bind Abst) u) i H0 (CHead x0 (Bind Abst) x1) H6)) in ((let H10 \def 
-(f_equal C T (\lambda (e: C).(match e in C return (\lambda (_: C).T) with 
-[(CSort _) \Rightarrow u | (CHead _ _ t0) \Rightarrow t0])) (CHead d (Bind 
-Abst) u) (CHead x0 (Bind Abst) x1) (getl_mono c0 (CHead d (Bind Abst) u) i H0 
-(CHead x0 (Bind Abst) x1) H6)) in (\lambda (H11: (eq C d x0)).(let H12 \def 
-(eq_ind_r T x1 (\lambda (t0: T).(getl i c0 (CHead x0 (Bind Abst) t0))) H8 u 
-H10) in (let H13 \def (eq_ind_r T x1 (\lambda (t0: T).(arity g x0 t0 (asucc g 
-a2))) H7 u H10) in (let H14 \def (eq_ind_r C x0 (\lambda (c1: C).(getl i c0 
-(CHead c1 (Bind Abst) u))) H12 d H11) in (let H15 \def (eq_ind_r C x0 
-(\lambda (c1: C).(arity g c1 u (asucc g a2))) H13 d H11) in (asucc_inj g a a2 
-(H2 (asucc g a2) H15)))))))) H9))))))) H5)) H4)))))))))))) (\lambda (b: 
-B).(\lambda (H0: (not (eq B b Abst))).(\lambda (c0: C).(\lambda (u: 
-T).(\lambda (a2: A).(\lambda (_: (arity g c0 u a2)).(\lambda (_: ((\forall 
-(a3: A).((arity g c0 u a3) \to (leq g a2 a3))))).(\lambda (t0: T).(\lambda 
-(a3: A).(\lambda (_: (arity g (CHead c0 (Bind b) u) t0 a3)).(\lambda (H4: 
-((\forall (a4: A).((arity g (CHead c0 (Bind b) u) t0 a4) \to (leq g a3 
-a4))))).(\lambda (a0: A).(\lambda (H5: (arity g c0 (THead (Bind b) u t0) 
-a0)).(let H6 \def (arity_gen_bind b H0 g c0 u t0 a0 H5) in (ex2_ind A 
-(\lambda (a4: A).(arity g c0 u a4)) (\lambda (_: A).(arity g (CHead c0 (Bind 
-b) u) t0 a0)) (leq g a3 a0) (\lambda (x: A).(\lambda (_: (arity g c0 u 
-x)).(\lambda (H8: (arity g (CHead c0 (Bind b) u) t0 a0)).(H4 a0 H8)))) 
-H6))))))))))))))) (\lambda (c0: C).(\lambda (u: T).(\lambda (a2: A).(\lambda 
-(_: (arity g c0 u (asucc g a2))).(\lambda (H1: ((\forall (a3: A).((arity g c0 
-u a3) \to (leq g (asucc g a2) a3))))).(\lambda (t0: T).(\lambda (a3: 
-A).(\lambda (_: (arity g (CHead c0 (Bind Abst) u) t0 a3)).(\lambda (H3: 
-((\forall (a4: A).((arity g (CHead c0 (Bind Abst) u) t0 a4) \to (leq g a3 
-a4))))).(\lambda (a0: A).(\lambda (H4: (arity g c0 (THead (Bind Abst) u t0) 
-a0)).(let H5 \def (arity_gen_abst g c0 u t0 a0 H4) in (ex3_2_ind A A (\lambda 
-(a4: A).(\lambda (a5: A).(eq A a0 (AHead a4 a5)))) (\lambda (a4: A).(\lambda 
-(_: A).(arity g c0 u (asucc g a4)))) (\lambda (_: A).(\lambda (a5: A).(arity 
-g (CHead c0 (Bind Abst) u) t0 a5))) (leq g (AHead a2 a3) a0) (\lambda (x0: 
-A).(\lambda (x1: A).(\lambda (H6: (eq A a0 (AHead x0 x1))).(\lambda (H7: 
+a2)).(let H4 \def (arity_gen_lref g c0 i a2 H3) in (let TMP_95 \def (\lambda 
+(d0: C).(\lambda (u0: T).(let TMP_93 \def (Bind Abbr) in (let TMP_94 \def 
+(CHead d0 TMP_93 u0) in (getl i c0 TMP_94))))) in (let TMP_96 \def (\lambda 
+(d0: C).(\lambda (u0: T).(arity g d0 u0 a2))) in (let TMP_97 \def (ex2_2 C T 
+TMP_95 TMP_96) in (let TMP_100 \def (\lambda (d0: C).(\lambda (u0: T).(let 
+TMP_98 \def (Bind Abst) in (let TMP_99 \def (CHead d0 TMP_98 u0) in (getl i 
+c0 TMP_99))))) in (let TMP_102 \def (\lambda (d0: C).(\lambda (u0: T).(let 
+TMP_101 \def (asucc g a2) in (arity g d0 u0 TMP_101)))) in (let TMP_103 \def 
+(ex2_2 C T TMP_100 TMP_102) in (let TMP_104 \def (leq g a a2) in (let TMP_132 
+\def (\lambda (H5: (ex2_2 C T (\lambda (d0: C).(\lambda (u0: T).(getl i c0 
+(CHead d0 (Bind Abbr) u0)))) (\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 
+a2))))).(let TMP_107 \def (\lambda (d0: C).(\lambda (u0: T).(let TMP_105 \def 
+(Bind Abbr) in (let TMP_106 \def (CHead d0 TMP_105 u0) in (getl i c0 
+TMP_106))))) in (let TMP_108 \def (\lambda (d0: C).(\lambda (u0: T).(arity g 
+d0 u0 a2))) in (let TMP_109 \def (leq g a a2) in (let TMP_131 \def (\lambda 
+(x0: C).(\lambda (x1: T).(\lambda (H6: (getl i c0 (CHead x0 (Bind Abbr) 
+x1))).(\lambda (_: (arity g x0 x1 a2)).(let TMP_110 \def (Bind Abst) in (let 
+TMP_111 \def (CHead d TMP_110 u) in (let TMP_112 \def (\lambda (c1: C).(getl 
+i c0 c1)) in (let TMP_113 \def (Bind Abbr) in (let TMP_114 \def (CHead x0 
+TMP_113 x1) in (let TMP_115 \def (Bind Abst) in (let TMP_116 \def (CHead d 
+TMP_115 u) in (let TMP_117 \def (Bind Abbr) in (let TMP_118 \def (CHead x0 
+TMP_117 x1) in (let TMP_119 \def (getl_mono c0 TMP_116 i H0 TMP_118 H6) in 
+(let H8 \def (eq_ind C TMP_111 TMP_112 H0 TMP_114 TMP_119) in (let TMP_120 
+\def (Bind Abst) in (let TMP_121 \def (CHead d TMP_120 u) in (let TMP_122 
+\def (\lambda (ee: C).(match ee with [(CSort _) \Rightarrow False | (CHead _ 
+k _) \Rightarrow (match k with [(Bind b) \Rightarrow (match b with [Abbr 
+\Rightarrow False | Abst \Rightarrow True | Void \Rightarrow False]) | (Flat 
+_) \Rightarrow False])])) in (let TMP_123 \def (Bind Abbr) in (let TMP_124 
+\def (CHead x0 TMP_123 x1) in (let TMP_125 \def (Bind Abst) in (let TMP_126 
+\def (CHead d TMP_125 u) in (let TMP_127 \def (Bind Abbr) in (let TMP_128 
+\def (CHead x0 TMP_127 x1) in (let TMP_129 \def (getl_mono c0 TMP_126 i H0 
+TMP_128 H6) in (let H9 \def (eq_ind C TMP_121 TMP_122 I TMP_124 TMP_129) in 
+(let TMP_130 \def (leq g a a2) in (False_ind TMP_130 
+H9)))))))))))))))))))))))))))) in (ex2_2_ind C T TMP_107 TMP_108 TMP_109 
+TMP_131 H5)))))) in (let TMP_183 \def (\lambda (H5: (ex2_2 C T (\lambda (d0: 
+C).(\lambda (u0: T).(getl i c0 (CHead d0 (Bind Abst) u0)))) (\lambda (d0: 
+C).(\lambda (u0: T).(arity g d0 u0 (asucc g a2)))))).(let TMP_135 \def 
+(\lambda (d0: C).(\lambda (u0: T).(let TMP_133 \def (Bind Abst) in (let 
+TMP_134 \def (CHead d0 TMP_133 u0) in (getl i c0 TMP_134))))) in (let TMP_137 
+\def (\lambda (d0: C).(\lambda (u0: T).(let TMP_136 \def (asucc g a2) in 
+(arity g d0 u0 TMP_136)))) in (let TMP_138 \def (leq g a a2) in (let TMP_182 
+\def (\lambda (x0: C).(\lambda (x1: T).(\lambda (H6: (getl i c0 (CHead x0 
+(Bind Abst) x1))).(\lambda (H7: (arity g x0 x1 (asucc g a2))).(let TMP_139 
+\def (Bind Abst) in (let TMP_140 \def (CHead d TMP_139 u) in (let TMP_141 
+\def (\lambda (c1: C).(getl i c0 c1)) in (let TMP_142 \def (Bind Abst) in 
+(let TMP_143 \def (CHead x0 TMP_142 x1) in (let TMP_144 \def (Bind Abst) in 
+(let TMP_145 \def (CHead d TMP_144 u) in (let TMP_146 \def (Bind Abst) in 
+(let TMP_147 \def (CHead x0 TMP_146 x1) in (let TMP_148 \def (getl_mono c0 
+TMP_145 i H0 TMP_147 H6) in (let H8 \def (eq_ind C TMP_140 TMP_141 H0 TMP_143 
+TMP_148) in (let TMP_149 \def (\lambda (e: C).(match e with [(CSort _) 
+\Rightarrow d | (CHead c1 _ _) \Rightarrow c1])) in (let TMP_150 \def (Bind 
+Abst) in (let TMP_151 \def (CHead d TMP_150 u) in (let TMP_152 \def (Bind 
+Abst) in (let TMP_153 \def (CHead x0 TMP_152 x1) in (let TMP_154 \def (Bind 
+Abst) in (let TMP_155 \def (CHead d TMP_154 u) in (let TMP_156 \def (Bind 
+Abst) in (let TMP_157 \def (CHead x0 TMP_156 x1) in (let TMP_158 \def 
+(getl_mono c0 TMP_155 i H0 TMP_157 H6) in (let H9 \def (f_equal C C TMP_149 
+TMP_151 TMP_153 TMP_158) in (let TMP_159 \def (\lambda (e: C).(match e with 
+[(CSort _) \Rightarrow u | (CHead _ _ t0) \Rightarrow t0])) in (let TMP_160 
+\def (Bind Abst) in (let TMP_161 \def (CHead d TMP_160 u) in (let TMP_162 
+\def (Bind Abst) in (let TMP_163 \def (CHead x0 TMP_162 x1) in (let TMP_164 
+\def (Bind Abst) in (let TMP_165 \def (CHead d TMP_164 u) in (let TMP_166 
+\def (Bind Abst) in (let TMP_167 \def (CHead x0 TMP_166 x1) in (let TMP_168 
+\def (getl_mono c0 TMP_165 i H0 TMP_167 H6) in (let H10 \def (f_equal C T 
+TMP_159 TMP_161 TMP_163 TMP_168) in (let TMP_181 \def (\lambda (H11: (eq C d 
+x0)).(let TMP_171 \def (\lambda (t0: T).(let TMP_169 \def (Bind Abst) in (let 
+TMP_170 \def (CHead x0 TMP_169 t0) in (getl i c0 TMP_170)))) in (let H12 \def 
+(eq_ind_r T x1 TMP_171 H8 u H10) in (let TMP_173 \def (\lambda (t0: T).(let 
+TMP_172 \def (asucc g a2) in (arity g x0 t0 TMP_172))) in (let H13 \def 
+(eq_ind_r T x1 TMP_173 H7 u H10) in (let TMP_176 \def (\lambda (c1: C).(let 
+TMP_174 \def (Bind Abst) in (let TMP_175 \def (CHead c1 TMP_174 u) in (getl i 
+c0 TMP_175)))) in (let H14 \def (eq_ind_r C x0 TMP_176 H12 d H11) in (let 
+TMP_178 \def (\lambda (c1: C).(let TMP_177 \def (asucc g a2) in (arity g c1 u 
+TMP_177))) in (let H15 \def (eq_ind_r C x0 TMP_178 H13 d H11) in (let TMP_179 
+\def (asucc g a2) in (let TMP_180 \def (H2 TMP_179 H15) in (asucc_inj g a a2 
+TMP_180)))))))))))) in (TMP_181 H9))))))))))))))))))))))))))))))))))))))) in 
+(ex2_2_ind C T TMP_135 TMP_137 TMP_138 TMP_182 H5)))))) in (or_ind TMP_97 
+TMP_103 TMP_104 TMP_132 TMP_183 H4))))))))))))))))))))) in (let TMP_191 \def 
+(\lambda (b: B).(\lambda (H0: (not (eq B b Abst))).(\lambda (c0: C).(\lambda 
+(u: T).(\lambda (a2: A).(\lambda (_: (arity g c0 u a2)).(\lambda (_: 
+((\forall (a3: A).((arity g c0 u a3) \to (leq g a2 a3))))).(\lambda (t0: 
+T).(\lambda (a3: A).(\lambda (_: (arity g (CHead c0 (Bind b) u) t0 
+a3)).(\lambda (H4: ((\forall (a4: A).((arity g (CHead c0 (Bind b) u) t0 a4) 
+\to (leq g a3 a4))))).(\lambda (a0: A).(\lambda (H5: (arity g c0 (THead (Bind 
+b) u t0) a0)).(let H6 \def (arity_gen_bind b H0 g c0 u t0 a0 H5) in (let 
+TMP_185 \def (\lambda (a4: A).(arity g c0 u a4)) in (let TMP_188 \def 
+(\lambda (_: A).(let TMP_186 \def (Bind b) in (let TMP_187 \def (CHead c0 
+TMP_186 u) in (arity g TMP_187 t0 a0)))) in (let TMP_189 \def (leq g a3 a0) 
+in (let TMP_190 \def (\lambda (x: A).(\lambda (_: (arity g c0 u x)).(\lambda 
+(H8: (arity g (CHead c0 (Bind b) u) t0 a0)).(H4 a0 H8)))) in (ex2_ind A 
+TMP_185 TMP_188 TMP_189 TMP_190 H6))))))))))))))))))) in (let TMP_210 \def 
+(\lambda (c0: C).(\lambda (u: T).(\lambda (a2: A).(\lambda (_: (arity g c0 u 
+(asucc g a2))).(\lambda (H1: ((\forall (a3: A).((arity g c0 u a3) \to (leq g 
+(asucc g a2) a3))))).(\lambda (t0: T).(\lambda (a3: A).(\lambda (_: (arity g 
+(CHead c0 (Bind Abst) u) t0 a3)).(\lambda (H3: ((\forall (a4: A).((arity g 
+(CHead c0 (Bind Abst) u) t0 a4) \to (leq g a3 a4))))).(\lambda (a0: 
+A).(\lambda (H4: (arity g c0 (THead (Bind Abst) u t0) a0)).(let H5 \def 
+(arity_gen_abst g c0 u t0 a0 H4) in (let TMP_193 \def (\lambda (a4: 
+A).(\lambda (a5: A).(let TMP_192 \def (AHead a4 a5) in (eq A a0 TMP_192)))) 
+in (let TMP_195 \def (\lambda (a4: A).(\lambda (_: A).(let TMP_194 \def 
+(asucc g a4) in (arity g c0 u TMP_194)))) in (let TMP_198 \def (\lambda (_: 
+A).(\lambda (a5: A).(let TMP_196 \def (Bind Abst) in (let TMP_197 \def (CHead 
+c0 TMP_196 u) in (arity g TMP_197 t0 a5))))) in (let TMP_199 \def (AHead a2 
+a3) in (let TMP_200 \def (leq g TMP_199 a0) in (let TMP_209 \def (\lambda 
+(x0: A).(\lambda (x1: A).(\lambda (H6: (eq A a0 (AHead x0 x1))).(\lambda (H7: 
 (arity g c0 u (asucc g x0))).(\lambda (H8: (arity g (CHead c0 (Bind Abst) u) 
-t0 x1)).(eq_ind_r A (AHead x0 x1) (\lambda (a: A).(leq g (AHead a2 a3) a)) 
-(leq_head g a2 x0 (asucc_inj g a2 x0 (H1 (asucc g x0) H7)) a3 x1 (H3 x1 H8)) 
-a0 H6)))))) H5))))))))))))) (\lambda (c0: C).(\lambda (u: T).(\lambda (a2: 
-A).(\lambda (_: (arity g c0 u a2)).(\lambda (_: ((\forall (a3: A).((arity g 
-c0 u a3) \to (leq g a2 a3))))).(\lambda (t0: T).(\lambda (a3: A).(\lambda (_: 
-(arity g c0 t0 (AHead a2 a3))).(\lambda (H3: ((\forall (a4: A).((arity g c0 
-t0 a4) \to (leq g (AHead a2 a3) a4))))).(\lambda (a0: A).(\lambda (H4: (arity 
-g c0 (THead (Flat Appl) u t0) a0)).(let H5 \def (arity_gen_appl g c0 u t0 a0 
-H4) in (ex2_ind A (\lambda (a4: A).(arity g c0 u a4)) (\lambda (a4: A).(arity 
-g c0 t0 (AHead a4 a0))) (leq g a3 a0) (\lambda (x: A).(\lambda (_: (arity g 
-c0 u x)).(\lambda (H7: (arity g c0 t0 (AHead x a0))).(ahead_inj_snd g a2 a3 x 
-a0 (H3 (AHead x a0) H7))))) H5))))))))))))) (\lambda (c0: C).(\lambda (u: 
+t0 x1)).(let TMP_201 \def (AHead x0 x1) in (let TMP_203 \def (\lambda (a: 
+A).(let TMP_202 \def (AHead a2 a3) in (leq g TMP_202 a))) in (let TMP_204 
+\def (asucc g x0) in (let TMP_205 \def (H1 TMP_204 H7) in (let TMP_206 \def 
+(asucc_inj g a2 x0 TMP_205) in (let TMP_207 \def (H3 x1 H8) in (let TMP_208 
+\def (leq_head g a2 x0 TMP_206 a3 x1 TMP_207) in (eq_ind_r A TMP_201 TMP_203 
+TMP_208 a0 H6))))))))))))) in (ex3_2_ind A A TMP_193 TMP_195 TMP_198 TMP_200 
+TMP_209 H5))))))))))))))))))) in (let TMP_218 \def (\lambda (c0: C).(\lambda 
+(u: T).(\lambda (a2: A).(\lambda (_: (arity g c0 u a2)).(\lambda (_: 
+((\forall (a3: A).((arity g c0 u a3) \to (leq g a2 a3))))).(\lambda (t0: 
+T).(\lambda (a3: A).(\lambda (_: (arity g c0 t0 (AHead a2 a3))).(\lambda (H3: 
+((\forall (a4: A).((arity g c0 t0 a4) \to (leq g (AHead a2 a3) 
+a4))))).(\lambda (a0: A).(\lambda (H4: (arity g c0 (THead (Flat Appl) u t0) 
+a0)).(let H5 \def (arity_gen_appl g c0 u t0 a0 H4) in (let TMP_211 \def 
+(\lambda (a4: A).(arity g c0 u a4)) in (let TMP_213 \def (\lambda (a4: 
+A).(let TMP_212 \def (AHead a4 a0) in (arity g c0 t0 TMP_212))) in (let 
+TMP_214 \def (leq g a3 a0) in (let TMP_217 \def (\lambda (x: A).(\lambda (_: 
+(arity g c0 u x)).(\lambda (H7: (arity g c0 t0 (AHead x a0))).(let TMP_215 
+\def (AHead x a0) in (let TMP_216 \def (H3 TMP_215 H7) in (ahead_inj_snd g a2 
+a3 x a0 TMP_216)))))) in (ex2_ind A TMP_211 TMP_213 TMP_214 TMP_217 
+H5))))))))))))))))) in (let TMP_224 \def (\lambda (c0: C).(\lambda (u: 
 T).(\lambda (a: A).(\lambda (_: (arity g c0 u (asucc g a))).(\lambda (_: 
 ((\forall (a2: A).((arity g c0 u a2) \to (leq g (asucc g a) a2))))).(\lambda 
 (t0: T).(\lambda (_: (arity g c0 t0 a)).(\lambda (H3: ((\forall (a2: 
 A).((arity g c0 t0 a2) \to (leq g a a2))))).(\lambda (a2: A).(\lambda (H4: 
 (arity g c0 (THead (Flat Cast) u t0) a2)).(let H5 \def (arity_gen_cast g c0 u 
-t0 a2 H4) in (land_ind (arity g c0 u (asucc g a2)) (arity g c0 t0 a2) (leq g 
-a a2) (\lambda (_: (arity g c0 u (asucc g a2))).(\lambda (H7: (arity g c0 t0 
-a2)).(H3 a2 H7))) H5)))))))))))) (\lambda (c0: C).(\lambda (t0: T).(\lambda 
-(a2: A).(\lambda (_: (arity g c0 t0 a2)).(\lambda (H1: ((\forall (a3: 
-A).((arity g c0 t0 a3) \to (leq g a2 a3))))).(\lambda (a3: A).(\lambda (H2: 
-(leq g a2 a3)).(\lambda (a0: A).(\lambda (H3: (arity g c0 t0 a0)).(leq_trans 
-g a3 a2 (leq_sym g a2 a3 H2) a0 (H1 a0 H3))))))))))) c t a1 H))))).
-(* COMMENTS
-Initial nodes: 2947
-END *)
+t0 a2 H4) in (let TMP_219 \def (asucc g a2) in (let TMP_220 \def (arity g c0 
+u TMP_219) in (let TMP_221 \def (arity g c0 t0 a2) in (let TMP_222 \def (leq 
+g a a2) in (let TMP_223 \def (\lambda (_: (arity g c0 u (asucc g 
+a2))).(\lambda (H7: (arity g c0 t0 a2)).(H3 a2 H7))) in (land_ind TMP_220 
+TMP_221 TMP_222 TMP_223 H5))))))))))))))))) in (let TMP_227 \def (\lambda 
+(c0: C).(\lambda (t0: T).(\lambda (a2: A).(\lambda (_: (arity g c0 t0 
+a2)).(\lambda (H1: ((\forall (a3: A).((arity g c0 t0 a3) \to (leq g a2 
+a3))))).(\lambda (a3: A).(\lambda (H2: (leq g a2 a3)).(\lambda (a0: 
+A).(\lambda (H3: (arity g c0 t0 a0)).(let TMP_225 \def (leq_sym g a2 a3 H2) 
+in (let TMP_226 \def (H1 a0 H3) in (leq_trans g a3 a2 TMP_225 a0 
+TMP_226)))))))))))) in (arity_ind g TMP_1 TMP_4 TMP_92 TMP_184 TMP_191 
+TMP_210 TMP_218 TMP_224 TMP_227 c t a1 H)))))))))))))).
 
 theorem arity_repellent:
  \forall (g: G).(\forall (c: C).(\forall (w: T).(\forall (t: T).(\forall (a1: 
@@ -320,19 +511,23 @@ Prop).P)))))))))
  \lambda (g: G).(\lambda (c: C).(\lambda (w: T).(\lambda (t: T).(\lambda (a1: 
 A).(\lambda (H: (arity g (CHead c (Bind Abst) w) t a1)).(\lambda (a2: 
 A).(\lambda (H0: (arity g c (THead (Bind Abst) w t) a2)).(\lambda (H1: (leq g 
-a1 a2)).(\lambda (P: Prop).(let H_y \def (arity_repl g (CHead c (Bind Abst) 
-w) t a1 H a2 H1) in (let H2 \def (arity_gen_abst g c w t a2 H0) in (ex3_2_ind 
-A A (\lambda (a3: A).(\lambda (a4: A).(eq A a2 (AHead a3 a4)))) (\lambda (a3: 
-A).(\lambda (_: A).(arity g c w (asucc g a3)))) (\lambda (_: A).(\lambda (a4: 
-A).(arity g (CHead c (Bind Abst) w) t a4))) P (\lambda (x0: A).(\lambda (x1: 
+a1 a2)).(\lambda (P: Prop).(let TMP_1 \def (Bind Abst) in (let TMP_2 \def 
+(CHead c TMP_1 w) in (let H_y \def (arity_repl g TMP_2 t a1 H a2 H1) in (let 
+H2 \def (arity_gen_abst g c w t a2 H0) in (let TMP_4 \def (\lambda (a3: 
+A).(\lambda (a4: A).(let TMP_3 \def (AHead a3 a4) in (eq A a2 TMP_3)))) in 
+(let TMP_6 \def (\lambda (a3: A).(\lambda (_: A).(let TMP_5 \def (asucc g a3) 
+in (arity g c w TMP_5)))) in (let TMP_9 \def (\lambda (_: A).(\lambda (a4: 
+A).(let TMP_7 \def (Bind Abst) in (let TMP_8 \def (CHead c TMP_7 w) in (arity 
+g TMP_8 t a4))))) in (let TMP_18 \def (\lambda (x0: A).(\lambda (x1: 
 A).(\lambda (H3: (eq A a2 (AHead x0 x1))).(\lambda (_: (arity g c w (asucc g 
-x0))).(\lambda (H5: (arity g (CHead c (Bind Abst) w) t x1)).(let H6 \def 
-(eq_ind A a2 (\lambda (a: A).(arity g (CHead c (Bind Abst) w) t a)) H_y 
-(AHead x0 x1) H3) in (leq_ahead_false_2 g x1 x0 (arity_mono g (CHead c (Bind 
-Abst) w) t (AHead x0 x1) H6 x1 H5) P))))))) H2)))))))))))).
-(* COMMENTS
-Initial nodes: 283
-END *)
+x0))).(\lambda (H5: (arity g (CHead c (Bind Abst) w) t x1)).(let TMP_12 \def 
+(\lambda (a: A).(let TMP_10 \def (Bind Abst) in (let TMP_11 \def (CHead c 
+TMP_10 w) in (arity g TMP_11 t a)))) in (let TMP_13 \def (AHead x0 x1) in 
+(let H6 \def (eq_ind A a2 TMP_12 H_y TMP_13 H3) in (let TMP_14 \def (Bind 
+Abst) in (let TMP_15 \def (CHead c TMP_14 w) in (let TMP_16 \def (AHead x0 
+x1) in (let TMP_17 \def (arity_mono g TMP_15 t TMP_16 H6 x1 H5) in 
+(leq_ahead_false_2 g x1 x0 TMP_17 P))))))))))))) in (ex3_2_ind A A TMP_4 
+TMP_6 TMP_9 P TMP_18 H2)))))))))))))))))).
 
 theorem arity_appls_cast:
  \forall (g: G).(\forall (c: C).(\forall (u: T).(\forall (t: T).(\forall (vs: 
@@ -341,36 +536,58 @@ TList).(\forall (a: A).((arity g c (THeads (Flat Appl) vs u) (asucc g a)) \to
 vs (THead (Flat Cast) u t)) a))))))))
 \def
  \lambda (g: G).(\lambda (c: C).(\lambda (u: T).(\lambda (t: T).(\lambda (vs: 
-TList).(TList_ind (\lambda (t0: TList).(\forall (a: A).((arity g c (THeads 
-(Flat Appl) t0 u) (asucc g a)) \to ((arity g c (THeads (Flat Appl) t0 t) a) 
-\to (arity g c (THeads (Flat Appl) t0 (THead (Flat Cast) u t)) a))))) 
-(\lambda (a: A).(\lambda (H: (arity g c u (asucc g a))).(\lambda (H0: (arity 
-g c t a)).(arity_cast g c u a H t H0)))) (\lambda (t0: T).(\lambda (t1: 
-TList).(\lambda (H: ((\forall (a: A).((arity g c (THeads (Flat Appl) t1 u) 
-(asucc g a)) \to ((arity g c (THeads (Flat Appl) t1 t) a) \to (arity g c 
-(THeads (Flat Appl) t1 (THead (Flat Cast) u t)) a)))))).(\lambda (a: 
-A).(\lambda (H0: (arity g c (THead (Flat Appl) t0 (THeads (Flat Appl) t1 u)) 
-(asucc g a))).(\lambda (H1: (arity g c (THead (Flat Appl) t0 (THeads (Flat 
-Appl) t1 t)) a)).(let H2 \def (arity_gen_appl g c t0 (THeads (Flat Appl) t1 
-t) a H1) in (ex2_ind A (\lambda (a1: A).(arity g c t0 a1)) (\lambda (a1: 
-A).(arity g c (THeads (Flat Appl) t1 t) (AHead a1 a))) (arity g c (THead 
-(Flat Appl) t0 (THeads (Flat Appl) t1 (THead (Flat Cast) u t))) a) (\lambda 
-(x: A).(\lambda (H3: (arity g c t0 x)).(\lambda (H4: (arity g c (THeads (Flat 
-Appl) t1 t) (AHead x a))).(let H5 \def (arity_gen_appl g c t0 (THeads (Flat 
-Appl) t1 u) (asucc g a) H0) in (ex2_ind A (\lambda (a1: A).(arity g c t0 a1)) 
-(\lambda (a1: A).(arity g c (THeads (Flat Appl) t1 u) (AHead a1 (asucc g 
-a)))) (arity g c (THead (Flat Appl) t0 (THeads (Flat Appl) t1 (THead (Flat 
-Cast) u t))) a) (\lambda (x0: A).(\lambda (H6: (arity g c t0 x0)).(\lambda 
-(H7: (arity g c (THeads (Flat Appl) t1 u) (AHead x0 (asucc g 
-a)))).(arity_appl g c t0 x H3 (THeads (Flat Appl) t1 (THead (Flat Cast) u t)) 
-a (H (AHead x a) (arity_repl g c (THeads (Flat Appl) t1 u) (AHead x (asucc g 
-a)) (arity_repl g c (THeads (Flat Appl) t1 u) (AHead x0 (asucc g a)) H7 
-(AHead x (asucc g a)) (leq_head g x0 x (arity_mono g c t0 x0 H6 x H3) (asucc 
-g a) (asucc g a) (leq_refl g (asucc g a)))) (asucc g (AHead x a)) (leq_refl g 
-(asucc g (AHead x a)))) H4))))) H5))))) H2)))))))) vs))))).
-(* COMMENTS
-Initial nodes: 707
-END *)
+TList).(let TMP_5 \def (\lambda (t0: TList).(\forall (a: A).((arity g c 
+(THeads (Flat Appl) t0 u) (asucc g a)) \to ((arity g c (THeads (Flat Appl) t0 
+t) a) \to (let TMP_1 \def (Flat Appl) in (let TMP_2 \def (Flat Cast) in (let 
+TMP_3 \def (THead TMP_2 u t) in (let TMP_4 \def (THeads TMP_1 t0 TMP_3) in 
+(arity g c TMP_4 a))))))))) in (let TMP_6 \def (\lambda (a: A).(\lambda (H: 
+(arity g c u (asucc g a))).(\lambda (H0: (arity g c t a)).(arity_cast g c u a 
+H t H0)))) in (let TMP_68 \def (\lambda (t0: T).(\lambda (t1: TList).(\lambda 
+(H: ((\forall (a: A).((arity g c (THeads (Flat Appl) t1 u) (asucc g a)) \to 
+((arity g c (THeads (Flat Appl) t1 t) a) \to (arity g c (THeads (Flat Appl) 
+t1 (THead (Flat Cast) u t)) a)))))).(\lambda (a: A).(\lambda (H0: (arity g c 
+(THead (Flat Appl) t0 (THeads (Flat Appl) t1 u)) (asucc g a))).(\lambda (H1: 
+(arity g c (THead (Flat Appl) t0 (THeads (Flat Appl) t1 t)) a)).(let TMP_7 
+\def (Flat Appl) in (let TMP_8 \def (THeads TMP_7 t1 t) in (let H2 \def 
+(arity_gen_appl g c t0 TMP_8 a H1) in (let TMP_9 \def (\lambda (a1: A).(arity 
+g c t0 a1)) in (let TMP_13 \def (\lambda (a1: A).(let TMP_10 \def (Flat Appl) 
+in (let TMP_11 \def (THeads TMP_10 t1 t) in (let TMP_12 \def (AHead a1 a) in 
+(arity g c TMP_11 TMP_12))))) in (let TMP_14 \def (Flat Appl) in (let TMP_15 
+\def (Flat Appl) in (let TMP_16 \def (Flat Cast) in (let TMP_17 \def (THead 
+TMP_16 u t) in (let TMP_18 \def (THeads TMP_15 t1 TMP_17) in (let TMP_19 \def 
+(THead TMP_14 t0 TMP_18) in (let TMP_20 \def (arity g c TMP_19 a) in (let 
+TMP_67 \def (\lambda (x: A).(\lambda (H3: (arity g c t0 x)).(\lambda (H4: 
+(arity g c (THeads (Flat Appl) t1 t) (AHead x a))).(let TMP_21 \def (Flat 
+Appl) in (let TMP_22 \def (THeads TMP_21 t1 u) in (let TMP_23 \def (asucc g 
+a) in (let H5 \def (arity_gen_appl g c t0 TMP_22 TMP_23 H0) in (let TMP_24 
+\def (\lambda (a1: A).(arity g c t0 a1)) in (let TMP_29 \def (\lambda (a1: 
+A).(let TMP_25 \def (Flat Appl) in (let TMP_26 \def (THeads TMP_25 t1 u) in 
+(let TMP_27 \def (asucc g a) in (let TMP_28 \def (AHead a1 TMP_27) in (arity 
+g c TMP_26 TMP_28)))))) in (let TMP_30 \def (Flat Appl) in (let TMP_31 \def 
+(Flat Appl) in (let TMP_32 \def (Flat Cast) in (let TMP_33 \def (THead TMP_32 
+u t) in (let TMP_34 \def (THeads TMP_31 t1 TMP_33) in (let TMP_35 \def (THead 
+TMP_30 t0 TMP_34) in (let TMP_36 \def (arity g c TMP_35 a) in (let TMP_66 
+\def (\lambda (x0: A).(\lambda (H6: (arity g c t0 x0)).(\lambda (H7: (arity g 
+c (THeads (Flat Appl) t1 u) (AHead x0 (asucc g a)))).(let TMP_37 \def (Flat 
+Appl) in (let TMP_38 \def (Flat Cast) in (let TMP_39 \def (THead TMP_38 u t) 
+in (let TMP_40 \def (THeads TMP_37 t1 TMP_39) in (let TMP_41 \def (AHead x a) 
+in (let TMP_42 \def (Flat Appl) in (let TMP_43 \def (THeads TMP_42 t1 u) in 
+(let TMP_44 \def (asucc g a) in (let TMP_45 \def (AHead x TMP_44) in (let 
+TMP_46 \def (Flat Appl) in (let TMP_47 \def (THeads TMP_46 t1 u) in (let 
+TMP_48 \def (asucc g a) in (let TMP_49 \def (AHead x0 TMP_48) in (let TMP_50 
+\def (asucc g a) in (let TMP_51 \def (AHead x TMP_50) in (let TMP_52 \def 
+(arity_mono g c t0 x0 H6 x H3) in (let TMP_53 \def (asucc g a) in (let TMP_54 
+\def (asucc g a) in (let TMP_55 \def (asucc g a) in (let TMP_56 \def 
+(leq_refl g TMP_55) in (let TMP_57 \def (leq_head g x0 x TMP_52 TMP_53 TMP_54 
+TMP_56) in (let TMP_58 \def (arity_repl g c TMP_47 TMP_49 H7 TMP_51 TMP_57) 
+in (let TMP_59 \def (AHead x a) in (let TMP_60 \def (asucc g TMP_59) in (let 
+TMP_61 \def (AHead x a) in (let TMP_62 \def (asucc g TMP_61) in (let TMP_63 
+\def (leq_refl g TMP_62) in (let TMP_64 \def (arity_repl g c TMP_43 TMP_45 
+TMP_58 TMP_60 TMP_63) in (let TMP_65 \def (H TMP_41 TMP_64 H4) in (arity_appl 
+g c t0 x H3 TMP_40 a TMP_65))))))))))))))))))))))))))))))))) in (ex2_ind A 
+TMP_24 TMP_29 TMP_36 TMP_66 H5)))))))))))))))))) in (ex2_ind A TMP_9 TMP_13 
+TMP_20 TMP_67 H2)))))))))))))))))))) in (TList_ind TMP_5 TMP_6 TMP_68 
+vs)))))))).
 
 theorem arity_appls_abbr:
  \forall (g: G).(\forall (c: C).(\forall (d: C).(\forall (v: T).(\forall (i: 
@@ -380,24 +597,33 @@ nat).((getl i c (CHead d (Bind Abbr) v)) \to (\forall (vs: TList).(\forall
 \def
  \lambda (g: G).(\lambda (c: C).(\lambda (d: C).(\lambda (v: T).(\lambda (i: 
 nat).(\lambda (H: (getl i c (CHead d (Bind Abbr) v))).(\lambda (vs: 
-TList).(TList_ind (\lambda (t: TList).(\forall (a: A).((arity g c (THeads 
-(Flat Appl) t (lift (S i) O v)) a) \to (arity g c (THeads (Flat Appl) t 
-(TLRef i)) a)))) (\lambda (a: A).(\lambda (H0: (arity g c (lift (S i) O v) 
-a)).(arity_abbr g c d v i H a (arity_gen_lift g c v a (S i) O H0 d (getl_drop 
-Abbr c d v i H))))) (\lambda (t: T).(\lambda (t0: TList).(\lambda (H0: 
-((\forall (a: A).((arity g c (THeads (Flat Appl) t0 (lift (S i) O v)) a) \to 
-(arity g c (THeads (Flat Appl) t0 (TLRef i)) a))))).(\lambda (a: A).(\lambda 
-(H1: (arity g c (THead (Flat Appl) t (THeads (Flat Appl) t0 (lift (S i) O 
-v))) a)).(let H2 \def (arity_gen_appl g c t (THeads (Flat Appl) t0 (lift (S 
-i) O v)) a H1) in (ex2_ind A (\lambda (a1: A).(arity g c t a1)) (\lambda (a1: 
-A).(arity g c (THeads (Flat Appl) t0 (lift (S i) O v)) (AHead a1 a))) (arity 
-g c (THead (Flat Appl) t (THeads (Flat Appl) t0 (TLRef i))) a) (\lambda (x: 
-A).(\lambda (H3: (arity g c t x)).(\lambda (H4: (arity g c (THeads (Flat 
-Appl) t0 (lift (S i) O v)) (AHead x a))).(arity_appl g c t x H3 (THeads (Flat 
-Appl) t0 (TLRef i)) a (H0 (AHead x a) H4))))) H2))))))) vs))))))).
-(* COMMENTS
-Initial nodes: 425
-END *)
+TList).(let TMP_4 \def (\lambda (t: TList).(\forall (a: A).((arity g c 
+(THeads (Flat Appl) t (lift (S i) O v)) a) \to (let TMP_1 \def (Flat Appl) in 
+(let TMP_2 \def (TLRef i) in (let TMP_3 \def (THeads TMP_1 t TMP_2) in (arity 
+g c TMP_3 a))))))) in (let TMP_8 \def (\lambda (a: A).(\lambda (H0: (arity g 
+c (lift (S i) O v) a)).(let TMP_5 \def (S i) in (let TMP_6 \def (getl_drop 
+Abbr c d v i H) in (let TMP_7 \def (arity_gen_lift g c v a TMP_5 O H0 d 
+TMP_6) in (arity_abbr g c d v i H a TMP_7)))))) in (let TMP_32 \def (\lambda 
+(t: T).(\lambda (t0: TList).(\lambda (H0: ((\forall (a: A).((arity g c 
+(THeads (Flat Appl) t0 (lift (S i) O v)) a) \to (arity g c (THeads (Flat 
+Appl) t0 (TLRef i)) a))))).(\lambda (a: A).(\lambda (H1: (arity g c (THead 
+(Flat Appl) t (THeads (Flat Appl) t0 (lift (S i) O v))) a)).(let TMP_9 \def 
+(Flat Appl) in (let TMP_10 \def (S i) in (let TMP_11 \def (lift TMP_10 O v) 
+in (let TMP_12 \def (THeads TMP_9 t0 TMP_11) in (let H2 \def (arity_gen_appl 
+g c t TMP_12 a H1) in (let TMP_13 \def (\lambda (a1: A).(arity g c t a1)) in 
+(let TMP_19 \def (\lambda (a1: A).(let TMP_14 \def (Flat Appl) in (let TMP_15 
+\def (S i) in (let TMP_16 \def (lift TMP_15 O v) in (let TMP_17 \def (THeads 
+TMP_14 t0 TMP_16) in (let TMP_18 \def (AHead a1 a) in (arity g c TMP_17 
+TMP_18))))))) in (let TMP_20 \def (Flat Appl) in (let TMP_21 \def (Flat Appl) 
+in (let TMP_22 \def (TLRef i) in (let TMP_23 \def (THeads TMP_21 t0 TMP_22) 
+in (let TMP_24 \def (THead TMP_20 t TMP_23) in (let TMP_25 \def (arity g c 
+TMP_24 a) in (let TMP_31 \def (\lambda (x: A).(\lambda (H3: (arity g c t 
+x)).(\lambda (H4: (arity g c (THeads (Flat Appl) t0 (lift (S i) O v)) (AHead 
+x a))).(let TMP_26 \def (Flat Appl) in (let TMP_27 \def (TLRef i) in (let 
+TMP_28 \def (THeads TMP_26 t0 TMP_27) in (let TMP_29 \def (AHead x a) in (let 
+TMP_30 \def (H0 TMP_29 H4) in (arity_appl g c t x H3 TMP_28 a TMP_30))))))))) 
+in (ex2_ind A TMP_13 TMP_19 TMP_25 TMP_31 H2)))))))))))))))))))) in 
+(TList_ind TMP_4 TMP_8 TMP_32 vs)))))))))).
 
 theorem arity_appls_bind:
  \forall (g: G).(\forall (b: B).((not (eq B b Abst)) \to (\forall (c: 
@@ -408,27 +634,42 @@ Appl) vs (THead (Bind b) v t)) a2)))))))))))
 \def
  \lambda (g: G).(\lambda (b: B).(\lambda (H: (not (eq B b Abst))).(\lambda 
 (c: C).(\lambda (v: T).(\lambda (a1: A).(\lambda (H0: (arity g c v 
-a1)).(\lambda (t: T).(\lambda (vs: TList).(TList_ind (\lambda (t0: 
+a1)).(\lambda (t: T).(\lambda (vs: TList).(let TMP_5 \def (\lambda (t0: 
 TList).(\forall (a2: A).((arity g (CHead c (Bind b) v) (THeads (Flat Appl) 
-(lifts (S O) O t0) t) a2) \to (arity g c (THeads (Flat Appl) t0 (THead (Bind 
-b) v t)) a2)))) (\lambda (a2: A).(\lambda (H1: (arity g (CHead c (Bind b) v) 
-t a2)).(arity_bind g b H c v a1 H0 t a2 H1))) (\lambda (t0: T).(\lambda (t1: 
+(lifts (S O) O t0) t) a2) \to (let TMP_1 \def (Flat Appl) in (let TMP_2 \def 
+(Bind b) in (let TMP_3 \def (THead TMP_2 v t) in (let TMP_4 \def (THeads 
+TMP_1 t0 TMP_3) in (arity g c TMP_4 a2)))))))) in (let TMP_6 \def (\lambda 
+(a2: A).(\lambda (H1: (arity g (CHead c (Bind b) v) t a2)).(arity_bind g b H 
+c v a1 H0 t a2 H1))) in (let TMP_49 \def (\lambda (t0: T).(\lambda (t1: 
 TList).(\lambda (H1: ((\forall (a2: A).((arity g (CHead c (Bind b) v) (THeads 
 (Flat Appl) (lifts (S O) O t1) t) a2) \to (arity g c (THeads (Flat Appl) t1 
 (THead (Bind b) v t)) a2))))).(\lambda (a2: A).(\lambda (H2: (arity g (CHead 
 c (Bind b) v) (THead (Flat Appl) (lift (S O) O t0) (THeads (Flat Appl) (lifts 
-(S O) O t1) t)) a2)).(let H3 \def (arity_gen_appl g (CHead c (Bind b) v) 
-(lift (S O) O t0) (THeads (Flat Appl) (lifts (S O) O t1) t) a2 H2) in 
-(ex2_ind A (\lambda (a3: A).(arity g (CHead c (Bind b) v) (lift (S O) O t0) 
-a3)) (\lambda (a3: A).(arity g (CHead c (Bind b) v) (THeads (Flat Appl) 
-(lifts (S O) O t1) t) (AHead a3 a2))) (arity g c (THead (Flat Appl) t0 
-(THeads (Flat Appl) t1 (THead (Bind b) v t))) a2) (\lambda (x: A).(\lambda 
-(H4: (arity g (CHead c (Bind b) v) (lift (S O) O t0) x)).(\lambda (H5: (arity 
-g (CHead c (Bind b) v) (THeads (Flat Appl) (lifts (S O) O t1) t) (AHead x 
-a2))).(arity_appl g c t0 x (arity_gen_lift g (CHead c (Bind b) v) t0 x (S O) 
-O H4 c (drop_drop (Bind b) O c c (drop_refl c) v)) (THeads (Flat Appl) t1 
-(THead (Bind b) v t)) a2 (H1 (AHead x a2) H5))))) H3))))))) vs))))))))).
-(* COMMENTS
-Initial nodes: 567
-END *)
+(S O) O t1) t)) a2)).(let TMP_7 \def (Bind b) in (let TMP_8 \def (CHead c 
+TMP_7 v) in (let TMP_9 \def (S O) in (let TMP_10 \def (lift TMP_9 O t0) in 
+(let TMP_11 \def (Flat Appl) in (let TMP_12 \def (S O) in (let TMP_13 \def 
+(lifts TMP_12 O t1) in (let TMP_14 \def (THeads TMP_11 TMP_13 t) in (let H3 
+\def (arity_gen_appl g TMP_8 TMP_10 TMP_14 a2 H2) in (let TMP_19 \def 
+(\lambda (a3: A).(let TMP_15 \def (Bind b) in (let TMP_16 \def (CHead c 
+TMP_15 v) in (let TMP_17 \def (S O) in (let TMP_18 \def (lift TMP_17 O t0) in 
+(arity g TMP_16 TMP_18 a3)))))) in (let TMP_27 \def (\lambda (a3: A).(let 
+TMP_20 \def (Bind b) in (let TMP_21 \def (CHead c TMP_20 v) in (let TMP_22 
+\def (Flat Appl) in (let TMP_23 \def (S O) in (let TMP_24 \def (lifts TMP_23 
+O t1) in (let TMP_25 \def (THeads TMP_22 TMP_24 t) in (let TMP_26 \def (AHead 
+a3 a2) in (arity g TMP_21 TMP_25 TMP_26))))))))) in (let TMP_28 \def (Flat 
+Appl) in (let TMP_29 \def (Flat Appl) in (let TMP_30 \def (Bind b) in (let 
+TMP_31 \def (THead TMP_30 v t) in (let TMP_32 \def (THeads TMP_29 t1 TMP_31) 
+in (let TMP_33 \def (THead TMP_28 t0 TMP_32) in (let TMP_34 \def (arity g c 
+TMP_33 a2) in (let TMP_48 \def (\lambda (x: A).(\lambda (H4: (arity g (CHead 
+c (Bind b) v) (lift (S O) O t0) x)).(\lambda (H5: (arity g (CHead c (Bind b) 
+v) (THeads (Flat Appl) (lifts (S O) O t1) t) (AHead x a2))).(let TMP_35 \def 
+(Bind b) in (let TMP_36 \def (CHead c TMP_35 v) in (let TMP_37 \def (S O) in 
+(let TMP_38 \def (Bind b) in (let TMP_39 \def (drop_refl c) in (let TMP_40 
+\def (drop_drop TMP_38 O c c TMP_39 v) in (let TMP_41 \def (arity_gen_lift g 
+TMP_36 t0 x TMP_37 O H4 c TMP_40) in (let TMP_42 \def (Flat Appl) in (let 
+TMP_43 \def (Bind b) in (let TMP_44 \def (THead TMP_43 v t) in (let TMP_45 
+\def (THeads TMP_42 t1 TMP_44) in (let TMP_46 \def (AHead x a2) in (let 
+TMP_47 \def (H1 TMP_46 H5) in (arity_appl g c t0 x TMP_41 TMP_45 a2 
+TMP_47))))))))))))))))) in (ex2_ind A TMP_19 TMP_27 TMP_34 TMP_48 
+H3))))))))))))))))))))))))) in (TList_ind TMP_5 TMP_6 TMP_49 vs)))))))))))).
 
index 16046993b35087ed50d658020bd306f124174634..48d87a2a44b62133e187fe6d543c21673a015406 100644 (file)
 
 (* This file was automatically generated: do not edit *********************)
 
-include "Basic-1/arity/props.ma".
+include "basic_1/arity/props.ma".
 
-include "Basic-1/fsubst0/fwd.ma".
+include "basic_1/fsubst0/fwd.ma".
 
-include "Basic-1/csubst0/getl.ma".
+include "basic_1/csubst0/getl.ma".
 
-include "Basic-1/subst0/dec.ma".
+include "basic_1/subst0/dec.ma".
 
-include "Basic-1/subst0/fwd.ma".
+include "basic_1/subst0/fwd.ma".
 
-include "Basic-1/getl/getl.ma".
+include "basic_1/getl/getl.ma".
 
 theorem arity_gen_cvoid_subst0:
  \forall (g: G).(\forall (c: C).(\forall (t: T).(\forall (a: A).((arity g c t 
@@ -53,19 +53,18 @@ w))).(let H7 \def (eq_ind_r nat i0 (\lambda (n: nat).(getl n c0 (CHead d0
 (Bind Void) u0))) H3 i H5) in (let H8 \def (eq_ind C (CHead d (Bind Abbr) u) 
 (\lambda (c1: C).(getl i c0 c1)) H0 (CHead d0 (Bind Void) u0) (getl_mono c0 
 (CHead d (Bind Abbr) u) i H0 (CHead d0 (Bind Void) u0) H7)) in (let H9 \def 
-(eq_ind C (CHead d (Bind Abbr) u) (\lambda (ee: C).(match ee in C return 
-(\lambda (_: C).Prop) with [(CSort _) \Rightarrow False | (CHead _ k _) 
-\Rightarrow (match k in K return (\lambda (_: K).Prop) with [(Bind b) 
-\Rightarrow (match b in B return (\lambda (_: B).Prop) with [Abbr \Rightarrow 
-True | Abst \Rightarrow False | Void \Rightarrow False]) | (Flat _) 
-\Rightarrow False])])) I (CHead d0 (Bind Void) u0) (getl_mono c0 (CHead d 
-(Bind Abbr) u) i H0 (CHead d0 (Bind Void) u0) H7)) in (False_ind P H9)))))) 
-(subst0_gen_lref w v i0 i H4)))))))))))))))))) (\lambda (c0: C).(\lambda (d: 
-C).(\lambda (u: T).(\lambda (i: nat).(\lambda (H0: (getl i c0 (CHead d (Bind 
-Abst) u))).(\lambda (a0: A).(\lambda (_: (arity g d u (asucc g a0))).(\lambda 
-(_: ((\forall (d0: C).(\forall (u0: T).(\forall (i0: nat).((getl i0 d (CHead 
-d0 (Bind Void) u0)) \to (\forall (w: T).(\forall (v: T).((subst0 i0 w u v) 
-\to (\forall (P: Prop).P)))))))))).(\lambda (d0: C).(\lambda (u0: T).(\lambda 
+(eq_ind C (CHead d (Bind Abbr) u) (\lambda (ee: C).(match ee with [(CSort _) 
+\Rightarrow False | (CHead _ k _) \Rightarrow (match k with [(Bind b) 
+\Rightarrow (match b with [Abbr \Rightarrow True | Abst \Rightarrow False | 
+Void \Rightarrow False]) | (Flat _) \Rightarrow False])])) I (CHead d0 (Bind 
+Void) u0) (getl_mono c0 (CHead d (Bind Abbr) u) i H0 (CHead d0 (Bind Void) 
+u0) H7)) in (False_ind P H9)))))) (subst0_gen_lref w v i0 i 
+H4)))))))))))))))))) (\lambda (c0: C).(\lambda (d: C).(\lambda (u: 
+T).(\lambda (i: nat).(\lambda (H0: (getl i c0 (CHead d (Bind Abst) 
+u))).(\lambda (a0: A).(\lambda (_: (arity g d u (asucc g a0))).(\lambda (_: 
+((\forall (d0: C).(\forall (u0: T).(\forall (i0: nat).((getl i0 d (CHead d0 
+(Bind Void) u0)) \to (\forall (w: T).(\forall (v: T).((subst0 i0 w u v) \to 
+(\forall (P: Prop).P)))))))))).(\lambda (d0: C).(\lambda (u0: T).(\lambda 
 (i0: nat).(\lambda (H3: (getl i0 c0 (CHead d0 (Bind Void) u0))).(\lambda (w: 
 T).(\lambda (v: T).(\lambda (H4: (subst0 i0 w (TLRef i) v)).(\lambda (P: 
 Prop).(land_ind (eq nat i i0) (eq T v (lift (S i) O w)) P (\lambda (H5: (eq 
@@ -74,38 +73,37 @@ i0 (\lambda (n: nat).(getl n c0 (CHead d0 (Bind Void) u0))) H3 i H5) in (let
 H8 \def (eq_ind C (CHead d (Bind Abst) u) (\lambda (c1: C).(getl i c0 c1)) H0 
 (CHead d0 (Bind Void) u0) (getl_mono c0 (CHead d (Bind Abst) u) i H0 (CHead 
 d0 (Bind Void) u0) H7)) in (let H9 \def (eq_ind C (CHead d (Bind Abst) u) 
-(\lambda (ee: C).(match ee in C return (\lambda (_: C).Prop) with [(CSort _) 
-\Rightarrow False | (CHead _ k _) \Rightarrow (match k in K return (\lambda 
-(_: K).Prop) with [(Bind b) \Rightarrow (match b in B return (\lambda (_: 
-B).Prop) with [Abbr \Rightarrow False | Abst \Rightarrow True | Void 
-\Rightarrow False]) | (Flat _) \Rightarrow False])])) I (CHead d0 (Bind Void) 
-u0) (getl_mono c0 (CHead d (Bind Abst) u) i H0 (CHead d0 (Bind Void) u0) H7)) 
-in (False_ind P H9)))))) (subst0_gen_lref w v i0 i H4)))))))))))))))))) 
-(\lambda (b: B).(\lambda (_: (not (eq B b Abst))).(\lambda (c0: C).(\lambda 
-(u: T).(\lambda (a1: A).(\lambda (_: (arity g c0 u a1)).(\lambda (H2: 
-((\forall (d: C).(\forall (u0: T).(\forall (i: nat).((getl i c0 (CHead d 
-(Bind Void) u0)) \to (\forall (w: T).(\forall (v: T).((subst0 i w u v) \to 
-(\forall (P: Prop).P)))))))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda (_: 
-(arity g (CHead c0 (Bind b) u) t0 a2)).(\lambda (H4: ((\forall (d: 
-C).(\forall (u0: T).(\forall (i: nat).((getl i (CHead c0 (Bind b) u) (CHead d 
-(Bind Void) u0)) \to (\forall (w: T).(\forall (v: T).((subst0 i w t0 v) \to 
-(\forall (P: Prop).P)))))))))).(\lambda (d: C).(\lambda (u0: T).(\lambda (i: 
-nat).(\lambda (H5: (getl i c0 (CHead d (Bind Void) u0))).(\lambda (w: 
-T).(\lambda (v: T).(\lambda (H6: (subst0 i w (THead (Bind b) u t0) 
-v)).(\lambda (P: Prop).(or3_ind (ex2 T (\lambda (u2: T).(eq T v (THead (Bind 
-b) u2 t0))) (\lambda (u2: T).(subst0 i w u u2))) (ex2 T (\lambda (t2: T).(eq 
-T v (THead (Bind b) u t2))) (\lambda (t2: T).(subst0 (s (Bind b) i) w t0 
-t2))) (ex3_2 T T (\lambda (u2: T).(\lambda (t2: T).(eq T v (THead (Bind b) u2 
-t2)))) (\lambda (u2: T).(\lambda (_: T).(subst0 i w u u2))) (\lambda (_: 
-T).(\lambda (t2: T).(subst0 (s (Bind b) i) w t0 t2)))) P (\lambda (H7: (ex2 T 
-(\lambda (u2: T).(eq T v (THead (Bind b) u2 t0))) (\lambda (u2: T).(subst0 i 
-w u u2)))).(ex2_ind T (\lambda (u2: T).(eq T v (THead (Bind b) u2 t0))) 
-(\lambda (u2: T).(subst0 i w u u2)) P (\lambda (x: T).(\lambda (_: (eq T v 
-(THead (Bind b) x t0))).(\lambda (H9: (subst0 i w u x)).(H2 d u0 i H5 w x H9 
-P)))) H7)) (\lambda (H7: (ex2 T (\lambda (t2: T).(eq T v (THead (Bind b) u 
-t2))) (\lambda (t2: T).(subst0 (s (Bind b) i) w t0 t2)))).(ex2_ind T (\lambda 
-(t2: T).(eq T v (THead (Bind b) u t2))) (\lambda (t2: T).(subst0 (s (Bind b) 
-i) w t0 t2)) P (\lambda (x: T).(\lambda (_: (eq T v (THead (Bind b) u 
+(\lambda (ee: C).(match ee with [(CSort _) \Rightarrow False | (CHead _ k _) 
+\Rightarrow (match k with [(Bind b) \Rightarrow (match b with [Abbr 
+\Rightarrow False | Abst \Rightarrow True | Void \Rightarrow False]) | (Flat 
+_) \Rightarrow False])])) I (CHead d0 (Bind Void) u0) (getl_mono c0 (CHead d 
+(Bind Abst) u) i H0 (CHead d0 (Bind Void) u0) H7)) in (False_ind P H9)))))) 
+(subst0_gen_lref w v i0 i H4)))))))))))))))))) (\lambda (b: B).(\lambda (_: 
+(not (eq B b Abst))).(\lambda (c0: C).(\lambda (u: T).(\lambda (a1: 
+A).(\lambda (_: (arity g c0 u a1)).(\lambda (H2: ((\forall (d: C).(\forall 
+(u0: T).(\forall (i: nat).((getl i c0 (CHead d (Bind Void) u0)) \to (\forall 
+(w: T).(\forall (v: T).((subst0 i w u v) \to (\forall (P: 
+Prop).P)))))))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda (_: (arity g 
+(CHead c0 (Bind b) u) t0 a2)).(\lambda (H4: ((\forall (d: C).(\forall (u0: 
+T).(\forall (i: nat).((getl i (CHead c0 (Bind b) u) (CHead d (Bind Void) u0)) 
+\to (\forall (w: T).(\forall (v: T).((subst0 i w t0 v) \to (\forall (P: 
+Prop).P)))))))))).(\lambda (d: C).(\lambda (u0: T).(\lambda (i: nat).(\lambda 
+(H5: (getl i c0 (CHead d (Bind Void) u0))).(\lambda (w: T).(\lambda (v: 
+T).(\lambda (H6: (subst0 i w (THead (Bind b) u t0) v)).(\lambda (P: 
+Prop).(or3_ind (ex2 T (\lambda (u2: T).(eq T v (THead (Bind b) u2 t0))) 
+(\lambda (u2: T).(subst0 i w u u2))) (ex2 T (\lambda (t2: T).(eq T v (THead 
+(Bind b) u t2))) (\lambda (t2: T).(subst0 (s (Bind b) i) w t0 t2))) (ex3_2 T 
+T (\lambda (u2: T).(\lambda (t2: T).(eq T v (THead (Bind b) u2 t2)))) 
+(\lambda (u2: T).(\lambda (_: T).(subst0 i w u u2))) (\lambda (_: T).(\lambda 
+(t2: T).(subst0 (s (Bind b) i) w t0 t2)))) P (\lambda (H7: (ex2 T (\lambda 
+(u2: T).(eq T v (THead (Bind b) u2 t0))) (\lambda (u2: T).(subst0 i w u 
+u2)))).(ex2_ind T (\lambda (u2: T).(eq T v (THead (Bind b) u2 t0))) (\lambda 
+(u2: T).(subst0 i w u u2)) P (\lambda (x: T).(\lambda (_: (eq T v (THead 
+(Bind b) x t0))).(\lambda (H9: (subst0 i w u x)).(H2 d u0 i H5 w x H9 P)))) 
+H7)) (\lambda (H7: (ex2 T (\lambda (t2: T).(eq T v (THead (Bind b) u t2))) 
+(\lambda (t2: T).(subst0 (s (Bind b) i) w t0 t2)))).(ex2_ind T (\lambda (t2: 
+T).(eq T v (THead (Bind b) u t2))) (\lambda (t2: T).(subst0 (s (Bind b) i) w 
+t0 t2)) P (\lambda (x: T).(\lambda (_: (eq T v (THead (Bind b) u 
 x))).(\lambda (H9: (subst0 (s (Bind b) i) w t0 x)).(H4 d u0 (S i) 
 (getl_clear_bind b (CHead c0 (Bind b) u) c0 u (clear_bind b c0 u) (CHead d 
 (Bind Void) u0) i H5) w x H9 P)))) H7)) (\lambda (H7: (ex3_2 T T (\lambda 
@@ -233,9 +231,6 @@ A).(\lambda (_: (leq g a1 a2)).(\lambda (d: C).(\lambda (u: T).(\lambda (i:
 nat).(\lambda (H3: (getl i c0 (CHead d (Bind Void) u))).(\lambda (w: 
 T).(\lambda (v: T).(\lambda (H4: (subst0 i w t0 v)).(\lambda (P: Prop).(H1 d 
 u i H3 w v H4 P)))))))))))))))) c t a H))))).
-(* COMMENTS
-Initial nodes: 4131
-END *)
 
 theorem arity_gen_cvoid:
  \forall (g: G).(\forall (c: C).(\forall (t: T).(\forall (a: A).((arity g c t 
@@ -257,9 +252,6 @@ t (lift (S O) i x)))).(or_ind (subst0 i u t (lift (S O) i x)) (eq T t (lift
 x) (\lambda (t0: T).(ex T (\lambda (v: T).(eq T t0 (lift (S O) i v))))) 
 (ex_intro T (\lambda (v: T).(eq T (lift (S O) i x) (lift (S O) i v))) x 
 (refl_equal T (lift (S O) i x))) t H3))) H2))) H1))))))))))).
-(* COMMENTS
-Initial nodes: 423
-END *)
 
 theorem arity_fsubst0:
  \forall (g: G).(\forall (c1: C).(\forall (t1: T).(\forall (a: A).((arity g 
@@ -311,47 +303,47 @@ u0) (\lambda (t: T).(arity g c t a0)) (let H11 \def (eq_ind_r nat i0 (\lambda
 (n: nat).(getl n c (CHead d1 (Bind Abbr) u0))) H3 i H9) in (let H12 \def 
 (eq_ind C (CHead d (Bind Abbr) u) (\lambda (c0: C).(getl i c c0)) H0 (CHead 
 d1 (Bind Abbr) u0) (getl_mono c (CHead d (Bind Abbr) u) i H0 (CHead d1 (Bind 
-Abbr) u0) H11)) in (let H13 \def (f_equal C C (\lambda (e: C).(match e in C 
-return (\lambda (_: C).C) with [(CSort _) \Rightarrow d | (CHead c0 _ _) 
-\Rightarrow c0])) (CHead d (Bind Abbr) u) (CHead d1 (Bind Abbr) u0) 
-(getl_mono c (CHead d (Bind Abbr) u) i H0 (CHead d1 (Bind Abbr) u0) H11)) in 
-((let H14 \def (f_equal C T (\lambda (e: C).(match e in C return (\lambda (_: 
-C).T) with [(CSort _) \Rightarrow u | (CHead _ _ t) \Rightarrow t])) (CHead 
-(Bind Abbr) u) (CHead d1 (Bind Abbr) u0) (getl_mono c (CHead d (Bind Abbr) u) 
-i H0 (CHead d1 (Bind Abbr) u0) H11)) in (\lambda (H15: (eq C d d1)).(let H16 
-\def (eq_ind_r T u0 (\lambda (t: T).(getl i c (CHead d1 (Bind Abbr) t))) H12 
-u H14) in (eq_ind T u (\lambda (t: T).(arity g c (lift (S i) O t) a0)) (let 
-H17 \def (eq_ind_r C d1 (\lambda (c0: C).(getl i c (CHead c0 (Bind Abbr) u))) 
-H16 d H15) in (arity_lift g d u a0 H1 c (S i) O (getl_drop Abbr c d u i 
-H17))) u0 H14)))) H13)))) t2 H10))) (subst0_gen_lref u0 t2 i0 i H8)) c2 H7))) 
-H6)) (\lambda (H6: (land (eq T (TLRef i) t2) (csubst0 i0 u0 c c2))).(land_ind 
-(eq T (TLRef i) t2) (csubst0 i0 u0 c c2) (arity g c2 t2 a0) (\lambda (H7: (eq 
-T (TLRef i) t2)).(\lambda (H8: (csubst0 i0 u0 c c2)).(eq_ind T (TLRef i) 
-(\lambda (t: T).(arity g c2 t a0)) (lt_le_e i i0 (arity g c2 (TLRef i) a0) 
-(\lambda (H9: (lt i i0)).(let H10 \def (csubst0_getl_lt i0 i H9 c c2 u0 H8 
-(CHead d (Bind Abbr) u) H0) in (or4_ind (getl i c2 (CHead d (Bind Abbr) u)) 
-(ex3_4 B C T T (\lambda (b: B).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: 
-T).(eq C (CHead d (Bind Abbr) u) (CHead e0 (Bind b) u1)))))) (\lambda (b
-B).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: T).(getl i c2 (CHead e0 
-(Bind b) w)))))) (\lambda (_: B).(\lambda (_: C).(\lambda (u1: T).(\lambda 
-(w: T).(subst0 (minus i0 (S i)) u0 u1 w)))))) (ex3_4 B C C T (\lambda (b
-B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(eq C (CHead d (Bind 
-Abbr) u) (CHead e1 (Bind b) u1)))))) (\lambda (b: B).(\lambda (_: C).(\lambda 
-(e2: C).(\lambda (u1: T).(getl i c2 (CHead e2 (Bind b) u1)))))) (\lambda (_
-B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 (minus i0 (S 
-i)) u0 e1 e2)))))) (ex4_5 B C C T T (\lambda (b: B).(\lambda (e1: C).(\lambda 
-(_: C).(\lambda (u1: T).(\lambda (_: T).(eq C (CHead d (Bind Abbr) u) (CHead 
-e1 (Bind b) u1))))))) (\lambda (b: B).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (_: T).(\lambda (w: T).(getl i c2 (CHead e2 (Bind b) w))))))) 
-(\lambda (_: B).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (w: 
-T).(subst0 (minus i0 (S i)) u0 u1 w)))))) (\lambda (_: B).(\lambda (e1: 
-C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 (minus i0 (S i)
-u0 e1 e2))))))) (arity g c2 (TLRef i) a0) (\lambda (H11: (getl i c2 (CHead d 
-(Bind Abbr) u))).(let H12 \def (eq_ind nat (minus i0 i) (\lambda (n: 
-nat).(getl n (CHead d (Bind Abbr) u) (CHead d1 (Bind Abbr) u0))) 
-(getl_conf_le i0 (CHead d1 (Bind Abbr) u0) c H3 (CHead d (Bind Abbr) u) i H0 
-(le_S_n i i0 (le_S (S i) i0 H9))) (S (minus i0 (S i))) (minus_x_Sy i0 i H9)) 
-in (arity_abbr g c2 d u i H11 a0 H1))) (\lambda (H11: (ex3_4 B C T T (\lambda 
+Abbr) u0) H11)) in (let H13 \def (f_equal C C (\lambda (e: C).(match e with 
+[(CSort _) \Rightarrow d | (CHead c0 _ _) \Rightarrow c0])) (CHead d (Bind 
+Abbr) u) (CHead d1 (Bind Abbr) u0) (getl_mono c (CHead d (Bind Abbr) u) i H0 
+(CHead d1 (Bind Abbr) u0) H11)) in ((let H14 \def (f_equal C T (\lambda (e: 
+C).(match e with [(CSort _) \Rightarrow u | (CHead _ _ t) \Rightarrow t])) 
+(CHead d (Bind Abbr) u) (CHead d1 (Bind Abbr) u0) (getl_mono c (CHead d (Bin
+Abbr) u) i H0 (CHead d1 (Bind Abbr) u0) H11)) in (\lambda (H15: (eq C d 
+d1)).(let H16 \def (eq_ind_r T u0 (\lambda (t: T).(getl i c (CHead d1 (Bind 
+Abbr) t))) H12 u H14) in (eq_ind T u (\lambda (t: T).(arity g c (lift (S i) O 
+t) a0)) (let H17 \def (eq_ind_r C d1 (\lambda (c0: C).(getl i c (CHead c0 
+(Bind Abbr) u))) H16 d H15) in (arity_lift g d u a0 H1 c (S i) O (getl_drop 
+Abbr c d u i H17))) u0 H14)))) H13)))) t2 H10))) (subst0_gen_lref u0 t2 i0 i 
+H8)) c2 H7))) H6)) (\lambda (H6: (land (eq T (TLRef i) t2) (csubst0 i0 u0 c 
+c2))).(land_ind (eq T (TLRef i) t2) (csubst0 i0 u0 c c2) (arity g c2 t2 a0) 
+(\lambda (H7: (eq T (TLRef i) t2)).(\lambda (H8: (csubst0 i0 u0 c 
+c2)).(eq_ind T (TLRef i) (\lambda (t: T).(arity g c2 t a0)) (lt_le_e i i0 
+(arity g c2 (TLRef i) a0) (\lambda (H9: (lt i i0)).(let H10 \def 
+(csubst0_getl_lt i0 i H9 c c2 u0 H8 (CHead d (Bind Abbr) u) H0) in (or4_ind 
+(getl i c2 (CHead d (Bind Abbr) u)) (ex3_4 B C T T (\lambda (b: B).(\lambda 
+(e0: C).(\lambda (u1: T).(\lambda (_: T).(eq C (CHead d (Bind Abbr) u) (CHead 
+e0 (Bind b) u1)))))) (\lambda (b: B).(\lambda (e0: C).(\lambda (_
+T).(\lambda (w: T).(getl i c2 (CHead e0 (Bind b) w)))))) (\lambda (_: 
+B).(\lambda (_: C).(\lambda (u1: T).(\lambda (w: T).(subst0 (minus i0 (S i)) 
+u0 u1 w)))))) (ex3_4 B C C T (\lambda (b: B).(\lambda (e1: C).(\lambda (_
+C).(\lambda (u1: T).(eq C (CHead d (Bind Abbr) u) (CHead e1 (Bind b) u1)))))) 
+(\lambda (b: B).(\lambda (_: C).(\lambda (e2: C).(\lambda (u1: T).(getl i c2 
+(CHead e2 (Bind b) u1)))))) (\lambda (_: B).(\lambda (e1: C).(\lambda (e2
+C).(\lambda (_: T).(csubst0 (minus i0 (S i)) u0 e1 e2)))))) (ex4_5 B C C T T 
+(\lambda (b: B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda 
+(_: T).(eq C (CHead d (Bind Abbr) u) (CHead e1 (Bind b) u1))))))) (\lambda 
+(b: B).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (w: T).(getl 
+i c2 (CHead e2 (Bind b) w))))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: 
+C).(\lambda (u1: T).(\lambda (w: T).(subst0 (minus i0 (S i)) u0 u1 w)))))) 
+(\lambda (_: B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
+(_: T).(csubst0 (minus i0 (S i)) u0 e1 e2))))))) (arity g c2 (TLRef i) a0
+(\lambda (H11: (getl i c2 (CHead d (Bind Abbr) u))).(let H12 \def (eq_ind nat 
+(minus i0 i) (\lambda (n: nat).(getl n (CHead d (Bind Abbr) u) (CHead d1 
+(Bind Abbr) u0))) (getl_conf_le i0 (CHead d1 (Bind Abbr) u0) c H3 (CHead d 
+(Bind Abbr) u) i H0 (le_S_n i i0 (le_S_n (S i) (S i0) (le_S (S (S i)) (S i0) 
+(le_n_S (S i) i0 H9))))) (S (minus i0 (S i))) (minus_x_Sy i0 i H9)) in 
+(arity_abbr g c2 d u i H11 a0 H1))) (\lambda (H11: (ex3_4 B C T T (\lambda 
 (b: B).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: T).(eq C (CHead d (Bind 
 Abbr) u) (CHead e0 (Bind b) u1)))))) (\lambda (b: B).(\lambda (e0: 
 C).(\lambda (_: T).(\lambda (w: T).(getl i c2 (CHead e0 (Bind b) w)))))) 
@@ -367,16 +359,15 @@ Abbr) u) (CHead x1 (Bind x0) x2))).(\lambda (H13: (getl i c2 (CHead x1 (Bind
 x0) x3))).(\lambda (H14: (subst0 (minus i0 (S i)) u0 x2 x3)).(let H15 \def 
 (eq_ind nat (minus i0 i) (\lambda (n: nat).(getl n (CHead d (Bind Abbr) u) 
 (CHead d1 (Bind Abbr) u0))) (getl_conf_le i0 (CHead d1 (Bind Abbr) u0) c H3 
-(CHead d (Bind Abbr) u) i H0 (le_S_n i i0 (le_S (S i) i0 H9))) (S (minus i0 
-(S i))) (minus_x_Sy i0 i H9)) in (let H16 \def (f_equal C C (\lambda (e: 
-C).(match e in C return (\lambda (_: C).C) with [(CSort _) \Rightarrow d | 
-(CHead c0 _ _) \Rightarrow c0])) (CHead d (Bind Abbr) u) (CHead x1 (Bind x0) 
-x2) H12) in ((let H17 \def (f_equal C B (\lambda (e: C).(match e in C return 
-(\lambda (_: C).B) with [(CSort _) \Rightarrow Abbr | (CHead _ k _) 
-\Rightarrow (match k in K return (\lambda (_: K).B) with [(Bind b) 
-\Rightarrow b | (Flat _) \Rightarrow Abbr])])) (CHead d (Bind Abbr) u) (CHead 
-x1 (Bind x0) x2) H12) in ((let H18 \def (f_equal C T (\lambda (e: C).(match e 
-in C return (\lambda (_: C).T) with [(CSort _) \Rightarrow u | (CHead _ _ t) 
+(CHead d (Bind Abbr) u) i H0 (le_S_n i i0 (le_S_n (S i) (S i0) (le_S (S (S 
+i)) (S i0) (le_n_S (S i) i0 H9))))) (S (minus i0 (S i))) (minus_x_Sy i0 i 
+H9)) in (let H16 \def (f_equal C C (\lambda (e: C).(match e with [(CSort _) 
+\Rightarrow d | (CHead c0 _ _) \Rightarrow c0])) (CHead d (Bind Abbr) u) 
+(CHead x1 (Bind x0) x2) H12) in ((let H17 \def (f_equal C B (\lambda (e: 
+C).(match e with [(CSort _) \Rightarrow Abbr | (CHead _ k _) \Rightarrow 
+(match k with [(Bind b) \Rightarrow b | (Flat _) \Rightarrow Abbr])])) (CHead 
+d (Bind Abbr) u) (CHead x1 (Bind x0) x2) H12) in ((let H18 \def (f_equal C T 
+(\lambda (e: C).(match e with [(CSort _) \Rightarrow u | (CHead _ _ t) 
 \Rightarrow t])) (CHead d (Bind Abbr) u) (CHead x1 (Bind x0) x2) H12) in 
 (\lambda (H19: (eq B Abbr x0)).(\lambda (H20: (eq C d x1)).(let H21 \def 
 (eq_ind_r T x2 (\lambda (t: T).(subst0 (minus i0 (S i)) u0 t x3)) H14 u H18) 
@@ -401,16 +392,15 @@ C (CHead d (Bind Abbr) u) (CHead x1 (Bind x0) x3))).(\lambda (H13: (getl i c2
 (CHead x2 (Bind x0) x3))).(\lambda (H14: (csubst0 (minus i0 (S i)) u0 x1 
 x2)).(let H15 \def (eq_ind nat (minus i0 i) (\lambda (n: nat).(getl n (CHead 
 d (Bind Abbr) u) (CHead d1 (Bind Abbr) u0))) (getl_conf_le i0 (CHead d1 (Bind 
-Abbr) u0) c H3 (CHead d (Bind Abbr) u) i H0 (le_S_n i i0 (le_S (S i) i0 H9))) 
-(S (minus i0 (S i))) (minus_x_Sy i0 i H9)) in (let H16 \def (f_equal C C 
-(\lambda (e: C).(match e in C return (\lambda (_: C).C) with [(CSort _) 
-\Rightarrow d | (CHead c0 _ _) \Rightarrow c0])) (CHead d (Bind Abbr) u) 
-(CHead x1 (Bind x0) x3) H12) in ((let H17 \def (f_equal C B (\lambda (e: 
-C).(match e in C return (\lambda (_: C).B) with [(CSort _) \Rightarrow Abbr | 
-(CHead _ k _) \Rightarrow (match k in K return (\lambda (_: K).B) with [(Bind 
-b) \Rightarrow b | (Flat _) \Rightarrow Abbr])])) (CHead d (Bind Abbr) u) 
-(CHead x1 (Bind x0) x3) H12) in ((let H18 \def (f_equal C T (\lambda (e: 
-C).(match e in C return (\lambda (_: C).T) with [(CSort _) \Rightarrow u | 
+Abbr) u0) c H3 (CHead d (Bind Abbr) u) i H0 (le_S_n i i0 (le_S_n (S i) (S i0) 
+(le_S (S (S i)) (S i0) (le_n_S (S i) i0 H9))))) (S (minus i0 (S i))) 
+(minus_x_Sy i0 i H9)) in (let H16 \def (f_equal C C (\lambda (e: C).(match e 
+with [(CSort _) \Rightarrow d | (CHead c0 _ _) \Rightarrow c0])) (CHead d 
+(Bind Abbr) u) (CHead x1 (Bind x0) x3) H12) in ((let H17 \def (f_equal C B 
+(\lambda (e: C).(match e with [(CSort _) \Rightarrow Abbr | (CHead _ k _) 
+\Rightarrow (match k with [(Bind b) \Rightarrow b | (Flat _) \Rightarrow 
+Abbr])])) (CHead d (Bind Abbr) u) (CHead x1 (Bind x0) x3) H12) in ((let H18 
+\def (f_equal C T (\lambda (e: C).(match e with [(CSort _) \Rightarrow u | 
 (CHead _ _ t) \Rightarrow t])) (CHead d (Bind Abbr) u) (CHead x1 (Bind x0) 
 x3) H12) in (\lambda (H19: (eq B Abbr x0)).(\lambda (H20: (eq C d x1)).(let 
 H21 \def (eq_ind_r T x3 (\lambda (t: T).(getl i c2 (CHead x2 (Bind x0) t))) 
@@ -441,15 +431,14 @@ x0) x4))).(\lambda (H14: (subst0 (minus i0 (S i)) u0 x3 x4)).(\lambda (H15:
 (csubst0 (minus i0 (S i)) u0 x1 x2)).(let H16 \def (eq_ind nat (minus i0 i) 
 (\lambda (n: nat).(getl n (CHead d (Bind Abbr) u) (CHead d1 (Bind Abbr) u0))) 
 (getl_conf_le i0 (CHead d1 (Bind Abbr) u0) c H3 (CHead d (Bind Abbr) u) i H0 
-(le_S_n i i0 (le_S (S i) i0 H9))) (S (minus i0 (S i))) (minus_x_Sy i0 i H9)) 
-in (let H17 \def (f_equal C C (\lambda (e: C).(match e in C return (\lambda 
-(_: C).C) with [(CSort _) \Rightarrow d | (CHead c0 _ _) \Rightarrow c0])) 
-(CHead d (Bind Abbr) u) (CHead x1 (Bind x0) x3) H12) in ((let H18 \def 
-(f_equal C B (\lambda (e: C).(match e in C return (\lambda (_: C).B) with 
-[(CSort _) \Rightarrow Abbr | (CHead _ k _) \Rightarrow (match k in K return 
-(\lambda (_: K).B) with [(Bind b) \Rightarrow b | (Flat _) \Rightarrow 
-Abbr])])) (CHead d (Bind Abbr) u) (CHead x1 (Bind x0) x3) H12) in ((let H19 
-\def (f_equal C T (\lambda (e: C).(match e in C return (\lambda (_: C).T) 
+(le_S_n i i0 (le_S_n (S i) (S i0) (le_S (S (S i)) (S i0) (le_n_S (S i) i0 
+H9))))) (S (minus i0 (S i))) (minus_x_Sy i0 i H9)) in (let H17 \def (f_equal 
+C C (\lambda (e: C).(match e with [(CSort _) \Rightarrow d | (CHead c0 _ _) 
+\Rightarrow c0])) (CHead d (Bind Abbr) u) (CHead x1 (Bind x0) x3) H12) in 
+((let H18 \def (f_equal C B (\lambda (e: C).(match e with [(CSort _) 
+\Rightarrow Abbr | (CHead _ k _) \Rightarrow (match k with [(Bind b) 
+\Rightarrow b | (Flat _) \Rightarrow Abbr])])) (CHead d (Bind Abbr) u) (CHead 
+x1 (Bind x0) x3) H12) in ((let H19 \def (f_equal C T (\lambda (e: C).(match e 
 with [(CSort _) \Rightarrow u | (CHead _ _ t) \Rightarrow t])) (CHead d (Bind 
 Abbr) u) (CHead x1 (Bind x0) x3) H12) in (\lambda (H20: (eq B Abbr 
 x0)).(\lambda (H21: (eq C d x1)).(let H22 \def (eq_ind_r T x3 (\lambda (t: 
@@ -472,34 +461,34 @@ nat).(csubst0 n u0 c c2)) H8 i H9) in (let H12 \def (eq_ind_r nat i0 (\lambda
 (n: nat).(getl n c (CHead d1 (Bind Abbr) u0))) H3 i H9) in (let H13 \def 
 (eq_ind C (CHead d (Bind Abbr) u) (\lambda (c0: C).(getl i c c0)) H0 (CHead 
 d1 (Bind Abbr) u0) (getl_mono c (CHead d (Bind Abbr) u) i H0 (CHead d1 (Bind 
-Abbr) u0) H12)) in (let H14 \def (f_equal C C (\lambda (e: C).(match e in C 
-return (\lambda (_: C).C) with [(CSort _) \Rightarrow d | (CHead c0 _ _) 
-\Rightarrow c0])) (CHead d (Bind Abbr) u) (CHead d1 (Bind Abbr) u0) 
-(getl_mono c (CHead d (Bind Abbr) u) i H0 (CHead d1 (Bind Abbr) u0) H12)) in 
-((let H15 \def (f_equal C T (\lambda (e: C).(match e in C return (\lambda (_: 
-C).T) with [(CSort _) \Rightarrow u | (CHead _ _ t) \Rightarrow t])) (CHead 
-(Bind Abbr) u) (CHead d1 (Bind Abbr) u0) (getl_mono c (CHead d (Bind Abbr) u) 
-i H0 (CHead d1 (Bind Abbr) u0) H12)) in (\lambda (H16: (eq C d d1)).(let H17 
-\def (eq_ind_r T u0 (\lambda (t: T).(getl i c (CHead d1 (Bind Abbr) t))) H13 
-u H15) in (let H18 \def (eq_ind_r T u0 (\lambda (t: T).(csubst0 i t c c2)) 
-H11 u H15) in (eq_ind T u (\lambda (t: T).(arity g c2 (lift (S i) O t) a0)) 
-(let H19 \def (eq_ind_r C d1 (\lambda (c0: C).(getl i c (CHead c0 (Bind Abbr) 
-u))) H17 d H16) in (arity_lift g d u a0 H1 c2 (S i) O (getl_drop Abbr c2 d u 
-i (csubst0_getl_ge i i (le_n i) c c2 u H18 (CHead d (Bind Abbr) u) H19)))) u0 
-H15))))) H14))))) t2 H10))) (subst0_gen_lref u0 t2 i0 i H7)))) H6)) 
-H5)))))))))))))))))) (\lambda (c: C).(\lambda (d: C).(\lambda (u: T).(\lambda 
-(i: nat).(\lambda (H0: (getl i c (CHead d (Bind Abst) u))).(\lambda (a0: 
-A).(\lambda (H1: (arity g d u (asucc g a0))).(\lambda (H2: ((\forall (d1
-C).(\forall (u0: T).(\forall (i0: nat).((getl i0 d (CHead d1 (Bind Abbr) u0)) 
-\to (\forall (c2: C).(\forall (t2: T).((fsubst0 i0 u0 d u c2 t2) \to (arity g 
-c2 t2 (asucc g a0))))))))))).(\lambda (d1: C).(\lambda (u0: T).(\lambda (i0: 
-nat).(\lambda (H3: (getl i0 c (CHead d1 (Bind Abbr) u0))).(\lambda (c2: 
-C).(\lambda (t2: T).(\lambda (H4: (fsubst0 i0 u0 c (TLRef i) c2 t2)).(let H_x 
-\def (fsubst0_gen_base c c2 (TLRef i) t2 u0 i0 H4) in (let H5 \def H_x in 
-(or3_ind (land (eq C c c2) (subst0 i0 u0 (TLRef i) t2)) (land (eq T (TLRef i
-t2) (csubst0 i0 u0 c c2)) (land (subst0 i0 u0 (TLRef i) t2) (csubst0 i0 u0 c 
-c2)) (arity g c2 t2 a0) (\lambda (H6: (land (eq C c c2) (subst0 i0 u0 (TLRef 
-i) t2))).(land_ind (eq C c c2) (subst0 i0 u0 (TLRef i) t2) (arity g c2 t2 a0) 
+Abbr) u0) H12)) in (let H14 \def (f_equal C C (\lambda (e: C).(match e with 
+[(CSort _) \Rightarrow d | (CHead c0 _ _) \Rightarrow c0])) (CHead d (Bind 
+Abbr) u) (CHead d1 (Bind Abbr) u0) (getl_mono c (CHead d (Bind Abbr) u) i H0 
+(CHead d1 (Bind Abbr) u0) H12)) in ((let H15 \def (f_equal C T (\lambda (e: 
+C).(match e with [(CSort _) \Rightarrow u | (CHead _ _ t) \Rightarrow t])) 
+(CHead d (Bind Abbr) u) (CHead d1 (Bind Abbr) u0) (getl_mono c (CHead d (Bin
+Abbr) u) i H0 (CHead d1 (Bind Abbr) u0) H12)) in (\lambda (H16: (eq C d 
+d1)).(let H17 \def (eq_ind_r T u0 (\lambda (t: T).(getl i c (CHead d1 (Bind 
+Abbr) t))) H13 u H15) in (let H18 \def (eq_ind_r T u0 (\lambda (t: 
+T).(csubst0 i t c c2)) H11 u H15) in (eq_ind T u (\lambda (t: T).(arity g c2 
+(lift (S i) O t) a0)) (let H19 \def (eq_ind_r C d1 (\lambda (c0: C).(getl i c 
+(CHead c0 (Bind Abbr) u))) H17 d H16) in (arity_lift g d u a0 H1 c2 (S i) O 
+(getl_drop Abbr c2 d u i (csubst0_getl_ge i i (le_n i) c c2 u H18 (CHead d 
+(Bind Abbr) u) H19)))) u0 H15))))) H14))))) t2 H10))) (subst0_gen_lref u0 t2 
+i0 i H7)))) H6)) H5)))))))))))))))))) (\lambda (c: C).(\lambda (d: 
+C).(\lambda (u: T).(\lambda (i: nat).(\lambda (H0: (getl i c (CHead d (Bind 
+Abst) u))).(\lambda (a0: A).(\lambda (H1: (arity g d u (asucc g 
+a0))).(\lambda (H2: ((\forall (d1: C).(\forall (u0: T).(\forall (i0
+nat).((getl i0 d (CHead d1 (Bind Abbr) u0)) \to (\forall (c2: C).(\forall 
+(t2: T).((fsubst0 i0 u0 d u c2 t2) \to (arity g c2 t2 (asucc g 
+a0))))))))))).(\lambda (d1: C).(\lambda (u0: T).(\lambda (i0: nat).(\lambda 
+(H3: (getl i0 c (CHead d1 (Bind Abbr) u0))).(\lambda (c2: C).(\lambda (t2: 
+T).(\lambda (H4: (fsubst0 i0 u0 c (TLRef i) c2 t2)).(let H_x \def 
+(fsubst0_gen_base c c2 (TLRef i) t2 u0 i0 H4) in (let H5 \def H_x in (or3_ind 
+(land (eq C c c2) (subst0 i0 u0 (TLRef i) t2)) (land (eq T (TLRef i) t2
+(csubst0 i0 u0 c c2)) (land (subst0 i0 u0 (TLRef i) t2) (csubst0 i0 u0 c c2)) 
+(arity g c2 t2 a0) (\lambda (H6: (land (eq C c c2) (subst0 i0 u0 (TLRef i) 
+t2))).(land_ind (eq C c c2) (subst0 i0 u0 (TLRef i) t2) (arity g c2 t2 a0) 
 (\lambda (H7: (eq C c c2)).(\lambda (H8: (subst0 i0 u0 (TLRef i) t2)).(eq_ind 
 C c (\lambda (c0: C).(arity g c0 t2 a0)) (land_ind (eq nat i i0) (eq T t2 
 (lift (S i) O u0)) (arity g c t2 a0) (\lambda (H9: (eq nat i i0)).(\lambda 
@@ -508,41 +497,40 @@ T).(arity g c t a0)) (let H11 \def (eq_ind_r nat i0 (\lambda (n: nat).(getl n
 c (CHead d1 (Bind Abbr) u0))) H3 i H9) in (let H12 \def (eq_ind C (CHead d 
 (Bind Abst) u) (\lambda (c0: C).(getl i c c0)) H0 (CHead d1 (Bind Abbr) u0) 
 (getl_mono c (CHead d (Bind Abst) u) i H0 (CHead d1 (Bind Abbr) u0) H11)) in 
-(let H13 \def (eq_ind C (CHead d (Bind Abst) u) (\lambda (ee: C).(match ee in 
-C return (\lambda (_: C).Prop) with [(CSort _) \Rightarrow False | (CHead _ k 
-_) \Rightarrow (match k in K return (\lambda (_: K).Prop) with [(Bind b) 
-\Rightarrow (match b in B return (\lambda (_: B).Prop) with [Abbr \Rightarrow 
-False | Abst \Rightarrow True | Void \Rightarrow False]) | (Flat _) 
-\Rightarrow False])])) I (CHead d1 (Bind Abbr) u0) (getl_mono c (CHead d 
-(Bind Abst) u) i H0 (CHead d1 (Bind Abbr) u0) H11)) in (False_ind (arity g c 
-(lift (S i) O u0) a0) H13)))) t2 H10))) (subst0_gen_lref u0 t2 i0 i H8)) c2 
-H7))) H6)) (\lambda (H6: (land (eq T (TLRef i) t2) (csubst0 i0 u0 c 
-c2))).(land_ind (eq T (TLRef i) t2) (csubst0 i0 u0 c c2) (arity g c2 t2 a0) 
-(\lambda (H7: (eq T (TLRef i) t2)).(\lambda (H8: (csubst0 i0 u0 c 
-c2)).(eq_ind T (TLRef i) (\lambda (t: T).(arity g c2 t a0)) (lt_le_e i i0 
-(arity g c2 (TLRef i) a0) (\lambda (H9: (lt i i0)).(let H10 \def 
-(csubst0_getl_lt i0 i H9 c c2 u0 H8 (CHead d (Bind Abst) u) H0) in (or4_ind 
-(getl i c2 (CHead d (Bind Abst) u)) (ex3_4 B C T T (\lambda (b: B).(\lambda 
-(e0: C).(\lambda (u1: T).(\lambda (_: T).(eq C (CHead d (Bind Abst) u) (CHead 
-e0 (Bind b) u1)))))) (\lambda (b: B).(\lambda (e0: C).(\lambda (_: 
-T).(\lambda (w: T).(getl i c2 (CHead e0 (Bind b) w)))))) (\lambda (_: 
-B).(\lambda (_: C).(\lambda (u1: T).(\lambda (w: T).(subst0 (minus i0 (S i)) 
-u0 u1 w)))))) (ex3_4 B C C T (\lambda (b: B).(\lambda (e1: C).(\lambda (_: 
-C).(\lambda (u1: T).(eq C (CHead d (Bind Abst) u) (CHead e1 (Bind b) u1)))))) 
-(\lambda (b: B).(\lambda (_: C).(\lambda (e2: C).(\lambda (u1: T).(getl i c2 
-(CHead e2 (Bind b) u1)))))) (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: 
-C).(\lambda (_: T).(csubst0 (minus i0 (S i)) u0 e1 e2)))))) (ex4_5 B C C T T 
-(\lambda (b: B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda 
-(_: T).(eq C (CHead d (Bind Abst) u) (CHead e1 (Bind b) u1))))))) (\lambda 
-(b: B).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (w: T).(getl 
-i c2 (CHead e2 (Bind b) w))))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: 
-C).(\lambda (u1: T).(\lambda (w: T).(subst0 (minus i0 (S i)) u0 u1 w)))))) 
-(\lambda (_: B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
-(_: T).(csubst0 (minus i0 (S i)) u0 e1 e2))))))) (arity g c2 (TLRef i) a0) 
-(\lambda (H11: (getl i c2 (CHead d (Bind Abst) u))).(let H12 \def (eq_ind nat 
-(minus i0 i) (\lambda (n: nat).(getl n (CHead d (Bind Abst) u) (CHead d1 
-(Bind Abbr) u0))) (getl_conf_le i0 (CHead d1 (Bind Abbr) u0) c H3 (CHead d 
-(Bind Abst) u) i H0 (le_S_n i i0 (le_S (S i) i0 H9))) (S (minus i0 (S i))) 
+(let H13 \def (eq_ind C (CHead d (Bind Abst) u) (\lambda (ee: C).(match ee 
+with [(CSort _) \Rightarrow False | (CHead _ k _) \Rightarrow (match k with 
+[(Bind b) \Rightarrow (match b with [Abbr \Rightarrow False | Abst 
+\Rightarrow True | Void \Rightarrow False]) | (Flat _) \Rightarrow False])])) 
+I (CHead d1 (Bind Abbr) u0) (getl_mono c (CHead d (Bind Abst) u) i H0 (CHead 
+d1 (Bind Abbr) u0) H11)) in (False_ind (arity g c (lift (S i) O u0) a0) 
+H13)))) t2 H10))) (subst0_gen_lref u0 t2 i0 i H8)) c2 H7))) H6)) (\lambda 
+(H6: (land (eq T (TLRef i) t2) (csubst0 i0 u0 c c2))).(land_ind (eq T (TLRef 
+i) t2) (csubst0 i0 u0 c c2) (arity g c2 t2 a0) (\lambda (H7: (eq T (TLRef i) 
+t2)).(\lambda (H8: (csubst0 i0 u0 c c2)).(eq_ind T (TLRef i) (\lambda (t: 
+T).(arity g c2 t a0)) (lt_le_e i i0 (arity g c2 (TLRef i) a0) (\lambda (H9: 
+(lt i i0)).(let H10 \def (csubst0_getl_lt i0 i H9 c c2 u0 H8 (CHead d (Bind 
+Abst) u) H0) in (or4_ind (getl i c2 (CHead d (Bind Abst) u)) (ex3_4 B C T T 
+(\lambda (b: B).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: T).(eq C 
+(CHead d (Bind Abst) u) (CHead e0 (Bind b) u1)))))) (\lambda (b: B).(\lambda 
+(e0: C).(\lambda (_: T).(\lambda (w: T).(getl i c2 (CHead e0 (Bind b) w)))))) 
+(\lambda (_: B).(\lambda (_: C).(\lambda (u1: T).(\lambda (w: T).(subst0 
+(minus i0 (S i)) u0 u1 w)))))) (ex3_4 B C C T (\lambda (b: B).(\lambda (e1: 
+C).(\lambda (_: C).(\lambda (u1: T).(eq C (CHead d (Bind Abst) u) (CHead e1 
+(Bind b) u1)))))) (\lambda (b: B).(\lambda (_: C).(\lambda (e2: C).(\lambda 
+(u1: T).(getl i c2 (CHead e2 (Bind b) u1)))))) (\lambda (_: B).(\lambda (e1: 
+C).(\lambda (e2: C).(\lambda (_: T).(csubst0 (minus i0 (S i)) u0 e1 e2)))))) 
+(ex4_5 B C C T T (\lambda (b: B).(\lambda (e1: C).(\lambda (_: C).(\lambda 
+(u1: T).(\lambda (_: T).(eq C (CHead d (Bind Abst) u) (CHead e1 (Bind b) 
+u1))))))) (\lambda (b: B).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: 
+T).(\lambda (w: T).(getl i c2 (CHead e2 (Bind b) w))))))) (\lambda (_: 
+B).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (w: T).(subst0 
+(minus i0 (S i)) u0 u1 w)))))) (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: 
+C).(\lambda (_: T).(\lambda (_: T).(csubst0 (minus i0 (S i)) u0 e1 e2))))))) 
+(arity g c2 (TLRef i) a0) (\lambda (H11: (getl i c2 (CHead d (Bind Abst) 
+u))).(let H12 \def (eq_ind nat (minus i0 i) (\lambda (n: nat).(getl n (CHead 
+d (Bind Abst) u) (CHead d1 (Bind Abbr) u0))) (getl_conf_le i0 (CHead d1 (Bind 
+Abbr) u0) c H3 (CHead d (Bind Abst) u) i H0 (le_S_n i i0 (le_S_n (S i) (S i0) 
+(le_S (S (S i)) (S i0) (le_n_S (S i) i0 H9))))) (S (minus i0 (S i))) 
 (minus_x_Sy i0 i H9)) in (arity_abst g c2 d u i H11 a0 H1))) (\lambda (H11: 
 (ex3_4 B C T T (\lambda (b: B).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: 
 T).(eq C (CHead d (Bind Abst) u) (CHead e0 (Bind b) u1)))))) (\lambda (b: 
@@ -559,16 +547,15 @@ B).(\lambda (x1: C).(\lambda (x2: T).(\lambda (x3: T).(\lambda (H12: (eq C
 (CHead x1 (Bind x0) x3))).(\lambda (H14: (subst0 (minus i0 (S i)) u0 x2 
 x3)).(let H15 \def (eq_ind nat (minus i0 i) (\lambda (n: nat).(getl n (CHead 
 d (Bind Abst) u) (CHead d1 (Bind Abbr) u0))) (getl_conf_le i0 (CHead d1 (Bind 
-Abbr) u0) c H3 (CHead d (Bind Abst) u) i H0 (le_S_n i i0 (le_S (S i) i0 H9))) 
-(S (minus i0 (S i))) (minus_x_Sy i0 i H9)) in (let H16 \def (f_equal C C 
-(\lambda (e: C).(match e in C return (\lambda (_: C).C) with [(CSort _) 
-\Rightarrow d | (CHead c0 _ _) \Rightarrow c0])) (CHead d (Bind Abst) u) 
-(CHead x1 (Bind x0) x2) H12) in ((let H17 \def (f_equal C B (\lambda (e: 
-C).(match e in C return (\lambda (_: C).B) with [(CSort _) \Rightarrow Abst | 
-(CHead _ k _) \Rightarrow (match k in K return (\lambda (_: K).B) with [(Bind 
-b) \Rightarrow b | (Flat _) \Rightarrow Abst])])) (CHead d (Bind Abst) u) 
-(CHead x1 (Bind x0) x2) H12) in ((let H18 \def (f_equal C T (\lambda (e: 
-C).(match e in C return (\lambda (_: C).T) with [(CSort _) \Rightarrow u | 
+Abbr) u0) c H3 (CHead d (Bind Abst) u) i H0 (le_S_n i i0 (le_S_n (S i) (S i0) 
+(le_S (S (S i)) (S i0) (le_n_S (S i) i0 H9))))) (S (minus i0 (S i))) 
+(minus_x_Sy i0 i H9)) in (let H16 \def (f_equal C C (\lambda (e: C).(match e 
+with [(CSort _) \Rightarrow d | (CHead c0 _ _) \Rightarrow c0])) (CHead d 
+(Bind Abst) u) (CHead x1 (Bind x0) x2) H12) in ((let H17 \def (f_equal C B 
+(\lambda (e: C).(match e with [(CSort _) \Rightarrow Abst | (CHead _ k _) 
+\Rightarrow (match k with [(Bind b) \Rightarrow b | (Flat _) \Rightarrow 
+Abst])])) (CHead d (Bind Abst) u) (CHead x1 (Bind x0) x2) H12) in ((let H18 
+\def (f_equal C T (\lambda (e: C).(match e with [(CSort _) \Rightarrow u | 
 (CHead _ _ t) \Rightarrow t])) (CHead d (Bind Abst) u) (CHead x1 (Bind x0) 
 x2) H12) in (\lambda (H19: (eq B Abst x0)).(\lambda (H20: (eq C d x1)).(let 
 H21 \def (eq_ind_r T x2 (\lambda (t: T).(subst0 (minus i0 (S i)) u0 t x3)) 
@@ -593,16 +580,15 @@ C (CHead d (Bind Abst) u) (CHead x1 (Bind x0) x3))).(\lambda (H13: (getl i c2
 (CHead x2 (Bind x0) x3))).(\lambda (H14: (csubst0 (minus i0 (S i)) u0 x1 
 x2)).(let H15 \def (eq_ind nat (minus i0 i) (\lambda (n: nat).(getl n (CHead 
 d (Bind Abst) u) (CHead d1 (Bind Abbr) u0))) (getl_conf_le i0 (CHead d1 (Bind 
-Abbr) u0) c H3 (CHead d (Bind Abst) u) i H0 (le_S_n i i0 (le_S (S i) i0 H9))) 
-(S (minus i0 (S i))) (minus_x_Sy i0 i H9)) in (let H16 \def (f_equal C C 
-(\lambda (e: C).(match e in C return (\lambda (_: C).C) with [(CSort _) 
-\Rightarrow d | (CHead c0 _ _) \Rightarrow c0])) (CHead d (Bind Abst) u) 
-(CHead x1 (Bind x0) x3) H12) in ((let H17 \def (f_equal C B (\lambda (e: 
-C).(match e in C return (\lambda (_: C).B) with [(CSort _) \Rightarrow Abst | 
-(CHead _ k _) \Rightarrow (match k in K return (\lambda (_: K).B) with [(Bind 
-b) \Rightarrow b | (Flat _) \Rightarrow Abst])])) (CHead d (Bind Abst) u) 
-(CHead x1 (Bind x0) x3) H12) in ((let H18 \def (f_equal C T (\lambda (e: 
-C).(match e in C return (\lambda (_: C).T) with [(CSort _) \Rightarrow u | 
+Abbr) u0) c H3 (CHead d (Bind Abst) u) i H0 (le_S_n i i0 (le_S_n (S i) (S i0) 
+(le_S (S (S i)) (S i0) (le_n_S (S i) i0 H9))))) (S (minus i0 (S i))) 
+(minus_x_Sy i0 i H9)) in (let H16 \def (f_equal C C (\lambda (e: C).(match e 
+with [(CSort _) \Rightarrow d | (CHead c0 _ _) \Rightarrow c0])) (CHead d 
+(Bind Abst) u) (CHead x1 (Bind x0) x3) H12) in ((let H17 \def (f_equal C B 
+(\lambda (e: C).(match e with [(CSort _) \Rightarrow Abst | (CHead _ k _) 
+\Rightarrow (match k with [(Bind b) \Rightarrow b | (Flat _) \Rightarrow 
+Abst])])) (CHead d (Bind Abst) u) (CHead x1 (Bind x0) x3) H12) in ((let H18 
+\def (f_equal C T (\lambda (e: C).(match e with [(CSort _) \Rightarrow u | 
 (CHead _ _ t) \Rightarrow t])) (CHead d (Bind Abst) u) (CHead x1 (Bind x0) 
 x3) H12) in (\lambda (H19: (eq B Abst x0)).(\lambda (H20: (eq C d x1)).(let 
 H21 \def (eq_ind_r T x3 (\lambda (t: T).(getl i c2 (CHead x2 (Bind x0) t))) 
@@ -633,15 +619,14 @@ x0) x4))).(\lambda (H14: (subst0 (minus i0 (S i)) u0 x3 x4)).(\lambda (H15:
 (csubst0 (minus i0 (S i)) u0 x1 x2)).(let H16 \def (eq_ind nat (minus i0 i) 
 (\lambda (n: nat).(getl n (CHead d (Bind Abst) u) (CHead d1 (Bind Abbr) u0))) 
 (getl_conf_le i0 (CHead d1 (Bind Abbr) u0) c H3 (CHead d (Bind Abst) u) i H0 
-(le_S_n i i0 (le_S (S i) i0 H9))) (S (minus i0 (S i))) (minus_x_Sy i0 i H9)) 
-in (let H17 \def (f_equal C C (\lambda (e: C).(match e in C return (\lambda 
-(_: C).C) with [(CSort _) \Rightarrow d | (CHead c0 _ _) \Rightarrow c0])) 
-(CHead d (Bind Abst) u) (CHead x1 (Bind x0) x3) H12) in ((let H18 \def 
-(f_equal C B (\lambda (e: C).(match e in C return (\lambda (_: C).B) with 
-[(CSort _) \Rightarrow Abst | (CHead _ k _) \Rightarrow (match k in K return 
-(\lambda (_: K).B) with [(Bind b) \Rightarrow b | (Flat _) \Rightarrow 
-Abst])])) (CHead d (Bind Abst) u) (CHead x1 (Bind x0) x3) H12) in ((let H19 
-\def (f_equal C T (\lambda (e: C).(match e in C return (\lambda (_: C).T) 
+(le_S_n i i0 (le_S_n (S i) (S i0) (le_S (S (S i)) (S i0) (le_n_S (S i) i0 
+H9))))) (S (minus i0 (S i))) (minus_x_Sy i0 i H9)) in (let H17 \def (f_equal 
+C C (\lambda (e: C).(match e with [(CSort _) \Rightarrow d | (CHead c0 _ _) 
+\Rightarrow c0])) (CHead d (Bind Abst) u) (CHead x1 (Bind x0) x3) H12) in 
+((let H18 \def (f_equal C B (\lambda (e: C).(match e with [(CSort _) 
+\Rightarrow Abst | (CHead _ k _) \Rightarrow (match k with [(Bind b) 
+\Rightarrow b | (Flat _) \Rightarrow Abst])])) (CHead d (Bind Abst) u) (CHead 
+x1 (Bind x0) x3) H12) in ((let H19 \def (f_equal C T (\lambda (e: C).(match e 
 with [(CSort _) \Rightarrow u | (CHead _ _ t) \Rightarrow t])) (CHead d (Bind 
 Abst) u) (CHead x1 (Bind x0) x3) H12) in (\lambda (H20: (eq B Abst 
 x0)).(\lambda (H21: (eq C d x1)).(let H22 \def (eq_ind_r T x3 (\lambda (t: 
@@ -665,38 +650,37 @@ nat).(csubst0 n u0 c c2)) H8 i H9) in (let H12 \def (eq_ind_r nat i0 (\lambda
 (eq_ind C (CHead d (Bind Abst) u) (\lambda (c0: C).(getl i c c0)) H0 (CHead 
 d1 (Bind Abbr) u0) (getl_mono c (CHead d (Bind Abst) u) i H0 (CHead d1 (Bind 
 Abbr) u0) H12)) in (let H14 \def (eq_ind C (CHead d (Bind Abst) u) (\lambda 
-(ee: C).(match ee in C return (\lambda (_: C).Prop) with [(CSort _) 
-\Rightarrow False | (CHead _ k _) \Rightarrow (match k in K return (\lambda 
-(_: K).Prop) with [(Bind b) \Rightarrow (match b in B return (\lambda (_: 
-B).Prop) with [Abbr \Rightarrow False | Abst \Rightarrow True | Void 
-\Rightarrow False]) | (Flat _) \Rightarrow False])])) I (CHead d1 (Bind Abbr) 
-u0) (getl_mono c (CHead d (Bind Abst) u) i H0 (CHead d1 (Bind Abbr) u0) H12)) 
-in (False_ind (arity g c2 (lift (S i) O u0) a0) H14))))) t2 H10))) 
-(subst0_gen_lref u0 t2 i0 i H7)))) H6)) H5)))))))))))))))))) (\lambda (b: 
-B).(\lambda (H0: (not (eq B b Abst))).(\lambda (c: C).(\lambda (u: 
-T).(\lambda (a1: A).(\lambda (H1: (arity g c u a1)).(\lambda (H2: ((\forall 
-(d1: C).(\forall (u0: T).(\forall (i: nat).((getl i c (CHead d1 (Bind Abbr) 
-u0)) \to (\forall (c2: C).(\forall (t2: T).((fsubst0 i u0 c u c2 t2) \to 
-(arity g c2 t2 a1)))))))))).(\lambda (t: T).(\lambda (a2: A).(\lambda (_: 
-(arity g (CHead c (Bind b) u) t a2)).(\lambda (H4: ((\forall (d1: C).(\forall 
-(u0: T).(\forall (i: nat).((getl i (CHead c (Bind b) u) (CHead d1 (Bind Abbr) 
-u0)) \to (\forall (c2: C).(\forall (t2: T).((fsubst0 i u0 (CHead c (Bind b) 
-u) t c2 t2) \to (arity g c2 t2 a2)))))))))).(\lambda (d1: C).(\lambda (u0: 
-T).(\lambda (i: nat).(\lambda (H5: (getl i c (CHead d1 (Bind Abbr) 
-u0))).(\lambda (c2: C).(\lambda (t2: T).(\lambda (H6: (fsubst0 i u0 c (THead 
-(Bind b) u t) c2 t2)).(let H_x \def (fsubst0_gen_base c c2 (THead (Bind b) u 
-t) t2 u0 i H6) in (let H7 \def H_x in (or3_ind (land (eq C c c2) (subst0 i u0 
-(THead (Bind b) u t) t2)) (land (eq T (THead (Bind b) u t) t2) (csubst0 i u0 
-c c2)) (land (subst0 i u0 (THead (Bind b) u t) t2) (csubst0 i u0 c c2)) 
-(arity g c2 t2 a2) (\lambda (H8: (land (eq C c c2) (subst0 i u0 (THead (Bind 
-b) u t) t2))).(land_ind (eq C c c2) (subst0 i u0 (THead (Bind b) u t) t2) 
-(arity g c2 t2 a2) (\lambda (H9: (eq C c c2)).(\lambda (H10: (subst0 i u0 
-(THead (Bind b) u t) t2)).(eq_ind C c (\lambda (c0: C).(arity g c0 t2 a2)) 
-(or3_ind (ex2 T (\lambda (u2: T).(eq T t2 (THead (Bind b) u2 t))) (\lambda 
-(u2: T).(subst0 i u0 u u2))) (ex2 T (\lambda (t3: T).(eq T t2 (THead (Bind b) 
-u t3))) (\lambda (t3: T).(subst0 (s (Bind b) i) u0 t t3))) (ex3_2 T T 
-(\lambda (u2: T).(\lambda (t3: T).(eq T t2 (THead (Bind b) u2 t3)))) (\lambda 
-(u2: T).(\lambda (_: T).(subst0 i u0 u u2))) (\lambda (_: T).(\lambda (t3: 
+(ee: C).(match ee with [(CSort _) \Rightarrow False | (CHead _ k _) 
+\Rightarrow (match k with [(Bind b) \Rightarrow (match b with [Abbr 
+\Rightarrow False | Abst \Rightarrow True | Void \Rightarrow False]) | (Flat 
+_) \Rightarrow False])])) I (CHead d1 (Bind Abbr) u0) (getl_mono c (CHead d 
+(Bind Abst) u) i H0 (CHead d1 (Bind Abbr) u0) H12)) in (False_ind (arity g c2 
+(lift (S i) O u0) a0) H14))))) t2 H10))) (subst0_gen_lref u0 t2 i0 i H7)))) 
+H6)) H5)))))))))))))))))) (\lambda (b: B).(\lambda (H0: (not (eq B b 
+Abst))).(\lambda (c: C).(\lambda (u: T).(\lambda (a1: A).(\lambda (H1: (arity 
+g c u a1)).(\lambda (H2: ((\forall (d1: C).(\forall (u0: T).(\forall (i: 
+nat).((getl i c (CHead d1 (Bind Abbr) u0)) \to (\forall (c2: C).(\forall (t2: 
+T).((fsubst0 i u0 c u c2 t2) \to (arity g c2 t2 a1)))))))))).(\lambda (t: 
+T).(\lambda (a2: A).(\lambda (_: (arity g (CHead c (Bind b) u) t 
+a2)).(\lambda (H4: ((\forall (d1: C).(\forall (u0: T).(\forall (i: 
+nat).((getl i (CHead c (Bind b) u) (CHead d1 (Bind Abbr) u0)) \to (\forall 
+(c2: C).(\forall (t2: T).((fsubst0 i u0 (CHead c (Bind b) u) t c2 t2) \to 
+(arity g c2 t2 a2)))))))))).(\lambda (d1: C).(\lambda (u0: T).(\lambda (i: 
+nat).(\lambda (H5: (getl i c (CHead d1 (Bind Abbr) u0))).(\lambda (c2: 
+C).(\lambda (t2: T).(\lambda (H6: (fsubst0 i u0 c (THead (Bind b) u t) c2 
+t2)).(let H_x \def (fsubst0_gen_base c c2 (THead (Bind b) u t) t2 u0 i H6) in 
+(let H7 \def H_x in (or3_ind (land (eq C c c2) (subst0 i u0 (THead (Bind b) u 
+t) t2)) (land (eq T (THead (Bind b) u t) t2) (csubst0 i u0 c c2)) (land 
+(subst0 i u0 (THead (Bind b) u t) t2) (csubst0 i u0 c c2)) (arity g c2 t2 a2) 
+(\lambda (H8: (land (eq C c c2) (subst0 i u0 (THead (Bind b) u t) 
+t2))).(land_ind (eq C c c2) (subst0 i u0 (THead (Bind b) u t) t2) (arity g c2 
+t2 a2) (\lambda (H9: (eq C c c2)).(\lambda (H10: (subst0 i u0 (THead (Bind b) 
+u t) t2)).(eq_ind C c (\lambda (c0: C).(arity g c0 t2 a2)) (or3_ind (ex2 T 
+(\lambda (u2: T).(eq T t2 (THead (Bind b) u2 t))) (\lambda (u2: T).(subst0 i 
+u0 u u2))) (ex2 T (\lambda (t3: T).(eq T t2 (THead (Bind b) u t3))) (\lambda 
+(t3: T).(subst0 (s (Bind b) i) u0 t t3))) (ex3_2 T T (\lambda (u2: 
+T).(\lambda (t3: T).(eq T t2 (THead (Bind b) u2 t3)))) (\lambda (u2: 
+T).(\lambda (_: T).(subst0 i u0 u u2))) (\lambda (_: T).(\lambda (t3: 
 T).(subst0 (s (Bind b) i) u0 t t3)))) (arity g c t2 a2) (\lambda (H11: (ex2 T 
 (\lambda (u2: T).(eq T t2 (THead (Bind b) u2 t))) (\lambda (u2: T).(subst0 i 
 u0 u u2)))).(ex2_ind T (\lambda (u2: T).(eq T t2 (THead (Bind b) u2 t))) 
@@ -1116,9 +1100,6 @@ c c2))).(land_ind (subst0 i u t t2) (csubst0 i u c c2) (arity g c2 t2 a2)
 (\lambda (H7: (subst0 i u t t2)).(\lambda (H8: (csubst0 i u c 
 c2)).(arity_repl g c2 t2 a1 (H1 d1 u i H3 c2 t2 (fsubst0_both i u c t t2 H7 
 c2 H8)) a2 H2))) H6)) H5))))))))))))))))) c1 t1 a H))))).
-(* COMMENTS
-Initial nodes: 20387
-END *)
 
 theorem arity_subst0:
  \forall (g: G).(\forall (c: C).(\forall (t1: T).(\forall (a: A).((arity g c 
@@ -1131,7 +1112,4 @@ a)))))))))))
 (H0: (getl i c (CHead d (Bind Abbr) u))).(\lambda (t2: T).(\lambda (H1: 
 (subst0 i u t1 t2)).(arity_fsubst0 g c t1 a H d u i H0 c t2 (fsubst0_snd i u 
 c t1 t2 H1)))))))))))).
-(* COMMENTS
-Initial nodes: 89
-END *)
 
index fe021cd0f3d05df8f88e29a6a0056ce28164e531..3307ed325525590e7a8bb618721f524f97d3f635 100644 (file)
 
 (* This file was automatically generated: do not edit *********************)
 
-include "Basic-1/csuba/getl.ma".
+include "basic_1/csuba/getl.ma".
 
-include "Basic-1/csuba/props.ma".
+include "basic_1/csuba/props.ma".
 
-include "Basic-1/arity/props.ma".
+include "basic_1/arity/fwd.ma".
 
-include "Basic-1/csubv/getl.ma".
+include "basic_1/csubv/getl.ma".
 
 theorem csuba_arity:
  \forall (g: G).(\forall (c1: C).(\forall (t: T).(\forall (a: A).((arity g c1 
 t a) \to (\forall (c2: C).((csuba g c1 c2) \to (arity g c2 t a)))))))
 \def
  \lambda (g: G).(\lambda (c1: C).(\lambda (t: T).(\lambda (a: A).(\lambda (H: 
-(arity g c1 t a)).(arity_ind g (\lambda (c: C).(\lambda (t0: T).(\lambda (a0: 
-A).(\forall (c2: C).((csuba g c c2) \to (arity g c2 t0 a0)))))) (\lambda (c: 
-C).(\lambda (n: nat).(\lambda (c2: C).(\lambda (_: (csuba g c 
-c2)).(arity_sort g c2 n))))) (\lambda (c: C).(\lambda (d: C).(\lambda (u: 
-T).(\lambda (i: nat).(\lambda (H0: (getl i c (CHead d (Bind Abbr) 
-u))).(\lambda (a0: A).(\lambda (_: (arity g d u a0)).(\lambda (H2: ((\forall 
-(c2: C).((csuba g d c2) \to (arity g c2 u a0))))).(\lambda (c2: C).(\lambda 
-(H3: (csuba g c c2)).(let H4 \def (csuba_getl_abbr g c d u i H0 c2 H3) in 
-(ex2_ind C (\lambda (d2: C).(getl i c2 (CHead d2 (Bind Abbr) u))) (\lambda 
-(d2: C).(csuba g d d2)) (arity g c2 (TLRef i) a0) (\lambda (x: C).(\lambda 
-(H5: (getl i c2 (CHead x (Bind Abbr) u))).(\lambda (H6: (csuba g d 
-x)).(arity_abbr g c2 x u i H5 a0 (H2 x H6))))) H4)))))))))))) (\lambda (c: 
+(arity g c1 t a)).(let TMP_1 \def (\lambda (c: C).(\lambda (t0: T).(\lambda 
+(a0: A).(\forall (c2: C).((csuba g c c2) \to (arity g c2 t0 a0)))))) in (let 
+TMP_2 \def (\lambda (c: C).(\lambda (n: nat).(\lambda (c2: C).(\lambda (_: 
+(csuba g c c2)).(arity_sort g c2 n))))) in (let TMP_11 \def (\lambda (c: 
 C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: nat).(\lambda (H0: (getl i c 
-(CHead d (Bind Abst) u))).(\lambda (a0: A).(\lambda (H1: (arity g d u (asucc 
-g a0))).(\lambda (H2: ((\forall (c2: C).((csuba g d c2) \to (arity g c2 u 
-(asucc g a0)))))).(\lambda (c2: C).(\lambda (H3: (csuba g c c2)).(let H4 \def 
-(csuba_getl_abst g c d u i H0 c2 H3) in (or_ind (ex2 C (\lambda (d2: C).(getl 
-i c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d d2))) (ex4_3 C T 
-A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(getl i c2 (CHead d2 
-(Bind Abbr) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g 
-d d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a1: A).(arity g d u (asucc 
-g a1))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a1: A).(arity g d2 u2 
-a1))))) (arity g c2 (TLRef i) a0) (\lambda (H5: (ex2 C (\lambda (d2: C).(getl 
-i c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d d2)))).(ex2_ind C 
-(\lambda (d2: C).(getl i c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: 
-C).(csuba g d d2)) (arity g c2 (TLRef i) a0) (\lambda (x: C).(\lambda (H6: 
-(getl i c2 (CHead x (Bind Abst) u))).(\lambda (H7: (csuba g d x)).(arity_abst 
-g c2 x u i H6 a0 (H2 x H7))))) H5)) (\lambda (H5: (ex4_3 C T A (\lambda (d2: 
-C).(\lambda (u2: T).(\lambda (_: A).(getl i c2 (CHead d2 (Bind Abbr) u2))))) 
-(\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d d2)))) (\lambda 
-(_: C).(\lambda (_: T).(\lambda (a1: A).(arity g d u (asucc g a1))))) 
-(\lambda (d2: C).(\lambda (u2: T).(\lambda (a1: A).(arity g d2 u2 
-a1)))))).(ex4_3_ind C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: 
-A).(getl i c2 (CHead d2 (Bind Abbr) u2))))) (\lambda (d2: C).(\lambda (_: 
-T).(\lambda (_: A).(csuba g d d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda 
-(a1: A).(arity g d u (asucc g a1))))) (\lambda (d2: C).(\lambda (u2: 
-T).(\lambda (a1: A).(arity g d2 u2 a1)))) (arity g c2 (TLRef i) a0) (\lambda 
-(x0: C).(\lambda (x1: T).(\lambda (x2: A).(\lambda (H6: (getl i c2 (CHead x0 
-(Bind Abbr) x1))).(\lambda (_: (csuba g d x0)).(\lambda (H8: (arity g d u 
-(asucc g x2))).(\lambda (H9: (arity g x0 x1 x2)).(arity_repl g c2 (TLRef i) 
-x2 (arity_abbr g c2 x0 x1 i H6 x2 H9) a0 (asucc_inj g x2 a0 (arity_mono g d u 
-(asucc g x2) H8 (asucc g a0) H1)))))))))) H5)) H4)))))))))))) (\lambda (b: 
-B).(\lambda (H0: (not (eq B b Abst))).(\lambda (c: C).(\lambda (u: 
-T).(\lambda (a1: A).(\lambda (_: (arity g c u a1)).(\lambda (H2: ((\forall 
-(c2: C).((csuba g c c2) \to (arity g c2 u a1))))).(\lambda (t0: T).(\lambda 
-(a2: A).(\lambda (_: (arity g (CHead c (Bind b) u) t0 a2)).(\lambda (H4: 
-((\forall (c2: C).((csuba g (CHead c (Bind b) u) c2) \to (arity g c2 t0 
-a2))))).(\lambda (c2: C).(\lambda (H5: (csuba g c c2)).(arity_bind g b H0 c2 
-u a1 (H2 c2 H5) t0 a2 (H4 (CHead c2 (Bind b) u) (csuba_head g c c2 H5 (Bind 
-b) u)))))))))))))))) (\lambda (c: C).(\lambda (u: T).(\lambda (a1: 
-A).(\lambda (_: (arity g c u (asucc g a1))).(\lambda (H1: ((\forall (c2: 
-C).((csuba g c c2) \to (arity g c2 u (asucc g a1)))))).(\lambda (t0: 
-T).(\lambda (a2: A).(\lambda (_: (arity g (CHead c (Bind Abst) u) t0 
-a2)).(\lambda (H3: ((\forall (c2: C).((csuba g (CHead c (Bind Abst) u) c2) 
-\to (arity g c2 t0 a2))))).(\lambda (c2: C).(\lambda (H4: (csuba g c 
-c2)).(arity_head g c2 u a1 (H1 c2 H4) t0 a2 (H3 (CHead c2 (Bind Abst) u) 
-(csuba_head g c c2 H4 (Bind Abst) u)))))))))))))) (\lambda (c: C).(\lambda 
-(u: T).(\lambda (a1: A).(\lambda (_: (arity g c u a1)).(\lambda (H1: 
+(CHead d (Bind Abbr) u))).(\lambda (a0: A).(\lambda (_: (arity g d u 
+a0)).(\lambda (H2: ((\forall (c2: C).((csuba g d c2) \to (arity g c2 u 
+a0))))).(\lambda (c2: C).(\lambda (H3: (csuba g c c2)).(let H4 \def 
+(csuba_getl_abbr g c d u i H0 c2 H3) in (let TMP_5 \def (\lambda (d2: C).(let 
+TMP_3 \def (Bind Abbr) in (let TMP_4 \def (CHead d2 TMP_3 u) in (getl i c2 
+TMP_4)))) in (let TMP_6 \def (\lambda (d2: C).(csuba g d d2)) in (let TMP_7 
+\def (TLRef i) in (let TMP_8 \def (arity g c2 TMP_7 a0) in (let TMP_10 \def 
+(\lambda (x: C).(\lambda (H5: (getl i c2 (CHead x (Bind Abbr) u))).(\lambda 
+(H6: (csuba g d x)).(let TMP_9 \def (H2 x H6) in (arity_abbr g c2 x u i H5 a0 
+TMP_9))))) in (ex2_ind C TMP_5 TMP_6 TMP_8 TMP_10 H4))))))))))))))))) in (let 
+TMP_53 \def (\lambda (c: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: 
+nat).(\lambda (H0: (getl i c (CHead d (Bind Abst) u))).(\lambda (a0: 
+A).(\lambda (H1: (arity g d u (asucc g a0))).(\lambda (H2: ((\forall (c2: 
+C).((csuba g d c2) \to (arity g c2 u (asucc g a0)))))).(\lambda (c2: 
+C).(\lambda (H3: (csuba g c c2)).(let H4 \def (csuba_getl_abst g c d u i H0 
+c2 H3) in (let TMP_14 \def (\lambda (d2: C).(let TMP_12 \def (Bind Abst) in 
+(let TMP_13 \def (CHead d2 TMP_12 u) in (getl i c2 TMP_13)))) in (let TMP_15 
+\def (\lambda (d2: C).(csuba g d d2)) in (let TMP_16 \def (ex2 C TMP_14 
+TMP_15) in (let TMP_19 \def (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: 
+A).(let TMP_17 \def (Bind Abbr) in (let TMP_18 \def (CHead d2 TMP_17 u2) in 
+(getl i c2 TMP_18)))))) in (let TMP_20 \def (\lambda (d2: C).(\lambda (_: 
+T).(\lambda (_: A).(csuba g d d2)))) in (let TMP_22 \def (\lambda (_: 
+C).(\lambda (_: T).(\lambda (a1: A).(let TMP_21 \def (asucc g a1) in (arity g 
+d u TMP_21))))) in (let TMP_23 \def (\lambda (d2: C).(\lambda (u2: 
+T).(\lambda (a1: A).(arity g d2 u2 a1)))) in (let TMP_24 \def (ex4_3 C T A 
+TMP_19 TMP_20 TMP_22 TMP_23) in (let TMP_25 \def (TLRef i) in (let TMP_26 
+\def (arity g c2 TMP_25 a0) in (let TMP_35 \def (\lambda (H5: (ex2 C (\lambda 
+(d2: C).(getl i c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d 
+d2)))).(let TMP_29 \def (\lambda (d2: C).(let TMP_27 \def (Bind Abst) in (let 
+TMP_28 \def (CHead d2 TMP_27 u) in (getl i c2 TMP_28)))) in (let TMP_30 \def 
+(\lambda (d2: C).(csuba g d d2)) in (let TMP_31 \def (TLRef i) in (let TMP_32 
+\def (arity g c2 TMP_31 a0) in (let TMP_34 \def (\lambda (x: C).(\lambda (H6: 
+(getl i c2 (CHead x (Bind Abst) u))).(\lambda (H7: (csuba g d x)).(let TMP_33 
+\def (H2 x H7) in (arity_abst g c2 x u i H6 a0 TMP_33))))) in (ex2_ind C 
+TMP_29 TMP_30 TMP_32 TMP_34 H5))))))) in (let TMP_52 \def (\lambda (H5: 
+(ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(getl i c2 
+(CHead d2 (Bind Abbr) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: 
+A).(csuba g d d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a1: A).(arity 
+g d u (asucc g a1))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a1: 
+A).(arity g d2 u2 a1)))))).(let TMP_38 \def (\lambda (d2: C).(\lambda (u2: 
+T).(\lambda (_: A).(let TMP_36 \def (Bind Abbr) in (let TMP_37 \def (CHead d2 
+TMP_36 u2) in (getl i c2 TMP_37)))))) in (let TMP_39 \def (\lambda (d2: 
+C).(\lambda (_: T).(\lambda (_: A).(csuba g d d2)))) in (let TMP_41 \def 
+(\lambda (_: C).(\lambda (_: T).(\lambda (a1: A).(let TMP_40 \def (asucc g 
+a1) in (arity g d u TMP_40))))) in (let TMP_42 \def (\lambda (d2: C).(\lambda 
+(u2: T).(\lambda (a1: A).(arity g d2 u2 a1)))) in (let TMP_43 \def (TLRef i) 
+in (let TMP_44 \def (arity g c2 TMP_43 a0) in (let TMP_51 \def (\lambda (x0: 
+C).(\lambda (x1: T).(\lambda (x2: A).(\lambda (H6: (getl i c2 (CHead x0 (Bind 
+Abbr) x1))).(\lambda (_: (csuba g d x0)).(\lambda (H8: (arity g d u (asucc g 
+x2))).(\lambda (H9: (arity g x0 x1 x2)).(let TMP_45 \def (TLRef i) in (let 
+TMP_46 \def (arity_abbr g c2 x0 x1 i H6 x2 H9) in (let TMP_47 \def (asucc g 
+x2) in (let TMP_48 \def (asucc g a0) in (let TMP_49 \def (arity_mono g d u 
+TMP_47 H8 TMP_48 H1) in (let TMP_50 \def (asucc_inj g x2 a0 TMP_49) in 
+(arity_repl g c2 TMP_45 x2 TMP_46 a0 TMP_50)))))))))))))) in (ex4_3_ind C T A 
+TMP_38 TMP_39 TMP_41 TMP_42 TMP_44 TMP_51 H5))))))))) in (or_ind TMP_16 
+TMP_24 TMP_26 TMP_35 TMP_52 H4)))))))))))))))))))))))) in (let TMP_60 \def 
+(\lambda (b: B).(\lambda (H0: (not (eq B b Abst))).(\lambda (c: C).(\lambda 
+(u: T).(\lambda (a1: A).(\lambda (_: (arity g c u a1)).(\lambda (H2: 
 ((\forall (c2: C).((csuba g c c2) \to (arity g c2 u a1))))).(\lambda (t0: 
-T).(\lambda (a2: A).(\lambda (_: (arity g c t0 (AHead a1 a2))).(\lambda (H3: 
-((\forall (c2: C).((csuba g c c2) \to (arity g c2 t0 (AHead a1 
-a2)))))).(\lambda (c2: C).(\lambda (H4: (csuba g c c2)).(arity_appl g c2 u a1 
-(H1 c2 H4) t0 a2 (H3 c2 H4))))))))))))) (\lambda (c: C).(\lambda (u: 
+T).(\lambda (a2: A).(\lambda (_: (arity g (CHead c (Bind b) u) t0 
+a2)).(\lambda (H4: ((\forall (c2: C).((csuba g (CHead c (Bind b) u) c2) \to 
+(arity g c2 t0 a2))))).(\lambda (c2: C).(\lambda (H5: (csuba g c c2)).(let 
+TMP_54 \def (H2 c2 H5) in (let TMP_55 \def (Bind b) in (let TMP_56 \def 
+(CHead c2 TMP_55 u) in (let TMP_57 \def (Bind b) in (let TMP_58 \def 
+(csuba_head g c c2 H5 TMP_57 u) in (let TMP_59 \def (H4 TMP_56 TMP_58) in 
+(arity_bind g b H0 c2 u a1 TMP_54 t0 a2 TMP_59)))))))))))))))))))) in (let 
+TMP_67 \def (\lambda (c: C).(\lambda (u: T).(\lambda (a1: A).(\lambda (_: 
+(arity g c u (asucc g a1))).(\lambda (H1: ((\forall (c2: C).((csuba g c c2) 
+\to (arity g c2 u (asucc g a1)))))).(\lambda (t0: T).(\lambda (a2: 
+A).(\lambda (_: (arity g (CHead c (Bind Abst) u) t0 a2)).(\lambda (H3: 
+((\forall (c2: C).((csuba g (CHead c (Bind Abst) u) c2) \to (arity g c2 t0 
+a2))))).(\lambda (c2: C).(\lambda (H4: (csuba g c c2)).(let TMP_61 \def (H1 
+c2 H4) in (let TMP_62 \def (Bind Abst) in (let TMP_63 \def (CHead c2 TMP_62 
+u) in (let TMP_64 \def (Bind Abst) in (let TMP_65 \def (csuba_head g c c2 H4 
+TMP_64 u) in (let TMP_66 \def (H3 TMP_63 TMP_65) in (arity_head g c2 u a1 
+TMP_61 t0 a2 TMP_66)))))))))))))))))) in (let TMP_70 \def (\lambda (c: 
+C).(\lambda (u: T).(\lambda (a1: A).(\lambda (_: (arity g c u a1)).(\lambda 
+(H1: ((\forall (c2: C).((csuba g c c2) \to (arity g c2 u a1))))).(\lambda 
+(t0: T).(\lambda (a2: A).(\lambda (_: (arity g c t0 (AHead a1 a2))).(\lambda 
+(H3: ((\forall (c2: C).((csuba g c c2) \to (arity g c2 t0 (AHead a1 
+a2)))))).(\lambda (c2: C).(\lambda (H4: (csuba g c c2)).(let TMP_68 \def (H1 
+c2 H4) in (let TMP_69 \def (H3 c2 H4) in (arity_appl g c2 u a1 TMP_68 t0 a2 
+TMP_69)))))))))))))) in (let TMP_73 \def (\lambda (c: C).(\lambda (u: 
 T).(\lambda (a0: A).(\lambda (_: (arity g c u (asucc g a0))).(\lambda (H1: 
 ((\forall (c2: C).((csuba g c c2) \to (arity g c2 u (asucc g 
 a0)))))).(\lambda (t0: T).(\lambda (_: (arity g c t0 a0)).(\lambda (H3: 
 ((\forall (c2: C).((csuba g c c2) \to (arity g c2 t0 a0))))).(\lambda (c2: 
-C).(\lambda (H4: (csuba g c c2)).(arity_cast g c2 u a0 (H1 c2 H4) t0 (H3 c2 
-H4)))))))))))) (\lambda (c: C).(\lambda (t0: T).(\lambda (a1: A).(\lambda (_: 
-(arity g c t0 a1)).(\lambda (H1: ((\forall (c2: C).((csuba g c c2) \to (arity 
-g c2 t0 a1))))).(\lambda (a2: A).(\lambda (H2: (leq g a1 a2)).(\lambda (c2: 
-C).(\lambda (H3: (csuba g c c2)).(arity_repl g c2 t0 a1 (H1 c2 H3) a2 
-H2)))))))))) c1 t a H))))).
-(* COMMENTS
-Initial nodes: 1505
-END *)
+C).(\lambda (H4: (csuba g c c2)).(let TMP_71 \def (H1 c2 H4) in (let TMP_72 
+\def (H3 c2 H4) in (arity_cast g c2 u a0 TMP_71 t0 TMP_72))))))))))))) in 
+(let TMP_75 \def (\lambda (c: C).(\lambda (t0: T).(\lambda (a1: A).(\lambda 
+(_: (arity g c t0 a1)).(\lambda (H1: ((\forall (c2: C).((csuba g c c2) \to 
+(arity g c2 t0 a1))))).(\lambda (a2: A).(\lambda (H2: (leq g a1 a2)).(\lambda 
+(c2: C).(\lambda (H3: (csuba g c c2)).(let TMP_74 \def (H1 c2 H3) in 
+(arity_repl g c2 t0 a1 TMP_74 a2 H2))))))))))) in (arity_ind g TMP_1 TMP_2 
+TMP_11 TMP_53 TMP_60 TMP_67 TMP_70 TMP_73 TMP_75 c1 t a H)))))))))))))).
 
 theorem csuba_arity_rev:
  \forall (g: G).(\forall (c1: C).(\forall (t: T).(\forall (a: A).((arity g c1 
@@ -110,189 +134,291 @@ t a) \to (\forall (c2: C).((csuba g c2 c1) \to ((csubv c2 c1) \to (arity g c2
 t a))))))))
 \def
  \lambda (g: G).(\lambda (c1: C).(\lambda (t: T).(\lambda (a: A).(\lambda (H: 
-(arity g c1 t a)).(arity_ind g (\lambda (c: C).(\lambda (t0: T).(\lambda (a0: 
-A).(\forall (c2: C).((csuba g c2 c) \to ((csubv c2 c) \to (arity g c2 t0 
-a0))))))) (\lambda (c: C).(\lambda (n: nat).(\lambda (c2: C).(\lambda (_: 
-(csuba g c2 c)).(\lambda (_: (csubv c2 c)).(arity_sort g c2 n)))))) (\lambda 
-(c: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: nat).(\lambda (H0: (getl 
-i c (CHead d (Bind Abbr) u))).(\lambda (a0: A).(\lambda (H1: (arity g d u 
-a0)).(\lambda (H2: ((\forall (c2: C).((csuba g c2 d) \to ((csubv c2 d) \to 
-(arity g c2 u a0)))))).(\lambda (c2: C).(\lambda (H3: (csuba g c2 
-c)).(\lambda (H4: (csubv c2 c)).(let H_x \def (csuba_getl_abbr_rev g c d u i 
-H0 c2 H3) in (let H5 \def H_x in (or3_ind (ex2 C (\lambda (d2: C).(getl i c2 
-(CHead d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d2 d))) (ex4_3 C T A 
-(\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(getl i c2 (CHead d2 (Bind 
-Abst) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 
-d)))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a1: A).(arity g d2 u2 
-(asucc g a1))))) (\lambda (_: C).(\lambda (_: T).(\lambda (a1: A).(arity g d 
-u a1))))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(getl i c2 (CHead d2 
-(Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d)))) (arity 
-g c2 (TLRef i) a0) (\lambda (H6: (ex2 C (\lambda (d2: C).(getl i c2 (CHead d2 
-(Bind Abbr) u))) (\lambda (d2: C).(csuba g d2 d)))).(ex2_ind C (\lambda (d2: 
-C).(getl i c2 (CHead d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d2 d)) 
-(arity g c2 (TLRef i) a0) (\lambda (x: C).(\lambda (H7: (getl i c2 (CHead x 
-(Bind Abbr) u))).(\lambda (H8: (csuba g x d)).(let H_x0 \def (csubv_getl_conf 
-c2 c H4 Abbr x u i H7) in (let H9 \def H_x0 in (ex2_3_ind B C T (\lambda (_: 
-B).(\lambda (d2: C).(\lambda (_: T).(csubv x d2)))) (\lambda (b2: B).(\lambda 
-(d2: C).(\lambda (v2: T).(getl i c (CHead d2 (Bind b2) v2))))) (arity g c2 
-(TLRef i) a0) (\lambda (x0: B).(\lambda (x1: C).(\lambda (x2: T).(\lambda 
-(H10: (csubv x x1)).(\lambda (H11: (getl i c (CHead x1 (Bind x0) x2))).(let 
-H12 \def (eq_ind C (CHead d (Bind Abbr) u) (\lambda (c0: C).(getl i c c0)) H0 
-(CHead x1 (Bind x0) x2) (getl_mono c (CHead d (Bind Abbr) u) i H0 (CHead x1 
-(Bind x0) x2) H11)) in (let H13 \def (f_equal C C (\lambda (e: C).(match e in 
-C return (\lambda (_: C).C) with [(CSort _) \Rightarrow d | (CHead c0 _ _) 
-\Rightarrow c0])) (CHead d (Bind Abbr) u) (CHead x1 (Bind x0) x2) (getl_mono 
-c (CHead d (Bind Abbr) u) i H0 (CHead x1 (Bind x0) x2) H11)) in ((let H14 
-\def (f_equal C B (\lambda (e: C).(match e in C return (\lambda (_: C).B) 
-with [(CSort _) \Rightarrow Abbr | (CHead _ k _) \Rightarrow (match k in K 
-return (\lambda (_: K).B) with [(Bind b) \Rightarrow b | (Flat _) \Rightarrow 
-Abbr])])) (CHead d (Bind Abbr) u) (CHead x1 (Bind x0) x2) (getl_mono c (CHead 
-d (Bind Abbr) u) i H0 (CHead x1 (Bind x0) x2) H11)) in ((let H15 \def 
-(f_equal C T (\lambda (e: C).(match e in C return (\lambda (_: C).T) with 
-[(CSort _) \Rightarrow u | (CHead _ _ t0) \Rightarrow t0])) (CHead d (Bind 
-Abbr) u) (CHead x1 (Bind x0) x2) (getl_mono c (CHead d (Bind Abbr) u) i H0 
-(CHead x1 (Bind x0) x2) H11)) in (\lambda (H16: (eq B Abbr x0)).(\lambda 
-(H17: (eq C d x1)).(let H18 \def (eq_ind_r T x2 (\lambda (t0: T).(getl i c 
-(CHead x1 (Bind x0) t0))) H12 u H15) in (let H19 \def (eq_ind_r C x1 (\lambda 
-(c0: C).(getl i c (CHead c0 (Bind x0) u))) H18 d H17) in (let H20 \def 
-(eq_ind_r C x1 (\lambda (c0: C).(csubv x c0)) H10 d H17) in (let H21 \def 
-(eq_ind_r B x0 (\lambda (b: B).(getl i c (CHead d (Bind b) u))) H19 Abbr H16) 
-in (arity_abbr g c2 x u i H7 a0 (H2 x H8 H20))))))))) H14)) H13)))))))) 
-H9)))))) H6)) (\lambda (H6: (ex4_3 C T A (\lambda (d2: C).(\lambda (u2: 
-T).(\lambda (_: A).(getl i c2 (CHead d2 (Bind Abst) u2))))) (\lambda (d2: 
-C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 d)))) (\lambda (d2: 
-C).(\lambda (u2: T).(\lambda (a1: A).(arity g d2 u2 (asucc g a1))))) (\lambda 
-(_: C).(\lambda (_: T).(\lambda (a1: A).(arity g d u a1)))))).(ex4_3_ind C T 
-A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(getl i c2 (CHead d2 
-(Bind Abst) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g 
-d2 d)))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a1: A).(arity g d2 u2 
-(asucc g a1))))) (\lambda (_: C).(\lambda (_: T).(\lambda (a1: A).(arity g d 
-u a1)))) (arity g c2 (TLRef i) a0) (\lambda (x0: C).(\lambda (x1: T).(\lambda 
-(x2: A).(\lambda (H7: (getl i c2 (CHead x0 (Bind Abst) x1))).(\lambda (_: 
-(csuba g x0 d)).(\lambda (H9: (arity g x0 x1 (asucc g x2))).(\lambda (H10: 
-(arity g d u x2)).(arity_repl g c2 (TLRef i) x2 (arity_abst g c2 x0 x1 i H7 
-x2 H9) a0 (arity_mono g d u x2 H10 a0 H1))))))))) H6)) (\lambda (H6: (ex2_2 C 
-T (\lambda (d2: C).(\lambda (u2: T).(getl i c2 (CHead d2 (Bind Void) u2)))) 
-(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d))))).(ex2_2_ind C T (\lambda 
-(d2: C).(\lambda (u2: T).(getl i c2 (CHead d2 (Bind Void) u2)))) (\lambda 
-(d2: C).(\lambda (_: T).(csuba g d2 d))) (arity g c2 (TLRef i) a0) (\lambda 
-(x0: C).(\lambda (x1: T).(\lambda (H7: (getl i c2 (CHead x0 (Bind Void) 
-x1))).(\lambda (_: (csuba g x0 d)).(let H_x0 \def (csubv_getl_conf_void c2 c 
-H4 x0 x1 i H7) in (let H9 \def H_x0 in (ex2_2_ind C T (\lambda (d2: 
-C).(\lambda (_: T).(csubv x0 d2))) (\lambda (d2: C).(\lambda (v2: T).(getl i 
-c (CHead d2 (Bind Void) v2)))) (arity g c2 (TLRef i) a0) (\lambda (x2: 
-C).(\lambda (x3: T).(\lambda (_: (csubv x0 x2)).(\lambda (H11: (getl i c 
-(CHead x2 (Bind Void) x3))).(let H12 \def (eq_ind C (CHead d (Bind Abbr) u) 
-(\lambda (c0: C).(getl i c c0)) H0 (CHead x2 (Bind Void) x3) (getl_mono c 
-(CHead d (Bind Abbr) u) i H0 (CHead x2 (Bind Void) x3) H11)) in (let H13 \def 
-(eq_ind C (CHead d (Bind Abbr) u) (\lambda (ee: C).(match ee in C return 
-(\lambda (_: C).Prop) with [(CSort _) \Rightarrow False | (CHead _ k _) 
-\Rightarrow (match k in K return (\lambda (_: K).Prop) with [(Bind b) 
-\Rightarrow (match b in B return (\lambda (_: B).Prop) with [Abbr \Rightarrow 
-True | Abst \Rightarrow False | Void \Rightarrow False]) | (Flat _) 
-\Rightarrow False])])) I (CHead x2 (Bind Void) x3) (getl_mono c (CHead d 
-(Bind Abbr) u) i H0 (CHead x2 (Bind Void) x3) H11)) in (False_ind (arity g c2 
-(TLRef i) a0) H13))))))) H9))))))) H6)) H5)))))))))))))) (\lambda (c: 
-C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: nat).(\lambda (H0: (getl i c 
-(CHead d (Bind Abst) u))).(\lambda (a0: A).(\lambda (_: (arity g d u (asucc g 
-a0))).(\lambda (H2: ((\forall (c2: C).((csuba g c2 d) \to ((csubv c2 d) \to 
-(arity g c2 u (asucc g a0))))))).(\lambda (c2: C).(\lambda (H3: (csuba g c2 
-c)).(\lambda (H4: (csubv c2 c)).(let H_x \def (csuba_getl_abst_rev g c d u i 
-H0 c2 H3) in (let H5 \def H_x in (or_ind (ex2 C (\lambda (d2: C).(getl i c2 
-(CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d))) (ex2_2 C T 
+(arity g c1 t a)).(let TMP_1 \def (\lambda (c: C).(\lambda (t0: T).(\lambda 
+(a0: A).(\forall (c2: C).((csuba g c2 c) \to ((csubv c2 c) \to (arity g c2 t0 
+a0))))))) in (let TMP_2 \def (\lambda (c: C).(\lambda (n: nat).(\lambda (c2: 
+C).(\lambda (_: (csuba g c2 c)).(\lambda (_: (csubv c2 c)).(arity_sort g c2 
+n)))))) in (let TMP_142 \def (\lambda (c: C).(\lambda (d: C).(\lambda (u: 
+T).(\lambda (i: nat).(\lambda (H0: (getl i c (CHead d (Bind Abbr) 
+u))).(\lambda (a0: A).(\lambda (H1: (arity g d u a0)).(\lambda (H2: ((\forall 
+(c2: C).((csuba g c2 d) \to ((csubv c2 d) \to (arity g c2 u a0)))))).(\lambda 
+(c2: C).(\lambda (H3: (csuba g c2 c)).(\lambda (H4: (csubv c2 c)).(let H_x 
+\def (csuba_getl_abbr_rev g c d u i H0 c2 H3) in (let H5 \def H_x in (let 
+TMP_5 \def (\lambda (d2: C).(let TMP_3 \def (Bind Abbr) in (let TMP_4 \def 
+(CHead d2 TMP_3 u) in (getl i c2 TMP_4)))) in (let TMP_6 \def (\lambda (d2: 
+C).(csuba g d2 d)) in (let TMP_7 \def (ex2 C TMP_5 TMP_6) in (let TMP_10 \def 
+(\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(let TMP_8 \def (Bind Abst) 
+in (let TMP_9 \def (CHead d2 TMP_8 u2) in (getl i c2 TMP_9)))))) in (let 
+TMP_11 \def (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 
+d)))) in (let TMP_13 \def (\lambda (d2: C).(\lambda (u2: T).(\lambda (a1: 
+A).(let TMP_12 \def (asucc g a1) in (arity g d2 u2 TMP_12))))) in (let TMP_14 
+\def (\lambda (_: C).(\lambda (_: T).(\lambda (a1: A).(arity g d u a1)))) in 
+(let TMP_15 \def (ex4_3 C T A TMP_10 TMP_11 TMP_13 TMP_14) in (let TMP_18 
+\def (\lambda (d2: C).(\lambda (u2: T).(let TMP_16 \def (Bind Void) in (let 
+TMP_17 \def (CHead d2 TMP_16 u2) in (getl i c2 TMP_17))))) in (let TMP_19 
+\def (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d))) in (let TMP_20 \def 
+(ex2_2 C T TMP_18 TMP_19) in (let TMP_21 \def (TLRef i) in (let TMP_22 \def 
+(arity g c2 TMP_21 a0) in (let TMP_90 \def (\lambda (H6: (ex2 C (\lambda (d2: 
+C).(getl i c2 (CHead d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d2 
+d)))).(let TMP_25 \def (\lambda (d2: C).(let TMP_23 \def (Bind Abbr) in (let 
+TMP_24 \def (CHead d2 TMP_23 u) in (getl i c2 TMP_24)))) in (let TMP_26 \def 
+(\lambda (d2: C).(csuba g d2 d)) in (let TMP_27 \def (TLRef i) in (let TMP_28 
+\def (arity g c2 TMP_27 a0) in (let TMP_89 \def (\lambda (x: C).(\lambda (H7: 
+(getl i c2 (CHead x (Bind Abbr) u))).(\lambda (H8: (csuba g x d)).(let H_x0 
+\def (csubv_getl_conf c2 c H4 Abbr x u i H7) in (let H9 \def H_x0 in (let 
+TMP_29 \def (\lambda (_: B).(\lambda (d2: C).(\lambda (_: T).(csubv x d2)))) 
+in (let TMP_32 \def (\lambda (b2: B).(\lambda (d2: C).(\lambda (v2: T).(let 
+TMP_30 \def (Bind b2) in (let TMP_31 \def (CHead d2 TMP_30 v2) in (getl i c 
+TMP_31)))))) in (let TMP_33 \def (TLRef i) in (let TMP_34 \def (arity g c2 
+TMP_33 a0) in (let TMP_88 \def (\lambda (x0: B).(\lambda (x1: C).(\lambda 
+(x2: T).(\lambda (H10: (csubv x x1)).(\lambda (H11: (getl i c (CHead x1 (Bind 
+x0) x2))).(let TMP_35 \def (Bind Abbr) in (let TMP_36 \def (CHead d TMP_35 u) 
+in (let TMP_37 \def (\lambda (c0: C).(getl i c c0)) in (let TMP_38 \def (Bind 
+x0) in (let TMP_39 \def (CHead x1 TMP_38 x2) in (let TMP_40 \def (Bind Abbr) 
+in (let TMP_41 \def (CHead d TMP_40 u) in (let TMP_42 \def (Bind x0) in (let 
+TMP_43 \def (CHead x1 TMP_42 x2) in (let TMP_44 \def (getl_mono c TMP_41 i H0 
+TMP_43 H11) in (let H12 \def (eq_ind C TMP_36 TMP_37 H0 TMP_39 TMP_44) in 
+(let TMP_45 \def (\lambda (e: C).(match e with [(CSort _) \Rightarrow d | 
+(CHead c0 _ _) \Rightarrow c0])) in (let TMP_46 \def (Bind Abbr) in (let 
+TMP_47 \def (CHead d TMP_46 u) in (let TMP_48 \def (Bind x0) in (let TMP_49 
+\def (CHead x1 TMP_48 x2) in (let TMP_50 \def (Bind Abbr) in (let TMP_51 \def 
+(CHead d TMP_50 u) in (let TMP_52 \def (Bind x0) in (let TMP_53 \def (CHead 
+x1 TMP_52 x2) in (let TMP_54 \def (getl_mono c TMP_51 i H0 TMP_53 H11) in 
+(let H13 \def (f_equal C C TMP_45 TMP_47 TMP_49 TMP_54) in (let TMP_55 \def 
+(\lambda (e: C).(match e with [(CSort _) \Rightarrow Abbr | (CHead _ k _) 
+\Rightarrow (match k with [(Bind b) \Rightarrow b | (Flat _) \Rightarrow 
+Abbr])])) in (let TMP_56 \def (Bind Abbr) in (let TMP_57 \def (CHead d TMP_56 
+u) in (let TMP_58 \def (Bind x0) in (let TMP_59 \def (CHead x1 TMP_58 x2) in 
+(let TMP_60 \def (Bind Abbr) in (let TMP_61 \def (CHead d TMP_60 u) in (let 
+TMP_62 \def (Bind x0) in (let TMP_63 \def (CHead x1 TMP_62 x2) in (let TMP_64 
+\def (getl_mono c TMP_61 i H0 TMP_63 H11) in (let H14 \def (f_equal C B 
+TMP_55 TMP_57 TMP_59 TMP_64) in (let TMP_65 \def (\lambda (e: C).(match e 
+with [(CSort _) \Rightarrow u | (CHead _ _ t0) \Rightarrow t0])) in (let 
+TMP_66 \def (Bind Abbr) in (let TMP_67 \def (CHead d TMP_66 u) in (let TMP_68 
+\def (Bind x0) in (let TMP_69 \def (CHead x1 TMP_68 x2) in (let TMP_70 \def 
+(Bind Abbr) in (let TMP_71 \def (CHead d TMP_70 u) in (let TMP_72 \def (Bind 
+x0) in (let TMP_73 \def (CHead x1 TMP_72 x2) in (let TMP_74 \def (getl_mono c 
+TMP_71 i H0 TMP_73 H11) in (let H15 \def (f_equal C T TMP_65 TMP_67 TMP_69 
+TMP_74) in (let TMP_86 \def (\lambda (H16: (eq B Abbr x0)).(\lambda (H17: (eq 
+C d x1)).(let TMP_77 \def (\lambda (t0: T).(let TMP_75 \def (Bind x0) in (let 
+TMP_76 \def (CHead x1 TMP_75 t0) in (getl i c TMP_76)))) in (let H18 \def 
+(eq_ind_r T x2 TMP_77 H12 u H15) in (let TMP_80 \def (\lambda (c0: C).(let 
+TMP_78 \def (Bind x0) in (let TMP_79 \def (CHead c0 TMP_78 u) in (getl i c 
+TMP_79)))) in (let H19 \def (eq_ind_r C x1 TMP_80 H18 d H17) in (let TMP_81 
+\def (\lambda (c0: C).(csubv x c0)) in (let H20 \def (eq_ind_r C x1 TMP_81 
+H10 d H17) in (let TMP_84 \def (\lambda (b: B).(let TMP_82 \def (Bind b) in 
+(let TMP_83 \def (CHead d TMP_82 u) in (getl i c TMP_83)))) in (let H21 \def 
+(eq_ind_r B x0 TMP_84 H19 Abbr H16) in (let TMP_85 \def (H2 x H8 H20) in 
+(arity_abbr g c2 x u i H7 a0 TMP_85)))))))))))) in (let TMP_87 \def (TMP_86 
+H14) in (TMP_87 H13)))))))))))))))))))))))))))))))))))))))))))))))))))) in 
+(ex2_3_ind B C T TMP_29 TMP_32 TMP_34 TMP_88 H9))))))))))) in (ex2_ind C 
+TMP_25 TMP_26 TMP_28 TMP_89 H6))))))) in (let TMP_104 \def (\lambda (H6: 
+(ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(getl i c2 
+(CHead d2 (Bind Abst) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: 
+A).(csuba g d2 d)))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a1: 
+A).(arity g d2 u2 (asucc g a1))))) (\lambda (_: C).(\lambda (_: T).(\lambda 
+(a1: A).(arity g d u a1)))))).(let TMP_93 \def (\lambda (d2: C).(\lambda (u2: 
+T).(\lambda (_: A).(let TMP_91 \def (Bind Abst) in (let TMP_92 \def (CHead d2 
+TMP_91 u2) in (getl i c2 TMP_92)))))) in (let TMP_94 \def (\lambda (d2: 
+C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 d)))) in (let TMP_96 \def 
+(\lambda (d2: C).(\lambda (u2: T).(\lambda (a1: A).(let TMP_95 \def (asucc g 
+a1) in (arity g d2 u2 TMP_95))))) in (let TMP_97 \def (\lambda (_: 
+C).(\lambda (_: T).(\lambda (a1: A).(arity g d u a1)))) in (let TMP_98 \def 
+(TLRef i) in (let TMP_99 \def (arity g c2 TMP_98 a0) in (let TMP_103 \def 
+(\lambda (x0: C).(\lambda (x1: T).(\lambda (x2: A).(\lambda (H7: (getl i c2 
+(CHead x0 (Bind Abst) x1))).(\lambda (_: (csuba g x0 d)).(\lambda (H9: (arity 
+g x0 x1 (asucc g x2))).(\lambda (H10: (arity g d u x2)).(let TMP_100 \def 
+(TLRef i) in (let TMP_101 \def (arity_abst g c2 x0 x1 i H7 x2 H9) in (let 
+TMP_102 \def (arity_mono g d u x2 H10 a0 H1) in (arity_repl g c2 TMP_100 x2 
+TMP_101 a0 TMP_102))))))))))) in (ex4_3_ind C T A TMP_93 TMP_94 TMP_96 TMP_97 
+TMP_99 TMP_103 H6))))))))) in (let TMP_141 \def (\lambda (H6: (ex2_2 C T 
 (\lambda (d2: C).(\lambda (u2: T).(getl i c2 (CHead d2 (Bind Void) u2)))) 
-(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d)))) (arity g c2 (TLRef i) a0) 
-(\lambda (H6: (ex2 C (\lambda (d2: C).(getl i c2 (CHead d2 (Bind Abst) u))) 
-(\lambda (d2: C).(csuba g d2 d)))).(ex2_ind C (\lambda (d2: C).(getl i c2 
-(CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d)) (arity g c2 
-(TLRef i) a0) (\lambda (x: C).(\lambda (H7: (getl i c2 (CHead x (Bind Abst) 
+(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d))))).(let TMP_107 \def 
+(\lambda (d2: C).(\lambda (u2: T).(let TMP_105 \def (Bind Void) in (let 
+TMP_106 \def (CHead d2 TMP_105 u2) in (getl i c2 TMP_106))))) in (let TMP_108 
+\def (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d))) in (let TMP_109 \def 
+(TLRef i) in (let TMP_110 \def (arity g c2 TMP_109 a0) in (let TMP_140 \def 
+(\lambda (x0: C).(\lambda (x1: T).(\lambda (H7: (getl i c2 (CHead x0 (Bind 
+Void) x1))).(\lambda (_: (csuba g x0 d)).(let H_x0 \def (csubv_getl_conf_void 
+c2 c H4 x0 x1 i H7) in (let H9 \def H_x0 in (let TMP_111 \def (\lambda (d2: 
+C).(\lambda (_: T).(csubv x0 d2))) in (let TMP_114 \def (\lambda (d2: 
+C).(\lambda (v2: T).(let TMP_112 \def (Bind Void) in (let TMP_113 \def (CHead 
+d2 TMP_112 v2) in (getl i c TMP_113))))) in (let TMP_115 \def (TLRef i) in 
+(let TMP_116 \def (arity g c2 TMP_115 a0) in (let TMP_139 \def (\lambda (x2: 
+C).(\lambda (x3: T).(\lambda (_: (csubv x0 x2)).(\lambda (H11: (getl i c 
+(CHead x2 (Bind Void) x3))).(let TMP_117 \def (Bind Abbr) in (let TMP_118 
+\def (CHead d TMP_117 u) in (let TMP_119 \def (\lambda (c0: C).(getl i c c0)) 
+in (let TMP_120 \def (Bind Void) in (let TMP_121 \def (CHead x2 TMP_120 x3) 
+in (let TMP_122 \def (Bind Abbr) in (let TMP_123 \def (CHead d TMP_122 u) in 
+(let TMP_124 \def (Bind Void) in (let TMP_125 \def (CHead x2 TMP_124 x3) in 
+(let TMP_126 \def (getl_mono c TMP_123 i H0 TMP_125 H11) in (let H12 \def 
+(eq_ind C TMP_118 TMP_119 H0 TMP_121 TMP_126) in (let TMP_127 \def (Bind 
+Abbr) in (let TMP_128 \def (CHead d TMP_127 u) in (let TMP_129 \def (\lambda 
+(ee: C).(match ee with [(CSort _) \Rightarrow False | (CHead _ k _) 
+\Rightarrow (match k with [(Bind b) \Rightarrow (match b with [Abbr 
+\Rightarrow True | Abst \Rightarrow False | Void \Rightarrow False]) | (Flat 
+_) \Rightarrow False])])) in (let TMP_130 \def (Bind Void) in (let TMP_131 
+\def (CHead x2 TMP_130 x3) in (let TMP_132 \def (Bind Abbr) in (let TMP_133 
+\def (CHead d TMP_132 u) in (let TMP_134 \def (Bind Void) in (let TMP_135 
+\def (CHead x2 TMP_134 x3) in (let TMP_136 \def (getl_mono c TMP_133 i H0 
+TMP_135 H11) in (let H13 \def (eq_ind C TMP_128 TMP_129 I TMP_131 TMP_136) in 
+(let TMP_137 \def (TLRef i) in (let TMP_138 \def (arity g c2 TMP_137 a0) in 
+(False_ind TMP_138 H13))))))))))))))))))))))))))))) in (ex2_2_ind C T TMP_111 
+TMP_114 TMP_116 TMP_139 H9)))))))))))) in (ex2_2_ind C T TMP_107 TMP_108 
+TMP_110 TMP_140 H6))))))) in (or3_ind TMP_7 TMP_15 TMP_20 TMP_22 TMP_90 
+TMP_104 TMP_141 H5)))))))))))))))))))))))))))))) in (let TMP_260 \def 
+(\lambda (c: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: nat).(\lambda 
+(H0: (getl i c (CHead d (Bind Abst) u))).(\lambda (a0: A).(\lambda (_: (arity 
+g d u (asucc g a0))).(\lambda (H2: ((\forall (c2: C).((csuba g c2 d) \to 
+((csubv c2 d) \to (arity g c2 u (asucc g a0))))))).(\lambda (c2: C).(\lambda 
+(H3: (csuba g c2 c)).(\lambda (H4: (csubv c2 c)).(let H_x \def 
+(csuba_getl_abst_rev g c d u i H0 c2 H3) in (let H5 \def H_x in (let TMP_145 
+\def (\lambda (d2: C).(let TMP_143 \def (Bind Abst) in (let TMP_144 \def 
+(CHead d2 TMP_143 u) in (getl i c2 TMP_144)))) in (let TMP_146 \def (\lambda 
+(d2: C).(csuba g d2 d)) in (let TMP_147 \def (ex2 C TMP_145 TMP_146) in (let 
+TMP_150 \def (\lambda (d2: C).(\lambda (u2: T).(let TMP_148 \def (Bind Void) 
+in (let TMP_149 \def (CHead d2 TMP_148 u2) in (getl i c2 TMP_149))))) in (let 
+TMP_151 \def (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d))) in (let 
+TMP_152 \def (ex2_2 C T TMP_150 TMP_151) in (let TMP_153 \def (TLRef i) in 
+(let TMP_154 \def (arity g c2 TMP_153 a0) in (let TMP_222 \def (\lambda (H6: 
+(ex2 C (\lambda (d2: C).(getl i c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: 
+C).(csuba g d2 d)))).(let TMP_157 \def (\lambda (d2: C).(let TMP_155 \def 
+(Bind Abst) in (let TMP_156 \def (CHead d2 TMP_155 u) in (getl i c2 
+TMP_156)))) in (let TMP_158 \def (\lambda (d2: C).(csuba g d2 d)) in (let 
+TMP_159 \def (TLRef i) in (let TMP_160 \def (arity g c2 TMP_159 a0) in (let 
+TMP_221 \def (\lambda (x: C).(\lambda (H7: (getl i c2 (CHead x (Bind Abst) 
 u))).(\lambda (H8: (csuba g x d)).(let H_x0 \def (csubv_getl_conf c2 c H4 
-Abst x u i H7) in (let H9 \def H_x0 in (ex2_3_ind B C T (\lambda (_: 
-B).(\lambda (d2: C).(\lambda (_: T).(csubv x d2)))) (\lambda (b2: B).(\lambda 
-(d2: C).(\lambda (v2: T).(getl i c (CHead d2 (Bind b2) v2))))) (arity g c2 
-(TLRef i) a0) (\lambda (x0: B).(\lambda (x1: C).(\lambda (x2: T).(\lambda 
+Abst x u i H7) in (let H9 \def H_x0 in (let TMP_161 \def (\lambda (_: 
+B).(\lambda (d2: C).(\lambda (_: T).(csubv x d2)))) in (let TMP_164 \def 
+(\lambda (b2: B).(\lambda (d2: C).(\lambda (v2: T).(let TMP_162 \def (Bind 
+b2) in (let TMP_163 \def (CHead d2 TMP_162 v2) in (getl i c TMP_163)))))) in 
+(let TMP_165 \def (TLRef i) in (let TMP_166 \def (arity g c2 TMP_165 a0) in 
+(let TMP_220 \def (\lambda (x0: B).(\lambda (x1: C).(\lambda (x2: T).(\lambda 
 (H10: (csubv x x1)).(\lambda (H11: (getl i c (CHead x1 (Bind x0) x2))).(let 
-H12 \def (eq_ind C (CHead d (Bind Abst) u) (\lambda (c0: C).(getl i c c0)) H0 
-(CHead x1 (Bind x0) x2) (getl_mono c (CHead d (Bind Abst) u) i H0 (CHead x1 
-(Bind x0) x2) H11)) in (let H13 \def (f_equal C C (\lambda (e: C).(match e in 
-C return (\lambda (_: C).C) with [(CSort _) \Rightarrow d | (CHead c0 _ _) 
-\Rightarrow c0])) (CHead d (Bind Abst) u) (CHead x1 (Bind x0) x2) (getl_mono 
-c (CHead d (Bind Abst) u) i H0 (CHead x1 (Bind x0) x2) H11)) in ((let H14 
-\def (f_equal C B (\lambda (e: C).(match e in C return (\lambda (_: C).B) 
-with [(CSort _) \Rightarrow Abst | (CHead _ k _) \Rightarrow (match k in K 
-return (\lambda (_: K).B) with [(Bind b) \Rightarrow b | (Flat _) \Rightarrow 
-Abst])])) (CHead d (Bind Abst) u) (CHead x1 (Bind x0) x2) (getl_mono c (CHead 
-d (Bind Abst) u) i H0 (CHead x1 (Bind x0) x2) H11)) in ((let H15 \def 
-(f_equal C T (\lambda (e: C).(match e in C return (\lambda (_: C).T) with 
-[(CSort _) \Rightarrow u | (CHead _ _ t0) \Rightarrow t0])) (CHead d (Bind 
-Abst) u) (CHead x1 (Bind x0) x2) (getl_mono c (CHead d (Bind Abst) u) i H0 
-(CHead x1 (Bind x0) x2) H11)) in (\lambda (H16: (eq B Abst x0)).(\lambda 
-(H17: (eq C d x1)).(let H18 \def (eq_ind_r T x2 (\lambda (t0: T).(getl i c 
-(CHead x1 (Bind x0) t0))) H12 u H15) in (let H19 \def (eq_ind_r C x1 (\lambda 
-(c0: C).(getl i c (CHead c0 (Bind x0) u))) H18 d H17) in (let H20 \def 
-(eq_ind_r C x1 (\lambda (c0: C).(csubv x c0)) H10 d H17) in (let H21 \def 
-(eq_ind_r B x0 (\lambda (b: B).(getl i c (CHead d (Bind b) u))) H19 Abst H16) 
-in (arity_abst g c2 x u i H7 a0 (H2 x H8 H20))))))))) H14)) H13)))))))) 
-H9)))))) H6)) (\lambda (H6: (ex2_2 C T (\lambda (d2: C).(\lambda (u2: 
-T).(getl i c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: 
-T).(csuba g d2 d))))).(ex2_2_ind C T (\lambda (d2: C).(\lambda (u2: T).(getl 
-i c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g 
-d2 d))) (arity g c2 (TLRef i) a0) (\lambda (x0: C).(\lambda (x1: T).(\lambda 
-(H7: (getl i c2 (CHead x0 (Bind Void) x1))).(\lambda (_: (csuba g x0 d)).(let 
-H_x0 \def (csubv_getl_conf_void c2 c H4 x0 x1 i H7) in (let H9 \def H_x0 in 
-(ex2_2_ind C T (\lambda (d2: C).(\lambda (_: T).(csubv x0 d2))) (\lambda (d2: 
-C).(\lambda (v2: T).(getl i c (CHead d2 (Bind Void) v2)))) (arity g c2 (TLRef 
-i) a0) (\lambda (x2: C).(\lambda (x3: T).(\lambda (_: (csubv x0 x2)).(\lambda 
-(H11: (getl i c (CHead x2 (Bind Void) x3))).(let H12 \def (eq_ind C (CHead d 
-(Bind Abst) u) (\lambda (c0: C).(getl i c c0)) H0 (CHead x2 (Bind Void) x3) 
-(getl_mono c (CHead d (Bind Abst) u) i H0 (CHead x2 (Bind Void) x3) H11)) in 
-(let H13 \def (eq_ind C (CHead d (Bind Abst) u) (\lambda (ee: C).(match ee in 
-C return (\lambda (_: C).Prop) with [(CSort _) \Rightarrow False | (CHead _ k 
-_) \Rightarrow (match k in K return (\lambda (_: K).Prop) with [(Bind b) 
-\Rightarrow (match b in B return (\lambda (_: B).Prop) with [Abbr \Rightarrow 
-False | Abst \Rightarrow True | Void \Rightarrow False]) | (Flat _) 
-\Rightarrow False])])) I (CHead x2 (Bind Void) x3) (getl_mono c (CHead d 
-(Bind Abst) u) i H0 (CHead x2 (Bind Void) x3) H11)) in (False_ind (arity g c2 
-(TLRef i) a0) H13))))))) H9))))))) H6)) H5)))))))))))))) (\lambda (b: 
-B).(\lambda (H0: (not (eq B b Abst))).(\lambda (c: C).(\lambda (u: 
-T).(\lambda (a1: A).(\lambda (_: (arity g c u a1)).(\lambda (H2: ((\forall 
-(c2: C).((csuba g c2 c) \to ((csubv c2 c) \to (arity g c2 u a1)))))).(\lambda 
-(t0: T).(\lambda (a2: A).(\lambda (_: (arity g (CHead c (Bind b) u) t0 
-a2)).(\lambda (H4: ((\forall (c2: C).((csuba g c2 (CHead c (Bind b) u)) \to 
-((csubv c2 (CHead c (Bind b) u)) \to (arity g c2 t0 a2)))))).(\lambda (c2: 
-C).(\lambda (H5: (csuba g c2 c)).(\lambda (H6: (csubv c2 c)).(arity_bind g b 
-H0 c2 u a1 (H2 c2 H5 H6) t0 a2 (H4 (CHead c2 (Bind b) u) (csuba_head g c2 c 
-H5 (Bind b) u) (csubv_bind_same c2 c H6 b u u))))))))))))))))) (\lambda (c: 
-C).(\lambda (u: T).(\lambda (a1: A).(\lambda (_: (arity g c u (asucc g 
-a1))).(\lambda (H1: ((\forall (c2: C).((csuba g c2 c) \to ((csubv c2 c) \to 
-(arity g c2 u (asucc g a1))))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda 
-(_: (arity g (CHead c (Bind Abst) u) t0 a2)).(\lambda (H3: ((\forall (c2: 
-C).((csuba g c2 (CHead c (Bind Abst) u)) \to ((csubv c2 (CHead c (Bind Abst) 
-u)) \to (arity g c2 t0 a2)))))).(\lambda (c2: C).(\lambda (H4: (csuba g c2 
-c)).(\lambda (H5: (csubv c2 c)).(arity_head g c2 u a1 (H1 c2 H4 H5) t0 a2 (H3 
-(CHead c2 (Bind Abst) u) (csuba_head g c2 c H4 (Bind Abst) u) 
-(csubv_bind_same c2 c H5 Abst u u))))))))))))))) (\lambda (c: C).(\lambda (u: 
+TMP_167 \def (Bind Abst) in (let TMP_168 \def (CHead d TMP_167 u) in (let 
+TMP_169 \def (\lambda (c0: C).(getl i c c0)) in (let TMP_170 \def (Bind x0) 
+in (let TMP_171 \def (CHead x1 TMP_170 x2) in (let TMP_172 \def (Bind Abst) 
+in (let TMP_173 \def (CHead d TMP_172 u) in (let TMP_174 \def (Bind x0) in 
+(let TMP_175 \def (CHead x1 TMP_174 x2) in (let TMP_176 \def (getl_mono c 
+TMP_173 i H0 TMP_175 H11) in (let H12 \def (eq_ind C TMP_168 TMP_169 H0 
+TMP_171 TMP_176) in (let TMP_177 \def (\lambda (e: C).(match e with [(CSort 
+_) \Rightarrow d | (CHead c0 _ _) \Rightarrow c0])) in (let TMP_178 \def 
+(Bind Abst) in (let TMP_179 \def (CHead d TMP_178 u) in (let TMP_180 \def 
+(Bind x0) in (let TMP_181 \def (CHead x1 TMP_180 x2) in (let TMP_182 \def 
+(Bind Abst) in (let TMP_183 \def (CHead d TMP_182 u) in (let TMP_184 \def 
+(Bind x0) in (let TMP_185 \def (CHead x1 TMP_184 x2) in (let TMP_186 \def 
+(getl_mono c TMP_183 i H0 TMP_185 H11) in (let H13 \def (f_equal C C TMP_177 
+TMP_179 TMP_181 TMP_186) in (let TMP_187 \def (\lambda (e: C).(match e with 
+[(CSort _) \Rightarrow Abst | (CHead _ k _) \Rightarrow (match k with [(Bind 
+b) \Rightarrow b | (Flat _) \Rightarrow Abst])])) in (let TMP_188 \def (Bind 
+Abst) in (let TMP_189 \def (CHead d TMP_188 u) in (let TMP_190 \def (Bind x0) 
+in (let TMP_191 \def (CHead x1 TMP_190 x2) in (let TMP_192 \def (Bind Abst) 
+in (let TMP_193 \def (CHead d TMP_192 u) in (let TMP_194 \def (Bind x0) in 
+(let TMP_195 \def (CHead x1 TMP_194 x2) in (let TMP_196 \def (getl_mono c 
+TMP_193 i H0 TMP_195 H11) in (let H14 \def (f_equal C B TMP_187 TMP_189 
+TMP_191 TMP_196) in (let TMP_197 \def (\lambda (e: C).(match e with [(CSort 
+_) \Rightarrow u | (CHead _ _ t0) \Rightarrow t0])) in (let TMP_198 \def 
+(Bind Abst) in (let TMP_199 \def (CHead d TMP_198 u) in (let TMP_200 \def 
+(Bind x0) in (let TMP_201 \def (CHead x1 TMP_200 x2) in (let TMP_202 \def 
+(Bind Abst) in (let TMP_203 \def (CHead d TMP_202 u) in (let TMP_204 \def 
+(Bind x0) in (let TMP_205 \def (CHead x1 TMP_204 x2) in (let TMP_206 \def 
+(getl_mono c TMP_203 i H0 TMP_205 H11) in (let H15 \def (f_equal C T TMP_197 
+TMP_199 TMP_201 TMP_206) in (let TMP_218 \def (\lambda (H16: (eq B Abst 
+x0)).(\lambda (H17: (eq C d x1)).(let TMP_209 \def (\lambda (t0: T).(let 
+TMP_207 \def (Bind x0) in (let TMP_208 \def (CHead x1 TMP_207 t0) in (getl i 
+c TMP_208)))) in (let H18 \def (eq_ind_r T x2 TMP_209 H12 u H15) in (let 
+TMP_212 \def (\lambda (c0: C).(let TMP_210 \def (Bind x0) in (let TMP_211 
+\def (CHead c0 TMP_210 u) in (getl i c TMP_211)))) in (let H19 \def (eq_ind_r 
+C x1 TMP_212 H18 d H17) in (let TMP_213 \def (\lambda (c0: C).(csubv x c0)) 
+in (let H20 \def (eq_ind_r C x1 TMP_213 H10 d H17) in (let TMP_216 \def 
+(\lambda (b: B).(let TMP_214 \def (Bind b) in (let TMP_215 \def (CHead d 
+TMP_214 u) in (getl i c TMP_215)))) in (let H21 \def (eq_ind_r B x0 TMP_216 
+H19 Abst H16) in (let TMP_217 \def (H2 x H8 H20) in (arity_abst g c2 x u i H7 
+a0 TMP_217)))))))))))) in (let TMP_219 \def (TMP_218 H14) in (TMP_219 
+H13)))))))))))))))))))))))))))))))))))))))))))))))))))) in (ex2_3_ind B C T 
+TMP_161 TMP_164 TMP_166 TMP_220 H9))))))))))) in (ex2_ind C TMP_157 TMP_158 
+TMP_160 TMP_221 H6))))))) in (let TMP_259 \def (\lambda (H6: (ex2_2 C T 
+(\lambda (d2: C).(\lambda (u2: T).(getl i c2 (CHead d2 (Bind Void) u2)))) 
+(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d))))).(let TMP_225 \def 
+(\lambda (d2: C).(\lambda (u2: T).(let TMP_223 \def (Bind Void) in (let 
+TMP_224 \def (CHead d2 TMP_223 u2) in (getl i c2 TMP_224))))) in (let TMP_226 
+\def (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d))) in (let TMP_227 \def 
+(TLRef i) in (let TMP_228 \def (arity g c2 TMP_227 a0) in (let TMP_258 \def 
+(\lambda (x0: C).(\lambda (x1: T).(\lambda (H7: (getl i c2 (CHead x0 (Bind 
+Void) x1))).(\lambda (_: (csuba g x0 d)).(let H_x0 \def (csubv_getl_conf_void 
+c2 c H4 x0 x1 i H7) in (let H9 \def H_x0 in (let TMP_229 \def (\lambda (d2: 
+C).(\lambda (_: T).(csubv x0 d2))) in (let TMP_232 \def (\lambda (d2: 
+C).(\lambda (v2: T).(let TMP_230 \def (Bind Void) in (let TMP_231 \def (CHead 
+d2 TMP_230 v2) in (getl i c TMP_231))))) in (let TMP_233 \def (TLRef i) in 
+(let TMP_234 \def (arity g c2 TMP_233 a0) in (let TMP_257 \def (\lambda (x2: 
+C).(\lambda (x3: T).(\lambda (_: (csubv x0 x2)).(\lambda (H11: (getl i c 
+(CHead x2 (Bind Void) x3))).(let TMP_235 \def (Bind Abst) in (let TMP_236 
+\def (CHead d TMP_235 u) in (let TMP_237 \def (\lambda (c0: C).(getl i c c0)) 
+in (let TMP_238 \def (Bind Void) in (let TMP_239 \def (CHead x2 TMP_238 x3) 
+in (let TMP_240 \def (Bind Abst) in (let TMP_241 \def (CHead d TMP_240 u) in 
+(let TMP_242 \def (Bind Void) in (let TMP_243 \def (CHead x2 TMP_242 x3) in 
+(let TMP_244 \def (getl_mono c TMP_241 i H0 TMP_243 H11) in (let H12 \def 
+(eq_ind C TMP_236 TMP_237 H0 TMP_239 TMP_244) in (let TMP_245 \def (Bind 
+Abst) in (let TMP_246 \def (CHead d TMP_245 u) in (let TMP_247 \def (\lambda 
+(ee: C).(match ee with [(CSort _) \Rightarrow False | (CHead _ k _) 
+\Rightarrow (match k with [(Bind b) \Rightarrow (match b with [Abbr 
+\Rightarrow False | Abst \Rightarrow True | Void \Rightarrow False]) | (Flat 
+_) \Rightarrow False])])) in (let TMP_248 \def (Bind Void) in (let TMP_249 
+\def (CHead x2 TMP_248 x3) in (let TMP_250 \def (Bind Abst) in (let TMP_251 
+\def (CHead d TMP_250 u) in (let TMP_252 \def (Bind Void) in (let TMP_253 
+\def (CHead x2 TMP_252 x3) in (let TMP_254 \def (getl_mono c TMP_251 i H0 
+TMP_253 H11) in (let H13 \def (eq_ind C TMP_246 TMP_247 I TMP_249 TMP_254) in 
+(let TMP_255 \def (TLRef i) in (let TMP_256 \def (arity g c2 TMP_255 a0) in 
+(False_ind TMP_256 H13))))))))))))))))))))))))))))) in (ex2_2_ind C T TMP_229 
+TMP_232 TMP_234 TMP_257 H9)))))))))))) in (ex2_2_ind C T TMP_225 TMP_226 
+TMP_228 TMP_258 H6))))))) in (or_ind TMP_147 TMP_152 TMP_154 TMP_222 TMP_259 
+H5)))))))))))))))))))))))) in (let TMP_268 \def (\lambda (b: B).(\lambda (H0: 
+(not (eq B b Abst))).(\lambda (c: C).(\lambda (u: T).(\lambda (a1: 
+A).(\lambda (_: (arity g c u a1)).(\lambda (H2: ((\forall (c2: C).((csuba g 
+c2 c) \to ((csubv c2 c) \to (arity g c2 u a1)))))).(\lambda (t0: T).(\lambda 
+(a2: A).(\lambda (_: (arity g (CHead c (Bind b) u) t0 a2)).(\lambda (H4: 
+((\forall (c2: C).((csuba g c2 (CHead c (Bind b) u)) \to ((csubv c2 (CHead c 
+(Bind b) u)) \to (arity g c2 t0 a2)))))).(\lambda (c2: C).(\lambda (H5: 
+(csuba g c2 c)).(\lambda (H6: (csubv c2 c)).(let TMP_261 \def (H2 c2 H5 H6) 
+in (let TMP_262 \def (Bind b) in (let TMP_263 \def (CHead c2 TMP_262 u) in 
+(let TMP_264 \def (Bind b) in (let TMP_265 \def (csuba_head g c2 c H5 TMP_264 
+u) in (let TMP_266 \def (csubv_bind_same c2 c H6 b u u) in (let TMP_267 \def 
+(H4 TMP_263 TMP_265 TMP_266) in (arity_bind g b H0 c2 u a1 TMP_261 t0 a2 
+TMP_267)))))))))))))))))))))) in (let TMP_276 \def (\lambda (c: C).(\lambda 
+(u: T).(\lambda (a1: A).(\lambda (_: (arity g c u (asucc g a1))).(\lambda 
+(H1: ((\forall (c2: C).((csuba g c2 c) \to ((csubv c2 c) \to (arity g c2 u 
+(asucc g a1))))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda (_: (arity g 
+(CHead c (Bind Abst) u) t0 a2)).(\lambda (H3: ((\forall (c2: C).((csuba g c2 
+(CHead c (Bind Abst) u)) \to ((csubv c2 (CHead c (Bind Abst) u)) \to (arity g 
+c2 t0 a2)))))).(\lambda (c2: C).(\lambda (H4: (csuba g c2 c)).(\lambda (H5: 
+(csubv c2 c)).(let TMP_269 \def (H1 c2 H4 H5) in (let TMP_270 \def (Bind 
+Abst) in (let TMP_271 \def (CHead c2 TMP_270 u) in (let TMP_272 \def (Bind 
+Abst) in (let TMP_273 \def (csuba_head g c2 c H4 TMP_272 u) in (let TMP_274 
+\def (csubv_bind_same c2 c H5 Abst u u) in (let TMP_275 \def (H3 TMP_271 
+TMP_273 TMP_274) in (arity_head g c2 u a1 TMP_269 t0 a2 
+TMP_275)))))))))))))))))))) in (let TMP_279 \def (\lambda (c: C).(\lambda (u: 
 T).(\lambda (a1: A).(\lambda (_: (arity g c u a1)).(\lambda (H1: ((\forall 
 (c2: C).((csuba g c2 c) \to ((csubv c2 c) \to (arity g c2 u a1)))))).(\lambda 
 (t0: T).(\lambda (a2: A).(\lambda (_: (arity g c t0 (AHead a1 a2))).(\lambda 
 (H3: ((\forall (c2: C).((csuba g c2 c) \to ((csubv c2 c) \to (arity g c2 t0 
 (AHead a1 a2))))))).(\lambda (c2: C).(\lambda (H4: (csuba g c2 c)).(\lambda 
-(H5: (csubv c2 c)).(arity_appl g c2 u a1 (H1 c2 H4 H5) t0 a2 (H3 c2 H4 
-H5)))))))))))))) (\lambda (c: C).(\lambda (u: T).(\lambda (a0: A).(\lambda 
+(H5: (csubv c2 c)).(let TMP_277 \def (H1 c2 H4 H5) in (let TMP_278 \def (H3 
+c2 H4 H5) in (arity_appl g c2 u a1 TMP_277 t0 a2 TMP_278))))))))))))))) in 
+(let TMP_282 \def (\lambda (c: C).(\lambda (u: T).(\lambda (a0: A).(\lambda 
 (_: (arity g c u (asucc g a0))).(\lambda (H1: ((\forall (c2: C).((csuba g c2 
 c) \to ((csubv c2 c) \to (arity g c2 u (asucc g a0))))))).(\lambda (t0: 
 T).(\lambda (_: (arity g c t0 a0)).(\lambda (H3: ((\forall (c2: C).((csuba g 
 c2 c) \to ((csubv c2 c) \to (arity g c2 t0 a0)))))).(\lambda (c2: C).(\lambda 
-(H4: (csuba g c2 c)).(\lambda (H5: (csubv c2 c)).(arity_cast g c2 u a0 (H1 c2 
-H4 H5) t0 (H3 c2 H4 H5))))))))))))) (\lambda (c: C).(\lambda (t0: T).(\lambda 
-(a1: A).(\lambda (_: (arity g c t0 a1)).(\lambda (H1: ((\forall (c2
-C).((csuba g c2 c) \to ((csubv c2 c) \to (arity g c2 t0 a1)))))).(\lambda 
-(a2: A).(\lambda (H2: (leq g a1 a2)).(\lambda (c2: C).(\lambda (H3: (csuba g 
-c2 c)).(\lambda (H4: (csubv c2 c)).(arity_repl g c2 t0 a1 (H1 c2 H3 H4) a2 
-H2))))))))))) c1 t a H))))).
-(* COMMENTS
-Initial nodes: 3597
-END *)
+(H4: (csuba g c2 c)).(\lambda (H5: (csubv c2 c)).(let TMP_280 \def (H1 c2 H4 
+H5) in (let TMP_281 \def (H3 c2 H4 H5) in (arity_cast g c2 u a0 TMP_280 t0 
+TMP_281)))))))))))))) in (let TMP_284 \def (\lambda (c: C).(\lambda (t0
+T).(\lambda (a1: A).(\lambda (_: (arity g c t0 a1)).(\lambda (H1: ((\forall 
+(c2: C).((csuba g c2 c) \to ((csubv c2 c) \to (arity g c2 t0 
+a1)))))).(\lambda (a2: A).(\lambda (H2: (leq g a1 a2)).(\lambda (c2: 
+C).(\lambda (H3: (csuba g c2 c)).(\lambda (H4: (csubv c2 c)).(let TMP_283 
+\def (H1 c2 H3 H4) in (arity_repl g c2 t0 a1 TMP_283 a2 H2)))))))))))) in 
+(arity_ind g TMP_1 TMP_2 TMP_142 TMP_260 TMP_268 TMP_276 TMP_279 TMP_282 
+TMP_284 c1 t a H)))))))))))))).
 
 theorem arity_appls_appl:
  \forall (g: G).(\forall (c: C).(\forall (v: T).(\forall (a1: A).((arity g c 
@@ -303,34 +429,52 @@ T).(\forall (vs: TList).(\forall (a2: A).((arity g c (THeads (Flat Appl) vs
 \def
  \lambda (g: G).(\lambda (c: C).(\lambda (v: T).(\lambda (a1: A).(\lambda (H: 
 (arity g c v a1)).(\lambda (u: T).(\lambda (H0: (arity g c u (asucc g 
-a1))).(\lambda (t: T).(\lambda (vs: TList).(TList_ind (\lambda (t0: 
+a1))).(\lambda (t: T).(\lambda (vs: TList).(let TMP_7 \def (\lambda (t0: 
 TList).(\forall (a2: A).((arity g c (THeads (Flat Appl) t0 (THead (Bind Abbr) 
-v t)) a2) \to (arity g c (THeads (Flat Appl) t0 (THead (Flat Appl) v (THead 
-(Bind Abst) u t))) a2)))) (\lambda (a2: A).(\lambda (H1: (arity g c (THead 
-(Bind Abbr) v t) a2)).(let H_x \def (arity_gen_bind Abbr (\lambda (H2: (eq B 
-Abbr Abst)).(not_abbr_abst H2)) g c v t a2 H1) in (let H2 \def H_x in 
-(ex2_ind A (\lambda (a3: A).(arity g c v a3)) (\lambda (_: A).(arity g (CHead 
-c (Bind Abbr) v) t a2)) (arity g c (THead (Flat Appl) v (THead (Bind Abst) u 
-t)) a2) (\lambda (x: A).(\lambda (_: (arity g c v x)).(\lambda (H4: (arity g 
-(CHead c (Bind Abbr) v) t a2)).(arity_appl g c v a1 H (THead (Bind Abst) u t) 
-a2 (arity_head g c u a1 H0 t a2 (csuba_arity_rev g (CHead c (Bind Abbr) v) t 
-a2 H4 (CHead c (Bind Abst) u) (csuba_abst g c c (csuba_refl g c) u a1 H0 v H) 
-(csubv_bind c c (csubv_refl c) Abst (sym_not_eq B Void Abst not_void_abst) 
-Abbr u v))))))) H2))))) (\lambda (t0: T).(\lambda (t1: TList).(\lambda (H1: 
-((\forall (a2: A).((arity g c (THeads (Flat Appl) t1 (THead (Bind Abbr) v t)) 
-a2) \to (arity g c (THeads (Flat Appl) t1 (THead (Flat Appl) v (THead (Bind 
-Abst) u t))) a2))))).(\lambda (a2: A).(\lambda (H2: (arity g c (THead (Flat 
-Appl) t0 (THeads (Flat Appl) t1 (THead (Bind Abbr) v t))) a2)).(let H3 \def 
-(arity_gen_appl g c t0 (THeads (Flat Appl) t1 (THead (Bind Abbr) v t)) a2 H2) 
-in (ex2_ind A (\lambda (a3: A).(arity g c t0 a3)) (\lambda (a3: A).(arity g c 
-(THeads (Flat Appl) t1 (THead (Bind Abbr) v t)) (AHead a3 a2))) (arity g c 
-(THead (Flat Appl) t0 (THeads (Flat Appl) t1 (THead (Flat Appl) v (THead 
-(Bind Abst) u t)))) a2) (\lambda (x: A).(\lambda (H4: (arity g c t0 
-x)).(\lambda (H5: (arity g c (THeads (Flat Appl) t1 (THead (Bind Abbr) v t)) 
-(AHead x a2))).(arity_appl g c t0 x H4 (THeads (Flat Appl) t1 (THead (Flat 
-Appl) v (THead (Bind Abst) u t))) a2 (H1 (AHead x a2) H5))))) H3))))))) 
-vs))))))))).
-(* COMMENTS
-Initial nodes: 687
-END *)
+v t)) a2) \to (let TMP_1 \def (Flat Appl) in (let TMP_2 \def (Flat Appl) in 
+(let TMP_3 \def (Bind Abst) in (let TMP_4 \def (THead TMP_3 u t) in (let 
+TMP_5 \def (THead TMP_2 v TMP_4) in (let TMP_6 \def (THeads TMP_1 t0 TMP_5) 
+in (arity g c TMP_6 a2)))))))))) in (let TMP_30 \def (\lambda (a2: 
+A).(\lambda (H1: (arity g c (THead (Bind Abbr) v t) a2)).(let H_x \def 
+(arity_gen_bind Abbr not_abbr_abst g c v t a2 H1) in (let H2 \def H_x in (let 
+TMP_8 \def (\lambda (a3: A).(arity g c v a3)) in (let TMP_11 \def (\lambda 
+(_: A).(let TMP_9 \def (Bind Abbr) in (let TMP_10 \def (CHead c TMP_9 v) in 
+(arity g TMP_10 t a2)))) in (let TMP_12 \def (Flat Appl) in (let TMP_13 \def 
+(Bind Abst) in (let TMP_14 \def (THead TMP_13 u t) in (let TMP_15 \def (THead 
+TMP_12 v TMP_14) in (let TMP_16 \def (arity g c TMP_15 a2) in (let TMP_29 
+\def (\lambda (x: A).(\lambda (_: (arity g c v x)).(\lambda (H4: (arity g 
+(CHead c (Bind Abbr) v) t a2)).(let TMP_17 \def (Bind Abst) in (let TMP_18 
+\def (THead TMP_17 u t) in (let TMP_19 \def (Bind Abbr) in (let TMP_20 \def 
+(CHead c TMP_19 v) in (let TMP_21 \def (Bind Abst) in (let TMP_22 \def (CHead 
+c TMP_21 u) in (let TMP_23 \def (csuba_refl g c) in (let TMP_24 \def 
+(csuba_abst g c c TMP_23 u a1 H0 v H) in (let TMP_25 \def (csubv_refl c) in 
+(let TMP_26 \def (csubv_bind c c TMP_25 Abst not_abst_void Abbr u v) in (let 
+TMP_27 \def (csuba_arity_rev g TMP_20 t a2 H4 TMP_22 TMP_24 TMP_26) in (let 
+TMP_28 \def (arity_head g c u a1 H0 t a2 TMP_27) in (arity_appl g c v a1 H 
+TMP_18 a2 TMP_28)))))))))))))))) in (ex2_ind A TMP_8 TMP_11 TMP_16 TMP_29 
+H2))))))))))))) in (let TMP_60 \def (\lambda (t0: T).(\lambda (t1: 
+TList).(\lambda (H1: ((\forall (a2: A).((arity g c (THeads (Flat Appl) t1 
+(THead (Bind Abbr) v t)) a2) \to (arity g c (THeads (Flat Appl) t1 (THead 
+(Flat Appl) v (THead (Bind Abst) u t))) a2))))).(\lambda (a2: A).(\lambda 
+(H2: (arity g c (THead (Flat Appl) t0 (THeads (Flat Appl) t1 (THead (Bind 
+Abbr) v t))) a2)).(let TMP_31 \def (Flat Appl) in (let TMP_32 \def (Bind 
+Abbr) in (let TMP_33 \def (THead TMP_32 v t) in (let TMP_34 \def (THeads 
+TMP_31 t1 TMP_33) in (let H3 \def (arity_gen_appl g c t0 TMP_34 a2 H2) in 
+(let TMP_35 \def (\lambda (a3: A).(arity g c t0 a3)) in (let TMP_41 \def 
+(\lambda (a3: A).(let TMP_36 \def (Flat Appl) in (let TMP_37 \def (Bind Abbr) 
+in (let TMP_38 \def (THead TMP_37 v t) in (let TMP_39 \def (THeads TMP_36 t1 
+TMP_38) in (let TMP_40 \def (AHead a3 a2) in (arity g c TMP_39 TMP_40))))))) 
+in (let TMP_42 \def (Flat Appl) in (let TMP_43 \def (Flat Appl) in (let 
+TMP_44 \def (Flat Appl) in (let TMP_45 \def (Bind Abst) in (let TMP_46 \def 
+(THead TMP_45 u t) in (let TMP_47 \def (THead TMP_44 v TMP_46) in (let TMP_48 
+\def (THeads TMP_43 t1 TMP_47) in (let TMP_49 \def (THead TMP_42 t0 TMP_48) 
+in (let TMP_50 \def (arity g c TMP_49 a2) in (let TMP_59 \def (\lambda (x: 
+A).(\lambda (H4: (arity g c t0 x)).(\lambda (H5: (arity g c (THeads (Flat 
+Appl) t1 (THead (Bind Abbr) v t)) (AHead x a2))).(let TMP_51 \def (Flat Appl) 
+in (let TMP_52 \def (Flat Appl) in (let TMP_53 \def (Bind Abst) in (let 
+TMP_54 \def (THead TMP_53 u t) in (let TMP_55 \def (THead TMP_52 v TMP_54) in 
+(let TMP_56 \def (THeads TMP_51 t1 TMP_55) in (let TMP_57 \def (AHead x a2) 
+in (let TMP_58 \def (H1 TMP_57 H5) in (arity_appl g c t0 x H4 TMP_56 a2 
+TMP_58)))))))))))) in (ex2_ind A TMP_35 TMP_41 TMP_50 TMP_59 
+H3))))))))))))))))))))))) in (TList_ind TMP_7 TMP_30 TMP_60 vs)))))))))))).
 
index 2350fd1e861ca2fb209de94da6be55ea684cb334..af8360519728d47317da499a3d00b38420c6ed9b 100644 (file)
@@ -14,9 +14,9 @@
 
 (* This file was automatically generated: do not edit *********************)
 
-include "Basic-1/csuba/defs.ma".
+include "basic_1/csuba/fwd.ma".
 
-include "Basic-1/clear/fwd.ma".
+include "basic_1/clear/fwd.ma".
 
 theorem csuba_clear_conf:
  \forall (g: G).(\forall (c1: C).(\forall (c2: C).((csuba g c1 c2) \to 
@@ -24,53 +24,84 @@ theorem csuba_clear_conf:
 (\lambda (e2: C).(clear c2 e2))))))))
 \def
  \lambda (g: G).(\lambda (c1: C).(\lambda (c2: C).(\lambda (H: (csuba g c1 
-c2)).(csuba_ind g (\lambda (c: C).(\lambda (c0: C).(\forall (e1: C).((clear c 
-e1) \to (ex2 C (\lambda (e2: C).(csuba g e1 e2)) (\lambda (e2: C).(clear c0 
-e2))))))) (\lambda (n: nat).(\lambda (e1: C).(\lambda (H0: (clear (CSort n) 
-e1)).(clear_gen_sort e1 n H0 (ex2 C (\lambda (e2: C).(csuba g e1 e2)) 
-(\lambda (e2: C).(clear (CSort n) e2))))))) (\lambda (c3: C).(\lambda (c4: 
-C).(\lambda (H0: (csuba g c3 c4)).(\lambda (H1: ((\forall (e1: C).((clear c3 
-e1) \to (ex2 C (\lambda (e2: C).(csuba g e1 e2)) (\lambda (e2: C).(clear c4 
+c2)).(let TMP_3 \def (\lambda (c: C).(\lambda (c0: C).(\forall (e1: 
+C).((clear c e1) \to (let TMP_1 \def (\lambda (e2: C).(csuba g e1 e2)) in 
+(let TMP_2 \def (\lambda (e2: C).(clear c0 e2)) in (ex2 C TMP_1 TMP_2))))))) 
+in (let TMP_8 \def (\lambda (n: nat).(\lambda (e1: C).(\lambda (H0: (clear 
+(CSort n) e1)).(let TMP_4 \def (\lambda (e2: C).(csuba g e1 e2)) in (let 
+TMP_6 \def (\lambda (e2: C).(let TMP_5 \def (CSort n) in (clear TMP_5 e2))) 
+in (let TMP_7 \def (ex2 C TMP_4 TMP_6) in (clear_gen_sort e1 n H0 
+TMP_7))))))) in (let TMP_49 \def (\lambda (c3: C).(\lambda (c4: C).(\lambda 
+(H0: (csuba g c3 c4)).(\lambda (H1: ((\forall (e1: C).((clear c3 e1) \to (ex2 
+C (\lambda (e2: C).(csuba g e1 e2)) (\lambda (e2: C).(clear c4 
 e2))))))).(\lambda (k: K).(\lambda (u: T).(\lambda (e1: C).(\lambda (H2: 
-(clear (CHead c3 k u) e1)).(K_ind (\lambda (k0: K).((clear (CHead c3 k0 u) 
-e1) \to (ex2 C (\lambda (e2: C).(csuba g e1 e2)) (\lambda (e2: C).(clear 
-(CHead c4 k0 u) e2))))) (\lambda (b: B).(\lambda (H3: (clear (CHead c3 (Bind 
-b) u) e1)).(eq_ind_r C (CHead c3 (Bind b) u) (\lambda (c: C).(ex2 C (\lambda 
-(e2: C).(csuba g c e2)) (\lambda (e2: C).(clear (CHead c4 (Bind b) u) e2)))) 
-(ex_intro2 C (\lambda (e2: C).(csuba g (CHead c3 (Bind b) u) e2)) (\lambda 
-(e2: C).(clear (CHead c4 (Bind b) u) e2)) (CHead c4 (Bind b) u) (csuba_head g 
-c3 c4 H0 (Bind b) u) (clear_bind b c4 u)) e1 (clear_gen_bind b c3 e1 u H3)))) 
-(\lambda (f: F).(\lambda (H3: (clear (CHead c3 (Flat f) u) e1)).(let H4 \def 
-(H1 e1 (clear_gen_flat f c3 e1 u H3)) in (ex2_ind C (\lambda (e2: C).(csuba g 
-e1 e2)) (\lambda (e2: C).(clear c4 e2)) (ex2 C (\lambda (e2: C).(csuba g e1 
-e2)) (\lambda (e2: C).(clear (CHead c4 (Flat f) u) e2))) (\lambda (x: 
-C).(\lambda (H5: (csuba g e1 x)).(\lambda (H6: (clear c4 x)).(ex_intro2 C 
-(\lambda (e2: C).(csuba g e1 e2)) (\lambda (e2: C).(clear (CHead c4 (Flat f) 
-u) e2)) x H5 (clear_flat c4 x H6 f u))))) H4)))) k H2))))))))) (\lambda (c3: 
+(clear (CHead c3 k u) e1)).(let TMP_12 \def (\lambda (k0: K).((clear (CHead 
+c3 k0 u) e1) \to (let TMP_9 \def (\lambda (e2: C).(csuba g e1 e2)) in (let 
+TMP_11 \def (\lambda (e2: C).(let TMP_10 \def (CHead c4 k0 u) in (clear 
+TMP_10 e2))) in (ex2 C TMP_9 TMP_11))))) in (let TMP_33 \def (\lambda (b: 
+B).(\lambda (H3: (clear (CHead c3 (Bind b) u) e1)).(let TMP_13 \def (Bind b) 
+in (let TMP_14 \def (CHead c3 TMP_13 u) in (let TMP_19 \def (\lambda (c: 
+C).(let TMP_15 \def (\lambda (e2: C).(csuba g c e2)) in (let TMP_18 \def 
+(\lambda (e2: C).(let TMP_16 \def (Bind b) in (let TMP_17 \def (CHead c4 
+TMP_16 u) in (clear TMP_17 e2)))) in (ex2 C TMP_15 TMP_18)))) in (let TMP_22 
+\def (\lambda (e2: C).(let TMP_20 \def (Bind b) in (let TMP_21 \def (CHead c3 
+TMP_20 u) in (csuba g TMP_21 e2)))) in (let TMP_25 \def (\lambda (e2: C).(let 
+TMP_23 \def (Bind b) in (let TMP_24 \def (CHead c4 TMP_23 u) in (clear TMP_24 
+e2)))) in (let TMP_26 \def (Bind b) in (let TMP_27 \def (CHead c4 TMP_26 u) 
+in (let TMP_28 \def (Bind b) in (let TMP_29 \def (csuba_head g c3 c4 H0 
+TMP_28 u) in (let TMP_30 \def (clear_bind b c4 u) in (let TMP_31 \def 
+(ex_intro2 C TMP_22 TMP_25 TMP_27 TMP_29 TMP_30) in (let TMP_32 \def 
+(clear_gen_bind b c3 e1 u H3) in (eq_ind_r C TMP_14 TMP_19 TMP_31 e1 
+TMP_32))))))))))))))) in (let TMP_48 \def (\lambda (f: F).(\lambda (H3: 
+(clear (CHead c3 (Flat f) u) e1)).(let TMP_34 \def (clear_gen_flat f c3 e1 u 
+H3) in (let H4 \def (H1 e1 TMP_34) in (let TMP_35 \def (\lambda (e2: 
+C).(csuba g e1 e2)) in (let TMP_36 \def (\lambda (e2: C).(clear c4 e2)) in 
+(let TMP_37 \def (\lambda (e2: C).(csuba g e1 e2)) in (let TMP_40 \def 
+(\lambda (e2: C).(let TMP_38 \def (Flat f) in (let TMP_39 \def (CHead c4 
+TMP_38 u) in (clear TMP_39 e2)))) in (let TMP_41 \def (ex2 C TMP_37 TMP_40) 
+in (let TMP_47 \def (\lambda (x: C).(\lambda (H5: (csuba g e1 x)).(\lambda 
+(H6: (clear c4 x)).(let TMP_42 \def (\lambda (e2: C).(csuba g e1 e2)) in (let 
+TMP_45 \def (\lambda (e2: C).(let TMP_43 \def (Flat f) in (let TMP_44 \def 
+(CHead c4 TMP_43 u) in (clear TMP_44 e2)))) in (let TMP_46 \def (clear_flat 
+c4 x H6 f u) in (ex_intro2 C TMP_42 TMP_45 x H5 TMP_46))))))) in (ex2_ind C 
+TMP_35 TMP_36 TMP_41 TMP_47 H4))))))))))) in (K_ind TMP_12 TMP_33 TMP_48 k 
+H2)))))))))))) in (let TMP_69 \def (\lambda (c3: C).(\lambda (c4: C).(\lambda 
+(H0: (csuba g c3 c4)).(\lambda (_: ((\forall (e1: C).((clear c3 e1) \to (ex2 
+C (\lambda (e2: C).(csuba g e1 e2)) (\lambda (e2: C).(clear c4 
+e2))))))).(\lambda (b: B).(\lambda (H2: (not (eq B b Void))).(\lambda (u1: 
+T).(\lambda (u2: T).(\lambda (e1: C).(\lambda (H3: (clear (CHead c3 (Bind 
+Void) u1) e1)).(let TMP_50 \def (Bind Void) in (let TMP_51 \def (CHead c3 
+TMP_50 u1) in (let TMP_56 \def (\lambda (c: C).(let TMP_52 \def (\lambda (e2: 
+C).(csuba g c e2)) in (let TMP_55 \def (\lambda (e2: C).(let TMP_53 \def 
+(Bind b) in (let TMP_54 \def (CHead c4 TMP_53 u2) in (clear TMP_54 e2)))) in 
+(ex2 C TMP_52 TMP_55)))) in (let TMP_59 \def (\lambda (e2: C).(let TMP_57 
+\def (Bind Void) in (let TMP_58 \def (CHead c3 TMP_57 u1) in (csuba g TMP_58 
+e2)))) in (let TMP_62 \def (\lambda (e2: C).(let TMP_60 \def (Bind b) in (let 
+TMP_61 \def (CHead c4 TMP_60 u2) in (clear TMP_61 e2)))) in (let TMP_63 \def 
+(Bind b) in (let TMP_64 \def (CHead c4 TMP_63 u2) in (let TMP_65 \def 
+(csuba_void g c3 c4 H0 b H2 u1 u2) in (let TMP_66 \def (clear_bind b c4 u2) 
+in (let TMP_67 \def (ex_intro2 C TMP_59 TMP_62 TMP_64 TMP_65 TMP_66) in (let 
+TMP_68 \def (clear_gen_bind Void c3 e1 u1 H3) in (eq_ind_r C TMP_51 TMP_56 
+TMP_67 e1 TMP_68)))))))))))))))))))))) in (let TMP_89 \def (\lambda (c3: 
 C).(\lambda (c4: C).(\lambda (H0: (csuba g c3 c4)).(\lambda (_: ((\forall 
 (e1: C).((clear c3 e1) \to (ex2 C (\lambda (e2: C).(csuba g e1 e2)) (\lambda 
-(e2: C).(clear c4 e2))))))).(\lambda (b: B).(\lambda (H2: (not (eq B b 
-Void))).(\lambda (u1: T).(\lambda (u2: T).(\lambda (e1: C).(\lambda (H3: 
-(clear (CHead c3 (Bind Void) u1) e1)).(eq_ind_r C (CHead c3 (Bind Void) u1) 
-(\lambda (c: C).(ex2 C (\lambda (e2: C).(csuba g c e2)) (\lambda (e2: 
-C).(clear (CHead c4 (Bind b) u2) e2)))) (ex_intro2 C (\lambda (e2: C).(csuba 
-g (CHead c3 (Bind Void) u1) e2)) (\lambda (e2: C).(clear (CHead c4 (Bind b) 
-u2) e2)) (CHead c4 (Bind b) u2) (csuba_void g c3 c4 H0 b H2 u1 u2) 
-(clear_bind b c4 u2)) e1 (clear_gen_bind Void c3 e1 u1 H3)))))))))))) 
-(\lambda (c3: C).(\lambda (c4: C).(\lambda (H0: (csuba g c3 c4)).(\lambda (_: 
-((\forall (e1: C).((clear c3 e1) \to (ex2 C (\lambda (e2: C).(csuba g e1 e2)) 
-(\lambda (e2: C).(clear c4 e2))))))).(\lambda (t: T).(\lambda (a: A).(\lambda 
-(H2: (arity g c3 t (asucc g a))).(\lambda (u: T).(\lambda (H3: (arity g c4 u 
-a)).(\lambda (e1: C).(\lambda (H4: (clear (CHead c3 (Bind Abst) t) 
-e1)).(eq_ind_r C (CHead c3 (Bind Abst) t) (\lambda (c: C).(ex2 C (\lambda 
-(e2: C).(csuba g c e2)) (\lambda (e2: C).(clear (CHead c4 (Bind Abbr) u) 
-e2)))) (ex_intro2 C (\lambda (e2: C).(csuba g (CHead c3 (Bind Abst) t) e2)) 
-(\lambda (e2: C).(clear (CHead c4 (Bind Abbr) u) e2)) (CHead c4 (Bind Abbr) 
-u) (csuba_abst g c3 c4 H0 t a H2 u H3) (clear_bind Abbr c4 u)) e1 
-(clear_gen_bind Abst c3 e1 t H4))))))))))))) c1 c2 H)))).
-(* COMMENTS
-Initial nodes: 937
-END *)
+(e2: C).(clear c4 e2))))))).(\lambda (t: T).(\lambda (a: A).(\lambda (H2: 
+(arity g c3 t (asucc g a))).(\lambda (u: T).(\lambda (H3: (arity g c4 u 
+a)).(\lambda (e1: C).(\lambda (H4: (clear (CHead c3 (Bind Abst) t) e1)).(let 
+TMP_70 \def (Bind Abst) in (let TMP_71 \def (CHead c3 TMP_70 t) in (let 
+TMP_76 \def (\lambda (c: C).(let TMP_72 \def (\lambda (e2: C).(csuba g c e2)) 
+in (let TMP_75 \def (\lambda (e2: C).(let TMP_73 \def (Bind Abbr) in (let 
+TMP_74 \def (CHead c4 TMP_73 u) in (clear TMP_74 e2)))) in (ex2 C TMP_72 
+TMP_75)))) in (let TMP_79 \def (\lambda (e2: C).(let TMP_77 \def (Bind Abst) 
+in (let TMP_78 \def (CHead c3 TMP_77 t) in (csuba g TMP_78 e2)))) in (let 
+TMP_82 \def (\lambda (e2: C).(let TMP_80 \def (Bind Abbr) in (let TMP_81 \def 
+(CHead c4 TMP_80 u) in (clear TMP_81 e2)))) in (let TMP_83 \def (Bind Abbr) 
+in (let TMP_84 \def (CHead c4 TMP_83 u) in (let TMP_85 \def (csuba_abst g c3 
+c4 H0 t a H2 u H3) in (let TMP_86 \def (clear_bind Abbr c4 u) in (let TMP_87 
+\def (ex_intro2 C TMP_79 TMP_82 TMP_84 TMP_85 TMP_86) in (let TMP_88 \def 
+(clear_gen_bind Abst c3 e1 t H4) in (eq_ind_r C TMP_71 TMP_76 TMP_87 e1 
+TMP_88))))))))))))))))))))))) in (csuba_ind g TMP_3 TMP_8 TMP_49 TMP_69 
+TMP_89 c1 c2 H))))))))).
 
 theorem csuba_clear_trans:
  \forall (g: G).(\forall (c1: C).(\forall (c2: C).((csuba g c2 c1) \to 
@@ -78,51 +109,82 @@ theorem csuba_clear_trans:
 (\lambda (e2: C).(clear c2 e2))))))))
 \def
  \lambda (g: G).(\lambda (c1: C).(\lambda (c2: C).(\lambda (H: (csuba g c2 
-c1)).(csuba_ind g (\lambda (c: C).(\lambda (c0: C).(\forall (e1: C).((clear 
-c0 e1) \to (ex2 C (\lambda (e2: C).(csuba g e2 e1)) (\lambda (e2: C).(clear c 
-e2))))))) (\lambda (n: nat).(\lambda (e1: C).(\lambda (H0: (clear (CSort n) 
-e1)).(clear_gen_sort e1 n H0 (ex2 C (\lambda (e2: C).(csuba g e2 e1)) 
-(\lambda (e2: C).(clear (CSort n) e2))))))) (\lambda (c3: C).(\lambda (c4: 
-C).(\lambda (H0: (csuba g c3 c4)).(\lambda (H1: ((\forall (e1: C).((clear c4 
-e1) \to (ex2 C (\lambda (e2: C).(csuba g e2 e1)) (\lambda (e2: C).(clear c3 
+c1)).(let TMP_3 \def (\lambda (c: C).(\lambda (c0: C).(\forall (e1: 
+C).((clear c0 e1) \to (let TMP_1 \def (\lambda (e2: C).(csuba g e2 e1)) in 
+(let TMP_2 \def (\lambda (e2: C).(clear c e2)) in (ex2 C TMP_1 TMP_2))))))) 
+in (let TMP_8 \def (\lambda (n: nat).(\lambda (e1: C).(\lambda (H0: (clear 
+(CSort n) e1)).(let TMP_4 \def (\lambda (e2: C).(csuba g e2 e1)) in (let 
+TMP_6 \def (\lambda (e2: C).(let TMP_5 \def (CSort n) in (clear TMP_5 e2))) 
+in (let TMP_7 \def (ex2 C TMP_4 TMP_6) in (clear_gen_sort e1 n H0 
+TMP_7))))))) in (let TMP_49 \def (\lambda (c3: C).(\lambda (c4: C).(\lambda 
+(H0: (csuba g c3 c4)).(\lambda (H1: ((\forall (e1: C).((clear c4 e1) \to (ex2 
+C (\lambda (e2: C).(csuba g e2 e1)) (\lambda (e2: C).(clear c3 
 e2))))))).(\lambda (k: K).(\lambda (u: T).(\lambda (e1: C).(\lambda (H2: 
-(clear (CHead c4 k u) e1)).(K_ind (\lambda (k0: K).((clear (CHead c4 k0 u) 
-e1) \to (ex2 C (\lambda (e2: C).(csuba g e2 e1)) (\lambda (e2: C).(clear 
-(CHead c3 k0 u) e2))))) (\lambda (b: B).(\lambda (H3: (clear (CHead c4 (Bind 
-b) u) e1)).(eq_ind_r C (CHead c4 (Bind b) u) (\lambda (c: C).(ex2 C (\lambda 
-(e2: C).(csuba g e2 c)) (\lambda (e2: C).(clear (CHead c3 (Bind b) u) e2)))) 
-(ex_intro2 C (\lambda (e2: C).(csuba g e2 (CHead c4 (Bind b) u))) (\lambda 
-(e2: C).(clear (CHead c3 (Bind b) u) e2)) (CHead c3 (Bind b) u) (csuba_head g 
-c3 c4 H0 (Bind b) u) (clear_bind b c3 u)) e1 (clear_gen_bind b c4 e1 u H3)))) 
-(\lambda (f: F).(\lambda (H3: (clear (CHead c4 (Flat f) u) e1)).(let H4 \def 
-(H1 e1 (clear_gen_flat f c4 e1 u H3)) in (ex2_ind C (\lambda (e2: C).(csuba g 
-e2 e1)) (\lambda (e2: C).(clear c3 e2)) (ex2 C (\lambda (e2: C).(csuba g e2 
-e1)) (\lambda (e2: C).(clear (CHead c3 (Flat f) u) e2))) (\lambda (x: 
-C).(\lambda (H5: (csuba g x e1)).(\lambda (H6: (clear c3 x)).(ex_intro2 C 
-(\lambda (e2: C).(csuba g e2 e1)) (\lambda (e2: C).(clear (CHead c3 (Flat f) 
-u) e2)) x H5 (clear_flat c3 x H6 f u))))) H4)))) k H2))))))))) (\lambda (c3: 
-C).(\lambda (c4: C).(\lambda (H0: (csuba g c3 c4)).(\lambda (_: ((\forall 
-(e1: C).((clear c4 e1) \to (ex2 C (\lambda (e2: C).(csuba g e2 e1)) (\lambda 
-(e2: C).(clear c3 e2))))))).(\lambda (b: B).(\lambda (H2: (not (eq B b 
-Void))).(\lambda (u1: T).(\lambda (u2: T).(\lambda (e1: C).(\lambda (H3: 
-(clear (CHead c4 (Bind b) u2) e1)).(eq_ind_r C (CHead c4 (Bind b) u2) 
-(\lambda (c: C).(ex2 C (\lambda (e2: C).(csuba g e2 c)) (\lambda (e2: 
-C).(clear (CHead c3 (Bind Void) u1) e2)))) (ex_intro2 C (\lambda (e2: 
-C).(csuba g e2 (CHead c4 (Bind b) u2))) (\lambda (e2: C).(clear (CHead c3 
-(Bind Void) u1) e2)) (CHead c3 (Bind Void) u1) (csuba_void g c3 c4 H0 b H2 u1 
-u2) (clear_bind Void c3 u1)) e1 (clear_gen_bind b c4 e1 u2 H3)))))))))))) 
-(\lambda (c3: C).(\lambda (c4: C).(\lambda (H0: (csuba g c3 c4)).(\lambda (_: 
-((\forall (e1: C).((clear c4 e1) \to (ex2 C (\lambda (e2: C).(csuba g e2 e1)) 
-(\lambda (e2: C).(clear c3 e2))))))).(\lambda (t: T).(\lambda (a: A).(\lambda 
-(H2: (arity g c3 t (asucc g a))).(\lambda (u: T).(\lambda (H3: (arity g c4 u 
-a)).(\lambda (e1: C).(\lambda (H4: (clear (CHead c4 (Bind Abbr) u) 
-e1)).(eq_ind_r C (CHead c4 (Bind Abbr) u) (\lambda (c: C).(ex2 C (\lambda 
-(e2: C).(csuba g e2 c)) (\lambda (e2: C).(clear (CHead c3 (Bind Abst) t) 
-e2)))) (ex_intro2 C (\lambda (e2: C).(csuba g e2 (CHead c4 (Bind Abbr) u))) 
-(\lambda (e2: C).(clear (CHead c3 (Bind Abst) t) e2)) (CHead c3 (Bind Abst) 
-t) (csuba_abst g c3 c4 H0 t a H2 u H3) (clear_bind Abst c3 t)) e1 
-(clear_gen_bind Abbr c4 e1 u H4))))))))))))) c2 c1 H)))).
-(* COMMENTS
-Initial nodes: 937
-END *)
+(clear (CHead c4 k u) e1)).(let TMP_12 \def (\lambda (k0: K).((clear (CHead 
+c4 k0 u) e1) \to (let TMP_9 \def (\lambda (e2: C).(csuba g e2 e1)) in (let 
+TMP_11 \def (\lambda (e2: C).(let TMP_10 \def (CHead c3 k0 u) in (clear 
+TMP_10 e2))) in (ex2 C TMP_9 TMP_11))))) in (let TMP_33 \def (\lambda (b: 
+B).(\lambda (H3: (clear (CHead c4 (Bind b) u) e1)).(let TMP_13 \def (Bind b) 
+in (let TMP_14 \def (CHead c4 TMP_13 u) in (let TMP_19 \def (\lambda (c: 
+C).(let TMP_15 \def (\lambda (e2: C).(csuba g e2 c)) in (let TMP_18 \def 
+(\lambda (e2: C).(let TMP_16 \def (Bind b) in (let TMP_17 \def (CHead c3 
+TMP_16 u) in (clear TMP_17 e2)))) in (ex2 C TMP_15 TMP_18)))) in (let TMP_22 
+\def (\lambda (e2: C).(let TMP_20 \def (Bind b) in (let TMP_21 \def (CHead c4 
+TMP_20 u) in (csuba g e2 TMP_21)))) in (let TMP_25 \def (\lambda (e2: C).(let 
+TMP_23 \def (Bind b) in (let TMP_24 \def (CHead c3 TMP_23 u) in (clear TMP_24 
+e2)))) in (let TMP_26 \def (Bind b) in (let TMP_27 \def (CHead c3 TMP_26 u) 
+in (let TMP_28 \def (Bind b) in (let TMP_29 \def (csuba_head g c3 c4 H0 
+TMP_28 u) in (let TMP_30 \def (clear_bind b c3 u) in (let TMP_31 \def 
+(ex_intro2 C TMP_22 TMP_25 TMP_27 TMP_29 TMP_30) in (let TMP_32 \def 
+(clear_gen_bind b c4 e1 u H3) in (eq_ind_r C TMP_14 TMP_19 TMP_31 e1 
+TMP_32))))))))))))))) in (let TMP_48 \def (\lambda (f: F).(\lambda (H3: 
+(clear (CHead c4 (Flat f) u) e1)).(let TMP_34 \def (clear_gen_flat f c4 e1 u 
+H3) in (let H4 \def (H1 e1 TMP_34) in (let TMP_35 \def (\lambda (e2: 
+C).(csuba g e2 e1)) in (let TMP_36 \def (\lambda (e2: C).(clear c3 e2)) in 
+(let TMP_37 \def (\lambda (e2: C).(csuba g e2 e1)) in (let TMP_40 \def 
+(\lambda (e2: C).(let TMP_38 \def (Flat f) in (let TMP_39 \def (CHead c3 
+TMP_38 u) in (clear TMP_39 e2)))) in (let TMP_41 \def (ex2 C TMP_37 TMP_40) 
+in (let TMP_47 \def (\lambda (x: C).(\lambda (H5: (csuba g x e1)).(\lambda 
+(H6: (clear c3 x)).(let TMP_42 \def (\lambda (e2: C).(csuba g e2 e1)) in (let 
+TMP_45 \def (\lambda (e2: C).(let TMP_43 \def (Flat f) in (let TMP_44 \def 
+(CHead c3 TMP_43 u) in (clear TMP_44 e2)))) in (let TMP_46 \def (clear_flat 
+c3 x H6 f u) in (ex_intro2 C TMP_42 TMP_45 x H5 TMP_46))))))) in (ex2_ind C 
+TMP_35 TMP_36 TMP_41 TMP_47 H4))))))))))) in (K_ind TMP_12 TMP_33 TMP_48 k 
+H2)))))))))))) in (let TMP_69 \def (\lambda (c3: C).(\lambda (c4: C).(\lambda 
+(H0: (csuba g c3 c4)).(\lambda (_: ((\forall (e1: C).((clear c4 e1) \to (ex2 
+C (\lambda (e2: C).(csuba g e2 e1)) (\lambda (e2: C).(clear c3 
+e2))))))).(\lambda (b: B).(\lambda (H2: (not (eq B b Void))).(\lambda (u1: 
+T).(\lambda (u2: T).(\lambda (e1: C).(\lambda (H3: (clear (CHead c4 (Bind b) 
+u2) e1)).(let TMP_50 \def (Bind b) in (let TMP_51 \def (CHead c4 TMP_50 u2) 
+in (let TMP_56 \def (\lambda (c: C).(let TMP_52 \def (\lambda (e2: C).(csuba 
+g e2 c)) in (let TMP_55 \def (\lambda (e2: C).(let TMP_53 \def (Bind Void) in 
+(let TMP_54 \def (CHead c3 TMP_53 u1) in (clear TMP_54 e2)))) in (ex2 C 
+TMP_52 TMP_55)))) in (let TMP_59 \def (\lambda (e2: C).(let TMP_57 \def (Bind 
+b) in (let TMP_58 \def (CHead c4 TMP_57 u2) in (csuba g e2 TMP_58)))) in (let 
+TMP_62 \def (\lambda (e2: C).(let TMP_60 \def (Bind Void) in (let TMP_61 \def 
+(CHead c3 TMP_60 u1) in (clear TMP_61 e2)))) in (let TMP_63 \def (Bind Void) 
+in (let TMP_64 \def (CHead c3 TMP_63 u1) in (let TMP_65 \def (csuba_void g c3 
+c4 H0 b H2 u1 u2) in (let TMP_66 \def (clear_bind Void c3 u1) in (let TMP_67 
+\def (ex_intro2 C TMP_59 TMP_62 TMP_64 TMP_65 TMP_66) in (let TMP_68 \def 
+(clear_gen_bind b c4 e1 u2 H3) in (eq_ind_r C TMP_51 TMP_56 TMP_67 e1 
+TMP_68)))))))))))))))))))))) in (let TMP_89 \def (\lambda (c3: C).(\lambda 
+(c4: C).(\lambda (H0: (csuba g c3 c4)).(\lambda (_: ((\forall (e1: C).((clear 
+c4 e1) \to (ex2 C (\lambda (e2: C).(csuba g e2 e1)) (\lambda (e2: C).(clear 
+c3 e2))))))).(\lambda (t: T).(\lambda (a: A).(\lambda (H2: (arity g c3 t 
+(asucc g a))).(\lambda (u: T).(\lambda (H3: (arity g c4 u a)).(\lambda (e1: 
+C).(\lambda (H4: (clear (CHead c4 (Bind Abbr) u) e1)).(let TMP_70 \def (Bind 
+Abbr) in (let TMP_71 \def (CHead c4 TMP_70 u) in (let TMP_76 \def (\lambda 
+(c: C).(let TMP_72 \def (\lambda (e2: C).(csuba g e2 c)) in (let TMP_75 \def 
+(\lambda (e2: C).(let TMP_73 \def (Bind Abst) in (let TMP_74 \def (CHead c3 
+TMP_73 t) in (clear TMP_74 e2)))) in (ex2 C TMP_72 TMP_75)))) in (let TMP_79 
+\def (\lambda (e2: C).(let TMP_77 \def (Bind Abbr) in (let TMP_78 \def (CHead 
+c4 TMP_77 u) in (csuba g e2 TMP_78)))) in (let TMP_82 \def (\lambda (e2: 
+C).(let TMP_80 \def (Bind Abst) in (let TMP_81 \def (CHead c3 TMP_80 t) in 
+(clear TMP_81 e2)))) in (let TMP_83 \def (Bind Abst) in (let TMP_84 \def 
+(CHead c3 TMP_83 t) in (let TMP_85 \def (csuba_abst g c3 c4 H0 t a H2 u H3) 
+in (let TMP_86 \def (clear_bind Abst c3 t) in (let TMP_87 \def (ex_intro2 C 
+TMP_79 TMP_82 TMP_84 TMP_85 TMP_86) in (let TMP_88 \def (clear_gen_bind Abbr 
+c4 e1 u H4) in (eq_ind_r C TMP_71 TMP_76 TMP_87 e1 
+TMP_88))))))))))))))))))))))) in (csuba_ind g TMP_3 TMP_8 TMP_49 TMP_69 
+TMP_89 c2 c1 H))))))))).
 
index cc6a46cd8e489b17379a78140d45d71df9d081b4..948ee345da0b05da34e78a8ebd31d72f816d8e14 100644 (file)
@@ -14,7 +14,7 @@
 
 (* This file was automatically generated: do not edit *********************)
 
-include "Basic-1/arity/defs.ma".
+include "basic_1/arity/defs.ma".
 
 inductive csuba (g: G): C \to (C \to Prop) \def
 | csuba_sort: \forall (n: nat).(csuba g (CSort n) (CSort n))
index 1047ac13dee1b86e5fed395b607fe0d4528592ce..4aba7bc43219e4615ff58ac23c91db2cfa2c6a93 100644 (file)
@@ -14,9 +14,9 @@
 
 (* This file was automatically generated: do not edit *********************)
 
-include "Basic-1/csuba/fwd.ma".
+include "basic_1/csuba/fwd.ma".
 
-include "Basic-1/drop/fwd.ma".
+include "basic_1/drop/fwd.ma".
 
 theorem csuba_drop_abbr:
  \forall (i: nat).(\forall (c1: C).(\forall (d1: C).(\forall (u: T).((drop i 
@@ -56,76 +56,75 @@ Abbr) u) (CSort n0)) (eq nat (S n) O) (eq nat O O) (ex2 C (\lambda (d2:
 C).(drop (S n) O c2 (CHead d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 
 d2))) (\lambda (_: (eq C (CHead d1 (Bind Abbr) u) (CSort n0))).(\lambda (H3: 
 (eq nat (S n) O)).(\lambda (_: (eq nat O O)).(let H5 \def (eq_ind nat (S n) 
-(\lambda (ee: nat).(match ee in nat return (\lambda (_: nat).Prop) with [O 
-\Rightarrow False | (S _) \Rightarrow True])) I O H3) in (False_ind (ex2 C 
-(\lambda (d2: C).(drop (S n) O c2 (CHead d2 (Bind Abbr) u))) (\lambda (d2: 
-C).(csuba g d1 d2))) H5))))) (drop_gen_sort n0 (S n) O (CHead d1 (Bind Abbr) 
-u) H0))))))))) (\lambda (c: C).(\lambda (H0: ((\forall (d1: C).(\forall (u: 
-T).((drop (S n) O c (CHead d1 (Bind Abbr) u)) \to (\forall (g: G).(\forall 
-(c2: C).((csuba g c c2) \to (ex2 C (\lambda (d2: C).(drop (S n) O c2 (CHead 
-d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 d2))))))))))).(\lambda (k: 
-K).(\lambda (t: T).(\lambda (d1: C).(\lambda (u: T).(\lambda (H1: (drop (S n) 
-O (CHead c k t) (CHead d1 (Bind Abbr) u))).(\lambda (g: G).(\lambda (c2: 
-C).(\lambda (H2: (csuba g (CHead c k t) c2)).(K_ind (\lambda (k0: K).((csuba 
-g (CHead c k0 t) c2) \to ((drop (r k0 n) O c (CHead d1 (Bind Abbr) u)) \to 
-(ex2 C (\lambda (d2: C).(drop (S n) O c2 (CHead d2 (Bind Abbr) u))) (\lambda 
-(d2: C).(csuba g d1 d2)))))) (\lambda (b: B).(\lambda (H3: (csuba g (CHead c 
-(Bind b) t) c2)).(\lambda (H4: (drop (r (Bind b) n) O c (CHead d1 (Bind Abbr) 
-u))).(B_ind (\lambda (b0: B).((csuba g (CHead c (Bind b0) t) c2) \to ((drop 
-(r (Bind b0) n) O c (CHead d1 (Bind Abbr) u)) \to (ex2 C (\lambda (d2: 
+(\lambda (ee: nat).(match ee with [O \Rightarrow False | (S _) \Rightarrow 
+True])) I O H3) in (False_ind (ex2 C (\lambda (d2: C).(drop (S n) O c2 (CHead 
+d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 d2))) H5))))) (drop_gen_sort 
+n0 (S n) O (CHead d1 (Bind Abbr) u) H0))))))))) (\lambda (c: C).(\lambda (H0: 
+((\forall (d1: C).(\forall (u: T).((drop (S n) O c (CHead d1 (Bind Abbr) u)) 
+\to (\forall (g: G).(\forall (c2: C).((csuba g c c2) \to (ex2 C (\lambda (d2: 
 C).(drop (S n) O c2 (CHead d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 
-d2)))))) (\lambda (H5: (csuba g (CHead c (Bind Abbr) t) c2)).(\lambda (H6: 
-(drop (r (Bind Abbr) n) O c (CHead d1 (Bind Abbr) u))).(let H_x \def 
-(csuba_gen_abbr g c c2 t H5) in (let H7 \def H_x in (ex2_ind C (\lambda (d2: 
-C).(eq C c2 (CHead d2 (Bind Abbr) t))) (\lambda (d2: C).(csuba g c d2)) (ex2 
-C (\lambda (d2: C).(drop (S n) O c2 (CHead d2 (Bind Abbr) u))) (\lambda (d2: 
-C).(csuba g d1 d2))) (\lambda (x: C).(\lambda (H8: (eq C c2 (CHead x (Bind 
-Abbr) t))).(\lambda (H9: (csuba g c x)).(eq_ind_r C (CHead x (Bind Abbr) t) 
-(\lambda (c0: C).(ex2 C (\lambda (d2: C).(drop (S n) O c0 (CHead d2 (Bind 
-Abbr) u))) (\lambda (d2: C).(csuba g d1 d2)))) (let H10 \def (H c d1 u H6 g x 
-H9) in (ex2_ind C (\lambda (d2: C).(drop n O x (CHead d2 (Bind Abbr) u))) 
-(\lambda (d2: C).(csuba g d1 d2)) (ex2 C (\lambda (d2: C).(drop (S n) O 
-(CHead x (Bind Abbr) t) (CHead d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g 
-d1 d2))) (\lambda (x0: C).(\lambda (H11: (drop n O x (CHead x0 (Bind Abbr) 
-u))).(\lambda (H12: (csuba g d1 x0)).(let H13 \def (refl_equal nat (r (Bind 
-Abbr) n)) in (let H14 \def (eq_ind nat n (\lambda (n0: nat).(drop n0 O x 
-(CHead x0 (Bind Abbr) u))) H11 (r (Bind Abbr) n) H13) in (ex_intro2 C 
-(\lambda (d2: C).(drop (S n) O (CHead x (Bind Abbr) t) (CHead d2 (Bind Abbr) 
-u))) (\lambda (d2: C).(csuba g d1 d2)) x0 (drop_drop (Bind Abbr) n x (CHead 
-x0 (Bind Abbr) u) H14 t) H12)))))) H10)) c2 H8)))) H7))))) (\lambda (H5: 
-(csuba g (CHead c (Bind Abst) t) c2)).(\lambda (H6: (drop (r (Bind Abst) n) O 
-c (CHead d1 (Bind Abbr) u))).(let H_x \def (csuba_gen_abst g c c2 t H5) in 
-(let H7 \def H_x in (or_ind (ex2 C (\lambda (d2: C).(eq C c2 (CHead d2 (Bind 
-Abst) t))) (\lambda (d2: C).(csuba g c d2))) (ex4_3 C T A (\lambda (d2: 
-C).(\lambda (u2: T).(\lambda (_: A).(eq C c2 (CHead d2 (Bind Abbr) u2))))) 
-(\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g c d2)))) (\lambda 
-(_: C).(\lambda (_: T).(\lambda (a: A).(arity g c t (asucc g a))))) (\lambda 
-(d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 a))))) (ex2 C 
-(\lambda (d2: C).(drop (S n) O c2 (CHead d2 (Bind Abbr) u))) (\lambda (d2: 
-C).(csuba g d1 d2))) (\lambda (H8: (ex2 C (\lambda (d2: C).(eq C c2 (CHead d2 
-(Bind Abst) t))) (\lambda (d2: C).(csuba g c d2)))).(ex2_ind C (\lambda (d2: 
-C).(eq C c2 (CHead d2 (Bind Abst) t))) (\lambda (d2: C).(csuba g c d2)) (ex2 
-C (\lambda (d2: C).(drop (S n) O c2 (CHead d2 (Bind Abbr) u))) (\lambda (d2: 
-C).(csuba g d1 d2))) (\lambda (x: C).(\lambda (H9: (eq C c2 (CHead x (Bind 
-Abst) t))).(\lambda (H10: (csuba g c x)).(eq_ind_r C (CHead x (Bind Abst) t) 
-(\lambda (c0: C).(ex2 C (\lambda (d2: C).(drop (S n) O c0 (CHead d2 (Bind 
-Abbr) u))) (\lambda (d2: C).(csuba g d1 d2)))) (let H11 \def (H c d1 u H6 g x 
-H10) in (ex2_ind C (\lambda (d2: C).(drop n O x (CHead d2 (Bind Abbr) u))) 
-(\lambda (d2: C).(csuba g d1 d2)) (ex2 C (\lambda (d2: C).(drop (S n) O 
-(CHead x (Bind Abst) t) (CHead d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g 
-d1 d2))) (\lambda (x0: C).(\lambda (H12: (drop n O x (CHead x0 (Bind Abbr) 
-u))).(\lambda (H13: (csuba g d1 x0)).(let H14 \def (refl_equal nat (r (Bind 
-Abbr) n)) in (let H15 \def (eq_ind nat n (\lambda (n0: nat).(drop n0 O x 
-(CHead x0 (Bind Abbr) u))) H12 (r (Bind Abbr) n) H14) in (ex_intro2 C 
-(\lambda (d2: C).(drop (S n) O (CHead x (Bind Abst) t) (CHead d2 (Bind Abbr) 
-u))) (\lambda (d2: C).(csuba g d1 d2)) x0 (drop_drop (Bind Abst) n x (CHead 
-x0 (Bind Abbr) u) H15 t) H13)))))) H11)) c2 H9)))) H8)) (\lambda (H8: (ex4_3 
-C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(eq C c2 (CHead d2 
-(Bind Abbr) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g 
-c d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g c t (asucc 
-g a))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 
-a)))))).(ex4_3_ind C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: 
-A).(eq C c2 (CHead d2 (Bind Abbr) u2))))) (\lambda (d2: C).(\lambda (_: 
+d2))))))))))).(\lambda (k: K).(\lambda (t: T).(\lambda (d1: C).(\lambda (u: 
+T).(\lambda (H1: (drop (S n) O (CHead c k t) (CHead d1 (Bind Abbr) 
+u))).(\lambda (g: G).(\lambda (c2: C).(\lambda (H2: (csuba g (CHead c k t) 
+c2)).(K_ind (\lambda (k0: K).((csuba g (CHead c k0 t) c2) \to ((drop (r k0 n) 
+O c (CHead d1 (Bind Abbr) u)) \to (ex2 C (\lambda (d2: C).(drop (S n) O c2 
+(CHead d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 d2)))))) (\lambda (b: 
+B).(\lambda (H3: (csuba g (CHead c (Bind b) t) c2)).(\lambda (H4: (drop (r 
+(Bind b) n) O c (CHead d1 (Bind Abbr) u))).(B_ind (\lambda (b0: B).((csuba g 
+(CHead c (Bind b0) t) c2) \to ((drop (r (Bind b0) n) O c (CHead d1 (Bind 
+Abbr) u)) \to (ex2 C (\lambda (d2: C).(drop (S n) O c2 (CHead d2 (Bind Abbr) 
+u))) (\lambda (d2: C).(csuba g d1 d2)))))) (\lambda (H5: (csuba g (CHead c 
+(Bind Abbr) t) c2)).(\lambda (H6: (drop (r (Bind Abbr) n) O c (CHead d1 (Bind 
+Abbr) u))).(let H_x \def (csuba_gen_abbr g c c2 t H5) in (let H7 \def H_x in 
+(ex2_ind C (\lambda (d2: C).(eq C c2 (CHead d2 (Bind Abbr) t))) (\lambda (d2: 
+C).(csuba g c d2)) (ex2 C (\lambda (d2: C).(drop (S n) O c2 (CHead d2 (Bind 
+Abbr) u))) (\lambda (d2: C).(csuba g d1 d2))) (\lambda (x: C).(\lambda (H8: 
+(eq C c2 (CHead x (Bind Abbr) t))).(\lambda (H9: (csuba g c x)).(eq_ind_r C 
+(CHead x (Bind Abbr) t) (\lambda (c0: C).(ex2 C (\lambda (d2: C).(drop (S n) 
+O c0 (CHead d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 d2)))) (let H10 
+\def (H c d1 u H6 g x H9) in (ex2_ind C (\lambda (d2: C).(drop n O x (CHead 
+d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 d2)) (ex2 C (\lambda (d2: 
+C).(drop (S n) O (CHead x (Bind Abbr) t) (CHead d2 (Bind Abbr) u))) (\lambda 
+(d2: C).(csuba g d1 d2))) (\lambda (x0: C).(\lambda (H11: (drop n O x (CHead 
+x0 (Bind Abbr) u))).(\lambda (H12: (csuba g d1 x0)).(let H13 \def (refl_equal 
+nat (r (Bind Abbr) n)) in (let H14 \def (eq_ind nat n (\lambda (n0: 
+nat).(drop n0 O x (CHead x0 (Bind Abbr) u))) H11 (r (Bind Abbr) n) H13) in 
+(ex_intro2 C (\lambda (d2: C).(drop (S n) O (CHead x (Bind Abbr) t) (CHead d2 
+(Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 d2)) x0 (drop_drop (Bind Abbr) 
+n x (CHead x0 (Bind Abbr) u) H14 t) H12)))))) H10)) c2 H8)))) H7))))) 
+(\lambda (H5: (csuba g (CHead c (Bind Abst) t) c2)).(\lambda (H6: (drop (r 
+(Bind Abst) n) O c (CHead d1 (Bind Abbr) u))).(let H_x \def (csuba_gen_abst g 
+c c2 t H5) in (let H7 \def H_x in (or_ind (ex2 C (\lambda (d2: C).(eq C c2 
+(CHead d2 (Bind Abst) t))) (\lambda (d2: C).(csuba g c d2))) (ex4_3 C T A 
+(\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(eq C c2 (CHead d2 (Bind 
+Abbr) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g c 
+d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g c t (asucc g 
+a))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 
+a))))) (ex2 C (\lambda (d2: C).(drop (S n) O c2 (CHead d2 (Bind Abbr) u))) 
+(\lambda (d2: C).(csuba g d1 d2))) (\lambda (H8: (ex2 C (\lambda (d2: C).(eq 
+C c2 (CHead d2 (Bind Abst) t))) (\lambda (d2: C).(csuba g c d2)))).(ex2_ind C 
+(\lambda (d2: C).(eq C c2 (CHead d2 (Bind Abst) t))) (\lambda (d2: C).(csuba 
+g c d2)) (ex2 C (\lambda (d2: C).(drop (S n) O c2 (CHead d2 (Bind Abbr) u))) 
+(\lambda (d2: C).(csuba g d1 d2))) (\lambda (x: C).(\lambda (H9: (eq C c2 
+(CHead x (Bind Abst) t))).(\lambda (H10: (csuba g c x)).(eq_ind_r C (CHead x 
+(Bind Abst) t) (\lambda (c0: C).(ex2 C (\lambda (d2: C).(drop (S n) O c0 
+(CHead d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 d2)))) (let H11 \def 
+(H c d1 u H6 g x H10) in (ex2_ind C (\lambda (d2: C).(drop n O x (CHead d2 
+(Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 d2)) (ex2 C (\lambda (d2: 
+C).(drop (S n) O (CHead x (Bind Abst) t) (CHead d2 (Bind Abbr) u))) (\lambda 
+(d2: C).(csuba g d1 d2))) (\lambda (x0: C).(\lambda (H12: (drop n O x (CHead 
+x0 (Bind Abbr) u))).(\lambda (H13: (csuba g d1 x0)).(let H14 \def (refl_equal 
+nat (r (Bind Abbr) n)) in (let H15 \def (eq_ind nat n (\lambda (n0: 
+nat).(drop n0 O x (CHead x0 (Bind Abbr) u))) H12 (r (Bind Abbr) n) H14) in 
+(ex_intro2 C (\lambda (d2: C).(drop (S n) O (CHead x (Bind Abst) t) (CHead d2 
+(Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 d2)) x0 (drop_drop (Bind Abst) 
+n x (CHead x0 (Bind Abbr) u) H15 t) H13)))))) H11)) c2 H9)))) H8)) (\lambda 
+(H8: (ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(eq C c2 
+(CHead d2 (Bind Abbr) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: 
+A).(csuba g c d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g 
+c t (asucc g a))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity 
+g d2 u2 a)))))).(ex4_3_ind C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda 
+(_: A).(eq C c2 (CHead d2 (Bind Abbr) u2))))) (\lambda (d2: C).(\lambda (_: 
 T).(\lambda (_: A).(csuba g c d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda 
 (a: A).(arity g c t (asucc g a))))) (\lambda (d2: C).(\lambda (u2: 
 T).(\lambda (a: A).(arity g d2 u2 a)))) (ex2 C (\lambda (d2: C).(drop (S n) O 
@@ -184,9 +183,6 @@ O (CHead x0 (Flat f) x1) (CHead d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g
 d1 d2)) x (drop_drop (Flat f) n x0 (CHead x (Bind Abbr) u) H9 x1) H10)))) 
 H8)) c2 H6))))) H5)))))) k H2 (drop_gen_drop k c (CHead d1 (Bind Abbr) u) t n 
 H1)))))))))))) c1)))) i).
-(* COMMENTS
-Initial nodes: 3648
-END *)
 
 theorem csuba_drop_abst:
  \forall (i: nat).(\forall (c1: C).(\forall (d1: C).(\forall (u1: T).((drop i 
@@ -314,24 +310,23 @@ u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d1 d2))))
 a))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 
 a)))))) (\lambda (_: (eq C (CHead d1 (Bind Abst) u1) (CSort n0))).(\lambda 
 (H3: (eq nat (S n) O)).(\lambda (_: (eq nat O O)).(let H5 \def (eq_ind nat (S 
-n) (\lambda (ee: nat).(match ee in nat return (\lambda (_: nat).Prop) with [O 
-\Rightarrow False | (S _) \Rightarrow True])) I O H3) in (False_ind (or (ex2 
-C (\lambda (d2: C).(drop (S n) O c2 (CHead d2 (Bind Abst) u1))) (\lambda (d2: 
-C).(csuba g d1 d2))) (ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda 
-(_: A).(drop (S n) O c2 (CHead d2 (Bind Abbr) u2))))) (\lambda (d2: 
-C).(\lambda (_: T).(\lambda (_: A).(csuba g d1 d2)))) (\lambda (_: 
-C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 (asucc g a))))) (\lambda 
-(d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 a)))))) H5))))) 
-(drop_gen_sort n0 (S n) O (CHead d1 (Bind Abst) u1) H0))))))))) (\lambda (c: 
-C).(\lambda (H0: ((\forall (d1: C).(\forall (u1: T).((drop (S n) O c (CHead 
-d1 (Bind Abst) u1)) \to (\forall (g: G).(\forall (c2: C).((csuba g c c2) \to 
-(or (ex2 C (\lambda (d2: C).(drop (S n) O c2 (CHead d2 (Bind Abst) u1))) 
-(\lambda (d2: C).(csuba g d1 d2))) (ex4_3 C T A (\lambda (d2: C).(\lambda 
-(u2: T).(\lambda (_: A).(drop (S n) O c2 (CHead d2 (Bind Abbr) u2))))) 
-(\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d1 d2)))) (\lambda 
-(_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 (asucc g a))))) 
-(\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 
-a)))))))))))))).(\lambda (k: K).(\lambda (t: T).(\lambda (d1: C).(\lambda 
+n) (\lambda (ee: nat).(match ee with [O \Rightarrow False | (S _) \Rightarrow 
+True])) I O H3) in (False_ind (or (ex2 C (\lambda (d2: C).(drop (S n) O c2 
+(CHead d2 (Bind Abst) u1))) (\lambda (d2: C).(csuba g d1 d2))) (ex4_3 C T A 
+(\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(drop (S n) O c2 (CHead d2 
+(Bind Abbr) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g 
+d1 d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 
+(asucc g a))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 
+u2 a)))))) H5))))) (drop_gen_sort n0 (S n) O (CHead d1 (Bind Abst) u1) 
+H0))))))))) (\lambda (c: C).(\lambda (H0: ((\forall (d1: C).(\forall (u1: 
+T).((drop (S n) O c (CHead d1 (Bind Abst) u1)) \to (\forall (g: G).(\forall 
+(c2: C).((csuba g c c2) \to (or (ex2 C (\lambda (d2: C).(drop (S n) O c2 
+(CHead d2 (Bind Abst) u1))) (\lambda (d2: C).(csuba g d1 d2))) (ex4_3 C T A 
+(\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(drop (S n) O c2 (CHead d2 
+(Bind Abbr) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g 
+d1 d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 
+(asucc g a))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 
+u2 a)))))))))))))).(\lambda (k: K).(\lambda (t: T).(\lambda (d1: C).(\lambda 
 (u1: T).(\lambda (H1: (drop (S n) O (CHead c k t) (CHead d1 (Bind Abst) 
 u1))).(\lambda (g: G).(\lambda (c2: C).(\lambda (H2: (csuba g (CHead c k t) 
 c2)).(K_ind (\lambda (k0: K).((csuba g (CHead c k0 t) c2) \to ((drop (r k0 n) 
@@ -802,9 +797,6 @@ g d1 u1 (asucc g a))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a:
 A).(arity g d2 u2 a)))) x2 x3 x4 (drop_drop (Flat f) n x0 (CHead x2 (Bind 
 Abbr) x3) H10 x1) H11 H12 H13))))))))) H9)) H8)) c2 H6))))) H5)))))) k H2 
 (drop_gen_drop k c (CHead d1 (Bind Abst) u1) t n H1)))))))))))) c1)))) i).
-(* COMMENTS
-Initial nodes: 12528
-END *)
 
 theorem csuba_drop_abst_rev:
  \forall (i: nat).(\forall (c1: C).(\forall (d1: C).(\forall (u: T).((drop i 
@@ -889,38 +881,37 @@ d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(drop (S n) O c2 (CHead d2
 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))) 
 (\lambda (_: (eq C (CHead d1 (Bind Abst) u) (CSort n0))).(\lambda (H3: (eq 
 nat (S n) O)).(\lambda (_: (eq nat O O)).(let H5 \def (eq_ind nat (S n) 
-(\lambda (ee: nat).(match ee in nat return (\lambda (_: nat).Prop) with [O 
-\Rightarrow False | (S _) \Rightarrow True])) I O H3) in (False_ind (or (ex2 
-C (\lambda (d2: C).(drop (S n) O c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: 
-C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(drop (S n) 
-O c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g 
-d2 d1))))) H5))))) (drop_gen_sort n0 (S n) O (CHead d1 (Bind Abst) u) 
-H0))))))))) (\lambda (c: C).(\lambda (H0: ((\forall (d1: C).(\forall (u: 
-T).((drop (S n) O c (CHead d1 (Bind Abst) u)) \to (\forall (g: G).(\forall 
-(c2: C).((csuba g c2 c) \to (or (ex2 C (\lambda (d2: C).(drop (S n) O c2 
+(\lambda (ee: nat).(match ee with [O \Rightarrow False | (S _) \Rightarrow 
+True])) I O H3) in (False_ind (or (ex2 C (\lambda (d2: C).(drop (S n) O c2 
 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T 
 (\lambda (d2: C).(\lambda (u2: T).(drop (S n) O c2 (CHead d2 (Bind Void) 
-u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))))))))))).(\lambda 
-(k: K).(\lambda (t: T).(\lambda (d1: C).(\lambda (u: T).(\lambda (H1: (drop 
-(S n) O (CHead c k t) (CHead d1 (Bind Abst) u))).(\lambda (g: G).(\lambda 
-(c2: C).(\lambda (H2: (csuba g c2 (CHead c k t))).(K_ind (\lambda (k0: 
-K).((csuba g c2 (CHead c k0 t)) \to ((drop (r k0 n) O c (CHead d1 (Bind Abst) 
-u)) \to (or (ex2 C (\lambda (d2: C).(drop (S n) O c2 (CHead d2 (Bind Abst) 
-u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda 
-(u2: T).(drop (S n) O c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: 
-C).(\lambda (_: T).(csuba g d2 d1)))))))) (\lambda (b: B).(\lambda (H3: 
-(csuba g c2 (CHead c (Bind b) t))).(\lambda (H4: (drop (r (Bind b) n) O c 
-(CHead d1 (Bind Abst) u))).(B_ind (\lambda (b0: B).((csuba g c2 (CHead c 
-(Bind b0) t)) \to ((drop (r (Bind b0) n) O c (CHead d1 (Bind Abst) u)) \to 
-(or (ex2 C (\lambda (d2: C).(drop (S n) O c2 (CHead d2 (Bind Abst) u))) 
-(\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: 
-T).(drop (S n) O c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda 
-(_: T).(csuba g d2 d1)))))))) (\lambda (H5: (csuba g c2 (CHead c (Bind Abbr) 
-t))).(\lambda (H6: (drop (r (Bind Abbr) n) O c (CHead d1 (Bind Abst) 
-u))).(let H_x \def (csuba_gen_abbr_rev g c c2 t H5) in (let H7 \def H_x in 
-(or3_ind (ex2 C (\lambda (d2: C).(eq C c2 (CHead d2 (Bind Abbr) t))) (\lambda 
-(d2: C).(csuba g d2 c))) (ex4_3 C T A (\lambda (d2: C).(\lambda (u2: 
-T).(\lambda (_: A).(eq C c2 (CHead d2 (Bind Abst) u2))))) (\lambda (d2: 
+u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))) H5))))) 
+(drop_gen_sort n0 (S n) O (CHead d1 (Bind Abst) u) H0))))))))) (\lambda (c: 
+C).(\lambda (H0: ((\forall (d1: C).(\forall (u: T).((drop (S n) O c (CHead d1 
+(Bind Abst) u)) \to (\forall (g: G).(\forall (c2: C).((csuba g c2 c) \to (or 
+(ex2 C (\lambda (d2: C).(drop (S n) O c2 (CHead d2 (Bind Abst) u))) (\lambda 
+(d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(drop 
+(S n) O c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: 
+T).(csuba g d2 d1))))))))))))).(\lambda (k: K).(\lambda (t: T).(\lambda (d1: 
+C).(\lambda (u: T).(\lambda (H1: (drop (S n) O (CHead c k t) (CHead d1 (Bind 
+Abst) u))).(\lambda (g: G).(\lambda (c2: C).(\lambda (H2: (csuba g c2 (CHead 
+c k t))).(K_ind (\lambda (k0: K).((csuba g c2 (CHead c k0 t)) \to ((drop (r 
+k0 n) O c (CHead d1 (Bind Abst) u)) \to (or (ex2 C (\lambda (d2: C).(drop (S 
+n) O c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 
+C T (\lambda (d2: C).(\lambda (u2: T).(drop (S n) O c2 (CHead d2 (Bind Void) 
+u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1)))))))) (\lambda (b: 
+B).(\lambda (H3: (csuba g c2 (CHead c (Bind b) t))).(\lambda (H4: (drop (r 
+(Bind b) n) O c (CHead d1 (Bind Abst) u))).(B_ind (\lambda (b0: B).((csuba g 
+c2 (CHead c (Bind b0) t)) \to ((drop (r (Bind b0) n) O c (CHead d1 (Bind 
+Abst) u)) \to (or (ex2 C (\lambda (d2: C).(drop (S n) O c2 (CHead d2 (Bind 
+Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: 
+C).(\lambda (u2: T).(drop (S n) O c2 (CHead d2 (Bind Void) u2)))) (\lambda 
+(d2: C).(\lambda (_: T).(csuba g d2 d1)))))))) (\lambda (H5: (csuba g c2 
+(CHead c (Bind Abbr) t))).(\lambda (H6: (drop (r (Bind Abbr) n) O c (CHead d1 
+(Bind Abst) u))).(let H_x \def (csuba_gen_abbr_rev g c c2 t H5) in (let H7 
+\def H_x in (or3_ind (ex2 C (\lambda (d2: C).(eq C c2 (CHead d2 (Bind Abbr) 
+t))) (\lambda (d2: C).(csuba g d2 c))) (ex4_3 C T A (\lambda (d2: C).(\lambda 
+(u2: T).(\lambda (_: A).(eq C c2 (CHead d2 (Bind Abst) u2))))) (\lambda (d2: 
 C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 c)))) (\lambda (d2: 
 C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 (asucc g a))))) (\lambda 
 (_: C).(\lambda (_: T).(\lambda (a: A).(arity g c t a))))) (ex2_2 C T 
@@ -1312,9 +1303,6 @@ Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))) x2 x3
 (drop_drop (Flat f) n x0 (CHead x2 (Bind Void) x3) H10 x1) H11)))))) H9)) 
 H8)) c2 H6))))) H5)))))) k H2 (drop_gen_drop k c (CHead d1 (Bind Abst) u) t n 
 H1)))))))))))) c1)))) i).
-(* COMMENTS
-Initial nodes: 11438
-END *)
 
 theorem csuba_drop_abbr_rev:
  \forall (i: nat).(\forall (c1: C).(\forall (d1: C).(\forall (u1: T).((drop i 
@@ -1499,71 +1487,71 @@ A).(arity g d2 u2 (asucc g a))))) (\lambda (_: C).(\lambda (_: T).(\lambda
 T).(drop (S n) O c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda 
 (_: T).(csuba g d2 d1))))) (\lambda (_: (eq C (CHead d1 (Bind Abbr) u1) 
 (CSort n0))).(\lambda (H3: (eq nat (S n) O)).(\lambda (_: (eq nat O O)).(let 
-H5 \def (eq_ind nat (S n) (\lambda (ee: nat).(match ee in nat return (\lambda 
-(_: nat).Prop) with [O \Rightarrow False | (S _) \Rightarrow True])) I O H3) 
-in (False_ind (or3 (ex2 C (\lambda (d2: C).(drop (S n) O c2 (CHead d2 (Bind 
+H5 \def (eq_ind nat (S n) (\lambda (ee: nat).(match ee with [O \Rightarrow 
+False | (S _) \Rightarrow True])) I O H3) in (False_ind (or3 (ex2 C (\lambda 
+(d2: C).(drop (S n) O c2 (CHead d2 (Bind Abbr) u1))) (\lambda (d2: C).(csuba 
+g d2 d1))) (ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: 
+A).(drop (S n) O c2 (CHead d2 (Bind Abst) u2))))) (\lambda (d2: C).(\lambda 
+(_: T).(\lambda (_: A).(csuba g d2 d1)))) (\lambda (d2: C).(\lambda (u2: 
+T).(\lambda (a: A).(arity g d2 u2 (asucc g a))))) (\lambda (_: C).(\lambda 
+(_: T).(\lambda (a: A).(arity g d1 u1 a))))) (ex2_2 C T (\lambda (d2: 
+C).(\lambda (u2: T).(drop (S n) O c2 (CHead d2 (Bind Void) u2)))) (\lambda 
+(d2: C).(\lambda (_: T).(csuba g d2 d1))))) H5))))) (drop_gen_sort n0 (S n) O 
+(CHead d1 (Bind Abbr) u1) H0))))))))) (\lambda (c: C).(\lambda (H0: ((\forall 
+(d1: C).(\forall (u1: T).((drop (S n) O c (CHead d1 (Bind Abbr) u1)) \to 
+(\forall (g: G).(\forall (c2: C).((csuba g c2 c) \to (or3 (ex2 C (\lambda 
+(d2: C).(drop (S n) O c2 (CHead d2 (Bind Abbr) u1))) (\lambda (d2: C).(csuba 
+g d2 d1))) (ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: 
+A).(drop (S n) O c2 (CHead d2 (Bind Abst) u2))))) (\lambda (d2: C).(\lambda 
+(_: T).(\lambda (_: A).(csuba g d2 d1)))) (\lambda (d2: C).(\lambda (u2: 
+T).(\lambda (a: A).(arity g d2 u2 (asucc g a))))) (\lambda (_: C).(\lambda 
+(_: T).(\lambda (a: A).(arity g d1 u1 a))))) (ex2_2 C T (\lambda (d2: 
+C).(\lambda (u2: T).(drop (S n) O c2 (CHead d2 (Bind Void) u2)))) (\lambda 
+(d2: C).(\lambda (_: T).(csuba g d2 d1))))))))))))).(\lambda (k: K).(\lambda 
+(t: T).(\lambda (d1: C).(\lambda (u1: T).(\lambda (H1: (drop (S n) O (CHead c 
+k t) (CHead d1 (Bind Abbr) u1))).(\lambda (g: G).(\lambda (c2: C).(\lambda 
+(H2: (csuba g c2 (CHead c k t))).(K_ind (\lambda (k0: K).((csuba g c2 (CHead 
+c k0 t)) \to ((drop (r k0 n) O c (CHead d1 (Bind Abbr) u1)) \to (or3 (ex2 C 
+(\lambda (d2: C).(drop (S n) O c2 (CHead d2 (Bind Abbr) u1))) (\lambda (d2: 
+C).(csuba g d2 d1))) (ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda 
+(_: A).(drop (S n) O c2 (CHead d2 (Bind Abst) u2))))) (\lambda (d2: 
+C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 d1)))) (\lambda (d2: 
+C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 (asucc g a))))) (\lambda 
+(_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 a))))) (ex2_2 C T 
+(\lambda (d2: C).(\lambda (u2: T).(drop (S n) O c2 (CHead d2 (Bind Void) 
+u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1)))))))) (\lambda (b: 
+B).(\lambda (H3: (csuba g c2 (CHead c (Bind b) t))).(\lambda (H4: (drop (r 
+(Bind b) n) O c (CHead d1 (Bind Abbr) u1))).(B_ind (\lambda (b0: B).((csuba g 
+c2 (CHead c (Bind b0) t)) \to ((drop (r (Bind b0) n) O c (CHead d1 (Bind 
+Abbr) u1)) \to (or3 (ex2 C (\lambda (d2: C).(drop (S n) O c2 (CHead d2 (Bind 
 Abbr) u1))) (\lambda (d2: C).(csuba g d2 d1))) (ex4_3 C T A (\lambda (d2: 
 C).(\lambda (u2: T).(\lambda (_: A).(drop (S n) O c2 (CHead d2 (Bind Abst) 
 u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 d1)))) 
 (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 (asucc g 
 a))))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 a))))) 
 (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(drop (S n) O c2 (CHead d2 (Bind 
-Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))) H5))))) 
-(drop_gen_sort n0 (S n) O (CHead d1 (Bind Abbr) u1) H0))))))))) (\lambda (c: 
-C).(\lambda (H0: ((\forall (d1: C).(\forall (u1: T).((drop (S n) O c (CHead 
-d1 (Bind Abbr) u1)) \to (\forall (g: G).(\forall (c2: C).((csuba g c2 c) \to 
-(or3 (ex2 C (\lambda (d2: C).(drop (S n) O c2 (CHead d2 (Bind Abbr) u1))) 
-(\lambda (d2: C).(csuba g d2 d1))) (ex4_3 C T A (\lambda (d2: C).(\lambda 
-(u2: T).(\lambda (_: A).(drop (S n) O c2 (CHead d2 (Bind Abst) u2))))) 
-(\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 d1)))) (\lambda 
-(d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 (asucc g a))))) 
-(\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 a))))) (ex2_2 
-C T (\lambda (d2: C).(\lambda (u2: T).(drop (S n) O c2 (CHead d2 (Bind Void) 
-u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))))))))))).(\lambda 
-(k: K).(\lambda (t: T).(\lambda (d1: C).(\lambda (u1: T).(\lambda (H1: (drop 
-(S n) O (CHead c k t) (CHead d1 (Bind Abbr) u1))).(\lambda (g: G).(\lambda 
-(c2: C).(\lambda (H2: (csuba g c2 (CHead c k t))).(K_ind (\lambda (k0: 
-K).((csuba g c2 (CHead c k0 t)) \to ((drop (r k0 n) O c (CHead d1 (Bind Abbr) 
-u1)) \to (or3 (ex2 C (\lambda (d2: C).(drop (S n) O c2 (CHead d2 (Bind Abbr) 
-u1))) (\lambda (d2: C).(csuba g d2 d1))) (ex4_3 C T A (\lambda (d2: 
-C).(\lambda (u2: T).(\lambda (_: A).(drop (S n) O c2 (CHead d2 (Bind Abst) 
-u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 d1)))) 
-(\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 (asucc g 
-a))))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 a))))) 
-(ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(drop (S n) O c2 (CHead d2 (Bind 
 Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1)))))))) (\lambda 
-(b: B).(\lambda (H3: (csuba g c2 (CHead c (Bind b) t))).(\lambda (H4: (drop 
-(r (Bind b) n) O c (CHead d1 (Bind Abbr) u1))).(B_ind (\lambda (b0: 
-B).((csuba g c2 (CHead c (Bind b0) t)) \to ((drop (r (Bind b0) n) O c (CHead 
-d1 (Bind Abbr) u1)) \to (or3 (ex2 C (\lambda (d2: C).(drop (S n) O c2 (CHead 
-d2 (Bind Abbr) u1))) (\lambda (d2: C).(csuba g d2 d1))) (ex4_3 C T A (\lambda 
-(d2: C).(\lambda (u2: T).(\lambda (_: A).(drop (S n) O c2 (CHead d2 (Bind 
-Abst) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 
-d1)))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 
-(asucc g a))))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 
-u1 a))))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(drop (S n) O c2 
-(CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 
-d1)))))))) (\lambda (H5: (csuba g c2 (CHead c (Bind Abbr) t))).(\lambda (H6: 
-(drop (r (Bind Abbr) n) O c (CHead d1 (Bind Abbr) u1))).(let H_x \def 
-(csuba_gen_abbr_rev g c c2 t H5) in (let H7 \def H_x in (or3_ind (ex2 C 
-(\lambda (d2: C).(eq C c2 (CHead d2 (Bind Abbr) t))) (\lambda (d2: C).(csuba 
-g d2 c))) (ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(eq 
-C c2 (CHead d2 (Bind Abst) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda 
-(_: A).(csuba g d2 c)))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: 
-A).(arity g d2 u2 (asucc g a))))) (\lambda (_: C).(\lambda (_: T).(\lambda 
-(a: A).(arity g c t a))))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C 
-c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 
-c)))) (or3 (ex2 C (\lambda (d2: C).(drop (S n) O c2 (CHead d2 (Bind Abbr) 
-u1))) (\lambda (d2: C).(csuba g d2 d1))) (ex4_3 C T A (\lambda (d2: 
-C).(\lambda (u2: T).(\lambda (_: A).(drop (S n) O c2 (CHead d2 (Bind Abst) 
-u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 d1)))) 
+(H5: (csuba g c2 (CHead c (Bind Abbr) t))).(\lambda (H6: (drop (r (Bind Abbr) 
+n) O c (CHead d1 (Bind Abbr) u1))).(let H_x \def (csuba_gen_abbr_rev g c c2 t 
+H5) in (let H7 \def H_x in (or3_ind (ex2 C (\lambda (d2: C).(eq C c2 (CHead 
+d2 (Bind Abbr) t))) (\lambda (d2: C).(csuba g d2 c))) (ex4_3 C T A (\lambda 
+(d2: C).(\lambda (u2: T).(\lambda (_: A).(eq C c2 (CHead d2 (Bind Abst) 
+u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 c)))) 
 (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 (asucc g 
-a))))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 a))))) 
-(ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(drop (S n) O c2 (CHead d2 (Bind 
-Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))) (\lambda 
-(H8: (ex2 C (\lambda (d2: C).(eq C c2 (CHead d2 (Bind Abbr) t))) (\lambda 
-(d2: C).(csuba g d2 c)))).(ex2_ind C (\lambda (d2: C).(eq C c2 (CHead d2 
-(Bind Abbr) t))) (\lambda (d2: C).(csuba g d2 c)) (or3 (ex2 C (\lambda (d2: 
+a))))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g c t a))))) 
+(ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C c2 (CHead d2 (Bind Void) 
+u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 c)))) (or3 (ex2 C 
+(\lambda (d2: C).(drop (S n) O c2 (CHead d2 (Bind Abbr) u1))) (\lambda (d2: 
+C).(csuba g d2 d1))) (ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda 
+(_: A).(drop (S n) O c2 (CHead d2 (Bind Abst) u2))))) (\lambda (d2: 
+C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 d1)))) (\lambda (d2: 
+C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 (asucc g a))))) (\lambda 
+(_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 a))))) (ex2_2 C T 
+(\lambda (d2: C).(\lambda (u2: T).(drop (S n) O c2 (CHead d2 (Bind Void) 
+u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))) (\lambda (H8: 
+(ex2 C (\lambda (d2: C).(eq C c2 (CHead d2 (Bind Abbr) t))) (\lambda (d2: 
+C).(csuba g d2 c)))).(ex2_ind C (\lambda (d2: C).(eq C c2 (CHead d2 (Bind 
+Abbr) t))) (\lambda (d2: C).(csuba g d2 c)) (or3 (ex2 C (\lambda (d2: 
 C).(drop (S n) O c2 (CHead d2 (Bind Abbr) u1))) (\lambda (d2: C).(csuba g d2 
 d1))) (ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(drop (S 
 n) O c2 (CHead d2 (Bind Abst) u2))))) (\lambda (d2: C).(\lambda (_: 
@@ -2462,7 +2450,4 @@ T).(drop (S n) O (CHead x0 (Flat f) x1) (CHead d2 (Bind Void) u2)))) (\lambda
 (d2: C).(\lambda (_: T).(csuba g d2 d1))) x2 x3 (drop_drop (Flat f) n x0 
 (CHead x2 (Bind Void) x3) H10 x1) H11)))))) H9)) H8)) c2 H6))))) H5)))))) k 
 H2 (drop_gen_drop k c (CHead d1 (Bind Abbr) u1) t n H1)))))))))))) c1)))) i).
-(* COMMENTS
-Initial nodes: 23852
-END *)
 
index a618761fe30c46b99e8bf2e679d6e21366524a47..e4101c98376f584abecbe4097a8fde3704d3f533 100644 (file)
 
 (* This file was automatically generated: do not edit *********************)
 
-include "Basic-1/csuba/defs.ma".
+include "basic_1/csuba/defs.ma".
+
+let rec csuba_ind (g: G) (P: (C \to (C \to Prop))) (f: (\forall (n: nat).(P 
+(CSort n) (CSort n)))) (f0: (\forall (c1: C).(\forall (c2: C).((csuba g c1 
+c2) \to ((P c1 c2) \to (\forall (k: K).(\forall (u: T).(P (CHead c1 k u) 
+(CHead c2 k u))))))))) (f1: (\forall (c1: C).(\forall (c2: C).((csuba g c1 
+c2) \to ((P c1 c2) \to (\forall (b: B).((not (eq B b Void)) \to (\forall (u1: 
+T).(\forall (u2: T).(P (CHead c1 (Bind Void) u1) (CHead c2 (Bind b) 
+u2))))))))))) (f2: (\forall (c1: C).(\forall (c2: C).((csuba g c1 c2) \to ((P 
+c1 c2) \to (\forall (t: T).(\forall (a: A).((arity g c1 t (asucc g a)) \to 
+(\forall (u: T).((arity g c2 u a) \to (P (CHead c1 (Bind Abst) t) (CHead c2 
+(Bind Abbr) u)))))))))))) (c: C) (c0: C) (c1: csuba g c c0) on c1: P c c0 
+\def match c1 with [(csuba_sort n) \Rightarrow (f n) | (csuba_head c2 c3 c4 k 
+u) \Rightarrow (f0 c2 c3 c4 ((csuba_ind g P f f0 f1 f2) c2 c3 c4) k u) | 
+(csuba_void c2 c3 c4 b n u1 u2) \Rightarrow (f1 c2 c3 c4 ((csuba_ind g P f f0 
+f1 f2) c2 c3 c4) b n u1 u2) | (csuba_abst c2 c3 c4 t a a0 u a1) \Rightarrow 
+(f2 c2 c3 c4 ((csuba_ind g P f f0 f1 f2) c2 c3 c4) t a a0 u a1)].
 
 theorem csuba_gen_abbr:
  \forall (g: G).(\forall (d1: C).(\forall (c: C).(\forall (u: T).((csuba g 
@@ -29,63 +45,55 @@ C c (CHead d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 d2)))) (\lambda
 (c1: C).((eq C c0 (CHead d1 (Bind Abbr) u)) \to (ex2 C (\lambda (d2: C).(eq C 
 c1 (CHead d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 d2)))))) (\lambda 
 (n: nat).(\lambda (H1: (eq C (CSort n) (CHead d1 (Bind Abbr) u))).(let H2 
-\def (eq_ind C (CSort n) (\lambda (ee: C).(match ee in C return (\lambda (_: 
-C).Prop) with [(CSort _) \Rightarrow True | (CHead _ _ _) \Rightarrow 
-False])) I (CHead d1 (Bind Abbr) u) H1) in (False_ind (ex2 C (\lambda (d2: 
-C).(eq C (CSort n) (CHead d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 
-d2))) H2)))) (\lambda (c1: C).(\lambda (c2: C).(\lambda (H1: (csuba g c1 
-c2)).(\lambda (H2: (((eq C c1 (CHead d1 (Bind Abbr) u)) \to (ex2 C (\lambda 
-(d2: C).(eq C c2 (CHead d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 
-d2)))))).(\lambda (k: K).(\lambda (u0: T).(\lambda (H3: (eq C (CHead c1 k u0) 
-(CHead d1 (Bind Abbr) u))).(let H4 \def (f_equal C C (\lambda (e: C).(match e 
-in C return (\lambda (_: C).C) with [(CSort _) \Rightarrow c1 | (CHead c0 _ 
-_) \Rightarrow c0])) (CHead c1 k u0) (CHead d1 (Bind Abbr) u) H3) in ((let H5 
-\def (f_equal C K (\lambda (e: C).(match e in C return (\lambda (_: C).K) 
+\def (eq_ind C (CSort n) (\lambda (ee: C).(match ee with [(CSort _) 
+\Rightarrow True | (CHead _ _ _) \Rightarrow False])) I (CHead d1 (Bind Abbr) 
+u) H1) in (False_ind (ex2 C (\lambda (d2: C).(eq C (CSort n) (CHead d2 (Bind 
+Abbr) u))) (\lambda (d2: C).(csuba g d1 d2))) H2)))) (\lambda (c1: 
+C).(\lambda (c2: C).(\lambda (H1: (csuba g c1 c2)).(\lambda (H2: (((eq C c1 
+(CHead d1 (Bind Abbr) u)) \to (ex2 C (\lambda (d2: C).(eq C c2 (CHead d2 
+(Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 d2)))))).(\lambda (k: 
+K).(\lambda (u0: T).(\lambda (H3: (eq C (CHead c1 k u0) (CHead d1 (Bind Abbr) 
+u))).(let H4 \def (f_equal C C (\lambda (e: C).(match e with [(CSort _) 
+\Rightarrow c1 | (CHead c0 _ _) \Rightarrow c0])) (CHead c1 k u0) (CHead d1 
+(Bind Abbr) u) H3) in ((let H5 \def (f_equal C K (\lambda (e: C).(match e 
 with [(CSort _) \Rightarrow k | (CHead _ k0 _) \Rightarrow k0])) (CHead c1 k 
 u0) (CHead d1 (Bind Abbr) u) H3) in ((let H6 \def (f_equal C T (\lambda (e: 
-C).(match e in C return (\lambda (_: C).T) with [(CSort _) \Rightarrow u0 | 
-(CHead _ _ t) \Rightarrow t])) (CHead c1 k u0) (CHead d1 (Bind Abbr) u) H3) 
-in (\lambda (H7: (eq K k (Bind Abbr))).(\lambda (H8: (eq C c1 d1)).(eq_ind_r 
-T u (\lambda (t: T).(ex2 C (\lambda (d2: C).(eq C (CHead c2 k t) (CHead d2 
-(Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 d2)))) (eq_ind_r K (Bind Abbr) 
-(\lambda (k0: K).(ex2 C (\lambda (d2: C).(eq C (CHead c2 k0 u) (CHead d2 
-(Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 d2)))) (let H9 \def (eq_ind C 
-c1 (\lambda (c0: C).((eq C c0 (CHead d1 (Bind Abbr) u)) \to (ex2 C (\lambda 
-(d2: C).(eq C c2 (CHead d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 
-d2))))) H2 d1 H8) in (let H10 \def (eq_ind C c1 (\lambda (c0: C).(csuba g c0 
-c2)) H1 d1 H8) in (ex_intro2 C (\lambda (d2: C).(eq C (CHead c2 (Bind Abbr) 
-u) (CHead d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 d2)) c2 
-(refl_equal C (CHead c2 (Bind Abbr) u)) H10))) k H7) u0 H6)))) H5)) 
-H4))))))))) (\lambda (c1: C).(\lambda (c2: C).(\lambda (_: (csuba g c1 
-c2)).(\lambda (_: (((eq C c1 (CHead d1 (Bind Abbr) u)) \to (ex2 C (\lambda 
-(d2: C).(eq C c2 (CHead d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 
-d2)))))).(\lambda (b: B).(\lambda (_: (not (eq B b Void))).(\lambda (u1: 
-T).(\lambda (u2: T).(\lambda (H4: (eq C (CHead c1 (Bind Void) u1) (CHead d1 
-(Bind Abbr) u))).(let H5 \def (eq_ind C (CHead c1 (Bind Void) u1) (\lambda 
-(ee: C).(match ee in C return (\lambda (_: C).Prop) with [(CSort _) 
-\Rightarrow False | (CHead _ k _) \Rightarrow (match k in K return (\lambda 
-(_: K).Prop) with [(Bind b0) \Rightarrow (match b0 in B return (\lambda (_: 
-B).Prop) with [Abbr \Rightarrow False | Abst \Rightarrow False | Void 
-\Rightarrow True]) | (Flat _) \Rightarrow False])])) I (CHead d1 (Bind Abbr) 
-u) H4) in (False_ind (ex2 C (\lambda (d2: C).(eq C (CHead c2 (Bind b) u2) 
-(CHead d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 d2))) H5))))))))))) 
-(\lambda (c1: C).(\lambda (c2: C).(\lambda (_: (csuba g c1 c2)).(\lambda (_: 
-(((eq C c1 (CHead d1 (Bind Abbr) u)) \to (ex2 C (\lambda (d2: C).(eq C c2 
-(CHead d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 d2)))))).(\lambda (t: 
+C).(match e with [(CSort _) \Rightarrow u0 | (CHead _ _ t) \Rightarrow t])) 
+(CHead c1 k u0) (CHead d1 (Bind Abbr) u) H3) in (\lambda (H7: (eq K k (Bind 
+Abbr))).(\lambda (H8: (eq C c1 d1)).(eq_ind_r T u (\lambda (t: T).(ex2 C 
+(\lambda (d2: C).(eq C (CHead c2 k t) (CHead d2 (Bind Abbr) u))) (\lambda 
+(d2: C).(csuba g d1 d2)))) (eq_ind_r K (Bind Abbr) (\lambda (k0: K).(ex2 C 
+(\lambda (d2: C).(eq C (CHead c2 k0 u) (CHead d2 (Bind Abbr) u))) (\lambda 
+(d2: C).(csuba g d1 d2)))) (let H9 \def (eq_ind C c1 (\lambda (c0: C).((eq C 
+c0 (CHead d1 (Bind Abbr) u)) \to (ex2 C (\lambda (d2: C).(eq C c2 (CHead d2 
+(Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 d2))))) H2 d1 H8) in (let H10 
+\def (eq_ind C c1 (\lambda (c0: C).(csuba g c0 c2)) H1 d1 H8) in (ex_intro2 C 
+(\lambda (d2: C).(eq C (CHead c2 (Bind Abbr) u) (CHead d2 (Bind Abbr) u))) 
+(\lambda (d2: C).(csuba g d1 d2)) c2 (refl_equal C (CHead c2 (Bind Abbr) u)) 
+H10))) k H7) u0 H6)))) H5)) H4))))))))) (\lambda (c1: C).(\lambda (c2: 
+C).(\lambda (_: (csuba g c1 c2)).(\lambda (_: (((eq C c1 (CHead d1 (Bind 
+Abbr) u)) \to (ex2 C (\lambda (d2: C).(eq C c2 (CHead d2 (Bind Abbr) u))) 
+(\lambda (d2: C).(csuba g d1 d2)))))).(\lambda (b: B).(\lambda (_: (not (eq B 
+b Void))).(\lambda (u1: T).(\lambda (u2: T).(\lambda (H4: (eq C (CHead c1 
+(Bind Void) u1) (CHead d1 (Bind Abbr) u))).(let H5 \def (eq_ind C (CHead c1 
+(Bind Void) u1) (\lambda (ee: C).(match ee with [(CSort _) \Rightarrow False 
+| (CHead _ k _) \Rightarrow (match k with [(Bind b0) \Rightarrow (match b0 
+with [Abbr \Rightarrow False | Abst \Rightarrow False | Void \Rightarrow 
+True]) | (Flat _) \Rightarrow False])])) I (CHead d1 (Bind Abbr) u) H4) in 
+(False_ind (ex2 C (\lambda (d2: C).(eq C (CHead c2 (Bind b) u2) (CHead d2 
+(Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 d2))) H5))))))))))) (\lambda 
+(c1: C).(\lambda (c2: C).(\lambda (_: (csuba g c1 c2)).(\lambda (_: (((eq C 
+c1 (CHead d1 (Bind Abbr) u)) \to (ex2 C (\lambda (d2: C).(eq C c2 (CHead d2 
+(Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 d2)))))).(\lambda (t: 
 T).(\lambda (a: A).(\lambda (_: (arity g c1 t (asucc g a))).(\lambda (u0: 
 T).(\lambda (_: (arity g c2 u0 a)).(\lambda (H5: (eq C (CHead c1 (Bind Abst) 
 t) (CHead d1 (Bind Abbr) u))).(let H6 \def (eq_ind C (CHead c1 (Bind Abst) t) 
-(\lambda (ee: C).(match ee in C return (\lambda (_: C).Prop) with [(CSort _) 
-\Rightarrow False | (CHead _ k _) \Rightarrow (match k in K return (\lambda 
-(_: K).Prop) with [(Bind b) \Rightarrow (match b in B return (\lambda (_: 
-B).Prop) with [Abbr \Rightarrow False | Abst \Rightarrow True | Void 
-\Rightarrow False]) | (Flat _) \Rightarrow False])])) I (CHead d1 (Bind Abbr) 
-u) H5) in (False_ind (ex2 C (\lambda (d2: C).(eq C (CHead c2 (Bind Abbr) u0) 
-(CHead d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 d2))) H6)))))))))))) 
-y c H0))) H))))).
-(* COMMENTS
-Initial nodes: 1117
-END *)
+(\lambda (ee: C).(match ee with [(CSort _) \Rightarrow False | (CHead _ k _) 
+\Rightarrow (match k with [(Bind b) \Rightarrow (match b with [Abbr 
+\Rightarrow False | Abst \Rightarrow True | Void \Rightarrow False]) | (Flat 
+_) \Rightarrow False])])) I (CHead d1 (Bind Abbr) u) H5) in (False_ind (ex2 C 
+(\lambda (d2: C).(eq C (CHead c2 (Bind Abbr) u0) (CHead d2 (Bind Abbr) u))) 
+(\lambda (d2: C).(csuba g d1 d2))) H6)))))))))))) y c H0))) H))))).
 
 theorem csuba_gen_void:
  \forall (g: G).(\forall (d1: C).(\forall (c: C).(\forall (u1: T).((csuba g 
@@ -103,54 +111,52 @@ C).(\lambda (c1: C).((eq C c0 (CHead d1 (Bind Void) u1)) \to (ex2_3 B C T
 (\lambda (b: B).(\lambda (d2: C).(\lambda (u2: T).(eq C c1 (CHead d2 (Bind b) 
 u2))))) (\lambda (_: B).(\lambda (d2: C).(\lambda (_: T).(csuba g d1 
 d2)))))))) (\lambda (n: nat).(\lambda (H1: (eq C (CSort n) (CHead d1 (Bind 
-Void) u1))).(let H2 \def (eq_ind C (CSort n) (\lambda (ee: C).(match ee in C 
-return (\lambda (_: C).Prop) with [(CSort _) \Rightarrow True | (CHead _ _ _) 
-\Rightarrow False])) I (CHead d1 (Bind Void) u1) H1) in (False_ind (ex2_3 B C 
-T (\lambda (b: B).(\lambda (d2: C).(\lambda (u2: T).(eq C (CSort n) (CHead d2 
-(Bind b) u2))))) (\lambda (_: B).(\lambda (d2: C).(\lambda (_: T).(csuba g d1 
-d2))))) H2)))) (\lambda (c1: C).(\lambda (c2: C).(\lambda (H1: (csuba g c1 
-c2)).(\lambda (H2: (((eq C c1 (CHead d1 (Bind Void) u1)) \to (ex2_3 B C T 
-(\lambda (b: B).(\lambda (d2: C).(\lambda (u2: T).(eq C c2 (CHead d2 (Bind b) 
-u2))))) (\lambda (_: B).(\lambda (d2: C).(\lambda (_: T).(csuba g d1 
-d2)))))))).(\lambda (k: K).(\lambda (u: T).(\lambda (H3: (eq C (CHead c1 k u) 
-(CHead d1 (Bind Void) u1))).(let H4 \def (f_equal C C (\lambda (e: C).(match 
-e in C return (\lambda (_: C).C) with [(CSort _) \Rightarrow c1 | (CHead c0 _ 
-_) \Rightarrow c0])) (CHead c1 k u) (CHead d1 (Bind Void) u1) H3) in ((let H5 
-\def (f_equal C K (\lambda (e: C).(match e in C return (\lambda (_: C).K) 
+Void) u1))).(let H2 \def (eq_ind C (CSort n) (\lambda (ee: C).(match ee with 
+[(CSort _) \Rightarrow True | (CHead _ _ _) \Rightarrow False])) I (CHead d1 
+(Bind Void) u1) H1) in (False_ind (ex2_3 B C T (\lambda (b: B).(\lambda (d2: 
+C).(\lambda (u2: T).(eq C (CSort n) (CHead d2 (Bind b) u2))))) (\lambda (_: 
+B).(\lambda (d2: C).(\lambda (_: T).(csuba g d1 d2))))) H2)))) (\lambda (c1: 
+C).(\lambda (c2: C).(\lambda (H1: (csuba g c1 c2)).(\lambda (H2: (((eq C c1 
+(CHead d1 (Bind Void) u1)) \to (ex2_3 B C T (\lambda (b: B).(\lambda (d2: 
+C).(\lambda (u2: T).(eq C c2 (CHead d2 (Bind b) u2))))) (\lambda (_: 
+B).(\lambda (d2: C).(\lambda (_: T).(csuba g d1 d2)))))))).(\lambda (k: 
+K).(\lambda (u: T).(\lambda (H3: (eq C (CHead c1 k u) (CHead d1 (Bind Void) 
+u1))).(let H4 \def (f_equal C C (\lambda (e: C).(match e with [(CSort _) 
+\Rightarrow c1 | (CHead c0 _ _) \Rightarrow c0])) (CHead c1 k u) (CHead d1 
+(Bind Void) u1) H3) in ((let H5 \def (f_equal C K (\lambda (e: C).(match e 
 with [(CSort _) \Rightarrow k | (CHead _ k0 _) \Rightarrow k0])) (CHead c1 k 
 u) (CHead d1 (Bind Void) u1) H3) in ((let H6 \def (f_equal C T (\lambda (e: 
-C).(match e in C return (\lambda (_: C).T) with [(CSort _) \Rightarrow u | 
-(CHead _ _ t) \Rightarrow t])) (CHead c1 k u) (CHead d1 (Bind Void) u1) H3) 
-in (\lambda (H7: (eq K k (Bind Void))).(\lambda (H8: (eq C c1 d1)).(eq_ind_r 
-T u1 (\lambda (t: T).(ex2_3 B C T (\lambda (b: B).(\lambda (d2: C).(\lambda 
-(u2: T).(eq C (CHead c2 k t) (CHead d2 (Bind b) u2))))) (\lambda (_: 
-B).(\lambda (d2: C).(\lambda (_: T).(csuba g d1 d2)))))) (eq_ind_r K (Bind 
-Void) (\lambda (k0: K).(ex2_3 B C T (\lambda (b: B).(\lambda (d2: C).(\lambda 
-(u2: T).(eq C (CHead c2 k0 u1) (CHead d2 (Bind b) u2))))) (\lambda (_: 
-B).(\lambda (d2: C).(\lambda (_: T).(csuba g d1 d2)))))) (let H9 \def (eq_ind 
-C c1 (\lambda (c0: C).((eq C c0 (CHead d1 (Bind Void) u1)) \to (ex2_3 B C T 
-(\lambda (b: B).(\lambda (d2: C).(\lambda (u2: T).(eq C c2 (CHead d2 (Bind b) 
-u2))))) (\lambda (_: B).(\lambda (d2: C).(\lambda (_: T).(csuba g d1 
-d2))))))) H2 d1 H8) in (let H10 \def (eq_ind C c1 (\lambda (c0: C).(csuba g 
-c0 c2)) H1 d1 H8) in (ex2_3_intro B C T (\lambda (b: B).(\lambda (d2: 
-C).(\lambda (u2: T).(eq C (CHead c2 (Bind Void) u1) (CHead d2 (Bind b) 
-u2))))) (\lambda (_: B).(\lambda (d2: C).(\lambda (_: T).(csuba g d1 d2)))) 
-Void c2 u1 (refl_equal C (CHead c2 (Bind Void) u1)) H10))) k H7) u H6)))) 
-H5)) H4))))))))) (\lambda (c1: C).(\lambda (c2: C).(\lambda (H1: (csuba g c1 
-c2)).(\lambda (H2: (((eq C c1 (CHead d1 (Bind Void) u1)) \to (ex2_3 B C T 
-(\lambda (b: B).(\lambda (d2: C).(\lambda (u2: T).(eq C c2 (CHead d2 (Bind b) 
-u2))))) (\lambda (_: B).(\lambda (d2: C).(\lambda (_: T).(csuba g d1 
-d2)))))))).(\lambda (b: B).(\lambda (_: (not (eq B b Void))).(\lambda (u0: 
-T).(\lambda (u2: T).(\lambda (H4: (eq C (CHead c1 (Bind Void) u0) (CHead d1 
-(Bind Void) u1))).(let H5 \def (f_equal C C (\lambda (e: C).(match e in C 
-return (\lambda (_: C).C) with [(CSort _) \Rightarrow c1 | (CHead c0 _ _) 
-\Rightarrow c0])) (CHead c1 (Bind Void) u0) (CHead d1 (Bind Void) u1) H4) in 
-((let H6 \def (f_equal C T (\lambda (e: C).(match e in C return (\lambda (_: 
-C).T) with [(CSort _) \Rightarrow u0 | (CHead _ _ t) \Rightarrow t])) (CHead 
-c1 (Bind Void) u0) (CHead d1 (Bind Void) u1) H4) in (\lambda (H7: (eq C c1 
-d1)).(let H8 \def (eq_ind C c1 (\lambda (c0: C).((eq C c0 (CHead d1 (Bind 
-Void) u1)) \to (ex2_3 B C T (\lambda (b0: B).(\lambda (d2: C).(\lambda (u3: 
-T).(eq C c2 (CHead d2 (Bind b0) u3))))) (\lambda (_: B).(\lambda (d2: 
+C).(match e with [(CSort _) \Rightarrow u | (CHead _ _ t) \Rightarrow t])) 
+(CHead c1 k u) (CHead d1 (Bind Void) u1) H3) in (\lambda (H7: (eq K k (Bind 
+Void))).(\lambda (H8: (eq C c1 d1)).(eq_ind_r T u1 (\lambda (t: T).(ex2_3 B C 
+T (\lambda (b: B).(\lambda (d2: C).(\lambda (u2: T).(eq C (CHead c2 k t) 
+(CHead d2 (Bind b) u2))))) (\lambda (_: B).(\lambda (d2: C).(\lambda (_: 
+T).(csuba g d1 d2)))))) (eq_ind_r K (Bind Void) (\lambda (k0: K).(ex2_3 B C T 
+(\lambda (b: B).(\lambda (d2: C).(\lambda (u2: T).(eq C (CHead c2 k0 u1) 
+(CHead d2 (Bind b) u2))))) (\lambda (_: B).(\lambda (d2: C).(\lambda (_: 
+T).(csuba g d1 d2)))))) (let H9 \def (eq_ind C c1 (\lambda (c0: C).((eq C c0 
+(CHead d1 (Bind Void) u1)) \to (ex2_3 B C T (\lambda (b: B).(\lambda (d2: 
+C).(\lambda (u2: T).(eq C c2 (CHead d2 (Bind b) u2))))) (\lambda (_: 
+B).(\lambda (d2: C).(\lambda (_: T).(csuba g d1 d2))))))) H2 d1 H8) in (let 
+H10 \def (eq_ind C c1 (\lambda (c0: C).(csuba g c0 c2)) H1 d1 H8) in 
+(ex2_3_intro B C T (\lambda (b: B).(\lambda (d2: C).(\lambda (u2: T).(eq C 
+(CHead c2 (Bind Void) u1) (CHead d2 (Bind b) u2))))) (\lambda (_: B).(\lambda 
+(d2: C).(\lambda (_: T).(csuba g d1 d2)))) Void c2 u1 (refl_equal C (CHead c2 
+(Bind Void) u1)) H10))) k H7) u H6)))) H5)) H4))))))))) (\lambda (c1: 
+C).(\lambda (c2: C).(\lambda (H1: (csuba g c1 c2)).(\lambda (H2: (((eq C c1 
+(CHead d1 (Bind Void) u1)) \to (ex2_3 B C T (\lambda (b: B).(\lambda (d2: 
+C).(\lambda (u2: T).(eq C c2 (CHead d2 (Bind b) u2))))) (\lambda (_: 
+B).(\lambda (d2: C).(\lambda (_: T).(csuba g d1 d2)))))))).(\lambda (b: 
+B).(\lambda (_: (not (eq B b Void))).(\lambda (u0: T).(\lambda (u2: 
+T).(\lambda (H4: (eq C (CHead c1 (Bind Void) u0) (CHead d1 (Bind Void) 
+u1))).(let H5 \def (f_equal C C (\lambda (e: C).(match e with [(CSort _) 
+\Rightarrow c1 | (CHead c0 _ _) \Rightarrow c0])) (CHead c1 (Bind Void) u0) 
+(CHead d1 (Bind Void) u1) H4) in ((let H6 \def (f_equal C T (\lambda (e: 
+C).(match e with [(CSort _) \Rightarrow u0 | (CHead _ _ t) \Rightarrow t])) 
+(CHead c1 (Bind Void) u0) (CHead d1 (Bind Void) u1) H4) in (\lambda (H7: (eq 
+C c1 d1)).(let H8 \def (eq_ind C c1 (\lambda (c0: C).((eq C c0 (CHead d1 
+(Bind Void) u1)) \to (ex2_3 B C T (\lambda (b0: B).(\lambda (d2: C).(\lambda 
+(u3: T).(eq C c2 (CHead d2 (Bind b0) u3))))) (\lambda (_: B).(\lambda (d2: 
 C).(\lambda (_: T).(csuba g d1 d2))))))) H2 d1 H7) in (let H9 \def (eq_ind C 
 c1 (\lambda (c0: C).(csuba g c0 c2)) H1 d1 H7) in (ex2_3_intro B C T (\lambda 
 (b0: B).(\lambda (d2: C).(\lambda (u3: T).(eq C (CHead c2 (Bind b) u2) (CHead 
@@ -163,18 +169,14 @@ u2))))) (\lambda (_: B).(\lambda (d2: C).(\lambda (_: T).(csuba g d1
 d2)))))))).(\lambda (t: T).(\lambda (a: A).(\lambda (_: (arity g c1 t (asucc 
 g a))).(\lambda (u: T).(\lambda (_: (arity g c2 u a)).(\lambda (H5: (eq C 
 (CHead c1 (Bind Abst) t) (CHead d1 (Bind Void) u1))).(let H6 \def (eq_ind C 
-(CHead c1 (Bind Abst) t) (\lambda (ee: C).(match ee in C return (\lambda (_: 
-C).Prop) with [(CSort _) \Rightarrow False | (CHead _ k _) \Rightarrow (match 
-k in K return (\lambda (_: K).Prop) with [(Bind b) \Rightarrow (match b in B 
-return (\lambda (_: B).Prop) with [Abbr \Rightarrow False | Abst \Rightarrow 
-True | Void \Rightarrow False]) | (Flat _) \Rightarrow False])])) I (CHead d1 
-(Bind Void) u1) H5) in (False_ind (ex2_3 B C T (\lambda (b: B).(\lambda (d2: 
+(CHead c1 (Bind Abst) t) (\lambda (ee: C).(match ee with [(CSort _) 
+\Rightarrow False | (CHead _ k _) \Rightarrow (match k with [(Bind b) 
+\Rightarrow (match b with [Abbr \Rightarrow False | Abst \Rightarrow True | 
+Void \Rightarrow False]) | (Flat _) \Rightarrow False])])) I (CHead d1 (Bind 
+Void) u1) H5) in (False_ind (ex2_3 B C T (\lambda (b: B).(\lambda (d2: 
 C).(\lambda (u2: T).(eq C (CHead c2 (Bind Abbr) u) (CHead d2 (Bind b) u2))))) 
 (\lambda (_: B).(\lambda (d2: C).(\lambda (_: T).(csuba g d1 d2))))) 
 H6)))))))))))) y c H0))) H))))).
-(* COMMENTS
-Initial nodes: 1418
-END *)
 
 theorem csuba_gen_abst:
  \forall (g: G).(\forall (d1: C).(\forall (c: C).(\forall (u1: T).((csuba g 
@@ -203,62 +205,60 @@ C).(\lambda (u2: T).(\lambda (_: A).(eq C c1 (CHead d2 (Bind Abbr) u2)))))
 (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 (asucc g a))))) 
 (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 a))))))))) 
 (\lambda (n: nat).(\lambda (H1: (eq C (CSort n) (CHead d1 (Bind Abst) 
-u1))).(let H2 \def (eq_ind C (CSort n) (\lambda (ee: C).(match ee in C return 
-(\lambda (_: C).Prop) with [(CSort _) \Rightarrow True | (CHead _ _ _) 
-\Rightarrow False])) I (CHead d1 (Bind Abst) u1) H1) in (False_ind (or (ex2 C 
-(\lambda (d2: C).(eq C (CSort n) (CHead d2 (Bind Abst) u1))) (\lambda (d2: 
-C).(csuba g d1 d2))) (ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda 
-(_: A).(eq C (CSort n) (CHead d2 (Bind Abbr) u2))))) (\lambda (d2: 
-C).(\lambda (_: T).(\lambda (_: A).(csuba g d1 d2)))) (\lambda (_: 
-C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 (asucc g a))))) (\lambda 
-(d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 a)))))) H2)))) 
-(\lambda (c1: C).(\lambda (c2: C).(\lambda (H1: (csuba g c1 c2)).(\lambda 
-(H2: (((eq C c1 (CHead d1 (Bind Abst) u1)) \to (or (ex2 C (\lambda (d2: 
-C).(eq C c2 (CHead d2 (Bind Abst) u1))) (\lambda (d2: C).(csuba g d1 d2))) 
-(ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(eq C c2 
-(CHead d2 (Bind Abbr) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: 
-A).(csuba g d1 d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity 
-g d1 u1 (asucc g a))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: 
-A).(arity g d2 u2 a))))))))).(\lambda (k: K).(\lambda (u: T).(\lambda (H3: 
-(eq C (CHead c1 k u) (CHead d1 (Bind Abst) u1))).(let H4 \def (f_equal C C 
-(\lambda (e: C).(match e in C return (\lambda (_: C).C) with [(CSort _) 
-\Rightarrow c1 | (CHead c0 _ _) \Rightarrow c0])) (CHead c1 k u) (CHead d1 
-(Bind Abst) u1) H3) in ((let H5 \def (f_equal C K (\lambda (e: C).(match e in 
-C return (\lambda (_: C).K) with [(CSort _) \Rightarrow k | (CHead _ k0 _) 
-\Rightarrow k0])) (CHead c1 k u) (CHead d1 (Bind Abst) u1) H3) in ((let H6 
-\def (f_equal C T (\lambda (e: C).(match e in C return (\lambda (_: C).T) 
-with [(CSort _) \Rightarrow u | (CHead _ _ t) \Rightarrow t])) (CHead c1 k u) 
-(CHead d1 (Bind Abst) u1) H3) in (\lambda (H7: (eq K k (Bind Abst))).(\lambda 
-(H8: (eq C c1 d1)).(eq_ind_r T u1 (\lambda (t: T).(or (ex2 C (\lambda (d2: 
-C).(eq C (CHead c2 k t) (CHead d2 (Bind Abst) u1))) (\lambda (d2: C).(csuba g 
-d1 d2))) (ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(eq C 
-(CHead c2 k t) (CHead d2 (Bind Abbr) u2))))) (\lambda (d2: C).(\lambda (_: 
-T).(\lambda (_: A).(csuba g d1 d2)))) (\lambda (_: C).(\lambda (_: 
-T).(\lambda (a: A).(arity g d1 u1 (asucc g a))))) (\lambda (d2: C).(\lambda 
-(u2: T).(\lambda (a: A).(arity g d2 u2 a))))))) (eq_ind_r K (Bind Abst) 
-(\lambda (k0: K).(or (ex2 C (\lambda (d2: C).(eq C (CHead c2 k0 u1) (CHead d2 
-(Bind Abst) u1))) (\lambda (d2: C).(csuba g d1 d2))) (ex4_3 C T A (\lambda 
-(d2: C).(\lambda (u2: T).(\lambda (_: A).(eq C (CHead c2 k0 u1) (CHead d2 
+u1))).(let H2 \def (eq_ind C (CSort n) (\lambda (ee: C).(match ee with 
+[(CSort _) \Rightarrow True | (CHead _ _ _) \Rightarrow False])) I (CHead d1 
+(Bind Abst) u1) H1) in (False_ind (or (ex2 C (\lambda (d2: C).(eq C (CSort n) 
+(CHead d2 (Bind Abst) u1))) (\lambda (d2: C).(csuba g d1 d2))) (ex4_3 C T A 
+(\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(eq C (CSort n) (CHead d2 
 (Bind Abbr) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g 
 d1 d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 
 (asucc g a))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 
-u2 a))))))) (let H9 \def (eq_ind C c1 (\lambda (c0: C).((eq C c0 (CHead d1 
-(Bind Abst) u1)) \to (or (ex2 C (\lambda (d2: C).(eq C c2 (CHead d2 (Bind 
-Abst) u1))) (\lambda (d2: C).(csuba g d1 d2))) (ex4_3 C T A (\lambda (d2: 
-C).(\lambda (u2: T).(\lambda (_: A).(eq C c2 (CHead d2 (Bind Abbr) u2))))) 
-(\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d1 d2)))) (\lambda 
-(_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 (asucc g a))))) 
-(\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 a)))))))) H2 
-d1 H8) in (let H10 \def (eq_ind C c1 (\lambda (c0: C).(csuba g c0 c2)) H1 d1 
-H8) in (or_introl (ex2 C (\lambda (d2: C).(eq C (CHead c2 (Bind Abst) u1) 
-(CHead d2 (Bind Abst) u1))) (\lambda (d2: C).(csuba g d1 d2))) (ex4_3 C T A 
-(\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(eq C (CHead c2 (Bind Abst) 
-u1) (CHead d2 (Bind Abbr) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda 
+u2 a)))))) H2)))) (\lambda (c1: C).(\lambda (c2: C).(\lambda (H1: (csuba g c1 
+c2)).(\lambda (H2: (((eq C c1 (CHead d1 (Bind Abst) u1)) \to (or (ex2 C 
+(\lambda (d2: C).(eq C c2 (CHead d2 (Bind Abst) u1))) (\lambda (d2: C).(csuba 
+g d1 d2))) (ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(eq 
+C c2 (CHead d2 (Bind Abbr) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda 
 (_: A).(csuba g d1 d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: 
 A).(arity g d1 u1 (asucc g a))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda 
-(a: A).(arity g d2 u2 a))))) (ex_intro2 C (\lambda (d2: C).(eq C (CHead c2 
-(Bind Abst) u1) (CHead d2 (Bind Abst) u1))) (\lambda (d2: C).(csuba g d1 d2)) 
-c2 (refl_equal C (CHead c2 (Bind Abst) u1)) H10)))) k H7) u H6)))) H5)) 
+(a: A).(arity g d2 u2 a))))))))).(\lambda (k: K).(\lambda (u: T).(\lambda 
+(H3: (eq C (CHead c1 k u) (CHead d1 (Bind Abst) u1))).(let H4 \def (f_equal C 
+C (\lambda (e: C).(match e with [(CSort _) \Rightarrow c1 | (CHead c0 _ _) 
+\Rightarrow c0])) (CHead c1 k u) (CHead d1 (Bind Abst) u1) H3) in ((let H5 
+\def (f_equal C K (\lambda (e: C).(match e with [(CSort _) \Rightarrow k | 
+(CHead _ k0 _) \Rightarrow k0])) (CHead c1 k u) (CHead d1 (Bind Abst) u1) H3) 
+in ((let H6 \def (f_equal C T (\lambda (e: C).(match e with [(CSort _) 
+\Rightarrow u | (CHead _ _ t) \Rightarrow t])) (CHead c1 k u) (CHead d1 (Bind 
+Abst) u1) H3) in (\lambda (H7: (eq K k (Bind Abst))).(\lambda (H8: (eq C c1 
+d1)).(eq_ind_r T u1 (\lambda (t: T).(or (ex2 C (\lambda (d2: C).(eq C (CHead 
+c2 k t) (CHead d2 (Bind Abst) u1))) (\lambda (d2: C).(csuba g d1 d2))) (ex4_3 
+C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(eq C (CHead c2 k t) 
+(CHead d2 (Bind Abbr) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: 
+A).(csuba g d1 d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity 
+g d1 u1 (asucc g a))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: 
+A).(arity g d2 u2 a))))))) (eq_ind_r K (Bind Abst) (\lambda (k0: K).(or (ex2 
+C (\lambda (d2: C).(eq C (CHead c2 k0 u1) (CHead d2 (Bind Abst) u1))) 
+(\lambda (d2: C).(csuba g d1 d2))) (ex4_3 C T A (\lambda (d2: C).(\lambda 
+(u2: T).(\lambda (_: A).(eq C (CHead c2 k0 u1) (CHead d2 (Bind Abbr) u2))))) 
+(\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d1 d2)))) (\lambda 
+(_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 (asucc g a))))) 
+(\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 a))))))) 
+(let H9 \def (eq_ind C c1 (\lambda (c0: C).((eq C c0 (CHead d1 (Bind Abst) 
+u1)) \to (or (ex2 C (\lambda (d2: C).(eq C c2 (CHead d2 (Bind Abst) u1))) 
+(\lambda (d2: C).(csuba g d1 d2))) (ex4_3 C T A (\lambda (d2: C).(\lambda 
+(u2: T).(\lambda (_: A).(eq C c2 (CHead d2 (Bind Abbr) u2))))) (\lambda (d2: 
+C).(\lambda (_: T).(\lambda (_: A).(csuba g d1 d2)))) (\lambda (_: 
+C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 (asucc g a))))) (\lambda 
+(d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 a)))))))) H2 d1 H8) 
+in (let H10 \def (eq_ind C c1 (\lambda (c0: C).(csuba g c0 c2)) H1 d1 H8) in 
+(or_introl (ex2 C (\lambda (d2: C).(eq C (CHead c2 (Bind Abst) u1) (CHead d2 
+(Bind Abst) u1))) (\lambda (d2: C).(csuba g d1 d2))) (ex4_3 C T A (\lambda 
+(d2: C).(\lambda (u2: T).(\lambda (_: A).(eq C (CHead c2 (Bind Abst) u1) 
+(CHead d2 (Bind Abbr) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: 
+A).(csuba g d1 d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity 
+g d1 u1 (asucc g a))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: 
+A).(arity g d2 u2 a))))) (ex_intro2 C (\lambda (d2: C).(eq C (CHead c2 (Bind 
+Abst) u1) (CHead d2 (Bind Abst) u1))) (\lambda (d2: C).(csuba g d1 d2)) c2 
+(refl_equal C (CHead c2 (Bind Abst) u1)) H10)))) k H7) u H6)))) H5)) 
 H4))))))))) (\lambda (c1: C).(\lambda (c2: C).(\lambda (_: (csuba g c1 
 c2)).(\lambda (_: (((eq C c1 (CHead d1 (Bind Abst) u1)) \to (or (ex2 C 
 (\lambda (d2: C).(eq C c2 (CHead d2 (Bind Abst) u1))) (\lambda (d2: C).(csuba 
@@ -269,60 +269,54 @@ A).(arity g d1 u1 (asucc g a))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda
 (a: A).(arity g d2 u2 a))))))))).(\lambda (b: B).(\lambda (_: (not (eq B b 
 Void))).(\lambda (u0: T).(\lambda (u2: T).(\lambda (H4: (eq C (CHead c1 (Bind 
 Void) u0) (CHead d1 (Bind Abst) u1))).(let H5 \def (eq_ind C (CHead c1 (Bind 
-Void) u0) (\lambda (ee: C).(match ee in C return (\lambda (_: C).Prop) with 
-[(CSort _) \Rightarrow False | (CHead _ k _) \Rightarrow (match k in K return 
-(\lambda (_: K).Prop) with [(Bind b0) \Rightarrow (match b0 in B return 
-(\lambda (_: B).Prop) with [Abbr \Rightarrow False | Abst \Rightarrow False | 
-Void \Rightarrow True]) | (Flat _) \Rightarrow False])])) I (CHead d1 (Bind 
-Abst) u1) H4) in (False_ind (or (ex2 C (\lambda (d2: C).(eq C (CHead c2 (Bind 
-b) u2) (CHead d2 (Bind Abst) u1))) (\lambda (d2: C).(csuba g d1 d2))) (ex4_3 
-C T A (\lambda (d2: C).(\lambda (u3: T).(\lambda (_: A).(eq C (CHead c2 (Bind 
-b) u2) (CHead d2 (Bind Abbr) u3))))) (\lambda (d2: C).(\lambda (_: 
+Void) u0) (\lambda (ee: C).(match ee with [(CSort _) \Rightarrow False | 
+(CHead _ k _) \Rightarrow (match k with [(Bind b0) \Rightarrow (match b0 with 
+[Abbr \Rightarrow False | Abst \Rightarrow False | Void \Rightarrow True]) | 
+(Flat _) \Rightarrow False])])) I (CHead d1 (Bind Abst) u1) H4) in (False_ind 
+(or (ex2 C (\lambda (d2: C).(eq C (CHead c2 (Bind b) u2) (CHead d2 (Bind 
+Abst) u1))) (\lambda (d2: C).(csuba g d1 d2))) (ex4_3 C T A (\lambda (d2: 
+C).(\lambda (u3: T).(\lambda (_: A).(eq C (CHead c2 (Bind b) u2) (CHead d2 
+(Bind Abbr) u3))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g 
+d1 d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 
+(asucc g a))))) (\lambda (d2: C).(\lambda (u3: T).(\lambda (a: A).(arity g d2 
+u3 a)))))) H5))))))))))) (\lambda (c1: C).(\lambda (c2: C).(\lambda (H1: 
+(csuba g c1 c2)).(\lambda (H2: (((eq C c1 (CHead d1 (Bind Abst) u1)) \to (or 
+(ex2 C (\lambda (d2: C).(eq C c2 (CHead d2 (Bind Abst) u1))) (\lambda (d2: 
+C).(csuba g d1 d2))) (ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda 
+(_: A).(eq C c2 (CHead d2 (Bind Abbr) u2))))) (\lambda (d2: C).(\lambda (_: 
 T).(\lambda (_: A).(csuba g d1 d2)))) (\lambda (_: C).(\lambda (_: 
 T).(\lambda (a: A).(arity g d1 u1 (asucc g a))))) (\lambda (d2: C).(\lambda 
-(u3: T).(\lambda (a: A).(arity g d2 u3 a)))))) H5))))))))))) (\lambda (c1: 
-C).(\lambda (c2: C).(\lambda (H1: (csuba g c1 c2)).(\lambda (H2: (((eq C c1 
-(CHead d1 (Bind Abst) u1)) \to (or (ex2 C (\lambda (d2: C).(eq C c2 (CHead d2 
-(Bind Abst) u1))) (\lambda (d2: C).(csuba g d1 d2))) (ex4_3 C T A (\lambda 
-(d2: C).(\lambda (u2: T).(\lambda (_: A).(eq C c2 (CHead d2 (Bind Abbr) 
-u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d1 d2)))) 
-(\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 (asucc g 
-a))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 
-a))))))))).(\lambda (t: T).(\lambda (a: A).(\lambda (H3: (arity g c1 t (asucc 
-g a))).(\lambda (u: T).(\lambda (H4: (arity g c2 u a)).(\lambda (H5: (eq C 
-(CHead c1 (Bind Abst) t) (CHead d1 (Bind Abst) u1))).(let H6 \def (f_equal C 
-C (\lambda (e: C).(match e in C return (\lambda (_: C).C) with [(CSort _) 
-\Rightarrow c1 | (CHead c0 _ _) \Rightarrow c0])) (CHead c1 (Bind Abst) t) 
-(CHead d1 (Bind Abst) u1) H5) in ((let H7 \def (f_equal C T (\lambda (e: 
-C).(match e in C return (\lambda (_: C).T) with [(CSort _) \Rightarrow t | 
-(CHead _ _ t0) \Rightarrow t0])) (CHead c1 (Bind Abst) t) (CHead d1 (Bind 
-Abst) u1) H5) in (\lambda (H8: (eq C c1 d1)).(let H9 \def (eq_ind T t 
-(\lambda (t0: T).(arity g c1 t0 (asucc g a))) H3 u1 H7) in (let H10 \def 
-(eq_ind C c1 (\lambda (c0: C).(arity g c0 u1 (asucc g a))) H9 d1 H8) in (let 
-H11 \def (eq_ind C c1 (\lambda (c0: C).((eq C c0 (CHead d1 (Bind Abst) u1)) 
-\to (or (ex2 C (\lambda (d2: C).(eq C c2 (CHead d2 (Bind Abst) u1))) (\lambda 
-(d2: C).(csuba g d1 d2))) (ex4_3 C T A (\lambda (d2: C).(\lambda (u2: 
-T).(\lambda (_: A).(eq C c2 (CHead d2 (Bind Abbr) u2))))) (\lambda (d2: 
-C).(\lambda (_: T).(\lambda (_: A).(csuba g d1 d2)))) (\lambda (_: 
-C).(\lambda (_: T).(\lambda (a0: A).(arity g d1 u1 (asucc g a0))))) (\lambda 
-(d2: C).(\lambda (u2: T).(\lambda (a0: A).(arity g d2 u2 a0)))))))) H2 d1 H8) 
-in (let H12 \def (eq_ind C c1 (\lambda (c0: C).(csuba g c0 c2)) H1 d1 H8) in 
-(or_intror (ex2 C (\lambda (d2: C).(eq C (CHead c2 (Bind Abbr) u) (CHead d2 
-(Bind Abst) u1))) (\lambda (d2: C).(csuba g d1 d2))) (ex4_3 C T A (\lambda 
+(u2: T).(\lambda (a: A).(arity g d2 u2 a))))))))).(\lambda (t: T).(\lambda 
+(a: A).(\lambda (H3: (arity g c1 t (asucc g a))).(\lambda (u: T).(\lambda 
+(H4: (arity g c2 u a)).(\lambda (H5: (eq C (CHead c1 (Bind Abst) t) (CHead d1 
+(Bind Abst) u1))).(let H6 \def (f_equal C C (\lambda (e: C).(match e with 
+[(CSort _) \Rightarrow c1 | (CHead c0 _ _) \Rightarrow c0])) (CHead c1 (Bind 
+Abst) t) (CHead d1 (Bind Abst) u1) H5) in ((let H7 \def (f_equal C T (\lambda 
+(e: C).(match e with [(CSort _) \Rightarrow t | (CHead _ _ t0) \Rightarrow 
+t0])) (CHead c1 (Bind Abst) t) (CHead d1 (Bind Abst) u1) H5) in (\lambda (H8: 
+(eq C c1 d1)).(let H9 \def (eq_ind T t (\lambda (t0: T).(arity g c1 t0 (asucc 
+g a))) H3 u1 H7) in (let H10 \def (eq_ind C c1 (\lambda (c0: C).(arity g c0 
+u1 (asucc g a))) H9 d1 H8) in (let H11 \def (eq_ind C c1 (\lambda (c0: 
+C).((eq C c0 (CHead d1 (Bind Abst) u1)) \to (or (ex2 C (\lambda (d2: C).(eq C 
+c2 (CHead d2 (Bind Abst) u1))) (\lambda (d2: C).(csuba g d1 d2))) (ex4_3 C T 
+A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(eq C c2 (CHead d2 (Bind 
+Abbr) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d1 
+d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a0: A).(arity g d1 u1 (asucc 
+g a0))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a0: A).(arity g d2 u2 
+a0)))))))) H2 d1 H8) in (let H12 \def (eq_ind C c1 (\lambda (c0: C).(csuba g 
+c0 c2)) H1 d1 H8) in (or_intror (ex2 C (\lambda (d2: C).(eq C (CHead c2 (Bind 
+Abbr) u) (CHead d2 (Bind Abst) u1))) (\lambda (d2: C).(csuba g d1 d2))) 
+(ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(eq C (CHead 
+c2 (Bind Abbr) u) (CHead d2 (Bind Abbr) u2))))) (\lambda (d2: C).(\lambda (_: 
+T).(\lambda (_: A).(csuba g d1 d2)))) (\lambda (_: C).(\lambda (_: 
+T).(\lambda (a0: A).(arity g d1 u1 (asucc g a0))))) (\lambda (d2: C).(\lambda 
+(u2: T).(\lambda (a0: A).(arity g d2 u2 a0))))) (ex4_3_intro C T A (\lambda 
 (d2: C).(\lambda (u2: T).(\lambda (_: A).(eq C (CHead c2 (Bind Abbr) u) 
 (CHead d2 (Bind Abbr) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: 
 A).(csuba g d1 d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a0: A).(arity 
 g d1 u1 (asucc g a0))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a0: 
-A).(arity g d2 u2 a0))))) (ex4_3_intro C T A (\lambda (d2: C).(\lambda (u2: 
-T).(\lambda (_: A).(eq C (CHead c2 (Bind Abbr) u) (CHead d2 (Bind Abbr) 
-u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d1 d2)))) 
-(\lambda (_: C).(\lambda (_: T).(\lambda (a0: A).(arity g d1 u1 (asucc g 
-a0))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a0: A).(arity g d2 u2 
-a0)))) c2 u a (refl_equal C (CHead c2 (Bind Abbr) u)) H12 H10 H4)))))))) 
-H6)))))))))))) y c H0))) H))))).
-(* COMMENTS
-Initial nodes: 2550
-END *)
+A).(arity g d2 u2 a0)))) c2 u a (refl_equal C (CHead c2 (Bind Abbr) u)) H12 
+H10 H4)))))))) H6)))))))))))) y c H0))) H))))).
 
 theorem csuba_gen_flat:
  \forall (g: G).(\forall (d1: C).(\forall (c: C).(\forall (u1: T).(\forall 
@@ -339,47 +333,45 @@ d1 (Flat f) u1) (\lambda (c0: C).(csuba g c0 c)) (\lambda (_: C).(ex2_2 C T
 (CHead d1 (Flat f) u1)) \to (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq 
 C c1 (CHead d2 (Flat f) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d1 
 d2))))))) (\lambda (n: nat).(\lambda (H1: (eq C (CSort n) (CHead d1 (Flat f) 
-u1))).(let H2 \def (eq_ind C (CSort n) (\lambda (ee: C).(match ee in C return 
-(\lambda (_: C).Prop) with [(CSort _) \Rightarrow True | (CHead _ _ _) 
-\Rightarrow False])) I (CHead d1 (Flat f) u1) H1) in (False_ind (ex2_2 C T 
-(\lambda (d2: C).(\lambda (u2: T).(eq C (CSort n) (CHead d2 (Flat f) u2)))) 
-(\lambda (d2: C).(\lambda (_: T).(csuba g d1 d2)))) H2)))) (\lambda (c1: 
-C).(\lambda (c2: C).(\lambda (H1: (csuba g c1 c2)).(\lambda (H2: (((eq C c1 
-(CHead d1 (Flat f) u1)) \to (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq 
-C c2 (CHead d2 (Flat f) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d1 
-d2))))))).(\lambda (k: K).(\lambda (u: T).(\lambda (H3: (eq C (CHead c1 k u) 
-(CHead d1 (Flat f) u1))).(let H4 \def (f_equal C C (\lambda (e: C).(match e 
-in C return (\lambda (_: C).C) with [(CSort _) \Rightarrow c1 | (CHead c0 _ 
-_) \Rightarrow c0])) (CHead c1 k u) (CHead d1 (Flat f) u1) H3) in ((let H5 
-\def (f_equal C K (\lambda (e: C).(match e in C return (\lambda (_: C).K) 
-with [(CSort _) \Rightarrow k | (CHead _ k0 _) \Rightarrow k0])) (CHead c1 k 
-u) (CHead d1 (Flat f) u1) H3) in ((let H6 \def (f_equal C T (\lambda (e: 
-C).(match e in C return (\lambda (_: C).T) with [(CSort _) \Rightarrow u | 
-(CHead _ _ t) \Rightarrow t])) (CHead c1 k u) (CHead d1 (Flat f) u1) H3) in 
-(\lambda (H7: (eq K k (Flat f))).(\lambda (H8: (eq C c1 d1)).(eq_ind_r T u1 
-(\lambda (t: T).(ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C (CHead c2 
-k t) (CHead d2 (Flat f) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d1 
-d2))))) (eq_ind_r K (Flat f) (\lambda (k0: K).(ex2_2 C T (\lambda (d2: 
-C).(\lambda (u2: T).(eq C (CHead c2 k0 u1) (CHead d2 (Flat f) u2)))) (\lambda 
-(d2: C).(\lambda (_: T).(csuba g d1 d2))))) (let H9 \def (eq_ind C c1 
-(\lambda (c0: C).((eq C c0 (CHead d1 (Flat f) u1)) \to (ex2_2 C T (\lambda 
-(d2: C).(\lambda (u2: T).(eq C c2 (CHead d2 (Flat f) u2)))) (\lambda (d2: 
-C).(\lambda (_: T).(csuba g d1 d2)))))) H2 d1 H8) in (let H10 \def (eq_ind C 
-c1 (\lambda (c0: C).(csuba g c0 c2)) H1 d1 H8) in (ex2_2_intro C T (\lambda 
-(d2: C).(\lambda (u2: T).(eq C (CHead c2 (Flat f) u1) (CHead d2 (Flat f) 
-u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d1 d2))) c2 u1 (refl_equal C 
-(CHead c2 (Flat f) u1)) H10))) k H7) u H6)))) H5)) H4))))))))) (\lambda (c1: 
-C).(\lambda (c2: C).(\lambda (_: (csuba g c1 c2)).(\lambda (_: (((eq C c1 
-(CHead d1 (Flat f) u1)) \to (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq 
-C c2 (CHead d2 (Flat f) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d1 
-d2))))))).(\lambda (b: B).(\lambda (_: (not (eq B b Void))).(\lambda (u0: 
-T).(\lambda (u2: T).(\lambda (H4: (eq C (CHead c1 (Bind Void) u0) (CHead d1 
-(Flat f) u1))).(let H5 \def (eq_ind C (CHead c1 (Bind Void) u0) (\lambda (ee: 
-C).(match ee in C return (\lambda (_: C).Prop) with [(CSort _) \Rightarrow 
-False | (CHead _ k _) \Rightarrow (match k in K return (\lambda (_: K).Prop) 
-with [(Bind _) \Rightarrow True | (Flat _) \Rightarrow False])])) I (CHead d1 
-(Flat f) u1) H4) in (False_ind (ex2_2 C T (\lambda (d2: C).(\lambda (u3: 
-T).(eq C (CHead c2 (Bind b) u2) (CHead d2 (Flat f) u3)))) (\lambda (d2: 
+u1))).(let H2 \def (eq_ind C (CSort n) (\lambda (ee: C).(match ee with 
+[(CSort _) \Rightarrow True | (CHead _ _ _) \Rightarrow False])) I (CHead d1 
+(Flat f) u1) H1) in (False_ind (ex2_2 C T (\lambda (d2: C).(\lambda (u2: 
+T).(eq C (CSort n) (CHead d2 (Flat f) u2)))) (\lambda (d2: C).(\lambda (_: 
+T).(csuba g d1 d2)))) H2)))) (\lambda (c1: C).(\lambda (c2: C).(\lambda (H1: 
+(csuba g c1 c2)).(\lambda (H2: (((eq C c1 (CHead d1 (Flat f) u1)) \to (ex2_2 
+C T (\lambda (d2: C).(\lambda (u2: T).(eq C c2 (CHead d2 (Flat f) u2)))) 
+(\lambda (d2: C).(\lambda (_: T).(csuba g d1 d2))))))).(\lambda (k: 
+K).(\lambda (u: T).(\lambda (H3: (eq C (CHead c1 k u) (CHead d1 (Flat f) 
+u1))).(let H4 \def (f_equal C C (\lambda (e: C).(match e with [(CSort _) 
+\Rightarrow c1 | (CHead c0 _ _) \Rightarrow c0])) (CHead c1 k u) (CHead d1 
+(Flat f) u1) H3) in ((let H5 \def (f_equal C K (\lambda (e: C).(match e with 
+[(CSort _) \Rightarrow k | (CHead _ k0 _) \Rightarrow k0])) (CHead c1 k u) 
+(CHead d1 (Flat f) u1) H3) in ((let H6 \def (f_equal C T (\lambda (e: 
+C).(match e with [(CSort _) \Rightarrow u | (CHead _ _ t) \Rightarrow t])) 
+(CHead c1 k u) (CHead d1 (Flat f) u1) H3) in (\lambda (H7: (eq K k (Flat 
+f))).(\lambda (H8: (eq C c1 d1)).(eq_ind_r T u1 (\lambda (t: T).(ex2_2 C T 
+(\lambda (d2: C).(\lambda (u2: T).(eq C (CHead c2 k t) (CHead d2 (Flat f) 
+u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d1 d2))))) (eq_ind_r K (Flat 
+f) (\lambda (k0: K).(ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C (CHead 
+c2 k0 u1) (CHead d2 (Flat f) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g 
+d1 d2))))) (let H9 \def (eq_ind C c1 (\lambda (c0: C).((eq C c0 (CHead d1 
+(Flat f) u1)) \to (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C c2 
+(CHead d2 (Flat f) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d1 
+d2)))))) H2 d1 H8) in (let H10 \def (eq_ind C c1 (\lambda (c0: C).(csuba g c0 
+c2)) H1 d1 H8) in (ex2_2_intro C T (\lambda (d2: C).(\lambda (u2: T).(eq C 
+(CHead c2 (Flat f) u1) (CHead d2 (Flat f) u2)))) (\lambda (d2: C).(\lambda 
+(_: T).(csuba g d1 d2))) c2 u1 (refl_equal C (CHead c2 (Flat f) u1)) H10))) k 
+H7) u H6)))) H5)) H4))))))))) (\lambda (c1: C).(\lambda (c2: C).(\lambda (_: 
+(csuba g c1 c2)).(\lambda (_: (((eq C c1 (CHead d1 (Flat f) u1)) \to (ex2_2 C 
+T (\lambda (d2: C).(\lambda (u2: T).(eq C c2 (CHead d2 (Flat f) u2)))) 
+(\lambda (d2: C).(\lambda (_: T).(csuba g d1 d2))))))).(\lambda (b: 
+B).(\lambda (_: (not (eq B b Void))).(\lambda (u0: T).(\lambda (u2: 
+T).(\lambda (H4: (eq C (CHead c1 (Bind Void) u0) (CHead d1 (Flat f) 
+u1))).(let H5 \def (eq_ind C (CHead c1 (Bind Void) u0) (\lambda (ee: 
+C).(match ee with [(CSort _) \Rightarrow False | (CHead _ k _) \Rightarrow 
+(match k with [(Bind _) \Rightarrow True | (Flat _) \Rightarrow False])])) I 
+(CHead d1 (Flat f) u1) H4) in (False_ind (ex2_2 C T (\lambda (d2: C).(\lambda 
+(u3: T).(eq C (CHead c2 (Bind b) u2) (CHead d2 (Flat f) u3)))) (\lambda (d2: 
 C).(\lambda (_: T).(csuba g d1 d2)))) H5))))))))))) (\lambda (c1: C).(\lambda 
 (c2: C).(\lambda (_: (csuba g c1 c2)).(\lambda (_: (((eq C c1 (CHead d1 (Flat 
 f) u1)) \to (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C c2 (CHead d2 
@@ -387,16 +379,12 @@ f) u1)) \to (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C c2 (CHead d2
 d2))))))).(\lambda (t: T).(\lambda (a: A).(\lambda (_: (arity g c1 t (asucc g 
 a))).(\lambda (u: T).(\lambda (_: (arity g c2 u a)).(\lambda (H5: (eq C 
 (CHead c1 (Bind Abst) t) (CHead d1 (Flat f) u1))).(let H6 \def (eq_ind C 
-(CHead c1 (Bind Abst) t) (\lambda (ee: C).(match ee in C return (\lambda (_: 
-C).Prop) with [(CSort _) \Rightarrow False | (CHead _ k _) \Rightarrow (match 
-k in K return (\lambda (_: K).Prop) with [(Bind _) \Rightarrow True | (Flat 
-_) \Rightarrow False])])) I (CHead d1 (Flat f) u1) H5) in (False_ind (ex2_2 C 
-T (\lambda (d2: C).(\lambda (u2: T).(eq C (CHead c2 (Bind Abbr) u) (CHead d2 
-(Flat f) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d1 d2)))) 
-H6)))))))))))) y c H0))) H)))))).
-(* COMMENTS
-Initial nodes: 1183
-END *)
+(CHead c1 (Bind Abst) t) (\lambda (ee: C).(match ee with [(CSort _) 
+\Rightarrow False | (CHead _ k _) \Rightarrow (match k with [(Bind _) 
+\Rightarrow True | (Flat _) \Rightarrow False])])) I (CHead d1 (Flat f) u1) 
+H5) in (False_ind (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C (CHead 
+c2 (Bind Abbr) u) (CHead d2 (Flat f) u2)))) (\lambda (d2: C).(\lambda (_: 
+T).(csuba g d1 d2)))) H6)))))))))))) y c H0))) H)))))).
 
 theorem csuba_gen_bind:
  \forall (g: G).(\forall (b1: B).(\forall (e1: C).(\forall (c2: C).(\forall 
@@ -415,102 +403,94 @@ b1) v1)) \to (ex2_3 B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2:
 T).(eq C c0 (CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: 
 C).(\lambda (_: T).(csuba g e1 e2)))))))) (\lambda (n: nat).(\lambda (H1: (eq 
 C (CSort n) (CHead e1 (Bind b1) v1))).(let H2 \def (eq_ind C (CSort n) 
-(\lambda (ee: C).(match ee in C return (\lambda (_: C).Prop) with [(CSort _) 
-\Rightarrow True | (CHead _ _ _) \Rightarrow False])) I (CHead e1 (Bind b1) 
-v1) H1) in (False_ind (ex2_3 B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda 
-(v2: T).(eq C (CSort n) (CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda 
-(e2: C).(\lambda (_: T).(csuba g e1 e2))))) H2)))) (\lambda (c1: C).(\lambda 
-(c3: C).(\lambda (H1: (csuba g c1 c3)).(\lambda (H2: (((eq C c1 (CHead e1 
-(Bind b1) v1)) \to (ex2_3 B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda 
-(v2: T).(eq C c3 (CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: 
-C).(\lambda (_: T).(csuba g e1 e2)))))))).(\lambda (k: K).(\lambda (u: 
-T).(\lambda (H3: (eq C (CHead c1 k u) (CHead e1 (Bind b1) v1))).(let H4 \def 
-(f_equal C C (\lambda (e: C).(match e in C return (\lambda (_: C).C) with 
-[(CSort _) \Rightarrow c1 | (CHead c _ _) \Rightarrow c])) (CHead c1 k u) 
-(CHead e1 (Bind b1) v1) H3) in ((let H5 \def (f_equal C K (\lambda (e: 
-C).(match e in C return (\lambda (_: C).K) with [(CSort _) \Rightarrow k | 
-(CHead _ k0 _) \Rightarrow k0])) (CHead c1 k u) (CHead e1 (Bind b1) v1) H3) 
-in ((let H6 \def (f_equal C T (\lambda (e: C).(match e in C return (\lambda 
-(_: C).T) with [(CSort _) \Rightarrow u | (CHead _ _ t) \Rightarrow t])) 
-(CHead c1 k u) (CHead e1 (Bind b1) v1) H3) in (\lambda (H7: (eq K k (Bind 
-b1))).(\lambda (H8: (eq C c1 e1)).(eq_ind_r T v1 (\lambda (t: T).(ex2_3 B C T 
-(\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C (CHead c3 k t) 
-(CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (_: 
-T).(csuba g e1 e2)))))) (eq_ind_r K (Bind b1) (\lambda (k0: K).(ex2_3 B C T 
-(\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C (CHead c3 k0 v1) 
-(CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (_: 
-T).(csuba g e1 e2)))))) (let H9 \def (eq_ind C c1 (\lambda (c: C).((eq C c 
-(CHead e1 (Bind b1) v1)) \to (ex2_3 B C T (\lambda (b2: B).(\lambda (e2: 
-C).(\lambda (v2: T).(eq C c3 (CHead e2 (Bind b2) v2))))) (\lambda (_: 
-B).(\lambda (e2: C).(\lambda (_: T).(csuba g e1 e2))))))) H2 e1 H8) in (let 
-H10 \def (eq_ind C c1 (\lambda (c: C).(csuba g c c3)) H1 e1 H8) in 
-(ex2_3_intro B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C 
-(CHead c3 (Bind b1) v1) (CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda 
-(e2: C).(\lambda (_: T).(csuba g e1 e2)))) b1 c3 v1 (refl_equal C (CHead c3 
-(Bind b1) v1)) H10))) k H7) u H6)))) H5)) H4))))))))) (\lambda (c1: 
+(\lambda (ee: C).(match ee with [(CSort _) \Rightarrow True | (CHead _ _ _) 
+\Rightarrow False])) I (CHead e1 (Bind b1) v1) H1) in (False_ind (ex2_3 B C T 
+(\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C (CSort n) (CHead e2 
+(Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (_: T).(csuba g 
+e1 e2))))) H2)))) (\lambda (c1: C).(\lambda (c3: C).(\lambda (H1: (csuba g c1 
+c3)).(\lambda (H2: (((eq C c1 (CHead e1 (Bind b1) v1)) \to (ex2_3 B C T 
+(\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C c3 (CHead e2 (Bind 
+b2) v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (_: T).(csuba g e1 
+e2)))))))).(\lambda (k: K).(\lambda (u: T).(\lambda (H3: (eq C (CHead c1 k u) 
+(CHead e1 (Bind b1) v1))).(let H4 \def (f_equal C C (\lambda (e: C).(match e 
+with [(CSort _) \Rightarrow c1 | (CHead c _ _) \Rightarrow c])) (CHead c1 k 
+u) (CHead e1 (Bind b1) v1) H3) in ((let H5 \def (f_equal C K (\lambda (e: 
+C).(match e with [(CSort _) \Rightarrow k | (CHead _ k0 _) \Rightarrow k0])) 
+(CHead c1 k u) (CHead e1 (Bind b1) v1) H3) in ((let H6 \def (f_equal C T 
+(\lambda (e: C).(match e with [(CSort _) \Rightarrow u | (CHead _ _ t) 
+\Rightarrow t])) (CHead c1 k u) (CHead e1 (Bind b1) v1) H3) in (\lambda (H7: 
+(eq K k (Bind b1))).(\lambda (H8: (eq C c1 e1)).(eq_ind_r T v1 (\lambda (t: 
+T).(ex2_3 B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C 
+(CHead c3 k t) (CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: 
+C).(\lambda (_: T).(csuba g e1 e2)))))) (eq_ind_r K (Bind b1) (\lambda (k0: 
+K).(ex2_3 B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C 
+(CHead c3 k0 v1) (CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: 
+C).(\lambda (_: T).(csuba g e1 e2)))))) (let H9 \def (eq_ind C c1 (\lambda 
+(c: C).((eq C c (CHead e1 (Bind b1) v1)) \to (ex2_3 B C T (\lambda (b2: 
+B).(\lambda (e2: C).(\lambda (v2: T).(eq C c3 (CHead e2 (Bind b2) v2))))) 
+(\lambda (_: B).(\lambda (e2: C).(\lambda (_: T).(csuba g e1 e2))))))) H2 e1 
+H8) in (let H10 \def (eq_ind C c1 (\lambda (c: C).(csuba g c c3)) H1 e1 H8) 
+in (ex2_3_intro B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq 
+C (CHead c3 (Bind b1) v1) (CHead e2 (Bind b2) v2))))) (\lambda (_: 
+B).(\lambda (e2: C).(\lambda (_: T).(csuba g e1 e2)))) b1 c3 v1 (refl_equal C 
+(CHead c3 (Bind b1) v1)) H10))) k H7) u H6)))) H5)) H4))))))))) (\lambda (c1: 
 C).(\lambda (c3: C).(\lambda (H1: (csuba g c1 c3)).(\lambda (H2: (((eq C c1 
 (CHead e1 (Bind b1) v1)) \to (ex2_3 B C T (\lambda (b2: B).(\lambda (e2: 
 C).(\lambda (v2: T).(eq C c3 (CHead e2 (Bind b2) v2))))) (\lambda (_: 
 B).(\lambda (e2: C).(\lambda (_: T).(csuba g e1 e2)))))))).(\lambda (b: 
 B).(\lambda (_: (not (eq B b Void))).(\lambda (u1: T).(\lambda (u2: 
 T).(\lambda (H4: (eq C (CHead c1 (Bind Void) u1) (CHead e1 (Bind b1) 
-v1))).(let H5 \def (f_equal C C (\lambda (e: C).(match e in C return (\lambda 
-(_: C).C) with [(CSort _) \Rightarrow c1 | (CHead c _ _) \Rightarrow c])) 
-(CHead c1 (Bind Void) u1) (CHead e1 (Bind b1) v1) H4) in ((let H6 \def 
-(f_equal C B (\lambda (e: C).(match e in C return (\lambda (_: C).B) with 
-[(CSort _) \Rightarrow Void | (CHead _ k _) \Rightarrow (match k in K return 
-(\lambda (_: K).B) with [(Bind b0) \Rightarrow b0 | (Flat _) \Rightarrow 
-Void])])) (CHead c1 (Bind Void) u1) (CHead e1 (Bind b1) v1) H4) in ((let H7 
-\def (f_equal C T (\lambda (e: C).(match e in C return (\lambda (_: C).T) 
-with [(CSort _) \Rightarrow u1 | (CHead _ _ t) \Rightarrow t])) (CHead c1 
-(Bind Void) u1) (CHead e1 (Bind b1) v1) H4) in (\lambda (H8: (eq B Void 
-b1)).(\lambda (H9: (eq C c1 e1)).(let H10 \def (eq_ind C c1 (\lambda (c: 
-C).((eq C c (CHead e1 (Bind b1) v1)) \to (ex2_3 B C T (\lambda (b2: 
-B).(\lambda (e2: C).(\lambda (v2: T).(eq C c3 (CHead e2 (Bind b2) v2))))) 
-(\lambda (_: B).(\lambda (e2: C).(\lambda (_: T).(csuba g e1 e2))))))) H2 e1 
-H9) in (let H11 \def (eq_ind C c1 (\lambda (c: C).(csuba g c c3)) H1 e1 H9) 
-in (let H12 \def (eq_ind_r B b1 (\lambda (b0: B).((eq C e1 (CHead e1 (Bind 
-b0) v1)) \to (ex2_3 B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: 
+v1))).(let H5 \def (f_equal C C (\lambda (e: C).(match e with [(CSort _) 
+\Rightarrow c1 | (CHead c _ _) \Rightarrow c])) (CHead c1 (Bind Void) u1) 
+(CHead e1 (Bind b1) v1) H4) in ((let H6 \def (f_equal C B (\lambda (e: 
+C).(match e with [(CSort _) \Rightarrow Void | (CHead _ k _) \Rightarrow 
+(match k with [(Bind b0) \Rightarrow b0 | (Flat _) \Rightarrow Void])])) 
+(CHead c1 (Bind Void) u1) (CHead e1 (Bind b1) v1) H4) in ((let H7 \def 
+(f_equal C T (\lambda (e: C).(match e with [(CSort _) \Rightarrow u1 | (CHead 
+_ _ t) \Rightarrow t])) (CHead c1 (Bind Void) u1) (CHead e1 (Bind b1) v1) H4) 
+in (\lambda (H8: (eq B Void b1)).(\lambda (H9: (eq C c1 e1)).(let H10 \def 
+(eq_ind C c1 (\lambda (c: C).((eq C c (CHead e1 (Bind b1) v1)) \to (ex2_3 B C 
+T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C c3 (CHead e2 (Bind 
+b2) v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (_: T).(csuba g e1 
+e2))))))) H2 e1 H9) in (let H11 \def (eq_ind C c1 (\lambda (c: C).(csuba g c 
+c3)) H1 e1 H9) in (let H12 \def (eq_ind_r B b1 (\lambda (b0: B).((eq C e1 
+(CHead e1 (Bind b0) v1)) \to (ex2_3 B C T (\lambda (b2: B).(\lambda (e2: 
+C).(\lambda (v2: T).(eq C c3 (CHead e2 (Bind b2) v2))))) (\lambda (_: 
+B).(\lambda (e2: C).(\lambda (_: T).(csuba g e1 e2))))))) H10 Void H8) in 
+(ex2_3_intro B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C 
+(CHead c3 (Bind b) u2) (CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda 
+(e2: C).(\lambda (_: T).(csuba g e1 e2)))) b c3 u2 (refl_equal C (CHead c3 
+(Bind b) u2)) H11))))))) H6)) H5))))))))))) (\lambda (c1: C).(\lambda (c3: 
+C).(\lambda (H1: (csuba g c1 c3)).(\lambda (H2: (((eq C c1 (CHead e1 (Bind 
+b1) v1)) \to (ex2_3 B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: 
 T).(eq C c3 (CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: 
-C).(\lambda (_: T).(csuba g e1 e2))))))) H10 Void H8) in (ex2_3_intro B C T 
-(\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C (CHead c3 (Bind b) 
-u2) (CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (_: 
-T).(csuba g e1 e2)))) b c3 u2 (refl_equal C (CHead c3 (Bind b) u2)) 
-H11))))))) H6)) H5))))))))))) (\lambda (c1: C).(\lambda (c3: C).(\lambda (H1: 
-(csuba g c1 c3)).(\lambda (H2: (((eq C c1 (CHead e1 (Bind b1) v1)) \to (ex2_3 
-B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C c3 (CHead e2 
-(Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (_: T).(csuba g 
-e1 e2)))))))).(\lambda (t: T).(\lambda (a: A).(\lambda (H3: (arity g c1 t 
-(asucc g a))).(\lambda (u: T).(\lambda (_: (arity g c3 u a)).(\lambda (H5: 
-(eq C (CHead c1 (Bind Abst) t) (CHead e1 (Bind b1) v1))).(let H6 \def 
-(f_equal C C (\lambda (e: C).(match e in C return (\lambda (_: C).C) with 
+C).(\lambda (_: T).(csuba g e1 e2)))))))).(\lambda (t: T).(\lambda (a: 
+A).(\lambda (H3: (arity g c1 t (asucc g a))).(\lambda (u: T).(\lambda (_: 
+(arity g c3 u a)).(\lambda (H5: (eq C (CHead c1 (Bind Abst) t) (CHead e1 
+(Bind b1) v1))).(let H6 \def (f_equal C C (\lambda (e: C).(match e with 
 [(CSort _) \Rightarrow c1 | (CHead c _ _) \Rightarrow c])) (CHead c1 (Bind 
 Abst) t) (CHead e1 (Bind b1) v1) H5) in ((let H7 \def (f_equal C B (\lambda 
-(e: C).(match e in C return (\lambda (_: C).B) with [(CSort _) \Rightarrow 
-Abst | (CHead _ k _) \Rightarrow (match k in K return (\lambda (_: K).B) with 
-[(Bind b) \Rightarrow b | (Flat _) \Rightarrow Abst])])) (CHead c1 (Bind 
-Abst) t) (CHead e1 (Bind b1) v1) H5) in ((let H8 \def (f_equal C T (\lambda 
-(e: C).(match e in C return (\lambda (_: C).T) with [(CSort _) \Rightarrow t 
-| (CHead _ _ t0) \Rightarrow t0])) (CHead c1 (Bind Abst) t) (CHead e1 (Bind 
-b1) v1) H5) in (\lambda (H9: (eq B Abst b1)).(\lambda (H10: (eq C c1 
-e1)).(let H11 \def (eq_ind T t (\lambda (t0: T).(arity g c1 t0 (asucc g a))) 
-H3 v1 H8) in (let H12 \def (eq_ind C c1 (\lambda (c: C).(arity g c v1 (asucc 
-g a))) H11 e1 H10) in (let H13 \def (eq_ind C c1 (\lambda (c: C).((eq C c 
-(CHead e1 (Bind b1) v1)) \to (ex2_3 B C T (\lambda (b2: B).(\lambda (e2: 
-C).(\lambda (v2: T).(eq C c3 (CHead e2 (Bind b2) v2))))) (\lambda (_: 
-B).(\lambda (e2: C).(\lambda (_: T).(csuba g e1 e2))))))) H2 e1 H10) in (let 
-H14 \def (eq_ind C c1 (\lambda (c: C).(csuba g c c3)) H1 e1 H10) in (let H15 
-\def (eq_ind_r B b1 (\lambda (b: B).((eq C e1 (CHead e1 (Bind b) v1)) \to 
-(ex2_3 B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C c3 
-(CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (_: 
-T).(csuba g e1 e2))))))) H13 Abst H9) in (ex2_3_intro B C T (\lambda (b2: 
-B).(\lambda (e2: C).(\lambda (v2: T).(eq C (CHead c3 (Bind Abbr) u) (CHead e2 
-(Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (_: T).(csuba g 
-e1 e2)))) Abbr c3 u (refl_equal C (CHead c3 (Bind Abbr) u)) H14))))))))) H7)) 
+(e: C).(match e with [(CSort _) \Rightarrow Abst | (CHead _ k _) \Rightarrow 
+(match k with [(Bind b) \Rightarrow b | (Flat _) \Rightarrow Abst])])) (CHead 
+c1 (Bind Abst) t) (CHead e1 (Bind b1) v1) H5) in ((let H8 \def (f_equal C T 
+(\lambda (e: C).(match e with [(CSort _) \Rightarrow t | (CHead _ _ t0) 
+\Rightarrow t0])) (CHead c1 (Bind Abst) t) (CHead e1 (Bind b1) v1) H5) in 
+(\lambda (H9: (eq B Abst b1)).(\lambda (H10: (eq C c1 e1)).(let H11 \def 
+(eq_ind T t (\lambda (t0: T).(arity g c1 t0 (asucc g a))) H3 v1 H8) in (let 
+H12 \def (eq_ind C c1 (\lambda (c: C).(arity g c v1 (asucc g a))) H11 e1 H10) 
+in (let H13 \def (eq_ind C c1 (\lambda (c: C).((eq C c (CHead e1 (Bind b1) 
+v1)) \to (ex2_3 B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq 
+C c3 (CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda 
+(_: T).(csuba g e1 e2))))))) H2 e1 H10) in (let H14 \def (eq_ind C c1 
+(\lambda (c: C).(csuba g c c3)) H1 e1 H10) in (let H15 \def (eq_ind_r B b1 
+(\lambda (b: B).((eq C e1 (CHead e1 (Bind b) v1)) \to (ex2_3 B C T (\lambda 
+(b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C c3 (CHead e2 (Bind b2) 
+v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (_: T).(csuba g e1 
+e2))))))) H13 Abst H9) in (ex2_3_intro B C T (\lambda (b2: B).(\lambda (e2: 
+C).(\lambda (v2: T).(eq C (CHead c3 (Bind Abbr) u) (CHead e2 (Bind b2) 
+v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (_: T).(csuba g e1 e2)))) 
+Abbr c3 u (refl_equal C (CHead c3 (Bind Abbr) u)) H14))))))))) H7)) 
 H6)))))))))))) y c2 H0))) H)))))).
-(* COMMENTS
-Initial nodes: 1889
-END *)
 
 theorem csuba_gen_abst_rev:
  \forall (g: G).(\forall (d1: C).(\forall (c: C).(\forall (u: T).((csuba g c 
@@ -531,25 +511,23 @@ c0 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T
 (\lambda (d2: C).(\lambda (u2: T).(eq C c0 (CHead d2 (Bind Void) u2)))) 
 (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1)))))))) (\lambda (n: 
 nat).(\lambda (H1: (eq C (CSort n) (CHead d1 (Bind Abst) u))).(let H2 \def 
-(eq_ind C (CSort n) (\lambda (ee: C).(match ee in C return (\lambda (_: 
-C).Prop) with [(CSort _) \Rightarrow True | (CHead _ _ _) \Rightarrow 
-False])) I (CHead d1 (Bind Abst) u) H1) in (False_ind (or (ex2 C (\lambda 
-(d2: C).(eq C (CSort n) (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g 
-d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C (CSort n) (CHead 
-d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))) 
-H2)))) (\lambda (c1: C).(\lambda (c2: C).(\lambda (H1: (csuba g c1 
-c2)).(\lambda (H2: (((eq C c2 (CHead d1 (Bind Abst) u)) \to (or (ex2 C 
-(\lambda (d2: C).(eq C c1 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba 
-g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C c1 (CHead d2 
-(Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 
-d1)))))))).(\lambda (k: K).(\lambda (u0: T).(\lambda (H3: (eq C (CHead c2 k 
-u0) (CHead d1 (Bind Abst) u))).(let H4 \def (f_equal C C (\lambda (e: 
-C).(match e in C return (\lambda (_: C).C) with [(CSort _) \Rightarrow c2 | 
-(CHead c0 _ _) \Rightarrow c0])) (CHead c2 k u0) (CHead d1 (Bind Abst) u) H3) 
-in ((let H5 \def (f_equal C K (\lambda (e: C).(match e in C return (\lambda 
-(_: C).K) with [(CSort _) \Rightarrow k | (CHead _ k0 _) \Rightarrow k0])) 
-(CHead c2 k u0) (CHead d1 (Bind Abst) u) H3) in ((let H6 \def (f_equal C T 
-(\lambda (e: C).(match e in C return (\lambda (_: C).T) with [(CSort _) 
+(eq_ind C (CSort n) (\lambda (ee: C).(match ee with [(CSort _) \Rightarrow 
+True | (CHead _ _ _) \Rightarrow False])) I (CHead d1 (Bind Abst) u) H1) in 
+(False_ind (or (ex2 C (\lambda (d2: C).(eq C (CSort n) (CHead d2 (Bind Abst) 
+u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda 
+(u2: T).(eq C (CSort n) (CHead d2 (Bind Void) u2)))) (\lambda (d2: 
+C).(\lambda (_: T).(csuba g d2 d1))))) H2)))) (\lambda (c1: C).(\lambda (c2: 
+C).(\lambda (H1: (csuba g c1 c2)).(\lambda (H2: (((eq C c2 (CHead d1 (Bind 
+Abst) u)) \to (or (ex2 C (\lambda (d2: C).(eq C c1 (CHead d2 (Bind Abst) u))) 
+(\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: 
+T).(eq C c1 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: 
+T).(csuba g d2 d1)))))))).(\lambda (k: K).(\lambda (u0: T).(\lambda (H3: (eq 
+C (CHead c2 k u0) (CHead d1 (Bind Abst) u))).(let H4 \def (f_equal C C 
+(\lambda (e: C).(match e with [(CSort _) \Rightarrow c2 | (CHead c0 _ _) 
+\Rightarrow c0])) (CHead c2 k u0) (CHead d1 (Bind Abst) u) H3) in ((let H5 
+\def (f_equal C K (\lambda (e: C).(match e with [(CSort _) \Rightarrow k | 
+(CHead _ k0 _) \Rightarrow k0])) (CHead c2 k u0) (CHead d1 (Bind Abst) u) H3) 
+in ((let H6 \def (f_equal C T (\lambda (e: C).(match e with [(CSort _) 
 \Rightarrow u0 | (CHead _ _ t) \Rightarrow t])) (CHead c2 k u0) (CHead d1 
 (Bind Abst) u) H3) in (\lambda (H7: (eq K k (Bind Abst))).(\lambda (H8: (eq C 
 c2 d1)).(eq_ind_r T u (\lambda (t: T).(or (ex2 C (\lambda (d2: C).(eq C 
@@ -579,50 +557,44 @@ C).(\lambda (u2: T).(eq C c1 (CHead d2 (Bind Void) u2)))) (\lambda (d2:
 C).(\lambda (_: T).(csuba g d2 d1)))))))).(\lambda (b: B).(\lambda (H3: (not 
 (eq B b Void))).(\lambda (u1: T).(\lambda (u2: T).(\lambda (H4: (eq C (CHead 
 c2 (Bind b) u2) (CHead d1 (Bind Abst) u))).(let H5 \def (f_equal C C (\lambda 
-(e: C).(match e in C return (\lambda (_: C).C) with [(CSort _) \Rightarrow c2 
-| (CHead c0 _ _) \Rightarrow c0])) (CHead c2 (Bind b) u2) (CHead d1 (Bind 
-Abst) u) H4) in ((let H6 \def (f_equal C B (\lambda (e: C).(match e in C 
-return (\lambda (_: C).B) with [(CSort _) \Rightarrow b | (CHead _ k _) 
-\Rightarrow (match k in K return (\lambda (_: K).B) with [(Bind b0) 
-\Rightarrow b0 | (Flat _) \Rightarrow b])])) (CHead c2 (Bind b) u2) (CHead d1 
-(Bind Abst) u) H4) in ((let H7 \def (f_equal C T (\lambda (e: C).(match e in 
-C return (\lambda (_: C).T) with [(CSort _) \Rightarrow u2 | (CHead _ _ t) 
-\Rightarrow t])) (CHead c2 (Bind b) u2) (CHead d1 (Bind Abst) u) H4) in 
-(\lambda (H8: (eq B b Abst)).(\lambda (H9: (eq C c2 d1)).(let H10 \def 
-(eq_ind B b (\lambda (b0: B).(not (eq B b0 Void))) H3 Abst H8) in (let H11 
-\def (eq_ind C c2 (\lambda (c0: C).((eq C c0 (CHead d1 (Bind Abst) u)) \to 
-(or (ex2 C (\lambda (d2: C).(eq C c1 (CHead d2 (Bind Abst) u))) (\lambda (d2: 
-C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u3: T).(eq C c1 
-(CHead d2 (Bind Void) u3)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 
-d1))))))) H2 d1 H9) in (let H12 \def (eq_ind C c2 (\lambda (c0: C).(csuba g 
-c1 c0)) H1 d1 H9) in (or_intror (ex2 C (\lambda (d2: C).(eq C (CHead c1 (Bind 
-Void) u1) (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) 
-(ex2_2 C T (\lambda (d2: C).(\lambda (u3: T).(eq C (CHead c1 (Bind Void) u1) 
-(CHead d2 (Bind Void) u3)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 
-d1)))) (ex2_2_intro C T (\lambda (d2: C).(\lambda (u3: T).(eq C (CHead c1 
-(Bind Void) u1) (CHead d2 (Bind Void) u3)))) (\lambda (d2: C).(\lambda (_: 
-T).(csuba g d2 d1))) c1 u1 (refl_equal C (CHead c1 (Bind Void) u1)) 
-H12)))))))) H6)) H5))))))))))) (\lambda (c1: C).(\lambda (c2: C).(\lambda (_: 
-(csuba g c1 c2)).(\lambda (_: (((eq C c2 (CHead d1 (Bind Abst) u)) \to (or 
-(ex2 C (\lambda (d2: C).(eq C c1 (CHead d2 (Bind Abst) u))) (\lambda (d2: 
-C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C c1 
-(CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 
-d1)))))))).(\lambda (t: T).(\lambda (a: A).(\lambda (_: (arity g c1 t (asucc 
-g a))).(\lambda (u0: T).(\lambda (_: (arity g c2 u0 a)).(\lambda (H5: (eq C 
-(CHead c2 (Bind Abbr) u0) (CHead d1 (Bind Abst) u))).(let H6 \def (eq_ind C 
-(CHead c2 (Bind Abbr) u0) (\lambda (ee: C).(match ee in C return (\lambda (_: 
-C).Prop) with [(CSort _) \Rightarrow False | (CHead _ k _) \Rightarrow (match 
-k in K return (\lambda (_: K).Prop) with [(Bind b) \Rightarrow (match b in B 
-return (\lambda (_: B).Prop) with [Abbr \Rightarrow True | Abst \Rightarrow 
-False | Void \Rightarrow False]) | (Flat _) \Rightarrow False])])) I (CHead 
-d1 (Bind Abst) u) H5) in (False_ind (or (ex2 C (\lambda (d2: C).(eq C (CHead 
-c1 (Bind Abst) t) (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 
-d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C (CHead c1 (Bind 
-Abst) t) (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba 
-g d2 d1))))) H6)))))))))))) c y H0))) H))))).
-(* COMMENTS
-Initial nodes: 1980
-END *)
+(e: C).(match e with [(CSort _) \Rightarrow c2 | (CHead c0 _ _) \Rightarrow 
+c0])) (CHead c2 (Bind b) u2) (CHead d1 (Bind Abst) u) H4) in ((let H6 \def 
+(f_equal C B (\lambda (e: C).(match e with [(CSort _) \Rightarrow b | (CHead 
+_ k _) \Rightarrow (match k with [(Bind b0) \Rightarrow b0 | (Flat _) 
+\Rightarrow b])])) (CHead c2 (Bind b) u2) (CHead d1 (Bind Abst) u) H4) in 
+((let H7 \def (f_equal C T (\lambda (e: C).(match e with [(CSort _) 
+\Rightarrow u2 | (CHead _ _ t) \Rightarrow t])) (CHead c2 (Bind b) u2) (CHead 
+d1 (Bind Abst) u) H4) in (\lambda (H8: (eq B b Abst)).(\lambda (H9: (eq C c2 
+d1)).(let H10 \def (eq_ind B b (\lambda (b0: B).(not (eq B b0 Void))) H3 Abst 
+H8) in (let H11 \def (eq_ind C c2 (\lambda (c0: C).((eq C c0 (CHead d1 (Bind 
+Abst) u)) \to (or (ex2 C (\lambda (d2: C).(eq C c1 (CHead d2 (Bind Abst) u))) 
+(\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u3: 
+T).(eq C c1 (CHead d2 (Bind Void) u3)))) (\lambda (d2: C).(\lambda (_: 
+T).(csuba g d2 d1))))))) H2 d1 H9) in (let H12 \def (eq_ind C c2 (\lambda 
+(c0: C).(csuba g c1 c0)) H1 d1 H9) in (or_intror (ex2 C (\lambda (d2: C).(eq 
+C (CHead c1 (Bind Void) u1) (CHead d2 (Bind Abst) u))) (\lambda (d2: 
+C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u3: T).(eq C 
+(CHead c1 (Bind Void) u1) (CHead d2 (Bind Void) u3)))) (\lambda (d2: 
+C).(\lambda (_: T).(csuba g d2 d1)))) (ex2_2_intro C T (\lambda (d2: 
+C).(\lambda (u3: T).(eq C (CHead c1 (Bind Void) u1) (CHead d2 (Bind Void) 
+u3)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))) c1 u1 (refl_equal C 
+(CHead c1 (Bind Void) u1)) H12)))))))) H6)) H5))))))))))) (\lambda (c1: 
+C).(\lambda (c2: C).(\lambda (_: (csuba g c1 c2)).(\lambda (_: (((eq C c2 
+(CHead d1 (Bind Abst) u)) \to (or (ex2 C (\lambda (d2: C).(eq C c1 (CHead d2 
+(Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: 
+C).(\lambda (u2: T).(eq C c1 (CHead d2 (Bind Void) u2)))) (\lambda (d2: 
+C).(\lambda (_: T).(csuba g d2 d1)))))))).(\lambda (t: T).(\lambda (a: 
+A).(\lambda (_: (arity g c1 t (asucc g a))).(\lambda (u0: T).(\lambda (_: 
+(arity g c2 u0 a)).(\lambda (H5: (eq C (CHead c2 (Bind Abbr) u0) (CHead d1 
+(Bind Abst) u))).(let H6 \def (eq_ind C (CHead c2 (Bind Abbr) u0) (\lambda 
+(ee: C).(match ee with [(CSort _) \Rightarrow False | (CHead _ k _) 
+\Rightarrow (match k with [(Bind b) \Rightarrow (match b with [Abbr 
+\Rightarrow True | Abst \Rightarrow False | Void \Rightarrow False]) | (Flat 
+_) \Rightarrow False])])) I (CHead d1 (Bind Abst) u) H5) in (False_ind (or 
+(ex2 C (\lambda (d2: C).(eq C (CHead c1 (Bind Abst) t) (CHead d2 (Bind Abst) 
+u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda 
+(u2: T).(eq C (CHead c1 (Bind Abst) t) (CHead d2 (Bind Void) u2)))) (\lambda 
+(d2: C).(\lambda (_: T).(csuba g d2 d1))))) H6)))))))))))) c y H0))) H))))).
 
 theorem csuba_gen_void_rev:
  \forall (g: G).(\forall (d1: C).(\forall (c: C).(\forall (u: T).((csuba g c 
@@ -637,73 +609,63 @@ C c (CHead d2 (Bind Void) u))) (\lambda (d2: C).(csuba g d2 d1)))) (\lambda
 (c1: C).((eq C c1 (CHead d1 (Bind Void) u)) \to (ex2 C (\lambda (d2: C).(eq C 
 c0 (CHead d2 (Bind Void) u))) (\lambda (d2: C).(csuba g d2 d1)))))) (\lambda 
 (n: nat).(\lambda (H1: (eq C (CSort n) (CHead d1 (Bind Void) u))).(let H2 
-\def (eq_ind C (CSort n) (\lambda (ee: C).(match ee in C return (\lambda (_: 
-C).Prop) with [(CSort _) \Rightarrow True | (CHead _ _ _) \Rightarrow 
-False])) I (CHead d1 (Bind Void) u) H1) in (False_ind (ex2 C (\lambda (d2: 
-C).(eq C (CSort n) (CHead d2 (Bind Void) u))) (\lambda (d2: C).(csuba g d2 
-d1))) H2)))) (\lambda (c1: C).(\lambda (c2: C).(\lambda (H1: (csuba g c1 
-c2)).(\lambda (H2: (((eq C c2 (CHead d1 (Bind Void) u)) \to (ex2 C (\lambda 
-(d2: C).(eq C c1 (CHead d2 (Bind Void) u))) (\lambda (d2: C).(csuba g d2 
-d1)))))).(\lambda (k: K).(\lambda (u0: T).(\lambda (H3: (eq C (CHead c2 k u0) 
-(CHead d1 (Bind Void) u))).(let H4 \def (f_equal C C (\lambda (e: C).(match e 
-in C return (\lambda (_: C).C) with [(CSort _) \Rightarrow c2 | (CHead c0 _ 
-_) \Rightarrow c0])) (CHead c2 k u0) (CHead d1 (Bind Void) u) H3) in ((let H5 
-\def (f_equal C K (\lambda (e: C).(match e in C return (\lambda (_: C).K) 
+\def (eq_ind C (CSort n) (\lambda (ee: C).(match ee with [(CSort _) 
+\Rightarrow True | (CHead _ _ _) \Rightarrow False])) I (CHead d1 (Bind Void) 
+u) H1) in (False_ind (ex2 C (\lambda (d2: C).(eq C (CSort n) (CHead d2 (Bind 
+Void) u))) (\lambda (d2: C).(csuba g d2 d1))) H2)))) (\lambda (c1: 
+C).(\lambda (c2: C).(\lambda (H1: (csuba g c1 c2)).(\lambda (H2: (((eq C c2 
+(CHead d1 (Bind Void) u)) \to (ex2 C (\lambda (d2: C).(eq C c1 (CHead d2 
+(Bind Void) u))) (\lambda (d2: C).(csuba g d2 d1)))))).(\lambda (k: 
+K).(\lambda (u0: T).(\lambda (H3: (eq C (CHead c2 k u0) (CHead d1 (Bind Void) 
+u))).(let H4 \def (f_equal C C (\lambda (e: C).(match e with [(CSort _) 
+\Rightarrow c2 | (CHead c0 _ _) \Rightarrow c0])) (CHead c2 k u0) (CHead d1 
+(Bind Void) u) H3) in ((let H5 \def (f_equal C K (\lambda (e: C).(match e 
 with [(CSort _) \Rightarrow k | (CHead _ k0 _) \Rightarrow k0])) (CHead c2 k 
 u0) (CHead d1 (Bind Void) u) H3) in ((let H6 \def (f_equal C T (\lambda (e: 
-C).(match e in C return (\lambda (_: C).T) with [(CSort _) \Rightarrow u0 | 
-(CHead _ _ t) \Rightarrow t])) (CHead c2 k u0) (CHead d1 (Bind Void) u) H3) 
-in (\lambda (H7: (eq K k (Bind Void))).(\lambda (H8: (eq C c2 d1)).(eq_ind_r 
-T u (\lambda (t: T).(ex2 C (\lambda (d2: C).(eq C (CHead c1 k t) (CHead d2 
-(Bind Void) u))) (\lambda (d2: C).(csuba g d2 d1)))) (eq_ind_r K (Bind Void) 
-(\lambda (k0: K).(ex2 C (\lambda (d2: C).(eq C (CHead c1 k0 u) (CHead d2 
-(Bind Void) u))) (\lambda (d2: C).(csuba g d2 d1)))) (let H9 \def (eq_ind C 
-c2 (\lambda (c0: C).((eq C c0 (CHead d1 (Bind Void) u)) \to (ex2 C (\lambda 
-(d2: C).(eq C c1 (CHead d2 (Bind Void) u))) (\lambda (d2: C).(csuba g d2 
-d1))))) H2 d1 H8) in (let H10 \def (eq_ind C c2 (\lambda (c0: C).(csuba g c1 
-c0)) H1 d1 H8) in (ex_intro2 C (\lambda (d2: C).(eq C (CHead c1 (Bind Void) 
-u) (CHead d2 (Bind Void) u))) (\lambda (d2: C).(csuba g d2 d1)) c1 
-(refl_equal C (CHead c1 (Bind Void) u)) H10))) k H7) u0 H6)))) H5)) 
-H4))))))))) (\lambda (c1: C).(\lambda (c2: C).(\lambda (H1: (csuba g c1 
-c2)).(\lambda (H2: (((eq C c2 (CHead d1 (Bind Void) u)) \to (ex2 C (\lambda 
-(d2: C).(eq C c1 (CHead d2 (Bind Void) u))) (\lambda (d2: C).(csuba g d2 
-d1)))))).(\lambda (b: B).(\lambda (H3: (not (eq B b Void))).(\lambda (u1: 
-T).(\lambda (u2: T).(\lambda (H4: (eq C (CHead c2 (Bind b) u2) (CHead d1 
-(Bind Void) u))).(let H5 \def (f_equal C C (\lambda (e: C).(match e in C 
-return (\lambda (_: C).C) with [(CSort _) \Rightarrow c2 | (CHead c0 _ _) 
-\Rightarrow c0])) (CHead c2 (Bind b) u2) (CHead d1 (Bind Void) u) H4) in 
-((let H6 \def (f_equal C B (\lambda (e: C).(match e in C return (\lambda (_: 
-C).B) with [(CSort _) \Rightarrow b | (CHead _ k _) \Rightarrow (match k in K 
-return (\lambda (_: K).B) with [(Bind b0) \Rightarrow b0 | (Flat _) 
+C).(match e with [(CSort _) \Rightarrow u0 | (CHead _ _ t) \Rightarrow t])) 
+(CHead c2 k u0) (CHead d1 (Bind Void) u) H3) in (\lambda (H7: (eq K k (Bind 
+Void))).(\lambda (H8: (eq C c2 d1)).(eq_ind_r T u (\lambda (t: T).(ex2 C 
+(\lambda (d2: C).(eq C (CHead c1 k t) (CHead d2 (Bind Void) u))) (\lambda 
+(d2: C).(csuba g d2 d1)))) (eq_ind_r K (Bind Void) (\lambda (k0: K).(ex2 C 
+(\lambda (d2: C).(eq C (CHead c1 k0 u) (CHead d2 (Bind Void) u))) (\lambda 
+(d2: C).(csuba g d2 d1)))) (let H9 \def (eq_ind C c2 (\lambda (c0: C).((eq C 
+c0 (CHead d1 (Bind Void) u)) \to (ex2 C (\lambda (d2: C).(eq C c1 (CHead d2 
+(Bind Void) u))) (\lambda (d2: C).(csuba g d2 d1))))) H2 d1 H8) in (let H10 
+\def (eq_ind C c2 (\lambda (c0: C).(csuba g c1 c0)) H1 d1 H8) in (ex_intro2 C 
+(\lambda (d2: C).(eq C (CHead c1 (Bind Void) u) (CHead d2 (Bind Void) u))) 
+(\lambda (d2: C).(csuba g d2 d1)) c1 (refl_equal C (CHead c1 (Bind Void) u)) 
+H10))) k H7) u0 H6)))) H5)) H4))))))))) (\lambda (c1: C).(\lambda (c2: 
+C).(\lambda (H1: (csuba g c1 c2)).(\lambda (H2: (((eq C c2 (CHead d1 (Bind 
+Void) u)) \to (ex2 C (\lambda (d2: C).(eq C c1 (CHead d2 (Bind Void) u))) 
+(\lambda (d2: C).(csuba g d2 d1)))))).(\lambda (b: B).(\lambda (H3: (not (eq 
+B b Void))).(\lambda (u1: T).(\lambda (u2: T).(\lambda (H4: (eq C (CHead c2 
+(Bind b) u2) (CHead d1 (Bind Void) u))).(let H5 \def (f_equal C C (\lambda 
+(e: C).(match e with [(CSort _) \Rightarrow c2 | (CHead c0 _ _) \Rightarrow 
+c0])) (CHead c2 (Bind b) u2) (CHead d1 (Bind Void) u) H4) in ((let H6 \def 
+(f_equal C B (\lambda (e: C).(match e with [(CSort _) \Rightarrow b | (CHead 
+_ k _) \Rightarrow (match k with [(Bind b0) \Rightarrow b0 | (Flat _) 
 \Rightarrow b])])) (CHead c2 (Bind b) u2) (CHead d1 (Bind Void) u) H4) in 
-((let H7 \def (f_equal C T (\lambda (e: C).(match e in C return (\lambda (_: 
-C).T) with [(CSort _) \Rightarrow u2 | (CHead _ _ t) \Rightarrow t])) (CHead 
-c2 (Bind b) u2) (CHead d1 (Bind Void) u) H4) in (\lambda (H8: (eq B b 
-Void)).(\lambda (H9: (eq C c2 d1)).(let H10 \def (eq_ind B b (\lambda (b0: 
-B).(not (eq B b0 Void))) H3 Void H8) in (let H11 \def (eq_ind C c2 (\lambda 
-(c0: C).((eq C c0 (CHead d1 (Bind Void) u)) \to (ex2 C (\lambda (d2: C).(eq C 
-c1 (CHead d2 (Bind Void) u))) (\lambda (d2: C).(csuba g d2 d1))))) H2 d1 H9) 
-in (let H12 \def (eq_ind C c2 (\lambda (c0: C).(csuba g c1 c0)) H1 d1 H9) in 
-(let H13 \def (match (H10 (refl_equal B Void)) in False return (\lambda (_: 
-False).(ex2 C (\lambda (d2: C).(eq C (CHead c1 (Bind Void) u1) (CHead d2 
-(Bind Void) u))) (\lambda (d2: C).(csuba g d2 d1)))) with []) in H13))))))) 
-H6)) H5))))))))))) (\lambda (c1: C).(\lambda (c2: C).(\lambda (_: (csuba g c1 
-c2)).(\lambda (_: (((eq C c2 (CHead d1 (Bind Void) u)) \to (ex2 C (\lambda 
-(d2: C).(eq C c1 (CHead d2 (Bind Void) u))) (\lambda (d2: C).(csuba g d2 
-d1)))))).(\lambda (t: T).(\lambda (a: A).(\lambda (_: (arity g c1 t (asucc g 
-a))).(\lambda (u0: T).(\lambda (_: (arity g c2 u0 a)).(\lambda (H5: (eq C 
-(CHead c2 (Bind Abbr) u0) (CHead d1 (Bind Void) u))).(let H6 \def (eq_ind C 
-(CHead c2 (Bind Abbr) u0) (\lambda (ee: C).(match ee in C return (\lambda (_: 
-C).Prop) with [(CSort _) \Rightarrow False | (CHead _ k _) \Rightarrow (match 
-k in K return (\lambda (_: K).Prop) with [(Bind b) \Rightarrow (match b in B 
-return (\lambda (_: B).Prop) with [Abbr \Rightarrow True | Abst \Rightarrow 
-False | Void \Rightarrow False]) | (Flat _) \Rightarrow False])])) I (CHead 
-d1 (Bind Void) u) H5) in (False_ind (ex2 C (\lambda (d2: C).(eq C (CHead c1 
-(Bind Abst) t) (CHead d2 (Bind Void) u))) (\lambda (d2: C).(csuba g d2 d1))) 
-H6)))))))))))) c y H0))) H))))).
-(* COMMENTS
-Initial nodes: 1326
-END *)
+((let H7 \def (f_equal C T (\lambda (e: C).(match e with [(CSort _) 
+\Rightarrow u2 | (CHead _ _ t) \Rightarrow t])) (CHead c2 (Bind b) u2) (CHead 
+d1 (Bind Void) u) H4) in (\lambda (H8: (eq B b Void)).(\lambda (H9: (eq C c2 
+d1)).(let H10 \def (eq_ind B b (\lambda (b0: B).(not (eq B b0 Void))) H3 Void 
+H8) in (let H11 \def (eq_ind C c2 (\lambda (c0: C).((eq C c0 (CHead d1 (Bind 
+Void) u)) \to (ex2 C (\lambda (d2: C).(eq C c1 (CHead d2 (Bind Void) u))) 
+(\lambda (d2: C).(csuba g d2 d1))))) H2 d1 H9) in (let H12 \def (eq_ind C c2 
+(\lambda (c0: C).(csuba g c1 c0)) H1 d1 H9) in (let H13 \def (match (H10 
+(refl_equal B Void)) in False with []) in H13))))))) H6)) H5))))))))))) 
+(\lambda (c1: C).(\lambda (c2: C).(\lambda (_: (csuba g c1 c2)).(\lambda (_: 
+(((eq C c2 (CHead d1 (Bind Void) u)) \to (ex2 C (\lambda (d2: C).(eq C c1 
+(CHead d2 (Bind Void) u))) (\lambda (d2: C).(csuba g d2 d1)))))).(\lambda (t: 
+T).(\lambda (a: A).(\lambda (_: (arity g c1 t (asucc g a))).(\lambda (u0: 
+T).(\lambda (_: (arity g c2 u0 a)).(\lambda (H5: (eq C (CHead c2 (Bind Abbr) 
+u0) (CHead d1 (Bind Void) u))).(let H6 \def (eq_ind C (CHead c2 (Bind Abbr) 
+u0) (\lambda (ee: C).(match ee with [(CSort _) \Rightarrow False | (CHead _ k 
+_) \Rightarrow (match k with [(Bind b) \Rightarrow (match b with [Abbr 
+\Rightarrow True | Abst \Rightarrow False | Void \Rightarrow False]) | (Flat 
+_) \Rightarrow False])])) I (CHead d1 (Bind Void) u) H5) in (False_ind (ex2 C 
+(\lambda (d2: C).(eq C (CHead c1 (Bind Abst) t) (CHead d2 (Bind Void) u))) 
+(\lambda (d2: C).(csuba g d2 d1))) H6)))))))))))) c y H0))) H))))).
 
 theorem csuba_gen_abbr_rev:
  \forall (g: G).(\forall (d1: C).(\forall (c: C).(\forall (u1: T).((csuba g c 
@@ -736,34 +698,32 @@ A).(arity g d2 u2 (asucc g a))))) (\lambda (_: C).(\lambda (_: T).(\lambda
 (a: A).(arity g d1 u1 a))))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq 
 C c0 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g 
 d2 d1)))))))) (\lambda (n: nat).(\lambda (H1: (eq C (CSort n) (CHead d1 (Bind 
-Abbr) u1))).(let H2 \def (eq_ind C (CSort n) (\lambda (ee: C).(match ee in C 
-return (\lambda (_: C).Prop) with [(CSort _) \Rightarrow True | (CHead _ _ _) 
-\Rightarrow False])) I (CHead d1 (Bind Abbr) u1) H1) in (False_ind (or3 (ex2 
-C (\lambda (d2: C).(eq C (CSort n) (CHead d2 (Bind Abbr) u1))) (\lambda (d2: 
-C).(csuba g d2 d1))) (ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda 
-(_: A).(eq C (CSort n) (CHead d2 (Bind Abst) u2))))) (\lambda (d2: 
-C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 d1)))) (\lambda (d2: 
-C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 (asucc g a))))) (\lambda 
-(_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 a))))) (ex2_2 C T 
-(\lambda (d2: C).(\lambda (u2: T).(eq C (CSort n) (CHead d2 (Bind Void) 
-u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))) H2)))) (\lambda 
-(c1: C).(\lambda (c2: C).(\lambda (H1: (csuba g c1 c2)).(\lambda (H2: (((eq C 
-c2 (CHead d1 (Bind Abbr) u1)) \to (or3 (ex2 C (\lambda (d2: C).(eq C c1 
-(CHead d2 (Bind Abbr) u1))) (\lambda (d2: C).(csuba g d2 d1))) (ex4_3 C T A 
-(\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(eq C c1 (CHead d2 (Bind 
-Abst) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 
-d1)))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 
+Abbr) u1))).(let H2 \def (eq_ind C (CSort n) (\lambda (ee: C).(match ee with 
+[(CSort _) \Rightarrow True | (CHead _ _ _) \Rightarrow False])) I (CHead d1 
+(Bind Abbr) u1) H1) in (False_ind (or3 (ex2 C (\lambda (d2: C).(eq C (CSort 
+n) (CHead d2 (Bind Abbr) u1))) (\lambda (d2: C).(csuba g d2 d1))) (ex4_3 C T 
+A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(eq C (CSort n) (CHead d2 
+(Bind Abst) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g 
+d2 d1)))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 
 (asucc g a))))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 
-u1 a))))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C c1 (CHead d2 
-(Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 
-d1)))))))).(\lambda (k: K).(\lambda (u: T).(\lambda (H3: (eq C (CHead c2 k u) 
-(CHead d1 (Bind Abbr) u1))).(let H4 \def (f_equal C C (\lambda (e: C).(match 
-e in C return (\lambda (_: C).C) with [(CSort _) \Rightarrow c2 | (CHead c0 _ 
-_) \Rightarrow c0])) (CHead c2 k u) (CHead d1 (Bind Abbr) u1) H3) in ((let H5 
-\def (f_equal C K (\lambda (e: C).(match e in C return (\lambda (_: C).K) 
-with [(CSort _) \Rightarrow k | (CHead _ k0 _) \Rightarrow k0])) (CHead c2 k 
-u) (CHead d1 (Bind Abbr) u1) H3) in ((let H6 \def (f_equal C T (\lambda (e: 
-C).(match e in C return (\lambda (_: C).T) with [(CSort _) \Rightarrow u | 
+u1 a))))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C (CSort n) (CHead 
+d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))) 
+H2)))) (\lambda (c1: C).(\lambda (c2: C).(\lambda (H1: (csuba g c1 
+c2)).(\lambda (H2: (((eq C c2 (CHead d1 (Bind Abbr) u1)) \to (or3 (ex2 C 
+(\lambda (d2: C).(eq C c1 (CHead d2 (Bind Abbr) u1))) (\lambda (d2: C).(csuba 
+g d2 d1))) (ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(eq 
+C c1 (CHead d2 (Bind Abst) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda 
+(_: A).(csuba g d2 d1)))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: 
+A).(arity g d2 u2 (asucc g a))))) (\lambda (_: C).(\lambda (_: T).(\lambda 
+(a: A).(arity g d1 u1 a))))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq 
+C c1 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g 
+d2 d1)))))))).(\lambda (k: K).(\lambda (u: T).(\lambda (H3: (eq C (CHead c2 k 
+u) (CHead d1 (Bind Abbr) u1))).(let H4 \def (f_equal C C (\lambda (e: 
+C).(match e with [(CSort _) \Rightarrow c2 | (CHead c0 _ _) \Rightarrow c0])) 
+(CHead c2 k u) (CHead d1 (Bind Abbr) u1) H3) in ((let H5 \def (f_equal C K 
+(\lambda (e: C).(match e with [(CSort _) \Rightarrow k | (CHead _ k0 _) 
+\Rightarrow k0])) (CHead c2 k u) (CHead d1 (Bind Abbr) u1) H3) in ((let H6 
+\def (f_equal C T (\lambda (e: C).(match e with [(CSort _) \Rightarrow u | 
 (CHead _ _ t) \Rightarrow t])) (CHead c2 k u) (CHead d1 (Bind Abbr) u1) H3) 
 in (\lambda (H7: (eq K k (Bind Abbr))).(\lambda (H8: (eq C c2 d1)).(eq_ind_r 
 T u1 (\lambda (t: T).(or3 (ex2 C (\lambda (d2: C).(eq C (CHead c1 k t) (CHead 
@@ -815,73 +775,71 @@ a))))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 a)))))
 u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1)))))))).(\lambda (b: 
 B).(\lambda (H3: (not (eq B b Void))).(\lambda (u0: T).(\lambda (u2: 
 T).(\lambda (H4: (eq C (CHead c2 (Bind b) u2) (CHead d1 (Bind Abbr) 
-u1))).(let H5 \def (f_equal C C (\lambda (e: C).(match e in C return (\lambda 
-(_: C).C) with [(CSort _) \Rightarrow c2 | (CHead c0 _ _) \Rightarrow c0])) 
-(CHead c2 (Bind b) u2) (CHead d1 (Bind Abbr) u1) H4) in ((let H6 \def 
-(f_equal C B (\lambda (e: C).(match e in C return (\lambda (_: C).B) with 
-[(CSort _) \Rightarrow b | (CHead _ k _) \Rightarrow (match k in K return 
-(\lambda (_: K).B) with [(Bind b0) \Rightarrow b0 | (Flat _) \Rightarrow 
-b])])) (CHead c2 (Bind b) u2) (CHead d1 (Bind Abbr) u1) H4) in ((let H7 \def 
-(f_equal C T (\lambda (e: C).(match e in C return (\lambda (_: C).T) with 
-[(CSort _) \Rightarrow u2 | (CHead _ _ t) \Rightarrow t])) (CHead c2 (Bind b) 
-u2) (CHead d1 (Bind Abbr) u1) H4) in (\lambda (H8: (eq B b Abbr)).(\lambda 
-(H9: (eq C c2 d1)).(let H10 \def (eq_ind B b (\lambda (b0: B).(not (eq B b0 
-Void))) H3 Abbr H8) in (let H11 \def (eq_ind C c2 (\lambda (c0: C).((eq C c0 
-(CHead d1 (Bind Abbr) u1)) \to (or3 (ex2 C (\lambda (d2: C).(eq C c1 (CHead 
-d2 (Bind Abbr) u1))) (\lambda (d2: C).(csuba g d2 d1))) (ex4_3 C T A (\lambda 
-(d2: C).(\lambda (u3: T).(\lambda (_: A).(eq C c1 (CHead d2 (Bind Abst) 
-u3))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 d1)))) 
-(\lambda (d2: C).(\lambda (u3: T).(\lambda (a: A).(arity g d2 u3 (asucc g 
-a))))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 a))))) 
-(ex2_2 C T (\lambda (d2: C).(\lambda (u3: T).(eq C c1 (CHead d2 (Bind Void) 
-u3)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))))) H2 d1 H9) in 
-(let H12 \def (eq_ind C c2 (\lambda (c0: C).(csuba g c1 c0)) H1 d1 H9) in 
-(or3_intro2 (ex2 C (\lambda (d2: C).(eq C (CHead c1 (Bind Void) u0) (CHead d2 
-(Bind Abbr) u1))) (\lambda (d2: C).(csuba g d2 d1))) (ex4_3 C T A (\lambda 
-(d2: C).(\lambda (u3: T).(\lambda (_: A).(eq C (CHead c1 (Bind Void) u0) 
-(CHead d2 (Bind Abst) u3))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: 
-A).(csuba g d2 d1)))) (\lambda (d2: C).(\lambda (u3: T).(\lambda (a: 
-A).(arity g d2 u3 (asucc g a))))) (\lambda (_: C).(\lambda (_: T).(\lambda 
-(a: A).(arity g d1 u1 a))))) (ex2_2 C T (\lambda (d2: C).(\lambda (u3: T).(eq 
+u1))).(let H5 \def (f_equal C C (\lambda (e: C).(match e with [(CSort _) 
+\Rightarrow c2 | (CHead c0 _ _) \Rightarrow c0])) (CHead c2 (Bind b) u2) 
+(CHead d1 (Bind Abbr) u1) H4) in ((let H6 \def (f_equal C B (\lambda (e: 
+C).(match e with [(CSort _) \Rightarrow b | (CHead _ k _) \Rightarrow (match 
+k with [(Bind b0) \Rightarrow b0 | (Flat _) \Rightarrow b])])) (CHead c2 
+(Bind b) u2) (CHead d1 (Bind Abbr) u1) H4) in ((let H7 \def (f_equal C T 
+(\lambda (e: C).(match e with [(CSort _) \Rightarrow u2 | (CHead _ _ t) 
+\Rightarrow t])) (CHead c2 (Bind b) u2) (CHead d1 (Bind Abbr) u1) H4) in 
+(\lambda (H8: (eq B b Abbr)).(\lambda (H9: (eq C c2 d1)).(let H10 \def 
+(eq_ind B b (\lambda (b0: B).(not (eq B b0 Void))) H3 Abbr H8) in (let H11 
+\def (eq_ind C c2 (\lambda (c0: C).((eq C c0 (CHead d1 (Bind Abbr) u1)) \to 
+(or3 (ex2 C (\lambda (d2: C).(eq C c1 (CHead d2 (Bind Abbr) u1))) (\lambda 
+(d2: C).(csuba g d2 d1))) (ex4_3 C T A (\lambda (d2: C).(\lambda (u3: 
+T).(\lambda (_: A).(eq C c1 (CHead d2 (Bind Abst) u3))))) (\lambda (d2: 
+C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 d1)))) (\lambda (d2: 
+C).(\lambda (u3: T).(\lambda (a: A).(arity g d2 u3 (asucc g a))))) (\lambda 
+(_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 a))))) (ex2_2 C T 
+(\lambda (d2: C).(\lambda (u3: T).(eq C c1 (CHead d2 (Bind Void) u3)))) 
+(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))))) H2 d1 H9) in (let H12 
+\def (eq_ind C c2 (\lambda (c0: C).(csuba g c1 c0)) H1 d1 H9) in (or3_intro2 
+(ex2 C (\lambda (d2: C).(eq C (CHead c1 (Bind Void) u0) (CHead d2 (Bind Abbr) 
+u1))) (\lambda (d2: C).(csuba g d2 d1))) (ex4_3 C T A (\lambda (d2: 
+C).(\lambda (u3: T).(\lambda (_: A).(eq C (CHead c1 (Bind Void) u0) (CHead d2 
+(Bind Abst) u3))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g 
+d2 d1)))) (\lambda (d2: C).(\lambda (u3: T).(\lambda (a: A).(arity g d2 u3 
+(asucc g a))))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 
+u1 a))))) (ex2_2 C T (\lambda (d2: C).(\lambda (u3: T).(eq C (CHead c1 (Bind 
+Void) u0) (CHead d2 (Bind Void) u3)))) (\lambda (d2: C).(\lambda (_: 
+T).(csuba g d2 d1)))) (ex2_2_intro C T (\lambda (d2: C).(\lambda (u3: T).(eq 
 C (CHead c1 (Bind Void) u0) (CHead d2 (Bind Void) u3)))) (\lambda (d2: 
-C).(\lambda (_: T).(csuba g d2 d1)))) (ex2_2_intro C T (\lambda (d2: 
-C).(\lambda (u3: T).(eq C (CHead c1 (Bind Void) u0) (CHead d2 (Bind Void) 
-u3)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))) c1 u0 (refl_equal C 
-(CHead c1 (Bind Void) u0)) H12)))))))) H6)) H5))))))))))) (\lambda (c1: 
-C).(\lambda (c2: C).(\lambda (H1: (csuba g c1 c2)).(\lambda (H2: (((eq C c2 
-(CHead d1 (Bind Abbr) u1)) \to (or3 (ex2 C (\lambda (d2: C).(eq C c1 (CHead 
-d2 (Bind Abbr) u1))) (\lambda (d2: C).(csuba g d2 d1))) (ex4_3 C T A (\lambda 
-(d2: C).(\lambda (u2: T).(\lambda (_: A).(eq C c1 (CHead d2 (Bind Abst) 
-u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 d1)))) 
-(\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 (asucc g 
-a))))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 a))))) 
-(ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C c1 (CHead d2 (Bind Void) 
-u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1)))))))).(\lambda (t: 
+C).(\lambda (_: T).(csuba g d2 d1))) c1 u0 (refl_equal C (CHead c1 (Bind 
+Void) u0)) H12)))))))) H6)) H5))))))))))) (\lambda (c1: C).(\lambda (c2: 
+C).(\lambda (H1: (csuba g c1 c2)).(\lambda (H2: (((eq C c2 (CHead d1 (Bind 
+Abbr) u1)) \to (or3 (ex2 C (\lambda (d2: C).(eq C c1 (CHead d2 (Bind Abbr) 
+u1))) (\lambda (d2: C).(csuba g d2 d1))) (ex4_3 C T A (\lambda (d2: 
+C).(\lambda (u2: T).(\lambda (_: A).(eq C c1 (CHead d2 (Bind Abst) u2))))) 
+(\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 d1)))) (\lambda 
+(d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 (asucc g a))))) 
+(\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 a))))) (ex2_2 
+C T (\lambda (d2: C).(\lambda (u2: T).(eq C c1 (CHead d2 (Bind Void) u2)))) 
+(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1)))))))).(\lambda (t: 
 T).(\lambda (a: A).(\lambda (H3: (arity g c1 t (asucc g a))).(\lambda (u: 
 T).(\lambda (H4: (arity g c2 u a)).(\lambda (H5: (eq C (CHead c2 (Bind Abbr) 
 u) (CHead d1 (Bind Abbr) u1))).(let H6 \def (f_equal C C (\lambda (e: 
-C).(match e in C return (\lambda (_: C).C) with [(CSort _) \Rightarrow c2 | 
-(CHead c0 _ _) \Rightarrow c0])) (CHead c2 (Bind Abbr) u) (CHead d1 (Bind 
-Abbr) u1) H5) in ((let H7 \def (f_equal C T (\lambda (e: C).(match e in C 
-return (\lambda (_: C).T) with [(CSort _) \Rightarrow u | (CHead _ _ t0) 
-\Rightarrow t0])) (CHead c2 (Bind Abbr) u) (CHead d1 (Bind Abbr) u1) H5) in 
-(\lambda (H8: (eq C c2 d1)).(let H9 \def (eq_ind T u (\lambda (t0: T).(arity 
-g c2 t0 a)) H4 u1 H7) in (let H10 \def (eq_ind C c2 (\lambda (c0: C).(arity g 
-c0 u1 a)) H9 d1 H8) in (let H11 \def (eq_ind C c2 (\lambda (c0: C).((eq C c0 
-(CHead d1 (Bind Abbr) u1)) \to (or3 (ex2 C (\lambda (d2: C).(eq C c1 (CHead 
-d2 (Bind Abbr) u1))) (\lambda (d2: C).(csuba g d2 d1))) (ex4_3 C T A (\lambda 
-(d2: C).(\lambda (u2: T).(\lambda (_: A).(eq C c1 (CHead d2 (Bind Abst) 
-u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 d1)))) 
-(\lambda (d2: C).(\lambda (u2: T).(\lambda (a0: A).(arity g d2 u2 (asucc g 
-a0))))) (\lambda (_: C).(\lambda (_: T).(\lambda (a0: A).(arity g d1 u1 
-a0))))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C c1 (CHead d2 (Bind 
-Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))))) H2 d1 H8) 
-in (let H12 \def (eq_ind C c2 (\lambda (c0: C).(csuba g c1 c0)) H1 d1 H8) in 
-(or3_intro1 (ex2 C (\lambda (d2: C).(eq C (CHead c1 (Bind Abst) t) (CHead d2 
-(Bind Abbr) u1))) (\lambda (d2: C).(csuba g d2 d1))) (ex4_3 C T A (\lambda 
-(d2: C).(\lambda (u2: T).(\lambda (_: A).(eq C (CHead c1 (Bind Abst) t) 
-(CHead d2 (Bind Abst) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: 
-A).(csuba g d2 d1)))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a0: 
+C).(match e with [(CSort _) \Rightarrow c2 | (CHead c0 _ _) \Rightarrow c0])) 
+(CHead c2 (Bind Abbr) u) (CHead d1 (Bind Abbr) u1) H5) in ((let H7 \def 
+(f_equal C T (\lambda (e: C).(match e with [(CSort _) \Rightarrow u | (CHead 
+_ _ t0) \Rightarrow t0])) (CHead c2 (Bind Abbr) u) (CHead d1 (Bind Abbr) u1) 
+H5) in (\lambda (H8: (eq C c2 d1)).(let H9 \def (eq_ind T u (\lambda (t0: 
+T).(arity g c2 t0 a)) H4 u1 H7) in (let H10 \def (eq_ind C c2 (\lambda (c0: 
+C).(arity g c0 u1 a)) H9 d1 H8) in (let H11 \def (eq_ind C c2 (\lambda (c0: 
+C).((eq C c0 (CHead d1 (Bind Abbr) u1)) \to (or3 (ex2 C (\lambda (d2: C).(eq 
+C c1 (CHead d2 (Bind Abbr) u1))) (\lambda (d2: C).(csuba g d2 d1))) (ex4_3 C 
+T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(eq C c1 (CHead d2 
+(Bind Abst) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g 
+d2 d1)))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a0: A).(arity g d2 u2 
+(asucc g a0))))) (\lambda (_: C).(\lambda (_: T).(\lambda (a0: A).(arity g d1 
+u1 a0))))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C c1 (CHead d2 
+(Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))))) H2 
+d1 H8) in (let H12 \def (eq_ind C c2 (\lambda (c0: C).(csuba g c1 c0)) H1 d1 
+H8) in (or3_intro1 (ex2 C (\lambda (d2: C).(eq C (CHead c1 (Bind Abst) t) 
+(CHead d2 (Bind Abbr) u1))) (\lambda (d2: C).(csuba g d2 d1))) (ex4_3 C T A 
+(\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(eq C (CHead c1 (Bind Abst) 
+t) (CHead d2 (Bind Abst) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda 
+(_: A).(csuba g d2 d1)))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a0: 
 A).(arity g d2 u2 (asucc g a0))))) (\lambda (_: C).(\lambda (_: T).(\lambda 
 (a0: A).(arity g d1 u1 a0))))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: 
 T).(eq C (CHead c1 (Bind Abst) t) (CHead d2 (Bind Void) u2)))) (\lambda (d2: 
@@ -892,9 +850,6 @@ d2 d1)))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a0: A).(arity g d2 u2
 (asucc g a0))))) (\lambda (_: C).(\lambda (_: T).(\lambda (a0: A).(arity g d1 
 u1 a0)))) c1 t a (refl_equal C (CHead c1 (Bind Abst) t)) H12 H3 H10)))))))) 
 H6)))))))))))) c y H0))) H))))).
-(* COMMENTS
-Initial nodes: 3459
-END *)
 
 theorem csuba_gen_flat_rev:
  \forall (g: G).(\forall (d1: C).(\forall (c: C).(\forall (u1: T).(\forall 
@@ -911,64 +866,58 @@ d1 (Flat f) u1) (\lambda (c0: C).(csuba g c c0)) (\lambda (_: C).(ex2_2 C T
 (CHead d1 (Flat f) u1)) \to (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq 
 C c0 (CHead d2 (Flat f) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 
 d1))))))) (\lambda (n: nat).(\lambda (H1: (eq C (CSort n) (CHead d1 (Flat f) 
-u1))).(let H2 \def (eq_ind C (CSort n) (\lambda (ee: C).(match ee in C return 
-(\lambda (_: C).Prop) with [(CSort _) \Rightarrow True | (CHead _ _ _) 
-\Rightarrow False])) I (CHead d1 (Flat f) u1) H1) in (False_ind (ex2_2 C T 
-(\lambda (d2: C).(\lambda (u2: T).(eq C (CSort n) (CHead d2 (Flat f) u2)))) 
-(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1)))) H2)))) (\lambda (c1: 
-C).(\lambda (c2: C).(\lambda (H1: (csuba g c1 c2)).(\lambda (H2: (((eq C c2 
-(CHead d1 (Flat f) u1)) \to (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq 
-C c1 (CHead d2 (Flat f) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 
-d1))))))).(\lambda (k: K).(\lambda (u: T).(\lambda (H3: (eq C (CHead c2 k u) 
-(CHead d1 (Flat f) u1))).(let H4 \def (f_equal C C (\lambda (e: C).(match e 
-in C return (\lambda (_: C).C) with [(CSort _) \Rightarrow c2 | (CHead c0 _ 
-_) \Rightarrow c0])) (CHead c2 k u) (CHead d1 (Flat f) u1) H3) in ((let H5 
-\def (f_equal C K (\lambda (e: C).(match e in C return (\lambda (_: C).K) 
-with [(CSort _) \Rightarrow k | (CHead _ k0 _) \Rightarrow k0])) (CHead c2 k 
-u) (CHead d1 (Flat f) u1) H3) in ((let H6 \def (f_equal C T (\lambda (e: 
-C).(match e in C return (\lambda (_: C).T) with [(CSort _) \Rightarrow u | 
-(CHead _ _ t) \Rightarrow t])) (CHead c2 k u) (CHead d1 (Flat f) u1) H3) in 
-(\lambda (H7: (eq K k (Flat f))).(\lambda (H8: (eq C c2 d1)).(eq_ind_r T u1 
-(\lambda (t: T).(ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C (CHead c1 
-k t) (CHead d2 (Flat f) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 
-d1))))) (eq_ind_r K (Flat f) (\lambda (k0: K).(ex2_2 C T (\lambda (d2: 
-C).(\lambda (u2: T).(eq C (CHead c1 k0 u1) (CHead d2 (Flat f) u2)))) (\lambda 
-(d2: C).(\lambda (_: T).(csuba g d2 d1))))) (let H9 \def (eq_ind C c2 
-(\lambda (c0: C).((eq C c0 (CHead d1 (Flat f) u1)) \to (ex2_2 C T (\lambda 
-(d2: C).(\lambda (u2: T).(eq C c1 (CHead d2 (Flat f) u2)))) (\lambda (d2: 
-C).(\lambda (_: T).(csuba g d2 d1)))))) H2 d1 H8) in (let H10 \def (eq_ind C 
-c2 (\lambda (c0: C).(csuba g c1 c0)) H1 d1 H8) in (ex2_2_intro C T (\lambda 
-(d2: C).(\lambda (u2: T).(eq C (CHead c1 (Flat f) u1) (CHead d2 (Flat f) 
-u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))) c1 u1 (refl_equal C 
-(CHead c1 (Flat f) u1)) H10))) k H7) u H6)))) H5)) H4))))))))) (\lambda (c1: 
-C).(\lambda (c2: C).(\lambda (_: (csuba g c1 c2)).(\lambda (_: (((eq C c2 
-(CHead d1 (Flat f) u1)) \to (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq 
-C c1 (CHead d2 (Flat f) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 
-d1))))))).(\lambda (b: B).(\lambda (_: (not (eq B b Void))).(\lambda (u0: 
-T).(\lambda (u2: T).(\lambda (H4: (eq C (CHead c2 (Bind b) u2) (CHead d1 
-(Flat f) u1))).(let H5 \def (eq_ind C (CHead c2 (Bind b) u2) (\lambda (ee: 
-C).(match ee in C return (\lambda (_: C).Prop) with [(CSort _) \Rightarrow 
-False | (CHead _ k _) \Rightarrow (match k in K return (\lambda (_: K).Prop) 
-with [(Bind _) \Rightarrow True | (Flat _) \Rightarrow False])])) I (CHead d1 
-(Flat f) u1) H4) in (False_ind (ex2_2 C T (\lambda (d2: C).(\lambda (u3: 
-T).(eq C (CHead c1 (Bind Void) u0) (CHead d2 (Flat f) u3)))) (\lambda (d2: 
-C).(\lambda (_: T).(csuba g d2 d1)))) H5))))))))))) (\lambda (c1: C).(\lambda 
-(c2: C).(\lambda (_: (csuba g c1 c2)).(\lambda (_: (((eq C c2 (CHead d1 (Flat 
-f) u1)) \to (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C c1 (CHead d2 
+u1))).(let H2 \def (eq_ind C (CSort n) (\lambda (ee: C).(match ee with 
+[(CSort _) \Rightarrow True | (CHead _ _ _) \Rightarrow False])) I (CHead d1 
+(Flat f) u1) H1) in (False_ind (ex2_2 C T (\lambda (d2: C).(\lambda (u2: 
+T).(eq C (CSort n) (CHead d2 (Flat f) u2)))) (\lambda (d2: C).(\lambda (_: 
+T).(csuba g d2 d1)))) H2)))) (\lambda (c1: C).(\lambda (c2: C).(\lambda (H1: 
+(csuba g c1 c2)).(\lambda (H2: (((eq C c2 (CHead d1 (Flat f) u1)) \to (ex2_2 
+C T (\lambda (d2: C).(\lambda (u2: T).(eq C c1 (CHead d2 (Flat f) u2)))) 
+(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))))).(\lambda (k: 
+K).(\lambda (u: T).(\lambda (H3: (eq C (CHead c2 k u) (CHead d1 (Flat f) 
+u1))).(let H4 \def (f_equal C C (\lambda (e: C).(match e with [(CSort _) 
+\Rightarrow c2 | (CHead c0 _ _) \Rightarrow c0])) (CHead c2 k u) (CHead d1 
+(Flat f) u1) H3) in ((let H5 \def (f_equal C K (\lambda (e: C).(match e with 
+[(CSort _) \Rightarrow k | (CHead _ k0 _) \Rightarrow k0])) (CHead c2 k u) 
+(CHead d1 (Flat f) u1) H3) in ((let H6 \def (f_equal C T (\lambda (e: 
+C).(match e with [(CSort _) \Rightarrow u | (CHead _ _ t) \Rightarrow t])) 
+(CHead c2 k u) (CHead d1 (Flat f) u1) H3) in (\lambda (H7: (eq K k (Flat 
+f))).(\lambda (H8: (eq C c2 d1)).(eq_ind_r T u1 (\lambda (t: T).(ex2_2 C T 
+(\lambda (d2: C).(\lambda (u2: T).(eq C (CHead c1 k t) (CHead d2 (Flat f) 
+u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))) (eq_ind_r K (Flat 
+f) (\lambda (k0: K).(ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C (CHead 
+c1 k0 u1) (CHead d2 (Flat f) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g 
+d2 d1))))) (let H9 \def (eq_ind C c2 (\lambda (c0: C).((eq C c0 (CHead d1 
+(Flat f) u1)) \to (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C c1 
+(CHead d2 (Flat f) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 
+d1)))))) H2 d1 H8) in (let H10 \def (eq_ind C c2 (\lambda (c0: C).(csuba g c1 
+c0)) H1 d1 H8) in (ex2_2_intro C T (\lambda (d2: C).(\lambda (u2: T).(eq C 
+(CHead c1 (Flat f) u1) (CHead d2 (Flat f) u2)))) (\lambda (d2: C).(\lambda 
+(_: T).(csuba g d2 d1))) c1 u1 (refl_equal C (CHead c1 (Flat f) u1)) H10))) k 
+H7) u H6)))) H5)) H4))))))))) (\lambda (c1: C).(\lambda (c2: C).(\lambda (_: 
+(csuba g c1 c2)).(\lambda (_: (((eq C c2 (CHead d1 (Flat f) u1)) \to (ex2_2 C 
+T (\lambda (d2: C).(\lambda (u2: T).(eq C c1 (CHead d2 (Flat f) u2)))) 
+(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))))).(\lambda (b: 
+B).(\lambda (_: (not (eq B b Void))).(\lambda (u0: T).(\lambda (u2: 
+T).(\lambda (H4: (eq C (CHead c2 (Bind b) u2) (CHead d1 (Flat f) u1))).(let 
+H5 \def (eq_ind C (CHead c2 (Bind b) u2) (\lambda (ee: C).(match ee with 
+[(CSort _) \Rightarrow False | (CHead _ k _) \Rightarrow (match k with [(Bind 
+_) \Rightarrow True | (Flat _) \Rightarrow False])])) I (CHead d1 (Flat f) 
+u1) H4) in (False_ind (ex2_2 C T (\lambda (d2: C).(\lambda (u3: T).(eq C 
+(CHead c1 (Bind Void) u0) (CHead d2 (Flat f) u3)))) (\lambda (d2: C).(\lambda 
+(_: T).(csuba g d2 d1)))) H5))))))))))) (\lambda (c1: C).(\lambda (c2: 
+C).(\lambda (_: (csuba g c1 c2)).(\lambda (_: (((eq C c2 (CHead d1 (Flat f) 
+u1)) \to (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C c1 (CHead d2 
 (Flat f) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 
 d1))))))).(\lambda (t: T).(\lambda (a: A).(\lambda (_: (arity g c1 t (asucc g 
 a))).(\lambda (u: T).(\lambda (_: (arity g c2 u a)).(\lambda (H5: (eq C 
 (CHead c2 (Bind Abbr) u) (CHead d1 (Flat f) u1))).(let H6 \def (eq_ind C 
-(CHead c2 (Bind Abbr) u) (\lambda (ee: C).(match ee in C return (\lambda (_: 
-C).Prop) with [(CSort _) \Rightarrow False | (CHead _ k _) \Rightarrow (match 
-k in K return (\lambda (_: K).Prop) with [(Bind _) \Rightarrow True | (Flat 
-_) \Rightarrow False])])) I (CHead d1 (Flat f) u1) H5) in (False_ind (ex2_2 C 
-T (\lambda (d2: C).(\lambda (u2: T).(eq C (CHead c1 (Bind Abst) t) (CHead d2 
-(Flat f) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1)))) 
-H6)))))))))))) c y H0))) H)))))).
-(* COMMENTS
-Initial nodes: 1183
-END *)
+(CHead c2 (Bind Abbr) u) (\lambda (ee: C).(match ee with [(CSort _) 
+\Rightarrow False | (CHead _ k _) \Rightarrow (match k with [(Bind _) 
+\Rightarrow True | (Flat _) \Rightarrow False])])) I (CHead d1 (Flat f) u1) 
+H5) in (False_ind (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C (CHead 
+c1 (Bind Abst) t) (CHead d2 (Flat f) u2)))) (\lambda (d2: C).(\lambda (_: 
+T).(csuba g d2 d1)))) H6)))))))))))) c y H0))) H)))))).
 
 theorem csuba_gen_bind_rev:
  \forall (g: G).(\forall (b1: B).(\forall (e1: C).(\forall (c2: C).(\forall 
@@ -987,97 +936,89 @@ b1) v1)) \to (ex2_3 B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2:
 T).(eq C c (CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: 
 C).(\lambda (_: T).(csuba g e2 e1)))))))) (\lambda (n: nat).(\lambda (H1: (eq 
 C (CSort n) (CHead e1 (Bind b1) v1))).(let H2 \def (eq_ind C (CSort n) 
-(\lambda (ee: C).(match ee in C return (\lambda (_: C).Prop) with [(CSort _) 
-\Rightarrow True | (CHead _ _ _) \Rightarrow False])) I (CHead e1 (Bind b1) 
-v1) H1) in (False_ind (ex2_3 B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda 
-(v2: T).(eq C (CSort n) (CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda 
-(e2: C).(\lambda (_: T).(csuba g e2 e1))))) H2)))) (\lambda (c1: C).(\lambda 
-(c3: C).(\lambda (H1: (csuba g c1 c3)).(\lambda (H2: (((eq C c3 (CHead e1 
-(Bind b1) v1)) \to (ex2_3 B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda 
-(v2: T).(eq C c1 (CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: 
-C).(\lambda (_: T).(csuba g e2 e1)))))))).(\lambda (k: K).(\lambda (u: 
-T).(\lambda (H3: (eq C (CHead c3 k u) (CHead e1 (Bind b1) v1))).(let H4 \def 
-(f_equal C C (\lambda (e: C).(match e in C return (\lambda (_: C).C) with 
-[(CSort _) \Rightarrow c3 | (CHead c _ _) \Rightarrow c])) (CHead c3 k u) 
-(CHead e1 (Bind b1) v1) H3) in ((let H5 \def (f_equal C K (\lambda (e: 
-C).(match e in C return (\lambda (_: C).K) with [(CSort _) \Rightarrow k | 
-(CHead _ k0 _) \Rightarrow k0])) (CHead c3 k u) (CHead e1 (Bind b1) v1) H3) 
-in ((let H6 \def (f_equal C T (\lambda (e: C).(match e in C return (\lambda 
-(_: C).T) with [(CSort _) \Rightarrow u | (CHead _ _ t) \Rightarrow t])) 
-(CHead c3 k u) (CHead e1 (Bind b1) v1) H3) in (\lambda (H7: (eq K k (Bind 
-b1))).(\lambda (H8: (eq C c3 e1)).(eq_ind_r T v1 (\lambda (t: T).(ex2_3 B C T 
-(\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C (CHead c1 k t) 
-(CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (_: 
-T).(csuba g e2 e1)))))) (eq_ind_r K (Bind b1) (\lambda (k0: K).(ex2_3 B C T 
-(\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C (CHead c1 k0 v1) 
-(CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (_: 
-T).(csuba g e2 e1)))))) (let H9 \def (eq_ind C c3 (\lambda (c: C).((eq C c 
-(CHead e1 (Bind b1) v1)) \to (ex2_3 B C T (\lambda (b2: B).(\lambda (e2: 
-C).(\lambda (v2: T).(eq C c1 (CHead e2 (Bind b2) v2))))) (\lambda (_: 
-B).(\lambda (e2: C).(\lambda (_: T).(csuba g e2 e1))))))) H2 e1 H8) in (let 
-H10 \def (eq_ind C c3 (\lambda (c: C).(csuba g c1 c)) H1 e1 H8) in 
-(ex2_3_intro B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C 
-(CHead c1 (Bind b1) v1) (CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda 
-(e2: C).(\lambda (_: T).(csuba g e2 e1)))) b1 c1 v1 (refl_equal C (CHead c1 
-(Bind b1) v1)) H10))) k H7) u H6)))) H5)) H4))))))))) (\lambda (c1: 
+(\lambda (ee: C).(match ee with [(CSort _) \Rightarrow True | (CHead _ _ _) 
+\Rightarrow False])) I (CHead e1 (Bind b1) v1) H1) in (False_ind (ex2_3 B C T 
+(\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C (CSort n) (CHead e2 
+(Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (_: T).(csuba g 
+e2 e1))))) H2)))) (\lambda (c1: C).(\lambda (c3: C).(\lambda (H1: (csuba g c1 
+c3)).(\lambda (H2: (((eq C c3 (CHead e1 (Bind b1) v1)) \to (ex2_3 B C T 
+(\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C c1 (CHead e2 (Bind 
+b2) v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (_: T).(csuba g e2 
+e1)))))))).(\lambda (k: K).(\lambda (u: T).(\lambda (H3: (eq C (CHead c3 k u) 
+(CHead e1 (Bind b1) v1))).(let H4 \def (f_equal C C (\lambda (e: C).(match e 
+with [(CSort _) \Rightarrow c3 | (CHead c _ _) \Rightarrow c])) (CHead c3 k 
+u) (CHead e1 (Bind b1) v1) H3) in ((let H5 \def (f_equal C K (\lambda (e: 
+C).(match e with [(CSort _) \Rightarrow k | (CHead _ k0 _) \Rightarrow k0])) 
+(CHead c3 k u) (CHead e1 (Bind b1) v1) H3) in ((let H6 \def (f_equal C T 
+(\lambda (e: C).(match e with [(CSort _) \Rightarrow u | (CHead _ _ t) 
+\Rightarrow t])) (CHead c3 k u) (CHead e1 (Bind b1) v1) H3) in (\lambda (H7: 
+(eq K k (Bind b1))).(\lambda (H8: (eq C c3 e1)).(eq_ind_r T v1 (\lambda (t: 
+T).(ex2_3 B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C 
+(CHead c1 k t) (CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: 
+C).(\lambda (_: T).(csuba g e2 e1)))))) (eq_ind_r K (Bind b1) (\lambda (k0: 
+K).(ex2_3 B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C 
+(CHead c1 k0 v1) (CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: 
+C).(\lambda (_: T).(csuba g e2 e1)))))) (let H9 \def (eq_ind C c3 (\lambda 
+(c: C).((eq C c (CHead e1 (Bind b1) v1)) \to (ex2_3 B C T (\lambda (b2: 
+B).(\lambda (e2: C).(\lambda (v2: T).(eq C c1 (CHead e2 (Bind b2) v2))))) 
+(\lambda (_: B).(\lambda (e2: C).(\lambda (_: T).(csuba g e2 e1))))))) H2 e1 
+H8) in (let H10 \def (eq_ind C c3 (\lambda (c: C).(csuba g c1 c)) H1 e1 H8) 
+in (ex2_3_intro B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq 
+C (CHead c1 (Bind b1) v1) (CHead e2 (Bind b2) v2))))) (\lambda (_: 
+B).(\lambda (e2: C).(\lambda (_: T).(csuba g e2 e1)))) b1 c1 v1 (refl_equal C 
+(CHead c1 (Bind b1) v1)) H10))) k H7) u H6)))) H5)) H4))))))))) (\lambda (c1: 
 C).(\lambda (c3: C).(\lambda (H1: (csuba g c1 c3)).(\lambda (H2: (((eq C c3 
 (CHead e1 (Bind b1) v1)) \to (ex2_3 B C T (\lambda (b2: B).(\lambda (e2: 
 C).(\lambda (v2: T).(eq C c1 (CHead e2 (Bind b2) v2))))) (\lambda (_: 
 B).(\lambda (e2: C).(\lambda (_: T).(csuba g e2 e1)))))))).(\lambda (b: 
 B).(\lambda (H3: (not (eq B b Void))).(\lambda (u1: T).(\lambda (u2: 
 T).(\lambda (H4: (eq C (CHead c3 (Bind b) u2) (CHead e1 (Bind b1) v1))).(let 
-H5 \def (f_equal C C (\lambda (e: C).(match e in C return (\lambda (_: C).C) 
-with [(CSort _) \Rightarrow c3 | (CHead c _ _) \Rightarrow c])) (CHead c3 
-(Bind b) u2) (CHead e1 (Bind b1) v1) H4) in ((let H6 \def (f_equal C B 
-(\lambda (e: C).(match e in C return (\lambda (_: C).B) with [(CSort _) 
-\Rightarrow b | (CHead _ k _) \Rightarrow (match k in K return (\lambda (_: 
-K).B) with [(Bind b0) \Rightarrow b0 | (Flat _) \Rightarrow b])])) (CHead c3 
-(Bind b) u2) (CHead e1 (Bind b1) v1) H4) in ((let H7 \def (f_equal C T 
-(\lambda (e: C).(match e in C return (\lambda (_: C).T) with [(CSort _) 
-\Rightarrow u2 | (CHead _ _ t) \Rightarrow t])) (CHead c3 (Bind b) u2) (CHead 
-e1 (Bind b1) v1) H4) in (\lambda (H8: (eq B b b1)).(\lambda (H9: (eq C c3 
-e1)).(let H10 \def (eq_ind B b (\lambda (b0: B).(not (eq B b0 Void))) H3 b1 
-H8) in (let H11 \def (eq_ind C c3 (\lambda (c: C).((eq C c (CHead e1 (Bind 
-b1) v1)) \to (ex2_3 B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: 
-T).(eq C c1 (CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: 
-C).(\lambda (_: T).(csuba g e2 e1))))))) H2 e1 H9) in (let H12 \def (eq_ind C 
-c3 (\lambda (c: C).(csuba g c1 c)) H1 e1 H9) in (ex2_3_intro B C T (\lambda 
-(b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C (CHead c1 (Bind Void) u1) 
+H5 \def (f_equal C C (\lambda (e: C).(match e with [(CSort _) \Rightarrow c3 
+| (CHead c _ _) \Rightarrow c])) (CHead c3 (Bind b) u2) (CHead e1 (Bind b1) 
+v1) H4) in ((let H6 \def (f_equal C B (\lambda (e: C).(match e with [(CSort 
+_) \Rightarrow b | (CHead _ k _) \Rightarrow (match k with [(Bind b0) 
+\Rightarrow b0 | (Flat _) \Rightarrow b])])) (CHead c3 (Bind b) u2) (CHead e1 
+(Bind b1) v1) H4) in ((let H7 \def (f_equal C T (\lambda (e: C).(match e with 
+[(CSort _) \Rightarrow u2 | (CHead _ _ t) \Rightarrow t])) (CHead c3 (Bind b) 
+u2) (CHead e1 (Bind b1) v1) H4) in (\lambda (H8: (eq B b b1)).(\lambda (H9: 
+(eq C c3 e1)).(let H10 \def (eq_ind B b (\lambda (b0: B).(not (eq B b0 
+Void))) H3 b1 H8) in (let H11 \def (eq_ind C c3 (\lambda (c: C).((eq C c 
+(CHead e1 (Bind b1) v1)) \to (ex2_3 B C T (\lambda (b2: B).(\lambda (e2: 
+C).(\lambda (v2: T).(eq C c1 (CHead e2 (Bind b2) v2))))) (\lambda (_: 
+B).(\lambda (e2: C).(\lambda (_: T).(csuba g e2 e1))))))) H2 e1 H9) in (let 
+H12 \def (eq_ind C c3 (\lambda (c: C).(csuba g c1 c)) H1 e1 H9) in 
+(ex2_3_intro B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C 
+(CHead c1 (Bind Void) u1) (CHead e2 (Bind b2) v2))))) (\lambda (_: 
+B).(\lambda (e2: C).(\lambda (_: T).(csuba g e2 e1)))) Void c1 u1 (refl_equal 
+C (CHead c1 (Bind Void) u1)) H12))))))) H6)) H5))))))))))) (\lambda (c1: 
+C).(\lambda (c3: C).(\lambda (H1: (csuba g c1 c3)).(\lambda (H2: (((eq C c3 
+(CHead e1 (Bind b1) v1)) \to (ex2_3 B C T (\lambda (b2: B).(\lambda (e2: 
+C).(\lambda (v2: T).(eq C c1 (CHead e2 (Bind b2) v2))))) (\lambda (_: 
+B).(\lambda (e2: C).(\lambda (_: T).(csuba g e2 e1)))))))).(\lambda (t: 
+T).(\lambda (a: A).(\lambda (_: (arity g c1 t (asucc g a))).(\lambda (u: 
+T).(\lambda (H4: (arity g c3 u a)).(\lambda (H5: (eq C (CHead c3 (Bind Abbr) 
+u) (CHead e1 (Bind b1) v1))).(let H6 \def (f_equal C C (\lambda (e: C).(match 
+e with [(CSort _) \Rightarrow c3 | (CHead c _ _) \Rightarrow c])) (CHead c3 
+(Bind Abbr) u) (CHead e1 (Bind b1) v1) H5) in ((let H7 \def (f_equal C B 
+(\lambda (e: C).(match e with [(CSort _) \Rightarrow Abbr | (CHead _ k _) 
+\Rightarrow (match k with [(Bind b) \Rightarrow b | (Flat _) \Rightarrow 
+Abbr])])) (CHead c3 (Bind Abbr) u) (CHead e1 (Bind b1) v1) H5) in ((let H8 
+\def (f_equal C T (\lambda (e: C).(match e with [(CSort _) \Rightarrow u | 
+(CHead _ _ t0) \Rightarrow t0])) (CHead c3 (Bind Abbr) u) (CHead e1 (Bind b1) 
+v1) H5) in (\lambda (H9: (eq B Abbr b1)).(\lambda (H10: (eq C c3 e1)).(let 
+H11 \def (eq_ind T u (\lambda (t0: T).(arity g c3 t0 a)) H4 v1 H8) in (let 
+H12 \def (eq_ind C c3 (\lambda (c: C).(arity g c v1 a)) H11 e1 H10) in (let 
+H13 \def (eq_ind C c3 (\lambda (c: C).((eq C c (CHead e1 (Bind b1) v1)) \to 
+(ex2_3 B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C c1 
 (CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (_: 
-T).(csuba g e2 e1)))) Void c1 u1 (refl_equal C (CHead c1 (Bind Void) u1)) 
-H12))))))) H6)) H5))))))))))) (\lambda (c1: C).(\lambda (c3: C).(\lambda (H1: 
-(csuba g c1 c3)).(\lambda (H2: (((eq C c3 (CHead e1 (Bind b1) v1)) \to (ex2_3 
-B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C c1 (CHead e2 
-(Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (_: T).(csuba g 
-e2 e1)))))))).(\lambda (t: T).(\lambda (a: A).(\lambda (_: (arity g c1 t 
-(asucc g a))).(\lambda (u: T).(\lambda (H4: (arity g c3 u a)).(\lambda (H5: 
-(eq C (CHead c3 (Bind Abbr) u) (CHead e1 (Bind b1) v1))).(let H6 \def 
-(f_equal C C (\lambda (e: C).(match e in C return (\lambda (_: C).C) with 
-[(CSort _) \Rightarrow c3 | (CHead c _ _) \Rightarrow c])) (CHead c3 (Bind 
-Abbr) u) (CHead e1 (Bind b1) v1) H5) in ((let H7 \def (f_equal C B (\lambda 
-(e: C).(match e in C return (\lambda (_: C).B) with [(CSort _) \Rightarrow 
-Abbr | (CHead _ k _) \Rightarrow (match k in K return (\lambda (_: K).B) with 
-[(Bind b) \Rightarrow b | (Flat _) \Rightarrow Abbr])])) (CHead c3 (Bind 
-Abbr) u) (CHead e1 (Bind b1) v1) H5) in ((let H8 \def (f_equal C T (\lambda 
-(e: C).(match e in C return (\lambda (_: C).T) with [(CSort _) \Rightarrow u 
-| (CHead _ _ t0) \Rightarrow t0])) (CHead c3 (Bind Abbr) u) (CHead e1 (Bind 
-b1) v1) H5) in (\lambda (H9: (eq B Abbr b1)).(\lambda (H10: (eq C c3 
-e1)).(let H11 \def (eq_ind T u (\lambda (t0: T).(arity g c3 t0 a)) H4 v1 H8) 
-in (let H12 \def (eq_ind C c3 (\lambda (c: C).(arity g c v1 a)) H11 e1 H10) 
-in (let H13 \def (eq_ind C c3 (\lambda (c: C).((eq C c (CHead e1 (Bind b1) 
-v1)) \to (ex2_3 B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq 
-C c1 (CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda 
-(_: T).(csuba g e2 e1))))))) H2 e1 H10) in (let H14 \def (eq_ind C c3 
-(\lambda (c: C).(csuba g c1 c)) H1 e1 H10) in (let H15 \def (eq_ind_r B b1 
-(\lambda (b: B).((eq C e1 (CHead e1 (Bind b) v1)) \to (ex2_3 B C T (\lambda 
-(b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C c1 (CHead e2 (Bind b2) 
-v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (_: T).(csuba g e2 
-e1))))))) H13 Abbr H9) in (ex2_3_intro B C T (\lambda (b2: B).(\lambda (e2: 
-C).(\lambda (v2: T).(eq C (CHead c1 (Bind Abst) t) (CHead e2 (Bind b2) 
-v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (_: T).(csuba g e2 e1)))) 
-Abst c1 t (refl_equal C (CHead c1 (Bind Abst) t)) H14))))))))) H7)) 
-H6)))))))))))) c2 y H0))) H)))))).
-(* COMMENTS
-Initial nodes: 1831
-END *)
+T).(csuba g e2 e1))))))) H2 e1 H10) in (let H14 \def (eq_ind C c3 (\lambda 
+(c: C).(csuba g c1 c)) H1 e1 H10) in (let H15 \def (eq_ind_r B b1 (\lambda 
+(b: B).((eq C e1 (CHead e1 (Bind b) v1)) \to (ex2_3 B C T (\lambda (b2: 
+B).(\lambda (e2: C).(\lambda (v2: T).(eq C c1 (CHead e2 (Bind b2) v2))))) 
+(\lambda (_: B).(\lambda (e2: C).(\lambda (_: T).(csuba g e2 e1))))))) H13 
+Abbr H9) in (ex2_3_intro B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda 
+(v2: T).(eq C (CHead c1 (Bind Abst) t) (CHead e2 (Bind b2) v2))))) (\lambda 
+(_: B).(\lambda (e2: C).(\lambda (_: T).(csuba g e2 e1)))) Abst c1 t 
+(refl_equal C (CHead c1 (Bind Abst) t)) H14))))))))) H7)) H6)))))))))))) c2 y 
+H0))) H)))))).
 
index b49d9b7c26b5b09dcc093e99ae84acbca289ef0d..3299f30910f9c30150424fda50de944c8a82ff78 100644 (file)
 
 (* This file was automatically generated: do not edit *********************)
 
-include "Basic-1/csuba/drop.ma".
+include "basic_1/csuba/drop.ma".
 
-include "Basic-1/csuba/clear.ma".
+include "basic_1/csuba/clear.ma".
 
-include "Basic-1/getl/clear.ma".
+include "basic_1/getl/clear.ma".
 
 theorem csuba_getl_abbr:
  \forall (g: G).(\forall (c1: C).(\forall (d1: C).(\forall (u: T).(\forall 
@@ -51,26 +51,24 @@ C).((csuba g c1 c2) \to (ex2 C (\lambda (d2: C).(getl i c2 (CHead d2 (Bind
 Abbr) u))) (\lambda (d2: C).(csuba g d1 d2)))))))) (\lambda (b: B).(\lambda 
 (H5: (drop i O c1 (CHead x0 (Bind b) t))).(\lambda (H6: (clear (CHead x0 
 (Bind b) t) (CHead d1 (Bind Abbr) u))).(let H7 \def (f_equal C C (\lambda (e: 
-C).(match e in C return (\lambda (_: C).C) with [(CSort _) \Rightarrow d1 | 
-(CHead c _ _) \Rightarrow c])) (CHead d1 (Bind Abbr) u) (CHead x0 (Bind b) t) 
-(clear_gen_bind b x0 (CHead d1 (Bind Abbr) u) t H6)) in ((let H8 \def 
-(f_equal C B (\lambda (e: C).(match e in C return (\lambda (_: C).B) with 
-[(CSort _) \Rightarrow Abbr | (CHead _ k0 _) \Rightarrow (match k0 in K 
-return (\lambda (_: K).B) with [(Bind b0) \Rightarrow b0 | (Flat _) 
-\Rightarrow Abbr])])) (CHead d1 (Bind Abbr) u) (CHead x0 (Bind b) t) 
-(clear_gen_bind b x0 (CHead d1 (Bind Abbr) u) t H6)) in ((let H9 \def 
-(f_equal C T (\lambda (e: C).(match e in C return (\lambda (_: C).T) with 
-[(CSort _) \Rightarrow u | (CHead _ _ t0) \Rightarrow t0])) (CHead d1 (Bind 
+C).(match e with [(CSort _) \Rightarrow d1 | (CHead c _ _) \Rightarrow c])) 
+(CHead d1 (Bind Abbr) u) (CHead x0 (Bind b) t) (clear_gen_bind b x0 (CHead d1 
+(Bind Abbr) u) t H6)) in ((let H8 \def (f_equal C B (\lambda (e: C).(match e 
+with [(CSort _) \Rightarrow Abbr | (CHead _ k0 _) \Rightarrow (match k0 with 
+[(Bind b0) \Rightarrow b0 | (Flat _) \Rightarrow Abbr])])) (CHead d1 (Bind 
 Abbr) u) (CHead x0 (Bind b) t) (clear_gen_bind b x0 (CHead d1 (Bind Abbr) u) 
-t H6)) in (\lambda (H10: (eq B Abbr b)).(\lambda (H11: (eq C d1 x0)).(\lambda 
-(c2: C).(\lambda (H12: (csuba g c1 c2)).(let H13 \def (eq_ind_r T t (\lambda 
-(t0: T).(drop i O c1 (CHead x0 (Bind b) t0))) H5 u H9) in (let H14 \def 
-(eq_ind_r B b (\lambda (b0: B).(drop i O c1 (CHead x0 (Bind b0) u))) H13 Abbr 
-H10) in (let H15 \def (eq_ind_r C x0 (\lambda (c: C).(drop i O c1 (CHead c 
-(Bind Abbr) u))) H14 d1 H11) in (let H16 \def (csuba_drop_abbr i c1 d1 u H15 
-g c2 H12) in (ex2_ind C (\lambda (d2: C).(drop i O c2 (CHead d2 (Bind Abbr) 
-u))) (\lambda (d2: C).(csuba g d1 d2)) (ex2 C (\lambda (d2: C).(getl i c2 
-(CHead d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 d2))) (\lambda (x1: 
+t H6)) in ((let H9 \def (f_equal C T (\lambda (e: C).(match e with [(CSort _) 
+\Rightarrow u | (CHead _ _ t0) \Rightarrow t0])) (CHead d1 (Bind Abbr) u) 
+(CHead x0 (Bind b) t) (clear_gen_bind b x0 (CHead d1 (Bind Abbr) u) t H6)) in 
+(\lambda (H10: (eq B Abbr b)).(\lambda (H11: (eq C d1 x0)).(\lambda (c2: 
+C).(\lambda (H12: (csuba g c1 c2)).(let H13 \def (eq_ind_r T t (\lambda (t0: 
+T).(drop i O c1 (CHead x0 (Bind b) t0))) H5 u H9) in (let H14 \def (eq_ind_r 
+B b (\lambda (b0: B).(drop i O c1 (CHead x0 (Bind b0) u))) H13 Abbr H10) in 
+(let H15 \def (eq_ind_r C x0 (\lambda (c: C).(drop i O c1 (CHead c (Bind 
+Abbr) u))) H14 d1 H11) in (let H16 \def (csuba_drop_abbr i c1 d1 u H15 g c2 
+H12) in (ex2_ind C (\lambda (d2: C).(drop i O c2 (CHead d2 (Bind Abbr) u))) 
+(\lambda (d2: C).(csuba g d1 d2)) (ex2 C (\lambda (d2: C).(getl i c2 (CHead 
+d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d1 d2))) (\lambda (x1: 
 C).(\lambda (H17: (drop i O c2 (CHead x1 (Bind Abbr) u))).(\lambda (H18: 
 (csuba g d1 x1)).(ex_intro2 C (\lambda (d2: C).(getl i c2 (CHead d2 (Bind 
 Abbr) u))) (\lambda (d2: C).(csuba g d1 d2)) x1 (getl_intro i c2 (CHead x1 
@@ -135,9 +133,6 @@ x9)).(ex_intro2 C (\lambda (d2: C).(getl (S n) c2 (CHead d2 (Bind Abbr) u)))
 (\lambda (d2: C).(csuba g d1 d2)) x9 (getl_clear_bind x6 c2 x7 x8 H20 (CHead 
 x9 (Bind Abbr) u) n H22) H23)))) H21)))))))) H17)))))) H14))))))) H11)))))))) 
 i) H7))))) k H3 H4))))))) x H1 H2)))) H0))))))).
-(* COMMENTS
-Initial nodes: 2319
-END *)
 
 theorem csuba_getl_abst:
  \forall (g: G).(\forall (c1: C).(\forall (d1: C).(\forall (u1: T).(\forall 
@@ -196,84 +191,83 @@ d1 d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1
 (asucc g a))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 
 u2 a))))))))))) (\lambda (b: B).(\lambda (H5: (drop i O c1 (CHead x0 (Bind b) 
 t))).(\lambda (H6: (clear (CHead x0 (Bind b) t) (CHead d1 (Bind Abst) 
-u1))).(let H7 \def (f_equal C C (\lambda (e: C).(match e in C return (\lambda 
-(_: C).C) with [(CSort _) \Rightarrow d1 | (CHead c _ _) \Rightarrow c])) 
-(CHead d1 (Bind Abst) u1) (CHead x0 (Bind b) t) (clear_gen_bind b x0 (CHead 
-d1 (Bind Abst) u1) t H6)) in ((let H8 \def (f_equal C B (\lambda (e: 
-C).(match e in C return (\lambda (_: C).B) with [(CSort _) \Rightarrow Abst | 
-(CHead _ k0 _) \Rightarrow (match k0 in K return (\lambda (_: K).B) with 
-[(Bind b0) \Rightarrow b0 | (Flat _) \Rightarrow Abst])])) (CHead d1 (Bind 
-Abst) u1) (CHead x0 (Bind b) t) (clear_gen_bind b x0 (CHead d1 (Bind Abst) 
-u1) t H6)) in ((let H9 \def (f_equal C T (\lambda (e: C).(match e in C return 
-(\lambda (_: C).T) with [(CSort _) \Rightarrow u1 | (CHead _ _ t0) 
-\Rightarrow t0])) (CHead d1 (Bind Abst) u1) (CHead x0 (Bind b) t) 
-(clear_gen_bind b x0 (CHead d1 (Bind Abst) u1) t H6)) in (\lambda (H10: (eq B 
-Abst b)).(\lambda (H11: (eq C d1 x0)).(\lambda (c2: C).(\lambda (H12: (csuba 
-g c1 c2)).(let H13 \def (eq_ind_r T t (\lambda (t0: T).(drop i O c1 (CHead x0 
-(Bind b) t0))) H5 u1 H9) in (let H14 \def (eq_ind_r B b (\lambda (b0: 
-B).(drop i O c1 (CHead x0 (Bind b0) u1))) H13 Abst H10) in (let H15 \def 
-(eq_ind_r C x0 (\lambda (c: C).(drop i O c1 (CHead c (Bind Abst) u1))) H14 d1 
-H11) in (let H16 \def (csuba_drop_abst i c1 d1 u1 H15 g c2 H12) in (or_ind 
-(ex2 C (\lambda (d2: C).(drop i O c2 (CHead d2 (Bind Abst) u1))) (\lambda 
-(d2: C).(csuba g d1 d2))) (ex4_3 C T A (\lambda (d2: C).(\lambda (u2: 
-T).(\lambda (_: A).(drop i O c2 (CHead d2 (Bind Abbr) u2))))) (\lambda (d2: 
-C).(\lambda (_: T).(\lambda (_: A).(csuba g d1 d2)))) (\lambda (_: 
+u1))).(let H7 \def (f_equal C C (\lambda (e: C).(match e with [(CSort _) 
+\Rightarrow d1 | (CHead c _ _) \Rightarrow c])) (CHead d1 (Bind Abst) u1) 
+(CHead x0 (Bind b) t) (clear_gen_bind b x0 (CHead d1 (Bind Abst) u1) t H6)) 
+in ((let H8 \def (f_equal C B (\lambda (e: C).(match e with [(CSort _) 
+\Rightarrow Abst | (CHead _ k0 _) \Rightarrow (match k0 with [(Bind b0) 
+\Rightarrow b0 | (Flat _) \Rightarrow Abst])])) (CHead d1 (Bind Abst) u1) 
+(CHead x0 (Bind b) t) (clear_gen_bind b x0 (CHead d1 (Bind Abst) u1) t H6)) 
+in ((let H9 \def (f_equal C T (\lambda (e: C).(match e with [(CSort _) 
+\Rightarrow u1 | (CHead _ _ t0) \Rightarrow t0])) (CHead d1 (Bind Abst) u1) 
+(CHead x0 (Bind b) t) (clear_gen_bind b x0 (CHead d1 (Bind Abst) u1) t H6)) 
+in (\lambda (H10: (eq B Abst b)).(\lambda (H11: (eq C d1 x0)).(\lambda (c2: 
+C).(\lambda (H12: (csuba g c1 c2)).(let H13 \def (eq_ind_r T t (\lambda (t0: 
+T).(drop i O c1 (CHead x0 (Bind b) t0))) H5 u1 H9) in (let H14 \def (eq_ind_r 
+B b (\lambda (b0: B).(drop i O c1 (CHead x0 (Bind b0) u1))) H13 Abst H10) in 
+(let H15 \def (eq_ind_r C x0 (\lambda (c: C).(drop i O c1 (CHead c (Bind 
+Abst) u1))) H14 d1 H11) in (let H16 \def (csuba_drop_abst i c1 d1 u1 H15 g c2 
+H12) in (or_ind (ex2 C (\lambda (d2: C).(drop i O c2 (CHead d2 (Bind Abst) 
+u1))) (\lambda (d2: C).(csuba g d1 d2))) (ex4_3 C T A (\lambda (d2: 
+C).(\lambda (u2: T).(\lambda (_: A).(drop i O c2 (CHead d2 (Bind Abbr) 
+u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d1 d2)))) 
+(\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 (asucc g 
+a))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 
+a))))) (or (ex2 C (\lambda (d2: C).(getl i c2 (CHead d2 (Bind Abst) u1))) 
+(\lambda (d2: C).(csuba g d1 d2))) (ex4_3 C T A (\lambda (d2: C).(\lambda 
+(u2: T).(\lambda (_: A).(getl i c2 (CHead d2 (Bind Abbr) u2))))) (\lambda 
+(d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d1 d2)))) (\lambda (_: 
 C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 (asucc g a))))) (\lambda 
-(d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 a))))) (or (ex2 C 
+(d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 a)))))) (\lambda 
+(H17: (ex2 C (\lambda (d2: C).(drop i O c2 (CHead d2 (Bind Abst) u1))) 
+(\lambda (d2: C).(csuba g d1 d2)))).(ex2_ind C (\lambda (d2: C).(drop i O c2 
+(CHead d2 (Bind Abst) u1))) (\lambda (d2: C).(csuba g d1 d2)) (or (ex2 C 
 (\lambda (d2: C).(getl i c2 (CHead d2 (Bind Abst) u1))) (\lambda (d2: 
 C).(csuba g d1 d2))) (ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda 
 (_: A).(getl i c2 (CHead d2 (Bind Abbr) u2))))) (\lambda (d2: C).(\lambda (_: 
 T).(\lambda (_: A).(csuba g d1 d2)))) (\lambda (_: C).(\lambda (_: 
 T).(\lambda (a: A).(arity g d1 u1 (asucc g a))))) (\lambda (d2: C).(\lambda 
-(u2: T).(\lambda (a: A).(arity g d2 u2 a)))))) (\lambda (H17: (ex2 C (\lambda 
-(d2: C).(drop i O c2 (CHead d2 (Bind Abst) u1))) (\lambda (d2: C).(csuba g d1 
-d2)))).(ex2_ind C (\lambda (d2: C).(drop i O c2 (CHead d2 (Bind Abst) u1))) 
-(\lambda (d2: C).(csuba g d1 d2)) (or (ex2 C (\lambda (d2: C).(getl i c2 
-(CHead d2 (Bind Abst) u1))) (\lambda (d2: C).(csuba g d1 d2))) (ex4_3 C T A 
-(\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(getl i c2 (CHead d2 (Bind 
-Abbr) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d1 
-d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 (asucc 
-g a))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 
-a)))))) (\lambda (x1: C).(\lambda (H18: (drop i O c2 (CHead x1 (Bind Abst) 
-u1))).(\lambda (H19: (csuba g d1 x1)).(or_introl (ex2 C (\lambda (d2: 
-C).(getl i c2 (CHead d2 (Bind Abst) u1))) (\lambda (d2: C).(csuba g d1 d2))) 
-(ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(getl i c2 
+(u2: T).(\lambda (a: A).(arity g d2 u2 a)))))) (\lambda (x1: C).(\lambda 
+(H18: (drop i O c2 (CHead x1 (Bind Abst) u1))).(\lambda (H19: (csuba g d1 
+x1)).(or_introl (ex2 C (\lambda (d2: C).(getl i c2 (CHead d2 (Bind Abst) 
+u1))) (\lambda (d2: C).(csuba g d1 d2))) (ex4_3 C T A (\lambda (d2: 
+C).(\lambda (u2: T).(\lambda (_: A).(getl i c2 (CHead d2 (Bind Abbr) u2))))) 
+(\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d1 d2)))) (\lambda 
+(_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 (asucc g a))))) 
+(\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 a))))) 
+(ex_intro2 C (\lambda (d2: C).(getl i c2 (CHead d2 (Bind Abst) u1))) (\lambda 
+(d2: C).(csuba g d1 d2)) x1 (getl_intro i c2 (CHead x1 (Bind Abst) u1) (CHead 
+x1 (Bind Abst) u1) H18 (clear_bind Abst x1 u1)) H19))))) H17)) (\lambda (H17: 
+(ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(drop i O c2 
 (CHead d2 (Bind Abbr) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: 
 A).(csuba g d1 d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity 
 g d1 u1 (asucc g a))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: 
-A).(arity g d2 u2 a))))) (ex_intro2 C (\lambda (d2: C).(getl i c2 (CHead d2 
-(Bind Abst) u1))) (\lambda (d2: C).(csuba g d1 d2)) x1 (getl_intro i c2 
-(CHead x1 (Bind Abst) u1) (CHead x1 (Bind Abst) u1) H18 (clear_bind Abst x1 
-u1)) H19))))) H17)) (\lambda (H17: (ex4_3 C T A (\lambda (d2: C).(\lambda 
-(u2: T).(\lambda (_: A).(drop i O c2 (CHead d2 (Bind Abbr) u2))))) (\lambda 
-(d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d1 d2)))) (\lambda (_: 
-C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 (asucc g a))))) (\lambda 
-(d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 a)))))).(ex4_3_ind C 
-T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(drop i O c2 (CHead d2 
-(Bind Abbr) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g 
-d1 d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 
-(asucc g a))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 
-u2 a)))) (or (ex2 C (\lambda (d2: C).(getl i c2 (CHead d2 (Bind Abst) u1))) 
-(\lambda (d2: C).(csuba g d1 d2))) (ex4_3 C T A (\lambda (d2: C).(\lambda 
-(u2: T).(\lambda (_: A).(getl i c2 (CHead d2 (Bind Abbr) u2))))) (\lambda 
-(d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d1 d2)))) (\lambda (_: 
+A).(arity g d2 u2 a)))))).(ex4_3_ind C T A (\lambda (d2: C).(\lambda (u2: 
+T).(\lambda (_: A).(drop i O c2 (CHead d2 (Bind Abbr) u2))))) (\lambda (d2: 
+C).(\lambda (_: T).(\lambda (_: A).(csuba g d1 d2)))) (\lambda (_: 
 C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 (asucc g a))))) (\lambda 
-(d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 a)))))) (\lambda (x1: 
-C).(\lambda (x2: T).(\lambda (x3: A).(\lambda (H18: (drop i O c2 (CHead x1 
-(Bind Abbr) x2))).(\lambda (H19: (csuba g d1 x1)).(\lambda (H20: (arity g d1 
-u1 (asucc g x3))).(\lambda (H21: (arity g x1 x2 x3)).(or_intror (ex2 C 
+(d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 a)))) (or (ex2 C 
 (\lambda (d2: C).(getl i c2 (CHead d2 (Bind Abst) u1))) (\lambda (d2: 
 C).(csuba g d1 d2))) (ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda 
 (_: A).(getl i c2 (CHead d2 (Bind Abbr) u2))))) (\lambda (d2: C).(\lambda (_: 
 T).(\lambda (_: A).(csuba g d1 d2)))) (\lambda (_: C).(\lambda (_: 
 T).(\lambda (a: A).(arity g d1 u1 (asucc g a))))) (\lambda (d2: C).(\lambda 
-(u2: T).(\lambda (a: A).(arity g d2 u2 a))))) (ex4_3_intro C T A (\lambda 
-(d2: C).(\lambda (u2: T).(\lambda (_: A).(getl i c2 (CHead d2 (Bind Abbr) 
-u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d1 d2)))) 
-(\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 (asucc g 
-a))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 a)))) 
-x1 x2 x3 (getl_intro i c2 (CHead x1 (Bind Abbr) x2) (CHead x1 (Bind Abbr) x2) 
-H18 (clear_bind Abbr x1 x2)) H19 H20 H21))))))))) H17)) H16)))))))))) H8)) 
+(u2: T).(\lambda (a: A).(arity g d2 u2 a)))))) (\lambda (x1: C).(\lambda (x2: 
+T).(\lambda (x3: A).(\lambda (H18: (drop i O c2 (CHead x1 (Bind Abbr) 
+x2))).(\lambda (H19: (csuba g d1 x1)).(\lambda (H20: (arity g d1 u1 (asucc g 
+x3))).(\lambda (H21: (arity g x1 x2 x3)).(or_intror (ex2 C (\lambda (d2: 
+C).(getl i c2 (CHead d2 (Bind Abst) u1))) (\lambda (d2: C).(csuba g d1 d2))) 
+(ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(getl i c2 
+(CHead d2 (Bind Abbr) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: 
+A).(csuba g d1 d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity 
+g d1 u1 (asucc g a))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: 
+A).(arity g d2 u2 a))))) (ex4_3_intro C T A (\lambda (d2: C).(\lambda (u2: 
+T).(\lambda (_: A).(getl i c2 (CHead d2 (Bind Abbr) u2))))) (\lambda (d2: 
+C).(\lambda (_: T).(\lambda (_: A).(csuba g d1 d2)))) (\lambda (_: 
+C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 (asucc g a))))) (\lambda 
+(d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 a)))) x1 x2 x3 
+(getl_intro i c2 (CHead x1 (Bind Abbr) x2) (CHead x1 (Bind Abbr) x2) H18 
+(clear_bind Abbr x1 x2)) H19 H20 H21))))))))) H17)) H16)))))))))) H8)) 
 H7))))) (\lambda (f: F).(\lambda (H5: (drop i O c1 (CHead x0 (Flat f) 
 t))).(\lambda (H6: (clear (CHead x0 (Flat f) t) (CHead d1 (Bind Abst) 
 u1))).(let H7 \def H5 in (unintro C c1 (\lambda (c: C).((drop i O c (CHead x0 
@@ -473,9 +467,6 @@ T).(\lambda (a: A).(arity g d1 u1 (asucc g a))))) (\lambda (d2: C).(\lambda
 c2 x7 x8 H20 (CHead x9 (Bind Abbr) x10) n H23) H24 H25 H26))))))))) H22)) 
 H21)))))))) H17)))))) H14))))))) H11)))))))) i) H7))))) k H3 H4))))))) x H1 
 H2)))) H0))))))).
-(* COMMENTS
-Initial nodes: 6437
-END *)
 
 theorem csuba_getl_abst_rev:
  \forall (g: G).(\forall (c1: C).(\forall (d1: C).(\forall (u: T).(\forall 
@@ -519,194 +510,189 @@ C).(getl i c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1)))
 u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1)))))))))) (\lambda (b: 
 B).(\lambda (H5: (drop i O c1 (CHead x0 (Bind b) t))).(\lambda (H6: (clear 
 (CHead x0 (Bind b) t) (CHead d1 (Bind Abst) u))).(let H7 \def (f_equal C C 
-(\lambda (e: C).(match e in C return (\lambda (_: C).C) with [(CSort _) 
-\Rightarrow d1 | (CHead c _ _) \Rightarrow c])) (CHead d1 (Bind Abst) u) 
-(CHead x0 (Bind b) t) (clear_gen_bind b x0 (CHead d1 (Bind Abst) u) t H6)) in 
-((let H8 \def (f_equal C B (\lambda (e: C).(match e in C return (\lambda (_: 
-C).B) with [(CSort _) \Rightarrow Abst | (CHead _ k0 _) \Rightarrow (match k0 
-in K return (\lambda (_: K).B) with [(Bind b0) \Rightarrow b0 | (Flat _) 
-\Rightarrow Abst])])) (CHead d1 (Bind Abst) u) (CHead x0 (Bind b) t) 
+(\lambda (e: C).(match e with [(CSort _) \Rightarrow d1 | (CHead c _ _) 
+\Rightarrow c])) (CHead d1 (Bind Abst) u) (CHead x0 (Bind b) t) 
+(clear_gen_bind b x0 (CHead d1 (Bind Abst) u) t H6)) in ((let H8 \def 
+(f_equal C B (\lambda (e: C).(match e with [(CSort _) \Rightarrow Abst | 
+(CHead _ k0 _) \Rightarrow (match k0 with [(Bind b0) \Rightarrow b0 | (Flat 
+_) \Rightarrow Abst])])) (CHead d1 (Bind Abst) u) (CHead x0 (Bind b) t) 
 (clear_gen_bind b x0 (CHead d1 (Bind Abst) u) t H6)) in ((let H9 \def 
-(f_equal C T (\lambda (e: C).(match e in C return (\lambda (_: C).T) with 
-[(CSort _) \Rightarrow u | (CHead _ _ t0) \Rightarrow t0])) (CHead d1 (Bind 
-Abst) u) (CHead x0 (Bind b) t) (clear_gen_bind b x0 (CHead d1 (Bind Abst) u) 
-t H6)) in (\lambda (H10: (eq B Abst b)).(\lambda (H11: (eq C d1 x0)).(\lambda 
-(c2: C).(\lambda (H12: (csuba g c2 c1)).(let H13 \def (eq_ind_r T t (\lambda 
-(t0: T).(drop i O c1 (CHead x0 (Bind b) t0))) H5 u H9) in (let H14 \def 
-(eq_ind_r B b (\lambda (b0: B).(drop i O c1 (CHead x0 (Bind b0) u))) H13 Abst 
-H10) in (let H15 \def (eq_ind_r C x0 (\lambda (c: C).(drop i O c1 (CHead c 
-(Bind Abst) u))) H14 d1 H11) in (let H16 \def (csuba_drop_abst_rev i c1 d1 u 
-H15 g c2 H12) in (or_ind (ex2 C (\lambda (d2: C).(drop i O c2 (CHead d2 (Bind 
-Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: 
-C).(\lambda (u2: T).(drop i O c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: 
-C).(\lambda (_: T).(csuba g d2 d1)))) (or (ex2 C (\lambda (d2: C).(getl i c2 
-(CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T 
-(\lambda (d2: C).(\lambda (u2: T).(getl i c2 (CHead d2 (Bind Void) u2)))) 
-(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))) (\lambda (H17: (ex2 C 
+(f_equal C T (\lambda (e: C).(match e with [(CSort _) \Rightarrow u | (CHead 
+_ _ t0) \Rightarrow t0])) (CHead d1 (Bind Abst) u) (CHead x0 (Bind b) t) 
+(clear_gen_bind b x0 (CHead d1 (Bind Abst) u) t H6)) in (\lambda (H10: (eq B 
+Abst b)).(\lambda (H11: (eq C d1 x0)).(\lambda (c2: C).(\lambda (H12: (csuba 
+g c2 c1)).(let H13 \def (eq_ind_r T t (\lambda (t0: T).(drop i O c1 (CHead x0 
+(Bind b) t0))) H5 u H9) in (let H14 \def (eq_ind_r B b (\lambda (b0: B).(drop 
+i O c1 (CHead x0 (Bind b0) u))) H13 Abst H10) in (let H15 \def (eq_ind_r C x0 
+(\lambda (c: C).(drop i O c1 (CHead c (Bind Abst) u))) H14 d1 H11) in (let 
+H16 \def (csuba_drop_abst_rev i c1 d1 u H15 g c2 H12) in (or_ind (ex2 C 
 (\lambda (d2: C).(drop i O c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: 
-C).(csuba g d2 d1)))).(ex2_ind C (\lambda (d2: C).(drop i O c2 (CHead d2 
-(Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1)) (or (ex2 C (\lambda (d2: 
-C).(getl i c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) 
-(ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(getl i c2 (CHead d2 (Bind Void) 
-u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))) (\lambda (x1: 
-C).(\lambda (H18: (drop i O c2 (CHead x1 (Bind Abst) u))).(\lambda (H19: 
-(csuba g x1 d1)).(or_introl (ex2 C (\lambda (d2: C).(getl i c2 (CHead d2 
-(Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: 
-C).(\lambda (u2: T).(getl i c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: 
-C).(\lambda (_: T).(csuba g d2 d1)))) (ex_intro2 C (\lambda (d2: C).(getl i 
-c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1)) x1 
-(getl_intro i c2 (CHead x1 (Bind Abst) u) (CHead x1 (Bind Abst) u) H18 
-(clear_bind Abst x1 u)) H19))))) H17)) (\lambda (H17: (ex2_2 C T (\lambda 
-(d2: C).(\lambda (u2: T).(drop i O c2 (CHead d2 (Bind Void) u2)))) (\lambda 
-(d2: C).(\lambda (_: T).(csuba g d2 d1))))).(ex2_2_ind C T (\lambda (d2: 
-C).(\lambda (u2: T).(drop i O c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: 
-C).(\lambda (_: T).(csuba g d2 d1))) (or (ex2 C (\lambda (d2: C).(getl i c2 
-(CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T 
-(\lambda (d2: C).(\lambda (u2: T).(getl i c2 (CHead d2 (Bind Void) u2)))) 
-(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))) (\lambda (x1: 
-C).(\lambda (x2: T).(\lambda (H18: (drop i O c2 (CHead x1 (Bind Void) 
-x2))).(\lambda (H19: (csuba g x1 d1)).(or_intror (ex2 C (\lambda (d2: 
-C).(getl i c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) 
-(ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(getl i c2 (CHead d2 (Bind Void) 
-u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1)))) (ex2_2_intro C T 
-(\lambda (d2: C).(\lambda (u2: T).(getl i c2 (CHead d2 (Bind Void) u2)))) 
-(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))) x1 x2 (getl_intro i c2 
-(CHead x1 (Bind Void) x2) (CHead x1 (Bind Void) x2) H18 (clear_bind Void x1 
-x2)) H19)))))) H17)) H16)))))))))) H8)) H7))))) (\lambda (f: F).(\lambda (H5: 
-(drop i O c1 (CHead x0 (Flat f) t))).(\lambda (H6: (clear (CHead x0 (Flat f) 
-t) (CHead d1 (Bind Abst) u))).(let H7 \def H5 in (unintro C c1 (\lambda (c: 
-C).((drop i O c (CHead x0 (Flat f) t)) \to (\forall (c2: C).((csuba g c2 c) 
-\to (or (ex2 C (\lambda (d2: C).(getl i c2 (CHead d2 (Bind Abst) u))) 
+C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(drop i O 
+c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 
+d1)))) (or (ex2 C (\lambda (d2: C).(getl i c2 (CHead d2 (Bind Abst) u))) 
 (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: 
 T).(getl i c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: 
-T).(csuba g d2 d1))))))))) (nat_ind (\lambda (n: nat).(\forall (x1: C).((drop 
-n O x1 (CHead x0 (Flat f) t)) \to (\forall (c2: C).((csuba g c2 x1) \to (or 
-(ex2 C (\lambda (d2: C).(getl n c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: 
-C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(getl n c2 
+T).(csuba g d2 d1))))) (\lambda (H17: (ex2 C (\lambda (d2: C).(drop i O c2 
+(CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1)))).(ex2_ind C 
+(\lambda (d2: C).(drop i O c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: 
+C).(csuba g d2 d1)) (or (ex2 C (\lambda (d2: C).(getl i c2 (CHead d2 (Bind 
+Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: 
+C).(\lambda (u2: T).(getl i c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: 
+C).(\lambda (_: T).(csuba g d2 d1))))) (\lambda (x1: C).(\lambda (H18: (drop 
+i O c2 (CHead x1 (Bind Abst) u))).(\lambda (H19: (csuba g x1 d1)).(or_introl 
+(ex2 C (\lambda (d2: C).(getl i c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: 
+C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(getl i c2 
 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 
-d1)))))))))) (\lambda (x1: C).(\lambda (H8: (drop O O x1 (CHead x0 (Flat f) 
-t))).(\lambda (c2: C).(\lambda (H9: (csuba g c2 x1)).(let H10 \def (eq_ind C 
-x1 (\lambda (c: C).(csuba g c2 c)) H9 (CHead x0 (Flat f) t) (drop_gen_refl x1 
-(CHead x0 (Flat f) t) H8)) in (let H_y \def (clear_flat x0 (CHead d1 (Bind 
-Abst) u) (clear_gen_flat f x0 (CHead d1 (Bind Abst) u) t H6) f t) in (let H11 
-\def (csuba_clear_trans g (CHead x0 (Flat f) t) c2 H10 (CHead d1 (Bind Abst) 
-u) H_y) in (ex2_ind C (\lambda (e2: C).(csuba g e2 (CHead d1 (Bind Abst) u))) 
-(\lambda (e2: C).(clear c2 e2)) (or (ex2 C (\lambda (d2: C).(getl O c2 (CHead 
-d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda 
-(d2: C).(\lambda (u2: T).(getl O c2 (CHead d2 (Bind Void) u2)))) (\lambda 
-(d2: C).(\lambda (_: T).(csuba g d2 d1))))) (\lambda (x2: C).(\lambda (H12: 
-(csuba g x2 (CHead d1 (Bind Abst) u))).(\lambda (H13: (clear c2 x2)).(let H_x 
-\def (csuba_gen_abst_rev g d1 x2 u H12) in (let H14 \def H_x in (or_ind (ex2 
-C (\lambda (d2: C).(eq C x2 (CHead d2 (Bind Abst) u))) (\lambda (d2: 
-C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(eq C x2 
+d1)))) (ex_intro2 C (\lambda (d2: C).(getl i c2 (CHead d2 (Bind Abst) u))) 
+(\lambda (d2: C).(csuba g d2 d1)) x1 (getl_intro i c2 (CHead x1 (Bind Abst) 
+u) (CHead x1 (Bind Abst) u) H18 (clear_bind Abst x1 u)) H19))))) H17)) 
+(\lambda (H17: (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(drop i O c2 
 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 
-d1)))) (or (ex2 C (\lambda (d2: C).(getl O c2 (CHead d2 (Bind Abst) u))) 
-(\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: 
-T).(getl O c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: 
-T).(csuba g d2 d1))))) (\lambda (H15: (ex2 C (\lambda (d2: C).(eq C x2 (CHead 
-d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1)))).(ex2_ind C (\lambda 
-(d2: C).(eq C x2 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1)) 
-(or (ex2 C (\lambda (d2: C).(getl O c2 (CHead d2 (Bind Abst) u))) (\lambda 
-(d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(getl 
-O c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g 
-d2 d1))))) (\lambda (x3: C).(\lambda (H16: (eq C x2 (CHead x3 (Bind Abst) 
-u))).(\lambda (H17: (csuba g x3 d1)).(let H18 \def (eq_ind C x2 (\lambda (c: 
-C).(clear c2 c)) H13 (CHead x3 (Bind Abst) u) H16) in (or_introl (ex2 C 
-(\lambda (d2: C).(getl O c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: 
-C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(getl O c2 
+d1))))).(ex2_2_ind C T (\lambda (d2: C).(\lambda (u2: T).(drop i O c2 (CHead 
+d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))) (or 
+(ex2 C (\lambda (d2: C).(getl i c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: 
+C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(getl i c2 
 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 
-d1)))) (ex_intro2 C (\lambda (d2: C).(getl O c2 (CHead d2 (Bind Abst) u))) 
-(\lambda (d2: C).(csuba g d2 d1)) x3 (getl_intro O c2 (CHead x3 (Bind Abst) 
-u) c2 (drop_refl c2) H18) H17)))))) H15)) (\lambda (H15: (ex2_2 C T (\lambda 
-(d2: C).(\lambda (u2: T).(eq C x2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: 
-C).(\lambda (_: T).(csuba g d2 d1))))).(ex2_2_ind C T (\lambda (d2: 
-C).(\lambda (u2: T).(eq C x2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: 
-C).(\lambda (_: T).(csuba g d2 d1))) (or (ex2 C (\lambda (d2: C).(getl O c2 
+d1))))) (\lambda (x1: C).(\lambda (x2: T).(\lambda (H18: (drop i O c2 (CHead 
+x1 (Bind Void) x2))).(\lambda (H19: (csuba g x1 d1)).(or_intror (ex2 C 
+(\lambda (d2: C).(getl i c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: 
+C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(getl i c2 
+(CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 
+d1)))) (ex2_2_intro C T (\lambda (d2: C).(\lambda (u2: T).(getl i c2 (CHead 
+d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))) x1 
+x2 (getl_intro i c2 (CHead x1 (Bind Void) x2) (CHead x1 (Bind Void) x2) H18 
+(clear_bind Void x1 x2)) H19)))))) H17)) H16)))))))))) H8)) H7))))) (\lambda 
+(f: F).(\lambda (H5: (drop i O c1 (CHead x0 (Flat f) t))).(\lambda (H6: 
+(clear (CHead x0 (Flat f) t) (CHead d1 (Bind Abst) u))).(let H7 \def H5 in 
+(unintro C c1 (\lambda (c: C).((drop i O c (CHead x0 (Flat f) t)) \to 
+(\forall (c2: C).((csuba g c2 c) \to (or (ex2 C (\lambda (d2: C).(getl i c2 
 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T 
-(\lambda (d2: C).(\lambda (u2: T).(getl O c2 (CHead d2 (Bind Void) u2)))) 
-(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))) (\lambda (x3: 
-C).(\lambda (x4: T).(\lambda (H16: (eq C x2 (CHead x3 (Bind Void) 
-x4))).(\lambda (H17: (csuba g x3 d1)).(let H18 \def (eq_ind C x2 (\lambda (c: 
-C).(clear c2 c)) H13 (CHead x3 (Bind Void) x4) H16) in (or_intror (ex2 C 
+(\lambda (d2: C).(\lambda (u2: T).(getl i c2 (CHead d2 (Bind Void) u2)))) 
+(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))))))) (nat_ind (\lambda 
+(n: nat).(\forall (x1: C).((drop n O x1 (CHead x0 (Flat f) t)) \to (\forall 
+(c2: C).((csuba g c2 x1) \to (or (ex2 C (\lambda (d2: C).(getl n c2 (CHead d2 
+(Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: 
+C).(\lambda (u2: T).(getl n c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: 
+C).(\lambda (_: T).(csuba g d2 d1)))))))))) (\lambda (x1: C).(\lambda (H8: 
+(drop O O x1 (CHead x0 (Flat f) t))).(\lambda (c2: C).(\lambda (H9: (csuba g 
+c2 x1)).(let H10 \def (eq_ind C x1 (\lambda (c: C).(csuba g c2 c)) H9 (CHead 
+x0 (Flat f) t) (drop_gen_refl x1 (CHead x0 (Flat f) t) H8)) in (let H_y \def 
+(clear_flat x0 (CHead d1 (Bind Abst) u) (clear_gen_flat f x0 (CHead d1 (Bind 
+Abst) u) t H6) f t) in (let H11 \def (csuba_clear_trans g (CHead x0 (Flat f) 
+t) c2 H10 (CHead d1 (Bind Abst) u) H_y) in (ex2_ind C (\lambda (e2: C).(csuba 
+g e2 (CHead d1 (Bind Abst) u))) (\lambda (e2: C).(clear c2 e2)) (or (ex2 C 
 (\lambda (d2: C).(getl O c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: 
 C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(getl O c2 
 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 
-d1)))) (ex2_2_intro C T (\lambda (d2: C).(\lambda (u2: T).(getl O c2 (CHead 
-d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))) x3 
-x4 (getl_intro O c2 (CHead x3 (Bind Void) x4) c2 (drop_refl c2) H18) 
-H17))))))) H15)) H14)))))) H11)))))))) (\lambda (n: nat).(\lambda (H8: 
-((\forall (x1: C).((drop n O x1 (CHead x0 (Flat f) t)) \to (\forall (c2: 
-C).((csuba g c2 x1) \to (or (ex2 C (\lambda (d2: C).(getl n c2 (CHead d2 
-(Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: 
-C).(\lambda (u2: T).(getl n c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: 
-C).(\lambda (_: T).(csuba g d2 d1))))))))))).(\lambda (x1: C).(\lambda (H9: 
-(drop (S n) O x1 (CHead x0 (Flat f) t))).(\lambda (c2: C).(\lambda (H10: 
-(csuba g c2 x1)).(let H11 \def (drop_clear x1 (CHead x0 (Flat f) t) n H9) in 
-(ex2_3_ind B C T (\lambda (b: B).(\lambda (e: C).(\lambda (v: T).(clear x1 
-(CHead e (Bind b) v))))) (\lambda (_: B).(\lambda (e: C).(\lambda (_: 
-T).(drop n O e (CHead x0 (Flat f) t))))) (or (ex2 C (\lambda (d2: C).(getl (S 
-n) c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C 
-T (\lambda (d2: C).(\lambda (u2: T).(getl (S n) c2 (CHead d2 (Bind Void) 
-u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))) (\lambda (x2: 
-B).(\lambda (x3: C).(\lambda (x4: T).(\lambda (H12: (clear x1 (CHead x3 (Bind 
-x2) x4))).(\lambda (H13: (drop n O x3 (CHead x0 (Flat f) t))).(let H14 \def 
-(csuba_clear_trans g x1 c2 H10 (CHead x3 (Bind x2) x4) H12) in (ex2_ind C 
-(\lambda (e2: C).(csuba g e2 (CHead x3 (Bind x2) x4))) (\lambda (e2: 
-C).(clear c2 e2)) (or (ex2 C (\lambda (d2: C).(getl (S n) c2 (CHead d2 (Bind 
-Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: 
-C).(\lambda (u2: T).(getl (S n) c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: 
-C).(\lambda (_: T).(csuba g d2 d1))))) (\lambda (x5: C).(\lambda (H15: (csuba 
-g x5 (CHead x3 (Bind x2) x4))).(\lambda (H16: (clear c2 x5)).(let H_x \def 
-(csuba_gen_bind_rev g x2 x3 x5 x4 H15) in (let H17 \def H_x in (ex2_3_ind B C 
-T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C x5 (CHead e2 (Bind 
-b2) v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (_: T).(csuba g e2 
-x3)))) (or (ex2 C (\lambda (d2: C).(getl (S n) c2 (CHead d2 (Bind Abst) u))) 
+d1))))) (\lambda (x2: C).(\lambda (H12: (csuba g x2 (CHead d1 (Bind Abst) 
+u))).(\lambda (H13: (clear c2 x2)).(let H_x \def (csuba_gen_abst_rev g d1 x2 
+u H12) in (let H14 \def H_x in (or_ind (ex2 C (\lambda (d2: C).(eq C x2 
+(CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T 
+(\lambda (d2: C).(\lambda (u2: T).(eq C x2 (CHead d2 (Bind Void) u2)))) 
+(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1)))) (or (ex2 C (\lambda (d2: 
+C).(getl O c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) 
+(ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(getl O c2 (CHead d2 (Bind Void) 
+u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))) (\lambda (H15: 
+(ex2 C (\lambda (d2: C).(eq C x2 (CHead d2 (Bind Abst) u))) (\lambda (d2: 
+C).(csuba g d2 d1)))).(ex2_ind C (\lambda (d2: C).(eq C x2 (CHead d2 (Bind 
+Abst) u))) (\lambda (d2: C).(csuba g d2 d1)) (or (ex2 C (\lambda (d2: 
+C).(getl O c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) 
+(ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(getl O c2 (CHead d2 (Bind Void) 
+u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))) (\lambda (x3: 
+C).(\lambda (H16: (eq C x2 (CHead x3 (Bind Abst) u))).(\lambda (H17: (csuba g 
+x3 d1)).(let H18 \def (eq_ind C x2 (\lambda (c: C).(clear c2 c)) H13 (CHead 
+x3 (Bind Abst) u) H16) in (or_introl (ex2 C (\lambda (d2: C).(getl O c2 
+(CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T 
+(\lambda (d2: C).(\lambda (u2: T).(getl O c2 (CHead d2 (Bind Void) u2)))) 
+(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1)))) (ex_intro2 C (\lambda 
+(d2: C).(getl O c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 
+d1)) x3 (getl_intro O c2 (CHead x3 (Bind Abst) u) c2 (drop_refl c2) H18) 
+H17)))))) H15)) (\lambda (H15: (ex2_2 C T (\lambda (d2: C).(\lambda (u2: 
+T).(eq C x2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: 
+T).(csuba g d2 d1))))).(ex2_2_ind C T (\lambda (d2: C).(\lambda (u2: T).(eq C 
+x2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 
+d1))) (or (ex2 C (\lambda (d2: C).(getl O c2 (CHead d2 (Bind Abst) u))) 
 (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: 
-T).(getl (S n) c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: 
-T).(csuba g d2 d1))))) (\lambda (x6: B).(\lambda (x7: C).(\lambda (x8: 
-T).(\lambda (H18: (eq C x5 (CHead x7 (Bind x6) x8))).(\lambda (H19: (csuba g 
-x7 x3)).(let H20 \def (eq_ind C x5 (\lambda (c: C).(clear c2 c)) H16 (CHead 
-x7 (Bind x6) x8) H18) in (let H21 \def (H8 x3 H13 x7 H19) in (or_ind (ex2 C 
-(\lambda (d2: C).(getl n x7 (CHead d2 (Bind Abst) u))) (\lambda (d2: 
-C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(getl n x7 
-(CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 
-d1)))) (or (ex2 C (\lambda (d2: C).(getl (S n) c2 (CHead d2 (Bind Abst) u))) 
+T).(getl O c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: 
+T).(csuba g d2 d1))))) (\lambda (x3: C).(\lambda (x4: T).(\lambda (H16: (eq C 
+x2 (CHead x3 (Bind Void) x4))).(\lambda (H17: (csuba g x3 d1)).(let H18 \def 
+(eq_ind C x2 (\lambda (c: C).(clear c2 c)) H13 (CHead x3 (Bind Void) x4) H16) 
+in (or_intror (ex2 C (\lambda (d2: C).(getl O c2 (CHead d2 (Bind Abst) u))) 
 (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: 
-T).(getl (S n) c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: 
-T).(csuba g d2 d1))))) (\lambda (H22: (ex2 C (\lambda (d2: C).(getl n x7 
-(CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1)))).(ex2_ind C 
-(\lambda (d2: C).(getl n x7 (CHead d2 (Bind Abst) u))) (\lambda (d2: 
-C).(csuba g d2 d1)) (or (ex2 C (\lambda (d2: C).(getl (S n) c2 (CHead d2 
-(Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: 
-C).(\lambda (u2: T).(getl (S n) c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: 
-C).(\lambda (_: T).(csuba g d2 d1))))) (\lambda (x9: C).(\lambda (H23: (getl 
-n x7 (CHead x9 (Bind Abst) u))).(\lambda (H24: (csuba g x9 d1)).(or_introl 
+T).(getl O c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: 
+T).(csuba g d2 d1)))) (ex2_2_intro C T (\lambda (d2: C).(\lambda (u2: 
+T).(getl O c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: 
+T).(csuba g d2 d1))) x3 x4 (getl_intro O c2 (CHead x3 (Bind Void) x4) c2 
+(drop_refl c2) H18) H17))))))) H15)) H14)))))) H11)))))))) (\lambda (n: 
+nat).(\lambda (H8: ((\forall (x1: C).((drop n O x1 (CHead x0 (Flat f) t)) \to 
+(\forall (c2: C).((csuba g c2 x1) \to (or (ex2 C (\lambda (d2: C).(getl n c2 
+(CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T 
+(\lambda (d2: C).(\lambda (u2: T).(getl n c2 (CHead d2 (Bind Void) u2)))) 
+(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))))))))).(\lambda (x1: 
+C).(\lambda (H9: (drop (S n) O x1 (CHead x0 (Flat f) t))).(\lambda (c2: 
+C).(\lambda (H10: (csuba g c2 x1)).(let H11 \def (drop_clear x1 (CHead x0 
+(Flat f) t) n H9) in (ex2_3_ind B C T (\lambda (b: B).(\lambda (e: 
+C).(\lambda (v: T).(clear x1 (CHead e (Bind b) v))))) (\lambda (_: 
+B).(\lambda (e: C).(\lambda (_: T).(drop n O e (CHead x0 (Flat f) t))))) (or 
 (ex2 C (\lambda (d2: C).(getl (S n) c2 (CHead d2 (Bind Abst) u))) (\lambda 
 (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(getl 
 (S n) c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba 
-g d2 d1)))) (ex_intro2 C (\lambda (d2: C).(getl (S n) c2 (CHead d2 (Bind 
-Abst) u))) (\lambda (d2: C).(csuba g d2 d1)) x9 (getl_clear_bind x6 c2 x7 x8 
-H20 (CHead x9 (Bind Abst) u) n H23) H24))))) H22)) (\lambda (H22: (ex2_2 C T 
-(\lambda (d2: C).(\lambda (u2: T).(getl n x7 (CHead d2 (Bind Void) u2)))) 
-(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))).(ex2_2_ind C T (\lambda 
-(d2: C).(\lambda (u2: T).(getl n x7 (CHead d2 (Bind Void) u2)))) (\lambda 
-(d2: C).(\lambda (_: T).(csuba g d2 d1))) (or (ex2 C (\lambda (d2: C).(getl 
-(S n) c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 
-C T (\lambda (d2: C).(\lambda (u2: T).(getl (S n) c2 (CHead d2 (Bind Void) 
-u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))) (\lambda (x9: 
-C).(\lambda (x10: T).(\lambda (H23: (getl n x7 (CHead x9 (Bind Void) 
-x10))).(\lambda (H24: (csuba g x9 d1)).(or_intror (ex2 C (\lambda (d2: 
+g d2 d1))))) (\lambda (x2: B).(\lambda (x3: C).(\lambda (x4: T).(\lambda 
+(H12: (clear x1 (CHead x3 (Bind x2) x4))).(\lambda (H13: (drop n O x3 (CHead 
+x0 (Flat f) t))).(let H14 \def (csuba_clear_trans g x1 c2 H10 (CHead x3 (Bind 
+x2) x4) H12) in (ex2_ind C (\lambda (e2: C).(csuba g e2 (CHead x3 (Bind x2) 
+x4))) (\lambda (e2: C).(clear c2 e2)) (or (ex2 C (\lambda (d2: C).(getl (S n) 
+c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T 
+(\lambda (d2: C).(\lambda (u2: T).(getl (S n) c2 (CHead d2 (Bind Void) u2)))) 
+(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))) (\lambda (x5: 
+C).(\lambda (H15: (csuba g x5 (CHead x3 (Bind x2) x4))).(\lambda (H16: (clear 
+c2 x5)).(let H_x \def (csuba_gen_bind_rev g x2 x3 x5 x4 H15) in (let H17 \def 
+H_x in (ex2_3_ind B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: 
+T).(eq C x5 (CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: 
+C).(\lambda (_: T).(csuba g e2 x3)))) (or (ex2 C (\lambda (d2: C).(getl (S n) 
+c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T 
+(\lambda (d2: C).(\lambda (u2: T).(getl (S n) c2 (CHead d2 (Bind Void) u2)))) 
+(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))) (\lambda (x6: 
+B).(\lambda (x7: C).(\lambda (x8: T).(\lambda (H18: (eq C x5 (CHead x7 (Bind 
+x6) x8))).(\lambda (H19: (csuba g x7 x3)).(let H20 \def (eq_ind C x5 (\lambda 
+(c: C).(clear c2 c)) H16 (CHead x7 (Bind x6) x8) H18) in (let H21 \def (H8 x3 
+H13 x7 H19) in (or_ind (ex2 C (\lambda (d2: C).(getl n x7 (CHead d2 (Bind 
+Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: 
+C).(\lambda (u2: T).(getl n x7 (CHead d2 (Bind Void) u2)))) (\lambda (d2: 
+C).(\lambda (_: T).(csuba g d2 d1)))) (or (ex2 C (\lambda (d2: C).(getl (S n) 
+c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T 
+(\lambda (d2: C).(\lambda (u2: T).(getl (S n) c2 (CHead d2 (Bind Void) u2)))) 
+(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))) (\lambda (H22: (ex2 C 
+(\lambda (d2: C).(getl n x7 (CHead d2 (Bind Abst) u))) (\lambda (d2: 
+C).(csuba g d2 d1)))).(ex2_ind C (\lambda (d2: C).(getl n x7 (CHead d2 (Bind 
+Abst) u))) (\lambda (d2: C).(csuba g d2 d1)) (or (ex2 C (\lambda (d2: 
 C).(getl (S n) c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 
 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(getl (S n) c2 (CHead d2 
-(Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1)))) 
-(ex2_2_intro C T (\lambda (d2: C).(\lambda (u2: T).(getl (S n) c2 (CHead d2 
-(Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))) x9 x10 
-(getl_clear_bind x6 c2 x7 x8 H20 (CHead x9 (Bind Void) x10) n H23) H24)))))) 
-H22)) H21)))))))) H17)))))) H14))))))) H11)))))))) i) H7))))) k H3 H4))))))) 
-x H1 H2)))) H0))))))).
-(* COMMENTS
-Initial nodes: 4703
-END *)
+(Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))) 
+(\lambda (x9: C).(\lambda (H23: (getl n x7 (CHead x9 (Bind Abst) 
+u))).(\lambda (H24: (csuba g x9 d1)).(or_introl (ex2 C (\lambda (d2: C).(getl 
+(S n) c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 
+C T (\lambda (d2: C).(\lambda (u2: T).(getl (S n) c2 (CHead d2 (Bind Void) 
+u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1)))) (ex_intro2 C 
+(\lambda (d2: C).(getl (S n) c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: 
+C).(csuba g d2 d1)) x9 (getl_clear_bind x6 c2 x7 x8 H20 (CHead x9 (Bind Abst) 
+u) n H23) H24))))) H22)) (\lambda (H22: (ex2_2 C T (\lambda (d2: C).(\lambda 
+(u2: T).(getl n x7 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: 
+T).(csuba g d2 d1))))).(ex2_2_ind C T (\lambda (d2: C).(\lambda (u2: T).(getl 
+n x7 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g 
+d2 d1))) (or (ex2 C (\lambda (d2: C).(getl (S n) c2 (CHead d2 (Bind Abst) 
+u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda 
+(u2: T).(getl (S n) c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda 
+(_: T).(csuba g d2 d1))))) (\lambda (x9: C).(\lambda (x10: T).(\lambda (H23: 
+(getl n x7 (CHead x9 (Bind Void) x10))).(\lambda (H24: (csuba g x9 
+d1)).(or_intror (ex2 C (\lambda (d2: C).(getl (S n) c2 (CHead d2 (Bind Abst) 
+u))) (\lambda (d2: C).(csuba g d2 d1))) (ex2_2 C T (\lambda (d2: C).(\lambda 
+(u2: T).(getl (S n) c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda 
+(_: T).(csuba g d2 d1)))) (ex2_2_intro C T (\lambda (d2: C).(\lambda (u2: 
+T).(getl (S n) c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: 
+T).(csuba g d2 d1))) x9 x10 (getl_clear_bind x6 c2 x7 x8 H20 (CHead x9 (Bind 
+Void) x10) n H23) H24)))))) H22)) H21)))))))) H17)))))) H14))))))) 
+H11)))))))) i) H7))))) k H3 H4))))))) x H1 H2)))) H0))))))).
 
 theorem csuba_getl_abbr_rev:
  \forall (g: G).(\forall (c1: C).(\forall (d1: C).(\forall (u1: T).(\forall 
@@ -776,81 +762,69 @@ C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 (asucc g a))))) (\lambda
 (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1)))))))))) (\lambda (b: 
 B).(\lambda (H5: (drop i O c1 (CHead x0 (Bind b) t))).(\lambda (H6: (clear 
 (CHead x0 (Bind b) t) (CHead d1 (Bind Abbr) u1))).(let H7 \def (f_equal C C 
-(\lambda (e: C).(match e in C return (\lambda (_: C).C) with [(CSort _) 
-\Rightarrow d1 | (CHead c _ _) \Rightarrow c])) (CHead d1 (Bind Abbr) u1) 
-(CHead x0 (Bind b) t) (clear_gen_bind b x0 (CHead d1 (Bind Abbr) u1) t H6)) 
-in ((let H8 \def (f_equal C B (\lambda (e: C).(match e in C return (\lambda 
-(_: C).B) with [(CSort _) \Rightarrow Abbr | (CHead _ k0 _) \Rightarrow 
-(match k0 in K return (\lambda (_: K).B) with [(Bind b0) \Rightarrow b0 | 
-(Flat _) \Rightarrow Abbr])])) (CHead d1 (Bind Abbr) u1) (CHead x0 (Bind b) 
-t) (clear_gen_bind b x0 (CHead d1 (Bind Abbr) u1) t H6)) in ((let H9 \def 
-(f_equal C T (\lambda (e: C).(match e in C return (\lambda (_: C).T) with 
-[(CSort _) \Rightarrow u1 | (CHead _ _ t0) \Rightarrow t0])) (CHead d1 (Bind 
-Abbr) u1) (CHead x0 (Bind b) t) (clear_gen_bind b x0 (CHead d1 (Bind Abbr) 
-u1) t H6)) in (\lambda (H10: (eq B Abbr b)).(\lambda (H11: (eq C d1 
-x0)).(\lambda (c2: C).(\lambda (H12: (csuba g c2 c1)).(let H13 \def (eq_ind_r 
-T t (\lambda (t0: T).(drop i O c1 (CHead x0 (Bind b) t0))) H5 u1 H9) in (let 
-H14 \def (eq_ind_r B b (\lambda (b0: B).(drop i O c1 (CHead x0 (Bind b0) 
-u1))) H13 Abbr H10) in (let H15 \def (eq_ind_r C x0 (\lambda (c: C).(drop i O 
-c1 (CHead c (Bind Abbr) u1))) H14 d1 H11) in (let H16 \def 
-(csuba_drop_abbr_rev i c1 d1 u1 H15 g c2 H12) in (or3_ind (ex2 C (\lambda 
-(d2: C).(drop i O c2 (CHead d2 (Bind Abbr) u1))) (\lambda (d2: C).(csuba g d2 
-d1))) (ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(drop i 
-O c2 (CHead d2 (Bind Abst) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda 
-(_: A).(csuba g d2 d1)))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: 
+(\lambda (e: C).(match e with [(CSort _) \Rightarrow d1 | (CHead c _ _) 
+\Rightarrow c])) (CHead d1 (Bind Abbr) u1) (CHead x0 (Bind b) t) 
+(clear_gen_bind b x0 (CHead d1 (Bind Abbr) u1) t H6)) in ((let H8 \def 
+(f_equal C B (\lambda (e: C).(match e with [(CSort _) \Rightarrow Abbr | 
+(CHead _ k0 _) \Rightarrow (match k0 with [(Bind b0) \Rightarrow b0 | (Flat 
+_) \Rightarrow Abbr])])) (CHead d1 (Bind Abbr) u1) (CHead x0 (Bind b) t) 
+(clear_gen_bind b x0 (CHead d1 (Bind Abbr) u1) t H6)) in ((let H9 \def 
+(f_equal C T (\lambda (e: C).(match e with [(CSort _) \Rightarrow u1 | (CHead 
+_ _ t0) \Rightarrow t0])) (CHead d1 (Bind Abbr) u1) (CHead x0 (Bind b) t) 
+(clear_gen_bind b x0 (CHead d1 (Bind Abbr) u1) t H6)) in (\lambda (H10: (eq B 
+Abbr b)).(\lambda (H11: (eq C d1 x0)).(\lambda (c2: C).(\lambda (H12: (csuba 
+g c2 c1)).(let H13 \def (eq_ind_r T t (\lambda (t0: T).(drop i O c1 (CHead x0 
+(Bind b) t0))) H5 u1 H9) in (let H14 \def (eq_ind_r B b (\lambda (b0: 
+B).(drop i O c1 (CHead x0 (Bind b0) u1))) H13 Abbr H10) in (let H15 \def 
+(eq_ind_r C x0 (\lambda (c: C).(drop i O c1 (CHead c (Bind Abbr) u1))) H14 d1 
+H11) in (let H16 \def (csuba_drop_abbr_rev i c1 d1 u1 H15 g c2 H12) in 
+(or3_ind (ex2 C (\lambda (d2: C).(drop i O c2 (CHead d2 (Bind Abbr) u1))) 
+(\lambda (d2: C).(csuba g d2 d1))) (ex4_3 C T A (\lambda (d2: C).(\lambda 
+(u2: T).(\lambda (_: A).(drop i O c2 (CHead d2 (Bind Abst) u2))))) (\lambda 
+(d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 d1)))) (\lambda (d2: 
+C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 (asucc g a))))) (\lambda 
+(_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 a))))) (ex2_2 C T 
+(\lambda (d2: C).(\lambda (u2: T).(drop i O c2 (CHead d2 (Bind Void) u2)))) 
+(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1)))) (or3 (ex2 C (\lambda (d2: 
+C).(getl i c2 (CHead d2 (Bind Abbr) u1))) (\lambda (d2: C).(csuba g d2 d1))) 
+(ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(getl i c2 
+(CHead d2 (Bind Abst) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: 
+A).(csuba g d2 d1)))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: 
 A).(arity g d2 u2 (asucc g a))))) (\lambda (_: C).(\lambda (_: T).(\lambda 
 (a: A).(arity g d1 u1 a))))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: 
-T).(drop i O c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: 
-T).(csuba g d2 d1)))) (or3 (ex2 C (\lambda (d2: C).(getl i c2 (CHead d2 (Bind 
+T).(getl i c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: 
+T).(csuba g d2 d1))))) (\lambda (H17: (ex2 C (\lambda (d2: C).(drop i O c2 
+(CHead d2 (Bind Abbr) u1))) (\lambda (d2: C).(csuba g d2 d1)))).(ex2_ind C 
+(\lambda (d2: C).(drop i O c2 (CHead d2 (Bind Abbr) u1))) (\lambda (d2: 
+C).(csuba g d2 d1)) (or3 (ex2 C (\lambda (d2: C).(getl i c2 (CHead d2 (Bind 
 Abbr) u1))) (\lambda (d2: C).(csuba g d2 d1))) (ex4_3 C T A (\lambda (d2: 
 C).(\lambda (u2: T).(\lambda (_: A).(getl i c2 (CHead d2 (Bind Abst) u2))))) 
 (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 d1)))) (\lambda 
 (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 (asucc g a))))) 
 (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 a))))) (ex2_2 
 C T (\lambda (d2: C).(\lambda (u2: T).(getl i c2 (CHead d2 (Bind Void) u2)))) 
-(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))) (\lambda (H17: (ex2 C 
-(\lambda (d2: C).(drop i O c2 (CHead d2 (Bind Abbr) u1))) (\lambda (d2: 
-C).(csuba g d2 d1)))).(ex2_ind C (\lambda (d2: C).(drop i O c2 (CHead d2 
-(Bind Abbr) u1))) (\lambda (d2: C).(csuba g d2 d1)) (or3 (ex2 C (\lambda (d2: 
-C).(getl i c2 (CHead d2 (Bind Abbr) u1))) (\lambda (d2: C).(csuba g d2 d1))) 
-(ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(getl i c2 
+(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))) (\lambda (x1: 
+C).(\lambda (H18: (drop i O c2 (CHead x1 (Bind Abbr) u1))).(\lambda (H19: 
+(csuba g x1 d1)).(or3_intro0 (ex2 C (\lambda (d2: C).(getl i c2 (CHead d2 
+(Bind Abbr) u1))) (\lambda (d2: C).(csuba g d2 d1))) (ex4_3 C T A (\lambda 
+(d2: C).(\lambda (u2: T).(\lambda (_: A).(getl i c2 (CHead d2 (Bind Abst) 
+u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 d1)))) 
+(\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 (asucc g 
+a))))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 a))))) 
+(ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(getl i c2 (CHead d2 (Bind Void) 
+u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1)))) (ex_intro2 C 
+(\lambda (d2: C).(getl i c2 (CHead d2 (Bind Abbr) u1))) (\lambda (d2: 
+C).(csuba g d2 d1)) x1 (getl_intro i c2 (CHead x1 (Bind Abbr) u1) (CHead x1 
+(Bind Abbr) u1) H18 (clear_bind Abbr x1 u1)) H19))))) H17)) (\lambda (H17: 
+(ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(drop i O c2 
 (CHead d2 (Bind Abst) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: 
 A).(csuba g d2 d1)))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: 
 A).(arity g d2 u2 (asucc g a))))) (\lambda (_: C).(\lambda (_: T).(\lambda 
-(a: A).(arity g d1 u1 a))))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: 
-T).(getl i c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: 
-T).(csuba g d2 d1))))) (\lambda (x1: C).(\lambda (H18: (drop i O c2 (CHead x1 
-(Bind Abbr) u1))).(\lambda (H19: (csuba g x1 d1)).(or3_intro0 (ex2 C (\lambda 
-(d2: C).(getl i c2 (CHead d2 (Bind Abbr) u1))) (\lambda (d2: C).(csuba g d2 
-d1))) (ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(getl i 
-c2 (CHead d2 (Bind Abst) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda 
-(_: A).(csuba g d2 d1)))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: 
-A).(arity g d2 u2 (asucc g a))))) (\lambda (_: C).(\lambda (_: T).(\lambda 
-(a: A).(arity g d1 u1 a))))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: 
-T).(getl i c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: 
-T).(csuba g d2 d1)))) (ex_intro2 C (\lambda (d2: C).(getl i c2 (CHead d2 
-(Bind Abbr) u1))) (\lambda (d2: C).(csuba g d2 d1)) x1 (getl_intro i c2 
-(CHead x1 (Bind Abbr) u1) (CHead x1 (Bind Abbr) u1) H18 (clear_bind Abbr x1 
-u1)) H19))))) H17)) (\lambda (H17: (ex4_3 C T A (\lambda (d2: C).(\lambda 
-(u2: T).(\lambda (_: A).(drop i O c2 (CHead d2 (Bind Abst) u2))))) (\lambda 
-(d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 d1)))) (\lambda (d2: 
-C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 (asucc g a))))) (\lambda 
-(_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 a)))))).(ex4_3_ind C T 
-A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(drop i O c2 (CHead d2 
-(Bind Abst) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g 
-d2 d1)))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 
-(asucc g a))))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 
-u1 a)))) (or3 (ex2 C (\lambda (d2: C).(getl i c2 (CHead d2 (Bind Abbr) u1))) 
-(\lambda (d2: C).(csuba g d2 d1))) (ex4_3 C T A (\lambda (d2: C).(\lambda 
-(u2: T).(\lambda (_: A).(getl i c2 (CHead d2 (Bind Abst) u2))))) (\lambda 
-(d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 d1)))) (\lambda (d2: 
+(a: A).(arity g d1 u1 a)))))).(ex4_3_ind C T A (\lambda (d2: C).(\lambda (u2: 
+T).(\lambda (_: A).(drop i O c2 (CHead d2 (Bind Abst) u2))))) (\lambda (d2: 
+C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 d1)))) (\lambda (d2: 
 C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 (asucc g a))))) (\lambda 
-(_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 a))))) (ex2_2 C T 
-(\lambda (d2: C).(\lambda (u2: T).(getl i c2 (CHead d2 (Bind Void) u2)))) 
-(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))))) (\lambda (x1: 
-C).(\lambda (x2: T).(\lambda (x3: A).(\lambda (H18: (drop i O c2 (CHead x1 
-(Bind Abst) x2))).(\lambda (H19: (csuba g x1 d1)).(\lambda (H20: (arity g x1 
-x2 (asucc g x3))).(\lambda (H21: (arity g d1 u1 x3)).(or3_intro1 (ex2 C 
+(_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 a)))) (or3 (ex2 C 
 (\lambda (d2: C).(getl i c2 (CHead d2 (Bind Abbr) u1))) (\lambda (d2: 
 C).(csuba g d2 d1))) (ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda 
 (_: A).(getl i c2 (CHead d2 (Bind Abst) u2))))) (\lambda (d2: C).(\lambda (_: 
@@ -858,11 +832,22 @@ T).(\lambda (_: A).(csuba g d2 d1)))) (\lambda (d2: C).(\lambda (u2:
 T).(\lambda (a: A).(arity g d2 u2 (asucc g a))))) (\lambda (_: C).(\lambda 
 (_: T).(\lambda (a: A).(arity g d1 u1 a))))) (ex2_2 C T (\lambda (d2: 
 C).(\lambda (u2: T).(getl i c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: 
-C).(\lambda (_: T).(csuba g d2 d1)))) (ex4_3_intro C T A (\lambda (d2: 
-C).(\lambda (u2: T).(\lambda (_: A).(getl i c2 (CHead d2 (Bind Abst) u2))))) 
-(\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 d1)))) (\lambda 
-(d2: C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 (asucc g a))))) 
-(\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 a)))) x1 x2 x3 
+C).(\lambda (_: T).(csuba g d2 d1))))) (\lambda (x1: C).(\lambda (x2: 
+T).(\lambda (x3: A).(\lambda (H18: (drop i O c2 (CHead x1 (Bind Abst) 
+x2))).(\lambda (H19: (csuba g x1 d1)).(\lambda (H20: (arity g x1 x2 (asucc g 
+x3))).(\lambda (H21: (arity g d1 u1 x3)).(or3_intro1 (ex2 C (\lambda (d2: 
+C).(getl i c2 (CHead d2 (Bind Abbr) u1))) (\lambda (d2: C).(csuba g d2 d1))) 
+(ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(getl i c2 
+(CHead d2 (Bind Abst) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: 
+A).(csuba g d2 d1)))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a: 
+A).(arity g d2 u2 (asucc g a))))) (\lambda (_: C).(\lambda (_: T).(\lambda 
+(a: A).(arity g d1 u1 a))))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: 
+T).(getl i c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: 
+T).(csuba g d2 d1)))) (ex4_3_intro C T A (\lambda (d2: C).(\lambda (u2: 
+T).(\lambda (_: A).(getl i c2 (CHead d2 (Bind Abst) u2))))) (\lambda (d2: 
+C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 d1)))) (\lambda (d2: 
+C).(\lambda (u2: T).(\lambda (a: A).(arity g d2 u2 (asucc g a))))) (\lambda 
+(_: C).(\lambda (_: T).(\lambda (a: A).(arity g d1 u1 a)))) x1 x2 x3 
 (getl_intro i c2 (CHead x1 (Bind Abst) x2) (CHead x1 (Bind Abst) x2) H18 
 (clear_bind Abst x1 x2)) H19 H20 H21))))))))) H17)) (\lambda (H17: (ex2_2 C T 
 (\lambda (d2: C).(\lambda (u2: T).(drop i O c2 (CHead d2 (Bind Void) u2)))) 
@@ -1172,7 +1157,4 @@ u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d1))) x9 x10
 (getl_clear_bind x6 c2 x7 x8 H20 (CHead x9 (Bind Void) x10) n H23) H24)))))) 
 H22)) H21)))))))) H17)))))) H14))))))) H11)))))))) i) H7))))) k H3 H4))))))) 
 x H1 H2)))) H0))))))).
-(* COMMENTS
-Initial nodes: 9091
-END *)
 
index 823e888256341b114505ec920f9d426ed5c4eab0..5dab712a8b678e1a71523daaf04eddaa522f7548 100644 (file)
 
 (* This file was automatically generated: do not edit *********************)
 
-include "Basic-1/csuba/defs.ma".
+include "basic_1/csuba/defs.ma".
+
+include "basic_1/C/fwd.ma".
 
 theorem csuba_refl:
  \forall (g: G).(\forall (c: C).(csuba g c c))
 \def
- \lambda (g: G).(\lambda (c: C).(C_ind (\lambda (c0: C).(csuba g c0 c0)) 
-(\lambda (n: nat).(csuba_sort g n)) (\lambda (c0: C).(\lambda (H: (csuba g c0 
-c0)).(\lambda (k: K).(\lambda (t: T).(csuba_head g c0 c0 H k t))))) c)).
-(* COMMENTS
-Initial nodes: 53
-END *)
+ \lambda (g: G).(\lambda (c: C).(let TMP_1 \def (\lambda (c0: C).(csuba g c0 
+c0)) in (let TMP_2 \def (\lambda (n: nat).(csuba_sort g n)) in (let TMP_3 
+\def (\lambda (c0: C).(\lambda (H: (csuba g c0 c0)).(\lambda (k: K).(\lambda 
+(t: T).(csuba_head g c0 c0 H k t))))) in (C_ind TMP_1 TMP_2 TMP_3 c))))).