]> matita.cs.unibo.it Git - helm.git/commitdiff
components: subst1 csubst0 csubst1 fsubst0
authorFerruccio Guidi <ferruccio.guidi@unibo.it>
Wed, 11 Feb 2015 21:25:22 +0000 (21:25 +0000)
committerFerruccio Guidi <ferruccio.guidi@unibo.it>
Wed, 11 Feb 2015 21:25:22 +0000 (21:25 +0000)
we committed almost half of basic_1

16 files changed:
matita/matita/contribs/lambdadelta/basic_1/csubst0/clear.ma
matita/matita/contribs/lambdadelta/basic_1/csubst0/defs.ma
matita/matita/contribs/lambdadelta/basic_1/csubst0/drop.ma
matita/matita/contribs/lambdadelta/basic_1/csubst0/fwd.ma
matita/matita/contribs/lambdadelta/basic_1/csubst0/getl.ma
matita/matita/contribs/lambdadelta/basic_1/csubst0/props.ma
matita/matita/contribs/lambdadelta/basic_1/csubst1/defs.ma
matita/matita/contribs/lambdadelta/basic_1/csubst1/fwd.ma
matita/matita/contribs/lambdadelta/basic_1/csubst1/getl.ma
matita/matita/contribs/lambdadelta/basic_1/csubst1/props.ma
matita/matita/contribs/lambdadelta/basic_1/fsubst0/defs.ma
matita/matita/contribs/lambdadelta/basic_1/fsubst0/fwd.ma
matita/matita/contribs/lambdadelta/basic_1/subst1/defs.ma
matita/matita/contribs/lambdadelta/basic_1/subst1/fwd.ma
matita/matita/contribs/lambdadelta/basic_1/subst1/props.ma
matita/matita/contribs/lambdadelta/basic_1/subst1/subst1.ma

index 0700d7d482c79992303197ff2676df8cee85e1e9..82f3fd1fd1b542ab5ce68541b1edf41b94e414b0 100644 (file)
 
 (* This file was automatically generated: do not edit *********************)
 
-include "Basic-1/csubst0/props.ma".
+include "basic_1/csubst0/props.ma".
 
-include "Basic-1/csubst0/fwd.ma".
+include "basic_1/csubst0/fwd.ma".
 
-include "Basic-1/clear/fwd.ma".
+include "basic_1/clear/fwd.ma".
 
 theorem csubst0_clear_O:
  \forall (c1: C).(\forall (c2: C).(\forall (v: T).((csubst0 O v c1 c2) \to 
@@ -32,79 +32,74 @@ c)).(csubst0_gen_sort c2 v O n H (clear c2 c)))))))) (\lambda (c: C).(\lambda
 (H: ((\forall (c2: C).(\forall (v: T).((csubst0 O v c c2) \to (\forall (c0: 
 C).((clear c c0) \to (clear c2 c0)))))))).(\lambda (k: K).(\lambda (t: 
 T).(\lambda (c2: C).(\lambda (v: T).(\lambda (H0: (csubst0 O v (CHead c k t) 
-c2)).(\lambda (c0: C).(\lambda (H1: (clear (CHead c k t) c0)).(or3_ind (ex3_2 
-T nat (\lambda (_: T).(\lambda (j: nat).(eq nat O (s k j)))) (\lambda (u2: 
-T).(\lambda (_: nat).(eq C c2 (CHead c k u2)))) (\lambda (u2: T).(\lambda (j: 
-nat).(subst0 j v t u2)))) (ex3_2 C nat (\lambda (_: C).(\lambda (j: nat).(eq 
-nat O (s k j)))) (\lambda (c3: C).(\lambda (_: nat).(eq C c2 (CHead c3 k 
-t)))) (\lambda (c3: C).(\lambda (j: nat).(csubst0 j v c c3)))) (ex4_3 T C nat 
-(\lambda (_: T).(\lambda (_: C).(\lambda (j: nat).(eq nat O (s k j))))) 
-(\lambda (u2: T).(\lambda (c3: C).(\lambda (_: nat).(eq C c2 (CHead c3 k 
-u2))))) (\lambda (u2: T).(\lambda (_: C).(\lambda (j: nat).(subst0 j v t 
-u2)))) (\lambda (_: T).(\lambda (c3: C).(\lambda (j: nat).(csubst0 j v c 
-c3))))) (clear c2 c0) (\lambda (H2: (ex3_2 T nat (\lambda (_: T).(\lambda (j: 
-nat).(eq nat O (s k j)))) (\lambda (u2: T).(\lambda (_: nat).(eq C c2 (CHead 
-c k u2)))) (\lambda (u2: T).(\lambda (j: nat).(subst0 j v t 
-u2))))).(ex3_2_ind T nat (\lambda (_: T).(\lambda (j: nat).(eq nat O (s k 
+c2)).(\lambda (c0: C).(\lambda (H1: (clear (CHead c k t) c0)).(let H2 \def 
+(csubst0_gen_head k c c2 t v O H0) in (or3_ind (ex3_2 T nat (\lambda (_: 
+T).(\lambda (j: nat).(eq nat O (s k j)))) (\lambda (u2: T).(\lambda (_: 
+nat).(eq C c2 (CHead c k u2)))) (\lambda (u2: T).(\lambda (j: nat).(subst0 j 
+v t u2)))) (ex3_2 C nat (\lambda (_: C).(\lambda (j: nat).(eq nat O (s k 
+j)))) (\lambda (c3: C).(\lambda (_: nat).(eq C c2 (CHead c3 k t)))) (\lambda 
+(c3: C).(\lambda (j: nat).(csubst0 j v c c3)))) (ex4_3 T C nat (\lambda (_: 
+T).(\lambda (_: C).(\lambda (j: nat).(eq nat O (s k j))))) (\lambda (u2: 
+T).(\lambda (c3: C).(\lambda (_: nat).(eq C c2 (CHead c3 k u2))))) (\lambda 
+(u2: T).(\lambda (_: C).(\lambda (j: nat).(subst0 j v t u2)))) (\lambda (_: 
+T).(\lambda (c3: C).(\lambda (j: nat).(csubst0 j v c c3))))) (clear c2 c0) 
+(\lambda (H3: (ex3_2 T nat (\lambda (_: T).(\lambda (j: nat).(eq nat O (s k 
 j)))) (\lambda (u2: T).(\lambda (_: nat).(eq C c2 (CHead c k u2)))) (\lambda 
-(u2: T).(\lambda (j: nat).(subst0 j v t u2))) (clear c2 c0) (\lambda (x0: 
-T).(\lambda (x1: nat).(\lambda (H3: (eq nat O (s k x1))).(\lambda (H4: (eq C 
-c2 (CHead c k x0))).(\lambda (H5: (subst0 x1 v t x0)).(eq_ind_r C (CHead c k 
-x0) (\lambda (c3: C).(clear c3 c0)) (K_ind (\lambda (k0: K).((clear (CHead c 
-k0 t) c0) \to ((eq nat O (s k0 x1)) \to (clear (CHead c k0 x0) c0)))) 
-(\lambda (b: B).(\lambda (_: (clear (CHead c (Bind b) t) c0)).(\lambda (H7: 
-(eq nat O (s (Bind b) x1))).(let H8 \def (eq_ind nat O (\lambda (ee: 
-nat).(match ee in nat return (\lambda (_: nat).Prop) with [O \Rightarrow True 
-| (S _) \Rightarrow False])) I (S x1) H7) in (False_ind (clear (CHead c (Bind 
-b) x0) c0) H8))))) (\lambda (f: F).(\lambda (H6: (clear (CHead c (Flat f) t) 
-c0)).(\lambda (H7: (eq nat O (s (Flat f) x1))).(let H8 \def (eq_ind_r nat x1 
-(\lambda (n: nat).(subst0 n v t x0)) H5 O H7) in (clear_flat c c0 
-(clear_gen_flat f c c0 t H6) f x0))))) k H1 H3) c2 H4)))))) H2)) (\lambda 
-(H2: (ex3_2 C nat (\lambda (_: C).(\lambda (j: nat).(eq nat O (s k j)))) 
+(u2: T).(\lambda (j: nat).(subst0 j v t u2))))).(ex3_2_ind T nat (\lambda (_: 
+T).(\lambda (j: nat).(eq nat O (s k j)))) (\lambda (u2: T).(\lambda (_: 
+nat).(eq C c2 (CHead c k u2)))) (\lambda (u2: T).(\lambda (j: nat).(subst0 j 
+v t u2))) (clear c2 c0) (\lambda (x0: T).(\lambda (x1: nat).(\lambda (H4: (eq 
+nat O (s k x1))).(\lambda (H5: (eq C c2 (CHead c k x0))).(\lambda (H6: 
+(subst0 x1 v t x0)).(eq_ind_r C (CHead c k x0) (\lambda (c3: C).(clear c3 
+c0)) (K_ind (\lambda (k0: K).((clear (CHead c k0 t) c0) \to ((eq nat O (s k0 
+x1)) \to (clear (CHead c k0 x0) c0)))) (\lambda (b: B).(\lambda (_: (clear 
+(CHead c (Bind b) t) c0)).(\lambda (H8: (eq nat O (s (Bind b) x1))).(let H9 
+\def (eq_ind nat O (\lambda (ee: nat).(match ee with [O \Rightarrow True | (S 
+_) \Rightarrow False])) I (S x1) H8) in (False_ind (clear (CHead c (Bind b) 
+x0) c0) H9))))) (\lambda (f: F).(\lambda (H7: (clear (CHead c (Flat f) t) 
+c0)).(\lambda (H8: (eq nat O (s (Flat f) x1))).(let H9 \def (eq_ind_r nat x1 
+(\lambda (n: nat).(subst0 n v t x0)) H6 O H8) in (clear_flat c c0 
+(clear_gen_flat f c c0 t H7) f x0))))) k H1 H4) c2 H5)))))) H3)) (\lambda 
+(H3: (ex3_2 C nat (\lambda (_: C).(\lambda (j: nat).(eq nat O (s k j)))) 
 (\lambda (c3: C).(\lambda (_: nat).(eq C c2 (CHead c3 k t)))) (\lambda (c3: 
 C).(\lambda (j: nat).(csubst0 j v c c3))))).(ex3_2_ind C nat (\lambda (_: 
 C).(\lambda (j: nat).(eq nat O (s k j)))) (\lambda (c3: C).(\lambda (_: 
 nat).(eq C c2 (CHead c3 k t)))) (\lambda (c3: C).(\lambda (j: nat).(csubst0 j 
-v c c3))) (clear c2 c0) (\lambda (x0: C).(\lambda (x1: nat).(\lambda (H3: (eq 
-nat O (s k x1))).(\lambda (H4: (eq C c2 (CHead x0 k t))).(\lambda (H5
+v c c3))) (clear c2 c0) (\lambda (x0: C).(\lambda (x1: nat).(\lambda (H4: (eq 
+nat O (s k x1))).(\lambda (H5: (eq C c2 (CHead x0 k t))).(\lambda (H6
 (csubst0 x1 v c x0)).(eq_ind_r C (CHead x0 k t) (\lambda (c3: C).(clear c3 
 c0)) (K_ind (\lambda (k0: K).((clear (CHead c k0 t) c0) \to ((eq nat O (s k0 
 x1)) \to (clear (CHead x0 k0 t) c0)))) (\lambda (b: B).(\lambda (_: (clear 
-(CHead c (Bind b) t) c0)).(\lambda (H7: (eq nat O (s (Bind b) x1))).(let H8 
-\def (eq_ind nat O (\lambda (ee: nat).(match ee in nat return (\lambda (_: 
-nat).Prop) with [O \Rightarrow True | (S _) \Rightarrow False])) I (S x1) H7) 
-in (False_ind (clear (CHead x0 (Bind b) t) c0) H8))))) (\lambda (f: 
-F).(\lambda (H6: (clear (CHead c (Flat f) t) c0)).(\lambda (H7: (eq nat O (s 
-(Flat f) x1))).(let H8 \def (eq_ind_r nat x1 (\lambda (n: nat).(csubst0 n v c 
-x0)) H5 O H7) in (clear_flat x0 c0 (H x0 v H8 c0 (clear_gen_flat f c c0 t 
-H6)) f t))))) k H1 H3) c2 H4)))))) H2)) (\lambda (H2: (ex4_3 T C nat (\lambda 
-(_: T).(\lambda (_: C).(\lambda (j: nat).(eq nat O (s k j))))) (\lambda (u2: 
-T).(\lambda (c3: C).(\lambda (_: nat).(eq C c2 (CHead c3 k u2))))) (\lambda 
-(u2: T).(\lambda (_: C).(\lambda (j: nat).(subst0 j v t u2)))) (\lambda (_: 
-T).(\lambda (c3: C).(\lambda (j: nat).(csubst0 j v c c3)))))).(ex4_3_ind T C 
-nat (\lambda (_: T).(\lambda (_: C).(\lambda (j: nat).(eq nat O (s k j))))) 
-(\lambda (u2: T).(\lambda (c3: C).(\lambda (_: nat).(eq C c2 (CHead c3 k 
-u2))))) (\lambda (u2: T).(\lambda (_: C).(\lambda (j: nat).(subst0 j v t 
-u2)))) (\lambda (_: T).(\lambda (c3: C).(\lambda (j: nat).(csubst0 j v c 
-c3)))) (clear c2 c0) (\lambda (x0: T).(\lambda (x1: C).(\lambda (x2: 
-nat).(\lambda (H3: (eq nat O (s k x2))).(\lambda (H4: (eq C c2 (CHead x1 k 
-x0))).(\lambda (H5: (subst0 x2 v t x0)).(\lambda (H6: (csubst0 x2 v c 
-x1)).(eq_ind_r C (CHead x1 k x0) (\lambda (c3: C).(clear c3 c0)) (K_ind 
-(\lambda (k0: K).((clear (CHead c k0 t) c0) \to ((eq nat O (s k0 x2)) \to 
-(clear (CHead x1 k0 x0) c0)))) (\lambda (b: B).(\lambda (_: (clear (CHead c 
-(Bind b) t) c0)).(\lambda (H8: (eq nat O (s (Bind b) x2))).(let H9 \def 
-(eq_ind nat O (\lambda (ee: nat).(match ee in nat return (\lambda (_: 
-nat).Prop) with [O \Rightarrow True | (S _) \Rightarrow False])) I (S x2) H8) 
-in (False_ind (clear (CHead x1 (Bind b) x0) c0) H9))))) (\lambda (f: 
-F).(\lambda (H7: (clear (CHead c (Flat f) t) c0)).(\lambda (H8: (eq nat O (s 
-(Flat f) x2))).(let H9 \def (eq_ind_r nat x2 (\lambda (n: nat).(csubst0 n v c 
-x1)) H6 O H8) in (let H10 \def (eq_ind_r nat x2 (\lambda (n: nat).(subst0 n v 
-t x0)) H5 O H8) in (clear_flat x1 c0 (H x1 v H9 c0 (clear_gen_flat f c c0 t 
-H7)) f x0)))))) k H1 H3) c2 H4)))))))) H2)) (csubst0_gen_head k c c2 t v O 
-H0))))))))))) c1).
-(* COMMENTS
-Initial nodes: 1582
-END *)
+(CHead c (Bind b) t) c0)).(\lambda (H8: (eq nat O (s (Bind b) x1))).(let H9 
+\def (eq_ind nat O (\lambda (ee: nat).(match ee with [O \Rightarrow True | (S 
+_) \Rightarrow False])) I (S x1) H8) in (False_ind (clear (CHead x0 (Bind b) 
+t) c0) H9))))) (\lambda (f: F).(\lambda (H7: (clear (CHead c (Flat f) t) 
+c0)).(\lambda (H8: (eq nat O (s (Flat f) x1))).(let H9 \def (eq_ind_r nat x1 
+(\lambda (n: nat).(csubst0 n v c x0)) H6 O H8) in (clear_flat x0 c0 (H x0 v 
+H9 c0 (clear_gen_flat f c c0 t H7)) f t))))) k H1 H4) c2 H5)))))) H3)) 
+(\lambda (H3: (ex4_3 T C nat (\lambda (_: T).(\lambda (_: C).(\lambda (j: 
+nat).(eq nat O (s k j))))) (\lambda (u2: T).(\lambda (c3: C).(\lambda (_: 
+nat).(eq C c2 (CHead c3 k u2))))) (\lambda (u2: T).(\lambda (_: C).(\lambda 
+(j: nat).(subst0 j v t u2)))) (\lambda (_: T).(\lambda (c3: C).(\lambda (j: 
+nat).(csubst0 j v c c3)))))).(ex4_3_ind T C nat (\lambda (_: T).(\lambda (_: 
+C).(\lambda (j: nat).(eq nat O (s k j))))) (\lambda (u2: T).(\lambda (c3: 
+C).(\lambda (_: nat).(eq C c2 (CHead c3 k u2))))) (\lambda (u2: T).(\lambda 
+(_: C).(\lambda (j: nat).(subst0 j v t u2)))) (\lambda (_: T).(\lambda (c3: 
+C).(\lambda (j: nat).(csubst0 j v c c3)))) (clear c2 c0) (\lambda (x0: 
+T).(\lambda (x1: C).(\lambda (x2: nat).(\lambda (H4: (eq nat O (s k 
+x2))).(\lambda (H5: (eq C c2 (CHead x1 k x0))).(\lambda (H6: (subst0 x2 v t 
+x0)).(\lambda (H7: (csubst0 x2 v c x1)).(eq_ind_r C (CHead x1 k x0) (\lambda 
+(c3: C).(clear c3 c0)) (K_ind (\lambda (k0: K).((clear (CHead c k0 t) c0) \to 
+((eq nat O (s k0 x2)) \to (clear (CHead x1 k0 x0) c0)))) (\lambda (b: 
+B).(\lambda (_: (clear (CHead c (Bind b) t) c0)).(\lambda (H9: (eq nat O (s 
+(Bind b) x2))).(let H10 \def (eq_ind nat O (\lambda (ee: nat).(match ee with 
+[O \Rightarrow True | (S _) \Rightarrow False])) I (S x2) H9) in (False_ind 
+(clear (CHead x1 (Bind b) x0) c0) H10))))) (\lambda (f: F).(\lambda (H8: 
+(clear (CHead c (Flat f) t) c0)).(\lambda (H9: (eq nat O (s (Flat f) 
+x2))).(let H10 \def (eq_ind_r nat x2 (\lambda (n: nat).(csubst0 n v c x1)) H7 
+O H9) in (let H11 \def (eq_ind_r nat x2 (\lambda (n: nat).(subst0 n v t x0)) 
+H6 O H9) in (clear_flat x1 c0 (H x1 v H10 c0 (clear_gen_flat f c c0 t H8)) f 
+x0)))))) k H1 H4) c2 H5)))))))) H3)) H2))))))))))) c1).
 
 theorem csubst0_clear_O_back:
  \forall (c1: C).(\forall (c2: C).(\forall (v: T).((csubst0 O v c1 c2) \to 
@@ -118,80 +113,75 @@ c)).(csubst0_gen_sort c2 v O n H (clear (CSort n) c)))))))) (\lambda (c:
 C).(\lambda (H: ((\forall (c2: C).(\forall (v: T).((csubst0 O v c c2) \to 
 (\forall (c0: C).((clear c2 c0) \to (clear c c0)))))))).(\lambda (k: 
 K).(\lambda (t: T).(\lambda (c2: C).(\lambda (v: T).(\lambda (H0: (csubst0 O 
-v (CHead c k t) c2)).(\lambda (c0: C).(\lambda (H1: (clear c2 c0)).(or3_ind 
-(ex3_2 T nat (\lambda (_: T).(\lambda (j: nat).(eq nat O (s k j)))) (\lambda 
-(u2: T).(\lambda (_: nat).(eq C c2 (CHead c k u2)))) (\lambda (u2: 
-T).(\lambda (j: nat).(subst0 j v t u2)))) (ex3_2 C nat (\lambda (_: 
-C).(\lambda (j: nat).(eq nat O (s k j)))) (\lambda (c3: C).(\lambda (_: 
-nat).(eq C c2 (CHead c3 k t)))) (\lambda (c3: C).(\lambda (j: nat).(csubst0 j 
-v c c3)))) (ex4_3 T C nat (\lambda (_: T).(\lambda (_: C).(\lambda (j: 
-nat).(eq nat O (s k j))))) (\lambda (u2: T).(\lambda (c3: C).(\lambda (_: 
-nat).(eq C c2 (CHead c3 k u2))))) (\lambda (u2: T).(\lambda (_: C).(\lambda 
-(j: nat).(subst0 j v t u2)))) (\lambda (_: T).(\lambda (c3: C).(\lambda (j: 
-nat).(csubst0 j v c c3))))) (clear (CHead c k t) c0) (\lambda (H2: (ex3_2 T 
-nat (\lambda (_: T).(\lambda (j: nat).(eq nat O (s k j)))) (\lambda (u2: 
+v (CHead c k t) c2)).(\lambda (c0: C).(\lambda (H1: (clear c2 c0)).(let H2 
+\def (csubst0_gen_head k c c2 t v O H0) in (or3_ind (ex3_2 T nat (\lambda (_: 
+T).(\lambda (j: nat).(eq nat O (s k j)))) (\lambda (u2: T).(\lambda (_: 
+nat).(eq C c2 (CHead c k u2)))) (\lambda (u2: T).(\lambda (j: nat).(subst0 j 
+v t u2)))) (ex3_2 C nat (\lambda (_: C).(\lambda (j: nat).(eq nat O (s k 
+j)))) (\lambda (c3: C).(\lambda (_: nat).(eq C c2 (CHead c3 k t)))) (\lambda 
+(c3: C).(\lambda (j: nat).(csubst0 j v c c3)))) (ex4_3 T C nat (\lambda (_: 
+T).(\lambda (_: C).(\lambda (j: nat).(eq nat O (s k j))))) (\lambda (u2: 
+T).(\lambda (c3: C).(\lambda (_: nat).(eq C c2 (CHead c3 k u2))))) (\lambda 
+(u2: T).(\lambda (_: C).(\lambda (j: nat).(subst0 j v t u2)))) (\lambda (_: 
+T).(\lambda (c3: C).(\lambda (j: nat).(csubst0 j v c c3))))) (clear (CHead c 
+k t) c0) (\lambda (H3: (ex3_2 T nat (\lambda (_: T).(\lambda (j: nat).(eq nat 
+O (s k j)))) (\lambda (u2: T).(\lambda (_: nat).(eq C c2 (CHead c k u2)))) 
+(\lambda (u2: T).(\lambda (j: nat).(subst0 j v t u2))))).(ex3_2_ind T nat 
+(\lambda (_: T).(\lambda (j: nat).(eq nat O (s k j)))) (\lambda (u2: 
 T).(\lambda (_: nat).(eq C c2 (CHead c k u2)))) (\lambda (u2: T).(\lambda (j: 
-nat).(subst0 j v t u2))))).(ex3_2_ind T nat (\lambda (_: T).(\lambda (j: 
-nat).(eq nat O (s k j)))) (\lambda (u2: T).(\lambda (_: nat).(eq C c2 (CHead 
-c k u2)))) (\lambda (u2: T).(\lambda (j: nat).(subst0 j v t u2))) (clear 
-(CHead c k t) c0) (\lambda (x0: T).(\lambda (x1: nat).(\lambda (H3: (eq nat O 
-(s k x1))).(\lambda (H4: (eq C c2 (CHead c k x0))).(\lambda (H5: (subst0 x1 v 
-t x0)).(let H6 \def (eq_ind C c2 (\lambda (c3: C).(clear c3 c0)) H1 (CHead c 
-k x0) H4) in (K_ind (\lambda (k0: K).((eq nat O (s k0 x1)) \to ((clear (CHead 
-c k0 x0) c0) \to (clear (CHead c k0 t) c0)))) (\lambda (b: B).(\lambda (H7: 
-(eq nat O (s (Bind b) x1))).(\lambda (_: (clear (CHead c (Bind b) x0) 
-c0)).(let H9 \def (eq_ind nat O (\lambda (ee: nat).(match ee in nat return 
-(\lambda (_: nat).Prop) with [O \Rightarrow True | (S _) \Rightarrow False])) 
-I (S x1) H7) in (False_ind (clear (CHead c (Bind b) t) c0) H9))))) (\lambda 
-(f: F).(\lambda (H7: (eq nat O (s (Flat f) x1))).(\lambda (H8: (clear (CHead 
-c (Flat f) x0) c0)).(let H9 \def (eq_ind_r nat x1 (\lambda (n: nat).(subst0 n 
-v t x0)) H5 O H7) in (clear_flat c c0 (clear_gen_flat f c c0 x0 H8) f t))))) 
-k H3 H6))))))) H2)) (\lambda (H2: (ex3_2 C nat (\lambda (_: C).(\lambda (j: 
+nat).(subst0 j v t u2))) (clear (CHead c k t) c0) (\lambda (x0: T).(\lambda 
+(x1: nat).(\lambda (H4: (eq nat O (s k x1))).(\lambda (H5: (eq C c2 (CHead c 
+k x0))).(\lambda (H6: (subst0 x1 v t x0)).(let H7 \def (eq_ind C c2 (\lambda 
+(c3: C).(clear c3 c0)) H1 (CHead c k x0) H5) in (K_ind (\lambda (k0: K).((eq 
+nat O (s k0 x1)) \to ((clear (CHead c k0 x0) c0) \to (clear (CHead c k0 t) 
+c0)))) (\lambda (b: B).(\lambda (H8: (eq nat O (s (Bind b) x1))).(\lambda (_: 
+(clear (CHead c (Bind b) x0) c0)).(let H10 \def (eq_ind nat O (\lambda (ee: 
+nat).(match ee with [O \Rightarrow True | (S _) \Rightarrow False])) I (S x1) 
+H8) in (False_ind (clear (CHead c (Bind b) t) c0) H10))))) (\lambda (f: 
+F).(\lambda (H8: (eq nat O (s (Flat f) x1))).(\lambda (H9: (clear (CHead c 
+(Flat f) x0) c0)).(let H10 \def (eq_ind_r nat x1 (\lambda (n: nat).(subst0 n 
+v t x0)) H6 O H8) in (clear_flat c c0 (clear_gen_flat f c c0 x0 H9) f t))))) 
+k H4 H7))))))) H3)) (\lambda (H3: (ex3_2 C nat (\lambda (_: C).(\lambda (j: 
 nat).(eq nat O (s k j)))) (\lambda (c3: C).(\lambda (_: nat).(eq C c2 (CHead 
 c3 k t)))) (\lambda (c3: C).(\lambda (j: nat).(csubst0 j v c 
 c3))))).(ex3_2_ind C nat (\lambda (_: C).(\lambda (j: nat).(eq nat O (s k 
 j)))) (\lambda (c3: C).(\lambda (_: nat).(eq C c2 (CHead c3 k t)))) (\lambda 
 (c3: C).(\lambda (j: nat).(csubst0 j v c c3))) (clear (CHead c k t) c0) 
-(\lambda (x0: C).(\lambda (x1: nat).(\lambda (H3: (eq nat O (s k 
-x1))).(\lambda (H4: (eq C c2 (CHead x0 k t))).(\lambda (H5: (csubst0 x1 v c 
-x0)).(let H6 \def (eq_ind C c2 (\lambda (c3: C).(clear c3 c0)) H1 (CHead x0 k 
-t) H4) in (K_ind (\lambda (k0: K).((eq nat O (s k0 x1)) \to ((clear (CHead x0 
-k0 t) c0) \to (clear (CHead c k0 t) c0)))) (\lambda (b: B).(\lambda (H7: (eq 
+(\lambda (x0: C).(\lambda (x1: nat).(\lambda (H4: (eq nat O (s k 
+x1))).(\lambda (H5: (eq C c2 (CHead x0 k t))).(\lambda (H6: (csubst0 x1 v c 
+x0)).(let H7 \def (eq_ind C c2 (\lambda (c3: C).(clear c3 c0)) H1 (CHead x0 k 
+t) H5) in (K_ind (\lambda (k0: K).((eq nat O (s k0 x1)) \to ((clear (CHead x0 
+k0 t) c0) \to (clear (CHead c k0 t) c0)))) (\lambda (b: B).(\lambda (H8: (eq 
 nat O (s (Bind b) x1))).(\lambda (_: (clear (CHead x0 (Bind b) t) c0)).(let 
-H9 \def (eq_ind nat O (\lambda (ee: nat).(match ee in nat return (\lambda (_: 
-nat).Prop) with [O \Rightarrow True | (S _) \Rightarrow False])) I (S x1) H7) 
-in (False_ind (clear (CHead c (Bind b) t) c0) H9))))) (\lambda (f: 
-F).(\lambda (H7: (eq nat O (s (Flat f) x1))).(\lambda (H8: (clear (CHead x0 
-(Flat f) t) c0)).(let H9 \def (eq_ind_r nat x1 (\lambda (n: nat).(csubst0 n v 
-c x0)) H5 O H7) in (clear_flat c c0 (H x0 v H9 c0 (clear_gen_flat f x0 c0 t 
-H8)) f t))))) k H3 H6))))))) H2)) (\lambda (H2: (ex4_3 T C nat (\lambda (_: 
-T).(\lambda (_: C).(\lambda (j: nat).(eq nat O (s k j))))) (\lambda (u2: 
-T).(\lambda (c3: C).(\lambda (_: nat).(eq C c2 (CHead c3 k u2))))) (\lambda 
-(u2: T).(\lambda (_: C).(\lambda (j: nat).(subst0 j v t u2)))) (\lambda (_: 
-T).(\lambda (c3: C).(\lambda (j: nat).(csubst0 j v c c3)))))).(ex4_3_ind T C 
-nat (\lambda (_: T).(\lambda (_: C).(\lambda (j: nat).(eq nat O (s k j))))) 
-(\lambda (u2: T).(\lambda (c3: C).(\lambda (_: nat).(eq C c2 (CHead c3 k 
-u2))))) (\lambda (u2: T).(\lambda (_: C).(\lambda (j: nat).(subst0 j v t 
-u2)))) (\lambda (_: T).(\lambda (c3: C).(\lambda (j: nat).(csubst0 j v c 
-c3)))) (clear (CHead c k t) c0) (\lambda (x0: T).(\lambda (x1: C).(\lambda 
-(x2: nat).(\lambda (H3: (eq nat O (s k x2))).(\lambda (H4: (eq C c2 (CHead x1 
-k x0))).(\lambda (H5: (subst0 x2 v t x0)).(\lambda (H6: (csubst0 x2 v c 
-x1)).(let H7 \def (eq_ind C c2 (\lambda (c3: C).(clear c3 c0)) H1 (CHead x1 k 
-x0) H4) in (K_ind (\lambda (k0: K).((eq nat O (s k0 x2)) \to ((clear (CHead 
-x1 k0 x0) c0) \to (clear (CHead c k0 t) c0)))) (\lambda (b: B).(\lambda (H8: 
-(eq nat O (s (Bind b) x2))).(\lambda (_: (clear (CHead x1 (Bind b) x0) 
-c0)).(let H10 \def (eq_ind nat O (\lambda (ee: nat).(match ee in nat return 
-(\lambda (_: nat).Prop) with [O \Rightarrow True | (S _) \Rightarrow False])) 
-I (S x2) H8) in (False_ind (clear (CHead c (Bind b) t) c0) H10))))) (\lambda 
-(f: F).(\lambda (H8: (eq nat O (s (Flat f) x2))).(\lambda (H9: (clear (CHead 
-x1 (Flat f) x0) c0)).(let H10 \def (eq_ind_r nat x2 (\lambda (n: 
-nat).(csubst0 n v c x1)) H6 O H8) in (let H11 \def (eq_ind_r nat x2 (\lambda 
-(n: nat).(subst0 n v t x0)) H5 O H8) in (clear_flat c c0 (H x1 v H10 c0 
-(clear_gen_flat f x1 c0 x0 H9)) f t)))))) k H3 H7))))))))) H2)) 
-(csubst0_gen_head k c c2 t v O H0))))))))))) c1).
-(* COMMENTS
-Initial nodes: 1606
-END *)
+H10 \def (eq_ind nat O (\lambda (ee: nat).(match ee with [O \Rightarrow True 
+| (S _) \Rightarrow False])) I (S x1) H8) in (False_ind (clear (CHead c (Bind 
+b) t) c0) H10))))) (\lambda (f: F).(\lambda (H8: (eq nat O (s (Flat f) 
+x1))).(\lambda (H9: (clear (CHead x0 (Flat f) t) c0)).(let H10 \def (eq_ind_r 
+nat x1 (\lambda (n: nat).(csubst0 n v c x0)) H6 O H8) in (clear_flat c c0 (H 
+x0 v H10 c0 (clear_gen_flat f x0 c0 t H9)) f t))))) k H4 H7))))))) H3)) 
+(\lambda (H3: (ex4_3 T C nat (\lambda (_: T).(\lambda (_: C).(\lambda (j: 
+nat).(eq nat O (s k j))))) (\lambda (u2: T).(\lambda (c3: C).(\lambda (_: 
+nat).(eq C c2 (CHead c3 k u2))))) (\lambda (u2: T).(\lambda (_: C).(\lambda 
+(j: nat).(subst0 j v t u2)))) (\lambda (_: T).(\lambda (c3: C).(\lambda (j: 
+nat).(csubst0 j v c c3)))))).(ex4_3_ind T C nat (\lambda (_: T).(\lambda (_: 
+C).(\lambda (j: nat).(eq nat O (s k j))))) (\lambda (u2: T).(\lambda (c3: 
+C).(\lambda (_: nat).(eq C c2 (CHead c3 k u2))))) (\lambda (u2: T).(\lambda 
+(_: C).(\lambda (j: nat).(subst0 j v t u2)))) (\lambda (_: T).(\lambda (c3: 
+C).(\lambda (j: nat).(csubst0 j v c c3)))) (clear (CHead c k t) c0) (\lambda 
+(x0: T).(\lambda (x1: C).(\lambda (x2: nat).(\lambda (H4: (eq nat O (s k 
+x2))).(\lambda (H5: (eq C c2 (CHead x1 k x0))).(\lambda (H6: (subst0 x2 v t 
+x0)).(\lambda (H7: (csubst0 x2 v c x1)).(let H8 \def (eq_ind C c2 (\lambda 
+(c3: C).(clear c3 c0)) H1 (CHead x1 k x0) H5) in (K_ind (\lambda (k0: K).((eq 
+nat O (s k0 x2)) \to ((clear (CHead x1 k0 x0) c0) \to (clear (CHead c k0 t) 
+c0)))) (\lambda (b: B).(\lambda (H9: (eq nat O (s (Bind b) x2))).(\lambda (_: 
+(clear (CHead x1 (Bind b) x0) c0)).(let H11 \def (eq_ind nat O (\lambda (ee: 
+nat).(match ee with [O \Rightarrow True | (S _) \Rightarrow False])) I (S x2) 
+H9) in (False_ind (clear (CHead c (Bind b) t) c0) H11))))) (\lambda (f: 
+F).(\lambda (H9: (eq nat O (s (Flat f) x2))).(\lambda (H10: (clear (CHead x1 
+(Flat f) x0) c0)).(let H11 \def (eq_ind_r nat x2 (\lambda (n: nat).(csubst0 n 
+v c x1)) H7 O H9) in (let H12 \def (eq_ind_r nat x2 (\lambda (n: nat).(subst0 
+n v t x0)) H6 O H9) in (clear_flat c c0 (H x1 v H11 c0 (clear_gen_flat f x1 
+c0 x0 H10)) f t)))))) k H4 H8))))))))) H3)) H2))))))))))) c1).
 
 theorem csubst0_clear_S:
  \forall (c1: C).(\forall (c2: C).(\forall (v: T).(\forall (i: nat).((csubst0 
@@ -266,135 +256,135 @@ C).(\lambda (_: T).(\lambda (u2: T).(clear c2 (CHead e2 (Bind b) u2)))))))
 (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 i v e1 
 e2)))))))))))))))).(\lambda (k: K).(\lambda (t: T).(\lambda (c2: C).(\lambda 
 (v: T).(\lambda (i: nat).(\lambda (H0: (csubst0 (S i) v (CHead c k t) 
-c2)).(\lambda (c0: C).(\lambda (H1: (clear (CHead c k t) c0)).(or3_ind (ex3_2 
-T nat (\lambda (_: T).(\lambda (j: nat).(eq nat (S i) (s k j)))) (\lambda 
-(u2: T).(\lambda (_: nat).(eq C c2 (CHead c k u2)))) (\lambda (u2: 
-T).(\lambda (j: nat).(subst0 j v t u2)))) (ex3_2 C nat (\lambda (_: 
-C).(\lambda (j: nat).(eq nat (S i) (s k j)))) (\lambda (c3: C).(\lambda (_: 
-nat).(eq C c2 (CHead c3 k t)))) (\lambda (c3: C).(\lambda (j: nat).(csubst0 j 
-v c c3)))) (ex4_3 T C nat (\lambda (_: T).(\lambda (_: C).(\lambda (j: 
-nat).(eq nat (S i) (s k j))))) (\lambda (u2: T).(\lambda (c3: C).(\lambda (_: 
-nat).(eq C c2 (CHead c3 k u2))))) (\lambda (u2: T).(\lambda (_: C).(\lambda 
-(j: nat).(subst0 j v t u2)))) (\lambda (_: T).(\lambda (c3: C).(\lambda (j: 
-nat).(csubst0 j v c c3))))) (or4 (clear c2 c0) (ex3_4 B C T T (\lambda (b: 
-B).(\lambda (e: C).(\lambda (u1: T).(\lambda (_: T).(eq C c0 (CHead e (Bind 
-b) u1)))))) (\lambda (b: B).(\lambda (e: C).(\lambda (_: T).(\lambda (u2: 
-T).(clear c2 (CHead e (Bind b) u2)))))) (\lambda (_: B).(\lambda (_: 
+c2)).(\lambda (c0: C).(\lambda (H1: (clear (CHead c k t) c0)).(let H2 \def 
+(csubst0_gen_head k c c2 t v (S i) H0) in (or3_ind (ex3_2 T nat (\lambda (_: 
+T).(\lambda (j: nat).(eq nat (S i) (s k j)))) (\lambda (u2: T).(\lambda (_: 
+nat).(eq C c2 (CHead c k u2)))) (\lambda (u2: T).(\lambda (j: nat).(subst0 j 
+v t u2)))) (ex3_2 C nat (\lambda (_: C).(\lambda (j: nat).(eq nat (S i) (s k 
+j)))) (\lambda (c3: C).(\lambda (_: nat).(eq C c2 (CHead c3 k t)))) (\lambda 
+(c3: C).(\lambda (j: nat).(csubst0 j v c c3)))) (ex4_3 T C nat (\lambda (_: 
+T).(\lambda (_: C).(\lambda (j: nat).(eq nat (S i) (s k j))))) (\lambda (u2: 
+T).(\lambda (c3: C).(\lambda (_: nat).(eq C c2 (CHead c3 k u2))))) (\lambda 
+(u2: T).(\lambda (_: C).(\lambda (j: nat).(subst0 j v t u2)))) (\lambda (_: 
+T).(\lambda (c3: C).(\lambda (j: nat).(csubst0 j v c c3))))) (or4 (clear c2 
+c0) (ex3_4 B C T T (\lambda (b: B).(\lambda (e: C).(\lambda (u1: T).(\lambda 
+(_: T).(eq C c0 (CHead e (Bind b) u1)))))) (\lambda (b: B).(\lambda (e: 
+C).(\lambda (_: T).(\lambda (u2: T).(clear c2 (CHead e (Bind b) u2)))))) 
+(\lambda (_: B).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 i v 
+u1 u2)))))) (ex3_4 B C C T (\lambda (b: B).(\lambda (e1: C).(\lambda (_: 
+C).(\lambda (u: T).(eq C c0 (CHead e1 (Bind b) u)))))) (\lambda (b: 
+B).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(clear c2 (CHead e2 (Bind 
+b) u)))))) (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: 
+T).(csubst0 i v e1 e2)))))) (ex4_5 B C C T T (\lambda (b: B).(\lambda (e1: 
+C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(eq C c0 (CHead e1 (Bind 
+b) u1))))))) (\lambda (b: B).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: 
+T).(\lambda (u2: T).(clear c2 (CHead e2 (Bind b) u2))))))) (\lambda (_: 
+B).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 
+i v u1 u2)))))) (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: C).(\lambda 
+(_: T).(\lambda (_: T).(csubst0 i v e1 e2)))))))) (\lambda (H3: (ex3_2 T nat 
+(\lambda (_: T).(\lambda (j: nat).(eq nat (S i) (s k j)))) (\lambda (u2: 
+T).(\lambda (_: nat).(eq C c2 (CHead c k u2)))) (\lambda (u2: T).(\lambda (j: 
+nat).(subst0 j v t u2))))).(ex3_2_ind T nat (\lambda (_: T).(\lambda (j: 
+nat).(eq nat (S i) (s k j)))) (\lambda (u2: T).(\lambda (_: nat).(eq C c2 
+(CHead c k u2)))) (\lambda (u2: T).(\lambda (j: nat).(subst0 j v t u2))) (or4 
+(clear c2 c0) (ex3_4 B C T T (\lambda (b: B).(\lambda (e: C).(\lambda (u1: 
+T).(\lambda (_: T).(eq C c0 (CHead e (Bind b) u1)))))) (\lambda (b: 
+B).(\lambda (e: C).(\lambda (_: T).(\lambda (u2: T).(clear c2 (CHead e (Bind 
+b) u2)))))) (\lambda (_: B).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: 
+T).(subst0 i v u1 u2)))))) (ex3_4 B C C T (\lambda (b: B).(\lambda (e1: 
+C).(\lambda (_: C).(\lambda (u: T).(eq C c0 (CHead e1 (Bind b) u)))))) 
+(\lambda (b: B).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(clear c2 
+(CHead e2 (Bind b) u)))))) (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: 
+C).(\lambda (_: T).(csubst0 i v e1 e2)))))) (ex4_5 B C C T T (\lambda (b: 
+B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(eq C c0 
+(CHead e1 (Bind b) u1))))))) (\lambda (b: B).(\lambda (_: C).(\lambda (e2: 
+C).(\lambda (_: T).(\lambda (u2: T).(clear c2 (CHead e2 (Bind b) u2))))))) 
+(\lambda (_: B).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda 
+(u2: T).(subst0 i v u1 u2)))))) (\lambda (_: B).(\lambda (e1: C).(\lambda 
+(e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 i v e1 e2)))))))) (\lambda 
+(x0: T).(\lambda (x1: nat).(\lambda (H4: (eq nat (S i) (s k x1))).(\lambda 
+(H5: (eq C c2 (CHead c k x0))).(\lambda (H6: (subst0 x1 v t x0)).(eq_ind_r C 
+(CHead c k x0) (\lambda (c3: C).(or4 (clear c3 c0) (ex3_4 B C T T (\lambda 
+(b: B).(\lambda (e: C).(\lambda (u1: T).(\lambda (_: T).(eq C c0 (CHead e 
+(Bind b) u1)))))) (\lambda (b: B).(\lambda (e: C).(\lambda (_: T).(\lambda 
+(u2: T).(clear c3 (CHead e (Bind b) u2)))))) (\lambda (_: B).(\lambda (_: 
 C).(\lambda (u1: T).(\lambda (u2: T).(subst0 i v u1 u2)))))) (ex3_4 B C C T 
 (\lambda (b: B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(eq C c0 
 (CHead e1 (Bind b) u)))))) (\lambda (b: B).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (u: T).(clear c2 (CHead e2 (Bind b) u)))))) (\lambda (_: 
+C).(\lambda (u: T).(clear c3 (CHead e2 (Bind b) u)))))) (\lambda (_: 
 B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 i v e1 e2)))))) 
 (ex4_5 B C C T T (\lambda (b: B).(\lambda (e1: C).(\lambda (_: C).(\lambda 
 (u1: T).(\lambda (_: T).(eq C c0 (CHead e1 (Bind b) u1))))))) (\lambda (b: 
 B).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (u2: T).(clear 
-c2 (CHead e2 (Bind b) u2))))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: 
+c3 (CHead e2 (Bind b) u2))))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: 
 C).(\lambda (u1: T).(\lambda (u2: T).(subst0 i v u1 u2)))))) (\lambda (_: 
 B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 
-i v e1 e2)))))))) (\lambda (H2: (ex3_2 T nat (\lambda (_: T).(\lambda (j: 
-nat).(eq nat (S i) (s k j)))) (\lambda (u2: T).(\lambda (_: nat).(eq C c2 
-(CHead c k u2)))) (\lambda (u2: T).(\lambda (j: nat).(subst0 j v t 
-u2))))).(ex3_2_ind T nat (\lambda (_: T).(\lambda (j: nat).(eq nat (S i) (s k 
-j)))) (\lambda (u2: T).(\lambda (_: nat).(eq C c2 (CHead c k u2)))) (\lambda 
-(u2: T).(\lambda (j: nat).(subst0 j v t u2))) (or4 (clear c2 c0) (ex3_4 B C T 
-T (\lambda (b: B).(\lambda (e: C).(\lambda (u1: T).(\lambda (_: T).(eq C c0 
+i v e1 e2))))))))) (K_ind (\lambda (k0: K).((clear (CHead c k0 t) c0) \to 
+((eq nat (S i) (s k0 x1)) \to (or4 (clear (CHead c k0 x0) c0) (ex3_4 B C T T 
+(\lambda (b: B).(\lambda (e: C).(\lambda (u1: T).(\lambda (_: T).(eq C c0 
 (CHead e (Bind b) u1)))))) (\lambda (b: B).(\lambda (e: C).(\lambda (_: 
-T).(\lambda (u2: T).(clear c2 (CHead e (Bind b) u2)))))) (\lambda (_: 
-B).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 i v u1 u2)))))) 
-(ex3_4 B C C T (\lambda (b: B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: 
-T).(eq C c0 (CHead e1 (Bind b) u)))))) (\lambda (b: B).(\lambda (_: 
-C).(\lambda (e2: C).(\lambda (u: T).(clear c2 (CHead e2 (Bind b) u)))))) 
-(\lambda (_: B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 i 
-v e1 e2)))))) (ex4_5 B C C T T (\lambda (b: B).(\lambda (e1: C).(\lambda (_: 
-C).(\lambda (u1: T).(\lambda (_: T).(eq C c0 (CHead e1 (Bind b) u1))))))) 
-(\lambda (b: B).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
-(u2: T).(clear c2 (CHead e2 (Bind b) u2))))))) (\lambda (_: B).(\lambda (_: 
-C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 i v u1 u2)))))) 
-(\lambda (_: B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
-(_: T).(csubst0 i v e1 e2)))))))) (\lambda (x0: T).(\lambda (x1: 
-nat).(\lambda (H3: (eq nat (S i) (s k x1))).(\lambda (H4: (eq C c2 (CHead c k 
-x0))).(\lambda (H5: (subst0 x1 v t x0)).(eq_ind_r C (CHead c k x0) (\lambda 
-(c3: C).(or4 (clear c3 c0) (ex3_4 B C T T (\lambda (b: B).(\lambda (e: 
-C).(\lambda (u1: T).(\lambda (_: T).(eq C c0 (CHead e (Bind b) u1)))))) 
-(\lambda (b: B).(\lambda (e: C).(\lambda (_: T).(\lambda (u2: T).(clear c3 
-(CHead e (Bind b) u2)))))) (\lambda (_: B).(\lambda (_: C).(\lambda (u1: 
-T).(\lambda (u2: T).(subst0 i v u1 u2)))))) (ex3_4 B C C T (\lambda (b: 
-B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(eq C c0 (CHead e1 (Bind 
-b) u)))))) (\lambda (b: B).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: 
-T).(clear c3 (CHead e2 (Bind b) u)))))) (\lambda (_: B).(\lambda (e1: 
-C).(\lambda (e2: C).(\lambda (_: T).(csubst0 i v e1 e2)))))) (ex4_5 B C C T T 
-(\lambda (b: B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda 
-(_: T).(eq C c0 (CHead e1 (Bind b) u1))))))) (\lambda (b: B).(\lambda (_: 
-C).(\lambda (e2: C).(\lambda (_: T).(\lambda (u2: T).(clear c3 (CHead e2 
-(Bind b) u2))))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: C).(\lambda 
-(u1: T).(\lambda (u2: T).(subst0 i v u1 u2)))))) (\lambda (_: B).(\lambda 
-(e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 i v e1 
-e2))))))))) (K_ind (\lambda (k0: K).((clear (CHead c k0 t) c0) \to ((eq nat 
-(S i) (s k0 x1)) \to (or4 (clear (CHead c k0 x0) c0) (ex3_4 B C T T (\lambda 
-(b: B).(\lambda (e: C).(\lambda (u1: T).(\lambda (_: T).(eq C c0 (CHead e 
-(Bind b) u1)))))) (\lambda (b: B).(\lambda (e: C).(\lambda (_: T).(\lambda 
-(u2: T).(clear (CHead c k0 x0) (CHead e (Bind b) u2)))))) (\lambda (_: 
-B).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 i v u1 u2)))))) 
-(ex3_4 B C C T (\lambda (b: B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: 
-T).(eq C c0 (CHead e1 (Bind b) u)))))) (\lambda (b: B).(\lambda (_: 
-C).(\lambda (e2: C).(\lambda (u: T).(clear (CHead c k0 x0) (CHead e2 (Bind b) 
-u)))))) (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: 
-T).(csubst0 i v e1 e2)))))) (ex4_5 B C C T T (\lambda (b: B).(\lambda (e1: 
-C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(eq C c0 (CHead e1 (Bind 
-b) u1))))))) (\lambda (b: B).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: 
-T).(\lambda (u2: T).(clear (CHead c k0 x0) (CHead e2 (Bind b) u2))))))) 
-(\lambda (_: B).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda 
-(u2: T).(subst0 i v u1 u2)))))) (\lambda (_: B).(\lambda (e1: C).(\lambda 
-(e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 i v e1 e2))))))))))) 
-(\lambda (b: B).(\lambda (H6: (clear (CHead c (Bind b) t) c0)).(\lambda (H7: 
-(eq nat (S i) (s (Bind b) x1))).(let H8 \def (f_equal nat nat (\lambda (e: 
-nat).(match e in nat return (\lambda (_: nat).nat) with [O \Rightarrow i | (S 
-n) \Rightarrow n])) (S i) (S x1) H7) in (let H9 \def (eq_ind_r nat x1 
-(\lambda (n: nat).(subst0 n v t x0)) H5 i H8) in (eq_ind_r C (CHead c (Bind 
-b) t) (\lambda (c3: C).(or4 (clear (CHead c (Bind b) x0) c3) (ex3_4 B C T T 
-(\lambda (b0: B).(\lambda (e: C).(\lambda (u1: T).(\lambda (_: T).(eq C c3 
-(CHead e (Bind b0) u1)))))) (\lambda (b0: B).(\lambda (e: C).(\lambda (_: 
-T).(\lambda (u2: T).(clear (CHead c (Bind b) x0) (CHead e (Bind b0) u2)))))) 
+T).(\lambda (u2: T).(clear (CHead c k0 x0) (CHead e (Bind b) u2)))))) 
 (\lambda (_: B).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 i v 
-u1 u2)))))) (ex3_4 B C C T (\lambda (b0: B).(\lambda (e1: C).(\lambda (_: 
-C).(\lambda (u: T).(eq C c3 (CHead e1 (Bind b0) u)))))) (\lambda (b0: 
-B).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(clear (CHead c (Bind b) 
-x0) (CHead e2 (Bind b0) u)))))) (\lambda (_: B).(\lambda (e1: C).(\lambda 
-(e2: C).(\lambda (_: T).(csubst0 i v e1 e2)))))) (ex4_5 B C C T T (\lambda 
-(b0: B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(eq 
-C c3 (CHead e1 (Bind b0) u1))))))) (\lambda (b0: B).(\lambda (_: C).(\lambda 
-(e2: C).(\lambda (_: T).(\lambda (u2: T).(clear (CHead c (Bind b) x0) (CHead 
-e2 (Bind b0) u2))))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: 
-C).(\lambda (u1: T).(\lambda (u2: T).(subst0 i v u1 u2)))))) (\lambda (_: 
-B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 
-i v e1 e2))))))))) (or4_intro1 (clear (CHead c (Bind b) x0) (CHead c (Bind b) 
-t)) (ex3_4 B C T T (\lambda (b0: B).(\lambda (e: C).(\lambda (u1: T).(\lambda 
-(_: T).(eq C (CHead c (Bind b) t) (CHead e (Bind b0) u1)))))) (\lambda (b0: 
-B).(\lambda (e: C).(\lambda (_: T).(\lambda (u2: T).(clear (CHead c (Bind b) 
-x0) (CHead e (Bind b0) u2)))))) (\lambda (_: B).(\lambda (_: C).(\lambda (u1: 
-T).(\lambda (u2: T).(subst0 i v u1 u2)))))) (ex3_4 B C C T (\lambda (b0: 
-B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(eq C (CHead c (Bind b) 
-t) (CHead e1 (Bind b0) u)))))) (\lambda (b0: B).(\lambda (_: C).(\lambda (e2: 
+u1 u2)))))) (ex3_4 B C C T (\lambda (b: B).(\lambda (e1: C).(\lambda (_: 
+C).(\lambda (u: T).(eq C c0 (CHead e1 (Bind b) u)))))) (\lambda (b: 
+B).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(clear (CHead c k0 x0) 
+(CHead e2 (Bind b) u)))))) (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: 
+C).(\lambda (_: T).(csubst0 i v e1 e2)))))) (ex4_5 B C C T T (\lambda (b: 
+B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(eq C c0 
+(CHead e1 (Bind b) u1))))))) (\lambda (b: B).(\lambda (_: C).(\lambda (e2: 
+C).(\lambda (_: T).(\lambda (u2: T).(clear (CHead c k0 x0) (CHead e2 (Bind b) 
+u2))))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: 
+T).(\lambda (u2: T).(subst0 i v u1 u2)))))) (\lambda (_: B).(\lambda (e1: 
+C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 i v e1 
+e2))))))))))) (\lambda (b: B).(\lambda (H7: (clear (CHead c (Bind b) t) 
+c0)).(\lambda (H8: (eq nat (S i) (s (Bind b) x1))).(let H9 \def (f_equal nat 
+nat (\lambda (e: nat).(match e with [O \Rightarrow i | (S n) \Rightarrow n])) 
+(S i) (S x1) H8) in (let H10 \def (eq_ind_r nat x1 (\lambda (n: nat).(subst0 
+n v t x0)) H6 i H9) in (eq_ind_r C (CHead c (Bind b) t) (\lambda (c3: C).(or4 
+(clear (CHead c (Bind b) x0) c3) (ex3_4 B C T T (\lambda (b0: B).(\lambda (e: 
+C).(\lambda (u1: T).(\lambda (_: T).(eq C c3 (CHead e (Bind b0) u1)))))) 
+(\lambda (b0: B).(\lambda (e: C).(\lambda (_: T).(\lambda (u2: T).(clear 
+(CHead c (Bind b) x0) (CHead e (Bind b0) u2)))))) (\lambda (_: B).(\lambda 
+(_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 i v u1 u2)))))) (ex3_4 B C C 
+T (\lambda (b0: B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(eq C c3 
+(CHead e1 (Bind b0) u)))))) (\lambda (b0: B).(\lambda (_: C).(\lambda (e2: 
 C).(\lambda (u: T).(clear (CHead c (Bind b) x0) (CHead e2 (Bind b0) u)))))) 
 (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 i 
 v e1 e2)))))) (ex4_5 B C C T T (\lambda (b0: B).(\lambda (e1: C).(\lambda (_: 
-C).(\lambda (u1: T).(\lambda (_: T).(eq C (CHead c (Bind b) t) (CHead e1 
-(Bind b0) u1))))))) (\lambda (b0: B).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (_: T).(\lambda (u2: T).(clear (CHead c (Bind b) x0) (CHead e2 
-(Bind b0) u2))))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: C).(\lambda 
-(u1: T).(\lambda (u2: T).(subst0 i v u1 u2)))))) (\lambda (_: B).(\lambda 
-(e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 i v e1 
-e2))))))) (ex3_4_intro B C T T (\lambda (b0: B).(\lambda (e: C).(\lambda (u1: 
+C).(\lambda (u1: T).(\lambda (_: T).(eq C c3 (CHead e1 (Bind b0) u1))))))) 
+(\lambda (b0: B).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
+(u2: T).(clear (CHead c (Bind b) x0) (CHead e2 (Bind b0) u2))))))) (\lambda 
+(_: B).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: 
+T).(subst0 i v u1 u2)))))) (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: 
+C).(\lambda (_: T).(\lambda (_: T).(csubst0 i v e1 e2))))))))) (or4_intro1 
+(clear (CHead c (Bind b) x0) (CHead c (Bind b) t)) (ex3_4 B C T T (\lambda 
+(b0: B).(\lambda (e: C).(\lambda (u1: T).(\lambda (_: T).(eq C (CHead c (Bind 
+b) t) (CHead e (Bind b0) u1)))))) (\lambda (b0: B).(\lambda (e: C).(\lambda 
+(_: T).(\lambda (u2: T).(clear (CHead c (Bind b) x0) (CHead e (Bind b0) 
+u2)))))) (\lambda (_: B).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: 
+T).(subst0 i v u1 u2)))))) (ex3_4 B C C T (\lambda (b0: B).(\lambda (e1: 
+C).(\lambda (_: C).(\lambda (u: T).(eq C (CHead c (Bind b) t) (CHead e1 (Bind 
+b0) u)))))) (\lambda (b0: B).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: 
+T).(clear (CHead c (Bind b) x0) (CHead e2 (Bind b0) u)))))) (\lambda (_: 
+B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 i v e1 e2)))))) 
+(ex4_5 B C C T T (\lambda (b0: B).(\lambda (e1: C).(\lambda (_: C).(\lambda 
+(u1: T).(\lambda (_: T).(eq C (CHead c (Bind b) t) (CHead e1 (Bind b0) 
+u1))))))) (\lambda (b0: B).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: 
+T).(\lambda (u2: T).(clear (CHead c (Bind b) x0) (CHead e2 (Bind b0) 
+u2))))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: 
+T).(\lambda (u2: T).(subst0 i v u1 u2)))))) (\lambda (_: B).(\lambda (e1: 
+C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 i v e1 e2))))))) 
+(ex3_4_intro B C T T (\lambda (b0: B).(\lambda (e: C).(\lambda (u1: 
 T).(\lambda (_: T).(eq C (CHead c (Bind b) t) (CHead e (Bind b0) u1)))))) 
 (\lambda (b0: B).(\lambda (e: C).(\lambda (_: T).(\lambda (u2: T).(clear 
 (CHead c (Bind b) x0) (CHead e (Bind b0) u2)))))) (\lambda (_: B).(\lambda 
 (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 i v u1 u2))))) b c t x0 
-(refl_equal C (CHead c (Bind b) t)) (clear_bind b c x0) H9)) c0 
-(clear_gen_bind b c c0 t H6))))))) (\lambda (f: F).(\lambda (H6: (clear 
-(CHead c (Flat f) t) c0)).(\lambda (H7: (eq nat (S i) (s (Flat f) x1))).(let 
-H8 \def (f_equal nat nat (\lambda (e: nat).e) (S i) (s (Flat f) x1) H7) in 
-(let H9 \def (eq_ind_r nat x1 (\lambda (n: nat).(subst0 n v t x0)) H5 (S i) 
-H8) in (or4_intro0 (clear (CHead c (Flat f) x0) c0) (ex3_4 B C T T (\lambda 
+(refl_equal C (CHead c (Bind b) t)) (clear_bind b c x0) H10)) c0 
+(clear_gen_bind b c c0 t H7))))))) (\lambda (f: F).(\lambda (H7: (clear 
+(CHead c (Flat f) t) c0)).(\lambda (H8: (eq nat (S i) (s (Flat f) x1))).(let 
+H9 \def (f_equal nat nat (\lambda (e: nat).e) (S i) (s (Flat f) x1) H8) in 
+(let H10 \def (eq_ind_r nat x1 (\lambda (n: nat).(subst0 n v t x0)) H6 (S i) 
+H9) in (or4_intro0 (clear (CHead c (Flat f) x0) c0) (ex3_4 B C T T (\lambda 
 (b: B).(\lambda (e: C).(\lambda (u1: T).(\lambda (_: T).(eq C c0 (CHead e 
 (Bind b) u1)))))) (\lambda (b: B).(\lambda (e: C).(\lambda (_: T).(\lambda 
 (u2: T).(clear (CHead c (Flat f) x0) (CHead e (Bind b) u2)))))) (\lambda (_: 
@@ -410,8 +400,8 @@ C).(\lambda (e2: C).(\lambda (u: T).(clear (CHead c (Flat f) x0) (CHead e2
 u2))))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: 
 T).(\lambda (u2: T).(subst0 i v u1 u2)))))) (\lambda (_: B).(\lambda (e1: 
 C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 i v e1 e2))))))) 
-(clear_flat c c0 (clear_gen_flat f c c0 t H6) f x0))))))) k H1 H3) c2 
-H4)))))) H2)) (\lambda (H2: (ex3_2 C nat (\lambda (_: C).(\lambda (j: 
+(clear_flat c c0 (clear_gen_flat f c c0 t H7) f x0))))))) k H1 H4) c2 
+H5)))))) H3)) (\lambda (H3: (ex3_2 C nat (\lambda (_: C).(\lambda (j: 
 nat).(eq nat (S i) (s k j)))) (\lambda (c3: C).(\lambda (_: nat).(eq C c2 
 (CHead c3 k t)))) (\lambda (c3: C).(\lambda (j: nat).(csubst0 j v c 
 c3))))).(ex3_2_ind C nat (\lambda (_: C).(\lambda (j: nat).(eq nat (S i) (s k 
@@ -432,8 +422,8 @@ C).(\lambda (u1: T).(\lambda (_: T).(eq C c0 (CHead e1 (Bind b) u1)))))))
 C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 i v u1 u2)))))) 
 (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
 (_: T).(csubst0 i v e1 e2)))))))) (\lambda (x0: C).(\lambda (x1: 
-nat).(\lambda (H3: (eq nat (S i) (s k x1))).(\lambda (H4: (eq C c2 (CHead x0 
-k t))).(\lambda (H5: (csubst0 x1 v c x0)).(eq_ind_r C (CHead x0 k t) (\lambda 
+nat).(\lambda (H4: (eq nat (S i) (s k x1))).(\lambda (H5: (eq C c2 (CHead x0 
+k t))).(\lambda (H6: (csubst0 x1 v c x0)).(eq_ind_r C (CHead x0 k t) (\lambda 
 (c3: C).(or4 (clear c3 c0) (ex3_4 B C T T (\lambda (b: B).(\lambda (e: 
 C).(\lambda (u1: T).(\lambda (_: T).(eq C c0 (CHead e (Bind b) u1)))))) 
 (\lambda (b: B).(\lambda (e: C).(\lambda (_: T).(\lambda (u2: T).(clear c3 
@@ -466,56 +456,55 @@ T).(\lambda (u2: T).(clear (CHead x0 k0 t) (CHead e2 (Bind b) u2)))))))
 (\lambda (_: B).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda 
 (u2: T).(subst0 i v u1 u2)))))) (\lambda (_: B).(\lambda (e1: C).(\lambda 
 (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 i v e1 e2))))))))))) 
-(\lambda (b: B).(\lambda (H6: (clear (CHead c (Bind b) t) c0)).(\lambda (H7: 
-(eq nat (S i) (s (Bind b) x1))).(let H8 \def (f_equal nat nat (\lambda (e: 
-nat).(match e in nat return (\lambda (_: nat).nat) with [O \Rightarrow i | (S 
-n) \Rightarrow n])) (S i) (S x1) H7) in (let H9 \def (eq_ind_r nat x1 
-(\lambda (n: nat).(csubst0 n v c x0)) H5 i H8) in (eq_ind_r C (CHead c (Bind 
-b) t) (\lambda (c3: C).(or4 (clear (CHead x0 (Bind b) t) c3) (ex3_4 B C T T 
-(\lambda (b0: B).(\lambda (e: C).(\lambda (u1: T).(\lambda (_: T).(eq C c3 
-(CHead e (Bind b0) u1)))))) (\lambda (b0: B).(\lambda (e: C).(\lambda (_: 
-T).(\lambda (u2: T).(clear (CHead x0 (Bind b) t) (CHead e (Bind b0) u2)))))) 
-(\lambda (_: B).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 i v 
-u1 u2)))))) (ex3_4 B C C T (\lambda (b0: B).(\lambda (e1: C).(\lambda (_: 
-C).(\lambda (u: T).(eq C c3 (CHead e1 (Bind b0) u)))))) (\lambda (b0: 
-B).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(clear (CHead x0 (Bind b) 
-t) (CHead e2 (Bind b0) u)))))) (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: 
-C).(\lambda (_: T).(csubst0 i v e1 e2)))))) (ex4_5 B C C T T (\lambda (b0: 
-B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(eq C c3 
-(CHead e1 (Bind b0) u1))))))) (\lambda (b0: B).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (_: T).(\lambda (u2: T).(clear (CHead x0 (Bind b) t) (CHead e2 
-(Bind b0) u2))))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: C).(\lambda 
-(u1: T).(\lambda (u2: T).(subst0 i v u1 u2)))))) (\lambda (_: B).(\lambda 
-(e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 i v e1 
-e2))))))))) (or4_intro2 (clear (CHead x0 (Bind b) t) (CHead c (Bind b) t)) 
-(ex3_4 B C T T (\lambda (b0: B).(\lambda (e: C).(\lambda (u1: T).(\lambda (_: 
-T).(eq C (CHead c (Bind b) t) (CHead e (Bind b0) u1)))))) (\lambda (b0: 
+(\lambda (b: B).(\lambda (H7: (clear (CHead c (Bind b) t) c0)).(\lambda (H8: 
+(eq nat (S i) (s (Bind b) x1))).(let H9 \def (f_equal nat nat (\lambda (e: 
+nat).(match e with [O \Rightarrow i | (S n) \Rightarrow n])) (S i) (S x1) H8) 
+in (let H10 \def (eq_ind_r nat x1 (\lambda (n: nat).(csubst0 n v c x0)) H6 i 
+H9) in (eq_ind_r C (CHead c (Bind b) t) (\lambda (c3: C).(or4 (clear (CHead 
+x0 (Bind b) t) c3) (ex3_4 B C T T (\lambda (b0: B).(\lambda (e: C).(\lambda 
+(u1: T).(\lambda (_: T).(eq C c3 (CHead e (Bind b0) u1)))))) (\lambda (b0: 
 B).(\lambda (e: C).(\lambda (_: T).(\lambda (u2: T).(clear (CHead x0 (Bind b) 
 t) (CHead e (Bind b0) u2)))))) (\lambda (_: B).(\lambda (_: C).(\lambda (u1: 
 T).(\lambda (u2: T).(subst0 i v u1 u2)))))) (ex3_4 B C C T (\lambda (b0: 
+B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(eq C c3 (CHead e1 (Bind 
+b0) u)))))) (\lambda (b0: B).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: 
+T).(clear (CHead x0 (Bind b) t) (CHead e2 (Bind b0) u)))))) (\lambda (_: 
+B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 i v e1 e2)))))) 
+(ex4_5 B C C T T (\lambda (b0: B).(\lambda (e1: C).(\lambda (_: C).(\lambda 
+(u1: T).(\lambda (_: T).(eq C c3 (CHead e1 (Bind b0) u1))))))) (\lambda (b0: 
+B).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (u2: T).(clear 
+(CHead x0 (Bind b) t) (CHead e2 (Bind b0) u2))))))) (\lambda (_: B).(\lambda 
+(_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 i v u1 
+u2)))))) (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: 
+T).(\lambda (_: T).(csubst0 i v e1 e2))))))))) (or4_intro2 (clear (CHead x0 
+(Bind b) t) (CHead c (Bind b) t)) (ex3_4 B C T T (\lambda (b0: B).(\lambda 
+(e: C).(\lambda (u1: T).(\lambda (_: T).(eq C (CHead c (Bind b) t) (CHead e 
+(Bind b0) u1)))))) (\lambda (b0: B).(\lambda (e: C).(\lambda (_: T).(\lambda 
+(u2: T).(clear (CHead x0 (Bind b) t) (CHead e (Bind b0) u2)))))) (\lambda (_: 
+B).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 i v u1 u2)))))) 
+(ex3_4 B C C T (\lambda (b0: B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: 
+T).(eq C (CHead c (Bind b) t) (CHead e1 (Bind b0) u)))))) (\lambda (b0: 
+B).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(clear (CHead x0 (Bind b) 
+t) (CHead e2 (Bind b0) u)))))) (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: 
+C).(\lambda (_: T).(csubst0 i v e1 e2)))))) (ex4_5 B C C T T (\lambda (b0: 
+B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(eq C 
+(CHead c (Bind b) t) (CHead e1 (Bind b0) u1))))))) (\lambda (b0: B).(\lambda 
+(_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (u2: T).(clear (CHead x0 
+(Bind b) t) (CHead e2 (Bind b0) u2))))))) (\lambda (_: B).(\lambda (_: 
+C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 i v u1 u2)))))) 
+(\lambda (_: B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
+(_: T).(csubst0 i v e1 e2))))))) (ex3_4_intro B C C T (\lambda (b0: 
 B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(eq C (CHead c (Bind b) 
 t) (CHead e1 (Bind b0) u)))))) (\lambda (b0: B).(\lambda (_: C).(\lambda (e2: 
 C).(\lambda (u: T).(clear (CHead x0 (Bind b) t) (CHead e2 (Bind b0) u)))))) 
 (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 i 
-v e1 e2)))))) (ex4_5 B C C T T (\lambda (b0: B).(\lambda (e1: C).(\lambda (_: 
-C).(\lambda (u1: T).(\lambda (_: T).(eq C (CHead c (Bind b) t) (CHead e1 
-(Bind b0) u1))))))) (\lambda (b0: B).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (_: T).(\lambda (u2: T).(clear (CHead x0 (Bind b) t) (CHead e2 
-(Bind b0) u2))))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: C).(\lambda 
-(u1: T).(\lambda (u2: T).(subst0 i v u1 u2)))))) (\lambda (_: B).(\lambda 
-(e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 i v e1 
-e2))))))) (ex3_4_intro B C C T (\lambda (b0: B).(\lambda (e1: C).(\lambda (_: 
-C).(\lambda (u: T).(eq C (CHead c (Bind b) t) (CHead e1 (Bind b0) u)))))) 
-(\lambda (b0: B).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(clear 
-(CHead x0 (Bind b) t) (CHead e2 (Bind b0) u)))))) (\lambda (_: B).(\lambda 
-(e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 i v e1 e2))))) b c x0 t 
-(refl_equal C (CHead c (Bind b) t)) (clear_bind b x0 t) H9)) c0 
-(clear_gen_bind b c c0 t H6))))))) (\lambda (f: F).(\lambda (H6: (clear 
-(CHead c (Flat f) t) c0)).(\lambda (H7: (eq nat (S i) (s (Flat f) x1))).(let 
-H8 \def (f_equal nat nat (\lambda (e: nat).e) (S i) (s (Flat f) x1) H7) in 
-(let H9 \def (eq_ind_r nat x1 (\lambda (n: nat).(csubst0 n v c x0)) H5 (S i) 
-H8) in (let H10 \def (H x0 v i H9 c0 (clear_gen_flat f c c0 t H6)) in 
-(or4_ind (clear x0 c0) (ex3_4 B C T T (\lambda (b: B).(\lambda (e: 
+v e1 e2))))) b c x0 t (refl_equal C (CHead c (Bind b) t)) (clear_bind b x0 t) 
+H10)) c0 (clear_gen_bind b c c0 t H7))))))) (\lambda (f: F).(\lambda (H7: 
+(clear (CHead c (Flat f) t) c0)).(\lambda (H8: (eq nat (S i) (s (Flat f) 
+x1))).(let H9 \def (f_equal nat nat (\lambda (e: nat).e) (S i) (s (Flat f) 
+x1) H8) in (let H10 \def (eq_ind_r nat x1 (\lambda (n: nat).(csubst0 n v c 
+x0)) H6 (S i) H9) in (let H11 \def (H x0 v i H10 c0 (clear_gen_flat f c c0 t 
+H7)) in (or4_ind (clear x0 c0) (ex3_4 B C T T (\lambda (b: B).(\lambda (e: 
 C).(\lambda (u1: T).(\lambda (_: T).(eq C c0 (CHead e (Bind b) u1)))))) 
 (\lambda (b: B).(\lambda (e: C).(\lambda (_: T).(\lambda (u2: T).(clear x0 
 (CHead e (Bind b) u2)))))) (\lambda (_: B).(\lambda (_: C).(\lambda (u1: 
@@ -546,7 +535,7 @@ C).(\lambda (e2: C).(\lambda (u: T).(clear (CHead x0 (Flat f) t) (CHead e2
 u2))))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: 
 T).(\lambda (u2: T).(subst0 i v u1 u2)))))) (\lambda (_: B).(\lambda (e1: 
 C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 i v e1 
-e2)))))))) (\lambda (H11: (clear x0 c0)).(or4_intro0 (clear (CHead x0 (Flat 
+e2)))))))) (\lambda (H12: (clear x0 c0)).(or4_intro0 (clear (CHead x0 (Flat 
 f) t) c0) (ex3_4 B C T T (\lambda (b: B).(\lambda (e: C).(\lambda (u1: 
 T).(\lambda (_: T).(eq C c0 (CHead e (Bind b) u1)))))) (\lambda (b: 
 B).(\lambda (e: C).(\lambda (_: T).(\lambda (u2: T).(clear (CHead x0 (Flat f) 
@@ -562,8 +551,8 @@ B).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (u2: T).(clear
 (CHead x0 (Flat f) t) (CHead e2 (Bind b) u2))))))) (\lambda (_: B).(\lambda 
 (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 i v u1 
 u2)))))) (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: 
-T).(\lambda (_: T).(csubst0 i v e1 e2))))))) (clear_flat x0 c0 H11 f t))) 
-(\lambda (H11: (ex3_4 B C T T (\lambda (b: B).(\lambda (e: C).(\lambda (u1: 
+T).(\lambda (_: T).(csubst0 i v e1 e2))))))) (clear_flat x0 c0 H12 f t))) 
+(\lambda (H12: (ex3_4 B C T T (\lambda (b: B).(\lambda (e: C).(\lambda (u1: 
 T).(\lambda (_: T).(eq C c0 (CHead e (Bind b) u1)))))) (\lambda (b: 
 B).(\lambda (e: C).(\lambda (_: T).(\lambda (u2: T).(clear x0 (CHead e (Bind 
 b) u2)))))) (\lambda (_: B).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: 
@@ -588,8 +577,8 @@ B).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (u2: T).(clear
 (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 i v u1 
 u2)))))) (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: 
 T).(\lambda (_: T).(csubst0 i v e1 e2)))))))) (\lambda (x2: B).(\lambda (x3: 
-C).(\lambda (x4: T).(\lambda (x5: T).(\lambda (H12: (eq C c0 (CHead x3 (Bind 
-x2) x4))).(\lambda (H13: (clear x0 (CHead x3 (Bind x2) x5))).(\lambda (H14
+C).(\lambda (x4: T).(\lambda (x5: T).(\lambda (H13: (eq C c0 (CHead x3 (Bind 
+x2) x4))).(\lambda (H14: (clear x0 (CHead x3 (Bind x2) x5))).(\lambda (H15
 (subst0 i v x4 x5)).(or4_intro1 (clear (CHead x0 (Flat f) t) c0) (ex3_4 B C T 
 T (\lambda (b: B).(\lambda (e: C).(\lambda (u1: T).(\lambda (_: T).(eq C c0 
 (CHead e (Bind b) u1)))))) (\lambda (b: B).(\lambda (e: C).(\lambda (_: 
@@ -610,8 +599,8 @@ e2))))))) (ex3_4_intro B C T T (\lambda (b: B).(\lambda (e: C).(\lambda (u1:
 T).(\lambda (_: T).(eq C c0 (CHead e (Bind b) u1)))))) (\lambda (b: 
 B).(\lambda (e: C).(\lambda (_: T).(\lambda (u2: T).(clear (CHead x0 (Flat f) 
 t) (CHead e (Bind b) u2)))))) (\lambda (_: B).(\lambda (_: C).(\lambda (u1: 
-T).(\lambda (u2: T).(subst0 i v u1 u2))))) x2 x3 x4 x5 H12 (clear_flat x0 
-(CHead x3 (Bind x2) x5) H13 f t) H14))))))))) H11)) (\lambda (H11: (ex3_4 B C 
+T).(\lambda (u2: T).(subst0 i v u1 u2))))) x2 x3 x4 x5 H13 (clear_flat x0 
+(CHead x3 (Bind x2) x5) H14 f t) H15))))))))) H12)) (\lambda (H12: (ex3_4 B C 
 C T (\lambda (b: B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(eq C c0 
 (CHead e1 (Bind b) u)))))) (\lambda (b: B).(\lambda (_: C).(\lambda (e2: 
 C).(\lambda (u: T).(clear x0 (CHead e2 (Bind b) u)))))) (\lambda (_: 
@@ -637,8 +626,8 @@ C).(\lambda (_: T).(\lambda (u2: T).(clear (CHead x0 (Flat f) t) (CHead e2
 (u1: T).(\lambda (u2: T).(subst0 i v u1 u2)))))) (\lambda (_: B).(\lambda 
 (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 i v e1 
 e2)))))))) (\lambda (x2: B).(\lambda (x3: C).(\lambda (x4: C).(\lambda (x5: 
-T).(\lambda (H12: (eq C c0 (CHead x3 (Bind x2) x5))).(\lambda (H13: (clear x0 
-(CHead x4 (Bind x2) x5))).(\lambda (H14: (csubst0 i v x3 x4)).(or4_intro2 
+T).(\lambda (H13: (eq C c0 (CHead x3 (Bind x2) x5))).(\lambda (H14: (clear x0 
+(CHead x4 (Bind x2) x5))).(\lambda (H15: (csubst0 i v x3 x4)).(or4_intro2 
 (clear (CHead x0 (Flat f) t) c0) (ex3_4 B C T T (\lambda (b: B).(\lambda (e: 
 C).(\lambda (u1: T).(\lambda (_: T).(eq C c0 (CHead e (Bind b) u1)))))) 
 (\lambda (b: B).(\lambda (e: C).(\lambda (_: T).(\lambda (u2: T).(clear 
@@ -659,8 +648,8 @@ C T (\lambda (b: B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(eq C c0
 (CHead e1 (Bind b) u)))))) (\lambda (b: B).(\lambda (_: C).(\lambda (e2: 
 C).(\lambda (u: T).(clear (CHead x0 (Flat f) t) (CHead e2 (Bind b) u)))))) 
 (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 i 
-v e1 e2))))) x2 x3 x4 x5 H12 (clear_flat x0 (CHead x4 (Bind x2) x5) H13 f t) 
-H14))))))))) H11)) (\lambda (H11: (ex4_5 B C C T T (\lambda (b: B).(\lambda 
+v e1 e2))))) x2 x3 x4 x5 H13 (clear_flat x0 (CHead x4 (Bind x2) x5) H14 f t) 
+H15))))))))) H12)) (\lambda (H12: (ex4_5 B C C T T (\lambda (b: B).(\lambda 
 (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(eq C c0 (CHead e1 
 (Bind b) u1))))))) (\lambda (b: B).(\lambda (_: C).(\lambda (e2: C).(\lambda 
 (_: T).(\lambda (u2: T).(clear x0 (CHead e2 (Bind b) u2))))))) (\lambda (_: 
@@ -690,9 +679,9 @@ u2))))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: C).(\lambda (u1:
 T).(\lambda (u2: T).(subst0 i v u1 u2)))))) (\lambda (_: B).(\lambda (e1: 
 C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 i v e1 
 e2)))))))) (\lambda (x2: B).(\lambda (x3: C).(\lambda (x4: C).(\lambda (x5: 
-T).(\lambda (x6: T).(\lambda (H12: (eq C c0 (CHead x3 (Bind x2) 
-x5))).(\lambda (H13: (clear x0 (CHead x4 (Bind x2) x6))).(\lambda (H14
-(subst0 i v x5 x6)).(\lambda (H15: (csubst0 i v x3 x4)).(or4_intro3 (clear 
+T).(\lambda (x6: T).(\lambda (H13: (eq C c0 (CHead x3 (Bind x2) 
+x5))).(\lambda (H14: (clear x0 (CHead x4 (Bind x2) x6))).(\lambda (H15
+(subst0 i v x5 x6)).(\lambda (H16: (csubst0 i v x3 x4)).(or4_intro3 (clear 
 (CHead x0 (Flat f) t) c0) (ex3_4 B C T T (\lambda (b: B).(\lambda (e: 
 C).(\lambda (u1: T).(\lambda (_: T).(eq C c0 (CHead e (Bind b) u1)))))) 
 (\lambda (b: B).(\lambda (e: C).(\lambda (_: T).(\lambda (u2: T).(clear 
@@ -715,9 +704,9 @@ B).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (u2: T).(clear
 (CHead x0 (Flat f) t) (CHead e2 (Bind b) u2))))))) (\lambda (_: B).(\lambda 
 (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 i v u1 
 u2)))))) (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: 
-T).(\lambda (_: T).(csubst0 i v e1 e2)))))) x2 x3 x4 x5 x6 H12 (clear_flat x0 
-(CHead x4 (Bind x2) x6) H13 f t) H14 H15))))))))))) H11)) H10))))))) k H1 H3
-c2 H4)))))) H2)) (\lambda (H2: (ex4_3 T C nat (\lambda (_: T).(\lambda (_: 
+T).(\lambda (_: T).(csubst0 i v e1 e2)))))) x2 x3 x4 x5 x6 H13 (clear_flat x0 
+(CHead x4 (Bind x2) x6) H14 f t) H15 H16))))))))))) H12)) H11))))))) k H1 H4
+c2 H5)))))) H3)) (\lambda (H3: (ex4_3 T C nat (\lambda (_: T).(\lambda (_: 
 C).(\lambda (j: nat).(eq nat (S i) (s k j))))) (\lambda (u2: T).(\lambda (c3: 
 C).(\lambda (_: nat).(eq C c2 (CHead c3 k u2))))) (\lambda (u2: T).(\lambda 
 (_: C).(\lambda (j: nat).(subst0 j v t u2)))) (\lambda (_: T).(\lambda (c3: 
@@ -741,9 +730,9 @@ T).(\lambda (u2: T).(clear c2 (CHead e2 (Bind b) u2))))))) (\lambda (_:
 B).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 
 i v u1 u2)))))) (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: C).(\lambda 
 (_: T).(\lambda (_: T).(csubst0 i v e1 e2)))))))) (\lambda (x0: T).(\lambda 
-(x1: C).(\lambda (x2: nat).(\lambda (H3: (eq nat (S i) (s k x2))).(\lambda 
-(H4: (eq C c2 (CHead x1 k x0))).(\lambda (H5: (subst0 x2 v t x0)).(\lambda 
-(H6: (csubst0 x2 v c x1)).(eq_ind_r C (CHead x1 k x0) (\lambda (c3: C).(or4 
+(x1: C).(\lambda (x2: nat).(\lambda (H4: (eq nat (S i) (s k x2))).(\lambda 
+(H5: (eq C c2 (CHead x1 k x0))).(\lambda (H6: (subst0 x2 v t x0)).(\lambda 
+(H7: (csubst0 x2 v c x1)).(eq_ind_r C (CHead x1 k x0) (\lambda (c3: C).(or4 
 (clear c3 c0) (ex3_4 B C T T (\lambda (b: B).(\lambda (e: C).(\lambda (u1: 
 T).(\lambda (_: T).(eq C c0 (CHead e (Bind b) u1)))))) (\lambda (b: 
 B).(\lambda (e: C).(\lambda (_: T).(\lambda (u2: T).(clear c3 (CHead e (Bind 
@@ -776,61 +765,61 @@ C).(\lambda (u1: T).(\lambda (_: T).(eq C c0 (CHead e1 (Bind b) u1)))))))
 B).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 
 i v u1 u2)))))) (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: C).(\lambda 
 (_: T).(\lambda (_: T).(csubst0 i v e1 e2))))))))))) (\lambda (b: B).(\lambda 
-(H7: (clear (CHead c (Bind b) t) c0)).(\lambda (H8: (eq nat (S i) (s (Bind b) 
-x2))).(let H9 \def (f_equal nat nat (\lambda (e: nat).(match e in nat return 
-(\lambda (_: nat).nat) with [O \Rightarrow i | (S n) \Rightarrow n])) (S i) 
-(S x2) H8) in (let H10 \def (eq_ind_r nat x2 (\lambda (n: nat).(csubst0 n v c 
-x1)) H6 i H9) in (let H11 \def (eq_ind_r nat x2 (\lambda (n: nat).(subst0 n v 
-t x0)) H5 i H9) in (eq_ind_r C (CHead c (Bind b) t) (\lambda (c3: C).(or4 
-(clear (CHead x1 (Bind b) x0) c3) (ex3_4 B C T T (\lambda (b0: B).(\lambda 
-(e: C).(\lambda (u1: T).(\lambda (_: T).(eq C c3 (CHead e (Bind b0) u1)))))) 
-(\lambda (b0: B).(\lambda (e: C).(\lambda (_: T).(\lambda (u2: T).(clear 
-(CHead x1 (Bind b) x0) (CHead e (Bind b0) u2)))))) (\lambda (_: B).(\lambda 
-(_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 i v u1 u2)))))) (ex3_4 B C C 
-T (\lambda (b0: B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(eq C c3 
-(CHead e1 (Bind b0) u)))))) (\lambda (b0: B).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (u: T).(clear (CHead x1 (Bind b) x0) (CHead e2 (Bind b0) u)))))) 
-(\lambda (_: B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 i 
-v e1 e2)))))) (ex4_5 B C C T T (\lambda (b0: B).(\lambda (e1: C).(\lambda (_: 
-C).(\lambda (u1: T).(\lambda (_: T).(eq C c3 (CHead e1 (Bind b0) u1))))))) 
-(\lambda (b0: B).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
-(u2: T).(clear (CHead x1 (Bind b) x0) (CHead e2 (Bind b0) u2))))))) (\lambda 
-(_: B).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: 
-T).(subst0 i v u1 u2)))))) (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: 
-C).(\lambda (_: T).(\lambda (_: T).(csubst0 i v e1 e2))))))))) (or4_intro3 
-(clear (CHead x1 (Bind b) x0) (CHead c (Bind b) t)) (ex3_4 B C T T (\lambda 
-(b0: B).(\lambda (e: C).(\lambda (u1: T).(\lambda (_: T).(eq C (CHead c (Bind 
-b) t) (CHead e (Bind b0) u1)))))) (\lambda (b0: B).(\lambda (e: C).(\lambda 
-(_: T).(\lambda (u2: T).(clear (CHead x1 (Bind b) x0) (CHead e (Bind b0) 
-u2)))))) (\lambda (_: B).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: 
-T).(subst0 i v u1 u2)))))) (ex3_4 B C C T (\lambda (b0: B).(\lambda (e1: 
-C).(\lambda (_: C).(\lambda (u: T).(eq C (CHead c (Bind b) t) (CHead e1 (Bind 
+(H8: (clear (CHead c (Bind b) t) c0)).(\lambda (H9: (eq nat (S i) (s (Bind b) 
+x2))).(let H10 \def (f_equal nat nat (\lambda (e: nat).(match e with [O 
+\Rightarrow i | (S n) \Rightarrow n])) (S i) (S x2) H9) in (let H11 \def 
+(eq_ind_r nat x2 (\lambda (n: nat).(csubst0 n v c x1)) H7 i H10) in (let H12 
+\def (eq_ind_r nat x2 (\lambda (n: nat).(subst0 n v t x0)) H6 i H10) in 
+(eq_ind_r C (CHead c (Bind b) t) (\lambda (c3: C).(or4 (clear (CHead x1 (Bind 
+b) x0) c3) (ex3_4 B C T T (\lambda (b0: B).(\lambda (e: C).(\lambda (u1: 
+T).(\lambda (_: T).(eq C c3 (CHead e (Bind b0) u1)))))) (\lambda (b0: 
+B).(\lambda (e: C).(\lambda (_: T).(\lambda (u2: T).(clear (CHead x1 (Bind b) 
+x0) (CHead e (Bind b0) u2)))))) (\lambda (_: B).(\lambda (_: C).(\lambda (u1: 
+T).(\lambda (u2: T).(subst0 i v u1 u2)))))) (ex3_4 B C C T (\lambda (b0: 
+B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(eq C c3 (CHead e1 (Bind 
 b0) u)))))) (\lambda (b0: B).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: 
 T).(clear (CHead x1 (Bind b) x0) (CHead e2 (Bind b0) u)))))) (\lambda (_: 
 B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 i v e1 e2)))))) 
 (ex4_5 B C C T T (\lambda (b0: B).(\lambda (e1: C).(\lambda (_: C).(\lambda 
-(u1: T).(\lambda (_: T).(eq C (CHead c (Bind b) t) (CHead e1 (Bind b0) 
-u1))))))) (\lambda (b0: B).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: 
-T).(\lambda (u2: T).(clear (CHead x1 (Bind b) x0) (CHead e2 (Bind b0) 
-u2))))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: 
-T).(\lambda (u2: T).(subst0 i v u1 u2)))))) (\lambda (_: B).(\lambda (e1: 
-C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 i v e1 e2))))))) 
-(ex4_5_intro B C C T T (\lambda (b0: B).(\lambda (e1: C).(\lambda (_: 
-C).(\lambda (u1: T).(\lambda (_: T).(eq C (CHead c (Bind b) t) (CHead e1 
-(Bind b0) u1))))))) (\lambda (b0: B).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (_: T).(\lambda (u2: T).(clear (CHead x1 (Bind b) x0) (CHead e2 
-(Bind b0) u2))))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: C).(\lambda 
-(u1: T).(\lambda (u2: T).(subst0 i v u1 u2)))))) (\lambda (_: B).(\lambda 
-(e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 i v e1 
-e2)))))) b c x1 t x0 (refl_equal C (CHead c (Bind b) t)) (clear_bind b x1 x0) 
-H11 H10)) c0 (clear_gen_bind b c c0 t H7)))))))) (\lambda (f: F).(\lambda 
-(H7: (clear (CHead c (Flat f) t) c0)).(\lambda (H8: (eq nat (S i) (s (Flat f) 
-x2))).(let H9 \def (f_equal nat nat (\lambda (e: nat).e) (S i) (s (Flat f) 
-x2) H8) in (let H10 \def (eq_ind_r nat x2 (\lambda (n: nat).(csubst0 n v c 
-x1)) H6 (S i) H9) in (let H11 \def (eq_ind_r nat x2 (\lambda (n: nat).(subst0 
-n v t x0)) H5 (S i) H9) in (let H12 \def (H x1 v i H10 c0 (clear_gen_flat f c 
-c0 t H7)) in (or4_ind (clear x1 c0) (ex3_4 B C T T (\lambda (b: B).(\lambda 
-(e: C).(\lambda (u1: T).(\lambda (_: T).(eq C c0 (CHead e (Bind b) u1)))))) 
+(u1: T).(\lambda (_: T).(eq C c3 (CHead e1 (Bind b0) u1))))))) (\lambda (b0: 
+B).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (u2: T).(clear 
+(CHead x1 (Bind b) x0) (CHead e2 (Bind b0) u2))))))) (\lambda (_: B).(\lambda 
+(_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 i v u1 
+u2)))))) (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: 
+T).(\lambda (_: T).(csubst0 i v e1 e2))))))))) (or4_intro3 (clear (CHead x1 
+(Bind b) x0) (CHead c (Bind b) t)) (ex3_4 B C T T (\lambda (b0: B).(\lambda 
+(e: C).(\lambda (u1: T).(\lambda (_: T).(eq C (CHead c (Bind b) t) (CHead e 
+(Bind b0) u1)))))) (\lambda (b0: B).(\lambda (e: C).(\lambda (_: T).(\lambda 
+(u2: T).(clear (CHead x1 (Bind b) x0) (CHead e (Bind b0) u2)))))) (\lambda 
+(_: B).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 i v u1 
+u2)))))) (ex3_4 B C C T (\lambda (b0: B).(\lambda (e1: C).(\lambda (_: 
+C).(\lambda (u: T).(eq C (CHead c (Bind b) t) (CHead e1 (Bind b0) u)))))) 
+(\lambda (b0: B).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(clear 
+(CHead x1 (Bind b) x0) (CHead e2 (Bind b0) u)))))) (\lambda (_: B).(\lambda 
+(e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 i v e1 e2)))))) (ex4_5 B C 
+C T T (\lambda (b0: B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: 
+T).(\lambda (_: T).(eq C (CHead c (Bind b) t) (CHead e1 (Bind b0) u1))))))) 
+(\lambda (b0: B).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
+(u2: T).(clear (CHead x1 (Bind b) x0) (CHead e2 (Bind b0) u2))))))) (\lambda 
+(_: B).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: 
+T).(subst0 i v u1 u2)))))) (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: 
+C).(\lambda (_: T).(\lambda (_: T).(csubst0 i v e1 e2))))))) (ex4_5_intro B C 
+C T T (\lambda (b0: B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: 
+T).(\lambda (_: T).(eq C (CHead c (Bind b) t) (CHead e1 (Bind b0) u1))))))) 
+(\lambda (b0: B).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
+(u2: T).(clear (CHead x1 (Bind b) x0) (CHead e2 (Bind b0) u2))))))) (\lambda 
+(_: B).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: 
+T).(subst0 i v u1 u2)))))) (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: 
+C).(\lambda (_: T).(\lambda (_: T).(csubst0 i v e1 e2)))))) b c x1 t x0 
+(refl_equal C (CHead c (Bind b) t)) (clear_bind b x1 x0) H12 H11)) c0 
+(clear_gen_bind b c c0 t H8)))))))) (\lambda (f: F).(\lambda (H8: (clear 
+(CHead c (Flat f) t) c0)).(\lambda (H9: (eq nat (S i) (s (Flat f) x2))).(let 
+H10 \def (f_equal nat nat (\lambda (e: nat).e) (S i) (s (Flat f) x2) H9) in 
+(let H11 \def (eq_ind_r nat x2 (\lambda (n: nat).(csubst0 n v c x1)) H7 (S i) 
+H10) in (let H12 \def (eq_ind_r nat x2 (\lambda (n: nat).(subst0 n v t x0)) 
+H6 (S i) H10) in (let H13 \def (H x1 v i H11 c0 (clear_gen_flat f c c0 t H8)) 
+in (or4_ind (clear x1 c0) (ex3_4 B C T T (\lambda (b: B).(\lambda (e: 
+C).(\lambda (u1: T).(\lambda (_: T).(eq C c0 (CHead e (Bind b) u1)))))) 
 (\lambda (b: B).(\lambda (e: C).(\lambda (_: T).(\lambda (u2: T).(clear x1 
 (CHead e (Bind b) u2)))))) (\lambda (_: B).(\lambda (_: C).(\lambda (u1: 
 T).(\lambda (u2: T).(subst0 i v u1 u2)))))) (ex3_4 B C C T (\lambda (b: 
@@ -860,7 +849,7 @@ C).(\lambda (e2: C).(\lambda (u: T).(clear (CHead x1 (Flat f) x0) (CHead e2
 u2))))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: 
 T).(\lambda (u2: T).(subst0 i v u1 u2)))))) (\lambda (_: B).(\lambda (e1: 
 C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 i v e1 
-e2)))))))) (\lambda (H13: (clear x1 c0)).(or4_intro0 (clear (CHead x1 (Flat 
+e2)))))))) (\lambda (H14: (clear x1 c0)).(or4_intro0 (clear (CHead x1 (Flat 
 f) x0) c0) (ex3_4 B C T T (\lambda (b: B).(\lambda (e: C).(\lambda (u1: 
 T).(\lambda (_: T).(eq C c0 (CHead e (Bind b) u1)))))) (\lambda (b: 
 B).(\lambda (e: C).(\lambda (_: T).(\lambda (u2: T).(clear (CHead x1 (Flat f) 
@@ -876,8 +865,8 @@ B).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (u2: T).(clear
 (CHead x1 (Flat f) x0) (CHead e2 (Bind b) u2))))))) (\lambda (_: B).(\lambda 
 (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 i v u1 
 u2)))))) (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: 
-T).(\lambda (_: T).(csubst0 i v e1 e2))))))) (clear_flat x1 c0 H13 f x0))) 
-(\lambda (H13: (ex3_4 B C T T (\lambda (b: B).(\lambda (e: C).(\lambda (u1: 
+T).(\lambda (_: T).(csubst0 i v e1 e2))))))) (clear_flat x1 c0 H14 f x0))) 
+(\lambda (H14: (ex3_4 B C T T (\lambda (b: B).(\lambda (e: C).(\lambda (u1: 
 T).(\lambda (_: T).(eq C c0 (CHead e (Bind b) u1)))))) (\lambda (b: 
 B).(\lambda (e: C).(\lambda (_: T).(\lambda (u2: T).(clear x1 (CHead e (Bind 
 b) u2)))))) (\lambda (_: B).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: 
@@ -902,8 +891,8 @@ B).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (u2: T).(clear
 (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 i v u1 
 u2)))))) (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: 
 T).(\lambda (_: T).(csubst0 i v e1 e2)))))))) (\lambda (x3: B).(\lambda (x4: 
-C).(\lambda (x5: T).(\lambda (x6: T).(\lambda (H14: (eq C c0 (CHead x4 (Bind 
-x3) x5))).(\lambda (H15: (clear x1 (CHead x4 (Bind x3) x6))).(\lambda (H16
+C).(\lambda (x5: T).(\lambda (x6: T).(\lambda (H15: (eq C c0 (CHead x4 (Bind 
+x3) x5))).(\lambda (H16: (clear x1 (CHead x4 (Bind x3) x6))).(\lambda (H17
 (subst0 i v x5 x6)).(or4_intro1 (clear (CHead x1 (Flat f) x0) c0) (ex3_4 B C 
 T T (\lambda (b: B).(\lambda (e: C).(\lambda (u1: T).(\lambda (_: T).(eq C c0 
 (CHead e (Bind b) u1)))))) (\lambda (b: B).(\lambda (e: C).(\lambda (_: 
@@ -924,8 +913,8 @@ e2))))))) (ex3_4_intro B C T T (\lambda (b: B).(\lambda (e: C).(\lambda (u1:
 T).(\lambda (_: T).(eq C c0 (CHead e (Bind b) u1)))))) (\lambda (b: 
 B).(\lambda (e: C).(\lambda (_: T).(\lambda (u2: T).(clear (CHead x1 (Flat f) 
 x0) (CHead e (Bind b) u2)))))) (\lambda (_: B).(\lambda (_: C).(\lambda (u1: 
-T).(\lambda (u2: T).(subst0 i v u1 u2))))) x3 x4 x5 x6 H14 (clear_flat x1 
-(CHead x4 (Bind x3) x6) H15 f x0) H16))))))))) H13)) (\lambda (H13: (ex3_4 B 
+T).(\lambda (u2: T).(subst0 i v u1 u2))))) x3 x4 x5 x6 H15 (clear_flat x1 
+(CHead x4 (Bind x3) x6) H16 f x0) H17))))))))) H14)) (\lambda (H14: (ex3_4 B 
 C C T (\lambda (b: B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(eq C 
 c0 (CHead e1 (Bind b) u)))))) (\lambda (b: B).(\lambda (_: C).(\lambda (e2: 
 C).(\lambda (u: T).(clear x1 (CHead e2 (Bind b) u)))))) (\lambda (_: 
@@ -951,8 +940,8 @@ C).(\lambda (_: T).(\lambda (u2: T).(clear (CHead x1 (Flat f) x0) (CHead e2
 (u1: T).(\lambda (u2: T).(subst0 i v u1 u2)))))) (\lambda (_: B).(\lambda 
 (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 i v e1 
 e2)))))))) (\lambda (x3: B).(\lambda (x4: C).(\lambda (x5: C).(\lambda (x6: 
-T).(\lambda (H14: (eq C c0 (CHead x4 (Bind x3) x6))).(\lambda (H15: (clear x1 
-(CHead x5 (Bind x3) x6))).(\lambda (H16: (csubst0 i v x4 x5)).(or4_intro2 
+T).(\lambda (H15: (eq C c0 (CHead x4 (Bind x3) x6))).(\lambda (H16: (clear x1 
+(CHead x5 (Bind x3) x6))).(\lambda (H17: (csubst0 i v x4 x5)).(or4_intro2 
 (clear (CHead x1 (Flat f) x0) c0) (ex3_4 B C T T (\lambda (b: B).(\lambda (e: 
 C).(\lambda (u1: T).(\lambda (_: T).(eq C c0 (CHead e (Bind b) u1)))))) 
 (\lambda (b: B).(\lambda (e: C).(\lambda (_: T).(\lambda (u2: T).(clear 
@@ -973,8 +962,8 @@ C T (\lambda (b: B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(eq C c0
 (CHead e1 (Bind b) u)))))) (\lambda (b: B).(\lambda (_: C).(\lambda (e2: 
 C).(\lambda (u: T).(clear (CHead x1 (Flat f) x0) (CHead e2 (Bind b) u)))))) 
 (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 i 
-v e1 e2))))) x3 x4 x5 x6 H14 (clear_flat x1 (CHead x5 (Bind x3) x6) H15 f x0) 
-H16))))))))) H13)) (\lambda (H13: (ex4_5 B C C T T (\lambda (b: B).(\lambda 
+v e1 e2))))) x3 x4 x5 x6 H15 (clear_flat x1 (CHead x5 (Bind x3) x6) H16 f x0) 
+H17))))))))) H14)) (\lambda (H14: (ex4_5 B C C T T (\lambda (b: B).(\lambda 
 (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(eq C c0 (CHead e1 
 (Bind b) u1))))))) (\lambda (b: B).(\lambda (_: C).(\lambda (e2: C).(\lambda 
 (_: T).(\lambda (u2: T).(clear x1 (CHead e2 (Bind b) u2))))))) (\lambda (_: 
@@ -1004,9 +993,9 @@ u2))))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: C).(\lambda (u1:
 T).(\lambda (u2: T).(subst0 i v u1 u2)))))) (\lambda (_: B).(\lambda (e1: 
 C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 i v e1 
 e2)))))))) (\lambda (x3: B).(\lambda (x4: C).(\lambda (x5: C).(\lambda (x6: 
-T).(\lambda (x7: T).(\lambda (H14: (eq C c0 (CHead x4 (Bind x3) 
-x6))).(\lambda (H15: (clear x1 (CHead x5 (Bind x3) x7))).(\lambda (H16
-(subst0 i v x6 x7)).(\lambda (H17: (csubst0 i v x4 x5)).(or4_intro3 (clear 
+T).(\lambda (x7: T).(\lambda (H15: (eq C c0 (CHead x4 (Bind x3) 
+x6))).(\lambda (H16: (clear x1 (CHead x5 (Bind x3) x7))).(\lambda (H17
+(subst0 i v x6 x7)).(\lambda (H18: (csubst0 i v x4 x5)).(or4_intro3 (clear 
 (CHead x1 (Flat f) x0) c0) (ex3_4 B C T T (\lambda (b: B).(\lambda (e: 
 C).(\lambda (u1: T).(\lambda (_: T).(eq C c0 (CHead e (Bind b) u1)))))) 
 (\lambda (b: B).(\lambda (e: C).(\lambda (_: T).(\lambda (u2: T).(clear 
@@ -1029,111 +1018,153 @@ B).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (u2: T).(clear
 (CHead x1 (Flat f) x0) (CHead e2 (Bind b) u2))))))) (\lambda (_: B).(\lambda 
 (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 i v u1 
 u2)))))) (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: 
-T).(\lambda (_: T).(csubst0 i v e1 e2)))))) x3 x4 x5 x6 x7 H14 (clear_flat x1 
-(CHead x5 (Bind x3) x7) H15 f x0) H16 H17))))))))))) H13)) H12)))))))) k H1 
-H3) c2 H4)))))))) H2)) (csubst0_gen_head k c c2 t v (S i) H0)))))))))))) c1).
-(* COMMENTS
-Initial nodes: 14968
-END *)
+T).(\lambda (_: T).(csubst0 i v e1 e2)))))) x3 x4 x5 x6 x7 H15 (clear_flat x1 
+(CHead x5 (Bind x3) x7) H16 f x0) H17 H18))))))))))) H14)) H13)))))))) k H1 
+H4) c2 H5)))))))) H3)) H2)))))))))))) c1).
 
 theorem csubst0_clear_trans:
  \forall (c1: C).(\forall (c2: C).(\forall (v: T).(\forall (i: nat).((csubst0 
 i v c1 c2) \to (\forall (e2: C).((clear c2 e2) \to (or (clear c1 e2) (ex2 C 
 (\lambda (e1: C).(csubst0 i v e1 e2)) (\lambda (e1: C).(clear c1 e1))))))))))
 \def
- \lambda (c1: C).(\lambda (c2: C).(\lambda (v: T).(\lambda (i: nat).(\lambda 
-(H: (csubst0 i v c1 c2)).(csubst0_ind (\lambda (n: nat).(\lambda (t: 
-T).(\lambda (c: C).(\lambda (c0: C).(\forall (e2: C).((clear c0 e2) \to (or 
-(clear c e2) (ex2 C (\lambda (e1: C).(csubst0 n t e1 e2)) (\lambda (e1: 
-C).(clear c e1)))))))))) (\lambda (k: K).(\lambda (i0: nat).(\lambda (v0: 
-T).(\lambda (u1: T).(\lambda (u2: T).(\lambda (H0: (subst0 i0 v0 u1 
-u2)).(\lambda (c: C).(\lambda (e2: C).(\lambda (H1: (clear (CHead c k u2) 
-e2)).(K_ind (\lambda (k0: K).((clear (CHead c k0 u2) e2) \to (or (clear 
-(CHead c k0 u1) e2) (ex2 C (\lambda (e1: C).(csubst0 (s k0 i0) v0 e1 e2)) 
-(\lambda (e1: C).(clear (CHead c k0 u1) e1)))))) (\lambda (b: B).(\lambda 
-(H2: (clear (CHead c (Bind b) u2) e2)).(eq_ind_r C (CHead c (Bind b) u2) 
-(\lambda (c0: C).(or (clear (CHead c (Bind b) u1) c0) (ex2 C (\lambda (e1: 
-C).(csubst0 (s (Bind b) i0) v0 e1 c0)) (\lambda (e1: C).(clear (CHead c (Bind 
-b) u1) e1))))) (or_intror (clear (CHead c (Bind b) u1) (CHead c (Bind b) u2)) 
-(ex2 C (\lambda (e1: C).(csubst0 (S i0) v0 e1 (CHead c (Bind b) u2))) 
-(\lambda (e1: C).(clear (CHead c (Bind b) u1) e1))) (ex_intro2 C (\lambda 
-(e1: C).(csubst0 (S i0) v0 e1 (CHead c (Bind b) u2))) (\lambda (e1: C).(clear 
-(CHead c (Bind b) u1) e1)) (CHead c (Bind b) u1) (csubst0_snd_bind b i0 v0 u1 
-u2 H0 c) (clear_bind b c u1))) e2 (clear_gen_bind b c e2 u2 H2)))) (\lambda 
-(f: F).(\lambda (H2: (clear (CHead c (Flat f) u2) e2)).(or_introl (clear 
-(CHead c (Flat f) u1) e2) (ex2 C (\lambda (e1: C).(csubst0 i0 v0 e1 e2)) 
-(\lambda (e1: C).(clear (CHead c (Flat f) u1) e1))) (clear_flat c e2 
-(clear_gen_flat f c e2 u2 H2) f u1)))) k H1)))))))))) (\lambda (k: 
-K).(\lambda (i0: nat).(\lambda (c3: C).(\lambda (c4: C).(\lambda (v0: 
-T).(\lambda (H0: (csubst0 i0 v0 c3 c4)).(\lambda (H1: ((\forall (e2: 
-C).((clear c4 e2) \to (or (clear c3 e2) (ex2 C (\lambda (e1: C).(csubst0 i0 
-v0 e1 e2)) (\lambda (e1: C).(clear c3 e1)))))))).(\lambda (u: T).(\lambda 
-(e2: C).(\lambda (H2: (clear (CHead c4 k u) e2)).(K_ind (\lambda (k0: 
-K).((clear (CHead c4 k0 u) e2) \to (or (clear (CHead c3 k0 u) e2) (ex2 C 
-(\lambda (e1: C).(csubst0 (s k0 i0) v0 e1 e2)) (\lambda (e1: C).(clear (CHead 
-c3 k0 u) e1)))))) (\lambda (b: B).(\lambda (H3: (clear (CHead c4 (Bind b) u) 
-e2)).(eq_ind_r C (CHead c4 (Bind b) u) (\lambda (c: C).(or (clear (CHead c3 
-(Bind b) u) c) (ex2 C (\lambda (e1: C).(csubst0 (s (Bind b) i0) v0 e1 c)) 
-(\lambda (e1: C).(clear (CHead c3 (Bind b) u) e1))))) (or_intror (clear 
-(CHead c3 (Bind b) u) (CHead c4 (Bind b) u)) (ex2 C (\lambda (e1: C).(csubst0 
-(S i0) v0 e1 (CHead c4 (Bind b) u))) (\lambda (e1: C).(clear (CHead c3 (Bind 
-b) u) e1))) (ex_intro2 C (\lambda (e1: C).(csubst0 (S i0) v0 e1 (CHead c4 
-(Bind b) u))) (\lambda (e1: C).(clear (CHead c3 (Bind b) u) e1)) (CHead c3 
-(Bind b) u) (csubst0_fst_bind b i0 c3 c4 v0 H0 u) (clear_bind b c3 u))) e2 
-(clear_gen_bind b c4 e2 u H3)))) (\lambda (f: F).(\lambda (H3: (clear (CHead 
-c4 (Flat f) u) e2)).(let H_x \def (H1 e2 (clear_gen_flat f c4 e2 u H3)) in 
-(let H4 \def H_x in (or_ind (clear c3 e2) (ex2 C (\lambda (e1: C).(csubst0 i0 
-v0 e1 e2)) (\lambda (e1: C).(clear c3 e1))) (or (clear (CHead c3 (Flat f) u) 
-e2) (ex2 C (\lambda (e1: C).(csubst0 i0 v0 e1 e2)) (\lambda (e1: C).(clear 
-(CHead c3 (Flat f) u) e1)))) (\lambda (H5: (clear c3 e2)).(or_introl (clear 
-(CHead c3 (Flat f) u) e2) (ex2 C (\lambda (e1: C).(csubst0 i0 v0 e1 e2)) 
-(\lambda (e1: C).(clear (CHead c3 (Flat f) u) e1))) (clear_flat c3 e2 H5 f 
-u))) (\lambda (H5: (ex2 C (\lambda (e1: C).(csubst0 i0 v0 e1 e2)) (\lambda 
-(e1: C).(clear c3 e1)))).(ex2_ind C (\lambda (e1: C).(csubst0 i0 v0 e1 e2)) 
-(\lambda (e1: C).(clear c3 e1)) (or (clear (CHead c3 (Flat f) u) e2) (ex2 C 
-(\lambda (e1: C).(csubst0 i0 v0 e1 e2)) (\lambda (e1: C).(clear (CHead c3 
-(Flat f) u) e1)))) (\lambda (x: C).(\lambda (H6: (csubst0 i0 v0 x 
-e2)).(\lambda (H7: (clear c3 x)).(or_intror (clear (CHead c3 (Flat f) u) e2) 
-(ex2 C (\lambda (e1: C).(csubst0 i0 v0 e1 e2)) (\lambda (e1: C).(clear (CHead 
-c3 (Flat f) u) e1))) (ex_intro2 C (\lambda (e1: C).(csubst0 i0 v0 e1 e2)) 
-(\lambda (e1: C).(clear (CHead c3 (Flat f) u) e1)) x H6 (clear_flat c3 x H7 f 
-u)))))) H5)) H4))))) k H2))))))))))) (\lambda (k: K).(\lambda (i0: 
-nat).(\lambda (v0: T).(\lambda (u1: T).(\lambda (u2: T).(\lambda (H0: (subst0 
-i0 v0 u1 u2)).(\lambda (c3: C).(\lambda (c4: C).(\lambda (H1: (csubst0 i0 v0 
-c3 c4)).(\lambda (H2: ((\forall (e2: C).((clear c4 e2) \to (or (clear c3 e2) 
-(ex2 C (\lambda (e1: C).(csubst0 i0 v0 e1 e2)) (\lambda (e1: C).(clear c3 
-e1)))))))).(\lambda (e2: C).(\lambda (H3: (clear (CHead c4 k u2) e2)).(K_ind 
-(\lambda (k0: K).((clear (CHead c4 k0 u2) e2) \to (or (clear (CHead c3 k0 u1) 
-e2) (ex2 C (\lambda (e1: C).(csubst0 (s k0 i0) v0 e1 e2)) (\lambda (e1: 
-C).(clear (CHead c3 k0 u1) e1)))))) (\lambda (b: B).(\lambda (H4: (clear 
-(CHead c4 (Bind b) u2) e2)).(eq_ind_r C (CHead c4 (Bind b) u2) (\lambda (c: 
-C).(or (clear (CHead c3 (Bind b) u1) c) (ex2 C (\lambda (e1: C).(csubst0 (s 
-(Bind b) i0) v0 e1 c)) (\lambda (e1: C).(clear (CHead c3 (Bind b) u1) e1))))) 
-(or_intror (clear (CHead c3 (Bind b) u1) (CHead c4 (Bind b) u2)) (ex2 C 
-(\lambda (e1: C).(csubst0 (S i0) v0 e1 (CHead c4 (Bind b) u2))) (\lambda (e1: 
-C).(clear (CHead c3 (Bind b) u1) e1))) (ex_intro2 C (\lambda (e1: C).(csubst0 
-(S i0) v0 e1 (CHead c4 (Bind b) u2))) (\lambda (e1: C).(clear (CHead c3 (Bind 
-b) u1) e1)) (CHead c3 (Bind b) u1) (csubst0_both_bind b i0 v0 u1 u2 H0 c3 c4 
-H1) (clear_bind b c3 u1))) e2 (clear_gen_bind b c4 e2 u2 H4)))) (\lambda (f: 
-F).(\lambda (H4: (clear (CHead c4 (Flat f) u2) e2)).(let H_x \def (H2 e2 
-(clear_gen_flat f c4 e2 u2 H4)) in (let H5 \def H_x in (or_ind (clear c3 e2) 
-(ex2 C (\lambda (e1: C).(csubst0 i0 v0 e1 e2)) (\lambda (e1: C).(clear c3 
-e1))) (or (clear (CHead c3 (Flat f) u1) e2) (ex2 C (\lambda (e1: C).(csubst0 
-i0 v0 e1 e2)) (\lambda (e1: C).(clear (CHead c3 (Flat f) u1) e1)))) (\lambda 
-(H6: (clear c3 e2)).(or_introl (clear (CHead c3 (Flat f) u1) e2) (ex2 C 
-(\lambda (e1: C).(csubst0 i0 v0 e1 e2)) (\lambda (e1: C).(clear (CHead c3 
-(Flat f) u1) e1))) (clear_flat c3 e2 H6 f u1))) (\lambda (H6: (ex2 C (\lambda 
-(e1: C).(csubst0 i0 v0 e1 e2)) (\lambda (e1: C).(clear c3 e1)))).(ex2_ind C 
-(\lambda (e1: C).(csubst0 i0 v0 e1 e2)) (\lambda (e1: C).(clear c3 e1)) (or 
-(clear (CHead c3 (Flat f) u1) e2) (ex2 C (\lambda (e1: C).(csubst0 i0 v0 e1 
-e2)) (\lambda (e1: C).(clear (CHead c3 (Flat f) u1) e1)))) (\lambda (x: 
-C).(\lambda (H7: (csubst0 i0 v0 x e2)).(\lambda (H8: (clear c3 x)).(or_intror 
-(clear (CHead c3 (Flat f) u1) e2) (ex2 C (\lambda (e1: C).(csubst0 i0 v0 e1 
-e2)) (\lambda (e1: C).(clear (CHead c3 (Flat f) u1) e1))) (ex_intro2 C 
-(\lambda (e1: C).(csubst0 i0 v0 e1 e2)) (\lambda (e1: C).(clear (CHead c3 
-(Flat f) u1) e1)) x H7 (clear_flat c3 x H8 f u1)))))) H6)) H5))))) k 
-H3))))))))))))) i v c1 c2 H))))).
-(* COMMENTS
-Initial nodes: 2085
-END *)
+ \lambda (c1: C).(C_ind (\lambda (c: C).(\forall (c2: C).(\forall (v: 
+T).(\forall (i: nat).((csubst0 i v c c2) \to (\forall (e2: C).((clear c2 e2) 
+\to (or (clear c e2) (ex2 C (\lambda (e1: C).(csubst0 i v e1 e2)) (\lambda 
+(e1: C).(clear c e1))))))))))) (\lambda (n: nat).(\lambda (c2: C).(\lambda 
+(v: T).(\lambda (i: nat).(\lambda (H: (csubst0 i v (CSort n) c2)).(\lambda 
+(e2: C).(\lambda (_: (clear c2 e2)).(csubst0_gen_sort c2 v i n H (or (clear 
+(CSort n) e2) (ex2 C (\lambda (e1: C).(csubst0 i v e1 e2)) (\lambda (e1: 
+C).(clear (CSort n) e1)))))))))))) (\lambda (c: C).(\lambda (H: ((\forall 
+(c2: C).(\forall (v: T).(\forall (i: nat).((csubst0 i v c c2) \to (\forall 
+(e2: C).((clear c2 e2) \to (or (clear c e2) (ex2 C (\lambda (e1: C).(csubst0 
+i v e1 e2)) (\lambda (e1: C).(clear c e1)))))))))))).(\lambda (k: K).(\lambda 
+(t: T).(\lambda (c2: C).(\lambda (v: T).(\lambda (i: nat).(\lambda (H0: 
+(csubst0 i v (CHead c k t) c2)).(\lambda (e2: C).(\lambda (H1: (clear c2 
+e2)).(let H2 \def (csubst0_gen_head k c c2 t v i H0) in (or3_ind (ex3_2 T nat 
+(\lambda (_: T).(\lambda (j: nat).(eq nat i (s k j)))) (\lambda (u2: 
+T).(\lambda (_: nat).(eq C c2 (CHead c k u2)))) (\lambda (u2: T).(\lambda (j: 
+nat).(subst0 j v t u2)))) (ex3_2 C nat (\lambda (_: C).(\lambda (j: nat).(eq 
+nat i (s k j)))) (\lambda (c3: C).(\lambda (_: nat).(eq C c2 (CHead c3 k 
+t)))) (\lambda (c3: C).(\lambda (j: nat).(csubst0 j v c c3)))) (ex4_3 T C nat 
+(\lambda (_: T).(\lambda (_: C).(\lambda (j: nat).(eq nat i (s k j))))) 
+(\lambda (u2: T).(\lambda (c3: C).(\lambda (_: nat).(eq C c2 (CHead c3 k 
+u2))))) (\lambda (u2: T).(\lambda (_: C).(\lambda (j: nat).(subst0 j v t 
+u2)))) (\lambda (_: T).(\lambda (c3: C).(\lambda (j: nat).(csubst0 j v c 
+c3))))) (or (clear (CHead c k t) e2) (ex2 C (\lambda (e1: C).(csubst0 i v e1 
+e2)) (\lambda (e1: C).(clear (CHead c k t) e1)))) (\lambda (H3: (ex3_2 T nat 
+(\lambda (_: T).(\lambda (j: nat).(eq nat i (s k j)))) (\lambda (u2: 
+T).(\lambda (_: nat).(eq C c2 (CHead c k u2)))) (\lambda (u2: T).(\lambda (j: 
+nat).(subst0 j v t u2))))).(ex3_2_ind T nat (\lambda (_: T).(\lambda (j: 
+nat).(eq nat i (s k j)))) (\lambda (u2: T).(\lambda (_: nat).(eq C c2 (CHead 
+c k u2)))) (\lambda (u2: T).(\lambda (j: nat).(subst0 j v t u2))) (or (clear 
+(CHead c k t) e2) (ex2 C (\lambda (e1: C).(csubst0 i v e1 e2)) (\lambda (e1: 
+C).(clear (CHead c k t) e1)))) (\lambda (x0: T).(\lambda (x1: nat).(\lambda 
+(H4: (eq nat i (s k x1))).(\lambda (H5: (eq C c2 (CHead c k x0))).(\lambda 
+(H6: (subst0 x1 v t x0)).(eq_ind_r nat (s k x1) (\lambda (n: nat).(or (clear 
+(CHead c k t) e2) (ex2 C (\lambda (e1: C).(csubst0 n v e1 e2)) (\lambda (e1: 
+C).(clear (CHead c k t) e1))))) (let H7 \def (eq_ind C c2 (\lambda (c0: 
+C).(clear c0 e2)) H1 (CHead c k x0) H5) in (K_ind (\lambda (k0: K).((clear 
+(CHead c k0 x0) e2) \to (or (clear (CHead c k0 t) e2) (ex2 C (\lambda (e1: 
+C).(csubst0 (s k0 x1) v e1 e2)) (\lambda (e1: C).(clear (CHead c k0 t) 
+e1)))))) (\lambda (b: B).(\lambda (H8: (clear (CHead c (Bind b) x0) 
+e2)).(eq_ind_r C (CHead c (Bind b) x0) (\lambda (c0: C).(or (clear (CHead c 
+(Bind b) t) c0) (ex2 C (\lambda (e1: C).(csubst0 (s (Bind b) x1) v e1 c0)) 
+(\lambda (e1: C).(clear (CHead c (Bind b) t) e1))))) (or_intror (clear (CHead 
+c (Bind b) t) (CHead c (Bind b) x0)) (ex2 C (\lambda (e1: C).(csubst0 (s 
+(Bind b) x1) v e1 (CHead c (Bind b) x0))) (\lambda (e1: C).(clear (CHead c 
+(Bind b) t) e1))) (ex_intro2 C (\lambda (e1: C).(csubst0 (s (Bind b) x1) v e1 
+(CHead c (Bind b) x0))) (\lambda (e1: C).(clear (CHead c (Bind b) t) e1)) 
+(CHead c (Bind b) t) (csubst0_snd (Bind b) x1 v t x0 H6 c) (clear_bind b c 
+t))) e2 (clear_gen_bind b c e2 x0 H8)))) (\lambda (f: F).(\lambda (H8: (clear 
+(CHead c (Flat f) x0) e2)).(or_introl (clear (CHead c (Flat f) t) e2) (ex2 C 
+(\lambda (e1: C).(csubst0 (s (Flat f) x1) v e1 e2)) (\lambda (e1: C).(clear 
+(CHead c (Flat f) t) e1))) (clear_flat c e2 (clear_gen_flat f c e2 x0 H8) f 
+t)))) k H7)) i H4)))))) H3)) (\lambda (H3: (ex3_2 C nat (\lambda (_: 
+C).(\lambda (j: nat).(eq nat i (s k j)))) (\lambda (c3: C).(\lambda (_: 
+nat).(eq C c2 (CHead c3 k t)))) (\lambda (c3: C).(\lambda (j: nat).(csubst0 j 
+v c c3))))).(ex3_2_ind C nat (\lambda (_: C).(\lambda (j: nat).(eq nat i (s k 
+j)))) (\lambda (c3: C).(\lambda (_: nat).(eq C c2 (CHead c3 k t)))) (\lambda 
+(c3: C).(\lambda (j: nat).(csubst0 j v c c3))) (or (clear (CHead c k t) e2) 
+(ex2 C (\lambda (e1: C).(csubst0 i v e1 e2)) (\lambda (e1: C).(clear (CHead c 
+k t) e1)))) (\lambda (x0: C).(\lambda (x1: nat).(\lambda (H4: (eq nat i (s k 
+x1))).(\lambda (H5: (eq C c2 (CHead x0 k t))).(\lambda (H6: (csubst0 x1 v c 
+x0)).(eq_ind_r nat (s k x1) (\lambda (n: nat).(or (clear (CHead c k t) e2) 
+(ex2 C (\lambda (e1: C).(csubst0 n v e1 e2)) (\lambda (e1: C).(clear (CHead c 
+k t) e1))))) (let H7 \def (eq_ind C c2 (\lambda (c0: C).(clear c0 e2)) H1 
+(CHead x0 k t) H5) in (K_ind (\lambda (k0: K).((clear (CHead x0 k0 t) e2) \to 
+(or (clear (CHead c k0 t) e2) (ex2 C (\lambda (e1: C).(csubst0 (s k0 x1) v e1 
+e2)) (\lambda (e1: C).(clear (CHead c k0 t) e1)))))) (\lambda (b: B).(\lambda 
+(H8: (clear (CHead x0 (Bind b) t) e2)).(eq_ind_r C (CHead x0 (Bind b) t) 
+(\lambda (c0: C).(or (clear (CHead c (Bind b) t) c0) (ex2 C (\lambda (e1: 
+C).(csubst0 (s (Bind b) x1) v e1 c0)) (\lambda (e1: C).(clear (CHead c (Bind 
+b) t) e1))))) (or_intror (clear (CHead c (Bind b) t) (CHead x0 (Bind b) t)) 
+(ex2 C (\lambda (e1: C).(csubst0 (s (Bind b) x1) v e1 (CHead x0 (Bind b) t))) 
+(\lambda (e1: C).(clear (CHead c (Bind b) t) e1))) (ex_intro2 C (\lambda (e1: 
+C).(csubst0 (s (Bind b) x1) v e1 (CHead x0 (Bind b) t))) (\lambda (e1: 
+C).(clear (CHead c (Bind b) t) e1)) (CHead c (Bind b) t) (csubst0_fst (Bind 
+b) x1 c x0 v H6 t) (clear_bind b c t))) e2 (clear_gen_bind b x0 e2 t H8)))) 
+(\lambda (f: F).(\lambda (H8: (clear (CHead x0 (Flat f) t) e2)).(let H_x \def 
+(H x0 v x1 H6 e2 (clear_gen_flat f x0 e2 t H8)) in (let H9 \def H_x in 
+(or_ind (clear c e2) (ex2 C (\lambda (e1: C).(csubst0 x1 v e1 e2)) (\lambda 
+(e1: C).(clear c e1))) (or (clear (CHead c (Flat f) t) e2) (ex2 C (\lambda 
+(e1: C).(csubst0 (s (Flat f) x1) v e1 e2)) (\lambda (e1: C).(clear (CHead c 
+(Flat f) t) e1)))) (\lambda (H10: (clear c e2)).(or_introl (clear (CHead c 
+(Flat f) t) e2) (ex2 C (\lambda (e1: C).(csubst0 (s (Flat f) x1) v e1 e2)) 
+(\lambda (e1: C).(clear (CHead c (Flat f) t) e1))) (clear_flat c e2 H10 f 
+t))) (\lambda (H10: (ex2 C (\lambda (e1: C).(csubst0 x1 v e1 e2)) (\lambda 
+(e1: C).(clear c e1)))).(ex2_ind C (\lambda (e1: C).(csubst0 x1 v e1 e2)) 
+(\lambda (e1: C).(clear c e1)) (or (clear (CHead c (Flat f) t) e2) (ex2 C 
+(\lambda (e1: C).(csubst0 (s (Flat f) x1) v e1 e2)) (\lambda (e1: C).(clear 
+(CHead c (Flat f) t) e1)))) (\lambda (x: C).(\lambda (H11: (csubst0 x1 v x 
+e2)).(\lambda (H12: (clear c x)).(or_intror (clear (CHead c (Flat f) t) e2) 
+(ex2 C (\lambda (e1: C).(csubst0 (s (Flat f) x1) v e1 e2)) (\lambda (e1: 
+C).(clear (CHead c (Flat f) t) e1))) (ex_intro2 C (\lambda (e1: C).(csubst0 
+(s (Flat f) x1) v e1 e2)) (\lambda (e1: C).(clear (CHead c (Flat f) t) e1)) x 
+H11 (clear_flat c x H12 f t)))))) H10)) H9))))) k H7)) i H4)))))) H3)) 
+(\lambda (H3: (ex4_3 T C nat (\lambda (_: T).(\lambda (_: C).(\lambda (j: 
+nat).(eq nat i (s k j))))) (\lambda (u2: T).(\lambda (c3: C).(\lambda (_: 
+nat).(eq C c2 (CHead c3 k u2))))) (\lambda (u2: T).(\lambda (_: C).(\lambda 
+(j: nat).(subst0 j v t u2)))) (\lambda (_: T).(\lambda (c3: C).(\lambda (j: 
+nat).(csubst0 j v c c3)))))).(ex4_3_ind T C nat (\lambda (_: T).(\lambda (_: 
+C).(\lambda (j: nat).(eq nat i (s k j))))) (\lambda (u2: T).(\lambda (c3: 
+C).(\lambda (_: nat).(eq C c2 (CHead c3 k u2))))) (\lambda (u2: T).(\lambda 
+(_: C).(\lambda (j: nat).(subst0 j v t u2)))) (\lambda (_: T).(\lambda (c3: 
+C).(\lambda (j: nat).(csubst0 j v c c3)))) (or (clear (CHead c k t) e2) (ex2 
+C (\lambda (e1: C).(csubst0 i v e1 e2)) (\lambda (e1: C).(clear (CHead c k t) 
+e1)))) (\lambda (x0: T).(\lambda (x1: C).(\lambda (x2: nat).(\lambda (H4: (eq 
+nat i (s k x2))).(\lambda (H5: (eq C c2 (CHead x1 k x0))).(\lambda (H6: 
+(subst0 x2 v t x0)).(\lambda (H7: (csubst0 x2 v c x1)).(eq_ind_r nat (s k x2) 
+(\lambda (n: nat).(or (clear (CHead c k t) e2) (ex2 C (\lambda (e1: 
+C).(csubst0 n v e1 e2)) (\lambda (e1: C).(clear (CHead c k t) e1))))) (let H8 
+\def (eq_ind C c2 (\lambda (c0: C).(clear c0 e2)) H1 (CHead x1 k x0) H5) in 
+(K_ind (\lambda (k0: K).((clear (CHead x1 k0 x0) e2) \to (or (clear (CHead c 
+k0 t) e2) (ex2 C (\lambda (e1: C).(csubst0 (s k0 x2) v e1 e2)) (\lambda (e1: 
+C).(clear (CHead c k0 t) e1)))))) (\lambda (b: B).(\lambda (H9: (clear (CHead 
+x1 (Bind b) x0) e2)).(eq_ind_r C (CHead x1 (Bind b) x0) (\lambda (c0: C).(or 
+(clear (CHead c (Bind b) t) c0) (ex2 C (\lambda (e1: C).(csubst0 (s (Bind b) 
+x2) v e1 c0)) (\lambda (e1: C).(clear (CHead c (Bind b) t) e1))))) (or_intror 
+(clear (CHead c (Bind b) t) (CHead x1 (Bind b) x0)) (ex2 C (\lambda (e1: 
+C).(csubst0 (s (Bind b) x2) v e1 (CHead x1 (Bind b) x0))) (\lambda (e1: 
+C).(clear (CHead c (Bind b) t) e1))) (ex_intro2 C (\lambda (e1: C).(csubst0 
+(s (Bind b) x2) v e1 (CHead x1 (Bind b) x0))) (\lambda (e1: C).(clear (CHead 
+c (Bind b) t) e1)) (CHead c (Bind b) t) (csubst0_both (Bind b) x2 v t x0 H6 c 
+x1 H7) (clear_bind b c t))) e2 (clear_gen_bind b x1 e2 x0 H9)))) (\lambda (f: 
+F).(\lambda (H9: (clear (CHead x1 (Flat f) x0) e2)).(let H_x \def (H x1 v x2 
+H7 e2 (clear_gen_flat f x1 e2 x0 H9)) in (let H10 \def H_x in (or_ind (clear 
+c e2) (ex2 C (\lambda (e1: C).(csubst0 x2 v e1 e2)) (\lambda (e1: C).(clear c 
+e1))) (or (clear (CHead c (Flat f) t) e2) (ex2 C (\lambda (e1: C).(csubst0 (s 
+(Flat f) x2) v e1 e2)) (\lambda (e1: C).(clear (CHead c (Flat f) t) e1)))) 
+(\lambda (H11: (clear c e2)).(or_introl (clear (CHead c (Flat f) t) e2) (ex2 
+C (\lambda (e1: C).(csubst0 (s (Flat f) x2) v e1 e2)) (\lambda (e1: C).(clear 
+(CHead c (Flat f) t) e1))) (clear_flat c e2 H11 f t))) (\lambda (H11: (ex2 C 
+(\lambda (e1: C).(csubst0 x2 v e1 e2)) (\lambda (e1: C).(clear c 
+e1)))).(ex2_ind C (\lambda (e1: C).(csubst0 x2 v e1 e2)) (\lambda (e1: 
+C).(clear c e1)) (or (clear (CHead c (Flat f) t) e2) (ex2 C (\lambda (e1: 
+C).(csubst0 (s (Flat f) x2) v e1 e2)) (\lambda (e1: C).(clear (CHead c (Flat 
+f) t) e1)))) (\lambda (x: C).(\lambda (H12: (csubst0 x2 v x e2)).(\lambda 
+(H13: (clear c x)).(or_intror (clear (CHead c (Flat f) t) e2) (ex2 C (\lambda 
+(e1: C).(csubst0 (s (Flat f) x2) v e1 e2)) (\lambda (e1: C).(clear (CHead c 
+(Flat f) t) e1))) (ex_intro2 C (\lambda (e1: C).(csubst0 (s (Flat f) x2) v e1 
+e2)) (\lambda (e1: C).(clear (CHead c (Flat f) t) e1)) x H12 (clear_flat c x 
+H13 f t)))))) H11)) H10))))) k H8)) i H4)))))))) H3)) H2)))))))))))) c1).
 
index 0068e19f6f224841ec240067ea85953f302d5f68..eec1e74b7fba7945b18054fa2948d42332c4702e 100644 (file)
@@ -14,9 +14,9 @@
 
 (* This file was automatically generated: do not edit *********************)
 
-include "Basic-1/subst0/defs.ma".
+include "basic_1/subst0/defs.ma".
 
-include "Basic-1/C/defs.ma".
+include "basic_1/C/defs.ma".
 
 inductive csubst0: nat \to (T \to (C \to (C \to Prop))) \def
 | csubst0_snd: \forall (k: K).(\forall (i: nat).(\forall (v: T).(\forall (u1: 
index b6bc6cae7511c81cf3b56d6f05d759203ef71386..f4853b5f78fe970dd4e47312cf5dd645e030c4d1 100644 (file)
 
 (* This file was automatically generated: do not edit *********************)
 
-include "Basic-1/csubst0/fwd.ma".
+include "basic_1/csubst0/fwd.ma".
 
-include "Basic-1/drop/fwd.ma".
-
-include "Basic-1/s/props.ma".
+include "basic_1/drop/fwd.ma".
 
 theorem csubst0_drop_gt:
  \forall (n: nat).(\forall (i: nat).((lt i n) \to (\forall (c1: C).(\forall 
@@ -42,88 +40,88 @@ e)).(and3_ind (eq C e (CSort n1)) (eq nat (S n0) O) (eq nat O O) (drop (S n0)
 O c2 e) (\lambda (H3: (eq C e (CSort n1))).(\lambda (H4: (eq nat (S n0) 
 O)).(\lambda (_: (eq nat O O)).(eq_ind_r C (CSort n1) (\lambda (c: C).(drop 
 (S n0) O c2 c)) (let H6 \def (eq_ind nat (S n0) (\lambda (ee: nat).(match ee 
-in nat return (\lambda (_: nat).Prop) with [O \Rightarrow False | (S _) 
-\Rightarrow True])) I O H4) in (False_ind (drop (S n0) O c2 (CSort n1)) H6)) 
-e H3)))) (drop_gen_sort n1 (S n0) O e H2)))))))) (\lambda (c: C).(\lambda 
-(H1: ((\forall (c2: C).(\forall (v: T).((csubst0 i v c c2) \to (\forall (e: 
-C).((drop (S n0) O c e) \to (drop (S n0) O c2 e)))))))).(\lambda (k: 
-K).(\lambda (t: T).(\lambda (c2: C).(\lambda (v: T).(\lambda (H2: (csubst0 i 
-v (CHead c k t) c2)).(\lambda (e: C).(\lambda (H3: (drop (S n0) O (CHead c k 
-t) e)).(or3_ind (ex3_2 T nat (\lambda (_: T).(\lambda (j: nat).(eq nat i (s k 
-j)))) (\lambda (u2: T).(\lambda (_: nat).(eq C c2 (CHead c k u2)))) (\lambda 
-(u2: T).(\lambda (j: nat).(subst0 j v t u2)))) (ex3_2 C nat (\lambda (_: 
-C).(\lambda (j: nat).(eq nat i (s k j)))) (\lambda (c3: C).(\lambda (_: 
+with [O \Rightarrow False | (S _) \Rightarrow True])) I O H4) in (False_ind 
+(drop (S n0) O c2 (CSort n1)) H6)) e H3)))) (drop_gen_sort n1 (S n0) O e 
+H2)))))))) (\lambda (c: C).(\lambda (H1: ((\forall (c2: C).(\forall (v: 
+T).((csubst0 i v c c2) \to (\forall (e: C).((drop (S n0) O c e) \to (drop (S 
+n0) O c2 e)))))))).(\lambda (k: K).(\lambda (t: T).(\lambda (c2: C).(\lambda 
+(v: T).(\lambda (H2: (csubst0 i v (CHead c k t) c2)).(\lambda (e: C).(\lambda 
+(H3: (drop (S n0) O (CHead c k t) e)).(let H4 \def (csubst0_gen_head k c c2 t 
+v i H2) in (or3_ind (ex3_2 T nat (\lambda (_: T).(\lambda (j: nat).(eq nat i 
+(s k j)))) (\lambda (u2: T).(\lambda (_: nat).(eq C c2 (CHead c k u2)))) 
+(\lambda (u2: T).(\lambda (j: nat).(subst0 j v t u2)))) (ex3_2 C nat (\lambda 
+(_: C).(\lambda (j: nat).(eq nat i (s k j)))) (\lambda (c3: C).(\lambda (_: 
 nat).(eq C c2 (CHead c3 k t)))) (\lambda (c3: C).(\lambda (j: nat).(csubst0 j 
 v c c3)))) (ex4_3 T C nat (\lambda (_: T).(\lambda (_: C).(\lambda (j: 
 nat).(eq nat i (s k j))))) (\lambda (u2: T).(\lambda (c3: C).(\lambda (_: 
 nat).(eq C c2 (CHead c3 k u2))))) (\lambda (u2: T).(\lambda (_: C).(\lambda 
 (j: nat).(subst0 j v t u2)))) (\lambda (_: T).(\lambda (c3: C).(\lambda (j: 
-nat).(csubst0 j v c c3))))) (drop (S n0) O c2 e) (\lambda (H4: (ex3_2 T nat 
+nat).(csubst0 j v c c3))))) (drop (S n0) O c2 e) (\lambda (H5: (ex3_2 T nat 
 (\lambda (_: T).(\lambda (j: nat).(eq nat i (s k j)))) (\lambda (u2: 
 T).(\lambda (_: nat).(eq C c2 (CHead c k u2)))) (\lambda (u2: T).(\lambda (j: 
 nat).(subst0 j v t u2))))).(ex3_2_ind T nat (\lambda (_: T).(\lambda (j: 
 nat).(eq nat i (s k j)))) (\lambda (u2: T).(\lambda (_: nat).(eq C c2 (CHead 
 c k u2)))) (\lambda (u2: T).(\lambda (j: nat).(subst0 j v t u2))) (drop (S 
-n0) O c2 e) (\lambda (x0: T).(\lambda (x1: nat).(\lambda (H5: (eq nat i (s k 
-x1))).(\lambda (H6: (eq C c2 (CHead c k x0))).(\lambda (_: (subst0 x1 v t 
+n0) O c2 e) (\lambda (x0: T).(\lambda (x1: nat).(\lambda (H6: (eq nat i (s k 
+x1))).(\lambda (H7: (eq C c2 (CHead c k x0))).(\lambda (_: (subst0 x1 v t 
 x0)).(eq_ind_r C (CHead c k x0) (\lambda (c0: C).(drop (S n0) O c0 e)) (let 
-H8 \def (eq_ind nat i (\lambda (n1: nat).(\forall (c3: C).(\forall (v0: 
+H9 \def (eq_ind nat i (\lambda (n1: nat).(\forall (c3: C).(\forall (v0: 
 T).((csubst0 n1 v0 c c3) \to (\forall (e0: C).((drop (S n0) O c e0) \to (drop 
-(S n0) O c3 e0))))))) H1 (s k x1) H5) in (let H9 \def (eq_ind nat i (\lambda 
-(n1: nat).(lt n1 (S n0))) H0 (s k x1) H5) in (K_ind (\lambda (k0: K).((drop 
+(S n0) O c3 e0))))))) H1 (s k x1) H6) in (let H10 \def (eq_ind nat i (\lambda 
+(n1: nat).(lt n1 (S n0))) H0 (s k x1) H6) in (K_ind (\lambda (k0: K).((drop 
 (r k0 n0) O c e) \to (((\forall (c3: C).(\forall (v0: T).((csubst0 (s k0 x1) 
 v0 c c3) \to (\forall (e0: C).((drop (S n0) O c e0) \to (drop (S n0) O c3 
 e0))))))) \to ((lt (s k0 x1) (S n0)) \to (drop (S n0) O (CHead c k0 x0) 
-e))))) (\lambda (b: B).(\lambda (H10: (drop (r (Bind b) n0) O c e)).(\lambda 
+e))))) (\lambda (b: B).(\lambda (H11: (drop (r (Bind b) n0) O c e)).(\lambda 
 (_: ((\forall (c3: C).(\forall (v0: T).((csubst0 (s (Bind b) x1) v0 c c3) \to 
 (\forall (e0: C).((drop (S n0) O c e0) \to (drop (S n0) O c3 
 e0)))))))).(\lambda (_: (lt (s (Bind b) x1) (S n0))).(drop_drop (Bind b) n0 c 
-e H10 x0))))) (\lambda (f: F).(\lambda (H10: (drop (r (Flat f) n0) O c 
+e H11 x0))))) (\lambda (f: F).(\lambda (H11: (drop (r (Flat f) n0) O c 
 e)).(\lambda (_: ((\forall (c3: C).(\forall (v0: T).((csubst0 (s (Flat f) x1) 
 v0 c c3) \to (\forall (e0: C).((drop (S n0) O c e0) \to (drop (S n0) O c3 
-e0)))))))).(\lambda (H12: (lt (s (Flat f) x1) (S n0))).(or_ind (eq nat x1 O) 
+e0)))))))).(\lambda (H13: (lt (s (Flat f) x1) (S n0))).(or_ind (eq nat x1 O) 
 (ex2 nat (\lambda (m: nat).(eq nat x1 (S m))) (\lambda (m: nat).(lt m n0))) 
 (drop (S n0) O (CHead c (Flat f) x0) e) (\lambda (_: (eq nat x1 
-O)).(drop_drop (Flat f) n0 c e H10 x0)) (\lambda (H13: (ex2 nat (\lambda (m: 
+O)).(drop_drop (Flat f) n0 c e H11 x0)) (\lambda (H14: (ex2 nat (\lambda (m: 
 nat).(eq nat x1 (S m))) (\lambda (m: nat).(lt m n0)))).(ex2_ind nat (\lambda 
 (m: nat).(eq nat x1 (S m))) (\lambda (m: nat).(lt m n0)) (drop (S n0) O 
 (CHead c (Flat f) x0) e) (\lambda (x: nat).(\lambda (_: (eq nat x1 (S 
-x))).(\lambda (_: (lt x n0)).(drop_drop (Flat f) n0 c e H10 x0)))) H13)) 
-(lt_gen_xS x1 n0 H12)))))) k (drop_gen_drop k c e t n0 H3) H8 H9))) c2 
-H6)))))) H4)) (\lambda (H4: (ex3_2 C nat (\lambda (_: C).(\lambda (j: 
+x))).(\lambda (_: (lt x n0)).(drop_drop (Flat f) n0 c e H11 x0)))) H14)) 
+(lt_gen_xS x1 n0 H13)))))) k (drop_gen_drop k c e t n0 H3) H9 H10))) c2 
+H7)))))) H5)) (\lambda (H5: (ex3_2 C nat (\lambda (_: C).(\lambda (j: 
 nat).(eq nat i (s k j)))) (\lambda (c3: C).(\lambda (_: nat).(eq C c2 (CHead 
 c3 k t)))) (\lambda (c3: C).(\lambda (j: nat).(csubst0 j v c 
 c3))))).(ex3_2_ind C nat (\lambda (_: C).(\lambda (j: nat).(eq nat i (s k 
 j)))) (\lambda (c3: C).(\lambda (_: nat).(eq C c2 (CHead c3 k t)))) (\lambda 
 (c3: C).(\lambda (j: nat).(csubst0 j v c c3))) (drop (S n0) O c2 e) (\lambda 
-(x0: C).(\lambda (x1: nat).(\lambda (H5: (eq nat i (s k x1))).(\lambda (H6
-(eq C c2 (CHead x0 k t))).(\lambda (H7: (csubst0 x1 v c x0)).(eq_ind_r C 
-(CHead x0 k t) (\lambda (c0: C).(drop (S n0) O c0 e)) (let H8 \def (eq_ind 
+(x0: C).(\lambda (x1: nat).(\lambda (H6: (eq nat i (s k x1))).(\lambda (H7
+(eq C c2 (CHead x0 k t))).(\lambda (H8: (csubst0 x1 v c x0)).(eq_ind_r C 
+(CHead x0 k t) (\lambda (c0: C).(drop (S n0) O c0 e)) (let H9 \def (eq_ind 
 nat i (\lambda (n1: nat).(\forall (c3: C).(\forall (v0: T).((csubst0 n1 v0 c 
 c3) \to (\forall (e0: C).((drop (S n0) O c e0) \to (drop (S n0) O c3 
-e0))))))) H1 (s k x1) H5) in (let H9 \def (eq_ind nat i (\lambda (n1: 
-nat).(lt n1 (S n0))) H0 (s k x1) H5) in (K_ind (\lambda (k0: K).((drop (r k0 
+e0))))))) H1 (s k x1) H6) in (let H10 \def (eq_ind nat i (\lambda (n1: 
+nat).(lt n1 (S n0))) H0 (s k x1) H6) in (K_ind (\lambda (k0: K).((drop (r k0 
 n0) O c e) \to (((\forall (c3: C).(\forall (v0: T).((csubst0 (s k0 x1) v0 c 
 c3) \to (\forall (e0: C).((drop (S n0) O c e0) \to (drop (S n0) O c3 
 e0))))))) \to ((lt (s k0 x1) (S n0)) \to (drop (S n0) O (CHead x0 k0 t) 
-e))))) (\lambda (b: B).(\lambda (H10: (drop (r (Bind b) n0) O c e)).(\lambda 
+e))))) (\lambda (b: B).(\lambda (H11: (drop (r (Bind b) n0) O c e)).(\lambda 
 (_: ((\forall (c3: C).(\forall (v0: T).((csubst0 (s (Bind b) x1) v0 c c3) \to 
 (\forall (e0: C).((drop (S n0) O c e0) \to (drop (S n0) O c3 
-e0)))))))).(\lambda (H12: (lt (s (Bind b) x1) (S n0))).(drop_drop (Bind b) n0 
-x0 e (H x1 (lt_S_n x1 n0 H12) c x0 v H7 e H10) t))))) (\lambda (f: 
-F).(\lambda (H10: (drop (r (Flat f) n0) O c e)).(\lambda (H11: ((\forall (c3: 
+e0)))))))).(\lambda (H13: (lt (s (Bind b) x1) (S n0))).(drop_drop (Bind b) n0 
+x0 e (H x1 (lt_S_n x1 n0 H13) c x0 v H8 e H11) t))))) (\lambda (f: 
+F).(\lambda (H11: (drop (r (Flat f) n0) O c e)).(\lambda (H12: ((\forall (c3: 
 C).(\forall (v0: T).((csubst0 (s (Flat f) x1) v0 c c3) \to (\forall (e0: 
-C).((drop (S n0) O c e0) \to (drop (S n0) O c3 e0)))))))).(\lambda (H12: (lt 
+C).((drop (S n0) O c e0) \to (drop (S n0) O c3 e0)))))))).(\lambda (H13: (lt 
 (s (Flat f) x1) (S n0))).(or_ind (eq nat x1 O) (ex2 nat (\lambda (m: nat).(eq 
 nat x1 (S m))) (\lambda (m: nat).(lt m n0))) (drop (S n0) O (CHead x0 (Flat 
-f) t) e) (\lambda (_: (eq nat x1 O)).(drop_drop (Flat f) n0 x0 e (H11 x0 v H7 
-e H10) t)) (\lambda (H13: (ex2 nat (\lambda (m: nat).(eq nat x1 (S m))) 
+f) t) e) (\lambda (_: (eq nat x1 O)).(drop_drop (Flat f) n0 x0 e (H12 x0 v H8 
+e H11) t)) (\lambda (H14: (ex2 nat (\lambda (m: nat).(eq nat x1 (S m))) 
 (\lambda (m: nat).(lt m n0)))).(ex2_ind nat (\lambda (m: nat).(eq nat x1 (S 
 m))) (\lambda (m: nat).(lt m n0)) (drop (S n0) O (CHead x0 (Flat f) t) e) 
 (\lambda (x: nat).(\lambda (_: (eq nat x1 (S x))).(\lambda (_: (lt x 
-n0)).(drop_drop (Flat f) n0 x0 e (H11 x0 v H7 e H10) t)))) H13)) (lt_gen_xS 
-x1 n0 H12)))))) k (drop_gen_drop k c e t n0 H3) H8 H9))) c2 H6)))))) H4)) 
-(\lambda (H4: (ex4_3 T C nat (\lambda (_: T).(\lambda (_: C).(\lambda (j: 
+n0)).(drop_drop (Flat f) n0 x0 e (H12 x0 v H8 e H11) t)))) H14)) (lt_gen_xS 
+x1 n0 H13)))))) k (drop_gen_drop k c e t n0 H3) H9 H10))) c2 H7)))))) H5)) 
+(\lambda (H5: (ex4_3 T C nat (\lambda (_: T).(\lambda (_: C).(\lambda (j: 
 nat).(eq nat i (s k j))))) (\lambda (u2: T).(\lambda (c3: C).(\lambda (_: 
 nat).(eq C c2 (CHead c3 k u2))))) (\lambda (u2: T).(\lambda (_: C).(\lambda 
 (j: nat).(subst0 j v t u2)))) (\lambda (_: T).(\lambda (c3: C).(\lambda (j: 
@@ -132,38 +130,35 @@ C).(\lambda (j: nat).(eq nat i (s k j))))) (\lambda (u2: T).(\lambda (c3:
 C).(\lambda (_: nat).(eq C c2 (CHead c3 k u2))))) (\lambda (u2: T).(\lambda 
 (_: C).(\lambda (j: nat).(subst0 j v t u2)))) (\lambda (_: T).(\lambda (c3: 
 C).(\lambda (j: nat).(csubst0 j v c c3)))) (drop (S n0) O c2 e) (\lambda (x0: 
-T).(\lambda (x1: C).(\lambda (x2: nat).(\lambda (H5: (eq nat i (s k 
-x2))).(\lambda (H6: (eq C c2 (CHead x1 k x0))).(\lambda (_: (subst0 x2 v t 
-x0)).(\lambda (H8: (csubst0 x2 v c x1)).(eq_ind_r C (CHead x1 k x0) (\lambda 
-(c0: C).(drop (S n0) O c0 e)) (let H9 \def (eq_ind nat i (\lambda (n1: 
+T).(\lambda (x1: C).(\lambda (x2: nat).(\lambda (H6: (eq nat i (s k 
+x2))).(\lambda (H7: (eq C c2 (CHead x1 k x0))).(\lambda (_: (subst0 x2 v t 
+x0)).(\lambda (H9: (csubst0 x2 v c x1)).(eq_ind_r C (CHead x1 k x0) (\lambda 
+(c0: C).(drop (S n0) O c0 e)) (let H10 \def (eq_ind nat i (\lambda (n1: 
 nat).(\forall (c3: C).(\forall (v0: T).((csubst0 n1 v0 c c3) \to (\forall 
-(e0: C).((drop (S n0) O c e0) \to (drop (S n0) O c3 e0))))))) H1 (s k x2) H5
-in (let H10 \def (eq_ind nat i (\lambda (n1: nat).(lt n1 (S n0))) H0 (s k x2) 
-H5) in (K_ind (\lambda (k0: K).((drop (r k0 n0) O c e) \to (((\forall (c3: 
+(e0: C).((drop (S n0) O c e0) \to (drop (S n0) O c3 e0))))))) H1 (s k x2) H6
+in (let H11 \def (eq_ind nat i (\lambda (n1: nat).(lt n1 (S n0))) H0 (s k x2) 
+H6) in (K_ind (\lambda (k0: K).((drop (r k0 n0) O c e) \to (((\forall (c3: 
 C).(\forall (v0: T).((csubst0 (s k0 x2) v0 c c3) \to (\forall (e0: C).((drop 
 (S n0) O c e0) \to (drop (S n0) O c3 e0))))))) \to ((lt (s k0 x2) (S n0)) \to 
-(drop (S n0) O (CHead x1 k0 x0) e))))) (\lambda (b: B).(\lambda (H11: (drop 
+(drop (S n0) O (CHead x1 k0 x0) e))))) (\lambda (b: B).(\lambda (H12: (drop 
 (r (Bind b) n0) O c e)).(\lambda (_: ((\forall (c3: C).(\forall (v0: 
 T).((csubst0 (s (Bind b) x2) v0 c c3) \to (\forall (e0: C).((drop (S n0) O c 
-e0) \to (drop (S n0) O c3 e0)))))))).(\lambda (H13: (lt (s (Bind b) x2) (S 
-n0))).(drop_drop (Bind b) n0 x1 e (H x2 (lt_S_n x2 n0 H13) c x1 v H8 e H11
-x0))))) (\lambda (f: F).(\lambda (H11: (drop (r (Flat f) n0) O c e)).(\lambda 
-(H12: ((\forall (c3: C).(\forall (v0: T).((csubst0 (s (Flat f) x2) v0 c c3) 
+e0) \to (drop (S n0) O c3 e0)))))))).(\lambda (H14: (lt (s (Bind b) x2) (S 
+n0))).(drop_drop (Bind b) n0 x1 e (H x2 (lt_S_n x2 n0 H14) c x1 v H9 e H12
+x0))))) (\lambda (f: F).(\lambda (H12: (drop (r (Flat f) n0) O c e)).(\lambda 
+(H13: ((\forall (c3: C).(\forall (v0: T).((csubst0 (s (Flat f) x2) v0 c c3) 
 \to (\forall (e0: C).((drop (S n0) O c e0) \to (drop (S n0) O c3 
-e0)))))))).(\lambda (H13: (lt (s (Flat f) x2) (S n0))).(or_ind (eq nat x2 O) 
+e0)))))))).(\lambda (H14: (lt (s (Flat f) x2) (S n0))).(or_ind (eq nat x2 O) 
 (ex2 nat (\lambda (m: nat).(eq nat x2 (S m))) (\lambda (m: nat).(lt m n0))) 
 (drop (S n0) O (CHead x1 (Flat f) x0) e) (\lambda (_: (eq nat x2 
-O)).(drop_drop (Flat f) n0 x1 e (H12 x1 v H8 e H11) x0)) (\lambda (H14: (ex2 
+O)).(drop_drop (Flat f) n0 x1 e (H13 x1 v H9 e H12) x0)) (\lambda (H15: (ex2 
 nat (\lambda (m: nat).(eq nat x2 (S m))) (\lambda (m: nat).(lt m 
 n0)))).(ex2_ind nat (\lambda (m: nat).(eq nat x2 (S m))) (\lambda (m: 
 nat).(lt m n0)) (drop (S n0) O (CHead x1 (Flat f) x0) e) (\lambda (x: 
 nat).(\lambda (_: (eq nat x2 (S x))).(\lambda (_: (lt x n0)).(drop_drop (Flat 
-f) n0 x1 e (H12 x1 v H8 e H11) x0)))) H14)) (lt_gen_xS x2 n0 H13)))))) k 
-(drop_gen_drop k c e t n0 H3) H9 H10))) c2 H6)))))))) H4)) (csubst0_gen_head 
-k c c2 t v i H2))))))))))) c1)))))) n).
-(* COMMENTS
-Initial nodes: 3092
-END *)
+f) n0 x1 e (H13 x1 v H9 e H12) x0)))) H15)) (lt_gen_xS x2 n0 H14)))))) k 
+(drop_gen_drop k c e t n0 H3) H10 H11))) c2 H7)))))))) H5)) H4))))))))))) 
+c1)))))) n).
 
 theorem csubst0_drop_gt_back:
  \forall (n: nat).(\forall (i: nat).((lt i n) \to (\forall (c1: C).(\forall 
@@ -188,81 +183,82 @@ e)).(csubst0_gen_sort c2 v i n1 H1 (drop (S n0) O (CSort n1) e))))))))
 c c2) \to (\forall (e: C).((drop (S n0) O c2 e) \to (drop (S n0) O c 
 e)))))))).(\lambda (k: K).(\lambda (t: T).(\lambda (c2: C).(\lambda (v: 
 T).(\lambda (H2: (csubst0 i v (CHead c k t) c2)).(\lambda (e: C).(\lambda 
-(H3: (drop (S n0) O c2 e)).(or3_ind (ex3_2 T nat (\lambda (_: T).(\lambda (j: 
-nat).(eq nat i (s k j)))) (\lambda (u2: T).(\lambda (_: nat).(eq C c2 (CHead 
-c k u2)))) (\lambda (u2: T).(\lambda (j: nat).(subst0 j v t u2)))) (ex3_2 C 
-nat (\lambda (_: C).(\lambda (j: nat).(eq nat i (s k j)))) (\lambda (c3: 
-C).(\lambda (_: nat).(eq C c2 (CHead c3 k t)))) (\lambda (c3: C).(\lambda (j: 
-nat).(csubst0 j v c c3)))) (ex4_3 T C nat (\lambda (_: T).(\lambda (_: 
-C).(\lambda (j: nat).(eq nat i (s k j))))) (\lambda (u2: T).(\lambda (c3: 
-C).(\lambda (_: nat).(eq C c2 (CHead c3 k u2))))) (\lambda (u2: T).(\lambda 
-(_: C).(\lambda (j: nat).(subst0 j v t u2)))) (\lambda (_: T).(\lambda (c3: 
-C).(\lambda (j: nat).(csubst0 j v c c3))))) (drop (S n0) O (CHead c k t) e) 
-(\lambda (H4: (ex3_2 T nat (\lambda (_: T).(\lambda (j: nat).(eq nat i (s k 
-j)))) (\lambda (u2: T).(\lambda (_: nat).(eq C c2 (CHead c k u2)))) (\lambda 
-(u2: T).(\lambda (j: nat).(subst0 j v t u2))))).(ex3_2_ind T nat (\lambda (_: 
+(H3: (drop (S n0) O c2 e)).(let H4 \def (csubst0_gen_head k c c2 t v i H2) in 
+(or3_ind (ex3_2 T nat (\lambda (_: T).(\lambda (j: nat).(eq nat i (s k j)))) 
+(\lambda (u2: T).(\lambda (_: nat).(eq C c2 (CHead c k u2)))) (\lambda (u2: 
+T).(\lambda (j: nat).(subst0 j v t u2)))) (ex3_2 C nat (\lambda (_: 
+C).(\lambda (j: nat).(eq nat i (s k j)))) (\lambda (c3: C).(\lambda (_: 
+nat).(eq C c2 (CHead c3 k t)))) (\lambda (c3: C).(\lambda (j: nat).(csubst0 j 
+v c c3)))) (ex4_3 T C nat (\lambda (_: T).(\lambda (_: C).(\lambda (j: 
+nat).(eq nat i (s k j))))) (\lambda (u2: T).(\lambda (c3: C).(\lambda (_: 
+nat).(eq C c2 (CHead c3 k u2))))) (\lambda (u2: T).(\lambda (_: C).(\lambda 
+(j: nat).(subst0 j v t u2)))) (\lambda (_: T).(\lambda (c3: C).(\lambda (j: 
+nat).(csubst0 j v c c3))))) (drop (S n0) O (CHead c k t) e) (\lambda (H5: 
+(ex3_2 T nat (\lambda (_: T).(\lambda (j: nat).(eq nat i (s k j)))) (\lambda 
+(u2: T).(\lambda (_: nat).(eq C c2 (CHead c k u2)))) (\lambda (u2: 
+T).(\lambda (j: nat).(subst0 j v t u2))))).(ex3_2_ind T nat (\lambda (_: 
 T).(\lambda (j: nat).(eq nat i (s k j)))) (\lambda (u2: T).(\lambda (_: 
 nat).(eq C c2 (CHead c k u2)))) (\lambda (u2: T).(\lambda (j: nat).(subst0 j 
 v t u2))) (drop (S n0) O (CHead c k t) e) (\lambda (x0: T).(\lambda (x1: 
-nat).(\lambda (H5: (eq nat i (s k x1))).(\lambda (H6: (eq C c2 (CHead c k 
-x0))).(\lambda (_: (subst0 x1 v t x0)).(let H8 \def (eq_ind C c2 (\lambda 
-(c0: C).(drop (S n0) O c0 e)) H3 (CHead c k x0) H6) in (let H9 \def (eq_ind 
+nat).(\lambda (H6: (eq nat i (s k x1))).(\lambda (H7: (eq C c2 (CHead c k 
+x0))).(\lambda (_: (subst0 x1 v t x0)).(let H9 \def (eq_ind C c2 (\lambda 
+(c0: C).(drop (S n0) O c0 e)) H3 (CHead c k x0) H7) in (let H10 \def (eq_ind 
 nat i (\lambda (n1: nat).(\forall (c3: C).(\forall (v0: T).((csubst0 n1 v0 c 
 c3) \to (\forall (e0: C).((drop (S n0) O c3 e0) \to (drop (S n0) O c 
-e0))))))) H1 (s k x1) H5) in (let H10 \def (eq_ind nat i (\lambda (n1: 
-nat).(lt n1 (S n0))) H0 (s k x1) H5) in (K_ind (\lambda (k0: K).(((\forall 
+e0))))))) H1 (s k x1) H6) in (let H11 \def (eq_ind nat i (\lambda (n1: 
+nat).(lt n1 (S n0))) H0 (s k x1) H6) in (K_ind (\lambda (k0: K).(((\forall 
 (c3: C).(\forall (v0: T).((csubst0 (s k0 x1) v0 c c3) \to (\forall (e0: 
 C).((drop (S n0) O c3 e0) \to (drop (S n0) O c e0))))))) \to ((lt (s k0 x1) 
 (S n0)) \to ((drop (r k0 n0) O c e) \to (drop (S n0) O (CHead c k0 t) e))))) 
 (\lambda (b: B).(\lambda (_: ((\forall (c3: C).(\forall (v0: T).((csubst0 (s 
 (Bind b) x1) v0 c c3) \to (\forall (e0: C).((drop (S n0) O c3 e0) \to (drop 
 (S n0) O c e0)))))))).(\lambda (_: (lt (s (Bind b) x1) (S n0))).(\lambda 
-(H13: (drop (r (Bind b) n0) O c e)).(drop_drop (Bind b) n0 c e H13 t))))) 
+(H14: (drop (r (Bind b) n0) O c e)).(drop_drop (Bind b) n0 c e H14 t))))) 
 (\lambda (f: F).(\lambda (_: ((\forall (c3: C).(\forall (v0: T).((csubst0 (s 
 (Flat f) x1) v0 c c3) \to (\forall (e0: C).((drop (S n0) O c3 e0) \to (drop 
-(S n0) O c e0)))))))).(\lambda (H12: (lt (s (Flat f) x1) (S n0))).(\lambda 
-(H13: (drop (r (Flat f) n0) O c e)).(or_ind (eq nat x1 O) (ex2 nat (\lambda 
+(S n0) O c e0)))))))).(\lambda (H13: (lt (s (Flat f) x1) (S n0))).(\lambda 
+(H14: (drop (r (Flat f) n0) O c e)).(or_ind (eq nat x1 O) (ex2 nat (\lambda 
 (m: nat).(eq nat x1 (S m))) (\lambda (m: nat).(lt m n0))) (drop (S n0) O 
 (CHead c (Flat f) t) e) (\lambda (_: (eq nat x1 O)).(drop_drop (Flat f) n0 c 
-e H13 t)) (\lambda (H14: (ex2 nat (\lambda (m: nat).(eq nat x1 (S m))) 
+e H14 t)) (\lambda (H15: (ex2 nat (\lambda (m: nat).(eq nat x1 (S m))) 
 (\lambda (m: nat).(lt m n0)))).(ex2_ind nat (\lambda (m: nat).(eq nat x1 (S 
 m))) (\lambda (m: nat).(lt m n0)) (drop (S n0) O (CHead c (Flat f) t) e) 
 (\lambda (x: nat).(\lambda (_: (eq nat x1 (S x))).(\lambda (_: (lt x 
-n0)).(drop_drop (Flat f) n0 c e H13 t)))) H14)) (lt_gen_xS x1 n0 H12)))))) k 
-H9 H10 (drop_gen_drop k c e x0 n0 H8)))))))))) H4)) (\lambda (H4: (ex3_2 C 
+n0)).(drop_drop (Flat f) n0 c e H14 t)))) H15)) (lt_gen_xS x1 n0 H13)))))) k 
+H10 H11 (drop_gen_drop k c e x0 n0 H9)))))))))) H5)) (\lambda (H5: (ex3_2 C 
 nat (\lambda (_: C).(\lambda (j: nat).(eq nat i (s k j)))) (\lambda (c3: 
 C).(\lambda (_: nat).(eq C c2 (CHead c3 k t)))) (\lambda (c3: C).(\lambda (j: 
 nat).(csubst0 j v c c3))))).(ex3_2_ind C nat (\lambda (_: C).(\lambda (j: 
 nat).(eq nat i (s k j)))) (\lambda (c3: C).(\lambda (_: nat).(eq C c2 (CHead 
 c3 k t)))) (\lambda (c3: C).(\lambda (j: nat).(csubst0 j v c c3))) (drop (S 
-n0) O (CHead c k t) e) (\lambda (x0: C).(\lambda (x1: nat).(\lambda (H5: (eq 
-nat i (s k x1))).(\lambda (H6: (eq C c2 (CHead x0 k t))).(\lambda (H7
-(csubst0 x1 v c x0)).(let H8 \def (eq_ind C c2 (\lambda (c0: C).(drop (S n0) 
-O c0 e)) H3 (CHead x0 k t) H6) in (let H9 \def (eq_ind nat i (\lambda (n1: 
+n0) O (CHead c k t) e) (\lambda (x0: C).(\lambda (x1: nat).(\lambda (H6: (eq 
+nat i (s k x1))).(\lambda (H7: (eq C c2 (CHead x0 k t))).(\lambda (H8
+(csubst0 x1 v c x0)).(let H9 \def (eq_ind C c2 (\lambda (c0: C).(drop (S n0) 
+O c0 e)) H3 (CHead x0 k t) H7) in (let H10 \def (eq_ind nat i (\lambda (n1: 
 nat).(\forall (c3: C).(\forall (v0: T).((csubst0 n1 v0 c c3) \to (\forall 
-(e0: C).((drop (S n0) O c3 e0) \to (drop (S n0) O c e0))))))) H1 (s k x1) H5
-in (let H10 \def (eq_ind nat i (\lambda (n1: nat).(lt n1 (S n0))) H0 (s k x1) 
-H5) in (K_ind (\lambda (k0: K).(((\forall (c3: C).(\forall (v0: T).((csubst0 
+(e0: C).((drop (S n0) O c3 e0) \to (drop (S n0) O c e0))))))) H1 (s k x1) H6
+in (let H11 \def (eq_ind nat i (\lambda (n1: nat).(lt n1 (S n0))) H0 (s k x1) 
+H6) in (K_ind (\lambda (k0: K).(((\forall (c3: C).(\forall (v0: T).((csubst0 
 (s k0 x1) v0 c c3) \to (\forall (e0: C).((drop (S n0) O c3 e0) \to (drop (S 
 n0) O c e0))))))) \to ((lt (s k0 x1) (S n0)) \to ((drop (r k0 n0) O x0 e) \to 
 (drop (S n0) O (CHead c k0 t) e))))) (\lambda (b: B).(\lambda (_: ((\forall 
 (c3: C).(\forall (v0: T).((csubst0 (s (Bind b) x1) v0 c c3) \to (\forall (e0: 
-C).((drop (S n0) O c3 e0) \to (drop (S n0) O c e0)))))))).(\lambda (H12: (lt 
-(s (Bind b) x1) (S n0))).(\lambda (H13: (drop (r (Bind b) n0) O x0 
-e)).(drop_drop (Bind b) n0 c e (H x1 (lt_S_n x1 n0 H12) c x0 v H7 e H13
-t))))) (\lambda (f: F).(\lambda (H11: ((\forall (c3: C).(\forall (v0: 
+C).((drop (S n0) O c3 e0) \to (drop (S n0) O c e0)))))))).(\lambda (H13: (lt 
+(s (Bind b) x1) (S n0))).(\lambda (H14: (drop (r (Bind b) n0) O x0 
+e)).(drop_drop (Bind b) n0 c e (H x1 (lt_S_n x1 n0 H13) c x0 v H8 e H14
+t))))) (\lambda (f: F).(\lambda (H12: ((\forall (c3: C).(\forall (v0: 
 T).((csubst0 (s (Flat f) x1) v0 c c3) \to (\forall (e0: C).((drop (S n0) O c3 
-e0) \to (drop (S n0) O c e0)))))))).(\lambda (H12: (lt (s (Flat f) x1) (S 
-n0))).(\lambda (H13: (drop (r (Flat f) n0) O x0 e)).(or_ind (eq nat x1 O) 
+e0) \to (drop (S n0) O c e0)))))))).(\lambda (H13: (lt (s (Flat f) x1) (S 
+n0))).(\lambda (H14: (drop (r (Flat f) n0) O x0 e)).(or_ind (eq nat x1 O) 
 (ex2 nat (\lambda (m: nat).(eq nat x1 (S m))) (\lambda (m: nat).(lt m n0))) 
 (drop (S n0) O (CHead c (Flat f) t) e) (\lambda (_: (eq nat x1 O)).(drop_drop 
-(Flat f) n0 c e (H11 x0 v H7 e H13) t)) (\lambda (H14: (ex2 nat (\lambda (m: 
+(Flat f) n0 c e (H12 x0 v H8 e H14) t)) (\lambda (H15: (ex2 nat (\lambda (m: 
 nat).(eq nat x1 (S m))) (\lambda (m: nat).(lt m n0)))).(ex2_ind nat (\lambda 
 (m: nat).(eq nat x1 (S m))) (\lambda (m: nat).(lt m n0)) (drop (S n0) O 
 (CHead c (Flat f) t) e) (\lambda (x: nat).(\lambda (_: (eq nat x1 (S 
-x))).(\lambda (_: (lt x n0)).(drop_drop (Flat f) n0 c e (H11 x0 v H7 e H13
-t)))) H14)) (lt_gen_xS x1 n0 H12)))))) k H9 H10 (drop_gen_drop k x0 e t n0 
-H8)))))))))) H4)) (\lambda (H4: (ex4_3 T C nat (\lambda (_: T).(\lambda (_: 
+x))).(\lambda (_: (lt x n0)).(drop_drop (Flat f) n0 c e (H12 x0 v H8 e H14
+t)))) H15)) (lt_gen_xS x1 n0 H13)))))) k H10 H11 (drop_gen_drop k x0 e t n0 
+H9)))))))))) H5)) (\lambda (H5: (ex4_3 T C nat (\lambda (_: T).(\lambda (_: 
 C).(\lambda (j: nat).(eq nat i (s k j))))) (\lambda (u2: T).(\lambda (c3: 
 C).(\lambda (_: nat).(eq C c2 (CHead c3 k u2))))) (\lambda (u2: T).(\lambda 
 (_: C).(\lambda (j: nat).(subst0 j v t u2)))) (\lambda (_: T).(\lambda (c3: 
@@ -272,37 +268,34 @@ T).(\lambda (c3: C).(\lambda (_: nat).(eq C c2 (CHead c3 k u2))))) (\lambda
 (u2: T).(\lambda (_: C).(\lambda (j: nat).(subst0 j v t u2)))) (\lambda (_: 
 T).(\lambda (c3: C).(\lambda (j: nat).(csubst0 j v c c3)))) (drop (S n0) O 
 (CHead c k t) e) (\lambda (x0: T).(\lambda (x1: C).(\lambda (x2: 
-nat).(\lambda (H5: (eq nat i (s k x2))).(\lambda (H6: (eq C c2 (CHead x1 k 
-x0))).(\lambda (_: (subst0 x2 v t x0)).(\lambda (H8: (csubst0 x2 v c 
-x1)).(let H9 \def (eq_ind C c2 (\lambda (c0: C).(drop (S n0) O c0 e)) H3 
-(CHead x1 k x0) H6) in (let H10 \def (eq_ind nat i (\lambda (n1: 
+nat).(\lambda (H6: (eq nat i (s k x2))).(\lambda (H7: (eq C c2 (CHead x1 k 
+x0))).(\lambda (_: (subst0 x2 v t x0)).(\lambda (H9: (csubst0 x2 v c 
+x1)).(let H10 \def (eq_ind C c2 (\lambda (c0: C).(drop (S n0) O c0 e)) H3 
+(CHead x1 k x0) H7) in (let H11 \def (eq_ind nat i (\lambda (n1: 
 nat).(\forall (c3: C).(\forall (v0: T).((csubst0 n1 v0 c c3) \to (\forall 
-(e0: C).((drop (S n0) O c3 e0) \to (drop (S n0) O c e0))))))) H1 (s k x2) H5
-in (let H11 \def (eq_ind nat i (\lambda (n1: nat).(lt n1 (S n0))) H0 (s k x2) 
-H5) in (K_ind (\lambda (k0: K).(((\forall (c3: C).(\forall (v0: T).((csubst0 
+(e0: C).((drop (S n0) O c3 e0) \to (drop (S n0) O c e0))))))) H1 (s k x2) H6
+in (let H12 \def (eq_ind nat i (\lambda (n1: nat).(lt n1 (S n0))) H0 (s k x2) 
+H6) in (K_ind (\lambda (k0: K).(((\forall (c3: C).(\forall (v0: T).((csubst0 
 (s k0 x2) v0 c c3) \to (\forall (e0: C).((drop (S n0) O c3 e0) \to (drop (S 
 n0) O c e0))))))) \to ((lt (s k0 x2) (S n0)) \to ((drop (r k0 n0) O x1 e) \to 
 (drop (S n0) O (CHead c k0 t) e))))) (\lambda (b: B).(\lambda (_: ((\forall 
 (c3: C).(\forall (v0: T).((csubst0 (s (Bind b) x2) v0 c c3) \to (\forall (e0: 
-C).((drop (S n0) O c3 e0) \to (drop (S n0) O c e0)))))))).(\lambda (H13: (lt 
-(s (Bind b) x2) (S n0))).(\lambda (H14: (drop (r (Bind b) n0) O x1 
-e)).(drop_drop (Bind b) n0 c e (H x2 (lt_S_n x2 n0 H13) c x1 v H8 e H14
-t))))) (\lambda (f: F).(\lambda (H12: ((\forall (c3: C).(\forall (v0: 
+C).((drop (S n0) O c3 e0) \to (drop (S n0) O c e0)))))))).(\lambda (H14: (lt 
+(s (Bind b) x2) (S n0))).(\lambda (H15: (drop (r (Bind b) n0) O x1 
+e)).(drop_drop (Bind b) n0 c e (H x2 (lt_S_n x2 n0 H14) c x1 v H9 e H15
+t))))) (\lambda (f: F).(\lambda (H13: ((\forall (c3: C).(\forall (v0: 
 T).((csubst0 (s (Flat f) x2) v0 c c3) \to (\forall (e0: C).((drop (S n0) O c3 
-e0) \to (drop (S n0) O c e0)))))))).(\lambda (H13: (lt (s (Flat f) x2) (S 
-n0))).(\lambda (H14: (drop (r (Flat f) n0) O x1 e)).(or_ind (eq nat x2 O) 
+e0) \to (drop (S n0) O c e0)))))))).(\lambda (H14: (lt (s (Flat f) x2) (S 
+n0))).(\lambda (H15: (drop (r (Flat f) n0) O x1 e)).(or_ind (eq nat x2 O) 
 (ex2 nat (\lambda (m: nat).(eq nat x2 (S m))) (\lambda (m: nat).(lt m n0))) 
 (drop (S n0) O (CHead c (Flat f) t) e) (\lambda (_: (eq nat x2 O)).(drop_drop 
-(Flat f) n0 c e (H12 x1 v H8 e H14) t)) (\lambda (H15: (ex2 nat (\lambda (m: 
+(Flat f) n0 c e (H13 x1 v H9 e H15) t)) (\lambda (H16: (ex2 nat (\lambda (m: 
 nat).(eq nat x2 (S m))) (\lambda (m: nat).(lt m n0)))).(ex2_ind nat (\lambda 
 (m: nat).(eq nat x2 (S m))) (\lambda (m: nat).(lt m n0)) (drop (S n0) O 
 (CHead c (Flat f) t) e) (\lambda (x: nat).(\lambda (_: (eq nat x2 (S 
-x))).(\lambda (_: (lt x n0)).(drop_drop (Flat f) n0 c e (H12 x1 v H8 e H14) 
-t)))) H15)) (lt_gen_xS x2 n0 H13)))))) k H10 H11 (drop_gen_drop k x1 e x0 n0 
-H9)))))))))))) H4)) (csubst0_gen_head k c c2 t v i H2))))))))))) c1)))))) n).
-(* COMMENTS
-Initial nodes: 2989
-END *)
+x))).(\lambda (_: (lt x n0)).(drop_drop (Flat f) n0 c e (H13 x1 v H9 e H15) 
+t)))) H16)) (lt_gen_xS x2 n0 H14)))))) k H11 H12 (drop_gen_drop k x1 e x0 n0 
+H10)))))))))))) H5)) H4))))))))))) c1)))))) n).
 
 theorem csubst0_drop_lt:
  \forall (n: nat).(\forall (i: nat).((lt n i) \to (\forall (c1: C).(\forall 
@@ -583,45 +576,45 @@ n0) O c2 (CHead e2 k w))))))) (\lambda (k: K).(\lambda (_: C).(\lambda (_:
 C).(\lambda (u: T).(\lambda (w: T).(subst0 (minus i (s k (S n0))) v u w)))))) 
 (\lambda (k: K).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
 (_: T).(csubst0 (minus i (s k (S n0))) v e1 e2))))))))) (let H5 \def (eq_ind 
-nat (S n0) (\lambda (ee: nat).(match ee in nat return (\lambda (_: nat).Prop
-with [O \Rightarrow False | (S _) \Rightarrow True])) I O H3) in (False_ind 
-(or4 (drop (S n0) O c2 (CSort n1)) (ex3_4 K C T T (\lambda (k: K).(\lambda 
-(e0: C).(\lambda (u: T).(\lambda (_: T).(eq C (CSort n1) (CHead e0 k u)))))) 
-(\lambda (k: K).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: T).(drop (S n0
-O c2 (CHead e0 k w)))))) (\lambda (k: K).(\lambda (_: C).(\lambda (u: 
-T).(\lambda (w: T).(subst0 (minus i (s k (S n0))) v u w)))))) (ex3_4 K C C T 
-(\lambda (k: K).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(eq C (CSort 
-n1) (CHead e1 k u)))))) (\lambda (k: K).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (u: T).(drop (S n0) O c2 (CHead e2 k u)))))) (\lambda (k
-K).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 (minus i (s k 
-(S n0))) v e1 e2)))))) (ex4_5 K C C T T (\lambda (k: K).(\lambda (e1: 
-C).(\lambda (_: C).(\lambda (u: T).(\lambda (_: T).(eq C (CSort n1) (CHead e1 
-k u))))))) (\lambda (k: K).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: 
-T).(\lambda (w: T).(drop (S n0) O c2 (CHead e2 k w))))))) (\lambda (k
-K).(\lambda (_: C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 
-(minus i (s k (S n0))) v u w)))))) (\lambda (k: K).(\lambda (e1: C).(\lambda 
-(e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 (minus i (s k (S n0))) v e1 
-e2)))))))) H5)) e H2)))) (drop_gen_sort n1 (S n0) O e H1)))))))) (\lambda (c
-C).(\lambda (H0: ((\forall (c2: C).(\forall (v: T).((csubst0 i v c c2) \to 
-(\forall (e: C).((drop (S n0) O c e) \to (or4 (drop (S n0) O c2 e) (ex3_4 K C 
-T T (\lambda (k: K).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: T).(eq C e 
-(CHead e0 k u)))))) (\lambda (k: K).(\lambda (e0: C).(\lambda (_: T).(\lambda 
-(w: T).(drop (S n0) O c2 (CHead e0 k w)))))) (\lambda (k: K).(\lambda (_: 
-C).(\lambda (u: T).(\lambda (w: T).(subst0 (minus i (s k (S n0))) v u w)))))) 
-(ex3_4 K C C T (\lambda (k: K).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: 
-T).(eq C e (CHead e1 k u)))))) (\lambda (k: K).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (u: T).(drop (S n0) O c2 (CHead e2 k u)))))) (\lambda (k
-K).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 (minus i (s k 
-(S n0))) v e1 e2)))))) (ex4_5 K C C T T (\lambda (k: K).(\lambda (e1: 
-C).(\lambda (_: C).(\lambda (u: T).(\lambda (_: T).(eq C e (CHead e1 k 
-u))))))) (\lambda (k: K).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: 
-T).(\lambda (w: T).(drop (S n0) O c2 (CHead e2 k w))))))) (\lambda (k
-K).(\lambda (_: C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 
-(minus i (s k (S n0))) v u w)))))) (\lambda (k: K).(\lambda (e1: C).(\lambda 
-(e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 (minus i (s k (S n0))) v e1 
-e2))))))))))))))).(\lambda (k: K).(\lambda (t: T).(\lambda (c2: C).(\lambda 
-(v: T).(\lambda (H1: (csubst0 i v (CHead c k t) c2)).(\lambda (e: C).(\lambda 
-(H2: (drop (S n0) O (CHead c k t) e)).(or3_ind (ex3_2 T nat (\lambda (_: 
+nat (S n0) (\lambda (ee: nat).(match ee with [O \Rightarrow False | (S _
+\Rightarrow True])) I O H3) in (False_ind (or4 (drop (S n0) O c2 (CSort n1)) 
+(ex3_4 K C T T (\lambda (k: K).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: 
+T).(eq C (CSort n1) (CHead e0 k u)))))) (\lambda (k: K).(\lambda (e0: 
+C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) O c2 (CHead e0 k w)))))
+(\lambda (k: K).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 
+(minus i (s k (S n0))) v u w)))))) (ex3_4 K C C T (\lambda (k: K).(\lambda 
+(e1: C).(\lambda (_: C).(\lambda (u: T).(eq C (CSort n1) (CHead e1 k u)))))) 
+(\lambda (k: K).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(drop (S n0) 
+O c2 (CHead e2 k u)))))) (\lambda (k: K).(\lambda (e1: C).(\lambda (e2
+C).(\lambda (_: T).(csubst0 (minus i (s k (S n0))) v e1 e2)))))) (ex4_5 K C C 
+T T (\lambda (k: K).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(\lambda 
+(_: T).(eq C (CSort n1) (CHead e1 k u))))))) (\lambda (k: K).(\lambda (_: 
+C).(\lambda (e2: C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) O c2 (CHead 
+e2 k w))))))) (\lambda (k: K).(\lambda (_: C).(\lambda (_: C).(\lambda (u
+T).(\lambda (w: T).(subst0 (minus i (s k (S n0))) v u w)))))) (\lambda (k: 
+K).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 
+(minus i (s k (S n0))) v e1 e2)))))))) H5)) e H2)))) (drop_gen_sort n1 (S n0) 
+O e H1)))))))) (\lambda (c: C).(\lambda (H0: ((\forall (c2: C).(\forall (v
+T).((csubst0 i v c c2) \to (\forall (e: C).((drop (S n0) O c e) \to (or4 
+(drop (S n0) O c2 e) (ex3_4 K C T T (\lambda (k: K).(\lambda (e0: C).(\lambda 
+(u: T).(\lambda (_: T).(eq C e (CHead e0 k u)))))) (\lambda (k: K).(\lambda 
+(e0: C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) O c2 (CHead e0 k w)))))) 
+(\lambda (k: K).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 
+(minus i (s k (S n0))) v u w)))))) (ex3_4 K C C T (\lambda (k: K).(\lambda 
+(e1: C).(\lambda (_: C).(\lambda (u: T).(eq C e (CHead e1 k u)))))) (\lambda 
+(k: K).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(drop (S n0) O c2 
+(CHead e2 k u)))))) (\lambda (k: K).(\lambda (e1: C).(\lambda (e2
+C).(\lambda (_: T).(csubst0 (minus i (s k (S n0))) v e1 e2)))))) (ex4_5 K C C 
+T T (\lambda (k: K).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(\lambda 
+(_: T).(eq C e (CHead e1 k u))))))) (\lambda (k: K).(\lambda (_: C).(\lambda 
+(e2: C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) O c2 (CHead e2 k 
+w))))))) (\lambda (k: K).(\lambda (_: C).(\lambda (_: C).(\lambda (u
+T).(\lambda (w: T).(subst0 (minus i (s k (S n0))) v u w)))))) (\lambda (k: 
+K).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 
+(minus i (s k (S n0))) v e1 e2))))))))))))))).(\lambda (k: K).(\lambda (t: 
+T).(\lambda (c2: C).(\lambda (v: T).(\lambda (H1: (csubst0 i v (CHead c k t) 
+c2)).(\lambda (e: C).(\lambda (H2: (drop (S n0) O (CHead c k t) e)).(let H3 
+\def (csubst0_gen_head k c c2 t v i H1) in (or3_ind (ex3_2 T nat (\lambda (_: 
 T).(\lambda (j: nat).(eq nat i (s k j)))) (\lambda (u2: T).(\lambda (_: 
 nat).(eq C c2 (CHead c k u2)))) (\lambda (u2: T).(\lambda (j: nat).(subst0 j 
 v t u2)))) (ex3_2 C nat (\lambda (_: C).(\lambda (j: nat).(eq nat i (s k 
@@ -647,7 +640,7 @@ T).(drop (S n0) O c2 (CHead e2 k0 w))))))) (\lambda (k0: K).(\lambda (_:
 C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 (minus i (s k0 (S 
 n0))) v u w)))))) (\lambda (k0: K).(\lambda (e1: C).(\lambda (e2: C).(\lambda 
 (_: T).(\lambda (_: T).(csubst0 (minus i (s k0 (S n0))) v e1 e2)))))))) 
-(\lambda (H3: (ex3_2 T nat (\lambda (_: T).(\lambda (j: nat).(eq nat i (s k 
+(\lambda (H4: (ex3_2 T nat (\lambda (_: T).(\lambda (j: nat).(eq nat i (s k 
 j)))) (\lambda (u2: T).(\lambda (_: nat).(eq C c2 (CHead c k u2)))) (\lambda 
 (u2: T).(\lambda (j: nat).(subst0 j v t u2))))).(ex3_2_ind T nat (\lambda (_: 
 T).(\lambda (j: nat).(eq nat i (s k j)))) (\lambda (u2: T).(\lambda (_: 
@@ -668,8 +661,8 @@ T).(\lambda (w: T).(drop (S n0) O c2 (CHead e2 k0 w))))))) (\lambda (k0:
 K).(\lambda (_: C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 
 (minus i (s k0 (S n0))) v u w)))))) (\lambda (k0: K).(\lambda (e1: 
 C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 (minus i (s k0 
-(S n0))) v e1 e2)))))))) (\lambda (x0: T).(\lambda (x1: nat).(\lambda (H4
-(eq nat i (s k x1))).(\lambda (H5: (eq C c2 (CHead c k x0))).(\lambda (_: 
+(S n0))) v e1 e2)))))))) (\lambda (x0: T).(\lambda (x1: nat).(\lambda (H5
+(eq nat i (s k x1))).(\lambda (H6: (eq C c2 (CHead c k x0))).(\lambda (_: 
 (subst0 x1 v t x0)).(eq_ind_r C (CHead c k x0) (\lambda (c0: C).(or4 (drop (S 
 n0) O c0 e) (ex3_4 K C T T (\lambda (k0: K).(\lambda (e0: C).(\lambda (u: 
 T).(\lambda (_: T).(eq C e (CHead e0 k0 u)))))) (\lambda (k0: K).(\lambda 
@@ -687,7 +680,7 @@ T).(drop (S n0) O c0 (CHead e2 k0 w))))))) (\lambda (k0: K).(\lambda (_:
 C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 (minus i (s k0 (S 
 n0))) v u w)))))) (\lambda (k0: K).(\lambda (e1: C).(\lambda (e2: C).(\lambda 
 (_: T).(\lambda (_: T).(csubst0 (minus i (s k0 (S n0))) v e1 e2))))))))) (let 
-H7 \def (eq_ind nat i (\lambda (n1: nat).(\forall (c3: C).(\forall (v0: 
+H8 \def (eq_ind nat i (\lambda (n1: nat).(\forall (c3: C).(\forall (v0: 
 T).((csubst0 n1 v0 c c3) \to (\forall (e0: C).((drop (S n0) O c e0) \to (or4 
 (drop (S n0) O c3 e0) (ex3_4 K C T T (\lambda (k0: K).(\lambda (e1: 
 C).(\lambda (u: T).(\lambda (_: T).(eq C e0 (CHead e1 k0 u)))))) (\lambda 
@@ -705,8 +698,8 @@ T).(\lambda (w: T).(drop (S n0) O c3 (CHead e2 k0 w))))))) (\lambda (k0:
 K).(\lambda (_: C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 
 (minus n1 (s k0 (S n0))) v0 u w)))))) (\lambda (k0: K).(\lambda (e1: 
 C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 (minus n1 (s k0 
-(S n0))) v0 e1 e2)))))))))))))) H0 (s k x1) H4) in (let H8 \def (eq_ind nat i 
-(\lambda (n1: nat).(lt (S n0) n1)) H (s k x1) H4) in (eq_ind_r nat (s k x1) 
+(S n0))) v0 e1 e2)))))))))))))) H0 (s k x1) H5) in (let H9 \def (eq_ind nat i 
+(\lambda (n1: nat).(lt (S n0) n1)) H (s k x1) H5) in (eq_ind_r nat (s k x1) 
 (\lambda (n1: nat).(or4 (drop (S n0) O (CHead c k x0) e) (ex3_4 K C T T 
 (\lambda (k0: K).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: T).(eq C e 
 (CHead e0 k0 u)))))) (\lambda (k0: K).(\lambda (e0: C).(\lambda (_: 
@@ -761,7 +754,7 @@ k1 w))))))) (\lambda (k1: K).(\lambda (_: C).(\lambda (_: C).(\lambda (u:
 T).(\lambda (w: T).(subst0 (minus (s k0 x1) (s k1 (S n0))) v u w)))))) 
 (\lambda (k1: K).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
 (_: T).(csubst0 (minus (s k0 x1) (s k1 (S n0))) v e1 e2)))))))))))) (\lambda 
-(b: B).(\lambda (H9: (drop (r (Bind b) n0) O c e)).(\lambda (_: ((\forall 
+(b: B).(\lambda (H10: (drop (r (Bind b) n0) O c e)).(\lambda (_: ((\forall 
 (c3: C).(\forall (v0: T).((csubst0 (s (Bind b) x1) v0 c c3) \to (\forall (e0: 
 C).((drop (S n0) O c e0) \to (or4 (drop (S n0) O c3 e0) (ex3_4 K C T T 
 (\lambda (k0: K).(\lambda (e1: C).(\lambda (u: T).(\lambda (_: T).(eq C e0 
@@ -799,8 +792,8 @@ C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) O (CHead c (Bind b) x0)
 C).(\lambda (u: T).(\lambda (w: T).(subst0 (minus (s (Bind b) x1) (s k0 (S 
 n0))) v u w)))))) (\lambda (k0: K).(\lambda (e1: C).(\lambda (e2: C).(\lambda 
 (_: T).(\lambda (_: T).(csubst0 (minus (s (Bind b) x1) (s k0 (S n0))) v e1 
-e2))))))) (drop_drop (Bind b) n0 c e H9 x0)))))) (\lambda (f: F).(\lambda 
-(H9: (drop (r (Flat f) n0) O c e)).(\lambda (_: ((\forall (c3: C).(\forall 
+e2))))))) (drop_drop (Bind b) n0 c e H10 x0)))))) (\lambda (f: F).(\lambda 
+(H10: (drop (r (Flat f) n0) O c e)).(\lambda (_: ((\forall (c3: C).(\forall 
 (v0: T).((csubst0 (s (Flat f) x1) v0 c c3) \to (\forall (e0: C).((drop (S n0) 
 O c e0) \to (or4 (drop (S n0) O c3 e0) (ex3_4 K C T T (\lambda (k0: 
 K).(\lambda (e1: C).(\lambda (u: T).(\lambda (_: T).(eq C e0 (CHead e1 k0 
@@ -838,8 +831,8 @@ C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) O (CHead c (Flat f) x0)
 C).(\lambda (u: T).(\lambda (w: T).(subst0 (minus (s (Flat f) x1) (s k0 (S 
 n0))) v u w)))))) (\lambda (k0: K).(\lambda (e1: C).(\lambda (e2: C).(\lambda 
 (_: T).(\lambda (_: T).(csubst0 (minus (s (Flat f) x1) (s k0 (S n0))) v e1 
-e2))))))) (drop_drop (Flat f) n0 c e H9 x0)))))) k (drop_gen_drop k c e t n0 
-H2) H7 H8) i H4))) c2 H5)))))) H3)) (\lambda (H3: (ex3_2 C nat (\lambda (_: 
+e2))))))) (drop_drop (Flat f) n0 c e H10 x0)))))) k (drop_gen_drop k c e t n0 
+H2) H8 H9) i H5))) c2 H6)))))) H4)) (\lambda (H4: (ex3_2 C nat (\lambda (_: 
 C).(\lambda (j: nat).(eq nat i (s k j)))) (\lambda (c3: C).(\lambda (_: 
 nat).(eq C c2 (CHead c3 k t)))) (\lambda (c3: C).(\lambda (j: nat).(csubst0 j 
 v c c3))))).(ex3_2_ind C nat (\lambda (_: C).(\lambda (j: nat).(eq nat i (s k 
@@ -860,8 +853,8 @@ C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) O c2 (CHead e2 k0 w)))))))
 (\lambda (k0: K).(\lambda (_: C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: 
 T).(subst0 (minus i (s k0 (S n0))) v u w)))))) (\lambda (k0: K).(\lambda (e1: 
 C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 (minus i (s k0 
-(S n0))) v e1 e2)))))))) (\lambda (x0: C).(\lambda (x1: nat).(\lambda (H4
-(eq nat i (s k x1))).(\lambda (H5: (eq C c2 (CHead x0 k t))).(\lambda (H6
+(S n0))) v e1 e2)))))))) (\lambda (x0: C).(\lambda (x1: nat).(\lambda (H5
+(eq nat i (s k x1))).(\lambda (H6: (eq C c2 (CHead x0 k t))).(\lambda (H7
 (csubst0 x1 v c x0)).(eq_ind_r C (CHead x0 k t) (\lambda (c0: C).(or4 (drop 
 (S n0) O c0 e) (ex3_4 K C T T (\lambda (k0: K).(\lambda (e0: C).(\lambda (u: 
 T).(\lambda (_: T).(eq C e (CHead e0 k0 u)))))) (\lambda (k0: K).(\lambda 
@@ -879,7 +872,7 @@ T).(drop (S n0) O c0 (CHead e2 k0 w))))))) (\lambda (k0: K).(\lambda (_:
 C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 (minus i (s k0 (S 
 n0))) v u w)))))) (\lambda (k0: K).(\lambda (e1: C).(\lambda (e2: C).(\lambda 
 (_: T).(\lambda (_: T).(csubst0 (minus i (s k0 (S n0))) v e1 e2))))))))) (let 
-H7 \def (eq_ind nat i (\lambda (n1: nat).(\forall (c3: C).(\forall (v0: 
+H8 \def (eq_ind nat i (\lambda (n1: nat).(\forall (c3: C).(\forall (v0: 
 T).((csubst0 n1 v0 c c3) \to (\forall (e0: C).((drop (S n0) O c e0) \to (or4 
 (drop (S n0) O c3 e0) (ex3_4 K C T T (\lambda (k0: K).(\lambda (e1: 
 C).(\lambda (u: T).(\lambda (_: T).(eq C e0 (CHead e1 k0 u)))))) (\lambda 
@@ -897,8 +890,8 @@ T).(\lambda (w: T).(drop (S n0) O c3 (CHead e2 k0 w))))))) (\lambda (k0:
 K).(\lambda (_: C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 
 (minus n1 (s k0 (S n0))) v0 u w)))))) (\lambda (k0: K).(\lambda (e1: 
 C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 (minus n1 (s k0 
-(S n0))) v0 e1 e2)))))))))))))) H0 (s k x1) H4) in (let H8 \def (eq_ind nat i 
-(\lambda (n1: nat).(lt (S n0) n1)) H (s k x1) H4) in (eq_ind_r nat (s k x1) 
+(S n0))) v0 e1 e2)))))))))))))) H0 (s k x1) H5) in (let H9 \def (eq_ind nat i 
+(\lambda (n1: nat).(lt (S n0) n1)) H (s k x1) H5) in (eq_ind_r nat (s k x1) 
 (\lambda (n1: nat).(or4 (drop (S n0) O (CHead x0 k t) e) (ex3_4 K C T T 
 (\lambda (k0: K).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: T).(eq C e 
 (CHead e0 k0 u)))))) (\lambda (k0: K).(\lambda (e0: C).(\lambda (_: 
@@ -953,7 +946,7 @@ k1 w))))))) (\lambda (k1: K).(\lambda (_: C).(\lambda (_: C).(\lambda (u:
 T).(\lambda (w: T).(subst0 (minus (s k0 x1) (s k1 (S n0))) v u w)))))) 
 (\lambda (k1: K).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
 (_: T).(csubst0 (minus (s k0 x1) (s k1 (S n0))) v e1 e2)))))))))))) (\lambda 
-(b: B).(\lambda (H9: (drop (r (Bind b) n0) O c e)).(\lambda (_: ((\forall 
+(b: B).(\lambda (H10: (drop (r (Bind b) n0) O c e)).(\lambda (_: ((\forall 
 (c3: C).(\forall (v0: T).((csubst0 (s (Bind b) x1) v0 c c3) \to (\forall (e0: 
 C).((drop (S n0) O c e0) \to (or4 (drop (S n0) O c3 e0) (ex3_4 K C T T 
 (\lambda (k0: K).(\lambda (e1: C).(\lambda (u: T).(\lambda (_: T).(eq C e0 
@@ -972,8 +965,8 @@ T).(drop (S n0) O c3 (CHead e2 k0 w))))))) (\lambda (k0: K).(\lambda (_:
 C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 (minus (s (Bind b) 
 x1) (s k0 (S n0))) v0 u w)))))) (\lambda (k0: K).(\lambda (e1: C).(\lambda 
 (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 (minus (s (Bind b) x1) (s k0 
-(S n0))) v0 e1 e2))))))))))))))).(\lambda (H11: (lt (S n0) (s (Bind b) 
-x1))).(let H12 \def (IHn x1 (le_S_n (S n0) x1 H11) c x0 v H6 e H9) in 
+(S n0))) v0 e1 e2))))))))))))))).(\lambda (H12: (lt (S n0) (s (Bind b) 
+x1))).(let H13 \def (IHn x1 (le_S_n (S n0) x1 H12) c x0 v H7 e H10) in 
 (or4_ind (drop n0 O x0 e) (ex3_4 K C T T (\lambda (k0: K).(\lambda (e0: 
 C).(\lambda (u: T).(\lambda (_: T).(eq C e (CHead e0 k0 u)))))) (\lambda (k0: 
 K).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: T).(drop n0 O x0 (CHead e0 
@@ -1007,7 +1000,7 @@ T).(drop (S n0) O (CHead x0 (Bind b) t) (CHead e2 k0 w))))))) (\lambda (k0:
 K).(\lambda (_: C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 
 (minus (s (Bind b) x1) (s k0 (S n0))) v u w)))))) (\lambda (k0: K).(\lambda 
 (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 (minus (s 
-(Bind b) x1) (s k0 (S n0))) v e1 e2)))))))) (\lambda (H13: (drop n0 O x0 
+(Bind b) x1) (s k0 (S n0))) v e1 e2)))))))) (\lambda (H14: (drop n0 O x0 
 e)).(or4_intro0 (drop (S n0) O (CHead x0 (Bind b) t) e) (ex3_4 K C T T 
 (\lambda (k0: K).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: T).(eq C e 
 (CHead e0 k0 u)))))) (\lambda (k0: K).(\lambda (e0: C).(\lambda (_: 
@@ -1026,7 +1019,7 @@ C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) O (CHead x0 (Bind b) t)
 C).(\lambda (u: T).(\lambda (w: T).(subst0 (minus (s (Bind b) x1) (s k0 (S 
 n0))) v u w)))))) (\lambda (k0: K).(\lambda (e1: C).(\lambda (e2: C).(\lambda 
 (_: T).(\lambda (_: T).(csubst0 (minus (s (Bind b) x1) (s k0 (S n0))) v e1 
-e2))))))) (drop_drop (Bind b) n0 x0 e H13 t))) (\lambda (H13: (ex3_4 K C T T 
+e2))))))) (drop_drop (Bind b) n0 x0 e H14 t))) (\lambda (H14: (ex3_4 K C T T 
 (\lambda (k0: K).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: T).(eq C e 
 (CHead e0 k0 u)))))) (\lambda (k0: K).(\lambda (e0: C).(\lambda (_: 
 T).(\lambda (w: T).(drop n0 O x0 (CHead e0 k0 w)))))) (\lambda (k0: 
@@ -1054,8 +1047,8 @@ C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 (minus (s (Bind b)
 x1) (s k0 (S n0))) v u w)))))) (\lambda (k0: K).(\lambda (e1: C).(\lambda 
 (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 (minus (s (Bind b) x1) (s k0 
 (S n0))) v e1 e2)))))))) (\lambda (x2: K).(\lambda (x3: C).(\lambda (x4: 
-T).(\lambda (x5: T).(\lambda (H14: (eq C e (CHead x3 x2 x4))).(\lambda (H15
-(drop n0 O x0 (CHead x3 x2 x5))).(\lambda (H16: (subst0 (minus x1 (s x2 n0)) 
+T).(\lambda (x5: T).(\lambda (H15: (eq C e (CHead x3 x2 x4))).(\lambda (H16
+(drop n0 O x0 (CHead x3 x2 x5))).(\lambda (H17: (subst0 (minus x1 (s x2 n0)) 
 v x4 x5)).(eq_ind_r C (CHead x3 x2 x4) (\lambda (c0: C).(or4 (drop (S n0) O 
 (CHead x0 (Bind b) t) c0) (ex3_4 K C T T (\lambda (k0: K).(\lambda (e0: 
 C).(\lambda (u: T).(\lambda (_: T).(eq C c0 (CHead e0 k0 u)))))) (\lambda 
@@ -1099,9 +1092,9 @@ u)))))) (\lambda (k0: K).(\lambda (e0: C).(\lambda (_: T).(\lambda (w:
 T).(drop (S n0) O (CHead x0 (Bind b) t) (CHead e0 k0 w)))))) (\lambda (k0: 
 K).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 (minus (s (Bind b) 
 x1) (s k0 (S n0))) v u w))))) x2 x3 x4 x5 (refl_equal C (CHead x3 x2 x4)) 
-(drop_drop (Bind b) n0 x0 (CHead x3 x2 x5) H15 t) (eq_ind_r nat (S (s x2 n0)) 
-(\lambda (n1: nat).(subst0 (minus (s (Bind b) x1) n1) v x4 x5)) H16 (s x2 (S 
-n0)) (s_S x2 n0)))) e H14)))))))) H13)) (\lambda (H13: (ex3_4 K C C T 
+(drop_drop (Bind b) n0 x0 (CHead x3 x2 x5) H16 t) (eq_ind_r nat (S (s x2 n0)) 
+(\lambda (n1: nat).(subst0 (minus (s (Bind b) x1) n1) v x4 x5)) H17 (s x2 (S 
+n0)) (s_S x2 n0)))) e H15)))))))) H14)) (\lambda (H14: (ex3_4 K C C T 
 (\lambda (k0: K).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(eq C e 
 (CHead e1 k0 u)))))) (\lambda (k0: K).(\lambda (_: C).(\lambda (e2: 
 C).(\lambda (u: T).(drop n0 O x0 (CHead e2 k0 u)))))) (\lambda (k0: 
@@ -1129,8 +1122,8 @@ C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 (minus (s (Bind b)
 x1) (s k0 (S n0))) v u w)))))) (\lambda (k0: K).(\lambda (e1: C).(\lambda 
 (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 (minus (s (Bind b) x1) (s k0 
 (S n0))) v e1 e2)))))))) (\lambda (x2: K).(\lambda (x3: C).(\lambda (x4: 
-C).(\lambda (x5: T).(\lambda (H14: (eq C e (CHead x3 x2 x5))).(\lambda (H15
-(drop n0 O x0 (CHead x4 x2 x5))).(\lambda (H16: (csubst0 (minus x1 (s x2 n0)) 
+C).(\lambda (x5: T).(\lambda (H15: (eq C e (CHead x3 x2 x5))).(\lambda (H16
+(drop n0 O x0 (CHead x4 x2 x5))).(\lambda (H17: (csubst0 (minus x1 (s x2 n0)) 
 v x3 x4)).(eq_ind_r C (CHead x3 x2 x5) (\lambda (c0: C).(or4 (drop (S n0) O 
 (CHead x0 (Bind b) t) c0) (ex3_4 K C T T (\lambda (k0: K).(\lambda (e0: 
 C).(\lambda (u: T).(\lambda (_: T).(eq C c0 (CHead e0 k0 u)))))) (\lambda 
@@ -1174,9 +1167,9 @@ u)))))) (\lambda (k0: K).(\lambda (_: C).(\lambda (e2: C).(\lambda (u:
 T).(drop (S n0) O (CHead x0 (Bind b) t) (CHead e2 k0 u)))))) (\lambda (k0: 
 K).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 (minus (s (Bind 
 b) x1) (s k0 (S n0))) v e1 e2))))) x2 x3 x4 x5 (refl_equal C (CHead x3 x2 
-x5)) (drop_drop (Bind b) n0 x0 (CHead x4 x2 x5) H15 t) (eq_ind_r nat (S (s x2 
-n0)) (\lambda (n1: nat).(csubst0 (minus (s (Bind b) x1) n1) v x3 x4)) H16 (s 
-x2 (S n0)) (s_S x2 n0)))) e H14)))))))) H13)) (\lambda (H13: (ex4_5 K C C T T 
+x5)) (drop_drop (Bind b) n0 x0 (CHead x4 x2 x5) H16 t) (eq_ind_r nat (S (s x2 
+n0)) (\lambda (n1: nat).(csubst0 (minus (s (Bind b) x1) n1) v x3 x4)) H17 (s 
+x2 (S n0)) (s_S x2 n0)))) e H15)))))))) H14)) (\lambda (H14: (ex4_5 K C C T T 
 (\lambda (k0: K).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(\lambda 
 (_: T).(eq C e (CHead e1 k0 u))))))) (\lambda (k0: K).(\lambda (_: 
 C).(\lambda (e2: C).(\lambda (_: T).(\lambda (w: T).(drop n0 O x0 (CHead e2 
@@ -1209,9 +1202,9 @@ C).(\lambda (u: T).(\lambda (w: T).(subst0 (minus (s (Bind b) x1) (s k0 (S
 n0))) v u w)))))) (\lambda (k0: K).(\lambda (e1: C).(\lambda (e2: C).(\lambda 
 (_: T).(\lambda (_: T).(csubst0 (minus (s (Bind b) x1) (s k0 (S n0))) v e1 
 e2)))))))) (\lambda (x2: K).(\lambda (x3: C).(\lambda (x4: C).(\lambda (x5: 
-T).(\lambda (x6: T).(\lambda (H14: (eq C e (CHead x3 x2 x5))).(\lambda (H15
-(drop n0 O x0 (CHead x4 x2 x6))).(\lambda (H16: (subst0 (minus x1 (s x2 n0)) 
-v x5 x6)).(\lambda (H17: (csubst0 (minus x1 (s x2 n0)) v x3 x4)).(eq_ind_r C 
+T).(\lambda (x6: T).(\lambda (H15: (eq C e (CHead x3 x2 x5))).(\lambda (H16
+(drop n0 O x0 (CHead x4 x2 x6))).(\lambda (H17: (subst0 (minus x1 (s x2 n0)) 
+v x5 x6)).(\lambda (H18: (csubst0 (minus x1 (s x2 n0)) v x3 x4)).(eq_ind_r C 
 (CHead x3 x2 x5) (\lambda (c0: C).(or4 (drop (S n0) O (CHead x0 (Bind b) t) 
 c0) (ex3_4 K C T T (\lambda (k0: K).(\lambda (e0: C).(\lambda (u: T).(\lambda 
 (_: T).(eq C c0 (CHead e0 k0 u)))))) (\lambda (k0: K).(\lambda (e0: 
@@ -1258,11 +1251,11 @@ T).(subst0 (minus (s (Bind b) x1) (s k0 (S n0))) v u w)))))) (\lambda (k0:
 K).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 
 (minus (s (Bind b) x1) (s k0 (S n0))) v e1 e2)))))) x2 x3 x4 x5 x6 
 (refl_equal C (CHead x3 x2 x5)) (drop_drop (Bind b) n0 x0 (CHead x4 x2 x6) 
-H15 t) (eq_ind_r nat (S (s x2 n0)) (\lambda (n1: nat).(subst0 (minus (s (Bind 
-b) x1) n1) v x5 x6)) H16 (s x2 (S n0)) (s_S x2 n0)) (eq_ind_r nat (S (s x2 
-n0)) (\lambda (n1: nat).(csubst0 (minus (s (Bind b) x1) n1) v x3 x4)) H17 (s 
-x2 (S n0)) (s_S x2 n0)))) e H14)))))))))) H13)) H12)))))) (\lambda (f: 
-F).(\lambda (H9: (drop (r (Flat f) n0) O c e)).(\lambda (H10: ((\forall (c3: 
+H16 t) (eq_ind_r nat (S (s x2 n0)) (\lambda (n1: nat).(subst0 (minus (s (Bind 
+b) x1) n1) v x5 x6)) H17 (s x2 (S n0)) (s_S x2 n0)) (eq_ind_r nat (S (s x2 
+n0)) (\lambda (n1: nat).(csubst0 (minus (s (Bind b) x1) n1) v x3 x4)) H18 (s 
+x2 (S n0)) (s_S x2 n0)))) e H15)))))))))) H14)) H13)))))) (\lambda (f: 
+F).(\lambda (H10: (drop (r (Flat f) n0) O c e)).(\lambda (H11: ((\forall (c3: 
 C).(\forall (v0: T).((csubst0 (s (Flat f) x1) v0 c c3) \to (\forall (e0: 
 C).((drop (S n0) O c e0) \to (or4 (drop (S n0) O c3 e0) (ex3_4 K C T T 
 (\lambda (k0: K).(\lambda (e1: C).(\lambda (u: T).(\lambda (_: T).(eq C e0 
@@ -1282,7 +1275,7 @@ C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 (minus (s (Flat f)
 x1) (s k0 (S n0))) v0 u w)))))) (\lambda (k0: K).(\lambda (e1: C).(\lambda 
 (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 (minus (s (Flat f) x1) (s k0 
 (S n0))) v0 e1 e2))))))))))))))).(\lambda (_: (lt (S n0) (s (Flat f) 
-x1))).(let H12 \def (H10 x0 v H6 e H9) in (or4_ind (drop (S n0) O x0 e) 
+x1))).(let H13 \def (H11 x0 v H7 e H10) in (or4_ind (drop (S n0) O x0 e) 
 (ex3_4 K C T T (\lambda (k0: K).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: 
 T).(eq C e (CHead e0 k0 u)))))) (\lambda (k0: K).(\lambda (e0: C).(\lambda 
 (_: T).(\lambda (w: T).(drop (S n0) O x0 (CHead e0 k0 w)))))) (\lambda (k0: 
@@ -1316,7 +1309,7 @@ C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) O (CHead x0 (Flat f) t)
 C).(\lambda (u: T).(\lambda (w: T).(subst0 (minus (s (Flat f) x1) (s k0 (S 
 n0))) v u w)))))) (\lambda (k0: K).(\lambda (e1: C).(\lambda (e2: C).(\lambda 
 (_: T).(\lambda (_: T).(csubst0 (minus (s (Flat f) x1) (s k0 (S n0))) v e1 
-e2)))))))) (\lambda (H13: (drop (S n0) O x0 e)).(or4_intro0 (drop (S n0) O 
+e2)))))))) (\lambda (H14: (drop (S n0) O x0 e)).(or4_intro0 (drop (S n0) O 
 (CHead x0 (Flat f) t) e) (ex3_4 K C T T (\lambda (k0: K).(\lambda (e0: 
 C).(\lambda (u: T).(\lambda (_: T).(eq C e (CHead e0 k0 u)))))) (\lambda (k0: 
 K).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) O (CHead x0 
@@ -1334,8 +1327,8 @@ T).(drop (S n0) O (CHead x0 (Flat f) t) (CHead e2 k0 w))))))) (\lambda (k0:
 K).(\lambda (_: C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 
 (minus (s (Flat f) x1) (s k0 (S n0))) v u w)))))) (\lambda (k0: K).(\lambda 
 (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 (minus (s 
-(Flat f) x1) (s k0 (S n0))) v e1 e2))))))) (drop_drop (Flat f) n0 x0 e H13 
-t))) (\lambda (H13: (ex3_4 K C T T (\lambda (k0: K).(\lambda (e0: C).(\lambda 
+(Flat f) x1) (s k0 (S n0))) v e1 e2))))))) (drop_drop (Flat f) n0 x0 e H14 
+t))) (\lambda (H14: (ex3_4 K C T T (\lambda (k0: K).(\lambda (e0: C).(\lambda 
 (u: T).(\lambda (_: T).(eq C e (CHead e0 k0 u)))))) (\lambda (k0: K).(\lambda 
 (e0: C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) O x0 (CHead e0 k0 
 w)))))) (\lambda (k0: K).(\lambda (_: C).(\lambda (u: T).(\lambda (w: 
@@ -1362,8 +1355,8 @@ K).(\lambda (_: C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0
 (minus (s (Flat f) x1) (s k0 (S n0))) v u w)))))) (\lambda (k0: K).(\lambda 
 (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 (minus (s 
 (Flat f) x1) (s k0 (S n0))) v e1 e2)))))))) (\lambda (x2: K).(\lambda (x3: 
-C).(\lambda (x4: T).(\lambda (x5: T).(\lambda (H14: (eq C e (CHead x3 x2 
-x4))).(\lambda (H15: (drop (S n0) O x0 (CHead x3 x2 x5))).(\lambda (H16
+C).(\lambda (x4: T).(\lambda (x5: T).(\lambda (H15: (eq C e (CHead x3 x2 
+x4))).(\lambda (H16: (drop (S n0) O x0 (CHead x3 x2 x5))).(\lambda (H17
 (subst0 (minus x1 (s x2 (S n0))) v x4 x5)).(eq_ind_r C (CHead x3 x2 x4) 
 (\lambda (c0: C).(or4 (drop (S n0) O (CHead x0 (Flat f) t) c0) (ex3_4 K C T T 
 (\lambda (k0: K).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: T).(eq C c0 
@@ -1408,7 +1401,7 @@ C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) O (CHead x0 (Flat f) t)
 (CHead e0 k0 w)))))) (\lambda (k0: K).(\lambda (_: C).(\lambda (u: 
 T).(\lambda (w: T).(subst0 (minus (s (Flat f) x1) (s k0 (S n0))) v u w))))) 
 x2 x3 x4 x5 (refl_equal C (CHead x3 x2 x4)) (drop_drop (Flat f) n0 x0 (CHead 
-x3 x2 x5) H15 t) H16)) e H14)))))))) H13)) (\lambda (H13: (ex3_4 K C C T 
+x3 x2 x5) H16 t) H17)) e H15)))))))) H14)) (\lambda (H14: (ex3_4 K C C T 
 (\lambda (k0: K).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(eq C e 
 (CHead e1 k0 u)))))) (\lambda (k0: K).(\lambda (_: C).(\lambda (e2: 
 C).(\lambda (u: T).(drop (S n0) O x0 (CHead e2 k0 u)))))) (\lambda (k0: 
@@ -1436,8 +1429,8 @@ C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 (minus (s (Flat f)
 x1) (s k0 (S n0))) v u w)))))) (\lambda (k0: K).(\lambda (e1: C).(\lambda 
 (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 (minus (s (Flat f) x1) (s k0 
 (S n0))) v e1 e2)))))))) (\lambda (x2: K).(\lambda (x3: C).(\lambda (x4: 
-C).(\lambda (x5: T).(\lambda (H14: (eq C e (CHead x3 x2 x5))).(\lambda (H15
-(drop (S n0) O x0 (CHead x4 x2 x5))).(\lambda (H16: (csubst0 (minus x1 (s x2 
+C).(\lambda (x5: T).(\lambda (H15: (eq C e (CHead x3 x2 x5))).(\lambda (H16
+(drop (S n0) O x0 (CHead x4 x2 x5))).(\lambda (H17: (csubst0 (minus x1 (s x2 
 (S n0))) v x3 x4)).(eq_ind_r C (CHead x3 x2 x5) (\lambda (c0: C).(or4 (drop 
 (S n0) O (CHead x0 (Flat f) t) c0) (ex3_4 K C T T (\lambda (k0: K).(\lambda 
 (e0: C).(\lambda (u: T).(\lambda (_: T).(eq C c0 (CHead e0 k0 u)))))) 
@@ -1481,8 +1474,8 @@ u)))))) (\lambda (k0: K).(\lambda (_: C).(\lambda (e2: C).(\lambda (u:
 T).(drop (S n0) O (CHead x0 (Flat f) t) (CHead e2 k0 u)))))) (\lambda (k0: 
 K).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 (minus (s (Flat 
 f) x1) (s k0 (S n0))) v e1 e2))))) x2 x3 x4 x5 (refl_equal C (CHead x3 x2 
-x5)) (drop_drop (Flat f) n0 x0 (CHead x4 x2 x5) H15 t) H16)) e H14)))))))) 
-H13)) (\lambda (H13: (ex4_5 K C C T T (\lambda (k0: K).(\lambda (e1: 
+x5)) (drop_drop (Flat f) n0 x0 (CHead x4 x2 x5) H16 t) H17)) e H15)))))))) 
+H14)) (\lambda (H14: (ex4_5 K C C T T (\lambda (k0: K).(\lambda (e1: 
 C).(\lambda (_: C).(\lambda (u: T).(\lambda (_: T).(eq C e (CHead e1 k0 
 u))))))) (\lambda (k0: K).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: 
 T).(\lambda (w: T).(drop (S n0) O x0 (CHead e2 k0 w))))))) (\lambda (k0: 
@@ -1515,9 +1508,9 @@ C).(\lambda (u: T).(\lambda (w: T).(subst0 (minus (s (Flat f) x1) (s k0 (S
 n0))) v u w)))))) (\lambda (k0: K).(\lambda (e1: C).(\lambda (e2: C).(\lambda 
 (_: T).(\lambda (_: T).(csubst0 (minus (s (Flat f) x1) (s k0 (S n0))) v e1 
 e2)))))))) (\lambda (x2: K).(\lambda (x3: C).(\lambda (x4: C).(\lambda (x5: 
-T).(\lambda (x6: T).(\lambda (H14: (eq C e (CHead x3 x2 x5))).(\lambda (H15
-(drop (S n0) O x0 (CHead x4 x2 x6))).(\lambda (H16: (subst0 (minus x1 (s x2 
-(S n0))) v x5 x6)).(\lambda (H17: (csubst0 (minus x1 (s x2 (S n0))) v x3 
+T).(\lambda (x6: T).(\lambda (H15: (eq C e (CHead x3 x2 x5))).(\lambda (H16
+(drop (S n0) O x0 (CHead x4 x2 x6))).(\lambda (H17: (subst0 (minus x1 (s x2 
+(S n0))) v x5 x6)).(\lambda (H18: (csubst0 (minus x1 (s x2 (S n0))) v x3 
 x4)).(eq_ind_r C (CHead x3 x2 x5) (\lambda (c0: C).(or4 (drop (S n0) O (CHead 
 x0 (Flat f) t) c0) (ex3_4 K C T T (\lambda (k0: K).(\lambda (e0: C).(\lambda 
 (u: T).(\lambda (_: T).(eq C c0 (CHead e0 k0 u)))))) (\lambda (k0: 
@@ -1564,8 +1557,8 @@ C).(\lambda (u: T).(\lambda (w: T).(subst0 (minus (s (Flat f) x1) (s k0 (S
 n0))) v u w)))))) (\lambda (k0: K).(\lambda (e1: C).(\lambda (e2: C).(\lambda 
 (_: T).(\lambda (_: T).(csubst0 (minus (s (Flat f) x1) (s k0 (S n0))) v e1 
 e2)))))) x2 x3 x4 x5 x6 (refl_equal C (CHead x3 x2 x5)) (drop_drop (Flat f) 
-n0 x0 (CHead x4 x2 x6) H15 t) H16 H17)) e H14)))))))))) H13)) H12)))))) k 
-(drop_gen_drop k c e t n0 H2) H7 H8) i H4))) c2 H5)))))) H3)) (\lambda (H3
+n0 x0 (CHead x4 x2 x6) H16 t) H17 H18)) e H15)))))))))) H14)) H13)))))) k 
+(drop_gen_drop k c e t n0 H2) H8 H9) i H5))) c2 H6)))))) H4)) (\lambda (H4
 (ex4_3 T C nat (\lambda (_: T).(\lambda (_: C).(\lambda (j: nat).(eq nat i (s 
 k j))))) (\lambda (u2: T).(\lambda (c3: C).(\lambda (_: nat).(eq C c2 (CHead 
 c3 k u2))))) (\lambda (u2: T).(\lambda (_: C).(\lambda (j: nat).(subst0 j v t 
@@ -1591,8 +1584,8 @@ C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) O c2 (CHead e2 k0 w)))))))
 T).(subst0 (minus i (s k0 (S n0))) v u w)))))) (\lambda (k0: K).(\lambda (e1: 
 C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 (minus i (s k0 
 (S n0))) v e1 e2)))))))) (\lambda (x0: T).(\lambda (x1: C).(\lambda (x2: 
-nat).(\lambda (H4: (eq nat i (s k x2))).(\lambda (H5: (eq C c2 (CHead x1 k 
-x0))).(\lambda (_: (subst0 x2 v t x0)).(\lambda (H7: (csubst0 x2 v c 
+nat).(\lambda (H5: (eq nat i (s k x2))).(\lambda (H6: (eq C c2 (CHead x1 k 
+x0))).(\lambda (_: (subst0 x2 v t x0)).(\lambda (H8: (csubst0 x2 v c 
 x1)).(eq_ind_r C (CHead x1 k x0) (\lambda (c0: C).(or4 (drop (S n0) O c0 e) 
 (ex3_4 K C T T (\lambda (k0: K).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: 
 T).(eq C e (CHead e0 k0 u)))))) (\lambda (k0: K).(\lambda (e0: C).(\lambda 
@@ -1609,7 +1602,7 @@ C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) O c0 (CHead e2 k0 w)))))))
 (\lambda (k0: K).(\lambda (_: C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: 
 T).(subst0 (minus i (s k0 (S n0))) v u w)))))) (\lambda (k0: K).(\lambda (e1: 
 C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 (minus i (s k0 
-(S n0))) v e1 e2))))))))) (let H8 \def (eq_ind nat i (\lambda (n1: 
+(S n0))) v e1 e2))))))))) (let H9 \def (eq_ind nat i (\lambda (n1: 
 nat).(\forall (c3: C).(\forall (v0: T).((csubst0 n1 v0 c c3) \to (\forall 
 (e0: C).((drop (S n0) O c e0) \to (or4 (drop (S n0) O c3 e0) (ex3_4 K C T T 
 (\lambda (k0: K).(\lambda (e1: C).(\lambda (u: T).(\lambda (_: T).(eq C e0 
@@ -1627,11 +1620,11 @@ C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) O c3 (CHead e2 k0 w)))))))
 (\lambda (k0: K).(\lambda (_: C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: 
 T).(subst0 (minus n1 (s k0 (S n0))) v0 u w)))))) (\lambda (k0: K).(\lambda 
 (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 (minus n1 
-(s k0 (S n0))) v0 e1 e2)))))))))))))) H0 (s k x2) H4) in (let H9 \def (eq_ind 
-nat i (\lambda (n1: nat).(lt (S n0) n1)) H (s k x2) H4) in (eq_ind_r nat (s k 
-x2) (\lambda (n1: nat).(or4 (drop (S n0) O (CHead x1 k x0) e) (ex3_4 K C T T 
-(\lambda (k0: K).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: T).(eq C e 
-(CHead e0 k0 u)))))) (\lambda (k0: K).(\lambda (e0: C).(\lambda (_: 
+(s k0 (S n0))) v0 e1 e2)))))))))))))) H0 (s k x2) H5) in (let H10 \def 
+(eq_ind nat i (\lambda (n1: nat).(lt (S n0) n1)) H (s k x2) H5) in (eq_ind_r 
+nat (s k x2) (\lambda (n1: nat).(or4 (drop (S n0) O (CHead x1 k x0) e) (ex3_4 
+K C T T (\lambda (k0: K).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: T).(eq 
+C e (CHead e0 k0 u)))))) (\lambda (k0: K).(\lambda (e0: C).(\lambda (_: 
 T).(\lambda (w: T).(drop (S n0) O (CHead x1 k x0) (CHead e0 k0 w)))))) 
 (\lambda (k0: K).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 
 (minus n1 (s k0 (S n0))) v u w)))))) (ex3_4 K C C T (\lambda (k0: K).(\lambda 
@@ -1683,7 +1676,7 @@ k1 w))))))) (\lambda (k1: K).(\lambda (_: C).(\lambda (_: C).(\lambda (u:
 T).(\lambda (w: T).(subst0 (minus (s k0 x2) (s k1 (S n0))) v u w)))))) 
 (\lambda (k1: K).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
 (_: T).(csubst0 (minus (s k0 x2) (s k1 (S n0))) v e1 e2)))))))))))) (\lambda 
-(b: B).(\lambda (H10: (drop (r (Bind b) n0) O c e)).(\lambda (_: ((\forall 
+(b: B).(\lambda (H11: (drop (r (Bind b) n0) O c e)).(\lambda (_: ((\forall 
 (c3: C).(\forall (v0: T).((csubst0 (s (Bind b) x2) v0 c c3) \to (\forall (e0: 
 C).((drop (S n0) O c e0) \to (or4 (drop (S n0) O c3 e0) (ex3_4 K C T T 
 (\lambda (k0: K).(\lambda (e1: C).(\lambda (u: T).(\lambda (_: T).(eq C e0 
@@ -1702,8 +1695,8 @@ T).(drop (S n0) O c3 (CHead e2 k0 w))))))) (\lambda (k0: K).(\lambda (_:
 C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 (minus (s (Bind b) 
 x2) (s k0 (S n0))) v0 u w)))))) (\lambda (k0: K).(\lambda (e1: C).(\lambda 
 (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 (minus (s (Bind b) x2) (s k0 
-(S n0))) v0 e1 e2))))))))))))))).(\lambda (H12: (lt (S n0) (s (Bind b) 
-x2))).(let H13 \def (IHn x2 (le_S_n (S n0) x2 H12) c x1 v H7 e H10) in 
+(S n0))) v0 e1 e2))))))))))))))).(\lambda (H13: (lt (S n0) (s (Bind b) 
+x2))).(let H14 \def (IHn x2 (le_S_n (S n0) x2 H13) c x1 v H8 e H11) in 
 (or4_ind (drop n0 O x1 e) (ex3_4 K C T T (\lambda (k0: K).(\lambda (e0: 
 C).(\lambda (u: T).(\lambda (_: T).(eq C e (CHead e0 k0 u)))))) (\lambda (k0: 
 K).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: T).(drop n0 O x1 (CHead e0 
@@ -1737,7 +1730,7 @@ T).(drop (S n0) O (CHead x1 (Bind b) x0) (CHead e2 k0 w))))))) (\lambda (k0:
 K).(\lambda (_: C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 
 (minus (s (Bind b) x2) (s k0 (S n0))) v u w)))))) (\lambda (k0: K).(\lambda 
 (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 (minus (s 
-(Bind b) x2) (s k0 (S n0))) v e1 e2)))))))) (\lambda (H14: (drop n0 O x1 
+(Bind b) x2) (s k0 (S n0))) v e1 e2)))))))) (\lambda (H15: (drop n0 O x1 
 e)).(or4_intro0 (drop (S n0) O (CHead x1 (Bind b) x0) e) (ex3_4 K C T T 
 (\lambda (k0: K).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: T).(eq C e 
 (CHead e0 k0 u)))))) (\lambda (k0: K).(\lambda (e0: C).(\lambda (_: 
@@ -1756,7 +1749,7 @@ C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) O (CHead x1 (Bind b) x0)
 C).(\lambda (u: T).(\lambda (w: T).(subst0 (minus (s (Bind b) x2) (s k0 (S 
 n0))) v u w)))))) (\lambda (k0: K).(\lambda (e1: C).(\lambda (e2: C).(\lambda 
 (_: T).(\lambda (_: T).(csubst0 (minus (s (Bind b) x2) (s k0 (S n0))) v e1 
-e2))))))) (drop_drop (Bind b) n0 x1 e H14 x0))) (\lambda (H14: (ex3_4 K C T T 
+e2))))))) (drop_drop (Bind b) n0 x1 e H15 x0))) (\lambda (H15: (ex3_4 K C T T 
 (\lambda (k0: K).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: T).(eq C e 
 (CHead e0 k0 u)))))) (\lambda (k0: K).(\lambda (e0: C).(\lambda (_: 
 T).(\lambda (w: T).(drop n0 O x1 (CHead e0 k0 w)))))) (\lambda (k0: 
@@ -1784,8 +1777,8 @@ C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 (minus (s (Bind b)
 x2) (s k0 (S n0))) v u w)))))) (\lambda (k0: K).(\lambda (e1: C).(\lambda 
 (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 (minus (s (Bind b) x2) (s k0 
 (S n0))) v e1 e2)))))))) (\lambda (x3: K).(\lambda (x4: C).(\lambda (x5: 
-T).(\lambda (x6: T).(\lambda (H15: (eq C e (CHead x4 x3 x5))).(\lambda (H16
-(drop n0 O x1 (CHead x4 x3 x6))).(\lambda (H17: (subst0 (minus x2 (s x3 n0)) 
+T).(\lambda (x6: T).(\lambda (H16: (eq C e (CHead x4 x3 x5))).(\lambda (H17
+(drop n0 O x1 (CHead x4 x3 x6))).(\lambda (H18: (subst0 (minus x2 (s x3 n0)) 
 v x5 x6)).(eq_ind_r C (CHead x4 x3 x5) (\lambda (c0: C).(or4 (drop (S n0) O 
 (CHead x1 (Bind b) x0) c0) (ex3_4 K C T T (\lambda (k0: K).(\lambda (e0: 
 C).(\lambda (u: T).(\lambda (_: T).(eq C c0 (CHead e0 k0 u)))))) (\lambda 
@@ -1829,9 +1822,9 @@ u)))))) (\lambda (k0: K).(\lambda (e0: C).(\lambda (_: T).(\lambda (w:
 T).(drop (S n0) O (CHead x1 (Bind b) x0) (CHead e0 k0 w)))))) (\lambda (k0: 
 K).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 (minus (s (Bind b) 
 x2) (s k0 (S n0))) v u w))))) x3 x4 x5 x6 (refl_equal C (CHead x4 x3 x5)) 
-(drop_drop (Bind b) n0 x1 (CHead x4 x3 x6) H16 x0) (eq_ind_r nat (S (s x3 
-n0)) (\lambda (n1: nat).(subst0 (minus (s (Bind b) x2) n1) v x5 x6)) H17 (s 
-x3 (S n0)) (s_S x3 n0)))) e H15)))))))) H14)) (\lambda (H14: (ex3_4 K C C T 
+(drop_drop (Bind b) n0 x1 (CHead x4 x3 x6) H17 x0) (eq_ind_r nat (S (s x3 
+n0)) (\lambda (n1: nat).(subst0 (minus (s (Bind b) x2) n1) v x5 x6)) H18 (s 
+x3 (S n0)) (s_S x3 n0)))) e H16)))))))) H15)) (\lambda (H15: (ex3_4 K C C T 
 (\lambda (k0: K).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(eq C e 
 (CHead e1 k0 u)))))) (\lambda (k0: K).(\lambda (_: C).(\lambda (e2: 
 C).(\lambda (u: T).(drop n0 O x1 (CHead e2 k0 u)))))) (\lambda (k0: 
@@ -1859,8 +1852,8 @@ C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 (minus (s (Bind b)
 x2) (s k0 (S n0))) v u w)))))) (\lambda (k0: K).(\lambda (e1: C).(\lambda 
 (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 (minus (s (Bind b) x2) (s k0 
 (S n0))) v e1 e2)))))))) (\lambda (x3: K).(\lambda (x4: C).(\lambda (x5: 
-C).(\lambda (x6: T).(\lambda (H15: (eq C e (CHead x4 x3 x6))).(\lambda (H16
-(drop n0 O x1 (CHead x5 x3 x6))).(\lambda (H17: (csubst0 (minus x2 (s x3 n0)) 
+C).(\lambda (x6: T).(\lambda (H16: (eq C e (CHead x4 x3 x6))).(\lambda (H17
+(drop n0 O x1 (CHead x5 x3 x6))).(\lambda (H18: (csubst0 (minus x2 (s x3 n0)) 
 v x4 x5)).(eq_ind_r C (CHead x4 x3 x6) (\lambda (c0: C).(or4 (drop (S n0) O 
 (CHead x1 (Bind b) x0) c0) (ex3_4 K C T T (\lambda (k0: K).(\lambda (e0: 
 C).(\lambda (u: T).(\lambda (_: T).(eq C c0 (CHead e0 k0 u)))))) (\lambda 
@@ -1904,9 +1897,9 @@ u)))))) (\lambda (k0: K).(\lambda (_: C).(\lambda (e2: C).(\lambda (u:
 T).(drop (S n0) O (CHead x1 (Bind b) x0) (CHead e2 k0 u)))))) (\lambda (k0: 
 K).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 (minus (s (Bind 
 b) x2) (s k0 (S n0))) v e1 e2))))) x3 x4 x5 x6 (refl_equal C (CHead x4 x3 
-x6)) (drop_drop (Bind b) n0 x1 (CHead x5 x3 x6) H16 x0) (eq_ind_r nat (S (s 
-x3 n0)) (\lambda (n1: nat).(csubst0 (minus (s (Bind b) x2) n1) v x4 x5)) H17 
-(s x3 (S n0)) (s_S x3 n0)))) e H15)))))))) H14)) (\lambda (H14: (ex4_5 K C C 
+x6)) (drop_drop (Bind b) n0 x1 (CHead x5 x3 x6) H17 x0) (eq_ind_r nat (S (s 
+x3 n0)) (\lambda (n1: nat).(csubst0 (minus (s (Bind b) x2) n1) v x4 x5)) H18 
+(s x3 (S n0)) (s_S x3 n0)))) e H16)))))))) H15)) (\lambda (H15: (ex4_5 K C C 
 T T (\lambda (k0: K).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: 
 T).(\lambda (_: T).(eq C e (CHead e1 k0 u))))))) (\lambda (k0: K).(\lambda 
 (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (w: T).(drop n0 O x1 (CHead 
@@ -1939,9 +1932,9 @@ C).(\lambda (u: T).(\lambda (w: T).(subst0 (minus (s (Bind b) x2) (s k0 (S
 n0))) v u w)))))) (\lambda (k0: K).(\lambda (e1: C).(\lambda (e2: C).(\lambda 
 (_: T).(\lambda (_: T).(csubst0 (minus (s (Bind b) x2) (s k0 (S n0))) v e1 
 e2)))))))) (\lambda (x3: K).(\lambda (x4: C).(\lambda (x5: C).(\lambda (x6: 
-T).(\lambda (x7: T).(\lambda (H15: (eq C e (CHead x4 x3 x6))).(\lambda (H16
-(drop n0 O x1 (CHead x5 x3 x7))).(\lambda (H17: (subst0 (minus x2 (s x3 n0)) 
-v x6 x7)).(\lambda (H18: (csubst0 (minus x2 (s x3 n0)) v x4 x5)).(eq_ind_r C 
+T).(\lambda (x7: T).(\lambda (H16: (eq C e (CHead x4 x3 x6))).(\lambda (H17
+(drop n0 O x1 (CHead x5 x3 x7))).(\lambda (H18: (subst0 (minus x2 (s x3 n0)) 
+v x6 x7)).(\lambda (H19: (csubst0 (minus x2 (s x3 n0)) v x4 x5)).(eq_ind_r C 
 (CHead x4 x3 x6) (\lambda (c0: C).(or4 (drop (S n0) O (CHead x1 (Bind b) x0) 
 c0) (ex3_4 K C T T (\lambda (k0: K).(\lambda (e0: C).(\lambda (u: T).(\lambda 
 (_: T).(eq C c0 (CHead e0 k0 u)))))) (\lambda (k0: K).(\lambda (e0: 
@@ -1988,11 +1981,11 @@ T).(\lambda (w: T).(subst0 (minus (s (Bind b) x2) (s k0 (S n0))) v u w))))))
 (\lambda (k0: K).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
 (_: T).(csubst0 (minus (s (Bind b) x2) (s k0 (S n0))) v e1 e2)))))) x3 x4 x5 
 x6 x7 (refl_equal C (CHead x4 x3 x6)) (drop_drop (Bind b) n0 x1 (CHead x5 x3 
-x7) H16 x0) (eq_ind_r nat (S (s x3 n0)) (\lambda (n1: nat).(subst0 (minus (s 
-(Bind b) x2) n1) v x6 x7)) H17 (s x3 (S n0)) (s_S x3 n0)) (eq_ind_r nat (S (s 
-x3 n0)) (\lambda (n1: nat).(csubst0 (minus (s (Bind b) x2) n1) v x4 x5)) H18 
-(s x3 (S n0)) (s_S x3 n0)))) e H15)))))))))) H14)) H13)))))) (\lambda (f: 
-F).(\lambda (H10: (drop (r (Flat f) n0) O c e)).(\lambda (H11: ((\forall (c3: 
+x7) H17 x0) (eq_ind_r nat (S (s x3 n0)) (\lambda (n1: nat).(subst0 (minus (s 
+(Bind b) x2) n1) v x6 x7)) H18 (s x3 (S n0)) (s_S x3 n0)) (eq_ind_r nat (S (s 
+x3 n0)) (\lambda (n1: nat).(csubst0 (minus (s (Bind b) x2) n1) v x4 x5)) H19 
+(s x3 (S n0)) (s_S x3 n0)))) e H16)))))))))) H15)) H14)))))) (\lambda (f: 
+F).(\lambda (H11: (drop (r (Flat f) n0) O c e)).(\lambda (H12: ((\forall (c3: 
 C).(\forall (v0: T).((csubst0 (s (Flat f) x2) v0 c c3) \to (\forall (e0: 
 C).((drop (S n0) O c e0) \to (or4 (drop (S n0) O c3 e0) (ex3_4 K C T T 
 (\lambda (k0: K).(\lambda (e1: C).(\lambda (u: T).(\lambda (_: T).(eq C e0 
@@ -2012,7 +2005,7 @@ C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 (minus (s (Flat f)
 x2) (s k0 (S n0))) v0 u w)))))) (\lambda (k0: K).(\lambda (e1: C).(\lambda 
 (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 (minus (s (Flat f) x2) (s k0 
 (S n0))) v0 e1 e2))))))))))))))).(\lambda (_: (lt (S n0) (s (Flat f) 
-x2))).(let H13 \def (H11 x1 v H7 e H10) in (or4_ind (drop (S n0) O x1 e) 
+x2))).(let H14 \def (H12 x1 v H8 e H11) in (or4_ind (drop (S n0) O x1 e) 
 (ex3_4 K C T T (\lambda (k0: K).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: 
 T).(eq C e (CHead e0 k0 u)))))) (\lambda (k0: K).(\lambda (e0: C).(\lambda 
 (_: T).(\lambda (w: T).(drop (S n0) O x1 (CHead e0 k0 w)))))) (\lambda (k0: 
@@ -2046,7 +2039,7 @@ C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) O (CHead x1 (Flat f) x0)
 C).(\lambda (u: T).(\lambda (w: T).(subst0 (minus (s (Flat f) x2) (s k0 (S 
 n0))) v u w)))))) (\lambda (k0: K).(\lambda (e1: C).(\lambda (e2: C).(\lambda 
 (_: T).(\lambda (_: T).(csubst0 (minus (s (Flat f) x2) (s k0 (S n0))) v e1 
-e2)))))))) (\lambda (H14: (drop (S n0) O x1 e)).(or4_intro0 (drop (S n0) O 
+e2)))))))) (\lambda (H15: (drop (S n0) O x1 e)).(or4_intro0 (drop (S n0) O 
 (CHead x1 (Flat f) x0) e) (ex3_4 K C T T (\lambda (k0: K).(\lambda (e0: 
 C).(\lambda (u: T).(\lambda (_: T).(eq C e (CHead e0 k0 u)))))) (\lambda (k0: 
 K).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) O (CHead x1 
@@ -2064,8 +2057,8 @@ T).(drop (S n0) O (CHead x1 (Flat f) x0) (CHead e2 k0 w))))))) (\lambda (k0:
 K).(\lambda (_: C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 
 (minus (s (Flat f) x2) (s k0 (S n0))) v u w)))))) (\lambda (k0: K).(\lambda 
 (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 (minus (s 
-(Flat f) x2) (s k0 (S n0))) v e1 e2))))))) (drop_drop (Flat f) n0 x1 e H14 
-x0))) (\lambda (H14: (ex3_4 K C T T (\lambda (k0: K).(\lambda (e0: 
+(Flat f) x2) (s k0 (S n0))) v e1 e2))))))) (drop_drop (Flat f) n0 x1 e H15 
+x0))) (\lambda (H15: (ex3_4 K C T T (\lambda (k0: K).(\lambda (e0: 
 C).(\lambda (u: T).(\lambda (_: T).(eq C e (CHead e0 k0 u)))))) (\lambda (k0: 
 K).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) O x1 (CHead 
 e0 k0 w)))))) (\lambda (k0: K).(\lambda (_: C).(\lambda (u: T).(\lambda (w: 
@@ -2092,8 +2085,8 @@ K).(\lambda (_: C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0
 (minus (s (Flat f) x2) (s k0 (S n0))) v u w)))))) (\lambda (k0: K).(\lambda 
 (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 (minus (s 
 (Flat f) x2) (s k0 (S n0))) v e1 e2)))))))) (\lambda (x3: K).(\lambda (x4: 
-C).(\lambda (x5: T).(\lambda (x6: T).(\lambda (H15: (eq C e (CHead x4 x3 
-x5))).(\lambda (H16: (drop (S n0) O x1 (CHead x4 x3 x6))).(\lambda (H17
+C).(\lambda (x5: T).(\lambda (x6: T).(\lambda (H16: (eq C e (CHead x4 x3 
+x5))).(\lambda (H17: (drop (S n0) O x1 (CHead x4 x3 x6))).(\lambda (H18
 (subst0 (minus x2 (s x3 (S n0))) v x5 x6)).(eq_ind_r C (CHead x4 x3 x5) 
 (\lambda (c0: C).(or4 (drop (S n0) O (CHead x1 (Flat f) x0) c0) (ex3_4 K C T 
 T (\lambda (k0: K).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: T).(eq C c0 
@@ -2138,7 +2131,7 @@ K).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) O (CHead x1
 (Flat f) x0) (CHead e0 k0 w)))))) (\lambda (k0: K).(\lambda (_: C).(\lambda 
 (u: T).(\lambda (w: T).(subst0 (minus (s (Flat f) x2) (s k0 (S n0))) v u 
 w))))) x3 x4 x5 x6 (refl_equal C (CHead x4 x3 x5)) (drop_drop (Flat f) n0 x1 
-(CHead x4 x3 x6) H16 x0) H17)) e H15)))))))) H14)) (\lambda (H14: (ex3_4 K C 
+(CHead x4 x3 x6) H17 x0) H18)) e H16)))))))) H15)) (\lambda (H15: (ex3_4 K C 
 C T (\lambda (k0: K).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(eq C e 
 (CHead e1 k0 u)))))) (\lambda (k0: K).(\lambda (_: C).(\lambda (e2: 
 C).(\lambda (u: T).(drop (S n0) O x1 (CHead e2 k0 u)))))) (\lambda (k0: 
@@ -2166,8 +2159,8 @@ C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 (minus (s (Flat f)
 x2) (s k0 (S n0))) v u w)))))) (\lambda (k0: K).(\lambda (e1: C).(\lambda 
 (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 (minus (s (Flat f) x2) (s k0 
 (S n0))) v e1 e2)))))))) (\lambda (x3: K).(\lambda (x4: C).(\lambda (x5: 
-C).(\lambda (x6: T).(\lambda (H15: (eq C e (CHead x4 x3 x6))).(\lambda (H16
-(drop (S n0) O x1 (CHead x5 x3 x6))).(\lambda (H17: (csubst0 (minus x2 (s x3 
+C).(\lambda (x6: T).(\lambda (H16: (eq C e (CHead x4 x3 x6))).(\lambda (H17
+(drop (S n0) O x1 (CHead x5 x3 x6))).(\lambda (H18: (csubst0 (minus x2 (s x3 
 (S n0))) v x4 x5)).(eq_ind_r C (CHead x4 x3 x6) (\lambda (c0: C).(or4 (drop 
 (S n0) O (CHead x1 (Flat f) x0) c0) (ex3_4 K C T T (\lambda (k0: K).(\lambda 
 (e0: C).(\lambda (u: T).(\lambda (_: T).(eq C c0 (CHead e0 k0 u)))))) 
@@ -2212,7 +2205,7 @@ K).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(drop (S n0) O (CHead x1
 (Flat f) x0) (CHead e2 k0 u)))))) (\lambda (k0: K).(\lambda (e1: C).(\lambda 
 (e2: C).(\lambda (_: T).(csubst0 (minus (s (Flat f) x2) (s k0 (S n0))) v e1 
 e2))))) x3 x4 x5 x6 (refl_equal C (CHead x4 x3 x6)) (drop_drop (Flat f) n0 x1 
-(CHead x5 x3 x6) H16 x0) H17)) e H15)))))))) H14)) (\lambda (H14: (ex4_5 K C 
+(CHead x5 x3 x6) H17 x0) H18)) e H16)))))))) H15)) (\lambda (H15: (ex4_5 K C 
 C T T (\lambda (k0: K).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: 
 T).(\lambda (_: T).(eq C e (CHead e1 k0 u))))))) (\lambda (k0: K).(\lambda 
 (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) O x1 
@@ -2245,10 +2238,10 @@ K).(\lambda (_: C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0
 (minus (s (Flat f) x2) (s k0 (S n0))) v u w)))))) (\lambda (k0: K).(\lambda 
 (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 (minus (s 
 (Flat f) x2) (s k0 (S n0))) v e1 e2)))))))) (\lambda (x3: K).(\lambda (x4: 
-C).(\lambda (x5: C).(\lambda (x6: T).(\lambda (x7: T).(\lambda (H15: (eq C e 
-(CHead x4 x3 x6))).(\lambda (H16: (drop (S n0) O x1 (CHead x5 x3 
-x7))).(\lambda (H17: (subst0 (minus x2 (s x3 (S n0))) v x6 x7)).(\lambda 
-(H18: (csubst0 (minus x2 (s x3 (S n0))) v x4 x5)).(eq_ind_r C (CHead x4 x3 
+C).(\lambda (x5: C).(\lambda (x6: T).(\lambda (x7: T).(\lambda (H16: (eq C e 
+(CHead x4 x3 x6))).(\lambda (H17: (drop (S n0) O x1 (CHead x5 x3 
+x7))).(\lambda (H18: (subst0 (minus x2 (s x3 (S n0))) v x6 x7)).(\lambda 
+(H19: (csubst0 (minus x2 (s x3 (S n0))) v x4 x5)).(eq_ind_r C (CHead x4 x3 
 x6) (\lambda (c0: C).(or4 (drop (S n0) O (CHead x1 (Flat f) x0) c0) (ex3_4 K 
 C T T (\lambda (k0: K).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: T).(eq C 
 c0 (CHead e0 k0 u)))))) (\lambda (k0: K).(\lambda (e0: C).(\lambda (_: 
@@ -2295,12 +2288,8 @@ T).(\lambda (w: T).(subst0 (minus (s (Flat f) x2) (s k0 (S n0))) v u w))))))
 (\lambda (k0: K).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
 (_: T).(csubst0 (minus (s (Flat f) x2) (s k0 (S n0))) v e1 e2)))))) x3 x4 x5 
 x6 x7 (refl_equal C (CHead x4 x3 x6)) (drop_drop (Flat f) n0 x1 (CHead x5 x3 
-x7) H16 x0) H17 H18)) e H15)))))))))) H14)) H13)))))) k (drop_gen_drop k c e 
-t n0 H2) H8 H9) i H4))) c2 H5)))))))) H3)) (csubst0_gen_head k c c2 t v i 
-H1))))))))))) c1)))))) n).
-(* COMMENTS
-Initial nodes: 39886
-END *)
+x7) H17 x0) H18 H19)) e H16)))))))))) H15)) H14)))))) k (drop_gen_drop k c e 
+t n0 H2) H9 H10) i H5))) c2 H6)))))))) H4)) H3))))))))))) c1)))))) n).
 
 theorem csubst0_drop_eq:
  \forall (n: nat).(\forall (c1: C).(\forall (c2: C).(\forall (v: T).((csubst0 
@@ -2411,35 +2400,35 @@ F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0
 (s k0 i) v0 e1 e2)))))))))))))))) (\lambda (b: B).(\lambda (i: nat).(\lambda 
 (v0: T).(\lambda (u1: T).(\lambda (u2: T).(\lambda (_: (subst0 i v0 u1 
 u2)).(\lambda (c: C).(\lambda (H3: (eq nat (S i) O)).(let H4 \def (eq_ind nat 
-(S i) (\lambda (ee: nat).(match ee in nat return (\lambda (_: nat).Prop) with 
-[O \Rightarrow False | (S _) \Rightarrow True])) I O H3) in (False_ind (or4 
-(drop (S i) (S i) (CHead c (Bind b) u2) (CHead c (Bind b) u1)) (ex3_4 F C T T 
-(\lambda (f: F).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: T).(eq C (CHead 
-c (Bind b) u1) (CHead e0 (Flat f) u)))))) (\lambda (f: F).(\lambda (e0: 
-C).(\lambda (_: T).(\lambda (w: T).(drop (S i) (S i) (CHead c (Bind b) u2
-(CHead e0 (Flat f) w)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u: 
-T).(\lambda (w: T).(subst0 (S i) v0 u w)))))) (ex3_4 F C C T (\lambda (f
-F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(eq C (CHead c (Bind b
-u1) (CHead e1 (Flat f) u)))))) (\lambda (f: F).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (u: T).(drop (S i) (S i) (CHead c (Bind b) u2) (CHead e2 (Flat f) 
-u)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: 
-T).(csubst0 (S i) v0 e1 e2)))))) (ex4_5 F C C T T (\lambda (f: F).(\lambda 
-(e1: C).(\lambda (_: C).(\lambda (u: T).(\lambda (_: T).(eq C (CHead c (Bind 
-b) u1) (CHead e1 (Flat f) u))))))) (\lambda (f: F).(\lambda (_: C).(\lambda 
-(e2: C).(\lambda (_: T).(\lambda (w: T).(drop (S i) (S i) (CHead c (Bind b) 
-u2) (CHead e2 (Flat f) w))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: 
-C).(\lambda (u: T).(\lambda (w: T).(subst0 (S i) v0 u w)))))) (\lambda (_: 
-F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 
-(S i) v0 e1 e2)))))))) H4)))))))))) (\lambda (f: F).(\lambda (i
-nat).(\lambda (v0: T).(\lambda (u1: T).(\lambda (u2: T).(\lambda (H2: (subst0 
-i v0 u1 u2)).(\lambda (c: C).(\lambda (H3: (eq nat i O)).(let H4 \def (eq_ind 
-nat i (\lambda (n0: nat).(subst0 n0 v0 u1 u2)) H2 O H3) in (eq_ind_r nat O 
-(\lambda (n0: nat).(or4 (drop n0 n0 (CHead c (Flat f) u2) (CHead c (Flat f
-u1)) (ex3_4 F C T T (\lambda (f0: F).(\lambda (e0: C).(\lambda (u
-T).(\lambda (_: T).(eq C (CHead c (Flat f) u1) (CHead e0 (Flat f0) u)))))) 
-(\lambda (f0: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: T).(drop n0 n0 
-(CHead c (Flat f) u2) (CHead e0 (Flat f0) w)))))) (\lambda (_: F).(\lambda 
-(_: C).(\lambda (u: T).(\lambda (w: T).(subst0 n0 v0 u w)))))) (ex3_4 F C C T 
+(S i) (\lambda (ee: nat).(match ee with [O \Rightarrow False | (S _) 
+\Rightarrow True])) I O H3) in (False_ind (or4 (drop (S i) (S i) (CHead c 
+(Bind b) u2) (CHead c (Bind b) u1)) (ex3_4 F C T T (\lambda (f: F).(\lambda 
+(e0: C).(\lambda (u: T).(\lambda (_: T).(eq C (CHead c (Bind b) u1) (CHead e0 
+(Flat f) u)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (_: T).(\lambda 
+(w: T).(drop (S i) (S i) (CHead c (Bind b) u2) (CHead e0 (Flat f) w)))))
+(\lambda (_: F).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 (S i) 
+v0 u w)))))) (ex3_4 F C C T (\lambda (f: F).(\lambda (e1: C).(\lambda (_
+C).(\lambda (u: T).(eq C (CHead c (Bind b) u1) (CHead e1 (Flat f) u)))))
+(\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(drop (S i) 
+(S i) (CHead c (Bind b) u2) (CHead e2 (Flat f) u)))))) (\lambda (_: 
+F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 (S i) v0 e1 
+e2)))))) (ex4_5 F C C T T (\lambda (f: F).(\lambda (e1: C).(\lambda (_: 
+C).(\lambda (u: T).(\lambda (_: T).(eq C (CHead c (Bind b) u1) (CHead e1 
+(Flat f) u))))))) (\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda 
+(_: T).(\lambda (w: T).(drop (S i) (S i) (CHead c (Bind b) u2) (CHead e2 
+(Flat f) w))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda 
+(u: T).(\lambda (w: T).(subst0 (S i) v0 u w)))))) (\lambda (_: F).(\lambda 
+(e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 (S i) v0 e1 
+e2)))))))) H4)))))))))) (\lambda (f: F).(\lambda (i: nat).(\lambda (v0
+T).(\lambda (u1: T).(\lambda (u2: T).(\lambda (H2: (subst0 i v0 u1 
+u2)).(\lambda (c: C).(\lambda (H3: (eq nat i O)).(let H4 \def (eq_ind nat i 
+(\lambda (n0: nat).(subst0 n0 v0 u1 u2)) H2 O H3) in (eq_ind_r nat O (\lambda 
+(n0: nat).(or4 (drop n0 n0 (CHead c (Flat f) u2) (CHead c (Flat f) u1)
+(ex3_4 F C T T (\lambda (f0: F).(\lambda (e0: C).(\lambda (u: T).(\lambda (_
+T).(eq C (CHead c (Flat f) u1) (CHead e0 (Flat f0) u)))))) (\lambda (f0: 
+F).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: T).(drop n0 n0 (CHead c 
+(Flat f) u2) (CHead e0 (Flat f0) w)))))) (\lambda (_: F).(\lambda (_: 
+C).(\lambda (u: T).(\lambda (w: T).(subst0 n0 v0 u w)))))) (ex3_4 F C C T 
 (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(eq C 
 (CHead c (Flat f) u1) (CHead e1 (Flat f0) u)))))) (\lambda (f0: F).(\lambda 
 (_: C).(\lambda (e2: C).(\lambda (u: T).(drop n0 n0 (CHead c (Flat f) u2) 
@@ -2528,141 +2517,141 @@ T).(drop i i c4 (CHead e2 (Flat f) w))))))) (\lambda (_: F).(\lambda (_:
 C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 i v0 u w)))))) 
 (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
 (_: T).(csubst0 i v0 e1 e2))))))))))).(\lambda (u: T).(\lambda (H4: (eq nat 
-(S i) O)).(let H5 \def (eq_ind nat (S i) (\lambda (ee: nat).(match ee in nat 
-return (\lambda (_: nat).Prop) with [O \Rightarrow False | (S _) \Rightarrow 
-True])) I O H4) in (False_ind (or4 (drop (S i) (S i) (CHead c4 (Bind b) u) 
-(CHead c3 (Bind b) u)) (ex3_4 F C T T (\lambda (f: F).(\lambda (e0: 
-C).(\lambda (u0: T).(\lambda (_: T).(eq C (CHead c3 (Bind b) u) (CHead e0 
-(Flat f) u0)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (_: T).(\lambda 
-(w: T).(drop (S i) (S i) (CHead c4 (Bind b) u) (CHead e0 (Flat f) w)))))) 
-(\lambda (_: F).(\lambda (_: C).(\lambda (u0: T).(\lambda (w: T).(subst0 (S 
-i) v0 u0 w)))))) (ex3_4 F C C T (\lambda (f: F).(\lambda (e1: C).(\lambda (_: 
-C).(\lambda (u0: T).(eq C (CHead c3 (Bind b) u) (CHead e1 (Flat f) u0)))))) 
-(\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u0: T).(drop (S i) 
-(S i) (CHead c4 (Bind b) u) (CHead e2 (Flat f) u0)))))) (\lambda (_: 
-F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 (S i) v0 e1 
-e2)))))) (ex4_5 F C C T T (\lambda (f: F).(\lambda (e1: C).(\lambda (_: 
-C).(\lambda (u0: T).(\lambda (_: T).(eq C (CHead c3 (Bind b) u) (CHead e1 
-(Flat f) u0))))))) (\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda 
-(_: T).(\lambda (w: T).(drop (S i) (S i) (CHead c4 (Bind b) u) (CHead e2 
-(Flat f) w))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda 
-(u0: T).(\lambda (w: T).(subst0 (S i) v0 u0 w)))))) (\lambda (_: F).(\lambda 
-(e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 (S i) v0 e1 
-e2)))))))) H5))))))))))) (\lambda (f: F).(\lambda (i: nat).(\lambda (c3: 
-C).(\lambda (c4: C).(\lambda (v0: T).(\lambda (H2: (csubst0 i v0 c3 
-c4)).(\lambda (H3: (((eq nat i O) \to (or4 (drop i i c4 c3) (ex3_4 F C T T 
-(\lambda (f0: F).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: T).(eq C c3 
-(CHead e0 (Flat f0) u)))))) (\lambda (f0: F).(\lambda (e0: C).(\lambda (_: 
-T).(\lambda (w: T).(drop i i c4 (CHead e0 (Flat f0) w)))))) (\lambda (_: 
-F).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 i v0 u w)))))) 
-(ex3_4 F C C T (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: 
-T).(eq C c3 (CHead e1 (Flat f0) u)))))) (\lambda (f0: F).(\lambda (_: 
-C).(\lambda (e2: C).(\lambda (u: T).(drop i i c4 (CHead e2 (Flat f0) u)))))) 
-(\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 i 
-v0 e1 e2)))))) (ex4_5 F C C T T (\lambda (f0: F).(\lambda (e1: C).(\lambda 
-(_: C).(\lambda (u: T).(\lambda (_: T).(eq C c3 (CHead e1 (Flat f0) u))))))) 
+(S i) O)).(let H5 \def (eq_ind nat (S i) (\lambda (ee: nat).(match ee with [O 
+\Rightarrow False | (S _) \Rightarrow True])) I O H4) in (False_ind (or4 
+(drop (S i) (S i) (CHead c4 (Bind b) u) (CHead c3 (Bind b) u)) (ex3_4 F C T T 
+(\lambda (f: F).(\lambda (e0: C).(\lambda (u0: T).(\lambda (_: T).(eq C 
+(CHead c3 (Bind b) u) (CHead e0 (Flat f) u0)))))) (\lambda (f: F).(\lambda 
+(e0: C).(\lambda (_: T).(\lambda (w: T).(drop (S i) (S i) (CHead c4 (Bind b) 
+u) (CHead e0 (Flat f) w)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u0: 
+T).(\lambda (w: T).(subst0 (S i) v0 u0 w)))))) (ex3_4 F C C T (\lambda (f: 
+F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u0: T).(eq C (CHead c3 (Bind b) 
+u) (CHead e1 (Flat f) u0)))))) (\lambda (f: F).(\lambda (_: C).(\lambda (e2: 
+C).(\lambda (u0: T).(drop (S i) (S i) (CHead c4 (Bind b) u) (CHead e2 (Flat 
+f) u0)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: 
+T).(csubst0 (S i) v0 e1 e2)))))) (ex4_5 F C C T T (\lambda (f: F).(\lambda 
+(e1: C).(\lambda (_: C).(\lambda (u0: T).(\lambda (_: T).(eq C (CHead c3 
+(Bind b) u) (CHead e1 (Flat f) u0))))))) (\lambda (f: F).(\lambda (_: 
+C).(\lambda (e2: C).(\lambda (_: T).(\lambda (w: T).(drop (S i) (S i) (CHead 
+c4 (Bind b) u) (CHead e2 (Flat f) w))))))) (\lambda (_: F).(\lambda (_: 
+C).(\lambda (_: C).(\lambda (u0: T).(\lambda (w: T).(subst0 (S i) v0 u0 
+w)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: 
+T).(\lambda (_: T).(csubst0 (S i) v0 e1 e2)))))))) H5))))))))))) (\lambda (f: 
+F).(\lambda (i: nat).(\lambda (c3: C).(\lambda (c4: C).(\lambda (v0: 
+T).(\lambda (H2: (csubst0 i v0 c3 c4)).(\lambda (H3: (((eq nat i O) \to (or4 
+(drop i i c4 c3) (ex3_4 F C T T (\lambda (f0: F).(\lambda (e0: C).(\lambda 
+(u: T).(\lambda (_: T).(eq C c3 (CHead e0 (Flat f0) u)))))) (\lambda (f0: 
+F).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: T).(drop i i c4 (CHead e0 
+(Flat f0) w)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u: T).(\lambda 
+(w: T).(subst0 i v0 u w)))))) (ex3_4 F C C T (\lambda (f0: F).(\lambda (e1: 
+C).(\lambda (_: C).(\lambda (u: T).(eq C c3 (CHead e1 (Flat f0) u)))))) 
+(\lambda (f0: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(drop i i 
+c4 (CHead e2 (Flat f0) u)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: 
+C).(\lambda (_: T).(csubst0 i v0 e1 e2)))))) (ex4_5 F C C T T (\lambda (f0: 
+F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(\lambda (_: T).(eq C c3 
+(CHead e1 (Flat f0) u))))))) (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: 
+C).(\lambda (_: T).(\lambda (w: T).(drop i i c4 (CHead e2 (Flat f0) w))))))) 
+(\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: 
+T).(subst0 i v0 u w)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: 
+C).(\lambda (_: T).(\lambda (_: T).(csubst0 i v0 e1 e2))))))))))).(\lambda 
+(u: T).(\lambda (H4: (eq nat i O)).(let H5 \def (eq_ind nat i (\lambda (n0: 
+nat).((eq nat n0 O) \to (or4 (drop n0 n0 c4 c3) (ex3_4 F C T T (\lambda (f0: 
+F).(\lambda (e0: C).(\lambda (u0: T).(\lambda (_: T).(eq C c3 (CHead e0 (Flat 
+f0) u0)))))) (\lambda (f0: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: 
+T).(drop n0 n0 c4 (CHead e0 (Flat f0) w)))))) (\lambda (_: F).(\lambda (_: 
+C).(\lambda (u0: T).(\lambda (w: T).(subst0 n0 v0 u0 w)))))) (ex3_4 F C C T 
+(\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u0: T).(eq C c3 
+(CHead e1 (Flat f0) u0)))))) (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: 
+C).(\lambda (u0: T).(drop n0 n0 c4 (CHead e2 (Flat f0) u0)))))) (\lambda (_: 
+F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 n0 v0 e1 
+e2)))))) (ex4_5 F C C T T (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: 
+C).(\lambda (u0: T).(\lambda (_: T).(eq C c3 (CHead e1 (Flat f0) u0))))))) 
 (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
-(w: T).(drop i i c4 (CHead e2 (Flat f0) w))))))) (\lambda (_: F).(\lambda (_: 
-C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 i v0 u w)))))) 
-(\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
-(_: T).(csubst0 i v0 e1 e2))))))))))).(\lambda (u: T).(\lambda (H4: (eq nat i 
-O)).(let H5 \def (eq_ind nat i (\lambda (n0: nat).((eq nat n0 O) \to (or4 
-(drop n0 n0 c4 c3) (ex3_4 F C T T (\lambda (f0: F).(\lambda (e0: C).(\lambda 
-(u0: T).(\lambda (_: T).(eq C c3 (CHead e0 (Flat f0) u0)))))) (\lambda (f0: 
-F).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: T).(drop n0 n0 c4 (CHead e0 
-(Flat f0) w)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u0: T).(\lambda 
-(w: T).(subst0 n0 v0 u0 w)))))) (ex3_4 F C C T (\lambda (f0: F).(\lambda (e1: 
-C).(\lambda (_: C).(\lambda (u0: T).(eq C c3 (CHead e1 (Flat f0) u0)))))) 
-(\lambda (f0: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u0: T).(drop n0 
-n0 c4 (CHead e2 (Flat f0) u0)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda 
-(e2: C).(\lambda (_: T).(csubst0 n0 v0 e1 e2)))))) (ex4_5 F C C T T (\lambda 
-(f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u0: T).(\lambda (_: T).(eq 
-C c3 (CHead e1 (Flat f0) u0))))))) (\lambda (f0: F).(\lambda (_: C).(\lambda 
-(e2: C).(\lambda (_: T).(\lambda (w: T).(drop n0 n0 c4 (CHead e2 (Flat f0) 
-w))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u0: 
-T).(\lambda (w: T).(subst0 n0 v0 u0 w)))))) (\lambda (_: F).(\lambda (e1: 
-C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 n0 v0 e1 
-e2)))))))))) H3 O H4) in (let H6 \def (eq_ind nat i (\lambda (n0: 
-nat).(csubst0 n0 v0 c3 c4)) H2 O H4) in (eq_ind_r nat O (\lambda (n0: 
-nat).(or4 (drop n0 n0 (CHead c4 (Flat f) u) (CHead c3 (Flat f) u)) (ex3_4 F C 
-T T (\lambda (f0: F).(\lambda (e0: C).(\lambda (u0: T).(\lambda (_: T).(eq C 
-(CHead c3 (Flat f) u) (CHead e0 (Flat f0) u0)))))) (\lambda (f0: F).(\lambda 
-(e0: C).(\lambda (_: T).(\lambda (w: T).(drop n0 n0 (CHead c4 (Flat f) u) 
-(CHead e0 (Flat f0) w)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u0: 
-T).(\lambda (w: T).(subst0 n0 v0 u0 w)))))) (ex3_4 F C C T (\lambda (f0: 
-F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u0: T).(eq C (CHead c3 (Flat f) 
-u) (CHead e1 (Flat f0) u0)))))) (\lambda (f0: F).(\lambda (_: C).(\lambda 
-(e2: C).(\lambda (u0: T).(drop n0 n0 (CHead c4 (Flat f) u) (CHead e2 (Flat 
-f0) u0)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: 
-T).(csubst0 n0 v0 e1 e2)))))) (ex4_5 F C C T T (\lambda (f0: F).(\lambda (e1: 
-C).(\lambda (_: C).(\lambda (u0: T).(\lambda (_: T).(eq C (CHead c3 (Flat f) 
-u) (CHead e1 (Flat f0) u0))))))) (\lambda (f0: F).(\lambda (_: C).(\lambda 
-(e2: C).(\lambda (_: T).(\lambda (w: T).(drop n0 n0 (CHead c4 (Flat f) u) 
-(CHead e2 (Flat f0) w))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: 
-C).(\lambda (u0: T).(\lambda (w: T).(subst0 n0 v0 u0 w)))))) (\lambda (_: 
-F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 
-n0 v0 e1 e2))))))))) (or4_intro2 (drop O O (CHead c4 (Flat f) u) (CHead c3 
+(w: T).(drop n0 n0 c4 (CHead e2 (Flat f0) w))))))) (\lambda (_: F).(\lambda 
+(_: C).(\lambda (_: C).(\lambda (u0: T).(\lambda (w: T).(subst0 n0 v0 u0 
+w)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: 
+T).(\lambda (_: T).(csubst0 n0 v0 e1 e2)))))))))) H3 O H4) in (let H6 \def 
+(eq_ind nat i (\lambda (n0: nat).(csubst0 n0 v0 c3 c4)) H2 O H4) in (eq_ind_r 
+nat O (\lambda (n0: nat).(or4 (drop n0 n0 (CHead c4 (Flat f) u) (CHead c3 
 (Flat f) u)) (ex3_4 F C T T (\lambda (f0: F).(\lambda (e0: C).(\lambda (u0: 
 T).(\lambda (_: T).(eq C (CHead c3 (Flat f) u) (CHead e0 (Flat f0) u0)))))) 
-(\lambda (f0: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: T).(drop O O 
+(\lambda (f0: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: T).(drop n0 n0 
 (CHead c4 (Flat f) u) (CHead e0 (Flat f0) w)))))) (\lambda (_: F).(\lambda 
-(_: C).(\lambda (u0: T).(\lambda (w: T).(subst0 O v0 u0 w)))))) (ex3_4 F C C 
+(_: C).(\lambda (u0: T).(\lambda (w: T).(subst0 n0 v0 u0 w)))))) (ex3_4 F C C 
 T (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u0: T).(eq C 
 (CHead c3 (Flat f) u) (CHead e1 (Flat f0) u0)))))) (\lambda (f0: F).(\lambda 
-(_: C).(\lambda (e2: C).(\lambda (u0: T).(drop O O (CHead c4 (Flat f) u) 
+(_: C).(\lambda (e2: C).(\lambda (u0: T).(drop n0 n0 (CHead c4 (Flat f) u) 
 (CHead e2 (Flat f0) u0)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: 
-C).(\lambda (_: T).(csubst0 O v0 e1 e2)))))) (ex4_5 F C C T T (\lambda (f0: 
+C).(\lambda (_: T).(csubst0 n0 v0 e1 e2)))))) (ex4_5 F C C T T (\lambda (f0: 
 F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u0: T).(\lambda (_: T).(eq C 
 (CHead c3 (Flat f) u) (CHead e1 (Flat f0) u0))))))) (\lambda (f0: F).(\lambda 
-(_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (w: T).(drop O O (CHead c4 
+(_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (w: T).(drop n0 n0 (CHead c4 
 (Flat f) u) (CHead e2 (Flat f0) w))))))) (\lambda (_: F).(\lambda (_: 
-C).(\lambda (_: C).(\lambda (u0: T).(\lambda (w: T).(subst0 O v0 u0 w)))))) 
+C).(\lambda (_: C).(\lambda (u0: T).(\lambda (w: T).(subst0 n0 v0 u0 w)))))) 
 (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
-(_: T).(csubst0 O v0 e1 e2))))))) (ex3_4_intro F C C T (\lambda (f0: 
-F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u0: T).(eq C (CHead c3 (Flat f) 
-u) (CHead e1 (Flat f0) u0)))))) (\lambda (f0: F).(\lambda (_: C).(\lambda 
-(e2: C).(\lambda (u0: T).(drop O O (CHead c4 (Flat f) u) (CHead e2 (Flat f0) 
-u0)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: 
-T).(csubst0 O v0 e1 e2))))) f c3 c4 u (refl_equal C (CHead c3 (Flat f) u)) 
-(drop_refl (CHead c4 (Flat f) u)) H6)) i H4)))))))))))) k)) (\lambda (k: 
-K).(K_ind (\lambda (k0: K).(\forall (i: nat).(\forall (v0: T).(\forall (u1: 
-T).(\forall (u2: T).((subst0 i v0 u1 u2) \to (\forall (c3: C).(\forall (c4: 
-C).((csubst0 i v0 c3 c4) \to ((((eq nat i O) \to (or4 (drop i i c4 c3) (ex3_4 
-F C T T (\lambda (f: F).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: T).(eq 
-C c3 (CHead e0 (Flat f) u)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (_: 
-T).(\lambda (w: T).(drop i i c4 (CHead e0 (Flat f) w)))))) (\lambda (_: 
-F).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 i v0 u w)))))) 
-(ex3_4 F C C T (\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: 
-T).(eq C c3 (CHead e1 (Flat f) u)))))) (\lambda (f: F).(\lambda (_: 
-C).(\lambda (e2: C).(\lambda (u: T).(drop i i c4 (CHead e2 (Flat f) u)))))) 
-(\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 i 
-v0 e1 e2)))))) (ex4_5 F C C T T (\lambda (f: F).(\lambda (e1: C).(\lambda (_: 
-C).(\lambda (u: T).(\lambda (_: T).(eq C c3 (CHead e1 (Flat f) u))))))) 
+(_: T).(csubst0 n0 v0 e1 e2))))))))) (or4_intro2 (drop O O (CHead c4 (Flat f) 
+u) (CHead c3 (Flat f) u)) (ex3_4 F C T T (\lambda (f0: F).(\lambda (e0: 
+C).(\lambda (u0: T).(\lambda (_: T).(eq C (CHead c3 (Flat f) u) (CHead e0 
+(Flat f0) u0)))))) (\lambda (f0: F).(\lambda (e0: C).(\lambda (_: T).(\lambda 
+(w: T).(drop O O (CHead c4 (Flat f) u) (CHead e0 (Flat f0) w)))))) (\lambda 
+(_: F).(\lambda (_: C).(\lambda (u0: T).(\lambda (w: T).(subst0 O v0 u0 
+w)))))) (ex3_4 F C C T (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: 
+C).(\lambda (u0: T).(eq C (CHead c3 (Flat f) u) (CHead e1 (Flat f0) u0)))))) 
+(\lambda (f0: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u0: T).(drop O O 
+(CHead c4 (Flat f) u) (CHead e2 (Flat f0) u0)))))) (\lambda (_: F).(\lambda 
+(e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v0 e1 e2)))))) (ex4_5 F C 
+C T T (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u0: 
+T).(\lambda (_: T).(eq C (CHead c3 (Flat f) u) (CHead e1 (Flat f0) u0))))))) 
+(\lambda (f0: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
+(w: T).(drop O O (CHead c4 (Flat f) u) (CHead e2 (Flat f0) w))))))) (\lambda 
+(_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u0: T).(\lambda (w: 
+T).(subst0 O v0 u0 w)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: 
+C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v0 e1 e2))))))) (ex3_4_intro F 
+C C T (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u0: T).(eq 
+C (CHead c3 (Flat f) u) (CHead e1 (Flat f0) u0)))))) (\lambda (f0: 
+F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u0: T).(drop O O (CHead c4 
+(Flat f) u) (CHead e2 (Flat f0) u0)))))) (\lambda (_: F).(\lambda (e1: 
+C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v0 e1 e2))))) f c3 c4 u 
+(refl_equal C (CHead c3 (Flat f) u)) (drop_refl (CHead c4 (Flat f) u)) H6)) i 
+H4)))))))))))) k)) (\lambda (k: K).(K_ind (\lambda (k0: K).(\forall (i: 
+nat).(\forall (v0: T).(\forall (u1: T).(\forall (u2: T).((subst0 i v0 u1 u2) 
+\to (\forall (c3: C).(\forall (c4: C).((csubst0 i v0 c3 c4) \to ((((eq nat i 
+O) \to (or4 (drop i i c4 c3) (ex3_4 F C T T (\lambda (f: F).(\lambda (e0: 
+C).(\lambda (u: T).(\lambda (_: T).(eq C c3 (CHead e0 (Flat f) u)))))) 
+(\lambda (f: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: T).(drop i i c4 
+(CHead e0 (Flat f) w)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u: 
+T).(\lambda (w: T).(subst0 i v0 u w)))))) (ex3_4 F C C T (\lambda (f: 
+F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(eq C c3 (CHead e1 (Flat 
+f) u)))))) (\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: 
+T).(drop i i c4 (CHead e2 (Flat f) u)))))) (\lambda (_: F).(\lambda (e1: 
+C).(\lambda (e2: C).(\lambda (_: T).(csubst0 i v0 e1 e2)))))) (ex4_5 F C C T 
+T (\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(\lambda 
+(_: T).(eq C c3 (CHead e1 (Flat f) u))))))) (\lambda (f: F).(\lambda (_: 
+C).(\lambda (e2: C).(\lambda (_: T).(\lambda (w: T).(drop i i c4 (CHead e2 
+(Flat f) w))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda 
+(u: T).(\lambda (w: T).(subst0 i v0 u w)))))) (\lambda (_: F).(\lambda (e1: 
+C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 i v0 e1 
+e2)))))))))) \to ((eq nat (s k0 i) O) \to (or4 (drop (s k0 i) (s k0 i) (CHead 
+c4 k0 u2) (CHead c3 k0 u1)) (ex3_4 F C T T (\lambda (f: F).(\lambda (e0: 
+C).(\lambda (u: T).(\lambda (_: T).(eq C (CHead c3 k0 u1) (CHead e0 (Flat f) 
+u)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: 
+T).(drop (s k0 i) (s k0 i) (CHead c4 k0 u2) (CHead e0 (Flat f) w)))))) 
+(\lambda (_: F).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 (s k0 
+i) v0 u w)))))) (ex3_4 F C C T (\lambda (f: F).(\lambda (e1: C).(\lambda (_: 
+C).(\lambda (u: T).(eq C (CHead c3 k0 u1) (CHead e1 (Flat f) u)))))) (\lambda 
+(f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(drop (s k0 i) (s k0 
+i) (CHead c4 k0 u2) (CHead e2 (Flat f) u)))))) (\lambda (_: F).(\lambda (e1: 
+C).(\lambda (e2: C).(\lambda (_: T).(csubst0 (s k0 i) v0 e1 e2)))))) (ex4_5 F 
+C C T T (\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: 
+T).(\lambda (_: T).(eq C (CHead c3 k0 u1) (CHead e1 (Flat f) u))))))) 
 (\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (w: 
-T).(drop i i c4 (CHead e2 (Flat f) w))))))) (\lambda (_: F).(\lambda (_: 
-C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 i v0 u w)))))) 
-(\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
-(_: T).(csubst0 i v0 e1 e2)))))))))) \to ((eq nat (s k0 i) O) \to (or4 (drop 
-(s k0 i) (s k0 i) (CHead c4 k0 u2) (CHead c3 k0 u1)) (ex3_4 F C T T (\lambda 
-(f: F).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: T).(eq C (CHead c3 k0 
-u1) (CHead e0 (Flat f) u)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (_: 
-T).(\lambda (w: T).(drop (s k0 i) (s k0 i) (CHead c4 k0 u2) (CHead e0 (Flat 
-f) w)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u: T).(\lambda (w: 
-T).(subst0 (s k0 i) v0 u w)))))) (ex3_4 F C C T (\lambda (f: F).(\lambda (e1: 
-C).(\lambda (_: C).(\lambda (u: T).(eq C (CHead c3 k0 u1) (CHead e1 (Flat f) 
-u)))))) (\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: 
-T).(drop (s k0 i) (s k0 i) (CHead c4 k0 u2) (CHead e2 (Flat f) u)))))) 
-(\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 (s 
-k0 i) v0 e1 e2)))))) (ex4_5 F C C T T (\lambda (f: F).(\lambda (e1: 
-C).(\lambda (_: C).(\lambda (u: T).(\lambda (_: T).(eq C (CHead c3 k0 u1) 
-(CHead e1 (Flat f) u))))))) (\lambda (f: F).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (_: T).(\lambda (w: T).(drop (s k0 i) (s k0 i) (CHead c4 k0 u2) 
-(CHead e2 (Flat f) w))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: 
-C).(\lambda (u: T).(\lambda (w: T).(subst0 (s k0 i) v0 u w)))))) (\lambda (_: 
-F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 
-(s k0 i) v0 e1 e2))))))))))))))))))) (\lambda (b: B).(\lambda (i: 
-nat).(\lambda (v0: T).(\lambda (u1: T).(\lambda (u2: T).(\lambda (_: (subst0 
-i v0 u1 u2)).(\lambda (c3: C).(\lambda (c4: C).(\lambda (_: (csubst0 i v0 c3 
+T).(drop (s k0 i) (s k0 i) (CHead c4 k0 u2) (CHead e2 (Flat f) w))))))) 
+(\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: 
+T).(subst0 (s k0 i) v0 u w)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda 
+(e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 (s k0 i) v0 e1 
+e2))))))))))))))))))) (\lambda (b: B).(\lambda (i: nat).(\lambda (v0: 
+T).(\lambda (u1: T).(\lambda (u2: T).(\lambda (_: (subst0 i v0 u1 
+u2)).(\lambda (c3: C).(\lambda (c4: C).(\lambda (_: (csubst0 i v0 c3 
 c4)).(\lambda (_: (((eq nat i O) \to (or4 (drop i i c4 c3) (ex3_4 F C T T 
 (\lambda (f: F).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: T).(eq C c3 
 (CHead e0 (Flat f) u)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (_: 
@@ -2679,65 +2668,64 @@ T).(drop i i c4 (CHead e2 (Flat f) w))))))) (\lambda (_: F).(\lambda (_:
 C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 i v0 u w)))))) 
 (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
 (_: T).(csubst0 i v0 e1 e2))))))))))).(\lambda (H5: (eq nat (S i) O)).(let H6 
-\def (eq_ind nat (S i) (\lambda (ee: nat).(match ee in nat return (\lambda 
-(_: nat).Prop) with [O \Rightarrow False | (S _) \Rightarrow True])) I O H5) 
-in (False_ind (or4 (drop (S i) (S i) (CHead c4 (Bind b) u2) (CHead c3 (Bind 
-b) u1)) (ex3_4 F C T T (\lambda (f: F).(\lambda (e0: C).(\lambda (u: 
-T).(\lambda (_: T).(eq C (CHead c3 (Bind b) u1) (CHead e0 (Flat f) u)))))) 
-(\lambda (f: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: T).(drop (S i) 
-(S i) (CHead c4 (Bind b) u2) (CHead e0 (Flat f) w)))))) (\lambda (_: 
-F).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 (S i) v0 u w)))))) 
-(ex3_4 F C C T (\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: 
-T).(eq C (CHead c3 (Bind b) u1) (CHead e1 (Flat f) u)))))) (\lambda (f: 
-F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(drop (S i) (S i) (CHead 
-c4 (Bind b) u2) (CHead e2 (Flat f) u)))))) (\lambda (_: F).(\lambda (e1: 
-C).(\lambda (e2: C).(\lambda (_: T).(csubst0 (S i) v0 e1 e2)))))) (ex4_5 F C 
-C T T (\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: 
-T).(\lambda (_: T).(eq C (CHead c3 (Bind b) u1) (CHead e1 (Flat f) u))))))) 
-(\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (w: 
-T).(drop (S i) (S i) (CHead c4 (Bind b) u2) (CHead e2 (Flat f) w))))))) 
-(\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: 
-T).(subst0 (S i) v0 u w)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: 
-C).(\lambda (_: T).(\lambda (_: T).(csubst0 (S i) v0 e1 e2)))))))) 
-H6))))))))))))) (\lambda (f: F).(\lambda (i: nat).(\lambda (v0: T).(\lambda 
-(u1: T).(\lambda (u2: T).(\lambda (H2: (subst0 i v0 u1 u2)).(\lambda (c3: 
-C).(\lambda (c4: C).(\lambda (H3: (csubst0 i v0 c3 c4)).(\lambda (H4: (((eq 
-nat i O) \to (or4 (drop i i c4 c3) (ex3_4 F C T T (\lambda (f0: F).(\lambda 
-(e0: C).(\lambda (u: T).(\lambda (_: T).(eq C c3 (CHead e0 (Flat f0) u)))))) 
-(\lambda (f0: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: T).(drop i i 
-c4 (CHead e0 (Flat f0) w)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u: 
-T).(\lambda (w: T).(subst0 i v0 u w)))))) (ex3_4 F C C T (\lambda (f0: 
-F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(eq C c3 (CHead e1 (Flat 
-f0) u)))))) (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: 
-T).(drop i i c4 (CHead e2 (Flat f0) u)))))) (\lambda (_: F).(\lambda (e1: 
-C).(\lambda (e2: C).(\lambda (_: T).(csubst0 i v0 e1 e2)))))) (ex4_5 F C C T 
-T (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(\lambda 
-(_: T).(eq C c3 (CHead e1 (Flat f0) u))))))) (\lambda (f0: F).(\lambda (_: 
-C).(\lambda (e2: C).(\lambda (_: T).(\lambda (w: T).(drop i i c4 (CHead e2 
-(Flat f0) w))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda 
-(u: T).(\lambda (w: T).(subst0 i v0 u w)))))) (\lambda (_: F).(\lambda (e1: 
-C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 i v0 e1 
-e2))))))))))).(\lambda (H5: (eq nat i O)).(let H6 \def (eq_ind nat i (\lambda 
-(n0: nat).((eq nat n0 O) \to (or4 (drop n0 n0 c4 c3) (ex3_4 F C T T (\lambda 
-(f0: F).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: T).(eq C c3 (CHead e0 
-(Flat f0) u)))))) (\lambda (f0: F).(\lambda (e0: C).(\lambda (_: T).(\lambda 
-(w: T).(drop n0 n0 c4 (CHead e0 (Flat f0) w)))))) (\lambda (_: F).(\lambda 
-(_: C).(\lambda (u: T).(\lambda (w: T).(subst0 n0 v0 u w)))))) (ex3_4 F C C T 
-(\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(eq C c3 
-(CHead e1 (Flat f0) u)))))) (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (u: T).(drop n0 n0 c4 (CHead e2 (Flat f0) u)))))) (\lambda (_: 
-F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 n0 v0 e1 
-e2)))))) (ex4_5 F C C T T (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: 
-C).(\lambda (u: T).(\lambda (_: T).(eq C c3 (CHead e1 (Flat f0) u))))))) 
+\def (eq_ind nat (S i) (\lambda (ee: nat).(match ee with [O \Rightarrow False 
+| (S _) \Rightarrow True])) I O H5) in (False_ind (or4 (drop (S i) (S i) 
+(CHead c4 (Bind b) u2) (CHead c3 (Bind b) u1)) (ex3_4 F C T T (\lambda (f: 
+F).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: T).(eq C (CHead c3 (Bind b) 
+u1) (CHead e0 (Flat f) u)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (_: 
+T).(\lambda (w: T).(drop (S i) (S i) (CHead c4 (Bind b) u2) (CHead e0 (Flat 
+f) w)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u: T).(\lambda (w: 
+T).(subst0 (S i) v0 u w)))))) (ex3_4 F C C T (\lambda (f: F).(\lambda (e1: 
+C).(\lambda (_: C).(\lambda (u: T).(eq C (CHead c3 (Bind b) u1) (CHead e1 
+(Flat f) u)))))) (\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda 
+(u: T).(drop (S i) (S i) (CHead c4 (Bind b) u2) (CHead e2 (Flat f) u)))))) 
+(\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 (S 
+i) v0 e1 e2)))))) (ex4_5 F C C T T (\lambda (f: F).(\lambda (e1: C).(\lambda 
+(_: C).(\lambda (u: T).(\lambda (_: T).(eq C (CHead c3 (Bind b) u1) (CHead e1 
+(Flat f) u))))))) (\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda 
+(_: T).(\lambda (w: T).(drop (S i) (S i) (CHead c4 (Bind b) u2) (CHead e2 
+(Flat f) w))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda 
+(u: T).(\lambda (w: T).(subst0 (S i) v0 u w)))))) (\lambda (_: F).(\lambda 
+(e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 (S i) v0 e1 
+e2)))))))) H6))))))))))))) (\lambda (f: F).(\lambda (i: nat).(\lambda (v0: 
+T).(\lambda (u1: T).(\lambda (u2: T).(\lambda (H2: (subst0 i v0 u1 
+u2)).(\lambda (c3: C).(\lambda (c4: C).(\lambda (H3: (csubst0 i v0 c3 
+c4)).(\lambda (H4: (((eq nat i O) \to (or4 (drop i i c4 c3) (ex3_4 F C T T 
+(\lambda (f0: F).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: T).(eq C c3 
+(CHead e0 (Flat f0) u)))))) (\lambda (f0: F).(\lambda (e0: C).(\lambda (_: 
+T).(\lambda (w: T).(drop i i c4 (CHead e0 (Flat f0) w)))))) (\lambda (_: 
+F).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 i v0 u w)))))) 
+(ex3_4 F C C T (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: 
+T).(eq C c3 (CHead e1 (Flat f0) u)))))) (\lambda (f0: F).(\lambda (_: 
+C).(\lambda (e2: C).(\lambda (u: T).(drop i i c4 (CHead e2 (Flat f0) u)))))) 
+(\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 i 
+v0 e1 e2)))))) (ex4_5 F C C T T (\lambda (f0: F).(\lambda (e1: C).(\lambda 
+(_: C).(\lambda (u: T).(\lambda (_: T).(eq C c3 (CHead e1 (Flat f0) u))))))) 
 (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
-(w: T).(drop n0 n0 c4 (CHead e2 (Flat f0) w))))))) (\lambda (_: F).(\lambda 
-(_: C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 n0 v0 u 
-w)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: 
-T).(\lambda (_: T).(csubst0 n0 v0 e1 e2)))))))))) H4 O H5) in (let H7 \def 
-(eq_ind nat i (\lambda (n0: nat).(csubst0 n0 v0 c3 c4)) H3 O H5) in (let H8 
-\def (eq_ind nat i (\lambda (n0: nat).(subst0 n0 v0 u1 u2)) H2 O H5) in 
-(eq_ind_r nat O (\lambda (n0: nat).(or4 (drop n0 n0 (CHead c4 (Flat f) u2) 
-(CHead c3 (Flat f) u1)) (ex3_4 F C T T (\lambda (f0: F).(\lambda (e0: 
+(w: T).(drop i i c4 (CHead e2 (Flat f0) w))))))) (\lambda (_: F).(\lambda (_: 
+C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 i v0 u w)))))) 
+(\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
+(_: T).(csubst0 i v0 e1 e2))))))))))).(\lambda (H5: (eq nat i O)).(let H6 
+\def (eq_ind nat i (\lambda (n0: nat).((eq nat n0 O) \to (or4 (drop n0 n0 c4 
+c3) (ex3_4 F C T T (\lambda (f0: F).(\lambda (e0: C).(\lambda (u: T).(\lambda 
+(_: T).(eq C c3 (CHead e0 (Flat f0) u)))))) (\lambda (f0: F).(\lambda (e0: 
+C).(\lambda (_: T).(\lambda (w: T).(drop n0 n0 c4 (CHead e0 (Flat f0) w)))))) 
+(\lambda (_: F).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 n0 v0 
+u w)))))) (ex3_4 F C C T (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: 
+C).(\lambda (u: T).(eq C c3 (CHead e1 (Flat f0) u)))))) (\lambda (f0: 
+F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(drop n0 n0 c4 (CHead e2 
+(Flat f0) u)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda 
+(_: T).(csubst0 n0 v0 e1 e2)))))) (ex4_5 F C C T T (\lambda (f0: F).(\lambda 
+(e1: C).(\lambda (_: C).(\lambda (u: T).(\lambda (_: T).(eq C c3 (CHead e1 
+(Flat f0) u))))))) (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: C).(\lambda 
+(_: T).(\lambda (w: T).(drop n0 n0 c4 (CHead e2 (Flat f0) w))))))) (\lambda 
+(_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: 
+T).(subst0 n0 v0 u w)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: 
+C).(\lambda (_: T).(\lambda (_: T).(csubst0 n0 v0 e1 e2)))))))))) H4 O H5) in 
+(let H7 \def (eq_ind nat i (\lambda (n0: nat).(csubst0 n0 v0 c3 c4)) H3 O H5) 
+in (let H8 \def (eq_ind nat i (\lambda (n0: nat).(subst0 n0 v0 u1 u2)) H2 O 
+H5) in (eq_ind_r nat O (\lambda (n0: nat).(or4 (drop n0 n0 (CHead c4 (Flat f) 
+u2) (CHead c3 (Flat f) u1)) (ex3_4 F C T T (\lambda (f0: F).(\lambda (e0: 
 C).(\lambda (u: T).(\lambda (_: T).(eq C (CHead c3 (Flat f) u1) (CHead e0 
 (Flat f0) u)))))) (\lambda (f0: F).(\lambda (e0: C).(\lambda (_: T).(\lambda 
 (w: T).(drop n0 n0 (CHead c4 (Flat f) u2) (CHead e0 (Flat f0) w)))))) 
@@ -2850,56 +2838,28 @@ C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) O c2 (CHead e2 (Flat f)
 w))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u: 
 T).(\lambda (w: T).(subst0 O v u w)))))) (\lambda (_: F).(\lambda (e1: 
 C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 
-e2))))))))) (let H4 \def (eq_ind nat (S n0) (\lambda (ee: nat).(match ee in 
-nat return (\lambda (_: nat).Prop) with [O \Rightarrow False | (S _) 
-\Rightarrow True])) I O H2) in (False_ind (or4 (drop (S n0) O c2 (CSort n1)) 
-(ex3_4 F C T T (\lambda (f: F).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: 
-T).(eq C (CSort n1) (CHead e0 (Flat f) u)))))) (\lambda (f: F).(\lambda (e0: 
-C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) O c2 (CHead e0 (Flat f) 
-w)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u: T).(\lambda (w: 
-T).(subst0 O v u w)))))) (ex3_4 F C C T (\lambda (f: F).(\lambda (e1: 
-C).(\lambda (_: C).(\lambda (u: T).(eq C (CSort n1) (CHead e1 (Flat f) 
-u)))))) (\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: 
-T).(drop (S n0) O c2 (CHead e2 (Flat f) u)))))) (\lambda (_: F).(\lambda (e1: 
-C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2)))))) (ex4_5 F C C T T 
-(\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(\lambda (_: 
-T).(eq C (CSort n1) (CHead e1 (Flat f) u))))))) (\lambda (f: F).(\lambda (_: 
-C).(\lambda (e2: C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) O c2 (CHead 
-e2 (Flat f) w))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda 
-(u: T).(\lambda (w: T).(subst0 O v u w)))))) (\lambda (_: F).(\lambda (e1: 
-C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 
-e2)))))))) H4)) e H1)))) (drop_gen_sort n1 (S n0) O e H0)))))))) (\lambda (c: 
-C).(\lambda (H: ((\forall (c2: C).(\forall (v: T).((csubst0 (S n0) v c c2) 
-\to (\forall (e: C).((drop (S n0) O c e) \to (or4 (drop (S n0) O c2 e) (ex3_4 
-F C T T (\lambda (f: F).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: T).(eq 
-C e (CHead e0 (Flat f) u)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (_: 
-T).(\lambda (w: T).(drop (S n0) O c2 (CHead e0 (Flat f) w)))))) (\lambda (_: 
-F).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 O v u w)))))) 
-(ex3_4 F C C T (\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: 
-T).(eq C e (CHead e1 (Flat f) u)))))) (\lambda (f: F).(\lambda (_: 
-C).(\lambda (e2: C).(\lambda (u: T).(drop (S n0) O c2 (CHead e2 (Flat f) 
-u)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: 
-T).(csubst0 O v e1 e2)))))) (ex4_5 F C C T T (\lambda (f: F).(\lambda (e1: 
-C).(\lambda (_: C).(\lambda (u: T).(\lambda (_: T).(eq C e (CHead e1 (Flat f) 
-u))))))) (\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: 
-T).(\lambda (w: T).(drop (S n0) O c2 (CHead e2 (Flat f) w))))))) (\lambda (_: 
-F).(\lambda (_: C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 O 
-v u w)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: 
-T).(\lambda (_: T).(csubst0 O v e1 e2))))))))))))))).(\lambda (k: K).(\lambda 
-(t: T).(\lambda (c2: C).(\lambda (v: T).(\lambda (H0: (csubst0 (S n0) v 
-(CHead c k t) c2)).(\lambda (e: C).(\lambda (H1: (drop (S n0) O (CHead c k t) 
-e)).(or3_ind (ex3_2 T nat (\lambda (_: T).(\lambda (j: nat).(eq nat (S n0) (s 
-k j)))) (\lambda (u2: T).(\lambda (_: nat).(eq C c2 (CHead c k u2)))) 
-(\lambda (u2: T).(\lambda (j: nat).(subst0 j v t u2)))) (ex3_2 C nat (\lambda 
-(_: C).(\lambda (j: nat).(eq nat (S n0) (s k j)))) (\lambda (c3: C).(\lambda 
-(_: nat).(eq C c2 (CHead c3 k t)))) (\lambda (c3: C).(\lambda (j: 
-nat).(csubst0 j v c c3)))) (ex4_3 T C nat (\lambda (_: T).(\lambda (_: 
-C).(\lambda (j: nat).(eq nat (S n0) (s k j))))) (\lambda (u2: T).(\lambda 
-(c3: C).(\lambda (_: nat).(eq C c2 (CHead c3 k u2))))) (\lambda (u2: 
-T).(\lambda (_: C).(\lambda (j: nat).(subst0 j v t u2)))) (\lambda (_: 
-T).(\lambda (c3: C).(\lambda (j: nat).(csubst0 j v c c3))))) (or4 (drop (S 
-n0) O c2 e) (ex3_4 F C T T (\lambda (f: F).(\lambda (e0: C).(\lambda (u: 
-T).(\lambda (_: T).(eq C e (CHead e0 (Flat f) u)))))) (\lambda (f: 
+e2))))))))) (let H4 \def (eq_ind nat (S n0) (\lambda (ee: nat).(match ee with 
+[O \Rightarrow False | (S _) \Rightarrow True])) I O H2) in (False_ind (or4 
+(drop (S n0) O c2 (CSort n1)) (ex3_4 F C T T (\lambda (f: F).(\lambda (e0: 
+C).(\lambda (u: T).(\lambda (_: T).(eq C (CSort n1) (CHead e0 (Flat f) 
+u)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: 
+T).(drop (S n0) O c2 (CHead e0 (Flat f) w)))))) (\lambda (_: F).(\lambda (_: 
+C).(\lambda (u: T).(\lambda (w: T).(subst0 O v u w)))))) (ex3_4 F C C T 
+(\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(eq C (CSort 
+n1) (CHead e1 (Flat f) u)))))) (\lambda (f: F).(\lambda (_: C).(\lambda (e2: 
+C).(\lambda (u: T).(drop (S n0) O c2 (CHead e2 (Flat f) u)))))) (\lambda (_: 
+F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2)))))) 
+(ex4_5 F C C T T (\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda 
+(u: T).(\lambda (_: T).(eq C (CSort n1) (CHead e1 (Flat f) u))))))) (\lambda 
+(f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (w: T).(drop 
+(S n0) O c2 (CHead e2 (Flat f) w))))))) (\lambda (_: F).(\lambda (_: 
+C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 O v u w)))))) 
+(\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
+(_: T).(csubst0 O v e1 e2)))))))) H4)) e H1)))) (drop_gen_sort n1 (S n0) O e 
+H0)))))))) (\lambda (c: C).(\lambda (H: ((\forall (c2: C).(\forall (v: 
+T).((csubst0 (S n0) v c c2) \to (\forall (e: C).((drop (S n0) O c e) \to (or4 
+(drop (S n0) O c2 e) (ex3_4 F C T T (\lambda (f: F).(\lambda (e0: C).(\lambda 
+(u: T).(\lambda (_: T).(eq C e (CHead e0 (Flat f) u)))))) (\lambda (f: 
 F).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) O c2 (CHead 
 e0 (Flat f) w)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u: T).(\lambda 
 (w: T).(subst0 O v u w)))))) (ex3_4 F C C T (\lambda (f: F).(\lambda (e1: 
@@ -2913,19 +2873,47 @@ C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) O c2 (CHead e2 (Flat f)
 w))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u: 
 T).(\lambda (w: T).(subst0 O v u w)))))) (\lambda (_: F).(\lambda (e1: 
 C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 
-e2)))))))) (\lambda (H2: (ex3_2 T nat (\lambda (_: T).(\lambda (j: nat).(eq 
-nat (S n0) (s k j)))) (\lambda (u2: T).(\lambda (_: nat).(eq C c2 (CHead c k 
-u2)))) (\lambda (u2: T).(\lambda (j: nat).(subst0 j v t u2))))).(ex3_2_ind T 
-nat (\lambda (_: T).(\lambda (j: nat).(eq nat (S n0) (s k j)))) (\lambda (u2: 
-T).(\lambda (_: nat).(eq C c2 (CHead c k u2)))) (\lambda (u2: T).(\lambda (j: 
-nat).(subst0 j v t u2))) (or4 (drop (S n0) O c2 e) (ex3_4 F C T T (\lambda 
-(f: F).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: T).(eq C e (CHead e0 
-(Flat f) u)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (_: T).(\lambda 
-(w: T).(drop (S n0) O c2 (CHead e0 (Flat f) w)))))) (\lambda (_: F).(\lambda 
-(_: C).(\lambda (u: T).(\lambda (w: T).(subst0 O v u w)))))) (ex3_4 F C C T 
-(\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(eq C e 
-(CHead e1 (Flat f) u)))))) (\lambda (f: F).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (u: T).(drop (S n0) O c2 (CHead e2 (Flat f) u)))))) (\lambda (_: 
+e2))))))))))))))).(\lambda (k: K).(\lambda (t: T).(\lambda (c2: C).(\lambda 
+(v: T).(\lambda (H0: (csubst0 (S n0) v (CHead c k t) c2)).(\lambda (e: 
+C).(\lambda (H1: (drop (S n0) O (CHead c k t) e)).(let H2 \def 
+(csubst0_gen_head k c c2 t v (S n0) H0) in (or3_ind (ex3_2 T nat (\lambda (_: 
+T).(\lambda (j: nat).(eq nat (S n0) (s k j)))) (\lambda (u2: T).(\lambda (_: 
+nat).(eq C c2 (CHead c k u2)))) (\lambda (u2: T).(\lambda (j: nat).(subst0 j 
+v t u2)))) (ex3_2 C nat (\lambda (_: C).(\lambda (j: nat).(eq nat (S n0) (s k 
+j)))) (\lambda (c3: C).(\lambda (_: nat).(eq C c2 (CHead c3 k t)))) (\lambda 
+(c3: C).(\lambda (j: nat).(csubst0 j v c c3)))) (ex4_3 T C nat (\lambda (_: 
+T).(\lambda (_: C).(\lambda (j: nat).(eq nat (S n0) (s k j))))) (\lambda (u2: 
+T).(\lambda (c3: C).(\lambda (_: nat).(eq C c2 (CHead c3 k u2))))) (\lambda 
+(u2: T).(\lambda (_: C).(\lambda (j: nat).(subst0 j v t u2)))) (\lambda (_: 
+T).(\lambda (c3: C).(\lambda (j: nat).(csubst0 j v c c3))))) (or4 (drop (S 
+n0) O c2 e) (ex3_4 F C T T (\lambda (f: F).(\lambda (e0: C).(\lambda (u: 
+T).(\lambda (_: T).(eq C e (CHead e0 (Flat f) u)))))) (\lambda (f: 
+F).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) O c2 (CHead 
+e0 (Flat f) w)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u: T).(\lambda 
+(w: T).(subst0 O v u w)))))) (ex3_4 F C C T (\lambda (f: F).(\lambda (e1: 
+C).(\lambda (_: C).(\lambda (u: T).(eq C e (CHead e1 (Flat f) u)))))) 
+(\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(drop (S n0) 
+O c2 (CHead e2 (Flat f) u)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda 
+(e2: C).(\lambda (_: T).(csubst0 O v e1 e2)))))) (ex4_5 F C C T T (\lambda 
+(f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(\lambda (_: T).(eq C 
+e (CHead e1 (Flat f) u))))))) (\lambda (f: F).(\lambda (_: C).(\lambda (e2: 
+C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) O c2 (CHead e2 (Flat f) 
+w))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u: 
+T).(\lambda (w: T).(subst0 O v u w)))))) (\lambda (_: F).(\lambda (e1: 
+C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 
+e2)))))))) (\lambda (H3: (ex3_2 T nat (\lambda (_: T).(\lambda (j: nat).(eq 
+nat (S n0) (s k j)))) (\lambda (u2: T).(\lambda (_: nat).(eq C c2 (CHead c k 
+u2)))) (\lambda (u2: T).(\lambda (j: nat).(subst0 j v t u2))))).(ex3_2_ind T 
+nat (\lambda (_: T).(\lambda (j: nat).(eq nat (S n0) (s k j)))) (\lambda (u2: 
+T).(\lambda (_: nat).(eq C c2 (CHead c k u2)))) (\lambda (u2: T).(\lambda (j: 
+nat).(subst0 j v t u2))) (or4 (drop (S n0) O c2 e) (ex3_4 F C T T (\lambda 
+(f: F).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: T).(eq C e (CHead e0 
+(Flat f) u)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (_: T).(\lambda 
+(w: T).(drop (S n0) O c2 (CHead e0 (Flat f) w)))))) (\lambda (_: F).(\lambda 
+(_: C).(\lambda (u: T).(\lambda (w: T).(subst0 O v u w)))))) (ex3_4 F C C T 
+(\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(eq C e 
+(CHead e1 (Flat f) u)))))) (\lambda (f: F).(\lambda (_: C).(\lambda (e2: 
+C).(\lambda (u: T).(drop (S n0) O c2 (CHead e2 (Flat f) u)))))) (\lambda (_: 
 F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2)))))) 
 (ex4_5 F C C T T (\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda 
 (u: T).(\lambda (_: T).(eq C e (CHead e1 (Flat f) u))))))) (\lambda (f: 
@@ -2933,8 +2921,8 @@ F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (w: T).(drop (S
 n0) O c2 (CHead e2 (Flat f) w))))))) (\lambda (_: F).(\lambda (_: C).(\lambda 
 (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 O v u w)))))) (\lambda (_: 
 F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 
-O v e1 e2)))))))) (\lambda (x0: T).(\lambda (x1: nat).(\lambda (H3: (eq nat 
-(S n0) (s k x1))).(\lambda (H4: (eq C c2 (CHead c k x0))).(\lambda (H5
+O v e1 e2)))))))) (\lambda (x0: T).(\lambda (x1: nat).(\lambda (H4: (eq nat 
+(S n0) (s k x1))).(\lambda (H5: (eq C c2 (CHead c k x0))).(\lambda (H6
 (subst0 x1 v t x0)).(eq_ind_r C (CHead c k x0) (\lambda (c0: C).(or4 (drop (S 
 n0) O c0 e) (ex3_4 F C T T (\lambda (f: F).(\lambda (e0: C).(\lambda (u: 
 T).(\lambda (_: T).(eq C e (CHead e0 (Flat f) u)))))) (\lambda (f: 
@@ -2968,72 +2956,71 @@ C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) O (CHead c k0 x0) (CHead e2
 (Flat f) w))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda 
 (u: T).(\lambda (w: T).(subst0 O v u w)))))) (\lambda (_: F).(\lambda (e1: 
 C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 
-e2))))))))))) (\lambda (b: B).(\lambda (H6: (drop (r (Bind b) n0) O c 
-e)).(\lambda (H7: (eq nat (S n0) (s (Bind b) x1))).(let H8 \def (f_equal nat 
-nat (\lambda (e0: nat).(match e0 in nat return (\lambda (_: nat).nat) with [O 
-\Rightarrow n0 | (S n1) \Rightarrow n1])) (S n0) (S x1) H7) in (let H9 \def 
-(eq_ind_r nat x1 (\lambda (n1: nat).(subst0 n1 v t x0)) H5 n0 H8) in 
-(or4_intro0 (drop (S n0) O (CHead c (Bind b) x0) e) (ex3_4 F C T T (\lambda 
-(f: F).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: T).(eq C e (CHead e0 
-(Flat f) u)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (_: T).(\lambda 
-(w: T).(drop (S n0) O (CHead c (Bind b) x0) (CHead e0 (Flat f) w)))))) 
-(\lambda (_: F).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 O v u 
-w)))))) (ex3_4 F C C T (\lambda (f: F).(\lambda (e1: C).(\lambda (_: 
-C).(\lambda (u: T).(eq C e (CHead e1 (Flat f) u)))))) (\lambda (f: 
-F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(drop (S n0) O (CHead c 
-(Bind b) x0) (CHead e2 (Flat f) u)))))) (\lambda (_: F).(\lambda (e1: 
-C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2)))))) (ex4_5 F C C T T 
-(\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(\lambda (_: 
-T).(eq C e (CHead e1 (Flat f) u))))))) (\lambda (f: F).(\lambda (_: 
-C).(\lambda (e2: C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) O (CHead c 
-(Bind b) x0) (CHead e2 (Flat f) w))))))) (\lambda (_: F).(\lambda (_: 
-C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 O v u w)))))) 
-(\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
-(_: T).(csubst0 O v e1 e2))))))) (drop_drop (Bind b) n0 c e H6 x0))))))) 
-(\lambda (f: F).(\lambda (H6: (drop (r (Flat f) n0) O c e)).(\lambda (H7: (eq 
-nat (S n0) (s (Flat f) x1))).(let H8 \def (f_equal nat nat (\lambda (e0: 
-nat).e0) (S n0) (s (Flat f) x1) H7) in (let H9 \def (eq_ind_r nat x1 (\lambda 
-(n1: nat).(subst0 n1 v t x0)) H5 (S n0) H8) in (or4_intro0 (drop (S n0) O 
-(CHead c (Flat f) x0) e) (ex3_4 F C T T (\lambda (f0: F).(\lambda (e0: 
-C).(\lambda (u: T).(\lambda (_: T).(eq C e (CHead e0 (Flat f0) u)))))) 
-(\lambda (f0: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: T).(drop (S 
-n0) O (CHead c (Flat f) x0) (CHead e0 (Flat f0) w)))))) (\lambda (_: 
-F).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 O v u w)))))) 
-(ex3_4 F C C T (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: 
-T).(eq C e (CHead e1 (Flat f0) u)))))) (\lambda (f0: F).(\lambda (_: 
-C).(\lambda (e2: C).(\lambda (u: T).(drop (S n0) O (CHead c (Flat f) x0) 
-(CHead e2 (Flat f0) u)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: 
-C).(\lambda (_: T).(csubst0 O v e1 e2)))))) (ex4_5 F C C T T (\lambda (f0: 
-F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(\lambda (_: T).(eq C e 
-(CHead e1 (Flat f0) u))))))) (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) O (CHead c (Flat f) x0) 
-(CHead e2 (Flat f0) w))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: 
-C).(\lambda (u: T).(\lambda (w: T).(subst0 O v u w)))))) (\lambda (_: 
-F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 
-O v e1 e2))))))) (drop_drop (Flat f) n0 c e H6 x0))))))) k (drop_gen_drop k c 
-e t n0 H1) H3) c2 H4)))))) H2)) (\lambda (H2: (ex3_2 C nat (\lambda (_: 
-C).(\lambda (j: nat).(eq nat (S n0) (s k j)))) (\lambda (c3: C).(\lambda (_: 
-nat).(eq C c2 (CHead c3 k t)))) (\lambda (c3: C).(\lambda (j: nat).(csubst0 j 
-v c c3))))).(ex3_2_ind C nat (\lambda (_: C).(\lambda (j: nat).(eq nat (S n0) 
-(s k j)))) (\lambda (c3: C).(\lambda (_: nat).(eq C c2 (CHead c3 k t)))) 
-(\lambda (c3: C).(\lambda (j: nat).(csubst0 j v c c3))) (or4 (drop (S n0) O 
-c2 e) (ex3_4 F C T T (\lambda (f: F).(\lambda (e0: C).(\lambda (u: 
+e2))))))))))) (\lambda (b: B).(\lambda (H7: (drop (r (Bind b) n0) O c 
+e)).(\lambda (H8: (eq nat (S n0) (s (Bind b) x1))).(let H9 \def (f_equal nat 
+nat (\lambda (e0: nat).(match e0 with [O \Rightarrow n0 | (S n1) \Rightarrow 
+n1])) (S n0) (S x1) H8) in (let H10 \def (eq_ind_r nat x1 (\lambda (n1: 
+nat).(subst0 n1 v t x0)) H6 n0 H9) in (or4_intro0 (drop (S n0) O (CHead c 
+(Bind b) x0) e) (ex3_4 F C T T (\lambda (f: F).(\lambda (e0: C).(\lambda (u: 
 T).(\lambda (_: T).(eq C e (CHead e0 (Flat f) u)))))) (\lambda (f: 
-F).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) O c2 (CHead 
-e0 (Flat f) w)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u: T).(\lambda 
-(w: T).(subst0 O v u w)))))) (ex3_4 F C C T (\lambda (f: F).(\lambda (e1: 
-C).(\lambda (_: C).(\lambda (u: T).(eq C e (CHead e1 (Flat f) u)))))) 
-(\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(drop (S n0) 
-O c2 (CHead e2 (Flat f) u)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda 
-(e2: C).(\lambda (_: T).(csubst0 O v e1 e2)))))) (ex4_5 F C C T T (\lambda 
-(f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(\lambda (_: T).(eq C 
-e (CHead e1 (Flat f) u))))))) (\lambda (f: F).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) O c2 (CHead e2 (Flat f) 
+F).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) O (CHead c 
+(Bind b) x0) (CHead e0 (Flat f) w)))))) (\lambda (_: F).(\lambda (_: 
+C).(\lambda (u: T).(\lambda (w: T).(subst0 O v u w)))))) (ex3_4 F C C T 
+(\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(eq C e 
+(CHead e1 (Flat f) u)))))) (\lambda (f: F).(\lambda (_: C).(\lambda (e2: 
+C).(\lambda (u: T).(drop (S n0) O (CHead c (Bind b) x0) (CHead e2 (Flat f) 
+u)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: 
+T).(csubst0 O v e1 e2)))))) (ex4_5 F C C T T (\lambda (f: F).(\lambda (e1: 
+C).(\lambda (_: C).(\lambda (u: T).(\lambda (_: T).(eq C e (CHead e1 (Flat f) 
+u))))))) (\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: 
+T).(\lambda (w: T).(drop (S n0) O (CHead c (Bind b) x0) (CHead e2 (Flat f) 
 w))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u: 
 T).(\lambda (w: T).(subst0 O v u w)))))) (\lambda (_: F).(\lambda (e1: 
+C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 e2))))))) 
+(drop_drop (Bind b) n0 c e H7 x0))))))) (\lambda (f: F).(\lambda (H7: (drop 
+(r (Flat f) n0) O c e)).(\lambda (H8: (eq nat (S n0) (s (Flat f) x1))).(let 
+H9 \def (f_equal nat nat (\lambda (e0: nat).e0) (S n0) (s (Flat f) x1) H8) in 
+(let H10 \def (eq_ind_r nat x1 (\lambda (n1: nat).(subst0 n1 v t x0)) H6 (S 
+n0) H9) in (or4_intro0 (drop (S n0) O (CHead c (Flat f) x0) e) (ex3_4 F C T T 
+(\lambda (f0: F).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: T).(eq C e 
+(CHead e0 (Flat f0) u)))))) (\lambda (f0: F).(\lambda (e0: C).(\lambda (_: 
+T).(\lambda (w: T).(drop (S n0) O (CHead c (Flat f) x0) (CHead e0 (Flat f0) 
+w)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u: T).(\lambda (w: 
+T).(subst0 O v u w)))))) (ex3_4 F C C T (\lambda (f0: F).(\lambda (e1: 
+C).(\lambda (_: C).(\lambda (u: T).(eq C e (CHead e1 (Flat f0) u)))))) 
+(\lambda (f0: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(drop (S 
+n0) O (CHead c (Flat f) x0) (CHead e2 (Flat f0) u)))))) (\lambda (_: 
+F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2)))))) 
+(ex4_5 F C C T T (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda 
+(u: T).(\lambda (_: T).(eq C e (CHead e1 (Flat f0) u))))))) (\lambda (f0: 
+F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (w: T).(drop (S 
+n0) O (CHead c (Flat f) x0) (CHead e2 (Flat f0) w))))))) (\lambda (_: 
+F).(\lambda (_: C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 O 
+v u w)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: 
+T).(\lambda (_: T).(csubst0 O v e1 e2))))))) (drop_drop (Flat f) n0 c e H7 
+x0))))))) k (drop_gen_drop k c e t n0 H1) H4) c2 H5)))))) H3)) (\lambda (H3: 
+(ex3_2 C nat (\lambda (_: C).(\lambda (j: nat).(eq nat (S n0) (s k j)))) 
+(\lambda (c3: C).(\lambda (_: nat).(eq C c2 (CHead c3 k t)))) (\lambda (c3: 
+C).(\lambda (j: nat).(csubst0 j v c c3))))).(ex3_2_ind C nat (\lambda (_: 
+C).(\lambda (j: nat).(eq nat (S n0) (s k j)))) (\lambda (c3: C).(\lambda (_: 
+nat).(eq C c2 (CHead c3 k t)))) (\lambda (c3: C).(\lambda (j: nat).(csubst0 j 
+v c c3))) (or4 (drop (S n0) O c2 e) (ex3_4 F C T T (\lambda (f: F).(\lambda 
+(e0: C).(\lambda (u: T).(\lambda (_: T).(eq C e (CHead e0 (Flat f) u)))))) 
+(\lambda (f: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) 
+O c2 (CHead e0 (Flat f) w)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u: 
+T).(\lambda (w: T).(subst0 O v u w)))))) (ex3_4 F C C T (\lambda (f: 
+F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(eq C e (CHead e1 (Flat 
+f) u)))))) (\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: 
+T).(drop (S n0) O c2 (CHead e2 (Flat f) u)))))) (\lambda (_: F).(\lambda (e1: 
+C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2)))))) (ex4_5 F C C T T 
+(\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(\lambda (_: 
+T).(eq C e (CHead e1 (Flat f) u))))))) (\lambda (f: F).(\lambda (_: 
+C).(\lambda (e2: C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) O c2 (CHead 
+e2 (Flat f) w))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda 
+(u: T).(\lambda (w: T).(subst0 O v u w)))))) (\lambda (_: F).(\lambda (e1: 
 C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 
-e2)))))))) (\lambda (x0: C).(\lambda (x1: nat).(\lambda (H3: (eq nat (S n0) 
-(s k x1))).(\lambda (H4: (eq C c2 (CHead x0 k t))).(\lambda (H5: (csubst0 x1 
+e2)))))))) (\lambda (x0: C).(\lambda (x1: nat).(\lambda (H4: (eq nat (S n0) 
+(s k x1))).(\lambda (H5: (eq C c2 (CHead x0 k t))).(\lambda (H6: (csubst0 x1 
 v c x0)).(eq_ind_r C (CHead x0 k t) (\lambda (c0: C).(or4 (drop (S n0) O c0 
 e) (ex3_4 F C T T (\lambda (f: F).(\lambda (e0: C).(\lambda (u: T).(\lambda 
 (_: T).(eq C e (CHead e0 (Flat f) u)))))) (\lambda (f: F).(\lambda (e0: 
@@ -3067,74 +3054,48 @@ C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) O (CHead x0 k0 t) (CHead e2
 (Flat f) w))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda 
 (u: T).(\lambda (w: T).(subst0 O v u w)))))) (\lambda (_: F).(\lambda (e1: 
 C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 
-e2))))))))))) (\lambda (b: B).(\lambda (H6: (drop (r (Bind b) n0) O c 
-e)).(\lambda (H7: (eq nat (S n0) (s (Bind b) x1))).(let H8 \def (f_equal nat 
-nat (\lambda (e0: nat).(match e0 in nat return (\lambda (_: nat).nat) with [O 
-\Rightarrow n0 | (S n1) \Rightarrow n1])) (S n0) (S x1) H7) in (let H9 \def 
-(eq_ind_r nat x1 (\lambda (n1: nat).(csubst0 n1 v c x0)) H5 n0 H8) in (let 
-H10 \def (IHn c x0 v H9 e H6) in (or4_ind (drop n0 O x0 e) (ex3_4 F C T T 
-(\lambda (f: F).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: T).(eq C e 
-(CHead e0 (Flat f) u)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (_: 
-T).(\lambda (w: T).(drop n0 O x0 (CHead e0 (Flat f) w)))))) (\lambda (_: 
-F).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 O v u w)))))) 
-(ex3_4 F C C T (\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: 
-T).(eq C e (CHead e1 (Flat f) u)))))) (\lambda (f: F).(\lambda (_: 
-C).(\lambda (e2: C).(\lambda (u: T).(drop n0 O x0 (CHead e2 (Flat f) u)))))) 
-(\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O 
-v e1 e2)))))) (ex4_5 F C C T T (\lambda (f: F).(\lambda (e1: C).(\lambda (_: 
-C).(\lambda (u: T).(\lambda (_: T).(eq C e (CHead e1 (Flat f) u))))))) 
-(\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (w: 
-T).(drop n0 O x0 (CHead e2 (Flat f) w))))))) (\lambda (_: F).(\lambda (_: 
-C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 O v u w)))))) 
-(\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
-(_: T).(csubst0 O v e1 e2))))))) (or4 (drop (S n0) O (CHead x0 (Bind b) t) e) 
-(ex3_4 F C T T (\lambda (f: F).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: 
-T).(eq C e (CHead e0 (Flat f) u)))))) (\lambda (f: F).(\lambda (e0: 
-C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) O (CHead x0 (Bind b) t) 
-(CHead e0 (Flat f) w)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u: 
+e2))))))))))) (\lambda (b: B).(\lambda (H7: (drop (r (Bind b) n0) O c 
+e)).(\lambda (H8: (eq nat (S n0) (s (Bind b) x1))).(let H9 \def (f_equal nat 
+nat (\lambda (e0: nat).(match e0 with [O \Rightarrow n0 | (S n1) \Rightarrow 
+n1])) (S n0) (S x1) H8) in (let H10 \def (eq_ind_r nat x1 (\lambda (n1: 
+nat).(csubst0 n1 v c x0)) H6 n0 H9) in (let H11 \def (IHn c x0 v H10 e H7) in 
+(or4_ind (drop n0 O x0 e) (ex3_4 F C T T (\lambda (f: F).(\lambda (e0: 
+C).(\lambda (u: T).(\lambda (_: T).(eq C e (CHead e0 (Flat f) u)))))) 
+(\lambda (f: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: T).(drop n0 O 
+x0 (CHead e0 (Flat f) w)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u: 
 T).(\lambda (w: T).(subst0 O v u w)))))) (ex3_4 F C C T (\lambda (f: 
 F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(eq C e (CHead e1 (Flat 
 f) u)))))) (\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: 
-T).(drop (S n0) O (CHead x0 (Bind b) t) (CHead e2 (Flat f) u)))))) (\lambda 
-(_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 
-e2)))))) (ex4_5 F C C T T (\lambda (f: F).(\lambda (e1: C).(\lambda (_: 
-C).(\lambda (u: T).(\lambda (_: T).(eq C e (CHead e1 (Flat f) u))))))) 
-(\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (w: 
-T).(drop (S n0) O (CHead x0 (Bind b) t) (CHead e2 (Flat f) w))))))) (\lambda 
-(_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: 
-T).(subst0 O v u w)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: 
-C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 e2)))))))) (\lambda (H11: 
-(drop n0 O x0 e)).(or4_intro0 (drop (S n0) O (CHead x0 (Bind b) t) e) (ex3_4 
-F C T T (\lambda (f: F).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: T).(eq 
-C e (CHead e0 (Flat f) u)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (_: 
-T).(\lambda (w: T).(drop (S n0) O (CHead x0 (Bind b) t) (CHead e0 (Flat f) 
-w)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u: T).(\lambda (w: 
-T).(subst0 O v u w)))))) (ex3_4 F C C T (\lambda (f: F).(\lambda (e1: 
-C).(\lambda (_: C).(\lambda (u: T).(eq C e (CHead e1 (Flat f) u)))))) 
-(\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(drop (S n0) 
-O (CHead x0 (Bind b) t) (CHead e2 (Flat f) u)))))) (\lambda (_: F).(\lambda 
-(e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2)))))) (ex4_5 F C 
-C T T (\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: 
-T).(\lambda (_: T).(eq C e (CHead e1 (Flat f) u))))))) (\lambda (f: 
-F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (w: T).(drop (S 
-n0) O (CHead x0 (Bind b) t) (CHead e2 (Flat f) w))))))) (\lambda (_: 
-F).(\lambda (_: C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 O 
-v u w)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: 
-T).(\lambda (_: T).(csubst0 O v e1 e2))))))) (drop_drop (Bind b) n0 x0 e H11 
-t))) (\lambda (H11: (ex3_4 F C T T (\lambda (f: F).(\lambda (e0: C).(\lambda 
-(u: T).(\lambda (_: T).(eq C e (CHead e0 (Flat f) u)))))) (\lambda (f: 
-F).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: T).(drop n0 O x0 (CHead e0 
-(Flat f) w)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u: T).(\lambda (w: 
-T).(subst0 O v u w))))))).(ex3_4_ind F C T T (\lambda (f: F).(\lambda (e0: 
+T).(drop n0 O x0 (CHead e2 (Flat f) u)))))) (\lambda (_: F).(\lambda (e1: 
+C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2)))))) (ex4_5 F C C T T 
+(\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(\lambda (_: 
+T).(eq C e (CHead e1 (Flat f) u))))))) (\lambda (f: F).(\lambda (_: 
+C).(\lambda (e2: C).(\lambda (_: T).(\lambda (w: T).(drop n0 O x0 (CHead e2 
+(Flat f) w))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda 
+(u: T).(\lambda (w: T).(subst0 O v u w)))))) (\lambda (_: F).(\lambda (e1: 
+C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 e2))))))) 
+(or4 (drop (S n0) O (CHead x0 (Bind b) t) e) (ex3_4 F C T T (\lambda (f: 
+F).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: T).(eq C e (CHead e0 (Flat 
+f) u)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: 
+T).(drop (S n0) O (CHead x0 (Bind b) t) (CHead e0 (Flat f) w)))))) (\lambda 
+(_: F).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 O v u w)))))) 
+(ex3_4 F C C T (\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: 
+T).(eq C e (CHead e1 (Flat f) u)))))) (\lambda (f: F).(\lambda (_: 
+C).(\lambda (e2: C).(\lambda (u: T).(drop (S n0) O (CHead x0 (Bind b) t) 
+(CHead e2 (Flat f) u)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: 
+C).(\lambda (_: T).(csubst0 O v e1 e2)))))) (ex4_5 F C C T T (\lambda (f: 
+F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(\lambda (_: T).(eq C e 
+(CHead e1 (Flat f) u))))))) (\lambda (f: F).(\lambda (_: C).(\lambda (e2: 
+C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) O (CHead x0 (Bind b) t) 
+(CHead e2 (Flat f) w))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: 
+C).(\lambda (u: T).(\lambda (w: T).(subst0 O v u w)))))) (\lambda (_: 
+F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 
+O v e1 e2)))))))) (\lambda (H12: (drop n0 O x0 e)).(or4_intro0 (drop (S n0) O 
+(CHead x0 (Bind b) t) e) (ex3_4 F C T T (\lambda (f: F).(\lambda (e0: 
 C).(\lambda (u: T).(\lambda (_: T).(eq C e (CHead e0 (Flat f) u)))))) 
-(\lambda (f: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: T).(drop n0 O 
-x0 (CHead e0 (Flat f) w)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u: 
-T).(\lambda (w: T).(subst0 O v u w))))) (or4 (drop (S n0) O (CHead x0 (Bind 
-b) t) e) (ex3_4 F C T T (\lambda (f: F).(\lambda (e0: C).(\lambda (u: 
-T).(\lambda (_: T).(eq C e (CHead e0 (Flat f) u)))))) (\lambda (f: 
-F).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) O (CHead x0 
-(Bind b) t) (CHead e0 (Flat f) w)))))) (\lambda (_: F).(\lambda (_: 
-C).(\lambda (u: T).(\lambda (w: T).(subst0 O v u w)))))) (ex3_4 F C C T 
+(\lambda (f: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) 
+O (CHead x0 (Bind b) t) (CHead e0 (Flat f) w)))))) (\lambda (_: F).(\lambda 
+(_: C).(\lambda (u: T).(\lambda (w: T).(subst0 O v u w)))))) (ex3_4 F C C T 
 (\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(eq C e 
 (CHead e1 (Flat f) u)))))) (\lambda (f: F).(\lambda (_: C).(\lambda (e2: 
 C).(\lambda (u: T).(drop (S n0) O (CHead x0 (Bind b) t) (CHead e2 (Flat f) 
@@ -3145,16 +3106,41 @@ u))))))) (\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_:
 T).(\lambda (w: T).(drop (S n0) O (CHead x0 (Bind b) t) (CHead e2 (Flat f) 
 w))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u: 
 T).(\lambda (w: T).(subst0 O v u w)))))) (\lambda (_: F).(\lambda (e1: 
-C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 
-e2)))))))) (\lambda (x2: F).(\lambda (x3: C).(\lambda (x4: T).(\lambda (x5: 
-T).(\lambda (H12: (eq C e (CHead x3 (Flat x2) x4))).(\lambda (H13: (drop n0 O 
-x0 (CHead x3 (Flat x2) x5))).(\lambda (H14: (subst0 O v x4 x5)).(eq_ind_r C 
-(CHead x3 (Flat x2) x4) (\lambda (c0: C).(or4 (drop (S n0) O (CHead x0 (Bind 
-b) t) c0) (ex3_4 F C T T (\lambda (f: F).(\lambda (e0: C).(\lambda (u: 
-T).(\lambda (_: T).(eq C c0 (CHead e0 (Flat f) u)))))) (\lambda (f: 
-F).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) O (CHead x0 
-(Bind b) t) (CHead e0 (Flat f) w)))))) (\lambda (_: F).(\lambda (_: 
-C).(\lambda (u: T).(\lambda (w: T).(subst0 O v u w)))))) (ex3_4 F C C T 
+C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 e2))))))) 
+(drop_drop (Bind b) n0 x0 e H12 t))) (\lambda (H12: (ex3_4 F C T T (\lambda 
+(f: F).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: T).(eq C e (CHead e0 
+(Flat f) u)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (_: T).(\lambda 
+(w: T).(drop n0 O x0 (CHead e0 (Flat f) w)))))) (\lambda (_: F).(\lambda (_: 
+C).(\lambda (u: T).(\lambda (w: T).(subst0 O v u w))))))).(ex3_4_ind F C T T 
+(\lambda (f: F).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: T).(eq C e 
+(CHead e0 (Flat f) u)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (_: 
+T).(\lambda (w: T).(drop n0 O x0 (CHead e0 (Flat f) w)))))) (\lambda (_: 
+F).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 O v u w))))) (or4 
+(drop (S n0) O (CHead x0 (Bind b) t) e) (ex3_4 F C T T (\lambda (f: 
+F).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: T).(eq C e (CHead e0 (Flat 
+f) u)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: 
+T).(drop (S n0) O (CHead x0 (Bind b) t) (CHead e0 (Flat f) w)))))) (\lambda 
+(_: F).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 O v u w)))))) 
+(ex3_4 F C C T (\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: 
+T).(eq C e (CHead e1 (Flat f) u)))))) (\lambda (f: F).(\lambda (_: 
+C).(\lambda (e2: C).(\lambda (u: T).(drop (S n0) O (CHead x0 (Bind b) t) 
+(CHead e2 (Flat f) u)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: 
+C).(\lambda (_: T).(csubst0 O v e1 e2)))))) (ex4_5 F C C T T (\lambda (f: 
+F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(\lambda (_: T).(eq C e 
+(CHead e1 (Flat f) u))))))) (\lambda (f: F).(\lambda (_: C).(\lambda (e2: 
+C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) O (CHead x0 (Bind b) t) 
+(CHead e2 (Flat f) w))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: 
+C).(\lambda (u: T).(\lambda (w: T).(subst0 O v u w)))))) (\lambda (_: 
+F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 
+O v e1 e2)))))))) (\lambda (x2: F).(\lambda (x3: C).(\lambda (x4: T).(\lambda 
+(x5: T).(\lambda (H13: (eq C e (CHead x3 (Flat x2) x4))).(\lambda (H14: (drop 
+n0 O x0 (CHead x3 (Flat x2) x5))).(\lambda (H15: (subst0 O v x4 
+x5)).(eq_ind_r C (CHead x3 (Flat x2) x4) (\lambda (c0: C).(or4 (drop (S n0) O 
+(CHead x0 (Bind b) t) c0) (ex3_4 F C T T (\lambda (f: F).(\lambda (e0: 
+C).(\lambda (u: T).(\lambda (_: T).(eq C c0 (CHead e0 (Flat f) u)))))) 
+(\lambda (f: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) 
+O (CHead x0 (Bind b) t) (CHead e0 (Flat f) w)))))) (\lambda (_: F).(\lambda 
+(_: C).(\lambda (u: T).(\lambda (w: T).(subst0 O v u w)))))) (ex3_4 F C C T 
 (\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(eq C c0 
 (CHead e1 (Flat f) u)))))) (\lambda (f: F).(\lambda (_: C).(\lambda (e2: 
 C).(\lambda (u: T).(drop (S n0) O (CHead x0 (Bind b) t) (CHead e2 (Flat f) 
@@ -3189,8 +3175,8 @@ x4) (CHead e0 (Flat f) u)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (_:
 T).(\lambda (w: T).(drop (S n0) O (CHead x0 (Bind b) t) (CHead e0 (Flat f) 
 w)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u: T).(\lambda (w: 
 T).(subst0 O v u w))))) x2 x3 x4 x5 (refl_equal C (CHead x3 (Flat x2) x4)) 
-(drop_drop (Bind b) n0 x0 (CHead x3 (Flat x2) x5) H13 t) H14)) e H12)))))))) 
-H11)) (\lambda (H11: (ex3_4 F C C T (\lambda (f: F).(\lambda (e1: C).(\lambda 
+(drop_drop (Bind b) n0 x0 (CHead x3 (Flat x2) x5) H14 t) H15)) e H13)))))))) 
+H12)) (\lambda (H12: (ex3_4 F C C T (\lambda (f: F).(\lambda (e1: C).(\lambda 
 (_: C).(\lambda (u: T).(eq C e (CHead e1 (Flat f) u)))))) (\lambda (f: 
 F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(drop n0 O x0 (CHead e2 
 (Flat f) u)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda 
@@ -3216,8 +3202,8 @@ w))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u:
 T).(\lambda (w: T).(subst0 O v u w)))))) (\lambda (_: F).(\lambda (e1: 
 C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 
 e2)))))))) (\lambda (x2: F).(\lambda (x3: C).(\lambda (x4: C).(\lambda (x5: 
-T).(\lambda (H12: (eq C e (CHead x3 (Flat x2) x5))).(\lambda (H13: (drop n0 O 
-x0 (CHead x4 (Flat x2) x5))).(\lambda (H14: (csubst0 O v x3 x4)).(eq_ind_r C 
+T).(\lambda (H13: (eq C e (CHead x3 (Flat x2) x5))).(\lambda (H14: (drop n0 O 
+x0 (CHead x4 (Flat x2) x5))).(\lambda (H15: (csubst0 O v x3 x4)).(eq_ind_r C 
 (CHead x3 (Flat x2) x5) (\lambda (c0: C).(or4 (drop (S n0) O (CHead x0 (Bind 
 b) t) c0) (ex3_4 F C T T (\lambda (f: F).(\lambda (e0: C).(\lambda (u: 
 T).(\lambda (_: T).(eq C c0 (CHead e0 (Flat f) u)))))) (\lambda (f: 
@@ -3258,8 +3244,8 @@ x5) (CHead e1 (Flat f) u)))))) (\lambda (f: F).(\lambda (_: C).(\lambda (e2:
 C).(\lambda (u: T).(drop (S n0) O (CHead x0 (Bind b) t) (CHead e2 (Flat f) 
 u)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: 
 T).(csubst0 O v e1 e2))))) x2 x3 x4 x5 (refl_equal C (CHead x3 (Flat x2) x5)) 
-(drop_drop (Bind b) n0 x0 (CHead x4 (Flat x2) x5) H13 t) H14)) e H12)))))))) 
-H11)) (\lambda (H11: (ex4_5 F C C T T (\lambda (f: F).(\lambda (e1: 
+(drop_drop (Bind b) n0 x0 (CHead x4 (Flat x2) x5) H14 t) H15)) e H13)))))))) 
+H12)) (\lambda (H12: (ex4_5 F C C T T (\lambda (f: F).(\lambda (e1: 
 C).(\lambda (_: C).(\lambda (u: T).(\lambda (_: T).(eq C e (CHead e1 (Flat f) 
 u))))))) (\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: 
 T).(\lambda (w: T).(drop n0 O x0 (CHead e2 (Flat f) w))))))) (\lambda (_: 
@@ -3289,9 +3275,9 @@ w))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u:
 T).(\lambda (w: T).(subst0 O v u w)))))) (\lambda (_: F).(\lambda (e1: 
 C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 
 e2)))))))) (\lambda (x2: F).(\lambda (x3: C).(\lambda (x4: C).(\lambda (x5: 
-T).(\lambda (x6: T).(\lambda (H12: (eq C e (CHead x3 (Flat x2) x5))).(\lambda 
-(H13: (drop n0 O x0 (CHead x4 (Flat x2) x6))).(\lambda (H14: (subst0 O v x5 
-x6)).(\lambda (H15: (csubst0 O v x3 x4)).(eq_ind_r C (CHead x3 (Flat x2) x5) 
+T).(\lambda (x6: T).(\lambda (H13: (eq C e (CHead x3 (Flat x2) x5))).(\lambda 
+(H14: (drop n0 O x0 (CHead x4 (Flat x2) x6))).(\lambda (H15: (subst0 O v x5 
+x6)).(\lambda (H16: (csubst0 O v x3 x4)).(eq_ind_r C (CHead x3 (Flat x2) x5) 
 (\lambda (c0: C).(or4 (drop (S n0) O (CHead x0 (Bind b) t) c0) (ex3_4 F C T T 
 (\lambda (f: F).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: T).(eq C c0 
 (CHead e0 (Flat f) u)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (_: 
@@ -3334,22 +3320,22 @@ f) w))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u:
 T).(\lambda (w: T).(subst0 O v u w)))))) (\lambda (_: F).(\lambda (e1: 
 C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 e2)))))) 
 x2 x3 x4 x5 x6 (refl_equal C (CHead x3 (Flat x2) x5)) (drop_drop (Bind b) n0 
-x0 (CHead x4 (Flat x2) x6) H13 t) H14 H15)) e H12)))))))))) H11)) H10))))))) 
-(\lambda (f: F).(\lambda (H6: (drop (r (Flat f) n0) O c e)).(\lambda (H7: (eq 
-nat (S n0) (s (Flat f) x1))).(let H8 \def (f_equal nat nat (\lambda (e0: 
-nat).e0) (S n0) (s (Flat f) x1) H7) in (let H9 \def (eq_ind_r nat x1 (\lambda 
-(n1: nat).(csubst0 n1 v c x0)) H5 (S n0) H8) in (let H10 \def (H x0 v H9 e 
-H6) in (or4_ind (drop (S n0) O x0 e) (ex3_4 F C T T (\lambda (f0: F).(\lambda 
-(e0: C).(\lambda (u: T).(\lambda (_: T).(eq C e (CHead e0 (Flat f0) u)))))) 
-(\lambda (f0: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: T).(drop (S 
-n0) O x0 (CHead e0 (Flat f0) w)))))) (\lambda (_: F).(\lambda (_: C).(\lambda 
-(u: T).(\lambda (w: T).(subst0 O v u w)))))) (ex3_4 F C C T (\lambda (f0: 
-F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(eq C e (CHead e1 (Flat 
-f0) u)))))) (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u
-T).(drop (S n0) O x0 (CHead e2 (Flat f0) u)))))) (\lambda (_: F).(\lambda 
-(e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2)))))) (ex4_5 F C 
-C T T (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: 
-T).(\lambda (_: T).(eq C e (CHead e1 (Flat f0) u))))))) (\lambda (f0: 
+x0 (CHead x4 (Flat x2) x6) H14 t) H15 H16)) e H13)))))))))) H12)) H11))))))) 
+(\lambda (f: F).(\lambda (H7: (drop (r (Flat f) n0) O c e)).(\lambda (H8: (eq 
+nat (S n0) (s (Flat f) x1))).(let H9 \def (f_equal nat nat (\lambda (e0: 
+nat).e0) (S n0) (s (Flat f) x1) H8) in (let H10 \def (eq_ind_r nat x1 
+(\lambda (n1: nat).(csubst0 n1 v c x0)) H6 (S n0) H9) in (let H11 \def (H x0 
+v H10 e H7) in (or4_ind (drop (S n0) O x0 e) (ex3_4 F C T T (\lambda (f0: 
+F).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: T).(eq C e (CHead e0 (Flat 
+f0) u)))))) (\lambda (f0: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: 
+T).(drop (S n0) O x0 (CHead e0 (Flat f0) w)))))) (\lambda (_: F).(\lambda (_: 
+C).(\lambda (u: T).(\lambda (w: T).(subst0 O v u w)))))) (ex3_4 F C C T 
+(\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(eq C e 
+(CHead e1 (Flat f0) u)))))) (\lambda (f0: F).(\lambda (_: C).(\lambda (e2
+C).(\lambda (u: T).(drop (S n0) O x0 (CHead e2 (Flat f0) u)))))) (\lambda (_: 
+F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2)))))) 
+(ex4_5 F C C T T (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda 
+(u: T).(\lambda (_: T).(eq C e (CHead e1 (Flat f0) u))))))) (\lambda (f0: 
 F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (w: T).(drop (S 
 n0) O x0 (CHead e2 (Flat f0) w))))))) (\lambda (_: F).(\lambda (_: 
 C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 O v u w)))))) 
@@ -3370,7 +3356,7 @@ C).(\lambda (u: T).(\lambda (_: T).(eq C e (CHead e1 (Flat f0) u)))))))
 (w: T).(drop (S n0) O (CHead x0 (Flat f) t) (CHead e2 (Flat f0) w))))))) 
 (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: 
 T).(subst0 O v u w)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: 
-C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 e2)))))))) (\lambda (H11
+C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 e2)))))))) (\lambda (H12
 (drop (S n0) O x0 e)).(or4_intro0 (drop (S n0) O (CHead x0 (Flat f) t) e) 
 (ex3_4 F C T T (\lambda (f0: F).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: 
 T).(eq C e (CHead e0 (Flat f0) u)))))) (\lambda (f0: F).(\lambda (e0: 
@@ -3388,7 +3374,7 @@ C).(\lambda (u: T).(\lambda (_: T).(eq C e (CHead e1 (Flat f0) u)))))))
 (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: 
 T).(subst0 O v u w)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: 
 C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 e2))))))) (drop_drop (Flat 
-f) n0 x0 e H11 t))) (\lambda (H11: (ex3_4 F C T T (\lambda (f0: F).(\lambda 
+f) n0 x0 e H12 t))) (\lambda (H12: (ex3_4 F C T T (\lambda (f0: F).(\lambda 
 (e0: C).(\lambda (u: T).(\lambda (_: T).(eq C e (CHead e0 (Flat f0) u)))))) 
 (\lambda (f0: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: T).(drop (S 
 n0) O x0 (CHead e0 (Flat f0) w)))))) (\lambda (_: F).(\lambda (_: C).(\lambda 
@@ -3414,8 +3400,8 @@ C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) O (CHead x0 (Flat f) t)
 C).(\lambda (u: T).(\lambda (w: T).(subst0 O v u w)))))) (\lambda (_: 
 F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 
 O v e1 e2)))))))) (\lambda (x2: F).(\lambda (x3: C).(\lambda (x4: T).(\lambda 
-(x5: T).(\lambda (H12: (eq C e (CHead x3 (Flat x2) x4))).(\lambda (H13: (drop 
-(S n0) O x0 (CHead x3 (Flat x2) x5))).(\lambda (H14: (subst0 O v x4 
+(x5: T).(\lambda (H13: (eq C e (CHead x3 (Flat x2) x4))).(\lambda (H14: (drop 
+(S n0) O x0 (CHead x3 (Flat x2) x5))).(\lambda (H15: (subst0 O v x4 
 x5)).(eq_ind_r C (CHead x3 (Flat x2) x4) (\lambda (c0: C).(or4 (drop (S n0) O 
 (CHead x0 (Flat f) t) c0) (ex3_4 F C T T (\lambda (f0: F).(\lambda (e0: 
 C).(\lambda (u: T).(\lambda (_: T).(eq C c0 (CHead e0 (Flat f0) u)))))) 
@@ -3456,8 +3442,8 @@ T T (\lambda (f0: F).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: T).(eq C
 (e0: C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) O (CHead x0 (Flat f) t) 
 (CHead e0 (Flat f0) w)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u: 
 T).(\lambda (w: T).(subst0 O v u w))))) x2 x3 x4 x5 (refl_equal C (CHead x3 
-(Flat x2) x4)) (drop_drop (Flat f) n0 x0 (CHead x3 (Flat x2) x5) H13 t) H14)) 
-e H12)))))))) H11)) (\lambda (H11: (ex3_4 F C C T (\lambda (f0: F).(\lambda 
+(Flat x2) x4)) (drop_drop (Flat f) n0 x0 (CHead x3 (Flat x2) x5) H14 t) H15)) 
+e H13)))))))) H12)) (\lambda (H12: (ex3_4 F C C T (\lambda (f0: F).(\lambda 
 (e1: C).(\lambda (_: C).(\lambda (u: T).(eq C e (CHead e1 (Flat f0) u)))))) 
 (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(drop (S 
 n0) O x0 (CHead e2 (Flat f0) u)))))) (\lambda (_: F).(\lambda (e1: 
@@ -3483,8 +3469,8 @@ C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) O (CHead x0 (Flat f) t)
 C).(\lambda (u: T).(\lambda (w: T).(subst0 O v u w)))))) (\lambda (_: 
 F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 
 O v e1 e2)))))))) (\lambda (x2: F).(\lambda (x3: C).(\lambda (x4: C).(\lambda 
-(x5: T).(\lambda (H12: (eq C e (CHead x3 (Flat x2) x5))).(\lambda (H13: (drop 
-(S n0) O x0 (CHead x4 (Flat x2) x5))).(\lambda (H14: (csubst0 O v x3 
+(x5: T).(\lambda (H13: (eq C e (CHead x3 (Flat x2) x5))).(\lambda (H14: (drop 
+(S n0) O x0 (CHead x4 (Flat x2) x5))).(\lambda (H15: (csubst0 O v x3 
 x4)).(eq_ind_r C (CHead x3 (Flat x2) x5) (\lambda (c0: C).(or4 (drop (S n0) O 
 (CHead x0 (Flat f) t) c0) (ex3_4 F C T T (\lambda (f0: F).(\lambda (e0: 
 C).(\lambda (u: T).(\lambda (_: T).(eq C c0 (CHead e0 (Flat f0) u)))))) 
@@ -3525,8 +3511,8 @@ C T (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(eq C
 (_: C).(\lambda (e2: C).(\lambda (u: T).(drop (S n0) O (CHead x0 (Flat f) t) 
 (CHead e2 (Flat f0) u)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: 
 C).(\lambda (_: T).(csubst0 O v e1 e2))))) x2 x3 x4 x5 (refl_equal C (CHead 
-x3 (Flat x2) x5)) (drop_drop (Flat f) n0 x0 (CHead x4 (Flat x2) x5) H13 t) 
-H14)) e H12)))))))) H11)) (\lambda (H11: (ex4_5 F C C T T (\lambda (f0: 
+x3 (Flat x2) x5)) (drop_drop (Flat f) n0 x0 (CHead x4 (Flat x2) x5) H14 t) 
+H15)) e H13)))))))) H12)) (\lambda (H12: (ex4_5 F C C T T (\lambda (f0: 
 F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(\lambda (_: T).(eq C e 
 (CHead e1 (Flat f0) u))))))) (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: 
 C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) O x0 (CHead e2 (Flat f0) 
@@ -3557,9 +3543,9 @@ w))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u:
 T).(\lambda (w: T).(subst0 O v u w)))))) (\lambda (_: F).(\lambda (e1: 
 C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 
 e2)))))))) (\lambda (x2: F).(\lambda (x3: C).(\lambda (x4: C).(\lambda (x5: 
-T).(\lambda (x6: T).(\lambda (H12: (eq C e (CHead x3 (Flat x2) x5))).(\lambda 
-(H13: (drop (S n0) O x0 (CHead x4 (Flat x2) x6))).(\lambda (H14: (subst0 O v 
-x5 x6)).(\lambda (H15: (csubst0 O v x3 x4)).(eq_ind_r C (CHead x3 (Flat x2) 
+T).(\lambda (x6: T).(\lambda (H13: (eq C e (CHead x3 (Flat x2) x5))).(\lambda 
+(H14: (drop (S n0) O x0 (CHead x4 (Flat x2) x6))).(\lambda (H15: (subst0 O v 
+x5 x6)).(\lambda (H16: (csubst0 O v x3 x4)).(eq_ind_r C (CHead x3 (Flat x2) 
 x5) (\lambda (c0: C).(or4 (drop (S n0) O (CHead x0 (Flat f) t) c0) (ex3_4 F C 
 T T (\lambda (f0: F).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: T).(eq C 
 c0 (CHead e0 (Flat f0) u)))))) (\lambda (f0: F).(\lambda (e0: C).(\lambda (_: 
@@ -3602,8 +3588,8 @@ f0) w))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u:
 T).(\lambda (w: T).(subst0 O v u w)))))) (\lambda (_: F).(\lambda (e1: 
 C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 e2)))))) 
 x2 x3 x4 x5 x6 (refl_equal C (CHead x3 (Flat x2) x5)) (drop_drop (Flat f) n0 
-x0 (CHead x4 (Flat x2) x6) H13 t) H14 H15)) e H12)))))))))) H11)) H10))))))) 
-k (drop_gen_drop k c e t n0 H1) H3) c2 H4)))))) H2)) (\lambda (H2: (ex4_3 T C 
+x0 (CHead x4 (Flat x2) x6) H14 t) H15 H16)) e H13)))))))))) H12)) H11))))))) 
+k (drop_gen_drop k c e t n0 H1) H4) c2 H5)))))) H3)) (\lambda (H3: (ex4_3 T C 
 nat (\lambda (_: T).(\lambda (_: C).(\lambda (j: nat).(eq nat (S n0) (s k 
 j))))) (\lambda (u2: T).(\lambda (c3: C).(\lambda (_: nat).(eq C c2 (CHead c3 
 k u2))))) (\lambda (u2: T).(\lambda (_: C).(\lambda (j: nat).(subst0 j v t 
@@ -3628,8 +3614,8 @@ T).(\lambda (w: T).(drop (S n0) O c2 (CHead e2 (Flat f) w))))))) (\lambda (_:
 F).(\lambda (_: C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 O 
 v u w)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: 
 T).(\lambda (_: T).(csubst0 O v e1 e2)))))))) (\lambda (x0: T).(\lambda (x1: 
-C).(\lambda (x2: nat).(\lambda (H3: (eq nat (S n0) (s k x2))).(\lambda (H4
-(eq C c2 (CHead x1 k x0))).(\lambda (H5: (subst0 x2 v t x0)).(\lambda (H6
+C).(\lambda (x2: nat).(\lambda (H4: (eq nat (S n0) (s k x2))).(\lambda (H5
+(eq C c2 (CHead x1 k x0))).(\lambda (H6: (subst0 x2 v t x0)).(\lambda (H7
 (csubst0 x2 v c x1)).(eq_ind_r C (CHead x1 k x0) (\lambda (c0: C).(or4 (drop 
 (S n0) O c0 e) (ex3_4 F C T T (\lambda (f: F).(\lambda (e0: C).(\lambda (u: 
 T).(\lambda (_: T).(eq C e (CHead e0 (Flat f) u)))))) (\lambda (f: 
@@ -3663,47 +3649,47 @@ C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) O (CHead x1 k0 x0) (CHead e2
 (Flat f) w))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda 
 (u: T).(\lambda (w: T).(subst0 O v u w)))))) (\lambda (_: F).(\lambda (e1: 
 C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 
-e2))))))))))) (\lambda (b: B).(\lambda (H7: (drop (r (Bind b) n0) O c 
-e)).(\lambda (H8: (eq nat (S n0) (s (Bind b) x2))).(let H9 \def (f_equal nat 
-nat (\lambda (e0: nat).(match e0 in nat return (\lambda (_: nat).nat) with [O 
-\Rightarrow n0 | (S n1) \Rightarrow n1])) (S n0) (S x2) H8) in (let H10 \def 
-(eq_ind_r nat x2 (\lambda (n1: nat).(csubst0 n1 v c x1)) H6 n0 H9) in (let 
-H11 \def (eq_ind_r nat x2 (\lambda (n1: nat).(subst0 n1 v t x0)) H5 n0 H9) in 
-(let H12 \def (IHn c x1 v H10 e H7) in (or4_ind (drop n0 O x1 e) (ex3_4 F C T 
-T (\lambda (f: F).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: T).(eq C e 
+e2))))))))))) (\lambda (b: B).(\lambda (H8: (drop (r (Bind b) n0) O c 
+e)).(\lambda (H9: (eq nat (S n0) (s (Bind b) x2))).(let H10 \def (f_equal nat 
+nat (\lambda (e0: nat).(match e0 with [O \Rightarrow n0 | (S n1) \Rightarrow 
+n1])) (S n0) (S x2) H9) in (let H11 \def (eq_ind_r nat x2 (\lambda (n1: 
+nat).(csubst0 n1 v c x1)) H7 n0 H10) in (let H12 \def (eq_ind_r nat x2 
+(\lambda (n1: nat).(subst0 n1 v t x0)) H6 n0 H10) in (let H13 \def (IHn c x1 
+v H11 e H8) in (or4_ind (drop n0 O x1 e) (ex3_4 F C T T (\lambda (f: 
+F).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: T).(eq C e (CHead e0 (Flat 
+f) u)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: 
+T).(drop n0 O x1 (CHead e0 (Flat f) w)))))) (\lambda (_: F).(\lambda (_: 
+C).(\lambda (u: T).(\lambda (w: T).(subst0 O v u w)))))) (ex3_4 F C C T 
+(\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(eq C e 
+(CHead e1 (Flat f) u)))))) (\lambda (f: F).(\lambda (_: C).(\lambda (e2: 
+C).(\lambda (u: T).(drop n0 O x1 (CHead e2 (Flat f) u)))))) (\lambda (_: 
+F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2)))))) 
+(ex4_5 F C C T T (\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda 
+(u: T).(\lambda (_: T).(eq C e (CHead e1 (Flat f) u))))))) (\lambda (f: 
+F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (w: T).(drop n0 
+O x1 (CHead e2 (Flat f) w))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: 
+C).(\lambda (u: T).(\lambda (w: T).(subst0 O v u w)))))) (\lambda (_: 
+F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 
+O v e1 e2))))))) (or4 (drop (S n0) O (CHead x1 (Bind b) x0) e) (ex3_4 F C T T 
+(\lambda (f: F).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: T).(eq C e 
+(CHead e0 (Flat f) u)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (_: 
+T).(\lambda (w: T).(drop (S n0) O (CHead x1 (Bind b) x0) (CHead e0 (Flat f) 
+w)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u: T).(\lambda (w: 
+T).(subst0 O v u w)))))) (ex3_4 F C C T (\lambda (f: F).(\lambda (e1: 
+C).(\lambda (_: C).(\lambda (u: T).(eq C e (CHead e1 (Flat f) u)))))) 
+(\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(drop (S n0) 
+O (CHead x1 (Bind b) x0) (CHead e2 (Flat f) u)))))) (\lambda (_: F).(\lambda 
+(e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2)))))) (ex4_5 F C 
+C T T (\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: 
+T).(\lambda (_: T).(eq C e (CHead e1 (Flat f) u))))))) (\lambda (f: 
+F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (w: T).(drop (S 
+n0) O (CHead x1 (Bind b) x0) (CHead e2 (Flat f) w))))))) (\lambda (_: 
+F).(\lambda (_: C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 O 
+v u w)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: 
+T).(\lambda (_: T).(csubst0 O v e1 e2)))))))) (\lambda (H14: (drop n0 O x1 
+e)).(or4_intro0 (drop (S n0) O (CHead x1 (Bind b) x0) e) (ex3_4 F C T T 
+(\lambda (f: F).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: T).(eq C e 
 (CHead e0 (Flat f) u)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (_: 
-T).(\lambda (w: T).(drop n0 O x1 (CHead e0 (Flat f) w)))))) (\lambda (_: 
-F).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 O v u w)))))) 
-(ex3_4 F C C T (\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: 
-T).(eq C e (CHead e1 (Flat f) u)))))) (\lambda (f: F).(\lambda (_: 
-C).(\lambda (e2: C).(\lambda (u: T).(drop n0 O x1 (CHead e2 (Flat f) u)))))) 
-(\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O 
-v e1 e2)))))) (ex4_5 F C C T T (\lambda (f: F).(\lambda (e1: C).(\lambda (_: 
-C).(\lambda (u: T).(\lambda (_: T).(eq C e (CHead e1 (Flat f) u))))))) 
-(\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (w: 
-T).(drop n0 O x1 (CHead e2 (Flat f) w))))))) (\lambda (_: F).(\lambda (_: 
-C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 O v u w)))))) 
-(\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
-(_: T).(csubst0 O v e1 e2))))))) (or4 (drop (S n0) O (CHead x1 (Bind b) x0) 
-e) (ex3_4 F C T T (\lambda (f: F).(\lambda (e0: C).(\lambda (u: T).(\lambda 
-(_: T).(eq C e (CHead e0 (Flat f) u)))))) (\lambda (f: F).(\lambda (e0: 
-C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) O (CHead x1 (Bind b) x0) 
-(CHead e0 (Flat f) w)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u: 
-T).(\lambda (w: T).(subst0 O v u w)))))) (ex3_4 F C C T (\lambda (f: 
-F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(eq C e (CHead e1 (Flat 
-f) u)))))) (\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: 
-T).(drop (S n0) O (CHead x1 (Bind b) x0) (CHead e2 (Flat f) u)))))) (\lambda 
-(_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 
-e2)))))) (ex4_5 F C C T T (\lambda (f: F).(\lambda (e1: C).(\lambda (_: 
-C).(\lambda (u: T).(\lambda (_: T).(eq C e (CHead e1 (Flat f) u))))))) 
-(\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (w: 
-T).(drop (S n0) O (CHead x1 (Bind b) x0) (CHead e2 (Flat f) w))))))) (\lambda 
-(_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: 
-T).(subst0 O v u w)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: 
-C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 e2)))))))) (\lambda (H13: 
-(drop n0 O x1 e)).(or4_intro0 (drop (S n0) O (CHead x1 (Bind b) x0) e) (ex3_4 
-F C T T (\lambda (f: F).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: T).(eq 
-C e (CHead e0 (Flat f) u)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (_: 
 T).(\lambda (w: T).(drop (S n0) O (CHead x1 (Bind b) x0) (CHead e0 (Flat f) 
 w)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u: T).(\lambda (w: 
 T).(subst0 O v u w)))))) (ex3_4 F C C T (\lambda (f: F).(\lambda (e1: 
@@ -3717,8 +3703,8 @@ F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (w: T).(drop (S
 n0) O (CHead x1 (Bind b) x0) (CHead e2 (Flat f) w))))))) (\lambda (_: 
 F).(\lambda (_: C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 O 
 v u w)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: 
-T).(\lambda (_: T).(csubst0 O v e1 e2))))))) (drop_drop (Bind b) n0 x1 e H13 
-x0))) (\lambda (H13: (ex3_4 F C T T (\lambda (f: F).(\lambda (e0: C).(\lambda 
+T).(\lambda (_: T).(csubst0 O v e1 e2))))))) (drop_drop (Bind b) n0 x1 e H14 
+x0))) (\lambda (H14: (ex3_4 F C T T (\lambda (f: F).(\lambda (e0: C).(\lambda 
 (u: T).(\lambda (_: T).(eq C e (CHead e0 (Flat f) u)))))) (\lambda (f: 
 F).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: T).(drop n0 O x1 (CHead e0 
 (Flat f) w)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u: T).(\lambda (w: 
@@ -3744,8 +3730,8 @@ w))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u:
 T).(\lambda (w: T).(subst0 O v u w)))))) (\lambda (_: F).(\lambda (e1: 
 C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 
 e2)))))))) (\lambda (x3: F).(\lambda (x4: C).(\lambda (x5: T).(\lambda (x6: 
-T).(\lambda (H14: (eq C e (CHead x4 (Flat x3) x5))).(\lambda (H15: (drop n0 O 
-x1 (CHead x4 (Flat x3) x6))).(\lambda (H16: (subst0 O v x5 x6)).(eq_ind_r C 
+T).(\lambda (H15: (eq C e (CHead x4 (Flat x3) x5))).(\lambda (H16: (drop n0 O 
+x1 (CHead x4 (Flat x3) x6))).(\lambda (H17: (subst0 O v x5 x6)).(eq_ind_r C 
 (CHead x4 (Flat x3) x5) (\lambda (c0: C).(or4 (drop (S n0) O (CHead x1 (Bind 
 b) x0) c0) (ex3_4 F C T T (\lambda (f: F).(\lambda (e0: C).(\lambda (u: 
 T).(\lambda (_: T).(eq C c0 (CHead e0 (Flat f) u)))))) (\lambda (f: 
@@ -3786,8 +3772,8 @@ x5) (CHead e0 (Flat f) u)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (_:
 T).(\lambda (w: T).(drop (S n0) O (CHead x1 (Bind b) x0) (CHead e0 (Flat f) 
 w)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u: T).(\lambda (w: 
 T).(subst0 O v u w))))) x3 x4 x5 x6 (refl_equal C (CHead x4 (Flat x3) x5)) 
-(drop_drop (Bind b) n0 x1 (CHead x4 (Flat x3) x6) H15 x0) H16)) e H14)))))))) 
-H13)) (\lambda (H13: (ex3_4 F C C T (\lambda (f: F).(\lambda (e1: C).(\lambda 
+(drop_drop (Bind b) n0 x1 (CHead x4 (Flat x3) x6) H16 x0) H17)) e H15)))))))) 
+H14)) (\lambda (H14: (ex3_4 F C C T (\lambda (f: F).(\lambda (e1: C).(\lambda 
 (_: C).(\lambda (u: T).(eq C e (CHead e1 (Flat f) u)))))) (\lambda (f: 
 F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(drop n0 O x1 (CHead e2 
 (Flat f) u)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda 
@@ -3813,8 +3799,8 @@ w))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u:
 T).(\lambda (w: T).(subst0 O v u w)))))) (\lambda (_: F).(\lambda (e1: 
 C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 
 e2)))))))) (\lambda (x3: F).(\lambda (x4: C).(\lambda (x5: C).(\lambda (x6: 
-T).(\lambda (H14: (eq C e (CHead x4 (Flat x3) x6))).(\lambda (H15: (drop n0 O 
-x1 (CHead x5 (Flat x3) x6))).(\lambda (H16: (csubst0 O v x4 x5)).(eq_ind_r C 
+T).(\lambda (H15: (eq C e (CHead x4 (Flat x3) x6))).(\lambda (H16: (drop n0 O 
+x1 (CHead x5 (Flat x3) x6))).(\lambda (H17: (csubst0 O v x4 x5)).(eq_ind_r C 
 (CHead x4 (Flat x3) x6) (\lambda (c0: C).(or4 (drop (S n0) O (CHead x1 (Bind 
 b) x0) c0) (ex3_4 F C T T (\lambda (f: F).(\lambda (e0: C).(\lambda (u: 
 T).(\lambda (_: T).(eq C c0 (CHead e0 (Flat f) u)))))) (\lambda (f: 
@@ -3855,8 +3841,8 @@ x6) (CHead e1 (Flat f) u)))))) (\lambda (f: F).(\lambda (_: C).(\lambda (e2:
 C).(\lambda (u: T).(drop (S n0) O (CHead x1 (Bind b) x0) (CHead e2 (Flat f) 
 u)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: 
 T).(csubst0 O v e1 e2))))) x3 x4 x5 x6 (refl_equal C (CHead x4 (Flat x3) x6)) 
-(drop_drop (Bind b) n0 x1 (CHead x5 (Flat x3) x6) H15 x0) H16)) e H14)))))))) 
-H13)) (\lambda (H13: (ex4_5 F C C T T (\lambda (f: F).(\lambda (e1: 
+(drop_drop (Bind b) n0 x1 (CHead x5 (Flat x3) x6) H16 x0) H17)) e H15)))))))) 
+H14)) (\lambda (H14: (ex4_5 F C C T T (\lambda (f: F).(\lambda (e1: 
 C).(\lambda (_: C).(\lambda (u: T).(\lambda (_: T).(eq C e (CHead e1 (Flat f) 
 u))))))) (\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: 
 T).(\lambda (w: T).(drop n0 O x1 (CHead e2 (Flat f) w))))))) (\lambda (_: 
@@ -3886,9 +3872,9 @@ w))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u:
 T).(\lambda (w: T).(subst0 O v u w)))))) (\lambda (_: F).(\lambda (e1: 
 C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 
 e2)))))))) (\lambda (x3: F).(\lambda (x4: C).(\lambda (x5: C).(\lambda (x6: 
-T).(\lambda (x7: T).(\lambda (H14: (eq C e (CHead x4 (Flat x3) x6))).(\lambda 
-(H15: (drop n0 O x1 (CHead x5 (Flat x3) x7))).(\lambda (H16: (subst0 O v x6 
-x7)).(\lambda (H17: (csubst0 O v x4 x5)).(eq_ind_r C (CHead x4 (Flat x3) x6) 
+T).(\lambda (x7: T).(\lambda (H15: (eq C e (CHead x4 (Flat x3) x6))).(\lambda 
+(H16: (drop n0 O x1 (CHead x5 (Flat x3) x7))).(\lambda (H17: (subst0 O v x6 
+x7)).(\lambda (H18: (csubst0 O v x4 x5)).(eq_ind_r C (CHead x4 (Flat x3) x6) 
 (\lambda (c0: C).(or4 (drop (S n0) O (CHead x1 (Bind b) x0) c0) (ex3_4 F C T 
 T (\lambda (f: F).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: T).(eq C c0 
 (CHead e0 (Flat f) u)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (_: 
@@ -3931,13 +3917,13 @@ f) w))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u:
 T).(\lambda (w: T).(subst0 O v u w)))))) (\lambda (_: F).(\lambda (e1: 
 C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 e2)))))) 
 x3 x4 x5 x6 x7 (refl_equal C (CHead x4 (Flat x3) x6)) (drop_drop (Bind b) n0 
-x1 (CHead x5 (Flat x3) x7) H15 x0) H16 H17)) e H14)))))))))) H13)) 
-H12)))))))) (\lambda (f: F).(\lambda (H7: (drop (r (Flat f) n0) O c 
-e)).(\lambda (H8: (eq nat (S n0) (s (Flat f) x2))).(let H9 \def (f_equal nat 
-nat (\lambda (e0: nat).e0) (S n0) (s (Flat f) x2) H8) in (let H10 \def 
-(eq_ind_r nat x2 (\lambda (n1: nat).(csubst0 n1 v c x1)) H6 (S n0) H9) in 
-(let H11 \def (eq_ind_r nat x2 (\lambda (n1: nat).(subst0 n1 v t x0)) H5 (S 
-n0) H9) in (let H12 \def (H x1 v H10 e H7) in (or4_ind (drop (S n0) O x1 e) 
+x1 (CHead x5 (Flat x3) x7) H16 x0) H17 H18)) e H15)))))))))) H14)) 
+H13)))))))) (\lambda (f: F).(\lambda (H8: (drop (r (Flat f) n0) O c 
+e)).(\lambda (H9: (eq nat (S n0) (s (Flat f) x2))).(let H10 \def (f_equal nat 
+nat (\lambda (e0: nat).e0) (S n0) (s (Flat f) x2) H9) in (let H11 \def 
+(eq_ind_r nat x2 (\lambda (n1: nat).(csubst0 n1 v c x1)) H7 (S n0) H10) in 
+(let H12 \def (eq_ind_r nat x2 (\lambda (n1: nat).(subst0 n1 v t x0)) H6 (S 
+n0) H10) in (let H13 \def (H x1 v H11 e H8) in (or4_ind (drop (S n0) O x1 e) 
 (ex3_4 F C T T (\lambda (f0: F).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: 
 T).(eq C e (CHead e0 (Flat f0) u)))))) (\lambda (f0: F).(\lambda (e0: 
 C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) O x1 (CHead e0 (Flat f0) 
@@ -3969,7 +3955,7 @@ F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (w: T).(drop (S
 n0) O (CHead x1 (Flat f) x0) (CHead e2 (Flat f0) w))))))) (\lambda (_: 
 F).(\lambda (_: C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 O 
 v u w)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: 
-T).(\lambda (_: T).(csubst0 O v e1 e2)))))))) (\lambda (H13: (drop (S n0) O 
+T).(\lambda (_: T).(csubst0 O v e1 e2)))))))) (\lambda (H14: (drop (S n0) O 
 x1 e)).(or4_intro0 (drop (S n0) O (CHead x1 (Flat f) x0) e) (ex3_4 F C T T 
 (\lambda (f0: F).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: T).(eq C e 
 (CHead e0 (Flat f0) u)))))) (\lambda (f0: F).(\lambda (e0: C).(\lambda (_: 
@@ -3986,8 +3972,8 @@ F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (w: T).(drop (S
 n0) O (CHead x1 (Flat f) x0) (CHead e2 (Flat f0) w))))))) (\lambda (_: 
 F).(\lambda (_: C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 O 
 v u w)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: 
-T).(\lambda (_: T).(csubst0 O v e1 e2))))))) (drop_drop (Flat f) n0 x1 e H13 
-x0))) (\lambda (H13: (ex3_4 F C T T (\lambda (f0: F).(\lambda (e0: 
+T).(\lambda (_: T).(csubst0 O v e1 e2))))))) (drop_drop (Flat f) n0 x1 e H14 
+x0))) (\lambda (H14: (ex3_4 F C T T (\lambda (f0: F).(\lambda (e0: 
 C).(\lambda (u: T).(\lambda (_: T).(eq C e (CHead e0 (Flat f0) u)))))) 
 (\lambda (f0: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: T).(drop (S 
 n0) O x1 (CHead e0 (Flat f0) w)))))) (\lambda (_: F).(\lambda (_: C).(\lambda 
@@ -4013,8 +3999,8 @@ C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) O (CHead x1 (Flat f) x0)
 C).(\lambda (u: T).(\lambda (w: T).(subst0 O v u w)))))) (\lambda (_: 
 F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 
 O v e1 e2)))))))) (\lambda (x3: F).(\lambda (x4: C).(\lambda (x5: T).(\lambda 
-(x6: T).(\lambda (H14: (eq C e (CHead x4 (Flat x3) x5))).(\lambda (H15: (drop 
-(S n0) O x1 (CHead x4 (Flat x3) x6))).(\lambda (H16: (subst0 O v x5 
+(x6: T).(\lambda (H15: (eq C e (CHead x4 (Flat x3) x5))).(\lambda (H16: (drop 
+(S n0) O x1 (CHead x4 (Flat x3) x6))).(\lambda (H17: (subst0 O v x5 
 x6)).(eq_ind_r C (CHead x4 (Flat x3) x5) (\lambda (c0: C).(or4 (drop (S n0) O 
 (CHead x1 (Flat f) x0) c0) (ex3_4 F C T T (\lambda (f0: F).(\lambda (e0: 
 C).(\lambda (u: T).(\lambda (_: T).(eq C c0 (CHead e0 (Flat f0) u)))))) 
@@ -4055,8 +4041,8 @@ T T (\lambda (f0: F).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: T).(eq C
 (e0: C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) O (CHead x1 (Flat f) x0) 
 (CHead e0 (Flat f0) w)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u: 
 T).(\lambda (w: T).(subst0 O v u w))))) x3 x4 x5 x6 (refl_equal C (CHead x4 
-(Flat x3) x5)) (drop_drop (Flat f) n0 x1 (CHead x4 (Flat x3) x6) H15 x0) 
-H16)) e H14)))))))) H13)) (\lambda (H13: (ex3_4 F C C T (\lambda (f0: 
+(Flat x3) x5)) (drop_drop (Flat f) n0 x1 (CHead x4 (Flat x3) x6) H16 x0) 
+H17)) e H15)))))))) H14)) (\lambda (H14: (ex3_4 F C C T (\lambda (f0: 
 F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(eq C e (CHead e1 (Flat 
 f0) u)))))) (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: 
 T).(drop (S n0) O x1 (CHead e2 (Flat f0) u)))))) (\lambda (_: F).(\lambda 
@@ -4082,9 +4068,9 @@ n0) O (CHead x1 (Flat f) x0) (CHead e2 (Flat f0) w))))))) (\lambda (_:
 F).(\lambda (_: C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 O 
 v u w)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: 
 T).(\lambda (_: T).(csubst0 O v e1 e2)))))))) (\lambda (x3: F).(\lambda (x4: 
-C).(\lambda (x5: C).(\lambda (x6: T).(\lambda (H14: (eq C e (CHead x4 (Flat 
-x3) x6))).(\lambda (H15: (drop (S n0) O x1 (CHead x5 (Flat x3) x6))).(\lambda 
-(H16: (csubst0 O v x4 x5)).(eq_ind_r C (CHead x4 (Flat x3) x6) (\lambda (c0: 
+C).(\lambda (x5: C).(\lambda (x6: T).(\lambda (H15: (eq C e (CHead x4 (Flat 
+x3) x6))).(\lambda (H16: (drop (S n0) O x1 (CHead x5 (Flat x3) x6))).(\lambda 
+(H17: (csubst0 O v x4 x5)).(eq_ind_r C (CHead x4 (Flat x3) x6) (\lambda (c0: 
 C).(or4 (drop (S n0) O (CHead x1 (Flat f) x0) c0) (ex3_4 F C T T (\lambda 
 (f0: F).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: T).(eq C c0 (CHead e0 
 (Flat f0) u)))))) (\lambda (f0: F).(\lambda (e0: C).(\lambda (_: T).(\lambda 
@@ -4125,7 +4111,7 @@ C).(\lambda (u: T).(eq C (CHead x4 (Flat x3) x6) (CHead e1 (Flat f0) u))))))
 n0) O (CHead x1 (Flat f) x0) (CHead e2 (Flat f0) u)))))) (\lambda (_: 
 F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2))))) 
 x3 x4 x5 x6 (refl_equal C (CHead x4 (Flat x3) x6)) (drop_drop (Flat f) n0 x1 
-(CHead x5 (Flat x3) x6) H15 x0) H16)) e H14)))))))) H13)) (\lambda (H13
+(CHead x5 (Flat x3) x6) H16 x0) H17)) e H15)))))))) H14)) (\lambda (H14
 (ex4_5 F C C T T (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda 
 (u: T).(\lambda (_: T).(eq C e (CHead e1 (Flat f0) u))))))) (\lambda (f0: 
 F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (w: T).(drop (S 
@@ -4156,9 +4142,9 @@ C).(\lambda (_: T).(\lambda (w: T).(drop (S n0) O (CHead x1 (Flat f) x0)
 C).(\lambda (u: T).(\lambda (w: T).(subst0 O v u w)))))) (\lambda (_: 
 F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 
 O v e1 e2)))))))) (\lambda (x3: F).(\lambda (x4: C).(\lambda (x5: C).(\lambda 
-(x6: T).(\lambda (x7: T).(\lambda (H14: (eq C e (CHead x4 (Flat x3) 
-x6))).(\lambda (H15: (drop (S n0) O x1 (CHead x5 (Flat x3) x7))).(\lambda 
-(H16: (subst0 O v x6 x7)).(\lambda (H17: (csubst0 O v x4 x5)).(eq_ind_r C 
+(x6: T).(\lambda (x7: T).(\lambda (H15: (eq C e (CHead x4 (Flat x3) 
+x6))).(\lambda (H16: (drop (S n0) O x1 (CHead x5 (Flat x3) x7))).(\lambda 
+(H17: (subst0 O v x6 x7)).(\lambda (H18: (csubst0 O v x4 x5)).(eq_ind_r C 
 (CHead x4 (Flat x3) x6) (\lambda (c0: C).(or4 (drop (S n0) O (CHead x1 (Flat 
 f) x0) c0) (ex3_4 F C T T (\lambda (f0: F).(\lambda (e0: C).(\lambda (u: 
 T).(\lambda (_: T).(eq C c0 (CHead e0 (Flat f0) u)))))) (\lambda (f0: 
@@ -4202,12 +4188,8 @@ T).(\lambda (_: T).(eq C (CHead x4 (Flat x3) x6) (CHead e1 (Flat f0) u)))))))
 T).(subst0 O v u w)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: 
 C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 e2)))))) x3 x4 x5 x6 x7 
 (refl_equal C (CHead x4 (Flat x3) x6)) (drop_drop (Flat f) n0 x1 (CHead x5 
-(Flat x3) x7) H15 x0) H16 H17)) e H14)))))))))) H13)) H12)))))))) k 
-(drop_gen_drop k c e t n0 H1) H3) c2 H4)))))))) H2)) (csubst0_gen_head k c c2 
-t v (S n0) H0))))))))))) c1)))) n).
-(* COMMENTS
-Initial nodes: 36162
-END *)
+(Flat x3) x7) H16 x0) H17 H18)) e H15)))))))))) H14)) H13)))))))) k 
+(drop_gen_drop k c e t n0 H1) H4) c2 H5)))))))) H3)) H2))))))))))) c1)))) n).
 
 theorem csubst0_drop_eq_back:
  \forall (n: nat).(\forall (c1: C).(\forall (c2: C).(\forall (v: T).((csubst0 
@@ -4318,68 +4300,68 @@ C).(\lambda (u3: T).(\lambda (u4: T).(subst0 (s k0 i) v0 u3 u4)))))) (\lambda
 T).(csubst0 (s k0 i) v0 e1 e2)))))))))))))))) (\lambda (b: B).(\lambda (i: 
 nat).(\lambda (v0: T).(\lambda (u1: T).(\lambda (u2: T).(\lambda (_: (subst0 
 i v0 u1 u2)).(\lambda (c: C).(\lambda (H3: (eq nat (S i) O)).(let H4 \def 
-(eq_ind nat (S i) (\lambda (ee: nat).(match ee in nat return (\lambda (_: 
-nat).Prop) with [O \Rightarrow False | (S _) \Rightarrow True])) I O H3) in 
-(False_ind (or4 (drop (S i) (S i) (CHead c (Bind b) u1) (CHead c (Bind b) 
-u2)) (ex3_4 F C T T (\lambda (f: F).(\lambda (e0: C).(\lambda (_: T).(\lambda 
-(u4: T).(eq C (CHead c (Bind b) u2) (CHead e0 (Flat f) u4)))))) (\lambda (f: 
-F).(\lambda (e0: C).(\lambda (u3: T).(\lambda (_: T).(drop (S i) (S i) (CHead 
-c (Bind b) u1) (CHead e0 (Flat f) u3)))))) (\lambda (_: F).(\lambda (_: 
-C).(\lambda (u3: T).(\lambda (u4: T).(subst0 (S i) v0 u3 u4)))))) (ex3_4 F C 
-C T (\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(eq C 
-(CHead c (Bind b) u2) (CHead e2 (Flat f) u)))))) (\lambda (f: F).(\lambda 
-(e1: C).(\lambda (_: C).(\lambda (u: T).(drop (S i) (S i) (CHead c (Bind b) 
-u1) (CHead e1 (Flat f) u)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: 
-C).(\lambda (_: T).(csubst0 (S i) v0 e1 e2)))))) (ex4_5 F C C T T (\lambda 
-(f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (u4: T).(eq 
-C (CHead c (Bind b) u2) (CHead e2 (Flat f) u4))))))) (\lambda (f: F).(\lambda 
-(e1: C).(\lambda (_: C).(\lambda (u3: T).(\lambda (_: T).(drop (S i) (S i) 
-(CHead c (Bind b) u1) (CHead e1 (Flat f) u3))))))) (\lambda (_: F).(\lambda 
-(_: C).(\lambda (_: C).(\lambda (u3: T).(\lambda (u4: T).(subst0 (S i) v0 u3 
-u4)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: 
-T).(\lambda (_: T).(csubst0 (S i) v0 e1 e2)))))))) H4)))))))))) (\lambda (f: 
-F).(\lambda (i: nat).(\lambda (v0: T).(\lambda (u1: T).(\lambda (u2: 
-T).(\lambda (H2: (subst0 i v0 u1 u2)).(\lambda (c: C).(\lambda (H3: (eq nat i 
-O)).(let H4 \def (eq_ind nat i (\lambda (n0: nat).(subst0 n0 v0 u1 u2)) H2 O 
-H3) in (eq_ind_r nat O (\lambda (n0: nat).(or4 (drop n0 n0 (CHead c (Flat f) 
-u1) (CHead c (Flat f) u2)) (ex3_4 F C T T (\lambda (f0: F).(\lambda (e0: 
-C).(\lambda (_: T).(\lambda (u4: T).(eq C (CHead c (Flat f) u2) (CHead e0 
-(Flat f0) u4)))))) (\lambda (f0: F).(\lambda (e0: C).(\lambda (u3: 
-T).(\lambda (_: T).(drop n0 n0 (CHead c (Flat f) u1) (CHead e0 (Flat f0) 
+(eq_ind nat (S i) (\lambda (ee: nat).(match ee with [O \Rightarrow False | (S 
+_) \Rightarrow True])) I O H3) in (False_ind (or4 (drop (S i) (S i) (CHead c 
+(Bind b) u1) (CHead c (Bind b) u2)) (ex3_4 F C T T (\lambda (f: F).(\lambda 
+(e0: C).(\lambda (_: T).(\lambda (u4: T).(eq C (CHead c (Bind b) u2) (CHead 
+e0 (Flat f) u4)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (u3: 
+T).(\lambda (_: T).(drop (S i) (S i) (CHead c (Bind b) u1) (CHead e0 (Flat f) 
 u3)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u3: T).(\lambda (u4: 
-T).(subst0 n0 v0 u3 u4)))))) (ex3_4 F C C T (\lambda (f0: F).(\lambda (_: 
-C).(\lambda (e2: C).(\lambda (u: T).(eq C (CHead c (Flat f) u2) (CHead e2 
-(Flat f0) u)))))) (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda 
-(u: T).(drop n0 n0 (CHead c (Flat f) u1) (CHead e1 (Flat f0) u)))))) (\lambda 
-(_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 n0 v0 e1 
-e2)))))) (ex4_5 F C C T T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (_: T).(\lambda (u4: T).(eq C (CHead c (Flat f) u2) (CHead e2 
-(Flat f0) u4))))))) (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: 
-C).(\lambda (u3: T).(\lambda (_: T).(drop n0 n0 (CHead c (Flat f) u1) (CHead 
-e1 (Flat f0) u3))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: 
-C).(\lambda (u3: T).(\lambda (u4: T).(subst0 n0 v0 u3 u4)))))) (\lambda (_: 
-F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 
-n0 v0 e1 e2))))))))) (or4_intro1 (drop O O (CHead c (Flat f) u1) (CHead c 
-(Flat f) u2)) (ex3_4 F C T T (\lambda (f0: F).(\lambda (e0: C).(\lambda (_: 
+T).(subst0 (S i) v0 u3 u4)))))) (ex3_4 F C C T (\lambda (f: F).(\lambda (_: 
+C).(\lambda (e2: C).(\lambda (u: T).(eq C (CHead c (Bind b) u2) (CHead e2 
+(Flat f) u)))))) (\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda 
+(u: T).(drop (S i) (S i) (CHead c (Bind b) u1) (CHead e1 (Flat f) u)))))) 
+(\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 (S 
+i) v0 e1 e2)))))) (ex4_5 F C C T T (\lambda (f: F).(\lambda (_: C).(\lambda 
+(e2: C).(\lambda (_: T).(\lambda (u4: T).(eq C (CHead c (Bind b) u2) (CHead 
+e2 (Flat f) u4))))))) (\lambda (f: F).(\lambda (e1: C).(\lambda (_: 
+C).(\lambda (u3: T).(\lambda (_: T).(drop (S i) (S i) (CHead c (Bind b) u1) 
+(CHead e1 (Flat f) u3))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: 
+C).(\lambda (u3: T).(\lambda (u4: T).(subst0 (S i) v0 u3 u4)))))) (\lambda 
+(_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: 
+T).(csubst0 (S i) v0 e1 e2)))))))) H4)))))))))) (\lambda (f: F).(\lambda (i: 
+nat).(\lambda (v0: T).(\lambda (u1: T).(\lambda (u2: T).(\lambda (H2: (subst0 
+i v0 u1 u2)).(\lambda (c: C).(\lambda (H3: (eq nat i O)).(let H4 \def (eq_ind 
+nat i (\lambda (n0: nat).(subst0 n0 v0 u1 u2)) H2 O H3) in (eq_ind_r nat O 
+(\lambda (n0: nat).(or4 (drop n0 n0 (CHead c (Flat f) u1) (CHead c (Flat f) 
+u2)) (ex3_4 F C T T (\lambda (f0: F).(\lambda (e0: C).(\lambda (_: 
 T).(\lambda (u4: T).(eq C (CHead c (Flat f) u2) (CHead e0 (Flat f0) u4)))))) 
-(\lambda (f0: F).(\lambda (e0: C).(\lambda (u3: T).(\lambda (_: T).(drop O O 
-(CHead c (Flat f) u1) (CHead e0 (Flat f0) u3)))))) (\lambda (_: F).(\lambda 
-(_: C).(\lambda (u3: T).(\lambda (u4: T).(subst0 O v0 u3 u4)))))) (ex3_4 F C 
-C T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(eq C 
-(CHead c (Flat f) u2) (CHead e2 (Flat f0) u)))))) (\lambda (f0: F).(\lambda 
-(e1: C).(\lambda (_: C).(\lambda (u: T).(drop O O (CHead c (Flat f) u1) 
-(CHead e1 (Flat f0) u)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: 
-C).(\lambda (_: T).(csubst0 O v0 e1 e2)))))) (ex4_5 F C C T T (\lambda (f0: 
-F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (u4: T).(eq C 
-(CHead c (Flat f) u2) (CHead e2 (Flat f0) u4))))))) (\lambda (f0: F).(\lambda 
-(e1: C).(\lambda (_: C).(\lambda (u3: T).(\lambda (_: T).(drop O O (CHead c 
-(Flat f) u1) (CHead e1 (Flat f0) u3))))))) (\lambda (_: F).(\lambda (_: 
-C).(\lambda (_: C).(\lambda (u3: T).(\lambda (u4: T).(subst0 O v0 u3 u4)))))) 
-(\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
-(_: T).(csubst0 O v0 e1 e2))))))) (ex3_4_intro F C T T (\lambda (f0: 
-F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u4: T).(eq C (CHead c (Flat f) 
-u2) (CHead e0 (Flat f0) u4)))))) (\lambda (f0: F).(\lambda (e0: C).(\lambda 
-(u3: T).(\lambda (_: T).(drop O O (CHead c (Flat f) u1) (CHead e0 (Flat f0) 
+(\lambda (f0: F).(\lambda (e0: C).(\lambda (u3: T).(\lambda (_: T).(drop n0 
+n0 (CHead c (Flat f) u1) (CHead e0 (Flat f0) u3)))))) (\lambda (_: 
+F).(\lambda (_: C).(\lambda (u3: T).(\lambda (u4: T).(subst0 n0 v0 u3 
+u4)))))) (ex3_4 F C C T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: 
+C).(\lambda (u: T).(eq C (CHead c (Flat f) u2) (CHead e2 (Flat f0) u)))))) 
+(\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(drop n0 n0 
+(CHead c (Flat f) u1) (CHead e1 (Flat f0) u)))))) (\lambda (_: F).(\lambda 
+(e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 n0 v0 e1 e2)))))) (ex4_5 F 
+C C T T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: 
+T).(\lambda (u4: T).(eq C (CHead c (Flat f) u2) (CHead e2 (Flat f0) u4))))))) 
+(\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u3: T).(\lambda 
+(_: T).(drop n0 n0 (CHead c (Flat f) u1) (CHead e1 (Flat f0) u3))))))) 
+(\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u3: T).(\lambda 
+(u4: T).(subst0 n0 v0 u3 u4)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda 
+(e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 n0 v0 e1 e2))))))))) 
+(or4_intro1 (drop O O (CHead c (Flat f) u1) (CHead c (Flat f) u2)) (ex3_4 F C 
+T T (\lambda (f0: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u4: T).(eq C 
+(CHead c (Flat f) u2) (CHead e0 (Flat f0) u4)))))) (\lambda (f0: F).(\lambda 
+(e0: C).(\lambda (u3: T).(\lambda (_: T).(drop O O (CHead c (Flat f) u1) 
+(CHead e0 (Flat f0) u3)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u3: 
+T).(\lambda (u4: T).(subst0 O v0 u3 u4)))))) (ex3_4 F C C T (\lambda (f0: 
+F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(eq C (CHead c (Flat f) 
+u2) (CHead e2 (Flat f0) u)))))) (\lambda (f0: F).(\lambda (e1: C).(\lambda 
+(_: C).(\lambda (u: T).(drop O O (CHead c (Flat f) u1) (CHead e1 (Flat f0) 
+u)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: 
+T).(csubst0 O v0 e1 e2)))))) (ex4_5 F C C T T (\lambda (f0: F).(\lambda (_: 
+C).(\lambda (e2: C).(\lambda (_: T).(\lambda (u4: T).(eq C (CHead c (Flat f) 
+u2) (CHead e2 (Flat f0) u4))))))) (\lambda (f0: F).(\lambda (e1: C).(\lambda 
+(_: C).(\lambda (u3: T).(\lambda (_: T).(drop O O (CHead c (Flat f) u1) 
+(CHead e1 (Flat f0) u3))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: 
+C).(\lambda (u3: T).(\lambda (u4: T).(subst0 O v0 u3 u4)))))) (\lambda (_: 
+F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 
+O v0 e1 e2))))))) (ex3_4_intro F C T T (\lambda (f0: F).(\lambda (e0: 
+C).(\lambda (_: T).(\lambda (u4: T).(eq C (CHead c (Flat f) u2) (CHead e0 
+(Flat f0) u4)))))) (\lambda (f0: F).(\lambda (e0: C).(\lambda (u3: 
+T).(\lambda (_: T).(drop O O (CHead c (Flat f) u1) (CHead e0 (Flat f0) 
 u3)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u3: T).(\lambda (u4: 
 T).(subst0 O v0 u3 u4))))) f c u1 u2 (refl_equal C (CHead c (Flat f) u2)) 
 (drop_refl (CHead c (Flat f) u1)) H4)) i H3)))))))))) k)) (\lambda (k: 
@@ -4436,40 +4418,39 @@ C).(\lambda (_: T).(\lambda (u2: T).(eq C c4 (CHead e2 (Flat f) u2)))))))
 C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 i v0 u1 u2)))))) 
 (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
 (_: T).(csubst0 i v0 e1 e2))))))))))).(\lambda (u: T).(\lambda (H4: (eq nat 
-(S i) O)).(let H5 \def (eq_ind nat (S i) (\lambda (ee: nat).(match ee in nat 
-return (\lambda (_: nat).Prop) with [O \Rightarrow False | (S _) \Rightarrow 
-True])) I O H4) in (False_ind (or4 (drop (S i) (S i) (CHead c3 (Bind b) u) 
-(CHead c4 (Bind b) u)) (ex3_4 F C T T (\lambda (f: F).(\lambda (e0: 
-C).(\lambda (_: T).(\lambda (u2: T).(eq C (CHead c4 (Bind b) u) (CHead e0 
-(Flat f) u2)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (u1: T).(\lambda 
-(_: T).(drop (S i) (S i) (CHead c3 (Bind b) u) (CHead e0 (Flat f) u1)))))) 
-(\lambda (_: F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 (S 
-i) v0 u1 u2)))))) (ex3_4 F C C T (\lambda (f: F).(\lambda (_: C).(\lambda 
-(e2: C).(\lambda (u0: T).(eq C (CHead c4 (Bind b) u) (CHead e2 (Flat f) 
-u0)))))) (\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u0: 
-T).(drop (S i) (S i) (CHead c3 (Bind b) u) (CHead e1 (Flat f) u0)))))) 
-(\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 (S 
-i) v0 e1 e2)))))) (ex4_5 F C C T T (\lambda (f: F).(\lambda (_: C).(\lambda 
-(e2: C).(\lambda (_: T).(\lambda (u2: T).(eq C (CHead c4 (Bind b) u) (CHead 
-e2 (Flat f) u2))))))) (\lambda (f: F).(\lambda (e1: C).(\lambda (_: 
-C).(\lambda (u1: T).(\lambda (_: T).(drop (S i) (S i) (CHead c3 (Bind b) u) 
-(CHead e1 (Flat f) u1))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: 
-C).(\lambda (u1: T).(\lambda (u2: T).(subst0 (S i) v0 u1 u2)))))) (\lambda 
-(_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: 
-T).(csubst0 (S i) v0 e1 e2)))))))) H5))))))))))) (\lambda (f: F).(\lambda (i: 
-nat).(\lambda (c3: C).(\lambda (c4: C).(\lambda (v0: T).(\lambda (H2: 
-(csubst0 i v0 c3 c4)).(\lambda (H3: (((eq nat i O) \to (or4 (drop i i c3 c4) 
-(ex3_4 F C T T (\lambda (f0: F).(\lambda (e0: C).(\lambda (_: T).(\lambda 
-(u2: T).(eq C c4 (CHead e0 (Flat f0) u2)))))) (\lambda (f0: F).(\lambda (e0: 
-C).(\lambda (u1: T).(\lambda (_: T).(drop i i c3 (CHead e0 (Flat f0) u1)))))) 
-(\lambda (_: F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 i 
-v0 u1 u2)))))) (ex3_4 F C C T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (u: T).(eq C c4 (CHead e2 (Flat f0) u)))))) (\lambda (f0: 
-F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(drop i i c3 (CHead e1 
-(Flat f0) u)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda 
-(_: T).(csubst0 i v0 e1 e2)))))) (ex4_5 F C C T T (\lambda (f0: F).(\lambda 
-(_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (u2: T).(eq C c4 (CHead e2 
-(Flat f0) u2))))))) (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: 
+(S i) O)).(let H5 \def (eq_ind nat (S i) (\lambda (ee: nat).(match ee with [O 
+\Rightarrow False | (S _) \Rightarrow True])) I O H4) in (False_ind (or4 
+(drop (S i) (S i) (CHead c3 (Bind b) u) (CHead c4 (Bind b) u)) (ex3_4 F C T T 
+(\lambda (f: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C 
+(CHead c4 (Bind b) u) (CHead e0 (Flat f) u2)))))) (\lambda (f: F).(\lambda 
+(e0: C).(\lambda (u1: T).(\lambda (_: T).(drop (S i) (S i) (CHead c3 (Bind b) 
+u) (CHead e0 (Flat f) u1)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u1: 
+T).(\lambda (u2: T).(subst0 (S i) v0 u1 u2)))))) (ex3_4 F C C T (\lambda (f: 
+F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u0: T).(eq C (CHead c4 (Bind b) 
+u) (CHead e2 (Flat f) u0)))))) (\lambda (f: F).(\lambda (e1: C).(\lambda (_: 
+C).(\lambda (u0: T).(drop (S i) (S i) (CHead c3 (Bind b) u) (CHead e1 (Flat 
+f) u0)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: 
+T).(csubst0 (S i) v0 e1 e2)))))) (ex4_5 F C C T T (\lambda (f: F).(\lambda 
+(_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (u2: T).(eq C (CHead c4 
+(Bind b) u) (CHead e2 (Flat f) u2))))))) (\lambda (f: F).(\lambda (e1: 
+C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(drop (S i) (S i) (CHead 
+c3 (Bind b) u) (CHead e1 (Flat f) u1))))))) (\lambda (_: F).(\lambda (_: 
+C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 (S i) v0 u1 
+u2)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: 
+T).(\lambda (_: T).(csubst0 (S i) v0 e1 e2)))))))) H5))))))))))) (\lambda (f: 
+F).(\lambda (i: nat).(\lambda (c3: C).(\lambda (c4: C).(\lambda (v0: 
+T).(\lambda (H2: (csubst0 i v0 c3 c4)).(\lambda (H3: (((eq nat i O) \to (or4 
+(drop i i c3 c4) (ex3_4 F C T T (\lambda (f0: F).(\lambda (e0: C).(\lambda 
+(_: T).(\lambda (u2: T).(eq C c4 (CHead e0 (Flat f0) u2)))))) (\lambda (f0: 
+F).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: T).(drop i i c3 (CHead e0 
+(Flat f0) u1)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u1: T).(\lambda 
+(u2: T).(subst0 i v0 u1 u2)))))) (ex3_4 F C C T (\lambda (f0: F).(\lambda (_: 
+C).(\lambda (e2: C).(\lambda (u: T).(eq C c4 (CHead e2 (Flat f0) u)))))) 
+(\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(drop i i 
+c3 (CHead e1 (Flat f0) u)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: 
+C).(\lambda (_: T).(csubst0 i v0 e1 e2)))))) (ex4_5 F C C T T (\lambda (f0: 
+F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (u2: T).(eq C c4 
+(CHead e2 (Flat f0) u2))))))) (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: 
 C).(\lambda (u1: T).(\lambda (_: T).(drop i i c3 (CHead e1 (Flat f0) 
 u1))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: 
 T).(\lambda (u2: T).(subst0 i v0 u1 u2)))))) (\lambda (_: F).(\lambda (e1: 
@@ -4588,57 +4569,57 @@ C).(\lambda (_: T).(\lambda (u4: T).(eq C c4 (CHead e2 (Flat f) u4)))))))
 C).(\lambda (_: C).(\lambda (u3: T).(\lambda (u4: T).(subst0 i v0 u3 u4)))))) 
 (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
 (_: T).(csubst0 i v0 e1 e2))))))))))).(\lambda (H5: (eq nat (S i) O)).(let H6 
-\def (eq_ind nat (S i) (\lambda (ee: nat).(match ee in nat return (\lambda 
-(_: nat).Prop) with [O \Rightarrow False | (S _) \Rightarrow True])) I O H5
-in (False_ind (or4 (drop (S i) (S i) (CHead c3 (Bind b) u1) (CHead c4 (Bind 
-b) u2)) (ex3_4 F C T T (\lambda (f: F).(\lambda (e0: C).(\lambda (_: 
-T).(\lambda (u4: T).(eq C (CHead c4 (Bind b) u2) (CHead e0 (Flat f) u4)))))) 
-(\lambda (f: F).(\lambda (e0: C).(\lambda (u3: T).(\lambda (_: T).(drop (S i) 
-(S i) (CHead c3 (Bind b) u1) (CHead e0 (Flat f) u3)))))) (\lambda (_: 
-F).(\lambda (_: C).(\lambda (u3: T).(\lambda (u4: T).(subst0 (S i) v0 u3 
-u4)))))) (ex3_4 F C C T (\lambda (f: F).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (u: T).(eq C (CHead c4 (Bind b) u2) (CHead e2 (Flat f) u)))))) 
-(\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(drop (S i
-(S i) (CHead c3 (Bind b) u1) (CHead e1 (Flat f) u)))))) (\lambda (_: 
-F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 (S i) v0 e1 
-e2)))))) (ex4_5 F C C T T (\lambda (f: F).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (_: T).(\lambda (u4: T).(eq C (CHead c4 (Bind b) u2) (CHead e2 
-(Flat f) u4))))))) (\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda 
-(u3: T).(\lambda (_: T).(drop (S i) (S i) (CHead c3 (Bind b) u1) (CHead e1 
-(Flat f) u3))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda 
-(u3: T).(\lambda (u4: T).(subst0 (S i) v0 u3 u4)))))) (\lambda (_: 
-F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 
-(S i) v0 e1 e2)))))))) H6))))))))))))) (\lambda (f: F).(\lambda (i
-nat).(\lambda (v0: T).(\lambda (u1: T).(\lambda (u2: T).(\lambda (H2: (subst0 
-i v0 u1 u2)).(\lambda (c3: C).(\lambda (c4: C).(\lambda (H3: (csubst0 i v0 c3 
-c4)).(\lambda (H4: (((eq nat i O) \to (or4 (drop i i c3 c4) (ex3_4 F C T T 
-(\lambda (f0: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u4: T).(eq C c4 
-(CHead e0 (Flat f0) u4)))))) (\lambda (f0: F).(\lambda (e0: C).(\lambda (u3: 
-T).(\lambda (_: T).(drop i i c3 (CHead e0 (Flat f0) u3)))))) (\lambda (_: 
-F).(\lambda (_: C).(\lambda (u3: T).(\lambda (u4: T).(subst0 i v0 u3 u4)))))) 
-(ex3_4 F C C T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u
-T).(eq C c4 (CHead e2 (Flat f0) u)))))) (\lambda (f0: F).(\lambda (e1: 
-C).(\lambda (_: C).(\lambda (u: T).(drop i i c3 (CHead e1 (Flat f0) u)))))) 
-(\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 i 
-v0 e1 e2)))))) (ex4_5 F C C T T (\lambda (f0: F).(\lambda (_: C).(\lambda 
-(e2: C).(\lambda (_: T).(\lambda (u4: T).(eq C c4 (CHead e2 (Flat f0) 
-u4))))))) (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u3: 
-T).(\lambda (_: T).(drop i i c3 (CHead e1 (Flat f0) u3))))))) (\lambda (_
-F).(\lambda (_: C).(\lambda (_: C).(\lambda (u3: T).(\lambda (u4: T).(subst0 
-i v0 u3 u4)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda 
-(_: T).(\lambda (_: T).(csubst0 i v0 e1 e2))))))))))).(\lambda (H5: (eq nat i 
-O)).(let H6 \def (eq_ind nat i (\lambda (n0: nat).((eq nat n0 O) \to (or4 
-(drop n0 n0 c3 c4) (ex3_4 F C T T (\lambda (f0: F).(\lambda (e0: C).(\lambda 
-(_: T).(\lambda (u4: T).(eq C c4 (CHead e0 (Flat f0) u4)))))) (\lambda (f0
-F).(\lambda (e0: C).(\lambda (u3: T).(\lambda (_: T).(drop n0 n0 c3 (CHead e0 
-(Flat f0) u3)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u3: T).(\lambda 
-(u4: T).(subst0 n0 v0 u3 u4)))))) (ex3_4 F C C T (\lambda (f0: F).(\lambda 
-(_: C).(\lambda (e2: C).(\lambda (u: T).(eq C c4 (CHead e2 (Flat f0) u)))))) 
-(\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(drop n0 n0 
-c3 (CHead e1 (Flat f0) u)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: 
-C).(\lambda (_: T).(csubst0 n0 v0 e1 e2)))))) (ex4_5 F C C T T (\lambda (f0: 
-F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (u4: T).(eq C c4 
-(CHead e2 (Flat f0) u4))))))) (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: 
+\def (eq_ind nat (S i) (\lambda (ee: nat).(match ee with [O \Rightarrow False 
+| (S _) \Rightarrow True])) I O H5) in (False_ind (or4 (drop (S i) (S i
+(CHead c3 (Bind b) u1) (CHead c4 (Bind b) u2)) (ex3_4 F C T T (\lambda (f: 
+F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u4: T).(eq C (CHead c4 (Bind b) 
+u2) (CHead e0 (Flat f) u4)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda 
+(u3: T).(\lambda (_: T).(drop (S i) (S i) (CHead c3 (Bind b) u1) (CHead e0 
+(Flat f) u3)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u3: T).(\lambda 
+(u4: T).(subst0 (S i) v0 u3 u4)))))) (ex3_4 F C C T (\lambda (f: F).(\lambda 
+(_: C).(\lambda (e2: C).(\lambda (u: T).(eq C (CHead c4 (Bind b) u2) (CHead 
+e2 (Flat f) u)))))) (\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda 
+(u: T).(drop (S i) (S i) (CHead c3 (Bind b) u1) (CHead e1 (Flat f) u)))))
+(\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 (S 
+i) v0 e1 e2)))))) (ex4_5 F C C T T (\lambda (f: F).(\lambda (_: C).(\lambda 
+(e2: C).(\lambda (_: T).(\lambda (u4: T).(eq C (CHead c4 (Bind b) u2) (CHead 
+e2 (Flat f) u4))))))) (\lambda (f: F).(\lambda (e1: C).(\lambda (_: 
+C).(\lambda (u3: T).(\lambda (_: T).(drop (S i) (S i) (CHead c3 (Bind b) u1) 
+(CHead e1 (Flat f) u3))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: 
+C).(\lambda (u3: T).(\lambda (u4: T).(subst0 (S i) v0 u3 u4)))))) (\lambda 
+(_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: 
+T).(csubst0 (S i) v0 e1 e2)))))))) H6))))))))))))) (\lambda (f: F).(\lambda 
+(i: nat).(\lambda (v0: T).(\lambda (u1: T).(\lambda (u2: T).(\lambda (H2
+(subst0 i v0 u1 u2)).(\lambda (c3: C).(\lambda (c4: C).(\lambda (H3: (csubst0 
+i v0 c3 c4)).(\lambda (H4: (((eq nat i O) \to (or4 (drop i i c3 c4) (ex3_4 F 
+C T T (\lambda (f0: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u4: T).(eq 
+C c4 (CHead e0 (Flat f0) u4)))))) (\lambda (f0: F).(\lambda (e0: C).(\lambda 
+(u3: T).(\lambda (_: T).(drop i i c3 (CHead e0 (Flat f0) u3)))))) (\lambda 
+(_: F).(\lambda (_: C).(\lambda (u3: T).(\lambda (u4: T).(subst0 i v0 u3 
+u4)))))) (ex3_4 F C C T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: 
+C).(\lambda (u: T).(eq C c4 (CHead e2 (Flat f0) u)))))) (\lambda (f0
+F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(drop i i c3 (CHead e1 
+(Flat f0) u)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda 
+(_: T).(csubst0 i v0 e1 e2)))))) (ex4_5 F C C T T (\lambda (f0: F).(\lambda 
+(_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (u4: T).(eq C c4 (CHead e2 
+(Flat f0) u4))))))) (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: 
+C).(\lambda (u3: T).(\lambda (_: T).(drop i i c3 (CHead e1 (Flat f0) 
+u3))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u3
+T).(\lambda (u4: T).(subst0 i v0 u3 u4)))))) (\lambda (_: F).(\lambda (e1: 
+C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 i v0 e1 
+e2))))))))))).(\lambda (H5: (eq nat i O)).(let H6 \def (eq_ind nat i (\lambda 
+(n0: nat).((eq nat n0 O) \to (or4 (drop n0 n0 c3 c4) (ex3_4 F C T T (\lambda 
+(f0: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u4: T).(eq C c4 (CHead e0 
+(Flat f0) u4)))))) (\lambda (f0: F).(\lambda (e0: C).(\lambda (u3
+T).(\lambda (_: T).(drop n0 n0 c3 (CHead e0 (Flat f0) u3)))))) (\lambda (_: 
+F).(\lambda (_: C).(\lambda (u3: T).(\lambda (u4: T).(subst0 n0 v0 u3 
+u4)))))) (ex3_4 F C C T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: 
+C).(\lambda (u: T).(eq C c4 (CHead e2 (Flat f0) u)))))) (\lambda (f0: 
+F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(drop n0 n0 c3 (CHead e1 
+(Flat f0) u)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda 
+(_: T).(csubst0 n0 v0 e1 e2)))))) (ex4_5 F C C T T (\lambda (f0: F).(\lambda 
+(_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (u4: T).(eq C c4 (CHead e2 
+(Flat f0) u4))))))) (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: 
 C).(\lambda (u3: T).(\lambda (_: T).(drop n0 n0 c3 (CHead e1 (Flat f0) 
 u3))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u3: 
 T).(\lambda (u4: T).(subst0 n0 v0 u3 u4)))))) (\lambda (_: F).(\lambda (e1: 
@@ -4762,15 +4743,16 @@ T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (\lambda (_: F).(\lambda (e1:
 C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 
 e2))))))))))))))).(\lambda (k: K).(\lambda (t: T).(\lambda (c2: C).(\lambda 
 (v: T).(\lambda (H0: (csubst0 (S n0) v (CHead c k t) c2)).(\lambda (e: 
-C).(\lambda (H1: (drop (S n0) O c2 e)).(or3_ind (ex3_2 T nat (\lambda (_: 
-T).(\lambda (j: nat).(eq nat (S n0) (s k j)))) (\lambda (u2: T).(\lambda (_: 
-nat).(eq C c2 (CHead c k u2)))) (\lambda (u2: T).(\lambda (j: nat).(subst0 j 
-v t u2)))) (ex3_2 C nat (\lambda (_: C).(\lambda (j: nat).(eq nat (S n0) (s k 
-j)))) (\lambda (c3: C).(\lambda (_: nat).(eq C c2 (CHead c3 k t)))) (\lambda 
-(c3: C).(\lambda (j: nat).(csubst0 j v c c3)))) (ex4_3 T C nat (\lambda (_: 
-T).(\lambda (_: C).(\lambda (j: nat).(eq nat (S n0) (s k j))))) (\lambda (u2: 
-T).(\lambda (c3: C).(\lambda (_: nat).(eq C c2 (CHead c3 k u2))))) (\lambda 
-(u2: T).(\lambda (_: C).(\lambda (j: nat).(subst0 j v t u2)))) (\lambda (_: 
+C).(\lambda (H1: (drop (S n0) O c2 e)).(let H2 \def (csubst0_gen_head k c c2 
+t v (S n0) H0) in (or3_ind (ex3_2 T nat (\lambda (_: T).(\lambda (j: nat).(eq 
+nat (S n0) (s k j)))) (\lambda (u2: T).(\lambda (_: nat).(eq C c2 (CHead c k 
+u2)))) (\lambda (u2: T).(\lambda (j: nat).(subst0 j v t u2)))) (ex3_2 C nat 
+(\lambda (_: C).(\lambda (j: nat).(eq nat (S n0) (s k j)))) (\lambda (c3: 
+C).(\lambda (_: nat).(eq C c2 (CHead c3 k t)))) (\lambda (c3: C).(\lambda (j: 
+nat).(csubst0 j v c c3)))) (ex4_3 T C nat (\lambda (_: T).(\lambda (_: 
+C).(\lambda (j: nat).(eq nat (S n0) (s k j))))) (\lambda (u2: T).(\lambda 
+(c3: C).(\lambda (_: nat).(eq C c2 (CHead c3 k u2))))) (\lambda (u2: 
+T).(\lambda (_: C).(\lambda (j: nat).(subst0 j v t u2)))) (\lambda (_: 
 T).(\lambda (c3: C).(\lambda (j: nat).(csubst0 j v c c3))))) (or4 (drop (S 
 n0) O (CHead c k t) e) (ex3_4 F C T T (\lambda (f: F).(\lambda (e0: 
 C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e0 (Flat f) u2)))))) 
@@ -4787,7 +4769,7 @@ C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e2 (Flat f) u2)))))))
 (_: T).(drop (S n0) O (CHead c k t) (CHead e1 (Flat f) u1))))))) (\lambda (_: 
 F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 
 O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda 
-(_: T).(\lambda (_: T).(csubst0 O v e1 e2)))))))) (\lambda (H2: (ex3_2 T nat 
+(_: T).(\lambda (_: T).(csubst0 O v e1 e2)))))))) (\lambda (H3: (ex3_2 T nat 
 (\lambda (_: T).(\lambda (j: nat).(eq nat (S n0) (s k j)))) (\lambda (u2: 
 T).(\lambda (_: nat).(eq C c2 (CHead c k u2)))) (\lambda (u2: T).(\lambda (j: 
 nat).(subst0 j v t u2))))).(ex3_2_ind T nat (\lambda (_: T).(\lambda (j: 
@@ -4809,9 +4791,9 @@ C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e2 (Flat f) u2)))))))
 F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 
 O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda 
 (_: T).(\lambda (_: T).(csubst0 O v e1 e2)))))))) (\lambda (x0: T).(\lambda 
-(x1: nat).(\lambda (H3: (eq nat (S n0) (s k x1))).(\lambda (H4: (eq C c2 
-(CHead c k x0))).(\lambda (H5: (subst0 x1 v t x0)).(let H6 \def (eq_ind C c2 
-(\lambda (c0: C).(drop (S n0) O c0 e)) H1 (CHead c k x0) H4) in (K_ind 
+(x1: nat).(\lambda (H4: (eq nat (S n0) (s k x1))).(\lambda (H5: (eq C c2 
+(CHead c k x0))).(\lambda (H6: (subst0 x1 v t x0)).(let H7 \def (eq_ind C c2 
+(\lambda (c0: C).(drop (S n0) O c0 e)) H1 (CHead c k x0) H5) in (K_ind 
 (\lambda (k0: K).((eq nat (S n0) (s k0 x1)) \to ((drop (r k0 n0) O c e) \to 
 (or4 (drop (S n0) O (CHead c k0 t) e) (ex3_4 F C T T (\lambda (f: F).(\lambda 
 (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e0 (Flat f) u2)))))) 
@@ -4829,159 +4811,158 @@ C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e2 (Flat f) u2)))))))
 (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: 
 T).(subst0 O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: 
 C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 e2))))))))))) (\lambda (b: 
-B).(\lambda (H7: (eq nat (S n0) (s (Bind b) x1))).(\lambda (H8: (drop (r 
-(Bind b) n0) O c e)).(let H9 \def (f_equal nat nat (\lambda (e0: nat).(match 
-e0 in nat return (\lambda (_: nat).nat) with [O \Rightarrow n0 | (S n1) 
-\Rightarrow n1])) (S n0) (S x1) H7) in (let H10 \def (eq_ind_r nat x1 
-(\lambda (n1: nat).(subst0 n1 v t x0)) H5 n0 H9) in (or4_intro0 (drop (S n0) 
-O (CHead c (Bind b) t) e) (ex3_4 F C T T (\lambda (f: F).(\lambda (e0: 
-C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e0 (Flat f) u2)))))) 
-(\lambda (f: F).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: T).(drop (S 
-n0) O (CHead c (Bind b) t) (CHead e0 (Flat f) u1)))))) (\lambda (_: 
+B).(\lambda (H8: (eq nat (S n0) (s (Bind b) x1))).(\lambda (H9: (drop (r 
+(Bind b) n0) O c e)).(let H10 \def (f_equal nat nat (\lambda (e0: nat).(match 
+e0 with [O \Rightarrow n0 | (S n1) \Rightarrow n1])) (S n0) (S x1) H8) in 
+(let H11 \def (eq_ind_r nat x1 (\lambda (n1: nat).(subst0 n1 v t x0)) H6 n0 
+H10) in (or4_intro0 (drop (S n0) O (CHead c (Bind b) t) e) (ex3_4 F C T T 
+(\lambda (f: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C e 
+(CHead e0 (Flat f) u2)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (u1: 
+T).(\lambda (_: T).(drop (S n0) O (CHead c (Bind b) t) (CHead e0 (Flat f) 
+u1)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: 
+T).(subst0 O v u1 u2)))))) (ex3_4 F C C T (\lambda (f: F).(\lambda (_: 
+C).(\lambda (e2: C).(\lambda (u: T).(eq C e (CHead e2 (Flat f) u)))))) 
+(\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(drop (S n0) 
+O (CHead c (Bind b) t) (CHead e1 (Flat f) u)))))) (\lambda (_: F).(\lambda 
+(e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2)))))) (ex4_5 F C 
+C T T (\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: 
+T).(\lambda (u2: T).(eq C e (CHead e2 (Flat f) u2))))))) (\lambda (f: 
+F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(drop (S 
+n0) O (CHead c (Bind b) t) (CHead e1 (Flat f) u1))))))) (\lambda (_: 
+F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 
+O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda 
+(_: T).(\lambda (_: T).(csubst0 O v e1 e2))))))) (drop_drop (Bind b) n0 c e 
+H9 t))))))) (\lambda (f: F).(\lambda (H8: (eq nat (S n0) (s (Flat f) 
+x1))).(\lambda (H9: (drop (r (Flat f) n0) O c e)).(let H10 \def (f_equal nat 
+nat (\lambda (e0: nat).e0) (S n0) (s (Flat f) x1) H8) in (let H11 \def 
+(eq_ind_r nat x1 (\lambda (n1: nat).(subst0 n1 v t x0)) H6 (S n0) H10) in 
+(or4_intro0 (drop (S n0) O (CHead c (Flat f) t) e) (ex3_4 F C T T (\lambda 
+(f0: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e0 
+(Flat f0) u2)))))) (\lambda (f0: F).(\lambda (e0: C).(\lambda (u1: 
+T).(\lambda (_: T).(drop (S n0) O (CHead c (Flat f) t) (CHead e0 (Flat f0) 
+u1)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: 
+T).(subst0 O v u1 u2)))))) (ex3_4 F C C T (\lambda (f0: F).(\lambda (_: 
+C).(\lambda (e2: C).(\lambda (u: T).(eq C e (CHead e2 (Flat f0) u)))))) 
+(\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(drop (S 
+n0) O (CHead c (Flat f) t) (CHead e1 (Flat f0) u)))))) (\lambda (_: 
+F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2)))))) 
+(ex4_5 F C C T T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: C).(\lambda 
+(_: T).(\lambda (u2: T).(eq C e (CHead e2 (Flat f0) u2))))))) (\lambda (f0: 
+F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(drop (S 
+n0) O (CHead c (Flat f) t) (CHead e1 (Flat f0) u1))))))) (\lambda (_: 
+F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 
+O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda 
+(_: T).(\lambda (_: T).(csubst0 O v e1 e2))))))) (drop_drop (Flat f) n0 c e 
+H9 t))))))) k H4 (drop_gen_drop k c e x0 n0 H7)))))))) H3)) (\lambda (H3: 
+(ex3_2 C nat (\lambda (_: C).(\lambda (j: nat).(eq nat (S n0) (s k j)))) 
+(\lambda (c3: C).(\lambda (_: nat).(eq C c2 (CHead c3 k t)))) (\lambda (c3: 
+C).(\lambda (j: nat).(csubst0 j v c c3))))).(ex3_2_ind C nat (\lambda (_: 
+C).(\lambda (j: nat).(eq nat (S n0) (s k j)))) (\lambda (c3: C).(\lambda (_: 
+nat).(eq C c2 (CHead c3 k t)))) (\lambda (c3: C).(\lambda (j: nat).(csubst0 j 
+v c c3))) (or4 (drop (S n0) O (CHead c k t) e) (ex3_4 F C T T (\lambda (f: 
+F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e0 (Flat 
+f) u2)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: 
+T).(drop (S n0) O (CHead c k t) (CHead e0 (Flat f) u1)))))) (\lambda (_: 
 F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) 
 (ex3_4 F C C T (\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: 
 T).(eq C e (CHead e2 (Flat f) u)))))) (\lambda (f: F).(\lambda (e1: 
-C).(\lambda (_: C).(\lambda (u: T).(drop (S n0) O (CHead c (Bind b) t) (CHead 
-e1 (Flat f) u)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: 
-C).(\lambda (_: T).(csubst0 O v e1 e2)))))) (ex4_5 F C C T T (\lambda (f: 
-F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (u2: T).(eq C e 
-(CHead e2 (Flat f) u2))))))) (\lambda (f: F).(\lambda (e1: C).(\lambda (_: 
-C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O (CHead c (Bind b) t) 
-(CHead e1 (Flat f) u1))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: 
-C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (\lambda (_: 
-F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 
-O v e1 e2))))))) (drop_drop (Bind b) n0 c e H8 t))))))) (\lambda (f: 
-F).(\lambda (H7: (eq nat (S n0) (s (Flat f) x1))).(\lambda (H8: (drop (r 
-(Flat f) n0) O c e)).(let H9 \def (f_equal nat nat (\lambda (e0: nat).e0) (S 
-n0) x1 H7) in (let H10 \def (eq_ind_r nat x1 (\lambda (n1: nat).(subst0 n1 v 
-t x0)) H5 (S n0) H9) in (or4_intro0 (drop (S n0) O (CHead c (Flat f) t) e) 
-(ex3_4 F C T T (\lambda (f0: F).(\lambda (e0: C).(\lambda (_: T).(\lambda 
-(u2: T).(eq C e (CHead e0 (Flat f0) u2)))))) (\lambda (f0: F).(\lambda (e0: 
-C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O (CHead c (Flat f) t) 
-(CHead e0 (Flat f0) u1)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u1: 
-T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (ex3_4 F C C T (\lambda (f0: 
-F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(eq C e (CHead e2 (Flat 
-f0) u)))))) (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: 
-T).(drop (S n0) O (CHead c (Flat f) t) (CHead e1 (Flat f0) u)))))) (\lambda 
-(_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 
-e2)))))) (ex4_5 F C C T T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e2 (Flat f0) u2))))))) 
-(\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda 
-(_: T).(drop (S n0) O (CHead c (Flat f) t) (CHead e1 (Flat f0) u1))))))) 
+C).(\lambda (_: C).(\lambda (u: T).(drop (S n0) O (CHead c k t) (CHead e1 
+(Flat f) u)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda 
+(_: T).(csubst0 O v e1 e2)))))) (ex4_5 F C C T T (\lambda (f: F).(\lambda (_: 
+C).(\lambda (e2: C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e2 (Flat 
+f) u2))))))) (\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: 
+T).(\lambda (_: T).(drop (S n0) O (CHead c k t) (CHead e1 (Flat f) u1))))))) 
 (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda 
 (u2: T).(subst0 O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda 
-(e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 e2))))))) (drop_drop 
-(Flat f) n0 c e H8 t))))))) k H3 (drop_gen_drop k c e x0 n0 H6)))))))) H2)) 
-(\lambda (H2: (ex3_2 C nat (\lambda (_: C).(\lambda (j: nat).(eq nat (S n0) 
-(s k j)))) (\lambda (c3: C).(\lambda (_: nat).(eq C c2 (CHead c3 k t)))) 
-(\lambda (c3: C).(\lambda (j: nat).(csubst0 j v c c3))))).(ex3_2_ind C nat 
-(\lambda (_: C).(\lambda (j: nat).(eq nat (S n0) (s k j)))) (\lambda (c3: 
-C).(\lambda (_: nat).(eq C c2 (CHead c3 k t)))) (\lambda (c3: C).(\lambda (j: 
-nat).(csubst0 j v c c3))) (or4 (drop (S n0) O (CHead c k t) e) (ex3_4 F C T T 
-(\lambda (f: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C e 
-(CHead e0 (Flat f) u2)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (u1: 
-T).(\lambda (_: T).(drop (S n0) O (CHead c k t) (CHead e0 (Flat f) u1)))))) 
+(e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 e2)))))))) (\lambda 
+(x0: C).(\lambda (x1: nat).(\lambda (H4: (eq nat (S n0) (s k x1))).(\lambda 
+(H5: (eq C c2 (CHead x0 k t))).(\lambda (H6: (csubst0 x1 v c x0)).(let H7 
+\def (eq_ind C c2 (\lambda (c0: C).(drop (S n0) O c0 e)) H1 (CHead x0 k t) 
+H5) in (K_ind (\lambda (k0: K).((eq nat (S n0) (s k0 x1)) \to ((drop (r k0 
+n0) O x0 e) \to (or4 (drop (S n0) O (CHead c k0 t) e) (ex3_4 F C T T (\lambda 
+(f: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e0 
+(Flat f) u2)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (u1: T).(\lambda 
+(_: T).(drop (S n0) O (CHead c k0 t) (CHead e0 (Flat f) u1)))))) (\lambda (_: 
+F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) 
+(ex3_4 F C C T (\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: 
+T).(eq C e (CHead e2 (Flat f) u)))))) (\lambda (f: F).(\lambda (e1: 
+C).(\lambda (_: C).(\lambda (u: T).(drop (S n0) O (CHead c k0 t) (CHead e1 
+(Flat f) u)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda 
+(_: T).(csubst0 O v e1 e2)))))) (ex4_5 F C C T T (\lambda (f: F).(\lambda (_: 
+C).(\lambda (e2: C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e2 (Flat 
+f) u2))))))) (\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: 
+T).(\lambda (_: T).(drop (S n0) O (CHead c k0 t) (CHead e1 (Flat f) u1))))))) 
+(\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda 
+(u2: T).(subst0 O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda 
+(e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 e2))))))))))) 
+(\lambda (b: B).(\lambda (H8: (eq nat (S n0) (s (Bind b) x1))).(\lambda (H9: 
+(drop (r (Bind b) n0) O x0 e)).(let H10 \def (f_equal nat nat (\lambda (e0: 
+nat).(match e0 with [O \Rightarrow n0 | (S n1) \Rightarrow n1])) (S n0) (S 
+x1) H8) in (let H11 \def (eq_ind_r nat x1 (\lambda (n1: nat).(csubst0 n1 v c 
+x0)) H6 n0 H10) in (let H12 \def (IHn c x0 v H11 e H9) in (or4_ind (drop n0 O 
+c e) (ex3_4 F C T T (\lambda (f: F).(\lambda (e0: C).(\lambda (_: T).(\lambda 
+(u2: T).(eq C e (CHead e0 (Flat f) u2)))))) (\lambda (f: F).(\lambda (e0: 
+C).(\lambda (u1: T).(\lambda (_: T).(drop n0 O c (CHead e0 (Flat f) u1)))))) 
 (\lambda (_: F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v 
 u1 u2)))))) (ex3_4 F C C T (\lambda (f: F).(\lambda (_: C).(\lambda (e2: 
 C).(\lambda (u: T).(eq C e (CHead e2 (Flat f) u)))))) (\lambda (f: 
-F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(drop (S n0) O (CHead c k 
-t) (CHead e1 (Flat f) u)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: 
-C).(\lambda (_: T).(csubst0 O v e1 e2)))))) (ex4_5 F C C T T (\lambda (f: 
-F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (u2: T).(eq C e 
-(CHead e2 (Flat f) u2))))))) (\lambda (f: F).(\lambda (e1: C).(\lambda (_: 
-C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O (CHead c k t) (CHead e1 
-(Flat f) u1))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda 
-(u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (\lambda (_: F).(\lambda 
-(e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 
-e2)))))))) (\lambda (x0: C).(\lambda (x1: nat).(\lambda (H3: (eq nat (S n0) 
-(s k x1))).(\lambda (H4: (eq C c2 (CHead x0 k t))).(\lambda (H5: (csubst0 x1 
-v c x0)).(let H6 \def (eq_ind C c2 (\lambda (c0: C).(drop (S n0) O c0 e)) H1 
-(CHead x0 k t) H4) in (K_ind (\lambda (k0: K).((eq nat (S n0) (s k0 x1)) \to 
-((drop (r k0 n0) O x0 e) \to (or4 (drop (S n0) O (CHead c k0 t) e) (ex3_4 F C 
+F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(drop n0 O c (CHead e1 
+(Flat f) u)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda 
+(_: T).(csubst0 O v e1 e2)))))) (ex4_5 F C C T T (\lambda (f: F).(\lambda (_: 
+C).(\lambda (e2: C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e2 (Flat 
+f) u2))))))) (\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: 
+T).(\lambda (_: T).(drop n0 O c (CHead e1 (Flat f) u1))))))) (\lambda (_: 
+F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 
+O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda 
+(_: T).(\lambda (_: T).(csubst0 O v e1 e2))))))) (or4 (drop (S n0) O (CHead c 
+(Bind b) t) e) (ex3_4 F C T T (\lambda (f: F).(\lambda (e0: C).(\lambda (_: 
+T).(\lambda (u2: T).(eq C e (CHead e0 (Flat f) u2)))))) (\lambda (f: 
+F).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O (CHead c 
+(Bind b) t) (CHead e0 (Flat f) u1)))))) (\lambda (_: F).(\lambda (_: 
+C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (ex3_4 F C C T 
+(\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(eq C e 
+(CHead e2 (Flat f) u)))))) (\lambda (f: F).(\lambda (e1: C).(\lambda (_: 
+C).(\lambda (u: T).(drop (S n0) O (CHead c (Bind b) t) (CHead e1 (Flat f) 
+u)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: 
+T).(csubst0 O v e1 e2)))))) (ex4_5 F C C T T (\lambda (f: F).(\lambda (_: 
+C).(\lambda (e2: C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e2 (Flat 
+f) u2))))))) (\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: 
+T).(\lambda (_: T).(drop (S n0) O (CHead c (Bind b) t) (CHead e1 (Flat f) 
+u1))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: 
+T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: 
+C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 
+e2)))))))) (\lambda (H13: (drop n0 O c e)).(or4_intro0 (drop (S n0) O (CHead 
+c (Bind b) t) e) (ex3_4 F C T T (\lambda (f: F).(\lambda (e0: C).(\lambda (_: 
+T).(\lambda (u2: T).(eq C e (CHead e0 (Flat f) u2)))))) (\lambda (f: 
+F).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O (CHead c 
+(Bind b) t) (CHead e0 (Flat f) u1)))))) (\lambda (_: F).(\lambda (_: 
+C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (ex3_4 F C C T 
+(\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(eq C e 
+(CHead e2 (Flat f) u)))))) (\lambda (f: F).(\lambda (e1: C).(\lambda (_: 
+C).(\lambda (u: T).(drop (S n0) O (CHead c (Bind b) t) (CHead e1 (Flat f) 
+u)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: 
+T).(csubst0 O v e1 e2)))))) (ex4_5 F C C T T (\lambda (f: F).(\lambda (_: 
+C).(\lambda (e2: C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e2 (Flat 
+f) u2))))))) (\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: 
+T).(\lambda (_: T).(drop (S n0) O (CHead c (Bind b) t) (CHead e1 (Flat f) 
+u1))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: 
+T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: 
+C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 e2))))))) 
+(drop_drop (Bind b) n0 c e H13 t))) (\lambda (H13: (ex3_4 F C T T (\lambda 
+(f: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e0 
+(Flat f) u2)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (u1: T).(\lambda 
+(_: T).(drop n0 O c (CHead e0 (Flat f) u1)))))) (\lambda (_: F).(\lambda (_: 
+C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2))))))).(ex3_4_ind F C 
 T T (\lambda (f: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C e 
 (CHead e0 (Flat f) u2)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (u1: 
-T).(\lambda (_: T).(drop (S n0) O (CHead c k0 t) (CHead e0 (Flat f) u1)))))) 
-(\lambda (_: F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v 
-u1 u2)))))) (ex3_4 F C C T (\lambda (f: F).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (u: T).(eq C e (CHead e2 (Flat f) u)))))) (\lambda (f: 
-F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(drop (S n0) O (CHead c 
-k0 t) (CHead e1 (Flat f) u)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda 
-(e2: C).(\lambda (_: T).(csubst0 O v e1 e2)))))) (ex4_5 F C C T T (\lambda 
-(f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (u2: T).(eq 
-C e (CHead e2 (Flat f) u2))))))) (\lambda (f: F).(\lambda (e1: C).(\lambda 
-(_: C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O (CHead c k0 t) (CHead 
-e1 (Flat f) u1))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: 
-C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (\lambda (_: 
-F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 
-O v e1 e2))))))))))) (\lambda (b: B).(\lambda (H7: (eq nat (S n0) (s (Bind b) 
-x1))).(\lambda (H8: (drop (r (Bind b) n0) O x0 e)).(let H9 \def (f_equal nat 
-nat (\lambda (e0: nat).(match e0 in nat return (\lambda (_: nat).nat) with [O 
-\Rightarrow n0 | (S n1) \Rightarrow n1])) (S n0) (S x1) H7) in (let H10 \def 
-(eq_ind_r nat x1 (\lambda (n1: nat).(csubst0 n1 v c x0)) H5 n0 H9) in (let 
-H11 \def (IHn c x0 v H10 e H8) in (or4_ind (drop n0 O c e) (ex3_4 F C T T 
-(\lambda (f: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C e 
-(CHead e0 (Flat f) u2)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (u1: 
-T).(\lambda (_: T).(drop n0 O c (CHead e0 (Flat f) u1)))))) (\lambda (_: 
-F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) 
-(ex3_4 F C C T (\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: 
-T).(eq C e (CHead e2 (Flat f) u)))))) (\lambda (f: F).(\lambda (e1: 
-C).(\lambda (_: C).(\lambda (u: T).(drop n0 O c (CHead e1 (Flat f) u)))))) 
-(\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O 
-v e1 e2)))))) (ex4_5 F C C T T (\lambda (f: F).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e2 (Flat f) u2))))))) 
-(\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda 
-(_: T).(drop n0 O c (CHead e1 (Flat f) u1))))))) (\lambda (_: F).(\lambda (_: 
-C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) 
-(\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
-(_: T).(csubst0 O v e1 e2))))))) (or4 (drop (S n0) O (CHead c (Bind b) t) e) 
-(ex3_4 F C T T (\lambda (f: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: 
-T).(eq C e (CHead e0 (Flat f) u2)))))) (\lambda (f: F).(\lambda (e0: 
-C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O (CHead c (Bind b) t) 
-(CHead e0 (Flat f) u1)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u1: 
-T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (ex3_4 F C C T (\lambda (f: 
-F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(eq C e (CHead e2 (Flat 
-f) u)))))) (\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: 
-T).(drop (S n0) O (CHead c (Bind b) t) (CHead e1 (Flat f) u)))))) (\lambda 
-(_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 
-e2)))))) (ex4_5 F C C T T (\lambda (f: F).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e2 (Flat f) u2))))))) 
-(\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda 
-(_: T).(drop (S n0) O (CHead c (Bind b) t) (CHead e1 (Flat f) u1))))))) 
-(\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda 
-(u2: T).(subst0 O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda 
-(e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 e2)))))))) (\lambda 
-(H12: (drop n0 O c e)).(or4_intro0 (drop (S n0) O (CHead c (Bind b) t) e) 
-(ex3_4 F C T T (\lambda (f: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: 
-T).(eq C e (CHead e0 (Flat f) u2)))))) (\lambda (f: F).(\lambda (e0: 
-C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O (CHead c (Bind b) t) 
-(CHead e0 (Flat f) u1)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u1: 
-T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (ex3_4 F C C T (\lambda (f: 
-F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(eq C e (CHead e2 (Flat 
-f) u)))))) (\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: 
-T).(drop (S n0) O (CHead c (Bind b) t) (CHead e1 (Flat f) u)))))) (\lambda 
-(_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 
-e2)))))) (ex4_5 F C C T T (\lambda (f: F).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e2 (Flat f) u2))))))) 
-(\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda 
-(_: T).(drop (S n0) O (CHead c (Bind b) t) (CHead e1 (Flat f) u1))))))) 
-(\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda 
-(u2: T).(subst0 O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda 
-(e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 e2))))))) (drop_drop 
-(Bind b) n0 c e H12 t))) (\lambda (H12: (ex3_4 F C T T (\lambda (f: 
-F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e0 (Flat 
-f) u2)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: 
-T).(drop n0 O c (CHead e0 (Flat f) u1)))))) (\lambda (_: F).(\lambda (_: 
-C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2))))))).(ex3_4_ind F C 
-T T (\lambda (f: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C e 
-(CHead e0 (Flat f) u2)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (u1: 
-T).(\lambda (_: T).(drop n0 O c (CHead e0 (Flat f) u1)))))) (\lambda (_: 
-F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2))))) 
-(or4 (drop (S n0) O (CHead c (Bind b) t) e) (ex3_4 F C T T (\lambda (f: 
-F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e0 (Flat 
-f) u2)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: 
-T).(drop (S n0) O (CHead c (Bind b) t) (CHead e0 (Flat f) u1)))))) (\lambda 
-(_: F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 
-u2)))))) (ex3_4 F C C T (\lambda (f: F).(\lambda (_: C).(\lambda (e2: 
+T).(\lambda (_: T).(drop n0 O c (CHead e0 (Flat f) u1)))))) (\lambda (_: 
+F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2))))) 
+(or4 (drop (S n0) O (CHead c (Bind b) t) e) (ex3_4 F C T T (\lambda (f: 
+F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e0 (Flat 
+f) u2)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: 
+T).(drop (S n0) O (CHead c (Bind b) t) (CHead e0 (Flat f) u1)))))) (\lambda 
+(_: F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 
+u2)))))) (ex3_4 F C C T (\lambda (f: F).(\lambda (_: C).(\lambda (e2: 
 C).(\lambda (u: T).(eq C e (CHead e2 (Flat f) u)))))) (\lambda (f: 
 F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(drop (S n0) O (CHead c 
 (Bind b) t) (CHead e1 (Flat f) u)))))) (\lambda (_: F).(\lambda (e1: 
@@ -4993,41 +4974,42 @@ C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O (CHead c
 C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) 
 (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
 (_: T).(csubst0 O v e1 e2)))))))) (\lambda (x2: F).(\lambda (x3: C).(\lambda 
-(x4: T).(\lambda (x5: T).(\lambda (H13: (eq C e (CHead x3 (Flat x2) 
-x5))).(\lambda (H14: (drop n0 O c (CHead x3 (Flat x2) x4))).(\lambda (H15: 
-(subst0 O v x4 x5)).(eq_ind_r C (CHead x3 (Flat x2) x5) (\lambda (c0: C).(or4 
-(drop (S n0) O (CHead c (Bind b) t) c0) (ex3_4 F C T T (\lambda (f: 
-F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C c0 (CHead e0 (Flat 
-f) u2)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: 
-T).(drop (S n0) O (CHead c (Bind b) t) (CHead e0 (Flat f) u1)))))) (\lambda 
-(_: F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 
-u2)))))) (ex3_4 F C C T (\lambda (f: F).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (u: T).(eq C c0 (CHead e2 (Flat f) u)))))) (\lambda (f: 
-F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(drop (S n0) O (CHead c 
-(Bind b) t) (CHead e1 (Flat f) u)))))) (\lambda (_: F).(\lambda (e1: 
-C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2)))))) (ex4_5 F C C T T 
-(\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
-(u2: T).(eq C c0 (CHead e2 (Flat f) u2))))))) (\lambda (f: F).(\lambda (e1: 
-C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O (CHead c 
-(Bind b) t) (CHead e1 (Flat f) u1))))))) (\lambda (_: F).(\lambda (_: 
-C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) 
-(\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
-(_: T).(csubst0 O v e1 e2))))))))) (or4_intro1 (drop (S n0) O (CHead c (Bind 
-b) t) (CHead x3 (Flat x2) x5)) (ex3_4 F C T T (\lambda (f: F).(\lambda (e0: 
-C).(\lambda (_: T).(\lambda (u2: T).(eq C (CHead x3 (Flat x2) x5) (CHead e0 
-(Flat f) u2)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (u1: T).(\lambda 
-(_: T).(drop (S n0) O (CHead c (Bind b) t) (CHead e0 (Flat f) u1)))))) 
-(\lambda (_: F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v 
-u1 u2)))))) (ex3_4 F C C T (\lambda (f: F).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (u: T).(eq C (CHead x3 (Flat x2) x5) (CHead e2 (Flat f) u)))))) 
+(x4: T).(\lambda (x5: T).(\lambda (H14: (eq C e (CHead x3 (Flat x2) 
+x5))).(\lambda (H15: (drop n0 O c (CHead x3 (Flat x2) x4))).(\lambda (H16: 
+(subst0 O v x4 x5)).(let H17 \def (eq_ind C e (\lambda (c0: C).(drop n0 O x0 
+c0)) H9 (CHead x3 (Flat x2) x5) H14) in (eq_ind_r C (CHead x3 (Flat x2) x5) 
+(\lambda (c0: C).(or4 (drop (S n0) O (CHead c (Bind b) t) c0) (ex3_4 F C T T 
+(\lambda (f: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C c0 
+(CHead e0 (Flat f) u2)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (u1: 
+T).(\lambda (_: T).(drop (S n0) O (CHead c (Bind b) t) (CHead e0 (Flat f) 
+u1)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: 
+T).(subst0 O v u1 u2)))))) (ex3_4 F C C T (\lambda (f: F).(\lambda (_: 
+C).(\lambda (e2: C).(\lambda (u: T).(eq C c0 (CHead e2 (Flat f) u)))))) 
 (\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(drop (S n0) 
 O (CHead c (Bind b) t) (CHead e1 (Flat f) u)))))) (\lambda (_: F).(\lambda 
 (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2)))))) (ex4_5 F C 
 C T T (\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: 
-T).(\lambda (u2: T).(eq C (CHead x3 (Flat x2) x5) (CHead e2 (Flat f) 
-u2))))))) (\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: 
-T).(\lambda (_: T).(drop (S n0) O (CHead c (Bind b) t) (CHead e1 (Flat f) 
-u1))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: 
+T).(\lambda (u2: T).(eq C c0 (CHead e2 (Flat f) u2))))))) (\lambda (f: 
+F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(drop (S 
+n0) O (CHead c (Bind b) t) (CHead e1 (Flat f) u1))))))) (\lambda (_: 
+F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 
+O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda 
+(_: T).(\lambda (_: T).(csubst0 O v e1 e2))))))))) (or4_intro1 (drop (S n0) O 
+(CHead c (Bind b) t) (CHead x3 (Flat x2) x5)) (ex3_4 F C T T (\lambda (f: 
+F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C (CHead x3 (Flat 
+x2) x5) (CHead e0 (Flat f) u2)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda 
+(u1: T).(\lambda (_: T).(drop (S n0) O (CHead c (Bind b) t) (CHead e0 (Flat 
+f) u1)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: 
+T).(subst0 O v u1 u2)))))) (ex3_4 F C C T (\lambda (f: F).(\lambda (_: 
+C).(\lambda (e2: C).(\lambda (u: T).(eq C (CHead x3 (Flat x2) x5) (CHead e2 
+(Flat f) u)))))) (\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda 
+(u: T).(drop (S n0) O (CHead c (Bind b) t) (CHead e1 (Flat f) u)))))) 
+(\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O 
+v e1 e2)))))) (ex4_5 F C C T T (\lambda (f: F).(\lambda (_: C).(\lambda (e2: 
+C).(\lambda (_: T).(\lambda (u2: T).(eq C (CHead x3 (Flat x2) x5) (CHead e2 
+(Flat f) u2))))))) (\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda 
+(u1: T).(\lambda (_: T).(drop (S n0) O (CHead c (Bind b) t) (CHead e1 (Flat 
+f) u1))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: 
 T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: 
 C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 e2))))))) 
 (ex3_4_intro F C T T (\lambda (f: F).(\lambda (e0: C).(\lambda (_: 
@@ -5036,7 +5018,7 @@ T).(\lambda (u2: T).(eq C (CHead x3 (Flat x2) x5) (CHead e0 (Flat f) u2))))))
 n0) O (CHead c (Bind b) t) (CHead e0 (Flat f) u1)))))) (\lambda (_: 
 F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2))))) 
 x2 x3 x4 x5 (refl_equal C (CHead x3 (Flat x2) x5)) (drop_drop (Bind b) n0 c 
-(CHead x3 (Flat x2) x4) H14 t) H15)) e H13)))))))) H12)) (\lambda (H12
+(CHead x3 (Flat x2) x4) H15 t) H16)) e H14))))))))) H13)) (\lambda (H13
 (ex3_4 F C C T (\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: 
 T).(eq C e (CHead e2 (Flat f) u)))))) (\lambda (f: F).(\lambda (e1: 
 C).(\lambda (_: C).(\lambda (u: T).(drop n0 O c (CHead e1 (Flat f) u)))))) 
@@ -5062,83 +5044,86 @@ C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e2 (Flat f) u2)))))))
 (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda 
 (u2: T).(subst0 O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda 
 (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 e2)))))))) (\lambda 
-(x2: F).(\lambda (x3: C).(\lambda (x4: C).(\lambda (x5: T).(\lambda (H13: (eq 
-C e (CHead x4 (Flat x2) x5))).(\lambda (H14: (drop n0 O c (CHead x3 (Flat x2) 
-x5))).(\lambda (H15: (csubst0 O v x3 x4)).(eq_ind_r C (CHead x4 (Flat x2) x5) 
-(\lambda (c0: C).(or4 (drop (S n0) O (CHead c (Bind b) t) c0) (ex3_4 F C T T 
-(\lambda (f: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C c0 
+(x2: F).(\lambda (x3: C).(\lambda (x4: C).(\lambda (x5: T).(\lambda (H14: (eq 
+C e (CHead x4 (Flat x2) x5))).(\lambda (H15: (drop n0 O c (CHead x3 (Flat x2) 
+x5))).(\lambda (H16: (csubst0 O v x3 x4)).(let H17 \def (eq_ind C e (\lambda 
+(c0: C).(drop n0 O x0 c0)) H9 (CHead x4 (Flat x2) x5) H14) in (eq_ind_r C 
+(CHead x4 (Flat x2) x5) (\lambda (c0: C).(or4 (drop (S n0) O (CHead c (Bind 
+b) t) c0) (ex3_4 F C T T (\lambda (f: F).(\lambda (e0: C).(\lambda (_: 
+T).(\lambda (u2: T).(eq C c0 (CHead e0 (Flat f) u2)))))) (\lambda (f: 
+F).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O (CHead c 
+(Bind b) t) (CHead e0 (Flat f) u1)))))) (\lambda (_: F).(\lambda (_: 
+C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (ex3_4 F C C T 
+(\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(eq C c0 
+(CHead e2 (Flat f) u)))))) (\lambda (f: F).(\lambda (e1: C).(\lambda (_: 
+C).(\lambda (u: T).(drop (S n0) O (CHead c (Bind b) t) (CHead e1 (Flat f) 
+u)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: 
+T).(csubst0 O v e1 e2)))))) (ex4_5 F C C T T (\lambda (f: F).(\lambda (_: 
+C).(\lambda (e2: C).(\lambda (_: T).(\lambda (u2: T).(eq C c0 (CHead e2 (Flat 
+f) u2))))))) (\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: 
+T).(\lambda (_: T).(drop (S n0) O (CHead c (Bind b) t) (CHead e1 (Flat f) 
+u1))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: 
+T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: 
+C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 
+e2))))))))) (or4_intro2 (drop (S n0) O (CHead c (Bind b) t) (CHead x4 (Flat 
+x2) x5)) (ex3_4 F C T T (\lambda (f: F).(\lambda (e0: C).(\lambda (_: 
+T).(\lambda (u2: T).(eq C (CHead x4 (Flat x2) x5) (CHead e0 (Flat f) u2)))))) 
+(\lambda (f: F).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: T).(drop (S 
+n0) O (CHead c (Bind b) t) (CHead e0 (Flat f) u1)))))) (\lambda (_: 
+F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) 
+(ex3_4 F C C T (\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: 
+T).(eq C (CHead x4 (Flat x2) x5) (CHead e2 (Flat f) u)))))) (\lambda (f: 
+F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(drop (S n0) O (CHead c 
+(Bind b) t) (CHead e1 (Flat f) u)))))) (\lambda (_: F).(\lambda (e1: 
+C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2)))))) (ex4_5 F C C T T 
+(\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
+(u2: T).(eq C (CHead x4 (Flat x2) x5) (CHead e2 (Flat f) u2))))))) (\lambda 
+(f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: 
+T).(drop (S n0) O (CHead c (Bind b) t) (CHead e1 (Flat f) u1))))))) (\lambda 
+(_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: 
+T).(subst0 O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: 
+C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 e2))))))) (ex3_4_intro F C 
+C T (\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(eq C 
+(CHead x4 (Flat x2) x5) (CHead e2 (Flat f) u)))))) (\lambda (f: F).(\lambda 
+(e1: C).(\lambda (_: C).(\lambda (u: T).(drop (S n0) O (CHead c (Bind b) t) 
+(CHead e1 (Flat f) u)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: 
+C).(\lambda (_: T).(csubst0 O v e1 e2))))) x2 x3 x4 x5 (refl_equal C (CHead 
+x4 (Flat x2) x5)) (drop_drop (Bind b) n0 c (CHead x3 (Flat x2) x5) H15 t) 
+H16)) e H14))))))))) H13)) (\lambda (H13: (ex4_5 F C C T T (\lambda (f: 
+F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (u2: T).(eq C e 
+(CHead e2 (Flat f) u2))))))) (\lambda (f: F).(\lambda (e1: C).(\lambda (_: 
+C).(\lambda (u1: T).(\lambda (_: T).(drop n0 O c (CHead e1 (Flat f) u1))))))) 
+(\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda 
+(u2: T).(subst0 O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda 
+(e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 e2)))))))).(ex4_5_ind 
+F C C T T (\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: 
+T).(\lambda (u2: T).(eq C e (CHead e2 (Flat f) u2))))))) (\lambda (f: 
+F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(drop n0 
+O c (CHead e1 (Flat f) u1))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: 
+C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (\lambda (_: 
+F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 
+O v e1 e2)))))) (or4 (drop (S n0) O (CHead c (Bind b) t) e) (ex3_4 F C T T 
+(\lambda (f: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C e 
 (CHead e0 (Flat f) u2)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (u1: 
 T).(\lambda (_: T).(drop (S n0) O (CHead c (Bind b) t) (CHead e0 (Flat f) 
 u1)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: 
 T).(subst0 O v u1 u2)))))) (ex3_4 F C C T (\lambda (f: F).(\lambda (_: 
-C).(\lambda (e2: C).(\lambda (u: T).(eq C c0 (CHead e2 (Flat f) u)))))) 
+C).(\lambda (e2: C).(\lambda (u: T).(eq C e (CHead e2 (Flat f) u)))))) 
 (\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(drop (S n0) 
 O (CHead c (Bind b) t) (CHead e1 (Flat f) u)))))) (\lambda (_: F).(\lambda 
 (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2)))))) (ex4_5 F C 
 C T T (\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: 
-T).(\lambda (u2: T).(eq C c0 (CHead e2 (Flat f) u2))))))) (\lambda (f: 
+T).(\lambda (u2: T).(eq C e (CHead e2 (Flat f) u2))))))) (\lambda (f: 
 F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(drop (S 
 n0) O (CHead c (Bind b) t) (CHead e1 (Flat f) u1))))))) (\lambda (_: 
 F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 
 O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda 
-(_: T).(\lambda (_: T).(csubst0 O v e1 e2))))))))) (or4_intro2 (drop (S n0) O 
-(CHead c (Bind b) t) (CHead x4 (Flat x2) x5)) (ex3_4 F C T T (\lambda (f: 
-F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C (CHead x4 (Flat 
-x2) x5) (CHead e0 (Flat f) u2)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda 
-(u1: T).(\lambda (_: T).(drop (S n0) O (CHead c (Bind b) t) (CHead e0 (Flat 
-f) u1)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: 
-T).(subst0 O v u1 u2)))))) (ex3_4 F C C T (\lambda (f: F).(\lambda (_: 
-C).(\lambda (e2: C).(\lambda (u: T).(eq C (CHead x4 (Flat x2) x5) (CHead e2 
-(Flat f) u)))))) (\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda 
-(u: T).(drop (S n0) O (CHead c (Bind b) t) (CHead e1 (Flat f) u)))))) 
-(\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O 
-v e1 e2)))))) (ex4_5 F C C T T (\lambda (f: F).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (_: T).(\lambda (u2: T).(eq C (CHead x4 (Flat x2) x5) (CHead e2 
-(Flat f) u2))))))) (\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda 
-(u1: T).(\lambda (_: T).(drop (S n0) O (CHead c (Bind b) t) (CHead e1 (Flat 
-f) u1))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: 
-T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: 
-C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 e2))))))) 
-(ex3_4_intro F C C T (\lambda (f: F).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (u: T).(eq C (CHead x4 (Flat x2) x5) (CHead e2 (Flat f) u)))))) 
-(\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(drop (S n0) 
-O (CHead c (Bind b) t) (CHead e1 (Flat f) u)))))) (\lambda (_: F).(\lambda 
-(e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2))))) x2 x3 x4 x5 
-(refl_equal C (CHead x4 (Flat x2) x5)) (drop_drop (Bind b) n0 c (CHead x3 
-(Flat x2) x5) H14 t) H15)) e H13)))))))) H12)) (\lambda (H12: (ex4_5 F C C T 
-T (\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
-(u2: T).(eq C e (CHead e2 (Flat f) u2))))))) (\lambda (f: F).(\lambda (e1: 
-C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(drop n0 O c (CHead e1 
-(Flat f) u1))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda 
-(u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (\lambda (_: F).(\lambda 
-(e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 
-e2)))))))).(ex4_5_ind F C C T T (\lambda (f: F).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e2 (Flat f) u2))))))) 
-(\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda 
-(_: T).(drop n0 O c (CHead e1 (Flat f) u1))))))) (\lambda (_: F).(\lambda (_: 
-C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) 
-(\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
-(_: T).(csubst0 O v e1 e2)))))) (or4 (drop (S n0) O (CHead c (Bind b) t) e) 
-(ex3_4 F C T T (\lambda (f: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: 
-T).(eq C e (CHead e0 (Flat f) u2)))))) (\lambda (f: F).(\lambda (e0: 
-C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O (CHead c (Bind b) t) 
-(CHead e0 (Flat f) u1)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u1: 
-T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (ex3_4 F C C T (\lambda (f: 
-F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(eq C e (CHead e2 (Flat 
-f) u)))))) (\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: 
-T).(drop (S n0) O (CHead c (Bind b) t) (CHead e1 (Flat f) u)))))) (\lambda 
-(_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 
-e2)))))) (ex4_5 F C C T T (\lambda (f: F).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e2 (Flat f) u2))))))) 
-(\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda 
-(_: T).(drop (S n0) O (CHead c (Bind b) t) (CHead e1 (Flat f) u1))))))) 
-(\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda 
-(u2: T).(subst0 O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda 
-(e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 e2)))))))) (\lambda 
-(x2: F).(\lambda (x3: C).(\lambda (x4: C).(\lambda (x5: T).(\lambda (x6: 
-T).(\lambda (H13: (eq C e (CHead x4 (Flat x2) x6))).(\lambda (H14: (drop n0 O 
-c (CHead x3 (Flat x2) x5))).(\lambda (H15: (subst0 O v x5 x6)).(\lambda (H16: 
-(csubst0 O v x3 x4)).(eq_ind_r C (CHead x4 (Flat x2) x6) (\lambda (c0: 
+(_: T).(\lambda (_: T).(csubst0 O v e1 e2)))))))) (\lambda (x2: F).(\lambda 
+(x3: C).(\lambda (x4: C).(\lambda (x5: T).(\lambda (x6: T).(\lambda (H14: (eq 
+C e (CHead x4 (Flat x2) x6))).(\lambda (H15: (drop n0 O c (CHead x3 (Flat x2) 
+x5))).(\lambda (H16: (subst0 O v x5 x6)).(\lambda (H17: (csubst0 O v x3 
+x4)).(let H18 \def (eq_ind C e (\lambda (c0: C).(drop n0 O x0 c0)) H9 (CHead 
+x4 (Flat x2) x6) H14) in (eq_ind_r C (CHead x4 (Flat x2) x6) (\lambda (c0: 
 C).(or4 (drop (S n0) O (CHead c (Bind b) t) c0) (ex3_4 F C T T (\lambda (f: 
 F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C c0 (CHead e0 (Flat 
 f) u2)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: 
@@ -5181,132 +5166,134 @@ f) u1))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1:
 T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: 
 C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 e2)))))) 
 x2 x3 x4 x5 x6 (refl_equal C (CHead x4 (Flat x2) x6)) (drop_drop (Bind b) n0 
-c (CHead x3 (Flat x2) x5) H14 t) H15 H16)) e H13)))))))))) H12)) H11))))))) 
-(\lambda (f: F).(\lambda (H7: (eq nat (S n0) (s (Flat f) x1))).(\lambda (H8: 
-(drop (r (Flat f) n0) O x0 e)).(let H9 \def (f_equal nat nat (\lambda (e0: 
-nat).e0) (S n0) x1 H7) in (let H10 \def (eq_ind_r nat x1 (\lambda (n1: 
-nat).(csubst0 n1 v c x0)) H5 (S n0) H9) in (let H11 \def (H x0 v H10 e H8) in 
-(or4_ind (drop (S n0) O c e) (ex3_4 F C T T (\lambda (f0: F).(\lambda (e0: 
-C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e0 (Flat f0) u2)))))) 
-(\lambda (f0: F).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: T).(drop (S 
-n0) O c (CHead e0 (Flat f0) u1)))))) (\lambda (_: F).(\lambda (_: C).(\lambda 
-(u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (ex3_4 F C C T (\lambda (f0: 
-F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(eq C e (CHead e2 (Flat 
-f0) u)))))) (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: 
-T).(drop (S n0) O c (CHead e1 (Flat f0) u)))))) (\lambda (_: F).(\lambda (e1: 
-C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2)))))) (ex4_5 F C C T T 
-(\lambda (f0: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
-(u2: T).(eq C e (CHead e2 (Flat f0) u2))))))) (\lambda (f0: F).(\lambda (e1: 
-C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O c (CHead 
-e1 (Flat f0) u1))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: 
-C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (\lambda (_: 
-F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 
-O v e1 e2))))))) (or4 (drop (S n0) O (CHead c (Flat f) t) e) (ex3_4 F C T T 
-(\lambda (f0: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C e 
-(CHead e0 (Flat f0) u2)))))) (\lambda (f0: F).(\lambda (e0: C).(\lambda (u1: 
-T).(\lambda (_: T).(drop (S n0) O (CHead c (Flat f) t) (CHead e0 (Flat f0) 
-u1)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: 
-T).(subst0 O v u1 u2)))))) (ex3_4 F C C T (\lambda (f0: F).(\lambda (_: 
-C).(\lambda (e2: C).(\lambda (u: T).(eq C e (CHead e2 (Flat f0) u)))))) 
-(\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(drop (S 
-n0) O (CHead c (Flat f) t) (CHead e1 (Flat f0) u)))))) (\lambda (_: 
-F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2)))))) 
-(ex4_5 F C C T T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: C).(\lambda 
-(_: T).(\lambda (u2: T).(eq C e (CHead e2 (Flat f0) u2))))))) (\lambda (f0: 
-F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(drop (S 
-n0) O (CHead c (Flat f) t) (CHead e1 (Flat f0) u1))))))) (\lambda (_: 
-F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 
-O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda 
-(_: T).(\lambda (_: T).(csubst0 O v e1 e2)))))))) (\lambda (H12: (drop (S n0) 
-O c e)).(or4_intro0 (drop (S n0) O (CHead c (Flat f) t) e) (ex3_4 F C T T 
-(\lambda (f0: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C e 
-(CHead e0 (Flat f0) u2)))))) (\lambda (f0: F).(\lambda (e0: C).(\lambda (u1: 
-T).(\lambda (_: T).(drop (S n0) O (CHead c (Flat f) t) (CHead e0 (Flat f0) 
-u1)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: 
-T).(subst0 O v u1 u2)))))) (ex3_4 F C C T (\lambda (f0: F).(\lambda (_: 
-C).(\lambda (e2: C).(\lambda (u: T).(eq C e (CHead e2 (Flat f0) u)))))) 
-(\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(drop (S 
-n0) O (CHead c (Flat f) t) (CHead e1 (Flat f0) u)))))) (\lambda (_: 
+c (CHead x3 (Flat x2) x5) H15 t) H16 H17)) e H14))))))))))) H13)) H12))))))) 
+(\lambda (f: F).(\lambda (H8: (eq nat (S n0) (s (Flat f) x1))).(\lambda (H9: 
+(drop (r (Flat f) n0) O x0 e)).(let H10 \def (f_equal nat nat (\lambda (e0: 
+nat).e0) (S n0) (s (Flat f) x1) H8) in (let H11 \def (eq_ind_r nat x1 
+(\lambda (n1: nat).(csubst0 n1 v c x0)) H6 (S n0) H10) in (let H12 \def (H x0 
+v H11 e H9) in (or4_ind (drop (S n0) O c e) (ex3_4 F C T T (\lambda (f0: 
+F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e0 (Flat 
+f0) u2)))))) (\lambda (f0: F).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: 
+T).(drop (S n0) O c (CHead e0 (Flat f0) u1)))))) (\lambda (_: F).(\lambda (_: 
+C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (ex3_4 F C C T 
+(\lambda (f0: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(eq C e 
+(CHead e2 (Flat f0) u)))))) (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: 
+C).(\lambda (u: T).(drop (S n0) O c (CHead e1 (Flat f0) u)))))) (\lambda (_: 
 F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2)))))) 
 (ex4_5 F C C T T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: C).(\lambda 
 (_: T).(\lambda (u2: T).(eq C e (CHead e2 (Flat f0) u2))))))) (\lambda (f0: 
 F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(drop (S 
-n0) O (CHead c (Flat f) t) (CHead e1 (Flat f0) u1))))))) (\lambda (_: 
-F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 
-O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda 
-(_: T).(\lambda (_: T).(csubst0 O v e1 e2))))))) (drop_drop (Flat f) n0 c e 
-H12 t))) (\lambda (H12: (ex3_4 F C T T (\lambda (f0: F).(\lambda (e0: 
-C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e0 (Flat f0) u2)))))) 
-(\lambda (f0: F).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: T).(drop (S 
-n0) O c (CHead e0 (Flat f0) u1)))))) (\lambda (_: F).(\lambda (_: C).(\lambda 
-(u1: T).(\lambda (u2: T).(subst0 O v u1 u2))))))).(ex3_4_ind F C T T (\lambda 
-(f0: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e0 
-(Flat f0) u2)))))) (\lambda (f0: F).(\lambda (e0: C).(\lambda (u1: 
-T).(\lambda (_: T).(drop (S n0) O c (CHead e0 (Flat f0) u1)))))) (\lambda (_: 
-F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2))))) 
-(or4 (drop (S n0) O (CHead c (Flat f) t) e) (ex3_4 F C T T (\lambda (f0: 
-F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e0 (Flat 
-f0) u2)))))) (\lambda (f0: F).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: 
-T).(drop (S n0) O (CHead c (Flat f) t) (CHead e0 (Flat f0) u1)))))) (\lambda 
-(_: F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 
-u2)))))) (ex3_4 F C C T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (u: T).(eq C e (CHead e2 (Flat f0) u)))))) (\lambda (f0: 
-F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(drop (S n0) O (CHead c 
-(Flat f) t) (CHead e1 (Flat f0) u)))))) (\lambda (_: F).(\lambda (e1: 
-C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2)))))) (ex4_5 F C C T T 
-(\lambda (f0: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
-(u2: T).(eq C e (CHead e2 (Flat f0) u2))))))) (\lambda (f0: F).(\lambda (e1: 
-C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O (CHead c 
-(Flat f) t) (CHead e1 (Flat f0) u1))))))) (\lambda (_: F).(\lambda (_: 
+n0) O c (CHead e1 (Flat f0) u1))))))) (\lambda (_: F).(\lambda (_: 
 C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) 
 (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
-(_: T).(csubst0 O v e1 e2)))))))) (\lambda (x2: F).(\lambda (x3: C).(\lambda 
-(x4: T).(\lambda (x5: T).(\lambda (H13: (eq C e (CHead x3 (Flat x2) 
-x5))).(\lambda (H14: (drop (S n0) O c (CHead x3 (Flat x2) x4))).(\lambda 
-(H15: (subst0 O v x4 x5)).(eq_ind_r C (CHead x3 (Flat x2) x5) (\lambda (c0: 
-C).(or4 (drop (S n0) O (CHead c (Flat f) t) c0) (ex3_4 F C T T (\lambda (f0: 
-F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C c0 (CHead e0 (Flat 
+(_: T).(csubst0 O v e1 e2))))))) (or4 (drop (S n0) O (CHead c (Flat f) t) e) 
+(ex3_4 F C T T (\lambda (f0: F).(\lambda (e0: C).(\lambda (_: T).(\lambda 
+(u2: T).(eq C e (CHead e0 (Flat f0) u2)))))) (\lambda (f0: F).(\lambda (e0: 
+C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O (CHead c (Flat f) t) 
+(CHead e0 (Flat f0) u1)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u1: 
+T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (ex3_4 F C C T (\lambda (f0: 
+F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(eq C e (CHead e2 (Flat 
+f0) u)))))) (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: 
+T).(drop (S n0) O (CHead c (Flat f) t) (CHead e1 (Flat f0) u)))))) (\lambda 
+(_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 
+e2)))))) (ex4_5 F C C T T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: 
+C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e2 (Flat f0) u2))))))) 
+(\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda 
+(_: T).(drop (S n0) O (CHead c (Flat f) t) (CHead e1 (Flat f0) u1))))))) 
+(\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda 
+(u2: T).(subst0 O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda 
+(e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 e2)))))))) (\lambda 
+(H13: (drop (S n0) O c e)).(or4_intro0 (drop (S n0) O (CHead c (Flat f) t) e) 
+(ex3_4 F C T T (\lambda (f0: F).(\lambda (e0: C).(\lambda (_: T).(\lambda 
+(u2: T).(eq C e (CHead e0 (Flat f0) u2)))))) (\lambda (f0: F).(\lambda (e0: 
+C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O (CHead c (Flat f) t) 
+(CHead e0 (Flat f0) u1)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u1: 
+T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (ex3_4 F C C T (\lambda (f0: 
+F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(eq C e (CHead e2 (Flat 
+f0) u)))))) (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: 
+T).(drop (S n0) O (CHead c (Flat f) t) (CHead e1 (Flat f0) u)))))) (\lambda 
+(_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 
+e2)))))) (ex4_5 F C C T T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: 
+C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e2 (Flat f0) u2))))))) 
+(\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda 
+(_: T).(drop (S n0) O (CHead c (Flat f) t) (CHead e1 (Flat f0) u1))))))) 
+(\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda 
+(u2: T).(subst0 O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda 
+(e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 e2))))))) (drop_drop 
+(Flat f) n0 c e H13 t))) (\lambda (H13: (ex3_4 F C T T (\lambda (f0: 
+F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e0 (Flat 
 f0) u2)))))) (\lambda (f0: F).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: 
-T).(drop (S n0) O (CHead c (Flat f) t) (CHead e0 (Flat f0) u1)))))) (\lambda 
-(_: F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 
-u2)))))) (ex3_4 F C C T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (u: T).(eq C c0 (CHead e2 (Flat f0) u)))))) (\lambda (f0: 
-F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(drop (S n0) O (CHead c 
-(Flat f) t) (CHead e1 (Flat f0) u)))))) (\lambda (_: F).(\lambda (e1: 
-C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2)))))) (ex4_5 F C C T T 
-(\lambda (f0: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
-(u2: T).(eq C c0 (CHead e2 (Flat f0) u2))))))) (\lambda (f0: F).(\lambda (e1: 
-C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O (CHead c 
-(Flat f) t) (CHead e1 (Flat f0) u1))))))) (\lambda (_: F).(\lambda (_: 
-C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) 
-(\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
-(_: T).(csubst0 O v e1 e2))))))))) (or4_intro1 (drop (S n0) O (CHead c (Flat 
-f) t) (CHead x3 (Flat x2) x5)) (ex3_4 F C T T (\lambda (f0: F).(\lambda (e0: 
-C).(\lambda (_: T).(\lambda (u2: T).(eq C (CHead x3 (Flat x2) x5) (CHead e0 
-(Flat f0) u2)))))) (\lambda (f0: F).(\lambda (e0: C).(\lambda (u1: 
+T).(drop (S n0) O c (CHead e0 (Flat f0) u1)))))) (\lambda (_: F).(\lambda (_: 
+C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2))))))).(ex3_4_ind F C 
+T T (\lambda (f0: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C 
+e (CHead e0 (Flat f0) u2)))))) (\lambda (f0: F).(\lambda (e0: C).(\lambda 
+(u1: T).(\lambda (_: T).(drop (S n0) O c (CHead e0 (Flat f0) u1)))))) 
+(\lambda (_: F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v 
+u1 u2))))) (or4 (drop (S n0) O (CHead c (Flat f) t) e) (ex3_4 F C T T 
+(\lambda (f0: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C e 
+(CHead e0 (Flat f0) u2)))))) (\lambda (f0: F).(\lambda (e0: C).(\lambda (u1: 
 T).(\lambda (_: T).(drop (S n0) O (CHead c (Flat f) t) (CHead e0 (Flat f0) 
 u1)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: 
 T).(subst0 O v u1 u2)))))) (ex3_4 F C C T (\lambda (f0: F).(\lambda (_: 
-C).(\lambda (e2: C).(\lambda (u: T).(eq C (CHead x3 (Flat x2) x5) (CHead e2 
-(Flat f0) u)))))) (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda 
-(u: T).(drop (S n0) O (CHead c (Flat f) t) (CHead e1 (Flat f0) u)))))) 
-(\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O 
-v e1 e2)))))) (ex4_5 F C C T T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (_: T).(\lambda (u2: T).(eq C (CHead x3 (Flat x2) x5) (CHead e2 
-(Flat f0) u2))))))) (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: 
-C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O (CHead c (Flat f) t) 
-(CHead e1 (Flat f0) u1))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: 
-C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (\lambda (_: 
-F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 
-O v e1 e2))))))) (ex3_4_intro F C T T (\lambda (f0: F).(\lambda (e0: 
-C).(\lambda (_: T).(\lambda (u2: T).(eq C (CHead x3 (Flat x2) x5) (CHead e0 
-(Flat f0) u2)))))) (\lambda (f0: F).(\lambda (e0: C).(\lambda (u1: 
-T).(\lambda (_: T).(drop (S n0) O (CHead c (Flat f) t) (CHead e0 (Flat f0) 
-u1)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: 
-T).(subst0 O v u1 u2))))) x2 x3 x4 x5 (refl_equal C (CHead x3 (Flat x2) x5)) 
-(drop_drop (Flat f) n0 c (CHead x3 (Flat x2) x4) H14 t) H15)) e H13)))))))) 
-H12)) (\lambda (H12: (ex3_4 F C C T (\lambda (f0: F).(\lambda (_: C).(\lambda 
-(e2: C).(\lambda (u: T).(eq C e (CHead e2 (Flat f0) u)))))) (\lambda (f0: 
+C).(\lambda (e2: C).(\lambda (u: T).(eq C e (CHead e2 (Flat f0) u)))))) 
+(\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(drop (S 
+n0) O (CHead c (Flat f) t) (CHead e1 (Flat f0) u)))))) (\lambda (_: 
+F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2)))))) 
+(ex4_5 F C C T T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: C).(\lambda 
+(_: T).(\lambda (u2: T).(eq C e (CHead e2 (Flat f0) u2))))))) (\lambda (f0: 
+F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(drop (S 
+n0) O (CHead c (Flat f) t) (CHead e1 (Flat f0) u1))))))) (\lambda (_: 
+F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 
+O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda 
+(_: T).(\lambda (_: T).(csubst0 O v e1 e2)))))))) (\lambda (x2: F).(\lambda 
+(x3: C).(\lambda (x4: T).(\lambda (x5: T).(\lambda (H14: (eq C e (CHead x3 
+(Flat x2) x5))).(\lambda (H15: (drop (S n0) O c (CHead x3 (Flat x2) 
+x4))).(\lambda (H16: (subst0 O v x4 x5)).(let H17 \def (eq_ind C e (\lambda 
+(c0: C).(drop (S n0) O x0 c0)) H9 (CHead x3 (Flat x2) x5) H14) in (eq_ind_r C 
+(CHead x3 (Flat x2) x5) (\lambda (c0: C).(or4 (drop (S n0) O (CHead c (Flat 
+f) t) c0) (ex3_4 F C T T (\lambda (f0: F).(\lambda (e0: C).(\lambda (_: 
+T).(\lambda (u2: T).(eq C c0 (CHead e0 (Flat f0) u2)))))) (\lambda (f0: 
+F).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O (CHead c 
+(Flat f) t) (CHead e0 (Flat f0) u1)))))) (\lambda (_: F).(\lambda (_: 
+C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (ex3_4 F C C T 
+(\lambda (f0: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(eq C c0 
+(CHead e2 (Flat f0) u)))))) (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: 
+C).(\lambda (u: T).(drop (S n0) O (CHead c (Flat f) t) (CHead e1 (Flat f0) 
+u)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: 
+T).(csubst0 O v e1 e2)))))) (ex4_5 F C C T T (\lambda (f0: F).(\lambda (_: 
+C).(\lambda (e2: C).(\lambda (_: T).(\lambda (u2: T).(eq C c0 (CHead e2 (Flat 
+f0) u2))))))) (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: 
+T).(\lambda (_: T).(drop (S n0) O (CHead c (Flat f) t) (CHead e1 (Flat f0) 
+u1))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: 
+T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: 
+C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 
+e2))))))))) (or4_intro1 (drop (S n0) O (CHead c (Flat f) t) (CHead x3 (Flat 
+x2) x5)) (ex3_4 F C T T (\lambda (f0: F).(\lambda (e0: C).(\lambda (_: 
+T).(\lambda (u2: T).(eq C (CHead x3 (Flat x2) x5) (CHead e0 (Flat f0) 
+u2)))))) (\lambda (f0: F).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: 
+T).(drop (S n0) O (CHead c (Flat f) t) (CHead e0 (Flat f0) u1)))))) (\lambda 
+(_: F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 
+u2)))))) (ex3_4 F C C T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: 
+C).(\lambda (u: T).(eq C (CHead x3 (Flat x2) x5) (CHead e2 (Flat f0) u)))))) 
+(\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(drop (S 
+n0) O (CHead c (Flat f) t) (CHead e1 (Flat f0) u)))))) (\lambda (_: 
+F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2)))))) 
+(ex4_5 F C C T T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: C).(\lambda 
+(_: T).(\lambda (u2: T).(eq C (CHead x3 (Flat x2) x5) (CHead e2 (Flat f0) 
+u2))))))) (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: 
+T).(\lambda (_: T).(drop (S n0) O (CHead c (Flat f) t) (CHead e1 (Flat f0) 
+u1))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: 
+T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: 
+C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 e2))))))) 
+(ex3_4_intro F C T T (\lambda (f0: F).(\lambda (e0: C).(\lambda (_: 
+T).(\lambda (u2: T).(eq C (CHead x3 (Flat x2) x5) (CHead e0 (Flat f0) 
+u2)))))) (\lambda (f0: F).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: 
+T).(drop (S n0) O (CHead c (Flat f) t) (CHead e0 (Flat f0) u1)))))) (\lambda 
+(_: F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 
+u2))))) x2 x3 x4 x5 (refl_equal C (CHead x3 (Flat x2) x5)) (drop_drop (Flat 
+f) n0 c (CHead x3 (Flat x2) x4) H15 t) H16)) e H14))))))))) H13)) (\lambda 
+(H13: (ex3_4 F C C T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: 
+C).(\lambda (u: T).(eq C e (CHead e2 (Flat f0) u)))))) (\lambda (f0: 
 F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(drop (S n0) O c (CHead 
 e1 (Flat f0) u)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: 
 C).(\lambda (_: T).(csubst0 O v e1 e2))))))).(ex3_4_ind F C C T (\lambda (f0: 
@@ -5331,157 +5318,160 @@ C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O (CHead c (Flat f) t)
 C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (\lambda (_: 
 F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 
 O v e1 e2)))))))) (\lambda (x2: F).(\lambda (x3: C).(\lambda (x4: C).(\lambda 
-(x5: T).(\lambda (H13: (eq C e (CHead x4 (Flat x2) x5))).(\lambda (H14: (drop 
-(S n0) O c (CHead x3 (Flat x2) x5))).(\lambda (H15: (csubst0 O v x3 
-x4)).(eq_ind_r C (CHead x4 (Flat x2) x5) (\lambda (c0: C).(or4 (drop (S n0) O 
-(CHead c (Flat f) t) c0) (ex3_4 F C T T (\lambda (f0: F).(\lambda (e0: 
-C).(\lambda (_: T).(\lambda (u2: T).(eq C c0 (CHead e0 (Flat f0) u2)))))) 
-(\lambda (f0: F).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: T).(drop (S 
-n0) O (CHead c (Flat f) t) (CHead e0 (Flat f0) u1)))))) (\lambda (_: 
-F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) 
-(ex3_4 F C C T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: 
-T).(eq C c0 (CHead e2 (Flat f0) u)))))) (\lambda (f0: F).(\lambda (e1: 
-C).(\lambda (_: C).(\lambda (u: T).(drop (S n0) O (CHead c (Flat f) t) (CHead 
-e1 (Flat f0) u)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: 
-C).(\lambda (_: T).(csubst0 O v e1 e2)))))) (ex4_5 F C C T T (\lambda (f0: 
-F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (u2: T).(eq C c0 
-(CHead e2 (Flat f0) u2))))))) (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: 
-C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O (CHead c (Flat f) t) 
-(CHead e1 (Flat f0) u1))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: 
-C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (\lambda (_: 
-F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 
-O v e1 e2))))))))) (or4_intro2 (drop (S n0) O (CHead c (Flat f) t) (CHead x4 
-(Flat x2) x5)) (ex3_4 F C T T (\lambda (f0: F).(\lambda (e0: C).(\lambda (_: 
-T).(\lambda (u2: T).(eq C (CHead x4 (Flat x2) x5) (CHead e0 (Flat f0) 
-u2)))))) (\lambda (f0: F).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: 
-T).(drop (S n0) O (CHead c (Flat f) t) (CHead e0 (Flat f0) u1)))))) (\lambda 
-(_: F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 
-u2)))))) (ex3_4 F C C T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (u: T).(eq C (CHead x4 (Flat x2) x5) (CHead e2 (Flat f0) u)))))) 
-(\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(drop (S 
-n0) O (CHead c (Flat f) t) (CHead e1 (Flat f0) u)))))) (\lambda (_: 
-F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2)))))) 
-(ex4_5 F C C T T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: C).(\lambda 
-(_: T).(\lambda (u2: T).(eq C (CHead x4 (Flat x2) x5) (CHead e2 (Flat f0) 
-u2))))))) (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: 
-T).(\lambda (_: T).(drop (S n0) O (CHead c (Flat f) t) (CHead e1 (Flat f0) 
-u1))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: 
-T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: 
-C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 e2))))))) 
-(ex3_4_intro F C C T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (u: T).(eq C (CHead x4 (Flat x2) x5) (CHead e2 (Flat f0) u)))))) 
-(\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(drop (S 
-n0) O (CHead c (Flat f) t) (CHead e1 (Flat f0) u)))))) (\lambda (_: 
-F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2))))) 
-x2 x3 x4 x5 (refl_equal C (CHead x4 (Flat x2) x5)) (drop_drop (Flat f) n0 c 
-(CHead x3 (Flat x2) x5) H14 t) H15)) e H13)))))))) H12)) (\lambda (H12: 
-(ex4_5 F C C T T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: C).(\lambda 
-(_: T).(\lambda (u2: T).(eq C e (CHead e2 (Flat f0) u2))))))) (\lambda (f0: 
-F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(drop (S 
-n0) O c (CHead e1 (Flat f0) u1))))))) (\lambda (_: F).(\lambda (_: 
-C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) 
-(\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
-(_: T).(csubst0 O v e1 e2)))))))).(ex4_5_ind F C C T T (\lambda (f0: 
-F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (u2: T).(eq C e 
-(CHead e2 (Flat f0) u2))))))) (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: 
-C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O c (CHead e1 (Flat f0) 
-u1))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: 
-T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: 
-C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 e2)))))) 
-(or4 (drop (S n0) O (CHead c (Flat f) t) e) (ex3_4 F C T T (\lambda (f0: 
-F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e0 (Flat 
+(x5: T).(\lambda (H14: (eq C e (CHead x4 (Flat x2) x5))).(\lambda (H15: (drop 
+(S n0) O c (CHead x3 (Flat x2) x5))).(\lambda (H16: (csubst0 O v x3 x4)).(let 
+H17 \def (eq_ind C e (\lambda (c0: C).(drop (S n0) O x0 c0)) H9 (CHead x4 
+(Flat x2) x5) H14) in (eq_ind_r C (CHead x4 (Flat x2) x5) (\lambda (c0: 
+C).(or4 (drop (S n0) O (CHead c (Flat f) t) c0) (ex3_4 F C T T (\lambda (f0: 
+F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C c0 (CHead e0 (Flat 
 f0) u2)))))) (\lambda (f0: F).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: 
 T).(drop (S n0) O (CHead c (Flat f) t) (CHead e0 (Flat f0) u1)))))) (\lambda 
 (_: F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 
 u2)))))) (ex3_4 F C C T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (u: T).(eq C e (CHead e2 (Flat f0) u)))))) (\lambda (f0: 
+C).(\lambda (u: T).(eq C c0 (CHead e2 (Flat f0) u)))))) (\lambda (f0: 
 F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(drop (S n0) O (CHead c 
 (Flat f) t) (CHead e1 (Flat f0) u)))))) (\lambda (_: F).(\lambda (e1: 
 C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2)))))) (ex4_5 F C C T T 
 (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
-(u2: T).(eq C e (CHead e2 (Flat f0) u2))))))) (\lambda (f0: F).(\lambda (e1: 
+(u2: T).(eq C c0 (CHead e2 (Flat f0) u2))))))) (\lambda (f0: F).(\lambda (e1: 
 C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O (CHead c 
 (Flat f) t) (CHead e1 (Flat f0) u1))))))) (\lambda (_: F).(\lambda (_: 
 C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) 
 (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
-(_: T).(csubst0 O v e1 e2)))))))) (\lambda (x2: F).(\lambda (x3: C).(\lambda 
-(x4: C).(\lambda (x5: T).(\lambda (x6: T).(\lambda (H13: (eq C e (CHead x4 
-(Flat x2) x6))).(\lambda (H14: (drop (S n0) O c (CHead x3 (Flat x2) 
-x5))).(\lambda (H15: (subst0 O v x5 x6)).(\lambda (H16: (csubst0 O v x3 
-x4)).(eq_ind_r C (CHead x4 (Flat x2) x6) (\lambda (c0: C).(or4 (drop (S n0) O 
-(CHead c (Flat f) t) c0) (ex3_4 F C T T (\lambda (f0: F).(\lambda (e0: 
-C).(\lambda (_: T).(\lambda (u2: T).(eq C c0 (CHead e0 (Flat f0) u2)))))) 
-(\lambda (f0: F).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: T).(drop (S 
-n0) O (CHead c (Flat f) t) (CHead e0 (Flat f0) u1)))))) (\lambda (_: 
-F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) 
-(ex3_4 F C C T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: 
-T).(eq C c0 (CHead e2 (Flat f0) u)))))) (\lambda (f0: F).(\lambda (e1: 
-C).(\lambda (_: C).(\lambda (u: T).(drop (S n0) O (CHead c (Flat f) t) (CHead 
-e1 (Flat f0) u)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: 
-C).(\lambda (_: T).(csubst0 O v e1 e2)))))) (ex4_5 F C C T T (\lambda (f0: 
-F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (u2: T).(eq C c0 
-(CHead e2 (Flat f0) u2))))))) (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: 
-C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O (CHead c (Flat f) t) 
-(CHead e1 (Flat f0) u1))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: 
-C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (\lambda (_: 
-F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 
-O v e1 e2))))))))) (or4_intro3 (drop (S n0) O (CHead c (Flat f) t) (CHead x4 
-(Flat x2) x6)) (ex3_4 F C T T (\lambda (f0: F).(\lambda (e0: C).(\lambda (_: 
-T).(\lambda (u2: T).(eq C (CHead x4 (Flat x2) x6) (CHead e0 (Flat f0) 
-u2)))))) (\lambda (f0: F).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: 
-T).(drop (S n0) O (CHead c (Flat f) t) (CHead e0 (Flat f0) u1)))))) (\lambda 
-(_: F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 
-u2)))))) (ex3_4 F C C T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (u: T).(eq C (CHead x4 (Flat x2) x6) (CHead e2 (Flat f0) u)))))) 
-(\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(drop (S 
-n0) O (CHead c (Flat f) t) (CHead e1 (Flat f0) u)))))) (\lambda (_: 
-F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2)))))) 
-(ex4_5 F C C T T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: C).(\lambda 
-(_: T).(\lambda (u2: T).(eq C (CHead x4 (Flat x2) x6) (CHead e2 (Flat f0) 
-u2))))))) (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: 
-T).(\lambda (_: T).(drop (S n0) O (CHead c (Flat f) t) (CHead e1 (Flat f0) 
-u1))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: 
-T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: 
-C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 e2))))))) 
-(ex4_5_intro F C C T T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (_: T).(\lambda (u2: T).(eq C (CHead x4 (Flat x2) x6) (CHead e2 
+(_: T).(csubst0 O v e1 e2))))))))) (or4_intro2 (drop (S n0) O (CHead c (Flat 
+f) t) (CHead x4 (Flat x2) x5)) (ex3_4 F C T T (\lambda (f0: F).(\lambda (e0: 
+C).(\lambda (_: T).(\lambda (u2: T).(eq C (CHead x4 (Flat x2) x5) (CHead e0 
+(Flat f0) u2)))))) (\lambda (f0: F).(\lambda (e0: C).(\lambda (u1: 
+T).(\lambda (_: T).(drop (S n0) O (CHead c (Flat f) t) (CHead e0 (Flat f0) 
+u1)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: 
+T).(subst0 O v u1 u2)))))) (ex3_4 F C C T (\lambda (f0: F).(\lambda (_: 
+C).(\lambda (e2: C).(\lambda (u: T).(eq C (CHead x4 (Flat x2) x5) (CHead e2 
+(Flat f0) u)))))) (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda 
+(u: T).(drop (S n0) O (CHead c (Flat f) t) (CHead e1 (Flat f0) u)))))) 
+(\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O 
+v e1 e2)))))) (ex4_5 F C C T T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: 
+C).(\lambda (_: T).(\lambda (u2: T).(eq C (CHead x4 (Flat x2) x5) (CHead e2 
 (Flat f0) u2))))))) (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: 
 C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O (CHead c (Flat f) t) 
 (CHead e1 (Flat f0) u1))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: 
 C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (\lambda (_: 
 F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 
-O v e1 e2)))))) x2 x3 x4 x5 x6 (refl_equal C (CHead x4 (Flat x2) x6)) 
-(drop_drop (Flat f) n0 c (CHead x3 (Flat x2) x5) H14 t) H15 H16)) e 
-H13)))))))))) H12)) H11))))))) k H3 (drop_gen_drop k x0 e t n0 H6)))))))) 
-H2)) (\lambda (H2: (ex4_3 T C nat (\lambda (_: T).(\lambda (_: C).(\lambda 
-(j: nat).(eq nat (S n0) (s k j))))) (\lambda (u2: T).(\lambda (c3: 
-C).(\lambda (_: nat).(eq C c2 (CHead c3 k u2))))) (\lambda (u2: T).(\lambda 
-(_: C).(\lambda (j: nat).(subst0 j v t u2)))) (\lambda (_: T).(\lambda (c3: 
-C).(\lambda (j: nat).(csubst0 j v c c3)))))).(ex4_3_ind T C nat (\lambda (_: 
-T).(\lambda (_: C).(\lambda (j: nat).(eq nat (S n0) (s k j))))) (\lambda (u2: 
-T).(\lambda (c3: C).(\lambda (_: nat).(eq C c2 (CHead c3 k u2))))) (\lambda 
-(u2: T).(\lambda (_: C).(\lambda (j: nat).(subst0 j v t u2)))) (\lambda (_: 
-T).(\lambda (c3: C).(\lambda (j: nat).(csubst0 j v c c3)))) (or4 (drop (S n0) 
-O (CHead c k t) e) (ex3_4 F C T T (\lambda (f: F).(\lambda (e0: C).(\lambda 
-(_: T).(\lambda (u2: T).(eq C e (CHead e0 (Flat f) u2)))))) (\lambda (f: 
-F).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O (CHead c 
-k t) (CHead e0 (Flat f) u1)))))) (\lambda (_: F).(\lambda (_: C).(\lambda 
-(u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (ex3_4 F C C T (\lambda (f: 
-F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(eq C e (CHead e2 (Flat 
-f) u)))))) (\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: 
-T).(drop (S n0) O (CHead c k t) (CHead e1 (Flat f) u)))))) (\lambda (_: 
-F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2)))))) 
-(ex4_5 F C C T T (\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda 
-(_: T).(\lambda (u2: T).(eq C e (CHead e2 (Flat f) u2))))))) (\lambda (f: 
+O v e1 e2))))))) (ex3_4_intro F C C T (\lambda (f0: F).(\lambda (_: 
+C).(\lambda (e2: C).(\lambda (u: T).(eq C (CHead x4 (Flat x2) x5) (CHead e2 
+(Flat f0) u)))))) (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda 
+(u: T).(drop (S n0) O (CHead c (Flat f) t) (CHead e1 (Flat f0) u)))))) 
+(\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O 
+v e1 e2))))) x2 x3 x4 x5 (refl_equal C (CHead x4 (Flat x2) x5)) (drop_drop 
+(Flat f) n0 c (CHead x3 (Flat x2) x5) H15 t) H16)) e H14))))))))) H13)) 
+(\lambda (H13: (ex4_5 F C C T T (\lambda (f0: F).(\lambda (_: C).(\lambda 
+(e2: C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e2 (Flat f0) 
+u2))))))) (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: 
+T).(\lambda (_: T).(drop (S n0) O c (CHead e1 (Flat f0) u1))))))) (\lambda 
+(_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: 
+T).(subst0 O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: 
+C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 e2)))))))).(ex4_5_ind F C 
+C T T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: 
+T).(\lambda (u2: T).(eq C e (CHead e2 (Flat f0) u2))))))) (\lambda (f0: 
 F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(drop (S 
-n0) O (CHead c k t) (CHead e1 (Flat f) u1))))))) (\lambda (_: F).(\lambda (_: 
+n0) O c (CHead e1 (Flat f0) u1))))))) (\lambda (_: F).(\lambda (_: 
 C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) 
 (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
-(_: T).(csubst0 O v e1 e2)))))))) (\lambda (x0: T).(\lambda (x1: C).(\lambda 
-(x2: nat).(\lambda (H3: (eq nat (S n0) (s k x2))).(\lambda (H4: (eq C c2 
-(CHead x1 k x0))).(\lambda (H5: (subst0 x2 v t x0)).(\lambda (H6: (csubst0 x2 
-v c x1)).(let H7 \def (eq_ind C c2 (\lambda (c0: C).(drop (S n0) O c0 e)) H1 
-(CHead x1 k x0) H4) in (K_ind (\lambda (k0: K).((eq nat (S n0) (s k0 x2)) \to 
+(_: T).(csubst0 O v e1 e2)))))) (or4 (drop (S n0) O (CHead c (Flat f) t) e) 
+(ex3_4 F C T T (\lambda (f0: F).(\lambda (e0: C).(\lambda (_: T).(\lambda 
+(u2: T).(eq C e (CHead e0 (Flat f0) u2)))))) (\lambda (f0: F).(\lambda (e0: 
+C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O (CHead c (Flat f) t) 
+(CHead e0 (Flat f0) u1)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u1: 
+T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (ex3_4 F C C T (\lambda (f0: 
+F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(eq C e (CHead e2 (Flat 
+f0) u)))))) (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: 
+T).(drop (S n0) O (CHead c (Flat f) t) (CHead e1 (Flat f0) u)))))) (\lambda 
+(_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 
+e2)))))) (ex4_5 F C C T T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: 
+C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e2 (Flat f0) u2))))))) 
+(\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda 
+(_: T).(drop (S n0) O (CHead c (Flat f) t) (CHead e1 (Flat f0) u1))))))) 
+(\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda 
+(u2: T).(subst0 O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda 
+(e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 e2)))))))) (\lambda 
+(x2: F).(\lambda (x3: C).(\lambda (x4: C).(\lambda (x5: T).(\lambda (x6: 
+T).(\lambda (H14: (eq C e (CHead x4 (Flat x2) x6))).(\lambda (H15: (drop (S 
+n0) O c (CHead x3 (Flat x2) x5))).(\lambda (H16: (subst0 O v x5 x6)).(\lambda 
+(H17: (csubst0 O v x3 x4)).(let H18 \def (eq_ind C e (\lambda (c0: C).(drop 
+(S n0) O x0 c0)) H9 (CHead x4 (Flat x2) x6) H14) in (eq_ind_r C (CHead x4 
+(Flat x2) x6) (\lambda (c0: C).(or4 (drop (S n0) O (CHead c (Flat f) t) c0) 
+(ex3_4 F C T T (\lambda (f0: F).(\lambda (e0: C).(\lambda (_: T).(\lambda 
+(u2: T).(eq C c0 (CHead e0 (Flat f0) u2)))))) (\lambda (f0: F).(\lambda (e0: 
+C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O (CHead c (Flat f) t) 
+(CHead e0 (Flat f0) u1)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u1: 
+T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (ex3_4 F C C T (\lambda (f0: 
+F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(eq C c0 (CHead e2 (Flat 
+f0) u)))))) (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: 
+T).(drop (S n0) O (CHead c (Flat f) t) (CHead e1 (Flat f0) u)))))) (\lambda 
+(_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 
+e2)))))) (ex4_5 F C C T T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: 
+C).(\lambda (_: T).(\lambda (u2: T).(eq C c0 (CHead e2 (Flat f0) u2))))))) 
+(\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda 
+(_: T).(drop (S n0) O (CHead c (Flat f) t) (CHead e1 (Flat f0) u1))))))) 
+(\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda 
+(u2: T).(subst0 O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda 
+(e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 e2))))))))) 
+(or4_intro3 (drop (S n0) O (CHead c (Flat f) t) (CHead x4 (Flat x2) x6)) 
+(ex3_4 F C T T (\lambda (f0: F).(\lambda (e0: C).(\lambda (_: T).(\lambda 
+(u2: T).(eq C (CHead x4 (Flat x2) x6) (CHead e0 (Flat f0) u2)))))) (\lambda 
+(f0: F).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O 
+(CHead c (Flat f) t) (CHead e0 (Flat f0) u1)))))) (\lambda (_: F).(\lambda 
+(_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (ex3_4 F C C 
+T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(eq C 
+(CHead x4 (Flat x2) x6) (CHead e2 (Flat f0) u)))))) (\lambda (f0: F).(\lambda 
+(e1: C).(\lambda (_: C).(\lambda (u: T).(drop (S n0) O (CHead c (Flat f) t) 
+(CHead e1 (Flat f0) u)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: 
+C).(\lambda (_: T).(csubst0 O v e1 e2)))))) (ex4_5 F C C T T (\lambda (f0: 
+F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (u2: T).(eq C 
+(CHead x4 (Flat x2) x6) (CHead e2 (Flat f0) u2))))))) (\lambda (f0: 
+F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(drop (S 
+n0) O (CHead c (Flat f) t) (CHead e1 (Flat f0) u1))))))) (\lambda (_: 
+F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 
+O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda 
+(_: T).(\lambda (_: T).(csubst0 O v e1 e2))))))) (ex4_5_intro F C C T T 
+(\lambda (f0: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
+(u2: T).(eq C (CHead x4 (Flat x2) x6) (CHead e2 (Flat f0) u2))))))) (\lambda 
+(f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: 
+T).(drop (S n0) O (CHead c (Flat f) t) (CHead e1 (Flat f0) u1))))))) (\lambda 
+(_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: 
+T).(subst0 O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: 
+C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 e2)))))) x2 x3 x4 x5 x6 
+(refl_equal C (CHead x4 (Flat x2) x6)) (drop_drop (Flat f) n0 c (CHead x3 
+(Flat x2) x5) H15 t) H16 H17)) e H14))))))))))) H13)) H12))))))) k H4 
+(drop_gen_drop k x0 e t n0 H7)))))))) H3)) (\lambda (H3: (ex4_3 T C nat 
+(\lambda (_: T).(\lambda (_: C).(\lambda (j: nat).(eq nat (S n0) (s k j))))) 
+(\lambda (u2: T).(\lambda (c3: C).(\lambda (_: nat).(eq C c2 (CHead c3 k 
+u2))))) (\lambda (u2: T).(\lambda (_: C).(\lambda (j: nat).(subst0 j v t 
+u2)))) (\lambda (_: T).(\lambda (c3: C).(\lambda (j: nat).(csubst0 j v c 
+c3)))))).(ex4_3_ind T C nat (\lambda (_: T).(\lambda (_: C).(\lambda (j: 
+nat).(eq nat (S n0) (s k j))))) (\lambda (u2: T).(\lambda (c3: C).(\lambda 
+(_: nat).(eq C c2 (CHead c3 k u2))))) (\lambda (u2: T).(\lambda (_: 
+C).(\lambda (j: nat).(subst0 j v t u2)))) (\lambda (_: T).(\lambda (c3: 
+C).(\lambda (j: nat).(csubst0 j v c c3)))) (or4 (drop (S n0) O (CHead c k t) 
+e) (ex3_4 F C T T (\lambda (f: F).(\lambda (e0: C).(\lambda (_: T).(\lambda 
+(u2: T).(eq C e (CHead e0 (Flat f) u2)))))) (\lambda (f: F).(\lambda (e0: 
+C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O (CHead c k t) (CHead e0 
+(Flat f) u1)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u1: T).(\lambda 
+(u2: T).(subst0 O v u1 u2)))))) (ex3_4 F C C T (\lambda (f: F).(\lambda (_: 
+C).(\lambda (e2: C).(\lambda (u: T).(eq C e (CHead e2 (Flat f) u)))))) 
+(\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(drop (S n0) 
+O (CHead c k t) (CHead e1 (Flat f) u)))))) (\lambda (_: F).(\lambda (e1: 
+C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2)))))) (ex4_5 F C C T T 
+(\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
+(u2: T).(eq C e (CHead e2 (Flat f) u2))))))) (\lambda (f: F).(\lambda (e1: 
+C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O (CHead c k 
+t) (CHead e1 (Flat f) u1))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: 
+C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (\lambda (_: 
+F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 
+O v e1 e2)))))))) (\lambda (x0: T).(\lambda (x1: C).(\lambda (x2: 
+nat).(\lambda (H4: (eq nat (S n0) (s k x2))).(\lambda (H5: (eq C c2 (CHead x1 
+k x0))).(\lambda (H6: (subst0 x2 v t x0)).(\lambda (H7: (csubst0 x2 v c 
+x1)).(let H8 \def (eq_ind C c2 (\lambda (c0: C).(drop (S n0) O c0 e)) H1 
+(CHead x1 k x0) H5) in (K_ind (\lambda (k0: K).((eq nat (S n0) (s k0 x2)) \to 
 ((drop (r k0 n0) O x1 e) \to (or4 (drop (S n0) O (CHead c k0 t) e) (ex3_4 F C 
 T T (\lambda (f: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C e 
 (CHead e0 (Flat f) u2)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (u1: 
@@ -5498,70 +5488,140 @@ C e (CHead e2 (Flat f) u2))))))) (\lambda (f: F).(\lambda (e1: C).(\lambda
 e1 (Flat f) u1))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: 
 C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (\lambda (_: 
 F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 
-O v e1 e2))))))))))) (\lambda (b: B).(\lambda (H8: (eq nat (S n0) (s (Bind b) 
-x2))).(\lambda (H9: (drop (r (Bind b) n0) O x1 e)).(let H10 \def (f_equal nat 
-nat (\lambda (e0: nat).(match e0 in nat return (\lambda (_: nat).nat) with [O 
-\Rightarrow n0 | (S n1) \Rightarrow n1])) (S n0) (S x2) H8) in (let H11 \def 
-(eq_ind_r nat x2 (\lambda (n1: nat).(csubst0 n1 v c x1)) H6 n0 H10) in (let 
-H12 \def (eq_ind_r nat x2 (\lambda (n1: nat).(subst0 n1 v t x0)) H5 n0 H10) 
-in (let H13 \def (IHn c x1 v H11 e H9) in (or4_ind (drop n0 O c e) (ex3_4 F C 
-T T (\lambda (f: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C e 
+O v e1 e2))))))))))) (\lambda (b: B).(\lambda (H9: (eq nat (S n0) (s (Bind b) 
+x2))).(\lambda (H10: (drop (r (Bind b) n0) O x1 e)).(let H11 \def (f_equal 
+nat nat (\lambda (e0: nat).(match e0 with [O \Rightarrow n0 | (S n1) 
+\Rightarrow n1])) (S n0) (S x2) H9) in (let H12 \def (eq_ind_r nat x2 
+(\lambda (n1: nat).(csubst0 n1 v c x1)) H7 n0 H11) in (let H13 \def (eq_ind_r 
+nat x2 (\lambda (n1: nat).(subst0 n1 v t x0)) H6 n0 H11) in (let H14 \def 
+(IHn c x1 v H12 e H10) in (or4_ind (drop n0 O c e) (ex3_4 F C T T (\lambda 
+(f: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e0 
+(Flat f) u2)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (u1: T).(\lambda 
+(_: T).(drop n0 O c (CHead e0 (Flat f) u1)))))) (\lambda (_: F).(\lambda (_: 
+C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (ex3_4 F C C T 
+(\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(eq C e 
+(CHead e2 (Flat f) u)))))) (\lambda (f: F).(\lambda (e1: C).(\lambda (_: 
+C).(\lambda (u: T).(drop n0 O c (CHead e1 (Flat f) u)))))) (\lambda (_: 
+F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2)))))) 
+(ex4_5 F C C T T (\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda 
+(_: T).(\lambda (u2: T).(eq C e (CHead e2 (Flat f) u2))))))) (\lambda (f: 
+F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(drop n0 
+O c (CHead e1 (Flat f) u1))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: 
+C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (\lambda (_: 
+F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 
+O v e1 e2))))))) (or4 (drop (S n0) O (CHead c (Bind b) t) e) (ex3_4 F C T T 
+(\lambda (f: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C e 
 (CHead e0 (Flat f) u2)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (u1: 
-T).(\lambda (_: T).(drop n0 O c (CHead e0 (Flat f) u1)))))) (\lambda (_: 
+T).(\lambda (_: T).(drop (S n0) O (CHead c (Bind b) t) (CHead e0 (Flat f) 
+u1)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: 
+T).(subst0 O v u1 u2)))))) (ex3_4 F C C T (\lambda (f: F).(\lambda (_: 
+C).(\lambda (e2: C).(\lambda (u: T).(eq C e (CHead e2 (Flat f) u)))))) 
+(\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(drop (S n0) 
+O (CHead c (Bind b) t) (CHead e1 (Flat f) u)))))) (\lambda (_: F).(\lambda 
+(e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2)))))) (ex4_5 F C 
+C T T (\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: 
+T).(\lambda (u2: T).(eq C e (CHead e2 (Flat f) u2))))))) (\lambda (f: 
+F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(drop (S 
+n0) O (CHead c (Bind b) t) (CHead e1 (Flat f) u1))))))) (\lambda (_: 
+F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 
+O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda 
+(_: T).(\lambda (_: T).(csubst0 O v e1 e2)))))))) (\lambda (H15: (drop n0 O c 
+e)).(or4_intro0 (drop (S n0) O (CHead c (Bind b) t) e) (ex3_4 F C T T 
+(\lambda (f: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C e 
+(CHead e0 (Flat f) u2)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (u1: 
+T).(\lambda (_: T).(drop (S n0) O (CHead c (Bind b) t) (CHead e0 (Flat f) 
+u1)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: 
+T).(subst0 O v u1 u2)))))) (ex3_4 F C C T (\lambda (f: F).(\lambda (_: 
+C).(\lambda (e2: C).(\lambda (u: T).(eq C e (CHead e2 (Flat f) u)))))) 
+(\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(drop (S n0) 
+O (CHead c (Bind b) t) (CHead e1 (Flat f) u)))))) (\lambda (_: F).(\lambda 
+(e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2)))))) (ex4_5 F C 
+C T T (\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: 
+T).(\lambda (u2: T).(eq C e (CHead e2 (Flat f) u2))))))) (\lambda (f: 
+F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(drop (S 
+n0) O (CHead c (Bind b) t) (CHead e1 (Flat f) u1))))))) (\lambda (_: 
+F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 
+O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda 
+(_: T).(\lambda (_: T).(csubst0 O v e1 e2))))))) (drop_drop (Bind b) n0 c e 
+H15 t))) (\lambda (H15: (ex3_4 F C T T (\lambda (f: F).(\lambda (e0: 
+C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e0 (Flat f) u2)))))) 
+(\lambda (f: F).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: T).(drop n0 O 
+c (CHead e0 (Flat f) u1)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u1: 
+T).(\lambda (u2: T).(subst0 O v u1 u2))))))).(ex3_4_ind F C T T (\lambda (f: 
+F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e0 (Flat 
+f) u2)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: 
+T).(drop n0 O c (CHead e0 (Flat f) u1)))))) (\lambda (_: F).(\lambda (_: 
+C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2))))) (or4 (drop (S n0) 
+O (CHead c (Bind b) t) e) (ex3_4 F C T T (\lambda (f: F).(\lambda (e0: 
+C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e0 (Flat f) u2)))))) 
+(\lambda (f: F).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: T).(drop (S 
+n0) O (CHead c (Bind b) t) (CHead e0 (Flat f) u1)))))) (\lambda (_: 
+F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) 
+(ex3_4 F C C T (\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: 
+T).(eq C e (CHead e2 (Flat f) u)))))) (\lambda (f: F).(\lambda (e1: 
+C).(\lambda (_: C).(\lambda (u: T).(drop (S n0) O (CHead c (Bind b) t) (CHead 
+e1 (Flat f) u)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: 
+C).(\lambda (_: T).(csubst0 O v e1 e2)))))) (ex4_5 F C C T T (\lambda (f: 
+F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (u2: T).(eq C e 
+(CHead e2 (Flat f) u2))))))) (\lambda (f: F).(\lambda (e1: C).(\lambda (_: 
+C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O (CHead c (Bind b) t) 
+(CHead e1 (Flat f) u1))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: 
+C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (\lambda (_: 
+F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 
+O v e1 e2)))))))) (\lambda (x3: F).(\lambda (x4: C).(\lambda (x5: T).(\lambda 
+(x6: T).(\lambda (H16: (eq C e (CHead x4 (Flat x3) x6))).(\lambda (H17: (drop 
+n0 O c (CHead x4 (Flat x3) x5))).(\lambda (H18: (subst0 O v x5 x6)).(let H19 
+\def (eq_ind C e (\lambda (c0: C).(drop n0 O x1 c0)) H10 (CHead x4 (Flat x3) 
+x6) H16) in (eq_ind_r C (CHead x4 (Flat x3) x6) (\lambda (c0: C).(or4 (drop 
+(S n0) O (CHead c (Bind b) t) c0) (ex3_4 F C T T (\lambda (f: F).(\lambda 
+(e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C c0 (CHead e0 (Flat f) u2)))))) 
+(\lambda (f: F).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: T).(drop (S 
+n0) O (CHead c (Bind b) t) (CHead e0 (Flat f) u1)))))) (\lambda (_: 
+F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) 
+(ex3_4 F C C T (\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: 
+T).(eq C c0 (CHead e2 (Flat f) u)))))) (\lambda (f: F).(\lambda (e1: 
+C).(\lambda (_: C).(\lambda (u: T).(drop (S n0) O (CHead c (Bind b) t) (CHead 
+e1 (Flat f) u)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: 
+C).(\lambda (_: T).(csubst0 O v e1 e2)))))) (ex4_5 F C C T T (\lambda (f: 
+F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (u2: T).(eq C c0 
+(CHead e2 (Flat f) u2))))))) (\lambda (f: F).(\lambda (e1: C).(\lambda (_: 
+C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O (CHead c (Bind b) t) 
+(CHead e1 (Flat f) u1))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: 
+C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (\lambda (_: 
+F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 
+O v e1 e2))))))))) (or4_intro1 (drop (S n0) O (CHead c (Bind b) t) (CHead x4 
+(Flat x3) x6)) (ex3_4 F C T T (\lambda (f: F).(\lambda (e0: C).(\lambda (_: 
+T).(\lambda (u2: T).(eq C (CHead x4 (Flat x3) x6) (CHead e0 (Flat f) u2)))))) 
+(\lambda (f: F).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: T).(drop (S 
+n0) O (CHead c (Bind b) t) (CHead e0 (Flat f) u1)))))) (\lambda (_: 
 F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) 
 (ex3_4 F C C T (\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: 
-T).(eq C e (CHead e2 (Flat f) u)))))) (\lambda (f: F).(\lambda (e1: 
-C).(\lambda (_: C).(\lambda (u: T).(drop n0 O c (CHead e1 (Flat f) u)))))) 
-(\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O 
-v e1 e2)))))) (ex4_5 F C C T T (\lambda (f: F).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e2 (Flat f) u2))))))) 
-(\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda 
-(_: T).(drop n0 O c (CHead e1 (Flat f) u1))))))) (\lambda (_: F).(\lambda (_: 
-C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) 
-(\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
-(_: T).(csubst0 O v e1 e2))))))) (or4 (drop (S n0) O (CHead c (Bind b) t) e) 
-(ex3_4 F C T T (\lambda (f: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: 
-T).(eq C e (CHead e0 (Flat f) u2)))))) (\lambda (f: F).(\lambda (e0: 
-C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O (CHead c (Bind b) t) 
-(CHead e0 (Flat f) u1)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u1: 
-T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (ex3_4 F C C T (\lambda (f: 
-F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(eq C e (CHead e2 (Flat 
-f) u)))))) (\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: 
-T).(drop (S n0) O (CHead c (Bind b) t) (CHead e1 (Flat f) u)))))) (\lambda 
-(_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 
-e2)))))) (ex4_5 F C C T T (\lambda (f: F).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e2 (Flat f) u2))))))) 
-(\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda 
-(_: T).(drop (S n0) O (CHead c (Bind b) t) (CHead e1 (Flat f) u1))))))) 
-(\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda 
-(u2: T).(subst0 O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda 
-(e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 e2)))))))) (\lambda 
-(H14: (drop n0 O c e)).(or4_intro0 (drop (S n0) O (CHead c (Bind b) t) e) 
-(ex3_4 F C T T (\lambda (f: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: 
-T).(eq C e (CHead e0 (Flat f) u2)))))) (\lambda (f: F).(\lambda (e0: 
-C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O (CHead c (Bind b) t) 
+T).(eq C (CHead x4 (Flat x3) x6) (CHead e2 (Flat f) u)))))) (\lambda (f: 
+F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(drop (S n0) O (CHead c 
+(Bind b) t) (CHead e1 (Flat f) u)))))) (\lambda (_: F).(\lambda (e1: 
+C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2)))))) (ex4_5 F C C T T 
+(\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
+(u2: T).(eq C (CHead x4 (Flat x3) x6) (CHead e2 (Flat f) u2))))))) (\lambda 
+(f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: 
+T).(drop (S n0) O (CHead c (Bind b) t) (CHead e1 (Flat f) u1))))))) (\lambda 
+(_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: 
+T).(subst0 O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: 
+C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 e2))))))) (ex3_4_intro F C 
+T T (\lambda (f: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C 
+(CHead x4 (Flat x3) x6) (CHead e0 (Flat f) u2)))))) (\lambda (f: F).(\lambda 
+(e0: C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O (CHead c (Bind b) t) 
 (CHead e0 (Flat f) u1)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u1: 
-T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (ex3_4 F C C T (\lambda (f: 
+T).(\lambda (u2: T).(subst0 O v u1 u2))))) x3 x4 x5 x6 (refl_equal C (CHead 
+x4 (Flat x3) x6)) (drop_drop (Bind b) n0 c (CHead x4 (Flat x3) x5) H17 t) 
+H18)) e H16))))))))) H15)) (\lambda (H15: (ex3_4 F C C T (\lambda (f: 
 F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(eq C e (CHead e2 (Flat 
 f) u)))))) (\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: 
-T).(drop (S n0) O (CHead c (Bind b) t) (CHead e1 (Flat f) u)))))) (\lambda 
-(_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 
-e2)))))) (ex4_5 F C C T T (\lambda (f: F).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e2 (Flat f) u2))))))) 
-(\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda 
-(_: T).(drop (S n0) O (CHead c (Bind b) t) (CHead e1 (Flat f) u1))))))) 
-(\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda 
-(u2: T).(subst0 O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda 
-(e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 e2))))))) (drop_drop 
-(Bind b) n0 c e H14 t))) (\lambda (H14: (ex3_4 F C T T (\lambda (f: 
-F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e0 (Flat 
-f) u2)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: 
-T).(drop n0 O c (CHead e0 (Flat f) u1)))))) (\lambda (_: F).(\lambda (_: 
-C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2))))))).(ex3_4_ind F C 
-T T (\lambda (f: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C e 
-(CHead e0 (Flat f) u2)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (u1: 
-T).(\lambda (_: T).(drop n0 O c (CHead e0 (Flat f) u1)))))) (\lambda (_: 
-F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2))))) 
+T).(drop n0 O c (CHead e1 (Flat f) u)))))) (\lambda (_: F).(\lambda (e1: 
+C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2))))))).(ex3_4_ind F C 
+C T (\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(eq C e 
+(CHead e2 (Flat f) u)))))) (\lambda (f: F).(\lambda (e1: C).(\lambda (_: 
+C).(\lambda (u: T).(drop n0 O c (CHead e1 (Flat f) u)))))) (\lambda (_: 
+F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2))))) 
 (or4 (drop (S n0) O (CHead c (Bind b) t) e) (ex3_4 F C T T (\lambda (f: 
 F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e0 (Flat 
 f) u2)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: 
@@ -5579,78 +5639,10 @@ C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O (CHead c
 C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) 
 (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
 (_: T).(csubst0 O v e1 e2)))))))) (\lambda (x3: F).(\lambda (x4: C).(\lambda 
-(x5: T).(\lambda (x6: T).(\lambda (H15: (eq C e (CHead x4 (Flat x3) 
-x6))).(\lambda (H16: (drop n0 O c (CHead x4 (Flat x3) x5))).(\lambda (H17: 
-(subst0 O v x5 x6)).(eq_ind_r C (CHead x4 (Flat x3) x6) (\lambda (c0: C).(or4 
-(drop (S n0) O (CHead c (Bind b) t) c0) (ex3_4 F C T T (\lambda (f: 
-F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C c0 (CHead e0 (Flat 
-f) u2)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: 
-T).(drop (S n0) O (CHead c (Bind b) t) (CHead e0 (Flat f) u1)))))) (\lambda 
-(_: F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 
-u2)))))) (ex3_4 F C C T (\lambda (f: F).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (u: T).(eq C c0 (CHead e2 (Flat f) u)))))) (\lambda (f: 
-F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(drop (S n0) O (CHead c 
-(Bind b) t) (CHead e1 (Flat f) u)))))) (\lambda (_: F).(\lambda (e1: 
-C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2)))))) (ex4_5 F C C T T 
-(\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
-(u2: T).(eq C c0 (CHead e2 (Flat f) u2))))))) (\lambda (f: F).(\lambda (e1: 
-C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O (CHead c 
-(Bind b) t) (CHead e1 (Flat f) u1))))))) (\lambda (_: F).(\lambda (_: 
-C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) 
-(\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
-(_: T).(csubst0 O v e1 e2))))))))) (or4_intro1 (drop (S n0) O (CHead c (Bind 
-b) t) (CHead x4 (Flat x3) x6)) (ex3_4 F C T T (\lambda (f: F).(\lambda (e0: 
-C).(\lambda (_: T).(\lambda (u2: T).(eq C (CHead x4 (Flat x3) x6) (CHead e0 
-(Flat f) u2)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (u1: T).(\lambda 
-(_: T).(drop (S n0) O (CHead c (Bind b) t) (CHead e0 (Flat f) u1)))))) 
-(\lambda (_: F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v 
-u1 u2)))))) (ex3_4 F C C T (\lambda (f: F).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (u: T).(eq C (CHead x4 (Flat x3) x6) (CHead e2 (Flat f) u)))))) 
-(\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(drop (S n0) 
-O (CHead c (Bind b) t) (CHead e1 (Flat f) u)))))) (\lambda (_: F).(\lambda 
-(e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2)))))) (ex4_5 F C 
-C T T (\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: 
-T).(\lambda (u2: T).(eq C (CHead x4 (Flat x3) x6) (CHead e2 (Flat f) 
-u2))))))) (\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: 
-T).(\lambda (_: T).(drop (S n0) O (CHead c (Bind b) t) (CHead e1 (Flat f) 
-u1))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: 
-T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: 
-C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 e2))))))) 
-(ex3_4_intro F C T T (\lambda (f: F).(\lambda (e0: C).(\lambda (_: 
-T).(\lambda (u2: T).(eq C (CHead x4 (Flat x3) x6) (CHead e0 (Flat f) u2)))))) 
-(\lambda (f: F).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: T).(drop (S 
-n0) O (CHead c (Bind b) t) (CHead e0 (Flat f) u1)))))) (\lambda (_: 
-F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2))))) 
-x3 x4 x5 x6 (refl_equal C (CHead x4 (Flat x3) x6)) (drop_drop (Bind b) n0 c 
-(CHead x4 (Flat x3) x5) H16 t) H17)) e H15)))))))) H14)) (\lambda (H14: 
-(ex3_4 F C C T (\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: 
-T).(eq C e (CHead e2 (Flat f) u)))))) (\lambda (f: F).(\lambda (e1: 
-C).(\lambda (_: C).(\lambda (u: T).(drop n0 O c (CHead e1 (Flat f) u)))))) 
-(\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O 
-v e1 e2))))))).(ex3_4_ind F C C T (\lambda (f: F).(\lambda (_: C).(\lambda 
-(e2: C).(\lambda (u: T).(eq C e (CHead e2 (Flat f) u)))))) (\lambda (f: 
-F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(drop n0 O c (CHead e1 
-(Flat f) u)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda 
-(_: T).(csubst0 O v e1 e2))))) (or4 (drop (S n0) O (CHead c (Bind b) t) e) 
-(ex3_4 F C T T (\lambda (f: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: 
-T).(eq C e (CHead e0 (Flat f) u2)))))) (\lambda (f: F).(\lambda (e0: 
-C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O (CHead c (Bind b) t) 
-(CHead e0 (Flat f) u1)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u1: 
-T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (ex3_4 F C C T (\lambda (f: 
-F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(eq C e (CHead e2 (Flat 
-f) u)))))) (\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: 
-T).(drop (S n0) O (CHead c (Bind b) t) (CHead e1 (Flat f) u)))))) (\lambda 
-(_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 
-e2)))))) (ex4_5 F C C T T (\lambda (f: F).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e2 (Flat f) u2))))))) 
-(\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda 
-(_: T).(drop (S n0) O (CHead c (Bind b) t) (CHead e1 (Flat f) u1))))))) 
-(\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda 
-(u2: T).(subst0 O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda 
-(e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 e2)))))))) (\lambda 
-(x3: F).(\lambda (x4: C).(\lambda (x5: C).(\lambda (x6: T).(\lambda (H15: (eq 
-C e (CHead x5 (Flat x3) x6))).(\lambda (H16: (drop n0 O c (CHead x4 (Flat x3) 
-x6))).(\lambda (H17: (csubst0 O v x4 x5)).(eq_ind_r C (CHead x5 (Flat x3) x6) 
+(x5: C).(\lambda (x6: T).(\lambda (H16: (eq C e (CHead x5 (Flat x3) 
+x6))).(\lambda (H17: (drop n0 O c (CHead x4 (Flat x3) x6))).(\lambda (H18: 
+(csubst0 O v x4 x5)).(let H19 \def (eq_ind C e (\lambda (c0: C).(drop n0 O x1 
+c0)) H10 (CHead x5 (Flat x3) x6) H16) in (eq_ind_r C (CHead x5 (Flat x3) x6) 
 (\lambda (c0: C).(or4 (drop (S n0) O (CHead c (Bind b) t) c0) (ex3_4 F C T T 
 (\lambda (f: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C c0 
 (CHead e0 (Flat f) u2)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (u1: 
@@ -5691,7 +5683,7 @@ C).(\lambda (u: T).(eq C (CHead x5 (Flat x3) x6) (CHead e2 (Flat f) u))))))
 O (CHead c (Bind b) t) (CHead e1 (Flat f) u)))))) (\lambda (_: F).(\lambda 
 (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2))))) x3 x4 x5 x6 
 (refl_equal C (CHead x5 (Flat x3) x6)) (drop_drop (Bind b) n0 c (CHead x4 
-(Flat x3) x6) H16 t) H17)) e H15)))))))) H14)) (\lambda (H14: (ex4_5 F C C T 
+(Flat x3) x6) H17 t) H18)) e H16))))))))) H15)) (\lambda (H15: (ex4_5 F C C T 
 T (\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
 (u2: T).(eq C e (CHead e2 (Flat f) u2))))))) (\lambda (f: F).(\lambda (e1: 
 C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(drop n0 O c (CHead e1 
@@ -5722,41 +5714,42 @@ C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e2 (Flat f) u2)))))))
 (u2: T).(subst0 O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda 
 (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 e2)))))))) (\lambda 
 (x3: F).(\lambda (x4: C).(\lambda (x5: C).(\lambda (x6: T).(\lambda (x7: 
-T).(\lambda (H15: (eq C e (CHead x5 (Flat x3) x7))).(\lambda (H16: (drop n0 O 
-c (CHead x4 (Flat x3) x6))).(\lambda (H17: (subst0 O v x6 x7)).(\lambda (H18: 
-(csubst0 O v x4 x5)).(eq_ind_r C (CHead x5 (Flat x3) x7) (\lambda (c0: 
-C).(or4 (drop (S n0) O (CHead c (Bind b) t) c0) (ex3_4 F C T T (\lambda (f: 
-F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C c0 (CHead e0 (Flat 
-f) u2)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: 
-T).(drop (S n0) O (CHead c (Bind b) t) (CHead e0 (Flat f) u1)))))) (\lambda 
-(_: F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 
-u2)))))) (ex3_4 F C C T (\lambda (f: F).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (u: T).(eq C c0 (CHead e2 (Flat f) u)))))) (\lambda (f: 
-F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(drop (S n0) O (CHead c 
-(Bind b) t) (CHead e1 (Flat f) u)))))) (\lambda (_: F).(\lambda (e1: 
-C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2)))))) (ex4_5 F C C T T 
-(\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
-(u2: T).(eq C c0 (CHead e2 (Flat f) u2))))))) (\lambda (f: F).(\lambda (e1: 
-C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O (CHead c 
-(Bind b) t) (CHead e1 (Flat f) u1))))))) (\lambda (_: F).(\lambda (_: 
-C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) 
-(\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
-(_: T).(csubst0 O v e1 e2))))))))) (or4_intro3 (drop (S n0) O (CHead c (Bind 
-b) t) (CHead x5 (Flat x3) x7)) (ex3_4 F C T T (\lambda (f: F).(\lambda (e0: 
-C).(\lambda (_: T).(\lambda (u2: T).(eq C (CHead x5 (Flat x3) x7) (CHead e0 
-(Flat f) u2)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (u1: T).(\lambda 
-(_: T).(drop (S n0) O (CHead c (Bind b) t) (CHead e0 (Flat f) u1)))))) 
-(\lambda (_: F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v 
-u1 u2)))))) (ex3_4 F C C T (\lambda (f: F).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (u: T).(eq C (CHead x5 (Flat x3) x7) (CHead e2 (Flat f) u)))))) 
+T).(\lambda (H16: (eq C e (CHead x5 (Flat x3) x7))).(\lambda (H17: (drop n0 O 
+c (CHead x4 (Flat x3) x6))).(\lambda (H18: (subst0 O v x6 x7)).(\lambda (H19: 
+(csubst0 O v x4 x5)).(let H20 \def (eq_ind C e (\lambda (c0: C).(drop n0 O x1 
+c0)) H10 (CHead x5 (Flat x3) x7) H16) in (eq_ind_r C (CHead x5 (Flat x3) x7) 
+(\lambda (c0: C).(or4 (drop (S n0) O (CHead c (Bind b) t) c0) (ex3_4 F C T T 
+(\lambda (f: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C c0 
+(CHead e0 (Flat f) u2)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda (u1: 
+T).(\lambda (_: T).(drop (S n0) O (CHead c (Bind b) t) (CHead e0 (Flat f) 
+u1)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: 
+T).(subst0 O v u1 u2)))))) (ex3_4 F C C T (\lambda (f: F).(\lambda (_: 
+C).(\lambda (e2: C).(\lambda (u: T).(eq C c0 (CHead e2 (Flat f) u)))))) 
 (\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(drop (S n0) 
 O (CHead c (Bind b) t) (CHead e1 (Flat f) u)))))) (\lambda (_: F).(\lambda 
 (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2)))))) (ex4_5 F C 
 C T T (\lambda (f: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: 
-T).(\lambda (u2: T).(eq C (CHead x5 (Flat x3) x7) (CHead e2 (Flat f) 
-u2))))))) (\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: 
-T).(\lambda (_: T).(drop (S n0) O (CHead c (Bind b) t) (CHead e1 (Flat f) 
-u1))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: 
+T).(\lambda (u2: T).(eq C c0 (CHead e2 (Flat f) u2))))))) (\lambda (f: 
+F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(drop (S 
+n0) O (CHead c (Bind b) t) (CHead e1 (Flat f) u1))))))) (\lambda (_: 
+F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 
+O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda 
+(_: T).(\lambda (_: T).(csubst0 O v e1 e2))))))))) (or4_intro3 (drop (S n0) O 
+(CHead c (Bind b) t) (CHead x5 (Flat x3) x7)) (ex3_4 F C T T (\lambda (f: 
+F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C (CHead x5 (Flat 
+x3) x7) (CHead e0 (Flat f) u2)))))) (\lambda (f: F).(\lambda (e0: C).(\lambda 
+(u1: T).(\lambda (_: T).(drop (S n0) O (CHead c (Bind b) t) (CHead e0 (Flat 
+f) u1)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: 
+T).(subst0 O v u1 u2)))))) (ex3_4 F C C T (\lambda (f: F).(\lambda (_: 
+C).(\lambda (e2: C).(\lambda (u: T).(eq C (CHead x5 (Flat x3) x7) (CHead e2 
+(Flat f) u)))))) (\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda 
+(u: T).(drop (S n0) O (CHead c (Bind b) t) (CHead e1 (Flat f) u)))))) 
+(\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O 
+v e1 e2)))))) (ex4_5 F C C T T (\lambda (f: F).(\lambda (_: C).(\lambda (e2: 
+C).(\lambda (_: T).(\lambda (u2: T).(eq C (CHead x5 (Flat x3) x7) (CHead e2 
+(Flat f) u2))))))) (\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda 
+(u1: T).(\lambda (_: T).(drop (S n0) O (CHead c (Bind b) t) (CHead e1 (Flat 
+f) u1))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: 
 T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: 
 C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 e2))))))) 
 (ex4_5_intro F C C T T (\lambda (f: F).(\lambda (_: C).(\lambda (e2: 
@@ -5764,163 +5757,166 @@ C).(\lambda (_: T).(\lambda (u2: T).(eq C (CHead x5 (Flat x3) x7) (CHead e2
 (Flat f) u2))))))) (\lambda (f: F).(\lambda (e1: C).(\lambda (_: C).(\lambda 
 (u1: T).(\lambda (_: T).(drop (S n0) O (CHead c (Bind b) t) (CHead e1 (Flat 
 f) u1))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: 
-T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: 
-C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 e2)))))) 
-x3 x4 x5 x6 x7 (refl_equal C (CHead x5 (Flat x3) x7)) (drop_drop (Bind b) n0 
-c (CHead x4 (Flat x3) x6) H16 t) H17 H18)) e H15)))))))))) H14)) H13)))))))) 
-(\lambda (f: F).(\lambda (H8: (eq nat (S n0) (s (Flat f) x2))).(\lambda (H9: 
-(drop (r (Flat f) n0) O x1 e)).(let H10 \def (f_equal nat nat (\lambda (e0: 
-nat).e0) (S n0) x2 H8) in (let H11 \def (eq_ind_r nat x2 (\lambda (n1: 
-nat).(csubst0 n1 v c x1)) H6 (S n0) H10) in (let H12 \def (eq_ind_r nat x2 
-(\lambda (n1: nat).(subst0 n1 v t x0)) H5 (S n0) H10) in (let H13 \def (H x1 
-v H11 e H9) in (or4_ind (drop (S n0) O c e) (ex3_4 F C T T (\lambda (f0: 
-F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e0 (Flat 
-f0) u2)))))) (\lambda (f0: F).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: 
-T).(drop (S n0) O c (CHead e0 (Flat f0) u1)))))) (\lambda (_: F).(\lambda (_: 
-C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (ex3_4 F C C T 
-(\lambda (f0: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(eq C e 
-(CHead e2 (Flat f0) u)))))) (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: 
-C).(\lambda (u: T).(drop (S n0) O c (CHead e1 (Flat f0) u)))))) (\lambda (_: 
-F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2)))))) 
-(ex4_5 F C C T T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: C).(\lambda 
-(_: T).(\lambda (u2: T).(eq C e (CHead e2 (Flat f0) u2))))))) (\lambda (f0: 
-F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(drop (S 
-n0) O c (CHead e1 (Flat f0) u1))))))) (\lambda (_: F).(\lambda (_: 
-C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) 
-(\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
-(_: T).(csubst0 O v e1 e2))))))) (or4 (drop (S n0) O (CHead c (Flat f) t) e) 
-(ex3_4 F C T T (\lambda (f0: F).(\lambda (e0: C).(\lambda (_: T).(\lambda 
-(u2: T).(eq C e (CHead e0 (Flat f0) u2)))))) (\lambda (f0: F).(\lambda (e0: 
-C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O (CHead c (Flat f) t) 
-(CHead e0 (Flat f0) u1)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u1: 
-T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (ex3_4 F C C T (\lambda (f0: 
-F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(eq C e (CHead e2 (Flat 
-f0) u)))))) (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: 
-T).(drop (S n0) O (CHead c (Flat f) t) (CHead e1 (Flat f0) u)))))) (\lambda 
-(_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 
-e2)))))) (ex4_5 F C C T T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e2 (Flat f0) u2))))))) 
-(\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda 
-(_: T).(drop (S n0) O (CHead c (Flat f) t) (CHead e1 (Flat f0) u1))))))) 
-(\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda 
-(u2: T).(subst0 O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda 
-(e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 e2)))))))) (\lambda 
-(H14: (drop (S n0) O c e)).(or4_intro0 (drop (S n0) O (CHead c (Flat f) t) e) 
-(ex3_4 F C T T (\lambda (f0: F).(\lambda (e0: C).(\lambda (_: T).(\lambda 
-(u2: T).(eq C e (CHead e0 (Flat f0) u2)))))) (\lambda (f0: F).(\lambda (e0: 
-C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O (CHead c (Flat f) t) 
-(CHead e0 (Flat f0) u1)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u1: 
-T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (ex3_4 F C C T (\lambda (f0: 
-F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(eq C e (CHead e2 (Flat 
-f0) u)))))) (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: 
-T).(drop (S n0) O (CHead c (Flat f) t) (CHead e1 (Flat f0) u)))))) (\lambda 
-(_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 
-e2)))))) (ex4_5 F C C T T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e2 (Flat f0) u2))))))) 
-(\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda 
-(_: T).(drop (S n0) O (CHead c (Flat f) t) (CHead e1 (Flat f0) u1))))))) 
-(\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda 
-(u2: T).(subst0 O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda 
-(e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 e2))))))) (drop_drop 
-(Flat f) n0 c e H14 t))) (\lambda (H14: (ex3_4 F C T T (\lambda (f0: 
-F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e0 (Flat 
-f0) u2)))))) (\lambda (f0: F).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: 
-T).(drop (S n0) O c (CHead e0 (Flat f0) u1)))))) (\lambda (_: F).(\lambda (_: 
-C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2))))))).(ex3_4_ind F C 
-T T (\lambda (f0: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C 
-e (CHead e0 (Flat f0) u2)))))) (\lambda (f0: F).(\lambda (e0: C).(\lambda 
-(u1: T).(\lambda (_: T).(drop (S n0) O c (CHead e0 (Flat f0) u1)))))) 
-(\lambda (_: F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v 
-u1 u2))))) (or4 (drop (S n0) O (CHead c (Flat f) t) e) (ex3_4 F C T T 
-(\lambda (f0: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C e 
-(CHead e0 (Flat f0) u2)))))) (\lambda (f0: F).(\lambda (e0: C).(\lambda (u1: 
-T).(\lambda (_: T).(drop (S n0) O (CHead c (Flat f) t) (CHead e0 (Flat f0) 
-u1)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: 
-T).(subst0 O v u1 u2)))))) (ex3_4 F C C T (\lambda (f0: F).(\lambda (_: 
-C).(\lambda (e2: C).(\lambda (u: T).(eq C e (CHead e2 (Flat f0) u)))))) 
-(\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(drop (S 
-n0) O (CHead c (Flat f) t) (CHead e1 (Flat f0) u)))))) (\lambda (_: 
-F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2)))))) 
-(ex4_5 F C C T T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: C).(\lambda 
-(_: T).(\lambda (u2: T).(eq C e (CHead e2 (Flat f0) u2))))))) (\lambda (f0: 
-F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(drop (S 
-n0) O (CHead c (Flat f) t) (CHead e1 (Flat f0) u1))))))) (\lambda (_: 
-F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 
-O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda 
-(_: T).(\lambda (_: T).(csubst0 O v e1 e2)))))))) (\lambda (x3: F).(\lambda 
-(x4: C).(\lambda (x5: T).(\lambda (x6: T).(\lambda (H15: (eq C e (CHead x4 
-(Flat x3) x6))).(\lambda (H16: (drop (S n0) O c (CHead x4 (Flat x3) 
-x5))).(\lambda (H17: (subst0 O v x5 x6)).(eq_ind_r C (CHead x4 (Flat x3) x6) 
-(\lambda (c0: C).(or4 (drop (S n0) O (CHead c (Flat f) t) c0) (ex3_4 F C T T 
-(\lambda (f0: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C c0 
-(CHead e0 (Flat f0) u2)))))) (\lambda (f0: F).(\lambda (e0: C).(\lambda (u1: 
-T).(\lambda (_: T).(drop (S n0) O (CHead c (Flat f) t) (CHead e0 (Flat f0) 
-u1)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: 
-T).(subst0 O v u1 u2)))))) (ex3_4 F C C T (\lambda (f0: F).(\lambda (_: 
-C).(\lambda (e2: C).(\lambda (u: T).(eq C c0 (CHead e2 (Flat f0) u)))))) 
-(\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(drop (S 
-n0) O (CHead c (Flat f) t) (CHead e1 (Flat f0) u)))))) (\lambda (_: 
-F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2)))))) 
-(ex4_5 F C C T T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: C).(\lambda 
-(_: T).(\lambda (u2: T).(eq C c0 (CHead e2 (Flat f0) u2))))))) (\lambda (f0: 
-F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(drop (S 
-n0) O (CHead c (Flat f) t) (CHead e1 (Flat f0) u1))))))) (\lambda (_: 
-F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 
-O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda 
-(_: T).(\lambda (_: T).(csubst0 O v e1 e2))))))))) (or4_intro1 (drop (S n0) O 
-(CHead c (Flat f) t) (CHead x4 (Flat x3) x6)) (ex3_4 F C T T (\lambda (f0: 
-F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C (CHead x4 (Flat 
-x3) x6) (CHead e0 (Flat f0) u2)))))) (\lambda (f0: F).(\lambda (e0: 
-C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O (CHead c (Flat f) t) 
-(CHead e0 (Flat f0) u1)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u1: 
-T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (ex3_4 F C C T (\lambda (f0: 
-F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(eq C (CHead x4 (Flat x3) 
-x6) (CHead e2 (Flat f0) u)))))) (\lambda (f0: F).(\lambda (e1: C).(\lambda 
-(_: C).(\lambda (u: T).(drop (S n0) O (CHead c (Flat f) t) (CHead e1 (Flat 
-f0) u)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: 
+T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: 
+C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 e2)))))) 
+x3 x4 x5 x6 x7 (refl_equal C (CHead x5 (Flat x3) x7)) (drop_drop (Bind b) n0 
+c (CHead x4 (Flat x3) x6) H17 t) H18 H19)) e H16))))))))))) H15)) H14)))))))) 
+(\lambda (f: F).(\lambda (H9: (eq nat (S n0) (s (Flat f) x2))).(\lambda (H10: 
+(drop (r (Flat f) n0) O x1 e)).(let H11 \def (f_equal nat nat (\lambda (e0: 
+nat).e0) (S n0) (s (Flat f) x2) H9) in (let H12 \def (eq_ind_r nat x2 
+(\lambda (n1: nat).(csubst0 n1 v c x1)) H7 (S n0) H11) in (let H13 \def 
+(eq_ind_r nat x2 (\lambda (n1: nat).(subst0 n1 v t x0)) H6 (S n0) H11) in 
+(let H14 \def (H x1 v H12 e H10) in (or4_ind (drop (S n0) O c e) (ex3_4 F C T 
+T (\lambda (f0: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C e 
+(CHead e0 (Flat f0) u2)))))) (\lambda (f0: F).(\lambda (e0: C).(\lambda (u1: 
+T).(\lambda (_: T).(drop (S n0) O c (CHead e0 (Flat f0) u1)))))) (\lambda (_: 
+F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) 
+(ex3_4 F C C T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: 
+T).(eq C e (CHead e2 (Flat f0) u)))))) (\lambda (f0: F).(\lambda (e1: 
+C).(\lambda (_: C).(\lambda (u: T).(drop (S n0) O c (CHead e1 (Flat f0) 
+u)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: 
 T).(csubst0 O v e1 e2)))))) (ex4_5 F C C T T (\lambda (f0: F).(\lambda (_: 
-C).(\lambda (e2: C).(\lambda (_: T).(\lambda (u2: T).(eq C (CHead x4 (Flat 
-x3) x6) (CHead e2 (Flat f0) u2))))))) (\lambda (f0: F).(\lambda (e1: 
-C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O (CHead c 
-(Flat f) t) (CHead e1 (Flat f0) u1))))))) (\lambda (_: F).(\lambda (_: 
-C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) 
-(\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
-(_: T).(csubst0 O v e1 e2))))))) (ex3_4_intro F C T T (\lambda (f0: 
-F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C (CHead x4 (Flat 
-x3) x6) (CHead e0 (Flat f0) u2)))))) (\lambda (f0: F).(\lambda (e0: 
+C).(\lambda (e2: C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e2 (Flat 
+f0) u2))))))) (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: 
+T).(\lambda (_: T).(drop (S n0) O c (CHead e1 (Flat f0) u1))))))) (\lambda 
+(_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: 
+T).(subst0 O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: 
+C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 e2))))))) (or4 (drop (S 
+n0) O (CHead c (Flat f) t) e) (ex3_4 F C T T (\lambda (f0: F).(\lambda (e0: 
+C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e0 (Flat f0) u2)))))) 
+(\lambda (f0: F).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: T).(drop (S 
+n0) O (CHead c (Flat f) t) (CHead e0 (Flat f0) u1)))))) (\lambda (_: 
+F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) 
+(ex3_4 F C C T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: 
+T).(eq C e (CHead e2 (Flat f0) u)))))) (\lambda (f0: F).(\lambda (e1: 
+C).(\lambda (_: C).(\lambda (u: T).(drop (S n0) O (CHead c (Flat f) t) (CHead 
+e1 (Flat f0) u)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: 
+C).(\lambda (_: T).(csubst0 O v e1 e2)))))) (ex4_5 F C C T T (\lambda (f0: 
+F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (u2: T).(eq C e 
+(CHead e2 (Flat f0) u2))))))) (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: 
 C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O (CHead c (Flat f) t) 
-(CHead e0 (Flat f0) u1)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u1: 
-T).(\lambda (u2: T).(subst0 O v u1 u2))))) x3 x4 x5 x6 (refl_equal C (CHead 
-x4 (Flat x3) x6)) (drop_drop (Flat f) n0 c (CHead x4 (Flat x3) x5) H16 t) 
-H17)) e H15)))))))) H14)) (\lambda (H14: (ex3_4 F C C T (\lambda (f0: 
-F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(eq C e (CHead e2 (Flat 
-f0) u)))))) (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: 
-T).(drop (S n0) O c (CHead e1 (Flat f0) u)))))) (\lambda (_: F).(\lambda (e1: 
-C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2))))))).(ex3_4_ind F C 
-C T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(eq C e 
+(CHead e1 (Flat f0) u1))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: 
+C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (\lambda (_: 
+F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 
+O v e1 e2)))))))) (\lambda (H15: (drop (S n0) O c e)).(or4_intro0 (drop (S 
+n0) O (CHead c (Flat f) t) e) (ex3_4 F C T T (\lambda (f0: F).(\lambda (e0: 
+C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e0 (Flat f0) u2)))))) 
+(\lambda (f0: F).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: T).(drop (S 
+n0) O (CHead c (Flat f) t) (CHead e0 (Flat f0) u1)))))) (\lambda (_: 
+F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) 
+(ex3_4 F C C T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: 
+T).(eq C e (CHead e2 (Flat f0) u)))))) (\lambda (f0: F).(\lambda (e1: 
+C).(\lambda (_: C).(\lambda (u: T).(drop (S n0) O (CHead c (Flat f) t) (CHead 
+e1 (Flat f0) u)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: 
+C).(\lambda (_: T).(csubst0 O v e1 e2)))))) (ex4_5 F C C T T (\lambda (f0: 
+F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (u2: T).(eq C e 
+(CHead e2 (Flat f0) u2))))))) (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: 
+C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O (CHead c (Flat f) t) 
+(CHead e1 (Flat f0) u1))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: 
+C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (\lambda (_: 
+F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 
+O v e1 e2))))))) (drop_drop (Flat f) n0 c e H15 t))) (\lambda (H15: (ex3_4 F 
+C T T (\lambda (f0: F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq 
+C e (CHead e0 (Flat f0) u2)))))) (\lambda (f0: F).(\lambda (e0: C).(\lambda 
+(u1: T).(\lambda (_: T).(drop (S n0) O c (CHead e0 (Flat f0) u1)))))) 
+(\lambda (_: F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v 
+u1 u2))))))).(ex3_4_ind F C T T (\lambda (f0: F).(\lambda (e0: C).(\lambda 
+(_: T).(\lambda (u2: T).(eq C e (CHead e0 (Flat f0) u2)))))) (\lambda (f0: 
+F).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O c (CHead 
+e0 (Flat f0) u1)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u1: 
+T).(\lambda (u2: T).(subst0 O v u1 u2))))) (or4 (drop (S n0) O (CHead c (Flat 
+f) t) e) (ex3_4 F C T T (\lambda (f0: F).(\lambda (e0: C).(\lambda (_: 
+T).(\lambda (u2: T).(eq C e (CHead e0 (Flat f0) u2)))))) (\lambda (f0: 
+F).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O (CHead c 
+(Flat f) t) (CHead e0 (Flat f0) u1)))))) (\lambda (_: F).(\lambda (_: 
+C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (ex3_4 F C C T 
+(\lambda (f0: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(eq C e 
 (CHead e2 (Flat f0) u)))))) (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: 
-C).(\lambda (u: T).(drop (S n0) O c (CHead e1 (Flat f0) u)))))) (\lambda (_: 
-F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2))))) 
-(or4 (drop (S n0) O (CHead c (Flat f) t) e) (ex3_4 F C T T (\lambda (f0: 
-F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e0 (Flat 
+C).(\lambda (u: T).(drop (S n0) O (CHead c (Flat f) t) (CHead e1 (Flat f0) 
+u)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: 
+T).(csubst0 O v e1 e2)))))) (ex4_5 F C C T T (\lambda (f0: F).(\lambda (_: 
+C).(\lambda (e2: C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e2 (Flat 
+f0) u2))))))) (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: 
+T).(\lambda (_: T).(drop (S n0) O (CHead c (Flat f) t) (CHead e1 (Flat f0) 
+u1))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: 
+T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: 
+C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 
+e2)))))))) (\lambda (x3: F).(\lambda (x4: C).(\lambda (x5: T).(\lambda (x6: 
+T).(\lambda (H16: (eq C e (CHead x4 (Flat x3) x6))).(\lambda (H17: (drop (S 
+n0) O c (CHead x4 (Flat x3) x5))).(\lambda (H18: (subst0 O v x5 x6)).(let H19 
+\def (eq_ind C e (\lambda (c0: C).(drop (S n0) O x1 c0)) H10 (CHead x4 (Flat 
+x3) x6) H16) in (eq_ind_r C (CHead x4 (Flat x3) x6) (\lambda (c0: C).(or4 
+(drop (S n0) O (CHead c (Flat f) t) c0) (ex3_4 F C T T (\lambda (f0: 
+F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C c0 (CHead e0 (Flat 
 f0) u2)))))) (\lambda (f0: F).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: 
 T).(drop (S n0) O (CHead c (Flat f) t) (CHead e0 (Flat f0) u1)))))) (\lambda 
 (_: F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 
 u2)))))) (ex3_4 F C C T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (u: T).(eq C e (CHead e2 (Flat f0) u)))))) (\lambda (f0: 
+C).(\lambda (u: T).(eq C c0 (CHead e2 (Flat f0) u)))))) (\lambda (f0: 
 F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(drop (S n0) O (CHead c 
 (Flat f) t) (CHead e1 (Flat f0) u)))))) (\lambda (_: F).(\lambda (e1: 
 C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2)))))) (ex4_5 F C C T T 
 (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
-(u2: T).(eq C e (CHead e2 (Flat f0) u2))))))) (\lambda (f0: F).(\lambda (e1: 
+(u2: T).(eq C c0 (CHead e2 (Flat f0) u2))))))) (\lambda (f0: F).(\lambda (e1: 
 C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O (CHead c 
 (Flat f) t) (CHead e1 (Flat f0) u1))))))) (\lambda (_: F).(\lambda (_: 
 C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) 
 (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
-(_: T).(csubst0 O v e1 e2)))))))) (\lambda (x3: F).(\lambda (x4: C).(\lambda 
-(x5: C).(\lambda (x6: T).(\lambda (H15: (eq C e (CHead x5 (Flat x3) 
-x6))).(\lambda (H16: (drop (S n0) O c (CHead x4 (Flat x3) x6))).(\lambda 
-(H17: (csubst0 O v x4 x5)).(eq_ind_r C (CHead x5 (Flat x3) x6) (\lambda (c0: 
+(_: T).(csubst0 O v e1 e2))))))))) (or4_intro1 (drop (S n0) O (CHead c (Flat 
+f) t) (CHead x4 (Flat x3) x6)) (ex3_4 F C T T (\lambda (f0: F).(\lambda (e0: 
+C).(\lambda (_: T).(\lambda (u2: T).(eq C (CHead x4 (Flat x3) x6) (CHead e0 
+(Flat f0) u2)))))) (\lambda (f0: F).(\lambda (e0: C).(\lambda (u1: 
+T).(\lambda (_: T).(drop (S n0) O (CHead c (Flat f) t) (CHead e0 (Flat f0) 
+u1)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: 
+T).(subst0 O v u1 u2)))))) (ex3_4 F C C T (\lambda (f0: F).(\lambda (_: 
+C).(\lambda (e2: C).(\lambda (u: T).(eq C (CHead x4 (Flat x3) x6) (CHead e2 
+(Flat f0) u)))))) (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda 
+(u: T).(drop (S n0) O (CHead c (Flat f) t) (CHead e1 (Flat f0) u)))))) 
+(\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O 
+v e1 e2)))))) (ex4_5 F C C T T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: 
+C).(\lambda (_: T).(\lambda (u2: T).(eq C (CHead x4 (Flat x3) x6) (CHead e2 
+(Flat f0) u2))))))) (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: 
+C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O (CHead c (Flat f) t) 
+(CHead e1 (Flat f0) u1))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: 
+C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (\lambda (_: 
+F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 
+O v e1 e2))))))) (ex3_4_intro F C T T (\lambda (f0: F).(\lambda (e0: 
+C).(\lambda (_: T).(\lambda (u2: T).(eq C (CHead x4 (Flat x3) x6) (CHead e0 
+(Flat f0) u2)))))) (\lambda (f0: F).(\lambda (e0: C).(\lambda (u1: 
+T).(\lambda (_: T).(drop (S n0) O (CHead c (Flat f) t) (CHead e0 (Flat f0) 
+u1)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: 
+T).(subst0 O v u1 u2))))) x3 x4 x5 x6 (refl_equal C (CHead x4 (Flat x3) x6)) 
+(drop_drop (Flat f) n0 c (CHead x4 (Flat x3) x5) H17 t) H18)) e H16))))))))) 
+H15)) (\lambda (H15: (ex3_4 F C C T (\lambda (f0: F).(\lambda (_: C).(\lambda 
+(e2: C).(\lambda (u: T).(eq C e (CHead e2 (Flat f0) u)))))) (\lambda (f0: 
+F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(drop (S n0) O c (CHead 
+e1 (Flat f0) u)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: 
+C).(\lambda (_: T).(csubst0 O v e1 e2))))))).(ex3_4_ind F C C T (\lambda (f0: 
+F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(eq C e (CHead e2 (Flat 
+f0) u)))))) (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: 
+T).(drop (S n0) O c (CHead e1 (Flat f0) u)))))) (\lambda (_: F).(\lambda (e1: 
+C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2))))) (or4 (drop (S n0) 
+O (CHead c (Flat f) t) e) (ex3_4 F C T T (\lambda (f0: F).(\lambda (e0: 
+C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e0 (Flat f0) u2)))))) 
+(\lambda (f0: F).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: T).(drop (S 
+n0) O (CHead c (Flat f) t) (CHead e0 (Flat f0) u1)))))) (\lambda (_: 
+F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) 
+(ex3_4 F C C T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: 
+T).(eq C e (CHead e2 (Flat f0) u)))))) (\lambda (f0: F).(\lambda (e1: 
+C).(\lambda (_: C).(\lambda (u: T).(drop (S n0) O (CHead c (Flat f) t) (CHead 
+e1 (Flat f0) u)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: 
+C).(\lambda (_: T).(csubst0 O v e1 e2)))))) (ex4_5 F C C T T (\lambda (f0: 
+F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (u2: T).(eq C e 
+(CHead e2 (Flat f0) u2))))))) (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: 
+C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O (CHead c (Flat f) t) 
+(CHead e1 (Flat f0) u1))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: 
+C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (\lambda (_: 
+F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 
+O v e1 e2)))))))) (\lambda (x3: F).(\lambda (x4: C).(\lambda (x5: C).(\lambda 
+(x6: T).(\lambda (H16: (eq C e (CHead x5 (Flat x3) x6))).(\lambda (H17: (drop 
+(S n0) O c (CHead x4 (Flat x3) x6))).(\lambda (H18: (csubst0 O v x4 x5)).(let 
+H19 \def (eq_ind C e (\lambda (c0: C).(drop (S n0) O x1 c0)) H10 (CHead x5 
+(Flat x3) x6) H16) in (eq_ind_r C (CHead x5 (Flat x3) x6) (\lambda (c0: 
 C).(or4 (drop (S n0) O (CHead c (Flat f) t) c0) (ex3_4 F C T T (\lambda (f0: 
 F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C c0 (CHead e0 (Flat 
 f0) u2)))))) (\lambda (f0: F).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: 
@@ -5961,8 +5957,8 @@ C).(\lambda (e2: C).(\lambda (u: T).(eq C (CHead x5 (Flat x3) x6) (CHead e2
 (u: T).(drop (S n0) O (CHead c (Flat f) t) (CHead e1 (Flat f0) u)))))) 
 (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O 
 v e1 e2))))) x3 x4 x5 x6 (refl_equal C (CHead x5 (Flat x3) x6)) (drop_drop 
-(Flat f) n0 c (CHead x4 (Flat x3) x6) H16 t) H17)) e H15)))))))) H14)) 
-(\lambda (H14: (ex4_5 F C C T T (\lambda (f0: F).(\lambda (_: C).(\lambda 
+(Flat f) n0 c (CHead x4 (Flat x3) x6) H17 t) H18)) e H16))))))))) H15)) 
+(\lambda (H15: (ex4_5 F C C T T (\lambda (f0: F).(\lambda (_: C).(\lambda 
 (e2: C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e2 (Flat f0) 
 u2))))))) (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: 
 T).(\lambda (_: T).(drop (S n0) O c (CHead e1 (Flat f0) u1))))))) (\lambda 
@@ -5993,57 +5989,55 @@ C).(\lambda (_: T).(\lambda (u2: T).(eq C e (CHead e2 (Flat f0) u2)))))))
 (u2: T).(subst0 O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda 
 (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 e2)))))))) (\lambda 
 (x3: F).(\lambda (x4: C).(\lambda (x5: C).(\lambda (x6: T).(\lambda (x7: 
-T).(\lambda (H15: (eq C e (CHead x5 (Flat x3) x7))).(\lambda (H16: (drop (S 
-n0) O c (CHead x4 (Flat x3) x6))).(\lambda (H17: (subst0 O v x6 x7)).(\lambda 
-(H18: (csubst0 O v x4 x5)).(eq_ind_r C (CHead x5 (Flat x3) x7) (\lambda (c0: 
-C).(or4 (drop (S n0) O (CHead c (Flat f) t) c0) (ex3_4 F C T T (\lambda (f0: 
-F).(\lambda (e0: C).(\lambda (_: T).(\lambda (u2: T).(eq C c0 (CHead e0 (Flat 
-f0) u2)))))) (\lambda (f0: F).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: 
-T).(drop (S n0) O (CHead c (Flat f) t) (CHead e0 (Flat f0) u1)))))) (\lambda 
-(_: F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 
-u2)))))) (ex3_4 F C C T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (u: T).(eq C c0 (CHead e2 (Flat f0) u)))))) (\lambda (f0: 
-F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: T).(drop (S n0) O (CHead c 
-(Flat f) t) (CHead e1 (Flat f0) u)))))) (\lambda (_: F).(\lambda (e1: 
-C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 e2)))))) (ex4_5 F C C T T 
-(\lambda (f0: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
-(u2: T).(eq C c0 (CHead e2 (Flat f0) u2))))))) (\lambda (f0: F).(\lambda (e1: 
-C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O (CHead c 
-(Flat f) t) (CHead e1 (Flat f0) u1))))))) (\lambda (_: F).(\lambda (_: 
-C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) 
-(\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
-(_: T).(csubst0 O v e1 e2))))))))) (or4_intro3 (drop (S n0) O (CHead c (Flat 
-f) t) (CHead x5 (Flat x3) x7)) (ex3_4 F C T T (\lambda (f0: F).(\lambda (e0: 
-C).(\lambda (_: T).(\lambda (u2: T).(eq C (CHead x5 (Flat x3) x7) (CHead e0 
-(Flat f0) u2)))))) (\lambda (f0: F).(\lambda (e0: C).(\lambda (u1: 
-T).(\lambda (_: T).(drop (S n0) O (CHead c (Flat f) t) (CHead e0 (Flat f0) 
-u1)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: 
-T).(subst0 O v u1 u2)))))) (ex3_4 F C C T (\lambda (f0: F).(\lambda (_: 
-C).(\lambda (e2: C).(\lambda (u: T).(eq C (CHead x5 (Flat x3) x7) (CHead e2 
-(Flat f0) u)))))) (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda 
-(u: T).(drop (S n0) O (CHead c (Flat f) t) (CHead e1 (Flat f0) u)))))) 
-(\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O 
-v e1 e2)))))) (ex4_5 F C C T T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (_: T).(\lambda (u2: T).(eq C (CHead x5 (Flat x3) x7) (CHead e2 
-(Flat f0) u2))))))) (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: 
+T).(\lambda (H16: (eq C e (CHead x5 (Flat x3) x7))).(\lambda (H17: (drop (S 
+n0) O c (CHead x4 (Flat x3) x6))).(\lambda (H18: (subst0 O v x6 x7)).(\lambda 
+(H19: (csubst0 O v x4 x5)).(let H20 \def (eq_ind C e (\lambda (c0: C).(drop 
+(S n0) O x1 c0)) H10 (CHead x5 (Flat x3) x7) H16) in (eq_ind_r C (CHead x5 
+(Flat x3) x7) (\lambda (c0: C).(or4 (drop (S n0) O (CHead c (Flat f) t) c0) 
+(ex3_4 F C T T (\lambda (f0: F).(\lambda (e0: C).(\lambda (_: T).(\lambda 
+(u2: T).(eq C c0 (CHead e0 (Flat f0) u2)))))) (\lambda (f0: F).(\lambda (e0: 
 C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O (CHead c (Flat f) t) 
-(CHead e1 (Flat f0) u1))))))) (\lambda (_: F).(\lambda (_: C).(\lambda (_: 
-C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (\lambda (_: 
-F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 
-O v e1 e2))))))) (ex4_5_intro F C C T T (\lambda (f0: F).(\lambda (_: 
-C).(\lambda (e2: C).(\lambda (_: T).(\lambda (u2: T).(eq C (CHead x5 (Flat 
-x3) x7) (CHead e2 (Flat f0) u2))))))) (\lambda (f0: F).(\lambda (e1: 
-C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O (CHead c 
-(Flat f) t) (CHead e1 (Flat f0) u1))))))) (\lambda (_: F).(\lambda (_: 
-C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) 
-(\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
-(_: T).(csubst0 O v e1 e2)))))) x3 x4 x5 x6 x7 (refl_equal C (CHead x5 (Flat 
-x3) x7)) (drop_drop (Flat f) n0 c (CHead x4 (Flat x3) x6) H16 t) H17 H18)) e 
-H15)))))))))) H14)) H13)))))))) k H3 (drop_gen_drop k x1 e x0 n0 H7)))))))))) 
-H2)) (csubst0_gen_head k c c2 t v (S n0) H0))))))))))) c1)))) n).
-(* COMMENTS
-Initial nodes: 34765
-END *)
+(CHead e0 (Flat f0) u1)))))) (\lambda (_: F).(\lambda (_: C).(\lambda (u1: 
+T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (ex3_4 F C C T (\lambda (f0: 
+F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(eq C c0 (CHead e2 (Flat 
+f0) u)))))) (\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u: 
+T).(drop (S n0) O (CHead c (Flat f) t) (CHead e1 (Flat f0) u)))))) (\lambda 
+(_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 O v e1 
+e2)))))) (ex4_5 F C C T T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: 
+C).(\lambda (_: T).(\lambda (u2: T).(eq C c0 (CHead e2 (Flat f0) u2))))))) 
+(\lambda (f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda 
+(_: T).(drop (S n0) O (CHead c (Flat f) t) (CHead e1 (Flat f0) u1))))))) 
+(\lambda (_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda 
+(u2: T).(subst0 O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda 
+(e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 e2))))))))) 
+(or4_intro3 (drop (S n0) O (CHead c (Flat f) t) (CHead x5 (Flat x3) x7)) 
+(ex3_4 F C T T (\lambda (f0: F).(\lambda (e0: C).(\lambda (_: T).(\lambda 
+(u2: T).(eq C (CHead x5 (Flat x3) x7) (CHead e0 (Flat f0) u2)))))) (\lambda 
+(f0: F).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: T).(drop (S n0) O 
+(CHead c (Flat f) t) (CHead e0 (Flat f0) u1)))))) (\lambda (_: F).(\lambda 
+(_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 O v u1 u2)))))) (ex3_4 F C C 
+T (\lambda (f0: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (u: T).(eq C 
+(CHead x5 (Flat x3) x7) (CHead e2 (Flat f0) u)))))) (\lambda (f0: F).(\lambda 
+(e1: C).(\lambda (_: C).(\lambda (u: T).(drop (S n0) O (CHead c (Flat f) t) 
+(CHead e1 (Flat f0) u)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: 
+C).(\lambda (_: T).(csubst0 O v e1 e2)))))) (ex4_5 F C C T T (\lambda (f0: 
+F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (u2: T).(eq C 
+(CHead x5 (Flat x3) x7) (CHead e2 (Flat f0) u2))))))) (\lambda (f0: 
+F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(drop (S 
+n0) O (CHead c (Flat f) t) (CHead e1 (Flat f0) u1))))))) (\lambda (_: 
+F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: T).(subst0 
+O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: C).(\lambda 
+(_: T).(\lambda (_: T).(csubst0 O v e1 e2))))))) (ex4_5_intro F C C T T 
+(\lambda (f0: F).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
+(u2: T).(eq C (CHead x5 (Flat x3) x7) (CHead e2 (Flat f0) u2))))))) (\lambda 
+(f0: F).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: 
+T).(drop (S n0) O (CHead c (Flat f) t) (CHead e1 (Flat f0) u1))))))) (\lambda 
+(_: F).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (u2: 
+T).(subst0 O v u1 u2)))))) (\lambda (_: F).(\lambda (e1: C).(\lambda (e2: 
+C).(\lambda (_: T).(\lambda (_: T).(csubst0 O v e1 e2)))))) x3 x4 x5 x6 x7 
+(refl_equal C (CHead x5 (Flat x3) x7)) (drop_drop (Flat f) n0 c (CHead x4 
+(Flat x3) x6) H17 t) H18 H19)) e H16))))))))))) H15)) H14)))))))) k H4 
+(drop_gen_drop k x1 e x0 n0 H8)))))))))) H3)) H2))))))))))) c1)))) n).
 
 theorem csubst0_drop_lt_back:
  \forall (n: nat).(\forall (i: nat).((lt n i) \to (\forall (c1: C).(\forall 
@@ -6083,78 +6077,79 @@ C).(\lambda (H0: ((\forall (c2: C).(\forall (v: T).((csubst0 i v c c2) \to
 (\lambda (e1: C).(csubst0 (minus i (S n0)) v e1 e2)) (\lambda (e1: C).(drop 
 (S n0) O c e1))))))))))).(\lambda (k: K).(\lambda (t: T).(\lambda (c2: 
 C).(\lambda (v: T).(\lambda (H1: (csubst0 i v (CHead c k t) c2)).(\lambda 
-(e2: C).(\lambda (H2: (drop (S n0) O c2 e2)).(or3_ind (ex3_2 T nat (\lambda 
+(e2: C).(\lambda (H2: (drop (S n0) O c2 e2)).(let H3 \def (csubst0_gen_head k 
+c c2 t v i H1) in (or3_ind (ex3_2 T nat (\lambda (_: T).(\lambda (j: nat).(eq 
+nat i (s k j)))) (\lambda (u2: T).(\lambda (_: nat).(eq C c2 (CHead c k 
+u2)))) (\lambda (u2: T).(\lambda (j: nat).(subst0 j v t u2)))) (ex3_2 C nat 
+(\lambda (_: C).(\lambda (j: nat).(eq nat i (s k j)))) (\lambda (c3: 
+C).(\lambda (_: nat).(eq C c2 (CHead c3 k t)))) (\lambda (c3: C).(\lambda (j: 
+nat).(csubst0 j v c c3)))) (ex4_3 T C nat (\lambda (_: T).(\lambda (_: 
+C).(\lambda (j: nat).(eq nat i (s k j))))) (\lambda (u2: T).(\lambda (c3: 
+C).(\lambda (_: nat).(eq C c2 (CHead c3 k u2))))) (\lambda (u2: T).(\lambda 
+(_: C).(\lambda (j: nat).(subst0 j v t u2)))) (\lambda (_: T).(\lambda (c3: 
+C).(\lambda (j: nat).(csubst0 j v c c3))))) (or (drop (S n0) O (CHead c k t) 
+e2) (ex2 C (\lambda (e1: C).(csubst0 (minus i (S n0)) v e1 e2)) (\lambda (e1: 
+C).(drop (S n0) O (CHead c k t) e1)))) (\lambda (H4: (ex3_2 T nat (\lambda 
 (_: T).(\lambda (j: nat).(eq nat i (s k j)))) (\lambda (u2: T).(\lambda (_: 
 nat).(eq C c2 (CHead c k u2)))) (\lambda (u2: T).(\lambda (j: nat).(subst0 j 
-v t u2)))) (ex3_2 C nat (\lambda (_: C).(\lambda (j: nat).(eq nat i (s k 
-j)))) (\lambda (c3: C).(\lambda (_: nat).(eq C c2 (CHead c3 k t)))) (\lambda 
-(c3: C).(\lambda (j: nat).(csubst0 j v c c3)))) (ex4_3 T C nat (\lambda (_: 
-T).(\lambda (_: C).(\lambda (j: nat).(eq nat i (s k j))))) (\lambda (u2: 
-T).(\lambda (c3: C).(\lambda (_: nat).(eq C c2 (CHead c3 k u2))))) (\lambda 
-(u2: T).(\lambda (_: C).(\lambda (j: nat).(subst0 j v t u2)))) (\lambda (_: 
-T).(\lambda (c3: C).(\lambda (j: nat).(csubst0 j v c c3))))) (or (drop (S n0) 
-O (CHead c k t) e2) (ex2 C (\lambda (e1: C).(csubst0 (minus i (S n0)) v e1 
-e2)) (\lambda (e1: C).(drop (S n0) O (CHead c k t) e1)))) (\lambda (H3: 
-(ex3_2 T nat (\lambda (_: T).(\lambda (j: nat).(eq nat i (s k j)))) (\lambda 
-(u2: T).(\lambda (_: nat).(eq C c2 (CHead c k u2)))) (\lambda (u2: 
-T).(\lambda (j: nat).(subst0 j v t u2))))).(ex3_2_ind T nat (\lambda (_: 
-T).(\lambda (j: nat).(eq nat i (s k j)))) (\lambda (u2: T).(\lambda (_: 
-nat).(eq C c2 (CHead c k u2)))) (\lambda (u2: T).(\lambda (j: nat).(subst0 j 
-v t u2))) (or (drop (S n0) O (CHead c k t) e2) (ex2 C (\lambda (e1: 
-C).(csubst0 (minus i (S n0)) v e1 e2)) (\lambda (e1: C).(drop (S n0) O (CHead 
-c k t) e1)))) (\lambda (x0: T).(\lambda (x1: nat).(\lambda (H4: (eq nat i (s 
-k x1))).(\lambda (H5: (eq C c2 (CHead c k x0))).(\lambda (_: (subst0 x1 v t 
-x0)).(let H7 \def (eq_ind C c2 (\lambda (c0: C).(drop (S n0) O c0 e2)) H2 
-(CHead c k x0) H5) in (let H8 \def (eq_ind nat i (\lambda (n1: nat).(\forall 
-(c3: C).(\forall (v0: T).((csubst0 n1 v0 c c3) \to (\forall (e3: C).((drop (S 
-n0) O c3 e3) \to (or (drop (S n0) O c e3) (ex2 C (\lambda (e1: C).(csubst0 
-(minus n1 (S n0)) v0 e1 e3)) (\lambda (e1: C).(drop (S n0) O c e1)))))))))) 
-H0 (s k x1) H4) in (let H9 \def (eq_ind nat i (\lambda (n1: nat).(lt (S n0) 
-n1)) H (s k x1) H4) in (eq_ind_r nat (s k x1) (\lambda (n1: nat).(or (drop (S 
-n0) O (CHead c k t) e2) (ex2 C (\lambda (e1: C).(csubst0 (minus n1 (S n0)) v 
-e1 e2)) (\lambda (e1: C).(drop (S n0) O (CHead c k t) e1))))) (K_ind (\lambda 
-(k0: K).(((\forall (c3: C).(\forall (v0: T).((csubst0 (s k0 x1) v0 c c3) \to 
-(\forall (e3: C).((drop (S n0) O c3 e3) \to (or (drop (S n0) O c e3) (ex2 C 
-(\lambda (e1: C).(csubst0 (minus (s k0 x1) (S n0)) v0 e1 e3)) (\lambda (e1: 
-C).(drop (S n0) O c e1)))))))))) \to ((lt (S n0) (s k0 x1)) \to ((drop (r k0 
-n0) O c e2) \to (or (drop (S n0) O (CHead c k0 t) e2) (ex2 C (\lambda (e1: 
-C).(csubst0 (minus (s k0 x1) (S n0)) v e1 e2)) (\lambda (e1: C).(drop (S n0) 
-O (CHead c k0 t) e1)))))))) (\lambda (b: B).(\lambda (_: ((\forall (c3: 
-C).(\forall (v0: T).((csubst0 (s (Bind b) x1) v0 c c3) \to (\forall (e3: 
-C).((drop (S n0) O c3 e3) \to (or (drop (S n0) O c e3) (ex2 C (\lambda (e1: 
-C).(csubst0 (minus (s (Bind b) x1) (S n0)) v0 e1 e3)) (\lambda (e1: C).(drop 
-(S n0) O c e1))))))))))).(\lambda (_: (lt (S n0) (s (Bind b) x1))).(\lambda 
-(H12: (drop (r (Bind b) n0) O c e2)).(or_introl (drop (S n0) O (CHead c (Bind 
-b) t) e2) (ex2 C (\lambda (e1: C).(csubst0 (minus x1 n0) v e1 e2)) (\lambda 
-(e1: C).(drop (S n0) O (CHead c (Bind b) t) e1))) (drop_drop (Bind b) n0 c e2 
-H12 t)))))) (\lambda (f: F).(\lambda (_: ((\forall (c3: C).(\forall (v0: 
-T).((csubst0 (s (Flat f) x1) v0 c c3) \to (\forall (e3: C).((drop (S n0) O c3 
+v t u2))))).(ex3_2_ind T nat (\lambda (_: T).(\lambda (j: nat).(eq nat i (s k 
+j)))) (\lambda (u2: T).(\lambda (_: nat).(eq C c2 (CHead c k u2)))) (\lambda 
+(u2: T).(\lambda (j: nat).(subst0 j v t u2))) (or (drop (S n0) O (CHead c k 
+t) e2) (ex2 C (\lambda (e1: C).(csubst0 (minus i (S n0)) v e1 e2)) (\lambda 
+(e1: C).(drop (S n0) O (CHead c k t) e1)))) (\lambda (x0: T).(\lambda (x1: 
+nat).(\lambda (H5: (eq nat i (s k x1))).(\lambda (H6: (eq C c2 (CHead c k 
+x0))).(\lambda (_: (subst0 x1 v t x0)).(let H8 \def (eq_ind C c2 (\lambda 
+(c0: C).(drop (S n0) O c0 e2)) H2 (CHead c k x0) H6) in (let H9 \def (eq_ind 
+nat i (\lambda (n1: nat).(\forall (c3: C).(\forall (v0: T).((csubst0 n1 v0 c 
+c3) \to (\forall (e3: C).((drop (S n0) O c3 e3) \to (or (drop (S n0) O c e3) 
+(ex2 C (\lambda (e1: C).(csubst0 (minus n1 (S n0)) v0 e1 e3)) (\lambda (e1: 
+C).(drop (S n0) O c e1)))))))))) H0 (s k x1) H5) in (let H10 \def (eq_ind nat 
+i (\lambda (n1: nat).(lt (S n0) n1)) H (s k x1) H5) in (eq_ind_r nat (s k x1) 
+(\lambda (n1: nat).(or (drop (S n0) O (CHead c k t) e2) (ex2 C (\lambda (e1: 
+C).(csubst0 (minus n1 (S n0)) v e1 e2)) (\lambda (e1: C).(drop (S n0) O 
+(CHead c k t) e1))))) (K_ind (\lambda (k0: K).(((\forall (c3: C).(\forall 
+(v0: T).((csubst0 (s k0 x1) v0 c c3) \to (\forall (e3: C).((drop (S n0) O c3 
 e3) \to (or (drop (S n0) O c e3) (ex2 C (\lambda (e1: C).(csubst0 (minus (s 
-(Flat f) x1) (S n0)) v0 e1 e3)) (\lambda (e1: C).(drop (S n0) O c 
-e1))))))))))).(\lambda (_: (lt (S n0) (s (Flat f) x1))).(\lambda (H12: (drop 
-(r (Flat f) n0) O c e2)).(or_introl (drop (S n0) O (CHead c (Flat f) t) e2) 
-(ex2 C (\lambda (e1: C).(csubst0 (minus x1 (S n0)) v e1 e2)) (\lambda (e1: 
-C).(drop (S n0) O (CHead c (Flat f) t) e1))) (drop_drop (Flat f) n0 c e2 H12 
-t)))))) k H8 H9 (drop_gen_drop k c e2 x0 n0 H7)) i H4))))))))) H3)) (\lambda 
-(H3: (ex3_2 C nat (\lambda (_: C).(\lambda (j: nat).(eq nat i (s k j)))) 
-(\lambda (c3: C).(\lambda (_: nat).(eq C c2 (CHead c3 k t)))) (\lambda (c3: 
-C).(\lambda (j: nat).(csubst0 j v c c3))))).(ex3_2_ind C nat (\lambda (_: 
-C).(\lambda (j: nat).(eq nat i (s k j)))) (\lambda (c3: C).(\lambda (_: 
-nat).(eq C c2 (CHead c3 k t)))) (\lambda (c3: C).(\lambda (j: nat).(csubst0 j 
-v c c3))) (or (drop (S n0) O (CHead c k t) e2) (ex2 C (\lambda (e1: 
-C).(csubst0 (minus i (S n0)) v e1 e2)) (\lambda (e1: C).(drop (S n0) O (CHead 
-c k t) e1)))) (\lambda (x0: C).(\lambda (x1: nat).(\lambda (H4: (eq nat i (s 
-k x1))).(\lambda (H5: (eq C c2 (CHead x0 k t))).(\lambda (H6: (csubst0 x1 v c 
-x0)).(let H7 \def (eq_ind C c2 (\lambda (c0: C).(drop (S n0) O c0 e2)) H2 
-(CHead x0 k t) H5) in (let H8 \def (eq_ind nat i (\lambda (n1: nat).(\forall 
-(c3: C).(\forall (v0: T).((csubst0 n1 v0 c c3) \to (\forall (e3: C).((drop (S 
-n0) O c3 e3) \to (or (drop (S n0) O c e3) (ex2 C (\lambda (e1: C).(csubst0 
-(minus n1 (S n0)) v0 e1 e3)) (\lambda (e1: C).(drop (S n0) O c e1)))))))))) 
-H0 (s k x1) H4) in (let H9 \def (eq_ind nat i (\lambda (n1: nat).(lt (S n0) 
-n1)) H (s k x1) H4) in (eq_ind_r nat (s k x1) (\lambda (n1: nat).(or (drop (S 
-n0) O (CHead c k t) e2) (ex2 C (\lambda (e1: C).(csubst0 (minus n1 (S n0)) v 
-e1 e2)) (\lambda (e1: C).(drop (S n0) O (CHead c k t) e1))))) (K_ind (\lambda 
-(k0: K).(((\forall (c3: C).(\forall (v0: T).((csubst0 (s k0 x1) v0 c c3) \to 
+k0 x1) (S n0)) v0 e1 e3)) (\lambda (e1: C).(drop (S n0) O c e1)))))))))) \to 
+((lt (S n0) (s k0 x1)) \to ((drop (r k0 n0) O c e2) \to (or (drop (S n0) O 
+(CHead c k0 t) e2) (ex2 C (\lambda (e1: C).(csubst0 (minus (s k0 x1) (S n0)) 
+v e1 e2)) (\lambda (e1: C).(drop (S n0) O (CHead c k0 t) e1)))))))) (\lambda 
+(b: B).(\lambda (_: ((\forall (c3: C).(\forall (v0: T).((csubst0 (s (Bind b) 
+x1) v0 c c3) \to (\forall (e3: C).((drop (S n0) O c3 e3) \to (or (drop (S n0) 
+O c e3) (ex2 C (\lambda (e1: C).(csubst0 (minus (s (Bind b) x1) (S n0)) v0 e1 
+e3)) (\lambda (e1: C).(drop (S n0) O c e1))))))))))).(\lambda (_: (lt (S n0) 
+(s (Bind b) x1))).(\lambda (H13: (drop (r (Bind b) n0) O c e2)).(or_introl 
+(drop (S n0) O (CHead c (Bind b) t) e2) (ex2 C (\lambda (e1: C).(csubst0 
+(minus (s (Bind b) x1) (S n0)) v e1 e2)) (\lambda (e1: C).(drop (S n0) O 
+(CHead c (Bind b) t) e1))) (drop_drop (Bind b) n0 c e2 H13 t)))))) (\lambda 
+(f: F).(\lambda (_: ((\forall (c3: C).(\forall (v0: T).((csubst0 (s (Flat f) 
+x1) v0 c c3) \to (\forall (e3: C).((drop (S n0) O c3 e3) \to (or (drop (S n0) 
+O c e3) (ex2 C (\lambda (e1: C).(csubst0 (minus (s (Flat f) x1) (S n0)) v0 e1 
+e3)) (\lambda (e1: C).(drop (S n0) O c e1))))))))))).(\lambda (_: (lt (S n0) 
+(s (Flat f) x1))).(\lambda (H13: (drop (r (Flat f) n0) O c e2)).(or_introl 
+(drop (S n0) O (CHead c (Flat f) t) e2) (ex2 C (\lambda (e1: C).(csubst0 
+(minus (s (Flat f) x1) (S n0)) v e1 e2)) (\lambda (e1: C).(drop (S n0) O 
+(CHead c (Flat f) t) e1))) (drop_drop (Flat f) n0 c e2 H13 t)))))) k H9 H10 
+(drop_gen_drop k c e2 x0 n0 H8)) i H5))))))))) H4)) (\lambda (H4: (ex3_2 C 
+nat (\lambda (_: C).(\lambda (j: nat).(eq nat i (s k j)))) (\lambda (c3: 
+C).(\lambda (_: nat).(eq C c2 (CHead c3 k t)))) (\lambda (c3: C).(\lambda (j: 
+nat).(csubst0 j v c c3))))).(ex3_2_ind C nat (\lambda (_: C).(\lambda (j: 
+nat).(eq nat i (s k j)))) (\lambda (c3: C).(\lambda (_: nat).(eq C c2 (CHead 
+c3 k t)))) (\lambda (c3: C).(\lambda (j: nat).(csubst0 j v c c3))) (or (drop 
+(S n0) O (CHead c k t) e2) (ex2 C (\lambda (e1: C).(csubst0 (minus i (S n0)) 
+v e1 e2)) (\lambda (e1: C).(drop (S n0) O (CHead c k t) e1)))) (\lambda (x0: 
+C).(\lambda (x1: nat).(\lambda (H5: (eq nat i (s k x1))).(\lambda (H6: (eq C 
+c2 (CHead x0 k t))).(\lambda (H7: (csubst0 x1 v c x0)).(let H8 \def (eq_ind C 
+c2 (\lambda (c0: C).(drop (S n0) O c0 e2)) H2 (CHead x0 k t) H6) in (let H9 
+\def (eq_ind nat i (\lambda (n1: nat).(\forall (c3: C).(\forall (v0: 
+T).((csubst0 n1 v0 c c3) \to (\forall (e3: C).((drop (S n0) O c3 e3) \to (or 
+(drop (S n0) O c e3) (ex2 C (\lambda (e1: C).(csubst0 (minus n1 (S n0)) v0 e1 
+e3)) (\lambda (e1: C).(drop (S n0) O c e1)))))))))) H0 (s k x1) H5) in (let 
+H10 \def (eq_ind nat i (\lambda (n1: nat).(lt (S n0) n1)) H (s k x1) H5) in 
+(eq_ind_r nat (s k x1) (\lambda (n1: nat).(or (drop (S n0) O (CHead c k t) 
+e2) (ex2 C (\lambda (e1: C).(csubst0 (minus n1 (S n0)) v e1 e2)) (\lambda 
+(e1: C).(drop (S n0) O (CHead c k t) e1))))) (K_ind (\lambda (k0: 
+K).(((\forall (c3: C).(\forall (v0: T).((csubst0 (s k0 x1) v0 c c3) \to 
 (\forall (e3: C).((drop (S n0) O c3 e3) \to (or (drop (S n0) O c e3) (ex2 C 
 (\lambda (e1: C).(csubst0 (minus (s k0 x1) (S n0)) v0 e1 e3)) (\lambda (e1: 
 C).(drop (S n0) O c e1)))))))))) \to ((lt (S n0) (s k0 x1)) \to ((drop (r k0 
@@ -6164,131 +6159,133 @@ O (CHead c k0 t) e1)))))))) (\lambda (b: B).(\lambda (_: ((\forall (c3:
 C).(\forall (v0: T).((csubst0 (s (Bind b) x1) v0 c c3) \to (\forall (e3: 
 C).((drop (S n0) O c3 e3) \to (or (drop (S n0) O c e3) (ex2 C (\lambda (e1: 
 C).(csubst0 (minus (s (Bind b) x1) (S n0)) v0 e1 e3)) (\lambda (e1: C).(drop 
-(S n0) O c e1))))))))))).(\lambda (H11: (lt (S n0) (s (Bind b) x1))).(\lambda 
-(H12: (drop (r (Bind b) n0) O x0 e2)).(let H_x \def (IHn x1 (lt_S_n n0 x1 
-H11) c x0 v H6 e2 H12) in (let H13 \def H_x in (or_ind (drop n0 O c e2) (ex2 
+(S n0) O c e1))))))))))).(\lambda (H12: (lt (S n0) (s (Bind b) x1))).(\lambda 
+(H13: (drop (r (Bind b) n0) O x0 e2)).(let H_x \def (IHn x1 (lt_S_n n0 x1 
+H12) c x0 v H7 e2 H13) in (let H14 \def H_x in (or_ind (drop n0 O c e2) (ex2 
 C (\lambda (e1: C).(csubst0 (minus x1 n0) v e1 e2)) (\lambda (e1: C).(drop n0 
 O c e1))) (or (drop (S n0) O (CHead c (Bind b) t) e2) (ex2 C (\lambda (e1: 
-C).(csubst0 (minus x1 n0) v e1 e2)) (\lambda (e1: C).(drop (S n0) O (CHead c 
-(Bind b) t) e1)))) (\lambda (H14: (drop n0 O c e2)).(or_introl (drop (S n0) O 
-(CHead c (Bind b) t) e2) (ex2 C (\lambda (e1: C).(csubst0 (minus x1 n0) v e1 
-e2)) (\lambda (e1: C).(drop (S n0) O (CHead c (Bind b) t) e1))) (drop_drop 
-(Bind b) n0 c e2 H14 t))) (\lambda (H14: (ex2 C (\lambda (e1: C).(csubst0 
-(minus x1 n0) v e1 e2)) (\lambda (e1: C).(drop n0 O c e1)))).(ex2_ind C 
-(\lambda (e1: C).(csubst0 (minus x1 n0) v e1 e2)) (\lambda (e1: C).(drop n0 O 
-c e1)) (or (drop (S n0) O (CHead c (Bind b) t) e2) (ex2 C (\lambda (e1: 
-C).(csubst0 (minus x1 n0) v e1 e2)) (\lambda (e1: C).(drop (S n0) O (CHead c 
-(Bind b) t) e1)))) (\lambda (x: C).(\lambda (H15: (csubst0 (minus x1 n0) v x 
-e2)).(\lambda (H16: (drop n0 O c x)).(or_intror (drop (S n0) O (CHead c (Bind 
-b) t) e2) (ex2 C (\lambda (e1: C).(csubst0 (minus x1 n0) v e1 e2)) (\lambda 
-(e1: C).(drop (S n0) O (CHead c (Bind b) t) e1))) (ex_intro2 C (\lambda (e1: 
-C).(csubst0 (minus x1 n0) v e1 e2)) (\lambda (e1: C).(drop (S n0) O (CHead c 
-(Bind b) t) e1)) x H15 (drop_drop (Bind b) n0 c x H16 t)))))) H14)) 
-H13))))))) (\lambda (f: F).(\lambda (H10: ((\forall (c3: C).(\forall (v0: 
-T).((csubst0 (s (Flat f) x1) v0 c c3) \to (\forall (e3: C).((drop (S n0) O c3 
-e3) \to (or (drop (S n0) O c e3) (ex2 C (\lambda (e1: C).(csubst0 (minus (s 
-(Flat f) x1) (S n0)) v0 e1 e3)) (\lambda (e1: C).(drop (S n0) O c 
-e1))))))))))).(\lambda (_: (lt (S n0) (s (Flat f) x1))).(\lambda (H12: (drop 
-(r (Flat f) n0) O x0 e2)).(let H_x \def (H10 x0 v H6 e2 H12) in (let H13 \def 
-H_x in (or_ind (drop (S n0) O c e2) (ex2 C (\lambda (e1: C).(csubst0 (minus 
-x1 (S n0)) v e1 e2)) (\lambda (e1: C).(drop (S n0) O c e1))) (or (drop (S n0) 
-O (CHead c (Flat f) t) e2) (ex2 C (\lambda (e1: C).(csubst0 (minus x1 (S n0)) 
-v e1 e2)) (\lambda (e1: C).(drop (S n0) O (CHead c (Flat f) t) e1)))) 
-(\lambda (H14: (drop (S n0) O c e2)).(or_introl (drop (S n0) O (CHead c (Flat 
-f) t) e2) (ex2 C (\lambda (e1: C).(csubst0 (minus x1 (S n0)) v e1 e2)) 
-(\lambda (e1: C).(drop (S n0) O (CHead c (Flat f) t) e1))) (drop_drop (Flat 
-f) n0 c e2 H14 t))) (\lambda (H14: (ex2 C (\lambda (e1: C).(csubst0 (minus x1 
-(S n0)) v e1 e2)) (\lambda (e1: C).(drop (S n0) O c e1)))).(ex2_ind C 
-(\lambda (e1: C).(csubst0 (minus x1 (S n0)) v e1 e2)) (\lambda (e1: C).(drop 
-(S n0) O c e1)) (or (drop (S n0) O (CHead c (Flat f) t) e2) (ex2 C (\lambda 
-(e1: C).(csubst0 (minus x1 (S n0)) v e1 e2)) (\lambda (e1: C).(drop (S n0) O 
-(CHead c (Flat f) t) e1)))) (\lambda (x: C).(\lambda (H15: (csubst0 (minus x1 
-(S n0)) v x e2)).(\lambda (H16: (drop (S n0) O c x)).(or_intror (drop (S n0) 
-O (CHead c (Flat f) t) e2) (ex2 C (\lambda (e1: C).(csubst0 (minus x1 (S n0)) 
-v e1 e2)) (\lambda (e1: C).(drop (S n0) O (CHead c (Flat f) t) e1))) 
-(ex_intro2 C (\lambda (e1: C).(csubst0 (minus x1 (S n0)) v e1 e2)) (\lambda 
-(e1: C).(drop (S n0) O (CHead c (Flat f) t) e1)) x H15 (drop_drop (Flat f) n0 
-c x H16 t)))))) H14)) H13))))))) k H8 H9 (drop_gen_drop k x0 e2 t n0 H7)) i 
-H4))))))))) H3)) (\lambda (H3: (ex4_3 T C nat (\lambda (_: T).(\lambda (_: 
-C).(\lambda (j: nat).(eq nat i (s k j))))) (\lambda (u2: T).(\lambda (c3: 
-C).(\lambda (_: nat).(eq C c2 (CHead c3 k u2))))) (\lambda (u2: T).(\lambda 
-(_: C).(\lambda (j: nat).(subst0 j v t u2)))) (\lambda (_: T).(\lambda (c3: 
-C).(\lambda (j: nat).(csubst0 j v c c3)))))).(ex4_3_ind T C nat (\lambda (_: 
-T).(\lambda (_: C).(\lambda (j: nat).(eq nat i (s k j))))) (\lambda (u2: 
-T).(\lambda (c3: C).(\lambda (_: nat).(eq C c2 (CHead c3 k u2))))) (\lambda 
-(u2: T).(\lambda (_: C).(\lambda (j: nat).(subst0 j v t u2)))) (\lambda (_: 
-T).(\lambda (c3: C).(\lambda (j: nat).(csubst0 j v c c3)))) (or (drop (S n0) 
-O (CHead c k t) e2) (ex2 C (\lambda (e1: C).(csubst0 (minus i (S n0)) v e1 
-e2)) (\lambda (e1: C).(drop (S n0) O (CHead c k t) e1)))) (\lambda (x0: 
-T).(\lambda (x1: C).(\lambda (x2: nat).(\lambda (H4: (eq nat i (s k 
-x2))).(\lambda (H5: (eq C c2 (CHead x1 k x0))).(\lambda (_: (subst0 x2 v t 
-x0)).(\lambda (H7: (csubst0 x2 v c x1)).(let H8 \def (eq_ind C c2 (\lambda 
-(c0: C).(drop (S n0) O c0 e2)) H2 (CHead x1 k x0) H5) in (let H9 \def (eq_ind 
-nat i (\lambda (n1: nat).(\forall (c3: C).(\forall (v0: T).((csubst0 n1 v0 c 
-c3) \to (\forall (e3: C).((drop (S n0) O c3 e3) \to (or (drop (S n0) O c e3) 
-(ex2 C (\lambda (e1: C).(csubst0 (minus n1 (S n0)) v0 e1 e3)) (\lambda (e1: 
-C).(drop (S n0) O c e1)))))))))) H0 (s k x2) H4) in (let H10 \def (eq_ind nat 
-i (\lambda (n1: nat).(lt (S n0) n1)) H (s k x2) H4) in (eq_ind_r nat (s k x2) 
-(\lambda (n1: nat).(or (drop (S n0) O (CHead c k t) e2) (ex2 C (\lambda (e1: 
-C).(csubst0 (minus n1 (S n0)) v e1 e2)) (\lambda (e1: C).(drop (S n0) O 
-(CHead c k t) e1))))) (K_ind (\lambda (k0: K).(((\forall (c3: C).(\forall 
-(v0: T).((csubst0 (s k0 x2) v0 c c3) \to (\forall (e3: C).((drop (S n0) O c3 
-e3) \to (or (drop (S n0) O c e3) (ex2 C (\lambda (e1: C).(csubst0 (minus (s 
-k0 x2) (S n0)) v0 e1 e3)) (\lambda (e1: C).(drop (S n0) O c e1)))))))))) \to 
-((lt (S n0) (s k0 x2)) \to ((drop (r k0 n0) O x1 e2) \to (or (drop (S n0) O 
-(CHead c k0 t) e2) (ex2 C (\lambda (e1: C).(csubst0 (minus (s k0 x2) (S n0)) 
-v e1 e2)) (\lambda (e1: C).(drop (S n0) O (CHead c k0 t) e1)))))))) (\lambda 
-(b: B).(\lambda (_: ((\forall (c3: C).(\forall (v0: T).((csubst0 (s (Bind b) 
-x2) v0 c c3) \to (\forall (e3: C).((drop (S n0) O c3 e3) \to (or (drop (S n0) 
-O c e3) (ex2 C (\lambda (e1: C).(csubst0 (minus (s (Bind b) x2) (S n0)) v0 e1 
-e3)) (\lambda (e1: C).(drop (S n0) O c e1))))))))))).(\lambda (H12: (lt (S 
-n0) (s (Bind b) x2))).(\lambda (H13: (drop (r (Bind b) n0) O x1 e2)).(let H_x 
-\def (IHn x2 (lt_S_n n0 x2 H12) c x1 v H7 e2 H13) in (let H14 \def H_x in 
-(or_ind (drop n0 O c e2) (ex2 C (\lambda (e1: C).(csubst0 (minus x2 n0) v e1 
-e2)) (\lambda (e1: C).(drop n0 O c e1))) (or (drop (S n0) O (CHead c (Bind b) 
-t) e2) (ex2 C (\lambda (e1: C).(csubst0 (minus x2 n0) v e1 e2)) (\lambda (e1: 
-C).(drop (S n0) O (CHead c (Bind b) t) e1)))) (\lambda (H15: (drop n0 O c 
+C).(csubst0 (minus (s (Bind b) x1) (S n0)) v e1 e2)) (\lambda (e1: C).(drop 
+(S n0) O (CHead c (Bind b) t) e1)))) (\lambda (H15: (drop n0 O c 
 e2)).(or_introl (drop (S n0) O (CHead c (Bind b) t) e2) (ex2 C (\lambda (e1: 
-C).(csubst0 (minus x2 n0) v e1 e2)) (\lambda (e1: C).(drop (S n0) O (CHead c 
-(Bind b) t) e1))) (drop_drop (Bind b) n0 c e2 H15 t))) (\lambda (H15: (ex2 C 
-(\lambda (e1: C).(csubst0 (minus x2 n0) v e1 e2)) (\lambda (e1: C).(drop n0 O 
-c e1)))).(ex2_ind C (\lambda (e1: C).(csubst0 (minus x2 n0) v e1 e2)) 
-(\lambda (e1: C).(drop n0 O c e1)) (or (drop (S n0) O (CHead c (Bind b) t) 
-e2) (ex2 C (\lambda (e1: C).(csubst0 (minus x2 n0) v e1 e2)) (\lambda (e1: 
-C).(drop (S n0) O (CHead c (Bind b) t) e1)))) (\lambda (x: C).(\lambda (H16: 
-(csubst0 (minus x2 n0) v x e2)).(\lambda (H17: (drop n0 O c x)).(or_intror 
-(drop (S n0) O (CHead c (Bind b) t) e2) (ex2 C (\lambda (e1: C).(csubst0 
-(minus x2 n0) v e1 e2)) (\lambda (e1: C).(drop (S n0) O (CHead c (Bind b) t) 
-e1))) (ex_intro2 C (\lambda (e1: C).(csubst0 (minus x2 n0) v e1 e2)) (\lambda 
+C).(csubst0 (minus (s (Bind b) x1) (S n0)) v e1 e2)) (\lambda (e1: C).(drop 
+(S n0) O (CHead c (Bind b) t) e1))) (drop_drop (Bind b) n0 c e2 H15 t))) 
+(\lambda (H15: (ex2 C (\lambda (e1: C).(csubst0 (minus x1 n0) v e1 e2)) 
+(\lambda (e1: C).(drop n0 O c e1)))).(ex2_ind C (\lambda (e1: C).(csubst0 
+(minus x1 n0) v e1 e2)) (\lambda (e1: C).(drop n0 O c e1)) (or (drop (S n0) O 
+(CHead c (Bind b) t) e2) (ex2 C (\lambda (e1: C).(csubst0 (minus (s (Bind b) 
+x1) (S n0)) v e1 e2)) (\lambda (e1: C).(drop (S n0) O (CHead c (Bind b) t) 
+e1)))) (\lambda (x: C).(\lambda (H16: (csubst0 (minus x1 n0) v x 
+e2)).(\lambda (H17: (drop n0 O c x)).(or_intror (drop (S n0) O (CHead c (Bind 
+b) t) e2) (ex2 C (\lambda (e1: C).(csubst0 (minus (s (Bind b) x1) (S n0)) v 
+e1 e2)) (\lambda (e1: C).(drop (S n0) O (CHead c (Bind b) t) e1))) (ex_intro2 
+C (\lambda (e1: C).(csubst0 (minus (s (Bind b) x1) (S n0)) v e1 e2)) (\lambda 
 (e1: C).(drop (S n0) O (CHead c (Bind b) t) e1)) x H16 (drop_drop (Bind b) n0 
 c x H17 t)))))) H15)) H14))))))) (\lambda (f: F).(\lambda (H11: ((\forall 
+(c3: C).(\forall (v0: T).((csubst0 (s (Flat f) x1) v0 c c3) \to (\forall (e3: 
+C).((drop (S n0) O c3 e3) \to (or (drop (S n0) O c e3) (ex2 C (\lambda (e1: 
+C).(csubst0 (minus (s (Flat f) x1) (S n0)) v0 e1 e3)) (\lambda (e1: C).(drop 
+(S n0) O c e1))))))))))).(\lambda (_: (lt (S n0) (s (Flat f) x1))).(\lambda 
+(H13: (drop (r (Flat f) n0) O x0 e2)).(let H_x \def (H11 x0 v H7 e2 H13) in 
+(let H14 \def H_x in (or_ind (drop (S n0) O c e2) (ex2 C (\lambda (e1: 
+C).(csubst0 (minus x1 (S n0)) v e1 e2)) (\lambda (e1: C).(drop (S n0) O c 
+e1))) (or (drop (S n0) O (CHead c (Flat f) t) e2) (ex2 C (\lambda (e1: 
+C).(csubst0 (minus (s (Flat f) x1) (S n0)) v e1 e2)) (\lambda (e1: C).(drop 
+(S n0) O (CHead c (Flat f) t) e1)))) (\lambda (H15: (drop (S n0) O c 
+e2)).(or_introl (drop (S n0) O (CHead c (Flat f) t) e2) (ex2 C (\lambda (e1: 
+C).(csubst0 (minus (s (Flat f) x1) (S n0)) v e1 e2)) (\lambda (e1: C).(drop 
+(S n0) O (CHead c (Flat f) t) e1))) (drop_drop (Flat f) n0 c e2 H15 t))) 
+(\lambda (H15: (ex2 C (\lambda (e1: C).(csubst0 (minus x1 (S n0)) v e1 e2)) 
+(\lambda (e1: C).(drop (S n0) O c e1)))).(ex2_ind C (\lambda (e1: C).(csubst0 
+(minus x1 (S n0)) v e1 e2)) (\lambda (e1: C).(drop (S n0) O c e1)) (or (drop 
+(S n0) O (CHead c (Flat f) t) e2) (ex2 C (\lambda (e1: C).(csubst0 (minus (s 
+(Flat f) x1) (S n0)) v e1 e2)) (\lambda (e1: C).(drop (S n0) O (CHead c (Flat 
+f) t) e1)))) (\lambda (x: C).(\lambda (H16: (csubst0 (minus x1 (S n0)) v x 
+e2)).(\lambda (H17: (drop (S n0) O c x)).(or_intror (drop (S n0) O (CHead c 
+(Flat f) t) e2) (ex2 C (\lambda (e1: C).(csubst0 (minus (s (Flat f) x1) (S 
+n0)) v e1 e2)) (\lambda (e1: C).(drop (S n0) O (CHead c (Flat f) t) e1))) 
+(ex_intro2 C (\lambda (e1: C).(csubst0 (minus (s (Flat f) x1) (S n0)) v e1 
+e2)) (\lambda (e1: C).(drop (S n0) O (CHead c (Flat f) t) e1)) x H16 
+(drop_drop (Flat f) n0 c x H17 t)))))) H15)) H14))))))) k H9 H10 
+(drop_gen_drop k x0 e2 t n0 H8)) i H5))))))))) H4)) (\lambda (H4: (ex4_3 T C 
+nat (\lambda (_: T).(\lambda (_: C).(\lambda (j: nat).(eq nat i (s k j))))) 
+(\lambda (u2: T).(\lambda (c3: C).(\lambda (_: nat).(eq C c2 (CHead c3 k 
+u2))))) (\lambda (u2: T).(\lambda (_: C).(\lambda (j: nat).(subst0 j v t 
+u2)))) (\lambda (_: T).(\lambda (c3: C).(\lambda (j: nat).(csubst0 j v c 
+c3)))))).(ex4_3_ind T C nat (\lambda (_: T).(\lambda (_: C).(\lambda (j: 
+nat).(eq nat i (s k j))))) (\lambda (u2: T).(\lambda (c3: C).(\lambda (_: 
+nat).(eq C c2 (CHead c3 k u2))))) (\lambda (u2: T).(\lambda (_: C).(\lambda 
+(j: nat).(subst0 j v t u2)))) (\lambda (_: T).(\lambda (c3: C).(\lambda (j: 
+nat).(csubst0 j v c c3)))) (or (drop (S n0) O (CHead c k t) e2) (ex2 C 
+(\lambda (e1: C).(csubst0 (minus i (S n0)) v e1 e2)) (\lambda (e1: C).(drop 
+(S n0) O (CHead c k t) e1)))) (\lambda (x0: T).(\lambda (x1: C).(\lambda (x2: 
+nat).(\lambda (H5: (eq nat i (s k x2))).(\lambda (H6: (eq C c2 (CHead x1 k 
+x0))).(\lambda (_: (subst0 x2 v t x0)).(\lambda (H8: (csubst0 x2 v c 
+x1)).(let H9 \def (eq_ind C c2 (\lambda (c0: C).(drop (S n0) O c0 e2)) H2 
+(CHead x1 k x0) H6) in (let H10 \def (eq_ind nat i (\lambda (n1: 
+nat).(\forall (c3: C).(\forall (v0: T).((csubst0 n1 v0 c c3) \to (\forall 
+(e3: C).((drop (S n0) O c3 e3) \to (or (drop (S n0) O c e3) (ex2 C (\lambda 
+(e1: C).(csubst0 (minus n1 (S n0)) v0 e1 e3)) (\lambda (e1: C).(drop (S n0) O 
+c e1)))))))))) H0 (s k x2) H5) in (let H11 \def (eq_ind nat i (\lambda (n1: 
+nat).(lt (S n0) n1)) H (s k x2) H5) in (eq_ind_r nat (s k x2) (\lambda (n1: 
+nat).(or (drop (S n0) O (CHead c k t) e2) (ex2 C (\lambda (e1: C).(csubst0 
+(minus n1 (S n0)) v e1 e2)) (\lambda (e1: C).(drop (S n0) O (CHead c k t) 
+e1))))) (K_ind (\lambda (k0: K).(((\forall (c3: C).(\forall (v0: T).((csubst0 
+(s k0 x2) v0 c c3) \to (\forall (e3: C).((drop (S n0) O c3 e3) \to (or (drop 
+(S n0) O c e3) (ex2 C (\lambda (e1: C).(csubst0 (minus (s k0 x2) (S n0)) v0 
+e1 e3)) (\lambda (e1: C).(drop (S n0) O c e1)))))))))) \to ((lt (S n0) (s k0 
+x2)) \to ((drop (r k0 n0) O x1 e2) \to (or (drop (S n0) O (CHead c k0 t) e2) 
+(ex2 C (\lambda (e1: C).(csubst0 (minus (s k0 x2) (S n0)) v e1 e2)) (\lambda 
+(e1: C).(drop (S n0) O (CHead c k0 t) e1)))))))) (\lambda (b: B).(\lambda (_: 
+((\forall (c3: C).(\forall (v0: T).((csubst0 (s (Bind b) x2) v0 c c3) \to 
+(\forall (e3: C).((drop (S n0) O c3 e3) \to (or (drop (S n0) O c e3) (ex2 C 
+(\lambda (e1: C).(csubst0 (minus (s (Bind b) x2) (S n0)) v0 e1 e3)) (\lambda 
+(e1: C).(drop (S n0) O c e1))))))))))).(\lambda (H13: (lt (S n0) (s (Bind b) 
+x2))).(\lambda (H14: (drop (r (Bind b) n0) O x1 e2)).(let H_x \def (IHn x2 
+(lt_S_n n0 x2 H13) c x1 v H8 e2 H14) in (let H15 \def H_x in (or_ind (drop n0 
+O c e2) (ex2 C (\lambda (e1: C).(csubst0 (minus x2 n0) v e1 e2)) (\lambda 
+(e1: C).(drop n0 O c e1))) (or (drop (S n0) O (CHead c (Bind b) t) e2) (ex2 C 
+(\lambda (e1: C).(csubst0 (minus (s (Bind b) x2) (S n0)) v e1 e2)) (\lambda 
+(e1: C).(drop (S n0) O (CHead c (Bind b) t) e1)))) (\lambda (H16: (drop n0 O 
+c e2)).(or_introl (drop (S n0) O (CHead c (Bind b) t) e2) (ex2 C (\lambda 
+(e1: C).(csubst0 (minus (s (Bind b) x2) (S n0)) v e1 e2)) (\lambda (e1: 
+C).(drop (S n0) O (CHead c (Bind b) t) e1))) (drop_drop (Bind b) n0 c e2 H16 
+t))) (\lambda (H16: (ex2 C (\lambda (e1: C).(csubst0 (minus x2 n0) v e1 e2)) 
+(\lambda (e1: C).(drop n0 O c e1)))).(ex2_ind C (\lambda (e1: C).(csubst0 
+(minus x2 n0) v e1 e2)) (\lambda (e1: C).(drop n0 O c e1)) (or (drop (S n0) O 
+(CHead c (Bind b) t) e2) (ex2 C (\lambda (e1: C).(csubst0 (minus (s (Bind b) 
+x2) (S n0)) v e1 e2)) (\lambda (e1: C).(drop (S n0) O (CHead c (Bind b) t) 
+e1)))) (\lambda (x: C).(\lambda (H17: (csubst0 (minus x2 n0) v x 
+e2)).(\lambda (H18: (drop n0 O c x)).(or_intror (drop (S n0) O (CHead c (Bind 
+b) t) e2) (ex2 C (\lambda (e1: C).(csubst0 (minus (s (Bind b) x2) (S n0)) v 
+e1 e2)) (\lambda (e1: C).(drop (S n0) O (CHead c (Bind b) t) e1))) (ex_intro2 
+C (\lambda (e1: C).(csubst0 (minus (s (Bind b) x2) (S n0)) v e1 e2)) (\lambda 
+(e1: C).(drop (S n0) O (CHead c (Bind b) t) e1)) x H17 (drop_drop (Bind b) n0 
+c x H18 t)))))) H16)) H15))))))) (\lambda (f: F).(\lambda (H12: ((\forall 
 (c3: C).(\forall (v0: T).((csubst0 (s (Flat f) x2) v0 c c3) \to (\forall (e3: 
 C).((drop (S n0) O c3 e3) \to (or (drop (S n0) O c e3) (ex2 C (\lambda (e1: 
 C).(csubst0 (minus (s (Flat f) x2) (S n0)) v0 e1 e3)) (\lambda (e1: C).(drop 
 (S n0) O c e1))))))))))).(\lambda (_: (lt (S n0) (s (Flat f) x2))).(\lambda 
-(H13: (drop (r (Flat f) n0) O x1 e2)).(let H_x \def (H11 x1 v H7 e2 H13) in 
-(let H14 \def H_x in (or_ind (drop (S n0) O c e2) (ex2 C (\lambda (e1: 
+(H14: (drop (r (Flat f) n0) O x1 e2)).(let H_x \def (H12 x1 v H8 e2 H14) in 
+(let H15 \def H_x in (or_ind (drop (S n0) O c e2) (ex2 C (\lambda (e1: 
 C).(csubst0 (minus x2 (S n0)) v e1 e2)) (\lambda (e1: C).(drop (S n0) O c 
 e1))) (or (drop (S n0) O (CHead c (Flat f) t) e2) (ex2 C (\lambda (e1: 
-C).(csubst0 (minus x2 (S n0)) v e1 e2)) (\lambda (e1: C).(drop (S n0) O 
-(CHead c (Flat f) t) e1)))) (\lambda (H15: (drop (S n0) O c e2)).(or_introl 
-(drop (S n0) O (CHead c (Flat f) t) e2) (ex2 C (\lambda (e1: C).(csubst0 
-(minus x2 (S n0)) v e1 e2)) (\lambda (e1: C).(drop (S n0) O (CHead c (Flat f) 
-t) e1))) (drop_drop (Flat f) n0 c e2 H15 t))) (\lambda (H15: (ex2 C (\lambda 
-(e1: C).(csubst0 (minus x2 (S n0)) v e1 e2)) (\lambda (e1: C).(drop (S n0) O 
-c e1)))).(ex2_ind C (\lambda (e1: C).(csubst0 (minus x2 (S n0)) v e1 e2)) 
-(\lambda (e1: C).(drop (S n0) O c e1)) (or (drop (S n0) O (CHead c (Flat f) 
-t) e2) (ex2 C (\lambda (e1: C).(csubst0 (minus x2 (S n0)) v e1 e2)) (\lambda 
-(e1: C).(drop (S n0) O (CHead c (Flat f) t) e1)))) (\lambda (x: C).(\lambda 
-(H16: (csubst0 (minus x2 (S n0)) v x e2)).(\lambda (H17: (drop (S n0) O c 
-x)).(or_intror (drop (S n0) O (CHead c (Flat f) t) e2) (ex2 C (\lambda (e1: 
-C).(csubst0 (minus x2 (S n0)) v e1 e2)) (\lambda (e1: C).(drop (S n0) O 
-(CHead c (Flat f) t) e1))) (ex_intro2 C (\lambda (e1: C).(csubst0 (minus x2 
-(S n0)) v e1 e2)) (\lambda (e1: C).(drop (S n0) O (CHead c (Flat f) t) e1)) x 
-H16 (drop_drop (Flat f) n0 c x H17 t)))))) H15)) H14))))))) k H9 H10 
-(drop_gen_drop k x1 e2 x0 n0 H8)) i H4))))))))))) H3)) (csubst0_gen_head k c 
-c2 t v i H1))))))))))) c1)))))) n).
-(* COMMENTS
-Initial nodes: 5939
-END *)
+C).(csubst0 (minus (s (Flat f) x2) (S n0)) v e1 e2)) (\lambda (e1: C).(drop 
+(S n0) O (CHead c (Flat f) t) e1)))) (\lambda (H16: (drop (S n0) O c 
+e2)).(or_introl (drop (S n0) O (CHead c (Flat f) t) e2) (ex2 C (\lambda (e1: 
+C).(csubst0 (minus (s (Flat f) x2) (S n0)) v e1 e2)) (\lambda (e1: C).(drop 
+(S n0) O (CHead c (Flat f) t) e1))) (drop_drop (Flat f) n0 c e2 H16 t))) 
+(\lambda (H16: (ex2 C (\lambda (e1: C).(csubst0 (minus x2 (S n0)) v e1 e2)) 
+(\lambda (e1: C).(drop (S n0) O c e1)))).(ex2_ind C (\lambda (e1: C).(csubst0 
+(minus x2 (S n0)) v e1 e2)) (\lambda (e1: C).(drop (S n0) O c e1)) (or (drop 
+(S n0) O (CHead c (Flat f) t) e2) (ex2 C (\lambda (e1: C).(csubst0 (minus (s 
+(Flat f) x2) (S n0)) v e1 e2)) (\lambda (e1: C).(drop (S n0) O (CHead c (Flat 
+f) t) e1)))) (\lambda (x: C).(\lambda (H17: (csubst0 (minus x2 (S n0)) v x 
+e2)).(\lambda (H18: (drop (S n0) O c x)).(or_intror (drop (S n0) O (CHead c 
+(Flat f) t) e2) (ex2 C (\lambda (e1: C).(csubst0 (minus (s (Flat f) x2) (S 
+n0)) v e1 e2)) (\lambda (e1: C).(drop (S n0) O (CHead c (Flat f) t) e1))) 
+(ex_intro2 C (\lambda (e1: C).(csubst0 (minus (s (Flat f) x2) (S n0)) v e1 
+e2)) (\lambda (e1: C).(drop (S n0) O (CHead c (Flat f) t) e1)) x H17 
+(drop_drop (Flat f) n0 c x H18 t)))))) H16)) H15))))))) k H10 H11 
+(drop_gen_drop k x1 e2 x0 n0 H9)) i H5))))))))))) H4)) H3))))))))))) c1)))))) 
+n).
 
index 9b3de2983a93f8056bb192511a9ebbdbb46cf87b..022e06fa4f74b8ff03a494f80355e4ba0b0eca18 100644 (file)
 
 (* This file was automatically generated: do not edit *********************)
 
-include "Basic-1/csubst0/defs.ma".
+include "basic_1/csubst0/defs.ma".
+
+include "basic_1/C/fwd.ma".
+
+let rec csubst0_ind (P: (nat \to (T \to (C \to (C \to Prop))))) (f: (\forall 
+(k: K).(\forall (i: nat).(\forall (v: T).(\forall (u1: T).(\forall (u2: 
+T).((subst0 i v u1 u2) \to (\forall (c: C).(P (s k i) v (CHead c k u1) (CHead 
+c k u2)))))))))) (f0: (\forall (k: K).(\forall (i: nat).(\forall (c1: 
+C).(\forall (c2: C).(\forall (v: T).((csubst0 i v c1 c2) \to ((P i v c1 c2) 
+\to (\forall (u: T).(P (s k i) v (CHead c1 k u) (CHead c2 k u))))))))))) (f1: 
+(\forall (k: K).(\forall (i: nat).(\forall (v: T).(\forall (u1: T).(\forall 
+(u2: T).((subst0 i v u1 u2) \to (\forall (c1: C).(\forall (c2: C).((csubst0 i 
+v c1 c2) \to ((P i v c1 c2) \to (P (s k i) v (CHead c1 k u1) (CHead c2 k 
+u2))))))))))))) (n: nat) (t: T) (c: C) (c0: C) (c1: csubst0 n t c c0) on c1: 
+P n t c c0 \def match c1 with [(csubst0_snd k i v u1 u2 s0 c2) \Rightarrow (f 
+k i v u1 u2 s0 c2) | (csubst0_fst k i c2 c3 v c4 u) \Rightarrow (f0 k i c2 c3 
+v c4 ((csubst0_ind P f f0 f1) i v c2 c3 c4) u) | (csubst0_both k i v u1 u2 s0 
+c2 c3 c4) \Rightarrow (f1 k i v u1 u2 s0 c2 c3 c4 ((csubst0_ind P f f0 f1) i 
+v c2 c3 c4))].
 
 theorem csubst0_gen_sort:
  \forall (x: C).(\forall (v: T).(\forall (i: nat).(\forall (n: nat).((csubst0 
@@ -28,25 +46,20 @@ C).(\lambda (H0: (csubst0 i v y x)).(csubst0_ind (\lambda (_: nat).(\lambda
 (\lambda (k: K).(\lambda (i0: nat).(\lambda (v0: T).(\lambda (u1: T).(\lambda 
 (u2: T).(\lambda (_: (subst0 i0 v0 u1 u2)).(\lambda (c: C).(\lambda (H2: (eq 
 C (CHead c k u1) (CSort n))).(let H3 \def (eq_ind C (CHead c k u1) (\lambda 
-(ee: C).(match ee in C return (\lambda (_: C).Prop) with [(CSort _) 
-\Rightarrow False | (CHead _ _ _) \Rightarrow True])) I (CSort n) H2) in 
-(False_ind P H3)))))))))) (\lambda (k: K).(\lambda (i0: nat).(\lambda (c1: 
-C).(\lambda (c2: C).(\lambda (v0: T).(\lambda (_: (csubst0 i0 v0 c1 
-c2)).(\lambda (_: (((eq C c1 (CSort n)) \to P))).(\lambda (u: T).(\lambda 
-(H3: (eq C (CHead c1 k u) (CSort n))).(let H4 \def (eq_ind C (CHead c1 k u) 
-(\lambda (ee: C).(match ee in C return (\lambda (_: C).Prop) with [(CSort _) 
+(ee: C).(match ee with [(CSort _) \Rightarrow False | (CHead _ _ _) 
+\Rightarrow True])) I (CSort n) H2) in (False_ind P H3)))))))))) (\lambda (k: 
+K).(\lambda (i0: nat).(\lambda (c1: C).(\lambda (c2: C).(\lambda (v0: 
+T).(\lambda (_: (csubst0 i0 v0 c1 c2)).(\lambda (_: (((eq C c1 (CSort n)) \to 
+P))).(\lambda (u: T).(\lambda (H3: (eq C (CHead c1 k u) (CSort n))).(let H4 
+\def (eq_ind C (CHead c1 k u) (\lambda (ee: C).(match ee with [(CSort _) 
 \Rightarrow False | (CHead _ _ _) \Rightarrow True])) I (CSort n) H3) in 
 (False_ind P H4))))))))))) (\lambda (k: K).(\lambda (i0: nat).(\lambda (v0: 
 T).(\lambda (u1: T).(\lambda (u2: T).(\lambda (_: (subst0 i0 v0 u1 
 u2)).(\lambda (c1: C).(\lambda (c2: C).(\lambda (_: (csubst0 i0 v0 c1 
 c2)).(\lambda (_: (((eq C c1 (CSort n)) \to P))).(\lambda (H4: (eq C (CHead 
 c1 k u1) (CSort n))).(let H5 \def (eq_ind C (CHead c1 k u1) (\lambda (ee: 
-C).(match ee in C return (\lambda (_: C).Prop) with [(CSort _) \Rightarrow 
-False | (CHead _ _ _) \Rightarrow True])) I (CSort n) H4) in (False_ind P 
-H5))))))))))))) i v y x H0))) H)))))).
-(* COMMENTS
-Initial nodes: 355
-END *)
+C).(match ee with [(CSort _) \Rightarrow False | (CHead _ _ _) \Rightarrow 
+True])) I (CSort n) H4) in (False_ind P H5))))))))))))) i v y x H0))) H)))))).
 
 theorem csubst0_gen_head:
  \forall (k: K).(\forall (c1: C).(\forall (x: C).(\forall (u1: T).(\forall 
@@ -89,100 +102,98 @@ T).(\lambda (c2: C).(\lambda (j: nat).(csubst0 j t c1 c2))))))))))) (\lambda
 (k0: K).(\lambda (i0: nat).(\lambda (v0: T).(\lambda (u0: T).(\lambda (u2: 
 T).(\lambda (H1: (subst0 i0 v0 u0 u2)).(\lambda (c: C).(\lambda (H2: (eq C 
 (CHead c k0 u0) (CHead c1 k u1))).(let H3 \def (f_equal C C (\lambda (e: 
-C).(match e in C return (\lambda (_: C).C) with [(CSort _) \Rightarrow c | 
-(CHead c0 _ _) \Rightarrow c0])) (CHead c k0 u0) (CHead c1 k u1) H2) in ((let 
-H4 \def (f_equal C K (\lambda (e: C).(match e in C return (\lambda (_: C).K) 
-with [(CSort _) \Rightarrow k0 | (CHead _ k1 _) \Rightarrow k1])) (CHead c k0 
-u0) (CHead c1 k u1) H2) in ((let H5 \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 c k0 u0) (CHead c1 k u1) H2) in (\lambda (H6: (eq 
-K k0 k)).(\lambda (H7: (eq C c c1)).(eq_ind_r C c1 (\lambda (c0: C).(or3 
-(ex3_2 T nat (\lambda (_: T).(\lambda (j: nat).(eq nat (s k0 i0) (s k j)))) 
-(\lambda (u3: T).(\lambda (_: nat).(eq C (CHead c0 k0 u2) (CHead c1 k u3)))) 
-(\lambda (u3: T).(\lambda (j: nat).(subst0 j v0 u1 u3)))) (ex3_2 C nat 
-(\lambda (_: C).(\lambda (j: nat).(eq nat (s k0 i0) (s k j)))) (\lambda (c2: 
-C).(\lambda (_: nat).(eq C (CHead c0 k0 u2) (CHead c2 k u1)))) (\lambda (c2: 
-C).(\lambda (j: nat).(csubst0 j v0 c1 c2)))) (ex4_3 T C nat (\lambda (_: 
-T).(\lambda (_: C).(\lambda (j: nat).(eq nat (s k0 i0) (s k j))))) (\lambda 
-(u3: T).(\lambda (c2: C).(\lambda (_: nat).(eq C (CHead c0 k0 u2) (CHead c2 k 
-u3))))) (\lambda (u3: T).(\lambda (_: C).(\lambda (j: nat).(subst0 j v0 u1 
-u3)))) (\lambda (_: T).(\lambda (c2: C).(\lambda (j: nat).(csubst0 j v0 c1 
-c2))))))) (let H8 \def (eq_ind T u0 (\lambda (t: T).(subst0 i0 v0 t u2)) H1 
-u1 H5) in (eq_ind_r K k (\lambda (k1: K).(or3 (ex3_2 T nat (\lambda (_: 
-T).(\lambda (j: nat).(eq nat (s k1 i0) (s k j)))) (\lambda (u3: T).(\lambda 
-(_: nat).(eq C (CHead c1 k1 u2) (CHead c1 k u3)))) (\lambda (u3: T).(\lambda 
+C).(match e with [(CSort _) \Rightarrow c | (CHead c0 _ _) \Rightarrow c0])) 
+(CHead c k0 u0) (CHead c1 k u1) H2) in ((let H4 \def (f_equal C K (\lambda 
+(e: C).(match e with [(CSort _) \Rightarrow k0 | (CHead _ k1 _) \Rightarrow 
+k1])) (CHead c k0 u0) (CHead c1 k u1) H2) in ((let H5 \def (f_equal C T 
+(\lambda (e: C).(match e with [(CSort _) \Rightarrow u0 | (CHead _ _ t) 
+\Rightarrow t])) (CHead c k0 u0) (CHead c1 k u1) H2) in (\lambda (H6: (eq K 
+k0 k)).(\lambda (H7: (eq C c c1)).(eq_ind_r C c1 (\lambda (c0: C).(or3 (ex3_2 
+T nat (\lambda (_: T).(\lambda (j: nat).(eq nat (s k0 i0) (s k j)))) (\lambda 
+(u3: T).(\lambda (_: nat).(eq C (CHead c0 k0 u2) (CHead c1 k u3)))) (\lambda 
+(u3: T).(\lambda (j: nat).(subst0 j v0 u1 u3)))) (ex3_2 C nat (\lambda (_: 
+C).(\lambda (j: nat).(eq nat (s k0 i0) (s k j)))) (\lambda (c2: C).(\lambda 
+(_: nat).(eq C (CHead c0 k0 u2) (CHead c2 k u1)))) (\lambda (c2: C).(\lambda 
+(j: nat).(csubst0 j v0 c1 c2)))) (ex4_3 T C nat (\lambda (_: T).(\lambda (_: 
+C).(\lambda (j: nat).(eq nat (s k0 i0) (s k j))))) (\lambda (u3: T).(\lambda 
+(c2: C).(\lambda (_: nat).(eq C (CHead c0 k0 u2) (CHead c2 k u3))))) (\lambda 
+(u3: T).(\lambda (_: C).(\lambda (j: nat).(subst0 j v0 u1 u3)))) (\lambda (_: 
+T).(\lambda (c2: C).(\lambda (j: nat).(csubst0 j v0 c1 c2))))))) (let H8 \def 
+(eq_ind T u0 (\lambda (t: T).(subst0 i0 v0 t u2)) H1 u1 H5) in (eq_ind_r K k 
+(\lambda (k1: K).(or3 (ex3_2 T nat (\lambda (_: T).(\lambda (j: nat).(eq nat 
+(s k1 i0) (s k j)))) (\lambda (u3: T).(\lambda (_: nat).(eq C (CHead c1 k1 
+u2) (CHead c1 k u3)))) (\lambda (u3: T).(\lambda (j: nat).(subst0 j v0 u1 
+u3)))) (ex3_2 C nat (\lambda (_: C).(\lambda (j: nat).(eq nat (s k1 i0) (s k 
+j)))) (\lambda (c2: C).(\lambda (_: nat).(eq C (CHead c1 k1 u2) (CHead c2 k 
+u1)))) (\lambda (c2: C).(\lambda (j: nat).(csubst0 j v0 c1 c2)))) (ex4_3 T C 
+nat (\lambda (_: T).(\lambda (_: C).(\lambda (j: nat).(eq nat (s k1 i0) (s k 
+j))))) (\lambda (u3: T).(\lambda (c2: C).(\lambda (_: nat).(eq C (CHead c1 k1 
+u2) (CHead c2 k u3))))) (\lambda (u3: T).(\lambda (_: C).(\lambda (j: 
+nat).(subst0 j v0 u1 u3)))) (\lambda (_: T).(\lambda (c2: C).(\lambda (j: 
+nat).(csubst0 j v0 c1 c2))))))) (or3_intro0 (ex3_2 T nat (\lambda (_: 
+T).(\lambda (j: nat).(eq nat (s k i0) (s k j)))) (\lambda (u3: T).(\lambda 
+(_: nat).(eq C (CHead c1 k u2) (CHead c1 k u3)))) (\lambda (u3: T).(\lambda 
 (j: nat).(subst0 j v0 u1 u3)))) (ex3_2 C nat (\lambda (_: C).(\lambda (j: 
-nat).(eq nat (s k1 i0) (s k j)))) (\lambda (c2: C).(\lambda (_: nat).(eq C 
-(CHead c1 k1 u2) (CHead c2 k u1)))) (\lambda (c2: C).(\lambda (j: 
+nat).(eq nat (s k i0) (s k j)))) (\lambda (c2: C).(\lambda (_: nat).(eq C 
+(CHead c1 k u2) (CHead c2 k u1)))) (\lambda (c2: C).(\lambda (j: 
 nat).(csubst0 j v0 c1 c2)))) (ex4_3 T C nat (\lambda (_: T).(\lambda (_: 
-C).(\lambda (j: nat).(eq nat (s k1 i0) (s k j))))) (\lambda (u3: T).(\lambda 
-(c2: C).(\lambda (_: nat).(eq C (CHead c1 k1 u2) (CHead c2 k u3))))) (\lambda 
+C).(\lambda (j: nat).(eq nat (s k i0) (s k j))))) (\lambda (u3: T).(\lambda 
+(c2: C).(\lambda (_: nat).(eq C (CHead c1 k u2) (CHead c2 k u3))))) (\lambda 
 (u3: T).(\lambda (_: C).(\lambda (j: nat).(subst0 j v0 u1 u3)))) (\lambda (_: 
-T).(\lambda (c2: C).(\lambda (j: nat).(csubst0 j v0 c1 c2))))))) (or3_intro0 
-(ex3_2 T nat (\lambda (_: T).(\lambda (j: nat).(eq nat (s k i0) (s k j)))) 
-(\lambda (u3: T).(\lambda (_: nat).(eq C (CHead c1 k u2) (CHead c1 k u3)))) 
-(\lambda (u3: T).(\lambda (j: nat).(subst0 j v0 u1 u3)))) (ex3_2 C nat 
-(\lambda (_: C).(\lambda (j: nat).(eq nat (s k i0) (s k j)))) (\lambda (c2: 
-C).(\lambda (_: nat).(eq C (CHead c1 k u2) (CHead c2 k u1)))) (\lambda (c2: 
-C).(\lambda (j: nat).(csubst0 j v0 c1 c2)))) (ex4_3 T C nat (\lambda (_: 
-T).(\lambda (_: C).(\lambda (j: nat).(eq nat (s k i0) (s k j))))) (\lambda 
-(u3: T).(\lambda (c2: C).(\lambda (_: nat).(eq C (CHead c1 k u2) (CHead c2 k 
-u3))))) (\lambda (u3: T).(\lambda (_: C).(\lambda (j: nat).(subst0 j v0 u1 
-u3)))) (\lambda (_: T).(\lambda (c2: C).(\lambda (j: nat).(csubst0 j v0 c1 
-c2))))) (ex3_2_intro T nat (\lambda (_: T).(\lambda (j: nat).(eq nat (s k i0) 
-(s k j)))) (\lambda (u3: T).(\lambda (_: nat).(eq C (CHead c1 k u2) (CHead c1 
-k u3)))) (\lambda (u3: T).(\lambda (j: nat).(subst0 j v0 u1 u3))) u2 i0 
-(refl_equal nat (s k i0)) (refl_equal C (CHead c1 k u2)) H8)) k0 H6)) c 
-H7)))) H4)) H3)))))))))) (\lambda (k0: K).(\lambda (i0: nat).(\lambda (c0: 
-C).(\lambda (c2: C).(\lambda (v0: T).(\lambda (H1: (csubst0 i0 v0 c0 
-c2)).(\lambda (H2: (((eq C c0 (CHead c1 k u1)) \to (or3 (ex3_2 T nat (\lambda 
-(_: T).(\lambda (j: nat).(eq nat i0 (s k j)))) (\lambda (u2: T).(\lambda (_: 
-nat).(eq C c2 (CHead c1 k u2)))) (\lambda (u2: T).(\lambda (j: nat).(subst0 j 
-v0 u1 u2)))) (ex3_2 C nat (\lambda (_: C).(\lambda (j: nat).(eq nat i0 (s k 
-j)))) (\lambda (c3: C).(\lambda (_: nat).(eq C c2 (CHead c3 k u1)))) (\lambda 
-(c3: C).(\lambda (j: nat).(csubst0 j v0 c1 c3)))) (ex4_3 T C nat (\lambda (_: 
+T).(\lambda (c2: C).(\lambda (j: nat).(csubst0 j v0 c1 c2))))) (ex3_2_intro T 
+nat (\lambda (_: T).(\lambda (j: nat).(eq nat (s k i0) (s k j)))) (\lambda 
+(u3: T).(\lambda (_: nat).(eq C (CHead c1 k u2) (CHead c1 k u3)))) (\lambda 
+(u3: T).(\lambda (j: nat).(subst0 j v0 u1 u3))) u2 i0 (refl_equal nat (s k 
+i0)) (refl_equal C (CHead c1 k u2)) H8)) k0 H6)) c H7)))) H4)) H3)))))))))) 
+(\lambda (k0: K).(\lambda (i0: nat).(\lambda (c0: C).(\lambda (c2: 
+C).(\lambda (v0: T).(\lambda (H1: (csubst0 i0 v0 c0 c2)).(\lambda (H2: (((eq 
+C c0 (CHead c1 k u1)) \to (or3 (ex3_2 T nat (\lambda (_: T).(\lambda (j: 
+nat).(eq nat i0 (s k j)))) (\lambda (u2: T).(\lambda (_: nat).(eq C c2 (CHead 
+c1 k u2)))) (\lambda (u2: T).(\lambda (j: nat).(subst0 j v0 u1 u2)))) (ex3_2 
+C nat (\lambda (_: C).(\lambda (j: nat).(eq nat i0 (s k j)))) (\lambda (c3: 
+C).(\lambda (_: nat).(eq C c2 (CHead c3 k u1)))) (\lambda (c3: C).(\lambda 
+(j: nat).(csubst0 j v0 c1 c3)))) (ex4_3 T C nat (\lambda (_: T).(\lambda (_: 
+C).(\lambda (j: nat).(eq nat i0 (s k j))))) (\lambda (u2: T).(\lambda (c3: 
+C).(\lambda (_: nat).(eq C c2 (CHead c3 k u2))))) (\lambda (u2: T).(\lambda 
+(_: C).(\lambda (j: nat).(subst0 j v0 u1 u2)))) (\lambda (_: T).(\lambda (c3: 
+C).(\lambda (j: nat).(csubst0 j v0 c1 c3))))))))).(\lambda (u: T).(\lambda 
+(H3: (eq C (CHead c0 k0 u) (CHead c1 k u1))).(let H4 \def (f_equal C C 
+(\lambda (e: C).(match e with [(CSort _) \Rightarrow c0 | (CHead c _ _) 
+\Rightarrow c])) (CHead c0 k0 u) (CHead c1 k u1) H3) in ((let H5 \def 
+(f_equal C K (\lambda (e: C).(match e with [(CSort _) \Rightarrow k0 | (CHead 
+_ k1 _) \Rightarrow k1])) (CHead c0 k0 u) (CHead c1 k u1) H3) in ((let H6 
+\def (f_equal C T (\lambda (e: C).(match e with [(CSort _) \Rightarrow u | 
+(CHead _ _ t) \Rightarrow t])) (CHead c0 k0 u) (CHead c1 k u1) H3) in 
+(\lambda (H7: (eq K k0 k)).(\lambda (H8: (eq C c0 c1)).(eq_ind_r T u1 
+(\lambda (t: T).(or3 (ex3_2 T nat (\lambda (_: T).(\lambda (j: nat).(eq nat 
+(s k0 i0) (s k j)))) (\lambda (u2: T).(\lambda (_: nat).(eq C (CHead c2 k0 t) 
+(CHead c1 k u2)))) (\lambda (u2: T).(\lambda (j: nat).(subst0 j v0 u1 u2)))) 
+(ex3_2 C nat (\lambda (_: C).(\lambda (j: nat).(eq nat (s k0 i0) (s k j)))) 
+(\lambda (c3: C).(\lambda (_: nat).(eq C (CHead c2 k0 t) (CHead c3 k u1)))) 
+(\lambda (c3: C).(\lambda (j: nat).(csubst0 j v0 c1 c3)))) (ex4_3 T C nat 
+(\lambda (_: T).(\lambda (_: C).(\lambda (j: nat).(eq nat (s k0 i0) (s k 
+j))))) (\lambda (u2: T).(\lambda (c3: C).(\lambda (_: nat).(eq C (CHead c2 k0 
+t) (CHead c3 k u2))))) (\lambda (u2: T).(\lambda (_: C).(\lambda (j: 
+nat).(subst0 j v0 u1 u2)))) (\lambda (_: T).(\lambda (c3: C).(\lambda (j: 
+nat).(csubst0 j v0 c1 c3))))))) (let H9 \def (eq_ind C c0 (\lambda (c: 
+C).((eq C c (CHead c1 k u1)) \to (or3 (ex3_2 T nat (\lambda (_: T).(\lambda 
+(j: nat).(eq nat i0 (s k j)))) (\lambda (u2: T).(\lambda (_: nat).(eq C c2 
+(CHead c1 k u2)))) (\lambda (u2: T).(\lambda (j: nat).(subst0 j v0 u1 u2)))) 
+(ex3_2 C nat (\lambda (_: C).(\lambda (j: nat).(eq nat i0 (s k j)))) (\lambda 
+(c3: C).(\lambda (_: nat).(eq C c2 (CHead c3 k u1)))) (\lambda (c3: 
+C).(\lambda (j: nat).(csubst0 j v0 c1 c3)))) (ex4_3 T C nat (\lambda (_: 
 T).(\lambda (_: C).(\lambda (j: nat).(eq nat i0 (s k j))))) (\lambda (u2: 
 T).(\lambda (c3: C).(\lambda (_: nat).(eq C c2 (CHead c3 k u2))))) (\lambda 
 (u2: T).(\lambda (_: C).(\lambda (j: nat).(subst0 j v0 u1 u2)))) (\lambda (_: 
-T).(\lambda (c3: C).(\lambda (j: nat).(csubst0 j v0 c1 c3))))))))).(\lambda 
-(u: T).(\lambda (H3: (eq C (CHead c0 k0 u) (CHead c1 k u1))).(let H4 \def 
-(f_equal C C (\lambda (e: C).(match e in C return (\lambda (_: C).C) with 
-[(CSort _) \Rightarrow c0 | (CHead c _ _) \Rightarrow c])) (CHead c0 k0 u) 
-(CHead c1 k u1) H3) in ((let H5 \def (f_equal C K (\lambda (e: C).(match e in 
-C return (\lambda (_: C).K) with [(CSort _) \Rightarrow k0 | (CHead _ k1 _) 
-\Rightarrow k1])) (CHead c0 k0 u) (CHead c1 k 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 c0 k0 u) 
-(CHead c1 k u1) H3) in (\lambda (H7: (eq K k0 k)).(\lambda (H8: (eq C c0 
-c1)).(eq_ind_r T u1 (\lambda (t: T).(or3 (ex3_2 T nat (\lambda (_: 
-T).(\lambda (j: nat).(eq nat (s k0 i0) (s k j)))) (\lambda (u2: T).(\lambda 
-(_: nat).(eq C (CHead c2 k0 t) (CHead c1 k u2)))) (\lambda (u2: T).(\lambda 
-(j: nat).(subst0 j v0 u1 u2)))) (ex3_2 C nat (\lambda (_: C).(\lambda (j: 
-nat).(eq nat (s k0 i0) (s k j)))) (\lambda (c3: C).(\lambda (_: nat).(eq C 
-(CHead c2 k0 t) (CHead c3 k u1)))) (\lambda (c3: C).(\lambda (j: 
+T).(\lambda (c3: C).(\lambda (j: nat).(csubst0 j v0 c1 c3)))))))) H2 c1 H8) 
+in (let H10 \def (eq_ind C c0 (\lambda (c: C).(csubst0 i0 v0 c c2)) H1 c1 H8) 
+in (eq_ind_r K k (\lambda (k1: K).(or3 (ex3_2 T nat (\lambda (_: T).(\lambda 
+(j: nat).(eq nat (s k1 i0) (s k j)))) (\lambda (u2: T).(\lambda (_: nat).(eq 
+C (CHead c2 k1 u1) (CHead c1 k u2)))) (\lambda (u2: T).(\lambda (j: 
+nat).(subst0 j v0 u1 u2)))) (ex3_2 C nat (\lambda (_: C).(\lambda (j: 
+nat).(eq nat (s k1 i0) (s k j)))) (\lambda (c3: C).(\lambda (_: nat).(eq C 
+(CHead c2 k1 u1) (CHead c3 k u1)))) (\lambda (c3: C).(\lambda (j: 
 nat).(csubst0 j v0 c1 c3)))) (ex4_3 T C nat (\lambda (_: T).(\lambda (_: 
-C).(\lambda (j: nat).(eq nat (s k0 i0) (s k j))))) (\lambda (u2: T).(\lambda 
-(c3: C).(\lambda (_: nat).(eq C (CHead c2 k0 t) (CHead c3 k u2))))) (\lambda 
-(u2: T).(\lambda (_: C).(\lambda (j: nat).(subst0 j v0 u1 u2)))) (\lambda (_: 
-T).(\lambda (c3: C).(\lambda (j: nat).(csubst0 j v0 c1 c3))))))) (let H9 \def 
-(eq_ind C c0 (\lambda (c: C).((eq C c (CHead c1 k u1)) \to (or3 (ex3_2 T nat 
-(\lambda (_: T).(\lambda (j: nat).(eq nat i0 (s k j)))) (\lambda (u2: 
-T).(\lambda (_: nat).(eq C c2 (CHead c1 k u2)))) (\lambda (u2: T).(\lambda 
-(j: nat).(subst0 j v0 u1 u2)))) (ex3_2 C nat (\lambda (_: C).(\lambda (j: 
-nat).(eq nat i0 (s k j)))) (\lambda (c3: C).(\lambda (_: nat).(eq C c2 (CHead 
-c3 k u1)))) (\lambda (c3: C).(\lambda (j: nat).(csubst0 j v0 c1 c3)))) (ex4_3 
-T C nat (\lambda (_: T).(\lambda (_: C).(\lambda (j: nat).(eq nat i0 (s k 
-j))))) (\lambda (u2: T).(\lambda (c3: C).(\lambda (_: nat).(eq C c2 (CHead c3 
-k u2))))) (\lambda (u2: T).(\lambda (_: C).(\lambda (j: nat).(subst0 j v0 u1 
-u2)))) (\lambda (_: T).(\lambda (c3: C).(\lambda (j: nat).(csubst0 j v0 c1 
-c3)))))))) H2 c1 H8) in (let H10 \def (eq_ind C c0 (\lambda (c: C).(csubst0 
-i0 v0 c c2)) H1 c1 H8) in (eq_ind_r K k (\lambda (k1: K).(or3 (ex3_2 T nat 
-(\lambda (_: T).(\lambda (j: nat).(eq nat (s k1 i0) (s k j)))) (\lambda (u2: 
-T).(\lambda (_: nat).(eq C (CHead c2 k1 u1) (CHead c1 k u2)))) (\lambda (u2: 
-T).(\lambda (j: nat).(subst0 j v0 u1 u2)))) (ex3_2 C nat (\lambda (_: 
-C).(\lambda (j: nat).(eq nat (s k1 i0) (s k j)))) (\lambda (c3: C).(\lambda 
-(_: nat).(eq C (CHead c2 k1 u1) (CHead c3 k u1)))) (\lambda (c3: C).(\lambda 
-(j: nat).(csubst0 j v0 c1 c3)))) (ex4_3 T C nat (\lambda (_: T).(\lambda (_: 
 C).(\lambda (j: nat).(eq nat (s k1 i0) (s k j))))) (\lambda (u2: T).(\lambda 
 (c3: C).(\lambda (_: nat).(eq C (CHead c2 k1 u1) (CHead c3 k u2))))) (\lambda 
 (u2: T).(\lambda (_: C).(\lambda (j: nat).(subst0 j v0 u1 u2)))) (\lambda (_: 
@@ -215,57 +226,53 @@ T).(\lambda (c3: C).(\lambda (_: nat).(eq C c2 (CHead c3 k u3))))) (\lambda
 (u3: T).(\lambda (_: C).(\lambda (j: nat).(subst0 j v0 u1 u3)))) (\lambda (_: 
 T).(\lambda (c3: C).(\lambda (j: nat).(csubst0 j v0 c1 c3))))))))).(\lambda 
 (H4: (eq C (CHead c0 k0 u0) (CHead c1 k u1))).(let H5 \def (f_equal C C 
-(\lambda (e: C).(match e in C return (\lambda (_: C).C) with [(CSort _) 
-\Rightarrow c0 | (CHead c _ _) \Rightarrow c])) (CHead c0 k0 u0) (CHead c1 k 
-u1) H4) in ((let H6 \def (f_equal C K (\lambda (e: C).(match e in C return 
-(\lambda (_: C).K) with [(CSort _) \Rightarrow k0 | (CHead _ k1 _) 
-\Rightarrow k1])) (CHead c0 k0 u0) (CHead c1 k u1) H4) in ((let H7 \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 c0 k0 u0) 
-(CHead c1 k u1) H4) in (\lambda (H8: (eq K k0 k)).(\lambda (H9: (eq C c0 
-c1)).(let H10 \def (eq_ind C c0 (\lambda (c: C).((eq C c (CHead c1 k u1)) \to 
-(or3 (ex3_2 T nat (\lambda (_: T).(\lambda (j: nat).(eq nat i0 (s k j)))) 
-(\lambda (u3: T).(\lambda (_: nat).(eq C c2 (CHead c1 k u3)))) (\lambda (u3: 
-T).(\lambda (j: nat).(subst0 j v0 u1 u3)))) (ex3_2 C nat (\lambda (_: 
-C).(\lambda (j: nat).(eq nat i0 (s k j)))) (\lambda (c3: C).(\lambda (_: 
-nat).(eq C c2 (CHead c3 k u1)))) (\lambda (c3: C).(\lambda (j: nat).(csubst0 
-j v0 c1 c3)))) (ex4_3 T C nat (\lambda (_: T).(\lambda (_: C).(\lambda (j: 
-nat).(eq nat i0 (s k j))))) (\lambda (u3: T).(\lambda (c3: C).(\lambda (_: 
-nat).(eq C c2 (CHead c3 k u3))))) (\lambda (u3: T).(\lambda (_: C).(\lambda 
-(j: nat).(subst0 j v0 u1 u3)))) (\lambda (_: T).(\lambda (c3: C).(\lambda (j: 
-nat).(csubst0 j v0 c1 c3)))))))) H3 c1 H9) in (let H11 \def (eq_ind C c0 
-(\lambda (c: C).(csubst0 i0 v0 c c2)) H2 c1 H9) in (let H12 \def (eq_ind T u0 
-(\lambda (t: T).(subst0 i0 v0 t u2)) H1 u1 H7) in (eq_ind_r K k (\lambda (k1: 
-K).(or3 (ex3_2 T nat (\lambda (_: T).(\lambda (j: nat).(eq nat (s k1 i0) (s k 
-j)))) (\lambda (u3: T).(\lambda (_: nat).(eq C (CHead c2 k1 u2) (CHead c1 k 
-u3)))) (\lambda (u3: T).(\lambda (j: nat).(subst0 j v0 u1 u3)))) (ex3_2 C nat 
-(\lambda (_: C).(\lambda (j: nat).(eq nat (s k1 i0) (s k j)))) (\lambda (c3: 
-C).(\lambda (_: nat).(eq C (CHead c2 k1 u2) (CHead c3 k u1)))) (\lambda (c3: 
+(\lambda (e: C).(match e with [(CSort _) \Rightarrow c0 | (CHead c _ _) 
+\Rightarrow c])) (CHead c0 k0 u0) (CHead c1 k u1) H4) in ((let H6 \def 
+(f_equal C K (\lambda (e: C).(match e with [(CSort _) \Rightarrow k0 | (CHead 
+_ k1 _) \Rightarrow k1])) (CHead c0 k0 u0) (CHead c1 k u1) H4) in ((let H7 
+\def (f_equal C T (\lambda (e: C).(match e with [(CSort _) \Rightarrow u0 | 
+(CHead _ _ t) \Rightarrow t])) (CHead c0 k0 u0) (CHead c1 k u1) H4) in 
+(\lambda (H8: (eq K k0 k)).(\lambda (H9: (eq C c0 c1)).(let H10 \def (eq_ind 
+C c0 (\lambda (c: C).((eq C c (CHead c1 k u1)) \to (or3 (ex3_2 T nat (\lambda 
+(_: T).(\lambda (j: nat).(eq nat i0 (s k j)))) (\lambda (u3: T).(\lambda (_: 
+nat).(eq C c2 (CHead c1 k u3)))) (\lambda (u3: T).(\lambda (j: nat).(subst0 j 
+v0 u1 u3)))) (ex3_2 C nat (\lambda (_: C).(\lambda (j: nat).(eq nat i0 (s k 
+j)))) (\lambda (c3: C).(\lambda (_: nat).(eq C c2 (CHead c3 k u1)))) (\lambda 
+(c3: C).(\lambda (j: nat).(csubst0 j v0 c1 c3)))) (ex4_3 T C nat (\lambda (_: 
+T).(\lambda (_: C).(\lambda (j: nat).(eq nat i0 (s k j))))) (\lambda (u3: 
+T).(\lambda (c3: C).(\lambda (_: nat).(eq C c2 (CHead c3 k u3))))) (\lambda 
+(u3: T).(\lambda (_: C).(\lambda (j: nat).(subst0 j v0 u1 u3)))) (\lambda (_: 
+T).(\lambda (c3: C).(\lambda (j: nat).(csubst0 j v0 c1 c3)))))))) H3 c1 H9) 
+in (let H11 \def (eq_ind C c0 (\lambda (c: C).(csubst0 i0 v0 c c2)) H2 c1 H9) 
+in (let H12 \def (eq_ind T u0 (\lambda (t: T).(subst0 i0 v0 t u2)) H1 u1 H7) 
+in (eq_ind_r K k (\lambda (k1: K).(or3 (ex3_2 T nat (\lambda (_: T).(\lambda 
+(j: nat).(eq nat (s k1 i0) (s k j)))) (\lambda (u3: T).(\lambda (_: nat).(eq 
+C (CHead c2 k1 u2) (CHead c1 k u3)))) (\lambda (u3: T).(\lambda (j: 
+nat).(subst0 j v0 u1 u3)))) (ex3_2 C nat (\lambda (_: C).(\lambda (j: 
+nat).(eq nat (s k1 i0) (s k j)))) (\lambda (c3: C).(\lambda (_: nat).(eq C 
+(CHead c2 k1 u2) (CHead c3 k u1)))) (\lambda (c3: C).(\lambda (j: 
+nat).(csubst0 j v0 c1 c3)))) (ex4_3 T C nat (\lambda (_: T).(\lambda (_: 
+C).(\lambda (j: nat).(eq nat (s k1 i0) (s k j))))) (\lambda (u3: T).(\lambda 
+(c3: C).(\lambda (_: nat).(eq C (CHead c2 k1 u2) (CHead c3 k u3))))) (\lambda 
+(u3: T).(\lambda (_: C).(\lambda (j: nat).(subst0 j v0 u1 u3)))) (\lambda (_: 
+T).(\lambda (c3: C).(\lambda (j: nat).(csubst0 j v0 c1 c3))))))) (or3_intro2 
+(ex3_2 T nat (\lambda (_: T).(\lambda (j: nat).(eq nat (s k i0) (s k j)))) 
+(\lambda (u3: T).(\lambda (_: nat).(eq C (CHead c2 k u2) (CHead c1 k u3)))) 
+(\lambda (u3: T).(\lambda (j: nat).(subst0 j v0 u1 u3)))) (ex3_2 C nat 
+(\lambda (_: C).(\lambda (j: nat).(eq nat (s k i0) (s k j)))) (\lambda (c3: 
+C).(\lambda (_: nat).(eq C (CHead c2 k u2) (CHead c3 k u1)))) (\lambda (c3: 
 C).(\lambda (j: nat).(csubst0 j v0 c1 c3)))) (ex4_3 T C nat (\lambda (_: 
-T).(\lambda (_: C).(\lambda (j: nat).(eq nat (s k1 i0) (s k j))))) (\lambda 
-(u3: T).(\lambda (c3: C).(\lambda (_: nat).(eq C (CHead c2 k1 u2) (CHead c3 k 
-u3))))) (\lambda (u3: T).(\lambda (_: C).(\lambda (j: nat).(subst0 j v0 u1 
-u3)))) (\lambda (_: T).(\lambda (c3: C).(\lambda (j: nat).(csubst0 j v0 c1 
-c3))))))) (or3_intro2 (ex3_2 T nat (\lambda (_: T).(\lambda (j: nat).(eq nat 
-(s k i0) (s k j)))) (\lambda (u3: T).(\lambda (_: nat).(eq C (CHead c2 k u2) 
-(CHead c1 k u3)))) (\lambda (u3: T).(\lambda (j: nat).(subst0 j v0 u1 u3)))) 
-(ex3_2 C nat (\lambda (_: C).(\lambda (j: nat).(eq nat (s k i0) (s k j)))) 
-(\lambda (c3: C).(\lambda (_: nat).(eq C (CHead c2 k u2) (CHead c3 k u1)))) 
-(\lambda (c3: C).(\lambda (j: nat).(csubst0 j v0 c1 c3)))) (ex4_3 T C nat 
-(\lambda (_: T).(\lambda (_: C).(\lambda (j: nat).(eq nat (s k i0) (s k 
-j))))) (\lambda (u3: T).(\lambda (c3: C).(\lambda (_: nat).(eq C (CHead c2 k 
-u2) (CHead c3 k u3))))) (\lambda (u3: T).(\lambda (_: C).(\lambda (j: 
-nat).(subst0 j v0 u1 u3)))) (\lambda (_: T).(\lambda (c3: C).(\lambda (j: 
-nat).(csubst0 j v0 c1 c3))))) (ex4_3_intro T C nat (\lambda (_: T).(\lambda 
-(_: C).(\lambda (j: nat).(eq nat (s k i0) (s k j))))) (\lambda (u3: 
-T).(\lambda (c3: C).(\lambda (_: nat).(eq C (CHead c2 k u2) (CHead c3 k 
+T).(\lambda (_: C).(\lambda (j: nat).(eq nat (s k i0) (s k j))))) (\lambda 
+(u3: T).(\lambda (c3: C).(\lambda (_: nat).(eq C (CHead c2 k u2) (CHead c3 k 
 u3))))) (\lambda (u3: T).(\lambda (_: C).(\lambda (j: nat).(subst0 j v0 u1 
 u3)))) (\lambda (_: T).(\lambda (c3: C).(\lambda (j: nat).(csubst0 j v0 c1 
-c3)))) u2 c2 i0 (refl_equal nat (s k i0)) (refl_equal C (CHead c2 k u2)) H12 
-H11)) k0 H8))))))) H6)) H5))))))))))))) i v y x H0))) H))))))).
-(* COMMENTS
-Initial nodes: 4039
-END *)
+c3))))) (ex4_3_intro T C nat (\lambda (_: T).(\lambda (_: C).(\lambda (j: 
+nat).(eq nat (s k i0) (s k j))))) (\lambda (u3: T).(\lambda (c3: C).(\lambda 
+(_: nat).(eq C (CHead c2 k u2) (CHead c3 k u3))))) (\lambda (u3: T).(\lambda 
+(_: C).(\lambda (j: nat).(subst0 j v0 u1 u3)))) (\lambda (_: T).(\lambda (c3: 
+C).(\lambda (j: nat).(csubst0 j v0 c1 c3)))) u2 c2 i0 (refl_equal nat (s k 
+i0)) (refl_equal C (CHead c2 k u2)) H12 H11)) k0 H8))))))) H6)) 
+H5))))))))))))) i v y x H0))) H))))))).
 
 theorem csubst0_gen_S_bind_2:
  \forall (b: B).(\forall (x: C).(\forall (c2: C).(\forall (v: T).(\forall 
@@ -277,186 +284,190 @@ C).(\lambda (v1: T).(subst0 i v v1 v2))) (\lambda (c1: C).(\lambda (_:
 T).(csubst0 i v c1 c2))) (\lambda (c1: C).(\lambda (v1: T).(eq C x (CHead c1 
 (Bind b) v1))))))))))))
 \def
- \lambda (b: B).(\lambda (x: C).(\lambda (c2: C).(\lambda (v: T).(\lambda 
-(v2: T).(\lambda (i: nat).(\lambda (H: (csubst0 (S i) v x (CHead c2 (Bind b) 
-v2))).(insert_eq C (CHead c2 (Bind b) v2) (\lambda (c: C).(csubst0 (S i) v x 
-c)) (\lambda (_: C).(or3 (ex2 T (\lambda (v1: T).(subst0 i v v1 v2)) (\lambda 
-(v1: T).(eq C x (CHead c2 (Bind b) v1)))) (ex2 C (\lambda (c1: C).(csubst0 i 
-v c1 c2)) (\lambda (c1: C).(eq C x (CHead c1 (Bind b) v2)))) (ex3_2 C T 
+ \lambda (b: B).(\lambda (x: C).(C_ind (\lambda (c: C).(\forall (c2: 
+C).(\forall (v: T).(\forall (v2: T).(\forall (i: nat).((csubst0 (S i) v c 
+(CHead c2 (Bind b) v2)) \to (or3 (ex2 T (\lambda (v1: T).(subst0 i v v1 v2)) 
+(\lambda (v1: T).(eq C c (CHead c2 (Bind b) v1)))) (ex2 C (\lambda (c1: 
+C).(csubst0 i v c1 c2)) (\lambda (c1: C).(eq C c (CHead c1 (Bind b) v2)))) 
+(ex3_2 C T (\lambda (_: C).(\lambda (v1: T).(subst0 i v v1 v2))) (\lambda 
+(c1: C).(\lambda (_: T).(csubst0 i v c1 c2))) (\lambda (c1: C).(\lambda (v1: 
+T).(eq C c (CHead c1 (Bind b) v1)))))))))))) (\lambda (n: nat).(\lambda (c2: 
+C).(\lambda (v: T).(\lambda (v2: T).(\lambda (i: nat).(\lambda (H: (csubst0 
+(S i) v (CSort n) (CHead c2 (Bind b) v2))).(csubst0_gen_sort (CHead c2 (Bind 
+b) v2) v (S i) n H (or3 (ex2 T (\lambda (v1: T).(subst0 i v v1 v2)) (\lambda 
+(v1: T).(eq C (CSort n) (CHead c2 (Bind b) v1)))) (ex2 C (\lambda (c1: 
+C).(csubst0 i v c1 c2)) (\lambda (c1: C).(eq C (CSort n) (CHead c1 (Bind b) 
+v2)))) (ex3_2 C T (\lambda (_: C).(\lambda (v1: T).(subst0 i v v1 v2))) 
+(\lambda (c1: C).(\lambda (_: T).(csubst0 i v c1 c2))) (\lambda (c1: 
+C).(\lambda (v1: T).(eq C (CSort n) (CHead c1 (Bind b) v1))))))))))))) 
+(\lambda (c: C).(\lambda (_: ((\forall (c2: C).(\forall (v: T).(\forall (v2: 
+T).(\forall (i: nat).((csubst0 (S i) v c (CHead c2 (Bind b) v2)) \to (or3 
+(ex2 T (\lambda (v1: T).(subst0 i v v1 v2)) (\lambda (v1: T).(eq C c (CHead 
+c2 (Bind b) v1)))) (ex2 C (\lambda (c1: C).(csubst0 i v c1 c2)) (\lambda (c1: 
+C).(eq C c (CHead c1 (Bind b) v2)))) (ex3_2 C T (\lambda (_: C).(\lambda (v1: 
+T).(subst0 i v v1 v2))) (\lambda (c1: C).(\lambda (_: T).(csubst0 i v c1 
+c2))) (\lambda (c1: C).(\lambda (v1: T).(eq C c (CHead c1 (Bind b) 
+v1))))))))))))).(\lambda (k: K).(\lambda (t: T).(\lambda (c2: C).(\lambda (v: 
+T).(\lambda (v2: T).(\lambda (i: nat).(\lambda (H0: (csubst0 (S i) v (CHead c 
+k t) (CHead c2 (Bind b) v2))).(let H1 \def (csubst0_gen_head k c (CHead c2 
+(Bind b) v2) t v (S i) H0) in (or3_ind (ex3_2 T nat (\lambda (_: T).(\lambda 
+(j: nat).(eq nat (S i) (s k j)))) (\lambda (u2: T).(\lambda (_: nat).(eq C 
+(CHead c2 (Bind b) v2) (CHead c k u2)))) (\lambda (u2: T).(\lambda (j: 
+nat).(subst0 j v t u2)))) (ex3_2 C nat (\lambda (_: C).(\lambda (j: nat).(eq 
+nat (S i) (s k j)))) (\lambda (c3: C).(\lambda (_: nat).(eq C (CHead c2 (Bind 
+b) v2) (CHead c3 k t)))) (\lambda (c3: C).(\lambda (j: nat).(csubst0 j v c 
+c3)))) (ex4_3 T C nat (\lambda (_: T).(\lambda (_: C).(\lambda (j: nat).(eq 
+nat (S i) (s k j))))) (\lambda (u2: T).(\lambda (c3: C).(\lambda (_: nat).(eq 
+C (CHead c2 (Bind b) v2) (CHead c3 k u2))))) (\lambda (u2: T).(\lambda (_: 
+C).(\lambda (j: nat).(subst0 j v t u2)))) (\lambda (_: T).(\lambda (c3: 
+C).(\lambda (j: nat).(csubst0 j v c c3))))) (or3 (ex2 T (\lambda (v1: 
+T).(subst0 i v v1 v2)) (\lambda (v1: T).(eq C (CHead c k t) (CHead c2 (Bind 
+b) v1)))) (ex2 C (\lambda (c1: C).(csubst0 i v c1 c2)) (\lambda (c1: C).(eq C 
+(CHead c k t) (CHead c1 (Bind b) v2)))) (ex3_2 C T (\lambda (_: C).(\lambda 
+(v1: T).(subst0 i v v1 v2))) (\lambda (c1: C).(\lambda (_: T).(csubst0 i v c1 
+c2))) (\lambda (c1: C).(\lambda (v1: T).(eq C (CHead c k t) (CHead c1 (Bind 
+b) v1)))))) (\lambda (H2: (ex3_2 T nat (\lambda (_: T).(\lambda (j: nat).(eq 
+nat (S i) (s k j)))) (\lambda (u2: T).(\lambda (_: nat).(eq C (CHead c2 (Bind 
+b) v2) (CHead c k u2)))) (\lambda (u2: T).(\lambda (j: nat).(subst0 j v t 
+u2))))).(ex3_2_ind T nat (\lambda (_: T).(\lambda (j: nat).(eq nat (S i) (s k 
+j)))) (\lambda (u2: T).(\lambda (_: nat).(eq C (CHead c2 (Bind b) v2) (CHead 
+c k u2)))) (\lambda (u2: T).(\lambda (j: nat).(subst0 j v t u2))) (or3 (ex2 T 
+(\lambda (v1: T).(subst0 i v v1 v2)) (\lambda (v1: T).(eq C (CHead c k t) 
+(CHead c2 (Bind b) v1)))) (ex2 C (\lambda (c1: C).(csubst0 i v c1 c2)) 
+(\lambda (c1: C).(eq C (CHead c k t) (CHead c1 (Bind b) v2)))) (ex3_2 C T 
 (\lambda (_: C).(\lambda (v1: T).(subst0 i v v1 v2))) (\lambda (c1: 
 C).(\lambda (_: T).(csubst0 i v c1 c2))) (\lambda (c1: C).(\lambda (v1: 
-T).(eq C x (CHead c1 (Bind b) v1))))))) (\lambda (y: C).(\lambda (H0: 
-(csubst0 (S i) v x y)).(insert_eq nat (S i) (\lambda (n: nat).(csubst0 n v x 
-y)) (\lambda (_: nat).((eq C y (CHead c2 (Bind b) v2)) \to (or3 (ex2 T 
-(\lambda (v1: T).(subst0 i v v1 v2)) (\lambda (v1: T).(eq C x (CHead c2 (Bind 
+T).(eq C (CHead c k t) (CHead c1 (Bind b) v1)))))) (\lambda (x0: T).(\lambda 
+(x1: nat).(\lambda (H3: (eq nat (S i) (s k x1))).(\lambda (H4: (eq C (CHead 
+c2 (Bind b) v2) (CHead c k x0))).(\lambda (H5: (subst0 x1 v t x0)).(let H6 
+\def (f_equal C C (\lambda (e: C).(match e with [(CSort _) \Rightarrow c2 | 
+(CHead c0 _ _) \Rightarrow c0])) (CHead c2 (Bind b) v2) (CHead c k x0) H4) in 
+((let H7 \def (f_equal C K (\lambda (e: C).(match e with [(CSort _) 
+\Rightarrow (Bind b) | (CHead _ k0 _) \Rightarrow k0])) (CHead c2 (Bind b) 
+v2) (CHead c k x0) H4) in ((let H8 \def (f_equal C T (\lambda (e: C).(match e 
+with [(CSort _) \Rightarrow v2 | (CHead _ _ t0) \Rightarrow t0])) (CHead c2 
+(Bind b) v2) (CHead c k x0) H4) in (\lambda (H9: (eq K (Bind b) k)).(\lambda 
+(H10: (eq C c2 c)).(let H11 \def (eq_ind_r T x0 (\lambda (t0: T).(subst0 x1 v 
+t t0)) H5 v2 H8) in (eq_ind_r C c (\lambda (c0: C).(or3 (ex2 T (\lambda (v1: 
+T).(subst0 i v v1 v2)) (\lambda (v1: T).(eq C (CHead c k t) (CHead c0 (Bind 
+b) v1)))) (ex2 C (\lambda (c1: C).(csubst0 i v c1 c0)) (\lambda (c1: C).(eq C 
+(CHead c k t) (CHead c1 (Bind b) v2)))) (ex3_2 C T (\lambda (_: C).(\lambda 
+(v1: T).(subst0 i v v1 v2))) (\lambda (c1: C).(\lambda (_: T).(csubst0 i v c1 
+c0))) (\lambda (c1: C).(\lambda (v1: T).(eq C (CHead c k t) (CHead c1 (Bind 
+b) v1))))))) (let H12 \def (eq_ind_r K k (\lambda (k0: K).(eq nat (S i) (s k0 
+x1))) H3 (Bind b) H9) in (eq_ind K (Bind b) (\lambda (k0: K).(or3 (ex2 T 
+(\lambda (v1: T).(subst0 i v v1 v2)) (\lambda (v1: T).(eq C (CHead c k0 t) 
+(CHead c (Bind b) v1)))) (ex2 C (\lambda (c1: C).(csubst0 i v c1 c)) (\lambda 
+(c1: C).(eq C (CHead c k0 t) (CHead c1 (Bind b) v2)))) (ex3_2 C T (\lambda 
+(_: C).(\lambda (v1: T).(subst0 i v v1 v2))) (\lambda (c1: C).(\lambda (_: 
+T).(csubst0 i v c1 c))) (\lambda (c1: C).(\lambda (v1: T).(eq C (CHead c k0 
+t) (CHead c1 (Bind b) v1))))))) (let H13 \def (f_equal nat nat (\lambda (e: 
+nat).(match e with [O \Rightarrow i | (S n) \Rightarrow n])) (S i) (S x1) 
+H12) in (let H14 \def (eq_ind_r nat x1 (\lambda (n: nat).(subst0 n v t v2)) 
+H11 i H13) in (or3_intro0 (ex2 T (\lambda (v1: T).(subst0 i v v1 v2)) 
+(\lambda (v1: T).(eq C (CHead c (Bind b) t) (CHead c (Bind b) v1)))) (ex2 C 
+(\lambda (c1: C).(csubst0 i v c1 c)) (\lambda (c1: C).(eq C (CHead c (Bind b) 
+t) (CHead c1 (Bind b) v2)))) (ex3_2 C T (\lambda (_: C).(\lambda (v1: 
+T).(subst0 i v v1 v2))) (\lambda (c1: C).(\lambda (_: T).(csubst0 i v c1 c))) 
+(\lambda (c1: C).(\lambda (v1: T).(eq C (CHead c (Bind b) t) (CHead c1 (Bind 
+b) v1))))) (ex_intro2 T (\lambda (v1: T).(subst0 i v v1 v2)) (\lambda (v1: 
+T).(eq C (CHead c (Bind b) t) (CHead c (Bind b) v1))) t H14 (refl_equal C 
+(CHead c (Bind b) t)))))) k H9)) c2 H10))))) H7)) H6))))))) H2)) (\lambda 
+(H2: (ex3_2 C nat (\lambda (_: C).(\lambda (j: nat).(eq nat (S i) (s k j)))) 
+(\lambda (c3: C).(\lambda (_: nat).(eq C (CHead c2 (Bind b) v2) (CHead c3 k 
+t)))) (\lambda (c3: C).(\lambda (j: nat).(csubst0 j v c c3))))).(ex3_2_ind C 
+nat (\lambda (_: C).(\lambda (j: nat).(eq nat (S i) (s k j)))) (\lambda (c3: 
+C).(\lambda (_: nat).(eq C (CHead c2 (Bind b) v2) (CHead c3 k t)))) (\lambda 
+(c3: C).(\lambda (j: nat).(csubst0 j v c c3))) (or3 (ex2 T (\lambda (v1: 
+T).(subst0 i v v1 v2)) (\lambda (v1: T).(eq C (CHead c k t) (CHead c2 (Bind 
 b) v1)))) (ex2 C (\lambda (c1: C).(csubst0 i v c1 c2)) (\lambda (c1: C).(eq C 
-x (CHead c1 (Bind b) v2)))) (ex3_2 C T (\lambda (_: C).(\lambda (v1: 
-T).(subst0 i v v1 v2))) (\lambda (c1: C).(\lambda (_: T).(csubst0 i v c1 
-c2))) (\lambda (c1: C).(\lambda (v1: T).(eq C x (CHead c1 (Bind b) v1)))))))) 
-(\lambda (y0: nat).(\lambda (H1: (csubst0 y0 v x y)).(csubst0_ind (\lambda 
-(n: nat).(\lambda (t: T).(\lambda (c: C).(\lambda (c0: C).((eq nat n (S i)) 
-\to ((eq C c0 (CHead c2 (Bind b) v2)) \to (or3 (ex2 T (\lambda (v1: 
-T).(subst0 i t v1 v2)) (\lambda (v1: T).(eq C c (CHead c2 (Bind b) v1)))) 
-(ex2 C (\lambda (c1: C).(csubst0 i t c1 c2)) (\lambda (c1: C).(eq C c (CHead 
-c1 (Bind b) v2)))) (ex3_2 C T (\lambda (_: C).(\lambda (v1: T).(subst0 i t v1 
-v2))) (\lambda (c1: C).(\lambda (_: T).(csubst0 i t c1 c2))) (\lambda (c1: 
-C).(\lambda (v1: T).(eq C c (CHead c1 (Bind b) v1)))))))))))) (\lambda (k: 
-K).(\lambda (i0: nat).(\lambda (v0: T).(\lambda (u1: T).(\lambda (u2: 
-T).(\lambda (H2: (subst0 i0 v0 u1 u2)).(\lambda (c: C).(\lambda (H3: (eq nat 
-(s k i0) (S i))).(\lambda (H4: (eq C (CHead c k u2) (CHead c2 (Bind b) 
-v2))).(let H5 \def (f_equal C C (\lambda (e: C).(match e in C return (\lambda 
-(_: C).C) with [(CSort _) \Rightarrow c | (CHead c0 _ _) \Rightarrow c0])) 
-(CHead c k u2) (CHead c2 (Bind b) v2) H4) in ((let H6 \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 c k u2) (CHead c2 
-(Bind b) v2) 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 c k u2) (CHead c2 (Bind b) v2) H4) in (\lambda (H8: 
-(eq K k (Bind b))).(\lambda (H9: (eq C c c2)).(eq_ind_r C c2 (\lambda (c0: 
-C).(or3 (ex2 T (\lambda (v1: T).(subst0 i v0 v1 v2)) (\lambda (v1: T).(eq C 
-(CHead c0 k u1) (CHead c2 (Bind b) v1)))) (ex2 C (\lambda (c1: C).(csubst0 i 
-v0 c1 c2)) (\lambda (c1: C).(eq C (CHead c0 k u1) (CHead c1 (Bind b) v2)))) 
-(ex3_2 C T (\lambda (_: C).(\lambda (v1: T).(subst0 i v0 v1 v2))) (\lambda 
-(c1: C).(\lambda (_: T).(csubst0 i v0 c1 c2))) (\lambda (c1: C).(\lambda (v1: 
-T).(eq C (CHead c0 k u1) (CHead c1 (Bind b) v1))))))) (let H10 \def (eq_ind T 
-u2 (\lambda (t: T).(subst0 i0 v0 u1 t)) H2 v2 H7) in (let H11 \def (eq_ind K 
-k (\lambda (k0: K).(eq nat (s k0 i0) (S i))) H3 (Bind b) H8) in (eq_ind_r K 
-(Bind b) (\lambda (k0: K).(or3 (ex2 T (\lambda (v1: T).(subst0 i v0 v1 v2)) 
-(\lambda (v1: T).(eq C (CHead c2 k0 u1) (CHead c2 (Bind b) v1)))) (ex2 C 
-(\lambda (c1: C).(csubst0 i v0 c1 c2)) (\lambda (c1: C).(eq C (CHead c2 k0 
-u1) (CHead c1 (Bind b) v2)))) (ex3_2 C T (\lambda (_: C).(\lambda (v1: 
-T).(subst0 i v0 v1 v2))) (\lambda (c1: C).(\lambda (_: T).(csubst0 i v0 c1 
-c2))) (\lambda (c1: C).(\lambda (v1: T).(eq C (CHead c2 k0 u1) (CHead c1 
-(Bind b) v1))))))) (let H12 \def (f_equal nat nat (\lambda (e: nat).(match e 
-in nat return (\lambda (_: nat).nat) with [O \Rightarrow i0 | (S n) 
-\Rightarrow n])) (S i0) (S i) H11) in (let H13 \def (eq_ind nat i0 (\lambda 
-(n: nat).(subst0 n v0 u1 v2)) H10 i H12) in (or3_intro0 (ex2 T (\lambda (v1: 
-T).(subst0 i v0 v1 v2)) (\lambda (v1: T).(eq C (CHead c2 (Bind b) u1) (CHead 
-c2 (Bind b) v1)))) (ex2 C (\lambda (c1: C).(csubst0 i v0 c1 c2)) (\lambda 
-(c1: C).(eq C (CHead c2 (Bind b) u1) (CHead c1 (Bind b) v2)))) (ex3_2 C T 
-(\lambda (_: C).(\lambda (v1: T).(subst0 i v0 v1 v2))) (\lambda (c1: 
-C).(\lambda (_: T).(csubst0 i v0 c1 c2))) (\lambda (c1: C).(\lambda (v1: 
-T).(eq C (CHead c2 (Bind b) u1) (CHead c1 (Bind b) v1))))) (ex_intro2 T 
-(\lambda (v1: T).(subst0 i v0 v1 v2)) (\lambda (v1: T).(eq C (CHead c2 (Bind 
-b) u1) (CHead c2 (Bind b) v1))) u1 H13 (refl_equal C (CHead c2 (Bind b) 
-u1)))))) k H8))) c H9)))) H6)) H5))))))))))) (\lambda (k: K).(\lambda (i0: 
-nat).(\lambda (c1: C).(\lambda (c0: C).(\lambda (v0: T).(\lambda (H2: 
-(csubst0 i0 v0 c1 c0)).(\lambda (H3: (((eq nat i0 (S i)) \to ((eq C c0 (CHead 
-c2 (Bind b) v2)) \to (or3 (ex2 T (\lambda (v1: T).(subst0 i v0 v1 v2)) 
-(\lambda (v1: T).(eq C c1 (CHead c2 (Bind b) v1)))) (ex2 C (\lambda (c3: 
-C).(csubst0 i v0 c3 c2)) (\lambda (c3: C).(eq C c1 (CHead c3 (Bind b) v2)))) 
-(ex3_2 C T (\lambda (_: C).(\lambda (v1: T).(subst0 i v0 v1 v2))) (\lambda 
-(c3: C).(\lambda (_: T).(csubst0 i v0 c3 c2))) (\lambda (c3: C).(\lambda (v1: 
-T).(eq C c1 (CHead c3 (Bind b) v1)))))))))).(\lambda (u: T).(\lambda (H4: (eq 
-nat (s k i0) (S i))).(\lambda (H5: (eq C (CHead c0 k u) (CHead c2 (Bind b) 
-v2))).(let H6 \def (f_equal C C (\lambda (e: C).(match e in C return (\lambda 
-(_: C).C) with [(CSort _) \Rightarrow c0 | (CHead c _ _) \Rightarrow c])) 
-(CHead c0 k u) (CHead c2 (Bind b) v2) H5) in ((let H7 \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 c0 k u) (CHead c2 
-(Bind b) v2) 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 _ _ t) 
-\Rightarrow t])) (CHead c0 k u) (CHead c2 (Bind b) v2) H5) in (\lambda (H9: 
-(eq K k (Bind b))).(\lambda (H10: (eq C c0 c2)).(eq_ind_r T v2 (\lambda (t: 
-T).(or3 (ex2 T (\lambda (v1: T).(subst0 i v0 v1 v2)) (\lambda (v1: T).(eq C 
-(CHead c1 k t) (CHead c2 (Bind b) v1)))) (ex2 C (\lambda (c3: C).(csubst0 i 
-v0 c3 c2)) (\lambda (c3: C).(eq C (CHead c1 k t) (CHead c3 (Bind b) v2)))) 
-(ex3_2 C T (\lambda (_: C).(\lambda (v1: T).(subst0 i v0 v1 v2))) (\lambda 
-(c3: C).(\lambda (_: T).(csubst0 i v0 c3 c2))) (\lambda (c3: C).(\lambda (v1: 
-T).(eq C (CHead c1 k t) (CHead c3 (Bind b) v1))))))) (let H11 \def (eq_ind C 
-c0 (\lambda (c: C).((eq nat i0 (S i)) \to ((eq C c (CHead c2 (Bind b) v2)) 
-\to (or3 (ex2 T (\lambda (v1: T).(subst0 i v0 v1 v2)) (\lambda (v1: T).(eq C 
-c1 (CHead c2 (Bind b) v1)))) (ex2 C (\lambda (c3: C).(csubst0 i v0 c3 c2)) 
-(\lambda (c3: C).(eq C c1 (CHead c3 (Bind b) v2)))) (ex3_2 C T (\lambda (_: 
-C).(\lambda (v1: T).(subst0 i v0 v1 v2))) (\lambda (c3: C).(\lambda (_: 
-T).(csubst0 i v0 c3 c2))) (\lambda (c3: C).(\lambda (v1: T).(eq C c1 (CHead 
-c3 (Bind b) v1))))))))) H3 c2 H10) in (let H12 \def (eq_ind C c0 (\lambda (c: 
-C).(csubst0 i0 v0 c1 c)) H2 c2 H10) in (let H13 \def (eq_ind K k (\lambda 
-(k0: K).(eq nat (s k0 i0) (S i))) H4 (Bind b) H9) in (eq_ind_r K (Bind b) 
-(\lambda (k0: K).(or3 (ex2 T (\lambda (v1: T).(subst0 i v0 v1 v2)) (\lambda 
-(v1: T).(eq C (CHead c1 k0 v2) (CHead c2 (Bind b) v1)))) (ex2 C (\lambda (c3: 
-C).(csubst0 i v0 c3 c2)) (\lambda (c3: C).(eq C (CHead c1 k0 v2) (CHead c3 
-(Bind b) v2)))) (ex3_2 C T (\lambda (_: C).(\lambda (v1: T).(subst0 i v0 v1 
-v2))) (\lambda (c3: C).(\lambda (_: T).(csubst0 i v0 c3 c2))) (\lambda (c3: 
-C).(\lambda (v1: T).(eq C (CHead c1 k0 v2) (CHead c3 (Bind b) v1))))))) (let 
-H14 \def (f_equal nat nat (\lambda (e: nat).(match e in nat return (\lambda 
-(_: nat).nat) with [O \Rightarrow i0 | (S n) \Rightarrow n])) (S i0) (S i) 
-H13) in (let H15 \def (eq_ind nat i0 (\lambda (n: nat).((eq nat n (S i)) \to 
-((eq C c2 (CHead c2 (Bind b) v2)) \to (or3 (ex2 T (\lambda (v1: T).(subst0 i 
-v0 v1 v2)) (\lambda (v1: T).(eq C c1 (CHead c2 (Bind b) v1)))) (ex2 C 
-(\lambda (c3: C).(csubst0 i v0 c3 c2)) (\lambda (c3: C).(eq C c1 (CHead c3 
-(Bind b) v2)))) (ex3_2 C T (\lambda (_: C).(\lambda (v1: T).(subst0 i v0 v1 
-v2))) (\lambda (c3: C).(\lambda (_: T).(csubst0 i v0 c3 c2))) (\lambda (c3: 
-C).(\lambda (v1: T).(eq C c1 (CHead c3 (Bind b) v1))))))))) H11 i H14) in 
-(let H16 \def (eq_ind nat i0 (\lambda (n: nat).(csubst0 n v0 c1 c2)) H12 i 
-H14) in (or3_intro1 (ex2 T (\lambda (v1: T).(subst0 i v0 v1 v2)) (\lambda 
-(v1: T).(eq C (CHead c1 (Bind b) v2) (CHead c2 (Bind b) v1)))) (ex2 C 
-(\lambda (c3: C).(csubst0 i v0 c3 c2)) (\lambda (c3: C).(eq C (CHead c1 (Bind 
-b) v2) (CHead c3 (Bind b) v2)))) (ex3_2 C T (\lambda (_: C).(\lambda (v1: 
-T).(subst0 i v0 v1 v2))) (\lambda (c3: C).(\lambda (_: T).(csubst0 i v0 c3 
-c2))) (\lambda (c3: C).(\lambda (v1: T).(eq C (CHead c1 (Bind b) v2) (CHead 
-c3 (Bind b) v1))))) (ex_intro2 C (\lambda (c3: C).(csubst0 i v0 c3 c2)) 
-(\lambda (c3: C).(eq C (CHead c1 (Bind b) v2) (CHead c3 (Bind b) v2))) c1 H16 
-(refl_equal C (CHead c1 (Bind b) v2))))))) k H9)))) u H8)))) H7)) 
-H6)))))))))))) (\lambda (k: K).(\lambda (i0: nat).(\lambda (v0: T).(\lambda 
-(u1: T).(\lambda (u2: T).(\lambda (H2: (subst0 i0 v0 u1 u2)).(\lambda (c1: 
-C).(\lambda (c0: C).(\lambda (H3: (csubst0 i0 v0 c1 c0)).(\lambda (H4: (((eq 
-nat i0 (S i)) \to ((eq C c0 (CHead c2 (Bind b) v2)) \to (or3 (ex2 T (\lambda 
-(v1: T).(subst0 i v0 v1 v2)) (\lambda (v1: T).(eq C c1 (CHead c2 (Bind b) 
-v1)))) (ex2 C (\lambda (c3: C).(csubst0 i v0 c3 c2)) (\lambda (c3: C).(eq C 
-c1 (CHead c3 (Bind b) v2)))) (ex3_2 C T (\lambda (_: C).(\lambda (v1: 
-T).(subst0 i v0 v1 v2))) (\lambda (c3: C).(\lambda (_: T).(csubst0 i v0 c3 
-c2))) (\lambda (c3: C).(\lambda (v1: T).(eq C c1 (CHead c3 (Bind b) 
-v1)))))))))).(\lambda (H5: (eq nat (s k i0) (S i))).(\lambda (H6: (eq C 
-(CHead c0 k u2) (CHead c2 (Bind b) v2))).(let H7 \def (f_equal C C (\lambda 
-(e: C).(match e in C return (\lambda (_: C).C) with [(CSort _) \Rightarrow c0 
-| (CHead c _ _) \Rightarrow c])) (CHead c0 k u2) (CHead c2 (Bind b) v2) H6) 
-in ((let H8 \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 c0 k u2) (CHead c2 (Bind b) v2) H6) in ((let H9 \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 c0 k u2) (CHead c2 
-(Bind b) v2) H6) in (\lambda (H10: (eq K k (Bind b))).(\lambda (H11: (eq C c0 
-c2)).(let H12 \def (eq_ind C c0 (\lambda (c: C).((eq nat i0 (S i)) \to ((eq C 
-c (CHead c2 (Bind b) v2)) \to (or3 (ex2 T (\lambda (v1: T).(subst0 i v0 v1 
-v2)) (\lambda (v1: T).(eq C c1 (CHead c2 (Bind b) v1)))) (ex2 C (\lambda (c3: 
-C).(csubst0 i v0 c3 c2)) (\lambda (c3: C).(eq C c1 (CHead c3 (Bind b) v2)))) 
-(ex3_2 C T (\lambda (_: C).(\lambda (v1: T).(subst0 i v0 v1 v2))) (\lambda 
-(c3: C).(\lambda (_: T).(csubst0 i v0 c3 c2))) (\lambda (c3: C).(\lambda (v1: 
-T).(eq C c1 (CHead c3 (Bind b) v1))))))))) H4 c2 H11) in (let H13 \def 
-(eq_ind C c0 (\lambda (c: C).(csubst0 i0 v0 c1 c)) H3 c2 H11) in (let H14 
-\def (eq_ind T u2 (\lambda (t: T).(subst0 i0 v0 u1 t)) H2 v2 H9) in (let H15 
-\def (eq_ind K k (\lambda (k0: K).(eq nat (s k0 i0) (S i))) H5 (Bind b) H10) 
-in (eq_ind_r K (Bind b) (\lambda (k0: K).(or3 (ex2 T (\lambda (v1: T).(subst0 
-i v0 v1 v2)) (\lambda (v1: T).(eq C (CHead c1 k0 u1) (CHead c2 (Bind b) 
-v1)))) (ex2 C (\lambda (c3: C).(csubst0 i v0 c3 c2)) (\lambda (c3: C).(eq C 
-(CHead c1 k0 u1) (CHead c3 (Bind b) v2)))) (ex3_2 C T (\lambda (_: 
-C).(\lambda (v1: T).(subst0 i v0 v1 v2))) (\lambda (c3: C).(\lambda (_: 
-T).(csubst0 i v0 c3 c2))) (\lambda (c3: C).(\lambda (v1: T).(eq C (CHead c1 
-k0 u1) (CHead c3 (Bind b) v1))))))) (let H16 \def (f_equal nat nat (\lambda 
-(e: nat).(match e in nat return (\lambda (_: nat).nat) with [O \Rightarrow i0 
-| (S n) \Rightarrow n])) (S i0) (S i) H15) in (let H17 \def (eq_ind nat i0 
-(\lambda (n: nat).((eq nat n (S i)) \to ((eq C c2 (CHead c2 (Bind b) v2)) \to 
-(or3 (ex2 T (\lambda (v1: T).(subst0 i v0 v1 v2)) (\lambda (v1: T).(eq C c1 
-(CHead c2 (Bind b) v1)))) (ex2 C (\lambda (c3: C).(csubst0 i v0 c3 c2)) 
-(\lambda (c3: C).(eq C c1 (CHead c3 (Bind b) v2)))) (ex3_2 C T (\lambda (_: 
-C).(\lambda (v1: T).(subst0 i v0 v1 v2))) (\lambda (c3: C).(\lambda (_: 
-T).(csubst0 i v0 c3 c2))) (\lambda (c3: C).(\lambda (v1: T).(eq C c1 (CHead 
-c3 (Bind b) v1))))))))) H12 i H16) in (let H18 \def (eq_ind nat i0 (\lambda 
-(n: nat).(csubst0 n v0 c1 c2)) H13 i H16) in (let H19 \def (eq_ind nat i0 
-(\lambda (n: nat).(subst0 n v0 u1 v2)) H14 i H16) in (or3_intro2 (ex2 T 
-(\lambda (v1: T).(subst0 i v0 v1 v2)) (\lambda (v1: T).(eq C (CHead c1 (Bind 
-b) u1) (CHead c2 (Bind b) v1)))) (ex2 C (\lambda (c3: C).(csubst0 i v0 c3 
-c2)) (\lambda (c3: C).(eq C (CHead c1 (Bind b) u1) (CHead c3 (Bind b) v2)))) 
-(ex3_2 C T (\lambda (_: C).(\lambda (v1: T).(subst0 i v0 v1 v2))) (\lambda 
-(c3: C).(\lambda (_: T).(csubst0 i v0 c3 c2))) (\lambda (c3: C).(\lambda (v1: 
-T).(eq C (CHead c1 (Bind b) u1) (CHead c3 (Bind b) v1))))) (ex3_2_intro C T 
-(\lambda (_: C).(\lambda (v1: T).(subst0 i v0 v1 v2))) (\lambda (c3: 
-C).(\lambda (_: T).(csubst0 i v0 c3 c2))) (\lambda (c3: C).(\lambda (v1: 
-T).(eq C (CHead c1 (Bind b) u1) (CHead c3 (Bind b) v1)))) c1 u1 H19 H18 
-(refl_equal C (CHead c1 (Bind b) u1)))))))) k H10)))))))) H8)) 
-H7)))))))))))))) y0 v x y H1))) H0))) H))))))).
-(* COMMENTS
-Initial nodes: 3878
-END *)
+(CHead c k t) (CHead c1 (Bind b) v2)))) (ex3_2 C T (\lambda (_: C).(\lambda 
+(v1: T).(subst0 i v v1 v2))) (\lambda (c1: C).(\lambda (_: T).(csubst0 i v c1 
+c2))) (\lambda (c1: C).(\lambda (v1: T).(eq C (CHead c k t) (CHead c1 (Bind 
+b) v1)))))) (\lambda (x0: C).(\lambda (x1: nat).(\lambda (H3: (eq nat (S i) 
+(s k x1))).(\lambda (H4: (eq C (CHead c2 (Bind b) v2) (CHead x0 k 
+t))).(\lambda (H5: (csubst0 x1 v c x0)).(let H6 \def (f_equal C C (\lambda 
+(e: C).(match e with [(CSort _) \Rightarrow c2 | (CHead c0 _ _) \Rightarrow 
+c0])) (CHead c2 (Bind b) v2) (CHead x0 k t) H4) in ((let H7 \def (f_equal C K 
+(\lambda (e: C).(match e with [(CSort _) \Rightarrow (Bind b) | (CHead _ k0 
+_) \Rightarrow k0])) (CHead c2 (Bind b) v2) (CHead x0 k t) H4) in ((let H8 
+\def (f_equal C T (\lambda (e: C).(match e with [(CSort _) \Rightarrow v2 | 
+(CHead _ _ t0) \Rightarrow t0])) (CHead c2 (Bind b) v2) (CHead x0 k t) H4) in 
+(\lambda (H9: (eq K (Bind b) k)).(\lambda (H10: (eq C c2 x0)).(let H11 \def 
+(eq_ind_r C x0 (\lambda (c0: C).(csubst0 x1 v c c0)) H5 c2 H10) in (eq_ind_r 
+T t (\lambda (t0: T).(or3 (ex2 T (\lambda (v1: T).(subst0 i v v1 t0)) 
+(\lambda (v1: T).(eq C (CHead c k t) (CHead c2 (Bind b) v1)))) (ex2 C 
+(\lambda (c1: C).(csubst0 i v c1 c2)) (\lambda (c1: C).(eq C (CHead c k t) 
+(CHead c1 (Bind b) t0)))) (ex3_2 C T (\lambda (_: C).(\lambda (v1: T).(subst0 
+i v v1 t0))) (\lambda (c1: C).(\lambda (_: T).(csubst0 i v c1 c2))) (\lambda 
+(c1: C).(\lambda (v1: T).(eq C (CHead c k t) (CHead c1 (Bind b) v1))))))) 
+(let H12 \def (eq_ind_r K k (\lambda (k0: K).(eq nat (S i) (s k0 x1))) H3 
+(Bind b) H9) in (eq_ind K (Bind b) (\lambda (k0: K).(or3 (ex2 T (\lambda (v1: 
+T).(subst0 i v v1 t)) (\lambda (v1: T).(eq C (CHead c k0 t) (CHead c2 (Bind 
+b) v1)))) (ex2 C (\lambda (c1: C).(csubst0 i v c1 c2)) (\lambda (c1: C).(eq C 
+(CHead c k0 t) (CHead c1 (Bind b) t)))) (ex3_2 C T (\lambda (_: C).(\lambda 
+(v1: T).(subst0 i v v1 t))) (\lambda (c1: C).(\lambda (_: T).(csubst0 i v c1 
+c2))) (\lambda (c1: C).(\lambda (v1: T).(eq C (CHead c k0 t) (CHead c1 (Bind 
+b) v1))))))) (let H13 \def (f_equal nat nat (\lambda (e: nat).(match e with 
+[O \Rightarrow i | (S n) \Rightarrow n])) (S i) (S x1) H12) in (let H14 \def 
+(eq_ind_r nat x1 (\lambda (n: nat).(csubst0 n v c c2)) H11 i H13) in 
+(or3_intro1 (ex2 T (\lambda (v1: T).(subst0 i v v1 t)) (\lambda (v1: T).(eq C 
+(CHead c (Bind b) t) (CHead c2 (Bind b) v1)))) (ex2 C (\lambda (c1: 
+C).(csubst0 i v c1 c2)) (\lambda (c1: C).(eq C (CHead c (Bind b) t) (CHead c1 
+(Bind b) t)))) (ex3_2 C T (\lambda (_: C).(\lambda (v1: T).(subst0 i v v1 
+t))) (\lambda (c1: C).(\lambda (_: T).(csubst0 i v c1 c2))) (\lambda (c1: 
+C).(\lambda (v1: T).(eq C (CHead c (Bind b) t) (CHead c1 (Bind b) v1))))) 
+(ex_intro2 C (\lambda (c1: C).(csubst0 i v c1 c2)) (\lambda (c1: C).(eq C 
+(CHead c (Bind b) t) (CHead c1 (Bind b) t))) c H14 (refl_equal C (CHead c 
+(Bind b) t)))))) k H9)) v2 H8))))) H7)) H6))))))) H2)) (\lambda (H2: (ex4_3 T 
+C nat (\lambda (_: T).(\lambda (_: C).(\lambda (j: nat).(eq nat (S i) (s k 
+j))))) (\lambda (u2: T).(\lambda (c3: C).(\lambda (_: nat).(eq C (CHead c2 
+(Bind b) v2) (CHead c3 k u2))))) (\lambda (u2: T).(\lambda (_: C).(\lambda 
+(j: nat).(subst0 j v t u2)))) (\lambda (_: T).(\lambda (c3: C).(\lambda (j: 
+nat).(csubst0 j v c c3)))))).(ex4_3_ind T C nat (\lambda (_: T).(\lambda (_: 
+C).(\lambda (j: nat).(eq nat (S i) (s k j))))) (\lambda (u2: T).(\lambda (c3: 
+C).(\lambda (_: nat).(eq C (CHead c2 (Bind b) v2) (CHead c3 k u2))))) 
+(\lambda (u2: T).(\lambda (_: C).(\lambda (j: nat).(subst0 j v t u2)))) 
+(\lambda (_: T).(\lambda (c3: C).(\lambda (j: nat).(csubst0 j v c c3)))) (or3 
+(ex2 T (\lambda (v1: T).(subst0 i v v1 v2)) (\lambda (v1: T).(eq C (CHead c k 
+t) (CHead c2 (Bind b) v1)))) (ex2 C (\lambda (c1: C).(csubst0 i v c1 c2)) 
+(\lambda (c1: C).(eq C (CHead c k t) (CHead c1 (Bind b) v2)))) (ex3_2 C T 
+(\lambda (_: C).(\lambda (v1: T).(subst0 i v v1 v2))) (\lambda (c1: 
+C).(\lambda (_: T).(csubst0 i v c1 c2))) (\lambda (c1: C).(\lambda (v1: 
+T).(eq C (CHead c k t) (CHead c1 (Bind b) v1)))))) (\lambda (x0: T).(\lambda 
+(x1: C).(\lambda (x2: nat).(\lambda (H3: (eq nat (S i) (s k x2))).(\lambda 
+(H4: (eq C (CHead c2 (Bind b) v2) (CHead x1 k x0))).(\lambda (H5: (subst0 x2 
+v t x0)).(\lambda (H6: (csubst0 x2 v c x1)).(let H7 \def (f_equal C C 
+(\lambda (e: C).(match e with [(CSort _) \Rightarrow c2 | (CHead c0 _ _) 
+\Rightarrow c0])) (CHead c2 (Bind b) v2) (CHead x1 k x0) H4) in ((let H8 \def 
+(f_equal C K (\lambda (e: C).(match e with [(CSort _) \Rightarrow (Bind b) | 
+(CHead _ k0 _) \Rightarrow k0])) (CHead c2 (Bind b) v2) (CHead x1 k x0) H4) 
+in ((let H9 \def (f_equal C T (\lambda (e: C).(match e with [(CSort _) 
+\Rightarrow v2 | (CHead _ _ t0) \Rightarrow t0])) (CHead c2 (Bind b) v2) 
+(CHead x1 k x0) H4) in (\lambda (H10: (eq K (Bind b) k)).(\lambda (H11: (eq C 
+c2 x1)).(let H12 \def (eq_ind_r C x1 (\lambda (c0: C).(csubst0 x2 v c c0)) H6 
+c2 H11) in (let H13 \def (eq_ind_r T x0 (\lambda (t0: T).(subst0 x2 v t t0)) 
+H5 v2 H9) in (let H14 \def (eq_ind_r K k (\lambda (k0: K).(eq nat (S i) (s k0 
+x2))) H3 (Bind b) H10) in (eq_ind K (Bind b) (\lambda (k0: K).(or3 (ex2 T 
+(\lambda (v1: T).(subst0 i v v1 v2)) (\lambda (v1: T).(eq C (CHead c k0 t) 
+(CHead c2 (Bind b) v1)))) (ex2 C (\lambda (c1: C).(csubst0 i v c1 c2)) 
+(\lambda (c1: C).(eq C (CHead c k0 t) (CHead c1 (Bind b) v2)))) (ex3_2 C T 
+(\lambda (_: C).(\lambda (v1: T).(subst0 i v v1 v2))) (\lambda (c1: 
+C).(\lambda (_: T).(csubst0 i v c1 c2))) (\lambda (c1: C).(\lambda (v1: 
+T).(eq C (CHead c k0 t) (CHead c1 (Bind b) v1))))))) (let H15 \def (f_equal 
+nat nat (\lambda (e: nat).(match e with [O \Rightarrow i | (S n) \Rightarrow 
+n])) (S i) (S x2) H14) in (let H16 \def (eq_ind_r nat x2 (\lambda (n: 
+nat).(csubst0 n v c c2)) H12 i H15) in (let H17 \def (eq_ind_r nat x2 
+(\lambda (n: nat).(subst0 n v t v2)) H13 i H15) in (or3_intro2 (ex2 T 
+(\lambda (v1: T).(subst0 i v v1 v2)) (\lambda (v1: T).(eq C (CHead c (Bind b) 
+t) (CHead c2 (Bind b) v1)))) (ex2 C (\lambda (c1: C).(csubst0 i v c1 c2)) 
+(\lambda (c1: C).(eq C (CHead c (Bind b) t) (CHead c1 (Bind b) v2)))) (ex3_2 
+C T (\lambda (_: C).(\lambda (v1: T).(subst0 i v v1 v2))) (\lambda (c1: 
+C).(\lambda (_: T).(csubst0 i v c1 c2))) (\lambda (c1: C).(\lambda (v1: 
+T).(eq C (CHead c (Bind b) t) (CHead c1 (Bind b) v1))))) (ex3_2_intro C T 
+(\lambda (_: C).(\lambda (v1: T).(subst0 i v v1 v2))) (\lambda (c1: 
+C).(\lambda (_: T).(csubst0 i v c1 c2))) (\lambda (c1: C).(\lambda (v1: 
+T).(eq C (CHead c (Bind b) t) (CHead c1 (Bind b) v1)))) c t H17 H16 
+(refl_equal C (CHead c (Bind b) t))))))) k H10))))))) H8)) H7))))))))) H2)) 
+H1))))))))))) x)).
 
index 2701af000a6206130b74af388781ae98e25ea445..8fb0fcb2c5c7858b08dac20a59b8c18115327732 100644 (file)
 
 (* This file was automatically generated: do not edit *********************)
 
-include "Basic-1/csubst0/clear.ma".
+include "basic_1/csubst0/clear.ma".
 
-include "Basic-1/csubst0/drop.ma".
+include "basic_1/csubst0/drop.ma".
 
-include "Basic-1/getl/fwd.ma".
+include "basic_1/getl/fwd.ma".
 
 theorem csubst0_getl_ge:
  \forall (i: nat).(\forall (n: nat).((le i n) \to (\forall (c1: C).(\forall 
@@ -102,9 +102,6 @@ H4 (CHead x1 (Flat x0) x3) H10) in (getl_intro i c2 e (CHead x2 (Flat x0) x4)
 H11 (clear_flat x2 e (csubst0_clear_O x1 x2 v H13 e (clear_gen_flat x0 x1 e 
 x3 H14)) x0 x4)))))))))))) H9)) H8)) n H5)))) (\lambda (H5: (lt n 
 i)).(le_lt_false i n H H5 (getl n c2 e))))))) H2)))))))))).
-(* COMMENTS
-Initial nodes: 1525
-END *)
 
 theorem csubst0_getl_lt:
  \forall (i: nat).(\forall (n: nat).((lt n i) \to (\forall (c1: C).(\forall 
@@ -1020,9 +1017,6 @@ v e1 e2)))))) x5 x6 x7 x8 x9 (refl_equal C (CHead x6 (Bind x5) x8))
 (getl_intro n c2 (CHead x7 (Bind x5) x9) (CHead x2 (Flat f) x4) H12 
 (clear_flat x2 (CHead x7 (Bind x5) x9) H20 f x4)) H21 H22)) e H19)))))))))) 
 H18)) H17)))))))) x0 H8 H9 H10 H11))))))))))) H6)) H5))))) H2)))))))))).
-(* COMMENTS
-Initial nodes: 17179
-END *)
 
 theorem csubst0_getl_ge_back:
  \forall (i: nat).(\forall (n: nat).((le i n) \to (\forall (c1: C).(\forall 
@@ -1106,9 +1100,6 @@ H4 (CHead x2 (Flat x0) x4) H10) in (getl_intro i c1 e (CHead x1 (Flat x0) x3)
 H11 (clear_flat x1 e (csubst0_clear_O_back x1 x2 v H13 e (clear_gen_flat x0 
 x2 e x4 H14)) x0 x3)))))))))))) H9)) H8)) n H5)))) (\lambda (H5: (lt n 
 i)).(le_lt_false i n H H5 (getl n c1 e))))))) H2)))))))))).
-(* COMMENTS
-Initial nodes: 1525
-END *)
 
 theorem csubst0_getl_lt_back:
  \forall (n: nat).(\forall (i: nat).((lt n i) \to (\forall (c1: C).(\forall 
@@ -1151,7 +1142,4 @@ n c1 e2) (ex2 C (\lambda (e1: C).(csubst0 (minus i n) v e1 e2)) (\lambda (e1:
 C).(getl n c1 e1))) (ex_intro2 C (\lambda (e1: C).(csubst0 (minus i n) v e1 
 e2)) (\lambda (e1: C).(getl n c1 e1)) x1 H11 (getl_intro n c1 x1 x0 H8 
 H12)))))) H10)) H9)))))) H6)) H5)))))) H2)))))))))).
-(* COMMENTS
-Initial nodes: 801
-END *)
 
index 28b75ec37270c7b2869e9b110745284126404cad..40f7fd4a78693fef08a33d162b302721079c98b8 100644 (file)
@@ -14,7 +14,7 @@
 
 (* This file was automatically generated: do not edit *********************)
 
-include "Basic-1/csubst0/defs.ma".
+include "basic_1/csubst0/defs.ma".
 
 theorem csubst0_snd_bind:
  \forall (b: B).(\forall (i: nat).(\forall (v: T).(\forall (u1: T).(\forall 
@@ -22,13 +22,14 @@ theorem csubst0_snd_bind:
 (Bind b) u1) (CHead c (Bind b) u2))))))))
 \def
  \lambda (b: B).(\lambda (i: nat).(\lambda (v: T).(\lambda (u1: T).(\lambda 
-(u2: T).(\lambda (H: (subst0 i v u1 u2)).(\lambda (c: C).(eq_ind nat (s (Bind 
-b) i) (\lambda (n: nat).(csubst0 n v (CHead c (Bind b) u1) (CHead c (Bind b) 
-u2))) (csubst0_snd (Bind b) i v u1 u2 H c) (S i) (refl_equal nat (S 
-i))))))))).
-(* COMMENTS
-Initial nodes: 91
-END *)
+(u2: T).(\lambda (H: (subst0 i v u1 u2)).(\lambda (c: C).(let TMP_1 \def 
+(Bind b) in (let TMP_2 \def (s TMP_1 i) in (let TMP_7 \def (\lambda (n: 
+nat).(let TMP_3 \def (Bind b) in (let TMP_4 \def (CHead c TMP_3 u1) in (let 
+TMP_5 \def (Bind b) in (let TMP_6 \def (CHead c TMP_5 u2) in (csubst0 n v 
+TMP_4 TMP_6)))))) in (let TMP_8 \def (Bind b) in (let TMP_9 \def (csubst0_snd 
+TMP_8 i v u1 u2 H c) in (let TMP_10 \def (S i) in (let TMP_11 \def (S i) in 
+(let TMP_12 \def (refl_equal nat TMP_11) in (eq_ind nat TMP_2 TMP_7 TMP_9 
+TMP_10 TMP_12))))))))))))))).
 
 theorem csubst0_fst_bind:
  \forall (b: B).(\forall (i: nat).(\forall (c1: C).(\forall (c2: C).(\forall 
@@ -36,12 +37,14 @@ theorem csubst0_fst_bind:
 (Bind b) u) (CHead c2 (Bind b) u))))))))
 \def
  \lambda (b: B).(\lambda (i: nat).(\lambda (c1: C).(\lambda (c2: C).(\lambda 
-(v: T).(\lambda (H: (csubst0 i v c1 c2)).(\lambda (u: T).(eq_ind nat (s (Bind 
-b) i) (\lambda (n: nat).(csubst0 n v (CHead c1 (Bind b) u) (CHead c2 (Bind b) 
-u))) (csubst0_fst (Bind b) i c1 c2 v H u) (S i) (refl_equal nat (S i))))))))).
-(* COMMENTS
-Initial nodes: 91
-END *)
+(v: T).(\lambda (H: (csubst0 i v c1 c2)).(\lambda (u: T).(let TMP_1 \def 
+(Bind b) in (let TMP_2 \def (s TMP_1 i) in (let TMP_7 \def (\lambda (n: 
+nat).(let TMP_3 \def (Bind b) in (let TMP_4 \def (CHead c1 TMP_3 u) in (let 
+TMP_5 \def (Bind b) in (let TMP_6 \def (CHead c2 TMP_5 u) in (csubst0 n v 
+TMP_4 TMP_6)))))) in (let TMP_8 \def (Bind b) in (let TMP_9 \def (csubst0_fst 
+TMP_8 i c1 c2 v H u) in (let TMP_10 \def (S i) in (let TMP_11 \def (S i) in 
+(let TMP_12 \def (refl_equal nat TMP_11) in (eq_ind nat TMP_2 TMP_7 TMP_9 
+TMP_10 TMP_12))))))))))))))).
 
 theorem csubst0_both_bind:
  \forall (b: B).(\forall (i: nat).(\forall (v: T).(\forall (u1: T).(\forall 
@@ -51,11 +54,12 @@ u2))))))))))
 \def
  \lambda (b: B).(\lambda (i: nat).(\lambda (v: T).(\lambda (u1: T).(\lambda 
 (u2: T).(\lambda (H: (subst0 i v u1 u2)).(\lambda (c1: C).(\lambda (c2: 
-C).(\lambda (H0: (csubst0 i v c1 c2)).(eq_ind nat (s (Bind b) i) (\lambda (n: 
-nat).(csubst0 n v (CHead c1 (Bind b) u1) (CHead c2 (Bind b) u2))) 
-(csubst0_both (Bind b) i v u1 u2 H c1 c2 H0) (S i) (refl_equal nat (S 
-i))))))))))).
-(* COMMENTS
-Initial nodes: 107
-END *)
+C).(\lambda (H0: (csubst0 i v c1 c2)).(let TMP_1 \def (Bind b) in (let TMP_2 
+\def (s TMP_1 i) in (let TMP_7 \def (\lambda (n: nat).(let TMP_3 \def (Bind 
+b) in (let TMP_4 \def (CHead c1 TMP_3 u1) in (let TMP_5 \def (Bind b) in (let 
+TMP_6 \def (CHead c2 TMP_5 u2) in (csubst0 n v TMP_4 TMP_6)))))) in (let 
+TMP_8 \def (Bind b) in (let TMP_9 \def (csubst0_both TMP_8 i v u1 u2 H c1 c2 
+H0) in (let TMP_10 \def (S i) in (let TMP_11 \def (S i) in (let TMP_12 \def 
+(refl_equal nat TMP_11) in (eq_ind nat TMP_2 TMP_7 TMP_9 TMP_10 
+TMP_12))))))))))))))))).
 
index d6ba0a942fc4474598083b54f26d29bad651c35d..dcfa78456c129f3306b056d61b6be12039cf5cfc 100644 (file)
@@ -14,7 +14,7 @@
 
 (* This file was automatically generated: do not edit *********************)
 
-include "Basic-1/csubst0/defs.ma".
+include "basic_1/csubst0/defs.ma".
 
 inductive csubst1 (i: nat) (v: T) (c1: C): C \to Prop \def
 | csubst1_refl: csubst1 i v c1 c1
index fe71a56fd1bcfeab934bf4d2b71240a4ae840119..283b4832555c4dc70e6a25453bc596078818d9b8 100644 (file)
 
 (* This file was automatically generated: do not edit *********************)
 
-include "Basic-1/csubst1/defs.ma".
+include "basic_1/csubst1/defs.ma".
 
-include "Basic-1/csubst0/fwd.ma".
+include "basic_1/csubst0/fwd.ma".
 
-include "Basic-1/subst1/props.ma".
+include "basic_1/subst1/defs.ma".
+
+include "basic_1/s/fwd.ma".
+
+theorem csubst1_ind:
+ \forall (i: nat).(\forall (v: T).(\forall (c1: C).(\forall (P: ((C \to 
+Prop))).((P c1) \to (((\forall (c2: C).((csubst0 i v c1 c2) \to (P c2)))) \to 
+(\forall (c: C).((csubst1 i v c1 c) \to (P c))))))))
+\def
+ \lambda (i: nat).(\lambda (v: T).(\lambda (c1: C).(\lambda (P: ((C \to 
+Prop))).(\lambda (f: (P c1)).(\lambda (f0: ((\forall (c2: C).((csubst0 i v c1 
+c2) \to (P c2))))).(\lambda (c: C).(\lambda (c0: (csubst1 i v c1 c)).(match 
+c0 with [csubst1_refl \Rightarrow f | (csubst1_sing x x0) \Rightarrow (f0 x 
+x0)])))))))).
 
 theorem csubst1_gen_head:
  \forall (k: K).(\forall (c1: C).(\forall (x: C).(\forall (u1: T).(\forall 
@@ -29,89 +42,139 @@ C).(csubst1 i v c1 c2))))))))))
 \def
  \lambda (k: K).(\lambda (c1: C).(\lambda (x: C).(\lambda (u1: T).(\lambda 
 (v: T).(\lambda (i: nat).(\lambda (H: (csubst1 (s k i) v (CHead c1 k u1) 
-x)).(csubst1_ind (s k i) v (CHead c1 k u1) (\lambda (c: C).(ex3_2 T C 
-(\lambda (u2: T).(\lambda (c2: C).(eq C c (CHead c2 k u2)))) (\lambda (u2: 
-T).(\lambda (_: C).(subst1 i v u1 u2))) (\lambda (_: T).(\lambda (c2: 
-C).(csubst1 i v c1 c2))))) (ex3_2_intro T C (\lambda (u2: T).(\lambda (c2: 
-C).(eq C (CHead c1 k u1) (CHead c2 k u2)))) (\lambda (u2: T).(\lambda (_: 
-C).(subst1 i v u1 u2))) (\lambda (_: T).(\lambda (c2: C).(csubst1 i v c1 
-c2))) u1 c1 (refl_equal C (CHead c1 k u1)) (subst1_refl i v u1) (csubst1_refl 
-i v c1)) (\lambda (c2: C).(\lambda (H0: (csubst0 (s k i) v (CHead c1 k u1) 
-c2)).(or3_ind (ex3_2 T nat (\lambda (_: T).(\lambda (j: nat).(eq nat (s k i) 
-(s k j)))) (\lambda (u2: T).(\lambda (_: nat).(eq C c2 (CHead c1 k u2)))) 
-(\lambda (u2: T).(\lambda (j: nat).(subst0 j v u1 u2)))) (ex3_2 C nat 
-(\lambda (_: C).(\lambda (j: nat).(eq nat (s k i) (s k j)))) (\lambda (c3: 
-C).(\lambda (_: nat).(eq C c2 (CHead c3 k u1)))) (\lambda (c3: C).(\lambda 
-(j: nat).(csubst0 j v c1 c3)))) (ex4_3 T C nat (\lambda (_: T).(\lambda (_: 
-C).(\lambda (j: nat).(eq nat (s k i) (s k j))))) (\lambda (u2: T).(\lambda 
-(c3: C).(\lambda (_: nat).(eq C c2 (CHead c3 k u2))))) (\lambda (u2: 
-T).(\lambda (_: C).(\lambda (j: nat).(subst0 j v u1 u2)))) (\lambda (_: 
-T).(\lambda (c3: C).(\lambda (j: nat).(csubst0 j v c1 c3))))) (ex3_2 T C 
-(\lambda (u2: T).(\lambda (c3: C).(eq C c2 (CHead c3 k u2)))) (\lambda (u2: 
-T).(\lambda (_: C).(subst1 i v u1 u2))) (\lambda (_: T).(\lambda (c3: 
-C).(csubst1 i v c1 c3)))) (\lambda (H1: (ex3_2 T nat (\lambda (_: T).(\lambda 
-(j: nat).(eq nat (s k i) (s k j)))) (\lambda (u2: T).(\lambda (_: nat).(eq C 
-c2 (CHead c1 k u2)))) (\lambda (u2: T).(\lambda (j: nat).(subst0 j v u1 
-u2))))).(ex3_2_ind T nat (\lambda (_: T).(\lambda (j: nat).(eq nat (s k i) (s 
-k j)))) (\lambda (u2: T).(\lambda (_: nat).(eq C c2 (CHead c1 k u2)))) 
-(\lambda (u2: T).(\lambda (j: nat).(subst0 j v u1 u2))) (ex3_2 T C (\lambda 
-(u2: T).(\lambda (c3: C).(eq C c2 (CHead c3 k u2)))) (\lambda (u2: 
-T).(\lambda (_: C).(subst1 i v u1 u2))) (\lambda (_: T).(\lambda (c3: 
-C).(csubst1 i v c1 c3)))) (\lambda (x0: T).(\lambda (x1: nat).(\lambda (H2: 
-(eq nat (s k i) (s k x1))).(\lambda (H3: (eq C c2 (CHead c1 k x0))).(\lambda 
-(H4: (subst0 x1 v u1 x0)).(eq_ind_r C (CHead c1 k x0) (\lambda (c: C).(ex3_2 
-T C (\lambda (u2: T).(\lambda (c3: C).(eq C c (CHead c3 k u2)))) (\lambda 
-(u2: T).(\lambda (_: C).(subst1 i v u1 u2))) (\lambda (_: T).(\lambda (c3: 
-C).(csubst1 i v c1 c3))))) (let H5 \def (eq_ind_r nat x1 (\lambda (n: 
-nat).(subst0 n v u1 x0)) H4 i (s_inj k i x1 H2)) in (ex3_2_intro T C (\lambda 
-(u2: T).(\lambda (c3: C).(eq C (CHead c1 k x0) (CHead c3 k u2)))) (\lambda 
-(u2: T).(\lambda (_: C).(subst1 i v u1 u2))) (\lambda (_: T).(\lambda (c3: 
-C).(csubst1 i v c1 c3))) x0 c1 (refl_equal C (CHead c1 k x0)) (subst1_single 
-i v u1 x0 H5) (csubst1_refl i v c1))) c2 H3)))))) H1)) (\lambda (H1: (ex3_2 C 
-nat (\lambda (_: C).(\lambda (j: nat).(eq nat (s k i) (s k j)))) (\lambda 
-(c3: C).(\lambda (_: nat).(eq C c2 (CHead c3 k u1)))) (\lambda (c3: 
-C).(\lambda (j: nat).(csubst0 j v c1 c3))))).(ex3_2_ind C nat (\lambda (_: 
-C).(\lambda (j: nat).(eq nat (s k i) (s k j)))) (\lambda (c3: C).(\lambda (_: 
-nat).(eq C c2 (CHead c3 k u1)))) (\lambda (c3: C).(\lambda (j: nat).(csubst0 
-j v c1 c3))) (ex3_2 T C (\lambda (u2: T).(\lambda (c3: C).(eq C c2 (CHead c3 
-k u2)))) (\lambda (u2: T).(\lambda (_: C).(subst1 i v u1 u2))) (\lambda (_: 
-T).(\lambda (c3: C).(csubst1 i v c1 c3)))) (\lambda (x0: C).(\lambda (x1: 
-nat).(\lambda (H2: (eq nat (s k i) (s k x1))).(\lambda (H3: (eq C c2 (CHead 
-x0 k u1))).(\lambda (H4: (csubst0 x1 v c1 x0)).(eq_ind_r C (CHead x0 k u1) 
-(\lambda (c: C).(ex3_2 T C (\lambda (u2: T).(\lambda (c3: C).(eq C c (CHead 
-c3 k u2)))) (\lambda (u2: T).(\lambda (_: C).(subst1 i v u1 u2))) (\lambda 
-(_: T).(\lambda (c3: C).(csubst1 i v c1 c3))))) (let H5 \def (eq_ind_r nat x1 
-(\lambda (n: nat).(csubst0 n v c1 x0)) H4 i (s_inj k i x1 H2)) in 
-(ex3_2_intro T C (\lambda (u2: T).(\lambda (c3: C).(eq C (CHead x0 k u1) 
-(CHead c3 k u2)))) (\lambda (u2: T).(\lambda (_: C).(subst1 i v u1 u2))) 
-(\lambda (_: T).(\lambda (c3: C).(csubst1 i v c1 c3))) u1 x0 (refl_equal C 
-(CHead x0 k u1)) (subst1_refl i v u1) (csubst1_sing i v c1 x0 H5))) c2 
-H3)))))) H1)) (\lambda (H1: (ex4_3 T C nat (\lambda (_: T).(\lambda (_: 
-C).(\lambda (j: nat).(eq nat (s k i) (s k j))))) (\lambda (u2: T).(\lambda 
-(c3: C).(\lambda (_: nat).(eq C c2 (CHead c3 k u2))))) (\lambda (u2: 
-T).(\lambda (_: C).(\lambda (j: nat).(subst0 j v u1 u2)))) (\lambda (_: 
-T).(\lambda (c3: C).(\lambda (j: nat).(csubst0 j v c1 c3)))))).(ex4_3_ind T C 
-nat (\lambda (_: T).(\lambda (_: C).(\lambda (j: nat).(eq nat (s k i) (s k 
-j))))) (\lambda (u2: T).(\lambda (c3: C).(\lambda (_: nat).(eq C c2 (CHead c3 
-k u2))))) (\lambda (u2: T).(\lambda (_: C).(\lambda (j: nat).(subst0 j v u1 
-u2)))) (\lambda (_: T).(\lambda (c3: C).(\lambda (j: nat).(csubst0 j v c1 
-c3)))) (ex3_2 T C (\lambda (u2: T).(\lambda (c3: C).(eq C c2 (CHead c3 k 
-u2)))) (\lambda (u2: T).(\lambda (_: C).(subst1 i v u1 u2))) (\lambda (_: 
-T).(\lambda (c3: C).(csubst1 i v c1 c3)))) (\lambda (x0: T).(\lambda (x1: 
-C).(\lambda (x2: nat).(\lambda (H2: (eq nat (s k i) (s k x2))).(\lambda (H3: 
-(eq C c2 (CHead x1 k x0))).(\lambda (H4: (subst0 x2 v u1 x0)).(\lambda (H5: 
-(csubst0 x2 v c1 x1)).(eq_ind_r C (CHead x1 k x0) (\lambda (c: C).(ex3_2 T C 
-(\lambda (u2: T).(\lambda (c3: C).(eq C c (CHead c3 k u2)))) (\lambda (u2: 
-T).(\lambda (_: C).(subst1 i v u1 u2))) (\lambda (_: T).(\lambda (c3: 
-C).(csubst1 i v c1 c3))))) (let H6 \def (eq_ind_r nat x2 (\lambda (n: 
-nat).(csubst0 n v c1 x1)) H5 i (s_inj k i x2 H2)) in (let H7 \def (eq_ind_r 
-nat x2 (\lambda (n: nat).(subst0 n v u1 x0)) H4 i (s_inj k i x2 H2)) in 
-(ex3_2_intro T C (\lambda (u2: T).(\lambda (c3: C).(eq C (CHead x1 k x0) 
-(CHead c3 k u2)))) (\lambda (u2: T).(\lambda (_: C).(subst1 i v u1 u2))) 
-(\lambda (_: T).(\lambda (c3: C).(csubst1 i v c1 c3))) x0 x1 (refl_equal C 
-(CHead x1 k x0)) (subst1_single i v u1 x0 H7) (csubst1_sing i v c1 x1 H6)))) 
-c2 H3)))))))) H1)) (csubst0_gen_head k c1 c2 u1 v (s k i) H0)))) x H))))))).
-(* COMMENTS
-Initial nodes: 1817
-END *)
+x)).(let TMP_1 \def (s k i) in (let TMP_2 \def (CHead c1 k u1) in (let TMP_7 
+\def (\lambda (c: C).(let TMP_4 \def (\lambda (u2: T).(\lambda (c2: C).(let 
+TMP_3 \def (CHead c2 k u2) in (eq C c TMP_3)))) in (let TMP_5 \def (\lambda 
+(u2: T).(\lambda (_: C).(subst1 i v u1 u2))) in (let TMP_6 \def (\lambda (_: 
+T).(\lambda (c2: C).(csubst1 i v c1 c2))) in (ex3_2 T C TMP_4 TMP_5 
+TMP_6))))) in (let TMP_10 \def (\lambda (u2: T).(\lambda (c2: C).(let TMP_8 
+\def (CHead c1 k u1) in (let TMP_9 \def (CHead c2 k u2) in (eq C TMP_8 
+TMP_9))))) in (let TMP_11 \def (\lambda (u2: T).(\lambda (_: C).(subst1 i v 
+u1 u2))) in (let TMP_12 \def (\lambda (_: T).(\lambda (c2: C).(csubst1 i v c1 
+c2))) in (let TMP_13 \def (CHead c1 k u1) in (let TMP_14 \def (refl_equal C 
+TMP_13) in (let TMP_15 \def (subst1_refl i v u1) in (let TMP_16 \def 
+(csubst1_refl i v c1) in (let TMP_17 \def (ex3_2_intro T C TMP_10 TMP_11 
+TMP_12 u1 c1 TMP_14 TMP_15 TMP_16) in (let TMP_138 \def (\lambda (c2: 
+C).(\lambda (H0: (csubst0 (s k i) v (CHead c1 k u1) c2)).(let TMP_18 \def (s 
+k i) in (let H1 \def (csubst0_gen_head k c1 c2 u1 v TMP_18 H0) in (let TMP_21 
+\def (\lambda (_: T).(\lambda (j: nat).(let TMP_19 \def (s k i) in (let 
+TMP_20 \def (s k j) in (eq nat TMP_19 TMP_20))))) in (let TMP_23 \def 
+(\lambda (u2: T).(\lambda (_: nat).(let TMP_22 \def (CHead c1 k u2) in (eq C 
+c2 TMP_22)))) in (let TMP_24 \def (\lambda (u2: T).(\lambda (j: nat).(subst0 
+j v u1 u2))) in (let TMP_25 \def (ex3_2 T nat TMP_21 TMP_23 TMP_24) in (let 
+TMP_28 \def (\lambda (_: C).(\lambda (j: nat).(let TMP_26 \def (s k i) in 
+(let TMP_27 \def (s k j) in (eq nat TMP_26 TMP_27))))) in (let TMP_30 \def 
+(\lambda (c3: C).(\lambda (_: nat).(let TMP_29 \def (CHead c3 k u1) in (eq C 
+c2 TMP_29)))) in (let TMP_31 \def (\lambda (c3: C).(\lambda (j: nat).(csubst0 
+j v c1 c3))) in (let TMP_32 \def (ex3_2 C nat TMP_28 TMP_30 TMP_31) in (let 
+TMP_35 \def (\lambda (_: T).(\lambda (_: C).(\lambda (j: nat).(let TMP_33 
+\def (s k i) in (let TMP_34 \def (s k j) in (eq nat TMP_33 TMP_34)))))) in 
+(let TMP_37 \def (\lambda (u2: T).(\lambda (c3: C).(\lambda (_: nat).(let 
+TMP_36 \def (CHead c3 k u2) in (eq C c2 TMP_36))))) in (let TMP_38 \def 
+(\lambda (u2: T).(\lambda (_: C).(\lambda (j: nat).(subst0 j v u1 u2)))) in 
+(let TMP_39 \def (\lambda (_: T).(\lambda (c3: C).(\lambda (j: nat).(csubst0 
+j v c1 c3)))) in (let TMP_40 \def (ex4_3 T C nat TMP_35 TMP_37 TMP_38 TMP_39) 
+in (let TMP_42 \def (\lambda (u2: T).(\lambda (c3: C).(let TMP_41 \def (CHead 
+c3 k u2) in (eq C c2 TMP_41)))) in (let TMP_43 \def (\lambda (u2: T).(\lambda 
+(_: C).(subst1 i v u1 u2))) in (let TMP_44 \def (\lambda (_: T).(\lambda (c3: 
+C).(csubst1 i v c1 c3))) in (let TMP_45 \def (ex3_2 T C TMP_42 TMP_43 TMP_44) 
+in (let TMP_75 \def (\lambda (H2: (ex3_2 T nat (\lambda (_: T).(\lambda (j: 
+nat).(eq nat (s k i) (s k j)))) (\lambda (u2: T).(\lambda (_: nat).(eq C c2 
+(CHead c1 k u2)))) (\lambda (u2: T).(\lambda (j: nat).(subst0 j v u1 
+u2))))).(let TMP_48 \def (\lambda (_: T).(\lambda (j: nat).(let TMP_46 \def 
+(s k i) in (let TMP_47 \def (s k j) in (eq nat TMP_46 TMP_47))))) in (let 
+TMP_50 \def (\lambda (u2: T).(\lambda (_: nat).(let TMP_49 \def (CHead c1 k 
+u2) in (eq C c2 TMP_49)))) in (let TMP_51 \def (\lambda (u2: T).(\lambda (j: 
+nat).(subst0 j v u1 u2))) in (let TMP_53 \def (\lambda (u2: T).(\lambda (c3: 
+C).(let TMP_52 \def (CHead c3 k u2) in (eq C c2 TMP_52)))) in (let TMP_54 
+\def (\lambda (u2: T).(\lambda (_: C).(subst1 i v u1 u2))) in (let TMP_55 
+\def (\lambda (_: T).(\lambda (c3: C).(csubst1 i v c1 c3))) in (let TMP_56 
+\def (ex3_2 T C TMP_53 TMP_54 TMP_55) in (let TMP_74 \def (\lambda (x0: 
+T).(\lambda (x1: nat).(\lambda (H3: (eq nat (s k i) (s k x1))).(\lambda (H4: 
+(eq C c2 (CHead c1 k x0))).(\lambda (H5: (subst0 x1 v u1 x0)).(let TMP_57 
+\def (CHead c1 k x0) in (let TMP_62 \def (\lambda (c: C).(let TMP_59 \def 
+(\lambda (u2: T).(\lambda (c3: C).(let TMP_58 \def (CHead c3 k u2) in (eq C c 
+TMP_58)))) in (let TMP_60 \def (\lambda (u2: T).(\lambda (_: C).(subst1 i v 
+u1 u2))) in (let TMP_61 \def (\lambda (_: T).(\lambda (c3: C).(csubst1 i v c1 
+c3))) in (ex3_2 T C TMP_59 TMP_60 TMP_61))))) in (let H_y \def (s_inj k i x1 
+H3) in (let TMP_63 \def (\lambda (n: nat).(subst0 n v u1 x0)) in (let H6 \def 
+(eq_ind_r nat x1 TMP_63 H5 i H_y) in (let TMP_66 \def (\lambda (u2: 
+T).(\lambda (c3: C).(let TMP_64 \def (CHead c1 k x0) in (let TMP_65 \def 
+(CHead c3 k u2) in (eq C TMP_64 TMP_65))))) in (let TMP_67 \def (\lambda (u2: 
+T).(\lambda (_: C).(subst1 i v u1 u2))) in (let TMP_68 \def (\lambda (_: 
+T).(\lambda (c3: C).(csubst1 i v c1 c3))) in (let TMP_69 \def (CHead c1 k x0) 
+in (let TMP_70 \def (refl_equal C TMP_69) in (let TMP_71 \def (subst1_single 
+i v u1 x0 H6) in (let TMP_72 \def (csubst1_refl i v c1) in (let TMP_73 \def 
+(ex3_2_intro T C TMP_66 TMP_67 TMP_68 x0 c1 TMP_70 TMP_71 TMP_72) in 
+(eq_ind_r C TMP_57 TMP_62 TMP_73 c2 H4))))))))))))))))))) in (ex3_2_ind T nat 
+TMP_48 TMP_50 TMP_51 TMP_56 TMP_74 H2)))))))))) in (let TMP_105 \def (\lambda 
+(H2: (ex3_2 C nat (\lambda (_: C).(\lambda (j: nat).(eq nat (s k i) (s k 
+j)))) (\lambda (c3: C).(\lambda (_: nat).(eq C c2 (CHead c3 k u1)))) (\lambda 
+(c3: C).(\lambda (j: nat).(csubst0 j v c1 c3))))).(let TMP_78 \def (\lambda 
+(_: C).(\lambda (j: nat).(let TMP_76 \def (s k i) in (let TMP_77 \def (s k j) 
+in (eq nat TMP_76 TMP_77))))) in (let TMP_80 \def (\lambda (c3: C).(\lambda 
+(_: nat).(let TMP_79 \def (CHead c3 k u1) in (eq C c2 TMP_79)))) in (let 
+TMP_81 \def (\lambda (c3: C).(\lambda (j: nat).(csubst0 j v c1 c3))) in (let 
+TMP_83 \def (\lambda (u2: T).(\lambda (c3: C).(let TMP_82 \def (CHead c3 k 
+u2) in (eq C c2 TMP_82)))) in (let TMP_84 \def (\lambda (u2: T).(\lambda (_: 
+C).(subst1 i v u1 u2))) in (let TMP_85 \def (\lambda (_: T).(\lambda (c3: 
+C).(csubst1 i v c1 c3))) in (let TMP_86 \def (ex3_2 T C TMP_83 TMP_84 TMP_85) 
+in (let TMP_104 \def (\lambda (x0: C).(\lambda (x1: nat).(\lambda (H3: (eq 
+nat (s k i) (s k x1))).(\lambda (H4: (eq C c2 (CHead x0 k u1))).(\lambda (H5: 
+(csubst0 x1 v c1 x0)).(let TMP_87 \def (CHead x0 k u1) in (let TMP_92 \def 
+(\lambda (c: C).(let TMP_89 \def (\lambda (u2: T).(\lambda (c3: C).(let 
+TMP_88 \def (CHead c3 k u2) in (eq C c TMP_88)))) in (let TMP_90 \def 
+(\lambda (u2: T).(\lambda (_: C).(subst1 i v u1 u2))) in (let TMP_91 \def 
+(\lambda (_: T).(\lambda (c3: C).(csubst1 i v c1 c3))) in (ex3_2 T C TMP_89 
+TMP_90 TMP_91))))) in (let H_y \def (s_inj k i x1 H3) in (let TMP_93 \def 
+(\lambda (n: nat).(csubst0 n v c1 x0)) in (let H6 \def (eq_ind_r nat x1 
+TMP_93 H5 i H_y) in (let TMP_96 \def (\lambda (u2: T).(\lambda (c3: C).(let 
+TMP_94 \def (CHead x0 k u1) in (let TMP_95 \def (CHead c3 k u2) in (eq C 
+TMP_94 TMP_95))))) in (let TMP_97 \def (\lambda (u2: T).(\lambda (_: 
+C).(subst1 i v u1 u2))) in (let TMP_98 \def (\lambda (_: T).(\lambda (c3: 
+C).(csubst1 i v c1 c3))) in (let TMP_99 \def (CHead x0 k u1) in (let TMP_100 
+\def (refl_equal C TMP_99) in (let TMP_101 \def (subst1_refl i v u1) in (let 
+TMP_102 \def (csubst1_sing i v c1 x0 H6) in (let TMP_103 \def (ex3_2_intro T 
+C TMP_96 TMP_97 TMP_98 u1 x0 TMP_100 TMP_101 TMP_102) in (eq_ind_r C TMP_87 
+TMP_92 TMP_103 c2 H4))))))))))))))))))) in (ex3_2_ind C nat TMP_78 TMP_80 
+TMP_81 TMP_86 TMP_104 H2)))))))))) in (let TMP_137 \def (\lambda (H2: (ex4_3 
+T C nat (\lambda (_: T).(\lambda (_: C).(\lambda (j: nat).(eq nat (s k i) (s 
+k j))))) (\lambda (u2: T).(\lambda (c3: C).(\lambda (_: nat).(eq C c2 (CHead 
+c3 k u2))))) (\lambda (u2: T).(\lambda (_: C).(\lambda (j: nat).(subst0 j v 
+u1 u2)))) (\lambda (_: T).(\lambda (c3: C).(\lambda (j: nat).(csubst0 j v c1 
+c3)))))).(let TMP_108 \def (\lambda (_: T).(\lambda (_: C).(\lambda (j: 
+nat).(let TMP_106 \def (s k i) in (let TMP_107 \def (s k j) in (eq nat 
+TMP_106 TMP_107)))))) in (let TMP_110 \def (\lambda (u2: T).(\lambda (c3: 
+C).(\lambda (_: nat).(let TMP_109 \def (CHead c3 k u2) in (eq C c2 
+TMP_109))))) in (let TMP_111 \def (\lambda (u2: T).(\lambda (_: C).(\lambda 
+(j: nat).(subst0 j v u1 u2)))) in (let TMP_112 \def (\lambda (_: T).(\lambda 
+(c3: C).(\lambda (j: nat).(csubst0 j v c1 c3)))) in (let TMP_114 \def 
+(\lambda (u2: T).(\lambda (c3: C).(let TMP_113 \def (CHead c3 k u2) in (eq C 
+c2 TMP_113)))) in (let TMP_115 \def (\lambda (u2: T).(\lambda (_: C).(subst1 
+i v u1 u2))) in (let TMP_116 \def (\lambda (_: T).(\lambda (c3: C).(csubst1 i 
+v c1 c3))) in (let TMP_117 \def (ex3_2 T C TMP_114 TMP_115 TMP_116) in (let 
+TMP_136 \def (\lambda (x0: T).(\lambda (x1: C).(\lambda (x2: nat).(\lambda 
+(H3: (eq nat (s k i) (s k x2))).(\lambda (H4: (eq C c2 (CHead x1 k 
+x0))).(\lambda (H5: (subst0 x2 v u1 x0)).(\lambda (H6: (csubst0 x2 v c1 
+x1)).(let TMP_118 \def (CHead x1 k x0) in (let TMP_123 \def (\lambda (c: 
+C).(let TMP_120 \def (\lambda (u2: T).(\lambda (c3: C).(let TMP_119 \def 
+(CHead c3 k u2) in (eq C c TMP_119)))) in (let TMP_121 \def (\lambda (u2: 
+T).(\lambda (_: C).(subst1 i v u1 u2))) in (let TMP_122 \def (\lambda (_: 
+T).(\lambda (c3: C).(csubst1 i v c1 c3))) in (ex3_2 T C TMP_120 TMP_121 
+TMP_122))))) in (let H_y \def (s_inj k i x2 H3) in (let TMP_124 \def (\lambda 
+(n: nat).(csubst0 n v c1 x1)) in (let H7 \def (eq_ind_r nat x2 TMP_124 H6 i 
+H_y) in (let TMP_125 \def (\lambda (n: nat).(subst0 n v u1 x0)) in (let H8 
+\def (eq_ind_r nat x2 TMP_125 H5 i H_y) in (let TMP_128 \def (\lambda (u2: 
+T).(\lambda (c3: C).(let TMP_126 \def (CHead x1 k x0) in (let TMP_127 \def 
+(CHead c3 k u2) in (eq C TMP_126 TMP_127))))) in (let TMP_129 \def (\lambda 
+(u2: T).(\lambda (_: C).(subst1 i v u1 u2))) in (let TMP_130 \def (\lambda 
+(_: T).(\lambda (c3: C).(csubst1 i v c1 c3))) in (let TMP_131 \def (CHead x1 
+k x0) in (let TMP_132 \def (refl_equal C TMP_131) in (let TMP_133 \def 
+(subst1_single i v u1 x0 H8) in (let TMP_134 \def (csubst1_sing i v c1 x1 H7) 
+in (let TMP_135 \def (ex3_2_intro T C TMP_128 TMP_129 TMP_130 x0 x1 TMP_132 
+TMP_133 TMP_134) in (eq_ind_r C TMP_118 TMP_123 TMP_135 c2 
+H4))))))))))))))))))))))) in (ex4_3_ind T C nat TMP_108 TMP_110 TMP_111 
+TMP_112 TMP_117 TMP_136 H2))))))))))) in (or3_ind TMP_25 TMP_32 TMP_40 TMP_45 
+TMP_75 TMP_105 TMP_137 H1))))))))))))))))))))))))) in (csubst1_ind TMP_1 v 
+TMP_2 TMP_7 TMP_17 TMP_138 x H))))))))))))))))))).
 
index e24ba95339b0cc80f9506682a566a525ca067855..8c737fc0332044847ee6d6eeb2b555cf121b1416 100644 (file)
 
 (* This file was automatically generated: do not edit *********************)
 
-include "Basic-1/csubst1/props.ma".
+include "basic_1/csubst1/props.ma".
 
-include "Basic-1/csubst0/getl.ma".
+include "basic_1/csubst0/getl.ma".
 
-include "Basic-1/subst1/props.ma".
+include "basic_1/subst1/props.ma".
 
-include "Basic-1/drop/props.ma".
+include "basic_1/drop/props.ma".
 
 theorem csubst1_getl_ge:
  \forall (i: nat).(\forall (n: nat).((le i n) \to (\forall (c1: C).(\forall 
@@ -28,14 +28,12 @@ theorem csubst1_getl_ge:
 e) \to (getl n c2 e)))))))))
 \def
  \lambda (i: nat).(\lambda (n: nat).(\lambda (H: (le i n)).(\lambda (c1: 
-C).(\lambda (c2: C).(\lambda (v: T).(\lambda (H0: (csubst1 i v c1 
-c2)).(csubst1_ind i v c1 (\lambda (c: C).(\forall (e: C).((getl n c1 e) \to 
-(getl n c e)))) (\lambda (e: C).(\lambda (H1: (getl n c1 e)).H1)) (\lambda 
-(c3: C).(\lambda (H1: (csubst0 i v c1 c3)).(\lambda (e: C).(\lambda (H2: 
-(getl n c1 e)).(csubst0_getl_ge i n H c1 c3 v H1 e H2))))) c2 H0))))))).
-(* COMMENTS
-Initial nodes: 111
-END *)
+C).(\lambda (c2: C).(\lambda (v: T).(\lambda (H0: (csubst1 i v c1 c2)).(let 
+TMP_1 \def (\lambda (c: C).(\forall (e: C).((getl n c1 e) \to (getl n c e)))) 
+in (let TMP_2 \def (\lambda (e: C).(\lambda (H1: (getl n c1 e)).H1)) in (let 
+TMP_3 \def (\lambda (c3: C).(\lambda (H1: (csubst0 i v c1 c3)).(\lambda (e: 
+C).(\lambda (H2: (getl n c1 e)).(csubst0_getl_ge i n H c1 c3 v H1 e H2))))) 
+in (csubst1_ind i v c1 TMP_1 TMP_2 TMP_3 c2 H0)))))))))).
 
 theorem csubst1_getl_lt:
  \forall (i: nat).(\forall (n: nat).((lt n i) \to (\forall (c1: C).(\forall 
@@ -44,104 +42,189 @@ e1) \to (ex2 C (\lambda (e2: C).(csubst1 (minus i n) v e1 e2)) (\lambda (e2:
 C).(getl n c2 e2)))))))))))
 \def
  \lambda (i: nat).(\lambda (n: nat).(\lambda (H: (lt n i)).(\lambda (c1: 
-C).(\lambda (c2: C).(\lambda (v: T).(\lambda (H0: (csubst1 i v c1 
-c2)).(csubst1_ind i v c1 (\lambda (c: C).(\forall (e1: C).((getl n c1 e1) \to 
-(ex2 C (\lambda (e2: C).(csubst1 (minus i n) v e1 e2)) (\lambda (e2: C).(getl 
-n c e2)))))) (\lambda (e1: C).(\lambda (H1: (getl n c1 e1)).(eq_ind_r nat (S 
-(minus i (S n))) (\lambda (n0: nat).(ex2 C (\lambda (e2: C).(csubst1 n0 v e1 
-e2)) (\lambda (e2: C).(getl n c1 e2)))) (ex_intro2 C (\lambda (e2: 
-C).(csubst1 (S (minus i (S n))) v e1 e2)) (\lambda (e2: C).(getl n c1 e2)) e1 
-(csubst1_refl (S (minus i (S n))) v e1) H1) (minus i n) (minus_x_Sy i n H)))) 
-(\lambda (c3: C).(\lambda (H1: (csubst0 i v c1 c3)).(\lambda (e1: C).(\lambda 
-(H2: (getl n c1 e1)).(eq_ind_r nat (S (minus i (S n))) (\lambda (n0: 
-nat).(ex2 C (\lambda (e2: C).(csubst1 n0 v e1 e2)) (\lambda (e2: C).(getl n 
-c3 e2)))) (let H3 \def (csubst0_getl_lt i n H c1 c3 v H1 e1 H2) in (or4_ind 
-(getl n c3 e1) (ex3_4 B C T T (\lambda (b: B).(\lambda (e0: C).(\lambda (u: 
-T).(\lambda (_: T).(eq C e1 (CHead e0 (Bind b) u)))))) (\lambda (b: 
-B).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: T).(getl n c3 (CHead e0 
-(Bind b) w)))))) (\lambda (_: B).(\lambda (_: C).(\lambda (u: T).(\lambda (w: 
-T).(subst0 (minus i (S n)) v u w)))))) (ex3_4 B C C T (\lambda (b: 
-B).(\lambda (e2: C).(\lambda (_: C).(\lambda (u: T).(eq C e1 (CHead e2 (Bind 
-b) u)))))) (\lambda (b: B).(\lambda (_: C).(\lambda (e3: C).(\lambda (u: 
-T).(getl n c3 (CHead e3 (Bind b) u)))))) (\lambda (_: B).(\lambda (e2: 
-C).(\lambda (e3: C).(\lambda (_: T).(csubst0 (minus i (S n)) v e2 e3)))))) 
-(ex4_5 B C C T T (\lambda (b: B).(\lambda (e2: C).(\lambda (_: C).(\lambda 
-(u: T).(\lambda (_: T).(eq C e1 (CHead e2 (Bind b) u))))))) (\lambda (b: 
-B).(\lambda (_: C).(\lambda (e3: C).(\lambda (_: T).(\lambda (w: T).(getl n 
-c3 (CHead e3 (Bind b) w))))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: 
-C).(\lambda (u: T).(\lambda (w: T).(subst0 (minus i (S n)) v u w)))))) 
-(\lambda (_: B).(\lambda (e2: C).(\lambda (e3: C).(\lambda (_: T).(\lambda 
-(_: T).(csubst0 (minus i (S n)) v e2 e3))))))) (ex2 C (\lambda (e2: 
-C).(csubst1 (S (minus i (S n))) v e1 e2)) (\lambda (e2: C).(getl n c3 e2))) 
-(\lambda (H4: (getl n c3 e1)).(ex_intro2 C (\lambda (e2: C).(csubst1 (S 
-(minus i (S n))) v e1 e2)) (\lambda (e2: C).(getl n c3 e2)) e1 (csubst1_refl 
-(S (minus i (S n))) v e1) H4)) (\lambda (H4: (ex3_4 B C T T (\lambda (b: 
-B).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: T).(eq C e1 (CHead e0 (Bind 
-b) u)))))) (\lambda (b: B).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: 
-T).(getl n c3 (CHead e0 (Bind b) w)))))) (\lambda (_: B).(\lambda (_: 
-C).(\lambda (u: T).(\lambda (w: T).(subst0 (minus i (S n)) v u 
-w))))))).(ex3_4_ind B C T T (\lambda (b: B).(\lambda (e0: C).(\lambda (u: 
-T).(\lambda (_: T).(eq C e1 (CHead e0 (Bind b) u)))))) (\lambda (b: 
-B).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: T).(getl n c3 (CHead e0 
-(Bind b) w)))))) (\lambda (_: B).(\lambda (_: C).(\lambda (u: T).(\lambda (w: 
-T).(subst0 (minus i (S n)) v u w))))) (ex2 C (\lambda (e2: C).(csubst1 (S 
-(minus i (S n))) v e1 e2)) (\lambda (e2: C).(getl n c3 e2))) (\lambda (x0: 
-B).(\lambda (x1: C).(\lambda (x2: T).(\lambda (x3: T).(\lambda (H5: (eq C e1 
-(CHead x1 (Bind x0) x2))).(\lambda (H6: (getl n c3 (CHead x1 (Bind x0) 
-x3))).(\lambda (H7: (subst0 (minus i (S n)) v x2 x3)).(eq_ind_r C (CHead x1 
-(Bind x0) x2) (\lambda (c: C).(ex2 C (\lambda (e2: C).(csubst1 (S (minus i (S 
-n))) v c e2)) (\lambda (e2: C).(getl n c3 e2)))) (ex_intro2 C (\lambda (e2: 
-C).(csubst1 (S (minus i (S n))) v (CHead x1 (Bind x0) x2) e2)) (\lambda (e2: 
-C).(getl n c3 e2)) (CHead x1 (Bind x0) x3) (csubst1_sing (S (minus i (S n))) 
-v (CHead x1 (Bind x0) x2) (CHead x1 (Bind x0) x3) (csubst0_snd_bind x0 (minus 
-i (S n)) v x2 x3 H7 x1)) H6) e1 H5)))))))) H4)) (\lambda (H4: (ex3_4 B C C T 
+C).(\lambda (c2: C).(\lambda (v: T).(\lambda (H0: (csubst1 i v c1 c2)).(let 
+TMP_4 \def (\lambda (c: C).(\forall (e1: C).((getl n c1 e1) \to (let TMP_2 
+\def (\lambda (e2: C).(let TMP_1 \def (minus i n) in (csubst1 TMP_1 v e1 
+e2))) in (let TMP_3 \def (\lambda (e2: C).(getl n c e2)) in (ex2 C TMP_2 
+TMP_3)))))) in (let TMP_23 \def (\lambda (e1: C).(\lambda (H1: (getl n c1 
+e1)).(let TMP_5 \def (S n) in (let TMP_6 \def (minus i TMP_5) in (let TMP_7 
+\def (S TMP_6) in (let TMP_10 \def (\lambda (n0: nat).(let TMP_8 \def 
+(\lambda (e2: C).(csubst1 n0 v e1 e2)) in (let TMP_9 \def (\lambda (e2: 
+C).(getl n c1 e2)) in (ex2 C TMP_8 TMP_9)))) in (let TMP_14 \def (\lambda 
+(e2: C).(let TMP_11 \def (S n) in (let TMP_12 \def (minus i TMP_11) in (let 
+TMP_13 \def (S TMP_12) in (csubst1 TMP_13 v e1 e2))))) in (let TMP_15 \def 
+(\lambda (e2: C).(getl n c1 e2)) in (let TMP_16 \def (S n) in (let TMP_17 
+\def (minus i TMP_16) in (let TMP_18 \def (S TMP_17) in (let TMP_19 \def 
+(csubst1_refl TMP_18 v e1) in (let TMP_20 \def (ex_intro2 C TMP_14 TMP_15 e1 
+TMP_19 H1) in (let TMP_21 \def (minus i n) in (let TMP_22 \def (minus_x_Sy i 
+n H) in (eq_ind_r nat TMP_7 TMP_10 TMP_20 TMP_21 TMP_22)))))))))))))))) in 
+(let TMP_224 \def (\lambda (c3: C).(\lambda (H1: (csubst0 i v c1 
+c3)).(\lambda (e1: C).(\lambda (H2: (getl n c1 e1)).(let TMP_24 \def (S n) in 
+(let TMP_25 \def (minus i TMP_24) in (let TMP_26 \def (S TMP_25) in (let 
+TMP_29 \def (\lambda (n0: nat).(let TMP_27 \def (\lambda (e2: C).(csubst1 n0 
+v e1 e2)) in (let TMP_28 \def (\lambda (e2: C).(getl n c3 e2)) in (ex2 C 
+TMP_27 TMP_28)))) in (let H3 \def (csubst0_getl_lt i n H c1 c3 v H1 e1 H2) in 
+(let TMP_30 \def (getl n c3 e1) in (let TMP_33 \def (\lambda (b: B).(\lambda 
+(e0: C).(\lambda (u: T).(\lambda (_: T).(let TMP_31 \def (Bind b) in (let 
+TMP_32 \def (CHead e0 TMP_31 u) in (eq C e1 TMP_32))))))) in (let TMP_36 \def 
+(\lambda (b: B).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: T).(let TMP_34 
+\def (Bind b) in (let TMP_35 \def (CHead e0 TMP_34 w) in (getl n c3 
+TMP_35))))))) in (let TMP_39 \def (\lambda (_: B).(\lambda (_: C).(\lambda 
+(u: T).(\lambda (w: T).(let TMP_37 \def (S n) in (let TMP_38 \def (minus i 
+TMP_37) in (subst0 TMP_38 v u w))))))) in (let TMP_40 \def (ex3_4 B C T T 
+TMP_33 TMP_36 TMP_39) in (let TMP_43 \def (\lambda (b: B).(\lambda (e2: 
+C).(\lambda (_: C).(\lambda (u: T).(let TMP_41 \def (Bind b) in (let TMP_42 
+\def (CHead e2 TMP_41 u) in (eq C e1 TMP_42))))))) in (let TMP_46 \def 
+(\lambda (b: B).(\lambda (_: C).(\lambda (e3: C).(\lambda (u: T).(let TMP_44 
+\def (Bind b) in (let TMP_45 \def (CHead e3 TMP_44 u) in (getl n c3 
+TMP_45))))))) in (let TMP_49 \def (\lambda (_: B).(\lambda (e2: C).(\lambda 
+(e3: C).(\lambda (_: T).(let TMP_47 \def (S n) in (let TMP_48 \def (minus i 
+TMP_47) in (csubst0 TMP_48 v e2 e3))))))) in (let TMP_50 \def (ex3_4 B C C T 
+TMP_43 TMP_46 TMP_49) in (let TMP_53 \def (\lambda (b: B).(\lambda (e2: 
+C).(\lambda (_: C).(\lambda (u: T).(\lambda (_: T).(let TMP_51 \def (Bind b) 
+in (let TMP_52 \def (CHead e2 TMP_51 u) in (eq C e1 TMP_52)))))))) in (let 
+TMP_56 \def (\lambda (b: B).(\lambda (_: C).(\lambda (e3: C).(\lambda (_: 
+T).(\lambda (w: T).(let TMP_54 \def (Bind b) in (let TMP_55 \def (CHead e3 
+TMP_54 w) in (getl n c3 TMP_55)))))))) in (let TMP_59 \def (\lambda (_: 
+B).(\lambda (_: C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(let 
+TMP_57 \def (S n) in (let TMP_58 \def (minus i TMP_57) in (subst0 TMP_58 v u 
+w)))))))) in (let TMP_62 \def (\lambda (_: B).(\lambda (e2: C).(\lambda (e3: 
+C).(\lambda (_: T).(\lambda (_: T).(let TMP_60 \def (S n) in (let TMP_61 \def 
+(minus i TMP_60) in (csubst0 TMP_61 v e2 e3)))))))) in (let TMP_63 \def 
+(ex4_5 B C C T T TMP_53 TMP_56 TMP_59 TMP_62) in (let TMP_67 \def (\lambda 
+(e2: C).(let TMP_64 \def (S n) in (let TMP_65 \def (minus i TMP_64) in (let 
+TMP_66 \def (S TMP_65) in (csubst1 TMP_66 v e1 e2))))) in (let TMP_68 \def 
+(\lambda (e2: C).(getl n c3 e2)) in (let TMP_69 \def (ex2 C TMP_67 TMP_68) in 
+(let TMP_79 \def (\lambda (H4: (getl n c3 e1)).(let TMP_73 \def (\lambda (e2: 
+C).(let TMP_70 \def (S n) in (let TMP_71 \def (minus i TMP_70) in (let TMP_72 
+\def (S TMP_71) in (csubst1 TMP_72 v e1 e2))))) in (let TMP_74 \def (\lambda 
+(e2: C).(getl n c3 e2)) in (let TMP_75 \def (S n) in (let TMP_76 \def (minus 
+i TMP_75) in (let TMP_77 \def (S TMP_76) in (let TMP_78 \def (csubst1_refl 
+TMP_77 v e1) in (ex_intro2 C TMP_73 TMP_74 e1 TMP_78 H4)))))))) in (let 
+TMP_125 \def (\lambda (H4: (ex3_4 B C T T (\lambda (b: B).(\lambda (e0: 
+C).(\lambda (u: T).(\lambda (_: T).(eq C e1 (CHead e0 (Bind b) u)))))) 
+(\lambda (b: B).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: T).(getl n c3 
+(CHead e0 (Bind b) w)))))) (\lambda (_: B).(\lambda (_: C).(\lambda (u: 
+T).(\lambda (w: T).(subst0 (minus i (S n)) v u w))))))).(let TMP_82 \def 
+(\lambda (b: B).(\lambda (e0: C).(\lambda (u: T).(\lambda (_: T).(let TMP_80 
+\def (Bind b) in (let TMP_81 \def (CHead e0 TMP_80 u) in (eq C e1 
+TMP_81))))))) in (let TMP_85 \def (\lambda (b: B).(\lambda (e0: C).(\lambda 
+(_: T).(\lambda (w: T).(let TMP_83 \def (Bind b) in (let TMP_84 \def (CHead 
+e0 TMP_83 w) in (getl n c3 TMP_84))))))) in (let TMP_88 \def (\lambda (_: 
+B).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(let TMP_86 \def (S n) in 
+(let TMP_87 \def (minus i TMP_86) in (subst0 TMP_87 v u w))))))) in (let 
+TMP_92 \def (\lambda (e2: C).(let TMP_89 \def (S n) in (let TMP_90 \def 
+(minus i TMP_89) in (let TMP_91 \def (S TMP_90) in (csubst1 TMP_91 v e1 
+e2))))) in (let TMP_93 \def (\lambda (e2: C).(getl n c3 e2)) in (let TMP_94 
+\def (ex2 C TMP_92 TMP_93) in (let TMP_124 \def (\lambda (x0: B).(\lambda 
+(x1: C).(\lambda (x2: T).(\lambda (x3: T).(\lambda (H5: (eq C e1 (CHead x1 
+(Bind x0) x2))).(\lambda (H6: (getl n c3 (CHead x1 (Bind x0) x3))).(\lambda 
+(H7: (subst0 (minus i (S n)) v x2 x3)).(let TMP_95 \def (Bind x0) in (let 
+TMP_96 \def (CHead x1 TMP_95 x2) in (let TMP_102 \def (\lambda (c: C).(let 
+TMP_100 \def (\lambda (e2: C).(let TMP_97 \def (S n) in (let TMP_98 \def 
+(minus i TMP_97) in (let TMP_99 \def (S TMP_98) in (csubst1 TMP_99 v c 
+e2))))) in (let TMP_101 \def (\lambda (e2: C).(getl n c3 e2)) in (ex2 C 
+TMP_100 TMP_101)))) in (let TMP_108 \def (\lambda (e2: C).(let TMP_103 \def 
+(S n) in (let TMP_104 \def (minus i TMP_103) in (let TMP_105 \def (S TMP_104) 
+in (let TMP_106 \def (Bind x0) in (let TMP_107 \def (CHead x1 TMP_106 x2) in 
+(csubst1 TMP_105 v TMP_107 e2))))))) in (let TMP_109 \def (\lambda (e2: 
+C).(getl n c3 e2)) in (let TMP_110 \def (Bind x0) in (let TMP_111 \def (CHead 
+x1 TMP_110 x3) in (let TMP_112 \def (S n) in (let TMP_113 \def (minus i 
+TMP_112) in (let TMP_114 \def (S TMP_113) in (let TMP_115 \def (Bind x0) in 
+(let TMP_116 \def (CHead x1 TMP_115 x2) in (let TMP_117 \def (Bind x0) in 
+(let TMP_118 \def (CHead x1 TMP_117 x3) in (let TMP_119 \def (S n) in (let 
+TMP_120 \def (minus i TMP_119) in (let TMP_121 \def (csubst0_snd_bind x0 
+TMP_120 v x2 x3 H7 x1) in (let TMP_122 \def (csubst1_sing TMP_114 v TMP_116 
+TMP_118 TMP_121) in (let TMP_123 \def (ex_intro2 C TMP_108 TMP_109 TMP_111 
+TMP_122 H6) in (eq_ind_r C TMP_96 TMP_102 TMP_123 e1 
+H5))))))))))))))))))))))))))) in (ex3_4_ind B C T T TMP_82 TMP_85 TMP_88 
+TMP_94 TMP_124 H4))))))))) in (let TMP_171 \def (\lambda (H4: (ex3_4 B C C T 
 (\lambda (b: B).(\lambda (e2: C).(\lambda (_: C).(\lambda (u: T).(eq C e1 
 (CHead e2 (Bind b) u)))))) (\lambda (b: B).(\lambda (_: C).(\lambda (e3: 
 C).(\lambda (u: T).(getl n c3 (CHead e3 (Bind b) u)))))) (\lambda (_: 
 B).(\lambda (e2: C).(\lambda (e3: C).(\lambda (_: T).(csubst0 (minus i (S n)) 
-v e2 e3))))))).(ex3_4_ind B C C T (\lambda (b: B).(\lambda (e2: C).(\lambda 
-(_: C).(\lambda (u: T).(eq C e1 (CHead e2 (Bind b) u)))))) (\lambda (b: 
-B).(\lambda (_: C).(\lambda (e3: C).(\lambda (u: T).(getl n c3 (CHead e3 
-(Bind b) u)))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (e3: C).(\lambda 
-(_: T).(csubst0 (minus i (S n)) v e2 e3))))) (ex2 C (\lambda (e2: C).(csubst1 
-(S (minus i (S n))) v e1 e2)) (\lambda (e2: C).(getl n c3 e2))) (\lambda (x0: 
-B).(\lambda (x1: C).(\lambda (x2: C).(\lambda (x3: T).(\lambda (H5: (eq C e1 
-(CHead x1 (Bind x0) x3))).(\lambda (H6: (getl n c3 (CHead x2 (Bind x0) 
-x3))).(\lambda (H7: (csubst0 (minus i (S n)) v x1 x2)).(eq_ind_r C (CHead x1 
-(Bind x0) x3) (\lambda (c: C).(ex2 C (\lambda (e2: C).(csubst1 (S (minus i (S 
-n))) v c e2)) (\lambda (e2: C).(getl n c3 e2)))) (ex_intro2 C (\lambda (e2: 
-C).(csubst1 (S (minus i (S n))) v (CHead x1 (Bind x0) x3) e2)) (\lambda (e2: 
-C).(getl n c3 e2)) (CHead x2 (Bind x0) x3) (csubst1_sing (S (minus i (S n))) 
-v (CHead x1 (Bind x0) x3) (CHead x2 (Bind x0) x3) (csubst0_fst_bind x0 (minus 
-i (S n)) x1 x2 v H7 x3)) H6) e1 H5)))))))) H4)) (\lambda (H4: (ex4_5 B C C T 
-T (\lambda (b: B).(\lambda (e2: C).(\lambda (_: C).(\lambda (u: T).(\lambda 
-(_: T).(eq C e1 (CHead e2 (Bind b) u))))))) (\lambda (b: B).(\lambda (_: 
-C).(\lambda (e3: C).(\lambda (_: T).(\lambda (w: T).(getl n c3 (CHead e3 
-(Bind b) w))))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: C).(\lambda 
-(u: T).(\lambda (w: T).(subst0 (minus i (S n)) v u w)))))) (\lambda (_: 
-B).(\lambda (e2: C).(\lambda (e3: C).(\lambda (_: T).(\lambda (_: T).(csubst0 
-(minus i (S n)) v e2 e3)))))))).(ex4_5_ind B C C T T (\lambda (b: B).(\lambda 
-(e2: C).(\lambda (_: C).(\lambda (u: T).(\lambda (_: T).(eq C e1 (CHead e2 
-(Bind b) u))))))) (\lambda (b: B).(\lambda (_: C).(\lambda (e3: C).(\lambda 
-(_: T).(\lambda (w: T).(getl n c3 (CHead e3 (Bind b) w))))))) (\lambda (_: 
-B).(\lambda (_: C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 
-(minus i (S n)) v u w)))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (e3: 
-C).(\lambda (_: T).(\lambda (_: T).(csubst0 (minus i (S n)) v e2 e3)))))) 
-(ex2 C (\lambda (e2: C).(csubst1 (S (minus i (S n))) v e1 e2)) (\lambda (e2: 
-C).(getl n c3 e2))) (\lambda (x0: B).(\lambda (x1: C).(\lambda (x2: 
-C).(\lambda (x3: T).(\lambda (x4: T).(\lambda (H5: (eq C e1 (CHead x1 (Bind 
-x0) x3))).(\lambda (H6: (getl n c3 (CHead x2 (Bind x0) x4))).(\lambda (H7: 
-(subst0 (minus i (S n)) v x3 x4)).(\lambda (H8: (csubst0 (minus i (S n)) v x1 
-x2)).(eq_ind_r C (CHead x1 (Bind x0) x3) (\lambda (c: C).(ex2 C (\lambda (e2: 
-C).(csubst1 (S (minus i (S n))) v c e2)) (\lambda (e2: C).(getl n c3 e2)))) 
-(ex_intro2 C (\lambda (e2: C).(csubst1 (S (minus i (S n))) v (CHead x1 (Bind 
-x0) x3) e2)) (\lambda (e2: C).(getl n c3 e2)) (CHead x2 (Bind x0) x4) 
-(csubst1_sing (S (minus i (S n))) v (CHead x1 (Bind x0) x3) (CHead x2 (Bind 
-x0) x4) (csubst0_both_bind x0 (minus i (S n)) v x3 x4 H7 x1 x2 H8)) H6) e1 
-H5)))))))))) H4)) H3)) (minus i n) (minus_x_Sy i n H)))))) c2 H0))))))).
-(* COMMENTS
-Initial nodes: 2035
-END *)
+v e2 e3))))))).(let TMP_128 \def (\lambda (b: B).(\lambda (e2: C).(\lambda 
+(_: C).(\lambda (u: T).(let TMP_126 \def (Bind b) in (let TMP_127 \def (CHead 
+e2 TMP_126 u) in (eq C e1 TMP_127))))))) in (let TMP_131 \def (\lambda (b: 
+B).(\lambda (_: C).(\lambda (e3: C).(\lambda (u: T).(let TMP_129 \def (Bind 
+b) in (let TMP_130 \def (CHead e3 TMP_129 u) in (getl n c3 TMP_130))))))) in 
+(let TMP_134 \def (\lambda (_: B).(\lambda (e2: C).(\lambda (e3: C).(\lambda 
+(_: T).(let TMP_132 \def (S n) in (let TMP_133 \def (minus i TMP_132) in 
+(csubst0 TMP_133 v e2 e3))))))) in (let TMP_138 \def (\lambda (e2: C).(let 
+TMP_135 \def (S n) in (let TMP_136 \def (minus i TMP_135) in (let TMP_137 
+\def (S TMP_136) in (csubst1 TMP_137 v e1 e2))))) in (let TMP_139 \def 
+(\lambda (e2: C).(getl n c3 e2)) in (let TMP_140 \def (ex2 C TMP_138 TMP_139) 
+in (let TMP_170 \def (\lambda (x0: B).(\lambda (x1: C).(\lambda (x2: 
+C).(\lambda (x3: T).(\lambda (H5: (eq C e1 (CHead x1 (Bind x0) x3))).(\lambda 
+(H6: (getl n c3 (CHead x2 (Bind x0) x3))).(\lambda (H7: (csubst0 (minus i (S 
+n)) v x1 x2)).(let TMP_141 \def (Bind x0) in (let TMP_142 \def (CHead x1 
+TMP_141 x3) in (let TMP_148 \def (\lambda (c: C).(let TMP_146 \def (\lambda 
+(e2: C).(let TMP_143 \def (S n) in (let TMP_144 \def (minus i TMP_143) in 
+(let TMP_145 \def (S TMP_144) in (csubst1 TMP_145 v c e2))))) in (let TMP_147 
+\def (\lambda (e2: C).(getl n c3 e2)) in (ex2 C TMP_146 TMP_147)))) in (let 
+TMP_154 \def (\lambda (e2: C).(let TMP_149 \def (S n) in (let TMP_150 \def 
+(minus i TMP_149) in (let TMP_151 \def (S TMP_150) in (let TMP_152 \def (Bind 
+x0) in (let TMP_153 \def (CHead x1 TMP_152 x3) in (csubst1 TMP_151 v TMP_153 
+e2))))))) in (let TMP_155 \def (\lambda (e2: C).(getl n c3 e2)) in (let 
+TMP_156 \def (Bind x0) in (let TMP_157 \def (CHead x2 TMP_156 x3) in (let 
+TMP_158 \def (S n) in (let TMP_159 \def (minus i TMP_158) in (let TMP_160 
+\def (S TMP_159) in (let TMP_161 \def (Bind x0) in (let TMP_162 \def (CHead 
+x1 TMP_161 x3) in (let TMP_163 \def (Bind x0) in (let TMP_164 \def (CHead x2 
+TMP_163 x3) in (let TMP_165 \def (S n) in (let TMP_166 \def (minus i TMP_165) 
+in (let TMP_167 \def (csubst0_fst_bind x0 TMP_166 x1 x2 v H7 x3) in (let 
+TMP_168 \def (csubst1_sing TMP_160 v TMP_162 TMP_164 TMP_167) in (let TMP_169 
+\def (ex_intro2 C TMP_154 TMP_155 TMP_157 TMP_168 H6) in (eq_ind_r C TMP_142 
+TMP_148 TMP_169 e1 H5))))))))))))))))))))))))))) in (ex3_4_ind B C C T 
+TMP_128 TMP_131 TMP_134 TMP_140 TMP_170 H4))))))))) in (let TMP_220 \def 
+(\lambda (H4: (ex4_5 B C C T T (\lambda (b: B).(\lambda (e2: C).(\lambda (_: 
+C).(\lambda (u: T).(\lambda (_: T).(eq C e1 (CHead e2 (Bind b) u))))))) 
+(\lambda (b: B).(\lambda (_: C).(\lambda (e3: C).(\lambda (_: T).(\lambda (w: 
+T).(getl n c3 (CHead e3 (Bind b) w))))))) (\lambda (_: B).(\lambda (_: 
+C).(\lambda (_: C).(\lambda (u: T).(\lambda (w: T).(subst0 (minus i (S n)) v 
+u w)))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (e3: C).(\lambda (_: 
+T).(\lambda (_: T).(csubst0 (minus i (S n)) v e2 e3)))))))).(let TMP_174 \def 
+(\lambda (b: B).(\lambda (e2: C).(\lambda (_: C).(\lambda (u: T).(\lambda (_: 
+T).(let TMP_172 \def (Bind b) in (let TMP_173 \def (CHead e2 TMP_172 u) in 
+(eq C e1 TMP_173)))))))) in (let TMP_177 \def (\lambda (b: B).(\lambda (_: 
+C).(\lambda (e3: C).(\lambda (_: T).(\lambda (w: T).(let TMP_175 \def (Bind 
+b) in (let TMP_176 \def (CHead e3 TMP_175 w) in (getl n c3 TMP_176)))))))) in 
+(let TMP_180 \def (\lambda (_: B).(\lambda (_: C).(\lambda (_: C).(\lambda 
+(u: T).(\lambda (w: T).(let TMP_178 \def (S n) in (let TMP_179 \def (minus i 
+TMP_178) in (subst0 TMP_179 v u w)))))))) in (let TMP_183 \def (\lambda (_: 
+B).(\lambda (e2: C).(\lambda (e3: C).(\lambda (_: T).(\lambda (_: T).(let 
+TMP_181 \def (S n) in (let TMP_182 \def (minus i TMP_181) in (csubst0 TMP_182 
+v e2 e3)))))))) in (let TMP_187 \def (\lambda (e2: C).(let TMP_184 \def (S n) 
+in (let TMP_185 \def (minus i TMP_184) in (let TMP_186 \def (S TMP_185) in 
+(csubst1 TMP_186 v e1 e2))))) in (let TMP_188 \def (\lambda (e2: C).(getl n 
+c3 e2)) in (let TMP_189 \def (ex2 C TMP_187 TMP_188) in (let TMP_219 \def 
+(\lambda (x0: B).(\lambda (x1: C).(\lambda (x2: C).(\lambda (x3: T).(\lambda 
+(x4: T).(\lambda (H5: (eq C e1 (CHead x1 (Bind x0) x3))).(\lambda (H6: (getl 
+n c3 (CHead x2 (Bind x0) x4))).(\lambda (H7: (subst0 (minus i (S n)) v x3 
+x4)).(\lambda (H8: (csubst0 (minus i (S n)) v x1 x2)).(let TMP_190 \def (Bind 
+x0) in (let TMP_191 \def (CHead x1 TMP_190 x3) in (let TMP_197 \def (\lambda 
+(c: C).(let TMP_195 \def (\lambda (e2: C).(let TMP_192 \def (S n) in (let 
+TMP_193 \def (minus i TMP_192) in (let TMP_194 \def (S TMP_193) in (csubst1 
+TMP_194 v c e2))))) in (let TMP_196 \def (\lambda (e2: C).(getl n c3 e2)) in 
+(ex2 C TMP_195 TMP_196)))) in (let TMP_203 \def (\lambda (e2: C).(let TMP_198 
+\def (S n) in (let TMP_199 \def (minus i TMP_198) in (let TMP_200 \def (S 
+TMP_199) in (let TMP_201 \def (Bind x0) in (let TMP_202 \def (CHead x1 
+TMP_201 x3) in (csubst1 TMP_200 v TMP_202 e2))))))) in (let TMP_204 \def 
+(\lambda (e2: C).(getl n c3 e2)) in (let TMP_205 \def (Bind x0) in (let 
+TMP_206 \def (CHead x2 TMP_205 x4) in (let TMP_207 \def (S n) in (let TMP_208 
+\def (minus i TMP_207) in (let TMP_209 \def (S TMP_208) in (let TMP_210 \def 
+(Bind x0) in (let TMP_211 \def (CHead x1 TMP_210 x3) in (let TMP_212 \def 
+(Bind x0) in (let TMP_213 \def (CHead x2 TMP_212 x4) in (let TMP_214 \def (S 
+n) in (let TMP_215 \def (minus i TMP_214) in (let TMP_216 \def 
+(csubst0_both_bind x0 TMP_215 v x3 x4 H7 x1 x2 H8) in (let TMP_217 \def 
+(csubst1_sing TMP_209 v TMP_211 TMP_213 TMP_216) in (let TMP_218 \def 
+(ex_intro2 C TMP_203 TMP_204 TMP_206 TMP_217 H6) in (eq_ind_r C TMP_191 
+TMP_197 TMP_218 e1 H5))))))))))))))))))))))))))))) in (ex4_5_ind B C C T T 
+TMP_174 TMP_177 TMP_180 TMP_183 TMP_189 TMP_219 H4)))))))))) in (let TMP_221 
+\def (or4_ind TMP_30 TMP_40 TMP_50 TMP_63 TMP_69 TMP_79 TMP_125 TMP_171 
+TMP_220 H3) in (let TMP_222 \def (minus i n) in (let TMP_223 \def (minus_x_Sy 
+i n H) in (eq_ind_r nat TMP_26 TMP_29 TMP_221 TMP_222 
+TMP_223)))))))))))))))))))))))))))))))))) in (csubst1_ind i v c1 TMP_4 TMP_23 
+TMP_224 c2 H0)))))))))).
 
 theorem csubst1_getl_ge_back:
  \forall (i: nat).(\forall (n: nat).((le i n) \to (\forall (c1: C).(\forall 
@@ -149,14 +232,12 @@ theorem csubst1_getl_ge_back:
 e) \to (getl n c1 e)))))))))
 \def
  \lambda (i: nat).(\lambda (n: nat).(\lambda (H: (le i n)).(\lambda (c1: 
-C).(\lambda (c2: C).(\lambda (v: T).(\lambda (H0: (csubst1 i v c1 
-c2)).(csubst1_ind i v c1 (\lambda (c: C).(\forall (e: C).((getl n c e) \to 
-(getl n c1 e)))) (\lambda (e: C).(\lambda (H1: (getl n c1 e)).H1)) (\lambda 
-(c3: C).(\lambda (H1: (csubst0 i v c1 c3)).(\lambda (e: C).(\lambda (H2: 
-(getl n c3 e)).(csubst0_getl_ge_back i n H c1 c3 v H1 e H2))))) c2 H0))))))).
-(* COMMENTS
-Initial nodes: 111
-END *)
+C).(\lambda (c2: C).(\lambda (v: T).(\lambda (H0: (csubst1 i v c1 c2)).(let 
+TMP_1 \def (\lambda (c: C).(\forall (e: C).((getl n c e) \to (getl n c1 e)))) 
+in (let TMP_2 \def (\lambda (e: C).(\lambda (H1: (getl n c1 e)).H1)) in (let 
+TMP_3 \def (\lambda (c3: C).(\lambda (H1: (csubst0 i v c1 c3)).(\lambda (e: 
+C).(\lambda (H2: (getl n c3 e)).(csubst0_getl_ge_back i n H c1 c3 v H1 e 
+H2))))) in (csubst1_ind i v c1 TMP_1 TMP_2 TMP_3 c2 H0)))))))))).
 
 theorem getl_csubst1:
  \forall (d: nat).(\forall (c: C).(\forall (e: C).(\forall (u: T).((getl d c 
@@ -164,120 +245,219 @@ theorem getl_csubst1:
 C).(csubst1 d u c a0))) (\lambda (a0: C).(\lambda (a: C).(drop (S O) d a0 
 a))))))))
 \def
- \lambda (d: nat).(nat_ind (\lambda (n: nat).(\forall (c: C).(\forall (e: 
-C).(\forall (u: T).((getl n c (CHead e (Bind Abbr) u)) \to (ex2_2 C C 
-(\lambda (a0: C).(\lambda (_: C).(csubst1 n u c a0))) (\lambda (a0: 
-C).(\lambda (a: C).(drop (S O) n a0 a))))))))) (\lambda (c: C).(C_ind 
-(\lambda (c0: C).(\forall (e: C).(\forall (u: T).((getl O c0 (CHead e (Bind 
-Abbr) u)) \to (ex2_2 C C (\lambda (a0: C).(\lambda (_: C).(csubst1 O u c0 
-a0))) (\lambda (a0: C).(\lambda (a: C).(drop (S O) O a0 a)))))))) (\lambda 
-(n: nat).(\lambda (e: C).(\lambda (u: T).(\lambda (H: (getl O (CSort n) 
-(CHead e (Bind Abbr) u))).(getl_gen_sort n O (CHead e (Bind Abbr) u) H (ex2_2 
-C C (\lambda (a0: C).(\lambda (_: C).(csubst1 O u (CSort n) a0))) (\lambda 
-(a0: C).(\lambda (a: C).(drop (S O) O a0 a))))))))) (\lambda (c0: C).(\lambda 
-(H: ((\forall (e: C).(\forall (u: T).((getl O c0 (CHead e (Bind Abbr) u)) \to 
-(ex2_2 C C (\lambda (a0: C).(\lambda (_: C).(csubst1 O u c0 a0))) (\lambda 
-(a0: C).(\lambda (a: C).(drop (S O) O a0 a))))))))).(\lambda (k: K).(K_ind 
-(\lambda (k0: K).(\forall (t: T).(\forall (e: C).(\forall (u: T).((getl O 
-(CHead c0 k0 t) (CHead e (Bind Abbr) u)) \to (ex2_2 C C (\lambda (a0: 
-C).(\lambda (_: C).(csubst1 O u (CHead c0 k0 t) a0))) (\lambda (a0: 
-C).(\lambda (a: C).(drop (S O) O a0 a))))))))) (\lambda (b: B).(\lambda (t: 
-T).(\lambda (e: C).(\lambda (u: T).(\lambda (H0: (getl O (CHead c0 (Bind b) 
-t) (CHead e (Bind Abbr) u))).(let H1 \def (f_equal C C (\lambda (e0: 
-C).(match e0 in C return (\lambda (_: C).C) with [(CSort _) \Rightarrow e | 
-(CHead c1 _ _) \Rightarrow c1])) (CHead e (Bind Abbr) u) (CHead c0 (Bind b) 
-t) (clear_gen_bind b c0 (CHead e (Bind Abbr) u) t (getl_gen_O (CHead c0 (Bind 
-b) t) (CHead e (Bind Abbr) u) H0))) in ((let H2 \def (f_equal C B (\lambda 
-(e0: C).(match e0 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 e 
-(Bind Abbr) u) (CHead c0 (Bind b) t) (clear_gen_bind b c0 (CHead e (Bind 
-Abbr) u) t (getl_gen_O (CHead c0 (Bind b) t) (CHead e (Bind Abbr) u) H0))) in 
-((let H3 \def (f_equal C T (\lambda (e0: C).(match e0 in C return (\lambda 
-(_: C).T) with [(CSort _) \Rightarrow u | (CHead _ _ t0) \Rightarrow t0])) 
-(CHead e (Bind Abbr) u) (CHead c0 (Bind b) t) (clear_gen_bind b c0 (CHead e 
-(Bind Abbr) u) t (getl_gen_O (CHead c0 (Bind b) t) (CHead e (Bind Abbr) u) 
-H0))) in (\lambda (H4: (eq B Abbr b)).(\lambda (_: (eq C e c0)).(eq_ind_r T t 
-(\lambda (t0: T).(ex2_2 C C (\lambda (a0: C).(\lambda (_: C).(csubst1 O t0 
-(CHead c0 (Bind b) t) a0))) (\lambda (a0: C).(\lambda (a: C).(drop (S O) O a0 
-a))))) (eq_ind B Abbr (\lambda (b0: B).(ex2_2 C C (\lambda (a0: C).(\lambda 
-(_: C).(csubst1 O t (CHead c0 (Bind b0) t) a0))) (\lambda (a0: C).(\lambda 
-(a: C).(drop (S O) O a0 a))))) (ex2_2_intro C C (\lambda (a0: C).(\lambda (_: 
-C).(csubst1 O t (CHead c0 (Bind Abbr) t) a0))) (\lambda (a0: C).(\lambda (a: 
-C).(drop (S O) O a0 a))) (CHead c0 (Bind Abbr) t) c0 (csubst1_refl O t (CHead 
-c0 (Bind Abbr) t)) (drop_drop (Bind Abbr) O c0 c0 (drop_refl c0) t)) b H4) u 
-H3)))) H2)) H1))))))) (\lambda (f: F).(\lambda (t: T).(\lambda (e: 
-C).(\lambda (u: T).(\lambda (H0: (getl O (CHead c0 (Flat f) t) (CHead e (Bind 
-Abbr) u))).(let H_x \def (subst1_ex u t O) in (let H1 \def H_x in (ex_ind T 
-(\lambda (t2: T).(subst1 O u t (lift (S O) O t2))) (ex2_2 C C (\lambda (a0: 
-C).(\lambda (_: C).(csubst1 O u (CHead c0 (Flat f) t) a0))) (\lambda (a0: 
-C).(\lambda (a: C).(drop (S O) O a0 a)))) (\lambda (x: T).(\lambda (H2: 
-(subst1 O u t (lift (S O) O x))).(let H3 \def (H e u (getl_intro O c0 (CHead 
-e (Bind Abbr) u) c0 (drop_refl c0) (clear_gen_flat f c0 (CHead e (Bind Abbr) 
-u) t (getl_gen_O (CHead c0 (Flat f) t) (CHead e (Bind Abbr) u) H0)))) in 
-(ex2_2_ind C C (\lambda (a0: C).(\lambda (_: C).(csubst1 O u c0 a0))) 
-(\lambda (a0: C).(\lambda (a: C).(drop (S O) O a0 a))) (ex2_2 C C (\lambda 
-(a0: C).(\lambda (_: C).(csubst1 O u (CHead c0 (Flat f) t) a0))) (\lambda 
-(a0: C).(\lambda (a: C).(drop (S O) O a0 a)))) (\lambda (x0: C).(\lambda (x1: 
-C).(\lambda (H4: (csubst1 O u c0 x0)).(\lambda (H5: (drop (S O) O x0 
-x1)).(ex2_2_intro C C (\lambda (a0: C).(\lambda (_: C).(csubst1 O u (CHead c0 
-(Flat f) t) a0))) (\lambda (a0: C).(\lambda (a: C).(drop (S O) O a0 a))) 
-(CHead x0 (Flat f) (lift (S O) O x)) x1 (csubst1_flat f O u t (lift (S O) O 
-x) H2 c0 x0 H4) (drop_drop (Flat f) O x0 x1 H5 (lift (S O) O x))))))) H3)))) 
-H1)))))))) k)))) c)) (\lambda (n: nat).(\lambda (H: ((\forall (c: C).(\forall 
-(e: C).(\forall (u: T).((getl n c (CHead e (Bind Abbr) u)) \to (ex2_2 C C 
-(\lambda (a0: C).(\lambda (_: C).(csubst1 n u c a0))) (\lambda (a0: 
-C).(\lambda (a: C).(drop (S O) n a0 a)))))))))).(\lambda (c: C).(C_ind 
-(\lambda (c0: C).(\forall (e: C).(\forall (u: T).((getl (S n) c0 (CHead e 
-(Bind Abbr) u)) \to (ex2_2 C C (\lambda (a0: C).(\lambda (_: C).(csubst1 (S 
-n) u c0 a0))) (\lambda (a0: C).(\lambda (a: C).(drop (S O) (S n) a0 a)))))))) 
+ \lambda (d: nat).(let TMP_4 \def (\lambda (n: nat).(\forall (c: C).(\forall 
+(e: C).(\forall (u: T).((getl n c (CHead e (Bind Abbr) u)) \to (let TMP_1 
+\def (\lambda (a0: C).(\lambda (_: C).(csubst1 n u c a0))) in (let TMP_3 \def 
+(\lambda (a0: C).(\lambda (a: C).(let TMP_2 \def (S O) in (drop TMP_2 n a0 
+a)))) in (ex2_2 C C TMP_1 TMP_3)))))))) in (let TMP_141 \def (\lambda (c: 
+C).(let TMP_8 \def (\lambda (c0: C).(\forall (e: C).(\forall (u: T).((getl O 
+c0 (CHead e (Bind Abbr) u)) \to (let TMP_5 \def (\lambda (a0: C).(\lambda (_: 
+C).(csubst1 O u c0 a0))) in (let TMP_7 \def (\lambda (a0: C).(\lambda (a: 
+C).(let TMP_6 \def (S O) in (drop TMP_6 O a0 a)))) in (ex2_2 C C TMP_5 
+TMP_7))))))) in (let TMP_16 \def (\lambda (n: nat).(\lambda (e: C).(\lambda 
+(u: T).(\lambda (H: (getl O (CSort n) (CHead e (Bind Abbr) u))).(let TMP_9 
+\def (Bind Abbr) in (let TMP_10 \def (CHead e TMP_9 u) in (let TMP_12 \def 
+(\lambda (a0: C).(\lambda (_: C).(let TMP_11 \def (CSort n) in (csubst1 O u 
+TMP_11 a0)))) in (let TMP_14 \def (\lambda (a0: C).(\lambda (a: C).(let 
+TMP_13 \def (S O) in (drop TMP_13 O a0 a)))) in (let TMP_15 \def (ex2_2 C C 
+TMP_12 TMP_14) in (getl_gen_sort n O TMP_10 H TMP_15)))))))))) in (let 
+TMP_140 \def (\lambda (c0: C).(\lambda (H: ((\forall (e: C).(\forall (u: 
+T).((getl O c0 (CHead e (Bind Abbr) u)) \to (ex2_2 C C (\lambda (a0: 
+C).(\lambda (_: C).(csubst1 O u c0 a0))) (\lambda (a0: C).(\lambda (a: 
+C).(drop (S O) O a0 a))))))))).(\lambda (k: K).(let TMP_21 \def (\lambda (k0: 
+K).(\forall (t: T).(\forall (e: C).(\forall (u: T).((getl O (CHead c0 k0 t) 
+(CHead e (Bind Abbr) u)) \to (let TMP_18 \def (\lambda (a0: C).(\lambda (_: 
+C).(let TMP_17 \def (CHead c0 k0 t) in (csubst1 O u TMP_17 a0)))) in (let 
+TMP_20 \def (\lambda (a0: C).(\lambda (a: C).(let TMP_19 \def (S O) in (drop 
+TMP_19 O a0 a)))) in (ex2_2 C C TMP_18 TMP_20)))))))) in (let TMP_90 \def 
+(\lambda (b: B).(\lambda (t: T).(\lambda (e: C).(\lambda (u: T).(\lambda (H0: 
+(getl O (CHead c0 (Bind b) t) (CHead e (Bind Abbr) u))).(let TMP_22 \def 
+(\lambda (e0: C).(match e0 with [(CSort _) \Rightarrow e | (CHead c1 _ _) 
+\Rightarrow c1])) in (let TMP_23 \def (Bind Abbr) in (let TMP_24 \def (CHead 
+e TMP_23 u) in (let TMP_25 \def (Bind b) in (let TMP_26 \def (CHead c0 TMP_25 
+t) in (let TMP_27 \def (Bind Abbr) in (let TMP_28 \def (CHead e TMP_27 u) in 
+(let TMP_29 \def (Bind b) in (let TMP_30 \def (CHead c0 TMP_29 t) in (let 
+TMP_31 \def (Bind Abbr) in (let TMP_32 \def (CHead e TMP_31 u) in (let TMP_33 
+\def (getl_gen_O TMP_30 TMP_32 H0) in (let TMP_34 \def (clear_gen_bind b c0 
+TMP_28 t TMP_33) in (let H1 \def (f_equal C C TMP_22 TMP_24 TMP_26 TMP_34) in 
+(let TMP_35 \def (\lambda (e0: C).(match e0 with [(CSort _) \Rightarrow Abbr 
+| (CHead _ k0 _) \Rightarrow (match k0 with [(Bind b0) \Rightarrow b0 | (Flat 
+_) \Rightarrow Abbr])])) in (let TMP_36 \def (Bind Abbr) in (let TMP_37 \def 
+(CHead e TMP_36 u) in (let TMP_38 \def (Bind b) in (let TMP_39 \def (CHead c0 
+TMP_38 t) in (let TMP_40 \def (Bind Abbr) in (let TMP_41 \def (CHead e TMP_40 
+u) in (let TMP_42 \def (Bind b) in (let TMP_43 \def (CHead c0 TMP_42 t) in 
+(let TMP_44 \def (Bind Abbr) in (let TMP_45 \def (CHead e TMP_44 u) in (let 
+TMP_46 \def (getl_gen_O TMP_43 TMP_45 H0) in (let TMP_47 \def (clear_gen_bind 
+b c0 TMP_41 t TMP_46) in (let H2 \def (f_equal C B TMP_35 TMP_37 TMP_39 
+TMP_47) in (let TMP_48 \def (\lambda (e0: C).(match e0 with [(CSort _) 
+\Rightarrow u | (CHead _ _ t0) \Rightarrow t0])) in (let TMP_49 \def (Bind 
+Abbr) in (let TMP_50 \def (CHead e TMP_49 u) in (let TMP_51 \def (Bind b) in 
+(let TMP_52 \def (CHead c0 TMP_51 t) in (let TMP_53 \def (Bind Abbr) in (let 
+TMP_54 \def (CHead e TMP_53 u) in (let TMP_55 \def (Bind b) in (let TMP_56 
+\def (CHead c0 TMP_55 t) in (let TMP_57 \def (Bind Abbr) in (let TMP_58 \def 
+(CHead e TMP_57 u) in (let TMP_59 \def (getl_gen_O TMP_56 TMP_58 H0) in (let 
+TMP_60 \def (clear_gen_bind b c0 TMP_54 t TMP_59) in (let H3 \def (f_equal C 
+T TMP_48 TMP_50 TMP_52 TMP_60) in (let TMP_88 \def (\lambda (H4: (eq B Abbr 
+b)).(\lambda (_: (eq C e c0)).(let TMP_66 \def (\lambda (t0: T).(let TMP_63 
+\def (\lambda (a0: C).(\lambda (_: C).(let TMP_61 \def (Bind b) in (let 
+TMP_62 \def (CHead c0 TMP_61 t) in (csubst1 O t0 TMP_62 a0))))) in (let 
+TMP_65 \def (\lambda (a0: C).(\lambda (a: C).(let TMP_64 \def (S O) in (drop 
+TMP_64 O a0 a)))) in (ex2_2 C C TMP_63 TMP_65)))) in (let TMP_72 \def 
+(\lambda (b0: B).(let TMP_69 \def (\lambda (a0: C).(\lambda (_: C).(let 
+TMP_67 \def (Bind b0) in (let TMP_68 \def (CHead c0 TMP_67 t) in (csubst1 O t 
+TMP_68 a0))))) in (let TMP_71 \def (\lambda (a0: C).(\lambda (a: C).(let 
+TMP_70 \def (S O) in (drop TMP_70 O a0 a)))) in (ex2_2 C C TMP_69 TMP_71)))) 
+in (let TMP_75 \def (\lambda (a0: C).(\lambda (_: C).(let TMP_73 \def (Bind 
+Abbr) in (let TMP_74 \def (CHead c0 TMP_73 t) in (csubst1 O t TMP_74 a0))))) 
+in (let TMP_77 \def (\lambda (a0: C).(\lambda (a: C).(let TMP_76 \def (S O) 
+in (drop TMP_76 O a0 a)))) in (let TMP_78 \def (Bind Abbr) in (let TMP_79 
+\def (CHead c0 TMP_78 t) in (let TMP_80 \def (Bind Abbr) in (let TMP_81 \def 
+(CHead c0 TMP_80 t) in (let TMP_82 \def (csubst1_refl O t TMP_81) in (let 
+TMP_83 \def (Bind Abbr) in (let TMP_84 \def (drop_refl c0) in (let TMP_85 
+\def (drop_drop TMP_83 O c0 c0 TMP_84 t) in (let TMP_86 \def (ex2_2_intro C C 
+TMP_75 TMP_77 TMP_79 c0 TMP_82 TMP_85) in (let TMP_87 \def (eq_ind B Abbr 
+TMP_72 TMP_86 b H4) in (eq_ind_r T t TMP_66 TMP_87 u H3))))))))))))))))) in 
+(let TMP_89 \def (TMP_88 H2) in (TMP_89 
+H1)))))))))))))))))))))))))))))))))))))))))))))))))) in (let TMP_139 \def 
+(\lambda (f: F).(\lambda (t: T).(\lambda (e: C).(\lambda (u: T).(\lambda (H0: 
+(getl O (CHead c0 (Flat f) t) (CHead e (Bind Abbr) u))).(let H_x \def 
+(subst1_ex u t O) in (let H1 \def H_x in (let TMP_93 \def (\lambda (t2: 
+T).(let TMP_91 \def (S O) in (let TMP_92 \def (lift TMP_91 O t2) in (subst1 O 
+u t TMP_92)))) in (let TMP_96 \def (\lambda (a0: C).(\lambda (_: C).(let 
+TMP_94 \def (Flat f) in (let TMP_95 \def (CHead c0 TMP_94 t) in (csubst1 O u 
+TMP_95 a0))))) in (let TMP_98 \def (\lambda (a0: C).(\lambda (a: C).(let 
+TMP_97 \def (S O) in (drop TMP_97 O a0 a)))) in (let TMP_99 \def (ex2_2 C C 
+TMP_96 TMP_98) in (let TMP_138 \def (\lambda (x: T).(\lambda (H2: (subst1 O u 
+t (lift (S O) O x))).(let TMP_100 \def (Bind Abbr) in (let TMP_101 \def 
+(CHead e TMP_100 u) in (let TMP_102 \def (drop_refl c0) in (let TMP_103 \def 
+(Bind Abbr) in (let TMP_104 \def (CHead e TMP_103 u) in (let TMP_105 \def 
+(Flat f) in (let TMP_106 \def (CHead c0 TMP_105 t) in (let TMP_107 \def (Bind 
+Abbr) in (let TMP_108 \def (CHead e TMP_107 u) in (let TMP_109 \def 
+(getl_gen_O TMP_106 TMP_108 H0) in (let TMP_110 \def (clear_gen_flat f c0 
+TMP_104 t TMP_109) in (let TMP_111 \def (getl_intro O c0 TMP_101 c0 TMP_102 
+TMP_110) in (let H3 \def (H e u TMP_111) in (let TMP_112 \def (\lambda (a0: 
+C).(\lambda (_: C).(csubst1 O u c0 a0))) in (let TMP_114 \def (\lambda (a0: 
+C).(\lambda (a: C).(let TMP_113 \def (S O) in (drop TMP_113 O a0 a)))) in 
+(let TMP_117 \def (\lambda (a0: C).(\lambda (_: C).(let TMP_115 \def (Flat f) 
+in (let TMP_116 \def (CHead c0 TMP_115 t) in (csubst1 O u TMP_116 a0))))) in 
+(let TMP_119 \def (\lambda (a0: C).(\lambda (a: C).(let TMP_118 \def (S O) in 
+(drop TMP_118 O a0 a)))) in (let TMP_120 \def (ex2_2 C C TMP_117 TMP_119) in 
+(let TMP_137 \def (\lambda (x0: C).(\lambda (x1: C).(\lambda (H4: (csubst1 O 
+u c0 x0)).(\lambda (H5: (drop (S O) O x0 x1)).(let TMP_123 \def (\lambda (a0: 
+C).(\lambda (_: C).(let TMP_121 \def (Flat f) in (let TMP_122 \def (CHead c0 
+TMP_121 t) in (csubst1 O u TMP_122 a0))))) in (let TMP_125 \def (\lambda (a0: 
+C).(\lambda (a: C).(let TMP_124 \def (S O) in (drop TMP_124 O a0 a)))) in 
+(let TMP_126 \def (Flat f) in (let TMP_127 \def (S O) in (let TMP_128 \def 
+(lift TMP_127 O x) in (let TMP_129 \def (CHead x0 TMP_126 TMP_128) in (let 
+TMP_130 \def (S O) in (let TMP_131 \def (lift TMP_130 O x) in (let TMP_132 
+\def (csubst1_flat f O u t TMP_131 H2 c0 x0 H4) in (let TMP_133 \def (Flat f) 
+in (let TMP_134 \def (S O) in (let TMP_135 \def (lift TMP_134 O x) in (let 
+TMP_136 \def (drop_drop TMP_133 O x0 x1 H5 TMP_135) in (ex2_2_intro C C 
+TMP_123 TMP_125 TMP_129 x1 TMP_132 TMP_136)))))))))))))))))) in (ex2_2_ind C 
+C TMP_112 TMP_114 TMP_120 TMP_137 H3)))))))))))))))))))))) in (ex_ind T 
+TMP_93 TMP_99 TMP_138 H1))))))))))))) in (K_ind TMP_21 TMP_90 TMP_139 
+k))))))) in (C_ind TMP_8 TMP_16 TMP_140 c))))) in (let TMP_269 \def (\lambda 
+(n: nat).(\lambda (H: ((\forall (c: C).(\forall (e: C).(\forall (u: T).((getl 
+n c (CHead e (Bind Abbr) u)) \to (ex2_2 C C (\lambda (a0: C).(\lambda (_: 
+C).(csubst1 n u c a0))) (\lambda (a0: C).(\lambda (a: C).(drop (S O) n a0 
+a)))))))))).(\lambda (c: C).(let TMP_147 \def (\lambda (c0: C).(\forall (e: 
+C).(\forall (u: T).((getl (S n) c0 (CHead e (Bind Abbr) u)) \to (let TMP_143 
+\def (\lambda (a0: C).(\lambda (_: C).(let TMP_142 \def (S n) in (csubst1 
+TMP_142 u c0 a0)))) in (let TMP_146 \def (\lambda (a0: C).(\lambda (a: 
+C).(let TMP_144 \def (S O) in (let TMP_145 \def (S n) in (drop TMP_144 
+TMP_145 a0 a))))) in (ex2_2 C C TMP_143 TMP_146))))))) in (let TMP_158 \def 
 (\lambda (n0: nat).(\lambda (e: C).(\lambda (u: T).(\lambda (H0: (getl (S n) 
-(CSort n0) (CHead e (Bind Abbr) u))).(getl_gen_sort n0 (S n) (CHead e (Bind 
-Abbr) u) H0 (ex2_2 C C (\lambda (a0: C).(\lambda (_: C).(csubst1 (S n) u 
-(CSort n0) a0))) (\lambda (a0: C).(\lambda (a: C).(drop (S O) (S n) a0 
-a))))))))) (\lambda (c0: C).(\lambda (H0: ((\forall (e: C).(\forall (u: 
-T).((getl (S n) c0 (CHead e (Bind Abbr) u)) \to (ex2_2 C C (\lambda (a0: 
+(CSort n0) (CHead e (Bind Abbr) u))).(let TMP_148 \def (S n) in (let TMP_149 
+\def (Bind Abbr) in (let TMP_150 \def (CHead e TMP_149 u) in (let TMP_153 
+\def (\lambda (a0: C).(\lambda (_: C).(let TMP_151 \def (S n) in (let TMP_152 
+\def (CSort n0) in (csubst1 TMP_151 u TMP_152 a0))))) in (let TMP_156 \def 
+(\lambda (a0: C).(\lambda (a: C).(let TMP_154 \def (S O) in (let TMP_155 \def 
+(S n) in (drop TMP_154 TMP_155 a0 a))))) in (let TMP_157 \def (ex2_2 C C 
+TMP_153 TMP_156) in (getl_gen_sort n0 TMP_148 TMP_150 H0 TMP_157))))))))))) 
+in (let TMP_268 \def (\lambda (c0: C).(\lambda (H0: ((\forall (e: C).(\forall 
+(u: T).((getl (S n) c0 (CHead e (Bind Abbr) u)) \to (ex2_2 C C (\lambda (a0: 
 C).(\lambda (_: C).(csubst1 (S n) u c0 a0))) (\lambda (a0: C).(\lambda (a: 
-C).(drop (S O) (S n) a0 a))))))))).(\lambda (k: K).(K_ind (\lambda (k0: 
-K).(\forall (t: T).(\forall (e: C).(\forall (u: T).((getl (S n) (CHead c0 k0 
-t) (CHead e (Bind Abbr) u)) \to (ex2_2 C C (\lambda (a0: C).(\lambda (_: 
-C).(csubst1 (S n) u (CHead c0 k0 t) a0))) (\lambda (a0: C).(\lambda (a: 
-C).(drop (S O) (S n) a0 a))))))))) (\lambda (b: B).(\lambda (t: T).(\lambda 
-(e: C).(\lambda (u: T).(\lambda (H1: (getl (S n) (CHead c0 (Bind b) t) (CHead 
-e (Bind Abbr) u))).(let H_x \def (subst1_ex u t n) in (let H2 \def H_x in 
-(ex_ind T (\lambda (t2: T).(subst1 n u t (lift (S O) n t2))) (ex2_2 C C 
-(\lambda (a0: C).(\lambda (_: C).(csubst1 (S n) u (CHead c0 (Bind b) t) a0))) 
-(\lambda (a0: C).(\lambda (a: C).(drop (S O) (S n) a0 a)))) (\lambda (x: 
-T).(\lambda (H3: (subst1 n u t (lift (S O) n x))).(let H4 \def (H c0 e u 
-(getl_gen_S (Bind b) c0 (CHead e (Bind Abbr) u) t n H1)) in (ex2_2_ind C C 
-(\lambda (a0: C).(\lambda (_: C).(csubst1 n u c0 a0))) (\lambda (a0: 
-C).(\lambda (a: C).(drop (S O) n a0 a))) (ex2_2 C C (\lambda (a0: C).(\lambda 
-(_: C).(csubst1 (S n) u (CHead c0 (Bind b) t) a0))) (\lambda (a0: C).(\lambda 
-(a: C).(drop (S O) (S n) a0 a)))) (\lambda (x0: C).(\lambda (x1: C).(\lambda 
-(H5: (csubst1 n u c0 x0)).(\lambda (H6: (drop (S O) n x0 x1)).(ex2_2_intro C 
-C (\lambda (a0: C).(\lambda (_: C).(csubst1 (S n) u (CHead c0 (Bind b) t) 
-a0))) (\lambda (a0: C).(\lambda (a: C).(drop (S O) (S n) a0 a))) (CHead x0 
-(Bind b) (lift (S O) n x)) (CHead x1 (Bind b) x) (csubst1_bind b n u t (lift 
-(S O) n x) H3 c0 x0 H5) (drop_skip_bind (S O) n x0 x1 H6 b x)))))) H4)))) 
-H2)))))))) (\lambda (f: F).(\lambda (t: T).(\lambda (e: C).(\lambda (u: 
-T).(\lambda (H1: (getl (S n) (CHead c0 (Flat f) t) (CHead e (Bind Abbr) 
-u))).(let H_x \def (subst1_ex u t (S n)) in (let H2 \def H_x in (ex_ind T 
-(\lambda (t2: T).(subst1 (S n) u t (lift (S O) (S n) t2))) (ex2_2 C C 
-(\lambda (a0: C).(\lambda (_: C).(csubst1 (S n) u (CHead c0 (Flat f) t) a0))) 
-(\lambda (a0: C).(\lambda (a: C).(drop (S O) (S n) a0 a)))) (\lambda (x: 
-T).(\lambda (H3: (subst1 (S n) u t (lift (S O) (S n) x))).(let H4 \def (H0 e 
-u (getl_gen_S (Flat f) c0 (CHead e (Bind Abbr) u) t n H1)) in (ex2_2_ind C C 
-(\lambda (a0: C).(\lambda (_: C).(csubst1 (S n) u c0 a0))) (\lambda (a0: 
-C).(\lambda (a: C).(drop (S O) (S n) a0 a))) (ex2_2 C C (\lambda (a0: 
-C).(\lambda (_: C).(csubst1 (S n) u (CHead c0 (Flat f) t) a0))) (\lambda (a0: 
-C).(\lambda (a: C).(drop (S O) (S n) a0 a)))) (\lambda (x0: C).(\lambda (x1: 
-C).(\lambda (H5: (csubst1 (S n) u c0 x0)).(\lambda (H6: (drop (S O) (S n) x0 
-x1)).(ex2_2_intro C C (\lambda (a0: C).(\lambda (_: C).(csubst1 (S n) u 
-(CHead c0 (Flat f) t) a0))) (\lambda (a0: C).(\lambda (a: C).(drop (S O) (S 
-n) a0 a))) (CHead x0 (Flat f) (lift (S O) (S n) x)) (CHead x1 (Flat f) x) 
-(csubst1_flat f (S n) u t (lift (S O) (S n) x) H3 c0 x0 H5) (drop_skip_flat 
-(S O) n x0 x1 H6 f x)))))) H4)))) H2)))))))) k)))) c)))) d).
-(* COMMENTS
-Initial nodes: 2467
-END *)
+C).(drop (S O) (S n) a0 a))))))))).(\lambda (k: K).(let TMP_165 \def (\lambda 
+(k0: K).(\forall (t: T).(\forall (e: C).(\forall (u: T).((getl (S n) (CHead 
+c0 k0 t) (CHead e (Bind Abbr) u)) \to (let TMP_161 \def (\lambda (a0: 
+C).(\lambda (_: C).(let TMP_159 \def (S n) in (let TMP_160 \def (CHead c0 k0 
+t) in (csubst1 TMP_159 u TMP_160 a0))))) in (let TMP_164 \def (\lambda (a0: 
+C).(\lambda (a: C).(let TMP_162 \def (S O) in (let TMP_163 \def (S n) in 
+(drop TMP_162 TMP_163 a0 a))))) in (ex2_2 C C TMP_161 TMP_164)))))))) in (let 
+TMP_212 \def (\lambda (b: B).(\lambda (t: T).(\lambda (e: C).(\lambda (u: 
+T).(\lambda (H1: (getl (S n) (CHead c0 (Bind b) t) (CHead e (Bind Abbr) 
+u))).(let H_x \def (subst1_ex u t n) in (let H2 \def H_x in (let TMP_168 \def 
+(\lambda (t2: T).(let TMP_166 \def (S O) in (let TMP_167 \def (lift TMP_166 n 
+t2) in (subst1 n u t TMP_167)))) in (let TMP_172 \def (\lambda (a0: 
+C).(\lambda (_: C).(let TMP_169 \def (S n) in (let TMP_170 \def (Bind b) in 
+(let TMP_171 \def (CHead c0 TMP_170 t) in (csubst1 TMP_169 u TMP_171 a0)))))) 
+in (let TMP_175 \def (\lambda (a0: C).(\lambda (a: C).(let TMP_173 \def (S O) 
+in (let TMP_174 \def (S n) in (drop TMP_173 TMP_174 a0 a))))) in (let TMP_176 
+\def (ex2_2 C C TMP_172 TMP_175) in (let TMP_211 \def (\lambda (x: 
+T).(\lambda (H3: (subst1 n u t (lift (S O) n x))).(let TMP_177 \def (Bind b) 
+in (let TMP_178 \def (Bind Abbr) in (let TMP_179 \def (CHead e TMP_178 u) in 
+(let TMP_180 \def (getl_gen_S TMP_177 c0 TMP_179 t n H1) in (let H4 \def (H 
+c0 e u TMP_180) in (let TMP_181 \def (\lambda (a0: C).(\lambda (_: 
+C).(csubst1 n u c0 a0))) in (let TMP_183 \def (\lambda (a0: C).(\lambda (a: 
+C).(let TMP_182 \def (S O) in (drop TMP_182 n a0 a)))) in (let TMP_187 \def 
+(\lambda (a0: C).(\lambda (_: C).(let TMP_184 \def (S n) in (let TMP_185 \def 
+(Bind b) in (let TMP_186 \def (CHead c0 TMP_185 t) in (csubst1 TMP_184 u 
+TMP_186 a0)))))) in (let TMP_190 \def (\lambda (a0: C).(\lambda (a: C).(let 
+TMP_188 \def (S O) in (let TMP_189 \def (S n) in (drop TMP_188 TMP_189 a0 
+a))))) in (let TMP_191 \def (ex2_2 C C TMP_187 TMP_190) in (let TMP_210 \def 
+(\lambda (x0: C).(\lambda (x1: C).(\lambda (H5: (csubst1 n u c0 x0)).(\lambda 
+(H6: (drop (S O) n x0 x1)).(let TMP_195 \def (\lambda (a0: C).(\lambda (_: 
+C).(let TMP_192 \def (S n) in (let TMP_193 \def (Bind b) in (let TMP_194 \def 
+(CHead c0 TMP_193 t) in (csubst1 TMP_192 u TMP_194 a0)))))) in (let TMP_198 
+\def (\lambda (a0: C).(\lambda (a: C).(let TMP_196 \def (S O) in (let TMP_197 
+\def (S n) in (drop TMP_196 TMP_197 a0 a))))) in (let TMP_199 \def (Bind b) 
+in (let TMP_200 \def (S O) in (let TMP_201 \def (lift TMP_200 n x) in (let 
+TMP_202 \def (CHead x0 TMP_199 TMP_201) in (let TMP_203 \def (Bind b) in (let 
+TMP_204 \def (CHead x1 TMP_203 x) in (let TMP_205 \def (S O) in (let TMP_206 
+\def (lift TMP_205 n x) in (let TMP_207 \def (csubst1_bind b n u t TMP_206 H3 
+c0 x0 H5) in (let TMP_208 \def (S O) in (let TMP_209 \def (drop_skip_bind 
+TMP_208 n x0 x1 H6 b x) in (ex2_2_intro C C TMP_195 TMP_198 TMP_202 TMP_204 
+TMP_207 TMP_209)))))))))))))))))) in (ex2_2_ind C C TMP_181 TMP_183 TMP_191 
+TMP_210 H4)))))))))))))) in (ex_ind T TMP_168 TMP_176 TMP_211 H2))))))))))))) 
+in (let TMP_267 \def (\lambda (f: F).(\lambda (t: T).(\lambda (e: C).(\lambda 
+(u: T).(\lambda (H1: (getl (S n) (CHead c0 (Flat f) t) (CHead e (Bind Abbr) 
+u))).(let TMP_213 \def (S n) in (let H_x \def (subst1_ex u t TMP_213) in (let 
+H2 \def H_x in (let TMP_218 \def (\lambda (t2: T).(let TMP_214 \def (S n) in 
+(let TMP_215 \def (S O) in (let TMP_216 \def (S n) in (let TMP_217 \def (lift 
+TMP_215 TMP_216 t2) in (subst1 TMP_214 u t TMP_217)))))) in (let TMP_222 \def 
+(\lambda (a0: C).(\lambda (_: C).(let TMP_219 \def (S n) in (let TMP_220 \def 
+(Flat f) in (let TMP_221 \def (CHead c0 TMP_220 t) in (csubst1 TMP_219 u 
+TMP_221 a0)))))) in (let TMP_225 \def (\lambda (a0: C).(\lambda (a: C).(let 
+TMP_223 \def (S O) in (let TMP_224 \def (S n) in (drop TMP_223 TMP_224 a0 
+a))))) in (let TMP_226 \def (ex2_2 C C TMP_222 TMP_225) in (let TMP_266 \def 
+(\lambda (x: T).(\lambda (H3: (subst1 (S n) u t (lift (S O) (S n) x))).(let 
+TMP_227 \def (Flat f) in (let TMP_228 \def (Bind Abbr) in (let TMP_229 \def 
+(CHead e TMP_228 u) in (let TMP_230 \def (getl_gen_S TMP_227 c0 TMP_229 t n 
+H1) in (let H4 \def (H0 e u TMP_230) in (let TMP_232 \def (\lambda (a0: 
+C).(\lambda (_: C).(let TMP_231 \def (S n) in (csubst1 TMP_231 u c0 a0)))) in 
+(let TMP_235 \def (\lambda (a0: C).(\lambda (a: C).(let TMP_233 \def (S O) in 
+(let TMP_234 \def (S n) in (drop TMP_233 TMP_234 a0 a))))) in (let TMP_239 
+\def (\lambda (a0: C).(\lambda (_: C).(let TMP_236 \def (S n) in (let TMP_237 
+\def (Flat f) in (let TMP_238 \def (CHead c0 TMP_237 t) in (csubst1 TMP_236 u 
+TMP_238 a0)))))) in (let TMP_242 \def (\lambda (a0: C).(\lambda (a: C).(let 
+TMP_240 \def (S O) in (let TMP_241 \def (S n) in (drop TMP_240 TMP_241 a0 
+a))))) in (let TMP_243 \def (ex2_2 C C TMP_239 TMP_242) in (let TMP_265 \def 
+(\lambda (x0: C).(\lambda (x1: C).(\lambda (H5: (csubst1 (S n) u c0 
+x0)).(\lambda (H6: (drop (S O) (S n) x0 x1)).(let TMP_247 \def (\lambda (a0: 
+C).(\lambda (_: C).(let TMP_244 \def (S n) in (let TMP_245 \def (Flat f) in 
+(let TMP_246 \def (CHead c0 TMP_245 t) in (csubst1 TMP_244 u TMP_246 a0)))))) 
+in (let TMP_250 \def (\lambda (a0: C).(\lambda (a: C).(let TMP_248 \def (S O) 
+in (let TMP_249 \def (S n) in (drop TMP_248 TMP_249 a0 a))))) in (let TMP_251 
+\def (Flat f) in (let TMP_252 \def (S O) in (let TMP_253 \def (S n) in (let 
+TMP_254 \def (lift TMP_252 TMP_253 x) in (let TMP_255 \def (CHead x0 TMP_251 
+TMP_254) in (let TMP_256 \def (Flat f) in (let TMP_257 \def (CHead x1 TMP_256 
+x) in (let TMP_258 \def (S n) in (let TMP_259 \def (S O) in (let TMP_260 \def 
+(S n) in (let TMP_261 \def (lift TMP_259 TMP_260 x) in (let TMP_262 \def 
+(csubst1_flat f TMP_258 u t TMP_261 H3 c0 x0 H5) in (let TMP_263 \def (S O) 
+in (let TMP_264 \def (drop_skip_flat TMP_263 n x0 x1 H6 f x) in (ex2_2_intro 
+C C TMP_247 TMP_250 TMP_255 TMP_257 TMP_262 TMP_264))))))))))))))))))))) in 
+(ex2_2_ind C C TMP_232 TMP_235 TMP_243 TMP_265 H4)))))))))))))) in (ex_ind T 
+TMP_218 TMP_226 TMP_266 H2)))))))))))))) in (K_ind TMP_165 TMP_212 TMP_267 
+k))))))) in (C_ind TMP_147 TMP_158 TMP_268 c))))))) in (nat_ind TMP_4 TMP_141 
+TMP_269 d)))).
 
index 518a865649646e32fba70256adf337d37457fcf8..30200e34b8860c696451a209df843d7b4ce01874 100644 (file)
@@ -14,9 +14,9 @@
 
 (* This file was automatically generated: do not edit *********************)
 
-include "Basic-1/csubst1/defs.ma".
+include "basic_1/csubst1/fwd.ma".
 
-include "Basic-1/subst1/defs.ma".
+include "basic_1/subst1/fwd.ma".
 
 theorem csubst1_head:
  \forall (k: K).(\forall (i: nat).(\forall (v: T).(\forall (u1: T).(\forall 
@@ -24,23 +24,32 @@ theorem csubst1_head:
 v c1 c2) \to (csubst1 (s k i) v (CHead c1 k u1) (CHead c2 k u2))))))))))
 \def
  \lambda (k: K).(\lambda (i: nat).(\lambda (v: T).(\lambda (u1: T).(\lambda 
-(u2: T).(\lambda (H: (subst1 i v u1 u2)).(subst1_ind i v u1 (\lambda (t: 
-T).(\forall (c1: C).(\forall (c2: C).((csubst1 i v c1 c2) \to (csubst1 (s k 
-i) v (CHead c1 k u1) (CHead c2 k t)))))) (\lambda (c1: C).(\lambda (c2: 
-C).(\lambda (H0: (csubst1 i v c1 c2)).(csubst1_ind i v c1 (\lambda (c: 
-C).(csubst1 (s k i) v (CHead c1 k u1) (CHead c k u1))) (csubst1_refl (s k i) 
-v (CHead c1 k u1)) (\lambda (c3: C).(\lambda (H1: (csubst0 i v c1 
-c3)).(csubst1_sing (s k i) v (CHead c1 k u1) (CHead c3 k u1) (csubst0_fst k i 
-c1 c3 v H1 u1)))) c2 H0)))) (\lambda (t2: T).(\lambda (H0: (subst0 i v u1 
-t2)).(\lambda (c1: C).(\lambda (c2: C).(\lambda (H1: (csubst1 i v c1 
-c2)).(csubst1_ind i v c1 (\lambda (c: C).(csubst1 (s k i) v (CHead c1 k u1) 
-(CHead c k t2))) (csubst1_sing (s k i) v (CHead c1 k u1) (CHead c1 k t2) 
-(csubst0_snd k i v u1 t2 H0 c1)) (\lambda (c3: C).(\lambda (H2: (csubst0 i v 
-c1 c3)).(csubst1_sing (s k i) v (CHead c1 k u1) (CHead c3 k t2) (csubst0_both 
-k i v u1 t2 H0 c1 c3 H2)))) c2 H1)))))) u2 H)))))).
-(* COMMENTS
-Initial nodes: 365
-END *)
+(u2: T).(\lambda (H: (subst1 i v u1 u2)).(let TMP_4 \def (\lambda (t: 
+T).(\forall (c1: C).(\forall (c2: C).((csubst1 i v c1 c2) \to (let TMP_1 \def 
+(s k i) in (let TMP_2 \def (CHead c1 k u1) in (let TMP_3 \def (CHead c2 k t) 
+in (csubst1 TMP_1 v TMP_2 TMP_3)))))))) in (let TMP_17 \def (\lambda (c1: 
+C).(\lambda (c2: C).(\lambda (H0: (csubst1 i v c1 c2)).(let TMP_8 \def 
+(\lambda (c: C).(let TMP_5 \def (s k i) in (let TMP_6 \def (CHead c1 k u1) in 
+(let TMP_7 \def (CHead c k u1) in (csubst1 TMP_5 v TMP_6 TMP_7))))) in (let 
+TMP_9 \def (s k i) in (let TMP_10 \def (CHead c1 k u1) in (let TMP_11 \def 
+(csubst1_refl TMP_9 v TMP_10) in (let TMP_16 \def (\lambda (c3: C).(\lambda 
+(H1: (csubst0 i v c1 c3)).(let TMP_12 \def (s k i) in (let TMP_13 \def (CHead 
+c1 k u1) in (let TMP_14 \def (CHead c3 k u1) in (let TMP_15 \def (csubst0_fst 
+k i c1 c3 v H1 u1) in (csubst1_sing TMP_12 v TMP_13 TMP_14 TMP_15))))))) in 
+(csubst1_ind i v c1 TMP_8 TMP_11 TMP_16 c2 H0))))))))) in (let TMP_32 \def 
+(\lambda (t2: T).(\lambda (H0: (subst0 i v u1 t2)).(\lambda (c1: C).(\lambda 
+(c2: C).(\lambda (H1: (csubst1 i v c1 c2)).(let TMP_21 \def (\lambda (c: 
+C).(let TMP_18 \def (s k i) in (let TMP_19 \def (CHead c1 k u1) in (let 
+TMP_20 \def (CHead c k t2) in (csubst1 TMP_18 v TMP_19 TMP_20))))) in (let 
+TMP_22 \def (s k i) in (let TMP_23 \def (CHead c1 k u1) in (let TMP_24 \def 
+(CHead c1 k t2) in (let TMP_25 \def (csubst0_snd k i v u1 t2 H0 c1) in (let 
+TMP_26 \def (csubst1_sing TMP_22 v TMP_23 TMP_24 TMP_25) in (let TMP_31 \def 
+(\lambda (c3: C).(\lambda (H2: (csubst0 i v c1 c3)).(let TMP_27 \def (s k i) 
+in (let TMP_28 \def (CHead c1 k u1) in (let TMP_29 \def (CHead c3 k t2) in 
+(let TMP_30 \def (csubst0_both k i v u1 t2 H0 c1 c3 H2) in (csubst1_sing 
+TMP_27 v TMP_28 TMP_29 TMP_30))))))) in (csubst1_ind i v c1 TMP_21 TMP_26 
+TMP_31 c2 H1))))))))))))) in (subst1_ind i v u1 TMP_4 TMP_17 TMP_32 u2 
+H))))))))).
 
 theorem csubst1_bind:
  \forall (b: B).(\forall (i: nat).(\forall (v: T).(\forall (u1: T).(\forall 
@@ -50,13 +59,14 @@ u2))))))))))
 \def
  \lambda (b: B).(\lambda (i: nat).(\lambda (v: T).(\lambda (u1: T).(\lambda 
 (u2: T).(\lambda (H: (subst1 i v u1 u2)).(\lambda (c1: C).(\lambda (c2: 
-C).(\lambda (H0: (csubst1 i v c1 c2)).(eq_ind nat (s (Bind b) i) (\lambda (n: 
-nat).(csubst1 n v (CHead c1 (Bind b) u1) (CHead c2 (Bind b) u2))) 
-(csubst1_head (Bind b) i v u1 u2 H c1 c2 H0) (S i) (refl_equal nat (S 
-i))))))))))).
-(* COMMENTS
-Initial nodes: 107
-END *)
+C).(\lambda (H0: (csubst1 i v c1 c2)).(let TMP_1 \def (Bind b) in (let TMP_2 
+\def (s TMP_1 i) in (let TMP_7 \def (\lambda (n: nat).(let TMP_3 \def (Bind 
+b) in (let TMP_4 \def (CHead c1 TMP_3 u1) in (let TMP_5 \def (Bind b) in (let 
+TMP_6 \def (CHead c2 TMP_5 u2) in (csubst1 n v TMP_4 TMP_6)))))) in (let 
+TMP_8 \def (Bind b) in (let TMP_9 \def (csubst1_head TMP_8 i v u1 u2 H c1 c2 
+H0) in (let TMP_10 \def (S i) in (let TMP_11 \def (S i) in (let TMP_12 \def 
+(refl_equal nat TMP_11) in (eq_ind nat TMP_2 TMP_7 TMP_9 TMP_10 
+TMP_12))))))))))))))))).
 
 theorem csubst1_flat:
  \forall (f: F).(\forall (i: nat).(\forall (v: T).(\forall (u1: T).(\forall 
@@ -66,10 +76,11 @@ u2))))))))))
 \def
  \lambda (f: F).(\lambda (i: nat).(\lambda (v: T).(\lambda (u1: T).(\lambda 
 (u2: T).(\lambda (H: (subst1 i v u1 u2)).(\lambda (c1: C).(\lambda (c2: 
-C).(\lambda (H0: (csubst1 i v c1 c2)).(eq_ind nat (s (Flat f) i) (\lambda (n: 
-nat).(csubst1 n v (CHead c1 (Flat f) u1) (CHead c2 (Flat f) u2))) 
-(csubst1_head (Flat f) i v u1 u2 H c1 c2 H0) i (refl_equal nat i)))))))))).
-(* COMMENTS
-Initial nodes: 103
-END *)
+C).(\lambda (H0: (csubst1 i v c1 c2)).(let TMP_1 \def (Flat f) in (let TMP_2 
+\def (s TMP_1 i) in (let TMP_7 \def (\lambda (n: nat).(let TMP_3 \def (Flat 
+f) in (let TMP_4 \def (CHead c1 TMP_3 u1) in (let TMP_5 \def (Flat f) in (let 
+TMP_6 \def (CHead c2 TMP_5 u2) in (csubst1 n v TMP_4 TMP_6)))))) in (let 
+TMP_8 \def (Flat f) in (let TMP_9 \def (csubst1_head TMP_8 i v u1 u2 H c1 c2 
+H0) in (let TMP_10 \def (refl_equal nat i) in (eq_ind nat TMP_2 TMP_7 TMP_9 i 
+TMP_10))))))))))))))).
 
index f39baebf76bf69dd288b2c2d561c13ba9de04274..8d5cc21e0667165286d6965373b9d9d6cbe79501 100644 (file)
@@ -14,7 +14,7 @@
 
 (* This file was automatically generated: do not edit *********************)
 
-include "Basic-1/csubst0/defs.ma".
+include "basic_1/csubst0/defs.ma".
 
 inductive fsubst0 (i: nat) (v: T) (c1: C) (t1: T): C \to (T \to Prop) \def
 | fsubst0_snd: \forall (t2: T).((subst0 i v t1 t2) \to (fsubst0 i v c1 t1 c1 
index 3c1212510f7bc3daacb67eda73dc57562c0b35d3..f43d06c9416a9b3787c2cdc09b0649c026f4b676 100644 (file)
 
 (* This file was automatically generated: do not edit *********************)
 
-include "Basic-1/fsubst0/defs.ma".
+include "basic_1/fsubst0/defs.ma".
+
+theorem fsubst0_ind:
+ \forall (i: nat).(\forall (v: T).(\forall (c1: C).(\forall (t1: T).(\forall 
+(P: ((C \to (T \to Prop)))).(((\forall (t2: T).((subst0 i v t1 t2) \to (P c1 
+t2)))) \to (((\forall (c2: C).((csubst0 i v c1 c2) \to (P c2 t1)))) \to 
+(((\forall (t2: T).((subst0 i v t1 t2) \to (\forall (c2: C).((csubst0 i v c1 
+c2) \to (P c2 t2)))))) \to (\forall (c: C).(\forall (t: T).((fsubst0 i v c1 
+t1 c t) \to (P c t)))))))))))
+\def
+ \lambda (i: nat).(\lambda (v: T).(\lambda (c1: C).(\lambda (t1: T).(\lambda 
+(P: ((C \to (T \to Prop)))).(\lambda (f: ((\forall (t2: T).((subst0 i v t1 
+t2) \to (P c1 t2))))).(\lambda (f0: ((\forall (c2: C).((csubst0 i v c1 c2) 
+\to (P c2 t1))))).(\lambda (f1: ((\forall (t2: T).((subst0 i v t1 t2) \to 
+(\forall (c2: C).((csubst0 i v c1 c2) \to (P c2 t2))))))).(\lambda (c: 
+C).(\lambda (t: T).(\lambda (f2: (fsubst0 i v c1 t1 c t)).(match f2 with 
+[(fsubst0_snd x x0) \Rightarrow (f x x0) | (fsubst0_fst x x0) \Rightarrow (f0 
+x x0) | (fsubst0_both x x0 x1 x2) \Rightarrow (f1 x x0 x1 x2)]))))))))))).
 
 theorem fsubst0_gen_base:
  \forall (c1: C).(\forall (c2: C).(\forall (t1: T).(\forall (t2: T).(\forall 
@@ -23,21 +40,37 @@ c2) (subst0 i v t1 t2)) (land (eq T t1 t2) (csubst0 i v c1 c2)) (land (subst0
 i v t1 t2) (csubst0 i v c1 c2)))))))))
 \def
  \lambda (c1: C).(\lambda (c2: C).(\lambda (t1: T).(\lambda (t2: T).(\lambda 
-(v: T).(\lambda (i: nat).(\lambda (H: (fsubst0 i v c1 t1 c2 t2)).(fsubst0_ind 
-i v c1 t1 (\lambda (c: C).(\lambda (t: T).(or3 (land (eq C c1 c) (subst0 i v 
-t1 t)) (land (eq T t1 t) (csubst0 i v c1 c)) (land (subst0 i v t1 t) (csubst0 
-i v c1 c))))) (\lambda (t0: T).(\lambda (H0: (subst0 i v t1 t0)).(or3_intro0 
-(land (eq C c1 c1) (subst0 i v t1 t0)) (land (eq T t1 t0) (csubst0 i v c1 
-c1)) (land (subst0 i v t1 t0) (csubst0 i v c1 c1)) (conj (eq C c1 c1) (subst0 
-i v t1 t0) (refl_equal C c1) H0)))) (\lambda (c0: C).(\lambda (H0: (csubst0 i 
-v c1 c0)).(or3_intro1 (land (eq C c1 c0) (subst0 i v t1 t1)) (land (eq T t1 
-t1) (csubst0 i v c1 c0)) (land (subst0 i v t1 t1) (csubst0 i v c1 c0)) (conj 
-(eq T t1 t1) (csubst0 i v c1 c0) (refl_equal T t1) H0)))) (\lambda (t0: 
-T).(\lambda (H0: (subst0 i v t1 t0)).(\lambda (c0: C).(\lambda (H1: (csubst0 
-i v c1 c0)).(or3_intro2 (land (eq C c1 c0) (subst0 i v t1 t0)) (land (eq T t1 
-t0) (csubst0 i v c1 c0)) (land (subst0 i v t1 t0) (csubst0 i v c1 c0)) (conj 
-(subst0 i v t1 t0) (csubst0 i v c1 c0) H0 H1)))))) c2 t2 H))))))).
-(* COMMENTS
-Initial nodes: 431
-END *)
+(v: T).(\lambda (i: nat).(\lambda (H: (fsubst0 i v c1 t1 c2 t2)).(let TMP_10 
+\def (\lambda (c: C).(\lambda (t: T).(let TMP_1 \def (eq C c1 c) in (let 
+TMP_2 \def (subst0 i v t1 t) in (let TMP_3 \def (land TMP_1 TMP_2) in (let 
+TMP_4 \def (eq T t1 t) in (let TMP_5 \def (csubst0 i v c1 c) in (let TMP_6 
+\def (land TMP_4 TMP_5) in (let TMP_7 \def (subst0 i v t1 t) in (let TMP_8 
+\def (csubst0 i v c1 c) in (let TMP_9 \def (land TMP_7 TMP_8) in (or3 TMP_3 
+TMP_6 TMP_9)))))))))))) in (let TMP_24 \def (\lambda (t0: T).(\lambda (H0: 
+(subst0 i v t1 t0)).(let TMP_11 \def (eq C c1 c1) in (let TMP_12 \def (subst0 
+i v t1 t0) in (let TMP_13 \def (land TMP_11 TMP_12) in (let TMP_14 \def (eq T 
+t1 t0) in (let TMP_15 \def (csubst0 i v c1 c1) in (let TMP_16 \def (land 
+TMP_14 TMP_15) in (let TMP_17 \def (subst0 i v t1 t0) in (let TMP_18 \def 
+(csubst0 i v c1 c1) in (let TMP_19 \def (land TMP_17 TMP_18) in (let TMP_20 
+\def (eq C c1 c1) in (let TMP_21 \def (subst0 i v t1 t0) in (let TMP_22 \def 
+(refl_equal C c1) in (let TMP_23 \def (conj TMP_20 TMP_21 TMP_22 H0) in 
+(or3_intro0 TMP_13 TMP_16 TMP_19 TMP_23)))))))))))))))) in (let TMP_38 \def 
+(\lambda (c0: C).(\lambda (H0: (csubst0 i v c1 c0)).(let TMP_25 \def (eq C c1 
+c0) in (let TMP_26 \def (subst0 i v t1 t1) in (let TMP_27 \def (land TMP_25 
+TMP_26) in (let TMP_28 \def (eq T t1 t1) in (let TMP_29 \def (csubst0 i v c1 
+c0) in (let TMP_30 \def (land TMP_28 TMP_29) in (let TMP_31 \def (subst0 i v 
+t1 t1) in (let TMP_32 \def (csubst0 i v c1 c0) in (let TMP_33 \def (land 
+TMP_31 TMP_32) in (let TMP_34 \def (eq T t1 t1) in (let TMP_35 \def (csubst0 
+i v c1 c0) in (let TMP_36 \def (refl_equal T t1) in (let TMP_37 \def (conj 
+TMP_34 TMP_35 TMP_36 H0) in (or3_intro1 TMP_27 TMP_30 TMP_33 
+TMP_37)))))))))))))))) in (let TMP_51 \def (\lambda (t0: T).(\lambda (H0: 
+(subst0 i v t1 t0)).(\lambda (c0: C).(\lambda (H1: (csubst0 i v c1 c0)).(let 
+TMP_39 \def (eq C c1 c0) in (let TMP_40 \def (subst0 i v t1 t0) in (let 
+TMP_41 \def (land TMP_39 TMP_40) in (let TMP_42 \def (eq T t1 t0) in (let 
+TMP_43 \def (csubst0 i v c1 c0) in (let TMP_44 \def (land TMP_42 TMP_43) in 
+(let TMP_45 \def (subst0 i v t1 t0) in (let TMP_46 \def (csubst0 i v c1 c0) 
+in (let TMP_47 \def (land TMP_45 TMP_46) in (let TMP_48 \def (subst0 i v t1 
+t0) in (let TMP_49 \def (csubst0 i v c1 c0) in (let TMP_50 \def (conj TMP_48 
+TMP_49 H0 H1) in (or3_intro2 TMP_41 TMP_44 TMP_47 TMP_50))))))))))))))))) in 
+(fsubst0_ind i v c1 t1 TMP_10 TMP_24 TMP_38 TMP_51 c2 t2 H))))))))))).
 
index 6a51bcfb57e46a9411be2667cb98c37795342b77..e54fcfcd3fcfce6d54829cb12cbeccbf8f320cec 100644 (file)
@@ -14,7 +14,7 @@
 
 (* This file was automatically generated: do not edit *********************)
 
-include "Basic-1/subst0/defs.ma".
+include "basic_1/subst0/defs.ma".
 
 inductive subst1 (i: nat) (v: T) (t1: T): T \to Prop \def
 | subst1_refl: subst1 i v t1 t1
index a2bc1edd668b06ca665594f20b0b7e656ee59a59..4d7489cb15ca901353028facdcf56390140158e6 100644 (file)
 
 (* This file was automatically generated: do not edit *********************)
 
-include "Basic-1/subst1/defs.ma".
+include "basic_1/subst1/defs.ma".
 
-include "Basic-1/subst0/props.ma".
+include "basic_1/subst0/fwd.ma".
+
+theorem subst1_ind:
+ \forall (i: nat).(\forall (v: T).(\forall (t1: T).(\forall (P: ((T \to 
+Prop))).((P t1) \to (((\forall (t2: T).((subst0 i v t1 t2) \to (P t2)))) \to 
+(\forall (t: T).((subst1 i v t1 t) \to (P t))))))))
+\def
+ \lambda (i: nat).(\lambda (v: T).(\lambda (t1: T).(\lambda (P: ((T \to 
+Prop))).(\lambda (f: (P t1)).(\lambda (f0: ((\forall (t2: T).((subst0 i v t1 
+t2) \to (P t2))))).(\lambda (t: T).(\lambda (s0: (subst1 i v t1 t)).(match s0 
+with [subst1_refl \Rightarrow f | (subst1_single x x0) \Rightarrow (f0 x 
+x0)])))))))).
 
 theorem subst1_gen_sort:
  \forall (v: T).(\forall (x: T).(\forall (i: nat).(\forall (n: nat).((subst1 
 i v (TSort n) x) \to (eq T x (TSort n))))))
 \def
  \lambda (v: T).(\lambda (x: T).(\lambda (i: nat).(\lambda (n: nat).(\lambda 
-(H: (subst1 i v (TSort n) x)).(subst1_ind i v (TSort n) (\lambda (t: T).(eq T 
-t (TSort n))) (refl_equal T (TSort n)) (\lambda (t2: T).(\lambda (H0: (subst0 
-i v (TSort n) t2)).(subst0_gen_sort v t2 i n H0 (eq T t2 (TSort n))))) x 
-H))))).
-(* COMMENTS
-Initial nodes: 89
-END *)
+(H: (subst1 i v (TSort n) x)).(let TMP_1 \def (TSort n) in (let TMP_3 \def 
+(\lambda (t: T).(let TMP_2 \def (TSort n) in (eq T t TMP_2))) in (let TMP_4 
+\def (TSort n) in (let TMP_5 \def (refl_equal T TMP_4) in (let TMP_8 \def 
+(\lambda (t2: T).(\lambda (H0: (subst0 i v (TSort n) t2)).(let TMP_6 \def 
+(TSort n) in (let TMP_7 \def (eq T t2 TMP_6) in (subst0_gen_sort v t2 i n H0 
+TMP_7))))) in (subst1_ind i v TMP_1 TMP_3 TMP_5 TMP_8 x H)))))))))).
 
 theorem subst1_gen_lref:
  \forall (v: T).(\forall (x: T).(\forall (i: nat).(\forall (n: nat).((subst1 
@@ -37,19 +47,33 @@ i v (TLRef n) x) \to (or (eq T x (TLRef n)) (land (eq nat n i) (eq T x (lift
 (S n) O v))))))))
 \def
  \lambda (v: T).(\lambda (x: T).(\lambda (i: nat).(\lambda (n: nat).(\lambda 
-(H: (subst1 i v (TLRef n) x)).(subst1_ind i v (TLRef n) (\lambda (t: T).(or 
-(eq T t (TLRef n)) (land (eq nat n i) (eq T t (lift (S n) O v))))) (or_introl 
-(eq T (TLRef n) (TLRef n)) (land (eq nat n i) (eq T (TLRef n) (lift (S n) O 
-v))) (refl_equal T (TLRef n))) (\lambda (t2: T).(\lambda (H0: (subst0 i v 
-(TLRef n) t2)).(land_ind (eq nat n i) (eq T t2 (lift (S n) O v)) (or (eq T t2 
-(TLRef n)) (land (eq nat n i) (eq T t2 (lift (S n) O v)))) (\lambda (H1: (eq 
-nat n i)).(\lambda (H2: (eq T t2 (lift (S n) O v))).(or_intror (eq T t2 
-(TLRef n)) (land (eq nat n i) (eq T t2 (lift (S n) O v))) (conj (eq nat n i) 
-(eq T t2 (lift (S n) O v)) H1 H2)))) (subst0_gen_lref v t2 i n H0)))) x 
-H))))).
-(* COMMENTS
-Initial nodes: 305
-END *)
+(H: (subst1 i v (TLRef n) x)).(let TMP_1 \def (TLRef n) in (let TMP_9 \def 
+(\lambda (t: T).(let TMP_2 \def (TLRef n) in (let TMP_3 \def (eq T t TMP_2) 
+in (let TMP_4 \def (eq nat n i) in (let TMP_5 \def (S n) in (let TMP_6 \def 
+(lift TMP_5 O v) in (let TMP_7 \def (eq T t TMP_6) in (let TMP_8 \def (land 
+TMP_4 TMP_7) in (or TMP_3 TMP_8))))))))) in (let TMP_10 \def (TLRef n) in 
+(let TMP_11 \def (TLRef n) in (let TMP_12 \def (eq T TMP_10 TMP_11) in (let 
+TMP_13 \def (eq nat n i) in (let TMP_14 \def (TLRef n) in (let TMP_15 \def (S 
+n) in (let TMP_16 \def (lift TMP_15 O v) in (let TMP_17 \def (eq T TMP_14 
+TMP_16) in (let TMP_18 \def (land TMP_13 TMP_17) in (let TMP_19 \def (TLRef 
+n) in (let TMP_20 \def (refl_equal T TMP_19) in (let TMP_21 \def (or_introl 
+TMP_12 TMP_18 TMP_20) in (let TMP_48 \def (\lambda (t2: T).(\lambda (H0: 
+(subst0 i v (TLRef n) t2)).(let TMP_22 \def (eq nat n i) in (let TMP_23 \def 
+(S n) in (let TMP_24 \def (lift TMP_23 O v) in (let TMP_25 \def (eq T t2 
+TMP_24) in (let TMP_26 \def (TLRef n) in (let TMP_27 \def (eq T t2 TMP_26) in 
+(let TMP_28 \def (eq nat n i) in (let TMP_29 \def (S n) in (let TMP_30 \def 
+(lift TMP_29 O v) in (let TMP_31 \def (eq T t2 TMP_30) in (let TMP_32 \def 
+(land TMP_28 TMP_31) in (let TMP_33 \def (or TMP_27 TMP_32) in (let TMP_46 
+\def (\lambda (H1: (eq nat n i)).(\lambda (H2: (eq T t2 (lift (S n) O 
+v))).(let TMP_34 \def (TLRef n) in (let TMP_35 \def (eq T t2 TMP_34) in (let 
+TMP_36 \def (eq nat n i) in (let TMP_37 \def (S n) in (let TMP_38 \def (lift 
+TMP_37 O v) in (let TMP_39 \def (eq T t2 TMP_38) in (let TMP_40 \def (land 
+TMP_36 TMP_39) in (let TMP_41 \def (eq nat n i) in (let TMP_42 \def (S n) in 
+(let TMP_43 \def (lift TMP_42 O v) in (let TMP_44 \def (eq T t2 TMP_43) in 
+(let TMP_45 \def (conj TMP_41 TMP_44 H1 H2) in (or_intror TMP_35 TMP_40 
+TMP_45))))))))))))))) in (let TMP_47 \def (subst0_gen_lref v t2 i n H0) in 
+(land_ind TMP_22 TMP_25 TMP_33 TMP_46 TMP_47))))))))))))))))) in (subst1_ind 
+i v TMP_1 TMP_9 TMP_21 TMP_48 x H)))))))))))))))))))).
 
 theorem subst1_gen_head:
  \forall (k: K).(\forall (v: T).(\forall (u1: T).(\forall (t1: T).(\forall 
@@ -59,60 +83,95 @@ T).(\lambda (_: T).(subst1 i v u1 u2))) (\lambda (_: T).(\lambda (t2:
 T).(subst1 (s k i) v t1 t2))))))))))
 \def
  \lambda (k: K).(\lambda (v: T).(\lambda (u1: T).(\lambda (t1: T).(\lambda 
-(x: T).(\lambda (i: nat).(\lambda (H: (subst1 i v (THead k u1 t1) 
-x)).(subst1_ind i v (THead k u1 t1) (\lambda (t: T).(ex3_2 T T (\lambda (u2: 
-T).(\lambda (t2: T).(eq T t (THead k u2 t2)))) (\lambda (u2: T).(\lambda (_: 
-T).(subst1 i v u1 u2))) (\lambda (_: T).(\lambda (t2: T).(subst1 (s k i) v t1 
-t2))))) (ex3_2_intro T T (\lambda (u2: T).(\lambda (t2: T).(eq T (THead k u1 
-t1) (THead k u2 t2)))) (\lambda (u2: T).(\lambda (_: T).(subst1 i v u1 u2))) 
-(\lambda (_: T).(\lambda (t2: T).(subst1 (s k i) v t1 t2))) u1 t1 (refl_equal 
-T (THead k u1 t1)) (subst1_refl i v u1) (subst1_refl (s k i) v t1)) (\lambda 
-(t2: T).(\lambda (H0: (subst0 i v (THead k u1 t1) t2)).(or3_ind (ex2 T 
-(\lambda (u2: T).(eq T t2 (THead k u2 t1))) (\lambda (u2: T).(subst0 i v u1 
-u2))) (ex2 T (\lambda (t3: T).(eq T t2 (THead k u1 t3))) (\lambda (t3: 
-T).(subst0 (s k i) v t1 t3))) (ex3_2 T T (\lambda (u2: T).(\lambda (t3: 
-T).(eq T t2 (THead k u2 t3)))) (\lambda (u2: T).(\lambda (_: T).(subst0 i v 
-u1 u2))) (\lambda (_: T).(\lambda (t3: T).(subst0 (s k i) v t1 t3)))) (ex3_2 
-T T (\lambda (u2: T).(\lambda (t3: T).(eq T t2 (THead k u2 t3)))) (\lambda 
-(u2: T).(\lambda (_: T).(subst1 i v u1 u2))) (\lambda (_: T).(\lambda (t3: 
-T).(subst1 (s k i) v t1 t3)))) (\lambda (H1: (ex2 T (\lambda (u2: T).(eq T t2 
-(THead k u2 t1))) (\lambda (u2: T).(subst0 i v u1 u2)))).(ex2_ind T (\lambda 
-(u2: T).(eq T t2 (THead k u2 t1))) (\lambda (u2: T).(subst0 i v u1 u2)) 
-(ex3_2 T T (\lambda (u2: T).(\lambda (t3: T).(eq T t2 (THead k u2 t3)))) 
-(\lambda (u2: T).(\lambda (_: T).(subst1 i v u1 u2))) (\lambda (_: 
-T).(\lambda (t3: T).(subst1 (s k i) v t1 t3)))) (\lambda (x0: T).(\lambda 
-(H2: (eq T t2 (THead k x0 t1))).(\lambda (H3: (subst0 i v u1 
-x0)).(ex3_2_intro T T (\lambda (u2: T).(\lambda (t3: T).(eq T t2 (THead k u2 
-t3)))) (\lambda (u2: T).(\lambda (_: T).(subst1 i v u1 u2))) (\lambda (_: 
-T).(\lambda (t3: T).(subst1 (s k i) v t1 t3))) x0 t1 H2 (subst1_single i v u1 
-x0 H3) (subst1_refl (s k i) v t1))))) H1)) (\lambda (H1: (ex2 T (\lambda (t3: 
-T).(eq T t2 (THead k u1 t3))) (\lambda (t3: T).(subst0 (s k i) v t1 
-t3)))).(ex2_ind T (\lambda (t3: T).(eq T t2 (THead k u1 t3))) (\lambda (t3: 
-T).(subst0 (s k i) v t1 t3)) (ex3_2 T T (\lambda (u2: T).(\lambda (t3: T).(eq 
-T t2 (THead k u2 t3)))) (\lambda (u2: T).(\lambda (_: T).(subst1 i v u1 u2))) 
-(\lambda (_: T).(\lambda (t3: T).(subst1 (s k i) v t1 t3)))) (\lambda (x0: 
+(x: T).(\lambda (i: nat).(\lambda (H: (subst1 i v (THead k u1 t1) x)).(let 
+TMP_1 \def (THead k u1 t1) in (let TMP_7 \def (\lambda (t: T).(let TMP_3 \def 
+(\lambda (u2: T).(\lambda (t2: T).(let TMP_2 \def (THead k u2 t2) in (eq T t 
+TMP_2)))) in (let TMP_4 \def (\lambda (u2: T).(\lambda (_: T).(subst1 i v u1 
+u2))) in (let TMP_6 \def (\lambda (_: T).(\lambda (t2: T).(let TMP_5 \def (s 
+k i) in (subst1 TMP_5 v t1 t2)))) in (ex3_2 T T TMP_3 TMP_4 TMP_6))))) in 
+(let TMP_10 \def (\lambda (u2: T).(\lambda (t2: T).(let TMP_8 \def (THead k 
+u1 t1) in (let TMP_9 \def (THead k u2 t2) in (eq T TMP_8 TMP_9))))) in (let 
+TMP_11 \def (\lambda (u2: T).(\lambda (_: T).(subst1 i v u1 u2))) in (let 
+TMP_13 \def (\lambda (_: T).(\lambda (t2: T).(let TMP_12 \def (s k i) in 
+(subst1 TMP_12 v t1 t2)))) in (let TMP_14 \def (THead k u1 t1) in (let TMP_15 
+\def (refl_equal T TMP_14) in (let TMP_16 \def (subst1_refl i v u1) in (let 
+TMP_17 \def (s k i) in (let TMP_18 \def (subst1_refl TMP_17 v t1) in (let 
+TMP_19 \def (ex3_2_intro T T TMP_10 TMP_11 TMP_13 u1 t1 TMP_15 TMP_16 TMP_18) 
+in (let TMP_102 \def (\lambda (t2: T).(\lambda (H0: (subst0 i v (THead k u1 
+t1) t2)).(let TMP_21 \def (\lambda (u2: T).(let TMP_20 \def (THead k u2 t1) 
+in (eq T t2 TMP_20))) in (let TMP_22 \def (\lambda (u2: T).(subst0 i v u1 
+u2)) in (let TMP_23 \def (ex2 T TMP_21 TMP_22) in (let TMP_25 \def (\lambda 
+(t3: T).(let TMP_24 \def (THead k u1 t3) in (eq T t2 TMP_24))) in (let TMP_27 
+\def (\lambda (t3: T).(let TMP_26 \def (s k i) in (subst0 TMP_26 v t1 t3))) 
+in (let TMP_28 \def (ex2 T TMP_25 TMP_27) in (let TMP_30 \def (\lambda (u2: 
+T).(\lambda (t3: T).(let TMP_29 \def (THead k u2 t3) in (eq T t2 TMP_29)))) 
+in (let TMP_31 \def (\lambda (u2: T).(\lambda (_: T).(subst0 i v u1 u2))) in 
+(let TMP_33 \def (\lambda (_: T).(\lambda (t3: T).(let TMP_32 \def (s k i) in 
+(subst0 TMP_32 v t1 t3)))) in (let TMP_34 \def (ex3_2 T T TMP_30 TMP_31 
+TMP_33) in (let TMP_36 \def (\lambda (u2: T).(\lambda (t3: T).(let TMP_35 
+\def (THead k u2 t3) in (eq T t2 TMP_35)))) in (let TMP_37 \def (\lambda (u2: 
+T).(\lambda (_: T).(subst1 i v u1 u2))) in (let TMP_39 \def (\lambda (_: 
+T).(\lambda (t3: T).(let TMP_38 \def (s k i) in (subst1 TMP_38 v t1 t3)))) in 
+(let TMP_40 \def (ex3_2 T T TMP_36 TMP_37 TMP_39) in (let TMP_59 \def 
+(\lambda (H1: (ex2 T (\lambda (u2: T).(eq T t2 (THead k u2 t1))) (\lambda 
+(u2: T).(subst0 i v u1 u2)))).(let TMP_42 \def (\lambda (u2: T).(let TMP_41 
+\def (THead k u2 t1) in (eq T t2 TMP_41))) in (let TMP_43 \def (\lambda (u2: 
+T).(subst0 i v u1 u2)) in (let TMP_45 \def (\lambda (u2: T).(\lambda (t3: 
+T).(let TMP_44 \def (THead k u2 t3) in (eq T t2 TMP_44)))) in (let TMP_46 
+\def (\lambda (u2: T).(\lambda (_: T).(subst1 i v u1 u2))) in (let TMP_48 
+\def (\lambda (_: T).(\lambda (t3: T).(let TMP_47 \def (s k i) in (subst1 
+TMP_47 v t1 t3)))) in (let TMP_49 \def (ex3_2 T T TMP_45 TMP_46 TMP_48) in 
+(let TMP_58 \def (\lambda (x0: T).(\lambda (H2: (eq T t2 (THead k x0 
+t1))).(\lambda (H3: (subst0 i v u1 x0)).(let TMP_51 \def (\lambda (u2: 
+T).(\lambda (t3: T).(let TMP_50 \def (THead k u2 t3) in (eq T t2 TMP_50)))) 
+in (let TMP_52 \def (\lambda (u2: T).(\lambda (_: T).(subst1 i v u1 u2))) in 
+(let TMP_54 \def (\lambda (_: T).(\lambda (t3: T).(let TMP_53 \def (s k i) in 
+(subst1 TMP_53 v t1 t3)))) in (let TMP_55 \def (subst1_single i v u1 x0 H3) 
+in (let TMP_56 \def (s k i) in (let TMP_57 \def (subst1_refl TMP_56 v t1) in 
+(ex3_2_intro T T TMP_51 TMP_52 TMP_54 x0 t1 H2 TMP_55 TMP_57)))))))))) in 
+(ex2_ind T TMP_42 TMP_43 TMP_49 TMP_58 H1))))))))) in (let TMP_79 \def 
+(\lambda (H1: (ex2 T (\lambda (t3: T).(eq T t2 (THead k u1 t3))) (\lambda 
+(t3: T).(subst0 (s k i) v t1 t3)))).(let TMP_61 \def (\lambda (t3: T).(let 
+TMP_60 \def (THead k u1 t3) in (eq T t2 TMP_60))) in (let TMP_63 \def 
+(\lambda (t3: T).(let TMP_62 \def (s k i) in (subst0 TMP_62 v t1 t3))) in 
+(let TMP_65 \def (\lambda (u2: T).(\lambda (t3: T).(let TMP_64 \def (THead k 
+u2 t3) in (eq T t2 TMP_64)))) in (let TMP_66 \def (\lambda (u2: T).(\lambda 
+(_: T).(subst1 i v u1 u2))) in (let TMP_68 \def (\lambda (_: T).(\lambda (t3: 
+T).(let TMP_67 \def (s k i) in (subst1 TMP_67 v t1 t3)))) in (let TMP_69 \def 
+(ex3_2 T T TMP_65 TMP_66 TMP_68) in (let TMP_78 \def (\lambda (x0: 
 T).(\lambda (H2: (eq T t2 (THead k u1 x0))).(\lambda (H3: (subst0 (s k i) v 
-t1 x0)).(ex3_2_intro T T (\lambda (u2: T).(\lambda (t3: T).(eq T t2 (THead k 
-u2 t3)))) (\lambda (u2: T).(\lambda (_: T).(subst1 i v u1 u2))) (\lambda (_: 
-T).(\lambda (t3: T).(subst1 (s k i) v t1 t3))) u1 x0 H2 (subst1_refl i v u1) 
-(subst1_single (s k i) v t1 x0 H3))))) H1)) (\lambda (H1: (ex3_2 T T (\lambda 
-(u2: T).(\lambda (t3: T).(eq T t2 (THead k u2 t3)))) (\lambda (u2: 
+t1 x0)).(let TMP_71 \def (\lambda (u2: T).(\lambda (t3: T).(let TMP_70 \def 
+(THead k u2 t3) in (eq T t2 TMP_70)))) in (let TMP_72 \def (\lambda (u2: 
+T).(\lambda (_: T).(subst1 i v u1 u2))) in (let TMP_74 \def (\lambda (_: 
+T).(\lambda (t3: T).(let TMP_73 \def (s k i) in (subst1 TMP_73 v t1 t3)))) in 
+(let TMP_75 \def (subst1_refl i v u1) in (let TMP_76 \def (s k i) in (let 
+TMP_77 \def (subst1_single TMP_76 v t1 x0 H3) in (ex3_2_intro T T TMP_71 
+TMP_72 TMP_74 u1 x0 H2 TMP_75 TMP_77)))))))))) in (ex2_ind T TMP_61 TMP_63 
+TMP_69 TMP_78 H1))))))))) in (let TMP_100 \def (\lambda (H1: (ex3_2 T T 
+(\lambda (u2: T).(\lambda (t3: T).(eq T t2 (THead k u2 t3)))) (\lambda (u2: 
 T).(\lambda (_: T).(subst0 i v u1 u2))) (\lambda (_: T).(\lambda (t3: 
-T).(subst0 (s k i) v t1 t3))))).(ex3_2_ind T T (\lambda (u2: T).(\lambda (t3: 
-T).(eq T t2 (THead k u2 t3)))) (\lambda (u2: T).(\lambda (_: T).(subst0 i v 
-u1 u2))) (\lambda (_: T).(\lambda (t3: T).(subst0 (s k i) v t1 t3))) (ex3_2 T 
-T (\lambda (u2: T).(\lambda (t3: T).(eq T t2 (THead k u2 t3)))) (\lambda (u2: 
-T).(\lambda (_: T).(subst1 i v u1 u2))) (\lambda (_: T).(\lambda (t3: 
-T).(subst1 (s k i) v t1 t3)))) (\lambda (x0: T).(\lambda (x1: T).(\lambda 
-(H2: (eq T t2 (THead k x0 x1))).(\lambda (H3: (subst0 i v u1 x0)).(\lambda 
-(H4: (subst0 (s k i) v t1 x1)).(ex3_2_intro T T (\lambda (u2: T).(\lambda 
-(t3: T).(eq T t2 (THead k u2 t3)))) (\lambda (u2: T).(\lambda (_: T).(subst1 
-i v u1 u2))) (\lambda (_: T).(\lambda (t3: T).(subst1 (s k i) v t1 t3))) x0 
-x1 H2 (subst1_single i v u1 x0 H3) (subst1_single (s k i) v t1 x1 H4))))))) 
-H1)) (subst0_gen_head k v u1 t1 t2 i H0)))) x H))))))).
-(* COMMENTS
-Initial nodes: 1199
-END *)
+T).(subst0 (s k i) v t1 t3))))).(let TMP_81 \def (\lambda (u2: T).(\lambda 
+(t3: T).(let TMP_80 \def (THead k u2 t3) in (eq T t2 TMP_80)))) in (let 
+TMP_82 \def (\lambda (u2: T).(\lambda (_: T).(subst0 i v u1 u2))) in (let 
+TMP_84 \def (\lambda (_: T).(\lambda (t3: T).(let TMP_83 \def (s k i) in 
+(subst0 TMP_83 v t1 t3)))) in (let TMP_86 \def (\lambda (u2: T).(\lambda (t3: 
+T).(let TMP_85 \def (THead k u2 t3) in (eq T t2 TMP_85)))) in (let TMP_87 
+\def (\lambda (u2: T).(\lambda (_: T).(subst1 i v u1 u2))) in (let TMP_89 
+\def (\lambda (_: T).(\lambda (t3: T).(let TMP_88 \def (s k i) in (subst1 
+TMP_88 v t1 t3)))) in (let TMP_90 \def (ex3_2 T T TMP_86 TMP_87 TMP_89) in 
+(let TMP_99 \def (\lambda (x0: T).(\lambda (x1: T).(\lambda (H2: (eq T t2 
+(THead k x0 x1))).(\lambda (H3: (subst0 i v u1 x0)).(\lambda (H4: (subst0 (s 
+k i) v t1 x1)).(let TMP_92 \def (\lambda (u2: T).(\lambda (t3: T).(let TMP_91 
+\def (THead k u2 t3) in (eq T t2 TMP_91)))) in (let TMP_93 \def (\lambda (u2: 
+T).(\lambda (_: T).(subst1 i v u1 u2))) in (let TMP_95 \def (\lambda (_: 
+T).(\lambda (t3: T).(let TMP_94 \def (s k i) in (subst1 TMP_94 v t1 t3)))) in 
+(let TMP_96 \def (subst1_single i v u1 x0 H3) in (let TMP_97 \def (s k i) in 
+(let TMP_98 \def (subst1_single TMP_97 v t1 x1 H4) in (ex3_2_intro T T TMP_92 
+TMP_93 TMP_95 x0 x1 H2 TMP_96 TMP_98)))))))))))) in (ex3_2_ind T T TMP_81 
+TMP_82 TMP_84 TMP_90 TMP_99 H1)))))))))) in (let TMP_101 \def 
+(subst0_gen_head k v u1 t1 t2 i H0) in (or3_ind TMP_23 TMP_28 TMP_34 TMP_40 
+TMP_59 TMP_79 TMP_100 TMP_101))))))))))))))))))))) in (subst1_ind i v TMP_1 
+TMP_7 TMP_19 TMP_102 x H))))))))))))))))))).
 
 theorem subst1_gen_lift_lt:
  \forall (u: T).(\forall (t1: T).(\forall (x: T).(\forall (i: nat).(\forall 
@@ -122,23 +181,35 @@ x) \to (ex2 T (\lambda (t2: T).(eq T x (lift h (S (plus i d)) t2))) (\lambda
 \def
  \lambda (u: T).(\lambda (t1: T).(\lambda (x: T).(\lambda (i: nat).(\lambda 
 (h: nat).(\lambda (d: nat).(\lambda (H: (subst1 i (lift h d u) (lift h (S 
-(plus i d)) t1) x)).(subst1_ind i (lift h d u) (lift h (S (plus i d)) t1) 
-(\lambda (t: T).(ex2 T (\lambda (t2: T).(eq T t (lift h (S (plus i d)) t2))) 
-(\lambda (t2: T).(subst1 i u t1 t2)))) (ex_intro2 T (\lambda (t2: T).(eq T 
-(lift h (S (plus i d)) t1) (lift h (S (plus i d)) t2))) (\lambda (t2: 
-T).(subst1 i u t1 t2)) t1 (refl_equal T (lift h (S (plus i d)) t1)) 
-(subst1_refl i u t1)) (\lambda (t2: T).(\lambda (H0: (subst0 i (lift h d u) 
-(lift h (S (plus i d)) t1) t2)).(ex2_ind T (\lambda (t3: T).(eq T t2 (lift h 
-(S (plus i d)) t3))) (\lambda (t3: T).(subst0 i u t1 t3)) (ex2 T (\lambda 
-(t3: T).(eq T t2 (lift h (S (plus i d)) t3))) (\lambda (t3: T).(subst1 i u t1 
-t3))) (\lambda (x0: T).(\lambda (H1: (eq T t2 (lift h (S (plus i d)) 
-x0))).(\lambda (H2: (subst0 i u t1 x0)).(ex_intro2 T (\lambda (t3: T).(eq T 
-t2 (lift h (S (plus i d)) t3))) (\lambda (t3: T).(subst1 i u t1 t3)) x0 H1 
-(subst1_single i u t1 x0 H2))))) (subst0_gen_lift_lt u t1 t2 i h d H0)))) x 
-H))))))).
-(* COMMENTS
-Initial nodes: 395
-END *)
+(plus i d)) t1) x)).(let TMP_1 \def (lift h d u) in (let TMP_2 \def (plus i 
+d) in (let TMP_3 \def (S TMP_2) in (let TMP_4 \def (lift h TMP_3 t1) in (let 
+TMP_10 \def (\lambda (t: T).(let TMP_8 \def (\lambda (t2: T).(let TMP_5 \def 
+(plus i d) in (let TMP_6 \def (S TMP_5) in (let TMP_7 \def (lift h TMP_6 t2) 
+in (eq T t TMP_7))))) in (let TMP_9 \def (\lambda (t2: T).(subst1 i u t1 t2)) 
+in (ex2 T TMP_8 TMP_9)))) in (let TMP_17 \def (\lambda (t2: T).(let TMP_11 
+\def (plus i d) in (let TMP_12 \def (S TMP_11) in (let TMP_13 \def (lift h 
+TMP_12 t1) in (let TMP_14 \def (plus i d) in (let TMP_15 \def (S TMP_14) in 
+(let TMP_16 \def (lift h TMP_15 t2) in (eq T TMP_13 TMP_16)))))))) in (let 
+TMP_18 \def (\lambda (t2: T).(subst1 i u t1 t2)) in (let TMP_19 \def (plus i 
+d) in (let TMP_20 \def (S TMP_19) in (let TMP_21 \def (lift h TMP_20 t1) in 
+(let TMP_22 \def (refl_equal T TMP_21) in (let TMP_23 \def (subst1_refl i u 
+t1) in (let TMP_24 \def (ex_intro2 T TMP_17 TMP_18 t1 TMP_22 TMP_23) in (let 
+TMP_44 \def (\lambda (t2: T).(\lambda (H0: (subst0 i (lift h d u) (lift h (S 
+(plus i d)) t1) t2)).(let TMP_28 \def (\lambda (t3: T).(let TMP_25 \def (plus 
+i d) in (let TMP_26 \def (S TMP_25) in (let TMP_27 \def (lift h TMP_26 t3) in 
+(eq T t2 TMP_27))))) in (let TMP_29 \def (\lambda (t3: T).(subst0 i u t1 t3)) 
+in (let TMP_33 \def (\lambda (t3: T).(let TMP_30 \def (plus i d) in (let 
+TMP_31 \def (S TMP_30) in (let TMP_32 \def (lift h TMP_31 t3) in (eq T t2 
+TMP_32))))) in (let TMP_34 \def (\lambda (t3: T).(subst1 i u t1 t3)) in (let 
+TMP_35 \def (ex2 T TMP_33 TMP_34) in (let TMP_42 \def (\lambda (x0: 
+T).(\lambda (H1: (eq T t2 (lift h (S (plus i d)) x0))).(\lambda (H2: (subst0 
+i u t1 x0)).(let TMP_39 \def (\lambda (t3: T).(let TMP_36 \def (plus i d) in 
+(let TMP_37 \def (S TMP_36) in (let TMP_38 \def (lift h TMP_37 t3) in (eq T 
+t2 TMP_38))))) in (let TMP_40 \def (\lambda (t3: T).(subst1 i u t1 t3)) in 
+(let TMP_41 \def (subst1_single i u t1 x0 H2) in (ex_intro2 T TMP_39 TMP_40 
+x0 H1 TMP_41))))))) in (let TMP_43 \def (subst0_gen_lift_lt u t1 t2 i h d H0) 
+in (ex2_ind T TMP_28 TMP_29 TMP_35 TMP_42 TMP_43)))))))))) in (subst1_ind i 
+TMP_1 TMP_4 TMP_10 TMP_24 TMP_44 x H))))))))))))))))))))).
 
 theorem subst1_gen_lift_eq:
  \forall (t: T).(\forall (u: T).(\forall (x: T).(\forall (h: nat).(\forall 
@@ -147,13 +218,13 @@ theorem subst1_gen_lift_eq:
 \def
  \lambda (t: T).(\lambda (u: T).(\lambda (x: T).(\lambda (h: nat).(\lambda 
 (d: nat).(\lambda (i: nat).(\lambda (H: (le d i)).(\lambda (H0: (lt i (plus d 
-h))).(\lambda (H1: (subst1 i u (lift h d t) x)).(subst1_ind i u (lift h d t) 
-(\lambda (t0: T).(eq T t0 (lift h d t))) (refl_equal T (lift h d t)) (\lambda 
-(t2: T).(\lambda (H2: (subst0 i u (lift h d t) t2)).(subst0_gen_lift_false t 
-u t2 h d i H H0 H2 (eq T t2 (lift h d t))))) x H1))))))))).
-(* COMMENTS
-Initial nodes: 141
-END *)
+h))).(\lambda (H1: (subst1 i u (lift h d t) x)).(let TMP_1 \def (lift h d t) 
+in (let TMP_3 \def (\lambda (t0: T).(let TMP_2 \def (lift h d t) in (eq T t0 
+TMP_2))) in (let TMP_4 \def (lift h d t) in (let TMP_5 \def (refl_equal T 
+TMP_4) in (let TMP_8 \def (\lambda (t2: T).(\lambda (H2: (subst0 i u (lift h 
+d t) t2)).(let TMP_6 \def (lift h d t) in (let TMP_7 \def (eq T t2 TMP_6) in 
+(subst0_gen_lift_false t u t2 h d i H H0 H2 TMP_7))))) in (subst1_ind i u 
+TMP_1 TMP_3 TMP_5 TMP_8 x H1)))))))))))))).
 
 theorem subst1_gen_lift_ge:
  \forall (u: T).(\forall (t1: T).(\forall (x: T).(\forall (i: nat).(\forall 
@@ -163,20 +234,29 @@ T).(subst1 (minus i h) u t1 t2))))))))))
 \def
  \lambda (u: T).(\lambda (t1: T).(\lambda (x: T).(\lambda (i: nat).(\lambda 
 (h: nat).(\lambda (d: nat).(\lambda (H: (subst1 i u (lift h d t1) 
-x)).(\lambda (H0: (le (plus d h) i)).(subst1_ind i u (lift h d t1) (\lambda 
-(t: T).(ex2 T (\lambda (t2: T).(eq T t (lift h d t2))) (\lambda (t2: 
-T).(subst1 (minus i h) u t1 t2)))) (ex_intro2 T (\lambda (t2: T).(eq T (lift 
-h d t1) (lift h d t2))) (\lambda (t2: T).(subst1 (minus i h) u t1 t2)) t1 
-(refl_equal T (lift h d t1)) (subst1_refl (minus i h) u t1)) (\lambda (t2: 
-T).(\lambda (H1: (subst0 i u (lift h d t1) t2)).(ex2_ind T (\lambda (t3: 
-T).(eq T t2 (lift h d t3))) (\lambda (t3: T).(subst0 (minus i h) u t1 t3)) 
-(ex2 T (\lambda (t3: T).(eq T t2 (lift h d t3))) (\lambda (t3: T).(subst1 
-(minus i h) u t1 t3))) (\lambda (x0: T).(\lambda (H2: (eq T t2 (lift h d 
-x0))).(\lambda (H3: (subst0 (minus i h) u t1 x0)).(ex_intro2 T (\lambda (t3: 
-T).(eq T t2 (lift h d t3))) (\lambda (t3: T).(subst1 (minus i h) u t1 t3)) x0 
-H2 (subst1_single (minus i h) u t1 x0 H3))))) (subst0_gen_lift_ge u t1 t2 i h 
-d H1 H0)))) x H)))))))).
-(* COMMENTS
-Initial nodes: 355
-END *)
+x)).(\lambda (H0: (le (plus d h) i)).(let TMP_1 \def (lift h d t1) in (let 
+TMP_6 \def (\lambda (t: T).(let TMP_3 \def (\lambda (t2: T).(let TMP_2 \def 
+(lift h d t2) in (eq T t TMP_2))) in (let TMP_5 \def (\lambda (t2: T).(let 
+TMP_4 \def (minus i h) in (subst1 TMP_4 u t1 t2))) in (ex2 T TMP_3 TMP_5)))) 
+in (let TMP_9 \def (\lambda (t2: T).(let TMP_7 \def (lift h d t1) in (let 
+TMP_8 \def (lift h d t2) in (eq T TMP_7 TMP_8)))) in (let TMP_11 \def 
+(\lambda (t2: T).(let TMP_10 \def (minus i h) in (subst1 TMP_10 u t1 t2))) in 
+(let TMP_12 \def (lift h d t1) in (let TMP_13 \def (refl_equal T TMP_12) in 
+(let TMP_14 \def (minus i h) in (let TMP_15 \def (subst1_refl TMP_14 u t1) in 
+(let TMP_16 \def (ex_intro2 T TMP_9 TMP_11 t1 TMP_13 TMP_15) in (let TMP_34 
+\def (\lambda (t2: T).(\lambda (H1: (subst0 i u (lift h d t1) t2)).(let 
+TMP_18 \def (\lambda (t3: T).(let TMP_17 \def (lift h d t3) in (eq T t2 
+TMP_17))) in (let TMP_20 \def (\lambda (t3: T).(let TMP_19 \def (minus i h) 
+in (subst0 TMP_19 u t1 t3))) in (let TMP_22 \def (\lambda (t3: T).(let TMP_21 
+\def (lift h d t3) in (eq T t2 TMP_21))) in (let TMP_24 \def (\lambda (t3: 
+T).(let TMP_23 \def (minus i h) in (subst1 TMP_23 u t1 t3))) in (let TMP_25 
+\def (ex2 T TMP_22 TMP_24) in (let TMP_32 \def (\lambda (x0: T).(\lambda (H2: 
+(eq T t2 (lift h d x0))).(\lambda (H3: (subst0 (minus i h) u t1 x0)).(let 
+TMP_27 \def (\lambda (t3: T).(let TMP_26 \def (lift h d t3) in (eq T t2 
+TMP_26))) in (let TMP_29 \def (\lambda (t3: T).(let TMP_28 \def (minus i h) 
+in (subst1 TMP_28 u t1 t3))) in (let TMP_30 \def (minus i h) in (let TMP_31 
+\def (subst1_single TMP_30 u t1 x0 H3) in (ex_intro2 T TMP_27 TMP_29 x0 H2 
+TMP_31)))))))) in (let TMP_33 \def (subst0_gen_lift_ge u t1 t2 i h d H1 H0) 
+in (ex2_ind T TMP_18 TMP_20 TMP_25 TMP_32 TMP_33)))))))))) in (subst1_ind i u 
+TMP_1 TMP_6 TMP_16 TMP_34 x H)))))))))))))))))).
 
index ac8dea954a58cf9a878caf8362c6b88de0fcaa10..637b5017f634ea3823033c5186bb840d31706411 100644 (file)
@@ -14,9 +14,9 @@
 
 (* This file was automatically generated: do not edit *********************)
 
-include "Basic-1/subst1/defs.ma".
+include "basic_1/subst1/fwd.ma".
 
-include "Basic-1/subst0/props.ma".
+include "basic_1/subst0/props.ma".
 
 theorem subst1_head:
  \forall (v: T).(\forall (u1: T).(\forall (u2: T).(\forall (i: nat).((subst1 
@@ -24,23 +24,30 @@ i v u1 u2) \to (\forall (k: K).(\forall (t1: T).(\forall (t2: T).((subst1 (s
 k i) v t1 t2) \to (subst1 i v (THead k u1 t1) (THead k u2 t2))))))))))
 \def
  \lambda (v: T).(\lambda (u1: T).(\lambda (u2: T).(\lambda (i: nat).(\lambda 
-(H: (subst1 i v u1 u2)).(subst1_ind i v u1 (\lambda (t: T).(\forall (k: 
-K).(\forall (t1: T).(\forall (t2: T).((subst1 (s k i) v t1 t2) \to (subst1 i 
-v (THead k u1 t1) (THead k t t2))))))) (\lambda (k: K).(\lambda (t1: 
-T).(\lambda (t2: T).(\lambda (H0: (subst1 (s k i) v t1 t2)).(subst1_ind (s k 
-i) v t1 (\lambda (t: T).(subst1 i v (THead k u1 t1) (THead k u1 t))) 
-(subst1_refl i v (THead k u1 t1)) (\lambda (t3: T).(\lambda (H1: (subst0 (s k 
-i) v t1 t3)).(subst1_single i v (THead k u1 t1) (THead k u1 t3) (subst0_snd k 
-v t3 t1 i H1 u1)))) t2 H0))))) (\lambda (t2: T).(\lambda (H0: (subst0 i v u1 
-t2)).(\lambda (k: K).(\lambda (t1: T).(\lambda (t0: T).(\lambda (H1: (subst1 
-(s k i) v t1 t0)).(subst1_ind (s k i) v t1 (\lambda (t: T).(subst1 i v (THead 
-k u1 t1) (THead k t2 t))) (subst1_single i v (THead k u1 t1) (THead k t2 t1) 
-(subst0_fst v t2 u1 i H0 t1 k)) (\lambda (t3: T).(\lambda (H2: (subst0 (s k 
-i) v t1 t3)).(subst1_single i v (THead k u1 t1) (THead k t2 t3) (subst0_both 
-v u1 t2 i H0 k t1 t3 H2)))) t0 H1))))))) u2 H))))).
-(* COMMENTS
-Initial nodes: 369
-END *)
+(H: (subst1 i v u1 u2)).(let TMP_3 \def (\lambda (t: T).(\forall (k: 
+K).(\forall (t1: T).(\forall (t2: T).((subst1 (s k i) v t1 t2) \to (let TMP_1 
+\def (THead k u1 t1) in (let TMP_2 \def (THead k t t2) in (subst1 i v TMP_1 
+TMP_2)))))))) in (let TMP_14 \def (\lambda (k: K).(\lambda (t1: T).(\lambda 
+(t2: T).(\lambda (H0: (subst1 (s k i) v t1 t2)).(let TMP_4 \def (s k i) in 
+(let TMP_7 \def (\lambda (t: T).(let TMP_5 \def (THead k u1 t1) in (let TMP_6 
+\def (THead k u1 t) in (subst1 i v TMP_5 TMP_6)))) in (let TMP_8 \def (THead 
+k u1 t1) in (let TMP_9 \def (subst1_refl i v TMP_8) in (let TMP_13 \def 
+(\lambda (t3: T).(\lambda (H1: (subst0 (s k i) v t1 t3)).(let TMP_10 \def 
+(THead k u1 t1) in (let TMP_11 \def (THead k u1 t3) in (let TMP_12 \def 
+(subst0_snd k v t3 t1 i H1 u1) in (subst1_single i v TMP_10 TMP_11 
+TMP_12)))))) in (subst1_ind TMP_4 v t1 TMP_7 TMP_9 TMP_13 t2 H0)))))))))) in 
+(let TMP_27 \def (\lambda (t2: T).(\lambda (H0: (subst0 i v u1 t2)).(\lambda 
+(k: K).(\lambda (t1: T).(\lambda (t0: T).(\lambda (H1: (subst1 (s k i) v t1 
+t0)).(let TMP_15 \def (s k i) in (let TMP_18 \def (\lambda (t: T).(let TMP_16 
+\def (THead k u1 t1) in (let TMP_17 \def (THead k t2 t) in (subst1 i v TMP_16 
+TMP_17)))) in (let TMP_19 \def (THead k u1 t1) in (let TMP_20 \def (THead k 
+t2 t1) in (let TMP_21 \def (subst0_fst v t2 u1 i H0 t1 k) in (let TMP_22 \def 
+(subst1_single i v TMP_19 TMP_20 TMP_21) in (let TMP_26 \def (\lambda (t3: 
+T).(\lambda (H2: (subst0 (s k i) v t1 t3)).(let TMP_23 \def (THead k u1 t1) 
+in (let TMP_24 \def (THead k t2 t3) in (let TMP_25 \def (subst0_both v u1 t2 
+i H0 k t1 t3 H2) in (subst1_single i v TMP_23 TMP_24 TMP_25)))))) in 
+(subst1_ind TMP_15 v t1 TMP_18 TMP_22 TMP_26 t0 H1)))))))))))))) in 
+(subst1_ind i v u1 TMP_3 TMP_14 TMP_27 u2 H)))))))).
 
 theorem subst1_lift_lt:
  \forall (t1: T).(\forall (t2: T).(\forall (u: T).(\forall (i: nat).((subst1 
@@ -48,17 +55,20 @@ i u t1 t2) \to (\forall (d: nat).((lt i d) \to (\forall (h: nat).(subst1 i
 (lift h (minus d (S i)) u) (lift h d t1) (lift h d t2)))))))))
 \def
  \lambda (t1: T).(\lambda (t2: T).(\lambda (u: T).(\lambda (i: nat).(\lambda 
-(H: (subst1 i u t1 t2)).(subst1_ind i u t1 (\lambda (t: T).(\forall (d: 
-nat).((lt i d) \to (\forall (h: nat).(subst1 i (lift h (minus d (S i)) u) 
-(lift h d t1) (lift h d t)))))) (\lambda (d: nat).(\lambda (_: (lt i 
-d)).(\lambda (h: nat).(subst1_refl i (lift h (minus d (S i)) u) (lift h d 
-t1))))) (\lambda (t3: T).(\lambda (H0: (subst0 i u t1 t3)).(\lambda (d: 
-nat).(\lambda (H1: (lt i d)).(\lambda (h: nat).(subst1_single i (lift h 
-(minus d (S i)) u) (lift h d t1) (lift h d t3) (subst0_lift_lt t1 t3 u i H0 d 
-H1 h))))))) t2 H))))).
-(* COMMENTS
-Initial nodes: 185
-END *)
+(H: (subst1 i u t1 t2)).(let TMP_6 \def (\lambda (t: T).(\forall (d: 
+nat).((lt i d) \to (\forall (h: nat).(let TMP_1 \def (S i) in (let TMP_2 \def 
+(minus d TMP_1) in (let TMP_3 \def (lift h TMP_2 u) in (let TMP_4 \def (lift 
+h d t1) in (let TMP_5 \def (lift h d t) in (subst1 i TMP_3 TMP_4 
+TMP_5)))))))))) in (let TMP_11 \def (\lambda (d: nat).(\lambda (_: (lt i 
+d)).(\lambda (h: nat).(let TMP_7 \def (S i) in (let TMP_8 \def (minus d 
+TMP_7) in (let TMP_9 \def (lift h TMP_8 u) in (let TMP_10 \def (lift h d t1) 
+in (subst1_refl i TMP_9 TMP_10)))))))) in (let TMP_18 \def (\lambda (t3: 
+T).(\lambda (H0: (subst0 i u t1 t3)).(\lambda (d: nat).(\lambda (H1: (lt i 
+d)).(\lambda (h: nat).(let TMP_12 \def (S i) in (let TMP_13 \def (minus d 
+TMP_12) in (let TMP_14 \def (lift h TMP_13 u) in (let TMP_15 \def (lift h d 
+t1) in (let TMP_16 \def (lift h d t3) in (let TMP_17 \def (subst0_lift_lt t1 
+t3 u i H0 d H1 h) in (subst1_single i TMP_14 TMP_15 TMP_16 TMP_17)))))))))))) 
+in (subst1_ind i u t1 TMP_6 TMP_11 TMP_18 t2 H)))))))).
 
 theorem subst1_lift_ge:
  \forall (t1: T).(\forall (t2: T).(\forall (u: T).(\forall (i: nat).(\forall 
@@ -66,114 +76,281 @@ theorem subst1_lift_ge:
 (plus i h) u (lift h d t1) (lift h d t2)))))))))
 \def
  \lambda (t1: T).(\lambda (t2: T).(\lambda (u: T).(\lambda (i: nat).(\lambda 
-(h: nat).(\lambda (H: (subst1 i u t1 t2)).(subst1_ind i u t1 (\lambda (t: 
-T).(\forall (d: nat).((le d i) \to (subst1 (plus i h) u (lift h d t1) (lift h 
-d t))))) (\lambda (d: nat).(\lambda (_: (le d i)).(subst1_refl (plus i h) u 
-(lift h d t1)))) (\lambda (t3: T).(\lambda (H0: (subst0 i u t1 t3)).(\lambda 
-(d: nat).(\lambda (H1: (le d i)).(subst1_single (plus i h) u (lift h d t1) 
-(lift h d t3) (subst0_lift_ge t1 t3 u i h H0 d H1)))))) t2 H)))))).
-(* COMMENTS
-Initial nodes: 157
-END *)
+(h: nat).(\lambda (H: (subst1 i u t1 t2)).(let TMP_4 \def (\lambda (t: 
+T).(\forall (d: nat).((le d i) \to (let TMP_1 \def (plus i h) in (let TMP_2 
+\def (lift h d t1) in (let TMP_3 \def (lift h d t) in (subst1 TMP_1 u TMP_2 
+TMP_3))))))) in (let TMP_7 \def (\lambda (d: nat).(\lambda (_: (le d i)).(let 
+TMP_5 \def (plus i h) in (let TMP_6 \def (lift h d t1) in (subst1_refl TMP_5 
+u TMP_6))))) in (let TMP_12 \def (\lambda (t3: T).(\lambda (H0: (subst0 i u 
+t1 t3)).(\lambda (d: nat).(\lambda (H1: (le d i)).(let TMP_8 \def (plus i h) 
+in (let TMP_9 \def (lift h d t1) in (let TMP_10 \def (lift h d t3) in (let 
+TMP_11 \def (subst0_lift_ge t1 t3 u i h H0 d H1) in (subst1_single TMP_8 u 
+TMP_9 TMP_10 TMP_11))))))))) in (subst1_ind i u t1 TMP_4 TMP_7 TMP_12 t2 
+H))))))))).
 
 theorem subst1_ex:
  \forall (u: T).(\forall (t1: T).(\forall (d: nat).(ex T (\lambda (t2: 
 T).(subst1 d u t1 (lift (S O) d t2))))))
 \def
- \lambda (u: T).(\lambda (t1: T).(T_ind (\lambda (t: T).(\forall (d: nat).(ex 
-T (\lambda (t2: T).(subst1 d u t (lift (S O) d t2)))))) (\lambda (n: 
-nat).(\lambda (d: nat).(ex_intro T (\lambda (t2: T).(subst1 d u (TSort n) 
-(lift (S O) d t2))) (TSort n) (eq_ind_r T (TSort n) (\lambda (t: T).(subst1 d 
-u (TSort n) t)) (subst1_refl d u (TSort n)) (lift (S O) d (TSort n)) 
-(lift_sort n (S O) d))))) (\lambda (n: nat).(\lambda (d: nat).(lt_eq_gt_e n d 
-(ex T (\lambda (t2: T).(subst1 d u (TLRef n) (lift (S O) d t2)))) (\lambda 
-(H: (lt n d)).(ex_intro T (\lambda (t2: T).(subst1 d u (TLRef n) (lift (S O) 
-d t2))) (TLRef n) (eq_ind_r T (TLRef n) (\lambda (t: T).(subst1 d u (TLRef n) 
-t)) (subst1_refl d u (TLRef n)) (lift (S O) d (TLRef n)) (lift_lref_lt n (S 
-O) d H)))) (\lambda (H: (eq nat n d)).(eq_ind nat n (\lambda (n0: nat).(ex T 
-(\lambda (t2: T).(subst1 n0 u (TLRef n) (lift (S O) n0 t2))))) (ex_intro T 
-(\lambda (t2: T).(subst1 n u (TLRef n) (lift (S O) n t2))) (lift n O u) 
-(eq_ind_r T (lift (plus (S O) n) O u) (\lambda (t: T).(subst1 n u (TLRef n) 
-t)) (subst1_single n u (TLRef n) (lift (S n) O u) (subst0_lref u n)) (lift (S 
-O) n (lift n O u)) (lift_free u n (S O) O n (le_n (plus O n)) (le_O_n n)))) d 
-H)) (\lambda (H: (lt d n)).(ex_intro T (\lambda (t2: T).(subst1 d u (TLRef n) 
-(lift (S O) d t2))) (TLRef (pred n)) (eq_ind_r T (TLRef n) (\lambda (t: 
-T).(subst1 d u (TLRef n) t)) (subst1_refl d u (TLRef n)) (lift (S O) d (TLRef 
-(pred n))) (lift_lref_gt d n H))))))) (\lambda (k: K).(\lambda (t: 
-T).(\lambda (H: ((\forall (d: nat).(ex T (\lambda (t2: T).(subst1 d u t (lift 
-(S O) d t2))))))).(\lambda (t0: T).(\lambda (H0: ((\forall (d: nat).(ex T 
-(\lambda (t2: T).(subst1 d u t0 (lift (S O) d t2))))))).(\lambda (d: 
-nat).(let H_x \def (H d) in (let H1 \def H_x in (ex_ind T (\lambda (t2: 
-T).(subst1 d u t (lift (S O) d t2))) (ex T (\lambda (t2: T).(subst1 d u 
-(THead k t t0) (lift (S O) d t2)))) (\lambda (x: T).(\lambda (H2: (subst1 d u 
-t (lift (S O) d x))).(let H_x0 \def (H0 (s k d)) in (let H3 \def H_x0 in 
-(ex_ind T (\lambda (t2: T).(subst1 (s k d) u t0 (lift (S O) (s k d) t2))) (ex 
-T (\lambda (t2: T).(subst1 d u (THead k t t0) (lift (S O) d t2)))) (\lambda 
-(x0: T).(\lambda (H4: (subst1 (s k d) u t0 (lift (S O) (s k d) 
-x0))).(ex_intro T (\lambda (t2: T).(subst1 d u (THead k t t0) (lift (S O) d 
-t2))) (THead k x x0) (eq_ind_r T (THead k (lift (S O) d x) (lift (S O) (s k 
-d) x0)) (\lambda (t2: T).(subst1 d u (THead k t t0) t2)) (subst1_head u t 
-(lift (S O) d x) d H2 k t0 (lift (S O) (s k d) x0) H4) (lift (S O) d (THead k 
-x x0)) (lift_head k x x0 (S O) d))))) H3))))) H1))))))))) t1)).
-(* COMMENTS
-Initial nodes: 925
-END *)
+ \lambda (u: T).(\lambda (t1: T).(let TMP_4 \def (\lambda (t: T).(\forall (d: 
+nat).(let TMP_3 \def (\lambda (t2: T).(let TMP_1 \def (S O) in (let TMP_2 
+\def (lift TMP_1 d t2) in (subst1 d u t TMP_2)))) in (ex T TMP_3)))) in (let 
+TMP_21 \def (\lambda (n: nat).(\lambda (d: nat).(let TMP_8 \def (\lambda (t2: 
+T).(let TMP_5 \def (TSort n) in (let TMP_6 \def (S O) in (let TMP_7 \def 
+(lift TMP_6 d t2) in (subst1 d u TMP_5 TMP_7))))) in (let TMP_9 \def (TSort 
+n) in (let TMP_10 \def (TSort n) in (let TMP_12 \def (\lambda (t: T).(let 
+TMP_11 \def (TSort n) in (subst1 d u TMP_11 t))) in (let TMP_13 \def (TSort 
+n) in (let TMP_14 \def (subst1_refl d u TMP_13) in (let TMP_15 \def (S O) in 
+(let TMP_16 \def (TSort n) in (let TMP_17 \def (lift TMP_15 d TMP_16) in (let 
+TMP_18 \def (S O) in (let TMP_19 \def (lift_sort n TMP_18 d) in (let TMP_20 
+\def (eq_ind_r T TMP_10 TMP_12 TMP_14 TMP_17 TMP_19) in (ex_intro T TMP_8 
+TMP_9 TMP_20))))))))))))))) in (let TMP_92 \def (\lambda (n: nat).(\lambda 
+(d: nat).(let TMP_25 \def (\lambda (t2: T).(let TMP_22 \def (TLRef n) in (let 
+TMP_23 \def (S O) in (let TMP_24 \def (lift TMP_23 d t2) in (subst1 d u 
+TMP_22 TMP_24))))) in (let TMP_26 \def (ex T TMP_25) in (let TMP_43 \def 
+(\lambda (H: (lt n d)).(let TMP_30 \def (\lambda (t2: T).(let TMP_27 \def 
+(TLRef n) in (let TMP_28 \def (S O) in (let TMP_29 \def (lift TMP_28 d t2) in 
+(subst1 d u TMP_27 TMP_29))))) in (let TMP_31 \def (TLRef n) in (let TMP_32 
+\def (TLRef n) in (let TMP_34 \def (\lambda (t: T).(let TMP_33 \def (TLRef n) 
+in (subst1 d u TMP_33 t))) in (let TMP_35 \def (TLRef n) in (let TMP_36 \def 
+(subst1_refl d u TMP_35) in (let TMP_37 \def (S O) in (let TMP_38 \def (TLRef 
+n) in (let TMP_39 \def (lift TMP_37 d TMP_38) in (let TMP_40 \def (S O) in 
+(let TMP_41 \def (lift_lref_lt n TMP_40 d H) in (let TMP_42 \def (eq_ind_r T 
+TMP_32 TMP_34 TMP_36 TMP_39 TMP_41) in (ex_intro T TMP_30 TMP_31 
+TMP_42)))))))))))))) in (let TMP_73 \def (\lambda (H: (eq nat n d)).(let 
+TMP_48 \def (\lambda (n0: nat).(let TMP_47 \def (\lambda (t2: T).(let TMP_44 
+\def (TLRef n) in (let TMP_45 \def (S O) in (let TMP_46 \def (lift TMP_45 n0 
+t2) in (subst1 n0 u TMP_44 TMP_46))))) in (ex T TMP_47))) in (let TMP_52 \def 
+(\lambda (t2: T).(let TMP_49 \def (TLRef n) in (let TMP_50 \def (S O) in (let 
+TMP_51 \def (lift TMP_50 n t2) in (subst1 n u TMP_49 TMP_51))))) in (let 
+TMP_53 \def (lift n O u) in (let TMP_54 \def (S O) in (let TMP_55 \def (plus 
+TMP_54 n) in (let TMP_56 \def (lift TMP_55 O u) in (let TMP_58 \def (\lambda 
+(t: T).(let TMP_57 \def (TLRef n) in (subst1 n u TMP_57 t))) in (let TMP_59 
+\def (TLRef n) in (let TMP_60 \def (S n) in (let TMP_61 \def (lift TMP_60 O 
+u) in (let TMP_62 \def (subst0_lref u n) in (let TMP_63 \def (subst1_single n 
+u TMP_59 TMP_61 TMP_62) in (let TMP_64 \def (S O) in (let TMP_65 \def (lift n 
+O u) in (let TMP_66 \def (lift TMP_64 n TMP_65) in (let TMP_67 \def (S O) in 
+(let TMP_68 \def (le_plus_r O n) in (let TMP_69 \def (le_O_n n) in (let 
+TMP_70 \def (lift_free u n TMP_67 O n TMP_68 TMP_69) in (let TMP_71 \def 
+(eq_ind_r T TMP_56 TMP_58 TMP_63 TMP_66 TMP_70) in (let TMP_72 \def (ex_intro 
+T TMP_52 TMP_53 TMP_71) in (eq_ind nat n TMP_48 TMP_72 d 
+H))))))))))))))))))))))) in (let TMP_91 \def (\lambda (H: (lt d n)).(let 
+TMP_77 \def (\lambda (t2: T).(let TMP_74 \def (TLRef n) in (let TMP_75 \def 
+(S O) in (let TMP_76 \def (lift TMP_75 d t2) in (subst1 d u TMP_74 
+TMP_76))))) in (let TMP_78 \def (pred n) in (let TMP_79 \def (TLRef TMP_78) 
+in (let TMP_80 \def (TLRef n) in (let TMP_82 \def (\lambda (t: T).(let TMP_81 
+\def (TLRef n) in (subst1 d u TMP_81 t))) in (let TMP_83 \def (TLRef n) in 
+(let TMP_84 \def (subst1_refl d u TMP_83) in (let TMP_85 \def (S O) in (let 
+TMP_86 \def (pred n) in (let TMP_87 \def (TLRef TMP_86) in (let TMP_88 \def 
+(lift TMP_85 d TMP_87) in (let TMP_89 \def (lift_lref_gt d n H) in (let 
+TMP_90 \def (eq_ind_r T TMP_80 TMP_82 TMP_84 TMP_88 TMP_89) in (ex_intro T 
+TMP_77 TMP_79 TMP_90))))))))))))))) in (lt_eq_gt_e n d TMP_26 TMP_43 TMP_73 
+TMP_91)))))))) in (let TMP_139 \def (\lambda (k: K).(\lambda (t: T).(\lambda 
+(H: ((\forall (d: nat).(ex T (\lambda (t2: T).(subst1 d u t (lift (S O) d 
+t2))))))).(\lambda (t0: T).(\lambda (H0: ((\forall (d: nat).(ex T (\lambda 
+(t2: T).(subst1 d u t0 (lift (S O) d t2))))))).(\lambda (d: nat).(let H_x 
+\def (H d) in (let H1 \def H_x in (let TMP_95 \def (\lambda (t2: T).(let 
+TMP_93 \def (S O) in (let TMP_94 \def (lift TMP_93 d t2) in (subst1 d u t 
+TMP_94)))) in (let TMP_99 \def (\lambda (t2: T).(let TMP_96 \def (THead k t 
+t0) in (let TMP_97 \def (S O) in (let TMP_98 \def (lift TMP_97 d t2) in 
+(subst1 d u TMP_96 TMP_98))))) in (let TMP_100 \def (ex T TMP_99) in (let 
+TMP_138 \def (\lambda (x: T).(\lambda (H2: (subst1 d u t (lift (S O) d 
+x))).(let TMP_101 \def (s k d) in (let H_x0 \def (H0 TMP_101) in (let H3 \def 
+H_x0 in (let TMP_106 \def (\lambda (t2: T).(let TMP_102 \def (s k d) in (let 
+TMP_103 \def (S O) in (let TMP_104 \def (s k d) in (let TMP_105 \def (lift 
+TMP_103 TMP_104 t2) in (subst1 TMP_102 u t0 TMP_105)))))) in (let TMP_110 
+\def (\lambda (t2: T).(let TMP_107 \def (THead k t t0) in (let TMP_108 \def 
+(S O) in (let TMP_109 \def (lift TMP_108 d t2) in (subst1 d u TMP_107 
+TMP_109))))) in (let TMP_111 \def (ex T TMP_110) in (let TMP_137 \def 
+(\lambda (x0: T).(\lambda (H4: (subst1 (s k d) u t0 (lift (S O) (s k d) 
+x0))).(let TMP_115 \def (\lambda (t2: T).(let TMP_112 \def (THead k t t0) in 
+(let TMP_113 \def (S O) in (let TMP_114 \def (lift TMP_113 d t2) in (subst1 d 
+u TMP_112 TMP_114))))) in (let TMP_116 \def (THead k x x0) in (let TMP_117 
+\def (S O) in (let TMP_118 \def (lift TMP_117 d x) in (let TMP_119 \def (S O) 
+in (let TMP_120 \def (s k d) in (let TMP_121 \def (lift TMP_119 TMP_120 x0) 
+in (let TMP_122 \def (THead k TMP_118 TMP_121) in (let TMP_124 \def (\lambda 
+(t2: T).(let TMP_123 \def (THead k t t0) in (subst1 d u TMP_123 t2))) in (let 
+TMP_125 \def (S O) in (let TMP_126 \def (lift TMP_125 d x) in (let TMP_127 
+\def (S O) in (let TMP_128 \def (s k d) in (let TMP_129 \def (lift TMP_127 
+TMP_128 x0) in (let TMP_130 \def (subst1_head u t TMP_126 d H2 k t0 TMP_129 
+H4) in (let TMP_131 \def (S O) in (let TMP_132 \def (THead k x x0) in (let 
+TMP_133 \def (lift TMP_131 d TMP_132) in (let TMP_134 \def (S O) in (let 
+TMP_135 \def (lift_head k x x0 TMP_134 d) in (let TMP_136 \def (eq_ind_r T 
+TMP_122 TMP_124 TMP_130 TMP_133 TMP_135) in (ex_intro T TMP_115 TMP_116 
+TMP_136)))))))))))))))))))))))) in (ex_ind T TMP_106 TMP_111 TMP_137 
+H3)))))))))) in (ex_ind T TMP_95 TMP_100 TMP_138 H1))))))))))))) in (T_ind 
+TMP_4 TMP_21 TMP_92 TMP_139 t1)))))).
 
 theorem subst1_lift_S:
  \forall (u: T).(\forall (i: nat).(\forall (h: nat).((le h i) \to (subst1 i 
 (TLRef h) (lift (S h) (S i) u) (lift (S h) i u)))))
 \def
- \lambda (u: T).(T_ind (\lambda (t: T).(\forall (i: nat).(\forall (h: 
-nat).((le h i) \to (subst1 i (TLRef h) (lift (S h) (S i) t) (lift (S h) i 
-t)))))) (\lambda (n: nat).(\lambda (i: nat).(\lambda (h: nat).(\lambda (_: 
-(le h i)).(eq_ind_r T (TSort n) (\lambda (t: T).(subst1 i (TLRef h) t (lift 
-(S h) i (TSort n)))) (eq_ind_r T (TSort n) (\lambda (t: T).(subst1 i (TLRef 
-h) (TSort n) t)) (subst1_refl i (TLRef h) (TSort n)) (lift (S h) i (TSort n)) 
-(lift_sort n (S h) i)) (lift (S h) (S i) (TSort n)) (lift_sort n (S h) (S 
-i))))))) (\lambda (n: nat).(\lambda (i: nat).(\lambda (h: nat).(\lambda (H: 
-(le h i)).(lt_eq_gt_e n i (subst1 i (TLRef h) (lift (S h) (S i) (TLRef n)) 
-(lift (S h) i (TLRef n))) (\lambda (H0: (lt n i)).(eq_ind_r T (TLRef n) 
-(\lambda (t: T).(subst1 i (TLRef h) t (lift (S h) i (TLRef n)))) (eq_ind_r T 
-(TLRef n) (\lambda (t: T).(subst1 i (TLRef h) (TLRef n) t)) (subst1_refl i 
-(TLRef h) (TLRef n)) (lift (S h) i (TLRef n)) (lift_lref_lt n (S h) i H0)) 
-(lift (S h) (S i) (TLRef n)) (lift_lref_lt n (S h) (S i) (le_S (S n) i H0)))) 
-(\lambda (H0: (eq nat n i)).(let H1 \def (eq_ind_r nat i (\lambda (n0: 
-nat).(le h n0)) H n H0) in (eq_ind nat n (\lambda (n0: nat).(subst1 n0 (TLRef 
-h) (lift (S h) (S n0) (TLRef n)) (lift (S h) n0 (TLRef n)))) (eq_ind_r T 
-(TLRef n) (\lambda (t: T).(subst1 n (TLRef h) t (lift (S h) n (TLRef n)))) 
-(eq_ind_r T (TLRef (plus n (S h))) (\lambda (t: T).(subst1 n (TLRef h) (TLRef 
-n) t)) (eq_ind nat (S (plus n h)) (\lambda (n0: nat).(subst1 n (TLRef h) 
-(TLRef n) (TLRef n0))) (eq_ind_r nat (plus h n) (\lambda (n0: nat).(subst1 n 
-(TLRef h) (TLRef n) (TLRef (S n0)))) (eq_ind nat (plus h (S n)) (\lambda (n0: 
-nat).(subst1 n (TLRef h) (TLRef n) (TLRef n0))) (eq_ind T (lift (S n) O 
-(TLRef h)) (\lambda (t: T).(subst1 n (TLRef h) (TLRef n) t)) (subst1_single n 
-(TLRef h) (TLRef n) (lift (S n) O (TLRef h)) (subst0_lref (TLRef h) n)) 
-(TLRef (plus h (S n))) (lift_lref_ge h (S n) O (le_O_n h))) (S (plus h n)) 
-(sym_eq nat (S (plus h n)) (plus h (S n)) (plus_n_Sm h n))) (plus n h) 
-(plus_sym n h)) (plus n (S h)) (plus_n_Sm n h)) (lift (S h) n (TLRef n)) 
-(lift_lref_ge n (S h) n (le_n n))) (lift (S h) (S n) (TLRef n)) (lift_lref_lt 
-n (S h) (S n) (le_n (S n)))) i H0))) (\lambda (H0: (lt i n)).(eq_ind_r T 
-(TLRef (plus n (S h))) (\lambda (t: T).(subst1 i (TLRef h) t (lift (S h) i 
-(TLRef n)))) (eq_ind_r T (TLRef (plus n (S h))) (\lambda (t: T).(subst1 i 
-(TLRef h) (TLRef (plus n (S h))) t)) (subst1_refl i (TLRef h) (TLRef (plus n 
-(S h)))) (lift (S h) i (TLRef n)) (lift_lref_ge n (S h) i (le_S_n i n (le_S 
-(S i) n H0)))) (lift (S h) (S i) (TLRef n)) (lift_lref_ge n (S h) (S i) 
-H0)))))))) (\lambda (k: K).(\lambda (t: T).(\lambda (H: ((\forall (i: 
+ \lambda (u: T).(let TMP_7 \def (\lambda (t: T).(\forall (i: nat).(\forall 
+(h: nat).((le h i) \to (let TMP_1 \def (TLRef h) in (let TMP_2 \def (S h) in 
+(let TMP_3 \def (S i) in (let TMP_4 \def (lift TMP_2 TMP_3 t) in (let TMP_5 
+\def (S h) in (let TMP_6 \def (lift TMP_5 i t) in (subst1 i TMP_1 TMP_4 
+TMP_6))))))))))) in (let TMP_34 \def (\lambda (n: nat).(\lambda (i: 
+nat).(\lambda (h: nat).(\lambda (_: (le h i)).(let TMP_8 \def (TSort n) in 
+(let TMP_13 \def (\lambda (t: T).(let TMP_9 \def (TLRef h) in (let TMP_10 
+\def (S h) in (let TMP_11 \def (TSort n) in (let TMP_12 \def (lift TMP_10 i 
+TMP_11) in (subst1 i TMP_9 t TMP_12)))))) in (let TMP_14 \def (TSort n) in 
+(let TMP_17 \def (\lambda (t: T).(let TMP_15 \def (TLRef h) in (let TMP_16 
+\def (TSort n) in (subst1 i TMP_15 TMP_16 t)))) in (let TMP_18 \def (TLRef h) 
+in (let TMP_19 \def (TSort n) in (let TMP_20 \def (subst1_refl i TMP_18 
+TMP_19) in (let TMP_21 \def (S h) in (let TMP_22 \def (TSort n) in (let 
+TMP_23 \def (lift TMP_21 i TMP_22) in (let TMP_24 \def (S h) in (let TMP_25 
+\def (lift_sort n TMP_24 i) in (let TMP_26 \def (eq_ind_r T TMP_14 TMP_17 
+TMP_20 TMP_23 TMP_25) in (let TMP_27 \def (S h) in (let TMP_28 \def (S i) in 
+(let TMP_29 \def (TSort n) in (let TMP_30 \def (lift TMP_27 TMP_28 TMP_29) in 
+(let TMP_31 \def (S h) in (let TMP_32 \def (S i) in (let TMP_33 \def 
+(lift_sort n TMP_31 TMP_32) in (eq_ind_r T TMP_8 TMP_13 TMP_26 TMP_30 
+TMP_33))))))))))))))))))))))))) in (let TMP_220 \def (\lambda (n: 
+nat).(\lambda (i: nat).(\lambda (h: nat).(\lambda (H: (le h i)).(let TMP_35 
+\def (TLRef h) in (let TMP_36 \def (S h) in (let TMP_37 \def (S i) in (let 
+TMP_38 \def (TLRef n) in (let TMP_39 \def (lift TMP_36 TMP_37 TMP_38) in (let 
+TMP_40 \def (S h) in (let TMP_41 \def (TLRef n) in (let TMP_42 \def (lift 
+TMP_40 i TMP_41) in (let TMP_43 \def (subst1 i TMP_35 TMP_39 TMP_42) in (let 
+TMP_79 \def (\lambda (H0: (lt n i)).(let TMP_44 \def (TLRef n) in (let TMP_49 
+\def (\lambda (t: T).(let TMP_45 \def (TLRef h) in (let TMP_46 \def (S h) in 
+(let TMP_47 \def (TLRef n) in (let TMP_48 \def (lift TMP_46 i TMP_47) in 
+(subst1 i TMP_45 t TMP_48)))))) in (let TMP_50 \def (TLRef n) in (let TMP_53 
+\def (\lambda (t: T).(let TMP_51 \def (TLRef h) in (let TMP_52 \def (TLRef n) 
+in (subst1 i TMP_51 TMP_52 t)))) in (let TMP_54 \def (TLRef h) in (let TMP_55 
+\def (TLRef n) in (let TMP_56 \def (subst1_refl i TMP_54 TMP_55) in (let 
+TMP_57 \def (S h) in (let TMP_58 \def (TLRef n) in (let TMP_59 \def (lift 
+TMP_57 i TMP_58) in (let TMP_60 \def (S h) in (let TMP_61 \def (lift_lref_lt 
+n TMP_60 i H0) in (let TMP_62 \def (eq_ind_r T TMP_50 TMP_53 TMP_56 TMP_59 
+TMP_61) in (let TMP_63 \def (S h) in (let TMP_64 \def (S i) in (let TMP_65 
+\def (TLRef n) in (let TMP_66 \def (lift TMP_63 TMP_64 TMP_65) in (let TMP_67 
+\def (S h) in (let TMP_68 \def (S i) in (let TMP_69 \def (S n) in (let TMP_70 
+\def (S i) in (let TMP_71 \def (S n) in (let TMP_72 \def (S TMP_71) in (let 
+TMP_73 \def (S i) in (let TMP_74 \def (S n) in (let TMP_75 \def (le_n_S 
+TMP_74 i H0) in (let TMP_76 \def (le_S TMP_72 TMP_73 TMP_75) in (let TMP_77 
+\def (le_S_n TMP_69 TMP_70 TMP_76) in (let TMP_78 \def (lift_lref_lt n TMP_67 
+TMP_68 TMP_77) in (eq_ind_r T TMP_44 TMP_49 TMP_62 TMP_66 
+TMP_78))))))))))))))))))))))))))))))) in (let TMP_174 \def (\lambda (H0: (eq 
+nat n i)).(let TMP_80 \def (\lambda (n0: nat).(le h n0)) in (let H1 \def 
+(eq_ind_r nat i TMP_80 H n H0) in (let TMP_89 \def (\lambda (n0: nat).(let 
+TMP_81 \def (TLRef h) in (let TMP_82 \def (S h) in (let TMP_83 \def (S n0) in 
+(let TMP_84 \def (TLRef n) in (let TMP_85 \def (lift TMP_82 TMP_83 TMP_84) in 
+(let TMP_86 \def (S h) in (let TMP_87 \def (TLRef n) in (let TMP_88 \def 
+(lift TMP_86 n0 TMP_87) in (subst1 n0 TMP_81 TMP_85 TMP_88)))))))))) in (let 
+TMP_90 \def (TLRef n) in (let TMP_95 \def (\lambda (t: T).(let TMP_91 \def 
+(TLRef h) in (let TMP_92 \def (S h) in (let TMP_93 \def (TLRef n) in (let 
+TMP_94 \def (lift TMP_92 n TMP_93) in (subst1 n TMP_91 t TMP_94)))))) in (let 
+TMP_96 \def (S h) in (let TMP_97 \def (plus n TMP_96) in (let TMP_98 \def 
+(TLRef TMP_97) in (let TMP_101 \def (\lambda (t: T).(let TMP_99 \def (TLRef 
+h) in (let TMP_100 \def (TLRef n) in (subst1 n TMP_99 TMP_100 t)))) in (let 
+TMP_102 \def (plus n h) in (let TMP_103 \def (S TMP_102) in (let TMP_107 \def 
+(\lambda (n0: nat).(let TMP_104 \def (TLRef h) in (let TMP_105 \def (TLRef n) 
+in (let TMP_106 \def (TLRef n0) in (subst1 n TMP_104 TMP_105 TMP_106))))) in 
+(let TMP_108 \def (plus h n) in (let TMP_113 \def (\lambda (n0: nat).(let 
+TMP_109 \def (TLRef h) in (let TMP_110 \def (TLRef n) in (let TMP_111 \def (S 
+n0) in (let TMP_112 \def (TLRef TMP_111) in (subst1 n TMP_109 TMP_110 
+TMP_112)))))) in (let TMP_114 \def (S n) in (let TMP_115 \def (plus h 
+TMP_114) in (let TMP_119 \def (\lambda (n0: nat).(let TMP_116 \def (TLRef h) 
+in (let TMP_117 \def (TLRef n) in (let TMP_118 \def (TLRef n0) in (subst1 n 
+TMP_116 TMP_117 TMP_118))))) in (let TMP_120 \def (S n) in (let TMP_121 \def 
+(TLRef h) in (let TMP_122 \def (lift TMP_120 O TMP_121) in (let TMP_125 \def 
+(\lambda (t: T).(let TMP_123 \def (TLRef h) in (let TMP_124 \def (TLRef n) in 
+(subst1 n TMP_123 TMP_124 t)))) in (let TMP_126 \def (TLRef h) in (let 
+TMP_127 \def (TLRef n) in (let TMP_128 \def (S n) in (let TMP_129 \def (TLRef 
+h) in (let TMP_130 \def (lift TMP_128 O TMP_129) in (let TMP_131 \def (TLRef 
+h) in (let TMP_132 \def (subst0_lref TMP_131 n) in (let TMP_133 \def 
+(subst1_single n TMP_126 TMP_127 TMP_130 TMP_132) in (let TMP_134 \def (S n) 
+in (let TMP_135 \def (plus h TMP_134) in (let TMP_136 \def (TLRef TMP_135) in 
+(let TMP_137 \def (S n) in (let TMP_138 \def (le_O_n h) in (let TMP_139 \def 
+(lift_lref_ge h TMP_137 O TMP_138) in (let TMP_140 \def (eq_ind T TMP_122 
+TMP_125 TMP_133 TMP_136 TMP_139) in (let TMP_141 \def (plus h n) in (let 
+TMP_142 \def (S TMP_141) in (let TMP_143 \def (plus h n) in (let TMP_144 \def 
+(S TMP_143) in (let TMP_145 \def (S n) in (let TMP_146 \def (plus h TMP_145) 
+in (let TMP_147 \def (plus_n_Sm h n) in (let TMP_148 \def (sym_eq nat TMP_144 
+TMP_146 TMP_147) in (let TMP_149 \def (eq_ind nat TMP_115 TMP_119 TMP_140 
+TMP_142 TMP_148) in (let TMP_150 \def (plus n h) in (let TMP_151 \def 
+(plus_sym n h) in (let TMP_152 \def (eq_ind_r nat TMP_108 TMP_113 TMP_149 
+TMP_150 TMP_151) in (let TMP_153 \def (S h) in (let TMP_154 \def (plus n 
+TMP_153) in (let TMP_155 \def (plus_n_Sm n h) in (let TMP_156 \def (eq_ind 
+nat TMP_103 TMP_107 TMP_152 TMP_154 TMP_155) in (let TMP_157 \def (S h) in 
+(let TMP_158 \def (TLRef n) in (let TMP_159 \def (lift TMP_157 n TMP_158) in 
+(let TMP_160 \def (S h) in (let TMP_161 \def (le_n n) in (let TMP_162 \def 
+(lift_lref_ge n TMP_160 n TMP_161) in (let TMP_163 \def (eq_ind_r T TMP_98 
+TMP_101 TMP_156 TMP_159 TMP_162) in (let TMP_164 \def (S h) in (let TMP_165 
+\def (S n) in (let TMP_166 \def (TLRef n) in (let TMP_167 \def (lift TMP_164 
+TMP_165 TMP_166) in (let TMP_168 \def (S h) in (let TMP_169 \def (S n) in 
+(let TMP_170 \def (S n) in (let TMP_171 \def (le_n TMP_170) in (let TMP_172 
+\def (lift_lref_lt n TMP_168 TMP_169 TMP_171) in (let TMP_173 \def (eq_ind_r 
+T TMP_90 TMP_95 TMP_163 TMP_167 TMP_172) in (eq_ind nat n TMP_89 TMP_173 i 
+H0))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) in 
+(let TMP_219 \def (\lambda (H0: (lt i n)).(let TMP_175 \def (S h) in (let 
+TMP_176 \def (plus n TMP_175) in (let TMP_177 \def (TLRef TMP_176) in (let 
+TMP_182 \def (\lambda (t: T).(let TMP_178 \def (TLRef h) in (let TMP_179 \def 
+(S h) in (let TMP_180 \def (TLRef n) in (let TMP_181 \def (lift TMP_179 i 
+TMP_180) in (subst1 i TMP_178 t TMP_181)))))) in (let TMP_183 \def (S h) in 
+(let TMP_184 \def (plus n TMP_183) in (let TMP_185 \def (TLRef TMP_184) in 
+(let TMP_190 \def (\lambda (t: T).(let TMP_186 \def (TLRef h) in (let TMP_187 
+\def (S h) in (let TMP_188 \def (plus n TMP_187) in (let TMP_189 \def (TLRef 
+TMP_188) in (subst1 i TMP_186 TMP_189 t)))))) in (let TMP_191 \def (TLRef h) 
+in (let TMP_192 \def (S h) in (let TMP_193 \def (plus n TMP_192) in (let 
+TMP_194 \def (TLRef TMP_193) in (let TMP_195 \def (subst1_refl i TMP_191 
+TMP_194) in (let TMP_196 \def (S h) in (let TMP_197 \def (TLRef n) in (let 
+TMP_198 \def (lift TMP_196 i TMP_197) in (let TMP_199 \def (S h) in (let 
+TMP_200 \def (S i) in (let TMP_201 \def (S n) in (let TMP_202 \def (S i) in 
+(let TMP_203 \def (S TMP_202) in (let TMP_204 \def (S n) in (let TMP_205 \def 
+(S i) in (let TMP_206 \def (le_n_S TMP_205 n H0) in (let TMP_207 \def (le_S 
+TMP_203 TMP_204 TMP_206) in (let TMP_208 \def (le_S_n TMP_200 TMP_201 
+TMP_207) in (let TMP_209 \def (le_S_n i n TMP_208) in (let TMP_210 \def 
+(lift_lref_ge n TMP_199 i TMP_209) in (let TMP_211 \def (eq_ind_r T TMP_185 
+TMP_190 TMP_195 TMP_198 TMP_210) in (let TMP_212 \def (S h) in (let TMP_213 
+\def (S i) in (let TMP_214 \def (TLRef n) in (let TMP_215 \def (lift TMP_212 
+TMP_213 TMP_214) in (let TMP_216 \def (S h) in (let TMP_217 \def (S i) in 
+(let TMP_218 \def (lift_lref_ge n TMP_216 TMP_217 H0) in (eq_ind_r T TMP_177 
+TMP_182 TMP_211 TMP_215 TMP_218)))))))))))))))))))))))))))))))))))))) in 
+(lt_eq_gt_e n i TMP_43 TMP_79 TMP_174 TMP_219))))))))))))))))) in (let 
+TMP_297 \def (\lambda (k: K).(\lambda (t: T).(\lambda (H: ((\forall (i: 
 nat).(\forall (h: nat).((le h i) \to (subst1 i (TLRef h) (lift (S h) (S i) t) 
 (lift (S h) i t))))))).(\lambda (t0: T).(\lambda (H0: ((\forall (i: 
 nat).(\forall (h: nat).((le h i) \to (subst1 i (TLRef h) (lift (S h) (S i) 
 t0) (lift (S h) i t0))))))).(\lambda (i: nat).(\lambda (h: nat).(\lambda (H1: 
-(le h i)).(eq_ind_r T (THead k (lift (S h) (S i) t) (lift (S h) (s k (S i)) 
-t0)) (\lambda (t1: T).(subst1 i (TLRef h) t1 (lift (S h) i (THead k t t0)))) 
-(eq_ind_r T (THead k (lift (S h) i t) (lift (S h) (s k i) t0)) (\lambda (t1: 
-T).(subst1 i (TLRef h) (THead k (lift (S h) (S i) t) (lift (S h) (s k (S i)) 
-t0)) t1)) (subst1_head (TLRef h) (lift (S h) (S i) t) (lift (S h) i t) i (H i 
-h H1) k (lift (S h) (s k (S i)) t0) (lift (S h) (s k i) t0) (eq_ind_r nat (S 
-(s k i)) (\lambda (n: nat).(subst1 (s k i) (TLRef h) (lift (S h) n t0) (lift 
-(S h) (s k i) t0))) (H0 (s k i) h (le_trans h i (s k i) H1 (s_inc k i))) (s k 
-(S i)) (s_S k i))) (lift (S h) i (THead k t t0)) (lift_head k t t0 (S h) i)) 
-(lift (S h) (S i) (THead k t t0)) (lift_head k t t0 (S h) (S i))))))))))) u).
-(* COMMENTS
-Initial nodes: 1421
-END *)
+(le h i)).(let TMP_221 \def (S h) in (let TMP_222 \def (S i) in (let TMP_223 
+\def (lift TMP_221 TMP_222 t) in (let TMP_224 \def (S h) in (let TMP_225 \def 
+(S i) in (let TMP_226 \def (s k TMP_225) in (let TMP_227 \def (lift TMP_224 
+TMP_226 t0) in (let TMP_228 \def (THead k TMP_223 TMP_227) in (let TMP_233 
+\def (\lambda (t1: T).(let TMP_229 \def (TLRef h) in (let TMP_230 \def (S h) 
+in (let TMP_231 \def (THead k t t0) in (let TMP_232 \def (lift TMP_230 i 
+TMP_231) in (subst1 i TMP_229 t1 TMP_232)))))) in (let TMP_234 \def (S h) in 
+(let TMP_235 \def (lift TMP_234 i t) in (let TMP_236 \def (S h) in (let 
+TMP_237 \def (s k i) in (let TMP_238 \def (lift TMP_236 TMP_237 t0) in (let 
+TMP_239 \def (THead k TMP_235 TMP_238) in (let TMP_249 \def (\lambda (t1: 
+T).(let TMP_240 \def (TLRef h) in (let TMP_241 \def (S h) in (let TMP_242 
+\def (S i) in (let TMP_243 \def (lift TMP_241 TMP_242 t) in (let TMP_244 \def 
+(S h) in (let TMP_245 \def (S i) in (let TMP_246 \def (s k TMP_245) in (let 
+TMP_247 \def (lift TMP_244 TMP_246 t0) in (let TMP_248 \def (THead k TMP_243 
+TMP_247) in (subst1 i TMP_240 TMP_248 t1))))))))))) in (let TMP_250 \def 
+(TLRef h) in (let TMP_251 \def (S h) in (let TMP_252 \def (S i) in (let 
+TMP_253 \def (lift TMP_251 TMP_252 t) in (let TMP_254 \def (S h) in (let 
+TMP_255 \def (lift TMP_254 i t) in (let TMP_256 \def (H i h H1) in (let 
+TMP_257 \def (S h) in (let TMP_258 \def (S i) in (let TMP_259 \def (s k 
+TMP_258) in (let TMP_260 \def (lift TMP_257 TMP_259 t0) in (let TMP_261 \def 
+(S h) in (let TMP_262 \def (s k i) in (let TMP_263 \def (lift TMP_261 TMP_262 
+t0) in (let TMP_264 \def (s k i) in (let TMP_265 \def (S TMP_264) in (let 
+TMP_273 \def (\lambda (n: nat).(let TMP_266 \def (s k i) in (let TMP_267 \def 
+(TLRef h) in (let TMP_268 \def (S h) in (let TMP_269 \def (lift TMP_268 n t0) 
+in (let TMP_270 \def (S h) in (let TMP_271 \def (s k i) in (let TMP_272 \def 
+(lift TMP_270 TMP_271 t0) in (subst1 TMP_266 TMP_267 TMP_269 TMP_272))))))))) 
+in (let TMP_274 \def (s k i) in (let TMP_275 \def (s k i) in (let TMP_276 
+\def (s_inc k i) in (let TMP_277 \def (le_trans h i TMP_275 H1 TMP_276) in 
+(let TMP_278 \def (H0 TMP_274 h TMP_277) in (let TMP_279 \def (S i) in (let 
+TMP_280 \def (s k TMP_279) in (let TMP_281 \def (s_S k i) in (let TMP_282 
+\def (eq_ind_r nat TMP_265 TMP_273 TMP_278 TMP_280 TMP_281) in (let TMP_283 
+\def (subst1_head TMP_250 TMP_253 TMP_255 i TMP_256 k TMP_260 TMP_263 
+TMP_282) in (let TMP_284 \def (S h) in (let TMP_285 \def (THead k t t0) in 
+(let TMP_286 \def (lift TMP_284 i TMP_285) in (let TMP_287 \def (S h) in (let 
+TMP_288 \def (lift_head k t t0 TMP_287 i) in (let TMP_289 \def (eq_ind_r T 
+TMP_239 TMP_249 TMP_283 TMP_286 TMP_288) in (let TMP_290 \def (S h) in (let 
+TMP_291 \def (S i) in (let TMP_292 \def (THead k t t0) in (let TMP_293 \def 
+(lift TMP_290 TMP_291 TMP_292) in (let TMP_294 \def (S h) in (let TMP_295 
+\def (S i) in (let TMP_296 \def (lift_head k t t0 TMP_294 TMP_295) in 
+(eq_ind_r T TMP_228 TMP_233 TMP_289 TMP_293 
+TMP_296))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) in 
+(T_ind TMP_7 TMP_34 TMP_220 TMP_297 u))))).
 
index e6dae0dc990b7b82b936cb0f031aa617df249714..3338dcad9ebb6d1b9030f22eb0c1f114140afc11 100644 (file)
@@ -14,9 +14,9 @@
 
 (* This file was automatically generated: do not edit *********************)
 
-include "Basic-1/subst1/fwd.ma".
+include "basic_1/subst1/fwd.ma".
 
-include "Basic-1/subst0/subst0.ma".
+include "basic_1/subst0/subst0.ma".
 
 theorem subst1_subst1:
  \forall (t1: T).(\forall (t2: T).(\forall (u2: T).(\forall (j: nat).((subst1 
@@ -25,36 +25,56 @@ u u1 u2) \to (ex2 T (\lambda (t: T).(subst1 j u1 t1 t)) (\lambda (t:
 T).(subst1 (S (plus i j)) u t t2)))))))))))
 \def
  \lambda (t1: T).(\lambda (t2: T).(\lambda (u2: T).(\lambda (j: nat).(\lambda 
-(H: (subst1 j u2 t1 t2)).(subst1_ind j u2 t1 (\lambda (t: T).(\forall (u1: 
-T).(\forall (u: T).(\forall (i: nat).((subst1 i u u1 u2) \to (ex2 T (\lambda 
-(t0: T).(subst1 j u1 t1 t0)) (\lambda (t0: T).(subst1 (S (plus i j)) u t0 
-t)))))))) (\lambda (u1: T).(\lambda (u: T).(\lambda (i: nat).(\lambda (_: 
-(subst1 i u u1 u2)).(ex_intro2 T (\lambda (t: T).(subst1 j u1 t1 t)) (\lambda 
-(t: T).(subst1 (S (plus i j)) u t t1)) t1 (subst1_refl j u1 t1) (subst1_refl 
-(S (plus i j)) u t1)))))) (\lambda (t3: T).(\lambda (H0: (subst0 j u2 t1 
-t3)).(\lambda (u1: T).(\lambda (u: T).(\lambda (i: nat).(\lambda (H1: (subst1 
-i u u1 u2)).(insert_eq T u2 (\lambda (t: T).(subst1 i u u1 t)) (\lambda (_: 
-T).(ex2 T (\lambda (t0: T).(subst1 j u1 t1 t0)) (\lambda (t0: T).(subst1 (S 
-(plus i j)) u t0 t3)))) (\lambda (y: T).(\lambda (H2: (subst1 i u u1 
-y)).(subst1_ind i u u1 (\lambda (t: T).((eq T t u2) \to (ex2 T (\lambda (t0: 
-T).(subst1 j u1 t1 t0)) (\lambda (t0: T).(subst1 (S (plus i j)) u t0 t3))))) 
-(\lambda (H3: (eq T u1 u2)).(eq_ind_r T u2 (\lambda (t: T).(ex2 T (\lambda 
-(t0: T).(subst1 j t t1 t0)) (\lambda (t0: T).(subst1 (S (plus i j)) u t0 
-t3)))) (ex_intro2 T (\lambda (t: T).(subst1 j u2 t1 t)) (\lambda (t: 
-T).(subst1 (S (plus i j)) u t t3)) t3 (subst1_single j u2 t1 t3 H0) 
-(subst1_refl (S (plus i j)) u t3)) u1 H3)) (\lambda (t0: T).(\lambda (H3: 
-(subst0 i u u1 t0)).(\lambda (H4: (eq T t0 u2)).(let H5 \def (eq_ind T t0 
-(\lambda (t: T).(subst0 i u u1 t)) H3 u2 H4) in (ex2_ind T (\lambda (t: 
-T).(subst0 j u1 t1 t)) (\lambda (t: T).(subst0 (S (plus i j)) u t t3)) (ex2 T 
-(\lambda (t: T).(subst1 j u1 t1 t)) (\lambda (t: T).(subst1 (S (plus i j)) u 
-t t3))) (\lambda (x: T).(\lambda (H6: (subst0 j u1 t1 x)).(\lambda (H7: 
-(subst0 (S (plus i j)) u x t3)).(ex_intro2 T (\lambda (t: T).(subst1 j u1 t1 
-t)) (\lambda (t: T).(subst1 (S (plus i j)) u t t3)) x (subst1_single j u1 t1 
-x H6) (subst1_single (S (plus i j)) u x t3 H7))))) (subst0_subst0 t1 t3 u2 j 
-H0 u1 u i H5)))))) y H2))) H1))))))) t2 H))))).
-(* COMMENTS
-Initial nodes: 649
-END *)
+(H: (subst1 j u2 t1 t2)).(let TMP_5 \def (\lambda (t: T).(\forall (u1: 
+T).(\forall (u: T).(\forall (i: nat).((subst1 i u u1 u2) \to (let TMP_1 \def 
+(\lambda (t0: T).(subst1 j u1 t1 t0)) in (let TMP_4 \def (\lambda (t0: 
+T).(let TMP_2 \def (plus i j) in (let TMP_3 \def (S TMP_2) in (subst1 TMP_3 u 
+t0 t)))) in (ex2 T TMP_1 TMP_4)))))))) in (let TMP_14 \def (\lambda (u1: 
+T).(\lambda (u: T).(\lambda (i: nat).(\lambda (_: (subst1 i u u1 u2)).(let 
+TMP_6 \def (\lambda (t: T).(subst1 j u1 t1 t)) in (let TMP_9 \def (\lambda 
+(t: T).(let TMP_7 \def (plus i j) in (let TMP_8 \def (S TMP_7) in (subst1 
+TMP_8 u t t1)))) in (let TMP_10 \def (subst1_refl j u1 t1) in (let TMP_11 
+\def (plus i j) in (let TMP_12 \def (S TMP_11) in (let TMP_13 \def 
+(subst1_refl TMP_12 u t1) in (ex_intro2 T TMP_6 TMP_9 t1 TMP_10 
+TMP_13))))))))))) in (let TMP_63 \def (\lambda (t3: T).(\lambda (H0: (subst0 
+j u2 t1 t3)).(\lambda (u1: T).(\lambda (u: T).(\lambda (i: nat).(\lambda (H1: 
+(subst1 i u u1 u2)).(let TMP_15 \def (\lambda (t: T).(subst1 i u u1 t)) in 
+(let TMP_20 \def (\lambda (_: T).(let TMP_16 \def (\lambda (t0: T).(subst1 j 
+u1 t1 t0)) in (let TMP_19 \def (\lambda (t0: T).(let TMP_17 \def (plus i j) 
+in (let TMP_18 \def (S TMP_17) in (subst1 TMP_18 u t0 t3)))) in (ex2 T TMP_16 
+TMP_19)))) in (let TMP_62 \def (\lambda (y: T).(\lambda (H2: (subst1 i u u1 
+y)).(let TMP_25 \def (\lambda (t: T).((eq T t u2) \to (let TMP_21 \def 
+(\lambda (t0: T).(subst1 j u1 t1 t0)) in (let TMP_24 \def (\lambda (t0: 
+T).(let TMP_22 \def (plus i j) in (let TMP_23 \def (S TMP_22) in (subst1 
+TMP_23 u t0 t3)))) in (ex2 T TMP_21 TMP_24))))) in (let TMP_40 \def (\lambda 
+(H3: (eq T u1 u2)).(let TMP_30 \def (\lambda (t: T).(let TMP_26 \def (\lambda 
+(t0: T).(subst1 j t t1 t0)) in (let TMP_29 \def (\lambda (t0: T).(let TMP_27 
+\def (plus i j) in (let TMP_28 \def (S TMP_27) in (subst1 TMP_28 u t0 t3)))) 
+in (ex2 T TMP_26 TMP_29)))) in (let TMP_31 \def (\lambda (t: T).(subst1 j u2 
+t1 t)) in (let TMP_34 \def (\lambda (t: T).(let TMP_32 \def (plus i j) in 
+(let TMP_33 \def (S TMP_32) in (subst1 TMP_33 u t t3)))) in (let TMP_35 \def 
+(subst1_single j u2 t1 t3 H0) in (let TMP_36 \def (plus i j) in (let TMP_37 
+\def (S TMP_36) in (let TMP_38 \def (subst1_refl TMP_37 u t3) in (let TMP_39 
+\def (ex_intro2 T TMP_31 TMP_34 t3 TMP_35 TMP_38) in (eq_ind_r T u2 TMP_30 
+TMP_39 u1 H3)))))))))) in (let TMP_61 \def (\lambda (t0: T).(\lambda (H3: 
+(subst0 i u u1 t0)).(\lambda (H4: (eq T t0 u2)).(let TMP_41 \def (\lambda (t: 
+T).(subst0 i u u1 t)) in (let H5 \def (eq_ind T t0 TMP_41 H3 u2 H4) in (let 
+TMP_42 \def (\lambda (t: T).(subst0 j u1 t1 t)) in (let TMP_45 \def (\lambda 
+(t: T).(let TMP_43 \def (plus i j) in (let TMP_44 \def (S TMP_43) in (subst0 
+TMP_44 u t t3)))) in (let TMP_46 \def (\lambda (t: T).(subst1 j u1 t1 t)) in 
+(let TMP_49 \def (\lambda (t: T).(let TMP_47 \def (plus i j) in (let TMP_48 
+\def (S TMP_47) in (subst1 TMP_48 u t t3)))) in (let TMP_50 \def (ex2 T 
+TMP_46 TMP_49) in (let TMP_59 \def (\lambda (x: T).(\lambda (H6: (subst0 j u1 
+t1 x)).(\lambda (H7: (subst0 (S (plus i j)) u x t3)).(let TMP_51 \def 
+(\lambda (t: T).(subst1 j u1 t1 t)) in (let TMP_54 \def (\lambda (t: T).(let 
+TMP_52 \def (plus i j) in (let TMP_53 \def (S TMP_52) in (subst1 TMP_53 u t 
+t3)))) in (let TMP_55 \def (subst1_single j u1 t1 x H6) in (let TMP_56 \def 
+(plus i j) in (let TMP_57 \def (S TMP_56) in (let TMP_58 \def (subst1_single 
+TMP_57 u x t3 H7) in (ex_intro2 T TMP_51 TMP_54 x TMP_55 TMP_58)))))))))) in 
+(let TMP_60 \def (subst0_subst0 t1 t3 u2 j H0 u1 u i H5) in (ex2_ind T TMP_42 
+TMP_45 TMP_50 TMP_59 TMP_60))))))))))))) in (subst1_ind i u u1 TMP_25 TMP_40 
+TMP_61 y H2)))))) in (insert_eq T u2 TMP_15 TMP_20 TMP_62 H1)))))))))) in 
+(subst1_ind j u2 t1 TMP_5 TMP_14 TMP_63 t2 H)))))))).
 
 theorem subst1_subst1_back:
  \forall (t1: T).(\forall (t2: T).(\forall (u2: T).(\forall (j: nat).((subst1 
@@ -63,29 +83,45 @@ u u2 u1) \to (ex2 T (\lambda (t: T).(subst1 j u1 t1 t)) (\lambda (t:
 T).(subst1 (S (plus i j)) u t2 t)))))))))))
 \def
  \lambda (t1: T).(\lambda (t2: T).(\lambda (u2: T).(\lambda (j: nat).(\lambda 
-(H: (subst1 j u2 t1 t2)).(subst1_ind j u2 t1 (\lambda (t: T).(\forall (u1: 
-T).(\forall (u: T).(\forall (i: nat).((subst1 i u u2 u1) \to (ex2 T (\lambda 
-(t0: T).(subst1 j u1 t1 t0)) (\lambda (t0: T).(subst1 (S (plus i j)) u t 
-t0)))))))) (\lambda (u1: T).(\lambda (u: T).(\lambda (i: nat).(\lambda (_: 
-(subst1 i u u2 u1)).(ex_intro2 T (\lambda (t: T).(subst1 j u1 t1 t)) (\lambda 
-(t: T).(subst1 (S (plus i j)) u t1 t)) t1 (subst1_refl j u1 t1) (subst1_refl 
-(S (plus i j)) u t1)))))) (\lambda (t3: T).(\lambda (H0: (subst0 j u2 t1 
-t3)).(\lambda (u1: T).(\lambda (u: T).(\lambda (i: nat).(\lambda (H1: (subst1 
-i u u2 u1)).(subst1_ind i u u2 (\lambda (t: T).(ex2 T (\lambda (t0: 
-T).(subst1 j t t1 t0)) (\lambda (t0: T).(subst1 (S (plus i j)) u t3 t0)))) 
-(ex_intro2 T (\lambda (t: T).(subst1 j u2 t1 t)) (\lambda (t: T).(subst1 (S 
-(plus i j)) u t3 t)) t3 (subst1_single j u2 t1 t3 H0) (subst1_refl (S (plus i 
-j)) u t3)) (\lambda (t0: T).(\lambda (H2: (subst0 i u u2 t0)).(ex2_ind T 
-(\lambda (t: T).(subst0 j t0 t1 t)) (\lambda (t: T).(subst0 (S (plus i j)) u 
-t3 t)) (ex2 T (\lambda (t: T).(subst1 j t0 t1 t)) (\lambda (t: T).(subst1 (S 
-(plus i j)) u t3 t))) (\lambda (x: T).(\lambda (H3: (subst0 j t0 t1 
-x)).(\lambda (H4: (subst0 (S (plus i j)) u t3 x)).(ex_intro2 T (\lambda (t: 
-T).(subst1 j t0 t1 t)) (\lambda (t: T).(subst1 (S (plus i j)) u t3 t)) x 
-(subst1_single j t0 t1 x H3) (subst1_single (S (plus i j)) u t3 x H4))))) 
-(subst0_subst0_back t1 t3 u2 j H0 t0 u i H2)))) u1 H1))))))) t2 H))))).
-(* COMMENTS
-Initial nodes: 487
-END *)
+(H: (subst1 j u2 t1 t2)).(let TMP_5 \def (\lambda (t: T).(\forall (u1: 
+T).(\forall (u: T).(\forall (i: nat).((subst1 i u u2 u1) \to (let TMP_1 \def 
+(\lambda (t0: T).(subst1 j u1 t1 t0)) in (let TMP_4 \def (\lambda (t0: 
+T).(let TMP_2 \def (plus i j) in (let TMP_3 \def (S TMP_2) in (subst1 TMP_3 u 
+t t0)))) in (ex2 T TMP_1 TMP_4)))))))) in (let TMP_14 \def (\lambda (u1: 
+T).(\lambda (u: T).(\lambda (i: nat).(\lambda (_: (subst1 i u u2 u1)).(let 
+TMP_6 \def (\lambda (t: T).(subst1 j u1 t1 t)) in (let TMP_9 \def (\lambda 
+(t: T).(let TMP_7 \def (plus i j) in (let TMP_8 \def (S TMP_7) in (subst1 
+TMP_8 u t1 t)))) in (let TMP_10 \def (subst1_refl j u1 t1) in (let TMP_11 
+\def (plus i j) in (let TMP_12 \def (S TMP_11) in (let TMP_13 \def 
+(subst1_refl TMP_12 u t1) in (ex_intro2 T TMP_6 TMP_9 t1 TMP_10 
+TMP_13))))))))))) in (let TMP_49 \def (\lambda (t3: T).(\lambda (H0: (subst0 
+j u2 t1 t3)).(\lambda (u1: T).(\lambda (u: T).(\lambda (i: nat).(\lambda (H1: 
+(subst1 i u u2 u1)).(let TMP_19 \def (\lambda (t: T).(let TMP_15 \def 
+(\lambda (t0: T).(subst1 j t t1 t0)) in (let TMP_18 \def (\lambda (t0: 
+T).(let TMP_16 \def (plus i j) in (let TMP_17 \def (S TMP_16) in (subst1 
+TMP_17 u t3 t0)))) in (ex2 T TMP_15 TMP_18)))) in (let TMP_20 \def (\lambda 
+(t: T).(subst1 j u2 t1 t)) in (let TMP_23 \def (\lambda (t: T).(let TMP_21 
+\def (plus i j) in (let TMP_22 \def (S TMP_21) in (subst1 TMP_22 u t3 t)))) 
+in (let TMP_24 \def (subst1_single j u2 t1 t3 H0) in (let TMP_25 \def (plus i 
+j) in (let TMP_26 \def (S TMP_25) in (let TMP_27 \def (subst1_refl TMP_26 u 
+t3) in (let TMP_28 \def (ex_intro2 T TMP_20 TMP_23 t3 TMP_24 TMP_27) in (let 
+TMP_48 \def (\lambda (t0: T).(\lambda (H2: (subst0 i u u2 t0)).(let TMP_29 
+\def (\lambda (t: T).(subst0 j t0 t1 t)) in (let TMP_32 \def (\lambda (t: 
+T).(let TMP_30 \def (plus i j) in (let TMP_31 \def (S TMP_30) in (subst0 
+TMP_31 u t3 t)))) in (let TMP_33 \def (\lambda (t: T).(subst1 j t0 t1 t)) in 
+(let TMP_36 \def (\lambda (t: T).(let TMP_34 \def (plus i j) in (let TMP_35 
+\def (S TMP_34) in (subst1 TMP_35 u t3 t)))) in (let TMP_37 \def (ex2 T 
+TMP_33 TMP_36) in (let TMP_46 \def (\lambda (x: T).(\lambda (H3: (subst0 j t0 
+t1 x)).(\lambda (H4: (subst0 (S (plus i j)) u t3 x)).(let TMP_38 \def 
+(\lambda (t: T).(subst1 j t0 t1 t)) in (let TMP_41 \def (\lambda (t: T).(let 
+TMP_39 \def (plus i j) in (let TMP_40 \def (S TMP_39) in (subst1 TMP_40 u t3 
+t)))) in (let TMP_42 \def (subst1_single j t0 t1 x H3) in (let TMP_43 \def 
+(plus i j) in (let TMP_44 \def (S TMP_43) in (let TMP_45 \def (subst1_single 
+TMP_44 u t3 x H4) in (ex_intro2 T TMP_38 TMP_41 x TMP_42 TMP_45)))))))))) in 
+(let TMP_47 \def (subst0_subst0_back t1 t3 u2 j H0 t0 u i H2) in (ex2_ind T 
+TMP_29 TMP_32 TMP_37 TMP_46 TMP_47)))))))))) in (subst1_ind i u u2 TMP_19 
+TMP_28 TMP_48 u1 H1)))))))))))))))) in (subst1_ind j u2 t1 TMP_5 TMP_14 
+TMP_49 t2 H)))))))).
 
 theorem subst1_trans:
  \forall (t2: T).(\forall (t1: T).(\forall (v: T).(\forall (i: nat).((subst1 
@@ -93,16 +129,16 @@ i v t1 t2) \to (\forall (t3: T).((subst1 i v t2 t3) \to (subst1 i v t1
 t3)))))))
 \def
  \lambda (t2: T).(\lambda (t1: T).(\lambda (v: T).(\lambda (i: nat).(\lambda 
-(H: (subst1 i v t1 t2)).(subst1_ind i v t1 (\lambda (t: T).(\forall (t3: 
-T).((subst1 i v t t3) \to (subst1 i v t1 t3)))) (\lambda (t3: T).(\lambda 
-(H0: (subst1 i v t1 t3)).H0)) (\lambda (t3: T).(\lambda (H0: (subst0 i v t1 
-t3)).(\lambda (t4: T).(\lambda (H1: (subst1 i v t3 t4)).(subst1_ind i v t3 
-(\lambda (t: T).(subst1 i v t1 t)) (subst1_single i v t1 t3 H0) (\lambda (t0: 
-T).(\lambda (H2: (subst0 i v t3 t0)).(subst1_single i v t1 t0 (subst0_trans 
-t3 t1 v i H0 t0 H2)))) t4 H1))))) t2 H))))).
-(* COMMENTS
-Initial nodes: 165
-END *)
+(H: (subst1 i v t1 t2)).(let TMP_1 \def (\lambda (t: T).(\forall (t3: 
+T).((subst1 i v t t3) \to (subst1 i v t1 t3)))) in (let TMP_2 \def (\lambda 
+(t3: T).(\lambda (H0: (subst1 i v t1 t3)).H0)) in (let TMP_7 \def (\lambda 
+(t3: T).(\lambda (H0: (subst0 i v t1 t3)).(\lambda (t4: T).(\lambda (H1: 
+(subst1 i v t3 t4)).(let TMP_3 \def (\lambda (t: T).(subst1 i v t1 t)) in 
+(let TMP_4 \def (subst1_single i v t1 t3 H0) in (let TMP_6 \def (\lambda (t0: 
+T).(\lambda (H2: (subst0 i v t3 t0)).(let TMP_5 \def (subst0_trans t3 t1 v i 
+H0 t0 H2) in (subst1_single i v t1 t0 TMP_5)))) in (subst1_ind i v t3 TMP_3 
+TMP_4 TMP_6 t4 H1)))))))) in (subst1_ind i v t1 TMP_1 TMP_2 TMP_7 t2 
+H)))))))).
 
 theorem subst1_confluence_neq:
  \forall (t0: T).(\forall (t1: T).(\forall (u1: T).(\forall (i1: 
@@ -111,30 +147,38 @@ nat).((subst1 i1 u1 t0 t1) \to (\forall (t2: T).(\forall (u2: T).(\forall
 (t: T).(subst1 i2 u2 t1 t)) (\lambda (t: T).(subst1 i1 u1 t2 t))))))))))))
 \def
  \lambda (t0: T).(\lambda (t1: T).(\lambda (u1: T).(\lambda (i1: 
-nat).(\lambda (H: (subst1 i1 u1 t0 t1)).(subst1_ind i1 u1 t0 (\lambda (t: 
+nat).(\lambda (H: (subst1 i1 u1 t0 t1)).(let TMP_3 \def (\lambda (t: 
 T).(\forall (t2: T).(\forall (u2: T).(\forall (i2: nat).((subst1 i2 u2 t0 t2) 
-\to ((not (eq nat i1 i2)) \to (ex2 T (\lambda (t3: T).(subst1 i2 u2 t t3)) 
-(\lambda (t3: T).(subst1 i1 u1 t2 t3))))))))) (\lambda (t2: T).(\lambda (u2: 
+\to ((not (eq nat i1 i2)) \to (let TMP_1 \def (\lambda (t3: T).(subst1 i2 u2 
+t t3)) in (let TMP_2 \def (\lambda (t3: T).(subst1 i1 u1 t2 t3)) in (ex2 T 
+TMP_1 TMP_2))))))))) in (let TMP_7 \def (\lambda (t2: T).(\lambda (u2: 
 T).(\lambda (i2: nat).(\lambda (H0: (subst1 i2 u2 t0 t2)).(\lambda (_: (not 
-(eq nat i1 i2))).(ex_intro2 T (\lambda (t: T).(subst1 i2 u2 t0 t)) (\lambda 
-(t: T).(subst1 i1 u1 t2 t)) t2 H0 (subst1_refl i1 u1 t2))))))) (\lambda (t2: 
-T).(\lambda (H0: (subst0 i1 u1 t0 t2)).(\lambda (t3: T).(\lambda (u2: 
-T).(\lambda (i2: nat).(\lambda (H1: (subst1 i2 u2 t0 t3)).(\lambda (H2: (not 
-(eq nat i1 i2))).(subst1_ind i2 u2 t0 (\lambda (t: T).(ex2 T (\lambda (t4: 
-T).(subst1 i2 u2 t2 t4)) (\lambda (t4: T).(subst1 i1 u1 t t4)))) (ex_intro2 T 
-(\lambda (t: T).(subst1 i2 u2 t2 t)) (\lambda (t: T).(subst1 i1 u1 t0 t)) t2 
-(subst1_refl i2 u2 t2) (subst1_single i1 u1 t0 t2 H0)) (\lambda (t4: 
-T).(\lambda (H3: (subst0 i2 u2 t0 t4)).(ex2_ind T (\lambda (t: T).(subst0 i1 
-u1 t4 t)) (\lambda (t: T).(subst0 i2 u2 t2 t)) (ex2 T (\lambda (t: T).(subst1 
-i2 u2 t2 t)) (\lambda (t: T).(subst1 i1 u1 t4 t))) (\lambda (x: T).(\lambda 
-(H4: (subst0 i1 u1 t4 x)).(\lambda (H5: (subst0 i2 u2 t2 x)).(ex_intro2 T 
-(\lambda (t: T).(subst1 i2 u2 t2 t)) (\lambda (t: T).(subst1 i1 u1 t4 t)) x 
-(subst1_single i2 u2 t2 x H5) (subst1_single i1 u1 t4 x H4))))) 
-(subst0_confluence_neq t0 t4 u2 i2 H3 t2 u1 i1 H0 (sym_not_eq nat i1 i2 
-H2))))) t3 H1)))))))) t1 H))))).
-(* COMMENTS
-Initial nodes: 455
-END *)
+(eq nat i1 i2))).(let TMP_4 \def (\lambda (t: T).(subst1 i2 u2 t0 t)) in (let 
+TMP_5 \def (\lambda (t: T).(subst1 i1 u1 t2 t)) in (let TMP_6 \def 
+(subst1_refl i1 u1 t2) in (ex_intro2 T TMP_4 TMP_5 t2 H0 TMP_6))))))))) in 
+(let TMP_29 \def (\lambda (t2: T).(\lambda (H0: (subst0 i1 u1 t0 
+t2)).(\lambda (t3: T).(\lambda (u2: T).(\lambda (i2: nat).(\lambda (H1: 
+(subst1 i2 u2 t0 t3)).(\lambda (H2: (not (eq nat i1 i2))).(let TMP_10 \def 
+(\lambda (t: T).(let TMP_8 \def (\lambda (t4: T).(subst1 i2 u2 t2 t4)) in 
+(let TMP_9 \def (\lambda (t4: T).(subst1 i1 u1 t t4)) in (ex2 T TMP_8 
+TMP_9)))) in (let TMP_11 \def (\lambda (t: T).(subst1 i2 u2 t2 t)) in (let 
+TMP_12 \def (\lambda (t: T).(subst1 i1 u1 t0 t)) in (let TMP_13 \def 
+(subst1_refl i2 u2 t2) in (let TMP_14 \def (subst1_single i1 u1 t0 t2 H0) in 
+(let TMP_15 \def (ex_intro2 T TMP_11 TMP_12 t2 TMP_13 TMP_14) in (let TMP_28 
+\def (\lambda (t4: T).(\lambda (H3: (subst0 i2 u2 t0 t4)).(let TMP_16 \def 
+(\lambda (t: T).(subst0 i1 u1 t4 t)) in (let TMP_17 \def (\lambda (t: 
+T).(subst0 i2 u2 t2 t)) in (let TMP_18 \def (\lambda (t: T).(subst1 i2 u2 t2 
+t)) in (let TMP_19 \def (\lambda (t: T).(subst1 i1 u1 t4 t)) in (let TMP_20 
+\def (ex2 T TMP_18 TMP_19) in (let TMP_25 \def (\lambda (x: T).(\lambda (H4: 
+(subst0 i1 u1 t4 x)).(\lambda (H5: (subst0 i2 u2 t2 x)).(let TMP_21 \def 
+(\lambda (t: T).(subst1 i2 u2 t2 t)) in (let TMP_22 \def (\lambda (t: 
+T).(subst1 i1 u1 t4 t)) in (let TMP_23 \def (subst1_single i2 u2 t2 x H5) in 
+(let TMP_24 \def (subst1_single i1 u1 t4 x H4) in (ex_intro2 T TMP_21 TMP_22 
+x TMP_23 TMP_24)))))))) in (let TMP_26 \def (sym_not_eq nat i1 i2 H2) in (let 
+TMP_27 \def (subst0_confluence_neq t0 t4 u2 i2 H3 t2 u1 i1 H0 TMP_26) in 
+(ex2_ind T TMP_16 TMP_17 TMP_20 TMP_25 TMP_27))))))))))) in (subst1_ind i2 u2 
+t0 TMP_10 TMP_15 TMP_28 t3 H1))))))))))))))) in (subst1_ind i1 u1 t0 TMP_3 
+TMP_7 TMP_29 t1 H)))))))).
 
 theorem subst1_confluence_eq:
  \forall (t0: T).(\forall (t1: T).(\forall (u: T).(\forall (i: nat).((subst1 
@@ -142,38 +186,56 @@ i u t0 t1) \to (\forall (t2: T).((subst1 i u t0 t2) \to (ex2 T (\lambda (t:
 T).(subst1 i u t1 t)) (\lambda (t: T).(subst1 i u t2 t)))))))))
 \def
  \lambda (t0: T).(\lambda (t1: T).(\lambda (u: T).(\lambda (i: nat).(\lambda 
-(H: (subst1 i u t0 t1)).(subst1_ind i u t0 (\lambda (t: T).(\forall (t2: 
-T).((subst1 i u t0 t2) \to (ex2 T (\lambda (t3: T).(subst1 i u t t3)) 
-(\lambda (t3: T).(subst1 i u t2 t3)))))) (\lambda (t2: T).(\lambda (H0: 
-(subst1 i u t0 t2)).(ex_intro2 T (\lambda (t: T).(subst1 i u t0 t)) (\lambda 
-(t: T).(subst1 i u t2 t)) t2 H0 (subst1_refl i u t2)))) (\lambda (t2: 
+(H: (subst1 i u t0 t1)).(let TMP_3 \def (\lambda (t: T).(\forall (t2: 
+T).((subst1 i u t0 t2) \to (let TMP_1 \def (\lambda (t3: T).(subst1 i u t 
+t3)) in (let TMP_2 \def (\lambda (t3: T).(subst1 i u t2 t3)) in (ex2 T TMP_1 
+TMP_2)))))) in (let TMP_7 \def (\lambda (t2: T).(\lambda (H0: (subst1 i u t0 
+t2)).(let TMP_4 \def (\lambda (t: T).(subst1 i u t0 t)) in (let TMP_5 \def 
+(\lambda (t: T).(subst1 i u t2 t)) in (let TMP_6 \def (subst1_refl i u t2) in 
+(ex_intro2 T TMP_4 TMP_5 t2 H0 TMP_6)))))) in (let TMP_57 \def (\lambda (t2: 
 T).(\lambda (H0: (subst0 i u t0 t2)).(\lambda (t3: T).(\lambda (H1: (subst1 i 
-u t0 t3)).(subst1_ind i u t0 (\lambda (t: T).(ex2 T (\lambda (t4: T).(subst1 
-i u t2 t4)) (\lambda (t4: T).(subst1 i u t t4)))) (ex_intro2 T (\lambda (t: 
-T).(subst1 i u t2 t)) (\lambda (t: T).(subst1 i u t0 t)) t2 (subst1_refl i u 
-t2) (subst1_single i u t0 t2 H0)) (\lambda (t4: T).(\lambda (H2: (subst0 i u 
-t0 t4)).(or4_ind (eq T t4 t2) (ex2 T (\lambda (t: T).(subst0 i u t4 t)) 
-(\lambda (t: T).(subst0 i u t2 t))) (subst0 i u t4 t2) (subst0 i u t2 t4) 
-(ex2 T (\lambda (t: T).(subst1 i u t2 t)) (\lambda (t: T).(subst1 i u t4 t))) 
-(\lambda (H3: (eq T t4 t2)).(eq_ind_r T t2 (\lambda (t: T).(ex2 T (\lambda 
-(t5: T).(subst1 i u t2 t5)) (\lambda (t5: T).(subst1 i u t t5)))) (ex_intro2 
-T (\lambda (t: T).(subst1 i u t2 t)) (\lambda (t: T).(subst1 i u t2 t)) t2 
-(subst1_refl i u t2) (subst1_refl i u t2)) t4 H3)) (\lambda (H3: (ex2 T 
-(\lambda (t: T).(subst0 i u t4 t)) (\lambda (t: T).(subst0 i u t2 
-t)))).(ex2_ind T (\lambda (t: T).(subst0 i u t4 t)) (\lambda (t: T).(subst0 i 
-u t2 t)) (ex2 T (\lambda (t: T).(subst1 i u t2 t)) (\lambda (t: T).(subst1 i 
-u t4 t))) (\lambda (x: T).(\lambda (H4: (subst0 i u t4 x)).(\lambda (H5: 
-(subst0 i u t2 x)).(ex_intro2 T (\lambda (t: T).(subst1 i u t2 t)) (\lambda 
-(t: T).(subst1 i u t4 t)) x (subst1_single i u t2 x H5) (subst1_single i u t4 
-x H4))))) H3)) (\lambda (H3: (subst0 i u t4 t2)).(ex_intro2 T (\lambda (t: 
-T).(subst1 i u t2 t)) (\lambda (t: T).(subst1 i u t4 t)) t2 (subst1_refl i u 
-t2) (subst1_single i u t4 t2 H3))) (\lambda (H3: (subst0 i u t2 
-t4)).(ex_intro2 T (\lambda (t: T).(subst1 i u t2 t)) (\lambda (t: T).(subst1 
-i u t4 t)) t4 (subst1_single i u t2 t4 H3) (subst1_refl i u t4))) 
-(subst0_confluence_eq t0 t4 u i H2 t2 H0)))) t3 H1))))) t1 H))))).
-(* COMMENTS
-Initial nodes: 729
-END *)
+u t0 t3)).(let TMP_10 \def (\lambda (t: T).(let TMP_8 \def (\lambda (t4: 
+T).(subst1 i u t2 t4)) in (let TMP_9 \def (\lambda (t4: T).(subst1 i u t t4)) 
+in (ex2 T TMP_8 TMP_9)))) in (let TMP_11 \def (\lambda (t: T).(subst1 i u t2 
+t)) in (let TMP_12 \def (\lambda (t: T).(subst1 i u t0 t)) in (let TMP_13 
+\def (subst1_refl i u t2) in (let TMP_14 \def (subst1_single i u t0 t2 H0) in 
+(let TMP_15 \def (ex_intro2 T TMP_11 TMP_12 t2 TMP_13 TMP_14) in (let TMP_56 
+\def (\lambda (t4: T).(\lambda (H2: (subst0 i u t0 t4)).(let TMP_16 \def (eq 
+T t4 t2) in (let TMP_17 \def (\lambda (t: T).(subst0 i u t4 t)) in (let 
+TMP_18 \def (\lambda (t: T).(subst0 i u t2 t)) in (let TMP_19 \def (ex2 T 
+TMP_17 TMP_18) in (let TMP_20 \def (subst0 i u t4 t2) in (let TMP_21 \def 
+(subst0 i u t2 t4) in (let TMP_22 \def (\lambda (t: T).(subst1 i u t2 t)) in 
+(let TMP_23 \def (\lambda (t: T).(subst1 i u t4 t)) in (let TMP_24 \def (ex2 
+T TMP_22 TMP_23) in (let TMP_33 \def (\lambda (H3: (eq T t4 t2)).(let TMP_27 
+\def (\lambda (t: T).(let TMP_25 \def (\lambda (t5: T).(subst1 i u t2 t5)) in 
+(let TMP_26 \def (\lambda (t5: T).(subst1 i u t t5)) in (ex2 T TMP_25 
+TMP_26)))) in (let TMP_28 \def (\lambda (t: T).(subst1 i u t2 t)) in (let 
+TMP_29 \def (\lambda (t: T).(subst1 i u t2 t)) in (let TMP_30 \def 
+(subst1_refl i u t2) in (let TMP_31 \def (subst1_refl i u t2) in (let TMP_32 
+\def (ex_intro2 T TMP_28 TMP_29 t2 TMP_30 TMP_31) in (eq_ind_r T t2 TMP_27 
+TMP_32 t4 H3)))))))) in (let TMP_44 \def (\lambda (H3: (ex2 T (\lambda (t: 
+T).(subst0 i u t4 t)) (\lambda (t: T).(subst0 i u t2 t)))).(let TMP_34 \def 
+(\lambda (t: T).(subst0 i u t4 t)) in (let TMP_35 \def (\lambda (t: 
+T).(subst0 i u t2 t)) in (let TMP_36 \def (\lambda (t: T).(subst1 i u t2 t)) 
+in (let TMP_37 \def (\lambda (t: T).(subst1 i u t4 t)) in (let TMP_38 \def 
+(ex2 T TMP_36 TMP_37) in (let TMP_43 \def (\lambda (x: T).(\lambda (H4: 
+(subst0 i u t4 x)).(\lambda (H5: (subst0 i u t2 x)).(let TMP_39 \def (\lambda 
+(t: T).(subst1 i u t2 t)) in (let TMP_40 \def (\lambda (t: T).(subst1 i u t4 
+t)) in (let TMP_41 \def (subst1_single i u t2 x H5) in (let TMP_42 \def 
+(subst1_single i u t4 x H4) in (ex_intro2 T TMP_39 TMP_40 x TMP_41 
+TMP_42)))))))) in (ex2_ind T TMP_34 TMP_35 TMP_38 TMP_43 H3)))))))) in (let 
+TMP_49 \def (\lambda (H3: (subst0 i u t4 t2)).(let TMP_45 \def (\lambda (t: 
+T).(subst1 i u t2 t)) in (let TMP_46 \def (\lambda (t: T).(subst1 i u t4 t)) 
+in (let TMP_47 \def (subst1_refl i u t2) in (let TMP_48 \def (subst1_single i 
+u t4 t2 H3) in (ex_intro2 T TMP_45 TMP_46 t2 TMP_47 TMP_48)))))) in (let 
+TMP_54 \def (\lambda (H3: (subst0 i u t2 t4)).(let TMP_50 \def (\lambda (t: 
+T).(subst1 i u t2 t)) in (let TMP_51 \def (\lambda (t: T).(subst1 i u t4 t)) 
+in (let TMP_52 \def (subst1_single i u t2 t4 H3) in (let TMP_53 \def 
+(subst1_refl i u t4) in (ex_intro2 T TMP_50 TMP_51 t4 TMP_52 TMP_53)))))) in 
+(let TMP_55 \def (subst0_confluence_eq t0 t4 u i H2 t2 H0) in (or4_ind TMP_16 
+TMP_19 TMP_20 TMP_21 TMP_24 TMP_33 TMP_44 TMP_49 TMP_54 
+TMP_55))))))))))))))))) in (subst1_ind i u t0 TMP_10 TMP_15 TMP_56 t3 
+H1)))))))))))) in (subst1_ind i u t0 TMP_3 TMP_7 TMP_57 t1 H)))))))).
 
 theorem subst1_confluence_lift:
  \forall (t0: T).(\forall (t1: T).(\forall (u: T).(\forall (i: nat).((subst1 
@@ -181,34 +243,57 @@ i u t0 (lift (S O) i t1)) \to (\forall (t2: T).((subst1 i u t0 (lift (S O) i
 t2)) \to (eq T t1 t2)))))))
 \def
  \lambda (t0: T).(\lambda (t1: T).(\lambda (u: T).(\lambda (i: nat).(\lambda 
-(H: (subst1 i u t0 (lift (S O) i t1))).(insert_eq T (lift (S O) i t1) 
-(\lambda (t: T).(subst1 i u t0 t)) (\lambda (_: T).(\forall (t2: T).((subst1 
-i u t0 (lift (S O) i t2)) \to (eq T t1 t2)))) (\lambda (y: T).(\lambda (H0: 
-(subst1 i u t0 y)).(subst1_ind i u t0 (\lambda (t: T).((eq T t (lift (S O) i 
-t1)) \to (\forall (t2: T).((subst1 i u t0 (lift (S O) i t2)) \to (eq T t1 
-t2))))) (\lambda (H1: (eq T t0 (lift (S O) i t1))).(\lambda (t2: T).(\lambda 
-(H2: (subst1 i u t0 (lift (S O) i t2))).(let H3 \def (eq_ind T t0 (\lambda 
-(t: T).(subst1 i u t (lift (S O) i t2))) H2 (lift (S O) i t1) H1) in (let H4 
-\def (sym_eq T (lift (S O) i t2) (lift (S O) i t1) (subst1_gen_lift_eq t1 u 
-(lift (S O) i t2) (S O) i i (le_n i) (eq_ind_r nat (plus (S O) i) (\lambda 
-(n: nat).(lt i n)) (le_n (plus (S O) i)) (plus i (S O)) (plus_sym i (S O))) 
-H3)) in (lift_inj t1 t2 (S O) i H4)))))) (\lambda (t2: T).(\lambda (H1: 
-(subst0 i u t0 t2)).(\lambda (H2: (eq T t2 (lift (S O) i t1))).(\lambda (t3: 
-T).(\lambda (H3: (subst1 i u t0 (lift (S O) i t3))).(let H4 \def (eq_ind T t2 
-(\lambda (t: T).(subst0 i u t0 t)) H1 (lift (S O) i t1) H2) in (insert_eq T 
-(lift (S O) i t3) (\lambda (t: T).(subst1 i u t0 t)) (\lambda (_: T).(eq T t1 
-t3)) (\lambda (y0: T).(\lambda (H5: (subst1 i u t0 y0)).(subst1_ind i u t0 
-(\lambda (t: T).((eq T t (lift (S O) i t3)) \to (eq T t1 t3))) (\lambda (H6: 
-(eq T t0 (lift (S O) i t3))).(let H7 \def (eq_ind T t0 (\lambda (t: 
-T).(subst0 i u t (lift (S O) i t1))) H4 (lift (S O) i t3) H6) in 
-(subst0_gen_lift_false t3 u (lift (S O) i t1) (S O) i i (le_n i) (eq_ind_r 
-nat (plus (S O) i) (\lambda (n: nat).(lt i n)) (le_n (plus (S O) i)) (plus i 
-(S O)) (plus_sym i (S O))) H7 (eq T t1 t3)))) (\lambda (t4: T).(\lambda (H6: 
-(subst0 i u t0 t4)).(\lambda (H7: (eq T t4 (lift (S O) i t3))).(let H8 \def 
-(eq_ind T t4 (\lambda (t: T).(subst0 i u t0 t)) H6 (lift (S O) i t3) H7) in 
-(sym_eq T t3 t1 (subst0_confluence_lift t0 t3 u i H8 t1 H4)))))) y0 H5))) 
-H3))))))) y H0))) H))))).
-(* COMMENTS
-Initial nodes: 735
-END *)
+(H: (subst1 i u t0 (lift (S O) i t1))).(let TMP_1 \def (S O) in (let TMP_2 
+\def (lift TMP_1 i t1) in (let TMP_3 \def (\lambda (t: T).(subst1 i u t0 t)) 
+in (let TMP_4 \def (\lambda (_: T).(\forall (t2: T).((subst1 i u t0 (lift (S 
+O) i t2)) \to (eq T t1 t2)))) in (let TMP_70 \def (\lambda (y: T).(\lambda 
+(H0: (subst1 i u t0 y)).(let TMP_5 \def (\lambda (t: T).((eq T t (lift (S O) 
+i t1)) \to (\forall (t2: T).((subst1 i u t0 (lift (S O) i t2)) \to (eq T t1 
+t2))))) in (let TMP_32 \def (\lambda (H1: (eq T t0 (lift (S O) i 
+t1))).(\lambda (t2: T).(\lambda (H2: (subst1 i u t0 (lift (S O) i t2))).(let 
+TMP_8 \def (\lambda (t: T).(let TMP_6 \def (S O) in (let TMP_7 \def (lift 
+TMP_6 i t2) in (subst1 i u t TMP_7)))) in (let TMP_9 \def (S O) in (let 
+TMP_10 \def (lift TMP_9 i t1) in (let H3 \def (eq_ind T t0 TMP_8 H2 TMP_10 
+H1) in (let TMP_11 \def (S O) in (let TMP_12 \def (lift TMP_11 i t2) in (let 
+TMP_13 \def (S O) in (let TMP_14 \def (lift TMP_13 i t1) in (let TMP_15 \def 
+(S O) in (let TMP_16 \def (lift TMP_15 i t2) in (let TMP_17 \def (S O) in 
+(let TMP_18 \def (le_n i) in (let TMP_19 \def (S O) in (let TMP_20 \def (plus 
+TMP_19 i) in (let TMP_21 \def (\lambda (n: nat).(lt i n)) in (let TMP_22 \def 
+(S O) in (let TMP_23 \def (plus TMP_22 i) in (let TMP_24 \def (le_n TMP_23) 
+in (let TMP_25 \def (S O) in (let TMP_26 \def (plus i TMP_25) in (let TMP_27 
+\def (S O) in (let TMP_28 \def (plus_sym i TMP_27) in (let TMP_29 \def 
+(eq_ind_r nat TMP_20 TMP_21 TMP_24 TMP_26 TMP_28) in (let TMP_30 \def 
+(subst1_gen_lift_eq t1 u TMP_16 TMP_17 i i TMP_18 TMP_29 H3) in (let H4 \def 
+(sym_eq T TMP_12 TMP_14 TMP_30) in (let TMP_31 \def (S O) in (lift_inj t1 t2 
+TMP_31 i H4)))))))))))))))))))))))))))))) in (let TMP_69 \def (\lambda (t2: 
+T).(\lambda (H1: (subst0 i u t0 t2)).(\lambda (H2: (eq T t2 (lift (S O) i 
+t1))).(\lambda (t3: T).(\lambda (H3: (subst1 i u t0 (lift (S O) i t3))).(let 
+TMP_33 \def (\lambda (t: T).(subst0 i u t0 t)) in (let TMP_34 \def (S O) in 
+(let TMP_35 \def (lift TMP_34 i t1) in (let H4 \def (eq_ind T t2 TMP_33 H1 
+TMP_35 H2) in (let TMP_36 \def (S O) in (let TMP_37 \def (lift TMP_36 i t3) 
+in (let TMP_38 \def (\lambda (t: T).(subst1 i u t0 t)) in (let TMP_39 \def 
+(\lambda (_: T).(eq T t1 t3)) in (let TMP_68 \def (\lambda (y0: T).(\lambda 
+(H5: (subst1 i u t0 y0)).(let TMP_40 \def (\lambda (t: T).((eq T t (lift (S 
+O) i t3)) \to (eq T t1 t3))) in (let TMP_62 \def (\lambda (H6: (eq T t0 (lift 
+(S O) i t3))).(let TMP_43 \def (\lambda (t: T).(let TMP_41 \def (S O) in (let 
+TMP_42 \def (lift TMP_41 i t1) in (subst0 i u t TMP_42)))) in (let TMP_44 
+\def (S O) in (let TMP_45 \def (lift TMP_44 i t3) in (let H7 \def (eq_ind T 
+t0 TMP_43 H4 TMP_45 H6) in (let TMP_46 \def (S O) in (let TMP_47 \def (lift 
+TMP_46 i t1) in (let TMP_48 \def (S O) in (let TMP_49 \def (le_n i) in (let 
+TMP_50 \def (S O) in (let TMP_51 \def (plus TMP_50 i) in (let TMP_52 \def 
+(\lambda (n: nat).(lt i n)) in (let TMP_53 \def (S O) in (let TMP_54 \def 
+(plus TMP_53 i) in (let TMP_55 \def (le_n TMP_54) in (let TMP_56 \def (S O) 
+in (let TMP_57 \def (plus i TMP_56) in (let TMP_58 \def (S O) in (let TMP_59 
+\def (plus_sym i TMP_58) in (let TMP_60 \def (eq_ind_r nat TMP_51 TMP_52 
+TMP_55 TMP_57 TMP_59) in (let TMP_61 \def (eq T t1 t3) in 
+(subst0_gen_lift_false t3 u TMP_47 TMP_48 i i TMP_49 TMP_60 H7 
+TMP_61)))))))))))))))))))))) in (let TMP_67 \def (\lambda (t4: T).(\lambda 
+(H6: (subst0 i u t0 t4)).(\lambda (H7: (eq T t4 (lift (S O) i t3))).(let 
+TMP_63 \def (\lambda (t: T).(subst0 i u t0 t)) in (let TMP_64 \def (S O) in 
+(let TMP_65 \def (lift TMP_64 i t3) in (let H8 \def (eq_ind T t4 TMP_63 H6 
+TMP_65 H7) in (let TMP_66 \def (subst0_confluence_lift t0 t3 u i H8 t1 H4) in 
+(sym_eq T t3 t1 TMP_66))))))))) in (subst1_ind i u t0 TMP_40 TMP_62 TMP_67 y0 
+H5)))))) in (insert_eq T TMP_37 TMP_38 TMP_39 TMP_68 H3))))))))))))))) in 
+(subst1_ind i u t0 TMP_5 TMP_32 TMP_69 y H0)))))) in (insert_eq T TMP_2 TMP_3 
+TMP_4 TMP_70 H)))))))))).