]> matita.cs.unibo.it Git - helm.git/commitdiff
legacy_1, ground_1, and basic_1 recommitted without anticipation
authorFerruccio Guidi <ferruccio.guidi@unibo.it>
Fri, 6 Mar 2015 19:17:48 +0000 (19:17 +0000)
committerFerruccio Guidi <ferruccio.guidi@unibo.it>
Fri, 6 Mar 2015 19:17:48 +0000 (19:17 +0000)
this seems to be the fastest solution for now

169 files changed:
matita/matita/contribs/lambdadelta/basic_1/A/fwd.ma
matita/matita/contribs/lambdadelta/basic_1/C/defs.ma
matita/matita/contribs/lambdadelta/basic_1/C/fwd.ma
matita/matita/contribs/lambdadelta/basic_1/C/props.ma
matita/matita/contribs/lambdadelta/basic_1/T/dec.ma
matita/matita/contribs/lambdadelta/basic_1/T/defs.ma
matita/matita/contribs/lambdadelta/basic_1/T/fwd.ma
matita/matita/contribs/lambdadelta/basic_1/T/props.ma
matita/matita/contribs/lambdadelta/basic_1/aplus/defs.ma
matita/matita/contribs/lambdadelta/basic_1/aplus/props.ma
matita/matita/contribs/lambdadelta/basic_1/app/defs.ma
matita/matita/contribs/lambdadelta/basic_1/aprem/fwd.ma
matita/matita/contribs/lambdadelta/basic_1/aprem/props.ma
matita/matita/contribs/lambdadelta/basic_1/arity/aprem.ma
matita/matita/contribs/lambdadelta/basic_1/arity/cimp.ma
matita/matita/contribs/lambdadelta/basic_1/arity/lift1.ma
matita/matita/contribs/lambdadelta/basic_1/arity/props.ma
matita/matita/contribs/lambdadelta/basic_1/asucc/defs.ma
matita/matita/contribs/lambdadelta/basic_1/asucc/fwd.ma
matita/matita/contribs/lambdadelta/basic_1/cimp/defs.ma
matita/matita/contribs/lambdadelta/basic_1/cimp/props.ma
matita/matita/contribs/lambdadelta/basic_1/clear/drop.ma
matita/matita/contribs/lambdadelta/basic_1/clear/fwd.ma
matita/matita/contribs/lambdadelta/basic_1/clear/props.ma
matita/matita/contribs/lambdadelta/basic_1/clen/defs.ma
matita/matita/contribs/lambdadelta/basic_1/clen/getl.ma
matita/matita/contribs/lambdadelta/basic_1/cnt/fwd.ma
matita/matita/contribs/lambdadelta/basic_1/cnt/props.ma
matita/matita/contribs/lambdadelta/basic_1/csuba/arity.ma
matita/matita/contribs/lambdadelta/basic_1/csuba/clear.ma
matita/matita/contribs/lambdadelta/basic_1/csuba/props.ma
matita/matita/contribs/lambdadelta/basic_1/csubc/arity.ma
matita/matita/contribs/lambdadelta/basic_1/csubc/clear.ma
matita/matita/contribs/lambdadelta/basic_1/csubc/csuba.ma
matita/matita/contribs/lambdadelta/basic_1/csubc/drop.ma
matita/matita/contribs/lambdadelta/basic_1/csubc/drop1.ma
matita/matita/contribs/lambdadelta/basic_1/csubc/getl.ma
matita/matita/contribs/lambdadelta/basic_1/csubc/props.ma
matita/matita/contribs/lambdadelta/basic_1/csubst0/props.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/csubt/clear.ma
matita/matita/contribs/lambdadelta/basic_1/csubt/csuba.ma
matita/matita/contribs/lambdadelta/basic_1/csubt/drop.ma
matita/matita/contribs/lambdadelta/basic_1/csubt/fwd.ma
matita/matita/contribs/lambdadelta/basic_1/csubt/getl.ma
matita/matita/contribs/lambdadelta/basic_1/csubt/pc3.ma
matita/matita/contribs/lambdadelta/basic_1/csubt/props.ma
matita/matita/contribs/lambdadelta/basic_1/csubt/ty3.ma
matita/matita/contribs/lambdadelta/basic_1/csubv/drop.ma
matita/matita/contribs/lambdadelta/basic_1/csubv/fwd.ma
matita/matita/contribs/lambdadelta/basic_1/csubv/getl.ma
matita/matita/contribs/lambdadelta/basic_1/csubv/props.ma
matita/matita/contribs/lambdadelta/basic_1/drop/fwd.ma
matita/matita/contribs/lambdadelta/basic_1/drop/props.ma
matita/matita/contribs/lambdadelta/basic_1/drop1/defs.ma
matita/matita/contribs/lambdadelta/basic_1/drop1/fwd.ma
matita/matita/contribs/lambdadelta/basic_1/drop1/getl.ma
matita/matita/contribs/lambdadelta/basic_1/drop1/props.ma
matita/matita/contribs/lambdadelta/basic_1/ex0/fwd.ma
matita/matita/contribs/lambdadelta/basic_1/ex0/props.ma
matita/matita/contribs/lambdadelta/basic_1/ex1/defs.ma
matita/matita/contribs/lambdadelta/basic_1/ex2/defs.ma
matita/matita/contribs/lambdadelta/basic_1/ex2/props.ma
matita/matita/contribs/lambdadelta/basic_1/flt/defs.ma
matita/matita/contribs/lambdadelta/basic_1/flt/fwd.ma
matita/matita/contribs/lambdadelta/basic_1/flt/props.ma
matita/matita/contribs/lambdadelta/basic_1/fsubst0/fwd.ma
matita/matita/contribs/lambdadelta/basic_1/getl/clear.ma
matita/matita/contribs/lambdadelta/basic_1/getl/dec.ma
matita/matita/contribs/lambdadelta/basic_1/getl/flt.ma
matita/matita/contribs/lambdadelta/basic_1/getl/fwd.ma
matita/matita/contribs/lambdadelta/basic_1/getl/getl.ma
matita/matita/contribs/lambdadelta/basic_1/getl/props.ma
matita/matita/contribs/lambdadelta/basic_1/iso/fwd.ma
matita/matita/contribs/lambdadelta/basic_1/iso/props.ma
matita/matita/contribs/lambdadelta/basic_1/leq/asucc.ma
matita/matita/contribs/lambdadelta/basic_1/leq/fwd.ma
matita/matita/contribs/lambdadelta/basic_1/leq/props.ma
matita/matita/contribs/lambdadelta/basic_1/lift/defs.ma
matita/matita/contribs/lambdadelta/basic_1/lift/fwd.ma
matita/matita/contribs/lambdadelta/basic_1/lift/props.ma
matita/matita/contribs/lambdadelta/basic_1/lift/tlt.ma
matita/matita/contribs/lambdadelta/basic_1/lift1/defs.ma
matita/matita/contribs/lambdadelta/basic_1/lift1/drop1.ma
matita/matita/contribs/lambdadelta/basic_1/lift1/props.ma
matita/matita/contribs/lambdadelta/basic_1/llt/defs.ma
matita/matita/contribs/lambdadelta/basic_1/llt/fwd.ma
matita/matita/contribs/lambdadelta/basic_1/llt/props.ma
matita/matita/contribs/lambdadelta/basic_1/next_plus/defs.ma
matita/matita/contribs/lambdadelta/basic_1/next_plus/props.ma
matita/matita/contribs/lambdadelta/basic_1/nf2/dec.ma
matita/matita/contribs/lambdadelta/basic_1/nf2/defs.ma
matita/matita/contribs/lambdadelta/basic_1/nf2/fwd.ma
matita/matita/contribs/lambdadelta/basic_1/nf2/iso.ma
matita/matita/contribs/lambdadelta/basic_1/nf2/lift1.ma
matita/matita/contribs/lambdadelta/basic_1/nf2/pr3.ma
matita/matita/contribs/lambdadelta/basic_1/nf2/props.ma
matita/matita/contribs/lambdadelta/basic_1/pc1/defs.ma
matita/matita/contribs/lambdadelta/basic_1/pc1/props.ma
matita/matita/contribs/lambdadelta/basic_1/pc3/dec.ma
matita/matita/contribs/lambdadelta/basic_1/pc3/defs.ma
matita/matita/contribs/lambdadelta/basic_1/pc3/fsubst0.ma
matita/matita/contribs/lambdadelta/basic_1/pc3/left.ma
matita/matita/contribs/lambdadelta/basic_1/pc3/nf2.ma
matita/matita/contribs/lambdadelta/basic_1/pc3/pc1.ma
matita/matita/contribs/lambdadelta/basic_1/pc3/props.ma
matita/matita/contribs/lambdadelta/basic_1/pc3/subst1.ma
matita/matita/contribs/lambdadelta/basic_1/pc3/wcpr0.ma
matita/matita/contribs/lambdadelta/basic_1/pr0/props.ma
matita/matita/contribs/lambdadelta/basic_1/pr0/subst1.ma
matita/matita/contribs/lambdadelta/basic_1/pr1/fwd.ma
matita/matita/contribs/lambdadelta/basic_1/pr1/pr1.ma
matita/matita/contribs/lambdadelta/basic_1/pr1/props.ma
matita/matita/contribs/lambdadelta/basic_1/pr2/clen.ma
matita/matita/contribs/lambdadelta/basic_1/pr2/pr2.ma
matita/matita/contribs/lambdadelta/basic_1/pr3/fwd.ma
matita/matita/contribs/lambdadelta/basic_1/pr3/pr1.ma
matita/matita/contribs/lambdadelta/basic_1/pr3/pr3.ma
matita/matita/contribs/lambdadelta/basic_1/pr3/subst1.ma
matita/matita/contribs/lambdadelta/basic_1/pr3/wcpr0.ma
matita/matita/contribs/lambdadelta/basic_1/r/props.ma
matita/matita/contribs/lambdadelta/basic_1/s/fwd.ma
matita/matita/contribs/lambdadelta/basic_1/s/props.ma
matita/matita/contribs/lambdadelta/basic_1/sc3/arity.ma
matita/matita/contribs/lambdadelta/basic_1/sc3/defs.ma
matita/matita/contribs/lambdadelta/basic_1/sc3/props.ma
matita/matita/contribs/lambdadelta/basic_1/sn3/defs.ma
matita/matita/contribs/lambdadelta/basic_1/sn3/fwd.ma
matita/matita/contribs/lambdadelta/basic_1/sn3/lift1.ma
matita/matita/contribs/lambdadelta/basic_1/sn3/nf2.ma
matita/matita/contribs/lambdadelta/basic_1/sty1/cnt.ma
matita/matita/contribs/lambdadelta/basic_1/subst/defs.ma
matita/matita/contribs/lambdadelta/basic_1/subst/props.ma
matita/matita/contribs/lambdadelta/basic_1/subst0/dec.ma
matita/matita/contribs/lambdadelta/basic_1/subst0/props.ma
matita/matita/contribs/lambdadelta/basic_1/subst0/tlt.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
matita/matita/contribs/lambdadelta/basic_1/tlist/defs.ma
matita/matita/contribs/lambdadelta/basic_1/tlist/fwd.ma
matita/matita/contribs/lambdadelta/basic_1/tlist/props.ma
matita/matita/contribs/lambdadelta/basic_1/tlt/defs.ma
matita/matita/contribs/lambdadelta/basic_1/tlt/fwd.ma
matita/matita/contribs/lambdadelta/basic_1/tlt/props.ma
matita/matita/contribs/lambdadelta/basic_1/ty3/arity.ma
matita/matita/contribs/lambdadelta/basic_1/ty3/arity_props.ma
matita/matita/contribs/lambdadelta/basic_1/ty3/fwd_nf2.ma
matita/matita/contribs/lambdadelta/basic_1/ty3/nf2.ma
matita/matita/contribs/lambdadelta/basic_1/ty3/props.ma
matita/matita/contribs/lambdadelta/basic_1/ty3/sty0.ma
matita/matita/contribs/lambdadelta/basic_1/wcpr0/fwd.ma
matita/matita/contribs/lambdadelta/basic_1/wcpr0/getl.ma
matita/matita/contribs/lambdadelta/basic_1/wf3/clear.ma
matita/matita/contribs/lambdadelta/basic_1/wf3/fwd.ma
matita/matita/contribs/lambdadelta/basic_1/wf3/getl.ma
matita/matita/contribs/lambdadelta/basic_1/wf3/props.ma
matita/matita/contribs/lambdadelta/basic_1/wf3/ty3.ma
matita/matita/contribs/lambdadelta/ground_1/blt/props.ma
matita/matita/contribs/lambdadelta/ground_1/ext/arith.ma
matita/matita/contribs/lambdadelta/ground_1/ext/tactics.ma
matita/matita/contribs/lambdadelta/ground_1/plist/defs.ma
matita/matita/contribs/lambdadelta/ground_1/plist/props.ma
matita/matita/contribs/lambdadelta/ground_1/types/props.ma
matita/matita/contribs/lambdadelta/legacy_1/coq/defs.ma
matita/matita/contribs/lambdadelta/legacy_1/coq/fwd.ma
matita/matita/contribs/lambdadelta/legacy_1/coq/props.ma

index 0f5f065dffdb8647d11f7408858b2d526092f4e3..c08af2080ede3a3be05aa74ab59591658493c654 100644 (file)
@@ -19,9 +19,8 @@ include "basic_1/A/defs.ma".
 let rec A_rect (P: (A \to Type[0])) (f: (\forall (n: nat).(\forall (n0: 
 nat).(P (ASort n n0))))) (f0: (\forall (a: A).((P a) \to (\forall (a0: A).((P 
 a0) \to (P (AHead a a0))))))) (a: A) on a: P a \def match a with [(ASort n 
-n0) \Rightarrow (f n n0) | (AHead a0 a1) \Rightarrow (let TMP_1 \def ((A_rect 
-P f f0) a0) in (let TMP_2 \def ((A_rect P f f0) a1) in (f0 a0 TMP_1 a1 
-TMP_2)))].
+n0) \Rightarrow (f n n0) | (AHead a0 a1) \Rightarrow (f0 a0 ((A_rect P f f0) 
+a0) a1 ((A_rect P f f0) a1))].
 
 theorem A_ind:
  \forall (P: ((A \to Prop))).(((\forall (n: nat).(\forall (n0: nat).(P (ASort 
index 85763067fdf473dec4eb68d88181abb82d21730e..2f08ba725e3253df99f625ec29e6b1fdac87999b 100644 (file)
@@ -21,22 +21,19 @@ inductive C: Type[0] \def
 | CHead: C \to (K \to (T \to C)).
 
 let rec cweight (c: C) on c: nat \def match c with [(CSort _) \Rightarrow O | 
-(CHead c0 _ t) \Rightarrow (let TMP_1 \def (cweight c0) in (let TMP_2 \def 
-(tweight t) in (plus TMP_1 TMP_2)))].
+(CHead c0 _ t) \Rightarrow (plus (cweight c0) (tweight t))].
 
 definition clt:
  C \to (C \to Prop)
 \def
- \lambda (c1: C).(\lambda (c2: C).(let TMP_1 \def (cweight c1) in (let TMP_2 
-\def (cweight c2) in (lt TMP_1 TMP_2)))).
+ \lambda (c1: C).(\lambda (c2: C).(lt (cweight c1) (cweight c2))).
 
 definition cle:
  C \to (C \to Prop)
 \def
- \lambda (c1: C).(\lambda (c2: C).(let TMP_1 \def (cweight c1) in (let TMP_2 
-\def (cweight c2) in (le TMP_1 TMP_2)))).
+ \lambda (c1: C).(\lambda (c2: C).(le (cweight c1) (cweight c2))).
 
 let rec CTail (k: K) (t: T) (c: C) on c: C \def match c with [(CSort n) 
-\Rightarrow (let TMP_2 \def (CSort n) in (CHead TMP_2 k t)) | (CHead d h u) 
-\Rightarrow (let TMP_1 \def (CTail k t d) in (CHead TMP_1 h u))].
+\Rightarrow (CHead (CSort n) k t) | (CHead d h u) \Rightarrow (CHead (CTail k 
+t d) h u)].
 
index 37410a7783a8fa3519b117025873812676ab091a..d2802e2ba7e225562aedffac3b7e2b13dacbb117 100644 (file)
@@ -19,8 +19,7 @@ include "basic_1/C/defs.ma".
 let rec C_rect (P: (C \to Type[0])) (f: (\forall (n: nat).(P (CSort n)))) 
 (f0: (\forall (c: C).((P c) \to (\forall (k: K).(\forall (t: T).(P (CHead c k 
 t))))))) (c: C) on c: P c \def match c with [(CSort n) \Rightarrow (f n) | 
-(CHead c0 k t) \Rightarrow (let TMP_1 \def ((C_rect P f f0) c0) in (f0 c0 
-TMP_1 k t))].
+(CHead c0 k t) \Rightarrow (f0 c0 ((C_rect P f f0) c0) k t)].
 
 theorem C_ind:
  \forall (P: ((C \to Prop))).(((\forall (n: nat).(P (CSort n)))) \to 
@@ -37,9 +36,8 @@ c))))) P n))) \to (\forall (c: C).(P c)))
  let Q \def (\lambda (P: ((C \to Prop))).(\lambda (n: nat).(\forall (c: 
 C).((eq nat (cweight c) n) \to (P c))))) in (\lambda (P: ((C \to 
 Prop))).(\lambda (H: ((\forall (n: nat).(\forall (c: C).((eq nat (cweight c) 
-n) \to (P c)))))).(\lambda (c: C).(let TMP_1 \def (cweight c) in (let TMP_2 
-\def (cweight c) in (let TMP_3 \def (refl_equal nat TMP_2) in (H TMP_1 c 
-TMP_3))))))).
+n) \to (P c)))))).(\lambda (c: C).(H (cweight c) c (refl_equal nat (cweight 
+c)))))).
 
 theorem clt_wf_ind:
  \forall (P: ((C \to Prop))).(((\forall (c: C).(((\forall (d: C).((clt d c) 
@@ -48,17 +46,13 @@ theorem clt_wf_ind:
  let Q \def (\lambda (P: ((C \to Prop))).(\lambda (n: nat).(\forall (c: 
 C).((eq nat (cweight c) n) \to (P c))))) in (\lambda (P: ((C \to 
 Prop))).(\lambda (H: ((\forall (c: C).(((\forall (d: C).((lt (cweight d) 
-(cweight c)) \to (P d)))) \to (P c))))).(\lambda (c: C).(let TMP_1 \def 
-(\lambda (c0: C).(P c0)) in (let TMP_11 \def (\lambda (n: nat).(let TMP_2 
-\def (\lambda (c0: C).(P c0)) in (let TMP_3 \def (Q TMP_2) in (let TMP_10 
-\def (\lambda (n0: nat).(\lambda (H0: ((\forall (m: nat).((lt m n0) \to (Q 
-(\lambda (c0: C).(P c0)) m))))).(\lambda (c0: C).(\lambda (H1: (eq nat 
-(cweight c0) n0)).(let TMP_4 \def (\lambda (n1: nat).(\forall (m: nat).((lt m 
-n1) \to (\forall (c1: C).((eq nat (cweight c1) m) \to (P c1)))))) in (let 
-TMP_5 \def (cweight c0) in (let H2 \def (eq_ind_r nat n0 TMP_4 H0 TMP_5 H1) 
-in (let TMP_9 \def (\lambda (d: C).(\lambda (H3: (lt (cweight d) (cweight 
-c0))).(let TMP_6 \def (cweight d) in (let TMP_7 \def (cweight d) in (let 
-TMP_8 \def (refl_equal nat TMP_7) in (H2 TMP_6 H3 d TMP_8)))))) in (H c0 
-TMP_9))))))))) in (lt_wf_ind n TMP_3 TMP_10))))) in (clt_wf__q_ind TMP_1 
-TMP_11 c)))))).
+(cweight c)) \to (P d)))) \to (P c))))).(\lambda (c: C).(clt_wf__q_ind 
+(\lambda (c0: C).(P c0)) (\lambda (n: nat).(lt_wf_ind n (Q (\lambda (c0: 
+C).(P c0))) (\lambda (n0: nat).(\lambda (H0: ((\forall (m: nat).((lt m n0) 
+\to (Q (\lambda (c0: C).(P c0)) m))))).(\lambda (c0: C).(\lambda (H1: (eq nat 
+(cweight c0) n0)).(let H2 \def (eq_ind_r nat n0 (\lambda (n1: nat).(\forall 
+(m: nat).((lt m n1) \to (\forall (c1: C).((eq nat (cweight c1) m) \to (P 
+c1)))))) H0 (cweight c0) H1) in (H c0 (\lambda (d: C).(\lambda (H3: (lt 
+(cweight d) (cweight c0))).(H2 (cweight d) H3 d (refl_equal nat (cweight 
+d))))))))))))) c)))).
 
index 6a35f3d9b88ac70c144832b27409a8f3df329428..1cbfa54149fd3256f96d5130a34c060906527262 100644 (file)
@@ -21,12 +21,10 @@ include "basic_1/T/props.ma".
 theorem cle_r:
  \forall (c: C).(cle c c)
 \def
- \lambda (c: C).(let TMP_3 \def (\lambda (c0: C).(let TMP_1 \def (cweight c0) 
-in (let TMP_2 \def (cweight c0) in (le TMP_1 TMP_2)))) in (let TMP_4 \def 
-(\lambda (_: nat).(le_O_n O)) in (let TMP_8 \def (\lambda (c0: C).(\lambda 
-(_: (le (cweight c0) (cweight c0))).(\lambda (_: K).(\lambda (t: T).(let 
-TMP_5 \def (cweight c0) in (let TMP_6 \def (tweight t) in (let TMP_7 \def 
-(plus TMP_5 TMP_6) in (le_n TMP_7)))))))) in (C_ind TMP_3 TMP_4 TMP_8 c)))).
+ \lambda (c: C).(C_ind (\lambda (c0: C).(le (cweight c0) (cweight c0))) 
+(\lambda (_: nat).(le_O_n O)) (\lambda (c0: C).(\lambda (_: (le (cweight c0) 
+(cweight c0))).(\lambda (_: K).(\lambda (t: T).(le_n (plus (cweight c0) 
+(tweight t))))))) c).
 
 theorem cle_head:
  \forall (c1: C).(\forall (c2: C).((cle c1 c2) \to (\forall (u1: T).(\forall 
@@ -35,86 +33,63 @@ u2))))))))
 \def
  \lambda (c1: C).(\lambda (c2: C).(\lambda (H: (le (cweight c1) (cweight 
 c2))).(\lambda (u1: T).(\lambda (u2: T).(\lambda (H0: (le (tweight u1) 
-(tweight u2))).(\lambda (_: K).(let TMP_1 \def (cweight c1) in (let TMP_2 
-\def (cweight c2) in (let TMP_3 \def (tweight u1) in (let TMP_4 \def (tweight 
-u2) in (le_plus_plus TMP_1 TMP_2 TMP_3 TMP_4 H H0))))))))))).
+(tweight u2))).(\lambda (_: K).(le_plus_plus (cweight c1) (cweight c2) 
+(tweight u1) (tweight u2) H H0))))))).
 
 theorem cle_trans_head:
  \forall (c1: C).(\forall (c2: C).((cle c1 c2) \to (\forall (k: K).(\forall 
 (u: T).(cle c1 (CHead c2 k u))))))
 \def
  \lambda (c1: C).(\lambda (c2: C).(\lambda (H: (le (cweight c1) (cweight 
-c2))).(\lambda (_: K).(\lambda (u: T).(let TMP_1 \def (cweight c1) in (let 
-TMP_2 \def (cweight c2) in (let TMP_3 \def (tweight u) in (le_plus_trans 
-TMP_1 TMP_2 TMP_3 H)))))))).
+c2))).(\lambda (_: K).(\lambda (u: T).(le_plus_trans (cweight c1) (cweight 
+c2) (tweight u) H))))).
 
 theorem clt_cong:
  \forall (c: C).(\forall (d: C).((clt c d) \to (\forall (k: K).(\forall (t: 
 T).(clt (CHead c k t) (CHead d k t))))))
 \def
  \lambda (c: C).(\lambda (d: C).(\lambda (H: (lt (cweight c) (cweight 
-d))).(\lambda (_: K).(\lambda (t: T).(let TMP_1 \def (cweight c) in (let 
-TMP_2 \def (cweight d) in (let TMP_3 \def (tweight t) in (lt_reg_r TMP_1 
-TMP_2 TMP_3 H)))))))).
+d))).(\lambda (_: K).(\lambda (t: T).(lt_reg_r (cweight c) (cweight d) 
+(tweight t) H))))).
 
 theorem clt_head:
  \forall (k: K).(\forall (c: C).(\forall (u: T).(clt c (CHead c k u))))
 \def
- \lambda (_: K).(\lambda (c: C).(\lambda (u: T).(let TMP_1 \def (cweight c) 
-in (let TMP_2 \def (plus TMP_1 O) in (let TMP_6 \def (\lambda (n: nat).(let 
-TMP_3 \def (cweight c) in (let TMP_4 \def (tweight u) in (let TMP_5 \def 
-(plus TMP_3 TMP_4) in (lt n TMP_5))))) in (let TMP_7 \def (tweight u) in (let 
-TMP_8 \def (cweight c) in (let TMP_9 \def (tweight_lt u) in (let TMP_10 \def 
-(lt_reg_l O TMP_7 TMP_8 TMP_9) in (let TMP_11 \def (cweight c) in (let TMP_12 
-\def (cweight c) in (let TMP_13 \def (plus_n_O TMP_12) in (eq_ind_r nat TMP_2 
-TMP_6 TMP_10 TMP_11 TMP_13))))))))))))).
+ \lambda (_: K).(\lambda (c: C).(\lambda (u: T).(eq_ind_r nat (plus (cweight 
+c) O) (\lambda (n: nat).(lt n (plus (cweight c) (tweight u)))) (lt_reg_l O 
+(tweight u) (cweight c) (tweight_lt u)) (cweight c) (plus_n_O (cweight c))))).
 
 theorem chead_ctail:
  \forall (c: C).(\forall (t: T).(\forall (k: K).(ex_3 K C T (\lambda (h: 
 K).(\lambda (d: C).(\lambda (u: T).(eq C (CHead c k t) (CTail h u d))))))))
 \def
- \lambda (c: C).(let TMP_4 \def (\lambda (c0: C).(\forall (t: T).(\forall (k: 
-K).(let TMP_3 \def (\lambda (h: K).(\lambda (d: C).(\lambda (u: T).(let TMP_1 
-\def (CHead c0 k t) in (let TMP_2 \def (CTail h u d) in (eq C TMP_1 
-TMP_2)))))) in (ex_3 K C T TMP_3))))) in (let TMP_13 \def (\lambda (n: 
-nat).(\lambda (t: T).(\lambda (k: K).(let TMP_8 \def (\lambda (h: K).(\lambda 
-(d: C).(\lambda (u: T).(let TMP_5 \def (CSort n) in (let TMP_6 \def (CHead 
-TMP_5 k t) in (let TMP_7 \def (CTail h u d) in (eq C TMP_6 TMP_7))))))) in 
-(let TMP_9 \def (CSort n) in (let TMP_10 \def (CSort n) in (let TMP_11 \def 
-(CHead TMP_10 k t) in (let TMP_12 \def (refl_equal C TMP_11) in (ex_3_intro K 
-C T TMP_8 k TMP_9 t TMP_12))))))))) in (let TMP_38 \def (\lambda (c0: 
-C).(\lambda (H: ((\forall (t: T).(\forall (k: K).(ex_3 K C T (\lambda (h: 
-K).(\lambda (d: C).(\lambda (u: T).(eq C (CHead c0 k t) (CTail h u 
-d)))))))))).(\lambda (k: K).(\lambda (t: T).(\lambda (t0: T).(\lambda (k0: 
-K).(let H_x \def (H t k) in (let H0 \def H_x in (let TMP_16 \def (\lambda (h: 
-K).(\lambda (d: C).(\lambda (u: T).(let TMP_14 \def (CHead c0 k t) in (let 
-TMP_15 \def (CTail h u d) in (eq C TMP_14 TMP_15)))))) in (let TMP_20 \def 
-(\lambda (h: K).(\lambda (d: C).(\lambda (u: T).(let TMP_17 \def (CHead c0 k 
-t) in (let TMP_18 \def (CHead TMP_17 k0 t0) in (let TMP_19 \def (CTail h u d) 
-in (eq C TMP_18 TMP_19))))))) in (let TMP_21 \def (ex_3 K C T TMP_20) in (let 
-TMP_37 \def (\lambda (x0: K).(\lambda (x1: C).(\lambda (x2: T).(\lambda (H1: 
-(eq C (CHead c0 k t) (CTail x0 x2 x1))).(let TMP_22 \def (CTail x0 x2 x1) in 
-(let TMP_26 \def (\lambda (c1: C).(let TMP_25 \def (\lambda (h: K).(\lambda 
-(d: C).(\lambda (u: T).(let TMP_23 \def (CHead c1 k0 t0) in (let TMP_24 \def 
-(CTail h u d) in (eq C TMP_23 TMP_24)))))) in (ex_3 K C T TMP_25))) in (let 
-TMP_30 \def (\lambda (h: K).(\lambda (d: C).(\lambda (u: T).(let TMP_27 \def 
-(CTail x0 x2 x1) in (let TMP_28 \def (CHead TMP_27 k0 t0) in (let TMP_29 \def 
-(CTail h u d) in (eq C TMP_28 TMP_29))))))) in (let TMP_31 \def (CHead x1 k0 
-t0) in (let TMP_32 \def (CTail x0 x2 x1) in (let TMP_33 \def (CHead TMP_32 k0 
-t0) in (let TMP_34 \def (refl_equal C TMP_33) in (let TMP_35 \def (ex_3_intro 
-K C T TMP_30 x0 TMP_31 x2 TMP_34) in (let TMP_36 \def (CHead c0 k t) in 
-(eq_ind_r C TMP_22 TMP_26 TMP_35 TMP_36 H1)))))))))))))) in (ex_3_ind K C T 
-TMP_16 TMP_21 TMP_37 H0))))))))))))) in (C_ind TMP_4 TMP_13 TMP_38 c)))).
+ \lambda (c: C).(C_ind (\lambda (c0: C).(\forall (t: T).(\forall (k: K).(ex_3 
+K C T (\lambda (h: K).(\lambda (d: C).(\lambda (u: T).(eq C (CHead c0 k t) 
+(CTail h u d))))))))) (\lambda (n: nat).(\lambda (t: T).(\lambda (k: 
+K).(ex_3_intro K C T (\lambda (h: K).(\lambda (d: C).(\lambda (u: T).(eq C 
+(CHead (CSort n) k t) (CTail h u d))))) k (CSort n) t (refl_equal C (CHead 
+(CSort n) k t)))))) (\lambda (c0: C).(\lambda (H: ((\forall (t: T).(\forall 
+(k: K).(ex_3 K C T (\lambda (h: K).(\lambda (d: C).(\lambda (u: T).(eq C 
+(CHead c0 k t) (CTail h u d)))))))))).(\lambda (k: K).(\lambda (t: 
+T).(\lambda (t0: T).(\lambda (k0: K).(let H_x \def (H t k) in (let H0 \def 
+H_x in (ex_3_ind K C T (\lambda (h: K).(\lambda (d: C).(\lambda (u: T).(eq C 
+(CHead c0 k t) (CTail h u d))))) (ex_3 K C T (\lambda (h: K).(\lambda (d: 
+C).(\lambda (u: T).(eq C (CHead (CHead c0 k t) k0 t0) (CTail h u d)))))) 
+(\lambda (x0: K).(\lambda (x1: C).(\lambda (x2: T).(\lambda (H1: (eq C (CHead 
+c0 k t) (CTail x0 x2 x1))).(eq_ind_r C (CTail x0 x2 x1) (\lambda (c1: 
+C).(ex_3 K C T (\lambda (h: K).(\lambda (d: C).(\lambda (u: T).(eq C (CHead 
+c1 k0 t0) (CTail h u d))))))) (ex_3_intro K C T (\lambda (h: K).(\lambda (d: 
+C).(\lambda (u: T).(eq C (CHead (CTail x0 x2 x1) k0 t0) (CTail h u d))))) x0 
+(CHead x1 k0 t0) x2 (refl_equal C (CHead (CTail x0 x2 x1) k0 t0))) (CHead c0 
+k t) H1))))) H0))))))))) c).
 
 theorem clt_thead:
  \forall (k: K).(\forall (u: T).(\forall (c: C).(clt c (CTail k u c))))
 \def
- \lambda (k: K).(\lambda (u: T).(\lambda (c: C).(let TMP_2 \def (\lambda (c0: 
-C).(let TMP_1 \def (CTail k u c0) in (clt c0 TMP_1))) in (let TMP_4 \def 
-(\lambda (n: nat).(let TMP_3 \def (CSort n) in (clt_head k TMP_3 u))) in (let 
-TMP_6 \def (\lambda (c0: C).(\lambda (H: (clt c0 (CTail k u c0))).(\lambda 
-(k0: K).(\lambda (t: T).(let TMP_5 \def (CTail k u c0) in (clt_cong c0 TMP_5 
-H k0 t)))))) in (C_ind TMP_2 TMP_4 TMP_6 c)))))).
+ \lambda (k: K).(\lambda (u: T).(\lambda (c: C).(C_ind (\lambda (c0: C).(clt 
+c0 (CTail k u c0))) (\lambda (n: nat).(clt_head k (CSort n) u)) (\lambda (c0: 
+C).(\lambda (H: (clt c0 (CTail k u c0))).(\lambda (k0: K).(\lambda (t: 
+T).(clt_cong c0 (CTail k u c0) H k0 t))))) c))).
 
 theorem c_tail_ind:
  \forall (P: ((C \to Prop))).(((\forall (n: nat).(P (CSort n)))) \to 
@@ -123,25 +98,18 @@ c))))))) \to (\forall (c: C).(P c))))
 \def
  \lambda (P: ((C \to Prop))).(\lambda (H: ((\forall (n: nat).(P (CSort 
 n))))).(\lambda (H0: ((\forall (c: C).((P c) \to (\forall (k: K).(\forall (t: 
-T).(P (CTail k t c)))))))).(\lambda (c: C).(let TMP_1 \def (\lambda (c0: 
-C).(P c0)) in (let TMP_20 \def (\lambda (c0: C).(let TMP_2 \def (\lambda (c1: 
-C).(((\forall (d: C).((clt d c1) \to (P d)))) \to (P c1))) in (let TMP_3 \def 
-(\lambda (n: nat).(\lambda (_: ((\forall (d: C).((clt d (CSort n)) \to (P 
-d))))).(H n))) in (let TMP_19 \def (\lambda (c1: C).(\lambda (_: ((((\forall 
-(d: C).((clt d c1) \to (P d)))) \to (P c1)))).(\lambda (k: K).(\lambda (t: 
-T).(\lambda (H2: ((\forall (d: C).((clt d (CHead c1 k t)) \to (P d))))).(let 
-H_x \def (chead_ctail c1 t k) in (let H3 \def H_x in (let TMP_6 \def (\lambda 
-(h: K).(\lambda (d: C).(\lambda (u: T).(let TMP_4 \def (CHead c1 k t) in (let 
-TMP_5 \def (CTail h u d) in (eq C TMP_4 TMP_5)))))) in (let TMP_7 \def (CHead 
-c1 k t) in (let TMP_8 \def (P TMP_7) in (let TMP_18 \def (\lambda (x0: 
-K).(\lambda (x1: C).(\lambda (x2: T).(\lambda (H4: (eq C (CHead c1 k t) 
-(CTail x0 x2 x1))).(let TMP_9 \def (CTail x0 x2 x1) in (let TMP_10 \def 
-(\lambda (c2: C).(P c2)) in (let TMP_11 \def (CHead c1 k t) in (let TMP_12 
-\def (\lambda (c2: C).(\forall (d: C).((clt d c2) \to (P d)))) in (let TMP_13 
-\def (CTail x0 x2 x1) in (let H5 \def (eq_ind C TMP_11 TMP_12 H2 TMP_13 H4) 
-in (let TMP_14 \def (clt_thead x0 x2 x1) in (let TMP_15 \def (H5 x1 TMP_14) 
-in (let TMP_16 \def (H0 x1 TMP_15 x0 x2) in (let TMP_17 \def (CHead c1 k t) 
-in (eq_ind_r C TMP_9 TMP_10 TMP_16 TMP_17 H4))))))))))))))) in (ex_3_ind K C 
-T TMP_6 TMP_8 TMP_18 H3)))))))))))) in (C_ind TMP_2 TMP_3 TMP_19 c0))))) in 
-(clt_wf_ind TMP_1 TMP_20 c)))))).
+T).(P (CTail k t c)))))))).(\lambda (c: C).(clt_wf_ind (\lambda (c0: C).(P 
+c0)) (\lambda (c0: C).(C_ind (\lambda (c1: C).(((\forall (d: C).((clt d c1) 
+\to (P d)))) \to (P c1))) (\lambda (n: nat).(\lambda (_: ((\forall (d: 
+C).((clt d (CSort n)) \to (P d))))).(H n))) (\lambda (c1: C).(\lambda (_: 
+((((\forall (d: C).((clt d c1) \to (P d)))) \to (P c1)))).(\lambda (k: 
+K).(\lambda (t: T).(\lambda (H2: ((\forall (d: C).((clt d (CHead c1 k t)) \to 
+(P d))))).(let H_x \def (chead_ctail c1 t k) in (let H3 \def H_x in (ex_3_ind 
+K C T (\lambda (h: K).(\lambda (d: C).(\lambda (u: T).(eq C (CHead c1 k t) 
+(CTail h u d))))) (P (CHead c1 k t)) (\lambda (x0: K).(\lambda (x1: 
+C).(\lambda (x2: T).(\lambda (H4: (eq C (CHead c1 k t) (CTail x0 x2 
+x1))).(eq_ind_r C (CTail x0 x2 x1) (\lambda (c2: C).(P c2)) (let H5 \def 
+(eq_ind C (CHead c1 k t) (\lambda (c2: C).(\forall (d: C).((clt d c2) \to (P 
+d)))) H2 (CTail x0 x2 x1) H4) in (H0 x1 (H5 x1 (clt_thead x0 x2 x1)) x0 x2)) 
+(CHead c1 k t) H4))))) H3)))))))) c0)) c)))).
 
index 48a1cd509bec6342b3546d4e721b33ed5c233ee4..277e12bf925a29de7c2933c916c3dcb256bca588 100644 (file)
@@ -20,636 +20,392 @@ theorem terms_props__bind_dec:
  \forall (b1: B).(\forall (b2: B).(or (eq B b1 b2) ((eq B b1 b2) \to (\forall 
 (P: Prop).P))))
 \def
- \lambda (b1: B).(let TMP_3 \def (\lambda (b: B).(\forall (b2: B).(let TMP_1 
-\def (eq B b b2) in (let TMP_2 \def ((eq B b b2) \to (\forall (P: Prop).P)) 
-in (or TMP_1 TMP_2))))) in (let TMP_21 \def (\lambda (b2: B).(let TMP_6 \def 
-(\lambda (b: B).(let TMP_4 \def (eq B Abbr b) in (let TMP_5 \def ((eq B Abbr 
-b) \to (\forall (P: Prop).P)) in (or TMP_4 TMP_5)))) in (let TMP_7 \def (eq B 
-Abbr Abbr) in (let TMP_8 \def ((eq B Abbr Abbr) \to (\forall (P: Prop).P)) in 
-(let TMP_9 \def (refl_equal B Abbr) in (let TMP_10 \def (or_introl TMP_7 
-TMP_8 TMP_9) in (let TMP_11 \def (eq B Abbr Abst) in (let TMP_12 \def ((eq B 
-Abbr Abst) \to (\forall (P: Prop).P)) in (let TMP_14 \def (\lambda (H: (eq B 
-Abbr Abst)).(\lambda (P: Prop).(let TMP_13 \def (\lambda (ee: B).(match ee 
-with [Abbr \Rightarrow True | Abst \Rightarrow False | Void \Rightarrow 
-False])) in (let H0 \def (eq_ind B Abbr TMP_13 I Abst H) in (False_ind P 
-H0))))) in (let TMP_15 \def (or_intror TMP_11 TMP_12 TMP_14) in (let TMP_16 
-\def (eq B Abbr Void) in (let TMP_17 \def ((eq B Abbr Void) \to (\forall (P: 
-Prop).P)) in (let TMP_19 \def (\lambda (H: (eq B Abbr Void)).(\lambda (P: 
-Prop).(let TMP_18 \def (\lambda (ee: B).(match ee with [Abbr \Rightarrow True 
-| Abst \Rightarrow False | Void \Rightarrow False])) in (let H0 \def (eq_ind 
-B Abbr TMP_18 I Void H) in (False_ind P H0))))) in (let TMP_20 \def 
-(or_intror TMP_16 TMP_17 TMP_19) in (B_ind TMP_6 TMP_10 TMP_15 TMP_20 
-b2))))))))))))))) in (let TMP_39 \def (\lambda (b2: B).(let TMP_24 \def 
-(\lambda (b: B).(let TMP_22 \def (eq B Abst b) in (let TMP_23 \def ((eq B 
-Abst b) \to (\forall (P: Prop).P)) in (or TMP_22 TMP_23)))) in (let TMP_25 
-\def (eq B Abst Abbr) in (let TMP_26 \def ((eq B Abst Abbr) \to (\forall (P: 
-Prop).P)) in (let TMP_28 \def (\lambda (H: (eq B Abst Abbr)).(\lambda (P: 
-Prop).(let TMP_27 \def (\lambda (ee: B).(match ee with [Abbr \Rightarrow 
-False | Abst \Rightarrow True | Void \Rightarrow False])) in (let H0 \def 
-(eq_ind B Abst TMP_27 I Abbr H) in (False_ind P H0))))) in (let TMP_29 \def 
-(or_intror TMP_25 TMP_26 TMP_28) in (let TMP_30 \def (eq B Abst Abst) in (let 
-TMP_31 \def ((eq B Abst Abst) \to (\forall (P: Prop).P)) in (let TMP_32 \def 
-(refl_equal B Abst) in (let TMP_33 \def (or_introl TMP_30 TMP_31 TMP_32) in 
-(let TMP_34 \def (eq B Abst Void) in (let TMP_35 \def ((eq B Abst Void) \to 
-(\forall (P: Prop).P)) in (let TMP_37 \def (\lambda (H: (eq B Abst 
-Void)).(\lambda (P: Prop).(let TMP_36 \def (\lambda (ee: B).(match ee with 
-[Abbr \Rightarrow False | Abst \Rightarrow True | Void \Rightarrow False])) 
-in (let H0 \def (eq_ind B Abst TMP_36 I Void H) in (False_ind P H0))))) in 
-(let TMP_38 \def (or_intror TMP_34 TMP_35 TMP_37) in (B_ind TMP_24 TMP_29 
-TMP_33 TMP_38 b2))))))))))))))) in (let TMP_57 \def (\lambda (b2: B).(let 
-TMP_42 \def (\lambda (b: B).(let TMP_40 \def (eq B Void b) in (let TMP_41 
-\def ((eq B Void b) \to (\forall (P: Prop).P)) in (or TMP_40 TMP_41)))) in 
-(let TMP_43 \def (eq B Void Abbr) in (let TMP_44 \def ((eq B Void Abbr) \to 
-(\forall (P: Prop).P)) in (let TMP_46 \def (\lambda (H: (eq B Void 
-Abbr)).(\lambda (P: Prop).(let TMP_45 \def (\lambda (ee: B).(match ee with 
-[Abbr \Rightarrow False | Abst \Rightarrow False | Void \Rightarrow True])) 
-in (let H0 \def (eq_ind B Void TMP_45 I Abbr H) in (False_ind P H0))))) in 
-(let TMP_47 \def (or_intror TMP_43 TMP_44 TMP_46) in (let TMP_48 \def (eq B 
-Void Abst) in (let TMP_49 \def ((eq B Void Abst) \to (\forall (P: Prop).P)) 
-in (let TMP_51 \def (\lambda (H: (eq B Void Abst)).(\lambda (P: Prop).(let 
-TMP_50 \def (\lambda (ee: B).(match ee with [Abbr \Rightarrow False | Abst 
-\Rightarrow False | Void \Rightarrow True])) in (let H0 \def (eq_ind B Void 
-TMP_50 I Abst H) in (False_ind P H0))))) in (let TMP_52 \def (or_intror 
-TMP_48 TMP_49 TMP_51) in (let TMP_53 \def (eq B Void Void) in (let TMP_54 
-\def ((eq B Void Void) \to (\forall (P: Prop).P)) in (let TMP_55 \def 
-(refl_equal B Void) in (let TMP_56 \def (or_introl TMP_53 TMP_54 TMP_55) in 
-(B_ind TMP_42 TMP_47 TMP_52 TMP_56 b2))))))))))))))) in (B_ind TMP_3 TMP_21 
-TMP_39 TMP_57 b1))))).
+ \lambda (b1: B).(B_ind (\lambda (b: B).(\forall (b2: B).(or (eq B b b2) ((eq 
+B b b2) \to (\forall (P: Prop).P))))) (\lambda (b2: B).(B_ind (\lambda (b: 
+B).(or (eq B Abbr b) ((eq B Abbr b) \to (\forall (P: Prop).P)))) (or_introl 
+(eq B Abbr Abbr) ((eq B Abbr Abbr) \to (\forall (P: Prop).P)) (refl_equal B 
+Abbr)) (or_intror (eq B Abbr Abst) ((eq B Abbr Abst) \to (\forall (P: 
+Prop).P)) (\lambda (H: (eq B Abbr Abst)).(\lambda (P: Prop).(let H0 \def 
+(eq_ind B Abbr (\lambda (ee: B).(match ee with [Abbr \Rightarrow True | Abst 
+\Rightarrow False | Void \Rightarrow False])) I Abst H) in (False_ind P 
+H0))))) (or_intror (eq B Abbr Void) ((eq B Abbr Void) \to (\forall (P: 
+Prop).P)) (\lambda (H: (eq B Abbr Void)).(\lambda (P: Prop).(let H0 \def 
+(eq_ind B Abbr (\lambda (ee: B).(match ee with [Abbr \Rightarrow True | Abst 
+\Rightarrow False | Void \Rightarrow False])) I Void H) in (False_ind P 
+H0))))) b2)) (\lambda (b2: B).(B_ind (\lambda (b: B).(or (eq B Abst b) ((eq B 
+Abst b) \to (\forall (P: Prop).P)))) (or_intror (eq B Abst Abbr) ((eq B Abst 
+Abbr) \to (\forall (P: Prop).P)) (\lambda (H: (eq B Abst Abbr)).(\lambda (P: 
+Prop).(let H0 \def (eq_ind B Abst (\lambda (ee: B).(match ee with [Abbr 
+\Rightarrow False | Abst \Rightarrow True | Void \Rightarrow False])) I Abbr 
+H) in (False_ind P H0))))) (or_introl (eq B Abst Abst) ((eq B Abst Abst) \to 
+(\forall (P: Prop).P)) (refl_equal B Abst)) (or_intror (eq B Abst Void) ((eq 
+B Abst Void) \to (\forall (P: Prop).P)) (\lambda (H: (eq B Abst 
+Void)).(\lambda (P: Prop).(let H0 \def (eq_ind B Abst (\lambda (ee: B).(match 
+ee with [Abbr \Rightarrow False | Abst \Rightarrow True | Void \Rightarrow 
+False])) I Void H) in (False_ind P H0))))) b2)) (\lambda (b2: B).(B_ind 
+(\lambda (b: B).(or (eq B Void b) ((eq B Void b) \to (\forall (P: Prop).P)))) 
+(or_intror (eq B Void Abbr) ((eq B Void Abbr) \to (\forall (P: Prop).P)) 
+(\lambda (H: (eq B Void Abbr)).(\lambda (P: Prop).(let H0 \def (eq_ind B Void 
+(\lambda (ee: B).(match ee with [Abbr \Rightarrow False | Abst \Rightarrow 
+False | Void \Rightarrow True])) I Abbr H) in (False_ind P H0))))) (or_intror 
+(eq B Void Abst) ((eq B Void Abst) \to (\forall (P: Prop).P)) (\lambda (H: 
+(eq B Void Abst)).(\lambda (P: Prop).(let H0 \def (eq_ind B Void (\lambda 
+(ee: B).(match ee with [Abbr \Rightarrow False | Abst \Rightarrow False | 
+Void \Rightarrow True])) I Abst H) in (False_ind P H0))))) (or_introl (eq B 
+Void Void) ((eq B Void Void) \to (\forall (P: Prop).P)) (refl_equal B Void)) 
+b2)) b1).
 
 theorem bind_dec_not:
  \forall (b1: B).(\forall (b2: B).(or (eq B b1 b2) (not (eq B b1 b2))))
 \def
  \lambda (b1: B).(\lambda (b2: B).(let H_x \def (terms_props__bind_dec b1 b2) 
-in (let H \def H_x in (let TMP_1 \def (eq B b1 b2) in (let TMP_2 \def ((eq B 
-b1 b2) \to (\forall (P: Prop).P)) in (let TMP_3 \def (eq B b1 b2) in (let 
-TMP_4 \def ((eq B b1 b2) \to False) in (let TMP_5 \def (or TMP_3 TMP_4) in 
-(let TMP_8 \def (\lambda (H0: (eq B b1 b2)).(let TMP_6 \def (eq B b1 b2) in 
-(let TMP_7 \def ((eq B b1 b2) \to False) in (or_introl TMP_6 TMP_7 H0)))) in 
-(let TMP_12 \def (\lambda (H0: (((eq B b1 b2) \to (\forall (P: 
-Prop).P)))).(let TMP_9 \def (eq B b1 b2) in (let TMP_10 \def ((eq B b1 b2) 
-\to False) in (let TMP_11 \def (\lambda (H1: (eq B b1 b2)).(H0 H1 False)) in 
-(or_intror TMP_9 TMP_10 TMP_11))))) in (or_ind TMP_1 TMP_2 TMP_5 TMP_8 TMP_12 
-H))))))))))).
+in (let H \def H_x in (or_ind (eq B b1 b2) ((eq B b1 b2) \to (\forall (P: 
+Prop).P)) (or (eq B b1 b2) ((eq B b1 b2) \to False)) (\lambda (H0: (eq B b1 
+b2)).(or_introl (eq B b1 b2) ((eq B b1 b2) \to False) H0)) (\lambda (H0: 
+(((eq B b1 b2) \to (\forall (P: Prop).P)))).(or_intror (eq B b1 b2) ((eq B b1 
+b2) \to False) (\lambda (H1: (eq B b1 b2)).(H0 H1 False)))) H)))).
 
 theorem terms_props__flat_dec:
  \forall (f1: F).(\forall (f2: F).(or (eq F f1 f2) ((eq F f1 f2) \to (\forall 
 (P: Prop).P))))
 \def
- \lambda (f1: F).(let TMP_3 \def (\lambda (f: F).(\forall (f2: F).(let TMP_1 
-\def (eq F f f2) in (let TMP_2 \def ((eq F f f2) \to (\forall (P: Prop).P)) 
-in (or TMP_1 TMP_2))))) in (let TMP_16 \def (\lambda (f2: F).(let TMP_6 \def 
-(\lambda (f: F).(let TMP_4 \def (eq F Appl f) in (let TMP_5 \def ((eq F Appl 
-f) \to (\forall (P: Prop).P)) in (or TMP_4 TMP_5)))) in (let TMP_7 \def (eq F 
-Appl Appl) in (let TMP_8 \def ((eq F Appl Appl) \to (\forall (P: Prop).P)) in 
-(let TMP_9 \def (refl_equal F Appl) in (let TMP_10 \def (or_introl TMP_7 
-TMP_8 TMP_9) in (let TMP_11 \def (eq F Appl Cast) in (let TMP_12 \def ((eq F 
-Appl Cast) \to (\forall (P: Prop).P)) in (let TMP_14 \def (\lambda (H: (eq F 
-Appl Cast)).(\lambda (P: Prop).(let TMP_13 \def (\lambda (ee: F).(match ee 
-with [Appl \Rightarrow True | Cast \Rightarrow False])) in (let H0 \def 
-(eq_ind F Appl TMP_13 I Cast H) in (False_ind P H0))))) in (let TMP_15 \def 
-(or_intror TMP_11 TMP_12 TMP_14) in (F_ind TMP_6 TMP_10 TMP_15 f2))))))))))) 
-in (let TMP_29 \def (\lambda (f2: F).(let TMP_19 \def (\lambda (f: F).(let 
-TMP_17 \def (eq F Cast f) in (let TMP_18 \def ((eq F Cast f) \to (\forall (P: 
-Prop).P)) in (or TMP_17 TMP_18)))) in (let TMP_20 \def (eq F Cast Appl) in 
-(let TMP_21 \def ((eq F Cast Appl) \to (\forall (P: Prop).P)) in (let TMP_23 
-\def (\lambda (H: (eq F Cast Appl)).(\lambda (P: Prop).(let TMP_22 \def 
-(\lambda (ee: F).(match ee with [Appl \Rightarrow False | Cast \Rightarrow 
-True])) in (let H0 \def (eq_ind F Cast TMP_22 I Appl H) in (False_ind P 
-H0))))) in (let TMP_24 \def (or_intror TMP_20 TMP_21 TMP_23) in (let TMP_25 
-\def (eq F Cast Cast) in (let TMP_26 \def ((eq F Cast Cast) \to (\forall (P: 
-Prop).P)) in (let TMP_27 \def (refl_equal F Cast) in (let TMP_28 \def 
-(or_introl TMP_25 TMP_26 TMP_27) in (F_ind TMP_19 TMP_24 TMP_28 f2))))))))))) 
-in (F_ind TMP_3 TMP_16 TMP_29 f1)))).
+ \lambda (f1: F).(F_ind (\lambda (f: F).(\forall (f2: F).(or (eq F f f2) ((eq 
+F f f2) \to (\forall (P: Prop).P))))) (\lambda (f2: F).(F_ind (\lambda (f: 
+F).(or (eq F Appl f) ((eq F Appl f) \to (\forall (P: Prop).P)))) (or_introl 
+(eq F Appl Appl) ((eq F Appl Appl) \to (\forall (P: Prop).P)) (refl_equal F 
+Appl)) (or_intror (eq F Appl Cast) ((eq F Appl Cast) \to (\forall (P: 
+Prop).P)) (\lambda (H: (eq F Appl Cast)).(\lambda (P: Prop).(let H0 \def 
+(eq_ind F Appl (\lambda (ee: F).(match ee with [Appl \Rightarrow True | Cast 
+\Rightarrow False])) I Cast H) in (False_ind P H0))))) f2)) (\lambda (f2: 
+F).(F_ind (\lambda (f: F).(or (eq F Cast f) ((eq F Cast f) \to (\forall (P: 
+Prop).P)))) (or_intror (eq F Cast Appl) ((eq F Cast Appl) \to (\forall (P: 
+Prop).P)) (\lambda (H: (eq F Cast Appl)).(\lambda (P: Prop).(let H0 \def 
+(eq_ind F Cast (\lambda (ee: F).(match ee with [Appl \Rightarrow False | Cast 
+\Rightarrow True])) I Appl H) in (False_ind P H0))))) (or_introl (eq F Cast 
+Cast) ((eq F Cast Cast) \to (\forall (P: Prop).P)) (refl_equal F Cast)) f2)) 
+f1).
 
 theorem terms_props__kind_dec:
  \forall (k1: K).(\forall (k2: K).(or (eq K k1 k2) ((eq K k1 k2) \to (\forall 
 (P: Prop).P))))
 \def
- \lambda (k1: K).(let TMP_3 \def (\lambda (k: K).(\forall (k2: K).(let TMP_1 
-\def (eq K k k2) in (let TMP_2 \def ((eq K k k2) \to (\forall (P: Prop).P)) 
-in (or TMP_1 TMP_2))))) in (let TMP_49 \def (\lambda (b: B).(\lambda (k2: 
-K).(let TMP_7 \def (\lambda (k: K).(let TMP_4 \def (Bind b) in (let TMP_5 
-\def (eq K TMP_4 k) in (let TMP_6 \def ((eq K (Bind b) k) \to (\forall (P: 
-Prop).P)) in (or TMP_5 TMP_6))))) in (let TMP_39 \def (\lambda (b0: B).(let 
-H_x \def (terms_props__bind_dec b b0) in (let H \def H_x in (let TMP_8 \def 
-(eq B b b0) in (let TMP_9 \def ((eq B b b0) \to (\forall (P: Prop).P)) in 
-(let TMP_10 \def (Bind b) in (let TMP_11 \def (Bind b0) in (let TMP_12 \def 
-(eq K TMP_10 TMP_11) in (let TMP_13 \def ((eq K (Bind b) (Bind b0)) \to 
-(\forall (P: Prop).P)) in (let TMP_14 \def (or TMP_12 TMP_13) in (let TMP_27 
-\def (\lambda (H0: (eq B b b0)).(let TMP_19 \def (\lambda (b1: B).(let TMP_15 
-\def (Bind b) in (let TMP_16 \def (Bind b1) in (let TMP_17 \def (eq K TMP_15 
-TMP_16) in (let TMP_18 \def ((eq K (Bind b) (Bind b1)) \to (\forall (P: 
-Prop).P)) in (or TMP_17 TMP_18)))))) in (let TMP_20 \def (Bind b) in (let 
-TMP_21 \def (Bind b) in (let TMP_22 \def (eq K TMP_20 TMP_21) in (let TMP_23 
-\def ((eq K (Bind b) (Bind b)) \to (\forall (P: Prop).P)) in (let TMP_24 \def 
-(Bind b) in (let TMP_25 \def (refl_equal K TMP_24) in (let TMP_26 \def 
-(or_introl TMP_22 TMP_23 TMP_25) in (eq_ind B b TMP_19 TMP_26 b0 H0)))))))))) 
-in (let TMP_38 \def (\lambda (H0: (((eq B b b0) \to (\forall (P: 
-Prop).P)))).(let TMP_28 \def (Bind b) in (let TMP_29 \def (Bind b0) in (let 
-TMP_30 \def (eq K TMP_28 TMP_29) in (let TMP_31 \def ((eq K (Bind b) (Bind 
-b0)) \to (\forall (P: Prop).P)) in (let TMP_37 \def (\lambda (H1: (eq K (Bind 
-b) (Bind b0))).(\lambda (P: Prop).(let TMP_32 \def (\lambda (e: K).(match e 
-with [(Bind b1) \Rightarrow b1 | (Flat _) \Rightarrow b])) in (let TMP_33 
-\def (Bind b) in (let TMP_34 \def (Bind b0) in (let H2 \def (f_equal K B 
-TMP_32 TMP_33 TMP_34 H1) in (let TMP_35 \def (\lambda (b1: B).((eq B b b1) 
-\to (\forall (P0: Prop).P0))) in (let H3 \def (eq_ind_r B b0 TMP_35 H0 b H2) 
-in (let TMP_36 \def (refl_equal B b) in (H3 TMP_36 P)))))))))) in (or_intror 
-TMP_30 TMP_31 TMP_37))))))) in (or_ind TMP_8 TMP_9 TMP_14 TMP_27 TMP_38 
-H))))))))))))) in (let TMP_48 \def (\lambda (f: F).(let TMP_40 \def (Bind b) 
-in (let TMP_41 \def (Flat f) in (let TMP_42 \def (eq K TMP_40 TMP_41) in (let 
-TMP_43 \def ((eq K (Bind b) (Flat f)) \to (\forall (P: Prop).P)) in (let 
-TMP_47 \def (\lambda (H: (eq K (Bind b) (Flat f))).(\lambda (P: Prop).(let 
-TMP_44 \def (Bind b) in (let TMP_45 \def (\lambda (ee: K).(match ee with 
-[(Bind _) \Rightarrow True | (Flat _) \Rightarrow False])) in (let TMP_46 
-\def (Flat f) in (let H0 \def (eq_ind K TMP_44 TMP_45 I TMP_46 H) in 
-(False_ind P H0))))))) in (or_intror TMP_42 TMP_43 TMP_47))))))) in (K_ind 
-TMP_7 TMP_39 TMP_48 k2)))))) in (let TMP_95 \def (\lambda (f: F).(\lambda 
-(k2: K).(let TMP_53 \def (\lambda (k: K).(let TMP_50 \def (Flat f) in (let 
-TMP_51 \def (eq K TMP_50 k) in (let TMP_52 \def ((eq K (Flat f) k) \to 
-(\forall (P: Prop).P)) in (or TMP_51 TMP_52))))) in (let TMP_62 \def (\lambda 
-(b: B).(let TMP_54 \def (Flat f) in (let TMP_55 \def (Bind b) in (let TMP_56 
-\def (eq K TMP_54 TMP_55) in (let TMP_57 \def ((eq K (Flat f) (Bind b)) \to 
-(\forall (P: Prop).P)) in (let TMP_61 \def (\lambda (H: (eq K (Flat f) (Bind 
-b))).(\lambda (P: Prop).(let TMP_58 \def (Flat f) in (let TMP_59 \def 
-(\lambda (ee: K).(match ee with [(Bind _) \Rightarrow False | (Flat _) 
-\Rightarrow True])) in (let TMP_60 \def (Bind b) in (let H0 \def (eq_ind K 
-TMP_58 TMP_59 I TMP_60 H) in (False_ind P H0))))))) in (or_intror TMP_56 
-TMP_57 TMP_61))))))) in (let TMP_94 \def (\lambda (f0: F).(let H_x \def 
-(terms_props__flat_dec f f0) in (let H \def H_x in (let TMP_63 \def (eq F f 
-f0) in (let TMP_64 \def ((eq F f f0) \to (\forall (P: Prop).P)) in (let 
-TMP_65 \def (Flat f) in (let TMP_66 \def (Flat f0) in (let TMP_67 \def (eq K 
-TMP_65 TMP_66) in (let TMP_68 \def ((eq K (Flat f) (Flat f0)) \to (\forall 
-(P: Prop).P)) in (let TMP_69 \def (or TMP_67 TMP_68) in (let TMP_82 \def 
-(\lambda (H0: (eq F f f0)).(let TMP_74 \def (\lambda (f1: F).(let TMP_70 \def 
-(Flat f) in (let TMP_71 \def (Flat f1) in (let TMP_72 \def (eq K TMP_70 
-TMP_71) in (let TMP_73 \def ((eq K (Flat f) (Flat f1)) \to (\forall (P: 
-Prop).P)) in (or TMP_72 TMP_73)))))) in (let TMP_75 \def (Flat f) in (let 
-TMP_76 \def (Flat f) in (let TMP_77 \def (eq K TMP_75 TMP_76) in (let TMP_78 
-\def ((eq K (Flat f) (Flat f)) \to (\forall (P: Prop).P)) in (let TMP_79 \def 
-(Flat f) in (let TMP_80 \def (refl_equal K TMP_79) in (let TMP_81 \def 
-(or_introl TMP_77 TMP_78 TMP_80) in (eq_ind F f TMP_74 TMP_81 f0 H0)))))))))) 
-in (let TMP_93 \def (\lambda (H0: (((eq F f f0) \to (\forall (P: 
-Prop).P)))).(let TMP_83 \def (Flat f) in (let TMP_84 \def (Flat f0) in (let 
-TMP_85 \def (eq K TMP_83 TMP_84) in (let TMP_86 \def ((eq K (Flat f) (Flat 
-f0)) \to (\forall (P: Prop).P)) in (let TMP_92 \def (\lambda (H1: (eq K (Flat 
-f) (Flat f0))).(\lambda (P: Prop).(let TMP_87 \def (\lambda (e: K).(match e 
-with [(Bind _) \Rightarrow f | (Flat f1) \Rightarrow f1])) in (let TMP_88 
-\def (Flat f) in (let TMP_89 \def (Flat f0) in (let H2 \def (f_equal K F 
-TMP_87 TMP_88 TMP_89 H1) in (let TMP_90 \def (\lambda (f1: F).((eq F f f1) 
-\to (\forall (P0: Prop).P0))) in (let H3 \def (eq_ind_r F f0 TMP_90 H0 f H2) 
-in (let TMP_91 \def (refl_equal F f) in (H3 TMP_91 P)))))))))) in (or_intror 
-TMP_85 TMP_86 TMP_92))))))) in (or_ind TMP_63 TMP_64 TMP_69 TMP_82 TMP_93 
-H))))))))))))) in (K_ind TMP_53 TMP_62 TMP_94 k2)))))) in (K_ind TMP_3 TMP_49 
-TMP_95 k1)))).
+ \lambda (k1: K).(K_ind (\lambda (k: K).(\forall (k2: K).(or (eq K k k2) ((eq 
+K k k2) \to (\forall (P: Prop).P))))) (\lambda (b: B).(\lambda (k2: K).(K_ind 
+(\lambda (k: K).(or (eq K (Bind b) k) ((eq K (Bind b) k) \to (\forall (P: 
+Prop).P)))) (\lambda (b0: B).(let H_x \def (terms_props__bind_dec b b0) in 
+(let H \def H_x in (or_ind (eq B b b0) ((eq B b b0) \to (\forall (P: 
+Prop).P)) (or (eq K (Bind b) (Bind b0)) ((eq K (Bind b) (Bind b0)) \to 
+(\forall (P: Prop).P))) (\lambda (H0: (eq B b b0)).(eq_ind B b (\lambda (b1: 
+B).(or (eq K (Bind b) (Bind b1)) ((eq K (Bind b) (Bind b1)) \to (\forall (P: 
+Prop).P)))) (or_introl (eq K (Bind b) (Bind b)) ((eq K (Bind b) (Bind b)) \to 
+(\forall (P: Prop).P)) (refl_equal K (Bind b))) b0 H0)) (\lambda (H0: (((eq B 
+b b0) \to (\forall (P: Prop).P)))).(or_intror (eq K (Bind b) (Bind b0)) ((eq 
+K (Bind b) (Bind b0)) \to (\forall (P: Prop).P)) (\lambda (H1: (eq K (Bind b) 
+(Bind b0))).(\lambda (P: Prop).(let H2 \def (f_equal K B (\lambda (e: 
+K).(match e with [(Bind b1) \Rightarrow b1 | (Flat _) \Rightarrow b])) (Bind 
+b) (Bind b0) H1) in (let H3 \def (eq_ind_r B b0 (\lambda (b1: B).((eq B b b1) 
+\to (\forall (P0: Prop).P0))) H0 b H2) in (H3 (refl_equal B b) P))))))) H)))) 
+(\lambda (f: F).(or_intror (eq K (Bind b) (Flat f)) ((eq K (Bind b) (Flat f)) 
+\to (\forall (P: Prop).P)) (\lambda (H: (eq K (Bind b) (Flat f))).(\lambda 
+(P: Prop).(let H0 \def (eq_ind K (Bind b) (\lambda (ee: K).(match ee with 
+[(Bind _) \Rightarrow True | (Flat _) \Rightarrow False])) I (Flat f) H) in 
+(False_ind P H0)))))) k2))) (\lambda (f: F).(\lambda (k2: K).(K_ind (\lambda 
+(k: K).(or (eq K (Flat f) k) ((eq K (Flat f) k) \to (\forall (P: Prop).P)))) 
+(\lambda (b: B).(or_intror (eq K (Flat f) (Bind b)) ((eq K (Flat f) (Bind b)) 
+\to (\forall (P: Prop).P)) (\lambda (H: (eq K (Flat f) (Bind b))).(\lambda 
+(P: Prop).(let H0 \def (eq_ind K (Flat f) (\lambda (ee: K).(match ee with 
+[(Bind _) \Rightarrow False | (Flat _) \Rightarrow True])) I (Bind b) H) in 
+(False_ind P H0)))))) (\lambda (f0: F).(let H_x \def (terms_props__flat_dec f 
+f0) in (let H \def H_x in (or_ind (eq F f f0) ((eq F f f0) \to (\forall (P: 
+Prop).P)) (or (eq K (Flat f) (Flat f0)) ((eq K (Flat f) (Flat f0)) \to 
+(\forall (P: Prop).P))) (\lambda (H0: (eq F f f0)).(eq_ind F f (\lambda (f1: 
+F).(or (eq K (Flat f) (Flat f1)) ((eq K (Flat f) (Flat f1)) \to (\forall (P: 
+Prop).P)))) (or_introl (eq K (Flat f) (Flat f)) ((eq K (Flat f) (Flat f)) \to 
+(\forall (P: Prop).P)) (refl_equal K (Flat f))) f0 H0)) (\lambda (H0: (((eq F 
+f f0) \to (\forall (P: Prop).P)))).(or_intror (eq K (Flat f) (Flat f0)) ((eq 
+K (Flat f) (Flat f0)) \to (\forall (P: Prop).P)) (\lambda (H1: (eq K (Flat f) 
+(Flat f0))).(\lambda (P: Prop).(let H2 \def (f_equal K F (\lambda (e: 
+K).(match e with [(Bind _) \Rightarrow f | (Flat f1) \Rightarrow f1])) (Flat 
+f) (Flat f0) H1) in (let H3 \def (eq_ind_r F f0 (\lambda (f1: F).((eq F f f1) 
+\to (\forall (P0: Prop).P0))) H0 f H2) in (H3 (refl_equal F f) P))))))) H)))) 
+k2))) k1).
 
 theorem term_dec:
  \forall (t1: T).(\forall (t2: T).(or (eq T t1 t2) ((eq T t1 t2) \to (\forall 
 (P: Prop).P))))
 \def
- \lambda (t1: T).(let TMP_3 \def (\lambda (t: T).(\forall (t2: T).(let TMP_1 
-\def (eq T t t2) in (let TMP_2 \def ((eq T t t2) \to (\forall (P: Prop).P)) 
-in (or TMP_1 TMP_2))))) in (let TMP_58 \def (\lambda (n: nat).(\lambda (t2: 
-T).(let TMP_7 \def (\lambda (t: T).(let TMP_4 \def (TSort n) in (let TMP_5 
-\def (eq T TMP_4 t) in (let TMP_6 \def ((eq T (TSort n) t) \to (\forall (P: 
-Prop).P)) in (or TMP_5 TMP_6))))) in (let TMP_39 \def (\lambda (n0: nat).(let 
-H_x \def (nat_dec n n0) in (let H \def H_x in (let TMP_8 \def (eq nat n n0) 
-in (let TMP_9 \def ((eq nat n n0) \to (\forall (P: Prop).P)) in (let TMP_10 
-\def (TSort n) in (let TMP_11 \def (TSort n0) in (let TMP_12 \def (eq T 
-TMP_10 TMP_11) in (let TMP_13 \def ((eq T (TSort n) (TSort n0)) \to (\forall 
-(P: Prop).P)) in (let TMP_14 \def (or TMP_12 TMP_13) in (let TMP_27 \def 
-(\lambda (H0: (eq nat n n0)).(let TMP_19 \def (\lambda (n1: nat).(let TMP_15 
-\def (TSort n) in (let TMP_16 \def (TSort n1) in (let TMP_17 \def (eq T 
-TMP_15 TMP_16) in (let TMP_18 \def ((eq T (TSort n) (TSort n1)) \to (\forall 
-(P: Prop).P)) in (or TMP_17 TMP_18)))))) in (let TMP_20 \def (TSort n) in 
-(let TMP_21 \def (TSort n) in (let TMP_22 \def (eq T TMP_20 TMP_21) in (let 
-TMP_23 \def ((eq T (TSort n) (TSort n)) \to (\forall (P: Prop).P)) in (let 
-TMP_24 \def (TSort n) in (let TMP_25 \def (refl_equal T TMP_24) in (let 
-TMP_26 \def (or_introl TMP_22 TMP_23 TMP_25) in (eq_ind nat n TMP_19 TMP_26 
-n0 H0)))))))))) in (let TMP_38 \def (\lambda (H0: (((eq nat n n0) \to 
-(\forall (P: Prop).P)))).(let TMP_28 \def (TSort n) in (let TMP_29 \def 
-(TSort n0) in (let TMP_30 \def (eq T TMP_28 TMP_29) in (let TMP_31 \def ((eq 
-T (TSort n) (TSort n0)) \to (\forall (P: Prop).P)) in (let TMP_37 \def 
-(\lambda (H1: (eq T (TSort n) (TSort n0))).(\lambda (P: Prop).(let TMP_32 
-\def (\lambda (e: T).(match e with [(TSort n1) \Rightarrow n1 | (TLRef _) 
-\Rightarrow n | (THead _ _ _) \Rightarrow n])) in (let TMP_33 \def (TSort n) 
-in (let TMP_34 \def (TSort n0) in (let H2 \def (f_equal T nat TMP_32 TMP_33 
-TMP_34 H1) in (let TMP_35 \def (\lambda (n1: nat).((eq nat n n1) \to (\forall 
-(P0: Prop).P0))) in (let H3 \def (eq_ind_r nat n0 TMP_35 H0 n H2) in (let 
-TMP_36 \def (refl_equal nat n) in (H3 TMP_36 P)))))))))) in (or_intror TMP_30 
-TMP_31 TMP_37))))))) in (or_ind TMP_8 TMP_9 TMP_14 TMP_27 TMP_38 
-H))))))))))))) in (let TMP_48 \def (\lambda (n0: nat).(let TMP_40 \def (TSort 
-n) in (let TMP_41 \def (TLRef n0) in (let TMP_42 \def (eq T TMP_40 TMP_41) in 
-(let TMP_43 \def ((eq T (TSort n) (TLRef n0)) \to (\forall (P: Prop).P)) in 
-(let TMP_47 \def (\lambda (H: (eq T (TSort n) (TLRef n0))).(\lambda (P: 
-Prop).(let TMP_44 \def (TSort n) in (let TMP_45 \def (\lambda (ee: T).(match 
-ee with [(TSort _) \Rightarrow True | (TLRef _) \Rightarrow False | (THead _ 
-_ _) \Rightarrow False])) in (let TMP_46 \def (TLRef n0) in (let H0 \def 
-(eq_ind T TMP_44 TMP_45 I TMP_46 H) in (False_ind P H0))))))) in (or_intror 
-TMP_42 TMP_43 TMP_47))))))) in (let TMP_57 \def (\lambda (k: K).(\lambda (t: 
-T).(\lambda (_: (or (eq T (TSort n) t) ((eq T (TSort n) t) \to (\forall (P: 
-Prop).P)))).(\lambda (t0: T).(\lambda (_: (or (eq T (TSort n) t0) ((eq T 
-(TSort n) t0) \to (\forall (P: Prop).P)))).(let TMP_49 \def (TSort n) in (let 
-TMP_50 \def (THead k t t0) in (let TMP_51 \def (eq T TMP_49 TMP_50) in (let 
-TMP_52 \def ((eq T (TSort n) (THead k t t0)) \to (\forall (P: Prop).P)) in 
-(let TMP_56 \def (\lambda (H1: (eq T (TSort n) (THead k t t0))).(\lambda (P: 
-Prop).(let TMP_53 \def (TSort n) in (let TMP_54 \def (\lambda (ee: T).(match 
-ee with [(TSort _) \Rightarrow True | (TLRef _) \Rightarrow False | (THead _ 
-_ _) \Rightarrow False])) in (let TMP_55 \def (THead k t t0) in (let H2 \def 
-(eq_ind T TMP_53 TMP_54 I TMP_55 H1) in (False_ind P H2))))))) in (or_intror 
-TMP_51 TMP_52 TMP_56))))))))))) in (T_ind TMP_7 TMP_39 TMP_48 TMP_57 
-t2))))))) in (let TMP_113 \def (\lambda (n: nat).(\lambda (t2: T).(let TMP_62 
-\def (\lambda (t: T).(let TMP_59 \def (TLRef n) in (let TMP_60 \def (eq T 
-TMP_59 t) in (let TMP_61 \def ((eq T (TLRef n) t) \to (\forall (P: Prop).P)) 
-in (or TMP_60 TMP_61))))) in (let TMP_71 \def (\lambda (n0: nat).(let TMP_63 
-\def (TLRef n) in (let TMP_64 \def (TSort n0) in (let TMP_65 \def (eq T 
-TMP_63 TMP_64) in (let TMP_66 \def ((eq T (TLRef n) (TSort n0)) \to (\forall 
-(P: Prop).P)) in (let TMP_70 \def (\lambda (H: (eq T (TLRef n) (TSort 
-n0))).(\lambda (P: Prop).(let TMP_67 \def (TLRef n) in (let TMP_68 \def 
-(\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) 
-\Rightarrow True | (THead _ _ _) \Rightarrow False])) in (let TMP_69 \def 
-(TSort n0) in (let H0 \def (eq_ind T TMP_67 TMP_68 I TMP_69 H) in (False_ind 
-P H0))))))) in (or_intror TMP_65 TMP_66 TMP_70))))))) in (let TMP_103 \def 
-(\lambda (n0: nat).(let H_x \def (nat_dec n n0) in (let H \def H_x in (let 
-TMP_72 \def (eq nat n n0) in (let TMP_73 \def ((eq nat n n0) \to (\forall (P: 
-Prop).P)) in (let TMP_74 \def (TLRef n) in (let TMP_75 \def (TLRef n0) in 
-(let TMP_76 \def (eq T TMP_74 TMP_75) in (let TMP_77 \def ((eq T (TLRef n) 
-(TLRef n0)) \to (\forall (P: Prop).P)) in (let TMP_78 \def (or TMP_76 TMP_77) 
-in (let TMP_91 \def (\lambda (H0: (eq nat n n0)).(let TMP_83 \def (\lambda 
-(n1: nat).(let TMP_79 \def (TLRef n) in (let TMP_80 \def (TLRef n1) in (let 
-TMP_81 \def (eq T TMP_79 TMP_80) in (let TMP_82 \def ((eq T (TLRef n) (TLRef 
-n1)) \to (\forall (P: Prop).P)) in (or TMP_81 TMP_82)))))) in (let TMP_84 
-\def (TLRef n) in (let TMP_85 \def (TLRef n) in (let TMP_86 \def (eq T TMP_84 
-TMP_85) in (let TMP_87 \def ((eq T (TLRef n) (TLRef n)) \to (\forall (P: 
-Prop).P)) in (let TMP_88 \def (TLRef n) in (let TMP_89 \def (refl_equal T 
-TMP_88) in (let TMP_90 \def (or_introl TMP_86 TMP_87 TMP_89) in (eq_ind nat n 
-TMP_83 TMP_90 n0 H0)))))))))) in (let TMP_102 \def (\lambda (H0: (((eq nat n 
-n0) \to (\forall (P: Prop).P)))).(let TMP_92 \def (TLRef n) in (let TMP_93 
-\def (TLRef n0) in (let TMP_94 \def (eq T TMP_92 TMP_93) in (let TMP_95 \def 
-((eq T (TLRef n) (TLRef n0)) \to (\forall (P: Prop).P)) in (let TMP_101 \def 
-(\lambda (H1: (eq T (TLRef n) (TLRef n0))).(\lambda (P: Prop).(let TMP_96 
-\def (\lambda (e: T).(match e with [(TSort _) \Rightarrow n | (TLRef n1) 
-\Rightarrow n1 | (THead _ _ _) \Rightarrow n])) in (let TMP_97 \def (TLRef n) 
-in (let TMP_98 \def (TLRef n0) in (let H2 \def (f_equal T nat TMP_96 TMP_97 
-TMP_98 H1) in (let TMP_99 \def (\lambda (n1: nat).((eq nat n n1) \to (\forall 
-(P0: Prop).P0))) in (let H3 \def (eq_ind_r nat n0 TMP_99 H0 n H2) in (let 
-TMP_100 \def (refl_equal nat n) in (H3 TMP_100 P)))))))))) in (or_intror 
-TMP_94 TMP_95 TMP_101))))))) in (or_ind TMP_72 TMP_73 TMP_78 TMP_91 TMP_102 
-H))))))))))))) in (let TMP_112 \def (\lambda (k: K).(\lambda (t: T).(\lambda 
-(_: (or (eq T (TLRef n) t) ((eq T (TLRef n) t) \to (\forall (P: 
-Prop).P)))).(\lambda (t0: T).(\lambda (_: (or (eq T (TLRef n) t0) ((eq T 
-(TLRef n) t0) \to (\forall (P: Prop).P)))).(let TMP_104 \def (TLRef n) in 
-(let TMP_105 \def (THead k t t0) in (let TMP_106 \def (eq T TMP_104 TMP_105) 
-in (let TMP_107 \def ((eq T (TLRef n) (THead k t t0)) \to (\forall (P: 
-Prop).P)) in (let TMP_111 \def (\lambda (H1: (eq T (TLRef n) (THead k t 
-t0))).(\lambda (P: Prop).(let TMP_108 \def (TLRef n) in (let TMP_109 \def 
-(\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) 
-\Rightarrow True | (THead _ _ _) \Rightarrow False])) in (let TMP_110 \def 
-(THead k t t0) in (let H2 \def (eq_ind T TMP_108 TMP_109 I TMP_110 H1) in 
-(False_ind P H2))))))) in (or_intror TMP_106 TMP_107 TMP_111))))))))))) in 
-(T_ind TMP_62 TMP_71 TMP_103 TMP_112 t2))))))) in (let TMP_250 \def (\lambda 
-(k: K).(\lambda (t: T).(\lambda (H: ((\forall (t2: T).(or (eq T t t2) ((eq T 
-t t2) \to (\forall (P: Prop).P)))))).(\lambda (t0: T).(\lambda (H0: ((\forall 
-(t2: T).(or (eq T t0 t2) ((eq T t0 t2) \to (\forall (P: 
-Prop).P)))))).(\lambda (t2: T).(let TMP_117 \def (\lambda (t3: T).(let 
-TMP_114 \def (THead k t t0) in (let TMP_115 \def (eq T TMP_114 t3) in (let 
-TMP_116 \def ((eq T (THead k t t0) t3) \to (\forall (P: Prop).P)) in (or 
-TMP_115 TMP_116))))) in (let TMP_126 \def (\lambda (n: nat).(let TMP_118 \def 
-(THead k t t0) in (let TMP_119 \def (TSort n) in (let TMP_120 \def (eq T 
-TMP_118 TMP_119) in (let TMP_121 \def ((eq T (THead k t t0) (TSort n)) \to 
-(\forall (P: Prop).P)) in (let TMP_125 \def (\lambda (H1: (eq T (THead k t 
-t0) (TSort n))).(\lambda (P: Prop).(let TMP_122 \def (THead k t t0) in (let 
-TMP_123 \def (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | 
-(TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow True])) in (let 
-TMP_124 \def (TSort n) in (let H2 \def (eq_ind T TMP_122 TMP_123 I TMP_124 
-H1) in (False_ind P H2))))))) in (or_intror TMP_120 TMP_121 TMP_125))))))) in 
-(let TMP_135 \def (\lambda (n: nat).(let TMP_127 \def (THead k t t0) in (let 
-TMP_128 \def (TLRef n) in (let TMP_129 \def (eq T TMP_127 TMP_128) in (let 
-TMP_130 \def ((eq T (THead k t t0) (TLRef n)) \to (\forall (P: Prop).P)) in 
-(let TMP_134 \def (\lambda (H1: (eq T (THead k t t0) (TLRef n))).(\lambda (P: 
-Prop).(let TMP_131 \def (THead k t t0) in (let TMP_132 \def (\lambda (ee: 
+ \lambda (t1: T).(T_ind (\lambda (t: T).(\forall (t2: T).(or (eq T t t2) ((eq 
+T t t2) \to (\forall (P: Prop).P))))) (\lambda (n: nat).(\lambda (t2: 
+T).(T_ind (\lambda (t: T).(or (eq T (TSort n) t) ((eq T (TSort n) t) \to 
+(\forall (P: Prop).P)))) (\lambda (n0: nat).(let H_x \def (nat_dec n n0) in 
+(let H \def H_x in (or_ind (eq nat n n0) ((eq nat n n0) \to (\forall (P: 
+Prop).P)) (or (eq T (TSort n) (TSort n0)) ((eq T (TSort n) (TSort n0)) \to 
+(\forall (P: Prop).P))) (\lambda (H0: (eq nat n n0)).(eq_ind nat n (\lambda 
+(n1: nat).(or (eq T (TSort n) (TSort n1)) ((eq T (TSort n) (TSort n1)) \to 
+(\forall (P: Prop).P)))) (or_introl (eq T (TSort n) (TSort n)) ((eq T (TSort 
+n) (TSort n)) \to (\forall (P: Prop).P)) (refl_equal T (TSort n))) n0 H0)) 
+(\lambda (H0: (((eq nat n n0) \to (\forall (P: Prop).P)))).(or_intror (eq T 
+(TSort n) (TSort n0)) ((eq T (TSort n) (TSort n0)) \to (\forall (P: Prop).P)) 
+(\lambda (H1: (eq T (TSort n) (TSort n0))).(\lambda (P: Prop).(let H2 \def 
+(f_equal T nat (\lambda (e: T).(match e with [(TSort n1) \Rightarrow n1 | 
+(TLRef _) \Rightarrow n | (THead _ _ _) \Rightarrow n])) (TSort n) (TSort n0) 
+H1) in (let H3 \def (eq_ind_r nat n0 (\lambda (n1: nat).((eq nat n n1) \to 
+(\forall (P0: Prop).P0))) H0 n H2) in (H3 (refl_equal nat n) P))))))) H)))) 
+(\lambda (n0: nat).(or_intror (eq T (TSort n) (TLRef n0)) ((eq T (TSort n) 
+(TLRef n0)) \to (\forall (P: Prop).P)) (\lambda (H: (eq T (TSort n) (TLRef 
+n0))).(\lambda (P: Prop).(let H0 \def (eq_ind T (TSort n) (\lambda (ee: 
+T).(match ee with [(TSort _) \Rightarrow True | (TLRef _) \Rightarrow False | 
+(THead _ _ _) \Rightarrow False])) I (TLRef n0) H) in (False_ind P H0)))))) 
+(\lambda (k: K).(\lambda (t: T).(\lambda (_: (or (eq T (TSort n) t) ((eq T 
+(TSort n) t) \to (\forall (P: Prop).P)))).(\lambda (t0: T).(\lambda (_: (or 
+(eq T (TSort n) t0) ((eq T (TSort n) t0) \to (\forall (P: 
+Prop).P)))).(or_intror (eq T (TSort n) (THead k t t0)) ((eq T (TSort n) 
+(THead k t t0)) \to (\forall (P: Prop).P)) (\lambda (H1: (eq T (TSort n) 
+(THead k t t0))).(\lambda (P: Prop).(let H2 \def (eq_ind T (TSort n) (\lambda 
+(ee: T).(match ee with [(TSort _) \Rightarrow True | (TLRef _) \Rightarrow 
+False | (THead _ _ _) \Rightarrow False])) I (THead k t t0) H1) in (False_ind 
+P H2)))))))))) t2))) (\lambda (n: nat).(\lambda (t2: T).(T_ind (\lambda (t: 
+T).(or (eq T (TLRef n) t) ((eq T (TLRef n) t) \to (\forall (P: Prop).P)))) 
+(\lambda (n0: nat).(or_intror (eq T (TLRef n) (TSort n0)) ((eq T (TLRef n) 
+(TSort n0)) \to (\forall (P: Prop).P)) (\lambda (H: (eq T (TLRef n) (TSort 
+n0))).(\lambda (P: Prop).(let H0 \def (eq_ind T (TLRef n) (\lambda (ee: 
+T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow True | 
+(THead _ _ _) \Rightarrow False])) I (TSort n0) H) in (False_ind P H0)))))) 
+(\lambda (n0: nat).(let H_x \def (nat_dec n n0) in (let H \def H_x in (or_ind 
+(eq nat n n0) ((eq nat n n0) \to (\forall (P: Prop).P)) (or (eq T (TLRef n) 
+(TLRef n0)) ((eq T (TLRef n) (TLRef n0)) \to (\forall (P: Prop).P))) (\lambda 
+(H0: (eq nat n n0)).(eq_ind nat n (\lambda (n1: nat).(or (eq T (TLRef n) 
+(TLRef n1)) ((eq T (TLRef n) (TLRef n1)) \to (\forall (P: Prop).P)))) 
+(or_introl (eq T (TLRef n) (TLRef n)) ((eq T (TLRef n) (TLRef n)) \to 
+(\forall (P: Prop).P)) (refl_equal T (TLRef n))) n0 H0)) (\lambda (H0: (((eq 
+nat n n0) \to (\forall (P: Prop).P)))).(or_intror (eq T (TLRef n) (TLRef n0)) 
+((eq T (TLRef n) (TLRef n0)) \to (\forall (P: Prop).P)) (\lambda (H1: (eq T 
+(TLRef n) (TLRef n0))).(\lambda (P: Prop).(let H2 \def (f_equal T nat 
+(\lambda (e: T).(match e with [(TSort _) \Rightarrow n | (TLRef n1) 
+\Rightarrow n1 | (THead _ _ _) \Rightarrow n])) (TLRef n) (TLRef n0) H1) in 
+(let H3 \def (eq_ind_r nat n0 (\lambda (n1: nat).((eq nat n n1) \to (\forall 
+(P0: Prop).P0))) H0 n H2) in (H3 (refl_equal nat n) P))))))) H)))) (\lambda 
+(k: K).(\lambda (t: T).(\lambda (_: (or (eq T (TLRef n) t) ((eq T (TLRef n) 
+t) \to (\forall (P: Prop).P)))).(\lambda (t0: T).(\lambda (_: (or (eq T 
+(TLRef n) t0) ((eq T (TLRef n) t0) \to (\forall (P: Prop).P)))).(or_intror 
+(eq T (TLRef n) (THead k t t0)) ((eq T (TLRef n) (THead k t t0)) \to (\forall 
+(P: Prop).P)) (\lambda (H1: (eq T (TLRef n) (THead k t t0))).(\lambda (P: 
+Prop).(let H2 \def (eq_ind T (TLRef n) (\lambda (ee: T).(match ee with 
+[(TSort _) \Rightarrow False | (TLRef _) \Rightarrow True | (THead _ _ _) 
+\Rightarrow False])) I (THead k t t0) H1) in (False_ind P H2)))))))))) t2))) 
+(\lambda (k: K).(\lambda (t: T).(\lambda (H: ((\forall (t2: T).(or (eq T t 
+t2) ((eq T t t2) \to (\forall (P: Prop).P)))))).(\lambda (t0: T).(\lambda 
+(H0: ((\forall (t2: T).(or (eq T t0 t2) ((eq T t0 t2) \to (\forall (P: 
+Prop).P)))))).(\lambda (t2: T).(T_ind (\lambda (t3: T).(or (eq T (THead k t 
+t0) t3) ((eq T (THead k t t0) t3) \to (\forall (P: Prop).P)))) (\lambda (n: 
+nat).(or_intror (eq T (THead k t t0) (TSort n)) ((eq T (THead k t t0) (TSort 
+n)) \to (\forall (P: Prop).P)) (\lambda (H1: (eq T (THead k t t0) (TSort 
+n))).(\lambda (P: Prop).(let H2 \def (eq_ind T (THead k t t0) (\lambda (ee: 
 T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False 
-| (THead _ _ _) \Rightarrow True])) in (let TMP_133 \def (TLRef n) in (let H2 
-\def (eq_ind T TMP_131 TMP_132 I TMP_133 H1) in (False_ind P H2))))))) in 
-(or_intror TMP_129 TMP_130 TMP_134))))))) in (let TMP_249 \def (\lambda (k0: 
-K).(\lambda (t3: T).(\lambda (H1: (or (eq T (THead k t t0) t3) ((eq T (THead 
-k t t0) t3) \to (\forall (P: Prop).P)))).(\lambda (t4: T).(\lambda (H2: (or 
-(eq T (THead k t t0) t4) ((eq T (THead k t t0) t4) \to (\forall (P: 
-Prop).P)))).(let H_x \def (H t3) in (let H3 \def H_x in (let TMP_136 \def (eq 
-T t t3) in (let TMP_137 \def ((eq T t t3) \to (\forall (P: Prop).P)) in (let 
-TMP_138 \def (THead k t t0) in (let TMP_139 \def (THead k0 t3 t4) in (let 
-TMP_140 \def (eq T TMP_138 TMP_139) in (let TMP_141 \def ((eq T (THead k t 
-t0) (THead k0 t3 t4)) \to (\forall (P: Prop).P)) in (let TMP_142 \def (or 
-TMP_140 TMP_141) in (let TMP_221 \def (\lambda (H4: (eq T t t3)).(let TMP_146 
-\def (\lambda (t5: T).(let TMP_143 \def (THead k t t0) in (let TMP_144 \def 
-(eq T TMP_143 t5) in (let TMP_145 \def ((eq T (THead k t t0) t5) \to (\forall 
-(P: Prop).P)) in (or TMP_144 TMP_145))))) in (let H5 \def (eq_ind_r T t3 
-TMP_146 H1 t H4) in (let TMP_151 \def (\lambda (t5: T).(let TMP_147 \def 
-(THead k t t0) in (let TMP_148 \def (THead k0 t5 t4) in (let TMP_149 \def (eq 
-T TMP_147 TMP_148) in (let TMP_150 \def ((eq T (THead k t t0) (THead k0 t5 
-t4)) \to (\forall (P: Prop).P)) in (or TMP_149 TMP_150)))))) in (let H_x0 
-\def (H0 t4) in (let H6 \def H_x0 in (let TMP_152 \def (eq T t0 t4) in (let 
-TMP_153 \def ((eq T t0 t4) \to (\forall (P: Prop).P)) in (let TMP_154 \def 
-(THead k t t0) in (let TMP_155 \def (THead k0 t t4) in (let TMP_156 \def (eq 
-T TMP_154 TMP_155) in (let TMP_157 \def ((eq T (THead k t t0) (THead k0 t 
-t4)) \to (\forall (P: Prop).P)) in (let TMP_158 \def (or TMP_156 TMP_157) in 
-(let TMP_200 \def (\lambda (H7: (eq T t0 t4)).(let TMP_162 \def (\lambda (t5: 
-T).(let TMP_159 \def (THead k t t0) in (let TMP_160 \def (eq T TMP_159 t5) in 
-(let TMP_161 \def ((eq T (THead k t t0) t5) \to (\forall (P: Prop).P)) in (or 
-TMP_160 TMP_161))))) in (let H8 \def (eq_ind_r T t4 TMP_162 H2 t0 H7) in (let 
-TMP_167 \def (\lambda (t5: T).(let TMP_163 \def (THead k t t0) in (let 
-TMP_164 \def (THead k0 t t5) in (let TMP_165 \def (eq T TMP_163 TMP_164) in 
-(let TMP_166 \def ((eq T (THead k t t0) (THead k0 t t5)) \to (\forall (P: 
-Prop).P)) in (or TMP_165 TMP_166)))))) in (let H_x1 \def 
-(terms_props__kind_dec k k0) in (let H9 \def H_x1 in (let TMP_168 \def (eq K 
-k k0) in (let TMP_169 \def ((eq K k k0) \to (\forall (P: Prop).P)) in (let 
-TMP_170 \def (THead k t t0) in (let TMP_171 \def (THead k0 t t0) in (let 
-TMP_172 \def (eq T TMP_170 TMP_171) in (let TMP_173 \def ((eq T (THead k t 
-t0) (THead k0 t t0)) \to (\forall (P: Prop).P)) in (let TMP_174 \def (or 
-TMP_172 TMP_173) in (let TMP_187 \def (\lambda (H10: (eq K k k0)).(let 
-TMP_179 \def (\lambda (k1: K).(let TMP_175 \def (THead k t t0) in (let 
-TMP_176 \def (THead k1 t t0) in (let TMP_177 \def (eq T TMP_175 TMP_176) in 
-(let TMP_178 \def ((eq T (THead k t t0) (THead k1 t t0)) \to (\forall (P: 
-Prop).P)) in (or TMP_177 TMP_178)))))) in (let TMP_180 \def (THead k t t0) in 
-(let TMP_181 \def (THead k t t0) in (let TMP_182 \def (eq T TMP_180 TMP_181) 
-in (let TMP_183 \def ((eq T (THead k t t0) (THead k t t0)) \to (\forall (P: 
-Prop).P)) in (let TMP_184 \def (THead k t t0) in (let TMP_185 \def 
-(refl_equal T TMP_184) in (let TMP_186 \def (or_introl TMP_182 TMP_183 
-TMP_185) in (eq_ind K k TMP_179 TMP_186 k0 H10)))))))))) in (let TMP_198 \def 
-(\lambda (H10: (((eq K k k0) \to (\forall (P: Prop).P)))).(let TMP_188 \def 
-(THead k t t0) in (let TMP_189 \def (THead k0 t t0) in (let TMP_190 \def (eq 
-T TMP_188 TMP_189) in (let TMP_191 \def ((eq T (THead k t t0) (THead k0 t 
-t0)) \to (\forall (P: Prop).P)) in (let TMP_197 \def (\lambda (H11: (eq T 
-(THead k t t0) (THead k0 t t0))).(\lambda (P: Prop).(let TMP_192 \def 
+| (THead _ _ _) \Rightarrow True])) I (TSort n) H1) in (False_ind P H2)))))) 
+(\lambda (n: nat).(or_intror (eq T (THead k t t0) (TLRef n)) ((eq T (THead k 
+t t0) (TLRef n)) \to (\forall (P: Prop).P)) (\lambda (H1: (eq T (THead k t 
+t0) (TLRef n))).(\lambda (P: Prop).(let H2 \def (eq_ind T (THead k t t0) 
+(\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) 
+\Rightarrow False | (THead _ _ _) \Rightarrow True])) I (TLRef n) H1) in 
+(False_ind P H2)))))) (\lambda (k0: K).(\lambda (t3: T).(\lambda (H1: (or (eq 
+T (THead k t t0) t3) ((eq T (THead k t t0) t3) \to (\forall (P: 
+Prop).P)))).(\lambda (t4: T).(\lambda (H2: (or (eq T (THead k t t0) t4) ((eq 
+T (THead k t t0) t4) \to (\forall (P: Prop).P)))).(let H_x \def (H t3) in 
+(let H3 \def H_x in (or_ind (eq T t t3) ((eq T t t3) \to (\forall (P: 
+Prop).P)) (or (eq T (THead k t t0) (THead k0 t3 t4)) ((eq T (THead k t t0) 
+(THead k0 t3 t4)) \to (\forall (P: Prop).P))) (\lambda (H4: (eq T t t3)).(let 
+H5 \def (eq_ind_r T t3 (\lambda (t5: T).(or (eq T (THead k t t0) t5) ((eq T 
+(THead k t t0) t5) \to (\forall (P: Prop).P)))) H1 t H4) in (eq_ind T t 
+(\lambda (t5: T).(or (eq T (THead k t t0) (THead k0 t5 t4)) ((eq T (THead k t 
+t0) (THead k0 t5 t4)) \to (\forall (P: Prop).P)))) (let H_x0 \def (H0 t4) in 
+(let H6 \def H_x0 in (or_ind (eq T t0 t4) ((eq T t0 t4) \to (\forall (P: 
+Prop).P)) (or (eq T (THead k t t0) (THead k0 t t4)) ((eq T (THead k t t0) 
+(THead k0 t t4)) \to (\forall (P: Prop).P))) (\lambda (H7: (eq T t0 t4)).(let 
+H8 \def (eq_ind_r T t4 (\lambda (t5: T).(or (eq T (THead k t t0) t5) ((eq T 
+(THead k t t0) t5) \to (\forall (P: Prop).P)))) H2 t0 H7) in (eq_ind T t0 
+(\lambda (t5: T).(or (eq T (THead k t t0) (THead k0 t t5)) ((eq T (THead k t 
+t0) (THead k0 t t5)) \to (\forall (P: Prop).P)))) (let H_x1 \def 
+(terms_props__kind_dec k k0) in (let H9 \def H_x1 in (or_ind (eq K k k0) ((eq 
+K k k0) \to (\forall (P: Prop).P)) (or (eq T (THead k t t0) (THead k0 t t0)) 
+((eq T (THead k t t0) (THead k0 t t0)) \to (\forall (P: Prop).P))) (\lambda 
+(H10: (eq K k k0)).(eq_ind K k (\lambda (k1: K).(or (eq T (THead k t t0) 
+(THead k1 t t0)) ((eq T (THead k t t0) (THead k1 t t0)) \to (\forall (P: 
+Prop).P)))) (or_introl (eq T (THead k t t0) (THead k t t0)) ((eq T (THead k t 
+t0) (THead k t t0)) \to (\forall (P: Prop).P)) (refl_equal T (THead k t t0))) 
+k0 H10)) (\lambda (H10: (((eq K k k0) \to (\forall (P: Prop).P)))).(or_intror 
+(eq T (THead k t t0) (THead k0 t t0)) ((eq T (THead k t t0) (THead k0 t t0)) 
+\to (\forall (P: Prop).P)) (\lambda (H11: (eq T (THead k t t0) (THead k0 t 
+t0))).(\lambda (P: Prop).(let H12 \def (f_equal T K (\lambda (e: T).(match e 
+with [(TSort _) \Rightarrow k | (TLRef _) \Rightarrow k | (THead k1 _ _) 
+\Rightarrow k1])) (THead k t t0) (THead k0 t t0) H11) in (let H13 \def 
+(eq_ind_r K k0 (\lambda (k1: K).((eq K k k1) \to (\forall (P0: Prop).P0))) 
+H10 k H12) in (H13 (refl_equal K k) P))))))) H9))) t4 H7))) (\lambda (H7: 
+(((eq T t0 t4) \to (\forall (P: Prop).P)))).(or_intror (eq T (THead k t t0) 
+(THead k0 t t4)) ((eq T (THead k t t0) (THead k0 t t4)) \to (\forall (P: 
+Prop).P)) (\lambda (H8: (eq T (THead k t t0) (THead k0 t t4))).(\lambda (P: 
+Prop).(let H9 \def (f_equal T K (\lambda (e: T).(match e with [(TSort _) 
+\Rightarrow k | (TLRef _) \Rightarrow k | (THead k1 _ _) \Rightarrow k1])) 
+(THead k t t0) (THead k0 t t4) H8) in ((let H10 \def (f_equal T T (\lambda 
+(e: T).(match e with [(TSort _) \Rightarrow t0 | (TLRef _) \Rightarrow t0 | 
+(THead _ _ t5) \Rightarrow t5])) (THead k t t0) (THead k0 t t4) H8) in 
+(\lambda (_: (eq K k k0)).(let H12 \def (eq_ind_r T t4 (\lambda (t5: T).((eq 
+T t0 t5) \to (\forall (P0: Prop).P0))) H7 t0 H10) in (let H13 \def (eq_ind_r 
+T t4 (\lambda (t5: T).(or (eq T (THead k t t0) t5) ((eq T (THead k t t0) t5) 
+\to (\forall (P0: Prop).P0)))) H2 t0 H10) in (H12 (refl_equal T t0) P))))) 
+H9)))))) H6))) t3 H4))) (\lambda (H4: (((eq T t t3) \to (\forall (P: 
+Prop).P)))).(or_intror (eq T (THead k t t0) (THead k0 t3 t4)) ((eq T (THead k 
+t t0) (THead k0 t3 t4)) \to (\forall (P: Prop).P)) (\lambda (H5: (eq T (THead 
+k t t0) (THead k0 t3 t4))).(\lambda (P: Prop).(let H6 \def (f_equal T K 
 (\lambda (e: T).(match e with [(TSort _) \Rightarrow k | (TLRef _) 
-\Rightarrow k | (THead k1 _ _) \Rightarrow k1])) in (let TMP_193 \def (THead 
-k t t0) in (let TMP_194 \def (THead k0 t t0) in (let H12 \def (f_equal T K 
-TMP_192 TMP_193 TMP_194 H11) in (let TMP_195 \def (\lambda (k1: K).((eq K k 
-k1) \to (\forall (P0: Prop).P0))) in (let H13 \def (eq_ind_r K k0 TMP_195 H10 
-k H12) in (let TMP_196 \def (refl_equal K k) in (H13 TMP_196 P)))))))))) in 
-(or_intror TMP_190 TMP_191 TMP_197))))))) in (let TMP_199 \def (or_ind 
-TMP_168 TMP_169 TMP_174 TMP_187 TMP_198 H9) in (eq_ind T t0 TMP_167 TMP_199 
-t4 H7))))))))))))))))) in (let TMP_219 \def (\lambda (H7: (((eq T t0 t4) \to 
-(\forall (P: Prop).P)))).(let TMP_201 \def (THead k t t0) in (let TMP_202 
-\def (THead k0 t t4) in (let TMP_203 \def (eq T TMP_201 TMP_202) in (let 
-TMP_204 \def ((eq T (THead k t t0) (THead k0 t t4)) \to (\forall (P: 
-Prop).P)) in (let TMP_218 \def (\lambda (H8: (eq T (THead k t t0) (THead k0 t 
-t4))).(\lambda (P: Prop).(let TMP_205 \def (\lambda (e: T).(match e with 
-[(TSort _) \Rightarrow k | (TLRef _) \Rightarrow k | (THead k1 _ _) 
-\Rightarrow k1])) in (let TMP_206 \def (THead k t t0) in (let TMP_207 \def 
-(THead k0 t t4) in (let H9 \def (f_equal T K TMP_205 TMP_206 TMP_207 H8) in 
-(let TMP_208 \def (\lambda (e: T).(match e with [(TSort _) \Rightarrow t0 | 
-(TLRef _) \Rightarrow t0 | (THead _ _ t5) \Rightarrow t5])) in (let TMP_209 
-\def (THead k t t0) in (let TMP_210 \def (THead k0 t t4) in (let H10 \def 
-(f_equal T T TMP_208 TMP_209 TMP_210 H8) in (let TMP_217 \def (\lambda (_: 
-(eq K k k0)).(let TMP_211 \def (\lambda (t5: T).((eq T t0 t5) \to (\forall 
-(P0: Prop).P0))) in (let H12 \def (eq_ind_r T t4 TMP_211 H7 t0 H10) in (let 
-TMP_215 \def (\lambda (t5: T).(let TMP_212 \def (THead k t t0) in (let 
-TMP_213 \def (eq T TMP_212 t5) in (let TMP_214 \def ((eq T (THead k t t0) t5) 
-\to (\forall (P0: Prop).P0)) in (or TMP_213 TMP_214))))) in (let H13 \def 
-(eq_ind_r T t4 TMP_215 H2 t0 H10) in (let TMP_216 \def (refl_equal T t0) in 
-(H12 TMP_216 P))))))) in (TMP_217 H9)))))))))))) in (or_intror TMP_203 
-TMP_204 TMP_218))))))) in (let TMP_220 \def (or_ind TMP_152 TMP_153 TMP_158 
-TMP_200 TMP_219 H6) in (eq_ind T t TMP_151 TMP_220 t3 H4))))))))))))))))) in 
-(let TMP_248 \def (\lambda (H4: (((eq T t t3) \to (\forall (P: 
-Prop).P)))).(let TMP_222 \def (THead k t t0) in (let TMP_223 \def (THead k0 
-t3 t4) in (let TMP_224 \def (eq T TMP_222 TMP_223) in (let TMP_225 \def ((eq 
-T (THead k t t0) (THead k0 t3 t4)) \to (\forall (P: Prop).P)) in (let TMP_247 
-\def (\lambda (H5: (eq T (THead k t t0) (THead k0 t3 t4))).(\lambda (P: 
-Prop).(let TMP_226 \def (\lambda (e: T).(match e with [(TSort _) \Rightarrow 
-k | (TLRef _) \Rightarrow k | (THead k1 _ _) \Rightarrow k1])) in (let 
-TMP_227 \def (THead k t t0) in (let TMP_228 \def (THead k0 t3 t4) in (let H6 
-\def (f_equal T K TMP_226 TMP_227 TMP_228 H5) in (let TMP_229 \def (\lambda 
-(e: T).(match e with [(TSort _) \Rightarrow t | (TLRef _) \Rightarrow t | 
-(THead _ t5 _) \Rightarrow t5])) in (let TMP_230 \def (THead k t t0) in (let 
-TMP_231 \def (THead k0 t3 t4) in (let H7 \def (f_equal T T TMP_229 TMP_230 
-TMP_231 H5) in (let TMP_232 \def (\lambda (e: T).(match e with [(TSort _) 
-\Rightarrow t0 | (TLRef _) \Rightarrow t0 | (THead _ _ t5) \Rightarrow t5])) 
-in (let TMP_233 \def (THead k t t0) in (let TMP_234 \def (THead k0 t3 t4) in 
-(let H8 \def (f_equal T T TMP_232 TMP_233 TMP_234 H5) in (let TMP_245 \def 
-(\lambda (H9: (eq T t t3)).(\lambda (_: (eq K k k0)).(let TMP_238 \def 
-(\lambda (t5: T).(let TMP_235 \def (THead k t t0) in (let TMP_236 \def (eq T 
-TMP_235 t5) in (let TMP_237 \def ((eq T (THead k t t0) t5) \to (\forall (P0: 
-Prop).P0)) in (or TMP_236 TMP_237))))) in (let H11 \def (eq_ind_r T t4 
-TMP_238 H2 t0 H8) in (let TMP_239 \def (\lambda (t5: T).((eq T t t5) \to 
-(\forall (P0: Prop).P0))) in (let H12 \def (eq_ind_r T t3 TMP_239 H4 t H9) in 
-(let TMP_243 \def (\lambda (t5: T).(let TMP_240 \def (THead k t t0) in (let 
-TMP_241 \def (eq T TMP_240 t5) in (let TMP_242 \def ((eq T (THead k t t0) t5) 
-\to (\forall (P0: Prop).P0)) in (or TMP_241 TMP_242))))) in (let H13 \def 
-(eq_ind_r T t3 TMP_243 H1 t H9) in (let TMP_244 \def (refl_equal T t) in (H12 
-TMP_244 P)))))))))) in (let TMP_246 \def (TMP_245 H7) in (TMP_246 
-H6))))))))))))))))) in (or_intror TMP_224 TMP_225 TMP_247))))))) in (or_ind 
-TMP_136 TMP_137 TMP_142 TMP_221 TMP_248 H3))))))))))))))))) in (T_ind TMP_117 
-TMP_126 TMP_135 TMP_249 t2))))))))))) in (T_ind TMP_3 TMP_58 TMP_113 TMP_250 
-t1))))).
+\Rightarrow k | (THead k1 _ _) \Rightarrow k1])) (THead k t t0) (THead k0 t3 
+t4) H5) in ((let H7 \def (f_equal T T (\lambda (e: T).(match e with [(TSort 
+_) \Rightarrow t | (TLRef _) \Rightarrow t | (THead _ t5 _) \Rightarrow t5])) 
+(THead k t t0) (THead k0 t3 t4) H5) in ((let H8 \def (f_equal T T (\lambda 
+(e: T).(match e with [(TSort _) \Rightarrow t0 | (TLRef _) \Rightarrow t0 | 
+(THead _ _ t5) \Rightarrow t5])) (THead k t t0) (THead k0 t3 t4) H5) in 
+(\lambda (H9: (eq T t t3)).(\lambda (_: (eq K k k0)).(let H11 \def (eq_ind_r 
+T t4 (\lambda (t5: T).(or (eq T (THead k t t0) t5) ((eq T (THead k t t0) t5) 
+\to (\forall (P0: Prop).P0)))) H2 t0 H8) in (let H12 \def (eq_ind_r T t3 
+(\lambda (t5: T).((eq T t t5) \to (\forall (P0: Prop).P0))) H4 t H9) in (let 
+H13 \def (eq_ind_r T t3 (\lambda (t5: T).(or (eq T (THead k t t0) t5) ((eq T 
+(THead k t t0) t5) \to (\forall (P0: Prop).P0)))) H1 t H9) in (H12 
+(refl_equal T t) P))))))) H7)) H6)))))) H3)))))))) t2))))))) t1).
 
 theorem binder_dec:
  \forall (t: T).(or (ex_3 B T T (\lambda (b: B).(\lambda (w: T).(\lambda (u: 
 T).(eq T t (THead (Bind b) w u)))))) (\forall (b: B).(\forall (w: T).(\forall 
 (u: T).((eq T t (THead (Bind b) w u)) \to (\forall (P: Prop).P))))))
 \def
- \lambda (t: T).(let TMP_6 \def (\lambda (t0: T).(let TMP_3 \def (\lambda (b: 
-B).(\lambda (w: T).(\lambda (u: T).(let TMP_1 \def (Bind b) in (let TMP_2 
-\def (THead TMP_1 w u) in (eq T t0 TMP_2)))))) in (let TMP_4 \def (ex_3 B T T 
-TMP_3) in (let TMP_5 \def (\forall (b: B).(\forall (w: T).(\forall (u: 
-T).((eq T t0 (THead (Bind b) w u)) \to (\forall (P: Prop).P))))) in (or TMP_4 
-TMP_5))))) in (let TMP_18 \def (\lambda (n: nat).(let TMP_10 \def (\lambda 
-(b: B).(\lambda (w: T).(\lambda (u: T).(let TMP_7 \def (TSort n) in (let 
-TMP_8 \def (Bind b) in (let TMP_9 \def (THead TMP_8 w u) in (eq T TMP_7 
-TMP_9))))))) in (let TMP_11 \def (ex_3 B T T TMP_10) in (let TMP_12 \def 
-(\forall (b: B).(\forall (w: T).(\forall (u: T).((eq T (TSort n) (THead (Bind 
-b) w u)) \to (\forall (P: Prop).P))))) in (let TMP_17 \def (\lambda (b: 
-B).(\lambda (w: T).(\lambda (u: T).(\lambda (H: (eq T (TSort n) (THead (Bind 
-b) w u))).(\lambda (P: Prop).(let TMP_13 \def (TSort n) in (let TMP_14 \def 
-(\lambda (ee: T).(match ee with [(TSort _) \Rightarrow True | (TLRef _) 
-\Rightarrow False | (THead _ _ _) \Rightarrow False])) in (let TMP_15 \def 
-(Bind b) in (let TMP_16 \def (THead TMP_15 w u) in (let H0 \def (eq_ind T 
-TMP_13 TMP_14 I TMP_16 H) in (False_ind P H0))))))))))) in (or_intror TMP_11 
-TMP_12 TMP_17)))))) in (let TMP_30 \def (\lambda (n: nat).(let TMP_22 \def 
-(\lambda (b: B).(\lambda (w: T).(\lambda (u: T).(let TMP_19 \def (TLRef n) in 
-(let TMP_20 \def (Bind b) in (let TMP_21 \def (THead TMP_20 w u) in (eq T 
-TMP_19 TMP_21))))))) in (let TMP_23 \def (ex_3 B T T TMP_22) in (let TMP_24 
-\def (\forall (b: B).(\forall (w: T).(\forall (u: T).((eq T (TLRef n) (THead 
-(Bind b) w u)) \to (\forall (P: Prop).P))))) in (let TMP_29 \def (\lambda (b: 
-B).(\lambda (w: T).(\lambda (u: T).(\lambda (H: (eq T (TLRef n) (THead (Bind 
-b) w u))).(\lambda (P: Prop).(let TMP_25 \def (TLRef n) in (let TMP_26 \def 
-(\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) 
-\Rightarrow True | (THead _ _ _) \Rightarrow False])) in (let TMP_27 \def 
-(Bind b) in (let TMP_28 \def (THead TMP_27 w u) in (let H0 \def (eq_ind T 
-TMP_25 TMP_26 I TMP_28 H) in (False_ind P H0))))))))))) in (or_intror TMP_23 
-TMP_24 TMP_29)))))) in (let TMP_69 \def (\lambda (k: K).(let TMP_37 \def 
-(\lambda (k0: K).(\forall (t0: T).((or (ex_3 B T T (\lambda (b: B).(\lambda 
-(w: T).(\lambda (u: T).(eq T t0 (THead (Bind b) w u)))))) (\forall (b: 
-B).(\forall (w: T).(\forall (u: T).((eq T t0 (THead (Bind b) w u)) \to 
-(\forall (P: Prop).P)))))) \to (\forall (t1: T).((or (ex_3 B T T (\lambda (b: 
-B).(\lambda (w: T).(\lambda (u: T).(eq T t1 (THead (Bind b) w u)))))) 
-(\forall (b: B).(\forall (w: T).(\forall (u: T).((eq T t1 (THead (Bind b) w 
-u)) \to (\forall (P: Prop).P)))))) \to (let TMP_34 \def (\lambda (b: 
-B).(\lambda (w: T).(\lambda (u: T).(let TMP_31 \def (THead k0 t0 t1) in (let 
-TMP_32 \def (Bind b) in (let TMP_33 \def (THead TMP_32 w u) in (eq T TMP_31 
-TMP_33))))))) in (let TMP_35 \def (ex_3 B T T TMP_34) in (let TMP_36 \def 
-(\forall (b: B).(\forall (w: T).(\forall (u: T).((eq T (THead k0 t0 t1) 
-(THead (Bind b) w u)) \to (\forall (P: Prop).P))))) in (or TMP_35 
-TMP_36))))))))) in (let TMP_54 \def (\lambda (b: B).(\lambda (t0: T).(\lambda 
-(_: (or (ex_3 B T T (\lambda (b0: B).(\lambda (w: T).(\lambda (u: T).(eq T t0 
+ \lambda (t: T).(T_ind (\lambda (t0: T).(or (ex_3 B T T (\lambda (b: 
+B).(\lambda (w: T).(\lambda (u: T).(eq T t0 (THead (Bind b) w u)))))) 
+(\forall (b: B).(\forall (w: T).(\forall (u: T).((eq T t0 (THead (Bind b) w 
+u)) \to (\forall (P: Prop).P))))))) (\lambda (n: nat).(or_intror (ex_3 B T T 
+(\lambda (b: B).(\lambda (w: T).(\lambda (u: T).(eq T (TSort n) (THead (Bind 
+b) w u)))))) (\forall (b: B).(\forall (w: T).(\forall (u: T).((eq T (TSort n) 
+(THead (Bind b) w u)) \to (\forall (P: Prop).P))))) (\lambda (b: B).(\lambda 
+(w: T).(\lambda (u: T).(\lambda (H: (eq T (TSort n) (THead (Bind b) w 
+u))).(\lambda (P: Prop).(let H0 \def (eq_ind T (TSort n) (\lambda (ee: 
+T).(match ee with [(TSort _) \Rightarrow True | (TLRef _) \Rightarrow False | 
+(THead _ _ _) \Rightarrow False])) I (THead (Bind b) w u) H) in (False_ind P 
+H0))))))))) (\lambda (n: nat).(or_intror (ex_3 B T T (\lambda (b: B).(\lambda 
+(w: T).(\lambda (u: T).(eq T (TLRef n) (THead (Bind b) w u)))))) (\forall (b: 
+B).(\forall (w: T).(\forall (u: T).((eq T (TLRef n) (THead (Bind b) w u)) \to 
+(\forall (P: Prop).P))))) (\lambda (b: B).(\lambda (w: T).(\lambda (u: 
+T).(\lambda (H: (eq T (TLRef n) (THead (Bind b) w u))).(\lambda (P: 
+Prop).(let H0 \def (eq_ind T (TLRef n) (\lambda (ee: T).(match ee with 
+[(TSort _) \Rightarrow False | (TLRef _) \Rightarrow True | (THead _ _ _) 
+\Rightarrow False])) I (THead (Bind b) w u) H) in (False_ind P H0))))))))) 
+(\lambda (k: K).(K_ind (\lambda (k0: K).(\forall (t0: T).((or (ex_3 B T T 
+(\lambda (b: B).(\lambda (w: T).(\lambda (u: T).(eq T t0 (THead (Bind b) w 
+u)))))) (\forall (b: B).(\forall (w: T).(\forall (u: T).((eq T t0 (THead 
+(Bind b) w u)) \to (\forall (P: Prop).P)))))) \to (\forall (t1: T).((or (ex_3 
+B T T (\lambda (b: B).(\lambda (w: T).(\lambda (u: T).(eq T t1 (THead (Bind 
+b) w u)))))) (\forall (b: B).(\forall (w: T).(\forall (u: T).((eq T t1 (THead 
+(Bind b) w u)) \to (\forall (P: Prop).P)))))) \to (or (ex_3 B T T (\lambda 
+(b: B).(\lambda (w: T).(\lambda (u: T).(eq T (THead k0 t0 t1) (THead (Bind b) 
+w u)))))) (\forall (b: B).(\forall (w: T).(\forall (u: T).((eq T (THead k0 t0 
+t1) (THead (Bind b) w u)) \to (\forall (P: Prop).P))))))))))) (\lambda (b: 
+B).(\lambda (t0: T).(\lambda (_: (or (ex_3 B T T (\lambda (b0: B).(\lambda 
+(w: T).(\lambda (u: T).(eq T t0 (THead (Bind b0) w u)))))) (\forall (b0: 
+B).(\forall (w: T).(\forall (u: T).((eq T t0 (THead (Bind b0) w u)) \to 
+(\forall (P: Prop).P))))))).(\lambda (t1: T).(\lambda (_: (or (ex_3 B T T 
+(\lambda (b0: B).(\lambda (w: T).(\lambda (u: T).(eq T t1 (THead (Bind b0) w 
+u)))))) (\forall (b0: B).(\forall (w: T).(\forall (u: T).((eq T t1 (THead 
+(Bind b0) w u)) \to (\forall (P: Prop).P))))))).(or_introl (ex_3 B T T 
+(\lambda (b0: B).(\lambda (w: T).(\lambda (u: T).(eq T (THead (Bind b) t0 t1) 
 (THead (Bind b0) w u)))))) (\forall (b0: B).(\forall (w: T).(\forall (u: 
-T).((eq T t0 (THead (Bind b0) w u)) \to (\forall (P: Prop).P))))))).(\lambda 
-(t1: T).(\lambda (_: (or (ex_3 B T T (\lambda (b0: B).(\lambda (w: 
-T).(\lambda (u: T).(eq T t1 (THead (Bind b0) w u)))))) (\forall (b0: 
-B).(\forall (w: T).(\forall (u: T).((eq T t1 (THead (Bind b0) w u)) \to 
-(\forall (P: Prop).P))))))).(let TMP_42 \def (\lambda (b0: B).(\lambda (w: 
-T).(\lambda (u: T).(let TMP_38 \def (Bind b) in (let TMP_39 \def (THead 
-TMP_38 t0 t1) in (let TMP_40 \def (Bind b0) in (let TMP_41 \def (THead TMP_40 
-w u) in (eq T TMP_39 TMP_41)))))))) in (let TMP_43 \def (ex_3 B T T TMP_42) 
-in (let TMP_44 \def (\forall (b0: B).(\forall (w: T).(\forall (u: T).((eq T 
-(THead (Bind b) t0 t1) (THead (Bind b0) w u)) \to (\forall (P: Prop).P))))) 
-in (let TMP_49 \def (\lambda (b0: B).(\lambda (w: T).(\lambda (u: T).(let 
-TMP_45 \def (Bind b) in (let TMP_46 \def (THead TMP_45 t0 t1) in (let TMP_47 
-\def (Bind b0) in (let TMP_48 \def (THead TMP_47 w u) in (eq T TMP_46 
-TMP_48)))))))) in (let TMP_50 \def (Bind b) in (let TMP_51 \def (THead TMP_50 
-t0 t1) in (let TMP_52 \def (refl_equal T TMP_51) in (let TMP_53 \def 
-(ex_3_intro B T T TMP_49 b t0 t1 TMP_52) in (or_introl TMP_43 TMP_44 
-TMP_53)))))))))))))) in (let TMP_68 \def (\lambda (f: F).(\lambda (t0: 
-T).(\lambda (_: (or (ex_3 B T T (\lambda (b: B).(\lambda (w: T).(\lambda (u: 
-T).(eq T t0 (THead (Bind b) w u)))))) (\forall (b: B).(\forall (w: 
-T).(\forall (u: T).((eq T t0 (THead (Bind b) w u)) \to (\forall (P: 
-Prop).P))))))).(\lambda (t1: T).(\lambda (_: (or (ex_3 B T T (\lambda (b: 
-B).(\lambda (w: T).(\lambda (u: T).(eq T t1 (THead (Bind b) w u)))))) 
-(\forall (b: B).(\forall (w: T).(\forall (u: T).((eq T t1 (THead (Bind b) w 
-u)) \to (\forall (P: Prop).P))))))).(let TMP_59 \def (\lambda (b: B).(\lambda 
-(w: T).(\lambda (u: T).(let TMP_55 \def (Flat f) in (let TMP_56 \def (THead 
-TMP_55 t0 t1) in (let TMP_57 \def (Bind b) in (let TMP_58 \def (THead TMP_57 
-w u) in (eq T TMP_56 TMP_58)))))))) in (let TMP_60 \def (ex_3 B T T TMP_59) 
-in (let TMP_61 \def (\forall (b: B).(\forall (w: T).(\forall (u: T).((eq T 
-(THead (Flat f) t0 t1) (THead (Bind b) w u)) \to (\forall (P: Prop).P))))) in 
-(let TMP_67 \def (\lambda (b: B).(\lambda (w: T).(\lambda (u: T).(\lambda 
-(H1: (eq T (THead (Flat f) t0 t1) (THead (Bind b) w u))).(\lambda (P: 
-Prop).(let TMP_62 \def (Flat f) in (let TMP_63 \def (THead TMP_62 t0 t1) in 
-(let TMP_64 \def (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False 
-| (TLRef _) \Rightarrow False | (THead k0 _ _) \Rightarrow (match k0 with 
-[(Bind _) \Rightarrow False | (Flat _) \Rightarrow True])])) in (let TMP_65 
-\def (Bind b) in (let TMP_66 \def (THead TMP_65 w u) in (let H2 \def (eq_ind 
-T TMP_63 TMP_64 I TMP_66 H1) in (False_ind P H2)))))))))))) in (or_intror 
-TMP_60 TMP_61 TMP_67)))))))))) in (K_ind TMP_37 TMP_54 TMP_68 k))))) in 
-(T_ind TMP_6 TMP_18 TMP_30 TMP_69 t))))).
+T).((eq T (THead (Bind b) t0 t1) (THead (Bind b0) w u)) \to (\forall (P: 
+Prop).P))))) (ex_3_intro B T T (\lambda (b0: B).(\lambda (w: T).(\lambda (u: 
+T).(eq T (THead (Bind b) t0 t1) (THead (Bind b0) w u))))) b t0 t1 (refl_equal 
+T (THead (Bind b) t0 t1))))))))) (\lambda (f: F).(\lambda (t0: T).(\lambda 
+(_: (or (ex_3 B T T (\lambda (b: B).(\lambda (w: T).(\lambda (u: T).(eq T t0 
+(THead (Bind b) w u)))))) (\forall (b: B).(\forall (w: T).(\forall (u: 
+T).((eq T t0 (THead (Bind b) w u)) \to (\forall (P: Prop).P))))))).(\lambda 
+(t1: T).(\lambda (_: (or (ex_3 B T T (\lambda (b: B).(\lambda (w: T).(\lambda 
+(u: T).(eq T t1 (THead (Bind b) w u)))))) (\forall (b: B).(\forall (w: 
+T).(\forall (u: T).((eq T t1 (THead (Bind b) w u)) \to (\forall (P: 
+Prop).P))))))).(or_intror (ex_3 B T T (\lambda (b: B).(\lambda (w: 
+T).(\lambda (u: T).(eq T (THead (Flat f) t0 t1) (THead (Bind b) w u)))))) 
+(\forall (b: B).(\forall (w: T).(\forall (u: T).((eq T (THead (Flat f) t0 t1) 
+(THead (Bind b) w u)) \to (\forall (P: Prop).P))))) (\lambda (b: B).(\lambda 
+(w: T).(\lambda (u: T).(\lambda (H1: (eq T (THead (Flat f) t0 t1) (THead 
+(Bind b) w u))).(\lambda (P: Prop).(let H2 \def (eq_ind T (THead (Flat f) t0 
+t1) (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) 
+\Rightarrow False | (THead k0 _ _) \Rightarrow (match k0 with [(Bind _) 
+\Rightarrow False | (Flat _) \Rightarrow True])])) I (THead (Bind b) w u) H1) 
+in (False_ind P H2))))))))))))) k)) t).
 
 theorem abst_dec:
  \forall (u: T).(\forall (v: T).(or (ex T (\lambda (t: T).(eq T u (THead 
 (Bind Abst) v t)))) (\forall (t: T).((eq T u (THead (Bind Abst) v t)) \to 
 (\forall (P: Prop).P)))))
 \def
- \lambda (u: T).(let TMP_6 \def (\lambda (t: T).(\forall (v: T).(let TMP_3 
-\def (\lambda (t0: T).(let TMP_1 \def (Bind Abst) in (let TMP_2 \def (THead 
-TMP_1 v t0) in (eq T t TMP_2)))) in (let TMP_4 \def (ex T TMP_3) in (let 
-TMP_5 \def (\forall (t0: T).((eq T t (THead (Bind Abst) v t0)) \to (\forall 
-(P: Prop).P))) in (or TMP_4 TMP_5)))))) in (let TMP_18 \def (\lambda (n: 
-nat).(\lambda (v: T).(let TMP_10 \def (\lambda (t: T).(let TMP_7 \def (TSort 
-n) in (let TMP_8 \def (Bind Abst) in (let TMP_9 \def (THead TMP_8 v t) in (eq 
-T TMP_7 TMP_9))))) in (let TMP_11 \def (ex T TMP_10) in (let TMP_12 \def 
-(\forall (t: T).((eq T (TSort n) (THead (Bind Abst) v t)) \to (\forall (P: 
-Prop).P))) in (let TMP_17 \def (\lambda (t: T).(\lambda (H: (eq T (TSort n) 
-(THead (Bind Abst) v t))).(\lambda (P: Prop).(let TMP_13 \def (TSort n) in 
-(let TMP_14 \def (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow True 
-| (TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow False])) in (let 
-TMP_15 \def (Bind Abst) in (let TMP_16 \def (THead TMP_15 v t) in (let H0 
-\def (eq_ind T TMP_13 TMP_14 I TMP_16 H) in (False_ind P H0))))))))) in 
-(or_intror TMP_11 TMP_12 TMP_17))))))) in (let TMP_30 \def (\lambda (n: 
-nat).(\lambda (v: T).(let TMP_22 \def (\lambda (t: T).(let TMP_19 \def (TLRef 
-n) in (let TMP_20 \def (Bind Abst) in (let TMP_21 \def (THead TMP_20 v t) in 
-(eq T TMP_19 TMP_21))))) in (let TMP_23 \def (ex T TMP_22) in (let TMP_24 
-\def (\forall (t: T).((eq T (TLRef n) (THead (Bind Abst) v t)) \to (\forall 
-(P: Prop).P))) in (let TMP_29 \def (\lambda (t: T).(\lambda (H: (eq T (TLRef 
-n) (THead (Bind Abst) v t))).(\lambda (P: Prop).(let TMP_25 \def (TLRef n) in 
-(let TMP_26 \def (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False 
-| (TLRef _) \Rightarrow True | (THead _ _ _) \Rightarrow False])) in (let 
-TMP_27 \def (Bind Abst) in (let TMP_28 \def (THead TMP_27 v t) in (let H0 
-\def (eq_ind T TMP_25 TMP_26 I TMP_28 H) in (False_ind P H0))))))))) in 
-(or_intror TMP_23 TMP_24 TMP_29))))))) in (let TMP_130 \def (\lambda (k: 
-K).(\lambda (t: T).(\lambda (_: ((\forall (v: T).(or (ex T (\lambda (t0: 
-T).(eq T t (THead (Bind Abst) v t0)))) (\forall (t0: T).((eq T t (THead (Bind 
-Abst) v t0)) \to (\forall (P: Prop).P))))))).(\lambda (t0: T).(\lambda (_: 
-((\forall (v: T).(or (ex T (\lambda (t1: T).(eq T t0 (THead (Bind Abst) v 
-t1)))) (\forall (t1: T).((eq T t0 (THead (Bind Abst) v t1)) \to (\forall (P: 
-Prop).P))))))).(\lambda (v: T).(let TMP_31 \def (Bind Abst) in (let H_x \def 
-(terms_props__kind_dec k TMP_31) in (let H1 \def H_x in (let TMP_32 \def 
-(Bind Abst) in (let TMP_33 \def (eq K k TMP_32) in (let TMP_34 \def ((eq K k 
-(Bind Abst)) \to (\forall (P: Prop).P)) in (let TMP_38 \def (\lambda (t1: 
-T).(let TMP_35 \def (THead k t t0) in (let TMP_36 \def (Bind Abst) in (let 
-TMP_37 \def (THead TMP_36 v t1) in (eq T TMP_35 TMP_37))))) in (let TMP_39 
-\def (ex T TMP_38) in (let TMP_40 \def (\forall (t1: T).((eq T (THead k t t0) 
-(THead (Bind Abst) v t1)) \to (\forall (P: Prop).P))) in (let TMP_41 \def (or 
-TMP_39 TMP_40) in (let TMP_107 \def (\lambda (H2: (eq K k (Bind Abst))).(let 
-TMP_42 \def (Bind Abst) in (let TMP_49 \def (\lambda (k0: K).(let TMP_46 \def 
-(\lambda (t1: T).(let TMP_43 \def (THead k0 t t0) in (let TMP_44 \def (Bind 
-Abst) in (let TMP_45 \def (THead TMP_44 v t1) in (eq T TMP_43 TMP_45))))) in 
-(let TMP_47 \def (ex T TMP_46) in (let TMP_48 \def (\forall (t1: T).((eq T 
-(THead k0 t t0) (THead (Bind Abst) v t1)) \to (\forall (P: Prop).P))) in (or 
-TMP_47 TMP_48))))) in (let H_x0 \def (term_dec t v) in (let H3 \def H_x0 in 
-(let TMP_50 \def (eq T t v) in (let TMP_51 \def ((eq T t v) \to (\forall (P: 
-Prop).P)) in (let TMP_56 \def (\lambda (t1: T).(let TMP_52 \def (Bind Abst) 
-in (let TMP_53 \def (THead TMP_52 t t0) in (let TMP_54 \def (Bind Abst) in 
-(let TMP_55 \def (THead TMP_54 v t1) in (eq T TMP_53 TMP_55)))))) in (let 
-TMP_57 \def (ex T TMP_56) in (let TMP_58 \def (\forall (t1: T).((eq T (THead 
-(Bind Abst) t t0) (THead (Bind Abst) v t1)) \to (\forall (P: Prop).P))) in 
-(let TMP_59 \def (or TMP_57 TMP_58) in (let TMP_85 \def (\lambda (H4: (eq T t 
-v)).(let TMP_67 \def (\lambda (t1: T).(let TMP_64 \def (\lambda (t2: T).(let 
-TMP_60 \def (Bind Abst) in (let TMP_61 \def (THead TMP_60 t t0) in (let 
-TMP_62 \def (Bind Abst) in (let TMP_63 \def (THead TMP_62 t1 t2) in (eq T 
-TMP_61 TMP_63)))))) in (let TMP_65 \def (ex T TMP_64) in (let TMP_66 \def 
-(\forall (t2: T).((eq T (THead (Bind Abst) t t0) (THead (Bind Abst) t1 t2)) 
-\to (\forall (P: Prop).P))) in (or TMP_65 TMP_66))))) in (let TMP_72 \def 
-(\lambda (t1: T).(let TMP_68 \def (Bind Abst) in (let TMP_69 \def (THead 
-TMP_68 t t0) in (let TMP_70 \def (Bind Abst) in (let TMP_71 \def (THead 
-TMP_70 t t1) in (eq T TMP_69 TMP_71)))))) in (let TMP_73 \def (ex T TMP_72) 
-in (let TMP_74 \def (\forall (t1: T).((eq T (THead (Bind Abst) t t0) (THead 
-(Bind Abst) t t1)) \to (\forall (P: Prop).P))) in (let TMP_79 \def (\lambda 
-(t1: T).(let TMP_75 \def (Bind Abst) in (let TMP_76 \def (THead TMP_75 t t0) 
-in (let TMP_77 \def (Bind Abst) in (let TMP_78 \def (THead TMP_77 t t1) in 
-(eq T TMP_76 TMP_78)))))) in (let TMP_80 \def (Bind Abst) in (let TMP_81 \def 
-(THead TMP_80 t t0) in (let TMP_82 \def (refl_equal T TMP_81) in (let TMP_83 
-\def (ex_intro T TMP_79 t0 TMP_82) in (let TMP_84 \def (or_introl TMP_73 
-TMP_74 TMP_83) in (eq_ind T t TMP_67 TMP_84 v H4)))))))))))) in (let TMP_105 
-\def (\lambda (H4: (((eq T t v) \to (\forall (P: Prop).P)))).(let TMP_90 \def 
-(\lambda (t1: T).(let TMP_86 \def (Bind Abst) in (let TMP_87 \def (THead 
-TMP_86 t t0) in (let TMP_88 \def (Bind Abst) in (let TMP_89 \def (THead 
-TMP_88 v t1) in (eq T TMP_87 TMP_89)))))) in (let TMP_91 \def (ex T TMP_90) 
-in (let TMP_92 \def (\forall (t1: T).((eq T (THead (Bind Abst) t t0) (THead 
-(Bind Abst) v t1)) \to (\forall (P: Prop).P))) in (let TMP_104 \def (\lambda 
-(t1: T).(\lambda (H5: (eq T (THead (Bind Abst) t t0) (THead (Bind Abst) v 
-t1))).(\lambda (P: Prop).(let TMP_93 \def (\lambda (e: T).(match e with 
-[(TSort _) \Rightarrow t | (TLRef _) \Rightarrow t | (THead _ t2 _) 
-\Rightarrow t2])) in (let TMP_94 \def (Bind Abst) in (let TMP_95 \def (THead 
-TMP_94 t t0) in (let TMP_96 \def (Bind Abst) in (let TMP_97 \def (THead 
-TMP_96 v t1) in (let H6 \def (f_equal T T TMP_93 TMP_95 TMP_97 H5) in (let 
-TMP_98 \def (\lambda (e: T).(match e with [(TSort _) \Rightarrow t0 | (TLRef 
-_) \Rightarrow t0 | (THead _ _ t2) \Rightarrow t2])) in (let TMP_99 \def 
-(Bind Abst) in (let TMP_100 \def (THead TMP_99 t t0) in (let TMP_101 \def 
-(Bind Abst) in (let TMP_102 \def (THead TMP_101 v t1) in (let H7 \def 
-(f_equal T T TMP_98 TMP_100 TMP_102 H5) in (let TMP_103 \def (\lambda (H8: 
-(eq T t v)).(H4 H8 P)) in (TMP_103 H6))))))))))))))))) in (or_intror TMP_91 
-TMP_92 TMP_104)))))) in (let TMP_106 \def (or_ind TMP_50 TMP_51 TMP_59 TMP_85 
-TMP_105 H3) in (eq_ind_r K TMP_42 TMP_49 TMP_106 k H2))))))))))))))) in (let 
-TMP_129 \def (\lambda (H2: (((eq K k (Bind Abst)) \to (\forall (P: 
-Prop).P)))).(let TMP_111 \def (\lambda (t1: T).(let TMP_108 \def (THead k t 
-t0) in (let TMP_109 \def (Bind Abst) in (let TMP_110 \def (THead TMP_109 v 
-t1) in (eq T TMP_108 TMP_110))))) in (let TMP_112 \def (ex T TMP_111) in (let 
-TMP_113 \def (\forall (t1: T).((eq T (THead k t t0) (THead (Bind Abst) v t1)) 
-\to (\forall (P: Prop).P))) in (let TMP_128 \def (\lambda (t1: T).(\lambda 
-(H3: (eq T (THead k t t0) (THead (Bind Abst) v t1))).(\lambda (P: Prop).(let 
-TMP_114 \def (\lambda (e: T).(match e with [(TSort _) \Rightarrow k | (TLRef 
-_) \Rightarrow k | (THead k0 _ _) \Rightarrow k0])) in (let TMP_115 \def 
-(THead k t t0) in (let TMP_116 \def (Bind Abst) in (let TMP_117 \def (THead 
-TMP_116 v t1) in (let H4 \def (f_equal T K TMP_114 TMP_115 TMP_117 H3) in 
-(let TMP_118 \def (\lambda (e: T).(match e with [(TSort _) \Rightarrow t | 
-(TLRef _) \Rightarrow t | (THead _ t2 _) \Rightarrow t2])) in (let TMP_119 
-\def (THead k t t0) in (let TMP_120 \def (Bind Abst) in (let TMP_121 \def 
-(THead TMP_120 v t1) in (let H5 \def (f_equal T T TMP_118 TMP_119 TMP_121 H3) 
-in (let TMP_122 \def (\lambda (e: T).(match e with [(TSort _) \Rightarrow t0 
-| (TLRef _) \Rightarrow t0 | (THead _ _ t2) \Rightarrow t2])) in (let TMP_123 
-\def (THead k t t0) in (let TMP_124 \def (Bind Abst) in (let TMP_125 \def 
-(THead TMP_124 v t1) in (let H6 \def (f_equal T T TMP_122 TMP_123 TMP_125 H3) 
-in (let TMP_126 \def (\lambda (_: (eq T t v)).(\lambda (H8: (eq K k (Bind 
-Abst))).(H2 H8 P))) in (let TMP_127 \def (TMP_126 H5) in (TMP_127 
-H4))))))))))))))))))))) in (or_intror TMP_112 TMP_113 TMP_128)))))) in 
-(or_ind TMP_33 TMP_34 TMP_41 TMP_107 TMP_129 H1))))))))))))))))))) in (T_ind 
-TMP_6 TMP_18 TMP_30 TMP_130 u))))).
+ \lambda (u: T).(T_ind (\lambda (t: T).(\forall (v: T).(or (ex T (\lambda 
+(t0: T).(eq T t (THead (Bind Abst) v t0)))) (\forall (t0: T).((eq T t (THead 
+(Bind Abst) v t0)) \to (\forall (P: Prop).P)))))) (\lambda (n: nat).(\lambda 
+(v: T).(or_intror (ex T (\lambda (t: T).(eq T (TSort n) (THead (Bind Abst) v 
+t)))) (\forall (t: T).((eq T (TSort n) (THead (Bind Abst) v t)) \to (\forall 
+(P: Prop).P))) (\lambda (t: T).(\lambda (H: (eq T (TSort n) (THead (Bind 
+Abst) v t))).(\lambda (P: Prop).(let H0 \def (eq_ind T (TSort n) (\lambda 
+(ee: T).(match ee with [(TSort _) \Rightarrow True | (TLRef _) \Rightarrow 
+False | (THead _ _ _) \Rightarrow False])) I (THead (Bind Abst) v t) H) in 
+(False_ind P H0)))))))) (\lambda (n: nat).(\lambda (v: T).(or_intror (ex T 
+(\lambda (t: T).(eq T (TLRef n) (THead (Bind Abst) v t)))) (\forall (t: 
+T).((eq T (TLRef n) (THead (Bind Abst) v t)) \to (\forall (P: Prop).P))) 
+(\lambda (t: T).(\lambda (H: (eq T (TLRef n) (THead (Bind Abst) v 
+t))).(\lambda (P: Prop).(let H0 \def (eq_ind T (TLRef n) (\lambda (ee: 
+T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow True | 
+(THead _ _ _) \Rightarrow False])) I (THead (Bind Abst) v t) H) in (False_ind 
+P H0)))))))) (\lambda (k: K).(\lambda (t: T).(\lambda (_: ((\forall (v: 
+T).(or (ex T (\lambda (t0: T).(eq T t (THead (Bind Abst) v t0)))) (\forall 
+(t0: T).((eq T t (THead (Bind Abst) v t0)) \to (\forall (P: 
+Prop).P))))))).(\lambda (t0: T).(\lambda (_: ((\forall (v: T).(or (ex T 
+(\lambda (t1: T).(eq T t0 (THead (Bind Abst) v t1)))) (\forall (t1: T).((eq T 
+t0 (THead (Bind Abst) v t1)) \to (\forall (P: Prop).P))))))).(\lambda (v: 
+T).(let H_x \def (terms_props__kind_dec k (Bind Abst)) in (let H1 \def H_x in 
+(or_ind (eq K k (Bind Abst)) ((eq K k (Bind Abst)) \to (\forall (P: Prop).P)) 
+(or (ex T (\lambda (t1: T).(eq T (THead k t t0) (THead (Bind Abst) v t1)))) 
+(\forall (t1: T).((eq T (THead k t t0) (THead (Bind Abst) v t1)) \to (\forall 
+(P: Prop).P)))) (\lambda (H2: (eq K k (Bind Abst))).(eq_ind_r K (Bind Abst) 
+(\lambda (k0: K).(or (ex T (\lambda (t1: T).(eq T (THead k0 t t0) (THead 
+(Bind Abst) v t1)))) (\forall (t1: T).((eq T (THead k0 t t0) (THead (Bind 
+Abst) v t1)) \to (\forall (P: Prop).P))))) (let H_x0 \def (term_dec t v) in 
+(let H3 \def H_x0 in (or_ind (eq T t v) ((eq T t v) \to (\forall (P: 
+Prop).P)) (or (ex T (\lambda (t1: T).(eq T (THead (Bind Abst) t t0) (THead 
+(Bind Abst) v t1)))) (\forall (t1: T).((eq T (THead (Bind Abst) t t0) (THead 
+(Bind Abst) v t1)) \to (\forall (P: Prop).P)))) (\lambda (H4: (eq T t 
+v)).(eq_ind T t (\lambda (t1: T).(or (ex T (\lambda (t2: T).(eq T (THead 
+(Bind Abst) t t0) (THead (Bind Abst) t1 t2)))) (\forall (t2: T).((eq T (THead 
+(Bind Abst) t t0) (THead (Bind Abst) t1 t2)) \to (\forall (P: Prop).P))))) 
+(or_introl (ex T (\lambda (t1: T).(eq T (THead (Bind Abst) t t0) (THead (Bind 
+Abst) t t1)))) (\forall (t1: T).((eq T (THead (Bind Abst) t t0) (THead (Bind 
+Abst) t t1)) \to (\forall (P: Prop).P))) (ex_intro T (\lambda (t1: T).(eq T 
+(THead (Bind Abst) t t0) (THead (Bind Abst) t t1))) t0 (refl_equal T (THead 
+(Bind Abst) t t0)))) v H4)) (\lambda (H4: (((eq T t v) \to (\forall (P: 
+Prop).P)))).(or_intror (ex T (\lambda (t1: T).(eq T (THead (Bind Abst) t t0) 
+(THead (Bind Abst) v t1)))) (\forall (t1: T).((eq T (THead (Bind Abst) t t0) 
+(THead (Bind Abst) v t1)) \to (\forall (P: Prop).P))) (\lambda (t1: 
+T).(\lambda (H5: (eq T (THead (Bind Abst) t t0) (THead (Bind Abst) v 
+t1))).(\lambda (P: Prop).(let H6 \def (f_equal T T (\lambda (e: T).(match e 
+with [(TSort _) \Rightarrow t | (TLRef _) \Rightarrow t | (THead _ t2 _) 
+\Rightarrow t2])) (THead (Bind Abst) t t0) (THead (Bind Abst) v t1) H5) in 
+((let H7 \def (f_equal T T (\lambda (e: T).(match e with [(TSort _) 
+\Rightarrow t0 | (TLRef _) \Rightarrow t0 | (THead _ _ t2) \Rightarrow t2])) 
+(THead (Bind Abst) t t0) (THead (Bind Abst) v t1) H5) in (\lambda (H8: (eq T 
+t v)).(H4 H8 P))) H6))))))) H3))) k H2)) (\lambda (H2: (((eq K k (Bind Abst)) 
+\to (\forall (P: Prop).P)))).(or_intror (ex T (\lambda (t1: T).(eq T (THead k 
+t t0) (THead (Bind Abst) v t1)))) (\forall (t1: T).((eq T (THead k t t0) 
+(THead (Bind Abst) v t1)) \to (\forall (P: Prop).P))) (\lambda (t1: 
+T).(\lambda (H3: (eq T (THead k t t0) (THead (Bind Abst) v t1))).(\lambda (P: 
+Prop).(let H4 \def (f_equal T K (\lambda (e: T).(match e with [(TSort _) 
+\Rightarrow k | (TLRef _) \Rightarrow k | (THead k0 _ _) \Rightarrow k0])) 
+(THead k t t0) (THead (Bind Abst) v t1) H3) in ((let H5 \def (f_equal T T 
+(\lambda (e: T).(match e with [(TSort _) \Rightarrow t | (TLRef _) 
+\Rightarrow t | (THead _ t2 _) \Rightarrow t2])) (THead k t t0) (THead (Bind 
+Abst) v t1) H3) in ((let H6 \def (f_equal T T (\lambda (e: T).(match e with 
+[(TSort _) \Rightarrow t0 | (TLRef _) \Rightarrow t0 | (THead _ _ t2) 
+\Rightarrow t2])) (THead k t t0) (THead (Bind Abst) v t1) H3) in (\lambda (_: 
+(eq T t v)).(\lambda (H8: (eq K k (Bind Abst))).(H2 H8 P)))) H5)) H4))))))) 
+H1))))))))) u).
 
index f200518bf66a1adafe40cefa8ff21a139dd6758f..aad94671ceea53d271acb2649333b4f92dd1cc89 100644 (file)
@@ -35,13 +35,11 @@ inductive T: Type[0] \def
 | THead: K \to (T \to (T \to T)).
 
 let rec tweight (t: T) on t: nat \def match t with [(TSort _) \Rightarrow (S 
-O) | (TLRef _) \Rightarrow (S O) | (THead _ u t0) \Rightarrow (let TMP_1 \def 
-(tweight u) in (let TMP_2 \def (tweight t0) in (let TMP_3 \def (plus TMP_1 
-TMP_2) in (S TMP_3))))].
+O) | (TLRef _) \Rightarrow (S O) | (THead _ u t0) \Rightarrow (S (plus 
+(tweight u) (tweight t0)))].
 
 definition tle:
  T \to (T \to Prop)
 \def
- \lambda (t1: T).(\lambda (t2: T).(let TMP_1 \def (tweight t1) in (let TMP_2 
-\def (tweight t2) in (le TMP_1 TMP_2)))).
+ \lambda (t1: T).(\lambda (t2: T).(le (tweight t1) (tweight t2))).
 
index f08b62d8c11b4f36a1753073e0338b406d216c37..500f4f7585af921bfd4ef6766cb467f9e3928e29 100644 (file)
@@ -20,8 +20,8 @@ let rec T_rect (P: (T \to Type[0])) (f: (\forall (n: nat).(P (TSort n))))
 (f0: (\forall (n: nat).(P (TLRef n)))) (f1: (\forall (k: K).(\forall (t: 
 T).((P t) \to (\forall (t0: T).((P t0) \to (P (THead k t t0)))))))) (t: T) on 
 t: P t \def match t with [(TSort n) \Rightarrow (f n) | (TLRef n) \Rightarrow 
-(f0 n) | (THead k t0 t1) \Rightarrow (let TMP_1 \def ((T_rect P f f0 f1) t0) 
-in (let TMP_2 \def ((T_rect P f f0 f1) t1) in (f1 k t0 TMP_1 t1 TMP_2)))].
+(f0 n) | (THead k t0 t1) \Rightarrow (f1 k t0 ((T_rect P f f0 f1) t0) t1 
+((T_rect P f f0 f1) t1))].
 
 theorem T_ind:
  \forall (P: ((T \to Prop))).(((\forall (n: nat).(P (TSort n)))) \to 
@@ -35,41 +35,30 @@ theorem thead_x_y_y:
  \forall (k: K).(\forall (v: T).(\forall (t: T).((eq T (THead k v t) t) \to 
 (\forall (P: Prop).P))))
 \def
- \lambda (k: K).(\lambda (v: T).(\lambda (t: T).(let TMP_1 \def (\lambda (t0: 
-T).((eq T (THead k v t0) t0) \to (\forall (P: Prop).P))) in (let TMP_6 \def 
-(\lambda (n: nat).(\lambda (H: (eq T (THead k v (TSort n)) (TSort 
-n))).(\lambda (P: Prop).(let TMP_2 \def (TSort n) in (let TMP_3 \def (THead k 
-v TMP_2) in (let TMP_4 \def (\lambda (ee: T).(match ee with [(TSort _) 
+ \lambda (k: K).(\lambda (v: T).(\lambda (t: T).(T_ind (\lambda (t0: T).((eq 
+T (THead k v t0) t0) \to (\forall (P: Prop).P))) (\lambda (n: nat).(\lambda 
+(H: (eq T (THead k v (TSort n)) (TSort n))).(\lambda (P: Prop).(let H0 \def 
+(eq_ind T (THead k v (TSort n)) (\lambda (ee: T).(match ee with [(TSort _) 
 \Rightarrow False | (TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow 
-True])) in (let TMP_5 \def (TSort n) in (let H0 \def (eq_ind T TMP_3 TMP_4 I 
-TMP_5 H) in (False_ind P H0))))))))) in (let TMP_11 \def (\lambda (n: 
-nat).(\lambda (H: (eq T (THead k v (TLRef n)) (TLRef n))).(\lambda (P: 
-Prop).(let TMP_7 \def (TLRef n) in (let TMP_8 \def (THead k v TMP_7) in (let 
-TMP_9 \def (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | 
-(TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow True])) in (let 
-TMP_10 \def (TLRef n) in (let H0 \def (eq_ind T TMP_8 TMP_9 I TMP_10 H) in 
-(False_ind P H0))))))))) in (let TMP_28 \def (\lambda (k0: K).(\lambda (t0: 
+True])) I (TSort n) H) in (False_ind P H0))))) (\lambda (n: nat).(\lambda (H: 
+(eq T (THead k v (TLRef n)) (TLRef n))).(\lambda (P: Prop).(let H0 \def 
+(eq_ind T (THead k v (TLRef n)) (\lambda (ee: T).(match ee with [(TSort _) 
+\Rightarrow False | (TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow 
+True])) I (TLRef n) H) in (False_ind P H0))))) (\lambda (k0: K).(\lambda (t0: 
 T).(\lambda (_: (((eq T (THead k v t0) t0) \to (\forall (P: 
 Prop).P)))).(\lambda (t1: T).(\lambda (H0: (((eq T (THead k v t1) t1) \to 
 (\forall (P: Prop).P)))).(\lambda (H1: (eq T (THead k v (THead k0 t0 t1)) 
-(THead k0 t0 t1))).(\lambda (P: Prop).(let TMP_12 \def (\lambda (e: T).(match 
-e with [(TSort _) \Rightarrow k | (TLRef _) \Rightarrow k | (THead k1 _ _) 
-\Rightarrow k1])) in (let TMP_13 \def (THead k0 t0 t1) in (let TMP_14 \def 
-(THead k v TMP_13) in (let TMP_15 \def (THead k0 t0 t1) in (let H2 \def 
-(f_equal T K TMP_12 TMP_14 TMP_15 H1) in (let TMP_16 \def (\lambda (e: 
-T).(match e with [(TSort _) \Rightarrow v | (TLRef _) \Rightarrow v | (THead 
-_ t2 _) \Rightarrow t2])) in (let TMP_17 \def (THead k0 t0 t1) in (let TMP_18 
-\def (THead k v TMP_17) in (let TMP_19 \def (THead k0 t0 t1) in (let H3 \def 
-(f_equal T T TMP_16 TMP_18 TMP_19 H1) in (let TMP_20 \def (\lambda (e: 
-T).(match e with [(TSort _) \Rightarrow (THead k0 t0 t1) | (TLRef _) 
-\Rightarrow (THead k0 t0 t1) | (THead _ _ t2) \Rightarrow t2])) in (let 
-TMP_21 \def (THead k0 t0 t1) in (let TMP_22 \def (THead k v TMP_21) in (let 
-TMP_23 \def (THead k0 t0 t1) in (let H4 \def (f_equal T T TMP_20 TMP_22 
-TMP_23 H1) in (let TMP_26 \def (\lambda (H5: (eq T v t0)).(\lambda (H6: (eq K 
-k k0)).(let TMP_24 \def (\lambda (t2: T).((eq T (THead k t2 t1) t1) \to 
-(\forall (P0: Prop).P0))) in (let H7 \def (eq_ind T v TMP_24 H0 t0 H5) in 
-(let TMP_25 \def (\lambda (k1: K).((eq T (THead k1 t0 t1) t1) \to (\forall 
-(P0: Prop).P0))) in (let H8 \def (eq_ind K k TMP_25 H7 k0 H6) in (H8 H4 
-P))))))) in (let TMP_27 \def (TMP_26 H3) in (TMP_27 
-H2))))))))))))))))))))))))) in (T_ind TMP_1 TMP_6 TMP_11 TMP_28 t))))))).
+(THead k0 t0 t1))).(\lambda (P: Prop).(let H2 \def (f_equal T K (\lambda (e: 
+T).(match e with [(TSort _) \Rightarrow k | (TLRef _) \Rightarrow k | (THead 
+k1 _ _) \Rightarrow k1])) (THead k v (THead k0 t0 t1)) (THead k0 t0 t1) H1) 
+in ((let H3 \def (f_equal T T (\lambda (e: T).(match e with [(TSort _) 
+\Rightarrow v | (TLRef _) \Rightarrow v | (THead _ t2 _) \Rightarrow t2])) 
+(THead k v (THead k0 t0 t1)) (THead k0 t0 t1) H1) in ((let H4 \def (f_equal T 
+T (\lambda (e: T).(match e with [(TSort _) \Rightarrow (THead k0 t0 t1) | 
+(TLRef _) \Rightarrow (THead k0 t0 t1) | (THead _ _ t2) \Rightarrow t2])) 
+(THead k v (THead k0 t0 t1)) (THead k0 t0 t1) H1) in (\lambda (H5: (eq T v 
+t0)).(\lambda (H6: (eq K k k0)).(let H7 \def (eq_ind T v (\lambda (t2: 
+T).((eq T (THead k t2 t1) t1) \to (\forall (P0: Prop).P0))) H0 t0 H5) in (let 
+H8 \def (eq_ind K k (\lambda (k1: K).((eq T (THead k1 t0 t1) t1) \to (\forall 
+(P0: Prop).P0))) H7 k0 H6) in (H8 H4 P)))))) H3)) H2))))))))) t))).
 
index 3b756e98d4bff5e1900e4e7e5e86e3c23b93026e..445f6fc52189b923f185d241d9456d63abb95add 100644 (file)
@@ -19,59 +19,46 @@ include "basic_1/T/fwd.ma".
 theorem not_abbr_abst:
  not (eq B Abbr Abst)
 \def
- \lambda (H: (eq B Abbr Abst)).(let TMP_1 \def (\lambda (ee: B).(match ee 
-with [Abbr \Rightarrow True | Abst \Rightarrow False | Void \Rightarrow 
-False])) in (let H0 \def (eq_ind B Abbr TMP_1 I Abst H) in (False_ind False 
-H0))).
+ \lambda (H: (eq B Abbr Abst)).(let H0 \def (eq_ind B Abbr (\lambda (ee: 
+B).(match ee with [Abbr \Rightarrow True | Abst \Rightarrow False | Void 
+\Rightarrow False])) I Abst H) in (False_ind False H0)).
 
 theorem not_void_abst:
  not (eq B Void Abst)
 \def
- \lambda (H: (eq B Void Abst)).(let TMP_1 \def (\lambda (ee: B).(match ee 
-with [Abbr \Rightarrow False | Abst \Rightarrow False | Void \Rightarrow 
-True])) in (let H0 \def (eq_ind B Void TMP_1 I Abst H) in (False_ind False 
-H0))).
+ \lambda (H: (eq B Void Abst)).(let H0 \def (eq_ind B Void (\lambda (ee: 
+B).(match ee with [Abbr \Rightarrow False | Abst \Rightarrow False | Void 
+\Rightarrow True])) I Abst H) in (False_ind False H0)).
 
 theorem not_abbr_void:
  not (eq B Abbr Void)
 \def
- \lambda (H: (eq B Abbr Void)).(let TMP_1 \def (\lambda (ee: B).(match ee 
-with [Abbr \Rightarrow True | Abst \Rightarrow False | Void \Rightarrow 
-False])) in (let H0 \def (eq_ind B Abbr TMP_1 I Void H) in (False_ind False 
-H0))).
+ \lambda (H: (eq B Abbr Void)).(let H0 \def (eq_ind B Abbr (\lambda (ee: 
+B).(match ee with [Abbr \Rightarrow True | Abst \Rightarrow False | Void 
+\Rightarrow False])) I Void H) in (False_ind False H0)).
 
 theorem not_abst_void:
  not (eq B Abst Void)
 \def
- \lambda (H: (eq B Abst Void)).(let TMP_1 \def (\lambda (ee: B).(match ee 
-with [Abbr \Rightarrow False | Abst \Rightarrow True | Void \Rightarrow 
-False])) in (let H0 \def (eq_ind B Abst TMP_1 I Void H) in (False_ind False 
-H0))).
+ \lambda (H: (eq B Abst Void)).(let H0 \def (eq_ind B Abst (\lambda (ee: 
+B).(match ee with [Abbr \Rightarrow False | Abst \Rightarrow True | Void 
+\Rightarrow False])) I Void H) in (False_ind False H0)).
 
 theorem tweight_lt:
  \forall (t: T).(lt O (tweight t))
 \def
- \lambda (t: T).(let TMP_2 \def (\lambda (t0: T).(let TMP_1 \def (tweight t0) 
-in (lt O TMP_1))) in (let TMP_4 \def (\lambda (_: nat).(let TMP_3 \def (S O) 
-in (le_n TMP_3))) in (let TMP_6 \def (\lambda (_: nat).(let TMP_5 \def (S O) 
-in (le_n TMP_5))) in (let TMP_15 \def (\lambda (_: K).(\lambda (t0: 
-T).(\lambda (H: (lt O (tweight t0))).(\lambda (t1: T).(\lambda (_: (lt O 
-(tweight t1))).(let TMP_7 \def (S O) in (let TMP_8 \def (tweight t0) in (let 
-TMP_9 \def (tweight t1) in (let TMP_10 \def (plus TMP_8 TMP_9) in (let TMP_11 
-\def (S O) in (let TMP_12 \def (tweight t0) in (let TMP_13 \def (tweight t1) 
-in (let TMP_14 \def (le_plus_trans TMP_11 TMP_12 TMP_13 H) in (le_S TMP_7 
-TMP_10 TMP_14)))))))))))))) in (T_ind TMP_2 TMP_4 TMP_6 TMP_15 t))))).
+ \lambda (t: T).(T_ind (\lambda (t0: T).(lt O (tweight t0))) (\lambda (_: 
+nat).(le_n (S O))) (\lambda (_: nat).(le_n (S O))) (\lambda (_: K).(\lambda 
+(t0: T).(\lambda (H: (lt O (tweight t0))).(\lambda (t1: T).(\lambda (_: (lt O 
+(tweight t1))).(le_S (S O) (plus (tweight t0) (tweight t1)) (le_plus_trans (S 
+O) (tweight t0) (tweight t1) H))))))) t).
 
 theorem tle_r:
  \forall (t: T).(tle t t)
 \def
- \lambda (t: T).(let TMP_3 \def (\lambda (t0: T).(let TMP_1 \def (tweight t0) 
-in (let TMP_2 \def (tweight t0) in (le TMP_1 TMP_2)))) in (let TMP_5 \def 
-(\lambda (_: nat).(let TMP_4 \def (S O) in (le_n TMP_4))) in (let TMP_7 \def 
-(\lambda (_: nat).(let TMP_6 \def (S O) in (le_n TMP_6))) in (let TMP_12 \def 
-(\lambda (_: K).(\lambda (t0: T).(\lambda (_: (le (tweight t0) (tweight 
-t0))).(\lambda (t1: T).(\lambda (_: (le (tweight t1) (tweight t1))).(let 
-TMP_8 \def (tweight t0) in (let TMP_9 \def (tweight t1) in (let TMP_10 \def 
-(plus TMP_8 TMP_9) in (let TMP_11 \def (S TMP_10) in (le_n TMP_11)))))))))) 
-in (T_ind TMP_3 TMP_5 TMP_7 TMP_12 t))))).
+ \lambda (t: T).(T_ind (\lambda (t0: T).(le (tweight t0) (tweight t0))) 
+(\lambda (_: nat).(le_n (S O))) (\lambda (_: nat).(le_n (S O))) (\lambda (_: 
+K).(\lambda (t0: T).(\lambda (_: (le (tweight t0) (tweight t0))).(\lambda 
+(t1: T).(\lambda (_: (le (tweight t1) (tweight t1))).(le_n (S (plus (tweight 
+t0) (tweight t1))))))))) t).
 
index 08c752cb8718616cf5308be1fa6f7e17f3acc888..c26b3c28656754bb6898772e31b1c451ebf19620 100644 (file)
@@ -17,5 +17,5 @@
 include "basic_1/asucc/defs.ma".
 
 let rec aplus (g: G) (a: A) (n: nat) on n: A \def match n with [O \Rightarrow 
-a | (S n0) \Rightarrow (let TMP_1 \def (aplus g a n0) in (asucc g TMP_1))].
+a | (S n0) \Rightarrow (asucc g (aplus g a n0))].
 
index 7cd40dae7f499bd04052c5037bb324c368ace90c..9eec9c6e83f510aef71bb0d9b342bc4f4ae96ec8 100644 (file)
@@ -27,390 +27,214 @@ theorem aplus_reg_r:
 \def
  \lambda (g: G).(\lambda (a1: A).(\lambda (a2: A).(\lambda (h1: nat).(\lambda 
 (h2: nat).(\lambda (H: (eq A (aplus g a1 h1) (aplus g a2 h2))).(\lambda (h: 
-nat).(let TMP_5 \def (\lambda (n: nat).(let TMP_1 \def (plus n h1) in (let 
-TMP_2 \def (aplus g a1 TMP_1) in (let TMP_3 \def (plus n h2) in (let TMP_4 
-\def (aplus g a2 TMP_3) in (eq A TMP_2 TMP_4)))))) in (let TMP_11 \def 
-(\lambda (n: nat).(\lambda (H0: (eq A (aplus g a1 (plus n h1)) (aplus g a2 
-(plus n h2)))).(let TMP_6 \def (plus n h1) in (let TMP_7 \def (aplus g a1 
-TMP_6) in (let TMP_8 \def (plus n h2) in (let TMP_9 \def (aplus g a2 TMP_8) 
-in (let TMP_10 \def (refl_equal G g) in (f_equal2 G A A asucc g g TMP_7 TMP_9 
-TMP_10 H0)))))))) in (nat_ind TMP_5 H TMP_11 h))))))))).
+nat).(nat_ind (\lambda (n: nat).(eq A (aplus g a1 (plus n h1)) (aplus g a2 
+(plus n h2)))) H (\lambda (n: nat).(\lambda (H0: (eq A (aplus g a1 (plus n 
+h1)) (aplus g a2 (plus n h2)))).(f_equal2 G A A asucc g g (aplus g a1 (plus n 
+h1)) (aplus g a2 (plus n h2)) (refl_equal G g) H0))) h))))))).
 
 theorem aplus_assoc:
  \forall (g: G).(\forall (a: A).(\forall (h1: nat).(\forall (h2: nat).(eq A 
 (aplus g (aplus g a h1) h2) (aplus g a (plus h1 h2))))))
 \def
- \lambda (g: G).(\lambda (a: A).(\lambda (h1: nat).(let TMP_5 \def (\lambda 
-(n: nat).(\forall (h2: nat).(let TMP_1 \def (aplus g a n) in (let TMP_2 \def 
-(aplus g TMP_1 h2) in (let TMP_3 \def (plus n h2) in (let TMP_4 \def (aplus g 
-a TMP_3) in (eq A TMP_2 TMP_4))))))) in (let TMP_7 \def (\lambda (h2: 
-nat).(let TMP_6 \def (aplus g a h2) in (refl_equal A TMP_6))) in (let TMP_47 
-\def (\lambda (n: nat).(\lambda (_: ((\forall (h2: nat).(eq A (aplus g (aplus 
-g a n) h2) (aplus g a (plus n h2)))))).(\lambda (h2: nat).(let TMP_14 \def 
-(\lambda (n0: nat).(let TMP_8 \def (aplus g a n) in (let TMP_9 \def (asucc g 
-TMP_8) in (let TMP_10 \def (aplus g TMP_9 n0) in (let TMP_11 \def (plus n n0) 
-in (let TMP_12 \def (aplus g a TMP_11) in (let TMP_13 \def (asucc g TMP_12) 
-in (eq A TMP_10 TMP_13)))))))) in (let TMP_19 \def (\lambda (n0: nat).(let 
-TMP_15 \def (aplus g a n) in (let TMP_16 \def (asucc g TMP_15) in (let TMP_17 
-\def (aplus g a n0) in (let TMP_18 \def (asucc g TMP_17) in (eq A TMP_16 
-TMP_18)))))) in (let TMP_20 \def (aplus g a n) in (let TMP_21 \def (asucc g 
-TMP_20) in (let TMP_22 \def (refl_equal A TMP_21) in (let TMP_23 \def (plus n 
-O) in (let TMP_24 \def (plus_n_O n) in (let TMP_25 \def (eq_ind nat n TMP_19 
-TMP_22 TMP_23 TMP_24) in (let TMP_46 \def (\lambda (n0: nat).(\lambda (H0: 
-(eq A (aplus g (asucc g (aplus g a n)) n0) (asucc g (aplus g a (plus n 
-n0))))).(let TMP_26 \def (plus n n0) in (let TMP_27 \def (S TMP_26) in (let 
-TMP_34 \def (\lambda (n1: nat).(let TMP_28 \def (aplus g a n) in (let TMP_29 
-\def (asucc g TMP_28) in (let TMP_30 \def (aplus g TMP_29 n0) in (let TMP_31 
-\def (asucc g TMP_30) in (let TMP_32 \def (aplus g a n1) in (let TMP_33 \def 
-(asucc g TMP_32) in (eq A TMP_31 TMP_33)))))))) in (let TMP_35 \def (aplus g 
-a n) in (let TMP_36 \def (asucc g TMP_35) in (let TMP_37 \def (aplus g TMP_36 
-n0) in (let TMP_38 \def (plus n n0) in (let TMP_39 \def (aplus g a TMP_38) in 
-(let TMP_40 \def (asucc g TMP_39) in (let TMP_41 \def (refl_equal G g) in 
-(let TMP_42 \def (f_equal2 G A A asucc g g TMP_37 TMP_40 TMP_41 H0) in (let 
-TMP_43 \def (S n0) in (let TMP_44 \def (plus n TMP_43) in (let TMP_45 \def 
-(plus_n_Sm n n0) in (eq_ind nat TMP_27 TMP_34 TMP_42 TMP_44 
-TMP_45))))))))))))))))) in (nat_ind TMP_14 TMP_25 TMP_46 h2))))))))))))) in 
-(nat_ind TMP_5 TMP_7 TMP_47 h1)))))).
+ \lambda (g: G).(\lambda (a: A).(\lambda (h1: nat).(nat_ind (\lambda (n: 
+nat).(\forall (h2: nat).(eq A (aplus g (aplus g a n) h2) (aplus g a (plus n 
+h2))))) (\lambda (h2: nat).(refl_equal A (aplus g a h2))) (\lambda (n: 
+nat).(\lambda (_: ((\forall (h2: nat).(eq A (aplus g (aplus g a n) h2) (aplus 
+g a (plus n h2)))))).(\lambda (h2: nat).(nat_ind (\lambda (n0: nat).(eq A 
+(aplus g (asucc g (aplus g a n)) n0) (asucc g (aplus g a (plus n n0))))) 
+(eq_ind nat n (\lambda (n0: nat).(eq A (asucc g (aplus g a n)) (asucc g 
+(aplus g a n0)))) (refl_equal A (asucc g (aplus g a n))) (plus n O) (plus_n_O 
+n)) (\lambda (n0: nat).(\lambda (H0: (eq A (aplus g (asucc g (aplus g a n)) 
+n0) (asucc g (aplus g a (plus n n0))))).(eq_ind nat (S (plus n n0)) (\lambda 
+(n1: nat).(eq A (asucc g (aplus g (asucc g (aplus g a n)) n0)) (asucc g 
+(aplus g a n1)))) (f_equal2 G A A asucc g g (aplus g (asucc g (aplus g a n)) 
+n0) (asucc g (aplus g a (plus n n0))) (refl_equal G g) H0) (plus n (S n0)) 
+(plus_n_Sm n n0)))) h2)))) h1))).
 
 theorem aplus_asucc:
  \forall (g: G).(\forall (h: nat).(\forall (a: A).(eq A (aplus g (asucc g a) 
 h) (asucc g (aplus g a h)))))
 \def
- \lambda (g: G).(\lambda (h: nat).(\lambda (a: A).(let TMP_1 \def (S O) in 
-(let TMP_2 \def (plus TMP_1 h) in (let TMP_3 \def (aplus g a TMP_2) in (let 
-TMP_6 \def (\lambda (a0: A).(let TMP_4 \def (aplus g a h) in (let TMP_5 \def 
-(asucc g TMP_4) in (eq A a0 TMP_5)))) in (let TMP_7 \def (aplus g a h) in 
-(let TMP_8 \def (asucc g TMP_7) in (let TMP_9 \def (refl_equal A TMP_8) in 
-(let TMP_10 \def (S O) in (let TMP_11 \def (aplus g a TMP_10) in (let TMP_12 
-\def (aplus g TMP_11 h) in (let TMP_13 \def (S O) in (let TMP_14 \def 
-(aplus_assoc g a TMP_13 h) in (eq_ind_r A TMP_3 TMP_6 TMP_9 TMP_12 
-TMP_14))))))))))))))).
+ \lambda (g: G).(\lambda (h: nat).(\lambda (a: A).(eq_ind_r A (aplus g a 
+(plus (S O) h)) (\lambda (a0: A).(eq A a0 (asucc g (aplus g a h)))) 
+(refl_equal A (asucc g (aplus g a h))) (aplus g (aplus g a (S O)) h) 
+(aplus_assoc g a (S O) h)))).
 
 theorem aplus_sort_O_S_simpl:
  \forall (g: G).(\forall (n: nat).(\forall (k: nat).(eq A (aplus g (ASort O 
 n) (S k)) (aplus g (ASort O (next g n)) k))))
 \def
- \lambda (g: G).(\lambda (n: nat).(\lambda (k: nat).(let TMP_1 \def (ASort O 
-n) in (let TMP_2 \def (asucc g TMP_1) in (let TMP_3 \def (aplus g TMP_2 k) in 
-(let TMP_7 \def (\lambda (a: A).(let TMP_4 \def (next g n) in (let TMP_5 \def 
-(ASort O TMP_4) in (let TMP_6 \def (aplus g TMP_5 k) in (eq A a TMP_6))))) in 
-(let TMP_8 \def (next g n) in (let TMP_9 \def (ASort O TMP_8) in (let TMP_10 
-\def (aplus g TMP_9 k) in (let TMP_11 \def (refl_equal A TMP_10) in (let 
-TMP_12 \def (ASort O n) in (let TMP_13 \def (aplus g TMP_12 k) in (let TMP_14 
-\def (asucc g TMP_13) in (let TMP_15 \def (ASort O n) in (let TMP_16 \def 
-(aplus_asucc g k TMP_15) in (eq_ind A TMP_3 TMP_7 TMP_11 TMP_14 
-TMP_16)))))))))))))))).
+ \lambda (g: G).(\lambda (n: nat).(\lambda (k: nat).(eq_ind A (aplus g (asucc 
+g (ASort O n)) k) (\lambda (a: A).(eq A a (aplus g (ASort O (next g n)) k))) 
+(refl_equal A (aplus g (ASort O (next g n)) k)) (asucc g (aplus g (ASort O n) 
+k)) (aplus_asucc g k (ASort O n))))).
 
 theorem aplus_sort_S_S_simpl:
  \forall (g: G).(\forall (n: nat).(\forall (h: nat).(\forall (k: nat).(eq A 
 (aplus g (ASort (S h) n) (S k)) (aplus g (ASort h n) k)))))
 \def
- \lambda (g: G).(\lambda (n: nat).(\lambda (h: nat).(\lambda (k: nat).(let 
-TMP_1 \def (S h) in (let TMP_2 \def (ASort TMP_1 n) in (let TMP_3 \def (asucc 
-g TMP_2) in (let TMP_4 \def (aplus g TMP_3 k) in (let TMP_7 \def (\lambda (a: 
-A).(let TMP_5 \def (ASort h n) in (let TMP_6 \def (aplus g TMP_5 k) in (eq A 
-a TMP_6)))) in (let TMP_8 \def (ASort h n) in (let TMP_9 \def (aplus g TMP_8 
-k) in (let TMP_10 \def (refl_equal A TMP_9) in (let TMP_11 \def (S h) in (let 
-TMP_12 \def (ASort TMP_11 n) in (let TMP_13 \def (aplus g TMP_12 k) in (let 
-TMP_14 \def (asucc g TMP_13) in (let TMP_15 \def (S h) in (let TMP_16 \def 
-(ASort TMP_15 n) in (let TMP_17 \def (aplus_asucc g k TMP_16) in (eq_ind A 
-TMP_4 TMP_7 TMP_10 TMP_14 TMP_17))))))))))))))))))).
+ \lambda (g: G).(\lambda (n: nat).(\lambda (h: nat).(\lambda (k: nat).(eq_ind 
+A (aplus g (asucc g (ASort (S h) n)) k) (\lambda (a: A).(eq A a (aplus g 
+(ASort h n) k))) (refl_equal A (aplus g (ASort h n) k)) (asucc g (aplus g 
+(ASort (S h) n) k)) (aplus_asucc g k (ASort (S h) n)))))).
 
 theorem aplus_asort_O_simpl:
  \forall (g: G).(\forall (h: nat).(\forall (n: nat).(eq A (aplus g (ASort O 
 n) h) (ASort O (next_plus g n h)))))
 \def
- \lambda (g: G).(\lambda (h: nat).(let TMP_5 \def (\lambda (n: nat).(\forall 
-(n0: nat).(let TMP_1 \def (ASort O n0) in (let TMP_2 \def (aplus g TMP_1 n) 
-in (let TMP_3 \def (next_plus g n0 n) in (let TMP_4 \def (ASort O TMP_3) in 
-(eq A TMP_2 TMP_4))))))) in (let TMP_7 \def (\lambda (n: nat).(let TMP_6 \def 
-(ASort O n) in (refl_equal A TMP_6))) in (let TMP_33 \def (\lambda (n: 
-nat).(\lambda (H: ((\forall (n0: nat).(eq A (aplus g (ASort O n0) n) (ASort O 
-(next_plus g n0 n)))))).(\lambda (n0: nat).(let TMP_8 \def (ASort O n0) in 
-(let TMP_9 \def (asucc g TMP_8) in (let TMP_10 \def (aplus g TMP_9 n) in (let 
-TMP_14 \def (\lambda (a: A).(let TMP_11 \def (next_plus g n0 n) in (let 
-TMP_12 \def (next g TMP_11) in (let TMP_13 \def (ASort O TMP_12) in (eq A a 
-TMP_13))))) in (let TMP_15 \def (next g n0) in (let TMP_16 \def (next_plus g 
-TMP_15 n) in (let TMP_21 \def (\lambda (n1: nat).(let TMP_17 \def (next g n0) 
-in (let TMP_18 \def (ASort O TMP_17) in (let TMP_19 \def (aplus g TMP_18 n) 
-in (let TMP_20 \def (ASort O n1) in (eq A TMP_19 TMP_20)))))) in (let TMP_22 
-\def (next g n0) in (let TMP_23 \def (H TMP_22) in (let TMP_24 \def 
-(next_plus g n0 n) in (let TMP_25 \def (next g TMP_24) in (let TMP_26 \def 
-(next_plus_next g n0 n) in (let TMP_27 \def (eq_ind nat TMP_16 TMP_21 TMP_23 
-TMP_25 TMP_26) in (let TMP_28 \def (ASort O n0) in (let TMP_29 \def (aplus g 
-TMP_28 n) in (let TMP_30 \def (asucc g TMP_29) in (let TMP_31 \def (ASort O 
-n0) in (let TMP_32 \def (aplus_asucc g n TMP_31) in (eq_ind A TMP_10 TMP_14 
-TMP_27 TMP_30 TMP_32)))))))))))))))))))))) in (nat_ind TMP_5 TMP_7 TMP_33 
-h))))).
+ \lambda (g: G).(\lambda (h: nat).(nat_ind (\lambda (n: nat).(\forall (n0: 
+nat).(eq A (aplus g (ASort O n0) n) (ASort O (next_plus g n0 n))))) (\lambda 
+(n: nat).(refl_equal A (ASort O n))) (\lambda (n: nat).(\lambda (H: ((\forall 
+(n0: nat).(eq A (aplus g (ASort O n0) n) (ASort O (next_plus g n0 
+n)))))).(\lambda (n0: nat).(eq_ind A (aplus g (asucc g (ASort O n0)) n) 
+(\lambda (a: A).(eq A a (ASort O (next g (next_plus g n0 n))))) (eq_ind nat 
+(next_plus g (next g n0) n) (\lambda (n1: nat).(eq A (aplus g (ASort O (next 
+g n0)) n) (ASort O n1))) (H (next g n0)) (next g (next_plus g n0 n)) 
+(next_plus_next g n0 n)) (asucc g (aplus g (ASort O n0) n)) (aplus_asucc g n 
+(ASort O n0)))))) h)).
 
 theorem aplus_asort_le_simpl:
  \forall (g: G).(\forall (h: nat).(\forall (k: nat).(\forall (n: nat).((le h 
 k) \to (eq A (aplus g (ASort k n) h) (ASort (minus k h) n))))))
 \def
- \lambda (g: G).(\lambda (h: nat).(let TMP_5 \def (\lambda (n: nat).(\forall 
-(k: nat).(\forall (n0: nat).((le n k) \to (let TMP_1 \def (ASort k n0) in 
-(let TMP_2 \def (aplus g TMP_1 n) in (let TMP_3 \def (minus k n) in (let 
-TMP_4 \def (ASort TMP_3 n0) in (eq A TMP_2 TMP_4))))))))) in (let TMP_13 \def 
-(\lambda (k: nat).(\lambda (n: nat).(\lambda (_: (le O k)).(let TMP_8 \def 
-(\lambda (n0: nat).(let TMP_6 \def (ASort k n) in (let TMP_7 \def (ASort n0 
-n) in (eq A TMP_6 TMP_7)))) in (let TMP_9 \def (ASort k n) in (let TMP_10 
-\def (refl_equal A TMP_9) in (let TMP_11 \def (minus k O) in (let TMP_12 \def 
-(minus_n_O k) in (eq_ind nat k TMP_8 TMP_10 TMP_11 TMP_12))))))))) in (let 
-TMP_62 \def (\lambda (h0: nat).(\lambda (H: ((\forall (k: nat).(\forall (n: 
-nat).((le h0 k) \to (eq A (aplus g (ASort k n) h0) (ASort (minus k h0) 
-n))))))).(\lambda (k: nat).(let TMP_20 \def (\lambda (n: nat).(\forall (n0: 
-nat).((le (S h0) n) \to (let TMP_14 \def (ASort n n0) in (let TMP_15 \def 
-(aplus g TMP_14 h0) in (let TMP_16 \def (asucc g TMP_15) in (let TMP_17 \def 
-(S h0) in (let TMP_18 \def (minus n TMP_17) in (let TMP_19 \def (ASort TMP_18 
-n0) in (eq A TMP_16 TMP_19)))))))))) in (let TMP_42 \def (\lambda (n: 
-nat).(\lambda (H0: (le (S h0) O)).(let TMP_22 \def (\lambda (n0: nat).(let 
-TMP_21 \def (S n0) in (eq nat O TMP_21))) in (let TMP_23 \def (\lambda (n0: 
-nat).(le h0 n0)) in (let TMP_24 \def (ASort O n) in (let TMP_25 \def (aplus g 
-TMP_24 h0) in (let TMP_26 \def (asucc g TMP_25) in (let TMP_27 \def (S h0) in 
-(let TMP_28 \def (minus O TMP_27) in (let TMP_29 \def (ASort TMP_28 n) in 
-(let TMP_30 \def (eq A TMP_26 TMP_29) in (let TMP_40 \def (\lambda (x: 
-nat).(\lambda (H1: (eq nat O (S x))).(\lambda (_: (le h0 x)).(let TMP_31 \def 
-(\lambda (ee: nat).(match ee with [O \Rightarrow True | (S _) \Rightarrow 
-False])) in (let TMP_32 \def (S x) in (let H3 \def (eq_ind nat O TMP_31 I 
-TMP_32 H1) in (let TMP_33 \def (ASort O n) in (let TMP_34 \def (aplus g 
-TMP_33 h0) in (let TMP_35 \def (asucc g TMP_34) in (let TMP_36 \def (S h0) in 
-(let TMP_37 \def (minus O TMP_36) in (let TMP_38 \def (ASort TMP_37 n) in 
-(let TMP_39 \def (eq A TMP_35 TMP_38) in (False_ind TMP_39 H3)))))))))))))) 
-in (let TMP_41 \def (le_gen_S h0 O H0) in (ex2_ind nat TMP_22 TMP_23 TMP_30 
-TMP_40 TMP_41)))))))))))))) in (let TMP_61 \def (\lambda (n: nat).(\lambda 
-(_: ((\forall (n0: nat).((le (S h0) n) \to (eq A (asucc g (aplus g (ASort n 
-n0) h0)) (ASort (minus n (S h0)) n0)))))).(\lambda (n0: nat).(\lambda (H1: 
-(le (S h0) (S n))).(let TMP_43 \def (S n) in (let TMP_44 \def (ASort TMP_43 
-n0) in (let TMP_45 \def (asucc g TMP_44) in (let TMP_46 \def (aplus g TMP_45 
-h0) in (let TMP_51 \def (\lambda (a: A).(let TMP_47 \def (S n) in (let TMP_48 
-\def (S h0) in (let TMP_49 \def (minus TMP_47 TMP_48) in (let TMP_50 \def 
-(ASort TMP_49 n0) in (eq A a TMP_50)))))) in (let TMP_52 \def (le_S_n h0 n 
-H1) in (let TMP_53 \def (H n n0 TMP_52) in (let TMP_54 \def (S n) in (let 
-TMP_55 \def (ASort TMP_54 n0) in (let TMP_56 \def (aplus g TMP_55 h0) in (let 
-TMP_57 \def (asucc g TMP_56) in (let TMP_58 \def (S n) in (let TMP_59 \def 
-(ASort TMP_58 n0) in (let TMP_60 \def (aplus_asucc g h0 TMP_59) in (eq_ind A 
-TMP_46 TMP_51 TMP_53 TMP_57 TMP_60))))))))))))))))))) in (nat_ind TMP_20 
-TMP_42 TMP_61 k))))))) in (nat_ind TMP_5 TMP_13 TMP_62 h))))).
+ \lambda (g: G).(\lambda (h: nat).(nat_ind (\lambda (n: nat).(\forall (k: 
+nat).(\forall (n0: nat).((le n k) \to (eq A (aplus g (ASort k n0) n) (ASort 
+(minus k n) n0)))))) (\lambda (k: nat).(\lambda (n: nat).(\lambda (_: (le O 
+k)).(eq_ind nat k (\lambda (n0: nat).(eq A (ASort k n) (ASort n0 n))) 
+(refl_equal A (ASort k n)) (minus k O) (minus_n_O k))))) (\lambda (h0: 
+nat).(\lambda (H: ((\forall (k: nat).(\forall (n: nat).((le h0 k) \to (eq A 
+(aplus g (ASort k n) h0) (ASort (minus k h0) n))))))).(\lambda (k: 
+nat).(nat_ind (\lambda (n: nat).(\forall (n0: nat).((le (S h0) n) \to (eq A 
+(asucc g (aplus g (ASort n n0) h0)) (ASort (minus n (S h0)) n0))))) (\lambda 
+(n: nat).(\lambda (H0: (le (S h0) O)).(ex2_ind nat (\lambda (n0: nat).(eq nat 
+O (S n0))) (\lambda (n0: nat).(le h0 n0)) (eq A (asucc g (aplus g (ASort O n) 
+h0)) (ASort (minus O (S h0)) n)) (\lambda (x: nat).(\lambda (H1: (eq nat O (S 
+x))).(\lambda (_: (le h0 x)).(let H3 \def (eq_ind nat O (\lambda (ee: 
+nat).(match ee with [O \Rightarrow True | (S _) \Rightarrow False])) I (S x) 
+H1) in (False_ind (eq A (asucc g (aplus g (ASort O n) h0)) (ASort (minus O (S 
+h0)) n)) H3))))) (le_gen_S h0 O H0)))) (\lambda (n: nat).(\lambda (_: 
+((\forall (n0: nat).((le (S h0) n) \to (eq A (asucc g (aplus g (ASort n n0) 
+h0)) (ASort (minus n (S h0)) n0)))))).(\lambda (n0: nat).(\lambda (H1: (le (S 
+h0) (S n))).(eq_ind A (aplus g (asucc g (ASort (S n) n0)) h0) (\lambda (a: 
+A).(eq A a (ASort (minus (S n) (S h0)) n0))) (H n n0 (le_S_n h0 n H1)) (asucc 
+g (aplus g (ASort (S n) n0) h0)) (aplus_asucc g h0 (ASort (S n) n0))))))) 
+k)))) h)).
 
 theorem aplus_asort_simpl:
  \forall (g: G).(\forall (h: nat).(\forall (k: nat).(\forall (n: nat).(eq A 
 (aplus g (ASort k n) h) (ASort (minus k h) (next_plus g n (minus h k)))))))
 \def
- \lambda (g: G).(\lambda (h: nat).(\lambda (k: nat).(\lambda (n: nat).(let 
-TMP_1 \def (ASort k n) in (let TMP_2 \def (aplus g TMP_1 h) in (let TMP_3 
-\def (minus k h) in (let TMP_4 \def (minus h k) in (let TMP_5 \def (next_plus 
-g n TMP_4) in (let TMP_6 \def (ASort TMP_3 TMP_5) in (let TMP_7 \def (eq A 
-TMP_2 TMP_6) in (let TMP_92 \def (\lambda (H: (lt k h)).(let TMP_8 \def 
-(minus h k) in (let TMP_9 \def (plus k TMP_8) in (let TMP_16 \def (\lambda 
-(n0: nat).(let TMP_10 \def (ASort k n) in (let TMP_11 \def (aplus g TMP_10 
-n0) in (let TMP_12 \def (minus k h) in (let TMP_13 \def (minus h k) in (let 
-TMP_14 \def (next_plus g n TMP_13) in (let TMP_15 \def (ASort TMP_12 TMP_14) 
-in (eq A TMP_11 TMP_15)))))))) in (let TMP_17 \def (ASort k n) in (let TMP_18 
-\def (aplus g TMP_17 k) in (let TMP_19 \def (minus h k) in (let TMP_20 \def 
-(aplus g TMP_18 TMP_19) in (let TMP_25 \def (\lambda (a: A).(let TMP_21 \def 
-(minus k h) in (let TMP_22 \def (minus h k) in (let TMP_23 \def (next_plus g 
-n TMP_22) in (let TMP_24 \def (ASort TMP_21 TMP_23) in (eq A a TMP_24)))))) 
-in (let TMP_26 \def (minus k k) in (let TMP_27 \def (ASort TMP_26 n) in (let 
-TMP_34 \def (\lambda (a: A).(let TMP_28 \def (minus h k) in (let TMP_29 \def 
-(aplus g a TMP_28) in (let TMP_30 \def (minus k h) in (let TMP_31 \def (minus 
-h k) in (let TMP_32 \def (next_plus g n TMP_31) in (let TMP_33 \def (ASort 
-TMP_30 TMP_32) in (eq A TMP_29 TMP_33)))))))) in (let TMP_42 \def (\lambda 
-(n0: nat).(let TMP_35 \def (ASort n0 n) in (let TMP_36 \def (minus h k) in 
-(let TMP_37 \def (aplus g TMP_35 TMP_36) in (let TMP_38 \def (minus k h) in 
-(let TMP_39 \def (minus h k) in (let TMP_40 \def (next_plus g n TMP_39) in 
-(let TMP_41 \def (ASort TMP_38 TMP_40) in (eq A TMP_37 TMP_41))))))))) in 
-(let TMP_49 \def (\lambda (n0: nat).(let TMP_43 \def (ASort O n) in (let 
-TMP_44 \def (minus h k) in (let TMP_45 \def (aplus g TMP_43 TMP_44) in (let 
-TMP_46 \def (minus h k) in (let TMP_47 \def (next_plus g n TMP_46) in (let 
-TMP_48 \def (ASort n0 TMP_47) in (eq A TMP_45 TMP_48)))))))) in (let TMP_50 
-\def (minus h k) in (let TMP_51 \def (aplus_asort_O_simpl g TMP_50 n) in (let 
-TMP_52 \def (minus k h) in (let TMP_53 \def (S k) in (let TMP_54 \def (S h) 
-in (let TMP_55 \def (S k) in (let TMP_56 \def (S TMP_55) in (let TMP_57 \def 
-(S h) in (let TMP_58 \def (S k) in (let TMP_59 \def (le_n_S TMP_58 h H) in 
-(let TMP_60 \def (le_S TMP_56 TMP_57 TMP_59) in (let TMP_61 \def (le_S_n 
-TMP_53 TMP_54 TMP_60) in (let TMP_62 \def (le_S_n k h TMP_61) in (let TMP_63 
-\def (O_minus k h TMP_62) in (let TMP_64 \def (eq_ind_r nat O TMP_49 TMP_51 
-TMP_52 TMP_63) in (let TMP_65 \def (minus k k) in (let TMP_66 \def (minus_n_n 
-k) in (let TMP_67 \def (eq_ind nat O TMP_42 TMP_64 TMP_65 TMP_66) in (let 
-TMP_68 \def (ASort k n) in (let TMP_69 \def (aplus g TMP_68 k) in (let TMP_70 
-\def (le_n k) in (let TMP_71 \def (aplus_asort_le_simpl g k k n TMP_70) in 
-(let TMP_72 \def (eq_ind_r A TMP_27 TMP_34 TMP_67 TMP_69 TMP_71) in (let 
-TMP_73 \def (ASort k n) in (let TMP_74 \def (minus h k) in (let TMP_75 \def 
-(plus k TMP_74) in (let TMP_76 \def (aplus g TMP_73 TMP_75) in (let TMP_77 
-\def (ASort k n) in (let TMP_78 \def (minus h k) in (let TMP_79 \def 
-(aplus_assoc g TMP_77 k TMP_78) in (let TMP_80 \def (eq_ind A TMP_20 TMP_25 
-TMP_72 TMP_76 TMP_79) in (let TMP_81 \def (S k) in (let TMP_82 \def (S h) in 
-(let TMP_83 \def (S k) in (let TMP_84 \def (S TMP_83) in (let TMP_85 \def (S 
-h) in (let TMP_86 \def (S k) in (let TMP_87 \def (le_n_S TMP_86 h H) in (let 
-TMP_88 \def (le_S TMP_84 TMP_85 TMP_87) in (let TMP_89 \def (le_S_n TMP_81 
-TMP_82 TMP_88) in (let TMP_90 \def (le_S_n k h TMP_89) in (let TMP_91 \def 
-(le_plus_minus k h TMP_90) in (eq_ind_r nat TMP_9 TMP_16 TMP_80 h 
-TMP_91))))))))))))))))))))))))))))))))))))))))))))))))))))))))) in (let 
-TMP_116 \def (\lambda (H: (le h k)).(let TMP_93 \def (minus k h) in (let 
-TMP_94 \def (ASort TMP_93 n) in (let TMP_99 \def (\lambda (a: A).(let TMP_95 
-\def (minus k h) in (let TMP_96 \def (minus h k) in (let TMP_97 \def 
-(next_plus g n TMP_96) in (let TMP_98 \def (ASort TMP_95 TMP_97) in (eq A a 
-TMP_98)))))) in (let TMP_105 \def (\lambda (n0: nat).(let TMP_100 \def (minus 
-k h) in (let TMP_101 \def (ASort TMP_100 n) in (let TMP_102 \def (minus k h) 
-in (let TMP_103 \def (next_plus g n n0) in (let TMP_104 \def (ASort TMP_102 
-TMP_103) in (eq A TMP_101 TMP_104))))))) in (let TMP_106 \def (minus k h) in 
-(let TMP_107 \def (next_plus g n O) in (let TMP_108 \def (ASort TMP_106 
-TMP_107) in (let TMP_109 \def (refl_equal A TMP_108) in (let TMP_110 \def 
-(minus h k) in (let TMP_111 \def (O_minus h k H) in (let TMP_112 \def 
-(eq_ind_r nat O TMP_105 TMP_109 TMP_110 TMP_111) in (let TMP_113 \def (ASort 
-k n) in (let TMP_114 \def (aplus g TMP_113 h) in (let TMP_115 \def 
-(aplus_asort_le_simpl g h k n H) in (eq_ind_r A TMP_94 TMP_99 TMP_112 TMP_114 
-TMP_115)))))))))))))))) in (lt_le_e k h TMP_7 TMP_92 TMP_116))))))))))))).
+ \lambda (g: G).(\lambda (h: nat).(\lambda (k: nat).(\lambda (n: 
+nat).(lt_le_e k h (eq A (aplus g (ASort k n) h) (ASort (minus k h) (next_plus 
+g n (minus h k)))) (\lambda (H: (lt k h)).(eq_ind_r nat (plus k (minus h k)) 
+(\lambda (n0: nat).(eq A (aplus g (ASort k n) n0) (ASort (minus k h) 
+(next_plus g n (minus h k))))) (eq_ind A (aplus g (aplus g (ASort k n) k) 
+(minus h k)) (\lambda (a: A).(eq A a (ASort (minus k h) (next_plus g n (minus 
+h k))))) (eq_ind_r A (ASort (minus k k) n) (\lambda (a: A).(eq A (aplus g a 
+(minus h k)) (ASort (minus k h) (next_plus g n (minus h k))))) (eq_ind nat O 
+(\lambda (n0: nat).(eq A (aplus g (ASort n0 n) (minus h k)) (ASort (minus k 
+h) (next_plus g n (minus h k))))) (eq_ind_r nat O (\lambda (n0: nat).(eq A 
+(aplus g (ASort O n) (minus h k)) (ASort n0 (next_plus g n (minus h k))))) 
+(aplus_asort_O_simpl g (minus h k) n) (minus k h) (O_minus k h (le_S_n k h 
+(le_S_n (S k) (S h) (le_S (S (S k)) (S h) (le_n_S (S k) h H)))))) (minus k k) 
+(minus_n_n k)) (aplus g (ASort k n) k) (aplus_asort_le_simpl g k k n (le_n 
+k))) (aplus g (ASort k n) (plus k (minus h k))) (aplus_assoc g (ASort k n) k 
+(minus h k))) h (le_plus_minus k h (le_S_n k h (le_S_n (S k) (S h) (le_S (S 
+(S k)) (S h) (le_n_S (S k) h H))))))) (\lambda (H: (le h k)).(eq_ind_r A 
+(ASort (minus k h) n) (\lambda (a: A).(eq A a (ASort (minus k h) (next_plus g 
+n (minus h k))))) (eq_ind_r nat O (\lambda (n0: nat).(eq A (ASort (minus k h) 
+n) (ASort (minus k h) (next_plus g n n0)))) (refl_equal A (ASort (minus k h) 
+(next_plus g n O))) (minus h k) (O_minus h k H)) (aplus g (ASort k n) h) 
+(aplus_asort_le_simpl g h k n H))))))).
 
 theorem aplus_ahead_simpl:
  \forall (g: G).(\forall (h: nat).(\forall (a1: A).(\forall (a2: A).(eq A 
 (aplus g (AHead a1 a2) h) (AHead a1 (aplus g a2 h))))))
 \def
- \lambda (g: G).(\lambda (h: nat).(let TMP_5 \def (\lambda (n: nat).(\forall 
-(a1: A).(\forall (a2: A).(let TMP_1 \def (AHead a1 a2) in (let TMP_2 \def 
-(aplus g TMP_1 n) in (let TMP_3 \def (aplus g a2 n) in (let TMP_4 \def (AHead 
-a1 TMP_3) in (eq A TMP_2 TMP_4)))))))) in (let TMP_7 \def (\lambda (a1: 
-A).(\lambda (a2: A).(let TMP_6 \def (AHead a1 a2) in (refl_equal A TMP_6)))) 
-in (let TMP_33 \def (\lambda (n: nat).(\lambda (H: ((\forall (a1: A).(\forall 
-(a2: A).(eq A (aplus g (AHead a1 a2) n) (AHead a1 (aplus g a2 
-n))))))).(\lambda (a1: A).(\lambda (a2: A).(let TMP_8 \def (AHead a1 a2) in 
-(let TMP_9 \def (asucc g TMP_8) in (let TMP_10 \def (aplus g TMP_9 n) in (let 
-TMP_14 \def (\lambda (a: A).(let TMP_11 \def (aplus g a2 n) in (let TMP_12 
-\def (asucc g TMP_11) in (let TMP_13 \def (AHead a1 TMP_12) in (eq A a 
-TMP_13))))) in (let TMP_15 \def (asucc g a2) in (let TMP_16 \def (aplus g 
-TMP_15 n) in (let TMP_21 \def (\lambda (a: A).(let TMP_17 \def (AHead a1 a2) 
-in (let TMP_18 \def (asucc g TMP_17) in (let TMP_19 \def (aplus g TMP_18 n) 
-in (let TMP_20 \def (AHead a1 a) in (eq A TMP_19 TMP_20)))))) in (let TMP_22 
-\def (asucc g a2) in (let TMP_23 \def (H a1 TMP_22) in (let TMP_24 \def 
-(aplus g a2 n) in (let TMP_25 \def (asucc g TMP_24) in (let TMP_26 \def 
-(aplus_asucc g n a2) in (let TMP_27 \def (eq_ind A TMP_16 TMP_21 TMP_23 
-TMP_25 TMP_26) in (let TMP_28 \def (AHead a1 a2) in (let TMP_29 \def (aplus g 
-TMP_28 n) in (let TMP_30 \def (asucc g TMP_29) in (let TMP_31 \def (AHead a1 
-a2) in (let TMP_32 \def (aplus_asucc g n TMP_31) in (eq_ind A TMP_10 TMP_14 
-TMP_27 TMP_30 TMP_32))))))))))))))))))))))) in (nat_ind TMP_5 TMP_7 TMP_33 
-h))))).
+ \lambda (g: G).(\lambda (h: nat).(nat_ind (\lambda (n: nat).(\forall (a1: 
+A).(\forall (a2: A).(eq A (aplus g (AHead a1 a2) n) (AHead a1 (aplus g a2 
+n)))))) (\lambda (a1: A).(\lambda (a2: A).(refl_equal A (AHead a1 a2)))) 
+(\lambda (n: nat).(\lambda (H: ((\forall (a1: A).(\forall (a2: A).(eq A 
+(aplus g (AHead a1 a2) n) (AHead a1 (aplus g a2 n))))))).(\lambda (a1: 
+A).(\lambda (a2: A).(eq_ind A (aplus g (asucc g (AHead a1 a2)) n) (\lambda 
+(a: A).(eq A a (AHead a1 (asucc g (aplus g a2 n))))) (eq_ind A (aplus g 
+(asucc g a2) n) (\lambda (a: A).(eq A (aplus g (asucc g (AHead a1 a2)) n) 
+(AHead a1 a))) (H a1 (asucc g a2)) (asucc g (aplus g a2 n)) (aplus_asucc g n 
+a2)) (asucc g (aplus g (AHead a1 a2) n)) (aplus_asucc g n (AHead a1 a2))))))) 
+h)).
 
 theorem aplus_asucc_false:
  \forall (g: G).(\forall (a: A).(\forall (h: nat).((eq A (aplus g (asucc g a) 
 h) a) \to (\forall (P: Prop).P))))
 \def
- \lambda (g: G).(\lambda (a: A).(let TMP_1 \def (\lambda (a0: A).(\forall (h: 
-nat).((eq A (aplus g (asucc g a0) h) a0) \to (\forall (P: Prop).P)))) in (let 
-TMP_70 \def (\lambda (n: nat).(\lambda (n0: nat).(\lambda (h: nat).(\lambda 
-(H: (eq A (aplus g (match n with [O \Rightarrow (ASort O (next g n0)) | (S 
-h0) \Rightarrow (ASort h0 n0)]) h) (ASort n n0))).(\lambda (P: Prop).(let 
-TMP_2 \def (\lambda (n1: nat).((eq A (aplus g (match n1 with [O \Rightarrow 
-(ASort O (next g n0)) | (S h0) \Rightarrow (ASort h0 n0)]) h) (ASort n1 n0)) 
-\to P)) in (let TMP_36 \def (\lambda (H0: (eq A (aplus g (ASort O (next g 
-n0)) h) (ASort O n0))).(let TMP_3 \def (next g n0) in (let TMP_4 \def (ASort 
-O TMP_3) in (let TMP_5 \def (aplus g TMP_4 h) in (let TMP_7 \def (\lambda 
-(a0: A).(let TMP_6 \def (ASort O n0) in (eq A a0 TMP_6))) in (let TMP_8 \def 
-(minus O h) in (let TMP_9 \def (next g n0) in (let TMP_10 \def (minus h O) in 
-(let TMP_11 \def (next_plus g TMP_9 TMP_10) in (let TMP_12 \def (ASort TMP_8 
-TMP_11) in (let TMP_13 \def (next g n0) in (let TMP_14 \def 
-(aplus_asort_simpl g h O TMP_13) in (let H1 \def (eq_ind A TMP_5 TMP_7 H0 
-TMP_12 TMP_14) in (let TMP_18 \def (\lambda (e: A).(match e with [(ASort _ 
-n1) \Rightarrow n1 | (AHead _ _) \Rightarrow (let TMP_16 \def (next g n0) in 
-(let TMP_17 \def (minus h O) in (next_plus g TMP_16 TMP_17)))])) in (let 
-TMP_19 \def (minus O h) in (let TMP_20 \def (next g n0) in (let TMP_21 \def 
-(minus h O) in (let TMP_22 \def (next_plus g TMP_20 TMP_21) in (let TMP_23 
-\def (ASort TMP_19 TMP_22) in (let TMP_24 \def (ASort O n0) in (let H2 \def 
-(f_equal A nat TMP_18 TMP_23 TMP_24 H1) in (let TMP_25 \def (minus h O) in 
-(let TMP_28 \def (\lambda (n1: nat).(let TMP_26 \def (next g n0) in (let 
-TMP_27 \def (next_plus g TMP_26 n1) in (eq nat TMP_27 n0)))) in (let TMP_29 
-\def (minus_n_O h) in (let H3 \def (eq_ind_r nat TMP_25 TMP_28 H2 h TMP_29) 
-in (let TMP_30 \def (le_n n0) in (let TMP_31 \def (next g n0) in (let TMP_32 
-\def (next_plus g TMP_31 h) in (let TMP_33 \def (\lambda (n1: nat).(lt n0 
-n1)) in (let TMP_34 \def (next_plus_lt g h n0) in (let TMP_35 \def (eq_ind 
-nat TMP_32 TMP_33 TMP_34 n0 H3) in (le_lt_false n0 n0 TMP_30 TMP_35 
-P)))))))))))))))))))))))))))))))) in (let TMP_69 \def (\lambda (n1: 
-nat).(\lambda (_: (((eq A (aplus g (match n1 with [O \Rightarrow (ASort O 
-(next g n0)) | (S h0) \Rightarrow (ASort h0 n0)]) h) (ASort n1 n0)) \to 
-P))).(\lambda (H0: (eq A (aplus g (ASort n1 n0) h) (ASort (S n1) n0))).(let 
-TMP_37 \def (ASort n1 n0) in (let TMP_38 \def (aplus g TMP_37 h) in (let 
-TMP_41 \def (\lambda (a0: A).(let TMP_39 \def (S n1) in (let TMP_40 \def 
-(ASort TMP_39 n0) in (eq A a0 TMP_40)))) in (let TMP_42 \def (minus n1 h) in 
-(let TMP_43 \def (minus h n1) in (let TMP_44 \def (next_plus g n0 TMP_43) in 
-(let TMP_45 \def (ASort TMP_42 TMP_44) in (let TMP_46 \def (aplus_asort_simpl 
-g h n1 n0) in (let H1 \def (eq_ind A TMP_38 TMP_41 H0 TMP_45 TMP_46) in (let 
-TMP_47 \def (\lambda (e: A).(match e with [(ASort n2 _) \Rightarrow n2 | 
-(AHead _ _) \Rightarrow (minus n1 h)])) in (let TMP_48 \def (minus n1 h) in 
-(let TMP_49 \def (minus h n1) in (let TMP_50 \def (next_plus g n0 TMP_49) in 
-(let TMP_51 \def (ASort TMP_48 TMP_50) in (let TMP_52 \def (S n1) in (let 
-TMP_53 \def (ASort TMP_52 n0) in (let H2 \def (f_equal A nat TMP_47 TMP_51 
-TMP_53 H1) in (let TMP_56 \def (\lambda (e: A).(match e with [(ASort _ n2) 
-\Rightarrow n2 | (AHead _ _) \Rightarrow (let TMP_55 \def (minus h n1) in 
-(next_plus g n0 TMP_55))])) in (let TMP_57 \def (minus n1 h) in (let TMP_58 
-\def (minus h n1) in (let TMP_59 \def (next_plus g n0 TMP_58) in (let TMP_60 
-\def (ASort TMP_57 TMP_59) in (let TMP_61 \def (S n1) in (let TMP_62 \def 
-(ASort TMP_61 n0) in (let H3 \def (f_equal A nat TMP_56 TMP_60 TMP_62 H1) in 
-(let TMP_68 \def (\lambda (H4: (eq nat (minus n1 h) (S n1))).(let TMP_63 \def 
-(minus n1 h) in (let TMP_64 \def (\lambda (n2: nat).(le n2 n1)) in (let 
-TMP_65 \def (minus_le n1 h) in (let TMP_66 \def (S n1) in (let TMP_67 \def 
-(eq_ind nat TMP_63 TMP_64 TMP_65 TMP_66 H4) in (le_Sx_x n1 TMP_67 P))))))) in 
-(TMP_68 H2)))))))))))))))))))))))))))))) in (nat_ind TMP_2 TMP_36 TMP_69 n 
-H))))))))) in (let TMP_88 \def (\lambda (a0: A).(\lambda (_: ((\forall (h: 
-nat).((eq A (aplus g (asucc g a0) h) a0) \to (\forall (P: 
+ \lambda (g: G).(\lambda (a: A).(A_ind (\lambda (a0: A).(\forall (h: 
+nat).((eq A (aplus g (asucc g a0) h) a0) \to (\forall (P: Prop).P)))) 
+(\lambda (n: nat).(\lambda (n0: nat).(\lambda (h: nat).(\lambda (H: (eq A 
+(aplus g (match n with [O \Rightarrow (ASort O (next g n0)) | (S h0) 
+\Rightarrow (ASort h0 n0)]) h) (ASort n n0))).(\lambda (P: Prop).(nat_ind 
+(\lambda (n1: nat).((eq A (aplus g (match n1 with [O \Rightarrow (ASort O 
+(next g n0)) | (S h0) \Rightarrow (ASort h0 n0)]) h) (ASort n1 n0)) \to P)) 
+(\lambda (H0: (eq A (aplus g (ASort O (next g n0)) h) (ASort O n0))).(let H1 
+\def (eq_ind A (aplus g (ASort O (next g n0)) h) (\lambda (a0: A).(eq A a0 
+(ASort O n0))) H0 (ASort (minus O h) (next_plus g (next g n0) (minus h O))) 
+(aplus_asort_simpl g h O (next g n0))) in (let H2 \def (f_equal A nat 
+(\lambda (e: A).(match e with [(ASort _ n1) \Rightarrow n1 | (AHead _ _) 
+\Rightarrow (next_plus g (next g n0) (minus h O))])) (ASort (minus O h) 
+(next_plus g (next g n0) (minus h O))) (ASort O n0) H1) in (let H3 \def 
+(eq_ind_r nat (minus h O) (\lambda (n1: nat).(eq nat (next_plus g (next g n0) 
+n1) n0)) H2 h (minus_n_O h)) in (le_lt_false n0 n0 (le_n n0) (eq_ind nat 
+(next_plus g (next g n0) h) (\lambda (n1: nat).(lt n0 n1)) (next_plus_lt g h 
+n0) n0 H3) P))))) (\lambda (n1: nat).(\lambda (_: (((eq A (aplus g (match n1 
+with [O \Rightarrow (ASort O (next g n0)) | (S h0) \Rightarrow (ASort h0 
+n0)]) h) (ASort n1 n0)) \to P))).(\lambda (H0: (eq A (aplus g (ASort n1 n0) 
+h) (ASort (S n1) n0))).(let H1 \def (eq_ind A (aplus g (ASort n1 n0) h) 
+(\lambda (a0: A).(eq A a0 (ASort (S n1) n0))) H0 (ASort (minus n1 h) 
+(next_plus g n0 (minus h n1))) (aplus_asort_simpl g h n1 n0)) in (let H2 \def 
+(f_equal A nat (\lambda (e: A).(match e with [(ASort n2 _) \Rightarrow n2 | 
+(AHead _ _) \Rightarrow (minus n1 h)])) (ASort (minus n1 h) (next_plus g n0 
+(minus h n1))) (ASort (S n1) n0) H1) in ((let H3 \def (f_equal A nat (\lambda 
+(e: A).(match e with [(ASort _ n2) \Rightarrow n2 | (AHead _ _) \Rightarrow 
+(next_plus g n0 (minus h n1))])) (ASort (minus n1 h) (next_plus g n0 (minus h 
+n1))) (ASort (S n1) n0) H1) in (\lambda (H4: (eq nat (minus n1 h) (S 
+n1))).(le_Sx_x n1 (eq_ind nat (minus n1 h) (\lambda (n2: nat).(le n2 n1)) 
+(minus_le n1 h) (S n1) H4) P))) H2)))))) n H)))))) (\lambda (a0: A).(\lambda 
+(_: ((\forall (h: nat).((eq A (aplus g (asucc g a0) h) a0) \to (\forall (P: 
 Prop).P))))).(\lambda (a1: A).(\lambda (H0: ((\forall (h: nat).((eq A (aplus 
 g (asucc g a1) h) a1) \to (\forall (P: Prop).P))))).(\lambda (h: 
 nat).(\lambda (H1: (eq A (aplus g (AHead a0 (asucc g a1)) h) (AHead a0 
-a1))).(\lambda (P: Prop).(let TMP_71 \def (asucc g a1) in (let TMP_72 \def 
-(AHead a0 TMP_71) in (let TMP_73 \def (aplus g TMP_72 h) in (let TMP_75 \def 
-(\lambda (a2: A).(let TMP_74 \def (AHead a0 a1) in (eq A a2 TMP_74))) in (let 
-TMP_76 \def (asucc g a1) in (let TMP_77 \def (aplus g TMP_76 h) in (let 
-TMP_78 \def (AHead a0 TMP_77) in (let TMP_79 \def (asucc g a1) in (let TMP_80 
-\def (aplus_ahead_simpl g h a0 TMP_79) in (let H2 \def (eq_ind A TMP_73 
-TMP_75 H1 TMP_78 TMP_80) in (let TMP_83 \def (\lambda (e: A).(match e with 
-[(ASort _ _) \Rightarrow (let TMP_82 \def (asucc g a1) in (aplus g TMP_82 h)) 
-| (AHead _ a2) \Rightarrow a2])) in (let TMP_84 \def (asucc g a1) in (let 
-TMP_85 \def (aplus g TMP_84 h) in (let TMP_86 \def (AHead a0 TMP_85) in (let 
-TMP_87 \def (AHead a0 a1) in (let H3 \def (f_equal A A TMP_83 TMP_86 TMP_87 
-H2) in (H0 h H3 P)))))))))))))))))))))))) in (A_ind TMP_1 TMP_70 TMP_88 
-a))))).
+a1))).(\lambda (P: Prop).(let H2 \def (eq_ind A (aplus g (AHead a0 (asucc g 
+a1)) h) (\lambda (a2: A).(eq A a2 (AHead a0 a1))) H1 (AHead a0 (aplus g 
+(asucc g a1) h)) (aplus_ahead_simpl g h a0 (asucc g a1))) in (let H3 \def 
+(f_equal A A (\lambda (e: A).(match e with [(ASort _ _) \Rightarrow (aplus g 
+(asucc g a1) h) | (AHead _ a2) \Rightarrow a2])) (AHead a0 (aplus g (asucc g 
+a1) h)) (AHead a0 a1) H2) in (H0 h H3 P)))))))))) a)).
 
 theorem aplus_inj:
  \forall (g: G).(\forall (h1: nat).(\forall (h2: nat).(\forall (a: A).((eq A 
 (aplus g a h1) (aplus g a h2)) \to (eq nat h1 h2)))))
 \def
- \lambda (g: G).(\lambda (h1: nat).(let TMP_1 \def (\lambda (n: nat).(\forall 
-(h2: nat).(\forall (a: A).((eq A (aplus g a n) (aplus g a h2)) \to (eq nat n 
-h2))))) in (let TMP_16 \def (\lambda (h2: nat).(let TMP_2 \def (\lambda (n: 
-nat).(\forall (a: A).((eq A (aplus g a O) (aplus g a n)) \to (eq nat O n)))) 
-in (let TMP_3 \def (\lambda (a: A).(\lambda (_: (eq A a a)).(refl_equal nat 
-O))) in (let TMP_15 \def (\lambda (n: nat).(\lambda (_: ((\forall (a: A).((eq 
-A a (aplus g a n)) \to (eq nat O n))))).(\lambda (a: A).(\lambda (H0: (eq A a 
-(asucc g (aplus g a n)))).(let TMP_4 \def (aplus g a n) in (let TMP_5 \def 
-(asucc g TMP_4) in (let TMP_6 \def (\lambda (a0: A).(eq A a a0)) in (let 
-TMP_7 \def (asucc g a) in (let TMP_8 \def (aplus g TMP_7 n) in (let TMP_9 
-\def (aplus_asucc g n a) in (let H1 \def (eq_ind_r A TMP_5 TMP_6 H0 TMP_8 
-TMP_9) in (let TMP_10 \def (asucc g a) in (let TMP_11 \def (aplus g TMP_10 n) 
-in (let TMP_12 \def (sym_eq A a TMP_11 H1) in (let TMP_13 \def (S n) in (let 
-TMP_14 \def (eq nat O TMP_13) in (aplus_asucc_false g a n TMP_12 
-TMP_14))))))))))))))))) in (nat_ind TMP_2 TMP_3 TMP_15 h2))))) in (let TMP_47 
-\def (\lambda (n: nat).(\lambda (H: ((\forall (h2: nat).(\forall (a: A).((eq 
-A (aplus g a n) (aplus g a h2)) \to (eq nat n h2)))))).(\lambda (h2: 
-nat).(let TMP_18 \def (\lambda (n0: nat).(\forall (a: A).((eq A (aplus g a (S 
-n)) (aplus g a n0)) \to (let TMP_17 \def (S n) in (eq nat TMP_17 n0))))) in 
-(let TMP_27 \def (\lambda (a: A).(\lambda (H0: (eq A (asucc g (aplus g a n)) 
-a)).(let TMP_19 \def (aplus g a n) in (let TMP_20 \def (asucc g TMP_19) in 
-(let TMP_21 \def (\lambda (a0: A).(eq A a0 a)) in (let TMP_22 \def (asucc g 
-a) in (let TMP_23 \def (aplus g TMP_22 n) in (let TMP_24 \def (aplus_asucc g 
-n a) in (let H1 \def (eq_ind_r A TMP_20 TMP_21 H0 TMP_23 TMP_24) in (let 
-TMP_25 \def (S n) in (let TMP_26 \def (eq nat TMP_25 O) in (aplus_asucc_false 
-g a n H1 TMP_26)))))))))))) in (let TMP_46 \def (\lambda (n0: nat).(\lambda 
-(_: ((\forall (a: A).((eq A (asucc g (aplus g a n)) (aplus g a n0)) \to (eq 
-nat (S n) n0))))).(\lambda (a: A).(\lambda (H1: (eq A (asucc g (aplus g a n)) 
-(asucc g (aplus g a n0)))).(let TMP_28 \def (aplus g a n) in (let TMP_29 \def 
-(asucc g TMP_28) in (let TMP_32 \def (\lambda (a0: A).(let TMP_30 \def (aplus 
-g a n0) in (let TMP_31 \def (asucc g TMP_30) in (eq A a0 TMP_31)))) in (let 
-TMP_33 \def (asucc g a) in (let TMP_34 \def (aplus g TMP_33 n) in (let TMP_35 
-\def (aplus_asucc g n a) in (let H2 \def (eq_ind_r A TMP_29 TMP_32 H1 TMP_34 
-TMP_35) in (let TMP_36 \def (aplus g a n0) in (let TMP_37 \def (asucc g 
-TMP_36) in (let TMP_40 \def (\lambda (a0: A).(let TMP_38 \def (asucc g a) in 
-(let TMP_39 \def (aplus g TMP_38 n) in (eq A TMP_39 a0)))) in (let TMP_41 
-\def (asucc g a) in (let TMP_42 \def (aplus g TMP_41 n0) in (let TMP_43 \def 
-(aplus_asucc g n0 a) in (let H3 \def (eq_ind_r A TMP_37 TMP_40 H2 TMP_42 
-TMP_43) in (let TMP_44 \def (asucc g a) in (let TMP_45 \def (H n0 TMP_44 H3) 
-in (f_equal nat nat S n n0 TMP_45))))))))))))))))))))) in (nat_ind TMP_18 
-TMP_27 TMP_46 h2))))))) in (nat_ind TMP_1 TMP_16 TMP_47 h1))))).
+ \lambda (g: G).(\lambda (h1: nat).(nat_ind (\lambda (n: nat).(\forall (h2: 
+nat).(\forall (a: A).((eq A (aplus g a n) (aplus g a h2)) \to (eq nat n 
+h2))))) (\lambda (h2: nat).(nat_ind (\lambda (n: nat).(\forall (a: A).((eq A 
+(aplus g a O) (aplus g a n)) \to (eq nat O n)))) (\lambda (a: A).(\lambda (_: 
+(eq A a a)).(refl_equal nat O))) (\lambda (n: nat).(\lambda (_: ((\forall (a: 
+A).((eq A a (aplus g a n)) \to (eq nat O n))))).(\lambda (a: A).(\lambda (H0: 
+(eq A a (asucc g (aplus g a n)))).(let H1 \def (eq_ind_r A (asucc g (aplus g 
+a n)) (\lambda (a0: A).(eq A a a0)) H0 (aplus g (asucc g a) n) (aplus_asucc g 
+n a)) in (aplus_asucc_false g a n (sym_eq A a (aplus g (asucc g a) n) H1) (eq 
+nat O (S n)))))))) h2)) (\lambda (n: nat).(\lambda (H: ((\forall (h2: 
+nat).(\forall (a: A).((eq A (aplus g a n) (aplus g a h2)) \to (eq nat n 
+h2)))))).(\lambda (h2: nat).(nat_ind (\lambda (n0: nat).(\forall (a: A).((eq 
+A (aplus g a (S n)) (aplus g a n0)) \to (eq nat (S n) n0)))) (\lambda (a: 
+A).(\lambda (H0: (eq A (asucc g (aplus g a n)) a)).(let H1 \def (eq_ind_r A 
+(asucc g (aplus g a n)) (\lambda (a0: A).(eq A a0 a)) H0 (aplus g (asucc g a) 
+n) (aplus_asucc g n a)) in (aplus_asucc_false g a n H1 (eq nat (S n) O))))) 
+(\lambda (n0: nat).(\lambda (_: ((\forall (a: A).((eq A (asucc g (aplus g a 
+n)) (aplus g a n0)) \to (eq nat (S n) n0))))).(\lambda (a: A).(\lambda (H1: 
+(eq A (asucc g (aplus g a n)) (asucc g (aplus g a n0)))).(let H2 \def 
+(eq_ind_r A (asucc g (aplus g a n)) (\lambda (a0: A).(eq A a0 (asucc g (aplus 
+g a n0)))) H1 (aplus g (asucc g a) n) (aplus_asucc g n a)) in (let H3 \def 
+(eq_ind_r A (asucc g (aplus g a n0)) (\lambda (a0: A).(eq A (aplus g (asucc g 
+a) n) a0)) H2 (aplus g (asucc g a) n0) (aplus_asucc g n0 a)) in (f_equal nat 
+nat S n n0 (H n0 (asucc g a) H3)))))))) h2)))) h1)).
 
index 9522c7344a239c97ee7697e44682fc6ec4b9f37a..40efddbbdd9441a7e2600ca273e29c97472c60b9 100644 (file)
@@ -20,6 +20,5 @@ let rec cbk (c: C) on c: nat \def match c with [(CSort m) \Rightarrow m |
 (CHead c0 _ _) \Rightarrow (cbk c0)].
 
 let rec app1 (c: C) on c: T \to T \def \lambda (t: T).(match c with [(CSort 
-_) \Rightarrow t | (CHead c0 k u) \Rightarrow (let TMP_1 \def (THead k u t) 
-in (app1 c0 TMP_1))]).
+_) \Rightarrow t | (CHead c0 k u) \Rightarrow (app1 c0 (THead k u t))]).
 
index 02355ca5e72efe57069cd54de0901d208c5c99b3..2e8391731a8e7430656b4c36656322889f990d5d 100644 (file)
@@ -21,124 +21,93 @@ A).(\forall (a2: A).(P O (AHead a1 a2) a1)))) (f0: (\forall (a2: A).(\forall
 (a: A).(\forall (i: nat).((aprem i a2 a) \to ((P i a2 a) \to (\forall (a1: 
 A).(P (S i) (AHead a1 a2) a)))))))) (n: nat) (a: A) (a0: A) (a1: aprem n a 
 a0) on a1: P n a a0 \def match a1 with [(aprem_zero a2 a3) \Rightarrow (f a2 
-a3) | (aprem_succ a2 a3 i a4 a5) \Rightarrow (let TMP_1 \def ((aprem_ind P f 
-f0) i a2 a3 a4) in (f0 a2 a3 i a4 TMP_1 a5))].
+a3) | (aprem_succ a2 a3 i a4 a5) \Rightarrow (f0 a2 a3 i a4 ((aprem_ind P f 
+f0) i a2 a3 a4) a5)].
 
 theorem aprem_gen_sort:
  \forall (x: A).(\forall (i: nat).(\forall (h: nat).(\forall (n: nat).((aprem 
 i (ASort h n) x) \to False))))
 \def
  \lambda (x: A).(\lambda (i: nat).(\lambda (h: nat).(\lambda (n: 
-nat).(\lambda (H: (aprem i (ASort h n) x)).(let TMP_1 \def (ASort h n) in 
-(let TMP_2 \def (\lambda (a: A).(aprem i a x)) in (let TMP_3 \def (\lambda 
-(_: A).False) in (let TMP_13 \def (\lambda (y: A).(\lambda (H0: (aprem i y 
-x)).(let TMP_4 \def (\lambda (_: nat).(\lambda (a: A).(\lambda (_: A).((eq A 
-a (ASort h n)) \to False)))) in (let TMP_8 \def (\lambda (a1: A).(\lambda 
-(a2: A).(\lambda (H1: (eq A (AHead a1 a2) (ASort h n))).(let TMP_5 \def 
-(AHead a1 a2) in (let TMP_6 \def (\lambda (ee: A).(match ee with [(ASort _ _) 
-\Rightarrow False | (AHead _ _) \Rightarrow True])) in (let TMP_7 \def (ASort 
-h n) in (let H2 \def (eq_ind A TMP_5 TMP_6 I TMP_7 H1) in (False_ind False 
-H2)))))))) in (let TMP_12 \def (\lambda (a2: A).(\lambda (a: A).(\lambda (i0: 
-nat).(\lambda (_: (aprem i0 a2 a)).(\lambda (_: (((eq A a2 (ASort h n)) \to 
-False))).(\lambda (a1: A).(\lambda (H3: (eq A (AHead a1 a2) (ASort h 
-n))).(let TMP_9 \def (AHead a1 a2) in (let TMP_10 \def (\lambda (ee: 
-A).(match ee with [(ASort _ _) \Rightarrow False | (AHead _ _) \Rightarrow 
-True])) in (let TMP_11 \def (ASort h n) in (let H4 \def (eq_ind A TMP_9 
-TMP_10 I TMP_11 H3) in (False_ind False H4)))))))))))) in (aprem_ind TMP_4 
-TMP_8 TMP_12 i y x H0)))))) in (insert_eq A TMP_1 TMP_2 TMP_3 TMP_13 
-H))))))))).
+nat).(\lambda (H: (aprem i (ASort h n) x)).(insert_eq A (ASort h n) (\lambda 
+(a: A).(aprem i a x)) (\lambda (_: A).False) (\lambda (y: A).(\lambda (H0: 
+(aprem i y x)).(aprem_ind (\lambda (_: nat).(\lambda (a: A).(\lambda (_: 
+A).((eq A a (ASort h n)) \to False)))) (\lambda (a1: A).(\lambda (a2: 
+A).(\lambda (H1: (eq A (AHead a1 a2) (ASort h n))).(let H2 \def (eq_ind A 
+(AHead a1 a2) (\lambda (ee: A).(match ee with [(ASort _ _) \Rightarrow False 
+| (AHead _ _) \Rightarrow True])) I (ASort h n) H1) in (False_ind False 
+H2))))) (\lambda (a2: A).(\lambda (a: A).(\lambda (i0: nat).(\lambda (_: 
+(aprem i0 a2 a)).(\lambda (_: (((eq A a2 (ASort h n)) \to False))).(\lambda 
+(a1: A).(\lambda (H3: (eq A (AHead a1 a2) (ASort h n))).(let H4 \def (eq_ind 
+A (AHead a1 a2) (\lambda (ee: A).(match ee with [(ASort _ _) \Rightarrow 
+False | (AHead _ _) \Rightarrow True])) I (ASort h n) H3) in (False_ind False 
+H4))))))))) i y x H0))) H))))).
 
 theorem aprem_gen_head_O:
  \forall (a1: A).(\forall (a2: A).(\forall (x: A).((aprem O (AHead a1 a2) x) 
 \to (eq A x a1))))
 \def
  \lambda (a1: A).(\lambda (a2: A).(\lambda (x: A).(\lambda (H: (aprem O 
-(AHead a1 a2) x)).(let TMP_1 \def (AHead a1 a2) in (let TMP_2 \def (\lambda 
-(a: A).(aprem O a x)) in (let TMP_3 \def (\lambda (_: A).(eq A x a1)) in (let 
-TMP_29 \def (\lambda (y: A).(\lambda (H0: (aprem O y x)).(let TMP_4 \def 
-(\lambda (n: nat).(aprem n y x)) in (let TMP_5 \def (\lambda (_: nat).((eq A 
-y (AHead a1 a2)) \to (eq A x a1))) in (let TMP_28 \def (\lambda (y0: 
-nat).(\lambda (H1: (aprem y0 y x)).(let TMP_6 \def (\lambda (n: nat).(\lambda 
-(a: A).(\lambda (a0: A).((eq nat n O) \to ((eq A a (AHead a1 a2)) \to (eq A 
-a0 a1)))))) in (let TMP_14 \def (\lambda (a0: A).(\lambda (a3: A).(\lambda 
-(_: (eq nat O O)).(\lambda (H3: (eq A (AHead a0 a3) (AHead a1 a2))).(let 
-TMP_7 \def (\lambda (e: A).(match e with [(ASort _ _) \Rightarrow a0 | (AHead 
-a _) \Rightarrow a])) in (let TMP_8 \def (AHead a0 a3) in (let TMP_9 \def 
-(AHead a1 a2) in (let H4 \def (f_equal A A TMP_7 TMP_8 TMP_9 H3) in (let 
-TMP_10 \def (\lambda (e: A).(match e with [(ASort _ _) \Rightarrow a3 | 
-(AHead _ a) \Rightarrow a])) in (let TMP_11 \def (AHead a0 a3) in (let TMP_12 
-\def (AHead a1 a2) in (let H5 \def (f_equal A A TMP_10 TMP_11 TMP_12 H3) in 
-(let TMP_13 \def (\lambda (H6: (eq A a0 a1)).H6) in (TMP_13 H4)))))))))))))) 
-in (let TMP_27 \def (\lambda (a0: A).(\lambda (a: A).(\lambda (i: 
-nat).(\lambda (H2: (aprem i a0 a)).(\lambda (H3: (((eq nat i O) \to ((eq A a0 
-(AHead a1 a2)) \to (eq A a a1))))).(\lambda (a3: A).(\lambda (H4: (eq nat (S 
-i) O)).(\lambda (H5: (eq A (AHead a3 a0) (AHead a1 a2))).(let TMP_15 \def 
-(\lambda (e: A).(match e with [(ASort _ _) \Rightarrow a3 | (AHead a4 _) 
-\Rightarrow a4])) in (let TMP_16 \def (AHead a3 a0) in (let TMP_17 \def 
-(AHead a1 a2) in (let H6 \def (f_equal A A TMP_15 TMP_16 TMP_17 H5) in (let 
-TMP_18 \def (\lambda (e: A).(match e with [(ASort _ _) \Rightarrow a0 | 
-(AHead _ a4) \Rightarrow a4])) in (let TMP_19 \def (AHead a3 a0) in (let 
-TMP_20 \def (AHead a1 a2) in (let H7 \def (f_equal A A TMP_18 TMP_19 TMP_20 
-H5) in (let TMP_26 \def (\lambda (_: (eq A a3 a1)).(let TMP_21 \def (\lambda 
-(a4: A).((eq nat i O) \to ((eq A a4 (AHead a1 a2)) \to (eq A a a1)))) in (let 
-H9 \def (eq_ind A a0 TMP_21 H3 a2 H7) in (let TMP_22 \def (\lambda (a4: 
-A).(aprem i a4 a)) in (let H10 \def (eq_ind A a0 TMP_22 H2 a2 H7) in (let 
-TMP_23 \def (S i) in (let TMP_24 \def (\lambda (ee: nat).(match ee with [O 
-\Rightarrow False | (S _) \Rightarrow True])) in (let H11 \def (eq_ind nat 
-TMP_23 TMP_24 I O H4) in (let TMP_25 \def (eq A a a1) in (False_ind TMP_25 
-H11)))))))))) in (TMP_26 H6)))))))))))))))))) in (aprem_ind TMP_6 TMP_14 
-TMP_27 y0 y x H1)))))) in (insert_eq nat O TMP_4 TMP_5 TMP_28 H0)))))) in 
-(insert_eq A TMP_1 TMP_2 TMP_3 TMP_29 H)))))))).
+(AHead a1 a2) x)).(insert_eq A (AHead a1 a2) (\lambda (a: A).(aprem O a x)) 
+(\lambda (_: A).(eq A x a1)) (\lambda (y: A).(\lambda (H0: (aprem O y 
+x)).(insert_eq nat O (\lambda (n: nat).(aprem n y x)) (\lambda (_: nat).((eq 
+A y (AHead a1 a2)) \to (eq A x a1))) (\lambda (y0: nat).(\lambda (H1: (aprem 
+y0 y x)).(aprem_ind (\lambda (n: nat).(\lambda (a: A).(\lambda (a0: A).((eq 
+nat n O) \to ((eq A a (AHead a1 a2)) \to (eq A a0 a1)))))) (\lambda (a0: 
+A).(\lambda (a3: A).(\lambda (_: (eq nat O O)).(\lambda (H3: (eq A (AHead a0 
+a3) (AHead a1 a2))).(let H4 \def (f_equal A A (\lambda (e: A).(match e with 
+[(ASort _ _) \Rightarrow a0 | (AHead a _) \Rightarrow a])) (AHead a0 a3) 
+(AHead a1 a2) H3) in ((let H5 \def (f_equal A A (\lambda (e: A).(match e with 
+[(ASort _ _) \Rightarrow a3 | (AHead _ a) \Rightarrow a])) (AHead a0 a3) 
+(AHead a1 a2) H3) in (\lambda (H6: (eq A a0 a1)).H6)) H4)))))) (\lambda (a0: 
+A).(\lambda (a: A).(\lambda (i: nat).(\lambda (H2: (aprem i a0 a)).(\lambda 
+(H3: (((eq nat i O) \to ((eq A a0 (AHead a1 a2)) \to (eq A a a1))))).(\lambda 
+(a3: A).(\lambda (H4: (eq nat (S i) O)).(\lambda (H5: (eq A (AHead a3 a0) 
+(AHead a1 a2))).(let H6 \def (f_equal A A (\lambda (e: A).(match e with 
+[(ASort _ _) \Rightarrow a3 | (AHead a4 _) \Rightarrow a4])) (AHead a3 a0) 
+(AHead a1 a2) H5) in ((let H7 \def (f_equal A A (\lambda (e: A).(match e with 
+[(ASort _ _) \Rightarrow a0 | (AHead _ a4) \Rightarrow a4])) (AHead a3 a0) 
+(AHead a1 a2) H5) in (\lambda (_: (eq A a3 a1)).(let H9 \def (eq_ind A a0 
+(\lambda (a4: A).((eq nat i O) \to ((eq A a4 (AHead a1 a2)) \to (eq A a 
+a1)))) H3 a2 H7) in (let H10 \def (eq_ind A a0 (\lambda (a4: A).(aprem i a4 
+a)) H2 a2 H7) in (let H11 \def (eq_ind nat (S i) (\lambda (ee: nat).(match ee 
+with [O \Rightarrow False | (S _) \Rightarrow True])) I O H4) in (False_ind 
+(eq A a a1) H11)))))) H6)))))))))) y0 y x H1))) H0))) H)))).
 
 theorem aprem_gen_head_S:
  \forall (a1: A).(\forall (a2: A).(\forall (x: A).(\forall (i: nat).((aprem 
 (S i) (AHead a1 a2) x) \to (aprem i a2 x)))))
 \def
  \lambda (a1: A).(\lambda (a2: A).(\lambda (x: A).(\lambda (i: nat).(\lambda 
-(H: (aprem (S i) (AHead a1 a2) x)).(let TMP_1 \def (AHead a1 a2) in (let 
-TMP_3 \def (\lambda (a: A).(let TMP_2 \def (S i) in (aprem TMP_2 a x))) in 
-(let TMP_4 \def (\lambda (_: A).(aprem i a2 x)) in (let TMP_38 \def (\lambda 
-(y: A).(\lambda (H0: (aprem (S i) y x)).(let TMP_5 \def (S i) in (let TMP_6 
-\def (\lambda (n: nat).(aprem n y x)) in (let TMP_7 \def (\lambda (_: 
-nat).((eq A y (AHead a1 a2)) \to (aprem i a2 x))) in (let TMP_37 \def 
-(\lambda (y0: nat).(\lambda (H1: (aprem y0 y x)).(let TMP_8 \def (\lambda (n: 
+(H: (aprem (S i) (AHead a1 a2) x)).(insert_eq A (AHead a1 a2) (\lambda (a: 
+A).(aprem (S i) a x)) (\lambda (_: A).(aprem i a2 x)) (\lambda (y: 
+A).(\lambda (H0: (aprem (S i) y x)).(insert_eq nat (S i) (\lambda (n: 
+nat).(aprem n y x)) (\lambda (_: nat).((eq A y (AHead a1 a2)) \to (aprem i a2 
+x))) (\lambda (y0: nat).(\lambda (H1: (aprem y0 y x)).(aprem_ind (\lambda (n: 
 nat).(\lambda (a: A).(\lambda (a0: A).((eq nat n (S i)) \to ((eq A a (AHead 
-a1 a2)) \to (aprem i a2 a0)))))) in (let TMP_21 \def (\lambda (a0: 
-A).(\lambda (a3: A).(\lambda (H2: (eq nat O (S i))).(\lambda (H3: (eq A 
-(AHead a0 a3) (AHead a1 a2))).(let TMP_9 \def (\lambda (e: A).(match e with 
-[(ASort _ _) \Rightarrow a0 | (AHead a _) \Rightarrow a])) in (let TMP_10 
-\def (AHead a0 a3) in (let TMP_11 \def (AHead a1 a2) in (let H4 \def (f_equal 
-A A TMP_9 TMP_10 TMP_11 H3) in (let TMP_12 \def (\lambda (e: A).(match e with 
-[(ASort _ _) \Rightarrow a3 | (AHead _ a) \Rightarrow a])) in (let TMP_13 
-\def (AHead a0 a3) in (let TMP_14 \def (AHead a1 a2) in (let H5 \def (f_equal 
-A A TMP_12 TMP_13 TMP_14 H3) in (let TMP_20 \def (\lambda (H6: (eq A a0 
-a1)).(let TMP_15 \def (\lambda (a: A).(aprem i a2 a)) in (let TMP_16 \def 
-(\lambda (ee: nat).(match ee with [O \Rightarrow True | (S _) \Rightarrow 
-False])) in (let TMP_17 \def (S i) in (let H7 \def (eq_ind nat O TMP_16 I 
-TMP_17 H2) in (let TMP_18 \def (aprem i a2 a1) in (let TMP_19 \def (False_ind 
-TMP_18 H7) in (eq_ind_r A a1 TMP_15 TMP_19 a0 H6)))))))) in (TMP_20 
-H4)))))))))))))) in (let TMP_36 \def (\lambda (a0: A).(\lambda (a: 
-A).(\lambda (i0: nat).(\lambda (H2: (aprem i0 a0 a)).(\lambda (H3: (((eq nat 
-i0 (S i)) \to ((eq A a0 (AHead a1 a2)) \to (aprem i a2 a))))).(\lambda (a3: 
-A).(\lambda (H4: (eq nat (S i0) (S i))).(\lambda (H5: (eq A (AHead a3 a0) 
-(AHead a1 a2))).(let TMP_22 \def (\lambda (e: A).(match e with [(ASort _ _) 
-\Rightarrow a3 | (AHead a4 _) \Rightarrow a4])) in (let TMP_23 \def (AHead a3 
-a0) in (let TMP_24 \def (AHead a1 a2) in (let H6 \def (f_equal A A TMP_22 
-TMP_23 TMP_24 H5) in (let TMP_25 \def (\lambda (e: A).(match e with [(ASort _ 
-_) \Rightarrow a0 | (AHead _ a4) \Rightarrow a4])) in (let TMP_26 \def (AHead 
-a3 a0) in (let TMP_27 \def (AHead a1 a2) in (let H7 \def (f_equal A A TMP_25 
-TMP_26 TMP_27 H5) in (let TMP_35 \def (\lambda (_: (eq A a3 a1)).(let TMP_28 
-\def (\lambda (a4: A).((eq nat i0 (S i)) \to ((eq A a4 (AHead a1 a2)) \to 
-(aprem i a2 a)))) in (let H9 \def (eq_ind A a0 TMP_28 H3 a2 H7) in (let 
-TMP_29 \def (\lambda (a4: A).(aprem i0 a4 a)) in (let H10 \def (eq_ind A a0 
-TMP_29 H2 a2 H7) in (let TMP_30 \def (\lambda (e: nat).(match e with [O 
-\Rightarrow i0 | (S n) \Rightarrow n])) in (let TMP_31 \def (S i0) in (let 
-TMP_32 \def (S i) in (let H11 \def (f_equal nat nat TMP_30 TMP_31 TMP_32 H4) 
-in (let TMP_33 \def (\lambda (n: nat).((eq nat n (S i)) \to ((eq A a2 (AHead 
-a1 a2)) \to (aprem i a2 a)))) in (let H12 \def (eq_ind nat i0 TMP_33 H9 i 
-H11) in (let TMP_34 \def (\lambda (n: nat).(aprem n a2 a)) in (let H13 \def 
-(eq_ind nat i0 TMP_34 H10 i H11) in H13))))))))))))) in (TMP_35 
-H6)))))))))))))))))) in (aprem_ind TMP_8 TMP_21 TMP_36 y0 y x H1)))))) in 
-(insert_eq nat TMP_5 TMP_6 TMP_7 TMP_37 H0))))))) in (insert_eq A TMP_1 TMP_3 
-TMP_4 TMP_38 H))))))))).
+a1 a2)) \to (aprem i a2 a0)))))) (\lambda (a0: A).(\lambda (a3: A).(\lambda 
+(H2: (eq nat O (S i))).(\lambda (H3: (eq A (AHead a0 a3) (AHead a1 a2))).(let 
+H4 \def (f_equal A A (\lambda (e: A).(match e with [(ASort _ _) \Rightarrow 
+a0 | (AHead a _) \Rightarrow a])) (AHead a0 a3) (AHead a1 a2) H3) in ((let H5 
+\def (f_equal A A (\lambda (e: A).(match e with [(ASort _ _) \Rightarrow a3 | 
+(AHead _ a) \Rightarrow a])) (AHead a0 a3) (AHead a1 a2) H3) in (\lambda (H6: 
+(eq A a0 a1)).(eq_ind_r A a1 (\lambda (a: A).(aprem i a2 a)) (let H7 \def 
+(eq_ind nat O (\lambda (ee: nat).(match ee with [O \Rightarrow True | (S _) 
+\Rightarrow False])) I (S i) H2) in (False_ind (aprem i a2 a1) H7)) a0 H6))) 
+H4)))))) (\lambda (a0: A).(\lambda (a: A).(\lambda (i0: nat).(\lambda (H2: 
+(aprem i0 a0 a)).(\lambda (H3: (((eq nat i0 (S i)) \to ((eq A a0 (AHead a1 
+a2)) \to (aprem i a2 a))))).(\lambda (a3: A).(\lambda (H4: (eq nat (S i0) (S 
+i))).(\lambda (H5: (eq A (AHead a3 a0) (AHead a1 a2))).(let H6 \def (f_equal 
+A A (\lambda (e: A).(match e with [(ASort _ _) \Rightarrow a3 | (AHead a4 _) 
+\Rightarrow a4])) (AHead a3 a0) (AHead a1 a2) H5) in ((let H7 \def (f_equal A 
+A (\lambda (e: A).(match e with [(ASort _ _) \Rightarrow a0 | (AHead _ a4) 
+\Rightarrow a4])) (AHead a3 a0) (AHead a1 a2) H5) in (\lambda (_: (eq A a3 
+a1)).(let H9 \def (eq_ind A a0 (\lambda (a4: A).((eq nat i0 (S i)) \to ((eq A 
+a4 (AHead a1 a2)) \to (aprem i a2 a)))) H3 a2 H7) in (let H10 \def (eq_ind A 
+a0 (\lambda (a4: A).(aprem i0 a4 a)) H2 a2 H7) in (let H11 \def (f_equal nat 
+nat (\lambda (e: nat).(match e with [O \Rightarrow i0 | (S n) \Rightarrow 
+n])) (S i0) (S i) H4) in (let H12 \def (eq_ind nat i0 (\lambda (n: nat).((eq 
+nat n (S i)) \to ((eq A a2 (AHead a1 a2)) \to (aprem i a2 a)))) H9 i H11) in 
+(let H13 \def (eq_ind nat i0 (\lambda (n: nat).(aprem n a2 a)) H10 i H11) in 
+H13))))))) H6)))))))))) y0 y x H1))) H0))) H))))).
 
index df56d5d9135a6572c5370e6d0711760c0c762a86..e2fd9ad9490a2143cd264bb573ad940548ad052a 100644 (file)
@@ -24,63 +24,47 @@ theorem aprem_repl:
 b1 b2)) (\lambda (b1: A).(aprem i a1 b1)))))))))
 \def
  \lambda (g: G).(\lambda (a1: A).(\lambda (a2: A).(\lambda (H: (leq g a1 
-a2)).(let TMP_3 \def (\lambda (a: A).(\lambda (a0: A).(\forall (i: 
-nat).(\forall (b2: A).((aprem i a0 b2) \to (let TMP_1 \def (\lambda (b1: 
-A).(leq g b1 b2)) in (let TMP_2 \def (\lambda (b1: A).(aprem i a b1)) in (ex2 
-A TMP_1 TMP_2)))))))) in (let TMP_8 \def (\lambda (h1: nat).(\lambda (h2: 
-nat).(\lambda (n1: nat).(\lambda (n2: nat).(\lambda (k: nat).(\lambda (_: (eq 
-A (aplus g (ASort h1 n1) k) (aplus g (ASort h2 n2) k))).(\lambda (i: 
-nat).(\lambda (b2: A).(\lambda (H1: (aprem i (ASort h2 n2) b2)).(let H_x \def 
-(aprem_gen_sort b2 i h2 n2 H1) in (let H2 \def H_x in (let TMP_4 \def 
-(\lambda (b1: A).(leq g b1 b2)) in (let TMP_6 \def (\lambda (b1: A).(let 
-TMP_5 \def (ASort h1 n1) in (aprem i TMP_5 b1))) in (let TMP_7 \def (ex2 A 
-TMP_4 TMP_6) in (False_ind TMP_7 H2))))))))))))))) in (let TMP_37 \def 
-(\lambda (a0: A).(\lambda (a3: A).(\lambda (H0: (leq g a0 a3)).(\lambda (_: 
-((\forall (i: nat).(\forall (b2: A).((aprem i a3 b2) \to (ex2 A (\lambda (b1: 
-A).(leq g b1 b2)) (\lambda (b1: A).(aprem i a0 b1)))))))).(\lambda (a4: 
-A).(\lambda (a5: A).(\lambda (_: (leq g a4 a5)).(\lambda (H3: ((\forall (i: 
-nat).(\forall (b2: A).((aprem i a5 b2) \to (ex2 A (\lambda (b1: A).(leq g b1 
-b2)) (\lambda (b1: A).(aprem i a4 b1)))))))).(\lambda (i: nat).(\lambda (b2: 
-A).(\lambda (H4: (aprem i (AHead a3 a5) b2)).(let TMP_12 \def (\lambda (n: 
-nat).((aprem n (AHead a3 a5) b2) \to (let TMP_9 \def (\lambda (b1: A).(leq g 
-b1 b2)) in (let TMP_11 \def (\lambda (b1: A).(let TMP_10 \def (AHead a0 a4) 
-in (aprem n TMP_10 b1))) in (ex2 A TMP_9 TMP_11))))) in (let TMP_22 \def 
-(\lambda (H5: (aprem O (AHead a3 a5) b2)).(let H_y \def (aprem_gen_head_O a3 
-a5 b2 H5) in (let TMP_16 \def (\lambda (a: A).(let TMP_13 \def (\lambda (b1: 
-A).(leq g b1 a)) in (let TMP_15 \def (\lambda (b1: A).(let TMP_14 \def (AHead 
-a0 a4) in (aprem O TMP_14 b1))) in (ex2 A TMP_13 TMP_15)))) in (let TMP_17 
-\def (\lambda (b1: A).(leq g b1 a3)) in (let TMP_19 \def (\lambda (b1: 
-A).(let TMP_18 \def (AHead a0 a4) in (aprem O TMP_18 b1))) in (let TMP_20 
-\def (aprem_zero a0 a4) in (let TMP_21 \def (ex_intro2 A TMP_17 TMP_19 a0 H0 
-TMP_20) in (eq_ind_r A a3 TMP_16 TMP_21 b2 H_y)))))))) in (let TMP_36 \def 
-(\lambda (i0: nat).(\lambda (_: (((aprem i0 (AHead a3 a5) b2) \to (ex2 A 
-(\lambda (b1: A).(leq g b1 b2)) (\lambda (b1: A).(aprem i0 (AHead a0 a4) 
-b1)))))).(\lambda (H5: (aprem (S i0) (AHead a3 a5) b2)).(let H_y \def 
-(aprem_gen_head_S a3 a5 b2 i0 H5) in (let H_x \def (H3 i0 b2 H_y) in (let H6 
-\def H_x in (let TMP_23 \def (\lambda (b1: A).(leq g b1 b2)) in (let TMP_24 
-\def (\lambda (b1: A).(aprem i0 a4 b1)) in (let TMP_25 \def (\lambda (b1: 
-A).(leq g b1 b2)) in (let TMP_28 \def (\lambda (b1: A).(let TMP_26 \def (S 
-i0) in (let TMP_27 \def (AHead a0 a4) in (aprem TMP_26 TMP_27 b1)))) in (let 
-TMP_29 \def (ex2 A TMP_25 TMP_28) in (let TMP_35 \def (\lambda (x: 
-A).(\lambda (H7: (leq g x b2)).(\lambda (H8: (aprem i0 a4 x)).(let TMP_30 
-\def (\lambda (b1: A).(leq g b1 b2)) in (let TMP_33 \def (\lambda (b1: 
-A).(let TMP_31 \def (S i0) in (let TMP_32 \def (AHead a0 a4) in (aprem TMP_31 
-TMP_32 b1)))) in (let TMP_34 \def (aprem_succ a4 x i0 H8 a0) in (ex_intro2 A 
-TMP_30 TMP_33 x H7 TMP_34))))))) in (ex2_ind A TMP_23 TMP_24 TMP_29 TMP_35 
-H6))))))))))))) in (nat_ind TMP_12 TMP_22 TMP_36 i H4))))))))))))))) in 
-(leq_ind g TMP_3 TMP_8 TMP_37 a1 a2 H))))))).
+a2)).(leq_ind g (\lambda (a: A).(\lambda (a0: A).(\forall (i: nat).(\forall 
+(b2: A).((aprem i a0 b2) \to (ex2 A (\lambda (b1: A).(leq g b1 b2)) (\lambda 
+(b1: A).(aprem i a b1)))))))) (\lambda (h1: nat).(\lambda (h2: nat).(\lambda 
+(n1: nat).(\lambda (n2: nat).(\lambda (k: nat).(\lambda (_: (eq A (aplus g 
+(ASort h1 n1) k) (aplus g (ASort h2 n2) k))).(\lambda (i: nat).(\lambda (b2: 
+A).(\lambda (H1: (aprem i (ASort h2 n2) b2)).(let H_x \def (aprem_gen_sort b2 
+i h2 n2 H1) in (let H2 \def H_x in (False_ind (ex2 A (\lambda (b1: A).(leq g 
+b1 b2)) (\lambda (b1: A).(aprem i (ASort h1 n1) b1))) H2)))))))))))) (\lambda 
+(a0: A).(\lambda (a3: A).(\lambda (H0: (leq g a0 a3)).(\lambda (_: ((\forall 
+(i: nat).(\forall (b2: A).((aprem i a3 b2) \to (ex2 A (\lambda (b1: A).(leq g 
+b1 b2)) (\lambda (b1: A).(aprem i a0 b1)))))))).(\lambda (a4: A).(\lambda 
+(a5: A).(\lambda (_: (leq g a4 a5)).(\lambda (H3: ((\forall (i: nat).(\forall 
+(b2: A).((aprem i a5 b2) \to (ex2 A (\lambda (b1: A).(leq g b1 b2)) (\lambda 
+(b1: A).(aprem i a4 b1)))))))).(\lambda (i: nat).(\lambda (b2: A).(\lambda 
+(H4: (aprem i (AHead a3 a5) b2)).(nat_ind (\lambda (n: nat).((aprem n (AHead 
+a3 a5) b2) \to (ex2 A (\lambda (b1: A).(leq g b1 b2)) (\lambda (b1: A).(aprem 
+n (AHead a0 a4) b1))))) (\lambda (H5: (aprem O (AHead a3 a5) b2)).(let H_y 
+\def (aprem_gen_head_O a3 a5 b2 H5) in (eq_ind_r A a3 (\lambda (a: A).(ex2 A 
+(\lambda (b1: A).(leq g b1 a)) (\lambda (b1: A).(aprem O (AHead a0 a4) b1)))) 
+(ex_intro2 A (\lambda (b1: A).(leq g b1 a3)) (\lambda (b1: A).(aprem O (AHead 
+a0 a4) b1)) a0 H0 (aprem_zero a0 a4)) b2 H_y))) (\lambda (i0: nat).(\lambda 
+(_: (((aprem i0 (AHead a3 a5) b2) \to (ex2 A (\lambda (b1: A).(leq g b1 b2)) 
+(\lambda (b1: A).(aprem i0 (AHead a0 a4) b1)))))).(\lambda (H5: (aprem (S i0) 
+(AHead a3 a5) b2)).(let H_y \def (aprem_gen_head_S a3 a5 b2 i0 H5) in (let 
+H_x \def (H3 i0 b2 H_y) in (let H6 \def H_x in (ex2_ind A (\lambda (b1: 
+A).(leq g b1 b2)) (\lambda (b1: A).(aprem i0 a4 b1)) (ex2 A (\lambda (b1: 
+A).(leq g b1 b2)) (\lambda (b1: A).(aprem (S i0) (AHead a0 a4) b1))) (\lambda 
+(x: A).(\lambda (H7: (leq g x b2)).(\lambda (H8: (aprem i0 a4 x)).(ex_intro2 
+A (\lambda (b1: A).(leq g b1 b2)) (\lambda (b1: A).(aprem (S i0) (AHead a0 
+a4) b1)) x H7 (aprem_succ a4 x i0 H8 a0))))) H6))))))) i H4)))))))))))) a1 a2 
+H)))).
 
 theorem aprem_asucc:
  \forall (g: G).(\forall (a1: A).(\forall (a2: A).(\forall (i: nat).((aprem i 
 a1 a2) \to (aprem i (asucc g a1) a2)))))
 \def
  \lambda (g: G).(\lambda (a1: A).(\lambda (a2: A).(\lambda (i: nat).(\lambda 
-(H: (aprem i a1 a2)).(let TMP_2 \def (\lambda (n: nat).(\lambda (a: 
-A).(\lambda (a0: A).(let TMP_1 \def (asucc g a) in (aprem n TMP_1 a0))))) in 
-(let TMP_4 \def (\lambda (a0: A).(\lambda (a3: A).(let TMP_3 \def (asucc g 
-a3) in (aprem_zero a0 TMP_3)))) in (let TMP_6 \def (\lambda (a0: A).(\lambda 
-(a: A).(\lambda (i0: nat).(\lambda (_: (aprem i0 a0 a)).(\lambda (H1: (aprem 
-i0 (asucc g a0) a)).(\lambda (a3: A).(let TMP_5 \def (asucc g a0) in 
-(aprem_succ TMP_5 a i0 H1 a3)))))))) in (aprem_ind TMP_2 TMP_4 TMP_6 i a1 a2 
-H)))))))).
+(H: (aprem i a1 a2)).(aprem_ind (\lambda (n: nat).(\lambda (a: A).(\lambda 
+(a0: A).(aprem n (asucc g a) a0)))) (\lambda (a0: A).(\lambda (a3: 
+A).(aprem_zero a0 (asucc g a3)))) (\lambda (a0: A).(\lambda (a: A).(\lambda 
+(i0: nat).(\lambda (_: (aprem i0 a0 a)).(\lambda (H1: (aprem i0 (asucc g a0) 
+a)).(\lambda (a3: A).(aprem_succ (asucc g a0) a i0 H1 a3))))))) i a1 a2 
+H))))).
 
index ab79ccd872c7a066e284c61895b4e064ae8e344d..f91be4fff8021339dc43444349cdf438d1f52dca 100644 (file)
@@ -28,338 +28,230 @@ a) \to (\forall (i: nat).(\forall (b: A).((aprem i a b) \to (ex2_3 C T nat
 b)))))))))))))
 \def
  \lambda (g: G).(\lambda (c: C).(\lambda (t: T).(\lambda (a: A).(\lambda (H: 
-(arity g c t a)).(let TMP_5 \def (\lambda (c0: C).(\lambda (_: T).(\lambda 
-(a0: A).(\forall (i: nat).(\forall (b: A).((aprem i a0 b) \to (let TMP_2 \def 
-(\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_1 \def (plus i j) 
-in (drop TMP_1 O d c0))))) in (let TMP_4 \def (\lambda (d: C).(\lambda (u: 
-T).(\lambda (_: nat).(let TMP_3 \def (asucc g b) in (arity g d u TMP_3))))) 
-in (ex2_3 C T nat TMP_2 TMP_4))))))))) in (let TMP_11 \def (\lambda (c0: 
-C).(\lambda (n: nat).(\lambda (i: nat).(\lambda (b: A).(\lambda (H0: (aprem i 
-(ASort O n) b)).(let H_x \def (aprem_gen_sort b i O n H0) in (let H1 \def H_x 
-in (let TMP_7 \def (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(let 
-TMP_6 \def (plus i j) in (drop TMP_6 O d c0))))) in (let TMP_9 \def (\lambda 
-(d: C).(\lambda (u: T).(\lambda (_: nat).(let TMP_8 \def (asucc g b) in 
-(arity g d u TMP_8))))) in (let TMP_10 \def (ex2_3 C T nat TMP_7 TMP_9) in 
-(False_ind TMP_10 H1))))))))))) in (let TMP_45 \def (\lambda (c0: C).(\lambda 
-(d: C).(\lambda (u: T).(\lambda (i: nat).(\lambda (H0: (getl i c0 (CHead d 
-(Bind Abbr) u))).(\lambda (a0: A).(\lambda (_: (arity g d u a0)).(\lambda 
-(H2: ((\forall (i0: nat).(\forall (b: A).((aprem i0 a0 b) \to (ex2_3 C T nat 
-(\lambda (d0: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i0 j) O d0 
+(arity g c t a)).(arity_ind g (\lambda (c0: C).(\lambda (_: T).(\lambda (a0: 
+A).(\forall (i: nat).(\forall (b: A).((aprem i a0 b) \to (ex2_3 C T nat 
+(\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i j) O d c0)))) 
+(\lambda (d: C).(\lambda (u: T).(\lambda (_: nat).(arity g d u (asucc g 
+b)))))))))))) (\lambda (c0: C).(\lambda (n: nat).(\lambda (i: nat).(\lambda 
+(b: A).(\lambda (H0: (aprem i (ASort O n) b)).(let H_x \def (aprem_gen_sort b 
+i O n H0) in (let H1 \def H_x in (False_ind (ex2_3 C T nat (\lambda (d: 
+C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i j) O d c0)))) (\lambda (d: 
+C).(\lambda (u: T).(\lambda (_: nat).(arity g d u (asucc g b)))))) H1)))))))) 
+(\lambda (c0: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: nat).(\lambda 
+(H0: (getl i c0 (CHead d (Bind Abbr) u))).(\lambda (a0: A).(\lambda (_: 
+(arity g d u a0)).(\lambda (H2: ((\forall (i0: nat).(\forall (b: A).((aprem 
+i0 a0 b) \to (ex2_3 C T nat (\lambda (d0: C).(\lambda (_: T).(\lambda (j: 
+nat).(drop (plus i0 j) O d0 d)))) (\lambda (d0: C).(\lambda (u0: T).(\lambda 
+(_: nat).(arity g d0 u0 (asucc g b))))))))))).(\lambda (i0: nat).(\lambda (b: 
+A).(\lambda (H3: (aprem i0 a0 b)).(let H_x \def (H2 i0 b H3) in (let H4 \def 
+H_x in (ex2_3_ind C T nat (\lambda (d0: C).(\lambda (_: T).(\lambda (j: 
+nat).(drop (plus i0 j) O d0 d)))) (\lambda (d0: C).(\lambda (u0: T).(\lambda 
+(_: nat).(arity g d0 u0 (asucc g b))))) (ex2_3 C T nat (\lambda (d0: 
+C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i0 j) O d0 c0)))) (\lambda 
+(d0: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d0 u0 (asucc g b)))))) 
+(\lambda (x0: C).(\lambda (x1: T).(\lambda (x2: nat).(\lambda (H5: (drop 
+(plus i0 x2) O x0 d)).(\lambda (H6: (arity g x0 x1 (asucc g b))).(let H_x0 
+\def (getl_drop_conf_rev (plus i0 x2) x0 d H5 Abbr c0 u i H0) in (let H7 \def 
+H_x0 in (ex2_ind C (\lambda (c1: C).(drop (plus i0 x2) O c1 c0)) (\lambda 
+(c1: C).(drop (S i) (plus i0 x2) c1 x0)) (ex2_3 C T nat (\lambda (d0: 
+C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i0 j) O d0 c0)))) (\lambda 
+(d0: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d0 u0 (asucc g b)))))) 
+(\lambda (x: C).(\lambda (H8: (drop (plus i0 x2) O x c0)).(\lambda (H9: (drop 
+(S i) (plus i0 x2) x x0)).(ex2_3_intro C T nat (\lambda (d0: C).(\lambda (_: 
+T).(\lambda (j: nat).(drop (plus i0 j) O d0 c0)))) (\lambda (d0: C).(\lambda 
+(u0: T).(\lambda (_: nat).(arity g d0 u0 (asucc g b))))) x (lift (S i) (plus 
+i0 x2) x1) x2 H8 (arity_lift g x0 x1 (asucc g b) H6 x (S i) (plus i0 x2) 
+H9))))) H7)))))))) H4)))))))))))))) (\lambda (c0: C).(\lambda (d: C).(\lambda 
+(u: T).(\lambda (i: nat).(\lambda (H0: (getl i c0 (CHead d (Bind Abst) 
+u))).(\lambda (a0: A).(\lambda (_: (arity g d u (asucc g a0))).(\lambda (H2: 
+((\forall (i0: nat).(\forall (b: A).((aprem i0 (asucc g a0) b) \to (ex2_3 C T 
+nat (\lambda (d0: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i0 j) O d0 
 d)))) (\lambda (d0: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d0 u0 
 (asucc g b))))))))))).(\lambda (i0: nat).(\lambda (b: A).(\lambda (H3: (aprem 
-i0 a0 b)).(let H_x \def (H2 i0 b H3) in (let H4 \def H_x in (let TMP_13 \def 
-(\lambda (d0: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_12 \def (plus i0 
-j) in (drop TMP_12 O d0 d))))) in (let TMP_15 \def (\lambda (d0: C).(\lambda 
-(u0: T).(\lambda (_: nat).(let TMP_14 \def (asucc g b) in (arity g d0 u0 
-TMP_14))))) in (let TMP_17 \def (\lambda (d0: C).(\lambda (_: T).(\lambda (j: 
-nat).(let TMP_16 \def (plus i0 j) in (drop TMP_16 O d0 c0))))) in (let TMP_19 
-\def (\lambda (d0: C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_18 \def 
-(asucc g b) in (arity g d0 u0 TMP_18))))) in (let TMP_20 \def (ex2_3 C T nat 
-TMP_17 TMP_19) in (let TMP_44 \def (\lambda (x0: C).(\lambda (x1: T).(\lambda 
-(x2: nat).(\lambda (H5: (drop (plus i0 x2) O x0 d)).(\lambda (H6: (arity g x0 
-x1 (asucc g b))).(let TMP_21 \def (plus i0 x2) in (let H_x0 \def 
-(getl_drop_conf_rev TMP_21 x0 d H5 Abbr c0 u i H0) in (let H7 \def H_x0 in 
-(let TMP_23 \def (\lambda (c1: C).(let TMP_22 \def (plus i0 x2) in (drop 
-TMP_22 O c1 c0))) in (let TMP_26 \def (\lambda (c1: C).(let TMP_24 \def (S i) 
-in (let TMP_25 \def (plus i0 x2) in (drop TMP_24 TMP_25 c1 x0)))) in (let 
-TMP_28 \def (\lambda (d0: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_27 
-\def (plus i0 j) in (drop TMP_27 O d0 c0))))) in (let TMP_30 \def (\lambda 
-(d0: C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_29 \def (asucc g b) in 
-(arity g d0 u0 TMP_29))))) in (let TMP_31 \def (ex2_3 C T nat TMP_28 TMP_30) 
-in (let TMP_43 \def (\lambda (x: C).(\lambda (H8: (drop (plus i0 x2) O x 
-c0)).(\lambda (H9: (drop (S i) (plus i0 x2) x x0)).(let TMP_33 \def (\lambda 
-(d0: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_32 \def (plus i0 j) in 
-(drop TMP_32 O d0 c0))))) in (let TMP_35 \def (\lambda (d0: C).(\lambda (u0: 
-T).(\lambda (_: nat).(let TMP_34 \def (asucc g b) in (arity g d0 u0 
-TMP_34))))) in (let TMP_36 \def (S i) in (let TMP_37 \def (plus i0 x2) in 
-(let TMP_38 \def (lift TMP_36 TMP_37 x1) in (let TMP_39 \def (asucc g b) in 
-(let TMP_40 \def (S i) in (let TMP_41 \def (plus i0 x2) in (let TMP_42 \def 
-(arity_lift g x0 x1 TMP_39 H6 x TMP_40 TMP_41 H9) in (ex2_3_intro C T nat 
-TMP_33 TMP_35 x TMP_38 x2 H8 TMP_42))))))))))))) in (ex2_ind C TMP_23 TMP_26 
-TMP_31 TMP_43 H7))))))))))))))) in (ex2_3_ind C T nat TMP_13 TMP_15 TMP_20 
-TMP_44 H4)))))))))))))))))))) in (let TMP_80 \def (\lambda (c0: C).(\lambda 
-(d: C).(\lambda (u: T).(\lambda (i: nat).(\lambda (H0: (getl i c0 (CHead d 
-(Bind Abst) u))).(\lambda (a0: A).(\lambda (_: (arity g d u (asucc g 
-a0))).(\lambda (H2: ((\forall (i0: nat).(\forall (b: A).((aprem i0 (asucc g 
-a0) b) \to (ex2_3 C T nat (\lambda (d0: C).(\lambda (_: T).(\lambda (j: 
+i0 a0 b)).(let H_y \def (H2 i0 b) in (let H4 \def (H_y (aprem_asucc g a0 b i0 
+H3)) in (ex2_3_ind C T nat (\lambda (d0: C).(\lambda (_: T).(\lambda (j: 
 nat).(drop (plus i0 j) O d0 d)))) (\lambda (d0: C).(\lambda (u0: T).(\lambda 
-(_: nat).(arity g d0 u0 (asucc g b))))))))))).(\lambda (i0: nat).(\lambda (b: 
-A).(\lambda (H3: (aprem i0 a0 b)).(let H_y \def (H2 i0 b) in (let TMP_46 \def 
-(aprem_asucc g a0 b i0 H3) in (let H4 \def (H_y TMP_46) in (let TMP_48 \def 
-(\lambda (d0: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_47 \def (plus i0 
-j) in (drop TMP_47 O d0 d))))) in (let TMP_50 \def (\lambda (d0: C).(\lambda 
-(u0: T).(\lambda (_: nat).(let TMP_49 \def (asucc g b) in (arity g d0 u0 
-TMP_49))))) in (let TMP_52 \def (\lambda (d0: C).(\lambda (_: T).(\lambda (j: 
-nat).(let TMP_51 \def (plus i0 j) in (drop TMP_51 O d0 c0))))) in (let TMP_54 
-\def (\lambda (d0: C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_53 \def 
-(asucc g b) in (arity g d0 u0 TMP_53))))) in (let TMP_55 \def (ex2_3 C T nat 
-TMP_52 TMP_54) in (let TMP_79 \def (\lambda (x0: C).(\lambda (x1: T).(\lambda 
-(x2: nat).(\lambda (H5: (drop (plus i0 x2) O x0 d)).(\lambda (H6: (arity g x0 
-x1 (asucc g b))).(let TMP_56 \def (plus i0 x2) in (let H_x \def 
-(getl_drop_conf_rev TMP_56 x0 d H5 Abst c0 u i H0) in (let H7 \def H_x in 
-(let TMP_58 \def (\lambda (c1: C).(let TMP_57 \def (plus i0 x2) in (drop 
-TMP_57 O c1 c0))) in (let TMP_61 \def (\lambda (c1: C).(let TMP_59 \def (S i) 
-in (let TMP_60 \def (plus i0 x2) in (drop TMP_59 TMP_60 c1 x0)))) in (let 
-TMP_63 \def (\lambda (d0: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_62 
-\def (plus i0 j) in (drop TMP_62 O d0 c0))))) in (let TMP_65 \def (\lambda 
-(d0: C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_64 \def (asucc g b) in 
-(arity g d0 u0 TMP_64))))) in (let TMP_66 \def (ex2_3 C T nat TMP_63 TMP_65) 
-in (let TMP_78 \def (\lambda (x: C).(\lambda (H8: (drop (plus i0 x2) O x 
-c0)).(\lambda (H9: (drop (S i) (plus i0 x2) x x0)).(let TMP_68 \def (\lambda 
-(d0: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_67 \def (plus i0 j) in 
-(drop TMP_67 O d0 c0))))) in (let TMP_70 \def (\lambda (d0: C).(\lambda (u0: 
-T).(\lambda (_: nat).(let TMP_69 \def (asucc g b) in (arity g d0 u0 
-TMP_69))))) in (let TMP_71 \def (S i) in (let TMP_72 \def (plus i0 x2) in 
-(let TMP_73 \def (lift TMP_71 TMP_72 x1) in (let TMP_74 \def (asucc g b) in 
-(let TMP_75 \def (S i) in (let TMP_76 \def (plus i0 x2) in (let TMP_77 \def 
-(arity_lift g x0 x1 TMP_74 H6 x TMP_75 TMP_76 H9) in (ex2_3_intro C T nat 
-TMP_68 TMP_70 x TMP_73 x2 H8 TMP_77))))))))))))) in (ex2_ind C TMP_58 TMP_61 
-TMP_66 TMP_78 H7))))))))))))))) in (ex2_3_ind C T nat TMP_48 TMP_50 TMP_55 
-TMP_79 H4))))))))))))))))))))) in (let TMP_106 \def (\lambda (b: B).(\lambda 
-(_: (not (eq B b Abst))).(\lambda (c0: C).(\lambda (u: T).(\lambda (a1: 
-A).(\lambda (_: (arity g c0 u a1)).(\lambda (_: ((\forall (i: nat).(\forall 
-(b0: A).((aprem i a1 b0) \to (ex2_3 C T nat (\lambda (d: C).(\lambda (_: 
-T).(\lambda (j: nat).(drop (plus i j) O d c0)))) (\lambda (d: C).(\lambda 
-(u0: T).(\lambda (_: nat).(arity g d u0 (asucc g b0))))))))))).(\lambda (t0: 
-T).(\lambda (a2: A).(\lambda (_: (arity g (CHead c0 (Bind b) u) t0 
-a2)).(\lambda (H4: ((\forall (i: nat).(\forall (b0: A).((aprem i a2 b0) \to 
-(ex2_3 C T nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus 
-i j) O d (CHead c0 (Bind b) u))))) (\lambda (d: C).(\lambda (u0: T).(\lambda 
-(_: nat).(arity g d u0 (asucc g b0))))))))))).(\lambda (i: nat).(\lambda (b0: 
-A).(\lambda (H5: (aprem i a2 b0)).(let H_x \def (H4 i b0 H5) in (let H6 \def 
-H_x in (let TMP_84 \def (\lambda (d: C).(\lambda (_: T).(\lambda (j: 
-nat).(let TMP_81 \def (plus i j) in (let TMP_82 \def (Bind b) in (let TMP_83 
-\def (CHead c0 TMP_82 u) in (drop TMP_81 O d TMP_83))))))) in (let TMP_86 
-\def (\lambda (d: C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_85 \def 
-(asucc g b0) in (arity g d u0 TMP_85))))) in (let TMP_88 \def (\lambda (d: 
-C).(\lambda (_: T).(\lambda (j: nat).(let TMP_87 \def (plus i j) in (drop 
-TMP_87 O d c0))))) in (let TMP_90 \def (\lambda (d: C).(\lambda (u0: 
-T).(\lambda (_: nat).(let TMP_89 \def (asucc g b0) in (arity g d u0 
-TMP_89))))) in (let TMP_91 \def (ex2_3 C T nat TMP_88 TMP_90) in (let TMP_105 
-\def (\lambda (x0: C).(\lambda (x1: T).(\lambda (x2: nat).(\lambda (H7: (drop 
+(_: nat).(arity g d0 u0 (asucc g b))))) (ex2_3 C T nat (\lambda (d0: 
+C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i0 j) O d0 c0)))) (\lambda 
+(d0: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d0 u0 (asucc g b)))))) 
+(\lambda (x0: C).(\lambda (x1: T).(\lambda (x2: nat).(\lambda (H5: (drop 
+(plus i0 x2) O x0 d)).(\lambda (H6: (arity g x0 x1 (asucc g b))).(let H_x 
+\def (getl_drop_conf_rev (plus i0 x2) x0 d H5 Abst c0 u i H0) in (let H7 \def 
+H_x in (ex2_ind C (\lambda (c1: C).(drop (plus i0 x2) O c1 c0)) (\lambda (c1: 
+C).(drop (S i) (plus i0 x2) c1 x0)) (ex2_3 C T nat (\lambda (d0: C).(\lambda 
+(_: T).(\lambda (j: nat).(drop (plus i0 j) O d0 c0)))) (\lambda (d0: 
+C).(\lambda (u0: T).(\lambda (_: nat).(arity g d0 u0 (asucc g b)))))) 
+(\lambda (x: C).(\lambda (H8: (drop (plus i0 x2) O x c0)).(\lambda (H9: (drop 
+(S i) (plus i0 x2) x x0)).(ex2_3_intro C T nat (\lambda (d0: C).(\lambda (_: 
+T).(\lambda (j: nat).(drop (plus i0 j) O d0 c0)))) (\lambda (d0: C).(\lambda 
+(u0: T).(\lambda (_: nat).(arity g d0 u0 (asucc g b))))) x (lift (S i) (plus 
+i0 x2) x1) x2 H8 (arity_lift g x0 x1 (asucc g b) H6 x (S i) (plus i0 x2) 
+H9))))) H7)))))))) H4)))))))))))))) (\lambda (b: B).(\lambda (_: (not (eq B b 
+Abst))).(\lambda (c0: C).(\lambda (u: T).(\lambda (a1: A).(\lambda (_: (arity 
+g c0 u a1)).(\lambda (_: ((\forall (i: nat).(\forall (b0: A).((aprem i a1 b0) 
+\to (ex2_3 C T nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop 
+(plus i j) O d c0)))) (\lambda (d: C).(\lambda (u0: T).(\lambda (_: 
+nat).(arity g d u0 (asucc g b0))))))))))).(\lambda (t0: T).(\lambda (a2: 
+A).(\lambda (_: (arity g (CHead c0 (Bind b) u) t0 a2)).(\lambda (H4: 
+((\forall (i: nat).(\forall (b0: A).((aprem i a2 b0) \to (ex2_3 C T nat 
+(\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i j) O d (CHead 
+c0 (Bind b) u))))) (\lambda (d: C).(\lambda (u0: T).(\lambda (_: nat).(arity 
+g d u0 (asucc g b0))))))))))).(\lambda (i: nat).(\lambda (b0: A).(\lambda 
+(H5: (aprem i a2 b0)).(let H_x \def (H4 i b0 H5) in (let H6 \def H_x in 
+(ex2_3_ind C T nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop 
+(plus i j) O d (CHead c0 (Bind b) u))))) (\lambda (d: C).(\lambda (u0: 
+T).(\lambda (_: nat).(arity g d u0 (asucc g b0))))) (ex2_3 C T nat (\lambda 
+(d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i j) O d c0)))) (\lambda 
+(d: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d u0 (asucc g b0)))))) 
+(\lambda (x0: C).(\lambda (x1: T).(\lambda (x2: nat).(\lambda (H7: (drop 
 (plus i x2) O x0 (CHead c0 (Bind b) u))).(\lambda (H8: (arity g x0 x1 (asucc 
-g b0))).(let TMP_92 \def (plus i x2) in (let TMP_93 \def (S TMP_92) in (let 
-TMP_94 \def (\lambda (n: nat).(drop n O x0 c0)) in (let TMP_95 \def (plus i 
-x2) in (let TMP_96 \def (drop_S b x0 c0 u TMP_95 H7) in (let TMP_97 \def (S 
-x2) in (let TMP_98 \def (plus i TMP_97) in (let TMP_99 \def (plus_n_Sm i x2) 
-in (let H9 \def (eq_ind nat TMP_93 TMP_94 TMP_96 TMP_98 TMP_99) in (let 
-TMP_101 \def (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_100 
-\def (plus i j) in (drop TMP_100 O d c0))))) in (let TMP_103 \def (\lambda 
-(d: C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_102 \def (asucc g b0) in 
-(arity g d u0 TMP_102))))) in (let TMP_104 \def (S x2) in (ex2_3_intro C T 
-nat TMP_101 TMP_103 x0 x1 TMP_104 H9 H8)))))))))))))))))) in (ex2_3_ind C T 
-nat TMP_84 TMP_86 TMP_91 TMP_105 H6))))))))))))))))))))))) in (let TMP_145 
-\def (\lambda (c0: C).(\lambda (u: T).(\lambda (a1: A).(\lambda (H0: (arity g 
-c0 u (asucc g a1))).(\lambda (_: ((\forall (i: nat).(\forall (b: A).((aprem i 
-(asucc g a1) b) \to (ex2_3 C T nat (\lambda (d: C).(\lambda (_: T).(\lambda 
-(j: nat).(drop (plus i j) O d c0)))) (\lambda (d: C).(\lambda (u0: 
-T).(\lambda (_: nat).(arity g d u0 (asucc g b))))))))))).(\lambda (t0: 
-T).(\lambda (a2: A).(\lambda (_: (arity g (CHead c0 (Bind Abst) u) t0 
-a2)).(\lambda (H3: ((\forall (i: nat).(\forall (b: A).((aprem i a2 b) \to 
-(ex2_3 C T nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus 
-i j) O d (CHead c0 (Bind Abst) u))))) (\lambda (d: C).(\lambda (u0: 
-T).(\lambda (_: nat).(arity g d u0 (asucc g b))))))))))).(\lambda (i: 
-nat).(\lambda (b: A).(\lambda (H4: (aprem i (AHead a1 a2) b)).(let TMP_111 
-\def (\lambda (n: nat).((aprem n (AHead a1 a2) b) \to (let TMP_108 \def 
-(\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_107 \def (plus n 
-j) in (drop TMP_107 O d c0))))) in (let TMP_110 \def (\lambda (d: C).(\lambda 
-(u0: T).(\lambda (_: nat).(let TMP_109 \def (asucc g b) in (arity g d u0 
-TMP_109))))) in (ex2_3 C T nat TMP_108 TMP_110))))) in (let TMP_123 \def 
-(\lambda (H5: (aprem O (AHead a1 a2) b)).(let H_y \def (aprem_gen_head_O a1 
-a2 b H5) in (let TMP_116 \def (\lambda (a0: A).(let TMP_113 \def (\lambda (d: 
-C).(\lambda (_: T).(\lambda (j: nat).(let TMP_112 \def (plus O j) in (drop 
-TMP_112 O d c0))))) in (let TMP_115 \def (\lambda (d: C).(\lambda (u0: 
-T).(\lambda (_: nat).(let TMP_114 \def (asucc g a0) in (arity g d u0 
-TMP_114))))) in (ex2_3 C T nat TMP_113 TMP_115)))) in (let TMP_118 \def 
-(\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_117 \def (plus O 
-j) in (drop TMP_117 O d c0))))) in (let TMP_120 \def (\lambda (d: C).(\lambda 
-(u0: T).(\lambda (_: nat).(let TMP_119 \def (asucc g a1) in (arity g d u0 
-TMP_119))))) in (let TMP_121 \def (drop_refl c0) in (let TMP_122 \def 
-(ex2_3_intro C T nat TMP_118 TMP_120 c0 u O TMP_121 H0) in (eq_ind_r A a1 
-TMP_116 TMP_122 b H_y)))))))) in (let TMP_144 \def (\lambda (i0: 
-nat).(\lambda (_: (((aprem i0 (AHead a1 a2) b) \to (ex2_3 C T nat (\lambda 
-(d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i0 j) O d c0)))) 
+g b0))).(let H9 \def (eq_ind nat (S (plus i x2)) (\lambda (n: nat).(drop n O 
+x0 c0)) (drop_S b x0 c0 u (plus i x2) H7) (plus i (S x2)) (plus_n_Sm i x2)) 
+in (ex2_3_intro C T nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: 
+nat).(drop (plus i j) O d c0)))) (\lambda (d: C).(\lambda (u0: T).(\lambda 
+(_: nat).(arity g d u0 (asucc g b0))))) x0 x1 (S x2) H9 H8))))))) 
+H6))))))))))))))))) (\lambda (c0: C).(\lambda (u: T).(\lambda (a1: 
+A).(\lambda (H0: (arity g c0 u (asucc g a1))).(\lambda (_: ((\forall (i: 
+nat).(\forall (b: A).((aprem i (asucc g a1) b) \to (ex2_3 C T nat (\lambda 
+(d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i j) O d c0)))) (\lambda 
+(d: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d u0 (asucc g 
+b))))))))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda (_: (arity g (CHead 
+c0 (Bind Abst) u) t0 a2)).(\lambda (H3: ((\forall (i: nat).(\forall (b: 
+A).((aprem i a2 b) \to (ex2_3 C T nat (\lambda (d: C).(\lambda (_: 
+T).(\lambda (j: nat).(drop (plus i j) O d (CHead c0 (Bind Abst) u))))) 
 (\lambda (d: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d u0 (asucc g 
-b))))))))).(\lambda (H5: (aprem (S i0) (AHead a1 a2) b)).(let H_y \def 
-(aprem_gen_head_S a1 a2 b i0 H5) in (let H_x \def (H3 i0 b H_y) in (let H6 
-\def H_x in (let TMP_127 \def (\lambda (d: C).(\lambda (_: T).(\lambda (j: 
-nat).(let TMP_124 \def (plus i0 j) in (let TMP_125 \def (Bind Abst) in (let 
-TMP_126 \def (CHead c0 TMP_125 u) in (drop TMP_124 O d TMP_126))))))) in (let 
-TMP_129 \def (\lambda (d: C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_128 
-\def (asucc g b) in (arity g d u0 TMP_128))))) in (let TMP_132 \def (\lambda 
-(d: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_130 \def (S i0) in (let 
-TMP_131 \def (plus TMP_130 j) in (drop TMP_131 O d c0)))))) in (let TMP_134 
-\def (\lambda (d: C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_133 \def 
-(asucc g b) in (arity g d u0 TMP_133))))) in (let TMP_135 \def (ex2_3 C T nat 
-TMP_132 TMP_134) in (let TMP_143 \def (\lambda (x0: C).(\lambda (x1: 
-T).(\lambda (x2: nat).(\lambda (H7: (drop (plus i0 x2) O x0 (CHead c0 (Bind 
-Abst) u))).(\lambda (H8: (arity g x0 x1 (asucc g b))).(let TMP_138 \def 
-(\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_136 \def (S i0) in 
-(let TMP_137 \def (plus TMP_136 j) in (drop TMP_137 O d c0)))))) in (let 
-TMP_140 \def (\lambda (d: C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_139 
-\def (asucc g b) in (arity g d u0 TMP_139))))) in (let TMP_141 \def (plus i0 
-x2) in (let TMP_142 \def (drop_S Abst x0 c0 u TMP_141 H7) in (ex2_3_intro C T 
-nat TMP_138 TMP_140 x0 x1 x2 TMP_142 H8)))))))))) in (ex2_3_ind C T nat 
-TMP_127 TMP_129 TMP_135 TMP_143 H6))))))))))))) in (nat_ind TMP_111 TMP_123 
-TMP_144 i H4)))))))))))))))) in (let TMP_236 \def (\lambda (c0: C).(\lambda 
-(u: T).(\lambda (a1: A).(\lambda (_: (arity g c0 u a1)).(\lambda (_: 
-((\forall (i: nat).(\forall (b: A).((aprem i a1 b) \to (ex2_3 C T nat 
-(\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i j) O d c0)))) 
+b))))))))))).(\lambda (i: nat).(\lambda (b: A).(\lambda (H4: (aprem i (AHead 
+a1 a2) b)).(nat_ind (\lambda (n: nat).((aprem n (AHead a1 a2) b) \to (ex2_3 C 
+T nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus n j) O d 
+c0)))) (\lambda (d: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d u0 
+(asucc g b)))))))) (\lambda (H5: (aprem O (AHead a1 a2) b)).(let H_y \def 
+(aprem_gen_head_O a1 a2 b H5) in (eq_ind_r A a1 (\lambda (a0: A).(ex2_3 C T 
+nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus O j) O d 
+c0)))) (\lambda (d: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d u0 
+(asucc g a0))))))) (ex2_3_intro C T nat (\lambda (d: C).(\lambda (_: 
+T).(\lambda (j: nat).(drop (plus O j) O d c0)))) (\lambda (d: C).(\lambda 
+(u0: T).(\lambda (_: nat).(arity g d u0 (asucc g a1))))) c0 u O (drop_refl 
+c0) H0) b H_y))) (\lambda (i0: nat).(\lambda (_: (((aprem i0 (AHead a1 a2) b) 
+\to (ex2_3 C T nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop 
+(plus i0 j) O d c0)))) (\lambda (d: C).(\lambda (u0: T).(\lambda (_: 
+nat).(arity g d u0 (asucc g b))))))))).(\lambda (H5: (aprem (S i0) (AHead a1 
+a2) b)).(let H_y \def (aprem_gen_head_S a1 a2 b i0 H5) in (let H_x \def (H3 
+i0 b H_y) in (let H6 \def H_x in (ex2_3_ind C T nat (\lambda (d: C).(\lambda 
+(_: T).(\lambda (j: nat).(drop (plus i0 j) O d (CHead c0 (Bind Abst) u))))) 
 (\lambda (d: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d u0 (asucc g 
-b))))))))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda (_: (arity g c0 t0 
-(AHead a1 a2))).(\lambda (H3: ((\forall (i: nat).(\forall (b: A).((aprem i 
-(AHead a1 a2) b) \to (ex2_3 C T nat (\lambda (d: C).(\lambda (_: T).(\lambda 
-(j: nat).(drop (plus i j) O d c0)))) (\lambda (d: C).(\lambda (u0: 
-T).(\lambda (_: nat).(arity g d u0 (asucc g b))))))))))).(\lambda (i: 
-nat).(\lambda (b: A).(\lambda (H4: (aprem i a2 b)).(let TMP_146 \def (S i) in 
-(let H_y \def (H3 TMP_146 b) in (let TMP_147 \def (aprem_succ a2 b i H4 a1) 
-in (let H5 \def (H_y TMP_147) in (let TMP_150 \def (\lambda (d: C).(\lambda 
-(_: T).(\lambda (j: nat).(let TMP_148 \def (plus i j) in (let TMP_149 \def (S 
-TMP_148) in (drop TMP_149 O d c0)))))) in (let TMP_152 \def (\lambda (d: 
-C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_151 \def (asucc g b) in (arity 
-g d u0 TMP_151))))) in (let TMP_154 \def (\lambda (d: C).(\lambda (_: 
-T).(\lambda (j: nat).(let TMP_153 \def (plus i j) in (drop TMP_153 O d 
-c0))))) in (let TMP_156 \def (\lambda (d: C).(\lambda (u0: T).(\lambda (_: 
-nat).(let TMP_155 \def (asucc g b) in (arity g d u0 TMP_155))))) in (let 
-TMP_157 \def (ex2_3 C T nat TMP_154 TMP_156) in (let TMP_235 \def (\lambda 
-(x0: C).(\lambda (x1: T).(\lambda (x2: nat).(\lambda (H6: (drop (S (plus i 
-x2)) O x0 c0)).(\lambda (H7: (arity g x0 x1 (asucc g b))).(let TMP_162 \def 
-(\lambda (c1: C).((drop (S (plus i x2)) O c1 c0) \to ((arity g c1 x1 (asucc g 
-b)) \to (let TMP_159 \def (\lambda (d: C).(\lambda (_: T).(\lambda (j: 
-nat).(let TMP_158 \def (plus i j) in (drop TMP_158 O d c0))))) in (let 
-TMP_161 \def (\lambda (d: C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_160 
-\def (asucc g b) in (arity g d u0 TMP_160))))) in (ex2_3 C T nat TMP_159 
-TMP_161)))))) in (let TMP_186 \def (\lambda (n: nat).(\lambda (H8: (drop (S 
-(plus i x2)) O (CSort n) c0)).(\lambda (_: (arity g (CSort n) x1 (asucc g 
-b))).(let TMP_163 \def (CSort n) in (let TMP_164 \def (eq C c0 TMP_163) in 
-(let TMP_165 \def (plus i x2) in (let TMP_166 \def (S TMP_165) in (let 
-TMP_167 \def (eq nat TMP_166 O) in (let TMP_168 \def (eq nat O O) in (let 
-TMP_170 \def (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_169 
-\def (plus i j) in (drop TMP_169 O d c0))))) in (let TMP_172 \def (\lambda 
-(d: C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_171 \def (asucc g b) in 
-(arity g d u0 TMP_171))))) in (let TMP_173 \def (ex2_3 C T nat TMP_170 
-TMP_172) in (let TMP_182 \def (\lambda (_: (eq C c0 (CSort n))).(\lambda 
-(H11: (eq nat (S (plus i x2)) O)).(\lambda (_: (eq nat O O)).(let TMP_174 
-\def (plus i x2) in (let TMP_175 \def (S TMP_174) in (let TMP_176 \def 
-(\lambda (ee: nat).(match ee with [O \Rightarrow False | (S _) \Rightarrow 
-True])) in (let H13 \def (eq_ind nat TMP_175 TMP_176 I O H11) in (let TMP_178 
-\def (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_177 \def 
-(plus i j) in (drop TMP_177 O d c0))))) in (let TMP_180 \def (\lambda (d: 
-C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_179 \def (asucc g b) in (arity 
-g d u0 TMP_179))))) in (let TMP_181 \def (ex2_3 C T nat TMP_178 TMP_180) in 
-(False_ind TMP_181 H13))))))))))) in (let TMP_183 \def (plus i x2) in (let 
-TMP_184 \def (S TMP_183) in (let TMP_185 \def (drop_gen_sort n TMP_184 O c0 
-H8) in (and3_ind TMP_164 TMP_167 TMP_168 TMP_173 TMP_182 
-TMP_185))))))))))))))))) in (let TMP_234 \def (\lambda (d: C).(\lambda (IHd: 
-(((drop (S (plus i x2)) O d c0) \to ((arity g d x1 (asucc g b)) \to (ex2_3 C 
-T nat (\lambda (d0: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i j) O 
-d0 c0)))) (\lambda (d0: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d0 u0 
-(asucc g b)))))))))).(\lambda (k: K).(\lambda (t1: T).(\lambda (H8: (drop (S 
-(plus i x2)) O (CHead d k t1) c0)).(\lambda (H9: (arity g (CHead d k t1) x1 
-(asucc g b))).(let TMP_191 \def (\lambda (k0: K).((arity g (CHead d k0 t1) x1 
-(asucc g b)) \to ((drop (r k0 (plus i x2)) O d c0) \to (let TMP_188 \def 
-(\lambda (d0: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_187 \def (plus i 
-j) in (drop TMP_187 O d0 c0))))) in (let TMP_190 \def (\lambda (d0: 
-C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_189 \def (asucc g b) in (arity 
-g d0 u0 TMP_189))))) in (ex2_3 C T nat TMP_188 TMP_190)))))) in (let TMP_211 
-\def (\lambda (b0: B).(\lambda (H10: (arity g (CHead d (Bind b0) t1) x1 
-(asucc g b))).(\lambda (H11: (drop (r (Bind b0) (plus i x2)) O d c0)).(let 
-TMP_193 \def (\lambda (d0: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_192 
-\def (plus i j) in (drop TMP_192 O d0 c0))))) in (let TMP_195 \def (\lambda 
-(d0: C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_194 \def (asucc g b) in 
-(arity g d0 u0 TMP_194))))) in (let TMP_196 \def (Bind b0) in (let TMP_197 
-\def (CHead d TMP_196 t1) in (let TMP_198 \def (S x2) in (let TMP_199 \def 
-(plus i x2) in (let TMP_200 \def (S TMP_199) in (let TMP_203 \def (\lambda 
-(n: nat).(let TMP_201 \def (Bind b0) in (let TMP_202 \def (CHead d TMP_201 
-t1) in (drop n O TMP_202 c0)))) in (let TMP_204 \def (Bind b0) in (let 
-TMP_205 \def (plus i x2) in (let TMP_206 \def (drop_drop TMP_204 TMP_205 d c0 
-H11 t1) in (let TMP_207 \def (S x2) in (let TMP_208 \def (plus i TMP_207) in 
-(let TMP_209 \def (plus_n_Sm i x2) in (let TMP_210 \def (eq_ind nat TMP_200 
-TMP_203 TMP_206 TMP_208 TMP_209) in (ex2_3_intro C T nat TMP_193 TMP_195 
-TMP_197 x1 TMP_198 TMP_210 H10))))))))))))))))))) in (let TMP_231 \def 
-(\lambda (f: F).(\lambda (H10: (arity g (CHead d (Flat f) t1) x1 (asucc g 
-b))).(\lambda (H11: (drop (r (Flat f) (plus i x2)) O d c0)).(let TMP_212 \def 
-(Flat f) in (let TMP_213 \def (CHead d TMP_212 t1) in (let TMP_214 \def 
-(asucc g b) in (let TMP_215 \def (cimp_flat_sx f d t1) in (let TMP_216 \def 
-(arity_cimp_conf g TMP_213 x1 TMP_214 H10 d TMP_215) in (let H12 \def (IHd 
-H11 TMP_216) in (let TMP_218 \def (\lambda (d0: C).(\lambda (_: T).(\lambda 
-(j: nat).(let TMP_217 \def (plus i j) in (drop TMP_217 O d0 c0))))) in (let 
-TMP_220 \def (\lambda (d0: C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_219 
-\def (asucc g b) in (arity g d0 u0 TMP_219))))) in (let TMP_222 \def (\lambda 
-(d0: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_221 \def (plus i j) in 
-(drop TMP_221 O d0 c0))))) in (let TMP_224 \def (\lambda (d0: C).(\lambda 
-(u0: T).(\lambda (_: nat).(let TMP_223 \def (asucc g b) in (arity g d0 u0 
-TMP_223))))) in (let TMP_225 \def (ex2_3 C T nat TMP_222 TMP_224) in (let 
-TMP_230 \def (\lambda (x3: C).(\lambda (x4: T).(\lambda (x5: nat).(\lambda 
-(H13: (drop (plus i x5) O x3 c0)).(\lambda (H14: (arity g x3 x4 (asucc g 
-b))).(let TMP_227 \def (\lambda (d0: C).(\lambda (_: T).(\lambda (j: 
-nat).(let TMP_226 \def (plus i j) in (drop TMP_226 O d0 c0))))) in (let 
-TMP_229 \def (\lambda (d0: C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_228 
-\def (asucc g b) in (arity g d0 u0 TMP_228))))) in (ex2_3_intro C T nat 
-TMP_227 TMP_229 x3 x4 x5 H13 H14)))))))) in (ex2_3_ind C T nat TMP_218 
-TMP_220 TMP_225 TMP_230 H12)))))))))))))))) in (let TMP_232 \def (plus i x2) 
-in (let TMP_233 \def (drop_gen_drop k d c0 t1 TMP_232 H8) in (K_ind TMP_191 
-TMP_211 TMP_231 k H9 TMP_233)))))))))))) in (C_ind TMP_162 TMP_186 TMP_234 x0 
-H6 H7))))))))) in (ex2_3_ind C T nat TMP_150 TMP_152 TMP_157 TMP_235 
-H5))))))))))))))))))))))) in (let TMP_251 \def (\lambda (c0: C).(\lambda (u: 
-T).(\lambda (a0: A).(\lambda (_: (arity g c0 u (asucc g a0))).(\lambda (_: 
-((\forall (i: nat).(\forall (b: A).((aprem i (asucc g a0) b) \to (ex2_3 C T 
+b))))) (ex2_3 C T nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop 
+(plus (S i0) j) O d c0)))) (\lambda (d: C).(\lambda (u0: T).(\lambda (_: 
+nat).(arity g d u0 (asucc g b)))))) (\lambda (x0: C).(\lambda (x1: 
+T).(\lambda (x2: nat).(\lambda (H7: (drop (plus i0 x2) O x0 (CHead c0 (Bind 
+Abst) u))).(\lambda (H8: (arity g x0 x1 (asucc g b))).(ex2_3_intro C T nat 
+(\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus (S i0) j) O d 
+c0)))) (\lambda (d: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d u0 
+(asucc g b))))) x0 x1 x2 (drop_S Abst x0 c0 u (plus i0 x2) H7) H8)))))) 
+H6))))))) i H4))))))))))))) (\lambda (c0: C).(\lambda (u: T).(\lambda (a1: 
+A).(\lambda (_: (arity g c0 u a1)).(\lambda (_: ((\forall (i: nat).(\forall 
+(b: A).((aprem i a1 b) \to (ex2_3 C T nat (\lambda (d: C).(\lambda (_: 
+T).(\lambda (j: nat).(drop (plus i j) O d c0)))) (\lambda (d: C).(\lambda 
+(u0: T).(\lambda (_: nat).(arity g d u0 (asucc g b))))))))))).(\lambda (t0: 
+T).(\lambda (a2: A).(\lambda (_: (arity g c0 t0 (AHead a1 a2))).(\lambda (H3: 
+((\forall (i: nat).(\forall (b: A).((aprem i (AHead a1 a2) b) \to (ex2_3 C T 
 nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i j) O d 
 c0)))) (\lambda (d: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d u0 
-(asucc g b))))))))))).(\lambda (t0: T).(\lambda (_: (arity g c0 t0 
-a0)).(\lambda (H3: ((\forall (i: nat).(\forall (b: A).((aprem i a0 b) \to 
+(asucc g b))))))))))).(\lambda (i: nat).(\lambda (b: A).(\lambda (H4: (aprem 
+i a2 b)).(let H_y \def (H3 (S i) b) in (let H5 \def (H_y (aprem_succ a2 b i 
+H4 a1)) in (ex2_3_ind C T nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: 
+nat).(drop (S (plus i j)) O d c0)))) (\lambda (d: C).(\lambda (u0: 
+T).(\lambda (_: nat).(arity g d u0 (asucc g b))))) (ex2_3 C T nat (\lambda 
+(d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i j) O d c0)))) (\lambda 
+(d: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d u0 (asucc g b)))))) 
+(\lambda (x0: C).(\lambda (x1: T).(\lambda (x2: nat).(\lambda (H6: (drop (S 
+(plus i x2)) O x0 c0)).(\lambda (H7: (arity g x0 x1 (asucc g b))).(C_ind 
+(\lambda (c1: C).((drop (S (plus i x2)) O c1 c0) \to ((arity g c1 x1 (asucc g 
+b)) \to (ex2_3 C T nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: 
+nat).(drop (plus i j) O d c0)))) (\lambda (d: C).(\lambda (u0: T).(\lambda 
+(_: nat).(arity g d u0 (asucc g b))))))))) (\lambda (n: nat).(\lambda (H8: 
+(drop (S (plus i x2)) O (CSort n) c0)).(\lambda (_: (arity g (CSort n) x1 
+(asucc g b))).(and3_ind (eq C c0 (CSort n)) (eq nat (S (plus i x2)) O) (eq 
+nat O O) (ex2_3 C T nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: 
+nat).(drop (plus i j) O d c0)))) (\lambda (d: C).(\lambda (u0: T).(\lambda 
+(_: nat).(arity g d u0 (asucc g b)))))) (\lambda (_: (eq C c0 (CSort 
+n))).(\lambda (H11: (eq nat (S (plus i x2)) O)).(\lambda (_: (eq nat O 
+O)).(let H13 \def (eq_ind nat (S (plus i x2)) (\lambda (ee: nat).(match ee 
+with [O \Rightarrow False | (S _) \Rightarrow True])) I O H11) in (False_ind 
 (ex2_3 C T nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus 
 i j) O d c0)))) (\lambda (d: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d 
-u0 (asucc g b))))))))))).(\lambda (i: nat).(\lambda (b: A).(\lambda (H4: 
-(aprem i a0 b)).(let H_x \def (H3 i b H4) in (let H5 \def H_x in (let TMP_238 
-\def (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_237 \def 
-(plus i j) in (drop TMP_237 O d c0))))) in (let TMP_240 \def (\lambda (d: 
-C).(\lambda (u0: T).(\lambda (_: nat).(let TMP_239 \def (asucc g b) in (arity 
-g d u0 TMP_239))))) in (let TMP_242 \def (\lambda (d: C).(\lambda (_: 
-T).(\lambda (j: nat).(let TMP_241 \def (plus i j) in (drop TMP_241 O d 
-c0))))) in (let TMP_244 \def (\lambda (d: C).(\lambda (u0: T).(\lambda (_: 
-nat).(let TMP_243 \def (asucc g b) in (arity g d u0 TMP_243))))) in (let 
-TMP_245 \def (ex2_3 C T nat TMP_242 TMP_244) in (let TMP_250 \def (\lambda 
-(x0: C).(\lambda (x1: T).(\lambda (x2: nat).(\lambda (H6: (drop (plus i x2) O 
-x0 c0)).(\lambda (H7: (arity g x0 x1 (asucc g b))).(let TMP_247 \def (\lambda 
-(d: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_246 \def (plus i j) in 
-(drop TMP_246 O d c0))))) in (let TMP_249 \def (\lambda (d: C).(\lambda (u0: 
-T).(\lambda (_: nat).(let TMP_248 \def (asucc g b) in (arity g d u0 
-TMP_248))))) in (ex2_3_intro C T nat TMP_247 TMP_249 x0 x1 x2 H6 H7)))))))) 
-in (ex2_3_ind C T nat TMP_238 TMP_240 TMP_245 TMP_250 H5)))))))))))))))))))) 
-in (let TMP_278 \def (\lambda (c0: C).(\lambda (t0: T).(\lambda (a1: 
-A).(\lambda (_: (arity g c0 t0 a1)).(\lambda (H1: ((\forall (i: nat).(\forall 
-(b: A).((aprem i a1 b) \to (ex2_3 C T nat (\lambda (d: C).(\lambda (_: 
+u0 (asucc g b)))))) H13))))) (drop_gen_sort n (S (plus i x2)) O c0 H8))))) 
+(\lambda (d: C).(\lambda (IHd: (((drop (S (plus i x2)) O d c0) \to ((arity g 
+d x1 (asucc g b)) \to (ex2_3 C T nat (\lambda (d0: C).(\lambda (_: 
+T).(\lambda (j: nat).(drop (plus i j) O d0 c0)))) (\lambda (d0: C).(\lambda 
+(u0: T).(\lambda (_: nat).(arity g d0 u0 (asucc g b)))))))))).(\lambda (k: 
+K).(\lambda (t1: T).(\lambda (H8: (drop (S (plus i x2)) O (CHead d k t1) 
+c0)).(\lambda (H9: (arity g (CHead d k t1) x1 (asucc g b))).(K_ind (\lambda 
+(k0: K).((arity g (CHead d k0 t1) x1 (asucc g b)) \to ((drop (r k0 (plus i 
+x2)) O d c0) \to (ex2_3 C T nat (\lambda (d0: C).(\lambda (_: T).(\lambda (j: 
+nat).(drop (plus i j) O d0 c0)))) (\lambda (d0: C).(\lambda (u0: T).(\lambda 
+(_: nat).(arity g d0 u0 (asucc g b))))))))) (\lambda (b0: B).(\lambda (H10: 
+(arity g (CHead d (Bind b0) t1) x1 (asucc g b))).(\lambda (H11: (drop (r 
+(Bind b0) (plus i x2)) O d c0)).(ex2_3_intro C T nat (\lambda (d0: 
+C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i j) O d0 c0)))) (\lambda 
+(d0: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d0 u0 (asucc g b))))) 
+(CHead d (Bind b0) t1) x1 (S x2) (eq_ind nat (S (plus i x2)) (\lambda (n: 
+nat).(drop n O (CHead d (Bind b0) t1) c0)) (drop_drop (Bind b0) (plus i x2) d 
+c0 H11 t1) (plus i (S x2)) (plus_n_Sm i x2)) H10)))) (\lambda (f: F).(\lambda 
+(H10: (arity g (CHead d (Flat f) t1) x1 (asucc g b))).(\lambda (H11: (drop (r 
+(Flat f) (plus i x2)) O d c0)).(let H12 \def (IHd H11 (arity_cimp_conf g 
+(CHead d (Flat f) t1) x1 (asucc g b) H10 d (cimp_flat_sx f d t1))) in 
+(ex2_3_ind C T nat (\lambda (d0: C).(\lambda (_: T).(\lambda (j: nat).(drop 
+(plus i j) O d0 c0)))) (\lambda (d0: C).(\lambda (u0: T).(\lambda (_: 
+nat).(arity g d0 u0 (asucc g b))))) (ex2_3 C T nat (\lambda (d0: C).(\lambda 
+(_: T).(\lambda (j: nat).(drop (plus i j) O d0 c0)))) (\lambda (d0: 
+C).(\lambda (u0: T).(\lambda (_: nat).(arity g d0 u0 (asucc g b)))))) 
+(\lambda (x3: C).(\lambda (x4: T).(\lambda (x5: nat).(\lambda (H13: (drop 
+(plus i x5) O x3 c0)).(\lambda (H14: (arity g x3 x4 (asucc g 
+b))).(ex2_3_intro C T nat (\lambda (d0: C).(\lambda (_: T).(\lambda (j: 
+nat).(drop (plus i j) O d0 c0)))) (\lambda (d0: C).(\lambda (u0: T).(\lambda 
+(_: nat).(arity g d0 u0 (asucc g b))))) x3 x4 x5 H13 H14)))))) H12))))) k H9 
+(drop_gen_drop k d c0 t1 (plus i x2) H8)))))))) x0 H6 H7)))))) 
+H5))))))))))))))) (\lambda (c0: C).(\lambda (u: T).(\lambda (a0: A).(\lambda 
+(_: (arity g c0 u (asucc g a0))).(\lambda (_: ((\forall (i: nat).(\forall (b: 
+A).((aprem i (asucc g a0) b) \to (ex2_3 C T nat (\lambda (d: C).(\lambda (_: 
+T).(\lambda (j: nat).(drop (plus i j) O d c0)))) (\lambda (d: C).(\lambda 
+(u0: T).(\lambda (_: nat).(arity g d u0 (asucc g b))))))))))).(\lambda (t0: 
+T).(\lambda (_: (arity g c0 t0 a0)).(\lambda (H3: ((\forall (i: nat).(\forall 
+(b: A).((aprem i a0 b) \to (ex2_3 C T nat (\lambda (d: C).(\lambda (_: 
+T).(\lambda (j: nat).(drop (plus i j) O d c0)))) (\lambda (d: C).(\lambda 
+(u0: T).(\lambda (_: nat).(arity g d u0 (asucc g b))))))))))).(\lambda (i: 
+nat).(\lambda (b: A).(\lambda (H4: (aprem i a0 b)).(let H_x \def (H3 i b H4) 
+in (let H5 \def H_x in (ex2_3_ind C T nat (\lambda (d: C).(\lambda (_: 
+T).(\lambda (j: nat).(drop (plus i j) O d c0)))) (\lambda (d: C).(\lambda 
+(u0: T).(\lambda (_: nat).(arity g d u0 (asucc g b))))) (ex2_3 C T nat 
+(\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i j) O d c0)))) 
+(\lambda (d: C).(\lambda (u0: T).(\lambda (_: nat).(arity g d u0 (asucc g 
+b)))))) (\lambda (x0: C).(\lambda (x1: T).(\lambda (x2: nat).(\lambda (H6: 
+(drop (plus i x2) O x0 c0)).(\lambda (H7: (arity g x0 x1 (asucc g 
+b))).(ex2_3_intro C T nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: 
+nat).(drop (plus i j) O d c0)))) (\lambda (d: C).(\lambda (u0: T).(\lambda 
+(_: nat).(arity g d u0 (asucc g b))))) x0 x1 x2 H6 H7)))))) H5)))))))))))))) 
+(\lambda (c0: C).(\lambda (t0: T).(\lambda (a1: A).(\lambda (_: (arity g c0 
+t0 a1)).(\lambda (H1: ((\forall (i: nat).(\forall (b: A).((aprem i a1 b) \to 
+(ex2_3 C T nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus 
+i j) O d c0)))) (\lambda (d: C).(\lambda (u: T).(\lambda (_: nat).(arity g d 
+u (asucc g b))))))))))).(\lambda (a2: A).(\lambda (H2: (leq g a1 
+a2)).(\lambda (i: nat).(\lambda (b: A).(\lambda (H3: (aprem i a2 b)).(let H_x 
+\def (aprem_repl g a1 a2 H2 i b H3) in (let H4 \def H_x in (ex2_ind A 
+(\lambda (b1: A).(leq g b1 b)) (\lambda (b1: A).(aprem i a1 b1)) (ex2_3 C T 
+nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i j) O d 
+c0)))) (\lambda (d: C).(\lambda (u: T).(\lambda (_: nat).(arity g d u (asucc 
+g b)))))) (\lambda (x: A).(\lambda (H5: (leq g x b)).(\lambda (H6: (aprem i 
+a1 x)).(let H_x0 \def (H1 i x H6) in (let H7 \def H_x0 in (ex2_3_ind C T nat 
+(\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop (plus i j) O d c0)))) 
+(\lambda (d: C).(\lambda (u: T).(\lambda (_: nat).(arity g d u (asucc g 
+x))))) (ex2_3 C T nat (\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(drop 
+(plus i j) O d c0)))) (\lambda (d: C).(\lambda (u: T).(\lambda (_: 
+nat).(arity g d u (asucc g b)))))) (\lambda (x0: C).(\lambda (x1: T).(\lambda 
+(x2: nat).(\lambda (H8: (drop (plus i x2) O x0 c0)).(\lambda (H9: (arity g x0 
+x1 (asucc g x))).(ex2_3_intro C T nat (\lambda (d: C).(\lambda (_: 
 T).(\lambda (j: nat).(drop (plus i j) O d c0)))) (\lambda (d: C).(\lambda (u: 
-T).(\lambda (_: nat).(arity g d u (asucc g b))))))))))).(\lambda (a2: 
-A).(\lambda (H2: (leq g a1 a2)).(\lambda (i: nat).(\lambda (b: A).(\lambda 
-(H3: (aprem i a2 b)).(let H_x \def (aprem_repl g a1 a2 H2 i b H3) in (let H4 
-\def H_x in (let TMP_252 \def (\lambda (b1: A).(leq g b1 b)) in (let TMP_253 
-\def (\lambda (b1: A).(aprem i a1 b1)) in (let TMP_255 \def (\lambda (d: 
-C).(\lambda (_: T).(\lambda (j: nat).(let TMP_254 \def (plus i j) in (drop 
-TMP_254 O d c0))))) in (let TMP_257 \def (\lambda (d: C).(\lambda (u: 
-T).(\lambda (_: nat).(let TMP_256 \def (asucc g b) in (arity g d u 
-TMP_256))))) in (let TMP_258 \def (ex2_3 C T nat TMP_255 TMP_257) in (let 
-TMP_277 \def (\lambda (x: A).(\lambda (H5: (leq g x b)).(\lambda (H6: (aprem 
-i a1 x)).(let H_x0 \def (H1 i x H6) in (let H7 \def H_x0 in (let TMP_260 \def 
-(\lambda (d: C).(\lambda (_: T).(\lambda (j: nat).(let TMP_259 \def (plus i 
-j) in (drop TMP_259 O d c0))))) in (let TMP_262 \def (\lambda (d: C).(\lambda 
-(u: T).(\lambda (_: nat).(let TMP_261 \def (asucc g x) in (arity g d u 
-TMP_261))))) in (let TMP_264 \def (\lambda (d: C).(\lambda (_: T).(\lambda 
-(j: nat).(let TMP_263 \def (plus i j) in (drop TMP_263 O d c0))))) in (let 
-TMP_266 \def (\lambda (d: C).(\lambda (u: T).(\lambda (_: nat).(let TMP_265 
-\def (asucc g b) in (arity g d u TMP_265))))) in (let TMP_267 \def (ex2_3 C T 
-nat TMP_264 TMP_266) in (let TMP_276 \def (\lambda (x0: C).(\lambda (x1: 
-T).(\lambda (x2: nat).(\lambda (H8: (drop (plus i x2) O x0 c0)).(\lambda (H9: 
-(arity g x0 x1 (asucc g x))).(let TMP_269 \def (\lambda (d: C).(\lambda (_: 
-T).(\lambda (j: nat).(let TMP_268 \def (plus i j) in (drop TMP_268 O d 
-c0))))) in (let TMP_271 \def (\lambda (d: C).(\lambda (u: T).(\lambda (_: 
-nat).(let TMP_270 \def (asucc g b) in (arity g d u TMP_270))))) in (let 
-TMP_272 \def (asucc g x) in (let TMP_273 \def (asucc g b) in (let TMP_274 
-\def (asucc_repl g x b H5) in (let TMP_275 \def (arity_repl g x0 x1 TMP_272 
-H9 TMP_273 TMP_274) in (ex2_3_intro C T nat TMP_269 TMP_271 x0 x1 x2 H8 
-TMP_275)))))))))))) in (ex2_3_ind C T nat TMP_260 TMP_262 TMP_267 TMP_276 
-H7)))))))))))) in (ex2_ind A TMP_252 TMP_253 TMP_258 TMP_277 
-H4))))))))))))))))))) in (arity_ind g TMP_5 TMP_11 TMP_45 TMP_80 TMP_106 
-TMP_145 TMP_236 TMP_251 TMP_278 c t a H)))))))))))))).
+T).(\lambda (_: nat).(arity g d u (asucc g b))))) x0 x1 x2 H8 (arity_repl g 
+x0 x1 (asucc g x) H9 (asucc g b) (asucc_repl g x b H5)))))))) H7)))))) 
+H4))))))))))))) c t a H))))).
 
index dfa771c6b3861ff5e86b1e28fa6c612037ea6c09..797f16001d29e2a23c0dd80fe80378317a0530f6 100644 (file)
@@ -23,113 +23,76 @@ theorem arity_cimp_conf:
 t a) \to (\forall (c2: C).((cimp c1 c2) \to (arity g c2 t a)))))))
 \def
  \lambda (g: G).(\lambda (c1: C).(\lambda (t: T).(\lambda (a: A).(\lambda (H: 
-(arity g c1 t a)).(let TMP_1 \def (\lambda (c: C).(\lambda (t0: T).(\lambda 
-(a0: A).(\forall (c2: C).((cimp c c2) \to (arity g c2 t0 a0)))))) in (let 
-TMP_2 \def (\lambda (c: C).(\lambda (n: nat).(\lambda (c2: C).(\lambda (_: 
-(cimp c c2)).(arity_sort g c2 n))))) in (let TMP_41 \def (\lambda (c: 
-C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: nat).(\lambda (H0: (getl i c 
-(CHead d (Bind Abbr) u))).(\lambda (a0: A).(\lambda (_: (arity g d u 
-a0)).(\lambda (H2: ((\forall (c2: C).((cimp d c2) \to (arity g c2 u 
-a0))))).(\lambda (c2: C).(\lambda (H3: (cimp c c2)).(let H_x \def (H3 Abbr d 
-u i H0) in (let H4 \def H_x in (let TMP_5 \def (\lambda (d2: C).(let TMP_3 
-\def (Bind Abbr) in (let TMP_4 \def (CHead d2 TMP_3 u) in (getl i c2 
-TMP_4)))) in (let TMP_6 \def (TLRef i) in (let TMP_7 \def (arity g c2 TMP_6 
-a0) in (let TMP_40 \def (\lambda (x: C).(\lambda (H5: (getl i c2 (CHead x 
-(Bind Abbr) u))).(let H_x0 \def (cimp_getl_conf c c2 H3 Abbr d u i H0) in 
-(let H6 \def H_x0 in (let TMP_8 \def (\lambda (d2: C).(cimp d d2)) in (let 
-TMP_11 \def (\lambda (d2: C).(let TMP_9 \def (Bind Abbr) in (let TMP_10 \def 
-(CHead d2 TMP_9 u) in (getl i c2 TMP_10)))) in (let TMP_12 \def (TLRef i) in 
-(let TMP_13 \def (arity g c2 TMP_12 a0) in (let TMP_39 \def (\lambda (x0: 
-C).(\lambda (H7: (cimp d x0)).(\lambda (H8: (getl i c2 (CHead x0 (Bind Abbr) 
-u))).(let TMP_14 \def (Bind Abbr) in (let TMP_15 \def (CHead x TMP_14 u) in 
-(let TMP_16 \def (\lambda (c0: C).(getl i c2 c0)) in (let TMP_17 \def (Bind 
-Abbr) in (let TMP_18 \def (CHead x0 TMP_17 u) in (let TMP_19 \def (Bind Abbr) 
-in (let TMP_20 \def (CHead x TMP_19 u) in (let TMP_21 \def (Bind Abbr) in 
-(let TMP_22 \def (CHead x0 TMP_21 u) in (let TMP_23 \def (getl_mono c2 TMP_20 
-i H5 TMP_22 H8) in (let H9 \def (eq_ind C TMP_15 TMP_16 H5 TMP_18 TMP_23) in 
-(let TMP_24 \def (\lambda (e: C).(match e with [(CSort _) \Rightarrow x | 
-(CHead c0 _ _) \Rightarrow c0])) in (let TMP_25 \def (Bind Abbr) in (let 
-TMP_26 \def (CHead x TMP_25 u) in (let TMP_27 \def (Bind Abbr) in (let TMP_28 
-\def (CHead x0 TMP_27 u) in (let TMP_29 \def (Bind Abbr) in (let TMP_30 \def 
-(CHead x TMP_29 u) in (let TMP_31 \def (Bind Abbr) in (let TMP_32 \def (CHead 
-x0 TMP_31 u) in (let TMP_33 \def (getl_mono c2 TMP_30 i H5 TMP_32 H8) in (let 
-H10 \def (f_equal C C TMP_24 TMP_26 TMP_28 TMP_33) in (let TMP_36 \def 
-(\lambda (c0: C).(let TMP_34 \def (Bind Abbr) in (let TMP_35 \def (CHead c0 
-TMP_34 u) in (getl i c2 TMP_35)))) in (let H11 \def (eq_ind_r C x0 TMP_36 H9 
-x H10) in (let TMP_37 \def (\lambda (c0: C).(cimp d c0)) in (let H12 \def 
-(eq_ind_r C x0 TMP_37 H7 x H10) in (let TMP_38 \def (H2 x H12) in (arity_abbr 
-g c2 x u i H11 a0 TMP_38))))))))))))))))))))))))))))))) in (ex2_ind C TMP_8 
-TMP_11 TMP_13 TMP_39 H6)))))))))) in (ex_ind C TMP_5 TMP_7 TMP_40 
-H4))))))))))))))))) in (let TMP_80 \def (\lambda (c: C).(\lambda (d: 
+(arity g c1 t a)).(arity_ind g (\lambda (c: C).(\lambda (t0: T).(\lambda (a0: 
+A).(\forall (c2: C).((cimp c c2) \to (arity g c2 t0 a0)))))) (\lambda (c: 
+C).(\lambda (n: nat).(\lambda (c2: C).(\lambda (_: (cimp c c2)).(arity_sort g 
+c2 n))))) (\lambda (c: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: 
+nat).(\lambda (H0: (getl i c (CHead d (Bind Abbr) u))).(\lambda (a0: 
+A).(\lambda (_: (arity g d u a0)).(\lambda (H2: ((\forall (c2: C).((cimp d 
+c2) \to (arity g c2 u a0))))).(\lambda (c2: C).(\lambda (H3: (cimp c 
+c2)).(let H_x \def (H3 Abbr d u i H0) in (let H4 \def H_x in (ex_ind C 
+(\lambda (d2: C).(getl i c2 (CHead d2 (Bind Abbr) u))) (arity g c2 (TLRef i) 
+a0) (\lambda (x: C).(\lambda (H5: (getl i c2 (CHead x (Bind Abbr) u))).(let 
+H_x0 \def (cimp_getl_conf c c2 H3 Abbr d u i H0) in (let H6 \def H_x0 in 
+(ex2_ind C (\lambda (d2: C).(cimp d d2)) (\lambda (d2: C).(getl i c2 (CHead 
+d2 (Bind Abbr) u))) (arity g c2 (TLRef i) a0) (\lambda (x0: C).(\lambda (H7: 
+(cimp d x0)).(\lambda (H8: (getl i c2 (CHead x0 (Bind Abbr) u))).(let H9 \def 
+(eq_ind C (CHead x (Bind Abbr) u) (\lambda (c0: C).(getl i c2 c0)) H5 (CHead 
+x0 (Bind Abbr) u) (getl_mono c2 (CHead x (Bind Abbr) u) i H5 (CHead x0 (Bind 
+Abbr) u) H8)) in (let H10 \def (f_equal C C (\lambda (e: C).(match e with 
+[(CSort _) \Rightarrow x | (CHead c0 _ _) \Rightarrow c0])) (CHead x (Bind 
+Abbr) u) (CHead x0 (Bind Abbr) u) (getl_mono c2 (CHead x (Bind Abbr) u) i H5 
+(CHead x0 (Bind Abbr) u) H8)) in (let H11 \def (eq_ind_r C x0 (\lambda (c0: 
+C).(getl i c2 (CHead c0 (Bind Abbr) u))) H9 x H10) in (let H12 \def (eq_ind_r 
+C x0 (\lambda (c0: C).(cimp d c0)) H7 x H10) in (arity_abbr g c2 x u i H11 a0 
+(H2 x H12))))))))) H6))))) H4))))))))))))) (\lambda (c: C).(\lambda (d: 
 C).(\lambda (u: T).(\lambda (i: nat).(\lambda (H0: (getl i c (CHead d (Bind 
 Abst) u))).(\lambda (a0: A).(\lambda (_: (arity g d u (asucc g a0))).(\lambda 
 (H2: ((\forall (c2: C).((cimp d c2) \to (arity g c2 u (asucc g 
 a0)))))).(\lambda (c2: C).(\lambda (H3: (cimp c c2)).(let H_x \def (H3 Abst d 
-u i H0) in (let H4 \def H_x in (let TMP_44 \def (\lambda (d2: C).(let TMP_42 
-\def (Bind Abst) in (let TMP_43 \def (CHead d2 TMP_42 u) in (getl i c2 
-TMP_43)))) in (let TMP_45 \def (TLRef i) in (let TMP_46 \def (arity g c2 
-TMP_45 a0) in (let TMP_79 \def (\lambda (x: C).(\lambda (H5: (getl i c2 
-(CHead x (Bind Abst) u))).(let H_x0 \def (cimp_getl_conf c c2 H3 Abst d u i 
-H0) in (let H6 \def H_x0 in (let TMP_47 \def (\lambda (d2: C).(cimp d d2)) in 
-(let TMP_50 \def (\lambda (d2: C).(let TMP_48 \def (Bind Abst) in (let TMP_49 
-\def (CHead d2 TMP_48 u) in (getl i c2 TMP_49)))) in (let TMP_51 \def (TLRef 
-i) in (let TMP_52 \def (arity g c2 TMP_51 a0) in (let TMP_78 \def (\lambda 
-(x0: C).(\lambda (H7: (cimp d x0)).(\lambda (H8: (getl i c2 (CHead x0 (Bind 
-Abst) u))).(let TMP_53 \def (Bind Abst) in (let TMP_54 \def (CHead x TMP_53 
-u) in (let TMP_55 \def (\lambda (c0: C).(getl i c2 c0)) in (let TMP_56 \def 
-(Bind Abst) in (let TMP_57 \def (CHead x0 TMP_56 u) in (let TMP_58 \def (Bind 
-Abst) in (let TMP_59 \def (CHead x TMP_58 u) in (let TMP_60 \def (Bind Abst) 
-in (let TMP_61 \def (CHead x0 TMP_60 u) in (let TMP_62 \def (getl_mono c2 
-TMP_59 i H5 TMP_61 H8) in (let H9 \def (eq_ind C TMP_54 TMP_55 H5 TMP_57 
-TMP_62) in (let TMP_63 \def (\lambda (e: C).(match e with [(CSort _) 
-\Rightarrow x | (CHead c0 _ _) \Rightarrow c0])) in (let TMP_64 \def (Bind 
-Abst) in (let TMP_65 \def (CHead x TMP_64 u) in (let TMP_66 \def (Bind Abst) 
-in (let TMP_67 \def (CHead x0 TMP_66 u) in (let TMP_68 \def (Bind Abst) in 
-(let TMP_69 \def (CHead x TMP_68 u) in (let TMP_70 \def (Bind Abst) in (let 
-TMP_71 \def (CHead x0 TMP_70 u) in (let TMP_72 \def (getl_mono c2 TMP_69 i H5 
-TMP_71 H8) in (let H10 \def (f_equal C C TMP_63 TMP_65 TMP_67 TMP_72) in (let 
-TMP_75 \def (\lambda (c0: C).(let TMP_73 \def (Bind Abst) in (let TMP_74 \def 
-(CHead c0 TMP_73 u) in (getl i c2 TMP_74)))) in (let H11 \def (eq_ind_r C x0 
-TMP_75 H9 x H10) in (let TMP_76 \def (\lambda (c0: C).(cimp d c0)) in (let 
-H12 \def (eq_ind_r C x0 TMP_76 H7 x H10) in (let TMP_77 \def (H2 x H12) in 
-(arity_abst g c2 x u i H11 a0 TMP_77))))))))))))))))))))))))))))))) in 
-(ex2_ind C TMP_47 TMP_50 TMP_52 TMP_78 H6)))))))))) in (ex_ind C TMP_44 
-TMP_46 TMP_79 H4))))))))))))))))) in (let TMP_86 \def (\lambda (b: 
-B).(\lambda (H0: (not (eq B b Abst))).(\lambda (c: C).(\lambda (u: 
-T).(\lambda (a1: A).(\lambda (_: (arity g c u a1)).(\lambda (H2: ((\forall 
+u i H0) in (let H4 \def H_x in (ex_ind C (\lambda (d2: C).(getl i c2 (CHead 
+d2 (Bind Abst) u))) (arity g c2 (TLRef i) a0) (\lambda (x: C).(\lambda (H5: 
+(getl i c2 (CHead x (Bind Abst) u))).(let H_x0 \def (cimp_getl_conf c c2 H3 
+Abst d u i H0) in (let H6 \def H_x0 in (ex2_ind C (\lambda (d2: C).(cimp d 
+d2)) (\lambda (d2: C).(getl i c2 (CHead d2 (Bind Abst) u))) (arity g c2 
+(TLRef i) a0) (\lambda (x0: C).(\lambda (H7: (cimp d x0)).(\lambda (H8: (getl 
+i c2 (CHead x0 (Bind Abst) u))).(let H9 \def (eq_ind C (CHead x (Bind Abst) 
+u) (\lambda (c0: C).(getl i c2 c0)) H5 (CHead x0 (Bind Abst) u) (getl_mono c2 
+(CHead x (Bind Abst) u) i H5 (CHead x0 (Bind Abst) u) H8)) in (let H10 \def 
+(f_equal C C (\lambda (e: C).(match e with [(CSort _) \Rightarrow x | (CHead 
+c0 _ _) \Rightarrow c0])) (CHead x (Bind Abst) u) (CHead x0 (Bind Abst) u) 
+(getl_mono c2 (CHead x (Bind Abst) u) i H5 (CHead x0 (Bind Abst) u) H8)) in 
+(let H11 \def (eq_ind_r C x0 (\lambda (c0: C).(getl i c2 (CHead c0 (Bind 
+Abst) u))) H9 x H10) in (let H12 \def (eq_ind_r C x0 (\lambda (c0: C).(cimp d 
+c0)) H7 x H10) in (arity_abst g c2 x u i H11 a0 (H2 x H12))))))))) H6))))) 
+H4))))))))))))) (\lambda (b: B).(\lambda (H0: (not (eq B b Abst))).(\lambda 
+(c: C).(\lambda (u: T).(\lambda (a1: A).(\lambda (_: (arity g c u 
+a1)).(\lambda (H2: ((\forall (c2: C).((cimp c c2) \to (arity g c2 u 
+a1))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda (_: (arity g (CHead c 
+(Bind b) u) t0 a2)).(\lambda (H4: ((\forall (c2: C).((cimp (CHead c (Bind b) 
+u) c2) \to (arity g c2 t0 a2))))).(\lambda (c2: C).(\lambda (H5: (cimp c 
+c2)).(arity_bind g b H0 c2 u a1 (H2 c2 H5) t0 a2 (H4 (CHead c2 (Bind b) u) 
+(cimp_bind c c2 H5 b u)))))))))))))))) (\lambda (c: C).(\lambda (u: 
+T).(\lambda (a1: A).(\lambda (_: (arity g c u (asucc g a1))).(\lambda (H1: 
+((\forall (c2: C).((cimp c c2) \to (arity g c2 u (asucc g a1)))))).(\lambda 
+(t0: T).(\lambda (a2: A).(\lambda (_: (arity g (CHead c (Bind Abst) u) t0 
+a2)).(\lambda (H3: ((\forall (c2: C).((cimp (CHead c (Bind Abst) u) c2) \to 
+(arity g c2 t0 a2))))).(\lambda (c2: C).(\lambda (H4: (cimp c 
+c2)).(arity_head g c2 u a1 (H1 c2 H4) t0 a2 (H3 (CHead c2 (Bind Abst) u) 
+(cimp_bind c c2 H4 Abst u)))))))))))))) (\lambda (c: C).(\lambda (u: 
+T).(\lambda (a1: A).(\lambda (_: (arity g c u a1)).(\lambda (H1: ((\forall 
 (c2: C).((cimp c c2) \to (arity g c2 u a1))))).(\lambda (t0: T).(\lambda (a2: 
-A).(\lambda (_: (arity g (CHead c (Bind b) u) t0 a2)).(\lambda (H4: ((\forall 
-(c2: C).((cimp (CHead c (Bind b) u) c2) \to (arity g c2 t0 a2))))).(\lambda 
-(c2: C).(\lambda (H5: (cimp c c2)).(let TMP_81 \def (H2 c2 H5) in (let TMP_82 
-\def (Bind b) in (let TMP_83 \def (CHead c2 TMP_82 u) in (let TMP_84 \def 
-(cimp_bind c c2 H5 b u) in (let TMP_85 \def (H4 TMP_83 TMP_84) in (arity_bind 
-g b H0 c2 u a1 TMP_81 t0 a2 TMP_85))))))))))))))))))) in (let TMP_92 \def 
-(\lambda (c: C).(\lambda (u: T).(\lambda (a1: A).(\lambda (_: (arity g c u 
-(asucc g a1))).(\lambda (H1: ((\forall (c2: C).((cimp c c2) \to (arity g c2 u 
-(asucc g a1)))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda (_: (arity g 
-(CHead c (Bind Abst) u) t0 a2)).(\lambda (H3: ((\forall (c2: C).((cimp (CHead 
-c (Bind Abst) u) c2) \to (arity g c2 t0 a2))))).(\lambda (c2: C).(\lambda 
-(H4: (cimp c c2)).(let TMP_87 \def (H1 c2 H4) in (let TMP_88 \def (Bind Abst) 
-in (let TMP_89 \def (CHead c2 TMP_88 u) in (let TMP_90 \def (cimp_bind c c2 
-H4 Abst u) in (let TMP_91 \def (H3 TMP_89 TMP_90) in (arity_head g c2 u a1 
-TMP_87 t0 a2 TMP_91))))))))))))))))) in (let TMP_95 \def (\lambda (c: 
-C).(\lambda (u: T).(\lambda (a1: A).(\lambda (_: (arity g c u a1)).(\lambda 
-(H1: ((\forall (c2: C).((cimp c c2) \to (arity g c2 u a1))))).(\lambda (t0: 
-T).(\lambda (a2: A).(\lambda (_: (arity g c t0 (AHead a1 a2))).(\lambda (H3: 
-((\forall (c2: C).((cimp c c2) \to (arity g c2 t0 (AHead a1 a2)))))).(\lambda 
-(c2: C).(\lambda (H4: (cimp c c2)).(let TMP_93 \def (H1 c2 H4) in (let TMP_94 
-\def (H3 c2 H4) in (arity_appl g c2 u a1 TMP_93 t0 a2 TMP_94)))))))))))))) in 
-(let TMP_98 \def (\lambda (c: C).(\lambda (u: T).(\lambda (a0: A).(\lambda 
-(_: (arity g c u (asucc g a0))).(\lambda (H1: ((\forall (c2: C).((cimp c c2) 
-\to (arity g c2 u (asucc g a0)))))).(\lambda (t0: T).(\lambda (_: (arity g c 
-t0 a0)).(\lambda (H3: ((\forall (c2: C).((cimp c c2) \to (arity g c2 t0 
-a0))))).(\lambda (c2: C).(\lambda (H4: (cimp c c2)).(let TMP_96 \def (H1 c2 
-H4) in (let TMP_97 \def (H3 c2 H4) in (arity_cast g c2 u a0 TMP_96 t0 
-TMP_97))))))))))))) in (let TMP_100 \def (\lambda (c: C).(\lambda (t0: 
-T).(\lambda (a1: A).(\lambda (_: (arity g c t0 a1)).(\lambda (H1: ((\forall 
-(c2: C).((cimp c c2) \to (arity g c2 t0 a1))))).(\lambda (a2: A).(\lambda 
-(H2: (leq g a1 a2)).(\lambda (c2: C).(\lambda (H3: (cimp c c2)).(let TMP_99 
-\def (H1 c2 H3) in (arity_repl g c2 t0 a1 TMP_99 a2 H2))))))))))) in 
-(arity_ind g TMP_1 TMP_2 TMP_41 TMP_80 TMP_86 TMP_92 TMP_95 TMP_98 TMP_100 c1 
-t a H)))))))))))))).
+A).(\lambda (_: (arity g c t0 (AHead a1 a2))).(\lambda (H3: ((\forall (c2: 
+C).((cimp c c2) \to (arity g c2 t0 (AHead a1 a2)))))).(\lambda (c2: 
+C).(\lambda (H4: (cimp c c2)).(arity_appl g c2 u a1 (H1 c2 H4) t0 a2 (H3 c2 
+H4))))))))))))) (\lambda (c: C).(\lambda (u: T).(\lambda (a0: A).(\lambda (_: 
+(arity g c u (asucc g a0))).(\lambda (H1: ((\forall (c2: C).((cimp c c2) \to 
+(arity g c2 u (asucc g a0)))))).(\lambda (t0: T).(\lambda (_: (arity g c t0 
+a0)).(\lambda (H3: ((\forall (c2: C).((cimp c c2) \to (arity g c2 t0 
+a0))))).(\lambda (c2: C).(\lambda (H4: (cimp c c2)).(arity_cast g c2 u a0 (H1 
+c2 H4) t0 (H3 c2 H4)))))))))))) (\lambda (c: C).(\lambda (t0: T).(\lambda 
+(a1: A).(\lambda (_: (arity g c t0 a1)).(\lambda (H1: ((\forall (c2: 
+C).((cimp c c2) \to (arity g c2 t0 a1))))).(\lambda (a2: A).(\lambda (H2: 
+(leq g a1 a2)).(\lambda (c2: C).(\lambda (H3: (cimp c c2)).(arity_repl g c2 
+t0 a1 (H1 c2 H3) a2 H2)))))))))) c1 t a H))))).
 
index 5d668d2c2d650d2a6e48a497a631ff226e96348f..72dd176afbab294fa963a2fbda32e94a4ae708f5 100644 (file)
@@ -23,23 +23,19 @@ theorem arity_lift1:
 PList).(\forall (c1: C).(\forall (t: T).((drop1 hds c1 c2) \to ((arity g c2 t 
 a) \to (arity g c1 (lift1 hds t) a))))))))
 \def
- \lambda (g: G).(\lambda (a: A).(\lambda (c2: C).(\lambda (hds: PList).(let 
-TMP_2 \def (\lambda (p: PList).(\forall (c1: C).(\forall (t: T).((drop1 p c1 
-c2) \to ((arity g c2 t a) \to (let TMP_1 \def (lift1 p t) in (arity g c1 
-TMP_1 a))))))) in (let TMP_4 \def (\lambda (c1: C).(\lambda (t: T).(\lambda 
-(H: (drop1 PNil c1 c2)).(\lambda (H0: (arity g c2 t a)).(let H_y \def 
-(drop1_gen_pnil c1 c2 H) in (let TMP_3 \def (\lambda (c: C).(arity g c t a)) 
-in (eq_ind_r C c2 TMP_3 H0 c1 H_y))))))) in (let TMP_13 \def (\lambda (n: 
+ \lambda (g: G).(\lambda (a: A).(\lambda (c2: C).(\lambda (hds: 
+PList).(PList_ind (\lambda (p: PList).(\forall (c1: C).(\forall (t: 
+T).((drop1 p c1 c2) \to ((arity g c2 t a) \to (arity g c1 (lift1 p t) a)))))) 
+(\lambda (c1: C).(\lambda (t: T).(\lambda (H: (drop1 PNil c1 c2)).(\lambda 
+(H0: (arity g c2 t a)).(let H_y \def (drop1_gen_pnil c1 c2 H) in (eq_ind_r C 
+c2 (\lambda (c: C).(arity g c t a)) H0 c1 H_y)))))) (\lambda (n: 
 nat).(\lambda (n0: nat).(\lambda (p: PList).(\lambda (H: ((\forall (c1: 
 C).(\forall (t: T).((drop1 p c1 c2) \to ((arity g c2 t a) \to (arity g c1 
 (lift1 p t) a))))))).(\lambda (c1: C).(\lambda (t: T).(\lambda (H0: (drop1 
 (PCons n n0 p) c1 c2)).(\lambda (H1: (arity g c2 t a)).(let H_x \def 
-(drop1_gen_pcons c1 c2 p n n0 H0) in (let H2 \def H_x in (let TMP_5 \def 
-(\lambda (c3: C).(drop n n0 c1 c3)) in (let TMP_6 \def (\lambda (c3: 
-C).(drop1 p c3 c2)) in (let TMP_7 \def (lift1 p t) in (let TMP_8 \def (lift n 
-n0 TMP_7) in (let TMP_9 \def (arity g c1 TMP_8 a) in (let TMP_12 \def 
-(\lambda (x: C).(\lambda (H3: (drop n n0 c1 x)).(\lambda (H4: (drop1 p x 
-c2)).(let TMP_10 \def (lift1 p t) in (let TMP_11 \def (H x t H4 H1) in 
-(arity_lift g x TMP_10 a TMP_11 c1 n n0 H3)))))) in (ex2_ind C TMP_5 TMP_6 
-TMP_9 TMP_12 H2))))))))))))))))) in (PList_ind TMP_2 TMP_4 TMP_13 hds))))))).
+(drop1_gen_pcons c1 c2 p n n0 H0) in (let H2 \def H_x in (ex2_ind C (\lambda 
+(c3: C).(drop n n0 c1 c3)) (\lambda (c3: C).(drop1 p c3 c2)) (arity g c1 
+(lift n n0 (lift1 p t)) a) (\lambda (x: C).(\lambda (H3: (drop n n0 c1 
+x)).(\lambda (H4: (drop1 p x c2)).(arity_lift g x (lift1 p t) a (H x t H4 H1) 
+c1 n n0 H3)))) H2))))))))))) hds)))).
 
index 971f8d47ef999f41af94b2e3fcffa792ba44d142..f681969a25d7c00319972bba5ad34262f1746766 100644 (file)
@@ -20,29 +20,18 @@ theorem node_inh:
  \forall (g: G).(\forall (n: nat).(\forall (k: nat).(ex_2 C T (\lambda (c: 
 C).(\lambda (t: T).(arity g c t (ASort k n)))))))
 \def
- \lambda (g: G).(\lambda (n: nat).(\lambda (k: nat).(let TMP_3 \def (\lambda 
-(n0: nat).(let TMP_2 \def (\lambda (c: C).(\lambda (t: T).(let TMP_1 \def 
-(ASort n0 n) in (arity g c t TMP_1)))) in (ex_2 C T TMP_2))) in (let TMP_5 
-\def (\lambda (c: C).(\lambda (t: T).(let TMP_4 \def (ASort O n) in (arity g 
-c t TMP_4)))) in (let TMP_6 \def (CSort O) in (let TMP_7 \def (TSort n) in 
-(let TMP_8 \def (CSort O) in (let TMP_9 \def (arity_sort g TMP_8 n) in (let 
-TMP_10 \def (ex_2_intro C T TMP_5 TMP_6 TMP_7 TMP_9) in (let TMP_30 \def 
-(\lambda (n0: nat).(\lambda (H: (ex_2 C T (\lambda (c: C).(\lambda (t: 
-T).(arity g c t (ASort n0 n)))))).(let H0 \def H in (let TMP_12 \def (\lambda 
-(c: C).(\lambda (t: T).(let TMP_11 \def (ASort n0 n) in (arity g c t 
-TMP_11)))) in (let TMP_15 \def (\lambda (c: C).(\lambda (t: T).(let TMP_13 
-\def (S n0) in (let TMP_14 \def (ASort TMP_13 n) in (arity g c t TMP_14))))) 
-in (let TMP_16 \def (ex_2 C T TMP_15) in (let TMP_29 \def (\lambda (x0: 
-C).(\lambda (x1: T).(\lambda (H1: (arity g x0 x1 (ASort n0 n))).(let TMP_19 
-\def (\lambda (c: C).(\lambda (t: T).(let TMP_17 \def (S n0) in (let TMP_18 
-\def (ASort TMP_17 n) in (arity g c t TMP_18))))) in (let TMP_20 \def (Bind 
-Abst) in (let TMP_21 \def (CHead x0 TMP_20 x1) in (let TMP_22 \def (TLRef O) 
-in (let TMP_23 \def (Bind Abst) in (let TMP_24 \def (CHead x0 TMP_23 x1) in 
-(let TMP_25 \def (getl_refl Abst x0 x1) in (let TMP_26 \def (S n0) in (let 
-TMP_27 \def (ASort TMP_26 n) in (let TMP_28 \def (arity_abst g TMP_24 x0 x1 O 
-TMP_25 TMP_27 H1) in (ex_2_intro C T TMP_19 TMP_21 TMP_22 
-TMP_28)))))))))))))) in (ex_2_ind C T TMP_12 TMP_16 TMP_29 H0)))))))) in 
-(nat_ind TMP_3 TMP_10 TMP_30 k))))))))))).
+ \lambda (g: G).(\lambda (n: nat).(\lambda (k: nat).(nat_ind (\lambda (n0: 
+nat).(ex_2 C T (\lambda (c: C).(\lambda (t: T).(arity g c t (ASort n0 n)))))) 
+(ex_2_intro C T (\lambda (c: C).(\lambda (t: T).(arity g c t (ASort O n)))) 
+(CSort O) (TSort n) (arity_sort g (CSort O) n)) (\lambda (n0: nat).(\lambda 
+(H: (ex_2 C T (\lambda (c: C).(\lambda (t: T).(arity g c t (ASort n0 
+n)))))).(let H0 \def H in (ex_2_ind C T (\lambda (c: C).(\lambda (t: 
+T).(arity g c t (ASort n0 n)))) (ex_2 C T (\lambda (c: C).(\lambda (t: 
+T).(arity g c t (ASort (S n0) n))))) (\lambda (x0: C).(\lambda (x1: 
+T).(\lambda (H1: (arity g x0 x1 (ASort n0 n))).(ex_2_intro C T (\lambda (c: 
+C).(\lambda (t: T).(arity g c t (ASort (S n0) n)))) (CHead x0 (Bind Abst) x1) 
+(TLRef O) (arity_abst g (CHead x0 (Bind Abst) x1) x0 x1 O (getl_refl Abst x0 
+x1) (ASort (S n0) n) H1))))) H0)))) k))).
 
 theorem arity_lift:
  \forall (g: G).(\forall (c2: C).(\forall (t: T).(\forall (a: A).((arity g c2 
@@ -50,457 +39,121 @@ t a) \to (\forall (c1: C).(\forall (h: nat).(\forall (d: nat).((drop h d c1
 c2) \to (arity g c1 (lift h d t) a)))))))))
 \def
  \lambda (g: G).(\lambda (c2: C).(\lambda (t: T).(\lambda (a: A).(\lambda (H: 
-(arity g c2 t a)).(let TMP_2 \def (\lambda (c: C).(\lambda (t0: T).(\lambda 
-(a0: A).(\forall (c1: C).(\forall (h: nat).(\forall (d: nat).((drop h d c1 c) 
-\to (let TMP_1 \def (lift h d t0) in (arity g c1 TMP_1 a0))))))))) in (let 
-TMP_10 \def (\lambda (c: C).(\lambda (n: nat).(\lambda (c1: C).(\lambda (h: 
-nat).(\lambda (d: nat).(\lambda (_: (drop h d c1 c)).(let TMP_3 \def (TSort 
-n) in (let TMP_5 \def (\lambda (t0: T).(let TMP_4 \def (ASort O n) in (arity 
-g c1 t0 TMP_4))) in (let TMP_6 \def (arity_sort g c1 n) in (let TMP_7 \def 
-(TSort n) in (let TMP_8 \def (lift h d TMP_7) in (let TMP_9 \def (lift_sort n 
-h d) in (eq_ind_r T TMP_3 TMP_5 TMP_6 TMP_8 TMP_9))))))))))))) in (let TMP_86 
-\def (\lambda (c: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: 
-nat).(\lambda (H0: (getl i c (CHead d (Bind Abbr) u))).(\lambda (a0: 
-A).(\lambda (H1: (arity g d u a0)).(\lambda (H2: ((\forall (c1: C).(\forall 
-(h: nat).(\forall (d0: nat).((drop h d0 c1 d) \to (arity g c1 (lift h d0 u) 
-a0))))))).(\lambda (c1: C).(\lambda (h: nat).(\lambda (d0: nat).(\lambda (H3: 
-(drop h d0 c1 c)).(let TMP_11 \def (TLRef i) in (let TMP_12 \def (lift h d0 
-TMP_11) in (let TMP_13 \def (arity g c1 TMP_12 a0) in (let TMP_73 \def 
-(\lambda (H4: (lt i d0)).(let TMP_14 \def (TLRef i) in (let TMP_15 \def 
-(\lambda (t0: T).(arity g c1 t0 a0)) in (let TMP_16 \def (S i) in (let TMP_17 
-\def (S d0) in (let TMP_18 \def (S i) in (let TMP_19 \def (S TMP_18) in (let 
-TMP_20 \def (S d0) in (let TMP_21 \def (S i) in (let TMP_22 \def (le_n_S 
-TMP_21 d0 H4) in (let TMP_23 \def (le_S TMP_19 TMP_20 TMP_22) in (let TMP_24 
-\def (le_S_n TMP_16 TMP_17 TMP_23) in (let TMP_25 \def (le_S_n i d0 TMP_24) 
-in (let TMP_26 \def (Bind Abbr) in (let TMP_27 \def (CHead d TMP_26 u) in 
-(let H5 \def (drop_getl_trans_le i d0 TMP_25 c1 c h H3 TMP_27 H0) in (let 
-TMP_28 \def (\lambda (e0: C).(\lambda (_: C).(drop i O c1 e0))) in (let 
-TMP_30 \def (\lambda (e0: C).(\lambda (e1: C).(let TMP_29 \def (minus d0 i) 
-in (drop h TMP_29 e0 e1)))) in (let TMP_33 \def (\lambda (_: C).(\lambda (e1: 
-C).(let TMP_31 \def (Bind Abbr) in (let TMP_32 \def (CHead d TMP_31 u) in 
-(clear e1 TMP_32))))) in (let TMP_34 \def (TLRef i) in (let TMP_35 \def 
-(arity g c1 TMP_34 a0) in (let TMP_68 \def (\lambda (x0: C).(\lambda (x1: 
-C).(\lambda (H6: (drop i O c1 x0)).(\lambda (H7: (drop h (minus d0 i) x0 
-x1)).(\lambda (H8: (clear x1 (CHead d (Bind Abbr) u))).(let TMP_36 \def 
-(minus d0 i) in (let TMP_37 \def (\lambda (n: nat).(drop h n x0 x1)) in (let 
-TMP_38 \def (S i) in (let TMP_39 \def (minus d0 TMP_38) in (let TMP_40 \def 
-(S TMP_39) in (let TMP_41 \def (minus_x_Sy d0 i H4) in (let H9 \def (eq_ind 
-nat TMP_36 TMP_37 H7 TMP_40 TMP_41) in (let TMP_42 \def (S i) in (let TMP_43 
-\def (minus d0 TMP_42) in (let H10 \def (drop_clear_S x1 x0 h TMP_43 H9 Abbr 
-d u H8) in (let TMP_49 \def (\lambda (c3: C).(let TMP_44 \def (Bind Abbr) in 
-(let TMP_45 \def (S i) in (let TMP_46 \def (minus d0 TMP_45) in (let TMP_47 
-\def (lift h TMP_46 u) in (let TMP_48 \def (CHead c3 TMP_44 TMP_47) in (clear 
-x0 TMP_48))))))) in (let TMP_52 \def (\lambda (c3: C).(let TMP_50 \def (S i) 
-in (let TMP_51 \def (minus d0 TMP_50) in (drop h TMP_51 c3 d)))) in (let 
-TMP_53 \def (TLRef i) in (let TMP_54 \def (arity g c1 TMP_53 a0) in (let 
-TMP_67 \def (\lambda (x: C).(\lambda (H11: (clear x0 (CHead x (Bind Abbr) 
-(lift h (minus d0 (S i)) u)))).(\lambda (H12: (drop h (minus d0 (S i)) x 
-d)).(let TMP_55 \def (S i) in (let TMP_56 \def (minus d0 TMP_55) in (let 
-TMP_57 \def (lift h TMP_56 u) in (let TMP_58 \def (Bind Abbr) in (let TMP_59 
-\def (S i) in (let TMP_60 \def (minus d0 TMP_59) in (let TMP_61 \def (lift h 
-TMP_60 u) in (let TMP_62 \def (CHead x TMP_58 TMP_61) in (let TMP_63 \def 
-(getl_intro i c1 TMP_62 x0 H6 H11) in (let TMP_64 \def (S i) in (let TMP_65 
-\def (minus d0 TMP_64) in (let TMP_66 \def (H2 x h TMP_65 H12) in (arity_abbr 
-g c1 x TMP_57 i TMP_63 a0 TMP_66)))))))))))))))) in (ex2_ind C TMP_49 TMP_52 
-TMP_54 TMP_67 H10))))))))))))))))))))) in (let TMP_69 \def (ex3_2_ind C C 
-TMP_28 TMP_30 TMP_33 TMP_35 TMP_68 H5) in (let TMP_70 \def (TLRef i) in (let 
-TMP_71 \def (lift h d0 TMP_70) in (let TMP_72 \def (lift_lref_lt i h d0 H4) 
-in (eq_ind_r T TMP_14 TMP_15 TMP_69 TMP_71 TMP_72))))))))))))))))))))))))))) 
-in (let TMP_85 \def (\lambda (H4: (le d0 i)).(let TMP_74 \def (plus i h) in 
-(let TMP_75 \def (TLRef TMP_74) in (let TMP_76 \def (\lambda (t0: T).(arity g 
-c1 t0 a0)) in (let TMP_77 \def (plus i h) in (let TMP_78 \def (Bind Abbr) in 
-(let TMP_79 \def (CHead d TMP_78 u) in (let TMP_80 \def (drop_getl_trans_ge i 
-c1 c d0 h H3 TMP_79 H0 H4) in (let TMP_81 \def (arity_abbr g c1 d u TMP_77 
-TMP_80 a0 H1) in (let TMP_82 \def (TLRef i) in (let TMP_83 \def (lift h d0 
-TMP_82) in (let TMP_84 \def (lift_lref_ge i h d0 H4) in (eq_ind_r T TMP_75 
-TMP_76 TMP_81 TMP_83 TMP_84))))))))))))) in (lt_le_e i d0 TMP_13 TMP_73 
-TMP_85)))))))))))))))))) in (let TMP_162 \def (\lambda (c: C).(\lambda (d: 
+(arity g c2 t a)).(arity_ind g (\lambda (c: C).(\lambda (t0: T).(\lambda (a0: 
+A).(\forall (c1: C).(\forall (h: nat).(\forall (d: nat).((drop h d c1 c) \to 
+(arity g c1 (lift h d t0) a0)))))))) (\lambda (c: C).(\lambda (n: 
+nat).(\lambda (c1: C).(\lambda (h: nat).(\lambda (d: nat).(\lambda (_: (drop 
+h d c1 c)).(eq_ind_r T (TSort n) (\lambda (t0: T).(arity g c1 t0 (ASort O 
+n))) (arity_sort g c1 n) (lift h d (TSort n)) (lift_sort n h d)))))))) 
+(\lambda (c: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: nat).(\lambda 
+(H0: (getl i c (CHead d (Bind Abbr) u))).(\lambda (a0: A).(\lambda (H1: 
+(arity g d u a0)).(\lambda (H2: ((\forall (c1: C).(\forall (h: nat).(\forall 
+(d0: nat).((drop h d0 c1 d) \to (arity g c1 (lift h d0 u) a0))))))).(\lambda 
+(c1: C).(\lambda (h: nat).(\lambda (d0: nat).(\lambda (H3: (drop h d0 c1 
+c)).(lt_le_e i d0 (arity g c1 (lift h d0 (TLRef i)) a0) (\lambda (H4: (lt i 
+d0)).(eq_ind_r T (TLRef i) (\lambda (t0: T).(arity g c1 t0 a0)) (let H5 \def 
+(drop_getl_trans_le i d0 (le_S_n i d0 (le_S_n (S i) (S d0) (le_S (S (S i)) (S 
+d0) (le_n_S (S i) d0 H4)))) c1 c h H3 (CHead d (Bind Abbr) u) H0) in 
+(ex3_2_ind C C (\lambda (e0: C).(\lambda (_: C).(drop i O c1 e0))) (\lambda 
+(e0: C).(\lambda (e1: C).(drop h (minus d0 i) e0 e1))) (\lambda (_: 
+C).(\lambda (e1: C).(clear e1 (CHead d (Bind Abbr) u)))) (arity g c1 (TLRef 
+i) a0) (\lambda (x0: C).(\lambda (x1: C).(\lambda (H6: (drop i O c1 
+x0)).(\lambda (H7: (drop h (minus d0 i) x0 x1)).(\lambda (H8: (clear x1 
+(CHead d (Bind Abbr) u))).(let H9 \def (eq_ind nat (minus d0 i) (\lambda (n: 
+nat).(drop h n x0 x1)) H7 (S (minus d0 (S i))) (minus_x_Sy d0 i H4)) in (let 
+H10 \def (drop_clear_S x1 x0 h (minus d0 (S i)) H9 Abbr d u H8) in (ex2_ind C 
+(\lambda (c3: C).(clear x0 (CHead c3 (Bind Abbr) (lift h (minus d0 (S i)) 
+u)))) (\lambda (c3: C).(drop h (minus d0 (S i)) c3 d)) (arity g c1 (TLRef i) 
+a0) (\lambda (x: C).(\lambda (H11: (clear x0 (CHead x (Bind Abbr) (lift h 
+(minus d0 (S i)) u)))).(\lambda (H12: (drop h (minus d0 (S i)) x 
+d)).(arity_abbr g c1 x (lift h (minus d0 (S i)) u) i (getl_intro i c1 (CHead 
+x (Bind Abbr) (lift h (minus d0 (S i)) u)) x0 H6 H11) a0 (H2 x h (minus d0 (S 
+i)) H12))))) H10)))))))) H5)) (lift h d0 (TLRef i)) (lift_lref_lt i h d0 
+H4))) (\lambda (H4: (le d0 i)).(eq_ind_r T (TLRef (plus i h)) (\lambda (t0: 
+T).(arity g c1 t0 a0)) (arity_abbr g c1 d u (plus i h) (drop_getl_trans_ge i 
+c1 c d0 h H3 (CHead d (Bind Abbr) u) H0 H4) a0 H1) (lift h d0 (TLRef i)) 
+(lift_lref_ge i h d0 H4)))))))))))))))) (\lambda (c: C).(\lambda (d: 
 C).(\lambda (u: T).(\lambda (i: nat).(\lambda (H0: (getl i c (CHead d (Bind 
 Abst) u))).(\lambda (a0: A).(\lambda (H1: (arity g d u (asucc g 
 a0))).(\lambda (H2: ((\forall (c1: C).(\forall (h: nat).(\forall (d0: 
 nat).((drop h d0 c1 d) \to (arity g c1 (lift h d0 u) (asucc g 
 a0)))))))).(\lambda (c1: C).(\lambda (h: nat).(\lambda (d0: nat).(\lambda 
-(H3: (drop h d0 c1 c)).(let TMP_87 \def (TLRef i) in (let TMP_88 \def (lift h 
-d0 TMP_87) in (let TMP_89 \def (arity g c1 TMP_88 a0) in (let TMP_149 \def 
-(\lambda (H4: (lt i d0)).(let TMP_90 \def (TLRef i) in (let TMP_91 \def 
-(\lambda (t0: T).(arity g c1 t0 a0)) in (let TMP_92 \def (S i) in (let TMP_93 
-\def (S d0) in (let TMP_94 \def (S i) in (let TMP_95 \def (S TMP_94) in (let 
-TMP_96 \def (S d0) in (let TMP_97 \def (S i) in (let TMP_98 \def (le_n_S 
-TMP_97 d0 H4) in (let TMP_99 \def (le_S TMP_95 TMP_96 TMP_98) in (let TMP_100 
-\def (le_S_n TMP_92 TMP_93 TMP_99) in (let TMP_101 \def (le_S_n i d0 TMP_100) 
-in (let TMP_102 \def (Bind Abst) in (let TMP_103 \def (CHead d TMP_102 u) in 
-(let H5 \def (drop_getl_trans_le i d0 TMP_101 c1 c h H3 TMP_103 H0) in (let 
-TMP_104 \def (\lambda (e0: C).(\lambda (_: C).(drop i O c1 e0))) in (let 
-TMP_106 \def (\lambda (e0: C).(\lambda (e1: C).(let TMP_105 \def (minus d0 i) 
-in (drop h TMP_105 e0 e1)))) in (let TMP_109 \def (\lambda (_: C).(\lambda 
-(e1: C).(let TMP_107 \def (Bind Abst) in (let TMP_108 \def (CHead d TMP_107 
-u) in (clear e1 TMP_108))))) in (let TMP_110 \def (TLRef i) in (let TMP_111 
-\def (arity g c1 TMP_110 a0) in (let TMP_144 \def (\lambda (x0: C).(\lambda 
-(x1: C).(\lambda (H6: (drop i O c1 x0)).(\lambda (H7: (drop h (minus d0 i) x0 
-x1)).(\lambda (H8: (clear x1 (CHead d (Bind Abst) u))).(let TMP_112 \def 
-(minus d0 i) in (let TMP_113 \def (\lambda (n: nat).(drop h n x0 x1)) in (let 
-TMP_114 \def (S i) in (let TMP_115 \def (minus d0 TMP_114) in (let TMP_116 
-\def (S TMP_115) in (let TMP_117 \def (minus_x_Sy d0 i H4) in (let H9 \def 
-(eq_ind nat TMP_112 TMP_113 H7 TMP_116 TMP_117) in (let TMP_118 \def (S i) in 
-(let TMP_119 \def (minus d0 TMP_118) in (let H10 \def (drop_clear_S x1 x0 h 
-TMP_119 H9 Abst d u H8) in (let TMP_125 \def (\lambda (c3: C).(let TMP_120 
-\def (Bind Abst) in (let TMP_121 \def (S i) in (let TMP_122 \def (minus d0 
-TMP_121) in (let TMP_123 \def (lift h TMP_122 u) in (let TMP_124 \def (CHead 
-c3 TMP_120 TMP_123) in (clear x0 TMP_124))))))) in (let TMP_128 \def (\lambda 
-(c3: C).(let TMP_126 \def (S i) in (let TMP_127 \def (minus d0 TMP_126) in 
-(drop h TMP_127 c3 d)))) in (let TMP_129 \def (TLRef i) in (let TMP_130 \def 
-(arity g c1 TMP_129 a0) in (let TMP_143 \def (\lambda (x: C).(\lambda (H11: 
-(clear x0 (CHead x (Bind Abst) (lift h (minus d0 (S i)) u)))).(\lambda (H12: 
-(drop h (minus d0 (S i)) x d)).(let TMP_131 \def (S i) in (let TMP_132 \def 
-(minus d0 TMP_131) in (let TMP_133 \def (lift h TMP_132 u) in (let TMP_134 
-\def (Bind Abst) in (let TMP_135 \def (S i) in (let TMP_136 \def (minus d0 
-TMP_135) in (let TMP_137 \def (lift h TMP_136 u) in (let TMP_138 \def (CHead 
-x TMP_134 TMP_137) in (let TMP_139 \def (getl_intro i c1 TMP_138 x0 H6 H11) 
-in (let TMP_140 \def (S i) in (let TMP_141 \def (minus d0 TMP_140) in (let 
-TMP_142 \def (H2 x h TMP_141 H12) in (arity_abst g c1 x TMP_133 i TMP_139 a0 
-TMP_142)))))))))))))))) in (ex2_ind C TMP_125 TMP_128 TMP_130 TMP_143 
-H10))))))))))))))))))))) in (let TMP_145 \def (ex3_2_ind C C TMP_104 TMP_106 
-TMP_109 TMP_111 TMP_144 H5) in (let TMP_146 \def (TLRef i) in (let TMP_147 
-\def (lift h d0 TMP_146) in (let TMP_148 \def (lift_lref_lt i h d0 H4) in 
-(eq_ind_r T TMP_90 TMP_91 TMP_145 TMP_147 TMP_148))))))))))))))))))))))))))) 
-in (let TMP_161 \def (\lambda (H4: (le d0 i)).(let TMP_150 \def (plus i h) in 
-(let TMP_151 \def (TLRef TMP_150) in (let TMP_152 \def (\lambda (t0: 
-T).(arity g c1 t0 a0)) in (let TMP_153 \def (plus i h) in (let TMP_154 \def 
-(Bind Abst) in (let TMP_155 \def (CHead d TMP_154 u) in (let TMP_156 \def 
-(drop_getl_trans_ge i c1 c d0 h H3 TMP_155 H0 H4) in (let TMP_157 \def 
-(arity_abst g c1 d u TMP_153 TMP_156 a0 H1) in (let TMP_158 \def (TLRef i) in 
-(let TMP_159 \def (lift h d0 TMP_158) in (let TMP_160 \def (lift_lref_ge i h 
-d0 H4) in (eq_ind_r T TMP_151 TMP_152 TMP_157 TMP_159 TMP_160))))))))))))) in 
-(lt_le_e i d0 TMP_89 TMP_149 TMP_161)))))))))))))))))) in (let TMP_188 \def 
-(\lambda (b: B).(\lambda (H0: (not (eq B b Abst))).(\lambda (c: C).(\lambda 
-(u: T).(\lambda (a1: A).(\lambda (_: (arity g c u a1)).(\lambda (H2: 
-((\forall (c1: C).(\forall (h: nat).(\forall (d: nat).((drop h d c1 c) \to 
-(arity g c1 (lift h d u) a1))))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda 
-(_: (arity g (CHead c (Bind b) u) t0 a2)).(\lambda (H4: ((\forall (c1: 
-C).(\forall (h: nat).(\forall (d: nat).((drop h d c1 (CHead c (Bind b) u)) 
-\to (arity g c1 (lift h d t0) a2))))))).(\lambda (c1: C).(\lambda (h: 
-nat).(\lambda (d: nat).(\lambda (H5: (drop h d c1 c)).(let TMP_163 \def (Bind 
-b) in (let TMP_164 \def (lift h d u) in (let TMP_165 \def (Bind b) in (let 
-TMP_166 \def (s TMP_165 d) in (let TMP_167 \def (lift h TMP_166 t0) in (let 
-TMP_168 \def (THead TMP_163 TMP_164 TMP_167) in (let TMP_169 \def (\lambda 
-(t1: T).(arity g c1 t1 a2)) in (let TMP_170 \def (lift h d u) in (let TMP_171 
-\def (H2 c1 h d H5) in (let TMP_172 \def (Bind b) in (let TMP_173 \def (s 
-TMP_172 d) in (let TMP_174 \def (lift h TMP_173 t0) in (let TMP_175 \def 
-(Bind b) in (let TMP_176 \def (lift h d u) in (let TMP_177 \def (CHead c1 
-TMP_175 TMP_176) in (let TMP_178 \def (Bind b) in (let TMP_179 \def (s 
-TMP_178 d) in (let TMP_180 \def (drop_skip_bind h d c1 c H5 b u) in (let 
-TMP_181 \def (H4 TMP_177 h TMP_179 TMP_180) in (let TMP_182 \def (arity_bind 
-g b H0 c1 TMP_170 a1 TMP_171 TMP_174 a2 TMP_181) in (let TMP_183 \def (Bind 
-b) in (let TMP_184 \def (THead TMP_183 u t0) in (let TMP_185 \def (lift h d 
-TMP_184) in (let TMP_186 \def (Bind b) in (let TMP_187 \def (lift_head 
-TMP_186 u t0 h d) in (eq_ind_r T TMP_168 TMP_169 TMP_182 TMP_185 
-TMP_187))))))))))))))))))))))))))))))))))))))))) in (let TMP_215 \def 
-(\lambda (c: C).(\lambda (u: T).(\lambda (a1: A).(\lambda (_: (arity g c u 
-(asucc g a1))).(\lambda (H1: ((\forall (c1: C).(\forall (h: nat).(\forall (d: 
+(H3: (drop h d0 c1 c)).(lt_le_e i d0 (arity g c1 (lift h d0 (TLRef i)) a0) 
+(\lambda (H4: (lt i d0)).(eq_ind_r T (TLRef i) (\lambda (t0: T).(arity g c1 
+t0 a0)) (let H5 \def (drop_getl_trans_le i d0 (le_S_n i d0 (le_S_n (S i) (S 
+d0) (le_S (S (S i)) (S d0) (le_n_S (S i) d0 H4)))) c1 c h H3 (CHead d (Bind 
+Abst) u) H0) in (ex3_2_ind C C (\lambda (e0: C).(\lambda (_: C).(drop i O c1 
+e0))) (\lambda (e0: C).(\lambda (e1: C).(drop h (minus d0 i) e0 e1))) 
+(\lambda (_: C).(\lambda (e1: C).(clear e1 (CHead d (Bind Abst) u)))) (arity 
+g c1 (TLRef i) a0) (\lambda (x0: C).(\lambda (x1: C).(\lambda (H6: (drop i O 
+c1 x0)).(\lambda (H7: (drop h (minus d0 i) x0 x1)).(\lambda (H8: (clear x1 
+(CHead d (Bind Abst) u))).(let H9 \def (eq_ind nat (minus d0 i) (\lambda (n: 
+nat).(drop h n x0 x1)) H7 (S (minus d0 (S i))) (minus_x_Sy d0 i H4)) in (let 
+H10 \def (drop_clear_S x1 x0 h (minus d0 (S i)) H9 Abst d u H8) in (ex2_ind C 
+(\lambda (c3: C).(clear x0 (CHead c3 (Bind Abst) (lift h (minus d0 (S i)) 
+u)))) (\lambda (c3: C).(drop h (minus d0 (S i)) c3 d)) (arity g c1 (TLRef i) 
+a0) (\lambda (x: C).(\lambda (H11: (clear x0 (CHead x (Bind Abst) (lift h 
+(minus d0 (S i)) u)))).(\lambda (H12: (drop h (minus d0 (S i)) x 
+d)).(arity_abst g c1 x (lift h (minus d0 (S i)) u) i (getl_intro i c1 (CHead 
+x (Bind Abst) (lift h (minus d0 (S i)) u)) x0 H6 H11) a0 (H2 x h (minus d0 (S 
+i)) H12))))) H10)))))))) H5)) (lift h d0 (TLRef i)) (lift_lref_lt i h d0 
+H4))) (\lambda (H4: (le d0 i)).(eq_ind_r T (TLRef (plus i h)) (\lambda (t0: 
+T).(arity g c1 t0 a0)) (arity_abst g c1 d u (plus i h) (drop_getl_trans_ge i 
+c1 c d0 h H3 (CHead d (Bind Abst) u) H0 H4) a0 H1) (lift h d0 (TLRef i)) 
+(lift_lref_ge i h d0 H4)))))))))))))))) (\lambda (b: B).(\lambda (H0: (not 
+(eq B b Abst))).(\lambda (c: C).(\lambda (u: T).(\lambda (a1: A).(\lambda (_: 
+(arity g c u a1)).(\lambda (H2: ((\forall (c1: C).(\forall (h: nat).(\forall 
+(d: nat).((drop h d c1 c) \to (arity g c1 (lift h d u) a1))))))).(\lambda 
+(t0: T).(\lambda (a2: A).(\lambda (_: (arity g (CHead c (Bind b) u) t0 
+a2)).(\lambda (H4: ((\forall (c1: C).(\forall (h: nat).(\forall (d: 
+nat).((drop h d c1 (CHead c (Bind b) u)) \to (arity g c1 (lift h d t0) 
+a2))))))).(\lambda (c1: C).(\lambda (h: nat).(\lambda (d: nat).(\lambda (H5: 
+(drop h d c1 c)).(eq_ind_r T (THead (Bind b) (lift h d u) (lift h (s (Bind b) 
+d) t0)) (\lambda (t1: T).(arity g c1 t1 a2)) (arity_bind g b H0 c1 (lift h d 
+u) a1 (H2 c1 h d H5) (lift h (s (Bind b) d) t0) a2 (H4 (CHead c1 (Bind b) 
+(lift h d u)) h (s (Bind b) d) (drop_skip_bind h d c1 c H5 b u))) (lift h d 
+(THead (Bind b) u t0)) (lift_head (Bind b) u t0 h d))))))))))))))))) (\lambda 
+(c: C).(\lambda (u: T).(\lambda (a1: A).(\lambda (_: (arity g c u (asucc g 
+a1))).(\lambda (H1: ((\forall (c1: C).(\forall (h: nat).(\forall (d: 
 nat).((drop h d c1 c) \to (arity g c1 (lift h d u) (asucc g 
 a1)))))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda (_: (arity g (CHead c 
 (Bind Abst) u) t0 a2)).(\lambda (H3: ((\forall (c1: C).(\forall (h: 
 nat).(\forall (d: nat).((drop h d c1 (CHead c (Bind Abst) u)) \to (arity g c1 
 (lift h d t0) a2))))))).(\lambda (c1: C).(\lambda (h: nat).(\lambda (d: 
-nat).(\lambda (H4: (drop h d c1 c)).(let TMP_189 \def (Bind Abst) in (let 
-TMP_190 \def (lift h d u) in (let TMP_191 \def (Bind Abst) in (let TMP_192 
-\def (s TMP_191 d) in (let TMP_193 \def (lift h TMP_192 t0) in (let TMP_194 
-\def (THead TMP_189 TMP_190 TMP_193) in (let TMP_196 \def (\lambda (t1: 
-T).(let TMP_195 \def (AHead a1 a2) in (arity g c1 t1 TMP_195))) in (let 
-TMP_197 \def (lift h d u) in (let TMP_198 \def (H1 c1 h d H4) in (let TMP_199 
-\def (Bind Abst) in (let TMP_200 \def (s TMP_199 d) in (let TMP_201 \def 
-(lift h TMP_200 t0) in (let TMP_202 \def (Bind Abst) in (let TMP_203 \def 
-(lift h d u) in (let TMP_204 \def (CHead c1 TMP_202 TMP_203) in (let TMP_205 
-\def (Bind Abst) in (let TMP_206 \def (s TMP_205 d) in (let TMP_207 \def 
-(drop_skip_bind h d c1 c H4 Abst u) in (let TMP_208 \def (H3 TMP_204 h 
-TMP_206 TMP_207) in (let TMP_209 \def (arity_head g c1 TMP_197 a1 TMP_198 
-TMP_201 a2 TMP_208) in (let TMP_210 \def (Bind Abst) in (let TMP_211 \def 
-(THead TMP_210 u t0) in (let TMP_212 \def (lift h d TMP_211) in (let TMP_213 
-\def (Bind Abst) in (let TMP_214 \def (lift_head TMP_213 u t0 h d) in 
-(eq_ind_r T TMP_194 TMP_196 TMP_209 TMP_212 
-TMP_214))))))))))))))))))))))))))))))))))))))) in (let TMP_237 \def (\lambda 
-(c: C).(\lambda (u: T).(\lambda (a1: A).(\lambda (_: (arity g c u 
-a1)).(\lambda (H1: ((\forall (c1: C).(\forall (h: nat).(\forall (d: 
-nat).((drop h d c1 c) \to (arity g c1 (lift h d u) a1))))))).(\lambda (t0: 
-T).(\lambda (a2: A).(\lambda (_: (arity g c t0 (AHead a1 a2))).(\lambda (H3: 
-((\forall (c1: C).(\forall (h: nat).(\forall (d: nat).((drop h d c1 c) \to 
-(arity g c1 (lift h d t0) (AHead a1 a2)))))))).(\lambda (c1: C).(\lambda (h: 
-nat).(\lambda (d: nat).(\lambda (H4: (drop h d c1 c)).(let TMP_216 \def (Flat 
-Appl) in (let TMP_217 \def (lift h d u) in (let TMP_218 \def (Flat Appl) in 
-(let TMP_219 \def (s TMP_218 d) in (let TMP_220 \def (lift h TMP_219 t0) in 
-(let TMP_221 \def (THead TMP_216 TMP_217 TMP_220) in (let TMP_222 \def 
-(\lambda (t1: T).(arity g c1 t1 a2)) in (let TMP_223 \def (lift h d u) in 
-(let TMP_224 \def (H1 c1 h d H4) in (let TMP_225 \def (Flat Appl) in (let 
-TMP_226 \def (s TMP_225 d) in (let TMP_227 \def (lift h TMP_226 t0) in (let 
-TMP_228 \def (Flat Appl) in (let TMP_229 \def (s TMP_228 d) in (let TMP_230 
-\def (H3 c1 h TMP_229 H4) in (let TMP_231 \def (arity_appl g c1 TMP_223 a1 
-TMP_224 TMP_227 a2 TMP_230) in (let TMP_232 \def (Flat Appl) in (let TMP_233 
-\def (THead TMP_232 u t0) in (let TMP_234 \def (lift h d TMP_233) in (let 
-TMP_235 \def (Flat Appl) in (let TMP_236 \def (lift_head TMP_235 u t0 h d) in 
-(eq_ind_r T TMP_221 TMP_222 TMP_231 TMP_234 
-TMP_236))))))))))))))))))))))))))))))))))) in (let TMP_259 \def (\lambda (c: 
-C).(\lambda (u: T).(\lambda (a0: A).(\lambda (_: (arity g c u (asucc g 
-a0))).(\lambda (H1: ((\forall (c1: C).(\forall (h: nat).(\forall (d: 
-nat).((drop h d c1 c) \to (arity g c1 (lift h d u) (asucc g 
-a0)))))))).(\lambda (t0: T).(\lambda (_: (arity g c t0 a0)).(\lambda (H3: 
-((\forall (c1: C).(\forall (h: nat).(\forall (d: nat).((drop h d c1 c) \to 
-(arity g c1 (lift h d t0) a0))))))).(\lambda (c1: C).(\lambda (h: 
-nat).(\lambda (d: nat).(\lambda (H4: (drop h d c1 c)).(let TMP_238 \def (Flat 
-Cast) in (let TMP_239 \def (lift h d u) in (let TMP_240 \def (Flat Cast) in 
-(let TMP_241 \def (s TMP_240 d) in (let TMP_242 \def (lift h TMP_241 t0) in 
-(let TMP_243 \def (THead TMP_238 TMP_239 TMP_242) in (let TMP_244 \def 
-(\lambda (t1: T).(arity g c1 t1 a0)) in (let TMP_245 \def (lift h d u) in 
-(let TMP_246 \def (H1 c1 h d H4) in (let TMP_247 \def (Flat Cast) in (let 
-TMP_248 \def (s TMP_247 d) in (let TMP_249 \def (lift h TMP_248 t0) in (let 
-TMP_250 \def (Flat Cast) in (let TMP_251 \def (s TMP_250 d) in (let TMP_252 
-\def (H3 c1 h TMP_251 H4) in (let TMP_253 \def (arity_cast g c1 TMP_245 a0 
-TMP_246 TMP_249 TMP_252) in (let TMP_254 \def (Flat Cast) in (let TMP_255 
-\def (THead TMP_254 u t0) in (let TMP_256 \def (lift h d TMP_255) in (let 
-TMP_257 \def (Flat Cast) in (let TMP_258 \def (lift_head TMP_257 u t0 h d) in 
-(eq_ind_r T TMP_243 TMP_244 TMP_253 TMP_256 
-TMP_258)))))))))))))))))))))))))))))))))) in (let TMP_262 \def (\lambda (c: 
-C).(\lambda (t0: T).(\lambda (a1: A).(\lambda (_: (arity g c t0 a1)).(\lambda 
-(H1: ((\forall (c1: C).(\forall (h: nat).(\forall (d: nat).((drop h d c1 c) 
-\to (arity g c1 (lift h d t0) a1))))))).(\lambda (a2: A).(\lambda (H2: (leq g 
-a1 a2)).(\lambda (c1: C).(\lambda (h: nat).(\lambda (d: nat).(\lambda (H3: 
-(drop h d c1 c)).(let TMP_260 \def (lift h d t0) in (let TMP_261 \def (H1 c1 
-h d H3) in (arity_repl g c1 TMP_260 a1 TMP_261 a2 H2)))))))))))))) in 
-(arity_ind g TMP_2 TMP_10 TMP_86 TMP_162 TMP_188 TMP_215 TMP_237 TMP_259 
-TMP_262 c2 t a H)))))))))))))).
-
-theorem arity_mono:
- \forall (g: G).(\forall (c: C).(\forall (t: T).(\forall (a1: A).((arity g c 
-t a1) \to (\forall (a2: A).((arity g c t a2) \to (leq g a1 a2)))))))
-\def
- \lambda (g: G).(\lambda (c: C).(\lambda (t: T).(\lambda (a1: A).(\lambda (H: 
-(arity g c t a1)).(let TMP_1 \def (\lambda (c0: C).(\lambda (t0: T).(\lambda 
-(a: A).(\forall (a2: A).((arity g c0 t0 a2) \to (leq g a a2)))))) in (let 
-TMP_4 \def (\lambda (c0: C).(\lambda (n: nat).(\lambda (a2: A).(\lambda (H0: 
-(arity g c0 (TSort n) a2)).(let TMP_2 \def (ASort O n) in (let TMP_3 \def 
-(arity_gen_sort g c0 n a2 H0) in (leq_sym g a2 TMP_2 TMP_3))))))) in (let 
-TMP_92 \def (\lambda (c0: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: 
-nat).(\lambda (H0: (getl i c0 (CHead d (Bind Abbr) u))).(\lambda (a: 
-A).(\lambda (_: (arity g d u a)).(\lambda (H2: ((\forall (a2: A).((arity g d 
-u a2) \to (leq g a a2))))).(\lambda (a2: A).(\lambda (H3: (arity g c0 (TLRef 
-i) a2)).(let H4 \def (arity_gen_lref g c0 i a2 H3) in (let TMP_7 \def 
-(\lambda (d0: C).(\lambda (u0: T).(let TMP_5 \def (Bind Abbr) in (let TMP_6 
-\def (CHead d0 TMP_5 u0) in (getl i c0 TMP_6))))) in (let TMP_8 \def (\lambda 
-(d0: C).(\lambda (u0: T).(arity g d0 u0 a2))) in (let TMP_9 \def (ex2_2 C T 
-TMP_7 TMP_8) in (let TMP_12 \def (\lambda (d0: C).(\lambda (u0: T).(let 
-TMP_10 \def (Bind Abst) in (let TMP_11 \def (CHead d0 TMP_10 u0) in (getl i 
-c0 TMP_11))))) in (let TMP_14 \def (\lambda (d0: C).(\lambda (u0: T).(let 
-TMP_13 \def (asucc g a2) in (arity g d0 u0 TMP_13)))) in (let TMP_15 \def 
-(ex2_2 C T TMP_12 TMP_14) in (let TMP_16 \def (leq g a a2) in (let TMP_62 
-\def (\lambda (H5: (ex2_2 C T (\lambda (d0: C).(\lambda (u0: T).(getl i c0 
-(CHead d0 (Bind Abbr) u0)))) (\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 
-a2))))).(let TMP_19 \def (\lambda (d0: C).(\lambda (u0: T).(let TMP_17 \def 
-(Bind Abbr) in (let TMP_18 \def (CHead d0 TMP_17 u0) in (getl i c0 
-TMP_18))))) in (let TMP_20 \def (\lambda (d0: C).(\lambda (u0: T).(arity g d0 
-u0 a2))) in (let TMP_21 \def (leq g a a2) in (let TMP_61 \def (\lambda (x0: 
-C).(\lambda (x1: T).(\lambda (H6: (getl i c0 (CHead x0 (Bind Abbr) 
-x1))).(\lambda (H7: (arity g x0 x1 a2)).(let TMP_22 \def (Bind Abbr) in (let 
-TMP_23 \def (CHead d TMP_22 u) in (let TMP_24 \def (\lambda (c1: C).(getl i 
-c0 c1)) in (let TMP_25 \def (Bind Abbr) in (let TMP_26 \def (CHead x0 TMP_25 
-x1) in (let TMP_27 \def (Bind Abbr) in (let TMP_28 \def (CHead d TMP_27 u) in 
-(let TMP_29 \def (Bind Abbr) in (let TMP_30 \def (CHead x0 TMP_29 x1) in (let 
-TMP_31 \def (getl_mono c0 TMP_28 i H0 TMP_30 H6) in (let H8 \def (eq_ind C 
-TMP_23 TMP_24 H0 TMP_26 TMP_31) in (let TMP_32 \def (\lambda (e: C).(match e 
-with [(CSort _) \Rightarrow d | (CHead c1 _ _) \Rightarrow c1])) in (let 
-TMP_33 \def (Bind Abbr) in (let TMP_34 \def (CHead d TMP_33 u) in (let TMP_35 
-\def (Bind Abbr) in (let TMP_36 \def (CHead x0 TMP_35 x1) in (let TMP_37 \def 
-(Bind Abbr) in (let TMP_38 \def (CHead d TMP_37 u) in (let TMP_39 \def (Bind 
-Abbr) in (let TMP_40 \def (CHead x0 TMP_39 x1) in (let TMP_41 \def (getl_mono 
-c0 TMP_38 i H0 TMP_40 H6) in (let H9 \def (f_equal C C TMP_32 TMP_34 TMP_36 
-TMP_41) in (let TMP_42 \def (\lambda (e: C).(match e with [(CSort _) 
-\Rightarrow u | (CHead _ _ t0) \Rightarrow t0])) in (let TMP_43 \def (Bind 
-Abbr) in (let TMP_44 \def (CHead d TMP_43 u) in (let TMP_45 \def (Bind Abbr) 
-in (let TMP_46 \def (CHead x0 TMP_45 x1) in (let TMP_47 \def (Bind Abbr) in 
-(let TMP_48 \def (CHead d TMP_47 u) in (let TMP_49 \def (Bind Abbr) in (let 
-TMP_50 \def (CHead x0 TMP_49 x1) in (let TMP_51 \def (getl_mono c0 TMP_48 i 
-H0 TMP_50 H6) in (let H10 \def (f_equal C T TMP_42 TMP_44 TMP_46 TMP_51) in 
-(let TMP_60 \def (\lambda (H11: (eq C d x0)).(let TMP_54 \def (\lambda (t0: 
-T).(let TMP_52 \def (Bind Abbr) in (let TMP_53 \def (CHead x0 TMP_52 t0) in 
-(getl i c0 TMP_53)))) in (let H12 \def (eq_ind_r T x1 TMP_54 H8 u H10) in 
-(let TMP_55 \def (\lambda (t0: T).(arity g x0 t0 a2)) in (let H13 \def 
-(eq_ind_r T x1 TMP_55 H7 u H10) in (let TMP_58 \def (\lambda (c1: C).(let 
-TMP_56 \def (Bind Abbr) in (let TMP_57 \def (CHead c1 TMP_56 u) in (getl i c0 
-TMP_57)))) in (let H14 \def (eq_ind_r C x0 TMP_58 H12 d H11) in (let TMP_59 
-\def (\lambda (c1: C).(arity g c1 u a2)) in (let H15 \def (eq_ind_r C x0 
-TMP_59 H13 d H11) in (H2 a2 H15)))))))))) in (TMP_60 
-H9))))))))))))))))))))))))))))))))))))))) in (ex2_2_ind C T TMP_19 TMP_20 
-TMP_21 TMP_61 H5)))))) in (let TMP_91 \def (\lambda (H5: (ex2_2 C T (\lambda 
-(d0: C).(\lambda (u0: T).(getl i c0 (CHead d0 (Bind Abst) u0)))) (\lambda 
-(d0: C).(\lambda (u0: T).(arity g d0 u0 (asucc g a2)))))).(let TMP_65 \def 
-(\lambda (d0: C).(\lambda (u0: T).(let TMP_63 \def (Bind Abst) in (let TMP_64 
-\def (CHead d0 TMP_63 u0) in (getl i c0 TMP_64))))) in (let TMP_67 \def 
-(\lambda (d0: C).(\lambda (u0: T).(let TMP_66 \def (asucc g a2) in (arity g 
-d0 u0 TMP_66)))) in (let TMP_68 \def (leq g a a2) in (let TMP_90 \def 
-(\lambda (x0: C).(\lambda (x1: T).(\lambda (H6: (getl i c0 (CHead x0 (Bind 
-Abst) x1))).(\lambda (_: (arity g x0 x1 (asucc g a2))).(let TMP_69 \def (Bind 
-Abbr) in (let TMP_70 \def (CHead d TMP_69 u) in (let TMP_71 \def (\lambda 
-(c1: C).(getl i c0 c1)) in (let TMP_72 \def (Bind Abst) in (let TMP_73 \def 
-(CHead x0 TMP_72 x1) in (let TMP_74 \def (Bind Abbr) in (let TMP_75 \def 
-(CHead d TMP_74 u) in (let TMP_76 \def (Bind Abst) in (let TMP_77 \def (CHead 
-x0 TMP_76 x1) in (let TMP_78 \def (getl_mono c0 TMP_75 i H0 TMP_77 H6) in 
-(let H8 \def (eq_ind C TMP_70 TMP_71 H0 TMP_73 TMP_78) in (let TMP_79 \def 
-(Bind Abbr) in (let TMP_80 \def (CHead d TMP_79 u) in (let TMP_81 \def 
-(\lambda (ee: C).(match ee with [(CSort _) \Rightarrow False | (CHead _ k _) 
-\Rightarrow (match k with [(Bind b) \Rightarrow (match b with [Abbr 
-\Rightarrow True | Abst \Rightarrow False | Void \Rightarrow False]) | (Flat 
-_) \Rightarrow False])])) in (let TMP_82 \def (Bind Abst) in (let TMP_83 \def 
-(CHead x0 TMP_82 x1) in (let TMP_84 \def (Bind Abbr) in (let TMP_85 \def 
-(CHead d TMP_84 u) in (let TMP_86 \def (Bind Abst) in (let TMP_87 \def (CHead 
-x0 TMP_86 x1) in (let TMP_88 \def (getl_mono c0 TMP_85 i H0 TMP_87 H6) in 
-(let H9 \def (eq_ind C TMP_80 TMP_81 I TMP_83 TMP_88) in (let TMP_89 \def 
-(leq g a a2) in (False_ind TMP_89 H9)))))))))))))))))))))))))))) in 
-(ex2_2_ind C T TMP_65 TMP_67 TMP_68 TMP_90 H5)))))) in (or_ind TMP_9 TMP_15 
-TMP_16 TMP_62 TMP_91 H4))))))))))))))))))))) in (let TMP_184 \def (\lambda 
-(c0: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: nat).(\lambda (H0: (getl 
-i c0 (CHead d (Bind Abst) u))).(\lambda (a: A).(\lambda (_: (arity g d u 
-(asucc g a))).(\lambda (H2: ((\forall (a2: A).((arity g d u a2) \to (leq g 
-(asucc g a) a2))))).(\lambda (a2: A).(\lambda (H3: (arity g c0 (TLRef i) 
-a2)).(let H4 \def (arity_gen_lref g c0 i a2 H3) in (let TMP_95 \def (\lambda 
-(d0: C).(\lambda (u0: T).(let TMP_93 \def (Bind Abbr) in (let TMP_94 \def 
-(CHead d0 TMP_93 u0) in (getl i c0 TMP_94))))) in (let TMP_96 \def (\lambda 
-(d0: C).(\lambda (u0: T).(arity g d0 u0 a2))) in (let TMP_97 \def (ex2_2 C T 
-TMP_95 TMP_96) in (let TMP_100 \def (\lambda (d0: C).(\lambda (u0: T).(let 
-TMP_98 \def (Bind Abst) in (let TMP_99 \def (CHead d0 TMP_98 u0) in (getl i 
-c0 TMP_99))))) in (let TMP_102 \def (\lambda (d0: C).(\lambda (u0: T).(let 
-TMP_101 \def (asucc g a2) in (arity g d0 u0 TMP_101)))) in (let TMP_103 \def 
-(ex2_2 C T TMP_100 TMP_102) in (let TMP_104 \def (leq g a a2) in (let TMP_132 
-\def (\lambda (H5: (ex2_2 C T (\lambda (d0: C).(\lambda (u0: T).(getl i c0 
-(CHead d0 (Bind Abbr) u0)))) (\lambda (d0: C).(\lambda (u0: T).(arity g d0 u0 
-a2))))).(let TMP_107 \def (\lambda (d0: C).(\lambda (u0: T).(let TMP_105 \def 
-(Bind Abbr) in (let TMP_106 \def (CHead d0 TMP_105 u0) in (getl i c0 
-TMP_106))))) in (let TMP_108 \def (\lambda (d0: C).(\lambda (u0: T).(arity g 
-d0 u0 a2))) in (let TMP_109 \def (leq g a a2) in (let TMP_131 \def (\lambda 
-(x0: C).(\lambda (x1: T).(\lambda (H6: (getl i c0 (CHead x0 (Bind Abbr) 
-x1))).(\lambda (_: (arity g x0 x1 a2)).(let TMP_110 \def (Bind Abst) in (let 
-TMP_111 \def (CHead d TMP_110 u) in (let TMP_112 \def (\lambda (c1: C).(getl 
-i c0 c1)) in (let TMP_113 \def (Bind Abbr) in (let TMP_114 \def (CHead x0 
-TMP_113 x1) in (let TMP_115 \def (Bind Abst) in (let TMP_116 \def (CHead d 
-TMP_115 u) in (let TMP_117 \def (Bind Abbr) in (let TMP_118 \def (CHead x0 
-TMP_117 x1) in (let TMP_119 \def (getl_mono c0 TMP_116 i H0 TMP_118 H6) in 
-(let H8 \def (eq_ind C TMP_111 TMP_112 H0 TMP_114 TMP_119) in (let TMP_120 
-\def (Bind Abst) in (let TMP_121 \def (CHead d TMP_120 u) in (let TMP_122 
-\def (\lambda (ee: C).(match ee with [(CSort _) \Rightarrow False | (CHead _ 
-k _) \Rightarrow (match k with [(Bind b) \Rightarrow (match b with [Abbr 
-\Rightarrow False | Abst \Rightarrow True | Void \Rightarrow False]) | (Flat 
-_) \Rightarrow False])])) in (let TMP_123 \def (Bind Abbr) in (let TMP_124 
-\def (CHead x0 TMP_123 x1) in (let TMP_125 \def (Bind Abst) in (let TMP_126 
-\def (CHead d TMP_125 u) in (let TMP_127 \def (Bind Abbr) in (let TMP_128 
-\def (CHead x0 TMP_127 x1) in (let TMP_129 \def (getl_mono c0 TMP_126 i H0 
-TMP_128 H6) in (let H9 \def (eq_ind C TMP_121 TMP_122 I TMP_124 TMP_129) in 
-(let TMP_130 \def (leq g a a2) in (False_ind TMP_130 
-H9)))))))))))))))))))))))))))) in (ex2_2_ind C T TMP_107 TMP_108 TMP_109 
-TMP_131 H5)))))) in (let TMP_183 \def (\lambda (H5: (ex2_2 C T (\lambda (d0: 
-C).(\lambda (u0: T).(getl i c0 (CHead d0 (Bind Abst) u0)))) (\lambda (d0: 
-C).(\lambda (u0: T).(arity g d0 u0 (asucc g a2)))))).(let TMP_135 \def 
-(\lambda (d0: C).(\lambda (u0: T).(let TMP_133 \def (Bind Abst) in (let 
-TMP_134 \def (CHead d0 TMP_133 u0) in (getl i c0 TMP_134))))) in (let TMP_137 
-\def (\lambda (d0: C).(\lambda (u0: T).(let TMP_136 \def (asucc g a2) in 
-(arity g d0 u0 TMP_136)))) in (let TMP_138 \def (leq g a a2) in (let TMP_182 
-\def (\lambda (x0: C).(\lambda (x1: T).(\lambda (H6: (getl i c0 (CHead x0 
-(Bind Abst) x1))).(\lambda (H7: (arity g x0 x1 (asucc g a2))).(let TMP_139 
-\def (Bind Abst) in (let TMP_140 \def (CHead d TMP_139 u) in (let TMP_141 
-\def (\lambda (c1: C).(getl i c0 c1)) in (let TMP_142 \def (Bind Abst) in 
-(let TMP_143 \def (CHead x0 TMP_142 x1) in (let TMP_144 \def (Bind Abst) in 
-(let TMP_145 \def (CHead d TMP_144 u) in (let TMP_146 \def (Bind Abst) in 
-(let TMP_147 \def (CHead x0 TMP_146 x1) in (let TMP_148 \def (getl_mono c0 
-TMP_145 i H0 TMP_147 H6) in (let H8 \def (eq_ind C TMP_140 TMP_141 H0 TMP_143 
-TMP_148) in (let TMP_149 \def (\lambda (e: C).(match e with [(CSort _) 
-\Rightarrow d | (CHead c1 _ _) \Rightarrow c1])) in (let TMP_150 \def (Bind 
-Abst) in (let TMP_151 \def (CHead d TMP_150 u) in (let TMP_152 \def (Bind 
-Abst) in (let TMP_153 \def (CHead x0 TMP_152 x1) in (let TMP_154 \def (Bind 
-Abst) in (let TMP_155 \def (CHead d TMP_154 u) in (let TMP_156 \def (Bind 
-Abst) in (let TMP_157 \def (CHead x0 TMP_156 x1) in (let TMP_158 \def 
-(getl_mono c0 TMP_155 i H0 TMP_157 H6) in (let H9 \def (f_equal C C TMP_149 
-TMP_151 TMP_153 TMP_158) in (let TMP_159 \def (\lambda (e: C).(match e with 
-[(CSort _) \Rightarrow u | (CHead _ _ t0) \Rightarrow t0])) in (let TMP_160 
-\def (Bind Abst) in (let TMP_161 \def (CHead d TMP_160 u) in (let TMP_162 
-\def (Bind Abst) in (let TMP_163 \def (CHead x0 TMP_162 x1) in (let TMP_164 
-\def (Bind Abst) in (let TMP_165 \def (CHead d TMP_164 u) in (let TMP_166 
-\def (Bind Abst) in (let TMP_167 \def (CHead x0 TMP_166 x1) in (let TMP_168 
-\def (getl_mono c0 TMP_165 i H0 TMP_167 H6) in (let H10 \def (f_equal C T 
-TMP_159 TMP_161 TMP_163 TMP_168) in (let TMP_181 \def (\lambda (H11: (eq C d 
-x0)).(let TMP_171 \def (\lambda (t0: T).(let TMP_169 \def (Bind Abst) in (let 
-TMP_170 \def (CHead x0 TMP_169 t0) in (getl i c0 TMP_170)))) in (let H12 \def 
-(eq_ind_r T x1 TMP_171 H8 u H10) in (let TMP_173 \def (\lambda (t0: T).(let 
-TMP_172 \def (asucc g a2) in (arity g x0 t0 TMP_172))) in (let H13 \def 
-(eq_ind_r T x1 TMP_173 H7 u H10) in (let TMP_176 \def (\lambda (c1: C).(let 
-TMP_174 \def (Bind Abst) in (let TMP_175 \def (CHead c1 TMP_174 u) in (getl i 
-c0 TMP_175)))) in (let H14 \def (eq_ind_r C x0 TMP_176 H12 d H11) in (let 
-TMP_178 \def (\lambda (c1: C).(let TMP_177 \def (asucc g a2) in (arity g c1 u 
-TMP_177))) in (let H15 \def (eq_ind_r C x0 TMP_178 H13 d H11) in (let TMP_179 
-\def (asucc g a2) in (let TMP_180 \def (H2 TMP_179 H15) in (asucc_inj g a a2 
-TMP_180)))))))))))) in (TMP_181 H9))))))))))))))))))))))))))))))))))))))) in 
-(ex2_2_ind C T TMP_135 TMP_137 TMP_138 TMP_182 H5)))))) in (or_ind TMP_97 
-TMP_103 TMP_104 TMP_132 TMP_183 H4))))))))))))))))))))) in (let TMP_191 \def 
-(\lambda (b: B).(\lambda (H0: (not (eq B b Abst))).(\lambda (c0: C).(\lambda 
-(u: T).(\lambda (a2: A).(\lambda (_: (arity g c0 u a2)).(\lambda (_: 
-((\forall (a3: A).((arity g c0 u a3) \to (leq g a2 a3))))).(\lambda (t0: 
-T).(\lambda (a3: A).(\lambda (_: (arity g (CHead c0 (Bind b) u) t0 
-a3)).(\lambda (H4: ((\forall (a4: A).((arity g (CHead c0 (Bind b) u) t0 a4) 
-\to (leq g a3 a4))))).(\lambda (a0: A).(\lambda (H5: (arity g c0 (THead (Bind 
-b) u t0) a0)).(let H6 \def (arity_gen_bind b H0 g c0 u t0 a0 H5) in (let 
-TMP_185 \def (\lambda (a4: A).(arity g c0 u a4)) in (let TMP_188 \def 
-(\lambda (_: A).(let TMP_186 \def (Bind b) in (let TMP_187 \def (CHead c0 
-TMP_186 u) in (arity g TMP_187 t0 a0)))) in (let TMP_189 \def (leq g a3 a0) 
-in (let TMP_190 \def (\lambda (x: A).(\lambda (_: (arity g c0 u x)).(\lambda 
-(H8: (arity g (CHead c0 (Bind b) u) t0 a0)).(H4 a0 H8)))) in (ex2_ind A 
-TMP_185 TMP_188 TMP_189 TMP_190 H6))))))))))))))))))) in (let TMP_210 \def 
-(\lambda (c0: C).(\lambda (u: T).(\lambda (a2: A).(\lambda (_: (arity g c0 u 
-(asucc g a2))).(\lambda (H1: ((\forall (a3: A).((arity g c0 u a3) \to (leq g 
-(asucc g a2) a3))))).(\lambda (t0: T).(\lambda (a3: A).(\lambda (_: (arity g 
-(CHead c0 (Bind Abst) u) t0 a3)).(\lambda (H3: ((\forall (a4: A).((arity g 
-(CHead c0 (Bind Abst) u) t0 a4) \to (leq g a3 a4))))).(\lambda (a0: 
-A).(\lambda (H4: (arity g c0 (THead (Bind Abst) u t0) a0)).(let H5 \def 
-(arity_gen_abst g c0 u t0 a0 H4) in (let TMP_193 \def (\lambda (a4: 
-A).(\lambda (a5: A).(let TMP_192 \def (AHead a4 a5) in (eq A a0 TMP_192)))) 
-in (let TMP_195 \def (\lambda (a4: A).(\lambda (_: A).(let TMP_194 \def 
-(asucc g a4) in (arity g c0 u TMP_194)))) in (let TMP_198 \def (\lambda (_: 
-A).(\lambda (a5: A).(let TMP_196 \def (Bind Abst) in (let TMP_197 \def (CHead 
-c0 TMP_196 u) in (arity g TMP_197 t0 a5))))) in (let TMP_199 \def (AHead a2 
-a3) in (let TMP_200 \def (leq g TMP_199 a0) in (let TMP_209 \def (\lambda 
-(x0: A).(\lambda (x1: A).(\lambda (H6: (eq A a0 (AHead x0 x1))).(\lambda (H7: 
-(arity g c0 u (asucc g x0))).(\lambda (H8: (arity g (CHead c0 (Bind Abst) u) 
-t0 x1)).(let TMP_201 \def (AHead x0 x1) in (let TMP_203 \def (\lambda (a: 
-A).(let TMP_202 \def (AHead a2 a3) in (leq g TMP_202 a))) in (let TMP_204 
-\def (asucc g x0) in (let TMP_205 \def (H1 TMP_204 H7) in (let TMP_206 \def 
-(asucc_inj g a2 x0 TMP_205) in (let TMP_207 \def (H3 x1 H8) in (let TMP_208 
-\def (leq_head g a2 x0 TMP_206 a3 x1 TMP_207) in (eq_ind_r A TMP_201 TMP_203 
-TMP_208 a0 H6))))))))))))) in (ex3_2_ind A A TMP_193 TMP_195 TMP_198 TMP_200 
-TMP_209 H5))))))))))))))))))) in (let TMP_218 \def (\lambda (c0: C).(\lambda 
-(u: T).(\lambda (a2: A).(\lambda (_: (arity g c0 u a2)).(\lambda (_: 
-((\forall (a3: A).((arity g c0 u a3) \to (leq g a2 a3))))).(\lambda (t0: 
-T).(\lambda (a3: A).(\lambda (_: (arity g c0 t0 (AHead a2 a3))).(\lambda (H3: 
-((\forall (a4: A).((arity g c0 t0 a4) \to (leq g (AHead a2 a3) 
-a4))))).(\lambda (a0: A).(\lambda (H4: (arity g c0 (THead (Flat Appl) u t0) 
-a0)).(let H5 \def (arity_gen_appl g c0 u t0 a0 H4) in (let TMP_211 \def 
-(\lambda (a4: A).(arity g c0 u a4)) in (let TMP_213 \def (\lambda (a4: 
-A).(let TMP_212 \def (AHead a4 a0) in (arity g c0 t0 TMP_212))) in (let 
-TMP_214 \def (leq g a3 a0) in (let TMP_217 \def (\lambda (x: A).(\lambda (_: 
-(arity g c0 u x)).(\lambda (H7: (arity g c0 t0 (AHead x a0))).(let TMP_215 
-\def (AHead x a0) in (let TMP_216 \def (H3 TMP_215 H7) in (ahead_inj_snd g a2 
-a3 x a0 TMP_216)))))) in (ex2_ind A TMP_211 TMP_213 TMP_214 TMP_217 
-H5))))))))))))))))) in (let TMP_224 \def (\lambda (c0: C).(\lambda (u: 
-T).(\lambda (a: A).(\lambda (_: (arity g c0 u (asucc g a))).(\lambda (_: 
-((\forall (a2: A).((arity g c0 u a2) \to (leq g (asucc g a) a2))))).(\lambda 
-(t0: T).(\lambda (_: (arity g c0 t0 a)).(\lambda (H3: ((\forall (a2: 
-A).((arity g c0 t0 a2) \to (leq g a a2))))).(\lambda (a2: A).(\lambda (H4: 
-(arity g c0 (THead (Flat Cast) u t0) a2)).(let H5 \def (arity_gen_cast g c0 u 
-t0 a2 H4) in (let TMP_219 \def (asucc g a2) in (let TMP_220 \def (arity g c0 
-u TMP_219) in (let TMP_221 \def (arity g c0 t0 a2) in (let TMP_222 \def (leq 
-g a a2) in (let TMP_223 \def (\lambda (_: (arity g c0 u (asucc g 
-a2))).(\lambda (H7: (arity g c0 t0 a2)).(H3 a2 H7))) in (land_ind TMP_220 
-TMP_221 TMP_222 TMP_223 H5))))))))))))))))) in (let TMP_227 \def (\lambda 
-(c0: C).(\lambda (t0: T).(\lambda (a2: A).(\lambda (_: (arity g c0 t0 
-a2)).(\lambda (H1: ((\forall (a3: A).((arity g c0 t0 a3) \to (leq g a2 
-a3))))).(\lambda (a3: A).(\lambda (H2: (leq g a2 a3)).(\lambda (a0: 
-A).(\lambda (H3: (arity g c0 t0 a0)).(let TMP_225 \def (leq_sym g a2 a3 H2) 
-in (let TMP_226 \def (H1 a0 H3) in (leq_trans g a3 a2 TMP_225 a0 
-TMP_226)))))))))))) in (arity_ind g TMP_1 TMP_4 TMP_92 TMP_184 TMP_191 
-TMP_210 TMP_218 TMP_224 TMP_227 c t a1 H)))))))))))))).
+nat).(\lambda (H4: (drop h d c1 c)).(eq_ind_r T (THead (Bind Abst) (lift h d 
+u) (lift h (s (Bind Abst) d) t0)) (\lambda (t1: T).(arity g c1 t1 (AHead a1 
+a2))) (arity_head g c1 (lift h d u) a1 (H1 c1 h d H4) (lift h (s (Bind Abst) 
+d) t0) a2 (H3 (CHead c1 (Bind Abst) (lift h d u)) h (s (Bind Abst) d) 
+(drop_skip_bind h d c1 c H4 Abst u))) (lift h d (THead (Bind Abst) u t0)) 
+(lift_head (Bind Abst) u t0 h d))))))))))))))) (\lambda (c: C).(\lambda (u: 
+T).(\lambda (a1: A).(\lambda (_: (arity g c u a1)).(\lambda (H1: ((\forall 
+(c1: C).(\forall (h: nat).(\forall (d: nat).((drop h d c1 c) \to (arity g c1 
+(lift h d u) a1))))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda (_: (arity 
+g c t0 (AHead a1 a2))).(\lambda (H3: ((\forall (c1: C).(\forall (h: 
+nat).(\forall (d: nat).((drop h d c1 c) \to (arity g c1 (lift h d t0) (AHead 
+a1 a2)))))))).(\lambda (c1: C).(\lambda (h: nat).(\lambda (d: nat).(\lambda 
+(H4: (drop h d c1 c)).(eq_ind_r T (THead (Flat Appl) (lift h d u) (lift h (s 
+(Flat Appl) d) t0)) (\lambda (t1: T).(arity g c1 t1 a2)) (arity_appl g c1 
+(lift h d u) a1 (H1 c1 h d H4) (lift h (s (Flat Appl) d) t0) a2 (H3 c1 h (s 
+(Flat Appl) d) H4)) (lift h d (THead (Flat Appl) u t0)) (lift_head (Flat 
+Appl) u t0 h d))))))))))))))) (\lambda (c: C).(\lambda (u: T).(\lambda (a0: 
+A).(\lambda (_: (arity g c u (asucc g a0))).(\lambda (H1: ((\forall (c1: 
+C).(\forall (h: nat).(\forall (d: nat).((drop h d c1 c) \to (arity g c1 (lift 
+h d u) (asucc g a0)))))))).(\lambda (t0: T).(\lambda (_: (arity g c t0 
+a0)).(\lambda (H3: ((\forall (c1: C).(\forall (h: nat).(\forall (d: 
+nat).((drop h d c1 c) \to (arity g c1 (lift h d t0) a0))))))).(\lambda (c1: 
+C).(\lambda (h: nat).(\lambda (d: nat).(\lambda (H4: (drop h d c1 
+c)).(eq_ind_r T (THead (Flat Cast) (lift h d u) (lift h (s (Flat Cast) d) 
+t0)) (\lambda (t1: T).(arity g c1 t1 a0)) (arity_cast g c1 (lift h d u) a0 
+(H1 c1 h d H4) (lift h (s (Flat Cast) d) t0) (H3 c1 h (s (Flat Cast) d) H4)) 
+(lift h d (THead (Flat Cast) u t0)) (lift_head (Flat Cast) u t0 h 
+d)))))))))))))) (\lambda (c: C).(\lambda (t0: T).(\lambda (a1: A).(\lambda 
+(_: (arity g c t0 a1)).(\lambda (H1: ((\forall (c1: C).(\forall (h: 
+nat).(\forall (d: nat).((drop h d c1 c) \to (arity g c1 (lift h d t0) 
+a1))))))).(\lambda (a2: A).(\lambda (H2: (leq g a1 a2)).(\lambda (c1: 
+C).(\lambda (h: nat).(\lambda (d: nat).(\lambda (H3: (drop h d c1 
+c)).(arity_repl g c1 (lift h d t0) a1 (H1 c1 h d H3) a2 H2)))))))))))) c2 t a 
+H))))).
 
 theorem arity_repellent:
  \forall (g: G).(\forall (c: C).(\forall (w: T).(\forall (t: T).(\forall (a1: 
@@ -511,23 +164,16 @@ Prop).P)))))))))
  \lambda (g: G).(\lambda (c: C).(\lambda (w: T).(\lambda (t: T).(\lambda (a1: 
 A).(\lambda (H: (arity g (CHead c (Bind Abst) w) t a1)).(\lambda (a2: 
 A).(\lambda (H0: (arity g c (THead (Bind Abst) w t) a2)).(\lambda (H1: (leq g 
-a1 a2)).(\lambda (P: Prop).(let TMP_1 \def (Bind Abst) in (let TMP_2 \def 
-(CHead c TMP_1 w) in (let H_y \def (arity_repl g TMP_2 t a1 H a2 H1) in (let 
-H2 \def (arity_gen_abst g c w t a2 H0) in (let TMP_4 \def (\lambda (a3: 
-A).(\lambda (a4: A).(let TMP_3 \def (AHead a3 a4) in (eq A a2 TMP_3)))) in 
-(let TMP_6 \def (\lambda (a3: A).(\lambda (_: A).(let TMP_5 \def (asucc g a3) 
-in (arity g c w TMP_5)))) in (let TMP_9 \def (\lambda (_: A).(\lambda (a4: 
-A).(let TMP_7 \def (Bind Abst) in (let TMP_8 \def (CHead c TMP_7 w) in (arity 
-g TMP_8 t a4))))) in (let TMP_18 \def (\lambda (x0: A).(\lambda (x1: 
+a1 a2)).(\lambda (P: Prop).(let H_y \def (arity_repl g (CHead c (Bind Abst) 
+w) t a1 H a2 H1) in (let H2 \def (arity_gen_abst g c w t a2 H0) in (ex3_2_ind 
+A A (\lambda (a3: A).(\lambda (a4: A).(eq A a2 (AHead a3 a4)))) (\lambda (a3: 
+A).(\lambda (_: A).(arity g c w (asucc g a3)))) (\lambda (_: A).(\lambda (a4: 
+A).(arity g (CHead c (Bind Abst) w) t a4))) P (\lambda (x0: A).(\lambda (x1: 
 A).(\lambda (H3: (eq A a2 (AHead x0 x1))).(\lambda (_: (arity g c w (asucc g 
-x0))).(\lambda (H5: (arity g (CHead c (Bind Abst) w) t x1)).(let TMP_12 \def 
-(\lambda (a: A).(let TMP_10 \def (Bind Abst) in (let TMP_11 \def (CHead c 
-TMP_10 w) in (arity g TMP_11 t a)))) in (let TMP_13 \def (AHead x0 x1) in 
-(let H6 \def (eq_ind A a2 TMP_12 H_y TMP_13 H3) in (let TMP_14 \def (Bind 
-Abst) in (let TMP_15 \def (CHead c TMP_14 w) in (let TMP_16 \def (AHead x0 
-x1) in (let TMP_17 \def (arity_mono g TMP_15 t TMP_16 H6 x1 H5) in 
-(leq_ahead_false_2 g x1 x0 TMP_17 P))))))))))))) in (ex3_2_ind A A TMP_4 
-TMP_6 TMP_9 P TMP_18 H2)))))))))))))))))).
+x0))).(\lambda (H5: (arity g (CHead c (Bind Abst) w) t x1)).(let H6 \def 
+(eq_ind A a2 (\lambda (a: A).(arity g (CHead c (Bind Abst) w) t a)) H_y 
+(AHead x0 x1) H3) in (leq_ahead_false_2 g x1 x0 (arity_mono g (CHead c (Bind 
+Abst) w) t (AHead x0 x1) H6 x1 H5) P))))))) H2)))))))))))).
 
 theorem arity_appls_cast:
  \forall (g: G).(\forall (c: C).(\forall (u: T).(\forall (t: T).(\forall (vs: 
@@ -536,58 +182,33 @@ TList).(\forall (a: A).((arity g c (THeads (Flat Appl) vs u) (asucc g a)) \to
 vs (THead (Flat Cast) u t)) a))))))))
 \def
  \lambda (g: G).(\lambda (c: C).(\lambda (u: T).(\lambda (t: T).(\lambda (vs: 
-TList).(let TMP_5 \def (\lambda (t0: TList).(\forall (a: A).((arity g c 
-(THeads (Flat Appl) t0 u) (asucc g a)) \to ((arity g c (THeads (Flat Appl) t0 
-t) a) \to (let TMP_1 \def (Flat Appl) in (let TMP_2 \def (Flat Cast) in (let 
-TMP_3 \def (THead TMP_2 u t) in (let TMP_4 \def (THeads TMP_1 t0 TMP_3) in 
-(arity g c TMP_4 a))))))))) in (let TMP_6 \def (\lambda (a: A).(\lambda (H: 
-(arity g c u (asucc g a))).(\lambda (H0: (arity g c t a)).(arity_cast g c u a 
-H t H0)))) in (let TMP_68 \def (\lambda (t0: T).(\lambda (t1: TList).(\lambda 
-(H: ((\forall (a: A).((arity g c (THeads (Flat Appl) t1 u) (asucc g a)) \to 
-((arity g c (THeads (Flat Appl) t1 t) a) \to (arity g c (THeads (Flat Appl) 
-t1 (THead (Flat Cast) u t)) a)))))).(\lambda (a: A).(\lambda (H0: (arity g c 
-(THead (Flat Appl) t0 (THeads (Flat Appl) t1 u)) (asucc g a))).(\lambda (H1: 
-(arity g c (THead (Flat Appl) t0 (THeads (Flat Appl) t1 t)) a)).(let TMP_7 
-\def (Flat Appl) in (let TMP_8 \def (THeads TMP_7 t1 t) in (let H2 \def 
-(arity_gen_appl g c t0 TMP_8 a H1) in (let TMP_9 \def (\lambda (a1: A).(arity 
-g c t0 a1)) in (let TMP_13 \def (\lambda (a1: A).(let TMP_10 \def (Flat Appl) 
-in (let TMP_11 \def (THeads TMP_10 t1 t) in (let TMP_12 \def (AHead a1 a) in 
-(arity g c TMP_11 TMP_12))))) in (let TMP_14 \def (Flat Appl) in (let TMP_15 
-\def (Flat Appl) in (let TMP_16 \def (Flat Cast) in (let TMP_17 \def (THead 
-TMP_16 u t) in (let TMP_18 \def (THeads TMP_15 t1 TMP_17) in (let TMP_19 \def 
-(THead TMP_14 t0 TMP_18) in (let TMP_20 \def (arity g c TMP_19 a) in (let 
-TMP_67 \def (\lambda (x: A).(\lambda (H3: (arity g c t0 x)).(\lambda (H4: 
-(arity g c (THeads (Flat Appl) t1 t) (AHead x a))).(let TMP_21 \def (Flat 
-Appl) in (let TMP_22 \def (THeads TMP_21 t1 u) in (let TMP_23 \def (asucc g 
-a) in (let H5 \def (arity_gen_appl g c t0 TMP_22 TMP_23 H0) in (let TMP_24 
-\def (\lambda (a1: A).(arity g c t0 a1)) in (let TMP_29 \def (\lambda (a1: 
-A).(let TMP_25 \def (Flat Appl) in (let TMP_26 \def (THeads TMP_25 t1 u) in 
-(let TMP_27 \def (asucc g a) in (let TMP_28 \def (AHead a1 TMP_27) in (arity 
-g c TMP_26 TMP_28)))))) in (let TMP_30 \def (Flat Appl) in (let TMP_31 \def 
-(Flat Appl) in (let TMP_32 \def (Flat Cast) in (let TMP_33 \def (THead TMP_32 
-u t) in (let TMP_34 \def (THeads TMP_31 t1 TMP_33) in (let TMP_35 \def (THead 
-TMP_30 t0 TMP_34) in (let TMP_36 \def (arity g c TMP_35 a) in (let TMP_66 
-\def (\lambda (x0: A).(\lambda (H6: (arity g c t0 x0)).(\lambda (H7: (arity g 
-c (THeads (Flat Appl) t1 u) (AHead x0 (asucc g a)))).(let TMP_37 \def (Flat 
-Appl) in (let TMP_38 \def (Flat Cast) in (let TMP_39 \def (THead TMP_38 u t) 
-in (let TMP_40 \def (THeads TMP_37 t1 TMP_39) in (let TMP_41 \def (AHead x a) 
-in (let TMP_42 \def (Flat Appl) in (let TMP_43 \def (THeads TMP_42 t1 u) in 
-(let TMP_44 \def (asucc g a) in (let TMP_45 \def (AHead x TMP_44) in (let 
-TMP_46 \def (Flat Appl) in (let TMP_47 \def (THeads TMP_46 t1 u) in (let 
-TMP_48 \def (asucc g a) in (let TMP_49 \def (AHead x0 TMP_48) in (let TMP_50 
-\def (asucc g a) in (let TMP_51 \def (AHead x TMP_50) in (let TMP_52 \def 
-(arity_mono g c t0 x0 H6 x H3) in (let TMP_53 \def (asucc g a) in (let TMP_54 
-\def (asucc g a) in (let TMP_55 \def (asucc g a) in (let TMP_56 \def 
-(leq_refl g TMP_55) in (let TMP_57 \def (leq_head g x0 x TMP_52 TMP_53 TMP_54 
-TMP_56) in (let TMP_58 \def (arity_repl g c TMP_47 TMP_49 H7 TMP_51 TMP_57) 
-in (let TMP_59 \def (AHead x a) in (let TMP_60 \def (asucc g TMP_59) in (let 
-TMP_61 \def (AHead x a) in (let TMP_62 \def (asucc g TMP_61) in (let TMP_63 
-\def (leq_refl g TMP_62) in (let TMP_64 \def (arity_repl g c TMP_43 TMP_45 
-TMP_58 TMP_60 TMP_63) in (let TMP_65 \def (H TMP_41 TMP_64 H4) in (arity_appl 
-g c t0 x H3 TMP_40 a TMP_65))))))))))))))))))))))))))))))))) in (ex2_ind A 
-TMP_24 TMP_29 TMP_36 TMP_66 H5)))))))))))))))))) in (ex2_ind A TMP_9 TMP_13 
-TMP_20 TMP_67 H2)))))))))))))))))))) in (TList_ind TMP_5 TMP_6 TMP_68 
-vs)))))))).
+TList).(TList_ind (\lambda (t0: TList).(\forall (a: A).((arity g c (THeads 
+(Flat Appl) t0 u) (asucc g a)) \to ((arity g c (THeads (Flat Appl) t0 t) a) 
+\to (arity g c (THeads (Flat Appl) t0 (THead (Flat Cast) u t)) a))))) 
+(\lambda (a: A).(\lambda (H: (arity g c u (asucc g a))).(\lambda (H0: (arity 
+g c t a)).(arity_cast g c u a H t H0)))) (\lambda (t0: T).(\lambda (t1: 
+TList).(\lambda (H: ((\forall (a: A).((arity g c (THeads (Flat Appl) t1 u) 
+(asucc g a)) \to ((arity g c (THeads (Flat Appl) t1 t) a) \to (arity g c 
+(THeads (Flat Appl) t1 (THead (Flat Cast) u t)) a)))))).(\lambda (a: 
+A).(\lambda (H0: (arity g c (THead (Flat Appl) t0 (THeads (Flat Appl) t1 u)) 
+(asucc g a))).(\lambda (H1: (arity g c (THead (Flat Appl) t0 (THeads (Flat 
+Appl) t1 t)) a)).(let H2 \def (arity_gen_appl g c t0 (THeads (Flat Appl) t1 
+t) a H1) in (ex2_ind A (\lambda (a1: A).(arity g c t0 a1)) (\lambda (a1: 
+A).(arity g c (THeads (Flat Appl) t1 t) (AHead a1 a))) (arity g c (THead 
+(Flat Appl) t0 (THeads (Flat Appl) t1 (THead (Flat Cast) u t))) a) (\lambda 
+(x: A).(\lambda (H3: (arity g c t0 x)).(\lambda (H4: (arity g c (THeads (Flat 
+Appl) t1 t) (AHead x a))).(let H5 \def (arity_gen_appl g c t0 (THeads (Flat 
+Appl) t1 u) (asucc g a) H0) in (ex2_ind A (\lambda (a1: A).(arity g c t0 a1)) 
+(\lambda (a1: A).(arity g c (THeads (Flat Appl) t1 u) (AHead a1 (asucc g 
+a)))) (arity g c (THead (Flat Appl) t0 (THeads (Flat Appl) t1 (THead (Flat 
+Cast) u t))) a) (\lambda (x0: A).(\lambda (H6: (arity g c t0 x0)).(\lambda 
+(H7: (arity g c (THeads (Flat Appl) t1 u) (AHead x0 (asucc g 
+a)))).(arity_appl g c t0 x H3 (THeads (Flat Appl) t1 (THead (Flat Cast) u t)) 
+a (H (AHead x a) (arity_repl g c (THeads (Flat Appl) t1 u) (AHead x (asucc g 
+a)) (arity_repl g c (THeads (Flat Appl) t1 u) (AHead x0 (asucc g a)) H7 
+(AHead x (asucc g a)) (leq_head g x0 x (arity_mono g c t0 x0 H6 x H3) (asucc 
+g a) (asucc g a) (leq_refl g (asucc g a)))) (asucc g (AHead x a)) (leq_refl g 
+(asucc g (AHead x a)))) H4))))) H5))))) H2)))))))) vs))))).
 
 theorem arity_appls_abbr:
  \forall (g: G).(\forall (c: C).(\forall (d: C).(\forall (v: T).(\forall (i: 
@@ -597,33 +218,21 @@ nat).((getl i c (CHead d (Bind Abbr) v)) \to (\forall (vs: TList).(\forall
 \def
  \lambda (g: G).(\lambda (c: C).(\lambda (d: C).(\lambda (v: T).(\lambda (i: 
 nat).(\lambda (H: (getl i c (CHead d (Bind Abbr) v))).(\lambda (vs: 
-TList).(let TMP_4 \def (\lambda (t: TList).(\forall (a: A).((arity g c 
-(THeads (Flat Appl) t (lift (S i) O v)) a) \to (let TMP_1 \def (Flat Appl) in 
-(let TMP_2 \def (TLRef i) in (let TMP_3 \def (THeads TMP_1 t TMP_2) in (arity 
-g c TMP_3 a))))))) in (let TMP_8 \def (\lambda (a: A).(\lambda (H0: (arity g 
-c (lift (S i) O v) a)).(let TMP_5 \def (S i) in (let TMP_6 \def (getl_drop 
-Abbr c d v i H) in (let TMP_7 \def (arity_gen_lift g c v a TMP_5 O H0 d 
-TMP_6) in (arity_abbr g c d v i H a TMP_7)))))) in (let TMP_32 \def (\lambda 
-(t: T).(\lambda (t0: TList).(\lambda (H0: ((\forall (a: A).((arity g c 
-(THeads (Flat Appl) t0 (lift (S i) O v)) a) \to (arity g c (THeads (Flat 
-Appl) t0 (TLRef i)) a))))).(\lambda (a: A).(\lambda (H1: (arity g c (THead 
-(Flat Appl) t (THeads (Flat Appl) t0 (lift (S i) O v))) a)).(let TMP_9 \def 
-(Flat Appl) in (let TMP_10 \def (S i) in (let TMP_11 \def (lift TMP_10 O v) 
-in (let TMP_12 \def (THeads TMP_9 t0 TMP_11) in (let H2 \def (arity_gen_appl 
-g c t TMP_12 a H1) in (let TMP_13 \def (\lambda (a1: A).(arity g c t a1)) in 
-(let TMP_19 \def (\lambda (a1: A).(let TMP_14 \def (Flat Appl) in (let TMP_15 
-\def (S i) in (let TMP_16 \def (lift TMP_15 O v) in (let TMP_17 \def (THeads 
-TMP_14 t0 TMP_16) in (let TMP_18 \def (AHead a1 a) in (arity g c TMP_17 
-TMP_18))))))) in (let TMP_20 \def (Flat Appl) in (let TMP_21 \def (Flat Appl) 
-in (let TMP_22 \def (TLRef i) in (let TMP_23 \def (THeads TMP_21 t0 TMP_22) 
-in (let TMP_24 \def (THead TMP_20 t TMP_23) in (let TMP_25 \def (arity g c 
-TMP_24 a) in (let TMP_31 \def (\lambda (x: A).(\lambda (H3: (arity g c t 
-x)).(\lambda (H4: (arity g c (THeads (Flat Appl) t0 (lift (S i) O v)) (AHead 
-x a))).(let TMP_26 \def (Flat Appl) in (let TMP_27 \def (TLRef i) in (let 
-TMP_28 \def (THeads TMP_26 t0 TMP_27) in (let TMP_29 \def (AHead x a) in (let 
-TMP_30 \def (H0 TMP_29 H4) in (arity_appl g c t x H3 TMP_28 a TMP_30))))))))) 
-in (ex2_ind A TMP_13 TMP_19 TMP_25 TMP_31 H2)))))))))))))))))))) in 
-(TList_ind TMP_4 TMP_8 TMP_32 vs)))))))))).
+TList).(TList_ind (\lambda (t: TList).(\forall (a: A).((arity g c (THeads 
+(Flat Appl) t (lift (S i) O v)) a) \to (arity g c (THeads (Flat Appl) t 
+(TLRef i)) a)))) (\lambda (a: A).(\lambda (H0: (arity g c (lift (S i) O v) 
+a)).(arity_abbr g c d v i H a (arity_gen_lift g c v a (S i) O H0 d (getl_drop 
+Abbr c d v i H))))) (\lambda (t: T).(\lambda (t0: TList).(\lambda (H0: 
+((\forall (a: A).((arity g c (THeads (Flat Appl) t0 (lift (S i) O v)) a) \to 
+(arity g c (THeads (Flat Appl) t0 (TLRef i)) a))))).(\lambda (a: A).(\lambda 
+(H1: (arity g c (THead (Flat Appl) t (THeads (Flat Appl) t0 (lift (S i) O 
+v))) a)).(let H2 \def (arity_gen_appl g c t (THeads (Flat Appl) t0 (lift (S 
+i) O v)) a H1) in (ex2_ind A (\lambda (a1: A).(arity g c t a1)) (\lambda (a1: 
+A).(arity g c (THeads (Flat Appl) t0 (lift (S i) O v)) (AHead a1 a))) (arity 
+g c (THead (Flat Appl) t (THeads (Flat Appl) t0 (TLRef i))) a) (\lambda (x: 
+A).(\lambda (H3: (arity g c t x)).(\lambda (H4: (arity g c (THeads (Flat 
+Appl) t0 (lift (S i) O v)) (AHead x a))).(arity_appl g c t x H3 (THeads (Flat 
+Appl) t0 (TLRef i)) a (H0 (AHead x a) H4))))) H2))))))) vs))))))).
 
 theorem arity_appls_bind:
  \forall (g: G).(\forall (b: B).((not (eq B b Abst)) \to (\forall (c: 
@@ -634,42 +243,24 @@ Appl) vs (THead (Bind b) v t)) a2)))))))))))
 \def
  \lambda (g: G).(\lambda (b: B).(\lambda (H: (not (eq B b Abst))).(\lambda 
 (c: C).(\lambda (v: T).(\lambda (a1: A).(\lambda (H0: (arity g c v 
-a1)).(\lambda (t: T).(\lambda (vs: TList).(let TMP_5 \def (\lambda (t0: 
+a1)).(\lambda (t: T).(\lambda (vs: TList).(TList_ind (\lambda (t0: 
 TList).(\forall (a2: A).((arity g (CHead c (Bind b) v) (THeads (Flat Appl) 
-(lifts (S O) O t0) t) a2) \to (let TMP_1 \def (Flat Appl) in (let TMP_2 \def 
-(Bind b) in (let TMP_3 \def (THead TMP_2 v t) in (let TMP_4 \def (THeads 
-TMP_1 t0 TMP_3) in (arity g c TMP_4 a2)))))))) in (let TMP_6 \def (\lambda 
-(a2: A).(\lambda (H1: (arity g (CHead c (Bind b) v) t a2)).(arity_bind g b H 
-c v a1 H0 t a2 H1))) in (let TMP_49 \def (\lambda (t0: T).(\lambda (t1: 
+(lifts (S O) O t0) t) a2) \to (arity g c (THeads (Flat Appl) t0 (THead (Bind 
+b) v t)) a2)))) (\lambda (a2: A).(\lambda (H1: (arity g (CHead c (Bind b) v) 
+t a2)).(arity_bind g b H c v a1 H0 t a2 H1))) (\lambda (t0: T).(\lambda (t1: 
 TList).(\lambda (H1: ((\forall (a2: A).((arity g (CHead c (Bind b) v) (THeads 
 (Flat Appl) (lifts (S O) O t1) t) a2) \to (arity g c (THeads (Flat Appl) t1 
 (THead (Bind b) v t)) a2))))).(\lambda (a2: A).(\lambda (H2: (arity g (CHead 
 c (Bind b) v) (THead (Flat Appl) (lift (S O) O t0) (THeads (Flat Appl) (lifts 
-(S O) O t1) t)) a2)).(let TMP_7 \def (Bind b) in (let TMP_8 \def (CHead c 
-TMP_7 v) in (let TMP_9 \def (S O) in (let TMP_10 \def (lift TMP_9 O t0) in 
-(let TMP_11 \def (Flat Appl) in (let TMP_12 \def (S O) in (let TMP_13 \def 
-(lifts TMP_12 O t1) in (let TMP_14 \def (THeads TMP_11 TMP_13 t) in (let H3 
-\def (arity_gen_appl g TMP_8 TMP_10 TMP_14 a2 H2) in (let TMP_19 \def 
-(\lambda (a3: A).(let TMP_15 \def (Bind b) in (let TMP_16 \def (CHead c 
-TMP_15 v) in (let TMP_17 \def (S O) in (let TMP_18 \def (lift TMP_17 O t0) in 
-(arity g TMP_16 TMP_18 a3)))))) in (let TMP_27 \def (\lambda (a3: A).(let 
-TMP_20 \def (Bind b) in (let TMP_21 \def (CHead c TMP_20 v) in (let TMP_22 
-\def (Flat Appl) in (let TMP_23 \def (S O) in (let TMP_24 \def (lifts TMP_23 
-O t1) in (let TMP_25 \def (THeads TMP_22 TMP_24 t) in (let TMP_26 \def (AHead 
-a3 a2) in (arity g TMP_21 TMP_25 TMP_26))))))))) in (let TMP_28 \def (Flat 
-Appl) in (let TMP_29 \def (Flat Appl) in (let TMP_30 \def (Bind b) in (let 
-TMP_31 \def (THead TMP_30 v t) in (let TMP_32 \def (THeads TMP_29 t1 TMP_31) 
-in (let TMP_33 \def (THead TMP_28 t0 TMP_32) in (let TMP_34 \def (arity g c 
-TMP_33 a2) in (let TMP_48 \def (\lambda (x: A).(\lambda (H4: (arity g (CHead 
-c (Bind b) v) (lift (S O) O t0) x)).(\lambda (H5: (arity g (CHead c (Bind b) 
-v) (THeads (Flat Appl) (lifts (S O) O t1) t) (AHead x a2))).(let TMP_35 \def 
-(Bind b) in (let TMP_36 \def (CHead c TMP_35 v) in (let TMP_37 \def (S O) in 
-(let TMP_38 \def (Bind b) in (let TMP_39 \def (drop_refl c) in (let TMP_40 
-\def (drop_drop TMP_38 O c c TMP_39 v) in (let TMP_41 \def (arity_gen_lift g 
-TMP_36 t0 x TMP_37 O H4 c TMP_40) in (let TMP_42 \def (Flat Appl) in (let 
-TMP_43 \def (Bind b) in (let TMP_44 \def (THead TMP_43 v t) in (let TMP_45 
-\def (THeads TMP_42 t1 TMP_44) in (let TMP_46 \def (AHead x a2) in (let 
-TMP_47 \def (H1 TMP_46 H5) in (arity_appl g c t0 x TMP_41 TMP_45 a2 
-TMP_47))))))))))))))))) in (ex2_ind A TMP_19 TMP_27 TMP_34 TMP_48 
-H3))))))))))))))))))))))))) in (TList_ind TMP_5 TMP_6 TMP_49 vs)))))))))))).
+(S O) O t1) t)) a2)).(let H3 \def (arity_gen_appl g (CHead c (Bind b) v) 
+(lift (S O) O t0) (THeads (Flat Appl) (lifts (S O) O t1) t) a2 H2) in 
+(ex2_ind A (\lambda (a3: A).(arity g (CHead c (Bind b) v) (lift (S O) O t0) 
+a3)) (\lambda (a3: A).(arity g (CHead c (Bind b) v) (THeads (Flat Appl) 
+(lifts (S O) O t1) t) (AHead a3 a2))) (arity g c (THead (Flat Appl) t0 
+(THeads (Flat Appl) t1 (THead (Bind b) v t))) a2) (\lambda (x: A).(\lambda 
+(H4: (arity g (CHead c (Bind b) v) (lift (S O) O t0) x)).(\lambda (H5: (arity 
+g (CHead c (Bind b) v) (THeads (Flat Appl) (lifts (S O) O t1) t) (AHead x 
+a2))).(arity_appl g c t0 x (arity_gen_lift g (CHead c (Bind b) v) t0 x (S O) 
+O H4 c (drop_drop (Bind b) O c c (drop_refl c) v)) (THeads (Flat Appl) t1 
+(THead (Bind b) v t)) a2 (H1 (AHead x a2) H5))))) H3))))))) vs))))))))).
 
index c4943e118eccb9d773032bdf9611da09e9913576..303985054b92a71f7c8aa13dcc4c30b44b28ecee 100644 (file)
@@ -19,7 +19,7 @@ include "basic_1/A/defs.ma".
 include "basic_1/G/defs.ma".
 
 let rec asucc (g: G) (l: A) on l: A \def match l with [(ASort n0 n) 
-\Rightarrow (match n0 with [O \Rightarrow (let TMP_2 \def (next g n) in 
-(ASort O TMP_2)) | (S h) \Rightarrow (ASort h n)]) | (AHead a1 a2) 
-\Rightarrow (let TMP_1 \def (asucc g a2) in (AHead a1 TMP_1))].
+\Rightarrow (match n0 with [O \Rightarrow (ASort O (next g n)) | (S h) 
+\Rightarrow (ASort h n)]) | (AHead a1 a2) \Rightarrow (AHead a1 (asucc g 
+a2))].
 
index 6fc72b866f876b1ff8c2e209a65b30c65b09a357..c25e24f0d0d249c946ae6203e1e9b7fe8270b584 100644 (file)
@@ -23,110 +23,70 @@ theorem asucc_gen_sort:
 (ASort h n) (asucc g a)) \to (ex_2 nat nat (\lambda (h0: nat).(\lambda (n0: 
 nat).(eq A a (ASort h0 n0)))))))))
 \def
- \lambda (g: G).(\lambda (h: nat).(\lambda (n: nat).(\lambda (a: A).(let 
-TMP_3 \def (\lambda (a0: A).((eq A (ASort h n) (asucc g a0)) \to (let TMP_2 
-\def (\lambda (h0: nat).(\lambda (n0: nat).(let TMP_1 \def (ASort h0 n0) in 
-(eq A a0 TMP_1)))) in (ex_2 nat nat TMP_2)))) in (let TMP_13 \def (\lambda 
-(n0: nat).(\lambda (n1: nat).(\lambda (H: (eq A (ASort h n) (asucc g (ASort 
-n0 n1)))).(let TMP_4 \def (\lambda (e: A).e) in (let TMP_5 \def (ASort h n) 
-in (let TMP_7 \def (match n0 with [O \Rightarrow (let TMP_6 \def (next g n1) 
-in (ASort O TMP_6)) | (S h0) \Rightarrow (ASort h0 n1)]) in (let H0 \def 
-(f_equal A A TMP_4 TMP_5 TMP_7 H) in (let TMP_10 \def (\lambda (h0: 
-nat).(\lambda (n2: nat).(let TMP_8 \def (ASort n0 n1) in (let TMP_9 \def 
-(ASort h0 n2) in (eq A TMP_8 TMP_9))))) in (let TMP_11 \def (ASort n0 n1) in 
-(let TMP_12 \def (refl_equal A TMP_11) in (ex_2_intro nat nat TMP_10 n0 n1 
-TMP_12))))))))))) in (let TMP_22 \def (\lambda (a0: A).(\lambda (_: (((eq A 
-(ASort h n) (asucc g a0)) \to (ex_2 nat nat (\lambda (h0: nat).(\lambda (n0: 
-nat).(eq A a0 (ASort h0 n0)))))))).(\lambda (a1: A).(\lambda (_: (((eq A 
-(ASort h n) (asucc g a1)) \to (ex_2 nat nat (\lambda (h0: nat).(\lambda (n0: 
-nat).(eq A a1 (ASort h0 n0)))))))).(\lambda (H1: (eq A (ASort h n) (asucc g 
-(AHead a0 a1)))).(let TMP_14 \def (ASort h n) in (let TMP_15 \def (\lambda 
-(ee: A).(match ee with [(ASort _ _) \Rightarrow True | (AHead _ _) 
-\Rightarrow False])) in (let TMP_16 \def (AHead a0 a1) in (let TMP_17 \def 
-(asucc g TMP_16) in (let H2 \def (eq_ind A TMP_14 TMP_15 I TMP_17 H1) in (let 
-TMP_20 \def (\lambda (h0: nat).(\lambda (n0: nat).(let TMP_18 \def (AHead a0 
-a1) in (let TMP_19 \def (ASort h0 n0) in (eq A TMP_18 TMP_19))))) in (let 
-TMP_21 \def (ex_2 nat nat TMP_20) in (False_ind TMP_21 H2))))))))))))) in 
-(A_ind TMP_3 TMP_13 TMP_22 a))))))).
+ \lambda (g: G).(\lambda (h: nat).(\lambda (n: nat).(\lambda (a: A).(A_ind 
+(\lambda (a0: A).((eq A (ASort h n) (asucc g a0)) \to (ex_2 nat nat (\lambda 
+(h0: nat).(\lambda (n0: nat).(eq A a0 (ASort h0 n0))))))) (\lambda (n0: 
+nat).(\lambda (n1: nat).(\lambda (H: (eq A (ASort h n) (asucc g (ASort n0 
+n1)))).(let H0 \def (f_equal A A (\lambda (e: A).e) (ASort h n) (match n0 
+with [O \Rightarrow (ASort O (next g n1)) | (S h0) \Rightarrow (ASort h0 
+n1)]) H) in (ex_2_intro nat nat (\lambda (h0: nat).(\lambda (n2: nat).(eq A 
+(ASort n0 n1) (ASort h0 n2)))) n0 n1 (refl_equal A (ASort n0 n1))))))) 
+(\lambda (a0: A).(\lambda (_: (((eq A (ASort h n) (asucc g a0)) \to (ex_2 nat 
+nat (\lambda (h0: nat).(\lambda (n0: nat).(eq A a0 (ASort h0 
+n0)))))))).(\lambda (a1: A).(\lambda (_: (((eq A (ASort h n) (asucc g a1)) 
+\to (ex_2 nat nat (\lambda (h0: nat).(\lambda (n0: nat).(eq A a1 (ASort h0 
+n0)))))))).(\lambda (H1: (eq A (ASort h n) (asucc g (AHead a0 a1)))).(let H2 
+\def (eq_ind A (ASort h n) (\lambda (ee: A).(match ee with [(ASort _ _) 
+\Rightarrow True | (AHead _ _) \Rightarrow False])) I (asucc g (AHead a0 a1)) 
+H1) in (False_ind (ex_2 nat nat (\lambda (h0: nat).(\lambda (n0: nat).(eq A 
+(AHead a0 a1) (ASort h0 n0))))) H2))))))) a)))).
 
 theorem asucc_gen_head:
  \forall (g: G).(\forall (a1: A).(\forall (a2: A).(\forall (a: A).((eq A 
 (AHead a1 a2) (asucc g a)) \to (ex2 A (\lambda (a0: A).(eq A a (AHead a1 
 a0))) (\lambda (a0: A).(eq A a2 (asucc g a0))))))))
 \def
- \lambda (g: G).(\lambda (a1: A).(\lambda (a2: A).(\lambda (a: A).(let TMP_5 
-\def (\lambda (a0: A).((eq A (AHead a1 a2) (asucc g a0)) \to (let TMP_2 \def 
-(\lambda (a3: A).(let TMP_1 \def (AHead a1 a3) in (eq A a0 TMP_1))) in (let 
-TMP_4 \def (\lambda (a3: A).(let TMP_3 \def (asucc g a3) in (eq A a2 TMP_3))) 
-in (ex2 A TMP_2 TMP_4))))) in (let TMP_34 \def (\lambda (n: nat).(\lambda 
-(n0: nat).(\lambda (H: (eq A (AHead a1 a2) (asucc g (ASort n n0)))).(let 
-TMP_11 \def (\lambda (n1: nat).((eq A (AHead a1 a2) (asucc g (ASort n1 n0))) 
-\to (let TMP_8 \def (\lambda (a0: A).(let TMP_6 \def (ASort n1 n0) in (let 
-TMP_7 \def (AHead a1 a0) in (eq A TMP_6 TMP_7)))) in (let TMP_10 \def 
-(\lambda (a0: A).(let TMP_9 \def (asucc g a0) in (eq A a2 TMP_9))) in (ex2 A 
-TMP_8 TMP_10))))) in (let TMP_22 \def (\lambda (H0: (eq A (AHead a1 a2) 
-(asucc g (ASort O n0)))).(let TMP_12 \def (AHead a1 a2) in (let TMP_13 \def 
+ \lambda (g: G).(\lambda (a1: A).(\lambda (a2: A).(\lambda (a: A).(A_ind 
+(\lambda (a0: A).((eq A (AHead a1 a2) (asucc g a0)) \to (ex2 A (\lambda (a3: 
+A).(eq A a0 (AHead a1 a3))) (\lambda (a3: A).(eq A a2 (asucc g a3)))))) 
+(\lambda (n: nat).(\lambda (n0: nat).(\lambda (H: (eq A (AHead a1 a2) (asucc 
+g (ASort n n0)))).(nat_ind (\lambda (n1: nat).((eq A (AHead a1 a2) (asucc g 
+(ASort n1 n0))) \to (ex2 A (\lambda (a0: A).(eq A (ASort n1 n0) (AHead a1 
+a0))) (\lambda (a0: A).(eq A a2 (asucc g a0)))))) (\lambda (H0: (eq A (AHead 
+a1 a2) (asucc g (ASort O n0)))).(let H1 \def (eq_ind A (AHead a1 a2) (\lambda 
+(ee: A).(match ee with [(ASort _ _) \Rightarrow False | (AHead _ _) 
+\Rightarrow True])) I (ASort O (next g n0)) H0) in (False_ind (ex2 A (\lambda 
+(a0: A).(eq A (ASort O n0) (AHead a1 a0))) (\lambda (a0: A).(eq A a2 (asucc g 
+a0)))) H1))) (\lambda (n1: nat).(\lambda (_: (((eq A (AHead a1 a2) (asucc g 
+(ASort n1 n0))) \to (ex2 A (\lambda (a0: A).(eq A (ASort n1 n0) (AHead a1 
+a0))) (\lambda (a0: A).(eq A a2 (asucc g a0))))))).(\lambda (H0: (eq A (AHead 
+a1 a2) (asucc g (ASort (S n1) n0)))).(let H1 \def (eq_ind A (AHead a1 a2) 
 (\lambda (ee: A).(match ee with [(ASort _ _) \Rightarrow False | (AHead _ _) 
-\Rightarrow True])) in (let TMP_14 \def (next g n0) in (let TMP_15 \def 
-(ASort O TMP_14) in (let H1 \def (eq_ind A TMP_12 TMP_13 I TMP_15 H0) in (let 
-TMP_18 \def (\lambda (a0: A).(let TMP_16 \def (ASort O n0) in (let TMP_17 
-\def (AHead a1 a0) in (eq A TMP_16 TMP_17)))) in (let TMP_20 \def (\lambda 
-(a0: A).(let TMP_19 \def (asucc g a0) in (eq A a2 TMP_19))) in (let TMP_21 
-\def (ex2 A TMP_18 TMP_20) in (False_ind TMP_21 H1)))))))))) in (let TMP_33 
-\def (\lambda (n1: nat).(\lambda (_: (((eq A (AHead a1 a2) (asucc g (ASort n1 
-n0))) \to (ex2 A (\lambda (a0: A).(eq A (ASort n1 n0) (AHead a1 a0))) 
-(\lambda (a0: A).(eq A a2 (asucc g a0))))))).(\lambda (H0: (eq A (AHead a1 
-a2) (asucc g (ASort (S n1) n0)))).(let TMP_23 \def (AHead a1 a2) in (let 
-TMP_24 \def (\lambda (ee: A).(match ee with [(ASort _ _) \Rightarrow False | 
-(AHead _ _) \Rightarrow True])) in (let TMP_25 \def (ASort n1 n0) in (let H1 
-\def (eq_ind A TMP_23 TMP_24 I TMP_25 H0) in (let TMP_29 \def (\lambda (a0: 
-A).(let TMP_26 \def (S n1) in (let TMP_27 \def (ASort TMP_26 n0) in (let 
-TMP_28 \def (AHead a1 a0) in (eq A TMP_27 TMP_28))))) in (let TMP_31 \def 
-(\lambda (a0: A).(let TMP_30 \def (asucc g a0) in (eq A a2 TMP_30))) in (let 
-TMP_32 \def (ex2 A TMP_29 TMP_31) in (False_ind TMP_32 H1))))))))))) in 
-(nat_ind TMP_11 TMP_22 TMP_33 n H))))))) in (let TMP_86 \def (\lambda (a0: 
-A).(\lambda (H: (((eq A (AHead a1 a2) (asucc g a0)) \to (ex2 A (\lambda (a3: 
-A).(eq A a0 (AHead a1 a3))) (\lambda (a3: A).(eq A a2 (asucc g 
-a3))))))).(\lambda (a3: A).(\lambda (H0: (((eq A (AHead a1 a2) (asucc g a3)) 
-\to (ex2 A (\lambda (a4: A).(eq A a3 (AHead a1 a4))) (\lambda (a4: A).(eq A 
-a2 (asucc g a4))))))).(\lambda (H1: (eq A (AHead a1 a2) (asucc g (AHead a0 
-a3)))).(let TMP_35 \def (\lambda (e: A).(match e with [(ASort _ _) 
-\Rightarrow a1 | (AHead a4 _) \Rightarrow a4])) in (let TMP_36 \def (AHead a1 
-a2) in (let TMP_37 \def (asucc g a3) in (let TMP_38 \def (AHead a0 TMP_37) in 
-(let H2 \def (f_equal A A TMP_35 TMP_36 TMP_38 H1) in (let TMP_39 \def 
+\Rightarrow True])) I (ASort n1 n0) H0) in (False_ind (ex2 A (\lambda (a0: 
+A).(eq A (ASort (S n1) n0) (AHead a1 a0))) (\lambda (a0: A).(eq A a2 (asucc g 
+a0)))) H1))))) n H)))) (\lambda (a0: A).(\lambda (H: (((eq A (AHead a1 a2) 
+(asucc g a0)) \to (ex2 A (\lambda (a3: A).(eq A a0 (AHead a1 a3))) (\lambda 
+(a3: A).(eq A a2 (asucc g a3))))))).(\lambda (a3: A).(\lambda (H0: (((eq A 
+(AHead a1 a2) (asucc g a3)) \to (ex2 A (\lambda (a4: A).(eq A a3 (AHead a1 
+a4))) (\lambda (a4: A).(eq A a2 (asucc g a4))))))).(\lambda (H1: (eq A (AHead 
+a1 a2) (asucc g (AHead a0 a3)))).(let H2 \def (f_equal A A (\lambda (e: 
+A).(match e with [(ASort _ _) \Rightarrow a1 | (AHead a4 _) \Rightarrow a4])) 
+(AHead a1 a2) (AHead a0 (asucc g a3)) H1) in ((let H3 \def (f_equal A A 
 (\lambda (e: A).(match e with [(ASort _ _) \Rightarrow a2 | (AHead _ a4) 
-\Rightarrow a4])) in (let TMP_40 \def (AHead a1 a2) in (let TMP_41 \def 
-(asucc g a3) in (let TMP_42 \def (AHead a0 TMP_41) in (let H3 \def (f_equal A 
-A TMP_39 TMP_40 TMP_42 H1) in (let TMP_85 \def (\lambda (H4: (eq A a1 
-a0)).(let TMP_47 \def (\lambda (a4: A).((eq A (AHead a1 a2) (asucc g a4)) \to 
-(let TMP_44 \def (\lambda (a5: A).(let TMP_43 \def (AHead a1 a5) in (eq A a4 
-TMP_43))) in (let TMP_46 \def (\lambda (a5: A).(let TMP_45 \def (asucc g a5) 
-in (eq A a2 TMP_45))) in (ex2 A TMP_44 TMP_46))))) in (let H5 \def (eq_ind_r 
-A a0 TMP_47 H a1 H4) in (let TMP_53 \def (\lambda (a4: A).(let TMP_50 \def 
-(\lambda (a5: A).(let TMP_48 \def (AHead a4 a3) in (let TMP_49 \def (AHead a1 
-a5) in (eq A TMP_48 TMP_49)))) in (let TMP_52 \def (\lambda (a5: A).(let 
-TMP_51 \def (asucc g a5) in (eq A a2 TMP_51))) in (ex2 A TMP_50 TMP_52)))) in 
-(let TMP_58 \def (\lambda (a4: A).((eq A (AHead a1 a4) (asucc g a3)) \to (let 
-TMP_55 \def (\lambda (a5: A).(let TMP_54 \def (AHead a1 a5) in (eq A a3 
-TMP_54))) in (let TMP_57 \def (\lambda (a5: A).(let TMP_56 \def (asucc g a5) 
-in (eq A a4 TMP_56))) in (ex2 A TMP_55 TMP_57))))) in (let TMP_59 \def (asucc 
-g a3) in (let H6 \def (eq_ind A a2 TMP_58 H0 TMP_59 H3) in (let TMP_64 \def 
-(\lambda (a4: A).((eq A (AHead a1 a4) (asucc g a1)) \to (let TMP_61 \def 
-(\lambda (a5: A).(let TMP_60 \def (AHead a1 a5) in (eq A a1 TMP_60))) in (let 
-TMP_63 \def (\lambda (a5: A).(let TMP_62 \def (asucc g a5) in (eq A a4 
-TMP_62))) in (ex2 A TMP_61 TMP_63))))) in (let TMP_65 \def (asucc g a3) in 
-(let H7 \def (eq_ind A a2 TMP_64 H5 TMP_65 H3) in (let TMP_66 \def (asucc g 
-a3) in (let TMP_72 \def (\lambda (a4: A).(let TMP_69 \def (\lambda (a5: 
-A).(let TMP_67 \def (AHead a1 a3) in (let TMP_68 \def (AHead a1 a5) in (eq A 
-TMP_67 TMP_68)))) in (let TMP_71 \def (\lambda (a5: A).(let TMP_70 \def 
-(asucc g a5) in (eq A a4 TMP_70))) in (ex2 A TMP_69 TMP_71)))) in (let TMP_75 
-\def (\lambda (a4: A).(let TMP_73 \def (AHead a1 a3) in (let TMP_74 \def 
-(AHead a1 a4) in (eq A TMP_73 TMP_74)))) in (let TMP_78 \def (\lambda (a4: 
-A).(let TMP_76 \def (asucc g a3) in (let TMP_77 \def (asucc g a4) in (eq A 
-TMP_76 TMP_77)))) in (let TMP_79 \def (AHead a1 a3) in (let TMP_80 \def 
-(refl_equal A TMP_79) in (let TMP_81 \def (asucc g a3) in (let TMP_82 \def 
-(refl_equal A TMP_81) in (let TMP_83 \def (ex_intro2 A TMP_75 TMP_78 a3 
-TMP_80 TMP_82) in (let TMP_84 \def (eq_ind_r A TMP_66 TMP_72 TMP_83 a2 H3) in 
-(eq_ind A a1 TMP_53 TMP_84 a0 H4))))))))))))))))))))) in (TMP_85 
-H2))))))))))))))))) in (A_ind TMP_5 TMP_34 TMP_86 a))))))).
+\Rightarrow a4])) (AHead a1 a2) (AHead a0 (asucc g a3)) H1) in (\lambda (H4: 
+(eq A a1 a0)).(let H5 \def (eq_ind_r A a0 (\lambda (a4: A).((eq A (AHead a1 
+a2) (asucc g a4)) \to (ex2 A (\lambda (a5: A).(eq A a4 (AHead a1 a5))) 
+(\lambda (a5: A).(eq A a2 (asucc g a5)))))) H a1 H4) in (eq_ind A a1 (\lambda 
+(a4: A).(ex2 A (\lambda (a5: A).(eq A (AHead a4 a3) (AHead a1 a5))) (\lambda 
+(a5: A).(eq A a2 (asucc g a5))))) (let H6 \def (eq_ind A a2 (\lambda (a4: 
+A).((eq A (AHead a1 a4) (asucc g a3)) \to (ex2 A (\lambda (a5: A).(eq A a3 
+(AHead a1 a5))) (\lambda (a5: A).(eq A a4 (asucc g a5)))))) H0 (asucc g a3) 
+H3) in (let H7 \def (eq_ind A a2 (\lambda (a4: A).((eq A (AHead a1 a4) (asucc 
+g a1)) \to (ex2 A (\lambda (a5: A).(eq A a1 (AHead a1 a5))) (\lambda (a5: 
+A).(eq A a4 (asucc g a5)))))) H5 (asucc g a3) H3) in (eq_ind_r A (asucc g a3) 
+(\lambda (a4: A).(ex2 A (\lambda (a5: A).(eq A (AHead a1 a3) (AHead a1 a5))) 
+(\lambda (a5: A).(eq A a4 (asucc g a5))))) (ex_intro2 A (\lambda (a4: A).(eq 
+A (AHead a1 a3) (AHead a1 a4))) (\lambda (a4: A).(eq A (asucc g a3) (asucc g 
+a4))) a3 (refl_equal A (AHead a1 a3)) (refl_equal A (asucc g a3))) a2 H3))) 
+a0 H4)))) H2))))))) a)))).
 
index fce9abdd15749acd36f6539a886eced32a703656..5d53fcf57e0e954af5fc4d1fd1cb29defe58407a 100644 (file)
@@ -20,7 +20,6 @@ definition cimp:
  C \to (C \to Prop)
 \def
  \lambda (c1: C).(\lambda (c2: C).(\forall (b: B).(\forall (d1: C).(\forall 
-(w: T).(\forall (h: nat).((getl h c1 (CHead d1 (Bind b) w)) \to (let TMP_3 
-\def (\lambda (d2: C).(let TMP_1 \def (Bind b) in (let TMP_2 \def (CHead d2 
-TMP_1 w) in (getl h c2 TMP_2)))) in (ex C TMP_3)))))))).
+(w: T).(\forall (h: nat).((getl h c1 (CHead d1 (Bind b) w)) \to (ex C 
+(\lambda (d2: C).(getl h c2 (CHead d2 (Bind b) w)))))))))).
 
index 92af7b3c8fb1827dce4051975c2aa0fbd7f8ddc6..4d9b54e26ac8c24af6676ca34f16a0ce7152c417 100644 (file)
@@ -24,28 +24,17 @@ c)))
 \def
  \lambda (f: F).(\lambda (c: C).(\lambda (v: T).(\lambda (b: B).(\lambda (d1: 
 C).(\lambda (w: T).(\lambda (h: nat).(\lambda (H: (getl h (CHead c (Flat f) 
-v) (CHead d1 (Bind b) w))).(let TMP_4 \def (\lambda (n: nat).((getl n (CHead 
-c (Flat f) v) (CHead d1 (Bind b) w)) \to (let TMP_3 \def (\lambda (d2: 
-C).(let TMP_1 \def (Bind b) in (let TMP_2 \def (CHead d2 TMP_1 w) in (getl n 
-c TMP_2)))) in (ex C TMP_3)))) in (let TMP_20 \def (\lambda (H0: (getl O 
-(CHead c (Flat f) v) (CHead d1 (Bind b) w))).(let TMP_7 \def (\lambda (d2: 
-C).(let TMP_5 \def (Bind b) in (let TMP_6 \def (CHead d2 TMP_5 w) in (getl O 
-c TMP_6)))) in (let TMP_8 \def (Bind b) in (let TMP_9 \def (CHead d1 TMP_8 w) 
-in (let TMP_10 \def (drop_refl c) in (let TMP_11 \def (Bind b) in (let TMP_12 
-\def (CHead d1 TMP_11 w) in (let TMP_13 \def (Flat f) in (let TMP_14 \def 
-(CHead c TMP_13 v) in (let TMP_15 \def (Bind b) in (let TMP_16 \def (CHead d1 
-TMP_15 w) in (let TMP_17 \def (getl_gen_O TMP_14 TMP_16 H0) in (let TMP_18 
-\def (clear_gen_flat f c TMP_12 v TMP_17) in (let TMP_19 \def (getl_intro O c 
-TMP_9 c TMP_10 TMP_18) in (ex_intro C TMP_7 d1 TMP_19))))))))))))))) in (let 
-TMP_29 \def (\lambda (h0: nat).(\lambda (_: (((getl h0 (CHead c (Flat f) v) 
+v) (CHead d1 (Bind b) w))).(nat_ind (\lambda (n: nat).((getl n (CHead c (Flat 
+f) v) (CHead d1 (Bind b) w)) \to (ex C (\lambda (d2: C).(getl n c (CHead d2 
+(Bind b) w)))))) (\lambda (H0: (getl O (CHead c (Flat f) v) (CHead d1 (Bind 
+b) w))).(ex_intro C (\lambda (d2: C).(getl O c (CHead d2 (Bind b) w))) d1 
+(getl_intro O c (CHead d1 (Bind b) w) c (drop_refl c) (clear_gen_flat f c 
+(CHead d1 (Bind b) w) v (getl_gen_O (CHead c (Flat f) v) (CHead d1 (Bind b) 
+w) H0))))) (\lambda (h0: nat).(\lambda (_: (((getl h0 (CHead c (Flat f) v) 
 (CHead d1 (Bind b) w)) \to (ex C (\lambda (d2: C).(getl h0 c (CHead d2 (Bind 
 b) w))))))).(\lambda (H0: (getl (S h0) (CHead c (Flat f) v) (CHead d1 (Bind 
-b) w))).(let TMP_24 \def (\lambda (d2: C).(let TMP_21 \def (S h0) in (let 
-TMP_22 \def (Bind b) in (let TMP_23 \def (CHead d2 TMP_22 w) in (getl TMP_21 
-c TMP_23))))) in (let TMP_25 \def (Flat f) in (let TMP_26 \def (Bind b) in 
-(let TMP_27 \def (CHead d1 TMP_26 w) in (let TMP_28 \def (getl_gen_S TMP_25 c 
-TMP_27 v h0 H0) in (ex_intro C TMP_24 d1 TMP_28))))))))) in (nat_ind TMP_4 
-TMP_20 TMP_29 h H))))))))))).
+b) w))).(ex_intro C (\lambda (d2: C).(getl (S h0) c (CHead d2 (Bind b) w))) 
+d1 (getl_gen_S (Flat f) c (CHead d1 (Bind b) w) v h0 H0))))) h H)))))))).
 
 theorem cimp_flat_dx:
  \forall (f: F).(\forall (c: C).(\forall (v: T).(cimp c (CHead c (Flat f) 
@@ -53,11 +42,8 @@ v))))
 \def
  \lambda (f: F).(\lambda (c: C).(\lambda (v: T).(\lambda (b: B).(\lambda (d1: 
 C).(\lambda (w: T).(\lambda (h: nat).(\lambda (H: (getl h c (CHead d1 (Bind 
-b) w))).(let TMP_5 \def (\lambda (d2: C).(let TMP_1 \def (Flat f) in (let 
-TMP_2 \def (CHead c TMP_1 v) in (let TMP_3 \def (Bind b) in (let TMP_4 \def 
-(CHead d2 TMP_3 w) in (getl h TMP_2 TMP_4)))))) in (let TMP_6 \def (Bind b) 
-in (let TMP_7 \def (CHead d1 TMP_6 w) in (let TMP_8 \def (getl_flat c TMP_7 h 
-H f v) in (ex_intro C TMP_5 d1 TMP_8)))))))))))).
+b) w))).(ex_intro C (\lambda (d2: C).(getl h (CHead c (Flat f) v) (CHead d2 
+(Bind b) w))) d1 (getl_flat c (CHead d1 (Bind b) w) h H f v))))))))).
 
 theorem cimp_bind:
  \forall (c1: C).(\forall (c2: C).((cimp c1 c2) \to (\forall (b: B).(\forall 
@@ -68,72 +54,37 @@ C).(\forall (w: T).(\forall (h: nat).((getl h c1 (CHead d1 (Bind b) w)) \to
 (ex C (\lambda (d2: C).(getl h c2 (CHead d2 (Bind b) w))))))))))).(\lambda 
 (b: B).(\lambda (v: T).(\lambda (b0: B).(\lambda (d1: C).(\lambda (w: 
 T).(\lambda (h: nat).(\lambda (H0: (getl h (CHead c1 (Bind b) v) (CHead d1 
-(Bind b0) w))).(let TMP_6 \def (\lambda (n: nat).((getl n (CHead c1 (Bind b) 
-v) (CHead d1 (Bind b0) w)) \to (let TMP_5 \def (\lambda (d2: C).(let TMP_1 
-\def (Bind b) in (let TMP_2 \def (CHead c2 TMP_1 v) in (let TMP_3 \def (Bind 
-b0) in (let TMP_4 \def (CHead d2 TMP_3 w) in (getl n TMP_2 TMP_4)))))) in (ex 
-C TMP_5)))) in (let TMP_68 \def (\lambda (H1: (getl O (CHead c1 (Bind b) v) 
-(CHead d1 (Bind b0) w))).(let TMP_7 \def (\lambda (e: C).(match e with 
-[(CSort _) \Rightarrow d1 | (CHead c _ _) \Rightarrow c])) in (let TMP_8 \def 
-(Bind b0) in (let TMP_9 \def (CHead d1 TMP_8 w) in (let TMP_10 \def (Bind b) 
-in (let TMP_11 \def (CHead c1 TMP_10 v) in (let TMP_12 \def (Bind b0) in (let 
-TMP_13 \def (CHead d1 TMP_12 w) in (let TMP_14 \def (Bind b) in (let TMP_15 
-\def (CHead c1 TMP_14 v) in (let TMP_16 \def (Bind b0) in (let TMP_17 \def 
-(CHead d1 TMP_16 w) in (let TMP_18 \def (getl_gen_O TMP_15 TMP_17 H1) in (let 
-TMP_19 \def (clear_gen_bind b c1 TMP_13 v TMP_18) in (let H2 \def (f_equal C 
-C TMP_7 TMP_9 TMP_11 TMP_19) in (let TMP_20 \def (\lambda (e: C).(match e 
-with [(CSort _) \Rightarrow b0 | (CHead _ k _) \Rightarrow (match k with 
-[(Bind b1) \Rightarrow b1 | (Flat _) \Rightarrow b0])])) in (let TMP_21 \def 
-(Bind b0) in (let TMP_22 \def (CHead d1 TMP_21 w) in (let TMP_23 \def (Bind 
-b) in (let TMP_24 \def (CHead c1 TMP_23 v) in (let TMP_25 \def (Bind b0) in 
-(let TMP_26 \def (CHead d1 TMP_25 w) in (let TMP_27 \def (Bind b) in (let 
-TMP_28 \def (CHead c1 TMP_27 v) in (let TMP_29 \def (Bind b0) in (let TMP_30 
-\def (CHead d1 TMP_29 w) in (let TMP_31 \def (getl_gen_O TMP_28 TMP_30 H1) in 
-(let TMP_32 \def (clear_gen_bind b c1 TMP_26 v TMP_31) in (let H3 \def 
-(f_equal C B TMP_20 TMP_22 TMP_24 TMP_32) in (let TMP_33 \def (\lambda (e: 
-C).(match e with [(CSort _) \Rightarrow w | (CHead _ _ t) \Rightarrow t])) in 
-(let TMP_34 \def (Bind b0) in (let TMP_35 \def (CHead d1 TMP_34 w) in (let 
-TMP_36 \def (Bind b) in (let TMP_37 \def (CHead c1 TMP_36 v) in (let TMP_38 
-\def (Bind b0) in (let TMP_39 \def (CHead d1 TMP_38 w) in (let TMP_40 \def 
-(Bind b) in (let TMP_41 \def (CHead c1 TMP_40 v) in (let TMP_42 \def (Bind 
-b0) in (let TMP_43 \def (CHead d1 TMP_42 w) in (let TMP_44 \def (getl_gen_O 
-TMP_41 TMP_43 H1) in (let TMP_45 \def (clear_gen_bind b c1 TMP_39 v TMP_44) 
-in (let H4 \def (f_equal C T TMP_33 TMP_35 TMP_37 TMP_45) in (let TMP_66 \def 
-(\lambda (H5: (eq B b0 b)).(\lambda (_: (eq C d1 c1)).(let TMP_51 \def 
-(\lambda (t: T).(let TMP_50 \def (\lambda (d2: C).(let TMP_46 \def (Bind b) 
-in (let TMP_47 \def (CHead c2 TMP_46 v) in (let TMP_48 \def (Bind b0) in (let 
-TMP_49 \def (CHead d2 TMP_48 t) in (getl O TMP_47 TMP_49)))))) in (ex C 
-TMP_50))) in (let TMP_57 \def (\lambda (b1: B).(let TMP_56 \def (\lambda (d2: 
-C).(let TMP_52 \def (Bind b) in (let TMP_53 \def (CHead c2 TMP_52 v) in (let 
-TMP_54 \def (Bind b1) in (let TMP_55 \def (CHead d2 TMP_54 v) in (getl O 
-TMP_53 TMP_55)))))) in (ex C TMP_56))) in (let TMP_62 \def (\lambda (d2: 
-C).(let TMP_58 \def (Bind b) in (let TMP_59 \def (CHead c2 TMP_58 v) in (let 
-TMP_60 \def (Bind b) in (let TMP_61 \def (CHead d2 TMP_60 v) in (getl O 
-TMP_59 TMP_61)))))) in (let TMP_63 \def (getl_refl b c2 v) in (let TMP_64 
-\def (ex_intro C TMP_62 c2 TMP_63) in (let TMP_65 \def (eq_ind_r B b TMP_57 
-TMP_64 b0 H5) in (eq_ind_r T v TMP_51 TMP_65 w H4))))))))) in (let TMP_67 
-\def (TMP_66 H3) in (TMP_67 H2)))))))))))))))))))))))))))))))))))))))))))))) 
-in (let TMP_96 \def (\lambda (h0: nat).(\lambda (_: (((getl h0 (CHead c1 
-(Bind b) v) (CHead d1 (Bind b0) w)) \to (ex C (\lambda (d2: C).(getl h0 
-(CHead c2 (Bind b) v) (CHead d2 (Bind b0) w))))))).(\lambda (H1: (getl (S h0) 
-(CHead c1 (Bind b) v) (CHead d1 (Bind b0) w))).(let TMP_69 \def (Bind b) in 
-(let TMP_70 \def (r TMP_69 h0) in (let TMP_71 \def (Bind b) in (let TMP_72 
-\def (Bind b0) in (let TMP_73 \def (CHead d1 TMP_72 w) in (let TMP_74 \def 
-(getl_gen_S TMP_71 c1 TMP_73 v h0 H1) in (let H_x \def (H b0 d1 w TMP_70 
-TMP_74) in (let H2 \def H_x in (let TMP_77 \def (\lambda (d2: C).(let TMP_75 
-\def (Bind b0) in (let TMP_76 \def (CHead d2 TMP_75 w) in (getl h0 c2 
-TMP_76)))) in (let TMP_83 \def (\lambda (d2: C).(let TMP_78 \def (S h0) in 
-(let TMP_79 \def (Bind b) in (let TMP_80 \def (CHead c2 TMP_79 v) in (let 
-TMP_81 \def (Bind b0) in (let TMP_82 \def (CHead d2 TMP_81 w) in (getl TMP_78 
-TMP_80 TMP_82))))))) in (let TMP_84 \def (ex C TMP_83) in (let TMP_95 \def 
-(\lambda (x: C).(\lambda (H3: (getl h0 c2 (CHead x (Bind b0) w))).(let TMP_90 
-\def (\lambda (d2: C).(let TMP_85 \def (S h0) in (let TMP_86 \def (Bind b) in 
-(let TMP_87 \def (CHead c2 TMP_86 v) in (let TMP_88 \def (Bind b0) in (let 
-TMP_89 \def (CHead d2 TMP_88 w) in (getl TMP_85 TMP_87 TMP_89))))))) in (let 
-TMP_91 \def (Bind b) in (let TMP_92 \def (Bind b0) in (let TMP_93 \def (CHead 
-x TMP_92 w) in (let TMP_94 \def (getl_head TMP_91 h0 c2 TMP_93 H3 v) in 
-(ex_intro C TMP_90 x TMP_94)))))))) in (ex_ind C TMP_77 TMP_84 TMP_95 
-H2)))))))))))))))) in (nat_ind TMP_6 TMP_68 TMP_96 h H0))))))))))))).
+(Bind b0) w))).(nat_ind (\lambda (n: nat).((getl n (CHead c1 (Bind b) v) 
+(CHead d1 (Bind b0) w)) \to (ex C (\lambda (d2: C).(getl n (CHead c2 (Bind b) 
+v) (CHead d2 (Bind b0) w)))))) (\lambda (H1: (getl O (CHead c1 (Bind b) v) 
+(CHead d1 (Bind b0) w))).(let H2 \def (f_equal C C (\lambda (e: C).(match e 
+with [(CSort _) \Rightarrow d1 | (CHead c _ _) \Rightarrow c])) (CHead d1 
+(Bind b0) w) (CHead c1 (Bind b) v) (clear_gen_bind b c1 (CHead d1 (Bind b0) 
+w) v (getl_gen_O (CHead c1 (Bind b) v) (CHead d1 (Bind b0) w) H1))) in ((let 
+H3 \def (f_equal C B (\lambda (e: C).(match e with [(CSort _) \Rightarrow b0 
+| (CHead _ k _) \Rightarrow (match k with [(Bind b1) \Rightarrow b1 | (Flat 
+_) \Rightarrow b0])])) (CHead d1 (Bind b0) w) (CHead c1 (Bind b) v) 
+(clear_gen_bind b c1 (CHead d1 (Bind b0) w) v (getl_gen_O (CHead c1 (Bind b) 
+v) (CHead d1 (Bind b0) w) H1))) in ((let H4 \def (f_equal C T (\lambda (e: 
+C).(match e with [(CSort _) \Rightarrow w | (CHead _ _ t) \Rightarrow t])) 
+(CHead d1 (Bind b0) w) (CHead c1 (Bind b) v) (clear_gen_bind b c1 (CHead d1 
+(Bind b0) w) v (getl_gen_O (CHead c1 (Bind b) v) (CHead d1 (Bind b0) w) H1))) 
+in (\lambda (H5: (eq B b0 b)).(\lambda (_: (eq C d1 c1)).(eq_ind_r T v 
+(\lambda (t: T).(ex C (\lambda (d2: C).(getl O (CHead c2 (Bind b) v) (CHead 
+d2 (Bind b0) t))))) (eq_ind_r B b (\lambda (b1: B).(ex C (\lambda (d2: 
+C).(getl O (CHead c2 (Bind b) v) (CHead d2 (Bind b1) v))))) (ex_intro C 
+(\lambda (d2: C).(getl O (CHead c2 (Bind b) v) (CHead d2 (Bind b) v))) c2 
+(getl_refl b c2 v)) b0 H5) w H4)))) H3)) H2))) (\lambda (h0: nat).(\lambda 
+(_: (((getl h0 (CHead c1 (Bind b) v) (CHead d1 (Bind b0) w)) \to (ex C 
+(\lambda (d2: C).(getl h0 (CHead c2 (Bind b) v) (CHead d2 (Bind b0) 
+w))))))).(\lambda (H1: (getl (S h0) (CHead c1 (Bind b) v) (CHead d1 (Bind b0) 
+w))).(let H_x \def (H b0 d1 w (r (Bind b) h0) (getl_gen_S (Bind b) c1 (CHead 
+d1 (Bind b0) w) v h0 H1)) in (let H2 \def H_x in (ex_ind C (\lambda (d2: 
+C).(getl h0 c2 (CHead d2 (Bind b0) w))) (ex C (\lambda (d2: C).(getl (S h0) 
+(CHead c2 (Bind b) v) (CHead d2 (Bind b0) w)))) (\lambda (x: C).(\lambda (H3: 
+(getl h0 c2 (CHead x (Bind b0) w))).(ex_intro C (\lambda (d2: C).(getl (S h0) 
+(CHead c2 (Bind b) v) (CHead d2 (Bind b0) w))) x (getl_head (Bind b) h0 c2 
+(CHead x (Bind b0) w) H3 v)))) H2)))))) h H0)))))))))).
 
 theorem cimp_getl_conf:
  \forall (c1: C).(\forall (c2: C).((cimp c1 c2) \to (\forall (b: B).(\forall 
@@ -146,59 +97,29 @@ C).(\forall (w: T).(\forall (h: nat).((getl h c1 (CHead d1 (Bind b) w)) \to
 (ex C (\lambda (d2: C).(getl h c2 (CHead d2 (Bind b) w))))))))))).(\lambda 
 (b: B).(\lambda (d1: C).(\lambda (w: T).(\lambda (i: nat).(\lambda (H0: (getl 
 i c1 (CHead d1 (Bind b) w))).(let H_x \def (H b d1 w i H0) in (let H1 \def 
-H_x in (let TMP_3 \def (\lambda (d2: C).(let TMP_1 \def (Bind b) in (let 
-TMP_2 \def (CHead d2 TMP_1 w) in (getl i c2 TMP_2)))) in (let TMP_7 \def 
+H_x in (ex_ind C (\lambda (d2: C).(getl i c2 (CHead d2 (Bind b) w))) (ex2 C 
 (\lambda (d2: C).(\forall (b0: B).(\forall (d3: C).(\forall (w0: T).(\forall 
-(h: nat).((getl h d1 (CHead d3 (Bind b0) w0)) \to (let TMP_6 \def (\lambda 
-(d4: C).(let TMP_4 \def (Bind b0) in (let TMP_5 \def (CHead d4 TMP_4 w0) in 
-(getl h d2 TMP_5)))) in (ex C TMP_6)))))))) in (let TMP_10 \def (\lambda (d2: 
-C).(let TMP_8 \def (Bind b) in (let TMP_9 \def (CHead d2 TMP_8 w) in (getl i 
-c2 TMP_9)))) in (let TMP_11 \def (ex2 C TMP_7 TMP_10) in (let TMP_82 \def 
-(\lambda (x: C).(\lambda (H2: (getl i c2 (CHead x (Bind b) w))).(let TMP_15 
-\def (\lambda (d2: C).(\forall (b0: B).(\forall (d3: C).(\forall (w0: 
-T).(\forall (h: nat).((getl h d1 (CHead d3 (Bind b0) w0)) \to (let TMP_14 
-\def (\lambda (d4: C).(let TMP_12 \def (Bind b0) in (let TMP_13 \def (CHead 
-d4 TMP_12 w0) in (getl h d2 TMP_13)))) in (ex C TMP_14)))))))) in (let TMP_18 
-\def (\lambda (d2: C).(let TMP_16 \def (Bind b) in (let TMP_17 \def (CHead d2 
-TMP_16 w) in (getl i c2 TMP_17)))) in (let TMP_81 \def (\lambda (b0: 
+(h: nat).((getl h d1 (CHead d3 (Bind b0) w0)) \to (ex C (\lambda (d4: 
+C).(getl h d2 (CHead d4 (Bind b0) w0)))))))))) (\lambda (d2: C).(getl i c2 
+(CHead d2 (Bind b) w)))) (\lambda (x: C).(\lambda (H2: (getl i c2 (CHead x 
+(Bind b) w))).(ex_intro2 C (\lambda (d2: C).(\forall (b0: B).(\forall (d3: 
+C).(\forall (w0: T).(\forall (h: nat).((getl h d1 (CHead d3 (Bind b0) w0)) 
+\to (ex C (\lambda (d4: C).(getl h d2 (CHead d4 (Bind b0) w0)))))))))) 
+(\lambda (d2: C).(getl i c2 (CHead d2 (Bind b) w))) x (\lambda (b0: 
 B).(\lambda (d0: C).(\lambda (w0: T).(\lambda (h: nat).(\lambda (H3: (getl h 
-d1 (CHead d0 (Bind b0) w0))).(let TMP_19 \def (S h) in (let TMP_20 \def (Bind 
-b) in (let TMP_21 \def (CHead d1 TMP_20 w) in (let H_y \def (getl_trans 
-TMP_19 c1 TMP_21 i H0) in (let TMP_22 \def (S h) in (let TMP_23 \def (plus 
-TMP_22 i) in (let TMP_24 \def (Bind b0) in (let TMP_25 \def (CHead d0 TMP_24 
-w0) in (let TMP_26 \def (Bind b) in (let TMP_27 \def (Bind b0) in (let TMP_28 
-\def (CHead d0 TMP_27 w0) in (let TMP_29 \def (getl_head TMP_26 h d1 TMP_28 
-H3 w) in (let TMP_30 \def (H_y TMP_25 TMP_29) in (let H_x0 \def (H b0 d0 w0 
-TMP_23 TMP_30) in (let H4 \def H_x0 in (let TMP_35 \def (\lambda (d2: C).(let 
-TMP_31 \def (plus h i) in (let TMP_32 \def (S TMP_31) in (let TMP_33 \def 
-(Bind b0) in (let TMP_34 \def (CHead d2 TMP_33 w0) in (getl TMP_32 c2 
-TMP_34)))))) in (let TMP_38 \def (\lambda (d2: C).(let TMP_36 \def (Bind b0) 
-in (let TMP_37 \def (CHead d2 TMP_36 w0) in (getl h x TMP_37)))) in (let 
-TMP_39 \def (ex C TMP_38) in (let TMP_80 \def (\lambda (x0: C).(\lambda (H5: 
-(getl (S (plus h i)) c2 (CHead x0 (Bind b0) w0))).(let TMP_40 \def (plus h i) 
-in (let TMP_41 \def (S TMP_40) in (let TMP_42 \def (Bind b0) in (let TMP_43 
-\def (CHead x0 TMP_42 w0) in (let TMP_44 \def (Bind b) in (let TMP_45 \def 
-(CHead x TMP_44 w) in (let H_y0 \def (getl_conf_le TMP_41 TMP_43 c2 H5 TMP_45 
-i H2) in (let TMP_46 \def (S h) in (let TMP_47 \def (plus TMP_46 i) in (let 
-H6 \def (refl_equal nat TMP_47) in (let TMP_48 \def (plus h i) in (let TMP_49 
-\def (S TMP_48) in (let TMP_55 \def (\lambda (n: nat).(let TMP_50 \def (minus 
-n i) in (let TMP_51 \def (Bind b) in (let TMP_52 \def (CHead x TMP_51 w) in 
-(let TMP_53 \def (Bind b0) in (let TMP_54 \def (CHead x0 TMP_53 w0) in (getl 
-TMP_50 TMP_52 TMP_54))))))) in (let TMP_56 \def (plus h i) in (let TMP_57 
-\def (le_plus_r h i) in (let TMP_58 \def (le_S i TMP_56 TMP_57) in (let 
-TMP_59 \def (H_y0 TMP_58) in (let TMP_60 \def (S h) in (let TMP_61 \def (plus 
-TMP_60 i) in (let H7 \def (eq_ind nat TMP_49 TMP_55 TMP_59 TMP_61 H6) in (let 
-TMP_62 \def (S h) in (let TMP_63 \def (plus TMP_62 i) in (let TMP_64 \def 
-(minus TMP_63 i) in (let TMP_69 \def (\lambda (n: nat).(let TMP_65 \def (Bind 
-b) in (let TMP_66 \def (CHead x TMP_65 w) in (let TMP_67 \def (Bind b0) in 
-(let TMP_68 \def (CHead x0 TMP_67 w0) in (getl n TMP_66 TMP_68)))))) in (let 
-TMP_70 \def (S h) in (let TMP_71 \def (S h) in (let TMP_72 \def (minus_plus_r 
-TMP_71 i) in (let H8 \def (eq_ind nat TMP_64 TMP_69 H7 TMP_70 TMP_72) in (let 
-TMP_75 \def (\lambda (d2: C).(let TMP_73 \def (Bind b0) in (let TMP_74 \def 
-(CHead d2 TMP_73 w0) in (getl h x TMP_74)))) in (let TMP_76 \def (Bind b) in 
-(let TMP_77 \def (Bind b0) in (let TMP_78 \def (CHead x0 TMP_77 w0) in (let 
-TMP_79 \def (getl_gen_S TMP_76 x TMP_78 w h H8) in (ex_intro C TMP_75 x0 
-TMP_79)))))))))))))))))))))))))))))))))))) in (ex_ind C TMP_35 TMP_39 TMP_80 
-H4))))))))))))))))))))))))) in (ex_intro2 C TMP_15 TMP_18 x TMP_81 H2)))))) 
-in (ex_ind C TMP_3 TMP_11 TMP_82 H1))))))))))))))).
+d1 (CHead d0 (Bind b0) w0))).(let H_y \def (getl_trans (S h) c1 (CHead d1 
+(Bind b) w) i H0) in (let H_x0 \def (H b0 d0 w0 (plus (S h) i) (H_y (CHead d0 
+(Bind b0) w0) (getl_head (Bind b) h d1 (CHead d0 (Bind b0) w0) H3 w))) in 
+(let H4 \def H_x0 in (ex_ind C (\lambda (d2: C).(getl (S (plus h i)) c2 
+(CHead d2 (Bind b0) w0))) (ex C (\lambda (d2: C).(getl h x (CHead d2 (Bind 
+b0) w0)))) (\lambda (x0: C).(\lambda (H5: (getl (S (plus h i)) c2 (CHead x0 
+(Bind b0) w0))).(let H_y0 \def (getl_conf_le (S (plus h i)) (CHead x0 (Bind 
+b0) w0) c2 H5 (CHead x (Bind b) w) i H2) in (let H6 \def (refl_equal nat 
+(plus (S h) i)) in (let H7 \def (eq_ind nat (S (plus h i)) (\lambda (n: 
+nat).(getl (minus n i) (CHead x (Bind b) w) (CHead x0 (Bind b0) w0))) (H_y0 
+(le_S i (plus h i) (le_plus_r h i))) (plus (S h) i) H6) in (let H8 \def 
+(eq_ind nat (minus (plus (S h) i) i) (\lambda (n: nat).(getl n (CHead x (Bind 
+b) w) (CHead x0 (Bind b0) w0))) H7 (S h) (minus_plus_r (S h) i)) in (ex_intro 
+C (\lambda (d2: C).(getl h x (CHead d2 (Bind b0) w0))) x0 (getl_gen_S (Bind 
+b) x (CHead x0 (Bind b0) w0) w h H8)))))))) H4))))))))) H2))) H1)))))))))).
 
index a16ba8b23ec4991377eda768adc5663223ef3438..f9a28d88aa772a690cdad387bbf9ed88b5cc89f2 100644 (file)
@@ -24,123 +24,80 @@ theorem drop_clear:
 e (Bind b) v))))) (\lambda (_: B).(\lambda (e: C).(\lambda (_: T).(drop i O e 
 c2))))))))
 \def
- \lambda (c1: C).(let TMP_5 \def (\lambda (c: C).(\forall (c2: C).(\forall 
-(i: nat).((drop (S i) O c c2) \to (let TMP_3 \def (\lambda (b: B).(\lambda 
-(e: C).(\lambda (v: T).(let TMP_1 \def (Bind b) in (let TMP_2 \def (CHead e 
-TMP_1 v) in (clear c TMP_2)))))) in (let TMP_4 \def (\lambda (_: B).(\lambda 
-(e: C).(\lambda (_: T).(drop i O e c2)))) in (ex2_3 B C T TMP_3 TMP_4))))))) 
-in (let TMP_28 \def (\lambda (n: nat).(\lambda (c2: C).(\lambda (i: 
-nat).(\lambda (H: (drop (S i) O (CSort n) c2)).(let TMP_6 \def (CSort n) in 
-(let TMP_7 \def (eq C c2 TMP_6) in (let TMP_8 \def (S i) in (let TMP_9 \def 
-(eq nat TMP_8 O) in (let TMP_10 \def (eq nat O O) in (let TMP_14 \def 
-(\lambda (b: B).(\lambda (e: C).(\lambda (v: T).(let TMP_11 \def (CSort n) in 
-(let TMP_12 \def (Bind b) in (let TMP_13 \def (CHead e TMP_12 v) in (clear 
-TMP_11 TMP_13))))))) in (let TMP_15 \def (\lambda (_: B).(\lambda (e: 
-C).(\lambda (_: T).(drop i O e c2)))) in (let TMP_16 \def (ex2_3 B C T TMP_14 
-TMP_15) in (let TMP_25 \def (\lambda (_: (eq C c2 (CSort n))).(\lambda (H1: 
-(eq nat (S i) O)).(\lambda (_: (eq nat O O)).(let TMP_17 \def (S i) in (let 
-TMP_18 \def (\lambda (ee: nat).(match ee with [O \Rightarrow False | (S _) 
-\Rightarrow True])) in (let H3 \def (eq_ind nat TMP_17 TMP_18 I O H1) in (let 
-TMP_22 \def (\lambda (b: B).(\lambda (e: C).(\lambda (v: T).(let TMP_19 \def 
-(CSort n) in (let TMP_20 \def (Bind b) in (let TMP_21 \def (CHead e TMP_20 v) 
-in (clear TMP_19 TMP_21))))))) in (let TMP_23 \def (\lambda (_: B).(\lambda 
-(e: C).(\lambda (_: T).(drop i O e c2)))) in (let TMP_24 \def (ex2_3 B C T 
-TMP_22 TMP_23) in (False_ind TMP_24 H3)))))))))) in (let TMP_26 \def (S i) in 
-(let TMP_27 \def (drop_gen_sort n TMP_26 O c2 H) in (and3_ind TMP_7 TMP_9 
-TMP_10 TMP_16 TMP_25 TMP_27)))))))))))))))) in (let TMP_66 \def (\lambda (c: 
-C).(\lambda (H: ((\forall (c2: C).(\forall (i: nat).((drop (S i) O c c2) \to 
-(ex2_3 B C T (\lambda (b: B).(\lambda (e: C).(\lambda (v: T).(clear c (CHead 
-e (Bind b) v))))) (\lambda (_: B).(\lambda (e: C).(\lambda (_: T).(drop i O e 
+ \lambda (c1: C).(C_ind (\lambda (c: C).(\forall (c2: C).(\forall (i: 
+nat).((drop (S i) O c c2) \to (ex2_3 B C T (\lambda (b: B).(\lambda (e: 
+C).(\lambda (v: T).(clear c (CHead e (Bind b) v))))) (\lambda (_: B).(\lambda 
+(e: C).(\lambda (_: T).(drop i O e c2))))))))) (\lambda (n: nat).(\lambda 
+(c2: C).(\lambda (i: nat).(\lambda (H: (drop (S i) O (CSort n) c2)).(and3_ind 
+(eq C c2 (CSort n)) (eq nat (S i) O) (eq nat O O) (ex2_3 B C T (\lambda (b: 
+B).(\lambda (e: C).(\lambda (v: T).(clear (CSort n) (CHead e (Bind b) v))))) 
+(\lambda (_: B).(\lambda (e: C).(\lambda (_: T).(drop i O e c2))))) (\lambda 
+(_: (eq C c2 (CSort n))).(\lambda (H1: (eq nat (S i) O)).(\lambda (_: (eq nat 
+O O)).(let H3 \def (eq_ind nat (S i) (\lambda (ee: nat).(match ee with [O 
+\Rightarrow False | (S _) \Rightarrow True])) I O H1) in (False_ind (ex2_3 B 
+C T (\lambda (b: B).(\lambda (e: C).(\lambda (v: T).(clear (CSort n) (CHead e 
+(Bind b) v))))) (\lambda (_: B).(\lambda (e: C).(\lambda (_: T).(drop i O e 
+c2))))) H3))))) (drop_gen_sort n (S i) O c2 H)))))) (\lambda (c: C).(\lambda 
+(H: ((\forall (c2: C).(\forall (i: nat).((drop (S i) O c c2) \to (ex2_3 B C T 
+(\lambda (b: B).(\lambda (e: C).(\lambda (v: T).(clear c (CHead e (Bind b) 
+v))))) (\lambda (_: B).(\lambda (e: C).(\lambda (_: T).(drop i O e 
 c2)))))))))).(\lambda (k: K).(\lambda (t: T).(\lambda (c2: C).(\lambda (i: 
-nat).(\lambda (H0: (drop (S i) O (CHead c k t) c2)).(let TMP_34 \def (\lambda 
-(k0: K).((drop (r k0 i) O c c2) \to (let TMP_32 \def (\lambda (b: B).(\lambda 
-(e: C).(\lambda (v: T).(let TMP_29 \def (CHead c k0 t) in (let TMP_30 \def 
-(Bind b) in (let TMP_31 \def (CHead e TMP_30 v) in (clear TMP_29 
-TMP_31))))))) in (let TMP_33 \def (\lambda (_: B).(\lambda (e: C).(\lambda 
-(_: T).(drop i O e c2)))) in (ex2_3 B C T TMP_32 TMP_33))))) in (let TMP_42 
-\def (\lambda (b: B).(\lambda (H1: (drop (r (Bind b) i) O c c2)).(let TMP_39 
-\def (\lambda (b0: B).(\lambda (e: C).(\lambda (v: T).(let TMP_35 \def (Bind 
-b) in (let TMP_36 \def (CHead c TMP_35 t) in (let TMP_37 \def (Bind b0) in 
-(let TMP_38 \def (CHead e TMP_37 v) in (clear TMP_36 TMP_38)))))))) in (let 
-TMP_40 \def (\lambda (_: B).(\lambda (e: C).(\lambda (_: T).(drop i O e 
-c2)))) in (let TMP_41 \def (clear_bind b c t) in (ex2_3_intro B C T TMP_39 
-TMP_40 b c t TMP_41 H1)))))) in (let TMP_64 \def (\lambda (f: F).(\lambda 
-(H1: (drop (r (Flat f) i) O c c2)).(let H2 \def (H c2 i H1) in (let TMP_45 
-\def (\lambda (b: B).(\lambda (e: C).(\lambda (v: T).(let TMP_43 \def (Bind 
-b) in (let TMP_44 \def (CHead e TMP_43 v) in (clear c TMP_44)))))) in (let 
-TMP_46 \def (\lambda (_: B).(\lambda (e: C).(\lambda (_: T).(drop i O e 
-c2)))) in (let TMP_51 \def (\lambda (b: B).(\lambda (e: C).(\lambda (v: 
-T).(let TMP_47 \def (Flat f) in (let TMP_48 \def (CHead c TMP_47 t) in (let 
-TMP_49 \def (Bind b) in (let TMP_50 \def (CHead e TMP_49 v) in (clear TMP_48 
-TMP_50)))))))) in (let TMP_52 \def (\lambda (_: B).(\lambda (e: C).(\lambda 
-(_: T).(drop i O e c2)))) in (let TMP_53 \def (ex2_3 B C T TMP_51 TMP_52) in 
-(let TMP_63 \def (\lambda (x0: B).(\lambda (x1: C).(\lambda (x2: T).(\lambda 
-(H3: (clear c (CHead x1 (Bind x0) x2))).(\lambda (H4: (drop i O x1 c2)).(let 
-TMP_58 \def (\lambda (b: B).(\lambda (e: C).(\lambda (v: T).(let TMP_54 \def 
-(Flat f) in (let TMP_55 \def (CHead c TMP_54 t) in (let TMP_56 \def (Bind b) 
-in (let TMP_57 \def (CHead e TMP_56 v) in (clear TMP_55 TMP_57)))))))) in 
-(let TMP_59 \def (\lambda (_: B).(\lambda (e: C).(\lambda (_: T).(drop i O e 
-c2)))) in (let TMP_60 \def (Bind x0) in (let TMP_61 \def (CHead x1 TMP_60 x2) 
-in (let TMP_62 \def (clear_flat c TMP_61 H3 f t) in (ex2_3_intro B C T TMP_58 
-TMP_59 x0 x1 x2 TMP_62 H4))))))))))) in (ex2_3_ind B C T TMP_45 TMP_46 TMP_53 
-TMP_63 H2)))))))))) in (let TMP_65 \def (drop_gen_drop k c c2 t i H0) in 
-(K_ind TMP_34 TMP_42 TMP_64 k TMP_65)))))))))))) in (C_ind TMP_5 TMP_28 
-TMP_66 c1)))).
+nat).(\lambda (H0: (drop (S i) O (CHead c k t) c2)).(K_ind (\lambda (k0: 
+K).((drop (r k0 i) O c c2) \to (ex2_3 B C T (\lambda (b: B).(\lambda (e: 
+C).(\lambda (v: T).(clear (CHead c k0 t) (CHead e (Bind b) v))))) (\lambda 
+(_: B).(\lambda (e: C).(\lambda (_: T).(drop i O e c2))))))) (\lambda (b: 
+B).(\lambda (H1: (drop (r (Bind b) i) O c c2)).(ex2_3_intro B C T (\lambda 
+(b0: B).(\lambda (e: C).(\lambda (v: T).(clear (CHead c (Bind b) t) (CHead e 
+(Bind b0) v))))) (\lambda (_: B).(\lambda (e: C).(\lambda (_: T).(drop i O e 
+c2)))) b c t (clear_bind b c t) H1))) (\lambda (f: F).(\lambda (H1: (drop (r 
+(Flat f) i) O c c2)).(let H2 \def (H c2 i H1) in (ex2_3_ind B C T (\lambda 
+(b: B).(\lambda (e: C).(\lambda (v: T).(clear c (CHead e (Bind b) v))))) 
+(\lambda (_: B).(\lambda (e: C).(\lambda (_: T).(drop i O e c2)))) (ex2_3 B C 
+T (\lambda (b: B).(\lambda (e: C).(\lambda (v: T).(clear (CHead c (Flat f) t) 
+(CHead e (Bind b) v))))) (\lambda (_: B).(\lambda (e: C).(\lambda (_: 
+T).(drop i O e c2))))) (\lambda (x0: B).(\lambda (x1: C).(\lambda (x2: 
+T).(\lambda (H3: (clear c (CHead x1 (Bind x0) x2))).(\lambda (H4: (drop i O 
+x1 c2)).(ex2_3_intro B C T (\lambda (b: B).(\lambda (e: C).(\lambda (v: 
+T).(clear (CHead c (Flat f) t) (CHead e (Bind b) v))))) (\lambda (_: 
+B).(\lambda (e: C).(\lambda (_: T).(drop i O e c2)))) x0 x1 x2 (clear_flat c 
+(CHead x1 (Bind x0) x2) H3 f t) H4)))))) H2)))) k (drop_gen_drop k c c2 t i 
+H0))))))))) c1).
 
 theorem drop_clear_O:
  \forall (b: B).(\forall (c: C).(\forall (e1: C).(\forall (u: T).((clear c 
 (CHead e1 (Bind b) u)) \to (\forall (e2: C).(\forall (i: nat).((drop i O e1 
 e2) \to (drop (S i) O c e2))))))))
 \def
- \lambda (b: B).(\lambda (c: C).(let TMP_2 \def (\lambda (c0: C).(\forall 
-(e1: C).(\forall (u: T).((clear c0 (CHead e1 (Bind b) u)) \to (\forall (e2: 
-C).(\forall (i: nat).((drop i O e1 e2) \to (let TMP_1 \def (S i) in (drop 
-TMP_1 O c0 e2))))))))) in (let TMP_8 \def (\lambda (n: nat).(\lambda (e1: 
-C).(\lambda (u: T).(\lambda (H: (clear (CSort n) (CHead e1 (Bind b) 
-u))).(\lambda (e2: C).(\lambda (i: nat).(\lambda (_: (drop i O e1 e2)).(let 
-TMP_3 \def (Bind b) in (let TMP_4 \def (CHead e1 TMP_3 u) in (let TMP_5 \def 
-(S i) in (let TMP_6 \def (CSort n) in (let TMP_7 \def (drop TMP_5 O TMP_6 e2) 
-in (clear_gen_sort TMP_4 n H TMP_7))))))))))))) in (let TMP_52 \def (\lambda 
-(c0: C).(\lambda (H: ((\forall (e1: C).(\forall (u: T).((clear c0 (CHead e1 
-(Bind b) u)) \to (\forall (e2: C).(\forall (i: nat).((drop i O e1 e2) \to 
-(drop (S i) O c0 e2))))))))).(\lambda (k: K).(\lambda (t: T).(\lambda (e1: 
-C).(\lambda (u: T).(\lambda (H0: (clear (CHead c0 k t) (CHead e1 (Bind b) 
-u))).(\lambda (e2: C).(\lambda (i: nat).(\lambda (H1: (drop i O e1 e2)).(let 
-TMP_11 \def (\lambda (k0: K).((clear (CHead c0 k0 t) (CHead e1 (Bind b) u)) 
-\to (let TMP_9 \def (S i) in (let TMP_10 \def (CHead c0 k0 t) in (drop TMP_9 
-O TMP_10 e2))))) in (let TMP_45 \def (\lambda (b0: B).(\lambda (H2: (clear 
-(CHead c0 (Bind b0) t) (CHead e1 (Bind b) u))).(let TMP_12 \def (\lambda (e: 
-C).(match e with [(CSort _) \Rightarrow e1 | (CHead c1 _ _) \Rightarrow c1])) 
-in (let TMP_13 \def (Bind b) in (let TMP_14 \def (CHead e1 TMP_13 u) in (let 
-TMP_15 \def (Bind b0) in (let TMP_16 \def (CHead c0 TMP_15 t) in (let TMP_17 
-\def (Bind b) in (let TMP_18 \def (CHead e1 TMP_17 u) in (let TMP_19 \def 
-(clear_gen_bind b0 c0 TMP_18 t H2) in (let H3 \def (f_equal C C TMP_12 TMP_14 
-TMP_16 TMP_19) in (let TMP_20 \def (\lambda (e: C).(match e with [(CSort _) 
-\Rightarrow b | (CHead _ k0 _) \Rightarrow (match k0 with [(Bind b1) 
-\Rightarrow b1 | (Flat _) \Rightarrow b])])) in (let TMP_21 \def (Bind b) in 
-(let TMP_22 \def (CHead e1 TMP_21 u) in (let TMP_23 \def (Bind b0) in (let 
-TMP_24 \def (CHead c0 TMP_23 t) in (let TMP_25 \def (Bind b) in (let TMP_26 
-\def (CHead e1 TMP_25 u) in (let TMP_27 \def (clear_gen_bind b0 c0 TMP_26 t 
-H2) in (let H4 \def (f_equal C B TMP_20 TMP_22 TMP_24 TMP_27) in (let TMP_28 
-\def (\lambda (e: C).(match e with [(CSort _) \Rightarrow u | (CHead _ _ t0) 
-\Rightarrow t0])) in (let TMP_29 \def (Bind b) in (let TMP_30 \def (CHead e1 
-TMP_29 u) in (let TMP_31 \def (Bind b0) in (let TMP_32 \def (CHead c0 TMP_31 
-t) in (let TMP_33 \def (Bind b) in (let TMP_34 \def (CHead e1 TMP_33 u) in 
-(let TMP_35 \def (clear_gen_bind b0 c0 TMP_34 t H2) in (let H5 \def (f_equal 
-C T TMP_28 TMP_30 TMP_32 TMP_35) in (let TMP_43 \def (\lambda (H6: (eq B b 
-b0)).(\lambda (H7: (eq C e1 c0)).(let TMP_36 \def (\lambda (c1: C).(drop i O 
-c1 e2)) in (let H8 \def (eq_ind C e1 TMP_36 H1 c0 H7) in (let TMP_40 \def 
-(\lambda (b1: B).(let TMP_37 \def (S i) in (let TMP_38 \def (Bind b1) in (let 
-TMP_39 \def (CHead c0 TMP_38 t) in (drop TMP_37 O TMP_39 e2))))) in (let 
-TMP_41 \def (Bind b) in (let TMP_42 \def (drop_drop TMP_41 i c0 e2 H8 t) in 
-(eq_ind B b TMP_40 TMP_42 b0 H6)))))))) in (let TMP_44 \def (TMP_43 H4) in 
-(TMP_44 H3)))))))))))))))))))))))))))))))) in (let TMP_51 \def (\lambda (f: 
-F).(\lambda (H2: (clear (CHead c0 (Flat f) t) (CHead e1 (Bind b) u))).(let 
-TMP_46 \def (Flat f) in (let TMP_47 \def (Bind b) in (let TMP_48 \def (CHead 
-e1 TMP_47 u) in (let TMP_49 \def (clear_gen_flat f c0 TMP_48 t H2) in (let 
-TMP_50 \def (H e1 u TMP_49 e2 i H1) in (drop_drop TMP_46 i c0 e2 TMP_50 
-t)))))))) in (K_ind TMP_11 TMP_45 TMP_51 k H0)))))))))))))) in (C_ind TMP_2 
-TMP_8 TMP_52 c))))).
+ \lambda (b: B).(\lambda (c: C).(C_ind (\lambda (c0: C).(\forall (e1: 
+C).(\forall (u: T).((clear c0 (CHead e1 (Bind b) u)) \to (\forall (e2: 
+C).(\forall (i: nat).((drop i O e1 e2) \to (drop (S i) O c0 e2)))))))) 
+(\lambda (n: nat).(\lambda (e1: C).(\lambda (u: T).(\lambda (H: (clear (CSort 
+n) (CHead e1 (Bind b) u))).(\lambda (e2: C).(\lambda (i: nat).(\lambda (_: 
+(drop i O e1 e2)).(clear_gen_sort (CHead e1 (Bind b) u) n H (drop (S i) O 
+(CSort n) e2))))))))) (\lambda (c0: C).(\lambda (H: ((\forall (e1: 
+C).(\forall (u: T).((clear c0 (CHead e1 (Bind b) u)) \to (\forall (e2: 
+C).(\forall (i: nat).((drop i O e1 e2) \to (drop (S i) O c0 
+e2))))))))).(\lambda (k: K).(\lambda (t: T).(\lambda (e1: C).(\lambda (u: 
+T).(\lambda (H0: (clear (CHead c0 k t) (CHead e1 (Bind b) u))).(\lambda (e2: 
+C).(\lambda (i: nat).(\lambda (H1: (drop i O e1 e2)).(K_ind (\lambda (k0: 
+K).((clear (CHead c0 k0 t) (CHead e1 (Bind b) u)) \to (drop (S i) O (CHead c0 
+k0 t) e2))) (\lambda (b0: B).(\lambda (H2: (clear (CHead c0 (Bind b0) t) 
+(CHead e1 (Bind b) u))).(let H3 \def (f_equal C C (\lambda (e: C).(match e 
+with [(CSort _) \Rightarrow e1 | (CHead c1 _ _) \Rightarrow c1])) (CHead e1 
+(Bind b) u) (CHead c0 (Bind b0) t) (clear_gen_bind b0 c0 (CHead e1 (Bind b) 
+u) t H2)) in ((let H4 \def (f_equal C B (\lambda (e: C).(match e with [(CSort 
+_) \Rightarrow b | (CHead _ k0 _) \Rightarrow (match k0 with [(Bind b1) 
+\Rightarrow b1 | (Flat _) \Rightarrow b])])) (CHead e1 (Bind b) u) (CHead c0 
+(Bind b0) t) (clear_gen_bind b0 c0 (CHead e1 (Bind b) u) t H2)) in ((let H5 
+\def (f_equal C T (\lambda (e: C).(match e with [(CSort _) \Rightarrow u | 
+(CHead _ _ t0) \Rightarrow t0])) (CHead e1 (Bind b) u) (CHead c0 (Bind b0) t) 
+(clear_gen_bind b0 c0 (CHead e1 (Bind b) u) t H2)) in (\lambda (H6: (eq B b 
+b0)).(\lambda (H7: (eq C e1 c0)).(let H8 \def (eq_ind C e1 (\lambda (c1: 
+C).(drop i O c1 e2)) H1 c0 H7) in (eq_ind B b (\lambda (b1: B).(drop (S i) O 
+(CHead c0 (Bind b1) t) e2)) (drop_drop (Bind b) i c0 e2 H8 t) b0 H6))))) H4)) 
+H3)))) (\lambda (f: F).(\lambda (H2: (clear (CHead c0 (Flat f) t) (CHead e1 
+(Bind b) u))).(drop_drop (Flat f) i c0 e2 (H e1 u (clear_gen_flat f c0 (CHead 
+e1 (Bind b) u) t H2) e2 i H1) t))) k H0))))))))))) c)).
 
 theorem drop_clear_S:
  \forall (x2: C).(\forall (x1: C).(\forall (h: nat).(\forall (d: nat).((drop 
@@ -148,126 +105,64 @@ h (S d) x1 x2) \to (\forall (b: B).(\forall (c2: C).(\forall (u: T).((clear
 x2 (CHead c2 (Bind b) u)) \to (ex2 C (\lambda (c1: C).(clear x1 (CHead c1 
 (Bind b) (lift h d u)))) (\lambda (c1: C).(drop h d c1 c2)))))))))))
 \def
- \lambda (x2: C).(let TMP_6 \def (\lambda (c: C).(\forall (x1: C).(\forall 
-(h: nat).(\forall (d: nat).((drop h (S d) x1 c) \to (\forall (b: B).(\forall 
-(c2: C).(\forall (u: T).((clear c (CHead c2 (Bind b) u)) \to (let TMP_4 \def 
-(\lambda (c1: C).(let TMP_1 \def (Bind b) in (let TMP_2 \def (lift h d u) in 
-(let TMP_3 \def (CHead c1 TMP_1 TMP_2) in (clear x1 TMP_3))))) in (let TMP_5 
-\def (\lambda (c1: C).(drop h d c1 c2)) in (ex2 C TMP_4 TMP_5)))))))))))) in 
-(let TMP_15 \def (\lambda (n: nat).(\lambda (x1: C).(\lambda (h: 
-nat).(\lambda (d: nat).(\lambda (_: (drop h (S d) x1 (CSort n))).(\lambda (b: 
-B).(\lambda (c2: C).(\lambda (u: T).(\lambda (H0: (clear (CSort n) (CHead c2 
-(Bind b) u))).(let TMP_7 \def (Bind b) in (let TMP_8 \def (CHead c2 TMP_7 u) 
-in (let TMP_12 \def (\lambda (c1: C).(let TMP_9 \def (Bind b) in (let TMP_10 
-\def (lift h d u) in (let TMP_11 \def (CHead c1 TMP_9 TMP_10) in (clear x1 
-TMP_11))))) in (let TMP_13 \def (\lambda (c1: C).(drop h d c1 c2)) in (let 
-TMP_14 \def (ex2 C TMP_12 TMP_13) in (clear_gen_sort TMP_8 n H0 
-TMP_14))))))))))))))) in (let TMP_162 \def (\lambda (c: C).(\lambda (H: 
-((\forall (x1: C).(\forall (h: nat).(\forall (d: nat).((drop h (S d) x1 c) 
-\to (\forall (b: B).(\forall (c2: C).(\forall (u: T).((clear c (CHead c2 
-(Bind b) u)) \to (ex2 C (\lambda (c1: C).(clear x1 (CHead c1 (Bind b) (lift h 
-d u)))) (\lambda (c1: C).(drop h d c1 c2))))))))))))).(\lambda (k: 
-K).(\lambda (t: T).(\lambda (x1: C).(\lambda (h: nat).(\lambda (d: 
-nat).(\lambda (H0: (drop h (S d) x1 (CHead c k t))).(\lambda (b: B).(\lambda 
-(c2: C).(\lambda (u: T).(\lambda (H1: (clear (CHead c k t) (CHead c2 (Bind b) 
-u))).(let TMP_19 \def (\lambda (e: C).(let TMP_16 \def (r k d) in (let TMP_17 
-\def (lift h TMP_16 t) in (let TMP_18 \def (CHead e k TMP_17) in (eq C x1 
-TMP_18))))) in (let TMP_21 \def (\lambda (e: C).(let TMP_20 \def (r k d) in 
-(drop h TMP_20 e c))) in (let TMP_25 \def (\lambda (c1: C).(let TMP_22 \def 
-(Bind b) in (let TMP_23 \def (lift h d u) in (let TMP_24 \def (CHead c1 
-TMP_22 TMP_23) in (clear x1 TMP_24))))) in (let TMP_26 \def (\lambda (c1: 
-C).(drop h d c1 c2)) in (let TMP_27 \def (ex2 C TMP_25 TMP_26) in (let 
-TMP_160 \def (\lambda (x: C).(\lambda (H2: (eq C x1 (CHead x k (lift h (r k 
-d) t)))).(\lambda (H3: (drop h (r k d) x c)).(let TMP_28 \def (r k d) in (let 
-TMP_29 \def (lift h TMP_28 t) in (let TMP_30 \def (CHead x k TMP_29) in (let 
-TMP_36 \def (\lambda (c0: C).(let TMP_34 \def (\lambda (c1: C).(let TMP_31 
-\def (Bind b) in (let TMP_32 \def (lift h d u) in (let TMP_33 \def (CHead c1 
-TMP_31 TMP_32) in (clear c0 TMP_33))))) in (let TMP_35 \def (\lambda (c1: 
-C).(drop h d c1 c2)) in (ex2 C TMP_34 TMP_35)))) in (let TMP_45 \def (\lambda 
-(k0: K).((clear (CHead c k0 t) (CHead c2 (Bind b) u)) \to ((drop h (r k0 d) x 
-c) \to (let TMP_43 \def (\lambda (c1: C).(let TMP_37 \def (r k0 d) in (let 
-TMP_38 \def (lift h TMP_37 t) in (let TMP_39 \def (CHead x k0 TMP_38) in (let 
-TMP_40 \def (Bind b) in (let TMP_41 \def (lift h d u) in (let TMP_42 \def 
-(CHead c1 TMP_40 TMP_41) in (clear TMP_39 TMP_42)))))))) in (let TMP_44 \def 
-(\lambda (c1: C).(drop h d c1 c2)) in (ex2 C TMP_43 TMP_44)))))) in (let 
-TMP_120 \def (\lambda (b0: B).(\lambda (H4: (clear (CHead c (Bind b0) t) 
-(CHead c2 (Bind b) u))).(\lambda (H5: (drop h (r (Bind b0) d) x c)).(let 
-TMP_46 \def (\lambda (e: C).(match e with [(CSort _) \Rightarrow c2 | (CHead 
-c0 _ _) \Rightarrow c0])) in (let TMP_47 \def (Bind b) in (let TMP_48 \def 
-(CHead c2 TMP_47 u) in (let TMP_49 \def (Bind b0) in (let TMP_50 \def (CHead 
-c TMP_49 t) in (let TMP_51 \def (Bind b) in (let TMP_52 \def (CHead c2 TMP_51 
-u) in (let TMP_53 \def (clear_gen_bind b0 c TMP_52 t H4) in (let H6 \def 
-(f_equal C C TMP_46 TMP_48 TMP_50 TMP_53) in (let TMP_54 \def (\lambda (e: 
+ \lambda (x2: C).(C_ind (\lambda (c: C).(\forall (x1: C).(\forall (h: 
+nat).(\forall (d: nat).((drop h (S d) x1 c) \to (\forall (b: B).(\forall (c2: 
+C).(\forall (u: T).((clear c (CHead c2 (Bind b) u)) \to (ex2 C (\lambda (c1: 
+C).(clear x1 (CHead c1 (Bind b) (lift h d u)))) (\lambda (c1: C).(drop h d c1 
+c2)))))))))))) (\lambda (n: nat).(\lambda (x1: C).(\lambda (h: nat).(\lambda 
+(d: nat).(\lambda (_: (drop h (S d) x1 (CSort n))).(\lambda (b: B).(\lambda 
+(c2: C).(\lambda (u: T).(\lambda (H0: (clear (CSort n) (CHead c2 (Bind b) 
+u))).(clear_gen_sort (CHead c2 (Bind b) u) n H0 (ex2 C (\lambda (c1: 
+C).(clear x1 (CHead c1 (Bind b) (lift h d u)))) (\lambda (c1: C).(drop h d c1 
+c2))))))))))))) (\lambda (c: C).(\lambda (H: ((\forall (x1: C).(\forall (h: 
+nat).(\forall (d: nat).((drop h (S d) x1 c) \to (\forall (b: B).(\forall (c2: 
+C).(\forall (u: T).((clear c (CHead c2 (Bind b) u)) \to (ex2 C (\lambda (c1: 
+C).(clear x1 (CHead c1 (Bind b) (lift h d u)))) (\lambda (c1: C).(drop h d c1 
+c2))))))))))))).(\lambda (k: K).(\lambda (t: T).(\lambda (x1: C).(\lambda (h: 
+nat).(\lambda (d: nat).(\lambda (H0: (drop h (S d) x1 (CHead c k 
+t))).(\lambda (b: B).(\lambda (c2: C).(\lambda (u: T).(\lambda (H1: (clear 
+(CHead c k t) (CHead c2 (Bind b) u))).(ex2_ind C (\lambda (e: C).(eq C x1 
+(CHead e k (lift h (r k d) t)))) (\lambda (e: C).(drop h (r k d) e c)) (ex2 C 
+(\lambda (c1: C).(clear x1 (CHead c1 (Bind b) (lift h d u)))) (\lambda (c1: 
+C).(drop h d c1 c2))) (\lambda (x: C).(\lambda (H2: (eq C x1 (CHead x k (lift 
+h (r k d) t)))).(\lambda (H3: (drop h (r k d) x c)).(eq_ind_r C (CHead x k 
+(lift h (r k d) t)) (\lambda (c0: C).(ex2 C (\lambda (c1: C).(clear c0 (CHead 
+c1 (Bind b) (lift h d u)))) (\lambda (c1: C).(drop h d c1 c2)))) (K_ind 
+(\lambda (k0: K).((clear (CHead c k0 t) (CHead c2 (Bind b) u)) \to ((drop h 
+(r k0 d) x c) \to (ex2 C (\lambda (c1: C).(clear (CHead x k0 (lift h (r k0 d) 
+t)) (CHead c1 (Bind b) (lift h d u)))) (\lambda (c1: C).(drop h d c1 c2)))))) 
+(\lambda (b0: B).(\lambda (H4: (clear (CHead c (Bind b0) t) (CHead c2 (Bind 
+b) u))).(\lambda (H5: (drop h (r (Bind b0) d) x c)).(let H6 \def (f_equal C C 
+(\lambda (e: C).(match e with [(CSort _) \Rightarrow c2 | (CHead c0 _ _) 
+\Rightarrow c0])) (CHead c2 (Bind b) u) (CHead c (Bind b0) t) (clear_gen_bind 
+b0 c (CHead c2 (Bind b) u) t H4)) in ((let H7 \def (f_equal C B (\lambda (e: 
 C).(match e with [(CSort _) \Rightarrow b | (CHead _ k0 _) \Rightarrow (match 
-k0 with [(Bind b1) \Rightarrow b1 | (Flat _) \Rightarrow b])])) in (let 
-TMP_55 \def (Bind b) in (let TMP_56 \def (CHead c2 TMP_55 u) in (let TMP_57 
-\def (Bind b0) in (let TMP_58 \def (CHead c TMP_57 t) in (let TMP_59 \def 
-(Bind b) in (let TMP_60 \def (CHead c2 TMP_59 u) in (let TMP_61 \def 
-(clear_gen_bind b0 c TMP_60 t H4) in (let H7 \def (f_equal C B TMP_54 TMP_56 
-TMP_58 TMP_61) in (let TMP_62 \def (\lambda (e: C).(match e with [(CSort _) 
-\Rightarrow u | (CHead _ _ t0) \Rightarrow t0])) in (let TMP_63 \def (Bind b) 
-in (let TMP_64 \def (CHead c2 TMP_63 u) in (let TMP_65 \def (Bind b0) in (let 
-TMP_66 \def (CHead c TMP_65 t) in (let TMP_67 \def (Bind b) in (let TMP_68 
-\def (CHead c2 TMP_67 u) in (let TMP_69 \def (clear_gen_bind b0 c TMP_68 t 
-H4) in (let H8 \def (f_equal C T TMP_62 TMP_64 TMP_66 TMP_69) in (let TMP_118 
-\def (\lambda (H9: (eq B b b0)).(\lambda (H10: (eq C c2 c)).(let TMP_80 \def 
-(\lambda (t0: T).(let TMP_78 \def (\lambda (c1: C).(let TMP_70 \def (Bind b0) 
-in (let TMP_71 \def (Bind b0) in (let TMP_72 \def (r TMP_71 d) in (let TMP_73 
-\def (lift h TMP_72 t) in (let TMP_74 \def (CHead x TMP_70 TMP_73) in (let 
-TMP_75 \def (Bind b) in (let TMP_76 \def (lift h d t0) in (let TMP_77 \def 
-(CHead c1 TMP_75 TMP_76) in (clear TMP_74 TMP_77)))))))))) in (let TMP_79 
-\def (\lambda (c1: C).(drop h d c1 c2)) in (ex2 C TMP_78 TMP_79)))) in (let 
-TMP_91 \def (\lambda (c0: C).(let TMP_89 \def (\lambda (c1: C).(let TMP_81 
-\def (Bind b0) in (let TMP_82 \def (Bind b0) in (let TMP_83 \def (r TMP_82 d) 
-in (let TMP_84 \def (lift h TMP_83 t) in (let TMP_85 \def (CHead x TMP_81 
-TMP_84) in (let TMP_86 \def (Bind b) in (let TMP_87 \def (lift h d t) in (let 
-TMP_88 \def (CHead c1 TMP_86 TMP_87) in (clear TMP_85 TMP_88)))))))))) in 
-(let TMP_90 \def (\lambda (c1: C).(drop h d c1 c0)) in (ex2 C TMP_89 
-TMP_90)))) in (let TMP_102 \def (\lambda (b1: B).(let TMP_100 \def (\lambda 
-(c1: C).(let TMP_92 \def (Bind b0) in (let TMP_93 \def (Bind b0) in (let 
-TMP_94 \def (r TMP_93 d) in (let TMP_95 \def (lift h TMP_94 t) in (let TMP_96 
-\def (CHead x TMP_92 TMP_95) in (let TMP_97 \def (Bind b1) in (let TMP_98 
-\def (lift h d t) in (let TMP_99 \def (CHead c1 TMP_97 TMP_98) in (clear 
-TMP_96 TMP_99)))))))))) in (let TMP_101 \def (\lambda (c1: C).(drop h d c1 
-c)) in (ex2 C TMP_100 TMP_101)))) in (let TMP_111 \def (\lambda (c1: C).(let 
-TMP_103 \def (Bind b0) in (let TMP_104 \def (Bind b0) in (let TMP_105 \def (r 
-TMP_104 d) in (let TMP_106 \def (lift h TMP_105 t) in (let TMP_107 \def 
-(CHead x TMP_103 TMP_106) in (let TMP_108 \def (Bind b0) in (let TMP_109 \def 
-(lift h d t) in (let TMP_110 \def (CHead c1 TMP_108 TMP_109) in (clear 
-TMP_107 TMP_110)))))))))) in (let TMP_112 \def (\lambda (c1: C).(drop h d c1 
-c)) in (let TMP_113 \def (lift h d t) in (let TMP_114 \def (clear_bind b0 x 
-TMP_113) in (let TMP_115 \def (ex_intro2 C TMP_111 TMP_112 x TMP_114 H5) in 
-(let TMP_116 \def (eq_ind_r B b0 TMP_102 TMP_115 b H9) in (let TMP_117 \def 
-(eq_ind_r C c TMP_91 TMP_116 c2 H10) in (eq_ind_r T t TMP_80 TMP_117 u 
-H8))))))))))))) in (let TMP_119 \def (TMP_118 H7) in (TMP_119 
-H6))))))))))))))))))))))))))))))))) in (let TMP_158 \def (\lambda (f: 
+k0 with [(Bind b1) \Rightarrow b1 | (Flat _) \Rightarrow b])])) (CHead c2 
+(Bind b) u) (CHead c (Bind b0) t) (clear_gen_bind b0 c (CHead c2 (Bind b) u) 
+t H4)) in ((let H8 \def (f_equal C T (\lambda (e: C).(match e with [(CSort _) 
+\Rightarrow u | (CHead _ _ t0) \Rightarrow t0])) (CHead c2 (Bind b) u) (CHead 
+c (Bind b0) t) (clear_gen_bind b0 c (CHead c2 (Bind b) u) t H4)) in (\lambda 
+(H9: (eq B b b0)).(\lambda (H10: (eq C c2 c)).(eq_ind_r T t (\lambda (t0: 
+T).(ex2 C (\lambda (c1: C).(clear (CHead x (Bind b0) (lift h (r (Bind b0) d) 
+t)) (CHead c1 (Bind b) (lift h d t0)))) (\lambda (c1: C).(drop h d c1 c2)))) 
+(eq_ind_r C c (\lambda (c0: C).(ex2 C (\lambda (c1: C).(clear (CHead x (Bind 
+b0) (lift h (r (Bind b0) d) t)) (CHead c1 (Bind b) (lift h d t)))) (\lambda 
+(c1: C).(drop h d c1 c0)))) (eq_ind_r B b0 (\lambda (b1: B).(ex2 C (\lambda 
+(c1: C).(clear (CHead x (Bind b0) (lift h (r (Bind b0) d) t)) (CHead c1 (Bind 
+b1) (lift h d t)))) (\lambda (c1: C).(drop h d c1 c)))) (ex_intro2 C (\lambda 
+(c1: C).(clear (CHead x (Bind b0) (lift h (r (Bind b0) d) t)) (CHead c1 (Bind 
+b0) (lift h d t)))) (\lambda (c1: C).(drop h d c1 c)) x (clear_bind b0 x 
+(lift h d t)) H5) b H9) c2 H10) u H8)))) H7)) H6))))) (\lambda (f: 
 F).(\lambda (H4: (clear (CHead c (Flat f) t) (CHead c2 (Bind b) u))).(\lambda 
-(H5: (drop h (r (Flat f) d) x c)).(let TMP_121 \def (Bind b) in (let TMP_122 
-\def (CHead c2 TMP_121 u) in (let TMP_123 \def (clear_gen_flat f c TMP_122 t 
-H4) in (let H6 \def (H x h d H5 b c2 u TMP_123) in (let TMP_127 \def (\lambda 
-(c1: C).(let TMP_124 \def (Bind b) in (let TMP_125 \def (lift h d u) in (let 
-TMP_126 \def (CHead c1 TMP_124 TMP_125) in (clear x TMP_126))))) in (let 
-TMP_128 \def (\lambda (c1: C).(drop h d c1 c2)) in (let TMP_137 \def (\lambda 
-(c1: C).(let TMP_129 \def (Flat f) in (let TMP_130 \def (Flat f) in (let 
-TMP_131 \def (r TMP_130 d) in (let TMP_132 \def (lift h TMP_131 t) in (let 
-TMP_133 \def (CHead x TMP_129 TMP_132) in (let TMP_134 \def (Bind b) in (let 
-TMP_135 \def (lift h d u) in (let TMP_136 \def (CHead c1 TMP_134 TMP_135) in 
-(clear TMP_133 TMP_136)))))))))) in (let TMP_138 \def (\lambda (c1: C).(drop 
-h d c1 c2)) in (let TMP_139 \def (ex2 C TMP_137 TMP_138) in (let TMP_157 \def 
+(H5: (drop h (r (Flat f) d) x c)).(let H6 \def (H x h d H5 b c2 u 
+(clear_gen_flat f c (CHead c2 (Bind b) u) t H4)) in (ex2_ind C (\lambda (c1: 
+C).(clear x (CHead c1 (Bind b) (lift h d u)))) (\lambda (c1: C).(drop h d c1 
+c2)) (ex2 C (\lambda (c1: C).(clear (CHead x (Flat f) (lift h (r (Flat f) d) 
+t)) (CHead c1 (Bind b) (lift h d u)))) (\lambda (c1: C).(drop h d c1 c2))) 
 (\lambda (x0: C).(\lambda (H7: (clear x (CHead x0 (Bind b) (lift h d 
-u)))).(\lambda (H8: (drop h d x0 c2)).(let TMP_148 \def (\lambda (c1: C).(let 
-TMP_140 \def (Flat f) in (let TMP_141 \def (Flat f) in (let TMP_142 \def (r 
-TMP_141 d) in (let TMP_143 \def (lift h TMP_142 t) in (let TMP_144 \def 
-(CHead x TMP_140 TMP_143) in (let TMP_145 \def (Bind b) in (let TMP_146 \def 
-(lift h d u) in (let TMP_147 \def (CHead c1 TMP_145 TMP_146) in (clear 
-TMP_144 TMP_147)))))))))) in (let TMP_149 \def (\lambda (c1: C).(drop h d c1 
-c2)) in (let TMP_150 \def (Bind b) in (let TMP_151 \def (lift h d u) in (let 
-TMP_152 \def (CHead x0 TMP_150 TMP_151) in (let TMP_153 \def (Flat f) in (let 
-TMP_154 \def (r TMP_153 d) in (let TMP_155 \def (lift h TMP_154 t) in (let 
-TMP_156 \def (clear_flat x TMP_152 H7 f TMP_155) in (ex_intro2 C TMP_148 
-TMP_149 x0 TMP_156 H8))))))))))))) in (ex2_ind C TMP_127 TMP_128 TMP_139 
-TMP_157 H6)))))))))))))) in (let TMP_159 \def (K_ind TMP_45 TMP_120 TMP_158 k 
-H1 H3) in (eq_ind_r C TMP_30 TMP_36 TMP_159 x1 H2)))))))))))) in (let TMP_161 
-\def (drop_gen_skip_r c x1 t h d k H0) in (ex2_ind C TMP_19 TMP_21 TMP_27 
-TMP_160 TMP_161)))))))))))))))))))) in (C_ind TMP_6 TMP_15 TMP_162 x2)))).
+u)))).(\lambda (H8: (drop h d x0 c2)).(ex_intro2 C (\lambda (c1: C).(clear 
+(CHead x (Flat f) (lift h (r (Flat f) d) t)) (CHead c1 (Bind b) (lift h d 
+u)))) (\lambda (c1: C).(drop h d c1 c2)) x0 (clear_flat x (CHead x0 (Bind b) 
+(lift h d u)) H7 f (lift h (r (Flat f) d) t)) H8)))) H6))))) k H1 H3) x1 
+H2)))) (drop_gen_skip_r c x1 t h d k H0)))))))))))))) x2).
 
index 5d602754db201e079e83600273ecf122b7147152..88de2d2641bec3e6f84e2fa4325d1e2e4e40f0d2 100644 (file)
@@ -23,250 +23,170 @@ C).(\forall (u: T).(P (CHead e (Bind b) u) (CHead e (Bind b) u)))))) (f0:
 (\forall (e: C).(\forall (c: C).((clear e c) \to ((P e c) \to (\forall (f0: 
 F).(\forall (u: T).(P (CHead e (Flat f0) u) c)))))))) (c: C) (c0: C) (c1: 
 clear c c0) on c1: P c c0 \def match c1 with [(clear_bind b e u) \Rightarrow 
-(f b e u) | (clear_flat e c2 c3 f1 u) \Rightarrow (let TMP_1 \def ((clear_ind 
-P f f0) e c2 c3) in (f0 e c2 c3 TMP_1 f1 u))].
+(f b e u) | (clear_flat e c2 c3 f1 u) \Rightarrow (f0 e c2 c3 ((clear_ind P f 
+f0) e c2 c3) f1 u)].
 
 theorem clear_gen_sort:
  \forall (x: C).(\forall (n: nat).((clear (CSort n) x) \to (\forall (P: 
 Prop).P)))
 \def
  \lambda (x: C).(\lambda (n: nat).(\lambda (H: (clear (CSort n) x)).(\lambda 
-(P: Prop).(let TMP_1 \def (CSort n) in (let TMP_2 \def (\lambda (c: C).(clear 
-c x)) in (let TMP_3 \def (\lambda (_: C).P) in (let TMP_15 \def (\lambda (y: 
-C).(\lambda (H0: (clear y x)).(let TMP_4 \def (\lambda (c: C).(\lambda (_: 
-C).((eq C c (CSort n)) \to P))) in (let TMP_9 \def (\lambda (b: B).(\lambda 
-(e: C).(\lambda (u: T).(\lambda (H1: (eq C (CHead e (Bind b) u) (CSort 
-n))).(let TMP_5 \def (Bind b) in (let TMP_6 \def (CHead e TMP_5 u) in (let 
-TMP_7 \def (\lambda (ee: C).(match ee with [(CSort _) \Rightarrow False | 
-(CHead _ _ _) \Rightarrow True])) in (let TMP_8 \def (CSort n) in (let H2 
-\def (eq_ind C TMP_6 TMP_7 I TMP_8 H1) in (False_ind P H2)))))))))) in (let 
-TMP_14 \def (\lambda (e: C).(\lambda (c: C).(\lambda (_: (clear e 
-c)).(\lambda (_: (((eq C e (CSort n)) \to P))).(\lambda (f: F).(\lambda (u: 
-T).(\lambda (H3: (eq C (CHead e (Flat f) u) (CSort n))).(let TMP_10 \def 
-(Flat f) in (let TMP_11 \def (CHead e TMP_10 u) in (let TMP_12 \def (\lambda 
-(ee: C).(match ee with [(CSort _) \Rightarrow False | (CHead _ _ _) 
-\Rightarrow True])) in (let TMP_13 \def (CSort n) in (let H4 \def (eq_ind C 
-TMP_11 TMP_12 I TMP_13 H3) in (False_ind P H4))))))))))))) in (clear_ind 
-TMP_4 TMP_9 TMP_14 y x H0)))))) in (insert_eq C TMP_1 TMP_2 TMP_3 TMP_15 
-H)))))))).
+(P: Prop).(insert_eq C (CSort n) (\lambda (c: C).(clear c x)) (\lambda (_: 
+C).P) (\lambda (y: C).(\lambda (H0: (clear y x)).(clear_ind (\lambda (c: 
+C).(\lambda (_: C).((eq C c (CSort n)) \to P))) (\lambda (b: B).(\lambda (e: 
+C).(\lambda (u: T).(\lambda (H1: (eq C (CHead e (Bind b) u) (CSort n))).(let 
+H2 \def (eq_ind C (CHead e (Bind b) u) (\lambda (ee: C).(match ee with 
+[(CSort _) \Rightarrow False | (CHead _ _ _) \Rightarrow True])) I (CSort n) 
+H1) in (False_ind P H2)))))) (\lambda (e: C).(\lambda (c: C).(\lambda (_: 
+(clear e c)).(\lambda (_: (((eq C e (CSort n)) \to P))).(\lambda (f: 
+F).(\lambda (u: T).(\lambda (H3: (eq C (CHead e (Flat f) u) (CSort n))).(let 
+H4 \def (eq_ind C (CHead e (Flat f) u) (\lambda (ee: C).(match ee with 
+[(CSort _) \Rightarrow False | (CHead _ _ _) \Rightarrow True])) I (CSort n) 
+H3) in (False_ind P H4))))))))) y x H0))) H)))).
 
 theorem clear_gen_bind:
  \forall (b: B).(\forall (e: C).(\forall (x: C).(\forall (u: T).((clear 
 (CHead e (Bind b) u) x) \to (eq C x (CHead e (Bind b) u))))))
 \def
  \lambda (b: B).(\lambda (e: C).(\lambda (x: C).(\lambda (u: T).(\lambda (H: 
-(clear (CHead e (Bind b) u) x)).(let TMP_1 \def (Bind b) in (let TMP_2 \def 
-(CHead e TMP_1 u) in (let TMP_3 \def (\lambda (c: C).(clear c x)) in (let 
-TMP_4 \def (\lambda (c: C).(eq C x c)) in (let TMP_53 \def (\lambda (y: 
-C).(\lambda (H0: (clear y x)).(let TMP_5 \def (\lambda (c: C).(\lambda (c0: 
-C).((eq C c (CHead e (Bind b) u)) \to (eq C c0 c)))) in (let TMP_43 \def 
-(\lambda (b0: B).(\lambda (e0: C).(\lambda (u0: T).(\lambda (H1: (eq C (CHead 
-e0 (Bind b0) u0) (CHead e (Bind b) u))).(let TMP_6 \def (\lambda (e1: 
-C).(match e1 with [(CSort _) \Rightarrow e0 | (CHead c _ _) \Rightarrow c])) 
-in (let TMP_7 \def (Bind b0) in (let TMP_8 \def (CHead e0 TMP_7 u0) in (let 
-TMP_9 \def (Bind b) in (let TMP_10 \def (CHead e TMP_9 u) in (let H2 \def 
-(f_equal C C TMP_6 TMP_8 TMP_10 H1) in (let TMP_11 \def (\lambda (e1: 
+(clear (CHead e (Bind b) u) x)).(insert_eq C (CHead e (Bind b) u) (\lambda 
+(c: C).(clear c x)) (\lambda (c: C).(eq C x c)) (\lambda (y: C).(\lambda (H0: 
+(clear y x)).(clear_ind (\lambda (c: C).(\lambda (c0: C).((eq C c (CHead e 
+(Bind b) u)) \to (eq C c0 c)))) (\lambda (b0: B).(\lambda (e0: C).(\lambda 
+(u0: T).(\lambda (H1: (eq C (CHead e0 (Bind b0) u0) (CHead e (Bind b) 
+u))).(let H2 \def (f_equal C C (\lambda (e1: C).(match e1 with [(CSort _) 
+\Rightarrow e0 | (CHead c _ _) \Rightarrow c])) (CHead e0 (Bind b0) u0) 
+(CHead e (Bind b) u) H1) in ((let H3 \def (f_equal C B (\lambda (e1: 
 C).(match e1 with [(CSort _) \Rightarrow b0 | (CHead _ k _) \Rightarrow 
-(match k with [(Bind b1) \Rightarrow b1 | (Flat _) \Rightarrow b0])])) in 
-(let TMP_12 \def (Bind b0) in (let TMP_13 \def (CHead e0 TMP_12 u0) in (let 
-TMP_14 \def (Bind b) in (let TMP_15 \def (CHead e TMP_14 u) in (let H3 \def 
-(f_equal C B TMP_11 TMP_13 TMP_15 H1) in (let TMP_16 \def (\lambda (e1: 
-C).(match e1 with [(CSort _) \Rightarrow u0 | (CHead _ _ t) \Rightarrow t])) 
-in (let TMP_17 \def (Bind b0) in (let TMP_18 \def (CHead e0 TMP_17 u0) in 
-(let TMP_19 \def (Bind b) in (let TMP_20 \def (CHead e TMP_19 u) in (let H4 
-\def (f_equal C T TMP_16 TMP_18 TMP_20 H1) in (let TMP_41 \def (\lambda (H5: 
-(eq B b0 b)).(\lambda (H6: (eq C e0 e)).(let TMP_25 \def (\lambda (t: T).(let 
-TMP_21 \def (Bind b0) in (let TMP_22 \def (CHead e0 TMP_21 t) in (let TMP_23 
-\def (Bind b0) in (let TMP_24 \def (CHead e0 TMP_23 t) in (eq C TMP_22 
-TMP_24)))))) in (let TMP_30 \def (\lambda (c: C).(let TMP_26 \def (Bind b0) 
-in (let TMP_27 \def (CHead c TMP_26 u) in (let TMP_28 \def (Bind b0) in (let 
-TMP_29 \def (CHead c TMP_28 u) in (eq C TMP_27 TMP_29)))))) in (let TMP_35 
-\def (\lambda (b1: B).(let TMP_31 \def (Bind b1) in (let TMP_32 \def (CHead e 
-TMP_31 u) in (let TMP_33 \def (Bind b1) in (let TMP_34 \def (CHead e TMP_33 
-u) in (eq C TMP_32 TMP_34)))))) in (let TMP_36 \def (Bind b) in (let TMP_37 
-\def (CHead e TMP_36 u) in (let TMP_38 \def (refl_equal C TMP_37) in (let 
-TMP_39 \def (eq_ind_r B b TMP_35 TMP_38 b0 H5) in (let TMP_40 \def (eq_ind_r 
-C e TMP_30 TMP_39 e0 H6) in (eq_ind_r T u TMP_25 TMP_40 u0 H4))))))))))) in 
-(let TMP_42 \def (TMP_41 H3) in (TMP_42 H2))))))))))))))))))))))))) in (let 
-TMP_52 \def (\lambda (e0: C).(\lambda (c: C).(\lambda (_: (clear e0 
-c)).(\lambda (_: (((eq C e0 (CHead e (Bind b) u)) \to (eq C c e0)))).(\lambda 
-(f: F).(\lambda (u0: T).(\lambda (H3: (eq C (CHead e0 (Flat f) u0) (CHead e 
-(Bind b) u))).(let TMP_44 \def (Flat f) in (let TMP_45 \def (CHead e0 TMP_44 
-u0) in (let TMP_46 \def (\lambda (ee: C).(match ee with [(CSort _) 
-\Rightarrow False | (CHead _ k _) \Rightarrow (match k with [(Bind _) 
-\Rightarrow False | (Flat _) \Rightarrow True])])) in (let TMP_47 \def (Bind 
-b) in (let TMP_48 \def (CHead e TMP_47 u) in (let H4 \def (eq_ind C TMP_45 
-TMP_46 I TMP_48 H3) in (let TMP_49 \def (Flat f) in (let TMP_50 \def (CHead 
-e0 TMP_49 u0) in (let TMP_51 \def (eq C c TMP_50) in (False_ind TMP_51 
-H4))))))))))))))))) in (clear_ind TMP_5 TMP_43 TMP_52 y x H0)))))) in 
-(insert_eq C TMP_2 TMP_3 TMP_4 TMP_53 H)))))))))).
+(match k with [(Bind b1) \Rightarrow b1 | (Flat _) \Rightarrow b0])])) (CHead 
+e0 (Bind b0) u0) (CHead e (Bind b) u) H1) in ((let H4 \def (f_equal C T 
+(\lambda (e1: C).(match e1 with [(CSort _) \Rightarrow u0 | (CHead _ _ t) 
+\Rightarrow t])) (CHead e0 (Bind b0) u0) (CHead e (Bind b) u) H1) in (\lambda 
+(H5: (eq B b0 b)).(\lambda (H6: (eq C e0 e)).(eq_ind_r T u (\lambda (t: 
+T).(eq C (CHead e0 (Bind b0) t) (CHead e0 (Bind b0) t))) (eq_ind_r C e 
+(\lambda (c: C).(eq C (CHead c (Bind b0) u) (CHead c (Bind b0) u))) (eq_ind_r 
+B b (\lambda (b1: B).(eq C (CHead e (Bind b1) u) (CHead e (Bind b1) u))) 
+(refl_equal C (CHead e (Bind b) u)) b0 H5) e0 H6) u0 H4)))) H3)) H2)))))) 
+(\lambda (e0: C).(\lambda (c: C).(\lambda (_: (clear e0 c)).(\lambda (_: 
+(((eq C e0 (CHead e (Bind b) u)) \to (eq C c e0)))).(\lambda (f: F).(\lambda 
+(u0: T).(\lambda (H3: (eq C (CHead e0 (Flat f) u0) (CHead e (Bind b) 
+u))).(let H4 \def (eq_ind C (CHead e0 (Flat f) u0) (\lambda (ee: C).(match ee 
+with [(CSort _) \Rightarrow False | (CHead _ k _) \Rightarrow (match k with 
+[(Bind _) \Rightarrow False | (Flat _) \Rightarrow True])])) I (CHead e (Bind 
+b) u) H3) in (False_ind (eq C c (CHead e0 (Flat f) u0)) H4))))))))) y x H0))) 
+H))))).
 
 theorem clear_gen_flat:
  \forall (f: F).(\forall (e: C).(\forall (x: C).(\forall (u: T).((clear 
 (CHead e (Flat f) u) x) \to (clear e x)))))
 \def
  \lambda (f: F).(\lambda (e: C).(\lambda (x: C).(\lambda (u: T).(\lambda (H: 
-(clear (CHead e (Flat f) u) x)).(let TMP_1 \def (Flat f) in (let TMP_2 \def 
-(CHead e TMP_1 u) in (let TMP_3 \def (\lambda (c: C).(clear c x)) in (let 
-TMP_4 \def (\lambda (_: C).(clear e x)) in (let TMP_35 \def (\lambda (y: 
-C).(\lambda (H0: (clear y x)).(let TMP_5 \def (\lambda (c: C).(\lambda (c0: 
-C).((eq C c (CHead e (Flat f) u)) \to (clear e c0)))) in (let TMP_14 \def 
-(\lambda (b: B).(\lambda (e0: C).(\lambda (u0: T).(\lambda (H1: (eq C (CHead 
-e0 (Bind b) u0) (CHead e (Flat f) u))).(let TMP_6 \def (Bind b) in (let TMP_7 
-\def (CHead e0 TMP_6 u0) in (let TMP_8 \def (\lambda (ee: C).(match ee with 
-[(CSort _) \Rightarrow False | (CHead _ k _) \Rightarrow (match k with [(Bind 
-_) \Rightarrow True | (Flat _) \Rightarrow False])])) in (let TMP_9 \def 
-(Flat f) in (let TMP_10 \def (CHead e TMP_9 u) in (let H2 \def (eq_ind C 
-TMP_7 TMP_8 I TMP_10 H1) in (let TMP_11 \def (Bind b) in (let TMP_12 \def 
-(CHead e0 TMP_11 u0) in (let TMP_13 \def (clear e TMP_12) in (False_ind 
-TMP_13 H2)))))))))))))) in (let TMP_34 \def (\lambda (e0: C).(\lambda (c: 
-C).(\lambda (H1: (clear e0 c)).(\lambda (H2: (((eq C e0 (CHead e (Flat f) u)) 
-\to (clear e c)))).(\lambda (f0: F).(\lambda (u0: T).(\lambda (H3: (eq C 
-(CHead e0 (Flat f0) u0) (CHead e (Flat f) u))).(let TMP_15 \def (\lambda (e1: 
-C).(match e1 with [(CSort _) \Rightarrow e0 | (CHead c0 _ _) \Rightarrow 
-c0])) in (let TMP_16 \def (Flat f0) in (let TMP_17 \def (CHead e0 TMP_16 u0) 
-in (let TMP_18 \def (Flat f) in (let TMP_19 \def (CHead e TMP_18 u) in (let 
-H4 \def (f_equal C C TMP_15 TMP_17 TMP_19 H3) in (let TMP_20 \def (\lambda 
-(e1: C).(match e1 with [(CSort _) \Rightarrow f0 | (CHead _ k _) \Rightarrow 
-(match k with [(Bind _) \Rightarrow f0 | (Flat f1) \Rightarrow f1])])) in 
-(let TMP_21 \def (Flat f0) in (let TMP_22 \def (CHead e0 TMP_21 u0) in (let 
-TMP_23 \def (Flat f) in (let TMP_24 \def (CHead e TMP_23 u) in (let H5 \def 
-(f_equal C F TMP_20 TMP_22 TMP_24 H3) in (let TMP_25 \def (\lambda (e1: 
-C).(match e1 with [(CSort _) \Rightarrow u0 | (CHead _ _ t) \Rightarrow t])) 
-in (let TMP_26 \def (Flat f0) in (let TMP_27 \def (CHead e0 TMP_26 u0) in 
-(let TMP_28 \def (Flat f) in (let TMP_29 \def (CHead e TMP_28 u) in (let H6 
-\def (f_equal C T TMP_25 TMP_27 TMP_29 H3) in (let TMP_32 \def (\lambda (_: 
-(eq F f0 f)).(\lambda (H8: (eq C e0 e)).(let TMP_30 \def (\lambda (c0: 
-C).((eq C c0 (CHead e (Flat f) u)) \to (clear e c))) in (let H9 \def (eq_ind 
-C e0 TMP_30 H2 e H8) in (let TMP_31 \def (\lambda (c0: C).(clear c0 c)) in 
-(let H10 \def (eq_ind C e0 TMP_31 H1 e H8) in H10)))))) in (let TMP_33 \def 
-(TMP_32 H5) in (TMP_33 H4)))))))))))))))))))))))))))) in (clear_ind TMP_5 
-TMP_14 TMP_34 y x H0)))))) in (insert_eq C TMP_2 TMP_3 TMP_4 TMP_35 
-H)))))))))).
+(clear (CHead e (Flat f) u) x)).(insert_eq C (CHead e (Flat f) u) (\lambda 
+(c: C).(clear c x)) (\lambda (_: C).(clear e x)) (\lambda (y: C).(\lambda 
+(H0: (clear y x)).(clear_ind (\lambda (c: C).(\lambda (c0: C).((eq C c (CHead 
+e (Flat f) u)) \to (clear e c0)))) (\lambda (b: B).(\lambda (e0: C).(\lambda 
+(u0: T).(\lambda (H1: (eq C (CHead e0 (Bind b) u0) (CHead e (Flat f) 
+u))).(let H2 \def (eq_ind C (CHead e0 (Bind b) u0) (\lambda (ee: C).(match ee 
+with [(CSort _) \Rightarrow False | (CHead _ k _) \Rightarrow (match k with 
+[(Bind _) \Rightarrow True | (Flat _) \Rightarrow False])])) I (CHead e (Flat 
+f) u) H1) in (False_ind (clear e (CHead e0 (Bind b) u0)) H2)))))) (\lambda 
+(e0: C).(\lambda (c: C).(\lambda (H1: (clear e0 c)).(\lambda (H2: (((eq C e0 
+(CHead e (Flat f) u)) \to (clear e c)))).(\lambda (f0: F).(\lambda (u0: 
+T).(\lambda (H3: (eq C (CHead e0 (Flat f0) u0) (CHead e (Flat f) u))).(let H4 
+\def (f_equal C C (\lambda (e1: C).(match e1 with [(CSort _) \Rightarrow e0 | 
+(CHead c0 _ _) \Rightarrow c0])) (CHead e0 (Flat f0) u0) (CHead e (Flat f) u) 
+H3) in ((let H5 \def (f_equal C F (\lambda (e1: C).(match e1 with [(CSort _) 
+\Rightarrow f0 | (CHead _ k _) \Rightarrow (match k with [(Bind _) 
+\Rightarrow f0 | (Flat f1) \Rightarrow f1])])) (CHead e0 (Flat f0) u0) (CHead 
+e (Flat f) u) H3) in ((let H6 \def (f_equal C T (\lambda (e1: C).(match e1 
+with [(CSort _) \Rightarrow u0 | (CHead _ _ t) \Rightarrow t])) (CHead e0 
+(Flat f0) u0) (CHead e (Flat f) u) H3) in (\lambda (_: (eq F f0 f)).(\lambda 
+(H8: (eq C e0 e)).(let H9 \def (eq_ind C e0 (\lambda (c0: C).((eq C c0 (CHead 
+e (Flat f) u)) \to (clear e c))) H2 e H8) in (let H10 \def (eq_ind C e0 
+(\lambda (c0: C).(clear c0 c)) H1 e H8) in H10))))) H5)) H4))))))))) y x 
+H0))) H))))).
 
 theorem clear_gen_flat_r:
  \forall (f: F).(\forall (x: C).(\forall (e: C).(\forall (u: T).((clear x 
 (CHead e (Flat f) u)) \to (\forall (P: Prop).P)))))
 \def
  \lambda (f: F).(\lambda (x: C).(\lambda (e: C).(\lambda (u: T).(\lambda (H: 
-(clear x (CHead e (Flat f) u))).(\lambda (P: Prop).(let TMP_1 \def (Flat f) 
-in (let TMP_2 \def (CHead e TMP_1 u) in (let TMP_3 \def (\lambda (c: 
-C).(clear x c)) in (let TMP_4 \def (\lambda (_: C).P) in (let TMP_22 \def 
-(\lambda (y: C).(\lambda (H0: (clear x y)).(let TMP_5 \def (\lambda (_: 
-C).(\lambda (c0: C).((eq C c0 (CHead e (Flat f) u)) \to P))) in (let TMP_11 
-\def (\lambda (b: B).(\lambda (e0: C).(\lambda (u0: T).(\lambda (H1: (eq C 
-(CHead e0 (Bind b) u0) (CHead e (Flat f) u))).(let TMP_6 \def (Bind b) in 
-(let TMP_7 \def (CHead e0 TMP_6 u0) in (let TMP_8 \def (\lambda (ee: 
-C).(match ee with [(CSort _) \Rightarrow False | (CHead _ k _) \Rightarrow 
-(match k with [(Bind _) \Rightarrow True | (Flat _) \Rightarrow False])])) in 
-(let TMP_9 \def (Flat f) in (let TMP_10 \def (CHead e TMP_9 u) in (let H2 
-\def (eq_ind C TMP_7 TMP_8 I TMP_10 H1) in (False_ind P H2))))))))))) in (let 
-TMP_21 \def (\lambda (e0: C).(\lambda (c: C).(\lambda (H1: (clear e0 
-c)).(\lambda (H2: (((eq C c (CHead e (Flat f) u)) \to P))).(\lambda (_: 
-F).(\lambda (_: T).(\lambda (H3: (eq C c (CHead e (Flat f) u))).(let TMP_12 
-\def (\lambda (c0: C).((eq C c0 (CHead e (Flat f) u)) \to P)) in (let TMP_13 
-\def (Flat f) in (let TMP_14 \def (CHead e TMP_13 u) in (let H4 \def (eq_ind 
-C c TMP_12 H2 TMP_14 H3) in (let TMP_15 \def (\lambda (c0: C).(clear e0 c0)) 
-in (let TMP_16 \def (Flat f) in (let TMP_17 \def (CHead e TMP_16 u) in (let 
-H5 \def (eq_ind C c TMP_15 H1 TMP_17 H3) in (let TMP_18 \def (Flat f) in (let 
-TMP_19 \def (CHead e TMP_18 u) in (let TMP_20 \def (refl_equal C TMP_19) in 
-(H4 TMP_20))))))))))))))))))) in (clear_ind TMP_5 TMP_11 TMP_21 x y H0)))))) 
-in (insert_eq C TMP_2 TMP_3 TMP_4 TMP_22 H))))))))))).
+(clear x (CHead e (Flat f) u))).(\lambda (P: Prop).(insert_eq C (CHead e 
+(Flat f) u) (\lambda (c: C).(clear x c)) (\lambda (_: C).P) (\lambda (y: 
+C).(\lambda (H0: (clear x y)).(clear_ind (\lambda (_: C).(\lambda (c0: 
+C).((eq C c0 (CHead e (Flat f) u)) \to P))) (\lambda (b: B).(\lambda (e0: 
+C).(\lambda (u0: T).(\lambda (H1: (eq C (CHead e0 (Bind b) u0) (CHead e (Flat 
+f) u))).(let H2 \def (eq_ind C (CHead e0 (Bind b) u0) (\lambda (ee: C).(match 
+ee with [(CSort _) \Rightarrow False | (CHead _ k _) \Rightarrow (match k 
+with [(Bind _) \Rightarrow True | (Flat _) \Rightarrow False])])) I (CHead e 
+(Flat f) u) H1) in (False_ind P H2)))))) (\lambda (e0: C).(\lambda (c: 
+C).(\lambda (H1: (clear e0 c)).(\lambda (H2: (((eq C c (CHead e (Flat f) u)) 
+\to P))).(\lambda (_: F).(\lambda (_: T).(\lambda (H3: (eq C c (CHead e (Flat 
+f) u))).(let H4 \def (eq_ind C c (\lambda (c0: C).((eq C c0 (CHead e (Flat f) 
+u)) \to P)) H2 (CHead e (Flat f) u) H3) in (let H5 \def (eq_ind C c (\lambda 
+(c0: C).(clear e0 c0)) H1 (CHead e (Flat f) u) H3) in (H4 (refl_equal C 
+(CHead e (Flat f) u)))))))))))) x y H0))) H)))))).
 
 theorem clear_gen_all:
  \forall (c1: C).(\forall (c2: C).((clear c1 c2) \to (ex_3 B C T (\lambda (b: 
 B).(\lambda (e: C).(\lambda (u: T).(eq C c2 (CHead e (Bind b) u))))))))
 \def
- \lambda (c1: C).(\lambda (c2: C).(\lambda (H: (clear c1 c2)).(let TMP_4 \def 
-(\lambda (_: C).(\lambda (c0: C).(let TMP_3 \def (\lambda (b: B).(\lambda (e: 
-C).(\lambda (u: T).(let TMP_1 \def (Bind b) in (let TMP_2 \def (CHead e TMP_1 
-u) in (eq C c0 TMP_2)))))) in (ex_3 B C T TMP_3)))) in (let TMP_13 \def 
-(\lambda (b: B).(\lambda (e: C).(\lambda (u: T).(let TMP_9 \def (\lambda (b0: 
-B).(\lambda (e0: C).(\lambda (u0: T).(let TMP_5 \def (Bind b) in (let TMP_6 
-\def (CHead e TMP_5 u) in (let TMP_7 \def (Bind b0) in (let TMP_8 \def (CHead 
-e0 TMP_7 u0) in (eq C TMP_6 TMP_8)))))))) in (let TMP_10 \def (Bind b) in 
-(let TMP_11 \def (CHead e TMP_10 u) in (let TMP_12 \def (refl_equal C TMP_11) 
-in (ex_3_intro B C T TMP_9 b e u TMP_12)))))))) in (let TMP_40 \def (\lambda 
-(e: C).(\lambda (c: C).(\lambda (H0: (clear e c)).(\lambda (H1: (ex_3 B C T 
+ \lambda (c1: C).(\lambda (c2: C).(\lambda (H: (clear c1 c2)).(clear_ind 
+(\lambda (_: C).(\lambda (c0: C).(ex_3 B C T (\lambda (b: B).(\lambda (e: 
+C).(\lambda (u: T).(eq C c0 (CHead e (Bind b) u)))))))) (\lambda (b: 
+B).(\lambda (e: C).(\lambda (u: T).(ex_3_intro B C T (\lambda (b0: 
+B).(\lambda (e0: C).(\lambda (u0: T).(eq C (CHead e (Bind b) u) (CHead e0 
+(Bind b0) u0))))) b e u (refl_equal C (CHead e (Bind b) u)))))) (\lambda (e: 
+C).(\lambda (c: C).(\lambda (H0: (clear e c)).(\lambda (H1: (ex_3 B C T 
 (\lambda (b: B).(\lambda (e0: C).(\lambda (u: T).(eq C c (CHead e0 (Bind b) 
-u))))))).(\lambda (_: F).(\lambda (_: T).(let H2 \def H1 in (let TMP_16 \def 
-(\lambda (b: B).(\lambda (e0: C).(\lambda (u0: T).(let TMP_14 \def (Bind b) 
-in (let TMP_15 \def (CHead e0 TMP_14 u0) in (eq C c TMP_15)))))) in (let 
-TMP_19 \def (\lambda (b: B).(\lambda (e0: C).(\lambda (u0: T).(let TMP_17 
-\def (Bind b) in (let TMP_18 \def (CHead e0 TMP_17 u0) in (eq C c 
-TMP_18)))))) in (let TMP_20 \def (ex_3 B C T TMP_19) in (let TMP_39 \def 
-(\lambda (x0: B).(\lambda (x1: C).(\lambda (x2: T).(\lambda (H3: (eq C c 
-(CHead x1 (Bind x0) x2))).(let TMP_21 \def (\lambda (c0: C).(clear e c0)) in 
-(let TMP_22 \def (Bind x0) in (let TMP_23 \def (CHead x1 TMP_22 x2) in (let 
-H4 \def (eq_ind C c TMP_21 H0 TMP_23 H3) in (let TMP_24 \def (Bind x0) in 
-(let TMP_25 \def (CHead x1 TMP_24 x2) in (let TMP_29 \def (\lambda (c0: 
-C).(let TMP_28 \def (\lambda (b: B).(\lambda (e0: C).(\lambda (u0: T).(let 
-TMP_26 \def (Bind b) in (let TMP_27 \def (CHead e0 TMP_26 u0) in (eq C c0 
-TMP_27)))))) in (ex_3 B C T TMP_28))) in (let TMP_34 \def (\lambda (b: 
-B).(\lambda (e0: C).(\lambda (u0: T).(let TMP_30 \def (Bind x0) in (let 
-TMP_31 \def (CHead x1 TMP_30 x2) in (let TMP_32 \def (Bind b) in (let TMP_33 
-\def (CHead e0 TMP_32 u0) in (eq C TMP_31 TMP_33)))))))) in (let TMP_35 \def 
-(Bind x0) in (let TMP_36 \def (CHead x1 TMP_35 x2) in (let TMP_37 \def 
-(refl_equal C TMP_36) in (let TMP_38 \def (ex_3_intro B C T TMP_34 x0 x1 x2 
-TMP_37) in (eq_ind_r C TMP_25 TMP_29 TMP_38 c H3))))))))))))))))) in 
-(ex_3_ind B C T TMP_16 TMP_20 TMP_39 H2)))))))))))) in (clear_ind TMP_4 
-TMP_13 TMP_40 c1 c2 H)))))).
+u))))))).(\lambda (_: F).(\lambda (_: T).(let H2 \def H1 in (ex_3_ind B C T 
+(\lambda (b: B).(\lambda (e0: C).(\lambda (u0: T).(eq C c (CHead e0 (Bind b) 
+u0))))) (ex_3 B C T (\lambda (b: B).(\lambda (e0: C).(\lambda (u0: T).(eq C c 
+(CHead e0 (Bind b) u0)))))) (\lambda (x0: B).(\lambda (x1: C).(\lambda (x2: 
+T).(\lambda (H3: (eq C c (CHead x1 (Bind x0) x2))).(let H4 \def (eq_ind C c 
+(\lambda (c0: C).(clear e c0)) H0 (CHead x1 (Bind x0) x2) H3) in (eq_ind_r C 
+(CHead x1 (Bind x0) x2) (\lambda (c0: C).(ex_3 B C T (\lambda (b: B).(\lambda 
+(e0: C).(\lambda (u0: T).(eq C c0 (CHead e0 (Bind b) u0))))))) (ex_3_intro B 
+C T (\lambda (b: B).(\lambda (e0: C).(\lambda (u0: T).(eq C (CHead x1 (Bind 
+x0) x2) (CHead e0 (Bind b) u0))))) x0 x1 x2 (refl_equal C (CHead x1 (Bind x0) 
+x2))) c H3)))))) H2)))))))) c1 c2 H))).
 
 theorem clear_mono:
  \forall (c: C).(\forall (c1: C).((clear c c1) \to (\forall (c2: C).((clear c 
 c2) \to (eq C c1 c2)))))
 \def
- \lambda (c: C).(let TMP_1 \def (\lambda (c0: C).(\forall (c1: C).((clear c0 
-c1) \to (\forall (c2: C).((clear c0 c2) \to (eq C c1 c2)))))) in (let TMP_3 
-\def (\lambda (n: nat).(\lambda (c1: C).(\lambda (_: (clear (CSort n) 
-c1)).(\lambda (c2: C).(\lambda (H0: (clear (CSort n) c2)).(let TMP_2 \def (eq 
-C c1 c2) in (clear_gen_sort c2 n H0 TMP_2))))))) in (let TMP_23 \def (\lambda 
-(c0: C).(\lambda (H: ((\forall (c1: C).((clear c0 c1) \to (\forall (c2: 
-C).((clear c0 c2) \to (eq C c1 c2))))))).(\lambda (k: K).(\lambda (t: 
-T).(\lambda (c1: C).(\lambda (H0: (clear (CHead c0 k t) c1)).(\lambda (c2: 
-C).(\lambda (H1: (clear (CHead c0 k t) c2)).(let TMP_4 \def (\lambda (k0: 
-K).((clear (CHead c0 k0 t) c1) \to ((clear (CHead c0 k0 t) c2) \to (eq C c1 
-c2)))) in (let TMP_19 \def (\lambda (b: B).(\lambda (H2: (clear (CHead c0 
-(Bind b) t) c1)).(\lambda (H3: (clear (CHead c0 (Bind b) t) c2)).(let TMP_5 
-\def (Bind b) in (let TMP_6 \def (CHead c0 TMP_5 t) in (let TMP_7 \def 
-(\lambda (c3: C).(eq C c1 c3)) in (let TMP_8 \def (Bind b) in (let TMP_9 \def 
-(CHead c0 TMP_8 t) in (let TMP_12 \def (\lambda (c3: C).(let TMP_10 \def 
-(Bind b) in (let TMP_11 \def (CHead c0 TMP_10 t) in (eq C c3 TMP_11)))) in 
-(let TMP_13 \def (Bind b) in (let TMP_14 \def (CHead c0 TMP_13 t) in (let 
-TMP_15 \def (refl_equal C TMP_14) in (let TMP_16 \def (clear_gen_bind b c0 c1 
-t H2) in (let TMP_17 \def (eq_ind_r C TMP_9 TMP_12 TMP_15 c1 TMP_16) in (let 
-TMP_18 \def (clear_gen_bind b c0 c2 t H3) in (eq_ind_r C TMP_6 TMP_7 TMP_17 
-c2 TMP_18)))))))))))))))) in (let TMP_22 \def (\lambda (f: F).(\lambda (H2: 
-(clear (CHead c0 (Flat f) t) c1)).(\lambda (H3: (clear (CHead c0 (Flat f) t) 
-c2)).(let TMP_20 \def (clear_gen_flat f c0 c1 t H2) in (let TMP_21 \def 
-(clear_gen_flat f c0 c2 t H3) in (H c1 TMP_20 c2 TMP_21)))))) in (K_ind TMP_4 
-TMP_19 TMP_22 k H0 H1)))))))))))) in (C_ind TMP_1 TMP_3 TMP_23 c)))).
+ \lambda (c: C).(C_ind (\lambda (c0: C).(\forall (c1: C).((clear c0 c1) \to 
+(\forall (c2: C).((clear c0 c2) \to (eq C c1 c2)))))) (\lambda (n: 
+nat).(\lambda (c1: C).(\lambda (_: (clear (CSort n) c1)).(\lambda (c2: 
+C).(\lambda (H0: (clear (CSort n) c2)).(clear_gen_sort c2 n H0 (eq C c1 
+c2))))))) (\lambda (c0: C).(\lambda (H: ((\forall (c1: C).((clear c0 c1) \to 
+(\forall (c2: C).((clear c0 c2) \to (eq C c1 c2))))))).(\lambda (k: 
+K).(\lambda (t: T).(\lambda (c1: C).(\lambda (H0: (clear (CHead c0 k t) 
+c1)).(\lambda (c2: C).(\lambda (H1: (clear (CHead c0 k t) c2)).(K_ind 
+(\lambda (k0: K).((clear (CHead c0 k0 t) c1) \to ((clear (CHead c0 k0 t) c2) 
+\to (eq C c1 c2)))) (\lambda (b: B).(\lambda (H2: (clear (CHead c0 (Bind b) 
+t) c1)).(\lambda (H3: (clear (CHead c0 (Bind b) t) c2)).(eq_ind_r C (CHead c0 
+(Bind b) t) (\lambda (c3: C).(eq C c1 c3)) (eq_ind_r C (CHead c0 (Bind b) t) 
+(\lambda (c3: C).(eq C c3 (CHead c0 (Bind b) t))) (refl_equal C (CHead c0 
+(Bind b) t)) c1 (clear_gen_bind b c0 c1 t H2)) c2 (clear_gen_bind b c0 c2 t 
+H3))))) (\lambda (f: F).(\lambda (H2: (clear (CHead c0 (Flat f) t) 
+c1)).(\lambda (H3: (clear (CHead c0 (Flat f) t) c2)).(H c1 (clear_gen_flat f 
+c0 c1 t H2) c2 (clear_gen_flat f c0 c2 t H3))))) k H0 H1))))))))) c).
 
 theorem clear_cle:
  \forall (c1: C).(\forall (c2: C).((clear c1 c2) \to (cle c2 c1)))
 \def
- \lambda (c1: C).(let TMP_3 \def (\lambda (c: C).(\forall (c2: C).((clear c 
-c2) \to (let TMP_1 \def (cweight c2) in (let TMP_2 \def (cweight c) in (le 
-TMP_1 TMP_2)))))) in (let TMP_6 \def (\lambda (n: nat).(\lambda (c2: 
-C).(\lambda (H: (clear (CSort n) c2)).(let TMP_4 \def (cweight c2) in (let 
-TMP_5 \def (le TMP_4 O) in (clear_gen_sort c2 n H TMP_5)))))) in (let TMP_31 
-\def (\lambda (c: C).(\lambda (H: ((\forall (c2: C).((clear c c2) \to (le 
-(cweight c2) (cweight c)))))).(\lambda (k: K).(\lambda (t: T).(\lambda (c2: 
-C).(\lambda (H0: (clear (CHead c k t) c2)).(let TMP_11 \def (\lambda (k0: 
-K).((clear (CHead c k0 t) c2) \to (let TMP_7 \def (cweight c2) in (let TMP_8 
-\def (cweight c) in (let TMP_9 \def (tweight t) in (let TMP_10 \def (plus 
-TMP_8 TMP_9) in (le TMP_7 TMP_10))))))) in (let TMP_24 \def (\lambda (b: 
-B).(\lambda (H1: (clear (CHead c (Bind b) t) c2)).(let TMP_12 \def (Bind b) 
-in (let TMP_13 \def (CHead c TMP_12 t) in (let TMP_18 \def (\lambda (c0: 
-C).(let TMP_14 \def (cweight c0) in (let TMP_15 \def (cweight c) in (let 
-TMP_16 \def (tweight t) in (let TMP_17 \def (plus TMP_15 TMP_16) in (le 
-TMP_14 TMP_17)))))) in (let TMP_19 \def (cweight c) in (let TMP_20 \def 
-(tweight t) in (let TMP_21 \def (plus TMP_19 TMP_20) in (let TMP_22 \def 
-(le_n TMP_21) in (let TMP_23 \def (clear_gen_bind b c c2 t H1) in (eq_ind_r C 
-TMP_13 TMP_18 TMP_22 c2 TMP_23))))))))))) in (let TMP_30 \def (\lambda (f: 
-F).(\lambda (H1: (clear (CHead c (Flat f) t) c2)).(let TMP_25 \def (cweight 
-c2) in (let TMP_26 \def (cweight c) in (let TMP_27 \def (tweight t) in (let 
-TMP_28 \def (clear_gen_flat f c c2 t H1) in (let TMP_29 \def (H c2 TMP_28) in 
-(le_plus_trans TMP_25 TMP_26 TMP_27 TMP_29)))))))) in (K_ind TMP_11 TMP_24 
-TMP_30 k H0)))))))))) in (C_ind TMP_3 TMP_6 TMP_31 c1)))).
+ \lambda (c1: C).(C_ind (\lambda (c: C).(\forall (c2: C).((clear c c2) \to 
+(le (cweight c2) (cweight c))))) (\lambda (n: nat).(\lambda (c2: C).(\lambda 
+(H: (clear (CSort n) c2)).(clear_gen_sort c2 n H (le (cweight c2) O))))) 
+(\lambda (c: C).(\lambda (H: ((\forall (c2: C).((clear c c2) \to (le (cweight 
+c2) (cweight c)))))).(\lambda (k: K).(\lambda (t: T).(\lambda (c2: 
+C).(\lambda (H0: (clear (CHead c k t) c2)).(K_ind (\lambda (k0: K).((clear 
+(CHead c k0 t) c2) \to (le (cweight c2) (plus (cweight c) (tweight t))))) 
+(\lambda (b: B).(\lambda (H1: (clear (CHead c (Bind b) t) c2)).(eq_ind_r C 
+(CHead c (Bind b) t) (\lambda (c0: C).(le (cweight c0) (plus (cweight c) 
+(tweight t)))) (le_n (plus (cweight c) (tweight t))) c2 (clear_gen_bind b c 
+c2 t H1)))) (\lambda (f: F).(\lambda (H1: (clear (CHead c (Flat f) t) 
+c2)).(le_plus_trans (cweight c2) (cweight c) (tweight t) (H c2 
+(clear_gen_flat f c c2 t H1))))) k H0))))))) c1).
 
index 70f732a643d0584289df9a367f95322528f23a25..1efc0ba5f20ed432ddd0c74a2a6eb03ab2e7a1a3 100644 (file)
@@ -19,128 +19,78 @@ include "basic_1/clear/fwd.ma".
 theorem clear_clear:
  \forall (c1: C).(\forall (c2: C).((clear c1 c2) \to (clear c2 c2)))
 \def
- \lambda (c1: C).(let TMP_1 \def (\lambda (c: C).(\forall (c2: C).((clear c 
-c2) \to (clear c2 c2)))) in (let TMP_3 \def (\lambda (n: nat).(\lambda (c2: 
-C).(\lambda (H: (clear (CSort n) c2)).(let TMP_2 \def (clear c2 c2) in 
-(clear_gen_sort c2 n H TMP_2))))) in (let TMP_13 \def (\lambda (c: 
+ \lambda (c1: C).(C_ind (\lambda (c: C).(\forall (c2: C).((clear c c2) \to 
+(clear c2 c2)))) (\lambda (n: nat).(\lambda (c2: C).(\lambda (H: (clear 
+(CSort n) c2)).(clear_gen_sort c2 n H (clear c2 c2))))) (\lambda (c: 
 C).(\lambda (H: ((\forall (c2: C).((clear c c2) \to (clear c2 
 c2))))).(\lambda (k: K).(\lambda (t: T).(\lambda (c2: C).(\lambda (H0: (clear 
-(CHead c k t) c2)).(let TMP_4 \def (\lambda (k0: K).((clear (CHead c k0 t) 
-c2) \to (clear c2 c2))) in (let TMP_10 \def (\lambda (b: B).(\lambda (H1: 
-(clear (CHead c (Bind b) t) c2)).(let TMP_5 \def (Bind b) in (let TMP_6 \def 
-(CHead c TMP_5 t) in (let TMP_7 \def (\lambda (c0: C).(clear c0 c0)) in (let 
-TMP_8 \def (clear_bind b c t) in (let TMP_9 \def (clear_gen_bind b c c2 t H1) 
-in (eq_ind_r C TMP_6 TMP_7 TMP_8 c2 TMP_9)))))))) in (let TMP_12 \def 
-(\lambda (f: F).(\lambda (H1: (clear (CHead c (Flat f) t) c2)).(let TMP_11 
-\def (clear_gen_flat f c c2 t H1) in (H c2 TMP_11)))) in (K_ind TMP_4 TMP_10 
-TMP_12 k H0)))))))))) in (C_ind TMP_1 TMP_3 TMP_13 c1)))).
+(CHead c k t) c2)).(K_ind (\lambda (k0: K).((clear (CHead c k0 t) c2) \to 
+(clear c2 c2))) (\lambda (b: B).(\lambda (H1: (clear (CHead c (Bind b) t) 
+c2)).(eq_ind_r C (CHead c (Bind b) t) (\lambda (c0: C).(clear c0 c0)) 
+(clear_bind b c t) c2 (clear_gen_bind b c c2 t H1)))) (\lambda (f: 
+F).(\lambda (H1: (clear (CHead c (Flat f) t) c2)).(H c2 (clear_gen_flat f c 
+c2 t H1)))) k H0))))))) c1).
 
 theorem clear_trans:
  \forall (c1: C).(\forall (c: C).((clear c1 c) \to (\forall (c2: C).((clear c 
 c2) \to (clear c1 c2)))))
 \def
- \lambda (c1: C).(let TMP_1 \def (\lambda (c: C).(\forall (c0: C).((clear c 
-c0) \to (\forall (c2: C).((clear c0 c2) \to (clear c c2)))))) in (let TMP_4 
-\def (\lambda (n: nat).(\lambda (c: C).(\lambda (H: (clear (CSort n) 
-c)).(\lambda (c2: C).(\lambda (_: (clear c c2)).(let TMP_2 \def (CSort n) in 
-(let TMP_3 \def (clear TMP_2 c2) in (clear_gen_sort c n H TMP_3)))))))) in 
-(let TMP_22 \def (\lambda (c: C).(\lambda (H: ((\forall (c0: C).((clear c c0) 
-\to (\forall (c2: C).((clear c0 c2) \to (clear c c2))))))).(\lambda (k: 
+ \lambda (c1: C).(C_ind (\lambda (c: C).(\forall (c0: C).((clear c c0) \to 
+(\forall (c2: C).((clear c0 c2) \to (clear c c2)))))) (\lambda (n: 
+nat).(\lambda (c: C).(\lambda (H: (clear (CSort n) c)).(\lambda (c2: 
+C).(\lambda (_: (clear c c2)).(clear_gen_sort c n H (clear (CSort n) 
+c2))))))) (\lambda (c: C).(\lambda (H: ((\forall (c0: C).((clear c c0) \to 
+(\forall (c2: C).((clear c0 c2) \to (clear c c2))))))).(\lambda (k: 
 K).(\lambda (t: T).(\lambda (c0: C).(\lambda (H0: (clear (CHead c k t) 
-c0)).(\lambda (c2: C).(\lambda (H1: (clear c0 c2)).(let TMP_6 \def (\lambda 
-(k0: K).((clear (CHead c k0 t) c0) \to (let TMP_5 \def (CHead c k0 t) in 
-(clear TMP_5 c2)))) in (let TMP_18 \def (\lambda (b: B).(\lambda (H2: (clear 
-(CHead c (Bind b) t) c0)).(let TMP_7 \def (\lambda (c3: C).(clear c3 c2)) in 
-(let TMP_8 \def (Bind b) in (let TMP_9 \def (CHead c TMP_8 t) in (let TMP_10 
-\def (clear_gen_bind b c c0 t H2) in (let H3 \def (eq_ind C c0 TMP_7 H1 TMP_9 
-TMP_10) in (let TMP_11 \def (Bind b) in (let TMP_12 \def (CHead c TMP_11 t) 
-in (let TMP_15 \def (\lambda (c3: C).(let TMP_13 \def (Bind b) in (let TMP_14 
-\def (CHead c TMP_13 t) in (clear TMP_14 c3)))) in (let TMP_16 \def 
-(clear_bind b c t) in (let TMP_17 \def (clear_gen_bind b c c2 t H3) in 
-(eq_ind_r C TMP_12 TMP_15 TMP_16 c2 TMP_17))))))))))))) in (let TMP_21 \def 
-(\lambda (f: F).(\lambda (H2: (clear (CHead c (Flat f) t) c0)).(let TMP_19 
-\def (clear_gen_flat f c c0 t H2) in (let TMP_20 \def (H c0 TMP_19 c2 H1) in 
-(clear_flat c c2 TMP_20 f t))))) in (K_ind TMP_6 TMP_18 TMP_21 k 
-H0)))))))))))) in (C_ind TMP_1 TMP_4 TMP_22 c1)))).
+c0)).(\lambda (c2: C).(\lambda (H1: (clear c0 c2)).(K_ind (\lambda (k0: 
+K).((clear (CHead c k0 t) c0) \to (clear (CHead c k0 t) c2))) (\lambda (b: 
+B).(\lambda (H2: (clear (CHead c (Bind b) t) c0)).(let H3 \def (eq_ind C c0 
+(\lambda (c3: C).(clear c3 c2)) H1 (CHead c (Bind b) t) (clear_gen_bind b c 
+c0 t H2)) in (eq_ind_r C (CHead c (Bind b) t) (\lambda (c3: C).(clear (CHead 
+c (Bind b) t) c3)) (clear_bind b c t) c2 (clear_gen_bind b c c2 t H3))))) 
+(\lambda (f: F).(\lambda (H2: (clear (CHead c (Flat f) t) c0)).(clear_flat c 
+c2 (H c0 (clear_gen_flat f c c0 t H2) c2 H1) f t))) k H0))))))))) c1).
 
 theorem clear_ctail:
  \forall (b: B).(\forall (c1: C).(\forall (c2: C).(\forall (u2: T).((clear c1 
 (CHead c2 (Bind b) u2)) \to (\forall (k: K).(\forall (u1: T).(clear (CTail k 
 u1 c1) (CHead (CTail k u1 c2) (Bind b) u2))))))))
 \def
- \lambda (b: B).(\lambda (c1: C).(let TMP_5 \def (\lambda (c: C).(\forall 
-(c2: C).(\forall (u2: T).((clear c (CHead c2 (Bind b) u2)) \to (\forall (k: 
-K).(\forall (u1: T).(let TMP_1 \def (CTail k u1 c) in (let TMP_2 \def (CTail 
-k u1 c2) in (let TMP_3 \def (Bind b) in (let TMP_4 \def (CHead TMP_2 TMP_3 
-u2) in (clear TMP_1 TMP_4))))))))))) in (let TMP_34 \def (\lambda (n: 
-nat).(\lambda (c2: C).(\lambda (u2: T).(\lambda (H: (clear (CSort n) (CHead 
-c2 (Bind b) u2))).(\lambda (k: K).(\lambda (u1: T).(let TMP_11 \def (\lambda 
-(k0: K).(let TMP_6 \def (CSort n) in (let TMP_7 \def (CHead TMP_6 k0 u1) in 
-(let TMP_8 \def (CTail k0 u1 c2) in (let TMP_9 \def (Bind b) in (let TMP_10 
-\def (CHead TMP_8 TMP_9 u2) in (clear TMP_7 TMP_10))))))) in (let TMP_22 \def 
-(\lambda (b0: B).(let TMP_12 \def (Bind b) in (let TMP_13 \def (CHead c2 
-TMP_12 u2) in (let TMP_14 \def (CSort n) in (let TMP_15 \def (Bind b0) in 
-(let TMP_16 \def (CHead TMP_14 TMP_15 u1) in (let TMP_17 \def (Bind b0) in 
-(let TMP_18 \def (CTail TMP_17 u1 c2) in (let TMP_19 \def (Bind b) in (let 
-TMP_20 \def (CHead TMP_18 TMP_19 u2) in (let TMP_21 \def (clear TMP_16 
-TMP_20) in (clear_gen_sort TMP_13 n H TMP_21)))))))))))) in (let TMP_33 \def 
-(\lambda (f: F).(let TMP_23 \def (Bind b) in (let TMP_24 \def (CHead c2 
-TMP_23 u2) in (let TMP_25 \def (CSort n) in (let TMP_26 \def (Flat f) in (let 
-TMP_27 \def (CHead TMP_25 TMP_26 u1) in (let TMP_28 \def (Flat f) in (let 
-TMP_29 \def (CTail TMP_28 u1 c2) in (let TMP_30 \def (Bind b) in (let TMP_31 
-\def (CHead TMP_29 TMP_30 u2) in (let TMP_32 \def (clear TMP_27 TMP_31) in 
-(clear_gen_sort TMP_24 n H TMP_32)))))))))))) in (K_ind TMP_11 TMP_22 TMP_33 
-k)))))))))) in (let TMP_102 \def (\lambda (c: C).(\lambda (H: ((\forall (c2: 
+ \lambda (b: B).(\lambda (c1: C).(C_ind (\lambda (c: C).(\forall (c2: 
 C).(\forall (u2: T).((clear c (CHead c2 (Bind b) u2)) \to (\forall (k: 
 K).(\forall (u1: T).(clear (CTail k u1 c) (CHead (CTail k u1 c2) (Bind b) 
-u2))))))))).(\lambda (k: K).(\lambda (t: T).(\lambda (c2: C).(\lambda (u2: 
-T).(\lambda (H0: (clear (CHead c k t) (CHead c2 (Bind b) u2))).(\lambda (k0: 
-K).(\lambda (u1: T).(let TMP_40 \def (\lambda (k1: K).((clear (CHead c k1 t) 
-(CHead c2 (Bind b) u2)) \to (let TMP_35 \def (CTail k0 u1 c) in (let TMP_36 
-\def (CHead TMP_35 k1 t) in (let TMP_37 \def (CTail k0 u1 c2) in (let TMP_38 
-\def (Bind b) in (let TMP_39 \def (CHead TMP_37 TMP_38 u2) in (clear TMP_36 
-TMP_39)))))))) in (let TMP_92 \def (\lambda (b0: B).(\lambda (H1: (clear 
-(CHead c (Bind b0) t) (CHead c2 (Bind b) u2))).(let TMP_41 \def (\lambda (e: 
-C).(match e with [(CSort _) \Rightarrow c2 | (CHead c0 _ _) \Rightarrow c0])) 
-in (let TMP_42 \def (Bind b) in (let TMP_43 \def (CHead c2 TMP_42 u2) in (let 
-TMP_44 \def (Bind b0) in (let TMP_45 \def (CHead c TMP_44 t) in (let TMP_46 
-\def (Bind b) in (let TMP_47 \def (CHead c2 TMP_46 u2) in (let TMP_48 \def 
-(clear_gen_bind b0 c TMP_47 t H1) in (let H2 \def (f_equal C C TMP_41 TMP_43 
-TMP_45 TMP_48) in (let TMP_49 \def (\lambda (e: C).(match e with [(CSort _) 
+u2)))))))) (\lambda (n: nat).(\lambda (c2: C).(\lambda (u2: T).(\lambda (H: 
+(clear (CSort n) (CHead c2 (Bind b) u2))).(\lambda (k: K).(\lambda (u1: 
+T).(K_ind (\lambda (k0: K).(clear (CHead (CSort n) k0 u1) (CHead (CTail k0 u1 
+c2) (Bind b) u2))) (\lambda (b0: B).(clear_gen_sort (CHead c2 (Bind b) u2) n 
+H (clear (CHead (CSort n) (Bind b0) u1) (CHead (CTail (Bind b0) u1 c2) (Bind 
+b) u2)))) (\lambda (f: F).(clear_gen_sort (CHead c2 (Bind b) u2) n H (clear 
+(CHead (CSort n) (Flat f) u1) (CHead (CTail (Flat f) u1 c2) (Bind b) u2)))) 
+k))))))) (\lambda (c: C).(\lambda (H: ((\forall (c2: C).(\forall (u2: 
+T).((clear c (CHead c2 (Bind b) u2)) \to (\forall (k: K).(\forall (u1: 
+T).(clear (CTail k u1 c) (CHead (CTail k u1 c2) (Bind b) u2))))))))).(\lambda 
+(k: K).(\lambda (t: T).(\lambda (c2: C).(\lambda (u2: T).(\lambda (H0: (clear 
+(CHead c k t) (CHead c2 (Bind b) u2))).(\lambda (k0: K).(\lambda (u1: 
+T).(K_ind (\lambda (k1: K).((clear (CHead c k1 t) (CHead c2 (Bind b) u2)) \to 
+(clear (CHead (CTail k0 u1 c) k1 t) (CHead (CTail k0 u1 c2) (Bind b) u2)))) 
+(\lambda (b0: B).(\lambda (H1: (clear (CHead c (Bind b0) t) (CHead c2 (Bind 
+b) u2))).(let H2 \def (f_equal C C (\lambda (e: C).(match e with [(CSort _) 
+\Rightarrow c2 | (CHead c0 _ _) \Rightarrow c0])) (CHead c2 (Bind b) u2) 
+(CHead c (Bind b0) t) (clear_gen_bind b0 c (CHead c2 (Bind b) u2) t H1)) in 
+((let H3 \def (f_equal C B (\lambda (e: C).(match e with [(CSort _) 
 \Rightarrow b | (CHead _ k1 _) \Rightarrow (match k1 with [(Bind b1) 
-\Rightarrow b1 | (Flat _) \Rightarrow b])])) in (let TMP_50 \def (Bind b) in 
-(let TMP_51 \def (CHead c2 TMP_50 u2) in (let TMP_52 \def (Bind b0) in (let 
-TMP_53 \def (CHead c TMP_52 t) in (let TMP_54 \def (Bind b) in (let TMP_55 
-\def (CHead c2 TMP_54 u2) in (let TMP_56 \def (clear_gen_bind b0 c TMP_55 t 
-H1) in (let H3 \def (f_equal C B TMP_49 TMP_51 TMP_53 TMP_56) in (let TMP_57 
-\def (\lambda (e: C).(match e with [(CSort _) \Rightarrow u2 | (CHead _ _ t0) 
-\Rightarrow t0])) in (let TMP_58 \def (Bind b) in (let TMP_59 \def (CHead c2 
-TMP_58 u2) in (let TMP_60 \def (Bind b0) in (let TMP_61 \def (CHead c TMP_60 
-t) in (let TMP_62 \def (Bind b) in (let TMP_63 \def (CHead c2 TMP_62 u2) in 
-(let TMP_64 \def (clear_gen_bind b0 c TMP_63 t H1) in (let H4 \def (f_equal C 
-T TMP_57 TMP_59 TMP_61 TMP_64) in (let TMP_90 \def (\lambda (H5: (eq B b 
-b0)).(\lambda (H6: (eq C c2 c)).(let TMP_71 \def (\lambda (t0: T).(let TMP_65 
-\def (CTail k0 u1 c) in (let TMP_66 \def (Bind b0) in (let TMP_67 \def (CHead 
-TMP_65 TMP_66 t) in (let TMP_68 \def (CTail k0 u1 c2) in (let TMP_69 \def 
-(Bind b) in (let TMP_70 \def (CHead TMP_68 TMP_69 t0) in (clear TMP_67 
-TMP_70)))))))) in (let TMP_78 \def (\lambda (c0: C).(let TMP_72 \def (CTail 
-k0 u1 c) in (let TMP_73 \def (Bind b0) in (let TMP_74 \def (CHead TMP_72 
-TMP_73 t) in (let TMP_75 \def (CTail k0 u1 c0) in (let TMP_76 \def (Bind b) 
-in (let TMP_77 \def (CHead TMP_75 TMP_76 t) in (clear TMP_74 TMP_77)))))))) 
-in (let TMP_85 \def (\lambda (b1: B).(let TMP_79 \def (CTail k0 u1 c) in (let 
-TMP_80 \def (Bind b1) in (let TMP_81 \def (CHead TMP_79 TMP_80 t) in (let 
-TMP_82 \def (CTail k0 u1 c) in (let TMP_83 \def (Bind b) in (let TMP_84 \def 
-(CHead TMP_82 TMP_83 t) in (clear TMP_81 TMP_84)))))))) in (let TMP_86 \def 
-(CTail k0 u1 c) in (let TMP_87 \def (clear_bind b TMP_86 t) in (let TMP_88 
-\def (eq_ind B b TMP_85 TMP_87 b0 H5) in (let TMP_89 \def (eq_ind_r C c 
-TMP_78 TMP_88 c2 H6) in (eq_ind_r T t TMP_71 TMP_89 u2 H4)))))))))) in (let 
-TMP_91 \def (TMP_90 H3) in (TMP_91 H2)))))))))))))))))))))))))))))))) in (let 
-TMP_101 \def (\lambda (f: F).(\lambda (H1: (clear (CHead c (Flat f) t) (CHead 
-c2 (Bind b) u2))).(let TMP_93 \def (CTail k0 u1 c) in (let TMP_94 \def (CTail 
-k0 u1 c2) in (let TMP_95 \def (Bind b) in (let TMP_96 \def (CHead TMP_94 
-TMP_95 u2) in (let TMP_97 \def (Bind b) in (let TMP_98 \def (CHead c2 TMP_97 
-u2) in (let TMP_99 \def (clear_gen_flat f c TMP_98 t H1) in (let TMP_100 \def 
-(H c2 u2 TMP_99 k0 u1) in (clear_flat TMP_93 TMP_96 TMP_100 f t))))))))))) in 
-(K_ind TMP_40 TMP_92 TMP_101 k H0))))))))))))) in (C_ind TMP_5 TMP_34 TMP_102 
-c1))))).
+\Rightarrow b1 | (Flat _) \Rightarrow b])])) (CHead c2 (Bind b) u2) (CHead c 
+(Bind b0) t) (clear_gen_bind b0 c (CHead c2 (Bind b) u2) t H1)) in ((let H4 
+\def (f_equal C T (\lambda (e: C).(match e with [(CSort _) \Rightarrow u2 | 
+(CHead _ _ t0) \Rightarrow t0])) (CHead c2 (Bind b) u2) (CHead c (Bind b0) t) 
+(clear_gen_bind b0 c (CHead c2 (Bind b) u2) t H1)) in (\lambda (H5: (eq B b 
+b0)).(\lambda (H6: (eq C c2 c)).(eq_ind_r T t (\lambda (t0: T).(clear (CHead 
+(CTail k0 u1 c) (Bind b0) t) (CHead (CTail k0 u1 c2) (Bind b) t0))) (eq_ind_r 
+C c (\lambda (c0: C).(clear (CHead (CTail k0 u1 c) (Bind b0) t) (CHead (CTail 
+k0 u1 c0) (Bind b) t))) (eq_ind B b (\lambda (b1: B).(clear (CHead (CTail k0 
+u1 c) (Bind b1) t) (CHead (CTail k0 u1 c) (Bind b) t))) (clear_bind b (CTail 
+k0 u1 c) t) b0 H5) c2 H6) u2 H4)))) H3)) H2)))) (\lambda (f: F).(\lambda (H1: 
+(clear (CHead c (Flat f) t) (CHead c2 (Bind b) u2))).(clear_flat (CTail k0 u1 
+c) (CHead (CTail k0 u1 c2) (Bind b) u2) (H c2 u2 (clear_gen_flat f c (CHead 
+c2 (Bind b) u2) t H1) k0 u1) f t))) k H0)))))))))) c1)).
 
index a70c3ef675ba6be06dd199d0c4638b85bb3b07a7..1230db5c84102763388f5668bda3edafd0883f70 100644 (file)
@@ -19,5 +19,5 @@ include "basic_1/C/defs.ma".
 include "basic_1/s/defs.ma".
 
 let rec clen (c: C) on c: nat \def match c with [(CSort _) \Rightarrow O | 
-(CHead c0 k _) \Rightarrow (let TMP_1 \def (clen c0) in (s k TMP_1))].
+(CHead c0 k _) \Rightarrow (s k (clen c0))].
 
index ac47a2a4486d9d9748bde2ae06001119a5e067f8..956a7b64e09802a6a69252eda8cfcff38c2aef72 100644 (file)
@@ -22,56 +22,25 @@ theorem getl_ctail_clen:
  \forall (b: B).(\forall (t: T).(\forall (c: C).(ex nat (\lambda (n: 
 nat).(getl (clen c) (CTail (Bind b) t c) (CHead (CSort n) (Bind b) t))))))
 \def
- \lambda (b: B).(\lambda (t: T).(\lambda (c: C).(let TMP_8 \def (\lambda (c0: 
-C).(let TMP_7 \def (\lambda (n: nat).(let TMP_1 \def (clen c0) in (let TMP_2 
-\def (Bind b) in (let TMP_3 \def (CTail TMP_2 t c0) in (let TMP_4 \def (CSort 
-n) in (let TMP_5 \def (Bind b) in (let TMP_6 \def (CHead TMP_4 TMP_5 t) in 
-(getl TMP_1 TMP_3 TMP_6)))))))) in (ex nat TMP_7))) in (let TMP_18 \def 
-(\lambda (n: nat).(let TMP_15 \def (\lambda (n0: nat).(let TMP_9 \def (CSort 
-n) in (let TMP_10 \def (Bind b) in (let TMP_11 \def (CHead TMP_9 TMP_10 t) in 
-(let TMP_12 \def (CSort n0) in (let TMP_13 \def (Bind b) in (let TMP_14 \def 
-(CHead TMP_12 TMP_13 t) in (getl O TMP_11 TMP_14)))))))) in (let TMP_16 \def 
-(CSort n) in (let TMP_17 \def (getl_refl b TMP_16 t) in (ex_intro nat TMP_15 
-n TMP_17))))) in (let TMP_83 \def (\lambda (c0: C).(\lambda (H: (ex nat 
-(\lambda (n: nat).(getl (clen c0) (CTail (Bind b) t c0) (CHead (CSort n) 
-(Bind b) t))))).(\lambda (k: K).(\lambda (t0: T).(let H0 \def H in (let 
-TMP_25 \def (\lambda (n: nat).(let TMP_19 \def (clen c0) in (let TMP_20 \def 
-(Bind b) in (let TMP_21 \def (CTail TMP_20 t c0) in (let TMP_22 \def (CSort 
-n) in (let TMP_23 \def (Bind b) in (let TMP_24 \def (CHead TMP_22 TMP_23 t) 
-in (getl TMP_19 TMP_21 TMP_24)))))))) in (let TMP_34 \def (\lambda (n: 
-nat).(let TMP_26 \def (clen c0) in (let TMP_27 \def (s k TMP_26) in (let 
-TMP_28 \def (Bind b) in (let TMP_29 \def (CTail TMP_28 t c0) in (let TMP_30 
-\def (CHead TMP_29 k t0) in (let TMP_31 \def (CSort n) in (let TMP_32 \def 
-(Bind b) in (let TMP_33 \def (CHead TMP_31 TMP_32 t) in (getl TMP_27 TMP_30 
-TMP_33)))))))))) in (let TMP_35 \def (ex nat TMP_34) in (let TMP_82 \def 
-(\lambda (x: nat).(\lambda (H1: (getl (clen c0) (CTail (Bind b) t c0) (CHead 
-(CSort x) (Bind b) t))).(let TMP_45 \def (\lambda (k0: K).(let TMP_44 \def 
-(\lambda (n: nat).(let TMP_36 \def (clen c0) in (let TMP_37 \def (s k0 
-TMP_36) in (let TMP_38 \def (Bind b) in (let TMP_39 \def (CTail TMP_38 t c0) 
-in (let TMP_40 \def (CHead TMP_39 k0 t0) in (let TMP_41 \def (CSort n) in 
-(let TMP_42 \def (Bind b) in (let TMP_43 \def (CHead TMP_41 TMP_42 t) in 
-(getl TMP_37 TMP_40 TMP_43)))))))))) in (ex nat TMP_44))) in (let TMP_64 \def 
-(\lambda (b0: B).(let TMP_55 \def (\lambda (n: nat).(let TMP_46 \def (clen 
-c0) in (let TMP_47 \def (S TMP_46) in (let TMP_48 \def (Bind b) in (let 
-TMP_49 \def (CTail TMP_48 t c0) in (let TMP_50 \def (Bind b0) in (let TMP_51 
-\def (CHead TMP_49 TMP_50 t0) in (let TMP_52 \def (CSort n) in (let TMP_53 
-\def (Bind b) in (let TMP_54 \def (CHead TMP_52 TMP_53 t) in (getl TMP_47 
-TMP_51 TMP_54))))))))))) in (let TMP_56 \def (Bind b0) in (let TMP_57 \def 
-(clen c0) in (let TMP_58 \def (Bind b) in (let TMP_59 \def (CTail TMP_58 t 
-c0) in (let TMP_60 \def (CSort x) in (let TMP_61 \def (Bind b) in (let TMP_62 
-\def (CHead TMP_60 TMP_61 t) in (let TMP_63 \def (getl_head TMP_56 TMP_57 
-TMP_59 TMP_62 H1 t0) in (ex_intro nat TMP_55 x TMP_63))))))))))) in (let 
-TMP_81 \def (\lambda (f: F).(let TMP_73 \def (\lambda (n: nat).(let TMP_65 
-\def (clen c0) in (let TMP_66 \def (Bind b) in (let TMP_67 \def (CTail TMP_66 
-t c0) in (let TMP_68 \def (Flat f) in (let TMP_69 \def (CHead TMP_67 TMP_68 
-t0) in (let TMP_70 \def (CSort n) in (let TMP_71 \def (Bind b) in (let TMP_72 
-\def (CHead TMP_70 TMP_71 t) in (getl TMP_65 TMP_69 TMP_72)))))))))) in (let 
-TMP_74 \def (Bind b) in (let TMP_75 \def (CTail TMP_74 t c0) in (let TMP_76 
-\def (CSort x) in (let TMP_77 \def (Bind b) in (let TMP_78 \def (CHead TMP_76 
-TMP_77 t) in (let TMP_79 \def (clen c0) in (let TMP_80 \def (getl_flat TMP_75 
-TMP_78 TMP_79 H1 f t0) in (ex_intro nat TMP_73 x TMP_80)))))))))) in (K_ind 
-TMP_45 TMP_64 TMP_81 k)))))) in (ex_ind nat TMP_25 TMP_35 TMP_82 H0)))))))))) 
-in (C_ind TMP_8 TMP_18 TMP_83 c)))))).
+ \lambda (b: B).(\lambda (t: T).(\lambda (c: C).(C_ind (\lambda (c0: C).(ex 
+nat (\lambda (n: nat).(getl (clen c0) (CTail (Bind b) t c0) (CHead (CSort n) 
+(Bind b) t))))) (\lambda (n: nat).(ex_intro nat (\lambda (n0: nat).(getl O 
+(CHead (CSort n) (Bind b) t) (CHead (CSort n0) (Bind b) t))) n (getl_refl b 
+(CSort n) t))) (\lambda (c0: C).(\lambda (H: (ex nat (\lambda (n: nat).(getl 
+(clen c0) (CTail (Bind b) t c0) (CHead (CSort n) (Bind b) t))))).(\lambda (k: 
+K).(\lambda (t0: T).(let H0 \def H in (ex_ind nat (\lambda (n: nat).(getl 
+(clen c0) (CTail (Bind b) t c0) (CHead (CSort n) (Bind b) t))) (ex nat 
+(\lambda (n: nat).(getl (s k (clen c0)) (CHead (CTail (Bind b) t c0) k t0) 
+(CHead (CSort n) (Bind b) t)))) (\lambda (x: nat).(\lambda (H1: (getl (clen 
+c0) (CTail (Bind b) t c0) (CHead (CSort x) (Bind b) t))).(K_ind (\lambda (k0: 
+K).(ex nat (\lambda (n: nat).(getl (s k0 (clen c0)) (CHead (CTail (Bind b) t 
+c0) k0 t0) (CHead (CSort n) (Bind b) t))))) (\lambda (b0: B).(ex_intro nat 
+(\lambda (n: nat).(getl (S (clen c0)) (CHead (CTail (Bind b) t c0) (Bind b0) 
+t0) (CHead (CSort n) (Bind b) t))) x (getl_head (Bind b0) (clen c0) (CTail 
+(Bind b) t c0) (CHead (CSort x) (Bind b) t) H1 t0))) (\lambda (f: 
+F).(ex_intro nat (\lambda (n: nat).(getl (clen c0) (CHead (CTail (Bind b) t 
+c0) (Flat f) t0) (CHead (CSort n) (Bind b) t))) x (getl_flat (CTail (Bind b) 
+t c0) (CHead (CSort x) (Bind b) t) (clen c0) H1 f t0))) k))) H0)))))) c))).
 
 theorem getl_gen_tail:
  \forall (k: K).(\forall (b: B).(\forall (u1: T).(\forall (u2: T).(\forall 
@@ -82,737 +51,301 @@ nat).(eq nat i (clen c1))) (\lambda (_: nat).(eq K k (Bind b))) (\lambda (_:
 nat).(eq T u1 u2)) (\lambda (n: nat).(eq C c2 (CSort n))))))))))))
 \def
  \lambda (k: K).(\lambda (b: B).(\lambda (u1: T).(\lambda (u2: T).(\lambda 
-(c2: C).(\lambda (c1: C).(let TMP_15 \def (\lambda (c: C).(\forall (i: 
-nat).((getl i (CTail k u1 c) (CHead c2 (Bind b) u2)) \to (let TMP_2 \def 
-(\lambda (e: C).(let TMP_1 \def (CTail k u1 e) in (eq C c2 TMP_1))) in (let 
-TMP_5 \def (\lambda (e: C).(let TMP_3 \def (Bind b) in (let TMP_4 \def (CHead 
-e TMP_3 u2) in (getl i c TMP_4)))) in (let TMP_6 \def (ex2 C TMP_2 TMP_5) in 
-(let TMP_8 \def (\lambda (_: nat).(let TMP_7 \def (clen c) in (eq nat i 
-TMP_7))) in (let TMP_10 \def (\lambda (_: nat).(let TMP_9 \def (Bind b) in 
-(eq K k TMP_9))) in (let TMP_11 \def (\lambda (_: nat).(eq T u1 u2)) in (let 
-TMP_13 \def (\lambda (n: nat).(let TMP_12 \def (CSort n) in (eq C c2 
-TMP_12))) in (let TMP_14 \def (ex4 nat TMP_8 TMP_10 TMP_11 TMP_13) in (or 
-TMP_6 TMP_14)))))))))))) in (let TMP_228 \def (\lambda (n: nat).(\lambda (i: 
-nat).(let TMP_32 \def (\lambda (n0: nat).((getl n0 (CTail k u1 (CSort n)) 
-(CHead c2 (Bind b) u2)) \to (let TMP_17 \def (\lambda (e: C).(let TMP_16 \def 
-(CTail k u1 e) in (eq C c2 TMP_16))) in (let TMP_21 \def (\lambda (e: C).(let 
-TMP_18 \def (CSort n) in (let TMP_19 \def (Bind b) in (let TMP_20 \def (CHead 
-e TMP_19 u2) in (getl n0 TMP_18 TMP_20))))) in (let TMP_22 \def (ex2 C TMP_17 
-TMP_21) in (let TMP_25 \def (\lambda (_: nat).(let TMP_23 \def (CSort n) in 
-(let TMP_24 \def (clen TMP_23) in (eq nat n0 TMP_24)))) in (let TMP_27 \def 
-(\lambda (_: nat).(let TMP_26 \def (Bind b) in (eq K k TMP_26))) in (let 
-TMP_28 \def (\lambda (_: nat).(eq T u1 u2)) in (let TMP_30 \def (\lambda (n1: 
-nat).(let TMP_29 \def (CSort n1) in (eq C c2 TMP_29))) in (let TMP_31 \def 
-(ex4 nat TMP_25 TMP_27 TMP_28 TMP_30) in (or TMP_22 TMP_31))))))))))) in (let 
-TMP_202 \def (\lambda (H: (getl O (CHead (CSort n) k u1) (CHead c2 (Bind b) 
-u2))).(let TMP_47 \def (\lambda (k0: K).((clear (CHead (CSort n) k0 u1) 
-(CHead c2 (Bind b) u2)) \to (let TMP_34 \def (\lambda (e: C).(let TMP_33 \def 
-(CTail k0 u1 e) in (eq C c2 TMP_33))) in (let TMP_38 \def (\lambda (e: 
-C).(let TMP_35 \def (CSort n) in (let TMP_36 \def (Bind b) in (let TMP_37 
-\def (CHead e TMP_36 u2) in (getl O TMP_35 TMP_37))))) in (let TMP_39 \def 
-(ex2 C TMP_34 TMP_38) in (let TMP_40 \def (\lambda (_: nat).(eq nat O O)) in 
-(let TMP_42 \def (\lambda (_: nat).(let TMP_41 \def (Bind b) in (eq K k0 
-TMP_41))) in (let TMP_43 \def (\lambda (_: nat).(eq T u1 u2)) in (let TMP_45 
-\def (\lambda (n0: nat).(let TMP_44 \def (CSort n0) in (eq C c2 TMP_44))) in 
-(let TMP_46 \def (ex4 nat TMP_40 TMP_42 TMP_43 TMP_45) in (or TMP_39 
-TMP_46))))))))))) in (let TMP_172 \def (\lambda (b0: B).(\lambda (H0: (clear 
-(CHead (CSort n) (Bind b0) u1) (CHead c2 (Bind b) u2))).(let TMP_48 \def 
+(c2: C).(\lambda (c1: C).(C_ind (\lambda (c: C).(\forall (i: nat).((getl i 
+(CTail k u1 c) (CHead c2 (Bind b) u2)) \to (or (ex2 C (\lambda (e: C).(eq C 
+c2 (CTail k u1 e))) (\lambda (e: C).(getl i c (CHead e (Bind b) u2)))) (ex4 
+nat (\lambda (_: nat).(eq nat i (clen c))) (\lambda (_: nat).(eq K k (Bind 
+b))) (\lambda (_: nat).(eq T u1 u2)) (\lambda (n: nat).(eq C c2 (CSort 
+n)))))))) (\lambda (n: nat).(\lambda (i: nat).(nat_ind (\lambda (n0: 
+nat).((getl n0 (CTail k u1 (CSort n)) (CHead c2 (Bind b) u2)) \to (or (ex2 C 
+(\lambda (e: C).(eq C c2 (CTail k u1 e))) (\lambda (e: C).(getl n0 (CSort n) 
+(CHead e (Bind b) u2)))) (ex4 nat (\lambda (_: nat).(eq nat n0 (clen (CSort 
+n)))) (\lambda (_: nat).(eq K k (Bind b))) (\lambda (_: nat).(eq T u1 u2)) 
+(\lambda (n1: nat).(eq C c2 (CSort n1))))))) (\lambda (H: (getl O (CHead 
+(CSort n) k u1) (CHead c2 (Bind b) u2))).(K_ind (\lambda (k0: K).((clear 
+(CHead (CSort n) k0 u1) (CHead c2 (Bind b) u2)) \to (or (ex2 C (\lambda (e: 
+C).(eq C c2 (CTail k0 u1 e))) (\lambda (e: C).(getl O (CSort n) (CHead e 
+(Bind b) u2)))) (ex4 nat (\lambda (_: nat).(eq nat O O)) (\lambda (_: 
+nat).(eq K k0 (Bind b))) (\lambda (_: nat).(eq T u1 u2)) (\lambda (n0: 
+nat).(eq C c2 (CSort n0))))))) (\lambda (b0: B).(\lambda (H0: (clear (CHead 
+(CSort n) (Bind b0) u1) (CHead c2 (Bind b) u2))).(let H1 \def (f_equal C C 
 (\lambda (e: C).(match e with [(CSort _) \Rightarrow c2 | (CHead c _ _) 
-\Rightarrow c])) in (let TMP_49 \def (Bind b) in (let TMP_50 \def (CHead c2 
-TMP_49 u2) in (let TMP_51 \def (CSort n) in (let TMP_52 \def (Bind b0) in 
-(let TMP_53 \def (CHead TMP_51 TMP_52 u1) in (let TMP_54 \def (CSort n) in 
-(let TMP_55 \def (Bind b) in (let TMP_56 \def (CHead c2 TMP_55 u2) in (let 
-TMP_57 \def (clear_gen_bind b0 TMP_54 TMP_56 u1 H0) in (let H1 \def (f_equal 
-C C TMP_48 TMP_50 TMP_53 TMP_57) in (let TMP_58 \def (\lambda (e: C).(match e 
-with [(CSort _) \Rightarrow b | (CHead _ k0 _) \Rightarrow (match k0 with 
-[(Bind b1) \Rightarrow b1 | (Flat _) \Rightarrow b])])) in (let TMP_59 \def 
-(Bind b) in (let TMP_60 \def (CHead c2 TMP_59 u2) in (let TMP_61 \def (CSort 
-n) in (let TMP_62 \def (Bind b0) in (let TMP_63 \def (CHead TMP_61 TMP_62 u1) 
-in (let TMP_64 \def (CSort n) in (let TMP_65 \def (Bind b) in (let TMP_66 
-\def (CHead c2 TMP_65 u2) in (let TMP_67 \def (clear_gen_bind b0 TMP_64 
-TMP_66 u1 H0) in (let H2 \def (f_equal C B TMP_58 TMP_60 TMP_63 TMP_67) in 
-(let TMP_68 \def (\lambda (e: C).(match e with [(CSort _) \Rightarrow u2 | 
-(CHead _ _ t) \Rightarrow t])) in (let TMP_69 \def (Bind b) in (let TMP_70 
-\def (CHead c2 TMP_69 u2) in (let TMP_71 \def (CSort n) in (let TMP_72 \def 
-(Bind b0) in (let TMP_73 \def (CHead TMP_71 TMP_72 u1) in (let TMP_74 \def 
-(CSort n) in (let TMP_75 \def (Bind b) in (let TMP_76 \def (CHead c2 TMP_75 
-u2) in (let TMP_77 \def (clear_gen_bind b0 TMP_74 TMP_76 u1 H0) in (let H3 
-\def (f_equal C T TMP_68 TMP_70 TMP_73 TMP_77) in (let TMP_170 \def (\lambda 
-(H4: (eq B b b0)).(\lambda (H5: (eq C c2 (CSort n))).(let TMP_78 \def (CSort 
-n) in (let TMP_95 \def (\lambda (c: C).(let TMP_81 \def (\lambda (e: C).(let 
-TMP_79 \def (Bind b0) in (let TMP_80 \def (CTail TMP_79 u1 e) in (eq C c 
-TMP_80)))) in (let TMP_85 \def (\lambda (e: C).(let TMP_82 \def (CSort n) in 
-(let TMP_83 \def (Bind b) in (let TMP_84 \def (CHead e TMP_83 u2) in (getl O 
-TMP_82 TMP_84))))) in (let TMP_86 \def (ex2 C TMP_81 TMP_85) in (let TMP_87 
-\def (\lambda (_: nat).(eq nat O O)) in (let TMP_90 \def (\lambda (_: 
-nat).(let TMP_88 \def (Bind b0) in (let TMP_89 \def (Bind b) in (eq K TMP_88 
-TMP_89)))) in (let TMP_91 \def (\lambda (_: nat).(eq T u1 u2)) in (let TMP_93 
-\def (\lambda (n0: nat).(let TMP_92 \def (CSort n0) in (eq C c TMP_92))) in 
-(let TMP_94 \def (ex4 nat TMP_87 TMP_90 TMP_91 TMP_93) in (or TMP_86 
-TMP_94)))))))))) in (let TMP_114 \def (\lambda (t: T).(let TMP_99 \def 
-(\lambda (e: C).(let TMP_96 \def (CSort n) in (let TMP_97 \def (Bind b0) in 
-(let TMP_98 \def (CTail TMP_97 u1 e) in (eq C TMP_96 TMP_98))))) in (let 
-TMP_103 \def (\lambda (e: C).(let TMP_100 \def (CSort n) in (let TMP_101 \def 
-(Bind b) in (let TMP_102 \def (CHead e TMP_101 t) in (getl O TMP_100 
-TMP_102))))) in (let TMP_104 \def (ex2 C TMP_99 TMP_103) in (let TMP_105 \def 
-(\lambda (_: nat).(eq nat O O)) in (let TMP_108 \def (\lambda (_: nat).(let 
-TMP_106 \def (Bind b0) in (let TMP_107 \def (Bind b) in (eq K TMP_106 
-TMP_107)))) in (let TMP_109 \def (\lambda (_: nat).(eq T u1 t)) in (let 
-TMP_112 \def (\lambda (n0: nat).(let TMP_110 \def (CSort n) in (let TMP_111 
-\def (CSort n0) in (eq C TMP_110 TMP_111)))) in (let TMP_113 \def (ex4 nat 
-TMP_105 TMP_108 TMP_109 TMP_112) in (or TMP_104 TMP_113)))))))))) in (let 
-TMP_133 \def (\lambda (b1: B).(let TMP_118 \def (\lambda (e: C).(let TMP_115 
-\def (CSort n) in (let TMP_116 \def (Bind b0) in (let TMP_117 \def (CTail 
-TMP_116 u1 e) in (eq C TMP_115 TMP_117))))) in (let TMP_122 \def (\lambda (e: 
-C).(let TMP_119 \def (CSort n) in (let TMP_120 \def (Bind b1) in (let TMP_121 
-\def (CHead e TMP_120 u1) in (getl O TMP_119 TMP_121))))) in (let TMP_123 
-\def (ex2 C TMP_118 TMP_122) in (let TMP_124 \def (\lambda (_: nat).(eq nat O 
-O)) in (let TMP_127 \def (\lambda (_: nat).(let TMP_125 \def (Bind b0) in 
-(let TMP_126 \def (Bind b1) in (eq K TMP_125 TMP_126)))) in (let TMP_128 \def 
-(\lambda (_: nat).(eq T u1 u1)) in (let TMP_131 \def (\lambda (n0: nat).(let 
-TMP_129 \def (CSort n) in (let TMP_130 \def (CSort n0) in (eq C TMP_129 
-TMP_130)))) in (let TMP_132 \def (ex4 nat TMP_124 TMP_127 TMP_128 TMP_131) in 
-(or TMP_123 TMP_132)))))))))) in (let TMP_137 \def (\lambda (e: C).(let 
-TMP_134 \def (CSort n) in (let TMP_135 \def (Bind b0) in (let TMP_136 \def 
-(CTail TMP_135 u1 e) in (eq C TMP_134 TMP_136))))) in (let TMP_141 \def 
-(\lambda (e: C).(let TMP_138 \def (CSort n) in (let TMP_139 \def (Bind b0) in 
-(let TMP_140 \def (CHead e TMP_139 u1) in (getl O TMP_138 TMP_140))))) in 
-(let TMP_142 \def (ex2 C TMP_137 TMP_141) in (let TMP_143 \def (\lambda (_: 
-nat).(eq nat O O)) in (let TMP_146 \def (\lambda (_: nat).(let TMP_144 \def 
-(Bind b0) in (let TMP_145 \def (Bind b0) in (eq K TMP_144 TMP_145)))) in (let 
-TMP_147 \def (\lambda (_: nat).(eq T u1 u1)) in (let TMP_150 \def (\lambda 
-(n0: nat).(let TMP_148 \def (CSort n) in (let TMP_149 \def (CSort n0) in (eq 
-C TMP_148 TMP_149)))) in (let TMP_151 \def (ex4 nat TMP_143 TMP_146 TMP_147 
-TMP_150) in (let TMP_152 \def (\lambda (_: nat).(eq nat O O)) in (let TMP_155 
-\def (\lambda (_: nat).(let TMP_153 \def (Bind b0) in (let TMP_154 \def (Bind 
-b0) in (eq K TMP_153 TMP_154)))) in (let TMP_156 \def (\lambda (_: nat).(eq T 
-u1 u1)) in (let TMP_159 \def (\lambda (n0: nat).(let TMP_157 \def (CSort n) 
-in (let TMP_158 \def (CSort n0) in (eq C TMP_157 TMP_158)))) in (let TMP_160 
-\def (refl_equal nat O) in (let TMP_161 \def (Bind b0) in (let TMP_162 \def 
-(refl_equal K TMP_161) in (let TMP_163 \def (refl_equal T u1) in (let TMP_164 
-\def (CSort n) in (let TMP_165 \def (refl_equal C TMP_164) in (let TMP_166 
-\def (ex4_intro nat TMP_152 TMP_155 TMP_156 TMP_159 n TMP_160 TMP_162 TMP_163 
-TMP_165) in (let TMP_167 \def (or_intror TMP_142 TMP_151 TMP_166) in (let 
-TMP_168 \def (eq_ind_r B b0 TMP_133 TMP_167 b H4) in (let TMP_169 \def 
-(eq_ind_r T u1 TMP_114 TMP_168 u2 H3) in (eq_ind_r C TMP_78 TMP_95 TMP_169 c2 
-H5))))))))))))))))))))))))))))) in (let TMP_171 \def (TMP_170 H2) in (TMP_171 
-H1)))))))))))))))))))))))))))))))))))))) in (let TMP_196 \def (\lambda (f: 
-F).(\lambda (H0: (clear (CHead (CSort n) (Flat f) u1) (CHead c2 (Bind b) 
-u2))).(let TMP_173 \def (Bind b) in (let TMP_174 \def (CHead c2 TMP_173 u2) 
-in (let TMP_175 \def (CSort n) in (let TMP_176 \def (Bind b) in (let TMP_177 
-\def (CHead c2 TMP_176 u2) in (let TMP_178 \def (clear_gen_flat f TMP_175 
-TMP_177 u1 H0) in (let TMP_181 \def (\lambda (e: C).(let TMP_179 \def (Flat 
-f) in (let TMP_180 \def (CTail TMP_179 u1 e) in (eq C c2 TMP_180)))) in (let 
-TMP_185 \def (\lambda (e: C).(let TMP_182 \def (CSort n) in (let TMP_183 \def 
-(Bind b) in (let TMP_184 \def (CHead e TMP_183 u2) in (getl O TMP_182 
-TMP_184))))) in (let TMP_186 \def (ex2 C TMP_181 TMP_185) in (let TMP_187 
-\def (\lambda (_: nat).(eq nat O O)) in (let TMP_190 \def (\lambda (_: 
-nat).(let TMP_188 \def (Flat f) in (let TMP_189 \def (Bind b) in (eq K 
-TMP_188 TMP_189)))) in (let TMP_191 \def (\lambda (_: nat).(eq T u1 u2)) in 
-(let TMP_193 \def (\lambda (n0: nat).(let TMP_192 \def (CSort n0) in (eq C c2 
-TMP_192))) in (let TMP_194 \def (ex4 nat TMP_187 TMP_190 TMP_191 TMP_193) in 
-(let TMP_195 \def (or TMP_186 TMP_194) in (clear_gen_sort TMP_174 n TMP_178 
-TMP_195)))))))))))))))))) in (let TMP_197 \def (CSort n) in (let TMP_198 \def 
-(CHead TMP_197 k u1) in (let TMP_199 \def (Bind b) in (let TMP_200 \def 
-(CHead c2 TMP_199 u2) in (let TMP_201 \def (getl_gen_O TMP_198 TMP_200 H) in 
-(K_ind TMP_47 TMP_172 TMP_196 k TMP_201)))))))))) in (let TMP_227 \def 
-(\lambda (n0: nat).(\lambda (_: (((getl n0 (CHead (CSort n) k u1) (CHead c2 
-(Bind b) u2)) \to (or (ex2 C (\lambda (e: C).(eq C c2 (CTail k u1 e))) 
-(\lambda (e: C).(getl n0 (CSort n) (CHead e (Bind b) u2)))) (ex4 nat (\lambda 
-(_: nat).(eq nat n0 O)) (\lambda (_: nat).(eq K k (Bind b))) (\lambda (_: 
-nat).(eq T u1 u2)) (\lambda (n1: nat).(eq C c2 (CSort n1)))))))).(\lambda 
-(H0: (getl (S n0) (CHead (CSort n) k u1) (CHead c2 (Bind b) u2))).(let 
-TMP_203 \def (r k n0) in (let TMP_204 \def (Bind b) in (let TMP_205 \def 
-(CHead c2 TMP_204 u2) in (let TMP_206 \def (CSort n) in (let TMP_207 \def 
-(Bind b) in (let TMP_208 \def (CHead c2 TMP_207 u2) in (let TMP_209 \def 
-(getl_gen_S k TMP_206 TMP_208 u1 n0 H0) in (let TMP_211 \def (\lambda (e: 
-C).(let TMP_210 \def (CTail k u1 e) in (eq C c2 TMP_210))) in (let TMP_216 
-\def (\lambda (e: C).(let TMP_212 \def (S n0) in (let TMP_213 \def (CSort n) 
-in (let TMP_214 \def (Bind b) in (let TMP_215 \def (CHead e TMP_214 u2) in 
-(getl TMP_212 TMP_213 TMP_215)))))) in (let TMP_217 \def (ex2 C TMP_211 
-TMP_216) in (let TMP_219 \def (\lambda (_: nat).(let TMP_218 \def (S n0) in 
-(eq nat TMP_218 O))) in (let TMP_221 \def (\lambda (_: nat).(let TMP_220 \def 
-(Bind b) in (eq K k TMP_220))) in (let TMP_222 \def (\lambda (_: nat).(eq T 
-u1 u2)) in (let TMP_224 \def (\lambda (n1: nat).(let TMP_223 \def (CSort n1) 
-in (eq C c2 TMP_223))) in (let TMP_225 \def (ex4 nat TMP_219 TMP_221 TMP_222 
-TMP_224) in (let TMP_226 \def (or TMP_217 TMP_225) in (getl_gen_sort n 
-TMP_203 TMP_205 TMP_209 TMP_226)))))))))))))))))))) in (nat_ind TMP_32 
-TMP_202 TMP_227 i)))))) in (let TMP_1086 \def (\lambda (c: C).(\lambda (H: 
+\Rightarrow c])) (CHead c2 (Bind b) u2) (CHead (CSort n) (Bind b0) u1) 
+(clear_gen_bind b0 (CSort n) (CHead c2 (Bind b) u2) u1 H0)) in ((let H2 \def 
+(f_equal C B (\lambda (e: C).(match e with [(CSort _) \Rightarrow b | (CHead 
+_ k0 _) \Rightarrow (match k0 with [(Bind b1) \Rightarrow b1 | (Flat _) 
+\Rightarrow b])])) (CHead c2 (Bind b) u2) (CHead (CSort n) (Bind b0) u1) 
+(clear_gen_bind b0 (CSort n) (CHead c2 (Bind b) u2) u1 H0)) in ((let H3 \def 
+(f_equal C T (\lambda (e: C).(match e with [(CSort _) \Rightarrow u2 | (CHead 
+_ _ t) \Rightarrow t])) (CHead c2 (Bind b) u2) (CHead (CSort n) (Bind b0) u1) 
+(clear_gen_bind b0 (CSort n) (CHead c2 (Bind b) u2) u1 H0)) in (\lambda (H4: 
+(eq B b b0)).(\lambda (H5: (eq C c2 (CSort n))).(eq_ind_r C (CSort n) 
+(\lambda (c: C).(or (ex2 C (\lambda (e: C).(eq C c (CTail (Bind b0) u1 e))) 
+(\lambda (e: C).(getl O (CSort n) (CHead e (Bind b) u2)))) (ex4 nat (\lambda 
+(_: nat).(eq nat O O)) (\lambda (_: nat).(eq K (Bind b0) (Bind b))) (\lambda 
+(_: nat).(eq T u1 u2)) (\lambda (n0: nat).(eq C c (CSort n0)))))) (eq_ind_r T 
+u1 (\lambda (t: T).(or (ex2 C (\lambda (e: C).(eq C (CSort n) (CTail (Bind 
+b0) u1 e))) (\lambda (e: C).(getl O (CSort n) (CHead e (Bind b) t)))) (ex4 
+nat (\lambda (_: nat).(eq nat O O)) (\lambda (_: nat).(eq K (Bind b0) (Bind 
+b))) (\lambda (_: nat).(eq T u1 t)) (\lambda (n0: nat).(eq C (CSort n) (CSort 
+n0)))))) (eq_ind_r B b0 (\lambda (b1: B).(or (ex2 C (\lambda (e: C).(eq C 
+(CSort n) (CTail (Bind b0) u1 e))) (\lambda (e: C).(getl O (CSort n) (CHead e 
+(Bind b1) u1)))) (ex4 nat (\lambda (_: nat).(eq nat O O)) (\lambda (_: 
+nat).(eq K (Bind b0) (Bind b1))) (\lambda (_: nat).(eq T u1 u1)) (\lambda 
+(n0: nat).(eq C (CSort n) (CSort n0)))))) (or_intror (ex2 C (\lambda (e: 
+C).(eq C (CSort n) (CTail (Bind b0) u1 e))) (\lambda (e: C).(getl O (CSort n) 
+(CHead e (Bind b0) u1)))) (ex4 nat (\lambda (_: nat).(eq nat O O)) (\lambda 
+(_: nat).(eq K (Bind b0) (Bind b0))) (\lambda (_: nat).(eq T u1 u1)) (\lambda 
+(n0: nat).(eq C (CSort n) (CSort n0)))) (ex4_intro nat (\lambda (_: nat).(eq 
+nat O O)) (\lambda (_: nat).(eq K (Bind b0) (Bind b0))) (\lambda (_: nat).(eq 
+T u1 u1)) (\lambda (n0: nat).(eq C (CSort n) (CSort n0))) n (refl_equal nat 
+O) (refl_equal K (Bind b0)) (refl_equal T u1) (refl_equal C (CSort n)))) b 
+H4) u2 H3) c2 H5)))) H2)) H1)))) (\lambda (f: F).(\lambda (H0: (clear (CHead 
+(CSort n) (Flat f) u1) (CHead c2 (Bind b) u2))).(clear_gen_sort (CHead c2 
+(Bind b) u2) n (clear_gen_flat f (CSort n) (CHead c2 (Bind b) u2) u1 H0) (or 
+(ex2 C (\lambda (e: C).(eq C c2 (CTail (Flat f) u1 e))) (\lambda (e: C).(getl 
+O (CSort n) (CHead e (Bind b) u2)))) (ex4 nat (\lambda (_: nat).(eq nat O O)) 
+(\lambda (_: nat).(eq K (Flat f) (Bind b))) (\lambda (_: nat).(eq T u1 u2)) 
+(\lambda (n0: nat).(eq C c2 (CSort n0)))))))) k (getl_gen_O (CHead (CSort n) 
+k u1) (CHead c2 (Bind b) u2) H))) (\lambda (n0: nat).(\lambda (_: (((getl n0 
+(CHead (CSort n) k u1) (CHead c2 (Bind b) u2)) \to (or (ex2 C (\lambda (e: 
+C).(eq C c2 (CTail k u1 e))) (\lambda (e: C).(getl n0 (CSort n) (CHead e 
+(Bind b) u2)))) (ex4 nat (\lambda (_: nat).(eq nat n0 O)) (\lambda (_: 
+nat).(eq K k (Bind b))) (\lambda (_: nat).(eq T u1 u2)) (\lambda (n1: 
+nat).(eq C c2 (CSort n1)))))))).(\lambda (H0: (getl (S n0) (CHead (CSort n) k 
+u1) (CHead c2 (Bind b) u2))).(getl_gen_sort n (r k n0) (CHead c2 (Bind b) u2) 
+(getl_gen_S k (CSort n) (CHead c2 (Bind b) u2) u1 n0 H0) (or (ex2 C (\lambda 
+(e: C).(eq C c2 (CTail k u1 e))) (\lambda (e: C).(getl (S n0) (CSort n) 
+(CHead e (Bind b) u2)))) (ex4 nat (\lambda (_: nat).(eq nat (S n0) O)) 
+(\lambda (_: nat).(eq K k (Bind b))) (\lambda (_: nat).(eq T u1 u2)) (\lambda 
+(n1: nat).(eq C c2 (CSort n1))))))))) i))) (\lambda (c: C).(\lambda (H: 
 ((\forall (i: nat).((getl i (CTail k u1 c) (CHead c2 (Bind b) u2)) \to (or 
 (ex2 C (\lambda (e: C).(eq C c2 (CTail k u1 e))) (\lambda (e: C).(getl i c 
 (CHead e (Bind b) u2)))) (ex4 nat (\lambda (_: nat).(eq nat i (clen c))) 
 (\lambda (_: nat).(eq K k (Bind b))) (\lambda (_: nat).(eq T u1 u2)) (\lambda 
 (n: nat).(eq C c2 (CSort n))))))))).(\lambda (k0: K).(\lambda (t: T).(\lambda 
-(i: nat).(let TMP_245 \def (\lambda (n: nat).((getl n (CTail k u1 (CHead c k0 
-t)) (CHead c2 (Bind b) u2)) \to (let TMP_230 \def (\lambda (e: C).(let 
-TMP_229 \def (CTail k u1 e) in (eq C c2 TMP_229))) in (let TMP_234 \def 
-(\lambda (e: C).(let TMP_231 \def (CHead c k0 t) in (let TMP_232 \def (Bind 
-b) in (let TMP_233 \def (CHead e TMP_232 u2) in (getl n TMP_231 TMP_233))))) 
-in (let TMP_235 \def (ex2 C TMP_230 TMP_234) in (let TMP_238 \def (\lambda 
-(_: nat).(let TMP_236 \def (CHead c k0 t) in (let TMP_237 \def (clen TMP_236) 
-in (eq nat n TMP_237)))) in (let TMP_240 \def (\lambda (_: nat).(let TMP_239 
-\def (Bind b) in (eq K k TMP_239))) in (let TMP_241 \def (\lambda (_: 
-nat).(eq T u1 u2)) in (let TMP_243 \def (\lambda (n0: nat).(let TMP_242 \def 
-(CSort n0) in (eq C c2 TMP_242))) in (let TMP_244 \def (ex4 nat TMP_238 
-TMP_240 TMP_241 TMP_243) in (or TMP_235 TMP_244))))))))))) in (let TMP_669 
-\def (\lambda (H0: (getl O (CHead (CTail k u1 c) k0 t) (CHead c2 (Bind b) 
-u2))).(let TMP_262 \def (\lambda (k1: K).((clear (CHead (CTail k u1 c) k1 t) 
-(CHead c2 (Bind b) u2)) \to (let TMP_247 \def (\lambda (e: C).(let TMP_246 
-\def (CTail k u1 e) in (eq C c2 TMP_246))) in (let TMP_251 \def (\lambda (e: 
-C).(let TMP_248 \def (CHead c k1 t) in (let TMP_249 \def (Bind b) in (let 
-TMP_250 \def (CHead e TMP_249 u2) in (getl O TMP_248 TMP_250))))) in (let 
-TMP_252 \def (ex2 C TMP_247 TMP_251) in (let TMP_255 \def (\lambda (_: 
-nat).(let TMP_253 \def (clen c) in (let TMP_254 \def (s k1 TMP_253) in (eq 
-nat O TMP_254)))) in (let TMP_257 \def (\lambda (_: nat).(let TMP_256 \def 
-(Bind b) in (eq K k TMP_256))) in (let TMP_258 \def (\lambda (_: nat).(eq T 
-u1 u2)) in (let TMP_260 \def (\lambda (n: nat).(let TMP_259 \def (CSort n) in 
-(eq C c2 TMP_259))) in (let TMP_261 \def (ex4 nat TMP_255 TMP_257 TMP_258 
-TMP_260) in (or TMP_252 TMP_261))))))))))) in (let TMP_404 \def (\lambda (b0: 
-B).(\lambda (H1: (clear (CHead (CTail k u1 c) (Bind b0) t) (CHead c2 (Bind b) 
-u2))).(let TMP_263 \def (\lambda (e: C).(match e with [(CSort _) \Rightarrow 
-c2 | (CHead c0 _ _) \Rightarrow c0])) in (let TMP_264 \def (Bind b) in (let 
-TMP_265 \def (CHead c2 TMP_264 u2) in (let TMP_266 \def (CTail k u1 c) in 
-(let TMP_267 \def (Bind b0) in (let TMP_268 \def (CHead TMP_266 TMP_267 t) in 
-(let TMP_269 \def (CTail k u1 c) in (let TMP_270 \def (Bind b) in (let 
-TMP_271 \def (CHead c2 TMP_270 u2) in (let TMP_272 \def (clear_gen_bind b0 
-TMP_269 TMP_271 t H1) in (let H2 \def (f_equal C C TMP_263 TMP_265 TMP_268 
-TMP_272) in (let TMP_273 \def (\lambda (e: C).(match e with [(CSort _) 
-\Rightarrow b | (CHead _ k1 _) \Rightarrow (match k1 with [(Bind b1) 
-\Rightarrow b1 | (Flat _) \Rightarrow b])])) in (let TMP_274 \def (Bind b) in 
-(let TMP_275 \def (CHead c2 TMP_274 u2) in (let TMP_276 \def (CTail k u1 c) 
-in (let TMP_277 \def (Bind b0) in (let TMP_278 \def (CHead TMP_276 TMP_277 t) 
-in (let TMP_279 \def (CTail k u1 c) in (let TMP_280 \def (Bind b) in (let 
-TMP_281 \def (CHead c2 TMP_280 u2) in (let TMP_282 \def (clear_gen_bind b0 
-TMP_279 TMP_281 t H1) in (let H3 \def (f_equal C B TMP_273 TMP_275 TMP_278 
-TMP_282) in (let TMP_283 \def (\lambda (e: C).(match e with [(CSort _) 
-\Rightarrow u2 | (CHead _ _ t0) \Rightarrow t0])) in (let TMP_284 \def (Bind 
-b) in (let TMP_285 \def (CHead c2 TMP_284 u2) in (let TMP_286 \def (CTail k 
-u1 c) in (let TMP_287 \def (Bind b0) in (let TMP_288 \def (CHead TMP_286 
-TMP_287 t) in (let TMP_289 \def (CTail k u1 c) in (let TMP_290 \def (Bind b) 
-in (let TMP_291 \def (CHead c2 TMP_290 u2) in (let TMP_292 \def 
-(clear_gen_bind b0 TMP_289 TMP_291 t H1) in (let H4 \def (f_equal C T TMP_283 
-TMP_285 TMP_288 TMP_292) in (let TMP_402 \def (\lambda (H5: (eq B b 
-b0)).(\lambda (H6: (eq C c2 (CTail k u1 c))).(let TMP_311 \def (\lambda (t0: 
-T).(let TMP_294 \def (\lambda (e: C).(let TMP_293 \def (CTail k u1 e) in (eq 
-C c2 TMP_293))) in (let TMP_299 \def (\lambda (e: C).(let TMP_295 \def (Bind 
-b0) in (let TMP_296 \def (CHead c TMP_295 t0) in (let TMP_297 \def (Bind b) 
-in (let TMP_298 \def (CHead e TMP_297 u2) in (getl O TMP_296 TMP_298)))))) in 
-(let TMP_300 \def (ex2 C TMP_294 TMP_299) in (let TMP_304 \def (\lambda (_: 
-nat).(let TMP_301 \def (Bind b0) in (let TMP_302 \def (clen c) in (let 
-TMP_303 \def (s TMP_301 TMP_302) in (eq nat O TMP_303))))) in (let TMP_306 
-\def (\lambda (_: nat).(let TMP_305 \def (Bind b) in (eq K k TMP_305))) in 
-(let TMP_307 \def (\lambda (_: nat).(eq T u1 u2)) in (let TMP_309 \def 
-(\lambda (n: nat).(let TMP_308 \def (CSort n) in (eq C c2 TMP_308))) in (let 
-TMP_310 \def (ex4 nat TMP_304 TMP_306 TMP_307 TMP_309) in (or TMP_300 
-TMP_310)))))))))) in (let TMP_330 \def (\lambda (b1: B).(let TMP_313 \def 
-(\lambda (e: C).(let TMP_312 \def (CTail k u1 e) in (eq C c2 TMP_312))) in 
-(let TMP_318 \def (\lambda (e: C).(let TMP_314 \def (Bind b1) in (let TMP_315 
-\def (CHead c TMP_314 u2) in (let TMP_316 \def (Bind b) in (let TMP_317 \def 
-(CHead e TMP_316 u2) in (getl O TMP_315 TMP_317)))))) in (let TMP_319 \def 
-(ex2 C TMP_313 TMP_318) in (let TMP_323 \def (\lambda (_: nat).(let TMP_320 
-\def (Bind b1) in (let TMP_321 \def (clen c) in (let TMP_322 \def (s TMP_320 
-TMP_321) in (eq nat O TMP_322))))) in (let TMP_325 \def (\lambda (_: 
-nat).(let TMP_324 \def (Bind b) in (eq K k TMP_324))) in (let TMP_326 \def 
-(\lambda (_: nat).(eq T u1 u2)) in (let TMP_328 \def (\lambda (n: nat).(let 
-TMP_327 \def (CSort n) in (eq C c2 TMP_327))) in (let TMP_329 \def (ex4 nat 
-TMP_323 TMP_325 TMP_326 TMP_328) in (or TMP_319 TMP_329)))))))))) in (let 
-TMP_345 \def (\lambda (c0: C).(\forall (i0: nat).((getl i0 (CTail k u1 c) 
-(CHead c0 (Bind b) u2)) \to (let TMP_332 \def (\lambda (e: C).(let TMP_331 
-\def (CTail k u1 e) in (eq C c0 TMP_331))) in (let TMP_335 \def (\lambda (e: 
-C).(let TMP_333 \def (Bind b) in (let TMP_334 \def (CHead e TMP_333 u2) in 
-(getl i0 c TMP_334)))) in (let TMP_336 \def (ex2 C TMP_332 TMP_335) in (let 
-TMP_338 \def (\lambda (_: nat).(let TMP_337 \def (clen c) in (eq nat i0 
-TMP_337))) in (let TMP_340 \def (\lambda (_: nat).(let TMP_339 \def (Bind b) 
-in (eq K k TMP_339))) in (let TMP_341 \def (\lambda (_: nat).(eq T u1 u2)) in 
-(let TMP_343 \def (\lambda (n: nat).(let TMP_342 \def (CSort n) in (eq C c0 
-TMP_342))) in (let TMP_344 \def (ex4 nat TMP_338 TMP_340 TMP_341 TMP_343) in 
-(or TMP_336 TMP_344)))))))))))) in (let TMP_346 \def (CTail k u1 c) in (let 
-H7 \def (eq_ind C c2 TMP_345 H TMP_346 H6) in (let TMP_347 \def (CTail k u1 
-c) in (let TMP_366 \def (\lambda (c0: C).(let TMP_349 \def (\lambda (e: 
-C).(let TMP_348 \def (CTail k u1 e) in (eq C c0 TMP_348))) in (let TMP_354 
-\def (\lambda (e: C).(let TMP_350 \def (Bind b) in (let TMP_351 \def (CHead c 
-TMP_350 u2) in (let TMP_352 \def (Bind b) in (let TMP_353 \def (CHead e 
-TMP_352 u2) in (getl O TMP_351 TMP_353)))))) in (let TMP_355 \def (ex2 C 
-TMP_349 TMP_354) in (let TMP_359 \def (\lambda (_: nat).(let TMP_356 \def 
-(Bind b) in (let TMP_357 \def (clen c) in (let TMP_358 \def (s TMP_356 
-TMP_357) in (eq nat O TMP_358))))) in (let TMP_361 \def (\lambda (_: 
-nat).(let TMP_360 \def (Bind b) in (eq K k TMP_360))) in (let TMP_362 \def 
-(\lambda (_: nat).(eq T u1 u2)) in (let TMP_364 \def (\lambda (n: nat).(let 
-TMP_363 \def (CSort n) in (eq C c0 TMP_363))) in (let TMP_365 \def (ex4 nat 
-TMP_359 TMP_361 TMP_362 TMP_364) in (or TMP_355 TMP_365)))))))))) in (let 
-TMP_369 \def (\lambda (e: C).(let TMP_367 \def (CTail k u1 c) in (let TMP_368 
-\def (CTail k u1 e) in (eq C TMP_367 TMP_368)))) in (let TMP_374 \def 
-(\lambda (e: C).(let TMP_370 \def (Bind b) in (let TMP_371 \def (CHead c 
-TMP_370 u2) in (let TMP_372 \def (Bind b) in (let TMP_373 \def (CHead e 
-TMP_372 u2) in (getl O TMP_371 TMP_373)))))) in (let TMP_375 \def (ex2 C 
-TMP_369 TMP_374) in (let TMP_379 \def (\lambda (_: nat).(let TMP_376 \def 
-(Bind b) in (let TMP_377 \def (clen c) in (let TMP_378 \def (s TMP_376 
-TMP_377) in (eq nat O TMP_378))))) in (let TMP_381 \def (\lambda (_: 
-nat).(let TMP_380 \def (Bind b) in (eq K k TMP_380))) in (let TMP_382 \def 
-(\lambda (_: nat).(eq T u1 u2)) in (let TMP_385 \def (\lambda (n: nat).(let 
-TMP_383 \def (CTail k u1 c) in (let TMP_384 \def (CSort n) in (eq C TMP_383 
-TMP_384)))) in (let TMP_386 \def (ex4 nat TMP_379 TMP_381 TMP_382 TMP_385) in 
-(let TMP_389 \def (\lambda (e: C).(let TMP_387 \def (CTail k u1 c) in (let 
-TMP_388 \def (CTail k u1 e) in (eq C TMP_387 TMP_388)))) in (let TMP_394 \def 
-(\lambda (e: C).(let TMP_390 \def (Bind b) in (let TMP_391 \def (CHead c 
-TMP_390 u2) in (let TMP_392 \def (Bind b) in (let TMP_393 \def (CHead e 
-TMP_392 u2) in (getl O TMP_391 TMP_393)))))) in (let TMP_395 \def (CTail k u1 
-c) in (let TMP_396 \def (refl_equal C TMP_395) in (let TMP_397 \def 
-(getl_refl b c u2) in (let TMP_398 \def (ex_intro2 C TMP_389 TMP_394 c 
-TMP_396 TMP_397) in (let TMP_399 \def (or_introl TMP_375 TMP_386 TMP_398) in 
-(let TMP_400 \def (eq_ind_r C TMP_347 TMP_366 TMP_399 c2 H6) in (let TMP_401 
-\def (eq_ind B b TMP_330 TMP_400 b0 H5) in (eq_ind T u2 TMP_311 TMP_401 t 
-H4))))))))))))))))))))))))))) in (let TMP_403 \def (TMP_402 H3) in (TMP_403 
-H2)))))))))))))))))))))))))))))))))))))) in (let TMP_663 \def (\lambda (f: 
+(i: nat).(nat_ind (\lambda (n: nat).((getl n (CTail k u1 (CHead c k0 t)) 
+(CHead c2 (Bind b) u2)) \to (or (ex2 C (\lambda (e: C).(eq C c2 (CTail k u1 
+e))) (\lambda (e: C).(getl n (CHead c k0 t) (CHead e (Bind b) u2)))) (ex4 nat 
+(\lambda (_: nat).(eq nat n (clen (CHead c k0 t)))) (\lambda (_: nat).(eq K k 
+(Bind b))) (\lambda (_: nat).(eq T u1 u2)) (\lambda (n0: nat).(eq C c2 (CSort 
+n0))))))) (\lambda (H0: (getl O (CHead (CTail k u1 c) k0 t) (CHead c2 (Bind 
+b) u2))).(K_ind (\lambda (k1: K).((clear (CHead (CTail k u1 c) k1 t) (CHead 
+c2 (Bind b) u2)) \to (or (ex2 C (\lambda (e: C).(eq C c2 (CTail k u1 e))) 
+(\lambda (e: C).(getl O (CHead c k1 t) (CHead e (Bind b) u2)))) (ex4 nat 
+(\lambda (_: nat).(eq nat O (s k1 (clen c)))) (\lambda (_: nat).(eq K k (Bind 
+b))) (\lambda (_: nat).(eq T u1 u2)) (\lambda (n: nat).(eq C c2 (CSort 
+n))))))) (\lambda (b0: B).(\lambda (H1: (clear (CHead (CTail k u1 c) (Bind 
+b0) t) (CHead c2 (Bind b) u2))).(let H2 \def (f_equal C C (\lambda (e: 
+C).(match e with [(CSort _) \Rightarrow c2 | (CHead c0 _ _) \Rightarrow c0])) 
+(CHead c2 (Bind b) u2) (CHead (CTail k u1 c) (Bind b0) t) (clear_gen_bind b0 
+(CTail k u1 c) (CHead c2 (Bind b) u2) t H1)) in ((let H3 \def (f_equal C B 
+(\lambda (e: C).(match e with [(CSort _) \Rightarrow b | (CHead _ k1 _) 
+\Rightarrow (match k1 with [(Bind b1) \Rightarrow b1 | (Flat _) \Rightarrow 
+b])])) (CHead c2 (Bind b) u2) (CHead (CTail k u1 c) (Bind b0) t) 
+(clear_gen_bind b0 (CTail k u1 c) (CHead c2 (Bind b) u2) t H1)) in ((let H4 
+\def (f_equal C T (\lambda (e: C).(match e with [(CSort _) \Rightarrow u2 | 
+(CHead _ _ t0) \Rightarrow t0])) (CHead c2 (Bind b) u2) (CHead (CTail k u1 c) 
+(Bind b0) t) (clear_gen_bind b0 (CTail k u1 c) (CHead c2 (Bind b) u2) t H1)) 
+in (\lambda (H5: (eq B b b0)).(\lambda (H6: (eq C c2 (CTail k u1 c))).(eq_ind 
+T u2 (\lambda (t0: T).(or (ex2 C (\lambda (e: C).(eq C c2 (CTail k u1 e))) 
+(\lambda (e: C).(getl O (CHead c (Bind b0) t0) (CHead e (Bind b) u2)))) (ex4 
+nat (\lambda (_: nat).(eq nat O (s (Bind b0) (clen c)))) (\lambda (_: 
+nat).(eq K k (Bind b))) (\lambda (_: nat).(eq T u1 u2)) (\lambda (n: nat).(eq 
+C c2 (CSort n)))))) (eq_ind B b (\lambda (b1: B).(or (ex2 C (\lambda (e: 
+C).(eq C c2 (CTail k u1 e))) (\lambda (e: C).(getl O (CHead c (Bind b1) u2) 
+(CHead e (Bind b) u2)))) (ex4 nat (\lambda (_: nat).(eq nat O (s (Bind b1) 
+(clen c)))) (\lambda (_: nat).(eq K k (Bind b))) (\lambda (_: nat).(eq T u1 
+u2)) (\lambda (n: nat).(eq C c2 (CSort n)))))) (let H7 \def (eq_ind C c2 
+(\lambda (c0: C).(\forall (i0: nat).((getl i0 (CTail k u1 c) (CHead c0 (Bind 
+b) u2)) \to (or (ex2 C (\lambda (e: C).(eq C c0 (CTail k u1 e))) (\lambda (e: 
+C).(getl i0 c (CHead e (Bind b) u2)))) (ex4 nat (\lambda (_: nat).(eq nat i0 
+(clen c))) (\lambda (_: nat).(eq K k (Bind b))) (\lambda (_: nat).(eq T u1 
+u2)) (\lambda (n: nat).(eq C c0 (CSort n)))))))) H (CTail k u1 c) H6) in 
+(eq_ind_r C (CTail k u1 c) (\lambda (c0: C).(or (ex2 C (\lambda (e: C).(eq C 
+c0 (CTail k u1 e))) (\lambda (e: C).(getl O (CHead c (Bind b) u2) (CHead e 
+(Bind b) u2)))) (ex4 nat (\lambda (_: nat).(eq nat O (s (Bind b) (clen c)))) 
+(\lambda (_: nat).(eq K k (Bind b))) (\lambda (_: nat).(eq T u1 u2)) (\lambda 
+(n: nat).(eq C c0 (CSort n)))))) (or_introl (ex2 C (\lambda (e: C).(eq C 
+(CTail k u1 c) (CTail k u1 e))) (\lambda (e: C).(getl O (CHead c (Bind b) u2) 
+(CHead e (Bind b) u2)))) (ex4 nat (\lambda (_: nat).(eq nat O (s (Bind b) 
+(clen c)))) (\lambda (_: nat).(eq K k (Bind b))) (\lambda (_: nat).(eq T u1 
+u2)) (\lambda (n: nat).(eq C (CTail k u1 c) (CSort n)))) (ex_intro2 C 
+(\lambda (e: C).(eq C (CTail k u1 c) (CTail k u1 e))) (\lambda (e: C).(getl O 
+(CHead c (Bind b) u2) (CHead e (Bind b) u2))) c (refl_equal C (CTail k u1 c)) 
+(getl_refl b c u2))) c2 H6)) b0 H5) t H4)))) H3)) H2)))) (\lambda (f: 
 F).(\lambda (H1: (clear (CHead (CTail k u1 c) (Flat f) t) (CHead c2 (Bind b) 
-u2))).(let TMP_405 \def (CTail k u1 c) in (let TMP_406 \def (Bind b) in (let 
-TMP_407 \def (CHead c2 TMP_406 u2) in (let TMP_408 \def (CTail k u1 c) in 
-(let TMP_409 \def (CTail k u1 c) in (let TMP_410 \def (drop_refl TMP_409) in 
-(let TMP_411 \def (CTail k u1 c) in (let TMP_412 \def (Bind b) in (let 
-TMP_413 \def (CHead c2 TMP_412 u2) in (let TMP_414 \def (clear_gen_flat f 
-TMP_411 TMP_413 t H1) in (let TMP_415 \def (getl_intro O TMP_405 TMP_407 
-TMP_408 TMP_410 TMP_414) in (let H2 \def (H O TMP_415) in (let TMP_417 \def 
-(\lambda (e: C).(let TMP_416 \def (CTail k u1 e) in (eq C c2 TMP_416))) in 
-(let TMP_420 \def (\lambda (e: C).(let TMP_418 \def (Bind b) in (let TMP_419 
-\def (CHead e TMP_418 u2) in (getl O c TMP_419)))) in (let TMP_421 \def (ex2 
-C TMP_417 TMP_420) in (let TMP_423 \def (\lambda (_: nat).(let TMP_422 \def 
-(clen c) in (eq nat O TMP_422))) in (let TMP_425 \def (\lambda (_: nat).(let 
-TMP_424 \def (Bind b) in (eq K k TMP_424))) in (let TMP_426 \def (\lambda (_: 
-nat).(eq T u1 u2)) in (let TMP_428 \def (\lambda (n: nat).(let TMP_427 \def 
-(CSort n) in (eq C c2 TMP_427))) in (let TMP_429 \def (ex4 nat TMP_423 
-TMP_425 TMP_426 TMP_428) in (let TMP_431 \def (\lambda (e: C).(let TMP_430 
-\def (CTail k u1 e) in (eq C c2 TMP_430))) in (let TMP_436 \def (\lambda (e: 
-C).(let TMP_432 \def (Flat f) in (let TMP_433 \def (CHead c TMP_432 t) in 
-(let TMP_434 \def (Bind b) in (let TMP_435 \def (CHead e TMP_434 u2) in (getl 
-O TMP_433 TMP_435)))))) in (let TMP_437 \def (ex2 C TMP_431 TMP_436) in (let 
-TMP_441 \def (\lambda (_: nat).(let TMP_438 \def (Flat f) in (let TMP_439 
-\def (clen c) in (let TMP_440 \def (s TMP_438 TMP_439) in (eq nat O 
-TMP_440))))) in (let TMP_443 \def (\lambda (_: nat).(let TMP_442 \def (Bind 
-b) in (eq K k TMP_442))) in (let TMP_444 \def (\lambda (_: nat).(eq T u1 u2)) 
-in (let TMP_446 \def (\lambda (n: nat).(let TMP_445 \def (CSort n) in (eq C 
-c2 TMP_445))) in (let TMP_447 \def (ex4 nat TMP_441 TMP_443 TMP_444 TMP_446) 
-in (let TMP_448 \def (or TMP_437 TMP_447) in (let TMP_529 \def (\lambda (H3: 
+u2))).(let H2 \def (H O (getl_intro O (CTail k u1 c) (CHead c2 (Bind b) u2) 
+(CTail k u1 c) (drop_refl (CTail k u1 c)) (clear_gen_flat f (CTail k u1 c) 
+(CHead c2 (Bind b) u2) t H1))) in (or_ind (ex2 C (\lambda (e: C).(eq C c2 
+(CTail k u1 e))) (\lambda (e: C).(getl O c (CHead e (Bind b) u2)))) (ex4 nat 
+(\lambda (_: nat).(eq nat O (clen c))) (\lambda (_: nat).(eq K k (Bind b))) 
+(\lambda (_: nat).(eq T u1 u2)) (\lambda (n: nat).(eq C c2 (CSort n)))) (or 
+(ex2 C (\lambda (e: C).(eq C c2 (CTail k u1 e))) (\lambda (e: C).(getl O 
+(CHead c (Flat f) t) (CHead e (Bind b) u2)))) (ex4 nat (\lambda (_: nat).(eq 
+nat O (s (Flat f) (clen c)))) (\lambda (_: nat).(eq K k (Bind b))) (\lambda 
+(_: nat).(eq T u1 u2)) (\lambda (n: nat).(eq C c2 (CSort n))))) (\lambda (H3: 
 (ex2 C (\lambda (e: C).(eq C c2 (CTail k u1 e))) (\lambda (e: C).(getl O c 
-(CHead e (Bind b) u2))))).(let TMP_450 \def (\lambda (e: C).(let TMP_449 \def 
-(CTail k u1 e) in (eq C c2 TMP_449))) in (let TMP_453 \def (\lambda (e: 
-C).(let TMP_451 \def (Bind b) in (let TMP_452 \def (CHead e TMP_451 u2) in 
-(getl O c TMP_452)))) in (let TMP_455 \def (\lambda (e: C).(let TMP_454 \def 
-(CTail k u1 e) in (eq C c2 TMP_454))) in (let TMP_460 \def (\lambda (e: 
-C).(let TMP_456 \def (Flat f) in (let TMP_457 \def (CHead c TMP_456 t) in 
-(let TMP_458 \def (Bind b) in (let TMP_459 \def (CHead e TMP_458 u2) in (getl 
-O TMP_457 TMP_459)))))) in (let TMP_461 \def (ex2 C TMP_455 TMP_460) in (let 
-TMP_465 \def (\lambda (_: nat).(let TMP_462 \def (Flat f) in (let TMP_463 
-\def (clen c) in (let TMP_464 \def (s TMP_462 TMP_463) in (eq nat O 
-TMP_464))))) in (let TMP_467 \def (\lambda (_: nat).(let TMP_466 \def (Bind 
-b) in (eq K k TMP_466))) in (let TMP_468 \def (\lambda (_: nat).(eq T u1 u2)) 
-in (let TMP_470 \def (\lambda (n: nat).(let TMP_469 \def (CSort n) in (eq C 
-c2 TMP_469))) in (let TMP_471 \def (ex4 nat TMP_465 TMP_467 TMP_468 TMP_470) 
-in (let TMP_472 \def (or TMP_461 TMP_471) in (let TMP_528 \def (\lambda (x: 
-C).(\lambda (H4: (eq C c2 (CTail k u1 x))).(\lambda (H5: (getl O c (CHead x 
-(Bind b) u2))).(let TMP_473 \def (CTail k u1 x) in (let TMP_492 \def (\lambda 
-(c0: C).(let TMP_475 \def (\lambda (e: C).(let TMP_474 \def (CTail k u1 e) in 
-(eq C c0 TMP_474))) in (let TMP_480 \def (\lambda (e: C).(let TMP_476 \def 
-(Flat f) in (let TMP_477 \def (CHead c TMP_476 t) in (let TMP_478 \def (Bind 
-b) in (let TMP_479 \def (CHead e TMP_478 u2) in (getl O TMP_477 TMP_479)))))) 
-in (let TMP_481 \def (ex2 C TMP_475 TMP_480) in (let TMP_485 \def (\lambda 
-(_: nat).(let TMP_482 \def (Flat f) in (let TMP_483 \def (clen c) in (let 
-TMP_484 \def (s TMP_482 TMP_483) in (eq nat O TMP_484))))) in (let TMP_487 
-\def (\lambda (_: nat).(let TMP_486 \def (Bind b) in (eq K k TMP_486))) in 
-(let TMP_488 \def (\lambda (_: nat).(eq T u1 u2)) in (let TMP_490 \def 
-(\lambda (n: nat).(let TMP_489 \def (CSort n) in (eq C c0 TMP_489))) in (let 
-TMP_491 \def (ex4 nat TMP_485 TMP_487 TMP_488 TMP_490) in (or TMP_481 
-TMP_491)))))))))) in (let TMP_495 \def (\lambda (e: C).(let TMP_493 \def 
-(CTail k u1 x) in (let TMP_494 \def (CTail k u1 e) in (eq C TMP_493 
-TMP_494)))) in (let TMP_500 \def (\lambda (e: C).(let TMP_496 \def (Flat f) 
-in (let TMP_497 \def (CHead c TMP_496 t) in (let TMP_498 \def (Bind b) in 
-(let TMP_499 \def (CHead e TMP_498 u2) in (getl O TMP_497 TMP_499)))))) in 
-(let TMP_501 \def (ex2 C TMP_495 TMP_500) in (let TMP_505 \def (\lambda (_: 
-nat).(let TMP_502 \def (Flat f) in (let TMP_503 \def (clen c) in (let TMP_504 
-\def (s TMP_502 TMP_503) in (eq nat O TMP_504))))) in (let TMP_507 \def 
-(\lambda (_: nat).(let TMP_506 \def (Bind b) in (eq K k TMP_506))) in (let 
-TMP_508 \def (\lambda (_: nat).(eq T u1 u2)) in (let TMP_511 \def (\lambda 
-(n: nat).(let TMP_509 \def (CTail k u1 x) in (let TMP_510 \def (CSort n) in 
-(eq C TMP_509 TMP_510)))) in (let TMP_512 \def (ex4 nat TMP_505 TMP_507 
-TMP_508 TMP_511) in (let TMP_515 \def (\lambda (e: C).(let TMP_513 \def 
-(CTail k u1 x) in (let TMP_514 \def (CTail k u1 e) in (eq C TMP_513 
-TMP_514)))) in (let TMP_520 \def (\lambda (e: C).(let TMP_516 \def (Flat f) 
-in (let TMP_517 \def (CHead c TMP_516 t) in (let TMP_518 \def (Bind b) in 
-(let TMP_519 \def (CHead e TMP_518 u2) in (getl O TMP_517 TMP_519)))))) in 
-(let TMP_521 \def (CTail k u1 x) in (let TMP_522 \def (refl_equal C TMP_521) 
-in (let TMP_523 \def (Bind b) in (let TMP_524 \def (CHead x TMP_523 u2) in 
-(let TMP_525 \def (getl_flat c TMP_524 O H5 f t) in (let TMP_526 \def 
-(ex_intro2 C TMP_515 TMP_520 x TMP_522 TMP_525) in (let TMP_527 \def 
-(or_introl TMP_501 TMP_512 TMP_526) in (eq_ind_r C TMP_473 TMP_492 TMP_527 c2 
-H4))))))))))))))))))))))) in (ex2_ind C TMP_450 TMP_453 TMP_472 TMP_528 
-H3)))))))))))))) in (let TMP_662 \def (\lambda (H3: (ex4 nat (\lambda (_: 
-nat).(eq nat O (clen c))) (\lambda (_: nat).(eq K k (Bind b))) (\lambda (_: 
-nat).(eq T u1 u2)) (\lambda (n: nat).(eq C c2 (CSort n))))).(let TMP_531 \def 
-(\lambda (_: nat).(let TMP_530 \def (clen c) in (eq nat O TMP_530))) in (let 
-TMP_533 \def (\lambda (_: nat).(let TMP_532 \def (Bind b) in (eq K k 
-TMP_532))) in (let TMP_534 \def (\lambda (_: nat).(eq T u1 u2)) in (let 
-TMP_536 \def (\lambda (n: nat).(let TMP_535 \def (CSort n) in (eq C c2 
-TMP_535))) in (let TMP_538 \def (\lambda (e: C).(let TMP_537 \def (CTail k u1 
-e) in (eq C c2 TMP_537))) in (let TMP_543 \def (\lambda (e: C).(let TMP_539 
-\def (Flat f) in (let TMP_540 \def (CHead c TMP_539 t) in (let TMP_541 \def 
-(Bind b) in (let TMP_542 \def (CHead e TMP_541 u2) in (getl O TMP_540 
-TMP_542)))))) in (let TMP_544 \def (ex2 C TMP_538 TMP_543) in (let TMP_548 
-\def (\lambda (_: nat).(let TMP_545 \def (Flat f) in (let TMP_546 \def (clen 
-c) in (let TMP_547 \def (s TMP_545 TMP_546) in (eq nat O TMP_547))))) in (let 
-TMP_550 \def (\lambda (_: nat).(let TMP_549 \def (Bind b) in (eq K k 
-TMP_549))) in (let TMP_551 \def (\lambda (_: nat).(eq T u1 u2)) in (let 
-TMP_553 \def (\lambda (n: nat).(let TMP_552 \def (CSort n) in (eq C c2 
-TMP_552))) in (let TMP_554 \def (ex4 nat TMP_548 TMP_550 TMP_551 TMP_553) in 
-(let TMP_555 \def (or TMP_544 TMP_554) in (let TMP_661 \def (\lambda (x0: 
-nat).(\lambda (H4: (eq nat O (clen c))).(\lambda (H5: (eq K k (Bind 
-b))).(\lambda (H6: (eq T u1 u2)).(\lambda (H7: (eq C c2 (CSort x0))).(let 
-TMP_556 \def (CSort x0) in (let TMP_575 \def (\lambda (c0: C).(let TMP_558 
-\def (\lambda (e: C).(let TMP_557 \def (CTail k u1 e) in (eq C c0 TMP_557))) 
-in (let TMP_563 \def (\lambda (e: C).(let TMP_559 \def (Flat f) in (let 
-TMP_560 \def (CHead c TMP_559 t) in (let TMP_561 \def (Bind b) in (let 
-TMP_562 \def (CHead e TMP_561 u2) in (getl O TMP_560 TMP_562)))))) in (let 
-TMP_564 \def (ex2 C TMP_558 TMP_563) in (let TMP_568 \def (\lambda (_: 
-nat).(let TMP_565 \def (Flat f) in (let TMP_566 \def (clen c) in (let TMP_567 
-\def (s TMP_565 TMP_566) in (eq nat O TMP_567))))) in (let TMP_570 \def 
-(\lambda (_: nat).(let TMP_569 \def (Bind b) in (eq K k TMP_569))) in (let 
-TMP_571 \def (\lambda (_: nat).(eq T u1 u2)) in (let TMP_573 \def (\lambda 
-(n: nat).(let TMP_572 \def (CSort n) in (eq C c0 TMP_572))) in (let TMP_574 
-\def (ex4 nat TMP_568 TMP_570 TMP_571 TMP_573) in (or TMP_564 
-TMP_574)))))))))) in (let TMP_596 \def (\lambda (t0: T).(let TMP_578 \def 
-(\lambda (e: C).(let TMP_576 \def (CSort x0) in (let TMP_577 \def (CTail k u1 
-e) in (eq C TMP_576 TMP_577)))) in (let TMP_583 \def (\lambda (e: C).(let 
-TMP_579 \def (Flat f) in (let TMP_580 \def (CHead c TMP_579 t) in (let 
-TMP_581 \def (Bind b) in (let TMP_582 \def (CHead e TMP_581 t0) in (getl O 
-TMP_580 TMP_582)))))) in (let TMP_584 \def (ex2 C TMP_578 TMP_583) in (let 
-TMP_588 \def (\lambda (_: nat).(let TMP_585 \def (Flat f) in (let TMP_586 
-\def (clen c) in (let TMP_587 \def (s TMP_585 TMP_586) in (eq nat O 
-TMP_587))))) in (let TMP_590 \def (\lambda (_: nat).(let TMP_589 \def (Bind 
-b) in (eq K k TMP_589))) in (let TMP_591 \def (\lambda (_: nat).(eq T u1 t0)) 
-in (let TMP_594 \def (\lambda (n: nat).(let TMP_592 \def (CSort x0) in (let 
-TMP_593 \def (CSort n) in (eq C TMP_592 TMP_593)))) in (let TMP_595 \def (ex4 
-nat TMP_588 TMP_590 TMP_591 TMP_594) in (or TMP_584 TMP_595)))))))))) in (let 
-TMP_597 \def (Bind b) in (let TMP_618 \def (\lambda (k1: K).(let TMP_600 \def 
-(\lambda (e: C).(let TMP_598 \def (CSort x0) in (let TMP_599 \def (CTail k1 
-u1 e) in (eq C TMP_598 TMP_599)))) in (let TMP_605 \def (\lambda (e: C).(let 
-TMP_601 \def (Flat f) in (let TMP_602 \def (CHead c TMP_601 t) in (let 
-TMP_603 \def (Bind b) in (let TMP_604 \def (CHead e TMP_603 u1) in (getl O 
-TMP_602 TMP_604)))))) in (let TMP_606 \def (ex2 C TMP_600 TMP_605) in (let 
-TMP_610 \def (\lambda (_: nat).(let TMP_607 \def (Flat f) in (let TMP_608 
-\def (clen c) in (let TMP_609 \def (s TMP_607 TMP_608) in (eq nat O 
-TMP_609))))) in (let TMP_612 \def (\lambda (_: nat).(let TMP_611 \def (Bind 
-b) in (eq K k1 TMP_611))) in (let TMP_613 \def (\lambda (_: nat).(eq T u1 
-u1)) in (let TMP_616 \def (\lambda (n: nat).(let TMP_614 \def (CSort x0) in 
-(let TMP_615 \def (CSort n) in (eq C TMP_614 TMP_615)))) in (let TMP_617 \def 
-(ex4 nat TMP_610 TMP_612 TMP_613 TMP_616) in (or TMP_606 TMP_617)))))))))) in 
-(let TMP_622 \def (\lambda (e: C).(let TMP_619 \def (CSort x0) in (let 
-TMP_620 \def (Bind b) in (let TMP_621 \def (CTail TMP_620 u1 e) in (eq C 
-TMP_619 TMP_621))))) in (let TMP_627 \def (\lambda (e: C).(let TMP_623 \def 
-(Flat f) in (let TMP_624 \def (CHead c TMP_623 t) in (let TMP_625 \def (Bind 
-b) in (let TMP_626 \def (CHead e TMP_625 u1) in (getl O TMP_624 TMP_626)))))) 
-in (let TMP_628 \def (ex2 C TMP_622 TMP_627) in (let TMP_632 \def (\lambda 
-(_: nat).(let TMP_629 \def (Flat f) in (let TMP_630 \def (clen c) in (let 
-TMP_631 \def (s TMP_629 TMP_630) in (eq nat O TMP_631))))) in (let TMP_635 
-\def (\lambda (_: nat).(let TMP_633 \def (Bind b) in (let TMP_634 \def (Bind 
-b) in (eq K TMP_633 TMP_634)))) in (let TMP_636 \def (\lambda (_: nat).(eq T 
-u1 u1)) in (let TMP_639 \def (\lambda (n: nat).(let TMP_637 \def (CSort x0) 
-in (let TMP_638 \def (CSort n) in (eq C TMP_637 TMP_638)))) in (let TMP_640 
-\def (ex4 nat TMP_632 TMP_635 TMP_636 TMP_639) in (let TMP_644 \def (\lambda 
-(_: nat).(let TMP_641 \def (Flat f) in (let TMP_642 \def (clen c) in (let 
-TMP_643 \def (s TMP_641 TMP_642) in (eq nat O TMP_643))))) in (let TMP_647 
-\def (\lambda (_: nat).(let TMP_645 \def (Bind b) in (let TMP_646 \def (Bind 
-b) in (eq K TMP_645 TMP_646)))) in (let TMP_648 \def (\lambda (_: nat).(eq T 
-u1 u1)) in (let TMP_651 \def (\lambda (n: nat).(let TMP_649 \def (CSort x0) 
-in (let TMP_650 \def (CSort n) in (eq C TMP_649 TMP_650)))) in (let TMP_652 
-\def (Bind b) in (let TMP_653 \def (refl_equal K TMP_652) in (let TMP_654 
-\def (refl_equal T u1) in (let TMP_655 \def (CSort x0) in (let TMP_656 \def 
-(refl_equal C TMP_655) in (let TMP_657 \def (ex4_intro nat TMP_644 TMP_647 
-TMP_648 TMP_651 x0 H4 TMP_653 TMP_654 TMP_656) in (let TMP_658 \def 
-(or_intror TMP_628 TMP_640 TMP_657) in (let TMP_659 \def (eq_ind_r K TMP_597 
-TMP_618 TMP_658 k H5) in (let TMP_660 \def (eq_ind T u1 TMP_596 TMP_659 u2 
-H6) in (eq_ind_r C TMP_556 TMP_575 TMP_660 c2 
-H7)))))))))))))))))))))))))))))))) in (ex4_ind nat TMP_531 TMP_533 TMP_534 
-TMP_536 TMP_555 TMP_661 H3)))))))))))))))) in (or_ind TMP_421 TMP_429 TMP_448 
-TMP_529 TMP_662 H2)))))))))))))))))))))))))))))))))) in (let TMP_664 \def 
-(CTail k u1 c) in (let TMP_665 \def (CHead TMP_664 k0 t) in (let TMP_666 \def 
-(Bind b) in (let TMP_667 \def (CHead c2 TMP_666 u2) in (let TMP_668 \def 
-(getl_gen_O TMP_665 TMP_667 H0) in (K_ind TMP_262 TMP_404 TMP_663 k0 
-TMP_668)))))))))) in (let TMP_1085 \def (\lambda (n: nat).(\lambda (H0: 
-(((getl n (CHead (CTail k u1 c) k0 t) (CHead c2 (Bind b) u2)) \to (or (ex2 C 
-(\lambda (e: C).(eq C c2 (CTail k u1 e))) (\lambda (e: C).(getl n (CHead c k0 
-t) (CHead e (Bind b) u2)))) (ex4 nat (\lambda (_: nat).(eq nat n (s k0 (clen 
-c)))) (\lambda (_: nat).(eq K k (Bind b))) (\lambda (_: nat).(eq T u1 u2)) 
-(\lambda (n0: nat).(eq C c2 (CSort n0)))))))).(\lambda (H1: (getl (S n) 
-(CHead (CTail k u1 c) k0 t) (CHead c2 (Bind b) u2))).(let TMP_670 \def (r k0 
-n) in (let TMP_671 \def (CTail k u1 c) in (let TMP_672 \def (Bind b) in (let 
-TMP_673 \def (CHead c2 TMP_672 u2) in (let TMP_674 \def (getl_gen_S k0 
-TMP_671 TMP_673 t n H1) in (let H_x \def (H TMP_670 TMP_674) in (let H2 \def 
-H_x in (let TMP_676 \def (\lambda (e: C).(let TMP_675 \def (CTail k u1 e) in 
-(eq C c2 TMP_675))) in (let TMP_680 \def (\lambda (e: C).(let TMP_677 \def (r 
-k0 n) in (let TMP_678 \def (Bind b) in (let TMP_679 \def (CHead e TMP_678 u2) 
-in (getl TMP_677 c TMP_679))))) in (let TMP_681 \def (ex2 C TMP_676 TMP_680) 
-in (let TMP_684 \def (\lambda (_: nat).(let TMP_682 \def (r k0 n) in (let 
-TMP_683 \def (clen c) in (eq nat TMP_682 TMP_683)))) in (let TMP_686 \def 
-(\lambda (_: nat).(let TMP_685 \def (Bind b) in (eq K k TMP_685))) in (let 
-TMP_687 \def (\lambda (_: nat).(eq T u1 u2)) in (let TMP_689 \def (\lambda 
-(n0: nat).(let TMP_688 \def (CSort n0) in (eq C c2 TMP_688))) in (let TMP_690 
-\def (ex4 nat TMP_684 TMP_686 TMP_687 TMP_689) in (let TMP_692 \def (\lambda 
-(e: C).(let TMP_691 \def (CTail k u1 e) in (eq C c2 TMP_691))) in (let 
-TMP_697 \def (\lambda (e: C).(let TMP_693 \def (S n) in (let TMP_694 \def 
-(CHead c k0 t) in (let TMP_695 \def (Bind b) in (let TMP_696 \def (CHead e 
-TMP_695 u2) in (getl TMP_693 TMP_694 TMP_696)))))) in (let TMP_698 \def (ex2 
-C TMP_692 TMP_697) in (let TMP_702 \def (\lambda (_: nat).(let TMP_699 \def 
-(S n) in (let TMP_700 \def (clen c) in (let TMP_701 \def (s k0 TMP_700) in 
-(eq nat TMP_699 TMP_701))))) in (let TMP_704 \def (\lambda (_: nat).(let 
-TMP_703 \def (Bind b) in (eq K k TMP_703))) in (let TMP_705 \def (\lambda (_: 
-nat).(eq T u1 u2)) in (let TMP_707 \def (\lambda (n0: nat).(let TMP_706 \def 
-(CSort n0) in (eq C c2 TMP_706))) in (let TMP_708 \def (ex4 nat TMP_702 
-TMP_704 TMP_705 TMP_707) in (let TMP_709 \def (or TMP_698 TMP_708) in (let 
-TMP_819 \def (\lambda (H3: (ex2 C (\lambda (e: C).(eq C c2 (CTail k u1 e))) 
-(\lambda (e: C).(getl (r k0 n) c (CHead e (Bind b) u2))))).(let TMP_711 \def 
-(\lambda (e: C).(let TMP_710 \def (CTail k u1 e) in (eq C c2 TMP_710))) in 
-(let TMP_715 \def (\lambda (e: C).(let TMP_712 \def (r k0 n) in (let TMP_713 
-\def (Bind b) in (let TMP_714 \def (CHead e TMP_713 u2) in (getl TMP_712 c 
-TMP_714))))) in (let TMP_717 \def (\lambda (e: C).(let TMP_716 \def (CTail k 
-u1 e) in (eq C c2 TMP_716))) in (let TMP_722 \def (\lambda (e: C).(let 
-TMP_718 \def (S n) in (let TMP_719 \def (CHead c k0 t) in (let TMP_720 \def 
-(Bind b) in (let TMP_721 \def (CHead e TMP_720 u2) in (getl TMP_718 TMP_719 
-TMP_721)))))) in (let TMP_723 \def (ex2 C TMP_717 TMP_722) in (let TMP_727 
-\def (\lambda (_: nat).(let TMP_724 \def (S n) in (let TMP_725 \def (clen c) 
-in (let TMP_726 \def (s k0 TMP_725) in (eq nat TMP_724 TMP_726))))) in (let 
-TMP_729 \def (\lambda (_: nat).(let TMP_728 \def (Bind b) in (eq K k 
-TMP_728))) in (let TMP_730 \def (\lambda (_: nat).(eq T u1 u2)) in (let 
-TMP_732 \def (\lambda (n0: nat).(let TMP_731 \def (CSort n0) in (eq C c2 
-TMP_731))) in (let TMP_733 \def (ex4 nat TMP_727 TMP_729 TMP_730 TMP_732) in 
-(let TMP_734 \def (or TMP_723 TMP_733) in (let TMP_818 \def (\lambda (x: 
-C).(\lambda (H4: (eq C c2 (CTail k u1 x))).(\lambda (H5: (getl (r k0 n) c 
-(CHead x (Bind b) u2))).(let TMP_739 \def (\lambda (c0: C).(let TMP_735 \def 
-(r k0 n) in (let TMP_736 \def (CTail k u1 c) in (let TMP_737 \def (Bind b) in 
-(let TMP_738 \def (CHead c0 TMP_737 u2) in (getl TMP_735 TMP_736 
-TMP_738)))))) in (let TMP_740 \def (CTail k u1 c) in (let TMP_741 \def (Bind 
-b) in (let TMP_742 \def (CHead c2 TMP_741 u2) in (let TMP_743 \def 
-(getl_gen_S k0 TMP_740 TMP_742 t n H1) in (let TMP_744 \def (CTail k u1 x) in 
-(let H6 \def (eq_ind C c2 TMP_739 TMP_743 TMP_744 H4) in (let TMP_761 \def 
+(CHead e (Bind b) u2))))).(ex2_ind C (\lambda (e: C).(eq C c2 (CTail k u1 
+e))) (\lambda (e: C).(getl O c (CHead e (Bind b) u2))) (or (ex2 C (\lambda 
+(e: C).(eq C c2 (CTail k u1 e))) (\lambda (e: C).(getl O (CHead c (Flat f) t) 
+(CHead e (Bind b) u2)))) (ex4 nat (\lambda (_: nat).(eq nat O (s (Flat f) 
+(clen c)))) (\lambda (_: nat).(eq K k (Bind b))) (\lambda (_: nat).(eq T u1 
+u2)) (\lambda (n: nat).(eq C c2 (CSort n))))) (\lambda (x: C).(\lambda (H4: 
+(eq C c2 (CTail k u1 x))).(\lambda (H5: (getl O c (CHead x (Bind b) 
+u2))).(eq_ind_r C (CTail k u1 x) (\lambda (c0: C).(or (ex2 C (\lambda (e: 
+C).(eq C c0 (CTail k u1 e))) (\lambda (e: C).(getl O (CHead c (Flat f) t) 
+(CHead e (Bind b) u2)))) (ex4 nat (\lambda (_: nat).(eq nat O (s (Flat f) 
+(clen c)))) (\lambda (_: nat).(eq K k (Bind b))) (\lambda (_: nat).(eq T u1 
+u2)) (\lambda (n: nat).(eq C c0 (CSort n)))))) (or_introl (ex2 C (\lambda (e: 
+C).(eq C (CTail k u1 x) (CTail k u1 e))) (\lambda (e: C).(getl O (CHead c 
+(Flat f) t) (CHead e (Bind b) u2)))) (ex4 nat (\lambda (_: nat).(eq nat O (s 
+(Flat f) (clen c)))) (\lambda (_: nat).(eq K k (Bind b))) (\lambda (_: 
+nat).(eq T u1 u2)) (\lambda (n: nat).(eq C (CTail k u1 x) (CSort n)))) 
+(ex_intro2 C (\lambda (e: C).(eq C (CTail k u1 x) (CTail k u1 e))) (\lambda 
+(e: C).(getl O (CHead c (Flat f) t) (CHead e (Bind b) u2))) x (refl_equal C 
+(CTail k u1 x)) (getl_flat c (CHead x (Bind b) u2) O H5 f t))) c2 H4)))) H3)) 
+(\lambda (H3: (ex4 nat (\lambda (_: nat).(eq nat O (clen c))) (\lambda (_: 
+nat).(eq K k (Bind b))) (\lambda (_: nat).(eq T u1 u2)) (\lambda (n: nat).(eq 
+C c2 (CSort n))))).(ex4_ind nat (\lambda (_: nat).(eq nat O (clen c))) 
+(\lambda (_: nat).(eq K k (Bind b))) (\lambda (_: nat).(eq T u1 u2)) (\lambda 
+(n: nat).(eq C c2 (CSort n))) (or (ex2 C (\lambda (e: C).(eq C c2 (CTail k u1 
+e))) (\lambda (e: C).(getl O (CHead c (Flat f) t) (CHead e (Bind b) u2)))) 
+(ex4 nat (\lambda (_: nat).(eq nat O (s (Flat f) (clen c)))) (\lambda (_: 
+nat).(eq K k (Bind b))) (\lambda (_: nat).(eq T u1 u2)) (\lambda (n: nat).(eq 
+C c2 (CSort n))))) (\lambda (x0: nat).(\lambda (H4: (eq nat O (clen 
+c))).(\lambda (H5: (eq K k (Bind b))).(\lambda (H6: (eq T u1 u2)).(\lambda 
+(H7: (eq C c2 (CSort x0))).(eq_ind_r C (CSort x0) (\lambda (c0: C).(or (ex2 C 
+(\lambda (e: C).(eq C c0 (CTail k u1 e))) (\lambda (e: C).(getl O (CHead c 
+(Flat f) t) (CHead e (Bind b) u2)))) (ex4 nat (\lambda (_: nat).(eq nat O (s 
+(Flat f) (clen c)))) (\lambda (_: nat).(eq K k (Bind b))) (\lambda (_: 
+nat).(eq T u1 u2)) (\lambda (n: nat).(eq C c0 (CSort n)))))) (eq_ind T u1 
+(\lambda (t0: T).(or (ex2 C (\lambda (e: C).(eq C (CSort x0) (CTail k u1 e))) 
+(\lambda (e: C).(getl O (CHead c (Flat f) t) (CHead e (Bind b) t0)))) (ex4 
+nat (\lambda (_: nat).(eq nat O (s (Flat f) (clen c)))) (\lambda (_: nat).(eq 
+K k (Bind b))) (\lambda (_: nat).(eq T u1 t0)) (\lambda (n: nat).(eq C (CSort 
+x0) (CSort n)))))) (eq_ind_r K (Bind b) (\lambda (k1: K).(or (ex2 C (\lambda 
+(e: C).(eq C (CSort x0) (CTail k1 u1 e))) (\lambda (e: C).(getl O (CHead c 
+(Flat f) t) (CHead e (Bind b) u1)))) (ex4 nat (\lambda (_: nat).(eq nat O (s 
+(Flat f) (clen c)))) (\lambda (_: nat).(eq K k1 (Bind b))) (\lambda (_: 
+nat).(eq T u1 u1)) (\lambda (n: nat).(eq C (CSort x0) (CSort n)))))) 
+(or_intror (ex2 C (\lambda (e: C).(eq C (CSort x0) (CTail (Bind b) u1 e))) 
+(\lambda (e: C).(getl O (CHead c (Flat f) t) (CHead e (Bind b) u1)))) (ex4 
+nat (\lambda (_: nat).(eq nat O (s (Flat f) (clen c)))) (\lambda (_: nat).(eq 
+K (Bind b) (Bind b))) (\lambda (_: nat).(eq T u1 u1)) (\lambda (n: nat).(eq C 
+(CSort x0) (CSort n)))) (ex4_intro nat (\lambda (_: nat).(eq nat O (s (Flat 
+f) (clen c)))) (\lambda (_: nat).(eq K (Bind b) (Bind b))) (\lambda (_: 
+nat).(eq T u1 u1)) (\lambda (n: nat).(eq C (CSort x0) (CSort n))) x0 H4 
+(refl_equal K (Bind b)) (refl_equal T u1) (refl_equal C (CSort x0)))) k H5) 
+u2 H6) c2 H7)))))) H3)) H2)))) k0 (getl_gen_O (CHead (CTail k u1 c) k0 t) 
+(CHead c2 (Bind b) u2) H0))) (\lambda (n: nat).(\lambda (H0: (((getl n (CHead 
+(CTail k u1 c) k0 t) (CHead c2 (Bind b) u2)) \to (or (ex2 C (\lambda (e: 
+C).(eq C c2 (CTail k u1 e))) (\lambda (e: C).(getl n (CHead c k0 t) (CHead e 
+(Bind b) u2)))) (ex4 nat (\lambda (_: nat).(eq nat n (s k0 (clen c)))) 
+(\lambda (_: nat).(eq K k (Bind b))) (\lambda (_: nat).(eq T u1 u2)) (\lambda 
+(n0: nat).(eq C c2 (CSort n0)))))))).(\lambda (H1: (getl (S n) (CHead (CTail 
+k u1 c) k0 t) (CHead c2 (Bind b) u2))).(let H_x \def (H (r k0 n) (getl_gen_S 
+k0 (CTail k u1 c) (CHead c2 (Bind b) u2) t n H1)) in (let H2 \def H_x in 
+(or_ind (ex2 C (\lambda (e: C).(eq C c2 (CTail k u1 e))) (\lambda (e: 
+C).(getl (r k0 n) c (CHead e (Bind b) u2)))) (ex4 nat (\lambda (_: nat).(eq 
+nat (r k0 n) (clen c))) (\lambda (_: nat).(eq K k (Bind b))) (\lambda (_: 
+nat).(eq T u1 u2)) (\lambda (n0: nat).(eq C c2 (CSort n0)))) (or (ex2 C 
+(\lambda (e: C).(eq C c2 (CTail k u1 e))) (\lambda (e: C).(getl (S n) (CHead 
+c k0 t) (CHead e (Bind b) u2)))) (ex4 nat (\lambda (_: nat).(eq nat (S n) (s 
+k0 (clen c)))) (\lambda (_: nat).(eq K k (Bind b))) (\lambda (_: nat).(eq T 
+u1 u2)) (\lambda (n0: nat).(eq C c2 (CSort n0))))) (\lambda (H3: (ex2 C 
+(\lambda (e: C).(eq C c2 (CTail k u1 e))) (\lambda (e: C).(getl (r k0 n) c 
+(CHead e (Bind b) u2))))).(ex2_ind C (\lambda (e: C).(eq C c2 (CTail k u1 
+e))) (\lambda (e: C).(getl (r k0 n) c (CHead e (Bind b) u2))) (or (ex2 C 
+(\lambda (e: C).(eq C c2 (CTail k u1 e))) (\lambda (e: C).(getl (S n) (CHead 
+c k0 t) (CHead e (Bind b) u2)))) (ex4 nat (\lambda (_: nat).(eq nat (S n) (s 
+k0 (clen c)))) (\lambda (_: nat).(eq K k (Bind b))) (\lambda (_: nat).(eq T 
+u1 u2)) (\lambda (n0: nat).(eq C c2 (CSort n0))))) (\lambda (x: C).(\lambda 
+(H4: (eq C c2 (CTail k u1 x))).(\lambda (H5: (getl (r k0 n) c (CHead x (Bind 
+b) u2))).(let H6 \def (eq_ind C c2 (\lambda (c0: C).(getl (r k0 n) (CTail k 
+u1 c) (CHead c0 (Bind b) u2))) (getl_gen_S k0 (CTail k u1 c) (CHead c2 (Bind 
+b) u2) t n H1) (CTail k u1 x) H4) in (let H7 \def (eq_ind C c2 (\lambda (c0: 
+C).((getl n (CHead (CTail k u1 c) k0 t) (CHead c0 (Bind b) u2)) \to (or (ex2 
+C (\lambda (e: C).(eq C c0 (CTail k u1 e))) (\lambda (e: C).(getl n (CHead c 
+k0 t) (CHead e (Bind b) u2)))) (ex4 nat (\lambda (_: nat).(eq nat n (s k0 
+(clen c)))) (\lambda (_: nat).(eq K k (Bind b))) (\lambda (_: nat).(eq T u1 
+u2)) (\lambda (n0: nat).(eq C c0 (CSort n0))))))) H0 (CTail k u1 x) H4) in 
+(eq_ind_r C (CTail k u1 x) (\lambda (c0: C).(or (ex2 C (\lambda (e: C).(eq C 
+c0 (CTail k u1 e))) (\lambda (e: C).(getl (S n) (CHead c k0 t) (CHead e (Bind 
+b) u2)))) (ex4 nat (\lambda (_: nat).(eq nat (S n) (s k0 (clen c)))) (\lambda 
+(_: nat).(eq K k (Bind b))) (\lambda (_: nat).(eq T u1 u2)) (\lambda (n0: 
+nat).(eq C c0 (CSort n0)))))) (or_introl (ex2 C (\lambda (e: C).(eq C (CTail 
+k u1 x) (CTail k u1 e))) (\lambda (e: C).(getl (S n) (CHead c k0 t) (CHead e 
+(Bind b) u2)))) (ex4 nat (\lambda (_: nat).(eq nat (S n) (s k0 (clen c)))) 
+(\lambda (_: nat).(eq K k (Bind b))) (\lambda (_: nat).(eq T u1 u2)) (\lambda 
+(n0: nat).(eq C (CTail k u1 x) (CSort n0)))) (ex_intro2 C (\lambda (e: C).(eq 
+C (CTail k u1 x) (CTail k u1 e))) (\lambda (e: C).(getl (S n) (CHead c k0 t) 
+(CHead e (Bind b) u2))) x (refl_equal C (CTail k u1 x)) (getl_head k0 n c 
+(CHead x (Bind b) u2) H5 t))) c2 H4)))))) H3)) (\lambda (H3: (ex4 nat 
+(\lambda (_: nat).(eq nat (r k0 n) (clen c))) (\lambda (_: nat).(eq K k (Bind 
+b))) (\lambda (_: nat).(eq T u1 u2)) (\lambda (n0: nat).(eq C c2 (CSort 
+n0))))).(ex4_ind nat (\lambda (_: nat).(eq nat (r k0 n) (clen c))) (\lambda 
+(_: nat).(eq K k (Bind b))) (\lambda (_: nat).(eq T u1 u2)) (\lambda (n0: 
+nat).(eq C c2 (CSort n0))) (or (ex2 C (\lambda (e: C).(eq C c2 (CTail k u1 
+e))) (\lambda (e: C).(getl (S n) (CHead c k0 t) (CHead e (Bind b) u2)))) (ex4 
+nat (\lambda (_: nat).(eq nat (S n) (s k0 (clen c)))) (\lambda (_: nat).(eq K 
+k (Bind b))) (\lambda (_: nat).(eq T u1 u2)) (\lambda (n0: nat).(eq C c2 
+(CSort n0))))) (\lambda (x0: nat).(\lambda (H4: (eq nat (r k0 n) (clen 
+c))).(\lambda (H5: (eq K k (Bind b))).(\lambda (H6: (eq T u1 u2)).(\lambda 
+(H7: (eq C c2 (CSort x0))).(let H8 \def (eq_ind C c2 (\lambda (c0: C).(getl 
+(r k0 n) (CTail k u1 c) (CHead c0 (Bind b) u2))) (getl_gen_S k0 (CTail k u1 
+c) (CHead c2 (Bind b) u2) t n H1) (CSort x0) H7) in (let H9 \def (eq_ind C c2 
 (\lambda (c0: C).((getl n (CHead (CTail k u1 c) k0 t) (CHead c0 (Bind b) u2)) 
-\to (let TMP_746 \def (\lambda (e: C).(let TMP_745 \def (CTail k u1 e) in (eq 
-C c0 TMP_745))) in (let TMP_750 \def (\lambda (e: C).(let TMP_747 \def (CHead 
-c k0 t) in (let TMP_748 \def (Bind b) in (let TMP_749 \def (CHead e TMP_748 
-u2) in (getl n TMP_747 TMP_749))))) in (let TMP_751 \def (ex2 C TMP_746 
-TMP_750) in (let TMP_754 \def (\lambda (_: nat).(let TMP_752 \def (clen c) in 
-(let TMP_753 \def (s k0 TMP_752) in (eq nat n TMP_753)))) in (let TMP_756 
-\def (\lambda (_: nat).(let TMP_755 \def (Bind b) in (eq K k TMP_755))) in 
-(let TMP_757 \def (\lambda (_: nat).(eq T u1 u2)) in (let TMP_759 \def 
-(\lambda (n0: nat).(let TMP_758 \def (CSort n0) in (eq C c0 TMP_758))) in 
-(let TMP_760 \def (ex4 nat TMP_754 TMP_756 TMP_757 TMP_759) in (or TMP_751 
-TMP_760))))))))))) in (let TMP_762 \def (CTail k u1 x) in (let H7 \def 
-(eq_ind C c2 TMP_761 H0 TMP_762 H4) in (let TMP_763 \def (CTail k u1 x) in 
-(let TMP_782 \def (\lambda (c0: C).(let TMP_765 \def (\lambda (e: C).(let 
-TMP_764 \def (CTail k u1 e) in (eq C c0 TMP_764))) in (let TMP_770 \def 
-(\lambda (e: C).(let TMP_766 \def (S n) in (let TMP_767 \def (CHead c k0 t) 
-in (let TMP_768 \def (Bind b) in (let TMP_769 \def (CHead e TMP_768 u2) in 
-(getl TMP_766 TMP_767 TMP_769)))))) in (let TMP_771 \def (ex2 C TMP_765 
-TMP_770) in (let TMP_775 \def (\lambda (_: nat).(let TMP_772 \def (S n) in 
-(let TMP_773 \def (clen c) in (let TMP_774 \def (s k0 TMP_773) in (eq nat 
-TMP_772 TMP_774))))) in (let TMP_777 \def (\lambda (_: nat).(let TMP_776 \def 
-(Bind b) in (eq K k TMP_776))) in (let TMP_778 \def (\lambda (_: nat).(eq T 
-u1 u2)) in (let TMP_780 \def (\lambda (n0: nat).(let TMP_779 \def (CSort n0) 
-in (eq C c0 TMP_779))) in (let TMP_781 \def (ex4 nat TMP_775 TMP_777 TMP_778 
-TMP_780) in (or TMP_771 TMP_781)))))))))) in (let TMP_785 \def (\lambda (e: 
-C).(let TMP_783 \def (CTail k u1 x) in (let TMP_784 \def (CTail k u1 e) in 
-(eq C TMP_783 TMP_784)))) in (let TMP_790 \def (\lambda (e: C).(let TMP_786 
-\def (S n) in (let TMP_787 \def (CHead c k0 t) in (let TMP_788 \def (Bind b) 
-in (let TMP_789 \def (CHead e TMP_788 u2) in (getl TMP_786 TMP_787 
-TMP_789)))))) in (let TMP_791 \def (ex2 C TMP_785 TMP_790) in (let TMP_795 
-\def (\lambda (_: nat).(let TMP_792 \def (S n) in (let TMP_793 \def (clen c) 
-in (let TMP_794 \def (s k0 TMP_793) in (eq nat TMP_792 TMP_794))))) in (let 
-TMP_797 \def (\lambda (_: nat).(let TMP_796 \def (Bind b) in (eq K k 
-TMP_796))) in (let TMP_798 \def (\lambda (_: nat).(eq T u1 u2)) in (let 
-TMP_801 \def (\lambda (n0: nat).(let TMP_799 \def (CTail k u1 x) in (let 
-TMP_800 \def (CSort n0) in (eq C TMP_799 TMP_800)))) in (let TMP_802 \def 
-(ex4 nat TMP_795 TMP_797 TMP_798 TMP_801) in (let TMP_805 \def (\lambda (e: 
-C).(let TMP_803 \def (CTail k u1 x) in (let TMP_804 \def (CTail k u1 e) in 
-(eq C TMP_803 TMP_804)))) in (let TMP_810 \def (\lambda (e: C).(let TMP_806 
-\def (S n) in (let TMP_807 \def (CHead c k0 t) in (let TMP_808 \def (Bind b) 
-in (let TMP_809 \def (CHead e TMP_808 u2) in (getl TMP_806 TMP_807 
-TMP_809)))))) in (let TMP_811 \def (CTail k u1 x) in (let TMP_812 \def 
-(refl_equal C TMP_811) in (let TMP_813 \def (Bind b) in (let TMP_814 \def 
-(CHead x TMP_813 u2) in (let TMP_815 \def (getl_head k0 n c TMP_814 H5 t) in 
-(let TMP_816 \def (ex_intro2 C TMP_805 TMP_810 x TMP_812 TMP_815) in (let 
-TMP_817 \def (or_introl TMP_791 TMP_802 TMP_816) in (eq_ind_r C TMP_763 
-TMP_782 TMP_817 c2 H4))))))))))))))))))))))))))))))))) in (ex2_ind C TMP_711 
-TMP_715 TMP_734 TMP_818 H3)))))))))))))) in (let TMP_1084 \def (\lambda (H3: 
-(ex4 nat (\lambda (_: nat).(eq nat (r k0 n) (clen c))) (\lambda (_: nat).(eq 
-K k (Bind b))) (\lambda (_: nat).(eq T u1 u2)) (\lambda (n0: nat).(eq C c2 
-(CSort n0))))).(let TMP_822 \def (\lambda (_: nat).(let TMP_820 \def (r k0 n) 
-in (let TMP_821 \def (clen c) in (eq nat TMP_820 TMP_821)))) in (let TMP_824 
-\def (\lambda (_: nat).(let TMP_823 \def (Bind b) in (eq K k TMP_823))) in 
-(let TMP_825 \def (\lambda (_: nat).(eq T u1 u2)) in (let TMP_827 \def 
-(\lambda (n0: nat).(let TMP_826 \def (CSort n0) in (eq C c2 TMP_826))) in 
-(let TMP_829 \def (\lambda (e: C).(let TMP_828 \def (CTail k u1 e) in (eq C 
-c2 TMP_828))) in (let TMP_834 \def (\lambda (e: C).(let TMP_830 \def (S n) in 
-(let TMP_831 \def (CHead c k0 t) in (let TMP_832 \def (Bind b) in (let 
-TMP_833 \def (CHead e TMP_832 u2) in (getl TMP_830 TMP_831 TMP_833)))))) in 
-(let TMP_835 \def (ex2 C TMP_829 TMP_834) in (let TMP_839 \def (\lambda (_: 
-nat).(let TMP_836 \def (S n) in (let TMP_837 \def (clen c) in (let TMP_838 
-\def (s k0 TMP_837) in (eq nat TMP_836 TMP_838))))) in (let TMP_841 \def 
-(\lambda (_: nat).(let TMP_840 \def (Bind b) in (eq K k TMP_840))) in (let 
-TMP_842 \def (\lambda (_: nat).(eq T u1 u2)) in (let TMP_844 \def (\lambda 
-(n0: nat).(let TMP_843 \def (CSort n0) in (eq C c2 TMP_843))) in (let TMP_845 
-\def (ex4 nat TMP_839 TMP_841 TMP_842 TMP_844) in (let TMP_846 \def (or 
-TMP_835 TMP_845) in (let TMP_1083 \def (\lambda (x0: nat).(\lambda (H4: (eq 
-nat (r k0 n) (clen c))).(\lambda (H5: (eq K k (Bind b))).(\lambda (H6: (eq T 
-u1 u2)).(\lambda (H7: (eq C c2 (CSort x0))).(let TMP_851 \def (\lambda (c0: 
-C).(let TMP_847 \def (r k0 n) in (let TMP_848 \def (CTail k u1 c) in (let 
-TMP_849 \def (Bind b) in (let TMP_850 \def (CHead c0 TMP_849 u2) in (getl 
-TMP_847 TMP_848 TMP_850)))))) in (let TMP_852 \def (CTail k u1 c) in (let 
-TMP_853 \def (Bind b) in (let TMP_854 \def (CHead c2 TMP_853 u2) in (let 
-TMP_855 \def (getl_gen_S k0 TMP_852 TMP_854 t n H1) in (let TMP_856 \def 
-(CSort x0) in (let H8 \def (eq_ind C c2 TMP_851 TMP_855 TMP_856 H7) in (let 
-TMP_873 \def (\lambda (c0: C).((getl n (CHead (CTail k u1 c) k0 t) (CHead c0 
-(Bind b) u2)) \to (let TMP_858 \def (\lambda (e: C).(let TMP_857 \def (CTail 
-k u1 e) in (eq C c0 TMP_857))) in (let TMP_862 \def (\lambda (e: C).(let 
-TMP_859 \def (CHead c k0 t) in (let TMP_860 \def (Bind b) in (let TMP_861 
-\def (CHead e TMP_860 u2) in (getl n TMP_859 TMP_861))))) in (let TMP_863 
-\def (ex2 C TMP_858 TMP_862) in (let TMP_866 \def (\lambda (_: nat).(let 
-TMP_864 \def (clen c) in (let TMP_865 \def (s k0 TMP_864) in (eq nat n 
-TMP_865)))) in (let TMP_868 \def (\lambda (_: nat).(let TMP_867 \def (Bind b) 
-in (eq K k TMP_867))) in (let TMP_869 \def (\lambda (_: nat).(eq T u1 u2)) in 
-(let TMP_871 \def (\lambda (n0: nat).(let TMP_870 \def (CSort n0) in (eq C c0 
-TMP_870))) in (let TMP_872 \def (ex4 nat TMP_866 TMP_868 TMP_869 TMP_871) in 
-(or TMP_863 TMP_872))))))))))) in (let TMP_874 \def (CSort x0) in (let H9 
-\def (eq_ind C c2 TMP_873 H0 TMP_874 H7) in (let TMP_875 \def (CSort x0) in 
-(let TMP_894 \def (\lambda (c0: C).(let TMP_877 \def (\lambda (e: C).(let 
-TMP_876 \def (CTail k u1 e) in (eq C c0 TMP_876))) in (let TMP_882 \def 
-(\lambda (e: C).(let TMP_878 \def (S n) in (let TMP_879 \def (CHead c k0 t) 
-in (let TMP_880 \def (Bind b) in (let TMP_881 \def (CHead e TMP_880 u2) in 
-(getl TMP_878 TMP_879 TMP_881)))))) in (let TMP_883 \def (ex2 C TMP_877 
-TMP_882) in (let TMP_887 \def (\lambda (_: nat).(let TMP_884 \def (S n) in 
-(let TMP_885 \def (clen c) in (let TMP_886 \def (s k0 TMP_885) in (eq nat 
-TMP_884 TMP_886))))) in (let TMP_889 \def (\lambda (_: nat).(let TMP_888 \def 
-(Bind b) in (eq K k TMP_888))) in (let TMP_890 \def (\lambda (_: nat).(eq T 
-u1 u2)) in (let TMP_892 \def (\lambda (n0: nat).(let TMP_891 \def (CSort n0) 
-in (eq C c0 TMP_891))) in (let TMP_893 \def (ex4 nat TMP_887 TMP_889 TMP_890 
-TMP_892) in (or TMP_883 TMP_893)))))))))) in (let TMP_913 \def (\lambda (t0: 
-T).((getl n (CHead (CTail k u1 c) k0 t) (CHead (CSort x0) (Bind b) t0)) \to 
-(let TMP_897 \def (\lambda (e: C).(let TMP_895 \def (CSort x0) in (let 
-TMP_896 \def (CTail k u1 e) in (eq C TMP_895 TMP_896)))) in (let TMP_901 \def 
-(\lambda (e: C).(let TMP_898 \def (CHead c k0 t) in (let TMP_899 \def (Bind 
-b) in (let TMP_900 \def (CHead e TMP_899 t0) in (getl n TMP_898 TMP_900))))) 
-in (let TMP_902 \def (ex2 C TMP_897 TMP_901) in (let TMP_905 \def (\lambda 
-(_: nat).(let TMP_903 \def (clen c) in (let TMP_904 \def (s k0 TMP_903) in 
-(eq nat n TMP_904)))) in (let TMP_907 \def (\lambda (_: nat).(let TMP_906 
-\def (Bind b) in (eq K k TMP_906))) in (let TMP_908 \def (\lambda (_: 
-nat).(eq T u1 t0)) in (let TMP_911 \def (\lambda (n0: nat).(let TMP_909 \def 
-(CSort x0) in (let TMP_910 \def (CSort n0) in (eq C TMP_909 TMP_910)))) in 
-(let TMP_912 \def (ex4 nat TMP_905 TMP_907 TMP_908 TMP_911) in (or TMP_902 
-TMP_912))))))))))) in (let H10 \def (eq_ind_r T u2 TMP_913 H9 u1 H6) in (let 
-TMP_919 \def (\lambda (t0: T).(let TMP_914 \def (r k0 n) in (let TMP_915 \def 
-(CTail k u1 c) in (let TMP_916 \def (CSort x0) in (let TMP_917 \def (Bind b) 
-in (let TMP_918 \def (CHead TMP_916 TMP_917 t0) in (getl TMP_914 TMP_915 
-TMP_918))))))) in (let H11 \def (eq_ind_r T u2 TMP_919 H8 u1 H6) in (let 
-TMP_940 \def (\lambda (t0: T).(let TMP_922 \def (\lambda (e: C).(let TMP_920 
-\def (CSort x0) in (let TMP_921 \def (CTail k u1 e) in (eq C TMP_920 
-TMP_921)))) in (let TMP_927 \def (\lambda (e: C).(let TMP_923 \def (S n) in 
-(let TMP_924 \def (CHead c k0 t) in (let TMP_925 \def (Bind b) in (let 
-TMP_926 \def (CHead e TMP_925 t0) in (getl TMP_923 TMP_924 TMP_926)))))) in 
-(let TMP_928 \def (ex2 C TMP_922 TMP_927) in (let TMP_932 \def (\lambda (_: 
-nat).(let TMP_929 \def (S n) in (let TMP_930 \def (clen c) in (let TMP_931 
-\def (s k0 TMP_930) in (eq nat TMP_929 TMP_931))))) in (let TMP_934 \def 
-(\lambda (_: nat).(let TMP_933 \def (Bind b) in (eq K k TMP_933))) in (let 
-TMP_935 \def (\lambda (_: nat).(eq T u1 t0)) in (let TMP_938 \def (\lambda 
-(n0: nat).(let TMP_936 \def (CSort x0) in (let TMP_937 \def (CSort n0) in (eq 
-C TMP_936 TMP_937)))) in (let TMP_939 \def (ex4 nat TMP_932 TMP_934 TMP_935 
-TMP_938) in (or TMP_928 TMP_939)))))))))) in (let TMP_959 \def (\lambda (k1: 
+\to (or (ex2 C (\lambda (e: C).(eq C c0 (CTail k u1 e))) (\lambda (e: 
+C).(getl n (CHead c k0 t) (CHead e (Bind b) u2)))) (ex4 nat (\lambda (_: 
+nat).(eq nat n (s k0 (clen c)))) (\lambda (_: nat).(eq K k (Bind b))) 
+(\lambda (_: nat).(eq T u1 u2)) (\lambda (n0: nat).(eq C c0 (CSort n0))))))) 
+H0 (CSort x0) H7) in (eq_ind_r C (CSort x0) (\lambda (c0: C).(or (ex2 C 
+(\lambda (e: C).(eq C c0 (CTail k u1 e))) (\lambda (e: C).(getl (S n) (CHead 
+c k0 t) (CHead e (Bind b) u2)))) (ex4 nat (\lambda (_: nat).(eq nat (S n) (s 
+k0 (clen c)))) (\lambda (_: nat).(eq K k (Bind b))) (\lambda (_: nat).(eq T 
+u1 u2)) (\lambda (n0: nat).(eq C c0 (CSort n0)))))) (let H10 \def (eq_ind_r T 
+u2 (\lambda (t0: T).((getl n (CHead (CTail k u1 c) k0 t) (CHead (CSort x0) 
+(Bind b) t0)) \to (or (ex2 C (\lambda (e: C).(eq C (CSort x0) (CTail k u1 
+e))) (\lambda (e: C).(getl n (CHead c k0 t) (CHead e (Bind b) t0)))) (ex4 nat 
+(\lambda (_: nat).(eq nat n (s k0 (clen c)))) (\lambda (_: nat).(eq K k (Bind 
+b))) (\lambda (_: nat).(eq T u1 t0)) (\lambda (n0: nat).(eq C (CSort x0) 
+(CSort n0))))))) H9 u1 H6) in (let H11 \def (eq_ind_r T u2 (\lambda (t0: 
+T).(getl (r k0 n) (CTail k u1 c) (CHead (CSort x0) (Bind b) t0))) H8 u1 H6) 
+in (eq_ind T u1 (\lambda (t0: T).(or (ex2 C (\lambda (e: C).(eq C (CSort x0) 
+(CTail k u1 e))) (\lambda (e: C).(getl (S n) (CHead c k0 t) (CHead e (Bind b) 
+t0)))) (ex4 nat (\lambda (_: nat).(eq nat (S n) (s k0 (clen c)))) (\lambda 
+(_: nat).(eq K k (Bind b))) (\lambda (_: nat).(eq T u1 t0)) (\lambda (n0: 
+nat).(eq C (CSort x0) (CSort n0)))))) (let H12 \def (eq_ind K k (\lambda (k1: 
 K).((getl n (CHead (CTail k1 u1 c) k0 t) (CHead (CSort x0) (Bind b) u1)) \to 
-(let TMP_943 \def (\lambda (e: C).(let TMP_941 \def (CSort x0) in (let 
-TMP_942 \def (CTail k1 u1 e) in (eq C TMP_941 TMP_942)))) in (let TMP_947 
-\def (\lambda (e: C).(let TMP_944 \def (CHead c k0 t) in (let TMP_945 \def 
-(Bind b) in (let TMP_946 \def (CHead e TMP_945 u1) in (getl n TMP_944 
-TMP_946))))) in (let TMP_948 \def (ex2 C TMP_943 TMP_947) in (let TMP_951 
-\def (\lambda (_: nat).(let TMP_949 \def (clen c) in (let TMP_950 \def (s k0 
-TMP_949) in (eq nat n TMP_950)))) in (let TMP_953 \def (\lambda (_: nat).(let 
-TMP_952 \def (Bind b) in (eq K k1 TMP_952))) in (let TMP_954 \def (\lambda 
-(_: nat).(eq T u1 u1)) in (let TMP_957 \def (\lambda (n0: nat).(let TMP_955 
-\def (CSort x0) in (let TMP_956 \def (CSort n0) in (eq C TMP_955 TMP_956)))) 
-in (let TMP_958 \def (ex4 nat TMP_951 TMP_953 TMP_954 TMP_957) in (or TMP_948 
-TMP_958))))))))))) in (let TMP_960 \def (Bind b) in (let H12 \def (eq_ind K k 
-TMP_959 H10 TMP_960 H5) in (let TMP_966 \def (\lambda (k1: K).(let TMP_961 
-\def (r k0 n) in (let TMP_962 \def (CTail k1 u1 c) in (let TMP_963 \def 
-(CSort x0) in (let TMP_964 \def (Bind b) in (let TMP_965 \def (CHead TMP_963 
-TMP_964 u1) in (getl TMP_961 TMP_962 TMP_965))))))) in (let TMP_967 \def 
-(Bind b) in (let H13 \def (eq_ind K k TMP_966 H11 TMP_967 H5) in (let TMP_968 
-\def (Bind b) in (let TMP_989 \def (\lambda (k1: K).(let TMP_971 \def 
-(\lambda (e: C).(let TMP_969 \def (CSort x0) in (let TMP_970 \def (CTail k1 
-u1 e) in (eq C TMP_969 TMP_970)))) in (let TMP_976 \def (\lambda (e: C).(let 
-TMP_972 \def (S n) in (let TMP_973 \def (CHead c k0 t) in (let TMP_974 \def 
-(Bind b) in (let TMP_975 \def (CHead e TMP_974 u1) in (getl TMP_972 TMP_973 
-TMP_975)))))) in (let TMP_977 \def (ex2 C TMP_971 TMP_976) in (let TMP_981 
-\def (\lambda (_: nat).(let TMP_978 \def (S n) in (let TMP_979 \def (clen c) 
-in (let TMP_980 \def (s k0 TMP_979) in (eq nat TMP_978 TMP_980))))) in (let 
-TMP_983 \def (\lambda (_: nat).(let TMP_982 \def (Bind b) in (eq K k1 
-TMP_982))) in (let TMP_984 \def (\lambda (_: nat).(eq T u1 u1)) in (let 
-TMP_987 \def (\lambda (n0: nat).(let TMP_985 \def (CSort x0) in (let TMP_986 
-\def (CSort n0) in (eq C TMP_985 TMP_986)))) in (let TMP_988 \def (ex4 nat 
-TMP_981 TMP_983 TMP_984 TMP_987) in (or TMP_977 TMP_988)))))))))) in (let 
-TMP_990 \def (r k0 n) in (let TMP_1012 \def (\lambda (n0: nat).(let TMP_994 
-\def (\lambda (e: C).(let TMP_991 \def (CSort x0) in (let TMP_992 \def (Bind 
-b) in (let TMP_993 \def (CTail TMP_992 u1 e) in (eq C TMP_991 TMP_993))))) in 
-(let TMP_999 \def (\lambda (e: C).(let TMP_995 \def (S n) in (let TMP_996 
-\def (CHead c k0 t) in (let TMP_997 \def (Bind b) in (let TMP_998 \def (CHead 
-e TMP_997 u1) in (getl TMP_995 TMP_996 TMP_998)))))) in (let TMP_1000 \def 
-(ex2 C TMP_994 TMP_999) in (let TMP_1003 \def (\lambda (_: nat).(let TMP_1001 
-\def (S n) in (let TMP_1002 \def (s k0 n0) in (eq nat TMP_1001 TMP_1002)))) 
-in (let TMP_1006 \def (\lambda (_: nat).(let TMP_1004 \def (Bind b) in (let 
-TMP_1005 \def (Bind b) in (eq K TMP_1004 TMP_1005)))) in (let TMP_1007 \def 
-(\lambda (_: nat).(eq T u1 u1)) in (let TMP_1010 \def (\lambda (n1: nat).(let 
-TMP_1008 \def (CSort x0) in (let TMP_1009 \def (CSort n1) in (eq C TMP_1008 
-TMP_1009)))) in (let TMP_1011 \def (ex4 nat TMP_1003 TMP_1006 TMP_1007 
-TMP_1010) in (or TMP_1000 TMP_1011)))))))))) in (let TMP_1013 \def (S n) in 
-(let TMP_1034 \def (\lambda (n0: nat).(let TMP_1017 \def (\lambda (e: C).(let 
-TMP_1014 \def (CSort x0) in (let TMP_1015 \def (Bind b) in (let TMP_1016 \def 
-(CTail TMP_1015 u1 e) in (eq C TMP_1014 TMP_1016))))) in (let TMP_1022 \def 
-(\lambda (e: C).(let TMP_1018 \def (S n) in (let TMP_1019 \def (CHead c k0 t) 
-in (let TMP_1020 \def (Bind b) in (let TMP_1021 \def (CHead e TMP_1020 u1) in 
-(getl TMP_1018 TMP_1019 TMP_1021)))))) in (let TMP_1023 \def (ex2 C TMP_1017 
-TMP_1022) in (let TMP_1025 \def (\lambda (_: nat).(let TMP_1024 \def (S n) in 
-(eq nat TMP_1024 n0))) in (let TMP_1028 \def (\lambda (_: nat).(let TMP_1026 
-\def (Bind b) in (let TMP_1027 \def (Bind b) in (eq K TMP_1026 TMP_1027)))) 
-in (let TMP_1029 \def (\lambda (_: nat).(eq T u1 u1)) in (let TMP_1032 \def 
-(\lambda (n1: nat).(let TMP_1030 \def (CSort x0) in (let TMP_1031 \def (CSort 
-n1) in (eq C TMP_1030 TMP_1031)))) in (let TMP_1033 \def (ex4 nat TMP_1025 
-TMP_1028 TMP_1029 TMP_1032) in (or TMP_1023 TMP_1033)))))))))) in (let 
-TMP_1038 \def (\lambda (e: C).(let TMP_1035 \def (CSort x0) in (let TMP_1036 
-\def (Bind b) in (let TMP_1037 \def (CTail TMP_1036 u1 e) in (eq C TMP_1035 
-TMP_1037))))) in (let TMP_1043 \def (\lambda (e: C).(let TMP_1039 \def (S n) 
-in (let TMP_1040 \def (CHead c k0 t) in (let TMP_1041 \def (Bind b) in (let 
-TMP_1042 \def (CHead e TMP_1041 u1) in (getl TMP_1039 TMP_1040 TMP_1042)))))) 
-in (let TMP_1044 \def (ex2 C TMP_1038 TMP_1043) in (let TMP_1047 \def 
-(\lambda (_: nat).(let TMP_1045 \def (S n) in (let TMP_1046 \def (S n) in (eq 
-nat TMP_1045 TMP_1046)))) in (let TMP_1050 \def (\lambda (_: nat).(let 
-TMP_1048 \def (Bind b) in (let TMP_1049 \def (Bind b) in (eq K TMP_1048 
-TMP_1049)))) in (let TMP_1051 \def (\lambda (_: nat).(eq T u1 u1)) in (let 
-TMP_1054 \def (\lambda (n0: nat).(let TMP_1052 \def (CSort x0) in (let 
-TMP_1053 \def (CSort n0) in (eq C TMP_1052 TMP_1053)))) in (let TMP_1055 \def 
-(ex4 nat TMP_1047 TMP_1050 TMP_1051 TMP_1054) in (let TMP_1058 \def (\lambda 
-(_: nat).(let TMP_1056 \def (S n) in (let TMP_1057 \def (S n) in (eq nat 
-TMP_1056 TMP_1057)))) in (let TMP_1061 \def (\lambda (_: nat).(let TMP_1059 
-\def (Bind b) in (let TMP_1060 \def (Bind b) in (eq K TMP_1059 TMP_1060)))) 
-in (let TMP_1062 \def (\lambda (_: nat).(eq T u1 u1)) in (let TMP_1065 \def 
-(\lambda (n0: nat).(let TMP_1063 \def (CSort x0) in (let TMP_1064 \def (CSort 
-n0) in (eq C TMP_1063 TMP_1064)))) in (let TMP_1066 \def (S n) in (let 
-TMP_1067 \def (refl_equal nat TMP_1066) in (let TMP_1068 \def (Bind b) in 
-(let TMP_1069 \def (refl_equal K TMP_1068) in (let TMP_1070 \def (refl_equal 
-T u1) in (let TMP_1071 \def (CSort x0) in (let TMP_1072 \def (refl_equal C 
-TMP_1071) in (let TMP_1073 \def (ex4_intro nat TMP_1058 TMP_1061 TMP_1062 
-TMP_1065 x0 TMP_1067 TMP_1069 TMP_1070 TMP_1072) in (let TMP_1074 \def 
-(or_intror TMP_1044 TMP_1055 TMP_1073) in (let TMP_1075 \def (r k0 n) in (let 
-TMP_1076 \def (s k0 TMP_1075) in (let TMP_1077 \def (s_r k0 n) in (let 
-TMP_1078 \def (eq_ind_r nat TMP_1013 TMP_1034 TMP_1074 TMP_1076 TMP_1077) in 
-(let TMP_1079 \def (clen c) in (let TMP_1080 \def (eq_ind nat TMP_990 
-TMP_1012 TMP_1078 TMP_1079 H4) in (let TMP_1081 \def (eq_ind_r K TMP_968 
-TMP_989 TMP_1080 k H5) in (let TMP_1082 \def (eq_ind T u1 TMP_940 TMP_1081 u2 
-H6) in (eq_ind_r C TMP_875 TMP_894 TMP_1082 c2 
-H7)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) in 
-(ex4_ind nat TMP_822 TMP_824 TMP_825 TMP_827 TMP_846 TMP_1083 
-H3)))))))))))))))) in (or_ind TMP_681 TMP_690 TMP_709 TMP_819 TMP_1084 
-H2)))))))))))))))))))))))))))))) in (nat_ind TMP_245 TMP_669 TMP_1085 
-i))))))))) in (C_ind TMP_15 TMP_228 TMP_1086 c1))))))))).
+(or (ex2 C (\lambda (e: C).(eq C (CSort x0) (CTail k1 u1 e))) (\lambda (e: 
+C).(getl n (CHead c k0 t) (CHead e (Bind b) u1)))) (ex4 nat (\lambda (_: 
+nat).(eq nat n (s k0 (clen c)))) (\lambda (_: nat).(eq K k1 (Bind b))) 
+(\lambda (_: nat).(eq T u1 u1)) (\lambda (n0: nat).(eq C (CSort x0) (CSort 
+n0))))))) H10 (Bind b) H5) in (let H13 \def (eq_ind K k (\lambda (k1: 
+K).(getl (r k0 n) (CTail k1 u1 c) (CHead (CSort x0) (Bind b) u1))) H11 (Bind 
+b) H5) in (eq_ind_r K (Bind b) (\lambda (k1: K).(or (ex2 C (\lambda (e: 
+C).(eq C (CSort x0) (CTail k1 u1 e))) (\lambda (e: C).(getl (S n) (CHead c k0 
+t) (CHead e (Bind b) u1)))) (ex4 nat (\lambda (_: nat).(eq nat (S n) (s k0 
+(clen c)))) (\lambda (_: nat).(eq K k1 (Bind b))) (\lambda (_: nat).(eq T u1 
+u1)) (\lambda (n0: nat).(eq C (CSort x0) (CSort n0)))))) (eq_ind nat (r k0 n) 
+(\lambda (n0: nat).(or (ex2 C (\lambda (e: C).(eq C (CSort x0) (CTail (Bind 
+b) u1 e))) (\lambda (e: C).(getl (S n) (CHead c k0 t) (CHead e (Bind b) 
+u1)))) (ex4 nat (\lambda (_: nat).(eq nat (S n) (s k0 n0))) (\lambda (_: 
+nat).(eq K (Bind b) (Bind b))) (\lambda (_: nat).(eq T u1 u1)) (\lambda (n1: 
+nat).(eq C (CSort x0) (CSort n1)))))) (eq_ind_r nat (S n) (\lambda (n0: 
+nat).(or (ex2 C (\lambda (e: C).(eq C (CSort x0) (CTail (Bind b) u1 e))) 
+(\lambda (e: C).(getl (S n) (CHead c k0 t) (CHead e (Bind b) u1)))) (ex4 nat 
+(\lambda (_: nat).(eq nat (S n) n0)) (\lambda (_: nat).(eq K (Bind b) (Bind 
+b))) (\lambda (_: nat).(eq T u1 u1)) (\lambda (n1: nat).(eq C (CSort x0) 
+(CSort n1)))))) (or_intror (ex2 C (\lambda (e: C).(eq C (CSort x0) (CTail 
+(Bind b) u1 e))) (\lambda (e: C).(getl (S n) (CHead c k0 t) (CHead e (Bind b) 
+u1)))) (ex4 nat (\lambda (_: nat).(eq nat (S n) (S n))) (\lambda (_: nat).(eq 
+K (Bind b) (Bind b))) (\lambda (_: nat).(eq T u1 u1)) (\lambda (n0: nat).(eq 
+C (CSort x0) (CSort n0)))) (ex4_intro nat (\lambda (_: nat).(eq nat (S n) (S 
+n))) (\lambda (_: nat).(eq K (Bind b) (Bind b))) (\lambda (_: nat).(eq T u1 
+u1)) (\lambda (n0: nat).(eq C (CSort x0) (CSort n0))) x0 (refl_equal nat (S 
+n)) (refl_equal K (Bind b)) (refl_equal T u1) (refl_equal C (CSort x0)))) (s 
+k0 (r k0 n)) (s_r k0 n)) (clen c) H4) k H5))) u2 H6))) c2 H7)))))))) H3)) 
+H2)))))) i)))))) c1)))))).
 
index 37961cf69d8f28f6bb06b26b703021af8bbf47b7..dc687c9dd9cbe9037c33ee3144dc9e413721da84 100644 (file)
@@ -19,6 +19,6 @@ include "basic_1/cnt/defs.ma".
 let rec cnt_ind (P: (T \to Prop)) (f: (\forall (n: nat).(P (TSort n)))) (f0: 
 (\forall (t: T).((cnt t) \to ((P t) \to (\forall (k: K).(\forall (v: T).(P 
 (THead k v t)))))))) (t: T) (c: cnt t) on c: P t \def match c with [(cnt_sort 
-n) \Rightarrow (f n) | (cnt_head t0 c0 k v) \Rightarrow (let TMP_1 \def 
-((cnt_ind P f f0) t0 c0) in (f0 t0 c0 TMP_1 k v))].
+n) \Rightarrow (f n) | (cnt_head t0 c0 k v) \Rightarrow (f0 t0 c0 ((cnt_ind P 
+f f0) t0 c0) k v)].
 
index df42426cebbd66e004c9f21b85c002a3919eef90..3bdc08ee14f7977736eeda78b0b0695f20071513 100644 (file)
@@ -22,22 +22,13 @@ theorem cnt_lift:
  \forall (t: T).((cnt t) \to (\forall (i: nat).(\forall (d: nat).(cnt (lift i 
 d t)))))
 \def
- \lambda (t: T).(\lambda (H: (cnt t)).(let TMP_2 \def (\lambda (t0: 
-T).(\forall (i: nat).(\forall (d: nat).(let TMP_1 \def (lift i d t0) in (cnt 
-TMP_1))))) in (let TMP_9 \def (\lambda (n: nat).(\lambda (i: nat).(\lambda 
-(d: nat).(let TMP_3 \def (TSort n) in (let TMP_4 \def (\lambda (t0: T).(cnt 
-t0)) in (let TMP_5 \def (cnt_sort n) in (let TMP_6 \def (TSort n) in (let 
-TMP_7 \def (lift i d TMP_6) in (let TMP_8 \def (lift_sort n i d) in (eq_ind_r 
-T TMP_3 TMP_4 TMP_5 TMP_7 TMP_8)))))))))) in (let TMP_24 \def (\lambda (t0: 
+ \lambda (t: T).(\lambda (H: (cnt t)).(cnt_ind (\lambda (t0: T).(\forall (i: 
+nat).(\forall (d: nat).(cnt (lift i d t0))))) (\lambda (n: nat).(\lambda (i: 
+nat).(\lambda (d: nat).(eq_ind_r T (TSort n) (\lambda (t0: T).(cnt t0)) 
+(cnt_sort n) (lift i d (TSort n)) (lift_sort n i d))))) (\lambda (t0: 
 T).(\lambda (_: (cnt t0)).(\lambda (H1: ((\forall (i: nat).(\forall (d: 
 nat).(cnt (lift i d t0)))))).(\lambda (k: K).(\lambda (v: T).(\lambda (i: 
-nat).(\lambda (d: nat).(let TMP_10 \def (lift i d v) in (let TMP_11 \def (s k 
-d) in (let TMP_12 \def (lift i TMP_11 t0) in (let TMP_13 \def (THead k TMP_10 
-TMP_12) in (let TMP_14 \def (\lambda (t1: T).(cnt t1)) in (let TMP_15 \def (s 
-k d) in (let TMP_16 \def (lift i TMP_15 t0) in (let TMP_17 \def (s k d) in 
-(let TMP_18 \def (H1 i TMP_17) in (let TMP_19 \def (lift i d v) in (let 
-TMP_20 \def (cnt_head TMP_16 TMP_18 k TMP_19) in (let TMP_21 \def (THead k v 
-t0) in (let TMP_22 \def (lift i d TMP_21) in (let TMP_23 \def (lift_head k v 
-t0 i d) in (eq_ind_r T TMP_13 TMP_14 TMP_20 TMP_22 
-TMP_23)))))))))))))))))))))) in (cnt_ind TMP_2 TMP_9 TMP_24 t H))))).
+nat).(\lambda (d: nat).(eq_ind_r T (THead k (lift i d v) (lift i (s k d) t0)) 
+(\lambda (t1: T).(cnt t1)) (cnt_head (lift i (s k d) t0) (H1 i (s k d)) k 
+(lift i d v)) (lift i d (THead k v t0)) (lift_head k v t0 i d))))))))) t H)).
 
index 3307ed325525590e7a8bb618721f524f97d3f635..3edfe33a3d7f28702c6b8b34fa851b022b7caad6 100644 (file)
@@ -27,106 +27,79 @@ theorem csuba_arity:
 t a) \to (\forall (c2: C).((csuba g c1 c2) \to (arity g c2 t a)))))))
 \def
  \lambda (g: G).(\lambda (c1: C).(\lambda (t: T).(\lambda (a: A).(\lambda (H: 
-(arity g c1 t a)).(let TMP_1 \def (\lambda (c: C).(\lambda (t0: T).(\lambda 
-(a0: A).(\forall (c2: C).((csuba g c c2) \to (arity g c2 t0 a0)))))) in (let 
-TMP_2 \def (\lambda (c: C).(\lambda (n: nat).(\lambda (c2: C).(\lambda (_: 
-(csuba g c c2)).(arity_sort g c2 n))))) in (let TMP_11 \def (\lambda (c: 
+(arity g c1 t a)).(arity_ind g (\lambda (c: C).(\lambda (t0: T).(\lambda (a0: 
+A).(\forall (c2: C).((csuba g c c2) \to (arity g c2 t0 a0)))))) (\lambda (c: 
+C).(\lambda (n: nat).(\lambda (c2: C).(\lambda (_: (csuba g c 
+c2)).(arity_sort g c2 n))))) (\lambda (c: C).(\lambda (d: C).(\lambda (u: 
+T).(\lambda (i: nat).(\lambda (H0: (getl i c (CHead d (Bind Abbr) 
+u))).(\lambda (a0: A).(\lambda (_: (arity g d u a0)).(\lambda (H2: ((\forall 
+(c2: C).((csuba g d c2) \to (arity g c2 u a0))))).(\lambda (c2: C).(\lambda 
+(H3: (csuba g c c2)).(let H4 \def (csuba_getl_abbr g c d u i H0 c2 H3) in 
+(ex2_ind C (\lambda (d2: C).(getl i c2 (CHead d2 (Bind Abbr) u))) (\lambda 
+(d2: C).(csuba g d d2)) (arity g c2 (TLRef i) a0) (\lambda (x: C).(\lambda 
+(H5: (getl i c2 (CHead x (Bind Abbr) u))).(\lambda (H6: (csuba g d 
+x)).(arity_abbr g c2 x u i H5 a0 (H2 x H6))))) H4)))))))))))) (\lambda (c: 
 C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: nat).(\lambda (H0: (getl i c 
-(CHead d (Bind Abbr) u))).(\lambda (a0: A).(\lambda (_: (arity g d u 
-a0)).(\lambda (H2: ((\forall (c2: C).((csuba g d c2) \to (arity g c2 u 
-a0))))).(\lambda (c2: C).(\lambda (H3: (csuba g c c2)).(let H4 \def 
-(csuba_getl_abbr g c d u i H0 c2 H3) in (let TMP_5 \def (\lambda (d2: C).(let 
-TMP_3 \def (Bind Abbr) in (let TMP_4 \def (CHead d2 TMP_3 u) in (getl i c2 
-TMP_4)))) in (let TMP_6 \def (\lambda (d2: C).(csuba g d d2)) in (let TMP_7 
-\def (TLRef i) in (let TMP_8 \def (arity g c2 TMP_7 a0) in (let TMP_10 \def 
-(\lambda (x: C).(\lambda (H5: (getl i c2 (CHead x (Bind Abbr) u))).(\lambda 
-(H6: (csuba g d x)).(let TMP_9 \def (H2 x H6) in (arity_abbr g c2 x u i H5 a0 
-TMP_9))))) in (ex2_ind C TMP_5 TMP_6 TMP_8 TMP_10 H4))))))))))))))))) in (let 
-TMP_53 \def (\lambda (c: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: 
-nat).(\lambda (H0: (getl i c (CHead d (Bind Abst) u))).(\lambda (a0: 
-A).(\lambda (H1: (arity g d u (asucc g a0))).(\lambda (H2: ((\forall (c2: 
-C).((csuba g d c2) \to (arity g c2 u (asucc g a0)))))).(\lambda (c2: 
-C).(\lambda (H3: (csuba g c c2)).(let H4 \def (csuba_getl_abst g c d u i H0 
-c2 H3) in (let TMP_14 \def (\lambda (d2: C).(let TMP_12 \def (Bind Abst) in 
-(let TMP_13 \def (CHead d2 TMP_12 u) in (getl i c2 TMP_13)))) in (let TMP_15 
-\def (\lambda (d2: C).(csuba g d d2)) in (let TMP_16 \def (ex2 C TMP_14 
-TMP_15) in (let TMP_19 \def (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: 
-A).(let TMP_17 \def (Bind Abbr) in (let TMP_18 \def (CHead d2 TMP_17 u2) in 
-(getl i c2 TMP_18)))))) in (let TMP_20 \def (\lambda (d2: C).(\lambda (_: 
-T).(\lambda (_: A).(csuba g d d2)))) in (let TMP_22 \def (\lambda (_: 
-C).(\lambda (_: T).(\lambda (a1: A).(let TMP_21 \def (asucc g a1) in (arity g 
-d u TMP_21))))) in (let TMP_23 \def (\lambda (d2: C).(\lambda (u2: 
-T).(\lambda (a1: A).(arity g d2 u2 a1)))) in (let TMP_24 \def (ex4_3 C T A 
-TMP_19 TMP_20 TMP_22 TMP_23) in (let TMP_25 \def (TLRef i) in (let TMP_26 
-\def (arity g c2 TMP_25 a0) in (let TMP_35 \def (\lambda (H5: (ex2 C (\lambda 
-(d2: C).(getl i c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d 
-d2)))).(let TMP_29 \def (\lambda (d2: C).(let TMP_27 \def (Bind Abst) in (let 
-TMP_28 \def (CHead d2 TMP_27 u) in (getl i c2 TMP_28)))) in (let TMP_30 \def 
-(\lambda (d2: C).(csuba g d d2)) in (let TMP_31 \def (TLRef i) in (let TMP_32 
-\def (arity g c2 TMP_31 a0) in (let TMP_34 \def (\lambda (x: C).(\lambda (H6: 
-(getl i c2 (CHead x (Bind Abst) u))).(\lambda (H7: (csuba g d x)).(let TMP_33 
-\def (H2 x H7) in (arity_abst g c2 x u i H6 a0 TMP_33))))) in (ex2_ind C 
-TMP_29 TMP_30 TMP_32 TMP_34 H5))))))) in (let TMP_52 \def (\lambda (H5: 
-(ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(getl i c2 
-(CHead d2 (Bind Abbr) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: 
-A).(csuba g d d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a1: A).(arity 
-g d u (asucc g a1))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a1: 
-A).(arity g d2 u2 a1)))))).(let TMP_38 \def (\lambda (d2: C).(\lambda (u2: 
-T).(\lambda (_: A).(let TMP_36 \def (Bind Abbr) in (let TMP_37 \def (CHead d2 
-TMP_36 u2) in (getl i c2 TMP_37)))))) in (let TMP_39 \def (\lambda (d2: 
-C).(\lambda (_: T).(\lambda (_: A).(csuba g d d2)))) in (let TMP_41 \def 
-(\lambda (_: C).(\lambda (_: T).(\lambda (a1: A).(let TMP_40 \def (asucc g 
-a1) in (arity g d u TMP_40))))) in (let TMP_42 \def (\lambda (d2: C).(\lambda 
-(u2: T).(\lambda (a1: A).(arity g d2 u2 a1)))) in (let TMP_43 \def (TLRef i) 
-in (let TMP_44 \def (arity g c2 TMP_43 a0) in (let TMP_51 \def (\lambda (x0: 
-C).(\lambda (x1: T).(\lambda (x2: A).(\lambda (H6: (getl i c2 (CHead x0 (Bind 
-Abbr) x1))).(\lambda (_: (csuba g d x0)).(\lambda (H8: (arity g d u (asucc g 
-x2))).(\lambda (H9: (arity g x0 x1 x2)).(let TMP_45 \def (TLRef i) in (let 
-TMP_46 \def (arity_abbr g c2 x0 x1 i H6 x2 H9) in (let TMP_47 \def (asucc g 
-x2) in (let TMP_48 \def (asucc g a0) in (let TMP_49 \def (arity_mono g d u 
-TMP_47 H8 TMP_48 H1) in (let TMP_50 \def (asucc_inj g x2 a0 TMP_49) in 
-(arity_repl g c2 TMP_45 x2 TMP_46 a0 TMP_50)))))))))))))) in (ex4_3_ind C T A 
-TMP_38 TMP_39 TMP_41 TMP_42 TMP_44 TMP_51 H5))))))))) in (or_ind TMP_16 
-TMP_24 TMP_26 TMP_35 TMP_52 H4)))))))))))))))))))))))) in (let TMP_60 \def 
-(\lambda (b: B).(\lambda (H0: (not (eq B b Abst))).(\lambda (c: C).(\lambda 
-(u: T).(\lambda (a1: A).(\lambda (_: (arity g c u a1)).(\lambda (H2: 
+(CHead d (Bind Abst) u))).(\lambda (a0: A).(\lambda (H1: (arity g d u (asucc 
+g a0))).(\lambda (H2: ((\forall (c2: C).((csuba g d c2) \to (arity g c2 u 
+(asucc g a0)))))).(\lambda (c2: C).(\lambda (H3: (csuba g c c2)).(let H4 \def 
+(csuba_getl_abst g c d u i H0 c2 H3) in (or_ind (ex2 C (\lambda (d2: C).(getl 
+i c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d d2))) (ex4_3 C T 
+A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(getl i c2 (CHead d2 
+(Bind Abbr) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g 
+d d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a1: A).(arity g d u (asucc 
+g a1))))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a1: A).(arity g d2 u2 
+a1))))) (arity g c2 (TLRef i) a0) (\lambda (H5: (ex2 C (\lambda (d2: C).(getl 
+i c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: C).(csuba g d d2)))).(ex2_ind C 
+(\lambda (d2: C).(getl i c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: 
+C).(csuba g d d2)) (arity g c2 (TLRef i) a0) (\lambda (x: C).(\lambda (H6: 
+(getl i c2 (CHead x (Bind Abst) u))).(\lambda (H7: (csuba g d x)).(arity_abst 
+g c2 x u i H6 a0 (H2 x H7))))) H5)) (\lambda (H5: (ex4_3 C T A (\lambda (d2: 
+C).(\lambda (u2: T).(\lambda (_: A).(getl i c2 (CHead d2 (Bind Abbr) u2))))) 
+(\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d d2)))) (\lambda 
+(_: C).(\lambda (_: T).(\lambda (a1: A).(arity g d u (asucc g a1))))) 
+(\lambda (d2: C).(\lambda (u2: T).(\lambda (a1: A).(arity g d2 u2 
+a1)))))).(ex4_3_ind C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: 
+A).(getl i c2 (CHead d2 (Bind Abbr) u2))))) (\lambda (d2: C).(\lambda (_: 
+T).(\lambda (_: A).(csuba g d d2)))) (\lambda (_: C).(\lambda (_: T).(\lambda 
+(a1: A).(arity g d u (asucc g a1))))) (\lambda (d2: C).(\lambda (u2: 
+T).(\lambda (a1: A).(arity g d2 u2 a1)))) (arity g c2 (TLRef i) a0) (\lambda 
+(x0: C).(\lambda (x1: T).(\lambda (x2: A).(\lambda (H6: (getl i c2 (CHead x0 
+(Bind Abbr) x1))).(\lambda (_: (csuba g d x0)).(\lambda (H8: (arity g d u 
+(asucc g x2))).(\lambda (H9: (arity g x0 x1 x2)).(arity_repl g c2 (TLRef i) 
+x2 (arity_abbr g c2 x0 x1 i H6 x2 H9) a0 (asucc_inj g x2 a0 (arity_mono g d u 
+(asucc g x2) H8 (asucc g a0) H1)))))))))) H5)) H4)))))))))))) (\lambda (b: 
+B).(\lambda (H0: (not (eq B b Abst))).(\lambda (c: C).(\lambda (u: 
+T).(\lambda (a1: A).(\lambda (_: (arity g c u a1)).(\lambda (H2: ((\forall 
+(c2: C).((csuba g c c2) \to (arity g c2 u a1))))).(\lambda (t0: T).(\lambda 
+(a2: A).(\lambda (_: (arity g (CHead c (Bind b) u) t0 a2)).(\lambda (H4: 
+((\forall (c2: C).((csuba g (CHead c (Bind b) u) c2) \to (arity g c2 t0 
+a2))))).(\lambda (c2: C).(\lambda (H5: (csuba g c c2)).(arity_bind g b H0 c2 
+u a1 (H2 c2 H5) t0 a2 (H4 (CHead c2 (Bind b) u) (csuba_head g c c2 H5 (Bind 
+b) u)))))))))))))))) (\lambda (c: C).(\lambda (u: T).(\lambda (a1: 
+A).(\lambda (_: (arity g c u (asucc g a1))).(\lambda (H1: ((\forall (c2: 
+C).((csuba g c c2) \to (arity g c2 u (asucc g a1)))))).(\lambda (t0: 
+T).(\lambda (a2: A).(\lambda (_: (arity g (CHead c (Bind Abst) u) t0 
+a2)).(\lambda (H3: ((\forall (c2: C).((csuba g (CHead c (Bind Abst) u) c2) 
+\to (arity g c2 t0 a2))))).(\lambda (c2: C).(\lambda (H4: (csuba g c 
+c2)).(arity_head g c2 u a1 (H1 c2 H4) t0 a2 (H3 (CHead c2 (Bind Abst) u) 
+(csuba_head g c c2 H4 (Bind Abst) u)))))))))))))) (\lambda (c: C).(\lambda 
+(u: T).(\lambda (a1: A).(\lambda (_: (arity g c u a1)).(\lambda (H1: 
 ((\forall (c2: C).((csuba g c c2) \to (arity g c2 u a1))))).(\lambda (t0: 
-T).(\lambda (a2: A).(\lambda (_: (arity g (CHead c (Bind b) u) t0 
-a2)).(\lambda (H4: ((\forall (c2: C).((csuba g (CHead c (Bind b) u) c2) \to 
-(arity g c2 t0 a2))))).(\lambda (c2: C).(\lambda (H5: (csuba g c c2)).(let 
-TMP_54 \def (H2 c2 H5) in (let TMP_55 \def (Bind b) in (let TMP_56 \def 
-(CHead c2 TMP_55 u) in (let TMP_57 \def (Bind b) in (let TMP_58 \def 
-(csuba_head g c c2 H5 TMP_57 u) in (let TMP_59 \def (H4 TMP_56 TMP_58) in 
-(arity_bind g b H0 c2 u a1 TMP_54 t0 a2 TMP_59)))))))))))))))))))) in (let 
-TMP_67 \def (\lambda (c: C).(\lambda (u: T).(\lambda (a1: A).(\lambda (_: 
-(arity g c u (asucc g a1))).(\lambda (H1: ((\forall (c2: C).((csuba g c c2) 
-\to (arity g c2 u (asucc g a1)))))).(\lambda (t0: T).(\lambda (a2: 
-A).(\lambda (_: (arity g (CHead c (Bind Abst) u) t0 a2)).(\lambda (H3: 
-((\forall (c2: C).((csuba g (CHead c (Bind Abst) u) c2) \to (arity g c2 t0 
-a2))))).(\lambda (c2: C).(\lambda (H4: (csuba g c c2)).(let TMP_61 \def (H1 
-c2 H4) in (let TMP_62 \def (Bind Abst) in (let TMP_63 \def (CHead c2 TMP_62 
-u) in (let TMP_64 \def (Bind Abst) in (let TMP_65 \def (csuba_head g c c2 H4 
-TMP_64 u) in (let TMP_66 \def (H3 TMP_63 TMP_65) in (arity_head g c2 u a1 
-TMP_61 t0 a2 TMP_66)))))))))))))))))) in (let TMP_70 \def (\lambda (c: 
-C).(\lambda (u: T).(\lambda (a1: A).(\lambda (_: (arity g c u a1)).(\lambda 
-(H1: ((\forall (c2: C).((csuba g c c2) \to (arity g c2 u a1))))).(\lambda 
-(t0: T).(\lambda (a2: A).(\lambda (_: (arity g c t0 (AHead a1 a2))).(\lambda 
-(H3: ((\forall (c2: C).((csuba g c c2) \to (arity g c2 t0 (AHead a1 
-a2)))))).(\lambda (c2: C).(\lambda (H4: (csuba g c c2)).(let TMP_68 \def (H1 
-c2 H4) in (let TMP_69 \def (H3 c2 H4) in (arity_appl g c2 u a1 TMP_68 t0 a2 
-TMP_69)))))))))))))) in (let TMP_73 \def (\lambda (c: C).(\lambda (u: 
+T).(\lambda (a2: A).(\lambda (_: (arity g c t0 (AHead a1 a2))).(\lambda (H3: 
+((\forall (c2: C).((csuba g c c2) \to (arity g c2 t0 (AHead a1 
+a2)))))).(\lambda (c2: C).(\lambda (H4: (csuba g c c2)).(arity_appl g c2 u a1 
+(H1 c2 H4) t0 a2 (H3 c2 H4))))))))))))) (\lambda (c: C).(\lambda (u: 
 T).(\lambda (a0: A).(\lambda (_: (arity g c u (asucc g a0))).(\lambda (H1: 
 ((\forall (c2: C).((csuba g c c2) \to (arity g c2 u (asucc g 
 a0)))))).(\lambda (t0: T).(\lambda (_: (arity g c t0 a0)).(\lambda (H3: 
 ((\forall (c2: C).((csuba g c c2) \to (arity g c2 t0 a0))))).(\lambda (c2: 
-C).(\lambda (H4: (csuba g c c2)).(let TMP_71 \def (H1 c2 H4) in (let TMP_72 
-\def (H3 c2 H4) in (arity_cast g c2 u a0 TMP_71 t0 TMP_72))))))))))))) in 
-(let TMP_75 \def (\lambda (c: C).(\lambda (t0: T).(\lambda (a1: A).(\lambda 
-(_: (arity g c t0 a1)).(\lambda (H1: ((\forall (c2: C).((csuba g c c2) \to 
-(arity g c2 t0 a1))))).(\lambda (a2: A).(\lambda (H2: (leq g a1 a2)).(\lambda 
-(c2: C).(\lambda (H3: (csuba g c c2)).(let TMP_74 \def (H1 c2 H3) in 
-(arity_repl g c2 t0 a1 TMP_74 a2 H2))))))))))) in (arity_ind g TMP_1 TMP_2 
-TMP_11 TMP_53 TMP_60 TMP_67 TMP_70 TMP_73 TMP_75 c1 t a H)))))))))))))).
+C).(\lambda (H4: (csuba g c c2)).(arity_cast g c2 u a0 (H1 c2 H4) t0 (H3 c2 
+H4)))))))))))) (\lambda (c: C).(\lambda (t0: T).(\lambda (a1: A).(\lambda (_: 
+(arity g c t0 a1)).(\lambda (H1: ((\forall (c2: C).((csuba g c c2) \to (arity 
+g c2 t0 a1))))).(\lambda (a2: A).(\lambda (H2: (leq g a1 a2)).(\lambda (c2: 
+C).(\lambda (H3: (csuba g c c2)).(arity_repl g c2 t0 a1 (H1 c2 H3) a2 
+H2)))))))))) c1 t a H))))).
 
 theorem csuba_arity_rev:
  \forall (g: G).(\forall (c1: C).(\forall (t: T).(\forall (a: A).((arity g c1 
@@ -134,291 +107,179 @@ t a) \to (\forall (c2: C).((csuba g c2 c1) \to ((csubv c2 c1) \to (arity g c2
 t a))))))))
 \def
  \lambda (g: G).(\lambda (c1: C).(\lambda (t: T).(\lambda (a: A).(\lambda (H: 
-(arity g c1 t a)).(let TMP_1 \def (\lambda (c: C).(\lambda (t0: T).(\lambda 
-(a0: A).(\forall (c2: C).((csuba g c2 c) \to ((csubv c2 c) \to (arity g c2 t0 
-a0))))))) in (let TMP_2 \def (\lambda (c: C).(\lambda (n: nat).(\lambda (c2: 
-C).(\lambda (_: (csuba g c2 c)).(\lambda (_: (csubv c2 c)).(arity_sort g c2 
-n)))))) in (let TMP_142 \def (\lambda (c: C).(\lambda (d: C).(\lambda (u: 
-T).(\lambda (i: nat).(\lambda (H0: (getl i c (CHead d (Bind Abbr) 
-u))).(\lambda (a0: A).(\lambda (H1: (arity g d u a0)).(\lambda (H2: ((\forall 
-(c2: C).((csuba g c2 d) \to ((csubv c2 d) \to (arity g c2 u a0)))))).(\lambda 
-(c2: C).(\lambda (H3: (csuba g c2 c)).(\lambda (H4: (csubv c2 c)).(let H_x 
-\def (csuba_getl_abbr_rev g c d u i H0 c2 H3) in (let H5 \def H_x in (let 
-TMP_5 \def (\lambda (d2: C).(let TMP_3 \def (Bind Abbr) in (let TMP_4 \def 
-(CHead d2 TMP_3 u) in (getl i c2 TMP_4)))) in (let TMP_6 \def (\lambda (d2: 
-C).(csuba g d2 d)) in (let TMP_7 \def (ex2 C TMP_5 TMP_6) in (let TMP_10 \def 
-(\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(let TMP_8 \def (Bind Abst) 
-in (let TMP_9 \def (CHead d2 TMP_8 u2) in (getl i c2 TMP_9)))))) in (let 
-TMP_11 \def (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 
-d)))) in (let TMP_13 \def (\lambda (d2: C).(\lambda (u2: T).(\lambda (a1: 
-A).(let TMP_12 \def (asucc g a1) in (arity g d2 u2 TMP_12))))) in (let TMP_14 
-\def (\lambda (_: C).(\lambda (_: T).(\lambda (a1: A).(arity g d u a1)))) in 
-(let TMP_15 \def (ex4_3 C T A TMP_10 TMP_11 TMP_13 TMP_14) in (let TMP_18 
-\def (\lambda (d2: C).(\lambda (u2: T).(let TMP_16 \def (Bind Void) in (let 
-TMP_17 \def (CHead d2 TMP_16 u2) in (getl i c2 TMP_17))))) in (let TMP_19 
-\def (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d))) in (let TMP_20 \def 
-(ex2_2 C T TMP_18 TMP_19) in (let TMP_21 \def (TLRef i) in (let TMP_22 \def 
-(arity g c2 TMP_21 a0) in (let TMP_90 \def (\lambda (H6: (ex2 C (\lambda (d2: 
-C).(getl i c2 (CHead d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d2 
-d)))).(let TMP_25 \def (\lambda (d2: C).(let TMP_23 \def (Bind Abbr) in (let 
-TMP_24 \def (CHead d2 TMP_23 u) in (getl i c2 TMP_24)))) in (let TMP_26 \def 
-(\lambda (d2: C).(csuba g d2 d)) in (let TMP_27 \def (TLRef i) in (let TMP_28 
-\def (arity g c2 TMP_27 a0) in (let TMP_89 \def (\lambda (x: C).(\lambda (H7: 
-(getl i c2 (CHead x (Bind Abbr) u))).(\lambda (H8: (csuba g x d)).(let H_x0 
-\def (csubv_getl_conf c2 c H4 Abbr x u i H7) in (let H9 \def H_x0 in (let 
-TMP_29 \def (\lambda (_: B).(\lambda (d2: C).(\lambda (_: T).(csubv x d2)))) 
-in (let TMP_32 \def (\lambda (b2: B).(\lambda (d2: C).(\lambda (v2: T).(let 
-TMP_30 \def (Bind b2) in (let TMP_31 \def (CHead d2 TMP_30 v2) in (getl i c 
-TMP_31)))))) in (let TMP_33 \def (TLRef i) in (let TMP_34 \def (arity g c2 
-TMP_33 a0) in (let TMP_88 \def (\lambda (x0: B).(\lambda (x1: C).(\lambda 
-(x2: T).(\lambda (H10: (csubv x x1)).(\lambda (H11: (getl i c (CHead x1 (Bind 
-x0) x2))).(let TMP_35 \def (Bind Abbr) in (let TMP_36 \def (CHead d TMP_35 u) 
-in (let TMP_37 \def (\lambda (c0: C).(getl i c c0)) in (let TMP_38 \def (Bind 
-x0) in (let TMP_39 \def (CHead x1 TMP_38 x2) in (let TMP_40 \def (Bind Abbr) 
-in (let TMP_41 \def (CHead d TMP_40 u) in (let TMP_42 \def (Bind x0) in (let 
-TMP_43 \def (CHead x1 TMP_42 x2) in (let TMP_44 \def (getl_mono c TMP_41 i H0 
-TMP_43 H11) in (let H12 \def (eq_ind C TMP_36 TMP_37 H0 TMP_39 TMP_44) in 
-(let TMP_45 \def (\lambda (e: C).(match e with [(CSort _) \Rightarrow d | 
-(CHead c0 _ _) \Rightarrow c0])) in (let TMP_46 \def (Bind Abbr) in (let 
-TMP_47 \def (CHead d TMP_46 u) in (let TMP_48 \def (Bind x0) in (let TMP_49 
-\def (CHead x1 TMP_48 x2) in (let TMP_50 \def (Bind Abbr) in (let TMP_51 \def 
-(CHead d TMP_50 u) in (let TMP_52 \def (Bind x0) in (let TMP_53 \def (CHead 
-x1 TMP_52 x2) in (let TMP_54 \def (getl_mono c TMP_51 i H0 TMP_53 H11) in 
-(let H13 \def (f_equal C C TMP_45 TMP_47 TMP_49 TMP_54) in (let TMP_55 \def 
-(\lambda (e: C).(match e with [(CSort _) \Rightarrow Abbr | (CHead _ k _) 
-\Rightarrow (match k with [(Bind b) \Rightarrow b | (Flat _) \Rightarrow 
-Abbr])])) in (let TMP_56 \def (Bind Abbr) in (let TMP_57 \def (CHead d TMP_56 
-u) in (let TMP_58 \def (Bind x0) in (let TMP_59 \def (CHead x1 TMP_58 x2) in 
-(let TMP_60 \def (Bind Abbr) in (let TMP_61 \def (CHead d TMP_60 u) in (let 
-TMP_62 \def (Bind x0) in (let TMP_63 \def (CHead x1 TMP_62 x2) in (let TMP_64 
-\def (getl_mono c TMP_61 i H0 TMP_63 H11) in (let H14 \def (f_equal C B 
-TMP_55 TMP_57 TMP_59 TMP_64) in (let TMP_65 \def (\lambda (e: C).(match e 
-with [(CSort _) \Rightarrow u | (CHead _ _ t0) \Rightarrow t0])) in (let 
-TMP_66 \def (Bind Abbr) in (let TMP_67 \def (CHead d TMP_66 u) in (let TMP_68 
-\def (Bind x0) in (let TMP_69 \def (CHead x1 TMP_68 x2) in (let TMP_70 \def 
-(Bind Abbr) in (let TMP_71 \def (CHead d TMP_70 u) in (let TMP_72 \def (Bind 
-x0) in (let TMP_73 \def (CHead x1 TMP_72 x2) in (let TMP_74 \def (getl_mono c 
-TMP_71 i H0 TMP_73 H11) in (let H15 \def (f_equal C T TMP_65 TMP_67 TMP_69 
-TMP_74) in (let TMP_86 \def (\lambda (H16: (eq B Abbr x0)).(\lambda (H17: (eq 
-C d x1)).(let TMP_77 \def (\lambda (t0: T).(let TMP_75 \def (Bind x0) in (let 
-TMP_76 \def (CHead x1 TMP_75 t0) in (getl i c TMP_76)))) in (let H18 \def 
-(eq_ind_r T x2 TMP_77 H12 u H15) in (let TMP_80 \def (\lambda (c0: C).(let 
-TMP_78 \def (Bind x0) in (let TMP_79 \def (CHead c0 TMP_78 u) in (getl i c 
-TMP_79)))) in (let H19 \def (eq_ind_r C x1 TMP_80 H18 d H17) in (let TMP_81 
-\def (\lambda (c0: C).(csubv x c0)) in (let H20 \def (eq_ind_r C x1 TMP_81 
-H10 d H17) in (let TMP_84 \def (\lambda (b: B).(let TMP_82 \def (Bind b) in 
-(let TMP_83 \def (CHead d TMP_82 u) in (getl i c TMP_83)))) in (let H21 \def 
-(eq_ind_r B x0 TMP_84 H19 Abbr H16) in (let TMP_85 \def (H2 x H8 H20) in 
-(arity_abbr g c2 x u i H7 a0 TMP_85)))))))))))) in (let TMP_87 \def (TMP_86 
-H14) in (TMP_87 H13)))))))))))))))))))))))))))))))))))))))))))))))))))) in 
-(ex2_3_ind B C T TMP_29 TMP_32 TMP_34 TMP_88 H9))))))))))) in (ex2_ind C 
-TMP_25 TMP_26 TMP_28 TMP_89 H6))))))) in (let TMP_104 \def (\lambda (H6: 
-(ex4_3 C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(getl i c2 
-(CHead d2 (Bind Abst) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: 
-A).(csuba g d2 d)))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a1: 
-A).(arity g d2 u2 (asucc g a1))))) (\lambda (_: C).(\lambda (_: T).(\lambda 
-(a1: A).(arity g d u a1)))))).(let TMP_93 \def (\lambda (d2: C).(\lambda (u2: 
-T).(\lambda (_: A).(let TMP_91 \def (Bind Abst) in (let TMP_92 \def (CHead d2 
-TMP_91 u2) in (getl i c2 TMP_92)))))) in (let TMP_94 \def (\lambda (d2: 
-C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 d)))) in (let TMP_96 \def 
-(\lambda (d2: C).(\lambda (u2: T).(\lambda (a1: A).(let TMP_95 \def (asucc g 
-a1) in (arity g d2 u2 TMP_95))))) in (let TMP_97 \def (\lambda (_: 
-C).(\lambda (_: T).(\lambda (a1: A).(arity g d u a1)))) in (let TMP_98 \def 
-(TLRef i) in (let TMP_99 \def (arity g c2 TMP_98 a0) in (let TMP_103 \def 
+(arity g c1 t a)).(arity_ind g (\lambda (c: C).(\lambda (t0: T).(\lambda (a0: 
+A).(\forall (c2: C).((csuba g c2 c) \to ((csubv c2 c) \to (arity g c2 t0 
+a0))))))) (\lambda (c: C).(\lambda (n: nat).(\lambda (c2: C).(\lambda (_: 
+(csuba g c2 c)).(\lambda (_: (csubv c2 c)).(arity_sort g c2 n)))))) (\lambda 
+(c: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: nat).(\lambda (H0: (getl 
+i c (CHead d (Bind Abbr) u))).(\lambda (a0: A).(\lambda (H1: (arity g d u 
+a0)).(\lambda (H2: ((\forall (c2: C).((csuba g c2 d) \to ((csubv c2 d) \to 
+(arity g c2 u a0)))))).(\lambda (c2: C).(\lambda (H3: (csuba g c2 
+c)).(\lambda (H4: (csubv c2 c)).(let H_x \def (csuba_getl_abbr_rev g c d u i 
+H0 c2 H3) in (let H5 \def H_x in (or3_ind (ex2 C (\lambda (d2: C).(getl i c2 
+(CHead d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d2 d))) (ex4_3 C T A 
+(\lambda (d2: C).(\lambda (u2: T).(\lambda (_: A).(getl i c2 (CHead d2 (Bind 
+Abst) u2))))) (\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 
+d)))) (\lambda (d2: C).(\lambda (u2: T).(\lambda (a1: A).(arity g d2 u2 
+(asucc g a1))))) (\lambda (_: C).(\lambda (_: T).(\lambda (a1: A).(arity g d 
+u a1))))) (ex2_2 C T (\lambda (d2: C).(\lambda (u2: T).(getl i c2 (CHead d2 
+(Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d)))) (arity 
+g c2 (TLRef i) a0) (\lambda (H6: (ex2 C (\lambda (d2: C).(getl i c2 (CHead d2 
+(Bind Abbr) u))) (\lambda (d2: C).(csuba g d2 d)))).(ex2_ind C (\lambda (d2: 
+C).(getl i c2 (CHead d2 (Bind Abbr) u))) (\lambda (d2: C).(csuba g d2 d)) 
+(arity g c2 (TLRef i) a0) (\lambda (x: C).(\lambda (H7: (getl i c2 (CHead x 
+(Bind Abbr) u))).(\lambda (H8: (csuba g x d)).(let H_x0 \def (csubv_getl_conf 
+c2 c H4 Abbr x u i H7) in (let H9 \def H_x0 in (ex2_3_ind B C T (\lambda (_: 
+B).(\lambda (d2: C).(\lambda (_: T).(csubv x d2)))) (\lambda (b2: B).(\lambda 
+(d2: C).(\lambda (v2: T).(getl i c (CHead d2 (Bind b2) v2))))) (arity g c2 
+(TLRef i) a0) (\lambda (x0: B).(\lambda (x1: C).(\lambda (x2: T).(\lambda 
+(H10: (csubv x x1)).(\lambda (H11: (getl i c (CHead x1 (Bind x0) x2))).(let 
+H12 \def (eq_ind C (CHead d (Bind Abbr) u) (\lambda (c0: C).(getl i c c0)) H0 
+(CHead x1 (Bind x0) x2) (getl_mono c (CHead d (Bind Abbr) u) i H0 (CHead x1 
+(Bind x0) x2) H11)) in (let H13 \def (f_equal C C (\lambda (e: C).(match e 
+with [(CSort _) \Rightarrow d | (CHead c0 _ _) \Rightarrow c0])) (CHead d 
+(Bind Abbr) u) (CHead x1 (Bind x0) x2) (getl_mono c (CHead d (Bind Abbr) u) i 
+H0 (CHead x1 (Bind x0) x2) H11)) in ((let H14 \def (f_equal C B (\lambda (e: 
+C).(match e with [(CSort _) \Rightarrow Abbr | (CHead _ k _) \Rightarrow 
+(match k with [(Bind b) \Rightarrow b | (Flat _) \Rightarrow Abbr])])) (CHead 
+d (Bind Abbr) u) (CHead x1 (Bind x0) x2) (getl_mono c (CHead d (Bind Abbr) u) 
+i H0 (CHead x1 (Bind x0) x2) H11)) in ((let H15 \def (f_equal C T (\lambda 
+(e: C).(match e with [(CSort _) \Rightarrow u | (CHead _ _ t0) \Rightarrow 
+t0])) (CHead d (Bind Abbr) u) (CHead x1 (Bind x0) x2) (getl_mono c (CHead d 
+(Bind Abbr) u) i H0 (CHead x1 (Bind x0) x2) H11)) in (\lambda (H16: (eq B 
+Abbr x0)).(\lambda (H17: (eq C d x1)).(let H18 \def (eq_ind_r T x2 (\lambda 
+(t0: T).(getl i c (CHead x1 (Bind x0) t0))) H12 u H15) in (let H19 \def 
+(eq_ind_r C x1 (\lambda (c0: C).(getl i c (CHead c0 (Bind x0) u))) H18 d H17) 
+in (let H20 \def (eq_ind_r C x1 (\lambda (c0: C).(csubv x c0)) H10 d H17) in 
+(let H21 \def (eq_ind_r B x0 (\lambda (b: B).(getl i c (CHead d (Bind b) u))) 
+H19 Abbr H16) in (arity_abbr g c2 x u i H7 a0 (H2 x H8 H20))))))))) H14)) 
+H13)))))))) H9)))))) H6)) (\lambda (H6: (ex4_3 C T A (\lambda (d2: 
+C).(\lambda (u2: T).(\lambda (_: A).(getl i c2 (CHead d2 (Bind Abst) u2))))) 
+(\lambda (d2: C).(\lambda (_: T).(\lambda (_: A).(csuba g d2 d)))) (\lambda 
+(d2: C).(\lambda (u2: T).(\lambda (a1: A).(arity g d2 u2 (asucc g a1))))) 
+(\lambda (_: C).(\lambda (_: T).(\lambda (a1: A).(arity g d u 
+a1)))))).(ex4_3_ind C T A (\lambda (d2: C).(\lambda (u2: T).(\lambda (_: 
+A).(getl i c2 (CHead d2 (Bind Abst) u2))))) (\lambda (d2: C).(\lambda (_: 
+T).(\lambda (_: A).(csuba g d2 d)))) (\lambda (d2: C).(\lambda (u2: 
+T).(\lambda (a1: A).(arity g d2 u2 (asucc g a1))))) (\lambda (_: C).(\lambda 
+(_: T).(\lambda (a1: A).(arity g d u a1)))) (arity g c2 (TLRef i) a0) 
 (\lambda (x0: C).(\lambda (x1: T).(\lambda (x2: A).(\lambda (H7: (getl i c2 
 (CHead x0 (Bind Abst) x1))).(\lambda (_: (csuba g x0 d)).(\lambda (H9: (arity 
-g x0 x1 (asucc g x2))).(\lambda (H10: (arity g d u x2)).(let TMP_100 \def 
-(TLRef i) in (let TMP_101 \def (arity_abst g c2 x0 x1 i H7 x2 H9) in (let 
-TMP_102 \def (arity_mono g d u x2 H10 a0 H1) in (arity_repl g c2 TMP_100 x2 
-TMP_101 a0 TMP_102))))))))))) in (ex4_3_ind C T A TMP_93 TMP_94 TMP_96 TMP_97 
-TMP_99 TMP_103 H6))))))))) in (let TMP_141 \def (\lambda (H6: (ex2_2 C T 
-(\lambda (d2: C).(\lambda (u2: T).(getl i c2 (CHead d2 (Bind Void) u2)))) 
-(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d))))).(let TMP_107 \def 
-(\lambda (d2: C).(\lambda (u2: T).(let TMP_105 \def (Bind Void) in (let 
-TMP_106 \def (CHead d2 TMP_105 u2) in (getl i c2 TMP_106))))) in (let TMP_108 
-\def (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d))) in (let TMP_109 \def 
-(TLRef i) in (let TMP_110 \def (arity g c2 TMP_109 a0) in (let TMP_140 \def 
-(\lambda (x0: C).(\lambda (x1: T).(\lambda (H7: (getl i c2 (CHead x0 (Bind 
-Void) x1))).(\lambda (_: (csuba g x0 d)).(let H_x0 \def (csubv_getl_conf_void 
-c2 c H4 x0 x1 i H7) in (let H9 \def H_x0 in (let TMP_111 \def (\lambda (d2: 
-C).(\lambda (_: T).(csubv x0 d2))) in (let TMP_114 \def (\lambda (d2: 
-C).(\lambda (v2: T).(let TMP_112 \def (Bind Void) in (let TMP_113 \def (CHead 
-d2 TMP_112 v2) in (getl i c TMP_113))))) in (let TMP_115 \def (TLRef i) in 
-(let TMP_116 \def (arity g c2 TMP_115 a0) in (let TMP_139 \def (\lambda (x2: 
-C).(\lambda (x3: T).(\lambda (_: (csubv x0 x2)).(\lambda (H11: (getl i c 
-(CHead x2 (Bind Void) x3))).(let TMP_117 \def (Bind Abbr) in (let TMP_118 
-\def (CHead d TMP_117 u) in (let TMP_119 \def (\lambda (c0: C).(getl i c c0)) 
-in (let TMP_120 \def (Bind Void) in (let TMP_121 \def (CHead x2 TMP_120 x3) 
-in (let TMP_122 \def (Bind Abbr) in (let TMP_123 \def (CHead d TMP_122 u) in 
-(let TMP_124 \def (Bind Void) in (let TMP_125 \def (CHead x2 TMP_124 x3) in 
-(let TMP_126 \def (getl_mono c TMP_123 i H0 TMP_125 H11) in (let H12 \def 
-(eq_ind C TMP_118 TMP_119 H0 TMP_121 TMP_126) in (let TMP_127 \def (Bind 
-Abbr) in (let TMP_128 \def (CHead d TMP_127 u) in (let TMP_129 \def (\lambda 
-(ee: C).(match ee with [(CSort _) \Rightarrow False | (CHead _ k _) 
-\Rightarrow (match k with [(Bind b) \Rightarrow (match b with [Abbr 
-\Rightarrow True | Abst \Rightarrow False | Void \Rightarrow False]) | (Flat 
-_) \Rightarrow False])])) in (let TMP_130 \def (Bind Void) in (let TMP_131 
-\def (CHead x2 TMP_130 x3) in (let TMP_132 \def (Bind Abbr) in (let TMP_133 
-\def (CHead d TMP_132 u) in (let TMP_134 \def (Bind Void) in (let TMP_135 
-\def (CHead x2 TMP_134 x3) in (let TMP_136 \def (getl_mono c TMP_133 i H0 
-TMP_135 H11) in (let H13 \def (eq_ind C TMP_128 TMP_129 I TMP_131 TMP_136) in 
-(let TMP_137 \def (TLRef i) in (let TMP_138 \def (arity g c2 TMP_137 a0) in 
-(False_ind TMP_138 H13))))))))))))))))))))))))))))) in (ex2_2_ind C T TMP_111 
-TMP_114 TMP_116 TMP_139 H9)))))))))))) in (ex2_2_ind C T TMP_107 TMP_108 
-TMP_110 TMP_140 H6))))))) in (or3_ind TMP_7 TMP_15 TMP_20 TMP_22 TMP_90 
-TMP_104 TMP_141 H5)))))))))))))))))))))))))))))) in (let TMP_260 \def 
-(\lambda (c: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: nat).(\lambda 
-(H0: (getl i c (CHead d (Bind Abst) u))).(\lambda (a0: A).(\lambda (_: (arity 
-g d u (asucc g a0))).(\lambda (H2: ((\forall (c2: C).((csuba g c2 d) \to 
-((csubv c2 d) \to (arity g c2 u (asucc g a0))))))).(\lambda (c2: C).(\lambda 
-(H3: (csuba g c2 c)).(\lambda (H4: (csubv c2 c)).(let H_x \def 
-(csuba_getl_abst_rev g c d u i H0 c2 H3) in (let H5 \def H_x in (let TMP_145 
-\def (\lambda (d2: C).(let TMP_143 \def (Bind Abst) in (let TMP_144 \def 
-(CHead d2 TMP_143 u) in (getl i c2 TMP_144)))) in (let TMP_146 \def (\lambda 
-(d2: C).(csuba g d2 d)) in (let TMP_147 \def (ex2 C TMP_145 TMP_146) in (let 
-TMP_150 \def (\lambda (d2: C).(\lambda (u2: T).(let TMP_148 \def (Bind Void) 
-in (let TMP_149 \def (CHead d2 TMP_148 u2) in (getl i c2 TMP_149))))) in (let 
-TMP_151 \def (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d))) in (let 
-TMP_152 \def (ex2_2 C T TMP_150 TMP_151) in (let TMP_153 \def (TLRef i) in 
-(let TMP_154 \def (arity g c2 TMP_153 a0) in (let TMP_222 \def (\lambda (H6: 
+g x0 x1 (asucc g x2))).(\lambda (H10: (arity g d u x2)).(arity_repl g c2 
+(TLRef i) x2 (arity_abst g c2 x0 x1 i H7 x2 H9) a0 (arity_mono g d u x2 H10 
+a0 H1))))))))) H6)) (\lambda (H6: (ex2_2 C T (\lambda (d2: C).(\lambda (u2: 
+T).(getl i c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: 
+T).(csuba g d2 d))))).(ex2_2_ind C T (\lambda (d2: C).(\lambda (u2: T).(getl 
+i c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g 
+d2 d))) (arity g c2 (TLRef i) a0) (\lambda (x0: C).(\lambda (x1: T).(\lambda 
+(H7: (getl i c2 (CHead x0 (Bind Void) x1))).(\lambda (_: (csuba g x0 d)).(let 
+H_x0 \def (csubv_getl_conf_void c2 c H4 x0 x1 i H7) in (let H9 \def H_x0 in 
+(ex2_2_ind C T (\lambda (d2: C).(\lambda (_: T).(csubv x0 d2))) (\lambda (d2: 
+C).(\lambda (v2: T).(getl i c (CHead d2 (Bind Void) v2)))) (arity g c2 (TLRef 
+i) a0) (\lambda (x2: C).(\lambda (x3: T).(\lambda (_: (csubv x0 x2)).(\lambda 
+(H11: (getl i c (CHead x2 (Bind Void) x3))).(let H12 \def (eq_ind C (CHead d 
+(Bind Abbr) u) (\lambda (c0: C).(getl i c c0)) H0 (CHead x2 (Bind Void) x3) 
+(getl_mono c (CHead d (Bind Abbr) u) i H0 (CHead x2 (Bind Void) x3) H11)) in 
+(let H13 \def (eq_ind C (CHead d (Bind Abbr) u) (\lambda (ee: C).(match ee 
+with [(CSort _) \Rightarrow False | (CHead _ k _) \Rightarrow (match k with 
+[(Bind b) \Rightarrow (match b with [Abbr \Rightarrow True | Abst \Rightarrow 
+False | Void \Rightarrow False]) | (Flat _) \Rightarrow False])])) I (CHead 
+x2 (Bind Void) x3) (getl_mono c (CHead d (Bind Abbr) u) i H0 (CHead x2 (Bind 
+Void) x3) H11)) in (False_ind (arity g c2 (TLRef i) a0) H13))))))) H9))))))) 
+H6)) H5)))))))))))))) (\lambda (c: C).(\lambda (d: C).(\lambda (u: 
+T).(\lambda (i: nat).(\lambda (H0: (getl i c (CHead d (Bind Abst) 
+u))).(\lambda (a0: A).(\lambda (_: (arity g d u (asucc g a0))).(\lambda (H2: 
+((\forall (c2: C).((csuba g c2 d) \to ((csubv c2 d) \to (arity g c2 u (asucc 
+g a0))))))).(\lambda (c2: C).(\lambda (H3: (csuba g c2 c)).(\lambda (H4: 
+(csubv c2 c)).(let H_x \def (csuba_getl_abst_rev g c d u i H0 c2 H3) in (let 
+H5 \def H_x in (or_ind (ex2 C (\lambda (d2: C).(getl i c2 (CHead d2 (Bind 
+Abst) u))) (\lambda (d2: C).(csuba g d2 d))) (ex2_2 C T (\lambda (d2: 
+C).(\lambda (u2: T).(getl i c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: 
+C).(\lambda (_: T).(csuba g d2 d)))) (arity g c2 (TLRef i) a0) (\lambda (H6: 
 (ex2 C (\lambda (d2: C).(getl i c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: 
-C).(csuba g d2 d)))).(let TMP_157 \def (\lambda (d2: C).(let TMP_155 \def 
-(Bind Abst) in (let TMP_156 \def (CHead d2 TMP_155 u) in (getl i c2 
-TMP_156)))) in (let TMP_158 \def (\lambda (d2: C).(csuba g d2 d)) in (let 
-TMP_159 \def (TLRef i) in (let TMP_160 \def (arity g c2 TMP_159 a0) in (let 
-TMP_221 \def (\lambda (x: C).(\lambda (H7: (getl i c2 (CHead x (Bind Abst) 
-u))).(\lambda (H8: (csuba g x d)).(let H_x0 \def (csubv_getl_conf c2 c H4 
-Abst x u i H7) in (let H9 \def H_x0 in (let TMP_161 \def (\lambda (_: 
-B).(\lambda (d2: C).(\lambda (_: T).(csubv x d2)))) in (let TMP_164 \def 
-(\lambda (b2: B).(\lambda (d2: C).(\lambda (v2: T).(let TMP_162 \def (Bind 
-b2) in (let TMP_163 \def (CHead d2 TMP_162 v2) in (getl i c TMP_163)))))) in 
-(let TMP_165 \def (TLRef i) in (let TMP_166 \def (arity g c2 TMP_165 a0) in 
-(let TMP_220 \def (\lambda (x0: B).(\lambda (x1: C).(\lambda (x2: T).(\lambda 
-(H10: (csubv x x1)).(\lambda (H11: (getl i c (CHead x1 (Bind x0) x2))).(let 
-TMP_167 \def (Bind Abst) in (let TMP_168 \def (CHead d TMP_167 u) in (let 
-TMP_169 \def (\lambda (c0: C).(getl i c c0)) in (let TMP_170 \def (Bind x0) 
-in (let TMP_171 \def (CHead x1 TMP_170 x2) in (let TMP_172 \def (Bind Abst) 
-in (let TMP_173 \def (CHead d TMP_172 u) in (let TMP_174 \def (Bind x0) in 
-(let TMP_175 \def (CHead x1 TMP_174 x2) in (let TMP_176 \def (getl_mono c 
-TMP_173 i H0 TMP_175 H11) in (let H12 \def (eq_ind C TMP_168 TMP_169 H0 
-TMP_171 TMP_176) in (let TMP_177 \def (\lambda (e: C).(match e with [(CSort 
-_) \Rightarrow d | (CHead c0 _ _) \Rightarrow c0])) in (let TMP_178 \def 
-(Bind Abst) in (let TMP_179 \def (CHead d TMP_178 u) in (let TMP_180 \def 
-(Bind x0) in (let TMP_181 \def (CHead x1 TMP_180 x2) in (let TMP_182 \def 
-(Bind Abst) in (let TMP_183 \def (CHead d TMP_182 u) in (let TMP_184 \def 
-(Bind x0) in (let TMP_185 \def (CHead x1 TMP_184 x2) in (let TMP_186 \def 
-(getl_mono c TMP_183 i H0 TMP_185 H11) in (let H13 \def (f_equal C C TMP_177 
-TMP_179 TMP_181 TMP_186) in (let TMP_187 \def (\lambda (e: C).(match e with 
-[(CSort _) \Rightarrow Abst | (CHead _ k _) \Rightarrow (match k with [(Bind 
-b) \Rightarrow b | (Flat _) \Rightarrow Abst])])) in (let TMP_188 \def (Bind 
-Abst) in (let TMP_189 \def (CHead d TMP_188 u) in (let TMP_190 \def (Bind x0) 
-in (let TMP_191 \def (CHead x1 TMP_190 x2) in (let TMP_192 \def (Bind Abst) 
-in (let TMP_193 \def (CHead d TMP_192 u) in (let TMP_194 \def (Bind x0) in 
-(let TMP_195 \def (CHead x1 TMP_194 x2) in (let TMP_196 \def (getl_mono c 
-TMP_193 i H0 TMP_195 H11) in (let H14 \def (f_equal C B TMP_187 TMP_189 
-TMP_191 TMP_196) in (let TMP_197 \def (\lambda (e: C).(match e with [(CSort 
-_) \Rightarrow u | (CHead _ _ t0) \Rightarrow t0])) in (let TMP_198 \def 
-(Bind Abst) in (let TMP_199 \def (CHead d TMP_198 u) in (let TMP_200 \def 
-(Bind x0) in (let TMP_201 \def (CHead x1 TMP_200 x2) in (let TMP_202 \def 
-(Bind Abst) in (let TMP_203 \def (CHead d TMP_202 u) in (let TMP_204 \def 
-(Bind x0) in (let TMP_205 \def (CHead x1 TMP_204 x2) in (let TMP_206 \def 
-(getl_mono c TMP_203 i H0 TMP_205 H11) in (let H15 \def (f_equal C T TMP_197 
-TMP_199 TMP_201 TMP_206) in (let TMP_218 \def (\lambda (H16: (eq B Abst 
-x0)).(\lambda (H17: (eq C d x1)).(let TMP_209 \def (\lambda (t0: T).(let 
-TMP_207 \def (Bind x0) in (let TMP_208 \def (CHead x1 TMP_207 t0) in (getl i 
-c TMP_208)))) in (let H18 \def (eq_ind_r T x2 TMP_209 H12 u H15) in (let 
-TMP_212 \def (\lambda (c0: C).(let TMP_210 \def (Bind x0) in (let TMP_211 
-\def (CHead c0 TMP_210 u) in (getl i c TMP_211)))) in (let H19 \def (eq_ind_r 
-C x1 TMP_212 H18 d H17) in (let TMP_213 \def (\lambda (c0: C).(csubv x c0)) 
-in (let H20 \def (eq_ind_r C x1 TMP_213 H10 d H17) in (let TMP_216 \def 
-(\lambda (b: B).(let TMP_214 \def (Bind b) in (let TMP_215 \def (CHead d 
-TMP_214 u) in (getl i c TMP_215)))) in (let H21 \def (eq_ind_r B x0 TMP_216 
-H19 Abst H16) in (let TMP_217 \def (H2 x H8 H20) in (arity_abst g c2 x u i H7 
-a0 TMP_217)))))))))))) in (let TMP_219 \def (TMP_218 H14) in (TMP_219 
-H13)))))))))))))))))))))))))))))))))))))))))))))))))))) in (ex2_3_ind B C T 
-TMP_161 TMP_164 TMP_166 TMP_220 H9))))))))))) in (ex2_ind C TMP_157 TMP_158 
-TMP_160 TMP_221 H6))))))) in (let TMP_259 \def (\lambda (H6: (ex2_2 C T 
-(\lambda (d2: C).(\lambda (u2: T).(getl i c2 (CHead d2 (Bind Void) u2)))) 
-(\lambda (d2: C).(\lambda (_: T).(csuba g d2 d))))).(let TMP_225 \def 
-(\lambda (d2: C).(\lambda (u2: T).(let TMP_223 \def (Bind Void) in (let 
-TMP_224 \def (CHead d2 TMP_223 u2) in (getl i c2 TMP_224))))) in (let TMP_226 
-\def (\lambda (d2: C).(\lambda (_: T).(csuba g d2 d))) in (let TMP_227 \def 
-(TLRef i) in (let TMP_228 \def (arity g c2 TMP_227 a0) in (let TMP_258 \def 
-(\lambda (x0: C).(\lambda (x1: T).(\lambda (H7: (getl i c2 (CHead x0 (Bind 
-Void) x1))).(\lambda (_: (csuba g x0 d)).(let H_x0 \def (csubv_getl_conf_void 
-c2 c H4 x0 x1 i H7) in (let H9 \def H_x0 in (let TMP_229 \def (\lambda (d2: 
-C).(\lambda (_: T).(csubv x0 d2))) in (let TMP_232 \def (\lambda (d2: 
-C).(\lambda (v2: T).(let TMP_230 \def (Bind Void) in (let TMP_231 \def (CHead 
-d2 TMP_230 v2) in (getl i c TMP_231))))) in (let TMP_233 \def (TLRef i) in 
-(let TMP_234 \def (arity g c2 TMP_233 a0) in (let TMP_257 \def (\lambda (x2: 
-C).(\lambda (x3: T).(\lambda (_: (csubv x0 x2)).(\lambda (H11: (getl i c 
-(CHead x2 (Bind Void) x3))).(let TMP_235 \def (Bind Abst) in (let TMP_236 
-\def (CHead d TMP_235 u) in (let TMP_237 \def (\lambda (c0: C).(getl i c c0)) 
-in (let TMP_238 \def (Bind Void) in (let TMP_239 \def (CHead x2 TMP_238 x3) 
-in (let TMP_240 \def (Bind Abst) in (let TMP_241 \def (CHead d TMP_240 u) in 
-(let TMP_242 \def (Bind Void) in (let TMP_243 \def (CHead x2 TMP_242 x3) in 
-(let TMP_244 \def (getl_mono c TMP_241 i H0 TMP_243 H11) in (let H12 \def 
-(eq_ind C TMP_236 TMP_237 H0 TMP_239 TMP_244) in (let TMP_245 \def (Bind 
-Abst) in (let TMP_246 \def (CHead d TMP_245 u) in (let TMP_247 \def (\lambda 
-(ee: C).(match ee with [(CSort _) \Rightarrow False | (CHead _ k _) 
-\Rightarrow (match k with [(Bind b) \Rightarrow (match b with [Abbr 
-\Rightarrow False | Abst \Rightarrow True | Void \Rightarrow False]) | (Flat 
-_) \Rightarrow False])])) in (let TMP_248 \def (Bind Void) in (let TMP_249 
-\def (CHead x2 TMP_248 x3) in (let TMP_250 \def (Bind Abst) in (let TMP_251 
-\def (CHead d TMP_250 u) in (let TMP_252 \def (Bind Void) in (let TMP_253 
-\def (CHead x2 TMP_252 x3) in (let TMP_254 \def (getl_mono c TMP_251 i H0 
-TMP_253 H11) in (let H13 \def (eq_ind C TMP_246 TMP_247 I TMP_249 TMP_254) in 
-(let TMP_255 \def (TLRef i) in (let TMP_256 \def (arity g c2 TMP_255 a0) in 
-(False_ind TMP_256 H13))))))))))))))))))))))))))))) in (ex2_2_ind C T TMP_229 
-TMP_232 TMP_234 TMP_257 H9)))))))))))) in (ex2_2_ind C T TMP_225 TMP_226 
-TMP_228 TMP_258 H6))))))) in (or_ind TMP_147 TMP_152 TMP_154 TMP_222 TMP_259 
-H5)))))))))))))))))))))))) in (let TMP_268 \def (\lambda (b: B).(\lambda (H0: 
-(not (eq B b Abst))).(\lambda (c: C).(\lambda (u: T).(\lambda (a1: 
-A).(\lambda (_: (arity g c u a1)).(\lambda (H2: ((\forall (c2: C).((csuba g 
-c2 c) \to ((csubv c2 c) \to (arity g c2 u a1)))))).(\lambda (t0: T).(\lambda 
-(a2: A).(\lambda (_: (arity g (CHead c (Bind b) u) t0 a2)).(\lambda (H4: 
-((\forall (c2: C).((csuba g c2 (CHead c (Bind b) u)) \to ((csubv c2 (CHead c 
-(Bind b) u)) \to (arity g c2 t0 a2)))))).(\lambda (c2: C).(\lambda (H5: 
-(csuba g c2 c)).(\lambda (H6: (csubv c2 c)).(let TMP_261 \def (H2 c2 H5 H6) 
-in (let TMP_262 \def (Bind b) in (let TMP_263 \def (CHead c2 TMP_262 u) in 
-(let TMP_264 \def (Bind b) in (let TMP_265 \def (csuba_head g c2 c H5 TMP_264 
-u) in (let TMP_266 \def (csubv_bind_same c2 c H6 b u u) in (let TMP_267 \def 
-(H4 TMP_263 TMP_265 TMP_266) in (arity_bind g b H0 c2 u a1 TMP_261 t0 a2 
-TMP_267)))))))))))))))))))))) in (let TMP_276 \def (\lambda (c: C).(\lambda 
-(u: T).(\lambda (a1: A).(\lambda (_: (arity g c u (asucc g a1))).(\lambda 
+C).(csuba g d2 d)))).(ex2_ind C (\lambda (d2: C).(getl i c2 (CHead d2 (Bind 
+Abst) u))) (\lambda (d2: C).(csuba g d2 d)) (arity g c2 (TLRef i) a0) 
+(\lambda (x: C).(\lambda (H7: (getl i c2 (CHead x (Bind Abst) u))).(\lambda 
+(H8: (csuba g x d)).(let H_x0 \def (csubv_getl_conf c2 c H4 Abst x u i H7) in 
+(let H9 \def H_x0 in (ex2_3_ind B C T (\lambda (_: B).(\lambda (d2: 
+C).(\lambda (_: T).(csubv x d2)))) (\lambda (b2: B).(\lambda (d2: C).(\lambda 
+(v2: T).(getl i c (CHead d2 (Bind b2) v2))))) (arity g c2 (TLRef i) a0) 
+(\lambda (x0: B).(\lambda (x1: C).(\lambda (x2: T).(\lambda (H10: (csubv x 
+x1)).(\lambda (H11: (getl i c (CHead x1 (Bind x0) x2))).(let H12 \def (eq_ind 
+C (CHead d (Bind Abst) u) (\lambda (c0: C).(getl i c c0)) H0 (CHead x1 (Bind 
+x0) x2) (getl_mono c (CHead d (Bind Abst) u) i H0 (CHead x1 (Bind x0) x2) 
+H11)) in (let H13 \def (f_equal C C (\lambda (e: C).(match e with [(CSort _) 
+\Rightarrow d | (CHead c0 _ _) \Rightarrow c0])) (CHead d (Bind Abst) u) 
+(CHead x1 (Bind x0) x2) (getl_mono c (CHead d (Bind Abst) u) i H0 (CHead x1 
+(Bind x0) x2) H11)) in ((let H14 \def (f_equal C B (\lambda (e: C).(match e 
+with [(CSort _) \Rightarrow Abst | (CHead _ k _) \Rightarrow (match k with 
+[(Bind b) \Rightarrow b | (Flat _) \Rightarrow Abst])])) (CHead d (Bind Abst) 
+u) (CHead x1 (Bind x0) x2) (getl_mono c (CHead d (Bind Abst) u) i H0 (CHead 
+x1 (Bind x0) x2) H11)) in ((let H15 \def (f_equal C T (\lambda (e: C).(match 
+e with [(CSort _) \Rightarrow u | (CHead _ _ t0) \Rightarrow t0])) (CHead d 
+(Bind Abst) u) (CHead x1 (Bind x0) x2) (getl_mono c (CHead d (Bind Abst) u) i 
+H0 (CHead x1 (Bind x0) x2) H11)) in (\lambda (H16: (eq B Abst x0)).(\lambda 
+(H17: (eq C d x1)).(let H18 \def (eq_ind_r T x2 (\lambda (t0: T).(getl i c 
+(CHead x1 (Bind x0) t0))) H12 u H15) in (let H19 \def (eq_ind_r C x1 (\lambda 
+(c0: C).(getl i c (CHead c0 (Bind x0) u))) H18 d H17) in (let H20 \def 
+(eq_ind_r C x1 (\lambda (c0: C).(csubv x c0)) H10 d H17) in (let H21 \def 
+(eq_ind_r B x0 (\lambda (b: B).(getl i c (CHead d (Bind b) u))) H19 Abst H16) 
+in (arity_abst g c2 x u i H7 a0 (H2 x H8 H20))))))))) H14)) H13)))))))) 
+H9)))))) H6)) (\lambda (H6: (ex2_2 C T (\lambda (d2: C).(\lambda (u2: 
+T).(getl i c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: 
+T).(csuba g d2 d))))).(ex2_2_ind C T (\lambda (d2: C).(\lambda (u2: T).(getl 
+i c2 (CHead d2 (Bind Void) u2)))) (\lambda (d2: C).(\lambda (_: T).(csuba g 
+d2 d))) (arity g c2 (TLRef i) a0) (\lambda (x0: C).(\lambda (x1: T).(\lambda 
+(H7: (getl i c2 (CHead x0 (Bind Void) x1))).(\lambda (_: (csuba g x0 d)).(let 
+H_x0 \def (csubv_getl_conf_void c2 c H4 x0 x1 i H7) in (let H9 \def H_x0 in 
+(ex2_2_ind C T (\lambda (d2: C).(\lambda (_: T).(csubv x0 d2))) (\lambda (d2: 
+C).(\lambda (v2: T).(getl i c (CHead d2 (Bind Void) v2)))) (arity g c2 (TLRef 
+i) a0) (\lambda (x2: C).(\lambda (x3: T).(\lambda (_: (csubv x0 x2)).(\lambda 
+(H11: (getl i c (CHead x2 (Bind Void) x3))).(let H12 \def (eq_ind C (CHead d 
+(Bind Abst) u) (\lambda (c0: C).(getl i c c0)) H0 (CHead x2 (Bind Void) x3) 
+(getl_mono c (CHead d (Bind Abst) u) i H0 (CHead x2 (Bind Void) x3) H11)) in 
+(let H13 \def (eq_ind C (CHead d (Bind Abst) u) (\lambda (ee: C).(match ee 
+with [(CSort _) \Rightarrow False | (CHead _ k _) \Rightarrow (match k with 
+[(Bind b) \Rightarrow (match b with [Abbr \Rightarrow False | Abst 
+\Rightarrow True | Void \Rightarrow False]) | (Flat _) \Rightarrow False])])) 
+I (CHead x2 (Bind Void) x3) (getl_mono c (CHead d (Bind Abst) u) i H0 (CHead 
+x2 (Bind Void) x3) H11)) in (False_ind (arity g c2 (TLRef i) a0) H13))))))) 
+H9))))))) H6)) H5)))))))))))))) (\lambda (b: B).(\lambda (H0: (not (eq B b 
+Abst))).(\lambda (c: C).(\lambda (u: T).(\lambda (a1: A).(\lambda (_: (arity 
+g c u a1)).(\lambda (H2: ((\forall (c2: C).((csuba g c2 c) \to ((csubv c2 c) 
+\to (arity g c2 u a1)))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda (_: 
+(arity g (CHead c (Bind b) u) t0 a2)).(\lambda (H4: ((\forall (c2: C).((csuba 
+g c2 (CHead c (Bind b) u)) \to ((csubv c2 (CHead c (Bind b) u)) \to (arity g 
+c2 t0 a2)))))).(\lambda (c2: C).(\lambda (H5: (csuba g c2 c)).(\lambda (H6: 
+(csubv c2 c)).(arity_bind g b H0 c2 u a1 (H2 c2 H5 H6) t0 a2 (H4 (CHead c2 
+(Bind b) u) (csuba_head g c2 c H5 (Bind b) u) (csubv_bind_same c2 c H6 b u 
+u))))))))))))))))) (\lambda (c: C).(\lambda (u: T).(\lambda (a1: A).(\lambda 
+(_: (arity g c u (asucc g a1))).(\lambda (H1: ((\forall (c2: C).((csuba g c2 
+c) \to ((csubv c2 c) \to (arity g c2 u (asucc g a1))))))).(\lambda (t0: 
+T).(\lambda (a2: A).(\lambda (_: (arity g (CHead c (Bind Abst) u) t0 
+a2)).(\lambda (H3: ((\forall (c2: C).((csuba g c2 (CHead c (Bind Abst) u)) 
+\to ((csubv c2 (CHead c (Bind Abst) u)) \to (arity g c2 t0 a2)))))).(\lambda 
+(c2: C).(\lambda (H4: (csuba g c2 c)).(\lambda (H5: (csubv c2 c)).(arity_head 
+g c2 u a1 (H1 c2 H4 H5) t0 a2 (H3 (CHead c2 (Bind Abst) u) (csuba_head g c2 c 
+H4 (Bind Abst) u) (csubv_bind_same c2 c H5 Abst u u))))))))))))))) (\lambda 
+(c: C).(\lambda (u: T).(\lambda (a1: A).(\lambda (_: (arity g c u 
+a1)).(\lambda (H1: ((\forall (c2: C).((csuba g c2 c) \to ((csubv c2 c) \to 
+(arity g c2 u a1)))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda (_: (arity 
+g c t0 (AHead a1 a2))).(\lambda (H3: ((\forall (c2: C).((csuba g c2 c) \to 
+((csubv c2 c) \to (arity g c2 t0 (AHead a1 a2))))))).(\lambda (c2: 
+C).(\lambda (H4: (csuba g c2 c)).(\lambda (H5: (csubv c2 c)).(arity_appl g c2 
+u a1 (H1 c2 H4 H5) t0 a2 (H3 c2 H4 H5)))))))))))))) (\lambda (c: C).(\lambda 
+(u: T).(\lambda (a0: A).(\lambda (_: (arity g c u (asucc g a0))).(\lambda 
 (H1: ((\forall (c2: C).((csuba g c2 c) \to ((csubv c2 c) \to (arity g c2 u 
-(asucc g a1))))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda (_: (arity g 
-(CHead c (Bind Abst) u) t0 a2)).(\lambda (H3: ((\forall (c2: C).((csuba g c2 
-(CHead c (Bind Abst) u)) \to ((csubv c2 (CHead c (Bind Abst) u)) \to (arity g 
-c2 t0 a2)))))).(\lambda (c2: C).(\lambda (H4: (csuba g c2 c)).(\lambda (H5: 
-(csubv c2 c)).(let TMP_269 \def (H1 c2 H4 H5) in (let TMP_270 \def (Bind 
-Abst) in (let TMP_271 \def (CHead c2 TMP_270 u) in (let TMP_272 \def (Bind 
-Abst) in (let TMP_273 \def (csuba_head g c2 c H4 TMP_272 u) in (let TMP_274 
-\def (csubv_bind_same c2 c H5 Abst u u) in (let TMP_275 \def (H3 TMP_271 
-TMP_273 TMP_274) in (arity_head g c2 u a1 TMP_269 t0 a2 
-TMP_275)))))))))))))))))))) in (let TMP_279 \def (\lambda (c: C).(\lambda (u: 
-T).(\lambda (a1: A).(\lambda (_: (arity g c u a1)).(\lambda (H1: ((\forall 
-(c2: C).((csuba g c2 c) \to ((csubv c2 c) \to (arity g c2 u a1)))))).(\lambda 
-(t0: T).(\lambda (a2: A).(\lambda (_: (arity g c t0 (AHead a1 a2))).(\lambda 
+(asucc g a0))))))).(\lambda (t0: T).(\lambda (_: (arity g c t0 a0)).(\lambda 
 (H3: ((\forall (c2: C).((csuba g c2 c) \to ((csubv c2 c) \to (arity g c2 t0 
-(AHead a1 a2))))))).(\lambda (c2: C).(\lambda (H4: (csuba g c2 c)).(\lambda 
-(H5: (csubv c2 c)).(let TMP_277 \def (H1 c2 H4 H5) in (let TMP_278 \def (H3 
-c2 H4 H5) in (arity_appl g c2 u a1 TMP_277 t0 a2 TMP_278))))))))))))))) in 
-(let TMP_282 \def (\lambda (c: C).(\lambda (u: T).(\lambda (a0: A).(\lambda 
-(_: (arity g c u (asucc g a0))).(\lambda (H1: ((\forall (c2: C).((csuba g c2 
-c) \to ((csubv c2 c) \to (arity g c2 u (asucc g a0))))))).(\lambda (t0: 
-T).(\lambda (_: (arity g c t0 a0)).(\lambda (H3: ((\forall (c2: C).((csuba g 
-c2 c) \to ((csubv c2 c) \to (arity g c2 t0 a0)))))).(\lambda (c2: C).(\lambda 
-(H4: (csuba g c2 c)).(\lambda (H5: (csubv c2 c)).(let TMP_280 \def (H1 c2 H4 
-H5) in (let TMP_281 \def (H3 c2 H4 H5) in (arity_cast g c2 u a0 TMP_280 t0 
-TMP_281)))))))))))))) in (let TMP_284 \def (\lambda (c: C).(\lambda (t0: 
-T).(\lambda (a1: A).(\lambda (_: (arity g c t0 a1)).(\lambda (H1: ((\forall 
-(c2: C).((csuba g c2 c) \to ((csubv c2 c) \to (arity g c2 t0 
-a1)))))).(\lambda (a2: A).(\lambda (H2: (leq g a1 a2)).(\lambda (c2: 
-C).(\lambda (H3: (csuba g c2 c)).(\lambda (H4: (csubv c2 c)).(let TMP_283 
-\def (H1 c2 H3 H4) in (arity_repl g c2 t0 a1 TMP_283 a2 H2)))))))))))) in 
-(arity_ind g TMP_1 TMP_2 TMP_142 TMP_260 TMP_268 TMP_276 TMP_279 TMP_282 
-TMP_284 c1 t a H)))))))))))))).
+a0)))))).(\lambda (c2: C).(\lambda (H4: (csuba g c2 c)).(\lambda (H5: (csubv 
+c2 c)).(arity_cast g c2 u a0 (H1 c2 H4 H5) t0 (H3 c2 H4 H5))))))))))))) 
+(\lambda (c: C).(\lambda (t0: T).(\lambda (a1: A).(\lambda (_: (arity g c t0 
+a1)).(\lambda (H1: ((\forall (c2: C).((csuba g c2 c) \to ((csubv c2 c) \to 
+(arity g c2 t0 a1)))))).(\lambda (a2: A).(\lambda (H2: (leq g a1 
+a2)).(\lambda (c2: C).(\lambda (H3: (csuba g c2 c)).(\lambda (H4: (csubv c2 
+c)).(arity_repl g c2 t0 a1 (H1 c2 H3 H4) a2 H2))))))))))) c1 t a H))))).
 
 theorem arity_appls_appl:
  \forall (g: G).(\forall (c: C).(\forall (v: T).(\forall (a1: A).((arity g c 
@@ -429,52 +290,30 @@ T).(\forall (vs: TList).(\forall (a2: A).((arity g c (THeads (Flat Appl) vs
 \def
  \lambda (g: G).(\lambda (c: C).(\lambda (v: T).(\lambda (a1: A).(\lambda (H: 
 (arity g c v a1)).(\lambda (u: T).(\lambda (H0: (arity g c u (asucc g 
-a1))).(\lambda (t: T).(\lambda (vs: TList).(let TMP_7 \def (\lambda (t0: 
+a1))).(\lambda (t: T).(\lambda (vs: TList).(TList_ind (\lambda (t0: 
 TList).(\forall (a2: A).((arity g c (THeads (Flat Appl) t0 (THead (Bind Abbr) 
-v t)) a2) \to (let TMP_1 \def (Flat Appl) in (let TMP_2 \def (Flat Appl) in 
-(let TMP_3 \def (Bind Abst) in (let TMP_4 \def (THead TMP_3 u t) in (let 
-TMP_5 \def (THead TMP_2 v TMP_4) in (let TMP_6 \def (THeads TMP_1 t0 TMP_5) 
-in (arity g c TMP_6 a2)))))))))) in (let TMP_30 \def (\lambda (a2: 
-A).(\lambda (H1: (arity g c (THead (Bind Abbr) v t) a2)).(let H_x \def 
-(arity_gen_bind Abbr not_abbr_abst g c v t a2 H1) in (let H2 \def H_x in (let 
-TMP_8 \def (\lambda (a3: A).(arity g c v a3)) in (let TMP_11 \def (\lambda 
-(_: A).(let TMP_9 \def (Bind Abbr) in (let TMP_10 \def (CHead c TMP_9 v) in 
-(arity g TMP_10 t a2)))) in (let TMP_12 \def (Flat Appl) in (let TMP_13 \def 
-(Bind Abst) in (let TMP_14 \def (THead TMP_13 u t) in (let TMP_15 \def (THead 
-TMP_12 v TMP_14) in (let TMP_16 \def (arity g c TMP_15 a2) in (let TMP_29 
-\def (\lambda (x: A).(\lambda (_: (arity g c v x)).(\lambda (H4: (arity g 
-(CHead c (Bind Abbr) v) t a2)).(let TMP_17 \def (Bind Abst) in (let TMP_18 
-\def (THead TMP_17 u t) in (let TMP_19 \def (Bind Abbr) in (let TMP_20 \def 
-(CHead c TMP_19 v) in (let TMP_21 \def (Bind Abst) in (let TMP_22 \def (CHead 
-c TMP_21 u) in (let TMP_23 \def (csuba_refl g c) in (let TMP_24 \def 
-(csuba_abst g c c TMP_23 u a1 H0 v H) in (let TMP_25 \def (csubv_refl c) in 
-(let TMP_26 \def (csubv_bind c c TMP_25 Abst not_abst_void Abbr u v) in (let 
-TMP_27 \def (csuba_arity_rev g TMP_20 t a2 H4 TMP_22 TMP_24 TMP_26) in (let 
-TMP_28 \def (arity_head g c u a1 H0 t a2 TMP_27) in (arity_appl g c v a1 H 
-TMP_18 a2 TMP_28)))))))))))))))) in (ex2_ind A TMP_8 TMP_11 TMP_16 TMP_29 
-H2))))))))))))) in (let TMP_60 \def (\lambda (t0: T).(\lambda (t1: 
-TList).(\lambda (H1: ((\forall (a2: A).((arity g c (THeads (Flat Appl) t1 
-(THead (Bind Abbr) v t)) a2) \to (arity g c (THeads (Flat Appl) t1 (THead 
-(Flat Appl) v (THead (Bind Abst) u t))) a2))))).(\lambda (a2: A).(\lambda 
-(H2: (arity g c (THead (Flat Appl) t0 (THeads (Flat Appl) t1 (THead (Bind 
-Abbr) v t))) a2)).(let TMP_31 \def (Flat Appl) in (let TMP_32 \def (Bind 
-Abbr) in (let TMP_33 \def (THead TMP_32 v t) in (let TMP_34 \def (THeads 
-TMP_31 t1 TMP_33) in (let H3 \def (arity_gen_appl g c t0 TMP_34 a2 H2) in 
-(let TMP_35 \def (\lambda (a3: A).(arity g c t0 a3)) in (let TMP_41 \def 
-(\lambda (a3: A).(let TMP_36 \def (Flat Appl) in (let TMP_37 \def (Bind Abbr) 
-in (let TMP_38 \def (THead TMP_37 v t) in (let TMP_39 \def (THeads TMP_36 t1 
-TMP_38) in (let TMP_40 \def (AHead a3 a2) in (arity g c TMP_39 TMP_40))))))) 
-in (let TMP_42 \def (Flat Appl) in (let TMP_43 \def (Flat Appl) in (let 
-TMP_44 \def (Flat Appl) in (let TMP_45 \def (Bind Abst) in (let TMP_46 \def 
-(THead TMP_45 u t) in (let TMP_47 \def (THead TMP_44 v TMP_46) in (let TMP_48 
-\def (THeads TMP_43 t1 TMP_47) in (let TMP_49 \def (THead TMP_42 t0 TMP_48) 
-in (let TMP_50 \def (arity g c TMP_49 a2) in (let TMP_59 \def (\lambda (x: 
-A).(\lambda (H4: (arity g c t0 x)).(\lambda (H5: (arity g c (THeads (Flat 
-Appl) t1 (THead (Bind Abbr) v t)) (AHead x a2))).(let TMP_51 \def (Flat Appl) 
-in (let TMP_52 \def (Flat Appl) in (let TMP_53 \def (Bind Abst) in (let 
-TMP_54 \def (THead TMP_53 u t) in (let TMP_55 \def (THead TMP_52 v TMP_54) in 
-(let TMP_56 \def (THeads TMP_51 t1 TMP_55) in (let TMP_57 \def (AHead x a2) 
-in (let TMP_58 \def (H1 TMP_57 H5) in (arity_appl g c t0 x H4 TMP_56 a2 
-TMP_58)))))))))))) in (ex2_ind A TMP_35 TMP_41 TMP_50 TMP_59 
-H3))))))))))))))))))))))) in (TList_ind TMP_7 TMP_30 TMP_60 vs)))))))))))).
+v t)) a2) \to (arity g c (THeads (Flat Appl) t0 (THead (Flat Appl) v (THead 
+(Bind Abst) u t))) a2)))) (\lambda (a2: A).(\lambda (H1: (arity g c (THead 
+(Bind Abbr) v t) a2)).(let H_x \def (arity_gen_bind Abbr not_abbr_abst g c v 
+t a2 H1) in (let H2 \def H_x in (ex2_ind A (\lambda (a3: A).(arity g c v a3)) 
+(\lambda (_: A).(arity g (CHead c (Bind Abbr) v) t a2)) (arity g c (THead 
+(Flat Appl) v (THead (Bind Abst) u t)) a2) (\lambda (x: A).(\lambda (_: 
+(arity g c v x)).(\lambda (H4: (arity g (CHead c (Bind Abbr) v) t 
+a2)).(arity_appl g c v a1 H (THead (Bind Abst) u t) a2 (arity_head g c u a1 
+H0 t a2 (csuba_arity_rev g (CHead c (Bind Abbr) v) t a2 H4 (CHead c (Bind 
+Abst) u) (csuba_abst g c c (csuba_refl g c) u a1 H0 v H) (csubv_bind c c 
+(csubv_refl c) Abst not_abst_void Abbr u v))))))) H2))))) (\lambda (t0: 
+T).(\lambda (t1: TList).(\lambda (H1: ((\forall (a2: A).((arity g c (THeads 
+(Flat Appl) t1 (THead (Bind Abbr) v t)) a2) \to (arity g c (THeads (Flat 
+Appl) t1 (THead (Flat Appl) v (THead (Bind Abst) u t))) a2))))).(\lambda (a2: 
+A).(\lambda (H2: (arity g c (THead (Flat Appl) t0 (THeads (Flat Appl) t1 
+(THead (Bind Abbr) v t))) a2)).(let H3 \def (arity_gen_appl g c t0 (THeads 
+(Flat Appl) t1 (THead (Bind Abbr) v t)) a2 H2) in (ex2_ind A (\lambda (a3: 
+A).(arity g c t0 a3)) (\lambda (a3: A).(arity g c (THeads (Flat Appl) t1 
+(THead (Bind Abbr) v t)) (AHead a3 a2))) (arity g c (THead (Flat Appl) t0 
+(THeads (Flat Appl) t1 (THead (Flat Appl) v (THead (Bind Abst) u t)))) a2) 
+(\lambda (x: A).(\lambda (H4: (arity g c t0 x)).(\lambda (H5: (arity g c 
+(THeads (Flat Appl) t1 (THead (Bind Abbr) v t)) (AHead x a2))).(arity_appl g 
+c t0 x H4 (THeads (Flat Appl) t1 (THead (Flat Appl) v (THead (Bind Abst) u 
+t))) a2 (H1 (AHead x a2) H5))))) H3))))))) vs))))))))).
 
index af8360519728d47317da499a3d00b38420c6ed9b..39936f41f951b08e0f289ba6bf7e90508978f9e3 100644 (file)
@@ -24,84 +24,50 @@ theorem csuba_clear_conf:
 (\lambda (e2: C).(clear c2 e2))))))))
 \def
  \lambda (g: G).(\lambda (c1: C).(\lambda (c2: C).(\lambda (H: (csuba g c1 
-c2)).(let TMP_3 \def (\lambda (c: C).(\lambda (c0: C).(\forall (e1: 
-C).((clear c e1) \to (let TMP_1 \def (\lambda (e2: C).(csuba g e1 e2)) in 
-(let TMP_2 \def (\lambda (e2: C).(clear c0 e2)) in (ex2 C TMP_1 TMP_2))))))) 
-in (let TMP_8 \def (\lambda (n: nat).(\lambda (e1: C).(\lambda (H0: (clear 
-(CSort n) e1)).(let TMP_4 \def (\lambda (e2: C).(csuba g e1 e2)) in (let 
-TMP_6 \def (\lambda (e2: C).(let TMP_5 \def (CSort n) in (clear TMP_5 e2))) 
-in (let TMP_7 \def (ex2 C TMP_4 TMP_6) in (clear_gen_sort e1 n H0 
-TMP_7))))))) in (let TMP_49 \def (\lambda (c3: C).(\lambda (c4: C).(\lambda 
-(H0: (csuba g c3 c4)).(\lambda (H1: ((\forall (e1: C).((clear c3 e1) \to (ex2 
-C (\lambda (e2: C).(csuba g e1 e2)) (\lambda (e2: C).(clear c4 
+c2)).(csuba_ind g (\lambda (c: C).(\lambda (c0: C).(\forall (e1: C).((clear c 
+e1) \to (ex2 C (\lambda (e2: C).(csuba g e1 e2)) (\lambda (e2: C).(clear c0 
+e2))))))) (\lambda (n: nat).(\lambda (e1: C).(\lambda (H0: (clear (CSort n) 
+e1)).(clear_gen_sort e1 n H0 (ex2 C (\lambda (e2: C).(csuba g e1 e2)) 
+(\lambda (e2: C).(clear (CSort n) e2))))))) (\lambda (c3: C).(\lambda (c4: 
+C).(\lambda (H0: (csuba g c3 c4)).(\lambda (H1: ((\forall (e1: C).((clear c3 
+e1) \to (ex2 C (\lambda (e2: C).(csuba g e1 e2)) (\lambda (e2: C).(clear c4 
 e2))))))).(\lambda (k: K).(\lambda (u: T).(\lambda (e1: C).(\lambda (H2: 
-(clear (CHead c3 k u) e1)).(let TMP_12 \def (\lambda (k0: K).((clear (CHead 
-c3 k0 u) e1) \to (let TMP_9 \def (\lambda (e2: C).(csuba g e1 e2)) in (let 
-TMP_11 \def (\lambda (e2: C).(let TMP_10 \def (CHead c4 k0 u) in (clear 
-TMP_10 e2))) in (ex2 C TMP_9 TMP_11))))) in (let TMP_33 \def (\lambda (b: 
-B).(\lambda (H3: (clear (CHead c3 (Bind b) u) e1)).(let TMP_13 \def (Bind b) 
-in (let TMP_14 \def (CHead c3 TMP_13 u) in (let TMP_19 \def (\lambda (c: 
-C).(let TMP_15 \def (\lambda (e2: C).(csuba g c e2)) in (let TMP_18 \def 
-(\lambda (e2: C).(let TMP_16 \def (Bind b) in (let TMP_17 \def (CHead c4 
-TMP_16 u) in (clear TMP_17 e2)))) in (ex2 C TMP_15 TMP_18)))) in (let TMP_22 
-\def (\lambda (e2: C).(let TMP_20 \def (Bind b) in (let TMP_21 \def (CHead c3 
-TMP_20 u) in (csuba g TMP_21 e2)))) in (let TMP_25 \def (\lambda (e2: C).(let 
-TMP_23 \def (Bind b) in (let TMP_24 \def (CHead c4 TMP_23 u) in (clear TMP_24 
-e2)))) in (let TMP_26 \def (Bind b) in (let TMP_27 \def (CHead c4 TMP_26 u) 
-in (let TMP_28 \def (Bind b) in (let TMP_29 \def (csuba_head g c3 c4 H0 
-TMP_28 u) in (let TMP_30 \def (clear_bind b c4 u) in (let TMP_31 \def 
-(ex_intro2 C TMP_22 TMP_25 TMP_27 TMP_29 TMP_30) in (let TMP_32 \def 
-(clear_gen_bind b c3 e1 u H3) in (eq_ind_r C TMP_14 TMP_19 TMP_31 e1 
-TMP_32))))))))))))))) in (let TMP_48 \def (\lambda (f: F).(\lambda (H3: 
-(clear (CHead c3 (Flat f) u) e1)).(let TMP_34 \def (clear_gen_flat f c3 e1 u 
-H3) in (let H4 \def (H1 e1 TMP_34) in (let TMP_35 \def (\lambda (e2: 
-C).(csuba g e1 e2)) in (let TMP_36 \def (\lambda (e2: C).(clear c4 e2)) in 
-(let TMP_37 \def (\lambda (e2: C).(csuba g e1 e2)) in (let TMP_40 \def 
-(\lambda (e2: C).(let TMP_38 \def (Flat f) in (let TMP_39 \def (CHead c4 
-TMP_38 u) in (clear TMP_39 e2)))) in (let TMP_41 \def (ex2 C TMP_37 TMP_40) 
-in (let TMP_47 \def (\lambda (x: C).(\lambda (H5: (csuba g e1 x)).(\lambda 
-(H6: (clear c4 x)).(let TMP_42 \def (\lambda (e2: C).(csuba g e1 e2)) in (let 
-TMP_45 \def (\lambda (e2: C).(let TMP_43 \def (Flat f) in (let TMP_44 \def 
-(CHead c4 TMP_43 u) in (clear TMP_44 e2)))) in (let TMP_46 \def (clear_flat 
-c4 x H6 f u) in (ex_intro2 C TMP_42 TMP_45 x H5 TMP_46))))))) in (ex2_ind C 
-TMP_35 TMP_36 TMP_41 TMP_47 H4))))))))))) in (K_ind TMP_12 TMP_33 TMP_48 k 
-H2)))))))))))) in (let TMP_69 \def (\lambda (c3: C).(\lambda (c4: C).(\lambda 
-(H0: (csuba g c3 c4)).(\lambda (_: ((\forall (e1: C).((clear c3 e1) \to (ex2 
-C (\lambda (e2: C).(csuba g e1 e2)) (\lambda (e2: C).(clear c4 
-e2))))))).(\lambda (b: B).(\lambda (H2: (not (eq B b Void))).(\lambda (u1: 
-T).(\lambda (u2: T).(\lambda (e1: C).(\lambda (H3: (clear (CHead c3 (Bind 
-Void) u1) e1)).(let TMP_50 \def (Bind Void) in (let TMP_51 \def (CHead c3 
-TMP_50 u1) in (let TMP_56 \def (\lambda (c: C).(let TMP_52 \def (\lambda (e2: 
-C).(csuba g c e2)) in (let TMP_55 \def (\lambda (e2: C).(let TMP_53 \def 
-(Bind b) in (let TMP_54 \def (CHead c4 TMP_53 u2) in (clear TMP_54 e2)))) in 
-(ex2 C TMP_52 TMP_55)))) in (let TMP_59 \def (\lambda (e2: C).(let TMP_57 
-\def (Bind Void) in (let TMP_58 \def (CHead c3 TMP_57 u1) in (csuba g TMP_58 
-e2)))) in (let TMP_62 \def (\lambda (e2: C).(let TMP_60 \def (Bind b) in (let 
-TMP_61 \def (CHead c4 TMP_60 u2) in (clear TMP_61 e2)))) in (let TMP_63 \def 
-(Bind b) in (let TMP_64 \def (CHead c4 TMP_63 u2) in (let TMP_65 \def 
-(csuba_void g c3 c4 H0 b H2 u1 u2) in (let TMP_66 \def (clear_bind b c4 u2) 
-in (let TMP_67 \def (ex_intro2 C TMP_59 TMP_62 TMP_64 TMP_65 TMP_66) in (let 
-TMP_68 \def (clear_gen_bind Void c3 e1 u1 H3) in (eq_ind_r C TMP_51 TMP_56 
-TMP_67 e1 TMP_68)))))))))))))))))))))) in (let TMP_89 \def (\lambda (c3: 
+(clear (CHead c3 k u) e1)).(K_ind (\lambda (k0: K).((clear (CHead c3 k0 u) 
+e1) \to (ex2 C (\lambda (e2: C).(csuba g e1 e2)) (\lambda (e2: C).(clear 
+(CHead c4 k0 u) e2))))) (\lambda (b: B).(\lambda (H3: (clear (CHead c3 (Bind 
+b) u) e1)).(eq_ind_r C (CHead c3 (Bind b) u) (\lambda (c: C).(ex2 C (\lambda 
+(e2: C).(csuba g c e2)) (\lambda (e2: C).(clear (CHead c4 (Bind b) u) e2)))) 
+(ex_intro2 C (\lambda (e2: C).(csuba g (CHead c3 (Bind b) u) e2)) (\lambda 
+(e2: C).(clear (CHead c4 (Bind b) u) e2)) (CHead c4 (Bind b) u) (csuba_head g 
+c3 c4 H0 (Bind b) u) (clear_bind b c4 u)) e1 (clear_gen_bind b c3 e1 u H3)))) 
+(\lambda (f: F).(\lambda (H3: (clear (CHead c3 (Flat f) u) e1)).(let H4 \def 
+(H1 e1 (clear_gen_flat f c3 e1 u H3)) in (ex2_ind C (\lambda (e2: C).(csuba g 
+e1 e2)) (\lambda (e2: C).(clear c4 e2)) (ex2 C (\lambda (e2: C).(csuba g e1 
+e2)) (\lambda (e2: C).(clear (CHead c4 (Flat f) u) e2))) (\lambda (x: 
+C).(\lambda (H5: (csuba g e1 x)).(\lambda (H6: (clear c4 x)).(ex_intro2 C 
+(\lambda (e2: C).(csuba g e1 e2)) (\lambda (e2: C).(clear (CHead c4 (Flat f) 
+u) e2)) x H5 (clear_flat c4 x H6 f u))))) H4)))) k H2))))))))) (\lambda (c3: 
 C).(\lambda (c4: C).(\lambda (H0: (csuba g c3 c4)).(\lambda (_: ((\forall 
 (e1: C).((clear c3 e1) \to (ex2 C (\lambda (e2: C).(csuba g e1 e2)) (\lambda 
-(e2: C).(clear c4 e2))))))).(\lambda (t: T).(\lambda (a: A).(\lambda (H2: 
-(arity g c3 t (asucc g a))).(\lambda (u: T).(\lambda (H3: (arity g c4 u 
-a)).(\lambda (e1: C).(\lambda (H4: (clear (CHead c3 (Bind Abst) t) e1)).(let 
-TMP_70 \def (Bind Abst) in (let TMP_71 \def (CHead c3 TMP_70 t) in (let 
-TMP_76 \def (\lambda (c: C).(let TMP_72 \def (\lambda (e2: C).(csuba g c e2)) 
-in (let TMP_75 \def (\lambda (e2: C).(let TMP_73 \def (Bind Abbr) in (let 
-TMP_74 \def (CHead c4 TMP_73 u) in (clear TMP_74 e2)))) in (ex2 C TMP_72 
-TMP_75)))) in (let TMP_79 \def (\lambda (e2: C).(let TMP_77 \def (Bind Abst) 
-in (let TMP_78 \def (CHead c3 TMP_77 t) in (csuba g TMP_78 e2)))) in (let 
-TMP_82 \def (\lambda (e2: C).(let TMP_80 \def (Bind Abbr) in (let TMP_81 \def 
-(CHead c4 TMP_80 u) in (clear TMP_81 e2)))) in (let TMP_83 \def (Bind Abbr) 
-in (let TMP_84 \def (CHead c4 TMP_83 u) in (let TMP_85 \def (csuba_abst g c3 
-c4 H0 t a H2 u H3) in (let TMP_86 \def (clear_bind Abbr c4 u) in (let TMP_87 
-\def (ex_intro2 C TMP_79 TMP_82 TMP_84 TMP_85 TMP_86) in (let TMP_88 \def 
-(clear_gen_bind Abst c3 e1 t H4) in (eq_ind_r C TMP_71 TMP_76 TMP_87 e1 
-TMP_88))))))))))))))))))))))) in (csuba_ind g TMP_3 TMP_8 TMP_49 TMP_69 
-TMP_89 c1 c2 H))))))))).
+(e2: C).(clear c4 e2))))))).(\lambda (b: B).(\lambda (H2: (not (eq B b 
+Void))).(\lambda (u1: T).(\lambda (u2: T).(\lambda (e1: C).(\lambda (H3: 
+(clear (CHead c3 (Bind Void) u1) e1)).(eq_ind_r C (CHead c3 (Bind Void) u1) 
+(\lambda (c: C).(ex2 C (\lambda (e2: C).(csuba g c e2)) (\lambda (e2: 
+C).(clear (CHead c4 (Bind b) u2) e2)))) (ex_intro2 C (\lambda (e2: C).(csuba 
+g (CHead c3 (Bind Void) u1) e2)) (\lambda (e2: C).(clear (CHead c4 (Bind b) 
+u2) e2)) (CHead c4 (Bind b) u2) (csuba_void g c3 c4 H0 b H2 u1 u2) 
+(clear_bind b c4 u2)) e1 (clear_gen_bind Void c3 e1 u1 H3)))))))))))) 
+(\lambda (c3: C).(\lambda (c4: C).(\lambda (H0: (csuba g c3 c4)).(\lambda (_: 
+((\forall (e1: C).((clear c3 e1) \to (ex2 C (\lambda (e2: C).(csuba g e1 e2)) 
+(\lambda (e2: C).(clear c4 e2))))))).(\lambda (t: T).(\lambda (a: A).(\lambda 
+(H2: (arity g c3 t (asucc g a))).(\lambda (u: T).(\lambda (H3: (arity g c4 u 
+a)).(\lambda (e1: C).(\lambda (H4: (clear (CHead c3 (Bind Abst) t) 
+e1)).(eq_ind_r C (CHead c3 (Bind Abst) t) (\lambda (c: C).(ex2 C (\lambda 
+(e2: C).(csuba g c e2)) (\lambda (e2: C).(clear (CHead c4 (Bind Abbr) u) 
+e2)))) (ex_intro2 C (\lambda (e2: C).(csuba g (CHead c3 (Bind Abst) t) e2)) 
+(\lambda (e2: C).(clear (CHead c4 (Bind Abbr) u) e2)) (CHead c4 (Bind Abbr) 
+u) (csuba_abst g c3 c4 H0 t a H2 u H3) (clear_bind Abbr c4 u)) e1 
+(clear_gen_bind Abst c3 e1 t H4))))))))))))) c1 c2 H)))).
 
 theorem csuba_clear_trans:
  \forall (g: G).(\forall (c1: C).(\forall (c2: C).((csuba g c2 c1) \to 
@@ -109,82 +75,48 @@ theorem csuba_clear_trans:
 (\lambda (e2: C).(clear c2 e2))))))))
 \def
  \lambda (g: G).(\lambda (c1: C).(\lambda (c2: C).(\lambda (H: (csuba g c2 
-c1)).(let TMP_3 \def (\lambda (c: C).(\lambda (c0: C).(\forall (e1: 
-C).((clear c0 e1) \to (let TMP_1 \def (\lambda (e2: C).(csuba g e2 e1)) in 
-(let TMP_2 \def (\lambda (e2: C).(clear c e2)) in (ex2 C TMP_1 TMP_2))))))) 
-in (let TMP_8 \def (\lambda (n: nat).(\lambda (e1: C).(\lambda (H0: (clear 
-(CSort n) e1)).(let TMP_4 \def (\lambda (e2: C).(csuba g e2 e1)) in (let 
-TMP_6 \def (\lambda (e2: C).(let TMP_5 \def (CSort n) in (clear TMP_5 e2))) 
-in (let TMP_7 \def (ex2 C TMP_4 TMP_6) in (clear_gen_sort e1 n H0 
-TMP_7))))))) in (let TMP_49 \def (\lambda (c3: C).(\lambda (c4: C).(\lambda 
-(H0: (csuba g c3 c4)).(\lambda (H1: ((\forall (e1: C).((clear c4 e1) \to (ex2 
-C (\lambda (e2: C).(csuba g e2 e1)) (\lambda (e2: C).(clear c3 
+c1)).(csuba_ind g (\lambda (c: C).(\lambda (c0: C).(\forall (e1: C).((clear 
+c0 e1) \to (ex2 C (\lambda (e2: C).(csuba g e2 e1)) (\lambda (e2: C).(clear c 
+e2))))))) (\lambda (n: nat).(\lambda (e1: C).(\lambda (H0: (clear (CSort n) 
+e1)).(clear_gen_sort e1 n H0 (ex2 C (\lambda (e2: C).(csuba g e2 e1)) 
+(\lambda (e2: C).(clear (CSort n) e2))))))) (\lambda (c3: C).(\lambda (c4: 
+C).(\lambda (H0: (csuba g c3 c4)).(\lambda (H1: ((\forall (e1: C).((clear c4 
+e1) \to (ex2 C (\lambda (e2: C).(csuba g e2 e1)) (\lambda (e2: C).(clear c3 
 e2))))))).(\lambda (k: K).(\lambda (u: T).(\lambda (e1: C).(\lambda (H2: 
-(clear (CHead c4 k u) e1)).(let TMP_12 \def (\lambda (k0: K).((clear (CHead 
-c4 k0 u) e1) \to (let TMP_9 \def (\lambda (e2: C).(csuba g e2 e1)) in (let 
-TMP_11 \def (\lambda (e2: C).(let TMP_10 \def (CHead c3 k0 u) in (clear 
-TMP_10 e2))) in (ex2 C TMP_9 TMP_11))))) in (let TMP_33 \def (\lambda (b: 
-B).(\lambda (H3: (clear (CHead c4 (Bind b) u) e1)).(let TMP_13 \def (Bind b) 
-in (let TMP_14 \def (CHead c4 TMP_13 u) in (let TMP_19 \def (\lambda (c: 
-C).(let TMP_15 \def (\lambda (e2: C).(csuba g e2 c)) in (let TMP_18 \def 
-(\lambda (e2: C).(let TMP_16 \def (Bind b) in (let TMP_17 \def (CHead c3 
-TMP_16 u) in (clear TMP_17 e2)))) in (ex2 C TMP_15 TMP_18)))) in (let TMP_22 
-\def (\lambda (e2: C).(let TMP_20 \def (Bind b) in (let TMP_21 \def (CHead c4 
-TMP_20 u) in (csuba g e2 TMP_21)))) in (let TMP_25 \def (\lambda (e2: C).(let 
-TMP_23 \def (Bind b) in (let TMP_24 \def (CHead c3 TMP_23 u) in (clear TMP_24 
-e2)))) in (let TMP_26 \def (Bind b) in (let TMP_27 \def (CHead c3 TMP_26 u) 
-in (let TMP_28 \def (Bind b) in (let TMP_29 \def (csuba_head g c3 c4 H0 
-TMP_28 u) in (let TMP_30 \def (clear_bind b c3 u) in (let TMP_31 \def 
-(ex_intro2 C TMP_22 TMP_25 TMP_27 TMP_29 TMP_30) in (let TMP_32 \def 
-(clear_gen_bind b c4 e1 u H3) in (eq_ind_r C TMP_14 TMP_19 TMP_31 e1 
-TMP_32))))))))))))))) in (let TMP_48 \def (\lambda (f: F).(\lambda (H3: 
-(clear (CHead c4 (Flat f) u) e1)).(let TMP_34 \def (clear_gen_flat f c4 e1 u 
-H3) in (let H4 \def (H1 e1 TMP_34) in (let TMP_35 \def (\lambda (e2: 
-C).(csuba g e2 e1)) in (let TMP_36 \def (\lambda (e2: C).(clear c3 e2)) in 
-(let TMP_37 \def (\lambda (e2: C).(csuba g e2 e1)) in (let TMP_40 \def 
-(\lambda (e2: C).(let TMP_38 \def (Flat f) in (let TMP_39 \def (CHead c3 
-TMP_38 u) in (clear TMP_39 e2)))) in (let TMP_41 \def (ex2 C TMP_37 TMP_40) 
-in (let TMP_47 \def (\lambda (x: C).(\lambda (H5: (csuba g x e1)).(\lambda 
-(H6: (clear c3 x)).(let TMP_42 \def (\lambda (e2: C).(csuba g e2 e1)) in (let 
-TMP_45 \def (\lambda (e2: C).(let TMP_43 \def (Flat f) in (let TMP_44 \def 
-(CHead c3 TMP_43 u) in (clear TMP_44 e2)))) in (let TMP_46 \def (clear_flat 
-c3 x H6 f u) in (ex_intro2 C TMP_42 TMP_45 x H5 TMP_46))))))) in (ex2_ind C 
-TMP_35 TMP_36 TMP_41 TMP_47 H4))))))))))) in (K_ind TMP_12 TMP_33 TMP_48 k 
-H2)))))))))))) in (let TMP_69 \def (\lambda (c3: C).(\lambda (c4: C).(\lambda 
-(H0: (csuba g c3 c4)).(\lambda (_: ((\forall (e1: C).((clear c4 e1) \to (ex2 
-C (\lambda (e2: C).(csuba g e2 e1)) (\lambda (e2: C).(clear c3 
-e2))))))).(\lambda (b: B).(\lambda (H2: (not (eq B b Void))).(\lambda (u1: 
-T).(\lambda (u2: T).(\lambda (e1: C).(\lambda (H3: (clear (CHead c4 (Bind b) 
-u2) e1)).(let TMP_50 \def (Bind b) in (let TMP_51 \def (CHead c4 TMP_50 u2) 
-in (let TMP_56 \def (\lambda (c: C).(let TMP_52 \def (\lambda (e2: C).(csuba 
-g e2 c)) in (let TMP_55 \def (\lambda (e2: C).(let TMP_53 \def (Bind Void) in 
-(let TMP_54 \def (CHead c3 TMP_53 u1) in (clear TMP_54 e2)))) in (ex2 C 
-TMP_52 TMP_55)))) in (let TMP_59 \def (\lambda (e2: C).(let TMP_57 \def (Bind 
-b) in (let TMP_58 \def (CHead c4 TMP_57 u2) in (csuba g e2 TMP_58)))) in (let 
-TMP_62 \def (\lambda (e2: C).(let TMP_60 \def (Bind Void) in (let TMP_61 \def 
-(CHead c3 TMP_60 u1) in (clear TMP_61 e2)))) in (let TMP_63 \def (Bind Void) 
-in (let TMP_64 \def (CHead c3 TMP_63 u1) in (let TMP_65 \def (csuba_void g c3 
-c4 H0 b H2 u1 u2) in (let TMP_66 \def (clear_bind Void c3 u1) in (let TMP_67 
-\def (ex_intro2 C TMP_59 TMP_62 TMP_64 TMP_65 TMP_66) in (let TMP_68 \def 
-(clear_gen_bind b c4 e1 u2 H3) in (eq_ind_r C TMP_51 TMP_56 TMP_67 e1 
-TMP_68)))))))))))))))))))))) in (let TMP_89 \def (\lambda (c3: C).(\lambda 
-(c4: C).(\lambda (H0: (csuba g c3 c4)).(\lambda (_: ((\forall (e1: C).((clear 
-c4 e1) \to (ex2 C (\lambda (e2: C).(csuba g e2 e1)) (\lambda (e2: C).(clear 
-c3 e2))))))).(\lambda (t: T).(\lambda (a: A).(\lambda (H2: (arity g c3 t 
-(asucc g a))).(\lambda (u: T).(\lambda (H3: (arity g c4 u a)).(\lambda (e1: 
-C).(\lambda (H4: (clear (CHead c4 (Bind Abbr) u) e1)).(let TMP_70 \def (Bind 
-Abbr) in (let TMP_71 \def (CHead c4 TMP_70 u) in (let TMP_76 \def (\lambda 
-(c: C).(let TMP_72 \def (\lambda (e2: C).(csuba g e2 c)) in (let TMP_75 \def 
-(\lambda (e2: C).(let TMP_73 \def (Bind Abst) in (let TMP_74 \def (CHead c3 
-TMP_73 t) in (clear TMP_74 e2)))) in (ex2 C TMP_72 TMP_75)))) in (let TMP_79 
-\def (\lambda (e2: C).(let TMP_77 \def (Bind Abbr) in (let TMP_78 \def (CHead 
-c4 TMP_77 u) in (csuba g e2 TMP_78)))) in (let TMP_82 \def (\lambda (e2: 
-C).(let TMP_80 \def (Bind Abst) in (let TMP_81 \def (CHead c3 TMP_80 t) in 
-(clear TMP_81 e2)))) in (let TMP_83 \def (Bind Abst) in (let TMP_84 \def 
-(CHead c3 TMP_83 t) in (let TMP_85 \def (csuba_abst g c3 c4 H0 t a H2 u H3) 
-in (let TMP_86 \def (clear_bind Abst c3 t) in (let TMP_87 \def (ex_intro2 C 
-TMP_79 TMP_82 TMP_84 TMP_85 TMP_86) in (let TMP_88 \def (clear_gen_bind Abbr 
-c4 e1 u H4) in (eq_ind_r C TMP_71 TMP_76 TMP_87 e1 
-TMP_88))))))))))))))))))))))) in (csuba_ind g TMP_3 TMP_8 TMP_49 TMP_69 
-TMP_89 c2 c1 H))))))))).
+(clear (CHead c4 k u) e1)).(K_ind (\lambda (k0: K).((clear (CHead c4 k0 u) 
+e1) \to (ex2 C (\lambda (e2: C).(csuba g e2 e1)) (\lambda (e2: C).(clear 
+(CHead c3 k0 u) e2))))) (\lambda (b: B).(\lambda (H3: (clear (CHead c4 (Bind 
+b) u) e1)).(eq_ind_r C (CHead c4 (Bind b) u) (\lambda (c: C).(ex2 C (\lambda 
+(e2: C).(csuba g e2 c)) (\lambda (e2: C).(clear (CHead c3 (Bind b) u) e2)))) 
+(ex_intro2 C (\lambda (e2: C).(csuba g e2 (CHead c4 (Bind b) u))) (\lambda 
+(e2: C).(clear (CHead c3 (Bind b) u) e2)) (CHead c3 (Bind b) u) (csuba_head g 
+c3 c4 H0 (Bind b) u) (clear_bind b c3 u)) e1 (clear_gen_bind b c4 e1 u H3)))) 
+(\lambda (f: F).(\lambda (H3: (clear (CHead c4 (Flat f) u) e1)).(let H4 \def 
+(H1 e1 (clear_gen_flat f c4 e1 u H3)) in (ex2_ind C (\lambda (e2: C).(csuba g 
+e2 e1)) (\lambda (e2: C).(clear c3 e2)) (ex2 C (\lambda (e2: C).(csuba g e2 
+e1)) (\lambda (e2: C).(clear (CHead c3 (Flat f) u) e2))) (\lambda (x: 
+C).(\lambda (H5: (csuba g x e1)).(\lambda (H6: (clear c3 x)).(ex_intro2 C 
+(\lambda (e2: C).(csuba g e2 e1)) (\lambda (e2: C).(clear (CHead c3 (Flat f) 
+u) e2)) x H5 (clear_flat c3 x H6 f u))))) H4)))) k H2))))))))) (\lambda (c3: 
+C).(\lambda (c4: C).(\lambda (H0: (csuba g c3 c4)).(\lambda (_: ((\forall 
+(e1: C).((clear c4 e1) \to (ex2 C (\lambda (e2: C).(csuba g e2 e1)) (\lambda 
+(e2: C).(clear c3 e2))))))).(\lambda (b: B).(\lambda (H2: (not (eq B b 
+Void))).(\lambda (u1: T).(\lambda (u2: T).(\lambda (e1: C).(\lambda (H3: 
+(clear (CHead c4 (Bind b) u2) e1)).(eq_ind_r C (CHead c4 (Bind b) u2) 
+(\lambda (c: C).(ex2 C (\lambda (e2: C).(csuba g e2 c)) (\lambda (e2: 
+C).(clear (CHead c3 (Bind Void) u1) e2)))) (ex_intro2 C (\lambda (e2: 
+C).(csuba g e2 (CHead c4 (Bind b) u2))) (\lambda (e2: C).(clear (CHead c3 
+(Bind Void) u1) e2)) (CHead c3 (Bind Void) u1) (csuba_void g c3 c4 H0 b H2 u1 
+u2) (clear_bind Void c3 u1)) e1 (clear_gen_bind b c4 e1 u2 H3)))))))))))) 
+(\lambda (c3: C).(\lambda (c4: C).(\lambda (H0: (csuba g c3 c4)).(\lambda (_: 
+((\forall (e1: C).((clear c4 e1) \to (ex2 C (\lambda (e2: C).(csuba g e2 e1)) 
+(\lambda (e2: C).(clear c3 e2))))))).(\lambda (t: T).(\lambda (a: A).(\lambda 
+(H2: (arity g c3 t (asucc g a))).(\lambda (u: T).(\lambda (H3: (arity g c4 u 
+a)).(\lambda (e1: C).(\lambda (H4: (clear (CHead c4 (Bind Abbr) u) 
+e1)).(eq_ind_r C (CHead c4 (Bind Abbr) u) (\lambda (c: C).(ex2 C (\lambda 
+(e2: C).(csuba g e2 c)) (\lambda (e2: C).(clear (CHead c3 (Bind Abst) t) 
+e2)))) (ex_intro2 C (\lambda (e2: C).(csuba g e2 (CHead c4 (Bind Abbr) u))) 
+(\lambda (e2: C).(clear (CHead c3 (Bind Abst) t) e2)) (CHead c3 (Bind Abst) 
+t) (csuba_abst g c3 c4 H0 t a H2 u H3) (clear_bind Abst c3 t)) e1 
+(clear_gen_bind Abbr c4 e1 u H4))))))))))))) c2 c1 H)))).
 
index 5dab712a8b678e1a71523daaf04eddaa522f7548..0dddd9cd8d5e5b5269916b65cf3b90e42b65269f 100644 (file)
@@ -21,8 +21,7 @@ include "basic_1/C/fwd.ma".
 theorem csuba_refl:
  \forall (g: G).(\forall (c: C).(csuba g c c))
 \def
- \lambda (g: G).(\lambda (c: C).(let TMP_1 \def (\lambda (c0: C).(csuba g c0 
-c0)) in (let TMP_2 \def (\lambda (n: nat).(csuba_sort g n)) in (let TMP_3 
-\def (\lambda (c0: C).(\lambda (H: (csuba g c0 c0)).(\lambda (k: K).(\lambda 
-(t: T).(csuba_head g c0 c0 H k t))))) in (C_ind TMP_1 TMP_2 TMP_3 c))))).
+ \lambda (g: G).(\lambda (c: C).(C_ind (\lambda (c0: C).(csuba g c0 c0)) 
+(\lambda (n: nat).(csuba_sort g n)) (\lambda (c0: C).(\lambda (H: (csuba g c0 
+c0)).(\lambda (k: K).(\lambda (t: T).(csuba_head g c0 c0 H k t))))) c)).
 
index 72943adfca646d9c1fdce2b47e991d4ad04d35dd..079eed63ba19ed29293ecd5f1173c0e9d6be34b1 100644 (file)
@@ -21,9 +21,8 @@ theorem csubc_arity_conf:
 (\forall (t: T).(\forall (a: A).((arity g c1 t a) \to (arity g c2 t a)))))))
 \def
  \lambda (g: G).(\lambda (c1: C).(\lambda (c2: C).(\lambda (H: (csubc g c1 
-c2)).(\lambda (t: T).(\lambda (a: A).(\lambda (H0: (arity g c1 t a)).(let 
-TMP_1 \def (csubc_csuba g c1 c2 H) in (csuba_arity g c1 t a H0 c2 
-TMP_1)))))))).
+c2)).(\lambda (t: T).(\lambda (a: A).(\lambda (H0: (arity g c1 t 
+a)).(csuba_arity g c1 t a H0 c2 (csubc_csuba g c1 c2 H)))))))).
 
 theorem csubc_arity_trans:
  \forall (g: G).(\forall (c1: C).(\forall (c2: C).((csubc g c1 c2) \to 
@@ -32,6 +31,6 @@ theorem csubc_arity_trans:
 \def
  \lambda (g: G).(\lambda (c1: C).(\lambda (c2: C).(\lambda (H: (csubc g c1 
 c2)).(\lambda (H0: (csubv c1 c2)).(\lambda (t: T).(\lambda (a: A).(\lambda 
-(H1: (arity g c2 t a)).(let TMP_1 \def (csubc_csuba g c1 c2 H) in 
-(csuba_arity_rev g c2 t a H1 c1 TMP_1 H0))))))))).
+(H1: (arity g c2 t a)).(csuba_arity_rev g c2 t a H1 c1 (csubc_csuba g c1 c2 
+H) H0)))))))).
 
index 6339cf8fcd1e6a8a37d852988ce51ed42db0b037..bd6677d644947ab7a78e4caa6bae0ea9b89df129 100644 (file)
@@ -24,251 +24,144 @@ theorem csubc_clear_conf:
 (e2: C).(csubc g e1 e2))))))))
 \def
  \lambda (g: G).(\lambda (c1: C).(\lambda (e1: C).(\lambda (H: (clear c1 
-e1)).(let TMP_3 \def (\lambda (c: C).(\lambda (c0: C).(\forall (c2: 
-C).((csubc g c c2) \to (let TMP_1 \def (\lambda (e2: C).(clear c2 e2)) in 
-(let TMP_2 \def (\lambda (e2: C).(csubc g c0 e2)) in (ex2 C TMP_1 
-TMP_2))))))) in (let TMP_157 \def (\lambda (b: B).(\lambda (e: C).(\lambda 
-(u: T).(\lambda (c2: C).(\lambda (H0: (csubc g (CHead e (Bind b) u) c2)).(let 
-TMP_4 \def (Bind b) in (let H_x \def (csubc_gen_head_l g e c2 u TMP_4 H0) in 
-(let H1 \def H_x in (let TMP_7 \def (\lambda (c3: C).(let TMP_5 \def (Bind b) 
-in (let TMP_6 \def (CHead c3 TMP_5 u) in (eq C c2 TMP_6)))) in (let TMP_8 
-\def (\lambda (c3: C).(csubc g e c3)) in (let TMP_9 \def (ex2 C TMP_7 TMP_8) 
-in (let TMP_12 \def (\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(let 
-TMP_10 \def (Bind b) in (let TMP_11 \def (Bind Abst) in (eq K TMP_10 
-TMP_11)))))) in (let TMP_15 \def (\lambda (c3: C).(\lambda (w: T).(\lambda 
-(_: A).(let TMP_13 \def (Bind Abbr) in (let TMP_14 \def (CHead c3 TMP_13 w) 
-in (eq C c2 TMP_14)))))) in (let TMP_16 \def (\lambda (c3: C).(\lambda (_: 
-T).(\lambda (_: A).(csubc g e c3)))) in (let TMP_18 \def (\lambda (_: 
-C).(\lambda (_: T).(\lambda (a: A).(let TMP_17 \def (asucc g a) in (sc3 g 
-TMP_17 e u))))) in (let TMP_19 \def (\lambda (c3: C).(\lambda (w: T).(\lambda 
-(a: A).(sc3 g a c3 w)))) in (let TMP_20 \def (ex5_3 C T A TMP_12 TMP_15 
-TMP_16 TMP_18 TMP_19) in (let TMP_23 \def (\lambda (b0: B).(\lambda (c3: 
-C).(\lambda (v2: T).(let TMP_21 \def (Bind b0) in (let TMP_22 \def (CHead c3 
-TMP_21 v2) in (eq C c2 TMP_22)))))) in (let TMP_26 \def (\lambda (_: 
-B).(\lambda (_: C).(\lambda (_: T).(let TMP_24 \def (Bind b) in (let TMP_25 
-\def (Bind Void) in (eq K TMP_24 TMP_25)))))) in (let TMP_28 \def (\lambda 
-(b0: B).(\lambda (_: C).(\lambda (_: T).(let TMP_27 \def (eq B b0 Void) in 
-(not TMP_27))))) in (let TMP_29 \def (\lambda (_: B).(\lambda (c3: 
-C).(\lambda (_: T).(csubc g e c3)))) in (let TMP_30 \def (ex4_3 B C T TMP_23 
-TMP_26 TMP_28 TMP_29) in (let TMP_31 \def (\lambda (e2: C).(clear c2 e2)) in 
-(let TMP_34 \def (\lambda (e2: C).(let TMP_32 \def (Bind b) in (let TMP_33 
-\def (CHead e TMP_32 u) in (csubc g TMP_33 e2)))) in (let TMP_35 \def (ex2 C 
-TMP_31 TMP_34) in (let TMP_65 \def (\lambda (H2: (ex2 C (\lambda (c3: C).(eq 
-C c2 (CHead c3 (Bind b) u))) (\lambda (c3: C).(csubc g e c3)))).(let TMP_38 
-\def (\lambda (c3: C).(let TMP_36 \def (Bind b) in (let TMP_37 \def (CHead c3 
-TMP_36 u) in (eq C c2 TMP_37)))) in (let TMP_39 \def (\lambda (c3: C).(csubc 
-g e c3)) in (let TMP_40 \def (\lambda (e2: C).(clear c2 e2)) in (let TMP_43 
-\def (\lambda (e2: C).(let TMP_41 \def (Bind b) in (let TMP_42 \def (CHead e 
-TMP_41 u) in (csubc g TMP_42 e2)))) in (let TMP_44 \def (ex2 C TMP_40 TMP_43) 
-in (let TMP_64 \def (\lambda (x: C).(\lambda (H3: (eq C c2 (CHead x (Bind b) 
-u))).(\lambda (H4: (csubc g e x)).(let TMP_45 \def (Bind b) in (let TMP_46 
-\def (CHead x TMP_45 u) in (let TMP_51 \def (\lambda (c: C).(let TMP_47 \def 
-(\lambda (e2: C).(clear c e2)) in (let TMP_50 \def (\lambda (e2: C).(let 
-TMP_48 \def (Bind b) in (let TMP_49 \def (CHead e TMP_48 u) in (csubc g 
-TMP_49 e2)))) in (ex2 C TMP_47 TMP_50)))) in (let TMP_54 \def (\lambda (e2: 
-C).(let TMP_52 \def (Bind b) in (let TMP_53 \def (CHead x TMP_52 u) in (clear 
-TMP_53 e2)))) in (let TMP_57 \def (\lambda (e2: C).(let TMP_55 \def (Bind b) 
-in (let TMP_56 \def (CHead e TMP_55 u) in (csubc g TMP_56 e2)))) in (let 
-TMP_58 \def (Bind b) in (let TMP_59 \def (CHead x TMP_58 u) in (let TMP_60 
-\def (clear_bind b x u) in (let TMP_61 \def (Bind b) in (let TMP_62 \def 
-(csubc_head g e x H4 TMP_61 u) in (let TMP_63 \def (ex_intro2 C TMP_54 TMP_57 
-TMP_59 TMP_60 TMP_62) in (eq_ind_r C TMP_46 TMP_51 TMP_63 c2 
-H3))))))))))))))) in (ex2_ind C TMP_38 TMP_39 TMP_44 TMP_64 H2)))))))) in 
-(let TMP_111 \def (\lambda (H2: (ex5_3 C T A (\lambda (_: C).(\lambda (_: 
+e1)).(clear_ind (\lambda (c: C).(\lambda (c0: C).(\forall (c2: C).((csubc g c 
+c2) \to (ex2 C (\lambda (e2: C).(clear c2 e2)) (\lambda (e2: C).(csubc g c0 
+e2))))))) (\lambda (b: B).(\lambda (e: C).(\lambda (u: T).(\lambda (c2: 
+C).(\lambda (H0: (csubc g (CHead e (Bind b) u) c2)).(let H_x \def 
+(csubc_gen_head_l g e c2 u (Bind b) H0) in (let H1 \def H_x in (or3_ind (ex2 
+C (\lambda (c3: C).(eq C c2 (CHead c3 (Bind b) u))) (\lambda (c3: C).(csubc g 
+e c3))) (ex5_3 C T A (\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(eq K 
+(Bind b) (Bind Abst))))) (\lambda (c3: C).(\lambda (w: T).(\lambda (_: A).(eq 
+C c2 (CHead c3 (Bind Abbr) w))))) (\lambda (c3: C).(\lambda (_: T).(\lambda 
+(_: A).(csubc g e c3)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(sc3 
+g (asucc g a) e u)))) (\lambda (c3: C).(\lambda (w: T).(\lambda (a: A).(sc3 g 
+a c3 w))))) (ex4_3 B C T (\lambda (b0: B).(\lambda (c3: C).(\lambda (v2: 
+T).(eq C c2 (CHead c3 (Bind b0) v2))))) (\lambda (_: B).(\lambda (_: 
+C).(\lambda (_: T).(eq K (Bind b) (Bind Void))))) (\lambda (b0: B).(\lambda 
+(_: C).(\lambda (_: T).(not (eq B b0 Void))))) (\lambda (_: B).(\lambda (c3: 
+C).(\lambda (_: T).(csubc g e c3))))) (ex2 C (\lambda (e2: C).(clear c2 e2)) 
+(\lambda (e2: C).(csubc g (CHead e (Bind b) u) e2))) (\lambda (H2: (ex2 C 
+(\lambda (c3: C).(eq C c2 (CHead c3 (Bind b) u))) (\lambda (c3: C).(csubc g e 
+c3)))).(ex2_ind C (\lambda (c3: C).(eq C c2 (CHead c3 (Bind b) u))) (\lambda 
+(c3: C).(csubc g e c3)) (ex2 C (\lambda (e2: C).(clear c2 e2)) (\lambda (e2: 
+C).(csubc g (CHead e (Bind b) u) e2))) (\lambda (x: C).(\lambda (H3: (eq C c2 
+(CHead x (Bind b) u))).(\lambda (H4: (csubc g e x)).(eq_ind_r C (CHead x 
+(Bind b) u) (\lambda (c: C).(ex2 C (\lambda (e2: C).(clear c e2)) (\lambda 
+(e2: C).(csubc g (CHead e (Bind b) u) e2)))) (ex_intro2 C (\lambda (e2: 
+C).(clear (CHead x (Bind b) u) e2)) (\lambda (e2: C).(csubc g (CHead e (Bind 
+b) u) e2)) (CHead x (Bind b) u) (clear_bind b x u) (csubc_head g e x H4 (Bind 
+b) u)) c2 H3)))) H2)) (\lambda (H2: (ex5_3 C T A (\lambda (_: C).(\lambda (_: 
 T).(\lambda (_: A).(eq K (Bind b) (Bind Abst))))) (\lambda (c3: C).(\lambda 
 (w: T).(\lambda (_: A).(eq C c2 (CHead c3 (Bind Abbr) w))))) (\lambda (c3: 
 C).(\lambda (_: T).(\lambda (_: A).(csubc g e c3)))) (\lambda (_: C).(\lambda 
 (_: T).(\lambda (a: A).(sc3 g (asucc g a) e u)))) (\lambda (c3: C).(\lambda 
-(w: T).(\lambda (a: A).(sc3 g a c3 w)))))).(let TMP_68 \def (\lambda (_: 
-C).(\lambda (_: T).(\lambda (_: A).(let TMP_66 \def (Bind b) in (let TMP_67 
-\def (Bind Abst) in (eq K TMP_66 TMP_67)))))) in (let TMP_71 \def (\lambda 
-(c3: C).(\lambda (w: T).(\lambda (_: A).(let TMP_69 \def (Bind Abbr) in (let 
-TMP_70 \def (CHead c3 TMP_69 w) in (eq C c2 TMP_70)))))) in (let TMP_72 \def 
-(\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g e c3)))) in (let 
-TMP_74 \def (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(let TMP_73 \def 
-(asucc g a) in (sc3 g TMP_73 e u))))) in (let TMP_75 \def (\lambda (c3: 
-C).(\lambda (w: T).(\lambda (a: A).(sc3 g a c3 w)))) in (let TMP_76 \def 
-(\lambda (e2: C).(clear c2 e2)) in (let TMP_79 \def (\lambda (e2: C).(let 
-TMP_77 \def (Bind b) in (let TMP_78 \def (CHead e TMP_77 u) in (csubc g 
-TMP_78 e2)))) in (let TMP_80 \def (ex2 C TMP_76 TMP_79) in (let TMP_110 \def 
-(\lambda (x0: C).(\lambda (x1: T).(\lambda (x2: A).(\lambda (H3: (eq K (Bind 
-b) (Bind Abst))).(\lambda (H4: (eq C c2 (CHead x0 (Bind Abbr) x1))).(\lambda 
-(H5: (csubc g e x0)).(\lambda (H6: (sc3 g (asucc g x2) e u)).(\lambda (H7: 
-(sc3 g x2 x0 x1)).(let TMP_81 \def (Bind Abbr) in (let TMP_82 \def (CHead x0 
-TMP_81 x1) in (let TMP_87 \def (\lambda (c: C).(let TMP_83 \def (\lambda (e2: 
-C).(clear c e2)) in (let TMP_86 \def (\lambda (e2: C).(let TMP_84 \def (Bind 
-b) in (let TMP_85 \def (CHead e TMP_84 u) in (csubc g TMP_85 e2)))) in (ex2 C 
-TMP_83 TMP_86)))) in (let TMP_88 \def (\lambda (e0: K).(match e0 with [(Bind 
-b0) \Rightarrow b0 | (Flat _) \Rightarrow b])) in (let TMP_89 \def (Bind b) 
-in (let TMP_90 \def (Bind Abst) in (let H8 \def (f_equal K B TMP_88 TMP_89 
-TMP_90 H3) in (let TMP_97 \def (\lambda (b0: B).(let TMP_93 \def (\lambda 
-(e2: C).(let TMP_91 \def (Bind Abbr) in (let TMP_92 \def (CHead x0 TMP_91 x1) 
-in (clear TMP_92 e2)))) in (let TMP_96 \def (\lambda (e2: C).(let TMP_94 \def 
-(Bind b0) in (let TMP_95 \def (CHead e TMP_94 u) in (csubc g TMP_95 e2)))) in 
-(ex2 C TMP_93 TMP_96)))) in (let TMP_100 \def (\lambda (e2: C).(let TMP_98 
-\def (Bind Abbr) in (let TMP_99 \def (CHead x0 TMP_98 x1) in (clear TMP_99 
-e2)))) in (let TMP_103 \def (\lambda (e2: C).(let TMP_101 \def (Bind Abst) in 
-(let TMP_102 \def (CHead e TMP_101 u) in (csubc g TMP_102 e2)))) in (let 
-TMP_104 \def (Bind Abbr) in (let TMP_105 \def (CHead x0 TMP_104 x1) in (let 
-TMP_106 \def (clear_bind Abbr x0 x1) in (let TMP_107 \def (csubc_abst g e x0 
-H5 u x2 H6 x1 H7) in (let TMP_108 \def (ex_intro2 C TMP_100 TMP_103 TMP_105 
-TMP_106 TMP_107) in (let TMP_109 \def (eq_ind_r B Abst TMP_97 TMP_108 b H8) 
-in (eq_ind_r C TMP_82 TMP_87 TMP_109 c2 H4))))))))))))))))))))))))) in 
-(ex5_3_ind C T A TMP_68 TMP_71 TMP_72 TMP_74 TMP_75 TMP_80 TMP_110 
-H2))))))))))) in (let TMP_156 \def (\lambda (H2: (ex4_3 B C T (\lambda (b0: 
-B).(\lambda (c3: C).(\lambda (v2: T).(eq C c2 (CHead c3 (Bind b0) v2))))) 
-(\lambda (_: B).(\lambda (_: C).(\lambda (_: T).(eq K (Bind b) (Bind 
-Void))))) (\lambda (b0: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b0 
-Void))))) (\lambda (_: B).(\lambda (c3: C).(\lambda (_: T).(csubc g e 
-c3)))))).(let TMP_114 \def (\lambda (b0: B).(\lambda (c3: C).(\lambda (v2: 
-T).(let TMP_112 \def (Bind b0) in (let TMP_113 \def (CHead c3 TMP_112 v2) in 
-(eq C c2 TMP_113)))))) in (let TMP_117 \def (\lambda (_: B).(\lambda (_: 
-C).(\lambda (_: T).(let TMP_115 \def (Bind b) in (let TMP_116 \def (Bind 
-Void) in (eq K TMP_115 TMP_116)))))) in (let TMP_119 \def (\lambda (b0: 
-B).(\lambda (_: C).(\lambda (_: T).(let TMP_118 \def (eq B b0 Void) in (not 
-TMP_118))))) in (let TMP_120 \def (\lambda (_: B).(\lambda (c3: C).(\lambda 
-(_: T).(csubc g e c3)))) in (let TMP_121 \def (\lambda (e2: C).(clear c2 e2)) 
-in (let TMP_124 \def (\lambda (e2: C).(let TMP_122 \def (Bind b) in (let 
-TMP_123 \def (CHead e TMP_122 u) in (csubc g TMP_123 e2)))) in (let TMP_125 
-\def (ex2 C TMP_121 TMP_124) in (let TMP_155 \def (\lambda (x0: B).(\lambda 
-(x1: C).(\lambda (x2: T).(\lambda (H3: (eq C c2 (CHead x1 (Bind x0) 
-x2))).(\lambda (H4: (eq K (Bind b) (Bind Void))).(\lambda (H5: (not (eq B x0 
-Void))).(\lambda (H6: (csubc g e x1)).(let TMP_126 \def (Bind x0) in (let 
-TMP_127 \def (CHead x1 TMP_126 x2) in (let TMP_132 \def (\lambda (c: C).(let 
-TMP_128 \def (\lambda (e2: C).(clear c e2)) in (let TMP_131 \def (\lambda 
-(e2: C).(let TMP_129 \def (Bind b) in (let TMP_130 \def (CHead e TMP_129 u) 
-in (csubc g TMP_130 e2)))) in (ex2 C TMP_128 TMP_131)))) in (let TMP_133 \def 
-(\lambda (e0: K).(match e0 with [(Bind b0) \Rightarrow b0 | (Flat _) 
-\Rightarrow b])) in (let TMP_134 \def (Bind b) in (let TMP_135 \def (Bind 
-Void) in (let H7 \def (f_equal K B TMP_133 TMP_134 TMP_135 H4) in (let 
-TMP_142 \def (\lambda (b0: B).(let TMP_138 \def (\lambda (e2: C).(let TMP_136 
-\def (Bind x0) in (let TMP_137 \def (CHead x1 TMP_136 x2) in (clear TMP_137 
-e2)))) in (let TMP_141 \def (\lambda (e2: C).(let TMP_139 \def (Bind b0) in 
-(let TMP_140 \def (CHead e TMP_139 u) in (csubc g TMP_140 e2)))) in (ex2 C 
-TMP_138 TMP_141)))) in (let TMP_145 \def (\lambda (e2: C).(let TMP_143 \def 
-(Bind x0) in (let TMP_144 \def (CHead x1 TMP_143 x2) in (clear TMP_144 e2)))) 
-in (let TMP_148 \def (\lambda (e2: C).(let TMP_146 \def (Bind Void) in (let 
-TMP_147 \def (CHead e TMP_146 u) in (csubc g TMP_147 e2)))) in (let TMP_149 
-\def (Bind x0) in (let TMP_150 \def (CHead x1 TMP_149 x2) in (let TMP_151 
-\def (clear_bind x0 x1 x2) in (let TMP_152 \def (csubc_void g e x1 H6 x0 H5 u 
-x2) in (let TMP_153 \def (ex_intro2 C TMP_145 TMP_148 TMP_150 TMP_151 
-TMP_152) in (let TMP_154 \def (eq_ind_r B Void TMP_142 TMP_153 b H7) in 
-(eq_ind_r C TMP_127 TMP_132 TMP_154 c2 H3)))))))))))))))))))))))) in 
-(ex4_3_ind B C T TMP_114 TMP_117 TMP_119 TMP_120 TMP_125 TMP_155 H2)))))))))) 
-in (or3_ind TMP_9 TMP_20 TMP_30 TMP_35 TMP_65 TMP_111 TMP_156 
-H1))))))))))))))))))))))))))))) in (let TMP_273 \def (\lambda (e: C).(\lambda 
-(c: C).(\lambda (_: (clear e c)).(\lambda (H1: ((\forall (c2: C).((csubc g e 
-c2) \to (ex2 C (\lambda (e2: C).(clear c2 e2)) (\lambda (e2: C).(csubc g c 
-e2))))))).(\lambda (f: F).(\lambda (u: T).(\lambda (c2: C).(\lambda (H2: 
-(csubc g (CHead e (Flat f) u) c2)).(let TMP_158 \def (Flat f) in (let H_x 
-\def (csubc_gen_head_l g e c2 u TMP_158 H2) in (let H3 \def H_x in (let 
-TMP_161 \def (\lambda (c3: C).(let TMP_159 \def (Flat f) in (let TMP_160 \def 
-(CHead c3 TMP_159 u) in (eq C c2 TMP_160)))) in (let TMP_162 \def (\lambda 
-(c3: C).(csubc g e c3)) in (let TMP_163 \def (ex2 C TMP_161 TMP_162) in (let 
-TMP_166 \def (\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(let TMP_164 
-\def (Flat f) in (let TMP_165 \def (Bind Abst) in (eq K TMP_164 TMP_165)))))) 
-in (let TMP_169 \def (\lambda (c3: C).(\lambda (w: T).(\lambda (_: A).(let 
-TMP_167 \def (Bind Abbr) in (let TMP_168 \def (CHead c3 TMP_167 w) in (eq C 
-c2 TMP_168)))))) in (let TMP_170 \def (\lambda (c3: C).(\lambda (_: 
-T).(\lambda (_: A).(csubc g e c3)))) in (let TMP_172 \def (\lambda (_: 
-C).(\lambda (_: T).(\lambda (a: A).(let TMP_171 \def (asucc g a) in (sc3 g 
-TMP_171 e u))))) in (let TMP_173 \def (\lambda (c3: C).(\lambda (w: 
-T).(\lambda (a: A).(sc3 g a c3 w)))) in (let TMP_174 \def (ex5_3 C T A 
-TMP_166 TMP_169 TMP_170 TMP_172 TMP_173) in (let TMP_177 \def (\lambda (b: 
-B).(\lambda (c3: C).(\lambda (v2: T).(let TMP_175 \def (Bind b) in (let 
-TMP_176 \def (CHead c3 TMP_175 v2) in (eq C c2 TMP_176)))))) in (let TMP_180 
-\def (\lambda (_: B).(\lambda (_: C).(\lambda (_: T).(let TMP_178 \def (Flat 
-f) in (let TMP_179 \def (Bind Void) in (eq K TMP_178 TMP_179)))))) in (let 
-TMP_182 \def (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(let TMP_181 
-\def (eq B b Void) in (not TMP_181))))) in (let TMP_183 \def (\lambda (_: 
-B).(\lambda (c3: C).(\lambda (_: T).(csubc g e c3)))) in (let TMP_184 \def 
-(ex4_3 B C T TMP_177 TMP_180 TMP_182 TMP_183) in (let TMP_185 \def (\lambda 
-(e2: C).(clear c2 e2)) in (let TMP_186 \def (\lambda (e2: C).(csubc g c e2)) 
-in (let TMP_187 \def (ex2 C TMP_185 TMP_186) in (let TMP_215 \def (\lambda 
-(H4: (ex2 C (\lambda (c3: C).(eq C c2 (CHead c3 (Flat f) u))) (\lambda (c3: 
-C).(csubc g e c3)))).(let TMP_190 \def (\lambda (c3: C).(let TMP_188 \def 
-(Flat f) in (let TMP_189 \def (CHead c3 TMP_188 u) in (eq C c2 TMP_189)))) in 
-(let TMP_191 \def (\lambda (c3: C).(csubc g e c3)) in (let TMP_192 \def 
-(\lambda (e2: C).(clear c2 e2)) in (let TMP_193 \def (\lambda (e2: C).(csubc 
-g c e2)) in (let TMP_194 \def (ex2 C TMP_192 TMP_193) in (let TMP_214 \def 
-(\lambda (x: C).(\lambda (H5: (eq C c2 (CHead x (Flat f) u))).(\lambda (H6: 
-(csubc g e x)).(let TMP_195 \def (Flat f) in (let TMP_196 \def (CHead x 
-TMP_195 u) in (let TMP_199 \def (\lambda (c0: C).(let TMP_197 \def (\lambda 
-(e2: C).(clear c0 e2)) in (let TMP_198 \def (\lambda (e2: C).(csubc g c e2)) 
-in (ex2 C TMP_197 TMP_198)))) in (let H_x0 \def (H1 x H6) in (let H7 \def 
-H_x0 in (let TMP_200 \def (\lambda (e2: C).(clear x e2)) in (let TMP_201 \def 
-(\lambda (e2: C).(csubc g c e2)) in (let TMP_204 \def (\lambda (e2: C).(let 
-TMP_202 \def (Flat f) in (let TMP_203 \def (CHead x TMP_202 u) in (clear 
-TMP_203 e2)))) in (let TMP_205 \def (\lambda (e2: C).(csubc g c e2)) in (let 
-TMP_206 \def (ex2 C TMP_204 TMP_205) in (let TMP_212 \def (\lambda (x0: 
-C).(\lambda (H8: (clear x x0)).(\lambda (H9: (csubc g c x0)).(let TMP_209 
-\def (\lambda (e2: C).(let TMP_207 \def (Flat f) in (let TMP_208 \def (CHead 
-x TMP_207 u) in (clear TMP_208 e2)))) in (let TMP_210 \def (\lambda (e2: 
-C).(csubc g c e2)) in (let TMP_211 \def (clear_flat x x0 H8 f u) in 
-(ex_intro2 C TMP_209 TMP_210 x0 TMP_211 H9))))))) in (let TMP_213 \def 
-(ex2_ind C TMP_200 TMP_201 TMP_206 TMP_212 H7) in (eq_ind_r C TMP_196 TMP_199 
-TMP_213 c2 H5)))))))))))))))) in (ex2_ind C TMP_190 TMP_191 TMP_194 TMP_214 
-H4)))))))) in (let TMP_244 \def (\lambda (H4: (ex5_3 C T A (\lambda (_: 
-C).(\lambda (_: T).(\lambda (_: A).(eq K (Flat f) (Bind Abst))))) (\lambda 
+(w: T).(\lambda (a: A).(sc3 g a c3 w)))))).(ex5_3_ind C T A (\lambda (_: 
+C).(\lambda (_: T).(\lambda (_: A).(eq K (Bind b) (Bind Abst))))) (\lambda 
 (c3: C).(\lambda (w: T).(\lambda (_: A).(eq C c2 (CHead c3 (Bind Abbr) w))))) 
 (\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g e c3)))) (\lambda 
 (_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g (asucc g a) e u)))) (\lambda 
-(c3: C).(\lambda (w: T).(\lambda (a: A).(sc3 g a c3 w)))))).(let TMP_218 \def 
-(\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(let TMP_216 \def (Flat f) in 
-(let TMP_217 \def (Bind Abst) in (eq K TMP_216 TMP_217)))))) in (let TMP_221 
-\def (\lambda (c3: C).(\lambda (w: T).(\lambda (_: A).(let TMP_219 \def (Bind 
-Abbr) in (let TMP_220 \def (CHead c3 TMP_219 w) in (eq C c2 TMP_220)))))) in 
-(let TMP_222 \def (\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g e 
-c3)))) in (let TMP_224 \def (\lambda (_: C).(\lambda (_: T).(\lambda (a: 
-A).(let TMP_223 \def (asucc g a) in (sc3 g TMP_223 e u))))) in (let TMP_225 
-\def (\lambda (c3: C).(\lambda (w: T).(\lambda (a: A).(sc3 g a c3 w)))) in 
-(let TMP_226 \def (\lambda (e2: C).(clear c2 e2)) in (let TMP_227 \def 
-(\lambda (e2: C).(csubc g c e2)) in (let TMP_228 \def (ex2 C TMP_226 TMP_227) 
-in (let TMP_243 \def (\lambda (x0: C).(\lambda (x1: T).(\lambda (x2: 
-A).(\lambda (H5: (eq K (Flat f) (Bind Abst))).(\lambda (H6: (eq C c2 (CHead 
-x0 (Bind Abbr) x1))).(\lambda (_: (csubc g e x0)).(\lambda (_: (sc3 g (asucc 
-g x2) e u)).(\lambda (_: (sc3 g x2 x0 x1)).(let TMP_229 \def (Bind Abbr) in 
-(let TMP_230 \def (CHead x0 TMP_229 x1) in (let TMP_233 \def (\lambda (c0: 
-C).(let TMP_231 \def (\lambda (e2: C).(clear c0 e2)) in (let TMP_232 \def 
-(\lambda (e2: C).(csubc g c e2)) in (ex2 C TMP_231 TMP_232)))) in (let 
-TMP_234 \def (Flat f) in (let TMP_235 \def (\lambda (ee: K).(match ee with 
-[(Bind _) \Rightarrow False | (Flat _) \Rightarrow True])) in (let TMP_236 
-\def (Bind Abst) in (let H10 \def (eq_ind K TMP_234 TMP_235 I TMP_236 H5) in 
-(let TMP_239 \def (\lambda (e2: C).(let TMP_237 \def (Bind Abbr) in (let 
-TMP_238 \def (CHead x0 TMP_237 x1) in (clear TMP_238 e2)))) in (let TMP_240 
-\def (\lambda (e2: C).(csubc g c e2)) in (let TMP_241 \def (ex2 C TMP_239 
-TMP_240) in (let TMP_242 \def (False_ind TMP_241 H10) in (eq_ind_r C TMP_230 
-TMP_233 TMP_242 c2 H6)))))))))))))))))))) in (ex5_3_ind C T A TMP_218 TMP_221 
-TMP_222 TMP_224 TMP_225 TMP_228 TMP_243 H4))))))))))) in (let TMP_272 \def 
-(\lambda (H4: (ex4_3 B C T (\lambda (b: B).(\lambda (c3: C).(\lambda (v2: 
-T).(eq C c2 (CHead c3 (Bind b) v2))))) (\lambda (_: B).(\lambda (_: 
-C).(\lambda (_: T).(eq K (Flat f) (Bind Void))))) (\lambda (b: B).(\lambda 
-(_: C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_: B).(\lambda (c3: 
-C).(\lambda (_: T).(csubc g e c3)))))).(let TMP_247 \def (\lambda (b: 
-B).(\lambda (c3: C).(\lambda (v2: T).(let TMP_245 \def (Bind b) in (let 
-TMP_246 \def (CHead c3 TMP_245 v2) in (eq C c2 TMP_246)))))) in (let TMP_250 
-\def (\lambda (_: B).(\lambda (_: C).(\lambda (_: T).(let TMP_248 \def (Flat 
-f) in (let TMP_249 \def (Bind Void) in (eq K TMP_248 TMP_249)))))) in (let 
-TMP_252 \def (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(let TMP_251 
-\def (eq B b Void) in (not TMP_251))))) in (let TMP_253 \def (\lambda (_: 
-B).(\lambda (c3: C).(\lambda (_: T).(csubc g e c3)))) in (let TMP_254 \def 
-(\lambda (e2: C).(clear c2 e2)) in (let TMP_255 \def (\lambda (e2: C).(csubc 
-g c e2)) in (let TMP_256 \def (ex2 C TMP_254 TMP_255) in (let TMP_271 \def 
+(c3: C).(\lambda (w: T).(\lambda (a: A).(sc3 g a c3 w)))) (ex2 C (\lambda 
+(e2: C).(clear c2 e2)) (\lambda (e2: C).(csubc g (CHead e (Bind b) u) e2))) 
+(\lambda (x0: C).(\lambda (x1: T).(\lambda (x2: A).(\lambda (H3: (eq K (Bind 
+b) (Bind Abst))).(\lambda (H4: (eq C c2 (CHead x0 (Bind Abbr) x1))).(\lambda 
+(H5: (csubc g e x0)).(\lambda (H6: (sc3 g (asucc g x2) e u)).(\lambda (H7: 
+(sc3 g x2 x0 x1)).(eq_ind_r C (CHead x0 (Bind Abbr) x1) (\lambda (c: C).(ex2 
+C (\lambda (e2: C).(clear c e2)) (\lambda (e2: C).(csubc g (CHead e (Bind b) 
+u) e2)))) (let H8 \def (f_equal K B (\lambda (e0: K).(match e0 with [(Bind 
+b0) \Rightarrow b0 | (Flat _) \Rightarrow b])) (Bind b) (Bind Abst) H3) in 
+(eq_ind_r B Abst (\lambda (b0: B).(ex2 C (\lambda (e2: C).(clear (CHead x0 
+(Bind Abbr) x1) e2)) (\lambda (e2: C).(csubc g (CHead e (Bind b0) u) e2)))) 
+(ex_intro2 C (\lambda (e2: C).(clear (CHead x0 (Bind Abbr) x1) e2)) (\lambda 
+(e2: C).(csubc g (CHead e (Bind Abst) u) e2)) (CHead x0 (Bind Abbr) x1) 
+(clear_bind Abbr x0 x1) (csubc_abst g e x0 H5 u x2 H6 x1 H7)) b H8)) c2 
+H4))))))))) H2)) (\lambda (H2: (ex4_3 B C T (\lambda (b0: B).(\lambda (c3: 
+C).(\lambda (v2: T).(eq C c2 (CHead c3 (Bind b0) v2))))) (\lambda (_: 
+B).(\lambda (_: C).(\lambda (_: T).(eq K (Bind b) (Bind Void))))) (\lambda 
+(b0: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b0 Void))))) (\lambda (_: 
+B).(\lambda (c3: C).(\lambda (_: T).(csubc g e c3)))))).(ex4_3_ind B C T 
+(\lambda (b0: B).(\lambda (c3: C).(\lambda (v2: T).(eq C c2 (CHead c3 (Bind 
+b0) v2))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: T).(eq K (Bind b) 
+(Bind Void))))) (\lambda (b0: B).(\lambda (_: C).(\lambda (_: T).(not (eq B 
+b0 Void))))) (\lambda (_: B).(\lambda (c3: C).(\lambda (_: T).(csubc g e 
+c3)))) (ex2 C (\lambda (e2: C).(clear c2 e2)) (\lambda (e2: C).(csubc g 
+(CHead e (Bind b) u) e2))) (\lambda (x0: B).(\lambda (x1: C).(\lambda (x2: 
+T).(\lambda (H3: (eq C c2 (CHead x1 (Bind x0) x2))).(\lambda (H4: (eq K (Bind 
+b) (Bind Void))).(\lambda (H5: (not (eq B x0 Void))).(\lambda (H6: (csubc g e 
+x1)).(eq_ind_r C (CHead x1 (Bind x0) x2) (\lambda (c: C).(ex2 C (\lambda (e2: 
+C).(clear c e2)) (\lambda (e2: C).(csubc g (CHead e (Bind b) u) e2)))) (let 
+H7 \def (f_equal K B (\lambda (e0: K).(match e0 with [(Bind b0) \Rightarrow 
+b0 | (Flat _) \Rightarrow b])) (Bind b) (Bind Void) H4) in (eq_ind_r B Void 
+(\lambda (b0: B).(ex2 C (\lambda (e2: C).(clear (CHead x1 (Bind x0) x2) e2)) 
+(\lambda (e2: C).(csubc g (CHead e (Bind b0) u) e2)))) (ex_intro2 C (\lambda 
+(e2: C).(clear (CHead x1 (Bind x0) x2) e2)) (\lambda (e2: C).(csubc g (CHead 
+e (Bind Void) u) e2)) (CHead x1 (Bind x0) x2) (clear_bind x0 x1 x2) 
+(csubc_void g e x1 H6 x0 H5 u x2)) b H7)) c2 H3)))))))) H2)) H1)))))))) 
+(\lambda (e: C).(\lambda (c: C).(\lambda (_: (clear e c)).(\lambda (H1: 
+((\forall (c2: C).((csubc g e c2) \to (ex2 C (\lambda (e2: C).(clear c2 e2)) 
+(\lambda (e2: C).(csubc g c e2))))))).(\lambda (f: F).(\lambda (u: 
+T).(\lambda (c2: C).(\lambda (H2: (csubc g (CHead e (Flat f) u) c2)).(let H_x 
+\def (csubc_gen_head_l g e c2 u (Flat f) H2) in (let H3 \def H_x in (or3_ind 
+(ex2 C (\lambda (c3: C).(eq C c2 (CHead c3 (Flat f) u))) (\lambda (c3: 
+C).(csubc g e c3))) (ex5_3 C T A (\lambda (_: C).(\lambda (_: T).(\lambda (_: 
+A).(eq K (Flat f) (Bind Abst))))) (\lambda (c3: C).(\lambda (w: T).(\lambda 
+(_: A).(eq C c2 (CHead c3 (Bind Abbr) w))))) (\lambda (c3: C).(\lambda (_: 
+T).(\lambda (_: A).(csubc g e c3)))) (\lambda (_: C).(\lambda (_: T).(\lambda 
+(a: A).(sc3 g (asucc g a) e u)))) (\lambda (c3: C).(\lambda (w: T).(\lambda 
+(a: A).(sc3 g a c3 w))))) (ex4_3 B C T (\lambda (b: B).(\lambda (c3: 
+C).(\lambda (v2: T).(eq C c2 (CHead c3 (Bind b) v2))))) (\lambda (_: 
+B).(\lambda (_: C).(\lambda (_: T).(eq K (Flat f) (Bind Void))))) (\lambda 
+(b: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_: 
+B).(\lambda (c3: C).(\lambda (_: T).(csubc g e c3))))) (ex2 C (\lambda (e2: 
+C).(clear c2 e2)) (\lambda (e2: C).(csubc g c e2))) (\lambda (H4: (ex2 C 
+(\lambda (c3: C).(eq C c2 (CHead c3 (Flat f) u))) (\lambda (c3: C).(csubc g e 
+c3)))).(ex2_ind C (\lambda (c3: C).(eq C c2 (CHead c3 (Flat f) u))) (\lambda 
+(c3: C).(csubc g e c3)) (ex2 C (\lambda (e2: C).(clear c2 e2)) (\lambda (e2: 
+C).(csubc g c e2))) (\lambda (x: C).(\lambda (H5: (eq C c2 (CHead x (Flat f) 
+u))).(\lambda (H6: (csubc g e x)).(eq_ind_r C (CHead x (Flat f) u) (\lambda 
+(c0: C).(ex2 C (\lambda (e2: C).(clear c0 e2)) (\lambda (e2: C).(csubc g c 
+e2)))) (let H_x0 \def (H1 x H6) in (let H7 \def H_x0 in (ex2_ind C (\lambda 
+(e2: C).(clear x e2)) (\lambda (e2: C).(csubc g c e2)) (ex2 C (\lambda (e2: 
+C).(clear (CHead x (Flat f) u) e2)) (\lambda (e2: C).(csubc g c e2))) 
+(\lambda (x0: C).(\lambda (H8: (clear x x0)).(\lambda (H9: (csubc g c 
+x0)).(ex_intro2 C (\lambda (e2: C).(clear (CHead x (Flat f) u) e2)) (\lambda 
+(e2: C).(csubc g c e2)) x0 (clear_flat x x0 H8 f u) H9)))) H7))) c2 H5)))) 
+H4)) (\lambda (H4: (ex5_3 C T A (\lambda (_: C).(\lambda (_: T).(\lambda (_: 
+A).(eq K (Flat f) (Bind Abst))))) (\lambda (c3: C).(\lambda (w: T).(\lambda 
+(_: A).(eq C c2 (CHead c3 (Bind Abbr) w))))) (\lambda (c3: C).(\lambda (_: 
+T).(\lambda (_: A).(csubc g e c3)))) (\lambda (_: C).(\lambda (_: T).(\lambda 
+(a: A).(sc3 g (asucc g a) e u)))) (\lambda (c3: C).(\lambda (w: T).(\lambda 
+(a: A).(sc3 g a c3 w)))))).(ex5_3_ind C T A (\lambda (_: C).(\lambda (_: 
+T).(\lambda (_: A).(eq K (Flat f) (Bind Abst))))) (\lambda (c3: C).(\lambda 
+(w: T).(\lambda (_: A).(eq C c2 (CHead c3 (Bind Abbr) w))))) (\lambda (c3: 
+C).(\lambda (_: T).(\lambda (_: A).(csubc g e c3)))) (\lambda (_: C).(\lambda 
+(_: T).(\lambda (a: A).(sc3 g (asucc g a) e u)))) (\lambda (c3: C).(\lambda 
+(w: T).(\lambda (a: A).(sc3 g a c3 w)))) (ex2 C (\lambda (e2: C).(clear c2 
+e2)) (\lambda (e2: C).(csubc g c e2))) (\lambda (x0: C).(\lambda (x1: 
+T).(\lambda (x2: A).(\lambda (H5: (eq K (Flat f) (Bind Abst))).(\lambda (H6: 
+(eq C c2 (CHead x0 (Bind Abbr) x1))).(\lambda (_: (csubc g e x0)).(\lambda 
+(_: (sc3 g (asucc g x2) e u)).(\lambda (_: (sc3 g x2 x0 x1)).(eq_ind_r C 
+(CHead x0 (Bind Abbr) x1) (\lambda (c0: C).(ex2 C (\lambda (e2: C).(clear c0 
+e2)) (\lambda (e2: C).(csubc g c e2)))) (let H10 \def (eq_ind K (Flat f) 
+(\lambda (ee: K).(match ee with [(Bind _) \Rightarrow False | (Flat _) 
+\Rightarrow True])) I (Bind Abst) H5) in (False_ind (ex2 C (\lambda (e2: 
+C).(clear (CHead x0 (Bind Abbr) x1) e2)) (\lambda (e2: C).(csubc g c e2))) 
+H10)) c2 H6))))))))) H4)) (\lambda (H4: (ex4_3 B C T (\lambda (b: B).(\lambda 
+(c3: C).(\lambda (v2: T).(eq C c2 (CHead c3 (Bind b) v2))))) (\lambda (_: 
+B).(\lambda (_: C).(\lambda (_: T).(eq K (Flat f) (Bind Void))))) (\lambda 
+(b: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_: 
+B).(\lambda (c3: C).(\lambda (_: T).(csubc g e c3)))))).(ex4_3_ind B C T 
+(\lambda (b: B).(\lambda (c3: C).(\lambda (v2: T).(eq C c2 (CHead c3 (Bind b) 
+v2))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: T).(eq K (Flat f) (Bind 
+Void))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b 
+Void))))) (\lambda (_: B).(\lambda (c3: C).(\lambda (_: T).(csubc g e c3)))) 
+(ex2 C (\lambda (e2: C).(clear c2 e2)) (\lambda (e2: C).(csubc g c e2))) 
 (\lambda (x0: B).(\lambda (x1: C).(\lambda (x2: T).(\lambda (H5: (eq C c2 
 (CHead x1 (Bind x0) x2))).(\lambda (H6: (eq K (Flat f) (Bind Void))).(\lambda 
-(_: (not (eq B x0 Void))).(\lambda (_: (csubc g e x1)).(let TMP_257 \def 
-(Bind x0) in (let TMP_258 \def (CHead x1 TMP_257 x2) in (let TMP_261 \def 
-(\lambda (c0: C).(let TMP_259 \def (\lambda (e2: C).(clear c0 e2)) in (let 
-TMP_260 \def (\lambda (e2: C).(csubc g c e2)) in (ex2 C TMP_259 TMP_260)))) 
-in (let TMP_262 \def (Flat f) in (let TMP_263 \def (\lambda (ee: K).(match ee 
-with [(Bind _) \Rightarrow False | (Flat _) \Rightarrow True])) in (let 
-TMP_264 \def (Bind Void) in (let H9 \def (eq_ind K TMP_262 TMP_263 I TMP_264 
-H6) in (let TMP_267 \def (\lambda (e2: C).(let TMP_265 \def (Bind x0) in (let 
-TMP_266 \def (CHead x1 TMP_265 x2) in (clear TMP_266 e2)))) in (let TMP_268 
-\def (\lambda (e2: C).(csubc g c e2)) in (let TMP_269 \def (ex2 C TMP_267 
-TMP_268) in (let TMP_270 \def (False_ind TMP_269 H9) in (eq_ind_r C TMP_258 
-TMP_261 TMP_270 c2 H5))))))))))))))))))) in (ex4_3_ind B C T TMP_247 TMP_250 
-TMP_252 TMP_253 TMP_256 TMP_271 H4)))))))))) in (or3_ind TMP_163 TMP_174 
-TMP_184 TMP_187 TMP_215 TMP_244 TMP_272 H3)))))))))))))))))))))))))))))))) in 
-(clear_ind TMP_3 TMP_157 TMP_273 c1 e1 H))))))).
+(_: (not (eq B x0 Void))).(\lambda (_: (csubc g e x1)).(eq_ind_r C (CHead x1 
+(Bind x0) x2) (\lambda (c0: C).(ex2 C (\lambda (e2: C).(clear c0 e2)) 
+(\lambda (e2: C).(csubc g c e2)))) (let H9 \def (eq_ind K (Flat f) (\lambda 
+(ee: K).(match ee with [(Bind _) \Rightarrow False | (Flat _) \Rightarrow 
+True])) I (Bind Void) H6) in (False_ind (ex2 C (\lambda (e2: C).(clear (CHead 
+x1 (Bind x0) x2) e2)) (\lambda (e2: C).(csubc g c e2))) H9)) c2 H5)))))))) 
+H4)) H3))))))))))) c1 e1 H)))).
 
index b25cab8d4c60341acf574a50f110e9b08f735fb1..0df9ed60ce3b92f151a4495b92dc651f3ed2e030 100644 (file)
@@ -23,19 +23,15 @@ theorem csubc_csuba:
 g c1 c2))))
 \def
  \lambda (g: G).(\lambda (c1: C).(\lambda (c2: C).(\lambda (H: (csubc g c1 
-c2)).(let TMP_1 \def (\lambda (c: C).(\lambda (c0: C).(csuba g c c0))) in 
-(let TMP_3 \def (\lambda (n: nat).(let TMP_2 \def (CSort n) in (csuba_refl g 
-TMP_2))) in (let TMP_4 \def (\lambda (c3: C).(\lambda (c4: C).(\lambda (_: 
-(csubc g c3 c4)).(\lambda (H1: (csuba g c3 c4)).(\lambda (k: K).(\lambda (v: 
-T).(csuba_head g c3 c4 H1 k v))))))) in (let TMP_5 \def (\lambda (c3: 
-C).(\lambda (c4: C).(\lambda (_: (csubc g c3 c4)).(\lambda (H1: (csuba g c3 
-c4)).(\lambda (b: B).(\lambda (H2: (not (eq B b Void))).(\lambda (u1: 
-T).(\lambda (u2: T).(csuba_void g c3 c4 H1 b H2 u1 u2))))))))) in (let TMP_9 
-\def (\lambda (c3: C).(\lambda (c4: C).(\lambda (_: (csubc g c3 c4)).(\lambda 
-(H1: (csuba g c3 c4)).(\lambda (v: T).(\lambda (a: A).(\lambda (H2: (sc3 g 
-(asucc g a) c3 v)).(\lambda (w: T).(\lambda (H3: (sc3 g a c4 w)).(let TMP_6 
-\def (asucc g a) in (let TMP_7 \def (sc3_arity_gen g c3 v TMP_6 H2) in (let 
-TMP_8 \def (sc3_arity_gen g c4 w a H3) in (csuba_abst g c3 c4 H1 v a TMP_7 w 
-TMP_8))))))))))))) in (csubc_ind g TMP_1 TMP_3 TMP_4 TMP_5 TMP_9 c1 c2 
-H))))))))).
+c2)).(csubc_ind g (\lambda (c: C).(\lambda (c0: C).(csuba g c c0))) (\lambda 
+(n: nat).(csuba_refl g (CSort n))) (\lambda (c3: C).(\lambda (c4: C).(\lambda 
+(_: (csubc g c3 c4)).(\lambda (H1: (csuba g c3 c4)).(\lambda (k: K).(\lambda 
+(v: T).(csuba_head g c3 c4 H1 k v))))))) (\lambda (c3: C).(\lambda (c4: 
+C).(\lambda (_: (csubc g c3 c4)).(\lambda (H1: (csuba g c3 c4)).(\lambda (b: 
+B).(\lambda (H2: (not (eq B b Void))).(\lambda (u1: T).(\lambda (u2: 
+T).(csuba_void g c3 c4 H1 b H2 u1 u2))))))))) (\lambda (c3: C).(\lambda (c4: 
+C).(\lambda (_: (csubc g c3 c4)).(\lambda (H1: (csuba g c3 c4)).(\lambda (v: 
+T).(\lambda (a: A).(\lambda (H2: (sc3 g (asucc g a) c3 v)).(\lambda (w: 
+T).(\lambda (H3: (sc3 g a c4 w)).(csuba_abst g c3 c4 H1 v a (sc3_arity_gen g 
+c3 v (asucc g a) H2) w (sc3_arity_gen g c4 w a H3))))))))))) c1 c2 H)))).
 
index eb4169f05f84d5f45460dfbc01786bba97b6db68..c096cf25bdf7329f2feda8bf69000601da79db35 100644 (file)
@@ -23,797 +23,444 @@ theorem csubc_drop_conf_O:
 O c1 e1) \to (\forall (c2: C).((csubc g c1 c2) \to (ex2 C (\lambda (e2: 
 C).(drop h O c2 e2)) (\lambda (e2: C).(csubc g e1 e2)))))))))
 \def
- \lambda (g: G).(\lambda (c1: C).(let TMP_3 \def (\lambda (c: C).(\forall 
-(e1: C).(\forall (h: nat).((drop h O c e1) \to (\forall (c2: C).((csubc g c 
-c2) \to (let TMP_1 \def (\lambda (e2: C).(drop h O c2 e2)) in (let TMP_2 \def 
-(\lambda (e2: C).(csubc g e1 e2)) in (ex2 C TMP_1 TMP_2))))))))) in (let 
-TMP_26 \def (\lambda (n: nat).(\lambda (e1: C).(\lambda (h: nat).(\lambda (H: 
+ \lambda (g: G).(\lambda (c1: C).(C_ind (\lambda (c: C).(\forall (e1: 
+C).(\forall (h: nat).((drop h O c e1) \to (\forall (c2: C).((csubc g c c2) 
+\to (ex2 C (\lambda (e2: C).(drop h O c2 e2)) (\lambda (e2: C).(csubc g e1 
+e2))))))))) (\lambda (n: nat).(\lambda (e1: C).(\lambda (h: nat).(\lambda (H: 
 (drop h O (CSort n) e1)).(\lambda (c2: C).(\lambda (H0: (csubc g (CSort n) 
-c2)).(let TMP_4 \def (CSort n) in (let TMP_5 \def (eq C e1 TMP_4) in (let 
-TMP_6 \def (eq nat h O) in (let TMP_7 \def (eq nat O O) in (let TMP_8 \def 
-(\lambda (e2: C).(drop h O c2 e2)) in (let TMP_9 \def (\lambda (e2: C).(csubc 
-g e1 e2)) in (let TMP_10 \def (ex2 C TMP_8 TMP_9) in (let TMP_24 \def 
-(\lambda (H1: (eq C e1 (CSort n))).(\lambda (H2: (eq nat h O)).(\lambda (_: 
-(eq nat O O)).(let TMP_13 \def (\lambda (n0: nat).(let TMP_11 \def (\lambda 
-(e2: C).(drop n0 O c2 e2)) in (let TMP_12 \def (\lambda (e2: C).(csubc g e1 
-e2)) in (ex2 C TMP_11 TMP_12)))) in (let TMP_14 \def (CSort n) in (let TMP_17 
-\def (\lambda (c: C).(let TMP_15 \def (\lambda (e2: C).(drop O O c2 e2)) in 
-(let TMP_16 \def (\lambda (e2: C).(csubc g c e2)) in (ex2 C TMP_15 TMP_16)))) 
-in (let TMP_18 \def (\lambda (e2: C).(drop O O c2 e2)) in (let TMP_20 \def 
-(\lambda (e2: C).(let TMP_19 \def (CSort n) in (csubc g TMP_19 e2))) in (let 
-TMP_21 \def (drop_refl c2) in (let TMP_22 \def (ex_intro2 C TMP_18 TMP_20 c2 
-TMP_21 H0) in (let TMP_23 \def (eq_ind_r C TMP_14 TMP_17 TMP_22 e1 H1) in 
-(eq_ind_r nat O TMP_13 TMP_23 h H2)))))))))))) in (let TMP_25 \def 
-(drop_gen_sort n h O e1 H) in (and3_ind TMP_5 TMP_6 TMP_7 TMP_10 TMP_24 
-TMP_25)))))))))))))))) in (let TMP_196 \def (\lambda (c: C).(\lambda (H: 
-((\forall (e1: C).(\forall (h: nat).((drop h O c e1) \to (\forall (c2: 
-C).((csubc g c c2) \to (ex2 C (\lambda (e2: C).(drop h O c2 e2)) (\lambda 
-(e2: C).(csubc g e1 e2)))))))))).(\lambda (k: K).(\lambda (t: T).(\lambda 
-(e1: C).(\lambda (h: nat).(let TMP_29 \def (\lambda (n: nat).((drop n O 
-(CHead c k t) e1) \to (\forall (c2: C).((csubc g (CHead c k t) c2) \to (let 
-TMP_27 \def (\lambda (e2: C).(drop n O c2 e2)) in (let TMP_28 \def (\lambda 
-(e2: C).(csubc g e1 e2)) in (ex2 C TMP_27 TMP_28))))))) in (let TMP_41 \def 
-(\lambda (H0: (drop O O (CHead c k t) e1)).(\lambda (c2: C).(\lambda (H1: 
-(csubc g (CHead c k t) c2)).(let TMP_30 \def (CHead c k t) in (let TMP_33 
-\def (\lambda (c0: C).(let TMP_31 \def (\lambda (e2: C).(drop O O c2 e2)) in 
-(let TMP_32 \def (\lambda (e2: C).(csubc g c0 e2)) in (ex2 C TMP_31 
-TMP_32)))) in (let TMP_34 \def (\lambda (e2: C).(drop O O c2 e2)) in (let 
-TMP_36 \def (\lambda (e2: C).(let TMP_35 \def (CHead c k t) in (csubc g 
-TMP_35 e2))) in (let TMP_37 \def (drop_refl c2) in (let TMP_38 \def 
-(ex_intro2 C TMP_34 TMP_36 c2 TMP_37 H1) in (let TMP_39 \def (CHead c k t) in 
-(let TMP_40 \def (drop_gen_refl TMP_39 e1 H0) in (eq_ind C TMP_30 TMP_33 
-TMP_38 e1 TMP_40)))))))))))) in (let TMP_195 \def (\lambda (n: nat).(\lambda 
-(H0: (((drop n O (CHead c k t) e1) \to (\forall (c2: C).((csubc g (CHead c k 
-t) c2) \to (ex2 C (\lambda (e2: C).(drop n O c2 e2)) (\lambda (e2: C).(csubc 
-g e1 e2)))))))).(\lambda (H1: (drop (S n) O (CHead c k t) e1)).(\lambda (c2: 
+c2)).(and3_ind (eq C e1 (CSort n)) (eq nat h O) (eq nat O O) (ex2 C (\lambda 
+(e2: C).(drop h O c2 e2)) (\lambda (e2: C).(csubc g e1 e2))) (\lambda (H1: 
+(eq C e1 (CSort n))).(\lambda (H2: (eq nat h O)).(\lambda (_: (eq nat O 
+O)).(eq_ind_r nat O (\lambda (n0: nat).(ex2 C (\lambda (e2: C).(drop n0 O c2 
+e2)) (\lambda (e2: C).(csubc g e1 e2)))) (eq_ind_r C (CSort n) (\lambda (c: 
+C).(ex2 C (\lambda (e2: C).(drop O O c2 e2)) (\lambda (e2: C).(csubc g c 
+e2)))) (ex_intro2 C (\lambda (e2: C).(drop O O c2 e2)) (\lambda (e2: 
+C).(csubc g (CSort n) e2)) c2 (drop_refl c2) H0) e1 H1) h H2)))) 
+(drop_gen_sort n h O e1 H)))))))) (\lambda (c: C).(\lambda (H: ((\forall (e1: 
+C).(\forall (h: nat).((drop h O c e1) \to (\forall (c2: C).((csubc g c c2) 
+\to (ex2 C (\lambda (e2: C).(drop h O c2 e2)) (\lambda (e2: C).(csubc g e1 
+e2)))))))))).(\lambda (k: K).(\lambda (t: T).(\lambda (e1: C).(\lambda (h: 
+nat).(nat_ind (\lambda (n: nat).((drop n O (CHead c k t) e1) \to (\forall 
+(c2: C).((csubc g (CHead c k t) c2) \to (ex2 C (\lambda (e2: C).(drop n O c2 
+e2)) (\lambda (e2: C).(csubc g e1 e2))))))) (\lambda (H0: (drop O O (CHead c 
+k t) e1)).(\lambda (c2: C).(\lambda (H1: (csubc g (CHead c k t) c2)).(eq_ind 
+C (CHead c k t) (\lambda (c0: C).(ex2 C (\lambda (e2: C).(drop O O c2 e2)) 
+(\lambda (e2: C).(csubc g c0 e2)))) (ex_intro2 C (\lambda (e2: C).(drop O O 
+c2 e2)) (\lambda (e2: C).(csubc g (CHead c k t) e2)) c2 (drop_refl c2) H1) e1 
+(drop_gen_refl (CHead c k t) e1 H0))))) (\lambda (n: nat).(\lambda (H0: 
+(((drop n O (CHead c k t) e1) \to (\forall (c2: C).((csubc g (CHead c k t) 
+c2) \to (ex2 C (\lambda (e2: C).(drop n O c2 e2)) (\lambda (e2: C).(csubc g 
+e1 e2)))))))).(\lambda (H1: (drop (S n) O (CHead c k t) e1)).(\lambda (c2: 
 C).(\lambda (H2: (csubc g (CHead c k t) c2)).(let H_x \def (csubc_gen_head_l 
-g c c2 t k H2) in (let H3 \def H_x in (let TMP_43 \def (\lambda (c3: C).(let 
-TMP_42 \def (CHead c3 k t) in (eq C c2 TMP_42))) in (let TMP_44 \def (\lambda 
-(c3: C).(csubc g c c3)) in (let TMP_45 \def (ex2 C TMP_43 TMP_44) in (let 
-TMP_47 \def (\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(let TMP_46 \def 
-(Bind Abst) in (eq K k TMP_46))))) in (let TMP_50 \def (\lambda (c3: 
-C).(\lambda (w: T).(\lambda (_: A).(let TMP_48 \def (Bind Abbr) in (let 
-TMP_49 \def (CHead c3 TMP_48 w) in (eq C c2 TMP_49)))))) in (let TMP_51 \def 
-(\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g c c3)))) in (let 
-TMP_53 \def (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(let TMP_52 \def 
-(asucc g a) in (sc3 g TMP_52 c t))))) in (let TMP_54 \def (\lambda (c3: 
-C).(\lambda (w: T).(\lambda (a: A).(sc3 g a c3 w)))) in (let TMP_55 \def 
-(ex5_3 C T A TMP_47 TMP_50 TMP_51 TMP_53 TMP_54) in (let TMP_58 \def (\lambda 
-(b: B).(\lambda (c3: C).(\lambda (v2: T).(let TMP_56 \def (Bind b) in (let 
-TMP_57 \def (CHead c3 TMP_56 v2) in (eq C c2 TMP_57)))))) in (let TMP_60 \def 
-(\lambda (_: B).(\lambda (_: C).(\lambda (_: T).(let TMP_59 \def (Bind Void) 
-in (eq K k TMP_59))))) in (let TMP_62 \def (\lambda (b: B).(\lambda (_: 
-C).(\lambda (_: T).(let TMP_61 \def (eq B b Void) in (not TMP_61))))) in (let 
-TMP_63 \def (\lambda (_: B).(\lambda (c3: C).(\lambda (_: T).(csubc g c 
-c3)))) in (let TMP_64 \def (ex4_3 B C T TMP_58 TMP_60 TMP_62 TMP_63) in (let 
-TMP_66 \def (\lambda (e2: C).(let TMP_65 \def (S n) in (drop TMP_65 O c2 
-e2))) in (let TMP_67 \def (\lambda (e2: C).(csubc g e1 e2)) in (let TMP_68 
-\def (ex2 C TMP_66 TMP_67) in (let TMP_99 \def (\lambda (H4: (ex2 C (\lambda 
-(c3: C).(eq C c2 (CHead c3 k t))) (\lambda (c3: C).(csubc g c c3)))).(let 
-TMP_70 \def (\lambda (c3: C).(let TMP_69 \def (CHead c3 k t) in (eq C c2 
-TMP_69))) in (let TMP_71 \def (\lambda (c3: C).(csubc g c c3)) in (let TMP_73 
-\def (\lambda (e2: C).(let TMP_72 \def (S n) in (drop TMP_72 O c2 e2))) in 
-(let TMP_74 \def (\lambda (e2: C).(csubc g e1 e2)) in (let TMP_75 \def (ex2 C 
-TMP_73 TMP_74) in (let TMP_98 \def (\lambda (x: C).(\lambda (H5: (eq C c2 
-(CHead x k t))).(\lambda (H6: (csubc g c x)).(let TMP_76 \def (CHead x k t) 
-in (let TMP_80 \def (\lambda (c0: C).(let TMP_78 \def (\lambda (e2: C).(let 
-TMP_77 \def (S n) in (drop TMP_77 O c0 e2))) in (let TMP_79 \def (\lambda 
-(e2: C).(csubc g e1 e2)) in (ex2 C TMP_78 TMP_79)))) in (let TMP_81 \def (r k 
-n) in (let TMP_82 \def (drop_gen_drop k c e1 t n H1) in (let H_x0 \def (H e1 
-TMP_81 TMP_82 x H6) in (let H7 \def H_x0 in (let TMP_84 \def (\lambda (e2: 
-C).(let TMP_83 \def (r k n) in (drop TMP_83 O x e2))) in (let TMP_85 \def 
-(\lambda (e2: C).(csubc g e1 e2)) in (let TMP_88 \def (\lambda (e2: C).(let 
-TMP_86 \def (S n) in (let TMP_87 \def (CHead x k t) in (drop TMP_86 O TMP_87 
-e2)))) in (let TMP_89 \def (\lambda (e2: C).(csubc g e1 e2)) in (let TMP_90 
-\def (ex2 C TMP_88 TMP_89) in (let TMP_96 \def (\lambda (x0: C).(\lambda (H8: 
-(drop (r k n) O x x0)).(\lambda (H9: (csubc g e1 x0)).(let TMP_93 \def 
-(\lambda (e2: C).(let TMP_91 \def (S n) in (let TMP_92 \def (CHead x k t) in 
-(drop TMP_91 O TMP_92 e2)))) in (let TMP_94 \def (\lambda (e2: C).(csubc g e1 
-e2)) in (let TMP_95 \def (drop_drop k n x x0 H8 t) in (ex_intro2 C TMP_93 
-TMP_94 x0 TMP_95 H9))))))) in (let TMP_97 \def (ex2_ind C TMP_84 TMP_85 
-TMP_90 TMP_96 H7) in (eq_ind_r C TMP_76 TMP_80 TMP_97 c2 H5))))))))))))))))) 
-in (ex2_ind C TMP_70 TMP_71 TMP_75 TMP_98 H4)))))))) in (let TMP_147 \def 
-(\lambda (H4: (ex5_3 C T A (\lambda (_: C).(\lambda (_: T).(\lambda (_: 
-A).(eq K k (Bind Abst))))) (\lambda (c3: C).(\lambda (w: T).(\lambda (_: 
-A).(eq C c2 (CHead c3 (Bind Abbr) w))))) (\lambda (c3: C).(\lambda (_: 
-T).(\lambda (_: A).(csubc g c c3)))) (\lambda (_: C).(\lambda (_: T).(\lambda 
-(a: A).(sc3 g (asucc g a) c t)))) (\lambda (c3: C).(\lambda (w: T).(\lambda 
-(a: A).(sc3 g a c3 w)))))).(let TMP_101 \def (\lambda (_: C).(\lambda (_: 
-T).(\lambda (_: A).(let TMP_100 \def (Bind Abst) in (eq K k TMP_100))))) in 
-(let TMP_104 \def (\lambda (c3: C).(\lambda (w: T).(\lambda (_: A).(let 
-TMP_102 \def (Bind Abbr) in (let TMP_103 \def (CHead c3 TMP_102 w) in (eq C 
-c2 TMP_103)))))) in (let TMP_105 \def (\lambda (c3: C).(\lambda (_: 
-T).(\lambda (_: A).(csubc g c c3)))) in (let TMP_107 \def (\lambda (_: 
-C).(\lambda (_: T).(\lambda (a: A).(let TMP_106 \def (asucc g a) in (sc3 g 
-TMP_106 c t))))) in (let TMP_108 \def (\lambda (c3: C).(\lambda (w: 
-T).(\lambda (a: A).(sc3 g a c3 w)))) in (let TMP_110 \def (\lambda (e2: 
-C).(let TMP_109 \def (S n) in (drop TMP_109 O c2 e2))) in (let TMP_111 \def 
-(\lambda (e2: C).(csubc g e1 e2)) in (let TMP_112 \def (ex2 C TMP_110 
-TMP_111) in (let TMP_146 \def (\lambda (x0: C).(\lambda (x1: T).(\lambda (x2: 
-A).(\lambda (H5: (eq K k (Bind Abst))).(\lambda (H6: (eq C c2 (CHead x0 (Bind 
-Abbr) x1))).(\lambda (H7: (csubc g c x0)).(\lambda (_: (sc3 g (asucc g x2) c 
-t)).(\lambda (_: (sc3 g x2 x0 x1)).(let TMP_113 \def (Bind Abbr) in (let 
-TMP_114 \def (CHead x0 TMP_113 x1) in (let TMP_118 \def (\lambda (c0: C).(let 
-TMP_116 \def (\lambda (e2: C).(let TMP_115 \def (S n) in (drop TMP_115 O c0 
-e2))) in (let TMP_117 \def (\lambda (e2: C).(csubc g e1 e2)) in (ex2 C 
-TMP_116 TMP_117)))) in (let TMP_120 \def (\lambda (k0: K).(let TMP_119 \def 
-(r k0 n) in (drop TMP_119 O c e1))) in (let TMP_121 \def (drop_gen_drop k c 
-e1 t n H1) in (let TMP_122 \def (Bind Abst) in (let H10 \def (eq_ind K k 
-TMP_120 TMP_121 TMP_122 H5) in (let TMP_125 \def (\lambda (k0: K).((drop n O 
-(CHead c k0 t) e1) \to (\forall (c3: C).((csubc g (CHead c k0 t) c3) \to (let 
-TMP_123 \def (\lambda (e2: C).(drop n O c3 e2)) in (let TMP_124 \def (\lambda 
-(e2: C).(csubc g e1 e2)) in (ex2 C TMP_123 TMP_124))))))) in (let TMP_126 
-\def (Bind Abst) in (let H11 \def (eq_ind K k TMP_125 H0 TMP_126 H5) in (let 
-TMP_127 \def (Bind Abst) in (let TMP_128 \def (r TMP_127 n) in (let H_x0 \def 
-(H e1 TMP_128 H10 x0 H7) in (let H12 \def H_x0 in (let TMP_129 \def (\lambda 
-(e2: C).(drop n O x0 e2)) in (let TMP_130 \def (\lambda (e2: C).(csubc g e1 
-e2)) in (let TMP_134 \def (\lambda (e2: C).(let TMP_131 \def (S n) in (let 
-TMP_132 \def (Bind Abbr) in (let TMP_133 \def (CHead x0 TMP_132 x1) in (drop 
-TMP_131 O TMP_133 e2))))) in (let TMP_135 \def (\lambda (e2: C).(csubc g e1 
-e2)) in (let TMP_136 \def (ex2 C TMP_134 TMP_135) in (let TMP_144 \def 
-(\lambda (x: C).(\lambda (H13: (drop n O x0 x)).(\lambda (H14: (csubc g e1 
-x)).(let TMP_140 \def (\lambda (e2: C).(let TMP_137 \def (S n) in (let 
-TMP_138 \def (Bind Abbr) in (let TMP_139 \def (CHead x0 TMP_138 x1) in (drop 
-TMP_137 O TMP_139 e2))))) in (let TMP_141 \def (\lambda (e2: C).(csubc g e1 
-e2)) in (let TMP_142 \def (Bind Abbr) in (let TMP_143 \def (drop_drop TMP_142 
-n x0 x H13 x1) in (ex_intro2 C TMP_140 TMP_141 x TMP_143 H14)))))))) in (let 
-TMP_145 \def (ex2_ind C TMP_129 TMP_130 TMP_136 TMP_144 H12) in (eq_ind_r C 
-TMP_114 TMP_118 TMP_145 c2 H6)))))))))))))))))))))))))))))) in (ex5_3_ind C T 
-A TMP_101 TMP_104 TMP_105 TMP_107 TMP_108 TMP_112 TMP_146 H4))))))))))) in 
-(let TMP_194 \def (\lambda (H4: (ex4_3 B C T (\lambda (b: B).(\lambda (c3: 
-C).(\lambda (v2: T).(eq C c2 (CHead c3 (Bind b) v2))))) (\lambda (_: 
-B).(\lambda (_: C).(\lambda (_: T).(eq K k (Bind Void))))) (\lambda (b: 
-B).(\lambda (_: C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_: 
-B).(\lambda (c3: C).(\lambda (_: T).(csubc g c c3)))))).(let TMP_150 \def 
-(\lambda (b: B).(\lambda (c3: C).(\lambda (v2: T).(let TMP_148 \def (Bind b) 
-in (let TMP_149 \def (CHead c3 TMP_148 v2) in (eq C c2 TMP_149)))))) in (let 
-TMP_152 \def (\lambda (_: B).(\lambda (_: C).(\lambda (_: T).(let TMP_151 
-\def (Bind Void) in (eq K k TMP_151))))) in (let TMP_154 \def (\lambda (b: 
-B).(\lambda (_: C).(\lambda (_: T).(let TMP_153 \def (eq B b Void) in (not 
-TMP_153))))) in (let TMP_155 \def (\lambda (_: B).(\lambda (c3: C).(\lambda 
-(_: T).(csubc g c c3)))) in (let TMP_157 \def (\lambda (e2: C).(let TMP_156 
-\def (S n) in (drop TMP_156 O c2 e2))) in (let TMP_158 \def (\lambda (e2: 
-C).(csubc g e1 e2)) in (let TMP_159 \def (ex2 C TMP_157 TMP_158) in (let 
-TMP_193 \def (\lambda (x0: B).(\lambda (x1: C).(\lambda (x2: T).(\lambda (H5: 
-(eq C c2 (CHead x1 (Bind x0) x2))).(\lambda (H6: (eq K k (Bind 
-Void))).(\lambda (_: (not (eq B x0 Void))).(\lambda (H8: (csubc g c x1)).(let 
-TMP_160 \def (Bind x0) in (let TMP_161 \def (CHead x1 TMP_160 x2) in (let 
-TMP_165 \def (\lambda (c0: C).(let TMP_163 \def (\lambda (e2: C).(let TMP_162 
-\def (S n) in (drop TMP_162 O c0 e2))) in (let TMP_164 \def (\lambda (e2: 
-C).(csubc g e1 e2)) in (ex2 C TMP_163 TMP_164)))) in (let TMP_167 \def 
-(\lambda (k0: K).(let TMP_166 \def (r k0 n) in (drop TMP_166 O c e1))) in 
-(let TMP_168 \def (drop_gen_drop k c e1 t n H1) in (let TMP_169 \def (Bind 
-Void) in (let H9 \def (eq_ind K k TMP_167 TMP_168 TMP_169 H6) in (let TMP_172 
-\def (\lambda (k0: K).((drop n O (CHead c k0 t) e1) \to (\forall (c3: 
-C).((csubc g (CHead c k0 t) c3) \to (let TMP_170 \def (\lambda (e2: C).(drop 
-n O c3 e2)) in (let TMP_171 \def (\lambda (e2: C).(csubc g e1 e2)) in (ex2 C 
-TMP_170 TMP_171))))))) in (let TMP_173 \def (Bind Void) in (let H10 \def 
-(eq_ind K k TMP_172 H0 TMP_173 H6) in (let TMP_174 \def (Bind Void) in (let 
-TMP_175 \def (r TMP_174 n) in (let H_x0 \def (H e1 TMP_175 H9 x1 H8) in (let 
-H11 \def H_x0 in (let TMP_176 \def (\lambda (e2: C).(drop n O x1 e2)) in (let 
-TMP_177 \def (\lambda (e2: C).(csubc g e1 e2)) in (let TMP_181 \def (\lambda 
-(e2: C).(let TMP_178 \def (S n) in (let TMP_179 \def (Bind x0) in (let 
-TMP_180 \def (CHead x1 TMP_179 x2) in (drop TMP_178 O TMP_180 e2))))) in (let 
-TMP_182 \def (\lambda (e2: C).(csubc g e1 e2)) in (let TMP_183 \def (ex2 C 
-TMP_181 TMP_182) in (let TMP_191 \def (\lambda (x: C).(\lambda (H12: (drop n 
-O x1 x)).(\lambda (H13: (csubc g e1 x)).(let TMP_187 \def (\lambda (e2: 
-C).(let TMP_184 \def (S n) in (let TMP_185 \def (Bind x0) in (let TMP_186 
-\def (CHead x1 TMP_185 x2) in (drop TMP_184 O TMP_186 e2))))) in (let TMP_188 
-\def (\lambda (e2: C).(csubc g e1 e2)) in (let TMP_189 \def (Bind x0) in (let 
-TMP_190 \def (drop_drop TMP_189 n x1 x H12 x2) in (ex_intro2 C TMP_187 
-TMP_188 x TMP_190 H13)))))))) in (let TMP_192 \def (ex2_ind C TMP_176 TMP_177 
-TMP_183 TMP_191 H11) in (eq_ind_r C TMP_161 TMP_165 TMP_192 c2 
-H5))))))))))))))))))))))))))))) in (ex4_3_ind B C T TMP_150 TMP_152 TMP_154 
-TMP_155 TMP_159 TMP_193 H4)))))))))) in (or3_ind TMP_45 TMP_55 TMP_64 TMP_68 
-TMP_99 TMP_147 TMP_194 H3)))))))))))))))))))))))))))) in (nat_ind TMP_29 
-TMP_41 TMP_195 h)))))))))) in (C_ind TMP_3 TMP_26 TMP_196 c1))))).
+g c c2 t k H2) in (let H3 \def H_x in (or3_ind (ex2 C (\lambda (c3: C).(eq C 
+c2 (CHead c3 k t))) (\lambda (c3: C).(csubc g c c3))) (ex5_3 C T A (\lambda 
+(_: C).(\lambda (_: T).(\lambda (_: A).(eq K k (Bind Abst))))) (\lambda (c3: 
+C).(\lambda (w: T).(\lambda (_: A).(eq C c2 (CHead c3 (Bind Abbr) w))))) 
+(\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g c c3)))) (\lambda 
+(_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g (asucc g a) c t)))) (\lambda 
+(c3: C).(\lambda (w: T).(\lambda (a: A).(sc3 g a c3 w))))) (ex4_3 B C T 
+(\lambda (b: B).(\lambda (c3: C).(\lambda (v2: T).(eq C c2 (CHead c3 (Bind b) 
+v2))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: T).(eq K k (Bind 
+Void))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b 
+Void))))) (\lambda (_: B).(\lambda (c3: C).(\lambda (_: T).(csubc g c c3))))) 
+(ex2 C (\lambda (e2: C).(drop (S n) O c2 e2)) (\lambda (e2: C).(csubc g e1 
+e2))) (\lambda (H4: (ex2 C (\lambda (c3: C).(eq C c2 (CHead c3 k t))) 
+(\lambda (c3: C).(csubc g c c3)))).(ex2_ind C (\lambda (c3: C).(eq C c2 
+(CHead c3 k t))) (\lambda (c3: C).(csubc g c c3)) (ex2 C (\lambda (e2: 
+C).(drop (S n) O c2 e2)) (\lambda (e2: C).(csubc g e1 e2))) (\lambda (x: 
+C).(\lambda (H5: (eq C c2 (CHead x k t))).(\lambda (H6: (csubc g c 
+x)).(eq_ind_r C (CHead x k t) (\lambda (c0: C).(ex2 C (\lambda (e2: C).(drop 
+(S n) O c0 e2)) (\lambda (e2: C).(csubc g e1 e2)))) (let H_x0 \def (H e1 (r k 
+n) (drop_gen_drop k c e1 t n H1) x H6) in (let H7 \def H_x0 in (ex2_ind C 
+(\lambda (e2: C).(drop (r k n) O x e2)) (\lambda (e2: C).(csubc g e1 e2)) 
+(ex2 C (\lambda (e2: C).(drop (S n) O (CHead x k t) e2)) (\lambda (e2: 
+C).(csubc g e1 e2))) (\lambda (x0: C).(\lambda (H8: (drop (r k n) O x 
+x0)).(\lambda (H9: (csubc g e1 x0)).(ex_intro2 C (\lambda (e2: C).(drop (S n) 
+O (CHead x k t) e2)) (\lambda (e2: C).(csubc g e1 e2)) x0 (drop_drop k n x x0 
+H8 t) H9)))) H7))) c2 H5)))) H4)) (\lambda (H4: (ex5_3 C T A (\lambda (_: 
+C).(\lambda (_: T).(\lambda (_: A).(eq K k (Bind Abst))))) (\lambda (c3: 
+C).(\lambda (w: T).(\lambda (_: A).(eq C c2 (CHead c3 (Bind Abbr) w))))) 
+(\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g c c3)))) (\lambda 
+(_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g (asucc g a) c t)))) (\lambda 
+(c3: C).(\lambda (w: T).(\lambda (a: A).(sc3 g a c3 w)))))).(ex5_3_ind C T A 
+(\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(eq K k (Bind Abst))))) 
+(\lambda (c3: C).(\lambda (w: T).(\lambda (_: A).(eq C c2 (CHead c3 (Bind 
+Abbr) w))))) (\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g c 
+c3)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g (asucc g a) c 
+t)))) (\lambda (c3: C).(\lambda (w: T).(\lambda (a: A).(sc3 g a c3 w)))) (ex2 
+C (\lambda (e2: C).(drop (S n) O c2 e2)) (\lambda (e2: C).(csubc g e1 e2))) 
+(\lambda (x0: C).(\lambda (x1: T).(\lambda (x2: A).(\lambda (H5: (eq K k 
+(Bind Abst))).(\lambda (H6: (eq C c2 (CHead x0 (Bind Abbr) x1))).(\lambda 
+(H7: (csubc g c x0)).(\lambda (_: (sc3 g (asucc g x2) c t)).(\lambda (_: (sc3 
+g x2 x0 x1)).(eq_ind_r C (CHead x0 (Bind Abbr) x1) (\lambda (c0: C).(ex2 C 
+(\lambda (e2: C).(drop (S n) O c0 e2)) (\lambda (e2: C).(csubc g e1 e2)))) 
+(let H10 \def (eq_ind K k (\lambda (k0: K).(drop (r k0 n) O c e1)) 
+(drop_gen_drop k c e1 t n H1) (Bind Abst) H5) in (let H11 \def (eq_ind K k 
+(\lambda (k0: K).((drop n O (CHead c k0 t) e1) \to (\forall (c3: C).((csubc g 
+(CHead c k0 t) c3) \to (ex2 C (\lambda (e2: C).(drop n O c3 e2)) (\lambda 
+(e2: C).(csubc g e1 e2))))))) H0 (Bind Abst) H5) in (let H_x0 \def (H e1 (r 
+(Bind Abst) n) H10 x0 H7) in (let H12 \def H_x0 in (ex2_ind C (\lambda (e2: 
+C).(drop n O x0 e2)) (\lambda (e2: C).(csubc g e1 e2)) (ex2 C (\lambda (e2: 
+C).(drop (S n) O (CHead x0 (Bind Abbr) x1) e2)) (\lambda (e2: C).(csubc g e1 
+e2))) (\lambda (x: C).(\lambda (H13: (drop n O x0 x)).(\lambda (H14: (csubc g 
+e1 x)).(ex_intro2 C (\lambda (e2: C).(drop (S n) O (CHead x0 (Bind Abbr) x1) 
+e2)) (\lambda (e2: C).(csubc g e1 e2)) x (drop_drop (Bind Abbr) n x0 x H13 
+x1) H14)))) H12))))) c2 H6))))))))) H4)) (\lambda (H4: (ex4_3 B C T (\lambda 
+(b: B).(\lambda (c3: C).(\lambda (v2: T).(eq C c2 (CHead c3 (Bind b) v2))))) 
+(\lambda (_: B).(\lambda (_: C).(\lambda (_: T).(eq K k (Bind Void))))) 
+(\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b Void))))) 
+(\lambda (_: B).(\lambda (c3: C).(\lambda (_: T).(csubc g c 
+c3)))))).(ex4_3_ind B C T (\lambda (b: B).(\lambda (c3: C).(\lambda (v2: 
+T).(eq C c2 (CHead c3 (Bind b) v2))))) (\lambda (_: B).(\lambda (_: 
+C).(\lambda (_: T).(eq K k (Bind Void))))) (\lambda (b: B).(\lambda (_: 
+C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_: B).(\lambda (c3: 
+C).(\lambda (_: T).(csubc g c c3)))) (ex2 C (\lambda (e2: C).(drop (S n) O c2 
+e2)) (\lambda (e2: C).(csubc g e1 e2))) (\lambda (x0: B).(\lambda (x1: 
+C).(\lambda (x2: T).(\lambda (H5: (eq C c2 (CHead x1 (Bind x0) x2))).(\lambda 
+(H6: (eq K k (Bind Void))).(\lambda (_: (not (eq B x0 Void))).(\lambda (H8: 
+(csubc g c x1)).(eq_ind_r C (CHead x1 (Bind x0) x2) (\lambda (c0: C).(ex2 C 
+(\lambda (e2: C).(drop (S n) O c0 e2)) (\lambda (e2: C).(csubc g e1 e2)))) 
+(let H9 \def (eq_ind K k (\lambda (k0: K).(drop (r k0 n) O c e1)) 
+(drop_gen_drop k c e1 t n H1) (Bind Void) H6) in (let H10 \def (eq_ind K k 
+(\lambda (k0: K).((drop n O (CHead c k0 t) e1) \to (\forall (c3: C).((csubc g 
+(CHead c k0 t) c3) \to (ex2 C (\lambda (e2: C).(drop n O c3 e2)) (\lambda 
+(e2: C).(csubc g e1 e2))))))) H0 (Bind Void) H6) in (let H_x0 \def (H e1 (r 
+(Bind Void) n) H9 x1 H8) in (let H11 \def H_x0 in (ex2_ind C (\lambda (e2: 
+C).(drop n O x1 e2)) (\lambda (e2: C).(csubc g e1 e2)) (ex2 C (\lambda (e2: 
+C).(drop (S n) O (CHead x1 (Bind x0) x2) e2)) (\lambda (e2: C).(csubc g e1 
+e2))) (\lambda (x: C).(\lambda (H12: (drop n O x1 x)).(\lambda (H13: (csubc g 
+e1 x)).(ex_intro2 C (\lambda (e2: C).(drop (S n) O (CHead x1 (Bind x0) x2) 
+e2)) (\lambda (e2: C).(csubc g e1 e2)) x (drop_drop (Bind x0) n x1 x H12 x2) 
+H13)))) H11))))) c2 H5)))))))) H4)) H3)))))))) h))))))) c1)).
 
 theorem drop_csubc_trans:
  \forall (g: G).(\forall (c2: C).(\forall (e2: C).(\forall (d: nat).(\forall 
 (h: nat).((drop h d c2 e2) \to (\forall (e1: C).((csubc g e2 e1) \to (ex2 C 
 (\lambda (c1: C).(drop h d c1 e1)) (\lambda (c1: C).(csubc g c2 c1))))))))))
 \def
- \lambda (g: G).(\lambda (c2: C).(let TMP_3 \def (\lambda (c: C).(\forall 
-(e2: C).(\forall (d: nat).(\forall (h: nat).((drop h d c e2) \to (\forall 
-(e1: C).((csubc g e2 e1) \to (let TMP_1 \def (\lambda (c1: C).(drop h d c1 
-e1)) in (let TMP_2 \def (\lambda (c1: C).(csubc g c c1)) in (ex2 C TMP_1 
-TMP_2)))))))))) in (let TMP_30 \def (\lambda (n: nat).(\lambda (e2: 
-C).(\lambda (d: nat).(\lambda (h: nat).(\lambda (H: (drop h d (CSort n) 
-e2)).(\lambda (e1: C).(\lambda (H0: (csubc g e2 e1)).(let TMP_4 \def (CSort 
-n) in (let TMP_5 \def (eq C e2 TMP_4) in (let TMP_6 \def (eq nat h O) in (let 
-TMP_7 \def (eq nat d O) in (let TMP_8 \def (\lambda (c1: C).(drop h d c1 e1)) 
-in (let TMP_10 \def (\lambda (c1: C).(let TMP_9 \def (CSort n) in (csubc g 
-TMP_9 c1))) in (let TMP_11 \def (ex2 C TMP_8 TMP_10) in (let TMP_28 \def 
-(\lambda (H1: (eq C e2 (CSort n))).(\lambda (H2: (eq nat h O)).(\lambda (H3: 
-(eq nat d O)).(let TMP_15 \def (\lambda (n0: nat).(let TMP_12 \def (\lambda 
-(c1: C).(drop n0 d c1 e1)) in (let TMP_14 \def (\lambda (c1: C).(let TMP_13 
-\def (CSort n) in (csubc g TMP_13 c1))) in (ex2 C TMP_12 TMP_14)))) in (let 
-TMP_19 \def (\lambda (n0: nat).(let TMP_16 \def (\lambda (c1: C).(drop O n0 
-c1 e1)) in (let TMP_18 \def (\lambda (c1: C).(let TMP_17 \def (CSort n) in 
-(csubc g TMP_17 c1))) in (ex2 C TMP_16 TMP_18)))) in (let TMP_20 \def 
-(\lambda (c: C).(csubc g c e1)) in (let TMP_21 \def (CSort n) in (let H4 \def 
-(eq_ind C e2 TMP_20 H0 TMP_21 H1) in (let TMP_22 \def (\lambda (c1: C).(drop 
-O O c1 e1)) in (let TMP_24 \def (\lambda (c1: C).(let TMP_23 \def (CSort n) 
-in (csubc g TMP_23 c1))) in (let TMP_25 \def (drop_refl e1) in (let TMP_26 
-\def (ex_intro2 C TMP_22 TMP_24 e1 TMP_25 H4) in (let TMP_27 \def (eq_ind_r 
-nat O TMP_19 TMP_26 d H3) in (eq_ind_r nat O TMP_15 TMP_27 h H2)))))))))))))) 
-in (let TMP_29 \def (drop_gen_sort n h d e2 H) in (and3_ind TMP_5 TMP_6 TMP_7 
-TMP_11 TMP_28 TMP_29))))))))))))))))) in (let TMP_354 \def (\lambda (c: 
-C).(\lambda (H: ((\forall (e2: C).(\forall (d: nat).(\forall (h: nat).((drop 
-h d c e2) \to (\forall (e1: C).((csubc g e2 e1) \to (ex2 C (\lambda (c1: 
-C).(drop h d c1 e1)) (\lambda (c1: C).(csubc g c c1))))))))))).(\lambda (k: 
-K).(\lambda (t: T).(\lambda (e2: C).(\lambda (d: nat).(let TMP_34 \def 
-(\lambda (n: nat).(\forall (h: nat).((drop h n (CHead c k t) e2) \to (\forall 
-(e1: C).((csubc g e2 e1) \to (let TMP_31 \def (\lambda (c1: C).(drop h n c1 
-e1)) in (let TMP_33 \def (\lambda (c1: C).(let TMP_32 \def (CHead c k t) in 
-(csubc g TMP_32 c1))) in (ex2 C TMP_31 TMP_33)))))))) in (let TMP_67 \def 
-(\lambda (h: nat).(let TMP_38 \def (\lambda (n: nat).((drop n O (CHead c k t) 
-e2) \to (\forall (e1: C).((csubc g e2 e1) \to (let TMP_35 \def (\lambda (c1: 
-C).(drop n O c1 e1)) in (let TMP_37 \def (\lambda (c1: C).(let TMP_36 \def 
-(CHead c k t) in (csubc g TMP_36 c1))) in (ex2 C TMP_35 TMP_37))))))) in (let 
-TMP_47 \def (\lambda (H0: (drop O O (CHead c k t) e2)).(\lambda (e1: 
-C).(\lambda (H1: (csubc g e2 e1)).(let TMP_39 \def (\lambda (c0: C).(csubc g 
-c0 e1)) in (let TMP_40 \def (CHead c k t) in (let TMP_41 \def (CHead c k t) 
-in (let TMP_42 \def (drop_gen_refl TMP_41 e2 H0) in (let H2 \def (eq_ind_r C 
-e2 TMP_39 H1 TMP_40 TMP_42) in (let TMP_43 \def (\lambda (c1: C).(drop O O c1 
-e1)) in (let TMP_45 \def (\lambda (c1: C).(let TMP_44 \def (CHead c k t) in 
-(csubc g TMP_44 c1))) in (let TMP_46 \def (drop_refl e1) in (ex_intro2 C 
-TMP_43 TMP_45 e1 TMP_46 H2)))))))))))) in (let TMP_66 \def (\lambda (n: 
-nat).(\lambda (_: (((drop n O (CHead c k t) e2) \to (\forall (e1: C).((csubc 
-g e2 e1) \to (ex2 C (\lambda (c1: C).(drop n O c1 e1)) (\lambda (c1: 
-C).(csubc g (CHead c k t) c1)))))))).(\lambda (H1: (drop (S n) O (CHead c k 
-t) e2)).(\lambda (e1: C).(\lambda (H2: (csubc g e2 e1)).(let TMP_48 \def (r k 
-n) in (let TMP_49 \def (drop_gen_drop k c e2 t n H1) in (let H_x \def (H e2 O 
-TMP_48 TMP_49 e1 H2) in (let H3 \def H_x in (let TMP_51 \def (\lambda (c1: 
-C).(let TMP_50 \def (r k n) in (drop TMP_50 O c1 e1))) in (let TMP_52 \def 
-(\lambda (c1: C).(csubc g c c1)) in (let TMP_54 \def (\lambda (c1: C).(let 
-TMP_53 \def (S n) in (drop TMP_53 O c1 e1))) in (let TMP_56 \def (\lambda 
-(c1: C).(let TMP_55 \def (CHead c k t) in (csubc g TMP_55 c1))) in (let 
-TMP_57 \def (ex2 C TMP_54 TMP_56) in (let TMP_65 \def (\lambda (x: 
-C).(\lambda (H4: (drop (r k n) O x e1)).(\lambda (H5: (csubc g c x)).(let 
-TMP_59 \def (\lambda (c1: C).(let TMP_58 \def (S n) in (drop TMP_58 O c1 
-e1))) in (let TMP_61 \def (\lambda (c1: C).(let TMP_60 \def (CHead c k t) in 
-(csubc g TMP_60 c1))) in (let TMP_62 \def (CHead x k t) in (let TMP_63 \def 
-(drop_drop k n x e1 H4 t) in (let TMP_64 \def (csubc_head g c x H5 k t) in 
-(ex_intro2 C TMP_59 TMP_61 TMP_62 TMP_63 TMP_64))))))))) in (ex2_ind C TMP_51 
-TMP_52 TMP_57 TMP_65 H3)))))))))))))))) in (nat_ind TMP_38 TMP_47 TMP_66 
-h))))) in (let TMP_353 \def (\lambda (n: nat).(\lambda (H0: ((\forall (h: 
-nat).((drop h n (CHead c k t) e2) \to (\forall (e1: C).((csubc g e2 e1) \to 
-(ex2 C (\lambda (c1: C).(drop h n c1 e1)) (\lambda (c1: C).(csubc g (CHead c 
-k t) c1))))))))).(\lambda (h: nat).(\lambda (H1: (drop h (S n) (CHead c k t) 
-e2)).(\lambda (e1: C).(\lambda (H2: (csubc g e2 e1)).(let TMP_69 \def 
-(\lambda (e: C).(\lambda (v: T).(let TMP_68 \def (CHead e k v) in (eq C e2 
-TMP_68)))) in (let TMP_72 \def (\lambda (_: C).(\lambda (v: T).(let TMP_70 
-\def (r k n) in (let TMP_71 \def (lift h TMP_70 v) in (eq T t TMP_71))))) in 
-(let TMP_74 \def (\lambda (e: C).(\lambda (_: T).(let TMP_73 \def (r k n) in 
-(drop h TMP_73 c e)))) in (let TMP_76 \def (\lambda (c1: C).(let TMP_75 \def 
-(S n) in (drop h TMP_75 c1 e1))) in (let TMP_78 \def (\lambda (c1: C).(let 
-TMP_77 \def (CHead c k t) in (csubc g TMP_77 c1))) in (let TMP_79 \def (ex2 C 
-TMP_76 TMP_78) in (let TMP_351 \def (\lambda (x0: C).(\lambda (x1: 
-T).(\lambda (H3: (eq C e2 (CHead x0 k x1))).(\lambda (H4: (eq T t (lift h (r 
-k n) x1))).(\lambda (H5: (drop h (r k n) c x0)).(let TMP_80 \def (\lambda 
-(c0: C).(csubc g c0 e1)) in (let TMP_81 \def (CHead x0 k x1) in (let H6 \def 
-(eq_ind C e2 TMP_80 H2 TMP_81 H3) in (let TMP_85 \def (\lambda (c0: 
-C).(\forall (h0: nat).((drop h0 n (CHead c k t) c0) \to (\forall (e3: 
-C).((csubc g c0 e3) \to (let TMP_82 \def (\lambda (c1: C).(drop h0 n c1 e3)) 
-in (let TMP_84 \def (\lambda (c1: C).(let TMP_83 \def (CHead c k t) in (csubc 
-g TMP_83 c1))) in (ex2 C TMP_82 TMP_84)))))))) in (let TMP_86 \def (CHead x0 
-k x1) in (let H7 \def (eq_ind C e2 TMP_85 H0 TMP_86 H3) in (let TMP_90 \def 
-(\lambda (t0: T).(\forall (h0: nat).((drop h0 n (CHead c k t0) (CHead x0 k 
-x1)) \to (\forall (e3: C).((csubc g (CHead x0 k x1) e3) \to (let TMP_87 \def 
-(\lambda (c1: C).(drop h0 n c1 e3)) in (let TMP_89 \def (\lambda (c1: C).(let 
-TMP_88 \def (CHead c k t0) in (csubc g TMP_88 c1))) in (ex2 C TMP_87 
-TMP_89)))))))) in (let TMP_91 \def (r k n) in (let TMP_92 \def (lift h TMP_91 
-x1) in (let H8 \def (eq_ind T t TMP_90 H7 TMP_92 H4) in (let TMP_93 \def (r k 
-n) in (let TMP_94 \def (lift h TMP_93 x1) in (let TMP_99 \def (\lambda (t0: 
-T).(let TMP_96 \def (\lambda (c1: C).(let TMP_95 \def (S n) in (drop h TMP_95 
-c1 e1))) in (let TMP_98 \def (\lambda (c1: C).(let TMP_97 \def (CHead c k t0) 
-in (csubc g TMP_97 c1))) in (ex2 C TMP_96 TMP_98)))) in (let H_x \def 
-(csubc_gen_head_l g x0 e1 x1 k H6) in (let H9 \def H_x in (let TMP_101 \def 
-(\lambda (c3: C).(let TMP_100 \def (CHead c3 k x1) in (eq C e1 TMP_100))) in 
-(let TMP_102 \def (\lambda (c3: C).(csubc g x0 c3)) in (let TMP_103 \def (ex2 
-C TMP_101 TMP_102) in (let TMP_105 \def (\lambda (_: C).(\lambda (_: 
-T).(\lambda (_: A).(let TMP_104 \def (Bind Abst) in (eq K k TMP_104))))) in 
-(let TMP_108 \def (\lambda (c3: C).(\lambda (w: T).(\lambda (_: A).(let 
-TMP_106 \def (Bind Abbr) in (let TMP_107 \def (CHead c3 TMP_106 w) in (eq C 
-e1 TMP_107)))))) in (let TMP_109 \def (\lambda (c3: C).(\lambda (_: 
-T).(\lambda (_: A).(csubc g x0 c3)))) in (let TMP_111 \def (\lambda (_: 
-C).(\lambda (_: T).(\lambda (a: A).(let TMP_110 \def (asucc g a) in (sc3 g 
-TMP_110 x0 x1))))) in (let TMP_112 \def (\lambda (c3: C).(\lambda (w: 
-T).(\lambda (a: A).(sc3 g a c3 w)))) in (let TMP_113 \def (ex5_3 C T A 
-TMP_105 TMP_108 TMP_109 TMP_111 TMP_112) in (let TMP_116 \def (\lambda (b: 
-B).(\lambda (c3: C).(\lambda (v2: T).(let TMP_114 \def (Bind b) in (let 
-TMP_115 \def (CHead c3 TMP_114 v2) in (eq C e1 TMP_115)))))) in (let TMP_118 
-\def (\lambda (_: B).(\lambda (_: C).(\lambda (_: T).(let TMP_117 \def (Bind 
-Void) in (eq K k TMP_117))))) in (let TMP_120 \def (\lambda (b: B).(\lambda 
-(_: C).(\lambda (_: T).(let TMP_119 \def (eq B b Void) in (not TMP_119))))) 
-in (let TMP_121 \def (\lambda (_: B).(\lambda (c3: C).(\lambda (_: T).(csubc 
-g x0 c3)))) in (let TMP_122 \def (ex4_3 B C T TMP_116 TMP_118 TMP_120 
-TMP_121) in (let TMP_124 \def (\lambda (c1: C).(let TMP_123 \def (S n) in 
-(drop h TMP_123 c1 e1))) in (let TMP_128 \def (\lambda (c1: C).(let TMP_125 
-\def (r k n) in (let TMP_126 \def (lift h TMP_125 x1) in (let TMP_127 \def 
-(CHead c k TMP_126) in (csubc g TMP_127 c1))))) in (let TMP_129 \def (ex2 C 
-TMP_124 TMP_128) in (let TMP_177 \def (\lambda (H10: (ex2 C (\lambda (c3: 
-C).(eq C e1 (CHead c3 k x1))) (\lambda (c3: C).(csubc g x0 c3)))).(let 
-TMP_131 \def (\lambda (c3: C).(let TMP_130 \def (CHead c3 k x1) in (eq C e1 
-TMP_130))) in (let TMP_132 \def (\lambda (c3: C).(csubc g x0 c3)) in (let 
-TMP_134 \def (\lambda (c1: C).(let TMP_133 \def (S n) in (drop h TMP_133 c1 
-e1))) in (let TMP_138 \def (\lambda (c1: C).(let TMP_135 \def (r k n) in (let 
-TMP_136 \def (lift h TMP_135 x1) in (let TMP_137 \def (CHead c k TMP_136) in 
-(csubc g TMP_137 c1))))) in (let TMP_139 \def (ex2 C TMP_134 TMP_138) in (let 
-TMP_176 \def (\lambda (x: C).(\lambda (H11: (eq C e1 (CHead x k 
-x1))).(\lambda (H12: (csubc g x0 x)).(let TMP_140 \def (CHead x k x1) in (let 
-TMP_147 \def (\lambda (c0: C).(let TMP_142 \def (\lambda (c1: C).(let TMP_141 
-\def (S n) in (drop h TMP_141 c1 c0))) in (let TMP_146 \def (\lambda (c1: 
-C).(let TMP_143 \def (r k n) in (let TMP_144 \def (lift h TMP_143 x1) in (let 
-TMP_145 \def (CHead c k TMP_144) in (csubc g TMP_145 c1))))) in (ex2 C 
-TMP_142 TMP_146)))) in (let TMP_148 \def (r k n) in (let H_x0 \def (H x0 
-TMP_148 h H5 x H12) in (let H13 \def H_x0 in (let TMP_150 \def (\lambda (c1: 
-C).(let TMP_149 \def (r k n) in (drop h TMP_149 c1 x))) in (let TMP_151 \def 
-(\lambda (c1: C).(csubc g c c1)) in (let TMP_154 \def (\lambda (c1: C).(let 
-TMP_152 \def (S n) in (let TMP_153 \def (CHead x k x1) in (drop h TMP_152 c1 
-TMP_153)))) in (let TMP_158 \def (\lambda (c1: C).(let TMP_155 \def (r k n) 
-in (let TMP_156 \def (lift h TMP_155 x1) in (let TMP_157 \def (CHead c k 
-TMP_156) in (csubc g TMP_157 c1))))) in (let TMP_159 \def (ex2 C TMP_154 
-TMP_158) in (let TMP_174 \def (\lambda (x2: C).(\lambda (H14: (drop h (r k n) 
-x2 x)).(\lambda (H15: (csubc g c x2)).(let TMP_162 \def (\lambda (c1: C).(let 
-TMP_160 \def (S n) in (let TMP_161 \def (CHead x k x1) in (drop h TMP_160 c1 
-TMP_161)))) in (let TMP_166 \def (\lambda (c1: C).(let TMP_163 \def (r k n) 
-in (let TMP_164 \def (lift h TMP_163 x1) in (let TMP_165 \def (CHead c k 
-TMP_164) in (csubc g TMP_165 c1))))) in (let TMP_167 \def (r k n) in (let 
-TMP_168 \def (lift h TMP_167 x1) in (let TMP_169 \def (CHead x2 k TMP_168) in 
-(let TMP_170 \def (drop_skip k h n x2 x H14 x1) in (let TMP_171 \def (r k n) 
-in (let TMP_172 \def (lift h TMP_171 x1) in (let TMP_173 \def (csubc_head g c 
-x2 H15 k TMP_172) in (ex_intro2 C TMP_162 TMP_166 TMP_169 TMP_170 
-TMP_173))))))))))))) in (let TMP_175 \def (ex2_ind C TMP_150 TMP_151 TMP_159 
-TMP_174 H13) in (eq_ind_r C TMP_140 TMP_147 TMP_175 e1 H11)))))))))))))))) in 
-(ex2_ind C TMP_131 TMP_132 TMP_139 TMP_176 H10)))))))) in (let TMP_266 \def 
-(\lambda (H10: (ex5_3 C T A (\lambda (_: C).(\lambda (_: T).(\lambda (_: 
-A).(eq K k (Bind Abst))))) (\lambda (c3: C).(\lambda (w: T).(\lambda (_: 
-A).(eq C e1 (CHead c3 (Bind Abbr) w))))) (\lambda (c3: C).(\lambda (_: 
-T).(\lambda (_: A).(csubc g x0 c3)))) (\lambda (_: C).(\lambda (_: 
-T).(\lambda (a: A).(sc3 g (asucc g a) x0 x1)))) (\lambda (c3: C).(\lambda (w: 
-T).(\lambda (a: A).(sc3 g a c3 w)))))).(let TMP_179 \def (\lambda (_: 
-C).(\lambda (_: T).(\lambda (_: A).(let TMP_178 \def (Bind Abst) in (eq K k 
-TMP_178))))) in (let TMP_182 \def (\lambda (c3: C).(\lambda (w: T).(\lambda 
-(_: A).(let TMP_180 \def (Bind Abbr) in (let TMP_181 \def (CHead c3 TMP_180 
-w) in (eq C e1 TMP_181)))))) in (let TMP_183 \def (\lambda (c3: C).(\lambda 
-(_: T).(\lambda (_: A).(csubc g x0 c3)))) in (let TMP_185 \def (\lambda (_: 
-C).(\lambda (_: T).(\lambda (a: A).(let TMP_184 \def (asucc g a) in (sc3 g 
-TMP_184 x0 x1))))) in (let TMP_186 \def (\lambda (c3: C).(\lambda (w: 
-T).(\lambda (a: A).(sc3 g a c3 w)))) in (let TMP_188 \def (\lambda (c1: 
-C).(let TMP_187 \def (S n) in (drop h TMP_187 c1 e1))) in (let TMP_192 \def 
-(\lambda (c1: C).(let TMP_189 \def (r k n) in (let TMP_190 \def (lift h 
-TMP_189 x1) in (let TMP_191 \def (CHead c k TMP_190) in (csubc g TMP_191 
-c1))))) in (let TMP_193 \def (ex2 C TMP_188 TMP_192) in (let TMP_265 \def 
-(\lambda (x2: C).(\lambda (x3: T).(\lambda (x4: A).(\lambda (H11: (eq K k 
-(Bind Abst))).(\lambda (H12: (eq C e1 (CHead x2 (Bind Abbr) x3))).(\lambda 
-(H13: (csubc g x0 x2)).(\lambda (H14: (sc3 g (asucc g x4) x0 x1)).(\lambda 
-(H15: (sc3 g x4 x2 x3)).(let TMP_194 \def (Bind Abbr) in (let TMP_195 \def 
-(CHead x2 TMP_194 x3) in (let TMP_202 \def (\lambda (c0: C).(let TMP_197 \def 
-(\lambda (c1: C).(let TMP_196 \def (S n) in (drop h TMP_196 c1 c0))) in (let 
-TMP_201 \def (\lambda (c1: C).(let TMP_198 \def (r k n) in (let TMP_199 \def 
-(lift h TMP_198 x1) in (let TMP_200 \def (CHead c k TMP_199) in (csubc g 
-TMP_200 c1))))) in (ex2 C TMP_197 TMP_201)))) in (let TMP_208 \def (\lambda 
-(k0: K).(\forall (h0: nat).((drop h0 n (CHead c k0 (lift h (r k0 n) x1)) 
-(CHead x0 k0 x1)) \to (\forall (e3: C).((csubc g (CHead x0 k0 x1) e3) \to 
-(let TMP_203 \def (\lambda (c1: C).(drop h0 n c1 e3)) in (let TMP_207 \def 
-(\lambda (c1: C).(let TMP_204 \def (r k0 n) in (let TMP_205 \def (lift h 
-TMP_204 x1) in (let TMP_206 \def (CHead c k0 TMP_205) in (csubc g TMP_206 
-c1))))) in (ex2 C TMP_203 TMP_207)))))))) in (let TMP_209 \def (Bind Abst) in 
-(let H16 \def (eq_ind K k TMP_208 H8 TMP_209 H11) in (let TMP_211 \def 
-(\lambda (k0: K).(let TMP_210 \def (r k0 n) in (drop h TMP_210 c x0))) in 
-(let TMP_212 \def (Bind Abst) in (let H17 \def (eq_ind K k TMP_211 H5 TMP_212 
-H11) in (let TMP_213 \def (Bind Abst) in (let TMP_222 \def (\lambda (k0: 
-K).(let TMP_217 \def (\lambda (c1: C).(let TMP_214 \def (S n) in (let TMP_215 
-\def (Bind Abbr) in (let TMP_216 \def (CHead x2 TMP_215 x3) in (drop h 
-TMP_214 c1 TMP_216))))) in (let TMP_221 \def (\lambda (c1: C).(let TMP_218 
-\def (r k0 n) in (let TMP_219 \def (lift h TMP_218 x1) in (let TMP_220 \def 
-(CHead c k0 TMP_219) in (csubc g TMP_220 c1))))) in (ex2 C TMP_217 
-TMP_221)))) in (let TMP_223 \def (Bind Abst) in (let TMP_224 \def (r TMP_223 
-n) in (let H_x0 \def (H x0 TMP_224 h H17 x2 H13) in (let H18 \def H_x0 in 
-(let TMP_225 \def (\lambda (c1: C).(drop h n c1 x2)) in (let TMP_226 \def 
-(\lambda (c1: C).(csubc g c c1)) in (let TMP_230 \def (\lambda (c1: C).(let 
-TMP_227 \def (S n) in (let TMP_228 \def (Bind Abbr) in (let TMP_229 \def 
-(CHead x2 TMP_228 x3) in (drop h TMP_227 c1 TMP_229))))) in (let TMP_236 \def 
-(\lambda (c1: C).(let TMP_231 \def (Bind Abst) in (let TMP_232 \def (Bind 
-Abst) in (let TMP_233 \def (r TMP_232 n) in (let TMP_234 \def (lift h TMP_233 
-x1) in (let TMP_235 \def (CHead c TMP_231 TMP_234) in (csubc g TMP_235 
-c1))))))) in (let TMP_237 \def (ex2 C TMP_230 TMP_236) in (let TMP_262 \def 
+ \lambda (g: G).(\lambda (c2: C).(C_ind (\lambda (c: C).(\forall (e2: 
+C).(\forall (d: nat).(\forall (h: nat).((drop h d c e2) \to (\forall (e1: 
+C).((csubc g e2 e1) \to (ex2 C (\lambda (c1: C).(drop h d c1 e1)) (\lambda 
+(c1: C).(csubc g c c1)))))))))) (\lambda (n: nat).(\lambda (e2: C).(\lambda 
+(d: nat).(\lambda (h: nat).(\lambda (H: (drop h d (CSort n) e2)).(\lambda 
+(e1: C).(\lambda (H0: (csubc g e2 e1)).(and3_ind (eq C e2 (CSort n)) (eq nat 
+h O) (eq nat d O) (ex2 C (\lambda (c1: C).(drop h d c1 e1)) (\lambda (c1: 
+C).(csubc g (CSort n) c1))) (\lambda (H1: (eq C e2 (CSort n))).(\lambda (H2: 
+(eq nat h O)).(\lambda (H3: (eq nat d O)).(eq_ind_r nat O (\lambda (n0: 
+nat).(ex2 C (\lambda (c1: C).(drop n0 d c1 e1)) (\lambda (c1: C).(csubc g 
+(CSort n) c1)))) (eq_ind_r nat O (\lambda (n0: nat).(ex2 C (\lambda (c1: 
+C).(drop O n0 c1 e1)) (\lambda (c1: C).(csubc g (CSort n) c1)))) (let H4 \def 
+(eq_ind C e2 (\lambda (c: C).(csubc g c e1)) H0 (CSort n) H1) in (ex_intro2 C 
+(\lambda (c1: C).(drop O O c1 e1)) (\lambda (c1: C).(csubc g (CSort n) c1)) 
+e1 (drop_refl e1) H4)) d H3) h H2)))) (drop_gen_sort n h d e2 H))))))))) 
+(\lambda (c: C).(\lambda (H: ((\forall (e2: C).(\forall (d: nat).(\forall (h: 
+nat).((drop h d c e2) \to (\forall (e1: C).((csubc g e2 e1) \to (ex2 C 
+(\lambda (c1: C).(drop h d c1 e1)) (\lambda (c1: C).(csubc g c 
+c1))))))))))).(\lambda (k: K).(\lambda (t: T).(\lambda (e2: C).(\lambda (d: 
+nat).(nat_ind (\lambda (n: nat).(\forall (h: nat).((drop h n (CHead c k t) 
+e2) \to (\forall (e1: C).((csubc g e2 e1) \to (ex2 C (\lambda (c1: C).(drop h 
+n c1 e1)) (\lambda (c1: C).(csubc g (CHead c k t) c1)))))))) (\lambda (h: 
+nat).(nat_ind (\lambda (n: nat).((drop n O (CHead c k t) e2) \to (\forall 
+(e1: C).((csubc g e2 e1) \to (ex2 C (\lambda (c1: C).(drop n O c1 e1)) 
+(\lambda (c1: C).(csubc g (CHead c k t) c1))))))) (\lambda (H0: (drop O O 
+(CHead c k t) e2)).(\lambda (e1: C).(\lambda (H1: (csubc g e2 e1)).(let H2 
+\def (eq_ind_r C e2 (\lambda (c0: C).(csubc g c0 e1)) H1 (CHead c k t) 
+(drop_gen_refl (CHead c k t) e2 H0)) in (ex_intro2 C (\lambda (c1: C).(drop O 
+O c1 e1)) (\lambda (c1: C).(csubc g (CHead c k t) c1)) e1 (drop_refl e1) 
+H2))))) (\lambda (n: nat).(\lambda (_: (((drop n O (CHead c k t) e2) \to 
+(\forall (e1: C).((csubc g e2 e1) \to (ex2 C (\lambda (c1: C).(drop n O c1 
+e1)) (\lambda (c1: C).(csubc g (CHead c k t) c1)))))))).(\lambda (H1: (drop 
+(S n) O (CHead c k t) e2)).(\lambda (e1: C).(\lambda (H2: (csubc g e2 
+e1)).(let H_x \def (H e2 O (r k n) (drop_gen_drop k c e2 t n H1) e1 H2) in 
+(let H3 \def H_x in (ex2_ind C (\lambda (c1: C).(drop (r k n) O c1 e1)) 
+(\lambda (c1: C).(csubc g c c1)) (ex2 C (\lambda (c1: C).(drop (S n) O c1 
+e1)) (\lambda (c1: C).(csubc g (CHead c k t) c1))) (\lambda (x: C).(\lambda 
+(H4: (drop (r k n) O x e1)).(\lambda (H5: (csubc g c x)).(ex_intro2 C 
+(\lambda (c1: C).(drop (S n) O c1 e1)) (\lambda (c1: C).(csubc g (CHead c k 
+t) c1)) (CHead x k t) (drop_drop k n x e1 H4 t) (csubc_head g c x H5 k t))))) 
+H3)))))))) h)) (\lambda (n: nat).(\lambda (H0: ((\forall (h: nat).((drop h n 
+(CHead c k t) e2) \to (\forall (e1: C).((csubc g e2 e1) \to (ex2 C (\lambda 
+(c1: C).(drop h n c1 e1)) (\lambda (c1: C).(csubc g (CHead c k t) 
+c1))))))))).(\lambda (h: nat).(\lambda (H1: (drop h (S n) (CHead c k t) 
+e2)).(\lambda (e1: C).(\lambda (H2: (csubc g e2 e1)).(ex3_2_ind C T (\lambda 
+(e: C).(\lambda (v: T).(eq C e2 (CHead e k v)))) (\lambda (_: C).(\lambda (v: 
+T).(eq T t (lift h (r k n) v)))) (\lambda (e: C).(\lambda (_: T).(drop h (r k 
+n) c e))) (ex2 C (\lambda (c1: C).(drop h (S n) c1 e1)) (\lambda (c1: 
+C).(csubc g (CHead c k t) c1))) (\lambda (x0: C).(\lambda (x1: T).(\lambda 
+(H3: (eq C e2 (CHead x0 k x1))).(\lambda (H4: (eq T t (lift h (r k n) 
+x1))).(\lambda (H5: (drop h (r k n) c x0)).(let H6 \def (eq_ind C e2 (\lambda 
+(c0: C).(csubc g c0 e1)) H2 (CHead x0 k x1) H3) in (let H7 \def (eq_ind C e2 
+(\lambda (c0: C).(\forall (h0: nat).((drop h0 n (CHead c k t) c0) \to 
+(\forall (e3: C).((csubc g c0 e3) \to (ex2 C (\lambda (c1: C).(drop h0 n c1 
+e3)) (\lambda (c1: C).(csubc g (CHead c k t) c1)))))))) H0 (CHead x0 k x1) 
+H3) in (let H8 \def (eq_ind T t (\lambda (t0: T).(\forall (h0: nat).((drop h0 
+n (CHead c k t0) (CHead x0 k x1)) \to (\forall (e3: C).((csubc g (CHead x0 k 
+x1) e3) \to (ex2 C (\lambda (c1: C).(drop h0 n c1 e3)) (\lambda (c1: 
+C).(csubc g (CHead c k t0) c1)))))))) H7 (lift h (r k n) x1) H4) in (eq_ind_r 
+T (lift h (r k n) x1) (\lambda (t0: T).(ex2 C (\lambda (c1: C).(drop h (S n) 
+c1 e1)) (\lambda (c1: C).(csubc g (CHead c k t0) c1)))) (let H_x \def 
+(csubc_gen_head_l g x0 e1 x1 k H6) in (let H9 \def H_x in (or3_ind (ex2 C 
+(\lambda (c3: C).(eq C e1 (CHead c3 k x1))) (\lambda (c3: C).(csubc g x0 
+c3))) (ex5_3 C T A (\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(eq K k 
+(Bind Abst))))) (\lambda (c3: C).(\lambda (w: T).(\lambda (_: A).(eq C e1 
+(CHead c3 (Bind Abbr) w))))) (\lambda (c3: C).(\lambda (_: T).(\lambda (_: 
+A).(csubc g x0 c3)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g 
+(asucc g a) x0 x1)))) (\lambda (c3: C).(\lambda (w: T).(\lambda (a: A).(sc3 g 
+a c3 w))))) (ex4_3 B C T (\lambda (b: B).(\lambda (c3: C).(\lambda (v2: 
+T).(eq C e1 (CHead c3 (Bind b) v2))))) (\lambda (_: B).(\lambda (_: 
+C).(\lambda (_: T).(eq K k (Bind Void))))) (\lambda (b: B).(\lambda (_: 
+C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_: B).(\lambda (c3: 
+C).(\lambda (_: T).(csubc g x0 c3))))) (ex2 C (\lambda (c1: C).(drop h (S n) 
+c1 e1)) (\lambda (c1: C).(csubc g (CHead c k (lift h (r k n) x1)) c1))) 
+(\lambda (H10: (ex2 C (\lambda (c3: C).(eq C e1 (CHead c3 k x1))) (\lambda 
+(c3: C).(csubc g x0 c3)))).(ex2_ind C (\lambda (c3: C).(eq C e1 (CHead c3 k 
+x1))) (\lambda (c3: C).(csubc g x0 c3)) (ex2 C (\lambda (c1: C).(drop h (S n) 
+c1 e1)) (\lambda (c1: C).(csubc g (CHead c k (lift h (r k n) x1)) c1))) 
+(\lambda (x: C).(\lambda (H11: (eq C e1 (CHead x k x1))).(\lambda (H12: 
+(csubc g x0 x)).(eq_ind_r C (CHead x k x1) (\lambda (c0: C).(ex2 C (\lambda 
+(c1: C).(drop h (S n) c1 c0)) (\lambda (c1: C).(csubc g (CHead c k (lift h (r 
+k n) x1)) c1)))) (let H_x0 \def (H x0 (r k n) h H5 x H12) in (let H13 \def 
+H_x0 in (ex2_ind C (\lambda (c1: C).(drop h (r k n) c1 x)) (\lambda (c1: 
+C).(csubc g c c1)) (ex2 C (\lambda (c1: C).(drop h (S n) c1 (CHead x k x1))) 
+(\lambda (c1: C).(csubc g (CHead c k (lift h (r k n) x1)) c1))) (\lambda (x2: 
+C).(\lambda (H14: (drop h (r k n) x2 x)).(\lambda (H15: (csubc g c 
+x2)).(ex_intro2 C (\lambda (c1: C).(drop h (S n) c1 (CHead x k x1))) (\lambda 
+(c1: C).(csubc g (CHead c k (lift h (r k n) x1)) c1)) (CHead x2 k (lift h (r 
+k n) x1)) (drop_skip k h n x2 x H14 x1) (csubc_head g c x2 H15 k (lift h (r k 
+n) x1)))))) H13))) e1 H11)))) H10)) (\lambda (H10: (ex5_3 C T A (\lambda (_: 
+C).(\lambda (_: T).(\lambda (_: A).(eq K k (Bind Abst))))) (\lambda (c3: 
+C).(\lambda (w: T).(\lambda (_: A).(eq C e1 (CHead c3 (Bind Abbr) w))))) 
+(\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g x0 c3)))) (\lambda 
+(_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g (asucc g a) x0 x1)))) (\lambda 
+(c3: C).(\lambda (w: T).(\lambda (a: A).(sc3 g a c3 w)))))).(ex5_3_ind C T A 
+(\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(eq K k (Bind Abst))))) 
+(\lambda (c3: C).(\lambda (w: T).(\lambda (_: A).(eq C e1 (CHead c3 (Bind 
+Abbr) w))))) (\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g x0 
+c3)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g (asucc g a) x0 
+x1)))) (\lambda (c3: C).(\lambda (w: T).(\lambda (a: A).(sc3 g a c3 w)))) 
+(ex2 C (\lambda (c1: C).(drop h (S n) c1 e1)) (\lambda (c1: C).(csubc g 
+(CHead c k (lift h (r k n) x1)) c1))) (\lambda (x2: C).(\lambda (x3: 
+T).(\lambda (x4: A).(\lambda (H11: (eq K k (Bind Abst))).(\lambda (H12: (eq C 
+e1 (CHead x2 (Bind Abbr) x3))).(\lambda (H13: (csubc g x0 x2)).(\lambda (H14: 
+(sc3 g (asucc g x4) x0 x1)).(\lambda (H15: (sc3 g x4 x2 x3)).(eq_ind_r C 
+(CHead x2 (Bind Abbr) x3) (\lambda (c0: C).(ex2 C (\lambda (c1: C).(drop h (S 
+n) c1 c0)) (\lambda (c1: C).(csubc g (CHead c k (lift h (r k n) x1)) c1)))) 
+(let H16 \def (eq_ind K k (\lambda (k0: K).(\forall (h0: nat).((drop h0 n 
+(CHead c k0 (lift h (r k0 n) x1)) (CHead x0 k0 x1)) \to (\forall (e3: 
+C).((csubc g (CHead x0 k0 x1) e3) \to (ex2 C (\lambda (c1: C).(drop h0 n c1 
+e3)) (\lambda (c1: C).(csubc g (CHead c k0 (lift h (r k0 n) x1)) c1)))))))) 
+H8 (Bind Abst) H11) in (let H17 \def (eq_ind K k (\lambda (k0: K).(drop h (r 
+k0 n) c x0)) H5 (Bind Abst) H11) in (eq_ind_r K (Bind Abst) (\lambda (k0: 
+K).(ex2 C (\lambda (c1: C).(drop h (S n) c1 (CHead x2 (Bind Abbr) x3))) 
+(\lambda (c1: C).(csubc g (CHead c k0 (lift h (r k0 n) x1)) c1)))) (let H_x0 
+\def (H x0 (r (Bind Abst) n) h H17 x2 H13) in (let H18 \def H_x0 in (ex2_ind 
+C (\lambda (c1: C).(drop h n c1 x2)) (\lambda (c1: C).(csubc g c c1)) (ex2 C 
+(\lambda (c1: C).(drop h (S n) c1 (CHead x2 (Bind Abbr) x3))) (\lambda (c1: 
+C).(csubc g (CHead c (Bind Abst) (lift h (r (Bind Abst) n) x1)) c1))) 
 (\lambda (x: C).(\lambda (H19: (drop h n x x2)).(\lambda (H20: (csubc g c 
-x)).(let TMP_241 \def (\lambda (c1: C).(let TMP_238 \def (S n) in (let 
-TMP_239 \def (Bind Abbr) in (let TMP_240 \def (CHead x2 TMP_239 x3) in (drop 
-h TMP_238 c1 TMP_240))))) in (let TMP_247 \def (\lambda (c1: C).(let TMP_242 
-\def (Bind Abst) in (let TMP_243 \def (Bind Abst) in (let TMP_244 \def (r 
-TMP_243 n) in (let TMP_245 \def (lift h TMP_244 x1) in (let TMP_246 \def 
-(CHead c TMP_242 TMP_245) in (csubc g TMP_246 c1))))))) in (let TMP_248 \def 
-(Bind Abbr) in (let TMP_249 \def (lift h n x3) in (let TMP_250 \def (CHead x 
-TMP_248 TMP_249) in (let TMP_251 \def (drop_skip_bind h n x x2 H19 Abbr x3) 
-in (let TMP_252 \def (Bind Abst) in (let TMP_253 \def (r TMP_252 n) in (let 
-TMP_254 \def (lift h TMP_253 x1) in (let TMP_255 \def (asucc g x4) in (let 
-TMP_256 \def (Bind Abst) in (let TMP_257 \def (r TMP_256 n) in (let TMP_258 
-\def (sc3_lift g TMP_255 x0 x1 H14 c h TMP_257 H17) in (let TMP_259 \def 
-(lift h n x3) in (let TMP_260 \def (sc3_lift g x4 x2 x3 H15 x h n H19) in 
-(let TMP_261 \def (csubc_abst g c x H20 TMP_254 x4 TMP_258 TMP_259 TMP_260) 
-in (ex_intro2 C TMP_241 TMP_247 TMP_250 TMP_251 TMP_261)))))))))))))))))))) 
-in (let TMP_263 \def (ex2_ind C TMP_225 TMP_226 TMP_237 TMP_262 H18) in (let 
-TMP_264 \def (eq_ind_r K TMP_213 TMP_222 TMP_263 k H11) in (eq_ind_r C 
-TMP_195 TMP_202 TMP_264 e1 H12)))))))))))))))))))))))))))))))) in (ex5_3_ind 
-C T A TMP_179 TMP_182 TMP_183 TMP_185 TMP_186 TMP_193 TMP_265 H10))))))))))) 
-in (let TMP_349 \def (\lambda (H10: (ex4_3 B C T (\lambda (b: B).(\lambda 
-(c3: C).(\lambda (v2: T).(eq C e1 (CHead c3 (Bind b) v2))))) (\lambda (_: 
+x)).(ex_intro2 C (\lambda (c1: C).(drop h (S n) c1 (CHead x2 (Bind Abbr) 
+x3))) (\lambda (c1: C).(csubc g (CHead c (Bind Abst) (lift h (r (Bind Abst) 
+n) x1)) c1)) (CHead x (Bind Abbr) (lift h n x3)) (drop_skip_bind h n x x2 H19 
+Abbr x3) (csubc_abst g c x H20 (lift h (r (Bind Abst) n) x1) x4 (sc3_lift g 
+(asucc g x4) x0 x1 H14 c h (r (Bind Abst) n) H17) (lift h n x3) (sc3_lift g 
+x4 x2 x3 H15 x h n H19)))))) H18))) k H11))) e1 H12))))))))) H10)) (\lambda 
+(H10: (ex4_3 B C T (\lambda (b: B).(\lambda (c3: C).(\lambda (v2: T).(eq C e1 
+(CHead c3 (Bind b) v2))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: 
+T).(eq K k (Bind Void))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: 
+T).(not (eq B b Void))))) (\lambda (_: B).(\lambda (c3: C).(\lambda (_: 
+T).(csubc g x0 c3)))))).(ex4_3_ind B C T (\lambda (b: B).(\lambda (c3: 
+C).(\lambda (v2: T).(eq C e1 (CHead c3 (Bind b) v2))))) (\lambda (_: 
 B).(\lambda (_: C).(\lambda (_: T).(eq K k (Bind Void))))) (\lambda (b: 
 B).(\lambda (_: C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_: 
-B).(\lambda (c3: C).(\lambda (_: T).(csubc g x0 c3)))))).(let TMP_269 \def 
-(\lambda (b: B).(\lambda (c3: C).(\lambda (v2: T).(let TMP_267 \def (Bind b) 
-in (let TMP_268 \def (CHead c3 TMP_267 v2) in (eq C e1 TMP_268)))))) in (let 
-TMP_271 \def (\lambda (_: B).(\lambda (_: C).(\lambda (_: T).(let TMP_270 
-\def (Bind Void) in (eq K k TMP_270))))) in (let TMP_273 \def (\lambda (b: 
-B).(\lambda (_: C).(\lambda (_: T).(let TMP_272 \def (eq B b Void) in (not 
-TMP_272))))) in (let TMP_274 \def (\lambda (_: B).(\lambda (c3: C).(\lambda 
-(_: T).(csubc g x0 c3)))) in (let TMP_276 \def (\lambda (c1: C).(let TMP_275 
-\def (S n) in (drop h TMP_275 c1 e1))) in (let TMP_280 \def (\lambda (c1: 
-C).(let TMP_277 \def (r k n) in (let TMP_278 \def (lift h TMP_277 x1) in (let 
-TMP_279 \def (CHead c k TMP_278) in (csubc g TMP_279 c1))))) in (let TMP_281 
-\def (ex2 C TMP_276 TMP_280) in (let TMP_348 \def (\lambda (x2: B).(\lambda 
-(x3: C).(\lambda (x4: T).(\lambda (H11: (eq C e1 (CHead x3 (Bind x2) 
-x4))).(\lambda (H12: (eq K k (Bind Void))).(\lambda (H13: (not (eq B x2 
-Void))).(\lambda (H14: (csubc g x0 x3)).(let TMP_282 \def (Bind x2) in (let 
-TMP_283 \def (CHead x3 TMP_282 x4) in (let TMP_290 \def (\lambda (c0: C).(let 
-TMP_285 \def (\lambda (c1: C).(let TMP_284 \def (S n) in (drop h TMP_284 c1 
-c0))) in (let TMP_289 \def (\lambda (c1: C).(let TMP_286 \def (r k n) in (let 
-TMP_287 \def (lift h TMP_286 x1) in (let TMP_288 \def (CHead c k TMP_287) in 
-(csubc g TMP_288 c1))))) in (ex2 C TMP_285 TMP_289)))) in (let TMP_296 \def 
-(\lambda (k0: K).(\forall (h0: nat).((drop h0 n (CHead c k0 (lift h (r k0 n) 
-x1)) (CHead x0 k0 x1)) \to (\forall (e3: C).((csubc g (CHead x0 k0 x1) e3) 
-\to (let TMP_291 \def (\lambda (c1: C).(drop h0 n c1 e3)) in (let TMP_295 
-\def (\lambda (c1: C).(let TMP_292 \def (r k0 n) in (let TMP_293 \def (lift h 
-TMP_292 x1) in (let TMP_294 \def (CHead c k0 TMP_293) in (csubc g TMP_294 
-c1))))) in (ex2 C TMP_291 TMP_295)))))))) in (let TMP_297 \def (Bind Void) in 
-(let H15 \def (eq_ind K k TMP_296 H8 TMP_297 H12) in (let TMP_299 \def 
-(\lambda (k0: K).(let TMP_298 \def (r k0 n) in (drop h TMP_298 c x0))) in 
-(let TMP_300 \def (Bind Void) in (let H16 \def (eq_ind K k TMP_299 H5 TMP_300 
-H12) in (let TMP_301 \def (Bind Void) in (let TMP_310 \def (\lambda (k0: 
-K).(let TMP_305 \def (\lambda (c1: C).(let TMP_302 \def (S n) in (let TMP_303 
-\def (Bind x2) in (let TMP_304 \def (CHead x3 TMP_303 x4) in (drop h TMP_302 
-c1 TMP_304))))) in (let TMP_309 \def (\lambda (c1: C).(let TMP_306 \def (r k0 
-n) in (let TMP_307 \def (lift h TMP_306 x1) in (let TMP_308 \def (CHead c k0 
-TMP_307) in (csubc g TMP_308 c1))))) in (ex2 C TMP_305 TMP_309)))) in (let 
-TMP_311 \def (Bind Void) in (let TMP_312 \def (r TMP_311 n) in (let H_x0 \def 
-(H x0 TMP_312 h H16 x3 H14) in (let H17 \def H_x0 in (let TMP_313 \def 
-(\lambda (c1: C).(drop h n c1 x3)) in (let TMP_314 \def (\lambda (c1: 
-C).(csubc g c c1)) in (let TMP_318 \def (\lambda (c1: C).(let TMP_315 \def (S 
-n) in (let TMP_316 \def (Bind x2) in (let TMP_317 \def (CHead x3 TMP_316 x4) 
-in (drop h TMP_315 c1 TMP_317))))) in (let TMP_324 \def (\lambda (c1: C).(let 
-TMP_319 \def (Bind Void) in (let TMP_320 \def (Bind Void) in (let TMP_321 
-\def (r TMP_320 n) in (let TMP_322 \def (lift h TMP_321 x1) in (let TMP_323 
-\def (CHead c TMP_319 TMP_322) in (csubc g TMP_323 c1))))))) in (let TMP_325 
-\def (ex2 C TMP_318 TMP_324) in (let TMP_345 \def (\lambda (x: C).(\lambda 
-(H18: (drop h n x x3)).(\lambda (H19: (csubc g c x)).(let TMP_329 \def 
-(\lambda (c1: C).(let TMP_326 \def (S n) in (let TMP_327 \def (Bind x2) in 
-(let TMP_328 \def (CHead x3 TMP_327 x4) in (drop h TMP_326 c1 TMP_328))))) in 
-(let TMP_335 \def (\lambda (c1: C).(let TMP_330 \def (Bind Void) in (let 
-TMP_331 \def (Bind Void) in (let TMP_332 \def (r TMP_331 n) in (let TMP_333 
-\def (lift h TMP_332 x1) in (let TMP_334 \def (CHead c TMP_330 TMP_333) in 
-(csubc g TMP_334 c1))))))) in (let TMP_336 \def (Bind x2) in (let TMP_337 
-\def (lift h n x4) in (let TMP_338 \def (CHead x TMP_336 TMP_337) in (let 
-TMP_339 \def (drop_skip_bind h n x x3 H18 x2 x4) in (let TMP_340 \def (Bind 
-Void) in (let TMP_341 \def (r TMP_340 n) in (let TMP_342 \def (lift h TMP_341 
-x1) in (let TMP_343 \def (lift h n x4) in (let TMP_344 \def (csubc_void g c x 
-H19 x2 H13 TMP_342 TMP_343) in (ex_intro2 C TMP_329 TMP_335 TMP_338 TMP_339 
-TMP_344))))))))))))))) in (let TMP_346 \def (ex2_ind C TMP_313 TMP_314 
-TMP_325 TMP_345 H17) in (let TMP_347 \def (eq_ind_r K TMP_301 TMP_310 TMP_346 
-k H12) in (eq_ind_r C TMP_283 TMP_290 TMP_347 e1 
-H11))))))))))))))))))))))))))))))) in (ex4_3_ind B C T TMP_269 TMP_271 
-TMP_273 TMP_274 TMP_281 TMP_348 H10)))))))))) in (let TMP_350 \def (or3_ind 
-TMP_103 TMP_113 TMP_122 TMP_129 TMP_177 TMP_266 TMP_349 H9) in (eq_ind_r T 
-TMP_94 TMP_99 TMP_350 t H4)))))))))))))))))))))))))))))))))))))))))) in (let 
-TMP_352 \def (drop_gen_skip_l c e2 t h n k H1) in (ex3_2_ind C T TMP_69 
-TMP_72 TMP_74 TMP_79 TMP_351 TMP_352))))))))))))))) in (nat_ind TMP_34 TMP_67 
-TMP_353 d)))))))))) in (C_ind TMP_3 TMP_30 TMP_354 c2))))).
+B).(\lambda (c3: C).(\lambda (_: T).(csubc g x0 c3)))) (ex2 C (\lambda (c1: 
+C).(drop h (S n) c1 e1)) (\lambda (c1: C).(csubc g (CHead c k (lift h (r k n) 
+x1)) c1))) (\lambda (x2: B).(\lambda (x3: C).(\lambda (x4: T).(\lambda (H11: 
+(eq C e1 (CHead x3 (Bind x2) x4))).(\lambda (H12: (eq K k (Bind 
+Void))).(\lambda (H13: (not (eq B x2 Void))).(\lambda (H14: (csubc g x0 
+x3)).(eq_ind_r C (CHead x3 (Bind x2) x4) (\lambda (c0: C).(ex2 C (\lambda 
+(c1: C).(drop h (S n) c1 c0)) (\lambda (c1: C).(csubc g (CHead c k (lift h (r 
+k n) x1)) c1)))) (let H15 \def (eq_ind K k (\lambda (k0: K).(\forall (h0: 
+nat).((drop h0 n (CHead c k0 (lift h (r k0 n) x1)) (CHead x0 k0 x1)) \to 
+(\forall (e3: C).((csubc g (CHead x0 k0 x1) e3) \to (ex2 C (\lambda (c1: 
+C).(drop h0 n c1 e3)) (\lambda (c1: C).(csubc g (CHead c k0 (lift h (r k0 n) 
+x1)) c1)))))))) H8 (Bind Void) H12) in (let H16 \def (eq_ind K k (\lambda 
+(k0: K).(drop h (r k0 n) c x0)) H5 (Bind Void) H12) in (eq_ind_r K (Bind 
+Void) (\lambda (k0: K).(ex2 C (\lambda (c1: C).(drop h (S n) c1 (CHead x3 
+(Bind x2) x4))) (\lambda (c1: C).(csubc g (CHead c k0 (lift h (r k0 n) x1)) 
+c1)))) (let H_x0 \def (H x0 (r (Bind Void) n) h H16 x3 H14) in (let H17 \def 
+H_x0 in (ex2_ind C (\lambda (c1: C).(drop h n c1 x3)) (\lambda (c1: C).(csubc 
+g c c1)) (ex2 C (\lambda (c1: C).(drop h (S n) c1 (CHead x3 (Bind x2) x4))) 
+(\lambda (c1: C).(csubc g (CHead c (Bind Void) (lift h (r (Bind Void) n) x1)) 
+c1))) (\lambda (x: C).(\lambda (H18: (drop h n x x3)).(\lambda (H19: (csubc g 
+c x)).(ex_intro2 C (\lambda (c1: C).(drop h (S n) c1 (CHead x3 (Bind x2) 
+x4))) (\lambda (c1: C).(csubc g (CHead c (Bind Void) (lift h (r (Bind Void) 
+n) x1)) c1)) (CHead x (Bind x2) (lift h n x4)) (drop_skip_bind h n x x3 H18 
+x2 x4) (csubc_void g c x H19 x2 H13 (lift h (r (Bind Void) n) x1) (lift h n 
+x4)))))) H17))) k H12))) e1 H11)))))))) H10)) H9))) t H4))))))))) 
+(drop_gen_skip_l c e2 t h n k H1)))))))) d))))))) c2)).
 
 theorem csubc_drop_conf_rev:
  \forall (g: G).(\forall (c2: C).(\forall (e2: C).(\forall (d: nat).(\forall 
 (h: nat).((drop h d c2 e2) \to (\forall (e1: C).((csubc g e1 e2) \to (ex2 C 
 (\lambda (c1: C).(drop h d c1 e1)) (\lambda (c1: C).(csubc g c1 c2))))))))))
 \def
- \lambda (g: G).(\lambda (c2: C).(let TMP_3 \def (\lambda (c: C).(\forall 
-(e2: C).(\forall (d: nat).(\forall (h: nat).((drop h d c e2) \to (\forall 
-(e1: C).((csubc g e1 e2) \to (let TMP_1 \def (\lambda (c1: C).(drop h d c1 
-e1)) in (let TMP_2 \def (\lambda (c1: C).(csubc g c1 c)) in (ex2 C TMP_1 
-TMP_2)))))))))) in (let TMP_30 \def (\lambda (n: nat).(\lambda (e2: 
-C).(\lambda (d: nat).(\lambda (h: nat).(\lambda (H: (drop h d (CSort n) 
-e2)).(\lambda (e1: C).(\lambda (H0: (csubc g e1 e2)).(let TMP_4 \def (CSort 
-n) in (let TMP_5 \def (eq C e2 TMP_4) in (let TMP_6 \def (eq nat h O) in (let 
-TMP_7 \def (eq nat d O) in (let TMP_8 \def (\lambda (c1: C).(drop h d c1 e1)) 
-in (let TMP_10 \def (\lambda (c1: C).(let TMP_9 \def (CSort n) in (csubc g c1 
-TMP_9))) in (let TMP_11 \def (ex2 C TMP_8 TMP_10) in (let TMP_28 \def 
-(\lambda (H1: (eq C e2 (CSort n))).(\lambda (H2: (eq nat h O)).(\lambda (H3: 
-(eq nat d O)).(let TMP_15 \def (\lambda (n0: nat).(let TMP_12 \def (\lambda 
-(c1: C).(drop n0 d c1 e1)) in (let TMP_14 \def (\lambda (c1: C).(let TMP_13 
-\def (CSort n) in (csubc g c1 TMP_13))) in (ex2 C TMP_12 TMP_14)))) in (let 
-TMP_19 \def (\lambda (n0: nat).(let TMP_16 \def (\lambda (c1: C).(drop O n0 
-c1 e1)) in (let TMP_18 \def (\lambda (c1: C).(let TMP_17 \def (CSort n) in 
-(csubc g c1 TMP_17))) in (ex2 C TMP_16 TMP_18)))) in (let TMP_20 \def 
-(\lambda (c: C).(csubc g e1 c)) in (let TMP_21 \def (CSort n) in (let H4 \def 
-(eq_ind C e2 TMP_20 H0 TMP_21 H1) in (let TMP_22 \def (\lambda (c1: C).(drop 
-O O c1 e1)) in (let TMP_24 \def (\lambda (c1: C).(let TMP_23 \def (CSort n) 
-in (csubc g c1 TMP_23))) in (let TMP_25 \def (drop_refl e1) in (let TMP_26 
-\def (ex_intro2 C TMP_22 TMP_24 e1 TMP_25 H4) in (let TMP_27 \def (eq_ind_r 
-nat O TMP_19 TMP_26 d H3) in (eq_ind_r nat O TMP_15 TMP_27 h H2)))))))))))))) 
-in (let TMP_29 \def (drop_gen_sort n h d e2 H) in (and3_ind TMP_5 TMP_6 TMP_7 
-TMP_11 TMP_28 TMP_29))))))))))))))))) in (let TMP_354 \def (\lambda (c: 
-C).(\lambda (H: ((\forall (e2: C).(\forall (d: nat).(\forall (h: nat).((drop 
-h d c e2) \to (\forall (e1: C).((csubc g e1 e2) \to (ex2 C (\lambda (c1: 
-C).(drop h d c1 e1)) (\lambda (c1: C).(csubc g c1 c))))))))))).(\lambda (k: 
-K).(\lambda (t: T).(\lambda (e2: C).(\lambda (d: nat).(let TMP_34 \def 
-(\lambda (n: nat).(\forall (h: nat).((drop h n (CHead c k t) e2) \to (\forall 
-(e1: C).((csubc g e1 e2) \to (let TMP_31 \def (\lambda (c1: C).(drop h n c1 
-e1)) in (let TMP_33 \def (\lambda (c1: C).(let TMP_32 \def (CHead c k t) in 
-(csubc g c1 TMP_32))) in (ex2 C TMP_31 TMP_33)))))))) in (let TMP_67 \def 
-(\lambda (h: nat).(let TMP_38 \def (\lambda (n: nat).((drop n O (CHead c k t) 
-e2) \to (\forall (e1: C).((csubc g e1 e2) \to (let TMP_35 \def (\lambda (c1: 
-C).(drop n O c1 e1)) in (let TMP_37 \def (\lambda (c1: C).(let TMP_36 \def 
-(CHead c k t) in (csubc g c1 TMP_36))) in (ex2 C TMP_35 TMP_37))))))) in (let 
-TMP_47 \def (\lambda (H0: (drop O O (CHead c k t) e2)).(\lambda (e1: 
-C).(\lambda (H1: (csubc g e1 e2)).(let TMP_39 \def (\lambda (c0: C).(csubc g 
-e1 c0)) in (let TMP_40 \def (CHead c k t) in (let TMP_41 \def (CHead c k t) 
-in (let TMP_42 \def (drop_gen_refl TMP_41 e2 H0) in (let H2 \def (eq_ind_r C 
-e2 TMP_39 H1 TMP_40 TMP_42) in (let TMP_43 \def (\lambda (c1: C).(drop O O c1 
-e1)) in (let TMP_45 \def (\lambda (c1: C).(let TMP_44 \def (CHead c k t) in 
-(csubc g c1 TMP_44))) in (let TMP_46 \def (drop_refl e1) in (ex_intro2 C 
-TMP_43 TMP_45 e1 TMP_46 H2)))))))))))) in (let TMP_66 \def (\lambda (n: 
-nat).(\lambda (_: (((drop n O (CHead c k t) e2) \to (\forall (e1: C).((csubc 
-g e1 e2) \to (ex2 C (\lambda (c1: C).(drop n O c1 e1)) (\lambda (c1: 
-C).(csubc g c1 (CHead c k t))))))))).(\lambda (H1: (drop (S n) O (CHead c k 
-t) e2)).(\lambda (e1: C).(\lambda (H2: (csubc g e1 e2)).(let TMP_48 \def (r k 
-n) in (let TMP_49 \def (drop_gen_drop k c e2 t n H1) in (let H_x \def (H e2 O 
-TMP_48 TMP_49 e1 H2) in (let H3 \def H_x in (let TMP_51 \def (\lambda (c1: 
-C).(let TMP_50 \def (r k n) in (drop TMP_50 O c1 e1))) in (let TMP_52 \def 
-(\lambda (c1: C).(csubc g c1 c)) in (let TMP_54 \def (\lambda (c1: C).(let 
-TMP_53 \def (S n) in (drop TMP_53 O c1 e1))) in (let TMP_56 \def (\lambda 
-(c1: C).(let TMP_55 \def (CHead c k t) in (csubc g c1 TMP_55))) in (let 
-TMP_57 \def (ex2 C TMP_54 TMP_56) in (let TMP_65 \def (\lambda (x: 
-C).(\lambda (H4: (drop (r k n) O x e1)).(\lambda (H5: (csubc g x c)).(let 
-TMP_59 \def (\lambda (c1: C).(let TMP_58 \def (S n) in (drop TMP_58 O c1 
-e1))) in (let TMP_61 \def (\lambda (c1: C).(let TMP_60 \def (CHead c k t) in 
-(csubc g c1 TMP_60))) in (let TMP_62 \def (CHead x k t) in (let TMP_63 \def 
-(drop_drop k n x e1 H4 t) in (let TMP_64 \def (csubc_head g x c H5 k t) in 
-(ex_intro2 C TMP_59 TMP_61 TMP_62 TMP_63 TMP_64))))))))) in (ex2_ind C TMP_51 
-TMP_52 TMP_57 TMP_65 H3)))))))))))))))) in (nat_ind TMP_38 TMP_47 TMP_66 
-h))))) in (let TMP_353 \def (\lambda (n: nat).(\lambda (H0: ((\forall (h: 
-nat).((drop h n (CHead c k t) e2) \to (\forall (e1: C).((csubc g e1 e2) \to 
-(ex2 C (\lambda (c1: C).(drop h n c1 e1)) (\lambda (c1: C).(csubc g c1 (CHead 
-c k t)))))))))).(\lambda (h: nat).(\lambda (H1: (drop h (S n) (CHead c k t) 
-e2)).(\lambda (e1: C).(\lambda (H2: (csubc g e1 e2)).(let TMP_69 \def 
-(\lambda (e: C).(\lambda (v: T).(let TMP_68 \def (CHead e k v) in (eq C e2 
-TMP_68)))) in (let TMP_72 \def (\lambda (_: C).(\lambda (v: T).(let TMP_70 
-\def (r k n) in (let TMP_71 \def (lift h TMP_70 v) in (eq T t TMP_71))))) in 
-(let TMP_74 \def (\lambda (e: C).(\lambda (_: T).(let TMP_73 \def (r k n) in 
-(drop h TMP_73 c e)))) in (let TMP_76 \def (\lambda (c1: C).(let TMP_75 \def 
-(S n) in (drop h TMP_75 c1 e1))) in (let TMP_78 \def (\lambda (c1: C).(let 
-TMP_77 \def (CHead c k t) in (csubc g c1 TMP_77))) in (let TMP_79 \def (ex2 C 
-TMP_76 TMP_78) in (let TMP_351 \def (\lambda (x0: C).(\lambda (x1: 
-T).(\lambda (H3: (eq C e2 (CHead x0 k x1))).(\lambda (H4: (eq T t (lift h (r 
-k n) x1))).(\lambda (H5: (drop h (r k n) c x0)).(let TMP_80 \def (\lambda 
-(c0: C).(csubc g e1 c0)) in (let TMP_81 \def (CHead x0 k x1) in (let H6 \def 
-(eq_ind C e2 TMP_80 H2 TMP_81 H3) in (let TMP_85 \def (\lambda (c0: 
-C).(\forall (h0: nat).((drop h0 n (CHead c k t) c0) \to (\forall (e3: 
-C).((csubc g e3 c0) \to (let TMP_82 \def (\lambda (c1: C).(drop h0 n c1 e3)) 
-in (let TMP_84 \def (\lambda (c1: C).(let TMP_83 \def (CHead c k t) in (csubc 
-g c1 TMP_83))) in (ex2 C TMP_82 TMP_84)))))))) in (let TMP_86 \def (CHead x0 
-k x1) in (let H7 \def (eq_ind C e2 TMP_85 H0 TMP_86 H3) in (let TMP_90 \def 
-(\lambda (t0: T).(\forall (h0: nat).((drop h0 n (CHead c k t0) (CHead x0 k 
-x1)) \to (\forall (e3: C).((csubc g e3 (CHead x0 k x1)) \to (let TMP_87 \def 
-(\lambda (c1: C).(drop h0 n c1 e3)) in (let TMP_89 \def (\lambda (c1: C).(let 
-TMP_88 \def (CHead c k t0) in (csubc g c1 TMP_88))) in (ex2 C TMP_87 
-TMP_89)))))))) in (let TMP_91 \def (r k n) in (let TMP_92 \def (lift h TMP_91 
-x1) in (let H8 \def (eq_ind T t TMP_90 H7 TMP_92 H4) in (let TMP_93 \def (r k 
-n) in (let TMP_94 \def (lift h TMP_93 x1) in (let TMP_99 \def (\lambda (t0: 
-T).(let TMP_96 \def (\lambda (c1: C).(let TMP_95 \def (S n) in (drop h TMP_95 
-c1 e1))) in (let TMP_98 \def (\lambda (c1: C).(let TMP_97 \def (CHead c k t0) 
-in (csubc g c1 TMP_97))) in (ex2 C TMP_96 TMP_98)))) in (let H_x \def 
-(csubc_gen_head_r g x0 e1 x1 k H6) in (let H9 \def H_x in (let TMP_101 \def 
-(\lambda (c1: C).(let TMP_100 \def (CHead c1 k x1) in (eq C e1 TMP_100))) in 
-(let TMP_102 \def (\lambda (c1: C).(csubc g c1 x0)) in (let TMP_103 \def (ex2 
-C TMP_101 TMP_102) in (let TMP_105 \def (\lambda (_: C).(\lambda (_: 
-T).(\lambda (_: A).(let TMP_104 \def (Bind Abbr) in (eq K k TMP_104))))) in 
-(let TMP_108 \def (\lambda (c1: C).(\lambda (v: T).(\lambda (_: A).(let 
-TMP_106 \def (Bind Abst) in (let TMP_107 \def (CHead c1 TMP_106 v) in (eq C 
-e1 TMP_107)))))) in (let TMP_109 \def (\lambda (c1: C).(\lambda (_: 
-T).(\lambda (_: A).(csubc g c1 x0)))) in (let TMP_111 \def (\lambda (c1: 
-C).(\lambda (v: T).(\lambda (a: A).(let TMP_110 \def (asucc g a) in (sc3 g 
-TMP_110 c1 v))))) in (let TMP_112 \def (\lambda (_: C).(\lambda (_: 
-T).(\lambda (a: A).(sc3 g a x0 x1)))) in (let TMP_113 \def (ex5_3 C T A 
-TMP_105 TMP_108 TMP_109 TMP_111 TMP_112) in (let TMP_116 \def (\lambda (_: 
-B).(\lambda (c1: C).(\lambda (v1: T).(let TMP_114 \def (Bind Void) in (let 
-TMP_115 \def (CHead c1 TMP_114 v1) in (eq C e1 TMP_115)))))) in (let TMP_118 
-\def (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(let TMP_117 \def (Bind 
-b) in (eq K k TMP_117))))) in (let TMP_120 \def (\lambda (b: B).(\lambda (_: 
-C).(\lambda (_: T).(let TMP_119 \def (eq B b Void) in (not TMP_119))))) in 
-(let TMP_121 \def (\lambda (_: B).(\lambda (c1: C).(\lambda (_: T).(csubc g 
-c1 x0)))) in (let TMP_122 \def (ex4_3 B C T TMP_116 TMP_118 TMP_120 TMP_121) 
-in (let TMP_124 \def (\lambda (c1: C).(let TMP_123 \def (S n) in (drop h 
-TMP_123 c1 e1))) in (let TMP_128 \def (\lambda (c1: C).(let TMP_125 \def (r k 
-n) in (let TMP_126 \def (lift h TMP_125 x1) in (let TMP_127 \def (CHead c k 
-TMP_126) in (csubc g c1 TMP_127))))) in (let TMP_129 \def (ex2 C TMP_124 
-TMP_128) in (let TMP_177 \def (\lambda (H10: (ex2 C (\lambda (c1: C).(eq C e1 
-(CHead c1 k x1))) (\lambda (c1: C).(csubc g c1 x0)))).(let TMP_131 \def 
-(\lambda (c1: C).(let TMP_130 \def (CHead c1 k x1) in (eq C e1 TMP_130))) in 
-(let TMP_132 \def (\lambda (c1: C).(csubc g c1 x0)) in (let TMP_134 \def 
-(\lambda (c1: C).(let TMP_133 \def (S n) in (drop h TMP_133 c1 e1))) in (let 
-TMP_138 \def (\lambda (c1: C).(let TMP_135 \def (r k n) in (let TMP_136 \def 
-(lift h TMP_135 x1) in (let TMP_137 \def (CHead c k TMP_136) in (csubc g c1 
-TMP_137))))) in (let TMP_139 \def (ex2 C TMP_134 TMP_138) in (let TMP_176 
-\def (\lambda (x: C).(\lambda (H11: (eq C e1 (CHead x k x1))).(\lambda (H12: 
-(csubc g x x0)).(let TMP_140 \def (CHead x k x1) in (let TMP_147 \def 
-(\lambda (c0: C).(let TMP_142 \def (\lambda (c1: C).(let TMP_141 \def (S n) 
-in (drop h TMP_141 c1 c0))) in (let TMP_146 \def (\lambda (c1: C).(let 
-TMP_143 \def (r k n) in (let TMP_144 \def (lift h TMP_143 x1) in (let TMP_145 
-\def (CHead c k TMP_144) in (csubc g c1 TMP_145))))) in (ex2 C TMP_142 
-TMP_146)))) in (let TMP_148 \def (r k n) in (let H_x0 \def (H x0 TMP_148 h H5 
-x H12) in (let H13 \def H_x0 in (let TMP_150 \def (\lambda (c1: C).(let 
-TMP_149 \def (r k n) in (drop h TMP_149 c1 x))) in (let TMP_151 \def (\lambda 
-(c1: C).(csubc g c1 c)) in (let TMP_154 \def (\lambda (c1: C).(let TMP_152 
-\def (S n) in (let TMP_153 \def (CHead x k x1) in (drop h TMP_152 c1 
-TMP_153)))) in (let TMP_158 \def (\lambda (c1: C).(let TMP_155 \def (r k n) 
-in (let TMP_156 \def (lift h TMP_155 x1) in (let TMP_157 \def (CHead c k 
-TMP_156) in (csubc g c1 TMP_157))))) in (let TMP_159 \def (ex2 C TMP_154 
-TMP_158) in (let TMP_174 \def (\lambda (x2: C).(\lambda (H14: (drop h (r k n) 
-x2 x)).(\lambda (H15: (csubc g x2 c)).(let TMP_162 \def (\lambda (c1: C).(let 
-TMP_160 \def (S n) in (let TMP_161 \def (CHead x k x1) in (drop h TMP_160 c1 
-TMP_161)))) in (let TMP_166 \def (\lambda (c1: C).(let TMP_163 \def (r k n) 
-in (let TMP_164 \def (lift h TMP_163 x1) in (let TMP_165 \def (CHead c k 
-TMP_164) in (csubc g c1 TMP_165))))) in (let TMP_167 \def (r k n) in (let 
-TMP_168 \def (lift h TMP_167 x1) in (let TMP_169 \def (CHead x2 k TMP_168) in 
-(let TMP_170 \def (drop_skip k h n x2 x H14 x1) in (let TMP_171 \def (r k n) 
-in (let TMP_172 \def (lift h TMP_171 x1) in (let TMP_173 \def (csubc_head g 
-x2 c H15 k TMP_172) in (ex_intro2 C TMP_162 TMP_166 TMP_169 TMP_170 
-TMP_173))))))))))))) in (let TMP_175 \def (ex2_ind C TMP_150 TMP_151 TMP_159 
-TMP_174 H13) in (eq_ind_r C TMP_140 TMP_147 TMP_175 e1 H11)))))))))))))))) in 
-(ex2_ind C TMP_131 TMP_132 TMP_139 TMP_176 H10)))))))) in (let TMP_266 \def 
-(\lambda (H10: (ex5_3 C T A (\lambda (_: C).(\lambda (_: T).(\lambda (_: 
-A).(eq K k (Bind Abbr))))) (\lambda (c1: C).(\lambda (v: T).(\lambda (_: 
-A).(eq C e1 (CHead c1 (Bind Abst) v))))) (\lambda (c1: C).(\lambda (_: 
-T).(\lambda (_: A).(csubc g c1 x0)))) (\lambda (c1: C).(\lambda (v: 
-T).(\lambda (a: A).(sc3 g (asucc g a) c1 v)))) (\lambda (_: C).(\lambda (_: 
-T).(\lambda (a: A).(sc3 g a x0 x1)))))).(let TMP_179 \def (\lambda (_: 
-C).(\lambda (_: T).(\lambda (_: A).(let TMP_178 \def (Bind Abbr) in (eq K k 
-TMP_178))))) in (let TMP_182 \def (\lambda (c1: C).(\lambda (v: T).(\lambda 
-(_: A).(let TMP_180 \def (Bind Abst) in (let TMP_181 \def (CHead c1 TMP_180 
-v) in (eq C e1 TMP_181)))))) in (let TMP_183 \def (\lambda (c1: C).(\lambda 
-(_: T).(\lambda (_: A).(csubc g c1 x0)))) in (let TMP_185 \def (\lambda (c1: 
-C).(\lambda (v: T).(\lambda (a: A).(let TMP_184 \def (asucc g a) in (sc3 g 
-TMP_184 c1 v))))) in (let TMP_186 \def (\lambda (_: C).(\lambda (_: 
-T).(\lambda (a: A).(sc3 g a x0 x1)))) in (let TMP_188 \def (\lambda (c1: 
-C).(let TMP_187 \def (S n) in (drop h TMP_187 c1 e1))) in (let TMP_192 \def 
-(\lambda (c1: C).(let TMP_189 \def (r k n) in (let TMP_190 \def (lift h 
-TMP_189 x1) in (let TMP_191 \def (CHead c k TMP_190) in (csubc g c1 
-TMP_191))))) in (let TMP_193 \def (ex2 C TMP_188 TMP_192) in (let TMP_265 
-\def (\lambda (x2: C).(\lambda (x3: T).(\lambda (x4: A).(\lambda (H11: (eq K 
-k (Bind Abbr))).(\lambda (H12: (eq C e1 (CHead x2 (Bind Abst) x3))).(\lambda 
-(H13: (csubc g x2 x0)).(\lambda (H14: (sc3 g (asucc g x4) x2 x3)).(\lambda 
-(H15: (sc3 g x4 x0 x1)).(let TMP_194 \def (Bind Abst) in (let TMP_195 \def 
-(CHead x2 TMP_194 x3) in (let TMP_202 \def (\lambda (c0: C).(let TMP_197 \def 
-(\lambda (c1: C).(let TMP_196 \def (S n) in (drop h TMP_196 c1 c0))) in (let 
-TMP_201 \def (\lambda (c1: C).(let TMP_198 \def (r k n) in (let TMP_199 \def 
-(lift h TMP_198 x1) in (let TMP_200 \def (CHead c k TMP_199) in (csubc g c1 
-TMP_200))))) in (ex2 C TMP_197 TMP_201)))) in (let TMP_208 \def (\lambda (k0: 
-K).(\forall (h0: nat).((drop h0 n (CHead c k0 (lift h (r k0 n) x1)) (CHead x0 
-k0 x1)) \to (\forall (e3: C).((csubc g e3 (CHead x0 k0 x1)) \to (let TMP_203 
-\def (\lambda (c1: C).(drop h0 n c1 e3)) in (let TMP_207 \def (\lambda (c1: 
-C).(let TMP_204 \def (r k0 n) in (let TMP_205 \def (lift h TMP_204 x1) in 
-(let TMP_206 \def (CHead c k0 TMP_205) in (csubc g c1 TMP_206))))) in (ex2 C 
-TMP_203 TMP_207)))))))) in (let TMP_209 \def (Bind Abbr) in (let H16 \def 
-(eq_ind K k TMP_208 H8 TMP_209 H11) in (let TMP_211 \def (\lambda (k0: 
-K).(let TMP_210 \def (r k0 n) in (drop h TMP_210 c x0))) in (let TMP_212 \def 
-(Bind Abbr) in (let H17 \def (eq_ind K k TMP_211 H5 TMP_212 H11) in (let 
-TMP_213 \def (Bind Abbr) in (let TMP_222 \def (\lambda (k0: K).(let TMP_217 
-\def (\lambda (c1: C).(let TMP_214 \def (S n) in (let TMP_215 \def (Bind 
-Abst) in (let TMP_216 \def (CHead x2 TMP_215 x3) in (drop h TMP_214 c1 
-TMP_216))))) in (let TMP_221 \def (\lambda (c1: C).(let TMP_218 \def (r k0 n) 
-in (let TMP_219 \def (lift h TMP_218 x1) in (let TMP_220 \def (CHead c k0 
-TMP_219) in (csubc g c1 TMP_220))))) in (ex2 C TMP_217 TMP_221)))) in (let 
-TMP_223 \def (Bind Abbr) in (let TMP_224 \def (r TMP_223 n) in (let H_x0 \def 
-(H x0 TMP_224 h H17 x2 H13) in (let H18 \def H_x0 in (let TMP_225 \def 
-(\lambda (c1: C).(drop h n c1 x2)) in (let TMP_226 \def (\lambda (c1: 
-C).(csubc g c1 c)) in (let TMP_230 \def (\lambda (c1: C).(let TMP_227 \def (S 
-n) in (let TMP_228 \def (Bind Abst) in (let TMP_229 \def (CHead x2 TMP_228 
-x3) in (drop h TMP_227 c1 TMP_229))))) in (let TMP_236 \def (\lambda (c1: 
-C).(let TMP_231 \def (Bind Abbr) in (let TMP_232 \def (Bind Abbr) in (let 
-TMP_233 \def (r TMP_232 n) in (let TMP_234 \def (lift h TMP_233 x1) in (let 
-TMP_235 \def (CHead c TMP_231 TMP_234) in (csubc g c1 TMP_235))))))) in (let 
-TMP_237 \def (ex2 C TMP_230 TMP_236) in (let TMP_262 \def (\lambda (x: 
-C).(\lambda (H19: (drop h n x x2)).(\lambda (H20: (csubc g x c)).(let TMP_241 
-\def (\lambda (c1: C).(let TMP_238 \def (S n) in (let TMP_239 \def (Bind 
-Abst) in (let TMP_240 \def (CHead x2 TMP_239 x3) in (drop h TMP_238 c1 
-TMP_240))))) in (let TMP_247 \def (\lambda (c1: C).(let TMP_242 \def (Bind 
-Abbr) in (let TMP_243 \def (Bind Abbr) in (let TMP_244 \def (r TMP_243 n) in 
-(let TMP_245 \def (lift h TMP_244 x1) in (let TMP_246 \def (CHead c TMP_242 
-TMP_245) in (csubc g c1 TMP_246))))))) in (let TMP_248 \def (Bind Abst) in 
-(let TMP_249 \def (lift h n x3) in (let TMP_250 \def (CHead x TMP_248 
-TMP_249) in (let TMP_251 \def (drop_skip_bind h n x x2 H19 Abst x3) in (let 
-TMP_252 \def (lift h n x3) in (let TMP_253 \def (asucc g x4) in (let TMP_254 
-\def (sc3_lift g TMP_253 x2 x3 H14 x h n H19) in (let TMP_255 \def (Bind 
-Abbr) in (let TMP_256 \def (r TMP_255 n) in (let TMP_257 \def (lift h TMP_256 
-x1) in (let TMP_258 \def (Bind Abbr) in (let TMP_259 \def (r TMP_258 n) in 
-(let TMP_260 \def (sc3_lift g x4 x0 x1 H15 c h TMP_259 H17) in (let TMP_261 
-\def (csubc_abst g x c H20 TMP_252 x4 TMP_254 TMP_257 TMP_260) in (ex_intro2 
-C TMP_241 TMP_247 TMP_250 TMP_251 TMP_261)))))))))))))))))))) in (let TMP_263 
-\def (ex2_ind C TMP_225 TMP_226 TMP_237 TMP_262 H18) in (let TMP_264 \def 
-(eq_ind_r K TMP_213 TMP_222 TMP_263 k H11) in (eq_ind_r C TMP_195 TMP_202 
-TMP_264 e1 H12)))))))))))))))))))))))))))))))) in (ex5_3_ind C T A TMP_179 
-TMP_182 TMP_183 TMP_185 TMP_186 TMP_193 TMP_265 H10))))))))))) in (let 
-TMP_349 \def (\lambda (H10: (ex4_3 B C T (\lambda (_: B).(\lambda (c1: 
-C).(\lambda (v1: T).(eq C e1 (CHead c1 (Bind Void) v1))))) (\lambda (b: 
-B).(\lambda (_: C).(\lambda (_: T).(eq K k (Bind b))))) (\lambda (b: 
-B).(\lambda (_: C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_: 
-B).(\lambda (c1: C).(\lambda (_: T).(csubc g c1 x0)))))).(let TMP_269 \def 
-(\lambda (_: B).(\lambda (c1: C).(\lambda (v1: T).(let TMP_267 \def (Bind 
-Void) in (let TMP_268 \def (CHead c1 TMP_267 v1) in (eq C e1 TMP_268)))))) in 
-(let TMP_271 \def (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(let 
-TMP_270 \def (Bind b) in (eq K k TMP_270))))) in (let TMP_273 \def (\lambda 
-(b: B).(\lambda (_: C).(\lambda (_: T).(let TMP_272 \def (eq B b Void) in 
-(not TMP_272))))) in (let TMP_274 \def (\lambda (_: B).(\lambda (c1: 
-C).(\lambda (_: T).(csubc g c1 x0)))) in (let TMP_276 \def (\lambda (c1: 
-C).(let TMP_275 \def (S n) in (drop h TMP_275 c1 e1))) in (let TMP_280 \def 
-(\lambda (c1: C).(let TMP_277 \def (r k n) in (let TMP_278 \def (lift h 
-TMP_277 x1) in (let TMP_279 \def (CHead c k TMP_278) in (csubc g c1 
-TMP_279))))) in (let TMP_281 \def (ex2 C TMP_276 TMP_280) in (let TMP_348 
-\def (\lambda (x2: B).(\lambda (x3: C).(\lambda (x4: T).(\lambda (H11: (eq C 
-e1 (CHead x3 (Bind Void) x4))).(\lambda (H12: (eq K k (Bind x2))).(\lambda 
-(H13: (not (eq B x2 Void))).(\lambda (H14: (csubc g x3 x0)).(let TMP_282 \def 
-(Bind Void) in (let TMP_283 \def (CHead x3 TMP_282 x4) in (let TMP_290 \def 
-(\lambda (c0: C).(let TMP_285 \def (\lambda (c1: C).(let TMP_284 \def (S n) 
-in (drop h TMP_284 c1 c0))) in (let TMP_289 \def (\lambda (c1: C).(let 
-TMP_286 \def (r k n) in (let TMP_287 \def (lift h TMP_286 x1) in (let TMP_288 
-\def (CHead c k TMP_287) in (csubc g c1 TMP_288))))) in (ex2 C TMP_285 
-TMP_289)))) in (let TMP_296 \def (\lambda (k0: K).(\forall (h0: nat).((drop 
-h0 n (CHead c k0 (lift h (r k0 n) x1)) (CHead x0 k0 x1)) \to (\forall (e3: 
-C).((csubc g e3 (CHead x0 k0 x1)) \to (let TMP_291 \def (\lambda (c1: 
-C).(drop h0 n c1 e3)) in (let TMP_295 \def (\lambda (c1: C).(let TMP_292 \def 
-(r k0 n) in (let TMP_293 \def (lift h TMP_292 x1) in (let TMP_294 \def (CHead 
-c k0 TMP_293) in (csubc g c1 TMP_294))))) in (ex2 C TMP_291 TMP_295)))))))) 
-in (let TMP_297 \def (Bind x2) in (let H15 \def (eq_ind K k TMP_296 H8 
-TMP_297 H12) in (let TMP_299 \def (\lambda (k0: K).(let TMP_298 \def (r k0 n) 
-in (drop h TMP_298 c x0))) in (let TMP_300 \def (Bind x2) in (let H16 \def 
-(eq_ind K k TMP_299 H5 TMP_300 H12) in (let TMP_301 \def (Bind x2) in (let 
-TMP_310 \def (\lambda (k0: K).(let TMP_305 \def (\lambda (c1: C).(let TMP_302 
-\def (S n) in (let TMP_303 \def (Bind Void) in (let TMP_304 \def (CHead x3 
-TMP_303 x4) in (drop h TMP_302 c1 TMP_304))))) in (let TMP_309 \def (\lambda 
-(c1: C).(let TMP_306 \def (r k0 n) in (let TMP_307 \def (lift h TMP_306 x1) 
-in (let TMP_308 \def (CHead c k0 TMP_307) in (csubc g c1 TMP_308))))) in (ex2 
-C TMP_305 TMP_309)))) in (let TMP_311 \def (Bind x2) in (let TMP_312 \def (r 
-TMP_311 n) in (let H_x0 \def (H x0 TMP_312 h H16 x3 H14) in (let H17 \def 
-H_x0 in (let TMP_313 \def (\lambda (c1: C).(drop h n c1 x3)) in (let TMP_314 
-\def (\lambda (c1: C).(csubc g c1 c)) in (let TMP_318 \def (\lambda (c1: 
-C).(let TMP_315 \def (S n) in (let TMP_316 \def (Bind Void) in (let TMP_317 
-\def (CHead x3 TMP_316 x4) in (drop h TMP_315 c1 TMP_317))))) in (let TMP_324 
-\def (\lambda (c1: C).(let TMP_319 \def (Bind x2) in (let TMP_320 \def (Bind 
-x2) in (let TMP_321 \def (r TMP_320 n) in (let TMP_322 \def (lift h TMP_321 
-x1) in (let TMP_323 \def (CHead c TMP_319 TMP_322) in (csubc g c1 
-TMP_323))))))) in (let TMP_325 \def (ex2 C TMP_318 TMP_324) in (let TMP_345 
-\def (\lambda (x: C).(\lambda (H18: (drop h n x x3)).(\lambda (H19: (csubc g 
-x c)).(let TMP_329 \def (\lambda (c1: C).(let TMP_326 \def (S n) in (let 
-TMP_327 \def (Bind Void) in (let TMP_328 \def (CHead x3 TMP_327 x4) in (drop 
-h TMP_326 c1 TMP_328))))) in (let TMP_335 \def (\lambda (c1: C).(let TMP_330 
-\def (Bind x2) in (let TMP_331 \def (Bind x2) in (let TMP_332 \def (r TMP_331 
-n) in (let TMP_333 \def (lift h TMP_332 x1) in (let TMP_334 \def (CHead c 
-TMP_330 TMP_333) in (csubc g c1 TMP_334))))))) in (let TMP_336 \def (Bind 
-Void) in (let TMP_337 \def (lift h n x4) in (let TMP_338 \def (CHead x 
-TMP_336 TMP_337) in (let TMP_339 \def (drop_skip_bind h n x x3 H18 Void x4) 
-in (let TMP_340 \def (lift h n x4) in (let TMP_341 \def (Bind x2) in (let 
-TMP_342 \def (r TMP_341 n) in (let TMP_343 \def (lift h TMP_342 x1) in (let 
-TMP_344 \def (csubc_void g x c H19 x2 H13 TMP_340 TMP_343) in (ex_intro2 C 
-TMP_329 TMP_335 TMP_338 TMP_339 TMP_344))))))))))))))) in (let TMP_346 \def 
-(ex2_ind C TMP_313 TMP_314 TMP_325 TMP_345 H17) in (let TMP_347 \def 
-(eq_ind_r K TMP_301 TMP_310 TMP_346 k H12) in (eq_ind_r C TMP_283 TMP_290 
-TMP_347 e1 H11))))))))))))))))))))))))))))))) in (ex4_3_ind B C T TMP_269 
-TMP_271 TMP_273 TMP_274 TMP_281 TMP_348 H10)))))))))) in (let TMP_350 \def 
-(or3_ind TMP_103 TMP_113 TMP_122 TMP_129 TMP_177 TMP_266 TMP_349 H9) in 
-(eq_ind_r T TMP_94 TMP_99 TMP_350 t 
-H4)))))))))))))))))))))))))))))))))))))))))) in (let TMP_352 \def 
-(drop_gen_skip_l c e2 t h n k H1) in (ex3_2_ind C T TMP_69 TMP_72 TMP_74 
-TMP_79 TMP_351 TMP_352))))))))))))))) in (nat_ind TMP_34 TMP_67 TMP_353 
-d)))))))))) in (C_ind TMP_3 TMP_30 TMP_354 c2))))).
+ \lambda (g: G).(\lambda (c2: C).(C_ind (\lambda (c: C).(\forall (e2: 
+C).(\forall (d: nat).(\forall (h: nat).((drop h d c e2) \to (\forall (e1: 
+C).((csubc g e1 e2) \to (ex2 C (\lambda (c1: C).(drop h d c1 e1)) (\lambda 
+(c1: C).(csubc g c1 c)))))))))) (\lambda (n: nat).(\lambda (e2: C).(\lambda 
+(d: nat).(\lambda (h: nat).(\lambda (H: (drop h d (CSort n) e2)).(\lambda 
+(e1: C).(\lambda (H0: (csubc g e1 e2)).(and3_ind (eq C e2 (CSort n)) (eq nat 
+h O) (eq nat d O) (ex2 C (\lambda (c1: C).(drop h d c1 e1)) (\lambda (c1: 
+C).(csubc g c1 (CSort n)))) (\lambda (H1: (eq C e2 (CSort n))).(\lambda (H2: 
+(eq nat h O)).(\lambda (H3: (eq nat d O)).(eq_ind_r nat O (\lambda (n0: 
+nat).(ex2 C (\lambda (c1: C).(drop n0 d c1 e1)) (\lambda (c1: C).(csubc g c1 
+(CSort n))))) (eq_ind_r nat O (\lambda (n0: nat).(ex2 C (\lambda (c1: 
+C).(drop O n0 c1 e1)) (\lambda (c1: C).(csubc g c1 (CSort n))))) (let H4 \def 
+(eq_ind C e2 (\lambda (c: C).(csubc g e1 c)) H0 (CSort n) H1) in (ex_intro2 C 
+(\lambda (c1: C).(drop O O c1 e1)) (\lambda (c1: C).(csubc g c1 (CSort n))) 
+e1 (drop_refl e1) H4)) d H3) h H2)))) (drop_gen_sort n h d e2 H))))))))) 
+(\lambda (c: C).(\lambda (H: ((\forall (e2: C).(\forall (d: nat).(\forall (h: 
+nat).((drop h d c e2) \to (\forall (e1: C).((csubc g e1 e2) \to (ex2 C 
+(\lambda (c1: C).(drop h d c1 e1)) (\lambda (c1: C).(csubc g c1 
+c))))))))))).(\lambda (k: K).(\lambda (t: T).(\lambda (e2: C).(\lambda (d: 
+nat).(nat_ind (\lambda (n: nat).(\forall (h: nat).((drop h n (CHead c k t) 
+e2) \to (\forall (e1: C).((csubc g e1 e2) \to (ex2 C (\lambda (c1: C).(drop h 
+n c1 e1)) (\lambda (c1: C).(csubc g c1 (CHead c k t))))))))) (\lambda (h: 
+nat).(nat_ind (\lambda (n: nat).((drop n O (CHead c k t) e2) \to (\forall 
+(e1: C).((csubc g e1 e2) \to (ex2 C (\lambda (c1: C).(drop n O c1 e1)) 
+(\lambda (c1: C).(csubc g c1 (CHead c k t)))))))) (\lambda (H0: (drop O O 
+(CHead c k t) e2)).(\lambda (e1: C).(\lambda (H1: (csubc g e1 e2)).(let H2 
+\def (eq_ind_r C e2 (\lambda (c0: C).(csubc g e1 c0)) H1 (CHead c k t) 
+(drop_gen_refl (CHead c k t) e2 H0)) in (ex_intro2 C (\lambda (c1: C).(drop O 
+O c1 e1)) (\lambda (c1: C).(csubc g c1 (CHead c k t))) e1 (drop_refl e1) 
+H2))))) (\lambda (n: nat).(\lambda (_: (((drop n O (CHead c k t) e2) \to 
+(\forall (e1: C).((csubc g e1 e2) \to (ex2 C (\lambda (c1: C).(drop n O c1 
+e1)) (\lambda (c1: C).(csubc g c1 (CHead c k t))))))))).(\lambda (H1: (drop 
+(S n) O (CHead c k t) e2)).(\lambda (e1: C).(\lambda (H2: (csubc g e1 
+e2)).(let H_x \def (H e2 O (r k n) (drop_gen_drop k c e2 t n H1) e1 H2) in 
+(let H3 \def H_x in (ex2_ind C (\lambda (c1: C).(drop (r k n) O c1 e1)) 
+(\lambda (c1: C).(csubc g c1 c)) (ex2 C (\lambda (c1: C).(drop (S n) O c1 
+e1)) (\lambda (c1: C).(csubc g c1 (CHead c k t)))) (\lambda (x: C).(\lambda 
+(H4: (drop (r k n) O x e1)).(\lambda (H5: (csubc g x c)).(ex_intro2 C 
+(\lambda (c1: C).(drop (S n) O c1 e1)) (\lambda (c1: C).(csubc g c1 (CHead c 
+k t))) (CHead x k t) (drop_drop k n x e1 H4 t) (csubc_head g x c H5 k t))))) 
+H3)))))))) h)) (\lambda (n: nat).(\lambda (H0: ((\forall (h: nat).((drop h n 
+(CHead c k t) e2) \to (\forall (e1: C).((csubc g e1 e2) \to (ex2 C (\lambda 
+(c1: C).(drop h n c1 e1)) (\lambda (c1: C).(csubc g c1 (CHead c k 
+t)))))))))).(\lambda (h: nat).(\lambda (H1: (drop h (S n) (CHead c k t) 
+e2)).(\lambda (e1: C).(\lambda (H2: (csubc g e1 e2)).(ex3_2_ind C T (\lambda 
+(e: C).(\lambda (v: T).(eq C e2 (CHead e k v)))) (\lambda (_: C).(\lambda (v: 
+T).(eq T t (lift h (r k n) v)))) (\lambda (e: C).(\lambda (_: T).(drop h (r k 
+n) c e))) (ex2 C (\lambda (c1: C).(drop h (S n) c1 e1)) (\lambda (c1: 
+C).(csubc g c1 (CHead c k t)))) (\lambda (x0: C).(\lambda (x1: T).(\lambda 
+(H3: (eq C e2 (CHead x0 k x1))).(\lambda (H4: (eq T t (lift h (r k n) 
+x1))).(\lambda (H5: (drop h (r k n) c x0)).(let H6 \def (eq_ind C e2 (\lambda 
+(c0: C).(csubc g e1 c0)) H2 (CHead x0 k x1) H3) in (let H7 \def (eq_ind C e2 
+(\lambda (c0: C).(\forall (h0: nat).((drop h0 n (CHead c k t) c0) \to 
+(\forall (e3: C).((csubc g e3 c0) \to (ex2 C (\lambda (c1: C).(drop h0 n c1 
+e3)) (\lambda (c1: C).(csubc g c1 (CHead c k t))))))))) H0 (CHead x0 k x1) 
+H3) in (let H8 \def (eq_ind T t (\lambda (t0: T).(\forall (h0: nat).((drop h0 
+n (CHead c k t0) (CHead x0 k x1)) \to (\forall (e3: C).((csubc g e3 (CHead x0 
+k x1)) \to (ex2 C (\lambda (c1: C).(drop h0 n c1 e3)) (\lambda (c1: C).(csubc 
+g c1 (CHead c k t0))))))))) H7 (lift h (r k n) x1) H4) in (eq_ind_r T (lift h 
+(r k n) x1) (\lambda (t0: T).(ex2 C (\lambda (c1: C).(drop h (S n) c1 e1)) 
+(\lambda (c1: C).(csubc g c1 (CHead c k t0))))) (let H_x \def 
+(csubc_gen_head_r g x0 e1 x1 k H6) in (let H9 \def H_x in (or3_ind (ex2 C 
+(\lambda (c1: C).(eq C e1 (CHead c1 k x1))) (\lambda (c1: C).(csubc g c1 
+x0))) (ex5_3 C T A (\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(eq K k 
+(Bind Abbr))))) (\lambda (c1: C).(\lambda (v: T).(\lambda (_: A).(eq C e1 
+(CHead c1 (Bind Abst) v))))) (\lambda (c1: C).(\lambda (_: T).(\lambda (_: 
+A).(csubc g c1 x0)))) (\lambda (c1: C).(\lambda (v: T).(\lambda (a: A).(sc3 g 
+(asucc g a) c1 v)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g a 
+x0 x1))))) (ex4_3 B C T (\lambda (_: B).(\lambda (c1: C).(\lambda (v1: T).(eq 
+C e1 (CHead c1 (Bind Void) v1))))) (\lambda (b: B).(\lambda (_: C).(\lambda 
+(_: T).(eq K k (Bind b))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: 
+T).(not (eq B b Void))))) (\lambda (_: B).(\lambda (c1: C).(\lambda (_: 
+T).(csubc g c1 x0))))) (ex2 C (\lambda (c1: C).(drop h (S n) c1 e1)) (\lambda 
+(c1: C).(csubc g c1 (CHead c k (lift h (r k n) x1))))) (\lambda (H10: (ex2 C 
+(\lambda (c1: C).(eq C e1 (CHead c1 k x1))) (\lambda (c1: C).(csubc g c1 
+x0)))).(ex2_ind C (\lambda (c1: C).(eq C e1 (CHead c1 k x1))) (\lambda (c1: 
+C).(csubc g c1 x0)) (ex2 C (\lambda (c1: C).(drop h (S n) c1 e1)) (\lambda 
+(c1: C).(csubc g c1 (CHead c k (lift h (r k n) x1))))) (\lambda (x: 
+C).(\lambda (H11: (eq C e1 (CHead x k x1))).(\lambda (H12: (csubc g x 
+x0)).(eq_ind_r C (CHead x k x1) (\lambda (c0: C).(ex2 C (\lambda (c1: 
+C).(drop h (S n) c1 c0)) (\lambda (c1: C).(csubc g c1 (CHead c k (lift h (r k 
+n) x1)))))) (let H_x0 \def (H x0 (r k n) h H5 x H12) in (let H13 \def H_x0 in 
+(ex2_ind C (\lambda (c1: C).(drop h (r k n) c1 x)) (\lambda (c1: C).(csubc g 
+c1 c)) (ex2 C (\lambda (c1: C).(drop h (S n) c1 (CHead x k x1))) (\lambda 
+(c1: C).(csubc g c1 (CHead c k (lift h (r k n) x1))))) (\lambda (x2: 
+C).(\lambda (H14: (drop h (r k n) x2 x)).(\lambda (H15: (csubc g x2 
+c)).(ex_intro2 C (\lambda (c1: C).(drop h (S n) c1 (CHead x k x1))) (\lambda 
+(c1: C).(csubc g c1 (CHead c k (lift h (r k n) x1)))) (CHead x2 k (lift h (r 
+k n) x1)) (drop_skip k h n x2 x H14 x1) (csubc_head g x2 c H15 k (lift h (r k 
+n) x1)))))) H13))) e1 H11)))) H10)) (\lambda (H10: (ex5_3 C T A (\lambda (_: 
+C).(\lambda (_: T).(\lambda (_: A).(eq K k (Bind Abbr))))) (\lambda (c1: 
+C).(\lambda (v: T).(\lambda (_: A).(eq C e1 (CHead c1 (Bind Abst) v))))) 
+(\lambda (c1: C).(\lambda (_: T).(\lambda (_: A).(csubc g c1 x0)))) (\lambda 
+(c1: C).(\lambda (v: T).(\lambda (a: A).(sc3 g (asucc g a) c1 v)))) (\lambda 
+(_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g a x0 x1)))))).(ex5_3_ind C T A 
+(\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(eq K k (Bind Abbr))))) 
+(\lambda (c1: C).(\lambda (v: T).(\lambda (_: A).(eq C e1 (CHead c1 (Bind 
+Abst) v))))) (\lambda (c1: C).(\lambda (_: T).(\lambda (_: A).(csubc g c1 
+x0)))) (\lambda (c1: C).(\lambda (v: T).(\lambda (a: A).(sc3 g (asucc g a) c1 
+v)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g a x0 x1)))) (ex2 
+C (\lambda (c1: C).(drop h (S n) c1 e1)) (\lambda (c1: C).(csubc g c1 (CHead 
+c k (lift h (r k n) x1))))) (\lambda (x2: C).(\lambda (x3: T).(\lambda (x4: 
+A).(\lambda (H11: (eq K k (Bind Abbr))).(\lambda (H12: (eq C e1 (CHead x2 
+(Bind Abst) x3))).(\lambda (H13: (csubc g x2 x0)).(\lambda (H14: (sc3 g 
+(asucc g x4) x2 x3)).(\lambda (H15: (sc3 g x4 x0 x1)).(eq_ind_r C (CHead x2 
+(Bind Abst) x3) (\lambda (c0: C).(ex2 C (\lambda (c1: C).(drop h (S n) c1 
+c0)) (\lambda (c1: C).(csubc g c1 (CHead c k (lift h (r k n) x1)))))) (let 
+H16 \def (eq_ind K k (\lambda (k0: K).(\forall (h0: nat).((drop h0 n (CHead c 
+k0 (lift h (r k0 n) x1)) (CHead x0 k0 x1)) \to (\forall (e3: C).((csubc g e3 
+(CHead x0 k0 x1)) \to (ex2 C (\lambda (c1: C).(drop h0 n c1 e3)) (\lambda 
+(c1: C).(csubc g c1 (CHead c k0 (lift h (r k0 n) x1)))))))))) H8 (Bind Abbr) 
+H11) in (let H17 \def (eq_ind K k (\lambda (k0: K).(drop h (r k0 n) c x0)) H5 
+(Bind Abbr) H11) in (eq_ind_r K (Bind Abbr) (\lambda (k0: K).(ex2 C (\lambda 
+(c1: C).(drop h (S n) c1 (CHead x2 (Bind Abst) x3))) (\lambda (c1: C).(csubc 
+g c1 (CHead c k0 (lift h (r k0 n) x1)))))) (let H_x0 \def (H x0 (r (Bind 
+Abbr) n) h H17 x2 H13) in (let H18 \def H_x0 in (ex2_ind C (\lambda (c1: 
+C).(drop h n c1 x2)) (\lambda (c1: C).(csubc g c1 c)) (ex2 C (\lambda (c1: 
+C).(drop h (S n) c1 (CHead x2 (Bind Abst) x3))) (\lambda (c1: C).(csubc g c1 
+(CHead c (Bind Abbr) (lift h (r (Bind Abbr) n) x1))))) (\lambda (x: 
+C).(\lambda (H19: (drop h n x x2)).(\lambda (H20: (csubc g x c)).(ex_intro2 C 
+(\lambda (c1: C).(drop h (S n) c1 (CHead x2 (Bind Abst) x3))) (\lambda (c1: 
+C).(csubc g c1 (CHead c (Bind Abbr) (lift h (r (Bind Abbr) n) x1)))) (CHead x 
+(Bind Abst) (lift h n x3)) (drop_skip_bind h n x x2 H19 Abst x3) (csubc_abst 
+g x c H20 (lift h n x3) x4 (sc3_lift g (asucc g x4) x2 x3 H14 x h n H19) 
+(lift h (r (Bind Abbr) n) x1) (sc3_lift g x4 x0 x1 H15 c h (r (Bind Abbr) n) 
+H17)))))) H18))) k H11))) e1 H12))))))))) H10)) (\lambda (H10: (ex4_3 B C T 
+(\lambda (_: B).(\lambda (c1: C).(\lambda (v1: T).(eq C e1 (CHead c1 (Bind 
+Void) v1))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(eq K k (Bind 
+b))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b Void))))) 
+(\lambda (_: B).(\lambda (c1: C).(\lambda (_: T).(csubc g c1 
+x0)))))).(ex4_3_ind B C T (\lambda (_: B).(\lambda (c1: C).(\lambda (v1: 
+T).(eq C e1 (CHead c1 (Bind Void) v1))))) (\lambda (b: B).(\lambda (_: 
+C).(\lambda (_: T).(eq K k (Bind b))))) (\lambda (b: B).(\lambda (_: 
+C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_: B).(\lambda (c1: 
+C).(\lambda (_: T).(csubc g c1 x0)))) (ex2 C (\lambda (c1: C).(drop h (S n) 
+c1 e1)) (\lambda (c1: C).(csubc g c1 (CHead c k (lift h (r k n) x1))))) 
+(\lambda (x2: B).(\lambda (x3: C).(\lambda (x4: T).(\lambda (H11: (eq C e1 
+(CHead x3 (Bind Void) x4))).(\lambda (H12: (eq K k (Bind x2))).(\lambda (H13: 
+(not (eq B x2 Void))).(\lambda (H14: (csubc g x3 x0)).(eq_ind_r C (CHead x3 
+(Bind Void) x4) (\lambda (c0: C).(ex2 C (\lambda (c1: C).(drop h (S n) c1 
+c0)) (\lambda (c1: C).(csubc g c1 (CHead c k (lift h (r k n) x1)))))) (let 
+H15 \def (eq_ind K k (\lambda (k0: K).(\forall (h0: nat).((drop h0 n (CHead c 
+k0 (lift h (r k0 n) x1)) (CHead x0 k0 x1)) \to (\forall (e3: C).((csubc g e3 
+(CHead x0 k0 x1)) \to (ex2 C (\lambda (c1: C).(drop h0 n c1 e3)) (\lambda 
+(c1: C).(csubc g c1 (CHead c k0 (lift h (r k0 n) x1)))))))))) H8 (Bind x2) 
+H12) in (let H16 \def (eq_ind K k (\lambda (k0: K).(drop h (r k0 n) c x0)) H5 
+(Bind x2) H12) in (eq_ind_r K (Bind x2) (\lambda (k0: K).(ex2 C (\lambda (c1: 
+C).(drop h (S n) c1 (CHead x3 (Bind Void) x4))) (\lambda (c1: C).(csubc g c1 
+(CHead c k0 (lift h (r k0 n) x1)))))) (let H_x0 \def (H x0 (r (Bind x2) n) h 
+H16 x3 H14) in (let H17 \def H_x0 in (ex2_ind C (\lambda (c1: C).(drop h n c1 
+x3)) (\lambda (c1: C).(csubc g c1 c)) (ex2 C (\lambda (c1: C).(drop h (S n) 
+c1 (CHead x3 (Bind Void) x4))) (\lambda (c1: C).(csubc g c1 (CHead c (Bind 
+x2) (lift h (r (Bind x2) n) x1))))) (\lambda (x: C).(\lambda (H18: (drop h n 
+x x3)).(\lambda (H19: (csubc g x c)).(ex_intro2 C (\lambda (c1: C).(drop h (S 
+n) c1 (CHead x3 (Bind Void) x4))) (\lambda (c1: C).(csubc g c1 (CHead c (Bind 
+x2) (lift h (r (Bind x2) n) x1)))) (CHead x (Bind Void) (lift h n x4)) 
+(drop_skip_bind h n x x3 H18 Void x4) (csubc_void g x c H19 x2 H13 (lift h n 
+x4) (lift h (r (Bind x2) n) x1)))))) H17))) k H12))) e1 H11)))))))) H10)) 
+H9))) t H4))))))))) (drop_gen_skip_l c e2 t h n k H1)))))))) d))))))) c2)).
 
index 54465953f1126076256991a33861ecd1a38f82f0..bd9ea33d41e580da472f87af3b815456dc578224 100644 (file)
@@ -21,91 +21,66 @@ theorem drop1_csubc_trans:
 C).((drop1 hds c2 e2) \to (\forall (e1: C).((csubc g e2 e1) \to (ex2 C 
 (\lambda (c1: C).(drop1 hds c1 e1)) (\lambda (c1: C).(csubc g c2 c1)))))))))
 \def
- \lambda (g: G).(\lambda (hds: PList).(let TMP_3 \def (\lambda (p: 
-PList).(\forall (c2: C).(\forall (e2: C).((drop1 p c2 e2) \to (\forall (e1: 
-C).((csubc g e2 e1) \to (let TMP_1 \def (\lambda (c1: C).(drop1 p c1 e1)) in 
-(let TMP_2 \def (\lambda (c1: C).(csubc g c2 c1)) in (ex2 C TMP_1 
-TMP_2))))))))) in (let TMP_8 \def (\lambda (c2: C).(\lambda (e2: C).(\lambda 
-(H: (drop1 PNil c2 e2)).(\lambda (e1: C).(\lambda (H0: (csubc g e2 e1)).(let 
-H_y \def (drop1_gen_pnil c2 e2 H) in (let TMP_4 \def (\lambda (c: C).(csubc g 
-c e1)) in (let H1 \def (eq_ind_r C e2 TMP_4 H0 c2 H_y) in (let TMP_5 \def 
-(\lambda (c1: C).(drop1 PNil c1 e1)) in (let TMP_6 \def (\lambda (c1: 
-C).(csubc g c2 c1)) in (let TMP_7 \def (drop1_nil e1) in (ex_intro2 C TMP_5 
-TMP_6 e1 TMP_7 H1)))))))))))) in (let TMP_34 \def (\lambda (n: nat).(\lambda 
-(n0: nat).(\lambda (p: PList).(\lambda (H: ((\forall (c2: C).(\forall (e2: 
-C).((drop1 p c2 e2) \to (\forall (e1: C).((csubc g e2 e1) \to (ex2 C (\lambda 
-(c1: C).(drop1 p c1 e1)) (\lambda (c1: C).(csubc g c2 c1)))))))))).(\lambda 
-(c2: C).(\lambda (e2: C).(\lambda (H0: (drop1 (PCons n n0 p) c2 e2)).(\lambda 
-(e1: C).(\lambda (H1: (csubc g e2 e1)).(let H_x \def (drop1_gen_pcons c2 e2 p 
-n n0 H0) in (let H2 \def H_x in (let TMP_9 \def (\lambda (c3: C).(drop n n0 
-c2 c3)) in (let TMP_10 \def (\lambda (c3: C).(drop1 p c3 e2)) in (let TMP_12 
-\def (\lambda (c1: C).(let TMP_11 \def (PCons n n0 p) in (drop1 TMP_11 c1 
-e1))) in (let TMP_13 \def (\lambda (c1: C).(csubc g c2 c1)) in (let TMP_14 
-\def (ex2 C TMP_12 TMP_13) in (let TMP_33 \def (\lambda (x: C).(\lambda (H3: 
-(drop n n0 c2 x)).(\lambda (H4: (drop1 p x e2)).(let H_x0 \def (H x e2 H4 e1 
-H1) in (let H5 \def H_x0 in (let TMP_15 \def (\lambda (c1: C).(drop1 p c1 
-e1)) in (let TMP_16 \def (\lambda (c1: C).(csubc g x c1)) in (let TMP_18 \def 
-(\lambda (c1: C).(let TMP_17 \def (PCons n n0 p) in (drop1 TMP_17 c1 e1))) in 
-(let TMP_19 \def (\lambda (c1: C).(csubc g c2 c1)) in (let TMP_20 \def (ex2 C 
-TMP_18 TMP_19) in (let TMP_32 \def (\lambda (x0: C).(\lambda (H6: (drop1 p x0 
-e1)).(\lambda (H7: (csubc g x x0)).(let H_x1 \def (drop_csubc_trans g c2 x n0 
-n H3 x0 H7) in (let H8 \def H_x1 in (let TMP_21 \def (\lambda (c1: C).(drop n 
-n0 c1 x0)) in (let TMP_22 \def (\lambda (c1: C).(csubc g c2 c1)) in (let 
-TMP_24 \def (\lambda (c1: C).(let TMP_23 \def (PCons n n0 p) in (drop1 TMP_23 
-c1 e1))) in (let TMP_25 \def (\lambda (c1: C).(csubc g c2 c1)) in (let TMP_26 
-\def (ex2 C TMP_24 TMP_25) in (let TMP_31 \def (\lambda (x1: C).(\lambda (H9: 
-(drop n n0 x1 x0)).(\lambda (H10: (csubc g c2 x1)).(let TMP_28 \def (\lambda 
-(c1: C).(let TMP_27 \def (PCons n n0 p) in (drop1 TMP_27 c1 e1))) in (let 
-TMP_29 \def (\lambda (c1: C).(csubc g c2 c1)) in (let TMP_30 \def (drop1_cons 
-x1 x0 n n0 H9 e1 p H6) in (ex_intro2 C TMP_28 TMP_29 x1 TMP_30 H10))))))) in 
-(ex2_ind C TMP_21 TMP_22 TMP_26 TMP_31 H8)))))))))))) in (ex2_ind C TMP_15 
-TMP_16 TMP_20 TMP_32 H5)))))))))))) in (ex2_ind C TMP_9 TMP_10 TMP_14 TMP_33 
-H2)))))))))))))))))) in (PList_ind TMP_3 TMP_8 TMP_34 hds))))).
+ \lambda (g: G).(\lambda (hds: PList).(PList_ind (\lambda (p: PList).(\forall 
+(c2: C).(\forall (e2: C).((drop1 p c2 e2) \to (\forall (e1: C).((csubc g e2 
+e1) \to (ex2 C (\lambda (c1: C).(drop1 p c1 e1)) (\lambda (c1: C).(csubc g c2 
+c1))))))))) (\lambda (c2: C).(\lambda (e2: C).(\lambda (H: (drop1 PNil c2 
+e2)).(\lambda (e1: C).(\lambda (H0: (csubc g e2 e1)).(let H_y \def 
+(drop1_gen_pnil c2 e2 H) in (let H1 \def (eq_ind_r C e2 (\lambda (c: 
+C).(csubc g c e1)) H0 c2 H_y) in (ex_intro2 C (\lambda (c1: C).(drop1 PNil c1 
+e1)) (\lambda (c1: C).(csubc g c2 c1)) e1 (drop1_nil e1) H1)))))))) (\lambda 
+(n: nat).(\lambda (n0: nat).(\lambda (p: PList).(\lambda (H: ((\forall (c2: 
+C).(\forall (e2: C).((drop1 p c2 e2) \to (\forall (e1: C).((csubc g e2 e1) 
+\to (ex2 C (\lambda (c1: C).(drop1 p c1 e1)) (\lambda (c1: C).(csubc g c2 
+c1)))))))))).(\lambda (c2: C).(\lambda (e2: C).(\lambda (H0: (drop1 (PCons n 
+n0 p) c2 e2)).(\lambda (e1: C).(\lambda (H1: (csubc g e2 e1)).(let H_x \def 
+(drop1_gen_pcons c2 e2 p n n0 H0) in (let H2 \def H_x in (ex2_ind C (\lambda 
+(c3: C).(drop n n0 c2 c3)) (\lambda (c3: C).(drop1 p c3 e2)) (ex2 C (\lambda 
+(c1: C).(drop1 (PCons n n0 p) c1 e1)) (\lambda (c1: C).(csubc g c2 c1))) 
+(\lambda (x: C).(\lambda (H3: (drop n n0 c2 x)).(\lambda (H4: (drop1 p x 
+e2)).(let H_x0 \def (H x e2 H4 e1 H1) in (let H5 \def H_x0 in (ex2_ind C 
+(\lambda (c1: C).(drop1 p c1 e1)) (\lambda (c1: C).(csubc g x c1)) (ex2 C 
+(\lambda (c1: C).(drop1 (PCons n n0 p) c1 e1)) (\lambda (c1: C).(csubc g c2 
+c1))) (\lambda (x0: C).(\lambda (H6: (drop1 p x0 e1)).(\lambda (H7: (csubc g 
+x x0)).(let H_x1 \def (drop_csubc_trans g c2 x n0 n H3 x0 H7) in (let H8 \def 
+H_x1 in (ex2_ind C (\lambda (c1: C).(drop n n0 c1 x0)) (\lambda (c1: 
+C).(csubc g c2 c1)) (ex2 C (\lambda (c1: C).(drop1 (PCons n n0 p) c1 e1)) 
+(\lambda (c1: C).(csubc g c2 c1))) (\lambda (x1: C).(\lambda (H9: (drop n n0 
+x1 x0)).(\lambda (H10: (csubc g c2 x1)).(ex_intro2 C (\lambda (c1: C).(drop1 
+(PCons n n0 p) c1 e1)) (\lambda (c1: C).(csubc g c2 c1)) x1 (drop1_cons x1 x0 
+n n0 H9 e1 p H6) H10)))) H8)))))) H5)))))) H2)))))))))))) hds)).
 
 theorem csubc_drop1_conf_rev:
  \forall (g: G).(\forall (hds: PList).(\forall (c2: C).(\forall (e2: 
 C).((drop1 hds c2 e2) \to (\forall (e1: C).((csubc g e1 e2) \to (ex2 C 
 (\lambda (c1: C).(drop1 hds c1 e1)) (\lambda (c1: C).(csubc g c1 c2)))))))))
 \def
- \lambda (g: G).(\lambda (hds: PList).(let TMP_3 \def (\lambda (p: 
-PList).(\forall (c2: C).(\forall (e2: C).((drop1 p c2 e2) \to (\forall (e1: 
-C).((csubc g e1 e2) \to (let TMP_1 \def (\lambda (c1: C).(drop1 p c1 e1)) in 
-(let TMP_2 \def (\lambda (c1: C).(csubc g c1 c2)) in (ex2 C TMP_1 
-TMP_2))))))))) in (let TMP_8 \def (\lambda (c2: C).(\lambda (e2: C).(\lambda 
-(H: (drop1 PNil c2 e2)).(\lambda (e1: C).(\lambda (H0: (csubc g e1 e2)).(let 
-H_y \def (drop1_gen_pnil c2 e2 H) in (let TMP_4 \def (\lambda (c: C).(csubc g 
-e1 c)) in (let H1 \def (eq_ind_r C e2 TMP_4 H0 c2 H_y) in (let TMP_5 \def 
-(\lambda (c1: C).(drop1 PNil c1 e1)) in (let TMP_6 \def (\lambda (c1: 
-C).(csubc g c1 c2)) in (let TMP_7 \def (drop1_nil e1) in (ex_intro2 C TMP_5 
-TMP_6 e1 TMP_7 H1)))))))))))) in (let TMP_34 \def (\lambda (n: nat).(\lambda 
-(n0: nat).(\lambda (p: PList).(\lambda (H: ((\forall (c2: C).(\forall (e2: 
-C).((drop1 p c2 e2) \to (\forall (e1: C).((csubc g e1 e2) \to (ex2 C (\lambda 
-(c1: C).(drop1 p c1 e1)) (\lambda (c1: C).(csubc g c1 c2)))))))))).(\lambda 
-(c2: C).(\lambda (e2: C).(\lambda (H0: (drop1 (PCons n n0 p) c2 e2)).(\lambda 
-(e1: C).(\lambda (H1: (csubc g e1 e2)).(let H_x \def (drop1_gen_pcons c2 e2 p 
-n n0 H0) in (let H2 \def H_x in (let TMP_9 \def (\lambda (c3: C).(drop n n0 
-c2 c3)) in (let TMP_10 \def (\lambda (c3: C).(drop1 p c3 e2)) in (let TMP_12 
-\def (\lambda (c1: C).(let TMP_11 \def (PCons n n0 p) in (drop1 TMP_11 c1 
-e1))) in (let TMP_13 \def (\lambda (c1: C).(csubc g c1 c2)) in (let TMP_14 
-\def (ex2 C TMP_12 TMP_13) in (let TMP_33 \def (\lambda (x: C).(\lambda (H3: 
-(drop n n0 c2 x)).(\lambda (H4: (drop1 p x e2)).(let H_x0 \def (H x e2 H4 e1 
-H1) in (let H5 \def H_x0 in (let TMP_15 \def (\lambda (c1: C).(drop1 p c1 
-e1)) in (let TMP_16 \def (\lambda (c1: C).(csubc g c1 x)) in (let TMP_18 \def 
-(\lambda (c1: C).(let TMP_17 \def (PCons n n0 p) in (drop1 TMP_17 c1 e1))) in 
-(let TMP_19 \def (\lambda (c1: C).(csubc g c1 c2)) in (let TMP_20 \def (ex2 C 
-TMP_18 TMP_19) in (let TMP_32 \def (\lambda (x0: C).(\lambda (H6: (drop1 p x0 
-e1)).(\lambda (H7: (csubc g x0 x)).(let H_x1 \def (csubc_drop_conf_rev g c2 x 
-n0 n H3 x0 H7) in (let H8 \def H_x1 in (let TMP_21 \def (\lambda (c1: 
-C).(drop n n0 c1 x0)) in (let TMP_22 \def (\lambda (c1: C).(csubc g c1 c2)) 
-in (let TMP_24 \def (\lambda (c1: C).(let TMP_23 \def (PCons n n0 p) in 
-(drop1 TMP_23 c1 e1))) in (let TMP_25 \def (\lambda (c1: C).(csubc g c1 c2)) 
-in (let TMP_26 \def (ex2 C TMP_24 TMP_25) in (let TMP_31 \def (\lambda (x1: 
-C).(\lambda (H9: (drop n n0 x1 x0)).(\lambda (H10: (csubc g x1 c2)).(let 
-TMP_28 \def (\lambda (c1: C).(let TMP_27 \def (PCons n n0 p) in (drop1 TMP_27 
-c1 e1))) in (let TMP_29 \def (\lambda (c1: C).(csubc g c1 c2)) in (let TMP_30 
-\def (drop1_cons x1 x0 n n0 H9 e1 p H6) in (ex_intro2 C TMP_28 TMP_29 x1 
-TMP_30 H10))))))) in (ex2_ind C TMP_21 TMP_22 TMP_26 TMP_31 H8)))))))))))) in 
-(ex2_ind C TMP_15 TMP_16 TMP_20 TMP_32 H5)))))))))))) in (ex2_ind C TMP_9 
-TMP_10 TMP_14 TMP_33 H2)))))))))))))))))) in (PList_ind TMP_3 TMP_8 TMP_34 
-hds))))).
+ \lambda (g: G).(\lambda (hds: PList).(PList_ind (\lambda (p: PList).(\forall 
+(c2: C).(\forall (e2: C).((drop1 p c2 e2) \to (\forall (e1: C).((csubc g e1 
+e2) \to (ex2 C (\lambda (c1: C).(drop1 p c1 e1)) (\lambda (c1: C).(csubc g c1 
+c2))))))))) (\lambda (c2: C).(\lambda (e2: C).(\lambda (H: (drop1 PNil c2 
+e2)).(\lambda (e1: C).(\lambda (H0: (csubc g e1 e2)).(let H_y \def 
+(drop1_gen_pnil c2 e2 H) in (let H1 \def (eq_ind_r C e2 (\lambda (c: 
+C).(csubc g e1 c)) H0 c2 H_y) in (ex_intro2 C (\lambda (c1: C).(drop1 PNil c1 
+e1)) (\lambda (c1: C).(csubc g c1 c2)) e1 (drop1_nil e1) H1)))))))) (\lambda 
+(n: nat).(\lambda (n0: nat).(\lambda (p: PList).(\lambda (H: ((\forall (c2: 
+C).(\forall (e2: C).((drop1 p c2 e2) \to (\forall (e1: C).((csubc g e1 e2) 
+\to (ex2 C (\lambda (c1: C).(drop1 p c1 e1)) (\lambda (c1: C).(csubc g c1 
+c2)))))))))).(\lambda (c2: C).(\lambda (e2: C).(\lambda (H0: (drop1 (PCons n 
+n0 p) c2 e2)).(\lambda (e1: C).(\lambda (H1: (csubc g e1 e2)).(let H_x \def 
+(drop1_gen_pcons c2 e2 p n n0 H0) in (let H2 \def H_x in (ex2_ind C (\lambda 
+(c3: C).(drop n n0 c2 c3)) (\lambda (c3: C).(drop1 p c3 e2)) (ex2 C (\lambda 
+(c1: C).(drop1 (PCons n n0 p) c1 e1)) (\lambda (c1: C).(csubc g c1 c2))) 
+(\lambda (x: C).(\lambda (H3: (drop n n0 c2 x)).(\lambda (H4: (drop1 p x 
+e2)).(let H_x0 \def (H x e2 H4 e1 H1) in (let H5 \def H_x0 in (ex2_ind C 
+(\lambda (c1: C).(drop1 p c1 e1)) (\lambda (c1: C).(csubc g c1 x)) (ex2 C 
+(\lambda (c1: C).(drop1 (PCons n n0 p) c1 e1)) (\lambda (c1: C).(csubc g c1 
+c2))) (\lambda (x0: C).(\lambda (H6: (drop1 p x0 e1)).(\lambda (H7: (csubc g 
+x0 x)).(let H_x1 \def (csubc_drop_conf_rev g c2 x n0 n H3 x0 H7) in (let H8 
+\def H_x1 in (ex2_ind C (\lambda (c1: C).(drop n n0 c1 x0)) (\lambda (c1: 
+C).(csubc g c1 c2)) (ex2 C (\lambda (c1: C).(drop1 (PCons n n0 p) c1 e1)) 
+(\lambda (c1: C).(csubc g c1 c2))) (\lambda (x1: C).(\lambda (H9: (drop n n0 
+x1 x0)).(\lambda (H10: (csubc g x1 c2)).(ex_intro2 C (\lambda (c1: C).(drop1 
+(PCons n n0 p) c1 e1)) (\lambda (c1: C).(csubc g c1 c2)) x1 (drop1_cons x1 x0 
+n n0 H9 e1 p H6) H10)))) H8)))))) H5)))))) H2)))))))))))) hds)).
 
index 2571766a6b61c3fbae0eb7d57c189d962564ec21..817d2a222e9cd35bb01eef1d837099d39ad96b86 100644 (file)
@@ -25,25 +25,18 @@ C).(getl i c2 e2)) (\lambda (e2: C).(csubc g e1 e2)))))))))
 \def
  \lambda (g: G).(\lambda (c1: C).(\lambda (e1: C).(\lambda (i: nat).(\lambda 
 (H: (getl i c1 e1)).(\lambda (c2: C).(\lambda (H0: (csubc g c1 c2)).(let H1 
-\def (getl_gen_all c1 e1 i H) in (let TMP_1 \def (\lambda (e: C).(drop i O c1 
-e)) in (let TMP_2 \def (\lambda (e: C).(clear e e1)) in (let TMP_3 \def 
-(\lambda (e2: C).(getl i c2 e2)) in (let TMP_4 \def (\lambda (e2: C).(csubc g 
-e1 e2)) in (let TMP_5 \def (ex2 C TMP_3 TMP_4) in (let TMP_21 \def (\lambda 
-(x: C).(\lambda (H2: (drop i O c1 x)).(\lambda (H3: (clear x e1)).(let H_x 
-\def (csubc_drop_conf_O g c1 x i H2 c2 H0) in (let H4 \def H_x in (let TMP_6 
-\def (\lambda (e2: C).(drop i O c2 e2)) in (let TMP_7 \def (\lambda (e2: 
-C).(csubc g x e2)) in (let TMP_8 \def (\lambda (e2: C).(getl i c2 e2)) in 
-(let TMP_9 \def (\lambda (e2: C).(csubc g e1 e2)) in (let TMP_10 \def (ex2 C 
-TMP_8 TMP_9) in (let TMP_20 \def (\lambda (x0: C).(\lambda (H5: (drop i O c2 
-x0)).(\lambda (H6: (csubc g x x0)).(let H_x0 \def (csubc_clear_conf g x e1 H3 
-x0 H6) in (let H7 \def H_x0 in (let TMP_11 \def (\lambda (e2: C).(clear x0 
-e2)) in (let TMP_12 \def (\lambda (e2: C).(csubc g e1 e2)) in (let TMP_13 
-\def (\lambda (e2: C).(getl i c2 e2)) in (let TMP_14 \def (\lambda (e2: 
-C).(csubc g e1 e2)) in (let TMP_15 \def (ex2 C TMP_13 TMP_14) in (let TMP_19 
-\def (\lambda (x1: C).(\lambda (H8: (clear x0 x1)).(\lambda (H9: (csubc g e1 
-x1)).(let TMP_16 \def (\lambda (e2: C).(getl i c2 e2)) in (let TMP_17 \def 
-(\lambda (e2: C).(csubc g e1 e2)) in (let TMP_18 \def (getl_intro i c2 x1 x0 
-H5 H8) in (ex_intro2 C TMP_16 TMP_17 x1 TMP_18 H9))))))) in (ex2_ind C TMP_11 
-TMP_12 TMP_15 TMP_19 H7)))))))))))) in (ex2_ind C TMP_6 TMP_7 TMP_10 TMP_20 
-H4)))))))))))) in (ex2_ind C TMP_1 TMP_2 TMP_5 TMP_21 H1)))))))))))))).
+\def (getl_gen_all c1 e1 i H) in (ex2_ind C (\lambda (e: C).(drop i O c1 e)) 
+(\lambda (e: C).(clear e e1)) (ex2 C (\lambda (e2: C).(getl i c2 e2)) 
+(\lambda (e2: C).(csubc g e1 e2))) (\lambda (x: C).(\lambda (H2: (drop i O c1 
+x)).(\lambda (H3: (clear x e1)).(let H_x \def (csubc_drop_conf_O g c1 x i H2 
+c2 H0) in (let H4 \def H_x in (ex2_ind C (\lambda (e2: C).(drop i O c2 e2)) 
+(\lambda (e2: C).(csubc g x e2)) (ex2 C (\lambda (e2: C).(getl i c2 e2)) 
+(\lambda (e2: C).(csubc g e1 e2))) (\lambda (x0: C).(\lambda (H5: (drop i O 
+c2 x0)).(\lambda (H6: (csubc g x x0)).(let H_x0 \def (csubc_clear_conf g x e1 
+H3 x0 H6) in (let H7 \def H_x0 in (ex2_ind C (\lambda (e2: C).(clear x0 e2)) 
+(\lambda (e2: C).(csubc g e1 e2)) (ex2 C (\lambda (e2: C).(getl i c2 e2)) 
+(\lambda (e2: C).(csubc g e1 e2))) (\lambda (x1: C).(\lambda (H8: (clear x0 
+x1)).(\lambda (H9: (csubc g e1 x1)).(ex_intro2 C (\lambda (e2: C).(getl i c2 
+e2)) (\lambda (e2: C).(csubc g e1 e2)) x1 (getl_intro i c2 x1 x0 H5 H8) 
+H9)))) H7)))))) H4)))))) H1)))))))).
 
index 0637a2eee33c03adb8dde7b4a154e325dc3442bc..21c4c6e9f5fe534b2201927e23d8344604621d69 100644 (file)
@@ -21,8 +21,7 @@ include "basic_1/sc3/props.ma".
 theorem csubc_refl:
  \forall (g: G).(\forall (c: C).(csubc g c c))
 \def
- \lambda (g: G).(\lambda (c: C).(let TMP_1 \def (\lambda (c0: C).(csubc g c0 
-c0)) in (let TMP_2 \def (\lambda (n: nat).(csubc_sort g n)) in (let TMP_3 
-\def (\lambda (c0: C).(\lambda (H: (csubc g c0 c0)).(\lambda (k: K).(\lambda 
-(t: T).(csubc_head g c0 c0 H k t))))) in (C_ind TMP_1 TMP_2 TMP_3 c))))).
+ \lambda (g: G).(\lambda (c: C).(C_ind (\lambda (c0: C).(csubc g c0 c0)) 
+(\lambda (n: nat).(csubc_sort g n)) (\lambda (c0: C).(\lambda (H: (csubc g c0 
+c0)).(\lambda (k: K).(\lambda (t: T).(csubc_head g c0 c0 H k t))))) c)).
 
index 40f7fd4a78693fef08a33d162b302721079c98b8..e36dea109ea63ad72c172dbb87081fe4efe4a92a 100644 (file)
@@ -22,14 +22,10 @@ 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).(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))))))))))))))).
+(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))))))))).
 
 theorem csubst0_fst_bind:
  \forall (b: B).(\forall (i: nat).(\forall (c1: C).(\forall (c2: C).(\forall 
@@ -37,14 +33,9 @@ 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).(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))))))))))))))).
+(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))))))))).
 
 theorem csubst0_both_bind:
  \forall (b: B).(\forall (i: nat).(\forall (v: T).(\forall (u1: T).(\forall 
@@ -54,12 +45,8 @@ 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)).(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))))))))))))))))).
+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))))))))))).
 
index 283b4832555c4dc70e6a25453bc596078818d9b8..48bc273a6c8929eb35979c6ad650af35f22a7be8 100644 (file)
@@ -42,139 +42,87 @@ 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)).(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))))))))))))))))))).
+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)).(let H1 \def (csubst0_gen_head k c1 c2 u1 v (s k i) H0) in (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 (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))))).(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 (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)).(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 H_y \def (s_inj k i x1 H3) in (let H6 \def (eq_ind_r nat x1 
+(\lambda (n: nat).(subst0 n v u1 x0)) H5 i H_y) 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 H6) (csubst1_refl i v c1)))) c2 H4)))))) H2)) (\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))))).(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 (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)).(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 H_y \def (s_inj k i x1 
+H3) in (let H6 \def (eq_ind_r nat x1 (\lambda (n: nat).(csubst0 n v c1 x0)) 
+H5 i H_y) 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 
+H6)))) c2 H4)))))) H2)) (\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)))))).(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 (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)).(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 H_y \def (s_inj k i x2 H3) in (let H7 \def 
+(eq_ind_r nat x2 (\lambda (n: nat).(csubst0 n v c1 x1)) H6 i H_y) in (let H8 
+\def (eq_ind_r nat x2 (\lambda (n: nat).(subst0 n v u1 x0)) H5 i H_y) 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 H8) (csubst1_sing i v c1 x1 H7))))) 
+c2 H4)))))))) H2)) H1)))) x H))))))).
 
index 8c737fc0332044847ee6d6eeb2b555cf121b1416..9724dd2601e134ae2006be0b902ab8d9c0321bca 100644 (file)
@@ -28,12 +28,11 @@ 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)).(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)))))))))).
+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))))))).
 
 theorem csubst1_getl_lt:
  \forall (i: nat).(\forall (n: nat).((lt n i) \to (\forall (c1: C).(\forall 
@@ -42,189 +41,101 @@ 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)).(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 
+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 
 (\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))))))).(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)))))))))).
+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))))))).
 
 theorem csubst1_getl_ge_back:
  \forall (i: nat).(\forall (n: nat).((le i n) \to (\forall (c1: C).(\forall 
@@ -232,12 +143,11 @@ 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)).(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)))))))))).
+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))))))).
 
 theorem getl_csubst1:
  \forall (d: nat).(\forall (c: C).(\forall (e: C).(\forall (u: T).((getl d c 
@@ -245,219 +155,115 @@ 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).(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))).(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).(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)))).
+ \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 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 with [(CSort 
+_) \Rightarrow Abbr | (CHead _ k0 _) \Rightarrow (match k0 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 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 (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: 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).
 
index 30200e34b8860c696451a209df843d7b4ce01874..349485a88c5d45a45d25e98e126852c4a89ebccd 100644 (file)
@@ -24,32 +24,20 @@ 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)).(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))))))))).
+(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)))))).
 
 theorem csubst1_bind:
  \forall (b: B).(\forall (i: nat).(\forall (v: T).(\forall (u1: T).(\forall 
@@ -59,14 +47,10 @@ 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)).(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))))))))))))))))).
+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))))))))))).
 
 theorem csubst1_flat:
  \forall (f: F).(\forall (i: nat).(\forall (v: T).(\forall (u1: T).(\forall 
@@ -76,11 +60,7 @@ 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)).(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))))))))))))))).
+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)))))))))).
 
index 28ecc869c28d3208192b36acfab2f2712dac9246..862a804ad29cdeed70a016dbb1df1bc996f9a3ec 100644 (file)
@@ -24,81 +24,48 @@ theorem csubt_clear_conf:
 (\lambda (e2: C).(clear c2 e2))))))))
 \def
  \lambda (g: G).(\lambda (c1: C).(\lambda (c2: C).(\lambda (H: (csubt g c1 
-c2)).(let TMP_3 \def (\lambda (c: C).(\lambda (c0: C).(\forall (e1: 
-C).((clear c e1) \to (let TMP_1 \def (\lambda (e2: C).(csubt g e1 e2)) in 
-(let TMP_2 \def (\lambda (e2: C).(clear c0 e2)) in (ex2 C TMP_1 TMP_2))))))) 
-in (let TMP_8 \def (\lambda (n: nat).(\lambda (e1: C).(\lambda (H0: (clear 
-(CSort n) e1)).(let TMP_4 \def (\lambda (e2: C).(csubt g e1 e2)) in (let 
-TMP_6 \def (\lambda (e2: C).(let TMP_5 \def (CSort n) in (clear TMP_5 e2))) 
-in (let TMP_7 \def (ex2 C TMP_4 TMP_6) in (clear_gen_sort e1 n H0 
-TMP_7))))))) in (let TMP_49 \def (\lambda (c3: C).(\lambda (c4: C).(\lambda 
-(H0: (csubt g c3 c4)).(\lambda (H1: ((\forall (e1: C).((clear c3 e1) \to (ex2 
-C (\lambda (e2: C).(csubt g e1 e2)) (\lambda (e2: C).(clear c4 
+c2)).(csubt_ind g (\lambda (c: C).(\lambda (c0: C).(\forall (e1: C).((clear c 
+e1) \to (ex2 C (\lambda (e2: C).(csubt g e1 e2)) (\lambda (e2: C).(clear c0 
+e2))))))) (\lambda (n: nat).(\lambda (e1: C).(\lambda (H0: (clear (CSort n) 
+e1)).(clear_gen_sort e1 n H0 (ex2 C (\lambda (e2: C).(csubt g e1 e2)) 
+(\lambda (e2: C).(clear (CSort n) e2))))))) (\lambda (c3: C).(\lambda (c4: 
+C).(\lambda (H0: (csubt g c3 c4)).(\lambda (H1: ((\forall (e1: C).((clear c3 
+e1) \to (ex2 C (\lambda (e2: C).(csubt g e1 e2)) (\lambda (e2: C).(clear c4 
 e2))))))).(\lambda (k: K).(\lambda (u: T).(\lambda (e1: C).(\lambda (H2: 
-(clear (CHead c3 k u) e1)).(let TMP_12 \def (\lambda (k0: K).((clear (CHead 
-c3 k0 u) e1) \to (let TMP_9 \def (\lambda (e2: C).(csubt g e1 e2)) in (let 
-TMP_11 \def (\lambda (e2: C).(let TMP_10 \def (CHead c4 k0 u) in (clear 
-TMP_10 e2))) in (ex2 C TMP_9 TMP_11))))) in (let TMP_33 \def (\lambda (b: 
-B).(\lambda (H3: (clear (CHead c3 (Bind b) u) e1)).(let TMP_13 \def (Bind b) 
-in (let TMP_14 \def (CHead c3 TMP_13 u) in (let TMP_19 \def (\lambda (c: 
-C).(let TMP_15 \def (\lambda (e2: C).(csubt g c e2)) in (let TMP_18 \def 
-(\lambda (e2: C).(let TMP_16 \def (Bind b) in (let TMP_17 \def (CHead c4 
-TMP_16 u) in (clear TMP_17 e2)))) in (ex2 C TMP_15 TMP_18)))) in (let TMP_22 
-\def (\lambda (e2: C).(let TMP_20 \def (Bind b) in (let TMP_21 \def (CHead c3 
-TMP_20 u) in (csubt g TMP_21 e2)))) in (let TMP_25 \def (\lambda (e2: C).(let 
-TMP_23 \def (Bind b) in (let TMP_24 \def (CHead c4 TMP_23 u) in (clear TMP_24 
-e2)))) in (let TMP_26 \def (Bind b) in (let TMP_27 \def (CHead c4 TMP_26 u) 
-in (let TMP_28 \def (Bind b) in (let TMP_29 \def (csubt_head g c3 c4 H0 
-TMP_28 u) in (let TMP_30 \def (clear_bind b c4 u) in (let TMP_31 \def 
-(ex_intro2 C TMP_22 TMP_25 TMP_27 TMP_29 TMP_30) in (let TMP_32 \def 
-(clear_gen_bind b c3 e1 u H3) in (eq_ind_r C TMP_14 TMP_19 TMP_31 e1 
-TMP_32))))))))))))))) in (let TMP_48 \def (\lambda (f: F).(\lambda (H3: 
-(clear (CHead c3 (Flat f) u) e1)).(let TMP_34 \def (clear_gen_flat f c3 e1 u 
-H3) in (let H4 \def (H1 e1 TMP_34) in (let TMP_35 \def (\lambda (e2: 
-C).(csubt g e1 e2)) in (let TMP_36 \def (\lambda (e2: C).(clear c4 e2)) in 
-(let TMP_37 \def (\lambda (e2: C).(csubt g e1 e2)) in (let TMP_40 \def 
-(\lambda (e2: C).(let TMP_38 \def (Flat f) in (let TMP_39 \def (CHead c4 
-TMP_38 u) in (clear TMP_39 e2)))) in (let TMP_41 \def (ex2 C TMP_37 TMP_40) 
-in (let TMP_47 \def (\lambda (x: C).(\lambda (H5: (csubt g e1 x)).(\lambda 
-(H6: (clear c4 x)).(let TMP_42 \def (\lambda (e2: C).(csubt g e1 e2)) in (let 
-TMP_45 \def (\lambda (e2: C).(let TMP_43 \def (Flat f) in (let TMP_44 \def 
-(CHead c4 TMP_43 u) in (clear TMP_44 e2)))) in (let TMP_46 \def (clear_flat 
-c4 x H6 f u) in (ex_intro2 C TMP_42 TMP_45 x H5 TMP_46))))))) in (ex2_ind C 
-TMP_35 TMP_36 TMP_41 TMP_47 H4))))))))))) in (K_ind TMP_12 TMP_33 TMP_48 k 
-H2)))))))))))) in (let TMP_69 \def (\lambda (c3: C).(\lambda (c4: C).(\lambda 
-(H0: (csubt g c3 c4)).(\lambda (_: ((\forall (e1: C).((clear c3 e1) \to (ex2 
-C (\lambda (e2: C).(csubt g e1 e2)) (\lambda (e2: C).(clear c4 
-e2))))))).(\lambda (b: B).(\lambda (H2: (not (eq B b Void))).(\lambda (u1: 
-T).(\lambda (u2: T).(\lambda (e1: C).(\lambda (H3: (clear (CHead c3 (Bind 
-Void) u1) e1)).(let TMP_50 \def (Bind Void) in (let TMP_51 \def (CHead c3 
-TMP_50 u1) in (let TMP_56 \def (\lambda (c: C).(let TMP_52 \def (\lambda (e2: 
-C).(csubt g c e2)) in (let TMP_55 \def (\lambda (e2: C).(let TMP_53 \def 
-(Bind b) in (let TMP_54 \def (CHead c4 TMP_53 u2) in (clear TMP_54 e2)))) in 
-(ex2 C TMP_52 TMP_55)))) in (let TMP_59 \def (\lambda (e2: C).(let TMP_57 
-\def (Bind Void) in (let TMP_58 \def (CHead c3 TMP_57 u1) in (csubt g TMP_58 
-e2)))) in (let TMP_62 \def (\lambda (e2: C).(let TMP_60 \def (Bind b) in (let 
-TMP_61 \def (CHead c4 TMP_60 u2) in (clear TMP_61 e2)))) in (let TMP_63 \def 
-(Bind b) in (let TMP_64 \def (CHead c4 TMP_63 u2) in (let TMP_65 \def 
-(csubt_void g c3 c4 H0 b H2 u1 u2) in (let TMP_66 \def (clear_bind b c4 u2) 
-in (let TMP_67 \def (ex_intro2 C TMP_59 TMP_62 TMP_64 TMP_65 TMP_66) in (let 
-TMP_68 \def (clear_gen_bind Void c3 e1 u1 H3) in (eq_ind_r C TMP_51 TMP_56 
-TMP_67 e1 TMP_68)))))))))))))))))))))) in (let TMP_89 \def (\lambda (c3: 
+(clear (CHead c3 k u) e1)).(K_ind (\lambda (k0: K).((clear (CHead c3 k0 u) 
+e1) \to (ex2 C (\lambda (e2: C).(csubt g e1 e2)) (\lambda (e2: C).(clear 
+(CHead c4 k0 u) e2))))) (\lambda (b: B).(\lambda (H3: (clear (CHead c3 (Bind 
+b) u) e1)).(eq_ind_r C (CHead c3 (Bind b) u) (\lambda (c: C).(ex2 C (\lambda 
+(e2: C).(csubt g c e2)) (\lambda (e2: C).(clear (CHead c4 (Bind b) u) e2)))) 
+(ex_intro2 C (\lambda (e2: C).(csubt g (CHead c3 (Bind b) u) e2)) (\lambda 
+(e2: C).(clear (CHead c4 (Bind b) u) e2)) (CHead c4 (Bind b) u) (csubt_head g 
+c3 c4 H0 (Bind b) u) (clear_bind b c4 u)) e1 (clear_gen_bind b c3 e1 u H3)))) 
+(\lambda (f: F).(\lambda (H3: (clear (CHead c3 (Flat f) u) e1)).(let H4 \def 
+(H1 e1 (clear_gen_flat f c3 e1 u H3)) in (ex2_ind C (\lambda (e2: C).(csubt g 
+e1 e2)) (\lambda (e2: C).(clear c4 e2)) (ex2 C (\lambda (e2: C).(csubt g e1 
+e2)) (\lambda (e2: C).(clear (CHead c4 (Flat f) u) e2))) (\lambda (x: 
+C).(\lambda (H5: (csubt g e1 x)).(\lambda (H6: (clear c4 x)).(ex_intro2 C 
+(\lambda (e2: C).(csubt g e1 e2)) (\lambda (e2: C).(clear (CHead c4 (Flat f) 
+u) e2)) x H5 (clear_flat c4 x H6 f u))))) H4)))) k H2))))))))) (\lambda (c3: 
 C).(\lambda (c4: C).(\lambda (H0: (csubt g c3 c4)).(\lambda (_: ((\forall 
 (e1: C).((clear c3 e1) \to (ex2 C (\lambda (e2: C).(csubt g e1 e2)) (\lambda 
-(e2: C).(clear c4 e2))))))).(\lambda (u: T).(\lambda (t: T).(\lambda (H2: 
-(ty3 g c3 u t)).(\lambda (H3: (ty3 g c4 u t)).(\lambda (e1: C).(\lambda (H4: 
-(clear (CHead c3 (Bind Abst) t) e1)).(let TMP_70 \def (Bind Abst) in (let 
-TMP_71 \def (CHead c3 TMP_70 t) in (let TMP_76 \def (\lambda (c: C).(let 
-TMP_72 \def (\lambda (e2: C).(csubt g c e2)) in (let TMP_75 \def (\lambda 
-(e2: C).(let TMP_73 \def (Bind Abbr) in (let TMP_74 \def (CHead c4 TMP_73 u) 
-in (clear TMP_74 e2)))) in (ex2 C TMP_72 TMP_75)))) in (let TMP_79 \def 
-(\lambda (e2: C).(let TMP_77 \def (Bind Abst) in (let TMP_78 \def (CHead c3 
-TMP_77 t) in (csubt g TMP_78 e2)))) in (let TMP_82 \def (\lambda (e2: C).(let 
-TMP_80 \def (Bind Abbr) in (let TMP_81 \def (CHead c4 TMP_80 u) in (clear 
-TMP_81 e2)))) in (let TMP_83 \def (Bind Abbr) in (let TMP_84 \def (CHead c4 
-TMP_83 u) in (let TMP_85 \def (csubt_abst g c3 c4 H0 u t H2 H3) in (let 
-TMP_86 \def (clear_bind Abbr c4 u) in (let TMP_87 \def (ex_intro2 C TMP_79 
-TMP_82 TMP_84 TMP_85 TMP_86) in (let TMP_88 \def (clear_gen_bind Abst c3 e1 t 
-H4) in (eq_ind_r C TMP_71 TMP_76 TMP_87 e1 TMP_88)))))))))))))))))))))) in 
-(csubt_ind g TMP_3 TMP_8 TMP_49 TMP_69 TMP_89 c1 c2 H))))))))).
+(e2: C).(clear c4 e2))))))).(\lambda (b: B).(\lambda (H2: (not (eq B b 
+Void))).(\lambda (u1: T).(\lambda (u2: T).(\lambda (e1: C).(\lambda (H3: 
+(clear (CHead c3 (Bind Void) u1) e1)).(eq_ind_r C (CHead c3 (Bind Void) u1) 
+(\lambda (c: C).(ex2 C (\lambda (e2: C).(csubt g c e2)) (\lambda (e2: 
+C).(clear (CHead c4 (Bind b) u2) e2)))) (ex_intro2 C (\lambda (e2: C).(csubt 
+g (CHead c3 (Bind Void) u1) e2)) (\lambda (e2: C).(clear (CHead c4 (Bind b) 
+u2) e2)) (CHead c4 (Bind b) u2) (csubt_void g c3 c4 H0 b H2 u1 u2) 
+(clear_bind b c4 u2)) e1 (clear_gen_bind Void c3 e1 u1 H3)))))))))))) 
+(\lambda (c3: C).(\lambda (c4: C).(\lambda (H0: (csubt g c3 c4)).(\lambda (_: 
+((\forall (e1: C).((clear c3 e1) \to (ex2 C (\lambda (e2: C).(csubt g e1 e2)) 
+(\lambda (e2: C).(clear c4 e2))))))).(\lambda (u: T).(\lambda (t: T).(\lambda 
+(H2: (ty3 g c3 u t)).(\lambda (H3: (ty3 g c4 u t)).(\lambda (e1: C).(\lambda 
+(H4: (clear (CHead c3 (Bind Abst) t) e1)).(eq_ind_r C (CHead c3 (Bind Abst) 
+t) (\lambda (c: C).(ex2 C (\lambda (e2: C).(csubt g c e2)) (\lambda (e2: 
+C).(clear (CHead c4 (Bind Abbr) u) e2)))) (ex_intro2 C (\lambda (e2: 
+C).(csubt g (CHead c3 (Bind Abst) t) e2)) (\lambda (e2: C).(clear (CHead c4 
+(Bind Abbr) u) e2)) (CHead c4 (Bind Abbr) u) (csubt_abst g c3 c4 H0 u t H2 
+H3) (clear_bind Abbr c4 u)) e1 (clear_gen_bind Abst c3 e1 t H4)))))))))))) c1 
+c2 H)))).
 
index f465141ccc828d3451888f8a422fce596b32c18b..b0d4c923b25dfb2e28306cdb5a4b39f2412a384d 100644 (file)
@@ -21,25 +21,19 @@ theorem csubt_csuba:
 g c1 c2))))
 \def
  \lambda (g: G).(\lambda (c1: C).(\lambda (c2: C).(\lambda (H: (csubt g c1 
-c2)).(let TMP_1 \def (\lambda (c: C).(\lambda (c0: C).(csuba g c c0))) in 
-(let TMP_3 \def (\lambda (n: nat).(let TMP_2 \def (CSort n) in (csuba_refl g 
-TMP_2))) in (let TMP_4 \def (\lambda (c3: C).(\lambda (c4: C).(\lambda (_: 
-(csubt g c3 c4)).(\lambda (H1: (csuba g c3 c4)).(\lambda (k: K).(\lambda (u: 
-T).(csuba_head g c3 c4 H1 k u))))))) in (let TMP_5 \def (\lambda (c3: 
-C).(\lambda (c4: C).(\lambda (_: (csubt g c3 c4)).(\lambda (H1: (csuba g c3 
-c4)).(\lambda (b: B).(\lambda (H2: (not (eq B b Void))).(\lambda (u1: 
-T).(\lambda (u2: T).(csuba_void g c3 c4 H1 b H2 u1 u2))))))))) in (let TMP_16 
-\def (\lambda (c3: C).(\lambda (c4: C).(\lambda (_: (csubt g c3 c4)).(\lambda 
-(H1: (csuba g c3 c4)).(\lambda (u: T).(\lambda (t: T).(\lambda (H2: (ty3 g c3 
-u t)).(\lambda (_: (ty3 g c4 u t)).(let H_x \def (ty3_arity g c3 u t H2) in 
-(let H4 \def H_x in (let TMP_6 \def (\lambda (a1: A).(arity g c3 u a1)) in 
-(let TMP_8 \def (\lambda (a1: A).(let TMP_7 \def (asucc g a1) in (arity g c3 
-t TMP_7))) in (let TMP_9 \def (Bind Abst) in (let TMP_10 \def (CHead c3 TMP_9 
-t) in (let TMP_11 \def (Bind Abbr) in (let TMP_12 \def (CHead c4 TMP_11 u) in 
-(let TMP_13 \def (csuba g TMP_10 TMP_12) in (let TMP_15 \def (\lambda (x: 
-A).(\lambda (H5: (arity g c3 u x)).(\lambda (H6: (arity g c3 t (asucc g 
-x))).(let TMP_14 \def (csuba_arity g c3 u x H5 c4 H1) in (csuba_abst g c3 c4 
-H1 t x H6 u TMP_14))))) in (ex2_ind A TMP_6 TMP_8 TMP_13 TMP_15 
-H4))))))))))))))))))) in (csubt_ind g TMP_1 TMP_3 TMP_4 TMP_5 TMP_16 c1 c2 
-H))))))))).
+c2)).(csubt_ind g (\lambda (c: C).(\lambda (c0: C).(csuba g c c0))) (\lambda 
+(n: nat).(csuba_refl g (CSort n))) (\lambda (c3: C).(\lambda (c4: C).(\lambda 
+(_: (csubt g c3 c4)).(\lambda (H1: (csuba g c3 c4)).(\lambda (k: K).(\lambda 
+(u: T).(csuba_head g c3 c4 H1 k u))))))) (\lambda (c3: C).(\lambda (c4: 
+C).(\lambda (_: (csubt g c3 c4)).(\lambda (H1: (csuba g c3 c4)).(\lambda (b: 
+B).(\lambda (H2: (not (eq B b Void))).(\lambda (u1: T).(\lambda (u2: 
+T).(csuba_void g c3 c4 H1 b H2 u1 u2))))))))) (\lambda (c3: C).(\lambda (c4: 
+C).(\lambda (_: (csubt g c3 c4)).(\lambda (H1: (csuba g c3 c4)).(\lambda (u: 
+T).(\lambda (t: T).(\lambda (H2: (ty3 g c3 u t)).(\lambda (_: (ty3 g c4 u 
+t)).(let H_x \def (ty3_arity g c3 u t H2) in (let H4 \def H_x in (ex2_ind A 
+(\lambda (a1: A).(arity g c3 u a1)) (\lambda (a1: A).(arity g c3 t (asucc g 
+a1))) (csuba g (CHead c3 (Bind Abst) t) (CHead c4 (Bind Abbr) u)) (\lambda 
+(x: A).(\lambda (H5: (arity g c3 u x)).(\lambda (H6: (arity g c3 t (asucc g 
+x))).(csuba_abst g c3 c4 H1 t x H6 u (csuba_arity g c3 u x H5 c4 H1))))) 
+H4))))))))))) c1 c2 H)))).
 
index 6e2ca743bac4cbc16614884e421e3e9915d2f0bb..c8dc4c0c425211f9e84cba949918bd2ed9c953e9 100644 (file)
@@ -24,176 +24,97 @@ theorem csubt_drop_flat:
 (CHead d1 (Flat f) u)) \to (ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda 
 (d2: C).(drop n O c2 (CHead d2 (Flat f) u))))))))))))
 \def
- \lambda (g: G).(\lambda (f: F).(\lambda (n: nat).(let TMP_5 \def (\lambda 
-(n0: nat).(\forall (c1: C).(\forall (c2: C).((csubt g c1 c2) \to (\forall 
-(d1: C).(\forall (u: T).((drop n0 O c1 (CHead d1 (Flat f) u)) \to (let TMP_1 
-\def (\lambda (d2: C).(csubt g d1 d2)) in (let TMP_4 \def (\lambda (d2: 
-C).(let TMP_2 \def (Flat f) in (let TMP_3 \def (CHead d2 TMP_2 u) in (drop n0 
-O c2 TMP_3)))) in (ex2 C TMP_1 TMP_4)))))))))) in (let TMP_39 \def (\lambda 
-(c1: C).(\lambda (c2: C).(\lambda (H: (csubt g c1 c2)).(\lambda (d1: 
-C).(\lambda (u: T).(\lambda (H0: (drop O O c1 (CHead d1 (Flat f) u))).(let 
-TMP_6 \def (\lambda (c: C).(csubt g c c2)) in (let TMP_7 \def (Flat f) in 
-(let TMP_8 \def (CHead d1 TMP_7 u) in (let TMP_9 \def (Flat f) in (let TMP_10 
-\def (CHead d1 TMP_9 u) in (let TMP_11 \def (drop_gen_refl c1 TMP_10 H0) in 
-(let H1 \def (eq_ind C c1 TMP_6 H TMP_8 TMP_11) in (let H_x \def 
-(csubt_gen_flat g d1 c2 u f H1) in (let H2 \def H_x in (let TMP_14 \def 
-(\lambda (e2: C).(let TMP_12 \def (Flat f) in (let TMP_13 \def (CHead e2 
-TMP_12 u) in (eq C c2 TMP_13)))) in (let TMP_15 \def (\lambda (e2: C).(csubt 
-g d1 e2)) in (let TMP_16 \def (\lambda (d2: C).(csubt g d1 d2)) in (let 
-TMP_19 \def (\lambda (d2: C).(let TMP_17 \def (Flat f) in (let TMP_18 \def 
-(CHead d2 TMP_17 u) in (drop O O c2 TMP_18)))) in (let TMP_20 \def (ex2 C 
-TMP_16 TMP_19) in (let TMP_38 \def (\lambda (x: C).(\lambda (H3: (eq C c2 
-(CHead x (Flat f) u))).(\lambda (H4: (csubt g d1 x)).(let TMP_21 \def (Flat 
-f) in (let TMP_22 \def (CHead x TMP_21 u) in (let TMP_27 \def (\lambda (c: 
-C).(let TMP_23 \def (\lambda (d2: C).(csubt g d1 d2)) in (let TMP_26 \def 
-(\lambda (d2: C).(let TMP_24 \def (Flat f) in (let TMP_25 \def (CHead d2 
-TMP_24 u) in (drop O O c TMP_25)))) in (ex2 C TMP_23 TMP_26)))) in (let 
-TMP_28 \def (\lambda (d2: C).(csubt g d1 d2)) in (let TMP_33 \def (\lambda 
-(d2: C).(let TMP_29 \def (Flat f) in (let TMP_30 \def (CHead x TMP_29 u) in 
-(let TMP_31 \def (Flat f) in (let TMP_32 \def (CHead d2 TMP_31 u) in (drop O 
-O TMP_30 TMP_32)))))) in (let TMP_34 \def (Flat f) in (let TMP_35 \def (CHead 
-x TMP_34 u) in (let TMP_36 \def (drop_refl TMP_35) in (let TMP_37 \def 
-(ex_intro2 C TMP_28 TMP_33 x H4 TMP_36) in (eq_ind_r C TMP_22 TMP_27 TMP_37 
-c2 H3))))))))))))) in (ex2_ind C TMP_14 TMP_15 TMP_20 TMP_38 
-H2)))))))))))))))))))))) in (let TMP_204 \def (\lambda (n0: nat).(\lambda (H: 
-((\forall (c1: C).(\forall (c2: C).((csubt g c1 c2) \to (\forall (d1: 
+ \lambda (g: G).(\lambda (f: F).(\lambda (n: nat).(nat_ind (\lambda (n0: 
+nat).(\forall (c1: C).(\forall (c2: C).((csubt g c1 c2) \to (\forall (d1: 
 C).(\forall (u: T).((drop n0 O c1 (CHead d1 (Flat f) u)) \to (ex2 C (\lambda 
 (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(drop n0 O c2 (CHead d2 (Flat f) 
-u)))))))))))).(\lambda (c1: C).(\lambda (c2: C).(\lambda (H0: (csubt g c1 
-c2)).(let TMP_45 \def (\lambda (c: C).(\lambda (c0: C).(\forall (d1: 
-C).(\forall (u: T).((drop (S n0) O c (CHead d1 (Flat f) u)) \to (let TMP_40 
-\def (\lambda (d2: C).(csubt g d1 d2)) in (let TMP_44 \def (\lambda (d2: 
-C).(let TMP_41 \def (S n0) in (let TMP_42 \def (Flat f) in (let TMP_43 \def 
-(CHead d2 TMP_42 u) in (drop TMP_41 O c0 TMP_43))))) in (ex2 C TMP_40 
-TMP_44)))))))) in (let TMP_74 \def (\lambda (n1: nat).(\lambda (d1: 
-C).(\lambda (u: T).(\lambda (H1: (drop (S n0) O (CSort n1) (CHead d1 (Flat f) 
-u))).(let TMP_46 \def (Flat f) in (let TMP_47 \def (CHead d1 TMP_46 u) in 
-(let TMP_48 \def (CSort n1) in (let TMP_49 \def (eq C TMP_47 TMP_48) in (let 
-TMP_50 \def (S n0) in (let TMP_51 \def (eq nat TMP_50 O) in (let TMP_52 \def 
-(eq nat O O) in (let TMP_53 \def (\lambda (d2: C).(csubt g d1 d2)) in (let 
-TMP_58 \def (\lambda (d2: C).(let TMP_54 \def (S n0) in (let TMP_55 \def 
-(CSort n1) in (let TMP_56 \def (Flat f) in (let TMP_57 \def (CHead d2 TMP_56 
-u) in (drop TMP_54 O TMP_55 TMP_57)))))) in (let TMP_59 \def (ex2 C TMP_53 
-TMP_58) in (let TMP_69 \def (\lambda (_: (eq C (CHead d1 (Flat f) u) (CSort 
-n1))).(\lambda (H3: (eq nat (S n0) O)).(\lambda (_: (eq nat O O)).(let TMP_60 
-\def (S n0) in (let TMP_61 \def (\lambda (ee: nat).(match ee with [O 
-\Rightarrow False | (S _) \Rightarrow True])) in (let H5 \def (eq_ind nat 
-TMP_60 TMP_61 I O H3) in (let TMP_62 \def (\lambda (d2: C).(csubt g d1 d2)) 
-in (let TMP_67 \def (\lambda (d2: C).(let TMP_63 \def (S n0) in (let TMP_64 
-\def (CSort n1) in (let TMP_65 \def (Flat f) in (let TMP_66 \def (CHead d2 
-TMP_65 u) in (drop TMP_63 O TMP_64 TMP_66)))))) in (let TMP_68 \def (ex2 C 
-TMP_62 TMP_67) in (False_ind TMP_68 H5)))))))))) in (let TMP_70 \def (S n0) 
-in (let TMP_71 \def (Flat f) in (let TMP_72 \def (CHead d1 TMP_71 u) in (let 
-TMP_73 \def (drop_gen_sort n1 TMP_70 O TMP_72 H1) in (and3_ind TMP_49 TMP_51 
-TMP_52 TMP_59 TMP_69 TMP_73)))))))))))))))))))) in (let TMP_143 \def (\lambda 
-(c0: C).(\lambda (c3: C).(\lambda (H1: (csubt g c0 c3)).(\lambda (H2: 
-((\forall (d1: C).(\forall (u: T).((drop (S n0) O c0 (CHead d1 (Flat f) u)) 
-\to (ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(drop (S n0) O 
-c3 (CHead d2 (Flat f) u))))))))).(\lambda (k: K).(let TMP_81 \def (\lambda 
-(k0: K).(\forall (u: T).(\forall (d1: C).(\forall (u0: T).((drop (S n0) O 
-(CHead c0 k0 u) (CHead d1 (Flat f) u0)) \to (let TMP_75 \def (\lambda (d2: 
-C).(csubt g d1 d2)) in (let TMP_80 \def (\lambda (d2: C).(let TMP_76 \def (S 
-n0) in (let TMP_77 \def (CHead c3 k0 u) in (let TMP_78 \def (Flat f) in (let 
-TMP_79 \def (CHead d2 TMP_78 u0) in (drop TMP_76 O TMP_77 TMP_79)))))) in 
-(ex2 C TMP_75 TMP_80)))))))) in (let TMP_111 \def (\lambda (b: B).(\lambda 
-(u: T).(\lambda (d1: C).(\lambda (u0: T).(\lambda (H3: (drop (S n0) O (CHead 
-c0 (Bind b) u) (CHead d1 (Flat f) u0))).(let TMP_82 \def (\lambda (d2: 
-C).(csubt g d1 d2)) in (let TMP_85 \def (\lambda (d2: C).(let TMP_83 \def 
-(Flat f) in (let TMP_84 \def (CHead d2 TMP_83 u0) in (drop n0 O c3 TMP_84)))) 
-in (let TMP_86 \def (\lambda (d2: C).(csubt g d1 d2)) in (let TMP_92 \def 
-(\lambda (d2: C).(let TMP_87 \def (S n0) in (let TMP_88 \def (Bind b) in (let 
-TMP_89 \def (CHead c3 TMP_88 u) in (let TMP_90 \def (Flat f) in (let TMP_91 
-\def (CHead d2 TMP_90 u0) in (drop TMP_87 O TMP_89 TMP_91))))))) in (let 
-TMP_93 \def (ex2 C TMP_86 TMP_92) in (let TMP_105 \def (\lambda (x: 
-C).(\lambda (H4: (csubt g d1 x)).(\lambda (H5: (drop n0 O c3 (CHead x (Flat 
-f) u0))).(let TMP_94 \def (\lambda (d2: C).(csubt g d1 d2)) in (let TMP_100 
-\def (\lambda (d2: C).(let TMP_95 \def (S n0) in (let TMP_96 \def (Bind b) in 
-(let TMP_97 \def (CHead c3 TMP_96 u) in (let TMP_98 \def (Flat f) in (let 
-TMP_99 \def (CHead d2 TMP_98 u0) in (drop TMP_95 O TMP_97 TMP_99))))))) in 
-(let TMP_101 \def (Bind b) in (let TMP_102 \def (Flat f) in (let TMP_103 \def 
-(CHead x TMP_102 u0) in (let TMP_104 \def (drop_drop TMP_101 n0 c3 TMP_103 H5 
-u) in (ex_intro2 C TMP_94 TMP_100 x H4 TMP_104)))))))))) in (let TMP_106 \def 
-(Bind b) in (let TMP_107 \def (Flat f) in (let TMP_108 \def (CHead d1 TMP_107 
-u0) in (let TMP_109 \def (drop_gen_drop TMP_106 c0 TMP_108 u n0 H3) in (let 
-TMP_110 \def (H c0 c3 H1 d1 u0 TMP_109) in (ex2_ind C TMP_82 TMP_85 TMP_93 
-TMP_105 TMP_110))))))))))))))))) in (let TMP_142 \def (\lambda (f0: 
-F).(\lambda (u: T).(\lambda (d1: C).(\lambda (u0: T).(\lambda (H3: (drop (S 
-n0) O (CHead c0 (Flat f0) u) (CHead d1 (Flat f) u0))).(let TMP_112 \def 
-(\lambda (d2: C).(csubt g d1 d2)) in (let TMP_116 \def (\lambda (d2: C).(let 
-TMP_113 \def (S n0) in (let TMP_114 \def (Flat f) in (let TMP_115 \def (CHead 
-d2 TMP_114 u0) in (drop TMP_113 O c3 TMP_115))))) in (let TMP_117 \def 
-(\lambda (d2: C).(csubt g d1 d2)) in (let TMP_123 \def (\lambda (d2: C).(let 
-TMP_118 \def (S n0) in (let TMP_119 \def (Flat f0) in (let TMP_120 \def 
-(CHead c3 TMP_119 u) in (let TMP_121 \def (Flat f) in (let TMP_122 \def 
-(CHead d2 TMP_121 u0) in (drop TMP_118 O TMP_120 TMP_122))))))) in (let 
-TMP_124 \def (ex2 C TMP_117 TMP_123) in (let TMP_136 \def (\lambda (x: 
-C).(\lambda (H4: (csubt g d1 x)).(\lambda (H5: (drop (S n0) O c3 (CHead x 
-(Flat f) u0))).(let TMP_125 \def (\lambda (d2: C).(csubt g d1 d2)) in (let 
-TMP_131 \def (\lambda (d2: C).(let TMP_126 \def (S n0) in (let TMP_127 \def 
-(Flat f0) in (let TMP_128 \def (CHead c3 TMP_127 u) in (let TMP_129 \def 
-(Flat f) in (let TMP_130 \def (CHead d2 TMP_129 u0) in (drop TMP_126 O 
-TMP_128 TMP_130))))))) in (let TMP_132 \def (Flat f0) in (let TMP_133 \def 
-(Flat f) in (let TMP_134 \def (CHead x TMP_133 u0) in (let TMP_135 \def 
-(drop_drop TMP_132 n0 c3 TMP_134 H5 u) in (ex_intro2 C TMP_125 TMP_131 x H4 
-TMP_135)))))))))) in (let TMP_137 \def (Flat f0) in (let TMP_138 \def (Flat 
-f) in (let TMP_139 \def (CHead d1 TMP_138 u0) in (let TMP_140 \def 
-(drop_gen_drop TMP_137 c0 TMP_139 u n0 H3) in (let TMP_141 \def (H2 d1 u0 
-TMP_140) in (ex2_ind C TMP_112 TMP_116 TMP_124 TMP_136 
-TMP_141))))))))))))))))) in (K_ind TMP_81 TMP_111 TMP_142 k))))))))) in (let 
-TMP_173 \def (\lambda (c0: C).(\lambda (c3: C).(\lambda (H1: (csubt g c0 
-c3)).(\lambda (_: ((\forall (d1: C).(\forall (u: T).((drop (S n0) O c0 (CHead 
-d1 (Flat f) u)) \to (ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: 
-C).(drop (S n0) O c3 (CHead d2 (Flat f) u))))))))).(\lambda (b: B).(\lambda 
-(_: (not (eq B b Void))).(\lambda (u1: T).(\lambda (u2: T).(\lambda (d1: 
-C).(\lambda (u: T).(\lambda (H4: (drop (S n0) O (CHead c0 (Bind Void) u1) 
-(CHead d1 (Flat f) u))).(let TMP_144 \def (\lambda (d2: C).(csubt g d1 d2)) 
-in (let TMP_147 \def (\lambda (d2: C).(let TMP_145 \def (Flat f) in (let 
-TMP_146 \def (CHead d2 TMP_145 u) in (drop n0 O c3 TMP_146)))) in (let 
-TMP_148 \def (\lambda (d2: C).(csubt g d1 d2)) in (let TMP_154 \def (\lambda 
-(d2: C).(let TMP_149 \def (S n0) in (let TMP_150 \def (Bind b) in (let 
-TMP_151 \def (CHead c3 TMP_150 u2) in (let TMP_152 \def (Flat f) in (let 
-TMP_153 \def (CHead d2 TMP_152 u) in (drop TMP_149 O TMP_151 TMP_153))))))) 
-in (let TMP_155 \def (ex2 C TMP_148 TMP_154) in (let TMP_167 \def (\lambda 
-(x: C).(\lambda (H5: (csubt g d1 x)).(\lambda (H6: (drop n0 O c3 (CHead x 
-(Flat f) u))).(let TMP_156 \def (\lambda (d2: C).(csubt g d1 d2)) in (let 
-TMP_162 \def (\lambda (d2: C).(let TMP_157 \def (S n0) in (let TMP_158 \def 
-(Bind b) in (let TMP_159 \def (CHead c3 TMP_158 u2) in (let TMP_160 \def 
-(Flat f) in (let TMP_161 \def (CHead d2 TMP_160 u) in (drop TMP_157 O TMP_159 
-TMP_161))))))) in (let TMP_163 \def (Bind b) in (let TMP_164 \def (Flat f) in 
-(let TMP_165 \def (CHead x TMP_164 u) in (let TMP_166 \def (drop_drop TMP_163 
-n0 c3 TMP_165 H6 u2) in (ex_intro2 C TMP_156 TMP_162 x H5 TMP_166)))))))))) 
-in (let TMP_168 \def (Bind Void) in (let TMP_169 \def (Flat f) in (let 
-TMP_170 \def (CHead d1 TMP_169 u) in (let TMP_171 \def (drop_gen_drop TMP_168 
-c0 TMP_170 u1 n0 H4) in (let TMP_172 \def (H c0 c3 H1 d1 u TMP_171) in 
-(ex2_ind C TMP_144 TMP_147 TMP_155 TMP_167 TMP_172))))))))))))))))))))))) in 
-(let TMP_203 \def (\lambda (c0: C).(\lambda (c3: C).(\lambda (H1: (csubt g c0 
-c3)).(\lambda (_: ((\forall (d1: C).(\forall (u: T).((drop (S n0) O c0 (CHead 
-d1 (Flat f) u)) \to (ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: 
-C).(drop (S n0) O c3 (CHead d2 (Flat f) u))))))))).(\lambda (u: T).(\lambda 
-(t: T).(\lambda (_: (ty3 g c0 u t)).(\lambda (_: (ty3 g c3 u t)).(\lambda 
-(d1: C).(\lambda (u0: T).(\lambda (H5: (drop (S n0) O (CHead c0 (Bind Abst) 
-t) (CHead d1 (Flat f) u0))).(let TMP_174 \def (\lambda (d2: C).(csubt g d1 
-d2)) in (let TMP_177 \def (\lambda (d2: C).(let TMP_175 \def (Flat f) in (let 
-TMP_176 \def (CHead d2 TMP_175 u0) in (drop n0 O c3 TMP_176)))) in (let 
-TMP_178 \def (\lambda (d2: C).(csubt g d1 d2)) in (let TMP_184 \def (\lambda 
-(d2: C).(let TMP_179 \def (S n0) in (let TMP_180 \def (Bind Abbr) in (let 
-TMP_181 \def (CHead c3 TMP_180 u) in (let TMP_182 \def (Flat f) in (let 
-TMP_183 \def (CHead d2 TMP_182 u0) in (drop TMP_179 O TMP_181 TMP_183))))))) 
-in (let TMP_185 \def (ex2 C TMP_178 TMP_184) in (let TMP_197 \def (\lambda 
-(x: C).(\lambda (H6: (csubt g d1 x)).(\lambda (H7: (drop n0 O c3 (CHead x 
-(Flat f) u0))).(let TMP_186 \def (\lambda (d2: C).(csubt g d1 d2)) in (let 
-TMP_192 \def (\lambda (d2: C).(let TMP_187 \def (S n0) in (let TMP_188 \def 
-(Bind Abbr) in (let TMP_189 \def (CHead c3 TMP_188 u) in (let TMP_190 \def 
-(Flat f) in (let TMP_191 \def (CHead d2 TMP_190 u0) in (drop TMP_187 O 
-TMP_189 TMP_191))))))) in (let TMP_193 \def (Bind Abbr) in (let TMP_194 \def 
-(Flat f) in (let TMP_195 \def (CHead x TMP_194 u0) in (let TMP_196 \def 
-(drop_drop TMP_193 n0 c3 TMP_195 H7 u) in (ex_intro2 C TMP_186 TMP_192 x H6 
-TMP_196)))))))))) in (let TMP_198 \def (Bind Abst) in (let TMP_199 \def (Flat 
-f) in (let TMP_200 \def (CHead d1 TMP_199 u0) in (let TMP_201 \def 
-(drop_gen_drop TMP_198 c0 TMP_200 t n0 H5) in (let TMP_202 \def (H c0 c3 H1 
-d1 u0 TMP_201) in (ex2_ind C TMP_174 TMP_177 TMP_185 TMP_197 
-TMP_202))))))))))))))))))))))) in (csubt_ind g TMP_45 TMP_74 TMP_143 TMP_173 
-TMP_203 c1 c2 H0))))))))))) in (nat_ind TMP_5 TMP_39 TMP_204 n)))))).
+u))))))))))) (\lambda (c1: C).(\lambda (c2: C).(\lambda (H: (csubt g c1 
+c2)).(\lambda (d1: C).(\lambda (u: T).(\lambda (H0: (drop O O c1 (CHead d1 
+(Flat f) u))).(let H1 \def (eq_ind C c1 (\lambda (c: C).(csubt g c c2)) H 
+(CHead d1 (Flat f) u) (drop_gen_refl c1 (CHead d1 (Flat f) u) H0)) in (let 
+H_x \def (csubt_gen_flat g d1 c2 u f H1) in (let H2 \def H_x in (ex2_ind C 
+(\lambda (e2: C).(eq C c2 (CHead e2 (Flat f) u))) (\lambda (e2: C).(csubt g 
+d1 e2)) (ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(drop O O 
+c2 (CHead d2 (Flat f) u)))) (\lambda (x: C).(\lambda (H3: (eq C c2 (CHead x 
+(Flat f) u))).(\lambda (H4: (csubt g d1 x)).(eq_ind_r C (CHead x (Flat f) u) 
+(\lambda (c: C).(ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: 
+C).(drop O O c (CHead d2 (Flat f) u))))) (ex_intro2 C (\lambda (d2: C).(csubt 
+g d1 d2)) (\lambda (d2: C).(drop O O (CHead x (Flat f) u) (CHead d2 (Flat f) 
+u))) x H4 (drop_refl (CHead x (Flat f) u))) c2 H3)))) H2)))))))))) (\lambda 
+(n0: nat).(\lambda (H: ((\forall (c1: C).(\forall (c2: C).((csubt g c1 c2) 
+\to (\forall (d1: C).(\forall (u: T).((drop n0 O c1 (CHead d1 (Flat f) u)) 
+\to (ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(drop n0 O c2 
+(CHead d2 (Flat f) u)))))))))))).(\lambda (c1: C).(\lambda (c2: C).(\lambda 
+(H0: (csubt g c1 c2)).(csubt_ind g (\lambda (c: C).(\lambda (c0: C).(\forall 
+(d1: C).(\forall (u: T).((drop (S n0) O c (CHead d1 (Flat f) u)) \to (ex2 C 
+(\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(drop (S n0) O c0 (CHead 
+d2 (Flat f) u))))))))) (\lambda (n1: nat).(\lambda (d1: C).(\lambda (u: 
+T).(\lambda (H1: (drop (S n0) O (CSort n1) (CHead d1 (Flat f) u))).(and3_ind 
+(eq C (CHead d1 (Flat f) u) (CSort n1)) (eq nat (S n0) O) (eq nat O O) (ex2 C 
+(\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(drop (S n0) O (CSort n1) 
+(CHead d2 (Flat f) u)))) (\lambda (_: (eq C (CHead d1 (Flat f) u) (CSort 
+n1))).(\lambda (H3: (eq nat (S n0) O)).(\lambda (_: (eq nat O O)).(let H5 
+\def (eq_ind nat (S n0) (\lambda (ee: nat).(match ee with [O \Rightarrow 
+False | (S _) \Rightarrow True])) I O H3) in (False_ind (ex2 C (\lambda (d2: 
+C).(csubt g d1 d2)) (\lambda (d2: C).(drop (S n0) O (CSort n1) (CHead d2 
+(Flat f) u)))) H5))))) (drop_gen_sort n1 (S n0) O (CHead d1 (Flat f) u) 
+H1)))))) (\lambda (c0: C).(\lambda (c3: C).(\lambda (H1: (csubt g c0 
+c3)).(\lambda (H2: ((\forall (d1: C).(\forall (u: T).((drop (S n0) O c0 
+(CHead d1 (Flat f) u)) \to (ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda 
+(d2: C).(drop (S n0) O c3 (CHead d2 (Flat f) u))))))))).(\lambda (k: 
+K).(K_ind (\lambda (k0: K).(\forall (u: T).(\forall (d1: C).(\forall (u0: 
+T).((drop (S n0) O (CHead c0 k0 u) (CHead d1 (Flat f) u0)) \to (ex2 C 
+(\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(drop (S n0) O (CHead c3 
+k0 u) (CHead d2 (Flat f) u0))))))))) (\lambda (b: B).(\lambda (u: T).(\lambda 
+(d1: C).(\lambda (u0: T).(\lambda (H3: (drop (S n0) O (CHead c0 (Bind b) u) 
+(CHead d1 (Flat f) u0))).(ex2_ind C (\lambda (d2: C).(csubt g d1 d2)) 
+(\lambda (d2: C).(drop n0 O c3 (CHead d2 (Flat f) u0))) (ex2 C (\lambda (d2: 
+C).(csubt g d1 d2)) (\lambda (d2: C).(drop (S n0) O (CHead c3 (Bind b) u) 
+(CHead d2 (Flat f) u0)))) (\lambda (x: C).(\lambda (H4: (csubt g d1 
+x)).(\lambda (H5: (drop n0 O c3 (CHead x (Flat f) u0))).(ex_intro2 C (\lambda 
+(d2: C).(csubt g d1 d2)) (\lambda (d2: C).(drop (S n0) O (CHead c3 (Bind b) 
+u) (CHead d2 (Flat f) u0))) x H4 (drop_drop (Bind b) n0 c3 (CHead x (Flat f) 
+u0) H5 u))))) (H c0 c3 H1 d1 u0 (drop_gen_drop (Bind b) c0 (CHead d1 (Flat f) 
+u0) u n0 H3)))))))) (\lambda (f0: F).(\lambda (u: T).(\lambda (d1: 
+C).(\lambda (u0: T).(\lambda (H3: (drop (S n0) O (CHead c0 (Flat f0) u) 
+(CHead d1 (Flat f) u0))).(ex2_ind C (\lambda (d2: C).(csubt g d1 d2)) 
+(\lambda (d2: C).(drop (S n0) O c3 (CHead d2 (Flat f) u0))) (ex2 C (\lambda 
+(d2: C).(csubt g d1 d2)) (\lambda (d2: C).(drop (S n0) O (CHead c3 (Flat f0) 
+u) (CHead d2 (Flat f) u0)))) (\lambda (x: C).(\lambda (H4: (csubt g d1 
+x)).(\lambda (H5: (drop (S n0) O c3 (CHead x (Flat f) u0))).(ex_intro2 C 
+(\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(drop (S n0) O (CHead c3 
+(Flat f0) u) (CHead d2 (Flat f) u0))) x H4 (drop_drop (Flat f0) n0 c3 (CHead 
+x (Flat f) u0) H5 u))))) (H2 d1 u0 (drop_gen_drop (Flat f0) c0 (CHead d1 
+(Flat f) u0) u n0 H3)))))))) k)))))) (\lambda (c0: C).(\lambda (c3: 
+C).(\lambda (H1: (csubt g c0 c3)).(\lambda (_: ((\forall (d1: C).(\forall (u: 
+T).((drop (S n0) O c0 (CHead d1 (Flat f) u)) \to (ex2 C (\lambda (d2: 
+C).(csubt g d1 d2)) (\lambda (d2: C).(drop (S n0) O c3 (CHead d2 (Flat f) 
+u))))))))).(\lambda (b: B).(\lambda (_: (not (eq B b Void))).(\lambda (u1: 
+T).(\lambda (u2: T).(\lambda (d1: C).(\lambda (u: T).(\lambda (H4: (drop (S 
+n0) O (CHead c0 (Bind Void) u1) (CHead d1 (Flat f) u))).(ex2_ind C (\lambda 
+(d2: C).(csubt g d1 d2)) (\lambda (d2: C).(drop n0 O c3 (CHead d2 (Flat f) 
+u))) (ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(drop (S n0) O 
+(CHead c3 (Bind b) u2) (CHead d2 (Flat f) u)))) (\lambda (x: C).(\lambda (H5: 
+(csubt g d1 x)).(\lambda (H6: (drop n0 O c3 (CHead x (Flat f) u))).(ex_intro2 
+C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(drop (S n0) O (CHead c3 
+(Bind b) u2) (CHead d2 (Flat f) u))) x H5 (drop_drop (Bind b) n0 c3 (CHead x 
+(Flat f) u) H6 u2))))) (H c0 c3 H1 d1 u (drop_gen_drop (Bind Void) c0 (CHead 
+d1 (Flat f) u) u1 n0 H4)))))))))))))) (\lambda (c0: C).(\lambda (c3: 
+C).(\lambda (H1: (csubt g c0 c3)).(\lambda (_: ((\forall (d1: C).(\forall (u: 
+T).((drop (S n0) O c0 (CHead d1 (Flat f) u)) \to (ex2 C (\lambda (d2: 
+C).(csubt g d1 d2)) (\lambda (d2: C).(drop (S n0) O c3 (CHead d2 (Flat f) 
+u))))))))).(\lambda (u: T).(\lambda (t: T).(\lambda (_: (ty3 g c0 u 
+t)).(\lambda (_: (ty3 g c3 u t)).(\lambda (d1: C).(\lambda (u0: T).(\lambda 
+(H5: (drop (S n0) O (CHead c0 (Bind Abst) t) (CHead d1 (Flat f) 
+u0))).(ex2_ind C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(drop n0 
+O c3 (CHead d2 (Flat f) u0))) (ex2 C (\lambda (d2: C).(csubt g d1 d2)) 
+(\lambda (d2: C).(drop (S n0) O (CHead c3 (Bind Abbr) u) (CHead d2 (Flat f) 
+u0)))) (\lambda (x: C).(\lambda (H6: (csubt g d1 x)).(\lambda (H7: (drop n0 O 
+c3 (CHead x (Flat f) u0))).(ex_intro2 C (\lambda (d2: C).(csubt g d1 d2)) 
+(\lambda (d2: C).(drop (S n0) O (CHead c3 (Bind Abbr) u) (CHead d2 (Flat f) 
+u0))) x H6 (drop_drop (Bind Abbr) n0 c3 (CHead x (Flat f) u0) H7 u))))) (H c0 
+c3 H1 d1 u0 (drop_gen_drop (Bind Abst) c0 (CHead d1 (Flat f) u0) t n0 
+H5)))))))))))))) c1 c2 H0)))))) n))).
 
 theorem csubt_drop_abbr:
  \forall (g: G).(\forall (n: nat).(\forall (c1: C).(\forall (c2: C).((csubt g 
@@ -201,178 +122,98 @@ c1 c2) \to (\forall (d1: C).(\forall (u: T).((drop n O c1 (CHead d1 (Bind
 Abbr) u)) \to (ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(drop 
 n O c2 (CHead d2 (Bind Abbr) u)))))))))))
 \def
- \lambda (g: G).(\lambda (n: nat).(let TMP_5 \def (\lambda (n0: nat).(\forall 
-(c1: C).(\forall (c2: C).((csubt g c1 c2) \to (\forall (d1: C).(\forall (u: 
-T).((drop n0 O c1 (CHead d1 (Bind Abbr) u)) \to (let TMP_1 \def (\lambda (d2: 
-C).(csubt g d1 d2)) in (let TMP_4 \def (\lambda (d2: C).(let TMP_2 \def (Bind 
-Abbr) in (let TMP_3 \def (CHead d2 TMP_2 u) in (drop n0 O c2 TMP_3)))) in 
-(ex2 C TMP_1 TMP_4)))))))))) in (let TMP_39 \def (\lambda (c1: C).(\lambda 
-(c2: C).(\lambda (H: (csubt g c1 c2)).(\lambda (d1: C).(\lambda (u: 
-T).(\lambda (H0: (drop O O c1 (CHead d1 (Bind Abbr) u))).(let TMP_6 \def 
-(\lambda (c: C).(csubt g c c2)) in (let TMP_7 \def (Bind Abbr) in (let TMP_8 
-\def (CHead d1 TMP_7 u) in (let TMP_9 \def (Bind Abbr) in (let TMP_10 \def 
-(CHead d1 TMP_9 u) in (let TMP_11 \def (drop_gen_refl c1 TMP_10 H0) in (let 
-H1 \def (eq_ind C c1 TMP_6 H TMP_8 TMP_11) in (let H2 \def (csubt_gen_abbr g 
-d1 c2 u H1) in (let TMP_14 \def (\lambda (e2: C).(let TMP_12 \def (Bind Abbr) 
-in (let TMP_13 \def (CHead e2 TMP_12 u) in (eq C c2 TMP_13)))) in (let TMP_15 
-\def (\lambda (e2: C).(csubt g d1 e2)) in (let TMP_16 \def (\lambda (d2: 
-C).(csubt g d1 d2)) in (let TMP_19 \def (\lambda (d2: C).(let TMP_17 \def 
-(Bind Abbr) in (let TMP_18 \def (CHead d2 TMP_17 u) in (drop O O c2 
-TMP_18)))) in (let TMP_20 \def (ex2 C TMP_16 TMP_19) in (let TMP_38 \def 
-(\lambda (x: C).(\lambda (H3: (eq C c2 (CHead x (Bind Abbr) u))).(\lambda 
-(H4: (csubt g d1 x)).(let TMP_21 \def (Bind Abbr) in (let TMP_22 \def (CHead 
-x TMP_21 u) in (let TMP_27 \def (\lambda (c: C).(let TMP_23 \def (\lambda 
-(d2: C).(csubt g d1 d2)) in (let TMP_26 \def (\lambda (d2: C).(let TMP_24 
-\def (Bind Abbr) in (let TMP_25 \def (CHead d2 TMP_24 u) in (drop O O c 
-TMP_25)))) in (ex2 C TMP_23 TMP_26)))) in (let TMP_28 \def (\lambda (d2: 
-C).(csubt g d1 d2)) in (let TMP_33 \def (\lambda (d2: C).(let TMP_29 \def 
-(Bind Abbr) in (let TMP_30 \def (CHead x TMP_29 u) in (let TMP_31 \def (Bind 
-Abbr) in (let TMP_32 \def (CHead d2 TMP_31 u) in (drop O O TMP_30 
-TMP_32)))))) in (let TMP_34 \def (Bind Abbr) in (let TMP_35 \def (CHead x 
-TMP_34 u) in (let TMP_36 \def (drop_refl TMP_35) in (let TMP_37 \def 
-(ex_intro2 C TMP_28 TMP_33 x H4 TMP_36) in (eq_ind_r C TMP_22 TMP_27 TMP_37 
-c2 H3))))))))))))) in (ex2_ind C TMP_14 TMP_15 TMP_20 TMP_38 
-H2))))))))))))))))))))) in (let TMP_204 \def (\lambda (n0: nat).(\lambda (H: 
-((\forall (c1: C).(\forall (c2: C).((csubt g c1 c2) \to (\forall (d1: 
-C).(\forall (u: T).((drop n0 O c1 (CHead d1 (Bind Abbr) u)) \to (ex2 C 
-(\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(drop n0 O c2 (CHead d2 
-(Bind Abbr) u)))))))))))).(\lambda (c1: C).(\lambda (c2: C).(\lambda (H0: 
-(csubt g c1 c2)).(let TMP_45 \def (\lambda (c: C).(\lambda (c0: C).(\forall 
-(d1: C).(\forall (u: T).((drop (S n0) O c (CHead d1 (Bind Abbr) u)) \to (let 
-TMP_40 \def (\lambda (d2: C).(csubt g d1 d2)) in (let TMP_44 \def (\lambda 
-(d2: C).(let TMP_41 \def (S n0) in (let TMP_42 \def (Bind Abbr) in (let 
-TMP_43 \def (CHead d2 TMP_42 u) in (drop TMP_41 O c0 TMP_43))))) in (ex2 C 
-TMP_40 TMP_44)))))))) in (let TMP_74 \def (\lambda (n1: nat).(\lambda (d1: 
-C).(\lambda (u: T).(\lambda (H1: (drop (S n0) O (CSort n1) (CHead d1 (Bind 
-Abbr) u))).(let TMP_46 \def (Bind Abbr) in (let TMP_47 \def (CHead d1 TMP_46 
-u) in (let TMP_48 \def (CSort n1) in (let TMP_49 \def (eq C TMP_47 TMP_48) in 
-(let TMP_50 \def (S n0) in (let TMP_51 \def (eq nat TMP_50 O) in (let TMP_52 
-\def (eq nat O O) in (let TMP_53 \def (\lambda (d2: C).(csubt g d1 d2)) in 
-(let TMP_58 \def (\lambda (d2: C).(let TMP_54 \def (S n0) in (let TMP_55 \def 
-(CSort n1) in (let TMP_56 \def (Bind Abbr) in (let TMP_57 \def (CHead d2 
-TMP_56 u) in (drop TMP_54 O TMP_55 TMP_57)))))) in (let TMP_59 \def (ex2 C 
-TMP_53 TMP_58) in (let TMP_69 \def (\lambda (_: (eq C (CHead d1 (Bind Abbr) 
-u) (CSort n1))).(\lambda (H3: (eq nat (S n0) O)).(\lambda (_: (eq nat O 
-O)).(let TMP_60 \def (S n0) in (let TMP_61 \def (\lambda (ee: nat).(match ee 
-with [O \Rightarrow False | (S _) \Rightarrow True])) in (let H5 \def (eq_ind 
-nat TMP_60 TMP_61 I O H3) in (let TMP_62 \def (\lambda (d2: C).(csubt g d1 
-d2)) in (let TMP_67 \def (\lambda (d2: C).(let TMP_63 \def (S n0) in (let 
-TMP_64 \def (CSort n1) in (let TMP_65 \def (Bind Abbr) in (let TMP_66 \def 
-(CHead d2 TMP_65 u) in (drop TMP_63 O TMP_64 TMP_66)))))) in (let TMP_68 \def 
-(ex2 C TMP_62 TMP_67) in (False_ind TMP_68 H5)))))))))) in (let TMP_70 \def 
-(S n0) in (let TMP_71 \def (Bind Abbr) in (let TMP_72 \def (CHead d1 TMP_71 
-u) in (let TMP_73 \def (drop_gen_sort n1 TMP_70 O TMP_72 H1) in (and3_ind 
-TMP_49 TMP_51 TMP_52 TMP_59 TMP_69 TMP_73)))))))))))))))))))) in (let TMP_143 
-\def (\lambda (c0: C).(\lambda (c3: C).(\lambda (H1: (csubt g c0 
-c3)).(\lambda (H2: ((\forall (d1: C).(\forall (u: T).((drop (S n0) O c0 
+ \lambda (g: G).(\lambda (n: nat).(nat_ind (\lambda (n0: nat).(\forall (c1: 
+C).(\forall (c2: C).((csubt g c1 c2) \to (\forall (d1: C).(\forall (u: 
+T).((drop n0 O c1 (CHead d1 (Bind Abbr) u)) \to (ex2 C (\lambda (d2: 
+C).(csubt g d1 d2)) (\lambda (d2: C).(drop n0 O c2 (CHead d2 (Bind Abbr) 
+u))))))))))) (\lambda (c1: C).(\lambda (c2: C).(\lambda (H: (csubt g c1 
+c2)).(\lambda (d1: C).(\lambda (u: T).(\lambda (H0: (drop O O c1 (CHead d1 
+(Bind Abbr) u))).(let H1 \def (eq_ind C c1 (\lambda (c: C).(csubt g c c2)) H 
+(CHead d1 (Bind Abbr) u) (drop_gen_refl c1 (CHead d1 (Bind Abbr) u) H0)) in 
+(let H2 \def (csubt_gen_abbr g d1 c2 u H1) in (ex2_ind C (\lambda (e2: C).(eq 
+C c2 (CHead e2 (Bind Abbr) u))) (\lambda (e2: C).(csubt g d1 e2)) (ex2 C 
+(\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(drop O O c2 (CHead d2 
+(Bind Abbr) u)))) (\lambda (x: C).(\lambda (H3: (eq C c2 (CHead x (Bind Abbr) 
+u))).(\lambda (H4: (csubt g d1 x)).(eq_ind_r C (CHead x (Bind Abbr) u) 
+(\lambda (c: C).(ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: 
+C).(drop O O c (CHead d2 (Bind Abbr) u))))) (ex_intro2 C (\lambda (d2: 
+C).(csubt g d1 d2)) (\lambda (d2: C).(drop O O (CHead x (Bind Abbr) u) (CHead 
+d2 (Bind Abbr) u))) x H4 (drop_refl (CHead x (Bind Abbr) u))) c2 H3)))) 
+H2))))))))) (\lambda (n0: nat).(\lambda (H: ((\forall (c1: C).(\forall (c2: 
+C).((csubt g c1 c2) \to (\forall (d1: C).(\forall (u: T).((drop n0 O c1 
+(CHead d1 (Bind Abbr) u)) \to (ex2 C (\lambda (d2: C).(csubt g d1 d2)) 
+(\lambda (d2: C).(drop n0 O c2 (CHead d2 (Bind Abbr) u)))))))))))).(\lambda 
+(c1: C).(\lambda (c2: C).(\lambda (H0: (csubt g c1 c2)).(csubt_ind g (\lambda 
+(c: C).(\lambda (c0: C).(\forall (d1: C).(\forall (u: T).((drop (S n0) O c 
 (CHead d1 (Bind Abbr) u)) \to (ex2 C (\lambda (d2: C).(csubt g d1 d2)) 
-(\lambda (d2: C).(drop (S n0) O c3 (CHead d2 (Bind Abbr) u))))))))).(\lambda 
-(k: K).(let TMP_81 \def (\lambda (k0: K).(\forall (u: T).(\forall (d1: 
-C).(\forall (u0: T).((drop (S n0) O (CHead c0 k0 u) (CHead d1 (Bind Abbr) 
-u0)) \to (let TMP_75 \def (\lambda (d2: C).(csubt g d1 d2)) in (let TMP_80 
-\def (\lambda (d2: C).(let TMP_76 \def (S n0) in (let TMP_77 \def (CHead c3 
-k0 u) in (let TMP_78 \def (Bind Abbr) in (let TMP_79 \def (CHead d2 TMP_78 
-u0) in (drop TMP_76 O TMP_77 TMP_79)))))) in (ex2 C TMP_75 TMP_80)))))))) in 
-(let TMP_111 \def (\lambda (b: B).(\lambda (u: T).(\lambda (d1: C).(\lambda 
+(\lambda (d2: C).(drop (S n0) O c0 (CHead d2 (Bind Abbr) u))))))))) (\lambda 
+(n1: nat).(\lambda (d1: C).(\lambda (u: T).(\lambda (H1: (drop (S n0) O 
+(CSort n1) (CHead d1 (Bind Abbr) u))).(and3_ind (eq C (CHead d1 (Bind Abbr) 
+u) (CSort n1)) (eq nat (S n0) O) (eq nat O O) (ex2 C (\lambda (d2: C).(csubt 
+g d1 d2)) (\lambda (d2: C).(drop (S n0) O (CSort n1) (CHead d2 (Bind Abbr) 
+u)))) (\lambda (_: (eq C (CHead d1 (Bind Abbr) u) (CSort n1))).(\lambda (H3: 
+(eq nat (S n0) O)).(\lambda (_: (eq nat O O)).(let H5 \def (eq_ind nat (S n0) 
+(\lambda (ee: nat).(match ee with [O \Rightarrow False | (S _) \Rightarrow 
+True])) I O H3) in (False_ind (ex2 C (\lambda (d2: C).(csubt g d1 d2)) 
+(\lambda (d2: C).(drop (S n0) O (CSort n1) (CHead d2 (Bind Abbr) u)))) 
+H5))))) (drop_gen_sort n1 (S n0) O (CHead d1 (Bind Abbr) u) H1)))))) (\lambda 
+(c0: C).(\lambda (c3: C).(\lambda (H1: (csubt g c0 c3)).(\lambda (H2: 
+((\forall (d1: C).(\forall (u: T).((drop (S n0) O c0 (CHead d1 (Bind Abbr) 
+u)) \to (ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(drop (S 
+n0) O c3 (CHead d2 (Bind Abbr) u))))))))).(\lambda (k: K).(K_ind (\lambda 
+(k0: K).(\forall (u: T).(\forall (d1: C).(\forall (u0: T).((drop (S n0) O 
+(CHead c0 k0 u) (CHead d1 (Bind Abbr) u0)) \to (ex2 C (\lambda (d2: C).(csubt 
+g d1 d2)) (\lambda (d2: C).(drop (S n0) O (CHead c3 k0 u) (CHead d2 (Bind 
+Abbr) u0))))))))) (\lambda (b: B).(\lambda (u: T).(\lambda (d1: C).(\lambda 
 (u0: T).(\lambda (H3: (drop (S n0) O (CHead c0 (Bind b) u) (CHead d1 (Bind 
-Abbr) u0))).(let TMP_82 \def (\lambda (d2: C).(csubt g d1 d2)) in (let TMP_85 
-\def (\lambda (d2: C).(let TMP_83 \def (Bind Abbr) in (let TMP_84 \def (CHead 
-d2 TMP_83 u0) in (drop n0 O c3 TMP_84)))) in (let TMP_86 \def (\lambda (d2: 
-C).(csubt g d1 d2)) in (let TMP_92 \def (\lambda (d2: C).(let TMP_87 \def (S 
-n0) in (let TMP_88 \def (Bind b) in (let TMP_89 \def (CHead c3 TMP_88 u) in 
-(let TMP_90 \def (Bind Abbr) in (let TMP_91 \def (CHead d2 TMP_90 u0) in 
-(drop TMP_87 O TMP_89 TMP_91))))))) in (let TMP_93 \def (ex2 C TMP_86 TMP_92) 
-in (let TMP_105 \def (\lambda (x: C).(\lambda (H4: (csubt g d1 x)).(\lambda 
-(H5: (drop n0 O c3 (CHead x (Bind Abbr) u0))).(let TMP_94 \def (\lambda (d2: 
-C).(csubt g d1 d2)) in (let TMP_100 \def (\lambda (d2: C).(let TMP_95 \def (S 
-n0) in (let TMP_96 \def (Bind b) in (let TMP_97 \def (CHead c3 TMP_96 u) in 
-(let TMP_98 \def (Bind Abbr) in (let TMP_99 \def (CHead d2 TMP_98 u0) in 
-(drop TMP_95 O TMP_97 TMP_99))))))) in (let TMP_101 \def (Bind b) in (let 
-TMP_102 \def (Bind Abbr) in (let TMP_103 \def (CHead x TMP_102 u0) in (let 
-TMP_104 \def (drop_drop TMP_101 n0 c3 TMP_103 H5 u) in (ex_intro2 C TMP_94 
-TMP_100 x H4 TMP_104)))))))))) in (let TMP_106 \def (Bind b) in (let TMP_107 
-\def (Bind Abbr) in (let TMP_108 \def (CHead d1 TMP_107 u0) in (let TMP_109 
-\def (drop_gen_drop TMP_106 c0 TMP_108 u n0 H3) in (let TMP_110 \def (H c0 c3 
-H1 d1 u0 TMP_109) in (ex2_ind C TMP_82 TMP_85 TMP_93 TMP_105 
-TMP_110))))))))))))))))) in (let TMP_142 \def (\lambda (f: F).(\lambda (u: 
-T).(\lambda (d1: C).(\lambda (u0: T).(\lambda (H3: (drop (S n0) O (CHead c0 
-(Flat f) u) (CHead d1 (Bind Abbr) u0))).(let TMP_112 \def (\lambda (d2: 
-C).(csubt g d1 d2)) in (let TMP_116 \def (\lambda (d2: C).(let TMP_113 \def 
-(S n0) in (let TMP_114 \def (Bind Abbr) in (let TMP_115 \def (CHead d2 
-TMP_114 u0) in (drop TMP_113 O c3 TMP_115))))) in (let TMP_117 \def (\lambda 
-(d2: C).(csubt g d1 d2)) in (let TMP_123 \def (\lambda (d2: C).(let TMP_118 
-\def (S n0) in (let TMP_119 \def (Flat f) in (let TMP_120 \def (CHead c3 
-TMP_119 u) in (let TMP_121 \def (Bind Abbr) in (let TMP_122 \def (CHead d2 
-TMP_121 u0) in (drop TMP_118 O TMP_120 TMP_122))))))) in (let TMP_124 \def 
-(ex2 C TMP_117 TMP_123) in (let TMP_136 \def (\lambda (x: C).(\lambda (H4: 
-(csubt g d1 x)).(\lambda (H5: (drop (S n0) O c3 (CHead x (Bind Abbr) 
-u0))).(let TMP_125 \def (\lambda (d2: C).(csubt g d1 d2)) in (let TMP_131 
-\def (\lambda (d2: C).(let TMP_126 \def (S n0) in (let TMP_127 \def (Flat f) 
-in (let TMP_128 \def (CHead c3 TMP_127 u) in (let TMP_129 \def (Bind Abbr) in 
-(let TMP_130 \def (CHead d2 TMP_129 u0) in (drop TMP_126 O TMP_128 
-TMP_130))))))) in (let TMP_132 \def (Flat f) in (let TMP_133 \def (Bind Abbr) 
-in (let TMP_134 \def (CHead x TMP_133 u0) in (let TMP_135 \def (drop_drop 
-TMP_132 n0 c3 TMP_134 H5 u) in (ex_intro2 C TMP_125 TMP_131 x H4 
-TMP_135)))))))))) in (let TMP_137 \def (Flat f) in (let TMP_138 \def (Bind 
-Abbr) in (let TMP_139 \def (CHead d1 TMP_138 u0) in (let TMP_140 \def 
-(drop_gen_drop TMP_137 c0 TMP_139 u n0 H3) in (let TMP_141 \def (H2 d1 u0 
-TMP_140) in (ex2_ind C TMP_112 TMP_116 TMP_124 TMP_136 
-TMP_141))))))))))))))))) in (K_ind TMP_81 TMP_111 TMP_142 k))))))))) in (let 
-TMP_173 \def (\lambda (c0: C).(\lambda (c3: C).(\lambda (H1: (csubt g c0 
-c3)).(\lambda (_: ((\forall (d1: C).(\forall (u: T).((drop (S n0) O c0 (CHead 
-d1 (Bind Abbr) u)) \to (ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: 
-C).(drop (S n0) O c3 (CHead d2 (Bind Abbr) u))))))))).(\lambda (b: 
-B).(\lambda (_: (not (eq B b Void))).(\lambda (u1: T).(\lambda (u2: 
-T).(\lambda (d1: C).(\lambda (u: T).(\lambda (H4: (drop (S n0) O (CHead c0 
-(Bind Void) u1) (CHead d1 (Bind Abbr) u))).(let TMP_144 \def (\lambda (d2: 
-C).(csubt g d1 d2)) in (let TMP_147 \def (\lambda (d2: C).(let TMP_145 \def 
-(Bind Abbr) in (let TMP_146 \def (CHead d2 TMP_145 u) in (drop n0 O c3 
-TMP_146)))) in (let TMP_148 \def (\lambda (d2: C).(csubt g d1 d2)) in (let 
-TMP_154 \def (\lambda (d2: C).(let TMP_149 \def (S n0) in (let TMP_150 \def 
-(Bind b) in (let TMP_151 \def (CHead c3 TMP_150 u2) in (let TMP_152 \def 
-(Bind Abbr) in (let TMP_153 \def (CHead d2 TMP_152 u) in (drop TMP_149 O 
-TMP_151 TMP_153))))))) in (let TMP_155 \def (ex2 C TMP_148 TMP_154) in (let 
-TMP_167 \def (\lambda (x: C).(\lambda (H5: (csubt g d1 x)).(\lambda (H6: 
-(drop n0 O c3 (CHead x (Bind Abbr) u))).(let TMP_156 \def (\lambda (d2: 
-C).(csubt g d1 d2)) in (let TMP_162 \def (\lambda (d2: C).(let TMP_157 \def 
-(S n0) in (let TMP_158 \def (Bind b) in (let TMP_159 \def (CHead c3 TMP_158 
-u2) in (let TMP_160 \def (Bind Abbr) in (let TMP_161 \def (CHead d2 TMP_160 
-u) in (drop TMP_157 O TMP_159 TMP_161))))))) in (let TMP_163 \def (Bind b) in 
-(let TMP_164 \def (Bind Abbr) in (let TMP_165 \def (CHead x TMP_164 u) in 
-(let TMP_166 \def (drop_drop TMP_163 n0 c3 TMP_165 H6 u2) in (ex_intro2 C 
-TMP_156 TMP_162 x H5 TMP_166)))))))))) in (let TMP_168 \def (Bind Void) in 
-(let TMP_169 \def (Bind Abbr) in (let TMP_170 \def (CHead d1 TMP_169 u) in 
-(let TMP_171 \def (drop_gen_drop TMP_168 c0 TMP_170 u1 n0 H4) in (let TMP_172 
-\def (H c0 c3 H1 d1 u TMP_171) in (ex2_ind C TMP_144 TMP_147 TMP_155 TMP_167 
-TMP_172))))))))))))))))))))))) in (let TMP_203 \def (\lambda (c0: C).(\lambda 
-(c3: C).(\lambda (H1: (csubt g c0 c3)).(\lambda (_: ((\forall (d1: 
-C).(\forall (u: T).((drop (S n0) O c0 (CHead d1 (Bind Abbr) u)) \to (ex2 C 
-(\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(drop (S n0) O c3 (CHead 
-d2 (Bind Abbr) u))))))))).(\lambda (u: T).(\lambda (t: T).(\lambda (_: (ty3 g 
-c0 u t)).(\lambda (_: (ty3 g c3 u t)).(\lambda (d1: C).(\lambda (u0: 
-T).(\lambda (H5: (drop (S n0) O (CHead c0 (Bind Abst) t) (CHead d1 (Bind 
-Abbr) u0))).(let TMP_174 \def (\lambda (d2: C).(csubt g d1 d2)) in (let 
-TMP_177 \def (\lambda (d2: C).(let TMP_175 \def (Bind Abbr) in (let TMP_176 
-\def (CHead d2 TMP_175 u0) in (drop n0 O c3 TMP_176)))) in (let TMP_178 \def 
-(\lambda (d2: C).(csubt g d1 d2)) in (let TMP_184 \def (\lambda (d2: C).(let 
-TMP_179 \def (S n0) in (let TMP_180 \def (Bind Abbr) in (let TMP_181 \def 
-(CHead c3 TMP_180 u) in (let TMP_182 \def (Bind Abbr) in (let TMP_183 \def 
-(CHead d2 TMP_182 u0) in (drop TMP_179 O TMP_181 TMP_183))))))) in (let 
-TMP_185 \def (ex2 C TMP_178 TMP_184) in (let TMP_197 \def (\lambda (x: 
-C).(\lambda (H6: (csubt g d1 x)).(\lambda (H7: (drop n0 O c3 (CHead x (Bind 
-Abbr) u0))).(let TMP_186 \def (\lambda (d2: C).(csubt g d1 d2)) in (let 
-TMP_192 \def (\lambda (d2: C).(let TMP_187 \def (S n0) in (let TMP_188 \def 
-(Bind Abbr) in (let TMP_189 \def (CHead c3 TMP_188 u) in (let TMP_190 \def 
-(Bind Abbr) in (let TMP_191 \def (CHead d2 TMP_190 u0) in (drop TMP_187 O 
-TMP_189 TMP_191))))))) in (let TMP_193 \def (Bind Abbr) in (let TMP_194 \def 
-(Bind Abbr) in (let TMP_195 \def (CHead x TMP_194 u0) in (let TMP_196 \def 
-(drop_drop TMP_193 n0 c3 TMP_195 H7 u) in (ex_intro2 C TMP_186 TMP_192 x H6 
-TMP_196)))))))))) in (let TMP_198 \def (Bind Abst) in (let TMP_199 \def (Bind 
-Abbr) in (let TMP_200 \def (CHead d1 TMP_199 u0) in (let TMP_201 \def 
-(drop_gen_drop TMP_198 c0 TMP_200 t n0 H5) in (let TMP_202 \def (H c0 c3 H1 
-d1 u0 TMP_201) in (ex2_ind C TMP_174 TMP_177 TMP_185 TMP_197 
-TMP_202))))))))))))))))))))))) in (csubt_ind g TMP_45 TMP_74 TMP_143 TMP_173 
-TMP_203 c1 c2 H0))))))))))) in (nat_ind TMP_5 TMP_39 TMP_204 n))))).
+Abbr) u0))).(ex2_ind C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: 
+C).(drop n0 O c3 (CHead d2 (Bind Abbr) u0))) (ex2 C (\lambda (d2: C).(csubt g 
+d1 d2)) (\lambda (d2: C).(drop (S n0) O (CHead c3 (Bind b) u) (CHead d2 (Bind 
+Abbr) u0)))) (\lambda (x: C).(\lambda (H4: (csubt g d1 x)).(\lambda (H5: 
+(drop n0 O c3 (CHead x (Bind Abbr) u0))).(ex_intro2 C (\lambda (d2: C).(csubt 
+g d1 d2)) (\lambda (d2: C).(drop (S n0) O (CHead c3 (Bind b) u) (CHead d2 
+(Bind Abbr) u0))) x H4 (drop_drop (Bind b) n0 c3 (CHead x (Bind Abbr) u0) H5 
+u))))) (H c0 c3 H1 d1 u0 (drop_gen_drop (Bind b) c0 (CHead d1 (Bind Abbr) u0) 
+u n0 H3)))))))) (\lambda (f: F).(\lambda (u: T).(\lambda (d1: C).(\lambda 
+(u0: T).(\lambda (H3: (drop (S n0) O (CHead c0 (Flat f) u) (CHead d1 (Bind 
+Abbr) u0))).(ex2_ind C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: 
+C).(drop (S n0) O c3 (CHead d2 (Bind Abbr) u0))) (ex2 C (\lambda (d2: 
+C).(csubt g d1 d2)) (\lambda (d2: C).(drop (S n0) O (CHead c3 (Flat f) u) 
+(CHead d2 (Bind Abbr) u0)))) (\lambda (x: C).(\lambda (H4: (csubt g d1 
+x)).(\lambda (H5: (drop (S n0) O c3 (CHead x (Bind Abbr) u0))).(ex_intro2 C 
+(\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(drop (S n0) O (CHead c3 
+(Flat f) u) (CHead d2 (Bind Abbr) u0))) x H4 (drop_drop (Flat f) n0 c3 (CHead 
+x (Bind Abbr) u0) H5 u))))) (H2 d1 u0 (drop_gen_drop (Flat f) c0 (CHead d1 
+(Bind Abbr) u0) u n0 H3)))))))) k)))))) (\lambda (c0: C).(\lambda (c3: 
+C).(\lambda (H1: (csubt g c0 c3)).(\lambda (_: ((\forall (d1: C).(\forall (u: 
+T).((drop (S n0) O c0 (CHead d1 (Bind Abbr) u)) \to (ex2 C (\lambda (d2: 
+C).(csubt g d1 d2)) (\lambda (d2: C).(drop (S n0) O c3 (CHead d2 (Bind Abbr) 
+u))))))))).(\lambda (b: B).(\lambda (_: (not (eq B b Void))).(\lambda (u1: 
+T).(\lambda (u2: T).(\lambda (d1: C).(\lambda (u: T).(\lambda (H4: (drop (S 
+n0) O (CHead c0 (Bind Void) u1) (CHead d1 (Bind Abbr) u))).(ex2_ind C 
+(\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(drop n0 O c3 (CHead d2 
+(Bind Abbr) u))) (ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: 
+C).(drop (S n0) O (CHead c3 (Bind b) u2) (CHead d2 (Bind Abbr) u)))) (\lambda 
+(x: C).(\lambda (H5: (csubt g d1 x)).(\lambda (H6: (drop n0 O c3 (CHead x 
+(Bind Abbr) u))).(ex_intro2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: 
+C).(drop (S n0) O (CHead c3 (Bind b) u2) (CHead d2 (Bind Abbr) u))) x H5 
+(drop_drop (Bind b) n0 c3 (CHead x (Bind Abbr) u) H6 u2))))) (H c0 c3 H1 d1 u 
+(drop_gen_drop (Bind Void) c0 (CHead d1 (Bind Abbr) u) u1 n0 H4)))))))))))))) 
+(\lambda (c0: C).(\lambda (c3: C).(\lambda (H1: (csubt g c0 c3)).(\lambda (_: 
+((\forall (d1: C).(\forall (u: T).((drop (S n0) O c0 (CHead d1 (Bind Abbr) 
+u)) \to (ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(drop (S 
+n0) O c3 (CHead d2 (Bind Abbr) u))))))))).(\lambda (u: T).(\lambda (t: 
+T).(\lambda (_: (ty3 g c0 u t)).(\lambda (_: (ty3 g c3 u t)).(\lambda (d1: 
+C).(\lambda (u0: T).(\lambda (H5: (drop (S n0) O (CHead c0 (Bind Abst) t) 
+(CHead d1 (Bind Abbr) u0))).(ex2_ind C (\lambda (d2: C).(csubt g d1 d2)) 
+(\lambda (d2: C).(drop n0 O c3 (CHead d2 (Bind Abbr) u0))) (ex2 C (\lambda 
+(d2: C).(csubt g d1 d2)) (\lambda (d2: C).(drop (S n0) O (CHead c3 (Bind 
+Abbr) u) (CHead d2 (Bind Abbr) u0)))) (\lambda (x: C).(\lambda (H6: (csubt g 
+d1 x)).(\lambda (H7: (drop n0 O c3 (CHead x (Bind Abbr) u0))).(ex_intro2 C 
+(\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(drop (S n0) O (CHead c3 
+(Bind Abbr) u) (CHead d2 (Bind Abbr) u0))) x H6 (drop_drop (Bind Abbr) n0 c3 
+(CHead x (Bind Abbr) u0) H7 u))))) (H c0 c3 H1 d1 u0 (drop_gen_drop (Bind 
+Abst) c0 (CHead d1 (Bind Abbr) u0) t n0 H5)))))))))))))) c1 c2 H0)))))) n)).
 
 theorem csubt_drop_abst:
  \forall (g: G).(\forall (n: nat).(\forall (c1: C).(\forall (c2: C).((csubt g 
@@ -383,700 +224,356 @@ C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda (u: T).(drop n
 O c2 (CHead d2 (Bind Abbr) u)))) (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u 
 t))) (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))))))))))))
 \def
- \lambda (g: G).(\lambda (n: nat).(let TMP_13 \def (\lambda (n0: 
-nat).(\forall (c1: C).(\forall (c2: C).((csubt g c1 c2) \to (\forall (d1: 
-C).(\forall (t: T).((drop n0 O c1 (CHead d1 (Bind Abst) t)) \to (let TMP_1 
-\def (\lambda (d2: C).(csubt g d1 d2)) in (let TMP_4 \def (\lambda (d2: 
-C).(let TMP_2 \def (Bind Abst) in (let TMP_3 \def (CHead d2 TMP_2 t) in (drop 
-n0 O c2 TMP_3)))) in (let TMP_5 \def (ex2 C TMP_1 TMP_4) in (let TMP_6 \def 
-(\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) in (let TMP_9 \def 
-(\lambda (d2: C).(\lambda (u: T).(let TMP_7 \def (Bind Abbr) in (let TMP_8 
-\def (CHead d2 TMP_7 u) in (drop n0 O c2 TMP_8))))) in (let TMP_10 \def 
-(\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) in (let TMP_11 \def (\lambda 
-(d2: C).(\lambda (u: T).(ty3 g d2 u t))) in (let TMP_12 \def (ex4_2 C T TMP_6 
-TMP_9 TMP_10 TMP_11) in (or TMP_5 TMP_12)))))))))))))))) in (let TMP_171 \def 
-(\lambda (c1: C).(\lambda (c2: C).(\lambda (H: (csubt g c1 c2)).(\lambda (d1: 
-C).(\lambda (t: T).(\lambda (H0: (drop O O c1 (CHead d1 (Bind Abst) t))).(let 
-TMP_14 \def (\lambda (c: C).(csubt g c c2)) in (let TMP_15 \def (Bind Abst) 
-in (let TMP_16 \def (CHead d1 TMP_15 t) in (let TMP_17 \def (Bind Abst) in 
-(let TMP_18 \def (CHead d1 TMP_17 t) in (let TMP_19 \def (drop_gen_refl c1 
-TMP_18 H0) in (let H1 \def (eq_ind C c1 TMP_14 H TMP_16 TMP_19) in (let H2 
-\def (csubt_gen_abst g d1 c2 t H1) in (let TMP_22 \def (\lambda (e2: C).(let 
-TMP_20 \def (Bind Abst) in (let TMP_21 \def (CHead e2 TMP_20 t) in (eq C c2 
-TMP_21)))) in (let TMP_23 \def (\lambda (e2: C).(csubt g d1 e2)) in (let 
-TMP_24 \def (ex2 C TMP_22 TMP_23) in (let TMP_27 \def (\lambda (e2: 
-C).(\lambda (v2: T).(let TMP_25 \def (Bind Abbr) in (let TMP_26 \def (CHead 
-e2 TMP_25 v2) in (eq C c2 TMP_26))))) in (let TMP_28 \def (\lambda (e2: 
-C).(\lambda (_: T).(csubt g d1 e2))) in (let TMP_29 \def (\lambda (_: 
-C).(\lambda (v2: T).(ty3 g d1 v2 t))) in (let TMP_30 \def (\lambda (e2: 
-C).(\lambda (v2: T).(ty3 g e2 v2 t))) in (let TMP_31 \def (ex4_2 C T TMP_27 
-TMP_28 TMP_29 TMP_30) in (let TMP_32 \def (\lambda (d2: C).(csubt g d1 d2)) 
-in (let TMP_35 \def (\lambda (d2: C).(let TMP_33 \def (Bind Abst) in (let 
-TMP_34 \def (CHead d2 TMP_33 t) in (drop O O c2 TMP_34)))) in (let TMP_36 
-\def (ex2 C TMP_32 TMP_35) in (let TMP_37 \def (\lambda (d2: C).(\lambda (_: 
-T).(csubt g d1 d2))) in (let TMP_40 \def (\lambda (d2: C).(\lambda (u: 
-T).(let TMP_38 \def (Bind Abbr) in (let TMP_39 \def (CHead d2 TMP_38 u) in 
-(drop O O c2 TMP_39))))) in (let TMP_41 \def (\lambda (_: C).(\lambda (u: 
-T).(ty3 g d1 u t))) in (let TMP_42 \def (\lambda (d2: C).(\lambda (u: T).(ty3 
-g d2 u t))) in (let TMP_43 \def (ex4_2 C T TMP_37 TMP_40 TMP_41 TMP_42) in 
-(let TMP_44 \def (or TMP_36 TMP_43) in (let TMP_105 \def (\lambda (H3: (ex2 C 
+ \lambda (g: G).(\lambda (n: nat).(nat_ind (\lambda (n0: nat).(\forall (c1: 
+C).(\forall (c2: C).((csubt g c1 c2) \to (\forall (d1: C).(\forall (t: 
+T).((drop n0 O c1 (CHead d1 (Bind Abst) t)) \to (or (ex2 C (\lambda (d2: 
+C).(csubt g d1 d2)) (\lambda (d2: C).(drop n0 O c2 (CHead d2 (Bind Abst) 
+t)))) (ex4_2 C T (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) (\lambda 
+(d2: C).(\lambda (u: T).(drop n0 O c2 (CHead d2 (Bind Abbr) u)))) (\lambda 
+(_: C).(\lambda (u: T).(ty3 g d1 u t))) (\lambda (d2: C).(\lambda (u: T).(ty3 
+g d2 u t)))))))))))) (\lambda (c1: C).(\lambda (c2: C).(\lambda (H: (csubt g 
+c1 c2)).(\lambda (d1: C).(\lambda (t: T).(\lambda (H0: (drop O O c1 (CHead d1 
+(Bind Abst) t))).(let H1 \def (eq_ind C c1 (\lambda (c: C).(csubt g c c2)) H 
+(CHead d1 (Bind Abst) t) (drop_gen_refl c1 (CHead d1 (Bind Abst) t) H0)) in 
+(let H2 \def (csubt_gen_abst g d1 c2 t H1) in (or_ind (ex2 C (\lambda (e2: 
+C).(eq C c2 (CHead e2 (Bind Abst) t))) (\lambda (e2: C).(csubt g d1 e2))) 
+(ex4_2 C T (\lambda (e2: C).(\lambda (v2: T).(eq C c2 (CHead e2 (Bind Abbr) 
+v2)))) (\lambda (e2: C).(\lambda (_: T).(csubt g d1 e2))) (\lambda (_: 
+C).(\lambda (v2: T).(ty3 g d1 v2 t))) (\lambda (e2: C).(\lambda (v2: T).(ty3 
+g e2 v2 t)))) (or (ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: 
+C).(drop O O c2 (CHead d2 (Bind Abst) t)))) (ex4_2 C T (\lambda (d2: 
+C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda (u: T).(drop O 
+O c2 (CHead d2 (Bind Abbr) u)))) (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u 
+t))) (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))))) (\lambda (H3: (ex2 C 
 (\lambda (e2: C).(eq C c2 (CHead e2 (Bind Abst) t))) (\lambda (e2: C).(csubt 
-g d1 e2)))).(let TMP_47 \def (\lambda (e2: C).(let TMP_45 \def (Bind Abst) in 
-(let TMP_46 \def (CHead e2 TMP_45 t) in (eq C c2 TMP_46)))) in (let TMP_48 
-\def (\lambda (e2: C).(csubt g d1 e2)) in (let TMP_49 \def (\lambda (d2: 
-C).(csubt g d1 d2)) in (let TMP_52 \def (\lambda (d2: C).(let TMP_50 \def 
-(Bind Abst) in (let TMP_51 \def (CHead d2 TMP_50 t) in (drop O O c2 
-TMP_51)))) in (let TMP_53 \def (ex2 C TMP_49 TMP_52) in (let TMP_54 \def 
-(\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) in (let TMP_57 \def 
-(\lambda (d2: C).(\lambda (u: T).(let TMP_55 \def (Bind Abbr) in (let TMP_56 
-\def (CHead d2 TMP_55 u) in (drop O O c2 TMP_56))))) in (let TMP_58 \def 
-(\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) in (let TMP_59 \def (\lambda 
-(d2: C).(\lambda (u: T).(ty3 g d2 u t))) in (let TMP_60 \def (ex4_2 C T 
-TMP_54 TMP_57 TMP_58 TMP_59) in (let TMP_61 \def (or TMP_53 TMP_60) in (let 
-TMP_104 \def (\lambda (x: C).(\lambda (H4: (eq C c2 (CHead x (Bind Abst) 
-t))).(\lambda (H5: (csubt g d1 x)).(let TMP_62 \def (Bind Abst) in (let 
-TMP_63 \def (CHead x TMP_62 t) in (let TMP_76 \def (\lambda (c: C).(let 
-TMP_64 \def (\lambda (d2: C).(csubt g d1 d2)) in (let TMP_67 \def (\lambda 
-(d2: C).(let TMP_65 \def (Bind Abst) in (let TMP_66 \def (CHead d2 TMP_65 t) 
-in (drop O O c TMP_66)))) in (let TMP_68 \def (ex2 C TMP_64 TMP_67) in (let 
-TMP_69 \def (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) in (let TMP_72 
-\def (\lambda (d2: C).(\lambda (u: T).(let TMP_70 \def (Bind Abbr) in (let 
-TMP_71 \def (CHead d2 TMP_70 u) in (drop O O c TMP_71))))) in (let TMP_73 
-\def (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) in (let TMP_74 \def 
-(\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))) in (let TMP_75 \def (ex4_2 
-C T TMP_69 TMP_72 TMP_73 TMP_74) in (or TMP_68 TMP_75)))))))))) in (let 
-TMP_77 \def (\lambda (d2: C).(csubt g d1 d2)) in (let TMP_82 \def (\lambda 
-(d2: C).(let TMP_78 \def (Bind Abst) in (let TMP_79 \def (CHead x TMP_78 t) 
-in (let TMP_80 \def (Bind Abst) in (let TMP_81 \def (CHead d2 TMP_80 t) in 
-(drop O O TMP_79 TMP_81)))))) in (let TMP_83 \def (ex2 C TMP_77 TMP_82) in 
-(let TMP_84 \def (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) in (let 
-TMP_89 \def (\lambda (d2: C).(\lambda (u: T).(let TMP_85 \def (Bind Abst) in 
-(let TMP_86 \def (CHead x TMP_85 t) in (let TMP_87 \def (Bind Abbr) in (let 
-TMP_88 \def (CHead d2 TMP_87 u) in (drop O O TMP_86 TMP_88))))))) in (let 
-TMP_90 \def (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) in (let TMP_91 
-\def (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))) in (let TMP_92 \def 
-(ex4_2 C T TMP_84 TMP_89 TMP_90 TMP_91) in (let TMP_93 \def (\lambda (d2: 
-C).(csubt g d1 d2)) in (let TMP_98 \def (\lambda (d2: C).(let TMP_94 \def 
-(Bind Abst) in (let TMP_95 \def (CHead x TMP_94 t) in (let TMP_96 \def (Bind 
-Abst) in (let TMP_97 \def (CHead d2 TMP_96 t) in (drop O O TMP_95 
-TMP_97)))))) in (let TMP_99 \def (Bind Abst) in (let TMP_100 \def (CHead x 
-TMP_99 t) in (let TMP_101 \def (drop_refl TMP_100) in (let TMP_102 \def 
-(ex_intro2 C TMP_93 TMP_98 x H5 TMP_101) in (let TMP_103 \def (or_introl 
-TMP_83 TMP_92 TMP_102) in (eq_ind_r C TMP_63 TMP_76 TMP_103 c2 
-H4)))))))))))))))))))))) in (ex2_ind C TMP_47 TMP_48 TMP_61 TMP_104 
-H3)))))))))))))) in (let TMP_170 \def (\lambda (H3: (ex4_2 C T (\lambda (e2: 
-C).(\lambda (v2: T).(eq C c2 (CHead e2 (Bind Abbr) v2)))) (\lambda (e2: 
-C).(\lambda (_: T).(csubt g d1 e2))) (\lambda (_: C).(\lambda (v2: T).(ty3 g 
-d1 v2 t))) (\lambda (e2: C).(\lambda (v2: T).(ty3 g e2 v2 t))))).(let TMP_108 
-\def (\lambda (e2: C).(\lambda (v2: T).(let TMP_106 \def (Bind Abbr) in (let 
-TMP_107 \def (CHead e2 TMP_106 v2) in (eq C c2 TMP_107))))) in (let TMP_109 
-\def (\lambda (e2: C).(\lambda (_: T).(csubt g d1 e2))) in (let TMP_110 \def 
-(\lambda (_: C).(\lambda (v2: T).(ty3 g d1 v2 t))) in (let TMP_111 \def 
-(\lambda (e2: C).(\lambda (v2: T).(ty3 g e2 v2 t))) in (let TMP_112 \def 
-(\lambda (d2: C).(csubt g d1 d2)) in (let TMP_115 \def (\lambda (d2: C).(let 
-TMP_113 \def (Bind Abst) in (let TMP_114 \def (CHead d2 TMP_113 t) in (drop O 
-O c2 TMP_114)))) in (let TMP_116 \def (ex2 C TMP_112 TMP_115) in (let TMP_117 
-\def (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) in (let TMP_120 \def 
-(\lambda (d2: C).(\lambda (u: T).(let TMP_118 \def (Bind Abbr) in (let 
-TMP_119 \def (CHead d2 TMP_118 u) in (drop O O c2 TMP_119))))) in (let 
-TMP_121 \def (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) in (let TMP_122 
-\def (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))) in (let TMP_123 \def 
-(ex4_2 C T TMP_117 TMP_120 TMP_121 TMP_122) in (let TMP_124 \def (or TMP_116 
-TMP_123) in (let TMP_169 \def (\lambda (x0: C).(\lambda (x1: T).(\lambda (H4: 
-(eq C c2 (CHead x0 (Bind Abbr) x1))).(\lambda (H5: (csubt g d1 x0)).(\lambda 
-(H6: (ty3 g d1 x1 t)).(\lambda (H7: (ty3 g x0 x1 t)).(let TMP_125 \def (Bind 
-Abbr) in (let TMP_126 \def (CHead x0 TMP_125 x1) in (let TMP_139 \def 
-(\lambda (c: C).(let TMP_127 \def (\lambda (d2: C).(csubt g d1 d2)) in (let 
-TMP_130 \def (\lambda (d2: C).(let TMP_128 \def (Bind Abst) in (let TMP_129 
-\def (CHead d2 TMP_128 t) in (drop O O c TMP_129)))) in (let TMP_131 \def 
-(ex2 C TMP_127 TMP_130) in (let TMP_132 \def (\lambda (d2: C).(\lambda (_: 
-T).(csubt g d1 d2))) in (let TMP_135 \def (\lambda (d2: C).(\lambda (u: 
-T).(let TMP_133 \def (Bind Abbr) in (let TMP_134 \def (CHead d2 TMP_133 u) in 
-(drop O O c TMP_134))))) in (let TMP_136 \def (\lambda (_: C).(\lambda (u: 
-T).(ty3 g d1 u t))) in (let TMP_137 \def (\lambda (d2: C).(\lambda (u: 
-T).(ty3 g d2 u t))) in (let TMP_138 \def (ex4_2 C T TMP_132 TMP_135 TMP_136 
-TMP_137) in (or TMP_131 TMP_138)))))))))) in (let TMP_140 \def (\lambda (d2: 
-C).(csubt g d1 d2)) in (let TMP_145 \def (\lambda (d2: C).(let TMP_141 \def 
-(Bind Abbr) in (let TMP_142 \def (CHead x0 TMP_141 x1) in (let TMP_143 \def 
-(Bind Abst) in (let TMP_144 \def (CHead d2 TMP_143 t) in (drop O O TMP_142 
-TMP_144)))))) in (let TMP_146 \def (ex2 C TMP_140 TMP_145) in (let TMP_147 
-\def (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) in (let TMP_152 \def 
-(\lambda (d2: C).(\lambda (u: T).(let TMP_148 \def (Bind Abbr) in (let 
-TMP_149 \def (CHead x0 TMP_148 x1) in (let TMP_150 \def (Bind Abbr) in (let 
-TMP_151 \def (CHead d2 TMP_150 u) in (drop O O TMP_149 TMP_151))))))) in (let 
-TMP_153 \def (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) in (let TMP_154 
-\def (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))) in (let TMP_155 \def 
-(ex4_2 C T TMP_147 TMP_152 TMP_153 TMP_154) in (let TMP_156 \def (\lambda 
-(d2: C).(\lambda (_: T).(csubt g d1 d2))) in (let TMP_161 \def (\lambda (d2: 
-C).(\lambda (u: T).(let TMP_157 \def (Bind Abbr) in (let TMP_158 \def (CHead 
-x0 TMP_157 x1) in (let TMP_159 \def (Bind Abbr) in (let TMP_160 \def (CHead 
-d2 TMP_159 u) in (drop O O TMP_158 TMP_160))))))) in (let TMP_162 \def 
-(\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) in (let TMP_163 \def 
-(\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))) in (let TMP_164 \def (Bind 
-Abbr) in (let TMP_165 \def (CHead x0 TMP_164 x1) in (let TMP_166 \def 
-(drop_refl TMP_165) in (let TMP_167 \def (ex4_2_intro C T TMP_156 TMP_161 
-TMP_162 TMP_163 x0 x1 H5 TMP_166 H6 H7) in (let TMP_168 \def (or_intror 
-TMP_146 TMP_155 TMP_167) in (eq_ind_r C TMP_126 TMP_139 TMP_168 c2 
-H4))))))))))))))))))))))))))) in (ex4_2_ind C T TMP_108 TMP_109 TMP_110 
-TMP_111 TMP_124 TMP_169 H3)))))))))))))))) in (or_ind TMP_24 TMP_31 TMP_44 
-TMP_105 TMP_170 H2)))))))))))))))))))))))))))))))))) in (let TMP_862 \def 
-(\lambda (n0: nat).(\lambda (H: ((\forall (c1: C).(\forall (c2: C).((csubt g 
-c1 c2) \to (\forall (d1: C).(\forall (t: T).((drop n0 O c1 (CHead d1 (Bind 
-Abst) t)) \to (or (ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: 
-C).(drop n0 O c2 (CHead d2 (Bind Abst) t)))) (ex4_2 C T (\lambda (d2: 
-C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda (u: T).(drop 
-n0 O c2 (CHead d2 (Bind Abbr) u)))) (\lambda (_: C).(\lambda (u: T).(ty3 g d1 
-u t))) (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))))))))))))).(\lambda 
-(c1: C).(\lambda (c2: C).(\lambda (H0: (csubt g c1 c2)).(let TMP_186 \def 
-(\lambda (c: C).(\lambda (c0: C).(\forall (d1: C).(\forall (t: T).((drop (S 
-n0) O c (CHead d1 (Bind Abst) t)) \to (let TMP_172 \def (\lambda (d2: 
-C).(csubt g d1 d2)) in (let TMP_176 \def (\lambda (d2: C).(let TMP_173 \def 
-(S n0) in (let TMP_174 \def (Bind Abst) in (let TMP_175 \def (CHead d2 
-TMP_174 t) in (drop TMP_173 O c0 TMP_175))))) in (let TMP_177 \def (ex2 C 
-TMP_172 TMP_176) in (let TMP_178 \def (\lambda (d2: C).(\lambda (_: T).(csubt 
-g d1 d2))) in (let TMP_182 \def (\lambda (d2: C).(\lambda (u: T).(let TMP_179 
-\def (S n0) in (let TMP_180 \def (Bind Abbr) in (let TMP_181 \def (CHead d2 
-TMP_180 u) in (drop TMP_179 O c0 TMP_181)))))) in (let TMP_183 \def (\lambda 
-(_: C).(\lambda (u: T).(ty3 g d1 u t))) in (let TMP_184 \def (\lambda (d2: 
-C).(\lambda (u: T).(ty3 g d2 u t))) in (let TMP_185 \def (ex4_2 C T TMP_178 
-TMP_182 TMP_183 TMP_184) in (or TMP_177 TMP_185)))))))))))))) in (let TMP_235 
-\def (\lambda (n1: nat).(\lambda (d1: C).(\lambda (t: T).(\lambda (H1: (drop 
-(S n0) O (CSort n1) (CHead d1 (Bind Abst) t))).(let TMP_187 \def (Bind Abst) 
-in (let TMP_188 \def (CHead d1 TMP_187 t) in (let TMP_189 \def (CSort n1) in 
-(let TMP_190 \def (eq C TMP_188 TMP_189) in (let TMP_191 \def (S n0) in (let 
-TMP_192 \def (eq nat TMP_191 O) in (let TMP_193 \def (eq nat O O) in (let 
-TMP_194 \def (\lambda (d2: C).(csubt g d1 d2)) in (let TMP_199 \def (\lambda 
-(d2: C).(let TMP_195 \def (S n0) in (let TMP_196 \def (CSort n1) in (let 
-TMP_197 \def (Bind Abst) in (let TMP_198 \def (CHead d2 TMP_197 t) in (drop 
-TMP_195 O TMP_196 TMP_198)))))) in (let TMP_200 \def (ex2 C TMP_194 TMP_199) 
-in (let TMP_201 \def (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) in 
-(let TMP_206 \def (\lambda (d2: C).(\lambda (u: T).(let TMP_202 \def (S n0) 
-in (let TMP_203 \def (CSort n1) in (let TMP_204 \def (Bind Abbr) in (let 
-TMP_205 \def (CHead d2 TMP_204 u) in (drop TMP_202 O TMP_203 TMP_205))))))) 
-in (let TMP_207 \def (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) in (let 
-TMP_208 \def (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))) in (let 
-TMP_209 \def (ex4_2 C T TMP_201 TMP_206 TMP_207 TMP_208) in (let TMP_210 \def 
-(or TMP_200 TMP_209) in (let TMP_230 \def (\lambda (_: (eq C (CHead d1 (Bind 
-Abst) t) (CSort n1))).(\lambda (H3: (eq nat (S n0) O)).(\lambda (_: (eq nat O 
-O)).(let TMP_211 \def (S n0) in (let TMP_212 \def (\lambda (ee: nat).(match 
-ee with [O \Rightarrow False | (S _) \Rightarrow True])) in (let H5 \def 
-(eq_ind nat TMP_211 TMP_212 I O H3) in (let TMP_213 \def (\lambda (d2: 
-C).(csubt g d1 d2)) in (let TMP_218 \def (\lambda (d2: C).(let TMP_214 \def 
-(S n0) in (let TMP_215 \def (CSort n1) in (let TMP_216 \def (Bind Abst) in 
-(let TMP_217 \def (CHead d2 TMP_216 t) in (drop TMP_214 O TMP_215 
-TMP_217)))))) in (let TMP_219 \def (ex2 C TMP_213 TMP_218) in (let TMP_220 
-\def (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) in (let TMP_225 \def 
-(\lambda (d2: C).(\lambda (u: T).(let TMP_221 \def (S n0) in (let TMP_222 
-\def (CSort n1) in (let TMP_223 \def (Bind Abbr) in (let TMP_224 \def (CHead 
-d2 TMP_223 u) in (drop TMP_221 O TMP_222 TMP_224))))))) in (let TMP_226 \def 
-(\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) in (let TMP_227 \def 
-(\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))) in (let TMP_228 \def (ex4_2 
-C T TMP_220 TMP_225 TMP_226 TMP_227) in (let TMP_229 \def (or TMP_219 
-TMP_228) in (False_ind TMP_229 H5)))))))))))))))) in (let TMP_231 \def (S n0) 
-in (let TMP_232 \def (Bind Abst) in (let TMP_233 \def (CHead d1 TMP_232 t) in 
-(let TMP_234 \def (drop_gen_sort n1 TMP_231 O TMP_233 H1) in (and3_ind 
-TMP_190 TMP_192 TMP_193 TMP_210 TMP_230 TMP_234)))))))))))))))))))))))))) in 
-(let TMP_559 \def (\lambda (c0: C).(\lambda (c3: C).(\lambda (H1: (csubt g c0 
-c3)).(\lambda (H2: ((\forall (d1: C).(\forall (t: T).((drop (S n0) O c0 
-(CHead d1 (Bind Abst) t)) \to (or (ex2 C (\lambda (d2: C).(csubt g d1 d2)) 
-(\lambda (d2: C).(drop (S n0) O c3 (CHead d2 (Bind Abst) t)))) (ex4_2 C T 
+g d1 e2)))).(ex2_ind C (\lambda (e2: C).(eq C c2 (CHead e2 (Bind Abst) t))) 
+(\lambda (e2: C).(csubt g d1 e2)) (or (ex2 C (\lambda (d2: C).(csubt g d1 
+d2)) (\lambda (d2: C).(drop O O c2 (CHead d2 (Bind Abst) t)))) (ex4_2 C T 
 (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda 
-(u: T).(drop (S n0) O c3 (CHead d2 (Bind Abbr) u)))) (\lambda (_: C).(\lambda 
-(u: T).(ty3 g d1 u t))) (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u 
-t)))))))))).(\lambda (k: K).(let TMP_252 \def (\lambda (k0: K).(\forall (u: 
-T).(\forall (d1: C).(\forall (t: T).((drop (S n0) O (CHead c0 k0 u) (CHead d1 
-(Bind Abst) t)) \to (let TMP_236 \def (\lambda (d2: C).(csubt g d1 d2)) in 
-(let TMP_241 \def (\lambda (d2: C).(let TMP_237 \def (S n0) in (let TMP_238 
-\def (CHead c3 k0 u) in (let TMP_239 \def (Bind Abst) in (let TMP_240 \def 
-(CHead d2 TMP_239 t) in (drop TMP_237 O TMP_238 TMP_240)))))) in (let TMP_242 
-\def (ex2 C TMP_236 TMP_241) in (let TMP_243 \def (\lambda (d2: C).(\lambda 
-(_: T).(csubt g d1 d2))) in (let TMP_248 \def (\lambda (d2: C).(\lambda (u0: 
-T).(let TMP_244 \def (S n0) in (let TMP_245 \def (CHead c3 k0 u) in (let 
-TMP_246 \def (Bind Abbr) in (let TMP_247 \def (CHead d2 TMP_246 u0) in (drop 
-TMP_244 O TMP_245 TMP_247))))))) in (let TMP_249 \def (\lambda (_: 
-C).(\lambda (u0: T).(ty3 g d1 u0 t))) in (let TMP_250 \def (\lambda (d2: 
-C).(\lambda (u0: T).(ty3 g d2 u0 t))) in (let TMP_251 \def (ex4_2 C T TMP_243 
-TMP_248 TMP_249 TMP_250) in (or TMP_242 TMP_251)))))))))))))) in (let TMP_403 
-\def (\lambda (b: B).(\lambda (u: T).(\lambda (d1: C).(\lambda (t: 
-T).(\lambda (H3: (drop (S n0) O (CHead c0 (Bind b) u) (CHead d1 (Bind Abst) 
-t))).(let TMP_253 \def (\lambda (d2: C).(csubt g d1 d2)) in (let TMP_256 \def 
-(\lambda (d2: C).(let TMP_254 \def (Bind Abst) in (let TMP_255 \def (CHead d2 
-TMP_254 t) in (drop n0 O c3 TMP_255)))) in (let TMP_257 \def (ex2 C TMP_253 
-TMP_256) in (let TMP_258 \def (\lambda (d2: C).(\lambda (_: T).(csubt g d1 
-d2))) in (let TMP_261 \def (\lambda (d2: C).(\lambda (u0: T).(let TMP_259 
-\def (Bind Abbr) in (let TMP_260 \def (CHead d2 TMP_259 u0) in (drop n0 O c3 
-TMP_260))))) in (let TMP_262 \def (\lambda (_: C).(\lambda (u0: T).(ty3 g d1 
-u0 t))) in (let TMP_263 \def (\lambda (d2: C).(\lambda (u0: T).(ty3 g d2 u0 
-t))) in (let TMP_264 \def (ex4_2 C T TMP_258 TMP_261 TMP_262 TMP_263) in (let 
-TMP_265 \def (\lambda (d2: C).(csubt g d1 d2)) in (let TMP_271 \def (\lambda 
-(d2: C).(let TMP_266 \def (S n0) in (let TMP_267 \def (Bind b) in (let 
-TMP_268 \def (CHead c3 TMP_267 u) in (let TMP_269 \def (Bind Abst) in (let 
-TMP_270 \def (CHead d2 TMP_269 t) in (drop TMP_266 O TMP_268 TMP_270))))))) 
-in (let TMP_272 \def (ex2 C TMP_265 TMP_271) in (let TMP_273 \def (\lambda 
-(d2: C).(\lambda (_: T).(csubt g d1 d2))) in (let TMP_279 \def (\lambda (d2: 
-C).(\lambda (u0: T).(let TMP_274 \def (S n0) in (let TMP_275 \def (Bind b) in 
-(let TMP_276 \def (CHead c3 TMP_275 u) in (let TMP_277 \def (Bind Abbr) in 
-(let TMP_278 \def (CHead d2 TMP_277 u0) in (drop TMP_274 O TMP_276 
-TMP_278)))))))) in (let TMP_280 \def (\lambda (_: C).(\lambda (u0: T).(ty3 g 
-d1 u0 t))) in (let TMP_281 \def (\lambda (d2: C).(\lambda (u0: T).(ty3 g d2 
-u0 t))) in (let TMP_282 \def (ex4_2 C T TMP_273 TMP_279 TMP_280 TMP_281) in 
-(let TMP_283 \def (or TMP_272 TMP_282) in (let TMP_338 \def (\lambda (H4: 
-(ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(drop n0 O c3 
-(CHead d2 (Bind Abst) t))))).(let TMP_284 \def (\lambda (d2: C).(csubt g d1 
-d2)) in (let TMP_287 \def (\lambda (d2: C).(let TMP_285 \def (Bind Abst) in 
-(let TMP_286 \def (CHead d2 TMP_285 t) in (drop n0 O c3 TMP_286)))) in (let 
-TMP_288 \def (\lambda (d2: C).(csubt g d1 d2)) in (let TMP_294 \def (\lambda 
-(d2: C).(let TMP_289 \def (S n0) in (let TMP_290 \def (Bind b) in (let 
-TMP_291 \def (CHead c3 TMP_290 u) in (let TMP_292 \def (Bind Abst) in (let 
-TMP_293 \def (CHead d2 TMP_292 t) in (drop TMP_289 O TMP_291 TMP_293))))))) 
-in (let TMP_295 \def (ex2 C TMP_288 TMP_294) in (let TMP_296 \def (\lambda 
-(d2: C).(\lambda (_: T).(csubt g d1 d2))) in (let TMP_302 \def (\lambda (d2: 
-C).(\lambda (u0: T).(let TMP_297 \def (S n0) in (let TMP_298 \def (Bind b) in 
-(let TMP_299 \def (CHead c3 TMP_298 u) in (let TMP_300 \def (Bind Abbr) in 
-(let TMP_301 \def (CHead d2 TMP_300 u0) in (drop TMP_297 O TMP_299 
-TMP_301)))))))) in (let TMP_303 \def (\lambda (_: C).(\lambda (u0: T).(ty3 g 
-d1 u0 t))) in (let TMP_304 \def (\lambda (d2: C).(\lambda (u0: T).(ty3 g d2 
-u0 t))) in (let TMP_305 \def (ex4_2 C T TMP_296 TMP_302 TMP_303 TMP_304) in 
-(let TMP_306 \def (or TMP_295 TMP_305) in (let TMP_337 \def (\lambda (x: 
-C).(\lambda (H5: (csubt g d1 x)).(\lambda (H6: (drop n0 O c3 (CHead x (Bind 
-Abst) t))).(let TMP_307 \def (\lambda (d2: C).(csubt g d1 d2)) in (let 
-TMP_313 \def (\lambda (d2: C).(let TMP_308 \def (S n0) in (let TMP_309 \def 
-(Bind b) in (let TMP_310 \def (CHead c3 TMP_309 u) in (let TMP_311 \def (Bind 
-Abst) in (let TMP_312 \def (CHead d2 TMP_311 t) in (drop TMP_308 O TMP_310 
-TMP_312))))))) in (let TMP_314 \def (ex2 C TMP_307 TMP_313) in (let TMP_315 
-\def (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) in (let TMP_321 \def 
-(\lambda (d2: C).(\lambda (u0: T).(let TMP_316 \def (S n0) in (let TMP_317 
-\def (Bind b) in (let TMP_318 \def (CHead c3 TMP_317 u) in (let TMP_319 \def 
-(Bind Abbr) in (let TMP_320 \def (CHead d2 TMP_319 u0) in (drop TMP_316 O 
-TMP_318 TMP_320)))))))) in (let TMP_322 \def (\lambda (_: C).(\lambda (u0: 
-T).(ty3 g d1 u0 t))) in (let TMP_323 \def (\lambda (d2: C).(\lambda (u0: 
-T).(ty3 g d2 u0 t))) in (let TMP_324 \def (ex4_2 C T TMP_315 TMP_321 TMP_322 
-TMP_323) in (let TMP_325 \def (\lambda (d2: C).(csubt g d1 d2)) in (let 
-TMP_331 \def (\lambda (d2: C).(let TMP_326 \def (S n0) in (let TMP_327 \def 
-(Bind b) in (let TMP_328 \def (CHead c3 TMP_327 u) in (let TMP_329 \def (Bind 
-Abst) in (let TMP_330 \def (CHead d2 TMP_329 t) in (drop TMP_326 O TMP_328 
-TMP_330))))))) in (let TMP_332 \def (Bind b) in (let TMP_333 \def (Bind Abst) 
-in (let TMP_334 \def (CHead x TMP_333 t) in (let TMP_335 \def (drop_drop 
-TMP_332 n0 c3 TMP_334 H6 u) in (let TMP_336 \def (ex_intro2 C TMP_325 TMP_331 
-x H5 TMP_335) in (or_introl TMP_314 TMP_324 TMP_336))))))))))))))))))) in 
-(ex2_ind C TMP_284 TMP_287 TMP_306 TMP_337 H4)))))))))))))) in (let TMP_397 
-\def (\lambda (H4: (ex4_2 C T (\lambda (d2: C).(\lambda (_: T).(csubt g d1 
-d2))) (\lambda (d2: C).(\lambda (u0: T).(drop n0 O c3 (CHead d2 (Bind Abbr) 
-u0)))) (\lambda (_: C).(\lambda (u0: T).(ty3 g d1 u0 t))) (\lambda (d2: 
-C).(\lambda (u0: T).(ty3 g d2 u0 t))))).(let TMP_339 \def (\lambda (d2: 
-C).(\lambda (_: T).(csubt g d1 d2))) in (let TMP_342 \def (\lambda (d2: 
-C).(\lambda (u0: T).(let TMP_340 \def (Bind Abbr) in (let TMP_341 \def (CHead 
-d2 TMP_340 u0) in (drop n0 O c3 TMP_341))))) in (let TMP_343 \def (\lambda 
-(_: C).(\lambda (u0: T).(ty3 g d1 u0 t))) in (let TMP_344 \def (\lambda (d2: 
-C).(\lambda (u0: T).(ty3 g d2 u0 t))) in (let TMP_345 \def (\lambda (d2: 
-C).(csubt g d1 d2)) in (let TMP_351 \def (\lambda (d2: C).(let TMP_346 \def 
-(S n0) in (let TMP_347 \def (Bind b) in (let TMP_348 \def (CHead c3 TMP_347 
-u) in (let TMP_349 \def (Bind Abst) in (let TMP_350 \def (CHead d2 TMP_349 t) 
-in (drop TMP_346 O TMP_348 TMP_350))))))) in (let TMP_352 \def (ex2 C TMP_345 
-TMP_351) in (let TMP_353 \def (\lambda (d2: C).(\lambda (_: T).(csubt g d1 
-d2))) in (let TMP_359 \def (\lambda (d2: C).(\lambda (u0: T).(let TMP_354 
-\def (S n0) in (let TMP_355 \def (Bind b) in (let TMP_356 \def (CHead c3 
-TMP_355 u) in (let TMP_357 \def (Bind Abbr) in (let TMP_358 \def (CHead d2 
-TMP_357 u0) in (drop TMP_354 O TMP_356 TMP_358)))))))) in (let TMP_360 \def 
-(\lambda (_: C).(\lambda (u0: T).(ty3 g d1 u0 t))) in (let TMP_361 \def 
-(\lambda (d2: C).(\lambda (u0: T).(ty3 g d2 u0 t))) in (let TMP_362 \def 
-(ex4_2 C T TMP_353 TMP_359 TMP_360 TMP_361) in (let TMP_363 \def (or TMP_352 
-TMP_362) in (let TMP_396 \def (\lambda (x0: C).(\lambda (x1: T).(\lambda (H5: 
-(csubt g d1 x0)).(\lambda (H6: (drop n0 O c3 (CHead x0 (Bind Abbr) 
-x1))).(\lambda (H7: (ty3 g d1 x1 t)).(\lambda (H8: (ty3 g x0 x1 t)).(let 
-TMP_364 \def (\lambda (d2: C).(csubt g d1 d2)) in (let TMP_370 \def (\lambda 
-(d2: C).(let TMP_365 \def (S n0) in (let TMP_366 \def (Bind b) in (let 
-TMP_367 \def (CHead c3 TMP_366 u) in (let TMP_368 \def (Bind Abst) in (let 
-TMP_369 \def (CHead d2 TMP_368 t) in (drop TMP_365 O TMP_367 TMP_369))))))) 
-in (let TMP_371 \def (ex2 C TMP_364 TMP_370) in (let TMP_372 \def (\lambda 
-(d2: C).(\lambda (_: T).(csubt g d1 d2))) in (let TMP_378 \def (\lambda (d2: 
-C).(\lambda (u0: T).(let TMP_373 \def (S n0) in (let TMP_374 \def (Bind b) in 
-(let TMP_375 \def (CHead c3 TMP_374 u) in (let TMP_376 \def (Bind Abbr) in 
-(let TMP_377 \def (CHead d2 TMP_376 u0) in (drop TMP_373 O TMP_375 
-TMP_377)))))))) in (let TMP_379 \def (\lambda (_: C).(\lambda (u0: T).(ty3 g 
-d1 u0 t))) in (let TMP_380 \def (\lambda (d2: C).(\lambda (u0: T).(ty3 g d2 
-u0 t))) in (let TMP_381 \def (ex4_2 C T TMP_372 TMP_378 TMP_379 TMP_380) in 
-(let TMP_382 \def (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) in (let 
-TMP_388 \def (\lambda (d2: C).(\lambda (u0: T).(let TMP_383 \def (S n0) in 
-(let TMP_384 \def (Bind b) in (let TMP_385 \def (CHead c3 TMP_384 u) in (let 
-TMP_386 \def (Bind Abbr) in (let TMP_387 \def (CHead d2 TMP_386 u0) in (drop 
-TMP_383 O TMP_385 TMP_387)))))))) in (let TMP_389 \def (\lambda (_: 
-C).(\lambda (u0: T).(ty3 g d1 u0 t))) in (let TMP_390 \def (\lambda (d2: 
-C).(\lambda (u0: T).(ty3 g d2 u0 t))) in (let TMP_391 \def (Bind b) in (let 
-TMP_392 \def (Bind Abbr) in (let TMP_393 \def (CHead x0 TMP_392 x1) in (let 
-TMP_394 \def (drop_drop TMP_391 n0 c3 TMP_393 H6 u) in (let TMP_395 \def 
-(ex4_2_intro C T TMP_382 TMP_388 TMP_389 TMP_390 x0 x1 H5 TMP_394 H7 H8) in 
-(or_intror TMP_371 TMP_381 TMP_395)))))))))))))))))))))))) in (ex4_2_ind C T 
-TMP_339 TMP_342 TMP_343 TMP_344 TMP_363 TMP_396 H4)))))))))))))))) in (let 
-TMP_398 \def (Bind b) in (let TMP_399 \def (Bind Abst) in (let TMP_400 \def 
-(CHead d1 TMP_399 t) in (let TMP_401 \def (drop_gen_drop TMP_398 c0 TMP_400 u 
-n0 H3) in (let TMP_402 \def (H c0 c3 H1 d1 t TMP_401) in (or_ind TMP_257 
-TMP_264 TMP_283 TMP_338 TMP_397 TMP_402)))))))))))))))))))))))))))))) in (let 
-TMP_558 \def (\lambda (f: F).(\lambda (u: T).(\lambda (d1: C).(\lambda (t: 
-T).(\lambda (H3: (drop (S n0) O (CHead c0 (Flat f) u) (CHead d1 (Bind Abst) 
-t))).(let TMP_404 \def (\lambda (d2: C).(csubt g d1 d2)) in (let TMP_408 \def 
-(\lambda (d2: C).(let TMP_405 \def (S n0) in (let TMP_406 \def (Bind Abst) in 
-(let TMP_407 \def (CHead d2 TMP_406 t) in (drop TMP_405 O c3 TMP_407))))) in 
-(let TMP_409 \def (ex2 C TMP_404 TMP_408) in (let TMP_410 \def (\lambda (d2: 
-C).(\lambda (_: T).(csubt g d1 d2))) in (let TMP_414 \def (\lambda (d2: 
-C).(\lambda (u0: T).(let TMP_411 \def (S n0) in (let TMP_412 \def (Bind Abbr) 
-in (let TMP_413 \def (CHead d2 TMP_412 u0) in (drop TMP_411 O c3 
-TMP_413)))))) in (let TMP_415 \def (\lambda (_: C).(\lambda (u0: T).(ty3 g d1 
-u0 t))) in (let TMP_416 \def (\lambda (d2: C).(\lambda (u0: T).(ty3 g d2 u0 
-t))) in (let TMP_417 \def (ex4_2 C T TMP_410 TMP_414 TMP_415 TMP_416) in (let 
-TMP_418 \def (\lambda (d2: C).(csubt g d1 d2)) in (let TMP_424 \def (\lambda 
-(d2: C).(let TMP_419 \def (S n0) in (let TMP_420 \def (Flat f) in (let 
-TMP_421 \def (CHead c3 TMP_420 u) in (let TMP_422 \def (Bind Abst) in (let 
-TMP_423 \def (CHead d2 TMP_422 t) in (drop TMP_419 O TMP_421 TMP_423))))))) 
-in (let TMP_425 \def (ex2 C TMP_418 TMP_424) in (let TMP_426 \def (\lambda 
-(d2: C).(\lambda (_: T).(csubt g d1 d2))) in (let TMP_432 \def (\lambda (d2: 
-C).(\lambda (u0: T).(let TMP_427 \def (S n0) in (let TMP_428 \def (Flat f) in 
-(let TMP_429 \def (CHead c3 TMP_428 u) in (let TMP_430 \def (Bind Abbr) in 
-(let TMP_431 \def (CHead d2 TMP_430 u0) in (drop TMP_427 O TMP_429 
-TMP_431)))))))) in (let TMP_433 \def (\lambda (_: C).(\lambda (u0: T).(ty3 g 
-d1 u0 t))) in (let TMP_434 \def (\lambda (d2: C).(\lambda (u0: T).(ty3 g d2 
-u0 t))) in (let TMP_435 \def (ex4_2 C T TMP_426 TMP_432 TMP_433 TMP_434) in 
-(let TMP_436 \def (or TMP_425 TMP_435) in (let TMP_492 \def (\lambda (H4: 
-(ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(drop (S n0) O c3 
-(CHead d2 (Bind Abst) t))))).(let TMP_437 \def (\lambda (d2: C).(csubt g d1 
-d2)) in (let TMP_441 \def (\lambda (d2: C).(let TMP_438 \def (S n0) in (let 
-TMP_439 \def (Bind Abst) in (let TMP_440 \def (CHead d2 TMP_439 t) in (drop 
-TMP_438 O c3 TMP_440))))) in (let TMP_442 \def (\lambda (d2: C).(csubt g d1 
-d2)) in (let TMP_448 \def (\lambda (d2: C).(let TMP_443 \def (S n0) in (let 
-TMP_444 \def (Flat f) in (let TMP_445 \def (CHead c3 TMP_444 u) in (let 
-TMP_446 \def (Bind Abst) in (let TMP_447 \def (CHead d2 TMP_446 t) in (drop 
-TMP_443 O TMP_445 TMP_447))))))) in (let TMP_449 \def (ex2 C TMP_442 TMP_448) 
-in (let TMP_450 \def (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) in 
-(let TMP_456 \def (\lambda (d2: C).(\lambda (u0: T).(let TMP_451 \def (S n0) 
-in (let TMP_452 \def (Flat f) in (let TMP_453 \def (CHead c3 TMP_452 u) in 
-(let TMP_454 \def (Bind Abbr) in (let TMP_455 \def (CHead d2 TMP_454 u0) in 
-(drop TMP_451 O TMP_453 TMP_455)))))))) in (let TMP_457 \def (\lambda (_: 
-C).(\lambda (u0: T).(ty3 g d1 u0 t))) in (let TMP_458 \def (\lambda (d2: 
-C).(\lambda (u0: T).(ty3 g d2 u0 t))) in (let TMP_459 \def (ex4_2 C T TMP_450 
-TMP_456 TMP_457 TMP_458) in (let TMP_460 \def (or TMP_449 TMP_459) in (let 
-TMP_491 \def (\lambda (x: C).(\lambda (H5: (csubt g d1 x)).(\lambda (H6: 
-(drop (S n0) O c3 (CHead x (Bind Abst) t))).(let TMP_461 \def (\lambda (d2: 
-C).(csubt g d1 d2)) in (let TMP_467 \def (\lambda (d2: C).(let TMP_462 \def 
-(S n0) in (let TMP_463 \def (Flat f) in (let TMP_464 \def (CHead c3 TMP_463 
-u) in (let TMP_465 \def (Bind Abst) in (let TMP_466 \def (CHead d2 TMP_465 t) 
-in (drop TMP_462 O TMP_464 TMP_466))))))) in (let TMP_468 \def (ex2 C TMP_461 
-TMP_467) in (let TMP_469 \def (\lambda (d2: C).(\lambda (_: T).(csubt g d1 
-d2))) in (let TMP_475 \def (\lambda (d2: C).(\lambda (u0: T).(let TMP_470 
-\def (S n0) in (let TMP_471 \def (Flat f) in (let TMP_472 \def (CHead c3 
-TMP_471 u) in (let TMP_473 \def (Bind Abbr) in (let TMP_474 \def (CHead d2 
-TMP_473 u0) in (drop TMP_470 O TMP_472 TMP_474)))))))) in (let TMP_476 \def 
-(\lambda (_: C).(\lambda (u0: T).(ty3 g d1 u0 t))) in (let TMP_477 \def 
-(\lambda (d2: C).(\lambda (u0: T).(ty3 g d2 u0 t))) in (let TMP_478 \def 
-(ex4_2 C T TMP_469 TMP_475 TMP_476 TMP_477) in (let TMP_479 \def (\lambda 
-(d2: C).(csubt g d1 d2)) in (let TMP_485 \def (\lambda (d2: C).(let TMP_480 
-\def (S n0) in (let TMP_481 \def (Flat f) in (let TMP_482 \def (CHead c3 
-TMP_481 u) in (let TMP_483 \def (Bind Abst) in (let TMP_484 \def (CHead d2 
-TMP_483 t) in (drop TMP_480 O TMP_482 TMP_484))))))) in (let TMP_486 \def 
-(Flat f) in (let TMP_487 \def (Bind Abst) in (let TMP_488 \def (CHead x 
-TMP_487 t) in (let TMP_489 \def (drop_drop TMP_486 n0 c3 TMP_488 H6 u) in 
-(let TMP_490 \def (ex_intro2 C TMP_479 TMP_485 x H5 TMP_489) in (or_introl 
-TMP_468 TMP_478 TMP_490))))))))))))))))))) in (ex2_ind C TMP_437 TMP_441 
-TMP_460 TMP_491 H4)))))))))))))) in (let TMP_552 \def (\lambda (H4: (ex4_2 C 
-T (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: 
-C).(\lambda (u0: T).(drop (S n0) O c3 (CHead d2 (Bind Abbr) u0)))) (\lambda 
-(_: C).(\lambda (u0: T).(ty3 g d1 u0 t))) (\lambda (d2: C).(\lambda (u0: 
-T).(ty3 g d2 u0 t))))).(let TMP_493 \def (\lambda (d2: C).(\lambda (_: 
-T).(csubt g d1 d2))) in (let TMP_497 \def (\lambda (d2: C).(\lambda (u0: 
-T).(let TMP_494 \def (S n0) in (let TMP_495 \def (Bind Abbr) in (let TMP_496 
-\def (CHead d2 TMP_495 u0) in (drop TMP_494 O c3 TMP_496)))))) in (let 
-TMP_498 \def (\lambda (_: C).(\lambda (u0: T).(ty3 g d1 u0 t))) in (let 
-TMP_499 \def (\lambda (d2: C).(\lambda (u0: T).(ty3 g d2 u0 t))) in (let 
-TMP_500 \def (\lambda (d2: C).(csubt g d1 d2)) in (let TMP_506 \def (\lambda 
-(d2: C).(let TMP_501 \def (S n0) in (let TMP_502 \def (Flat f) in (let 
-TMP_503 \def (CHead c3 TMP_502 u) in (let TMP_504 \def (Bind Abst) in (let 
-TMP_505 \def (CHead d2 TMP_504 t) in (drop TMP_501 O TMP_503 TMP_505))))))) 
-in (let TMP_507 \def (ex2 C TMP_500 TMP_506) in (let TMP_508 \def (\lambda 
-(d2: C).(\lambda (_: T).(csubt g d1 d2))) in (let TMP_514 \def (\lambda (d2: 
-C).(\lambda (u0: T).(let TMP_509 \def (S n0) in (let TMP_510 \def (Flat f) in 
-(let TMP_511 \def (CHead c3 TMP_510 u) in (let TMP_512 \def (Bind Abbr) in 
-(let TMP_513 \def (CHead d2 TMP_512 u0) in (drop TMP_509 O TMP_511 
-TMP_513)))))))) in (let TMP_515 \def (\lambda (_: C).(\lambda (u0: T).(ty3 g 
-d1 u0 t))) in (let TMP_516 \def (\lambda (d2: C).(\lambda (u0: T).(ty3 g d2 
-u0 t))) in (let TMP_517 \def (ex4_2 C T TMP_508 TMP_514 TMP_515 TMP_516) in 
-(let TMP_518 \def (or TMP_507 TMP_517) in (let TMP_551 \def (\lambda (x0: 
-C).(\lambda (x1: T).(\lambda (H5: (csubt g d1 x0)).(\lambda (H6: (drop (S n0) 
-O c3 (CHead x0 (Bind Abbr) x1))).(\lambda (H7: (ty3 g d1 x1 t)).(\lambda (H8: 
-(ty3 g x0 x1 t)).(let TMP_519 \def (\lambda (d2: C).(csubt g d1 d2)) in (let 
-TMP_525 \def (\lambda (d2: C).(let TMP_520 \def (S n0) in (let TMP_521 \def 
-(Flat f) in (let TMP_522 \def (CHead c3 TMP_521 u) in (let TMP_523 \def (Bind 
-Abst) in (let TMP_524 \def (CHead d2 TMP_523 t) in (drop TMP_520 O TMP_522 
-TMP_524))))))) in (let TMP_526 \def (ex2 C TMP_519 TMP_525) in (let TMP_527 
-\def (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) in (let TMP_533 \def 
-(\lambda (d2: C).(\lambda (u0: T).(let TMP_528 \def (S n0) in (let TMP_529 
-\def (Flat f) in (let TMP_530 \def (CHead c3 TMP_529 u) in (let TMP_531 \def 
-(Bind Abbr) in (let TMP_532 \def (CHead d2 TMP_531 u0) in (drop TMP_528 O 
-TMP_530 TMP_532)))))))) in (let TMP_534 \def (\lambda (_: C).(\lambda (u0: 
-T).(ty3 g d1 u0 t))) in (let TMP_535 \def (\lambda (d2: C).(\lambda (u0: 
-T).(ty3 g d2 u0 t))) in (let TMP_536 \def (ex4_2 C T TMP_527 TMP_533 TMP_534 
-TMP_535) in (let TMP_537 \def (\lambda (d2: C).(\lambda (_: T).(csubt g d1 
-d2))) in (let TMP_543 \def (\lambda (d2: C).(\lambda (u0: T).(let TMP_538 
-\def (S n0) in (let TMP_539 \def (Flat f) in (let TMP_540 \def (CHead c3 
-TMP_539 u) in (let TMP_541 \def (Bind Abbr) in (let TMP_542 \def (CHead d2 
-TMP_541 u0) in (drop TMP_538 O TMP_540 TMP_542)))))))) in (let TMP_544 \def 
-(\lambda (_: C).(\lambda (u0: T).(ty3 g d1 u0 t))) in (let TMP_545 \def 
-(\lambda (d2: C).(\lambda (u0: T).(ty3 g d2 u0 t))) in (let TMP_546 \def 
-(Flat f) in (let TMP_547 \def (Bind Abbr) in (let TMP_548 \def (CHead x0 
-TMP_547 x1) in (let TMP_549 \def (drop_drop TMP_546 n0 c3 TMP_548 H6 u) in 
-(let TMP_550 \def (ex4_2_intro C T TMP_537 TMP_543 TMP_544 TMP_545 x0 x1 H5 
-TMP_549 H7 H8) in (or_intror TMP_526 TMP_536 TMP_550)))))))))))))))))))))))) 
-in (ex4_2_ind C T TMP_493 TMP_497 TMP_498 TMP_499 TMP_518 TMP_551 
-H4)))))))))))))))) in (let TMP_553 \def (Flat f) in (let TMP_554 \def (Bind 
-Abst) in (let TMP_555 \def (CHead d1 TMP_554 t) in (let TMP_556 \def 
-(drop_gen_drop TMP_553 c0 TMP_555 u n0 H3) in (let TMP_557 \def (H2 d1 t 
-TMP_556) in (or_ind TMP_409 TMP_417 TMP_436 TMP_492 TMP_552 
-TMP_557)))))))))))))))))))))))))))))) in (K_ind TMP_252 TMP_403 TMP_558 
-k))))))))) in (let TMP_710 \def (\lambda (c0: C).(\lambda (c3: C).(\lambda 
-(H1: (csubt g c0 c3)).(\lambda (_: ((\forall (d1: C).(\forall (t: T).((drop 
+(u: T).(drop O O c2 (CHead d2 (Bind Abbr) u)))) (\lambda (_: C).(\lambda (u: 
+T).(ty3 g d1 u t))) (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))))) 
+(\lambda (x: C).(\lambda (H4: (eq C c2 (CHead x (Bind Abst) t))).(\lambda 
+(H5: (csubt g d1 x)).(eq_ind_r C (CHead x (Bind Abst) t) (\lambda (c: C).(or 
+(ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(drop O O c (CHead 
+d2 (Bind Abst) t)))) (ex4_2 C T (\lambda (d2: C).(\lambda (_: T).(csubt g d1 
+d2))) (\lambda (d2: C).(\lambda (u: T).(drop O O c (CHead d2 (Bind Abbr) 
+u)))) (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) (\lambda (d2: 
+C).(\lambda (u: T).(ty3 g d2 u t)))))) (or_introl (ex2 C (\lambda (d2: 
+C).(csubt g d1 d2)) (\lambda (d2: C).(drop O O (CHead x (Bind Abst) t) (CHead 
+d2 (Bind Abst) t)))) (ex4_2 C T (\lambda (d2: C).(\lambda (_: T).(csubt g d1 
+d2))) (\lambda (d2: C).(\lambda (u: T).(drop O O (CHead x (Bind Abst) t) 
+(CHead d2 (Bind Abbr) u)))) (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) 
+(\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t)))) (ex_intro2 C (\lambda (d2: 
+C).(csubt g d1 d2)) (\lambda (d2: C).(drop O O (CHead x (Bind Abst) t) (CHead 
+d2 (Bind Abst) t))) x H5 (drop_refl (CHead x (Bind Abst) t)))) c2 H4)))) H3)) 
+(\lambda (H3: (ex4_2 C T (\lambda (e2: C).(\lambda (v2: T).(eq C c2 (CHead e2 
+(Bind Abbr) v2)))) (\lambda (e2: C).(\lambda (_: T).(csubt g d1 e2))) 
+(\lambda (_: C).(\lambda (v2: T).(ty3 g d1 v2 t))) (\lambda (e2: C).(\lambda 
+(v2: T).(ty3 g e2 v2 t))))).(ex4_2_ind C T (\lambda (e2: C).(\lambda (v2: 
+T).(eq C c2 (CHead e2 (Bind Abbr) v2)))) (\lambda (e2: C).(\lambda (_: 
+T).(csubt g d1 e2))) (\lambda (_: C).(\lambda (v2: T).(ty3 g d1 v2 t))) 
+(\lambda (e2: C).(\lambda (v2: T).(ty3 g e2 v2 t))) (or (ex2 C (\lambda (d2: 
+C).(csubt g d1 d2)) (\lambda (d2: C).(drop O O c2 (CHead d2 (Bind Abst) t)))) 
+(ex4_2 C T (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: 
+C).(\lambda (u: T).(drop O O c2 (CHead d2 (Bind Abbr) u)))) (\lambda (_: 
+C).(\lambda (u: T).(ty3 g d1 u t))) (\lambda (d2: C).(\lambda (u: T).(ty3 g 
+d2 u t))))) (\lambda (x0: C).(\lambda (x1: T).(\lambda (H4: (eq C c2 (CHead 
+x0 (Bind Abbr) x1))).(\lambda (H5: (csubt g d1 x0)).(\lambda (H6: (ty3 g d1 
+x1 t)).(\lambda (H7: (ty3 g x0 x1 t)).(eq_ind_r C (CHead x0 (Bind Abbr) x1) 
+(\lambda (c: C).(or (ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: 
+C).(drop O O c (CHead d2 (Bind Abst) t)))) (ex4_2 C T (\lambda (d2: 
+C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda (u: T).(drop O 
+O c (CHead d2 (Bind Abbr) u)))) (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u 
+t))) (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t)))))) (or_intror (ex2 C 
+(\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(drop O O (CHead x0 (Bind 
+Abbr) x1) (CHead d2 (Bind Abst) t)))) (ex4_2 C T (\lambda (d2: C).(\lambda 
+(_: T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda (u: T).(drop O O (CHead x0 
+(Bind Abbr) x1) (CHead d2 (Bind Abbr) u)))) (\lambda (_: C).(\lambda (u: 
+T).(ty3 g d1 u t))) (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t)))) 
+(ex4_2_intro C T (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) (\lambda 
+(d2: C).(\lambda (u: T).(drop O O (CHead x0 (Bind Abbr) x1) (CHead d2 (Bind 
+Abbr) u)))) (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) (\lambda (d2: 
+C).(\lambda (u: T).(ty3 g d2 u t))) x0 x1 H5 (drop_refl (CHead x0 (Bind Abbr) 
+x1)) H6 H7)) c2 H4))))))) H3)) H2))))))))) (\lambda (n0: nat).(\lambda (H: 
+((\forall (c1: C).(\forall (c2: C).((csubt g c1 c2) \to (\forall (d1: 
+C).(\forall (t: T).((drop n0 O c1 (CHead d1 (Bind Abst) t)) \to (or (ex2 C 
+(\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(drop n0 O c2 (CHead d2 
+(Bind Abst) t)))) (ex4_2 C T (\lambda (d2: C).(\lambda (_: T).(csubt g d1 
+d2))) (\lambda (d2: C).(\lambda (u: T).(drop n0 O c2 (CHead d2 (Bind Abbr) 
+u)))) (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) (\lambda (d2: 
+C).(\lambda (u: T).(ty3 g d2 u t))))))))))))).(\lambda (c1: C).(\lambda (c2: 
+C).(\lambda (H0: (csubt g c1 c2)).(csubt_ind g (\lambda (c: C).(\lambda (c0: 
+C).(\forall (d1: C).(\forall (t: T).((drop (S n0) O c (CHead d1 (Bind Abst) 
+t)) \to (or (ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(drop 
+(S n0) O c0 (CHead d2 (Bind Abst) t)))) (ex4_2 C T (\lambda (d2: C).(\lambda 
+(_: T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda (u: T).(drop (S n0) O c0 
+(CHead d2 (Bind Abbr) u)))) (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) 
+(\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t)))))))))) (\lambda (n1: 
+nat).(\lambda (d1: C).(\lambda (t: T).(\lambda (H1: (drop (S n0) O (CSort n1) 
+(CHead d1 (Bind Abst) t))).(and3_ind (eq C (CHead d1 (Bind Abst) t) (CSort 
+n1)) (eq nat (S n0) O) (eq nat O O) (or (ex2 C (\lambda (d2: C).(csubt g d1 
+d2)) (\lambda (d2: C).(drop (S n0) O (CSort n1) (CHead d2 (Bind Abst) t)))) 
+(ex4_2 C T (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: 
+C).(\lambda (u: T).(drop (S n0) O (CSort n1) (CHead d2 (Bind Abbr) u)))) 
+(\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) (\lambda (d2: C).(\lambda 
+(u: T).(ty3 g d2 u t))))) (\lambda (_: (eq C (CHead d1 (Bind Abst) t) (CSort 
+n1))).(\lambda (H3: (eq nat (S n0) O)).(\lambda (_: (eq nat O O)).(let H5 
+\def (eq_ind nat (S n0) (\lambda (ee: nat).(match ee with [O \Rightarrow 
+False | (S _) \Rightarrow True])) I O H3) in (False_ind (or (ex2 C (\lambda 
+(d2: C).(csubt g d1 d2)) (\lambda (d2: C).(drop (S n0) O (CSort n1) (CHead d2 
+(Bind Abst) t)))) (ex4_2 C T (\lambda (d2: C).(\lambda (_: T).(csubt g d1 
+d2))) (\lambda (d2: C).(\lambda (u: T).(drop (S n0) O (CSort n1) (CHead d2 
+(Bind Abbr) u)))) (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) (\lambda 
+(d2: C).(\lambda (u: T).(ty3 g d2 u t))))) H5))))) (drop_gen_sort n1 (S n0) O 
+(CHead d1 (Bind Abst) t) H1)))))) (\lambda (c0: C).(\lambda (c3: C).(\lambda 
+(H1: (csubt g c0 c3)).(\lambda (H2: ((\forall (d1: C).(\forall (t: T).((drop 
 (S n0) O c0 (CHead d1 (Bind Abst) t)) \to (or (ex2 C (\lambda (d2: C).(csubt 
 g d1 d2)) (\lambda (d2: C).(drop (S n0) O c3 (CHead d2 (Bind Abst) t)))) 
 (ex4_2 C T (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: 
 C).(\lambda (u: T).(drop (S n0) O c3 (CHead d2 (Bind Abbr) u)))) (\lambda (_: 
 C).(\lambda (u: T).(ty3 g d1 u t))) (\lambda (d2: C).(\lambda (u: T).(ty3 g 
-d2 u t)))))))))).(\lambda (b: B).(\lambda (_: (not (eq B b Void))).(\lambda 
-(u1: T).(\lambda (u2: T).(\lambda (d1: C).(\lambda (t: T).(\lambda (H4: (drop 
-(S n0) O (CHead c0 (Bind Void) u1) (CHead d1 (Bind Abst) t))).(let TMP_560 
-\def (\lambda (d2: C).(csubt g d1 d2)) in (let TMP_563 \def (\lambda (d2: 
-C).(let TMP_561 \def (Bind Abst) in (let TMP_562 \def (CHead d2 TMP_561 t) in 
-(drop n0 O c3 TMP_562)))) in (let TMP_564 \def (ex2 C TMP_560 TMP_563) in 
-(let TMP_565 \def (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) in (let 
-TMP_568 \def (\lambda (d2: C).(\lambda (u: T).(let TMP_566 \def (Bind Abbr) 
-in (let TMP_567 \def (CHead d2 TMP_566 u) in (drop n0 O c3 TMP_567))))) in 
-(let TMP_569 \def (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) in (let 
-TMP_570 \def (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))) in (let 
-TMP_571 \def (ex4_2 C T TMP_565 TMP_568 TMP_569 TMP_570) in (let TMP_572 \def 
-(\lambda (d2: C).(csubt g d1 d2)) in (let TMP_578 \def (\lambda (d2: C).(let 
-TMP_573 \def (S n0) in (let TMP_574 \def (Bind b) in (let TMP_575 \def (CHead 
-c3 TMP_574 u2) in (let TMP_576 \def (Bind Abst) in (let TMP_577 \def (CHead 
-d2 TMP_576 t) in (drop TMP_573 O TMP_575 TMP_577))))))) in (let TMP_579 \def 
-(ex2 C TMP_572 TMP_578) in (let TMP_580 \def (\lambda (d2: C).(\lambda (_: 
-T).(csubt g d1 d2))) in (let TMP_586 \def (\lambda (d2: C).(\lambda (u: 
-T).(let TMP_581 \def (S n0) in (let TMP_582 \def (Bind b) in (let TMP_583 
-\def (CHead c3 TMP_582 u2) in (let TMP_584 \def (Bind Abbr) in (let TMP_585 
-\def (CHead d2 TMP_584 u) in (drop TMP_581 O TMP_583 TMP_585)))))))) in (let 
-TMP_587 \def (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) in (let TMP_588 
-\def (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))) in (let TMP_589 \def 
-(ex4_2 C T TMP_580 TMP_586 TMP_587 TMP_588) in (let TMP_590 \def (or TMP_579 
-TMP_589) in (let TMP_645 \def (\lambda (H5: (ex2 C (\lambda (d2: C).(csubt g 
-d1 d2)) (\lambda (d2: C).(drop n0 O c3 (CHead d2 (Bind Abst) t))))).(let 
-TMP_591 \def (\lambda (d2: C).(csubt g d1 d2)) in (let TMP_594 \def (\lambda 
-(d2: C).(let TMP_592 \def (Bind Abst) in (let TMP_593 \def (CHead d2 TMP_592 
-t) in (drop n0 O c3 TMP_593)))) in (let TMP_595 \def (\lambda (d2: C).(csubt 
-g d1 d2)) in (let TMP_601 \def (\lambda (d2: C).(let TMP_596 \def (S n0) in 
-(let TMP_597 \def (Bind b) in (let TMP_598 \def (CHead c3 TMP_597 u2) in (let 
-TMP_599 \def (Bind Abst) in (let TMP_600 \def (CHead d2 TMP_599 t) in (drop 
-TMP_596 O TMP_598 TMP_600))))))) in (let TMP_602 \def (ex2 C TMP_595 TMP_601) 
-in (let TMP_603 \def (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) in 
-(let TMP_609 \def (\lambda (d2: C).(\lambda (u: T).(let TMP_604 \def (S n0) 
-in (let TMP_605 \def (Bind b) in (let TMP_606 \def (CHead c3 TMP_605 u2) in 
-(let TMP_607 \def (Bind Abbr) in (let TMP_608 \def (CHead d2 TMP_607 u) in 
-(drop TMP_604 O TMP_606 TMP_608)))))))) in (let TMP_610 \def (\lambda (_: 
-C).(\lambda (u: T).(ty3 g d1 u t))) in (let TMP_611 \def (\lambda (d2: 
-C).(\lambda (u: T).(ty3 g d2 u t))) in (let TMP_612 \def (ex4_2 C T TMP_603 
-TMP_609 TMP_610 TMP_611) in (let TMP_613 \def (or TMP_602 TMP_612) in (let 
-TMP_644 \def (\lambda (x: C).(\lambda (H6: (csubt g d1 x)).(\lambda (H7: 
-(drop n0 O c3 (CHead x (Bind Abst) t))).(let TMP_614 \def (\lambda (d2: 
-C).(csubt g d1 d2)) in (let TMP_620 \def (\lambda (d2: C).(let TMP_615 \def 
-(S n0) in (let TMP_616 \def (Bind b) in (let TMP_617 \def (CHead c3 TMP_616 
-u2) in (let TMP_618 \def (Bind Abst) in (let TMP_619 \def (CHead d2 TMP_618 
-t) in (drop TMP_615 O TMP_617 TMP_619))))))) in (let TMP_621 \def (ex2 C 
-TMP_614 TMP_620) in (let TMP_622 \def (\lambda (d2: C).(\lambda (_: T).(csubt 
-g d1 d2))) in (let TMP_628 \def (\lambda (d2: C).(\lambda (u: T).(let TMP_623 
-\def (S n0) in (let TMP_624 \def (Bind b) in (let TMP_625 \def (CHead c3 
-TMP_624 u2) in (let TMP_626 \def (Bind Abbr) in (let TMP_627 \def (CHead d2 
-TMP_626 u) in (drop TMP_623 O TMP_625 TMP_627)))))))) in (let TMP_629 \def 
-(\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) in (let TMP_630 \def 
-(\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))) in (let TMP_631 \def (ex4_2 
-C T TMP_622 TMP_628 TMP_629 TMP_630) in (let TMP_632 \def (\lambda (d2: 
-C).(csubt g d1 d2)) in (let TMP_638 \def (\lambda (d2: C).(let TMP_633 \def 
-(S n0) in (let TMP_634 \def (Bind b) in (let TMP_635 \def (CHead c3 TMP_634 
-u2) in (let TMP_636 \def (Bind Abst) in (let TMP_637 \def (CHead d2 TMP_636 
-t) in (drop TMP_633 O TMP_635 TMP_637))))))) in (let TMP_639 \def (Bind b) in 
-(let TMP_640 \def (Bind Abst) in (let TMP_641 \def (CHead x TMP_640 t) in 
-(let TMP_642 \def (drop_drop TMP_639 n0 c3 TMP_641 H7 u2) in (let TMP_643 
-\def (ex_intro2 C TMP_632 TMP_638 x H6 TMP_642) in (or_introl TMP_621 TMP_631 
-TMP_643))))))))))))))))))) in (ex2_ind C TMP_591 TMP_594 TMP_613 TMP_644 
-H5)))))))))))))) in (let TMP_704 \def (\lambda (H5: (ex4_2 C T (\lambda (d2: 
+d2 u t)))))))))).(\lambda (k: K).(K_ind (\lambda (k0: K).(\forall (u: 
+T).(\forall (d1: C).(\forall (t: T).((drop (S n0) O (CHead c0 k0 u) (CHead d1 
+(Bind Abst) t)) \to (or (ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda 
+(d2: C).(drop (S n0) O (CHead c3 k0 u) (CHead d2 (Bind Abst) t)))) (ex4_2 C T 
+(\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda 
+(u0: T).(drop (S n0) O (CHead c3 k0 u) (CHead d2 (Bind Abbr) u0)))) (\lambda 
+(_: C).(\lambda (u0: T).(ty3 g d1 u0 t))) (\lambda (d2: C).(\lambda (u0: 
+T).(ty3 g d2 u0 t)))))))))) (\lambda (b: B).(\lambda (u: T).(\lambda (d1: 
+C).(\lambda (t: T).(\lambda (H3: (drop (S n0) O (CHead c0 (Bind b) u) (CHead 
+d1 (Bind Abst) t))).(or_ind (ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda 
+(d2: C).(drop n0 O c3 (CHead d2 (Bind Abst) t)))) (ex4_2 C T (\lambda (d2: 
+C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda (u0: T).(drop 
+n0 O c3 (CHead d2 (Bind Abbr) u0)))) (\lambda (_: C).(\lambda (u0: T).(ty3 g 
+d1 u0 t))) (\lambda (d2: C).(\lambda (u0: T).(ty3 g d2 u0 t)))) (or (ex2 C 
+(\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(drop (S n0) O (CHead c3 
+(Bind b) u) (CHead d2 (Bind Abst) t)))) (ex4_2 C T (\lambda (d2: C).(\lambda 
+(_: T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda (u0: T).(drop (S n0) O 
+(CHead c3 (Bind b) u) (CHead d2 (Bind Abbr) u0)))) (\lambda (_: C).(\lambda 
+(u0: T).(ty3 g d1 u0 t))) (\lambda (d2: C).(\lambda (u0: T).(ty3 g d2 u0 
+t))))) (\lambda (H4: (ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: 
+C).(drop n0 O c3 (CHead d2 (Bind Abst) t))))).(ex2_ind C (\lambda (d2: 
+C).(csubt g d1 d2)) (\lambda (d2: C).(drop n0 O c3 (CHead d2 (Bind Abst) t))) 
+(or (ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(drop (S n0) O 
+(CHead c3 (Bind b) u) (CHead d2 (Bind Abst) t)))) (ex4_2 C T (\lambda (d2: 
+C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda (u0: T).(drop 
+(S n0) O (CHead c3 (Bind b) u) (CHead d2 (Bind Abbr) u0)))) (\lambda (_: 
+C).(\lambda (u0: T).(ty3 g d1 u0 t))) (\lambda (d2: C).(\lambda (u0: T).(ty3 
+g d2 u0 t))))) (\lambda (x: C).(\lambda (H5: (csubt g d1 x)).(\lambda (H6: 
+(drop n0 O c3 (CHead x (Bind Abst) t))).(or_introl (ex2 C (\lambda (d2: 
+C).(csubt g d1 d2)) (\lambda (d2: C).(drop (S n0) O (CHead c3 (Bind b) u) 
+(CHead d2 (Bind Abst) t)))) (ex4_2 C T (\lambda (d2: C).(\lambda (_: 
+T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda (u0: T).(drop (S n0) O (CHead 
+c3 (Bind b) u) (CHead d2 (Bind Abbr) u0)))) (\lambda (_: C).(\lambda (u0: 
+T).(ty3 g d1 u0 t))) (\lambda (d2: C).(\lambda (u0: T).(ty3 g d2 u0 t)))) 
+(ex_intro2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(drop (S n0) 
+O (CHead c3 (Bind b) u) (CHead d2 (Bind Abst) t))) x H5 (drop_drop (Bind b) 
+n0 c3 (CHead x (Bind Abst) t) H6 u)))))) H4)) (\lambda (H4: (ex4_2 C T 
+(\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda 
+(u0: T).(drop n0 O c3 (CHead d2 (Bind Abbr) u0)))) (\lambda (_: C).(\lambda 
+(u0: T).(ty3 g d1 u0 t))) (\lambda (d2: C).(\lambda (u0: T).(ty3 g d2 u0 
+t))))).(ex4_2_ind C T (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) 
+(\lambda (d2: C).(\lambda (u0: T).(drop n0 O c3 (CHead d2 (Bind Abbr) u0)))) 
+(\lambda (_: C).(\lambda (u0: T).(ty3 g d1 u0 t))) (\lambda (d2: C).(\lambda 
+(u0: T).(ty3 g d2 u0 t))) (or (ex2 C (\lambda (d2: C).(csubt g d1 d2)) 
+(\lambda (d2: C).(drop (S n0) O (CHead c3 (Bind b) u) (CHead d2 (Bind Abst) 
+t)))) (ex4_2 C T (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) (\lambda 
+(d2: C).(\lambda (u0: T).(drop (S n0) O (CHead c3 (Bind b) u) (CHead d2 (Bind 
+Abbr) u0)))) (\lambda (_: C).(\lambda (u0: T).(ty3 g d1 u0 t))) (\lambda (d2: 
+C).(\lambda (u0: T).(ty3 g d2 u0 t))))) (\lambda (x0: C).(\lambda (x1: 
+T).(\lambda (H5: (csubt g d1 x0)).(\lambda (H6: (drop n0 O c3 (CHead x0 (Bind 
+Abbr) x1))).(\lambda (H7: (ty3 g d1 x1 t)).(\lambda (H8: (ty3 g x0 x1 
+t)).(or_intror (ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: 
+C).(drop (S n0) O (CHead c3 (Bind b) u) (CHead d2 (Bind Abst) t)))) (ex4_2 C 
+T (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: 
+C).(\lambda (u0: T).(drop (S n0) O (CHead c3 (Bind b) u) (CHead d2 (Bind 
+Abbr) u0)))) (\lambda (_: C).(\lambda (u0: T).(ty3 g d1 u0 t))) (\lambda (d2: 
+C).(\lambda (u0: T).(ty3 g d2 u0 t)))) (ex4_2_intro C T (\lambda (d2: 
+C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda (u0: T).(drop 
+(S n0) O (CHead c3 (Bind b) u) (CHead d2 (Bind Abbr) u0)))) (\lambda (_: 
+C).(\lambda (u0: T).(ty3 g d1 u0 t))) (\lambda (d2: C).(\lambda (u0: T).(ty3 
+g d2 u0 t))) x0 x1 H5 (drop_drop (Bind b) n0 c3 (CHead x0 (Bind Abbr) x1) H6 
+u) H7 H8)))))))) H4)) (H c0 c3 H1 d1 t (drop_gen_drop (Bind b) c0 (CHead d1 
+(Bind Abst) t) u n0 H3)))))))) (\lambda (f: F).(\lambda (u: T).(\lambda (d1: 
+C).(\lambda (t: T).(\lambda (H3: (drop (S n0) O (CHead c0 (Flat f) u) (CHead 
+d1 (Bind Abst) t))).(or_ind (ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda 
+(d2: C).(drop (S n0) O c3 (CHead d2 (Bind Abst) t)))) (ex4_2 C T (\lambda 
+(d2: C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda (u0: 
+T).(drop (S n0) O c3 (CHead d2 (Bind Abbr) u0)))) (\lambda (_: C).(\lambda 
+(u0: T).(ty3 g d1 u0 t))) (\lambda (d2: C).(\lambda (u0: T).(ty3 g d2 u0 
+t)))) (or (ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(drop (S 
+n0) O (CHead c3 (Flat f) u) (CHead d2 (Bind Abst) t)))) (ex4_2 C T (\lambda 
+(d2: C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda (u0: 
+T).(drop (S n0) O (CHead c3 (Flat f) u) (CHead d2 (Bind Abbr) u0)))) (\lambda 
+(_: C).(\lambda (u0: T).(ty3 g d1 u0 t))) (\lambda (d2: C).(\lambda (u0: 
+T).(ty3 g d2 u0 t))))) (\lambda (H4: (ex2 C (\lambda (d2: C).(csubt g d1 d2)) 
+(\lambda (d2: C).(drop (S n0) O c3 (CHead d2 (Bind Abst) t))))).(ex2_ind C 
+(\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(drop (S n0) O c3 (CHead 
+d2 (Bind Abst) t))) (or (ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda 
+(d2: C).(drop (S n0) O (CHead c3 (Flat f) u) (CHead d2 (Bind Abst) t)))) 
+(ex4_2 C T (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: 
+C).(\lambda (u0: T).(drop (S n0) O (CHead c3 (Flat f) u) (CHead d2 (Bind 
+Abbr) u0)))) (\lambda (_: C).(\lambda (u0: T).(ty3 g d1 u0 t))) (\lambda (d2: 
+C).(\lambda (u0: T).(ty3 g d2 u0 t))))) (\lambda (x: C).(\lambda (H5: (csubt 
+g d1 x)).(\lambda (H6: (drop (S n0) O c3 (CHead x (Bind Abst) t))).(or_introl 
+(ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(drop (S n0) O 
+(CHead c3 (Flat f) u) (CHead d2 (Bind Abst) t)))) (ex4_2 C T (\lambda (d2: 
+C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda (u0: T).(drop 
+(S n0) O (CHead c3 (Flat f) u) (CHead d2 (Bind Abbr) u0)))) (\lambda (_: 
+C).(\lambda (u0: T).(ty3 g d1 u0 t))) (\lambda (d2: C).(\lambda (u0: T).(ty3 
+g d2 u0 t)))) (ex_intro2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: 
+C).(drop (S n0) O (CHead c3 (Flat f) u) (CHead d2 (Bind Abst) t))) x H5 
+(drop_drop (Flat f) n0 c3 (CHead x (Bind Abst) t) H6 u)))))) H4)) (\lambda 
+(H4: (ex4_2 C T (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) (\lambda 
+(d2: C).(\lambda (u0: T).(drop (S n0) O c3 (CHead d2 (Bind Abbr) u0)))) 
+(\lambda (_: C).(\lambda (u0: T).(ty3 g d1 u0 t))) (\lambda (d2: C).(\lambda 
+(u0: T).(ty3 g d2 u0 t))))).(ex4_2_ind C T (\lambda (d2: C).(\lambda (_: 
+T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda (u0: T).(drop (S n0) O c3 
+(CHead d2 (Bind Abbr) u0)))) (\lambda (_: C).(\lambda (u0: T).(ty3 g d1 u0 
+t))) (\lambda (d2: C).(\lambda (u0: T).(ty3 g d2 u0 t))) (or (ex2 C (\lambda 
+(d2: C).(csubt g d1 d2)) (\lambda (d2: C).(drop (S n0) O (CHead c3 (Flat f) 
+u) (CHead d2 (Bind Abst) t)))) (ex4_2 C T (\lambda (d2: C).(\lambda (_: 
+T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda (u0: T).(drop (S n0) O (CHead 
+c3 (Flat f) u) (CHead d2 (Bind Abbr) u0)))) (\lambda (_: C).(\lambda (u0: 
+T).(ty3 g d1 u0 t))) (\lambda (d2: C).(\lambda (u0: T).(ty3 g d2 u0 t))))) 
+(\lambda (x0: C).(\lambda (x1: T).(\lambda (H5: (csubt g d1 x0)).(\lambda 
+(H6: (drop (S n0) O c3 (CHead x0 (Bind Abbr) x1))).(\lambda (H7: (ty3 g d1 x1 
+t)).(\lambda (H8: (ty3 g x0 x1 t)).(or_intror (ex2 C (\lambda (d2: C).(csubt 
+g d1 d2)) (\lambda (d2: C).(drop (S n0) O (CHead c3 (Flat f) u) (CHead d2 
+(Bind Abst) t)))) (ex4_2 C T (\lambda (d2: C).(\lambda (_: T).(csubt g d1 
+d2))) (\lambda (d2: C).(\lambda (u0: T).(drop (S n0) O (CHead c3 (Flat f) u) 
+(CHead d2 (Bind Abbr) u0)))) (\lambda (_: C).(\lambda (u0: T).(ty3 g d1 u0 
+t))) (\lambda (d2: C).(\lambda (u0: T).(ty3 g d2 u0 t)))) (ex4_2_intro C T 
+(\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda 
+(u0: T).(drop (S n0) O (CHead c3 (Flat f) u) (CHead d2 (Bind Abbr) u0)))) 
+(\lambda (_: C).(\lambda (u0: T).(ty3 g d1 u0 t))) (\lambda (d2: C).(\lambda 
+(u0: T).(ty3 g d2 u0 t))) x0 x1 H5 (drop_drop (Flat f) n0 c3 (CHead x0 (Bind 
+Abbr) x1) H6 u) H7 H8)))))))) H4)) (H2 d1 t (drop_gen_drop (Flat f) c0 (CHead 
+d1 (Bind Abst) t) u n0 H3)))))))) k)))))) (\lambda (c0: C).(\lambda (c3: 
+C).(\lambda (H1: (csubt g c0 c3)).(\lambda (_: ((\forall (d1: C).(\forall (t: 
+T).((drop (S n0) O c0 (CHead d1 (Bind Abst) t)) \to (or (ex2 C (\lambda (d2: 
+C).(csubt g d1 d2)) (\lambda (d2: C).(drop (S n0) O c3 (CHead d2 (Bind Abst) 
+t)))) (ex4_2 C T (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) (\lambda 
+(d2: C).(\lambda (u: T).(drop (S n0) O c3 (CHead d2 (Bind Abbr) u)))) 
+(\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) (\lambda (d2: C).(\lambda 
+(u: T).(ty3 g d2 u t)))))))))).(\lambda (b: B).(\lambda (_: (not (eq B b 
+Void))).(\lambda (u1: T).(\lambda (u2: T).(\lambda (d1: C).(\lambda (t: 
+T).(\lambda (H4: (drop (S n0) O (CHead c0 (Bind Void) u1) (CHead d1 (Bind 
+Abst) t))).(or_ind (ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: 
+C).(drop n0 O c3 (CHead d2 (Bind Abst) t)))) (ex4_2 C T (\lambda (d2: 
 C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda (u: T).(drop 
 n0 O c3 (CHead d2 (Bind Abbr) u)))) (\lambda (_: C).(\lambda (u: T).(ty3 g d1 
-u t))) (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))))).(let TMP_646 \def 
-(\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) in (let TMP_649 \def 
-(\lambda (d2: C).(\lambda (u: T).(let TMP_647 \def (Bind Abbr) in (let 
-TMP_648 \def (CHead d2 TMP_647 u) in (drop n0 O c3 TMP_648))))) in (let 
-TMP_650 \def (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) in (let TMP_651 
-\def (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))) in (let TMP_652 \def 
-(\lambda (d2: C).(csubt g d1 d2)) in (let TMP_658 \def (\lambda (d2: C).(let 
-TMP_653 \def (S n0) in (let TMP_654 \def (Bind b) in (let TMP_655 \def (CHead 
-c3 TMP_654 u2) in (let TMP_656 \def (Bind Abst) in (let TMP_657 \def (CHead 
-d2 TMP_656 t) in (drop TMP_653 O TMP_655 TMP_657))))))) in (let TMP_659 \def 
-(ex2 C TMP_652 TMP_658) in (let TMP_660 \def (\lambda (d2: C).(\lambda (_: 
-T).(csubt g d1 d2))) in (let TMP_666 \def (\lambda (d2: C).(\lambda (u: 
-T).(let TMP_661 \def (S n0) in (let TMP_662 \def (Bind b) in (let TMP_663 
-\def (CHead c3 TMP_662 u2) in (let TMP_664 \def (Bind Abbr) in (let TMP_665 
-\def (CHead d2 TMP_664 u) in (drop TMP_661 O TMP_663 TMP_665)))))))) in (let 
-TMP_667 \def (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) in (let TMP_668 
-\def (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))) in (let TMP_669 \def 
-(ex4_2 C T TMP_660 TMP_666 TMP_667 TMP_668) in (let TMP_670 \def (or TMP_659 
-TMP_669) in (let TMP_703 \def (\lambda (x0: C).(\lambda (x1: T).(\lambda (H6: 
-(csubt g d1 x0)).(\lambda (H7: (drop n0 O c3 (CHead x0 (Bind Abbr) 
-x1))).(\lambda (H8: (ty3 g d1 x1 t)).(\lambda (H9: (ty3 g x0 x1 t)).(let 
-TMP_671 \def (\lambda (d2: C).(csubt g d1 d2)) in (let TMP_677 \def (\lambda 
-(d2: C).(let TMP_672 \def (S n0) in (let TMP_673 \def (Bind b) in (let 
-TMP_674 \def (CHead c3 TMP_673 u2) in (let TMP_675 \def (Bind Abst) in (let 
-TMP_676 \def (CHead d2 TMP_675 t) in (drop TMP_672 O TMP_674 TMP_676))))))) 
-in (let TMP_678 \def (ex2 C TMP_671 TMP_677) in (let TMP_679 \def (\lambda 
-(d2: C).(\lambda (_: T).(csubt g d1 d2))) in (let TMP_685 \def (\lambda (d2: 
-C).(\lambda (u: T).(let TMP_680 \def (S n0) in (let TMP_681 \def (Bind b) in 
-(let TMP_682 \def (CHead c3 TMP_681 u2) in (let TMP_683 \def (Bind Abbr) in 
-(let TMP_684 \def (CHead d2 TMP_683 u) in (drop TMP_680 O TMP_682 
-TMP_684)))))))) in (let TMP_686 \def (\lambda (_: C).(\lambda (u: T).(ty3 g 
-d1 u t))) in (let TMP_687 \def (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u 
-t))) in (let TMP_688 \def (ex4_2 C T TMP_679 TMP_685 TMP_686 TMP_687) in (let 
-TMP_689 \def (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) in (let 
-TMP_695 \def (\lambda (d2: C).(\lambda (u: T).(let TMP_690 \def (S n0) in 
-(let TMP_691 \def (Bind b) in (let TMP_692 \def (CHead c3 TMP_691 u2) in (let 
-TMP_693 \def (Bind Abbr) in (let TMP_694 \def (CHead d2 TMP_693 u) in (drop 
-TMP_690 O TMP_692 TMP_694)))))))) in (let TMP_696 \def (\lambda (_: 
-C).(\lambda (u: T).(ty3 g d1 u t))) in (let TMP_697 \def (\lambda (d2: 
-C).(\lambda (u: T).(ty3 g d2 u t))) in (let TMP_698 \def (Bind b) in (let 
-TMP_699 \def (Bind Abbr) in (let TMP_700 \def (CHead x0 TMP_699 x1) in (let 
-TMP_701 \def (drop_drop TMP_698 n0 c3 TMP_700 H7 u2) in (let TMP_702 \def 
-(ex4_2_intro C T TMP_689 TMP_695 TMP_696 TMP_697 x0 x1 H6 TMP_701 H8 H9) in 
-(or_intror TMP_678 TMP_688 TMP_702)))))))))))))))))))))))) in (ex4_2_ind C T 
-TMP_646 TMP_649 TMP_650 TMP_651 TMP_670 TMP_703 H5)))))))))))))))) in (let 
-TMP_705 \def (Bind Void) in (let TMP_706 \def (Bind Abst) in (let TMP_707 
-\def (CHead d1 TMP_706 t) in (let TMP_708 \def (drop_gen_drop TMP_705 c0 
-TMP_707 u1 n0 H4) in (let TMP_709 \def (H c0 c3 H1 d1 t TMP_708) in (or_ind 
-TMP_564 TMP_571 TMP_590 TMP_645 TMP_704 
-TMP_709)))))))))))))))))))))))))))))))))))) in (let TMP_861 \def (\lambda 
-(c0: C).(\lambda (c3: C).(\lambda (H1: (csubt g c0 c3)).(\lambda (_: 
-((\forall (d1: C).(\forall (t: T).((drop (S n0) O c0 (CHead d1 (Bind Abst) 
-t)) \to (or (ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(drop 
-(S n0) O c3 (CHead d2 (Bind Abst) t)))) (ex4_2 C T (\lambda (d2: C).(\lambda 
-(_: T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda (u: T).(drop (S n0) O c3 
+u t))) (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t)))) (or (ex2 C (\lambda 
+(d2: C).(csubt g d1 d2)) (\lambda (d2: C).(drop (S n0) O (CHead c3 (Bind b) 
+u2) (CHead d2 (Bind Abst) t)))) (ex4_2 C T (\lambda (d2: C).(\lambda (_: 
+T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda (u: T).(drop (S n0) O (CHead 
+c3 (Bind b) u2) (CHead d2 (Bind Abbr) u)))) (\lambda (_: C).(\lambda (u: 
+T).(ty3 g d1 u t))) (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))))) 
+(\lambda (H5: (ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(drop 
+n0 O c3 (CHead d2 (Bind Abst) t))))).(ex2_ind C (\lambda (d2: C).(csubt g d1 
+d2)) (\lambda (d2: C).(drop n0 O c3 (CHead d2 (Bind Abst) t))) (or (ex2 C 
+(\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(drop (S n0) O (CHead c3 
+(Bind b) u2) (CHead d2 (Bind Abst) t)))) (ex4_2 C T (\lambda (d2: C).(\lambda 
+(_: T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda (u: T).(drop (S n0) O 
+(CHead c3 (Bind b) u2) (CHead d2 (Bind Abbr) u)))) (\lambda (_: C).(\lambda 
+(u: T).(ty3 g d1 u t))) (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))))) 
+(\lambda (x: C).(\lambda (H6: (csubt g d1 x)).(\lambda (H7: (drop n0 O c3 
+(CHead x (Bind Abst) t))).(or_introl (ex2 C (\lambda (d2: C).(csubt g d1 d2)) 
+(\lambda (d2: C).(drop (S n0) O (CHead c3 (Bind b) u2) (CHead d2 (Bind Abst) 
+t)))) (ex4_2 C T (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) (\lambda 
+(d2: C).(\lambda (u: T).(drop (S n0) O (CHead c3 (Bind b) u2) (CHead d2 (Bind 
+Abbr) u)))) (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) (\lambda (d2: 
+C).(\lambda (u: T).(ty3 g d2 u t)))) (ex_intro2 C (\lambda (d2: C).(csubt g 
+d1 d2)) (\lambda (d2: C).(drop (S n0) O (CHead c3 (Bind b) u2) (CHead d2 
+(Bind Abst) t))) x H6 (drop_drop (Bind b) n0 c3 (CHead x (Bind Abst) t) H7 
+u2)))))) H5)) (\lambda (H5: (ex4_2 C T (\lambda (d2: C).(\lambda (_: 
+T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda (u: T).(drop n0 O c3 (CHead d2 
+(Bind Abbr) u)))) (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) (\lambda 
+(d2: C).(\lambda (u: T).(ty3 g d2 u t))))).(ex4_2_ind C T (\lambda (d2: 
+C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda (u: T).(drop 
+n0 O c3 (CHead d2 (Bind Abbr) u)))) (\lambda (_: C).(\lambda (u: T).(ty3 g d1 
+u t))) (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))) (or (ex2 C (\lambda 
+(d2: C).(csubt g d1 d2)) (\lambda (d2: C).(drop (S n0) O (CHead c3 (Bind b) 
+u2) (CHead d2 (Bind Abst) t)))) (ex4_2 C T (\lambda (d2: C).(\lambda (_: 
+T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda (u: T).(drop (S n0) O (CHead 
+c3 (Bind b) u2) (CHead d2 (Bind Abbr) u)))) (\lambda (_: C).(\lambda (u: 
+T).(ty3 g d1 u t))) (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))))) 
+(\lambda (x0: C).(\lambda (x1: T).(\lambda (H6: (csubt g d1 x0)).(\lambda 
+(H7: (drop n0 O c3 (CHead x0 (Bind Abbr) x1))).(\lambda (H8: (ty3 g d1 x1 
+t)).(\lambda (H9: (ty3 g x0 x1 t)).(or_intror (ex2 C (\lambda (d2: C).(csubt 
+g d1 d2)) (\lambda (d2: C).(drop (S n0) O (CHead c3 (Bind b) u2) (CHead d2 
+(Bind Abst) t)))) (ex4_2 C T (\lambda (d2: C).(\lambda (_: T).(csubt g d1 
+d2))) (\lambda (d2: C).(\lambda (u: T).(drop (S n0) O (CHead c3 (Bind b) u2) 
 (CHead d2 (Bind Abbr) u)))) (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) 
-(\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t)))))))))).(\lambda (u: 
-T).(\lambda (t: T).(\lambda (_: (ty3 g c0 u t)).(\lambda (_: (ty3 g c3 u 
-t)).(\lambda (d1: C).(\lambda (t0: T).(\lambda (H5: (drop (S n0) O (CHead c0 
-(Bind Abst) t) (CHead d1 (Bind Abst) t0))).(let TMP_711 \def (\lambda (d2: 
-C).(csubt g d1 d2)) in (let TMP_714 \def (\lambda (d2: C).(let TMP_712 \def 
-(Bind Abst) in (let TMP_713 \def (CHead d2 TMP_712 t0) in (drop n0 O c3 
-TMP_713)))) in (let TMP_715 \def (ex2 C TMP_711 TMP_714) in (let TMP_716 \def 
-(\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) in (let TMP_719 \def 
-(\lambda (d2: C).(\lambda (u0: T).(let TMP_717 \def (Bind Abbr) in (let 
-TMP_718 \def (CHead d2 TMP_717 u0) in (drop n0 O c3 TMP_718))))) in (let 
-TMP_720 \def (\lambda (_: C).(\lambda (u0: T).(ty3 g d1 u0 t0))) in (let 
-TMP_721 \def (\lambda (d2: C).(\lambda (u0: T).(ty3 g d2 u0 t0))) in (let 
-TMP_722 \def (ex4_2 C T TMP_716 TMP_719 TMP_720 TMP_721) in (let TMP_723 \def 
-(\lambda (d2: C).(csubt g d1 d2)) in (let TMP_729 \def (\lambda (d2: C).(let 
-TMP_724 \def (S n0) in (let TMP_725 \def (Bind Abbr) in (let TMP_726 \def 
-(CHead c3 TMP_725 u) in (let TMP_727 \def (Bind Abst) in (let TMP_728 \def 
-(CHead d2 TMP_727 t0) in (drop TMP_724 O TMP_726 TMP_728))))))) in (let 
-TMP_730 \def (ex2 C TMP_723 TMP_729) in (let TMP_731 \def (\lambda (d2: 
-C).(\lambda (_: T).(csubt g d1 d2))) in (let TMP_737 \def (\lambda (d2: 
-C).(\lambda (u0: T).(let TMP_732 \def (S n0) in (let TMP_733 \def (Bind Abbr) 
-in (let TMP_734 \def (CHead c3 TMP_733 u) in (let TMP_735 \def (Bind Abbr) in 
-(let TMP_736 \def (CHead d2 TMP_735 u0) in (drop TMP_732 O TMP_734 
-TMP_736)))))))) in (let TMP_738 \def (\lambda (_: C).(\lambda (u0: T).(ty3 g 
-d1 u0 t0))) in (let TMP_739 \def (\lambda (d2: C).(\lambda (u0: T).(ty3 g d2 
-u0 t0))) in (let TMP_740 \def (ex4_2 C T TMP_731 TMP_737 TMP_738 TMP_739) in 
-(let TMP_741 \def (or TMP_730 TMP_740) in (let TMP_796 \def (\lambda (H6: 
-(ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(drop n0 O c3 
-(CHead d2 (Bind Abst) t0))))).(let TMP_742 \def (\lambda (d2: C).(csubt g d1 
-d2)) in (let TMP_745 \def (\lambda (d2: C).(let TMP_743 \def (Bind Abst) in 
-(let TMP_744 \def (CHead d2 TMP_743 t0) in (drop n0 O c3 TMP_744)))) in (let 
-TMP_746 \def (\lambda (d2: C).(csubt g d1 d2)) in (let TMP_752 \def (\lambda 
-(d2: C).(let TMP_747 \def (S n0) in (let TMP_748 \def (Bind Abbr) in (let 
-TMP_749 \def (CHead c3 TMP_748 u) in (let TMP_750 \def (Bind Abst) in (let 
-TMP_751 \def (CHead d2 TMP_750 t0) in (drop TMP_747 O TMP_749 TMP_751))))))) 
-in (let TMP_753 \def (ex2 C TMP_746 TMP_752) in (let TMP_754 \def (\lambda 
-(d2: C).(\lambda (_: T).(csubt g d1 d2))) in (let TMP_760 \def (\lambda (d2: 
-C).(\lambda (u0: T).(let TMP_755 \def (S n0) in (let TMP_756 \def (Bind Abbr) 
-in (let TMP_757 \def (CHead c3 TMP_756 u) in (let TMP_758 \def (Bind Abbr) in 
-(let TMP_759 \def (CHead d2 TMP_758 u0) in (drop TMP_755 O TMP_757 
-TMP_759)))))))) in (let TMP_761 \def (\lambda (_: C).(\lambda (u0: T).(ty3 g 
-d1 u0 t0))) in (let TMP_762 \def (\lambda (d2: C).(\lambda (u0: T).(ty3 g d2 
-u0 t0))) in (let TMP_763 \def (ex4_2 C T TMP_754 TMP_760 TMP_761 TMP_762) in 
-(let TMP_764 \def (or TMP_753 TMP_763) in (let TMP_795 \def (\lambda (x: 
-C).(\lambda (H7: (csubt g d1 x)).(\lambda (H8: (drop n0 O c3 (CHead x (Bind 
-Abst) t0))).(let TMP_765 \def (\lambda (d2: C).(csubt g d1 d2)) in (let 
-TMP_771 \def (\lambda (d2: C).(let TMP_766 \def (S n0) in (let TMP_767 \def 
-(Bind Abbr) in (let TMP_768 \def (CHead c3 TMP_767 u) in (let TMP_769 \def 
-(Bind Abst) in (let TMP_770 \def (CHead d2 TMP_769 t0) in (drop TMP_766 O 
-TMP_768 TMP_770))))))) in (let TMP_772 \def (ex2 C TMP_765 TMP_771) in (let 
-TMP_773 \def (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) in (let 
-TMP_779 \def (\lambda (d2: C).(\lambda (u0: T).(let TMP_774 \def (S n0) in 
-(let TMP_775 \def (Bind Abbr) in (let TMP_776 \def (CHead c3 TMP_775 u) in 
-(let TMP_777 \def (Bind Abbr) in (let TMP_778 \def (CHead d2 TMP_777 u0) in 
-(drop TMP_774 O TMP_776 TMP_778)))))))) in (let TMP_780 \def (\lambda (_: 
-C).(\lambda (u0: T).(ty3 g d1 u0 t0))) in (let TMP_781 \def (\lambda (d2: 
-C).(\lambda (u0: T).(ty3 g d2 u0 t0))) in (let TMP_782 \def (ex4_2 C T 
-TMP_773 TMP_779 TMP_780 TMP_781) in (let TMP_783 \def (\lambda (d2: C).(csubt 
-g d1 d2)) in (let TMP_789 \def (\lambda (d2: C).(let TMP_784 \def (S n0) in 
-(let TMP_785 \def (Bind Abbr) in (let TMP_786 \def (CHead c3 TMP_785 u) in 
-(let TMP_787 \def (Bind Abst) in (let TMP_788 \def (CHead d2 TMP_787 t0) in 
-(drop TMP_784 O TMP_786 TMP_788))))))) in (let TMP_790 \def (Bind Abbr) in 
-(let TMP_791 \def (Bind Abst) in (let TMP_792 \def (CHead x TMP_791 t0) in 
-(let TMP_793 \def (drop_drop TMP_790 n0 c3 TMP_792 H8 u) in (let TMP_794 \def 
-(ex_intro2 C TMP_783 TMP_789 x H7 TMP_793) in (or_introl TMP_772 TMP_782 
-TMP_794))))))))))))))))))) in (ex2_ind C TMP_742 TMP_745 TMP_764 TMP_795 
-H6)))))))))))))) in (let TMP_855 \def (\lambda (H6: (ex4_2 C T (\lambda (d2: 
+(\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t)))) (ex4_2_intro C T (\lambda 
+(d2: C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda (u: 
+T).(drop (S n0) O (CHead c3 (Bind b) u2) (CHead d2 (Bind Abbr) u)))) (\lambda 
+(_: C).(\lambda (u: T).(ty3 g d1 u t))) (\lambda (d2: C).(\lambda (u: T).(ty3 
+g d2 u t))) x0 x1 H6 (drop_drop (Bind b) n0 c3 (CHead x0 (Bind Abbr) x1) H7 
+u2) H8 H9)))))))) H5)) (H c0 c3 H1 d1 t (drop_gen_drop (Bind Void) c0 (CHead 
+d1 (Bind Abst) t) u1 n0 H4)))))))))))))) (\lambda (c0: C).(\lambda (c3: 
+C).(\lambda (H1: (csubt g c0 c3)).(\lambda (_: ((\forall (d1: C).(\forall (t: 
+T).((drop (S n0) O c0 (CHead d1 (Bind Abst) t)) \to (or (ex2 C (\lambda (d2: 
+C).(csubt g d1 d2)) (\lambda (d2: C).(drop (S n0) O c3 (CHead d2 (Bind Abst) 
+t)))) (ex4_2 C T (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) (\lambda 
+(d2: C).(\lambda (u: T).(drop (S n0) O c3 (CHead d2 (Bind Abbr) u)))) 
+(\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) (\lambda (d2: C).(\lambda 
+(u: T).(ty3 g d2 u t)))))))))).(\lambda (u: T).(\lambda (t: T).(\lambda (_: 
+(ty3 g c0 u t)).(\lambda (_: (ty3 g c3 u t)).(\lambda (d1: C).(\lambda (t0: 
+T).(\lambda (H5: (drop (S n0) O (CHead c0 (Bind Abst) t) (CHead d1 (Bind 
+Abst) t0))).(or_ind (ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: 
+C).(drop n0 O c3 (CHead d2 (Bind Abst) t0)))) (ex4_2 C T (\lambda (d2: 
 C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda (u0: T).(drop 
 n0 O c3 (CHead d2 (Bind Abbr) u0)))) (\lambda (_: C).(\lambda (u0: T).(ty3 g 
-d1 u0 t0))) (\lambda (d2: C).(\lambda (u0: T).(ty3 g d2 u0 t0))))).(let 
-TMP_797 \def (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) in (let 
-TMP_800 \def (\lambda (d2: C).(\lambda (u0: T).(let TMP_798 \def (Bind Abbr) 
-in (let TMP_799 \def (CHead d2 TMP_798 u0) in (drop n0 O c3 TMP_799))))) in 
-(let TMP_801 \def (\lambda (_: C).(\lambda (u0: T).(ty3 g d1 u0 t0))) in (let 
-TMP_802 \def (\lambda (d2: C).(\lambda (u0: T).(ty3 g d2 u0 t0))) in (let 
-TMP_803 \def (\lambda (d2: C).(csubt g d1 d2)) in (let TMP_809 \def (\lambda 
-(d2: C).(let TMP_804 \def (S n0) in (let TMP_805 \def (Bind Abbr) in (let 
-TMP_806 \def (CHead c3 TMP_805 u) in (let TMP_807 \def (Bind Abst) in (let 
-TMP_808 \def (CHead d2 TMP_807 t0) in (drop TMP_804 O TMP_806 TMP_808))))))) 
-in (let TMP_810 \def (ex2 C TMP_803 TMP_809) in (let TMP_811 \def (\lambda 
-(d2: C).(\lambda (_: T).(csubt g d1 d2))) in (let TMP_817 \def (\lambda (d2: 
-C).(\lambda (u0: T).(let TMP_812 \def (S n0) in (let TMP_813 \def (Bind Abbr) 
-in (let TMP_814 \def (CHead c3 TMP_813 u) in (let TMP_815 \def (Bind Abbr) in 
-(let TMP_816 \def (CHead d2 TMP_815 u0) in (drop TMP_812 O TMP_814 
-TMP_816)))))))) in (let TMP_818 \def (\lambda (_: C).(\lambda (u0: T).(ty3 g 
-d1 u0 t0))) in (let TMP_819 \def (\lambda (d2: C).(\lambda (u0: T).(ty3 g d2 
-u0 t0))) in (let TMP_820 \def (ex4_2 C T TMP_811 TMP_817 TMP_818 TMP_819) in 
-(let TMP_821 \def (or TMP_810 TMP_820) in (let TMP_854 \def (\lambda (x0: 
-C).(\lambda (x1: T).(\lambda (H7: (csubt g d1 x0)).(\lambda (H8: (drop n0 O 
-c3 (CHead x0 (Bind Abbr) x1))).(\lambda (H9: (ty3 g d1 x1 t0)).(\lambda (H10: 
-(ty3 g x0 x1 t0)).(let TMP_822 \def (\lambda (d2: C).(csubt g d1 d2)) in (let 
-TMP_828 \def (\lambda (d2: C).(let TMP_823 \def (S n0) in (let TMP_824 \def 
-(Bind Abbr) in (let TMP_825 \def (CHead c3 TMP_824 u) in (let TMP_826 \def 
-(Bind Abst) in (let TMP_827 \def (CHead d2 TMP_826 t0) in (drop TMP_823 O 
-TMP_825 TMP_827))))))) in (let TMP_829 \def (ex2 C TMP_822 TMP_828) in (let 
-TMP_830 \def (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) in (let 
-TMP_836 \def (\lambda (d2: C).(\lambda (u0: T).(let TMP_831 \def (S n0) in 
-(let TMP_832 \def (Bind Abbr) in (let TMP_833 \def (CHead c3 TMP_832 u) in 
-(let TMP_834 \def (Bind Abbr) in (let TMP_835 \def (CHead d2 TMP_834 u0) in 
-(drop TMP_831 O TMP_833 TMP_835)))))))) in (let TMP_837 \def (\lambda (_: 
-C).(\lambda (u0: T).(ty3 g d1 u0 t0))) in (let TMP_838 \def (\lambda (d2: 
-C).(\lambda (u0: T).(ty3 g d2 u0 t0))) in (let TMP_839 \def (ex4_2 C T 
-TMP_830 TMP_836 TMP_837 TMP_838) in (let TMP_840 \def (\lambda (d2: 
-C).(\lambda (_: T).(csubt g d1 d2))) in (let TMP_846 \def (\lambda (d2: 
-C).(\lambda (u0: T).(let TMP_841 \def (S n0) in (let TMP_842 \def (Bind Abbr) 
-in (let TMP_843 \def (CHead c3 TMP_842 u) in (let TMP_844 \def (Bind Abbr) in 
-(let TMP_845 \def (CHead d2 TMP_844 u0) in (drop TMP_841 O TMP_843 
-TMP_845)))))))) in (let TMP_847 \def (\lambda (_: C).(\lambda (u0: T).(ty3 g 
-d1 u0 t0))) in (let TMP_848 \def (\lambda (d2: C).(\lambda (u0: T).(ty3 g d2 
-u0 t0))) in (let TMP_849 \def (Bind Abbr) in (let TMP_850 \def (Bind Abbr) in 
-(let TMP_851 \def (CHead x0 TMP_850 x1) in (let TMP_852 \def (drop_drop 
-TMP_849 n0 c3 TMP_851 H8 u) in (let TMP_853 \def (ex4_2_intro C T TMP_840 
-TMP_846 TMP_847 TMP_848 x0 x1 H7 TMP_852 H9 H10) in (or_intror TMP_829 
-TMP_839 TMP_853)))))))))))))))))))))))) in (ex4_2_ind C T TMP_797 TMP_800 
-TMP_801 TMP_802 TMP_821 TMP_854 H6)))))))))))))))) in (let TMP_856 \def (Bind 
-Abst) in (let TMP_857 \def (Bind Abst) in (let TMP_858 \def (CHead d1 TMP_857 
-t0) in (let TMP_859 \def (drop_gen_drop TMP_856 c0 TMP_858 t n0 H5) in (let 
-TMP_860 \def (H c0 c3 H1 d1 t0 TMP_859) in (or_ind TMP_715 TMP_722 TMP_741 
-TMP_796 TMP_855 TMP_860)))))))))))))))))))))))))))))))))))) in (csubt_ind g 
-TMP_186 TMP_235 TMP_559 TMP_710 TMP_861 c1 c2 H0))))))))))) in (nat_ind 
-TMP_13 TMP_171 TMP_862 n))))).
+d1 u0 t0))) (\lambda (d2: C).(\lambda (u0: T).(ty3 g d2 u0 t0)))) (or (ex2 C 
+(\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(drop (S n0) O (CHead c3 
+(Bind Abbr) u) (CHead d2 (Bind Abst) t0)))) (ex4_2 C T (\lambda (d2: 
+C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda (u0: T).(drop 
+(S n0) O (CHead c3 (Bind Abbr) u) (CHead d2 (Bind Abbr) u0)))) (\lambda (_: 
+C).(\lambda (u0: T).(ty3 g d1 u0 t0))) (\lambda (d2: C).(\lambda (u0: T).(ty3 
+g d2 u0 t0))))) (\lambda (H6: (ex2 C (\lambda (d2: C).(csubt g d1 d2)) 
+(\lambda (d2: C).(drop n0 O c3 (CHead d2 (Bind Abst) t0))))).(ex2_ind C 
+(\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(drop n0 O c3 (CHead d2 
+(Bind Abst) t0))) (or (ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: 
+C).(drop (S n0) O (CHead c3 (Bind Abbr) u) (CHead d2 (Bind Abst) t0)))) 
+(ex4_2 C T (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: 
+C).(\lambda (u0: T).(drop (S n0) O (CHead c3 (Bind Abbr) u) (CHead d2 (Bind 
+Abbr) u0)))) (\lambda (_: C).(\lambda (u0: T).(ty3 g d1 u0 t0))) (\lambda 
+(d2: C).(\lambda (u0: T).(ty3 g d2 u0 t0))))) (\lambda (x: C).(\lambda (H7: 
+(csubt g d1 x)).(\lambda (H8: (drop n0 O c3 (CHead x (Bind Abst) 
+t0))).(or_introl (ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: 
+C).(drop (S n0) O (CHead c3 (Bind Abbr) u) (CHead d2 (Bind Abst) t0)))) 
+(ex4_2 C T (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: 
+C).(\lambda (u0: T).(drop (S n0) O (CHead c3 (Bind Abbr) u) (CHead d2 (Bind 
+Abbr) u0)))) (\lambda (_: C).(\lambda (u0: T).(ty3 g d1 u0 t0))) (\lambda 
+(d2: C).(\lambda (u0: T).(ty3 g d2 u0 t0)))) (ex_intro2 C (\lambda (d2: 
+C).(csubt g d1 d2)) (\lambda (d2: C).(drop (S n0) O (CHead c3 (Bind Abbr) u) 
+(CHead d2 (Bind Abst) t0))) x H7 (drop_drop (Bind Abbr) n0 c3 (CHead x (Bind 
+Abst) t0) H8 u)))))) H6)) (\lambda (H6: (ex4_2 C T (\lambda (d2: C).(\lambda 
+(_: T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda (u0: T).(drop n0 O c3 
+(CHead d2 (Bind Abbr) u0)))) (\lambda (_: C).(\lambda (u0: T).(ty3 g d1 u0 
+t0))) (\lambda (d2: C).(\lambda (u0: T).(ty3 g d2 u0 t0))))).(ex4_2_ind C T 
+(\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda 
+(u0: T).(drop n0 O c3 (CHead d2 (Bind Abbr) u0)))) (\lambda (_: C).(\lambda 
+(u0: T).(ty3 g d1 u0 t0))) (\lambda (d2: C).(\lambda (u0: T).(ty3 g d2 u0 
+t0))) (or (ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(drop (S 
+n0) O (CHead c3 (Bind Abbr) u) (CHead d2 (Bind Abst) t0)))) (ex4_2 C T 
+(\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda 
+(u0: T).(drop (S n0) O (CHead c3 (Bind Abbr) u) (CHead d2 (Bind Abbr) u0)))) 
+(\lambda (_: C).(\lambda (u0: T).(ty3 g d1 u0 t0))) (\lambda (d2: C).(\lambda 
+(u0: T).(ty3 g d2 u0 t0))))) (\lambda (x0: C).(\lambda (x1: T).(\lambda (H7: 
+(csubt g d1 x0)).(\lambda (H8: (drop n0 O c3 (CHead x0 (Bind Abbr) 
+x1))).(\lambda (H9: (ty3 g d1 x1 t0)).(\lambda (H10: (ty3 g x0 x1 
+t0)).(or_intror (ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: 
+C).(drop (S n0) O (CHead c3 (Bind Abbr) u) (CHead d2 (Bind Abst) t0)))) 
+(ex4_2 C T (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: 
+C).(\lambda (u0: T).(drop (S n0) O (CHead c3 (Bind Abbr) u) (CHead d2 (Bind 
+Abbr) u0)))) (\lambda (_: C).(\lambda (u0: T).(ty3 g d1 u0 t0))) (\lambda 
+(d2: C).(\lambda (u0: T).(ty3 g d2 u0 t0)))) (ex4_2_intro C T (\lambda (d2: 
+C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda (u0: T).(drop 
+(S n0) O (CHead c3 (Bind Abbr) u) (CHead d2 (Bind Abbr) u0)))) (\lambda (_: 
+C).(\lambda (u0: T).(ty3 g d1 u0 t0))) (\lambda (d2: C).(\lambda (u0: T).(ty3 
+g d2 u0 t0))) x0 x1 H7 (drop_drop (Bind Abbr) n0 c3 (CHead x0 (Bind Abbr) x1) 
+H8 u) H9 H10)))))))) H6)) (H c0 c3 H1 d1 t0 (drop_gen_drop (Bind Abst) c0 
+(CHead d1 (Bind Abst) t0) t n0 H5)))))))))))))) c1 c2 H0)))))) n)).
 
index 8025b79bc7b655aebe1be7c9e2fa9c0e2b81598e..ea24eb298b2e563ce22cf307049f626cd291f7c3 100644 (file)
@@ -26,12 +26,11 @@ u2))))))))))) (f2: (\forall (c1: C).(\forall (c2: C).((csubt g c1 c2) \to ((P
 c1 c2) \to (\forall (u: T).(\forall (t: T).((ty3 g c1 u t) \to ((ty3 g c2 u 
 t) \to (P (CHead c1 (Bind Abst) t) (CHead c2 (Bind Abbr) u))))))))))) (c: C) 
 (c0: C) (c1: csubt g c c0) on c1: P c c0 \def match c1 with [(csubt_sort n) 
-\Rightarrow (f n) | (csubt_head c2 c3 c4 k u) \Rightarrow (let TMP_3 \def 
-((csubt_ind g P f f0 f1 f2) c2 c3 c4) in (f0 c2 c3 c4 TMP_3 k u)) | 
-(csubt_void c2 c3 c4 b n u1 u2) \Rightarrow (let TMP_2 \def ((csubt_ind g P f 
-f0 f1 f2) c2 c3 c4) in (f1 c2 c3 c4 TMP_2 b n u1 u2)) | (csubt_abst c2 c3 c4 
-u t t0 t1) \Rightarrow (let TMP_1 \def ((csubt_ind g P f f0 f1 f2) c2 c3 c4) 
-in (f2 c2 c3 c4 TMP_1 u t t0 t1))].
+\Rightarrow (f n) | (csubt_head c2 c3 c4 k u) \Rightarrow (f0 c2 c3 c4 
+((csubt_ind g P f f0 f1 f2) c2 c3 c4) k u) | (csubt_void c2 c3 c4 b n u1 u2) 
+\Rightarrow (f1 c2 c3 c4 ((csubt_ind g P f f0 f1 f2) c2 c3 c4) b n u1 u2) | 
+(csubt_abst c2 c3 c4 u t t0 t1) \Rightarrow (f2 c2 c3 c4 ((csubt_ind g P f f0 
+f1 f2) c2 c3 c4) u t t0 t1)].
 
 theorem csubt_gen_abbr:
  \forall (g: G).(\forall (e1: C).(\forall (c2: C).(\forall (v: T).((csubt g 
@@ -39,98 +38,62 @@ theorem csubt_gen_abbr:
 (Bind Abbr) v))) (\lambda (e2: C).(csubt g e1 e2)))))))
 \def
  \lambda (g: G).(\lambda (e1: C).(\lambda (c2: C).(\lambda (v: T).(\lambda 
-(H: (csubt g (CHead e1 (Bind Abbr) v) c2)).(let TMP_1 \def (Bind Abbr) in 
-(let TMP_2 \def (CHead e1 TMP_1 v) in (let TMP_3 \def (\lambda (c: C).(csubt 
-g c c2)) in (let TMP_8 \def (\lambda (_: C).(let TMP_6 \def (\lambda (e2: 
-C).(let TMP_4 \def (Bind Abbr) in (let TMP_5 \def (CHead e2 TMP_4 v) in (eq C 
-c2 TMP_5)))) in (let TMP_7 \def (\lambda (e2: C).(csubt g e1 e2)) in (ex2 C 
-TMP_6 TMP_7)))) in (let TMP_96 \def (\lambda (y: C).(\lambda (H0: (csubt g y 
-c2)).(let TMP_13 \def (\lambda (c: C).(\lambda (c0: C).((eq C c (CHead e1 
-(Bind Abbr) v)) \to (let TMP_11 \def (\lambda (e2: C).(let TMP_9 \def (Bind 
-Abbr) in (let TMP_10 \def (CHead e2 TMP_9 v) in (eq C c0 TMP_10)))) in (let 
-TMP_12 \def (\lambda (e2: C).(csubt g e1 e2)) in (ex2 C TMP_11 TMP_12)))))) 
-in (let TMP_24 \def (\lambda (n: nat).(\lambda (H1: (eq C (CSort n) (CHead e1 
-(Bind Abbr) v))).(let TMP_14 \def (CSort n) in (let TMP_15 \def (\lambda (ee: 
-C).(match ee with [(CSort _) \Rightarrow True | (CHead _ _ _) \Rightarrow 
-False])) in (let TMP_16 \def (Bind Abbr) in (let TMP_17 \def (CHead e1 TMP_16 
-v) in (let H2 \def (eq_ind C TMP_14 TMP_15 I TMP_17 H1) in (let TMP_21 \def 
-(\lambda (e2: C).(let TMP_18 \def (CSort n) in (let TMP_19 \def (Bind Abbr) 
-in (let TMP_20 \def (CHead e2 TMP_19 v) in (eq C TMP_18 TMP_20))))) in (let 
-TMP_22 \def (\lambda (e2: C).(csubt g e1 e2)) in (let TMP_23 \def (ex2 C 
-TMP_21 TMP_22) in (False_ind TMP_23 H2))))))))))) in (let TMP_69 \def 
-(\lambda (c1: C).(\lambda (c3: C).(\lambda (H1: (csubt g c1 c3)).(\lambda 
-(H2: (((eq C c1 (CHead e1 (Bind Abbr) v)) \to (ex2 C (\lambda (e2: C).(eq C 
-c3 (CHead e2 (Bind Abbr) v))) (\lambda (e2: C).(csubt g e1 e2)))))).(\lambda 
-(k: K).(\lambda (u: T).(\lambda (H3: (eq C (CHead c1 k u) (CHead e1 (Bind 
-Abbr) v))).(let TMP_25 \def (\lambda (e: C).(match e with [(CSort _) 
-\Rightarrow c1 | (CHead c _ _) \Rightarrow c])) in (let TMP_26 \def (CHead c1 
-k u) in (let TMP_27 \def (Bind Abbr) in (let TMP_28 \def (CHead e1 TMP_27 v) 
-in (let H4 \def (f_equal C C TMP_25 TMP_26 TMP_28 H3) in (let TMP_29 \def 
-(\lambda (e: C).(match e with [(CSort _) \Rightarrow k | (CHead _ k0 _) 
-\Rightarrow k0])) in (let TMP_30 \def (CHead c1 k u) in (let TMP_31 \def 
-(Bind Abbr) in (let TMP_32 \def (CHead e1 TMP_31 v) in (let H5 \def (f_equal 
-C K TMP_29 TMP_30 TMP_32 H3) in (let TMP_33 \def (\lambda (e: C).(match e 
-with [(CSort _) \Rightarrow u | (CHead _ _ t) \Rightarrow t])) in (let TMP_34 
-\def (CHead c1 k u) in (let TMP_35 \def (Bind Abbr) in (let TMP_36 \def 
-(CHead e1 TMP_35 v) in (let H6 \def (f_equal C T TMP_33 TMP_34 TMP_36 H3) in 
-(let TMP_67 \def (\lambda (H7: (eq K k (Bind Abbr))).(\lambda (H8: (eq C c1 
-e1)).(let TMP_42 \def (\lambda (t: T).(let TMP_40 \def (\lambda (e2: C).(let 
-TMP_37 \def (CHead c3 k t) in (let TMP_38 \def (Bind Abbr) in (let TMP_39 
-\def (CHead e2 TMP_38 v) in (eq C TMP_37 TMP_39))))) in (let TMP_41 \def 
-(\lambda (e2: C).(csubt g e1 e2)) in (ex2 C TMP_40 TMP_41)))) in (let TMP_43 
-\def (Bind Abbr) in (let TMP_49 \def (\lambda (k0: K).(let TMP_47 \def 
-(\lambda (e2: C).(let TMP_44 \def (CHead c3 k0 v) in (let TMP_45 \def (Bind 
-Abbr) in (let TMP_46 \def (CHead e2 TMP_45 v) in (eq C TMP_44 TMP_46))))) in 
-(let TMP_48 \def (\lambda (e2: C).(csubt g e1 e2)) in (ex2 C TMP_47 
-TMP_48)))) in (let TMP_54 \def (\lambda (c: C).((eq C c (CHead e1 (Bind Abbr) 
-v)) \to (let TMP_52 \def (\lambda (e2: C).(let TMP_50 \def (Bind Abbr) in 
-(let TMP_51 \def (CHead e2 TMP_50 v) in (eq C c3 TMP_51)))) in (let TMP_53 
-\def (\lambda (e2: C).(csubt g e1 e2)) in (ex2 C TMP_52 TMP_53))))) in (let 
-H9 \def (eq_ind C c1 TMP_54 H2 e1 H8) in (let TMP_55 \def (\lambda (c: 
-C).(csubt g c c3)) in (let H10 \def (eq_ind C c1 TMP_55 H1 e1 H8) in (let 
-TMP_60 \def (\lambda (e2: C).(let TMP_56 \def (Bind Abbr) in (let TMP_57 \def 
-(CHead c3 TMP_56 v) in (let TMP_58 \def (Bind Abbr) in (let TMP_59 \def 
-(CHead e2 TMP_58 v) in (eq C TMP_57 TMP_59)))))) in (let TMP_61 \def (\lambda 
-(e2: C).(csubt g e1 e2)) in (let TMP_62 \def (Bind Abbr) in (let TMP_63 \def 
-(CHead c3 TMP_62 v) in (let TMP_64 \def (refl_equal C TMP_63) in (let TMP_65 
-\def (ex_intro2 C TMP_60 TMP_61 c3 TMP_64 H10) in (let TMP_66 \def (eq_ind_r 
-K TMP_43 TMP_49 TMP_65 k H7) in (eq_ind_r T v TMP_42 TMP_66 u 
-H6))))))))))))))))) in (let TMP_68 \def (TMP_67 H5) in (TMP_68 
-H4))))))))))))))))))))))))) in (let TMP_82 \def (\lambda (c1: C).(\lambda 
-(c3: C).(\lambda (_: (csubt g c1 c3)).(\lambda (_: (((eq C c1 (CHead e1 (Bind 
+(H: (csubt g (CHead e1 (Bind Abbr) v) c2)).(insert_eq C (CHead e1 (Bind Abbr) 
+v) (\lambda (c: C).(csubt g c c2)) (\lambda (_: C).(ex2 C (\lambda (e2: 
+C).(eq C c2 (CHead e2 (Bind Abbr) v))) (\lambda (e2: C).(csubt g e1 e2)))) 
+(\lambda (y: C).(\lambda (H0: (csubt g y c2)).(csubt_ind g (\lambda (c: 
+C).(\lambda (c0: C).((eq C c (CHead e1 (Bind Abbr) v)) \to (ex2 C (\lambda 
+(e2: C).(eq C c0 (CHead e2 (Bind Abbr) v))) (\lambda (e2: C).(csubt g e1 
+e2)))))) (\lambda (n: nat).(\lambda (H1: (eq C (CSort n) (CHead e1 (Bind 
+Abbr) v))).(let H2 \def (eq_ind C (CSort n) (\lambda (ee: C).(match ee with 
+[(CSort _) \Rightarrow True | (CHead _ _ _) \Rightarrow False])) I (CHead e1 
+(Bind Abbr) v) H1) in (False_ind (ex2 C (\lambda (e2: C).(eq C (CSort n) 
+(CHead e2 (Bind Abbr) v))) (\lambda (e2: C).(csubt g e1 e2))) H2)))) (\lambda 
+(c1: C).(\lambda (c3: C).(\lambda (H1: (csubt g c1 c3)).(\lambda (H2: (((eq C 
+c1 (CHead e1 (Bind Abbr) v)) \to (ex2 C (\lambda (e2: C).(eq C c3 (CHead e2 
+(Bind Abbr) v))) (\lambda (e2: C).(csubt g e1 e2)))))).(\lambda (k: 
+K).(\lambda (u: T).(\lambda (H3: (eq C (CHead c1 k u) (CHead e1 (Bind Abbr) 
+v))).(let H4 \def (f_equal C C (\lambda (e: C).(match e with [(CSort _) 
+\Rightarrow c1 | (CHead c _ _) \Rightarrow c])) (CHead c1 k u) (CHead e1 
+(Bind Abbr) v) H3) in ((let H5 \def (f_equal C K (\lambda (e: C).(match e 
+with [(CSort _) \Rightarrow k | (CHead _ k0 _) \Rightarrow k0])) (CHead c1 k 
+u) (CHead e1 (Bind Abbr) v) H3) in ((let H6 \def (f_equal C T (\lambda (e: 
+C).(match e with [(CSort _) \Rightarrow u | (CHead _ _ t) \Rightarrow t])) 
+(CHead c1 k u) (CHead e1 (Bind Abbr) v) H3) in (\lambda (H7: (eq K k (Bind 
+Abbr))).(\lambda (H8: (eq C c1 e1)).(eq_ind_r T v (\lambda (t: T).(ex2 C 
+(\lambda (e2: C).(eq C (CHead c3 k t) (CHead e2 (Bind Abbr) v))) (\lambda 
+(e2: C).(csubt g e1 e2)))) (eq_ind_r K (Bind Abbr) (\lambda (k0: K).(ex2 C 
+(\lambda (e2: C).(eq C (CHead c3 k0 v) (CHead e2 (Bind Abbr) v))) (\lambda 
+(e2: C).(csubt g e1 e2)))) (let H9 \def (eq_ind C c1 (\lambda (c: C).((eq C c 
+(CHead e1 (Bind Abbr) v)) \to (ex2 C (\lambda (e2: C).(eq C c3 (CHead e2 
+(Bind Abbr) v))) (\lambda (e2: C).(csubt g e1 e2))))) H2 e1 H8) in (let H10 
+\def (eq_ind C c1 (\lambda (c: C).(csubt g c c3)) H1 e1 H8) in (ex_intro2 C 
+(\lambda (e2: C).(eq C (CHead c3 (Bind Abbr) v) (CHead e2 (Bind Abbr) v))) 
+(\lambda (e2: C).(csubt g e1 e2)) c3 (refl_equal C (CHead c3 (Bind Abbr) v)) 
+H10))) k H7) u H6)))) H5)) H4))))))))) (\lambda (c1: C).(\lambda (c3: 
+C).(\lambda (_: (csubt g c1 c3)).(\lambda (_: (((eq C c1 (CHead e1 (Bind 
 Abbr) v)) \to (ex2 C (\lambda (e2: C).(eq C c3 (CHead e2 (Bind Abbr) v))) 
 (\lambda (e2: C).(csubt g e1 e2)))))).(\lambda (b: B).(\lambda (_: (not (eq B 
 b Void))).(\lambda (u1: T).(\lambda (u2: T).(\lambda (H4: (eq C (CHead c1 
-(Bind Void) u1) (CHead e1 (Bind Abbr) v))).(let TMP_70 \def (Bind Void) in 
-(let TMP_71 \def (CHead c1 TMP_70 u1) in (let TMP_72 \def (\lambda (ee: 
-C).(match ee with [(CSort _) \Rightarrow False | (CHead _ k _) \Rightarrow 
-(match k with [(Bind b0) \Rightarrow (match b0 with [Abbr \Rightarrow False | 
-Abst \Rightarrow False | Void \Rightarrow True]) | (Flat _) \Rightarrow 
-False])])) in (let TMP_73 \def (Bind Abbr) in (let TMP_74 \def (CHead e1 
-TMP_73 v) in (let H5 \def (eq_ind C TMP_71 TMP_72 I TMP_74 H4) in (let TMP_79 
-\def (\lambda (e2: C).(let TMP_75 \def (Bind b) in (let TMP_76 \def (CHead c3 
-TMP_75 u2) in (let TMP_77 \def (Bind Abbr) in (let TMP_78 \def (CHead e2 
-TMP_77 v) in (eq C TMP_76 TMP_78)))))) in (let TMP_80 \def (\lambda (e2: 
-C).(csubt g e1 e2)) in (let TMP_81 \def (ex2 C TMP_79 TMP_80) in (False_ind 
-TMP_81 H5))))))))))))))))))) in (let TMP_95 \def (\lambda (c1: C).(\lambda 
-(c3: C).(\lambda (_: (csubt g c1 c3)).(\lambda (_: (((eq C c1 (CHead e1 (Bind 
-Abbr) v)) \to (ex2 C (\lambda (e2: C).(eq C c3 (CHead e2 (Bind Abbr) v))) 
-(\lambda (e2: C).(csubt g e1 e2)))))).(\lambda (u: T).(\lambda (t: 
-T).(\lambda (_: (ty3 g c1 u t)).(\lambda (_: (ty3 g c3 u t)).(\lambda (H5: 
-(eq C (CHead c1 (Bind Abst) t) (CHead e1 (Bind Abbr) v))).(let TMP_83 \def 
-(Bind Abst) in (let TMP_84 \def (CHead c1 TMP_83 t) in (let TMP_85 \def 
-(\lambda (ee: C).(match ee with [(CSort _) \Rightarrow False | (CHead _ k _) 
-\Rightarrow (match k with [(Bind b) \Rightarrow (match b with [Abbr 
-\Rightarrow False | Abst \Rightarrow True | Void \Rightarrow False]) | (Flat 
-_) \Rightarrow False])])) in (let TMP_86 \def (Bind Abbr) in (let TMP_87 \def 
-(CHead e1 TMP_86 v) in (let H6 \def (eq_ind C TMP_84 TMP_85 I TMP_87 H5) in 
-(let TMP_92 \def (\lambda (e2: C).(let TMP_88 \def (Bind Abbr) in (let TMP_89 
-\def (CHead c3 TMP_88 u) in (let TMP_90 \def (Bind Abbr) in (let TMP_91 \def 
-(CHead e2 TMP_90 v) in (eq C TMP_89 TMP_91)))))) in (let TMP_93 \def (\lambda 
-(e2: C).(csubt g e1 e2)) in (let TMP_94 \def (ex2 C TMP_92 TMP_93) in 
-(False_ind TMP_94 H6))))))))))))))))))) in (csubt_ind g TMP_13 TMP_24 TMP_69 
-TMP_82 TMP_95 y c2 H0)))))))) in (insert_eq C TMP_2 TMP_3 TMP_8 TMP_96 
-H)))))))))).
+(Bind Void) u1) (CHead e1 (Bind Abbr) v))).(let H5 \def (eq_ind C (CHead c1 
+(Bind Void) u1) (\lambda (ee: C).(match ee with [(CSort _) \Rightarrow False 
+| (CHead _ k _) \Rightarrow (match k with [(Bind b0) \Rightarrow (match b0 
+with [Abbr \Rightarrow False | Abst \Rightarrow False | Void \Rightarrow 
+True]) | (Flat _) \Rightarrow False])])) I (CHead e1 (Bind Abbr) v) H4) in 
+(False_ind (ex2 C (\lambda (e2: C).(eq C (CHead c3 (Bind b) u2) (CHead e2 
+(Bind Abbr) v))) (\lambda (e2: C).(csubt g e1 e2))) H5))))))))))) (\lambda 
+(c1: C).(\lambda (c3: C).(\lambda (_: (csubt g c1 c3)).(\lambda (_: (((eq C 
+c1 (CHead e1 (Bind Abbr) v)) \to (ex2 C (\lambda (e2: C).(eq C c3 (CHead e2 
+(Bind Abbr) v))) (\lambda (e2: C).(csubt g e1 e2)))))).(\lambda (u: 
+T).(\lambda (t: T).(\lambda (_: (ty3 g c1 u t)).(\lambda (_: (ty3 g c3 u 
+t)).(\lambda (H5: (eq C (CHead c1 (Bind Abst) t) (CHead e1 (Bind Abbr) 
+v))).(let H6 \def (eq_ind C (CHead c1 (Bind Abst) t) (\lambda (ee: C).(match 
+ee with [(CSort _) \Rightarrow False | (CHead _ k _) \Rightarrow (match k 
+with [(Bind b) \Rightarrow (match b with [Abbr \Rightarrow False | Abst 
+\Rightarrow True | Void \Rightarrow False]) | (Flat _) \Rightarrow False])])) 
+I (CHead e1 (Bind Abbr) v) H5) in (False_ind (ex2 C (\lambda (e2: C).(eq C 
+(CHead c3 (Bind Abbr) u) (CHead e2 (Bind Abbr) v))) (\lambda (e2: C).(csubt g 
+e1 e2))) H6))))))))))) y c2 H0))) H))))).
 
 theorem csubt_gen_abst:
  \forall (g: G).(\forall (e1: C).(\forall (c2: C).(\forall (v1: T).((csubt g 
@@ -141,205 +104,119 @@ C).(\lambda (_: T).(csubt g e1 e2))) (\lambda (_: C).(\lambda (v2: T).(ty3 g
 e1 v2 v1))) (\lambda (e2: C).(\lambda (v2: T).(ty3 g e2 v2 v1)))))))))
 \def
  \lambda (g: G).(\lambda (e1: C).(\lambda (c2: C).(\lambda (v1: T).(\lambda 
-(H: (csubt g (CHead e1 (Bind Abst) v1) c2)).(let TMP_1 \def (Bind Abst) in 
-(let TMP_2 \def (CHead e1 TMP_1 v1) in (let TMP_3 \def (\lambda (c: C).(csubt 
-g c c2)) in (let TMP_16 \def (\lambda (_: C).(let TMP_6 \def (\lambda (e2: 
-C).(let TMP_4 \def (Bind Abst) in (let TMP_5 \def (CHead e2 TMP_4 v1) in (eq 
-C c2 TMP_5)))) in (let TMP_7 \def (\lambda (e2: C).(csubt g e1 e2)) in (let 
-TMP_8 \def (ex2 C TMP_6 TMP_7) in (let TMP_11 \def (\lambda (e2: C).(\lambda 
-(v2: T).(let TMP_9 \def (Bind Abbr) in (let TMP_10 \def (CHead e2 TMP_9 v2) 
-in (eq C c2 TMP_10))))) in (let TMP_12 \def (\lambda (e2: C).(\lambda (_: 
-T).(csubt g e1 e2))) in (let TMP_13 \def (\lambda (_: C).(\lambda (v2: 
-T).(ty3 g e1 v2 v1))) in (let TMP_14 \def (\lambda (e2: C).(\lambda (v2: 
-T).(ty3 g e2 v2 v1))) in (let TMP_15 \def (ex4_2 C T TMP_11 TMP_12 TMP_13 
-TMP_14) in (or TMP_8 TMP_15)))))))))) in (let TMP_218 \def (\lambda (y: 
-C).(\lambda (H0: (csubt g y c2)).(let TMP_29 \def (\lambda (c: C).(\lambda 
-(c0: C).((eq C c (CHead e1 (Bind Abst) v1)) \to (let TMP_19 \def (\lambda 
-(e2: C).(let TMP_17 \def (Bind Abst) in (let TMP_18 \def (CHead e2 TMP_17 v1) 
-in (eq C c0 TMP_18)))) in (let TMP_20 \def (\lambda (e2: C).(csubt g e1 e2)) 
-in (let TMP_21 \def (ex2 C TMP_19 TMP_20) in (let TMP_24 \def (\lambda (e2: 
-C).(\lambda (v2: T).(let TMP_22 \def (Bind Abbr) in (let TMP_23 \def (CHead 
-e2 TMP_22 v2) in (eq C c0 TMP_23))))) in (let TMP_25 \def (\lambda (e2: 
-C).(\lambda (_: T).(csubt g e1 e2))) in (let TMP_26 \def (\lambda (_: 
-C).(\lambda (v2: T).(ty3 g e1 v2 v1))) in (let TMP_27 \def (\lambda (e2: 
-C).(\lambda (v2: T).(ty3 g e2 v2 v1))) in (let TMP_28 \def (ex4_2 C T TMP_24 
-TMP_25 TMP_26 TMP_27) in (or TMP_21 TMP_28)))))))))))) in (let TMP_49 \def 
-(\lambda (n: nat).(\lambda (H1: (eq C (CSort n) (CHead e1 (Bind Abst) 
-v1))).(let TMP_30 \def (CSort n) in (let TMP_31 \def (\lambda (ee: C).(match 
-ee with [(CSort _) \Rightarrow True | (CHead _ _ _) \Rightarrow False])) in 
-(let TMP_32 \def (Bind Abst) in (let TMP_33 \def (CHead e1 TMP_32 v1) in (let 
-H2 \def (eq_ind C TMP_30 TMP_31 I TMP_33 H1) in (let TMP_37 \def (\lambda 
-(e2: C).(let TMP_34 \def (CSort n) in (let TMP_35 \def (Bind Abst) in (let 
-TMP_36 \def (CHead e2 TMP_35 v1) in (eq C TMP_34 TMP_36))))) in (let TMP_38 
-\def (\lambda (e2: C).(csubt g e1 e2)) in (let TMP_39 \def (ex2 C TMP_37 
-TMP_38) in (let TMP_43 \def (\lambda (e2: C).(\lambda (v2: T).(let TMP_40 
-\def (CSort n) in (let TMP_41 \def (Bind Abbr) in (let TMP_42 \def (CHead e2 
-TMP_41 v2) in (eq C TMP_40 TMP_42)))))) in (let TMP_44 \def (\lambda (e2: 
-C).(\lambda (_: T).(csubt g e1 e2))) in (let TMP_45 \def (\lambda (_: 
-C).(\lambda (v2: T).(ty3 g e1 v2 v1))) in (let TMP_46 \def (\lambda (e2: 
-C).(\lambda (v2: T).(ty3 g e2 v2 v1))) in (let TMP_47 \def (ex4_2 C T TMP_43 
-TMP_44 TMP_45 TMP_46) in (let TMP_48 \def (or TMP_39 TMP_47) in (False_ind 
-TMP_48 H2))))))))))))))))) in (let TMP_137 \def (\lambda (c1: C).(\lambda 
-(c3: C).(\lambda (H1: (csubt g c1 c3)).(\lambda (H2: (((eq C c1 (CHead e1 
-(Bind Abst) v1)) \to (or (ex2 C (\lambda (e2: C).(eq C c3 (CHead e2 (Bind 
-Abst) v1))) (\lambda (e2: C).(csubt g e1 e2))) (ex4_2 C T (\lambda (e2: 
+(H: (csubt g (CHead e1 (Bind Abst) v1) c2)).(insert_eq C (CHead e1 (Bind 
+Abst) v1) (\lambda (c: C).(csubt g c c2)) (\lambda (_: C).(or (ex2 C (\lambda 
+(e2: C).(eq C c2 (CHead e2 (Bind Abst) v1))) (\lambda (e2: C).(csubt g e1 
+e2))) (ex4_2 C T (\lambda (e2: C).(\lambda (v2: T).(eq C c2 (CHead e2 (Bind 
+Abbr) v2)))) (\lambda (e2: C).(\lambda (_: T).(csubt g e1 e2))) (\lambda (_: 
+C).(\lambda (v2: T).(ty3 g e1 v2 v1))) (\lambda (e2: C).(\lambda (v2: T).(ty3 
+g e2 v2 v1)))))) (\lambda (y: C).(\lambda (H0: (csubt g y c2)).(csubt_ind g 
+(\lambda (c: C).(\lambda (c0: C).((eq C c (CHead e1 (Bind Abst) v1)) \to (or 
+(ex2 C (\lambda (e2: C).(eq C c0 (CHead e2 (Bind Abst) v1))) (\lambda (e2: 
+C).(csubt g e1 e2))) (ex4_2 C T (\lambda (e2: C).(\lambda (v2: T).(eq C c0 
+(CHead e2 (Bind Abbr) v2)))) (\lambda (e2: C).(\lambda (_: T).(csubt g e1 
+e2))) (\lambda (_: C).(\lambda (v2: T).(ty3 g e1 v2 v1))) (\lambda (e2: 
+C).(\lambda (v2: T).(ty3 g e2 v2 v1)))))))) (\lambda (n: nat).(\lambda (H1: 
+(eq C (CSort n) (CHead e1 (Bind Abst) v1))).(let H2 \def (eq_ind C (CSort n) 
+(\lambda (ee: C).(match ee with [(CSort _) \Rightarrow True | (CHead _ _ _) 
+\Rightarrow False])) I (CHead e1 (Bind Abst) v1) H1) in (False_ind (or (ex2 C 
+(\lambda (e2: C).(eq C (CSort n) (CHead e2 (Bind Abst) v1))) (\lambda (e2: 
+C).(csubt g e1 e2))) (ex4_2 C T (\lambda (e2: C).(\lambda (v2: T).(eq C 
+(CSort n) (CHead e2 (Bind Abbr) v2)))) (\lambda (e2: C).(\lambda (_: 
+T).(csubt g e1 e2))) (\lambda (_: C).(\lambda (v2: T).(ty3 g e1 v2 v1))) 
+(\lambda (e2: C).(\lambda (v2: T).(ty3 g e2 v2 v1))))) H2)))) (\lambda (c1: 
+C).(\lambda (c3: C).(\lambda (H1: (csubt g c1 c3)).(\lambda (H2: (((eq C c1 
+(CHead e1 (Bind Abst) v1)) \to (or (ex2 C (\lambda (e2: C).(eq C c3 (CHead e2 
+(Bind Abst) v1))) (\lambda (e2: C).(csubt g e1 e2))) (ex4_2 C T (\lambda (e2: 
 C).(\lambda (v2: T).(eq C c3 (CHead e2 (Bind Abbr) v2)))) (\lambda (e2: 
 C).(\lambda (_: T).(csubt g e1 e2))) (\lambda (_: C).(\lambda (v2: T).(ty3 g 
 e1 v2 v1))) (\lambda (e2: C).(\lambda (v2: T).(ty3 g e2 v2 
 v1)))))))).(\lambda (k: K).(\lambda (u: T).(\lambda (H3: (eq C (CHead c1 k u) 
-(CHead e1 (Bind Abst) v1))).(let TMP_50 \def (\lambda (e: C).(match e with 
-[(CSort _) \Rightarrow c1 | (CHead c _ _) \Rightarrow c])) in (let TMP_51 
-\def (CHead c1 k u) in (let TMP_52 \def (Bind Abst) in (let TMP_53 \def 
-(CHead e1 TMP_52 v1) in (let H4 \def (f_equal C C TMP_50 TMP_51 TMP_53 H3) in 
-(let TMP_54 \def (\lambda (e: C).(match e with [(CSort _) \Rightarrow k | 
-(CHead _ k0 _) \Rightarrow k0])) in (let TMP_55 \def (CHead c1 k u) in (let 
-TMP_56 \def (Bind Abst) in (let TMP_57 \def (CHead e1 TMP_56 v1) in (let H5 
-\def (f_equal C K TMP_54 TMP_55 TMP_57 H3) in (let TMP_58 \def (\lambda (e: 
-C).(match e with [(CSort _) \Rightarrow u | (CHead _ _ t) \Rightarrow t])) in 
-(let TMP_59 \def (CHead c1 k u) in (let TMP_60 \def (Bind Abst) in (let 
-TMP_61 \def (CHead e1 TMP_60 v1) in (let H6 \def (f_equal C T TMP_58 TMP_59 
-TMP_61 H3) in (let TMP_135 \def (\lambda (H7: (eq K k (Bind Abst))).(\lambda 
-(H8: (eq C c1 e1)).(let TMP_76 \def (\lambda (t: T).(let TMP_65 \def (\lambda 
-(e2: C).(let TMP_62 \def (CHead c3 k t) in (let TMP_63 \def (Bind Abst) in 
-(let TMP_64 \def (CHead e2 TMP_63 v1) in (eq C TMP_62 TMP_64))))) in (let 
-TMP_66 \def (\lambda (e2: C).(csubt g e1 e2)) in (let TMP_67 \def (ex2 C 
-TMP_65 TMP_66) in (let TMP_71 \def (\lambda (e2: C).(\lambda (v2: T).(let 
-TMP_68 \def (CHead c3 k t) in (let TMP_69 \def (Bind Abbr) in (let TMP_70 
-\def (CHead e2 TMP_69 v2) in (eq C TMP_68 TMP_70)))))) in (let TMP_72 \def 
-(\lambda (e2: C).(\lambda (_: T).(csubt g e1 e2))) in (let TMP_73 \def 
-(\lambda (_: C).(\lambda (v2: T).(ty3 g e1 v2 v1))) in (let TMP_74 \def 
-(\lambda (e2: C).(\lambda (v2: T).(ty3 g e2 v2 v1))) in (let TMP_75 \def 
-(ex4_2 C T TMP_71 TMP_72 TMP_73 TMP_74) in (or TMP_67 TMP_75)))))))))) in 
-(let TMP_77 \def (Bind Abst) in (let TMP_92 \def (\lambda (k0: K).(let TMP_81 
-\def (\lambda (e2: C).(let TMP_78 \def (CHead c3 k0 v1) in (let TMP_79 \def 
-(Bind Abst) in (let TMP_80 \def (CHead e2 TMP_79 v1) in (eq C TMP_78 
-TMP_80))))) in (let TMP_82 \def (\lambda (e2: C).(csubt g e1 e2)) in (let 
-TMP_83 \def (ex2 C TMP_81 TMP_82) in (let TMP_87 \def (\lambda (e2: 
-C).(\lambda (v2: T).(let TMP_84 \def (CHead c3 k0 v1) in (let TMP_85 \def 
-(Bind Abbr) in (let TMP_86 \def (CHead e2 TMP_85 v2) in (eq C TMP_84 
-TMP_86)))))) in (let TMP_88 \def (\lambda (e2: C).(\lambda (_: T).(csubt g e1 
-e2))) in (let TMP_89 \def (\lambda (_: C).(\lambda (v2: T).(ty3 g e1 v2 v1))) 
-in (let TMP_90 \def (\lambda (e2: C).(\lambda (v2: T).(ty3 g e2 v2 v1))) in 
-(let TMP_91 \def (ex4_2 C T TMP_87 TMP_88 TMP_89 TMP_90) in (or TMP_83 
-TMP_91)))))))))) in (let TMP_105 \def (\lambda (c: C).((eq C c (CHead e1 
-(Bind Abst) v1)) \to (let TMP_95 \def (\lambda (e2: C).(let TMP_93 \def (Bind 
-Abst) in (let TMP_94 \def (CHead e2 TMP_93 v1) in (eq C c3 TMP_94)))) in (let 
-TMP_96 \def (\lambda (e2: C).(csubt g e1 e2)) in (let TMP_97 \def (ex2 C 
-TMP_95 TMP_96) in (let TMP_100 \def (\lambda (e2: C).(\lambda (v2: T).(let 
-TMP_98 \def (Bind Abbr) in (let TMP_99 \def (CHead e2 TMP_98 v2) in (eq C c3 
-TMP_99))))) in (let TMP_101 \def (\lambda (e2: C).(\lambda (_: T).(csubt g e1 
-e2))) in (let TMP_102 \def (\lambda (_: C).(\lambda (v2: T).(ty3 g e1 v2 
-v1))) in (let TMP_103 \def (\lambda (e2: C).(\lambda (v2: T).(ty3 g e2 v2 
-v1))) in (let TMP_104 \def (ex4_2 C T TMP_100 TMP_101 TMP_102 TMP_103) in (or 
-TMP_97 TMP_104))))))))))) in (let H9 \def (eq_ind C c1 TMP_105 H2 e1 H8) in 
-(let TMP_106 \def (\lambda (c: C).(csubt g c c3)) in (let H10 \def (eq_ind C 
-c1 TMP_106 H1 e1 H8) in (let TMP_111 \def (\lambda (e2: C).(let TMP_107 \def 
-(Bind Abst) in (let TMP_108 \def (CHead c3 TMP_107 v1) in (let TMP_109 \def 
-(Bind Abst) in (let TMP_110 \def (CHead e2 TMP_109 v1) in (eq C TMP_108 
-TMP_110)))))) in (let TMP_112 \def (\lambda (e2: C).(csubt g e1 e2)) in (let 
-TMP_113 \def (ex2 C TMP_111 TMP_112) in (let TMP_118 \def (\lambda (e2: 
-C).(\lambda (v2: T).(let TMP_114 \def (Bind Abst) in (let TMP_115 \def (CHead 
-c3 TMP_114 v1) in (let TMP_116 \def (Bind Abbr) in (let TMP_117 \def (CHead 
-e2 TMP_116 v2) in (eq C TMP_115 TMP_117))))))) in (let TMP_119 \def (\lambda 
-(e2: C).(\lambda (_: T).(csubt g e1 e2))) in (let TMP_120 \def (\lambda (_: 
-C).(\lambda (v2: T).(ty3 g e1 v2 v1))) in (let TMP_121 \def (\lambda (e2: 
-C).(\lambda (v2: T).(ty3 g e2 v2 v1))) in (let TMP_122 \def (ex4_2 C T 
-TMP_118 TMP_119 TMP_120 TMP_121) in (let TMP_127 \def (\lambda (e2: C).(let 
-TMP_123 \def (Bind Abst) in (let TMP_124 \def (CHead c3 TMP_123 v1) in (let 
-TMP_125 \def (Bind Abst) in (let TMP_126 \def (CHead e2 TMP_125 v1) in (eq C 
-TMP_124 TMP_126)))))) in (let TMP_128 \def (\lambda (e2: C).(csubt g e1 e2)) 
-in (let TMP_129 \def (Bind Abst) in (let TMP_130 \def (CHead c3 TMP_129 v1) 
-in (let TMP_131 \def (refl_equal C TMP_130) in (let TMP_132 \def (ex_intro2 C 
-TMP_127 TMP_128 c3 TMP_131 H10) in (let TMP_133 \def (or_introl TMP_113 
-TMP_122 TMP_132) in (let TMP_134 \def (eq_ind_r K TMP_77 TMP_92 TMP_133 k H7) 
-in (eq_ind_r T v1 TMP_76 TMP_134 u H6)))))))))))))))))))))))))) in (let 
-TMP_136 \def (TMP_135 H5) in (TMP_136 H4))))))))))))))))))))))))) in (let 
-TMP_160 \def (\lambda (c1: C).(\lambda (c3: C).(\lambda (_: (csubt g c1 
-c3)).(\lambda (_: (((eq C c1 (CHead e1 (Bind Abst) v1)) \to (or (ex2 C 
+(CHead e1 (Bind Abst) v1))).(let H4 \def (f_equal C C (\lambda (e: C).(match 
+e with [(CSort _) \Rightarrow c1 | (CHead c _ _) \Rightarrow c])) (CHead c1 k 
+u) (CHead e1 (Bind Abst) v1) H3) in ((let H5 \def (f_equal C K (\lambda (e: 
+C).(match e with [(CSort _) \Rightarrow k | (CHead _ k0 _) \Rightarrow k0])) 
+(CHead c1 k u) (CHead e1 (Bind Abst) v1) H3) in ((let H6 \def (f_equal C T 
+(\lambda (e: C).(match e with [(CSort _) \Rightarrow u | (CHead _ _ t) 
+\Rightarrow t])) (CHead c1 k u) (CHead e1 (Bind Abst) v1) H3) in (\lambda 
+(H7: (eq K k (Bind Abst))).(\lambda (H8: (eq C c1 e1)).(eq_ind_r T v1 
+(\lambda (t: T).(or (ex2 C (\lambda (e2: C).(eq C (CHead c3 k t) (CHead e2 
+(Bind Abst) v1))) (\lambda (e2: C).(csubt g e1 e2))) (ex4_2 C T (\lambda (e2: 
+C).(\lambda (v2: T).(eq C (CHead c3 k t) (CHead e2 (Bind Abbr) v2)))) 
+(\lambda (e2: C).(\lambda (_: T).(csubt g e1 e2))) (\lambda (_: C).(\lambda 
+(v2: T).(ty3 g e1 v2 v1))) (\lambda (e2: C).(\lambda (v2: T).(ty3 g e2 v2 
+v1)))))) (eq_ind_r K (Bind Abst) (\lambda (k0: K).(or (ex2 C (\lambda (e2: 
+C).(eq C (CHead c3 k0 v1) (CHead e2 (Bind Abst) v1))) (\lambda (e2: C).(csubt 
+g e1 e2))) (ex4_2 C T (\lambda (e2: C).(\lambda (v2: T).(eq C (CHead c3 k0 
+v1) (CHead e2 (Bind Abbr) v2)))) (\lambda (e2: C).(\lambda (_: T).(csubt g e1 
+e2))) (\lambda (_: C).(\lambda (v2: T).(ty3 g e1 v2 v1))) (\lambda (e2: 
+C).(\lambda (v2: T).(ty3 g e2 v2 v1)))))) (let H9 \def (eq_ind C c1 (\lambda 
+(c: C).((eq C c (CHead e1 (Bind Abst) v1)) \to (or (ex2 C (\lambda (e2: 
+C).(eq C c3 (CHead e2 (Bind Abst) v1))) (\lambda (e2: C).(csubt g e1 e2))) 
+(ex4_2 C T (\lambda (e2: C).(\lambda (v2: T).(eq C c3 (CHead e2 (Bind Abbr) 
+v2)))) (\lambda (e2: C).(\lambda (_: T).(csubt g e1 e2))) (\lambda (_: 
+C).(\lambda (v2: T).(ty3 g e1 v2 v1))) (\lambda (e2: C).(\lambda (v2: T).(ty3 
+g e2 v2 v1))))))) H2 e1 H8) in (let H10 \def (eq_ind C c1 (\lambda (c: 
+C).(csubt g c c3)) H1 e1 H8) in (or_introl (ex2 C (\lambda (e2: C).(eq C 
+(CHead c3 (Bind Abst) v1) (CHead e2 (Bind Abst) v1))) (\lambda (e2: C).(csubt 
+g e1 e2))) (ex4_2 C T (\lambda (e2: C).(\lambda (v2: T).(eq C (CHead c3 (Bind 
+Abst) v1) (CHead e2 (Bind Abbr) v2)))) (\lambda (e2: C).(\lambda (_: 
+T).(csubt g e1 e2))) (\lambda (_: C).(\lambda (v2: T).(ty3 g e1 v2 v1))) 
+(\lambda (e2: C).(\lambda (v2: T).(ty3 g e2 v2 v1)))) (ex_intro2 C (\lambda 
+(e2: C).(eq C (CHead c3 (Bind Abst) v1) (CHead e2 (Bind Abst) v1))) (\lambda 
+(e2: C).(csubt g e1 e2)) c3 (refl_equal C (CHead c3 (Bind Abst) v1)) H10)))) 
+k H7) u H6)))) H5)) H4))))))))) (\lambda (c1: C).(\lambda (c3: C).(\lambda 
+(_: (csubt g c1 c3)).(\lambda (_: (((eq C c1 (CHead e1 (Bind Abst) v1)) \to 
+(or (ex2 C (\lambda (e2: C).(eq C c3 (CHead e2 (Bind Abst) v1))) (\lambda 
+(e2: C).(csubt g e1 e2))) (ex4_2 C T (\lambda (e2: C).(\lambda (v2: T).(eq C 
+c3 (CHead e2 (Bind Abbr) v2)))) (\lambda (e2: C).(\lambda (_: T).(csubt g e1 
+e2))) (\lambda (_: C).(\lambda (v2: T).(ty3 g e1 v2 v1))) (\lambda (e2: 
+C).(\lambda (v2: T).(ty3 g e2 v2 v1)))))))).(\lambda (b: B).(\lambda (_: (not 
+(eq B b Void))).(\lambda (u1: T).(\lambda (u2: T).(\lambda (H4: (eq C (CHead 
+c1 (Bind Void) u1) (CHead e1 (Bind Abst) v1))).(let H5 \def (eq_ind C (CHead 
+c1 (Bind Void) u1) (\lambda (ee: C).(match ee with [(CSort _) \Rightarrow 
+False | (CHead _ k _) \Rightarrow (match k with [(Bind b0) \Rightarrow (match 
+b0 with [Abbr \Rightarrow False | Abst \Rightarrow False | Void \Rightarrow 
+True]) | (Flat _) \Rightarrow False])])) I (CHead e1 (Bind Abst) v1) H4) in 
+(False_ind (or (ex2 C (\lambda (e2: C).(eq C (CHead c3 (Bind b) u2) (CHead e2 
+(Bind Abst) v1))) (\lambda (e2: C).(csubt g e1 e2))) (ex4_2 C T (\lambda (e2: 
+C).(\lambda (v2: T).(eq C (CHead c3 (Bind b) u2) (CHead e2 (Bind Abbr) v2)))) 
+(\lambda (e2: C).(\lambda (_: T).(csubt g e1 e2))) (\lambda (_: C).(\lambda 
+(v2: T).(ty3 g e1 v2 v1))) (\lambda (e2: C).(\lambda (v2: T).(ty3 g e2 v2 
+v1))))) H5))))))))))) (\lambda (c1: C).(\lambda (c3: C).(\lambda (H1: (csubt 
+g c1 c3)).(\lambda (H2: (((eq C c1 (CHead e1 (Bind Abst) v1)) \to (or (ex2 C 
 (\lambda (e2: C).(eq C c3 (CHead e2 (Bind Abst) v1))) (\lambda (e2: C).(csubt 
 g e1 e2))) (ex4_2 C T (\lambda (e2: C).(\lambda (v2: T).(eq C c3 (CHead e2 
 (Bind Abbr) v2)))) (\lambda (e2: C).(\lambda (_: T).(csubt g e1 e2))) 
 (\lambda (_: C).(\lambda (v2: T).(ty3 g e1 v2 v1))) (\lambda (e2: C).(\lambda 
-(v2: T).(ty3 g e2 v2 v1)))))))).(\lambda (b: B).(\lambda (_: (not (eq B b 
-Void))).(\lambda (u1: T).(\lambda (u2: T).(\lambda (H4: (eq C (CHead c1 (Bind 
-Void) u1) (CHead e1 (Bind Abst) v1))).(let TMP_138 \def (Bind Void) in (let 
-TMP_139 \def (CHead c1 TMP_138 u1) in (let TMP_140 \def (\lambda (ee: 
-C).(match ee with [(CSort _) \Rightarrow False | (CHead _ k _) \Rightarrow 
-(match k with [(Bind b0) \Rightarrow (match b0 with [Abbr \Rightarrow False | 
-Abst \Rightarrow False | Void \Rightarrow True]) | (Flat _) \Rightarrow 
-False])])) in (let TMP_141 \def (Bind Abst) in (let TMP_142 \def (CHead e1 
-TMP_141 v1) in (let H5 \def (eq_ind C TMP_139 TMP_140 I TMP_142 H4) in (let 
-TMP_147 \def (\lambda (e2: C).(let TMP_143 \def (Bind b) in (let TMP_144 \def 
-(CHead c3 TMP_143 u2) in (let TMP_145 \def (Bind Abst) in (let TMP_146 \def 
-(CHead e2 TMP_145 v1) in (eq C TMP_144 TMP_146)))))) in (let TMP_148 \def 
-(\lambda (e2: C).(csubt g e1 e2)) in (let TMP_149 \def (ex2 C TMP_147 
-TMP_148) in (let TMP_154 \def (\lambda (e2: C).(\lambda (v2: T).(let TMP_150 
-\def (Bind b) in (let TMP_151 \def (CHead c3 TMP_150 u2) in (let TMP_152 \def 
-(Bind Abbr) in (let TMP_153 \def (CHead e2 TMP_152 v2) in (eq C TMP_151 
-TMP_153))))))) in (let TMP_155 \def (\lambda (e2: C).(\lambda (_: T).(csubt g 
-e1 e2))) in (let TMP_156 \def (\lambda (_: C).(\lambda (v2: T).(ty3 g e1 v2 
-v1))) in (let TMP_157 \def (\lambda (e2: C).(\lambda (v2: T).(ty3 g e2 v2 
-v1))) in (let TMP_158 \def (ex4_2 C T TMP_154 TMP_155 TMP_156 TMP_157) in 
-(let TMP_159 \def (or TMP_149 TMP_158) in (False_ind TMP_159 
-H5))))))))))))))))))))))))) in (let TMP_217 \def (\lambda (c1: C).(\lambda 
-(c3: C).(\lambda (H1: (csubt g c1 c3)).(\lambda (H2: (((eq C c1 (CHead e1 
-(Bind Abst) v1)) \to (or (ex2 C (\lambda (e2: C).(eq C c3 (CHead e2 (Bind 
-Abst) v1))) (\lambda (e2: C).(csubt g e1 e2))) (ex4_2 C T (\lambda (e2: 
-C).(\lambda (v2: T).(eq C c3 (CHead e2 (Bind Abbr) v2)))) (\lambda (e2: 
-C).(\lambda (_: T).(csubt g e1 e2))) (\lambda (_: C).(\lambda (v2: T).(ty3 g 
-e1 v2 v1))) (\lambda (e2: C).(\lambda (v2: T).(ty3 g e2 v2 
-v1)))))))).(\lambda (u: T).(\lambda (t: T).(\lambda (H3: (ty3 g c1 u 
-t)).(\lambda (H4: (ty3 g c3 u t)).(\lambda (H5: (eq C (CHead c1 (Bind Abst) 
-t) (CHead e1 (Bind Abst) v1))).(let TMP_161 \def (\lambda (e: C).(match e 
-with [(CSort _) \Rightarrow c1 | (CHead c _ _) \Rightarrow c])) in (let 
-TMP_162 \def (Bind Abst) in (let TMP_163 \def (CHead c1 TMP_162 t) in (let 
-TMP_164 \def (Bind Abst) in (let TMP_165 \def (CHead e1 TMP_164 v1) in (let 
-H6 \def (f_equal C C TMP_161 TMP_163 TMP_165 H5) in (let TMP_166 \def 
-(\lambda (e: C).(match e with [(CSort _) \Rightarrow t | (CHead _ _ t0) 
-\Rightarrow t0])) in (let TMP_167 \def (Bind Abst) in (let TMP_168 \def 
-(CHead c1 TMP_167 t) in (let TMP_169 \def (Bind Abst) in (let TMP_170 \def 
-(CHead e1 TMP_169 v1) in (let H7 \def (f_equal C T TMP_166 TMP_168 TMP_170 
-H5) in (let TMP_216 \def (\lambda (H8: (eq C c1 e1)).(let TMP_171 \def 
-(\lambda (t0: T).(ty3 g c3 u t0)) in (let H9 \def (eq_ind T t TMP_171 H4 v1 
-H7) in (let TMP_172 \def (\lambda (t0: T).(ty3 g c1 u t0)) in (let H10 \def 
-(eq_ind T t TMP_172 H3 v1 H7) in (let TMP_173 \def (\lambda (c: C).(ty3 g c u 
-v1)) in (let H11 \def (eq_ind C c1 TMP_173 H10 e1 H8) in (let TMP_186 \def 
-(\lambda (c: C).((eq C c (CHead e1 (Bind Abst) v1)) \to (let TMP_176 \def 
-(\lambda (e2: C).(let TMP_174 \def (Bind Abst) in (let TMP_175 \def (CHead e2 
-TMP_174 v1) in (eq C c3 TMP_175)))) in (let TMP_177 \def (\lambda (e2: 
-C).(csubt g e1 e2)) in (let TMP_178 \def (ex2 C TMP_176 TMP_177) in (let 
-TMP_181 \def (\lambda (e2: C).(\lambda (v2: T).(let TMP_179 \def (Bind Abbr) 
-in (let TMP_180 \def (CHead e2 TMP_179 v2) in (eq C c3 TMP_180))))) in (let 
-TMP_182 \def (\lambda (e2: C).(\lambda (_: T).(csubt g e1 e2))) in (let 
-TMP_183 \def (\lambda (_: C).(\lambda (v2: T).(ty3 g e1 v2 v1))) in (let 
-TMP_184 \def (\lambda (e2: C).(\lambda (v2: T).(ty3 g e2 v2 v1))) in (let 
-TMP_185 \def (ex4_2 C T TMP_181 TMP_182 TMP_183 TMP_184) in (or TMP_178 
-TMP_185))))))))))) in (let H12 \def (eq_ind C c1 TMP_186 H2 e1 H8) in (let 
-TMP_187 \def (\lambda (c: C).(csubt g c c3)) in (let H13 \def (eq_ind C c1 
-TMP_187 H1 e1 H8) in (let TMP_192 \def (\lambda (e2: C).(let TMP_188 \def 
-(Bind Abbr) in (let TMP_189 \def (CHead c3 TMP_188 u) in (let TMP_190 \def 
-(Bind Abst) in (let TMP_191 \def (CHead e2 TMP_190 v1) in (eq C TMP_189 
-TMP_191)))))) in (let TMP_193 \def (\lambda (e2: C).(csubt g e1 e2)) in (let 
-TMP_194 \def (ex2 C TMP_192 TMP_193) in (let TMP_199 \def (\lambda (e2: 
-C).(\lambda (v2: T).(let TMP_195 \def (Bind Abbr) in (let TMP_196 \def (CHead 
-c3 TMP_195 u) in (let TMP_197 \def (Bind Abbr) in (let TMP_198 \def (CHead e2 
-TMP_197 v2) in (eq C TMP_196 TMP_198))))))) in (let TMP_200 \def (\lambda 
-(e2: C).(\lambda (_: T).(csubt g e1 e2))) in (let TMP_201 \def (\lambda (_: 
-C).(\lambda (v2: T).(ty3 g e1 v2 v1))) in (let TMP_202 \def (\lambda (e2: 
-C).(\lambda (v2: T).(ty3 g e2 v2 v1))) in (let TMP_203 \def (ex4_2 C T 
-TMP_199 TMP_200 TMP_201 TMP_202) in (let TMP_208 \def (\lambda (e2: 
-C).(\lambda (v2: T).(let TMP_204 \def (Bind Abbr) in (let TMP_205 \def (CHead 
-c3 TMP_204 u) in (let TMP_206 \def (Bind Abbr) in (let TMP_207 \def (CHead e2 
-TMP_206 v2) in (eq C TMP_205 TMP_207))))))) in (let TMP_209 \def (\lambda 
-(e2: C).(\lambda (_: T).(csubt g e1 e2))) in (let TMP_210 \def (\lambda (_: 
-C).(\lambda (v2: T).(ty3 g e1 v2 v1))) in (let TMP_211 \def (\lambda (e2: 
-C).(\lambda (v2: T).(ty3 g e2 v2 v1))) in (let TMP_212 \def (Bind Abbr) in 
-(let TMP_213 \def (CHead c3 TMP_212 u) in (let TMP_214 \def (refl_equal C 
-TMP_213) in (let TMP_215 \def (ex4_2_intro C T TMP_208 TMP_209 TMP_210 
-TMP_211 c3 u TMP_214 H13 H11 H9) in (or_intror TMP_194 TMP_203 
-TMP_215)))))))))))))))))))))))))))) in (TMP_216 H6))))))))))))))))))))))) in 
-(csubt_ind g TMP_29 TMP_49 TMP_137 TMP_160 TMP_217 y c2 H0)))))))) in 
-(insert_eq C TMP_2 TMP_3 TMP_16 TMP_218 H)))))))))).
+(v2: T).(ty3 g e2 v2 v1)))))))).(\lambda (u: T).(\lambda (t: T).(\lambda (H3: 
+(ty3 g c1 u t)).(\lambda (H4: (ty3 g c3 u t)).(\lambda (H5: (eq C (CHead c1 
+(Bind Abst) t) (CHead e1 (Bind Abst) v1))).(let H6 \def (f_equal C C (\lambda 
+(e: C).(match e with [(CSort _) \Rightarrow c1 | (CHead c _ _) \Rightarrow 
+c])) (CHead c1 (Bind Abst) t) (CHead e1 (Bind Abst) v1) H5) in ((let H7 \def 
+(f_equal C T (\lambda (e: C).(match e with [(CSort _) \Rightarrow t | (CHead 
+_ _ t0) \Rightarrow t0])) (CHead c1 (Bind Abst) t) (CHead e1 (Bind Abst) v1) 
+H5) in (\lambda (H8: (eq C c1 e1)).(let H9 \def (eq_ind T t (\lambda (t0: 
+T).(ty3 g c3 u t0)) H4 v1 H7) in (let H10 \def (eq_ind T t (\lambda (t0: 
+T).(ty3 g c1 u t0)) H3 v1 H7) in (let H11 \def (eq_ind C c1 (\lambda (c: 
+C).(ty3 g c u v1)) H10 e1 H8) in (let H12 \def (eq_ind C c1 (\lambda (c: 
+C).((eq C c (CHead e1 (Bind Abst) v1)) \to (or (ex2 C (\lambda (e2: C).(eq C 
+c3 (CHead e2 (Bind Abst) v1))) (\lambda (e2: C).(csubt g e1 e2))) (ex4_2 C T 
+(\lambda (e2: C).(\lambda (v2: T).(eq C c3 (CHead e2 (Bind Abbr) v2)))) 
+(\lambda (e2: C).(\lambda (_: T).(csubt g e1 e2))) (\lambda (_: C).(\lambda 
+(v2: T).(ty3 g e1 v2 v1))) (\lambda (e2: C).(\lambda (v2: T).(ty3 g e2 v2 
+v1))))))) H2 e1 H8) in (let H13 \def (eq_ind C c1 (\lambda (c: C).(csubt g c 
+c3)) H1 e1 H8) in (or_intror (ex2 C (\lambda (e2: C).(eq C (CHead c3 (Bind 
+Abbr) u) (CHead e2 (Bind Abst) v1))) (\lambda (e2: C).(csubt g e1 e2))) 
+(ex4_2 C T (\lambda (e2: C).(\lambda (v2: T).(eq C (CHead c3 (Bind Abbr) u) 
+(CHead e2 (Bind Abbr) v2)))) (\lambda (e2: C).(\lambda (_: T).(csubt g e1 
+e2))) (\lambda (_: C).(\lambda (v2: T).(ty3 g e1 v2 v1))) (\lambda (e2: 
+C).(\lambda (v2: T).(ty3 g e2 v2 v1)))) (ex4_2_intro C T (\lambda (e2: 
+C).(\lambda (v2: T).(eq C (CHead c3 (Bind Abbr) u) (CHead e2 (Bind Abbr) 
+v2)))) (\lambda (e2: C).(\lambda (_: T).(csubt g e1 e2))) (\lambda (_: 
+C).(\lambda (v2: T).(ty3 g e1 v2 v1))) (\lambda (e2: C).(\lambda (v2: T).(ty3 
+g e2 v2 v1))) c3 u (refl_equal C (CHead c3 (Bind Abbr) u)) H13 H11 
+H9))))))))) H6))))))))))) y c2 H0))) H))))).
 
 theorem csubt_gen_flat:
  \forall (g: G).(\forall (e1: C).(\forall (c2: C).(\forall (v: T).(\forall 
@@ -347,94 +224,59 @@ theorem csubt_gen_flat:
 c2 (CHead e2 (Flat f) v))) (\lambda (e2: C).(csubt g e1 e2))))))))
 \def
  \lambda (g: G).(\lambda (e1: C).(\lambda (c2: C).(\lambda (v: T).(\lambda 
-(f: F).(\lambda (H: (csubt g (CHead e1 (Flat f) v) c2)).(let TMP_1 \def (Flat 
-f) in (let TMP_2 \def (CHead e1 TMP_1 v) in (let TMP_3 \def (\lambda (c: 
-C).(csubt g c c2)) in (let TMP_8 \def (\lambda (_: C).(let TMP_6 \def 
-(\lambda (e2: C).(let TMP_4 \def (Flat f) in (let TMP_5 \def (CHead e2 TMP_4 
-v) in (eq C c2 TMP_5)))) in (let TMP_7 \def (\lambda (e2: C).(csubt g e1 e2)) 
-in (ex2 C TMP_6 TMP_7)))) in (let TMP_96 \def (\lambda (y: C).(\lambda (H0: 
-(csubt g y c2)).(let TMP_13 \def (\lambda (c: C).(\lambda (c0: C).((eq C c 
-(CHead e1 (Flat f) v)) \to (let TMP_11 \def (\lambda (e2: C).(let TMP_9 \def 
-(Flat f) in (let TMP_10 \def (CHead e2 TMP_9 v) in (eq C c0 TMP_10)))) in 
-(let TMP_12 \def (\lambda (e2: C).(csubt g e1 e2)) in (ex2 C TMP_11 
-TMP_12)))))) in (let TMP_24 \def (\lambda (n: nat).(\lambda (H1: (eq C (CSort 
-n) (CHead e1 (Flat f) v))).(let TMP_14 \def (CSort n) in (let TMP_15 \def 
-(\lambda (ee: C).(match ee with [(CSort _) \Rightarrow True | (CHead _ _ _) 
-\Rightarrow False])) in (let TMP_16 \def (Flat f) in (let TMP_17 \def (CHead 
-e1 TMP_16 v) in (let H2 \def (eq_ind C TMP_14 TMP_15 I TMP_17 H1) in (let 
-TMP_21 \def (\lambda (e2: C).(let TMP_18 \def (CSort n) in (let TMP_19 \def 
-(Flat f) in (let TMP_20 \def (CHead e2 TMP_19 v) in (eq C TMP_18 TMP_20))))) 
-in (let TMP_22 \def (\lambda (e2: C).(csubt g e1 e2)) in (let TMP_23 \def 
-(ex2 C TMP_21 TMP_22) in (False_ind TMP_23 H2))))))))))) in (let TMP_69 \def 
-(\lambda (c1: C).(\lambda (c3: C).(\lambda (H1: (csubt g c1 c3)).(\lambda 
-(H2: (((eq C c1 (CHead e1 (Flat f) v)) \to (ex2 C (\lambda (e2: C).(eq C c3 
-(CHead e2 (Flat f) v))) (\lambda (e2: C).(csubt g e1 e2)))))).(\lambda (k: 
-K).(\lambda (u: T).(\lambda (H3: (eq C (CHead c1 k u) (CHead e1 (Flat f) 
-v))).(let TMP_25 \def (\lambda (e: C).(match e with [(CSort _) \Rightarrow c1 
-| (CHead c _ _) \Rightarrow c])) in (let TMP_26 \def (CHead c1 k u) in (let 
-TMP_27 \def (Flat f) in (let TMP_28 \def (CHead e1 TMP_27 v) in (let H4 \def 
-(f_equal C C TMP_25 TMP_26 TMP_28 H3) in (let TMP_29 \def (\lambda (e: 
-C).(match e with [(CSort _) \Rightarrow k | (CHead _ k0 _) \Rightarrow k0])) 
-in (let TMP_30 \def (CHead c1 k u) in (let TMP_31 \def (Flat f) in (let 
-TMP_32 \def (CHead e1 TMP_31 v) in (let H5 \def (f_equal C K TMP_29 TMP_30 
-TMP_32 H3) in (let TMP_33 \def (\lambda (e: C).(match e with [(CSort _) 
-\Rightarrow u | (CHead _ _ t) \Rightarrow t])) in (let TMP_34 \def (CHead c1 
-k u) in (let TMP_35 \def (Flat f) in (let TMP_36 \def (CHead e1 TMP_35 v) in 
-(let H6 \def (f_equal C T TMP_33 TMP_34 TMP_36 H3) in (let TMP_67 \def 
-(\lambda (H7: (eq K k (Flat f))).(\lambda (H8: (eq C c1 e1)).(let TMP_42 \def 
-(\lambda (t: T).(let TMP_40 \def (\lambda (e2: C).(let TMP_37 \def (CHead c3 
-k t) in (let TMP_38 \def (Flat f) in (let TMP_39 \def (CHead e2 TMP_38 v) in 
-(eq C TMP_37 TMP_39))))) in (let TMP_41 \def (\lambda (e2: C).(csubt g e1 
-e2)) in (ex2 C TMP_40 TMP_41)))) in (let TMP_43 \def (Flat f) in (let TMP_49 
-\def (\lambda (k0: K).(let TMP_47 \def (\lambda (e2: C).(let TMP_44 \def 
-(CHead c3 k0 v) in (let TMP_45 \def (Flat f) in (let TMP_46 \def (CHead e2 
-TMP_45 v) in (eq C TMP_44 TMP_46))))) in (let TMP_48 \def (\lambda (e2: 
-C).(csubt g e1 e2)) in (ex2 C TMP_47 TMP_48)))) in (let TMP_54 \def (\lambda 
-(c: C).((eq C c (CHead e1 (Flat f) v)) \to (let TMP_52 \def (\lambda (e2: 
-C).(let TMP_50 \def (Flat f) in (let TMP_51 \def (CHead e2 TMP_50 v) in (eq C 
-c3 TMP_51)))) in (let TMP_53 \def (\lambda (e2: C).(csubt g e1 e2)) in (ex2 C 
-TMP_52 TMP_53))))) in (let H9 \def (eq_ind C c1 TMP_54 H2 e1 H8) in (let 
-TMP_55 \def (\lambda (c: C).(csubt g c c3)) in (let H10 \def (eq_ind C c1 
-TMP_55 H1 e1 H8) in (let TMP_60 \def (\lambda (e2: C).(let TMP_56 \def (Flat 
-f) in (let TMP_57 \def (CHead c3 TMP_56 v) in (let TMP_58 \def (Flat f) in 
-(let TMP_59 \def (CHead e2 TMP_58 v) in (eq C TMP_57 TMP_59)))))) in (let 
-TMP_61 \def (\lambda (e2: C).(csubt g e1 e2)) in (let TMP_62 \def (Flat f) in 
-(let TMP_63 \def (CHead c3 TMP_62 v) in (let TMP_64 \def (refl_equal C 
-TMP_63) in (let TMP_65 \def (ex_intro2 C TMP_60 TMP_61 c3 TMP_64 H10) in (let 
-TMP_66 \def (eq_ind_r K TMP_43 TMP_49 TMP_65 k H7) in (eq_ind_r T v TMP_42 
-TMP_66 u H6))))))))))))))))) in (let TMP_68 \def (TMP_67 H5) in (TMP_68 
-H4))))))))))))))))))))))))) in (let TMP_82 \def (\lambda (c1: C).(\lambda 
-(c3: C).(\lambda (_: (csubt g c1 c3)).(\lambda (_: (((eq C c1 (CHead e1 (Flat 
-f) v)) \to (ex2 C (\lambda (e2: C).(eq C c3 (CHead e2 (Flat f) v))) (\lambda 
-(e2: C).(csubt g e1 e2)))))).(\lambda (b: B).(\lambda (_: (not (eq B b 
-Void))).(\lambda (u1: T).(\lambda (u2: T).(\lambda (H4: (eq C (CHead c1 (Bind 
-Void) u1) (CHead e1 (Flat f) v))).(let TMP_70 \def (Bind Void) in (let TMP_71 
-\def (CHead c1 TMP_70 u1) in (let TMP_72 \def (\lambda (ee: C).(match ee with 
-[(CSort _) \Rightarrow False | (CHead _ k _) \Rightarrow (match k with [(Bind 
-_) \Rightarrow True | (Flat _) \Rightarrow False])])) in (let TMP_73 \def 
-(Flat f) in (let TMP_74 \def (CHead e1 TMP_73 v) in (let H5 \def (eq_ind C 
-TMP_71 TMP_72 I TMP_74 H4) in (let TMP_79 \def (\lambda (e2: C).(let TMP_75 
-\def (Bind b) in (let TMP_76 \def (CHead c3 TMP_75 u2) in (let TMP_77 \def 
-(Flat f) in (let TMP_78 \def (CHead e2 TMP_77 v) in (eq C TMP_76 TMP_78)))))) 
-in (let TMP_80 \def (\lambda (e2: C).(csubt g e1 e2)) in (let TMP_81 \def 
-(ex2 C TMP_79 TMP_80) in (False_ind TMP_81 H5))))))))))))))))))) in (let 
-TMP_95 \def (\lambda (c1: C).(\lambda (c3: C).(\lambda (_: (csubt g c1 
-c3)).(\lambda (_: (((eq C c1 (CHead e1 (Flat f) v)) \to (ex2 C (\lambda (e2: 
-C).(eq C c3 (CHead e2 (Flat f) v))) (\lambda (e2: C).(csubt g e1 
-e2)))))).(\lambda (u: T).(\lambda (t: T).(\lambda (_: (ty3 g c1 u 
-t)).(\lambda (_: (ty3 g c3 u t)).(\lambda (H5: (eq C (CHead c1 (Bind Abst) t) 
-(CHead e1 (Flat f) v))).(let TMP_83 \def (Bind Abst) in (let TMP_84 \def 
-(CHead c1 TMP_83 t) in (let TMP_85 \def (\lambda (ee: C).(match ee with 
-[(CSort _) \Rightarrow False | (CHead _ k _) \Rightarrow (match k with [(Bind 
-_) \Rightarrow True | (Flat _) \Rightarrow False])])) in (let TMP_86 \def 
-(Flat f) in (let TMP_87 \def (CHead e1 TMP_86 v) in (let H6 \def (eq_ind C 
-TMP_84 TMP_85 I TMP_87 H5) in (let TMP_92 \def (\lambda (e2: C).(let TMP_88 
-\def (Bind Abbr) in (let TMP_89 \def (CHead c3 TMP_88 u) in (let TMP_90 \def 
-(Flat f) in (let TMP_91 \def (CHead e2 TMP_90 v) in (eq C TMP_89 TMP_91)))))) 
-in (let TMP_93 \def (\lambda (e2: C).(csubt g e1 e2)) in (let TMP_94 \def 
-(ex2 C TMP_92 TMP_93) in (False_ind TMP_94 H6))))))))))))))))))) in 
-(csubt_ind g TMP_13 TMP_24 TMP_69 TMP_82 TMP_95 y c2 H0)))))))) in (insert_eq 
-C TMP_2 TMP_3 TMP_8 TMP_96 H))))))))))).
+(f: F).(\lambda (H: (csubt g (CHead e1 (Flat f) v) c2)).(insert_eq C (CHead 
+e1 (Flat f) v) (\lambda (c: C).(csubt g c c2)) (\lambda (_: C).(ex2 C 
+(\lambda (e2: C).(eq C c2 (CHead e2 (Flat f) v))) (\lambda (e2: C).(csubt g 
+e1 e2)))) (\lambda (y: C).(\lambda (H0: (csubt g y c2)).(csubt_ind g (\lambda 
+(c: C).(\lambda (c0: C).((eq C c (CHead e1 (Flat f) v)) \to (ex2 C (\lambda 
+(e2: C).(eq C c0 (CHead e2 (Flat f) v))) (\lambda (e2: C).(csubt g e1 
+e2)))))) (\lambda (n: nat).(\lambda (H1: (eq C (CSort n) (CHead e1 (Flat f) 
+v))).(let H2 \def (eq_ind C (CSort n) (\lambda (ee: C).(match ee with [(CSort 
+_) \Rightarrow True | (CHead _ _ _) \Rightarrow False])) I (CHead e1 (Flat f) 
+v) H1) in (False_ind (ex2 C (\lambda (e2: C).(eq C (CSort n) (CHead e2 (Flat 
+f) v))) (\lambda (e2: C).(csubt g e1 e2))) H2)))) (\lambda (c1: C).(\lambda 
+(c3: C).(\lambda (H1: (csubt g c1 c3)).(\lambda (H2: (((eq C c1 (CHead e1 
+(Flat f) v)) \to (ex2 C (\lambda (e2: C).(eq C c3 (CHead e2 (Flat f) v))) 
+(\lambda (e2: C).(csubt g e1 e2)))))).(\lambda (k: K).(\lambda (u: 
+T).(\lambda (H3: (eq C (CHead c1 k u) (CHead e1 (Flat f) v))).(let H4 \def 
+(f_equal C C (\lambda (e: C).(match e with [(CSort _) \Rightarrow c1 | (CHead 
+c _ _) \Rightarrow c])) (CHead c1 k u) (CHead e1 (Flat f) v) H3) in ((let H5 
+\def (f_equal C K (\lambda (e: C).(match e with [(CSort _) \Rightarrow k | 
+(CHead _ k0 _) \Rightarrow k0])) (CHead c1 k u) (CHead e1 (Flat f) v) H3) in 
+((let H6 \def (f_equal C T (\lambda (e: C).(match e with [(CSort _) 
+\Rightarrow u | (CHead _ _ t) \Rightarrow t])) (CHead c1 k u) (CHead e1 (Flat 
+f) v) H3) in (\lambda (H7: (eq K k (Flat f))).(\lambda (H8: (eq C c1 
+e1)).(eq_ind_r T v (\lambda (t: T).(ex2 C (\lambda (e2: C).(eq C (CHead c3 k 
+t) (CHead e2 (Flat f) v))) (\lambda (e2: C).(csubt g e1 e2)))) (eq_ind_r K 
+(Flat f) (\lambda (k0: K).(ex2 C (\lambda (e2: C).(eq C (CHead c3 k0 v) 
+(CHead e2 (Flat f) v))) (\lambda (e2: C).(csubt g e1 e2)))) (let H9 \def 
+(eq_ind C c1 (\lambda (c: C).((eq C c (CHead e1 (Flat f) v)) \to (ex2 C 
+(\lambda (e2: C).(eq C c3 (CHead e2 (Flat f) v))) (\lambda (e2: C).(csubt g 
+e1 e2))))) H2 e1 H8) in (let H10 \def (eq_ind C c1 (\lambda (c: C).(csubt g c 
+c3)) H1 e1 H8) in (ex_intro2 C (\lambda (e2: C).(eq C (CHead c3 (Flat f) v) 
+(CHead e2 (Flat f) v))) (\lambda (e2: C).(csubt g e1 e2)) c3 (refl_equal C 
+(CHead c3 (Flat f) v)) H10))) k H7) u H6)))) H5)) H4))))))))) (\lambda (c1: 
+C).(\lambda (c3: C).(\lambda (_: (csubt g c1 c3)).(\lambda (_: (((eq C c1 
+(CHead e1 (Flat f) v)) \to (ex2 C (\lambda (e2: C).(eq C c3 (CHead e2 (Flat 
+f) v))) (\lambda (e2: C).(csubt g e1 e2)))))).(\lambda (b: B).(\lambda (_: 
+(not (eq B b Void))).(\lambda (u1: T).(\lambda (u2: T).(\lambda (H4: (eq C 
+(CHead c1 (Bind Void) u1) (CHead e1 (Flat f) v))).(let H5 \def (eq_ind C 
+(CHead c1 (Bind Void) u1) (\lambda (ee: C).(match ee with [(CSort _) 
+\Rightarrow False | (CHead _ k _) \Rightarrow (match k with [(Bind _) 
+\Rightarrow True | (Flat _) \Rightarrow False])])) I (CHead e1 (Flat f) v) 
+H4) in (False_ind (ex2 C (\lambda (e2: C).(eq C (CHead c3 (Bind b) u2) (CHead 
+e2 (Flat f) v))) (\lambda (e2: C).(csubt g e1 e2))) H5))))))))))) (\lambda 
+(c1: C).(\lambda (c3: C).(\lambda (_: (csubt g c1 c3)).(\lambda (_: (((eq C 
+c1 (CHead e1 (Flat f) v)) \to (ex2 C (\lambda (e2: C).(eq C c3 (CHead e2 
+(Flat f) v))) (\lambda (e2: C).(csubt g e1 e2)))))).(\lambda (u: T).(\lambda 
+(t: T).(\lambda (_: (ty3 g c1 u t)).(\lambda (_: (ty3 g c3 u t)).(\lambda 
+(H5: (eq C (CHead c1 (Bind Abst) t) (CHead e1 (Flat f) v))).(let H6 \def 
+(eq_ind C (CHead c1 (Bind Abst) t) (\lambda (ee: C).(match ee with [(CSort _) 
+\Rightarrow False | (CHead _ k _) \Rightarrow (match k with [(Bind _) 
+\Rightarrow True | (Flat _) \Rightarrow False])])) I (CHead e1 (Flat f) v) 
+H5) in (False_ind (ex2 C (\lambda (e2: C).(eq C (CHead c3 (Bind Abbr) u) 
+(CHead e2 (Flat f) v))) (\lambda (e2: C).(csubt g e1 e2))) H6))))))))))) y c2 
+H0))) H)))))).
 
 theorem csubt_gen_bind:
  \forall (g: G).(\forall (b1: B).(\forall (e1: C).(\forall (c2: C).(\forall 
@@ -443,158 +285,102 @@ B).(\lambda (e2: C).(\lambda (v2: T).(eq C c2 (CHead e2 (Bind b2) v2)))))
 (\lambda (_: B).(\lambda (e2: C).(\lambda (_: T).(csubt g e1 e2))))))))))
 \def
  \lambda (g: G).(\lambda (b1: B).(\lambda (e1: C).(\lambda (c2: C).(\lambda 
-(v1: T).(\lambda (H: (csubt g (CHead e1 (Bind b1) v1) c2)).(let TMP_1 \def 
-(Bind b1) in (let TMP_2 \def (CHead e1 TMP_1 v1) in (let TMP_3 \def (\lambda 
-(c: C).(csubt g c c2)) in (let TMP_8 \def (\lambda (_: C).(let TMP_6 \def 
-(\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(let TMP_4 \def (Bind b2) 
-in (let TMP_5 \def (CHead e2 TMP_4 v2) in (eq C c2 TMP_5)))))) in (let TMP_7 
-\def (\lambda (_: B).(\lambda (e2: C).(\lambda (_: T).(csubt g e1 e2)))) in 
-(ex2_3 B C T TMP_6 TMP_7)))) in (let TMP_149 \def (\lambda (y: C).(\lambda 
-(H0: (csubt g y c2)).(let TMP_13 \def (\lambda (c: C).(\lambda (c0: C).((eq C 
-c (CHead e1 (Bind b1) v1)) \to (let TMP_11 \def (\lambda (b2: B).(\lambda 
-(e2: C).(\lambda (v2: T).(let TMP_9 \def (Bind b2) in (let TMP_10 \def (CHead 
-e2 TMP_9 v2) in (eq C c0 TMP_10)))))) in (let TMP_12 \def (\lambda (_: 
-B).(\lambda (e2: C).(\lambda (_: T).(csubt g e1 e2)))) in (ex2_3 B C T TMP_11 
-TMP_12)))))) in (let TMP_24 \def (\lambda (n: nat).(\lambda (H1: (eq C (CSort 
-n) (CHead e1 (Bind b1) v1))).(let TMP_14 \def (CSort n) in (let TMP_15 \def 
+(v1: T).(\lambda (H: (csubt g (CHead e1 (Bind b1) v1) c2)).(insert_eq C 
+(CHead e1 (Bind b1) v1) (\lambda (c: C).(csubt g c c2)) (\lambda (_: 
+C).(ex2_3 B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C c2 
+(CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (_: 
+T).(csubt g e1 e2)))))) (\lambda (y: C).(\lambda (H0: (csubt g y 
+c2)).(csubt_ind g (\lambda (c: C).(\lambda (c0: C).((eq C c (CHead e1 (Bind 
+b1) v1)) \to (ex2_3 B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: 
+T).(eq C c0 (CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: 
+C).(\lambda (_: T).(csubt g e1 e2)))))))) (\lambda (n: nat).(\lambda (H1: (eq 
+C (CSort n) (CHead e1 (Bind b1) v1))).(let H2 \def (eq_ind C (CSort n) 
 (\lambda (ee: C).(match ee with [(CSort _) \Rightarrow True | (CHead _ _ _) 
-\Rightarrow False])) in (let TMP_16 \def (Bind b1) in (let TMP_17 \def (CHead 
-e1 TMP_16 v1) in (let H2 \def (eq_ind C TMP_14 TMP_15 I TMP_17 H1) in (let 
-TMP_21 \def (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(let TMP_18 
-\def (CSort n) in (let TMP_19 \def (Bind b2) in (let TMP_20 \def (CHead e2 
-TMP_19 v2) in (eq C TMP_18 TMP_20))))))) in (let TMP_22 \def (\lambda (_: 
-B).(\lambda (e2: C).(\lambda (_: T).(csubt g e1 e2)))) in (let TMP_23 \def 
-(ex2_3 B C T TMP_21 TMP_22) in (False_ind TMP_23 H2))))))))))) in (let TMP_69 
-\def (\lambda (c1: C).(\lambda (c3: C).(\lambda (H1: (csubt g c1 
+\Rightarrow False])) I (CHead e1 (Bind b1) v1) H1) in (False_ind (ex2_3 B C T 
+(\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C (CSort n) (CHead e2 
+(Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (_: T).(csubt g 
+e1 e2))))) H2)))) (\lambda (c1: C).(\lambda (c3: C).(\lambda (H1: (csubt g c1 
 c3)).(\lambda (H2: (((eq C c1 (CHead e1 (Bind b1) v1)) \to (ex2_3 B C T 
 (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C c3 (CHead e2 (Bind 
 b2) v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (_: T).(csubt g e1 
 e2)))))))).(\lambda (k: K).(\lambda (u: T).(\lambda (H3: (eq C (CHead c1 k u) 
-(CHead e1 (Bind b1) v1))).(let TMP_25 \def (\lambda (e: C).(match e with 
-[(CSort _) \Rightarrow c1 | (CHead c _ _) \Rightarrow c])) in (let TMP_26 
-\def (CHead c1 k u) in (let TMP_27 \def (Bind b1) in (let TMP_28 \def (CHead 
-e1 TMP_27 v1) in (let H4 \def (f_equal C C TMP_25 TMP_26 TMP_28 H3) in (let 
-TMP_29 \def (\lambda (e: C).(match e with [(CSort _) \Rightarrow k | (CHead _ 
-k0 _) \Rightarrow k0])) in (let TMP_30 \def (CHead c1 k u) in (let TMP_31 
-\def (Bind b1) in (let TMP_32 \def (CHead e1 TMP_31 v1) in (let H5 \def 
-(f_equal C K TMP_29 TMP_30 TMP_32 H3) in (let TMP_33 \def (\lambda (e: 
-C).(match e with [(CSort _) \Rightarrow u | (CHead _ _ t) \Rightarrow t])) in 
-(let TMP_34 \def (CHead c1 k u) in (let TMP_35 \def (Bind b1) in (let TMP_36 
-\def (CHead e1 TMP_35 v1) in (let H6 \def (f_equal C T TMP_33 TMP_34 TMP_36 
-H3) in (let TMP_67 \def (\lambda (H7: (eq K k (Bind b1))).(\lambda (H8: (eq C 
-c1 e1)).(let TMP_42 \def (\lambda (t: T).(let TMP_40 \def (\lambda (b2: 
-B).(\lambda (e2: C).(\lambda (v2: T).(let TMP_37 \def (CHead c3 k t) in (let 
-TMP_38 \def (Bind b2) in (let TMP_39 \def (CHead e2 TMP_38 v2) in (eq C 
-TMP_37 TMP_39))))))) in (let TMP_41 \def (\lambda (_: B).(\lambda (e2: 
-C).(\lambda (_: T).(csubt g e1 e2)))) in (ex2_3 B C T TMP_40 TMP_41)))) in 
-(let TMP_43 \def (Bind b1) in (let TMP_49 \def (\lambda (k0: K).(let TMP_47 
-\def (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(let TMP_44 \def 
-(CHead c3 k0 v1) in (let TMP_45 \def (Bind b2) in (let TMP_46 \def (CHead e2 
-TMP_45 v2) in (eq C TMP_44 TMP_46))))))) in (let TMP_48 \def (\lambda (_: 
-B).(\lambda (e2: C).(\lambda (_: T).(csubt g e1 e2)))) in (ex2_3 B C T TMP_47 
-TMP_48)))) in (let TMP_54 \def (\lambda (c: C).((eq C c (CHead e1 (Bind b1) 
-v1)) \to (let TMP_52 \def (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: 
-T).(let TMP_50 \def (Bind b2) in (let TMP_51 \def (CHead e2 TMP_50 v2) in (eq 
-C c3 TMP_51)))))) in (let TMP_53 \def (\lambda (_: B).(\lambda (e2: 
-C).(\lambda (_: T).(csubt g e1 e2)))) in (ex2_3 B C T TMP_52 TMP_53))))) in 
-(let H9 \def (eq_ind C c1 TMP_54 H2 e1 H8) in (let TMP_55 \def (\lambda (c: 
-C).(csubt g c c3)) in (let H10 \def (eq_ind C c1 TMP_55 H1 e1 H8) in (let 
-TMP_60 \def (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(let TMP_56 
-\def (Bind b1) in (let TMP_57 \def (CHead c3 TMP_56 v1) in (let TMP_58 \def 
-(Bind b2) in (let TMP_59 \def (CHead e2 TMP_58 v2) in (eq C TMP_57 
-TMP_59)))))))) in (let TMP_61 \def (\lambda (_: B).(\lambda (e2: C).(\lambda 
-(_: T).(csubt g e1 e2)))) in (let TMP_62 \def (Bind b1) in (let TMP_63 \def 
-(CHead c3 TMP_62 v1) in (let TMP_64 \def (refl_equal C TMP_63) in (let TMP_65 
-\def (ex2_3_intro B C T TMP_60 TMP_61 b1 c3 v1 TMP_64 H10) in (let TMP_66 
-\def (eq_ind_r K TMP_43 TMP_49 TMP_65 k H7) in (eq_ind_r T v1 TMP_42 TMP_66 u 
-H6))))))))))))))))) in (let TMP_68 \def (TMP_67 H5) in (TMP_68 
-H4))))))))))))))))))))))))) in (let TMP_107 \def (\lambda (c1: C).(\lambda 
-(c3: C).(\lambda (H1: (csubt g c1 c3)).(\lambda (H2: (((eq C c1 (CHead e1 
-(Bind b1) v1)) \to (ex2_3 B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda 
-(v2: T).(eq C c3 (CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: 
-C).(\lambda (_: T).(csubt g e1 e2)))))))).(\lambda (b: B).(\lambda (_: (not 
-(eq B b Void))).(\lambda (u1: T).(\lambda (u2: T).(\lambda (H4: (eq C (CHead 
-c1 (Bind Void) u1) (CHead e1 (Bind b1) v1))).(let TMP_70 \def (\lambda (e: 
-C).(match e with [(CSort _) \Rightarrow c1 | (CHead c _ _) \Rightarrow c])) 
-in (let TMP_71 \def (Bind Void) in (let TMP_72 \def (CHead c1 TMP_71 u1) in 
-(let TMP_73 \def (Bind b1) in (let TMP_74 \def (CHead e1 TMP_73 v1) in (let 
-H5 \def (f_equal C C TMP_70 TMP_72 TMP_74 H4) in (let TMP_75 \def (\lambda 
-(e: C).(match e with [(CSort _) \Rightarrow Void | (CHead _ k _) \Rightarrow 
-(match k with [(Bind b0) \Rightarrow b0 | (Flat _) \Rightarrow Void])])) in 
-(let TMP_76 \def (Bind Void) in (let TMP_77 \def (CHead c1 TMP_76 u1) in (let 
-TMP_78 \def (Bind b1) in (let TMP_79 \def (CHead e1 TMP_78 v1) in (let H6 
-\def (f_equal C B TMP_75 TMP_77 TMP_79 H4) in (let TMP_80 \def (\lambda (e: 
-C).(match e with [(CSort _) \Rightarrow u1 | (CHead _ _ t) \Rightarrow t])) 
-in (let TMP_81 \def (Bind Void) in (let TMP_82 \def (CHead c1 TMP_81 u1) in 
-(let TMP_83 \def (Bind b1) in (let TMP_84 \def (CHead e1 TMP_83 v1) in (let 
-H7 \def (f_equal C T TMP_80 TMP_82 TMP_84 H4) in (let TMP_105 \def (\lambda 
-(H8: (eq B Void b1)).(\lambda (H9: (eq C c1 e1)).(let TMP_89 \def (\lambda 
-(c: C).((eq C c (CHead e1 (Bind b1) v1)) \to (let TMP_87 \def (\lambda (b2: 
-B).(\lambda (e2: C).(\lambda (v2: T).(let TMP_85 \def (Bind b2) in (let 
-TMP_86 \def (CHead e2 TMP_85 v2) in (eq C c3 TMP_86)))))) in (let TMP_88 \def 
-(\lambda (_: B).(\lambda (e2: C).(\lambda (_: T).(csubt g e1 e2)))) in (ex2_3 
-B C T TMP_87 TMP_88))))) in (let H10 \def (eq_ind C c1 TMP_89 H2 e1 H9) in 
-(let TMP_90 \def (\lambda (c: C).(csubt g c c3)) in (let H11 \def (eq_ind C 
-c1 TMP_90 H1 e1 H9) in (let TMP_95 \def (\lambda (b0: B).((eq C e1 (CHead e1 
-(Bind b0) v1)) \to (let TMP_93 \def (\lambda (b2: B).(\lambda (e2: 
-C).(\lambda (v2: T).(let TMP_91 \def (Bind b2) in (let TMP_92 \def (CHead e2 
-TMP_91 v2) in (eq C c3 TMP_92)))))) in (let TMP_94 \def (\lambda (_: 
-B).(\lambda (e2: C).(\lambda (_: T).(csubt g e1 e2)))) in (ex2_3 B C T TMP_93 
-TMP_94))))) in (let H12 \def (eq_ind_r B b1 TMP_95 H10 Void H8) in (let 
-TMP_100 \def (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(let TMP_96 
-\def (Bind b) in (let TMP_97 \def (CHead c3 TMP_96 u2) in (let TMP_98 \def 
-(Bind b2) in (let TMP_99 \def (CHead e2 TMP_98 v2) in (eq C TMP_97 
-TMP_99)))))))) in (let TMP_101 \def (\lambda (_: B).(\lambda (e2: C).(\lambda 
-(_: T).(csubt g e1 e2)))) in (let TMP_102 \def (Bind b) in (let TMP_103 \def 
-(CHead c3 TMP_102 u2) in (let TMP_104 \def (refl_equal C TMP_103) in 
-(ex2_3_intro B C T TMP_100 TMP_101 b c3 u2 TMP_104 H11)))))))))))))) in (let 
-TMP_106 \def (TMP_105 H6) in (TMP_106 H5)))))))))))))))))))))))))))))) in 
-(let TMP_148 \def (\lambda (c1: C).(\lambda (c3: C).(\lambda (H1: (csubt g c1 
-c3)).(\lambda (H2: (((eq C c1 (CHead e1 (Bind b1) v1)) \to (ex2_3 B C T 
-(\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C c3 (CHead e2 (Bind 
+(CHead e1 (Bind b1) v1))).(let H4 \def (f_equal C C (\lambda (e: C).(match e 
+with [(CSort _) \Rightarrow c1 | (CHead c _ _) \Rightarrow c])) (CHead c1 k 
+u) (CHead e1 (Bind b1) v1) H3) in ((let H5 \def (f_equal C K (\lambda (e: 
+C).(match e with [(CSort _) \Rightarrow k | (CHead _ k0 _) \Rightarrow k0])) 
+(CHead c1 k u) (CHead e1 (Bind b1) v1) H3) in ((let H6 \def (f_equal C T 
+(\lambda (e: C).(match e with [(CSort _) \Rightarrow u | (CHead _ _ t) 
+\Rightarrow t])) (CHead c1 k u) (CHead e1 (Bind b1) v1) H3) in (\lambda (H7: 
+(eq K k (Bind b1))).(\lambda (H8: (eq C c1 e1)).(eq_ind_r T v1 (\lambda (t: 
+T).(ex2_3 B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C 
+(CHead c3 k t) (CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: 
+C).(\lambda (_: T).(csubt g e1 e2)))))) (eq_ind_r K (Bind b1) (\lambda (k0: 
+K).(ex2_3 B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C 
+(CHead c3 k0 v1) (CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: 
+C).(\lambda (_: T).(csubt g e1 e2)))))) (let H9 \def (eq_ind C c1 (\lambda 
+(c: C).((eq C c (CHead e1 (Bind b1) v1)) \to (ex2_3 B C T (\lambda (b2: 
+B).(\lambda (e2: C).(\lambda (v2: T).(eq C c3 (CHead e2 (Bind b2) v2))))) 
+(\lambda (_: B).(\lambda (e2: C).(\lambda (_: T).(csubt g e1 e2))))))) H2 e1 
+H8) in (let H10 \def (eq_ind C c1 (\lambda (c: C).(csubt g c c3)) H1 e1 H8) 
+in (ex2_3_intro B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq 
+C (CHead c3 (Bind b1) v1) (CHead e2 (Bind b2) v2))))) (\lambda (_: 
+B).(\lambda (e2: C).(\lambda (_: T).(csubt g e1 e2)))) b1 c3 v1 (refl_equal C 
+(CHead c3 (Bind b1) v1)) H10))) k H7) u H6)))) H5)) H4))))))))) (\lambda (c1: 
+C).(\lambda (c3: C).(\lambda (H1: (csubt g c1 c3)).(\lambda (H2: (((eq C c1 
+(CHead e1 (Bind b1) v1)) \to (ex2_3 B C T (\lambda (b2: B).(\lambda (e2: 
+C).(\lambda (v2: T).(eq C c3 (CHead e2 (Bind b2) v2))))) (\lambda (_: 
+B).(\lambda (e2: C).(\lambda (_: T).(csubt g e1 e2)))))))).(\lambda (b: 
+B).(\lambda (_: (not (eq B b Void))).(\lambda (u1: T).(\lambda (u2: 
+T).(\lambda (H4: (eq C (CHead c1 (Bind Void) u1) (CHead e1 (Bind b1) 
+v1))).(let H5 \def (f_equal C C (\lambda (e: C).(match e with [(CSort _) 
+\Rightarrow c1 | (CHead c _ _) \Rightarrow c])) (CHead c1 (Bind Void) u1) 
+(CHead e1 (Bind b1) v1) H4) in ((let H6 \def (f_equal C B (\lambda (e: 
+C).(match e with [(CSort _) \Rightarrow Void | (CHead _ k _) \Rightarrow 
+(match k with [(Bind b0) \Rightarrow b0 | (Flat _) \Rightarrow Void])])) 
+(CHead c1 (Bind Void) u1) (CHead e1 (Bind b1) v1) H4) in ((let H7 \def 
+(f_equal C T (\lambda (e: C).(match e with [(CSort _) \Rightarrow u1 | (CHead 
+_ _ t) \Rightarrow t])) (CHead c1 (Bind Void) u1) (CHead e1 (Bind b1) v1) H4) 
+in (\lambda (H8: (eq B Void b1)).(\lambda (H9: (eq C c1 e1)).(let H10 \def 
+(eq_ind C c1 (\lambda (c: C).((eq C c (CHead e1 (Bind b1) v1)) \to (ex2_3 B C 
+T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C c3 (CHead e2 (Bind 
 b2) v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (_: T).(csubt g e1 
-e2)))))))).(\lambda (u: T).(\lambda (t: T).(\lambda (H3: (ty3 g c1 u 
-t)).(\lambda (H4: (ty3 g c3 u t)).(\lambda (H5: (eq C (CHead c1 (Bind Abst) 
-t) (CHead e1 (Bind b1) v1))).(let TMP_108 \def (\lambda (e: C).(match e with 
-[(CSort _) \Rightarrow c1 | (CHead c _ _) \Rightarrow c])) in (let TMP_109 
-\def (Bind Abst) in (let TMP_110 \def (CHead c1 TMP_109 t) in (let TMP_111 
-\def (Bind b1) in (let TMP_112 \def (CHead e1 TMP_111 v1) in (let H6 \def 
-(f_equal C C TMP_108 TMP_110 TMP_112 H5) in (let TMP_113 \def (\lambda (e: 
-C).(match e with [(CSort _) \Rightarrow Abst | (CHead _ k _) \Rightarrow 
-(match k with [(Bind b) \Rightarrow b | (Flat _) \Rightarrow Abst])])) in 
-(let TMP_114 \def (Bind Abst) in (let TMP_115 \def (CHead c1 TMP_114 t) in 
-(let TMP_116 \def (Bind b1) in (let TMP_117 \def (CHead e1 TMP_116 v1) in 
-(let H7 \def (f_equal C B TMP_113 TMP_115 TMP_117 H5) in (let TMP_118 \def 
-(\lambda (e: C).(match e with [(CSort _) \Rightarrow t | (CHead _ _ t0) 
-\Rightarrow t0])) in (let TMP_119 \def (Bind Abst) in (let TMP_120 \def 
-(CHead c1 TMP_119 t) in (let TMP_121 \def (Bind b1) in (let TMP_122 \def 
-(CHead e1 TMP_121 v1) in (let H8 \def (f_equal C T TMP_118 TMP_120 TMP_122 
-H5) in (let TMP_146 \def (\lambda (H9: (eq B Abst b1)).(\lambda (H10: (eq C 
-c1 e1)).(let TMP_123 \def (\lambda (t0: T).(ty3 g c3 u t0)) in (let H11 \def 
-(eq_ind T t TMP_123 H4 v1 H8) in (let TMP_124 \def (\lambda (t0: T).(ty3 g c1 
-u t0)) in (let H12 \def (eq_ind T t TMP_124 H3 v1 H8) in (let TMP_125 \def 
-(\lambda (c: C).(ty3 g c u v1)) in (let H13 \def (eq_ind C c1 TMP_125 H12 e1 
-H10) in (let TMP_130 \def (\lambda (c: C).((eq C c (CHead e1 (Bind b1) v1)) 
-\to (let TMP_128 \def (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(let 
-TMP_126 \def (Bind b2) in (let TMP_127 \def (CHead e2 TMP_126 v2) in (eq C c3 
-TMP_127)))))) in (let TMP_129 \def (\lambda (_: B).(\lambda (e2: C).(\lambda 
-(_: T).(csubt g e1 e2)))) in (ex2_3 B C T TMP_128 TMP_129))))) in (let H14 
-\def (eq_ind C c1 TMP_130 H2 e1 H10) in (let TMP_131 \def (\lambda (c: 
-C).(csubt g c c3)) in (let H15 \def (eq_ind C c1 TMP_131 H1 e1 H10) in (let 
-TMP_136 \def (\lambda (b: B).((eq C e1 (CHead e1 (Bind b) v1)) \to (let 
-TMP_134 \def (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(let TMP_132 
-\def (Bind b2) in (let TMP_133 \def (CHead e2 TMP_132 v2) in (eq C c3 
-TMP_133)))))) in (let TMP_135 \def (\lambda (_: B).(\lambda (e2: C).(\lambda 
-(_: T).(csubt g e1 e2)))) in (ex2_3 B C T TMP_134 TMP_135))))) in (let H16 
-\def (eq_ind_r B b1 TMP_136 H14 Abst H9) in (let TMP_141 \def (\lambda (b2: 
-B).(\lambda (e2: C).(\lambda (v2: T).(let TMP_137 \def (Bind Abbr) in (let 
-TMP_138 \def (CHead c3 TMP_137 u) in (let TMP_139 \def (Bind b2) in (let 
-TMP_140 \def (CHead e2 TMP_139 v2) in (eq C TMP_138 TMP_140)))))))) in (let 
-TMP_142 \def (\lambda (_: B).(\lambda (e2: C).(\lambda (_: T).(csubt g e1 
-e2)))) in (let TMP_143 \def (Bind Abbr) in (let TMP_144 \def (CHead c3 
-TMP_143 u) in (let TMP_145 \def (refl_equal C TMP_144) in (ex2_3_intro B C T 
-TMP_141 TMP_142 Abbr c3 u TMP_145 H15)))))))))))))))))))) in (let TMP_147 
-\def (TMP_146 H7) in (TMP_147 H6)))))))))))))))))))))))))))))) in (csubt_ind 
-g TMP_13 TMP_24 TMP_69 TMP_107 TMP_148 y c2 H0)))))))) in (insert_eq C TMP_2 
-TMP_3 TMP_8 TMP_149 H))))))))))).
+e2))))))) H2 e1 H9) in (let H11 \def (eq_ind C c1 (\lambda (c: C).(csubt g c 
+c3)) H1 e1 H9) in (let H12 \def (eq_ind_r B b1 (\lambda (b0: B).((eq C e1 
+(CHead e1 (Bind b0) v1)) \to (ex2_3 B C T (\lambda (b2: B).(\lambda (e2: 
+C).(\lambda (v2: T).(eq C c3 (CHead e2 (Bind b2) v2))))) (\lambda (_: 
+B).(\lambda (e2: C).(\lambda (_: T).(csubt g e1 e2))))))) H10 Void H8) in 
+(ex2_3_intro B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq C 
+(CHead c3 (Bind b) u2) (CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda 
+(e2: C).(\lambda (_: T).(csubt g e1 e2)))) b c3 u2 (refl_equal C (CHead c3 
+(Bind b) u2)) H11))))))) H6)) H5))))))))))) (\lambda (c1: C).(\lambda (c3: 
+C).(\lambda (H1: (csubt g c1 c3)).(\lambda (H2: (((eq C c1 (CHead e1 (Bind 
+b1) v1)) \to (ex2_3 B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: 
+T).(eq C c3 (CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: 
+C).(\lambda (_: T).(csubt g e1 e2)))))))).(\lambda (u: T).(\lambda (t: 
+T).(\lambda (H3: (ty3 g c1 u t)).(\lambda (H4: (ty3 g c3 u t)).(\lambda (H5: 
+(eq C (CHead c1 (Bind Abst) t) (CHead e1 (Bind b1) v1))).(let H6 \def 
+(f_equal C C (\lambda (e: C).(match e with [(CSort _) \Rightarrow c1 | (CHead 
+c _ _) \Rightarrow c])) (CHead c1 (Bind Abst) t) (CHead e1 (Bind b1) v1) H5) 
+in ((let H7 \def (f_equal C B (\lambda (e: C).(match e with [(CSort _) 
+\Rightarrow Abst | (CHead _ k _) \Rightarrow (match k with [(Bind b) 
+\Rightarrow b | (Flat _) \Rightarrow Abst])])) (CHead c1 (Bind Abst) t) 
+(CHead e1 (Bind b1) v1) H5) in ((let H8 \def (f_equal C T (\lambda (e: 
+C).(match e with [(CSort _) \Rightarrow t | (CHead _ _ t0) \Rightarrow t0])) 
+(CHead c1 (Bind Abst) t) (CHead e1 (Bind b1) v1) H5) in (\lambda (H9: (eq B 
+Abst b1)).(\lambda (H10: (eq C c1 e1)).(let H11 \def (eq_ind T t (\lambda 
+(t0: T).(ty3 g c3 u t0)) H4 v1 H8) in (let H12 \def (eq_ind T t (\lambda (t0: 
+T).(ty3 g c1 u t0)) H3 v1 H8) in (let H13 \def (eq_ind C c1 (\lambda (c: 
+C).(ty3 g c u v1)) H12 e1 H10) in (let H14 \def (eq_ind C c1 (\lambda (c: 
+C).((eq C c (CHead e1 (Bind b1) v1)) \to (ex2_3 B C T (\lambda (b2: 
+B).(\lambda (e2: C).(\lambda (v2: T).(eq C c3 (CHead e2 (Bind b2) v2))))) 
+(\lambda (_: B).(\lambda (e2: C).(\lambda (_: T).(csubt g e1 e2))))))) H2 e1 
+H10) in (let H15 \def (eq_ind C c1 (\lambda (c: C).(csubt g c c3)) H1 e1 H10) 
+in (let H16 \def (eq_ind_r B b1 (\lambda (b: B).((eq C e1 (CHead e1 (Bind b) 
+v1)) \to (ex2_3 B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: T).(eq 
+C c3 (CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda 
+(_: T).(csubt g e1 e2))))))) H14 Abst H9) in (ex2_3_intro B C T (\lambda (b2: 
+B).(\lambda (e2: C).(\lambda (v2: T).(eq C (CHead c3 (Bind Abbr) u) (CHead e2 
+(Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: C).(\lambda (_: T).(csubt g 
+e1 e2)))) Abbr c3 u (refl_equal C (CHead c3 (Bind Abbr) u)) H15)))))))))) 
+H7)) H6))))))))))) y c2 H0))) H)))))).
 
index a13f7a6dc9ee331290091dcef85e2a15b74a0da2..ebd1762a9121d9cdd71342da023caf483428febd 100644 (file)
@@ -27,192 +27,112 @@ c1 c2) \to (ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(getl n
 c2 (CHead d2 (Bind Abbr) u)))))))))))
 \def
  \lambda (g: G).(\lambda (c1: C).(\lambda (d1: C).(\lambda (u: T).(\lambda 
-(n: nat).(\lambda (H: (getl n c1 (CHead d1 (Bind Abbr) u))).(let TMP_1 \def 
-(Bind Abbr) in (let TMP_2 \def (CHead d1 TMP_1 u) in (let H0 \def 
-(getl_gen_all c1 TMP_2 n H) in (let TMP_3 \def (\lambda (e: C).(drop n O c1 
-e)) in (let TMP_6 \def (\lambda (e: C).(let TMP_4 \def (Bind Abbr) in (let 
-TMP_5 \def (CHead d1 TMP_4 u) in (clear e TMP_5)))) in (let TMP_11 \def 
-(\forall (c2: C).((csubt g c1 c2) \to (let TMP_7 \def (\lambda (d2: C).(csubt 
-g d1 d2)) in (let TMP_10 \def (\lambda (d2: C).(let TMP_8 \def (Bind Abbr) in 
-(let TMP_9 \def (CHead d2 TMP_8 u) in (getl n c2 TMP_9)))) in (ex2 C TMP_7 
-TMP_10))))) in (let TMP_209 \def (\lambda (x: C).(\lambda (H1: (drop n O c1 
-x)).(\lambda (H2: (clear x (CHead d1 (Bind Abbr) u))).(let TMP_16 \def 
-(\lambda (c: C).((drop n O c1 c) \to ((clear c (CHead d1 (Bind Abbr) u)) \to 
-(\forall (c2: C).((csubt g c1 c2) \to (let TMP_12 \def (\lambda (d2: 
-C).(csubt g d1 d2)) in (let TMP_15 \def (\lambda (d2: C).(let TMP_13 \def 
-(Bind Abbr) in (let TMP_14 \def (CHead d2 TMP_13 u) in (getl n c2 TMP_14)))) 
-in (ex2 C TMP_12 TMP_15)))))))) in (let TMP_24 \def (\lambda (n0: 
-nat).(\lambda (_: (drop n O c1 (CSort n0))).(\lambda (H4: (clear (CSort n0) 
-(CHead d1 (Bind Abbr) u))).(let TMP_17 \def (Bind Abbr) in (let TMP_18 \def 
-(CHead d1 TMP_17 u) in (let TMP_23 \def (\forall (c2: C).((csubt g c1 c2) \to 
-(let TMP_19 \def (\lambda (d2: C).(csubt g d1 d2)) in (let TMP_22 \def 
-(\lambda (d2: C).(let TMP_20 \def (Bind Abbr) in (let TMP_21 \def (CHead d2 
-TMP_20 u) in (getl n c2 TMP_21)))) in (ex2 C TMP_19 TMP_22))))) in 
-(clear_gen_sort TMP_18 n0 H4 TMP_23))))))) in (let TMP_208 \def (\lambda (x0: 
-C).(\lambda (_: (((drop n O c1 x0) \to ((clear x0 (CHead d1 (Bind Abbr) u)) 
-\to (\forall (c2: C).((csubt g c1 c2) \to (ex2 C (\lambda (d2: C).(csubt g d1 
-d2)) (\lambda (d2: C).(getl n c2 (CHead d2 (Bind Abbr) u)))))))))).(\lambda 
-(k: K).(\lambda (t: T).(\lambda (H3: (drop n O c1 (CHead x0 k t))).(\lambda 
-(H4: (clear (CHead x0 k t) (CHead d1 (Bind Abbr) u))).(let TMP_29 \def 
-(\lambda (k0: K).((drop n O c1 (CHead x0 k0 t)) \to ((clear (CHead x0 k0 t) 
-(CHead d1 (Bind Abbr) u)) \to (\forall (c2: C).((csubt g c1 c2) \to (let 
-TMP_25 \def (\lambda (d2: C).(csubt g d1 d2)) in (let TMP_28 \def (\lambda 
-(d2: C).(let TMP_26 \def (Bind Abbr) in (let TMP_27 \def (CHead d2 TMP_26 u) 
-in (getl n c2 TMP_27)))) in (ex2 C TMP_25 TMP_28)))))))) in (let TMP_86 \def 
-(\lambda (b: B).(\lambda (H5: (drop n O c1 (CHead x0 (Bind b) t))).(\lambda 
-(H6: (clear (CHead x0 (Bind b) t) (CHead d1 (Bind Abbr) u))).(let TMP_30 \def 
-(\lambda (e: C).(match e with [(CSort _) \Rightarrow d1 | (CHead c _ _) 
-\Rightarrow c])) in (let TMP_31 \def (Bind Abbr) in (let TMP_32 \def (CHead 
-d1 TMP_31 u) in (let TMP_33 \def (Bind b) in (let TMP_34 \def (CHead x0 
-TMP_33 t) in (let TMP_35 \def (Bind Abbr) in (let TMP_36 \def (CHead d1 
-TMP_35 u) in (let TMP_37 \def (clear_gen_bind b x0 TMP_36 t H6) in (let H7 
-\def (f_equal C C TMP_30 TMP_32 TMP_34 TMP_37) in (let TMP_38 \def (\lambda 
-(e: C).(match e with [(CSort _) \Rightarrow Abbr | (CHead _ k0 _) \Rightarrow 
-(match k0 with [(Bind b0) \Rightarrow b0 | (Flat _) \Rightarrow Abbr])])) in 
-(let TMP_39 \def (Bind Abbr) in (let TMP_40 \def (CHead d1 TMP_39 u) in (let 
-TMP_41 \def (Bind b) in (let TMP_42 \def (CHead x0 TMP_41 t) in (let TMP_43 
-\def (Bind Abbr) in (let TMP_44 \def (CHead d1 TMP_43 u) in (let TMP_45 \def 
-(clear_gen_bind b x0 TMP_44 t H6) in (let H8 \def (f_equal C B TMP_38 TMP_40 
-TMP_42 TMP_45) in (let TMP_46 \def (\lambda (e: C).(match e with [(CSort _) 
-\Rightarrow u | (CHead _ _ t0) \Rightarrow t0])) in (let TMP_47 \def (Bind 
-Abbr) in (let TMP_48 \def (CHead d1 TMP_47 u) in (let TMP_49 \def (Bind b) in 
-(let TMP_50 \def (CHead x0 TMP_49 t) in (let TMP_51 \def (Bind Abbr) in (let 
-TMP_52 \def (CHead d1 TMP_51 u) in (let TMP_53 \def (clear_gen_bind b x0 
-TMP_52 t H6) in (let H9 \def (f_equal C T TMP_46 TMP_48 TMP_50 TMP_53) in 
-(let TMP_84 \def (\lambda (H10: (eq B Abbr b)).(\lambda (H11: (eq C d1 
-x0)).(\lambda (c2: C).(\lambda (H12: (csubt g c1 c2)).(let TMP_56 \def 
-(\lambda (t0: T).(let TMP_54 \def (Bind b) in (let TMP_55 \def (CHead x0 
-TMP_54 t0) in (drop n O c1 TMP_55)))) in (let H13 \def (eq_ind_r T t TMP_56 
-H5 u H9) in (let TMP_59 \def (\lambda (b0: B).(let TMP_57 \def (Bind b0) in 
-(let TMP_58 \def (CHead x0 TMP_57 u) in (drop n O c1 TMP_58)))) in (let H14 
-\def (eq_ind_r B b TMP_59 H13 Abbr H10) in (let TMP_62 \def (\lambda (c: 
-C).(let TMP_60 \def (Bind Abbr) in (let TMP_61 \def (CHead c TMP_60 u) in 
-(drop n O c1 TMP_61)))) in (let H15 \def (eq_ind_r C x0 TMP_62 H14 d1 H11) in 
-(let TMP_63 \def (\lambda (d2: C).(csubt g d1 d2)) in (let TMP_66 \def 
-(\lambda (d2: C).(let TMP_64 \def (Bind Abbr) in (let TMP_65 \def (CHead d2 
-TMP_64 u) in (drop n O c2 TMP_65)))) in (let TMP_67 \def (\lambda (d2: 
-C).(csubt g d1 d2)) in (let TMP_70 \def (\lambda (d2: C).(let TMP_68 \def 
-(Bind Abbr) in (let TMP_69 \def (CHead d2 TMP_68 u) in (getl n c2 TMP_69)))) 
-in (let TMP_71 \def (ex2 C TMP_67 TMP_70) in (let TMP_82 \def (\lambda (x1: 
-C).(\lambda (H16: (csubt g d1 x1)).(\lambda (H17: (drop n O c2 (CHead x1 
-(Bind Abbr) u))).(let TMP_72 \def (\lambda (d2: C).(csubt g d1 d2)) in (let 
-TMP_75 \def (\lambda (d2: C).(let TMP_73 \def (Bind Abbr) in (let TMP_74 \def 
-(CHead d2 TMP_73 u) in (getl n c2 TMP_74)))) in (let TMP_76 \def (Bind Abbr) 
-in (let TMP_77 \def (CHead x1 TMP_76 u) in (let TMP_78 \def (Bind Abbr) in 
-(let TMP_79 \def (CHead x1 TMP_78 u) in (let TMP_80 \def (clear_bind Abbr x1 
-u) in (let TMP_81 \def (getl_intro n c2 TMP_77 TMP_79 H17 TMP_80) in 
-(ex_intro2 C TMP_72 TMP_75 x1 H16 TMP_81)))))))))))) in (let TMP_83 \def 
-(csubt_drop_abbr g n c1 c2 H12 d1 u H15) in (ex2_ind C TMP_63 TMP_66 TMP_71 
-TMP_82 TMP_83)))))))))))))))))) in (let TMP_85 \def (TMP_84 H8) in (TMP_85 
-H7))))))))))))))))))))))))))))))))) in (let TMP_207 \def (\lambda (f: 
-F).(\lambda (H5: (drop n O c1 (CHead x0 (Flat f) t))).(\lambda (H6: (clear 
-(CHead x0 (Flat f) t) (CHead d1 (Bind Abbr) u))).(let H7 \def H5 in (let 
-TMP_91 \def (\lambda (c: C).((drop n O c (CHead x0 (Flat f) t)) \to (\forall 
-(c2: C).((csubt g c c2) \to (let TMP_87 \def (\lambda (d2: C).(csubt g d1 
-d2)) in (let TMP_90 \def (\lambda (d2: C).(let TMP_88 \def (Bind Abbr) in 
-(let TMP_89 \def (CHead d2 TMP_88 u) in (getl n c2 TMP_89)))) in (ex2 C 
-TMP_87 TMP_90))))))) in (let TMP_96 \def (\lambda (n0: nat).(\forall (x1: 
-C).((drop n0 O x1 (CHead x0 (Flat f) t)) \to (\forall (c2: C).((csubt g x1 
-c2) \to (let TMP_92 \def (\lambda (d2: C).(csubt g d1 d2)) in (let TMP_95 
-\def (\lambda (d2: C).(let TMP_93 \def (Bind Abbr) in (let TMP_94 \def (CHead 
-d2 TMP_93 u) in (getl n0 c2 TMP_94)))) in (ex2 C TMP_92 TMP_95)))))))) in 
-(let TMP_143 \def (\lambda (x1: C).(\lambda (H8: (drop O O x1 (CHead x0 (Flat 
-f) t))).(\lambda (c2: C).(\lambda (H9: (csubt g x1 c2)).(let TMP_97 \def 
-(\lambda (c: C).(csubt g c c2)) in (let TMP_98 \def (Flat f) in (let TMP_99 
-\def (CHead x0 TMP_98 t) in (let TMP_100 \def (Flat f) in (let TMP_101 \def 
-(CHead x0 TMP_100 t) in (let TMP_102 \def (drop_gen_refl x1 TMP_101 H8) in 
-(let H10 \def (eq_ind C x1 TMP_97 H9 TMP_99 TMP_102) in (let TMP_103 \def 
-(Bind Abbr) in (let TMP_104 \def (CHead d1 TMP_103 u) in (let TMP_105 \def 
-(Bind Abbr) in (let TMP_106 \def (CHead d1 TMP_105 u) in (let TMP_107 \def 
-(clear_gen_flat f x0 TMP_106 t H6) in (let H_y \def (clear_flat x0 TMP_104 
-TMP_107 f t) in (let TMP_108 \def (Flat f) in (let TMP_109 \def (CHead x0 
-TMP_108 t) in (let TMP_110 \def (Bind Abbr) in (let TMP_111 \def (CHead d1 
-TMP_110 u) in (let H11 \def (csubt_clear_conf g TMP_109 c2 H10 TMP_111 H_y) 
-in (let TMP_114 \def (\lambda (e2: C).(let TMP_112 \def (Bind Abbr) in (let 
-TMP_113 \def (CHead d1 TMP_112 u) in (csubt g TMP_113 e2)))) in (let TMP_115 
-\def (\lambda (e2: C).(clear c2 e2)) in (let TMP_116 \def (\lambda (d2: 
-C).(csubt g d1 d2)) in (let TMP_119 \def (\lambda (d2: C).(let TMP_117 \def 
-(Bind Abbr) in (let TMP_118 \def (CHead d2 TMP_117 u) in (getl O c2 
-TMP_118)))) in (let TMP_120 \def (ex2 C TMP_116 TMP_119) in (let TMP_142 \def 
-(\lambda (x2: C).(\lambda (H12: (csubt g (CHead d1 (Bind Abbr) u) 
-x2)).(\lambda (H13: (clear c2 x2)).(let H14 \def (csubt_gen_abbr g d1 x2 u 
-H12) in (let TMP_123 \def (\lambda (e2: C).(let TMP_121 \def (Bind Abbr) in 
-(let TMP_122 \def (CHead e2 TMP_121 u) in (eq C x2 TMP_122)))) in (let 
-TMP_124 \def (\lambda (e2: C).(csubt g d1 e2)) in (let TMP_125 \def (\lambda 
-(d2: C).(csubt g d1 d2)) in (let TMP_128 \def (\lambda (d2: C).(let TMP_126 
-\def (Bind Abbr) in (let TMP_127 \def (CHead d2 TMP_126 u) in (getl O c2 
-TMP_127)))) in (let TMP_129 \def (ex2 C TMP_125 TMP_128) in (let TMP_141 \def 
-(\lambda (x3: C).(\lambda (H15: (eq C x2 (CHead x3 (Bind Abbr) u))).(\lambda 
-(H16: (csubt g d1 x3)).(let TMP_130 \def (\lambda (c: C).(clear c2 c)) in 
-(let TMP_131 \def (Bind Abbr) in (let TMP_132 \def (CHead x3 TMP_131 u) in 
-(let H17 \def (eq_ind C x2 TMP_130 H13 TMP_132 H15) in (let TMP_133 \def 
-(\lambda (d2: C).(csubt g d1 d2)) in (let TMP_136 \def (\lambda (d2: C).(let 
-TMP_134 \def (Bind Abbr) in (let TMP_135 \def (CHead d2 TMP_134 u) in (getl O 
-c2 TMP_135)))) in (let TMP_137 \def (Bind Abbr) in (let TMP_138 \def (CHead 
-x3 TMP_137 u) in (let TMP_139 \def (drop_refl c2) in (let TMP_140 \def 
-(getl_intro O c2 TMP_138 c2 TMP_139 H17) in (ex_intro2 C TMP_133 TMP_136 x3 
-H16 TMP_140)))))))))))))) in (ex2_ind C TMP_123 TMP_124 TMP_129 TMP_141 
-H14))))))))))) in (ex2_ind C TMP_114 TMP_115 TMP_120 TMP_142 
-H11))))))))))))))))))))))))))))) in (let TMP_205 \def (\lambda (n0: 
-nat).(\lambda (H8: ((\forall (x1: C).((drop n0 O x1 (CHead x0 (Flat f) t)) 
-\to (\forall (c2: C).((csubt g x1 c2) \to (ex2 C (\lambda (d2: C).(csubt g d1 
-d2)) (\lambda (d2: C).(getl n0 c2 (CHead d2 (Bind Abbr) u)))))))))).(\lambda 
-(x1: C).(\lambda (H9: (drop (S n0) O x1 (CHead x0 (Flat f) t))).(\lambda (c2: 
-C).(\lambda (H10: (csubt g x1 c2)).(let TMP_144 \def (Flat f) in (let TMP_145 
-\def (CHead x0 TMP_144 t) in (let H11 \def (drop_clear x1 TMP_145 n0 H9) in 
-(let TMP_148 \def (\lambda (b: B).(\lambda (e: C).(\lambda (v: T).(let 
-TMP_146 \def (Bind b) in (let TMP_147 \def (CHead e TMP_146 v) in (clear x1 
-TMP_147)))))) in (let TMP_151 \def (\lambda (_: B).(\lambda (e: C).(\lambda 
-(_: T).(let TMP_149 \def (Flat f) in (let TMP_150 \def (CHead x0 TMP_149 t) 
-in (drop n0 O e TMP_150)))))) in (let TMP_152 \def (\lambda (d2: C).(csubt g 
-d1 d2)) in (let TMP_156 \def (\lambda (d2: C).(let TMP_153 \def (S n0) in 
-(let TMP_154 \def (Bind Abbr) in (let TMP_155 \def (CHead d2 TMP_154 u) in 
-(getl TMP_153 c2 TMP_155))))) in (let TMP_157 \def (ex2 C TMP_152 TMP_156) in 
-(let TMP_204 \def (\lambda (x2: B).(\lambda (x3: C).(\lambda (x4: T).(\lambda 
-(H12: (clear x1 (CHead x3 (Bind x2) x4))).(\lambda (H13: (drop n0 O x3 (CHead 
-x0 (Flat f) t))).(let TMP_158 \def (Bind x2) in (let TMP_159 \def (CHead x3 
-TMP_158 x4) in (let H14 \def (csubt_clear_conf g x1 c2 H10 TMP_159 H12) in 
-(let TMP_162 \def (\lambda (e2: C).(let TMP_160 \def (Bind x2) in (let 
-TMP_161 \def (CHead x3 TMP_160 x4) in (csubt g TMP_161 e2)))) in (let TMP_163 
-\def (\lambda (e2: C).(clear c2 e2)) in (let TMP_164 \def (\lambda (d2: 
-C).(csubt g d1 d2)) in (let TMP_168 \def (\lambda (d2: C).(let TMP_165 \def 
-(S n0) in (let TMP_166 \def (Bind Abbr) in (let TMP_167 \def (CHead d2 
-TMP_166 u) in (getl TMP_165 c2 TMP_167))))) in (let TMP_169 \def (ex2 C 
-TMP_164 TMP_168) in (let TMP_203 \def (\lambda (x5: C).(\lambda (H15: (csubt 
-g (CHead x3 (Bind x2) x4) x5)).(\lambda (H16: (clear c2 x5)).(let H17 \def 
-(csubt_gen_bind g x2 x3 x5 x4 H15) in (let TMP_172 \def (\lambda (b2: 
-B).(\lambda (e2: C).(\lambda (v2: T).(let TMP_170 \def (Bind b2) in (let 
-TMP_171 \def (CHead e2 TMP_170 v2) in (eq C x5 TMP_171)))))) in (let TMP_173 
-\def (\lambda (_: B).(\lambda (e2: C).(\lambda (_: T).(csubt g x3 e2)))) in 
-(let TMP_174 \def (\lambda (d2: C).(csubt g d1 d2)) in (let TMP_178 \def 
-(\lambda (d2: C).(let TMP_175 \def (S n0) in (let TMP_176 \def (Bind Abbr) in 
-(let TMP_177 \def (CHead d2 TMP_176 u) in (getl TMP_175 c2 TMP_177))))) in 
-(let TMP_179 \def (ex2 C TMP_174 TMP_178) in (let TMP_202 \def (\lambda (x6: 
-B).(\lambda (x7: C).(\lambda (x8: T).(\lambda (H18: (eq C x5 (CHead x7 (Bind 
-x6) x8))).(\lambda (H19: (csubt g x3 x7)).(let TMP_180 \def (\lambda (c: 
-C).(clear c2 c)) in (let TMP_181 \def (Bind x6) in (let TMP_182 \def (CHead 
-x7 TMP_181 x8) in (let H20 \def (eq_ind C x5 TMP_180 H16 TMP_182 H18) in (let 
-H21 \def (H8 x3 H13 x7 H19) in (let TMP_183 \def (\lambda (d2: C).(csubt g d1 
-d2)) in (let TMP_186 \def (\lambda (d2: C).(let TMP_184 \def (Bind Abbr) in 
-(let TMP_185 \def (CHead d2 TMP_184 u) in (getl n0 x7 TMP_185)))) in (let 
-TMP_187 \def (\lambda (d2: C).(csubt g d1 d2)) in (let TMP_191 \def (\lambda 
-(d2: C).(let TMP_188 \def (S n0) in (let TMP_189 \def (Bind Abbr) in (let 
-TMP_190 \def (CHead d2 TMP_189 u) in (getl TMP_188 c2 TMP_190))))) in (let 
-TMP_192 \def (ex2 C TMP_187 TMP_191) in (let TMP_201 \def (\lambda (x9: 
-C).(\lambda (H22: (csubt g d1 x9)).(\lambda (H23: (getl n0 x7 (CHead x9 (Bind 
-Abbr) u))).(let TMP_193 \def (\lambda (d2: C).(csubt g d1 d2)) in (let 
-TMP_197 \def (\lambda (d2: C).(let TMP_194 \def (S n0) in (let TMP_195 \def 
-(Bind Abbr) in (let TMP_196 \def (CHead d2 TMP_195 u) in (getl TMP_194 c2 
-TMP_196))))) in (let TMP_198 \def (Bind Abbr) in (let TMP_199 \def (CHead x9 
-TMP_198 u) in (let TMP_200 \def (getl_clear_bind x6 c2 x7 x8 H20 TMP_199 n0 
-H23) in (ex_intro2 C TMP_193 TMP_197 x9 H22 TMP_200))))))))) in (ex2_ind C 
-TMP_183 TMP_186 TMP_192 TMP_201 H21))))))))))))))))) in (ex2_3_ind B C T 
-TMP_172 TMP_173 TMP_179 TMP_202 H17))))))))))) in (ex2_ind C TMP_162 TMP_163 
-TMP_169 TMP_203 H14))))))))))))))) in (ex2_3_ind B C T TMP_148 TMP_151 
-TMP_157 TMP_204 H11)))))))))))))))) in (let TMP_206 \def (nat_ind TMP_96 
-TMP_143 TMP_205 n) in (unintro C c1 TMP_91 TMP_206 H7)))))))))) in (K_ind 
-TMP_29 TMP_86 TMP_207 k H3 H4)))))))))) in (C_ind TMP_16 TMP_24 TMP_208 x H1 
-H2))))))) in (ex2_ind C TMP_3 TMP_6 TMP_11 TMP_209 H0))))))))))))).
+(n: nat).(\lambda (H: (getl n c1 (CHead d1 (Bind Abbr) u))).(let H0 \def 
+(getl_gen_all c1 (CHead d1 (Bind Abbr) u) n H) in (ex2_ind C (\lambda (e: 
+C).(drop n O c1 e)) (\lambda (e: C).(clear e (CHead d1 (Bind Abbr) u))) 
+(\forall (c2: C).((csubt g c1 c2) \to (ex2 C (\lambda (d2: C).(csubt g d1 
+d2)) (\lambda (d2: C).(getl n c2 (CHead d2 (Bind Abbr) u)))))) (\lambda (x: 
+C).(\lambda (H1: (drop n O c1 x)).(\lambda (H2: (clear x (CHead d1 (Bind 
+Abbr) u))).(C_ind (\lambda (c: C).((drop n O c1 c) \to ((clear c (CHead d1 
+(Bind Abbr) u)) \to (\forall (c2: C).((csubt g c1 c2) \to (ex2 C (\lambda 
+(d2: C).(csubt g d1 d2)) (\lambda (d2: C).(getl n c2 (CHead d2 (Bind Abbr) 
+u))))))))) (\lambda (n0: nat).(\lambda (_: (drop n O c1 (CSort n0))).(\lambda 
+(H4: (clear (CSort n0) (CHead d1 (Bind Abbr) u))).(clear_gen_sort (CHead d1 
+(Bind Abbr) u) n0 H4 (\forall (c2: C).((csubt g c1 c2) \to (ex2 C (\lambda 
+(d2: C).(csubt g d1 d2)) (\lambda (d2: C).(getl n c2 (CHead d2 (Bind Abbr) 
+u)))))))))) (\lambda (x0: C).(\lambda (_: (((drop n O c1 x0) \to ((clear x0 
+(CHead d1 (Bind Abbr) u)) \to (\forall (c2: C).((csubt g c1 c2) \to (ex2 C 
+(\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(getl n c2 (CHead d2 (Bind 
+Abbr) u)))))))))).(\lambda (k: K).(\lambda (t: T).(\lambda (H3: (drop n O c1 
+(CHead x0 k t))).(\lambda (H4: (clear (CHead x0 k t) (CHead d1 (Bind Abbr) 
+u))).(K_ind (\lambda (k0: K).((drop n O c1 (CHead x0 k0 t)) \to ((clear 
+(CHead x0 k0 t) (CHead d1 (Bind Abbr) u)) \to (\forall (c2: C).((csubt g c1 
+c2) \to (ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(getl n c2 
+(CHead d2 (Bind Abbr) u))))))))) (\lambda (b: B).(\lambda (H5: (drop n O c1 
+(CHead x0 (Bind b) t))).(\lambda (H6: (clear (CHead x0 (Bind b) t) (CHead d1 
+(Bind Abbr) u))).(let H7 \def (f_equal C C (\lambda (e: C).(match e with 
+[(CSort _) \Rightarrow d1 | (CHead c _ _) \Rightarrow c])) (CHead d1 (Bind 
+Abbr) u) (CHead x0 (Bind b) t) (clear_gen_bind b x0 (CHead d1 (Bind Abbr) u) 
+t H6)) in ((let H8 \def (f_equal C B (\lambda (e: C).(match e with [(CSort _) 
+\Rightarrow Abbr | (CHead _ k0 _) \Rightarrow (match k0 with [(Bind b0) 
+\Rightarrow b0 | (Flat _) \Rightarrow Abbr])])) (CHead d1 (Bind Abbr) u) 
+(CHead x0 (Bind b) t) (clear_gen_bind b x0 (CHead d1 (Bind Abbr) u) t H6)) in 
+((let H9 \def (f_equal C T (\lambda (e: C).(match e with [(CSort _) 
+\Rightarrow u | (CHead _ _ t0) \Rightarrow t0])) (CHead d1 (Bind Abbr) u) 
+(CHead x0 (Bind b) t) (clear_gen_bind b x0 (CHead d1 (Bind Abbr) u) t H6)) in 
+(\lambda (H10: (eq B Abbr b)).(\lambda (H11: (eq C d1 x0)).(\lambda (c2: 
+C).(\lambda (H12: (csubt g c1 c2)).(let H13 \def (eq_ind_r T t (\lambda (t0: 
+T).(drop n O c1 (CHead x0 (Bind b) t0))) H5 u H9) in (let H14 \def (eq_ind_r 
+B b (\lambda (b0: B).(drop n O c1 (CHead x0 (Bind b0) u))) H13 Abbr H10) in 
+(let H15 \def (eq_ind_r C x0 (\lambda (c: C).(drop n O c1 (CHead c (Bind 
+Abbr) u))) H14 d1 H11) in (ex2_ind C (\lambda (d2: C).(csubt g d1 d2)) 
+(\lambda (d2: C).(drop n O c2 (CHead d2 (Bind Abbr) u))) (ex2 C (\lambda (d2: 
+C).(csubt g d1 d2)) (\lambda (d2: C).(getl n c2 (CHead d2 (Bind Abbr) u)))) 
+(\lambda (x1: C).(\lambda (H16: (csubt g d1 x1)).(\lambda (H17: (drop n O c2 
+(CHead x1 (Bind Abbr) u))).(ex_intro2 C (\lambda (d2: C).(csubt g d1 d2)) 
+(\lambda (d2: C).(getl n c2 (CHead d2 (Bind Abbr) u))) x1 H16 (getl_intro n 
+c2 (CHead x1 (Bind Abbr) u) (CHead x1 (Bind Abbr) u) H17 (clear_bind Abbr x1 
+u)))))) (csubt_drop_abbr g n c1 c2 H12 d1 u H15)))))))))) H8)) H7))))) 
+(\lambda (f: F).(\lambda (H5: (drop n O c1 (CHead x0 (Flat f) t))).(\lambda 
+(H6: (clear (CHead x0 (Flat f) t) (CHead d1 (Bind Abbr) u))).(let H7 \def H5 
+in (unintro C c1 (\lambda (c: C).((drop n O c (CHead x0 (Flat f) t)) \to 
+(\forall (c2: C).((csubt g c c2) \to (ex2 C (\lambda (d2: C).(csubt g d1 d2)) 
+(\lambda (d2: C).(getl n c2 (CHead d2 (Bind Abbr) u)))))))) (nat_ind (\lambda 
+(n0: nat).(\forall (x1: C).((drop n0 O x1 (CHead x0 (Flat f) t)) \to (\forall 
+(c2: C).((csubt g x1 c2) \to (ex2 C (\lambda (d2: C).(csubt g d1 d2)) 
+(\lambda (d2: C).(getl n0 c2 (CHead d2 (Bind Abbr) u))))))))) (\lambda (x1: 
+C).(\lambda (H8: (drop O O x1 (CHead x0 (Flat f) t))).(\lambda (c2: 
+C).(\lambda (H9: (csubt g x1 c2)).(let H10 \def (eq_ind C x1 (\lambda (c: 
+C).(csubt g c c2)) H9 (CHead x0 (Flat f) t) (drop_gen_refl x1 (CHead x0 (Flat 
+f) t) H8)) in (let H_y \def (clear_flat x0 (CHead d1 (Bind Abbr) u) 
+(clear_gen_flat f x0 (CHead d1 (Bind Abbr) u) t H6) f t) in (let H11 \def 
+(csubt_clear_conf g (CHead x0 (Flat f) t) c2 H10 (CHead d1 (Bind Abbr) u) 
+H_y) in (ex2_ind C (\lambda (e2: C).(csubt g (CHead d1 (Bind Abbr) u) e2)) 
+(\lambda (e2: C).(clear c2 e2)) (ex2 C (\lambda (d2: C).(csubt g d1 d2)) 
+(\lambda (d2: C).(getl O c2 (CHead d2 (Bind Abbr) u)))) (\lambda (x2: 
+C).(\lambda (H12: (csubt g (CHead d1 (Bind Abbr) u) x2)).(\lambda (H13: 
+(clear c2 x2)).(let H14 \def (csubt_gen_abbr g d1 x2 u H12) in (ex2_ind C 
+(\lambda (e2: C).(eq C x2 (CHead e2 (Bind Abbr) u))) (\lambda (e2: C).(csubt 
+g d1 e2)) (ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(getl O 
+c2 (CHead d2 (Bind Abbr) u)))) (\lambda (x3: C).(\lambda (H15: (eq C x2 
+(CHead x3 (Bind Abbr) u))).(\lambda (H16: (csubt g d1 x3)).(let H17 \def 
+(eq_ind C x2 (\lambda (c: C).(clear c2 c)) H13 (CHead x3 (Bind Abbr) u) H15) 
+in (ex_intro2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(getl O c2 
+(CHead d2 (Bind Abbr) u))) x3 H16 (getl_intro O c2 (CHead x3 (Bind Abbr) u) 
+c2 (drop_refl c2) H17)))))) H14))))) H11)))))))) (\lambda (n0: nat).(\lambda 
+(H8: ((\forall (x1: C).((drop n0 O x1 (CHead x0 (Flat f) t)) \to (\forall 
+(c2: C).((csubt g x1 c2) \to (ex2 C (\lambda (d2: C).(csubt g d1 d2)) 
+(\lambda (d2: C).(getl n0 c2 (CHead d2 (Bind Abbr) u)))))))))).(\lambda (x1: 
+C).(\lambda (H9: (drop (S n0) O x1 (CHead x0 (Flat f) t))).(\lambda (c2: 
+C).(\lambda (H10: (csubt g x1 c2)).(let H11 \def (drop_clear x1 (CHead x0 
+(Flat f) t) n0 H9) in (ex2_3_ind B C T (\lambda (b: B).(\lambda (e: 
+C).(\lambda (v: T).(clear x1 (CHead e (Bind b) v))))) (\lambda (_: 
+B).(\lambda (e: C).(\lambda (_: T).(drop n0 O e (CHead x0 (Flat f) t))))) 
+(ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(getl (S n0) c2 
+(CHead d2 (Bind Abbr) u)))) (\lambda (x2: B).(\lambda (x3: C).(\lambda (x4: 
+T).(\lambda (H12: (clear x1 (CHead x3 (Bind x2) x4))).(\lambda (H13: (drop n0 
+O x3 (CHead x0 (Flat f) t))).(let H14 \def (csubt_clear_conf g x1 c2 H10 
+(CHead x3 (Bind x2) x4) H12) in (ex2_ind C (\lambda (e2: C).(csubt g (CHead 
+x3 (Bind x2) x4) e2)) (\lambda (e2: C).(clear c2 e2)) (ex2 C (\lambda (d2: 
+C).(csubt g d1 d2)) (\lambda (d2: C).(getl (S n0) c2 (CHead d2 (Bind Abbr) 
+u)))) (\lambda (x5: C).(\lambda (H15: (csubt g (CHead x3 (Bind x2) x4) 
+x5)).(\lambda (H16: (clear c2 x5)).(let H17 \def (csubt_gen_bind g x2 x3 x5 
+x4 H15) in (ex2_3_ind B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: 
+T).(eq C x5 (CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: 
+C).(\lambda (_: T).(csubt g x3 e2)))) (ex2 C (\lambda (d2: C).(csubt g d1 
+d2)) (\lambda (d2: C).(getl (S n0) c2 (CHead d2 (Bind Abbr) u)))) (\lambda 
+(x6: B).(\lambda (x7: C).(\lambda (x8: T).(\lambda (H18: (eq C x5 (CHead x7 
+(Bind x6) x8))).(\lambda (H19: (csubt g x3 x7)).(let H20 \def (eq_ind C x5 
+(\lambda (c: C).(clear c2 c)) H16 (CHead x7 (Bind x6) x8) H18) in (let H21 
+\def (H8 x3 H13 x7 H19) in (ex2_ind C (\lambda (d2: C).(csubt g d1 d2)) 
+(\lambda (d2: C).(getl n0 x7 (CHead d2 (Bind Abbr) u))) (ex2 C (\lambda (d2: 
+C).(csubt g d1 d2)) (\lambda (d2: C).(getl (S n0) c2 (CHead d2 (Bind Abbr) 
+u)))) (\lambda (x9: C).(\lambda (H22: (csubt g d1 x9)).(\lambda (H23: (getl 
+n0 x7 (CHead x9 (Bind Abbr) u))).(ex_intro2 C (\lambda (d2: C).(csubt g d1 
+d2)) (\lambda (d2: C).(getl (S n0) c2 (CHead d2 (Bind Abbr) u))) x9 H22 
+(getl_clear_bind x6 c2 x7 x8 H20 (CHead x9 (Bind Abbr) u) n0 H23))))) 
+H21)))))))) H17))))) H14))))))) H11)))))))) n) H7))))) k H3 H4))))))) x H1 
+H2)))) H0))))))).
 
 theorem csubt_getl_abst:
  \forall (g: G).(\forall (c1: C).(\forall (d1: C).(\forall (t: T).(\forall 
@@ -224,503 +144,274 @@ c2 (CHead d2 (Bind Abbr) u)))) (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u
 t))) (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))))))))))))
 \def
  \lambda (g: G).(\lambda (c1: C).(\lambda (d1: C).(\lambda (t: T).(\lambda 
-(n: nat).(\lambda (H: (getl n c1 (CHead d1 (Bind Abst) t))).(let TMP_1 \def 
-(Bind Abst) in (let TMP_2 \def (CHead d1 TMP_1 t) in (let H0 \def 
-(getl_gen_all c1 TMP_2 n H) in (let TMP_3 \def (\lambda (e: C).(drop n O c1 
-e)) in (let TMP_6 \def (\lambda (e: C).(let TMP_4 \def (Bind Abst) in (let 
-TMP_5 \def (CHead d1 TMP_4 t) in (clear e TMP_5)))) in (let TMP_19 \def 
-(\forall (c2: C).((csubt g c1 c2) \to (let TMP_7 \def (\lambda (d2: C).(csubt 
-g d1 d2)) in (let TMP_10 \def (\lambda (d2: C).(let TMP_8 \def (Bind Abst) in 
-(let TMP_9 \def (CHead d2 TMP_8 t) in (getl n c2 TMP_9)))) in (let TMP_11 
-\def (ex2 C TMP_7 TMP_10) in (let TMP_12 \def (\lambda (d2: C).(\lambda (_: 
-T).(csubt g d1 d2))) in (let TMP_15 \def (\lambda (d2: C).(\lambda (u: 
-T).(let TMP_13 \def (Bind Abbr) in (let TMP_14 \def (CHead d2 TMP_13 u) in 
-(getl n c2 TMP_14))))) in (let TMP_16 \def (\lambda (_: C).(\lambda (u: 
-T).(ty3 g d1 u t))) in (let TMP_17 \def (\lambda (d2: C).(\lambda (u: T).(ty3 
-g d2 u t))) in (let TMP_18 \def (ex4_2 C T TMP_12 TMP_15 TMP_16 TMP_17) in 
-(or TMP_11 TMP_18))))))))))) in (let TMP_579 \def (\lambda (x: C).(\lambda 
-(H1: (drop n O c1 x)).(\lambda (H2: (clear x (CHead d1 (Bind Abst) t))).(let 
-TMP_32 \def (\lambda (c: C).((drop n O c1 c) \to ((clear c (CHead d1 (Bind 
-Abst) t)) \to (\forall (c2: C).((csubt g c1 c2) \to (let TMP_20 \def (\lambda 
-(d2: C).(csubt g d1 d2)) in (let TMP_23 \def (\lambda (d2: C).(let TMP_21 
-\def (Bind Abst) in (let TMP_22 \def (CHead d2 TMP_21 t) in (getl n c2 
-TMP_22)))) in (let TMP_24 \def (ex2 C TMP_20 TMP_23) in (let TMP_25 \def 
-(\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) in (let TMP_28 \def 
-(\lambda (d2: C).(\lambda (u: T).(let TMP_26 \def (Bind Abbr) in (let TMP_27 
-\def (CHead d2 TMP_26 u) in (getl n c2 TMP_27))))) in (let TMP_29 \def 
-(\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) in (let TMP_30 \def (\lambda 
-(d2: C).(\lambda (u: T).(ty3 g d2 u t))) in (let TMP_31 \def (ex4_2 C T 
-TMP_25 TMP_28 TMP_29 TMP_30) in (or TMP_24 TMP_31)))))))))))))) in (let 
-TMP_48 \def (\lambda (n0: nat).(\lambda (_: (drop n O c1 (CSort 
-n0))).(\lambda (H4: (clear (CSort n0) (CHead d1 (Bind Abst) t))).(let TMP_33 
-\def (Bind Abst) in (let TMP_34 \def (CHead d1 TMP_33 t) in (let TMP_47 \def 
-(\forall (c2: C).((csubt g c1 c2) \to (let TMP_35 \def (\lambda (d2: 
-C).(csubt g d1 d2)) in (let TMP_38 \def (\lambda (d2: C).(let TMP_36 \def 
-(Bind Abst) in (let TMP_37 \def (CHead d2 TMP_36 t) in (getl n c2 TMP_37)))) 
-in (let TMP_39 \def (ex2 C TMP_35 TMP_38) in (let TMP_40 \def (\lambda (d2: 
-C).(\lambda (_: T).(csubt g d1 d2))) in (let TMP_43 \def (\lambda (d2: 
-C).(\lambda (u: T).(let TMP_41 \def (Bind Abbr) in (let TMP_42 \def (CHead d2 
-TMP_41 u) in (getl n c2 TMP_42))))) in (let TMP_44 \def (\lambda (_: 
-C).(\lambda (u: T).(ty3 g d1 u t))) in (let TMP_45 \def (\lambda (d2: 
-C).(\lambda (u: T).(ty3 g d2 u t))) in (let TMP_46 \def (ex4_2 C T TMP_40 
-TMP_43 TMP_44 TMP_45) in (or TMP_39 TMP_46))))))))))) in (clear_gen_sort 
-TMP_34 n0 H4 TMP_47))))))) in (let TMP_578 \def (\lambda (x0: C).(\lambda (_: 
-(((drop n O c1 x0) \to ((clear x0 (CHead d1 (Bind Abst) t)) \to (\forall (c2: 
-C).((csubt g c1 c2) \to (or (ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda 
-(d2: C).(getl n c2 (CHead d2 (Bind Abst) t)))) (ex4_2 C T (\lambda (d2: 
+(n: nat).(\lambda (H: (getl n c1 (CHead d1 (Bind Abst) t))).(let H0 \def 
+(getl_gen_all c1 (CHead d1 (Bind Abst) t) n H) in (ex2_ind C (\lambda (e: 
+C).(drop n O c1 e)) (\lambda (e: C).(clear e (CHead d1 (Bind Abst) t))) 
+(\forall (c2: C).((csubt g c1 c2) \to (or (ex2 C (\lambda (d2: C).(csubt g d1 
+d2)) (\lambda (d2: C).(getl n c2 (CHead d2 (Bind Abst) t)))) (ex4_2 C T 
+(\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda 
+(u: T).(getl n c2 (CHead d2 (Bind Abbr) u)))) (\lambda (_: C).(\lambda (u: 
+T).(ty3 g d1 u t))) (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))))))) 
+(\lambda (x: C).(\lambda (H1: (drop n O c1 x)).(\lambda (H2: (clear x (CHead 
+d1 (Bind Abst) t))).(C_ind (\lambda (c: C).((drop n O c1 c) \to ((clear c 
+(CHead d1 (Bind Abst) t)) \to (\forall (c2: C).((csubt g c1 c2) \to (or (ex2 
+C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(getl n c2 (CHead d2 
+(Bind Abst) t)))) (ex4_2 C T (\lambda (d2: C).(\lambda (_: T).(csubt g d1 
+d2))) (\lambda (d2: C).(\lambda (u: T).(getl n c2 (CHead d2 (Bind Abbr) u)))) 
+(\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) (\lambda (d2: C).(\lambda 
+(u: T).(ty3 g d2 u t)))))))))) (\lambda (n0: nat).(\lambda (_: (drop n O c1 
+(CSort n0))).(\lambda (H4: (clear (CSort n0) (CHead d1 (Bind Abst) 
+t))).(clear_gen_sort (CHead d1 (Bind Abst) t) n0 H4 (\forall (c2: C).((csubt 
+g c1 c2) \to (or (ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: 
+C).(getl n c2 (CHead d2 (Bind Abst) t)))) (ex4_2 C T (\lambda (d2: 
 C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda (u: T).(getl n 
 c2 (CHead d2 (Bind Abbr) u)))) (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u 
-t))) (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))))))))))).(\lambda (k: 
-K).(\lambda (t0: T).(\lambda (H3: (drop n O c1 (CHead x0 k t0))).(\lambda 
-(H4: (clear (CHead x0 k t0) (CHead d1 (Bind Abst) t))).(let TMP_61 \def 
-(\lambda (k0: K).((drop n O c1 (CHead x0 k0 t0)) \to ((clear (CHead x0 k0 t0) 
-(CHead d1 (Bind Abst) t)) \to (\forall (c2: C).((csubt g c1 c2) \to (let 
-TMP_49 \def (\lambda (d2: C).(csubt g d1 d2)) in (let TMP_52 \def (\lambda 
-(d2: C).(let TMP_50 \def (Bind Abst) in (let TMP_51 \def (CHead d2 TMP_50 t) 
-in (getl n c2 TMP_51)))) in (let TMP_53 \def (ex2 C TMP_49 TMP_52) in (let 
-TMP_54 \def (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) in (let TMP_57 
-\def (\lambda (d2: C).(\lambda (u: T).(let TMP_55 \def (Bind Abbr) in (let 
-TMP_56 \def (CHead d2 TMP_55 u) in (getl n c2 TMP_56))))) in (let TMP_58 \def 
-(\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) in (let TMP_59 \def (\lambda 
-(d2: C).(\lambda (u: T).(ty3 g d2 u t))) in (let TMP_60 \def (ex4_2 C T 
-TMP_54 TMP_57 TMP_58 TMP_59) in (or TMP_53 TMP_60)))))))))))))) in (let 
-TMP_211 \def (\lambda (b: B).(\lambda (H5: (drop n O c1 (CHead x0 (Bind b) 
-t0))).(\lambda (H6: (clear (CHead x0 (Bind b) t0) (CHead d1 (Bind Abst) 
-t))).(let TMP_62 \def (\lambda (e: C).(match e with [(CSort _) \Rightarrow d1 
-| (CHead c _ _) \Rightarrow c])) in (let TMP_63 \def (Bind Abst) in (let 
-TMP_64 \def (CHead d1 TMP_63 t) in (let TMP_65 \def (Bind b) in (let TMP_66 
-\def (CHead x0 TMP_65 t0) in (let TMP_67 \def (Bind Abst) in (let TMP_68 \def 
-(CHead d1 TMP_67 t) in (let TMP_69 \def (clear_gen_bind b x0 TMP_68 t0 H6) in 
-(let H7 \def (f_equal C C TMP_62 TMP_64 TMP_66 TMP_69) in (let TMP_70 \def 
-(\lambda (e: C).(match e with [(CSort _) \Rightarrow Abst | (CHead _ k0 _) 
-\Rightarrow (match k0 with [(Bind b0) \Rightarrow b0 | (Flat _) \Rightarrow 
-Abst])])) in (let TMP_71 \def (Bind Abst) in (let TMP_72 \def (CHead d1 
-TMP_71 t) in (let TMP_73 \def (Bind b) in (let TMP_74 \def (CHead x0 TMP_73 
-t0) in (let TMP_75 \def (Bind Abst) in (let TMP_76 \def (CHead d1 TMP_75 t) 
-in (let TMP_77 \def (clear_gen_bind b x0 TMP_76 t0 H6) in (let H8 \def 
-(f_equal C B TMP_70 TMP_72 TMP_74 TMP_77) in (let TMP_78 \def (\lambda (e: 
+t))) (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))))))))))) (\lambda (x0: 
+C).(\lambda (_: (((drop n O c1 x0) \to ((clear x0 (CHead d1 (Bind Abst) t)) 
+\to (\forall (c2: C).((csubt g c1 c2) \to (or (ex2 C (\lambda (d2: C).(csubt 
+g d1 d2)) (\lambda (d2: C).(getl n c2 (CHead d2 (Bind Abst) t)))) (ex4_2 C T 
+(\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda 
+(u: T).(getl n c2 (CHead d2 (Bind Abbr) u)))) (\lambda (_: C).(\lambda (u: 
+T).(ty3 g d1 u t))) (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u 
+t))))))))))).(\lambda (k: K).(\lambda (t0: T).(\lambda (H3: (drop n O c1 
+(CHead x0 k t0))).(\lambda (H4: (clear (CHead x0 k t0) (CHead d1 (Bind Abst) 
+t))).(K_ind (\lambda (k0: K).((drop n O c1 (CHead x0 k0 t0)) \to ((clear 
+(CHead x0 k0 t0) (CHead d1 (Bind Abst) t)) \to (\forall (c2: C).((csubt g c1 
+c2) \to (or (ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(getl n 
+c2 (CHead d2 (Bind Abst) t)))) (ex4_2 C T (\lambda (d2: C).(\lambda (_: 
+T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda (u: T).(getl n c2 (CHead d2 
+(Bind Abbr) u)))) (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) (\lambda 
+(d2: C).(\lambda (u: T).(ty3 g d2 u t)))))))))) (\lambda (b: B).(\lambda (H5: 
+(drop n O c1 (CHead x0 (Bind b) t0))).(\lambda (H6: (clear (CHead x0 (Bind b) 
+t0) (CHead d1 (Bind Abst) t))).(let H7 \def (f_equal C C (\lambda (e: 
+C).(match e with [(CSort _) \Rightarrow d1 | (CHead c _ _) \Rightarrow c])) 
+(CHead d1 (Bind Abst) t) (CHead x0 (Bind b) t0) (clear_gen_bind b x0 (CHead 
+d1 (Bind Abst) t) t0 H6)) in ((let H8 \def (f_equal C B (\lambda (e: 
+C).(match e with [(CSort _) \Rightarrow Abst | (CHead _ k0 _) \Rightarrow 
+(match k0 with [(Bind b0) \Rightarrow b0 | (Flat _) \Rightarrow Abst])])) 
+(CHead d1 (Bind Abst) t) (CHead x0 (Bind b) t0) (clear_gen_bind b x0 (CHead 
+d1 (Bind Abst) t) t0 H6)) in ((let H9 \def (f_equal C T (\lambda (e: 
 C).(match e with [(CSort _) \Rightarrow t | (CHead _ _ t1) \Rightarrow t1])) 
-in (let TMP_79 \def (Bind Abst) in (let TMP_80 \def (CHead d1 TMP_79 t) in 
-(let TMP_81 \def (Bind b) in (let TMP_82 \def (CHead x0 TMP_81 t0) in (let 
-TMP_83 \def (Bind Abst) in (let TMP_84 \def (CHead d1 TMP_83 t) in (let 
-TMP_85 \def (clear_gen_bind b x0 TMP_84 t0 H6) in (let H9 \def (f_equal C T 
-TMP_78 TMP_80 TMP_82 TMP_85) in (let TMP_209 \def (\lambda (H10: (eq B Abst 
-b)).(\lambda (H11: (eq C d1 x0)).(\lambda (c2: C).(\lambda (H12: (csubt g c1 
-c2)).(let TMP_88 \def (\lambda (t1: T).(let TMP_86 \def (Bind b) in (let 
-TMP_87 \def (CHead x0 TMP_86 t1) in (drop n O c1 TMP_87)))) in (let H13 \def 
-(eq_ind_r T t0 TMP_88 H5 t H9) in (let TMP_91 \def (\lambda (b0: B).(let 
-TMP_89 \def (Bind b0) in (let TMP_90 \def (CHead x0 TMP_89 t) in (drop n O c1 
-TMP_90)))) in (let H14 \def (eq_ind_r B b TMP_91 H13 Abst H10) in (let TMP_94 
-\def (\lambda (c: C).(let TMP_92 \def (Bind Abst) in (let TMP_93 \def (CHead 
-c TMP_92 t) in (drop n O c1 TMP_93)))) in (let H15 \def (eq_ind_r C x0 TMP_94 
-H14 d1 H11) in (let TMP_95 \def (\lambda (d2: C).(csubt g d1 d2)) in (let 
-TMP_98 \def (\lambda (d2: C).(let TMP_96 \def (Bind Abst) in (let TMP_97 \def 
-(CHead d2 TMP_96 t) in (drop n O c2 TMP_97)))) in (let TMP_99 \def (ex2 C 
-TMP_95 TMP_98) in (let TMP_100 \def (\lambda (d2: C).(\lambda (_: T).(csubt g 
-d1 d2))) in (let TMP_103 \def (\lambda (d2: C).(\lambda (u: T).(let TMP_101 
-\def (Bind Abbr) in (let TMP_102 \def (CHead d2 TMP_101 u) in (drop n O c2 
-TMP_102))))) in (let TMP_104 \def (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u 
-t))) in (let TMP_105 \def (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))) 
-in (let TMP_106 \def (ex4_2 C T TMP_100 TMP_103 TMP_104 TMP_105) in (let 
-TMP_107 \def (\lambda (d2: C).(csubt g d1 d2)) in (let TMP_110 \def (\lambda 
-(d2: C).(let TMP_108 \def (Bind Abst) in (let TMP_109 \def (CHead d2 TMP_108 
-t) in (getl n c2 TMP_109)))) in (let TMP_111 \def (ex2 C TMP_107 TMP_110) in 
-(let TMP_112 \def (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) in (let 
-TMP_115 \def (\lambda (d2: C).(\lambda (u: T).(let TMP_113 \def (Bind Abbr) 
-in (let TMP_114 \def (CHead d2 TMP_113 u) in (getl n c2 TMP_114))))) in (let 
-TMP_116 \def (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) in (let TMP_117 
-\def (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))) in (let TMP_118 \def 
-(ex4_2 C T TMP_112 TMP_115 TMP_116 TMP_117) in (let TMP_119 \def (or TMP_111 
-TMP_118) in (let TMP_161 \def (\lambda (H16: (ex2 C (\lambda (d2: C).(csubt g 
-d1 d2)) (\lambda (d2: C).(drop n O c2 (CHead d2 (Bind Abst) t))))).(let 
-TMP_120 \def (\lambda (d2: C).(csubt g d1 d2)) in (let TMP_123 \def (\lambda 
-(d2: C).(let TMP_121 \def (Bind Abst) in (let TMP_122 \def (CHead d2 TMP_121 
-t) in (drop n O c2 TMP_122)))) in (let TMP_124 \def (\lambda (d2: C).(csubt g 
-d1 d2)) in (let TMP_127 \def (\lambda (d2: C).(let TMP_125 \def (Bind Abst) 
-in (let TMP_126 \def (CHead d2 TMP_125 t) in (getl n c2 TMP_126)))) in (let 
-TMP_128 \def (ex2 C TMP_124 TMP_127) in (let TMP_129 \def (\lambda (d2: 
-C).(\lambda (_: T).(csubt g d1 d2))) in (let TMP_132 \def (\lambda (d2: 
-C).(\lambda (u: T).(let TMP_130 \def (Bind Abbr) in (let TMP_131 \def (CHead 
-d2 TMP_130 u) in (getl n c2 TMP_131))))) in (let TMP_133 \def (\lambda (_: 
-C).(\lambda (u: T).(ty3 g d1 u t))) in (let TMP_134 \def (\lambda (d2: 
-C).(\lambda (u: T).(ty3 g d2 u t))) in (let TMP_135 \def (ex4_2 C T TMP_129 
-TMP_132 TMP_133 TMP_134) in (let TMP_136 \def (or TMP_128 TMP_135) in (let 
-TMP_160 \def (\lambda (x1: C).(\lambda (H17: (csubt g d1 x1)).(\lambda (H18: 
-(drop n O c2 (CHead x1 (Bind Abst) t))).(let TMP_137 \def (\lambda (d2: 
-C).(csubt g d1 d2)) in (let TMP_140 \def (\lambda (d2: C).(let TMP_138 \def 
-(Bind Abst) in (let TMP_139 \def (CHead d2 TMP_138 t) in (getl n c2 
-TMP_139)))) in (let TMP_141 \def (ex2 C TMP_137 TMP_140) in (let TMP_142 \def 
-(\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) in (let TMP_145 \def 
-(\lambda (d2: C).(\lambda (u: T).(let TMP_143 \def (Bind Abbr) in (let 
-TMP_144 \def (CHead d2 TMP_143 u) in (getl n c2 TMP_144))))) in (let TMP_146 
-\def (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) in (let TMP_147 \def 
-(\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))) in (let TMP_148 \def (ex4_2 
-C T TMP_142 TMP_145 TMP_146 TMP_147) in (let TMP_149 \def (\lambda (d2: 
-C).(csubt g d1 d2)) in (let TMP_152 \def (\lambda (d2: C).(let TMP_150 \def 
-(Bind Abst) in (let TMP_151 \def (CHead d2 TMP_150 t) in (getl n c2 
-TMP_151)))) in (let TMP_153 \def (Bind Abst) in (let TMP_154 \def (CHead x1 
-TMP_153 t) in (let TMP_155 \def (Bind Abst) in (let TMP_156 \def (CHead x1 
-TMP_155 t) in (let TMP_157 \def (clear_bind Abst x1 t) in (let TMP_158 \def 
-(getl_intro n c2 TMP_154 TMP_156 H18 TMP_157) in (let TMP_159 \def (ex_intro2 
-C TMP_149 TMP_152 x1 H17 TMP_158) in (or_introl TMP_141 TMP_148 
-TMP_159))))))))))))))))))))) in (ex2_ind C TMP_120 TMP_123 TMP_136 TMP_160 
-H16)))))))))))))) in (let TMP_207 \def (\lambda (H16: (ex4_2 C T (\lambda 
+(CHead d1 (Bind Abst) t) (CHead x0 (Bind b) t0) (clear_gen_bind b x0 (CHead 
+d1 (Bind Abst) t) t0 H6)) in (\lambda (H10: (eq B Abst b)).(\lambda (H11: (eq 
+C d1 x0)).(\lambda (c2: C).(\lambda (H12: (csubt g c1 c2)).(let H13 \def 
+(eq_ind_r T t0 (\lambda (t1: T).(drop n O c1 (CHead x0 (Bind b) t1))) H5 t 
+H9) in (let H14 \def (eq_ind_r B b (\lambda (b0: B).(drop n O c1 (CHead x0 
+(Bind b0) t))) H13 Abst H10) in (let H15 \def (eq_ind_r C x0 (\lambda (c: 
+C).(drop n O c1 (CHead c (Bind Abst) t))) H14 d1 H11) in (or_ind (ex2 C 
+(\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(drop n O c2 (CHead d2 
+(Bind Abst) t)))) (ex4_2 C T (\lambda (d2: C).(\lambda (_: T).(csubt g d1 
+d2))) (\lambda (d2: C).(\lambda (u: T).(drop n O c2 (CHead d2 (Bind Abbr) 
+u)))) (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) (\lambda (d2: 
+C).(\lambda (u: T).(ty3 g d2 u t)))) (or (ex2 C (\lambda (d2: C).(csubt g d1 
+d2)) (\lambda (d2: C).(getl n c2 (CHead d2 (Bind Abst) t)))) (ex4_2 C T 
+(\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda 
+(u: T).(getl n c2 (CHead d2 (Bind Abbr) u)))) (\lambda (_: C).(\lambda (u: 
+T).(ty3 g d1 u t))) (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))))) 
+(\lambda (H16: (ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: 
+C).(drop n O c2 (CHead d2 (Bind Abst) t))))).(ex2_ind C (\lambda (d2: 
+C).(csubt g d1 d2)) (\lambda (d2: C).(drop n O c2 (CHead d2 (Bind Abst) t))) 
+(or (ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(getl n c2 
+(CHead d2 (Bind Abst) t)))) (ex4_2 C T (\lambda (d2: C).(\lambda (_: 
+T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda (u: T).(getl n c2 (CHead d2 
+(Bind Abbr) u)))) (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) (\lambda 
+(d2: C).(\lambda (u: T).(ty3 g d2 u t))))) (\lambda (x1: C).(\lambda (H17: 
+(csubt g d1 x1)).(\lambda (H18: (drop n O c2 (CHead x1 (Bind Abst) 
+t))).(or_introl (ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: 
+C).(getl n c2 (CHead d2 (Bind Abst) t)))) (ex4_2 C T (\lambda (d2: 
+C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda (u: T).(getl n 
+c2 (CHead d2 (Bind Abbr) u)))) (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u 
+t))) (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t)))) (ex_intro2 C (\lambda 
+(d2: C).(csubt g d1 d2)) (\lambda (d2: C).(getl n c2 (CHead d2 (Bind Abst) 
+t))) x1 H17 (getl_intro n c2 (CHead x1 (Bind Abst) t) (CHead x1 (Bind Abst) 
+t) H18 (clear_bind Abst x1 t))))))) H16)) (\lambda (H16: (ex4_2 C T (\lambda 
 (d2: C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda (u: 
 T).(drop n O c2 (CHead d2 (Bind Abbr) u)))) (\lambda (_: C).(\lambda (u: 
-T).(ty3 g d1 u t))) (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))))).(let 
-TMP_162 \def (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) in (let 
-TMP_165 \def (\lambda (d2: C).(\lambda (u: T).(let TMP_163 \def (Bind Abbr) 
-in (let TMP_164 \def (CHead d2 TMP_163 u) in (drop n O c2 TMP_164))))) in 
-(let TMP_166 \def (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) in (let 
-TMP_167 \def (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))) in (let 
-TMP_168 \def (\lambda (d2: C).(csubt g d1 d2)) in (let TMP_171 \def (\lambda 
-(d2: C).(let TMP_169 \def (Bind Abst) in (let TMP_170 \def (CHead d2 TMP_169 
-t) in (getl n c2 TMP_170)))) in (let TMP_172 \def (ex2 C TMP_168 TMP_171) in 
-(let TMP_173 \def (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) in (let 
-TMP_176 \def (\lambda (d2: C).(\lambda (u: T).(let TMP_174 \def (Bind Abbr) 
-in (let TMP_175 \def (CHead d2 TMP_174 u) in (getl n c2 TMP_175))))) in (let 
-TMP_177 \def (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) in (let TMP_178 
-\def (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))) in (let TMP_179 \def 
-(ex4_2 C T TMP_173 TMP_176 TMP_177 TMP_178) in (let TMP_180 \def (or TMP_172 
-TMP_179) in (let TMP_206 \def (\lambda (x1: C).(\lambda (x2: T).(\lambda 
-(H17: (csubt g d1 x1)).(\lambda (H18: (drop n O c2 (CHead x1 (Bind Abbr) 
-x2))).(\lambda (H19: (ty3 g d1 x2 t)).(\lambda (H20: (ty3 g x1 x2 t)).(let 
-TMP_181 \def (\lambda (d2: C).(csubt g d1 d2)) in (let TMP_184 \def (\lambda 
-(d2: C).(let TMP_182 \def (Bind Abst) in (let TMP_183 \def (CHead d2 TMP_182 
-t) in (getl n c2 TMP_183)))) in (let TMP_185 \def (ex2 C TMP_181 TMP_184) in 
-(let TMP_186 \def (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) in (let 
-TMP_189 \def (\lambda (d2: C).(\lambda (u: T).(let TMP_187 \def (Bind Abbr) 
-in (let TMP_188 \def (CHead d2 TMP_187 u) in (getl n c2 TMP_188))))) in (let 
-TMP_190 \def (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) in (let TMP_191 
-\def (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))) in (let TMP_192 \def 
-(ex4_2 C T TMP_186 TMP_189 TMP_190 TMP_191) in (let TMP_193 \def (\lambda 
-(d2: C).(\lambda (_: T).(csubt g d1 d2))) in (let TMP_196 \def (\lambda (d2: 
-C).(\lambda (u: T).(let TMP_194 \def (Bind Abbr) in (let TMP_195 \def (CHead 
-d2 TMP_194 u) in (getl n c2 TMP_195))))) in (let TMP_197 \def (\lambda (_: 
-C).(\lambda (u: T).(ty3 g d1 u t))) in (let TMP_198 \def (\lambda (d2: 
-C).(\lambda (u: T).(ty3 g d2 u t))) in (let TMP_199 \def (Bind Abbr) in (let 
-TMP_200 \def (CHead x1 TMP_199 x2) in (let TMP_201 \def (Bind Abbr) in (let 
-TMP_202 \def (CHead x1 TMP_201 x2) in (let TMP_203 \def (clear_bind Abbr x1 
-x2) in (let TMP_204 \def (getl_intro n c2 TMP_200 TMP_202 H18 TMP_203) in 
-(let TMP_205 \def (ex4_2_intro C T TMP_193 TMP_196 TMP_197 TMP_198 x1 x2 H17 
-TMP_204 H19 H20) in (or_intror TMP_185 TMP_192 
-TMP_205)))))))))))))))))))))))))) in (ex4_2_ind C T TMP_162 TMP_165 TMP_166 
-TMP_167 TMP_180 TMP_206 H16)))))))))))))))) in (let TMP_208 \def 
-(csubt_drop_abst g n c1 c2 H12 d1 t H15) in (or_ind TMP_99 TMP_106 TMP_119 
-TMP_161 TMP_207 TMP_208))))))))))))))))))))))))))))))) in (let TMP_210 \def 
-(TMP_209 H8) in (TMP_210 H7))))))))))))))))))))))))))))))))) in (let TMP_577 
-\def (\lambda (f: F).(\lambda (H5: (drop n O c1 (CHead x0 (Flat f) 
-t0))).(\lambda (H6: (clear (CHead x0 (Flat f) t0) (CHead d1 (Bind Abst) 
-t))).(let H7 \def H5 in (let TMP_224 \def (\lambda (c: C).((drop n O c (CHead 
-x0 (Flat f) t0)) \to (\forall (c2: C).((csubt g c c2) \to (let TMP_212 \def 
-(\lambda (d2: C).(csubt g d1 d2)) in (let TMP_215 \def (\lambda (d2: C).(let 
-TMP_213 \def (Bind Abst) in (let TMP_214 \def (CHead d2 TMP_213 t) in (getl n 
-c2 TMP_214)))) in (let TMP_216 \def (ex2 C TMP_212 TMP_215) in (let TMP_217 
-\def (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) in (let TMP_220 \def 
-(\lambda (d2: C).(\lambda (u: T).(let TMP_218 \def (Bind Abbr) in (let 
-TMP_219 \def (CHead d2 TMP_218 u) in (getl n c2 TMP_219))))) in (let TMP_221 
-\def (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) in (let TMP_222 \def 
-(\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))) in (let TMP_223 \def (ex4_2 
-C T TMP_217 TMP_220 TMP_221 TMP_222) in (or TMP_216 TMP_223))))))))))))) in 
-(let TMP_237 \def (\lambda (n0: nat).(\forall (x1: C).((drop n0 O x1 (CHead 
-x0 (Flat f) t0)) \to (\forall (c2: C).((csubt g x1 c2) \to (let TMP_225 \def 
-(\lambda (d2: C).(csubt g d1 d2)) in (let TMP_228 \def (\lambda (d2: C).(let 
-TMP_226 \def (Bind Abst) in (let TMP_227 \def (CHead d2 TMP_226 t) in (getl 
-n0 c2 TMP_227)))) in (let TMP_229 \def (ex2 C TMP_225 TMP_228) in (let 
-TMP_230 \def (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) in (let 
-TMP_233 \def (\lambda (d2: C).(\lambda (u: T).(let TMP_231 \def (Bind Abbr) 
-in (let TMP_232 \def (CHead d2 TMP_231 u) in (getl n0 c2 TMP_232))))) in (let 
-TMP_234 \def (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) in (let TMP_235 
-\def (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))) in (let TMP_236 \def 
-(ex4_2 C T TMP_230 TMP_233 TMP_234 TMP_235) in (or TMP_229 
-TMP_236)))))))))))))) in (let TMP_386 \def (\lambda (x1: C).(\lambda (H8: 
-(drop O O x1 (CHead x0 (Flat f) t0))).(\lambda (c2: C).(\lambda (H9: (csubt g 
-x1 c2)).(let TMP_238 \def (\lambda (c: C).(csubt g c c2)) in (let TMP_239 
-\def (Flat f) in (let TMP_240 \def (CHead x0 TMP_239 t0) in (let TMP_241 \def 
-(Flat f) in (let TMP_242 \def (CHead x0 TMP_241 t0) in (let TMP_243 \def 
-(drop_gen_refl x1 TMP_242 H8) in (let H10 \def (eq_ind C x1 TMP_238 H9 
-TMP_240 TMP_243) in (let TMP_244 \def (Bind Abst) in (let TMP_245 \def (CHead 
-d1 TMP_244 t) in (let TMP_246 \def (Bind Abst) in (let TMP_247 \def (CHead d1 
-TMP_246 t) in (let TMP_248 \def (clear_gen_flat f x0 TMP_247 t0 H6) in (let 
-H_y \def (clear_flat x0 TMP_245 TMP_248 f t0) in (let TMP_249 \def (Flat f) 
-in (let TMP_250 \def (CHead x0 TMP_249 t0) in (let TMP_251 \def (Bind Abst) 
-in (let TMP_252 \def (CHead d1 TMP_251 t) in (let H11 \def (csubt_clear_conf 
-g TMP_250 c2 H10 TMP_252 H_y) in (let TMP_255 \def (\lambda (e2: C).(let 
-TMP_253 \def (Bind Abst) in (let TMP_254 \def (CHead d1 TMP_253 t) in (csubt 
-g TMP_254 e2)))) in (let TMP_256 \def (\lambda (e2: C).(clear c2 e2)) in (let 
-TMP_257 \def (\lambda (d2: C).(csubt g d1 d2)) in (let TMP_260 \def (\lambda 
-(d2: C).(let TMP_258 \def (Bind Abst) in (let TMP_259 \def (CHead d2 TMP_258 
-t) in (getl O c2 TMP_259)))) in (let TMP_261 \def (ex2 C TMP_257 TMP_260) in 
-(let TMP_262 \def (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) in (let 
-TMP_265 \def (\lambda (d2: C).(\lambda (u: T).(let TMP_263 \def (Bind Abbr) 
-in (let TMP_264 \def (CHead d2 TMP_263 u) in (getl O c2 TMP_264))))) in (let 
-TMP_266 \def (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) in (let TMP_267 
-\def (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))) in (let TMP_268 \def 
-(ex4_2 C T TMP_262 TMP_265 TMP_266 TMP_267) in (let TMP_269 \def (or TMP_261 
-TMP_268) in (let TMP_385 \def (\lambda (x2: C).(\lambda (H12: (csubt g (CHead 
-d1 (Bind Abst) t) x2)).(\lambda (H13: (clear c2 x2)).(let H14 \def 
-(csubt_gen_abst g d1 x2 t H12) in (let TMP_272 \def (\lambda (e2: C).(let 
-TMP_270 \def (Bind Abst) in (let TMP_271 \def (CHead e2 TMP_270 t) in (eq C 
-x2 TMP_271)))) in (let TMP_273 \def (\lambda (e2: C).(csubt g d1 e2)) in (let 
-TMP_274 \def (ex2 C TMP_272 TMP_273) in (let TMP_277 \def (\lambda (e2: 
-C).(\lambda (v2: T).(let TMP_275 \def (Bind Abbr) in (let TMP_276 \def (CHead 
-e2 TMP_275 v2) in (eq C x2 TMP_276))))) in (let TMP_278 \def (\lambda (e2: 
-C).(\lambda (_: T).(csubt g d1 e2))) in (let TMP_279 \def (\lambda (_: 
-C).(\lambda (v2: T).(ty3 g d1 v2 t))) in (let TMP_280 \def (\lambda (e2: 
-C).(\lambda (v2: T).(ty3 g e2 v2 t))) in (let TMP_281 \def (ex4_2 C T TMP_277 
-TMP_278 TMP_279 TMP_280) in (let TMP_282 \def (\lambda (d2: C).(csubt g d1 
-d2)) in (let TMP_285 \def (\lambda (d2: C).(let TMP_283 \def (Bind Abst) in 
-(let TMP_284 \def (CHead d2 TMP_283 t) in (getl O c2 TMP_284)))) in (let 
-TMP_286 \def (ex2 C TMP_282 TMP_285) in (let TMP_287 \def (\lambda (d2: 
-C).(\lambda (_: T).(csubt g d1 d2))) in (let TMP_290 \def (\lambda (d2: 
-C).(\lambda (u: T).(let TMP_288 \def (Bind Abbr) in (let TMP_289 \def (CHead 
-d2 TMP_288 u) in (getl O c2 TMP_289))))) in (let TMP_291 \def (\lambda (_: 
-C).(\lambda (u: T).(ty3 g d1 u t))) in (let TMP_292 \def (\lambda (d2: 
-C).(\lambda (u: T).(ty3 g d2 u t))) in (let TMP_293 \def (ex4_2 C T TMP_287 
-TMP_290 TMP_291 TMP_292) in (let TMP_294 \def (or TMP_286 TMP_293) in (let 
-TMP_337 \def (\lambda (H15: (ex2 C (\lambda (e2: C).(eq C x2 (CHead e2 (Bind 
-Abst) t))) (\lambda (e2: C).(csubt g d1 e2)))).(let TMP_297 \def (\lambda 
-(e2: C).(let TMP_295 \def (Bind Abst) in (let TMP_296 \def (CHead e2 TMP_295 
-t) in (eq C x2 TMP_296)))) in (let TMP_298 \def (\lambda (e2: C).(csubt g d1 
-e2)) in (let TMP_299 \def (\lambda (d2: C).(csubt g d1 d2)) in (let TMP_302 
-\def (\lambda (d2: C).(let TMP_300 \def (Bind Abst) in (let TMP_301 \def 
-(CHead d2 TMP_300 t) in (getl O c2 TMP_301)))) in (let TMP_303 \def (ex2 C 
-TMP_299 TMP_302) in (let TMP_304 \def (\lambda (d2: C).(\lambda (_: T).(csubt 
-g d1 d2))) in (let TMP_307 \def (\lambda (d2: C).(\lambda (u: T).(let TMP_305 
-\def (Bind Abbr) in (let TMP_306 \def (CHead d2 TMP_305 u) in (getl O c2 
-TMP_306))))) in (let TMP_308 \def (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u 
-t))) in (let TMP_309 \def (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))) 
-in (let TMP_310 \def (ex4_2 C T TMP_304 TMP_307 TMP_308 TMP_309) in (let 
-TMP_311 \def (or TMP_303 TMP_310) in (let TMP_336 \def (\lambda (x3: 
-C).(\lambda (H16: (eq C x2 (CHead x3 (Bind Abst) t))).(\lambda (H17: (csubt g 
-d1 x3)).(let TMP_312 \def (\lambda (c: C).(clear c2 c)) in (let TMP_313 \def 
-(Bind Abst) in (let TMP_314 \def (CHead x3 TMP_313 t) in (let H18 \def 
-(eq_ind C x2 TMP_312 H13 TMP_314 H16) in (let TMP_315 \def (\lambda (d2: 
-C).(csubt g d1 d2)) in (let TMP_318 \def (\lambda (d2: C).(let TMP_316 \def 
-(Bind Abst) in (let TMP_317 \def (CHead d2 TMP_316 t) in (getl O c2 
-TMP_317)))) in (let TMP_319 \def (ex2 C TMP_315 TMP_318) in (let TMP_320 \def 
-(\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) in (let TMP_323 \def 
-(\lambda (d2: C).(\lambda (u: T).(let TMP_321 \def (Bind Abbr) in (let 
-TMP_322 \def (CHead d2 TMP_321 u) in (getl O c2 TMP_322))))) in (let TMP_324 
-\def (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) in (let TMP_325 \def 
-(\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))) in (let TMP_326 \def (ex4_2 
-C T TMP_320 TMP_323 TMP_324 TMP_325) in (let TMP_327 \def (\lambda (d2: 
-C).(csubt g d1 d2)) in (let TMP_330 \def (\lambda (d2: C).(let TMP_328 \def 
-(Bind Abst) in (let TMP_329 \def (CHead d2 TMP_328 t) in (getl O c2 
-TMP_329)))) in (let TMP_331 \def (Bind Abst) in (let TMP_332 \def (CHead x3 
-TMP_331 t) in (let TMP_333 \def (drop_refl c2) in (let TMP_334 \def 
-(getl_intro O c2 TMP_332 c2 TMP_333 H18) in (let TMP_335 \def (ex_intro2 C 
-TMP_327 TMP_330 x3 H17 TMP_334) in (or_introl TMP_319 TMP_326 
-TMP_335))))))))))))))))))))))) in (ex2_ind C TMP_297 TMP_298 TMP_311 TMP_336 
-H15)))))))))))))) in (let TMP_384 \def (\lambda (H15: (ex4_2 C T (\lambda 
-(e2: C).(\lambda (v2: T).(eq C x2 (CHead e2 (Bind Abbr) v2)))) (\lambda (e2: 
-C).(\lambda (_: T).(csubt g d1 e2))) (\lambda (_: C).(\lambda (v2: T).(ty3 g 
-d1 v2 t))) (\lambda (e2: C).(\lambda (v2: T).(ty3 g e2 v2 t))))).(let TMP_340 
-\def (\lambda (e2: C).(\lambda (v2: T).(let TMP_338 \def (Bind Abbr) in (let 
-TMP_339 \def (CHead e2 TMP_338 v2) in (eq C x2 TMP_339))))) in (let TMP_341 
-\def (\lambda (e2: C).(\lambda (_: T).(csubt g d1 e2))) in (let TMP_342 \def 
-(\lambda (_: C).(\lambda (v2: T).(ty3 g d1 v2 t))) in (let TMP_343 \def 
-(\lambda (e2: C).(\lambda (v2: T).(ty3 g e2 v2 t))) in (let TMP_344 \def 
-(\lambda (d2: C).(csubt g d1 d2)) in (let TMP_347 \def (\lambda (d2: C).(let 
-TMP_345 \def (Bind Abst) in (let TMP_346 \def (CHead d2 TMP_345 t) in (getl O 
-c2 TMP_346)))) in (let TMP_348 \def (ex2 C TMP_344 TMP_347) in (let TMP_349 
-\def (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) in (let TMP_352 \def 
-(\lambda (d2: C).(\lambda (u: T).(let TMP_350 \def (Bind Abbr) in (let 
-TMP_351 \def (CHead d2 TMP_350 u) in (getl O c2 TMP_351))))) in (let TMP_353 
-\def (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) in (let TMP_354 \def 
-(\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))) in (let TMP_355 \def (ex4_2 
-C T TMP_349 TMP_352 TMP_353 TMP_354) in (let TMP_356 \def (or TMP_348 
-TMP_355) in (let TMP_383 \def (\lambda (x3: C).(\lambda (x4: T).(\lambda 
-(H16: (eq C x2 (CHead x3 (Bind Abbr) x4))).(\lambda (H17: (csubt g d1 
-x3)).(\lambda (H18: (ty3 g d1 x4 t)).(\lambda (H19: (ty3 g x3 x4 t)).(let 
-TMP_357 \def (\lambda (c: C).(clear c2 c)) in (let TMP_358 \def (Bind Abbr) 
-in (let TMP_359 \def (CHead x3 TMP_358 x4) in (let H20 \def (eq_ind C x2 
-TMP_357 H13 TMP_359 H16) in (let TMP_360 \def (\lambda (d2: C).(csubt g d1 
-d2)) in (let TMP_363 \def (\lambda (d2: C).(let TMP_361 \def (Bind Abst) in 
-(let TMP_362 \def (CHead d2 TMP_361 t) in (getl O c2 TMP_362)))) in (let 
-TMP_364 \def (ex2 C TMP_360 TMP_363) in (let TMP_365 \def (\lambda (d2: 
-C).(\lambda (_: T).(csubt g d1 d2))) in (let TMP_368 \def (\lambda (d2: 
-C).(\lambda (u: T).(let TMP_366 \def (Bind Abbr) in (let TMP_367 \def (CHead 
-d2 TMP_366 u) in (getl O c2 TMP_367))))) in (let TMP_369 \def (\lambda (_: 
-C).(\lambda (u: T).(ty3 g d1 u t))) in (let TMP_370 \def (\lambda (d2: 
-C).(\lambda (u: T).(ty3 g d2 u t))) in (let TMP_371 \def (ex4_2 C T TMP_365 
-TMP_368 TMP_369 TMP_370) in (let TMP_372 \def (\lambda (d2: C).(\lambda (_: 
-T).(csubt g d1 d2))) in (let TMP_375 \def (\lambda (d2: C).(\lambda (u: 
-T).(let TMP_373 \def (Bind Abbr) in (let TMP_374 \def (CHead d2 TMP_373 u) in 
-(getl O c2 TMP_374))))) in (let TMP_376 \def (\lambda (_: C).(\lambda (u: 
-T).(ty3 g d1 u t))) in (let TMP_377 \def (\lambda (d2: C).(\lambda (u: 
-T).(ty3 g d2 u t))) in (let TMP_378 \def (Bind Abbr) in (let TMP_379 \def 
-(CHead x3 TMP_378 x4) in (let TMP_380 \def (drop_refl c2) in (let TMP_381 
-\def (getl_intro O c2 TMP_379 c2 TMP_380 H20) in (let TMP_382 \def 
-(ex4_2_intro C T TMP_372 TMP_375 TMP_376 TMP_377 x3 x4 H17 TMP_381 H18 H19) 
-in (or_intror TMP_364 TMP_371 TMP_382)))))))))))))))))))))))))))) in 
-(ex4_2_ind C T TMP_340 TMP_341 TMP_342 TMP_343 TMP_356 TMP_383 
-H15)))))))))))))))) in (or_ind TMP_274 TMP_281 TMP_294 TMP_337 TMP_384 
-H14)))))))))))))))))))))))) in (ex2_ind C TMP_255 TMP_256 TMP_269 TMP_385 
-H11))))))))))))))))))))))))))))))))))) in (let TMP_575 \def (\lambda (n0: 
-nat).(\lambda (H8: ((\forall (x1: C).((drop n0 O x1 (CHead x0 (Flat f) t0)) 
-\to (\forall (c2: C).((csubt g x1 c2) \to (or (ex2 C (\lambda (d2: C).(csubt 
-g d1 d2)) (\lambda (d2: C).(getl n0 c2 (CHead d2 (Bind Abst) t)))) (ex4_2 C T 
-(\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda 
-(u: T).(getl n0 c2 (CHead d2 (Bind Abbr) u)))) (\lambda (_: C).(\lambda (u: 
 T).(ty3 g d1 u t))) (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u 
-t))))))))))).(\lambda (x1: C).(\lambda (H9: (drop (S n0) O x1 (CHead x0 (Flat 
-f) t0))).(\lambda (c2: C).(\lambda (H10: (csubt g x1 c2)).(let TMP_387 \def 
-(Flat f) in (let TMP_388 \def (CHead x0 TMP_387 t0) in (let H11 \def 
-(drop_clear x1 TMP_388 n0 H9) in (let TMP_391 \def (\lambda (b: B).(\lambda 
-(e: C).(\lambda (v: T).(let TMP_389 \def (Bind b) in (let TMP_390 \def (CHead 
-e TMP_389 v) in (clear x1 TMP_390)))))) in (let TMP_394 \def (\lambda (_: 
-B).(\lambda (e: C).(\lambda (_: T).(let TMP_392 \def (Flat f) in (let TMP_393 
-\def (CHead x0 TMP_392 t0) in (drop n0 O e TMP_393)))))) in (let TMP_395 \def 
-(\lambda (d2: C).(csubt g d1 d2)) in (let TMP_399 \def (\lambda (d2: C).(let 
-TMP_396 \def (S n0) in (let TMP_397 \def (Bind Abst) in (let TMP_398 \def 
-(CHead d2 TMP_397 t) in (getl TMP_396 c2 TMP_398))))) in (let TMP_400 \def 
-(ex2 C TMP_395 TMP_399) in (let TMP_401 \def (\lambda (d2: C).(\lambda (_: 
-T).(csubt g d1 d2))) in (let TMP_405 \def (\lambda (d2: C).(\lambda (u: 
-T).(let TMP_402 \def (S n0) in (let TMP_403 \def (Bind Abbr) in (let TMP_404 
-\def (CHead d2 TMP_403 u) in (getl TMP_402 c2 TMP_404)))))) in (let TMP_406 
-\def (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) in (let TMP_407 \def 
-(\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))) in (let TMP_408 \def (ex4_2 
-C T TMP_401 TMP_405 TMP_406 TMP_407) in (let TMP_409 \def (or TMP_400 
-TMP_408) in (let TMP_574 \def (\lambda (x2: B).(\lambda (x3: C).(\lambda (x4: 
-T).(\lambda (H12: (clear x1 (CHead x3 (Bind x2) x4))).(\lambda (H13: (drop n0 
-O x3 (CHead x0 (Flat f) t0))).(let TMP_410 \def (Bind x2) in (let TMP_411 
-\def (CHead x3 TMP_410 x4) in (let H14 \def (csubt_clear_conf g x1 c2 H10 
-TMP_411 H12) in (let TMP_414 \def (\lambda (e2: C).(let TMP_412 \def (Bind 
-x2) in (let TMP_413 \def (CHead x3 TMP_412 x4) in (csubt g TMP_413 e2)))) in 
-(let TMP_415 \def (\lambda (e2: C).(clear c2 e2)) in (let TMP_416 \def 
-(\lambda (d2: C).(csubt g d1 d2)) in (let TMP_420 \def (\lambda (d2: C).(let 
-TMP_417 \def (S n0) in (let TMP_418 \def (Bind Abst) in (let TMP_419 \def 
-(CHead d2 TMP_418 t) in (getl TMP_417 c2 TMP_419))))) in (let TMP_421 \def 
-(ex2 C TMP_416 TMP_420) in (let TMP_422 \def (\lambda (d2: C).(\lambda (_: 
-T).(csubt g d1 d2))) in (let TMP_426 \def (\lambda (d2: C).(\lambda (u: 
-T).(let TMP_423 \def (S n0) in (let TMP_424 \def (Bind Abbr) in (let TMP_425 
-\def (CHead d2 TMP_424 u) in (getl TMP_423 c2 TMP_425)))))) in (let TMP_427 
-\def (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) in (let TMP_428 \def 
-(\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))) in (let TMP_429 \def (ex4_2 
-C T TMP_422 TMP_426 TMP_427 TMP_428) in (let TMP_430 \def (or TMP_421 
-TMP_429) in (let TMP_573 \def (\lambda (x5: C).(\lambda (H15: (csubt g (CHead 
-x3 (Bind x2) x4) x5)).(\lambda (H16: (clear c2 x5)).(let H17 \def 
-(csubt_gen_bind g x2 x3 x5 x4 H15) in (let TMP_433 \def (\lambda (b2: 
-B).(\lambda (e2: C).(\lambda (v2: T).(let TMP_431 \def (Bind b2) in (let 
-TMP_432 \def (CHead e2 TMP_431 v2) in (eq C x5 TMP_432)))))) in (let TMP_434 
-\def (\lambda (_: B).(\lambda (e2: C).(\lambda (_: T).(csubt g x3 e2)))) in 
-(let TMP_435 \def (\lambda (d2: C).(csubt g d1 d2)) in (let TMP_439 \def 
-(\lambda (d2: C).(let TMP_436 \def (S n0) in (let TMP_437 \def (Bind Abst) in 
-(let TMP_438 \def (CHead d2 TMP_437 t) in (getl TMP_436 c2 TMP_438))))) in 
-(let TMP_440 \def (ex2 C TMP_435 TMP_439) in (let TMP_441 \def (\lambda (d2: 
-C).(\lambda (_: T).(csubt g d1 d2))) in (let TMP_445 \def (\lambda (d2: 
-C).(\lambda (u: T).(let TMP_442 \def (S n0) in (let TMP_443 \def (Bind Abbr) 
-in (let TMP_444 \def (CHead d2 TMP_443 u) in (getl TMP_442 c2 TMP_444)))))) 
-in (let TMP_446 \def (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) in (let 
-TMP_447 \def (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))) in (let 
-TMP_448 \def (ex4_2 C T TMP_441 TMP_445 TMP_446 TMP_447) in (let TMP_449 \def 
-(or TMP_440 TMP_448) in (let TMP_572 \def (\lambda (x6: B).(\lambda (x7: 
-C).(\lambda (x8: T).(\lambda (H18: (eq C x5 (CHead x7 (Bind x6) 
-x8))).(\lambda (H19: (csubt g x3 x7)).(let TMP_450 \def (\lambda (c: 
-C).(clear c2 c)) in (let TMP_451 \def (Bind x6) in (let TMP_452 \def (CHead 
-x7 TMP_451 x8) in (let H20 \def (eq_ind C x5 TMP_450 H16 TMP_452 H18) in (let 
-H21 \def (H8 x3 H13 x7 H19) in (let TMP_453 \def (\lambda (d2: C).(csubt g d1 
-d2)) in (let TMP_456 \def (\lambda (d2: C).(let TMP_454 \def (Bind Abst) in 
-(let TMP_455 \def (CHead d2 TMP_454 t) in (getl n0 x7 TMP_455)))) in (let 
-TMP_457 \def (ex2 C TMP_453 TMP_456) in (let TMP_458 \def (\lambda (d2: 
-C).(\lambda (_: T).(csubt g d1 d2))) in (let TMP_461 \def (\lambda (d2: 
-C).(\lambda (u: T).(let TMP_459 \def (Bind Abbr) in (let TMP_460 \def (CHead 
-d2 TMP_459 u) in (getl n0 x7 TMP_460))))) in (let TMP_462 \def (\lambda (_: 
-C).(\lambda (u: T).(ty3 g d1 u t))) in (let TMP_463 \def (\lambda (d2: 
-C).(\lambda (u: T).(ty3 g d2 u t))) in (let TMP_464 \def (ex4_2 C T TMP_458 
-TMP_461 TMP_462 TMP_463) in (let TMP_465 \def (\lambda (d2: C).(csubt g d1 
-d2)) in (let TMP_469 \def (\lambda (d2: C).(let TMP_466 \def (S n0) in (let 
-TMP_467 \def (Bind Abst) in (let TMP_468 \def (CHead d2 TMP_467 t) in (getl 
-TMP_466 c2 TMP_468))))) in (let TMP_470 \def (ex2 C TMP_465 TMP_469) in (let 
-TMP_471 \def (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) in (let 
-TMP_475 \def (\lambda (d2: C).(\lambda (u: T).(let TMP_472 \def (S n0) in 
-(let TMP_473 \def (Bind Abbr) in (let TMP_474 \def (CHead d2 TMP_473 u) in 
-(getl TMP_472 c2 TMP_474)))))) in (let TMP_476 \def (\lambda (_: C).(\lambda 
-(u: T).(ty3 g d1 u t))) in (let TMP_477 \def (\lambda (d2: C).(\lambda (u: 
-T).(ty3 g d2 u t))) in (let TMP_478 \def (ex4_2 C T TMP_471 TMP_475 TMP_476 
-TMP_477) in (let TMP_479 \def (or TMP_470 TMP_478) in (let TMP_523 \def 
-(\lambda (H22: (ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: 
-C).(getl n0 x7 (CHead d2 (Bind Abst) t))))).(let TMP_480 \def (\lambda (d2: 
-C).(csubt g d1 d2)) in (let TMP_483 \def (\lambda (d2: C).(let TMP_481 \def 
-(Bind Abst) in (let TMP_482 \def (CHead d2 TMP_481 t) in (getl n0 x7 
-TMP_482)))) in (let TMP_484 \def (\lambda (d2: C).(csubt g d1 d2)) in (let 
-TMP_488 \def (\lambda (d2: C).(let TMP_485 \def (S n0) in (let TMP_486 \def 
-(Bind Abst) in (let TMP_487 \def (CHead d2 TMP_486 t) in (getl TMP_485 c2 
-TMP_487))))) in (let TMP_489 \def (ex2 C TMP_484 TMP_488) in (let TMP_490 
-\def (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) in (let TMP_494 \def 
-(\lambda (d2: C).(\lambda (u: T).(let TMP_491 \def (S n0) in (let TMP_492 
-\def (Bind Abbr) in (let TMP_493 \def (CHead d2 TMP_492 u) in (getl TMP_491 
-c2 TMP_493)))))) in (let TMP_495 \def (\lambda (_: C).(\lambda (u: T).(ty3 g 
-d1 u t))) in (let TMP_496 \def (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u 
-t))) in (let TMP_497 \def (ex4_2 C T TMP_490 TMP_494 TMP_495 TMP_496) in (let 
-TMP_498 \def (or TMP_489 TMP_497) in (let TMP_522 \def (\lambda (x9: 
-C).(\lambda (H23: (csubt g d1 x9)).(\lambda (H24: (getl n0 x7 (CHead x9 (Bind 
-Abst) t))).(let TMP_499 \def (\lambda (d2: C).(csubt g d1 d2)) in (let 
-TMP_503 \def (\lambda (d2: C).(let TMP_500 \def (S n0) in (let TMP_501 \def 
-(Bind Abst) in (let TMP_502 \def (CHead d2 TMP_501 t) in (getl TMP_500 c2 
-TMP_502))))) in (let TMP_504 \def (ex2 C TMP_499 TMP_503) in (let TMP_505 
-\def (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) in (let TMP_509 \def 
-(\lambda (d2: C).(\lambda (u: T).(let TMP_506 \def (S n0) in (let TMP_507 
-\def (Bind Abbr) in (let TMP_508 \def (CHead d2 TMP_507 u) in (getl TMP_506 
-c2 TMP_508)))))) in (let TMP_510 \def (\lambda (_: C).(\lambda (u: T).(ty3 g 
-d1 u t))) in (let TMP_511 \def (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u 
-t))) in (let TMP_512 \def (ex4_2 C T TMP_505 TMP_509 TMP_510 TMP_511) in (let 
-TMP_513 \def (\lambda (d2: C).(csubt g d1 d2)) in (let TMP_517 \def (\lambda 
-(d2: C).(let TMP_514 \def (S n0) in (let TMP_515 \def (Bind Abst) in (let 
-TMP_516 \def (CHead d2 TMP_515 t) in (getl TMP_514 c2 TMP_516))))) in (let 
-TMP_518 \def (Bind Abst) in (let TMP_519 \def (CHead x9 TMP_518 t) in (let 
-TMP_520 \def (getl_clear_bind x6 c2 x7 x8 H20 TMP_519 n0 H24) in (let TMP_521 
-\def (ex_intro2 C TMP_513 TMP_517 x9 H23 TMP_520) in (or_introl TMP_504 
-TMP_512 TMP_521)))))))))))))))))) in (ex2_ind C TMP_480 TMP_483 TMP_498 
-TMP_522 H22)))))))))))))) in (let TMP_571 \def (\lambda (H22: (ex4_2 C T 
+t))))).(ex4_2_ind C T (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) 
+(\lambda (d2: C).(\lambda (u: T).(drop n O c2 (CHead d2 (Bind Abbr) u)))) 
+(\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) (\lambda (d2: C).(\lambda 
+(u: T).(ty3 g d2 u t))) (or (ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda 
+(d2: C).(getl n c2 (CHead d2 (Bind Abst) t)))) (ex4_2 C T (\lambda (d2: 
+C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda (u: T).(getl n 
+c2 (CHead d2 (Bind Abbr) u)))) (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u 
+t))) (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))))) (\lambda (x1: 
+C).(\lambda (x2: T).(\lambda (H17: (csubt g d1 x1)).(\lambda (H18: (drop n O 
+c2 (CHead x1 (Bind Abbr) x2))).(\lambda (H19: (ty3 g d1 x2 t)).(\lambda (H20: 
+(ty3 g x1 x2 t)).(or_intror (ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda 
+(d2: C).(getl n c2 (CHead d2 (Bind Abst) t)))) (ex4_2 C T (\lambda (d2: 
+C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda (u: T).(getl n 
+c2 (CHead d2 (Bind Abbr) u)))) (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u 
+t))) (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t)))) (ex4_2_intro C T 
+(\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda 
+(u: T).(getl n c2 (CHead d2 (Bind Abbr) u)))) (\lambda (_: C).(\lambda (u: 
+T).(ty3 g d1 u t))) (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))) x1 x2 
+H17 (getl_intro n c2 (CHead x1 (Bind Abbr) x2) (CHead x1 (Bind Abbr) x2) H18 
+(clear_bind Abbr x1 x2)) H19 H20)))))))) H16)) (csubt_drop_abst g n c1 c2 H12 
+d1 t H15)))))))))) H8)) H7))))) (\lambda (f: F).(\lambda (H5: (drop n O c1 
+(CHead x0 (Flat f) t0))).(\lambda (H6: (clear (CHead x0 (Flat f) t0) (CHead 
+d1 (Bind Abst) t))).(let H7 \def H5 in (unintro C c1 (\lambda (c: C).((drop n 
+O c (CHead x0 (Flat f) t0)) \to (\forall (c2: C).((csubt g c c2) \to (or (ex2 
+C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(getl n c2 (CHead d2 
+(Bind Abst) t)))) (ex4_2 C T (\lambda (d2: C).(\lambda (_: T).(csubt g d1 
+d2))) (\lambda (d2: C).(\lambda (u: T).(getl n c2 (CHead d2 (Bind Abbr) u)))) 
+(\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) (\lambda (d2: C).(\lambda 
+(u: T).(ty3 g d2 u t))))))))) (nat_ind (\lambda (n0: nat).(\forall (x1: 
+C).((drop n0 O x1 (CHead x0 (Flat f) t0)) \to (\forall (c2: C).((csubt g x1 
+c2) \to (or (ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(getl 
+n0 c2 (CHead d2 (Bind Abst) t)))) (ex4_2 C T (\lambda (d2: C).(\lambda (_: 
+T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda (u: T).(getl n0 c2 (CHead d2 
+(Bind Abbr) u)))) (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) (\lambda 
+(d2: C).(\lambda (u: T).(ty3 g d2 u t)))))))))) (\lambda (x1: C).(\lambda 
+(H8: (drop O O x1 (CHead x0 (Flat f) t0))).(\lambda (c2: C).(\lambda (H9: 
+(csubt g x1 c2)).(let H10 \def (eq_ind C x1 (\lambda (c: C).(csubt g c c2)) 
+H9 (CHead x0 (Flat f) t0) (drop_gen_refl x1 (CHead x0 (Flat f) t0) H8)) in 
+(let H_y \def (clear_flat x0 (CHead d1 (Bind Abst) t) (clear_gen_flat f x0 
+(CHead d1 (Bind Abst) t) t0 H6) f t0) in (let H11 \def (csubt_clear_conf g 
+(CHead x0 (Flat f) t0) c2 H10 (CHead d1 (Bind Abst) t) H_y) in (ex2_ind C 
+(\lambda (e2: C).(csubt g (CHead d1 (Bind Abst) t) e2)) (\lambda (e2: 
+C).(clear c2 e2)) (or (ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: 
+C).(getl O c2 (CHead d2 (Bind Abst) t)))) (ex4_2 C T (\lambda (d2: 
+C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda (u: T).(getl O 
+c2 (CHead d2 (Bind Abbr) u)))) (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u 
+t))) (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))))) (\lambda (x2: 
+C).(\lambda (H12: (csubt g (CHead d1 (Bind Abst) t) x2)).(\lambda (H13: 
+(clear c2 x2)).(let H14 \def (csubt_gen_abst g d1 x2 t H12) in (or_ind (ex2 C 
+(\lambda (e2: C).(eq C x2 (CHead e2 (Bind Abst) t))) (\lambda (e2: C).(csubt 
+g d1 e2))) (ex4_2 C T (\lambda (e2: C).(\lambda (v2: T).(eq C x2 (CHead e2 
+(Bind Abbr) v2)))) (\lambda (e2: C).(\lambda (_: T).(csubt g d1 e2))) 
+(\lambda (_: C).(\lambda (v2: T).(ty3 g d1 v2 t))) (\lambda (e2: C).(\lambda 
+(v2: T).(ty3 g e2 v2 t)))) (or (ex2 C (\lambda (d2: C).(csubt g d1 d2)) 
+(\lambda (d2: C).(getl O c2 (CHead d2 (Bind Abst) t)))) (ex4_2 C T (\lambda 
+(d2: C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda (u: 
+T).(getl O c2 (CHead d2 (Bind Abbr) u)))) (\lambda (_: C).(\lambda (u: 
+T).(ty3 g d1 u t))) (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))))) 
+(\lambda (H15: (ex2 C (\lambda (e2: C).(eq C x2 (CHead e2 (Bind Abst) t))) 
+(\lambda (e2: C).(csubt g d1 e2)))).(ex2_ind C (\lambda (e2: C).(eq C x2 
+(CHead e2 (Bind Abst) t))) (\lambda (e2: C).(csubt g d1 e2)) (or (ex2 C 
+(\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(getl O c2 (CHead d2 (Bind 
+Abst) t)))) (ex4_2 C T (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) 
+(\lambda (d2: C).(\lambda (u: T).(getl O c2 (CHead d2 (Bind Abbr) u)))) 
+(\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) (\lambda (d2: C).(\lambda 
+(u: T).(ty3 g d2 u t))))) (\lambda (x3: C).(\lambda (H16: (eq C x2 (CHead x3 
+(Bind Abst) t))).(\lambda (H17: (csubt g d1 x3)).(let H18 \def (eq_ind C x2 
+(\lambda (c: C).(clear c2 c)) H13 (CHead x3 (Bind Abst) t) H16) in (or_introl 
+(ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(getl O c2 (CHead 
+d2 (Bind Abst) t)))) (ex4_2 C T (\lambda (d2: C).(\lambda (_: T).(csubt g d1 
+d2))) (\lambda (d2: C).(\lambda (u: T).(getl O c2 (CHead d2 (Bind Abbr) u)))) 
+(\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) (\lambda (d2: C).(\lambda 
+(u: T).(ty3 g d2 u t)))) (ex_intro2 C (\lambda (d2: C).(csubt g d1 d2)) 
+(\lambda (d2: C).(getl O c2 (CHead d2 (Bind Abst) t))) x3 H17 (getl_intro O 
+c2 (CHead x3 (Bind Abst) t) c2 (drop_refl c2) H18))))))) H15)) (\lambda (H15: 
+(ex4_2 C T (\lambda (e2: C).(\lambda (v2: T).(eq C x2 (CHead e2 (Bind Abbr) 
+v2)))) (\lambda (e2: C).(\lambda (_: T).(csubt g d1 e2))) (\lambda (_: 
+C).(\lambda (v2: T).(ty3 g d1 v2 t))) (\lambda (e2: C).(\lambda (v2: T).(ty3 
+g e2 v2 t))))).(ex4_2_ind C T (\lambda (e2: C).(\lambda (v2: T).(eq C x2 
+(CHead e2 (Bind Abbr) v2)))) (\lambda (e2: C).(\lambda (_: T).(csubt g d1 
+e2))) (\lambda (_: C).(\lambda (v2: T).(ty3 g d1 v2 t))) (\lambda (e2: 
+C).(\lambda (v2: T).(ty3 g e2 v2 t))) (or (ex2 C (\lambda (d2: C).(csubt g d1 
+d2)) (\lambda (d2: C).(getl O c2 (CHead d2 (Bind Abst) t)))) (ex4_2 C T 
+(\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda 
+(u: T).(getl O c2 (CHead d2 (Bind Abbr) u)))) (\lambda (_: C).(\lambda (u: 
+T).(ty3 g d1 u t))) (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))))) 
+(\lambda (x3: C).(\lambda (x4: T).(\lambda (H16: (eq C x2 (CHead x3 (Bind 
+Abbr) x4))).(\lambda (H17: (csubt g d1 x3)).(\lambda (H18: (ty3 g d1 x4 
+t)).(\lambda (H19: (ty3 g x3 x4 t)).(let H20 \def (eq_ind C x2 (\lambda (c: 
+C).(clear c2 c)) H13 (CHead x3 (Bind Abbr) x4) H16) in (or_intror (ex2 C 
+(\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(getl O c2 (CHead d2 (Bind 
+Abst) t)))) (ex4_2 C T (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) 
+(\lambda (d2: C).(\lambda (u: T).(getl O c2 (CHead d2 (Bind Abbr) u)))) 
+(\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) (\lambda (d2: C).(\lambda 
+(u: T).(ty3 g d2 u t)))) (ex4_2_intro C T (\lambda (d2: C).(\lambda (_: 
+T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda (u: T).(getl O c2 (CHead d2 
+(Bind Abbr) u)))) (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) (\lambda 
+(d2: C).(\lambda (u: T).(ty3 g d2 u t))) x3 x4 H17 (getl_intro O c2 (CHead x3 
+(Bind Abbr) x4) c2 (drop_refl c2) H20) H18 H19))))))))) H15)) H14))))) 
+H11)))))))) (\lambda (n0: nat).(\lambda (H8: ((\forall (x1: C).((drop n0 O x1 
+(CHead x0 (Flat f) t0)) \to (\forall (c2: C).((csubt g x1 c2) \to (or (ex2 C 
+(\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(getl n0 c2 (CHead d2 
+(Bind Abst) t)))) (ex4_2 C T (\lambda (d2: C).(\lambda (_: T).(csubt g d1 
+d2))) (\lambda (d2: C).(\lambda (u: T).(getl n0 c2 (CHead d2 (Bind Abbr) 
+u)))) (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) (\lambda (d2: 
+C).(\lambda (u: T).(ty3 g d2 u t))))))))))).(\lambda (x1: C).(\lambda (H9: 
+(drop (S n0) O x1 (CHead x0 (Flat f) t0))).(\lambda (c2: C).(\lambda (H10: 
+(csubt g x1 c2)).(let H11 \def (drop_clear x1 (CHead x0 (Flat f) t0) n0 H9) 
+in (ex2_3_ind B C T (\lambda (b: B).(\lambda (e: C).(\lambda (v: T).(clear x1 
+(CHead e (Bind b) v))))) (\lambda (_: B).(\lambda (e: C).(\lambda (_: 
+T).(drop n0 O e (CHead x0 (Flat f) t0))))) (or (ex2 C (\lambda (d2: C).(csubt 
+g d1 d2)) (\lambda (d2: C).(getl (S n0) c2 (CHead d2 (Bind Abst) t)))) (ex4_2 
+C T (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: 
+C).(\lambda (u: T).(getl (S n0) c2 (CHead d2 (Bind Abbr) u)))) (\lambda (_: 
+C).(\lambda (u: T).(ty3 g d1 u t))) (\lambda (d2: C).(\lambda (u: T).(ty3 g 
+d2 u t))))) (\lambda (x2: B).(\lambda (x3: C).(\lambda (x4: T).(\lambda (H12: 
+(clear x1 (CHead x3 (Bind x2) x4))).(\lambda (H13: (drop n0 O x3 (CHead x0 
+(Flat f) t0))).(let H14 \def (csubt_clear_conf g x1 c2 H10 (CHead x3 (Bind 
+x2) x4) H12) in (ex2_ind C (\lambda (e2: C).(csubt g (CHead x3 (Bind x2) x4) 
+e2)) (\lambda (e2: C).(clear c2 e2)) (or (ex2 C (\lambda (d2: C).(csubt g d1 
+d2)) (\lambda (d2: C).(getl (S n0) c2 (CHead d2 (Bind Abst) t)))) (ex4_2 C T 
+(\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda 
+(u: T).(getl (S n0) c2 (CHead d2 (Bind Abbr) u)))) (\lambda (_: C).(\lambda 
+(u: T).(ty3 g d1 u t))) (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))))) 
+(\lambda (x5: C).(\lambda (H15: (csubt g (CHead x3 (Bind x2) x4) 
+x5)).(\lambda (H16: (clear c2 x5)).(let H17 \def (csubt_gen_bind g x2 x3 x5 
+x4 H15) in (ex2_3_ind B C T (\lambda (b2: B).(\lambda (e2: C).(\lambda (v2: 
+T).(eq C x5 (CHead e2 (Bind b2) v2))))) (\lambda (_: B).(\lambda (e2: 
+C).(\lambda (_: T).(csubt g x3 e2)))) (or (ex2 C (\lambda (d2: C).(csubt g d1 
+d2)) (\lambda (d2: C).(getl (S n0) c2 (CHead d2 (Bind Abst) t)))) (ex4_2 C T 
+(\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda 
+(u: T).(getl (S n0) c2 (CHead d2 (Bind Abbr) u)))) (\lambda (_: C).(\lambda 
+(u: T).(ty3 g d1 u t))) (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))))) 
+(\lambda (x6: B).(\lambda (x7: C).(\lambda (x8: T).(\lambda (H18: (eq C x5 
+(CHead x7 (Bind x6) x8))).(\lambda (H19: (csubt g x3 x7)).(let H20 \def 
+(eq_ind C x5 (\lambda (c: C).(clear c2 c)) H16 (CHead x7 (Bind x6) x8) H18) 
+in (let H21 \def (H8 x3 H13 x7 H19) in (or_ind (ex2 C (\lambda (d2: C).(csubt 
+g d1 d2)) (\lambda (d2: C).(getl n0 x7 (CHead d2 (Bind Abst) t)))) (ex4_2 C T 
 (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda 
 (u: T).(getl n0 x7 (CHead d2 (Bind Abbr) u)))) (\lambda (_: C).(\lambda (u: 
-T).(ty3 g d1 u t))) (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))))).(let 
-TMP_524 \def (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) in (let 
-TMP_527 \def (\lambda (d2: C).(\lambda (u: T).(let TMP_525 \def (Bind Abbr) 
-in (let TMP_526 \def (CHead d2 TMP_525 u) in (getl n0 x7 TMP_526))))) in (let 
-TMP_528 \def (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) in (let TMP_529 
-\def (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))) in (let TMP_530 \def 
-(\lambda (d2: C).(csubt g d1 d2)) in (let TMP_534 \def (\lambda (d2: C).(let 
-TMP_531 \def (S n0) in (let TMP_532 \def (Bind Abst) in (let TMP_533 \def 
-(CHead d2 TMP_532 t) in (getl TMP_531 c2 TMP_533))))) in (let TMP_535 \def 
-(ex2 C TMP_530 TMP_534) in (let TMP_536 \def (\lambda (d2: C).(\lambda (_: 
-T).(csubt g d1 d2))) in (let TMP_540 \def (\lambda (d2: C).(\lambda (u: 
-T).(let TMP_537 \def (S n0) in (let TMP_538 \def (Bind Abbr) in (let TMP_539 
-\def (CHead d2 TMP_538 u) in (getl TMP_537 c2 TMP_539)))))) in (let TMP_541 
-\def (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) in (let TMP_542 \def 
-(\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))) in (let TMP_543 \def (ex4_2 
-C T TMP_536 TMP_540 TMP_541 TMP_542) in (let TMP_544 \def (or TMP_535 
-TMP_543) in (let TMP_570 \def (\lambda (x9: C).(\lambda (x10: T).(\lambda 
-(H23: (csubt g d1 x9)).(\lambda (H24: (getl n0 x7 (CHead x9 (Bind Abbr) 
-x10))).(\lambda (H25: (ty3 g d1 x10 t)).(\lambda (H26: (ty3 g x9 x10 t)).(let 
-TMP_545 \def (\lambda (d2: C).(csubt g d1 d2)) in (let TMP_549 \def (\lambda 
-(d2: C).(let TMP_546 \def (S n0) in (let TMP_547 \def (Bind Abst) in (let 
-TMP_548 \def (CHead d2 TMP_547 t) in (getl TMP_546 c2 TMP_548))))) in (let 
-TMP_550 \def (ex2 C TMP_545 TMP_549) in (let TMP_551 \def (\lambda (d2: 
-C).(\lambda (_: T).(csubt g d1 d2))) in (let TMP_555 \def (\lambda (d2: 
-C).(\lambda (u: T).(let TMP_552 \def (S n0) in (let TMP_553 \def (Bind Abbr) 
-in (let TMP_554 \def (CHead d2 TMP_553 u) in (getl TMP_552 c2 TMP_554)))))) 
-in (let TMP_556 \def (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) in (let 
-TMP_557 \def (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))) in (let 
-TMP_558 \def (ex4_2 C T TMP_551 TMP_555 TMP_556 TMP_557) in (let TMP_559 \def 
-(\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) in (let TMP_563 \def 
-(\lambda (d2: C).(\lambda (u: T).(let TMP_560 \def (S n0) in (let TMP_561 
-\def (Bind Abbr) in (let TMP_562 \def (CHead d2 TMP_561 u) in (getl TMP_560 
-c2 TMP_562)))))) in (let TMP_564 \def (\lambda (_: C).(\lambda (u: T).(ty3 g 
-d1 u t))) in (let TMP_565 \def (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u 
-t))) in (let TMP_566 \def (Bind Abbr) in (let TMP_567 \def (CHead x9 TMP_566 
-x10) in (let TMP_568 \def (getl_clear_bind x6 c2 x7 x8 H20 TMP_567 n0 H24) in 
-(let TMP_569 \def (ex4_2_intro C T TMP_559 TMP_563 TMP_564 TMP_565 x9 x10 H23 
-TMP_568 H25 H26) in (or_intror TMP_550 TMP_558 TMP_569))))))))))))))))))))))) 
-in (ex4_2_ind C T TMP_524 TMP_527 TMP_528 TMP_529 TMP_544 TMP_570 
-H22)))))))))))))))) in (or_ind TMP_457 TMP_464 TMP_479 TMP_523 TMP_571 
-H21)))))))))))))))))))))))))))))) in (ex2_3_ind B C T TMP_433 TMP_434 TMP_449 
-TMP_572 H17))))))))))))))))) in (ex2_ind C TMP_414 TMP_415 TMP_430 TMP_573 
-H14))))))))))))))))))))) in (ex2_3_ind B C T TMP_391 TMP_394 TMP_409 TMP_574 
-H11)))))))))))))))))))))) in (let TMP_576 \def (nat_ind TMP_237 TMP_386 
-TMP_575 n) in (unintro C c1 TMP_224 TMP_576 H7)))))))))) in (K_ind TMP_61 
-TMP_211 TMP_577 k H3 H4)))))))))) in (C_ind TMP_32 TMP_48 TMP_578 x H1 
-H2))))))) in (ex2_ind C TMP_3 TMP_6 TMP_19 TMP_579 H0))))))))))))).
+T).(ty3 g d1 u t))) (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t)))) (or 
+(ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(getl (S n0) c2 
+(CHead d2 (Bind Abst) t)))) (ex4_2 C T (\lambda (d2: C).(\lambda (_: 
+T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda (u: T).(getl (S n0) c2 (CHead 
+d2 (Bind Abbr) u)))) (\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) 
+(\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))))) (\lambda (H22: (ex2 C 
+(\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: C).(getl n0 x7 (CHead d2 
+(Bind Abst) t))))).(ex2_ind C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: 
+C).(getl n0 x7 (CHead d2 (Bind Abst) t))) (or (ex2 C (\lambda (d2: C).(csubt 
+g d1 d2)) (\lambda (d2: C).(getl (S n0) c2 (CHead d2 (Bind Abst) t)))) (ex4_2 
+C T (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: 
+C).(\lambda (u: T).(getl (S n0) c2 (CHead d2 (Bind Abbr) u)))) (\lambda (_: 
+C).(\lambda (u: T).(ty3 g d1 u t))) (\lambda (d2: C).(\lambda (u: T).(ty3 g 
+d2 u t))))) (\lambda (x9: C).(\lambda (H23: (csubt g d1 x9)).(\lambda (H24: 
+(getl n0 x7 (CHead x9 (Bind Abst) t))).(or_introl (ex2 C (\lambda (d2: 
+C).(csubt g d1 d2)) (\lambda (d2: C).(getl (S n0) c2 (CHead d2 (Bind Abst) 
+t)))) (ex4_2 C T (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) (\lambda 
+(d2: C).(\lambda (u: T).(getl (S n0) c2 (CHead d2 (Bind Abbr) u)))) (\lambda 
+(_: C).(\lambda (u: T).(ty3 g d1 u t))) (\lambda (d2: C).(\lambda (u: T).(ty3 
+g d2 u t)))) (ex_intro2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda (d2: 
+C).(getl (S n0) c2 (CHead d2 (Bind Abst) t))) x9 H23 (getl_clear_bind x6 c2 
+x7 x8 H20 (CHead x9 (Bind Abst) t) n0 H24)))))) H22)) (\lambda (H22: (ex4_2 C 
+T (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: 
+C).(\lambda (u: T).(getl n0 x7 (CHead d2 (Bind Abbr) u)))) (\lambda (_: 
+C).(\lambda (u: T).(ty3 g d1 u t))) (\lambda (d2: C).(\lambda (u: T).(ty3 g 
+d2 u t))))).(ex4_2_ind C T (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) 
+(\lambda (d2: C).(\lambda (u: T).(getl n0 x7 (CHead d2 (Bind Abbr) u)))) 
+(\lambda (_: C).(\lambda (u: T).(ty3 g d1 u t))) (\lambda (d2: C).(\lambda 
+(u: T).(ty3 g d2 u t))) (or (ex2 C (\lambda (d2: C).(csubt g d1 d2)) (\lambda 
+(d2: C).(getl (S n0) c2 (CHead d2 (Bind Abst) t)))) (ex4_2 C T (\lambda (d2: 
+C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda (u: T).(getl 
+(S n0) c2 (CHead d2 (Bind Abbr) u)))) (\lambda (_: C).(\lambda (u: T).(ty3 g 
+d1 u t))) (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t))))) (\lambda (x9: 
+C).(\lambda (x10: T).(\lambda (H23: (csubt g d1 x9)).(\lambda (H24: (getl n0 
+x7 (CHead x9 (Bind Abbr) x10))).(\lambda (H25: (ty3 g d1 x10 t)).(\lambda 
+(H26: (ty3 g x9 x10 t)).(or_intror (ex2 C (\lambda (d2: C).(csubt g d1 d2)) 
+(\lambda (d2: C).(getl (S n0) c2 (CHead d2 (Bind Abst) t)))) (ex4_2 C T 
+(\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) (\lambda (d2: C).(\lambda 
+(u: T).(getl (S n0) c2 (CHead d2 (Bind Abbr) u)))) (\lambda (_: C).(\lambda 
+(u: T).(ty3 g d1 u t))) (\lambda (d2: C).(\lambda (u: T).(ty3 g d2 u t)))) 
+(ex4_2_intro C T (\lambda (d2: C).(\lambda (_: T).(csubt g d1 d2))) (\lambda 
+(d2: C).(\lambda (u: T).(getl (S n0) c2 (CHead d2 (Bind Abbr) u)))) (\lambda 
+(_: C).(\lambda (u: T).(ty3 g d1 u t))) (\lambda (d2: C).(\lambda (u: T).(ty3 
+g d2 u t))) x9 x10 H23 (getl_clear_bind x6 c2 x7 x8 H20 (CHead x9 (Bind Abbr) 
+x10) n0 H24) H25 H26)))))))) H22)) H21)))))))) H17))))) H14))))))) 
+H11)))))))) n) H7))))) k H3 H4))))))) x H1 H2)))) H0))))))).
 
index c27906d3a24536291f4f1f47d44553c7ccac6ef7..7929e08da2211f159df6b77b0a0ccda316092a9b 100644 (file)
@@ -23,40 +23,34 @@ theorem csubt_pr2:
 t1 t2) \to (\forall (c2: C).((csubt g c1 c2) \to (pr2 c2 t1 t2)))))))
 \def
  \lambda (g: G).(\lambda (c1: C).(\lambda (t1: T).(\lambda (t2: T).(\lambda 
-(H: (pr2 c1 t1 t2)).(let TMP_1 \def (\lambda (c: C).(\lambda (t: T).(\lambda 
-(t0: T).(\forall (c2: C).((csubt g c c2) \to (pr2 c2 t t0)))))) in (let TMP_2 
-\def (\lambda (c: C).(\lambda (t3: T).(\lambda (t4: T).(\lambda (H0: (pr0 t3 
-t4)).(\lambda (c2: C).(\lambda (_: (csubt g c c2)).(pr2_free c2 t3 t4 
-H0))))))) in (let TMP_9 \def (\lambda (c: C).(\lambda (d: C).(\lambda (u: 
-T).(\lambda (i: nat).(\lambda (H0: (getl i c (CHead d (Bind Abbr) 
-u))).(\lambda (t3: T).(\lambda (t4: T).(\lambda (H1: (pr0 t3 t4)).(\lambda 
-(t: T).(\lambda (H2: (subst0 i u t4 t)).(\lambda (c2: C).(\lambda (H3: (csubt 
-g c c2)).(let H4 \def (csubt_getl_abbr g c d u i H0 c2 H3) in (let TMP_3 \def 
-(\lambda (d2: C).(csubt g d d2)) in (let TMP_6 \def (\lambda (d2: C).(let 
-TMP_4 \def (Bind Abbr) in (let TMP_5 \def (CHead d2 TMP_4 u) in (getl i c2 
-TMP_5)))) in (let TMP_7 \def (pr2 c2 t3 t) in (let TMP_8 \def (\lambda (x: 
-C).(\lambda (_: (csubt g d x)).(\lambda (H6: (getl i c2 (CHead x (Bind Abbr) 
-u))).(pr2_delta c2 x u i H6 t3 t4 H1 t H2)))) in (ex2_ind C TMP_3 TMP_6 TMP_7 
-TMP_8 H4)))))))))))))))))) in (pr2_ind TMP_1 TMP_2 TMP_9 c1 t1 t2 H)))))))).
+(H: (pr2 c1 t1 t2)).(pr2_ind (\lambda (c: C).(\lambda (t: T).(\lambda (t0: 
+T).(\forall (c2: C).((csubt g c c2) \to (pr2 c2 t t0)))))) (\lambda (c: 
+C).(\lambda (t3: T).(\lambda (t4: T).(\lambda (H0: (pr0 t3 t4)).(\lambda (c2: 
+C).(\lambda (_: (csubt g c c2)).(pr2_free c2 t3 t4 H0))))))) (\lambda (c: 
+C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: nat).(\lambda (H0: (getl i c 
+(CHead d (Bind Abbr) u))).(\lambda (t3: T).(\lambda (t4: T).(\lambda (H1: 
+(pr0 t3 t4)).(\lambda (t: T).(\lambda (H2: (subst0 i u t4 t)).(\lambda (c2: 
+C).(\lambda (H3: (csubt g c c2)).(let H4 \def (csubt_getl_abbr g c d u i H0 
+c2 H3) in (ex2_ind C (\lambda (d2: C).(csubt g d d2)) (\lambda (d2: C).(getl 
+i c2 (CHead d2 (Bind Abbr) u))) (pr2 c2 t3 t) (\lambda (x: C).(\lambda (_: 
+(csubt g d x)).(\lambda (H6: (getl i c2 (CHead x (Bind Abbr) u))).(pr2_delta 
+c2 x u i H6 t3 t4 H1 t H2)))) H4)))))))))))))) c1 t1 t2 H))))).
 
 theorem csubt_pc3:
  \forall (g: G).(\forall (c1: C).(\forall (t1: T).(\forall (t2: T).((pc3 c1 
 t1 t2) \to (\forall (c2: C).((csubt g c1 c2) \to (pc3 c2 t1 t2)))))))
 \def
  \lambda (g: G).(\lambda (c1: C).(\lambda (t1: T).(\lambda (t2: T).(\lambda 
-(H: (pc3 c1 t1 t2)).(let TMP_1 \def (\lambda (t: T).(\lambda (t0: T).(\forall 
-(c2: C).((csubt g c1 c2) \to (pc3 c2 t t0))))) in (let TMP_2 \def (\lambda 
-(t: T).(\lambda (c2: C).(\lambda (_: (csubt g c1 c2)).(pc3_refl c2 t)))) in 
-(let TMP_6 \def (\lambda (t0: T).(\lambda (t3: T).(\lambda (H0: (pr2 c1 t0 
-t3)).(\lambda (t4: T).(\lambda (_: (pc3 c1 t3 t4)).(\lambda (H2: ((\forall 
-(c2: C).((csubt g c1 c2) \to (pc3 c2 t3 t4))))).(\lambda (c2: C).(\lambda 
-(H3: (csubt g c1 c2)).(let TMP_3 \def (csubt_pr2 g c1 t0 t3 H0 c2 H3) in (let 
-TMP_4 \def (pc3_pr2_r c2 t0 t3 TMP_3) in (let TMP_5 \def (H2 c2 H3) in (pc3_t 
-t3 c2 t0 TMP_4 t4 TMP_5)))))))))))) in (let TMP_10 \def (\lambda (t0: 
-T).(\lambda (t3: T).(\lambda (H0: (pr2 c1 t0 t3)).(\lambda (t4: T).(\lambda 
-(_: (pc3 c1 t0 t4)).(\lambda (H2: ((\forall (c2: C).((csubt g c1 c2) \to (pc3 
-c2 t0 t4))))).(\lambda (c2: C).(\lambda (H3: (csubt g c1 c2)).(let TMP_7 \def 
-(csubt_pr2 g c1 t0 t3 H0 c2 H3) in (let TMP_8 \def (pc3_pr2_x c2 t3 t0 TMP_7) 
-in (let TMP_9 \def (H2 c2 H3) in (pc3_t t0 c2 t3 TMP_8 t4 TMP_9)))))))))))) 
-in (pc3_ind_left c1 TMP_1 TMP_2 TMP_6 TMP_10 t1 t2 H))))))))).
+(H: (pc3 c1 t1 t2)).(pc3_ind_left c1 (\lambda (t: T).(\lambda (t0: 
+T).(\forall (c2: C).((csubt g c1 c2) \to (pc3 c2 t t0))))) (\lambda (t: 
+T).(\lambda (c2: C).(\lambda (_: (csubt g c1 c2)).(pc3_refl c2 t)))) (\lambda 
+(t0: T).(\lambda (t3: T).(\lambda (H0: (pr2 c1 t0 t3)).(\lambda (t4: 
+T).(\lambda (_: (pc3 c1 t3 t4)).(\lambda (H2: ((\forall (c2: C).((csubt g c1 
+c2) \to (pc3 c2 t3 t4))))).(\lambda (c2: C).(\lambda (H3: (csubt g c1 
+c2)).(pc3_t t3 c2 t0 (pc3_pr2_r c2 t0 t3 (csubt_pr2 g c1 t0 t3 H0 c2 H3)) t4 
+(H2 c2 H3)))))))))) (\lambda (t0: T).(\lambda (t3: T).(\lambda (H0: (pr2 c1 
+t0 t3)).(\lambda (t4: T).(\lambda (_: (pc3 c1 t0 t4)).(\lambda (H2: ((\forall 
+(c2: C).((csubt g c1 c2) \to (pc3 c2 t0 t4))))).(\lambda (c2: C).(\lambda 
+(H3: (csubt g c1 c2)).(pc3_t t0 c2 t3 (pc3_pr2_x c2 t3 t0 (csubt_pr2 g c1 t0 
+t3 H0 c2 H3)) t4 (H2 c2 H3)))))))))) t1 t2 H))))).
 
index 24c27142d827acbfd28085b9acc279c556279534..86779920a680501b570a69d0c5aaa0dcb29cd750 100644 (file)
@@ -21,8 +21,7 @@ include "basic_1/C/fwd.ma".
 theorem csubt_refl:
  \forall (g: G).(\forall (c: C).(csubt g c c))
 \def
- \lambda (g: G).(\lambda (c: C).(let TMP_1 \def (\lambda (c0: C).(csubt g c0 
-c0)) in (let TMP_2 \def (\lambda (n: nat).(csubt_sort g n)) in (let TMP_3 
-\def (\lambda (c0: C).(\lambda (H: (csubt g c0 c0)).(\lambda (k: K).(\lambda 
-(t: T).(csubt_head g c0 c0 H k t))))) in (C_ind TMP_1 TMP_2 TMP_3 c))))).
+ \lambda (g: G).(\lambda (c: C).(C_ind (\lambda (c0: C).(csubt g c0 c0)) 
+(\lambda (n: nat).(csubt_sort g n)) (\lambda (c0: C).(\lambda (H: (csubt g c0 
+c0)).(\lambda (k: K).(\lambda (t: T).(csubt_head g c0 c0 H k t))))) c)).
 
index 31ac52dffdfd6e42ff1e731319f8dcc3952e482d..e87c261a674591af3845c0c96f03dfb3e59024bf 100644 (file)
@@ -25,92 +25,66 @@ theorem csubt_ty3:
 t1 t2) \to (\forall (c2: C).((csubt g c1 c2) \to (ty3 g c2 t1 t2)))))))
 \def
  \lambda (g: G).(\lambda (c1: C).(\lambda (t1: T).(\lambda (t2: T).(\lambda 
-(H: (ty3 g c1 t1 t2)).(let TMP_1 \def (\lambda (c: C).(\lambda (t: 
-T).(\lambda (t0: T).(\forall (c2: C).((csubt g c c2) \to (ty3 g c2 t t0)))))) 
-in (let TMP_5 \def (\lambda (c: C).(\lambda (t0: T).(\lambda (t: T).(\lambda 
-(_: (ty3 g c t0 t)).(\lambda (H1: ((\forall (c2: C).((csubt g c c2) \to (ty3 
-g c2 t0 t))))).(\lambda (u: T).(\lambda (t3: T).(\lambda (_: (ty3 g c u 
-t3)).(\lambda (H3: ((\forall (c2: C).((csubt g c c2) \to (ty3 g c2 u 
-t3))))).(\lambda (H4: (pc3 c t3 t0)).(\lambda (c2: C).(\lambda (H5: (csubt g 
-c c2)).(let TMP_2 \def (H1 c2 H5) in (let TMP_3 \def (H3 c2 H5) in (let TMP_4 
-\def (csubt_pc3 g c t3 t0 H4 c2 H5) in (ty3_conv g c2 t0 t TMP_2 u t3 TMP_3 
-TMP_4)))))))))))))))) in (let TMP_6 \def (\lambda (c: C).(\lambda (m: 
-nat).(\lambda (c2: C).(\lambda (_: (csubt g c c2)).(ty3_sort g c2 m))))) in 
-(let TMP_17 \def (\lambda (n: nat).(\lambda (c: C).(\lambda (d: C).(\lambda 
-(u: T).(\lambda (H0: (getl n c (CHead d (Bind Abbr) u))).(\lambda (t: 
-T).(\lambda (_: (ty3 g d u t)).(\lambda (H2: ((\forall (c2: C).((csubt g d 
-c2) \to (ty3 g c2 u t))))).(\lambda (c2: C).(\lambda (H3: (csubt g c 
-c2)).(let H4 \def (csubt_getl_abbr g c d u n H0 c2 H3) in (let TMP_7 \def 
-(\lambda (d2: C).(csubt g d d2)) in (let TMP_10 \def (\lambda (d2: C).(let 
-TMP_8 \def (Bind Abbr) in (let TMP_9 \def (CHead d2 TMP_8 u) in (getl n c2 
-TMP_9)))) in (let TMP_11 \def (TLRef n) in (let TMP_12 \def (S n) in (let 
-TMP_13 \def (lift TMP_12 O t) in (let TMP_14 \def (ty3 g c2 TMP_11 TMP_13) in 
-(let TMP_16 \def (\lambda (x: C).(\lambda (H5: (csubt g d x)).(\lambda (H6: 
-(getl n c2 (CHead x (Bind Abbr) u))).(let TMP_15 \def (H2 x H5) in (ty3_abbr 
-g n c2 x u H6 t TMP_15))))) in (ex2_ind C TMP_7 TMP_10 TMP_14 TMP_16 
-H4))))))))))))))))))) in (let TMP_57 \def (\lambda (n: nat).(\lambda (c: 
+(H: (ty3 g c1 t1 t2)).(ty3_ind g (\lambda (c: C).(\lambda (t: T).(\lambda 
+(t0: T).(\forall (c2: C).((csubt g c c2) \to (ty3 g c2 t t0)))))) (\lambda 
+(c: C).(\lambda (t0: T).(\lambda (t: T).(\lambda (_: (ty3 g c t0 t)).(\lambda 
+(H1: ((\forall (c2: C).((csubt g c c2) \to (ty3 g c2 t0 t))))).(\lambda (u: 
+T).(\lambda (t3: T).(\lambda (_: (ty3 g c u t3)).(\lambda (H3: ((\forall (c2: 
+C).((csubt g c c2) \to (ty3 g c2 u t3))))).(\lambda (H4: (pc3 c t3 
+t0)).(\lambda (c2: C).(\lambda (H5: (csubt g c c2)).(ty3_conv g c2 t0 t (H1 
+c2 H5) u t3 (H3 c2 H5) (csubt_pc3 g c t3 t0 H4 c2 H5)))))))))))))) (\lambda 
+(c: C).(\lambda (m: nat).(\lambda (c2: C).(\lambda (_: (csubt g c 
+c2)).(ty3_sort g c2 m))))) (\lambda (n: nat).(\lambda (c: C).(\lambda (d: 
+C).(\lambda (u: T).(\lambda (H0: (getl n c (CHead d (Bind Abbr) u))).(\lambda 
+(t: T).(\lambda (_: (ty3 g d u t)).(\lambda (H2: ((\forall (c2: C).((csubt g 
+d c2) \to (ty3 g c2 u t))))).(\lambda (c2: C).(\lambda (H3: (csubt g c 
+c2)).(let H4 \def (csubt_getl_abbr g c d u n H0 c2 H3) in (ex2_ind C (\lambda 
+(d2: C).(csubt g d d2)) (\lambda (d2: C).(getl n c2 (CHead d2 (Bind Abbr) 
+u))) (ty3 g c2 (TLRef n) (lift (S n) O t)) (\lambda (x: C).(\lambda (H5: 
+(csubt g d x)).(\lambda (H6: (getl n c2 (CHead x (Bind Abbr) u))).(ty3_abbr g 
+n c2 x u H6 t (H2 x H5))))) H4)))))))))))) (\lambda (n: nat).(\lambda (c: 
 C).(\lambda (d: C).(\lambda (u: T).(\lambda (H0: (getl n c (CHead d (Bind 
 Abst) u))).(\lambda (t: T).(\lambda (_: (ty3 g d u t)).(\lambda (H2: 
 ((\forall (c2: C).((csubt g d c2) \to (ty3 g c2 u t))))).(\lambda (c2: 
 C).(\lambda (H3: (csubt g c c2)).(let H4 \def (csubt_getl_abst g c d u n H0 
-c2 H3) in (let TMP_18 \def (\lambda (d2: C).(csubt g d d2)) in (let TMP_21 
-\def (\lambda (d2: C).(let TMP_19 \def (Bind Abst) in (let TMP_20 \def (CHead 
-d2 TMP_19 u) in (getl n c2 TMP_20)))) in (let TMP_22 \def (ex2 C TMP_18 
-TMP_21) in (let TMP_23 \def (\lambda (d2: C).(\lambda (_: T).(csubt g d d2))) 
-in (let TMP_26 \def (\lambda (d2: C).(\lambda (u0: T).(let TMP_24 \def (Bind 
-Abbr) in (let TMP_25 \def (CHead d2 TMP_24 u0) in (getl n c2 TMP_25))))) in 
-(let TMP_27 \def (\lambda (_: C).(\lambda (u0: T).(ty3 g d u0 u))) in (let 
-TMP_28 \def (\lambda (d2: C).(\lambda (u0: T).(ty3 g d2 u0 u))) in (let 
-TMP_29 \def (ex4_2 C T TMP_23 TMP_26 TMP_27 TMP_28) in (let TMP_30 \def 
-(TLRef n) in (let TMP_31 \def (S n) in (let TMP_32 \def (lift TMP_31 O u) in 
-(let TMP_33 \def (ty3 g c2 TMP_30 TMP_32) in (let TMP_44 \def (\lambda (H5: 
-(ex2 C (\lambda (d2: C).(csubt g d d2)) (\lambda (d2: C).(getl n c2 (CHead d2 
-(Bind Abst) u))))).(let TMP_34 \def (\lambda (d2: C).(csubt g d d2)) in (let 
-TMP_37 \def (\lambda (d2: C).(let TMP_35 \def (Bind Abst) in (let TMP_36 \def 
-(CHead d2 TMP_35 u) in (getl n c2 TMP_36)))) in (let TMP_38 \def (TLRef n) in 
-(let TMP_39 \def (S n) in (let TMP_40 \def (lift TMP_39 O u) in (let TMP_41 
-\def (ty3 g c2 TMP_38 TMP_40) in (let TMP_43 \def (\lambda (x: C).(\lambda 
-(H6: (csubt g d x)).(\lambda (H7: (getl n c2 (CHead x (Bind Abst) u))).(let 
-TMP_42 \def (H2 x H6) in (ty3_abst g n c2 x u H7 t TMP_42))))) in (ex2_ind C 
-TMP_34 TMP_37 TMP_41 TMP_43 H5))))))))) in (let TMP_56 \def (\lambda (H5: 
-(ex4_2 C T (\lambda (d2: C).(\lambda (_: T).(csubt g d d2))) (\lambda (d2: 
-C).(\lambda (u0: T).(getl n c2 (CHead d2 (Bind Abbr) u0)))) (\lambda (_: 
-C).(\lambda (u0: T).(ty3 g d u0 u))) (\lambda (d2: C).(\lambda (u0: T).(ty3 g 
-d2 u0 u))))).(let TMP_45 \def (\lambda (d2: C).(\lambda (_: T).(csubt g d 
-d2))) in (let TMP_48 \def (\lambda (d2: C).(\lambda (u0: T).(let TMP_46 \def 
-(Bind Abbr) in (let TMP_47 \def (CHead d2 TMP_46 u0) in (getl n c2 
-TMP_47))))) in (let TMP_49 \def (\lambda (_: C).(\lambda (u0: T).(ty3 g d u0 
-u))) in (let TMP_50 \def (\lambda (d2: C).(\lambda (u0: T).(ty3 g d2 u0 u))) 
-in (let TMP_51 \def (TLRef n) in (let TMP_52 \def (S n) in (let TMP_53 \def 
-(lift TMP_52 O u) in (let TMP_54 \def (ty3 g c2 TMP_51 TMP_53) in (let TMP_55 
-\def (\lambda (x0: C).(\lambda (x1: T).(\lambda (_: (csubt g d x0)).(\lambda 
-(H7: (getl n c2 (CHead x0 (Bind Abbr) x1))).(\lambda (_: (ty3 g d x1 
-u)).(\lambda (H9: (ty3 g x0 x1 u)).(ty3_abbr g n c2 x0 x1 H7 u H9))))))) in 
-(ex4_2_ind C T TMP_45 TMP_48 TMP_49 TMP_50 TMP_54 TMP_55 H5))))))))))) in 
-(or_ind TMP_22 TMP_29 TMP_33 TMP_44 TMP_56 H4)))))))))))))))))))))))))) in 
-(let TMP_64 \def (\lambda (c: C).(\lambda (u: T).(\lambda (t: T).(\lambda (_: 
-(ty3 g c u t)).(\lambda (H1: ((\forall (c2: C).((csubt g c c2) \to (ty3 g c2 
-u t))))).(\lambda (b: B).(\lambda (t0: T).(\lambda (t3: T).(\lambda (_: (ty3 
-g (CHead c (Bind b) u) t0 t3)).(\lambda (H3: ((\forall (c2: C).((csubt g 
-(CHead c (Bind b) u) c2) \to (ty3 g c2 t0 t3))))).(\lambda (c2: C).(\lambda 
-(H4: (csubt g c c2)).(let TMP_58 \def (H1 c2 H4) in (let TMP_59 \def (Bind b) 
-in (let TMP_60 \def (CHead c2 TMP_59 u) in (let TMP_61 \def (Bind b) in (let 
-TMP_62 \def (csubt_head g c c2 H4 TMP_61 u) in (let TMP_63 \def (H3 TMP_60 
-TMP_62) in (ty3_bind g c2 u t TMP_58 b t0 t3 TMP_63))))))))))))))))))) in 
-(let TMP_67 \def (\lambda (c: C).(\lambda (w: T).(\lambda (u: T).(\lambda (_: 
+c2 H3) in (or_ind (ex2 C (\lambda (d2: C).(csubt g d d2)) (\lambda (d2: 
+C).(getl n c2 (CHead d2 (Bind Abst) u)))) (ex4_2 C T (\lambda (d2: 
+C).(\lambda (_: T).(csubt g d d2))) (\lambda (d2: C).(\lambda (u0: T).(getl n 
+c2 (CHead d2 (Bind Abbr) u0)))) (\lambda (_: C).(\lambda (u0: T).(ty3 g d u0 
+u))) (\lambda (d2: C).(\lambda (u0: T).(ty3 g d2 u0 u)))) (ty3 g c2 (TLRef n) 
+(lift (S n) O u)) (\lambda (H5: (ex2 C (\lambda (d2: C).(csubt g d d2)) 
+(\lambda (d2: C).(getl n c2 (CHead d2 (Bind Abst) u))))).(ex2_ind C (\lambda 
+(d2: C).(csubt g d d2)) (\lambda (d2: C).(getl n c2 (CHead d2 (Bind Abst) 
+u))) (ty3 g c2 (TLRef n) (lift (S n) O u)) (\lambda (x: C).(\lambda (H6: 
+(csubt g d x)).(\lambda (H7: (getl n c2 (CHead x (Bind Abst) u))).(ty3_abst g 
+n c2 x u H7 t (H2 x H6))))) H5)) (\lambda (H5: (ex4_2 C T (\lambda (d2: 
+C).(\lambda (_: T).(csubt g d d2))) (\lambda (d2: C).(\lambda (u0: T).(getl n 
+c2 (CHead d2 (Bind Abbr) u0)))) (\lambda (_: C).(\lambda (u0: T).(ty3 g d u0 
+u))) (\lambda (d2: C).(\lambda (u0: T).(ty3 g d2 u0 u))))).(ex4_2_ind C T 
+(\lambda (d2: C).(\lambda (_: T).(csubt g d d2))) (\lambda (d2: C).(\lambda 
+(u0: T).(getl n c2 (CHead d2 (Bind Abbr) u0)))) (\lambda (_: C).(\lambda (u0: 
+T).(ty3 g d u0 u))) (\lambda (d2: C).(\lambda (u0: T).(ty3 g d2 u0 u))) (ty3 
+g c2 (TLRef n) (lift (S n) O u)) (\lambda (x0: C).(\lambda (x1: T).(\lambda 
+(_: (csubt g d x0)).(\lambda (H7: (getl n c2 (CHead x0 (Bind Abbr) 
+x1))).(\lambda (_: (ty3 g d x1 u)).(\lambda (H9: (ty3 g x0 x1 u)).(ty3_abbr g 
+n c2 x0 x1 H7 u H9))))))) H5)) H4)))))))))))) (\lambda (c: C).(\lambda (u: 
+T).(\lambda (t: T).(\lambda (_: (ty3 g c u t)).(\lambda (H1: ((\forall (c2: 
+C).((csubt g c c2) \to (ty3 g c2 u t))))).(\lambda (b: B).(\lambda (t0: 
+T).(\lambda (t3: T).(\lambda (_: (ty3 g (CHead c (Bind b) u) t0 t3)).(\lambda 
+(H3: ((\forall (c2: C).((csubt g (CHead c (Bind b) u) c2) \to (ty3 g c2 t0 
+t3))))).(\lambda (c2: C).(\lambda (H4: (csubt g c c2)).(ty3_bind g c2 u t (H1 
+c2 H4) b t0 t3 (H3 (CHead c2 (Bind b) u) (csubt_head g c c2 H4 (Bind b) 
+u))))))))))))))) (\lambda (c: C).(\lambda (w: T).(\lambda (u: T).(\lambda (_: 
 (ty3 g c w u)).(\lambda (H1: ((\forall (c2: C).((csubt g c c2) \to (ty3 g c2 
 w u))))).(\lambda (v: T).(\lambda (t: T).(\lambda (_: (ty3 g c v (THead (Bind 
 Abst) u t))).(\lambda (H3: ((\forall (c2: C).((csubt g c c2) \to (ty3 g c2 v 
 (THead (Bind Abst) u t)))))).(\lambda (c2: C).(\lambda (H4: (csubt g c 
-c2)).(let TMP_65 \def (H1 c2 H4) in (let TMP_66 \def (H3 c2 H4) in (ty3_appl 
-g c2 w u TMP_65 v t TMP_66)))))))))))))) in (let TMP_70 \def (\lambda (c: 
+c2)).(ty3_appl g c2 w u (H1 c2 H4) v t (H3 c2 H4))))))))))))) (\lambda (c: 
 C).(\lambda (t0: T).(\lambda (t3: T).(\lambda (_: (ty3 g c t0 t3)).(\lambda 
 (H1: ((\forall (c2: C).((csubt g c c2) \to (ty3 g c2 t0 t3))))).(\lambda (t4: 
 T).(\lambda (_: (ty3 g c t3 t4)).(\lambda (H3: ((\forall (c2: C).((csubt g c 
 c2) \to (ty3 g c2 t3 t4))))).(\lambda (c2: C).(\lambda (H4: (csubt g c 
-c2)).(let TMP_68 \def (H1 c2 H4) in (let TMP_69 \def (H3 c2 H4) in (ty3_cast 
-g c2 t0 t3 TMP_68 t4 TMP_69))))))))))))) in (ty3_ind g TMP_1 TMP_5 TMP_6 
-TMP_17 TMP_57 TMP_64 TMP_67 TMP_70 c1 t1 t2 H))))))))))))).
+c2)).(ty3_cast g c2 t0 t3 (H1 c2 H4) t4 (H3 c2 H4)))))))))))) c1 t1 t2 H))))).
 
 theorem csubt_ty3_ld:
  \forall (g: G).(\forall (c: C).(\forall (u: T).(\forall (v: T).((ty3 g c u 
@@ -119,8 +93,6 @@ t2) \to (ty3 g (CHead c (Bind Abbr) u) t1 t2))))))))
 \def
  \lambda (g: G).(\lambda (c: C).(\lambda (u: T).(\lambda (v: T).(\lambda (H: 
 (ty3 g c u v)).(\lambda (t1: T).(\lambda (t2: T).(\lambda (H0: (ty3 g (CHead 
-c (Bind Abst) v) t1 t2)).(let TMP_1 \def (Bind Abst) in (let TMP_2 \def 
-(CHead c TMP_1 v) in (let TMP_3 \def (Bind Abbr) in (let TMP_4 \def (CHead c 
-TMP_3 u) in (let TMP_5 \def (csubt_refl g c) in (let TMP_6 \def (csubt_abst g 
-c c TMP_5 u v H H) in (csubt_ty3 g TMP_2 t1 t2 H0 TMP_4 TMP_6)))))))))))))).
+c (Bind Abst) v) t1 t2)).(csubt_ty3 g (CHead c (Bind Abst) v) t1 t2 H0 (CHead 
+c (Bind Abbr) u) (csubt_abst g c c (csubt_refl g c) u v H H))))))))).
 
index 4439f9ce939825d85cf215ea57e2432343d6cbd8..12c78237d0966a3db5bf8165b6081c0a0786f466 100644 (file)
@@ -25,162 +25,90 @@ theorem csubv_drop_conf:
 C).(\forall (h: nat).((drop h O c1 e1) \to (ex2 C (\lambda (e2: C).(csubv e1 
 e2)) (\lambda (e2: C).(drop h O c2 e2))))))))
 \def
- \lambda (c1: C).(\lambda (c2: C).(\lambda (H: (csubv c1 c2)).(let TMP_3 \def 
+ \lambda (c1: C).(\lambda (c2: C).(\lambda (H: (csubv c1 c2)).(csubv_ind 
 (\lambda (c: C).(\lambda (c0: C).(\forall (e1: C).(\forall (h: nat).((drop h 
-O c e1) \to (let TMP_1 \def (\lambda (e2: C).(csubv e1 e2)) in (let TMP_2 
-\def (\lambda (e2: C).(drop h O c0 e2)) in (ex2 C TMP_1 TMP_2)))))))) in (let 
-TMP_34 \def (\lambda (n: nat).(\lambda (e1: C).(\lambda (h: nat).(\lambda 
-(H0: (drop h O (CSort n) e1)).(let TMP_4 \def (CSort n) in (let TMP_5 \def 
-(eq C e1 TMP_4) in (let TMP_6 \def (eq nat h O) in (let TMP_7 \def (eq nat O 
-O) in (let TMP_8 \def (\lambda (e2: C).(csubv e1 e2)) in (let TMP_10 \def 
-(\lambda (e2: C).(let TMP_9 \def (CSort n) in (drop h O TMP_9 e2))) in (let 
-TMP_11 \def (ex2 C TMP_8 TMP_10) in (let TMP_32 \def (\lambda (H1: (eq C e1 
-(CSort n))).(\lambda (H2: (eq nat h O)).(\lambda (_: (eq nat O O)).(let 
-TMP_15 \def (\lambda (n0: nat).(let TMP_12 \def (\lambda (e2: C).(csubv e1 
-e2)) in (let TMP_14 \def (\lambda (e2: C).(let TMP_13 \def (CSort n) in (drop 
-n0 O TMP_13 e2))) in (ex2 C TMP_12 TMP_14)))) in (let TMP_16 \def (CSort n) 
-in (let TMP_20 \def (\lambda (c: C).(let TMP_17 \def (\lambda (e2: C).(csubv 
-c e2)) in (let TMP_19 \def (\lambda (e2: C).(let TMP_18 \def (CSort n) in 
-(drop O O TMP_18 e2))) in (ex2 C TMP_17 TMP_19)))) in (let TMP_22 \def 
-(\lambda (e2: C).(let TMP_21 \def (CSort n) in (csubv TMP_21 e2))) in (let 
-TMP_24 \def (\lambda (e2: C).(let TMP_23 \def (CSort n) in (drop O O TMP_23 
-e2))) in (let TMP_25 \def (CSort n) in (let TMP_26 \def (CSort n) in (let 
-TMP_27 \def (csubv_refl TMP_26) in (let TMP_28 \def (CSort n) in (let TMP_29 
-\def (drop_refl TMP_28) in (let TMP_30 \def (ex_intro2 C TMP_22 TMP_24 TMP_25 
-TMP_27 TMP_29) in (let TMP_31 \def (eq_ind_r C TMP_16 TMP_20 TMP_30 e1 H1) in 
-(eq_ind_r nat O TMP_15 TMP_31 h H2)))))))))))))))) in (let TMP_33 \def 
-(drop_gen_sort n h O e1 H0) in (and3_ind TMP_5 TMP_6 TMP_7 TMP_11 TMP_32 
-TMP_33)))))))))))))) in (let TMP_85 \def (\lambda (c3: C).(\lambda (c4: 
-C).(\lambda (H0: (csubv c3 c4)).(\lambda (H1: ((\forall (e1: C).(\forall (h: 
-nat).((drop h O c3 e1) \to (ex2 C (\lambda (e2: C).(csubv e1 e2)) (\lambda 
-(e2: C).(drop h O c4 e2)))))))).(\lambda (v1: T).(\lambda (v2: T).(\lambda 
-(e1: C).(\lambda (h: nat).(\lambda (H2: (drop h O (CHead c3 (Bind Void) v1) 
-e1)).(let TMP_39 \def (\lambda (n: nat).((drop n O (CHead c3 (Bind Void) v1) 
-e1) \to (let TMP_35 \def (\lambda (e2: C).(csubv e1 e2)) in (let TMP_38 \def 
-(\lambda (e2: C).(let TMP_36 \def (Bind Void) in (let TMP_37 \def (CHead c4 
-TMP_36 v2) in (drop n O TMP_37 e2)))) in (ex2 C TMP_35 TMP_38))))) in (let 
-TMP_63 \def (\lambda (H3: (drop O O (CHead c3 (Bind Void) v1) e1)).(let 
-TMP_40 \def (Bind Void) in (let TMP_41 \def (CHead c3 TMP_40 v1) in (let 
-TMP_46 \def (\lambda (c: C).(let TMP_42 \def (\lambda (e2: C).(csubv c e2)) 
-in (let TMP_45 \def (\lambda (e2: C).(let TMP_43 \def (Bind Void) in (let 
-TMP_44 \def (CHead c4 TMP_43 v2) in (drop O O TMP_44 e2)))) in (ex2 C TMP_42 
-TMP_45)))) in (let TMP_49 \def (\lambda (e2: C).(let TMP_47 \def (Bind Void) 
-in (let TMP_48 \def (CHead c3 TMP_47 v1) in (csubv TMP_48 e2)))) in (let 
-TMP_52 \def (\lambda (e2: C).(let TMP_50 \def (Bind Void) in (let TMP_51 \def 
-(CHead c4 TMP_50 v2) in (drop O O TMP_51 e2)))) in (let TMP_53 \def (Bind 
-Void) in (let TMP_54 \def (CHead c4 TMP_53 v2) in (let TMP_55 \def 
-(csubv_bind_same c3 c4 H0 Void v1 v2) in (let TMP_56 \def (Bind Void) in (let 
-TMP_57 \def (CHead c4 TMP_56 v2) in (let TMP_58 \def (drop_refl TMP_57) in 
-(let TMP_59 \def (ex_intro2 C TMP_49 TMP_52 TMP_54 TMP_55 TMP_58) in (let 
-TMP_60 \def (Bind Void) in (let TMP_61 \def (CHead c3 TMP_60 v1) in (let 
-TMP_62 \def (drop_gen_refl TMP_61 e1 H3) in (eq_ind C TMP_41 TMP_46 TMP_59 e1 
-TMP_62))))))))))))))))) in (let TMP_84 \def (\lambda (h0: nat).(\lambda (_: 
-(((drop h0 O (CHead c3 (Bind Void) v1) e1) \to (ex2 C (\lambda (e2: C).(csubv 
-e1 e2)) (\lambda (e2: C).(drop h0 O (CHead c4 (Bind Void) v2) 
-e2)))))).(\lambda (H3: (drop (S h0) O (CHead c3 (Bind Void) v1) e1)).(let 
-TMP_64 \def (Bind Void) in (let TMP_65 \def (r TMP_64 h0) in (let TMP_66 \def 
-(Bind Void) in (let TMP_67 \def (drop_gen_drop TMP_66 c3 e1 v1 h0 H3) in (let 
-H_x \def (H1 e1 TMP_65 TMP_67) in (let H4 \def H_x in (let TMP_68 \def 
-(\lambda (e2: C).(csubv e1 e2)) in (let TMP_69 \def (\lambda (e2: C).(drop h0 
-O c4 e2)) in (let TMP_70 \def (\lambda (e2: C).(csubv e1 e2)) in (let TMP_74 
-\def (\lambda (e2: C).(let TMP_71 \def (S h0) in (let TMP_72 \def (Bind Void) 
-in (let TMP_73 \def (CHead c4 TMP_72 v2) in (drop TMP_71 O TMP_73 e2))))) in 
-(let TMP_75 \def (ex2 C TMP_70 TMP_74) in (let TMP_83 \def (\lambda (x: 
-C).(\lambda (H5: (csubv e1 x)).(\lambda (H6: (drop h0 O c4 x)).(let TMP_76 
-\def (\lambda (e2: C).(csubv e1 e2)) in (let TMP_80 \def (\lambda (e2: 
-C).(let TMP_77 \def (S h0) in (let TMP_78 \def (Bind Void) in (let TMP_79 
-\def (CHead c4 TMP_78 v2) in (drop TMP_77 O TMP_79 e2))))) in (let TMP_81 
-\def (Bind Void) in (let TMP_82 \def (drop_drop TMP_81 h0 c4 x H6 v2) in 
-(ex_intro2 C TMP_76 TMP_80 x H5 TMP_82)))))))) in (ex2_ind C TMP_68 TMP_69 
-TMP_75 TMP_83 H4)))))))))))))))) in (nat_ind TMP_39 TMP_63 TMP_84 h 
-H2))))))))))))) in (let TMP_136 \def (\lambda (c3: C).(\lambda (c4: 
-C).(\lambda (H0: (csubv c3 c4)).(\lambda (H1: ((\forall (e1: C).(\forall (h: 
-nat).((drop h O c3 e1) \to (ex2 C (\lambda (e2: C).(csubv e1 e2)) (\lambda 
-(e2: C).(drop h O c4 e2)))))))).(\lambda (b1: B).(\lambda (H2: (not (eq B b1 
-Void))).(\lambda (b2: B).(\lambda (v1: T).(\lambda (v2: T).(\lambda (e1: 
-C).(\lambda (h: nat).(\lambda (H3: (drop h O (CHead c3 (Bind b1) v1) 
-e1)).(let TMP_90 \def (\lambda (n: nat).((drop n O (CHead c3 (Bind b1) v1) 
-e1) \to (let TMP_86 \def (\lambda (e2: C).(csubv e1 e2)) in (let TMP_89 \def 
-(\lambda (e2: C).(let TMP_87 \def (Bind b2) in (let TMP_88 \def (CHead c4 
-TMP_87 v2) in (drop n O TMP_88 e2)))) in (ex2 C TMP_86 TMP_89))))) in (let 
-TMP_114 \def (\lambda (H4: (drop O O (CHead c3 (Bind b1) v1) e1)).(let TMP_91 
-\def (Bind b1) in (let TMP_92 \def (CHead c3 TMP_91 v1) in (let TMP_97 \def 
-(\lambda (c: C).(let TMP_93 \def (\lambda (e2: C).(csubv c e2)) in (let 
-TMP_96 \def (\lambda (e2: C).(let TMP_94 \def (Bind b2) in (let TMP_95 \def 
-(CHead c4 TMP_94 v2) in (drop O O TMP_95 e2)))) in (ex2 C TMP_93 TMP_96)))) 
-in (let TMP_100 \def (\lambda (e2: C).(let TMP_98 \def (Bind b1) in (let 
-TMP_99 \def (CHead c3 TMP_98 v1) in (csubv TMP_99 e2)))) in (let TMP_103 \def 
-(\lambda (e2: C).(let TMP_101 \def (Bind b2) in (let TMP_102 \def (CHead c4 
-TMP_101 v2) in (drop O O TMP_102 e2)))) in (let TMP_104 \def (Bind b2) in 
-(let TMP_105 \def (CHead c4 TMP_104 v2) in (let TMP_106 \def (csubv_bind c3 
-c4 H0 b1 H2 b2 v1 v2) in (let TMP_107 \def (Bind b2) in (let TMP_108 \def 
-(CHead c4 TMP_107 v2) in (let TMP_109 \def (drop_refl TMP_108) in (let 
-TMP_110 \def (ex_intro2 C TMP_100 TMP_103 TMP_105 TMP_106 TMP_109) in (let 
-TMP_111 \def (Bind b1) in (let TMP_112 \def (CHead c3 TMP_111 v1) in (let 
-TMP_113 \def (drop_gen_refl TMP_112 e1 H4) in (eq_ind C TMP_92 TMP_97 TMP_110 
-e1 TMP_113))))))))))))))))) in (let TMP_135 \def (\lambda (h0: nat).(\lambda 
-(_: (((drop h0 O (CHead c3 (Bind b1) v1) e1) \to (ex2 C (\lambda (e2: 
-C).(csubv e1 e2)) (\lambda (e2: C).(drop h0 O (CHead c4 (Bind b2) v2) 
-e2)))))).(\lambda (H4: (drop (S h0) O (CHead c3 (Bind b1) v1) e1)).(let 
-TMP_115 \def (Bind b1) in (let TMP_116 \def (r TMP_115 h0) in (let TMP_117 
-\def (Bind b1) in (let TMP_118 \def (drop_gen_drop TMP_117 c3 e1 v1 h0 H4) in 
-(let H_x \def (H1 e1 TMP_116 TMP_118) in (let H5 \def H_x in (let TMP_119 
-\def (\lambda (e2: C).(csubv e1 e2)) in (let TMP_120 \def (\lambda (e2: 
-C).(drop h0 O c4 e2)) in (let TMP_121 \def (\lambda (e2: C).(csubv e1 e2)) in 
-(let TMP_125 \def (\lambda (e2: C).(let TMP_122 \def (S h0) in (let TMP_123 
-\def (Bind b2) in (let TMP_124 \def (CHead c4 TMP_123 v2) in (drop TMP_122 O 
-TMP_124 e2))))) in (let TMP_126 \def (ex2 C TMP_121 TMP_125) in (let TMP_134 
-\def (\lambda (x: C).(\lambda (H6: (csubv e1 x)).(\lambda (H7: (drop h0 O c4 
-x)).(let TMP_127 \def (\lambda (e2: C).(csubv e1 e2)) in (let TMP_131 \def 
-(\lambda (e2: C).(let TMP_128 \def (S h0) in (let TMP_129 \def (Bind b2) in 
-(let TMP_130 \def (CHead c4 TMP_129 v2) in (drop TMP_128 O TMP_130 e2))))) in 
-(let TMP_132 \def (Bind b2) in (let TMP_133 \def (drop_drop TMP_132 h0 c4 x 
-H7 v2) in (ex_intro2 C TMP_127 TMP_131 x H6 TMP_133)))))))) in (ex2_ind C 
-TMP_119 TMP_120 TMP_126 TMP_134 H5)))))))))))))))) in (nat_ind TMP_90 TMP_114 
-TMP_135 h H3)))))))))))))))) in (let TMP_188 \def (\lambda (c3: C).(\lambda 
-(c4: C).(\lambda (H0: (csubv c3 c4)).(\lambda (H1: ((\forall (e1: C).(\forall 
-(h: nat).((drop h O c3 e1) \to (ex2 C (\lambda (e2: C).(csubv e1 e2)) 
-(\lambda (e2: C).(drop h O c4 e2)))))))).(\lambda (f1: F).(\lambda (f2: 
-F).(\lambda (v1: T).(\lambda (v2: T).(\lambda (e1: C).(\lambda (h: 
-nat).(\lambda (H2: (drop h O (CHead c3 (Flat f1) v1) e1)).(let TMP_141 \def 
-(\lambda (n: nat).((drop n O (CHead c3 (Flat f1) v1) e1) \to (let TMP_137 
-\def (\lambda (e2: C).(csubv e1 e2)) in (let TMP_140 \def (\lambda (e2: 
-C).(let TMP_138 \def (Flat f2) in (let TMP_139 \def (CHead c4 TMP_138 v2) in 
-(drop n O TMP_139 e2)))) in (ex2 C TMP_137 TMP_140))))) in (let TMP_165 \def 
-(\lambda (H3: (drop O O (CHead c3 (Flat f1) v1) e1)).(let TMP_142 \def (Flat 
-f1) in (let TMP_143 \def (CHead c3 TMP_142 v1) in (let TMP_148 \def (\lambda 
-(c: C).(let TMP_144 \def (\lambda (e2: C).(csubv c e2)) in (let TMP_147 \def 
-(\lambda (e2: C).(let TMP_145 \def (Flat f2) in (let TMP_146 \def (CHead c4 
-TMP_145 v2) in (drop O O TMP_146 e2)))) in (ex2 C TMP_144 TMP_147)))) in (let 
-TMP_151 \def (\lambda (e2: C).(let TMP_149 \def (Flat f1) in (let TMP_150 
-\def (CHead c3 TMP_149 v1) in (csubv TMP_150 e2)))) in (let TMP_154 \def 
-(\lambda (e2: C).(let TMP_152 \def (Flat f2) in (let TMP_153 \def (CHead c4 
-TMP_152 v2) in (drop O O TMP_153 e2)))) in (let TMP_155 \def (Flat f2) in 
-(let TMP_156 \def (CHead c4 TMP_155 v2) in (let TMP_157 \def (csubv_flat c3 
-c4 H0 f1 f2 v1 v2) in (let TMP_158 \def (Flat f2) in (let TMP_159 \def (CHead 
-c4 TMP_158 v2) in (let TMP_160 \def (drop_refl TMP_159) in (let TMP_161 \def 
-(ex_intro2 C TMP_151 TMP_154 TMP_156 TMP_157 TMP_160) in (let TMP_162 \def 
-(Flat f1) in (let TMP_163 \def (CHead c3 TMP_162 v1) in (let TMP_164 \def 
-(drop_gen_refl TMP_163 e1 H3) in (eq_ind C TMP_143 TMP_148 TMP_161 e1 
-TMP_164))))))))))))))))) in (let TMP_187 \def (\lambda (h0: nat).(\lambda (_: 
-(((drop h0 O (CHead c3 (Flat f1) v1) e1) \to (ex2 C (\lambda (e2: C).(csubv 
-e1 e2)) (\lambda (e2: C).(drop h0 O (CHead c4 (Flat f2) v2) e2)))))).(\lambda 
-(H3: (drop (S h0) O (CHead c3 (Flat f1) v1) e1)).(let TMP_166 \def (Flat f1) 
-in (let TMP_167 \def (r TMP_166 h0) in (let TMP_168 \def (Flat f1) in (let 
-TMP_169 \def (drop_gen_drop TMP_168 c3 e1 v1 h0 H3) in (let H_x \def (H1 e1 
-TMP_167 TMP_169) in (let H4 \def H_x in (let TMP_170 \def (\lambda (e2: 
-C).(csubv e1 e2)) in (let TMP_172 \def (\lambda (e2: C).(let TMP_171 \def (S 
-h0) in (drop TMP_171 O c4 e2))) in (let TMP_173 \def (\lambda (e2: C).(csubv 
-e1 e2)) in (let TMP_177 \def (\lambda (e2: C).(let TMP_174 \def (S h0) in 
-(let TMP_175 \def (Flat f2) in (let TMP_176 \def (CHead c4 TMP_175 v2) in 
-(drop TMP_174 O TMP_176 e2))))) in (let TMP_178 \def (ex2 C TMP_173 TMP_177) 
-in (let TMP_186 \def (\lambda (x: C).(\lambda (H5: (csubv e1 x)).(\lambda 
-(H6: (drop (S h0) O c4 x)).(let TMP_179 \def (\lambda (e2: C).(csubv e1 e2)) 
-in (let TMP_183 \def (\lambda (e2: C).(let TMP_180 \def (S h0) in (let 
-TMP_181 \def (Flat f2) in (let TMP_182 \def (CHead c4 TMP_181 v2) in (drop 
-TMP_180 O TMP_182 e2))))) in (let TMP_184 \def (Flat f2) in (let TMP_185 \def 
-(drop_drop TMP_184 h0 c4 x H6 v2) in (ex_intro2 C TMP_179 TMP_183 x H5 
-TMP_185)))))))) in (ex2_ind C TMP_170 TMP_172 TMP_178 TMP_186 
-H4)))))))))))))))) in (nat_ind TMP_141 TMP_165 TMP_187 h H2))))))))))))))) in 
-(csubv_ind TMP_3 TMP_34 TMP_85 TMP_136 TMP_188 c1 c2 H)))))))).
+O c e1) \to (ex2 C (\lambda (e2: C).(csubv e1 e2)) (\lambda (e2: C).(drop h O 
+c0 e2)))))))) (\lambda (n: nat).(\lambda (e1: C).(\lambda (h: nat).(\lambda 
+(H0: (drop h O (CSort n) e1)).(and3_ind (eq C e1 (CSort n)) (eq nat h O) (eq 
+nat O O) (ex2 C (\lambda (e2: C).(csubv e1 e2)) (\lambda (e2: C).(drop h O 
+(CSort n) e2))) (\lambda (H1: (eq C e1 (CSort n))).(\lambda (H2: (eq nat h 
+O)).(\lambda (_: (eq nat O O)).(eq_ind_r nat O (\lambda (n0: nat).(ex2 C 
+(\lambda (e2: C).(csubv e1 e2)) (\lambda (e2: C).(drop n0 O (CSort n) e2)))) 
+(eq_ind_r C (CSort n) (\lambda (c: C).(ex2 C (\lambda (e2: C).(csubv c e2)) 
+(\lambda (e2: C).(drop O O (CSort n) e2)))) (ex_intro2 C (\lambda (e2: 
+C).(csubv (CSort n) e2)) (\lambda (e2: C).(drop O O (CSort n) e2)) (CSort n) 
+(csubv_refl (CSort n)) (drop_refl (CSort n))) e1 H1) h H2)))) (drop_gen_sort 
+n h O e1 H0)))))) (\lambda (c3: C).(\lambda (c4: C).(\lambda (H0: (csubv c3 
+c4)).(\lambda (H1: ((\forall (e1: C).(\forall (h: nat).((drop h O c3 e1) \to 
+(ex2 C (\lambda (e2: C).(csubv e1 e2)) (\lambda (e2: C).(drop h O c4 
+e2)))))))).(\lambda (v1: T).(\lambda (v2: T).(\lambda (e1: C).(\lambda (h: 
+nat).(\lambda (H2: (drop h O (CHead c3 (Bind Void) v1) e1)).(nat_ind (\lambda 
+(n: nat).((drop n O (CHead c3 (Bind Void) v1) e1) \to (ex2 C (\lambda (e2: 
+C).(csubv e1 e2)) (\lambda (e2: C).(drop n O (CHead c4 (Bind Void) v2) 
+e2))))) (\lambda (H3: (drop O O (CHead c3 (Bind Void) v1) e1)).(eq_ind C 
+(CHead c3 (Bind Void) v1) (\lambda (c: C).(ex2 C (\lambda (e2: C).(csubv c 
+e2)) (\lambda (e2: C).(drop O O (CHead c4 (Bind Void) v2) e2)))) (ex_intro2 C 
+(\lambda (e2: C).(csubv (CHead c3 (Bind Void) v1) e2)) (\lambda (e2: C).(drop 
+O O (CHead c4 (Bind Void) v2) e2)) (CHead c4 (Bind Void) v2) (csubv_bind_same 
+c3 c4 H0 Void v1 v2) (drop_refl (CHead c4 (Bind Void) v2))) e1 (drop_gen_refl 
+(CHead c3 (Bind Void) v1) e1 H3))) (\lambda (h0: nat).(\lambda (_: (((drop h0 
+O (CHead c3 (Bind Void) v1) e1) \to (ex2 C (\lambda (e2: C).(csubv e1 e2)) 
+(\lambda (e2: C).(drop h0 O (CHead c4 (Bind Void) v2) e2)))))).(\lambda (H3: 
+(drop (S h0) O (CHead c3 (Bind Void) v1) e1)).(let H_x \def (H1 e1 (r (Bind 
+Void) h0) (drop_gen_drop (Bind Void) c3 e1 v1 h0 H3)) in (let H4 \def H_x in 
+(ex2_ind C (\lambda (e2: C).(csubv e1 e2)) (\lambda (e2: C).(drop h0 O c4 
+e2)) (ex2 C (\lambda (e2: C).(csubv e1 e2)) (\lambda (e2: C).(drop (S h0) O 
+(CHead c4 (Bind Void) v2) e2))) (\lambda (x: C).(\lambda (H5: (csubv e1 
+x)).(\lambda (H6: (drop h0 O c4 x)).(ex_intro2 C (\lambda (e2: C).(csubv e1 
+e2)) (\lambda (e2: C).(drop (S h0) O (CHead c4 (Bind Void) v2) e2)) x H5 
+(drop_drop (Bind Void) h0 c4 x H6 v2))))) H4)))))) h H2)))))))))) (\lambda 
+(c3: C).(\lambda (c4: C).(\lambda (H0: (csubv c3 c4)).(\lambda (H1: ((\forall 
+(e1: C).(\forall (h: nat).((drop h O c3 e1) \to (ex2 C (\lambda (e2: 
+C).(csubv e1 e2)) (\lambda (e2: C).(drop h O c4 e2)))))))).(\lambda (b1: 
+B).(\lambda (H2: (not (eq B b1 Void))).(\lambda (b2: B).(\lambda (v1: 
+T).(\lambda (v2: T).(\lambda (e1: C).(\lambda (h: nat).(\lambda (H3: (drop h 
+O (CHead c3 (Bind b1) v1) e1)).(nat_ind (\lambda (n: nat).((drop n O (CHead 
+c3 (Bind b1) v1) e1) \to (ex2 C (\lambda (e2: C).(csubv e1 e2)) (\lambda (e2: 
+C).(drop n O (CHead c4 (Bind b2) v2) e2))))) (\lambda (H4: (drop O O (CHead 
+c3 (Bind b1) v1) e1)).(eq_ind C (CHead c3 (Bind b1) v1) (\lambda (c: C).(ex2 
+C (\lambda (e2: C).(csubv c e2)) (\lambda (e2: C).(drop O O (CHead c4 (Bind 
+b2) v2) e2)))) (ex_intro2 C (\lambda (e2: C).(csubv (CHead c3 (Bind b1) v1) 
+e2)) (\lambda (e2: C).(drop O O (CHead c4 (Bind b2) v2) e2)) (CHead c4 (Bind 
+b2) v2) (csubv_bind c3 c4 H0 b1 H2 b2 v1 v2) (drop_refl (CHead c4 (Bind b2) 
+v2))) e1 (drop_gen_refl (CHead c3 (Bind b1) v1) e1 H4))) (\lambda (h0: 
+nat).(\lambda (_: (((drop h0 O (CHead c3 (Bind b1) v1) e1) \to (ex2 C 
+(\lambda (e2: C).(csubv e1 e2)) (\lambda (e2: C).(drop h0 O (CHead c4 (Bind 
+b2) v2) e2)))))).(\lambda (H4: (drop (S h0) O (CHead c3 (Bind b1) v1) 
+e1)).(let H_x \def (H1 e1 (r (Bind b1) h0) (drop_gen_drop (Bind b1) c3 e1 v1 
+h0 H4)) in (let H5 \def H_x in (ex2_ind C (\lambda (e2: C).(csubv e1 e2)) 
+(\lambda (e2: C).(drop h0 O c4 e2)) (ex2 C (\lambda (e2: C).(csubv e1 e2)) 
+(\lambda (e2: C).(drop (S h0) O (CHead c4 (Bind b2) v2) e2))) (\lambda (x: 
+C).(\lambda (H6: (csubv e1 x)).(\lambda (H7: (drop h0 O c4 x)).(ex_intro2 C 
+(\lambda (e2: C).(csubv e1 e2)) (\lambda (e2: C).(drop (S h0) O (CHead c4 
+(Bind b2) v2) e2)) x H6 (drop_drop (Bind b2) h0 c4 x H7 v2))))) H5)))))) h 
+H3))))))))))))) (\lambda (c3: C).(\lambda (c4: C).(\lambda (H0: (csubv c3 
+c4)).(\lambda (H1: ((\forall (e1: C).(\forall (h: nat).((drop h O c3 e1) \to 
+(ex2 C (\lambda (e2: C).(csubv e1 e2)) (\lambda (e2: C).(drop h O c4 
+e2)))))))).(\lambda (f1: F).(\lambda (f2: F).(\lambda (v1: T).(\lambda (v2: 
+T).(\lambda (e1: C).(\lambda (h: nat).(\lambda (H2: (drop h O (CHead c3 (Flat 
+f1) v1) e1)).(nat_ind (\lambda (n: nat).((drop n O (CHead c3 (Flat f1) v1) 
+e1) \to (ex2 C (\lambda (e2: C).(csubv e1 e2)) (\lambda (e2: C).(drop n O 
+(CHead c4 (Flat f2) v2) e2))))) (\lambda (H3: (drop O O (CHead c3 (Flat f1) 
+v1) e1)).(eq_ind C (CHead c3 (Flat f1) v1) (\lambda (c: C).(ex2 C (\lambda 
+(e2: C).(csubv c e2)) (\lambda (e2: C).(drop O O (CHead c4 (Flat f2) v2) 
+e2)))) (ex_intro2 C (\lambda (e2: C).(csubv (CHead c3 (Flat f1) v1) e2)) 
+(\lambda (e2: C).(drop O O (CHead c4 (Flat f2) v2) e2)) (CHead c4 (Flat f2) 
+v2) (csubv_flat c3 c4 H0 f1 f2 v1 v2) (drop_refl (CHead c4 (Flat f2) v2))) e1 
+(drop_gen_refl (CHead c3 (Flat f1) v1) e1 H3))) (\lambda (h0: nat).(\lambda 
+(_: (((drop h0 O (CHead c3 (Flat f1) v1) e1) \to (ex2 C (\lambda (e2: 
+C).(csubv e1 e2)) (\lambda (e2: C).(drop h0 O (CHead c4 (Flat f2) v2) 
+e2)))))).(\lambda (H3: (drop (S h0) O (CHead c3 (Flat f1) v1) e1)).(let H_x 
+\def (H1 e1 (r (Flat f1) h0) (drop_gen_drop (Flat f1) c3 e1 v1 h0 H3)) in 
+(let H4 \def H_x in (ex2_ind C (\lambda (e2: C).(csubv e1 e2)) (\lambda (e2: 
+C).(drop (S h0) O c4 e2)) (ex2 C (\lambda (e2: C).(csubv e1 e2)) (\lambda 
+(e2: C).(drop (S h0) O (CHead c4 (Flat f2) v2) e2))) (\lambda (x: C).(\lambda 
+(H5: (csubv e1 x)).(\lambda (H6: (drop (S h0) O c4 x)).(ex_intro2 C (\lambda 
+(e2: C).(csubv e1 e2)) (\lambda (e2: C).(drop (S h0) O (CHead c4 (Flat f2) 
+v2) e2)) x H5 (drop_drop (Flat f2) h0 c4 x H6 v2))))) H4)))))) h 
+H2)))))))))))) c1 c2 H))).
 
index 70f6c8135a1675bb1459f6d096b810a61b98b723..f1c483123b056164d904a4f0703e843ebc7bcbf9 100644 (file)
@@ -27,9 +27,8 @@ C).((csubv c1 c2) \to ((P c1 c2) \to (\forall (f2: F).(\forall (f3:
 F).(\forall (v1: T).(\forall (v2: T).(P (CHead c1 (Flat f2) v1) (CHead c2 
 (Flat f3) v2))))))))))) (c: C) (c0: C) (c1: csubv c c0) on c1: P c c0 \def 
 match c1 with [(csubv_sort n) \Rightarrow (f n) | (csubv_void c2 c3 c4 v1 v2) 
-\Rightarrow (let TMP_3 \def ((csubv_ind P f f0 f1 f2) c2 c3 c4) in (f0 c2 c3 
-c4 TMP_3 v1 v2)) | (csubv_bind c2 c3 c4 b1 n b2 v1 v2) \Rightarrow (let TMP_2 
-\def ((csubv_ind P f f0 f1 f2) c2 c3 c4) in (f1 c2 c3 c4 TMP_2 b1 n b2 v1 
-v2)) | (csubv_flat c2 c3 c4 f3 f4 v1 v2) \Rightarrow (let TMP_1 \def 
-((csubv_ind P f f0 f1 f2) c2 c3 c4) in (f2 c2 c3 c4 TMP_1 f3 f4 v1 v2))].
+\Rightarrow (f0 c2 c3 c4 ((csubv_ind P f f0 f1 f2) c2 c3 c4) v1 v2) | 
+(csubv_bind c2 c3 c4 b1 n b2 v1 v2) \Rightarrow (f1 c2 c3 c4 ((csubv_ind P f 
+f0 f1 f2) c2 c3 c4) b1 n b2 v1 v2) | (csubv_flat c2 c3 c4 f3 f4 v1 v2) 
+\Rightarrow (f2 c2 c3 c4 ((csubv_ind P f f0 f1 f2) c2 c3 c4) f3 f4 v1 v2)].
 
index 47c2c38caa2db4477434a0609b975de71666a722..9befbda30463fe8826ad521910fbeead27d52bd1 100644 (file)
@@ -29,43 +29,29 @@ i c2 (CHead d2 (Bind b2) v2)))))))))))))
 \def
  \lambda (c1: C).(\lambda (c2: C).(\lambda (H: (csubv c1 c2)).(\lambda (b1: 
 B).(\lambda (d1: C).(\lambda (v1: T).(\lambda (i: nat).(\lambda (H0: (getl i 
-c1 (CHead d1 (Bind b1) v1))).(let TMP_1 \def (Bind b1) in (let TMP_2 \def 
-(CHead d1 TMP_1 v1) in (let H1 \def (getl_gen_all c1 TMP_2 i H0) in (let 
-TMP_3 \def (\lambda (e: C).(drop i O c1 e)) in (let TMP_6 \def (\lambda (e: 
-C).(let TMP_4 \def (Bind b1) in (let TMP_5 \def (CHead d1 TMP_4 v1) in (clear 
-e TMP_5)))) in (let TMP_7 \def (\lambda (_: B).(\lambda (d2: C).(\lambda (_: 
-T).(csubv d1 d2)))) in (let TMP_10 \def (\lambda (b2: B).(\lambda (d2: 
-C).(\lambda (v2: T).(let TMP_8 \def (Bind b2) in (let TMP_9 \def (CHead d2 
-TMP_8 v2) in (getl i c2 TMP_9)))))) in (let TMP_11 \def (ex2_3 B C T TMP_7 
-TMP_10) in (let TMP_37 \def (\lambda (x: C).(\lambda (H2: (drop i O c1 
-x)).(\lambda (H3: (clear x (CHead d1 (Bind b1) v1))).(let H_x \def 
-(csubv_drop_conf c1 c2 H x i H2) in (let H4 \def H_x in (let TMP_12 \def 
-(\lambda (e2: C).(csubv x e2)) in (let TMP_13 \def (\lambda (e2: C).(drop i O 
-c2 e2)) in (let TMP_14 \def (\lambda (_: B).(\lambda (d2: C).(\lambda (_: 
-T).(csubv d1 d2)))) in (let TMP_17 \def (\lambda (b2: B).(\lambda (d2: 
-C).(\lambda (v2: T).(let TMP_15 \def (Bind b2) in (let TMP_16 \def (CHead d2 
-TMP_15 v2) in (getl i c2 TMP_16)))))) in (let TMP_18 \def (ex2_3 B C T TMP_14 
-TMP_17) in (let TMP_36 \def (\lambda (x0: C).(\lambda (H5: (csubv x 
-x0)).(\lambda (H6: (drop i O c2 x0)).(let H_x0 \def (csubv_clear_conf x x0 H5 
-b1 d1 v1 H3) in (let H7 \def H_x0 in (let TMP_19 \def (\lambda (_: 
-B).(\lambda (d2: C).(\lambda (_: T).(csubv d1 d2)))) in (let TMP_22 \def 
-(\lambda (b2: B).(\lambda (d2: C).(\lambda (v2: T).(let TMP_20 \def (Bind b2) 
-in (let TMP_21 \def (CHead d2 TMP_20 v2) in (clear x0 TMP_21)))))) in (let 
-TMP_23 \def (\lambda (_: B).(\lambda (d2: C).(\lambda (_: T).(csubv d1 d2)))) 
-in (let TMP_26 \def (\lambda (b2: B).(\lambda (d2: C).(\lambda (v2: T).(let 
-TMP_24 \def (Bind b2) in (let TMP_25 \def (CHead d2 TMP_24 v2) in (getl i c2 
-TMP_25)))))) in (let TMP_27 \def (ex2_3 B C T TMP_23 TMP_26) in (let TMP_35 
-\def (\lambda (x1: B).(\lambda (x2: C).(\lambda (x3: T).(\lambda (H8: (csubv 
-d1 x2)).(\lambda (H9: (clear x0 (CHead x2 (Bind x1) x3))).(let TMP_28 \def 
-(\lambda (_: B).(\lambda (d2: C).(\lambda (_: T).(csubv d1 d2)))) in (let 
-TMP_31 \def (\lambda (b2: B).(\lambda (d2: C).(\lambda (v2: T).(let TMP_29 
-\def (Bind b2) in (let TMP_30 \def (CHead d2 TMP_29 v2) in (getl i c2 
-TMP_30)))))) in (let TMP_32 \def (Bind x1) in (let TMP_33 \def (CHead x2 
-TMP_32 x3) in (let TMP_34 \def (getl_intro i c2 TMP_33 x0 H6 H9) in 
-(ex2_3_intro B C T TMP_28 TMP_31 x1 x2 x3 H8 TMP_34))))))))))) in (ex2_3_ind 
-B C T TMP_19 TMP_22 TMP_27 TMP_35 H7)))))))))))) in (ex2_ind C TMP_12 TMP_13 
-TMP_18 TMP_36 H4)))))))))))) in (ex2_ind C TMP_3 TMP_6 TMP_11 TMP_37 
-H1))))))))))))))))).
+c1 (CHead d1 (Bind b1) v1))).(let H1 \def (getl_gen_all c1 (CHead d1 (Bind 
+b1) v1) i H0) in (ex2_ind C (\lambda (e: C).(drop i O c1 e)) (\lambda (e: 
+C).(clear e (CHead d1 (Bind b1) v1))) (ex2_3 B C T (\lambda (_: B).(\lambda 
+(d2: C).(\lambda (_: T).(csubv d1 d2)))) (\lambda (b2: B).(\lambda (d2: 
+C).(\lambda (v2: T).(getl i c2 (CHead d2 (Bind b2) v2)))))) (\lambda (x: 
+C).(\lambda (H2: (drop i O c1 x)).(\lambda (H3: (clear x (CHead d1 (Bind b1) 
+v1))).(let H_x \def (csubv_drop_conf c1 c2 H x i H2) in (let H4 \def H_x in 
+(ex2_ind C (\lambda (e2: C).(csubv x e2)) (\lambda (e2: C).(drop i O c2 e2)) 
+(ex2_3 B C T (\lambda (_: B).(\lambda (d2: C).(\lambda (_: T).(csubv d1 
+d2)))) (\lambda (b2: B).(\lambda (d2: C).(\lambda (v2: T).(getl i c2 (CHead 
+d2 (Bind b2) v2)))))) (\lambda (x0: C).(\lambda (H5: (csubv x x0)).(\lambda 
+(H6: (drop i O c2 x0)).(let H_x0 \def (csubv_clear_conf x x0 H5 b1 d1 v1 H3) 
+in (let H7 \def H_x0 in (ex2_3_ind B C T (\lambda (_: B).(\lambda (d2: 
+C).(\lambda (_: T).(csubv d1 d2)))) (\lambda (b2: B).(\lambda (d2: 
+C).(\lambda (v2: T).(clear x0 (CHead d2 (Bind b2) v2))))) (ex2_3 B C T 
+(\lambda (_: B).(\lambda (d2: C).(\lambda (_: T).(csubv d1 d2)))) (\lambda 
+(b2: B).(\lambda (d2: C).(\lambda (v2: T).(getl i c2 (CHead d2 (Bind b2) 
+v2)))))) (\lambda (x1: B).(\lambda (x2: C).(\lambda (x3: T).(\lambda (H8: 
+(csubv d1 x2)).(\lambda (H9: (clear x0 (CHead x2 (Bind x1) x3))).(ex2_3_intro 
+B C T (\lambda (_: B).(\lambda (d2: C).(\lambda (_: T).(csubv d1 d2)))) 
+(\lambda (b2: B).(\lambda (d2: C).(\lambda (v2: T).(getl i c2 (CHead d2 (Bind 
+b2) v2))))) x1 x2 x3 H8 (getl_intro i c2 (CHead x2 (Bind x1) x3) x0 H6 
+H9))))))) H7)))))) H4)))))) H1))))))))).
 
 theorem csubv_getl_conf_void:
  \forall (c1: C).(\forall (c2: C).((csubv c1 c2) \to (\forall (d1: 
@@ -75,38 +61,24 @@ C).(\lambda (v2: T).(getl i c2 (CHead d2 (Bind Void) v2)))))))))))
 \def
  \lambda (c1: C).(\lambda (c2: C).(\lambda (H: (csubv c1 c2)).(\lambda (d1: 
 C).(\lambda (v1: T).(\lambda (i: nat).(\lambda (H0: (getl i c1 (CHead d1 
-(Bind Void) v1))).(let TMP_1 \def (Bind Void) in (let TMP_2 \def (CHead d1 
-TMP_1 v1) in (let H1 \def (getl_gen_all c1 TMP_2 i H0) in (let TMP_3 \def 
-(\lambda (e: C).(drop i O c1 e)) in (let TMP_6 \def (\lambda (e: C).(let 
-TMP_4 \def (Bind Void) in (let TMP_5 \def (CHead d1 TMP_4 v1) in (clear e 
-TMP_5)))) in (let TMP_7 \def (\lambda (d2: C).(\lambda (_: T).(csubv d1 d2))) 
-in (let TMP_10 \def (\lambda (d2: C).(\lambda (v2: T).(let TMP_8 \def (Bind 
-Void) in (let TMP_9 \def (CHead d2 TMP_8 v2) in (getl i c2 TMP_9))))) in (let 
-TMP_11 \def (ex2_2 C T TMP_7 TMP_10) in (let TMP_37 \def (\lambda (x: 
-C).(\lambda (H2: (drop i O c1 x)).(\lambda (H3: (clear x (CHead d1 (Bind 
-Void) v1))).(let H_x \def (csubv_drop_conf c1 c2 H x i H2) in (let H4 \def 
-H_x in (let TMP_12 \def (\lambda (e2: C).(csubv x e2)) in (let TMP_13 \def 
-(\lambda (e2: C).(drop i O c2 e2)) in (let TMP_14 \def (\lambda (d2: 
-C).(\lambda (_: T).(csubv d1 d2))) in (let TMP_17 \def (\lambda (d2: 
-C).(\lambda (v2: T).(let TMP_15 \def (Bind Void) in (let TMP_16 \def (CHead 
-d2 TMP_15 v2) in (getl i c2 TMP_16))))) in (let TMP_18 \def (ex2_2 C T TMP_14 
-TMP_17) in (let TMP_36 \def (\lambda (x0: C).(\lambda (H5: (csubv x 
-x0)).(\lambda (H6: (drop i O c2 x0)).(let H_x0 \def (csubv_clear_conf_void x 
-x0 H5 d1 v1 H3) in (let H7 \def H_x0 in (let TMP_19 \def (\lambda (d2: 
-C).(\lambda (_: T).(csubv d1 d2))) in (let TMP_22 \def (\lambda (d2: 
-C).(\lambda (v2: T).(let TMP_20 \def (Bind Void) in (let TMP_21 \def (CHead 
-d2 TMP_20 v2) in (clear x0 TMP_21))))) in (let TMP_23 \def (\lambda (d2: 
-C).(\lambda (_: T).(csubv d1 d2))) in (let TMP_26 \def (\lambda (d2: 
-C).(\lambda (v2: T).(let TMP_24 \def (Bind Void) in (let TMP_25 \def (CHead 
-d2 TMP_24 v2) in (getl i c2 TMP_25))))) in (let TMP_27 \def (ex2_2 C T TMP_23 
-TMP_26) in (let TMP_35 \def (\lambda (x1: C).(\lambda (x2: T).(\lambda (H8: 
-(csubv d1 x1)).(\lambda (H9: (clear x0 (CHead x1 (Bind Void) x2))).(let 
-TMP_28 \def (\lambda (d2: C).(\lambda (_: T).(csubv d1 d2))) in (let TMP_31 
-\def (\lambda (d2: C).(\lambda (v2: T).(let TMP_29 \def (Bind Void) in (let 
-TMP_30 \def (CHead d2 TMP_29 v2) in (getl i c2 TMP_30))))) in (let TMP_32 
-\def (Bind Void) in (let TMP_33 \def (CHead x1 TMP_32 x2) in (let TMP_34 \def 
-(getl_intro i c2 TMP_33 x0 H6 H9) in (ex2_2_intro C T TMP_28 TMP_31 x1 x2 H8 
-TMP_34)))))))))) in (ex2_2_ind C T TMP_19 TMP_22 TMP_27 TMP_35 H7)))))))))))) 
-in (ex2_ind C TMP_12 TMP_13 TMP_18 TMP_36 H4)))))))))))) in (ex2_ind C TMP_3 
-TMP_6 TMP_11 TMP_37 H1)))))))))))))))).
+(Bind Void) v1))).(let H1 \def (getl_gen_all c1 (CHead d1 (Bind Void) v1) i 
+H0) in (ex2_ind C (\lambda (e: C).(drop i O c1 e)) (\lambda (e: C).(clear e 
+(CHead d1 (Bind Void) v1))) (ex2_2 C T (\lambda (d2: C).(\lambda (_: 
+T).(csubv d1 d2))) (\lambda (d2: C).(\lambda (v2: T).(getl i c2 (CHead d2 
+(Bind Void) v2))))) (\lambda (x: C).(\lambda (H2: (drop i O c1 x)).(\lambda 
+(H3: (clear x (CHead d1 (Bind Void) v1))).(let H_x \def (csubv_drop_conf c1 
+c2 H x i H2) in (let H4 \def H_x in (ex2_ind C (\lambda (e2: C).(csubv x e2)) 
+(\lambda (e2: C).(drop i O c2 e2)) (ex2_2 C T (\lambda (d2: C).(\lambda (_: 
+T).(csubv d1 d2))) (\lambda (d2: C).(\lambda (v2: T).(getl i c2 (CHead d2 
+(Bind Void) v2))))) (\lambda (x0: C).(\lambda (H5: (csubv x x0)).(\lambda 
+(H6: (drop i O c2 x0)).(let H_x0 \def (csubv_clear_conf_void x x0 H5 d1 v1 
+H3) in (let H7 \def H_x0 in (ex2_2_ind C T (\lambda (d2: C).(\lambda (_: 
+T).(csubv d1 d2))) (\lambda (d2: C).(\lambda (v2: T).(clear x0 (CHead d2 
+(Bind Void) v2)))) (ex2_2 C T (\lambda (d2: C).(\lambda (_: T).(csubv d1 
+d2))) (\lambda (d2: C).(\lambda (v2: T).(getl i c2 (CHead d2 (Bind Void) 
+v2))))) (\lambda (x1: C).(\lambda (x2: T).(\lambda (H8: (csubv d1 
+x1)).(\lambda (H9: (clear x0 (CHead x1 (Bind Void) x2))).(ex2_2_intro C T 
+(\lambda (d2: C).(\lambda (_: T).(csubv d1 d2))) (\lambda (d2: C).(\lambda 
+(v2: T).(getl i c2 (CHead d2 (Bind Void) v2)))) x1 x2 H8 (getl_intro i c2 
+(CHead x1 (Bind Void) x2) x0 H6 H9)))))) H7)))))) H4)))))) H1)))))))).
 
index a7e04739a1ebe55375ba469ffdcb6e53ee933d05..82dc44057db511c106adb30715433361c923aeed 100644 (file)
@@ -26,24 +26,18 @@ theorem csubv_bind_same:
 v2)))))))
 \def
  \lambda (c1: C).(\lambda (c2: C).(\lambda (H: (csubv c1 c2)).(\lambda (b: 
-B).(let TMP_5 \def (\lambda (b0: B).(\forall (v1: T).(\forall (v2: T).(let 
-TMP_1 \def (Bind b0) in (let TMP_2 \def (CHead c1 TMP_1 v1) in (let TMP_3 
-\def (Bind b0) in (let TMP_4 \def (CHead c2 TMP_3 v2) in (csubv TMP_2 
-TMP_4)))))))) in (let TMP_6 \def (\lambda (v1: T).(\lambda (v2: 
-T).(csubv_bind c1 c2 H Abbr not_abbr_void Abbr v1 v2))) in (let TMP_7 \def 
-(\lambda (v1: T).(\lambda (v2: T).(csubv_bind c1 c2 H Abst not_abst_void Abst 
-v1 v2))) in (let TMP_8 \def (\lambda (v1: T).(\lambda (v2: T).(csubv_void c1 
-c2 H v1 v2))) in (B_ind TMP_5 TMP_6 TMP_7 TMP_8 b)))))))).
+B).(B_ind (\lambda (b0: B).(\forall (v1: T).(\forall (v2: T).(csubv (CHead c1 
+(Bind b0) v1) (CHead c2 (Bind b0) v2))))) (\lambda (v1: T).(\lambda (v2: 
+T).(csubv_bind c1 c2 H Abbr not_abbr_void Abbr v1 v2))) (\lambda (v1: 
+T).(\lambda (v2: T).(csubv_bind c1 c2 H Abst not_abst_void Abst v1 v2))) 
+(\lambda (v1: T).(\lambda (v2: T).(csubv_void c1 c2 H v1 v2))) b)))).
 
 theorem csubv_refl:
  \forall (c: C).(csubv c c)
 \def
- \lambda (c: C).(let TMP_1 \def (\lambda (c0: C).(csubv c0 c0)) in (let TMP_2 
-\def (\lambda (n: nat).(csubv_sort n)) in (let TMP_8 \def (\lambda (c0: 
-C).(\lambda (H: (csubv c0 c0)).(\lambda (k: K).(let TMP_5 \def (\lambda (k0: 
-K).(\forall (t: T).(let TMP_3 \def (CHead c0 k0 t) in (let TMP_4 \def (CHead 
-c0 k0 t) in (csubv TMP_3 TMP_4))))) in (let TMP_6 \def (\lambda (b: 
-B).(\lambda (t: T).(csubv_bind_same c0 c0 H b t t))) in (let TMP_7 \def 
-(\lambda (f: F).(\lambda (t: T).(csubv_flat c0 c0 H f f t t))) in (K_ind 
-TMP_5 TMP_6 TMP_7 k))))))) in (C_ind TMP_1 TMP_2 TMP_8 c)))).
+ \lambda (c: C).(C_ind (\lambda (c0: C).(csubv c0 c0)) (\lambda (n: 
+nat).(csubv_sort n)) (\lambda (c0: C).(\lambda (H: (csubv c0 c0)).(\lambda 
+(k: K).(K_ind (\lambda (k0: K).(\forall (t: T).(csubv (CHead c0 k0 t) (CHead 
+c0 k0 t)))) (\lambda (b: B).(\lambda (t: T).(csubv_bind_same c0 c0 H b t t))) 
+(\lambda (f: F).(\lambda (t: T).(csubv_flat c0 c0 H f f t t))) k)))) c).
 
index a690bbd6fdcda85eacaeb4dbf4486d90a181e5b8..f4dacaf2039c182d5175c51cdb5624963a43a49f 100644 (file)
@@ -30,231 +30,148 @@ nat).(\forall (d: nat).(\forall (c: C).(\forall (e: C).((drop h (r k d) c e)
 \to ((P h (r k d) c e) \to (\forall (u: T).(P h (S d) (CHead c k (lift h (r k 
 d) u)) (CHead e k u))))))))))) (n: nat) (n0: nat) (c: C) (c0: C) (d: drop n 
 n0 c c0) on d: P n n0 c c0 \def match d with [(drop_refl c1) \Rightarrow (f 
-c1) | (drop_drop k h c1 e d0 u) \Rightarrow (let TMP_3 \def (r k h) in (let 
-TMP_4 \def ((drop_ind P f f0 f1) TMP_3 O c1 e d0) in (f0 k h c1 e d0 TMP_4 
-u))) | (drop_skip k h d0 c1 e d1 u) \Rightarrow (let TMP_1 \def (r k d0) in 
-(let TMP_2 \def ((drop_ind P f f0 f1) h TMP_1 c1 e d1) in (f1 k h d0 c1 e d1 
-TMP_2 u)))].
+c1) | (drop_drop k h c1 e d0 u) \Rightarrow (f0 k h c1 e d0 ((drop_ind P f f0 
+f1) (r k h) O c1 e d0) u) | (drop_skip k h d0 c1 e d1 u) \Rightarrow (f1 k h 
+d0 c1 e d1 ((drop_ind P f f0 f1) h (r k d0) c1 e d1) u)].
 
 theorem drop_gen_sort:
  \forall (n: nat).(\forall (h: nat).(\forall (d: nat).(\forall (x: C).((drop 
 h d (CSort n) x) \to (and3 (eq C x (CSort n)) (eq nat h O) (eq nat d O))))))
 \def
  \lambda (n: nat).(\lambda (h: nat).(\lambda (d: nat).(\lambda (x: 
-C).(\lambda (H: (drop h d (CSort n) x)).(let TMP_1 \def (CSort n) in (let 
-TMP_2 \def (\lambda (c: C).(drop h d c x)) in (let TMP_6 \def (\lambda (c: 
-C).(let TMP_3 \def (eq C x c) in (let TMP_4 \def (eq nat h O) in (let TMP_5 
-\def (eq nat d O) in (and3 TMP_3 TMP_4 TMP_5))))) in (let TMP_54 \def 
-(\lambda (y: C).(\lambda (H0: (drop h d y x)).(let TMP_10 \def (\lambda (n0: 
+C).(\lambda (H: (drop h d (CSort n) x)).(insert_eq C (CSort n) (\lambda (c: 
+C).(drop h d c x)) (\lambda (c: C).(and3 (eq C x c) (eq nat h O) (eq nat d 
+O))) (\lambda (y: C).(\lambda (H0: (drop h d y x)).(drop_ind (\lambda (n0: 
 nat).(\lambda (n1: nat).(\lambda (c: C).(\lambda (c0: C).((eq C c (CSort n)) 
-\to (let TMP_7 \def (eq C c0 c) in (let TMP_8 \def (eq nat n0 O) in (let 
-TMP_9 \def (eq nat n1 O) in (and3 TMP_7 TMP_8 TMP_9))))))))) in (let TMP_28 
-\def (\lambda (c: C).(\lambda (H1: (eq C c (CSort n))).(let TMP_11 \def 
-(\lambda (e: C).e) in (let TMP_12 \def (CSort n) in (let H2 \def (f_equal C C 
-TMP_11 c TMP_12 H1) in (let TMP_13 \def (CSort n) in (let TMP_17 \def 
-(\lambda (c0: C).(let TMP_14 \def (eq C c0 c0) in (let TMP_15 \def (eq nat O 
-O) in (let TMP_16 \def (eq nat O O) in (and3 TMP_14 TMP_15 TMP_16))))) in 
-(let TMP_18 \def (CSort n) in (let TMP_19 \def (CSort n) in (let TMP_20 \def 
-(eq C TMP_18 TMP_19) in (let TMP_21 \def (eq nat O O) in (let TMP_22 \def (eq 
-nat O O) in (let TMP_23 \def (CSort n) in (let TMP_24 \def (refl_equal C 
-TMP_23) in (let TMP_25 \def (refl_equal nat O) in (let TMP_26 \def 
-(refl_equal nat O) in (let TMP_27 \def (and3_intro TMP_20 TMP_21 TMP_22 
-TMP_24 TMP_25 TMP_26) in (eq_ind_r C TMP_13 TMP_17 TMP_27 c 
-H2)))))))))))))))))) in (let TMP_38 \def (\lambda (k: K).(\lambda (h0: 
-nat).(\lambda (c: C).(\lambda (e: C).(\lambda (_: (drop (r k h0) O c 
-e)).(\lambda (_: (((eq C c (CSort n)) \to (and3 (eq C e c) (eq nat (r k h0) 
-O) (eq nat O O))))).(\lambda (u: T).(\lambda (H3: (eq C (CHead c k u) (CSort 
-n))).(let TMP_29 \def (CHead c k u) in (let TMP_30 \def (\lambda (ee: 
-C).(match ee with [(CSort _) \Rightarrow False | (CHead _ _ _) \Rightarrow 
-True])) in (let TMP_31 \def (CSort n) in (let H4 \def (eq_ind C TMP_29 TMP_30 
-I TMP_31 H3) in (let TMP_32 \def (CHead c k u) in (let TMP_33 \def (eq C e 
-TMP_32) in (let TMP_34 \def (S h0) in (let TMP_35 \def (eq nat TMP_34 O) in 
-(let TMP_36 \def (eq nat O O) in (let TMP_37 \def (and3 TMP_33 TMP_35 TMP_36) 
-in (False_ind TMP_37 H4))))))))))))))))))) in (let TMP_53 \def (\lambda (k: 
+\to (and3 (eq C c0 c) (eq nat n0 O) (eq nat n1 O))))))) (\lambda (c: 
+C).(\lambda (H1: (eq C c (CSort n))).(let H2 \def (f_equal C C (\lambda (e: 
+C).e) c (CSort n) H1) in (eq_ind_r C (CSort n) (\lambda (c0: C).(and3 (eq C 
+c0 c0) (eq nat O O) (eq nat O O))) (and3_intro (eq C (CSort n) (CSort n)) (eq 
+nat O O) (eq nat O O) (refl_equal C (CSort n)) (refl_equal nat O) (refl_equal 
+nat O)) c H2)))) (\lambda (k: K).(\lambda (h0: nat).(\lambda (c: C).(\lambda 
+(e: C).(\lambda (_: (drop (r k h0) O c e)).(\lambda (_: (((eq C c (CSort n)) 
+\to (and3 (eq C e c) (eq nat (r k h0) O) (eq nat O O))))).(\lambda (u: 
+T).(\lambda (H3: (eq C (CHead c k u) (CSort n))).(let H4 \def (eq_ind C 
+(CHead c k u) (\lambda (ee: C).(match ee with [(CSort _) \Rightarrow False | 
+(CHead _ _ _) \Rightarrow True])) I (CSort n) H3) in (False_ind (and3 (eq C e 
+(CHead c k u)) (eq nat (S h0) O) (eq nat O O)) H4)))))))))) (\lambda (k: 
 K).(\lambda (h0: nat).(\lambda (d0: nat).(\lambda (c: C).(\lambda (e: 
 C).(\lambda (_: (drop h0 (r k d0) c e)).(\lambda (_: (((eq C c (CSort n)) \to 
 (and3 (eq C e c) (eq nat h0 O) (eq nat (r k d0) O))))).(\lambda (u: 
-T).(\lambda (H3: (eq C (CHead c k (lift h0 (r k d0) u)) (CSort n))).(let 
-TMP_39 \def (r k d0) in (let TMP_40 \def (lift h0 TMP_39 u) in (let TMP_41 
-\def (CHead c k TMP_40) in (let TMP_42 \def (\lambda (ee: C).(match ee with 
-[(CSort _) \Rightarrow False | (CHead _ _ _) \Rightarrow True])) in (let 
-TMP_43 \def (CSort n) in (let H4 \def (eq_ind C TMP_41 TMP_42 I TMP_43 H3) in 
-(let TMP_44 \def (CHead e k u) in (let TMP_45 \def (r k d0) in (let TMP_46 
-\def (lift h0 TMP_45 u) in (let TMP_47 \def (CHead c k TMP_46) in (let TMP_48 
-\def (eq C TMP_44 TMP_47) in (let TMP_49 \def (eq nat h0 O) in (let TMP_50 
-\def (S d0) in (let TMP_51 \def (eq nat TMP_50 O) in (let TMP_52 \def (and3 
-TMP_48 TMP_49 TMP_51) in (False_ind TMP_52 H4))))))))))))))))))))))))) in 
-(drop_ind TMP_10 TMP_28 TMP_38 TMP_53 h d y x H0))))))) in (insert_eq C TMP_1 
-TMP_2 TMP_6 TMP_54 H))))))))).
+T).(\lambda (H3: (eq C (CHead c k (lift h0 (r k d0) u)) (CSort n))).(let H4 
+\def (eq_ind C (CHead c k (lift h0 (r k d0) u)) (\lambda (ee: C).(match ee 
+with [(CSort _) \Rightarrow False | (CHead _ _ _) \Rightarrow True])) I 
+(CSort n) H3) in (False_ind (and3 (eq C (CHead e k u) (CHead c k (lift h0 (r 
+k d0) u))) (eq nat h0 O) (eq nat (S d0) O)) H4))))))))))) h d y x H0))) 
+H))))).
 
 theorem drop_gen_refl:
  \forall (x: C).(\forall (e: C).((drop O O x e) \to (eq C x e)))
 \def
- \lambda (x: C).(\lambda (e: C).(\lambda (H: (drop O O x e)).(let TMP_1 \def 
-(\lambda (n: nat).(drop n O x e)) in (let TMP_2 \def (\lambda (_: nat).(eq C 
-x e)) in (let TMP_36 \def (\lambda (y: nat).(\lambda (H0: (drop y O x 
-e)).(let TMP_3 \def (\lambda (n: nat).(drop y n x e)) in (let TMP_4 \def 
-(\lambda (n: nat).((eq nat y n) \to (eq C x e))) in (let TMP_35 \def (\lambda 
-(y0: nat).(\lambda (H1: (drop y y0 x e)).(let TMP_5 \def (\lambda (n: 
-nat).(\lambda (n0: nat).(\lambda (c: C).(\lambda (c0: C).((eq nat n0 O) \to 
-((eq nat n n0) \to (eq C c c0))))))) in (let TMP_6 \def (\lambda (c: 
-C).(\lambda (_: (eq nat O O)).(\lambda (_: (eq nat O O)).(refl_equal C c)))) 
-in (let TMP_11 \def (\lambda (k: K).(\lambda (h: nat).(\lambda (c: 
+ \lambda (x: C).(\lambda (e: C).(\lambda (H: (drop O O x e)).(insert_eq nat O 
+(\lambda (n: nat).(drop n O x e)) (\lambda (_: nat).(eq C x e)) (\lambda (y: 
+nat).(\lambda (H0: (drop y O x e)).(insert_eq nat O (\lambda (n: nat).(drop y 
+n x e)) (\lambda (n: nat).((eq nat y n) \to (eq C x e))) (\lambda (y0: 
+nat).(\lambda (H1: (drop y y0 x e)).(drop_ind (\lambda (n: nat).(\lambda (n0: 
+nat).(\lambda (c: C).(\lambda (c0: C).((eq nat n0 O) \to ((eq nat n n0) \to 
+(eq C c c0))))))) (\lambda (c: C).(\lambda (_: (eq nat O O)).(\lambda (_: (eq 
+nat O O)).(refl_equal C c)))) (\lambda (k: K).(\lambda (h: nat).(\lambda (c: 
 C).(\lambda (e0: C).(\lambda (_: (drop (r k h) O c e0)).(\lambda (_: (((eq 
 nat O O) \to ((eq nat (r k h) O) \to (eq C c e0))))).(\lambda (u: T).(\lambda 
-(_: (eq nat O O)).(\lambda (H5: (eq nat (S h) O)).(let TMP_7 \def (S h) in 
-(let TMP_8 \def (\lambda (ee: nat).(match ee with [O \Rightarrow False | (S 
-_) \Rightarrow True])) in (let H6 \def (eq_ind nat TMP_7 TMP_8 I O H5) in 
-(let TMP_9 \def (CHead c k u) in (let TMP_10 \def (eq C TMP_9 e0) in 
-(False_ind TMP_10 H6))))))))))))))) in (let TMP_34 \def (\lambda (k: 
-K).(\lambda (h: nat).(\lambda (d: nat).(\lambda (c: C).(\lambda (e0: 
+(_: (eq nat O O)).(\lambda (H5: (eq nat (S h) O)).(let H6 \def (eq_ind nat (S 
+h) (\lambda (ee: nat).(match ee with [O \Rightarrow False | (S _) \Rightarrow 
+True])) I O H5) in (False_ind (eq C (CHead c k u) e0) H6))))))))))) (\lambda 
+(k: K).(\lambda (h: nat).(\lambda (d: nat).(\lambda (c: C).(\lambda (e0: 
 C).(\lambda (H2: (drop h (r k d) c e0)).(\lambda (H3: (((eq nat (r k d) O) 
 \to ((eq nat h (r k d)) \to (eq C c e0))))).(\lambda (u: T).(\lambda (H4: (eq 
-nat (S d) O)).(\lambda (H5: (eq nat h (S d))).(let TMP_12 \def (\lambda (e1: 
-nat).e1) in (let TMP_13 \def (S d) in (let H6 \def (f_equal nat nat TMP_12 h 
-TMP_13 H5) in (let TMP_14 \def (\lambda (n: nat).((eq nat (r k d) O) \to ((eq 
-nat n (r k d)) \to (eq C c e0)))) in (let TMP_15 \def (S d) in (let H7 \def 
-(eq_ind nat h TMP_14 H3 TMP_15 H6) in (let TMP_17 \def (\lambda (n: nat).(let 
-TMP_16 \def (r k d) in (drop n TMP_16 c e0))) in (let TMP_18 \def (S d) in 
-(let H8 \def (eq_ind nat h TMP_17 H2 TMP_18 H6) in (let TMP_19 \def (S d) in 
-(let TMP_24 \def (\lambda (n: nat).(let TMP_20 \def (r k d) in (let TMP_21 
-\def (lift n TMP_20 u) in (let TMP_22 \def (CHead c k TMP_21) in (let TMP_23 
-\def (CHead e0 k u) in (eq C TMP_22 TMP_23)))))) in (let TMP_25 \def (S d) in 
-(let TMP_26 \def (\lambda (ee: nat).(match ee with [O \Rightarrow False | (S 
-_) \Rightarrow True])) in (let H9 \def (eq_ind nat TMP_25 TMP_26 I O H4) in 
-(let TMP_27 \def (S d) in (let TMP_28 \def (r k d) in (let TMP_29 \def (lift 
-TMP_27 TMP_28 u) in (let TMP_30 \def (CHead c k TMP_29) in (let TMP_31 \def 
-(CHead e0 k u) in (let TMP_32 \def (eq C TMP_30 TMP_31) in (let TMP_33 \def 
-(False_ind TMP_32 H9) in (eq_ind_r nat TMP_19 TMP_24 TMP_33 h 
-H6)))))))))))))))))))))))))))))))) in (drop_ind TMP_5 TMP_6 TMP_11 TMP_34 y 
-y0 x e H1))))))) in (insert_eq nat O TMP_3 TMP_4 TMP_35 H0)))))) in 
-(insert_eq nat O TMP_1 TMP_2 TMP_36 H)))))).
+nat (S d) O)).(\lambda (H5: (eq nat h (S d))).(let H6 \def (f_equal nat nat 
+(\lambda (e1: nat).e1) h (S d) H5) in (let H7 \def (eq_ind nat h (\lambda (n: 
+nat).((eq nat (r k d) O) \to ((eq nat n (r k d)) \to (eq C c e0)))) H3 (S d) 
+H6) in (let H8 \def (eq_ind nat h (\lambda (n: nat).(drop n (r k d) c e0)) H2 
+(S d) H6) in (eq_ind_r nat (S d) (\lambda (n: nat).(eq C (CHead c k (lift n 
+(r k d) u)) (CHead e0 k u))) (let H9 \def (eq_ind nat (S d) (\lambda (ee: 
+nat).(match ee with [O \Rightarrow False | (S _) \Rightarrow True])) I O H4) 
+in (False_ind (eq C (CHead c k (lift (S d) (r k d) u)) (CHead e0 k u)) H9)) h 
+H6)))))))))))))) y y0 x e H1))) H0))) H))).
 
 theorem drop_gen_drop:
  \forall (k: K).(\forall (c: C).(\forall (x: C).(\forall (u: T).(\forall (h: 
 nat).((drop (S h) O (CHead c k u) x) \to (drop (r k h) O c x))))))
 \def
  \lambda (k: K).(\lambda (c: C).(\lambda (x: C).(\lambda (u: T).(\lambda (h: 
-nat).(\lambda (H: (drop (S h) O (CHead c k u) x)).(let TMP_1 \def (CHead c k 
-u) in (let TMP_3 \def (\lambda (c0: C).(let TMP_2 \def (S h) in (drop TMP_2 O 
-c0 x))) in (let TMP_5 \def (\lambda (_: C).(let TMP_4 \def (r k h) in (drop 
-TMP_4 O c x))) in (let TMP_130 \def (\lambda (y: C).(\lambda (H0: (drop (S h) 
-O y x)).(let TMP_7 \def (\lambda (n: nat).(let TMP_6 \def (S h) in (drop 
-TMP_6 n y x))) in (let TMP_9 \def (\lambda (n: nat).((eq C y (CHead c k u)) 
-\to (let TMP_8 \def (r k h) in (drop TMP_8 n c x)))) in (let TMP_129 \def 
-(\lambda (y0: nat).(\lambda (H1: (drop (S h) y0 y x)).(let TMP_10 \def (S h) 
-in (let TMP_11 \def (\lambda (n: nat).(drop n y0 y x)) in (let TMP_13 \def 
-(\lambda (_: nat).((eq nat y0 O) \to ((eq C y (CHead c k u)) \to (let TMP_12 
-\def (r k h) in (drop TMP_12 y0 c x))))) in (let TMP_128 \def (\lambda (y1: 
-nat).(\lambda (H2: (drop y1 y0 y x)).(let TMP_15 \def (\lambda (n: 
+nat).(\lambda (H: (drop (S h) O (CHead c k u) x)).(insert_eq C (CHead c k u) 
+(\lambda (c0: C).(drop (S h) O c0 x)) (\lambda (_: C).(drop (r k h) O c x)) 
+(\lambda (y: C).(\lambda (H0: (drop (S h) O y x)).(insert_eq nat O (\lambda 
+(n: nat).(drop (S h) n y x)) (\lambda (n: nat).((eq C y (CHead c k u)) \to 
+(drop (r k h) n c x))) (\lambda (y0: nat).(\lambda (H1: (drop (S h) y0 y 
+x)).(insert_eq nat (S h) (\lambda (n: nat).(drop n y0 y x)) (\lambda (_: 
+nat).((eq nat y0 O) \to ((eq C y (CHead c k u)) \to (drop (r k h) y0 c x)))) 
+(\lambda (y1: nat).(\lambda (H2: (drop y1 y0 y x)).(drop_ind (\lambda (n: 
 nat).(\lambda (n0: nat).(\lambda (c0: C).(\lambda (c1: C).((eq nat n (S h)) 
-\to ((eq nat n0 O) \to ((eq C c0 (CHead c k u)) \to (let TMP_14 \def (r k h) 
-in (drop TMP_14 n0 c c1))))))))) in (let TMP_25 \def (\lambda (c0: 
-C).(\lambda (H3: (eq nat O (S h))).(\lambda (_: (eq nat O O)).(\lambda (H5: 
-(eq C c0 (CHead c k u))).(let TMP_16 \def (CHead c k u) in (let TMP_18 \def 
-(\lambda (c1: C).(let TMP_17 \def (r k h) in (drop TMP_17 O c c1))) in (let 
-TMP_19 \def (\lambda (ee: nat).(match ee with [O \Rightarrow True | (S _) 
-\Rightarrow False])) in (let TMP_20 \def (S h) in (let H6 \def (eq_ind nat O 
-TMP_19 I TMP_20 H3) in (let TMP_21 \def (r k h) in (let TMP_22 \def (CHead c 
-k u) in (let TMP_23 \def (drop TMP_21 O c TMP_22) in (let TMP_24 \def 
-(False_ind TMP_23 H6) in (eq_ind_r C TMP_16 TMP_18 TMP_24 c0 H5)))))))))))))) 
-in (let TMP_52 \def (\lambda (k0: K).(\lambda (h0: nat).(\lambda (c0: 
-C).(\lambda (e: C).(\lambda (H3: (drop (r k0 h0) O c0 e)).(\lambda (H4: (((eq 
-nat (r k0 h0) (S h)) \to ((eq nat O O) \to ((eq C c0 (CHead c k u)) \to (drop 
-(r k h) O c e)))))).(\lambda (u0: T).(\lambda (H5: (eq nat (S h0) (S 
-h))).(\lambda (_: (eq nat O O)).(\lambda (H7: (eq C (CHead c0 k0 u0) (CHead c 
-k u))).(let TMP_26 \def (\lambda (e0: C).(match e0 with [(CSort _) 
-\Rightarrow c0 | (CHead c1 _ _) \Rightarrow c1])) in (let TMP_27 \def (CHead 
-c0 k0 u0) in (let TMP_28 \def (CHead c k u) in (let H8 \def (f_equal C C 
-TMP_26 TMP_27 TMP_28 H7) in (let TMP_29 \def (\lambda (e0: C).(match e0 with 
-[(CSort _) \Rightarrow k0 | (CHead _ k1 _) \Rightarrow k1])) in (let TMP_30 
-\def (CHead c0 k0 u0) in (let TMP_31 \def (CHead c k u) in (let H9 \def 
-(f_equal C K TMP_29 TMP_30 TMP_31 H7) in (let TMP_32 \def (\lambda (e0: 
-C).(match e0 with [(CSort _) \Rightarrow u0 | (CHead _ _ t) \Rightarrow t])) 
-in (let TMP_33 \def (CHead c0 k0 u0) in (let TMP_34 \def (CHead c k u) in 
-(let H10 \def (f_equal C T TMP_32 TMP_33 TMP_34 H7) in (let TMP_50 \def 
-(\lambda (H11: (eq K k0 k)).(\lambda (H12: (eq C c0 c)).(let TMP_36 \def 
-(\lambda (c1: C).((eq nat (r k0 h0) (S h)) \to ((eq nat O O) \to ((eq C c1 
-(CHead c k u)) \to (let TMP_35 \def (r k h) in (drop TMP_35 O c e)))))) in 
-(let H13 \def (eq_ind C c0 TMP_36 H4 c H12) in (let TMP_38 \def (\lambda (c1: 
-C).(let TMP_37 \def (r k0 h0) in (drop TMP_37 O c1 e))) in (let H14 \def 
-(eq_ind C c0 TMP_38 H3 c H12) in (let TMP_40 \def (\lambda (k1: K).((eq nat 
-(r k1 h0) (S h)) \to ((eq nat O O) \to ((eq C c (CHead c k u)) \to (let 
-TMP_39 \def (r k h) in (drop TMP_39 O c e)))))) in (let H15 \def (eq_ind K k0 
-TMP_40 H13 k H11) in (let TMP_42 \def (\lambda (k1: K).(let TMP_41 \def (r k1 
-h0) in (drop TMP_41 O c e))) in (let H16 \def (eq_ind K k0 TMP_42 H14 k H11) 
-in (let TMP_43 \def (\lambda (e0: nat).(match e0 with [O \Rightarrow h0 | (S 
-n) \Rightarrow n])) in (let TMP_44 \def (S h0) in (let TMP_45 \def (S h) in 
-(let H17 \def (f_equal nat nat TMP_43 TMP_44 TMP_45 H5) in (let TMP_47 \def 
-(\lambda (n: nat).((eq nat (r k n) (S h)) \to ((eq nat O O) \to ((eq C c 
-(CHead c k u)) \to (let TMP_46 \def (r k h) in (drop TMP_46 O c e)))))) in 
-(let H18 \def (eq_ind nat h0 TMP_47 H15 h H17) in (let TMP_49 \def (\lambda 
-(n: nat).(let TMP_48 \def (r k n) in (drop TMP_48 O c e))) in (let H19 \def 
-(eq_ind nat h0 TMP_49 H16 h H17) in H19)))))))))))))))))) in (let TMP_51 \def 
-(TMP_50 H9) in (TMP_51 H8))))))))))))))))))))))))) in (let TMP_127 \def 
-(\lambda (k0: K).(\lambda (h0: nat).(\lambda (d: nat).(\lambda (c0: 
-C).(\lambda (e: C).(\lambda (H3: (drop h0 (r k0 d) c0 e)).(\lambda (H4: (((eq 
-nat h0 (S h)) \to ((eq nat (r k0 d) O) \to ((eq C c0 (CHead c k u)) \to (drop 
-(r k h) (r k0 d) c e)))))).(\lambda (u0: T).(\lambda (H5: (eq nat h0 (S 
-h))).(\lambda (H6: (eq nat (S d) O)).(\lambda (H7: (eq C (CHead c0 k0 (lift 
-h0 (r k0 d) u0)) (CHead c k u))).(let TMP_57 \def (\lambda (n: nat).(let 
-TMP_53 \def (r k0 d) in (let TMP_54 \def (lift n TMP_53 u0) in (let TMP_55 
-\def (CHead c0 k0 TMP_54) in (let TMP_56 \def (CHead c k u) in (eq C TMP_55 
-TMP_56)))))) in (let TMP_58 \def (S h) in (let H8 \def (eq_ind nat h0 TMP_57 
-H7 TMP_58 H5) in (let TMP_61 \def (\lambda (n: nat).((eq nat n (S h)) \to 
-((eq nat (r k0 d) O) \to ((eq C c0 (CHead c k u)) \to (let TMP_59 \def (r k 
-h) in (let TMP_60 \def (r k0 d) in (drop TMP_59 TMP_60 c e))))))) in (let 
-TMP_62 \def (S h) in (let H9 \def (eq_ind nat h0 TMP_61 H4 TMP_62 H5) in (let 
-TMP_64 \def (\lambda (n: nat).(let TMP_63 \def (r k0 d) in (drop n TMP_63 c0 
-e))) in (let TMP_65 \def (S h) in (let H10 \def (eq_ind nat h0 TMP_64 H3 
-TMP_65 H5) in (let TMP_66 \def (\lambda (e0: C).(match e0 with [(CSort _) 
-\Rightarrow c0 | (CHead c1 _ _) \Rightarrow c1])) in (let TMP_67 \def (S h) 
-in (let TMP_68 \def (r k0 d) in (let TMP_69 \def (lift TMP_67 TMP_68 u0) in 
-(let TMP_70 \def (CHead c0 k0 TMP_69) in (let TMP_71 \def (CHead c k u) in 
-(let H11 \def (f_equal C C TMP_66 TMP_70 TMP_71 H8) in (let TMP_72 \def 
-(\lambda (e0: C).(match e0 with [(CSort _) \Rightarrow k0 | (CHead _ k1 _) 
-\Rightarrow k1])) in (let TMP_73 \def (S h) in (let TMP_74 \def (r k0 d) in 
-(let TMP_75 \def (lift TMP_73 TMP_74 u0) in (let TMP_76 \def (CHead c0 k0 
-TMP_75) in (let TMP_77 \def (CHead c k u) in (let H12 \def (f_equal C K 
-TMP_72 TMP_76 TMP_77 H8) in (let TMP_86 \def (\lambda (e0: C).(match e0 with 
-[(CSort _) \Rightarrow (let TMP_84 \def (\lambda (x0: nat).(let TMP_83 \def 
-(S h) in (plus x0 TMP_83))) in (let TMP_85 \def (r k0 d) in (lref_map TMP_84 
-TMP_85 u0))) | (CHead _ _ t) \Rightarrow t])) in (let TMP_87 \def (S h) in 
-(let TMP_88 \def (r k0 d) in (let TMP_89 \def (lift TMP_87 TMP_88 u0) in (let 
-TMP_90 \def (CHead c0 k0 TMP_89) in (let TMP_91 \def (CHead c k u) in (let 
-H13 \def (f_equal C T TMP_86 TMP_90 TMP_91 H8) in (let TMP_125 \def (\lambda 
-(H14: (eq K k0 k)).(\lambda (H15: (eq C c0 c)).(let TMP_94 \def (\lambda (c1: 
-C).((eq nat (S h) (S h)) \to ((eq nat (r k0 d) O) \to ((eq C c1 (CHead c k 
-u)) \to (let TMP_92 \def (r k h) in (let TMP_93 \def (r k0 d) in (drop TMP_92 
-TMP_93 c e))))))) in (let H16 \def (eq_ind C c0 TMP_94 H9 c H15) in (let 
-TMP_97 \def (\lambda (c1: C).(let TMP_95 \def (S h) in (let TMP_96 \def (r k0 
-d) in (drop TMP_95 TMP_96 c1 e)))) in (let H17 \def (eq_ind C c0 TMP_97 H10 c 
-H15) in (let TMP_101 \def (\lambda (k1: K).(let TMP_98 \def (S h) in (let 
-TMP_99 \def (r k1 d) in (let TMP_100 \def (lift TMP_98 TMP_99 u0) in (eq T 
-TMP_100 u))))) in (let H18 \def (eq_ind K k0 TMP_101 H13 k H14) in (let 
-TMP_104 \def (\lambda (k1: K).((eq nat (S h) (S h)) \to ((eq nat (r k1 d) O) 
-\to ((eq C c (CHead c k u)) \to (let TMP_102 \def (r k h) in (let TMP_103 
-\def (r k1 d) in (drop TMP_102 TMP_103 c e))))))) in (let H19 \def (eq_ind K 
-k0 TMP_104 H16 k H14) in (let TMP_107 \def (\lambda (k1: K).(let TMP_105 \def 
-(S h) in (let TMP_106 \def (r k1 d) in (drop TMP_105 TMP_106 c e)))) in (let 
-H20 \def (eq_ind K k0 TMP_107 H17 k H14) in (let TMP_111 \def (\lambda (k1: 
-K).(let TMP_108 \def (r k h) in (let TMP_109 \def (S d) in (let TMP_110 \def 
-(CHead e k1 u0) in (drop TMP_108 TMP_109 c TMP_110))))) in (let TMP_114 \def 
+\to ((eq nat n0 O) \to ((eq C c0 (CHead c k u)) \to (drop (r k h) n0 c 
+c1)))))))) (\lambda (c0: C).(\lambda (H3: (eq nat O (S h))).(\lambda (_: (eq 
+nat O O)).(\lambda (H5: (eq C c0 (CHead c k u))).(eq_ind_r C (CHead c k u) 
+(\lambda (c1: C).(drop (r k h) O c c1)) (let H6 \def (eq_ind nat O (\lambda 
+(ee: nat).(match ee with [O \Rightarrow True | (S _) \Rightarrow False])) I 
+(S h) H3) in (False_ind (drop (r k h) O c (CHead c k u)) H6)) c0 H5))))) 
+(\lambda (k0: K).(\lambda (h0: nat).(\lambda (c0: C).(\lambda (e: C).(\lambda 
+(H3: (drop (r k0 h0) O c0 e)).(\lambda (H4: (((eq nat (r k0 h0) (S h)) \to 
+((eq nat O O) \to ((eq C c0 (CHead c k u)) \to (drop (r k h) O c 
+e)))))).(\lambda (u0: T).(\lambda (H5: (eq nat (S h0) (S h))).(\lambda (_: 
+(eq nat O O)).(\lambda (H7: (eq C (CHead c0 k0 u0) (CHead c k u))).(let H8 
+\def (f_equal C C (\lambda (e0: C).(match e0 with [(CSort _) \Rightarrow c0 | 
+(CHead c1 _ _) \Rightarrow c1])) (CHead c0 k0 u0) (CHead c k u) H7) in ((let 
+H9 \def (f_equal C K (\lambda (e0: C).(match e0 with [(CSort _) \Rightarrow 
+k0 | (CHead _ k1 _) \Rightarrow k1])) (CHead c0 k0 u0) (CHead c k u) H7) in 
+((let H10 \def (f_equal C T (\lambda (e0: C).(match e0 with [(CSort _) 
+\Rightarrow u0 | (CHead _ _ t) \Rightarrow t])) (CHead c0 k0 u0) (CHead c k 
+u) H7) in (\lambda (H11: (eq K k0 k)).(\lambda (H12: (eq C c0 c)).(let H13 
+\def (eq_ind C c0 (\lambda (c1: C).((eq nat (r k0 h0) (S h)) \to ((eq nat O 
+O) \to ((eq C c1 (CHead c k u)) \to (drop (r k h) O c e))))) H4 c H12) in 
+(let H14 \def (eq_ind C c0 (\lambda (c1: C).(drop (r k0 h0) O c1 e)) H3 c 
+H12) in (let H15 \def (eq_ind K k0 (\lambda (k1: K).((eq nat (r k1 h0) (S h)) 
+\to ((eq nat O O) \to ((eq C c (CHead c k u)) \to (drop (r k h) O c e))))) 
+H13 k H11) in (let H16 \def (eq_ind K k0 (\lambda (k1: K).(drop (r k1 h0) O c 
+e)) H14 k H11) in (let H17 \def (f_equal nat nat (\lambda (e0: nat).(match e0 
+with [O \Rightarrow h0 | (S n) \Rightarrow n])) (S h0) (S h) H5) in (let H18 
+\def (eq_ind nat h0 (\lambda (n: nat).((eq nat (r k n) (S h)) \to ((eq nat O 
+O) \to ((eq C c (CHead c k u)) \to (drop (r k h) O c e))))) H15 h H17) in 
+(let H19 \def (eq_ind nat h0 (\lambda (n: nat).(drop (r k n) O c e)) H16 h 
+H17) in H19)))))))))) H9)) H8)))))))))))) (\lambda (k0: K).(\lambda (h0: 
+nat).(\lambda (d: nat).(\lambda (c0: C).(\lambda (e: C).(\lambda (H3: (drop 
+h0 (r k0 d) c0 e)).(\lambda (H4: (((eq nat h0 (S h)) \to ((eq nat (r k0 d) O) 
+\to ((eq C c0 (CHead c k u)) \to (drop (r k h) (r k0 d) c e)))))).(\lambda 
+(u0: T).(\lambda (H5: (eq nat h0 (S h))).(\lambda (H6: (eq nat (S d) 
+O)).(\lambda (H7: (eq C (CHead c0 k0 (lift h0 (r k0 d) u0)) (CHead c k 
+u))).(let H8 \def (eq_ind nat h0 (\lambda (n: nat).(eq C (CHead c0 k0 (lift n 
+(r k0 d) u0)) (CHead c k u))) H7 (S h) H5) in (let H9 \def (eq_ind nat h0 
+(\lambda (n: nat).((eq nat n (S h)) \to ((eq nat (r k0 d) O) \to ((eq C c0 
+(CHead c k u)) \to (drop (r k h) (r k0 d) c e))))) H4 (S h) H5) in (let H10 
+\def (eq_ind nat h0 (\lambda (n: nat).(drop n (r k0 d) c0 e)) H3 (S h) H5) in 
+(let H11 \def (f_equal C C (\lambda (e0: C).(match e0 with [(CSort _) 
+\Rightarrow c0 | (CHead c1 _ _) \Rightarrow c1])) (CHead c0 k0 (lift (S h) (r 
+k0 d) u0)) (CHead c k u) H8) in ((let H12 \def (f_equal C K (\lambda (e0: 
+C).(match e0 with [(CSort _) \Rightarrow k0 | (CHead _ k1 _) \Rightarrow 
+k1])) (CHead c0 k0 (lift (S h) (r k0 d) u0)) (CHead c k u) H8) in ((let H13 
+\def (f_equal C T (\lambda (e0: C).(match e0 with [(CSort _) \Rightarrow 
+(lref_map (\lambda (x0: nat).(plus x0 (S h))) (r k0 d) u0) | (CHead _ _ t) 
+\Rightarrow t])) (CHead c0 k0 (lift (S h) (r k0 d) u0)) (CHead c k u) H8) in 
+(\lambda (H14: (eq K k0 k)).(\lambda (H15: (eq C c0 c)).(let H16 \def (eq_ind 
+C c0 (\lambda (c1: C).((eq nat (S h) (S h)) \to ((eq nat (r k0 d) O) \to ((eq 
+C c1 (CHead c k u)) \to (drop (r k h) (r k0 d) c e))))) H9 c H15) in (let H17 
+\def (eq_ind C c0 (\lambda (c1: C).(drop (S h) (r k0 d) c1 e)) H10 c H15) in 
+(let H18 \def (eq_ind K k0 (\lambda (k1: K).(eq T (lift (S h) (r k1 d) u0) 
+u)) H13 k H14) in (let H19 \def (eq_ind K k0 (\lambda (k1: K).((eq nat (S h) 
+(S h)) \to ((eq nat (r k1 d) O) \to ((eq C c (CHead c k u)) \to (drop (r k h) 
+(r k1 d) c e))))) H16 k H14) in (let H20 \def (eq_ind K k0 (\lambda (k1: 
+K).(drop (S h) (r k1 d) c e)) H17 k H14) in (eq_ind_r K k (\lambda (k1: 
+K).(drop (r k h) (S d) c (CHead e k1 u0))) (let H21 \def (eq_ind_r T u 
 (\lambda (t: T).((eq nat (S h) (S h)) \to ((eq nat (r k d) O) \to ((eq C c 
-(CHead c k t)) \to (let TMP_112 \def (r k h) in (let TMP_113 \def (r k d) in 
-(drop TMP_112 TMP_113 c e))))))) in (let TMP_115 \def (S h) in (let TMP_116 
-\def (r k d) in (let TMP_117 \def (lift TMP_115 TMP_116 u0) in (let H21 \def 
-(eq_ind_r T u TMP_114 H19 TMP_117 H18) in (let TMP_118 \def (S d) in (let 
-TMP_119 \def (\lambda (ee: nat).(match ee with [O \Rightarrow False | (S _) 
-\Rightarrow True])) in (let H22 \def (eq_ind nat TMP_118 TMP_119 I O H6) in 
-(let TMP_120 \def (r k h) in (let TMP_121 \def (S d) in (let TMP_122 \def 
-(CHead e k u0) in (let TMP_123 \def (drop TMP_120 TMP_121 c TMP_122) in (let 
-TMP_124 \def (False_ind TMP_123 H22) in (eq_ind_r K k TMP_111 TMP_124 k0 
-H14))))))))))))))))))))))))))) in (let TMP_126 \def (TMP_125 H12) in (TMP_126 
-H11)))))))))))))))))))))))))))))))))))))))))))) in (drop_ind TMP_15 TMP_25 
-TMP_52 TMP_127 y1 y0 y x H2))))))) in (insert_eq nat TMP_10 TMP_11 TMP_13 
-TMP_128 H1))))))) in (insert_eq nat O TMP_7 TMP_9 TMP_129 H0)))))) in 
-(insert_eq C TMP_1 TMP_3 TMP_5 TMP_130 H)))))))))).
+(CHead c k t)) \to (drop (r k h) (r k d) c e))))) H19 (lift (S h) (r k d) u0) 
+H18) in (let H22 \def (eq_ind nat (S d) (\lambda (ee: nat).(match ee with [O 
+\Rightarrow False | (S _) \Rightarrow True])) I O H6) in (False_ind (drop (r 
+k h) (S d) c (CHead e k u0)) H22))) k0 H14))))))))) H12)) H11)))))))))))))))) 
+y1 y0 y x H2))) H1))) H0))) H)))))).
 
 theorem drop_gen_skip_r:
  \forall (c: C).(\forall (x: C).(\forall (u: T).(\forall (h: nat).(\forall 
@@ -263,137 +180,75 @@ theorem drop_gen_skip_r:
 d) e c)))))))))
 \def
  \lambda (c: C).(\lambda (x: C).(\lambda (u: T).(\lambda (h: nat).(\lambda 
-(d: nat).(\lambda (k: K).(\lambda (H: (drop h (S d) x (CHead c k u))).(let 
-TMP_1 \def (CHead c k u) in (let TMP_3 \def (\lambda (c0: C).(let TMP_2 \def 
-(S d) in (drop h TMP_2 x c0))) in (let TMP_10 \def (\lambda (_: C).(let TMP_7 
-\def (\lambda (e: C).(let TMP_4 \def (r k d) in (let TMP_5 \def (lift h TMP_4 
-u) in (let TMP_6 \def (CHead e k TMP_5) in (eq C x TMP_6))))) in (let TMP_9 
-\def (\lambda (e: C).(let TMP_8 \def (r k d) in (drop h TMP_8 e c))) in (ex2 
-C TMP_7 TMP_9)))) in (let TMP_162 \def (\lambda (y: C).(\lambda (H0: (drop h 
-(S d) x y)).(let TMP_11 \def (S d) in (let TMP_12 \def (\lambda (n: 
-nat).(drop h n x y)) in (let TMP_19 \def (\lambda (_: nat).((eq C y (CHead c 
-k u)) \to (let TMP_16 \def (\lambda (e: C).(let TMP_13 \def (r k d) in (let 
-TMP_14 \def (lift h TMP_13 u) in (let TMP_15 \def (CHead e k TMP_14) in (eq C 
-x TMP_15))))) in (let TMP_18 \def (\lambda (e: C).(let TMP_17 \def (r k d) in 
-(drop h TMP_17 e c))) in (ex2 C TMP_16 TMP_18))))) in (let TMP_161 \def 
-(\lambda (y0: nat).(\lambda (H1: (drop h y0 x y)).(let TMP_26 \def (\lambda 
-(n: nat).(\lambda (n0: nat).(\lambda (c0: C).(\lambda (c1: C).((eq nat n0 (S 
-d)) \to ((eq C c1 (CHead c k u)) \to (let TMP_23 \def (\lambda (e: C).(let 
-TMP_20 \def (r k d) in (let TMP_21 \def (lift n TMP_20 u) in (let TMP_22 \def 
-(CHead e k TMP_21) in (eq C c0 TMP_22))))) in (let TMP_25 \def (\lambda (e: 
-C).(let TMP_24 \def (r k d) in (drop n TMP_24 e c))) in (ex2 C TMP_23 
-TMP_25))))))))) in (let TMP_46 \def (\lambda (c0: C).(\lambda (H2: (eq nat O 
-(S d))).(\lambda (H3: (eq C c0 (CHead c k u))).(let TMP_27 \def (CHead c k u) 
-in (let TMP_34 \def (\lambda (c1: C).(let TMP_31 \def (\lambda (e: C).(let 
-TMP_28 \def (r k d) in (let TMP_29 \def (lift O TMP_28 u) in (let TMP_30 \def 
-(CHead e k TMP_29) in (eq C c1 TMP_30))))) in (let TMP_33 \def (\lambda (e: 
-C).(let TMP_32 \def (r k d) in (drop O TMP_32 e c))) in (ex2 C TMP_31 
-TMP_33)))) in (let TMP_35 \def (\lambda (ee: nat).(match ee with [O 
-\Rightarrow True | (S _) \Rightarrow False])) in (let TMP_36 \def (S d) in 
-(let H4 \def (eq_ind nat O TMP_35 I TMP_36 H2) in (let TMP_41 \def (\lambda 
-(e: C).(let TMP_37 \def (CHead c k u) in (let TMP_38 \def (r k d) in (let 
-TMP_39 \def (lift O TMP_38 u) in (let TMP_40 \def (CHead e k TMP_39) in (eq C 
-TMP_37 TMP_40)))))) in (let TMP_43 \def (\lambda (e: C).(let TMP_42 \def (r k 
-d) in (drop O TMP_42 e c))) in (let TMP_44 \def (ex2 C TMP_41 TMP_43) in (let 
-TMP_45 \def (False_ind TMP_44 H4) in (eq_ind_r C TMP_27 TMP_34 TMP_45 c0 
-H3))))))))))))) in (let TMP_72 \def (\lambda (k0: K).(\lambda (h0: 
+(d: nat).(\lambda (k: K).(\lambda (H: (drop h (S d) x (CHead c k 
+u))).(insert_eq C (CHead c k u) (\lambda (c0: C).(drop h (S d) x c0)) 
+(\lambda (_: C).(ex2 C (\lambda (e: C).(eq C x (CHead e k (lift h (r k d) 
+u)))) (\lambda (e: C).(drop h (r k d) e c)))) (\lambda (y: C).(\lambda (H0: 
+(drop h (S d) x y)).(insert_eq nat (S d) (\lambda (n: nat).(drop h n x y)) 
+(\lambda (_: nat).((eq C y (CHead c k u)) \to (ex2 C (\lambda (e: C).(eq C x 
+(CHead e k (lift h (r k d) u)))) (\lambda (e: C).(drop h (r k d) e c))))) 
+(\lambda (y0: nat).(\lambda (H1: (drop h y0 x y)).(drop_ind (\lambda (n: 
+nat).(\lambda (n0: nat).(\lambda (c0: C).(\lambda (c1: C).((eq nat n0 (S d)) 
+\to ((eq C c1 (CHead c k u)) \to (ex2 C (\lambda (e: C).(eq C c0 (CHead e k 
+(lift n (r k d) u)))) (\lambda (e: C).(drop n (r k d) e c))))))))) (\lambda 
+(c0: C).(\lambda (H2: (eq nat O (S d))).(\lambda (H3: (eq C c0 (CHead c k 
+u))).(eq_ind_r C (CHead c k u) (\lambda (c1: C).(ex2 C (\lambda (e: C).(eq C 
+c1 (CHead e k (lift O (r k d) u)))) (\lambda (e: C).(drop O (r k d) e c)))) 
+(let H4 \def (eq_ind nat O (\lambda (ee: nat).(match ee with [O \Rightarrow 
+True | (S _) \Rightarrow False])) I (S d) H2) in (False_ind (ex2 C (\lambda 
+(e: C).(eq C (CHead c k u) (CHead e k (lift O (r k d) u)))) (\lambda (e: 
+C).(drop O (r k d) e c))) H4)) c0 H3)))) (\lambda (k0: K).(\lambda (h0: 
 nat).(\lambda (c0: C).(\lambda (e: C).(\lambda (H2: (drop (r k0 h0) O c0 
 e)).(\lambda (H3: (((eq nat O (S d)) \to ((eq C e (CHead c k u)) \to (ex2 C 
 (\lambda (e0: C).(eq C c0 (CHead e0 k (lift (r k0 h0) (r k d) u)))) (\lambda 
 (e0: C).(drop (r k0 h0) (r k d) e0 c))))))).(\lambda (u0: T).(\lambda (H4: 
-(eq nat O (S d))).(\lambda (H5: (eq C e (CHead c k u))).(let TMP_55 \def 
-(\lambda (c1: C).((eq nat O (S d)) \to ((eq C c1 (CHead c k u)) \to (let 
-TMP_51 \def (\lambda (e0: C).(let TMP_47 \def (r k0 h0) in (let TMP_48 \def 
-(r k d) in (let TMP_49 \def (lift TMP_47 TMP_48 u) in (let TMP_50 \def (CHead 
-e0 k TMP_49) in (eq C c0 TMP_50)))))) in (let TMP_54 \def (\lambda (e0: 
-C).(let TMP_52 \def (r k0 h0) in (let TMP_53 \def (r k d) in (drop TMP_52 
-TMP_53 e0 c)))) in (ex2 C TMP_51 TMP_54)))))) in (let TMP_56 \def (CHead c k 
-u) in (let H6 \def (eq_ind C e TMP_55 H3 TMP_56 H5) in (let TMP_58 \def 
-(\lambda (c1: C).(let TMP_57 \def (r k0 h0) in (drop TMP_57 O c0 c1))) in 
-(let TMP_59 \def (CHead c k u) in (let H7 \def (eq_ind C e TMP_58 H2 TMP_59 
-H5) in (let TMP_60 \def (\lambda (ee: nat).(match ee with [O \Rightarrow True 
-| (S _) \Rightarrow False])) in (let TMP_61 \def (S d) in (let H8 \def 
-(eq_ind nat O TMP_60 I TMP_61 H4) in (let TMP_67 \def (\lambda (e0: C).(let 
-TMP_62 \def (CHead c0 k0 u0) in (let TMP_63 \def (S h0) in (let TMP_64 \def 
-(r k d) in (let TMP_65 \def (lift TMP_63 TMP_64 u) in (let TMP_66 \def (CHead 
-e0 k TMP_65) in (eq C TMP_62 TMP_66))))))) in (let TMP_70 \def (\lambda (e0: 
-C).(let TMP_68 \def (S h0) in (let TMP_69 \def (r k d) in (drop TMP_68 TMP_69 
-e0 c)))) in (let TMP_71 \def (ex2 C TMP_67 TMP_70) in (False_ind TMP_71 
-H8)))))))))))))))))))))) in (let TMP_160 \def (\lambda (k0: K).(\lambda (h0: 
-nat).(\lambda (d0: nat).(\lambda (c0: C).(\lambda (e: C).(\lambda (H2: (drop 
-h0 (r k0 d0) c0 e)).(\lambda (H3: (((eq nat (r k0 d0) (S d)) \to ((eq C e 
-(CHead c k u)) \to (ex2 C (\lambda (e0: C).(eq C c0 (CHead e0 k (lift h0 (r k 
-d) u)))) (\lambda (e0: C).(drop h0 (r k d) e0 c))))))).(\lambda (u0: 
-T).(\lambda (H4: (eq nat (S d0) (S d))).(\lambda (H5: (eq C (CHead e k0 u0) 
-(CHead c k u))).(let TMP_73 \def (\lambda (e0: C).(match e0 with [(CSort _) 
-\Rightarrow e | (CHead c1 _ _) \Rightarrow c1])) in (let TMP_74 \def (CHead e 
-k0 u0) in (let TMP_75 \def (CHead c k u) in (let H6 \def (f_equal C C TMP_73 
-TMP_74 TMP_75 H5) in (let TMP_76 \def (\lambda (e0: C).(match e0 with [(CSort 
-_) \Rightarrow k0 | (CHead _ k1 _) \Rightarrow k1])) in (let TMP_77 \def 
-(CHead e k0 u0) in (let TMP_78 \def (CHead c k u) in (let H7 \def (f_equal C 
-K TMP_76 TMP_77 TMP_78 H5) in (let TMP_79 \def (\lambda (e0: C).(match e0 
-with [(CSort _) \Rightarrow u0 | (CHead _ _ t) \Rightarrow t])) in (let 
-TMP_80 \def (CHead e k0 u0) in (let TMP_81 \def (CHead c k u) in (let H8 \def 
-(f_equal C T TMP_79 TMP_80 TMP_81 H5) in (let TMP_158 \def (\lambda (H9: (eq 
-K k0 k)).(\lambda (H10: (eq C e c)).(let TMP_91 \def (\lambda (t: T).(let 
-TMP_88 \def (\lambda (e0: C).(let TMP_82 \def (r k0 d0) in (let TMP_83 \def 
-(lift h0 TMP_82 t) in (let TMP_84 \def (CHead c0 k0 TMP_83) in (let TMP_85 
-\def (r k d) in (let TMP_86 \def (lift h0 TMP_85 u) in (let TMP_87 \def 
-(CHead e0 k TMP_86) in (eq C TMP_84 TMP_87)))))))) in (let TMP_90 \def 
-(\lambda (e0: C).(let TMP_89 \def (r k d) in (drop h0 TMP_89 e0 c))) in (ex2 
-C TMP_88 TMP_90)))) in (let TMP_98 \def (\lambda (c1: C).((eq nat (r k0 d0) 
-(S d)) \to ((eq C c1 (CHead c k u)) \to (let TMP_95 \def (\lambda (e0: 
-C).(let TMP_92 \def (r k d) in (let TMP_93 \def (lift h0 TMP_92 u) in (let 
-TMP_94 \def (CHead e0 k TMP_93) in (eq C c0 TMP_94))))) in (let TMP_97 \def 
-(\lambda (e0: C).(let TMP_96 \def (r k d) in (drop h0 TMP_96 e0 c))) in (ex2 
-C TMP_95 TMP_97)))))) in (let H11 \def (eq_ind C e TMP_98 H3 c H10) in (let 
-TMP_100 \def (\lambda (c1: C).(let TMP_99 \def (r k0 d0) in (drop h0 TMP_99 
-c0 c1))) in (let H12 \def (eq_ind C e TMP_100 H2 c H10) in (let TMP_107 \def 
-(\lambda (k1: K).((eq nat (r k1 d0) (S d)) \to ((eq C c (CHead c k u)) \to 
-(let TMP_104 \def (\lambda (e0: C).(let TMP_101 \def (r k d) in (let TMP_102 
-\def (lift h0 TMP_101 u) in (let TMP_103 \def (CHead e0 k TMP_102) in (eq C 
-c0 TMP_103))))) in (let TMP_106 \def (\lambda (e0: C).(let TMP_105 \def (r k 
-d) in (drop h0 TMP_105 e0 c))) in (ex2 C TMP_104 TMP_106)))))) in (let H13 
-\def (eq_ind K k0 TMP_107 H11 k H9) in (let TMP_109 \def (\lambda (k1: 
-K).(let TMP_108 \def (r k1 d0) in (drop h0 TMP_108 c0 c))) in (let H14 \def 
-(eq_ind K k0 TMP_109 H12 k H9) in (let TMP_119 \def (\lambda (k1: K).(let 
-TMP_116 \def (\lambda (e0: C).(let TMP_110 \def (r k1 d0) in (let TMP_111 
-\def (lift h0 TMP_110 u) in (let TMP_112 \def (CHead c0 k1 TMP_111) in (let 
-TMP_113 \def (r k d) in (let TMP_114 \def (lift h0 TMP_113 u) in (let TMP_115 
-\def (CHead e0 k TMP_114) in (eq C TMP_112 TMP_115)))))))) in (let TMP_118 
-\def (\lambda (e0: C).(let TMP_117 \def (r k d) in (drop h0 TMP_117 e0 c))) 
-in (ex2 C TMP_116 TMP_118)))) in (let TMP_120 \def (\lambda (e0: nat).(match 
-e0 with [O \Rightarrow d0 | (S n) \Rightarrow n])) in (let TMP_121 \def (S 
-d0) in (let TMP_122 \def (S d) in (let H15 \def (f_equal nat nat TMP_120 
-TMP_121 TMP_122 H4) in (let TMP_129 \def (\lambda (n: nat).((eq nat (r k n) 
-(S d)) \to ((eq C c (CHead c k u)) \to (let TMP_126 \def (\lambda (e0: 
-C).(let TMP_123 \def (r k d) in (let TMP_124 \def (lift h0 TMP_123 u) in (let 
-TMP_125 \def (CHead e0 k TMP_124) in (eq C c0 TMP_125))))) in (let TMP_128 
-\def (\lambda (e0: C).(let TMP_127 \def (r k d) in (drop h0 TMP_127 e0 c))) 
-in (ex2 C TMP_126 TMP_128)))))) in (let H16 \def (eq_ind nat d0 TMP_129 H13 d 
-H15) in (let TMP_131 \def (\lambda (n: nat).(let TMP_130 \def (r k n) in 
-(drop h0 TMP_130 c0 c))) in (let H17 \def (eq_ind nat d0 TMP_131 H14 d H15) 
-in (let TMP_141 \def (\lambda (n: nat).(let TMP_138 \def (\lambda (e0: 
-C).(let TMP_132 \def (r k n) in (let TMP_133 \def (lift h0 TMP_132 u) in (let 
-TMP_134 \def (CHead c0 k TMP_133) in (let TMP_135 \def (r k d) in (let 
-TMP_136 \def (lift h0 TMP_135 u) in (let TMP_137 \def (CHead e0 k TMP_136) in 
-(eq C TMP_134 TMP_137)))))))) in (let TMP_140 \def (\lambda (e0: C).(let 
-TMP_139 \def (r k d) in (drop h0 TMP_139 e0 c))) in (ex2 C TMP_138 
-TMP_140)))) in (let TMP_148 \def (\lambda (e0: C).(let TMP_142 \def (r k d) 
-in (let TMP_143 \def (lift h0 TMP_142 u) in (let TMP_144 \def (CHead c0 k 
-TMP_143) in (let TMP_145 \def (r k d) in (let TMP_146 \def (lift h0 TMP_145 
-u) in (let TMP_147 \def (CHead e0 k TMP_146) in (eq C TMP_144 TMP_147)))))))) 
-in (let TMP_150 \def (\lambda (e0: C).(let TMP_149 \def (r k d) in (drop h0 
-TMP_149 e0 c))) in (let TMP_151 \def (r k d) in (let TMP_152 \def (lift h0 
-TMP_151 u) in (let TMP_153 \def (CHead c0 k TMP_152) in (let TMP_154 \def 
-(refl_equal C TMP_153) in (let TMP_155 \def (ex_intro2 C TMP_148 TMP_150 c0 
-TMP_154 H17) in (let TMP_156 \def (eq_ind_r nat d TMP_141 TMP_155 d0 H15) in 
-(let TMP_157 \def (eq_ind_r K k TMP_119 TMP_156 k0 H9) in (eq_ind_r T u 
-TMP_91 TMP_157 u0 H8))))))))))))))))))))))))))))))) in (let TMP_159 \def 
-(TMP_158 H7) in (TMP_159 H6))))))))))))))))))))))))) in (drop_ind TMP_26 
-TMP_46 TMP_72 TMP_160 h y0 x y H1))))))) in (insert_eq nat TMP_11 TMP_12 
-TMP_19 TMP_161 H0))))))) in (insert_eq C TMP_1 TMP_3 TMP_10 TMP_162 
-H))))))))))).
+(eq nat O (S d))).(\lambda (H5: (eq C e (CHead c k u))).(let H6 \def (eq_ind 
+C e (\lambda (c1: C).((eq nat O (S d)) \to ((eq C c1 (CHead c k u)) \to (ex2 
+C (\lambda (e0: C).(eq C c0 (CHead e0 k (lift (r k0 h0) (r k d) u)))) 
+(\lambda (e0: C).(drop (r k0 h0) (r k d) e0 c)))))) H3 (CHead c k u) H5) in 
+(let H7 \def (eq_ind C e (\lambda (c1: C).(drop (r k0 h0) O c0 c1)) H2 (CHead 
+c k u) H5) in (let H8 \def (eq_ind nat O (\lambda (ee: nat).(match ee with [O 
+\Rightarrow True | (S _) \Rightarrow False])) I (S d) H4) in (False_ind (ex2 
+C (\lambda (e0: C).(eq C (CHead c0 k0 u0) (CHead e0 k (lift (S h0) (r k d) 
+u)))) (\lambda (e0: C).(drop (S h0) (r k d) e0 c))) H8))))))))))))) (\lambda 
+(k0: K).(\lambda (h0: nat).(\lambda (d0: nat).(\lambda (c0: C).(\lambda (e: 
+C).(\lambda (H2: (drop h0 (r k0 d0) c0 e)).(\lambda (H3: (((eq nat (r k0 d0) 
+(S d)) \to ((eq C e (CHead c k u)) \to (ex2 C (\lambda (e0: C).(eq C c0 
+(CHead e0 k (lift h0 (r k d) u)))) (\lambda (e0: C).(drop h0 (r k d) e0 
+c))))))).(\lambda (u0: T).(\lambda (H4: (eq nat (S d0) (S d))).(\lambda (H5: 
+(eq C (CHead e k0 u0) (CHead c k u))).(let H6 \def (f_equal C C (\lambda (e0: 
+C).(match e0 with [(CSort _) \Rightarrow e | (CHead c1 _ _) \Rightarrow c1])) 
+(CHead e k0 u0) (CHead c k u) H5) in ((let H7 \def (f_equal C K (\lambda (e0: 
+C).(match e0 with [(CSort _) \Rightarrow k0 | (CHead _ k1 _) \Rightarrow 
+k1])) (CHead e k0 u0) (CHead c k u) H5) in ((let H8 \def (f_equal C T 
+(\lambda (e0: C).(match e0 with [(CSort _) \Rightarrow u0 | (CHead _ _ t) 
+\Rightarrow t])) (CHead e k0 u0) (CHead c k u) H5) in (\lambda (H9: (eq K k0 
+k)).(\lambda (H10: (eq C e c)).(eq_ind_r T u (\lambda (t: T).(ex2 C (\lambda 
+(e0: C).(eq C (CHead c0 k0 (lift h0 (r k0 d0) t)) (CHead e0 k (lift h0 (r k 
+d) u)))) (\lambda (e0: C).(drop h0 (r k d) e0 c)))) (let H11 \def (eq_ind C e 
+(\lambda (c1: C).((eq nat (r k0 d0) (S d)) \to ((eq C c1 (CHead c k u)) \to 
+(ex2 C (\lambda (e0: C).(eq C c0 (CHead e0 k (lift h0 (r k d) u)))) (\lambda 
+(e0: C).(drop h0 (r k d) e0 c)))))) H3 c H10) in (let H12 \def (eq_ind C e 
+(\lambda (c1: C).(drop h0 (r k0 d0) c0 c1)) H2 c H10) in (let H13 \def 
+(eq_ind K k0 (\lambda (k1: K).((eq nat (r k1 d0) (S d)) \to ((eq C c (CHead c 
+k u)) \to (ex2 C (\lambda (e0: C).(eq C c0 (CHead e0 k (lift h0 (r k d) u)))) 
+(\lambda (e0: C).(drop h0 (r k d) e0 c)))))) H11 k H9) in (let H14 \def 
+(eq_ind K k0 (\lambda (k1: K).(drop h0 (r k1 d0) c0 c)) H12 k H9) in 
+(eq_ind_r K k (\lambda (k1: K).(ex2 C (\lambda (e0: C).(eq C (CHead c0 k1 
+(lift h0 (r k1 d0) u)) (CHead e0 k (lift h0 (r k d) u)))) (\lambda (e0: 
+C).(drop h0 (r k d) e0 c)))) (let H15 \def (f_equal nat nat (\lambda (e0: 
+nat).(match e0 with [O \Rightarrow d0 | (S n) \Rightarrow n])) (S d0) (S d) 
+H4) in (let H16 \def (eq_ind nat d0 (\lambda (n: nat).((eq nat (r k n) (S d)) 
+\to ((eq C c (CHead c k u)) \to (ex2 C (\lambda (e0: C).(eq C c0 (CHead e0 k 
+(lift h0 (r k d) u)))) (\lambda (e0: C).(drop h0 (r k d) e0 c)))))) H13 d 
+H15) in (let H17 \def (eq_ind nat d0 (\lambda (n: nat).(drop h0 (r k n) c0 
+c)) H14 d H15) in (eq_ind_r nat d (\lambda (n: nat).(ex2 C (\lambda (e0: 
+C).(eq C (CHead c0 k (lift h0 (r k n) u)) (CHead e0 k (lift h0 (r k d) u)))) 
+(\lambda (e0: C).(drop h0 (r k d) e0 c)))) (ex_intro2 C (\lambda (e0: C).(eq 
+C (CHead c0 k (lift h0 (r k d) u)) (CHead e0 k (lift h0 (r k d) u)))) 
+(\lambda (e0: C).(drop h0 (r k d) e0 c)) c0 (refl_equal C (CHead c0 k (lift 
+h0 (r k d) u))) H17) d0 H15)))) k0 H9))))) u0 H8)))) H7)) H6)))))))))))) h y0 
+x y H1))) H0))) H))))))).
 
 theorem drop_gen_skip_l:
  \forall (c: C).(\forall (x: C).(\forall (u: T).(\forall (h: nat).(\forall 
@@ -403,375 +258,218 @@ C).(\lambda (v: T).(eq T u (lift h (r k d) v)))) (\lambda (e: C).(\lambda (_:
 T).(drop h (r k d) c e))))))))))
 \def
  \lambda (c: C).(\lambda (x: C).(\lambda (u: T).(\lambda (h: nat).(\lambda 
-(d: nat).(\lambda (k: K).(\lambda (H: (drop h (S d) (CHead c k u) x)).(let 
-TMP_1 \def (CHead c k u) in (let TMP_3 \def (\lambda (c0: C).(let TMP_2 \def 
-(S d) in (drop h TMP_2 c0 x))) in (let TMP_11 \def (\lambda (_: C).(let TMP_5 
-\def (\lambda (e: C).(\lambda (v: T).(let TMP_4 \def (CHead e k v) in (eq C x 
-TMP_4)))) in (let TMP_8 \def (\lambda (_: C).(\lambda (v: T).(let TMP_6 \def 
-(r k d) in (let TMP_7 \def (lift h TMP_6 v) in (eq T u TMP_7))))) in (let 
-TMP_10 \def (\lambda (e: C).(\lambda (_: T).(let TMP_9 \def (r k d) in (drop 
-h TMP_9 c e)))) in (ex3_2 C T TMP_5 TMP_8 TMP_10))))) in (let TMP_223 \def 
-(\lambda (y: C).(\lambda (H0: (drop h (S d) y x)).(let TMP_12 \def (S d) in 
-(let TMP_13 \def (\lambda (n: nat).(drop h n y x)) in (let TMP_21 \def 
-(\lambda (_: nat).((eq C y (CHead c k u)) \to (let TMP_15 \def (\lambda (e: 
-C).(\lambda (v: T).(let TMP_14 \def (CHead e k v) in (eq C x TMP_14)))) in 
-(let TMP_18 \def (\lambda (_: C).(\lambda (v: T).(let TMP_16 \def (r k d) in 
-(let TMP_17 \def (lift h TMP_16 v) in (eq T u TMP_17))))) in (let TMP_20 \def 
-(\lambda (e: C).(\lambda (_: T).(let TMP_19 \def (r k d) in (drop h TMP_19 c 
-e)))) in (ex3_2 C T TMP_15 TMP_18 TMP_20)))))) in (let TMP_222 \def (\lambda 
-(y0: nat).(\lambda (H1: (drop h y0 y x)).(let TMP_29 \def (\lambda (n: 
-nat).(\lambda (n0: nat).(\lambda (c0: C).(\lambda (c1: C).((eq nat n0 (S d)) 
-\to ((eq C c0 (CHead c k u)) \to (let TMP_23 \def (\lambda (e: C).(\lambda 
-(v: T).(let TMP_22 \def (CHead e k v) in (eq C c1 TMP_22)))) in (let TMP_26 
-\def (\lambda (_: C).(\lambda (v: T).(let TMP_24 \def (r k d) in (let TMP_25 
-\def (lift n TMP_24 v) in (eq T u TMP_25))))) in (let TMP_28 \def (\lambda 
-(e: C).(\lambda (_: T).(let TMP_27 \def (r k d) in (drop n TMP_27 c e)))) in 
-(ex3_2 C T TMP_23 TMP_26 TMP_28)))))))))) in (let TMP_51 \def (\lambda (c0: 
-C).(\lambda (H2: (eq nat O (S d))).(\lambda (H3: (eq C c0 (CHead c k 
-u))).(let TMP_30 \def (CHead c k u) in (let TMP_38 \def (\lambda (c1: C).(let 
-TMP_32 \def (\lambda (e: C).(\lambda (v: T).(let TMP_31 \def (CHead e k v) in 
-(eq C c1 TMP_31)))) in (let TMP_35 \def (\lambda (_: C).(\lambda (v: T).(let 
-TMP_33 \def (r k d) in (let TMP_34 \def (lift O TMP_33 v) in (eq T u 
-TMP_34))))) in (let TMP_37 \def (\lambda (e: C).(\lambda (_: T).(let TMP_36 
-\def (r k d) in (drop O TMP_36 c e)))) in (ex3_2 C T TMP_32 TMP_35 
-TMP_37))))) in (let TMP_39 \def (\lambda (ee: nat).(match ee with [O 
-\Rightarrow True | (S _) \Rightarrow False])) in (let TMP_40 \def (S d) in 
-(let H4 \def (eq_ind nat O TMP_39 I TMP_40 H2) in (let TMP_43 \def (\lambda 
-(e: C).(\lambda (v: T).(let TMP_41 \def (CHead c k u) in (let TMP_42 \def 
-(CHead e k v) in (eq C TMP_41 TMP_42))))) in (let TMP_46 \def (\lambda (_: 
-C).(\lambda (v: T).(let TMP_44 \def (r k d) in (let TMP_45 \def (lift O 
-TMP_44 v) in (eq T u TMP_45))))) in (let TMP_48 \def (\lambda (e: C).(\lambda 
-(_: T).(let TMP_47 \def (r k d) in (drop O TMP_47 c e)))) in (let TMP_49 \def 
-(ex3_2 C T TMP_43 TMP_46 TMP_48) in (let TMP_50 \def (False_ind TMP_49 H4) in 
-(eq_ind_r C TMP_30 TMP_38 TMP_50 c0 H3)))))))))))))) in (let TMP_99 \def 
-(\lambda (k0: K).(\lambda (h0: nat).(\lambda (c0: C).(\lambda (e: C).(\lambda 
-(H2: (drop (r k0 h0) O c0 e)).(\lambda (H3: (((eq nat O (S d)) \to ((eq C c0 
-(CHead c k u)) \to (ex3_2 C T (\lambda (e0: C).(\lambda (v: T).(eq C e (CHead 
-e0 k v)))) (\lambda (_: C).(\lambda (v: T).(eq T u (lift (r k0 h0) (r k d) 
-v)))) (\lambda (e0: C).(\lambda (_: T).(drop (r k0 h0) (r k d) c 
-e0)))))))).(\lambda (u0: T).(\lambda (H4: (eq nat O (S d))).(\lambda (H5: (eq 
-C (CHead c0 k0 u0) (CHead c k u))).(let TMP_52 \def (\lambda (e0: C).(match 
-e0 with [(CSort _) \Rightarrow c0 | (CHead c1 _ _) \Rightarrow c1])) in (let 
-TMP_53 \def (CHead c0 k0 u0) in (let TMP_54 \def (CHead c k u) in (let H6 
-\def (f_equal C C TMP_52 TMP_53 TMP_54 H5) in (let TMP_55 \def (\lambda (e0: 
-C).(match e0 with [(CSort _) \Rightarrow k0 | (CHead _ k1 _) \Rightarrow 
-k1])) in (let TMP_56 \def (CHead c0 k0 u0) in (let TMP_57 \def (CHead c k u) 
-in (let H7 \def (f_equal C K TMP_55 TMP_56 TMP_57 H5) in (let TMP_58 \def 
-(\lambda (e0: C).(match e0 with [(CSort _) \Rightarrow u0 | (CHead _ _ t) 
-\Rightarrow t])) in (let TMP_59 \def (CHead c0 k0 u0) in (let TMP_60 \def 
-(CHead c k u) in (let H8 \def (f_equal C T TMP_58 TMP_59 TMP_60 H5) in (let 
-TMP_97 \def (\lambda (H9: (eq K k0 k)).(\lambda (H10: (eq C c0 c)).(let 
-TMP_70 \def (\lambda (c1: C).((eq nat O (S d)) \to ((eq C c1 (CHead c k u)) 
-\to (let TMP_62 \def (\lambda (e0: C).(\lambda (v: T).(let TMP_61 \def (CHead 
-e0 k v) in (eq C e TMP_61)))) in (let TMP_66 \def (\lambda (_: C).(\lambda 
-(v: T).(let TMP_63 \def (r k0 h0) in (let TMP_64 \def (r k d) in (let TMP_65 
-\def (lift TMP_63 TMP_64 v) in (eq T u TMP_65)))))) in (let TMP_69 \def 
-(\lambda (e0: C).(\lambda (_: T).(let TMP_67 \def (r k0 h0) in (let TMP_68 
-\def (r k d) in (drop TMP_67 TMP_68 c e0))))) in (ex3_2 C T TMP_62 TMP_66 
-TMP_69))))))) in (let H11 \def (eq_ind C c0 TMP_70 H3 c H10) in (let TMP_72 
-\def (\lambda (c1: C).(let TMP_71 \def (r k0 h0) in (drop TMP_71 O c1 e))) in 
-(let H12 \def (eq_ind C c0 TMP_72 H2 c H10) in (let TMP_82 \def (\lambda (k1: 
-K).((eq nat O (S d)) \to ((eq C c (CHead c k u)) \to (let TMP_74 \def 
-(\lambda (e0: C).(\lambda (v: T).(let TMP_73 \def (CHead e0 k v) in (eq C e 
-TMP_73)))) in (let TMP_78 \def (\lambda (_: C).(\lambda (v: T).(let TMP_75 
-\def (r k1 h0) in (let TMP_76 \def (r k d) in (let TMP_77 \def (lift TMP_75 
-TMP_76 v) in (eq T u TMP_77)))))) in (let TMP_81 \def (\lambda (e0: 
-C).(\lambda (_: T).(let TMP_79 \def (r k1 h0) in (let TMP_80 \def (r k d) in 
-(drop TMP_79 TMP_80 c e0))))) in (ex3_2 C T TMP_74 TMP_78 TMP_81))))))) in 
-(let H13 \def (eq_ind K k0 TMP_82 H11 k H9) in (let TMP_84 \def (\lambda (k1: 
-K).(let TMP_83 \def (r k1 h0) in (drop TMP_83 O c e))) in (let H14 \def 
-(eq_ind K k0 TMP_84 H12 k H9) in (let TMP_85 \def (\lambda (ee: nat).(match 
-ee with [O \Rightarrow True | (S _) \Rightarrow False])) in (let TMP_86 \def 
-(S d) in (let H15 \def (eq_ind nat O TMP_85 I TMP_86 H4) in (let TMP_88 \def 
-(\lambda (e0: C).(\lambda (v: T).(let TMP_87 \def (CHead e0 k v) in (eq C e 
-TMP_87)))) in (let TMP_92 \def (\lambda (_: C).(\lambda (v: T).(let TMP_89 
-\def (S h0) in (let TMP_90 \def (r k d) in (let TMP_91 \def (lift TMP_89 
-TMP_90 v) in (eq T u TMP_91)))))) in (let TMP_95 \def (\lambda (e0: 
-C).(\lambda (_: T).(let TMP_93 \def (S h0) in (let TMP_94 \def (r k d) in 
-(drop TMP_93 TMP_94 c e0))))) in (let TMP_96 \def (ex3_2 C T TMP_88 TMP_92 
-TMP_95) in (False_ind TMP_96 H15)))))))))))))))))) in (let TMP_98 \def 
-(TMP_97 H7) in (TMP_98 H6)))))))))))))))))))))))) in (let TMP_221 \def 
-(\lambda (k0: K).(\lambda (h0: nat).(\lambda (d0: nat).(\lambda (c0: 
-C).(\lambda (e: C).(\lambda (H2: (drop h0 (r k0 d0) c0 e)).(\lambda (H3: 
-(((eq nat (r k0 d0) (S d)) \to ((eq C c0 (CHead c k u)) \to (ex3_2 C T 
-(\lambda (e0: C).(\lambda (v: T).(eq C e (CHead e0 k v)))) (\lambda (_: 
+(d: nat).(\lambda (k: K).(\lambda (H: (drop h (S d) (CHead c k u) 
+x)).(insert_eq C (CHead c k u) (\lambda (c0: C).(drop h (S d) c0 x)) (\lambda 
+(_: C).(ex3_2 C T (\lambda (e: C).(\lambda (v: T).(eq C x (CHead e k v)))) 
+(\lambda (_: C).(\lambda (v: T).(eq T u (lift h (r k d) v)))) (\lambda (e: 
+C).(\lambda (_: T).(drop h (r k d) c e))))) (\lambda (y: C).(\lambda (H0: 
+(drop h (S d) y x)).(insert_eq nat (S d) (\lambda (n: nat).(drop h n y x)) 
+(\lambda (_: nat).((eq C y (CHead c k u)) \to (ex3_2 C T (\lambda (e: 
+C).(\lambda (v: T).(eq C x (CHead e k v)))) (\lambda (_: C).(\lambda (v: 
+T).(eq T u (lift h (r k d) v)))) (\lambda (e: C).(\lambda (_: T).(drop h (r k 
+d) c e)))))) (\lambda (y0: nat).(\lambda (H1: (drop h y0 y x)).(drop_ind 
+(\lambda (n: nat).(\lambda (n0: nat).(\lambda (c0: C).(\lambda (c1: C).((eq 
+nat n0 (S d)) \to ((eq C c0 (CHead c k u)) \to (ex3_2 C T (\lambda (e: 
+C).(\lambda (v: T).(eq C c1 (CHead e k v)))) (\lambda (_: C).(\lambda (v: 
+T).(eq T u (lift n (r k d) v)))) (\lambda (e: C).(\lambda (_: T).(drop n (r k 
+d) c e)))))))))) (\lambda (c0: C).(\lambda (H2: (eq nat O (S d))).(\lambda 
+(H3: (eq C c0 (CHead c k u))).(eq_ind_r C (CHead c k u) (\lambda (c1: 
+C).(ex3_2 C T (\lambda (e: C).(\lambda (v: T).(eq C c1 (CHead e k v)))) 
+(\lambda (_: C).(\lambda (v: T).(eq T u (lift O (r k d) v)))) (\lambda (e: 
+C).(\lambda (_: T).(drop O (r k d) c e))))) (let H4 \def (eq_ind nat O 
+(\lambda (ee: nat).(match ee with [O \Rightarrow True | (S _) \Rightarrow 
+False])) I (S d) H2) in (False_ind (ex3_2 C T (\lambda (e: C).(\lambda (v: 
+T).(eq C (CHead c k u) (CHead e k v)))) (\lambda (_: C).(\lambda (v: T).(eq T 
+u (lift O (r k d) v)))) (\lambda (e: C).(\lambda (_: T).(drop O (r k d) c 
+e)))) H4)) c0 H3)))) (\lambda (k0: K).(\lambda (h0: nat).(\lambda (c0: 
+C).(\lambda (e: C).(\lambda (H2: (drop (r k0 h0) O c0 e)).(\lambda (H3: (((eq 
+nat O (S d)) \to ((eq C c0 (CHead c k u)) \to (ex3_2 C T (\lambda (e0: 
+C).(\lambda (v: T).(eq C e (CHead e0 k v)))) (\lambda (_: C).(\lambda (v: 
+T).(eq T u (lift (r k0 h0) (r k d) v)))) (\lambda (e0: C).(\lambda (_: 
+T).(drop (r k0 h0) (r k d) c e0)))))))).(\lambda (u0: T).(\lambda (H4: (eq 
+nat O (S d))).(\lambda (H5: (eq C (CHead c0 k0 u0) (CHead c k u))).(let H6 
+\def (f_equal C C (\lambda (e0: C).(match e0 with [(CSort _) \Rightarrow c0 | 
+(CHead c1 _ _) \Rightarrow c1])) (CHead c0 k0 u0) (CHead c k u) H5) in ((let 
+H7 \def (f_equal C K (\lambda (e0: C).(match e0 with [(CSort _) \Rightarrow 
+k0 | (CHead _ k1 _) \Rightarrow k1])) (CHead c0 k0 u0) (CHead c k u) H5) in 
+((let H8 \def (f_equal C T (\lambda (e0: C).(match e0 with [(CSort _) 
+\Rightarrow u0 | (CHead _ _ t) \Rightarrow t])) (CHead c0 k0 u0) (CHead c k 
+u) H5) in (\lambda (H9: (eq K k0 k)).(\lambda (H10: (eq C c0 c)).(let H11 
+\def (eq_ind C c0 (\lambda (c1: C).((eq nat O (S d)) \to ((eq C c1 (CHead c k 
+u)) \to (ex3_2 C T (\lambda (e0: C).(\lambda (v: T).(eq C e (CHead e0 k v)))) 
+(\lambda (_: C).(\lambda (v: T).(eq T u (lift (r k0 h0) (r k d) v)))) 
+(\lambda (e0: C).(\lambda (_: T).(drop (r k0 h0) (r k d) c e0))))))) H3 c 
+H10) in (let H12 \def (eq_ind C c0 (\lambda (c1: C).(drop (r k0 h0) O c1 e)) 
+H2 c H10) in (let H13 \def (eq_ind K k0 (\lambda (k1: K).((eq nat O (S d)) 
+\to ((eq C c (CHead c k u)) \to (ex3_2 C T (\lambda (e0: C).(\lambda (v: 
+T).(eq C e (CHead e0 k v)))) (\lambda (_: C).(\lambda (v: T).(eq T u (lift (r 
+k1 h0) (r k d) v)))) (\lambda (e0: C).(\lambda (_: T).(drop (r k1 h0) (r k d) 
+c e0))))))) H11 k H9) in (let H14 \def (eq_ind K k0 (\lambda (k1: K).(drop (r 
+k1 h0) O c e)) H12 k H9) in (let H15 \def (eq_ind nat O (\lambda (ee: 
+nat).(match ee with [O \Rightarrow True | (S _) \Rightarrow False])) I (S d) 
+H4) in (False_ind (ex3_2 C T (\lambda (e0: C).(\lambda (v: T).(eq C e (CHead 
+e0 k v)))) (\lambda (_: C).(\lambda (v: T).(eq T u (lift (S h0) (r k d) v)))) 
+(\lambda (e0: C).(\lambda (_: T).(drop (S h0) (r k d) c e0)))) H15))))))))) 
+H7)) H6))))))))))) (\lambda (k0: K).(\lambda (h0: nat).(\lambda (d0: 
+nat).(\lambda (c0: C).(\lambda (e: C).(\lambda (H2: (drop h0 (r k0 d0) c0 
+e)).(\lambda (H3: (((eq nat (r k0 d0) (S d)) \to ((eq C c0 (CHead c k u)) \to 
+(ex3_2 C T (\lambda (e0: C).(\lambda (v: T).(eq C e (CHead e0 k v)))) 
+(\lambda (_: C).(\lambda (v: T).(eq T u (lift h0 (r k d) v)))) (\lambda (e0: 
+C).(\lambda (_: T).(drop h0 (r k d) c e0)))))))).(\lambda (u0: T).(\lambda 
+(H4: (eq nat (S d0) (S d))).(\lambda (H5: (eq C (CHead c0 k0 (lift h0 (r k0 
+d0) u0)) (CHead c k u))).(let H6 \def (f_equal C C (\lambda (e0: C).(match e0 
+with [(CSort _) \Rightarrow c0 | (CHead c1 _ _) \Rightarrow c1])) (CHead c0 
+k0 (lift h0 (r k0 d0) u0)) (CHead c k u) H5) in ((let H7 \def (f_equal C K 
+(\lambda (e0: C).(match e0 with [(CSort _) \Rightarrow k0 | (CHead _ k1 _) 
+\Rightarrow k1])) (CHead c0 k0 (lift h0 (r k0 d0) u0)) (CHead c k u) H5) in 
+((let H8 \def (f_equal C T (\lambda (e0: C).(match e0 with [(CSort _) 
+\Rightarrow (lref_map (\lambda (x0: nat).(plus x0 h0)) (r k0 d0) u0) | (CHead 
+_ _ t) \Rightarrow t])) (CHead c0 k0 (lift h0 (r k0 d0) u0)) (CHead c k u) 
+H5) in (\lambda (H9: (eq K k0 k)).(\lambda (H10: (eq C c0 c)).(let H11 \def 
+(eq_ind C c0 (\lambda (c1: C).((eq nat (r k0 d0) (S d)) \to ((eq C c1 (CHead 
+c k u)) \to (ex3_2 C T (\lambda (e0: C).(\lambda (v: T).(eq C e (CHead e0 k 
+v)))) (\lambda (_: C).(\lambda (v: T).(eq T u (lift h0 (r k d) v)))) (\lambda 
+(e0: C).(\lambda (_: T).(drop h0 (r k d) c e0))))))) H3 c H10) in (let H12 
+\def (eq_ind C c0 (\lambda (c1: C).(drop h0 (r k0 d0) c1 e)) H2 c H10) in 
+(let H13 \def (eq_ind K k0 (\lambda (k1: K).(eq T (lift h0 (r k1 d0) u0) u)) 
+H8 k H9) in (let H14 \def (eq_ind K k0 (\lambda (k1: K).((eq nat (r k1 d0) (S 
+d)) \to ((eq C c (CHead c k u)) \to (ex3_2 C T (\lambda (e0: C).(\lambda (v: 
+T).(eq C e (CHead e0 k v)))) (\lambda (_: C).(\lambda (v: T).(eq T u (lift h0 
+(r k d) v)))) (\lambda (e0: C).(\lambda (_: T).(drop h0 (r k d) c e0))))))) 
+H11 k H9) in (let H15 \def (eq_ind K k0 (\lambda (k1: K).(drop h0 (r k1 d0) c 
+e)) H12 k H9) in (eq_ind_r K k (\lambda (k1: K).(ex3_2 C T (\lambda (e0: 
+C).(\lambda (v: T).(eq C (CHead e k1 u0) (CHead e0 k v)))) (\lambda (_: 
 C).(\lambda (v: T).(eq T u (lift h0 (r k d) v)))) (\lambda (e0: C).(\lambda 
-(_: T).(drop h0 (r k d) c e0)))))))).(\lambda (u0: T).(\lambda (H4: (eq nat 
-(S d0) (S d))).(\lambda (H5: (eq C (CHead c0 k0 (lift h0 (r k0 d0) u0)) 
-(CHead c k u))).(let TMP_100 \def (\lambda (e0: C).(match e0 with [(CSort _) 
-\Rightarrow c0 | (CHead c1 _ _) \Rightarrow c1])) in (let TMP_101 \def (r k0 
-d0) in (let TMP_102 \def (lift h0 TMP_101 u0) in (let TMP_103 \def (CHead c0 
-k0 TMP_102) in (let TMP_104 \def (CHead c k u) in (let H6 \def (f_equal C C 
-TMP_100 TMP_103 TMP_104 H5) in (let TMP_105 \def (\lambda (e0: C).(match e0 
-with [(CSort _) \Rightarrow k0 | (CHead _ k1 _) \Rightarrow k1])) in (let 
-TMP_106 \def (r k0 d0) in (let TMP_107 \def (lift h0 TMP_106 u0) in (let 
-TMP_108 \def (CHead c0 k0 TMP_107) in (let TMP_109 \def (CHead c k u) in (let 
-H7 \def (f_equal C K TMP_105 TMP_108 TMP_109 H5) in (let TMP_117 \def 
-(\lambda (e0: C).(match e0 with [(CSort _) \Rightarrow (let TMP_115 \def 
-(\lambda (x0: nat).(plus x0 h0)) in (let TMP_116 \def (r k0 d0) in (lref_map 
-TMP_115 TMP_116 u0))) | (CHead _ _ t) \Rightarrow t])) in (let TMP_118 \def 
-(r k0 d0) in (let TMP_119 \def (lift h0 TMP_118 u0) in (let TMP_120 \def 
-(CHead c0 k0 TMP_119) in (let TMP_121 \def (CHead c k u) in (let H8 \def 
-(f_equal C T TMP_117 TMP_120 TMP_121 H5) in (let TMP_219 \def (\lambda (H9: 
-(eq K k0 k)).(\lambda (H10: (eq C c0 c)).(let TMP_129 \def (\lambda (c1: 
-C).((eq nat (r k0 d0) (S d)) \to ((eq C c1 (CHead c k u)) \to (let TMP_123 
-\def (\lambda (e0: C).(\lambda (v: T).(let TMP_122 \def (CHead e0 k v) in (eq 
-C e TMP_122)))) in (let TMP_126 \def (\lambda (_: C).(\lambda (v: T).(let 
-TMP_124 \def (r k d) in (let TMP_125 \def (lift h0 TMP_124 v) in (eq T u 
-TMP_125))))) in (let TMP_128 \def (\lambda (e0: C).(\lambda (_: T).(let 
-TMP_127 \def (r k d) in (drop h0 TMP_127 c e0)))) in (ex3_2 C T TMP_123 
-TMP_126 TMP_128))))))) in (let H11 \def (eq_ind C c0 TMP_129 H3 c H10) in 
-(let TMP_131 \def (\lambda (c1: C).(let TMP_130 \def (r k0 d0) in (drop h0 
-TMP_130 c1 e))) in (let H12 \def (eq_ind C c0 TMP_131 H2 c H10) in (let 
-TMP_134 \def (\lambda (k1: K).(let TMP_132 \def (r k1 d0) in (let TMP_133 
-\def (lift h0 TMP_132 u0) in (eq T TMP_133 u)))) in (let H13 \def (eq_ind K 
-k0 TMP_134 H8 k H9) in (let TMP_142 \def (\lambda (k1: K).((eq nat (r k1 d0) 
-(S d)) \to ((eq C c (CHead c k u)) \to (let TMP_136 \def (\lambda (e0: 
-C).(\lambda (v: T).(let TMP_135 \def (CHead e0 k v) in (eq C e TMP_135)))) in 
-(let TMP_139 \def (\lambda (_: C).(\lambda (v: T).(let TMP_137 \def (r k d) 
-in (let TMP_138 \def (lift h0 TMP_137 v) in (eq T u TMP_138))))) in (let 
-TMP_141 \def (\lambda (e0: C).(\lambda (_: T).(let TMP_140 \def (r k d) in 
-(drop h0 TMP_140 c e0)))) in (ex3_2 C T TMP_136 TMP_139 TMP_141))))))) in 
-(let H14 \def (eq_ind K k0 TMP_142 H11 k H9) in (let TMP_144 \def (\lambda 
-(k1: K).(let TMP_143 \def (r k1 d0) in (drop h0 TMP_143 c e))) in (let H15 
-\def (eq_ind K k0 TMP_144 H12 k H9) in (let TMP_153 \def (\lambda (k1: 
-K).(let TMP_147 \def (\lambda (e0: C).(\lambda (v: T).(let TMP_145 \def 
-(CHead e k1 u0) in (let TMP_146 \def (CHead e0 k v) in (eq C TMP_145 
-TMP_146))))) in (let TMP_150 \def (\lambda (_: C).(\lambda (v: T).(let 
-TMP_148 \def (r k d) in (let TMP_149 \def (lift h0 TMP_148 v) in (eq T u 
-TMP_149))))) in (let TMP_152 \def (\lambda (e0: C).(\lambda (_: T).(let 
-TMP_151 \def (r k d) in (drop h0 TMP_151 c e0)))) in (ex3_2 C T TMP_147 
-TMP_150 TMP_152))))) in (let TMP_161 \def (\lambda (t: T).((eq nat (r k d0) 
-(S d)) \to ((eq C c (CHead c k t)) \to (let TMP_155 \def (\lambda (e0: 
-C).(\lambda (v: T).(let TMP_154 \def (CHead e0 k v) in (eq C e TMP_154)))) in 
-(let TMP_158 \def (\lambda (_: C).(\lambda (v: T).(let TMP_156 \def (r k d) 
-in (let TMP_157 \def (lift h0 TMP_156 v) in (eq T t TMP_157))))) in (let 
-TMP_160 \def (\lambda (e0: C).(\lambda (_: T).(let TMP_159 \def (r k d) in 
-(drop h0 TMP_159 c e0)))) in (ex3_2 C T TMP_155 TMP_158 TMP_160))))))) in 
-(let TMP_162 \def (r k d0) in (let TMP_163 \def (lift h0 TMP_162 u0) in (let 
-H16 \def (eq_ind_r T u TMP_161 H14 TMP_163 H13) in (let TMP_164 \def (r k d0) 
-in (let TMP_165 \def (lift h0 TMP_164 u0) in (let TMP_174 \def (\lambda (t: 
-T).(let TMP_168 \def (\lambda (e0: C).(\lambda (v: T).(let TMP_166 \def 
-(CHead e k u0) in (let TMP_167 \def (CHead e0 k v) in (eq C TMP_166 
-TMP_167))))) in (let TMP_171 \def (\lambda (_: C).(\lambda (v: T).(let 
-TMP_169 \def (r k d) in (let TMP_170 \def (lift h0 TMP_169 v) in (eq T t 
-TMP_170))))) in (let TMP_173 \def (\lambda (e0: C).(\lambda (_: T).(let 
-TMP_172 \def (r k d) in (drop h0 TMP_172 c e0)))) in (ex3_2 C T TMP_168 
-TMP_171 TMP_173))))) in (let TMP_175 \def (\lambda (e0: nat).(match e0 with 
-[O \Rightarrow d0 | (S n) \Rightarrow n])) in (let TMP_176 \def (S d0) in 
-(let TMP_177 \def (S d) in (let H17 \def (f_equal nat nat TMP_175 TMP_176 
-TMP_177 H4) in (let TMP_187 \def (\lambda (n: nat).((eq nat (r k n) (S d)) 
-\to ((eq C c (CHead c k (lift h0 (r k n) u0))) \to (let TMP_179 \def (\lambda 
-(e0: C).(\lambda (v: T).(let TMP_178 \def (CHead e0 k v) in (eq C e 
-TMP_178)))) in (let TMP_184 \def (\lambda (_: C).(\lambda (v: T).(let TMP_180 
-\def (r k n) in (let TMP_181 \def (lift h0 TMP_180 u0) in (let TMP_182 \def 
-(r k d) in (let TMP_183 \def (lift h0 TMP_182 v) in (eq T TMP_181 
-TMP_183))))))) in (let TMP_186 \def (\lambda (e0: C).(\lambda (_: T).(let 
-TMP_185 \def (r k d) in (drop h0 TMP_185 c e0)))) in (ex3_2 C T TMP_179 
-TMP_184 TMP_186))))))) in (let H18 \def (eq_ind nat d0 TMP_187 H16 d H17) in 
-(let TMP_189 \def (\lambda (n: nat).(let TMP_188 \def (r k n) in (drop h0 
-TMP_188 c e))) in (let H19 \def (eq_ind nat d0 TMP_189 H15 d H17) in (let 
-TMP_200 \def (\lambda (n: nat).(let TMP_192 \def (\lambda (e0: C).(\lambda 
-(v: T).(let TMP_190 \def (CHead e k u0) in (let TMP_191 \def (CHead e0 k v) 
-in (eq C TMP_190 TMP_191))))) in (let TMP_197 \def (\lambda (_: C).(\lambda 
-(v: T).(let TMP_193 \def (r k n) in (let TMP_194 \def (lift h0 TMP_193 u0) in 
-(let TMP_195 \def (r k d) in (let TMP_196 \def (lift h0 TMP_195 v) in (eq T 
-TMP_194 TMP_196))))))) in (let TMP_199 \def (\lambda (e0: C).(\lambda (_: 
-T).(let TMP_198 \def (r k d) in (drop h0 TMP_198 c e0)))) in (ex3_2 C T 
-TMP_192 TMP_197 TMP_199))))) in (let TMP_203 \def (\lambda (e0: C).(\lambda 
-(v: T).(let TMP_201 \def (CHead e k u0) in (let TMP_202 \def (CHead e0 k v) 
-in (eq C TMP_201 TMP_202))))) in (let TMP_208 \def (\lambda (_: C).(\lambda 
-(v: T).(let TMP_204 \def (r k d) in (let TMP_205 \def (lift h0 TMP_204 u0) in 
-(let TMP_206 \def (r k d) in (let TMP_207 \def (lift h0 TMP_206 v) in (eq T 
-TMP_205 TMP_207))))))) in (let TMP_210 \def (\lambda (e0: C).(\lambda (_: 
-T).(let TMP_209 \def (r k d) in (drop h0 TMP_209 c e0)))) in (let TMP_211 
-\def (CHead e k u0) in (let TMP_212 \def (refl_equal C TMP_211) in (let 
-TMP_213 \def (r k d) in (let TMP_214 \def (lift h0 TMP_213 u0) in (let 
-TMP_215 \def (refl_equal T TMP_214) in (let TMP_216 \def (ex3_2_intro C T 
-TMP_203 TMP_208 TMP_210 e u0 TMP_212 TMP_215 H19) in (let TMP_217 \def 
-(eq_ind_r nat d TMP_200 TMP_216 d0 H17) in (let TMP_218 \def (eq_ind T 
-TMP_165 TMP_174 TMP_217 u H13) in (eq_ind_r K k TMP_153 TMP_218 k0 
-H9))))))))))))))))))))))))))))))))))))))))) in (let TMP_220 \def (TMP_219 H7) 
-in (TMP_220 H6))))))))))))))))))))))))))))))) in (drop_ind TMP_29 TMP_51 
-TMP_99 TMP_221 h y0 y x H1))))))) in (insert_eq nat TMP_12 TMP_13 TMP_21 
-TMP_222 H0))))))) in (insert_eq C TMP_1 TMP_3 TMP_11 TMP_223 H))))))))))).
+(_: T).(drop h0 (r k d) c e0))))) (let H16 \def (eq_ind_r T u (\lambda (t: 
+T).((eq nat (r k d0) (S d)) \to ((eq C c (CHead c k t)) \to (ex3_2 C T 
+(\lambda (e0: C).(\lambda (v: T).(eq C e (CHead e0 k v)))) (\lambda (_: 
+C).(\lambda (v: T).(eq T t (lift h0 (r k d) v)))) (\lambda (e0: C).(\lambda 
+(_: T).(drop h0 (r k d) c e0))))))) H14 (lift h0 (r k d0) u0) H13) in (eq_ind 
+T (lift h0 (r k d0) u0) (\lambda (t: T).(ex3_2 C T (\lambda (e0: C).(\lambda 
+(v: T).(eq C (CHead e k u0) (CHead e0 k v)))) (\lambda (_: C).(\lambda (v: 
+T).(eq T t (lift h0 (r k d) v)))) (\lambda (e0: C).(\lambda (_: T).(drop h0 
+(r k d) c e0))))) (let H17 \def (f_equal nat nat (\lambda (e0: nat).(match e0 
+with [O \Rightarrow d0 | (S n) \Rightarrow n])) (S d0) (S d) H4) in (let H18 
+\def (eq_ind nat d0 (\lambda (n: nat).((eq nat (r k n) (S d)) \to ((eq C c 
+(CHead c k (lift h0 (r k n) u0))) \to (ex3_2 C T (\lambda (e0: C).(\lambda 
+(v: T).(eq C e (CHead e0 k v)))) (\lambda (_: C).(\lambda (v: T).(eq T (lift 
+h0 (r k n) u0) (lift h0 (r k d) v)))) (\lambda (e0: C).(\lambda (_: T).(drop 
+h0 (r k d) c e0))))))) H16 d H17) in (let H19 \def (eq_ind nat d0 (\lambda 
+(n: nat).(drop h0 (r k n) c e)) H15 d H17) in (eq_ind_r nat d (\lambda (n: 
+nat).(ex3_2 C T (\lambda (e0: C).(\lambda (v: T).(eq C (CHead e k u0) (CHead 
+e0 k v)))) (\lambda (_: C).(\lambda (v: T).(eq T (lift h0 (r k n) u0) (lift 
+h0 (r k d) v)))) (\lambda (e0: C).(\lambda (_: T).(drop h0 (r k d) c e0))))) 
+(ex3_2_intro C T (\lambda (e0: C).(\lambda (v: T).(eq C (CHead e k u0) (CHead 
+e0 k v)))) (\lambda (_: C).(\lambda (v: T).(eq T (lift h0 (r k d) u0) (lift 
+h0 (r k d) v)))) (\lambda (e0: C).(\lambda (_: T).(drop h0 (r k d) c e0))) e 
+u0 (refl_equal C (CHead e k u0)) (refl_equal T (lift h0 (r k d) u0)) H19) d0 
+H17)))) u H13)) k0 H9))))))))) H7)) H6)))))))))))) h y0 y x H1))) H0))) 
+H))))))).
 
 theorem drop_S:
  \forall (b: B).(\forall (c: C).(\forall (e: C).(\forall (u: T).(\forall (h: 
 nat).((drop h O c (CHead e (Bind b) u)) \to (drop (S h) O c e))))))
 \def
- \lambda (b: B).(\lambda (c: C).(let TMP_2 \def (\lambda (c0: C).(\forall (e: 
+ \lambda (b: B).(\lambda (c: C).(C_ind (\lambda (c0: C).(\forall (e: 
 C).(\forall (u: T).(\forall (h: nat).((drop h O c0 (CHead e (Bind b) u)) \to 
-(let TMP_1 \def (S h) in (drop TMP_1 O c0 e))))))) in (let TMP_27 \def 
-(\lambda (n: nat).(\lambda (e: C).(\lambda (u: T).(\lambda (h: nat).(\lambda 
-(H: (drop h O (CSort n) (CHead e (Bind b) u))).(let TMP_3 \def (Bind b) in 
-(let TMP_4 \def (CHead e TMP_3 u) in (let TMP_5 \def (CSort n) in (let TMP_6 
-\def (eq C TMP_4 TMP_5) in (let TMP_7 \def (eq nat h O) in (let TMP_8 \def 
-(eq nat O O) in (let TMP_9 \def (S h) in (let TMP_10 \def (CSort n) in (let 
-TMP_11 \def (drop TMP_9 O TMP_10 e) in (let TMP_23 \def (\lambda (H0: (eq C 
-(CHead e (Bind b) u) (CSort n))).(\lambda (H1: (eq nat h O)).(\lambda (_: (eq 
-nat O O)).(let TMP_14 \def (\lambda (n0: nat).(let TMP_12 \def (S n0) in (let 
-TMP_13 \def (CSort n) in (drop TMP_12 O TMP_13 e)))) in (let TMP_15 \def 
-(Bind b) in (let TMP_16 \def (CHead e TMP_15 u) in (let TMP_17 \def (\lambda 
-(ee: C).(match ee with [(CSort _) \Rightarrow False | (CHead _ _ _) 
-\Rightarrow True])) in (let TMP_18 \def (CSort n) in (let H3 \def (eq_ind C 
-TMP_16 TMP_17 I TMP_18 H0) in (let TMP_19 \def (S O) in (let TMP_20 \def 
-(CSort n) in (let TMP_21 \def (drop TMP_19 O TMP_20 e) in (let TMP_22 \def 
-(False_ind TMP_21 H3) in (eq_ind_r nat O TMP_14 TMP_22 h H1)))))))))))))) in 
-(let TMP_24 \def (Bind b) in (let TMP_25 \def (CHead e TMP_24 u) in (let 
-TMP_26 \def (drop_gen_sort n h O TMP_25 H) in (and3_ind TMP_6 TMP_7 TMP_8 
-TMP_11 TMP_23 TMP_26))))))))))))))))))) in (let TMP_83 \def (\lambda (c0: 
-C).(\lambda (H: ((\forall (e: C).(\forall (u: T).(\forall (h: nat).((drop h O 
-c0 (CHead e (Bind b) u)) \to (drop (S h) O c0 e))))))).(\lambda (k: 
-K).(\lambda (t: T).(\lambda (e: C).(\lambda (u: T).(\lambda (h: nat).(let 
-TMP_30 \def (\lambda (n: nat).((drop n O (CHead c0 k t) (CHead e (Bind b) u)) 
-\to (let TMP_28 \def (S n) in (let TMP_29 \def (CHead c0 k t) in (drop TMP_28 
-O TMP_29 e))))) in (let TMP_68 \def (\lambda (H0: (drop O O (CHead c0 k t) 
-(CHead e (Bind b) u))).(let TMP_31 \def (\lambda (e0: C).(match e0 with 
-[(CSort _) \Rightarrow c0 | (CHead c1 _ _) \Rightarrow c1])) in (let TMP_32 
-\def (CHead c0 k t) in (let TMP_33 \def (Bind b) in (let TMP_34 \def (CHead e 
-TMP_33 u) in (let TMP_35 \def (CHead c0 k t) in (let TMP_36 \def (Bind b) in 
-(let TMP_37 \def (CHead e TMP_36 u) in (let TMP_38 \def (drop_gen_refl TMP_35 
-TMP_37 H0) in (let H1 \def (f_equal C C TMP_31 TMP_32 TMP_34 TMP_38) in (let 
-TMP_39 \def (\lambda (e0: C).(match e0 with [(CSort _) \Rightarrow k | (CHead 
-_ k0 _) \Rightarrow k0])) in (let TMP_40 \def (CHead c0 k t) in (let TMP_41 
-\def (Bind b) in (let TMP_42 \def (CHead e TMP_41 u) in (let TMP_43 \def 
-(CHead c0 k t) in (let TMP_44 \def (Bind b) in (let TMP_45 \def (CHead e 
-TMP_44 u) in (let TMP_46 \def (drop_gen_refl TMP_43 TMP_45 H0) in (let H2 
-\def (f_equal C K TMP_39 TMP_40 TMP_42 TMP_46) in (let TMP_47 \def (\lambda 
-(e0: C).(match e0 with [(CSort _) \Rightarrow t | (CHead _ _ t0) \Rightarrow 
-t0])) in (let TMP_48 \def (CHead c0 k t) in (let TMP_49 \def (Bind b) in (let 
-TMP_50 \def (CHead e TMP_49 u) in (let TMP_51 \def (CHead c0 k t) in (let 
-TMP_52 \def (Bind b) in (let TMP_53 \def (CHead e TMP_52 u) in (let TMP_54 
-\def (drop_gen_refl TMP_51 TMP_53 H0) in (let H3 \def (f_equal C T TMP_47 
-TMP_48 TMP_50 TMP_54) in (let TMP_66 \def (\lambda (H4: (eq K k (Bind 
-b))).(\lambda (H5: (eq C c0 e)).(let TMP_57 \def (\lambda (c1: C).(let TMP_55 
-\def (S O) in (let TMP_56 \def (CHead c0 k t) in (drop TMP_55 O TMP_56 c1)))) 
-in (let TMP_58 \def (Bind b) in (let TMP_61 \def (\lambda (k0: K).(let TMP_59 
-\def (S O) in (let TMP_60 \def (CHead c0 k0 t) in (drop TMP_59 O TMP_60 
-c0)))) in (let TMP_62 \def (Bind b) in (let TMP_63 \def (drop_refl c0) in 
-(let TMP_64 \def (drop_drop TMP_62 O c0 c0 TMP_63 t) in (let TMP_65 \def 
-(eq_ind_r K TMP_58 TMP_61 TMP_64 k H4) in (eq_ind C c0 TMP_57 TMP_65 e 
-H5)))))))))) in (let TMP_67 \def (TMP_66 H2) in (TMP_67 
-H1))))))))))))))))))))))))))))))) in (let TMP_82 \def (\lambda (n: 
-nat).(\lambda (_: (((drop n O (CHead c0 k t) (CHead e (Bind b) u)) \to (drop 
-(S n) O (CHead c0 k t) e)))).(\lambda (H1: (drop (S n) O (CHead c0 k t) 
-(CHead e (Bind b) u))).(let TMP_69 \def (S n) in (let TMP_70 \def (r k n) in 
-(let TMP_71 \def (S TMP_70) in (let TMP_72 \def (\lambda (n0: nat).(drop n0 O 
-c0 e)) in (let TMP_73 \def (r k n) in (let TMP_74 \def (Bind b) in (let 
-TMP_75 \def (CHead e TMP_74 u) in (let TMP_76 \def (drop_gen_drop k c0 TMP_75 
-t n H1) in (let TMP_77 \def (H e u TMP_73 TMP_76) in (let TMP_78 \def (S n) 
-in (let TMP_79 \def (r k TMP_78) in (let TMP_80 \def (r_S k n) in (let TMP_81 
-\def (eq_ind_r nat TMP_71 TMP_72 TMP_77 TMP_79 TMP_80) in (drop_drop k TMP_69 
-c0 e TMP_81 t))))))))))))))))) in (nat_ind TMP_30 TMP_68 TMP_82 h))))))))))) 
-in (C_ind TMP_2 TMP_27 TMP_83 c))))).
+(drop (S h) O c0 e)))))) (\lambda (n: nat).(\lambda (e: C).(\lambda (u: 
+T).(\lambda (h: nat).(\lambda (H: (drop h O (CSort n) (CHead e (Bind b) 
+u))).(and3_ind (eq C (CHead e (Bind b) u) (CSort n)) (eq nat h O) (eq nat O 
+O) (drop (S h) O (CSort n) e) (\lambda (H0: (eq C (CHead e (Bind b) u) (CSort 
+n))).(\lambda (H1: (eq nat h O)).(\lambda (_: (eq nat O O)).(eq_ind_r nat O 
+(\lambda (n0: nat).(drop (S n0) O (CSort n) e)) (let H3 \def (eq_ind C (CHead 
+e (Bind b) u) (\lambda (ee: C).(match ee with [(CSort _) \Rightarrow False | 
+(CHead _ _ _) \Rightarrow True])) I (CSort n) H0) in (False_ind (drop (S O) O 
+(CSort n) e) H3)) h H1)))) (drop_gen_sort n h O (CHead e (Bind b) u) H))))))) 
+(\lambda (c0: C).(\lambda (H: ((\forall (e: C).(\forall (u: T).(\forall (h: 
+nat).((drop h O c0 (CHead e (Bind b) u)) \to (drop (S h) O c0 
+e))))))).(\lambda (k: K).(\lambda (t: T).(\lambda (e: C).(\lambda (u: 
+T).(\lambda (h: nat).(nat_ind (\lambda (n: nat).((drop n O (CHead c0 k t) 
+(CHead e (Bind b) u)) \to (drop (S n) O (CHead c0 k t) e))) (\lambda (H0: 
+(drop O O (CHead c0 k t) (CHead e (Bind b) u))).(let H1 \def (f_equal C C 
+(\lambda (e0: C).(match e0 with [(CSort _) \Rightarrow c0 | (CHead c1 _ _) 
+\Rightarrow c1])) (CHead c0 k t) (CHead e (Bind b) u) (drop_gen_refl (CHead 
+c0 k t) (CHead e (Bind b) u) H0)) in ((let H2 \def (f_equal C K (\lambda (e0: 
+C).(match e0 with [(CSort _) \Rightarrow k | (CHead _ k0 _) \Rightarrow k0])) 
+(CHead c0 k t) (CHead e (Bind b) u) (drop_gen_refl (CHead c0 k t) (CHead e 
+(Bind b) u) H0)) in ((let H3 \def (f_equal C T (\lambda (e0: C).(match e0 
+with [(CSort _) \Rightarrow t | (CHead _ _ t0) \Rightarrow t0])) (CHead c0 k 
+t) (CHead e (Bind b) u) (drop_gen_refl (CHead c0 k t) (CHead e (Bind b) u) 
+H0)) in (\lambda (H4: (eq K k (Bind b))).(\lambda (H5: (eq C c0 e)).(eq_ind C 
+c0 (\lambda (c1: C).(drop (S O) O (CHead c0 k t) c1)) (eq_ind_r K (Bind b) 
+(\lambda (k0: K).(drop (S O) O (CHead c0 k0 t) c0)) (drop_drop (Bind b) O c0 
+c0 (drop_refl c0) t) k H4) e H5)))) H2)) H1))) (\lambda (n: nat).(\lambda (_: 
+(((drop n O (CHead c0 k t) (CHead e (Bind b) u)) \to (drop (S n) O (CHead c0 
+k t) e)))).(\lambda (H1: (drop (S n) O (CHead c0 k t) (CHead e (Bind b) 
+u))).(drop_drop k (S n) c0 e (eq_ind_r nat (S (r k n)) (\lambda (n0: 
+nat).(drop n0 O c0 e)) (H e u (r k n) (drop_gen_drop k c0 (CHead e (Bind b) 
+u) t n H1)) (r k (S n)) (r_S k n)) t)))) h)))))))) c)).
 
 theorem drop_mono:
  \forall (c: C).(\forall (x1: C).(\forall (d: nat).(\forall (h: nat).((drop h 
 d c x1) \to (\forall (x2: C).((drop h d c x2) \to (eq C x1 x2)))))))
 \def
- \lambda (c: C).(let TMP_1 \def (\lambda (c0: C).(\forall (x1: C).(\forall 
-(d: nat).(\forall (h: nat).((drop h d c0 x1) \to (\forall (x2: C).((drop h d 
-c0 x2) \to (eq C x1 x2)))))))) in (let TMP_26 \def (\lambda (n: nat).(\lambda 
-(x1: C).(\lambda (d: nat).(\lambda (h: nat).(\lambda (H: (drop h d (CSort n) 
-x1)).(\lambda (x2: C).(\lambda (H0: (drop h d (CSort n) x2)).(let TMP_2 \def 
-(CSort n) in (let TMP_3 \def (eq C x2 TMP_2) in (let TMP_4 \def (eq nat h O) 
-in (let TMP_5 \def (eq nat d O) in (let TMP_6 \def (eq C x1 x2) in (let 
-TMP_24 \def (\lambda (H1: (eq C x2 (CSort n))).(\lambda (H2: (eq nat h 
-O)).(\lambda (H3: (eq nat d O)).(let TMP_7 \def (CSort n) in (let TMP_8 \def 
-(eq C x1 TMP_7) in (let TMP_9 \def (eq nat h O) in (let TMP_10 \def (eq nat d 
-O) in (let TMP_11 \def (eq C x1 x2) in (let TMP_22 \def (\lambda (H4: (eq C 
-x1 (CSort n))).(\lambda (H5: (eq nat h O)).(\lambda (H6: (eq nat d O)).(let 
-TMP_12 \def (CSort n) in (let TMP_13 \def (\lambda (c0: C).(eq C x1 c0)) in 
-(let TMP_14 \def (\lambda (n0: nat).(eq nat n0 O)) in (let H7 \def (eq_ind 
-nat h TMP_14 H2 O H5) in (let TMP_15 \def (\lambda (n0: nat).(eq nat n0 O)) 
-in (let H8 \def (eq_ind nat d TMP_15 H3 O H6) in (let TMP_16 \def (CSort n) 
-in (let TMP_18 \def (\lambda (c0: C).(let TMP_17 \def (CSort n) in (eq C c0 
-TMP_17))) in (let TMP_19 \def (CSort n) in (let TMP_20 \def (refl_equal C 
-TMP_19) in (let TMP_21 \def (eq_ind_r C TMP_16 TMP_18 TMP_20 x1 H4) in 
-(eq_ind_r C TMP_12 TMP_13 TMP_21 x2 H1))))))))))))))) in (let TMP_23 \def 
-(drop_gen_sort n h d x1 H) in (and3_ind TMP_8 TMP_9 TMP_10 TMP_11 TMP_22 
-TMP_23))))))))))) in (let TMP_25 \def (drop_gen_sort n h d x2 H0) in 
-(and3_ind TMP_3 TMP_4 TMP_5 TMP_6 TMP_24 TMP_25))))))))))))))) in (let 
-TMP_109 \def (\lambda (c0: C).(\lambda (H: ((\forall (x1: C).(\forall (d: 
+ \lambda (c: C).(C_ind (\lambda (c0: C).(\forall (x1: C).(\forall (d: 
 nat).(\forall (h: nat).((drop h d c0 x1) \to (\forall (x2: C).((drop h d c0 
-x2) \to (eq C x1 x2))))))))).(\lambda (k: K).(\lambda (t: T).(\lambda (x1: 
-C).(\lambda (d: nat).(let TMP_27 \def (\lambda (n: nat).(\forall (h: 
-nat).((drop h n (CHead c0 k t) x1) \to (\forall (x2: C).((drop h n (CHead c0 
-k t) x2) \to (eq C x1 x2)))))) in (let TMP_46 \def (\lambda (h: nat).(let 
-TMP_28 \def (\lambda (n: nat).((drop n O (CHead c0 k t) x1) \to (\forall (x2: 
-C).((drop n O (CHead c0 k t) x2) \to (eq C x1 x2))))) in (let TMP_41 \def 
+x2) \to (eq C x1 x2)))))))) (\lambda (n: nat).(\lambda (x1: C).(\lambda (d: 
+nat).(\lambda (h: nat).(\lambda (H: (drop h d (CSort n) x1)).(\lambda (x2: 
+C).(\lambda (H0: (drop h d (CSort n) x2)).(and3_ind (eq C x2 (CSort n)) (eq 
+nat h O) (eq nat d O) (eq C x1 x2) (\lambda (H1: (eq C x2 (CSort 
+n))).(\lambda (H2: (eq nat h O)).(\lambda (H3: (eq nat d O)).(and3_ind (eq C 
+x1 (CSort n)) (eq nat h O) (eq nat d O) (eq C x1 x2) (\lambda (H4: (eq C x1 
+(CSort n))).(\lambda (H5: (eq nat h O)).(\lambda (H6: (eq nat d O)).(eq_ind_r 
+C (CSort n) (\lambda (c0: C).(eq C x1 c0)) (let H7 \def (eq_ind nat h 
+(\lambda (n0: nat).(eq nat n0 O)) H2 O H5) in (let H8 \def (eq_ind nat d 
+(\lambda (n0: nat).(eq nat n0 O)) H3 O H6) in (eq_ind_r C (CSort n) (\lambda 
+(c0: C).(eq C c0 (CSort n))) (refl_equal C (CSort n)) x1 H4))) x2 H1)))) 
+(drop_gen_sort n h d x1 H))))) (drop_gen_sort n h d x2 H0))))))))) (\lambda 
+(c0: C).(\lambda (H: ((\forall (x1: C).(\forall (d: nat).(\forall (h: 
+nat).((drop h d c0 x1) \to (\forall (x2: C).((drop h d c0 x2) \to (eq C x1 
+x2))))))))).(\lambda (k: K).(\lambda (t: T).(\lambda (x1: C).(\lambda (d: 
+nat).(nat_ind (\lambda (n: nat).(\forall (h: nat).((drop h n (CHead c0 k t) 
+x1) \to (\forall (x2: C).((drop h n (CHead c0 k t) x2) \to (eq C x1 x2)))))) 
+(\lambda (h: nat).(nat_ind (\lambda (n: nat).((drop n O (CHead c0 k t) x1) 
+\to (\forall (x2: C).((drop n O (CHead c0 k t) x2) \to (eq C x1 x2))))) 
 (\lambda (H0: (drop O O (CHead c0 k t) x1)).(\lambda (x2: C).(\lambda (H1: 
-(drop O O (CHead c0 k t) x2)).(let TMP_29 \def (CHead c0 k t) in (let TMP_30 
-\def (\lambda (c1: C).(eq C x1 c1)) in (let TMP_31 \def (CHead c0 k t) in 
-(let TMP_33 \def (\lambda (c1: C).(let TMP_32 \def (CHead c0 k t) in (eq C c1 
-TMP_32))) in (let TMP_34 \def (CHead c0 k t) in (let TMP_35 \def (refl_equal 
-C TMP_34) in (let TMP_36 \def (CHead c0 k t) in (let TMP_37 \def 
-(drop_gen_refl TMP_36 x1 H0) in (let TMP_38 \def (eq_ind C TMP_31 TMP_33 
-TMP_35 x1 TMP_37) in (let TMP_39 \def (CHead c0 k t) in (let TMP_40 \def 
-(drop_gen_refl TMP_39 x2 H1) in (eq_ind C TMP_29 TMP_30 TMP_38 x2 
-TMP_40))))))))))))))) in (let TMP_45 \def (\lambda (n: nat).(\lambda (_: 
+(drop O O (CHead c0 k t) x2)).(eq_ind C (CHead c0 k t) (\lambda (c1: C).(eq C 
+x1 c1)) (eq_ind C (CHead c0 k t) (\lambda (c1: C).(eq C c1 (CHead c0 k t))) 
+(refl_equal C (CHead c0 k t)) x1 (drop_gen_refl (CHead c0 k t) x1 H0)) x2 
+(drop_gen_refl (CHead c0 k t) x2 H1))))) (\lambda (n: nat).(\lambda (_: 
 (((drop n O (CHead c0 k t) x1) \to (\forall (x2: C).((drop n O (CHead c0 k t) 
 x2) \to (eq C x1 x2)))))).(\lambda (H1: (drop (S n) O (CHead c0 k t) 
-x1)).(\lambda (x2: C).(\lambda (H2: (drop (S n) O (CHead c0 k t) x2)).(let 
-TMP_42 \def (r k n) in (let TMP_43 \def (drop_gen_drop k c0 x1 t n H1) in 
-(let TMP_44 \def (drop_gen_drop k c0 x2 t n H2) in (H x1 O TMP_42 TMP_43 x2 
-TMP_44))))))))) in (nat_ind TMP_28 TMP_41 TMP_45 h))))) in (let TMP_108 \def 
-(\lambda (n: nat).(\lambda (H0: ((\forall (h: nat).((drop h n (CHead c0 k t) 
-x1) \to (\forall (x2: C).((drop h n (CHead c0 k t) x2) \to (eq C x1 
-x2))))))).(\lambda (h: nat).(\lambda (H1: (drop h (S n) (CHead c0 k t) 
-x1)).(\lambda (x2: C).(\lambda (H2: (drop h (S n) (CHead c0 k t) x2)).(let 
-TMP_48 \def (\lambda (e: C).(\lambda (v: T).(let TMP_47 \def (CHead e k v) in 
-(eq C x2 TMP_47)))) in (let TMP_51 \def (\lambda (_: C).(\lambda (v: T).(let 
-TMP_49 \def (r k n) in (let TMP_50 \def (lift h TMP_49 v) in (eq T t 
-TMP_50))))) in (let TMP_53 \def (\lambda (e: C).(\lambda (_: T).(let TMP_52 
-\def (r k n) in (drop h TMP_52 c0 e)))) in (let TMP_54 \def (eq C x1 x2) in 
-(let TMP_106 \def (\lambda (x0: C).(\lambda (x3: T).(\lambda (H3: (eq C x2 
-(CHead x0 k x3))).(\lambda (H4: (eq T t (lift h (r k n) x3))).(\lambda (H5: 
-(drop h (r k n) c0 x0)).(let TMP_56 \def (\lambda (e: C).(\lambda (v: T).(let 
-TMP_55 \def (CHead e k v) in (eq C x1 TMP_55)))) in (let TMP_59 \def (\lambda 
-(_: C).(\lambda (v: T).(let TMP_57 \def (r k n) in (let TMP_58 \def (lift h 
-TMP_57 v) in (eq T t TMP_58))))) in (let TMP_61 \def (\lambda (e: C).(\lambda 
-(_: T).(let TMP_60 \def (r k n) in (drop h TMP_60 c0 e)))) in (let TMP_62 
-\def (eq C x1 x2) in (let TMP_104 \def (\lambda (x4: C).(\lambda (x5: 
-T).(\lambda (H6: (eq C x1 (CHead x4 k x5))).(\lambda (H7: (eq T t (lift h (r 
-k n) x5))).(\lambda (H8: (drop h (r k n) c0 x4)).(let TMP_63 \def (CHead x0 k 
-x3) in (let TMP_64 \def (\lambda (c1: C).(eq C x1 c1)) in (let TMP_65 \def 
+x1)).(\lambda (x2: C).(\lambda (H2: (drop (S n) O (CHead c0 k t) x2)).(H x1 O 
+(r k n) (drop_gen_drop k c0 x1 t n H1) x2 (drop_gen_drop k c0 x2 t n 
+H2))))))) h)) (\lambda (n: nat).(\lambda (H0: ((\forall (h: nat).((drop h n 
+(CHead c0 k t) x1) \to (\forall (x2: C).((drop h n (CHead c0 k t) x2) \to (eq 
+C x1 x2))))))).(\lambda (h: nat).(\lambda (H1: (drop h (S n) (CHead c0 k t) 
+x1)).(\lambda (x2: C).(\lambda (H2: (drop h (S n) (CHead c0 k t) 
+x2)).(ex3_2_ind C T (\lambda (e: C).(\lambda (v: T).(eq C x2 (CHead e k v)))) 
+(\lambda (_: C).(\lambda (v: T).(eq T t (lift h (r k n) v)))) (\lambda (e: 
+C).(\lambda (_: T).(drop h (r k n) c0 e))) (eq C x1 x2) (\lambda (x0: 
+C).(\lambda (x3: T).(\lambda (H3: (eq C x2 (CHead x0 k x3))).(\lambda (H4: 
+(eq T t (lift h (r k n) x3))).(\lambda (H5: (drop h (r k n) c0 
+x0)).(ex3_2_ind C T (\lambda (e: C).(\lambda (v: T).(eq C x1 (CHead e k v)))) 
+(\lambda (_: C).(\lambda (v: T).(eq T t (lift h (r k n) v)))) (\lambda (e: 
+C).(\lambda (_: T).(drop h (r k n) c0 e))) (eq C x1 x2) (\lambda (x4: 
+C).(\lambda (x5: T).(\lambda (H6: (eq C x1 (CHead x4 k x5))).(\lambda (H7: 
+(eq T t (lift h (r k n) x5))).(\lambda (H8: (drop h (r k n) c0 x4)).(eq_ind_r 
+C (CHead x0 k x3) (\lambda (c1: C).(eq C x1 c1)) (let H9 \def (eq_ind C x1 
 (\lambda (c1: C).(\forall (h0: nat).((drop h0 n (CHead c0 k t) c1) \to 
-(\forall (x6: C).((drop h0 n (CHead c0 k t) x6) \to (eq C c1 x6)))))) in (let 
-TMP_66 \def (CHead x4 k x5) in (let H9 \def (eq_ind C x1 TMP_65 H0 TMP_66 H6) 
-in (let TMP_67 \def (CHead x4 k x5) in (let TMP_69 \def (\lambda (c1: C).(let 
-TMP_68 \def (CHead x0 k x3) in (eq C c1 TMP_68))) in (let TMP_71 \def 
-(\lambda (t0: T).(\forall (h0: nat).((drop h0 n (CHead c0 k t0) (CHead x4 k 
-x5)) \to (\forall (x6: C).((drop h0 n (CHead c0 k t0) x6) \to (let TMP_70 
-\def (CHead x4 k x5) in (eq C TMP_70 x6))))))) in (let TMP_72 \def (r k n) in 
-(let TMP_73 \def (lift h TMP_72 x5) in (let H10 \def (eq_ind T t TMP_71 H9 
-TMP_73 H7) in (let TMP_76 \def (\lambda (t0: T).(let TMP_74 \def (r k n) in 
-(let TMP_75 \def (lift h TMP_74 x3) in (eq T t0 TMP_75)))) in (let TMP_77 
-\def (r k n) in (let TMP_78 \def (lift h TMP_77 x5) in (let H11 \def (eq_ind 
-T t TMP_76 H4 TMP_78 H7) in (let TMP_80 \def (\lambda (t0: T).(\forall (h0: 
-nat).((drop h0 n (CHead c0 k (lift h (r k n) t0)) (CHead x4 k t0)) \to 
-(\forall (x6: C).((drop h0 n (CHead c0 k (lift h (r k n) t0)) x6) \to (let 
-TMP_79 \def (CHead x4 k t0) in (eq C TMP_79 x6))))))) in (let TMP_81 \def (r 
-k n) in (let TMP_82 \def (lift_inj x5 x3 h TMP_81 H11) in (let H12 \def 
-(eq_ind T x5 TMP_80 H10 x3 TMP_82) in (let TMP_85 \def (\lambda (t0: T).(let 
-TMP_83 \def (CHead x4 k t0) in (let TMP_84 \def (CHead x0 k x3) in (eq C 
-TMP_83 TMP_84)))) in (let TMP_86 \def (CHead x0 k x3) in (let TMP_87 \def 
-(CHead x4 k x3) in (let TMP_88 \def (CHead x4 k x3) in (let TMP_89 \def 
-(CHead x0 k x3) in (let TMP_90 \def (CHead x0 k x3) in (let TMP_91 \def 
-(CHead x4 k x3) in (let TMP_92 \def (r k n) in (let TMP_93 \def (H x0 TMP_92 
-h H5 x4 H8) in (let TMP_94 \def (refl_equal K k) in (let TMP_95 \def 
-(refl_equal T x3) in (let TMP_96 \def (f_equal3 C K T C CHead x0 x4 k k x3 x3 
-TMP_93 TMP_94 TMP_95) in (let TMP_97 \def (sym_eq C TMP_90 TMP_91 TMP_96) in 
-(let TMP_98 \def (sym_eq C TMP_88 TMP_89 TMP_97) in (let TMP_99 \def (sym_eq 
-C TMP_86 TMP_87 TMP_98) in (let TMP_100 \def (r k n) in (let TMP_101 \def 
-(lift_inj x5 x3 h TMP_100 H11) in (let TMP_102 \def (eq_ind_r T x3 TMP_85 
-TMP_99 x5 TMP_101) in (let TMP_103 \def (eq_ind_r C TMP_67 TMP_69 TMP_102 x1 
-H6) in (eq_ind_r C TMP_63 TMP_64 TMP_103 x2 
-H3)))))))))))))))))))))))))))))))))))))))))))) in (let TMP_105 \def 
-(drop_gen_skip_l c0 x1 t h n k H1) in (ex3_2_ind C T TMP_56 TMP_59 TMP_61 
-TMP_62 TMP_104 TMP_105)))))))))))) in (let TMP_107 \def (drop_gen_skip_l c0 
-x2 t h n k H2) in (ex3_2_ind C T TMP_48 TMP_51 TMP_53 TMP_54 TMP_106 
-TMP_107))))))))))))) in (nat_ind TMP_27 TMP_46 TMP_108 d)))))))))) in (C_ind 
-TMP_1 TMP_26 TMP_109 c)))).
+(\forall (x6: C).((drop h0 n (CHead c0 k t) x6) \to (eq C c1 x6)))))) H0 
+(CHead x4 k x5) H6) in (eq_ind_r C (CHead x4 k x5) (\lambda (c1: C).(eq C c1 
+(CHead x0 k x3))) (let H10 \def (eq_ind T t (\lambda (t0: T).(\forall (h0: 
+nat).((drop h0 n (CHead c0 k t0) (CHead x4 k x5)) \to (\forall (x6: C).((drop 
+h0 n (CHead c0 k t0) x6) \to (eq C (CHead x4 k x5) x6)))))) H9 (lift h (r k 
+n) x5) H7) in (let H11 \def (eq_ind T t (\lambda (t0: T).(eq T t0 (lift h (r 
+k n) x3))) H4 (lift h (r k n) x5) H7) in (let H12 \def (eq_ind T x5 (\lambda 
+(t0: T).(\forall (h0: nat).((drop h0 n (CHead c0 k (lift h (r k n) t0)) 
+(CHead x4 k t0)) \to (\forall (x6: C).((drop h0 n (CHead c0 k (lift h (r k n) 
+t0)) x6) \to (eq C (CHead x4 k t0) x6)))))) H10 x3 (lift_inj x5 x3 h (r k n) 
+H11)) in (eq_ind_r T x3 (\lambda (t0: T).(eq C (CHead x4 k t0) (CHead x0 k 
+x3))) (sym_eq C (CHead x0 k x3) (CHead x4 k x3) (sym_eq C (CHead x4 k x3) 
+(CHead x0 k x3) (sym_eq C (CHead x0 k x3) (CHead x4 k x3) (f_equal3 C K T C 
+CHead x0 x4 k k x3 x3 (H x0 (r k n) h H5 x4 H8) (refl_equal K k) (refl_equal 
+T x3))))) x5 (lift_inj x5 x3 h (r k n) H11))))) x1 H6)) x2 H3)))))) 
+(drop_gen_skip_l c0 x1 t h n k H1))))))) (drop_gen_skip_l c0 x2 t h n k 
+H2)))))))) d))))))) c).
 
index 74c409bddcc77a9e4f0400ff8ef65757f5252e28..6ea5bca4cfa60b40a9afdbe77afd40300f8268ee 100644 (file)
@@ -22,14 +22,9 @@ d c e) \to (\forall (b: B).(\forall (u: T).(drop h (S d) (CHead c (Bind b)
 (lift h d u)) (CHead e (Bind b) u))))))))
 \def
  \lambda (h: nat).(\lambda (d: nat).(\lambda (c: C).(\lambda (e: C).(\lambda 
-(H: (drop h d c e)).(\lambda (b: B).(\lambda (u: T).(let TMP_1 \def (Bind b) 
-in (let TMP_2 \def (r TMP_1 d) in (let TMP_9 \def (\lambda (n: nat).(let 
-TMP_3 \def (S d) in (let TMP_4 \def (Bind b) in (let TMP_5 \def (lift h n u) 
-in (let TMP_6 \def (CHead c TMP_4 TMP_5) in (let TMP_7 \def (Bind b) in (let 
-TMP_8 \def (CHead e TMP_7 u) in (drop h TMP_3 TMP_6 TMP_8)))))))) in (let 
-TMP_10 \def (Bind b) in (let TMP_11 \def (drop_skip TMP_10 h d c e H u) in 
-(let TMP_12 \def (refl_equal nat d) in (eq_ind nat TMP_2 TMP_9 TMP_11 d 
-TMP_12))))))))))))).
+(H: (drop h d c e)).(\lambda (b: B).(\lambda (u: T).(eq_ind nat (r (Bind b) 
+d) (\lambda (n: nat).(drop h (S d) (CHead c (Bind b) (lift h n u)) (CHead e 
+(Bind b) u))) (drop_skip (Bind b) h d c e H u) d (refl_equal nat d)))))))).
 
 theorem drop_skip_flat:
  \forall (h: nat).(\forall (d: nat).(\forall (c: C).(\forall (e: C).((drop h 
@@ -37,110 +32,65 @@ theorem drop_skip_flat:
 f) (lift h (S d) u)) (CHead e (Flat f) u))))))))
 \def
  \lambda (h: nat).(\lambda (d: nat).(\lambda (c: C).(\lambda (e: C).(\lambda 
-(H: (drop h (S d) c e)).(\lambda (f: F).(\lambda (u: T).(let TMP_1 \def (Flat 
-f) in (let TMP_2 \def (r TMP_1 d) in (let TMP_9 \def (\lambda (n: nat).(let 
-TMP_3 \def (S d) in (let TMP_4 \def (Flat f) in (let TMP_5 \def (lift h n u) 
-in (let TMP_6 \def (CHead c TMP_4 TMP_5) in (let TMP_7 \def (Flat f) in (let 
-TMP_8 \def (CHead e TMP_7 u) in (drop h TMP_3 TMP_6 TMP_8)))))))) in (let 
-TMP_10 \def (Flat f) in (let TMP_11 \def (drop_skip TMP_10 h d c e H u) in 
-(let TMP_12 \def (S d) in (let TMP_13 \def (S d) in (let TMP_14 \def 
-(refl_equal nat TMP_13) in (eq_ind nat TMP_2 TMP_9 TMP_11 TMP_12 
-TMP_14))))))))))))))).
+(H: (drop h (S d) c e)).(\lambda (f: F).(\lambda (u: T).(eq_ind nat (r (Flat 
+f) d) (\lambda (n: nat).(drop h (S d) (CHead c (Flat f) (lift h n u)) (CHead 
+e (Flat f) u))) (drop_skip (Flat f) h d c e H u) (S d) (refl_equal nat (S 
+d))))))))).
 
 theorem drop_ctail:
  \forall (c1: C).(\forall (c2: C).(\forall (d: nat).(\forall (h: nat).((drop 
 h d c1 c2) \to (\forall (k: K).(\forall (u: T).(drop h d (CTail k u c1) 
 (CTail k u c2))))))))
 \def
- \lambda (c1: C).(let TMP_3 \def (\lambda (c: C).(\forall (c2: C).(\forall 
-(d: nat).(\forall (h: nat).((drop h d c c2) \to (\forall (k: K).(\forall (u: 
-T).(let TMP_1 \def (CTail k u c) in (let TMP_2 \def (CTail k u c2) in (drop h 
-d TMP_1 TMP_2)))))))))) in (let TMP_32 \def (\lambda (n: nat).(\lambda (c2: 
-C).(\lambda (d: nat).(\lambda (h: nat).(\lambda (H: (drop h d (CSort n) 
-c2)).(\lambda (k: K).(\lambda (u: T).(let TMP_4 \def (CSort n) in (let TMP_5 
-\def (eq C c2 TMP_4) in (let TMP_6 \def (eq nat h O) in (let TMP_7 \def (eq 
-nat d O) in (let TMP_8 \def (CSort n) in (let TMP_9 \def (CTail k u TMP_8) in 
-(let TMP_10 \def (CTail k u c2) in (let TMP_11 \def (drop h d TMP_9 TMP_10) 
-in (let TMP_30 \def (\lambda (H0: (eq C c2 (CSort n))).(\lambda (H1: (eq nat 
-h O)).(\lambda (H2: (eq nat d O)).(let TMP_15 \def (\lambda (n0: nat).(let 
-TMP_12 \def (CSort n) in (let TMP_13 \def (CTail k u TMP_12) in (let TMP_14 
-\def (CTail k u c2) in (drop n0 d TMP_13 TMP_14))))) in (let TMP_19 \def 
-(\lambda (n0: nat).(let TMP_16 \def (CSort n) in (let TMP_17 \def (CTail k u 
-TMP_16) in (let TMP_18 \def (CTail k u c2) in (drop O n0 TMP_17 TMP_18))))) 
-in (let TMP_20 \def (CSort n) in (let TMP_24 \def (\lambda (c: C).(let TMP_21 
-\def (CSort n) in (let TMP_22 \def (CTail k u TMP_21) in (let TMP_23 \def 
-(CTail k u c) in (drop O O TMP_22 TMP_23))))) in (let TMP_25 \def (CSort n) 
-in (let TMP_26 \def (CTail k u TMP_25) in (let TMP_27 \def (drop_refl TMP_26) 
-in (let TMP_28 \def (eq_ind_r C TMP_20 TMP_24 TMP_27 c2 H0) in (let TMP_29 
-\def (eq_ind_r nat O TMP_19 TMP_28 d H2) in (eq_ind_r nat O TMP_15 TMP_29 h 
-H1))))))))))))) in (let TMP_31 \def (drop_gen_sort n h d c2 H) in (and3_ind 
-TMP_5 TMP_6 TMP_7 TMP_11 TMP_30 TMP_31)))))))))))))))))) in (let TMP_106 \def 
-(\lambda (c2: C).(\lambda (IHc: ((\forall (c3: C).(\forall (d: nat).(\forall 
-(h: nat).((drop h d c2 c3) \to (\forall (k: K).(\forall (u: T).(drop h d 
-(CTail k u c2) (CTail k u c3)))))))))).(\lambda (k: K).(\lambda (t: 
-T).(\lambda (c3: C).(\lambda (d: nat).(let TMP_36 \def (\lambda (n: 
-nat).(\forall (h: nat).((drop h n (CHead c2 k t) c3) \to (\forall (k0: 
-K).(\forall (u: T).(let TMP_33 \def (CHead c2 k t) in (let TMP_34 \def (CTail 
-k0 u TMP_33) in (let TMP_35 \def (CTail k0 u c3) in (drop h n TMP_34 
-TMP_35))))))))) in (let TMP_58 \def (\lambda (h: nat).(let TMP_40 \def 
-(\lambda (n: nat).((drop n O (CHead c2 k t) c3) \to (\forall (k0: K).(\forall 
-(u: T).(let TMP_37 \def (CHead c2 k t) in (let TMP_38 \def (CTail k0 u 
-TMP_37) in (let TMP_39 \def (CTail k0 u c3) in (drop n O TMP_38 
-TMP_39)))))))) in (let TMP_51 \def (\lambda (H: (drop O O (CHead c2 k t) 
-c3)).(\lambda (k0: K).(\lambda (u: T).(let TMP_41 \def (CHead c2 k t) in (let 
-TMP_45 \def (\lambda (c: C).(let TMP_42 \def (CHead c2 k t) in (let TMP_43 
-\def (CTail k0 u TMP_42) in (let TMP_44 \def (CTail k0 u c) in (drop O O 
-TMP_43 TMP_44))))) in (let TMP_46 \def (CHead c2 k t) in (let TMP_47 \def 
-(CTail k0 u TMP_46) in (let TMP_48 \def (drop_refl TMP_47) in (let TMP_49 
-\def (CHead c2 k t) in (let TMP_50 \def (drop_gen_refl TMP_49 c3 H) in 
-(eq_ind C TMP_41 TMP_45 TMP_48 c3 TMP_50))))))))))) in (let TMP_57 \def 
-(\lambda (n: nat).(\lambda (_: (((drop n O (CHead c2 k t) c3) \to (\forall 
-(k0: K).(\forall (u: T).(drop n O (CTail k0 u (CHead c2 k t)) (CTail k0 u 
-c3))))))).(\lambda (H0: (drop (S n) O (CHead c2 k t) c3)).(\lambda (k0: 
-K).(\lambda (u: T).(let TMP_52 \def (CTail k0 u c2) in (let TMP_53 \def 
-(CTail k0 u c3) in (let TMP_54 \def (r k n) in (let TMP_55 \def 
-(drop_gen_drop k c2 c3 t n H0) in (let TMP_56 \def (IHc c3 O TMP_54 TMP_55 k0 
-u) in (drop_drop k n TMP_52 TMP_53 TMP_56 t))))))))))) in (nat_ind TMP_40 
-TMP_51 TMP_57 h))))) in (let TMP_105 \def (\lambda (n: nat).(\lambda (H: 
-((\forall (h: nat).((drop h n (CHead c2 k t) c3) \to (\forall (k0: 
-K).(\forall (u: T).(drop h n (CTail k0 u (CHead c2 k t)) (CTail k0 u 
-c3)))))))).(\lambda (h: nat).(\lambda (H0: (drop h (S n) (CHead c2 k t) 
-c3)).(\lambda (k0: K).(\lambda (u: T).(let TMP_60 \def (\lambda (e: 
-C).(\lambda (v: T).(let TMP_59 \def (CHead e k v) in (eq C c3 TMP_59)))) in 
-(let TMP_63 \def (\lambda (_: C).(\lambda (v: T).(let TMP_61 \def (r k n) in 
-(let TMP_62 \def (lift h TMP_61 v) in (eq T t TMP_62))))) in (let TMP_65 \def 
-(\lambda (e: C).(\lambda (_: T).(let TMP_64 \def (r k n) in (drop h TMP_64 c2 
-e)))) in (let TMP_66 \def (S n) in (let TMP_67 \def (CHead c2 k t) in (let 
-TMP_68 \def (CTail k0 u TMP_67) in (let TMP_69 \def (CTail k0 u c3) in (let 
-TMP_70 \def (drop h TMP_66 TMP_68 TMP_69) in (let TMP_103 \def (\lambda (x0: 
+ \lambda (c1: C).(C_ind (\lambda (c: C).(\forall (c2: C).(\forall (d: 
+nat).(\forall (h: nat).((drop h d c c2) \to (\forall (k: K).(\forall (u: 
+T).(drop h d (CTail k u c) (CTail k u c2))))))))) (\lambda (n: nat).(\lambda 
+(c2: C).(\lambda (d: nat).(\lambda (h: nat).(\lambda (H: (drop h d (CSort n) 
+c2)).(\lambda (k: K).(\lambda (u: T).(and3_ind (eq C c2 (CSort n)) (eq nat h 
+O) (eq nat d O) (drop h d (CTail k u (CSort n)) (CTail k u c2)) (\lambda (H0: 
+(eq C c2 (CSort n))).(\lambda (H1: (eq nat h O)).(\lambda (H2: (eq nat d 
+O)).(eq_ind_r nat O (\lambda (n0: nat).(drop n0 d (CTail k u (CSort n)) 
+(CTail k u c2))) (eq_ind_r nat O (\lambda (n0: nat).(drop O n0 (CTail k u 
+(CSort n)) (CTail k u c2))) (eq_ind_r C (CSort n) (\lambda (c: C).(drop O O 
+(CTail k u (CSort n)) (CTail k u c))) (drop_refl (CTail k u (CSort n))) c2 
+H0) d H2) h H1)))) (drop_gen_sort n h d c2 H))))))))) (\lambda (c2: 
+C).(\lambda (IHc: ((\forall (c3: C).(\forall (d: nat).(\forall (h: 
+nat).((drop h d c2 c3) \to (\forall (k: K).(\forall (u: T).(drop h d (CTail k 
+u c2) (CTail k u c3)))))))))).(\lambda (k: K).(\lambda (t: T).(\lambda (c3: 
+C).(\lambda (d: nat).(nat_ind (\lambda (n: nat).(\forall (h: nat).((drop h n 
+(CHead c2 k t) c3) \to (\forall (k0: K).(\forall (u: T).(drop h n (CTail k0 u 
+(CHead c2 k t)) (CTail k0 u c3))))))) (\lambda (h: nat).(nat_ind (\lambda (n: 
+nat).((drop n O (CHead c2 k t) c3) \to (\forall (k0: K).(\forall (u: T).(drop 
+n O (CTail k0 u (CHead c2 k t)) (CTail k0 u c3)))))) (\lambda (H: (drop O O 
+(CHead c2 k t) c3)).(\lambda (k0: K).(\lambda (u: T).(eq_ind C (CHead c2 k t) 
+(\lambda (c: C).(drop O O (CTail k0 u (CHead c2 k t)) (CTail k0 u c))) 
+(drop_refl (CTail k0 u (CHead c2 k t))) c3 (drop_gen_refl (CHead c2 k t) c3 
+H))))) (\lambda (n: nat).(\lambda (_: (((drop n O (CHead c2 k t) c3) \to 
+(\forall (k0: K).(\forall (u: T).(drop n O (CTail k0 u (CHead c2 k t)) (CTail 
+k0 u c3))))))).(\lambda (H0: (drop (S n) O (CHead c2 k t) c3)).(\lambda (k0: 
+K).(\lambda (u: T).(drop_drop k n (CTail k0 u c2) (CTail k0 u c3) (IHc c3 O 
+(r k n) (drop_gen_drop k c2 c3 t n H0) k0 u) t)))))) h)) (\lambda (n: 
+nat).(\lambda (H: ((\forall (h: nat).((drop h n (CHead c2 k t) c3) \to 
+(\forall (k0: K).(\forall (u: T).(drop h n (CTail k0 u (CHead c2 k t)) (CTail 
+k0 u c3)))))))).(\lambda (h: nat).(\lambda (H0: (drop h (S n) (CHead c2 k t) 
+c3)).(\lambda (k0: K).(\lambda (u: T).(ex3_2_ind C T (\lambda (e: C).(\lambda 
+(v: T).(eq C c3 (CHead e k v)))) (\lambda (_: C).(\lambda (v: T).(eq T t 
+(lift h (r k n) v)))) (\lambda (e: C).(\lambda (_: T).(drop h (r k n) c2 e))) 
+(drop h (S n) (CTail k0 u (CHead c2 k t)) (CTail k0 u c3)) (\lambda (x0: 
 C).(\lambda (x1: T).(\lambda (H1: (eq C c3 (CHead x0 k x1))).(\lambda (H2: 
-(eq T t (lift h (r k n) x1))).(\lambda (H3: (drop h (r k n) c2 x0)).(let 
-TMP_74 \def (\lambda (c: C).(\forall (h0: nat).((drop h0 n (CHead c2 k t) c) 
-\to (\forall (k1: K).(\forall (u0: T).(let TMP_71 \def (CHead c2 k t) in (let 
-TMP_72 \def (CTail k1 u0 TMP_71) in (let TMP_73 \def (CTail k1 u0 c) in (drop 
-h0 n TMP_72 TMP_73))))))))) in (let TMP_75 \def (CHead x0 k x1) in (let H4 
-\def (eq_ind C c3 TMP_74 H TMP_75 H1) in (let TMP_76 \def (CHead x0 k x1) in 
-(let TMP_81 \def (\lambda (c: C).(let TMP_77 \def (S n) in (let TMP_78 \def 
-(CHead c2 k t) in (let TMP_79 \def (CTail k0 u TMP_78) in (let TMP_80 \def 
-(CTail k0 u c) in (drop h TMP_77 TMP_79 TMP_80)))))) in (let TMP_86 \def 
-(\lambda (t0: T).(\forall (h0: nat).((drop h0 n (CHead c2 k t0) (CHead x0 k 
-x1)) \to (\forall (k1: K).(\forall (u0: T).(let TMP_82 \def (CHead c2 k t0) 
-in (let TMP_83 \def (CTail k1 u0 TMP_82) in (let TMP_84 \def (CHead x0 k x1) 
-in (let TMP_85 \def (CTail k1 u0 TMP_84) in (drop h0 n TMP_83 
-TMP_85)))))))))) in (let TMP_87 \def (r k n) in (let TMP_88 \def (lift h 
-TMP_87 x1) in (let H5 \def (eq_ind T t TMP_86 H4 TMP_88 H2) in (let TMP_89 
-\def (r k n) in (let TMP_90 \def (lift h TMP_89 x1) in (let TMP_96 \def 
-(\lambda (t0: T).(let TMP_91 \def (S n) in (let TMP_92 \def (CHead c2 k t0) 
-in (let TMP_93 \def (CTail k0 u TMP_92) in (let TMP_94 \def (CHead x0 k x1) 
-in (let TMP_95 \def (CTail k0 u TMP_94) in (drop h TMP_91 TMP_93 
-TMP_95))))))) in (let TMP_97 \def (CTail k0 u c2) in (let TMP_98 \def (CTail 
-k0 u x0) in (let TMP_99 \def (r k n) in (let TMP_100 \def (IHc x0 TMP_99 h H3 
-k0 u) in (let TMP_101 \def (drop_skip k h n TMP_97 TMP_98 TMP_100 x1) in (let 
-TMP_102 \def (eq_ind_r T TMP_90 TMP_96 TMP_101 t H2) in (eq_ind_r C TMP_76 
-TMP_81 TMP_102 c3 H1)))))))))))))))))))))))) in (let TMP_104 \def 
-(drop_gen_skip_l c2 c3 t h n k H0) in (ex3_2_ind C T TMP_60 TMP_63 TMP_65 
-TMP_70 TMP_103 TMP_104))))))))))))))))) in (nat_ind TMP_36 TMP_58 TMP_105 
-d)))))))))) in (C_ind TMP_3 TMP_32 TMP_106 c1)))).
+(eq T t (lift h (r k n) x1))).(\lambda (H3: (drop h (r k n) c2 x0)).(let H4 
+\def (eq_ind C c3 (\lambda (c: C).(\forall (h0: nat).((drop h0 n (CHead c2 k 
+t) c) \to (\forall (k1: K).(\forall (u0: T).(drop h0 n (CTail k1 u0 (CHead c2 
+k t)) (CTail k1 u0 c))))))) H (CHead x0 k x1) H1) in (eq_ind_r C (CHead x0 k 
+x1) (\lambda (c: C).(drop h (S n) (CTail k0 u (CHead c2 k t)) (CTail k0 u 
+c))) (let H5 \def (eq_ind T t (\lambda (t0: T).(\forall (h0: nat).((drop h0 n 
+(CHead c2 k t0) (CHead x0 k x1)) \to (\forall (k1: K).(\forall (u0: T).(drop 
+h0 n (CTail k1 u0 (CHead c2 k t0)) (CTail k1 u0 (CHead x0 k x1)))))))) H4 
+(lift h (r k n) x1) H2) in (eq_ind_r T (lift h (r k n) x1) (\lambda (t0: 
+T).(drop h (S n) (CTail k0 u (CHead c2 k t0)) (CTail k0 u (CHead x0 k x1)))) 
+(drop_skip k h n (CTail k0 u c2) (CTail k0 u x0) (IHc x0 (r k n) h H3 k0 u) 
+x1) t H2)) c3 H1))))))) (drop_gen_skip_l c2 c3 t h n k H0)))))))) d))))))) 
+c1).
 
 theorem drop_conf_lt:
  \forall (k: K).(\forall (i: nat).(\forall (u: T).(\forall (c0: C).(\forall 
@@ -150,537 +100,298 @@ nat).(\forall (d: nat).((drop h (S (plus i d)) c e) \to (ex3_2 T C (\lambda
 (e0: C).(drop i O e (CHead e0 k v)))) (\lambda (_: T).(\lambda (e0: C).(drop 
 h (r k d) c0 e0)))))))))))))
 \def
- \lambda (k: K).(\lambda (i: nat).(let TMP_8 \def (\lambda (n: nat).(\forall 
-(u: T).(\forall (c0: C).(\forall (c: C).((drop n O c (CHead c0 k u)) \to 
-(\forall (e: C).(\forall (h: nat).(\forall (d: nat).((drop h (S (plus n d)) c 
-e) \to (let TMP_3 \def (\lambda (v: T).(\lambda (_: C).(let TMP_1 \def (r k 
-d) in (let TMP_2 \def (lift h TMP_1 v) in (eq T u TMP_2))))) in (let TMP_5 
-\def (\lambda (v: T).(\lambda (e0: C).(let TMP_4 \def (CHead e0 k v) in (drop 
-n O e TMP_4)))) in (let TMP_7 \def (\lambda (_: T).(\lambda (e0: C).(let 
-TMP_6 \def (r k d) in (drop h TMP_6 c0 e0)))) in (ex3_2 T C TMP_3 TMP_5 
-TMP_7))))))))))))) in (let TMP_74 \def (\lambda (u: T).(\lambda (c0: 
-C).(\lambda (c: C).(\lambda (H: (drop O O c (CHead c0 k u))).(\lambda (e: 
-C).(\lambda (h: nat).(\lambda (d: nat).(\lambda (H0: (drop h (S (plus O d)) c 
-e)).(let TMP_11 \def (\lambda (c1: C).(let TMP_9 \def (plus O d) in (let 
-TMP_10 \def (S TMP_9) in (drop h TMP_10 c1 e)))) in (let TMP_12 \def (CHead 
-c0 k u) in (let TMP_13 \def (CHead c0 k u) in (let TMP_14 \def (drop_gen_refl 
-c TMP_13 H) in (let H1 \def (eq_ind C c TMP_11 H0 TMP_12 TMP_14) in (let 
-TMP_16 \def (\lambda (e0: C).(\lambda (v: T).(let TMP_15 \def (CHead e0 k v) 
-in (eq C e TMP_15)))) in (let TMP_20 \def (\lambda (_: C).(\lambda (v: 
-T).(let TMP_17 \def (plus O d) in (let TMP_18 \def (r k TMP_17) in (let 
-TMP_19 \def (lift h TMP_18 v) in (eq T u TMP_19)))))) in (let TMP_23 \def 
-(\lambda (e0: C).(\lambda (_: T).(let TMP_21 \def (plus O d) in (let TMP_22 
-\def (r k TMP_21) in (drop h TMP_22 c0 e0))))) in (let TMP_26 \def (\lambda 
-(v: T).(\lambda (_: C).(let TMP_24 \def (r k d) in (let TMP_25 \def (lift h 
-TMP_24 v) in (eq T u TMP_25))))) in (let TMP_28 \def (\lambda (v: T).(\lambda 
-(e0: C).(let TMP_27 \def (CHead e0 k v) in (drop O O e TMP_27)))) in (let 
-TMP_30 \def (\lambda (_: T).(\lambda (e0: C).(let TMP_29 \def (r k d) in 
-(drop h TMP_29 c0 e0)))) in (let TMP_31 \def (ex3_2 T C TMP_26 TMP_28 TMP_30) 
-in (let TMP_71 \def (\lambda (x0: C).(\lambda (x1: T).(\lambda (H2: (eq C e 
-(CHead x0 k x1))).(\lambda (H3: (eq T u (lift h (r k (plus O d)) 
-x1))).(\lambda (H4: (drop h (r k (plus O d)) c0 x0)).(let TMP_32 \def (CHead 
-x0 k x1) in (let TMP_40 \def (\lambda (c1: C).(let TMP_35 \def (\lambda (v: 
-T).(\lambda (_: C).(let TMP_33 \def (r k d) in (let TMP_34 \def (lift h 
-TMP_33 v) in (eq T u TMP_34))))) in (let TMP_37 \def (\lambda (v: T).(\lambda 
-(e0: C).(let TMP_36 \def (CHead e0 k v) in (drop O O c1 TMP_36)))) in (let 
-TMP_39 \def (\lambda (_: T).(\lambda (e0: C).(let TMP_38 \def (r k d) in 
-(drop h TMP_38 c0 e0)))) in (ex3_2 T C TMP_35 TMP_37 TMP_39))))) in (let 
-TMP_41 \def (plus O d) in (let TMP_42 \def (r k TMP_41) in (let TMP_43 \def 
-(lift h TMP_42 x1) in (let TMP_52 \def (\lambda (t: T).(let TMP_46 \def 
-(\lambda (v: T).(\lambda (_: C).(let TMP_44 \def (r k d) in (let TMP_45 \def 
-(lift h TMP_44 v) in (eq T t TMP_45))))) in (let TMP_49 \def (\lambda (v: 
-T).(\lambda (e0: C).(let TMP_47 \def (CHead x0 k x1) in (let TMP_48 \def 
-(CHead e0 k v) in (drop O O TMP_47 TMP_48))))) in (let TMP_51 \def (\lambda 
-(_: T).(\lambda (e0: C).(let TMP_50 \def (r k d) in (drop h TMP_50 c0 e0)))) 
-in (ex3_2 T C TMP_46 TMP_49 TMP_51))))) in (let TMP_58 \def (\lambda (v: 
-T).(\lambda (_: C).(let TMP_53 \def (plus O d) in (let TMP_54 \def (r k 
-TMP_53) in (let TMP_55 \def (lift h TMP_54 x1) in (let TMP_56 \def (r k d) in 
-(let TMP_57 \def (lift h TMP_56 v) in (eq T TMP_55 TMP_57)))))))) in (let 
-TMP_61 \def (\lambda (v: T).(\lambda (e0: C).(let TMP_59 \def (CHead x0 k x1) 
-in (let TMP_60 \def (CHead e0 k v) in (drop O O TMP_59 TMP_60))))) in (let 
-TMP_63 \def (\lambda (_: T).(\lambda (e0: C).(let TMP_62 \def (r k d) in 
-(drop h TMP_62 c0 e0)))) in (let TMP_64 \def (r k d) in (let TMP_65 \def 
-(lift h TMP_64 x1) in (let TMP_66 \def (refl_equal T TMP_65) in (let TMP_67 
-\def (CHead x0 k x1) in (let TMP_68 \def (drop_refl TMP_67) in (let TMP_69 
-\def (ex3_2_intro T C TMP_58 TMP_61 TMP_63 x1 x0 TMP_66 TMP_68 H4) in (let 
-TMP_70 \def (eq_ind_r T TMP_43 TMP_52 TMP_69 u H3) in (eq_ind_r C TMP_32 
-TMP_40 TMP_70 e H2)))))))))))))))))))))) in (let TMP_72 \def (plus O d) in 
-(let TMP_73 \def (drop_gen_skip_l c0 e u h TMP_72 k H1) in (ex3_2_ind C T 
-TMP_16 TMP_20 TMP_23 TMP_31 TMP_71 TMP_73)))))))))))))))))))))))) in (let 
-TMP_283 \def (\lambda (i0: nat).(\lambda (H: ((\forall (u: T).(\forall (c0: 
-C).(\forall (c: C).((drop i0 O c (CHead c0 k u)) \to (\forall (e: C).(\forall 
-(h: nat).(\forall (d: nat).((drop h (S (plus i0 d)) c e) \to (ex3_2 T C 
+ \lambda (k: K).(\lambda (i: nat).(nat_ind (\lambda (n: nat).(\forall (u: 
+T).(\forall (c0: C).(\forall (c: C).((drop n O c (CHead c0 k u)) \to (\forall 
+(e: C).(\forall (h: nat).(\forall (d: nat).((drop h (S (plus n d)) c e) \to 
+(ex3_2 T C (\lambda (v: T).(\lambda (_: C).(eq T u (lift h (r k d) v)))) 
+(\lambda (v: T).(\lambda (e0: C).(drop n O e (CHead e0 k v)))) (\lambda (_: 
+T).(\lambda (e0: C).(drop h (r k d) c0 e0))))))))))))) (\lambda (u: 
+T).(\lambda (c0: C).(\lambda (c: C).(\lambda (H: (drop O O c (CHead c0 k 
+u))).(\lambda (e: C).(\lambda (h: nat).(\lambda (d: nat).(\lambda (H0: (drop 
+h (S (plus O d)) c e)).(let H1 \def (eq_ind C c (\lambda (c1: C).(drop h (S 
+(plus O d)) c1 e)) H0 (CHead c0 k u) (drop_gen_refl c (CHead c0 k u) H)) in 
+(ex3_2_ind C T (\lambda (e0: C).(\lambda (v: T).(eq C e (CHead e0 k v)))) 
+(\lambda (_: C).(\lambda (v: T).(eq T u (lift h (r k (plus O d)) v)))) 
+(\lambda (e0: C).(\lambda (_: T).(drop h (r k (plus O d)) c0 e0))) (ex3_2 T C 
 (\lambda (v: T).(\lambda (_: C).(eq T u (lift h (r k d) v)))) (\lambda (v: 
-T).(\lambda (e0: C).(drop i0 O e (CHead e0 k v)))) (\lambda (_: T).(\lambda 
-(e0: C).(drop h (r k d) c0 e0)))))))))))))).(\lambda (u: T).(\lambda (c0: 
-C).(\lambda (c: C).(let TMP_83 \def (\lambda (c1: C).((drop (S i0) O c1 
-(CHead c0 k u)) \to (\forall (e: C).(\forall (h: nat).(\forall (d: 
-nat).((drop h (S (plus (S i0) d)) c1 e) \to (let TMP_77 \def (\lambda (v: 
-T).(\lambda (_: C).(let TMP_75 \def (r k d) in (let TMP_76 \def (lift h 
-TMP_75 v) in (eq T u TMP_76))))) in (let TMP_80 \def (\lambda (v: T).(\lambda 
-(e0: C).(let TMP_78 \def (S i0) in (let TMP_79 \def (CHead e0 k v) in (drop 
-TMP_78 O e TMP_79))))) in (let TMP_82 \def (\lambda (_: T).(\lambda (e0: 
-C).(let TMP_81 \def (r k d) in (drop h TMP_81 c0 e0)))) in (ex3_2 T C TMP_77 
-TMP_80 TMP_82)))))))))) in (let TMP_118 \def (\lambda (n: nat).(\lambda (_: 
-(drop (S i0) O (CSort n) (CHead c0 k u))).(\lambda (e: C).(\lambda (h: 
-nat).(\lambda (d: nat).(\lambda (H1: (drop h (S (plus (S i0) d)) (CSort n) 
-e)).(let TMP_84 \def (CSort n) in (let TMP_85 \def (eq C e TMP_84) in (let 
-TMP_86 \def (eq nat h O) in (let TMP_87 \def (S i0) in (let TMP_88 \def (plus 
-TMP_87 d) in (let TMP_89 \def (S TMP_88) in (let TMP_90 \def (eq nat TMP_89 
-O) in (let TMP_93 \def (\lambda (v: T).(\lambda (_: C).(let TMP_91 \def (r k 
-d) in (let TMP_92 \def (lift h TMP_91 v) in (eq T u TMP_92))))) in (let 
-TMP_96 \def (\lambda (v: T).(\lambda (e0: C).(let TMP_94 \def (S i0) in (let 
-TMP_95 \def (CHead e0 k v) in (drop TMP_94 O e TMP_95))))) in (let TMP_98 
-\def (\lambda (_: T).(\lambda (e0: C).(let TMP_97 \def (r k d) in (drop h 
-TMP_97 c0 e0)))) in (let TMP_99 \def (ex3_2 T C TMP_93 TMP_96 TMP_98) in (let 
-TMP_113 \def (\lambda (_: (eq C e (CSort n))).(\lambda (_: (eq nat h 
-O)).(\lambda (H4: (eq nat (S (plus (S i0) d)) O)).(let TMP_100 \def (S i0) in 
-(let TMP_101 \def (plus TMP_100 d) in (let TMP_102 \def (S TMP_101) in (let 
-TMP_103 \def (\lambda (ee: nat).(match ee with [O \Rightarrow False | (S _) 
-\Rightarrow True])) in (let H5 \def (eq_ind nat TMP_102 TMP_103 I O H4) in 
-(let TMP_106 \def (\lambda (v: T).(\lambda (_: C).(let TMP_104 \def (r k d) 
-in (let TMP_105 \def (lift h TMP_104 v) in (eq T u TMP_105))))) in (let 
-TMP_109 \def (\lambda (v: T).(\lambda (e0: C).(let TMP_107 \def (S i0) in 
-(let TMP_108 \def (CHead e0 k v) in (drop TMP_107 O e TMP_108))))) in (let 
-TMP_111 \def (\lambda (_: T).(\lambda (e0: C).(let TMP_110 \def (r k d) in 
-(drop h TMP_110 c0 e0)))) in (let TMP_112 \def (ex3_2 T C TMP_106 TMP_109 
-TMP_111) in (False_ind TMP_112 H5))))))))))))) in (let TMP_114 \def (S i0) in 
-(let TMP_115 \def (plus TMP_114 d) in (let TMP_116 \def (S TMP_115) in (let 
-TMP_117 \def (drop_gen_sort n h TMP_116 e H1) in (and3_ind TMP_85 TMP_86 
-TMP_90 TMP_99 TMP_113 TMP_117))))))))))))))))))))))) in (let TMP_282 \def 
-(\lambda (c1: C).(\lambda (H0: (((drop (S i0) O c1 (CHead c0 k u)) \to 
+T).(\lambda (e0: C).(drop O O e (CHead e0 k v)))) (\lambda (_: T).(\lambda 
+(e0: C).(drop h (r k d) c0 e0)))) (\lambda (x0: C).(\lambda (x1: T).(\lambda 
+(H2: (eq C e (CHead x0 k x1))).(\lambda (H3: (eq T u (lift h (r k (plus O d)) 
+x1))).(\lambda (H4: (drop h (r k (plus O d)) c0 x0)).(eq_ind_r C (CHead x0 k 
+x1) (\lambda (c1: C).(ex3_2 T C (\lambda (v: T).(\lambda (_: C).(eq T u (lift 
+h (r k d) v)))) (\lambda (v: T).(\lambda (e0: C).(drop O O c1 (CHead e0 k 
+v)))) (\lambda (_: T).(\lambda (e0: C).(drop h (r k d) c0 e0))))) (eq_ind_r T 
+(lift h (r k (plus O d)) x1) (\lambda (t: T).(ex3_2 T C (\lambda (v: 
+T).(\lambda (_: C).(eq T t (lift h (r k d) v)))) (\lambda (v: T).(\lambda 
+(e0: C).(drop O O (CHead x0 k x1) (CHead e0 k v)))) (\lambda (_: T).(\lambda 
+(e0: C).(drop h (r k d) c0 e0))))) (ex3_2_intro T C (\lambda (v: T).(\lambda 
+(_: C).(eq T (lift h (r k (plus O d)) x1) (lift h (r k d) v)))) (\lambda (v: 
+T).(\lambda (e0: C).(drop O O (CHead x0 k x1) (CHead e0 k v)))) (\lambda (_: 
+T).(\lambda (e0: C).(drop h (r k d) c0 e0))) x1 x0 (refl_equal T (lift h (r k 
+d) x1)) (drop_refl (CHead x0 k x1)) H4) u H3) e H2)))))) (drop_gen_skip_l c0 
+e u h (plus O d) k H1))))))))))) (\lambda (i0: nat).(\lambda (H: ((\forall 
+(u: T).(\forall (c0: C).(\forall (c: C).((drop i0 O c (CHead c0 k u)) \to 
+(\forall (e: C).(\forall (h: nat).(\forall (d: nat).((drop h (S (plus i0 d)) 
+c e) \to (ex3_2 T C (\lambda (v: T).(\lambda (_: C).(eq T u (lift h (r k d) 
+v)))) (\lambda (v: T).(\lambda (e0: C).(drop i0 O e (CHead e0 k v)))) 
+(\lambda (_: T).(\lambda (e0: C).(drop h (r k d) c0 e0)))))))))))))).(\lambda 
+(u: T).(\lambda (c0: C).(\lambda (c: C).(C_ind (\lambda (c1: C).((drop (S i0) 
+O c1 (CHead c0 k u)) \to (\forall (e: C).(\forall (h: nat).(\forall (d: 
+nat).((drop h (S (plus (S i0) d)) c1 e) \to (ex3_2 T C (\lambda (v: 
+T).(\lambda (_: C).(eq T u (lift h (r k d) v)))) (\lambda (v: T).(\lambda 
+(e0: C).(drop (S i0) O e (CHead e0 k v)))) (\lambda (_: T).(\lambda (e0: 
+C).(drop h (r k d) c0 e0)))))))))) (\lambda (n: nat).(\lambda (_: (drop (S 
+i0) O (CSort n) (CHead c0 k u))).(\lambda (e: C).(\lambda (h: nat).(\lambda 
+(d: nat).(\lambda (H1: (drop h (S (plus (S i0) d)) (CSort n) e)).(and3_ind 
+(eq C e (CSort n)) (eq nat h O) (eq nat (S (plus (S i0) d)) O) (ex3_2 T C 
+(\lambda (v: T).(\lambda (_: C).(eq T u (lift h (r k d) v)))) (\lambda (v: 
+T).(\lambda (e0: C).(drop (S i0) O e (CHead e0 k v)))) (\lambda (_: 
+T).(\lambda (e0: C).(drop h (r k d) c0 e0)))) (\lambda (_: (eq C e (CSort 
+n))).(\lambda (_: (eq nat h O)).(\lambda (H4: (eq nat (S (plus (S i0) d)) 
+O)).(let H5 \def (eq_ind nat (S (plus (S i0) d)) (\lambda (ee: nat).(match ee 
+with [O \Rightarrow False | (S _) \Rightarrow True])) I O H4) in (False_ind 
+(ex3_2 T C (\lambda (v: T).(\lambda (_: C).(eq T u (lift h (r k d) v)))) 
+(\lambda (v: T).(\lambda (e0: C).(drop (S i0) O e (CHead e0 k v)))) (\lambda 
+(_: T).(\lambda (e0: C).(drop h (r k d) c0 e0)))) H5))))) (drop_gen_sort n h 
+(S (plus (S i0) d)) e H1)))))))) (\lambda (c1: C).(\lambda (H0: (((drop (S 
+i0) O c1 (CHead c0 k u)) \to (\forall (e: C).(\forall (h: nat).(\forall (d: 
+nat).((drop h (S (plus (S i0) d)) c1 e) \to (ex3_2 T C (\lambda (v: 
+T).(\lambda (_: C).(eq T u (lift h (r k d) v)))) (\lambda (v: T).(\lambda 
+(e0: C).(drop (S i0) O e (CHead e0 k v)))) (\lambda (_: T).(\lambda (e0: 
+C).(drop h (r k d) c0 e0))))))))))).(\lambda (k0: K).(K_ind (\lambda (k1: 
+K).(\forall (t: T).((drop (S i0) O (CHead c1 k1 t) (CHead c0 k u)) \to 
 (\forall (e: C).(\forall (h: nat).(\forall (d: nat).((drop h (S (plus (S i0) 
-d)) c1 e) \to (ex3_2 T C (\lambda (v: T).(\lambda (_: C).(eq T u (lift h (r k 
-d) v)))) (\lambda (v: T).(\lambda (e0: C).(drop (S i0) O e (CHead e0 k v)))) 
-(\lambda (_: T).(\lambda (e0: C).(drop h (r k d) c0 e0))))))))))).(\lambda 
-(k0: K).(let TMP_127 \def (\lambda (k1: K).(\forall (t: T).((drop (S i0) O 
-(CHead c1 k1 t) (CHead c0 k u)) \to (\forall (e: C).(\forall (h: 
-nat).(\forall (d: nat).((drop h (S (plus (S i0) d)) (CHead c1 k1 t) e) \to 
-(let TMP_121 \def (\lambda (v: T).(\lambda (_: C).(let TMP_119 \def (r k d) 
-in (let TMP_120 \def (lift h TMP_119 v) in (eq T u TMP_120))))) in (let 
-TMP_124 \def (\lambda (v: T).(\lambda (e0: C).(let TMP_122 \def (S i0) in 
-(let TMP_123 \def (CHead e0 k v) in (drop TMP_122 O e TMP_123))))) in (let 
-TMP_126 \def (\lambda (_: T).(\lambda (e0: C).(let TMP_125 \def (r k d) in 
-(drop h TMP_125 c0 e0)))) in (ex3_2 T C TMP_121 TMP_124 TMP_126))))))))))) in 
-(let TMP_203 \def (\lambda (b: B).(\lambda (t: T).(\lambda (H1: (drop (S i0) 
-O (CHead c1 (Bind b) t) (CHead c0 k u))).(\lambda (e: C).(\lambda (h: 
+d)) (CHead c1 k1 t) e) \to (ex3_2 T C (\lambda (v: T).(\lambda (_: C).(eq T u 
+(lift h (r k d) v)))) (\lambda (v: T).(\lambda (e0: C).(drop (S i0) O e 
+(CHead e0 k v)))) (\lambda (_: T).(\lambda (e0: C).(drop h (r k d) c0 
+e0))))))))))) (\lambda (b: B).(\lambda (t: T).(\lambda (H1: (drop (S i0) O 
+(CHead c1 (Bind b) t) (CHead c0 k u))).(\lambda (e: C).(\lambda (h: 
 nat).(\lambda (d: nat).(\lambda (H2: (drop h (S (plus (S i0) d)) (CHead c1 
-(Bind b) t) e)).(let TMP_130 \def (\lambda (e0: C).(\lambda (v: T).(let 
-TMP_128 \def (Bind b) in (let TMP_129 \def (CHead e0 TMP_128 v) in (eq C e 
-TMP_129))))) in (let TMP_136 \def (\lambda (_: C).(\lambda (v: T).(let 
-TMP_131 \def (Bind b) in (let TMP_132 \def (S i0) in (let TMP_133 \def (plus 
-TMP_132 d) in (let TMP_134 \def (r TMP_131 TMP_133) in (let TMP_135 \def 
-(lift h TMP_134 v) in (eq T t TMP_135)))))))) in (let TMP_141 \def (\lambda 
-(e0: C).(\lambda (_: T).(let TMP_137 \def (Bind b) in (let TMP_138 \def (S 
-i0) in (let TMP_139 \def (plus TMP_138 d) in (let TMP_140 \def (r TMP_137 
-TMP_139) in (drop h TMP_140 c1 e0))))))) in (let TMP_144 \def (\lambda (v: 
-T).(\lambda (_: C).(let TMP_142 \def (r k d) in (let TMP_143 \def (lift h 
-TMP_142 v) in (eq T u TMP_143))))) in (let TMP_147 \def (\lambda (v: 
-T).(\lambda (e0: C).(let TMP_145 \def (S i0) in (let TMP_146 \def (CHead e0 k 
-v) in (drop TMP_145 O e TMP_146))))) in (let TMP_149 \def (\lambda (_: 
-T).(\lambda (e0: C).(let TMP_148 \def (r k d) in (drop h TMP_148 c0 e0)))) in 
-(let TMP_150 \def (ex3_2 T C TMP_144 TMP_147 TMP_149) in (let TMP_198 \def 
-(\lambda (x0: C).(\lambda (x1: T).(\lambda (H3: (eq C e (CHead x0 (Bind b) 
-x1))).(\lambda (_: (eq T t (lift h (r (Bind b) (plus (S i0) d)) 
-x1))).(\lambda (H5: (drop h (r (Bind b) (plus (S i0) d)) c1 x0)).(let TMP_151 
-\def (Bind b) in (let TMP_152 \def (CHead x0 TMP_151 x1) in (let TMP_161 \def 
-(\lambda (c2: C).(let TMP_155 \def (\lambda (v: T).(\lambda (_: C).(let 
-TMP_153 \def (r k d) in (let TMP_154 \def (lift h TMP_153 v) in (eq T u 
-TMP_154))))) in (let TMP_158 \def (\lambda (v: T).(\lambda (e0: C).(let 
-TMP_156 \def (S i0) in (let TMP_157 \def (CHead e0 k v) in (drop TMP_156 O c2 
-TMP_157))))) in (let TMP_160 \def (\lambda (_: T).(\lambda (e0: C).(let 
-TMP_159 \def (r k d) in (drop h TMP_159 c0 e0)))) in (ex3_2 T C TMP_155 
-TMP_158 TMP_160))))) in (let TMP_162 \def (Bind b) in (let TMP_163 \def 
-(CHead c0 k u) in (let TMP_164 \def (drop_gen_drop TMP_162 c1 TMP_163 t i0 
-H1) in (let H6 \def (H u c0 c1 TMP_164 x0 h d H5) in (let TMP_167 \def 
-(\lambda (v: T).(\lambda (_: C).(let TMP_165 \def (r k d) in (let TMP_166 
-\def (lift h TMP_165 v) in (eq T u TMP_166))))) in (let TMP_169 \def (\lambda 
-(v: T).(\lambda (e0: C).(let TMP_168 \def (CHead e0 k v) in (drop i0 O x0 
-TMP_168)))) in (let TMP_171 \def (\lambda (_: T).(\lambda (e0: C).(let 
-TMP_170 \def (r k d) in (drop h TMP_170 c0 e0)))) in (let TMP_174 \def 
-(\lambda (v: T).(\lambda (_: C).(let TMP_172 \def (r k d) in (let TMP_173 
-\def (lift h TMP_172 v) in (eq T u TMP_173))))) in (let TMP_179 \def (\lambda 
-(v: T).(\lambda (e0: C).(let TMP_175 \def (S i0) in (let TMP_176 \def (Bind 
-b) in (let TMP_177 \def (CHead x0 TMP_176 x1) in (let TMP_178 \def (CHead e0 
-k v) in (drop TMP_175 O TMP_177 TMP_178))))))) in (let TMP_181 \def (\lambda 
-(_: T).(\lambda (e0: C).(let TMP_180 \def (r k d) in (drop h TMP_180 c0 
-e0)))) in (let TMP_182 \def (ex3_2 T C TMP_174 TMP_179 TMP_181) in (let 
-TMP_196 \def (\lambda (x2: T).(\lambda (x3: C).(\lambda (H7: (eq T u (lift h 
-(r k d) x2))).(\lambda (H8: (drop i0 O x0 (CHead x3 k x2))).(\lambda (H9: 
-(drop h (r k d) c0 x3)).(let TMP_185 \def (\lambda (v: T).(\lambda (_: 
-C).(let TMP_183 \def (r k d) in (let TMP_184 \def (lift h TMP_183 v) in (eq T 
-u TMP_184))))) in (let TMP_190 \def (\lambda (v: T).(\lambda (e0: C).(let 
-TMP_186 \def (S i0) in (let TMP_187 \def (Bind b) in (let TMP_188 \def (CHead 
-x0 TMP_187 x1) in (let TMP_189 \def (CHead e0 k v) in (drop TMP_186 O TMP_188 
-TMP_189))))))) in (let TMP_192 \def (\lambda (_: T).(\lambda (e0: C).(let 
-TMP_191 \def (r k d) in (drop h TMP_191 c0 e0)))) in (let TMP_193 \def (Bind 
-b) in (let TMP_194 \def (CHead x3 k x2) in (let TMP_195 \def (drop_drop 
-TMP_193 i0 x0 TMP_194 H8 x1) in (ex3_2_intro T C TMP_185 TMP_190 TMP_192 x2 
-x3 H7 TMP_195 H9)))))))))))) in (let TMP_197 \def (ex3_2_ind T C TMP_167 
-TMP_169 TMP_171 TMP_182 TMP_196 H6) in (eq_ind_r C TMP_152 TMP_161 TMP_197 e 
-H3)))))))))))))))))))))) in (let TMP_199 \def (S i0) in (let TMP_200 \def 
-(plus TMP_199 d) in (let TMP_201 \def (Bind b) in (let TMP_202 \def 
-(drop_gen_skip_l c1 e t h TMP_200 TMP_201 H2) in (ex3_2_ind C T TMP_130 
-TMP_136 TMP_141 TMP_150 TMP_198 TMP_202)))))))))))))))))))) in (let TMP_281 
-\def (\lambda (f: F).(\lambda (t: T).(\lambda (H1: (drop (S i0) O (CHead c1 
-(Flat f) t) (CHead c0 k u))).(\lambda (e: C).(\lambda (h: nat).(\lambda (d: 
-nat).(\lambda (H2: (drop h (S (plus (S i0) d)) (CHead c1 (Flat f) t) e)).(let 
-TMP_206 \def (\lambda (e0: C).(\lambda (v: T).(let TMP_204 \def (Flat f) in 
-(let TMP_205 \def (CHead e0 TMP_204 v) in (eq C e TMP_205))))) in (let 
-TMP_212 \def (\lambda (_: C).(\lambda (v: T).(let TMP_207 \def (Flat f) in 
-(let TMP_208 \def (S i0) in (let TMP_209 \def (plus TMP_208 d) in (let 
-TMP_210 \def (r TMP_207 TMP_209) in (let TMP_211 \def (lift h TMP_210 v) in 
-(eq T t TMP_211)))))))) in (let TMP_217 \def (\lambda (e0: C).(\lambda (_: 
-T).(let TMP_213 \def (Flat f) in (let TMP_214 \def (S i0) in (let TMP_215 
-\def (plus TMP_214 d) in (let TMP_216 \def (r TMP_213 TMP_215) in (drop h 
-TMP_216 c1 e0))))))) in (let TMP_220 \def (\lambda (v: T).(\lambda (_: 
-C).(let TMP_218 \def (r k d) in (let TMP_219 \def (lift h TMP_218 v) in (eq T 
-u TMP_219))))) in (let TMP_223 \def (\lambda (v: T).(\lambda (e0: C).(let 
-TMP_221 \def (S i0) in (let TMP_222 \def (CHead e0 k v) in (drop TMP_221 O e 
-TMP_222))))) in (let TMP_225 \def (\lambda (_: T).(\lambda (e0: C).(let 
-TMP_224 \def (r k d) in (drop h TMP_224 c0 e0)))) in (let TMP_226 \def (ex3_2 
-T C TMP_220 TMP_223 TMP_225) in (let TMP_276 \def (\lambda (x0: C).(\lambda 
-(x1: T).(\lambda (H3: (eq C e (CHead x0 (Flat f) x1))).(\lambda (_: (eq T t 
-(lift h (r (Flat f) (plus (S i0) d)) x1))).(\lambda (H5: (drop h (r (Flat f) 
-(plus (S i0) d)) c1 x0)).(let TMP_227 \def (Flat f) in (let TMP_228 \def 
-(CHead x0 TMP_227 x1) in (let TMP_237 \def (\lambda (c2: C).(let TMP_231 \def 
-(\lambda (v: T).(\lambda (_: C).(let TMP_229 \def (r k d) in (let TMP_230 
-\def (lift h TMP_229 v) in (eq T u TMP_230))))) in (let TMP_234 \def (\lambda 
-(v: T).(\lambda (e0: C).(let TMP_232 \def (S i0) in (let TMP_233 \def (CHead 
-e0 k v) in (drop TMP_232 O c2 TMP_233))))) in (let TMP_236 \def (\lambda (_: 
-T).(\lambda (e0: C).(let TMP_235 \def (r k d) in (drop h TMP_235 c0 e0)))) in 
-(ex3_2 T C TMP_231 TMP_234 TMP_236))))) in (let TMP_240 \def (\lambda (v: 
-T).(\lambda (_: C).(let TMP_238 \def (r k d) in (let TMP_239 \def (lift h 
-TMP_238 v) in (eq T u TMP_239))))) in (let TMP_243 \def (\lambda (v: 
-T).(\lambda (e0: C).(let TMP_241 \def (S i0) in (let TMP_242 \def (CHead e0 k 
-v) in (drop TMP_241 O x0 TMP_242))))) in (let TMP_245 \def (\lambda (_: 
-T).(\lambda (e0: C).(let TMP_244 \def (r k d) in (drop h TMP_244 c0 e0)))) in 
-(let TMP_248 \def (\lambda (v: T).(\lambda (_: C).(let TMP_246 \def (r k d) 
-in (let TMP_247 \def (lift h TMP_246 v) in (eq T u TMP_247))))) in (let 
-TMP_253 \def (\lambda (v: T).(\lambda (e0: C).(let TMP_249 \def (S i0) in 
-(let TMP_250 \def (Flat f) in (let TMP_251 \def (CHead x0 TMP_250 x1) in (let 
-TMP_252 \def (CHead e0 k v) in (drop TMP_249 O TMP_251 TMP_252))))))) in (let 
-TMP_255 \def (\lambda (_: T).(\lambda (e0: C).(let TMP_254 \def (r k d) in 
-(drop h TMP_254 c0 e0)))) in (let TMP_256 \def (ex3_2 T C TMP_248 TMP_253 
-TMP_255) in (let TMP_270 \def (\lambda (x2: T).(\lambda (x3: C).(\lambda (H6: 
-(eq T u (lift h (r k d) x2))).(\lambda (H7: (drop (S i0) O x0 (CHead x3 k 
-x2))).(\lambda (H8: (drop h (r k d) c0 x3)).(let TMP_259 \def (\lambda (v: 
-T).(\lambda (_: C).(let TMP_257 \def (r k d) in (let TMP_258 \def (lift h 
-TMP_257 v) in (eq T u TMP_258))))) in (let TMP_264 \def (\lambda (v: 
-T).(\lambda (e0: C).(let TMP_260 \def (S i0) in (let TMP_261 \def (Flat f) in 
-(let TMP_262 \def (CHead x0 TMP_261 x1) in (let TMP_263 \def (CHead e0 k v) 
-in (drop TMP_260 O TMP_262 TMP_263))))))) in (let TMP_266 \def (\lambda (_: 
-T).(\lambda (e0: C).(let TMP_265 \def (r k d) in (drop h TMP_265 c0 e0)))) in 
-(let TMP_267 \def (Flat f) in (let TMP_268 \def (CHead x3 k x2) in (let 
-TMP_269 \def (drop_drop TMP_267 i0 x0 TMP_268 H7 x1) in (ex3_2_intro T C 
-TMP_259 TMP_264 TMP_266 x2 x3 H6 TMP_269 H8)))))))))))) in (let TMP_271 \def 
-(Flat f) in (let TMP_272 \def (CHead c0 k u) in (let TMP_273 \def 
-(drop_gen_drop TMP_271 c1 TMP_272 t i0 H1) in (let TMP_274 \def (H0 TMP_273 
-x0 h d H5) in (let TMP_275 \def (ex3_2_ind T C TMP_240 TMP_243 TMP_245 
-TMP_256 TMP_270 TMP_274) in (eq_ind_r C TMP_228 TMP_237 TMP_275 e 
-H3)))))))))))))))))))))) in (let TMP_277 \def (S i0) in (let TMP_278 \def 
-(plus TMP_277 d) in (let TMP_279 \def (Flat f) in (let TMP_280 \def 
-(drop_gen_skip_l c1 e t h TMP_278 TMP_279 H2) in (ex3_2_ind C T TMP_206 
-TMP_212 TMP_217 TMP_226 TMP_276 TMP_280)))))))))))))))))))) in (K_ind TMP_127 
-TMP_203 TMP_281 k0))))))) in (C_ind TMP_83 TMP_118 TMP_282 c))))))))) in 
-(nat_ind TMP_8 TMP_74 TMP_283 i))))).
+(Bind b) t) e)).(ex3_2_ind C T (\lambda (e0: C).(\lambda (v: T).(eq C e 
+(CHead e0 (Bind b) v)))) (\lambda (_: C).(\lambda (v: T).(eq T t (lift h (r 
+(Bind b) (plus (S i0) d)) v)))) (\lambda (e0: C).(\lambda (_: T).(drop h (r 
+(Bind b) (plus (S i0) d)) c1 e0))) (ex3_2 T C (\lambda (v: T).(\lambda (_: 
+C).(eq T u (lift h (r k d) v)))) (\lambda (v: T).(\lambda (e0: C).(drop (S 
+i0) O e (CHead e0 k v)))) (\lambda (_: T).(\lambda (e0: C).(drop h (r k d) c0 
+e0)))) (\lambda (x0: C).(\lambda (x1: T).(\lambda (H3: (eq C e (CHead x0 
+(Bind b) x1))).(\lambda (_: (eq T t (lift h (r (Bind b) (plus (S i0) d)) 
+x1))).(\lambda (H5: (drop h (r (Bind b) (plus (S i0) d)) c1 x0)).(eq_ind_r C 
+(CHead x0 (Bind b) x1) (\lambda (c2: C).(ex3_2 T C (\lambda (v: T).(\lambda 
+(_: C).(eq T u (lift h (r k d) v)))) (\lambda (v: T).(\lambda (e0: C).(drop 
+(S i0) O c2 (CHead e0 k v)))) (\lambda (_: T).(\lambda (e0: C).(drop h (r k 
+d) c0 e0))))) (let H6 \def (H u c0 c1 (drop_gen_drop (Bind b) c1 (CHead c0 k 
+u) t i0 H1) x0 h d H5) in (ex3_2_ind T C (\lambda (v: T).(\lambda (_: C).(eq 
+T u (lift h (r k d) v)))) (\lambda (v: T).(\lambda (e0: C).(drop i0 O x0 
+(CHead e0 k v)))) (\lambda (_: T).(\lambda (e0: C).(drop h (r k d) c0 e0))) 
+(ex3_2 T C (\lambda (v: T).(\lambda (_: C).(eq T u (lift h (r k d) v)))) 
+(\lambda (v: T).(\lambda (e0: C).(drop (S i0) O (CHead x0 (Bind b) x1) (CHead 
+e0 k v)))) (\lambda (_: T).(\lambda (e0: C).(drop h (r k d) c0 e0)))) 
+(\lambda (x2: T).(\lambda (x3: C).(\lambda (H7: (eq T u (lift h (r k d) 
+x2))).(\lambda (H8: (drop i0 O x0 (CHead x3 k x2))).(\lambda (H9: (drop h (r 
+k d) c0 x3)).(ex3_2_intro T C (\lambda (v: T).(\lambda (_: C).(eq T u (lift h 
+(r k d) v)))) (\lambda (v: T).(\lambda (e0: C).(drop (S i0) O (CHead x0 (Bind 
+b) x1) (CHead e0 k v)))) (\lambda (_: T).(\lambda (e0: C).(drop h (r k d) c0 
+e0))) x2 x3 H7 (drop_drop (Bind b) i0 x0 (CHead x3 k x2) H8 x1) H9)))))) H6)) 
+e H3)))))) (drop_gen_skip_l c1 e t h (plus (S i0) d) (Bind b) H2))))))))) 
+(\lambda (f: F).(\lambda (t: T).(\lambda (H1: (drop (S i0) O (CHead c1 (Flat 
+f) t) (CHead c0 k u))).(\lambda (e: C).(\lambda (h: nat).(\lambda (d: 
+nat).(\lambda (H2: (drop h (S (plus (S i0) d)) (CHead c1 (Flat f) t) 
+e)).(ex3_2_ind C T (\lambda (e0: C).(\lambda (v: T).(eq C e (CHead e0 (Flat 
+f) v)))) (\lambda (_: C).(\lambda (v: T).(eq T t (lift h (r (Flat f) (plus (S 
+i0) d)) v)))) (\lambda (e0: C).(\lambda (_: T).(drop h (r (Flat f) (plus (S 
+i0) d)) c1 e0))) (ex3_2 T C (\lambda (v: T).(\lambda (_: C).(eq T u (lift h 
+(r k d) v)))) (\lambda (v: T).(\lambda (e0: C).(drop (S i0) O e (CHead e0 k 
+v)))) (\lambda (_: T).(\lambda (e0: C).(drop h (r k d) c0 e0)))) (\lambda 
+(x0: C).(\lambda (x1: T).(\lambda (H3: (eq C e (CHead x0 (Flat f) 
+x1))).(\lambda (_: (eq T t (lift h (r (Flat f) (plus (S i0) d)) 
+x1))).(\lambda (H5: (drop h (r (Flat f) (plus (S i0) d)) c1 x0)).(eq_ind_r C 
+(CHead x0 (Flat f) x1) (\lambda (c2: C).(ex3_2 T C (\lambda (v: T).(\lambda 
+(_: C).(eq T u (lift h (r k d) v)))) (\lambda (v: T).(\lambda (e0: C).(drop 
+(S i0) O c2 (CHead e0 k v)))) (\lambda (_: T).(\lambda (e0: C).(drop h (r k 
+d) c0 e0))))) (ex3_2_ind T C (\lambda (v: T).(\lambda (_: C).(eq T u (lift h 
+(r k d) v)))) (\lambda (v: T).(\lambda (e0: C).(drop (S i0) O x0 (CHead e0 k 
+v)))) (\lambda (_: T).(\lambda (e0: C).(drop h (r k d) c0 e0))) (ex3_2 T C 
+(\lambda (v: T).(\lambda (_: C).(eq T u (lift h (r k d) v)))) (\lambda (v: 
+T).(\lambda (e0: C).(drop (S i0) O (CHead x0 (Flat f) x1) (CHead e0 k v)))) 
+(\lambda (_: T).(\lambda (e0: C).(drop h (r k d) c0 e0)))) (\lambda (x2: 
+T).(\lambda (x3: C).(\lambda (H6: (eq T u (lift h (r k d) x2))).(\lambda (H7: 
+(drop (S i0) O x0 (CHead x3 k x2))).(\lambda (H8: (drop h (r k d) c0 
+x3)).(ex3_2_intro T C (\lambda (v: T).(\lambda (_: C).(eq T u (lift h (r k d) 
+v)))) (\lambda (v: T).(\lambda (e0: C).(drop (S i0) O (CHead x0 (Flat f) x1) 
+(CHead e0 k v)))) (\lambda (_: T).(\lambda (e0: C).(drop h (r k d) c0 e0))) 
+x2 x3 H6 (drop_drop (Flat f) i0 x0 (CHead x3 k x2) H7 x1) H8)))))) (H0 
+(drop_gen_drop (Flat f) c1 (CHead c0 k u) t i0 H1) x0 h d H5)) e H3)))))) 
+(drop_gen_skip_l c1 e t h (plus (S i0) d) (Flat f) H2))))))))) k0)))) c)))))) 
+i)).
 
 theorem drop_conf_ge:
  \forall (i: nat).(\forall (a: C).(\forall (c: C).((drop i O c a) \to 
 (\forall (e: C).(\forall (h: nat).(\forall (d: nat).((drop h d c e) \to ((le 
 (plus d h) i) \to (drop (minus i h) O e a)))))))))
 \def
- \lambda (i: nat).(let TMP_2 \def (\lambda (n: nat).(\forall (a: C).(\forall 
-(c: C).((drop n O c a) \to (\forall (e: C).(\forall (h: nat).(\forall (d: 
-nat).((drop h d c e) \to ((le (plus d h) n) \to (let TMP_1 \def (minus n h) 
-in (drop TMP_1 O e a))))))))))) in (let TMP_23 \def (\lambda (a: C).(\lambda 
-(c: C).(\lambda (H: (drop O O c a)).(\lambda (e: C).(\lambda (h: 
-nat).(\lambda (d: nat).(\lambda (H0: (drop h d c e)).(\lambda (H1: (le (plus 
-d h) O)).(let TMP_3 \def (\lambda (c0: C).(drop h d c0 e)) in (let TMP_4 \def 
-(drop_gen_refl c a H) in (let H2 \def (eq_ind C c TMP_3 H0 a TMP_4) in (let 
-TMP_5 \def (plus d h) in (let H_y \def (le_n_O_eq TMP_5 H1) in (let TMP_6 
-\def (eq nat d O) in (let TMP_7 \def (eq nat h O) in (let TMP_8 \def (minus O 
-h) in (let TMP_9 \def (drop TMP_8 O e a) in (let TMP_19 \def (\lambda (H3: 
-(eq nat d O)).(\lambda (H4: (eq nat h O)).(let TMP_10 \def (\lambda (n: 
-nat).(drop h n a e)) in (let H5 \def (eq_ind nat d TMP_10 H2 O H3) in (let 
-TMP_11 \def (\lambda (n: nat).(drop n O a e)) in (let H6 \def (eq_ind nat h 
-TMP_11 H5 O H4) in (let TMP_13 \def (\lambda (n: nat).(let TMP_12 \def (minus 
-O n) in (drop TMP_12 O e a))) in (let TMP_15 \def (\lambda (c0: C).(let 
-TMP_14 \def (minus O O) in (drop TMP_14 O c0 a))) in (let TMP_16 \def 
-(drop_refl a) in (let TMP_17 \def (drop_gen_refl a e H6) in (let TMP_18 \def 
-(eq_ind C a TMP_15 TMP_16 e TMP_17) in (eq_ind_r nat O TMP_13 TMP_18 h 
-H4)))))))))))) in (let TMP_20 \def (plus d h) in (let TMP_21 \def (sym_eq nat 
-O TMP_20 H_y) in (let TMP_22 \def (plus_O d h TMP_21) in (land_ind TMP_6 
-TMP_7 TMP_9 TMP_19 TMP_22)))))))))))))))))))))) in (let TMP_227 \def (\lambda 
-(i0: nat).(\lambda (H: ((\forall (a: C).(\forall (c: C).((drop i0 O c a) \to 
+ \lambda (i: nat).(nat_ind (\lambda (n: nat).(\forall (a: C).(\forall (c: 
+C).((drop n O c a) \to (\forall (e: C).(\forall (h: nat).(\forall (d: 
+nat).((drop h d c e) \to ((le (plus d h) n) \to (drop (minus n h) O e 
+a)))))))))) (\lambda (a: C).(\lambda (c: C).(\lambda (H: (drop O O c 
+a)).(\lambda (e: C).(\lambda (h: nat).(\lambda (d: nat).(\lambda (H0: (drop h 
+d c e)).(\lambda (H1: (le (plus d h) O)).(let H2 \def (eq_ind C c (\lambda 
+(c0: C).(drop h d c0 e)) H0 a (drop_gen_refl c a H)) in (let H_y \def 
+(le_n_O_eq (plus d h) H1) in (land_ind (eq nat d O) (eq nat h O) (drop (minus 
+O h) O e a) (\lambda (H3: (eq nat d O)).(\lambda (H4: (eq nat h O)).(let H5 
+\def (eq_ind nat d (\lambda (n: nat).(drop h n a e)) H2 O H3) in (let H6 \def 
+(eq_ind nat h (\lambda (n: nat).(drop n O a e)) H5 O H4) in (eq_ind_r nat O 
+(\lambda (n: nat).(drop (minus O n) O e a)) (eq_ind C a (\lambda (c0: 
+C).(drop (minus O O) O c0 a)) (drop_refl a) e (drop_gen_refl a e H6)) h 
+H4))))) (plus_O d h (sym_eq nat O (plus d h) H_y))))))))))))) (\lambda (i0: 
+nat).(\lambda (H: ((\forall (a: C).(\forall (c: C).((drop i0 O c a) \to 
 (\forall (e: C).(\forall (h: nat).(\forall (d: nat).((drop h d c e) \to ((le 
 (plus d h) i0) \to (drop (minus i0 h) O e a))))))))))).(\lambda (a: 
-C).(\lambda (c: C).(let TMP_26 \def (\lambda (c0: C).((drop (S i0) O c0 a) 
-\to (\forall (e: C).(\forall (h: nat).(\forall (d: nat).((drop h d c0 e) \to 
-((le (plus d h) (S i0)) \to (let TMP_24 \def (S i0) in (let TMP_25 \def 
-(minus TMP_24 h) in (drop TMP_25 O e a)))))))))) in (let TMP_75 \def (\lambda 
-(n: nat).(\lambda (H0: (drop (S i0) O (CSort n) a)).(\lambda (e: C).(\lambda 
-(h: nat).(\lambda (d: nat).(\lambda (H1: (drop h d (CSort n) e)).(\lambda 
-(H2: (le (plus d h) (S i0))).(let TMP_27 \def (CSort n) in (let TMP_28 \def 
-(eq C e TMP_27) in (let TMP_29 \def (eq nat h O) in (let TMP_30 \def (eq nat 
-d O) in (let TMP_31 \def (S i0) in (let TMP_32 \def (minus TMP_31 h) in (let 
-TMP_33 \def (drop TMP_32 O e a) in (let TMP_73 \def (\lambda (H3: (eq C e 
-(CSort n))).(\lambda (H4: (eq nat h O)).(\lambda (H5: (eq nat d O)).(let 
-TMP_34 \def (CSort n) in (let TMP_35 \def (eq C a TMP_34) in (let TMP_36 \def 
-(S i0) in (let TMP_37 \def (eq nat TMP_36 O) in (let TMP_38 \def (eq nat O O) 
-in (let TMP_39 \def (S i0) in (let TMP_40 \def (minus TMP_39 h) in (let 
-TMP_41 \def (drop TMP_40 O e a) in (let TMP_70 \def (\lambda (H6: (eq C a 
-(CSort n))).(\lambda (H7: (eq nat (S i0) O)).(\lambda (_: (eq nat O O)).(let 
-TMP_44 \def (\lambda (n0: nat).(let TMP_42 \def (plus n0 h) in (let TMP_43 
-\def (S i0) in (le TMP_42 TMP_43)))) in (let H9 \def (eq_ind nat d TMP_44 H2 
-O H5) in (let TMP_47 \def (\lambda (n0: nat).(let TMP_45 \def (plus O n0) in 
-(let TMP_46 \def (S i0) in (le TMP_45 TMP_46)))) in (let H10 \def (eq_ind nat 
-h TMP_47 H9 O H4) in (let TMP_50 \def (\lambda (n0: nat).(let TMP_48 \def (S 
-i0) in (let TMP_49 \def (minus TMP_48 n0) in (drop TMP_49 O e a)))) in (let 
-TMP_51 \def (CSort n) in (let TMP_54 \def (\lambda (c0: C).(let TMP_52 \def 
-(S i0) in (let TMP_53 \def (minus TMP_52 O) in (drop TMP_53 O c0 a)))) in 
-(let TMP_55 \def (CSort n) in (let TMP_59 \def (\lambda (c0: C).(let TMP_56 
-\def (S i0) in (let TMP_57 \def (minus TMP_56 O) in (let TMP_58 \def (CSort 
-n) in (drop TMP_57 O TMP_58 c0))))) in (let TMP_60 \def (S i0) in (let TMP_61 
-\def (\lambda (ee: nat).(match ee with [O \Rightarrow False | (S _) 
-\Rightarrow True])) in (let H11 \def (eq_ind nat TMP_60 TMP_61 I O H7) in 
-(let TMP_62 \def (S i0) in (let TMP_63 \def (minus TMP_62 O) in (let TMP_64 
-\def (CSort n) in (let TMP_65 \def (CSort n) in (let TMP_66 \def (drop TMP_63 
-O TMP_64 TMP_65) in (let TMP_67 \def (False_ind TMP_66 H11) in (let TMP_68 
-\def (eq_ind_r C TMP_55 TMP_59 TMP_67 a H6) in (let TMP_69 \def (eq_ind_r C 
-TMP_51 TMP_54 TMP_68 e H3) in (eq_ind_r nat O TMP_50 TMP_69 h 
-H4)))))))))))))))))))))))) in (let TMP_71 \def (S i0) in (let TMP_72 \def 
-(drop_gen_sort n TMP_71 O a H0) in (and3_ind TMP_35 TMP_37 TMP_38 TMP_41 
-TMP_70 TMP_72))))))))))))))) in (let TMP_74 \def (drop_gen_sort n h d e H1) 
-in (and3_ind TMP_28 TMP_29 TMP_30 TMP_33 TMP_73 TMP_74))))))))))))))))) in 
-(let TMP_226 \def (\lambda (c0: C).(\lambda (H0: (((drop (S i0) O c0 a) \to 
-(\forall (e: C).(\forall (h: nat).(\forall (d: nat).((drop h d c0 e) \to ((le 
-(plus d h) (S i0)) \to (drop (minus (S i0) h) O e a))))))))).(\lambda (k: 
-K).(let TMP_78 \def (\lambda (k0: K).(\forall (t: T).((drop (S i0) O (CHead 
-c0 k0 t) a) \to (\forall (e: C).(\forall (h: nat).(\forall (d: nat).((drop h 
-d (CHead c0 k0 t) e) \to ((le (plus d h) (S i0)) \to (let TMP_76 \def (S i0) 
-in (let TMP_77 \def (minus TMP_76 h) in (drop TMP_77 O e a))))))))))) in (let 
-TMP_148 \def (\lambda (b: B).(\lambda (t: T).(\lambda (H1: (drop (S i0) O 
-(CHead c0 (Bind b) t) a)).(\lambda (e: C).(\lambda (h: nat).(\lambda (d: 
-nat).(\lambda (H2: (drop h d (CHead c0 (Bind b) t) e)).(\lambda (H3: (le 
-(plus d h) (S i0))).(let TMP_81 \def (\lambda (n: nat).((drop h n (CHead c0 
-(Bind b) t) e) \to ((le (plus n h) (S i0)) \to (let TMP_79 \def (S i0) in 
-(let TMP_80 \def (minus TMP_79 h) in (drop TMP_80 O e a)))))) in (let TMP_105 
-\def (\lambda (H4: (drop h O (CHead c0 (Bind b) t) e)).(\lambda (H5: (le 
-(plus O h) (S i0))).(let TMP_84 \def (\lambda (n: nat).((drop n O (CHead c0 
-(Bind b) t) e) \to ((le (plus O n) (S i0)) \to (let TMP_82 \def (S i0) in 
-(let TMP_83 \def (minus TMP_82 n) in (drop TMP_83 O e a)))))) in (let TMP_97 
-\def (\lambda (H6: (drop O O (CHead c0 (Bind b) t) e)).(\lambda (_: (le (plus 
-O O) (S i0))).(let TMP_85 \def (Bind b) in (let TMP_86 \def (CHead c0 TMP_85 
-t) in (let TMP_89 \def (\lambda (c1: C).(let TMP_87 \def (S i0) in (let 
-TMP_88 \def (minus TMP_87 O) in (drop TMP_88 O c1 a)))) in (let TMP_90 \def 
-(Bind b) in (let TMP_91 \def (Bind b) in (let TMP_92 \def (drop_gen_drop 
-TMP_91 c0 a t i0 H1) in (let TMP_93 \def (drop_drop TMP_90 i0 c0 a TMP_92 t) 
-in (let TMP_94 \def (Bind b) in (let TMP_95 \def (CHead c0 TMP_94 t) in (let 
-TMP_96 \def (drop_gen_refl TMP_95 e H6) in (eq_ind C TMP_86 TMP_89 TMP_93 e 
-TMP_96))))))))))))) in (let TMP_104 \def (\lambda (h0: nat).(\lambda (_: 
-(((drop h0 O (CHead c0 (Bind b) t) e) \to ((le (plus O h0) (S i0)) \to (drop 
-(minus (S i0) h0) O e a))))).(\lambda (H6: (drop (S h0) O (CHead c0 (Bind b) 
-t) e)).(\lambda (H7: (le (plus O (S h0)) (S i0))).(let TMP_98 \def (Bind b) 
-in (let TMP_99 \def (drop_gen_drop TMP_98 c0 a t i0 H1) in (let TMP_100 \def 
-(Bind b) in (let TMP_101 \def (drop_gen_drop TMP_100 c0 e t h0 H6) in (let 
-TMP_102 \def (plus O h0) in (let TMP_103 \def (le_S_n TMP_102 i0 H7) in (H a 
-c0 TMP_99 e h0 O TMP_101 TMP_103))))))))))) in (nat_ind TMP_84 TMP_97 TMP_104 
-h H4 H5)))))) in (let TMP_147 \def (\lambda (d0: nat).(\lambda (_: (((drop h 
-d0 (CHead c0 (Bind b) t) e) \to ((le (plus d0 h) (S i0)) \to (drop (minus (S 
-i0) h) O e a))))).(\lambda (H4: (drop h (S d0) (CHead c0 (Bind b) t) 
-e)).(\lambda (H5: (le (plus (S d0) h) (S i0))).(let TMP_108 \def (\lambda 
-(e0: C).(\lambda (v: T).(let TMP_106 \def (Bind b) in (let TMP_107 \def 
-(CHead e0 TMP_106 v) in (eq C e TMP_107))))) in (let TMP_112 \def (\lambda 
-(_: C).(\lambda (v: T).(let TMP_109 \def (Bind b) in (let TMP_110 \def (r 
-TMP_109 d0) in (let TMP_111 \def (lift h TMP_110 v) in (eq T t TMP_111)))))) 
-in (let TMP_115 \def (\lambda (e0: C).(\lambda (_: T).(let TMP_113 \def (Bind 
-b) in (let TMP_114 \def (r TMP_113 d0) in (drop h TMP_114 c0 e0))))) in (let 
-TMP_116 \def (S i0) in (let TMP_117 \def (minus TMP_116 h) in (let TMP_118 
-\def (drop TMP_117 O e a) in (let TMP_144 \def (\lambda (x0: C).(\lambda (x1: 
-T).(\lambda (H6: (eq C e (CHead x0 (Bind b) x1))).(\lambda (_: (eq T t (lift 
-h (r (Bind b) d0) x1))).(\lambda (H8: (drop h (r (Bind b) d0) c0 x0)).(let 
-TMP_119 \def (Bind b) in (let TMP_120 \def (CHead x0 TMP_119 x1) in (let 
-TMP_123 \def (\lambda (c1: C).(let TMP_121 \def (S i0) in (let TMP_122 \def 
-(minus TMP_121 h) in (drop TMP_122 O c1 a)))) in (let TMP_124 \def (minus i0 
-h) in (let TMP_125 \def (S TMP_124) in (let TMP_128 \def (\lambda (n: 
-nat).(let TMP_126 \def (Bind b) in (let TMP_127 \def (CHead x0 TMP_126 x1) in 
-(drop n O TMP_127 a)))) in (let TMP_129 \def (Bind b) in (let TMP_130 \def 
-(minus i0 h) in (let TMP_131 \def (Bind b) in (let TMP_132 \def 
-(drop_gen_drop TMP_131 c0 a t i0 H1) in (let TMP_133 \def (plus d0 h) in (let 
-TMP_134 \def (le_S_n TMP_133 i0 H5) in (let TMP_135 \def (H a c0 TMP_132 x0 h 
-d0 H8 TMP_134) in (let TMP_136 \def (drop_drop TMP_129 TMP_130 x0 a TMP_135 
-x1) in (let TMP_137 \def (S i0) in (let TMP_138 \def (minus TMP_137 h) in 
-(let TMP_139 \def (plus d0 h) in (let TMP_140 \def (le_S_n TMP_139 i0 H5) in 
-(let TMP_141 \def (le_trans_plus_r d0 h i0 TMP_140) in (let TMP_142 \def 
-(minus_Sn_m i0 h TMP_141) in (let TMP_143 \def (eq_ind nat TMP_125 TMP_128 
-TMP_136 TMP_138 TMP_142) in (eq_ind_r C TMP_120 TMP_123 TMP_143 e 
-H6))))))))))))))))))))))))))) in (let TMP_145 \def (Bind b) in (let TMP_146 
-\def (drop_gen_skip_l c0 e t h d0 TMP_145 H4) in (ex3_2_ind C T TMP_108 
-TMP_112 TMP_115 TMP_118 TMP_144 TMP_146)))))))))))))) in (nat_ind TMP_81 
-TMP_105 TMP_147 d H2 H3)))))))))))) in (let TMP_225 \def (\lambda (f: 
-F).(\lambda (t: T).(\lambda (H1: (drop (S i0) O (CHead c0 (Flat f) t) 
-a)).(\lambda (e: C).(\lambda (h: nat).(\lambda (d: nat).(\lambda (H2: (drop h 
-d (CHead c0 (Flat f) t) e)).(\lambda (H3: (le (plus d h) (S i0))).(let 
-TMP_151 \def (\lambda (n: nat).((drop h n (CHead c0 (Flat f) t) e) \to ((le 
-(plus n h) (S i0)) \to (let TMP_149 \def (S i0) in (let TMP_150 \def (minus 
-TMP_149 h) in (drop TMP_150 O e a)))))) in (let TMP_174 \def (\lambda (H4: 
-(drop h O (CHead c0 (Flat f) t) e)).(\lambda (H5: (le (plus O h) (S 
-i0))).(let TMP_154 \def (\lambda (n: nat).((drop n O (CHead c0 (Flat f) t) e) 
-\to ((le (plus O n) (S i0)) \to (let TMP_152 \def (S i0) in (let TMP_153 \def 
-(minus TMP_152 n) in (drop TMP_153 O e a)))))) in (let TMP_167 \def (\lambda 
+C).(\lambda (c: C).(C_ind (\lambda (c0: C).((drop (S i0) O c0 a) \to (\forall 
+(e: C).(\forall (h: nat).(\forall (d: nat).((drop h d c0 e) \to ((le (plus d 
+h) (S i0)) \to (drop (minus (S i0) h) O e a)))))))) (\lambda (n: 
+nat).(\lambda (H0: (drop (S i0) O (CSort n) a)).(\lambda (e: C).(\lambda (h: 
+nat).(\lambda (d: nat).(\lambda (H1: (drop h d (CSort n) e)).(\lambda (H2: 
+(le (plus d h) (S i0))).(and3_ind (eq C e (CSort n)) (eq nat h O) (eq nat d 
+O) (drop (minus (S i0) h) O e a) (\lambda (H3: (eq C e (CSort n))).(\lambda 
+(H4: (eq nat h O)).(\lambda (H5: (eq nat d O)).(and3_ind (eq C a (CSort n)) 
+(eq nat (S i0) O) (eq nat O O) (drop (minus (S i0) h) O e a) (\lambda (H6: 
+(eq C a (CSort n))).(\lambda (H7: (eq nat (S i0) O)).(\lambda (_: (eq nat O 
+O)).(let H9 \def (eq_ind nat d (\lambda (n0: nat).(le (plus n0 h) (S i0))) H2 
+O H5) in (let H10 \def (eq_ind nat h (\lambda (n0: nat).(le (plus O n0) (S 
+i0))) H9 O H4) in (eq_ind_r nat O (\lambda (n0: nat).(drop (minus (S i0) n0) 
+O e a)) (eq_ind_r C (CSort n) (\lambda (c0: C).(drop (minus (S i0) O) O c0 
+a)) (eq_ind_r C (CSort n) (\lambda (c0: C).(drop (minus (S i0) O) O (CSort n) 
+c0)) (let H11 \def (eq_ind nat (S i0) (\lambda (ee: nat).(match ee with [O 
+\Rightarrow False | (S _) \Rightarrow True])) I O H7) in (False_ind (drop 
+(minus (S i0) O) O (CSort n) (CSort n)) H11)) a H6) e H3) h H4)))))) 
+(drop_gen_sort n (S i0) O a H0))))) (drop_gen_sort n h d e H1))))))))) 
+(\lambda (c0: C).(\lambda (H0: (((drop (S i0) O c0 a) \to (\forall (e: 
+C).(\forall (h: nat).(\forall (d: nat).((drop h d c0 e) \to ((le (plus d h) 
+(S i0)) \to (drop (minus (S i0) h) O e a))))))))).(\lambda (k: K).(K_ind 
+(\lambda (k0: K).(\forall (t: T).((drop (S i0) O (CHead c0 k0 t) a) \to 
+(\forall (e: C).(\forall (h: nat).(\forall (d: nat).((drop h d (CHead c0 k0 
+t) e) \to ((le (plus d h) (S i0)) \to (drop (minus (S i0) h) O e a))))))))) 
+(\lambda (b: B).(\lambda (t: T).(\lambda (H1: (drop (S i0) O (CHead c0 (Bind 
+b) t) a)).(\lambda (e: C).(\lambda (h: nat).(\lambda (d: nat).(\lambda (H2: 
+(drop h d (CHead c0 (Bind b) t) e)).(\lambda (H3: (le (plus d h) (S 
+i0))).(nat_ind (\lambda (n: nat).((drop h n (CHead c0 (Bind b) t) e) \to ((le 
+(plus n h) (S i0)) \to (drop (minus (S i0) h) O e a)))) (\lambda (H4: (drop h 
+O (CHead c0 (Bind b) t) e)).(\lambda (H5: (le (plus O h) (S i0))).(nat_ind 
+(\lambda (n: nat).((drop n O (CHead c0 (Bind b) t) e) \to ((le (plus O n) (S 
+i0)) \to (drop (minus (S i0) n) O e a)))) (\lambda (H6: (drop O O (CHead c0 
+(Bind b) t) e)).(\lambda (_: (le (plus O O) (S i0))).(eq_ind C (CHead c0 
+(Bind b) t) (\lambda (c1: C).(drop (minus (S i0) O) O c1 a)) (drop_drop (Bind 
+b) i0 c0 a (drop_gen_drop (Bind b) c0 a t i0 H1) t) e (drop_gen_refl (CHead 
+c0 (Bind b) t) e H6)))) (\lambda (h0: nat).(\lambda (_: (((drop h0 O (CHead 
+c0 (Bind b) t) e) \to ((le (plus O h0) (S i0)) \to (drop (minus (S i0) h0) O 
+e a))))).(\lambda (H6: (drop (S h0) O (CHead c0 (Bind b) t) e)).(\lambda (H7: 
+(le (plus O (S h0)) (S i0))).(H a c0 (drop_gen_drop (Bind b) c0 a t i0 H1) e 
+h0 O (drop_gen_drop (Bind b) c0 e t h0 H6) (le_S_n (plus O h0) i0 H7)))))) h 
+H4 H5))) (\lambda (d0: nat).(\lambda (_: (((drop h d0 (CHead c0 (Bind b) t) 
+e) \to ((le (plus d0 h) (S i0)) \to (drop (minus (S i0) h) O e 
+a))))).(\lambda (H4: (drop h (S d0) (CHead c0 (Bind b) t) e)).(\lambda (H5: 
+(le (plus (S d0) h) (S i0))).(ex3_2_ind C T (\lambda (e0: C).(\lambda (v: 
+T).(eq C e (CHead e0 (Bind b) v)))) (\lambda (_: C).(\lambda (v: T).(eq T t 
+(lift h (r (Bind b) d0) v)))) (\lambda (e0: C).(\lambda (_: T).(drop h (r 
+(Bind b) d0) c0 e0))) (drop (minus (S i0) h) O e a) (\lambda (x0: C).(\lambda 
+(x1: T).(\lambda (H6: (eq C e (CHead x0 (Bind b) x1))).(\lambda (_: (eq T t 
+(lift h (r (Bind b) d0) x1))).(\lambda (H8: (drop h (r (Bind b) d0) c0 
+x0)).(eq_ind_r C (CHead x0 (Bind b) x1) (\lambda (c1: C).(drop (minus (S i0) 
+h) O c1 a)) (eq_ind nat (S (minus i0 h)) (\lambda (n: nat).(drop n O (CHead 
+x0 (Bind b) x1) a)) (drop_drop (Bind b) (minus i0 h) x0 a (H a c0 
+(drop_gen_drop (Bind b) c0 a t i0 H1) x0 h d0 H8 (le_S_n (plus d0 h) i0 H5)) 
+x1) (minus (S i0) h) (minus_Sn_m i0 h (le_trans_plus_r d0 h i0 (le_S_n (plus 
+d0 h) i0 H5)))) e H6)))))) (drop_gen_skip_l c0 e t h d0 (Bind b) H4)))))) d 
+H2 H3))))))))) (\lambda (f: F).(\lambda (t: T).(\lambda (H1: (drop (S i0) O 
+(CHead c0 (Flat f) t) a)).(\lambda (e: C).(\lambda (h: nat).(\lambda (d: 
+nat).(\lambda (H2: (drop h d (CHead c0 (Flat f) t) e)).(\lambda (H3: (le 
+(plus d h) (S i0))).(nat_ind (\lambda (n: nat).((drop h n (CHead c0 (Flat f) 
+t) e) \to ((le (plus n h) (S i0)) \to (drop (minus (S i0) h) O e a)))) 
+(\lambda (H4: (drop h O (CHead c0 (Flat f) t) e)).(\lambda (H5: (le (plus O 
+h) (S i0))).(nat_ind (\lambda (n: nat).((drop n O (CHead c0 (Flat f) t) e) 
+\to ((le (plus O n) (S i0)) \to (drop (minus (S i0) n) O e a)))) (\lambda 
 (H6: (drop O O (CHead c0 (Flat f) t) e)).(\lambda (_: (le (plus O O) (S 
-i0))).(let TMP_155 \def (Flat f) in (let TMP_156 \def (CHead c0 TMP_155 t) in 
-(let TMP_159 \def (\lambda (c1: C).(let TMP_157 \def (S i0) in (let TMP_158 
-\def (minus TMP_157 O) in (drop TMP_158 O c1 a)))) in (let TMP_160 \def (Flat 
-f) in (let TMP_161 \def (Flat f) in (let TMP_162 \def (drop_gen_drop TMP_161 
-c0 a t i0 H1) in (let TMP_163 \def (drop_drop TMP_160 i0 c0 a TMP_162 t) in 
-(let TMP_164 \def (Flat f) in (let TMP_165 \def (CHead c0 TMP_164 t) in (let 
-TMP_166 \def (drop_gen_refl TMP_165 e H6) in (eq_ind C TMP_156 TMP_159 
-TMP_163 e TMP_166))))))))))))) in (let TMP_173 \def (\lambda (h0: 
-nat).(\lambda (_: (((drop h0 O (CHead c0 (Flat f) t) e) \to ((le (plus O h0) 
-(S i0)) \to (drop (minus (S i0) h0) O e a))))).(\lambda (H6: (drop (S h0) O 
-(CHead c0 (Flat f) t) e)).(\lambda (H7: (le (plus O (S h0)) (S i0))).(let 
-TMP_168 \def (Flat f) in (let TMP_169 \def (drop_gen_drop TMP_168 c0 a t i0 
-H1) in (let TMP_170 \def (S h0) in (let TMP_171 \def (Flat f) in (let TMP_172 
-\def (drop_gen_drop TMP_171 c0 e t h0 H6) in (H0 TMP_169 e TMP_170 O TMP_172 
-H7)))))))))) in (nat_ind TMP_154 TMP_167 TMP_173 h H4 H5)))))) in (let 
-TMP_224 \def (\lambda (d0: nat).(\lambda (_: (((drop h d0 (CHead c0 (Flat f) 
-t) e) \to ((le (plus d0 h) (S i0)) \to (drop (minus (S i0) h) O e 
+i0))).(eq_ind C (CHead c0 (Flat f) t) (\lambda (c1: C).(drop (minus (S i0) O) 
+O c1 a)) (drop_drop (Flat f) i0 c0 a (drop_gen_drop (Flat f) c0 a t i0 H1) t) 
+e (drop_gen_refl (CHead c0 (Flat f) t) e H6)))) (\lambda (h0: nat).(\lambda 
+(_: (((drop h0 O (CHead c0 (Flat f) t) e) \to ((le (plus O h0) (S i0)) \to 
+(drop (minus (S i0) h0) O e a))))).(\lambda (H6: (drop (S h0) O (CHead c0 
+(Flat f) t) e)).(\lambda (H7: (le (plus O (S h0)) (S i0))).(H0 (drop_gen_drop 
+(Flat f) c0 a t i0 H1) e (S h0) O (drop_gen_drop (Flat f) c0 e t h0 H6) 
+H7))))) h H4 H5))) (\lambda (d0: nat).(\lambda (_: (((drop h d0 (CHead c0 
+(Flat f) t) e) \to ((le (plus d0 h) (S i0)) \to (drop (minus (S i0) h) O e 
 a))))).(\lambda (H4: (drop h (S d0) (CHead c0 (Flat f) t) e)).(\lambda (H5: 
-(le (plus (S d0) h) (S i0))).(let TMP_177 \def (\lambda (e0: C).(\lambda (v: 
-T).(let TMP_175 \def (Flat f) in (let TMP_176 \def (CHead e0 TMP_175 v) in 
-(eq C e TMP_176))))) in (let TMP_181 \def (\lambda (_: C).(\lambda (v: 
-T).(let TMP_178 \def (Flat f) in (let TMP_179 \def (r TMP_178 d0) in (let 
-TMP_180 \def (lift h TMP_179 v) in (eq T t TMP_180)))))) in (let TMP_184 \def 
-(\lambda (e0: C).(\lambda (_: T).(let TMP_182 \def (Flat f) in (let TMP_183 
-\def (r TMP_182 d0) in (drop h TMP_183 c0 e0))))) in (let TMP_185 \def (S i0) 
-in (let TMP_186 \def (minus TMP_185 h) in (let TMP_187 \def (drop TMP_186 O e 
-a) in (let TMP_221 \def (\lambda (x0: C).(\lambda (x1: T).(\lambda (H6: (eq C 
-e (CHead x0 (Flat f) x1))).(\lambda (_: (eq T t (lift h (r (Flat f) d0) 
-x1))).(\lambda (H8: (drop h (r (Flat f) d0) c0 x0)).(let TMP_188 \def (Flat 
-f) in (let TMP_189 \def (CHead x0 TMP_188 x1) in (let TMP_192 \def (\lambda 
-(c1: C).(let TMP_190 \def (S i0) in (let TMP_191 \def (minus TMP_190 h) in 
-(drop TMP_191 O c1 a)))) in (let TMP_193 \def (S i0) in (let TMP_194 \def 
-(minus TMP_193 h) in (let TMP_195 \def (\lambda (n: nat).(drop n O x0 a)) in 
-(let TMP_196 \def (Flat f) in (let TMP_197 \def (drop_gen_drop TMP_196 c0 a t 
-i0 H1) in (let TMP_198 \def (S d0) in (let TMP_199 \def (H0 TMP_197 x0 h 
-TMP_198 H8 H5) in (let TMP_200 \def (minus i0 h) in (let TMP_201 \def (S 
-TMP_200) in (let TMP_202 \def (plus d0 h) in (let TMP_203 \def (le_S_n 
-TMP_202 i0 H5) in (let TMP_204 \def (le_trans_plus_r d0 h i0 TMP_203) in (let 
-TMP_205 \def (minus_Sn_m i0 h TMP_204) in (let H9 \def (eq_ind_r nat TMP_194 
-TMP_195 TMP_199 TMP_201 TMP_205) in (let TMP_206 \def (minus i0 h) in (let 
-TMP_207 \def (S TMP_206) in (let TMP_210 \def (\lambda (n: nat).(let TMP_208 
-\def (Flat f) in (let TMP_209 \def (CHead x0 TMP_208 x1) in (drop n O TMP_209 
-a)))) in (let TMP_211 \def (Flat f) in (let TMP_212 \def (minus i0 h) in (let 
-TMP_213 \def (drop_drop TMP_211 TMP_212 x0 a H9 x1) in (let TMP_214 \def (S 
-i0) in (let TMP_215 \def (minus TMP_214 h) in (let TMP_216 \def (plus d0 h) 
-in (let TMP_217 \def (le_S_n TMP_216 i0 H5) in (let TMP_218 \def 
-(le_trans_plus_r d0 h i0 TMP_217) in (let TMP_219 \def (minus_Sn_m i0 h 
-TMP_218) in (let TMP_220 \def (eq_ind nat TMP_207 TMP_210 TMP_213 TMP_215 
-TMP_219) in (eq_ind_r C TMP_189 TMP_192 TMP_220 e 
-H6)))))))))))))))))))))))))))))))))))) in (let TMP_222 \def (Flat f) in (let 
-TMP_223 \def (drop_gen_skip_l c0 e t h d0 TMP_222 H4) in (ex3_2_ind C T 
-TMP_177 TMP_181 TMP_184 TMP_187 TMP_221 TMP_223)))))))))))))) in (nat_ind 
-TMP_151 TMP_174 TMP_224 d H2 H3)))))))))))) in (K_ind TMP_78 TMP_148 TMP_225 
-k))))))) in (C_ind TMP_26 TMP_75 TMP_226 c)))))))) in (nat_ind TMP_2 TMP_23 
-TMP_227 i)))).
+(le (plus (S d0) h) (S i0))).(ex3_2_ind C T (\lambda (e0: C).(\lambda (v: 
+T).(eq C e (CHead e0 (Flat f) v)))) (\lambda (_: C).(\lambda (v: T).(eq T t 
+(lift h (r (Flat f) d0) v)))) (\lambda (e0: C).(\lambda (_: T).(drop h (r 
+(Flat f) d0) c0 e0))) (drop (minus (S i0) h) O e a) (\lambda (x0: C).(\lambda 
+(x1: T).(\lambda (H6: (eq C e (CHead x0 (Flat f) x1))).(\lambda (_: (eq T t 
+(lift h (r (Flat f) d0) x1))).(\lambda (H8: (drop h (r (Flat f) d0) c0 
+x0)).(eq_ind_r C (CHead x0 (Flat f) x1) (\lambda (c1: C).(drop (minus (S i0) 
+h) O c1 a)) (let H9 \def (eq_ind_r nat (minus (S i0) h) (\lambda (n: 
+nat).(drop n O x0 a)) (H0 (drop_gen_drop (Flat f) c0 a t i0 H1) x0 h (S d0) 
+H8 H5) (S (minus i0 h)) (minus_Sn_m i0 h (le_trans_plus_r d0 h i0 (le_S_n 
+(plus d0 h) i0 H5)))) in (eq_ind nat (S (minus i0 h)) (\lambda (n: nat).(drop 
+n O (CHead x0 (Flat f) x1) a)) (drop_drop (Flat f) (minus i0 h) x0 a H9 x1) 
+(minus (S i0) h) (minus_Sn_m i0 h (le_trans_plus_r d0 h i0 (le_S_n (plus d0 
+h) i0 H5))))) e H6)))))) (drop_gen_skip_l c0 e t h d0 (Flat f) H4)))))) d H2 
+H3))))))))) k)))) c))))) i).
 
 theorem drop_conf_rev:
  \forall (j: nat).(\forall (e1: C).(\forall (e2: C).((drop j O e1 e2) \to 
 (\forall (c2: C).(\forall (i: nat).((drop i O c2 e2) \to (ex2 C (\lambda (c1: 
 C).(drop j O c1 c2)) (\lambda (c1: C).(drop i j c1 e1)))))))))
 \def
- \lambda (j: nat).(let TMP_3 \def (\lambda (n: nat).(\forall (e1: C).(\forall 
-(e2: C).((drop n O e1 e2) \to (\forall (c2: C).(\forall (i: nat).((drop i O 
-c2 e2) \to (let TMP_1 \def (\lambda (c1: C).(drop n O c1 c2)) in (let TMP_2 
-\def (\lambda (c1: C).(drop i n c1 e1)) in (ex2 C TMP_1 TMP_2)))))))))) in 
-(let TMP_9 \def (\lambda (e1: C).(\lambda (e2: C).(\lambda (H: (drop O O e1 
+ \lambda (j: nat).(nat_ind (\lambda (n: nat).(\forall (e1: C).(\forall (e2: 
+C).((drop n O e1 e2) \to (\forall (c2: C).(\forall (i: nat).((drop i O c2 e2) 
+\to (ex2 C (\lambda (c1: C).(drop n O c1 c2)) (\lambda (c1: C).(drop i n c1 
+e1)))))))))) (\lambda (e1: C).(\lambda (e2: C).(\lambda (H: (drop O O e1 
 e2)).(\lambda (c2: C).(\lambda (i: nat).(\lambda (H0: (drop i O c2 e2)).(let 
-TMP_4 \def (\lambda (c: C).(drop i O c2 c)) in (let TMP_5 \def (drop_gen_refl 
-e1 e2 H) in (let H1 \def (eq_ind_r C e2 TMP_4 H0 e1 TMP_5) in (let TMP_6 \def 
-(\lambda (c1: C).(drop O O c1 c2)) in (let TMP_7 \def (\lambda (c1: C).(drop 
-i O c1 e1)) in (let TMP_8 \def (drop_refl c2) in (ex_intro2 C TMP_6 TMP_7 c2 
-TMP_8 H1))))))))))))) in (let TMP_108 \def (\lambda (j0: nat).(\lambda (IHj: 
-((\forall (e1: C).(\forall (e2: C).((drop j0 O e1 e2) \to (\forall (c2: 
+H1 \def (eq_ind_r C e2 (\lambda (c: C).(drop i O c2 c)) H0 e1 (drop_gen_refl 
+e1 e2 H)) in (ex_intro2 C (\lambda (c1: C).(drop O O c1 c2)) (\lambda (c1: 
+C).(drop i O c1 e1)) c2 (drop_refl c2) H1)))))))) (\lambda (j0: nat).(\lambda 
+(IHj: ((\forall (e1: C).(\forall (e2: C).((drop j0 O e1 e2) \to (\forall (c2: 
 C).(\forall (i: nat).((drop i O c2 e2) \to (ex2 C (\lambda (c1: C).(drop j0 O 
-c1 c2)) (\lambda (c1: C).(drop i j0 c1 e1))))))))))).(\lambda (e1: C).(let 
-TMP_14 \def (\lambda (c: C).(\forall (e2: C).((drop (S j0) O c e2) \to 
-(\forall (c2: C).(\forall (i: nat).((drop i O c2 e2) \to (let TMP_11 \def 
-(\lambda (c1: C).(let TMP_10 \def (S j0) in (drop TMP_10 O c1 c2))) in (let 
-TMP_13 \def (\lambda (c1: C).(let TMP_12 \def (S j0) in (drop i TMP_12 c1 
-c))) in (ex2 C TMP_11 TMP_13))))))))) in (let TMP_39 \def (\lambda (n: 
+c1 c2)) (\lambda (c1: C).(drop i j0 c1 e1))))))))))).(\lambda (e1: C).(C_ind 
+(\lambda (c: C).(\forall (e2: C).((drop (S j0) O c e2) \to (\forall (c2: 
+C).(\forall (i: nat).((drop i O c2 e2) \to (ex2 C (\lambda (c1: C).(drop (S 
+j0) O c1 c2)) (\lambda (c1: C).(drop i (S j0) c1 c))))))))) (\lambda (n: 
 nat).(\lambda (e2: C).(\lambda (H: (drop (S j0) O (CSort n) e2)).(\lambda 
-(c2: C).(\lambda (i: nat).(\lambda (H0: (drop i O c2 e2)).(let TMP_15 \def 
-(CSort n) in (let TMP_16 \def (eq C e2 TMP_15) in (let TMP_17 \def (S j0) in 
-(let TMP_18 \def (eq nat TMP_17 O) in (let TMP_19 \def (eq nat O O) in (let 
-TMP_21 \def (\lambda (c1: C).(let TMP_20 \def (S j0) in (drop TMP_20 O c1 
-c2))) in (let TMP_24 \def (\lambda (c1: C).(let TMP_22 \def (S j0) in (let 
-TMP_23 \def (CSort n) in (drop i TMP_22 c1 TMP_23)))) in (let TMP_25 \def 
-(ex2 C TMP_21 TMP_24) in (let TMP_36 \def (\lambda (H1: (eq C e2 (CSort 
-n))).(\lambda (H2: (eq nat (S j0) O)).(\lambda (_: (eq nat O O)).(let TMP_26 
-\def (\lambda (c: C).(drop i O c2 c)) in (let TMP_27 \def (CSort n) in (let 
-H4 \def (eq_ind C e2 TMP_26 H0 TMP_27 H1) in (let TMP_28 \def (S j0) in (let 
-TMP_29 \def (\lambda (ee: nat).(match ee with [O \Rightarrow False | (S _) 
-\Rightarrow True])) in (let H5 \def (eq_ind nat TMP_28 TMP_29 I O H2) in (let 
-TMP_31 \def (\lambda (c1: C).(let TMP_30 \def (S j0) in (drop TMP_30 O c1 
-c2))) in (let TMP_34 \def (\lambda (c1: C).(let TMP_32 \def (S j0) in (let 
-TMP_33 \def (CSort n) in (drop i TMP_32 c1 TMP_33)))) in (let TMP_35 \def 
-(ex2 C TMP_31 TMP_34) in (False_ind TMP_35 H5))))))))))))) in (let TMP_37 
-\def (S j0) in (let TMP_38 \def (drop_gen_sort n TMP_37 O e2 H) in (and3_ind 
-TMP_16 TMP_18 TMP_19 TMP_25 TMP_36 TMP_38)))))))))))))))))) in (let TMP_107 
-\def (\lambda (e2: C).(\lambda (IHe1: ((\forall (e3: C).((drop (S j0) O e2 
-e3) \to (\forall (c2: C).(\forall (i: nat).((drop i O c2 e3) \to (ex2 C 
+(c2: C).(\lambda (i: nat).(\lambda (H0: (drop i O c2 e2)).(and3_ind (eq C e2 
+(CSort n)) (eq nat (S j0) O) (eq nat O O) (ex2 C (\lambda (c1: C).(drop (S 
+j0) O c1 c2)) (\lambda (c1: C).(drop i (S j0) c1 (CSort n)))) (\lambda (H1: 
+(eq C e2 (CSort n))).(\lambda (H2: (eq nat (S j0) O)).(\lambda (_: (eq nat O 
+O)).(let H4 \def (eq_ind C e2 (\lambda (c: C).(drop i O c2 c)) H0 (CSort n) 
+H1) in (let H5 \def (eq_ind nat (S j0) (\lambda (ee: nat).(match ee with [O 
+\Rightarrow False | (S _) \Rightarrow True])) I O H2) in (False_ind (ex2 C 
+(\lambda (c1: C).(drop (S j0) O c1 c2)) (\lambda (c1: C).(drop i (S j0) c1 
+(CSort n)))) H5)))))) (drop_gen_sort n (S j0) O e2 H)))))))) (\lambda (e2: 
+C).(\lambda (IHe1: ((\forall (e3: C).((drop (S j0) O e2 e3) \to (\forall (c2: 
+C).(\forall (i: nat).((drop i O c2 e3) \to (ex2 C (\lambda (c1: C).(drop (S 
+j0) O c1 c2)) (\lambda (c1: C).(drop i (S j0) c1 e2)))))))))).(\lambda (k: 
+K).(\lambda (t: T).(\lambda (e3: C).(\lambda (H: (drop (S j0) O (CHead e2 k 
+t) e3)).(\lambda (c2: C).(\lambda (i: nat).(\lambda (H0: (drop i O c2 
+e3)).(K_ind (\lambda (k0: K).((drop (r k0 j0) O e2 e3) \to (ex2 C (\lambda 
+(c1: C).(drop (S j0) O c1 c2)) (\lambda (c1: C).(drop i (S j0) c1 (CHead e2 
+k0 t)))))) (\lambda (b: B).(\lambda (H1: (drop (r (Bind b) j0) O e2 e3)).(let 
+H_x \def (IHj e2 e3 H1 c2 i H0) in (let H2 \def H_x in (ex2_ind C (\lambda 
+(c1: C).(drop j0 O c1 c2)) (\lambda (c1: C).(drop i j0 c1 e2)) (ex2 C 
 (\lambda (c1: C).(drop (S j0) O c1 c2)) (\lambda (c1: C).(drop i (S j0) c1 
-e2)))))))))).(\lambda (k: K).(\lambda (t: T).(\lambda (e3: C).(\lambda (H: 
-(drop (S j0) O (CHead e2 k t) e3)).(\lambda (c2: C).(\lambda (i: 
-nat).(\lambda (H0: (drop i O c2 e3)).(let TMP_45 \def (\lambda (k0: K).((drop 
-(r k0 j0) O e2 e3) \to (let TMP_41 \def (\lambda (c1: C).(let TMP_40 \def (S 
-j0) in (drop TMP_40 O c1 c2))) in (let TMP_44 \def (\lambda (c1: C).(let 
-TMP_42 \def (S j0) in (let TMP_43 \def (CHead e2 k0 t) in (drop i TMP_42 c1 
-TMP_43)))) in (ex2 C TMP_41 TMP_44))))) in (let TMP_74 \def (\lambda (b: 
-B).(\lambda (H1: (drop (r (Bind b) j0) O e2 e3)).(let H_x \def (IHj e2 e3 H1 
-c2 i H0) in (let H2 \def H_x in (let TMP_46 \def (\lambda (c1: C).(drop j0 O 
-c1 c2)) in (let TMP_47 \def (\lambda (c1: C).(drop i j0 c1 e2)) in (let 
-TMP_49 \def (\lambda (c1: C).(let TMP_48 \def (S j0) in (drop TMP_48 O c1 
-c2))) in (let TMP_53 \def (\lambda (c1: C).(let TMP_50 \def (S j0) in (let 
-TMP_51 \def (Bind b) in (let TMP_52 \def (CHead e2 TMP_51 t) in (drop i 
-TMP_50 c1 TMP_52))))) in (let TMP_54 \def (ex2 C TMP_49 TMP_53) in (let 
-TMP_73 \def (\lambda (x: C).(\lambda (H3: (drop j0 O x c2)).(\lambda (H4: 
-(drop i j0 x e2)).(let TMP_56 \def (\lambda (c1: C).(let TMP_55 \def (S j0) 
-in (drop TMP_55 O c1 c2))) in (let TMP_60 \def (\lambda (c1: C).(let TMP_57 
-\def (S j0) in (let TMP_58 \def (Bind b) in (let TMP_59 \def (CHead e2 TMP_58 
-t) in (drop i TMP_57 c1 TMP_59))))) in (let TMP_61 \def (Bind b) in (let 
-TMP_62 \def (Bind b) in (let TMP_63 \def (r TMP_62 j0) in (let TMP_64 \def 
-(lift i TMP_63 t) in (let TMP_65 \def (CHead x TMP_61 TMP_64) in (let TMP_66 
-\def (Bind b) in (let TMP_67 \def (Bind b) in (let TMP_68 \def (r TMP_67 j0) 
-in (let TMP_69 \def (lift i TMP_68 t) in (let TMP_70 \def (drop_drop TMP_66 
-j0 x c2 H3 TMP_69) in (let TMP_71 \def (Bind b) in (let TMP_72 \def 
-(drop_skip TMP_71 i j0 x e2 H4 t) in (ex_intro2 C TMP_56 TMP_60 TMP_65 TMP_70 
-TMP_72)))))))))))))))))) in (ex2_ind C TMP_46 TMP_47 TMP_54 TMP_73 
-H2))))))))))) in (let TMP_105 \def (\lambda (f: F).(\lambda (H1: (drop (r 
-(Flat f) j0) O e2 e3)).(let H_x \def (IHe1 e3 H1 c2 i H0) in (let H2 \def H_x 
-in (let TMP_76 \def (\lambda (c1: C).(let TMP_75 \def (S j0) in (drop TMP_75 
-O c1 c2))) in (let TMP_78 \def (\lambda (c1: C).(let TMP_77 \def (S j0) in 
-(drop i TMP_77 c1 e2))) in (let TMP_80 \def (\lambda (c1: C).(let TMP_79 \def 
-(S j0) in (drop TMP_79 O c1 c2))) in (let TMP_84 \def (\lambda (c1: C).(let 
-TMP_81 \def (S j0) in (let TMP_82 \def (Flat f) in (let TMP_83 \def (CHead e2 
-TMP_82 t) in (drop i TMP_81 c1 TMP_83))))) in (let TMP_85 \def (ex2 C TMP_80 
-TMP_84) in (let TMP_104 \def (\lambda (x: C).(\lambda (H3: (drop (S j0) O x 
-c2)).(\lambda (H4: (drop i (S j0) x e2)).(let TMP_87 \def (\lambda (c1: 
-C).(let TMP_86 \def (S j0) in (drop TMP_86 O c1 c2))) in (let TMP_91 \def 
-(\lambda (c1: C).(let TMP_88 \def (S j0) in (let TMP_89 \def (Flat f) in (let 
-TMP_90 \def (CHead e2 TMP_89 t) in (drop i TMP_88 c1 TMP_90))))) in (let 
-TMP_92 \def (Flat f) in (let TMP_93 \def (Flat f) in (let TMP_94 \def (r 
-TMP_93 j0) in (let TMP_95 \def (lift i TMP_94 t) in (let TMP_96 \def (CHead x 
-TMP_92 TMP_95) in (let TMP_97 \def (Flat f) in (let TMP_98 \def (Flat f) in 
-(let TMP_99 \def (r TMP_98 j0) in (let TMP_100 \def (lift i TMP_99 t) in (let 
-TMP_101 \def (drop_drop TMP_97 j0 x c2 H3 TMP_100) in (let TMP_102 \def (Flat 
-f) in (let TMP_103 \def (drop_skip TMP_102 i j0 x e2 H4 t) in (ex_intro2 C 
-TMP_87 TMP_91 TMP_96 TMP_101 TMP_103)))))))))))))))))) in (ex2_ind C TMP_76 
-TMP_78 TMP_85 TMP_104 H2))))))))))) in (let TMP_106 \def (drop_gen_drop k e2 
-e3 t j0 H) in (K_ind TMP_45 TMP_74 TMP_105 k TMP_106)))))))))))))) in (C_ind 
-TMP_14 TMP_39 TMP_107 e1))))))) in (nat_ind TMP_3 TMP_9 TMP_108 j)))).
+(CHead e2 (Bind b) t)))) (\lambda (x: C).(\lambda (H3: (drop j0 O x 
+c2)).(\lambda (H4: (drop i j0 x e2)).(ex_intro2 C (\lambda (c1: C).(drop (S 
+j0) O c1 c2)) (\lambda (c1: C).(drop i (S j0) c1 (CHead e2 (Bind b) t))) 
+(CHead x (Bind b) (lift i (r (Bind b) j0) t)) (drop_drop (Bind b) j0 x c2 H3 
+(lift i (r (Bind b) j0) t)) (drop_skip (Bind b) i j0 x e2 H4 t))))) H2))))) 
+(\lambda (f: F).(\lambda (H1: (drop (r (Flat f) j0) O e2 e3)).(let H_x \def 
+(IHe1 e3 H1 c2 i H0) in (let H2 \def H_x in (ex2_ind C (\lambda (c1: C).(drop 
+(S j0) O c1 c2)) (\lambda (c1: C).(drop i (S j0) c1 e2)) (ex2 C (\lambda (c1: 
+C).(drop (S j0) O c1 c2)) (\lambda (c1: C).(drop i (S j0) c1 (CHead e2 (Flat 
+f) t)))) (\lambda (x: C).(\lambda (H3: (drop (S j0) O x c2)).(\lambda (H4: 
+(drop i (S j0) x e2)).(ex_intro2 C (\lambda (c1: C).(drop (S j0) O c1 c2)) 
+(\lambda (c1: C).(drop i (S j0) c1 (CHead e2 (Flat f) t))) (CHead x (Flat f) 
+(lift i (r (Flat f) j0) t)) (drop_drop (Flat f) j0 x c2 H3 (lift i (r (Flat 
+f) j0) t)) (drop_skip (Flat f) i j0 x e2 H4 t))))) H2))))) k (drop_gen_drop k 
+e2 e3 t j0 H))))))))))) e1)))) j).
 
 theorem drop_trans_le:
  \forall (i: nat).(\forall (d: nat).((le i d) \to (\forall (c1: C).(\forall 
@@ -688,365 +399,196 @@ theorem drop_trans_le:
 c2 e2) \to (ex2 C (\lambda (e1: C).(drop i O c1 e1)) (\lambda (e1: C).(drop h 
 (minus d i) e1 e2)))))))))))
 \def
- \lambda (i: nat).(let TMP_4 \def (\lambda (n: nat).(\forall (d: nat).((le n 
-d) \to (\forall (c1: C).(\forall (c2: C).(\forall (h: nat).((drop h d c1 c2) 
-\to (\forall (e2: C).((drop n O c2 e2) \to (let TMP_1 \def (\lambda (e1: 
-C).(drop n O c1 e1)) in (let TMP_3 \def (\lambda (e1: C).(let TMP_2 \def 
-(minus d n) in (drop h TMP_2 e1 e2))) in (ex2 C TMP_1 TMP_3)))))))))))) in 
-(let TMP_16 \def (\lambda (d: nat).(\lambda (_: (le O d)).(\lambda (c1: 
-C).(\lambda (c2: C).(\lambda (h: nat).(\lambda (H0: (drop h d c1 
-c2)).(\lambda (e2: C).(\lambda (H1: (drop O O c2 e2)).(let TMP_5 \def 
-(\lambda (c: C).(drop h d c1 c)) in (let TMP_6 \def (drop_gen_refl c2 e2 H1) 
-in (let H2 \def (eq_ind C c2 TMP_5 H0 e2 TMP_6) in (let TMP_9 \def (\lambda 
-(n: nat).(let TMP_7 \def (\lambda (e1: C).(drop O O c1 e1)) in (let TMP_8 
-\def (\lambda (e1: C).(drop h n e1 e2)) in (ex2 C TMP_7 TMP_8)))) in (let 
-TMP_10 \def (\lambda (e1: C).(drop O O c1 e1)) in (let TMP_11 \def (\lambda 
-(e1: C).(drop h d e1 e2)) in (let TMP_12 \def (drop_refl c1) in (let TMP_13 
-\def (ex_intro2 C TMP_10 TMP_11 c1 TMP_12 H2) in (let TMP_14 \def (minus d O) 
-in (let TMP_15 \def (minus_n_O d) in (eq_ind nat d TMP_9 TMP_13 TMP_14 
-TMP_15))))))))))))))))))) in (let TMP_271 \def (\lambda (i0: nat).(\lambda 
-(IHi: ((\forall (d: nat).((le i0 d) \to (\forall (c1: C).(\forall (c2: 
-C).(\forall (h: nat).((drop h d c1 c2) \to (\forall (e2: C).((drop i0 O c2 
-e2) \to (ex2 C (\lambda (e1: C).(drop i0 O c1 e1)) (\lambda (e1: C).(drop h 
-(minus d i0) e1 e2))))))))))))).(\lambda (d: nat).(let TMP_22 \def (\lambda 
-(n: nat).((le (S i0) n) \to (\forall (c1: C).(\forall (c2: C).(\forall (h: 
-nat).((drop h n c1 c2) \to (\forall (e2: C).((drop (S i0) O c2 e2) \to (let 
-TMP_18 \def (\lambda (e1: C).(let TMP_17 \def (S i0) in (drop TMP_17 O c1 
-e1))) in (let TMP_21 \def (\lambda (e1: C).(let TMP_19 \def (S i0) in (let 
-TMP_20 \def (minus n TMP_19) in (drop h TMP_20 e1 e2)))) in (ex2 C TMP_18 
-TMP_21))))))))))) in (let TMP_42 \def (\lambda (H: (le (S i0) O)).(\lambda 
-(c1: C).(\lambda (c2: C).(\lambda (h: nat).(\lambda (_: (drop h O c1 
-c2)).(\lambda (e2: C).(\lambda (_: (drop (S i0) O c2 e2)).(let TMP_24 \def 
-(\lambda (n: nat).(let TMP_23 \def (S n) in (eq nat O TMP_23))) in (let 
-TMP_25 \def (\lambda (n: nat).(le i0 n)) in (let TMP_27 \def (\lambda (e1: 
-C).(let TMP_26 \def (S i0) in (drop TMP_26 O c1 e1))) in (let TMP_30 \def 
-(\lambda (e1: C).(let TMP_28 \def (S i0) in (let TMP_29 \def (minus O TMP_28) 
-in (drop h TMP_29 e1 e2)))) in (let TMP_31 \def (ex2 C TMP_27 TMP_30) in (let 
-TMP_40 \def (\lambda (x: nat).(\lambda (H2: (eq nat O (S x))).(\lambda (_: 
-(le i0 x)).(let TMP_32 \def (\lambda (ee: nat).(match ee with [O \Rightarrow 
-True | (S _) \Rightarrow False])) in (let TMP_33 \def (S x) in (let H4 \def 
-(eq_ind nat O TMP_32 I TMP_33 H2) in (let TMP_35 \def (\lambda (e1: C).(let 
-TMP_34 \def (S i0) in (drop TMP_34 O c1 e1))) in (let TMP_38 \def (\lambda 
-(e1: C).(let TMP_36 \def (S i0) in (let TMP_37 \def (minus O TMP_36) in (drop 
-h TMP_37 e1 e2)))) in (let TMP_39 \def (ex2 C TMP_35 TMP_38) in (False_ind 
-TMP_39 H4)))))))))) in (let TMP_41 \def (le_gen_S i0 O H) in (ex2_ind nat 
-TMP_24 TMP_25 TMP_31 TMP_40 TMP_41))))))))))))))) in (let TMP_270 \def 
-(\lambda (d0: nat).(\lambda (_: (((le (S i0) d0) \to (\forall (c1: 
-C).(\forall (c2: C).(\forall (h: nat).((drop h d0 c1 c2) \to (\forall (e2: 
-C).((drop (S i0) O c2 e2) \to (ex2 C (\lambda (e1: C).(drop (S i0) O c1 e1)) 
-(\lambda (e1: C).(drop h (minus d0 (S i0)) e1 e2)))))))))))).(\lambda (H: (le 
-(S i0) (S d0))).(\lambda (c1: C).(let TMP_49 \def (\lambda (c: C).(\forall 
-(c2: C).(\forall (h: nat).((drop h (S d0) c c2) \to (\forall (e2: C).((drop 
-(S i0) O c2 e2) \to (let TMP_44 \def (\lambda (e1: C).(let TMP_43 \def (S i0) 
-in (drop TMP_43 O c e1))) in (let TMP_48 \def (\lambda (e1: C).(let TMP_45 
-\def (S d0) in (let TMP_46 \def (S i0) in (let TMP_47 \def (minus TMP_45 
-TMP_46) in (drop h TMP_47 e1 e2))))) in (ex2 C TMP_44 TMP_48))))))))) in (let 
-TMP_106 \def (\lambda (n: nat).(\lambda (c2: C).(\lambda (h: nat).(\lambda 
-(H0: (drop h (S d0) (CSort n) c2)).(\lambda (e2: C).(\lambda (H1: (drop (S 
-i0) O c2 e2)).(let TMP_50 \def (CSort n) in (let TMP_51 \def (eq C c2 TMP_50) 
-in (let TMP_52 \def (eq nat h O) in (let TMP_53 \def (S d0) in (let TMP_54 
-\def (eq nat TMP_53 O) in (let TMP_57 \def (\lambda (e1: C).(let TMP_55 \def 
-(S i0) in (let TMP_56 \def (CSort n) in (drop TMP_55 O TMP_56 e1)))) in (let 
-TMP_61 \def (\lambda (e1: C).(let TMP_58 \def (S d0) in (let TMP_59 \def (S 
-i0) in (let TMP_60 \def (minus TMP_58 TMP_59) in (drop h TMP_60 e1 e2))))) in 
-(let TMP_62 \def (ex2 C TMP_57 TMP_61) in (let TMP_103 \def (\lambda (H2: (eq 
-C c2 (CSort n))).(\lambda (_: (eq nat h O)).(\lambda (_: (eq nat (S d0) 
-O)).(let TMP_64 \def (\lambda (c: C).(let TMP_63 \def (S i0) in (drop TMP_63 
-O c e2))) in (let TMP_65 \def (CSort n) in (let H5 \def (eq_ind C c2 TMP_64 
-H1 TMP_65 H2) in (let TMP_66 \def (CSort n) in (let TMP_67 \def (eq C e2 
-TMP_66) in (let TMP_68 \def (S i0) in (let TMP_69 \def (eq nat TMP_68 O) in 
-(let TMP_70 \def (eq nat O O) in (let TMP_73 \def (\lambda (e1: C).(let 
-TMP_71 \def (S i0) in (let TMP_72 \def (CSort n) in (drop TMP_71 O TMP_72 
-e1)))) in (let TMP_77 \def (\lambda (e1: C).(let TMP_74 \def (S d0) in (let 
-TMP_75 \def (S i0) in (let TMP_76 \def (minus TMP_74 TMP_75) in (drop h 
-TMP_76 e1 e2))))) in (let TMP_78 \def (ex2 C TMP_73 TMP_77) in (let TMP_100 
-\def (\lambda (H6: (eq C e2 (CSort n))).(\lambda (H7: (eq nat (S i0) 
-O)).(\lambda (_: (eq nat O O)).(let TMP_79 \def (CSort n) in (let TMP_87 \def 
-(\lambda (c: C).(let TMP_82 \def (\lambda (e1: C).(let TMP_80 \def (S i0) in 
-(let TMP_81 \def (CSort n) in (drop TMP_80 O TMP_81 e1)))) in (let TMP_86 
-\def (\lambda (e1: C).(let TMP_83 \def (S d0) in (let TMP_84 \def (S i0) in 
-(let TMP_85 \def (minus TMP_83 TMP_84) in (drop h TMP_85 e1 c))))) in (ex2 C 
-TMP_82 TMP_86)))) in (let TMP_88 \def (S i0) in (let TMP_89 \def (\lambda 
-(ee: nat).(match ee with [O \Rightarrow False | (S _) \Rightarrow True])) in 
-(let H9 \def (eq_ind nat TMP_88 TMP_89 I O H7) in (let TMP_92 \def (\lambda 
-(e1: C).(let TMP_90 \def (S i0) in (let TMP_91 \def (CSort n) in (drop TMP_90 
-O TMP_91 e1)))) in (let TMP_97 \def (\lambda (e1: C).(let TMP_93 \def (S d0) 
-in (let TMP_94 \def (S i0) in (let TMP_95 \def (minus TMP_93 TMP_94) in (let 
-TMP_96 \def (CSort n) in (drop h TMP_95 e1 TMP_96)))))) in (let TMP_98 \def 
-(ex2 C TMP_92 TMP_97) in (let TMP_99 \def (False_ind TMP_98 H9) in (eq_ind_r 
-C TMP_79 TMP_87 TMP_99 e2 H6))))))))))))) in (let TMP_101 \def (S i0) in (let 
-TMP_102 \def (drop_gen_sort n TMP_101 O e2 H5) in (and3_ind TMP_67 TMP_69 
-TMP_70 TMP_78 TMP_100 TMP_102)))))))))))))))))) in (let TMP_104 \def (S d0) 
-in (let TMP_105 \def (drop_gen_sort n h TMP_104 c2 H0) in (and3_ind TMP_51 
-TMP_52 TMP_54 TMP_62 TMP_103 TMP_105)))))))))))))))))) in (let TMP_269 \def 
+ \lambda (i: nat).(nat_ind (\lambda (n: nat).(\forall (d: nat).((le n d) \to 
+(\forall (c1: C).(\forall (c2: C).(\forall (h: nat).((drop h d c1 c2) \to 
+(\forall (e2: C).((drop n O c2 e2) \to (ex2 C (\lambda (e1: C).(drop n O c1 
+e1)) (\lambda (e1: C).(drop h (minus d n) e1 e2)))))))))))) (\lambda (d: 
+nat).(\lambda (_: (le O d)).(\lambda (c1: C).(\lambda (c2: C).(\lambda (h: 
+nat).(\lambda (H0: (drop h d c1 c2)).(\lambda (e2: C).(\lambda (H1: (drop O O 
+c2 e2)).(let H2 \def (eq_ind C c2 (\lambda (c: C).(drop h d c1 c)) H0 e2 
+(drop_gen_refl c2 e2 H1)) in (eq_ind nat d (\lambda (n: nat).(ex2 C (\lambda 
+(e1: C).(drop O O c1 e1)) (\lambda (e1: C).(drop h n e1 e2)))) (ex_intro2 C 
+(\lambda (e1: C).(drop O O c1 e1)) (\lambda (e1: C).(drop h d e1 e2)) c1 
+(drop_refl c1) H2) (minus d O) (minus_n_O d))))))))))) (\lambda (i0: 
+nat).(\lambda (IHi: ((\forall (d: nat).((le i0 d) \to (\forall (c1: 
+C).(\forall (c2: C).(\forall (h: nat).((drop h d c1 c2) \to (\forall (e2: 
+C).((drop i0 O c2 e2) \to (ex2 C (\lambda (e1: C).(drop i0 O c1 e1)) (\lambda 
+(e1: C).(drop h (minus d i0) e1 e2))))))))))))).(\lambda (d: nat).(nat_ind 
+(\lambda (n: nat).((le (S i0) n) \to (\forall (c1: C).(\forall (c2: 
+C).(\forall (h: nat).((drop h n c1 c2) \to (\forall (e2: C).((drop (S i0) O 
+c2 e2) \to (ex2 C (\lambda (e1: C).(drop (S i0) O c1 e1)) (\lambda (e1: 
+C).(drop h (minus n (S i0)) e1 e2))))))))))) (\lambda (H: (le (S i0) 
+O)).(\lambda (c1: C).(\lambda (c2: C).(\lambda (h: nat).(\lambda (_: (drop h 
+O c1 c2)).(\lambda (e2: C).(\lambda (_: (drop (S i0) O c2 e2)).(ex2_ind nat 
+(\lambda (n: nat).(eq nat O (S n))) (\lambda (n: nat).(le i0 n)) (ex2 C 
+(\lambda (e1: C).(drop (S i0) O c1 e1)) (\lambda (e1: C).(drop h (minus O (S 
+i0)) e1 e2))) (\lambda (x: nat).(\lambda (H2: (eq nat O (S x))).(\lambda (_: 
+(le i0 x)).(let H4 \def (eq_ind nat O (\lambda (ee: nat).(match ee with [O 
+\Rightarrow True | (S _) \Rightarrow False])) I (S x) H2) in (False_ind (ex2 
+C (\lambda (e1: C).(drop (S i0) O c1 e1)) (\lambda (e1: C).(drop h (minus O 
+(S i0)) e1 e2))) H4))))) (le_gen_S i0 O H))))))))) (\lambda (d0: 
+nat).(\lambda (_: (((le (S i0) d0) \to (\forall (c1: C).(\forall (c2: 
+C).(\forall (h: nat).((drop h d0 c1 c2) \to (\forall (e2: C).((drop (S i0) O 
+c2 e2) \to (ex2 C (\lambda (e1: C).(drop (S i0) O c1 e1)) (\lambda (e1: 
+C).(drop h (minus d0 (S i0)) e1 e2)))))))))))).(\lambda (H: (le (S i0) (S 
+d0))).(\lambda (c1: C).(C_ind (\lambda (c: C).(\forall (c2: C).(\forall (h: 
+nat).((drop h (S d0) c c2) \to (\forall (e2: C).((drop (S i0) O c2 e2) \to 
+(ex2 C (\lambda (e1: C).(drop (S i0) O c e1)) (\lambda (e1: C).(drop h (minus 
+(S d0) (S i0)) e1 e2))))))))) (\lambda (n: nat).(\lambda (c2: C).(\lambda (h: 
+nat).(\lambda (H0: (drop h (S d0) (CSort n) c2)).(\lambda (e2: C).(\lambda 
+(H1: (drop (S i0) O c2 e2)).(and3_ind (eq C c2 (CSort n)) (eq nat h O) (eq 
+nat (S d0) O) (ex2 C (\lambda (e1: C).(drop (S i0) O (CSort n) e1)) (\lambda 
+(e1: C).(drop h (minus (S d0) (S i0)) e1 e2))) (\lambda (H2: (eq C c2 (CSort 
+n))).(\lambda (_: (eq nat h O)).(\lambda (_: (eq nat (S d0) O)).(let H5 \def 
+(eq_ind C c2 (\lambda (c: C).(drop (S i0) O c e2)) H1 (CSort n) H2) in 
+(and3_ind (eq C e2 (CSort n)) (eq nat (S i0) O) (eq nat O O) (ex2 C (\lambda 
+(e1: C).(drop (S i0) O (CSort n) e1)) (\lambda (e1: C).(drop h (minus (S d0) 
+(S i0)) e1 e2))) (\lambda (H6: (eq C e2 (CSort n))).(\lambda (H7: (eq nat (S 
+i0) O)).(\lambda (_: (eq nat O O)).(eq_ind_r C (CSort n) (\lambda (c: C).(ex2 
+C (\lambda (e1: C).(drop (S i0) O (CSort n) e1)) (\lambda (e1: C).(drop h 
+(minus (S d0) (S i0)) e1 c)))) (let H9 \def (eq_ind nat (S i0) (\lambda (ee: 
+nat).(match ee with [O \Rightarrow False | (S _) \Rightarrow True])) I O H7) 
+in (False_ind (ex2 C (\lambda (e1: C).(drop (S i0) O (CSort n) e1)) (\lambda 
+(e1: C).(drop h (minus (S d0) (S i0)) e1 (CSort n)))) H9)) e2 H6)))) 
+(drop_gen_sort n (S i0) O e2 H5)))))) (drop_gen_sort n h (S d0) c2 H0)))))))) 
 (\lambda (c2: C).(\lambda (IHc: ((\forall (c3: C).(\forall (h: nat).((drop h 
 (S d0) c2 c3) \to (\forall (e2: C).((drop (S i0) O c3 e2) \to (ex2 C (\lambda 
 (e1: C).(drop (S i0) O c2 e1)) (\lambda (e1: C).(drop h (minus (S d0) (S i0)) 
-e1 e2)))))))))).(\lambda (k: K).(let TMP_114 \def (\lambda (k0: K).(\forall 
-(t: T).(\forall (c3: C).(\forall (h: nat).((drop h (S d0) (CHead c2 k0 t) c3) 
-\to (\forall (e2: C).((drop (S i0) O c3 e2) \to (let TMP_109 \def (\lambda 
-(e1: C).(let TMP_107 \def (S i0) in (let TMP_108 \def (CHead c2 k0 t) in 
-(drop TMP_107 O TMP_108 e1)))) in (let TMP_113 \def (\lambda (e1: C).(let 
-TMP_110 \def (S d0) in (let TMP_111 \def (S i0) in (let TMP_112 \def (minus 
-TMP_110 TMP_111) in (drop h TMP_112 e1 e2))))) in (ex2 C TMP_109 
-TMP_113)))))))))) in (let TMP_190 \def (\lambda (b: B).(\lambda (t: 
-T).(\lambda (c3: C).(\lambda (h: nat).(\lambda (H0: (drop h (S d0) (CHead c2 
-(Bind b) t) c3)).(\lambda (e2: C).(\lambda (H1: (drop (S i0) O c3 e2)).(let 
-TMP_117 \def (\lambda (e: C).(\lambda (v: T).(let TMP_115 \def (Bind b) in 
-(let TMP_116 \def (CHead e TMP_115 v) in (eq C c3 TMP_116))))) in (let 
-TMP_121 \def (\lambda (_: C).(\lambda (v: T).(let TMP_118 \def (Bind b) in 
-(let TMP_119 \def (r TMP_118 d0) in (let TMP_120 \def (lift h TMP_119 v) in 
-(eq T t TMP_120)))))) in (let TMP_124 \def (\lambda (e: C).(\lambda (_: 
-T).(let TMP_122 \def (Bind b) in (let TMP_123 \def (r TMP_122 d0) in (drop h 
-TMP_123 c2 e))))) in (let TMP_128 \def (\lambda (e1: C).(let TMP_125 \def (S 
-i0) in (let TMP_126 \def (Bind b) in (let TMP_127 \def (CHead c2 TMP_126 t) 
-in (drop TMP_125 O TMP_127 e1))))) in (let TMP_132 \def (\lambda (e1: C).(let 
-TMP_129 \def (S d0) in (let TMP_130 \def (S i0) in (let TMP_131 \def (minus 
-TMP_129 TMP_130) in (drop h TMP_131 e1 e2))))) in (let TMP_133 \def (ex2 C 
-TMP_128 TMP_132) in (let TMP_187 \def (\lambda (x0: C).(\lambda (x1: 
-T).(\lambda (H2: (eq C c3 (CHead x0 (Bind b) x1))).(\lambda (H3: (eq T t 
-(lift h (r (Bind b) d0) x1))).(\lambda (H4: (drop h (r (Bind b) d0) c2 
-x0)).(let TMP_135 \def (\lambda (c: C).(let TMP_134 \def (S i0) in (drop 
-TMP_134 O c e2))) in (let TMP_136 \def (Bind b) in (let TMP_137 \def (CHead 
-x0 TMP_136 x1) in (let H5 \def (eq_ind C c3 TMP_135 H1 TMP_137 H2) in (let 
-TMP_138 \def (Bind b) in (let TMP_139 \def (r TMP_138 d0) in (let TMP_140 
-\def (lift h TMP_139 x1) in (let TMP_149 \def (\lambda (t0: T).(let TMP_144 
-\def (\lambda (e1: C).(let TMP_141 \def (S i0) in (let TMP_142 \def (Bind b) 
-in (let TMP_143 \def (CHead c2 TMP_142 t0) in (drop TMP_141 O TMP_143 e1))))) 
-in (let TMP_148 \def (\lambda (e1: C).(let TMP_145 \def (S d0) in (let 
-TMP_146 \def (S i0) in (let TMP_147 \def (minus TMP_145 TMP_146) in (drop h 
-TMP_147 e1 e2))))) in (ex2 C TMP_144 TMP_148)))) in (let TMP_150 \def 
-(\lambda (e1: C).(drop i0 O c2 e1)) in (let TMP_152 \def (\lambda (e1: 
-C).(let TMP_151 \def (minus d0 i0) in (drop h TMP_151 e1 e2))) in (let 
-TMP_159 \def (\lambda (e1: C).(let TMP_153 \def (S i0) in (let TMP_154 \def 
-(Bind b) in (let TMP_155 \def (Bind b) in (let TMP_156 \def (r TMP_155 d0) in 
-(let TMP_157 \def (lift h TMP_156 x1) in (let TMP_158 \def (CHead c2 TMP_154 
-TMP_157) in (drop TMP_153 O TMP_158 e1)))))))) in (let TMP_163 \def (\lambda 
-(e1: C).(let TMP_160 \def (S d0) in (let TMP_161 \def (S i0) in (let TMP_162 
-\def (minus TMP_160 TMP_161) in (drop h TMP_162 e1 e2))))) in (let TMP_164 
-\def (ex2 C TMP_159 TMP_163) in (let TMP_181 \def (\lambda (x: C).(\lambda 
-(H6: (drop i0 O c2 x)).(\lambda (H7: (drop h (minus d0 i0) x e2)).(let 
-TMP_171 \def (\lambda (e1: C).(let TMP_165 \def (S i0) in (let TMP_166 \def 
-(Bind b) in (let TMP_167 \def (Bind b) in (let TMP_168 \def (r TMP_167 d0) in 
-(let TMP_169 \def (lift h TMP_168 x1) in (let TMP_170 \def (CHead c2 TMP_166 
-TMP_169) in (drop TMP_165 O TMP_170 e1)))))))) in (let TMP_175 \def (\lambda 
-(e1: C).(let TMP_172 \def (S d0) in (let TMP_173 \def (S i0) in (let TMP_174 
-\def (minus TMP_172 TMP_173) in (drop h TMP_174 e1 e2))))) in (let TMP_176 
-\def (Bind b) in (let TMP_177 \def (Bind b) in (let TMP_178 \def (r TMP_177 
-d0) in (let TMP_179 \def (lift h TMP_178 x1) in (let TMP_180 \def (drop_drop 
-TMP_176 i0 c2 x H6 TMP_179) in (ex_intro2 C TMP_171 TMP_175 x TMP_180 
-H7))))))))))) in (let TMP_182 \def (le_S_n i0 d0 H) in (let TMP_183 \def 
-(Bind b) in (let TMP_184 \def (drop_gen_drop TMP_183 x0 e2 x1 i0 H5) in (let 
-TMP_185 \def (IHi d0 TMP_182 c2 x0 h H4 e2 TMP_184) in (let TMP_186 \def 
-(ex2_ind C TMP_150 TMP_152 TMP_164 TMP_181 TMP_185) in (eq_ind_r T TMP_140 
-TMP_149 TMP_186 t H3))))))))))))))))))))))))) in (let TMP_188 \def (Bind b) 
-in (let TMP_189 \def (drop_gen_skip_l c2 c3 t h d0 TMP_188 H0) in (ex3_2_ind 
-C T TMP_117 TMP_121 TMP_124 TMP_133 TMP_187 TMP_189))))))))))))))))) in (let 
-TMP_268 \def (\lambda (f: F).(\lambda (t: T).(\lambda (c3: C).(\lambda (h: 
-nat).(\lambda (H0: (drop h (S d0) (CHead c2 (Flat f) t) c3)).(\lambda (e2: 
-C).(\lambda (H1: (drop (S i0) O c3 e2)).(let TMP_193 \def (\lambda (e: 
-C).(\lambda (v: T).(let TMP_191 \def (Flat f) in (let TMP_192 \def (CHead e 
-TMP_191 v) in (eq C c3 TMP_192))))) in (let TMP_197 \def (\lambda (_: 
-C).(\lambda (v: T).(let TMP_194 \def (Flat f) in (let TMP_195 \def (r TMP_194 
-d0) in (let TMP_196 \def (lift h TMP_195 v) in (eq T t TMP_196)))))) in (let 
-TMP_200 \def (\lambda (e: C).(\lambda (_: T).(let TMP_198 \def (Flat f) in 
-(let TMP_199 \def (r TMP_198 d0) in (drop h TMP_199 c2 e))))) in (let TMP_204 
-\def (\lambda (e1: C).(let TMP_201 \def (S i0) in (let TMP_202 \def (Flat f) 
-in (let TMP_203 \def (CHead c2 TMP_202 t) in (drop TMP_201 O TMP_203 e1))))) 
-in (let TMP_208 \def (\lambda (e1: C).(let TMP_205 \def (S d0) in (let 
-TMP_206 \def (S i0) in (let TMP_207 \def (minus TMP_205 TMP_206) in (drop h 
-TMP_207 e1 e2))))) in (let TMP_209 \def (ex2 C TMP_204 TMP_208) in (let 
-TMP_265 \def (\lambda (x0: C).(\lambda (x1: T).(\lambda (H2: (eq C c3 (CHead 
-x0 (Flat f) x1))).(\lambda (H3: (eq T t (lift h (r (Flat f) d0) 
-x1))).(\lambda (H4: (drop h (r (Flat f) d0) c2 x0)).(let TMP_211 \def 
-(\lambda (c: C).(let TMP_210 \def (S i0) in (drop TMP_210 O c e2))) in (let 
-TMP_212 \def (Flat f) in (let TMP_213 \def (CHead x0 TMP_212 x1) in (let H5 
-\def (eq_ind C c3 TMP_211 H1 TMP_213 H2) in (let TMP_214 \def (Flat f) in 
-(let TMP_215 \def (r TMP_214 d0) in (let TMP_216 \def (lift h TMP_215 x1) in 
-(let TMP_225 \def (\lambda (t0: T).(let TMP_220 \def (\lambda (e1: C).(let 
-TMP_217 \def (S i0) in (let TMP_218 \def (Flat f) in (let TMP_219 \def (CHead 
-c2 TMP_218 t0) in (drop TMP_217 O TMP_219 e1))))) in (let TMP_224 \def 
-(\lambda (e1: C).(let TMP_221 \def (S d0) in (let TMP_222 \def (S i0) in (let 
-TMP_223 \def (minus TMP_221 TMP_222) in (drop h TMP_223 e1 e2))))) in (ex2 C 
-TMP_220 TMP_224)))) in (let TMP_227 \def (\lambda (e1: C).(let TMP_226 \def 
-(S i0) in (drop TMP_226 O c2 e1))) in (let TMP_231 \def (\lambda (e1: C).(let 
-TMP_228 \def (S d0) in (let TMP_229 \def (S i0) in (let TMP_230 \def (minus 
-TMP_228 TMP_229) in (drop h TMP_230 e1 e2))))) in (let TMP_238 \def (\lambda 
-(e1: C).(let TMP_232 \def (S i0) in (let TMP_233 \def (Flat f) in (let 
-TMP_234 \def (Flat f) in (let TMP_235 \def (r TMP_234 d0) in (let TMP_236 
-\def (lift h TMP_235 x1) in (let TMP_237 \def (CHead c2 TMP_233 TMP_236) in 
-(drop TMP_232 O TMP_237 e1)))))))) in (let TMP_242 \def (\lambda (e1: C).(let 
-TMP_239 \def (S d0) in (let TMP_240 \def (S i0) in (let TMP_241 \def (minus 
-TMP_239 TMP_240) in (drop h TMP_241 e1 e2))))) in (let TMP_243 \def (ex2 C 
-TMP_238 TMP_242) in (let TMP_260 \def (\lambda (x: C).(\lambda (H6: (drop (S 
-i0) O c2 x)).(\lambda (H7: (drop h (minus (S d0) (S i0)) x e2)).(let TMP_250 
-\def (\lambda (e1: C).(let TMP_244 \def (S i0) in (let TMP_245 \def (Flat f) 
-in (let TMP_246 \def (Flat f) in (let TMP_247 \def (r TMP_246 d0) in (let 
-TMP_248 \def (lift h TMP_247 x1) in (let TMP_249 \def (CHead c2 TMP_245 
-TMP_248) in (drop TMP_244 O TMP_249 e1)))))))) in (let TMP_254 \def (\lambda 
-(e1: C).(let TMP_251 \def (S d0) in (let TMP_252 \def (S i0) in (let TMP_253 
-\def (minus TMP_251 TMP_252) in (drop h TMP_253 e1 e2))))) in (let TMP_255 
-\def (Flat f) in (let TMP_256 \def (Flat f) in (let TMP_257 \def (r TMP_256 
-d0) in (let TMP_258 \def (lift h TMP_257 x1) in (let TMP_259 \def (drop_drop 
-TMP_255 i0 c2 x H6 TMP_258) in (ex_intro2 C TMP_250 TMP_254 x TMP_259 
-H7))))))))))) in (let TMP_261 \def (Flat f) in (let TMP_262 \def 
-(drop_gen_drop TMP_261 x0 e2 x1 i0 H5) in (let TMP_263 \def (IHc x0 h H4 e2 
-TMP_262) in (let TMP_264 \def (ex2_ind C TMP_227 TMP_231 TMP_243 TMP_260 
-TMP_263) in (eq_ind_r T TMP_216 TMP_225 TMP_264 t H3)))))))))))))))))))))))) 
-in (let TMP_266 \def (Flat f) in (let TMP_267 \def (drop_gen_skip_l c2 c3 t h 
-d0 TMP_266 H0) in (ex3_2_ind C T TMP_193 TMP_197 TMP_200 TMP_209 TMP_265 
-TMP_267))))))))))))))))) in (K_ind TMP_114 TMP_190 TMP_268 k))))))) in (C_ind 
-TMP_49 TMP_106 TMP_269 c1)))))))) in (nat_ind TMP_22 TMP_42 TMP_270 d))))))) 
-in (nat_ind TMP_4 TMP_16 TMP_271 i)))).
+e1 e2)))))))))).(\lambda (k: K).(K_ind (\lambda (k0: K).(\forall (t: 
+T).(\forall (c3: C).(\forall (h: nat).((drop h (S d0) (CHead c2 k0 t) c3) \to 
+(\forall (e2: C).((drop (S i0) O c3 e2) \to (ex2 C (\lambda (e1: C).(drop (S 
+i0) O (CHead c2 k0 t) e1)) (\lambda (e1: C).(drop h (minus (S d0) (S i0)) e1 
+e2)))))))))) (\lambda (b: B).(\lambda (t: T).(\lambda (c3: C).(\lambda (h: 
+nat).(\lambda (H0: (drop h (S d0) (CHead c2 (Bind b) t) c3)).(\lambda (e2: 
+C).(\lambda (H1: (drop (S i0) O c3 e2)).(ex3_2_ind C T (\lambda (e: 
+C).(\lambda (v: T).(eq C c3 (CHead e (Bind b) v)))) (\lambda (_: C).(\lambda 
+(v: T).(eq T t (lift h (r (Bind b) d0) v)))) (\lambda (e: C).(\lambda (_: 
+T).(drop h (r (Bind b) d0) c2 e))) (ex2 C (\lambda (e1: C).(drop (S i0) O 
+(CHead c2 (Bind b) t) e1)) (\lambda (e1: C).(drop h (minus (S d0) (S i0)) e1 
+e2))) (\lambda (x0: C).(\lambda (x1: T).(\lambda (H2: (eq C c3 (CHead x0 
+(Bind b) x1))).(\lambda (H3: (eq T t (lift h (r (Bind b) d0) x1))).(\lambda 
+(H4: (drop h (r (Bind b) d0) c2 x0)).(let H5 \def (eq_ind C c3 (\lambda (c: 
+C).(drop (S i0) O c e2)) H1 (CHead x0 (Bind b) x1) H2) in (eq_ind_r T (lift h 
+(r (Bind b) d0) x1) (\lambda (t0: T).(ex2 C (\lambda (e1: C).(drop (S i0) O 
+(CHead c2 (Bind b) t0) e1)) (\lambda (e1: C).(drop h (minus (S d0) (S i0)) e1 
+e2)))) (ex2_ind C (\lambda (e1: C).(drop i0 O c2 e1)) (\lambda (e1: C).(drop 
+h (minus d0 i0) e1 e2)) (ex2 C (\lambda (e1: C).(drop (S i0) O (CHead c2 
+(Bind b) (lift h (r (Bind b) d0) x1)) e1)) (\lambda (e1: C).(drop h (minus (S 
+d0) (S i0)) e1 e2))) (\lambda (x: C).(\lambda (H6: (drop i0 O c2 x)).(\lambda 
+(H7: (drop h (minus d0 i0) x e2)).(ex_intro2 C (\lambda (e1: C).(drop (S i0) 
+O (CHead c2 (Bind b) (lift h (r (Bind b) d0) x1)) e1)) (\lambda (e1: C).(drop 
+h (minus (S d0) (S i0)) e1 e2)) x (drop_drop (Bind b) i0 c2 x H6 (lift h (r 
+(Bind b) d0) x1)) H7)))) (IHi d0 (le_S_n i0 d0 H) c2 x0 h H4 e2 
+(drop_gen_drop (Bind b) x0 e2 x1 i0 H5))) t H3))))))) (drop_gen_skip_l c2 c3 
+t h d0 (Bind b) H0))))))))) (\lambda (f: F).(\lambda (t: T).(\lambda (c3: 
+C).(\lambda (h: nat).(\lambda (H0: (drop h (S d0) (CHead c2 (Flat f) t) 
+c3)).(\lambda (e2: C).(\lambda (H1: (drop (S i0) O c3 e2)).(ex3_2_ind C T 
+(\lambda (e: C).(\lambda (v: T).(eq C c3 (CHead e (Flat f) v)))) (\lambda (_: 
+C).(\lambda (v: T).(eq T t (lift h (r (Flat f) d0) v)))) (\lambda (e: 
+C).(\lambda (_: T).(drop h (r (Flat f) d0) c2 e))) (ex2 C (\lambda (e1: 
+C).(drop (S i0) O (CHead c2 (Flat f) t) e1)) (\lambda (e1: C).(drop h (minus 
+(S d0) (S i0)) e1 e2))) (\lambda (x0: C).(\lambda (x1: T).(\lambda (H2: (eq C 
+c3 (CHead x0 (Flat f) x1))).(\lambda (H3: (eq T t (lift h (r (Flat f) d0) 
+x1))).(\lambda (H4: (drop h (r (Flat f) d0) c2 x0)).(let H5 \def (eq_ind C c3 
+(\lambda (c: C).(drop (S i0) O c e2)) H1 (CHead x0 (Flat f) x1) H2) in 
+(eq_ind_r T (lift h (r (Flat f) d0) x1) (\lambda (t0: T).(ex2 C (\lambda (e1: 
+C).(drop (S i0) O (CHead c2 (Flat f) t0) e1)) (\lambda (e1: C).(drop h (minus 
+(S d0) (S i0)) e1 e2)))) (ex2_ind C (\lambda (e1: C).(drop (S i0) O c2 e1)) 
+(\lambda (e1: C).(drop h (minus (S d0) (S i0)) e1 e2)) (ex2 C (\lambda (e1: 
+C).(drop (S i0) O (CHead c2 (Flat f) (lift h (r (Flat f) d0) x1)) e1)) 
+(\lambda (e1: C).(drop h (minus (S d0) (S i0)) e1 e2))) (\lambda (x: 
+C).(\lambda (H6: (drop (S i0) O c2 x)).(\lambda (H7: (drop h (minus (S d0) (S 
+i0)) x e2)).(ex_intro2 C (\lambda (e1: C).(drop (S i0) O (CHead c2 (Flat f) 
+(lift h (r (Flat f) d0) x1)) e1)) (\lambda (e1: C).(drop h (minus (S d0) (S 
+i0)) e1 e2)) x (drop_drop (Flat f) i0 c2 x H6 (lift h (r (Flat f) d0) x1)) 
+H7)))) (IHc x0 h H4 e2 (drop_gen_drop (Flat f) x0 e2 x1 i0 H5))) t H3))))))) 
+(drop_gen_skip_l c2 c3 t h d0 (Flat f) H0))))))))) k)))) c1))))) d)))) i).
 
 theorem drop_trans_ge:
  \forall (i: nat).(\forall (c1: C).(\forall (c2: C).(\forall (d: 
 nat).(\forall (h: nat).((drop h d c1 c2) \to (\forall (e2: C).((drop i O c2 
 e2) \to ((le d i) \to (drop (plus i h) O c1 e2)))))))))
 \def
- \lambda (i: nat).(let TMP_2 \def (\lambda (n: nat).(\forall (c1: C).(\forall 
+ \lambda (i: nat).(nat_ind (\lambda (n: nat).(\forall (c1: C).(\forall (c2: 
+C).(\forall (d: nat).(\forall (h: nat).((drop h d c1 c2) \to (\forall (e2: 
+C).((drop n O c2 e2) \to ((le d n) \to (drop (plus n h) O c1 e2)))))))))) 
+(\lambda (c1: C).(\lambda (c2: C).(\lambda (d: nat).(\lambda (h: 
+nat).(\lambda (H: (drop h d c1 c2)).(\lambda (e2: C).(\lambda (H0: (drop O O 
+c2 e2)).(\lambda (H1: (le d O)).(eq_ind C c2 (\lambda (c: C).(drop (plus O h) 
+O c1 c)) (let H_y \def (le_n_O_eq d H1) in (let H2 \def (eq_ind_r nat d 
+(\lambda (n: nat).(drop h n c1 c2)) H O H_y) in H2)) e2 (drop_gen_refl c2 e2 
+H0)))))))))) (\lambda (i0: nat).(\lambda (IHi: ((\forall (c1: C).(\forall 
 (c2: C).(\forall (d: nat).(\forall (h: nat).((drop h d c1 c2) \to (\forall 
-(e2: C).((drop n O c2 e2) \to ((le d n) \to (let TMP_1 \def (plus n h) in 
-(drop TMP_1 O c1 e2))))))))))) in (let TMP_7 \def (\lambda (c1: C).(\lambda 
-(c2: C).(\lambda (d: nat).(\lambda (h: nat).(\lambda (H: (drop h d c1 
-c2)).(\lambda (e2: C).(\lambda (H0: (drop O O c2 e2)).(\lambda (H1: (le d 
-O)).(let TMP_4 \def (\lambda (c: C).(let TMP_3 \def (plus O h) in (drop TMP_3 
-O c1 c))) in (let H_y \def (le_n_O_eq d H1) in (let TMP_5 \def (\lambda (n: 
-nat).(drop h n c1 c2)) in (let H2 \def (eq_ind_r nat d TMP_5 H O H_y) in (let 
-TMP_6 \def (drop_gen_refl c2 e2 H0) in (eq_ind C c2 TMP_4 H2 e2 
-TMP_6)))))))))))))) in (let TMP_165 \def (\lambda (i0: nat).(\lambda (IHi: 
-((\forall (c1: C).(\forall (c2: C).(\forall (d: nat).(\forall (h: nat).((drop 
-h d c1 c2) \to (\forall (e2: C).((drop i0 O c2 e2) \to ((le d i0) \to (drop 
-(plus i0 h) O c1 e2))))))))))).(\lambda (c1: C).(let TMP_10 \def (\lambda (c: 
-C).(\forall (c2: C).(\forall (d: nat).(\forall (h: nat).((drop h d c c2) \to 
-(\forall (e2: C).((drop (S i0) O c2 e2) \to ((le d (S i0)) \to (let TMP_8 
-\def (S i0) in (let TMP_9 \def (plus TMP_8 h) in (drop TMP_9 O c 
-e2))))))))))) in (let TMP_56 \def (\lambda (n: nat).(\lambda (c2: C).(\lambda 
-(d: nat).(\lambda (h: nat).(\lambda (H: (drop h d (CSort n) c2)).(\lambda 
-(e2: C).(\lambda (H0: (drop (S i0) O c2 e2)).(\lambda (H1: (le d (S 
-i0))).(let TMP_11 \def (CSort n) in (let TMP_12 \def (eq C c2 TMP_11) in (let 
-TMP_13 \def (eq nat h O) in (let TMP_14 \def (eq nat d O) in (let TMP_15 \def 
-(plus i0 h) in (let TMP_16 \def (S TMP_15) in (let TMP_17 \def (CSort n) in 
-(let TMP_18 \def (drop TMP_16 O TMP_17 e2) in (let TMP_54 \def (\lambda (H2: 
-(eq C c2 (CSort n))).(\lambda (H3: (eq nat h O)).(\lambda (H4: (eq nat d 
-O)).(let TMP_22 \def (\lambda (n0: nat).(let TMP_19 \def (plus i0 n0) in (let 
-TMP_20 \def (S TMP_19) in (let TMP_21 \def (CSort n) in (drop TMP_20 O TMP_21 
-e2))))) in (let TMP_24 \def (\lambda (n0: nat).(let TMP_23 \def (S i0) in (le 
-n0 TMP_23))) in (let H5 \def (eq_ind nat d TMP_24 H1 O H4) in (let TMP_26 
-\def (\lambda (c: C).(let TMP_25 \def (S i0) in (drop TMP_25 O c e2))) in 
-(let TMP_27 \def (CSort n) in (let H6 \def (eq_ind C c2 TMP_26 H0 TMP_27 H2) 
-in (let TMP_28 \def (CSort n) in (let TMP_29 \def (eq C e2 TMP_28) in (let 
-TMP_30 \def (S i0) in (let TMP_31 \def (eq nat TMP_30 O) in (let TMP_32 \def 
-(eq nat O O) in (let TMP_33 \def (plus i0 O) in (let TMP_34 \def (S TMP_33) 
-in (let TMP_35 \def (CSort n) in (let TMP_36 \def (drop TMP_34 O TMP_35 e2) 
-in (let TMP_50 \def (\lambda (H7: (eq C e2 (CSort n))).(\lambda (H8: (eq nat 
-(S i0) O)).(\lambda (_: (eq nat O O)).(let TMP_37 \def (CSort n) in (let 
-TMP_41 \def (\lambda (c: C).(let TMP_38 \def (plus i0 O) in (let TMP_39 \def 
-(S TMP_38) in (let TMP_40 \def (CSort n) in (drop TMP_39 O TMP_40 c))))) in 
-(let TMP_42 \def (S i0) in (let TMP_43 \def (\lambda (ee: nat).(match ee with 
-[O \Rightarrow False | (S _) \Rightarrow True])) in (let H10 \def (eq_ind nat 
-TMP_42 TMP_43 I O H8) in (let TMP_44 \def (plus i0 O) in (let TMP_45 \def (S 
-TMP_44) in (let TMP_46 \def (CSort n) in (let TMP_47 \def (CSort n) in (let 
-TMP_48 \def (drop TMP_45 O TMP_46 TMP_47) in (let TMP_49 \def (False_ind 
-TMP_48 H10) in (eq_ind_r C TMP_37 TMP_41 TMP_49 e2 H7))))))))))))))) in (let 
-TMP_51 \def (S i0) in (let TMP_52 \def (drop_gen_sort n TMP_51 O e2 H6) in 
-(let TMP_53 \def (and3_ind TMP_29 TMP_31 TMP_32 TMP_36 TMP_50 TMP_52) in 
-(eq_ind_r nat O TMP_22 TMP_53 h H3))))))))))))))))))))))) in (let TMP_55 \def 
-(drop_gen_sort n h d c2 H) in (and3_ind TMP_12 TMP_13 TMP_14 TMP_18 TMP_54 
-TMP_55))))))))))))))))))) in (let TMP_164 \def (\lambda (c2: C).(\lambda 
-(IHc: ((\forall (c3: C).(\forall (d: nat).(\forall (h: nat).((drop h d c2 c3) 
-\to (\forall (e2: C).((drop (S i0) O c3 e2) \to ((le d (S i0)) \to (drop (S 
-(plus i0 h)) O c2 e2)))))))))).(\lambda (k: K).(\lambda (t: T).(\lambda (c3: 
-C).(\lambda (d: nat).(let TMP_60 \def (\lambda (n: nat).(\forall (h: 
-nat).((drop h n (CHead c2 k t) c3) \to (\forall (e2: C).((drop (S i0) O c3 
-e2) \to ((le n (S i0)) \to (let TMP_57 \def (plus i0 h) in (let TMP_58 \def 
-(S TMP_57) in (let TMP_59 \def (CHead c2 k t) in (drop TMP_58 O TMP_59 
-e2)))))))))) in (let TMP_111 \def (\lambda (h: nat).(let TMP_64 \def (\lambda 
-(n: nat).((drop n O (CHead c2 k t) c3) \to (\forall (e2: C).((drop (S i0) O 
-c3 e2) \to ((le O (S i0)) \to (let TMP_61 \def (plus i0 n) in (let TMP_62 
-\def (S TMP_61) in (let TMP_63 \def (CHead c2 k t) in (drop TMP_62 O TMP_63 
-e2))))))))) in (let TMP_77 \def (\lambda (H: (drop O O (CHead c2 k t) 
-c3)).(\lambda (e2: C).(\lambda (H0: (drop (S i0) O c3 e2)).(\lambda (_: (le O 
-(S i0))).(let TMP_66 \def (\lambda (c: C).(let TMP_65 \def (S i0) in (drop 
-TMP_65 O c e2))) in (let TMP_67 \def (CHead c2 k t) in (let TMP_68 \def 
-(CHead c2 k t) in (let TMP_69 \def (drop_gen_refl TMP_68 c3 H) in (let H2 
-\def (eq_ind_r C c3 TMP_66 H0 TMP_67 TMP_69) in (let TMP_72 \def (\lambda (n: 
-nat).(let TMP_70 \def (S n) in (let TMP_71 \def (CHead c2 k t) in (drop 
-TMP_70 O TMP_71 e2)))) in (let TMP_73 \def (drop_gen_drop k c2 e2 t i0 H2) in 
-(let TMP_74 \def (drop_drop k i0 c2 e2 TMP_73 t) in (let TMP_75 \def (plus i0 
-O) in (let TMP_76 \def (plus_n_O i0) in (eq_ind nat i0 TMP_72 TMP_74 TMP_75 
-TMP_76))))))))))))))) in (let TMP_110 \def (\lambda (n: nat).(\lambda (_: 
-(((drop n O (CHead c2 k t) c3) \to (\forall (e2: C).((drop (S i0) O c3 e2) 
-\to ((le O (S i0)) \to (drop (S (plus i0 n)) O (CHead c2 k t) 
+(e2: C).((drop i0 O c2 e2) \to ((le d i0) \to (drop (plus i0 h) O c1 
+e2))))))))))).(\lambda (c1: C).(C_ind (\lambda (c: C).(\forall (c2: 
+C).(\forall (d: nat).(\forall (h: nat).((drop h d c c2) \to (\forall (e2: 
+C).((drop (S i0) O c2 e2) \to ((le d (S i0)) \to (drop (plus (S i0) h) O c 
+e2))))))))) (\lambda (n: nat).(\lambda (c2: C).(\lambda (d: nat).(\lambda (h: 
+nat).(\lambda (H: (drop h d (CSort n) c2)).(\lambda (e2: C).(\lambda (H0: 
+(drop (S i0) O c2 e2)).(\lambda (H1: (le d (S i0))).(and3_ind (eq C c2 (CSort 
+n)) (eq nat h O) (eq nat d O) (drop (S (plus i0 h)) O (CSort n) e2) (\lambda 
+(H2: (eq C c2 (CSort n))).(\lambda (H3: (eq nat h O)).(\lambda (H4: (eq nat d 
+O)).(eq_ind_r nat O (\lambda (n0: nat).(drop (S (plus i0 n0)) O (CSort n) 
+e2)) (let H5 \def (eq_ind nat d (\lambda (n0: nat).(le n0 (S i0))) H1 O H4) 
+in (let H6 \def (eq_ind C c2 (\lambda (c: C).(drop (S i0) O c e2)) H0 (CSort 
+n) H2) in (and3_ind (eq C e2 (CSort n)) (eq nat (S i0) O) (eq nat O O) (drop 
+(S (plus i0 O)) O (CSort n) e2) (\lambda (H7: (eq C e2 (CSort n))).(\lambda 
+(H8: (eq nat (S i0) O)).(\lambda (_: (eq nat O O)).(eq_ind_r C (CSort n) 
+(\lambda (c: C).(drop (S (plus i0 O)) O (CSort n) c)) (let H10 \def (eq_ind 
+nat (S i0) (\lambda (ee: nat).(match ee with [O \Rightarrow False | (S _) 
+\Rightarrow True])) I O H8) in (False_ind (drop (S (plus i0 O)) O (CSort n) 
+(CSort n)) H10)) e2 H7)))) (drop_gen_sort n (S i0) O e2 H6)))) h H3)))) 
+(drop_gen_sort n h d c2 H)))))))))) (\lambda (c2: C).(\lambda (IHc: ((\forall 
+(c3: C).(\forall (d: nat).(\forall (h: nat).((drop h d c2 c3) \to (\forall 
+(e2: C).((drop (S i0) O c3 e2) \to ((le d (S i0)) \to (drop (S (plus i0 h)) O 
+c2 e2)))))))))).(\lambda (k: K).(\lambda (t: T).(\lambda (c3: C).(\lambda (d: 
+nat).(nat_ind (\lambda (n: nat).(\forall (h: nat).((drop h n (CHead c2 k t) 
+c3) \to (\forall (e2: C).((drop (S i0) O c3 e2) \to ((le n (S i0)) \to (drop 
+(S (plus i0 h)) O (CHead c2 k t) e2))))))) (\lambda (h: nat).(nat_ind 
+(\lambda (n: nat).((drop n O (CHead c2 k t) c3) \to (\forall (e2: C).((drop 
+(S i0) O c3 e2) \to ((le O (S i0)) \to (drop (S (plus i0 n)) O (CHead c2 k t) 
+e2)))))) (\lambda (H: (drop O O (CHead c2 k t) c3)).(\lambda (e2: C).(\lambda 
+(H0: (drop (S i0) O c3 e2)).(\lambda (_: (le O (S i0))).(let H2 \def 
+(eq_ind_r C c3 (\lambda (c: C).(drop (S i0) O c e2)) H0 (CHead c2 k t) 
+(drop_gen_refl (CHead c2 k t) c3 H)) in (eq_ind nat i0 (\lambda (n: 
+nat).(drop (S n) O (CHead c2 k t) e2)) (drop_drop k i0 c2 e2 (drop_gen_drop k 
+c2 e2 t i0 H2) t) (plus i0 O) (plus_n_O i0))))))) (\lambda (n: nat).(\lambda 
+(_: (((drop n O (CHead c2 k t) c3) \to (\forall (e2: C).((drop (S i0) O c3 
+e2) \to ((le O (S i0)) \to (drop (S (plus i0 n)) O (CHead c2 k t) 
 e2))))))).(\lambda (H0: (drop (S n) O (CHead c2 k t) c3)).(\lambda (e2: 
-C).(\lambda (H1: (drop (S i0) O c3 e2)).(\lambda (H2: (le O (S i0))).(let 
-TMP_78 \def (plus i0 n) in (let TMP_79 \def (S TMP_78) in (let TMP_82 \def 
-(\lambda (n0: nat).(let TMP_80 \def (S n0) in (let TMP_81 \def (CHead c2 k t) 
-in (drop TMP_80 O TMP_81 e2)))) in (let TMP_83 \def (plus i0 n) in (let 
-TMP_84 \def (S TMP_83) in (let TMP_85 \def (plus i0 n) in (let TMP_86 \def (r 
-k TMP_85) in (let TMP_87 \def (S TMP_86) in (let TMP_88 \def (\lambda (n0: 
-nat).(drop n0 O c2 e2)) in (let TMP_89 \def (r k n) in (let TMP_90 \def (plus 
-i0 TMP_89) in (let TMP_92 \def (\lambda (n0: nat).(let TMP_91 \def (S n0) in 
-(drop TMP_91 O c2 e2))) in (let TMP_93 \def (r k n) in (let TMP_94 \def 
-(drop_gen_drop k c2 c3 t n H0) in (let TMP_95 \def (IHc c3 O TMP_93 TMP_94 e2 
-H1 H2) in (let TMP_96 \def (plus i0 n) in (let TMP_97 \def (r k TMP_96) in 
-(let TMP_98 \def (r_plus_sym k i0 n) in (let TMP_99 \def (eq_ind_r nat TMP_90 
-TMP_92 TMP_95 TMP_97 TMP_98) in (let TMP_100 \def (plus i0 n) in (let TMP_101 
-\def (S TMP_100) in (let TMP_102 \def (r k TMP_101) in (let TMP_103 \def 
-(plus i0 n) in (let TMP_104 \def (r_S k TMP_103) in (let TMP_105 \def 
-(eq_ind_r nat TMP_87 TMP_88 TMP_99 TMP_102 TMP_104) in (let TMP_106 \def 
-(drop_drop k TMP_84 c2 e2 TMP_105 t) in (let TMP_107 \def (S n) in (let 
-TMP_108 \def (plus i0 TMP_107) in (let TMP_109 \def (plus_n_Sm i0 n) in 
-(eq_ind nat TMP_79 TMP_82 TMP_106 TMP_108 
-TMP_109)))))))))))))))))))))))))))))))))))) in (nat_ind TMP_64 TMP_77 TMP_110 
-h))))) in (let TMP_163 \def (\lambda (d0: nat).(\lambda (IHd: ((\forall (h: 
-nat).((drop h d0 (CHead c2 k t) c3) \to (\forall (e2: C).((drop (S i0) O c3 
-e2) \to ((le d0 (S i0)) \to (drop (S (plus i0 h)) O (CHead c2 k t) 
-e2)))))))).(\lambda (h: nat).(\lambda (H: (drop h (S d0) (CHead c2 k t) 
-c3)).(\lambda (e2: C).(\lambda (H0: (drop (S i0) O c3 e2)).(\lambda (H1: (le 
-(S d0) (S i0))).(let TMP_113 \def (\lambda (e: C).(\lambda (v: T).(let 
-TMP_112 \def (CHead e k v) in (eq C c3 TMP_112)))) in (let TMP_116 \def 
-(\lambda (_: C).(\lambda (v: T).(let TMP_114 \def (r k d0) in (let TMP_115 
-\def (lift h TMP_114 v) in (eq T t TMP_115))))) in (let TMP_118 \def (\lambda 
-(e: C).(\lambda (_: T).(let TMP_117 \def (r k d0) in (drop h TMP_117 c2 e)))) 
-in (let TMP_119 \def (plus i0 h) in (let TMP_120 \def (S TMP_119) in (let 
-TMP_121 \def (CHead c2 k t) in (let TMP_122 \def (drop TMP_120 O TMP_121 e2) 
-in (let TMP_161 \def (\lambda (x0: C).(\lambda (x1: T).(\lambda (H2: (eq C c3 
-(CHead x0 k x1))).(\lambda (H3: (eq T t (lift h (r k d0) x1))).(\lambda (H4: 
-(drop h (r k d0) c2 x0)).(let TMP_126 \def (\lambda (c: C).(\forall (h0: 
-nat).((drop h0 d0 (CHead c2 k t) c) \to (\forall (e3: C).((drop (S i0) O c 
-e3) \to ((le d0 (S i0)) \to (let TMP_123 \def (plus i0 h0) in (let TMP_124 
-\def (S TMP_123) in (let TMP_125 \def (CHead c2 k t) in (drop TMP_124 O 
-TMP_125 e3)))))))))) in (let TMP_127 \def (CHead x0 k x1) in (let H5 \def 
-(eq_ind C c3 TMP_126 IHd TMP_127 H2) in (let TMP_129 \def (\lambda (c: 
-C).(let TMP_128 \def (S i0) in (drop TMP_128 O c e2))) in (let TMP_130 \def 
-(CHead x0 k x1) in (let H6 \def (eq_ind C c3 TMP_129 H0 TMP_130 H2) in (let 
-TMP_134 \def (\lambda (t0: T).(\forall (h0: nat).((drop h0 d0 (CHead c2 k t0) 
-(CHead x0 k x1)) \to (\forall (e3: C).((drop (S i0) O (CHead x0 k x1) e3) \to 
-((le d0 (S i0)) \to (let TMP_131 \def (plus i0 h0) in (let TMP_132 \def (S 
-TMP_131) in (let TMP_133 \def (CHead c2 k t0) in (drop TMP_132 O TMP_133 
-e3)))))))))) in (let TMP_135 \def (r k d0) in (let TMP_136 \def (lift h 
-TMP_135 x1) in (let H7 \def (eq_ind T t TMP_134 H5 TMP_136 H3) in (let 
-TMP_137 \def (r k d0) in (let TMP_138 \def (lift h TMP_137 x1) in (let 
-TMP_142 \def (\lambda (t0: T).(let TMP_139 \def (plus i0 h) in (let TMP_140 
-\def (S TMP_139) in (let TMP_141 \def (CHead c2 k t0) in (drop TMP_140 O 
-TMP_141 e2))))) in (let TMP_143 \def (plus i0 h) in (let TMP_146 \def 
-(\lambda (k0: K).((drop h (r k0 d0) c2 x0) \to ((drop (r k0 i0) O x0 e2) \to 
-(let TMP_144 \def (plus i0 h) in (let TMP_145 \def (r k0 TMP_144) in (drop 
-TMP_145 O c2 e2)))))) in (let TMP_152 \def (\lambda (b: B).(\lambda (H8: 
-(drop h (r (Bind b) d0) c2 x0)).(\lambda (H9: (drop (r (Bind b) i0) O x0 
-e2)).(let TMP_147 \def (Bind b) in (let TMP_148 \def (r TMP_147 d0) in (let 
-TMP_149 \def (Bind b) in (let TMP_150 \def (r TMP_149 d0) in (let TMP_151 
-\def (le_S_n TMP_150 i0 H1) in (IHi c2 x0 TMP_148 h H8 e2 H9 TMP_151))))))))) 
-in (let TMP_155 \def (\lambda (f: F).(\lambda (H8: (drop h (r (Flat f) d0) c2 
-x0)).(\lambda (H9: (drop (r (Flat f) i0) O x0 e2)).(let TMP_153 \def (Flat f) 
-in (let TMP_154 \def (r TMP_153 d0) in (IHc x0 TMP_154 h H8 e2 H9 H1)))))) in 
-(let TMP_156 \def (drop_gen_drop k x0 e2 x1 i0 H6) in (let TMP_157 \def 
-(K_ind TMP_146 TMP_152 TMP_155 k H4 TMP_156) in (let TMP_158 \def (r k d0) in 
-(let TMP_159 \def (lift h TMP_158 x1) in (let TMP_160 \def (drop_drop k 
-TMP_143 c2 e2 TMP_157 TMP_159) in (eq_ind_r T TMP_138 TMP_142 TMP_160 t 
-H3)))))))))))))))))))))))))))) in (let TMP_162 \def (drop_gen_skip_l c2 c3 t 
-h d0 k H) in (ex3_2_ind C T TMP_113 TMP_116 TMP_118 TMP_122 TMP_161 
-TMP_162))))))))))))))))) in (nat_ind TMP_60 TMP_111 TMP_163 d)))))))))) in 
-(C_ind TMP_10 TMP_56 TMP_164 c1))))))) in (nat_ind TMP_2 TMP_7 TMP_165 i)))).
+C).(\lambda (H1: (drop (S i0) O c3 e2)).(\lambda (H2: (le O (S i0))).(eq_ind 
+nat (S (plus i0 n)) (\lambda (n0: nat).(drop (S n0) O (CHead c2 k t) e2)) 
+(drop_drop k (S (plus i0 n)) c2 e2 (eq_ind_r nat (S (r k (plus i0 n))) 
+(\lambda (n0: nat).(drop n0 O c2 e2)) (eq_ind_r nat (plus i0 (r k n)) 
+(\lambda (n0: nat).(drop (S n0) O c2 e2)) (IHc c3 O (r k n) (drop_gen_drop k 
+c2 c3 t n H0) e2 H1 H2) (r k (plus i0 n)) (r_plus_sym k i0 n)) (r k (S (plus 
+i0 n))) (r_S k (plus i0 n))) t) (plus i0 (S n)) (plus_n_Sm i0 n)))))))) h)) 
+(\lambda (d0: nat).(\lambda (IHd: ((\forall (h: nat).((drop h d0 (CHead c2 k 
+t) c3) \to (\forall (e2: C).((drop (S i0) O c3 e2) \to ((le d0 (S i0)) \to 
+(drop (S (plus i0 h)) O (CHead c2 k t) e2)))))))).(\lambda (h: nat).(\lambda 
+(H: (drop h (S d0) (CHead c2 k t) c3)).(\lambda (e2: C).(\lambda (H0: (drop 
+(S i0) O c3 e2)).(\lambda (H1: (le (S d0) (S i0))).(ex3_2_ind C T (\lambda 
+(e: C).(\lambda (v: T).(eq C c3 (CHead e k v)))) (\lambda (_: C).(\lambda (v: 
+T).(eq T t (lift h (r k d0) v)))) (\lambda (e: C).(\lambda (_: T).(drop h (r 
+k d0) c2 e))) (drop (S (plus i0 h)) O (CHead c2 k t) e2) (\lambda (x0: 
+C).(\lambda (x1: T).(\lambda (H2: (eq C c3 (CHead x0 k x1))).(\lambda (H3: 
+(eq T t (lift h (r k d0) x1))).(\lambda (H4: (drop h (r k d0) c2 x0)).(let H5 
+\def (eq_ind C c3 (\lambda (c: C).(\forall (h0: nat).((drop h0 d0 (CHead c2 k 
+t) c) \to (\forall (e3: C).((drop (S i0) O c e3) \to ((le d0 (S i0)) \to 
+(drop (S (plus i0 h0)) O (CHead c2 k t) e3))))))) IHd (CHead x0 k x1) H2) in 
+(let H6 \def (eq_ind C c3 (\lambda (c: C).(drop (S i0) O c e2)) H0 (CHead x0 
+k x1) H2) in (let H7 \def (eq_ind T t (\lambda (t0: T).(\forall (h0: 
+nat).((drop h0 d0 (CHead c2 k t0) (CHead x0 k x1)) \to (\forall (e3: 
+C).((drop (S i0) O (CHead x0 k x1) e3) \to ((le d0 (S i0)) \to (drop (S (plus 
+i0 h0)) O (CHead c2 k t0) e3))))))) H5 (lift h (r k d0) x1) H3) in (eq_ind_r 
+T (lift h (r k d0) x1) (\lambda (t0: T).(drop (S (plus i0 h)) O (CHead c2 k 
+t0) e2)) (drop_drop k (plus i0 h) c2 e2 (K_ind (\lambda (k0: K).((drop h (r 
+k0 d0) c2 x0) \to ((drop (r k0 i0) O x0 e2) \to (drop (r k0 (plus i0 h)) O c2 
+e2)))) (\lambda (b: B).(\lambda (H8: (drop h (r (Bind b) d0) c2 x0)).(\lambda 
+(H9: (drop (r (Bind b) i0) O x0 e2)).(IHi c2 x0 (r (Bind b) d0) h H8 e2 H9 
+(le_S_n (r (Bind b) d0) i0 H1))))) (\lambda (f: F).(\lambda (H8: (drop h (r 
+(Flat f) d0) c2 x0)).(\lambda (H9: (drop (r (Flat f) i0) O x0 e2)).(IHc x0 (r 
+(Flat f) d0) h H8 e2 H9 H1)))) k H4 (drop_gen_drop k x0 e2 x1 i0 H6)) (lift h 
+(r k d0) x1)) t H3))))))))) (drop_gen_skip_l c2 c3 t h d0 k H))))))))) 
+d))))))) c1)))) i).
 
index c1953427f0e25bbec2fff160d5ca8dbd99e80fb0..ff42adbf5a4a8c20703ce103aec613b9d3111123 100644 (file)
@@ -26,8 +26,7 @@ c2 c3) \to (drop1 (PCons h d hds) c1 c3)))))))).
 
 let rec ptrans (hds: PList) on hds: nat \to PList \def \lambda (i: 
 nat).(match hds with [PNil \Rightarrow PNil | (PCons h d hds0) \Rightarrow 
-(let j \def (trans hds0 i) in (let q \def (ptrans hds0 i) in (let TMP_1 \def 
-(blt j d) in (match TMP_1 with [true \Rightarrow (let TMP_2 \def (S j) in 
-(let TMP_3 \def (minus d TMP_2) in (PCons h TMP_3 q))) | false \Rightarrow 
-q]))))]).
+(let j \def (trans hds0 i) in (let q \def (ptrans hds0 i) in (match (blt j d) 
+with [true \Rightarrow (PCons h (minus d (S j)) q) | false \Rightarrow 
+q])))]).
 
index 606c71d8148ec7ca96d143ed0fe29cdee3515f5d..1aacc171f50f37f761372c4fee855372e4ca2269 100644 (file)
@@ -22,27 +22,24 @@ nat).(\forall (d: nat).((drop h d c1 c2) \to (\forall (c3: C).(\forall (hds:
 PList).((drop1 hds c2 c3) \to ((P hds c2 c3) \to (P (PCons h d hds) c1 
 c3))))))))))) (p: PList) (c: C) (c0: C) (d: drop1 p c c0) on d: P p c c0 \def 
 match d with [(drop1_nil c1) \Rightarrow (f c1) | (drop1_cons c1 c2 h d0 d1 
-c3 hds d2) \Rightarrow (let TMP_1 \def ((drop1_ind P f f0) hds c2 c3 d2) in 
-(f0 c1 c2 h d0 d1 c3 hds d2 TMP_1))].
+c3 hds d2) \Rightarrow (f0 c1 c2 h d0 d1 c3 hds d2 ((drop1_ind P f f0) hds c2 
+c3 d2))].
 
 theorem drop1_gen_pnil:
  \forall (c1: C).(\forall (c2: C).((drop1 PNil c1 c2) \to (eq C c1 c2)))
 \def
- \lambda (c1: C).(\lambda (c2: C).(\lambda (H: (drop1 PNil c1 c2)).(let TMP_1 
-\def (\lambda (p: PList).(drop1 p c1 c2)) in (let TMP_2 \def (\lambda (_: 
-PList).(eq C c1 c2)) in (let TMP_9 \def (\lambda (y: PList).(\lambda (H0: 
-(drop1 y c1 c2)).(let TMP_3 \def (\lambda (p: PList).(\lambda (c: C).(\lambda 
-(c0: C).((eq PList p PNil) \to (eq C c c0))))) in (let TMP_4 \def (\lambda 
-(c: C).(\lambda (_: (eq PList PNil PNil)).(refl_equal C c))) in (let TMP_8 
-\def (\lambda (c3: C).(\lambda (c4: C).(\lambda (h: nat).(\lambda (d: 
+ \lambda (c1: C).(\lambda (c2: C).(\lambda (H: (drop1 PNil c1 c2)).(insert_eq 
+PList PNil (\lambda (p: PList).(drop1 p c1 c2)) (\lambda (_: PList).(eq C c1 
+c2)) (\lambda (y: PList).(\lambda (H0: (drop1 y c1 c2)).(drop1_ind (\lambda 
+(p: PList).(\lambda (c: C).(\lambda (c0: C).((eq PList p PNil) \to (eq C c 
+c0))))) (\lambda (c: C).(\lambda (_: (eq PList PNil PNil)).(refl_equal C c))) 
+(\lambda (c3: C).(\lambda (c4: C).(\lambda (h: nat).(\lambda (d: 
 nat).(\lambda (_: (drop h d c3 c4)).(\lambda (c5: C).(\lambda (hds: 
 PList).(\lambda (_: (drop1 hds c4 c5)).(\lambda (_: (((eq PList hds PNil) \to 
-(eq C c4 c5)))).(\lambda (H4: (eq PList (PCons h d hds) PNil)).(let TMP_5 
-\def (PCons h d hds) in (let TMP_6 \def (\lambda (ee: PList).(match ee with 
-[PNil \Rightarrow False | (PCons _ _ _) \Rightarrow True])) in (let H5 \def 
-(eq_ind PList TMP_5 TMP_6 I PNil H4) in (let TMP_7 \def (eq C c3 c5) in 
-(False_ind TMP_7 H5))))))))))))))) in (drop1_ind TMP_3 TMP_4 TMP_8 y c1 c2 
-H0)))))) in (insert_eq PList PNil TMP_1 TMP_2 TMP_9 H)))))).
+(eq C c4 c5)))).(\lambda (H4: (eq PList (PCons h d hds) PNil)).(let H5 \def 
+(eq_ind PList (PCons h d hds) (\lambda (ee: PList).(match ee with [PNil 
+\Rightarrow False | (PCons _ _ _) \Rightarrow True])) I PNil H4) in 
+(False_ind (eq C c3 c5) H5)))))))))))) y c1 c2 H0))) H))).
 
 theorem drop1_gen_pcons:
  \forall (c1: C).(\forall (c3: C).(\forall (hds: PList).(\forall (h: 
@@ -50,47 +47,35 @@ nat).(\forall (d: nat).((drop1 (PCons h d hds) c1 c3) \to (ex2 C (\lambda
 (c2: C).(drop h d c1 c2)) (\lambda (c2: C).(drop1 hds c2 c3))))))))
 \def
  \lambda (c1: C).(\lambda (c3: C).(\lambda (hds: PList).(\lambda (h: 
-nat).(\lambda (d: nat).(\lambda (H: (drop1 (PCons h d hds) c1 c3)).(let TMP_1 
-\def (PCons h d hds) in (let TMP_2 \def (\lambda (p: PList).(drop1 p c1 c3)) 
-in (let TMP_5 \def (\lambda (_: PList).(let TMP_3 \def (\lambda (c2: C).(drop 
-h d c1 c2)) in (let TMP_4 \def (\lambda (c2: C).(drop1 hds c2 c3)) in (ex2 C 
-TMP_3 TMP_4)))) in (let TMP_35 \def (\lambda (y: PList).(\lambda (H0: (drop1 
-y c1 c3)).(let TMP_8 \def (\lambda (p: PList).(\lambda (c: C).(\lambda (c0: 
-C).((eq PList p (PCons h d hds)) \to (let TMP_6 \def (\lambda (c2: C).(drop h 
-d c c2)) in (let TMP_7 \def (\lambda (c2: C).(drop1 hds c2 c0)) in (ex2 C 
-TMP_6 TMP_7))))))) in (let TMP_14 \def (\lambda (c: C).(\lambda (H1: (eq 
-PList PNil (PCons h d hds))).(let TMP_9 \def (\lambda (ee: PList).(match ee 
-with [PNil \Rightarrow True | (PCons _ _ _) \Rightarrow False])) in (let 
-TMP_10 \def (PCons h d hds) in (let H2 \def (eq_ind PList PNil TMP_9 I TMP_10 
-H1) in (let TMP_11 \def (\lambda (c2: C).(drop h d c c2)) in (let TMP_12 \def 
-(\lambda (c2: C).(drop1 hds c2 c)) in (let TMP_13 \def (ex2 C TMP_11 TMP_12) 
-in (False_ind TMP_13 H2))))))))) in (let TMP_34 \def (\lambda (c2: 
-C).(\lambda (c4: C).(\lambda (h0: nat).(\lambda (d0: nat).(\lambda (H1: (drop 
-h0 d0 c2 c4)).(\lambda (c5: C).(\lambda (hds0: PList).(\lambda (H2: (drop1 
-hds0 c4 c5)).(\lambda (H3: (((eq PList hds0 (PCons h d hds)) \to (ex2 C 
-(\lambda (c6: C).(drop h d c4 c6)) (\lambda (c6: C).(drop1 hds c6 
-c5)))))).(\lambda (H4: (eq PList (PCons h0 d0 hds0) (PCons h d hds))).(let 
-TMP_15 \def (\lambda (e: PList).(match e with [PNil \Rightarrow h0 | (PCons n 
-_ _) \Rightarrow n])) in (let TMP_16 \def (PCons h0 d0 hds0) in (let TMP_17 
-\def (PCons h d hds) in (let H5 \def (f_equal PList nat TMP_15 TMP_16 TMP_17 
-H4) in (let TMP_18 \def (\lambda (e: PList).(match e with [PNil \Rightarrow 
-d0 | (PCons _ n _) \Rightarrow n])) in (let TMP_19 \def (PCons h0 d0 hds0) in 
-(let TMP_20 \def (PCons h d hds) in (let H6 \def (f_equal PList nat TMP_18 
-TMP_19 TMP_20 H4) in (let TMP_21 \def (\lambda (e: PList).(match e with [PNil 
-\Rightarrow hds0 | (PCons _ _ p) \Rightarrow p])) in (let TMP_22 \def (PCons 
-h0 d0 hds0) in (let TMP_23 \def (PCons h d hds) in (let H7 \def (f_equal 
-PList PList TMP_21 TMP_22 TMP_23 H4) in (let TMP_32 \def (\lambda (H8: (eq 
-nat d0 d)).(\lambda (H9: (eq nat h0 h)).(let TMP_26 \def (\lambda (p: 
-PList).((eq PList p (PCons h d hds)) \to (let TMP_24 \def (\lambda (c6: 
-C).(drop h d c4 c6)) in (let TMP_25 \def (\lambda (c6: C).(drop1 hds c6 c5)) 
-in (ex2 C TMP_24 TMP_25))))) in (let H10 \def (eq_ind PList hds0 TMP_26 H3 
-hds H7) in (let TMP_27 \def (\lambda (p: PList).(drop1 p c4 c5)) in (let H11 
-\def (eq_ind PList hds0 TMP_27 H2 hds H7) in (let TMP_28 \def (\lambda (n: 
-nat).(drop h0 n c2 c4)) in (let H12 \def (eq_ind nat d0 TMP_28 H1 d H8) in 
-(let TMP_29 \def (\lambda (n: nat).(drop n d c2 c4)) in (let H13 \def (eq_ind 
-nat h0 TMP_29 H12 h H9) in (let TMP_30 \def (\lambda (c6: C).(drop h d c2 
-c6)) in (let TMP_31 \def (\lambda (c6: C).(drop1 hds c6 c5)) in (ex_intro2 C 
-TMP_30 TMP_31 c4 H13 H11))))))))))))) in (let TMP_33 \def (TMP_32 H6) in 
-(TMP_33 H5))))))))))))))))))))))))) in (drop1_ind TMP_8 TMP_14 TMP_34 y c1 c3 
-H0)))))) in (insert_eq PList TMP_1 TMP_2 TMP_5 TMP_35 H)))))))))).
+nat).(\lambda (d: nat).(\lambda (H: (drop1 (PCons h d hds) c1 c3)).(insert_eq 
+PList (PCons h d hds) (\lambda (p: PList).(drop1 p c1 c3)) (\lambda (_: 
+PList).(ex2 C (\lambda (c2: C).(drop h d c1 c2)) (\lambda (c2: C).(drop1 hds 
+c2 c3)))) (\lambda (y: PList).(\lambda (H0: (drop1 y c1 c3)).(drop1_ind 
+(\lambda (p: PList).(\lambda (c: C).(\lambda (c0: C).((eq PList p (PCons h d 
+hds)) \to (ex2 C (\lambda (c2: C).(drop h d c c2)) (\lambda (c2: C).(drop1 
+hds c2 c0))))))) (\lambda (c: C).(\lambda (H1: (eq PList PNil (PCons h d 
+hds))).(let H2 \def (eq_ind PList PNil (\lambda (ee: PList).(match ee with 
+[PNil \Rightarrow True | (PCons _ _ _) \Rightarrow False])) I (PCons h d hds) 
+H1) in (False_ind (ex2 C (\lambda (c2: C).(drop h d c c2)) (\lambda (c2: 
+C).(drop1 hds c2 c))) H2)))) (\lambda (c2: C).(\lambda (c4: C).(\lambda (h0: 
+nat).(\lambda (d0: nat).(\lambda (H1: (drop h0 d0 c2 c4)).(\lambda (c5: 
+C).(\lambda (hds0: PList).(\lambda (H2: (drop1 hds0 c4 c5)).(\lambda (H3: 
+(((eq PList hds0 (PCons h d hds)) \to (ex2 C (\lambda (c6: C).(drop h d c4 
+c6)) (\lambda (c6: C).(drop1 hds c6 c5)))))).(\lambda (H4: (eq PList (PCons 
+h0 d0 hds0) (PCons h d hds))).(let H5 \def (f_equal PList nat (\lambda (e: 
+PList).(match e with [PNil \Rightarrow h0 | (PCons n _ _) \Rightarrow n])) 
+(PCons h0 d0 hds0) (PCons h d hds) H4) in ((let H6 \def (f_equal PList nat 
+(\lambda (e: PList).(match e with [PNil \Rightarrow d0 | (PCons _ n _) 
+\Rightarrow n])) (PCons h0 d0 hds0) (PCons h d hds) H4) in ((let H7 \def 
+(f_equal PList PList (\lambda (e: PList).(match e with [PNil \Rightarrow hds0 
+| (PCons _ _ p) \Rightarrow p])) (PCons h0 d0 hds0) (PCons h d hds) H4) in 
+(\lambda (H8: (eq nat d0 d)).(\lambda (H9: (eq nat h0 h)).(let H10 \def 
+(eq_ind PList hds0 (\lambda (p: PList).((eq PList p (PCons h d hds)) \to (ex2 
+C (\lambda (c6: C).(drop h d c4 c6)) (\lambda (c6: C).(drop1 hds c6 c5))))) 
+H3 hds H7) in (let H11 \def (eq_ind PList hds0 (\lambda (p: PList).(drop1 p 
+c4 c5)) H2 hds H7) in (let H12 \def (eq_ind nat d0 (\lambda (n: nat).(drop h0 
+n c2 c4)) H1 d H8) in (let H13 \def (eq_ind nat h0 (\lambda (n: nat).(drop n 
+d c2 c4)) H12 h H9) in (ex_intro2 C (\lambda (c6: C).(drop h d c2 c6)) 
+(\lambda (c6: C).(drop1 hds c6 c5)) c4 H13 H11)))))))) H6)) H5)))))))))))) y 
+c1 c3 H0))) H)))))).
 
index 6d790740689c569a00f8c83bfd218672e79f825b..1a761e160746deaaec552483cf783f2926f0cb49 100644 (file)
@@ -25,165 +25,83 @@ i c1 (CHead e1 (Bind b) v)) \to (ex2 C (\lambda (e2: C).(drop1 (ptrans hds i)
 e2 e1)) (\lambda (e2: C).(getl (trans hds i) c2 (CHead e2 (Bind b) (lift1 
 (ptrans hds i) v)))))))))))))
 \def
- \lambda (hds: PList).(let TMP_9 \def (\lambda (p: PList).(\forall (c1: 
+ \lambda (hds: PList).(PList_ind (\lambda (p: PList).(\forall (c1: 
 C).(\forall (c2: C).((drop1 p c2 c1) \to (\forall (b: B).(\forall (e1: 
 C).(\forall (v: T).(\forall (i: nat).((getl i c1 (CHead e1 (Bind b) v)) \to 
-(let TMP_2 \def (\lambda (e2: C).(let TMP_1 \def (ptrans p i) in (drop1 TMP_1 
-e2 e1))) in (let TMP_8 \def (\lambda (e2: C).(let TMP_3 \def (trans p i) in 
-(let TMP_4 \def (Bind b) in (let TMP_5 \def (ptrans p i) in (let TMP_6 \def 
-(lift1 TMP_5 v) in (let TMP_7 \def (CHead e2 TMP_4 TMP_6) in (getl TMP_3 c2 
-TMP_7))))))) in (ex2 C TMP_2 TMP_8)))))))))))) in (let TMP_21 \def (\lambda 
-(c1: C).(\lambda (c2: C).(\lambda (H: (drop1 PNil c2 c1)).(\lambda (b: 
-B).(\lambda (e1: C).(\lambda (v: T).(\lambda (i: nat).(\lambda (H0: (getl i 
-c1 (CHead e1 (Bind b) v))).(let H_y \def (drop1_gen_pnil c2 c1 H) in (let 
-TMP_14 \def (\lambda (c: C).(let TMP_10 \def (\lambda (e2: C).(drop1 PNil e2 
-e1)) in (let TMP_13 \def (\lambda (e2: C).(let TMP_11 \def (Bind b) in (let 
-TMP_12 \def (CHead e2 TMP_11 v) in (getl i c TMP_12)))) in (ex2 C TMP_10 
-TMP_13)))) in (let TMP_15 \def (\lambda (e2: C).(drop1 PNil e2 e1)) in (let 
-TMP_18 \def (\lambda (e2: C).(let TMP_16 \def (Bind b) in (let TMP_17 \def 
-(CHead e2 TMP_16 v) in (getl i c1 TMP_17)))) in (let TMP_19 \def (drop1_nil 
-e1) in (let TMP_20 \def (ex_intro2 C TMP_15 TMP_18 e1 TMP_19 H0) in (eq_ind_r 
-C c1 TMP_14 TMP_20 c2 H_y))))))))))))))) in (let TMP_210 \def (\lambda (h: 
-nat).(\lambda (d: nat).(\lambda (hds0: PList).(\lambda (H: ((\forall (c1: 
-C).(\forall (c2: C).((drop1 hds0 c2 c1) \to (\forall (b: B).(\forall (e1: 
-C).(\forall (v: T).(\forall (i: nat).((getl i c1 (CHead e1 (Bind b) v)) \to 
+(ex2 C (\lambda (e2: C).(drop1 (ptrans p i) e2 e1)) (\lambda (e2: C).(getl 
+(trans p i) c2 (CHead e2 (Bind b) (lift1 (ptrans p i) v)))))))))))))) 
+(\lambda (c1: C).(\lambda (c2: C).(\lambda (H: (drop1 PNil c2 c1)).(\lambda 
+(b: B).(\lambda (e1: C).(\lambda (v: T).(\lambda (i: nat).(\lambda (H0: (getl 
+i c1 (CHead e1 (Bind b) v))).(let H_y \def (drop1_gen_pnil c2 c1 H) in 
+(eq_ind_r C c1 (\lambda (c: C).(ex2 C (\lambda (e2: C).(drop1 PNil e2 e1)) 
+(\lambda (e2: C).(getl i c (CHead e2 (Bind b) v))))) (ex_intro2 C (\lambda 
+(e2: C).(drop1 PNil e2 e1)) (\lambda (e2: C).(getl i c1 (CHead e2 (Bind b) 
+v))) e1 (drop1_nil e1) H0) c2 H_y)))))))))) (\lambda (h: nat).(\lambda (d: 
+nat).(\lambda (hds0: PList).(\lambda (H: ((\forall (c1: C).(\forall (c2: 
+C).((drop1 hds0 c2 c1) \to (\forall (b: B).(\forall (e1: C).(\forall (v: 
+T).(\forall (i: nat).((getl i c1 (CHead e1 (Bind b) v)) \to (ex2 C (\lambda 
+(e2: C).(drop1 (ptrans hds0 i) e2 e1)) (\lambda (e2: C).(getl (trans hds0 i) 
+c2 (CHead e2 (Bind b) (lift1 (ptrans hds0 i) v))))))))))))))).(\lambda (c1: 
+C).(\lambda (c2: C).(\lambda (H0: (drop1 (PCons h d hds0) c2 c1)).(\lambda 
+(b: B).(\lambda (e1: C).(\lambda (v: T).(\lambda (i: nat).(\lambda (H1: (getl 
+i c1 (CHead e1 (Bind b) v))).(let H_x \def (drop1_gen_pcons c2 c1 hds0 h d 
+H0) in (let H2 \def H_x in (ex2_ind C (\lambda (c3: C).(drop h d c2 c3)) 
+(\lambda (c3: C).(drop1 hds0 c3 c1)) (ex2 C (\lambda (e2: C).(drop1 (match 
+(blt (trans hds0 i) d) with [true \Rightarrow (PCons h (minus d (S (trans 
+hds0 i))) (ptrans hds0 i)) | false \Rightarrow (ptrans hds0 i)]) e2 e1)) 
+(\lambda (e2: C).(getl (match (blt (trans hds0 i) d) with [true \Rightarrow 
+(trans hds0 i) | false \Rightarrow (plus (trans hds0 i) h)]) c2 (CHead e2 
+(Bind b) (lift1 (match (blt (trans hds0 i) d) with [true \Rightarrow (PCons h 
+(minus d (S (trans hds0 i))) (ptrans hds0 i)) | false \Rightarrow (ptrans 
+hds0 i)]) v))))) (\lambda (x: C).(\lambda (H3: (drop h d c2 x)).(\lambda (H4: 
+(drop1 hds0 x c1)).(xinduction bool (blt (trans hds0 i) d) (\lambda (b0: 
+bool).(ex2 C (\lambda (e2: C).(drop1 (match b0 with [true \Rightarrow (PCons 
+h (minus d (S (trans hds0 i))) (ptrans hds0 i)) | false \Rightarrow (ptrans 
+hds0 i)]) e2 e1)) (\lambda (e2: C).(getl (match b0 with [true \Rightarrow 
+(trans hds0 i) | false \Rightarrow (plus (trans hds0 i) h)]) c2 (CHead e2 
+(Bind b) (lift1 (match b0 with [true \Rightarrow (PCons h (minus d (S (trans 
+hds0 i))) (ptrans hds0 i)) | false \Rightarrow (ptrans hds0 i)]) v)))))) 
+(\lambda (x_x: bool).(bool_ind (\lambda (b0: bool).((eq bool (blt (trans hds0 
+i) d) b0) \to (ex2 C (\lambda (e2: C).(drop1 (match b0 with [true \Rightarrow 
+(PCons h (minus d (S (trans hds0 i))) (ptrans hds0 i)) | false \Rightarrow 
+(ptrans hds0 i)]) e2 e1)) (\lambda (e2: C).(getl (match b0 with [true 
+\Rightarrow (trans hds0 i) | false \Rightarrow (plus (trans hds0 i) h)]) c2 
+(CHead e2 (Bind b) (lift1 (match b0 with [true \Rightarrow (PCons h (minus d 
+(S (trans hds0 i))) (ptrans hds0 i)) | false \Rightarrow (ptrans hds0 i)]) 
+v))))))) (\lambda (H5: (eq bool (blt (trans hds0 i) d) true)).(let H_x0 \def 
+(H c1 x H4 b e1 v i H1) in (let H6 \def H_x0 in (ex2_ind C (\lambda (e2: 
+C).(drop1 (ptrans hds0 i) e2 e1)) (\lambda (e2: C).(getl (trans hds0 i) x 
+(CHead e2 (Bind b) (lift1 (ptrans hds0 i) v)))) (ex2 C (\lambda (e2: 
+C).(drop1 (PCons h (minus d (S (trans hds0 i))) (ptrans hds0 i)) e2 e1)) 
+(\lambda (e2: C).(getl (trans hds0 i) c2 (CHead e2 (Bind b) (lift1 (PCons h 
+(minus d (S (trans hds0 i))) (ptrans hds0 i)) v))))) (\lambda (x0: 
+C).(\lambda (H7: (drop1 (ptrans hds0 i) x0 e1)).(\lambda (H8: (getl (trans 
+hds0 i) x (CHead x0 (Bind b) (lift1 (ptrans hds0 i) v)))).(let H_x1 \def 
+(drop_getl_trans_lt (trans hds0 i) d (blt_lt d (trans hds0 i) H5) c2 x h H3 b 
+x0 (lift1 (ptrans hds0 i) v) H8) in (let H9 \def H_x1 in (ex2_ind C (\lambda 
+(e2: C).(getl (trans hds0 i) c2 (CHead e2 (Bind b) (lift h (minus d (S (trans 
+hds0 i))) (lift1 (ptrans hds0 i) v))))) (\lambda (e2: C).(drop h (minus d (S 
+(trans hds0 i))) e2 x0)) (ex2 C (\lambda (e2: C).(drop1 (PCons h (minus d (S 
+(trans hds0 i))) (ptrans hds0 i)) e2 e1)) (\lambda (e2: C).(getl (trans hds0 
+i) c2 (CHead e2 (Bind b) (lift1 (PCons h (minus d (S (trans hds0 i))) (ptrans 
+hds0 i)) v))))) (\lambda (x1: C).(\lambda (H10: (getl (trans hds0 i) c2 
+(CHead x1 (Bind b) (lift h (minus d (S (trans hds0 i))) (lift1 (ptrans hds0 
+i) v))))).(\lambda (H11: (drop h (minus d (S (trans hds0 i))) x1 
+x0)).(ex_intro2 C (\lambda (e2: C).(drop1 (PCons h (minus d (S (trans hds0 
+i))) (ptrans hds0 i)) e2 e1)) (\lambda (e2: C).(getl (trans hds0 i) c2 (CHead 
+e2 (Bind b) (lift1 (PCons h (minus d (S (trans hds0 i))) (ptrans hds0 i)) 
+v)))) x1 (drop1_cons x1 x0 h (minus d (S (trans hds0 i))) H11 e1 (ptrans hds0 
+i) H7) H10)))) H9)))))) H6)))) (\lambda (H5: (eq bool (blt (trans hds0 i) d) 
+false)).(let H_x0 \def (H c1 x H4 b e1 v i H1) in (let H6 \def H_x0 in 
+(ex2_ind C (\lambda (e2: C).(drop1 (ptrans hds0 i) e2 e1)) (\lambda (e2: 
+C).(getl (trans hds0 i) x (CHead e2 (Bind b) (lift1 (ptrans hds0 i) v)))) 
 (ex2 C (\lambda (e2: C).(drop1 (ptrans hds0 i) e2 e1)) (\lambda (e2: C).(getl 
-(trans hds0 i) c2 (CHead e2 (Bind b) (lift1 (ptrans hds0 i) 
-v))))))))))))))).(\lambda (c1: C).(\lambda (c2: C).(\lambda (H0: (drop1 
-(PCons h d hds0) c2 c1)).(\lambda (b: B).(\lambda (e1: C).(\lambda (v: 
-T).(\lambda (i: nat).(\lambda (H1: (getl i c1 (CHead e1 (Bind b) v))).(let 
-H_x \def (drop1_gen_pcons c2 c1 hds0 h d H0) in (let H2 \def H_x in (let 
-TMP_22 \def (\lambda (c3: C).(drop h d c2 c3)) in (let TMP_23 \def (\lambda 
-(c3: C).(drop1 hds0 c3 c1)) in (let TMP_31 \def (\lambda (e2: C).(let TMP_24 
-\def (trans hds0 i) in (let TMP_25 \def (blt TMP_24 d) in (let TMP_30 \def 
-(match TMP_25 with [true \Rightarrow (let TMP_26 \def (trans hds0 i) in (let 
-TMP_27 \def (S TMP_26) in (let TMP_28 \def (minus d TMP_27) in (let TMP_29 
-\def (ptrans hds0 i) in (PCons h TMP_28 TMP_29))))) | false \Rightarrow 
-(ptrans hds0 i)]) in (drop1 TMP_30 e2 e1))))) in (let TMP_46 \def (\lambda 
-(e2: C).(let TMP_32 \def (trans hds0 i) in (let TMP_33 \def (blt TMP_32 d) in 
-(let TMP_35 \def (match TMP_33 with [true \Rightarrow (trans hds0 i) | false 
-\Rightarrow (let TMP_34 \def (trans hds0 i) in (plus TMP_34 h))]) in (let 
-TMP_36 \def (Bind b) in (let TMP_37 \def (trans hds0 i) in (let TMP_38 \def 
-(blt TMP_37 d) in (let TMP_43 \def (match TMP_38 with [true \Rightarrow (let 
-TMP_39 \def (trans hds0 i) in (let TMP_40 \def (S TMP_39) in (let TMP_41 \def 
-(minus d TMP_40) in (let TMP_42 \def (ptrans hds0 i) in (PCons h TMP_41 
-TMP_42))))) | false \Rightarrow (ptrans hds0 i)]) in (let TMP_44 \def (lift1 
-TMP_43 v) in (let TMP_45 \def (CHead e2 TMP_36 TMP_44) in (getl TMP_35 c2 
-TMP_45))))))))))) in (let TMP_47 \def (ex2 C TMP_31 TMP_46) in (let TMP_209 
-\def (\lambda (x: C).(\lambda (H3: (drop h d c2 x)).(\lambda (H4: (drop1 hds0 
-x c1)).(let TMP_48 \def (trans hds0 i) in (let TMP_49 \def (blt TMP_48 d) in 
-(let TMP_67 \def (\lambda (b0: bool).(let TMP_55 \def (\lambda (e2: C).(let 
-TMP_54 \def (match b0 with [true \Rightarrow (let TMP_50 \def (trans hds0 i) 
-in (let TMP_51 \def (S TMP_50) in (let TMP_52 \def (minus d TMP_51) in (let 
-TMP_53 \def (ptrans hds0 i) in (PCons h TMP_52 TMP_53))))) | false 
-\Rightarrow (ptrans hds0 i)]) in (drop1 TMP_54 e2 e1))) in (let TMP_66 \def 
-(\lambda (e2: C).(let TMP_57 \def (match b0 with [true \Rightarrow (trans 
-hds0 i) | false \Rightarrow (let TMP_56 \def (trans hds0 i) in (plus TMP_56 
-h))]) in (let TMP_58 \def (Bind b) in (let TMP_63 \def (match b0 with [true 
-\Rightarrow (let TMP_59 \def (trans hds0 i) in (let TMP_60 \def (S TMP_59) in 
-(let TMP_61 \def (minus d TMP_60) in (let TMP_62 \def (ptrans hds0 i) in 
-(PCons h TMP_61 TMP_62))))) | false \Rightarrow (ptrans hds0 i)]) in (let 
-TMP_64 \def (lift1 TMP_63 v) in (let TMP_65 \def (CHead e2 TMP_58 TMP_64) in 
-(getl TMP_57 c2 TMP_65))))))) in (ex2 C TMP_55 TMP_66)))) in (let TMP_208 
-\def (\lambda (x_x: bool).(let TMP_85 \def (\lambda (b0: bool).((eq bool (blt 
-(trans hds0 i) d) b0) \to (let TMP_73 \def (\lambda (e2: C).(let TMP_72 \def 
-(match b0 with [true \Rightarrow (let TMP_68 \def (trans hds0 i) in (let 
-TMP_69 \def (S TMP_68) in (let TMP_70 \def (minus d TMP_69) in (let TMP_71 
-\def (ptrans hds0 i) in (PCons h TMP_70 TMP_71))))) | false \Rightarrow 
-(ptrans hds0 i)]) in (drop1 TMP_72 e2 e1))) in (let TMP_84 \def (\lambda (e2: 
-C).(let TMP_75 \def (match b0 with [true \Rightarrow (trans hds0 i) | false 
-\Rightarrow (let TMP_74 \def (trans hds0 i) in (plus TMP_74 h))]) in (let 
-TMP_76 \def (Bind b) in (let TMP_81 \def (match b0 with [true \Rightarrow 
-(let TMP_77 \def (trans hds0 i) in (let TMP_78 \def (S TMP_77) in (let TMP_79 
-\def (minus d TMP_78) in (let TMP_80 \def (ptrans hds0 i) in (PCons h TMP_79 
-TMP_80))))) | false \Rightarrow (ptrans hds0 i)]) in (let TMP_82 \def (lift1 
-TMP_81 v) in (let TMP_83 \def (CHead e2 TMP_76 TMP_82) in (getl TMP_75 c2 
-TMP_83))))))) in (ex2 C TMP_73 TMP_84))))) in (let TMP_170 \def (\lambda (H5: 
-(eq bool (blt (trans hds0 i) d) true)).(let H_x0 \def (H c1 x H4 b e1 v i H1) 
-in (let H6 \def H_x0 in (let TMP_87 \def (\lambda (e2: C).(let TMP_86 \def 
-(ptrans hds0 i) in (drop1 TMP_86 e2 e1))) in (let TMP_93 \def (\lambda (e2: 
-C).(let TMP_88 \def (trans hds0 i) in (let TMP_89 \def (Bind b) in (let 
-TMP_90 \def (ptrans hds0 i) in (let TMP_91 \def (lift1 TMP_90 v) in (let 
-TMP_92 \def (CHead e2 TMP_89 TMP_91) in (getl TMP_88 x TMP_92))))))) in (let 
-TMP_99 \def (\lambda (e2: C).(let TMP_94 \def (trans hds0 i) in (let TMP_95 
-\def (S TMP_94) in (let TMP_96 \def (minus d TMP_95) in (let TMP_97 \def 
-(ptrans hds0 i) in (let TMP_98 \def (PCons h TMP_96 TMP_97) in (drop1 TMP_98 
-e2 e1))))))) in (let TMP_109 \def (\lambda (e2: C).(let TMP_100 \def (trans 
-hds0 i) in (let TMP_101 \def (Bind b) in (let TMP_102 \def (trans hds0 i) in 
-(let TMP_103 \def (S TMP_102) in (let TMP_104 \def (minus d TMP_103) in (let 
-TMP_105 \def (ptrans hds0 i) in (let TMP_106 \def (PCons h TMP_104 TMP_105) 
-in (let TMP_107 \def (lift1 TMP_106 v) in (let TMP_108 \def (CHead e2 TMP_101 
-TMP_107) in (getl TMP_100 c2 TMP_108))))))))))) in (let TMP_110 \def (ex2 C 
-TMP_99 TMP_109) in (let TMP_169 \def (\lambda (x0: C).(\lambda (H7: (drop1 
-(ptrans hds0 i) x0 e1)).(\lambda (H8: (getl (trans hds0 i) x (CHead x0 (Bind 
-b) (lift1 (ptrans hds0 i) v)))).(let TMP_111 \def (trans hds0 i) in (let 
-TMP_112 \def (trans hds0 i) in (let TMP_113 \def (blt_lt d TMP_112 H5) in 
-(let TMP_114 \def (ptrans hds0 i) in (let TMP_115 \def (lift1 TMP_114 v) in 
-(let H_x1 \def (drop_getl_trans_lt TMP_111 d TMP_113 c2 x h H3 b x0 TMP_115 
-H8) in (let H9 \def H_x1 in (let TMP_125 \def (\lambda (e2: C).(let TMP_116 
-\def (trans hds0 i) in (let TMP_117 \def (Bind b) in (let TMP_118 \def (trans 
-hds0 i) in (let TMP_119 \def (S TMP_118) in (let TMP_120 \def (minus d 
-TMP_119) in (let TMP_121 \def (ptrans hds0 i) in (let TMP_122 \def (lift1 
-TMP_121 v) in (let TMP_123 \def (lift h TMP_120 TMP_122) in (let TMP_124 \def 
-(CHead e2 TMP_117 TMP_123) in (getl TMP_116 c2 TMP_124))))))))))) in (let 
-TMP_129 \def (\lambda (e2: C).(let TMP_126 \def (trans hds0 i) in (let 
-TMP_127 \def (S TMP_126) in (let TMP_128 \def (minus d TMP_127) in (drop h 
-TMP_128 e2 x0))))) in (let TMP_135 \def (\lambda (e2: C).(let TMP_130 \def 
-(trans hds0 i) in (let TMP_131 \def (S TMP_130) in (let TMP_132 \def (minus d 
-TMP_131) in (let TMP_133 \def (ptrans hds0 i) in (let TMP_134 \def (PCons h 
-TMP_132 TMP_133) in (drop1 TMP_134 e2 e1))))))) in (let TMP_145 \def (\lambda 
-(e2: C).(let TMP_136 \def (trans hds0 i) in (let TMP_137 \def (Bind b) in 
-(let TMP_138 \def (trans hds0 i) in (let TMP_139 \def (S TMP_138) in (let 
-TMP_140 \def (minus d TMP_139) in (let TMP_141 \def (ptrans hds0 i) in (let 
-TMP_142 \def (PCons h TMP_140 TMP_141) in (let TMP_143 \def (lift1 TMP_142 v) 
-in (let TMP_144 \def (CHead e2 TMP_137 TMP_143) in (getl TMP_136 c2 
-TMP_144))))))))))) in (let TMP_146 \def (ex2 C TMP_135 TMP_145) in (let 
-TMP_168 \def (\lambda (x1: C).(\lambda (H10: (getl (trans hds0 i) c2 (CHead 
-x1 (Bind b) (lift h (minus d (S (trans hds0 i))) (lift1 (ptrans hds0 i) 
-v))))).(\lambda (H11: (drop h (minus d (S (trans hds0 i))) x1 x0)).(let 
-TMP_152 \def (\lambda (e2: C).(let TMP_147 \def (trans hds0 i) in (let 
-TMP_148 \def (S TMP_147) in (let TMP_149 \def (minus d TMP_148) in (let 
-TMP_150 \def (ptrans hds0 i) in (let TMP_151 \def (PCons h TMP_149 TMP_150) 
-in (drop1 TMP_151 e2 e1))))))) in (let TMP_162 \def (\lambda (e2: C).(let 
-TMP_153 \def (trans hds0 i) in (let TMP_154 \def (Bind b) in (let TMP_155 
-\def (trans hds0 i) in (let TMP_156 \def (S TMP_155) in (let TMP_157 \def 
-(minus d TMP_156) in (let TMP_158 \def (ptrans hds0 i) in (let TMP_159 \def 
-(PCons h TMP_157 TMP_158) in (let TMP_160 \def (lift1 TMP_159 v) in (let 
-TMP_161 \def (CHead e2 TMP_154 TMP_160) in (getl TMP_153 c2 
-TMP_161))))))))))) in (let TMP_163 \def (trans hds0 i) in (let TMP_164 \def 
-(S TMP_163) in (let TMP_165 \def (minus d TMP_164) in (let TMP_166 \def 
-(ptrans hds0 i) in (let TMP_167 \def (drop1_cons x1 x0 h TMP_165 H11 e1 
-TMP_166 H7) in (ex_intro2 C TMP_152 TMP_162 x1 TMP_167 H10))))))))))) in 
-(ex2_ind C TMP_125 TMP_129 TMP_146 TMP_168 H9))))))))))))))))) in (ex2_ind C 
-TMP_87 TMP_93 TMP_110 TMP_169 H6)))))))))) in (let TMP_207 \def (\lambda (H5: 
-(eq bool (blt (trans hds0 i) d) false)).(let H_x0 \def (H c1 x H4 b e1 v i 
-H1) in (let H6 \def H_x0 in (let TMP_172 \def (\lambda (e2: C).(let TMP_171 
-\def (ptrans hds0 i) in (drop1 TMP_171 e2 e1))) in (let TMP_178 \def (\lambda 
-(e2: C).(let TMP_173 \def (trans hds0 i) in (let TMP_174 \def (Bind b) in 
-(let TMP_175 \def (ptrans hds0 i) in (let TMP_176 \def (lift1 TMP_175 v) in 
-(let TMP_177 \def (CHead e2 TMP_174 TMP_176) in (getl TMP_173 x 
-TMP_177))))))) in (let TMP_180 \def (\lambda (e2: C).(let TMP_179 \def 
-(ptrans hds0 i) in (drop1 TMP_179 e2 e1))) in (let TMP_187 \def (\lambda (e2: 
-C).(let TMP_181 \def (trans hds0 i) in (let TMP_182 \def (plus TMP_181 h) in 
-(let TMP_183 \def (Bind b) in (let TMP_184 \def (ptrans hds0 i) in (let 
-TMP_185 \def (lift1 TMP_184 v) in (let TMP_186 \def (CHead e2 TMP_183 
-TMP_185) in (getl TMP_182 c2 TMP_186)))))))) in (let TMP_188 \def (ex2 C 
-TMP_180 TMP_187) in (let TMP_206 \def (\lambda (x0: C).(\lambda (H7: (drop1 
-(ptrans hds0 i) x0 e1)).(\lambda (H8: (getl (trans hds0 i) x (CHead x0 (Bind 
-b) (lift1 (ptrans hds0 i) v)))).(let TMP_189 \def (trans hds0 i) in (let 
-TMP_190 \def (Bind b) in (let TMP_191 \def (ptrans hds0 i) in (let TMP_192 
-\def (lift1 TMP_191 v) in (let TMP_193 \def (CHead x0 TMP_190 TMP_192) in 
-(let H9 \def (drop_getl_trans_ge TMP_189 c2 x d h H3 TMP_193 H8) in (let 
-TMP_195 \def (\lambda (e2: C).(let TMP_194 \def (ptrans hds0 i) in (drop1 
-TMP_194 e2 e1))) in (let TMP_202 \def (\lambda (e2: C).(let TMP_196 \def 
-(trans hds0 i) in (let TMP_197 \def (plus TMP_196 h) in (let TMP_198 \def 
-(Bind b) in (let TMP_199 \def (ptrans hds0 i) in (let TMP_200 \def (lift1 
-TMP_199 v) in (let TMP_201 \def (CHead e2 TMP_198 TMP_200) in (getl TMP_197 
-c2 TMP_201)))))))) in (let TMP_203 \def (trans hds0 i) in (let TMP_204 \def 
-(bge_le d TMP_203 H5) in (let TMP_205 \def (H9 TMP_204) in (ex_intro2 C 
-TMP_195 TMP_202 x0 H7 TMP_205))))))))))))))) in (ex2_ind C TMP_172 TMP_178 
-TMP_188 TMP_206 H6)))))))))) in (bool_ind TMP_85 TMP_170 TMP_207 x_x))))) in 
-(xinduction bool TMP_49 TMP_67 TMP_208)))))))) in (ex2_ind C TMP_22 TMP_23 
-TMP_47 TMP_209 H2))))))))))))))))))))) in (PList_ind TMP_9 TMP_21 TMP_210 
-hds)))).
+(plus (trans hds0 i) h) c2 (CHead e2 (Bind b) (lift1 (ptrans hds0 i) v))))) 
+(\lambda (x0: C).(\lambda (H7: (drop1 (ptrans hds0 i) x0 e1)).(\lambda (H8: 
+(getl (trans hds0 i) x (CHead x0 (Bind b) (lift1 (ptrans hds0 i) v)))).(let 
+H9 \def (drop_getl_trans_ge (trans hds0 i) c2 x d h H3 (CHead x0 (Bind b) 
+(lift1 (ptrans hds0 i) v)) H8) in (ex_intro2 C (\lambda (e2: C).(drop1 
+(ptrans hds0 i) e2 e1)) (\lambda (e2: C).(getl (plus (trans hds0 i) h) c2 
+(CHead e2 (Bind b) (lift1 (ptrans hds0 i) v)))) x0 H7 (H9 (bge_le d (trans 
+hds0 i) H5))))))) H6)))) x_x)))))) H2))))))))))))))) hds).
 
index bab26365fa7dcb6e2186cae2c845d0f500589d8b..94e4a50c18ff77fe11df1efd0cd94be42113d465 100644 (file)
@@ -25,39 +25,23 @@ theorem drop1_skip_bind:
 C).(\forall (u: T).((drop1 hds c e) \to (drop1 (Ss hds) (CHead c (Bind b) 
 (lift1 hds u)) (CHead e (Bind b) u)))))))
 \def
- \lambda (b: B).(\lambda (e: C).(\lambda (hds: PList).(let TMP_7 \def 
-(\lambda (p: PList).(\forall (c: C).(\forall (u: T).((drop1 p c e) \to (let 
-TMP_1 \def (Ss p) in (let TMP_2 \def (Bind b) in (let TMP_3 \def (lift1 p u) 
-in (let TMP_4 \def (CHead c TMP_2 TMP_3) in (let TMP_5 \def (Bind b) in (let 
-TMP_6 \def (CHead e TMP_5 u) in (drop1 TMP_1 TMP_4 TMP_6))))))))))) in (let 
-TMP_16 \def (\lambda (c: C).(\lambda (u: T).(\lambda (H: (drop1 PNil c 
-e)).(let H_y \def (drop1_gen_pnil c e H) in (let TMP_12 \def (\lambda (c0: 
-C).(let TMP_8 \def (Bind b) in (let TMP_9 \def (CHead c0 TMP_8 u) in (let 
-TMP_10 \def (Bind b) in (let TMP_11 \def (CHead e TMP_10 u) in (drop1 PNil 
-TMP_9 TMP_11)))))) in (let TMP_13 \def (Bind b) in (let TMP_14 \def (CHead e 
-TMP_13 u) in (let TMP_15 \def (drop1_nil TMP_14) in (eq_ind_r C e TMP_12 
-TMP_15 c H_y))))))))) in (let TMP_44 \def (\lambda (n: nat).(\lambda (n0: 
-nat).(\lambda (p: PList).(\lambda (H: ((\forall (c: C).(\forall (u: 
-T).((drop1 p c e) \to (drop1 (Ss p) (CHead c (Bind b) (lift1 p u)) (CHead e 
-(Bind b) u))))))).(\lambda (c: C).(\lambda (u: T).(\lambda (H0: (drop1 (PCons 
-n n0 p) c e)).(let H_x \def (drop1_gen_pcons c e p n n0 H0) in (let H1 \def 
-H_x in (let TMP_17 \def (\lambda (c2: C).(drop n n0 c c2)) in (let TMP_18 
-\def (\lambda (c2: C).(drop1 p c2 e)) in (let TMP_19 \def (S n0) in (let 
-TMP_20 \def (Ss p) in (let TMP_21 \def (PCons n TMP_19 TMP_20) in (let TMP_22 
-\def (Bind b) in (let TMP_23 \def (lift1 p u) in (let TMP_24 \def (lift n n0 
-TMP_23) in (let TMP_25 \def (CHead c TMP_22 TMP_24) in (let TMP_26 \def (Bind 
-b) in (let TMP_27 \def (CHead e TMP_26 u) in (let TMP_28 \def (drop1 TMP_21 
-TMP_25 TMP_27) in (let TMP_43 \def (\lambda (x: C).(\lambda (H2: (drop n n0 c 
-x)).(\lambda (H3: (drop1 p x e)).(let TMP_29 \def (Bind b) in (let TMP_30 
-\def (lift1 p u) in (let TMP_31 \def (lift n n0 TMP_30) in (let TMP_32 \def 
-(CHead c TMP_29 TMP_31) in (let TMP_33 \def (Bind b) in (let TMP_34 \def 
-(lift1 p u) in (let TMP_35 \def (CHead x TMP_33 TMP_34) in (let TMP_36 \def 
-(S n0) in (let TMP_37 \def (lift1 p u) in (let TMP_38 \def (drop_skip_bind n 
-n0 c x H2 b TMP_37) in (let TMP_39 \def (Bind b) in (let TMP_40 \def (CHead e 
-TMP_39 u) in (let TMP_41 \def (Ss p) in (let TMP_42 \def (H x u H3) in 
-(drop1_cons TMP_32 TMP_35 n TMP_36 TMP_38 TMP_40 TMP_41 
-TMP_42)))))))))))))))))) in (ex2_ind C TMP_17 TMP_18 TMP_28 TMP_43 
-H1))))))))))))))))))))))) in (PList_ind TMP_7 TMP_16 TMP_44 hds)))))).
+ \lambda (b: B).(\lambda (e: C).(\lambda (hds: PList).(PList_ind (\lambda (p: 
+PList).(\forall (c: C).(\forall (u: T).((drop1 p c e) \to (drop1 (Ss p) 
+(CHead c (Bind b) (lift1 p u)) (CHead e (Bind b) u)))))) (\lambda (c: 
+C).(\lambda (u: T).(\lambda (H: (drop1 PNil c e)).(let H_y \def 
+(drop1_gen_pnil c e H) in (eq_ind_r C e (\lambda (c0: C).(drop1 PNil (CHead 
+c0 (Bind b) u) (CHead e (Bind b) u))) (drop1_nil (CHead e (Bind b) u)) c 
+H_y))))) (\lambda (n: nat).(\lambda (n0: nat).(\lambda (p: PList).(\lambda 
+(H: ((\forall (c: C).(\forall (u: T).((drop1 p c e) \to (drop1 (Ss p) (CHead 
+c (Bind b) (lift1 p u)) (CHead e (Bind b) u))))))).(\lambda (c: C).(\lambda 
+(u: T).(\lambda (H0: (drop1 (PCons n n0 p) c e)).(let H_x \def 
+(drop1_gen_pcons c e p n n0 H0) in (let H1 \def H_x in (ex2_ind C (\lambda 
+(c2: C).(drop n n0 c c2)) (\lambda (c2: C).(drop1 p c2 e)) (drop1 (PCons n (S 
+n0) (Ss p)) (CHead c (Bind b) (lift n n0 (lift1 p u))) (CHead e (Bind b) u)) 
+(\lambda (x: C).(\lambda (H2: (drop n n0 c x)).(\lambda (H3: (drop1 p x 
+e)).(drop1_cons (CHead c (Bind b) (lift n n0 (lift1 p u))) (CHead x (Bind b) 
+(lift1 p u)) n (S n0) (drop_skip_bind n n0 c x H2 b (lift1 p u)) (CHead e 
+(Bind b) u) (Ss p) (H x u H3))))) H1)))))))))) hds))).
 
 theorem drop1_cons_tail:
  \forall (c2: C).(\forall (c3: C).(\forall (h: nat).(\forall (d: nat).((drop 
@@ -65,50 +49,40 @@ h d c2 c3) \to (\forall (hds: PList).(\forall (c1: C).((drop1 hds c1 c2) \to
 (drop1 (PConsTail hds h d) c1 c3))))))))
 \def
  \lambda (c2: C).(\lambda (c3: C).(\lambda (h: nat).(\lambda (d: 
-nat).(\lambda (H: (drop h d c2 c3)).(\lambda (hds: PList).(let TMP_2 \def 
-(\lambda (p: PList).(\forall (c1: C).((drop1 p c1 c2) \to (let TMP_1 \def 
-(PConsTail p h d) in (drop1 TMP_1 c1 c3))))) in (let TMP_7 \def (\lambda (c1: 
-C).(\lambda (H0: (drop1 PNil c1 c2)).(let H_y \def (drop1_gen_pnil c1 c2 H0) 
-in (let TMP_4 \def (\lambda (c: C).(let TMP_3 \def (PCons h d PNil) in (drop1 
-TMP_3 c c3))) in (let TMP_5 \def (drop1_nil c3) in (let TMP_6 \def 
-(drop1_cons c2 c3 h d H c3 PNil TMP_5) in (eq_ind_r C c2 TMP_4 TMP_6 c1 
-H_y))))))) in (let TMP_16 \def (\lambda (n: nat).(\lambda (n0: nat).(\lambda 
-(p: PList).(\lambda (H0: ((\forall (c1: C).((drop1 p c1 c2) \to (drop1 
-(PConsTail p h d) c1 c3))))).(\lambda (c1: C).(\lambda (H1: (drop1 (PCons n 
-n0 p) c1 c2)).(let H_x \def (drop1_gen_pcons c1 c2 p n n0 H1) in (let H2 \def 
-H_x in (let TMP_8 \def (\lambda (c4: C).(drop n n0 c1 c4)) in (let TMP_9 \def 
-(\lambda (c4: C).(drop1 p c4 c2)) in (let TMP_10 \def (PConsTail p h d) in 
-(let TMP_11 \def (PCons n n0 TMP_10) in (let TMP_12 \def (drop1 TMP_11 c1 c3) 
-in (let TMP_15 \def (\lambda (x: C).(\lambda (H3: (drop n n0 c1 x)).(\lambda 
-(H4: (drop1 p x c2)).(let TMP_13 \def (PConsTail p h d) in (let TMP_14 \def 
-(H0 x H4) in (drop1_cons c1 x n n0 H3 c3 TMP_13 TMP_14)))))) in (ex2_ind C 
-TMP_8 TMP_9 TMP_12 TMP_15 H2))))))))))))))) in (PList_ind TMP_2 TMP_7 TMP_16 
-hds))))))))).
+nat).(\lambda (H: (drop h d c2 c3)).(\lambda (hds: PList).(PList_ind (\lambda 
+(p: PList).(\forall (c1: C).((drop1 p c1 c2) \to (drop1 (PConsTail p h d) c1 
+c3)))) (\lambda (c1: C).(\lambda (H0: (drop1 PNil c1 c2)).(let H_y \def 
+(drop1_gen_pnil c1 c2 H0) in (eq_ind_r C c2 (\lambda (c: C).(drop1 (PCons h d 
+PNil) c c3)) (drop1_cons c2 c3 h d H c3 PNil (drop1_nil c3)) c1 H_y)))) 
+(\lambda (n: nat).(\lambda (n0: nat).(\lambda (p: PList).(\lambda (H0: 
+((\forall (c1: C).((drop1 p c1 c2) \to (drop1 (PConsTail p h d) c1 
+c3))))).(\lambda (c1: C).(\lambda (H1: (drop1 (PCons n n0 p) c1 c2)).(let H_x 
+\def (drop1_gen_pcons c1 c2 p n n0 H1) in (let H2 \def H_x in (ex2_ind C 
+(\lambda (c4: C).(drop n n0 c1 c4)) (\lambda (c4: C).(drop1 p c4 c2)) (drop1 
+(PCons n n0 (PConsTail p h d)) c1 c3) (\lambda (x: C).(\lambda (H3: (drop n 
+n0 c1 x)).(\lambda (H4: (drop1 p x c2)).(drop1_cons c1 x n n0 H3 c3 
+(PConsTail p h d) (H0 x H4))))) H2))))))))) hds)))))).
 
 theorem drop1_trans:
  \forall (is1: PList).(\forall (c1: C).(\forall (c0: C).((drop1 is1 c1 c0) 
 \to (\forall (is2: PList).(\forall (c2: C).((drop1 is2 c0 c2) \to (drop1 
 (papp is1 is2) c1 c2)))))))
 \def
- \lambda (is1: PList).(let TMP_2 \def (\lambda (p: PList).(\forall (c1: 
+ \lambda (is1: PList).(PList_ind (\lambda (p: PList).(\forall (c1: 
 C).(\forall (c0: C).((drop1 p c1 c0) \to (\forall (is2: PList).(\forall (c2: 
-C).((drop1 is2 c0 c2) \to (let TMP_1 \def (papp p is2) in (drop1 TMP_1 c1 
-c2))))))))) in (let TMP_4 \def (\lambda (c1: C).(\lambda (c0: C).(\lambda (H: 
-(drop1 PNil c1 c0)).(\lambda (is2: PList).(\lambda (c2: C).(\lambda (H0: 
-(drop1 is2 c0 c2)).(let H_y \def (drop1_gen_pnil c1 c0 H) in (let TMP_3 \def 
-(\lambda (c: C).(drop1 is2 c c2)) in (let H1 \def (eq_ind_r C c0 TMP_3 H0 c1 
-H_y) in H1))))))))) in (let TMP_13 \def (\lambda (n: nat).(\lambda (n0: 
+C).((drop1 is2 c0 c2) \to (drop1 (papp p is2) c1 c2)))))))) (\lambda (c1: 
+C).(\lambda (c0: C).(\lambda (H: (drop1 PNil c1 c0)).(\lambda (is2: 
+PList).(\lambda (c2: C).(\lambda (H0: (drop1 is2 c0 c2)).(let H_y \def 
+(drop1_gen_pnil c1 c0 H) in (let H1 \def (eq_ind_r C c0 (\lambda (c: 
+C).(drop1 is2 c c2)) H0 c1 H_y) in H1)))))))) (\lambda (n: nat).(\lambda (n0: 
 nat).(\lambda (p: PList).(\lambda (H: ((\forall (c1: C).(\forall (c0: 
 C).((drop1 p c1 c0) \to (\forall (is2: PList).(\forall (c2: C).((drop1 is2 c0 
 c2) \to (drop1 (papp p is2) c1 c2))))))))).(\lambda (c1: C).(\lambda (c0: 
 C).(\lambda (H0: (drop1 (PCons n n0 p) c1 c0)).(\lambda (is2: PList).(\lambda 
 (c2: C).(\lambda (H1: (drop1 is2 c0 c2)).(let H_x \def (drop1_gen_pcons c1 c0 
-p n n0 H0) in (let H2 \def H_x in (let TMP_5 \def (\lambda (c3: C).(drop n n0 
-c1 c3)) in (let TMP_6 \def (\lambda (c3: C).(drop1 p c3 c0)) in (let TMP_7 
-\def (papp p is2) in (let TMP_8 \def (PCons n n0 TMP_7) in (let TMP_9 \def 
-(drop1 TMP_8 c1 c2) in (let TMP_12 \def (\lambda (x: C).(\lambda (H3: (drop n 
-n0 c1 x)).(\lambda (H4: (drop1 p x c0)).(let TMP_10 \def (papp p is2) in (let 
-TMP_11 \def (H x c0 H4 is2 c2 H1) in (drop1_cons c1 x n n0 H3 c2 TMP_10 
-TMP_11)))))) in (ex2_ind C TMP_5 TMP_6 TMP_9 TMP_12 H2))))))))))))))))))) in 
-(PList_ind TMP_2 TMP_4 TMP_13 is1)))).
+p n n0 H0) in (let H2 \def H_x in (ex2_ind C (\lambda (c3: C).(drop n n0 c1 
+c3)) (\lambda (c3: C).(drop1 p c3 c0)) (drop1 (PCons n n0 (papp p is2)) c1 
+c2) (\lambda (x: C).(\lambda (H3: (drop n n0 c1 x)).(\lambda (H4: (drop1 p x 
+c0)).(drop1_cons c1 x n n0 H3 c2 (papp p is2) (H x c0 H4 is2 c2 H1))))) 
+H2))))))))))))) is1).
 
index f7ef4265b04c122a3b855e044853f1b4a18f99c5..7c7cc2888f9af97a5919474f8864555aaf11b1cc 100644 (file)
@@ -23,7 +23,6 @@ A).(\forall (a2: A).((leqz a1 a2) \to ((P a1 a2) \to (\forall (a3:
 A).(\forall (a4: A).((leqz a3 a4) \to ((P a3 a4) \to (P (AHead a1 a3) (AHead 
 a2 a4))))))))))) (a: A) (a0: A) (l: leqz a a0) on l: P a a0 \def match l with 
 [(leqz_sort h1 h2 n1 n2 e) \Rightarrow (f h1 h2 n1 n2 e) | (leqz_head a1 a2 
-l0 a3 a4 l1) \Rightarrow (let TMP_1 \def ((leqz_ind P f f0) a1 a2 l0) in (let 
-TMP_2 \def ((leqz_ind P f f0) a3 a4 l1) in (f0 a1 a2 l0 TMP_1 a3 a4 l1 
-TMP_2)))].
+l0 a3 a4 l1) \Rightarrow (f0 a1 a2 l0 ((leqz_ind P f f0) a1 a2 l0) a3 a4 l1 
+((leqz_ind P f f0) a3 a4 l1))].
 
index 2f2e8e11e1565c3fa6b09148a35961107a03660b..1aa405d62efd642721680a1105d3040f2d040efd 100644 (file)
@@ -24,361 +24,165 @@ theorem aplus_gz_le:
  \forall (k: nat).(\forall (h: nat).(\forall (n: nat).((le h k) \to (eq A 
 (aplus gz (ASort h n) k) (ASort O (plus (minus k h) n))))))
 \def
- \lambda (k: nat).(let TMP_6 \def (\lambda (n: nat).(\forall (h: 
-nat).(\forall (n0: nat).((le h n) \to (let TMP_1 \def (ASort h n0) in (let 
-TMP_2 \def (aplus gz TMP_1 n) in (let TMP_3 \def (minus n h) in (let TMP_4 
-\def (plus TMP_3 n0) in (let TMP_5 \def (ASort O TMP_4) in (eq A TMP_2 
-TMP_5)))))))))) in (let TMP_12 \def (\lambda (h: nat).(\lambda (n: 
-nat).(\lambda (H: (le h O)).(let H_y \def (le_n_O_eq h H) in (let TMP_9 \def 
-(\lambda (n0: nat).(let TMP_7 \def (ASort n0 n) in (let TMP_8 \def (ASort O 
-n) in (eq A TMP_7 TMP_8)))) in (let TMP_10 \def (ASort O n) in (let TMP_11 
-\def (refl_equal A TMP_10) in (eq_ind nat O TMP_9 TMP_11 h H_y)))))))) in 
-(let TMP_103 \def (\lambda (k0: nat).(\lambda (IH: ((\forall (h: 
-nat).(\forall (n: nat).((le h k0) \to (eq A (aplus gz (ASort h n) k0) (ASort 
-O (plus (minus k0 h) n)))))))).(\lambda (h: nat).(let TMP_19 \def (\lambda 
-(n: nat).(\forall (n0: nat).((le n (S k0)) \to (let TMP_13 \def (ASort n n0) 
-in (let TMP_14 \def (aplus gz TMP_13 k0) in (let TMP_15 \def (asucc gz 
-TMP_14) in (let TMP_16 \def (match n with [O \Rightarrow (S k0) | (S l) 
-\Rightarrow (minus k0 l)]) in (let TMP_17 \def (plus TMP_16 n0) in (let 
-TMP_18 \def (ASort O TMP_17) in (eq A TMP_15 TMP_18)))))))))) in (let TMP_72 
-\def (\lambda (n: nat).(\lambda (_: (le O (S k0))).(let TMP_20 \def (ASort O 
-n) in (let TMP_21 \def (asucc gz TMP_20) in (let TMP_22 \def (aplus gz TMP_21 
-k0) in (let TMP_26 \def (\lambda (a: A).(let TMP_23 \def (plus k0 n) in (let 
-TMP_24 \def (S TMP_23) in (let TMP_25 \def (ASort O TMP_24) in (eq A a 
-TMP_25))))) in (let TMP_27 \def (minus k0 O) in (let TMP_28 \def (S n) in 
-(let TMP_29 \def (plus TMP_27 TMP_28) in (let TMP_30 \def (ASort O TMP_29) in 
-(let TMP_34 \def (\lambda (a: A).(let TMP_31 \def (plus k0 n) in (let TMP_32 
-\def (S TMP_31) in (let TMP_33 \def (ASort O TMP_32) in (eq A a TMP_33))))) 
-in (let TMP_41 \def (\lambda (n0: nat).(let TMP_35 \def (S n) in (let TMP_36 
-\def (plus n0 TMP_35) in (let TMP_37 \def (ASort O TMP_36) in (let TMP_38 
-\def (plus k0 n) in (let TMP_39 \def (S TMP_38) in (let TMP_40 \def (ASort O 
-TMP_39) in (eq A TMP_37 TMP_40)))))))) in (let TMP_42 \def (plus k0 n) in 
-(let TMP_43 \def (S TMP_42) in (let TMP_48 \def (\lambda (n0: nat).(let 
-TMP_44 \def (ASort O n0) in (let TMP_45 \def (plus k0 n) in (let TMP_46 \def 
-(S TMP_45) in (let TMP_47 \def (ASort O TMP_46) in (eq A TMP_44 TMP_47)))))) 
-in (let TMP_49 \def (plus k0 n) in (let TMP_50 \def (S TMP_49) in (let TMP_51 
-\def (ASort O TMP_50) in (let TMP_52 \def (refl_equal A TMP_51) in (let 
-TMP_53 \def (S n) in (let TMP_54 \def (plus k0 TMP_53) in (let TMP_55 \def 
-(plus_n_Sm k0 n) in (let TMP_56 \def (eq_ind nat TMP_43 TMP_48 TMP_52 TMP_54 
-TMP_55) in (let TMP_57 \def (minus k0 O) in (let TMP_58 \def (minus_n_O k0) 
-in (let TMP_59 \def (eq_ind nat k0 TMP_41 TMP_56 TMP_57 TMP_58) in (let 
-TMP_60 \def (S n) in (let TMP_61 \def (ASort O TMP_60) in (let TMP_62 \def 
-(aplus gz TMP_61 k0) in (let TMP_63 \def (S n) in (let TMP_64 \def (le_O_n 
-k0) in (let TMP_65 \def (IH O TMP_63 TMP_64) in (let TMP_66 \def (eq_ind_r A 
-TMP_30 TMP_34 TMP_59 TMP_62 TMP_65) in (let TMP_67 \def (ASort O n) in (let 
-TMP_68 \def (aplus gz TMP_67 k0) in (let TMP_69 \def (asucc gz TMP_68) in 
-(let TMP_70 \def (ASort O n) in (let TMP_71 \def (aplus_asucc gz k0 TMP_70) 
-in (eq_ind A TMP_22 TMP_26 TMP_66 TMP_69 
-TMP_71))))))))))))))))))))))))))))))))))))))) in (let TMP_102 \def (\lambda 
-(n: nat).(\lambda (_: ((\forall (n0: nat).((le n (S k0)) \to (eq A (asucc gz 
+ \lambda (k: nat).(nat_ind (\lambda (n: nat).(\forall (h: nat).(\forall (n0: 
+nat).((le h n) \to (eq A (aplus gz (ASort h n0) n) (ASort O (plus (minus n h) 
+n0))))))) (\lambda (h: nat).(\lambda (n: nat).(\lambda (H: (le h O)).(let H_y 
+\def (le_n_O_eq h H) in (eq_ind nat O (\lambda (n0: nat).(eq A (ASort n0 n) 
+(ASort O n))) (refl_equal A (ASort O n)) h H_y))))) (\lambda (k0: 
+nat).(\lambda (IH: ((\forall (h: nat).(\forall (n: nat).((le h k0) \to (eq A 
+(aplus gz (ASort h n) k0) (ASort O (plus (minus k0 h) n)))))))).(\lambda (h: 
+nat).(nat_ind (\lambda (n: nat).(\forall (n0: nat).((le n (S k0)) \to (eq A 
+(asucc gz (aplus gz (ASort n n0) k0)) (ASort O (plus (match n with [O 
+\Rightarrow (S k0) | (S l) \Rightarrow (minus k0 l)]) n0)))))) (\lambda (n: 
+nat).(\lambda (_: (le O (S k0))).(eq_ind A (aplus gz (asucc gz (ASort O n)) 
+k0) (\lambda (a: A).(eq A a (ASort O (S (plus k0 n))))) (eq_ind_r A (ASort O 
+(plus (minus k0 O) (S n))) (\lambda (a: A).(eq A a (ASort O (S (plus k0 
+n))))) (eq_ind nat k0 (\lambda (n0: nat).(eq A (ASort O (plus n0 (S n))) 
+(ASort O (S (plus k0 n))))) (eq_ind nat (S (plus k0 n)) (\lambda (n0: 
+nat).(eq A (ASort O n0) (ASort O (S (plus k0 n))))) (refl_equal A (ASort O (S 
+(plus k0 n)))) (plus k0 (S n)) (plus_n_Sm k0 n)) (minus k0 O) (minus_n_O k0)) 
+(aplus gz (ASort O (S n)) k0) (IH O (S n) (le_O_n k0))) (asucc gz (aplus gz 
+(ASort O n) k0)) (aplus_asucc gz k0 (ASort O n))))) (\lambda (n: 
+nat).(\lambda (_: ((\forall (n0: nat).((le n (S k0)) \to (eq A (asucc gz 
 (aplus gz (ASort n n0) k0)) (ASort O (plus (match n with [O \Rightarrow (S 
 k0) | (S l) \Rightarrow (minus k0 l)]) n0))))))).(\lambda (n0: nat).(\lambda 
-(H0: (le (S n) (S k0))).(let H_y \def (le_S_n n k0 H0) in (let TMP_73 \def 
-(ASort n n0) in (let TMP_74 \def (aplus gz TMP_73 k0) in (let TMP_79 \def 
-(\lambda (a: A).(let TMP_75 \def (S n) in (let TMP_76 \def (ASort TMP_75 n0) 
-in (let TMP_77 \def (aplus gz TMP_76 k0) in (let TMP_78 \def (asucc gz 
-TMP_77) in (eq A TMP_78 a)))))) in (let TMP_80 \def (S n) in (let TMP_81 \def 
-(ASort TMP_80 n0) in (let TMP_82 \def (asucc gz TMP_81) in (let TMP_83 \def 
-(aplus gz TMP_82 k0) in (let TMP_86 \def (\lambda (a: A).(let TMP_84 \def 
-(ASort n n0) in (let TMP_85 \def (aplus gz TMP_84 k0) in (eq A a TMP_85)))) 
-in (let TMP_87 \def (ASort n n0) in (let TMP_88 \def (aplus gz TMP_87 k0) in 
-(let TMP_89 \def (refl_equal A TMP_88) in (let TMP_90 \def (S n) in (let 
-TMP_91 \def (ASort TMP_90 n0) in (let TMP_92 \def (aplus gz TMP_91 k0) in 
-(let TMP_93 \def (asucc gz TMP_92) in (let TMP_94 \def (S n) in (let TMP_95 
-\def (ASort TMP_94 n0) in (let TMP_96 \def (aplus_asucc gz k0 TMP_95) in (let 
-TMP_97 \def (eq_ind A TMP_83 TMP_86 TMP_89 TMP_93 TMP_96) in (let TMP_98 \def 
-(minus k0 n) in (let TMP_99 \def (plus TMP_98 n0) in (let TMP_100 \def (ASort 
-O TMP_99) in (let TMP_101 \def (IH n n0 H_y) in (eq_ind A TMP_74 TMP_79 
-TMP_97 TMP_100 TMP_101))))))))))))))))))))))))))))) in (nat_ind TMP_19 TMP_72 
-TMP_102 h))))))) in (nat_ind TMP_6 TMP_12 TMP_103 k)))).
+(H0: (le (S n) (S k0))).(let H_y \def (le_S_n n k0 H0) in (eq_ind A (aplus gz 
+(ASort n n0) k0) (\lambda (a: A).(eq A (asucc gz (aplus gz (ASort (S n) n0) 
+k0)) a)) (eq_ind A (aplus gz (asucc gz (ASort (S n) n0)) k0) (\lambda (a: 
+A).(eq A a (aplus gz (ASort n n0) k0))) (refl_equal A (aplus gz (ASort n n0) 
+k0)) (asucc gz (aplus gz (ASort (S n) n0) k0)) (aplus_asucc gz k0 (ASort (S 
+n) n0))) (ASort O (plus (minus k0 n) n0)) (IH n n0 H_y))))))) h)))) k).
 
 theorem aplus_gz_ge:
  \forall (n: nat).(\forall (k: nat).(\forall (h: nat).((le k h) \to (eq A 
 (aplus gz (ASort h n) k) (ASort (minus h k) n)))))
 \def
- \lambda (n: nat).(\lambda (k: nat).(let TMP_5 \def (\lambda (n0: 
-nat).(\forall (h: nat).((le n0 h) \to (let TMP_1 \def (ASort h n) in (let 
-TMP_2 \def (aplus gz TMP_1 n0) in (let TMP_3 \def (minus h n0) in (let TMP_4 
-\def (ASort TMP_3 n) in (eq A TMP_2 TMP_4)))))))) in (let TMP_13 \def 
-(\lambda (h: nat).(\lambda (_: (le O h)).(let TMP_8 \def (\lambda (n0: 
-nat).(let TMP_6 \def (ASort h n) in (let TMP_7 \def (ASort n0 n) in (eq A 
-TMP_6 TMP_7)))) in (let TMP_9 \def (ASort h n) in (let TMP_10 \def 
-(refl_equal A TMP_9) in (let TMP_11 \def (minus h O) in (let TMP_12 \def 
-(minus_n_O h) in (eq_ind nat h TMP_8 TMP_10 TMP_11 TMP_12)))))))) in (let 
-TMP_68 \def (\lambda (k0: nat).(\lambda (IH: ((\forall (h: nat).((le k0 h) 
-\to (eq A (aplus gz (ASort h n) k0) (ASort (minus h k0) n)))))).(\lambda (h: 
-nat).(let TMP_20 \def (\lambda (n0: nat).((le (S k0) n0) \to (let TMP_14 \def 
-(ASort n0 n) in (let TMP_15 \def (aplus gz TMP_14 k0) in (let TMP_16 \def 
-(asucc gz TMP_15) in (let TMP_17 \def (S k0) in (let TMP_18 \def (minus n0 
-TMP_17) in (let TMP_19 \def (ASort TMP_18 n) in (eq A TMP_16 TMP_19))))))))) 
-in (let TMP_38 \def (\lambda (H: (le (S k0) O)).(let TMP_22 \def (\lambda 
-(n0: nat).(let TMP_21 \def (S n0) in (eq nat O TMP_21))) in (let TMP_23 \def 
-(\lambda (n0: nat).(le k0 n0)) in (let TMP_24 \def (ASort O n) in (let TMP_25 
-\def (aplus gz TMP_24 k0) in (let TMP_26 \def (asucc gz TMP_25) in (let 
-TMP_27 \def (ASort O n) in (let TMP_28 \def (eq A TMP_26 TMP_27) in (let 
-TMP_36 \def (\lambda (x: nat).(\lambda (H0: (eq nat O (S x))).(\lambda (_: 
-(le k0 x)).(let TMP_29 \def (\lambda (ee: nat).(match ee with [O \Rightarrow 
-True | (S _) \Rightarrow False])) in (let TMP_30 \def (S x) in (let H2 \def 
-(eq_ind nat O TMP_29 I TMP_30 H0) in (let TMP_31 \def (ASort O n) in (let 
-TMP_32 \def (aplus gz TMP_31 k0) in (let TMP_33 \def (asucc gz TMP_32) in 
-(let TMP_34 \def (ASort O n) in (let TMP_35 \def (eq A TMP_33 TMP_34) in 
-(False_ind TMP_35 H2)))))))))))) in (let TMP_37 \def (le_gen_S k0 O H) in 
-(ex2_ind nat TMP_22 TMP_23 TMP_28 TMP_36 TMP_37))))))))))) in (let TMP_67 
-\def (\lambda (n0: nat).(\lambda (_: (((le (S k0) n0) \to (eq A (asucc gz 
-(aplus gz (ASort n0 n) k0)) (ASort (minus n0 (S k0)) n))))).(\lambda (H0: (le 
-(S k0) (S n0))).(let H_y \def (le_S_n k0 n0 H0) in (let TMP_39 \def (ASort n0 
-n) in (let TMP_40 \def (aplus gz TMP_39 k0) in (let TMP_45 \def (\lambda (a: 
-A).(let TMP_41 \def (S n0) in (let TMP_42 \def (ASort TMP_41 n) in (let 
-TMP_43 \def (aplus gz TMP_42 k0) in (let TMP_44 \def (asucc gz TMP_43) in (eq 
-A TMP_44 a)))))) in (let TMP_46 \def (S n0) in (let TMP_47 \def (ASort TMP_46 
-n) in (let TMP_48 \def (asucc gz TMP_47) in (let TMP_49 \def (aplus gz TMP_48 
-k0) in (let TMP_52 \def (\lambda (a: A).(let TMP_50 \def (ASort n0 n) in (let 
-TMP_51 \def (aplus gz TMP_50 k0) in (eq A a TMP_51)))) in (let TMP_53 \def 
-(ASort n0 n) in (let TMP_54 \def (aplus gz TMP_53 k0) in (let TMP_55 \def 
-(refl_equal A TMP_54) in (let TMP_56 \def (S n0) in (let TMP_57 \def (ASort 
-TMP_56 n) in (let TMP_58 \def (aplus gz TMP_57 k0) in (let TMP_59 \def (asucc 
-gz TMP_58) in (let TMP_60 \def (S n0) in (let TMP_61 \def (ASort TMP_60 n) in 
-(let TMP_62 \def (aplus_asucc gz k0 TMP_61) in (let TMP_63 \def (eq_ind A 
-TMP_49 TMP_52 TMP_55 TMP_59 TMP_62) in (let TMP_64 \def (minus n0 k0) in (let 
-TMP_65 \def (ASort TMP_64 n) in (let TMP_66 \def (IH n0 H_y) in (eq_ind A 
-TMP_40 TMP_45 TMP_63 TMP_65 TMP_66))))))))))))))))))))))))))) in (nat_ind 
-TMP_20 TMP_38 TMP_67 h))))))) in (nat_ind TMP_5 TMP_13 TMP_68 k))))).
+ \lambda (n: nat).(\lambda (k: nat).(nat_ind (\lambda (n0: nat).(\forall (h: 
+nat).((le n0 h) \to (eq A (aplus gz (ASort h n) n0) (ASort (minus h n0) 
+n))))) (\lambda (h: nat).(\lambda (_: (le O h)).(eq_ind nat h (\lambda (n0: 
+nat).(eq A (ASort h n) (ASort n0 n))) (refl_equal A (ASort h n)) (minus h O) 
+(minus_n_O h)))) (\lambda (k0: nat).(\lambda (IH: ((\forall (h: nat).((le k0 
+h) \to (eq A (aplus gz (ASort h n) k0) (ASort (minus h k0) n)))))).(\lambda 
+(h: nat).(nat_ind (\lambda (n0: nat).((le (S k0) n0) \to (eq A (asucc gz 
+(aplus gz (ASort n0 n) k0)) (ASort (minus n0 (S k0)) n)))) (\lambda (H: (le 
+(S k0) O)).(ex2_ind nat (\lambda (n0: nat).(eq nat O (S n0))) (\lambda (n0: 
+nat).(le k0 n0)) (eq A (asucc gz (aplus gz (ASort O n) k0)) (ASort O n)) 
+(\lambda (x: nat).(\lambda (H0: (eq nat O (S x))).(\lambda (_: (le k0 
+x)).(let H2 \def (eq_ind nat O (\lambda (ee: nat).(match ee with [O 
+\Rightarrow True | (S _) \Rightarrow False])) I (S x) H0) in (False_ind (eq A 
+(asucc gz (aplus gz (ASort O n) k0)) (ASort O n)) H2))))) (le_gen_S k0 O H))) 
+(\lambda (n0: nat).(\lambda (_: (((le (S k0) n0) \to (eq A (asucc gz (aplus 
+gz (ASort n0 n) k0)) (ASort (minus n0 (S k0)) n))))).(\lambda (H0: (le (S k0) 
+(S n0))).(let H_y \def (le_S_n k0 n0 H0) in (eq_ind A (aplus gz (ASort n0 n) 
+k0) (\lambda (a: A).(eq A (asucc gz (aplus gz (ASort (S n0) n) k0)) a)) 
+(eq_ind A (aplus gz (asucc gz (ASort (S n0) n)) k0) (\lambda (a: A).(eq A a 
+(aplus gz (ASort n0 n) k0))) (refl_equal A (aplus gz (ASort n0 n) k0)) (asucc 
+gz (aplus gz (ASort (S n0) n) k0)) (aplus_asucc gz k0 (ASort (S n0) n))) 
+(ASort (minus n0 k0) n) (IH n0 H_y)))))) h)))) k)).
 
 theorem next_plus_gz:
  \forall (n: nat).(\forall (h: nat).(eq nat (next_plus gz n h) (plus h n)))
 \def
- \lambda (n: nat).(\lambda (h: nat).(let TMP_3 \def (\lambda (n0: nat).(let 
-TMP_1 \def (next_plus gz n n0) in (let TMP_2 \def (plus n0 n) in (eq nat 
-TMP_1 TMP_2)))) in (let TMP_4 \def (refl_equal nat n) in (let TMP_7 \def 
-(\lambda (n0: nat).(\lambda (H: (eq nat (next_plus gz n n0) (plus n0 
-n))).(let TMP_5 \def (next_plus gz n n0) in (let TMP_6 \def (plus n0 n) in 
-(f_equal nat nat S TMP_5 TMP_6 H))))) in (nat_ind TMP_3 TMP_4 TMP_7 h))))).
+ \lambda (n: nat).(\lambda (h: nat).(nat_ind (\lambda (n0: nat).(eq nat 
+(next_plus gz n n0) (plus n0 n))) (refl_equal nat n) (\lambda (n0: 
+nat).(\lambda (H: (eq nat (next_plus gz n n0) (plus n0 n))).(f_equal nat nat 
+S (next_plus gz n n0) (plus n0 n) H))) h)).
 
 theorem leqz_leq:
  \forall (a1: A).(\forall (a2: A).((leq gz a1 a2) \to (leqz a1 a2)))
 \def
- \lambda (a1: A).(\lambda (a2: A).(\lambda (H: (leq gz a1 a2)).(let TMP_1 
-\def (\lambda (a: A).(\lambda (a0: A).(leqz a a0))) in (let TMP_225 \def 
-(\lambda (h1: nat).(\lambda (h2: nat).(\lambda (n1: nat).(\lambda (n2: 
-nat).(\lambda (k: nat).(\lambda (H0: (eq A (aplus gz (ASort h1 n1) k) (aplus 
-gz (ASort h2 n2) k))).(let TMP_2 \def (ASort h1 n1) in (let TMP_3 \def (ASort 
-h2 n2) in (let TMP_4 \def (leqz TMP_2 TMP_3) in (let TMP_136 \def (\lambda 
-(H1: (lt k h1)).(let TMP_5 \def (ASort h1 n1) in (let TMP_6 \def (ASort h2 
-n2) in (let TMP_7 \def (leqz TMP_5 TMP_6) in (let TMP_86 \def (\lambda (H2: 
-(lt k h2)).(let TMP_8 \def (ASort h1 n1) in (let TMP_9 \def (aplus gz TMP_8 
-k) in (let TMP_12 \def (\lambda (a: A).(let TMP_10 \def (ASort h2 n2) in (let 
-TMP_11 \def (aplus gz TMP_10 k) in (eq A a TMP_11)))) in (let TMP_13 \def 
-(minus h1 k) in (let TMP_14 \def (ASort TMP_13 n1) in (let TMP_15 \def (S k) 
-in (let TMP_16 \def (S h1) in (let TMP_17 \def (S k) in (let TMP_18 \def (S 
-TMP_17) in (let TMP_19 \def (S h1) in (let TMP_20 \def (S k) in (let TMP_21 
-\def (le_n_S TMP_20 h1 H1) in (let TMP_22 \def (le_S TMP_18 TMP_19 TMP_21) in 
-(let TMP_23 \def (le_S_n TMP_15 TMP_16 TMP_22) in (let TMP_24 \def (le_S_n k 
-h1 TMP_23) in (let TMP_25 \def (aplus_gz_ge n1 k h1 TMP_24) in (let H3 \def 
-(eq_ind A TMP_9 TMP_12 H0 TMP_14 TMP_25) in (let TMP_26 \def (ASort h2 n2) in 
-(let TMP_27 \def (aplus gz TMP_26 k) in (let TMP_30 \def (\lambda (a: A).(let 
-TMP_28 \def (minus h1 k) in (let TMP_29 \def (ASort TMP_28 n1) in (eq A 
-TMP_29 a)))) in (let TMP_31 \def (minus h2 k) in (let TMP_32 \def (ASort 
-TMP_31 n2) in (let TMP_33 \def (S k) in (let TMP_34 \def (S h2) in (let 
-TMP_35 \def (S k) in (let TMP_36 \def (S TMP_35) in (let TMP_37 \def (S h2) 
-in (let TMP_38 \def (S k) in (let TMP_39 \def (le_n_S TMP_38 h2 H2) in (let 
-TMP_40 \def (le_S TMP_36 TMP_37 TMP_39) in (let TMP_41 \def (le_S_n TMP_33 
-TMP_34 TMP_40) in (let TMP_42 \def (le_S_n k h2 TMP_41) in (let TMP_43 \def 
-(aplus_gz_ge n2 k h2 TMP_42) in (let H4 \def (eq_ind A TMP_27 TMP_30 H3 
-TMP_32 TMP_43) in (let TMP_44 \def (\lambda (e: A).(match e with [(ASort n _) 
-\Rightarrow n | (AHead _ _) \Rightarrow (minus h1 k)])) in (let TMP_45 \def 
-(minus h1 k) in (let TMP_46 \def (ASort TMP_45 n1) in (let TMP_47 \def (minus 
-h2 k) in (let TMP_48 \def (ASort TMP_47 n2) in (let H5 \def (f_equal A nat 
-TMP_44 TMP_46 TMP_48 H4) in (let TMP_49 \def (\lambda (e: A).(match e with 
-[(ASort _ n) \Rightarrow n | (AHead _ _) \Rightarrow n1])) in (let TMP_50 
-\def (minus h1 k) in (let TMP_51 \def (ASort TMP_50 n1) in (let TMP_52 \def 
-(minus h2 k) in (let TMP_53 \def (ASort TMP_52 n2) in (let H6 \def (f_equal A 
-nat TMP_49 TMP_51 TMP_53 H4) in (let TMP_85 \def (\lambda (H7: (eq nat (minus 
-h1 k) (minus h2 k))).(let TMP_56 \def (\lambda (n: nat).(let TMP_54 \def 
-(ASort h1 n1) in (let TMP_55 \def (ASort h2 n) in (leqz TMP_54 TMP_55)))) in 
-(let TMP_59 \def (\lambda (n: nat).(let TMP_57 \def (ASort h1 n1) in (let 
-TMP_58 \def (ASort n n1) in (leqz TMP_57 TMP_58)))) in (let TMP_60 \def (plus 
-h1 n1) in (let TMP_61 \def (refl_equal nat TMP_60) in (let TMP_62 \def 
-(leqz_sort h1 h1 n1 n1 TMP_61) in (let TMP_63 \def (S k) in (let TMP_64 \def 
-(S h1) in (let TMP_65 \def (S k) in (let TMP_66 \def (S TMP_65) in (let 
-TMP_67 \def (S h1) in (let TMP_68 \def (S k) in (let TMP_69 \def (le_n_S 
-TMP_68 h1 H1) in (let TMP_70 \def (le_S TMP_66 TMP_67 TMP_69) in (let TMP_71 
-\def (le_S_n TMP_63 TMP_64 TMP_70) in (let TMP_72 \def (le_S_n k h1 TMP_71) 
-in (let TMP_73 \def (S k) in (let TMP_74 \def (S h2) in (let TMP_75 \def (S 
-k) in (let TMP_76 \def (S TMP_75) in (let TMP_77 \def (S h2) in (let TMP_78 
-\def (S k) in (let TMP_79 \def (le_n_S TMP_78 h2 H2) in (let TMP_80 \def 
-(le_S TMP_76 TMP_77 TMP_79) in (let TMP_81 \def (le_S_n TMP_73 TMP_74 TMP_80) 
-in (let TMP_82 \def (le_S_n k h2 TMP_81) in (let TMP_83 \def (minus_minus k 
-h1 h2 TMP_72 TMP_82 H7) in (let TMP_84 \def (eq_ind nat h1 TMP_59 TMP_62 h2 
-TMP_83) in (eq_ind nat n1 TMP_56 TMP_84 n2 H6))))))))))))))))))))))))))))) in 
-(TMP_85 H5))))))))))))))))))))))))))))))))))))))))))))))))) in (let TMP_135 
-\def (\lambda (H2: (le h2 k)).(let TMP_87 \def (ASort h1 n1) in (let TMP_88 
-\def (aplus gz TMP_87 k) in (let TMP_91 \def (\lambda (a: A).(let TMP_89 \def 
-(ASort h2 n2) in (let TMP_90 \def (aplus gz TMP_89 k) in (eq A a TMP_90)))) 
-in (let TMP_92 \def (minus h1 k) in (let TMP_93 \def (ASort TMP_92 n1) in 
-(let TMP_94 \def (S k) in (let TMP_95 \def (S h1) in (let TMP_96 \def (S k) 
-in (let TMP_97 \def (S TMP_96) in (let TMP_98 \def (S h1) in (let TMP_99 \def 
-(S k) in (let TMP_100 \def (le_n_S TMP_99 h1 H1) in (let TMP_101 \def (le_S 
-TMP_97 TMP_98 TMP_100) in (let TMP_102 \def (le_S_n TMP_94 TMP_95 TMP_101) in 
-(let TMP_103 \def (le_S_n k h1 TMP_102) in (let TMP_104 \def (aplus_gz_ge n1 
-k h1 TMP_103) in (let H3 \def (eq_ind A TMP_88 TMP_91 H0 TMP_93 TMP_104) in 
-(let TMP_105 \def (ASort h2 n2) in (let TMP_106 \def (aplus gz TMP_105 k) in 
-(let TMP_109 \def (\lambda (a: A).(let TMP_107 \def (minus h1 k) in (let 
-TMP_108 \def (ASort TMP_107 n1) in (eq A TMP_108 a)))) in (let TMP_110 \def 
-(minus k h2) in (let TMP_111 \def (plus TMP_110 n2) in (let TMP_112 \def 
-(ASort O TMP_111) in (let TMP_113 \def (aplus_gz_le k h2 n2 H2) in (let H4 
-\def (eq_ind A TMP_106 TMP_109 H3 TMP_112 TMP_113) in (let TMP_114 \def 
-(minus h1 k) in (let TMP_119 \def (\lambda (n: nat).(let TMP_115 \def (ASort 
-n n1) in (let TMP_116 \def (minus k h2) in (let TMP_117 \def (plus TMP_116 
-n2) in (let TMP_118 \def (ASort O TMP_117) in (eq A TMP_115 TMP_118)))))) in 
-(let TMP_120 \def (S k) in (let TMP_121 \def (minus h1 TMP_120) in (let 
-TMP_122 \def (S TMP_121) in (let TMP_123 \def (minus_x_Sy h1 k H1) in (let H5 
-\def (eq_ind nat TMP_114 TMP_119 H4 TMP_122 TMP_123) in (let TMP_124 \def (S 
-k) in (let TMP_125 \def (minus h1 TMP_124) in (let TMP_126 \def (S TMP_125) 
-in (let TMP_127 \def (ASort TMP_126 n1) in (let TMP_128 \def (\lambda (ee: 
-A).(match ee with [(ASort n _) \Rightarrow (match n with [O \Rightarrow False 
-| (S _) \Rightarrow True]) | (AHead _ _) \Rightarrow False])) in (let TMP_129 
-\def (minus k h2) in (let TMP_130 \def (plus TMP_129 n2) in (let TMP_131 \def 
-(ASort O TMP_130) in (let H6 \def (eq_ind A TMP_127 TMP_128 I TMP_131 H5) in 
-(let TMP_132 \def (ASort h1 n1) in (let TMP_133 \def (ASort h2 n2) in (let 
-TMP_134 \def (leqz TMP_132 TMP_133) in (False_ind TMP_134 
-H6)))))))))))))))))))))))))))))))))))))))))))))) in (lt_le_e k h2 TMP_7 
-TMP_86 TMP_135))))))) in (let TMP_224 \def (\lambda (H1: (le h1 k)).(let 
-TMP_137 \def (ASort h1 n1) in (let TMP_138 \def (ASort h2 n2) in (let TMP_139 
-\def (leqz TMP_137 TMP_138) in (let TMP_194 \def (\lambda (H2: (lt k 
-h2)).(let TMP_140 \def (ASort h1 n1) in (let TMP_141 \def (aplus gz TMP_140 
-k) in (let TMP_144 \def (\lambda (a: A).(let TMP_142 \def (ASort h2 n2) in 
-(let TMP_143 \def (aplus gz TMP_142 k) in (eq A a TMP_143)))) in (let TMP_145 
-\def (minus k h1) in (let TMP_146 \def (plus TMP_145 n1) in (let TMP_147 \def 
-(ASort O TMP_146) in (let TMP_148 \def (aplus_gz_le k h1 n1 H1) in (let H3 
-\def (eq_ind A TMP_141 TMP_144 H0 TMP_147 TMP_148) in (let TMP_149 \def 
-(ASort h2 n2) in (let TMP_150 \def (aplus gz TMP_149 k) in (let TMP_154 \def 
-(\lambda (a: A).(let TMP_151 \def (minus k h1) in (let TMP_152 \def (plus 
-TMP_151 n1) in (let TMP_153 \def (ASort O TMP_152) in (eq A TMP_153 a))))) in 
-(let TMP_155 \def (minus h2 k) in (let TMP_156 \def (ASort TMP_155 n2) in 
-(let TMP_157 \def (S k) in (let TMP_158 \def (S h2) in (let TMP_159 \def (S 
-k) in (let TMP_160 \def (S TMP_159) in (let TMP_161 \def (S h2) in (let 
-TMP_162 \def (S k) in (let TMP_163 \def (le_n_S TMP_162 h2 H2) in (let 
-TMP_164 \def (le_S TMP_160 TMP_161 TMP_163) in (let TMP_165 \def (le_S_n 
-TMP_157 TMP_158 TMP_164) in (let TMP_166 \def (le_S_n k h2 TMP_165) in (let 
-TMP_167 \def (aplus_gz_ge n2 k h2 TMP_166) in (let H4 \def (eq_ind A TMP_150 
-TMP_154 H3 TMP_156 TMP_167) in (let TMP_168 \def (minus k h1) in (let TMP_169 
-\def (plus TMP_168 n1) in (let TMP_170 \def (ASort O TMP_169) in (let TMP_171 
-\def (minus h2 k) in (let TMP_172 \def (ASort TMP_171 n2) in (let H5 \def 
-(sym_eq A TMP_170 TMP_172 H4) in (let TMP_173 \def (minus h2 k) in (let 
-TMP_178 \def (\lambda (n: nat).(let TMP_174 \def (ASort n n2) in (let TMP_175 
-\def (minus k h1) in (let TMP_176 \def (plus TMP_175 n1) in (let TMP_177 \def 
-(ASort O TMP_176) in (eq A TMP_174 TMP_177)))))) in (let TMP_179 \def (S k) 
-in (let TMP_180 \def (minus h2 TMP_179) in (let TMP_181 \def (S TMP_180) in 
-(let TMP_182 \def (minus_x_Sy h2 k H2) in (let H6 \def (eq_ind nat TMP_173 
-TMP_178 H5 TMP_181 TMP_182) in (let TMP_183 \def (S k) in (let TMP_184 \def 
-(minus h2 TMP_183) in (let TMP_185 \def (S TMP_184) in (let TMP_186 \def 
-(ASort TMP_185 n2) in (let TMP_187 \def (\lambda (ee: A).(match ee with 
+ \lambda (a1: A).(\lambda (a2: A).(\lambda (H: (leq gz a1 a2)).(leq_ind gz 
+(\lambda (a: A).(\lambda (a0: A).(leqz a a0))) (\lambda (h1: nat).(\lambda 
+(h2: nat).(\lambda (n1: nat).(\lambda (n2: nat).(\lambda (k: nat).(\lambda 
+(H0: (eq A (aplus gz (ASort h1 n1) k) (aplus gz (ASort h2 n2) k))).(lt_le_e k 
+h1 (leqz (ASort h1 n1) (ASort h2 n2)) (\lambda (H1: (lt k h1)).(lt_le_e k h2 
+(leqz (ASort h1 n1) (ASort h2 n2)) (\lambda (H2: (lt k h2)).(let H3 \def 
+(eq_ind A (aplus gz (ASort h1 n1) k) (\lambda (a: A).(eq A a (aplus gz (ASort 
+h2 n2) k))) H0 (ASort (minus h1 k) n1) (aplus_gz_ge n1 k h1 (le_S_n k h1 
+(le_S_n (S k) (S h1) (le_S (S (S k)) (S h1) (le_n_S (S k) h1 H1)))))) in (let 
+H4 \def (eq_ind A (aplus gz (ASort h2 n2) k) (\lambda (a: A).(eq A (ASort 
+(minus h1 k) n1) a)) H3 (ASort (minus h2 k) n2) (aplus_gz_ge n2 k h2 (le_S_n 
+k h2 (le_S_n (S k) (S h2) (le_S (S (S k)) (S h2) (le_n_S (S k) h2 H2)))))) in 
+(let H5 \def (f_equal A nat (\lambda (e: A).(match e with [(ASort n _) 
+\Rightarrow n | (AHead _ _) \Rightarrow (minus h1 k)])) (ASort (minus h1 k) 
+n1) (ASort (minus h2 k) n2) H4) in ((let H6 \def (f_equal A nat (\lambda (e: 
+A).(match e with [(ASort _ n) \Rightarrow n | (AHead _ _) \Rightarrow n1])) 
+(ASort (minus h1 k) n1) (ASort (minus h2 k) n2) H4) in (\lambda (H7: (eq nat 
+(minus h1 k) (minus h2 k))).(eq_ind nat n1 (\lambda (n: nat).(leqz (ASort h1 
+n1) (ASort h2 n))) (eq_ind nat h1 (\lambda (n: nat).(leqz (ASort h1 n1) 
+(ASort n n1))) (leqz_sort h1 h1 n1 n1 (refl_equal nat (plus h1 n1))) h2 
+(minus_minus k h1 h2 (le_S_n k h1 (le_S_n (S k) (S h1) (le_S (S (S k)) (S h1) 
+(le_n_S (S k) h1 H1)))) (le_S_n k h2 (le_S_n (S k) (S h2) (le_S (S (S k)) (S 
+h2) (le_n_S (S k) h2 H2)))) H7)) n2 H6))) H5))))) (\lambda (H2: (le h2 
+k)).(let H3 \def (eq_ind A (aplus gz (ASort h1 n1) k) (\lambda (a: A).(eq A a 
+(aplus gz (ASort h2 n2) k))) H0 (ASort (minus h1 k) n1) (aplus_gz_ge n1 k h1 
+(le_S_n k h1 (le_S_n (S k) (S h1) (le_S (S (S k)) (S h1) (le_n_S (S k) h1 
+H1)))))) in (let H4 \def (eq_ind A (aplus gz (ASort h2 n2) k) (\lambda (a: 
+A).(eq A (ASort (minus h1 k) n1) a)) H3 (ASort O (plus (minus k h2) n2)) 
+(aplus_gz_le k h2 n2 H2)) in (let H5 \def (eq_ind nat (minus h1 k) (\lambda 
+(n: nat).(eq A (ASort n n1) (ASort O (plus (minus k h2) n2)))) H4 (S (minus 
+h1 (S k))) (minus_x_Sy h1 k H1)) in (let H6 \def (eq_ind A (ASort (S (minus 
+h1 (S k))) n1) (\lambda (ee: A).(match ee with [(ASort n _) \Rightarrow 
+(match n with [O \Rightarrow False | (S _) \Rightarrow True]) | (AHead _ _) 
+\Rightarrow False])) I (ASort O (plus (minus k h2) n2)) H5) in (False_ind 
+(leqz (ASort h1 n1) (ASort h2 n2)) H6)))))))) (\lambda (H1: (le h1 
+k)).(lt_le_e k h2 (leqz (ASort h1 n1) (ASort h2 n2)) (\lambda (H2: (lt k 
+h2)).(let H3 \def (eq_ind A (aplus gz (ASort h1 n1) k) (\lambda (a: A).(eq A 
+a (aplus gz (ASort h2 n2) k))) H0 (ASort O (plus (minus k h1) n1)) 
+(aplus_gz_le k h1 n1 H1)) in (let H4 \def (eq_ind A (aplus gz (ASort h2 n2) 
+k) (\lambda (a: A).(eq A (ASort O (plus (minus k h1) n1)) a)) H3 (ASort 
+(minus h2 k) n2) (aplus_gz_ge n2 k h2 (le_S_n k h2 (le_S_n (S k) (S h2) (le_S 
+(S (S k)) (S h2) (le_n_S (S k) h2 H2)))))) in (let H5 \def (sym_eq A (ASort O 
+(plus (minus k h1) n1)) (ASort (minus h2 k) n2) H4) in (let H6 \def (eq_ind 
+nat (minus h2 k) (\lambda (n: nat).(eq A (ASort n n2) (ASort O (plus (minus k 
+h1) n1)))) H5 (S (minus h2 (S k))) (minus_x_Sy h2 k H2)) in (let H7 \def 
+(eq_ind A (ASort (S (minus h2 (S k))) n2) (\lambda (ee: A).(match ee with 
 [(ASort n _) \Rightarrow (match n with [O \Rightarrow False | (S _) 
-\Rightarrow True]) | (AHead _ _) \Rightarrow False])) in (let TMP_188 \def 
-(minus k h1) in (let TMP_189 \def (plus TMP_188 n1) in (let TMP_190 \def 
-(ASort O TMP_189) in (let H7 \def (eq_ind A TMP_186 TMP_187 I TMP_190 H6) in 
-(let TMP_191 \def (ASort h1 n1) in (let TMP_192 \def (ASort h2 n2) in (let 
-TMP_193 \def (leqz TMP_191 TMP_192) in (False_ind TMP_193 
-H7)))))))))))))))))))))))))))))))))))))))))))))))))))) in (let TMP_223 \def 
-(\lambda (H2: (le h2 k)).(let TMP_195 \def (ASort h1 n1) in (let TMP_196 \def 
-(aplus gz TMP_195 k) in (let TMP_199 \def (\lambda (a: A).(let TMP_197 \def 
-(ASort h2 n2) in (let TMP_198 \def (aplus gz TMP_197 k) in (eq A a 
-TMP_198)))) in (let TMP_200 \def (minus k h1) in (let TMP_201 \def (plus 
-TMP_200 n1) in (let TMP_202 \def (ASort O TMP_201) in (let TMP_203 \def 
-(aplus_gz_le k h1 n1 H1) in (let H3 \def (eq_ind A TMP_196 TMP_199 H0 TMP_202 
-TMP_203) in (let TMP_204 \def (ASort h2 n2) in (let TMP_205 \def (aplus gz 
-TMP_204 k) in (let TMP_209 \def (\lambda (a: A).(let TMP_206 \def (minus k 
-h1) in (let TMP_207 \def (plus TMP_206 n1) in (let TMP_208 \def (ASort O 
-TMP_207) in (eq A TMP_208 a))))) in (let TMP_210 \def (minus k h2) in (let 
-TMP_211 \def (plus TMP_210 n2) in (let TMP_212 \def (ASort O TMP_211) in (let 
-TMP_213 \def (aplus_gz_le k h2 n2 H2) in (let H4 \def (eq_ind A TMP_205 
-TMP_209 H3 TMP_212 TMP_213) in (let TMP_216 \def (\lambda (e: A).(match e 
-with [(ASort _ n) \Rightarrow n | (AHead _ _) \Rightarrow (let TMP_215 \def 
-(minus k h1) in (plus TMP_215 n1))])) in (let TMP_217 \def (minus k h1) in 
-(let TMP_218 \def (plus TMP_217 n1) in (let TMP_219 \def (ASort O TMP_218) in 
-(let TMP_220 \def (minus k h2) in (let TMP_221 \def (plus TMP_220 n2) in (let 
-TMP_222 \def (ASort O TMP_221) in (let H5 \def (f_equal A nat TMP_216 TMP_219 
-TMP_222 H4) in (let H_y \def (plus_plus k h1 h2 n1 n2 H1 H2 H5) in (leqz_sort 
-h1 h2 n1 n2 H_y))))))))))))))))))))))))))) in (lt_le_e k h2 TMP_139 TMP_194 
-TMP_223))))))) in (lt_le_e k h1 TMP_4 TMP_136 TMP_224)))))))))))) in (let 
-TMP_226 \def (\lambda (a0: A).(\lambda (a3: A).(\lambda (_: (leq gz a0 
-a3)).(\lambda (H1: (leqz a0 a3)).(\lambda (a4: A).(\lambda (a5: A).(\lambda 
-(_: (leq gz a4 a5)).(\lambda (H3: (leqz a4 a5)).(leqz_head a0 a3 H1 a4 a5 
-H3))))))))) in (leq_ind gz TMP_1 TMP_225 TMP_226 a1 a2 H)))))).
+\Rightarrow True]) | (AHead _ _) \Rightarrow False])) I (ASort O (plus (minus 
+k h1) n1)) H6) in (False_ind (leqz (ASort h1 n1) (ASort h2 n2)) H7))))))) 
+(\lambda (H2: (le h2 k)).(let H3 \def (eq_ind A (aplus gz (ASort h1 n1) k) 
+(\lambda (a: A).(eq A a (aplus gz (ASort h2 n2) k))) H0 (ASort O (plus (minus 
+k h1) n1)) (aplus_gz_le k h1 n1 H1)) in (let H4 \def (eq_ind A (aplus gz 
+(ASort h2 n2) k) (\lambda (a: A).(eq A (ASort O (plus (minus k h1) n1)) a)) 
+H3 (ASort O (plus (minus k h2) n2)) (aplus_gz_le k h2 n2 H2)) in (let H5 \def 
+(f_equal A nat (\lambda (e: A).(match e with [(ASort _ n) \Rightarrow n | 
+(AHead _ _) \Rightarrow (plus (minus k h1) n1)])) (ASort O (plus (minus k h1) 
+n1)) (ASort O (plus (minus k h2) n2)) H4) in (let H_y \def (plus_plus k h1 h2 
+n1 n2 H1 H2 H5) in (leqz_sort h1 h2 n1 n2 H_y))))))))))))))) (\lambda (a0: 
+A).(\lambda (a3: A).(\lambda (_: (leq gz a0 a3)).(\lambda (H1: (leqz a0 
+a3)).(\lambda (a4: A).(\lambda (a5: A).(\lambda (_: (leq gz a4 a5)).(\lambda 
+(H3: (leqz a4 a5)).(leqz_head a0 a3 H1 a4 a5 H3))))))))) a1 a2 H))).
 
 theorem leq_leqz:
  \forall (a1: A).(\forall (a2: A).((leqz a1 a2) \to (leq gz a1 a2)))
 \def
- \lambda (a1: A).(\lambda (a2: A).(\lambda (H: (leqz a1 a2)).(let TMP_1 \def 
-(\lambda (a: A).(\lambda (a0: A).(leq gz a a0))) in (let TMP_113 \def 
-(\lambda (h1: nat).(\lambda (h2: nat).(\lambda (n1: nat).(\lambda (n2: 
-nat).(\lambda (H0: (eq nat (plus h1 n2) (plus h2 n1))).(let TMP_2 \def (plus 
-h1 h2) in (let TMP_3 \def (plus h1 h2) in (let TMP_4 \def (minus h1 TMP_3) in 
-(let TMP_5 \def (plus h1 h2) in (let TMP_6 \def (minus TMP_5 h1) in (let 
-TMP_7 \def (next_plus gz n1 TMP_6) in (let TMP_8 \def (ASort TMP_4 TMP_7) in 
-(let TMP_12 \def (\lambda (a: A).(let TMP_9 \def (ASort h2 n2) in (let TMP_10 
-\def (plus h1 h2) in (let TMP_11 \def (aplus gz TMP_9 TMP_10) in (eq A a 
-TMP_11))))) in (let TMP_13 \def (plus h1 h2) in (let TMP_14 \def (minus h2 
-TMP_13) in (let TMP_15 \def (plus h1 h2) in (let TMP_16 \def (minus TMP_15 
-h2) in (let TMP_17 \def (next_plus gz n2 TMP_16) in (let TMP_18 \def (ASort 
-TMP_14 TMP_17) in (let TMP_25 \def (\lambda (a: A).(let TMP_19 \def (plus h1 
-h2) in (let TMP_20 \def (minus h1 TMP_19) in (let TMP_21 \def (plus h1 h2) in 
-(let TMP_22 \def (minus TMP_21 h1) in (let TMP_23 \def (next_plus gz n1 
-TMP_22) in (let TMP_24 \def (ASort TMP_20 TMP_23) in (eq A TMP_24 a)))))))) 
-in (let TMP_36 \def (\lambda (n: nat).(let TMP_26 \def (plus h1 h2) in (let 
-TMP_27 \def (minus h1 TMP_26) in (let TMP_28 \def (next_plus gz n1 n) in (let 
-TMP_29 \def (ASort TMP_27 TMP_28) in (let TMP_30 \def (plus h1 h2) in (let 
-TMP_31 \def (minus h2 TMP_30) in (let TMP_32 \def (plus h1 h2) in (let TMP_33 
-\def (minus TMP_32 h2) in (let TMP_34 \def (next_plus gz n2 TMP_33) in (let 
-TMP_35 \def (ASort TMP_31 TMP_34) in (eq A TMP_29 TMP_35)))))))))))) in (let 
-TMP_45 \def (\lambda (n: nat).(let TMP_37 \def (plus h1 h2) in (let TMP_38 
-\def (minus h1 TMP_37) in (let TMP_39 \def (next_plus gz n1 h2) in (let 
-TMP_40 \def (ASort TMP_38 TMP_39) in (let TMP_41 \def (plus h1 h2) in (let 
-TMP_42 \def (minus h2 TMP_41) in (let TMP_43 \def (next_plus gz n2 n) in (let 
-TMP_44 \def (ASort TMP_42 TMP_43) in (eq A TMP_40 TMP_44)))))))))) in (let 
-TMP_52 \def (\lambda (n: nat).(let TMP_46 \def (next_plus gz n1 h2) in (let 
-TMP_47 \def (ASort n TMP_46) in (let TMP_48 \def (plus h1 h2) in (let TMP_49 
-\def (minus h2 TMP_48) in (let TMP_50 \def (next_plus gz n2 h1) in (let 
-TMP_51 \def (ASort TMP_49 TMP_50) in (eq A TMP_47 TMP_51)))))))) in (let 
-TMP_57 \def (\lambda (n: nat).(let TMP_53 \def (next_plus gz n1 h2) in (let 
-TMP_54 \def (ASort O TMP_53) in (let TMP_55 \def (next_plus gz n2 h1) in (let 
-TMP_56 \def (ASort n TMP_55) in (eq A TMP_54 TMP_56)))))) in (let TMP_58 \def 
-(plus h2 n1) in (let TMP_62 \def (\lambda (n: nat).(let TMP_59 \def (ASort O 
-n) in (let TMP_60 \def (next_plus gz n2 h1) in (let TMP_61 \def (ASort O 
-TMP_60) in (eq A TMP_59 TMP_61))))) in (let TMP_63 \def (plus h1 n2) in (let 
-TMP_67 \def (\lambda (n: nat).(let TMP_64 \def (plus h2 n1) in (let TMP_65 
-\def (ASort O TMP_64) in (let TMP_66 \def (ASort O n) in (eq A TMP_65 
-TMP_66))))) in (let TMP_68 \def (ASort O) in (let TMP_69 \def (plus h2 n1) in 
-(let TMP_70 \def (plus h1 n2) in (let TMP_71 \def (plus h1 n2) in (let TMP_72 
-\def (plus h2 n1) in (let TMP_73 \def (sym_eq nat TMP_71 TMP_72 H0) in (let 
-TMP_74 \def (f_equal nat A TMP_68 TMP_69 TMP_70 TMP_73) in (let TMP_75 \def 
-(next_plus gz n2 h1) in (let TMP_76 \def (next_plus_gz n2 h1) in (let TMP_77 
-\def (eq_ind_r nat TMP_63 TMP_67 TMP_74 TMP_75 TMP_76) in (let TMP_78 \def 
-(next_plus gz n1 h2) in (let TMP_79 \def (next_plus_gz n1 h2) in (let TMP_80 
-\def (eq_ind_r nat TMP_58 TMP_62 TMP_77 TMP_78 TMP_79) in (let TMP_81 \def 
-(plus h1 h2) in (let TMP_82 \def (minus h2 TMP_81) in (let TMP_83 \def (plus 
-h1 h2) in (let TMP_84 \def (le_plus_r h1 h2) in (let TMP_85 \def (O_minus h2 
-TMP_83 TMP_84) in (let TMP_86 \def (eq_ind_r nat O TMP_57 TMP_80 TMP_82 
-TMP_85) in (let TMP_87 \def (plus h1 h2) in (let TMP_88 \def (minus h1 
-TMP_87) in (let TMP_89 \def (plus h1 h2) in (let TMP_90 \def (le_plus_l h1 
-h2) in (let TMP_91 \def (O_minus h1 TMP_89 TMP_90) in (let TMP_92 \def 
-(eq_ind_r nat O TMP_52 TMP_86 TMP_88 TMP_91) in (let TMP_93 \def (plus h1 h2) 
-in (let TMP_94 \def (minus TMP_93 h2) in (let TMP_95 \def (minus_plus_r h1 
-h2) in (let TMP_96 \def (eq_ind_r nat h1 TMP_45 TMP_92 TMP_94 TMP_95) in (let 
-TMP_97 \def (plus h1 h2) in (let TMP_98 \def (minus TMP_97 h1) in (let TMP_99 
-\def (minus_plus h1 h2) in (let TMP_100 \def (eq_ind_r nat h2 TMP_36 TMP_96 
-TMP_98 TMP_99) in (let TMP_101 \def (ASort h2 n2) in (let TMP_102 \def (plus 
-h1 h2) in (let TMP_103 \def (aplus gz TMP_101 TMP_102) in (let TMP_104 \def 
-(plus h1 h2) in (let TMP_105 \def (aplus_asort_simpl gz TMP_104 h2 n2) in 
-(let TMP_106 \def (eq_ind_r A TMP_18 TMP_25 TMP_100 TMP_103 TMP_105) in (let 
-TMP_107 \def (ASort h1 n1) in (let TMP_108 \def (plus h1 h2) in (let TMP_109 
-\def (aplus gz TMP_107 TMP_108) in (let TMP_110 \def (plus h1 h2) in (let 
-TMP_111 \def (aplus_asort_simpl gz TMP_110 h1 n1) in (let TMP_112 \def 
-(eq_ind_r A TMP_8 TMP_12 TMP_106 TMP_109 TMP_111) in (leq_sort gz h1 h2 n1 n2 
-TMP_2 
-TMP_112)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
-))) in (let TMP_114 \def (\lambda (a0: A).(\lambda (a3: A).(\lambda (_: (leqz 
-a0 a3)).(\lambda (H1: (leq gz a0 a3)).(\lambda (a4: A).(\lambda (a5: 
-A).(\lambda (_: (leqz a4 a5)).(\lambda (H3: (leq gz a4 a5)).(leq_head gz a0 
-a3 H1 a4 a5 H3))))))))) in (leqz_ind TMP_1 TMP_113 TMP_114 a1 a2 H)))))).
+ \lambda (a1: A).(\lambda (a2: A).(\lambda (H: (leqz a1 a2)).(leqz_ind 
+(\lambda (a: A).(\lambda (a0: A).(leq gz a a0))) (\lambda (h1: nat).(\lambda 
+(h2: nat).(\lambda (n1: nat).(\lambda (n2: nat).(\lambda (H0: (eq nat (plus 
+h1 n2) (plus h2 n1))).(leq_sort gz h1 h2 n1 n2 (plus h1 h2) (eq_ind_r A 
+(ASort (minus h1 (plus h1 h2)) (next_plus gz n1 (minus (plus h1 h2) h1))) 
+(\lambda (a: A).(eq A a (aplus gz (ASort h2 n2) (plus h1 h2)))) (eq_ind_r A 
+(ASort (minus h2 (plus h1 h2)) (next_plus gz n2 (minus (plus h1 h2) h2))) 
+(\lambda (a: A).(eq A (ASort (minus h1 (plus h1 h2)) (next_plus gz n1 (minus 
+(plus h1 h2) h1))) a)) (eq_ind_r nat h2 (\lambda (n: nat).(eq A (ASort (minus 
+h1 (plus h1 h2)) (next_plus gz n1 n)) (ASort (minus h2 (plus h1 h2)) 
+(next_plus gz n2 (minus (plus h1 h2) h2))))) (eq_ind_r nat h1 (\lambda (n: 
+nat).(eq A (ASort (minus h1 (plus h1 h2)) (next_plus gz n1 h2)) (ASort (minus 
+h2 (plus h1 h2)) (next_plus gz n2 n)))) (eq_ind_r nat O (\lambda (n: nat).(eq 
+A (ASort n (next_plus gz n1 h2)) (ASort (minus h2 (plus h1 h2)) (next_plus gz 
+n2 h1)))) (eq_ind_r nat O (\lambda (n: nat).(eq A (ASort O (next_plus gz n1 
+h2)) (ASort n (next_plus gz n2 h1)))) (eq_ind_r nat (plus h2 n1) (\lambda (n: 
+nat).(eq A (ASort O n) (ASort O (next_plus gz n2 h1)))) (eq_ind_r nat (plus 
+h1 n2) (\lambda (n: nat).(eq A (ASort O (plus h2 n1)) (ASort O n))) (f_equal 
+nat A (ASort O) (plus h2 n1) (plus h1 n2) (sym_eq nat (plus h1 n2) (plus h2 
+n1) H0)) (next_plus gz n2 h1) (next_plus_gz n2 h1)) (next_plus gz n1 h2) 
+(next_plus_gz n1 h2)) (minus h2 (plus h1 h2)) (O_minus h2 (plus h1 h2) 
+(le_plus_r h1 h2))) (minus h1 (plus h1 h2)) (O_minus h1 (plus h1 h2) 
+(le_plus_l h1 h2))) (minus (plus h1 h2) h2) (minus_plus_r h1 h2)) (minus 
+(plus h1 h2) h1) (minus_plus h1 h2)) (aplus gz (ASort h2 n2) (plus h1 h2)) 
+(aplus_asort_simpl gz (plus h1 h2) h2 n2)) (aplus gz (ASort h1 n1) (plus h1 
+h2)) (aplus_asort_simpl gz (plus h1 h2) h1 n1)))))))) (\lambda (a0: 
+A).(\lambda (a3: A).(\lambda (_: (leqz a0 a3)).(\lambda (H1: (leq gz a0 
+a3)).(\lambda (a4: A).(\lambda (a5: A).(\lambda (_: (leqz a4 a5)).(\lambda 
+(H3: (leq gz a4 a5)).(leq_head gz a0 a3 H1 a4 a5 H3))))))))) a1 a2 H))).
 
index 5b625b5dcb9eb272ec73ae9eb4657ad9ed985b89..4da7cc4d6b492329d74d7e3313468af9d0301606 100644 (file)
@@ -19,17 +19,11 @@ include "basic_1/C/defs.ma".
 definition ex1_c:
  C
 \def
- let TMP_1 \def (CSort O) in (let TMP_2 \def (Bind Abst) in (let TMP_3 \def 
-(TSort O) in (let TMP_4 \def (CHead TMP_1 TMP_2 TMP_3) in (let TMP_5 \def 
-(Bind Abst) in (let TMP_6 \def (TSort O) in (let TMP_7 \def (CHead TMP_4 
-TMP_5 TMP_6) in (let TMP_8 \def (Bind Abst) in (let TMP_9 \def (TLRef O) in 
-(CHead TMP_7 TMP_8 TMP_9))))))))).
+ CHead (CHead (CHead (CSort O) (Bind Abst) (TSort O)) (Bind Abst) (TSort O)) 
+(Bind Abst) (TLRef O).
 
 definition ex1_t:
  T
 \def
- let TMP_1 \def (Flat Appl) in (let TMP_2 \def (TLRef O) in (let TMP_3 \def 
-(Bind Abst) in (let TMP_4 \def (S O) in (let TMP_5 \def (S TMP_4) in (let 
-TMP_6 \def (TLRef TMP_5) in (let TMP_7 \def (TSort O) in (let TMP_8 \def 
-(THead TMP_3 TMP_6 TMP_7) in (THead TMP_1 TMP_2 TMP_8)))))))).
+ THead (Flat Appl) (TLRef O) (THead (Bind Abst) (TLRef (S (S O))) (TSort O)).
 
index 9db1318af8f89cb284bb9ba86198a6afed8496dd..6524d311466f1b16a24827c9bb2a0cdd3e771d98 100644 (file)
@@ -24,6 +24,5 @@ definition ex2_c:
 definition ex2_t:
  T
 \def
- let TMP_1 \def (Flat Appl) in (let TMP_2 \def (TSort O) in (let TMP_3 \def 
-(TSort O) in (THead TMP_1 TMP_2 TMP_3))).
+ THead (Flat Appl) (TSort O) (TSort O).
 
index a6c71285d097dc37bd5607952e6edb6b4cb7b93e..d5192ec5473c16586b851b8c36781fe3d567c806 100644 (file)
@@ -26,218 +26,127 @@ theorem ex2_nf2:
  nf2 ex2_c ex2_t
 \def
  \lambda (t2: T).(\lambda (H: (pr2 (CSort O) (THead (Flat Appl) (TSort O) 
-(TSort O)) t2)).(let TMP_1 \def (CSort O) in (let TMP_2 \def (TSort O) in 
-(let TMP_3 \def (TSort O) in (let H0 \def (pr2_gen_appl TMP_1 TMP_2 TMP_3 t2 
-H) in (let TMP_6 \def (\lambda (u2: T).(\lambda (t3: T).(let TMP_4 \def (Flat 
-Appl) in (let TMP_5 \def (THead TMP_4 u2 t3) in (eq T t2 TMP_5))))) in (let 
-TMP_9 \def (\lambda (u2: T).(\lambda (_: T).(let TMP_7 \def (CSort O) in (let 
-TMP_8 \def (TSort O) in (pr2 TMP_7 TMP_8 u2))))) in (let TMP_12 \def (\lambda 
-(_: T).(\lambda (t3: T).(let TMP_10 \def (CSort O) in (let TMP_11 \def (TSort 
-O) in (pr2 TMP_10 TMP_11 t3))))) in (let TMP_13 \def (ex3_2 T T TMP_6 TMP_9 
-TMP_12) in (let TMP_17 \def (\lambda (y1: T).(\lambda (z1: T).(\lambda (_: 
-T).(\lambda (_: T).(let TMP_14 \def (TSort O) in (let TMP_15 \def (Bind Abst) 
-in (let TMP_16 \def (THead TMP_15 y1 z1) in (eq T TMP_14 TMP_16)))))))) in 
-(let TMP_20 \def (\lambda (_: T).(\lambda (_: T).(\lambda (u2: T).(\lambda 
-(t3: T).(let TMP_18 \def (Bind Abbr) in (let TMP_19 \def (THead TMP_18 u2 t3) 
-in (eq T t2 TMP_19))))))) in (let TMP_23 \def (\lambda (_: T).(\lambda (_: 
-T).(\lambda (u2: T).(\lambda (_: T).(let TMP_21 \def (CSort O) in (let TMP_22 
-\def (TSort O) in (pr2 TMP_21 TMP_22 u2))))))) in (let TMP_27 \def (\lambda 
-(_: T).(\lambda (z1: T).(\lambda (_: T).(\lambda (t3: T).(\forall (b: 
-B).(\forall (u: T).(let TMP_24 \def (CSort O) in (let TMP_25 \def (Bind b) in 
-(let TMP_26 \def (CHead TMP_24 TMP_25 u) in (pr2 TMP_26 z1 t3)))))))))) in 
-(let TMP_28 \def (ex4_4 T T T T TMP_17 TMP_20 TMP_23 TMP_27) in (let TMP_30 
-\def (\lambda (b: B).(\lambda (_: T).(\lambda (_: T).(\lambda (_: T).(\lambda 
-(_: T).(\lambda (_: T).(let TMP_29 \def (eq B b Abst) in (not TMP_29)))))))) 
-in (let TMP_34 \def (\lambda (b: B).(\lambda (y1: T).(\lambda (z1: 
-T).(\lambda (_: T).(\lambda (_: T).(\lambda (_: T).(let TMP_31 \def (TSort O) 
-in (let TMP_32 \def (Bind b) in (let TMP_33 \def (THead TMP_32 y1 z1) in (eq 
-T TMP_31 TMP_33)))))))))) in (let TMP_41 \def (\lambda (b: B).(\lambda (_: 
-T).(\lambda (_: T).(\lambda (z2: T).(\lambda (u2: T).(\lambda (y2: T).(let 
-TMP_35 \def (Bind b) in (let TMP_36 \def (Flat Appl) in (let TMP_37 \def (S 
-O) in (let TMP_38 \def (lift TMP_37 O u2) in (let TMP_39 \def (THead TMP_36 
-TMP_38 z2) in (let TMP_40 \def (THead TMP_35 y2 TMP_39) in (eq T t2 
-TMP_40))))))))))))) in (let TMP_44 \def (\lambda (_: B).(\lambda (_: 
-T).(\lambda (_: T).(\lambda (_: T).(\lambda (u2: T).(\lambda (_: T).(let 
-TMP_42 \def (CSort O) in (let TMP_43 \def (TSort O) in (pr2 TMP_42 TMP_43 
-u2))))))))) in (let TMP_46 \def (\lambda (_: B).(\lambda (y1: T).(\lambda (_: 
-T).(\lambda (_: T).(\lambda (_: T).(\lambda (y2: T).(let TMP_45 \def (CSort 
-O) in (pr2 TMP_45 y1 y2)))))))) in (let TMP_50 \def (\lambda (b: B).(\lambda 
-(_: T).(\lambda (z1: T).(\lambda (z2: T).(\lambda (_: T).(\lambda (y2: 
-T).(let TMP_47 \def (CSort O) in (let TMP_48 \def (Bind b) in (let TMP_49 
-\def (CHead TMP_47 TMP_48 y2) in (pr2 TMP_49 z1 z2)))))))))) in (let TMP_51 
-\def (ex6_6 B T T T T T TMP_30 TMP_34 TMP_41 TMP_44 TMP_46 TMP_50) in (let 
-TMP_52 \def (Flat Appl) in (let TMP_53 \def (TSort O) in (let TMP_54 \def 
-(TSort O) in (let TMP_55 \def (THead TMP_52 TMP_53 TMP_54) in (let TMP_56 
-\def (eq T TMP_55 t2) in (let TMP_99 \def (\lambda (H1: (ex3_2 T T (\lambda 
-(u2: T).(\lambda (t3: T).(eq T t2 (THead (Flat Appl) u2 t3)))) (\lambda (u2: 
-T).(\lambda (_: T).(pr2 (CSort O) (TSort O) u2))) (\lambda (_: T).(\lambda 
-(t3: T).(pr2 (CSort O) (TSort O) t3))))).(let TMP_59 \def (\lambda (u2: 
-T).(\lambda (t3: T).(let TMP_57 \def (Flat Appl) in (let TMP_58 \def (THead 
-TMP_57 u2 t3) in (eq T t2 TMP_58))))) in (let TMP_62 \def (\lambda (u2: 
-T).(\lambda (_: T).(let TMP_60 \def (CSort O) in (let TMP_61 \def (TSort O) 
-in (pr2 TMP_60 TMP_61 u2))))) in (let TMP_65 \def (\lambda (_: T).(\lambda 
-(t3: T).(let TMP_63 \def (CSort O) in (let TMP_64 \def (TSort O) in (pr2 
-TMP_63 TMP_64 t3))))) in (let TMP_66 \def (Flat Appl) in (let TMP_67 \def 
-(TSort O) in (let TMP_68 \def (TSort O) in (let TMP_69 \def (THead TMP_66 
-TMP_67 TMP_68) in (let TMP_70 \def (eq T TMP_69 t2) in (let TMP_98 \def 
-(\lambda (x0: T).(\lambda (x1: T).(\lambda (H2: (eq T t2 (THead (Flat Appl) 
-x0 x1))).(\lambda (H3: (pr2 (CSort O) (TSort O) x0)).(\lambda (H4: (pr2 
-(CSort O) (TSort O) x1)).(let TMP_73 \def (\lambda (t: T).(let TMP_71 \def 
-(Flat Appl) in (let TMP_72 \def (THead TMP_71 x0 t) in (eq T t2 TMP_72)))) in 
-(let TMP_74 \def (TSort O) in (let TMP_75 \def (CSort O) in (let TMP_76 \def 
-(pr2_gen_sort TMP_75 x1 O H4) in (let H5 \def (eq_ind T x1 TMP_73 H2 TMP_74 
-TMP_76) in (let TMP_80 \def (\lambda (t: T).(let TMP_77 \def (Flat Appl) in 
-(let TMP_78 \def (TSort O) in (let TMP_79 \def (THead TMP_77 t TMP_78) in (eq 
-T t2 TMP_79))))) in (let TMP_81 \def (TSort O) in (let TMP_82 \def (CSort O) 
-in (let TMP_83 \def (pr2_gen_sort TMP_82 x0 O H3) in (let H6 \def (eq_ind T 
-x0 TMP_80 H5 TMP_81 TMP_83) in (let TMP_84 \def (Flat Appl) in (let TMP_85 
-\def (TSort O) in (let TMP_86 \def (TSort O) in (let TMP_87 \def (THead 
-TMP_84 TMP_85 TMP_86) in (let TMP_92 \def (\lambda (t: T).(let TMP_88 \def 
-(Flat Appl) in (let TMP_89 \def (TSort O) in (let TMP_90 \def (TSort O) in 
-(let TMP_91 \def (THead TMP_88 TMP_89 TMP_90) in (eq T TMP_91 t)))))) in (let 
-TMP_93 \def (Flat Appl) in (let TMP_94 \def (TSort O) in (let TMP_95 \def 
-(TSort O) in (let TMP_96 \def (THead TMP_93 TMP_94 TMP_95) in (let TMP_97 
-\def (refl_equal T TMP_96) in (eq_ind_r T TMP_87 TMP_92 TMP_97 t2 
-H6)))))))))))))))))))))))))) in (ex3_2_ind T T TMP_59 TMP_62 TMP_65 TMP_70 
-TMP_98 H1))))))))))) in (let TMP_147 \def (\lambda (H1: (ex4_4 T T T T 
-(\lambda (y1: T).(\lambda (z1: T).(\lambda (_: T).(\lambda (_: T).(eq T 
-(TSort O) (THead (Bind Abst) y1 z1)))))) (\lambda (_: T).(\lambda (_: 
-T).(\lambda (u2: T).(\lambda (t3: T).(eq T t2 (THead (Bind Abbr) u2 t3)))))) 
-(\lambda (_: T).(\lambda (_: T).(\lambda (u2: T).(\lambda (_: T).(pr2 (CSort 
-O) (TSort O) u2))))) (\lambda (_: T).(\lambda (z1: T).(\lambda (_: 
-T).(\lambda (t3: T).(\forall (b: B).(\forall (u: T).(pr2 (CHead (CSort O) 
-(Bind b) u) z1 t3))))))))).(let TMP_103 \def (\lambda (y1: T).(\lambda (z1: 
-T).(\lambda (_: T).(\lambda (_: T).(let TMP_100 \def (TSort O) in (let 
-TMP_101 \def (Bind Abst) in (let TMP_102 \def (THead TMP_101 y1 z1) in (eq T 
-TMP_100 TMP_102)))))))) in (let TMP_106 \def (\lambda (_: T).(\lambda (_: 
-T).(\lambda (u2: T).(\lambda (t3: T).(let TMP_104 \def (Bind Abbr) in (let 
-TMP_105 \def (THead TMP_104 u2 t3) in (eq T t2 TMP_105))))))) in (let TMP_109 
-\def (\lambda (_: T).(\lambda (_: T).(\lambda (u2: T).(\lambda (_: T).(let 
-TMP_107 \def (CSort O) in (let TMP_108 \def (TSort O) in (pr2 TMP_107 TMP_108 
-u2))))))) in (let TMP_113 \def (\lambda (_: T).(\lambda (z1: T).(\lambda (_: 
-T).(\lambda (t3: T).(\forall (b: B).(\forall (u: T).(let TMP_110 \def (CSort 
-O) in (let TMP_111 \def (Bind b) in (let TMP_112 \def (CHead TMP_110 TMP_111 
-u) in (pr2 TMP_112 z1 t3)))))))))) in (let TMP_114 \def (Flat Appl) in (let 
-TMP_115 \def (TSort O) in (let TMP_116 \def (TSort O) in (let TMP_117 \def 
-(THead TMP_114 TMP_115 TMP_116) in (let TMP_118 \def (eq T TMP_117 t2) in 
-(let TMP_146 \def (\lambda (x0: T).(\lambda (x1: T).(\lambda (x2: T).(\lambda 
-(x3: T).(\lambda (H2: (eq T (TSort O) (THead (Bind Abst) x0 x1))).(\lambda 
-(H3: (eq T t2 (THead (Bind Abbr) x2 x3))).(\lambda (H4: (pr2 (CSort O) (TSort 
-O) x2)).(\lambda (_: ((\forall (b: B).(\forall (u: T).(pr2 (CHead (CSort O) 
-(Bind b) u) x1 x3))))).(let TMP_121 \def (\lambda (t: T).(let TMP_119 \def 
-(Bind Abbr) in (let TMP_120 \def (THead TMP_119 t x3) in (eq T t2 TMP_120)))) 
-in (let TMP_122 \def (TSort O) in (let TMP_123 \def (CSort O) in (let TMP_124 
-\def (pr2_gen_sort TMP_123 x2 O H4) in (let H6 \def (eq_ind T x2 TMP_121 H3 
-TMP_122 TMP_124) in (let TMP_125 \def (Bind Abbr) in (let TMP_126 \def (TSort 
-O) in (let TMP_127 \def (THead TMP_125 TMP_126 x3) in (let TMP_132 \def 
-(\lambda (t: T).(let TMP_128 \def (Flat Appl) in (let TMP_129 \def (TSort O) 
-in (let TMP_130 \def (TSort O) in (let TMP_131 \def (THead TMP_128 TMP_129 
-TMP_130) in (eq T TMP_131 t)))))) in (let TMP_133 \def (TSort O) in (let 
-TMP_134 \def (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow True | 
-(TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow False])) in (let 
-TMP_135 \def (Bind Abst) in (let TMP_136 \def (THead TMP_135 x0 x1) in (let 
-H7 \def (eq_ind T TMP_133 TMP_134 I TMP_136 H2) in (let TMP_137 \def (Flat 
-Appl) in (let TMP_138 \def (TSort O) in (let TMP_139 \def (TSort O) in (let 
-TMP_140 \def (THead TMP_137 TMP_138 TMP_139) in (let TMP_141 \def (Bind Abbr) 
-in (let TMP_142 \def (TSort O) in (let TMP_143 \def (THead TMP_141 TMP_142 
-x3) in (let TMP_144 \def (eq T TMP_140 TMP_143) in (let TMP_145 \def 
-(False_ind TMP_144 H7) in (eq_ind_r T TMP_127 TMP_132 TMP_145 t2 
-H6)))))))))))))))))))))))))))))))) in (ex4_4_ind T T T T TMP_103 TMP_106 
-TMP_109 TMP_113 TMP_118 TMP_146 H1)))))))))))) in (let TMP_215 \def (\lambda 
-(H1: (ex6_6 B T T T T T (\lambda (b: B).(\lambda (_: T).(\lambda (_: 
-T).(\lambda (_: T).(\lambda (_: T).(\lambda (_: T).(not (eq B b Abst)))))))) 
-(\lambda (b: B).(\lambda (y1: T).(\lambda (z1: T).(\lambda (_: T).(\lambda 
-(_: T).(\lambda (_: T).(eq T (TSort O) (THead (Bind b) y1 z1)))))))) (\lambda 
-(b: B).(\lambda (_: T).(\lambda (_: T).(\lambda (z2: T).(\lambda (u2: 
-T).(\lambda (y2: T).(eq T t2 (THead (Bind b) y2 (THead (Flat Appl) (lift (S 
-O) O u2) z2))))))))) (\lambda (_: B).(\lambda (_: T).(\lambda (_: T).(\lambda 
-(_: T).(\lambda (u2: T).(\lambda (_: T).(pr2 (CSort O) (TSort O) u2))))))) 
-(\lambda (_: B).(\lambda (y1: T).(\lambda (_: T).(\lambda (_: T).(\lambda (_: 
-T).(\lambda (y2: T).(pr2 (CSort O) y1 y2))))))) (\lambda (b: B).(\lambda (_: 
-T).(\lambda (z1: T).(\lambda (z2: T).(\lambda (_: T).(\lambda (y2: T).(pr2 
-(CHead (CSort O) (Bind b) y2) z1 z2))))))))).(let TMP_149 \def (\lambda (b: 
-B).(\lambda (_: T).(\lambda (_: T).(\lambda (_: T).(\lambda (_: T).(\lambda 
-(_: T).(let TMP_148 \def (eq B b Abst) in (not TMP_148)))))))) in (let 
-TMP_153 \def (\lambda (b: B).(\lambda (y1: T).(\lambda (z1: T).(\lambda (_: 
-T).(\lambda (_: T).(\lambda (_: T).(let TMP_150 \def (TSort O) in (let 
-TMP_151 \def (Bind b) in (let TMP_152 \def (THead TMP_151 y1 z1) in (eq T 
-TMP_150 TMP_152)))))))))) in (let TMP_160 \def (\lambda (b: B).(\lambda (_: 
-T).(\lambda (_: T).(\lambda (z2: T).(\lambda (u2: T).(\lambda (y2: T).(let 
-TMP_154 \def (Bind b) in (let TMP_155 \def (Flat Appl) in (let TMP_156 \def 
-(S O) in (let TMP_157 \def (lift TMP_156 O u2) in (let TMP_158 \def (THead 
-TMP_155 TMP_157 z2) in (let TMP_159 \def (THead TMP_154 y2 TMP_158) in (eq T 
-t2 TMP_159))))))))))))) in (let TMP_163 \def (\lambda (_: B).(\lambda (_: 
-T).(\lambda (_: T).(\lambda (_: T).(\lambda (u2: T).(\lambda (_: T).(let 
-TMP_161 \def (CSort O) in (let TMP_162 \def (TSort O) in (pr2 TMP_161 TMP_162 
-u2))))))))) in (let TMP_165 \def (\lambda (_: B).(\lambda (y1: T).(\lambda 
-(_: T).(\lambda (_: T).(\lambda (_: T).(\lambda (y2: T).(let TMP_164 \def 
-(CSort O) in (pr2 TMP_164 y1 y2)))))))) in (let TMP_169 \def (\lambda (b: 
+(TSort O)) t2)).(let H0 \def (pr2_gen_appl (CSort O) (TSort O) (TSort O) t2 
+H) in (or3_ind (ex3_2 T T (\lambda (u2: T).(\lambda (t3: T).(eq T t2 (THead 
+(Flat Appl) u2 t3)))) (\lambda (u2: T).(\lambda (_: T).(pr2 (CSort O) (TSort 
+O) u2))) (\lambda (_: T).(\lambda (t3: T).(pr2 (CSort O) (TSort O) t3)))) 
+(ex4_4 T T T T (\lambda (y1: T).(\lambda (z1: T).(\lambda (_: T).(\lambda (_: 
+T).(eq T (TSort O) (THead (Bind Abst) y1 z1)))))) (\lambda (_: T).(\lambda 
+(_: T).(\lambda (u2: T).(\lambda (t3: T).(eq T t2 (THead (Bind Abbr) u2 
+t3)))))) (\lambda (_: T).(\lambda (_: T).(\lambda (u2: T).(\lambda (_: 
+T).(pr2 (CSort O) (TSort O) u2))))) (\lambda (_: T).(\lambda (z1: T).(\lambda 
+(_: T).(\lambda (t3: T).(\forall (b: B).(\forall (u: T).(pr2 (CHead (CSort O) 
+(Bind b) u) z1 t3)))))))) (ex6_6 B T T T T T (\lambda (b: B).(\lambda (_: 
+T).(\lambda (_: T).(\lambda (_: T).(\lambda (_: T).(\lambda (_: T).(not (eq B 
+b Abst)))))))) (\lambda (b: B).(\lambda (y1: T).(\lambda (z1: T).(\lambda (_: 
+T).(\lambda (_: T).(\lambda (_: T).(eq T (TSort O) (THead (Bind b) y1 
+z1)))))))) (\lambda (b: B).(\lambda (_: T).(\lambda (_: T).(\lambda (z2: 
+T).(\lambda (u2: T).(\lambda (y2: T).(eq T t2 (THead (Bind b) y2 (THead (Flat 
+Appl) (lift (S O) O u2) z2))))))))) (\lambda (_: B).(\lambda (_: T).(\lambda 
+(_: T).(\lambda (_: T).(\lambda (u2: T).(\lambda (_: T).(pr2 (CSort O) (TSort 
+O) u2))))))) (\lambda (_: B).(\lambda (y1: T).(\lambda (_: T).(\lambda (_: 
+T).(\lambda (_: T).(\lambda (y2: T).(pr2 (CSort O) y1 y2))))))) (\lambda (b: 
 B).(\lambda (_: T).(\lambda (z1: T).(\lambda (z2: T).(\lambda (_: T).(\lambda 
-(y2: T).(let TMP_166 \def (CSort O) in (let TMP_167 \def (Bind b) in (let 
-TMP_168 \def (CHead TMP_166 TMP_167 y2) in (pr2 TMP_168 z1 z2)))))))))) in 
-(let TMP_170 \def (Flat Appl) in (let TMP_171 \def (TSort O) in (let TMP_172 
-\def (TSort O) in (let TMP_173 \def (THead TMP_170 TMP_171 TMP_172) in (let 
-TMP_174 \def (eq T TMP_173 t2) in (let TMP_214 \def (\lambda (x0: B).(\lambda 
-(x1: T).(\lambda (x2: T).(\lambda (x3: T).(\lambda (x4: T).(\lambda (x5: 
-T).(\lambda (_: (not (eq B x0 Abst))).(\lambda (H3: (eq T (TSort O) (THead 
-(Bind x0) x1 x2))).(\lambda (H4: (eq T t2 (THead (Bind x0) x5 (THead (Flat 
-Appl) (lift (S O) O x4) x3)))).(\lambda (H5: (pr2 (CSort O) (TSort O) 
-x4)).(\lambda (H6: (pr2 (CSort O) x1 x5)).(\lambda (_: (pr2 (CHead (CSort O) 
-(Bind x0) x5) x2 x3)).(let H_y \def (pr2_gen_csort x1 x5 O H6) in (let 
-TMP_181 \def (\lambda (t: T).(let TMP_175 \def (Bind x0) in (let TMP_176 \def 
-(Flat Appl) in (let TMP_177 \def (S O) in (let TMP_178 \def (lift TMP_177 O 
-t) in (let TMP_179 \def (THead TMP_176 TMP_178 x3) in (let TMP_180 \def 
-(THead TMP_175 x5 TMP_179) in (eq T t2 TMP_180)))))))) in (let TMP_182 \def 
-(TSort O) in (let TMP_183 \def (CSort O) in (let TMP_184 \def (pr2_gen_sort 
-TMP_183 x4 O H5) in (let H8 \def (eq_ind T x4 TMP_181 H4 TMP_182 TMP_184) in 
-(let TMP_185 \def (Bind x0) in (let TMP_186 \def (Flat Appl) in (let TMP_187 
-\def (S O) in (let TMP_188 \def (TSort O) in (let TMP_189 \def (lift TMP_187 
-O TMP_188) in (let TMP_190 \def (THead TMP_186 TMP_189 x3) in (let TMP_191 
-\def (THead TMP_185 x5 TMP_190) in (let TMP_196 \def (\lambda (t: T).(let 
-TMP_192 \def (Flat Appl) in (let TMP_193 \def (TSort O) in (let TMP_194 \def 
-(TSort O) in (let TMP_195 \def (THead TMP_192 TMP_193 TMP_194) in (eq T 
-TMP_195 t)))))) in (let TMP_197 \def (TSort O) in (let TMP_198 \def (\lambda 
-(ee: T).(match ee with [(TSort _) \Rightarrow True | (TLRef _) \Rightarrow 
-False | (THead _ _ _) \Rightarrow False])) in (let TMP_199 \def (Bind x0) in 
-(let TMP_200 \def (THead TMP_199 x1 x2) in (let H9 \def (eq_ind T TMP_197 
-TMP_198 I TMP_200 H3) in (let TMP_201 \def (Flat Appl) in (let TMP_202 \def 
-(TSort O) in (let TMP_203 \def (TSort O) in (let TMP_204 \def (THead TMP_201 
-TMP_202 TMP_203) in (let TMP_205 \def (Bind x0) in (let TMP_206 \def (Flat 
-Appl) in (let TMP_207 \def (S O) in (let TMP_208 \def (TSort O) in (let 
-TMP_209 \def (lift TMP_207 O TMP_208) in (let TMP_210 \def (THead TMP_206 
-TMP_209 x3) in (let TMP_211 \def (THead TMP_205 x5 TMP_210) in (let TMP_212 
-\def (eq T TMP_204 TMP_211) in (let TMP_213 \def (False_ind TMP_212 H9) in 
-(eq_ind_r T TMP_191 TMP_196 TMP_213 t2 
-H8))))))))))))))))))))))))))))))))))))))))))))) in (ex6_6_ind B T T T T T 
-TMP_149 TMP_153 TMP_160 TMP_163 TMP_165 TMP_169 TMP_174 TMP_214 
-H1)))))))))))))) in (or3_ind TMP_13 TMP_28 TMP_51 TMP_56 TMP_99 TMP_147 
-TMP_215 H0)))))))))))))))))))))))))))))).
+(y2: T).(pr2 (CHead (CSort O) (Bind b) y2) z1 z2)))))))) (eq T (THead (Flat 
+Appl) (TSort O) (TSort O)) t2) (\lambda (H1: (ex3_2 T T (\lambda (u2: 
+T).(\lambda (t3: T).(eq T t2 (THead (Flat Appl) u2 t3)))) (\lambda (u2: 
+T).(\lambda (_: T).(pr2 (CSort O) (TSort O) u2))) (\lambda (_: T).(\lambda 
+(t3: T).(pr2 (CSort O) (TSort O) t3))))).(ex3_2_ind T T (\lambda (u2: 
+T).(\lambda (t3: T).(eq T t2 (THead (Flat Appl) u2 t3)))) (\lambda (u2: 
+T).(\lambda (_: T).(pr2 (CSort O) (TSort O) u2))) (\lambda (_: T).(\lambda 
+(t3: T).(pr2 (CSort O) (TSort O) t3))) (eq T (THead (Flat Appl) (TSort O) 
+(TSort O)) t2) (\lambda (x0: T).(\lambda (x1: T).(\lambda (H2: (eq T t2 
+(THead (Flat Appl) x0 x1))).(\lambda (H3: (pr2 (CSort O) (TSort O) 
+x0)).(\lambda (H4: (pr2 (CSort O) (TSort O) x1)).(let H5 \def (eq_ind T x1 
+(\lambda (t: T).(eq T t2 (THead (Flat Appl) x0 t))) H2 (TSort O) 
+(pr2_gen_sort (CSort O) x1 O H4)) in (let H6 \def (eq_ind T x0 (\lambda (t: 
+T).(eq T t2 (THead (Flat Appl) t (TSort O)))) H5 (TSort O) (pr2_gen_sort 
+(CSort O) x0 O H3)) in (eq_ind_r T (THead (Flat Appl) (TSort O) (TSort O)) 
+(\lambda (t: T).(eq T (THead (Flat Appl) (TSort O) (TSort O)) t)) (refl_equal 
+T (THead (Flat Appl) (TSort O) (TSort O))) t2 H6)))))))) H1)) (\lambda (H1: 
+(ex4_4 T T T T (\lambda (y1: T).(\lambda (z1: T).(\lambda (_: T).(\lambda (_: 
+T).(eq T (TSort O) (THead (Bind Abst) y1 z1)))))) (\lambda (_: T).(\lambda 
+(_: T).(\lambda (u2: T).(\lambda (t3: T).(eq T t2 (THead (Bind Abbr) u2 
+t3)))))) (\lambda (_: T).(\lambda (_: T).(\lambda (u2: T).(\lambda (_: 
+T).(pr2 (CSort O) (TSort O) u2))))) (\lambda (_: T).(\lambda (z1: T).(\lambda 
+(_: T).(\lambda (t3: T).(\forall (b: B).(\forall (u: T).(pr2 (CHead (CSort O) 
+(Bind b) u) z1 t3))))))))).(ex4_4_ind T T T T (\lambda (y1: T).(\lambda (z1: 
+T).(\lambda (_: T).(\lambda (_: T).(eq T (TSort O) (THead (Bind Abst) y1 
+z1)))))) (\lambda (_: T).(\lambda (_: T).(\lambda (u2: T).(\lambda (t3: 
+T).(eq T t2 (THead (Bind Abbr) u2 t3)))))) (\lambda (_: T).(\lambda (_: 
+T).(\lambda (u2: T).(\lambda (_: T).(pr2 (CSort O) (TSort O) u2))))) (\lambda 
+(_: T).(\lambda (z1: T).(\lambda (_: T).(\lambda (t3: T).(\forall (b: 
+B).(\forall (u: T).(pr2 (CHead (CSort O) (Bind b) u) z1 t3))))))) (eq T 
+(THead (Flat Appl) (TSort O) (TSort O)) t2) (\lambda (x0: T).(\lambda (x1: 
+T).(\lambda (x2: T).(\lambda (x3: T).(\lambda (H2: (eq T (TSort O) (THead 
+(Bind Abst) x0 x1))).(\lambda (H3: (eq T t2 (THead (Bind Abbr) x2 
+x3))).(\lambda (H4: (pr2 (CSort O) (TSort O) x2)).(\lambda (_: ((\forall (b: 
+B).(\forall (u: T).(pr2 (CHead (CSort O) (Bind b) u) x1 x3))))).(let H6 \def 
+(eq_ind T x2 (\lambda (t: T).(eq T t2 (THead (Bind Abbr) t x3))) H3 (TSort O) 
+(pr2_gen_sort (CSort O) x2 O H4)) in (eq_ind_r T (THead (Bind Abbr) (TSort O) 
+x3) (\lambda (t: T).(eq T (THead (Flat Appl) (TSort O) (TSort O)) t)) (let H7 
+\def (eq_ind T (TSort O) (\lambda (ee: T).(match ee with [(TSort _) 
+\Rightarrow True | (TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow 
+False])) I (THead (Bind Abst) x0 x1) H2) in (False_ind (eq T (THead (Flat 
+Appl) (TSort O) (TSort O)) (THead (Bind Abbr) (TSort O) x3)) H7)) t2 
+H6)))))))))) H1)) (\lambda (H1: (ex6_6 B T T T T T (\lambda (b: B).(\lambda 
+(_: T).(\lambda (_: T).(\lambda (_: T).(\lambda (_: T).(\lambda (_: T).(not 
+(eq B b Abst)))))))) (\lambda (b: B).(\lambda (y1: T).(\lambda (z1: 
+T).(\lambda (_: T).(\lambda (_: T).(\lambda (_: T).(eq T (TSort O) (THead 
+(Bind b) y1 z1)))))))) (\lambda (b: B).(\lambda (_: T).(\lambda (_: 
+T).(\lambda (z2: T).(\lambda (u2: T).(\lambda (y2: T).(eq T t2 (THead (Bind 
+b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))))))))) (\lambda (_: 
+B).(\lambda (_: T).(\lambda (_: T).(\lambda (_: T).(\lambda (u2: T).(\lambda 
+(_: T).(pr2 (CSort O) (TSort O) u2))))))) (\lambda (_: B).(\lambda (y1: 
+T).(\lambda (_: T).(\lambda (_: T).(\lambda (_: T).(\lambda (y2: T).(pr2 
+(CSort O) y1 y2))))))) (\lambda (b: B).(\lambda (_: T).(\lambda (z1: 
+T).(\lambda (z2: T).(\lambda (_: T).(\lambda (y2: T).(pr2 (CHead (CSort O) 
+(Bind b) y2) z1 z2))))))))).(ex6_6_ind B T T T T T (\lambda (b: B).(\lambda 
+(_: T).(\lambda (_: T).(\lambda (_: T).(\lambda (_: T).(\lambda (_: T).(not 
+(eq B b Abst)))))))) (\lambda (b: B).(\lambda (y1: T).(\lambda (z1: 
+T).(\lambda (_: T).(\lambda (_: T).(\lambda (_: T).(eq T (TSort O) (THead 
+(Bind b) y1 z1)))))))) (\lambda (b: B).(\lambda (_: T).(\lambda (_: 
+T).(\lambda (z2: T).(\lambda (u2: T).(\lambda (y2: T).(eq T t2 (THead (Bind 
+b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))))))))) (\lambda (_: 
+B).(\lambda (_: T).(\lambda (_: T).(\lambda (_: T).(\lambda (u2: T).(\lambda 
+(_: T).(pr2 (CSort O) (TSort O) u2))))))) (\lambda (_: B).(\lambda (y1: 
+T).(\lambda (_: T).(\lambda (_: T).(\lambda (_: T).(\lambda (y2: T).(pr2 
+(CSort O) y1 y2))))))) (\lambda (b: B).(\lambda (_: T).(\lambda (z1: 
+T).(\lambda (z2: T).(\lambda (_: T).(\lambda (y2: T).(pr2 (CHead (CSort O) 
+(Bind b) y2) z1 z2))))))) (eq T (THead (Flat Appl) (TSort O) (TSort O)) t2) 
+(\lambda (x0: B).(\lambda (x1: T).(\lambda (x2: T).(\lambda (x3: T).(\lambda 
+(x4: T).(\lambda (x5: T).(\lambda (_: (not (eq B x0 Abst))).(\lambda (H3: (eq 
+T (TSort O) (THead (Bind x0) x1 x2))).(\lambda (H4: (eq T t2 (THead (Bind x0) 
+x5 (THead (Flat Appl) (lift (S O) O x4) x3)))).(\lambda (H5: (pr2 (CSort O) 
+(TSort O) x4)).(\lambda (H6: (pr2 (CSort O) x1 x5)).(\lambda (_: (pr2 (CHead 
+(CSort O) (Bind x0) x5) x2 x3)).(let H_y \def (pr2_gen_csort x1 x5 O H6) in 
+(let H8 \def (eq_ind T x4 (\lambda (t: T).(eq T t2 (THead (Bind x0) x5 (THead 
+(Flat Appl) (lift (S O) O t) x3)))) H4 (TSort O) (pr2_gen_sort (CSort O) x4 O 
+H5)) in (eq_ind_r T (THead (Bind x0) x5 (THead (Flat Appl) (lift (S O) O 
+(TSort O)) x3)) (\lambda (t: T).(eq T (THead (Flat Appl) (TSort O) (TSort O)) 
+t)) (let H9 \def (eq_ind T (TSort O) (\lambda (ee: T).(match ee with [(TSort 
+_) \Rightarrow True | (TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow 
+False])) I (THead (Bind x0) x1 x2) H3) in (False_ind (eq T (THead (Flat Appl) 
+(TSort O) (TSort O)) (THead (Bind x0) x5 (THead (Flat Appl) (lift (S O) O 
+(TSort O)) x3))) H9)) t2 H8))))))))))))))) H1)) H0))).
 
 theorem ex2_arity:
  \forall (g: G).(\forall (a: A).((arity g ex2_c ex2_t a) \to (\forall (P: 
 Prop).P)))
 \def
  \lambda (g: G).(\lambda (a: A).(\lambda (H: (arity g (CSort O) (THead (Flat 
-Appl) (TSort O) (TSort O)) a)).(\lambda (P: Prop).(let TMP_1 \def (CSort O) 
-in (let TMP_2 \def (TSort O) in (let TMP_3 \def (TSort O) in (let H0 \def 
-(arity_gen_appl g TMP_1 TMP_2 TMP_3 a H) in (let TMP_6 \def (\lambda (a1: 
-A).(let TMP_4 \def (CSort O) in (let TMP_5 \def (TSort O) in (arity g TMP_4 
-TMP_5 a1)))) in (let TMP_10 \def (\lambda (a1: A).(let TMP_7 \def (CSort O) 
-in (let TMP_8 \def (TSort O) in (let TMP_9 \def (AHead a1 a) in (arity g 
-TMP_7 TMP_8 TMP_9))))) in (let TMP_24 \def (\lambda (x: A).(\lambda (_: 
-(arity g (CSort O) (TSort O) x)).(\lambda (H2: (arity g (CSort O) (TSort O) 
-(AHead x a))).(let TMP_11 \def (ASort O O) in (let TMP_12 \def (CSort O) in 
-(let TMP_13 \def (AHead x a) in (let TMP_14 \def (arity_gen_sort g TMP_12 O 
-TMP_13 H2) in (let H_x \def (leq_gen_head1 g x a TMP_11 TMP_14) in (let H3 
-\def H_x in (let TMP_15 \def (\lambda (a3: A).(\lambda (_: A).(leq g x a3))) 
-in (let TMP_16 \def (\lambda (_: A).(\lambda (a4: A).(leq g a a4))) in (let 
-TMP_19 \def (\lambda (a3: A).(\lambda (a4: A).(let TMP_17 \def (ASort O O) in 
-(let TMP_18 \def (AHead a3 a4) in (eq A TMP_17 TMP_18))))) in (let TMP_23 
-\def (\lambda (x0: A).(\lambda (x1: A).(\lambda (_: (leq g x x0)).(\lambda 
-(_: (leq g a x1)).(\lambda (H6: (eq A (ASort O O) (AHead x0 x1))).(let TMP_20 
-\def (ASort O O) in (let TMP_21 \def (\lambda (ee: A).(match ee with [(ASort 
-_ _) \Rightarrow True | (AHead _ _) \Rightarrow False])) in (let TMP_22 \def 
-(AHead x0 x1) in (let H7 \def (eq_ind A TMP_20 TMP_21 I TMP_22 H6) in 
-(False_ind P H7)))))))))) in (ex3_2_ind A A TMP_15 TMP_16 TMP_19 P TMP_23 
-H3)))))))))))))) in (ex2_ind A TMP_6 TMP_10 P TMP_24 H0))))))))))).
+Appl) (TSort O) (TSort O)) a)).(\lambda (P: Prop).(let H0 \def 
+(arity_gen_appl g (CSort O) (TSort O) (TSort O) a H) in (ex2_ind A (\lambda 
+(a1: A).(arity g (CSort O) (TSort O) a1)) (\lambda (a1: A).(arity g (CSort O) 
+(TSort O) (AHead a1 a))) P (\lambda (x: A).(\lambda (_: (arity g (CSort O) 
+(TSort O) x)).(\lambda (H2: (arity g (CSort O) (TSort O) (AHead x a))).(let 
+H_x \def (leq_gen_head1 g x a (ASort O O) (arity_gen_sort g (CSort O) O 
+(AHead x a) H2)) in (let H3 \def H_x in (ex3_2_ind A A (\lambda (a3: 
+A).(\lambda (_: A).(leq g x a3))) (\lambda (_: A).(\lambda (a4: A).(leq g a 
+a4))) (\lambda (a3: A).(\lambda (a4: A).(eq A (ASort O O) (AHead a3 a4)))) P 
+(\lambda (x0: A).(\lambda (x1: A).(\lambda (_: (leq g x x0)).(\lambda (_: 
+(leq g a x1)).(\lambda (H6: (eq A (ASort O O) (AHead x0 x1))).(let H7 \def 
+(eq_ind A (ASort O O) (\lambda (ee: A).(match ee with [(ASort _ _) 
+\Rightarrow True | (AHead _ _) \Rightarrow False])) I (AHead x0 x1) H6) in 
+(False_ind P H7))))))) H3)))))) H0))))).
 
index c4e7ed73fabee540aaa2a2e7b37e5be8be95d588..71e1028ee56a439cadd1a4ef06c0918c8ff1fdce 100644 (file)
@@ -19,13 +19,11 @@ include "basic_1/C/defs.ma".
 definition fweight:
  C \to (T \to nat)
 \def
- \lambda (c: C).(\lambda (t: T).(let TMP_1 \def (cweight c) in (let TMP_2 
-\def (tweight t) in (plus TMP_1 TMP_2)))).
+ \lambda (c: C).(\lambda (t: T).(plus (cweight c) (tweight t))).
 
 definition flt:
  C \to (T \to (C \to (T \to Prop)))
 \def
- \lambda (c1: C).(\lambda (t1: T).(\lambda (c2: C).(\lambda (t2: T).(let 
-TMP_1 \def (fweight c1 t1) in (let TMP_2 \def (fweight c2 t2) in (lt TMP_1 
-TMP_2)))))).
+ \lambda (c1: C).(\lambda (t1: T).(\lambda (c2: C).(\lambda (t2: T).(lt 
+(fweight c1 t1) (fweight c2 t2))))).
 
index b5bf9f87bf3d9e31fe1dc9a0e548608ac8ba1b33..c7720192a56ef6ddcb565318c8880dd3502b5270 100644 (file)
@@ -26,8 +26,7 @@ nat (fweight c t) n0) \to (P0 c t)))))) P n))) \to (\forall (c: C).(\forall
 (c: C).(\forall (t: T).((eq nat (fweight c t) n) \to (P c t)))))) in (\lambda 
 (P: ((C \to (T \to Prop)))).(\lambda (H: ((\forall (n: nat).(\forall (c: 
 C).(\forall (t: T).((eq nat (fweight c t) n) \to (P c t))))))).(\lambda (c: 
-C).(\lambda (t: T).(let TMP_1 \def (fweight c t) in (let TMP_2 \def (fweight 
-c t) in (let TMP_3 \def (refl_equal nat TMP_2) in (H TMP_1 c t TMP_3)))))))).
+C).(\lambda (t: T).(H (fweight c t) c t (refl_equal nat (fweight c t))))))).
 
 theorem flt_wf_ind:
  \forall (P: ((C \to (T \to Prop)))).(((\forall (c2: C).(\forall (t2: 
@@ -38,16 +37,13 @@ T).(((\forall (c1: C).(\forall (t1: T).((flt c1 t1 c2 t2) \to (P c1 t1)))))
 (c: C).(\forall (t: T).((eq nat (fweight c t) n) \to (P c t)))))) in (\lambda 
 (P: ((C \to (T \to Prop)))).(\lambda (H: ((\forall (c2: C).(\forall (t2: 
 T).(((\forall (c1: C).(\forall (t1: T).((flt c1 t1 c2 t2) \to (P c1 t1))))) 
-\to (P c2 t2)))))).(\lambda (c: C).(\lambda (t: T).(let TMP_9 \def (\lambda 
-(n: nat).(let TMP_1 \def (Q P) in (let TMP_8 \def (\lambda (n0: nat).(\lambda 
-(H0: ((\forall (m: nat).((lt m n0) \to (Q P m))))).(\lambda (c0: C).(\lambda 
-(t0: T).(\lambda (H1: (eq nat (fweight c0 t0) n0)).(let TMP_2 \def (\lambda 
-(n1: nat).(\forall (m: nat).((lt m n1) \to (\forall (c1: C).(\forall (t1: 
-T).((eq nat (fweight c1 t1) m) \to (P c1 t1))))))) in (let TMP_3 \def 
-(fweight c0 t0) in (let H2 \def (eq_ind_r nat n0 TMP_2 H0 TMP_3 H1) in (let 
-TMP_7 \def (\lambda (c1: C).(\lambda (t1: T).(\lambda (H3: (flt c1 t1 c0 
-t0)).(let TMP_4 \def (fweight c1 t1) in (let TMP_5 \def (fweight c1 t1) in 
-(let TMP_6 \def (refl_equal nat TMP_5) in (H2 TMP_4 H3 c1 t1 TMP_6))))))) in 
-(H c0 t0 TMP_7)))))))))) in (lt_wf_ind n TMP_1 TMP_8)))) in (flt_wf__q_ind P 
-TMP_9 c t)))))).
+\to (P c2 t2)))))).(\lambda (c: C).(\lambda (t: T).(flt_wf__q_ind P (\lambda 
+(n: nat).(lt_wf_ind n (Q P) (\lambda (n0: nat).(\lambda (H0: ((\forall (m: 
+nat).((lt m n0) \to (Q P m))))).(\lambda (c0: C).(\lambda (t0: T).(\lambda 
+(H1: (eq nat (fweight c0 t0) n0)).(let H2 \def (eq_ind_r nat n0 (\lambda (n1: 
+nat).(\forall (m: nat).((lt m n1) \to (\forall (c1: C).(\forall (t1: T).((eq 
+nat (fweight c1 t1) m) \to (P c1 t1))))))) H0 (fweight c0 t0) H1) in (H c0 t0 
+(\lambda (c1: C).(\lambda (t1: T).(\lambda (H3: (flt c1 t1 c0 t0)).(H2 
+(fweight c1 t1) H3 c1 t1 (refl_equal nat (fweight c1 t1))))))))))))))) c 
+t))))).
 
index 8c69278e3f650be261b5d1714d1238f15304f56d..61344ece03b5981257939e4a3039d19e4e8a116a 100644 (file)
@@ -22,68 +22,38 @@ theorem flt_thead_sx:
  \forall (k: K).(\forall (c: C).(\forall (u: T).(\forall (t: T).(flt c u c 
 (THead k u t)))))
 \def
- \lambda (_: K).(\lambda (c: C).(\lambda (u: T).(\lambda (t: T).(let TMP_1 
-\def (tweight u) in (let TMP_2 \def (tweight u) in (let TMP_3 \def (tweight 
-t) in (let TMP_4 \def (plus TMP_2 TMP_3) in (let TMP_5 \def (S TMP_4) in (let 
-TMP_6 \def (cweight c) in (let TMP_7 \def (tweight u) in (let TMP_8 \def 
-(tweight u) in (let TMP_9 \def (tweight t) in (let TMP_10 \def (plus TMP_8 
-TMP_9) in (let TMP_11 \def (tweight u) in (let TMP_12 \def (tweight t) in 
-(let TMP_13 \def (le_plus_l TMP_11 TMP_12) in (let TMP_14 \def (le_n_S TMP_7 
-TMP_10 TMP_13) in (lt_reg_l TMP_1 TMP_5 TMP_6 TMP_14)))))))))))))))))).
+ \lambda (_: K).(\lambda (c: C).(\lambda (u: T).(\lambda (t: T).(lt_reg_l 
+(tweight u) (S (plus (tweight u) (tweight t))) (cweight c) (le_n_S (tweight 
+u) (plus (tweight u) (tweight t)) (le_plus_l (tweight u) (tweight t))))))).
 
 theorem flt_thead_dx:
  \forall (k: K).(\forall (c: C).(\forall (u: T).(\forall (t: T).(flt c t c 
 (THead k u t)))))
 \def
- \lambda (_: K).(\lambda (c: C).(\lambda (u: T).(\lambda (t: T).(let TMP_1 
-\def (tweight t) in (let TMP_2 \def (tweight u) in (let TMP_3 \def (tweight 
-t) in (let TMP_4 \def (plus TMP_2 TMP_3) in (let TMP_5 \def (S TMP_4) in (let 
-TMP_6 \def (cweight c) in (let TMP_7 \def (tweight t) in (let TMP_8 \def 
-(tweight u) in (let TMP_9 \def (tweight t) in (let TMP_10 \def (plus TMP_8 
-TMP_9) in (let TMP_11 \def (tweight u) in (let TMP_12 \def (tweight t) in 
-(let TMP_13 \def (le_plus_r TMP_11 TMP_12) in (let TMP_14 \def (le_n_S TMP_7 
-TMP_10 TMP_13) in (lt_reg_l TMP_1 TMP_5 TMP_6 TMP_14)))))))))))))))))).
+ \lambda (_: K).(\lambda (c: C).(\lambda (u: T).(\lambda (t: T).(lt_reg_l 
+(tweight t) (S (plus (tweight u) (tweight t))) (cweight c) (le_n_S (tweight 
+t) (plus (tweight u) (tweight t)) (le_plus_r (tweight u) (tweight t))))))).
 
 theorem flt_shift:
  \forall (k: K).(\forall (c: C).(\forall (u: T).(\forall (t: T).(flt (CHead c 
 k u) t c (THead k u t)))))
 \def
- \lambda (_: K).(\lambda (c: C).(\lambda (u: T).(\lambda (t: T).(let TMP_1 
-\def (cweight c) in (let TMP_2 \def (tweight u) in (let TMP_3 \def (tweight 
-t) in (let TMP_4 \def (plus TMP_2 TMP_3) in (let TMP_5 \def (plus TMP_1 
-TMP_4) in (let TMP_6 \def (S TMP_5) in (let TMP_12 \def (\lambda (n: 
-nat).(let TMP_7 \def (cweight c) in (let TMP_8 \def (tweight u) in (let TMP_9 
-\def (plus TMP_7 TMP_8) in (let TMP_10 \def (tweight t) in (let TMP_11 \def 
-(plus TMP_9 TMP_10) in (lt TMP_11 n))))))) in (let TMP_13 \def (cweight c) in 
-(let TMP_14 \def (tweight u) in (let TMP_15 \def (plus TMP_13 TMP_14) in (let 
-TMP_16 \def (tweight t) in (let TMP_17 \def (plus TMP_15 TMP_16) in (let 
-TMP_24 \def (\lambda (n: nat).(let TMP_18 \def (cweight c) in (let TMP_19 
-\def (tweight u) in (let TMP_20 \def (plus TMP_18 TMP_19) in (let TMP_21 \def 
-(tweight t) in (let TMP_22 \def (plus TMP_20 TMP_21) in (let TMP_23 \def (S 
-n) in (lt TMP_22 TMP_23)))))))) in (let TMP_25 \def (cweight c) in (let 
-TMP_26 \def (tweight u) in (let TMP_27 \def (plus TMP_25 TMP_26) in (let 
-TMP_28 \def (tweight t) in (let TMP_29 \def (plus TMP_27 TMP_28) in (let 
-TMP_30 \def (S TMP_29) in (let TMP_31 \def (le_n TMP_30) in (let TMP_32 \def 
-(cweight c) in (let TMP_33 \def (tweight u) in (let TMP_34 \def (tweight t) 
-in (let TMP_35 \def (plus TMP_33 TMP_34) in (let TMP_36 \def (plus TMP_32 
-TMP_35) in (let TMP_37 \def (cweight c) in (let TMP_38 \def (tweight u) in 
-(let TMP_39 \def (tweight t) in (let TMP_40 \def (plus_assoc_l TMP_37 TMP_38 
-TMP_39) in (let TMP_41 \def (eq_ind_r nat TMP_17 TMP_24 TMP_31 TMP_36 TMP_40) 
-in (let TMP_42 \def (cweight c) in (let TMP_43 \def (tweight u) in (let 
-TMP_44 \def (tweight t) in (let TMP_45 \def (plus TMP_43 TMP_44) in (let 
-TMP_46 \def (S TMP_45) in (let TMP_47 \def (plus TMP_42 TMP_46) in (let 
-TMP_48 \def (cweight c) in (let TMP_49 \def (tweight u) in (let TMP_50 \def 
-(tweight t) in (let TMP_51 \def (plus TMP_49 TMP_50) in (let TMP_52 \def 
-(plus_n_Sm TMP_48 TMP_51) in (eq_ind nat TMP_6 TMP_12 TMP_41 TMP_47 
-TMP_52))))))))))))))))))))))))))))))))))))))))))))).
+ \lambda (_: K).(\lambda (c: C).(\lambda (u: T).(\lambda (t: T).(eq_ind nat 
+(S (plus (cweight c) (plus (tweight u) (tweight t)))) (\lambda (n: nat).(lt 
+(plus (plus (cweight c) (tweight u)) (tweight t)) n)) (eq_ind_r nat (plus 
+(plus (cweight c) (tweight u)) (tweight t)) (\lambda (n: nat).(lt (plus (plus 
+(cweight c) (tweight u)) (tweight t)) (S n))) (le_n (S (plus (plus (cweight 
+c) (tweight u)) (tweight t)))) (plus (cweight c) (plus (tweight u) (tweight 
+t))) (plus_assoc_l (cweight c) (tweight u) (tweight t))) (plus (cweight c) (S 
+(plus (tweight u) (tweight t)))) (plus_n_Sm (cweight c) (plus (tweight u) 
+(tweight t))))))).
 
 theorem flt_arith0:
  \forall (k: K).(\forall (c: C).(\forall (t: T).(\forall (i: nat).(flt c t 
 (CHead c k t) (TLRef i)))))
 \def
- \lambda (_: K).(\lambda (c: C).(\lambda (t: T).(\lambda (_: nat).(let TMP_1 
-\def (cweight c) in (let TMP_2 \def (tweight t) in (let TMP_3 \def (plus 
-TMP_1 TMP_2) in (lt_x_plus_x_Sy TMP_3 O))))))).
+ \lambda (_: K).(\lambda (c: C).(\lambda (t: T).(\lambda (_: 
+nat).(lt_x_plus_x_Sy (plus (cweight c) (tweight t)) O)))).
 
 theorem flt_arith1:
  \forall (k1: K).(\forall (c1: C).(\forall (c2: C).(\forall (t1: T).((cle 
@@ -92,25 +62,13 @@ nat).(flt c1 t1 (CHead c2 k2 t2) (TLRef i)))))))))
 \def
  \lambda (_: K).(\lambda (c1: C).(\lambda (c2: C).(\lambda (t1: T).(\lambda 
 (H: (le (plus (cweight c1) (tweight t1)) (cweight c2))).(\lambda (_: 
-K).(\lambda (t2: T).(\lambda (_: nat).(let TMP_1 \def (cweight c1) in (let 
-TMP_2 \def (tweight t1) in (let TMP_3 \def (plus TMP_1 TMP_2) in (let TMP_4 
-\def (cweight c2) in (let TMP_5 \def (cweight c2) in (let TMP_6 \def (tweight 
-t2) in (let TMP_7 \def (plus TMP_5 TMP_6) in (let TMP_8 \def (S O) in (let 
-TMP_9 \def (plus TMP_7 TMP_8) in (let TMP_10 \def (S O) in (let TMP_11 \def 
-(cweight c2) in (let TMP_12 \def (tweight t2) in (let TMP_13 \def (plus 
-TMP_11 TMP_12) in (let TMP_14 \def (plus TMP_10 TMP_13) in (let TMP_16 \def 
-(\lambda (n: nat).(let TMP_15 \def (cweight c2) in (lt TMP_15 n))) in (let 
-TMP_17 \def (cweight c2) in (let TMP_18 \def (cweight c2) in (let TMP_19 \def 
-(tweight t2) in (let TMP_20 \def (plus TMP_18 TMP_19) in (let TMP_21 \def 
-(cweight c2) in (let TMP_22 \def (tweight t2) in (let TMP_23 \def (le_plus_l 
-TMP_21 TMP_22) in (let TMP_24 \def (le_lt_n_Sm TMP_17 TMP_20 TMP_23) in (let 
-TMP_25 \def (cweight c2) in (let TMP_26 \def (tweight t2) in (let TMP_27 \def 
-(plus TMP_25 TMP_26) in (let TMP_28 \def (S O) in (let TMP_29 \def (plus 
-TMP_27 TMP_28) in (let TMP_30 \def (cweight c2) in (let TMP_31 \def (tweight 
-t2) in (let TMP_32 \def (plus TMP_30 TMP_31) in (let TMP_33 \def (S O) in 
-(let TMP_34 \def (plus_sym TMP_32 TMP_33) in (let TMP_35 \def (eq_ind_r nat 
-TMP_14 TMP_16 TMP_24 TMP_29 TMP_34) in (le_lt_trans TMP_3 TMP_4 TMP_9 H 
-TMP_35)))))))))))))))))))))))))))))))))))))))))).
+K).(\lambda (t2: T).(\lambda (_: nat).(le_lt_trans (plus (cweight c1) 
+(tweight t1)) (cweight c2) (plus (plus (cweight c2) (tweight t2)) (S O)) H 
+(eq_ind_r nat (plus (S O) (plus (cweight c2) (tweight t2))) (\lambda (n: 
+nat).(lt (cweight c2) n)) (le_lt_n_Sm (cweight c2) (plus (cweight c2) 
+(tweight t2)) (le_plus_l (cweight c2) (tweight t2))) (plus (plus (cweight c2) 
+(tweight t2)) (S O)) (plus_sym (plus (cweight c2) (tweight t2)) (S 
+O))))))))))).
 
 theorem flt_arith2:
  \forall (c1: C).(\forall (c2: C).(\forall (t1: T).(\forall (i: nat).((flt c1 
@@ -119,19 +77,10 @@ c1 t1 (CHead c2 k2 t2) (TLRef j)))))))))
 \def
  \lambda (c1: C).(\lambda (c2: C).(\lambda (t1: T).(\lambda (_: nat).(\lambda 
 (H: (lt (plus (cweight c1) (tweight t1)) (plus (cweight c2) (S O)))).(\lambda 
-(_: K).(\lambda (t2: T).(\lambda (_: nat).(let TMP_1 \def (cweight c1) in 
-(let TMP_2 \def (tweight t1) in (let TMP_3 \def (plus TMP_1 TMP_2) in (let 
-TMP_4 \def (cweight c2) in (let TMP_5 \def (S O) in (let TMP_6 \def (plus 
-TMP_4 TMP_5) in (let TMP_7 \def (cweight c2) in (let TMP_8 \def (tweight t2) 
-in (let TMP_9 \def (plus TMP_7 TMP_8) in (let TMP_10 \def (S O) in (let 
-TMP_11 \def (plus TMP_9 TMP_10) in (let TMP_12 \def (cweight c2) in (let 
-TMP_13 \def (cweight c2) in (let TMP_14 \def (tweight t2) in (let TMP_15 \def 
-(plus TMP_13 TMP_14) in (let TMP_16 \def (S O) in (let TMP_17 \def (S O) in 
-(let TMP_18 \def (cweight c2) in (let TMP_19 \def (tweight t2) in (let TMP_20 
-\def (le_plus_l TMP_18 TMP_19) in (let TMP_21 \def (S O) in (let TMP_22 \def 
-(le_n TMP_21) in (let TMP_23 \def (le_plus_plus TMP_12 TMP_15 TMP_16 TMP_17 
-TMP_20 TMP_22) in (lt_le_trans TMP_3 TMP_6 TMP_11 H 
-TMP_23))))))))))))))))))))))))))))))).
+(_: K).(\lambda (t2: T).(\lambda (_: nat).(lt_le_trans (plus (cweight c1) 
+(tweight t1)) (plus (cweight c2) (S O)) (plus (plus (cweight c2) (tweight 
+t2)) (S O)) H (le_plus_plus (cweight c2) (plus (cweight c2) (tweight t2)) (S 
+O) (S O) (le_plus_l (cweight c2) (tweight t2)) (le_n (S O))))))))))).
 
 theorem cle_flt_trans:
  \forall (c1: C).(\forall (c2: C).((cle c1 c2) \to (\forall (c3: C).(\forall 
@@ -139,16 +88,10 @@ theorem cle_flt_trans:
 \def
  \lambda (c1: C).(\lambda (c2: C).(\lambda (H: (le (cweight c1) (cweight 
 c2))).(\lambda (c3: C).(\lambda (u2: T).(\lambda (u3: T).(\lambda (H0: (lt 
-(plus (cweight c2) (tweight u2)) (plus (cweight c3) (tweight u3)))).(let 
-TMP_1 \def (cweight c1) in (let TMP_2 \def (tweight u2) in (let TMP_3 \def 
-(plus TMP_1 TMP_2) in (let TMP_4 \def (cweight c2) in (let TMP_5 \def 
-(tweight u2) in (let TMP_6 \def (plus TMP_4 TMP_5) in (let TMP_7 \def 
-(cweight c3) in (let TMP_8 \def (tweight u3) in (let TMP_9 \def (plus TMP_7 
-TMP_8) in (let TMP_10 \def (cweight c1) in (let TMP_11 \def (cweight c2) in 
-(let TMP_12 \def (tweight u2) in (let TMP_13 \def (tweight u2) in (let TMP_14 
-\def (tweight u2) in (let TMP_15 \def (le_n TMP_14) in (let TMP_16 \def 
-(le_plus_plus TMP_10 TMP_11 TMP_12 TMP_13 H TMP_15) in (le_lt_trans TMP_3 
-TMP_6 TMP_9 TMP_16 H0))))))))))))))))))))))).
+(plus (cweight c2) (tweight u2)) (plus (cweight c3) (tweight 
+u3)))).(le_lt_trans (plus (cweight c1) (tweight u2)) (plus (cweight c2) 
+(tweight u2)) (plus (cweight c3) (tweight u3)) (le_plus_plus (cweight c1) 
+(cweight c2) (tweight u2) (tweight u2) H (le_n (tweight u2))) H0))))))).
 
 theorem flt_trans:
  \forall (c1: C).(\forall (c2: C).(\forall (t1: T).(\forall (t2: T).((flt c1 
@@ -157,7 +100,6 @@ c1 t1 c3 t3))))))))
 \def
  \lambda (c1: C).(\lambda (c2: C).(\lambda (t1: T).(\lambda (t2: T).(\lambda 
 (H: (lt (fweight c1 t1) (fweight c2 t2))).(\lambda (c3: C).(\lambda (t3: 
-T).(\lambda (H0: (lt (fweight c2 t2) (fweight c3 t3))).(let TMP_1 \def 
-(fweight c1 t1) in (let TMP_2 \def (fweight c2 t2) in (let TMP_3 \def 
-(fweight c3 t3) in (lt_trans TMP_1 TMP_2 TMP_3 H H0))))))))))).
+T).(\lambda (H0: (lt (fweight c2 t2) (fweight c3 t3))).(lt_trans (fweight c1 
+t1) (fweight c2 t2) (fweight c3 t3) H H0)))))))).
 
index f43d06c9416a9b3787c2cdc09b0649c026f4b676..97f8507191fc114ddf5e2b268801fb0e2c6fd436 100644 (file)
@@ -40,37 +40,18 @@ 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)).(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))))))))))).
+(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))))))).
 
index ab74ba390e37ed717d135fea2d5789c47c33a3be..e091d8b0dc1ff657efdc67826fe33f8aea1ad412 100644 (file)
@@ -22,42 +22,31 @@ theorem clear_getl_trans:
  \forall (i: nat).(\forall (c2: C).(\forall (c3: C).((getl i c2 c3) \to 
 (\forall (c1: C).((clear c1 c2) \to (getl i c1 c3))))))
 \def
- \lambda (i: nat).(let TMP_1 \def (\lambda (n: nat).(\forall (c2: C).(\forall 
-(c3: C).((getl n c2 c3) \to (\forall (c1: C).((clear c1 c2) \to (getl n c1 
-c3))))))) in (let TMP_5 \def (\lambda (c2: C).(\lambda (c3: C).(\lambda (H: 
-(getl O c2 c3)).(\lambda (c1: C).(\lambda (H0: (clear c1 c2)).(let TMP_2 \def 
-(drop_refl c1) in (let TMP_3 \def (getl_gen_O c2 c3 H) in (let TMP_4 \def 
-(clear_trans c1 c2 H0 c3 TMP_3) in (getl_intro O c1 c3 c1 TMP_2 
-TMP_4))))))))) in (let TMP_30 \def (\lambda (n: nat).(\lambda (_: ((\forall 
-(c2: C).(\forall (c3: C).((getl n c2 c3) \to (\forall (c1: C).((clear c1 c2) 
-\to (getl n c1 c3)))))))).(\lambda (c2: C).(let TMP_7 \def (\lambda (c: 
-C).(\forall (c3: C).((getl (S n) c c3) \to (\forall (c1: C).((clear c1 c) \to 
-(let TMP_6 \def (S n) in (getl TMP_6 c1 c3))))))) in (let TMP_11 \def 
-(\lambda (n0: nat).(\lambda (c3: C).(\lambda (H0: (getl (S n) (CSort n0) 
-c3)).(\lambda (c1: C).(\lambda (_: (clear c1 (CSort n0))).(let TMP_8 \def (S 
-n) in (let TMP_9 \def (S n) in (let TMP_10 \def (getl TMP_9 c1 c3) in 
-(getl_gen_sort n0 TMP_8 c3 H0 TMP_10))))))))) in (let TMP_29 \def (\lambda 
-(c: C).(\lambda (_: ((\forall (c3: C).((getl (S n) c c3) \to (\forall (c1: 
-C).((clear c1 c) \to (getl (S n) c1 c3))))))).(\lambda (k: K).(\lambda (t: 
-T).(\lambda (c3: C).(\lambda (H1: (getl (S n) (CHead c k t) c3)).(\lambda 
-(c1: C).(\lambda (H2: (clear c1 (CHead c k t))).(let TMP_13 \def (\lambda 
+ \lambda (i: nat).(nat_ind (\lambda (n: nat).(\forall (c2: C).(\forall (c3: 
+C).((getl n c2 c3) \to (\forall (c1: C).((clear c1 c2) \to (getl n c1 
+c3))))))) (\lambda (c2: C).(\lambda (c3: C).(\lambda (H: (getl O c2 
+c3)).(\lambda (c1: C).(\lambda (H0: (clear c1 c2)).(getl_intro O c1 c3 c1 
+(drop_refl c1) (clear_trans c1 c2 H0 c3 (getl_gen_O c2 c3 H)))))))) (\lambda 
+(n: nat).(\lambda (_: ((\forall (c2: C).(\forall (c3: C).((getl n c2 c3) \to 
+(\forall (c1: C).((clear c1 c2) \to (getl n c1 c3)))))))).(\lambda (c2: 
+C).(C_ind (\lambda (c: C).(\forall (c3: C).((getl (S n) c c3) \to (\forall 
+(c1: C).((clear c1 c) \to (getl (S n) c1 c3)))))) (\lambda (n0: nat).(\lambda 
+(c3: C).(\lambda (H0: (getl (S n) (CSort n0) c3)).(\lambda (c1: C).(\lambda 
+(_: (clear c1 (CSort n0))).(getl_gen_sort n0 (S n) c3 H0 (getl (S n) c1 
+c3))))))) (\lambda (c: C).(\lambda (_: ((\forall (c3: C).((getl (S n) c c3) 
+\to (\forall (c1: C).((clear c1 c) \to (getl (S n) c1 c3))))))).(\lambda (k: 
+K).(\lambda (t: T).(\lambda (c3: C).(\lambda (H1: (getl (S n) (CHead c k t) 
+c3)).(\lambda (c1: C).(\lambda (H2: (clear c1 (CHead c k t))).(K_ind (\lambda 
 (k0: K).((getl (S n) (CHead c k0 t) c3) \to ((clear c1 (CHead c k0 t)) \to 
-(let TMP_12 \def (S n) in (getl TMP_12 c1 c3))))) in (let TMP_25 \def 
-(\lambda (b: B).(\lambda (H3: (getl (S n) (CHead c (Bind b) t) c3)).(\lambda 
-(H4: (clear c1 (CHead c (Bind b) t))).(let TMP_14 \def (Bind b) in (let 
-TMP_15 \def (r TMP_14 n) in (let TMP_16 \def (Bind b) in (let TMP_17 \def 
-(getl_gen_S TMP_16 c c3 t n H3) in (let H5 \def (getl_gen_all c c3 TMP_15 
-TMP_17) in (let TMP_18 \def (\lambda (e: C).(drop n O c e)) in (let TMP_19 
-\def (\lambda (e: C).(clear e c3)) in (let TMP_20 \def (S n) in (let TMP_21 
-\def (getl TMP_20 c1 c3) in (let TMP_24 \def (\lambda (x: C).(\lambda (H6: 
-(drop n O c x)).(\lambda (H7: (clear x c3)).(let TMP_22 \def (S n) in (let 
-TMP_23 \def (drop_clear_O b c1 c t H4 x n H6) in (getl_intro TMP_22 c1 c3 x 
-TMP_23 H7)))))) in (ex2_ind C TMP_18 TMP_19 TMP_21 TMP_24 H5)))))))))))))) in 
-(let TMP_28 \def (\lambda (f: F).(\lambda (_: (getl (S n) (CHead c (Flat f) 
-t) c3)).(\lambda (H4: (clear c1 (CHead c (Flat f) t))).(let TMP_26 \def (S n) 
-in (let TMP_27 \def (getl TMP_26 c1 c3) in (clear_gen_flat_r f c1 c t H4 
-TMP_27)))))) in (K_ind TMP_13 TMP_25 TMP_28 k H1 H2)))))))))))) in (C_ind 
-TMP_7 TMP_11 TMP_29 c2))))))) in (nat_ind TMP_1 TMP_5 TMP_30 i)))).
+(getl (S n) c1 c3)))) (\lambda (b: B).(\lambda (H3: (getl (S n) (CHead c 
+(Bind b) t) c3)).(\lambda (H4: (clear c1 (CHead c (Bind b) t))).(let H5 \def 
+(getl_gen_all c c3 (r (Bind b) n) (getl_gen_S (Bind b) c c3 t n H3)) in 
+(ex2_ind C (\lambda (e: C).(drop n O c e)) (\lambda (e: C).(clear e c3)) 
+(getl (S n) c1 c3) (\lambda (x: C).(\lambda (H6: (drop n O c x)).(\lambda 
+(H7: (clear x c3)).(getl_intro (S n) c1 c3 x (drop_clear_O b c1 c t H4 x n 
+H6) H7)))) H5))))) (\lambda (f: F).(\lambda (_: (getl (S n) (CHead c (Flat f) 
+t) c3)).(\lambda (H4: (clear c1 (CHead c (Flat f) t))).(clear_gen_flat_r f c1 
+c t H4 (getl (S n) c1 c3))))) k H1 H2))))))))) c2)))) i).
 
 theorem getl_clear_trans:
  \forall (i: nat).(\forall (c1: C).(\forall (c2: C).((getl i c1 c2) \to 
@@ -65,129 +54,86 @@ theorem getl_clear_trans:
 \def
  \lambda (i: nat).(\lambda (c1: C).(\lambda (c2: C).(\lambda (H: (getl i c1 
 c2)).(\lambda (c3: C).(\lambda (H0: (clear c2 c3)).(let H1 \def (getl_gen_all 
-c1 c2 i H) in (let TMP_1 \def (\lambda (e: C).(drop i O c1 e)) in (let TMP_2 
-\def (\lambda (e: C).(clear e c2)) in (let TMP_3 \def (getl i c1 c3) in (let 
-TMP_22 \def (\lambda (x: C).(\lambda (H2: (drop i O c1 x)).(\lambda (H3: 
-(clear x c2)).(let H4 \def (clear_gen_all x c2 H3) in (let TMP_6 \def 
-(\lambda (b: B).(\lambda (e: C).(\lambda (u: T).(let TMP_4 \def (Bind b) in 
-(let TMP_5 \def (CHead e TMP_4 u) in (eq C c2 TMP_5)))))) in (let TMP_7 \def 
-(getl i c1 c3) in (let TMP_21 \def (\lambda (x0: B).(\lambda (x1: C).(\lambda 
-(x2: T).(\lambda (H5: (eq C c2 (CHead x1 (Bind x0) x2))).(let TMP_8 \def 
-(\lambda (c: C).(clear x c)) in (let TMP_9 \def (Bind x0) in (let TMP_10 \def 
-(CHead x1 TMP_9 x2) in (let H6 \def (eq_ind C c2 TMP_8 H3 TMP_10 H5) in (let 
-TMP_11 \def (\lambda (c: C).(clear c c3)) in (let TMP_12 \def (Bind x0) in 
-(let TMP_13 \def (CHead x1 TMP_12 x2) in (let H7 \def (eq_ind C c2 TMP_11 H0 
-TMP_13 H5) in (let TMP_14 \def (Bind x0) in (let TMP_15 \def (CHead x1 TMP_14 
-x2) in (let TMP_16 \def (\lambda (c: C).(getl i c1 c)) in (let TMP_17 \def 
-(Bind x0) in (let TMP_18 \def (CHead x1 TMP_17 x2) in (let TMP_19 \def 
-(getl_intro i c1 TMP_18 x H2 H6) in (let TMP_20 \def (clear_gen_bind x0 x1 c3 
-x2 H7) in (eq_ind_r C TMP_15 TMP_16 TMP_19 c3 TMP_20)))))))))))))))))))) in 
-(ex_3_ind B C T TMP_6 TMP_7 TMP_21 H4)))))))) in (ex2_ind C TMP_1 TMP_2 TMP_3 
-TMP_22 H1))))))))))).
+c1 c2 i H) in (ex2_ind C (\lambda (e: C).(drop i O c1 e)) (\lambda (e: 
+C).(clear e c2)) (getl i c1 c3) (\lambda (x: C).(\lambda (H2: (drop i O c1 
+x)).(\lambda (H3: (clear x c2)).(let H4 \def (clear_gen_all x c2 H3) in 
+(ex_3_ind B C T (\lambda (b: B).(\lambda (e: C).(\lambda (u: T).(eq C c2 
+(CHead e (Bind b) u))))) (getl i c1 c3) (\lambda (x0: B).(\lambda (x1: 
+C).(\lambda (x2: T).(\lambda (H5: (eq C c2 (CHead x1 (Bind x0) x2))).(let H6 
+\def (eq_ind C c2 (\lambda (c: C).(clear x c)) H3 (CHead x1 (Bind x0) x2) H5) 
+in (let H7 \def (eq_ind C c2 (\lambda (c: C).(clear c c3)) H0 (CHead x1 (Bind 
+x0) x2) H5) in (eq_ind_r C (CHead x1 (Bind x0) x2) (\lambda (c: C).(getl i c1 
+c)) (getl_intro i c1 (CHead x1 (Bind x0) x2) x H2 H6) c3 (clear_gen_bind x0 
+x1 c3 x2 H7)))))))) H4))))) H1))))))).
 
 theorem getl_clear_bind:
  \forall (b: B).(\forall (c: C).(\forall (e1: C).(\forall (v: T).((clear c 
 (CHead e1 (Bind b) v)) \to (\forall (e2: C).(\forall (n: nat).((getl n e1 e2) 
 \to (getl (S n) c e2))))))))
 \def
- \lambda (b: B).(\lambda (c: C).(let TMP_2 \def (\lambda (c0: C).(\forall 
-(e1: C).(\forall (v: T).((clear c0 (CHead e1 (Bind b) v)) \to (\forall (e2: 
-C).(\forall (n: nat).((getl n e1 e2) \to (let TMP_1 \def (S n) in (getl TMP_1 
-c0 e2))))))))) in (let TMP_8 \def (\lambda (n: nat).(\lambda (e1: C).(\lambda 
-(v: T).(\lambda (H: (clear (CSort n) (CHead e1 (Bind b) v))).(\lambda (e2: 
-C).(\lambda (n0: nat).(\lambda (_: (getl n0 e1 e2)).(let TMP_3 \def (Bind b) 
-in (let TMP_4 \def (CHead e1 TMP_3 v) in (let TMP_5 \def (S n0) in (let TMP_6 
-\def (CSort n) in (let TMP_7 \def (getl TMP_5 TMP_6 e2) in (clear_gen_sort 
-TMP_4 n H TMP_7))))))))))))) in (let TMP_52 \def (\lambda (c0: C).(\lambda 
-(H: ((\forall (e1: C).(\forall (v: T).((clear c0 (CHead e1 (Bind b) v)) \to 
-(\forall (e2: C).(\forall (n: nat).((getl n e1 e2) \to (getl (S n) c0 
-e2))))))))).(\lambda (k: K).(\lambda (t: T).(\lambda (e1: C).(\lambda (v: 
-T).(\lambda (H0: (clear (CHead c0 k t) (CHead e1 (Bind b) v))).(\lambda (e2: 
-C).(\lambda (n: nat).(\lambda (H1: (getl n e1 e2)).(let TMP_11 \def (\lambda 
-(k0: K).((clear (CHead c0 k0 t) (CHead e1 (Bind b) v)) \to (let TMP_9 \def (S 
-n) in (let TMP_10 \def (CHead c0 k0 t) in (getl TMP_9 TMP_10 e2))))) in (let 
-TMP_45 \def (\lambda (b0: B).(\lambda (H2: (clear (CHead c0 (Bind b0) t) 
-(CHead e1 (Bind b) v))).(let TMP_12 \def (\lambda (e: C).(match e with 
-[(CSort _) \Rightarrow e1 | (CHead c1 _ _) \Rightarrow c1])) in (let TMP_13 
-\def (Bind b) in (let TMP_14 \def (CHead e1 TMP_13 v) in (let TMP_15 \def 
-(Bind b0) in (let TMP_16 \def (CHead c0 TMP_15 t) in (let TMP_17 \def (Bind 
-b) in (let TMP_18 \def (CHead e1 TMP_17 v) in (let TMP_19 \def 
-(clear_gen_bind b0 c0 TMP_18 t H2) in (let H3 \def (f_equal C C TMP_12 TMP_14 
-TMP_16 TMP_19) in (let TMP_20 \def (\lambda (e: C).(match e with [(CSort _) 
+ \lambda (b: B).(\lambda (c: C).(C_ind (\lambda (c0: C).(\forall (e1: 
+C).(\forall (v: T).((clear c0 (CHead e1 (Bind b) v)) \to (\forall (e2: 
+C).(\forall (n: nat).((getl n e1 e2) \to (getl (S n) c0 e2)))))))) (\lambda 
+(n: nat).(\lambda (e1: C).(\lambda (v: T).(\lambda (H: (clear (CSort n) 
+(CHead e1 (Bind b) v))).(\lambda (e2: C).(\lambda (n0: nat).(\lambda (_: 
+(getl n0 e1 e2)).(clear_gen_sort (CHead e1 (Bind b) v) n H (getl (S n0) 
+(CSort n) e2))))))))) (\lambda (c0: C).(\lambda (H: ((\forall (e1: 
+C).(\forall (v: T).((clear c0 (CHead e1 (Bind b) v)) \to (\forall (e2: 
+C).(\forall (n: nat).((getl n e1 e2) \to (getl (S n) c0 e2))))))))).(\lambda 
+(k: K).(\lambda (t: T).(\lambda (e1: C).(\lambda (v: T).(\lambda (H0: (clear 
+(CHead c0 k t) (CHead e1 (Bind b) v))).(\lambda (e2: C).(\lambda (n: 
+nat).(\lambda (H1: (getl n e1 e2)).(K_ind (\lambda (k0: K).((clear (CHead c0 
+k0 t) (CHead e1 (Bind b) v)) \to (getl (S n) (CHead c0 k0 t) e2))) (\lambda 
+(b0: B).(\lambda (H2: (clear (CHead c0 (Bind b0) t) (CHead e1 (Bind b) 
+v))).(let H3 \def (f_equal C C (\lambda (e: C).(match e with [(CSort _) 
+\Rightarrow e1 | (CHead c1 _ _) \Rightarrow c1])) (CHead e1 (Bind b) v) 
+(CHead c0 (Bind b0) t) (clear_gen_bind b0 c0 (CHead e1 (Bind b) v) t H2)) in 
+((let H4 \def (f_equal C B (\lambda (e: C).(match e with [(CSort _) 
 \Rightarrow b | (CHead _ k0 _) \Rightarrow (match k0 with [(Bind b1) 
-\Rightarrow b1 | (Flat _) \Rightarrow b])])) in (let TMP_21 \def (Bind b) in 
-(let TMP_22 \def (CHead e1 TMP_21 v) in (let TMP_23 \def (Bind b0) in (let 
-TMP_24 \def (CHead c0 TMP_23 t) in (let TMP_25 \def (Bind b) in (let TMP_26 
-\def (CHead e1 TMP_25 v) in (let TMP_27 \def (clear_gen_bind b0 c0 TMP_26 t 
-H2) in (let H4 \def (f_equal C B TMP_20 TMP_22 TMP_24 TMP_27) in (let TMP_28 
-\def (\lambda (e: C).(match e with [(CSort _) \Rightarrow v | (CHead _ _ t0) 
-\Rightarrow t0])) in (let TMP_29 \def (Bind b) in (let TMP_30 \def (CHead e1 
-TMP_29 v) in (let TMP_31 \def (Bind b0) in (let TMP_32 \def (CHead c0 TMP_31 
-t) in (let TMP_33 \def (Bind b) in (let TMP_34 \def (CHead e1 TMP_33 v) in 
-(let TMP_35 \def (clear_gen_bind b0 c0 TMP_34 t H2) in (let H5 \def (f_equal 
-C T TMP_28 TMP_30 TMP_32 TMP_35) in (let TMP_43 \def (\lambda (H6: (eq B b 
-b0)).(\lambda (H7: (eq C e1 c0)).(let TMP_36 \def (\lambda (c1: C).(getl n c1 
-e2)) in (let H8 \def (eq_ind C e1 TMP_36 H1 c0 H7) in (let TMP_40 \def 
-(\lambda (b1: B).(let TMP_37 \def (S n) in (let TMP_38 \def (Bind b1) in (let 
-TMP_39 \def (CHead c0 TMP_38 t) in (getl TMP_37 TMP_39 e2))))) in (let TMP_41 
-\def (Bind b) in (let TMP_42 \def (getl_head TMP_41 n c0 e2 H8 t) in (eq_ind 
-B b TMP_40 TMP_42 b0 H6)))))))) in (let TMP_44 \def (TMP_43 H4) in (TMP_44 
-H3)))))))))))))))))))))))))))))))) in (let TMP_51 \def (\lambda (f: 
-F).(\lambda (H2: (clear (CHead c0 (Flat f) t) (CHead e1 (Bind b) v))).(let 
-TMP_46 \def (S n) in (let TMP_47 \def (Bind b) in (let TMP_48 \def (CHead e1 
-TMP_47 v) in (let TMP_49 \def (clear_gen_flat f c0 TMP_48 t H2) in (let 
-TMP_50 \def (H e1 v TMP_49 e2 n H1) in (getl_flat c0 e2 TMP_46 TMP_50 f 
-t)))))))) in (K_ind TMP_11 TMP_45 TMP_51 k H0)))))))))))))) in (C_ind TMP_2 
-TMP_8 TMP_52 c))))).
+\Rightarrow b1 | (Flat _) \Rightarrow b])])) (CHead e1 (Bind b) v) (CHead c0 
+(Bind b0) t) (clear_gen_bind b0 c0 (CHead e1 (Bind b) v) t H2)) in ((let H5 
+\def (f_equal C T (\lambda (e: C).(match e with [(CSort _) \Rightarrow v | 
+(CHead _ _ t0) \Rightarrow t0])) (CHead e1 (Bind b) v) (CHead c0 (Bind b0) t) 
+(clear_gen_bind b0 c0 (CHead e1 (Bind b) v) t H2)) in (\lambda (H6: (eq B b 
+b0)).(\lambda (H7: (eq C e1 c0)).(let H8 \def (eq_ind C e1 (\lambda (c1: 
+C).(getl n c1 e2)) H1 c0 H7) in (eq_ind B b (\lambda (b1: B).(getl (S n) 
+(CHead c0 (Bind b1) t) e2)) (getl_head (Bind b) n c0 e2 H8 t) b0 H6))))) H4)) 
+H3)))) (\lambda (f: F).(\lambda (H2: (clear (CHead c0 (Flat f) t) (CHead e1 
+(Bind b) v))).(getl_flat c0 e2 (S n) (H e1 v (clear_gen_flat f c0 (CHead e1 
+(Bind b) v) t H2) e2 n H1) f t))) k H0))))))))))) c)).
 
 theorem getl_clear_conf:
  \forall (i: nat).(\forall (c1: C).(\forall (c3: C).((getl i c1 c3) \to 
 (\forall (c2: C).((clear c1 c2) \to (getl i c2 c3))))))
 \def
- \lambda (i: nat).(let TMP_1 \def (\lambda (n: nat).(\forall (c1: C).(\forall 
-(c3: C).((getl n c1 c3) \to (\forall (c2: C).((clear c1 c2) \to (getl n c2 
-c3))))))) in (let TMP_20 \def (\lambda (c1: C).(\lambda (c3: C).(\lambda (H: 
-(getl O c1 c3)).(\lambda (c2: C).(\lambda (H0: (clear c1 c2)).(let TMP_2 \def 
-(\lambda (c: C).(getl O c c3)) in (let TMP_3 \def (getl_gen_O c1 c3 H) in 
-(let H1 \def (clear_gen_all c1 c3 TMP_3) in (let TMP_6 \def (\lambda (b: 
-B).(\lambda (e: C).(\lambda (u: T).(let TMP_4 \def (Bind b) in (let TMP_5 
-\def (CHead e TMP_4 u) in (eq C c3 TMP_5)))))) in (let TMP_7 \def (getl O c3 
-c3) in (let TMP_16 \def (\lambda (x0: B).(\lambda (x1: C).(\lambda (x2: 
-T).(\lambda (H2: (eq C c3 (CHead x1 (Bind x0) x2))).(let TMP_8 \def (\lambda 
-(c: C).(clear c1 c)) in (let TMP_9 \def (getl_gen_O c1 c3 H) in (let TMP_10 
-\def (Bind x0) in (let TMP_11 \def (CHead x1 TMP_10 x2) in (let H3 \def 
-(eq_ind C c3 TMP_8 TMP_9 TMP_11 H2) in (let TMP_12 \def (Bind x0) in (let 
-TMP_13 \def (CHead x1 TMP_12 x2) in (let TMP_14 \def (\lambda (c: C).(getl O 
-c c)) in (let TMP_15 \def (getl_refl x0 x1 x2) in (eq_ind_r C TMP_13 TMP_14 
-TMP_15 c3 H2)))))))))))))) in (let TMP_17 \def (ex_3_ind B C T TMP_6 TMP_7 
-TMP_16 H1) in (let TMP_18 \def (getl_gen_O c1 c3 H) in (let TMP_19 \def 
-(clear_mono c1 c3 TMP_18 c2 H0) in (eq_ind C c3 TMP_2 TMP_17 c2 
-TMP_19))))))))))))))) in (let TMP_44 \def (\lambda (n: nat).(\lambda (_: 
-((\forall (c1: C).(\forall (c3: C).((getl n c1 c3) \to (\forall (c2: 
-C).((clear c1 c2) \to (getl n c2 c3)))))))).(\lambda (c1: C).(let TMP_22 \def 
-(\lambda (c: C).(\forall (c3: C).((getl (S n) c c3) \to (\forall (c2: 
-C).((clear c c2) \to (let TMP_21 \def (S n) in (getl TMP_21 c2 c3))))))) in 
-(let TMP_26 \def (\lambda (n0: nat).(\lambda (c3: C).(\lambda (H0: (getl (S 
-n) (CSort n0) c3)).(\lambda (c2: C).(\lambda (_: (clear (CSort n0) c2)).(let 
-TMP_23 \def (S n) in (let TMP_24 \def (S n) in (let TMP_25 \def (getl TMP_24 
-c2 c3) in (getl_gen_sort n0 TMP_23 c3 H0 TMP_25))))))))) in (let TMP_43 \def 
-(\lambda (c: C).(\lambda (H0: ((\forall (c3: C).((getl (S n) c c3) \to 
-(\forall (c2: C).((clear c c2) \to (getl (S n) c2 c3))))))).(\lambda (k: 
-K).(\lambda (t: T).(\lambda (c3: C).(\lambda (H1: (getl (S n) (CHead c k t) 
-c3)).(\lambda (c2: C).(\lambda (H2: (clear (CHead c k t) c2)).(let TMP_28 
-\def (\lambda (k0: K).((getl (S n) (CHead c k0 t) c3) \to ((clear (CHead c k0 
-t) c2) \to (let TMP_27 \def (S n) in (getl TMP_27 c2 c3))))) in (let TMP_38 
-\def (\lambda (b: B).(\lambda (H3: (getl (S n) (CHead c (Bind b) t) 
-c3)).(\lambda (H4: (clear (CHead c (Bind b) t) c2)).(let TMP_29 \def (Bind b) 
-in (let TMP_30 \def (CHead c TMP_29 t) in (let TMP_32 \def (\lambda (c0: 
-C).(let TMP_31 \def (S n) in (getl TMP_31 c0 c3))) in (let TMP_33 \def (Bind 
-b) in (let TMP_34 \def (Bind b) in (let TMP_35 \def (getl_gen_S TMP_34 c c3 t 
-n H3) in (let TMP_36 \def (getl_head TMP_33 n c c3 TMP_35 t) in (let TMP_37 
-\def (clear_gen_bind b c c2 t H4) in (eq_ind_r C TMP_30 TMP_32 TMP_36 c2 
-TMP_37)))))))))))) in (let TMP_42 \def (\lambda (f: F).(\lambda (H3: (getl (S 
-n) (CHead c (Flat f) t) c3)).(\lambda (H4: (clear (CHead c (Flat f) t) 
-c2)).(let TMP_39 \def (Flat f) in (let TMP_40 \def (getl_gen_S TMP_39 c c3 t 
-n H3) in (let TMP_41 \def (clear_gen_flat f c c2 t H4) in (H0 c3 TMP_40 c2 
-TMP_41))))))) in (K_ind TMP_28 TMP_38 TMP_42 k H1 H2)))))))))))) in (C_ind 
-TMP_22 TMP_26 TMP_43 c1))))))) in (nat_ind TMP_1 TMP_20 TMP_44 i)))).
+ \lambda (i: nat).(nat_ind (\lambda (n: nat).(\forall (c1: C).(\forall (c3: 
+C).((getl n c1 c3) \to (\forall (c2: C).((clear c1 c2) \to (getl n c2 
+c3))))))) (\lambda (c1: C).(\lambda (c3: C).(\lambda (H: (getl O c1 
+c3)).(\lambda (c2: C).(\lambda (H0: (clear c1 c2)).(eq_ind C c3 (\lambda (c: 
+C).(getl O c c3)) (let H1 \def (clear_gen_all c1 c3 (getl_gen_O c1 c3 H)) in 
+(ex_3_ind B C T (\lambda (b: B).(\lambda (e: C).(\lambda (u: T).(eq C c3 
+(CHead e (Bind b) u))))) (getl O c3 c3) (\lambda (x0: B).(\lambda (x1: 
+C).(\lambda (x2: T).(\lambda (H2: (eq C c3 (CHead x1 (Bind x0) x2))).(let H3 
+\def (eq_ind C c3 (\lambda (c: C).(clear c1 c)) (getl_gen_O c1 c3 H) (CHead 
+x1 (Bind x0) x2) H2) in (eq_ind_r C (CHead x1 (Bind x0) x2) (\lambda (c: 
+C).(getl O c c)) (getl_refl x0 x1 x2) c3 H2)))))) H1)) c2 (clear_mono c1 c3 
+(getl_gen_O c1 c3 H) c2 H0))))))) (\lambda (n: nat).(\lambda (_: ((\forall 
+(c1: C).(\forall (c3: C).((getl n c1 c3) \to (\forall (c2: C).((clear c1 c2) 
+\to (getl n c2 c3)))))))).(\lambda (c1: C).(C_ind (\lambda (c: C).(\forall 
+(c3: C).((getl (S n) c c3) \to (\forall (c2: C).((clear c c2) \to (getl (S n) 
+c2 c3)))))) (\lambda (n0: nat).(\lambda (c3: C).(\lambda (H0: (getl (S n) 
+(CSort n0) c3)).(\lambda (c2: C).(\lambda (_: (clear (CSort n0) 
+c2)).(getl_gen_sort n0 (S n) c3 H0 (getl (S n) c2 c3))))))) (\lambda (c: 
+C).(\lambda (H0: ((\forall (c3: C).((getl (S n) c c3) \to (\forall (c2: 
+C).((clear c c2) \to (getl (S n) c2 c3))))))).(\lambda (k: K).(\lambda (t: 
+T).(\lambda (c3: C).(\lambda (H1: (getl (S n) (CHead c k t) c3)).(\lambda 
+(c2: C).(\lambda (H2: (clear (CHead c k t) c2)).(K_ind (\lambda (k0: 
+K).((getl (S n) (CHead c k0 t) c3) \to ((clear (CHead c k0 t) c2) \to (getl 
+(S n) c2 c3)))) (\lambda (b: B).(\lambda (H3: (getl (S n) (CHead c (Bind b) 
+t) c3)).(\lambda (H4: (clear (CHead c (Bind b) t) c2)).(eq_ind_r C (CHead c 
+(Bind b) t) (\lambda (c0: C).(getl (S n) c0 c3)) (getl_head (Bind b) n c c3 
+(getl_gen_S (Bind b) c c3 t n H3) t) c2 (clear_gen_bind b c c2 t H4))))) 
+(\lambda (f: F).(\lambda (H3: (getl (S n) (CHead c (Flat f) t) c3)).(\lambda 
+(H4: (clear (CHead c (Flat f) t) c2)).(H0 c3 (getl_gen_S (Flat f) c c3 t n 
+H3) c2 (clear_gen_flat f c c2 t H4))))) k H1 H2))))))))) c1)))) i).
 
index f29dc20a5d94e34721799fe079d1132abba8c8d5..dda85e7f30706b714708b4a064366d559b55778a 100644 (file)
@@ -21,136 +21,77 @@ theorem getl_dec:
 (b: B).(\lambda (v: T).(getl i c (CHead e (Bind b) v)))))) (\forall (d: 
 C).((getl i c d) \to (\forall (P: Prop).P)))))
 \def
- \lambda (c: C).(let TMP_6 \def (\lambda (c0: C).(\forall (i: nat).(let TMP_3 
-\def (\lambda (e: C).(\lambda (b: B).(\lambda (v: T).(let TMP_1 \def (Bind b) 
-in (let TMP_2 \def (CHead e TMP_1 v) in (getl i c0 TMP_2)))))) in (let TMP_4 
-\def (ex_3 C B T TMP_3) in (let TMP_5 \def (\forall (d: C).((getl i c0 d) \to 
-(\forall (P: Prop).P))) in (or TMP_4 TMP_5)))))) in (let TMP_14 \def (\lambda 
-(n: nat).(\lambda (i: nat).(let TMP_10 \def (\lambda (e: C).(\lambda (b: 
-B).(\lambda (v: T).(let TMP_7 \def (CSort n) in (let TMP_8 \def (Bind b) in 
-(let TMP_9 \def (CHead e TMP_8 v) in (getl i TMP_7 TMP_9))))))) in (let 
-TMP_11 \def (ex_3 C B T TMP_10) in (let TMP_12 \def (\forall (d: C).((getl i 
-(CSort n) d) \to (\forall (P: Prop).P))) in (let TMP_13 \def (\lambda (d: 
-C).(\lambda (H: (getl i (CSort n) d)).(\lambda (P: Prop).(getl_gen_sort n i d 
-H P)))) in (or_intror TMP_11 TMP_12 TMP_13))))))) in (let TMP_159 \def 
-(\lambda (c0: C).(\lambda (H: ((\forall (i: nat).(or (ex_3 C B T (\lambda (e: 
-C).(\lambda (b: B).(\lambda (v: T).(getl i c0 (CHead e (Bind b) v)))))) 
-(\forall (d: C).((getl i c0 d) \to (\forall (P: Prop).P))))))).(\lambda (k: 
-K).(\lambda (t: T).(\lambda (i: nat).(let TMP_21 \def (\lambda (n: nat).(let 
-TMP_18 \def (\lambda (e: C).(\lambda (b: B).(\lambda (v: T).(let TMP_15 \def 
-(CHead c0 k t) in (let TMP_16 \def (Bind b) in (let TMP_17 \def (CHead e 
-TMP_16 v) in (getl n TMP_15 TMP_17))))))) in (let TMP_19 \def (ex_3 C B T 
-TMP_18) in (let TMP_20 \def (\forall (d: C).((getl n (CHead c0 k t) d) \to 
-(\forall (P: Prop).P))) in (or TMP_19 TMP_20))))) in (let TMP_28 \def 
-(\lambda (k0: K).(let TMP_25 \def (\lambda (e: C).(\lambda (b: B).(\lambda 
-(v: T).(let TMP_22 \def (CHead c0 k0 t) in (let TMP_23 \def (Bind b) in (let 
-TMP_24 \def (CHead e TMP_23 v) in (getl O TMP_22 TMP_24))))))) in (let TMP_26 
-\def (ex_3 C B T TMP_25) in (let TMP_27 \def (\forall (d: C).((getl O (CHead 
-c0 k0 t) d) \to (\forall (P: Prop).P))) in (or TMP_26 TMP_27))))) in (let 
-TMP_43 \def (\lambda (b: B).(let TMP_33 \def (\lambda (e: C).(\lambda (b0: 
-B).(\lambda (v: T).(let TMP_29 \def (Bind b) in (let TMP_30 \def (CHead c0 
-TMP_29 t) in (let TMP_31 \def (Bind b0) in (let TMP_32 \def (CHead e TMP_31 
-v) in (getl O TMP_30 TMP_32)))))))) in (let TMP_34 \def (ex_3 C B T TMP_33) 
-in (let TMP_35 \def (\forall (d: C).((getl O (CHead c0 (Bind b) t) d) \to 
-(\forall (P: Prop).P))) in (let TMP_40 \def (\lambda (e: C).(\lambda (b0: 
-B).(\lambda (v: T).(let TMP_36 \def (Bind b) in (let TMP_37 \def (CHead c0 
-TMP_36 t) in (let TMP_38 \def (Bind b0) in (let TMP_39 \def (CHead e TMP_38 
-v) in (getl O TMP_37 TMP_39)))))))) in (let TMP_41 \def (getl_refl b c0 t) in 
-(let TMP_42 \def (ex_3_intro C B T TMP_40 c0 b t TMP_41) in (or_introl TMP_34 
-TMP_35 TMP_42)))))))) in (let TMP_101 \def (\lambda (f: F).(let H_x \def (H 
-O) in (let H0 \def H_x in (let TMP_46 \def (\lambda (e: C).(\lambda (b: 
-B).(\lambda (v: T).(let TMP_44 \def (Bind b) in (let TMP_45 \def (CHead e 
-TMP_44 v) in (getl O c0 TMP_45)))))) in (let TMP_47 \def (ex_3 C B T TMP_46) 
-in (let TMP_48 \def (\forall (d: C).((getl O c0 d) \to (\forall (P: 
-Prop).P))) in (let TMP_53 \def (\lambda (e: C).(\lambda (b: B).(\lambda (v: 
-T).(let TMP_49 \def (Flat f) in (let TMP_50 \def (CHead c0 TMP_49 t) in (let 
-TMP_51 \def (Bind b) in (let TMP_52 \def (CHead e TMP_51 v) in (getl O TMP_50 
-TMP_52)))))))) in (let TMP_54 \def (ex_3 C B T TMP_53) in (let TMP_55 \def 
-(\forall (d: C).((getl O (CHead c0 (Flat f) t) d) \to (\forall (P: Prop).P))) 
-in (let TMP_56 \def (or TMP_54 TMP_55) in (let TMP_85 \def (\lambda (H1: 
-(ex_3 C B T (\lambda (e: C).(\lambda (b: B).(\lambda (v: T).(getl O c0 (CHead 
-e (Bind b) v))))))).(let TMP_59 \def (\lambda (e: C).(\lambda (b: B).(\lambda 
-(v: T).(let TMP_57 \def (Bind b) in (let TMP_58 \def (CHead e TMP_57 v) in 
-(getl O c0 TMP_58)))))) in (let TMP_64 \def (\lambda (e: C).(\lambda (b: 
-B).(\lambda (v: T).(let TMP_60 \def (Flat f) in (let TMP_61 \def (CHead c0 
-TMP_60 t) in (let TMP_62 \def (Bind b) in (let TMP_63 \def (CHead e TMP_62 v) 
-in (getl O TMP_61 TMP_63)))))))) in (let TMP_65 \def (ex_3 C B T TMP_64) in 
-(let TMP_66 \def (\forall (d: C).((getl O (CHead c0 (Flat f) t) d) \to 
-(\forall (P: Prop).P))) in (let TMP_67 \def (or TMP_65 TMP_66) in (let TMP_84 
-\def (\lambda (x0: C).(\lambda (x1: B).(\lambda (x2: T).(\lambda (H2: (getl O 
-c0 (CHead x0 (Bind x1) x2))).(let TMP_72 \def (\lambda (e: C).(\lambda (b: 
-B).(\lambda (v: T).(let TMP_68 \def (Flat f) in (let TMP_69 \def (CHead c0 
-TMP_68 t) in (let TMP_70 \def (Bind b) in (let TMP_71 \def (CHead e TMP_70 v) 
-in (getl O TMP_69 TMP_71)))))))) in (let TMP_73 \def (ex_3 C B T TMP_72) in 
-(let TMP_74 \def (\forall (d: C).((getl O (CHead c0 (Flat f) t) d) \to 
-(\forall (P: Prop).P))) in (let TMP_79 \def (\lambda (e: C).(\lambda (b: 
-B).(\lambda (v: T).(let TMP_75 \def (Flat f) in (let TMP_76 \def (CHead c0 
-TMP_75 t) in (let TMP_77 \def (Bind b) in (let TMP_78 \def (CHead e TMP_77 v) 
-in (getl O TMP_76 TMP_78)))))))) in (let TMP_80 \def (Bind x1) in (let TMP_81 
-\def (CHead x0 TMP_80 x2) in (let TMP_82 \def (getl_flat c0 TMP_81 O H2 f t) 
-in (let TMP_83 \def (ex_3_intro C B T TMP_79 x0 x1 x2 TMP_82) in (or_introl 
-TMP_73 TMP_74 TMP_83))))))))))))) in (ex_3_ind C B T TMP_59 TMP_67 TMP_84 
-H1)))))))) in (let TMP_100 \def (\lambda (H1: ((\forall (d: C).((getl O c0 d) 
-\to (\forall (P: Prop).P))))).(let TMP_90 \def (\lambda (e: C).(\lambda (b: 
-B).(\lambda (v: T).(let TMP_86 \def (Flat f) in (let TMP_87 \def (CHead c0 
-TMP_86 t) in (let TMP_88 \def (Bind b) in (let TMP_89 \def (CHead e TMP_88 v) 
-in (getl O TMP_87 TMP_89)))))))) in (let TMP_91 \def (ex_3 C B T TMP_90) in 
-(let TMP_92 \def (\forall (d: C).((getl O (CHead c0 (Flat f) t) d) \to 
-(\forall (P: Prop).P))) in (let TMP_99 \def (\lambda (d: C).(\lambda (H2: 
-(getl O (CHead c0 (Flat f) t) d)).(\lambda (P: Prop).(let TMP_93 \def 
-(drop_refl c0) in (let TMP_94 \def (Flat f) in (let TMP_95 \def (CHead c0 
-TMP_94 t) in (let TMP_96 \def (getl_gen_O TMP_95 d H2) in (let TMP_97 \def 
-(clear_gen_flat f c0 d t TMP_96) in (let TMP_98 \def (getl_intro O c0 d c0 
-TMP_93 TMP_97) in (H1 d TMP_98 P)))))))))) in (or_intror TMP_91 TMP_92 
-TMP_99)))))) in (or_ind TMP_47 TMP_48 TMP_56 TMP_85 TMP_100 H0))))))))))))) 
-in (let TMP_102 \def (K_ind TMP_28 TMP_43 TMP_101 k) in (let TMP_158 \def 
-(\lambda (n: nat).(\lambda (_: (or (ex_3 C B T (\lambda (e: C).(\lambda (b: 
+ \lambda (c: C).(C_ind (\lambda (c0: C).(\forall (i: nat).(or (ex_3 C B T 
+(\lambda (e: C).(\lambda (b: B).(\lambda (v: T).(getl i c0 (CHead e (Bind b) 
+v)))))) (\forall (d: C).((getl i c0 d) \to (\forall (P: Prop).P)))))) 
+(\lambda (n: nat).(\lambda (i: nat).(or_intror (ex_3 C B T (\lambda (e: 
+C).(\lambda (b: B).(\lambda (v: T).(getl i (CSort n) (CHead e (Bind b) 
+v)))))) (\forall (d: C).((getl i (CSort n) d) \to (\forall (P: Prop).P))) 
+(\lambda (d: C).(\lambda (H: (getl i (CSort n) d)).(\lambda (P: 
+Prop).(getl_gen_sort n i d H P))))))) (\lambda (c0: C).(\lambda (H: ((\forall 
+(i: nat).(or (ex_3 C B T (\lambda (e: C).(\lambda (b: B).(\lambda (v: 
+T).(getl i c0 (CHead e (Bind b) v)))))) (\forall (d: C).((getl i c0 d) \to 
+(\forall (P: Prop).P))))))).(\lambda (k: K).(\lambda (t: T).(\lambda (i: 
+nat).(nat_ind (\lambda (n: nat).(or (ex_3 C B T (\lambda (e: C).(\lambda (b: 
 B).(\lambda (v: T).(getl n (CHead c0 k t) (CHead e (Bind b) v)))))) (\forall 
-(d: C).((getl n (CHead c0 k t) d) \to (\forall (P: Prop).P))))).(let TMP_103 
-\def (r k n) in (let H_x \def (H TMP_103) in (let H1 \def H_x in (let TMP_107 
-\def (\lambda (e: C).(\lambda (b: B).(\lambda (v: T).(let TMP_104 \def (r k 
-n) in (let TMP_105 \def (Bind b) in (let TMP_106 \def (CHead e TMP_105 v) in 
-(getl TMP_104 c0 TMP_106))))))) in (let TMP_108 \def (ex_3 C B T TMP_107) in 
-(let TMP_109 \def (\forall (d: C).((getl (r k n) c0 d) \to (\forall (P: 
-Prop).P))) in (let TMP_114 \def (\lambda (e: C).(\lambda (b: B).(\lambda (v: 
-T).(let TMP_110 \def (S n) in (let TMP_111 \def (CHead c0 k t) in (let 
-TMP_112 \def (Bind b) in (let TMP_113 \def (CHead e TMP_112 v) in (getl 
-TMP_110 TMP_111 TMP_113)))))))) in (let TMP_115 \def (ex_3 C B T TMP_114) in 
-(let TMP_116 \def (\forall (d: C).((getl (S n) (CHead c0 k t) d) \to (\forall 
-(P: Prop).P))) in (let TMP_117 \def (or TMP_115 TMP_116) in (let TMP_147 \def 
-(\lambda (H2: (ex_3 C B T (\lambda (e: C).(\lambda (b: B).(\lambda (v: 
-T).(getl (r k n) c0 (CHead e (Bind b) v))))))).(let TMP_121 \def (\lambda (e: 
-C).(\lambda (b: B).(\lambda (v: T).(let TMP_118 \def (r k n) in (let TMP_119 
-\def (Bind b) in (let TMP_120 \def (CHead e TMP_119 v) in (getl TMP_118 c0 
-TMP_120))))))) in (let TMP_126 \def (\lambda (e: C).(\lambda (b: B).(\lambda 
-(v: T).(let TMP_122 \def (S n) in (let TMP_123 \def (CHead c0 k t) in (let 
-TMP_124 \def (Bind b) in (let TMP_125 \def (CHead e TMP_124 v) in (getl 
-TMP_122 TMP_123 TMP_125)))))))) in (let TMP_127 \def (ex_3 C B T TMP_126) in 
-(let TMP_128 \def (\forall (d: C).((getl (S n) (CHead c0 k t) d) \to (\forall 
-(P: Prop).P))) in (let TMP_129 \def (or TMP_127 TMP_128) in (let TMP_146 \def 
-(\lambda (x0: C).(\lambda (x1: B).(\lambda (x2: T).(\lambda (H3: (getl (r k 
-n) c0 (CHead x0 (Bind x1) x2))).(let TMP_134 \def (\lambda (e: C).(\lambda 
-(b: B).(\lambda (v: T).(let TMP_130 \def (S n) in (let TMP_131 \def (CHead c0 
-k t) in (let TMP_132 \def (Bind b) in (let TMP_133 \def (CHead e TMP_132 v) 
-in (getl TMP_130 TMP_131 TMP_133)))))))) in (let TMP_135 \def (ex_3 C B T 
-TMP_134) in (let TMP_136 \def (\forall (d: C).((getl (S n) (CHead c0 k t) d) 
-\to (\forall (P: Prop).P))) in (let TMP_141 \def (\lambda (e: C).(\lambda (b: 
-B).(\lambda (v: T).(let TMP_137 \def (S n) in (let TMP_138 \def (CHead c0 k 
-t) in (let TMP_139 \def (Bind b) in (let TMP_140 \def (CHead e TMP_139 v) in 
-(getl TMP_137 TMP_138 TMP_140)))))))) in (let TMP_142 \def (Bind x1) in (let 
-TMP_143 \def (CHead x0 TMP_142 x2) in (let TMP_144 \def (getl_head k n c0 
-TMP_143 H3 t) in (let TMP_145 \def (ex_3_intro C B T TMP_141 x0 x1 x2 
-TMP_144) in (or_introl TMP_135 TMP_136 TMP_145))))))))))))) in (ex_3_ind C B 
-T TMP_121 TMP_129 TMP_146 H2)))))))) in (let TMP_157 \def (\lambda (H2: 
-((\forall (d: C).((getl (r k n) c0 d) \to (\forall (P: Prop).P))))).(let 
-TMP_152 \def (\lambda (e: C).(\lambda (b: B).(\lambda (v: T).(let TMP_148 
-\def (S n) in (let TMP_149 \def (CHead c0 k t) in (let TMP_150 \def (Bind b) 
-in (let TMP_151 \def (CHead e TMP_150 v) in (getl TMP_148 TMP_149 
-TMP_151)))))))) in (let TMP_153 \def (ex_3 C B T TMP_152) in (let TMP_154 
-\def (\forall (d: C).((getl (S n) (CHead c0 k t) d) \to (\forall (P: 
-Prop).P))) in (let TMP_156 \def (\lambda (d: C).(\lambda (H3: (getl (S n) 
-(CHead c0 k t) d)).(\lambda (P: Prop).(let TMP_155 \def (getl_gen_S k c0 d t 
-n H3) in (H2 d TMP_155 P))))) in (or_intror TMP_153 TMP_154 TMP_156)))))) in 
-(or_ind TMP_108 TMP_109 TMP_117 TMP_147 TMP_157 H1))))))))))))))) in (nat_ind 
-TMP_21 TMP_102 TMP_158 i)))))))))))) in (C_ind TMP_6 TMP_14 TMP_159 c)))).
+(d: C).((getl n (CHead c0 k t) d) \to (\forall (P: Prop).P))))) (K_ind 
+(\lambda (k0: K).(or (ex_3 C B T (\lambda (e: C).(\lambda (b: B).(\lambda (v: 
+T).(getl O (CHead c0 k0 t) (CHead e (Bind b) v)))))) (\forall (d: C).((getl O 
+(CHead c0 k0 t) d) \to (\forall (P: Prop).P))))) (\lambda (b: B).(or_introl 
+(ex_3 C B T (\lambda (e: C).(\lambda (b0: B).(\lambda (v: T).(getl O (CHead 
+c0 (Bind b) t) (CHead e (Bind b0) v)))))) (\forall (d: C).((getl O (CHead c0 
+(Bind b) t) d) \to (\forall (P: Prop).P))) (ex_3_intro C B T (\lambda (e: 
+C).(\lambda (b0: B).(\lambda (v: T).(getl O (CHead c0 (Bind b) t) (CHead e 
+(Bind b0) v))))) c0 b t (getl_refl b c0 t)))) (\lambda (f: F).(let H_x \def 
+(H O) in (let H0 \def H_x in (or_ind (ex_3 C B T (\lambda (e: C).(\lambda (b: 
+B).(\lambda (v: T).(getl O c0 (CHead e (Bind b) v)))))) (\forall (d: 
+C).((getl O c0 d) \to (\forall (P: Prop).P))) (or (ex_3 C B T (\lambda (e: 
+C).(\lambda (b: B).(\lambda (v: T).(getl O (CHead c0 (Flat f) t) (CHead e 
+(Bind b) v)))))) (\forall (d: C).((getl O (CHead c0 (Flat f) t) d) \to 
+(\forall (P: Prop).P)))) (\lambda (H1: (ex_3 C B T (\lambda (e: C).(\lambda 
+(b: B).(\lambda (v: T).(getl O c0 (CHead e (Bind b) v))))))).(ex_3_ind C B T 
+(\lambda (e: C).(\lambda (b: B).(\lambda (v: T).(getl O c0 (CHead e (Bind b) 
+v))))) (or (ex_3 C B T (\lambda (e: C).(\lambda (b: B).(\lambda (v: T).(getl 
+O (CHead c0 (Flat f) t) (CHead e (Bind b) v)))))) (\forall (d: C).((getl O 
+(CHead c0 (Flat f) t) d) \to (\forall (P: Prop).P)))) (\lambda (x0: 
+C).(\lambda (x1: B).(\lambda (x2: T).(\lambda (H2: (getl O c0 (CHead x0 (Bind 
+x1) x2))).(or_introl (ex_3 C B T (\lambda (e: C).(\lambda (b: B).(\lambda (v: 
+T).(getl O (CHead c0 (Flat f) t) (CHead e (Bind b) v)))))) (\forall (d: 
+C).((getl O (CHead c0 (Flat f) t) d) \to (\forall (P: Prop).P))) (ex_3_intro 
+C B T (\lambda (e: C).(\lambda (b: B).(\lambda (v: T).(getl O (CHead c0 (Flat 
+f) t) (CHead e (Bind b) v))))) x0 x1 x2 (getl_flat c0 (CHead x0 (Bind x1) x2) 
+O H2 f t))))))) H1)) (\lambda (H1: ((\forall (d: C).((getl O c0 d) \to 
+(\forall (P: Prop).P))))).(or_intror (ex_3 C B T (\lambda (e: C).(\lambda (b: 
+B).(\lambda (v: T).(getl O (CHead c0 (Flat f) t) (CHead e (Bind b) v)))))) 
+(\forall (d: C).((getl O (CHead c0 (Flat f) t) d) \to (\forall (P: Prop).P))) 
+(\lambda (d: C).(\lambda (H2: (getl O (CHead c0 (Flat f) t) d)).(\lambda (P: 
+Prop).(H1 d (getl_intro O c0 d c0 (drop_refl c0) (clear_gen_flat f c0 d t 
+(getl_gen_O (CHead c0 (Flat f) t) d H2))) P)))))) H0)))) k) (\lambda (n: 
+nat).(\lambda (_: (or (ex_3 C B T (\lambda (e: C).(\lambda (b: B).(\lambda 
+(v: T).(getl n (CHead c0 k t) (CHead e (Bind b) v)))))) (\forall (d: 
+C).((getl n (CHead c0 k t) d) \to (\forall (P: Prop).P))))).(let H_x \def (H 
+(r k n)) in (let H1 \def H_x in (or_ind (ex_3 C B T (\lambda (e: C).(\lambda 
+(b: B).(\lambda (v: T).(getl (r k n) c0 (CHead e (Bind b) v)))))) (\forall 
+(d: C).((getl (r k n) c0 d) \to (\forall (P: Prop).P))) (or (ex_3 C B T 
+(\lambda (e: C).(\lambda (b: B).(\lambda (v: T).(getl (S n) (CHead c0 k t) 
+(CHead e (Bind b) v)))))) (\forall (d: C).((getl (S n) (CHead c0 k t) d) \to 
+(\forall (P: Prop).P)))) (\lambda (H2: (ex_3 C B T (\lambda (e: C).(\lambda 
+(b: B).(\lambda (v: T).(getl (r k n) c0 (CHead e (Bind b) v))))))).(ex_3_ind 
+C B T (\lambda (e: C).(\lambda (b: B).(\lambda (v: T).(getl (r k n) c0 (CHead 
+e (Bind b) v))))) (or (ex_3 C B T (\lambda (e: C).(\lambda (b: B).(\lambda 
+(v: T).(getl (S n) (CHead c0 k t) (CHead e (Bind b) v)))))) (\forall (d: 
+C).((getl (S n) (CHead c0 k t) d) \to (\forall (P: Prop).P)))) (\lambda (x0: 
+C).(\lambda (x1: B).(\lambda (x2: T).(\lambda (H3: (getl (r k n) c0 (CHead x0 
+(Bind x1) x2))).(or_introl (ex_3 C B T (\lambda (e: C).(\lambda (b: 
+B).(\lambda (v: T).(getl (S n) (CHead c0 k t) (CHead e (Bind b) v)))))) 
+(\forall (d: C).((getl (S n) (CHead c0 k t) d) \to (\forall (P: Prop).P))) 
+(ex_3_intro C B T (\lambda (e: C).(\lambda (b: B).(\lambda (v: T).(getl (S n) 
+(CHead c0 k t) (CHead e (Bind b) v))))) x0 x1 x2 (getl_head k n c0 (CHead x0 
+(Bind x1) x2) H3 t))))))) H2)) (\lambda (H2: ((\forall (d: C).((getl (r k n) 
+c0 d) \to (\forall (P: Prop).P))))).(or_intror (ex_3 C B T (\lambda (e: 
+C).(\lambda (b: B).(\lambda (v: T).(getl (S n) (CHead c0 k t) (CHead e (Bind 
+b) v)))))) (\forall (d: C).((getl (S n) (CHead c0 k t) d) \to (\forall (P: 
+Prop).P))) (\lambda (d: C).(\lambda (H3: (getl (S n) (CHead c0 k t) 
+d)).(\lambda (P: Prop).(H2 d (getl_gen_S k c0 d t n H3) P)))))) H1))))) 
+i)))))) c).
 
index db8d7be14cb466aef661477b6aa8b4cf68f9019a..0151a248f0e270fdb19a79d8f05aef79b7b8c37d 100644 (file)
@@ -22,68 +22,39 @@ theorem getl_flt:
  \forall (b: B).(\forall (c: C).(\forall (e: C).(\forall (u: T).(\forall (i: 
 nat).((getl i c (CHead e (Bind b) u)) \to (flt e u c (TLRef i)))))))
 \def
- \lambda (b: B).(\lambda (c: C).(let TMP_2 \def (\lambda (c0: C).(\forall (e: 
+ \lambda (b: B).(\lambda (c: C).(C_ind (\lambda (c0: C).(\forall (e: 
 C).(\forall (u: T).(\forall (i: nat).((getl i c0 (CHead e (Bind b) u)) \to 
-(let TMP_1 \def (TLRef i) in (flt e u c0 TMP_1))))))) in (let TMP_8 \def 
-(\lambda (n: nat).(\lambda (e: C).(\lambda (u: T).(\lambda (i: nat).(\lambda 
-(H: (getl i (CSort n) (CHead e (Bind b) u))).(let TMP_3 \def (Bind b) in (let 
-TMP_4 \def (CHead e TMP_3 u) in (let TMP_5 \def (CSort n) in (let TMP_6 \def 
-(TLRef i) in (let TMP_7 \def (flt e u TMP_5 TMP_6) in (getl_gen_sort n i 
-TMP_4 H TMP_7))))))))))) in (let TMP_79 \def (\lambda (c0: C).(\lambda (H: 
-((\forall (e: C).(\forall (u: T).(\forall (i: nat).((getl i c0 (CHead e (Bind 
-b) u)) \to (flt e u c0 (TLRef i)))))))).(\lambda (k: K).(\lambda (t: 
-T).(\lambda (e: C).(\lambda (u: T).(\lambda (i: nat).(let TMP_11 \def 
-(\lambda (n: nat).((getl n (CHead c0 k t) (CHead e (Bind b) u)) \to (let 
-TMP_9 \def (CHead c0 k t) in (let TMP_10 \def (TLRef n) in (flt e u TMP_9 
-TMP_10))))) in (let TMP_71 \def (\lambda (H0: (getl O (CHead c0 k t) (CHead e 
-(Bind b) u))).(let TMP_14 \def (\lambda (k0: K).((clear (CHead c0 k0 t) 
-(CHead e (Bind b) u)) \to (let TMP_12 \def (CHead c0 k0 t) in (let TMP_13 
-\def (TLRef O) in (flt e u TMP_12 TMP_13))))) in (let TMP_57 \def (\lambda 
-(b0: B).(\lambda (H1: (clear (CHead c0 (Bind b0) t) (CHead e (Bind b) 
-u))).(let TMP_15 \def (\lambda (e0: C).(match e0 with [(CSort _) \Rightarrow 
-e | (CHead c1 _ _) \Rightarrow c1])) in (let TMP_16 \def (Bind b) in (let 
-TMP_17 \def (CHead e TMP_16 u) in (let TMP_18 \def (Bind b0) in (let TMP_19 
-\def (CHead c0 TMP_18 t) in (let TMP_20 \def (Bind b) in (let TMP_21 \def 
-(CHead e TMP_20 u) in (let TMP_22 \def (clear_gen_bind b0 c0 TMP_21 t H1) in 
-(let H2 \def (f_equal C C TMP_15 TMP_17 TMP_19 TMP_22) in (let TMP_23 \def 
-(\lambda (e0: C).(match e0 with [(CSort _) \Rightarrow b | (CHead _ k0 _) 
-\Rightarrow (match k0 with [(Bind b1) \Rightarrow b1 | (Flat _) \Rightarrow 
-b])])) in (let TMP_24 \def (Bind b) in (let TMP_25 \def (CHead e TMP_24 u) in 
-(let TMP_26 \def (Bind b0) in (let TMP_27 \def (CHead c0 TMP_26 t) in (let 
-TMP_28 \def (Bind b) in (let TMP_29 \def (CHead e TMP_28 u) in (let TMP_30 
-\def (clear_gen_bind b0 c0 TMP_29 t H1) in (let H3 \def (f_equal C B TMP_23 
-TMP_25 TMP_27 TMP_30) in (let TMP_31 \def (\lambda (e0: C).(match e0 with 
-[(CSort _) \Rightarrow u | (CHead _ _ t0) \Rightarrow t0])) in (let TMP_32 
-\def (Bind b) in (let TMP_33 \def (CHead e TMP_32 u) in (let TMP_34 \def 
-(Bind b0) in (let TMP_35 \def (CHead c0 TMP_34 t) in (let TMP_36 \def (Bind 
-b) in (let TMP_37 \def (CHead e TMP_36 u) in (let TMP_38 \def (clear_gen_bind 
-b0 c0 TMP_37 t H1) in (let H4 \def (f_equal C T TMP_31 TMP_33 TMP_35 TMP_38) 
-in (let TMP_55 \def (\lambda (H5: (eq B b b0)).(\lambda (H6: (eq C e 
-c0)).(let TMP_42 \def (\lambda (t0: T).(let TMP_39 \def (Bind b0) in (let 
-TMP_40 \def (CHead c0 TMP_39 t) in (let TMP_41 \def (TLRef O) in (flt e t0 
-TMP_40 TMP_41))))) in (let TMP_46 \def (\lambda (c1: C).(let TMP_43 \def 
-(Bind b0) in (let TMP_44 \def (CHead c0 TMP_43 t) in (let TMP_45 \def (TLRef 
-O) in (flt c1 t TMP_44 TMP_45))))) in (let TMP_50 \def (\lambda (b1: B).(let 
-TMP_47 \def (Bind b1) in (let TMP_48 \def (CHead c0 TMP_47 t) in (let TMP_49 
-\def (TLRef O) in (flt c0 t TMP_48 TMP_49))))) in (let TMP_51 \def (Bind b) 
-in (let TMP_52 \def (flt_arith0 TMP_51 c0 t O) in (let TMP_53 \def (eq_ind B 
-b TMP_50 TMP_52 b0 H5) in (let TMP_54 \def (eq_ind_r C c0 TMP_46 TMP_53 e H6) 
-in (eq_ind_r T t TMP_42 TMP_54 u H4)))))))))) in (let TMP_56 \def (TMP_55 H3) 
-in (TMP_56 H2)))))))))))))))))))))))))))))))) in (let TMP_66 \def (\lambda 
-(f: F).(\lambda (H1: (clear (CHead c0 (Flat f) t) (CHead e (Bind b) u))).(let 
-TMP_58 \def (Bind b) in (let TMP_59 \def (Bind b) in (let TMP_60 \def (CHead 
-e TMP_59 u) in (let TMP_61 \def (Bind b) in (let TMP_62 \def (CHead e TMP_61 
-u) in (let TMP_63 \def (clear_gen_flat f c0 TMP_62 t H1) in (let TMP_64 \def 
-(clear_cle c0 TMP_60 TMP_63) in (let TMP_65 \def (Flat f) in (flt_arith1 
-TMP_58 e c0 u TMP_64 TMP_65 t O))))))))))) in (let TMP_67 \def (CHead c0 k t) 
-in (let TMP_68 \def (Bind b) in (let TMP_69 \def (CHead e TMP_68 u) in (let 
-TMP_70 \def (getl_gen_O TMP_67 TMP_69 H0) in (K_ind TMP_14 TMP_57 TMP_66 k 
-TMP_70))))))))) in (let TMP_78 \def (\lambda (n: nat).(\lambda (_: (((getl n 
-(CHead c0 k t) (CHead e (Bind b) u)) \to (flt e u (CHead c0 k t) (TLRef 
-n))))).(\lambda (H1: (getl (S n) (CHead c0 k t) (CHead e (Bind b) u))).(let 
-TMP_72 \def (r k n) in (let TMP_73 \def (Bind b) in (let TMP_74 \def (CHead e 
-TMP_73 u) in (let TMP_75 \def (getl_gen_S k c0 TMP_74 t n H1) in (let H_y 
-\def (H e u TMP_72 TMP_75) in (let TMP_76 \def (r k n) in (let TMP_77 \def (S 
-n) in (flt_arith2 e c0 u TMP_76 H_y k t TMP_77))))))))))) in (nat_ind TMP_11 
-TMP_71 TMP_78 i))))))))))) in (C_ind TMP_2 TMP_8 TMP_79 c))))).
+(flt e u c0 (TLRef i))))))) (\lambda (n: nat).(\lambda (e: C).(\lambda (u: 
+T).(\lambda (i: nat).(\lambda (H: (getl i (CSort n) (CHead e (Bind b) 
+u))).(getl_gen_sort n i (CHead e (Bind b) u) H (flt e u (CSort n) (TLRef 
+i)))))))) (\lambda (c0: C).(\lambda (H: ((\forall (e: C).(\forall (u: 
+T).(\forall (i: nat).((getl i c0 (CHead e (Bind b) u)) \to (flt e u c0 (TLRef 
+i)))))))).(\lambda (k: K).(\lambda (t: T).(\lambda (e: C).(\lambda (u: 
+T).(\lambda (i: nat).(nat_ind (\lambda (n: nat).((getl n (CHead c0 k t) 
+(CHead e (Bind b) u)) \to (flt e u (CHead c0 k t) (TLRef n)))) (\lambda (H0: 
+(getl O (CHead c0 k t) (CHead e (Bind b) u))).(K_ind (\lambda (k0: K).((clear 
+(CHead c0 k0 t) (CHead e (Bind b) u)) \to (flt e u (CHead c0 k0 t) (TLRef 
+O)))) (\lambda (b0: B).(\lambda (H1: (clear (CHead c0 (Bind b0) t) (CHead e 
+(Bind b) u))).(let H2 \def (f_equal C C (\lambda (e0: C).(match e0 with 
+[(CSort _) \Rightarrow e | (CHead c1 _ _) \Rightarrow c1])) (CHead e (Bind b) 
+u) (CHead c0 (Bind b0) t) (clear_gen_bind b0 c0 (CHead e (Bind b) u) t H1)) 
+in ((let H3 \def (f_equal C B (\lambda (e0: C).(match e0 with [(CSort _) 
+\Rightarrow b | (CHead _ k0 _) \Rightarrow (match k0 with [(Bind b1) 
+\Rightarrow b1 | (Flat _) \Rightarrow b])])) (CHead e (Bind b) u) (CHead c0 
+(Bind b0) t) (clear_gen_bind b0 c0 (CHead e (Bind b) u) t H1)) in ((let H4 
+\def (f_equal C T (\lambda (e0: C).(match e0 with [(CSort _) \Rightarrow u | 
+(CHead _ _ t0) \Rightarrow t0])) (CHead e (Bind b) u) (CHead c0 (Bind b0) t) 
+(clear_gen_bind b0 c0 (CHead e (Bind b) u) t H1)) in (\lambda (H5: (eq B b 
+b0)).(\lambda (H6: (eq C e c0)).(eq_ind_r T t (\lambda (t0: T).(flt e t0 
+(CHead c0 (Bind b0) t) (TLRef O))) (eq_ind_r C c0 (\lambda (c1: C).(flt c1 t 
+(CHead c0 (Bind b0) t) (TLRef O))) (eq_ind B b (\lambda (b1: B).(flt c0 t 
+(CHead c0 (Bind b1) t) (TLRef O))) (flt_arith0 (Bind b) c0 t O) b0 H5) e H6) 
+u H4)))) H3)) H2)))) (\lambda (f: F).(\lambda (H1: (clear (CHead c0 (Flat f) 
+t) (CHead e (Bind b) u))).(flt_arith1 (Bind b) e c0 u (clear_cle c0 (CHead e 
+(Bind b) u) (clear_gen_flat f c0 (CHead e (Bind b) u) t H1)) (Flat f) t O))) 
+k (getl_gen_O (CHead c0 k t) (CHead e (Bind b) u) H0))) (\lambda (n: 
+nat).(\lambda (_: (((getl n (CHead c0 k t) (CHead e (Bind b) u)) \to (flt e u 
+(CHead c0 k t) (TLRef n))))).(\lambda (H1: (getl (S n) (CHead c0 k t) (CHead 
+e (Bind b) u))).(let H_y \def (H e u (r k n) (getl_gen_S k c0 (CHead e (Bind 
+b) u) t n H1)) in (flt_arith2 e c0 u (r k n) H_y k t (S n)))))) i)))))))) c)).
 
index f8b2ebaa828c22e28ee6634f3b08e6fc27e20ce0..f1f4426c123c822759f2d365b46b3f6524f43774 100644 (file)
@@ -35,57 +35,44 @@ theorem getl_gen_all:
 C (\lambda (e: C).(drop i O c1 e)) (\lambda (e: C).(clear e c2))))))
 \def
  \lambda (c1: C).(\lambda (c2: C).(\lambda (i: nat).(\lambda (H: (getl i c1 
-c2)).(let TMP_1 \def (\lambda (e: C).(drop i O c1 e)) in (let TMP_2 \def 
-(\lambda (e: C).(clear e c2)) in (let TMP_3 \def (ex2 C TMP_1 TMP_2) in (let 
-TMP_6 \def (\lambda (e: C).(\lambda (H0: (drop i O c1 e)).(\lambda (H1: 
-(clear e c2)).(let TMP_4 \def (\lambda (e0: C).(drop i O c1 e0)) in (let 
-TMP_5 \def (\lambda (e0: C).(clear e0 c2)) in (ex_intro2 C TMP_4 TMP_5 e H0 
-H1)))))) in (getl_ind i c1 c2 TMP_3 TMP_6 H)))))))).
+c2)).(getl_ind i c1 c2 (ex2 C (\lambda (e: C).(drop i O c1 e)) (\lambda (e: 
+C).(clear e c2))) (\lambda (e: C).(\lambda (H0: (drop i O c1 e)).(\lambda 
+(H1: (clear e c2)).(ex_intro2 C (\lambda (e0: C).(drop i O c1 e0)) (\lambda 
+(e0: C).(clear e0 c2)) e H0 H1)))) H)))).
 
 theorem getl_gen_sort:
  \forall (n: nat).(\forall (h: nat).(\forall (x: C).((getl h (CSort n) x) \to 
 (\forall (P: Prop).P))))
 \def
  \lambda (n: nat).(\lambda (h: nat).(\lambda (x: C).(\lambda (H: (getl h 
-(CSort n) x)).(\lambda (P: Prop).(let TMP_1 \def (CSort n) in (let H0 \def 
-(getl_gen_all TMP_1 x h H) in (let TMP_3 \def (\lambda (e: C).(let TMP_2 \def 
-(CSort n) in (drop h O TMP_2 e))) in (let TMP_4 \def (\lambda (e: C).(clear e 
-x)) in (let TMP_13 \def (\lambda (x0: C).(\lambda (H1: (drop h O (CSort n) 
-x0)).(\lambda (H2: (clear x0 x)).(let TMP_5 \def (CSort n) in (let TMP_6 \def 
-(eq C x0 TMP_5) in (let TMP_7 \def (eq nat h O) in (let TMP_8 \def (eq nat O 
-O) in (let TMP_11 \def (\lambda (H3: (eq C x0 (CSort n))).(\lambda (_: (eq 
-nat h O)).(\lambda (_: (eq nat O O)).(let TMP_9 \def (\lambda (c: C).(clear c 
-x)) in (let TMP_10 \def (CSort n) in (let H6 \def (eq_ind C x0 TMP_9 H2 
-TMP_10 H3) in (clear_gen_sort x n H6 P))))))) in (let TMP_12 \def 
-(drop_gen_sort n h O x0 H1) in (and3_ind TMP_6 TMP_7 TMP_8 P TMP_11 
-TMP_12)))))))))) in (ex2_ind C TMP_3 TMP_4 P TMP_13 H0)))))))))).
+(CSort n) x)).(\lambda (P: Prop).(let H0 \def (getl_gen_all (CSort n) x h H) 
+in (ex2_ind C (\lambda (e: C).(drop h O (CSort n) e)) (\lambda (e: C).(clear 
+e x)) P (\lambda (x0: C).(\lambda (H1: (drop h O (CSort n) x0)).(\lambda (H2: 
+(clear x0 x)).(and3_ind (eq C x0 (CSort n)) (eq nat h O) (eq nat O O) P 
+(\lambda (H3: (eq C x0 (CSort n))).(\lambda (_: (eq nat h O)).(\lambda (_: 
+(eq nat O O)).(let H6 \def (eq_ind C x0 (\lambda (c: C).(clear c x)) H2 
+(CSort n) H3) in (clear_gen_sort x n H6 P))))) (drop_gen_sort n h O x0 
+H1))))) H0)))))).
 
 theorem getl_gen_O:
  \forall (e: C).(\forall (x: C).((getl O e x) \to (clear e x)))
 \def
  \lambda (e: C).(\lambda (x: C).(\lambda (H: (getl O e x)).(let H0 \def 
-(getl_gen_all e x O H) in (let TMP_1 \def (\lambda (e0: C).(drop O O e e0)) 
-in (let TMP_2 \def (\lambda (e0: C).(clear e0 x)) in (let TMP_3 \def (clear e 
-x) in (let TMP_6 \def (\lambda (x0: C).(\lambda (H1: (drop O O e 
-x0)).(\lambda (H2: (clear x0 x)).(let TMP_4 \def (\lambda (c: C).(clear c x)) 
-in (let TMP_5 \def (drop_gen_refl e x0 H1) in (let H3 \def (eq_ind_r C x0 
-TMP_4 H2 e TMP_5) in H3)))))) in (ex2_ind C TMP_1 TMP_2 TMP_3 TMP_6 
-H0)))))))).
+(getl_gen_all e x O H) in (ex2_ind C (\lambda (e0: C).(drop O O e e0)) 
+(\lambda (e0: C).(clear e0 x)) (clear e x) (\lambda (x0: C).(\lambda (H1: 
+(drop O O e x0)).(\lambda (H2: (clear x0 x)).(let H3 \def (eq_ind_r C x0 
+(\lambda (c: C).(clear c x)) H2 e (drop_gen_refl e x0 H1)) in H3)))) H0)))).
 
 theorem getl_gen_S:
  \forall (k: K).(\forall (c: C).(\forall (x: C).(\forall (u: T).(\forall (h: 
 nat).((getl (S h) (CHead c k u) x) \to (getl (r k h) c x))))))
 \def
  \lambda (k: K).(\lambda (c: C).(\lambda (x: C).(\lambda (u: T).(\lambda (h: 
-nat).(\lambda (H: (getl (S h) (CHead c k u) x)).(let TMP_1 \def (CHead c k u) 
-in (let TMP_2 \def (S h) in (let H0 \def (getl_gen_all TMP_1 x TMP_2 H) in 
-(let TMP_5 \def (\lambda (e: C).(let TMP_3 \def (S h) in (let TMP_4 \def 
-(CHead c k u) in (drop TMP_3 O TMP_4 e)))) in (let TMP_6 \def (\lambda (e: 
-C).(clear e x)) in (let TMP_7 \def (r k h) in (let TMP_8 \def (getl TMP_7 c 
-x) in (let TMP_11 \def (\lambda (x0: C).(\lambda (H1: (drop (S h) O (CHead c 
-k u) x0)).(\lambda (H2: (clear x0 x)).(let TMP_9 \def (r k h) in (let TMP_10 
-\def (drop_gen_drop k c x0 u h H1) in (getl_intro TMP_9 c x x0 TMP_10 
-H2)))))) in (ex2_ind C TMP_5 TMP_6 TMP_8 TMP_11 H0)))))))))))))).
+nat).(\lambda (H: (getl (S h) (CHead c k u) x)).(let H0 \def (getl_gen_all 
+(CHead c k u) x (S h) H) in (ex2_ind C (\lambda (e: C).(drop (S h) O (CHead c 
+k u) e)) (\lambda (e: C).(clear e x)) (getl (r k h) c x) (\lambda (x0: 
+C).(\lambda (H1: (drop (S h) O (CHead c k u) x0)).(\lambda (H2: (clear x0 
+x)).(getl_intro (r k h) c x x0 (drop_gen_drop k c x0 u h H1) H2)))) H0))))))).
 
 theorem getl_gen_2:
  \forall (c1: C).(\forall (c2: C).(\forall (i: nat).((getl i c1 c2) \to (ex_3 
@@ -93,48 +80,33 @@ B C T (\lambda (b: B).(\lambda (c: C).(\lambda (v: T).(eq C c2 (CHead c (Bind
 b) v)))))))))
 \def
  \lambda (c1: C).(\lambda (c2: C).(\lambda (i: nat).(\lambda (H: (getl i c1 
-c2)).(let H0 \def (getl_gen_all c1 c2 i H) in (let TMP_1 \def (\lambda (e: 
-C).(drop i O c1 e)) in (let TMP_2 \def (\lambda (e: C).(clear e c2)) in (let 
-TMP_5 \def (\lambda (b: B).(\lambda (c: C).(\lambda (v: T).(let TMP_3 \def 
-(Bind b) in (let TMP_4 \def (CHead c TMP_3 v) in (eq C c2 TMP_4)))))) in (let 
-TMP_6 \def (ex_3 B C T TMP_5) in (let TMP_33 \def (\lambda (x: C).(\lambda 
-(_: (drop i O c1 x)).(\lambda (H2: (clear x c2)).(let H3 \def (clear_gen_all 
-x c2 H2) in (let TMP_9 \def (\lambda (b: B).(\lambda (e: C).(\lambda (u: 
-T).(let TMP_7 \def (Bind b) in (let TMP_8 \def (CHead e TMP_7 u) in (eq C c2 
-TMP_8)))))) in (let TMP_12 \def (\lambda (b: B).(\lambda (c: C).(\lambda (v: 
-T).(let TMP_10 \def (Bind b) in (let TMP_11 \def (CHead c TMP_10 v) in (eq C 
-c2 TMP_11)))))) in (let TMP_13 \def (ex_3 B C T TMP_12) in (let TMP_32 \def 
-(\lambda (x0: B).(\lambda (x1: C).(\lambda (x2: T).(\lambda (H4: (eq C c2 
-(CHead x1 (Bind x0) x2))).(let TMP_14 \def (\lambda (c: C).(clear x c)) in 
-(let TMP_15 \def (Bind x0) in (let TMP_16 \def (CHead x1 TMP_15 x2) in (let 
-H5 \def (eq_ind C c2 TMP_14 H2 TMP_16 H4) in (let TMP_17 \def (Bind x0) in 
-(let TMP_18 \def (CHead x1 TMP_17 x2) in (let TMP_22 \def (\lambda (c: 
-C).(let TMP_21 \def (\lambda (b: B).(\lambda (c0: C).(\lambda (v: T).(let 
-TMP_19 \def (Bind b) in (let TMP_20 \def (CHead c0 TMP_19 v) in (eq C c 
-TMP_20)))))) in (ex_3 B C T TMP_21))) in (let TMP_27 \def (\lambda (b: 
-B).(\lambda (c: C).(\lambda (v: T).(let TMP_23 \def (Bind x0) in (let TMP_24 
-\def (CHead x1 TMP_23 x2) in (let TMP_25 \def (Bind b) in (let TMP_26 \def 
-(CHead c TMP_25 v) in (eq C TMP_24 TMP_26)))))))) in (let TMP_28 \def (Bind 
-x0) in (let TMP_29 \def (CHead x1 TMP_28 x2) in (let TMP_30 \def (refl_equal 
-C TMP_29) in (let TMP_31 \def (ex_3_intro B C T TMP_27 x0 x1 x2 TMP_30) in 
-(eq_ind_r C TMP_18 TMP_22 TMP_31 c2 H4))))))))))))))))) in (ex_3_ind B C T 
-TMP_9 TMP_13 TMP_32 H3))))))))) in (ex2_ind C TMP_1 TMP_2 TMP_6 TMP_33 
-H0)))))))))).
+c2)).(let H0 \def (getl_gen_all c1 c2 i H) in (ex2_ind C (\lambda (e: 
+C).(drop i O c1 e)) (\lambda (e: C).(clear e c2)) (ex_3 B C T (\lambda (b: 
+B).(\lambda (c: C).(\lambda (v: T).(eq C c2 (CHead c (Bind b) v)))))) 
+(\lambda (x: C).(\lambda (_: (drop i O c1 x)).(\lambda (H2: (clear x 
+c2)).(let H3 \def (clear_gen_all x c2 H2) in (ex_3_ind B C T (\lambda (b: 
+B).(\lambda (e: C).(\lambda (u: T).(eq C c2 (CHead e (Bind b) u))))) (ex_3 B 
+C T (\lambda (b: B).(\lambda (c: C).(\lambda (v: T).(eq C c2 (CHead c (Bind 
+b) v)))))) (\lambda (x0: B).(\lambda (x1: C).(\lambda (x2: T).(\lambda (H4: 
+(eq C c2 (CHead x1 (Bind x0) x2))).(let H5 \def (eq_ind C c2 (\lambda (c: 
+C).(clear x c)) H2 (CHead x1 (Bind x0) x2) H4) in (eq_ind_r C (CHead x1 (Bind 
+x0) x2) (\lambda (c: C).(ex_3 B C T (\lambda (b: B).(\lambda (c0: C).(\lambda 
+(v: T).(eq C c (CHead c0 (Bind b) v))))))) (ex_3_intro B C T (\lambda (b: 
+B).(\lambda (c: C).(\lambda (v: T).(eq C (CHead x1 (Bind x0) x2) (CHead c 
+(Bind b) v))))) x0 x1 x2 (refl_equal C (CHead x1 (Bind x0) x2))) c2 H4)))))) 
+H3))))) H0))))).
 
 theorem getl_gen_flat:
  \forall (f: F).(\forall (e: C).(\forall (d: C).(\forall (v: T).(\forall (i: 
 nat).((getl i (CHead e (Flat f) v) d) \to (getl i e d))))))
 \def
  \lambda (f: F).(\lambda (e: C).(\lambda (d: C).(\lambda (v: T).(\lambda (i: 
-nat).(let TMP_1 \def (\lambda (n: nat).((getl n (CHead e (Flat f) v) d) \to 
-(getl n e d))) in (let TMP_7 \def (\lambda (H: (getl O (CHead e (Flat f) v) 
-d)).(let TMP_2 \def (drop_refl e) in (let TMP_3 \def (Flat f) in (let TMP_4 
-\def (CHead e TMP_3 v) in (let TMP_5 \def (getl_gen_O TMP_4 d H) in (let 
-TMP_6 \def (clear_gen_flat f e d v TMP_5) in (getl_intro O e d e TMP_2 
-TMP_6))))))) in (let TMP_9 \def (\lambda (n: nat).(\lambda (_: (((getl n 
-(CHead e (Flat f) v) d) \to (getl n e d)))).(\lambda (H0: (getl (S n) (CHead 
-e (Flat f) v) d)).(let TMP_8 \def (Flat f) in (getl_gen_S TMP_8 e d v n 
-H0))))) in (nat_ind TMP_1 TMP_7 TMP_9 i)))))))).
+nat).(nat_ind (\lambda (n: nat).((getl n (CHead e (Flat f) v) d) \to (getl n 
+e d))) (\lambda (H: (getl O (CHead e (Flat f) v) d)).(getl_intro O e d e 
+(drop_refl e) (clear_gen_flat f e d v (getl_gen_O (CHead e (Flat f) v) d 
+H)))) (\lambda (n: nat).(\lambda (_: (((getl n (CHead e (Flat f) v) d) \to 
+(getl n e d)))).(\lambda (H0: (getl (S n) (CHead e (Flat f) v) 
+d)).(getl_gen_S (Flat f) e d v n H0)))) i))))).
 
 theorem getl_gen_bind:
  \forall (b: B).(\forall (e: C).(\forall (d: C).(\forall (v: T).(\forall (i: 
@@ -143,52 +115,25 @@ nat).((getl i (CHead e (Bind b) v) d) \to (or (land (eq nat i O) (eq C d
 (j: nat).(getl j e d)))))))))
 \def
  \lambda (b: B).(\lambda (e: C).(\lambda (d: C).(\lambda (v: T).(\lambda (i: 
-nat).(let TMP_10 \def (\lambda (n: nat).((getl n (CHead e (Bind b) v) d) \to 
-(let TMP_1 \def (eq nat n O) in (let TMP_2 \def (Bind b) in (let TMP_3 \def 
-(CHead e TMP_2 v) in (let TMP_4 \def (eq C d TMP_3) in (let TMP_5 \def (land 
-TMP_1 TMP_4) in (let TMP_7 \def (\lambda (j: nat).(let TMP_6 \def (S j) in 
-(eq nat n TMP_6))) in (let TMP_8 \def (\lambda (j: nat).(getl j e d)) in (let 
-TMP_9 \def (ex2 nat TMP_7 TMP_8) in (or TMP_5 TMP_9))))))))))) in (let TMP_52 
-\def (\lambda (H: (getl O (CHead e (Bind b) v) d)).(let TMP_11 \def (Bind b) 
-in (let TMP_12 \def (CHead e TMP_11 v) in (let TMP_22 \def (\lambda (c: 
-C).(let TMP_13 \def (eq nat O O) in (let TMP_14 \def (Bind b) in (let TMP_15 
-\def (CHead e TMP_14 v) in (let TMP_16 \def (eq C c TMP_15) in (let TMP_17 
-\def (land TMP_13 TMP_16) in (let TMP_19 \def (\lambda (j: nat).(let TMP_18 
-\def (S j) in (eq nat O TMP_18))) in (let TMP_20 \def (\lambda (j: nat).(getl 
-j e c)) in (let TMP_21 \def (ex2 nat TMP_19 TMP_20) in (or TMP_17 
-TMP_21)))))))))) in (let TMP_23 \def (eq nat O O) in (let TMP_24 \def (Bind 
-b) in (let TMP_25 \def (CHead e TMP_24 v) in (let TMP_26 \def (Bind b) in 
-(let TMP_27 \def (CHead e TMP_26 v) in (let TMP_28 \def (eq C TMP_25 TMP_27) 
-in (let TMP_29 \def (land TMP_23 TMP_28) in (let TMP_31 \def (\lambda (j: 
-nat).(let TMP_30 \def (S j) in (eq nat O TMP_30))) in (let TMP_34 \def 
-(\lambda (j: nat).(let TMP_32 \def (Bind b) in (let TMP_33 \def (CHead e 
-TMP_32 v) in (getl j e TMP_33)))) in (let TMP_35 \def (ex2 nat TMP_31 TMP_34) 
-in (let TMP_36 \def (eq nat O O) in (let TMP_37 \def (Bind b) in (let TMP_38 
-\def (CHead e TMP_37 v) in (let TMP_39 \def (Bind b) in (let TMP_40 \def 
-(CHead e TMP_39 v) in (let TMP_41 \def (eq C TMP_38 TMP_40) in (let TMP_42 
-\def (refl_equal nat O) in (let TMP_43 \def (Bind b) in (let TMP_44 \def 
-(CHead e TMP_43 v) in (let TMP_45 \def (refl_equal C TMP_44) in (let TMP_46 
-\def (conj TMP_36 TMP_41 TMP_42 TMP_45) in (let TMP_47 \def (or_introl TMP_29 
-TMP_35 TMP_46) in (let TMP_48 \def (Bind b) in (let TMP_49 \def (CHead e 
-TMP_48 v) in (let TMP_50 \def (getl_gen_O TMP_49 d H) in (let TMP_51 \def 
-(clear_gen_bind b e d v TMP_50) in (eq_ind_r C TMP_12 TMP_22 TMP_47 d 
-TMP_51))))))))))))))))))))))))))))))) in (let TMP_73 \def (\lambda (n: 
+nat).(nat_ind (\lambda (n: nat).((getl n (CHead e (Bind b) v) d) \to (or 
+(land (eq nat n O) (eq C d (CHead e (Bind b) v))) (ex2 nat (\lambda (j: 
+nat).(eq nat n (S j))) (\lambda (j: nat).(getl j e d)))))) (\lambda (H: (getl 
+O (CHead e (Bind b) v) d)).(eq_ind_r C (CHead e (Bind b) v) (\lambda (c: 
+C).(or (land (eq nat O O) (eq C c (CHead e (Bind b) v))) (ex2 nat (\lambda 
+(j: nat).(eq nat O (S j))) (\lambda (j: nat).(getl j e c))))) (or_introl 
+(land (eq nat O O) (eq C (CHead e (Bind b) v) (CHead e (Bind b) v))) (ex2 nat 
+(\lambda (j: nat).(eq nat O (S j))) (\lambda (j: nat).(getl j e (CHead e 
+(Bind b) v)))) (conj (eq nat O O) (eq C (CHead e (Bind b) v) (CHead e (Bind 
+b) v)) (refl_equal nat O) (refl_equal C (CHead e (Bind b) v)))) d 
+(clear_gen_bind b e d v (getl_gen_O (CHead e (Bind b) v) d H)))) (\lambda (n: 
 nat).(\lambda (_: (((getl n (CHead e (Bind b) v) d) \to (or (land (eq nat n 
 O) (eq C d (CHead e (Bind b) v))) (ex2 nat (\lambda (j: nat).(eq nat n (S 
 j))) (\lambda (j: nat).(getl j e d))))))).(\lambda (H0: (getl (S n) (CHead e 
-(Bind b) v) d)).(let TMP_53 \def (S n) in (let TMP_54 \def (eq nat TMP_53 O) 
-in (let TMP_55 \def (Bind b) in (let TMP_56 \def (CHead e TMP_55 v) in (let 
-TMP_57 \def (eq C d TMP_56) in (let TMP_58 \def (land TMP_54 TMP_57) in (let 
-TMP_61 \def (\lambda (j: nat).(let TMP_59 \def (S n) in (let TMP_60 \def (S 
-j) in (eq nat TMP_59 TMP_60)))) in (let TMP_62 \def (\lambda (j: nat).(getl j 
-e d)) in (let TMP_63 \def (ex2 nat TMP_61 TMP_62) in (let TMP_66 \def 
-(\lambda (j: nat).(let TMP_64 \def (S n) in (let TMP_65 \def (S j) in (eq nat 
-TMP_64 TMP_65)))) in (let TMP_67 \def (\lambda (j: nat).(getl j e d)) in (let 
-TMP_68 \def (S n) in (let TMP_69 \def (refl_equal nat TMP_68) in (let TMP_70 
-\def (Bind b) in (let TMP_71 \def (getl_gen_S TMP_70 e d v n H0) in (let 
-TMP_72 \def (ex_intro2 nat TMP_66 TMP_67 n TMP_69 TMP_71) in (or_intror 
-TMP_58 TMP_63 TMP_72)))))))))))))))))))) in (nat_ind TMP_10 TMP_52 TMP_73 
-i)))))))).
+(Bind b) v) d)).(or_intror (land (eq nat (S n) O) (eq C d (CHead e (Bind b) 
+v))) (ex2 nat (\lambda (j: nat).(eq nat (S n) (S j))) (\lambda (j: nat).(getl 
+j e d))) (ex_intro2 nat (\lambda (j: nat).(eq nat (S n) (S j))) (\lambda (j: 
+nat).(getl j e d)) n (refl_equal nat (S n)) (getl_gen_S (Bind b) e d v n 
+H0)))))) i))))).
 
 theorem getl_mono:
  \forall (c: C).(\forall (x1: C).(\forall (h: nat).((getl h c x1) \to 
@@ -196,19 +141,14 @@ theorem getl_mono:
 \def
  \lambda (c: C).(\lambda (x1: C).(\lambda (h: nat).(\lambda (H: (getl h c 
 x1)).(\lambda (x2: C).(\lambda (H0: (getl h c x2)).(let H1 \def (getl_gen_all 
-c x2 h H0) in (let TMP_1 \def (\lambda (e: C).(drop h O c e)) in (let TMP_2 
-\def (\lambda (e: C).(clear e x2)) in (let TMP_3 \def (eq C x1 x2) in (let 
-TMP_14 \def (\lambda (x: C).(\lambda (H2: (drop h O c x)).(\lambda (H3: 
-(clear x x2)).(let H4 \def (getl_gen_all c x1 h H) in (let TMP_4 \def 
-(\lambda (e: C).(drop h O c e)) in (let TMP_5 \def (\lambda (e: C).(clear e 
-x1)) in (let TMP_6 \def (eq C x1 x2) in (let TMP_13 \def (\lambda (x0: 
-C).(\lambda (H5: (drop h O c x0)).(\lambda (H6: (clear x0 x1)).(let TMP_7 
-\def (\lambda (c0: C).(drop h O c c0)) in (let TMP_8 \def (drop_mono c x O h 
-H2 x0 H5) in (let H7 \def (eq_ind C x TMP_7 H2 x0 TMP_8) in (let TMP_9 \def 
-(\lambda (c0: C).(drop h O c c0)) in (let TMP_10 \def (drop_mono c x O h H2 
-x0 H5) in (let H8 \def (eq_ind_r C x0 TMP_9 H7 x TMP_10) in (let TMP_11 \def 
-(\lambda (c0: C).(clear c0 x1)) in (let TMP_12 \def (drop_mono c x O h H2 x0 
-H5) in (let H9 \def (eq_ind_r C x0 TMP_11 H6 x TMP_12) in (clear_mono x x1 H9 
-x2 H3))))))))))))) in (ex2_ind C TMP_4 TMP_5 TMP_6 TMP_13 H4))))))))) in 
-(ex2_ind C TMP_1 TMP_2 TMP_3 TMP_14 H1))))))))))).
+c x2 h H0) in (ex2_ind C (\lambda (e: C).(drop h O c e)) (\lambda (e: 
+C).(clear e x2)) (eq C x1 x2) (\lambda (x: C).(\lambda (H2: (drop h O c 
+x)).(\lambda (H3: (clear x x2)).(let H4 \def (getl_gen_all c x1 h H) in 
+(ex2_ind C (\lambda (e: C).(drop h O c e)) (\lambda (e: C).(clear e x1)) (eq 
+C x1 x2) (\lambda (x0: C).(\lambda (H5: (drop h O c x0)).(\lambda (H6: (clear 
+x0 x1)).(let H7 \def (eq_ind C x (\lambda (c0: C).(drop h O c c0)) H2 x0 
+(drop_mono c x O h H2 x0 H5)) in (let H8 \def (eq_ind_r C x0 (\lambda (c0: 
+C).(drop h O c c0)) H7 x (drop_mono c x O h H2 x0 H5)) in (let H9 \def 
+(eq_ind_r C x0 (\lambda (c0: C).(clear c0 x1)) H6 x (drop_mono c x O h H2 x0 
+H5)) in (clear_mono x x1 H9 x2 H3))))))) H4))))) H1))))))).
 
index 824b1b181ec439cb334d1b08f3624c4137d909a2..c3c50a80f98195efcb3d18383e5eedaca0584e28 100644 (file)
@@ -25,13 +25,11 @@ a))))))))
 \def
  \lambda (i: nat).(\lambda (a: C).(\lambda (c: C).(\lambda (H: (getl i c 
 a)).(\lambda (e: C).(\lambda (h: nat).(\lambda (H0: (getl h c e)).(\lambda 
-(H1: (le h i)).(let H2 \def (getl_gen_all c e h H0) in (let TMP_1 \def 
-(\lambda (e0: C).(drop h O c e0)) in (let TMP_2 \def (\lambda (e0: C).(clear 
-e0 e)) in (let TMP_3 \def (minus i h) in (let TMP_4 \def (getl TMP_3 e a) in 
-(let TMP_7 \def (\lambda (x: C).(\lambda (H3: (drop h O c x)).(\lambda (H4: 
-(clear x e)).(let TMP_5 \def (minus i h) in (let TMP_6 \def 
-(getl_drop_conf_ge i a c H x h O H3 H1) in (getl_clear_conf TMP_5 x a TMP_6 e 
-H4)))))) in (ex2_ind C TMP_1 TMP_2 TMP_4 TMP_7 H2)))))))))))))).
+(H1: (le h i)).(let H2 \def (getl_gen_all c e h H0) in (ex2_ind C (\lambda 
+(e0: C).(drop h O c e0)) (\lambda (e0: C).(clear e0 e)) (getl (minus i h) e 
+a) (\lambda (x: C).(\lambda (H3: (drop h O c x)).(\lambda (H4: (clear x 
+e)).(getl_clear_conf (minus i h) x a (getl_drop_conf_ge i a c H x h O H3 H1) 
+e H4)))) H2))))))))).
 
 theorem getl_trans:
  \forall (i: nat).(\forall (c1: C).(\forall (c2: C).(\forall (h: nat).((getl 
@@ -40,19 +38,14 @@ e2)))))))
 \def
  \lambda (i: nat).(\lambda (c1: C).(\lambda (c2: C).(\lambda (h: 
 nat).(\lambda (H: (getl h c1 c2)).(\lambda (e2: C).(\lambda (H0: (getl i c2 
-e2)).(let H1 \def (getl_gen_all c2 e2 i H0) in (let TMP_1 \def (\lambda (e: 
-C).(drop i O c2 e)) in (let TMP_2 \def (\lambda (e: C).(clear e e2)) in (let 
-TMP_3 \def (plus i h) in (let TMP_4 \def (getl TMP_3 c1 e2) in (let TMP_14 
-\def (\lambda (x: C).(\lambda (H2: (drop i O c2 x)).(\lambda (H3: (clear x 
-e2)).(let TMP_6 \def (\lambda (n: nat).((drop n O c2 x) \to (let TMP_5 \def 
-(plus n h) in (getl TMP_5 c1 e2)))) in (let TMP_10 \def (\lambda (H4: (drop O 
-O c2 x)).(let TMP_7 \def (\lambda (c: C).(clear c e2)) in (let TMP_8 \def 
-(drop_gen_refl c2 x H4) in (let H5 \def (eq_ind_r C x TMP_7 H3 c2 TMP_8) in 
-(let TMP_9 \def (plus O h) in (getl_clear_trans TMP_9 c1 c2 H e2 H5)))))) in 
-(let TMP_13 \def (\lambda (i0: nat).(\lambda (_: (((drop i0 O c2 x) \to (getl 
-(plus i0 h) c1 e2)))).(\lambda (H4: (drop (S i0) O c2 x)).(let H_y \def 
-(getl_drop_trans c1 c2 h H x i0 H4) in (let TMP_11 \def (S i0) in (let TMP_12 
-\def (plus TMP_11 h) in (getl_intro TMP_12 c1 e2 x H_y H3))))))) in (nat_ind 
-TMP_6 TMP_10 TMP_13 i H2))))))) in (ex2_ind C TMP_1 TMP_2 TMP_4 TMP_14 
-H1))))))))))))).
+e2)).(let H1 \def (getl_gen_all c2 e2 i H0) in (ex2_ind C (\lambda (e: 
+C).(drop i O c2 e)) (\lambda (e: C).(clear e e2)) (getl (plus i h) c1 e2) 
+(\lambda (x: C).(\lambda (H2: (drop i O c2 x)).(\lambda (H3: (clear x 
+e2)).(nat_ind (\lambda (n: nat).((drop n O c2 x) \to (getl (plus n h) c1 
+e2))) (\lambda (H4: (drop O O c2 x)).(let H5 \def (eq_ind_r C x (\lambda (c: 
+C).(clear c e2)) H3 c2 (drop_gen_refl c2 x H4)) in (getl_clear_trans (plus O 
+h) c1 c2 H e2 H5))) (\lambda (i0: nat).(\lambda (_: (((drop i0 O c2 x) \to 
+(getl (plus i0 h) c1 e2)))).(\lambda (H4: (drop (S i0) O c2 x)).(let H_y \def 
+(getl_drop_trans c1 c2 h H x i0 H4) in (getl_intro (plus (S i0) h) c1 e2 x 
+H_y H3))))) i H2)))) H1)))))))).
 
index 2747e0c746cf9e2e840e614ccbbbf20ab0919769..c1a4f58f1f05f83916ba8e35a8c280480ee55ad2 100644 (file)
@@ -24,27 +24,20 @@ theorem getl_refl:
  \forall (b: B).(\forall (c: C).(\forall (u: T).(getl O (CHead c (Bind b) u) 
 (CHead c (Bind b) u))))
 \def
- \lambda (b: B).(\lambda (c: C).(\lambda (u: T).(let TMP_1 \def (Bind b) in 
-(let TMP_2 \def (CHead c TMP_1 u) in (let TMP_3 \def (Bind b) in (let TMP_4 
-\def (CHead c TMP_3 u) in (let TMP_5 \def (Bind b) in (let TMP_6 \def (CHead 
-c TMP_5 u) in (let TMP_7 \def (Bind b) in (let TMP_8 \def (CHead c TMP_7 u) 
-in (let TMP_9 \def (drop_refl TMP_8) in (let TMP_10 \def (clear_bind b c u) 
-in (getl_intro O TMP_2 TMP_4 TMP_6 TMP_9 TMP_10))))))))))))).
+ \lambda (b: B).(\lambda (c: C).(\lambda (u: T).(getl_intro O (CHead c (Bind 
+b) u) (CHead c (Bind b) u) (CHead c (Bind b) u) (drop_refl (CHead c (Bind b) 
+u)) (clear_bind b c u)))).
 
 theorem getl_head:
  \forall (k: K).(\forall (h: nat).(\forall (c: C).(\forall (e: C).((getl (r k 
 h) c e) \to (\forall (u: T).(getl (S h) (CHead c k u) e))))))
 \def
  \lambda (k: K).(\lambda (h: nat).(\lambda (c: C).(\lambda (e: C).(\lambda 
-(H: (getl (r k h) c e)).(\lambda (u: T).(let TMP_1 \def (r k h) in (let H0 
-\def (getl_gen_all c e TMP_1 H) in (let TMP_3 \def (\lambda (e0: C).(let 
-TMP_2 \def (r k h) in (drop TMP_2 O c e0))) in (let TMP_4 \def (\lambda (e0: 
-C).(clear e0 e)) in (let TMP_5 \def (S h) in (let TMP_6 \def (CHead c k u) in 
-(let TMP_7 \def (getl TMP_5 TMP_6 e) in (let TMP_11 \def (\lambda (x: 
-C).(\lambda (H1: (drop (r k h) O c x)).(\lambda (H2: (clear x e)).(let TMP_8 
-\def (S h) in (let TMP_9 \def (CHead c k u) in (let TMP_10 \def (drop_drop k 
-h c x H1 u) in (getl_intro TMP_8 TMP_9 e x TMP_10 H2))))))) in (ex2_ind C 
-TMP_3 TMP_4 TMP_7 TMP_11 H0)))))))))))))).
+(H: (getl (r k h) c e)).(\lambda (u: T).(let H0 \def (getl_gen_all c e (r k 
+h) H) in (ex2_ind C (\lambda (e0: C).(drop (r k h) O c e0)) (\lambda (e0: 
+C).(clear e0 e)) (getl (S h) (CHead c k u) e) (\lambda (x: C).(\lambda (H1: 
+(drop (r k h) O c x)).(\lambda (H2: (clear x e)).(getl_intro (S h) (CHead c k 
+u) e x (drop_drop k h c x H1 u) H2)))) H0))))))).
 
 theorem getl_flat:
  \forall (c: C).(\forall (e: C).(\forall (h: nat).((getl h c e) \to (\forall 
@@ -52,25 +45,16 @@ theorem getl_flat:
 \def
  \lambda (c: C).(\lambda (e: C).(\lambda (h: nat).(\lambda (H: (getl h c 
 e)).(\lambda (f: F).(\lambda (u: T).(let H0 \def (getl_gen_all c e h H) in 
-(let TMP_1 \def (\lambda (e0: C).(drop h O c e0)) in (let TMP_2 \def (\lambda 
-(e0: C).(clear e0 e)) in (let TMP_3 \def (Flat f) in (let TMP_4 \def (CHead c 
-TMP_3 u) in (let TMP_5 \def (getl h TMP_4 e) in (let TMP_26 \def (\lambda (x: 
-C).(\lambda (H1: (drop h O c x)).(\lambda (H2: (clear x e)).(let TMP_8 \def 
-(\lambda (n: nat).((drop n O c x) \to (let TMP_6 \def (Flat f) in (let TMP_7 
-\def (CHead c TMP_6 u) in (getl n TMP_7 e))))) in (let TMP_19 \def (\lambda 
-(H3: (drop O O c x)).(let TMP_9 \def (\lambda (c0: C).(clear c0 e)) in (let 
-TMP_10 \def (drop_gen_refl c x H3) in (let H4 \def (eq_ind_r C x TMP_9 H2 c 
-TMP_10) in (let TMP_11 \def (Flat f) in (let TMP_12 \def (CHead c TMP_11 u) 
-in (let TMP_13 \def (Flat f) in (let TMP_14 \def (CHead c TMP_13 u) in (let 
-TMP_15 \def (Flat f) in (let TMP_16 \def (CHead c TMP_15 u) in (let TMP_17 
-\def (drop_refl TMP_16) in (let TMP_18 \def (clear_flat c e H4 f u) in 
-(getl_intro O TMP_12 e TMP_14 TMP_17 TMP_18))))))))))))) in (let TMP_25 \def 
-(\lambda (h0: nat).(\lambda (_: (((drop h0 O c x) \to (getl h0 (CHead c (Flat 
-f) u) e)))).(\lambda (H3: (drop (S h0) O c x)).(let TMP_20 \def (S h0) in 
-(let TMP_21 \def (Flat f) in (let TMP_22 \def (CHead c TMP_21 u) in (let 
-TMP_23 \def (Flat f) in (let TMP_24 \def (drop_drop TMP_23 h0 c x H3 u) in 
-(getl_intro TMP_20 TMP_22 e x TMP_24 H2))))))))) in (nat_ind TMP_8 TMP_19 
-TMP_25 h H1))))))) in (ex2_ind C TMP_1 TMP_2 TMP_5 TMP_26 H0))))))))))))).
+(ex2_ind C (\lambda (e0: C).(drop h O c e0)) (\lambda (e0: C).(clear e0 e)) 
+(getl h (CHead c (Flat f) u) e) (\lambda (x: C).(\lambda (H1: (drop h O c 
+x)).(\lambda (H2: (clear x e)).(nat_ind (\lambda (n: nat).((drop n O c x) \to 
+(getl n (CHead c (Flat f) u) e))) (\lambda (H3: (drop O O c x)).(let H4 \def 
+(eq_ind_r C x (\lambda (c0: C).(clear c0 e)) H2 c (drop_gen_refl c x H3)) in 
+(getl_intro O (CHead c (Flat f) u) e (CHead c (Flat f) u) (drop_refl (CHead c 
+(Flat f) u)) (clear_flat c e H4 f u)))) (\lambda (h0: nat).(\lambda (_: 
+(((drop h0 O c x) \to (getl h0 (CHead c (Flat f) u) e)))).(\lambda (H3: (drop 
+(S h0) O c x)).(getl_intro (S h0) (CHead c (Flat f) u) e x (drop_drop (Flat 
+f) h0 c x H3 u) H2)))) h H1)))) H0))))))).
 
 theorem getl_ctail:
  \forall (b: B).(\forall (c: C).(\forall (d: C).(\forall (u: T).(\forall (i: 
@@ -79,17 +63,10 @@ T).(getl i (CTail k v c) (CHead (CTail k v d) (Bind b) u)))))))))
 \def
  \lambda (b: B).(\lambda (c: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: 
 nat).(\lambda (H: (getl i c (CHead d (Bind b) u))).(\lambda (k: K).(\lambda 
-(v: T).(let TMP_1 \def (Bind b) in (let TMP_2 \def (CHead d TMP_1 u) in (let 
-H0 \def (getl_gen_all c TMP_2 i H) in (let TMP_3 \def (\lambda (e: C).(drop i 
-O c e)) in (let TMP_6 \def (\lambda (e: C).(let TMP_4 \def (Bind b) in (let 
-TMP_5 \def (CHead d TMP_4 u) in (clear e TMP_5)))) in (let TMP_7 \def (CTail 
-k v c) in (let TMP_8 \def (CTail k v d) in (let TMP_9 \def (Bind b) in (let 
-TMP_10 \def (CHead TMP_8 TMP_9 u) in (let TMP_11 \def (getl i TMP_7 TMP_10) 
-in (let TMP_19 \def (\lambda (x: C).(\lambda (H1: (drop i O c x)).(\lambda 
-(H2: (clear x (CHead d (Bind b) u))).(let TMP_12 \def (CTail k v c) in (let 
-TMP_13 \def (CTail k v d) in (let TMP_14 \def (Bind b) in (let TMP_15 \def 
-(CHead TMP_13 TMP_14 u) in (let TMP_16 \def (CTail k v x) in (let TMP_17 \def 
-(drop_ctail c x O i H1 k v) in (let TMP_18 \def (clear_ctail b x d u H2 k v) 
-in (getl_intro i TMP_12 TMP_15 TMP_16 TMP_17 TMP_18))))))))))) in (ex2_ind C 
-TMP_3 TMP_6 TMP_11 TMP_19 H0))))))))))))))))))).
+(v: T).(let H0 \def (getl_gen_all c (CHead d (Bind b) u) i H) in (ex2_ind C 
+(\lambda (e: C).(drop i O c e)) (\lambda (e: C).(clear e (CHead d (Bind b) 
+u))) (getl i (CTail k v c) (CHead (CTail k v d) (Bind b) u)) (\lambda (x: 
+C).(\lambda (H1: (drop i O c x)).(\lambda (H2: (clear x (CHead d (Bind b) 
+u))).(getl_intro i (CTail k v c) (CHead (CTail k v d) (Bind b) u) (CTail k v 
+x) (drop_ctail c x O i H1 k v) (clear_ctail b x d u H2 k v))))) H0))))))))).
 
index 40917f7b90f7f11284419fa42247b9fd0ca4836f..3a917c0852be9db7f6798a16907878f1d728ea6d 100644 (file)
@@ -39,75 +39,51 @@ theorem iso_gen_sort:
  \forall (u2: T).(\forall (n1: nat).((iso (TSort n1) u2) \to (ex nat (\lambda 
 (n2: nat).(eq T u2 (TSort n2))))))
 \def
- \lambda (u2: T).(\lambda (n1: nat).(\lambda (H: (iso (TSort n1) u2)).(let 
-TMP_1 \def (TSort n1) in (let TMP_2 \def (\lambda (t: T).(iso t u2)) in (let 
-TMP_5 \def (\lambda (_: T).(let TMP_4 \def (\lambda (n2: nat).(let TMP_3 \def 
-(TSort n2) in (eq T u2 TMP_3))) in (ex nat TMP_4))) in (let TMP_34 \def 
-(\lambda (y: T).(\lambda (H0: (iso y u2)).(let TMP_8 \def (\lambda (t: 
-T).(\lambda (t0: T).((eq T t (TSort n1)) \to (let TMP_7 \def (\lambda (n2: 
-nat).(let TMP_6 \def (TSort n2) in (eq T t0 TMP_6))) in (ex nat TMP_7))))) in 
-(let TMP_17 \def (\lambda (n0: nat).(\lambda (n2: nat).(\lambda (H1: (eq T 
-(TSort n0) (TSort n1))).(let TMP_9 \def (\lambda (e: T).(match e with [(TSort 
-n) \Rightarrow n | (TLRef _) \Rightarrow n0 | (THead _ _ _) \Rightarrow n0])) 
-in (let TMP_10 \def (TSort n0) in (let TMP_11 \def (TSort n1) in (let H2 \def 
-(f_equal T nat TMP_9 TMP_10 TMP_11 H1) in (let TMP_14 \def (\lambda (n3: 
-nat).(let TMP_12 \def (TSort n2) in (let TMP_13 \def (TSort n3) in (eq T 
-TMP_12 TMP_13)))) in (let TMP_15 \def (TSort n2) in (let TMP_16 \def 
-(refl_equal T TMP_15) in (ex_intro nat TMP_14 n2 TMP_16))))))))))) in (let 
-TMP_25 \def (\lambda (i1: nat).(\lambda (i2: nat).(\lambda (H1: (eq T (TLRef 
-i1) (TSort n1))).(let TMP_18 \def (TLRef i1) in (let TMP_19 \def (\lambda 
+ \lambda (u2: T).(\lambda (n1: nat).(\lambda (H: (iso (TSort n1) 
+u2)).(insert_eq T (TSort n1) (\lambda (t: T).(iso t u2)) (\lambda (_: T).(ex 
+nat (\lambda (n2: nat).(eq T u2 (TSort n2))))) (\lambda (y: T).(\lambda (H0: 
+(iso y u2)).(iso_ind (\lambda (t: T).(\lambda (t0: T).((eq T t (TSort n1)) 
+\to (ex nat (\lambda (n2: nat).(eq T t0 (TSort n2))))))) (\lambda (n0: 
+nat).(\lambda (n2: nat).(\lambda (H1: (eq T (TSort n0) (TSort n1))).(let H2 
+\def (f_equal T nat (\lambda (e: T).(match e with [(TSort n) \Rightarrow n | 
+(TLRef _) \Rightarrow n0 | (THead _ _ _) \Rightarrow n0])) (TSort n0) (TSort 
+n1) H1) in (ex_intro nat (\lambda (n3: nat).(eq T (TSort n2) (TSort n3))) n2 
+(refl_equal T (TSort n2))))))) (\lambda (i1: nat).(\lambda (i2: nat).(\lambda 
+(H1: (eq T (TLRef i1) (TSort n1))).(let H2 \def (eq_ind T (TLRef i1) (\lambda 
 (ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow 
-True | (THead _ _ _) \Rightarrow False])) in (let TMP_20 \def (TSort n1) in 
-(let H2 \def (eq_ind T TMP_18 TMP_19 I TMP_20 H1) in (let TMP_23 \def 
-(\lambda (n2: nat).(let TMP_21 \def (TLRef i2) in (let TMP_22 \def (TSort n2) 
-in (eq T TMP_21 TMP_22)))) in (let TMP_24 \def (ex nat TMP_23) in (False_ind 
-TMP_24 H2)))))))))) in (let TMP_33 \def (\lambda (v1: T).(\lambda (v2: 
-T).(\lambda (t1: T).(\lambda (t2: T).(\lambda (k: K).(\lambda (H1: (eq T 
-(THead k v1 t1) (TSort n1))).(let TMP_26 \def (THead k v1 t1) in (let TMP_27 
-\def (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) 
-\Rightarrow False | (THead _ _ _) \Rightarrow True])) in (let TMP_28 \def 
-(TSort n1) in (let H2 \def (eq_ind T TMP_26 TMP_27 I TMP_28 H1) in (let 
-TMP_31 \def (\lambda (n2: nat).(let TMP_29 \def (THead k v2 t2) in (let 
-TMP_30 \def (TSort n2) in (eq T TMP_29 TMP_30)))) in (let TMP_32 \def (ex nat 
-TMP_31) in (False_ind TMP_32 H2))))))))))))) in (iso_ind TMP_8 TMP_17 TMP_25 
-TMP_33 y u2 H0))))))) in (insert_eq T TMP_1 TMP_2 TMP_5 TMP_34 H))))))).
+True | (THead _ _ _) \Rightarrow False])) I (TSort n1) H1) in (False_ind (ex 
+nat (\lambda (n2: nat).(eq T (TLRef i2) (TSort n2)))) H2))))) (\lambda (v1: 
+T).(\lambda (v2: T).(\lambda (t1: T).(\lambda (t2: T).(\lambda (k: 
+K).(\lambda (H1: (eq T (THead k v1 t1) (TSort n1))).(let H2 \def (eq_ind T 
+(THead k v1 t1) (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False 
+| (TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow True])) I (TSort 
+n1) H1) in (False_ind (ex nat (\lambda (n2: nat).(eq T (THead k v2 t2) (TSort 
+n2)))) H2)))))))) y u2 H0))) H))).
 
 theorem iso_gen_lref:
  \forall (u2: T).(\forall (n1: nat).((iso (TLRef n1) u2) \to (ex nat (\lambda 
 (n2: nat).(eq T u2 (TLRef n2))))))
 \def
- \lambda (u2: T).(\lambda (n1: nat).(\lambda (H: (iso (TLRef n1) u2)).(let 
-TMP_1 \def (TLRef n1) in (let TMP_2 \def (\lambda (t: T).(iso t u2)) in (let 
-TMP_5 \def (\lambda (_: T).(let TMP_4 \def (\lambda (n2: nat).(let TMP_3 \def 
-(TLRef n2) in (eq T u2 TMP_3))) in (ex nat TMP_4))) in (let TMP_34 \def 
-(\lambda (y: T).(\lambda (H0: (iso y u2)).(let TMP_8 \def (\lambda (t: 
-T).(\lambda (t0: T).((eq T t (TLRef n1)) \to (let TMP_7 \def (\lambda (n2: 
-nat).(let TMP_6 \def (TLRef n2) in (eq T t0 TMP_6))) in (ex nat TMP_7))))) in 
-(let TMP_16 \def (\lambda (n0: nat).(\lambda (n2: nat).(\lambda (H1: (eq T 
-(TSort n0) (TLRef n1))).(let TMP_9 \def (TSort n0) in (let TMP_10 \def 
-(\lambda (ee: T).(match ee with [(TSort _) \Rightarrow True | (TLRef _) 
-\Rightarrow False | (THead _ _ _) \Rightarrow False])) in (let TMP_11 \def 
-(TLRef n1) in (let H2 \def (eq_ind T TMP_9 TMP_10 I TMP_11 H1) in (let TMP_14 
-\def (\lambda (n3: nat).(let TMP_12 \def (TSort n2) in (let TMP_13 \def 
-(TLRef n3) in (eq T TMP_12 TMP_13)))) in (let TMP_15 \def (ex nat TMP_14) in 
-(False_ind TMP_15 H2)))))))))) in (let TMP_25 \def (\lambda (i1: 
-nat).(\lambda (i2: nat).(\lambda (H1: (eq T (TLRef i1) (TLRef n1))).(let 
-TMP_17 \def (\lambda (e: T).(match e with [(TSort _) \Rightarrow i1 | (TLRef 
-n) \Rightarrow n | (THead _ _ _) \Rightarrow i1])) in (let TMP_18 \def (TLRef 
-i1) in (let TMP_19 \def (TLRef n1) in (let H2 \def (f_equal T nat TMP_17 
-TMP_18 TMP_19 H1) in (let TMP_22 \def (\lambda (n2: nat).(let TMP_20 \def 
-(TLRef i2) in (let TMP_21 \def (TLRef n2) in (eq T TMP_20 TMP_21)))) in (let 
-TMP_23 \def (TLRef i2) in (let TMP_24 \def (refl_equal T TMP_23) in (ex_intro 
-nat TMP_22 i2 TMP_24))))))))))) in (let TMP_33 \def (\lambda (v1: T).(\lambda 
-(v2: T).(\lambda (t1: T).(\lambda (t2: T).(\lambda (k: K).(\lambda (H1: (eq T 
-(THead k v1 t1) (TLRef n1))).(let TMP_26 \def (THead k v1 t1) in (let TMP_27 
-\def (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) 
-\Rightarrow False | (THead _ _ _) \Rightarrow True])) in (let TMP_28 \def 
-(TLRef n1) in (let H2 \def (eq_ind T TMP_26 TMP_27 I TMP_28 H1) in (let 
-TMP_31 \def (\lambda (n2: nat).(let TMP_29 \def (THead k v2 t2) in (let 
-TMP_30 \def (TLRef n2) in (eq T TMP_29 TMP_30)))) in (let TMP_32 \def (ex nat 
-TMP_31) in (False_ind TMP_32 H2))))))))))))) in (iso_ind TMP_8 TMP_16 TMP_25 
-TMP_33 y u2 H0))))))) in (insert_eq T TMP_1 TMP_2 TMP_5 TMP_34 H))))))).
+ \lambda (u2: T).(\lambda (n1: nat).(\lambda (H: (iso (TLRef n1) 
+u2)).(insert_eq T (TLRef n1) (\lambda (t: T).(iso t u2)) (\lambda (_: T).(ex 
+nat (\lambda (n2: nat).(eq T u2 (TLRef n2))))) (\lambda (y: T).(\lambda (H0: 
+(iso y u2)).(iso_ind (\lambda (t: T).(\lambda (t0: T).((eq T t (TLRef n1)) 
+\to (ex nat (\lambda (n2: nat).(eq T t0 (TLRef n2))))))) (\lambda (n0: 
+nat).(\lambda (n2: nat).(\lambda (H1: (eq T (TSort n0) (TLRef n1))).(let H2 
+\def (eq_ind T (TSort n0) (\lambda (ee: T).(match ee with [(TSort _) 
+\Rightarrow True | (TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow 
+False])) I (TLRef n1) H1) in (False_ind (ex nat (\lambda (n3: nat).(eq T 
+(TSort n2) (TLRef n3)))) H2))))) (\lambda (i1: nat).(\lambda (i2: 
+nat).(\lambda (H1: (eq T (TLRef i1) (TLRef n1))).(let H2 \def (f_equal T nat 
+(\lambda (e: T).(match e with [(TSort _) \Rightarrow i1 | (TLRef n) 
+\Rightarrow n | (THead _ _ _) \Rightarrow i1])) (TLRef i1) (TLRef n1) H1) in 
+(ex_intro nat (\lambda (n2: nat).(eq T (TLRef i2) (TLRef n2))) i2 (refl_equal 
+T (TLRef i2))))))) (\lambda (v1: T).(\lambda (v2: T).(\lambda (t1: 
+T).(\lambda (t2: T).(\lambda (k: K).(\lambda (H1: (eq T (THead k v1 t1) 
+(TLRef n1))).(let H2 \def (eq_ind T (THead k v1 t1) (\lambda (ee: T).(match 
+ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | (THead _ 
+_ _) \Rightarrow True])) I (TLRef n1) H1) in (False_ind (ex nat (\lambda (n2: 
+nat).(eq T (THead k v2 t2) (TLRef n2)))) H2)))))))) y u2 H0))) H))).
 
 theorem iso_gen_head:
  \forall (k: K).(\forall (v1: T).(\forall (t1: T).(\forall (u2: T).((iso 
@@ -115,53 +91,35 @@ theorem iso_gen_head:
 (THead k v2 t2)))))))))
 \def
  \lambda (k: K).(\lambda (v1: T).(\lambda (t1: T).(\lambda (u2: T).(\lambda 
-(H: (iso (THead k v1 t1) u2)).(let TMP_1 \def (THead k v1 t1) in (let TMP_2 
-\def (\lambda (t: T).(iso t u2)) in (let TMP_5 \def (\lambda (_: T).(let 
-TMP_4 \def (\lambda (v2: T).(\lambda (t2: T).(let TMP_3 \def (THead k v2 t2) 
-in (eq T u2 TMP_3)))) in (ex_2 T T TMP_4))) in (let TMP_47 \def (\lambda (y: 
-T).(\lambda (H0: (iso y u2)).(let TMP_8 \def (\lambda (t: T).(\lambda (t0: 
-T).((eq T t (THead k v1 t1)) \to (let TMP_7 \def (\lambda (v2: T).(\lambda 
-(t2: T).(let TMP_6 \def (THead k v2 t2) in (eq T t0 TMP_6)))) in (ex_2 T T 
-TMP_7))))) in (let TMP_16 \def (\lambda (n1: nat).(\lambda (n2: nat).(\lambda 
-(H1: (eq T (TSort n1) (THead k v1 t1))).(let TMP_9 \def (TSort n1) in (let 
-TMP_10 \def (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow True | 
-(TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow False])) in (let 
-TMP_11 \def (THead k v1 t1) in (let H2 \def (eq_ind T TMP_9 TMP_10 I TMP_11 
-H1) in (let TMP_14 \def (\lambda (v2: T).(\lambda (t2: T).(let TMP_12 \def 
-(TSort n2) in (let TMP_13 \def (THead k v2 t2) in (eq T TMP_12 TMP_13))))) in 
-(let TMP_15 \def (ex_2 T T TMP_14) in (False_ind TMP_15 H2)))))))))) in (let 
-TMP_24 \def (\lambda (i1: nat).(\lambda (i2: nat).(\lambda (H1: (eq T (TLRef 
-i1) (THead k v1 t1))).(let TMP_17 \def (TLRef i1) in (let TMP_18 \def 
-(\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) 
-\Rightarrow True | (THead _ _ _) \Rightarrow False])) in (let TMP_19 \def 
-(THead k v1 t1) in (let H2 \def (eq_ind T TMP_17 TMP_18 I TMP_19 H1) in (let 
-TMP_22 \def (\lambda (v2: T).(\lambda (t2: T).(let TMP_20 \def (TLRef i2) in 
-(let TMP_21 \def (THead k v2 t2) in (eq T TMP_20 TMP_21))))) in (let TMP_23 
-\def (ex_2 T T TMP_22) in (False_ind TMP_23 H2)))))))))) in (let TMP_46 \def 
+(H: (iso (THead k v1 t1) u2)).(insert_eq T (THead k v1 t1) (\lambda (t: 
+T).(iso t u2)) (\lambda (_: T).(ex_2 T T (\lambda (v2: T).(\lambda (t2: 
+T).(eq T u2 (THead k v2 t2)))))) (\lambda (y: T).(\lambda (H0: (iso y 
+u2)).(iso_ind (\lambda (t: T).(\lambda (t0: T).((eq T t (THead k v1 t1)) \to 
+(ex_2 T T (\lambda (v2: T).(\lambda (t2: T).(eq T t0 (THead k v2 t2)))))))) 
+(\lambda (n1: nat).(\lambda (n2: nat).(\lambda (H1: (eq T (TSort n1) (THead k 
+v1 t1))).(let H2 \def (eq_ind T (TSort n1) (\lambda (ee: T).(match ee with 
+[(TSort _) \Rightarrow True | (TLRef _) \Rightarrow False | (THead _ _ _) 
+\Rightarrow False])) I (THead k v1 t1) H1) in (False_ind (ex_2 T T (\lambda 
+(v2: T).(\lambda (t2: T).(eq T (TSort n2) (THead k v2 t2))))) H2))))) 
+(\lambda (i1: nat).(\lambda (i2: nat).(\lambda (H1: (eq T (TLRef i1) (THead k 
+v1 t1))).(let H2 \def (eq_ind T (TLRef i1) (\lambda (ee: T).(match ee with 
+[(TSort _) \Rightarrow False | (TLRef _) \Rightarrow True | (THead _ _ _) 
+\Rightarrow False])) I (THead k v1 t1) H1) in (False_ind (ex_2 T T (\lambda 
+(v2: T).(\lambda (t2: T).(eq T (TLRef i2) (THead k v2 t2))))) H2))))) 
 (\lambda (v0: T).(\lambda (v2: T).(\lambda (t0: T).(\lambda (t2: T).(\lambda 
-(k0: K).(\lambda (H1: (eq T (THead k0 v0 t0) (THead k v1 t1))).(let TMP_25 
-\def (\lambda (e: T).(match e with [(TSort _) \Rightarrow k0 | (TLRef _) 
-\Rightarrow k0 | (THead k1 _ _) \Rightarrow k1])) in (let TMP_26 \def (THead 
-k0 v0 t0) in (let TMP_27 \def (THead k v1 t1) in (let H2 \def (f_equal T K 
-TMP_25 TMP_26 TMP_27 H1) in (let TMP_28 \def (\lambda (e: T).(match e with 
+(k0: K).(\lambda (H1: (eq T (THead k0 v0 t0) (THead k v1 t1))).(let H2 \def 
+(f_equal T K (\lambda (e: T).(match e with [(TSort _) \Rightarrow k0 | (TLRef 
+_) \Rightarrow k0 | (THead k1 _ _) \Rightarrow k1])) (THead k0 v0 t0) (THead 
+k v1 t1) H1) in ((let H3 \def (f_equal T T (\lambda (e: T).(match e with 
 [(TSort _) \Rightarrow v0 | (TLRef _) \Rightarrow v0 | (THead _ t _) 
-\Rightarrow t])) in (let TMP_29 \def (THead k0 v0 t0) in (let TMP_30 \def 
-(THead k v1 t1) in (let H3 \def (f_equal T T TMP_28 TMP_29 TMP_30 H1) in (let 
-TMP_31 \def (\lambda (e: T).(match e with [(TSort _) \Rightarrow t0 | (TLRef 
-_) \Rightarrow t0 | (THead _ _ t) \Rightarrow t])) in (let TMP_32 \def (THead 
-k0 v0 t0) in (let TMP_33 \def (THead k v1 t1) in (let H4 \def (f_equal T T 
-TMP_31 TMP_32 TMP_33 H1) in (let TMP_44 \def (\lambda (_: (eq T v0 
-v1)).(\lambda (H6: (eq K k0 k)).(let TMP_37 \def (\lambda (k1: K).(let TMP_36 
-\def (\lambda (v3: T).(\lambda (t3: T).(let TMP_34 \def (THead k1 v2 t2) in 
-(let TMP_35 \def (THead k v3 t3) in (eq T TMP_34 TMP_35))))) in (ex_2 T T 
-TMP_36))) in (let TMP_40 \def (\lambda (v3: T).(\lambda (t3: T).(let TMP_38 
-\def (THead k v2 t2) in (let TMP_39 \def (THead k v3 t3) in (eq T TMP_38 
-TMP_39))))) in (let TMP_41 \def (THead k v2 t2) in (let TMP_42 \def 
-(refl_equal T TMP_41) in (let TMP_43 \def (ex_2_intro T T TMP_40 v2 t2 
-TMP_42) in (eq_ind_r K k TMP_37 TMP_43 k0 H6)))))))) in (let TMP_45 \def 
-(TMP_44 H3) in (TMP_45 H2))))))))))))))))))))) in (iso_ind TMP_8 TMP_16 
-TMP_24 TMP_46 y u2 H0))))))) in (insert_eq T TMP_1 TMP_2 TMP_5 TMP_47 
-H))))))))).
+\Rightarrow t])) (THead k0 v0 t0) (THead k v1 t1) H1) in ((let H4 \def 
+(f_equal T T (\lambda (e: T).(match e with [(TSort _) \Rightarrow t0 | (TLRef 
+_) \Rightarrow t0 | (THead _ _ t) \Rightarrow t])) (THead k0 v0 t0) (THead k 
+v1 t1) H1) in (\lambda (_: (eq T v0 v1)).(\lambda (H6: (eq K k0 k)).(eq_ind_r 
+K k (\lambda (k1: K).(ex_2 T T (\lambda (v3: T).(\lambda (t3: T).(eq T (THead 
+k1 v2 t2) (THead k v3 t3)))))) (ex_2_intro T T (\lambda (v3: T).(\lambda (t3: 
+T).(eq T (THead k v2 t2) (THead k v3 t3)))) v2 t2 (refl_equal T (THead k v2 
+t2))) k0 H6)))) H3)) H2)))))))) y u2 H0))) H))))).
 
 theorem iso_flats_lref_bind_false:
  \forall (f: F).(\forall (b: B).(\forall (i: nat).(\forall (v: T).(\forall 
@@ -169,39 +127,27 @@ theorem iso_flats_lref_bind_false:
 b) v t)) \to (\forall (P: Prop).P)))))))
 \def
  \lambda (f: F).(\lambda (b: B).(\lambda (i: nat).(\lambda (v: T).(\lambda 
-(t: T).(\lambda (vs: TList).(let TMP_1 \def (\lambda (t0: TList).((iso 
-(THeads (Flat f) t0 (TLRef i)) (THead (Bind b) v t)) \to (\forall (P: 
-Prop).P))) in (let TMP_13 \def (\lambda (H: (iso (TLRef i) (THead (Bind b) v 
-t))).(\lambda (P: Prop).(let TMP_2 \def (Bind b) in (let TMP_3 \def (THead 
-TMP_2 v t) in (let H_x \def (iso_gen_lref TMP_3 i H) in (let H0 \def H_x in 
-(let TMP_7 \def (\lambda (n2: nat).(let TMP_4 \def (Bind b) in (let TMP_5 
-\def (THead TMP_4 v t) in (let TMP_6 \def (TLRef n2) in (eq T TMP_5 
-TMP_6))))) in (let TMP_12 \def (\lambda (x: nat).(\lambda (H1: (eq T (THead 
-(Bind b) v t) (TLRef x))).(let TMP_8 \def (Bind b) in (let TMP_9 \def (THead 
-TMP_8 v t) in (let TMP_10 \def (\lambda (ee: T).(match ee with [(TSort _) 
-\Rightarrow False | (TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow 
-True])) in (let TMP_11 \def (TLRef x) in (let H2 \def (eq_ind T TMP_9 TMP_10 
-I TMP_11 H1) in (False_ind P H2)))))))) in (ex_ind nat TMP_7 P TMP_12 
-H0))))))))) in (let TMP_31 \def (\lambda (t0: T).(\lambda (t1: 
-TList).(\lambda (_: (((iso (THeads (Flat f) t1 (TLRef i)) (THead (Bind b) v 
-t)) \to (\forall (P: Prop).P)))).(\lambda (H0: (iso (THead (Flat f) t0 
-(THeads (Flat f) t1 (TLRef i))) (THead (Bind b) v t))).(\lambda (P: 
-Prop).(let TMP_14 \def (Flat f) in (let TMP_15 \def (Flat f) in (let TMP_16 
-\def (TLRef i) in (let TMP_17 \def (THeads TMP_15 t1 TMP_16) in (let TMP_18 
-\def (Bind b) in (let TMP_19 \def (THead TMP_18 v t) in (let H_x \def 
-(iso_gen_head TMP_14 t0 TMP_17 TMP_19 H0) in (let H1 \def H_x in (let TMP_24 
-\def (\lambda (v2: T).(\lambda (t2: T).(let TMP_20 \def (Bind b) in (let 
-TMP_21 \def (THead TMP_20 v t) in (let TMP_22 \def (Flat f) in (let TMP_23 
-\def (THead TMP_22 v2 t2) in (eq T TMP_21 TMP_23))))))) in (let TMP_30 \def 
-(\lambda (x0: T).(\lambda (x1: T).(\lambda (H2: (eq T (THead (Bind b) v t) 
-(THead (Flat f) x0 x1))).(let TMP_25 \def (Bind b) in (let TMP_26 \def (THead 
-TMP_25 v t) in (let TMP_27 \def (\lambda (ee: T).(match ee with [(TSort _) 
-\Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow 
-(match k with [(Bind _) \Rightarrow True | (Flat _) \Rightarrow False])])) in 
-(let TMP_28 \def (Flat f) in (let TMP_29 \def (THead TMP_28 x0 x1) in (let H3 
-\def (eq_ind T TMP_26 TMP_27 I TMP_29 H2) in (False_ind P H3)))))))))) in 
-(ex_2_ind T T TMP_24 P TMP_30 H1)))))))))))))))) in (TList_ind TMP_1 TMP_13 
-TMP_31 vs))))))))).
+(t: T).(\lambda (vs: TList).(TList_ind (\lambda (t0: TList).((iso (THeads 
+(Flat f) t0 (TLRef i)) (THead (Bind b) v t)) \to (\forall (P: Prop).P))) 
+(\lambda (H: (iso (TLRef i) (THead (Bind b) v t))).(\lambda (P: Prop).(let 
+H_x \def (iso_gen_lref (THead (Bind b) v t) i H) in (let H0 \def H_x in 
+(ex_ind nat (\lambda (n2: nat).(eq T (THead (Bind b) v t) (TLRef n2))) P 
+(\lambda (x: nat).(\lambda (H1: (eq T (THead (Bind b) v t) (TLRef x))).(let 
+H2 \def (eq_ind T (THead (Bind b) v t) (\lambda (ee: T).(match ee with 
+[(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | (THead _ _ _) 
+\Rightarrow True])) I (TLRef x) H1) in (False_ind P H2)))) H0))))) (\lambda 
+(t0: T).(\lambda (t1: TList).(\lambda (_: (((iso (THeads (Flat f) t1 (TLRef 
+i)) (THead (Bind b) v t)) \to (\forall (P: Prop).P)))).(\lambda (H0: (iso 
+(THead (Flat f) t0 (THeads (Flat f) t1 (TLRef i))) (THead (Bind b) v 
+t))).(\lambda (P: Prop).(let H_x \def (iso_gen_head (Flat f) t0 (THeads (Flat 
+f) t1 (TLRef i)) (THead (Bind b) v t) H0) in (let H1 \def H_x in (ex_2_ind T 
+T (\lambda (v2: T).(\lambda (t2: T).(eq T (THead (Bind b) v t) (THead (Flat 
+f) v2 t2)))) P (\lambda (x0: T).(\lambda (x1: T).(\lambda (H2: (eq T (THead 
+(Bind b) v t) (THead (Flat f) x0 x1))).(let H3 \def (eq_ind T (THead (Bind b) 
+v t) (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) 
+\Rightarrow False | (THead k _ _) \Rightarrow (match k with [(Bind _) 
+\Rightarrow True | (Flat _) \Rightarrow False])])) I (THead (Flat f) x0 x1) 
+H2) in (False_ind P H3))))) H1)))))))) vs)))))).
 
 theorem iso_flats_flat_bind_false:
  \forall (f1: F).(\forall (f2: F).(\forall (b: B).(\forall (v: T).(\forall 
@@ -210,41 +156,29 @@ theorem iso_flats_flat_bind_false:
 Prop).P)))))))))
 \def
  \lambda (f1: F).(\lambda (f2: F).(\lambda (b: B).(\lambda (v: T).(\lambda 
-(v2: T).(\lambda (t: T).(\lambda (t2: T).(\lambda (vs: TList).(let TMP_1 \def 
+(v2: T).(\lambda (t: T).(\lambda (t2: T).(\lambda (vs: TList).(TList_ind 
 (\lambda (t0: TList).((iso (THeads (Flat f1) t0 (THead (Flat f2) v2 t2)) 
-(THead (Bind b) v t)) \to (\forall (P: Prop).P))) in (let TMP_16 \def 
-(\lambda (H: (iso (THead (Flat f2) v2 t2) (THead (Bind b) v t))).(\lambda (P: 
-Prop).(let TMP_2 \def (Flat f2) in (let TMP_3 \def (Bind b) in (let TMP_4 
-\def (THead TMP_3 v t) in (let H_x \def (iso_gen_head TMP_2 v2 t2 TMP_4 H) in 
-(let H0 \def H_x in (let TMP_9 \def (\lambda (v3: T).(\lambda (t3: T).(let 
-TMP_5 \def (Bind b) in (let TMP_6 \def (THead TMP_5 v t) in (let TMP_7 \def 
-(Flat f2) in (let TMP_8 \def (THead TMP_7 v3 t3) in (eq T TMP_6 TMP_8))))))) 
-in (let TMP_15 \def (\lambda (x0: T).(\lambda (x1: T).(\lambda (H1: (eq T 
-(THead (Bind b) v t) (THead (Flat f2) x0 x1))).(let TMP_10 \def (Bind b) in 
-(let TMP_11 \def (THead TMP_10 v t) in (let TMP_12 \def (\lambda (ee: 
-T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False 
-| (THead k _ _) \Rightarrow (match k with [(Bind _) \Rightarrow True | (Flat 
-_) \Rightarrow False])])) in (let TMP_13 \def (Flat f2) in (let TMP_14 \def 
-(THead TMP_13 x0 x1) in (let H2 \def (eq_ind T TMP_11 TMP_12 I TMP_14 H1) in 
-(False_ind P H2)))))))))) in (ex_2_ind T T TMP_9 P TMP_15 H0)))))))))) in 
-(let TMP_35 \def (\lambda (t0: T).(\lambda (t1: TList).(\lambda (_: (((iso 
-(THeads (Flat f1) t1 (THead (Flat f2) v2 t2)) (THead (Bind b) v t)) \to 
-(\forall (P: Prop).P)))).(\lambda (H0: (iso (THead (Flat f1) t0 (THeads (Flat 
-f1) t1 (THead (Flat f2) v2 t2))) (THead (Bind b) v t))).(\lambda (P: 
-Prop).(let TMP_17 \def (Flat f1) in (let TMP_18 \def (Flat f1) in (let TMP_19 
-\def (Flat f2) in (let TMP_20 \def (THead TMP_19 v2 t2) in (let TMP_21 \def 
-(THeads TMP_18 t1 TMP_20) in (let TMP_22 \def (Bind b) in (let TMP_23 \def 
-(THead TMP_22 v t) in (let H_x \def (iso_gen_head TMP_17 t0 TMP_21 TMP_23 H0) 
-in (let H1 \def H_x in (let TMP_28 \def (\lambda (v3: T).(\lambda (t3: 
-T).(let TMP_24 \def (Bind b) in (let TMP_25 \def (THead TMP_24 v t) in (let 
-TMP_26 \def (Flat f1) in (let TMP_27 \def (THead TMP_26 v3 t3) in (eq T 
-TMP_25 TMP_27))))))) in (let TMP_34 \def (\lambda (x0: T).(\lambda (x1: 
-T).(\lambda (H2: (eq T (THead (Bind b) v t) (THead (Flat f1) x0 x1))).(let 
-TMP_29 \def (Bind b) in (let TMP_30 \def (THead TMP_29 v t) in (let TMP_31 
-\def (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) 
-\Rightarrow False | (THead k _ _) \Rightarrow (match k with [(Bind _) 
-\Rightarrow True | (Flat _) \Rightarrow False])])) in (let TMP_32 \def (Flat 
-f1) in (let TMP_33 \def (THead TMP_32 x0 x1) in (let H3 \def (eq_ind T TMP_30 
-TMP_31 I TMP_33 H2) in (False_ind P H3)))))))))) in (ex_2_ind T T TMP_28 P 
-TMP_34 H1))))))))))))))))) in (TList_ind TMP_1 TMP_16 TMP_35 vs))))))))))).
+(THead (Bind b) v t)) \to (\forall (P: Prop).P))) (\lambda (H: (iso (THead 
+(Flat f2) v2 t2) (THead (Bind b) v t))).(\lambda (P: Prop).(let H_x \def 
+(iso_gen_head (Flat f2) v2 t2 (THead (Bind b) v t) H) in (let H0 \def H_x in 
+(ex_2_ind T T (\lambda (v3: T).(\lambda (t3: T).(eq T (THead (Bind b) v t) 
+(THead (Flat f2) v3 t3)))) P (\lambda (x0: T).(\lambda (x1: T).(\lambda (H1: 
+(eq T (THead (Bind b) v t) (THead (Flat f2) x0 x1))).(let H2 \def (eq_ind T 
+(THead (Bind b) v t) (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow 
+False | (TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow (match k with 
+[(Bind _) \Rightarrow True | (Flat _) \Rightarrow False])])) I (THead (Flat 
+f2) x0 x1) H1) in (False_ind P H2))))) H0))))) (\lambda (t0: T).(\lambda (t1: 
+TList).(\lambda (_: (((iso (THeads (Flat f1) t1 (THead (Flat f2) v2 t2)) 
+(THead (Bind b) v t)) \to (\forall (P: Prop).P)))).(\lambda (H0: (iso (THead 
+(Flat f1) t0 (THeads (Flat f1) t1 (THead (Flat f2) v2 t2))) (THead (Bind b) v 
+t))).(\lambda (P: Prop).(let H_x \def (iso_gen_head (Flat f1) t0 (THeads 
+(Flat f1) t1 (THead (Flat f2) v2 t2)) (THead (Bind b) v t) H0) in (let H1 
+\def H_x in (ex_2_ind T T (\lambda (v3: T).(\lambda (t3: T).(eq T (THead 
+(Bind b) v t) (THead (Flat f1) v3 t3)))) P (\lambda (x0: T).(\lambda (x1: 
+T).(\lambda (H2: (eq T (THead (Bind b) v t) (THead (Flat f1) x0 x1))).(let H3 
+\def (eq_ind T (THead (Bind b) v t) (\lambda (ee: T).(match ee with [(TSort 
+_) \Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _) 
+\Rightarrow (match k with [(Bind _) \Rightarrow True | (Flat _) \Rightarrow 
+False])])) I (THead (Flat f1) x0 x1) H2) in (False_ind P H3))))) H1)))))))) 
+vs)))))))).
 
index 3a1c86826391697d5ce2ab45ab6c48c6051a3300..f18572e1e1e8204a54ec7ee8a8eb38ab2c3618cc 100644 (file)
@@ -21,44 +21,32 @@ include "basic_1/iso/fwd.ma".
 theorem iso_refl:
  \forall (t: T).(iso t t)
 \def
- \lambda (t: T).(let TMP_1 \def (\lambda (t0: T).(iso t0 t0)) in (let TMP_2 
-\def (\lambda (n: nat).(iso_sort n n)) in (let TMP_3 \def (\lambda (n: 
-nat).(iso_lref n n)) in (let TMP_4 \def (\lambda (k: K).(\lambda (t0: 
-T).(\lambda (_: (iso t0 t0)).(\lambda (t1: T).(\lambda (_: (iso t1 
-t1)).(iso_head t0 t0 t1 t1 k)))))) in (T_ind TMP_1 TMP_2 TMP_3 TMP_4 t))))).
+ \lambda (t: T).(T_ind (\lambda (t0: T).(iso t0 t0)) (\lambda (n: 
+nat).(iso_sort n n)) (\lambda (n: nat).(iso_lref n n)) (\lambda (k: 
+K).(\lambda (t0: T).(\lambda (_: (iso t0 t0)).(\lambda (t1: T).(\lambda (_: 
+(iso t1 t1)).(iso_head t0 t0 t1 t1 k)))))) t).
 
 theorem iso_trans:
  \forall (t1: T).(\forall (t2: T).((iso t1 t2) \to (\forall (t3: T).((iso t2 
 t3) \to (iso t1 t3)))))
 \def
- \lambda (t1: T).(\lambda (t2: T).(\lambda (H: (iso t1 t2)).(let TMP_1 \def 
-(\lambda (t: T).(\lambda (t0: T).(\forall (t3: T).((iso t0 t3) \to (iso t 
-t3))))) in (let TMP_11 \def (\lambda (n1: nat).(\lambda (n2: nat).(\lambda 
-(t3: T).(\lambda (H0: (iso (TSort n2) t3)).(let H_x \def (iso_gen_sort t3 n2 
-H0) in (let H1 \def H_x in (let TMP_3 \def (\lambda (n3: nat).(let TMP_2 \def 
-(TSort n3) in (eq T t3 TMP_2))) in (let TMP_4 \def (TSort n1) in (let TMP_5 
-\def (iso TMP_4 t3) in (let TMP_10 \def (\lambda (x: nat).(\lambda (H2: (eq T 
-t3 (TSort x))).(let TMP_6 \def (TSort x) in (let TMP_8 \def (\lambda (t: 
-T).(let TMP_7 \def (TSort n1) in (iso TMP_7 t))) in (let TMP_9 \def (iso_sort 
-n1 x) in (eq_ind_r T TMP_6 TMP_8 TMP_9 t3 H2)))))) in (ex_ind nat TMP_3 TMP_5 
-TMP_10 H1))))))))))) in (let TMP_21 \def (\lambda (i1: nat).(\lambda (i2: 
-nat).(\lambda (t3: T).(\lambda (H0: (iso (TLRef i2) t3)).(let H_x \def 
-(iso_gen_lref t3 i2 H0) in (let H1 \def H_x in (let TMP_13 \def (\lambda (n2: 
-nat).(let TMP_12 \def (TLRef n2) in (eq T t3 TMP_12))) in (let TMP_14 \def 
-(TLRef i1) in (let TMP_15 \def (iso TMP_14 t3) in (let TMP_20 \def (\lambda 
-(x: nat).(\lambda (H2: (eq T t3 (TLRef x))).(let TMP_16 \def (TLRef x) in 
-(let TMP_18 \def (\lambda (t: T).(let TMP_17 \def (TLRef i1) in (iso TMP_17 
-t))) in (let TMP_19 \def (iso_lref i1 x) in (eq_ind_r T TMP_16 TMP_18 TMP_19 
-t3 H2)))))) in (ex_ind nat TMP_13 TMP_15 TMP_20 H1))))))))))) in (let TMP_31 
-\def (\lambda (v1: T).(\lambda (v2: T).(\lambda (t3: T).(\lambda (t4: 
-T).(\lambda (k: K).(\lambda (t5: T).(\lambda (H0: (iso (THead k v2 t4) 
-t5)).(let H_x \def (iso_gen_head k v2 t4 t5 H0) in (let H1 \def H_x in (let 
-TMP_23 \def (\lambda (v3: T).(\lambda (t6: T).(let TMP_22 \def (THead k v3 
-t6) in (eq T t5 TMP_22)))) in (let TMP_24 \def (THead k v1 t3) in (let TMP_25 
-\def (iso TMP_24 t5) in (let TMP_30 \def (\lambda (x0: T).(\lambda (x1: 
-T).(\lambda (H2: (eq T t5 (THead k x0 x1))).(let TMP_26 \def (THead k x0 x1) 
-in (let TMP_28 \def (\lambda (t: T).(let TMP_27 \def (THead k v1 t3) in (iso 
-TMP_27 t))) in (let TMP_29 \def (iso_head v1 x0 t3 x1 k) in (eq_ind_r T 
-TMP_26 TMP_28 TMP_29 t5 H2))))))) in (ex_2_ind T T TMP_23 TMP_25 TMP_30 
-H1)))))))))))))) in (iso_ind TMP_1 TMP_11 TMP_21 TMP_31 t1 t2 H))))))).
+ \lambda (t1: T).(\lambda (t2: T).(\lambda (H: (iso t1 t2)).(iso_ind (\lambda 
+(t: T).(\lambda (t0: T).(\forall (t3: T).((iso t0 t3) \to (iso t t3))))) 
+(\lambda (n1: nat).(\lambda (n2: nat).(\lambda (t3: T).(\lambda (H0: (iso 
+(TSort n2) t3)).(let H_x \def (iso_gen_sort t3 n2 H0) in (let H1 \def H_x in 
+(ex_ind nat (\lambda (n3: nat).(eq T t3 (TSort n3))) (iso (TSort n1) t3) 
+(\lambda (x: nat).(\lambda (H2: (eq T t3 (TSort x))).(eq_ind_r T (TSort x) 
+(\lambda (t: T).(iso (TSort n1) t)) (iso_sort n1 x) t3 H2))) H1))))))) 
+(\lambda (i1: nat).(\lambda (i2: nat).(\lambda (t3: T).(\lambda (H0: (iso 
+(TLRef i2) t3)).(let H_x \def (iso_gen_lref t3 i2 H0) in (let H1 \def H_x in 
+(ex_ind nat (\lambda (n2: nat).(eq T t3 (TLRef n2))) (iso (TLRef i1) t3) 
+(\lambda (x: nat).(\lambda (H2: (eq T t3 (TLRef x))).(eq_ind_r T (TLRef x) 
+(\lambda (t: T).(iso (TLRef i1) t)) (iso_lref i1 x) t3 H2))) H1))))))) 
+(\lambda (v1: T).(\lambda (v2: T).(\lambda (t3: T).(\lambda (t4: T).(\lambda 
+(k: K).(\lambda (t5: T).(\lambda (H0: (iso (THead k v2 t4) t5)).(let H_x \def 
+(iso_gen_head k v2 t4 t5 H0) in (let H1 \def H_x in (ex_2_ind T T (\lambda 
+(v3: T).(\lambda (t6: T).(eq T t5 (THead k v3 t6)))) (iso (THead k v1 t3) t5) 
+(\lambda (x0: T).(\lambda (x1: T).(\lambda (H2: (eq T t5 (THead k x0 
+x1))).(eq_ind_r T (THead k x0 x1) (\lambda (t: T).(iso (THead k v1 t3) t)) 
+(iso_head v1 x0 t3 x1 k) t5 H2)))) H1)))))))))) t1 t2 H))).
 
index d79f266be7efda2d9b435277444808163c8f0491..87db6f5d97350a77cbf0e877d4f6b5bf0a1d70dc 100644 (file)
@@ -21,732 +21,427 @@ theorem asucc_repl:
 (asucc g a1) (asucc g a2)))))
 \def
  \lambda (g: G).(\lambda (a1: A).(\lambda (a2: A).(\lambda (H: (leq g a1 
-a2)).(let TMP_3 \def (\lambda (a: A).(\lambda (a0: A).(let TMP_1 \def (asucc 
-g a) in (let TMP_2 \def (asucc g a0) in (leq g TMP_1 TMP_2))))) in (let 
-TMP_186 \def (\lambda (h1: nat).(\lambda (h2: nat).(\lambda (n1: 
-nat).(\lambda (n2: nat).(\lambda (k: nat).(\lambda (H0: (eq A (aplus g (ASort 
-h1 n1) k) (aplus g (ASort h2 n2) k))).(let TMP_8 \def (\lambda (n: nat).((eq 
-A (aplus g (ASort n n1) k) (aplus g (ASort h2 n2) k)) \to (let TMP_5 \def 
-(match n with [O \Rightarrow (let TMP_4 \def (next g n1) in (ASort O TMP_4)) 
-| (S h) \Rightarrow (ASort h n1)]) in (let TMP_7 \def (match h2 with [O 
-\Rightarrow (let TMP_6 \def (next g n2) in (ASort O TMP_6)) | (S h) 
-\Rightarrow (ASort h n2)]) in (leq g TMP_5 TMP_7))))) in (let TMP_97 \def 
-(\lambda (H1: (eq A (aplus g (ASort O n1) k) (aplus g (ASort h2 n2) k))).(let 
-TMP_13 \def (\lambda (n: nat).((eq A (aplus g (ASort O n1) k) (aplus g (ASort 
-n n2) k)) \to (let TMP_9 \def (next g n1) in (let TMP_10 \def (ASort O TMP_9) 
-in (let TMP_12 \def (match n with [O \Rightarrow (let TMP_11 \def (next g n2) 
-in (ASort O TMP_11)) | (S h) \Rightarrow (ASort h n2)]) in (leq g TMP_10 
-TMP_12)))))) in (let TMP_54 \def (\lambda (H2: (eq A (aplus g (ASort O n1) k) 
-(aplus g (ASort O n2) k))).(let TMP_14 \def (next g n1) in (let TMP_15 \def 
-(next g n2) in (let TMP_16 \def (ASort O n1) in (let TMP_17 \def (S k) in 
-(let TMP_18 \def (aplus g TMP_16 TMP_17) in (let TMP_22 \def (\lambda (a: 
-A).(let TMP_19 \def (next g n2) in (let TMP_20 \def (ASort O TMP_19) in (let 
-TMP_21 \def (aplus g TMP_20 k) in (eq A a TMP_21))))) in (let TMP_23 \def 
-(ASort O n2) in (let TMP_24 \def (S k) in (let TMP_25 \def (aplus g TMP_23 
-TMP_24) in (let TMP_29 \def (\lambda (a: A).(let TMP_26 \def (ASort O n1) in 
-(let TMP_27 \def (S k) in (let TMP_28 \def (aplus g TMP_26 TMP_27) in (eq A 
-TMP_28 a))))) in (let TMP_30 \def (ASort O n2) in (let TMP_31 \def (aplus g 
-TMP_30 k) in (let TMP_36 \def (\lambda (a: A).(let TMP_32 \def (asucc g a) in 
-(let TMP_33 \def (ASort O n2) in (let TMP_34 \def (aplus g TMP_33 k) in (let 
-TMP_35 \def (asucc g TMP_34) in (eq A TMP_32 TMP_35)))))) in (let TMP_37 \def 
-(ASort O n2) in (let TMP_38 \def (aplus g TMP_37 k) in (let TMP_39 \def 
-(asucc g TMP_38) in (let TMP_40 \def (refl_equal A TMP_39) in (let TMP_41 
-\def (ASort O n1) in (let TMP_42 \def (aplus g TMP_41 k) in (let TMP_43 \def 
-(eq_ind_r A TMP_31 TMP_36 TMP_40 TMP_42 H2) in (let TMP_44 \def (next g n2) 
-in (let TMP_45 \def (ASort O TMP_44) in (let TMP_46 \def (aplus g TMP_45 k) 
-in (let TMP_47 \def (aplus_sort_O_S_simpl g n2 k) in (let TMP_48 \def (eq_ind 
-A TMP_25 TMP_29 TMP_43 TMP_46 TMP_47) in (let TMP_49 \def (next g n1) in (let 
-TMP_50 \def (ASort O TMP_49) in (let TMP_51 \def (aplus g TMP_50 k) in (let 
-TMP_52 \def (aplus_sort_O_S_simpl g n1 k) in (let TMP_53 \def (eq_ind A 
-TMP_18 TMP_22 TMP_48 TMP_51 TMP_52) in (leq_sort g O O TMP_14 TMP_15 k 
-TMP_53)))))))))))))))))))))))))))))))) in (let TMP_96 \def (\lambda (h3: 
+a2)).(leq_ind g (\lambda (a: A).(\lambda (a0: A).(leq g (asucc g a) (asucc g 
+a0)))) (\lambda (h1: nat).(\lambda (h2: nat).(\lambda (n1: nat).(\lambda (n2: 
+nat).(\lambda (k: nat).(\lambda (H0: (eq A (aplus g (ASort h1 n1) k) (aplus g 
+(ASort h2 n2) k))).(nat_ind (\lambda (n: nat).((eq A (aplus g (ASort n n1) k) 
+(aplus g (ASort h2 n2) k)) \to (leq g (match n with [O \Rightarrow (ASort O 
+(next g n1)) | (S h) \Rightarrow (ASort h n1)]) (match h2 with [O \Rightarrow 
+(ASort O (next g n2)) | (S h) \Rightarrow (ASort h n2)])))) (\lambda (H1: (eq 
+A (aplus g (ASort O n1) k) (aplus g (ASort h2 n2) k))).(nat_ind (\lambda (n: 
+nat).((eq A (aplus g (ASort O n1) k) (aplus g (ASort n n2) k)) \to (leq g 
+(ASort O (next g n1)) (match n with [O \Rightarrow (ASort O (next g n2)) | (S 
+h) \Rightarrow (ASort h n2)])))) (\lambda (H2: (eq A (aplus g (ASort O n1) k) 
+(aplus g (ASort O n2) k))).(leq_sort g O O (next g n1) (next g n2) k (eq_ind 
+A (aplus g (ASort O n1) (S k)) (\lambda (a: A).(eq A a (aplus g (ASort O 
+(next g n2)) k))) (eq_ind A (aplus g (ASort O n2) (S k)) (\lambda (a: A).(eq 
+A (aplus g (ASort O n1) (S k)) a)) (eq_ind_r A (aplus g (ASort O n2) k) 
+(\lambda (a: A).(eq A (asucc g a) (asucc g (aplus g (ASort O n2) k)))) 
+(refl_equal A (asucc g (aplus g (ASort O n2) k))) (aplus g (ASort O n1) k) 
+H2) (aplus g (ASort O (next g n2)) k) (aplus_sort_O_S_simpl g n2 k)) (aplus g 
+(ASort O (next g n1)) k) (aplus_sort_O_S_simpl g n1 k)))) (\lambda (h3: 
 nat).(\lambda (_: (((eq A (aplus g (ASort O n1) k) (aplus g (ASort h3 n2) k)) 
 \to (leq g (ASort O (next g n1)) (match h3 with [O \Rightarrow (ASort O (next 
 g n2)) | (S h) \Rightarrow (ASort h n2)]))))).(\lambda (H2: (eq A (aplus g 
-(ASort O n1) k) (aplus g (ASort (S h3) n2) k))).(let TMP_55 \def (next g n1) 
-in (let TMP_56 \def (ASort O n1) in (let TMP_57 \def (S k) in (let TMP_58 
-\def (aplus g TMP_56 TMP_57) in (let TMP_61 \def (\lambda (a: A).(let TMP_59 
-\def (ASort h3 n2) in (let TMP_60 \def (aplus g TMP_59 k) in (eq A a 
-TMP_60)))) in (let TMP_62 \def (S h3) in (let TMP_63 \def (ASort TMP_62 n2) 
-in (let TMP_64 \def (S k) in (let TMP_65 \def (aplus g TMP_63 TMP_64) in (let 
-TMP_69 \def (\lambda (a: A).(let TMP_66 \def (ASort O n1) in (let TMP_67 \def 
-(S k) in (let TMP_68 \def (aplus g TMP_66 TMP_67) in (eq A TMP_68 a))))) in 
-(let TMP_70 \def (S h3) in (let TMP_71 \def (ASort TMP_70 n2) in (let TMP_72 
-\def (aplus g TMP_71 k) in (let TMP_78 \def (\lambda (a: A).(let TMP_73 \def 
-(asucc g a) in (let TMP_74 \def (S h3) in (let TMP_75 \def (ASort TMP_74 n2) 
-in (let TMP_76 \def (aplus g TMP_75 k) in (let TMP_77 \def (asucc g TMP_76) 
-in (eq A TMP_73 TMP_77))))))) in (let TMP_79 \def (S h3) in (let TMP_80 \def 
-(ASort TMP_79 n2) in (let TMP_81 \def (aplus g TMP_80 k) in (let TMP_82 \def 
-(asucc g TMP_81) in (let TMP_83 \def (refl_equal A TMP_82) in (let TMP_84 
-\def (ASort O n1) in (let TMP_85 \def (aplus g TMP_84 k) in (let TMP_86 \def 
-(eq_ind_r A TMP_72 TMP_78 TMP_83 TMP_85 H2) in (let TMP_87 \def (ASort h3 n2) 
-in (let TMP_88 \def (aplus g TMP_87 k) in (let TMP_89 \def 
-(aplus_sort_S_S_simpl g n2 h3 k) in (let TMP_90 \def (eq_ind A TMP_65 TMP_69 
-TMP_86 TMP_88 TMP_89) in (let TMP_91 \def (next g n1) in (let TMP_92 \def 
-(ASort O TMP_91) in (let TMP_93 \def (aplus g TMP_92 k) in (let TMP_94 \def 
-(aplus_sort_O_S_simpl g n1 k) in (let TMP_95 \def (eq_ind A TMP_58 TMP_61 
-TMP_90 TMP_93 TMP_94) in (leq_sort g O h3 TMP_55 n2 k 
-TMP_95))))))))))))))))))))))))))))))))))) in (nat_ind TMP_13 TMP_54 TMP_96 h2 
-H1))))) in (let TMP_185 \def (\lambda (h3: nat).(\lambda (IHh1: (((eq A 
-(aplus g (ASort h3 n1) k) (aplus g (ASort h2 n2) k)) \to (leq g (match h3 
-with [O \Rightarrow (ASort O (next g n1)) | (S h) \Rightarrow (ASort h n1)]) 
-(match h2 with [O \Rightarrow (ASort O (next g n2)) | (S h) \Rightarrow 
-(ASort h n2)]))))).(\lambda (H1: (eq A (aplus g (ASort (S h3) n1) k) (aplus g 
-(ASort h2 n2) k))).(let TMP_101 \def (\lambda (n: nat).((eq A (aplus g (ASort 
-(S h3) n1) k) (aplus g (ASort n n2) k)) \to ((((eq A (aplus g (ASort h3 n1) 
-k) (aplus g (ASort n n2) k)) \to (leq g (match h3 with [O \Rightarrow (ASort 
-O (next g n1)) | (S h) \Rightarrow (ASort h n1)]) (match n with [O 
-\Rightarrow (ASort O (next g n2)) | (S h) \Rightarrow (ASort h n2)])))) \to 
-(let TMP_98 \def (ASort h3 n1) in (let TMP_100 \def (match n with [O 
-\Rightarrow (let TMP_99 \def (next g n2) in (ASort O TMP_99)) | (S h) 
-\Rightarrow (ASort h n2)]) in (leq g TMP_98 TMP_100)))))) in (let TMP_141 
-\def (\lambda (H2: (eq A (aplus g (ASort (S h3) n1) k) (aplus g (ASort O n2) 
+(ASort O n1) k) (aplus g (ASort (S h3) n2) k))).(leq_sort g O h3 (next g n1) 
+n2 k (eq_ind A (aplus g (ASort O n1) (S k)) (\lambda (a: A).(eq A a (aplus g 
+(ASort h3 n2) k))) (eq_ind A (aplus g (ASort (S h3) n2) (S k)) (\lambda (a: 
+A).(eq A (aplus g (ASort O n1) (S k)) a)) (eq_ind_r A (aplus g (ASort (S h3) 
+n2) k) (\lambda (a: A).(eq A (asucc g a) (asucc g (aplus g (ASort (S h3) n2) 
+k)))) (refl_equal A (asucc g (aplus g (ASort (S h3) n2) k))) (aplus g (ASort 
+O n1) k) H2) (aplus g (ASort h3 n2) k) (aplus_sort_S_S_simpl g n2 h3 k)) 
+(aplus g (ASort O (next g n1)) k) (aplus_sort_O_S_simpl g n1 k)))))) h2 H1)) 
+(\lambda (h3: nat).(\lambda (IHh1: (((eq A (aplus g (ASort h3 n1) k) (aplus g 
+(ASort h2 n2) k)) \to (leq g (match h3 with [O \Rightarrow (ASort O (next g 
+n1)) | (S h) \Rightarrow (ASort h n1)]) (match h2 with [O \Rightarrow (ASort 
+O (next g n2)) | (S h) \Rightarrow (ASort h n2)]))))).(\lambda (H1: (eq A 
+(aplus g (ASort (S h3) n1) k) (aplus g (ASort h2 n2) k))).(nat_ind (\lambda 
+(n: nat).((eq A (aplus g (ASort (S h3) n1) k) (aplus g (ASort n n2) k)) \to 
+((((eq A (aplus g (ASort h3 n1) k) (aplus g (ASort n n2) k)) \to (leq g 
+(match h3 with [O \Rightarrow (ASort O (next g n1)) | (S h) \Rightarrow 
+(ASort h n1)]) (match n with [O \Rightarrow (ASort O (next g n2)) | (S h) 
+\Rightarrow (ASort h n2)])))) \to (leq g (ASort h3 n1) (match n with [O 
+\Rightarrow (ASort O (next g n2)) | (S h) \Rightarrow (ASort h n2)]))))) 
+(\lambda (H2: (eq A (aplus g (ASort (S h3) n1) k) (aplus g (ASort O n2) 
 k))).(\lambda (_: (((eq A (aplus g (ASort h3 n1) k) (aplus g (ASort O n2) k)) 
 \to (leq g (match h3 with [O \Rightarrow (ASort O (next g n1)) | (S h) 
-\Rightarrow (ASort h n1)]) (ASort O (next g n2)))))).(let TMP_102 \def (next 
-g n2) in (let TMP_103 \def (ASort O n2) in (let TMP_104 \def (S k) in (let 
-TMP_105 \def (aplus g TMP_103 TMP_104) in (let TMP_108 \def (\lambda (a: 
-A).(let TMP_106 \def (ASort h3 n1) in (let TMP_107 \def (aplus g TMP_106 k) 
-in (eq A TMP_107 a)))) in (let TMP_109 \def (S h3) in (let TMP_110 \def 
-(ASort TMP_109 n1) in (let TMP_111 \def (S k) in (let TMP_112 \def (aplus g 
-TMP_110 TMP_111) in (let TMP_116 \def (\lambda (a: A).(let TMP_113 \def 
-(ASort O n2) in (let TMP_114 \def (S k) in (let TMP_115 \def (aplus g TMP_113 
-TMP_114) in (eq A a TMP_115))))) in (let TMP_117 \def (ASort O n2) in (let 
-TMP_118 \def (aplus g TMP_117 k) in (let TMP_123 \def (\lambda (a: A).(let 
-TMP_119 \def (asucc g a) in (let TMP_120 \def (ASort O n2) in (let TMP_121 
-\def (aplus g TMP_120 k) in (let TMP_122 \def (asucc g TMP_121) in (eq A 
-TMP_119 TMP_122)))))) in (let TMP_124 \def (ASort O n2) in (let TMP_125 \def 
-(aplus g TMP_124 k) in (let TMP_126 \def (asucc g TMP_125) in (let TMP_127 
-\def (refl_equal A TMP_126) in (let TMP_128 \def (S h3) in (let TMP_129 \def 
-(ASort TMP_128 n1) in (let TMP_130 \def (aplus g TMP_129 k) in (let TMP_131 
-\def (eq_ind_r A TMP_118 TMP_123 TMP_127 TMP_130 H2) in (let TMP_132 \def 
-(ASort h3 n1) in (let TMP_133 \def (aplus g TMP_132 k) in (let TMP_134 \def 
-(aplus_sort_S_S_simpl g n1 h3 k) in (let TMP_135 \def (eq_ind A TMP_112 
-TMP_116 TMP_131 TMP_133 TMP_134) in (let TMP_136 \def (next g n2) in (let 
-TMP_137 \def (ASort O TMP_136) in (let TMP_138 \def (aplus g TMP_137 k) in 
-(let TMP_139 \def (aplus_sort_O_S_simpl g n2 k) in (let TMP_140 \def (eq_ind 
-A TMP_105 TMP_108 TMP_135 TMP_138 TMP_139) in (leq_sort g h3 O n1 TMP_102 k 
-TMP_140))))))))))))))))))))))))))))))))) in (let TMP_184 \def (\lambda (h4: 
-nat).(\lambda (_: (((eq A (aplus g (ASort (S h3) n1) k) (aplus g (ASort h4 
-n2) k)) \to ((((eq A (aplus g (ASort h3 n1) k) (aplus g (ASort h4 n2) k)) \to 
-(leq g (match h3 with [O \Rightarrow (ASort O (next g n1)) | (S h) 
+\Rightarrow (ASort h n1)]) (ASort O (next g n2)))))).(leq_sort g h3 O n1 
+(next g n2) k (eq_ind A (aplus g (ASort O n2) (S k)) (\lambda (a: A).(eq A 
+(aplus g (ASort h3 n1) k) a)) (eq_ind A (aplus g (ASort (S h3) n1) (S k)) 
+(\lambda (a: A).(eq A a (aplus g (ASort O n2) (S k)))) (eq_ind_r A (aplus g 
+(ASort O n2) k) (\lambda (a: A).(eq A (asucc g a) (asucc g (aplus g (ASort O 
+n2) k)))) (refl_equal A (asucc g (aplus g (ASort O n2) k))) (aplus g (ASort 
+(S h3) n1) k) H2) (aplus g (ASort h3 n1) k) (aplus_sort_S_S_simpl g n1 h3 k)) 
+(aplus g (ASort O (next g n2)) k) (aplus_sort_O_S_simpl g n2 k))))) (\lambda 
+(h4: nat).(\lambda (_: (((eq A (aplus g (ASort (S h3) n1) k) (aplus g (ASort 
+h4 n2) k)) \to ((((eq A (aplus g (ASort h3 n1) k) (aplus g (ASort h4 n2) k)) 
+\to (leq g (match h3 with [O \Rightarrow (ASort O (next g n1)) | (S h) 
 \Rightarrow (ASort h n1)]) (match h4 with [O \Rightarrow (ASort O (next g 
 n2)) | (S h) \Rightarrow (ASort h n2)])))) \to (leq g (ASort h3 n1) (match h4 
 with [O \Rightarrow (ASort O (next g n2)) | (S h) \Rightarrow (ASort h 
 n2)])))))).(\lambda (H2: (eq A (aplus g (ASort (S h3) n1) k) (aplus g (ASort 
 (S h4) n2) k))).(\lambda (_: (((eq A (aplus g (ASort h3 n1) k) (aplus g 
 (ASort (S h4) n2) k)) \to (leq g (match h3 with [O \Rightarrow (ASort O (next 
-g n1)) | (S h) \Rightarrow (ASort h n1)]) (ASort h4 n2))))).(let TMP_142 \def 
-(S h3) in (let TMP_143 \def (ASort TMP_142 n1) in (let TMP_144 \def (S k) in 
-(let TMP_145 \def (aplus g TMP_143 TMP_144) in (let TMP_148 \def (\lambda (a: 
-A).(let TMP_146 \def (ASort h4 n2) in (let TMP_147 \def (aplus g TMP_146 k) 
-in (eq A a TMP_147)))) in (let TMP_149 \def (S h4) in (let TMP_150 \def 
-(ASort TMP_149 n2) in (let TMP_151 \def (S k) in (let TMP_152 \def (aplus g 
-TMP_150 TMP_151) in (let TMP_157 \def (\lambda (a: A).(let TMP_153 \def (S 
-h3) in (let TMP_154 \def (ASort TMP_153 n1) in (let TMP_155 \def (S k) in 
-(let TMP_156 \def (aplus g TMP_154 TMP_155) in (eq A TMP_156 a)))))) in (let 
-TMP_158 \def (S h4) in (let TMP_159 \def (ASort TMP_158 n2) in (let TMP_160 
-\def (aplus g TMP_159 k) in (let TMP_166 \def (\lambda (a: A).(let TMP_161 
-\def (asucc g a) in (let TMP_162 \def (S h4) in (let TMP_163 \def (ASort 
-TMP_162 n2) in (let TMP_164 \def (aplus g TMP_163 k) in (let TMP_165 \def 
-(asucc g TMP_164) in (eq A TMP_161 TMP_165))))))) in (let TMP_167 \def (S h4) 
-in (let TMP_168 \def (ASort TMP_167 n2) in (let TMP_169 \def (aplus g TMP_168 
-k) in (let TMP_170 \def (asucc g TMP_169) in (let TMP_171 \def (refl_equal A 
-TMP_170) in (let TMP_172 \def (S h3) in (let TMP_173 \def (ASort TMP_172 n1) 
-in (let TMP_174 \def (aplus g TMP_173 k) in (let TMP_175 \def (eq_ind_r A 
-TMP_160 TMP_166 TMP_171 TMP_174 H2) in (let TMP_176 \def (ASort h4 n2) in 
-(let TMP_177 \def (aplus g TMP_176 k) in (let TMP_178 \def 
-(aplus_sort_S_S_simpl g n2 h4 k) in (let TMP_179 \def (eq_ind A TMP_152 
-TMP_157 TMP_175 TMP_177 TMP_178) in (let TMP_180 \def (ASort h3 n1) in (let 
-TMP_181 \def (aplus g TMP_180 k) in (let TMP_182 \def (aplus_sort_S_S_simpl g 
-n1 h3 k) in (let TMP_183 \def (eq_ind A TMP_145 TMP_148 TMP_179 TMP_181 
-TMP_182) in (leq_sort g h3 h4 n1 n2 k 
-TMP_183)))))))))))))))))))))))))))))))))))) in (nat_ind TMP_101 TMP_141 
-TMP_184 h2 H1 IHh1))))))) in (nat_ind TMP_8 TMP_97 TMP_185 h1 H0)))))))))) in 
-(let TMP_189 \def (\lambda (a3: A).(\lambda (a4: A).(\lambda (H0: (leq g a3 
-a4)).(\lambda (_: (leq g (asucc g a3) (asucc g a4))).(\lambda (a5: 
-A).(\lambda (a6: A).(\lambda (_: (leq g a5 a6)).(\lambda (H3: (leq g (asucc g 
-a5) (asucc g a6))).(let TMP_187 \def (asucc g a5) in (let TMP_188 \def (asucc 
-g a6) in (leq_head g a3 a4 H0 TMP_187 TMP_188 H3))))))))))) in (leq_ind g 
-TMP_3 TMP_186 TMP_189 a1 a2 H))))))).
+g n1)) | (S h) \Rightarrow (ASort h n1)]) (ASort h4 n2))))).(leq_sort g h3 h4 
+n1 n2 k (eq_ind A (aplus g (ASort (S h3) n1) (S k)) (\lambda (a: A).(eq A a 
+(aplus g (ASort h4 n2) k))) (eq_ind A (aplus g (ASort (S h4) n2) (S k)) 
+(\lambda (a: A).(eq A (aplus g (ASort (S h3) n1) (S k)) a)) (eq_ind_r A 
+(aplus g (ASort (S h4) n2) k) (\lambda (a: A).(eq A (asucc g a) (asucc g 
+(aplus g (ASort (S h4) n2) k)))) (refl_equal A (asucc g (aplus g (ASort (S 
+h4) n2) k))) (aplus g (ASort (S h3) n1) k) H2) (aplus g (ASort h4 n2) k) 
+(aplus_sort_S_S_simpl g n2 h4 k)) (aplus g (ASort h3 n1) k) 
+(aplus_sort_S_S_simpl g n1 h3 k))))))) h2 H1 IHh1)))) h1 H0))))))) (\lambda 
+(a3: A).(\lambda (a4: A).(\lambda (H0: (leq g a3 a4)).(\lambda (_: (leq g 
+(asucc g a3) (asucc g a4))).(\lambda (a5: A).(\lambda (a6: A).(\lambda (_: 
+(leq g a5 a6)).(\lambda (H3: (leq g (asucc g a5) (asucc g a6))).(leq_head g 
+a3 a4 H0 (asucc g a5) (asucc g a6) H3))))))))) a1 a2 H)))).
 
 theorem asucc_inj:
  \forall (g: G).(\forall (a1: A).(\forall (a2: A).((leq g (asucc g a1) (asucc 
 g a2)) \to (leq g a1 a2))))
 \def
- \lambda (g: G).(\lambda (a1: A).(let TMP_1 \def (\lambda (a: A).(\forall 
-(a2: A).((leq g (asucc g a) (asucc g a2)) \to (leq g a a2)))) in (let TMP_315 
-\def (\lambda (n: nat).(\lambda (n0: nat).(\lambda (a2: A).(let TMP_3 \def 
-(\lambda (a: A).((leq g (asucc g (ASort n n0)) (asucc g a)) \to (let TMP_2 
-\def (ASort n n0) in (leq g TMP_2 a)))) in (let TMP_260 \def (\lambda (n1: 
-nat).(\lambda (n2: nat).(\lambda (H: (leq g (asucc g (ASort n n0)) (asucc g 
-(ASort n1 n2)))).(let TMP_6 \def (\lambda (n3: nat).((leq g (asucc g (ASort 
-n3 n0)) (asucc g (ASort n1 n2))) \to (let TMP_4 \def (ASort n3 n0) in (let 
-TMP_5 \def (ASort n1 n2) in (leq g TMP_4 TMP_5))))) in (let TMP_133 \def 
-(\lambda (H0: (leq g (asucc g (ASort O n0)) (asucc g (ASort n1 n2)))).(let 
-TMP_9 \def (\lambda (n3: nat).((leq g (asucc g (ASort O n0)) (asucc g (ASort 
-n3 n2))) \to (let TMP_7 \def (ASort O n0) in (let TMP_8 \def (ASort n3 n2) in 
-(leq g TMP_7 TMP_8))))) in (let TMP_73 \def (\lambda (H1: (leq g (asucc g 
-(ASort O n0)) (asucc g (ASort O n2)))).(let TMP_10 \def (next g n0) in (let 
-TMP_11 \def (next g n2) in (let TMP_12 \def (ASort O TMP_11) in (let H_x \def 
-(leq_gen_sort1 g O TMP_10 TMP_12 H1) in (let H2 \def H_x in (let TMP_18 \def 
-(\lambda (n3: nat).(\lambda (h2: nat).(\lambda (k: nat).(let TMP_13 \def 
-(next g n0) in (let TMP_14 \def (ASort O TMP_13) in (let TMP_15 \def (aplus g 
-TMP_14 k) in (let TMP_16 \def (ASort h2 n3) in (let TMP_17 \def (aplus g 
-TMP_16 k) in (eq A TMP_15 TMP_17))))))))) in (let TMP_22 \def (\lambda (n3: 
-nat).(\lambda (h2: nat).(\lambda (_: nat).(let TMP_19 \def (next g n2) in 
-(let TMP_20 \def (ASort O TMP_19) in (let TMP_21 \def (ASort h2 n3) in (eq A 
-TMP_20 TMP_21))))))) in (let TMP_23 \def (ASort O n0) in (let TMP_24 \def 
-(ASort O n2) in (let TMP_25 \def (leq g TMP_23 TMP_24) in (let TMP_72 \def 
-(\lambda (x0: nat).(\lambda (x1: nat).(\lambda (x2: nat).(\lambda (H3: (eq A 
-(aplus g (ASort O (next g n0)) x2) (aplus g (ASort x1 x0) x2))).(\lambda (H4: 
-(eq A (ASort O (next g n2)) (ASort x1 x0))).(let TMP_26 \def (\lambda (e: 
-A).(match e with [(ASort n3 _) \Rightarrow n3 | (AHead _ _) \Rightarrow O])) 
-in (let TMP_27 \def (next g n2) in (let TMP_28 \def (ASort O TMP_27) in (let 
-TMP_29 \def (ASort x1 x0) in (let H5 \def (f_equal A nat TMP_26 TMP_28 TMP_29 
-H4) in (let TMP_31 \def (\lambda (e: A).(match e with [(ASort _ n3) 
-\Rightarrow n3 | (AHead _ _) \Rightarrow (let TMP_30 \def (match g with 
-[(mk_G next _) \Rightarrow next]) in (TMP_30 n2))])) in (let TMP_32 \def 
-(next g n2) in (let TMP_33 \def (ASort O TMP_32) in (let TMP_34 \def (ASort 
-x1 x0) in (let H6 \def (f_equal A nat TMP_31 TMP_33 TMP_34 H4) in (let TMP_71 
-\def (\lambda (H7: (eq nat O x1)).(let TMP_40 \def (\lambda (n3: nat).(let 
-TMP_35 \def (next g n0) in (let TMP_36 \def (ASort O TMP_35) in (let TMP_37 
-\def (aplus g TMP_36 x2) in (let TMP_38 \def (ASort n3 x0) in (let TMP_39 
-\def (aplus g TMP_38 x2) in (eq A TMP_37 TMP_39))))))) in (let H8 \def 
-(eq_ind_r nat x1 TMP_40 H3 O H7) in (let TMP_46 \def (\lambda (n3: nat).(let 
-TMP_41 \def (next g n0) in (let TMP_42 \def (ASort O TMP_41) in (let TMP_43 
-\def (aplus g TMP_42 x2) in (let TMP_44 \def (ASort O n3) in (let TMP_45 \def 
-(aplus g TMP_44 x2) in (eq A TMP_43 TMP_45))))))) in (let TMP_47 \def (next g 
-n2) in (let H9 \def (eq_ind_r nat x0 TMP_46 H8 TMP_47 H6) in (let TMP_48 \def 
-(next g n0) in (let TMP_49 \def (ASort O TMP_48) in (let TMP_50 \def (aplus g 
-TMP_49 x2) in (let TMP_54 \def (\lambda (a: A).(let TMP_51 \def (next g n2) 
-in (let TMP_52 \def (ASort O TMP_51) in (let TMP_53 \def (aplus g TMP_52 x2) 
-in (eq A a TMP_53))))) in (let TMP_55 \def (ASort O n0) in (let TMP_56 \def 
-(S x2) in (let TMP_57 \def (aplus g TMP_55 TMP_56) in (let TMP_58 \def 
-(aplus_sort_O_S_simpl g n0 x2) in (let H10 \def (eq_ind_r A TMP_50 TMP_54 H9 
-TMP_57 TMP_58) in (let TMP_59 \def (next g n2) in (let TMP_60 \def (ASort O 
-TMP_59) in (let TMP_61 \def (aplus g TMP_60 x2) in (let TMP_65 \def (\lambda 
-(a: A).(let TMP_62 \def (ASort O n0) in (let TMP_63 \def (S x2) in (let 
-TMP_64 \def (aplus g TMP_62 TMP_63) in (eq A TMP_64 a))))) in (let TMP_66 
-\def (ASort O n2) in (let TMP_67 \def (S x2) in (let TMP_68 \def (aplus g 
-TMP_66 TMP_67) in (let TMP_69 \def (aplus_sort_O_S_simpl g n2 x2) in (let H11 
-\def (eq_ind_r A TMP_61 TMP_65 H10 TMP_68 TMP_69) in (let TMP_70 \def (S x2) 
-in (leq_sort g O O n0 n2 TMP_70 H11)))))))))))))))))))))))))) in (TMP_71 
-H5))))))))))))))))) in (ex2_3_ind nat nat nat TMP_18 TMP_22 TMP_25 TMP_72 
-H2))))))))))))) in (let TMP_132 \def (\lambda (n3: nat).(\lambda (_: (((leq g 
-(asucc g (ASort O n0)) (asucc g (ASort n3 n2))) \to (leq g (ASort O n0) 
-(ASort n3 n2))))).(\lambda (H1: (leq g (asucc g (ASort O n0)) (asucc g (ASort 
-(S n3) n2)))).(let TMP_74 \def (next g n0) in (let TMP_75 \def (ASort n3 n2) 
-in (let H_x \def (leq_gen_sort1 g O TMP_74 TMP_75 H1) in (let H2 \def H_x in 
-(let TMP_81 \def (\lambda (n4: nat).(\lambda (h2: nat).(\lambda (k: nat).(let 
-TMP_76 \def (next g n0) in (let TMP_77 \def (ASort O TMP_76) in (let TMP_78 
-\def (aplus g TMP_77 k) in (let TMP_79 \def (ASort h2 n4) in (let TMP_80 \def 
-(aplus g TMP_79 k) in (eq A TMP_78 TMP_80))))))))) in (let TMP_84 \def 
-(\lambda (n4: nat).(\lambda (h2: nat).(\lambda (_: nat).(let TMP_82 \def 
-(ASort n3 n2) in (let TMP_83 \def (ASort h2 n4) in (eq A TMP_82 TMP_83)))))) 
-in (let TMP_85 \def (ASort O n0) in (let TMP_86 \def (S n3) in (let TMP_87 
-\def (ASort TMP_86 n2) in (let TMP_88 \def (leq g TMP_85 TMP_87) in (let 
-TMP_131 \def (\lambda (x0: nat).(\lambda (x1: nat).(\lambda (x2: 
-nat).(\lambda (H3: (eq A (aplus g (ASort O (next g n0)) x2) (aplus g (ASort 
-x1 x0) x2))).(\lambda (H4: (eq A (ASort n3 n2) (ASort x1 x0))).(let TMP_89 
-\def (\lambda (e: A).(match e with [(ASort n4 _) \Rightarrow n4 | (AHead _ _) 
-\Rightarrow n3])) in (let TMP_90 \def (ASort n3 n2) in (let TMP_91 \def 
-(ASort x1 x0) in (let H5 \def (f_equal A nat TMP_89 TMP_90 TMP_91 H4) in (let 
-TMP_92 \def (\lambda (e: A).(match e with [(ASort _ n4) \Rightarrow n4 | 
-(AHead _ _) \Rightarrow n2])) in (let TMP_93 \def (ASort n3 n2) in (let 
-TMP_94 \def (ASort x1 x0) in (let H6 \def (f_equal A nat TMP_92 TMP_93 TMP_94 
-H4) in (let TMP_130 \def (\lambda (H7: (eq nat n3 x1)).(let TMP_100 \def 
-(\lambda (n4: nat).(let TMP_95 \def (next g n0) in (let TMP_96 \def (ASort O 
-TMP_95) in (let TMP_97 \def (aplus g TMP_96 x2) in (let TMP_98 \def (ASort n4 
-x0) in (let TMP_99 \def (aplus g TMP_98 x2) in (eq A TMP_97 TMP_99))))))) in 
-(let H8 \def (eq_ind_r nat x1 TMP_100 H3 n3 H7) in (let TMP_106 \def (\lambda 
-(n4: nat).(let TMP_101 \def (next g n0) in (let TMP_102 \def (ASort O 
-TMP_101) in (let TMP_103 \def (aplus g TMP_102 x2) in (let TMP_104 \def 
-(ASort n3 n4) in (let TMP_105 \def (aplus g TMP_104 x2) in (eq A TMP_103 
-TMP_105))))))) in (let H9 \def (eq_ind_r nat x0 TMP_106 H8 n2 H6) in (let 
-TMP_107 \def (next g n0) in (let TMP_108 \def (ASort O TMP_107) in (let 
-TMP_109 \def (aplus g TMP_108 x2) in (let TMP_112 \def (\lambda (a: A).(let 
-TMP_110 \def (ASort n3 n2) in (let TMP_111 \def (aplus g TMP_110 x2) in (eq A 
-a TMP_111)))) in (let TMP_113 \def (ASort O n0) in (let TMP_114 \def (S x2) 
-in (let TMP_115 \def (aplus g TMP_113 TMP_114) in (let TMP_116 \def 
-(aplus_sort_O_S_simpl g n0 x2) in (let H10 \def (eq_ind_r A TMP_109 TMP_112 
-H9 TMP_115 TMP_116) in (let TMP_117 \def (ASort n3 n2) in (let TMP_118 \def 
-(aplus g TMP_117 x2) in (let TMP_122 \def (\lambda (a: A).(let TMP_119 \def 
-(ASort O n0) in (let TMP_120 \def (S x2) in (let TMP_121 \def (aplus g 
-TMP_119 TMP_120) in (eq A TMP_121 a))))) in (let TMP_123 \def (S n3) in (let 
-TMP_124 \def (ASort TMP_123 n2) in (let TMP_125 \def (S x2) in (let TMP_126 
-\def (aplus g TMP_124 TMP_125) in (let TMP_127 \def (aplus_sort_S_S_simpl g 
-n2 n3 x2) in (let H11 \def (eq_ind_r A TMP_118 TMP_122 H10 TMP_126 TMP_127) 
-in (let TMP_128 \def (S n3) in (let TMP_129 \def (S x2) in (leq_sort g O 
-TMP_128 n0 n2 TMP_129 H11)))))))))))))))))))))))))) in (TMP_130 
-H5))))))))))))))) in (ex2_3_ind nat nat nat TMP_81 TMP_84 TMP_88 TMP_131 
-H2))))))))))))))) in (nat_ind TMP_9 TMP_73 TMP_132 n1 H0))))) in (let TMP_259 
-\def (\lambda (n3: nat).(\lambda (IHn: (((leq g (asucc g (ASort n3 n0)) 
-(asucc g (ASort n1 n2))) \to (leq g (ASort n3 n0) (ASort n1 n2))))).(\lambda 
-(H0: (leq g (asucc g (ASort (S n3) n0)) (asucc g (ASort n1 n2)))).(let 
-TMP_137 \def (\lambda (n4: nat).((leq g (asucc g (ASort (S n3) n0)) (asucc g 
-(ASort n4 n2))) \to ((((leq g (asucc g (ASort n3 n0)) (asucc g (ASort n4 
-n2))) \to (leq g (ASort n3 n0) (ASort n4 n2)))) \to (let TMP_134 \def (S n3) 
-in (let TMP_135 \def (ASort TMP_134 n0) in (let TMP_136 \def (ASort n4 n2) in 
-(leq g TMP_135 TMP_136))))))) in (let TMP_200 \def (\lambda (H1: (leq g 
-(asucc g (ASort (S n3) n0)) (asucc g (ASort O n2)))).(\lambda (_: (((leq g 
-(asucc g (ASort n3 n0)) (asucc g (ASort O n2))) \to (leq g (ASort n3 n0) 
-(ASort O n2))))).(let TMP_138 \def (next g n2) in (let TMP_139 \def (ASort O 
-TMP_138) in (let H_x \def (leq_gen_sort1 g n3 n0 TMP_139 H1) in (let H2 \def 
-H_x in (let TMP_144 \def (\lambda (n4: nat).(\lambda (h2: nat).(\lambda (k: 
-nat).(let TMP_140 \def (ASort n3 n0) in (let TMP_141 \def (aplus g TMP_140 k) 
-in (let TMP_142 \def (ASort h2 n4) in (let TMP_143 \def (aplus g TMP_142 k) 
-in (eq A TMP_141 TMP_143)))))))) in (let TMP_148 \def (\lambda (n4: 
-nat).(\lambda (h2: nat).(\lambda (_: nat).(let TMP_145 \def (next g n2) in 
-(let TMP_146 \def (ASort O TMP_145) in (let TMP_147 \def (ASort h2 n4) in (eq 
-A TMP_146 TMP_147))))))) in (let TMP_149 \def (S n3) in (let TMP_150 \def 
-(ASort TMP_149 n0) in (let TMP_151 \def (ASort O n2) in (let TMP_152 \def 
-(leq g TMP_150 TMP_151) in (let TMP_199 \def (\lambda (x0: nat).(\lambda (x1: 
+ \lambda (g: G).(\lambda (a1: A).(A_ind (\lambda (a: A).(\forall (a2: 
+A).((leq g (asucc g a) (asucc g a2)) \to (leq g a a2)))) (\lambda (n: 
+nat).(\lambda (n0: nat).(\lambda (a2: A).(A_ind (\lambda (a: A).((leq g 
+(asucc g (ASort n n0)) (asucc g a)) \to (leq g (ASort n n0) a))) (\lambda 
+(n1: nat).(\lambda (n2: nat).(\lambda (H: (leq g (asucc g (ASort n n0)) 
+(asucc g (ASort n1 n2)))).(nat_ind (\lambda (n3: nat).((leq g (asucc g (ASort 
+n3 n0)) (asucc g (ASort n1 n2))) \to (leq g (ASort n3 n0) (ASort n1 n2)))) 
+(\lambda (H0: (leq g (asucc g (ASort O n0)) (asucc g (ASort n1 
+n2)))).(nat_ind (\lambda (n3: nat).((leq g (asucc g (ASort O n0)) (asucc g 
+(ASort n3 n2))) \to (leq g (ASort O n0) (ASort n3 n2)))) (\lambda (H1: (leq g 
+(asucc g (ASort O n0)) (asucc g (ASort O n2)))).(let H_x \def (leq_gen_sort1 
+g O (next g n0) (ASort O (next g n2)) H1) in (let H2 \def H_x in (ex2_3_ind 
+nat nat nat (\lambda (n3: nat).(\lambda (h2: nat).(\lambda (k: nat).(eq A 
+(aplus g (ASort O (next g n0)) k) (aplus g (ASort h2 n3) k))))) (\lambda (n3: 
+nat).(\lambda (h2: nat).(\lambda (_: nat).(eq A (ASort O (next g n2)) (ASort 
+h2 n3))))) (leq g (ASort O n0) (ASort O n2)) (\lambda (x0: nat).(\lambda (x1: 
+nat).(\lambda (x2: nat).(\lambda (H3: (eq A (aplus g (ASort O (next g n0)) 
+x2) (aplus g (ASort x1 x0) x2))).(\lambda (H4: (eq A (ASort O (next g n2)) 
+(ASort x1 x0))).(let H5 \def (f_equal A nat (\lambda (e: A).(match e with 
+[(ASort n3 _) \Rightarrow n3 | (AHead _ _) \Rightarrow O])) (ASort O (next g 
+n2)) (ASort x1 x0) H4) in ((let H6 \def (f_equal A nat (\lambda (e: A).(match 
+e with [(ASort _ n3) \Rightarrow n3 | (AHead _ _) \Rightarrow ((match g with 
+[(mk_G next _) \Rightarrow next]) n2)])) (ASort O (next g n2)) (ASort x1 x0) 
+H4) in (\lambda (H7: (eq nat O x1)).(let H8 \def (eq_ind_r nat x1 (\lambda 
+(n3: nat).(eq A (aplus g (ASort O (next g n0)) x2) (aplus g (ASort n3 x0) 
+x2))) H3 O H7) in (let H9 \def (eq_ind_r nat x0 (\lambda (n3: nat).(eq A 
+(aplus g (ASort O (next g n0)) x2) (aplus g (ASort O n3) x2))) H8 (next g n2) 
+H6) in (let H10 \def (eq_ind_r A (aplus g (ASort O (next g n0)) x2) (\lambda 
+(a: A).(eq A a (aplus g (ASort O (next g n2)) x2))) H9 (aplus g (ASort O n0) 
+(S x2)) (aplus_sort_O_S_simpl g n0 x2)) in (let H11 \def (eq_ind_r A (aplus g 
+(ASort O (next g n2)) x2) (\lambda (a: A).(eq A (aplus g (ASort O n0) (S x2)) 
+a)) H10 (aplus g (ASort O n2) (S x2)) (aplus_sort_O_S_simpl g n2 x2)) in 
+(leq_sort g O O n0 n2 (S x2) H11))))))) H5))))))) H2)))) (\lambda (n3: 
+nat).(\lambda (_: (((leq g (asucc g (ASort O n0)) (asucc g (ASort n3 n2))) 
+\to (leq g (ASort O n0) (ASort n3 n2))))).(\lambda (H1: (leq g (asucc g 
+(ASort O n0)) (asucc g (ASort (S n3) n2)))).(let H_x \def (leq_gen_sort1 g O 
+(next g n0) (ASort n3 n2) H1) in (let H2 \def H_x in (ex2_3_ind nat nat nat 
+(\lambda (n4: nat).(\lambda (h2: nat).(\lambda (k: nat).(eq A (aplus g (ASort 
+O (next g n0)) k) (aplus g (ASort h2 n4) k))))) (\lambda (n4: nat).(\lambda 
+(h2: nat).(\lambda (_: nat).(eq A (ASort n3 n2) (ASort h2 n4))))) (leq g 
+(ASort O n0) (ASort (S n3) n2)) (\lambda (x0: nat).(\lambda (x1: 
+nat).(\lambda (x2: nat).(\lambda (H3: (eq A (aplus g (ASort O (next g n0)) 
+x2) (aplus g (ASort x1 x0) x2))).(\lambda (H4: (eq A (ASort n3 n2) (ASort x1 
+x0))).(let H5 \def (f_equal A nat (\lambda (e: A).(match e with [(ASort n4 _) 
+\Rightarrow n4 | (AHead _ _) \Rightarrow n3])) (ASort n3 n2) (ASort x1 x0) 
+H4) in ((let H6 \def (f_equal A nat (\lambda (e: A).(match e with [(ASort _ 
+n4) \Rightarrow n4 | (AHead _ _) \Rightarrow n2])) (ASort n3 n2) (ASort x1 
+x0) H4) in (\lambda (H7: (eq nat n3 x1)).(let H8 \def (eq_ind_r nat x1 
+(\lambda (n4: nat).(eq A (aplus g (ASort O (next g n0)) x2) (aplus g (ASort 
+n4 x0) x2))) H3 n3 H7) in (let H9 \def (eq_ind_r nat x0 (\lambda (n4: 
+nat).(eq A (aplus g (ASort O (next g n0)) x2) (aplus g (ASort n3 n4) x2))) H8 
+n2 H6) in (let H10 \def (eq_ind_r A (aplus g (ASort O (next g n0)) x2) 
+(\lambda (a: A).(eq A a (aplus g (ASort n3 n2) x2))) H9 (aplus g (ASort O n0) 
+(S x2)) (aplus_sort_O_S_simpl g n0 x2)) in (let H11 \def (eq_ind_r A (aplus g 
+(ASort n3 n2) x2) (\lambda (a: A).(eq A (aplus g (ASort O n0) (S x2)) a)) H10 
+(aplus g (ASort (S n3) n2) (S x2)) (aplus_sort_S_S_simpl g n2 n3 x2)) in 
+(leq_sort g O (S n3) n0 n2 (S x2) H11))))))) H5))))))) H2)))))) n1 H0)) 
+(\lambda (n3: nat).(\lambda (IHn: (((leq g (asucc g (ASort n3 n0)) (asucc g 
+(ASort n1 n2))) \to (leq g (ASort n3 n0) (ASort n1 n2))))).(\lambda (H0: (leq 
+g (asucc g (ASort (S n3) n0)) (asucc g (ASort n1 n2)))).(nat_ind (\lambda 
+(n4: nat).((leq g (asucc g (ASort (S n3) n0)) (asucc g (ASort n4 n2))) \to 
+((((leq g (asucc g (ASort n3 n0)) (asucc g (ASort n4 n2))) \to (leq g (ASort 
+n3 n0) (ASort n4 n2)))) \to (leq g (ASort (S n3) n0) (ASort n4 n2))))) 
+(\lambda (H1: (leq g (asucc g (ASort (S n3) n0)) (asucc g (ASort O 
+n2)))).(\lambda (_: (((leq g (asucc g (ASort n3 n0)) (asucc g (ASort O n2))) 
+\to (leq g (ASort n3 n0) (ASort O n2))))).(let H_x \def (leq_gen_sort1 g n3 
+n0 (ASort O (next g n2)) H1) in (let H2 \def H_x in (ex2_3_ind nat nat nat 
+(\lambda (n4: nat).(\lambda (h2: nat).(\lambda (k: nat).(eq A (aplus g (ASort 
+n3 n0) k) (aplus g (ASort h2 n4) k))))) (\lambda (n4: nat).(\lambda (h2: 
+nat).(\lambda (_: nat).(eq A (ASort O (next g n2)) (ASort h2 n4))))) (leq g 
+(ASort (S n3) n0) (ASort O n2)) (\lambda (x0: nat).(\lambda (x1: 
 nat).(\lambda (x2: nat).(\lambda (H3: (eq A (aplus g (ASort n3 n0) x2) (aplus 
 g (ASort x1 x0) x2))).(\lambda (H4: (eq A (ASort O (next g n2)) (ASort x1 
-x0))).(let TMP_153 \def (\lambda (e: A).(match e with [(ASort n4 _) 
-\Rightarrow n4 | (AHead _ _) \Rightarrow O])) in (let TMP_154 \def (next g 
-n2) in (let TMP_155 \def (ASort O TMP_154) in (let TMP_156 \def (ASort x1 x0) 
-in (let H5 \def (f_equal A nat TMP_153 TMP_155 TMP_156 H4) in (let TMP_158 
-\def (\lambda (e: A).(match e with [(ASort _ n4) \Rightarrow n4 | (AHead _ _) 
-\Rightarrow (let TMP_157 \def (match g with [(mk_G next _) \Rightarrow next]) 
-in (TMP_157 n2))])) in (let TMP_159 \def (next g n2) in (let TMP_160 \def 
-(ASort O TMP_159) in (let TMP_161 \def (ASort x1 x0) in (let H6 \def (f_equal 
-A nat TMP_158 TMP_160 TMP_161 H4) in (let TMP_198 \def (\lambda (H7: (eq nat 
-O x1)).(let TMP_166 \def (\lambda (n4: nat).(let TMP_162 \def (ASort n3 n0) 
-in (let TMP_163 \def (aplus g TMP_162 x2) in (let TMP_164 \def (ASort n4 x0) 
-in (let TMP_165 \def (aplus g TMP_164 x2) in (eq A TMP_163 TMP_165)))))) in 
-(let H8 \def (eq_ind_r nat x1 TMP_166 H3 O H7) in (let TMP_171 \def (\lambda 
-(n4: nat).(let TMP_167 \def (ASort n3 n0) in (let TMP_168 \def (aplus g 
-TMP_167 x2) in (let TMP_169 \def (ASort O n4) in (let TMP_170 \def (aplus g 
-TMP_169 x2) in (eq A TMP_168 TMP_170)))))) in (let TMP_172 \def (next g n2) 
-in (let H9 \def (eq_ind_r nat x0 TMP_171 H8 TMP_172 H6) in (let TMP_173 \def 
-(ASort n3 n0) in (let TMP_174 \def (aplus g TMP_173 x2) in (let TMP_178 \def 
-(\lambda (a: A).(let TMP_175 \def (next g n2) in (let TMP_176 \def (ASort O 
-TMP_175) in (let TMP_177 \def (aplus g TMP_176 x2) in (eq A a TMP_177))))) in 
-(let TMP_179 \def (S n3) in (let TMP_180 \def (ASort TMP_179 n0) in (let 
-TMP_181 \def (S x2) in (let TMP_182 \def (aplus g TMP_180 TMP_181) in (let 
-TMP_183 \def (aplus_sort_S_S_simpl g n0 n3 x2) in (let H10 \def (eq_ind_r A 
-TMP_174 TMP_178 H9 TMP_182 TMP_183) in (let TMP_184 \def (next g n2) in (let 
-TMP_185 \def (ASort O TMP_184) in (let TMP_186 \def (aplus g TMP_185 x2) in 
-(let TMP_191 \def (\lambda (a: A).(let TMP_187 \def (S n3) in (let TMP_188 
-\def (ASort TMP_187 n0) in (let TMP_189 \def (S x2) in (let TMP_190 \def 
-(aplus g TMP_188 TMP_189) in (eq A TMP_190 a)))))) in (let TMP_192 \def 
-(ASort O n2) in (let TMP_193 \def (S x2) in (let TMP_194 \def (aplus g 
-TMP_192 TMP_193) in (let TMP_195 \def (aplus_sort_O_S_simpl g n2 x2) in (let 
-H11 \def (eq_ind_r A TMP_186 TMP_191 H10 TMP_194 TMP_195) in (let TMP_196 
-\def (S n3) in (let TMP_197 \def (S x2) in (leq_sort g TMP_196 O n0 n2 
-TMP_197 H11))))))))))))))))))))))))))) in (TMP_198 H5))))))))))))))))) in 
-(ex2_3_ind nat nat nat TMP_144 TMP_148 TMP_152 TMP_199 H2)))))))))))))) in 
-(let TMP_258 \def (\lambda (n4: nat).(\lambda (_: (((leq g (asucc g (ASort (S 
-n3) n0)) (asucc g (ASort n4 n2))) \to ((((leq g (asucc g (ASort n3 n0)) 
-(asucc g (ASort n4 n2))) \to (leq g (ASort n3 n0) (ASort n4 n2)))) \to (leq g 
-(ASort (S n3) n0) (ASort n4 n2)))))).(\lambda (H1: (leq g (asucc g (ASort (S 
-n3) n0)) (asucc g (ASort (S n4) n2)))).(\lambda (_: (((leq g (asucc g (ASort 
-n3 n0)) (asucc g (ASort (S n4) n2))) \to (leq g (ASort n3 n0) (ASort (S n4) 
-n2))))).(let TMP_201 \def (ASort n4 n2) in (let H_x \def (leq_gen_sort1 g n3 
-n0 TMP_201 H1) in (let H2 \def H_x in (let TMP_206 \def (\lambda (n5: 
-nat).(\lambda (h2: nat).(\lambda (k: nat).(let TMP_202 \def (ASort n3 n0) in 
-(let TMP_203 \def (aplus g TMP_202 k) in (let TMP_204 \def (ASort h2 n5) in 
-(let TMP_205 \def (aplus g TMP_204 k) in (eq A TMP_203 TMP_205)))))))) in 
-(let TMP_209 \def (\lambda (n5: nat).(\lambda (h2: nat).(\lambda (_: 
-nat).(let TMP_207 \def (ASort n4 n2) in (let TMP_208 \def (ASort h2 n5) in 
-(eq A TMP_207 TMP_208)))))) in (let TMP_210 \def (S n3) in (let TMP_211 \def 
-(ASort TMP_210 n0) in (let TMP_212 \def (S n4) in (let TMP_213 \def (ASort 
-TMP_212 n2) in (let TMP_214 \def (leq g TMP_211 TMP_213) in (let TMP_257 \def 
-(\lambda (x0: nat).(\lambda (x1: nat).(\lambda (x2: nat).(\lambda (H3: (eq A 
-(aplus g (ASort n3 n0) x2) (aplus g (ASort x1 x0) x2))).(\lambda (H4: (eq A 
-(ASort n4 n2) (ASort x1 x0))).(let TMP_215 \def (\lambda (e: A).(match e with 
-[(ASort n5 _) \Rightarrow n5 | (AHead _ _) \Rightarrow n4])) in (let TMP_216 
-\def (ASort n4 n2) in (let TMP_217 \def (ASort x1 x0) in (let H5 \def 
-(f_equal A nat TMP_215 TMP_216 TMP_217 H4) in (let TMP_218 \def (\lambda (e: 
-A).(match e with [(ASort _ n5) \Rightarrow n5 | (AHead _ _) \Rightarrow n2])) 
-in (let TMP_219 \def (ASort n4 n2) in (let TMP_220 \def (ASort x1 x0) in (let 
-H6 \def (f_equal A nat TMP_218 TMP_219 TMP_220 H4) in (let TMP_256 \def 
-(\lambda (H7: (eq nat n4 x1)).(let TMP_225 \def (\lambda (n5: nat).(let 
-TMP_221 \def (ASort n3 n0) in (let TMP_222 \def (aplus g TMP_221 x2) in (let 
-TMP_223 \def (ASort n5 x0) in (let TMP_224 \def (aplus g TMP_223 x2) in (eq A 
-TMP_222 TMP_224)))))) in (let H8 \def (eq_ind_r nat x1 TMP_225 H3 n4 H7) in 
-(let TMP_230 \def (\lambda (n5: nat).(let TMP_226 \def (ASort n3 n0) in (let 
-TMP_227 \def (aplus g TMP_226 x2) in (let TMP_228 \def (ASort n4 n5) in (let 
-TMP_229 \def (aplus g TMP_228 x2) in (eq A TMP_227 TMP_229)))))) in (let H9 
-\def (eq_ind_r nat x0 TMP_230 H8 n2 H6) in (let TMP_231 \def (ASort n3 n0) in 
-(let TMP_232 \def (aplus g TMP_231 x2) in (let TMP_235 \def (\lambda (a: 
-A).(let TMP_233 \def (ASort n4 n2) in (let TMP_234 \def (aplus g TMP_233 x2) 
-in (eq A a TMP_234)))) in (let TMP_236 \def (S n3) in (let TMP_237 \def 
-(ASort TMP_236 n0) in (let TMP_238 \def (S x2) in (let TMP_239 \def (aplus g 
-TMP_237 TMP_238) in (let TMP_240 \def (aplus_sort_S_S_simpl g n0 n3 x2) in 
-(let H10 \def (eq_ind_r A TMP_232 TMP_235 H9 TMP_239 TMP_240) in (let TMP_241 
-\def (ASort n4 n2) in (let TMP_242 \def (aplus g TMP_241 x2) in (let TMP_247 
-\def (\lambda (a: A).(let TMP_243 \def (S n3) in (let TMP_244 \def (ASort 
-TMP_243 n0) in (let TMP_245 \def (S x2) in (let TMP_246 \def (aplus g TMP_244 
-TMP_245) in (eq A TMP_246 a)))))) in (let TMP_248 \def (S n4) in (let TMP_249 
-\def (ASort TMP_248 n2) in (let TMP_250 \def (S x2) in (let TMP_251 \def 
-(aplus g TMP_249 TMP_250) in (let TMP_252 \def (aplus_sort_S_S_simpl g n2 n4 
-x2) in (let H11 \def (eq_ind_r A TMP_242 TMP_247 H10 TMP_251 TMP_252) in (let 
-TMP_253 \def (S n3) in (let TMP_254 \def (S n4) in (let TMP_255 \def (S x2) 
-in (leq_sort g TMP_253 TMP_254 n0 n2 TMP_255 H11))))))))))))))))))))))))))) 
-in (TMP_256 H5))))))))))))))) in (ex2_3_ind nat nat nat TMP_206 TMP_209 
-TMP_214 TMP_257 H2)))))))))))))))) in (nat_ind TMP_137 TMP_200 TMP_258 n1 H0 
-IHn))))))) in (nat_ind TMP_6 TMP_133 TMP_259 n H))))))) in (let TMP_314 \def 
-(\lambda (a: A).(\lambda (H: (((leq g (asucc g (ASort n n0)) (asucc g a)) \to 
-(leq g (ASort n n0) a)))).(\lambda (a0: A).(\lambda (H0: (((leq g (asucc g 
-(ASort n n0)) (asucc g a0)) \to (leq g (ASort n n0) a0)))).(\lambda (H1: (leq 
-g (asucc g (ASort n n0)) (asucc g (AHead a a0)))).(let TMP_263 \def (\lambda 
-(n1: nat).((((leq g (asucc g (ASort n1 n0)) (asucc g a)) \to (leq g (ASort n1 
-n0) a))) \to ((((leq g (asucc g (ASort n1 n0)) (asucc g a0)) \to (leq g 
-(ASort n1 n0) a0))) \to ((leq g (asucc g (ASort n1 n0)) (asucc g (AHead a 
-a0))) \to (let TMP_261 \def (ASort n1 n0) in (let TMP_262 \def (AHead a a0) 
-in (leq g TMP_261 TMP_262))))))) in (let TMP_288 \def (\lambda (_: (((leq g 
-(asucc g (ASort O n0)) (asucc g a)) \to (leq g (ASort O n0) a)))).(\lambda 
-(_: (((leq g (asucc g (ASort O n0)) (asucc g a0)) \to (leq g (ASort O n0) 
-a0)))).(\lambda (H4: (leq g (asucc g (ASort O n0)) (asucc g (AHead a 
-a0)))).(let TMP_264 \def (next g n0) in (let TMP_265 \def (asucc g a0) in 
-(let TMP_266 \def (AHead a TMP_265) in (let H_x \def (leq_gen_sort1 g O 
-TMP_264 TMP_266 H4) in (let H5 \def H_x in (let TMP_272 \def (\lambda (n2: 
-nat).(\lambda (h2: nat).(\lambda (k: nat).(let TMP_267 \def (next g n0) in 
-(let TMP_268 \def (ASort O TMP_267) in (let TMP_269 \def (aplus g TMP_268 k) 
-in (let TMP_270 \def (ASort h2 n2) in (let TMP_271 \def (aplus g TMP_270 k) 
-in (eq A TMP_269 TMP_271))))))))) in (let TMP_276 \def (\lambda (n2: 
-nat).(\lambda (h2: nat).(\lambda (_: nat).(let TMP_273 \def (asucc g a0) in 
-(let TMP_274 \def (AHead a TMP_273) in (let TMP_275 \def (ASort h2 n2) in (eq 
-A TMP_274 TMP_275))))))) in (let TMP_277 \def (ASort O n0) in (let TMP_278 
-\def (AHead a a0) in (let TMP_279 \def (leq g TMP_277 TMP_278) in (let 
-TMP_287 \def (\lambda (x0: nat).(\lambda (x1: nat).(\lambda (x2: 
-nat).(\lambda (_: (eq A (aplus g (ASort O (next g n0)) x2) (aplus g (ASort x1 
-x0) x2))).(\lambda (H7: (eq A (AHead a (asucc g a0)) (ASort x1 x0))).(let 
-TMP_280 \def (asucc g a0) in (let TMP_281 \def (AHead a TMP_280) in (let 
-TMP_282 \def (\lambda (ee: A).(match ee with [(ASort _ _) \Rightarrow False | 
-(AHead _ _) \Rightarrow True])) in (let TMP_283 \def (ASort x1 x0) in (let H8 
-\def (eq_ind A TMP_281 TMP_282 I TMP_283 H7) in (let TMP_284 \def (ASort O 
-n0) in (let TMP_285 \def (AHead a a0) in (let TMP_286 \def (leq g TMP_284 
-TMP_285) in (False_ind TMP_286 H8)))))))))))))) in (ex2_3_ind nat nat nat 
-TMP_272 TMP_276 TMP_279 TMP_287 H5))))))))))))))) in (let TMP_313 \def 
-(\lambda (n1: nat).(\lambda (_: (((((leq g (asucc g (ASort n1 n0)) (asucc g 
+x0))).(let H5 \def (f_equal A nat (\lambda (e: A).(match e with [(ASort n4 _) 
+\Rightarrow n4 | (AHead _ _) \Rightarrow O])) (ASort O (next g n2)) (ASort x1 
+x0) H4) in ((let H6 \def (f_equal A nat (\lambda (e: A).(match e with [(ASort 
+_ n4) \Rightarrow n4 | (AHead _ _) \Rightarrow ((match g with [(mk_G next _) 
+\Rightarrow next]) n2)])) (ASort O (next g n2)) (ASort x1 x0) H4) in (\lambda 
+(H7: (eq nat O x1)).(let H8 \def (eq_ind_r nat x1 (\lambda (n4: nat).(eq A 
+(aplus g (ASort n3 n0) x2) (aplus g (ASort n4 x0) x2))) H3 O H7) in (let H9 
+\def (eq_ind_r nat x0 (\lambda (n4: nat).(eq A (aplus g (ASort n3 n0) x2) 
+(aplus g (ASort O n4) x2))) H8 (next g n2) H6) in (let H10 \def (eq_ind_r A 
+(aplus g (ASort n3 n0) x2) (\lambda (a: A).(eq A a (aplus g (ASort O (next g 
+n2)) x2))) H9 (aplus g (ASort (S n3) n0) (S x2)) (aplus_sort_S_S_simpl g n0 
+n3 x2)) in (let H11 \def (eq_ind_r A (aplus g (ASort O (next g n2)) x2) 
+(\lambda (a: A).(eq A (aplus g (ASort (S n3) n0) (S x2)) a)) H10 (aplus g 
+(ASort O n2) (S x2)) (aplus_sort_O_S_simpl g n2 x2)) in (leq_sort g (S n3) O 
+n0 n2 (S x2) H11))))))) H5))))))) H2))))) (\lambda (n4: nat).(\lambda (_: 
+(((leq g (asucc g (ASort (S n3) n0)) (asucc g (ASort n4 n2))) \to ((((leq g 
+(asucc g (ASort n3 n0)) (asucc g (ASort n4 n2))) \to (leq g (ASort n3 n0) 
+(ASort n4 n2)))) \to (leq g (ASort (S n3) n0) (ASort n4 n2)))))).(\lambda 
+(H1: (leq g (asucc g (ASort (S n3) n0)) (asucc g (ASort (S n4) 
+n2)))).(\lambda (_: (((leq g (asucc g (ASort n3 n0)) (asucc g (ASort (S n4) 
+n2))) \to (leq g (ASort n3 n0) (ASort (S n4) n2))))).(let H_x \def 
+(leq_gen_sort1 g n3 n0 (ASort n4 n2) H1) in (let H2 \def H_x in (ex2_3_ind 
+nat nat nat (\lambda (n5: nat).(\lambda (h2: nat).(\lambda (k: nat).(eq A 
+(aplus g (ASort n3 n0) k) (aplus g (ASort h2 n5) k))))) (\lambda (n5: 
+nat).(\lambda (h2: nat).(\lambda (_: nat).(eq A (ASort n4 n2) (ASort h2 
+n5))))) (leq g (ASort (S n3) n0) (ASort (S n4) n2)) (\lambda (x0: 
+nat).(\lambda (x1: nat).(\lambda (x2: nat).(\lambda (H3: (eq A (aplus g 
+(ASort n3 n0) x2) (aplus g (ASort x1 x0) x2))).(\lambda (H4: (eq A (ASort n4 
+n2) (ASort x1 x0))).(let H5 \def (f_equal A nat (\lambda (e: A).(match e with 
+[(ASort n5 _) \Rightarrow n5 | (AHead _ _) \Rightarrow n4])) (ASort n4 n2) 
+(ASort x1 x0) H4) in ((let H6 \def (f_equal A nat (\lambda (e: A).(match e 
+with [(ASort _ n5) \Rightarrow n5 | (AHead _ _) \Rightarrow n2])) (ASort n4 
+n2) (ASort x1 x0) H4) in (\lambda (H7: (eq nat n4 x1)).(let H8 \def (eq_ind_r 
+nat x1 (\lambda (n5: nat).(eq A (aplus g (ASort n3 n0) x2) (aplus g (ASort n5 
+x0) x2))) H3 n4 H7) in (let H9 \def (eq_ind_r nat x0 (\lambda (n5: nat).(eq A 
+(aplus g (ASort n3 n0) x2) (aplus g (ASort n4 n5) x2))) H8 n2 H6) in (let H10 
+\def (eq_ind_r A (aplus g (ASort n3 n0) x2) (\lambda (a: A).(eq A a (aplus g 
+(ASort n4 n2) x2))) H9 (aplus g (ASort (S n3) n0) (S x2)) 
+(aplus_sort_S_S_simpl g n0 n3 x2)) in (let H11 \def (eq_ind_r A (aplus g 
+(ASort n4 n2) x2) (\lambda (a: A).(eq A (aplus g (ASort (S n3) n0) (S x2)) 
+a)) H10 (aplus g (ASort (S n4) n2) (S x2)) (aplus_sort_S_S_simpl g n2 n4 x2)) 
+in (leq_sort g (S n3) (S n4) n0 n2 (S x2) H11))))))) H5))))))) H2))))))) n1 
+H0 IHn)))) n H)))) (\lambda (a: A).(\lambda (H: (((leq g (asucc g (ASort n 
+n0)) (asucc g a)) \to (leq g (ASort n n0) a)))).(\lambda (a0: A).(\lambda 
+(H0: (((leq g (asucc g (ASort n n0)) (asucc g a0)) \to (leq g (ASort n n0) 
+a0)))).(\lambda (H1: (leq g (asucc g (ASort n n0)) (asucc g (AHead a 
+a0)))).(nat_ind (\lambda (n1: nat).((((leq g (asucc g (ASort n1 n0)) (asucc g 
 a)) \to (leq g (ASort n1 n0) a))) \to ((((leq g (asucc g (ASort n1 n0)) 
 (asucc g a0)) \to (leq g (ASort n1 n0) a0))) \to ((leq g (asucc g (ASort n1 
-n0)) (asucc g (AHead a a0))) \to (leq g (ASort n1 n0) (AHead a 
+n0)) (asucc g (AHead a a0))) \to (leq g (ASort n1 n0) (AHead a a0)))))) 
+(\lambda (_: (((leq g (asucc g (ASort O n0)) (asucc g a)) \to (leq g (ASort O 
+n0) a)))).(\lambda (_: (((leq g (asucc g (ASort O n0)) (asucc g a0)) \to (leq 
+g (ASort O n0) a0)))).(\lambda (H4: (leq g (asucc g (ASort O n0)) (asucc g 
+(AHead a a0)))).(let H_x \def (leq_gen_sort1 g O (next g n0) (AHead a (asucc 
+g a0)) H4) in (let H5 \def H_x in (ex2_3_ind nat nat nat (\lambda (n2: 
+nat).(\lambda (h2: nat).(\lambda (k: nat).(eq A (aplus g (ASort O (next g 
+n0)) k) (aplus g (ASort h2 n2) k))))) (\lambda (n2: nat).(\lambda (h2: 
+nat).(\lambda (_: nat).(eq A (AHead a (asucc g a0)) (ASort h2 n2))))) (leq g 
+(ASort O n0) (AHead a a0)) (\lambda (x0: nat).(\lambda (x1: nat).(\lambda 
+(x2: nat).(\lambda (_: (eq A (aplus g (ASort O (next g n0)) x2) (aplus g 
+(ASort x1 x0) x2))).(\lambda (H7: (eq A (AHead a (asucc g a0)) (ASort x1 
+x0))).(let H8 \def (eq_ind A (AHead a (asucc g a0)) (\lambda (ee: A).(match 
+ee with [(ASort _ _) \Rightarrow False | (AHead _ _) \Rightarrow True])) I 
+(ASort x1 x0) H7) in (False_ind (leq g (ASort O n0) (AHead a a0)) H8))))))) 
+H5)))))) (\lambda (n1: nat).(\lambda (_: (((((leq g (asucc g (ASort n1 n0)) 
+(asucc g a)) \to (leq g (ASort n1 n0) a))) \to ((((leq g (asucc g (ASort n1 
+n0)) (asucc g a0)) \to (leq g (ASort n1 n0) a0))) \to ((leq g (asucc g (ASort 
+n1 n0)) (asucc g (AHead a a0))) \to (leq g (ASort n1 n0) (AHead a 
 a0))))))).(\lambda (_: (((leq g (asucc g (ASort (S n1) n0)) (asucc g a)) \to 
 (leq g (ASort (S n1) n0) a)))).(\lambda (_: (((leq g (asucc g (ASort (S n1) 
 n0)) (asucc g a0)) \to (leq g (ASort (S n1) n0) a0)))).(\lambda (H4: (leq g 
-(asucc g (ASort (S n1) n0)) (asucc g (AHead a a0)))).(let TMP_289 \def (asucc 
-g a0) in (let TMP_290 \def (AHead a TMP_289) in (let H_x \def (leq_gen_sort1 
-g n1 n0 TMP_290 H4) in (let H5 \def H_x in (let TMP_295 \def (\lambda (n2: 
-nat).(\lambda (h2: nat).(\lambda (k: nat).(let TMP_291 \def (ASort n1 n0) in 
-(let TMP_292 \def (aplus g TMP_291 k) in (let TMP_293 \def (ASort h2 n2) in 
-(let TMP_294 \def (aplus g TMP_293 k) in (eq A TMP_292 TMP_294)))))))) in 
-(let TMP_299 \def (\lambda (n2: nat).(\lambda (h2: nat).(\lambda (_: 
-nat).(let TMP_296 \def (asucc g a0) in (let TMP_297 \def (AHead a TMP_296) in 
-(let TMP_298 \def (ASort h2 n2) in (eq A TMP_297 TMP_298))))))) in (let 
-TMP_300 \def (S n1) in (let TMP_301 \def (ASort TMP_300 n0) in (let TMP_302 
-\def (AHead a a0) in (let TMP_303 \def (leq g TMP_301 TMP_302) in (let 
-TMP_312 \def (\lambda (x0: nat).(\lambda (x1: nat).(\lambda (x2: 
-nat).(\lambda (_: (eq A (aplus g (ASort n1 n0) x2) (aplus g (ASort x1 x0) 
-x2))).(\lambda (H7: (eq A (AHead a (asucc g a0)) (ASort x1 x0))).(let TMP_304 
-\def (asucc g a0) in (let TMP_305 \def (AHead a TMP_304) in (let TMP_306 \def 
-(\lambda (ee: A).(match ee with [(ASort _ _) \Rightarrow False | (AHead _ _) 
-\Rightarrow True])) in (let TMP_307 \def (ASort x1 x0) in (let H8 \def 
-(eq_ind A TMP_305 TMP_306 I TMP_307 H7) in (let TMP_308 \def (S n1) in (let 
-TMP_309 \def (ASort TMP_308 n0) in (let TMP_310 \def (AHead a a0) in (let 
-TMP_311 \def (leq g TMP_309 TMP_310) in (False_ind TMP_311 H8))))))))))))))) 
-in (ex2_3_ind nat nat nat TMP_295 TMP_299 TMP_303 TMP_312 H5))))))))))))))))) 
-in (nat_ind TMP_263 TMP_288 TMP_313 n H H0 H1))))))))) in (A_ind TMP_3 
-TMP_260 TMP_314 a2))))))) in (let TMP_396 \def (\lambda (a: A).(\lambda (_: 
-((\forall (a2: A).((leq g (asucc g a) (asucc g a2)) \to (leq g a 
-a2))))).(\lambda (a0: A).(\lambda (H0: ((\forall (a2: A).((leq g (asucc g a0) 
-(asucc g a2)) \to (leq g a0 a2))))).(\lambda (a2: A).(let TMP_317 \def 
-(\lambda (a3: A).((leq g (asucc g (AHead a a0)) (asucc g a3)) \to (let 
-TMP_316 \def (AHead a a0) in (leq g TMP_316 a3)))) in (let TMP_364 \def 
+(asucc g (ASort (S n1) n0)) (asucc g (AHead a a0)))).(let H_x \def 
+(leq_gen_sort1 g n1 n0 (AHead a (asucc g a0)) H4) in (let H5 \def H_x in 
+(ex2_3_ind nat nat nat (\lambda (n2: nat).(\lambda (h2: nat).(\lambda (k: 
+nat).(eq A (aplus g (ASort n1 n0) k) (aplus g (ASort h2 n2) k))))) (\lambda 
+(n2: nat).(\lambda (h2: nat).(\lambda (_: nat).(eq A (AHead a (asucc g a0)) 
+(ASort h2 n2))))) (leq g (ASort (S n1) n0) (AHead a a0)) (\lambda (x0: 
+nat).(\lambda (x1: nat).(\lambda (x2: nat).(\lambda (_: (eq A (aplus g (ASort 
+n1 n0) x2) (aplus g (ASort x1 x0) x2))).(\lambda (H7: (eq A (AHead a (asucc g 
+a0)) (ASort x1 x0))).(let H8 \def (eq_ind A (AHead a (asucc g a0)) (\lambda 
+(ee: A).(match ee with [(ASort _ _) \Rightarrow False | (AHead _ _) 
+\Rightarrow True])) I (ASort x1 x0) H7) in (False_ind (leq g (ASort (S n1) 
+n0) (AHead a a0)) H8))))))) H5)))))))) n H H0 H1)))))) a2)))) (\lambda (a: 
+A).(\lambda (_: ((\forall (a2: A).((leq g (asucc g a) (asucc g a2)) \to (leq 
+g a a2))))).(\lambda (a0: A).(\lambda (H0: ((\forall (a2: A).((leq g (asucc g 
+a0) (asucc g a2)) \to (leq g a0 a2))))).(\lambda (a2: A).(A_ind (\lambda (a3: 
+A).((leq g (asucc g (AHead a a0)) (asucc g a3)) \to (leq g (AHead a a0) a3))) 
 (\lambda (n: nat).(\lambda (n0: nat).(\lambda (H1: (leq g (asucc g (AHead a 
-a0)) (asucc g (ASort n n0)))).(let TMP_320 \def (\lambda (n1: nat).((leq g 
-(asucc g (AHead a a0)) (asucc g (ASort n1 n0))) \to (let TMP_318 \def (AHead 
-a a0) in (let TMP_319 \def (ASort n1 n0) in (leq g TMP_318 TMP_319))))) in 
-(let TMP_342 \def (\lambda (H2: (leq g (asucc g (AHead a a0)) (asucc g (ASort 
-O n0)))).(let TMP_321 \def (asucc g a0) in (let TMP_322 \def (next g n0) in 
-(let TMP_323 \def (ASort O TMP_322) in (let H_x \def (leq_gen_head1 g a 
-TMP_321 TMP_323 H2) in (let H3 \def H_x in (let TMP_324 \def (\lambda (a3: 
-A).(\lambda (_: A).(leq g a a3))) in (let TMP_326 \def (\lambda (_: 
-A).(\lambda (a4: A).(let TMP_325 \def (asucc g a0) in (leq g TMP_325 a4)))) 
-in (let TMP_330 \def (\lambda (a3: A).(\lambda (a4: A).(let TMP_327 \def 
-(next g n0) in (let TMP_328 \def (ASort O TMP_327) in (let TMP_329 \def 
-(AHead a3 a4) in (eq A TMP_328 TMP_329)))))) in (let TMP_331 \def (AHead a 
-a0) in (let TMP_332 \def (ASort O n0) in (let TMP_333 \def (leq g TMP_331 
-TMP_332) in (let TMP_341 \def (\lambda (x0: A).(\lambda (x1: A).(\lambda (_: 
-(leq g a x0)).(\lambda (_: (leq g (asucc g a0) x1)).(\lambda (H6: (eq A 
-(ASort O (next g n0)) (AHead x0 x1))).(let TMP_334 \def (next g n0) in (let 
-TMP_335 \def (ASort O TMP_334) in (let TMP_336 \def (\lambda (ee: A).(match 
-ee with [(ASort _ _) \Rightarrow True | (AHead _ _) \Rightarrow False])) in 
-(let TMP_337 \def (AHead x0 x1) in (let H7 \def (eq_ind A TMP_335 TMP_336 I 
-TMP_337 H6) in (let TMP_338 \def (AHead a a0) in (let TMP_339 \def (ASort O 
-n0) in (let TMP_340 \def (leq g TMP_338 TMP_339) in (False_ind TMP_340 
-H7)))))))))))))) in (ex3_2_ind A A TMP_324 TMP_326 TMP_330 TMP_333 TMP_341 
-H3)))))))))))))) in (let TMP_363 \def (\lambda (n1: nat).(\lambda (_: (((leq 
-g (asucc g (AHead a a0)) (asucc g (ASort n1 n0))) \to (leq g (AHead a a0) 
-(ASort n1 n0))))).(\lambda (H2: (leq g (asucc g (AHead a a0)) (asucc g (ASort 
-(S n1) n0)))).(let TMP_343 \def (asucc g a0) in (let TMP_344 \def (ASort n1 
-n0) in (let H_x \def (leq_gen_head1 g a TMP_343 TMP_344 H2) in (let H3 \def 
-H_x in (let TMP_345 \def (\lambda (a3: A).(\lambda (_: A).(leq g a a3))) in 
-(let TMP_347 \def (\lambda (_: A).(\lambda (a4: A).(let TMP_346 \def (asucc g 
-a0) in (leq g TMP_346 a4)))) in (let TMP_350 \def (\lambda (a3: A).(\lambda 
-(a4: A).(let TMP_348 \def (ASort n1 n0) in (let TMP_349 \def (AHead a3 a4) in 
-(eq A TMP_348 TMP_349))))) in (let TMP_351 \def (AHead a a0) in (let TMP_352 
-\def (S n1) in (let TMP_353 \def (ASort TMP_352 n0) in (let TMP_354 \def (leq 
-g TMP_351 TMP_353) in (let TMP_362 \def (\lambda (x0: A).(\lambda (x1: 
+a0)) (asucc g (ASort n n0)))).(nat_ind (\lambda (n1: nat).((leq g (asucc g 
+(AHead a a0)) (asucc g (ASort n1 n0))) \to (leq g (AHead a a0) (ASort n1 
+n0)))) (\lambda (H2: (leq g (asucc g (AHead a a0)) (asucc g (ASort O 
+n0)))).(let H_x \def (leq_gen_head1 g a (asucc g a0) (ASort O (next g n0)) 
+H2) in (let H3 \def H_x in (ex3_2_ind A A (\lambda (a3: A).(\lambda (_: 
+A).(leq g a a3))) (\lambda (_: A).(\lambda (a4: A).(leq g (asucc g a0) a4))) 
+(\lambda (a3: A).(\lambda (a4: A).(eq A (ASort O (next g n0)) (AHead a3 
+a4)))) (leq g (AHead a a0) (ASort O n0)) (\lambda (x0: A).(\lambda (x1: 
 A).(\lambda (_: (leq g a x0)).(\lambda (_: (leq g (asucc g a0) x1)).(\lambda 
-(H6: (eq A (ASort n1 n0) (AHead x0 x1))).(let TMP_355 \def (ASort n1 n0) in 
-(let TMP_356 \def (\lambda (ee: A).(match ee with [(ASort _ _) \Rightarrow 
-True | (AHead _ _) \Rightarrow False])) in (let TMP_357 \def (AHead x0 x1) in 
-(let H7 \def (eq_ind A TMP_355 TMP_356 I TMP_357 H6) in (let TMP_358 \def 
-(AHead a a0) in (let TMP_359 \def (S n1) in (let TMP_360 \def (ASort TMP_359 
-n0) in (let TMP_361 \def (leq g TMP_358 TMP_360) in (False_ind TMP_361 
-H7)))))))))))))) in (ex3_2_ind A A TMP_345 TMP_347 TMP_350 TMP_354 TMP_362 
-H3)))))))))))))))) in (nat_ind TMP_320 TMP_342 TMP_363 n H1))))))) in (let 
-TMP_395 \def (\lambda (a3: A).(\lambda (_: (((leq g (asucc g (AHead a a0)) 
-(asucc g a3)) \to (leq g (AHead a a0) a3)))).(\lambda (a4: A).(\lambda (_: 
-(((leq g (asucc g (AHead a a0)) (asucc g a4)) \to (leq g (AHead a a0) 
-a4)))).(\lambda (H3: (leq g (asucc g (AHead a a0)) (asucc g (AHead a3 
-a4)))).(let TMP_365 \def (asucc g a0) in (let TMP_366 \def (asucc g a4) in 
-(let TMP_367 \def (AHead a3 TMP_366) in (let H_x \def (leq_gen_head1 g a 
-TMP_365 TMP_367 H3) in (let H4 \def H_x in (let TMP_368 \def (\lambda (a5: 
-A).(\lambda (_: A).(leq g a a5))) in (let TMP_370 \def (\lambda (_: 
-A).(\lambda (a6: A).(let TMP_369 \def (asucc g a0) in (leq g TMP_369 a6)))) 
-in (let TMP_374 \def (\lambda (a5: A).(\lambda (a6: A).(let TMP_371 \def 
-(asucc g a4) in (let TMP_372 \def (AHead a3 TMP_371) in (let TMP_373 \def 
-(AHead a5 a6) in (eq A TMP_372 TMP_373)))))) in (let TMP_375 \def (AHead a 
-a0) in (let TMP_376 \def (AHead a3 a4) in (let TMP_377 \def (leq g TMP_375 
-TMP_376) in (let TMP_394 \def (\lambda (x0: A).(\lambda (x1: A).(\lambda (H5: 
+(H6: (eq A (ASort O (next g n0)) (AHead x0 x1))).(let H7 \def (eq_ind A 
+(ASort O (next g n0)) (\lambda (ee: A).(match ee with [(ASort _ _) 
+\Rightarrow True | (AHead _ _) \Rightarrow False])) I (AHead x0 x1) H6) in 
+(False_ind (leq g (AHead a a0) (ASort O n0)) H7))))))) H3)))) (\lambda (n1: 
+nat).(\lambda (_: (((leq g (asucc g (AHead a a0)) (asucc g (ASort n1 n0))) 
+\to (leq g (AHead a a0) (ASort n1 n0))))).(\lambda (H2: (leq g (asucc g 
+(AHead a a0)) (asucc g (ASort (S n1) n0)))).(let H_x \def (leq_gen_head1 g a 
+(asucc g a0) (ASort n1 n0) H2) in (let H3 \def H_x in (ex3_2_ind A A (\lambda 
+(a3: A).(\lambda (_: A).(leq g a a3))) (\lambda (_: A).(\lambda (a4: A).(leq 
+g (asucc g a0) a4))) (\lambda (a3: A).(\lambda (a4: A).(eq A (ASort n1 n0) 
+(AHead a3 a4)))) (leq g (AHead a a0) (ASort (S n1) n0)) (\lambda (x0: 
+A).(\lambda (x1: A).(\lambda (_: (leq g a x0)).(\lambda (_: (leq g (asucc g 
+a0) x1)).(\lambda (H6: (eq A (ASort n1 n0) (AHead x0 x1))).(let H7 \def 
+(eq_ind A (ASort n1 n0) (\lambda (ee: A).(match ee with [(ASort _ _) 
+\Rightarrow True | (AHead _ _) \Rightarrow False])) I (AHead x0 x1) H6) in 
+(False_ind (leq g (AHead a a0) (ASort (S n1) n0)) H7))))))) H3)))))) n H1)))) 
+(\lambda (a3: A).(\lambda (_: (((leq g (asucc g (AHead a a0)) (asucc g a3)) 
+\to (leq g (AHead a a0) a3)))).(\lambda (a4: A).(\lambda (_: (((leq g (asucc 
+g (AHead a a0)) (asucc g a4)) \to (leq g (AHead a a0) a4)))).(\lambda (H3: 
+(leq g (asucc g (AHead a a0)) (asucc g (AHead a3 a4)))).(let H_x \def 
+(leq_gen_head1 g a (asucc g a0) (AHead a3 (asucc g a4)) H3) in (let H4 \def 
+H_x in (ex3_2_ind A A (\lambda (a5: A).(\lambda (_: A).(leq g a a5))) 
+(\lambda (_: A).(\lambda (a6: A).(leq g (asucc g a0) a6))) (\lambda (a5: 
+A).(\lambda (a6: A).(eq A (AHead a3 (asucc g a4)) (AHead a5 a6)))) (leq g 
+(AHead a a0) (AHead a3 a4)) (\lambda (x0: A).(\lambda (x1: A).(\lambda (H5: 
 (leq g a x0)).(\lambda (H6: (leq g (asucc g a0) x1)).(\lambda (H7: (eq A 
-(AHead a3 (asucc g a4)) (AHead x0 x1))).(let TMP_378 \def (\lambda (e: 
-A).(match e with [(ASort _ _) \Rightarrow a3 | (AHead a5 _) \Rightarrow a5])) 
-in (let TMP_379 \def (asucc g a4) in (let TMP_380 \def (AHead a3 TMP_379) in 
-(let TMP_381 \def (AHead x0 x1) in (let H8 \def (f_equal A A TMP_378 TMP_380 
-TMP_381 H7) in (let TMP_384 \def (\lambda (e: A).(match e with [(ASort _ _) 
-\Rightarrow (asucc g a4) | (AHead _ a5) \Rightarrow a5])) in (let TMP_385 
-\def (asucc g a4) in (let TMP_386 \def (AHead a3 TMP_385) in (let TMP_387 
-\def (AHead x0 x1) in (let H9 \def (f_equal A A TMP_384 TMP_386 TMP_387 H7) 
-in (let TMP_393 \def (\lambda (H10: (eq A a3 x0)).(let TMP_389 \def (\lambda 
-(a5: A).(let TMP_388 \def (asucc g a0) in (leq g TMP_388 a5))) in (let 
-TMP_390 \def (asucc g a4) in (let H11 \def (eq_ind_r A x1 TMP_389 H6 TMP_390 
-H9) in (let TMP_391 \def (\lambda (a5: A).(leq g a a5)) in (let H12 \def 
-(eq_ind_r A x0 TMP_391 H5 a3 H10) in (let TMP_392 \def (H0 a4 H11) in 
-(leq_head g a a3 H12 a0 a4 TMP_392)))))))) in (TMP_393 H8))))))))))))))))) in 
-(ex3_2_ind A A TMP_368 TMP_370 TMP_374 TMP_377 TMP_394 H4)))))))))))))))))) 
-in (A_ind TMP_317 TMP_364 TMP_395 a2))))))))) in (A_ind TMP_1 TMP_315 TMP_396 
-a1))))).
+(AHead a3 (asucc g a4)) (AHead x0 x1))).(let H8 \def (f_equal A A (\lambda 
+(e: A).(match e with [(ASort _ _) \Rightarrow a3 | (AHead a5 _) \Rightarrow 
+a5])) (AHead a3 (asucc g a4)) (AHead x0 x1) H7) in ((let H9 \def (f_equal A A 
+(\lambda (e: A).(match e with [(ASort _ _) \Rightarrow (asucc g a4) | (AHead 
+_ a5) \Rightarrow a5])) (AHead a3 (asucc g a4)) (AHead x0 x1) H7) in (\lambda 
+(H10: (eq A a3 x0)).(let H11 \def (eq_ind_r A x1 (\lambda (a5: A).(leq g 
+(asucc g a0) a5)) H6 (asucc g a4) H9) in (let H12 \def (eq_ind_r A x0 
+(\lambda (a5: A).(leq g a a5)) H5 a3 H10) in (leq_head g a a3 H12 a0 a4 (H0 
+a4 H11)))))) H8))))))) H4)))))))) a2)))))) a1)).
 
 theorem leq_asucc:
  \forall (g: G).(\forall (a: A).(ex A (\lambda (a0: A).(leq g a (asucc g 
 a0)))))
 \def
- \lambda (g: G).(\lambda (a: A).(let TMP_3 \def (\lambda (a0: A).(let TMP_2 
-\def (\lambda (a1: A).(let TMP_1 \def (asucc g a1) in (leq g a0 TMP_1))) in 
-(ex A TMP_2))) in (let TMP_11 \def (\lambda (n: nat).(\lambda (n0: nat).(let 
-TMP_6 \def (\lambda (a0: A).(let TMP_4 \def (ASort n n0) in (let TMP_5 \def 
-(asucc g a0) in (leq g TMP_4 TMP_5)))) in (let TMP_7 \def (S n) in (let TMP_8 
-\def (ASort TMP_7 n0) in (let TMP_9 \def (ASort n n0) in (let TMP_10 \def 
-(leq_refl g TMP_9) in (ex_intro A TMP_6 TMP_8 TMP_10)))))))) in (let TMP_26 
-\def (\lambda (a0: A).(\lambda (_: (ex A (\lambda (a1: A).(leq g a0 (asucc g 
-a1))))).(\lambda (a1: A).(\lambda (H0: (ex A (\lambda (a2: A).(leq g a1 
-(asucc g a2))))).(let H1 \def H0 in (let TMP_13 \def (\lambda (a2: A).(let 
-TMP_12 \def (asucc g a2) in (leq g a1 TMP_12))) in (let TMP_16 \def (\lambda 
-(a2: A).(let TMP_14 \def (AHead a0 a1) in (let TMP_15 \def (asucc g a2) in 
-(leq g TMP_14 TMP_15)))) in (let TMP_17 \def (ex A TMP_16) in (let TMP_25 
-\def (\lambda (x: A).(\lambda (H2: (leq g a1 (asucc g x))).(let TMP_20 \def 
-(\lambda (a2: A).(let TMP_18 \def (AHead a0 a1) in (let TMP_19 \def (asucc g 
-a2) in (leq g TMP_18 TMP_19)))) in (let TMP_21 \def (AHead a0 x) in (let 
-TMP_22 \def (leq_refl g a0) in (let TMP_23 \def (asucc g x) in (let TMP_24 
-\def (leq_head g a0 a0 TMP_22 a1 TMP_23 H2) in (ex_intro A TMP_20 TMP_21 
-TMP_24)))))))) in (ex_ind A TMP_13 TMP_17 TMP_25 H1)))))))))) in (A_ind TMP_3 
-TMP_11 TMP_26 a))))).
+ \lambda (g: G).(\lambda (a: A).(A_ind (\lambda (a0: A).(ex A (\lambda (a1: 
+A).(leq g a0 (asucc g a1))))) (\lambda (n: nat).(\lambda (n0: nat).(ex_intro 
+A (\lambda (a0: A).(leq g (ASort n n0) (asucc g a0))) (ASort (S n) n0) 
+(leq_refl g (ASort n n0))))) (\lambda (a0: A).(\lambda (_: (ex A (\lambda 
+(a1: A).(leq g a0 (asucc g a1))))).(\lambda (a1: A).(\lambda (H0: (ex A 
+(\lambda (a2: A).(leq g a1 (asucc g a2))))).(let H1 \def H0 in (ex_ind A 
+(\lambda (a2: A).(leq g a1 (asucc g a2))) (ex A (\lambda (a2: A).(leq g 
+(AHead a0 a1) (asucc g a2)))) (\lambda (x: A).(\lambda (H2: (leq g a1 (asucc 
+g x))).(ex_intro A (\lambda (a2: A).(leq g (AHead a0 a1) (asucc g a2))) 
+(AHead a0 x) (leq_head g a0 a0 (leq_refl g a0) a1 (asucc g x) H2)))) H1)))))) 
+a)).
 
 theorem leq_ahead_asucc_false:
  \forall (g: G).(\forall (a1: A).(\forall (a2: A).((leq g (AHead a1 a2) 
 (asucc g a1)) \to (\forall (P: Prop).P))))
 \def
- \lambda (g: G).(\lambda (a1: A).(let TMP_1 \def (\lambda (a: A).(\forall 
-(a2: A).((leq g (AHead a a2) (asucc g a)) \to (\forall (P: Prop).P)))) in 
-(let TMP_34 \def (\lambda (n: nat).(\lambda (n0: nat).(\lambda (a2: 
-A).(\lambda (H: (leq g (AHead (ASort n n0) a2) (match n with [O \Rightarrow 
-(ASort O (next g n0)) | (S h) \Rightarrow (ASort h n0)]))).(\lambda (P: 
-Prop).(let TMP_2 \def (\lambda (n1: nat).((leq g (AHead (ASort n1 n0) a2) 
-(match n1 with [O \Rightarrow (ASort O (next g n0)) | (S h) \Rightarrow 
-(ASort h n0)])) \to P)) in (let TMP_18 \def (\lambda (H0: (leq g (AHead 
-(ASort O n0) a2) (ASort O (next g n0)))).(let TMP_3 \def (ASort O n0) in (let 
-TMP_4 \def (next g n0) in (let TMP_5 \def (ASort O TMP_4) in (let H_x \def 
-(leq_gen_head1 g TMP_3 a2 TMP_5 H0) in (let H1 \def H_x in (let TMP_7 \def 
-(\lambda (a3: A).(\lambda (_: A).(let TMP_6 \def (ASort O n0) in (leq g TMP_6 
-a3)))) in (let TMP_8 \def (\lambda (_: A).(\lambda (a4: A).(leq g a2 a4))) in 
-(let TMP_12 \def (\lambda (a3: A).(\lambda (a4: A).(let TMP_9 \def (next g 
-n0) in (let TMP_10 \def (ASort O TMP_9) in (let TMP_11 \def (AHead a3 a4) in 
-(eq A TMP_10 TMP_11)))))) in (let TMP_17 \def (\lambda (x0: A).(\lambda (x1: 
+ \lambda (g: G).(\lambda (a1: A).(A_ind (\lambda (a: A).(\forall (a2: 
+A).((leq g (AHead a a2) (asucc g a)) \to (\forall (P: Prop).P)))) (\lambda 
+(n: nat).(\lambda (n0: nat).(\lambda (a2: A).(\lambda (H: (leq g (AHead 
+(ASort n n0) a2) (match n with [O \Rightarrow (ASort O (next g n0)) | (S h) 
+\Rightarrow (ASort h n0)]))).(\lambda (P: Prop).(nat_ind (\lambda (n1: 
+nat).((leq g (AHead (ASort n1 n0) a2) (match n1 with [O \Rightarrow (ASort O 
+(next g n0)) | (S h) \Rightarrow (ASort h n0)])) \to P)) (\lambda (H0: (leq g 
+(AHead (ASort O n0) a2) (ASort O (next g n0)))).(let H_x \def (leq_gen_head1 
+g (ASort O n0) a2 (ASort O (next g n0)) H0) in (let H1 \def H_x in (ex3_2_ind 
+A A (\lambda (a3: A).(\lambda (_: A).(leq g (ASort O n0) a3))) (\lambda (_: 
+A).(\lambda (a4: A).(leq g a2 a4))) (\lambda (a3: A).(\lambda (a4: A).(eq A 
+(ASort O (next g n0)) (AHead a3 a4)))) P (\lambda (x0: A).(\lambda (x1: 
 A).(\lambda (_: (leq g (ASort O n0) x0)).(\lambda (_: (leq g a2 x1)).(\lambda 
-(H4: (eq A (ASort O (next g n0)) (AHead x0 x1))).(let TMP_13 \def (next g n0) 
-in (let TMP_14 \def (ASort O TMP_13) in (let TMP_15 \def (\lambda (ee: 
-A).(match ee with [(ASort _ _) \Rightarrow True | (AHead _ _) \Rightarrow 
-False])) in (let TMP_16 \def (AHead x0 x1) in (let H5 \def (eq_ind A TMP_14 
-TMP_15 I TMP_16 H4) in (False_ind P H5))))))))))) in (ex3_2_ind A A TMP_7 
-TMP_8 TMP_12 P TMP_17 H1))))))))))) in (let TMP_33 \def (\lambda (n1: 
-nat).(\lambda (_: (((leq g (AHead (ASort n1 n0) a2) (match n1 with [O 
-\Rightarrow (ASort O (next g n0)) | (S h) \Rightarrow (ASort h n0)])) \to 
-P))).(\lambda (H0: (leq g (AHead (ASort (S n1) n0) a2) (ASort n1 n0))).(let 
-TMP_19 \def (S n1) in (let TMP_20 \def (ASort TMP_19 n0) in (let TMP_21 \def 
-(ASort n1 n0) in (let H_x \def (leq_gen_head1 g TMP_20 a2 TMP_21 H0) in (let 
-H1 \def H_x in (let TMP_24 \def (\lambda (a3: A).(\lambda (_: A).(let TMP_22 
-\def (S n1) in (let TMP_23 \def (ASort TMP_22 n0) in (leq g TMP_23 a3))))) in 
-(let TMP_25 \def (\lambda (_: A).(\lambda (a4: A).(leq g a2 a4))) in (let 
-TMP_28 \def (\lambda (a3: A).(\lambda (a4: A).(let TMP_26 \def (ASort n1 n0) 
-in (let TMP_27 \def (AHead a3 a4) in (eq A TMP_26 TMP_27))))) in (let TMP_32 
-\def (\lambda (x0: A).(\lambda (x1: A).(\lambda (_: (leq g (ASort (S n1) n0) 
-x0)).(\lambda (_: (leq g a2 x1)).(\lambda (H4: (eq A (ASort n1 n0) (AHead x0 
-x1))).(let TMP_29 \def (ASort n1 n0) in (let TMP_30 \def (\lambda (ee: 
+(H4: (eq A (ASort O (next g n0)) (AHead x0 x1))).(let H5 \def (eq_ind A 
+(ASort O (next g n0)) (\lambda (ee: A).(match ee with [(ASort _ _) 
+\Rightarrow True | (AHead _ _) \Rightarrow False])) I (AHead x0 x1) H4) in 
+(False_ind P H5))))))) H1)))) (\lambda (n1: nat).(\lambda (_: (((leq g (AHead 
+(ASort n1 n0) a2) (match n1 with [O \Rightarrow (ASort O (next g n0)) | (S h) 
+\Rightarrow (ASort h n0)])) \to P))).(\lambda (H0: (leq g (AHead (ASort (S 
+n1) n0) a2) (ASort n1 n0))).(let H_x \def (leq_gen_head1 g (ASort (S n1) n0) 
+a2 (ASort n1 n0) H0) in (let H1 \def H_x in (ex3_2_ind A A (\lambda (a3: 
+A).(\lambda (_: A).(leq g (ASort (S n1) n0) a3))) (\lambda (_: A).(\lambda 
+(a4: A).(leq g a2 a4))) (\lambda (a3: A).(\lambda (a4: A).(eq A (ASort n1 n0) 
+(AHead a3 a4)))) P (\lambda (x0: A).(\lambda (x1: A).(\lambda (_: (leq g 
+(ASort (S n1) n0) x0)).(\lambda (_: (leq g a2 x1)).(\lambda (H4: (eq A (ASort 
+n1 n0) (AHead x0 x1))).(let H5 \def (eq_ind A (ASort n1 n0) (\lambda (ee: 
 A).(match ee with [(ASort _ _) \Rightarrow True | (AHead _ _) \Rightarrow 
-False])) in (let TMP_31 \def (AHead x0 x1) in (let H5 \def (eq_ind A TMP_29 
-TMP_30 I TMP_31 H4) in (False_ind P H5)))))))))) in (ex3_2_ind A A TMP_24 
-TMP_25 TMP_28 P TMP_32 H1))))))))))))) in (nat_ind TMP_2 TMP_18 TMP_33 n 
-H))))))))) in (let TMP_61 \def (\lambda (a: A).(\lambda (_: ((\forall (a2: 
-A).((leq g (AHead a a2) (asucc g a)) \to (\forall (P: Prop).P))))).(\lambda 
-(a0: A).(\lambda (_: ((\forall (a2: A).((leq g (AHead a0 a2) (asucc g a0)) 
-\to (\forall (P: Prop).P))))).(\lambda (a2: A).(\lambda (H1: (leq g (AHead 
-(AHead a a0) a2) (AHead a (asucc g a0)))).(\lambda (P: Prop).(let TMP_35 \def 
-(AHead a a0) in (let TMP_36 \def (asucc g a0) in (let TMP_37 \def (AHead a 
-TMP_36) in (let H_x \def (leq_gen_head1 g TMP_35 a2 TMP_37 H1) in (let H2 
-\def H_x in (let TMP_39 \def (\lambda (a3: A).(\lambda (_: A).(let TMP_38 
-\def (AHead a a0) in (leq g TMP_38 a3)))) in (let TMP_40 \def (\lambda (_: 
-A).(\lambda (a4: A).(leq g a2 a4))) in (let TMP_44 \def (\lambda (a3: 
-A).(\lambda (a4: A).(let TMP_41 \def (asucc g a0) in (let TMP_42 \def (AHead 
-a TMP_41) in (let TMP_43 \def (AHead a3 a4) in (eq A TMP_42 TMP_43)))))) in 
-(let TMP_60 \def (\lambda (x0: A).(\lambda (x1: A).(\lambda (H3: (leq g 
-(AHead a a0) x0)).(\lambda (H4: (leq g a2 x1)).(\lambda (H5: (eq A (AHead a 
-(asucc g a0)) (AHead x0 x1))).(let TMP_45 \def (\lambda (e: A).(match e with 
-[(ASort _ _) \Rightarrow a | (AHead a3 _) \Rightarrow a3])) in (let TMP_46 
-\def (asucc g a0) in (let TMP_47 \def (AHead a TMP_46) in (let TMP_48 \def 
-(AHead x0 x1) in (let H6 \def (f_equal A A TMP_45 TMP_47 TMP_48 H5) in (let 
-TMP_51 \def (\lambda (e: A).(match e with [(ASort _ _) \Rightarrow (asucc g 
-a0) | (AHead _ a3) \Rightarrow a3])) in (let TMP_52 \def (asucc g a0) in (let 
-TMP_53 \def (AHead a TMP_52) in (let TMP_54 \def (AHead x0 x1) in (let H7 
-\def (f_equal A A TMP_51 TMP_53 TMP_54 H5) in (let TMP_59 \def (\lambda (H8: 
-(eq A a x0)).(let TMP_55 \def (\lambda (a3: A).(leq g a2 a3)) in (let TMP_56 
-\def (asucc g a0) in (let H9 \def (eq_ind_r A x1 TMP_55 H4 TMP_56 H7) in (let 
-TMP_58 \def (\lambda (a3: A).(let TMP_57 \def (AHead a a0) in (leq g TMP_57 
-a3))) in (let H10 \def (eq_ind_r A x0 TMP_58 H3 a H8) in (leq_ahead_false_1 g 
-a a0 H10 P))))))) in (TMP_59 H6))))))))))))))))) in (ex3_2_ind A A TMP_39 
-TMP_40 TMP_44 P TMP_60 H2))))))))))))))))) in (A_ind TMP_1 TMP_34 TMP_61 
-a1))))).
+False])) I (AHead x0 x1) H4) in (False_ind P H5))))))) H1)))))) n H)))))) 
+(\lambda (a: A).(\lambda (_: ((\forall (a2: A).((leq g (AHead a a2) (asucc g 
+a)) \to (\forall (P: Prop).P))))).(\lambda (a0: A).(\lambda (_: ((\forall 
+(a2: A).((leq g (AHead a0 a2) (asucc g a0)) \to (\forall (P: 
+Prop).P))))).(\lambda (a2: A).(\lambda (H1: (leq g (AHead (AHead a a0) a2) 
+(AHead a (asucc g a0)))).(\lambda (P: Prop).(let H_x \def (leq_gen_head1 g 
+(AHead a a0) a2 (AHead a (asucc g a0)) H1) in (let H2 \def H_x in (ex3_2_ind 
+A A (\lambda (a3: A).(\lambda (_: A).(leq g (AHead a a0) a3))) (\lambda (_: 
+A).(\lambda (a4: A).(leq g a2 a4))) (\lambda (a3: A).(\lambda (a4: A).(eq A 
+(AHead a (asucc g a0)) (AHead a3 a4)))) P (\lambda (x0: A).(\lambda (x1: 
+A).(\lambda (H3: (leq g (AHead a a0) x0)).(\lambda (H4: (leq g a2 
+x1)).(\lambda (H5: (eq A (AHead a (asucc g a0)) (AHead x0 x1))).(let H6 \def 
+(f_equal A A (\lambda (e: A).(match e with [(ASort _ _) \Rightarrow a | 
+(AHead a3 _) \Rightarrow a3])) (AHead a (asucc g a0)) (AHead x0 x1) H5) in 
+((let H7 \def (f_equal A A (\lambda (e: A).(match e with [(ASort _ _) 
+\Rightarrow (asucc g a0) | (AHead _ a3) \Rightarrow a3])) (AHead a (asucc g 
+a0)) (AHead x0 x1) H5) in (\lambda (H8: (eq A a x0)).(let H9 \def (eq_ind_r A 
+x1 (\lambda (a3: A).(leq g a2 a3)) H4 (asucc g a0) H7) in (let H10 \def 
+(eq_ind_r A x0 (\lambda (a3: A).(leq g (AHead a a0) a3)) H3 a H8) in 
+(leq_ahead_false_1 g a a0 H10 P))))) H6))))))) H2)))))))))) a1)).
 
 theorem leq_asucc_false:
  \forall (g: G).(\forall (a: A).((leq g (asucc g a) a) \to (\forall (P: 
 Prop).P)))
 \def
- \lambda (g: G).(\lambda (a: A).(let TMP_1 \def (\lambda (a0: A).((leq g 
-(asucc g a0) a0) \to (\forall (P: Prop).P))) in (let TMP_103 \def (\lambda 
-(n: nat).(\lambda (n0: nat).(\lambda (H: (leq g (match n with [O \Rightarrow 
-(ASort O (next g n0)) | (S h) \Rightarrow (ASort h n0)]) (ASort n 
-n0))).(\lambda (P: Prop).(let TMP_2 \def (\lambda (n1: nat).((leq g (match n1 
-with [O \Rightarrow (ASort O (next g n0)) | (S h) \Rightarrow (ASort h n0)]) 
-(ASort n1 n0)) \to P)) in (let TMP_50 \def (\lambda (H0: (leq g (ASort O 
-(next g n0)) (ASort O n0))).(let TMP_3 \def (next g n0) in (let TMP_4 \def 
-(ASort O n0) in (let H_x \def (leq_gen_sort1 g O TMP_3 TMP_4 H0) in (let H1 
-\def H_x in (let TMP_10 \def (\lambda (n2: nat).(\lambda (h2: nat).(\lambda 
-(k: nat).(let TMP_5 \def (next g n0) in (let TMP_6 \def (ASort O TMP_5) in 
-(let TMP_7 \def (aplus g TMP_6 k) in (let TMP_8 \def (ASort h2 n2) in (let 
-TMP_9 \def (aplus g TMP_8 k) in (eq A TMP_7 TMP_9))))))))) in (let TMP_13 
-\def (\lambda (n2: nat).(\lambda (h2: nat).(\lambda (_: nat).(let TMP_11 \def 
-(ASort O n0) in (let TMP_12 \def (ASort h2 n2) in (eq A TMP_11 TMP_12)))))) 
-in (let TMP_49 \def (\lambda (x0: nat).(\lambda (x1: nat).(\lambda (x2: 
-nat).(\lambda (H2: (eq A (aplus g (ASort O (next g n0)) x2) (aplus g (ASort 
-x1 x0) x2))).(\lambda (H3: (eq A (ASort O n0) (ASort x1 x0))).(let TMP_14 
-\def (\lambda (e: A).(match e with [(ASort n1 _) \Rightarrow n1 | (AHead _ _) 
-\Rightarrow O])) in (let TMP_15 \def (ASort O n0) in (let TMP_16 \def (ASort 
-x1 x0) in (let H4 \def (f_equal A nat TMP_14 TMP_15 TMP_16 H3) in (let TMP_17 
-\def (\lambda (e: A).(match e with [(ASort _ n1) \Rightarrow n1 | (AHead _ _) 
-\Rightarrow n0])) in (let TMP_18 \def (ASort O n0) in (let TMP_19 \def (ASort 
-x1 x0) in (let H5 \def (f_equal A nat TMP_17 TMP_18 TMP_19 H3) in (let TMP_48 
-\def (\lambda (H6: (eq nat O x1)).(let TMP_25 \def (\lambda (n1: nat).(let 
-TMP_20 \def (next g n0) in (let TMP_21 \def (ASort O TMP_20) in (let TMP_22 
-\def (aplus g TMP_21 x2) in (let TMP_23 \def (ASort n1 x0) in (let TMP_24 
-\def (aplus g TMP_23 x2) in (eq A TMP_22 TMP_24))))))) in (let H7 \def 
-(eq_ind_r nat x1 TMP_25 H2 O H6) in (let TMP_31 \def (\lambda (n1: nat).(let 
-TMP_26 \def (next g n0) in (let TMP_27 \def (ASort O TMP_26) in (let TMP_28 
-\def (aplus g TMP_27 x2) in (let TMP_29 \def (ASort O n1) in (let TMP_30 \def 
-(aplus g TMP_29 x2) in (eq A TMP_28 TMP_30))))))) in (let H8 \def (eq_ind_r 
-nat x0 TMP_31 H7 n0 H5) in (let TMP_32 \def (next g n0) in (let TMP_33 \def 
-(ASort O TMP_32) in (let TMP_34 \def (aplus g TMP_33 x2) in (let TMP_37 \def 
-(\lambda (a0: A).(let TMP_35 \def (ASort O n0) in (let TMP_36 \def (aplus g 
-TMP_35 x2) in (eq A a0 TMP_36)))) in (let TMP_38 \def (ASort O n0) in (let 
-TMP_39 \def (S x2) in (let TMP_40 \def (aplus g TMP_38 TMP_39) in (let TMP_41 
-\def (aplus_sort_O_S_simpl g n0 x2) in (let H9 \def (eq_ind_r A TMP_34 TMP_37 
-H8 TMP_40 TMP_41) in (let TMP_42 \def (S x2) in (let TMP_43 \def (ASort O n0) 
-in (let H_y \def (aplus_inj g TMP_42 x2 TMP_43 H9) in (let TMP_44 \def 
-(\lambda (n1: nat).(le n1 x2)) in (let TMP_45 \def (le_n x2) in (let TMP_46 
-\def (S x2) in (let TMP_47 \def (eq_ind_r nat x2 TMP_44 TMP_45 TMP_46 H_y) in 
-(le_Sx_x x2 TMP_47 P)))))))))))))))))))))) in (TMP_48 H4))))))))))))))) in 
-(ex2_3_ind nat nat nat TMP_10 TMP_13 P TMP_49 H1))))))))) in (let TMP_102 
-\def (\lambda (n1: nat).(\lambda (_: (((leq g (match n1 with [O \Rightarrow 
+ \lambda (g: G).(\lambda (a: A).(A_ind (\lambda (a0: A).((leq g (asucc g a0) 
+a0) \to (\forall (P: Prop).P))) (\lambda (n: nat).(\lambda (n0: nat).(\lambda 
+(H: (leq g (match n with [O \Rightarrow (ASort O (next g n0)) | (S h) 
+\Rightarrow (ASort h n0)]) (ASort n n0))).(\lambda (P: Prop).(nat_ind 
+(\lambda (n1: nat).((leq g (match n1 with [O \Rightarrow (ASort O (next g 
+n0)) | (S h) \Rightarrow (ASort h n0)]) (ASort n1 n0)) \to P)) (\lambda (H0: 
+(leq g (ASort O (next g n0)) (ASort O n0))).(let H_x \def (leq_gen_sort1 g O 
+(next g n0) (ASort O n0) H0) in (let H1 \def H_x in (ex2_3_ind nat nat nat 
+(\lambda (n2: nat).(\lambda (h2: nat).(\lambda (k: nat).(eq A (aplus g (ASort 
+O (next g n0)) k) (aplus g (ASort h2 n2) k))))) (\lambda (n2: nat).(\lambda 
+(h2: nat).(\lambda (_: nat).(eq A (ASort O n0) (ASort h2 n2))))) P (\lambda 
+(x0: nat).(\lambda (x1: nat).(\lambda (x2: nat).(\lambda (H2: (eq A (aplus g 
+(ASort O (next g n0)) x2) (aplus g (ASort x1 x0) x2))).(\lambda (H3: (eq A 
+(ASort O n0) (ASort x1 x0))).(let H4 \def (f_equal A nat (\lambda (e: 
+A).(match e with [(ASort n1 _) \Rightarrow n1 | (AHead _ _) \Rightarrow O])) 
+(ASort O n0) (ASort x1 x0) H3) in ((let H5 \def (f_equal A nat (\lambda (e: 
+A).(match e with [(ASort _ n1) \Rightarrow n1 | (AHead _ _) \Rightarrow n0])) 
+(ASort O n0) (ASort x1 x0) H3) in (\lambda (H6: (eq nat O x1)).(let H7 \def 
+(eq_ind_r nat x1 (\lambda (n1: nat).(eq A (aplus g (ASort O (next g n0)) x2) 
+(aplus g (ASort n1 x0) x2))) H2 O H6) in (let H8 \def (eq_ind_r nat x0 
+(\lambda (n1: nat).(eq A (aplus g (ASort O (next g n0)) x2) (aplus g (ASort O 
+n1) x2))) H7 n0 H5) in (let H9 \def (eq_ind_r A (aplus g (ASort O (next g 
+n0)) x2) (\lambda (a0: A).(eq A a0 (aplus g (ASort O n0) x2))) H8 (aplus g 
+(ASort O n0) (S x2)) (aplus_sort_O_S_simpl g n0 x2)) in (let H_y \def 
+(aplus_inj g (S x2) x2 (ASort O n0) H9) in (le_Sx_x x2 (eq_ind_r nat x2 
+(\lambda (n1: nat).(le n1 x2)) (le_n x2) (S x2) H_y) P))))))) H4))))))) 
+H1)))) (\lambda (n1: nat).(\lambda (_: (((leq g (match n1 with [O \Rightarrow 
 (ASort O (next g n0)) | (S h) \Rightarrow (ASort h n0)]) (ASort n1 n0)) \to 
-P))).(\lambda (H0: (leq g (ASort n1 n0) (ASort (S n1) n0))).(let TMP_51 \def 
-(S n1) in (let TMP_52 \def (ASort TMP_51 n0) in (let H_x \def (leq_gen_sort1 
-g n1 n0 TMP_52 H0) in (let H1 \def H_x in (let TMP_57 \def (\lambda (n2: 
-nat).(\lambda (h2: nat).(\lambda (k: nat).(let TMP_53 \def (ASort n1 n0) in 
-(let TMP_54 \def (aplus g TMP_53 k) in (let TMP_55 \def (ASort h2 n2) in (let 
-TMP_56 \def (aplus g TMP_55 k) in (eq A TMP_54 TMP_56)))))))) in (let TMP_61 
-\def (\lambda (n2: nat).(\lambda (h2: nat).(\lambda (_: nat).(let TMP_58 \def 
-(S n1) in (let TMP_59 \def (ASort TMP_58 n0) in (let TMP_60 \def (ASort h2 
-n2) in (eq A TMP_59 TMP_60))))))) in (let TMP_101 \def (\lambda (x0: 
-nat).(\lambda (x1: nat).(\lambda (x2: nat).(\lambda (H2: (eq A (aplus g 
-(ASort n1 n0) x2) (aplus g (ASort x1 x0) x2))).(\lambda (H3: (eq A (ASort (S 
-n1) n0) (ASort x1 x0))).(let TMP_62 \def (\lambda (e: A).(match e with 
-[(ASort n2 _) \Rightarrow n2 | (AHead _ _) \Rightarrow (S n1)])) in (let 
-TMP_63 \def (S n1) in (let TMP_64 \def (ASort TMP_63 n0) in (let TMP_65 \def 
-(ASort x1 x0) in (let H4 \def (f_equal A nat TMP_62 TMP_64 TMP_65 H3) in (let 
-TMP_66 \def (\lambda (e: A).(match e with [(ASort _ n2) \Rightarrow n2 | 
-(AHead _ _) \Rightarrow n0])) in (let TMP_67 \def (S n1) in (let TMP_68 \def 
-(ASort TMP_67 n0) in (let TMP_69 \def (ASort x1 x0) in (let H5 \def (f_equal 
-A nat TMP_66 TMP_68 TMP_69 H3) in (let TMP_100 \def (\lambda (H6: (eq nat (S 
-n1) x1)).(let TMP_74 \def (\lambda (n2: nat).(let TMP_70 \def (ASort n1 n0) 
-in (let TMP_71 \def (aplus g TMP_70 x2) in (let TMP_72 \def (ASort n2 x0) in 
-(let TMP_73 \def (aplus g TMP_72 x2) in (eq A TMP_71 TMP_73)))))) in (let 
-TMP_75 \def (S n1) in (let H7 \def (eq_ind_r nat x1 TMP_74 H2 TMP_75 H6) in 
-(let TMP_81 \def (\lambda (n2: nat).(let TMP_76 \def (ASort n1 n0) in (let 
-TMP_77 \def (aplus g TMP_76 x2) in (let TMP_78 \def (S n1) in (let TMP_79 
-\def (ASort TMP_78 n2) in (let TMP_80 \def (aplus g TMP_79 x2) in (eq A 
-TMP_77 TMP_80))))))) in (let H8 \def (eq_ind_r nat x0 TMP_81 H7 n0 H5) in 
-(let TMP_82 \def (ASort n1 n0) in (let TMP_83 \def (aplus g TMP_82 x2) in 
-(let TMP_87 \def (\lambda (a0: A).(let TMP_84 \def (S n1) in (let TMP_85 \def 
-(ASort TMP_84 n0) in (let TMP_86 \def (aplus g TMP_85 x2) in (eq A a0 
-TMP_86))))) in (let TMP_88 \def (S n1) in (let TMP_89 \def (ASort TMP_88 n0) 
-in (let TMP_90 \def (S x2) in (let TMP_91 \def (aplus g TMP_89 TMP_90) in 
-(let TMP_92 \def (aplus_sort_S_S_simpl g n0 n1 x2) in (let H9 \def (eq_ind_r 
-A TMP_83 TMP_87 H8 TMP_91 TMP_92) in (let TMP_93 \def (S x2) in (let TMP_94 
-\def (S n1) in (let TMP_95 \def (ASort TMP_94 n0) in (let H_y \def (aplus_inj 
-g TMP_93 x2 TMP_95 H9) in (let TMP_96 \def (\lambda (n2: nat).(le n2 x2)) in 
-(let TMP_97 \def (le_n x2) in (let TMP_98 \def (S x2) in (let TMP_99 \def 
-(eq_ind_r nat x2 TMP_96 TMP_97 TMP_98 H_y) in (le_Sx_x x2 TMP_99 
-P)))))))))))))))))))))))) in (TMP_100 H4))))))))))))))))) in (ex2_3_ind nat 
-nat nat TMP_57 TMP_61 P TMP_101 H1))))))))))) in (nat_ind TMP_2 TMP_50 
-TMP_102 n H)))))))) in (let TMP_123 \def (\lambda (a0: A).(\lambda (_: (((leq 
-g (asucc g a0) a0) \to (\forall (P: Prop).P)))).(\lambda (a1: A).(\lambda 
-(H0: (((leq g (asucc g a1) a1) \to (\forall (P: Prop).P)))).(\lambda (H1: 
-(leq g (AHead a0 (asucc g a1)) (AHead a0 a1))).(\lambda (P: Prop).(let 
-TMP_104 \def (asucc g a1) in (let TMP_105 \def (AHead a0 a1) in (let H_x \def 
-(leq_gen_head1 g a0 TMP_104 TMP_105 H1) in (let H2 \def H_x in (let TMP_106 
-\def (\lambda (a3: A).(\lambda (_: A).(leq g a0 a3))) in (let TMP_108 \def 
-(\lambda (_: A).(\lambda (a4: A).(let TMP_107 \def (asucc g a1) in (leq g 
-TMP_107 a4)))) in (let TMP_111 \def (\lambda (a3: A).(\lambda (a4: A).(let 
-TMP_109 \def (AHead a0 a1) in (let TMP_110 \def (AHead a3 a4) in (eq A 
-TMP_109 TMP_110))))) in (let TMP_122 \def (\lambda (x0: A).(\lambda (x1: 
-A).(\lambda (H3: (leq g a0 x0)).(\lambda (H4: (leq g (asucc g a1) 
-x1)).(\lambda (H5: (eq A (AHead a0 a1) (AHead x0 x1))).(let TMP_112 \def 
-(\lambda (e: A).(match e with [(ASort _ _) \Rightarrow a0 | (AHead a2 _) 
-\Rightarrow a2])) in (let TMP_113 \def (AHead a0 a1) in (let TMP_114 \def 
-(AHead x0 x1) in (let H6 \def (f_equal A A TMP_112 TMP_113 TMP_114 H5) in 
-(let TMP_115 \def (\lambda (e: A).(match e with [(ASort _ _) \Rightarrow a1 | 
-(AHead _ a2) \Rightarrow a2])) in (let TMP_116 \def (AHead a0 a1) in (let 
-TMP_117 \def (AHead x0 x1) in (let H7 \def (f_equal A A TMP_115 TMP_116 
-TMP_117 H5) in (let TMP_121 \def (\lambda (H8: (eq A a0 x0)).(let TMP_119 
-\def (\lambda (a2: A).(let TMP_118 \def (asucc g a1) in (leq g TMP_118 a2))) 
-in (let H9 \def (eq_ind_r A x1 TMP_119 H4 a1 H7) in (let TMP_120 \def 
-(\lambda (a2: A).(leq g a0 a2)) in (let H10 \def (eq_ind_r A x0 TMP_120 H3 a0 
-H8) in (H0 H9 P)))))) in (TMP_121 H6))))))))))))))) in (ex3_2_ind A A TMP_106 
-TMP_108 TMP_111 P TMP_122 H2))))))))))))))) in (A_ind TMP_1 TMP_103 TMP_123 
-a))))).
+P))).(\lambda (H0: (leq g (ASort n1 n0) (ASort (S n1) n0))).(let H_x \def 
+(leq_gen_sort1 g n1 n0 (ASort (S n1) n0) H0) in (let H1 \def H_x in 
+(ex2_3_ind nat nat nat (\lambda (n2: nat).(\lambda (h2: nat).(\lambda (k: 
+nat).(eq A (aplus g (ASort n1 n0) k) (aplus g (ASort h2 n2) k))))) (\lambda 
+(n2: nat).(\lambda (h2: nat).(\lambda (_: nat).(eq A (ASort (S n1) n0) (ASort 
+h2 n2))))) P (\lambda (x0: nat).(\lambda (x1: nat).(\lambda (x2: 
+nat).(\lambda (H2: (eq A (aplus g (ASort n1 n0) x2) (aplus g (ASort x1 x0) 
+x2))).(\lambda (H3: (eq A (ASort (S n1) n0) (ASort x1 x0))).(let H4 \def 
+(f_equal A nat (\lambda (e: A).(match e with [(ASort n2 _) \Rightarrow n2 | 
+(AHead _ _) \Rightarrow (S n1)])) (ASort (S n1) n0) (ASort x1 x0) H3) in 
+((let H5 \def (f_equal A nat (\lambda (e: A).(match e with [(ASort _ n2) 
+\Rightarrow n2 | (AHead _ _) \Rightarrow n0])) (ASort (S n1) n0) (ASort x1 
+x0) H3) in (\lambda (H6: (eq nat (S n1) x1)).(let H7 \def (eq_ind_r nat x1 
+(\lambda (n2: nat).(eq A (aplus g (ASort n1 n0) x2) (aplus g (ASort n2 x0) 
+x2))) H2 (S n1) H6) in (let H8 \def (eq_ind_r nat x0 (\lambda (n2: nat).(eq A 
+(aplus g (ASort n1 n0) x2) (aplus g (ASort (S n1) n2) x2))) H7 n0 H5) in (let 
+H9 \def (eq_ind_r A (aplus g (ASort n1 n0) x2) (\lambda (a0: A).(eq A a0 
+(aplus g (ASort (S n1) n0) x2))) H8 (aplus g (ASort (S n1) n0) (S x2)) 
+(aplus_sort_S_S_simpl g n0 n1 x2)) in (let H_y \def (aplus_inj g (S x2) x2 
+(ASort (S n1) n0) H9) in (le_Sx_x x2 (eq_ind_r nat x2 (\lambda (n2: nat).(le 
+n2 x2)) (le_n x2) (S x2) H_y) P))))))) H4))))))) H1)))))) n H))))) (\lambda 
+(a0: A).(\lambda (_: (((leq g (asucc g a0) a0) \to (\forall (P: 
+Prop).P)))).(\lambda (a1: A).(\lambda (H0: (((leq g (asucc g a1) a1) \to 
+(\forall (P: Prop).P)))).(\lambda (H1: (leq g (AHead a0 (asucc g a1)) (AHead 
+a0 a1))).(\lambda (P: Prop).(let H_x \def (leq_gen_head1 g a0 (asucc g a1) 
+(AHead a0 a1) H1) in (let H2 \def H_x in (ex3_2_ind A A (\lambda (a3: 
+A).(\lambda (_: A).(leq g a0 a3))) (\lambda (_: A).(\lambda (a4: A).(leq g 
+(asucc g a1) a4))) (\lambda (a3: A).(\lambda (a4: A).(eq A (AHead a0 a1) 
+(AHead a3 a4)))) P (\lambda (x0: A).(\lambda (x1: A).(\lambda (H3: (leq g a0 
+x0)).(\lambda (H4: (leq g (asucc g a1) x1)).(\lambda (H5: (eq A (AHead a0 a1) 
+(AHead x0 x1))).(let H6 \def (f_equal A A (\lambda (e: A).(match e with 
+[(ASort _ _) \Rightarrow a0 | (AHead a2 _) \Rightarrow a2])) (AHead a0 a1) 
+(AHead x0 x1) H5) in ((let H7 \def (f_equal A A (\lambda (e: A).(match e with 
+[(ASort _ _) \Rightarrow a1 | (AHead _ a2) \Rightarrow a2])) (AHead a0 a1) 
+(AHead x0 x1) H5) in (\lambda (H8: (eq A a0 x0)).(let H9 \def (eq_ind_r A x1 
+(\lambda (a2: A).(leq g (asucc g a1) a2)) H4 a1 H7) in (let H10 \def 
+(eq_ind_r A x0 (\lambda (a2: A).(leq g a0 a2)) H3 a0 H8) in (H0 H9 P))))) 
+H6))))))) H2))))))))) a)).
 
index ccf43169f1012c986779e9173b9bf00384ca91cc..4077638fecbefbee57418fe89335997989003a60 100644 (file)
@@ -24,8 +24,8 @@ A).((leq g a1 a2) \to ((P a1 a2) \to (\forall (a3: A).(\forall (a4: A).((leq
 g a3 a4) \to ((P a3 a4) \to (P (AHead a1 a3) (AHead a2 a4))))))))))) (a: A) 
 (a0: A) (l: leq g a a0) on l: P a a0 \def match l with [(leq_sort h1 h2 n1 n2 
 k e) \Rightarrow (f h1 h2 n1 n2 k e) | (leq_head a1 a2 l0 a3 a4 l1) 
-\Rightarrow (let TMP_1 \def ((leq_ind g P f f0) a1 a2 l0) in (let TMP_2 \def 
-((leq_ind g P f f0) a3 a4 l1) in (f0 a1 a2 l0 TMP_1 a3 a4 l1 TMP_2)))].
+\Rightarrow (f0 a1 a2 l0 ((leq_ind g P f f0) a1 a2 l0) a3 a4 l1 ((leq_ind g P 
+f f0) a3 a4 l1))].
 
 theorem leq_gen_sort1:
  \forall (g: G).(\forall (h1: nat).(\forall (n1: nat).(\forall (a2: A).((leq 
@@ -35,81 +35,52 @@ k))))) (\lambda (n2: nat).(\lambda (h2: nat).(\lambda (_: nat).(eq A a2
 (ASort h2 n2))))))))))
 \def
  \lambda (g: G).(\lambda (h1: nat).(\lambda (n1: nat).(\lambda (a2: 
-A).(\lambda (H: (leq g (ASort h1 n1) a2)).(let TMP_1 \def (ASort h1 n1) in 
-(let TMP_2 \def (\lambda (a: A).(leq g a a2)) in (let TMP_9 \def (\lambda (a: 
-A).(let TMP_6 \def (\lambda (n2: nat).(\lambda (h2: nat).(\lambda (k: 
-nat).(let TMP_3 \def (aplus g a k) in (let TMP_4 \def (ASort h2 n2) in (let 
-TMP_5 \def (aplus g TMP_4 k) in (eq A TMP_3 TMP_5))))))) in (let TMP_8 \def 
-(\lambda (n2: nat).(\lambda (h2: nat).(\lambda (_: nat).(let TMP_7 \def 
-(ASort h2 n2) in (eq A a2 TMP_7))))) in (ex2_3 nat nat nat TMP_6 TMP_8)))) in 
-(let TMP_78 \def (\lambda (y: A).(\lambda (H0: (leq g y a2)).(let TMP_16 \def 
-(\lambda (a: A).(\lambda (a0: A).((eq A a (ASort h1 n1)) \to (let TMP_13 \def 
-(\lambda (n2: nat).(\lambda (h2: nat).(\lambda (k: nat).(let TMP_10 \def 
-(aplus g a k) in (let TMP_11 \def (ASort h2 n2) in (let TMP_12 \def (aplus g 
-TMP_11 k) in (eq A TMP_10 TMP_12))))))) in (let TMP_15 \def (\lambda (n2: 
-nat).(\lambda (h2: nat).(\lambda (_: nat).(let TMP_14 \def (ASort h2 n2) in 
-(eq A a0 TMP_14))))) in (ex2_3 nat nat nat TMP_13 TMP_15)))))) in (let TMP_64 
-\def (\lambda (h0: nat).(\lambda (h2: nat).(\lambda (n0: nat).(\lambda (n2: 
-nat).(\lambda (k: nat).(\lambda (H1: (eq A (aplus g (ASort h0 n0) k) (aplus g 
-(ASort h2 n2) k))).(\lambda (H2: (eq A (ASort h0 n0) (ASort h1 n1))).(let 
-TMP_17 \def (\lambda (e: A).(match e with [(ASort n _) \Rightarrow n | (AHead 
-_ _) \Rightarrow h0])) in (let TMP_18 \def (ASort h0 n0) in (let TMP_19 \def 
-(ASort h1 n1) in (let H3 \def (f_equal A nat TMP_17 TMP_18 TMP_19 H2) in (let 
-TMP_20 \def (\lambda (e: A).(match e with [(ASort _ n) \Rightarrow n | (AHead 
-_ _) \Rightarrow n0])) in (let TMP_21 \def (ASort h0 n0) in (let TMP_22 \def 
-(ASort h1 n1) in (let H4 \def (f_equal A nat TMP_20 TMP_21 TMP_22 H2) in (let 
-TMP_63 \def (\lambda (H5: (eq nat h0 h1)).(let TMP_27 \def (\lambda (n: 
-nat).(let TMP_23 \def (ASort h0 n) in (let TMP_24 \def (aplus g TMP_23 k) in 
-(let TMP_25 \def (ASort h2 n2) in (let TMP_26 \def (aplus g TMP_25 k) in (eq 
-A TMP_24 TMP_26)))))) in (let H6 \def (eq_ind nat n0 TMP_27 H1 n1 H4) in (let 
-TMP_36 \def (\lambda (n: nat).(let TMP_32 \def (\lambda (n3: nat).(\lambda 
-(h3: nat).(\lambda (k0: nat).(let TMP_28 \def (ASort h0 n) in (let TMP_29 
-\def (aplus g TMP_28 k0) in (let TMP_30 \def (ASort h3 n3) in (let TMP_31 
-\def (aplus g TMP_30 k0) in (eq A TMP_29 TMP_31)))))))) in (let TMP_35 \def 
-(\lambda (n3: nat).(\lambda (h3: nat).(\lambda (_: nat).(let TMP_33 \def 
-(ASort h2 n2) in (let TMP_34 \def (ASort h3 n3) in (eq A TMP_33 TMP_34)))))) 
-in (ex2_3 nat nat nat TMP_32 TMP_35)))) in (let TMP_41 \def (\lambda (n: 
-nat).(let TMP_37 \def (ASort n n1) in (let TMP_38 \def (aplus g TMP_37 k) in 
-(let TMP_39 \def (ASort h2 n2) in (let TMP_40 \def (aplus g TMP_39 k) in (eq 
-A TMP_38 TMP_40)))))) in (let H7 \def (eq_ind nat h0 TMP_41 H6 h1 H5) in (let 
-TMP_50 \def (\lambda (n: nat).(let TMP_46 \def (\lambda (n3: nat).(\lambda 
-(h3: nat).(\lambda (k0: nat).(let TMP_42 \def (ASort n n1) in (let TMP_43 
-\def (aplus g TMP_42 k0) in (let TMP_44 \def (ASort h3 n3) in (let TMP_45 
-\def (aplus g TMP_44 k0) in (eq A TMP_43 TMP_45)))))))) in (let TMP_49 \def 
-(\lambda (n3: nat).(\lambda (h3: nat).(\lambda (_: nat).(let TMP_47 \def 
-(ASort h2 n2) in (let TMP_48 \def (ASort h3 n3) in (eq A TMP_47 TMP_48)))))) 
-in (ex2_3 nat nat nat TMP_46 TMP_49)))) in (let TMP_55 \def (\lambda (n3: 
-nat).(\lambda (h3: nat).(\lambda (k0: nat).(let TMP_51 \def (ASort h1 n1) in 
-(let TMP_52 \def (aplus g TMP_51 k0) in (let TMP_53 \def (ASort h3 n3) in 
-(let TMP_54 \def (aplus g TMP_53 k0) in (eq A TMP_52 TMP_54)))))))) in (let 
-TMP_58 \def (\lambda (n3: nat).(\lambda (h3: nat).(\lambda (_: nat).(let 
-TMP_56 \def (ASort h2 n2) in (let TMP_57 \def (ASort h3 n3) in (eq A TMP_56 
-TMP_57)))))) in (let TMP_59 \def (ASort h2 n2) in (let TMP_60 \def 
-(refl_equal A TMP_59) in (let TMP_61 \def (ex2_3_intro nat nat nat TMP_55 
-TMP_58 n2 h2 k H7 TMP_60) in (let TMP_62 \def (eq_ind_r nat h1 TMP_50 TMP_61 
-h0 H5) in (eq_ind_r nat n1 TMP_36 TMP_62 n0 H4)))))))))))))) in (TMP_63 
-H3))))))))))))))))) in (let TMP_77 \def (\lambda (a1: A).(\lambda (a3: 
-A).(\lambda (_: (leq g a1 a3)).(\lambda (_: (((eq A a1 (ASort h1 n1)) \to 
+A).(\lambda (H: (leq g (ASort h1 n1) a2)).(insert_eq A (ASort h1 n1) (\lambda 
+(a: A).(leq g a a2)) (\lambda (a: A).(ex2_3 nat nat nat (\lambda (n2: 
+nat).(\lambda (h2: nat).(\lambda (k: nat).(eq A (aplus g a k) (aplus g (ASort 
+h2 n2) k))))) (\lambda (n2: nat).(\lambda (h2: nat).(\lambda (_: nat).(eq A 
+a2 (ASort h2 n2))))))) (\lambda (y: A).(\lambda (H0: (leq g y a2)).(leq_ind g 
+(\lambda (a: A).(\lambda (a0: A).((eq A a (ASort h1 n1)) \to (ex2_3 nat nat 
+nat (\lambda (n2: nat).(\lambda (h2: nat).(\lambda (k: nat).(eq A (aplus g a 
+k) (aplus g (ASort h2 n2) k))))) (\lambda (n2: nat).(\lambda (h2: 
+nat).(\lambda (_: nat).(eq A a0 (ASort h2 n2))))))))) (\lambda (h0: 
+nat).(\lambda (h2: nat).(\lambda (n0: nat).(\lambda (n2: nat).(\lambda (k: 
+nat).(\lambda (H1: (eq A (aplus g (ASort h0 n0) k) (aplus g (ASort h2 n2) 
+k))).(\lambda (H2: (eq A (ASort h0 n0) (ASort h1 n1))).(let H3 \def (f_equal 
+A nat (\lambda (e: A).(match e with [(ASort n _) \Rightarrow n | (AHead _ _) 
+\Rightarrow h0])) (ASort h0 n0) (ASort h1 n1) H2) in ((let H4 \def (f_equal A 
+nat (\lambda (e: A).(match e with [(ASort _ n) \Rightarrow n | (AHead _ _) 
+\Rightarrow n0])) (ASort h0 n0) (ASort h1 n1) H2) in (\lambda (H5: (eq nat h0 
+h1)).(let H6 \def (eq_ind nat n0 (\lambda (n: nat).(eq A (aplus g (ASort h0 
+n) k) (aplus g (ASort h2 n2) k))) H1 n1 H4) in (eq_ind_r nat n1 (\lambda (n: 
+nat).(ex2_3 nat nat nat (\lambda (n3: nat).(\lambda (h3: nat).(\lambda (k0: 
+nat).(eq A (aplus g (ASort h0 n) k0) (aplus g (ASort h3 n3) k0))))) (\lambda 
+(n3: nat).(\lambda (h3: nat).(\lambda (_: nat).(eq A (ASort h2 n2) (ASort h3 
+n3))))))) (let H7 \def (eq_ind nat h0 (\lambda (n: nat).(eq A (aplus g (ASort 
+n n1) k) (aplus g (ASort h2 n2) k))) H6 h1 H5) in (eq_ind_r nat h1 (\lambda 
+(n: nat).(ex2_3 nat nat nat (\lambda (n3: nat).(\lambda (h3: nat).(\lambda 
+(k0: nat).(eq A (aplus g (ASort n n1) k0) (aplus g (ASort h3 n3) k0))))) 
+(\lambda (n3: nat).(\lambda (h3: nat).(\lambda (_: nat).(eq A (ASort h2 n2) 
+(ASort h3 n3))))))) (ex2_3_intro nat nat nat (\lambda (n3: nat).(\lambda (h3: 
+nat).(\lambda (k0: nat).(eq A (aplus g (ASort h1 n1) k0) (aplus g (ASort h3 
+n3) k0))))) (\lambda (n3: nat).(\lambda (h3: nat).(\lambda (_: nat).(eq A 
+(ASort h2 n2) (ASort h3 n3))))) n2 h2 k H7 (refl_equal A (ASort h2 n2))) h0 
+H5)) n0 H4)))) H3))))))))) (\lambda (a1: A).(\lambda (a3: A).(\lambda (_: 
+(leq g a1 a3)).(\lambda (_: (((eq A a1 (ASort h1 n1)) \to (ex2_3 nat nat nat 
+(\lambda (n2: nat).(\lambda (h2: nat).(\lambda (k: nat).(eq A (aplus g a1 k) 
+(aplus g (ASort h2 n2) k))))) (\lambda (n2: nat).(\lambda (h2: nat).(\lambda 
+(_: nat).(eq A a3 (ASort h2 n2))))))))).(\lambda (a4: A).(\lambda (a5: 
+A).(\lambda (_: (leq g a4 a5)).(\lambda (_: (((eq A a4 (ASort h1 n1)) \to 
 (ex2_3 nat nat nat (\lambda (n2: nat).(\lambda (h2: nat).(\lambda (k: 
-nat).(eq A (aplus g a1 k) (aplus g (ASort h2 n2) k))))) (\lambda (n2: 
-nat).(\lambda (h2: nat).(\lambda (_: nat).(eq A a3 (ASort h2 
-n2))))))))).(\lambda (a4: A).(\lambda (a5: A).(\lambda (_: (leq g a4 
-a5)).(\lambda (_: (((eq A a4 (ASort h1 n1)) \to (ex2_3 nat nat nat (\lambda 
-(n2: nat).(\lambda (h2: nat).(\lambda (k: nat).(eq A (aplus g a4 k) (aplus g 
-(ASort h2 n2) k))))) (\lambda (n2: nat).(\lambda (h2: nat).(\lambda (_: 
-nat).(eq A a5 (ASort h2 n2))))))))).(\lambda (H5: (eq A (AHead a1 a4) (ASort 
-h1 n1))).(let TMP_65 \def (AHead a1 a4) in (let TMP_66 \def (\lambda (ee: 
-A).(match ee with [(ASort _ _) \Rightarrow False | (AHead _ _) \Rightarrow 
-True])) in (let TMP_67 \def (ASort h1 n1) in (let H6 \def (eq_ind A TMP_65 
-TMP_66 I TMP_67 H5) in (let TMP_72 \def (\lambda (n2: nat).(\lambda (h2: 
-nat).(\lambda (k: nat).(let TMP_68 \def (AHead a1 a4) in (let TMP_69 \def 
-(aplus g TMP_68 k) in (let TMP_70 \def (ASort h2 n2) in (let TMP_71 \def 
-(aplus g TMP_70 k) in (eq A TMP_69 TMP_71)))))))) in (let TMP_75 \def 
-(\lambda (n2: nat).(\lambda (h2: nat).(\lambda (_: nat).(let TMP_73 \def 
-(AHead a3 a5) in (let TMP_74 \def (ASort h2 n2) in (eq A TMP_73 TMP_74)))))) 
-in (let TMP_76 \def (ex2_3 nat nat nat TMP_72 TMP_75) in (False_ind TMP_76 
-H6))))))))))))))))) in (leq_ind g TMP_16 TMP_64 TMP_77 y a2 H0)))))) in 
-(insert_eq A TMP_1 TMP_2 TMP_9 TMP_78 H))))))))).
+nat).(eq A (aplus g a4 k) (aplus g (ASort h2 n2) k))))) (\lambda (n2: 
+nat).(\lambda (h2: nat).(\lambda (_: nat).(eq A a5 (ASort h2 
+n2))))))))).(\lambda (H5: (eq A (AHead a1 a4) (ASort h1 n1))).(let H6 \def 
+(eq_ind A (AHead a1 a4) (\lambda (ee: A).(match ee with [(ASort _ _) 
+\Rightarrow False | (AHead _ _) \Rightarrow True])) I (ASort h1 n1) H5) in 
+(False_ind (ex2_3 nat nat nat (\lambda (n2: nat).(\lambda (h2: nat).(\lambda 
+(k: nat).(eq A (aplus g (AHead a1 a4) k) (aplus g (ASort h2 n2) k))))) 
+(\lambda (n2: nat).(\lambda (h2: nat).(\lambda (_: nat).(eq A (AHead a3 a5) 
+(ASort h2 n2)))))) H6))))))))))) y a2 H0))) H))))).
 
 theorem leq_gen_head1:
  \forall (g: G).(\forall (a1: A).(\forall (a2: A).(\forall (a: A).((leq g 
@@ -118,29 +89,21 @@ a3))) (\lambda (_: A).(\lambda (a4: A).(leq g a2 a4))) (\lambda (a3:
 A).(\lambda (a4: A).(eq A a (AHead a3 a4)))))))))
 \def
  \lambda (g: G).(\lambda (a1: A).(\lambda (a2: A).(\lambda (a: A).(\lambda 
-(H: (leq g (AHead a1 a2) a)).(let TMP_1 \def (AHead a1 a2) in (let TMP_2 \def 
-(\lambda (a0: A).(leq g a0 a)) in (let TMP_7 \def (\lambda (_: A).(let TMP_3 
-\def (\lambda (a3: A).(\lambda (_: A).(leq g a1 a3))) in (let TMP_4 \def 
-(\lambda (_: A).(\lambda (a4: A).(leq g a2 a4))) in (let TMP_6 \def (\lambda 
-(a3: A).(\lambda (a4: A).(let TMP_5 \def (AHead a3 a4) in (eq A a TMP_5)))) 
-in (ex3_2 A A TMP_3 TMP_4 TMP_6))))) in (let TMP_50 \def (\lambda (y: 
-A).(\lambda (H0: (leq g y a)).(let TMP_12 \def (\lambda (a0: A).(\lambda (a3: 
-A).((eq A a0 (AHead a1 a2)) \to (let TMP_8 \def (\lambda (a4: A).(\lambda (_: 
-A).(leq g a1 a4))) in (let TMP_9 \def (\lambda (_: A).(\lambda (a5: A).(leq g 
-a2 a5))) in (let TMP_11 \def (\lambda (a4: A).(\lambda (a5: A).(let TMP_10 
-\def (AHead a4 a5) in (eq A a3 TMP_10)))) in (ex3_2 A A TMP_8 TMP_9 
-TMP_11))))))) in (let TMP_22 \def (\lambda (h1: nat).(\lambda (h2: 
-nat).(\lambda (n1: nat).(\lambda (n2: nat).(\lambda (k: nat).(\lambda (_: (eq 
-A (aplus g (ASort h1 n1) k) (aplus g (ASort h2 n2) k))).(\lambda (H2: (eq A 
-(ASort h1 n1) (AHead a1 a2))).(let TMP_13 \def (ASort h1 n1) in (let TMP_14 
-\def (\lambda (ee: A).(match ee with [(ASort _ _) \Rightarrow True | (AHead _ 
-_) \Rightarrow False])) in (let TMP_15 \def (AHead a1 a2) in (let H3 \def 
-(eq_ind A TMP_13 TMP_14 I TMP_15 H2) in (let TMP_16 \def (\lambda (a3: 
-A).(\lambda (_: A).(leq g a1 a3))) in (let TMP_17 \def (\lambda (_: 
-A).(\lambda (a4: A).(leq g a2 a4))) in (let TMP_20 \def (\lambda (a3: 
-A).(\lambda (a4: A).(let TMP_18 \def (ASort h2 n2) in (let TMP_19 \def (AHead 
-a3 a4) in (eq A TMP_18 TMP_19))))) in (let TMP_21 \def (ex3_2 A A TMP_16 
-TMP_17 TMP_20) in (False_ind TMP_21 H3)))))))))))))))) in (let TMP_49 \def 
+(H: (leq g (AHead a1 a2) a)).(insert_eq A (AHead a1 a2) (\lambda (a0: A).(leq 
+g a0 a)) (\lambda (_: A).(ex3_2 A A (\lambda (a3: A).(\lambda (_: A).(leq g 
+a1 a3))) (\lambda (_: A).(\lambda (a4: A).(leq g a2 a4))) (\lambda (a3: 
+A).(\lambda (a4: A).(eq A a (AHead a3 a4)))))) (\lambda (y: A).(\lambda (H0: 
+(leq g y a)).(leq_ind g (\lambda (a0: A).(\lambda (a3: A).((eq A a0 (AHead a1 
+a2)) \to (ex3_2 A A (\lambda (a4: A).(\lambda (_: A).(leq g a1 a4))) (\lambda 
+(_: A).(\lambda (a5: A).(leq g a2 a5))) (\lambda (a4: A).(\lambda (a5: A).(eq 
+A a3 (AHead a4 a5)))))))) (\lambda (h1: nat).(\lambda (h2: nat).(\lambda (n1: 
+nat).(\lambda (n2: nat).(\lambda (k: nat).(\lambda (_: (eq A (aplus g (ASort 
+h1 n1) k) (aplus g (ASort h2 n2) k))).(\lambda (H2: (eq A (ASort h1 n1) 
+(AHead a1 a2))).(let H3 \def (eq_ind A (ASort h1 n1) (\lambda (ee: A).(match 
+ee with [(ASort _ _) \Rightarrow True | (AHead _ _) \Rightarrow False])) I 
+(AHead a1 a2) H2) in (False_ind (ex3_2 A A (\lambda (a3: A).(\lambda (_: 
+A).(leq g a1 a3))) (\lambda (_: A).(\lambda (a4: A).(leq g a2 a4))) (\lambda 
+(a3: A).(\lambda (a4: A).(eq A (ASort h2 n2) (AHead a3 a4))))) H3))))))))) 
 (\lambda (a0: A).(\lambda (a3: A).(\lambda (H1: (leq g a0 a3)).(\lambda (H2: 
 (((eq A a0 (AHead a1 a2)) \to (ex3_2 A A (\lambda (a4: A).(\lambda (_: 
 A).(leq g a1 a4))) (\lambda (_: A).(\lambda (a5: A).(leq g a2 a5))) (\lambda 
@@ -149,34 +112,23 @@ A).(\lambda (a5: A).(\lambda (H3: (leq g a4 a5)).(\lambda (H4: (((eq A a4
 (AHead a1 a2)) \to (ex3_2 A A (\lambda (a6: A).(\lambda (_: A).(leq g a1 
 a6))) (\lambda (_: A).(\lambda (a7: A).(leq g a2 a7))) (\lambda (a6: 
 A).(\lambda (a7: A).(eq A a5 (AHead a6 a7)))))))).(\lambda (H5: (eq A (AHead 
-a0 a4) (AHead a1 a2))).(let TMP_23 \def (\lambda (e: A).(match e with [(ASort 
-_ _) \Rightarrow a0 | (AHead a6 _) \Rightarrow a6])) in (let TMP_24 \def 
-(AHead a0 a4) in (let TMP_25 \def (AHead a1 a2) in (let H6 \def (f_equal A A 
-TMP_23 TMP_24 TMP_25 H5) in (let TMP_26 \def (\lambda (e: A).(match e with 
-[(ASort _ _) \Rightarrow a4 | (AHead _ a6) \Rightarrow a6])) in (let TMP_27 
-\def (AHead a0 a4) in (let TMP_28 \def (AHead a1 a2) in (let H7 \def (f_equal 
-A A TMP_26 TMP_27 TMP_28 H5) in (let TMP_48 \def (\lambda (H8: (eq A a0 
-a1)).(let TMP_33 \def (\lambda (a6: A).((eq A a6 (AHead a1 a2)) \to (let 
-TMP_29 \def (\lambda (a7: A).(\lambda (_: A).(leq g a1 a7))) in (let TMP_30 
-\def (\lambda (_: A).(\lambda (a8: A).(leq g a2 a8))) in (let TMP_32 \def 
-(\lambda (a7: A).(\lambda (a8: A).(let TMP_31 \def (AHead a7 a8) in (eq A a5 
-TMP_31)))) in (ex3_2 A A TMP_29 TMP_30 TMP_32)))))) in (let H9 \def (eq_ind A 
-a4 TMP_33 H4 a2 H7) in (let TMP_34 \def (\lambda (a6: A).(leq g a6 a5)) in 
-(let H10 \def (eq_ind A a4 TMP_34 H3 a2 H7) in (let TMP_39 \def (\lambda (a6: 
-A).((eq A a6 (AHead a1 a2)) \to (let TMP_35 \def (\lambda (a7: A).(\lambda 
-(_: A).(leq g a1 a7))) in (let TMP_36 \def (\lambda (_: A).(\lambda (a8: 
-A).(leq g a2 a8))) in (let TMP_38 \def (\lambda (a7: A).(\lambda (a8: A).(let 
-TMP_37 \def (AHead a7 a8) in (eq A a3 TMP_37)))) in (ex3_2 A A TMP_35 TMP_36 
-TMP_38)))))) in (let H11 \def (eq_ind A a0 TMP_39 H2 a1 H8) in (let TMP_40 
-\def (\lambda (a6: A).(leq g a6 a3)) in (let H12 \def (eq_ind A a0 TMP_40 H1 
-a1 H8) in (let TMP_41 \def (\lambda (a6: A).(\lambda (_: A).(leq g a1 a6))) 
-in (let TMP_42 \def (\lambda (_: A).(\lambda (a7: A).(leq g a2 a7))) in (let 
-TMP_45 \def (\lambda (a6: A).(\lambda (a7: A).(let TMP_43 \def (AHead a3 a5) 
-in (let TMP_44 \def (AHead a6 a7) in (eq A TMP_43 TMP_44))))) in (let TMP_46 
-\def (AHead a3 a5) in (let TMP_47 \def (refl_equal A TMP_46) in (ex3_2_intro 
-A A TMP_41 TMP_42 TMP_45 a3 a5 H12 H10 TMP_47))))))))))))))) in (TMP_48 
-H6))))))))))))))))))) in (leq_ind g TMP_12 TMP_22 TMP_49 y a H0)))))) in 
-(insert_eq A TMP_1 TMP_2 TMP_7 TMP_50 H))))))))).
+a0 a4) (AHead a1 a2))).(let H6 \def (f_equal A A (\lambda (e: A).(match e 
+with [(ASort _ _) \Rightarrow a0 | (AHead a6 _) \Rightarrow a6])) (AHead a0 
+a4) (AHead a1 a2) H5) in ((let H7 \def (f_equal A A (\lambda (e: A).(match e 
+with [(ASort _ _) \Rightarrow a4 | (AHead _ a6) \Rightarrow a6])) (AHead a0 
+a4) (AHead a1 a2) H5) in (\lambda (H8: (eq A a0 a1)).(let H9 \def (eq_ind A 
+a4 (\lambda (a6: A).((eq A a6 (AHead a1 a2)) \to (ex3_2 A A (\lambda (a7: 
+A).(\lambda (_: A).(leq g a1 a7))) (\lambda (_: A).(\lambda (a8: A).(leq g a2 
+a8))) (\lambda (a7: A).(\lambda (a8: A).(eq A a5 (AHead a7 a8))))))) H4 a2 
+H7) in (let H10 \def (eq_ind A a4 (\lambda (a6: A).(leq g a6 a5)) H3 a2 H7) 
+in (let H11 \def (eq_ind A a0 (\lambda (a6: A).((eq A a6 (AHead a1 a2)) \to 
+(ex3_2 A A (\lambda (a7: A).(\lambda (_: A).(leq g a1 a7))) (\lambda (_: 
+A).(\lambda (a8: A).(leq g a2 a8))) (\lambda (a7: A).(\lambda (a8: A).(eq A 
+a3 (AHead a7 a8))))))) H2 a1 H8) in (let H12 \def (eq_ind A a0 (\lambda (a6: 
+A).(leq g a6 a3)) H1 a1 H8) in (ex3_2_intro A A (\lambda (a6: A).(\lambda (_: 
+A).(leq g a1 a6))) (\lambda (_: A).(\lambda (a7: A).(leq g a2 a7))) (\lambda 
+(a6: A).(\lambda (a7: A).(eq A (AHead a3 a5) (AHead a6 a7)))) a3 a5 H12 H10 
+(refl_equal A (AHead a3 a5))))))))) H6))))))))))) y a H0))) H))))).
 
 theorem leq_gen_sort2:
  \forall (g: G).(\forall (h1: nat).(\forall (n1: nat).(\forall (a2: A).((leq 
@@ -186,81 +138,52 @@ k))))) (\lambda (n2: nat).(\lambda (h2: nat).(\lambda (_: nat).(eq A a2
 (ASort h2 n2))))))))))
 \def
  \lambda (g: G).(\lambda (h1: nat).(\lambda (n1: nat).(\lambda (a2: 
-A).(\lambda (H: (leq g a2 (ASort h1 n1))).(let TMP_1 \def (ASort h1 n1) in 
-(let TMP_2 \def (\lambda (a: A).(leq g a2 a)) in (let TMP_9 \def (\lambda (a: 
-A).(let TMP_6 \def (\lambda (n2: nat).(\lambda (h2: nat).(\lambda (k: 
-nat).(let TMP_3 \def (ASort h2 n2) in (let TMP_4 \def (aplus g TMP_3 k) in 
-(let TMP_5 \def (aplus g a k) in (eq A TMP_4 TMP_5))))))) in (let TMP_8 \def 
-(\lambda (n2: nat).(\lambda (h2: nat).(\lambda (_: nat).(let TMP_7 \def 
-(ASort h2 n2) in (eq A a2 TMP_7))))) in (ex2_3 nat nat nat TMP_6 TMP_8)))) in 
-(let TMP_78 \def (\lambda (y: A).(\lambda (H0: (leq g a2 y)).(let TMP_16 \def 
-(\lambda (a: A).(\lambda (a0: A).((eq A a0 (ASort h1 n1)) \to (let TMP_13 
-\def (\lambda (n2: nat).(\lambda (h2: nat).(\lambda (k: nat).(let TMP_10 \def 
-(ASort h2 n2) in (let TMP_11 \def (aplus g TMP_10 k) in (let TMP_12 \def 
-(aplus g a0 k) in (eq A TMP_11 TMP_12))))))) in (let TMP_15 \def (\lambda 
-(n2: nat).(\lambda (h2: nat).(\lambda (_: nat).(let TMP_14 \def (ASort h2 n2) 
-in (eq A a TMP_14))))) in (ex2_3 nat nat nat TMP_13 TMP_15)))))) in (let 
-TMP_64 \def (\lambda (h0: nat).(\lambda (h2: nat).(\lambda (n0: nat).(\lambda 
-(n2: nat).(\lambda (k: nat).(\lambda (H1: (eq A (aplus g (ASort h0 n0) k) 
-(aplus g (ASort h2 n2) k))).(\lambda (H2: (eq A (ASort h2 n2) (ASort h1 
-n1))).(let TMP_17 \def (\lambda (e: A).(match e with [(ASort n _) \Rightarrow 
-n | (AHead _ _) \Rightarrow h2])) in (let TMP_18 \def (ASort h2 n2) in (let 
-TMP_19 \def (ASort h1 n1) in (let H3 \def (f_equal A nat TMP_17 TMP_18 TMP_19 
-H2) in (let TMP_20 \def (\lambda (e: A).(match e with [(ASort _ n) 
-\Rightarrow n | (AHead _ _) \Rightarrow n2])) in (let TMP_21 \def (ASort h2 
-n2) in (let TMP_22 \def (ASort h1 n1) in (let H4 \def (f_equal A nat TMP_20 
-TMP_21 TMP_22 H2) in (let TMP_63 \def (\lambda (H5: (eq nat h2 h1)).(let 
-TMP_27 \def (\lambda (n: nat).(let TMP_23 \def (ASort h0 n0) in (let TMP_24 
-\def (aplus g TMP_23 k) in (let TMP_25 \def (ASort h2 n) in (let TMP_26 \def 
-(aplus g TMP_25 k) in (eq A TMP_24 TMP_26)))))) in (let H6 \def (eq_ind nat 
-n2 TMP_27 H1 n1 H4) in (let TMP_36 \def (\lambda (n: nat).(let TMP_32 \def 
-(\lambda (n3: nat).(\lambda (h3: nat).(\lambda (k0: nat).(let TMP_28 \def 
-(ASort h3 n3) in (let TMP_29 \def (aplus g TMP_28 k0) in (let TMP_30 \def 
-(ASort h2 n) in (let TMP_31 \def (aplus g TMP_30 k0) in (eq A TMP_29 
-TMP_31)))))))) in (let TMP_35 \def (\lambda (n3: nat).(\lambda (h3: 
-nat).(\lambda (_: nat).(let TMP_33 \def (ASort h0 n0) in (let TMP_34 \def 
-(ASort h3 n3) in (eq A TMP_33 TMP_34)))))) in (ex2_3 nat nat nat TMP_32 
-TMP_35)))) in (let TMP_41 \def (\lambda (n: nat).(let TMP_37 \def (ASort h0 
-n0) in (let TMP_38 \def (aplus g TMP_37 k) in (let TMP_39 \def (ASort n n1) 
-in (let TMP_40 \def (aplus g TMP_39 k) in (eq A TMP_38 TMP_40)))))) in (let 
-H7 \def (eq_ind nat h2 TMP_41 H6 h1 H5) in (let TMP_50 \def (\lambda (n: 
-nat).(let TMP_46 \def (\lambda (n3: nat).(\lambda (h3: nat).(\lambda (k0: 
-nat).(let TMP_42 \def (ASort h3 n3) in (let TMP_43 \def (aplus g TMP_42 k0) 
-in (let TMP_44 \def (ASort n n1) in (let TMP_45 \def (aplus g TMP_44 k0) in 
-(eq A TMP_43 TMP_45)))))))) in (let TMP_49 \def (\lambda (n3: nat).(\lambda 
-(h3: nat).(\lambda (_: nat).(let TMP_47 \def (ASort h0 n0) in (let TMP_48 
-\def (ASort h3 n3) in (eq A TMP_47 TMP_48)))))) in (ex2_3 nat nat nat TMP_46 
-TMP_49)))) in (let TMP_55 \def (\lambda (n3: nat).(\lambda (h3: nat).(\lambda 
-(k0: nat).(let TMP_51 \def (ASort h3 n3) in (let TMP_52 \def (aplus g TMP_51 
-k0) in (let TMP_53 \def (ASort h1 n1) in (let TMP_54 \def (aplus g TMP_53 k0) 
-in (eq A TMP_52 TMP_54)))))))) in (let TMP_58 \def (\lambda (n3: 
-nat).(\lambda (h3: nat).(\lambda (_: nat).(let TMP_56 \def (ASort h0 n0) in 
-(let TMP_57 \def (ASort h3 n3) in (eq A TMP_56 TMP_57)))))) in (let TMP_59 
-\def (ASort h0 n0) in (let TMP_60 \def (refl_equal A TMP_59) in (let TMP_61 
-\def (ex2_3_intro nat nat nat TMP_55 TMP_58 n0 h0 k H7 TMP_60) in (let TMP_62 
-\def (eq_ind_r nat h1 TMP_50 TMP_61 h2 H5) in (eq_ind_r nat n1 TMP_36 TMP_62 
-n2 H4)))))))))))))) in (TMP_63 H3))))))))))))))))) in (let TMP_77 \def 
-(\lambda (a1: A).(\lambda (a3: A).(\lambda (_: (leq g a1 a3)).(\lambda (_: 
-(((eq A a3 (ASort h1 n1)) \to (ex2_3 nat nat nat (\lambda (n2: nat).(\lambda 
-(h2: nat).(\lambda (k: nat).(eq A (aplus g (ASort h2 n2) k) (aplus g a3 
-k))))) (\lambda (n2: nat).(\lambda (h2: nat).(\lambda (_: nat).(eq A a1 
-(ASort h2 n2))))))))).(\lambda (a4: A).(\lambda (a5: A).(\lambda (_: (leq g 
-a4 a5)).(\lambda (_: (((eq A a5 (ASort h1 n1)) \to (ex2_3 nat nat nat 
+A).(\lambda (H: (leq g a2 (ASort h1 n1))).(insert_eq A (ASort h1 n1) (\lambda 
+(a: A).(leq g a2 a)) (\lambda (a: A).(ex2_3 nat nat nat (\lambda (n2: 
+nat).(\lambda (h2: nat).(\lambda (k: nat).(eq A (aplus g (ASort h2 n2) k) 
+(aplus g a k))))) (\lambda (n2: nat).(\lambda (h2: nat).(\lambda (_: nat).(eq 
+A a2 (ASort h2 n2))))))) (\lambda (y: A).(\lambda (H0: (leq g a2 y)).(leq_ind 
+g (\lambda (a: A).(\lambda (a0: A).((eq A a0 (ASort h1 n1)) \to (ex2_3 nat 
+nat nat (\lambda (n2: nat).(\lambda (h2: nat).(\lambda (k: nat).(eq A (aplus 
+g (ASort h2 n2) k) (aplus g a0 k))))) (\lambda (n2: nat).(\lambda (h2: 
+nat).(\lambda (_: nat).(eq A a (ASort h2 n2))))))))) (\lambda (h0: 
+nat).(\lambda (h2: nat).(\lambda (n0: nat).(\lambda (n2: nat).(\lambda (k: 
+nat).(\lambda (H1: (eq A (aplus g (ASort h0 n0) k) (aplus g (ASort h2 n2) 
+k))).(\lambda (H2: (eq A (ASort h2 n2) (ASort h1 n1))).(let H3 \def (f_equal 
+A nat (\lambda (e: A).(match e with [(ASort n _) \Rightarrow n | (AHead _ _) 
+\Rightarrow h2])) (ASort h2 n2) (ASort h1 n1) H2) in ((let H4 \def (f_equal A 
+nat (\lambda (e: A).(match e with [(ASort _ n) \Rightarrow n | (AHead _ _) 
+\Rightarrow n2])) (ASort h2 n2) (ASort h1 n1) H2) in (\lambda (H5: (eq nat h2 
+h1)).(let H6 \def (eq_ind nat n2 (\lambda (n: nat).(eq A (aplus g (ASort h0 
+n0) k) (aplus g (ASort h2 n) k))) H1 n1 H4) in (eq_ind_r nat n1 (\lambda (n: 
+nat).(ex2_3 nat nat nat (\lambda (n3: nat).(\lambda (h3: nat).(\lambda (k0: 
+nat).(eq A (aplus g (ASort h3 n3) k0) (aplus g (ASort h2 n) k0))))) (\lambda 
+(n3: nat).(\lambda (h3: nat).(\lambda (_: nat).(eq A (ASort h0 n0) (ASort h3 
+n3))))))) (let H7 \def (eq_ind nat h2 (\lambda (n: nat).(eq A (aplus g (ASort 
+h0 n0) k) (aplus g (ASort n n1) k))) H6 h1 H5) in (eq_ind_r nat h1 (\lambda 
+(n: nat).(ex2_3 nat nat nat (\lambda (n3: nat).(\lambda (h3: nat).(\lambda 
+(k0: nat).(eq A (aplus g (ASort h3 n3) k0) (aplus g (ASort n n1) k0))))) 
+(\lambda (n3: nat).(\lambda (h3: nat).(\lambda (_: nat).(eq A (ASort h0 n0) 
+(ASort h3 n3))))))) (ex2_3_intro nat nat nat (\lambda (n3: nat).(\lambda (h3: 
+nat).(\lambda (k0: nat).(eq A (aplus g (ASort h3 n3) k0) (aplus g (ASort h1 
+n1) k0))))) (\lambda (n3: nat).(\lambda (h3: nat).(\lambda (_: nat).(eq A 
+(ASort h0 n0) (ASort h3 n3))))) n0 h0 k H7 (refl_equal A (ASort h0 n0))) h2 
+H5)) n2 H4)))) H3))))))))) (\lambda (a1: A).(\lambda (a3: A).(\lambda (_: 
+(leq g a1 a3)).(\lambda (_: (((eq A a3 (ASort h1 n1)) \to (ex2_3 nat nat nat 
 (\lambda (n2: nat).(\lambda (h2: nat).(\lambda (k: nat).(eq A (aplus g (ASort 
-h2 n2) k) (aplus g a5 k))))) (\lambda (n2: nat).(\lambda (h2: nat).(\lambda 
-(_: nat).(eq A a4 (ASort h2 n2))))))))).(\lambda (H5: (eq A (AHead a3 a5) 
-(ASort h1 n1))).(let TMP_65 \def (AHead a3 a5) in (let TMP_66 \def (\lambda 
-(ee: A).(match ee with [(ASort _ _) \Rightarrow False | (AHead _ _) 
-\Rightarrow True])) in (let TMP_67 \def (ASort h1 n1) in (let H6 \def (eq_ind 
-A TMP_65 TMP_66 I TMP_67 H5) in (let TMP_72 \def (\lambda (n2: nat).(\lambda 
-(h2: nat).(\lambda (k: nat).(let TMP_68 \def (ASort h2 n2) in (let TMP_69 
-\def (aplus g TMP_68 k) in (let TMP_70 \def (AHead a3 a5) in (let TMP_71 \def 
-(aplus g TMP_70 k) in (eq A TMP_69 TMP_71)))))))) in (let TMP_75 \def 
-(\lambda (n2: nat).(\lambda (h2: nat).(\lambda (_: nat).(let TMP_73 \def 
-(AHead a1 a4) in (let TMP_74 \def (ASort h2 n2) in (eq A TMP_73 TMP_74)))))) 
-in (let TMP_76 \def (ex2_3 nat nat nat TMP_72 TMP_75) in (False_ind TMP_76 
-H6))))))))))))))))) in (leq_ind g TMP_16 TMP_64 TMP_77 a2 y H0)))))) in 
-(insert_eq A TMP_1 TMP_2 TMP_9 TMP_78 H))))))))).
+h2 n2) k) (aplus g a3 k))))) (\lambda (n2: nat).(\lambda (h2: nat).(\lambda 
+(_: nat).(eq A a1 (ASort h2 n2))))))))).(\lambda (a4: A).(\lambda (a5: 
+A).(\lambda (_: (leq g a4 a5)).(\lambda (_: (((eq A a5 (ASort h1 n1)) \to 
+(ex2_3 nat nat nat (\lambda (n2: nat).(\lambda (h2: nat).(\lambda (k: 
+nat).(eq A (aplus g (ASort h2 n2) k) (aplus g a5 k))))) (\lambda (n2: 
+nat).(\lambda (h2: nat).(\lambda (_: nat).(eq A a4 (ASort h2 
+n2))))))))).(\lambda (H5: (eq A (AHead a3 a5) (ASort h1 n1))).(let H6 \def 
+(eq_ind A (AHead a3 a5) (\lambda (ee: A).(match ee with [(ASort _ _) 
+\Rightarrow False | (AHead _ _) \Rightarrow True])) I (ASort h1 n1) H5) in 
+(False_ind (ex2_3 nat nat nat (\lambda (n2: nat).(\lambda (h2: nat).(\lambda 
+(k: nat).(eq A (aplus g (ASort h2 n2) k) (aplus g (AHead a3 a5) k))))) 
+(\lambda (n2: nat).(\lambda (h2: nat).(\lambda (_: nat).(eq A (AHead a1 a4) 
+(ASort h2 n2)))))) H6))))))))))) a2 y H0))) H))))).
 
 theorem leq_gen_head2:
  \forall (g: G).(\forall (a1: A).(\forall (a2: A).(\forall (a: A).((leq g a 
@@ -269,29 +192,21 @@ a1))) (\lambda (_: A).(\lambda (a4: A).(leq g a4 a2))) (\lambda (a3:
 A).(\lambda (a4: A).(eq A a (AHead a3 a4)))))))))
 \def
  \lambda (g: G).(\lambda (a1: A).(\lambda (a2: A).(\lambda (a: A).(\lambda 
-(H: (leq g a (AHead a1 a2))).(let TMP_1 \def (AHead a1 a2) in (let TMP_2 \def 
-(\lambda (a0: A).(leq g a a0)) in (let TMP_7 \def (\lambda (_: A).(let TMP_3 
-\def (\lambda (a3: A).(\lambda (_: A).(leq g a3 a1))) in (let TMP_4 \def 
-(\lambda (_: A).(\lambda (a4: A).(leq g a4 a2))) in (let TMP_6 \def (\lambda 
-(a3: A).(\lambda (a4: A).(let TMP_5 \def (AHead a3 a4) in (eq A a TMP_5)))) 
-in (ex3_2 A A TMP_3 TMP_4 TMP_6))))) in (let TMP_50 \def (\lambda (y: 
-A).(\lambda (H0: (leq g a y)).(let TMP_12 \def (\lambda (a0: A).(\lambda (a3: 
-A).((eq A a3 (AHead a1 a2)) \to (let TMP_8 \def (\lambda (a4: A).(\lambda (_: 
-A).(leq g a4 a1))) in (let TMP_9 \def (\lambda (_: A).(\lambda (a5: A).(leq g 
-a5 a2))) in (let TMP_11 \def (\lambda (a4: A).(\lambda (a5: A).(let TMP_10 
-\def (AHead a4 a5) in (eq A a0 TMP_10)))) in (ex3_2 A A TMP_8 TMP_9 
-TMP_11))))))) in (let TMP_22 \def (\lambda (h1: nat).(\lambda (h2: 
-nat).(\lambda (n1: nat).(\lambda (n2: nat).(\lambda (k: nat).(\lambda (_: (eq 
-A (aplus g (ASort h1 n1) k) (aplus g (ASort h2 n2) k))).(\lambda (H2: (eq A 
-(ASort h2 n2) (AHead a1 a2))).(let TMP_13 \def (ASort h2 n2) in (let TMP_14 
-\def (\lambda (ee: A).(match ee with [(ASort _ _) \Rightarrow True | (AHead _ 
-_) \Rightarrow False])) in (let TMP_15 \def (AHead a1 a2) in (let H3 \def 
-(eq_ind A TMP_13 TMP_14 I TMP_15 H2) in (let TMP_16 \def (\lambda (a3: 
-A).(\lambda (_: A).(leq g a3 a1))) in (let TMP_17 \def (\lambda (_: 
-A).(\lambda (a4: A).(leq g a4 a2))) in (let TMP_20 \def (\lambda (a3: 
-A).(\lambda (a4: A).(let TMP_18 \def (ASort h1 n1) in (let TMP_19 \def (AHead 
-a3 a4) in (eq A TMP_18 TMP_19))))) in (let TMP_21 \def (ex3_2 A A TMP_16 
-TMP_17 TMP_20) in (False_ind TMP_21 H3)))))))))))))))) in (let TMP_49 \def 
+(H: (leq g a (AHead a1 a2))).(insert_eq A (AHead a1 a2) (\lambda (a0: A).(leq 
+g a a0)) (\lambda (_: A).(ex3_2 A A (\lambda (a3: A).(\lambda (_: A).(leq g 
+a3 a1))) (\lambda (_: A).(\lambda (a4: A).(leq g a4 a2))) (\lambda (a3: 
+A).(\lambda (a4: A).(eq A a (AHead a3 a4)))))) (\lambda (y: A).(\lambda (H0: 
+(leq g a y)).(leq_ind g (\lambda (a0: A).(\lambda (a3: A).((eq A a3 (AHead a1 
+a2)) \to (ex3_2 A A (\lambda (a4: A).(\lambda (_: A).(leq g a4 a1))) (\lambda 
+(_: A).(\lambda (a5: A).(leq g a5 a2))) (\lambda (a4: A).(\lambda (a5: A).(eq 
+A a0 (AHead a4 a5)))))))) (\lambda (h1: nat).(\lambda (h2: nat).(\lambda (n1: 
+nat).(\lambda (n2: nat).(\lambda (k: nat).(\lambda (_: (eq A (aplus g (ASort 
+h1 n1) k) (aplus g (ASort h2 n2) k))).(\lambda (H2: (eq A (ASort h2 n2) 
+(AHead a1 a2))).(let H3 \def (eq_ind A (ASort h2 n2) (\lambda (ee: A).(match 
+ee with [(ASort _ _) \Rightarrow True | (AHead _ _) \Rightarrow False])) I 
+(AHead a1 a2) H2) in (False_ind (ex3_2 A A (\lambda (a3: A).(\lambda (_: 
+A).(leq g a3 a1))) (\lambda (_: A).(\lambda (a4: A).(leq g a4 a2))) (\lambda 
+(a3: A).(\lambda (a4: A).(eq A (ASort h1 n1) (AHead a3 a4))))) H3))))))))) 
 (\lambda (a0: A).(\lambda (a3: A).(\lambda (H1: (leq g a0 a3)).(\lambda (H2: 
 (((eq A a3 (AHead a1 a2)) \to (ex3_2 A A (\lambda (a4: A).(\lambda (_: 
 A).(leq g a4 a1))) (\lambda (_: A).(\lambda (a5: A).(leq g a5 a2))) (\lambda 
@@ -300,57 +215,40 @@ A).(\lambda (a5: A).(\lambda (H3: (leq g a4 a5)).(\lambda (H4: (((eq A a5
 (AHead a1 a2)) \to (ex3_2 A A (\lambda (a6: A).(\lambda (_: A).(leq g a6 
 a1))) (\lambda (_: A).(\lambda (a7: A).(leq g a7 a2))) (\lambda (a6: 
 A).(\lambda (a7: A).(eq A a4 (AHead a6 a7)))))))).(\lambda (H5: (eq A (AHead 
-a3 a5) (AHead a1 a2))).(let TMP_23 \def (\lambda (e: A).(match e with [(ASort 
-_ _) \Rightarrow a3 | (AHead a6 _) \Rightarrow a6])) in (let TMP_24 \def 
-(AHead a3 a5) in (let TMP_25 \def (AHead a1 a2) in (let H6 \def (f_equal A A 
-TMP_23 TMP_24 TMP_25 H5) in (let TMP_26 \def (\lambda (e: A).(match e with 
-[(ASort _ _) \Rightarrow a5 | (AHead _ a6) \Rightarrow a6])) in (let TMP_27 
-\def (AHead a3 a5) in (let TMP_28 \def (AHead a1 a2) in (let H7 \def (f_equal 
-A A TMP_26 TMP_27 TMP_28 H5) in (let TMP_48 \def (\lambda (H8: (eq A a3 
-a1)).(let TMP_33 \def (\lambda (a6: A).((eq A a6 (AHead a1 a2)) \to (let 
-TMP_29 \def (\lambda (a7: A).(\lambda (_: A).(leq g a7 a1))) in (let TMP_30 
-\def (\lambda (_: A).(\lambda (a8: A).(leq g a8 a2))) in (let TMP_32 \def 
-(\lambda (a7: A).(\lambda (a8: A).(let TMP_31 \def (AHead a7 a8) in (eq A a4 
-TMP_31)))) in (ex3_2 A A TMP_29 TMP_30 TMP_32)))))) in (let H9 \def (eq_ind A 
-a5 TMP_33 H4 a2 H7) in (let TMP_34 \def (\lambda (a6: A).(leq g a4 a6)) in 
-(let H10 \def (eq_ind A a5 TMP_34 H3 a2 H7) in (let TMP_39 \def (\lambda (a6: 
-A).((eq A a6 (AHead a1 a2)) \to (let TMP_35 \def (\lambda (a7: A).(\lambda 
-(_: A).(leq g a7 a1))) in (let TMP_36 \def (\lambda (_: A).(\lambda (a8: 
-A).(leq g a8 a2))) in (let TMP_38 \def (\lambda (a7: A).(\lambda (a8: A).(let 
-TMP_37 \def (AHead a7 a8) in (eq A a0 TMP_37)))) in (ex3_2 A A TMP_35 TMP_36 
-TMP_38)))))) in (let H11 \def (eq_ind A a3 TMP_39 H2 a1 H8) in (let TMP_40 
-\def (\lambda (a6: A).(leq g a0 a6)) in (let H12 \def (eq_ind A a3 TMP_40 H1 
-a1 H8) in (let TMP_41 \def (\lambda (a6: A).(\lambda (_: A).(leq g a6 a1))) 
-in (let TMP_42 \def (\lambda (_: A).(\lambda (a7: A).(leq g a7 a2))) in (let 
-TMP_45 \def (\lambda (a6: A).(\lambda (a7: A).(let TMP_43 \def (AHead a0 a4) 
-in (let TMP_44 \def (AHead a6 a7) in (eq A TMP_43 TMP_44))))) in (let TMP_46 
-\def (AHead a0 a4) in (let TMP_47 \def (refl_equal A TMP_46) in (ex3_2_intro 
-A A TMP_41 TMP_42 TMP_45 a0 a4 H12 H10 TMP_47))))))))))))))) in (TMP_48 
-H6))))))))))))))))))) in (leq_ind g TMP_12 TMP_22 TMP_49 a y H0)))))) in 
-(insert_eq A TMP_1 TMP_2 TMP_7 TMP_50 H))))))))).
+a3 a5) (AHead a1 a2))).(let H6 \def (f_equal A A (\lambda (e: A).(match e 
+with [(ASort _ _) \Rightarrow a3 | (AHead a6 _) \Rightarrow a6])) (AHead a3 
+a5) (AHead a1 a2) H5) in ((let H7 \def (f_equal A A (\lambda (e: A).(match e 
+with [(ASort _ _) \Rightarrow a5 | (AHead _ a6) \Rightarrow a6])) (AHead a3 
+a5) (AHead a1 a2) H5) in (\lambda (H8: (eq A a3 a1)).(let H9 \def (eq_ind A 
+a5 (\lambda (a6: A).((eq A a6 (AHead a1 a2)) \to (ex3_2 A A (\lambda (a7: 
+A).(\lambda (_: A).(leq g a7 a1))) (\lambda (_: A).(\lambda (a8: A).(leq g a8 
+a2))) (\lambda (a7: A).(\lambda (a8: A).(eq A a4 (AHead a7 a8))))))) H4 a2 
+H7) in (let H10 \def (eq_ind A a5 (\lambda (a6: A).(leq g a4 a6)) H3 a2 H7) 
+in (let H11 \def (eq_ind A a3 (\lambda (a6: A).((eq A a6 (AHead a1 a2)) \to 
+(ex3_2 A A (\lambda (a7: A).(\lambda (_: A).(leq g a7 a1))) (\lambda (_: 
+A).(\lambda (a8: A).(leq g a8 a2))) (\lambda (a7: A).(\lambda (a8: A).(eq A 
+a0 (AHead a7 a8))))))) H2 a1 H8) in (let H12 \def (eq_ind A a3 (\lambda (a6: 
+A).(leq g a0 a6)) H1 a1 H8) in (ex3_2_intro A A (\lambda (a6: A).(\lambda (_: 
+A).(leq g a6 a1))) (\lambda (_: A).(\lambda (a7: A).(leq g a7 a2))) (\lambda 
+(a6: A).(\lambda (a7: A).(eq A (AHead a0 a4) (AHead a6 a7)))) a0 a4 H12 H10 
+(refl_equal A (AHead a0 a4))))))))) H6))))))))))) a y H0))) H))))).
 
 theorem ahead_inj_snd:
  \forall (g: G).(\forall (a1: A).(\forall (a2: A).(\forall (a3: A).(\forall 
 (a4: A).((leq g (AHead a1 a2) (AHead a3 a4)) \to (leq g a2 a4))))))
 \def
  \lambda (g: G).(\lambda (a1: A).(\lambda (a2: A).(\lambda (a3: A).(\lambda 
-(a4: A).(\lambda (H: (leq g (AHead a1 a2) (AHead a3 a4))).(let TMP_1 \def 
-(AHead a3 a4) in (let H_x \def (leq_gen_head1 g a1 a2 TMP_1 H) in (let H0 
-\def H_x in (let TMP_2 \def (\lambda (a5: A).(\lambda (_: A).(leq g a1 a5))) 
-in (let TMP_3 \def (\lambda (_: A).(\lambda (a6: A).(leq g a2 a6))) in (let 
-TMP_6 \def (\lambda (a5: A).(\lambda (a6: A).(let TMP_4 \def (AHead a3 a4) in 
-(let TMP_5 \def (AHead a5 a6) in (eq A TMP_4 TMP_5))))) in (let TMP_7 \def 
-(leq g a2 a4) in (let TMP_17 \def (\lambda (x0: A).(\lambda (x1: A).(\lambda 
+(a4: A).(\lambda (H: (leq g (AHead a1 a2) (AHead a3 a4))).(let H_x \def 
+(leq_gen_head1 g a1 a2 (AHead a3 a4) H) in (let H0 \def H_x in (ex3_2_ind A A 
+(\lambda (a5: A).(\lambda (_: A).(leq g a1 a5))) (\lambda (_: A).(\lambda 
+(a6: A).(leq g a2 a6))) (\lambda (a5: A).(\lambda (a6: A).(eq A (AHead a3 a4) 
+(AHead a5 a6)))) (leq g a2 a4) (\lambda (x0: A).(\lambda (x1: A).(\lambda 
 (H1: (leq g a1 x0)).(\lambda (H2: (leq g a2 x1)).(\lambda (H3: (eq A (AHead 
-a3 a4) (AHead x0 x1))).(let TMP_8 \def (\lambda (e: A).(match e with [(ASort 
-_ _) \Rightarrow a3 | (AHead a _) \Rightarrow a])) in (let TMP_9 \def (AHead 
-a3 a4) in (let TMP_10 \def (AHead x0 x1) in (let H4 \def (f_equal A A TMP_8 
-TMP_9 TMP_10 H3) in (let TMP_11 \def (\lambda (e: A).(match e with [(ASort _ 
-_) \Rightarrow a4 | (AHead _ a) \Rightarrow a])) in (let TMP_12 \def (AHead 
-a3 a4) in (let TMP_13 \def (AHead x0 x1) in (let H5 \def (f_equal A A TMP_11 
-TMP_12 TMP_13 H3) in (let TMP_16 \def (\lambda (H6: (eq A a3 x0)).(let TMP_14 
-\def (\lambda (a: A).(leq g a2 a)) in (let H7 \def (eq_ind_r A x1 TMP_14 H2 
-a4 H5) in (let TMP_15 \def (\lambda (a: A).(leq g a1 a)) in (let H8 \def 
-(eq_ind_r A x0 TMP_15 H1 a3 H6) in H7))))) in (TMP_16 H4))))))))))))))) in 
-(ex3_2_ind A A TMP_2 TMP_3 TMP_6 TMP_7 TMP_17 H0)))))))))))))).
+a3 a4) (AHead x0 x1))).(let H4 \def (f_equal A A (\lambda (e: A).(match e 
+with [(ASort _ _) \Rightarrow a3 | (AHead a _) \Rightarrow a])) (AHead a3 a4) 
+(AHead x0 x1) H3) in ((let H5 \def (f_equal A A (\lambda (e: A).(match e with 
+[(ASort _ _) \Rightarrow a4 | (AHead _ a) \Rightarrow a])) (AHead a3 a4) 
+(AHead x0 x1) H3) in (\lambda (H6: (eq A a3 x0)).(let H7 \def (eq_ind_r A x1 
+(\lambda (a: A).(leq g a2 a)) H2 a4 H5) in (let H8 \def (eq_ind_r A x0 
+(\lambda (a: A).(leq g a1 a)) H1 a3 H6) in H7)))) H4))))))) H0)))))))).
 
index 48b72e636500d9bcbe2c989987d6c92d0d894859..ee90c179229119738355c69517bda7191145f459 100644 (file)
@@ -21,243 +21,168 @@ include "basic_1/aplus/props.ma".
 theorem leq_refl:
  \forall (g: G).(\forall (a: A).(leq g a a))
 \def
- \lambda (g: G).(\lambda (a: A).(let TMP_1 \def (\lambda (a0: A).(leq g a0 
-a0)) in (let TMP_5 \def (\lambda (n: nat).(\lambda (n0: nat).(let TMP_2 \def 
-(ASort n n0) in (let TMP_3 \def (aplus g TMP_2 O) in (let TMP_4 \def 
-(refl_equal A TMP_3) in (leq_sort g n n n0 n0 O TMP_4)))))) in (let TMP_6 
-\def (\lambda (a0: A).(\lambda (H: (leq g a0 a0)).(\lambda (a1: A).(\lambda 
-(H0: (leq g a1 a1)).(leq_head g a0 a0 H a1 a1 H0))))) in (A_ind TMP_1 TMP_5 
-TMP_6 a))))).
+ \lambda (g: G).(\lambda (a: A).(A_ind (\lambda (a0: A).(leq g a0 a0)) 
+(\lambda (n: nat).(\lambda (n0: nat).(leq_sort g n n n0 n0 O (refl_equal A 
+(aplus g (ASort n n0) O))))) (\lambda (a0: A).(\lambda (H: (leq g a0 
+a0)).(\lambda (a1: A).(\lambda (H0: (leq g a1 a1)).(leq_head g a0 a0 H a1 a1 
+H0))))) a)).
 
 theorem leq_eq:
  \forall (g: G).(\forall (a1: A).(\forall (a2: A).((eq A a1 a2) \to (leq g a1 
 a2))))
 \def
  \lambda (g: G).(\lambda (a1: A).(\lambda (a2: A).(\lambda (H: (eq A a1 
-a2)).(let TMP_1 \def (\lambda (a: A).(leq g a1 a)) in (let TMP_2 \def 
-(leq_refl g a1) in (eq_ind A a1 TMP_1 TMP_2 a2 H)))))).
+a2)).(eq_ind A a1 (\lambda (a: A).(leq g a1 a)) (leq_refl g a1) a2 H)))).
 
 theorem leq_sym:
  \forall (g: G).(\forall (a1: A).(\forall (a2: A).((leq g a1 a2) \to (leq g 
 a2 a1))))
 \def
  \lambda (g: G).(\lambda (a1: A).(\lambda (a2: A).(\lambda (H: (leq g a1 
-a2)).(let TMP_1 \def (\lambda (a: A).(\lambda (a0: A).(leq g a0 a))) in (let 
-TMP_7 \def (\lambda (h1: nat).(\lambda (h2: nat).(\lambda (n1: nat).(\lambda 
-(n2: nat).(\lambda (k: nat).(\lambda (H0: (eq A (aplus g (ASort h1 n1) k) 
-(aplus g (ASort h2 n2) k))).(let TMP_2 \def (ASort h1 n1) in (let TMP_3 \def 
-(aplus g TMP_2 k) in (let TMP_4 \def (ASort h2 n2) in (let TMP_5 \def (aplus 
-g TMP_4 k) in (let TMP_6 \def (sym_eq A TMP_3 TMP_5 H0) in (leq_sort g h2 h1 
-n2 n1 k TMP_6)))))))))))) in (let TMP_8 \def (\lambda (a3: A).(\lambda (a4: 
-A).(\lambda (_: (leq g a3 a4)).(\lambda (H1: (leq g a4 a3)).(\lambda (a5: 
-A).(\lambda (a6: A).(\lambda (_: (leq g a5 a6)).(\lambda (H3: (leq g a6 
-a5)).(leq_head g a4 a3 H1 a6 a5 H3))))))))) in (leq_ind g TMP_1 TMP_7 TMP_8 
-a1 a2 H))))))).
+a2)).(leq_ind g (\lambda (a: A).(\lambda (a0: A).(leq g a0 a))) (\lambda (h1: 
+nat).(\lambda (h2: nat).(\lambda (n1: nat).(\lambda (n2: nat).(\lambda (k: 
+nat).(\lambda (H0: (eq A (aplus g (ASort h1 n1) k) (aplus g (ASort h2 n2) 
+k))).(leq_sort g h2 h1 n2 n1 k (sym_eq A (aplus g (ASort h1 n1) k) (aplus g 
+(ASort h2 n2) k) H0)))))))) (\lambda (a3: A).(\lambda (a4: A).(\lambda (_: 
+(leq g a3 a4)).(\lambda (H1: (leq g a4 a3)).(\lambda (a5: A).(\lambda (a6: 
+A).(\lambda (_: (leq g a5 a6)).(\lambda (H3: (leq g a6 a5)).(leq_head g a4 a3 
+H1 a6 a5 H3))))))))) a1 a2 H)))).
 
 theorem leq_trans:
  \forall (g: G).(\forall (a1: A).(\forall (a2: A).((leq g a1 a2) \to (\forall 
 (a3: A).((leq g a2 a3) \to (leq g a1 a3))))))
 \def
  \lambda (g: G).(\lambda (a1: A).(\lambda (a2: A).(\lambda (H: (leq g a1 
-a2)).(let TMP_1 \def (\lambda (a: A).(\lambda (a0: A).(\forall (a3: A).((leq 
-g a0 a3) \to (leq g a a3))))) in (let TMP_63 \def (\lambda (h1: nat).(\lambda 
-(h2: nat).(\lambda (n1: nat).(\lambda (n2: nat).(\lambda (k: nat).(\lambda 
-(H0: (eq A (aplus g (ASort h1 n1) k) (aplus g (ASort h2 n2) k))).(\lambda 
-(a3: A).(\lambda (H1: (leq g (ASort h2 n2) a3)).(let H_x \def (leq_gen_sort1 
-g h2 n2 a3 H1) in (let H2 \def H_x in (let TMP_6 \def (\lambda (n3: 
-nat).(\lambda (h3: nat).(\lambda (k0: nat).(let TMP_2 \def (ASort h2 n2) in 
-(let TMP_3 \def (aplus g TMP_2 k0) in (let TMP_4 \def (ASort h3 n3) in (let 
-TMP_5 \def (aplus g TMP_4 k0) in (eq A TMP_3 TMP_5)))))))) in (let TMP_8 \def 
-(\lambda (n3: nat).(\lambda (h3: nat).(\lambda (_: nat).(let TMP_7 \def 
-(ASort h3 n3) in (eq A a3 TMP_7))))) in (let TMP_9 \def (ASort h1 n1) in (let 
-TMP_10 \def (leq g TMP_9 a3) in (let TMP_62 \def (\lambda (x0: nat).(\lambda 
-(x1: nat).(\lambda (x2: nat).(\lambda (H3: (eq A (aplus g (ASort h2 n2) x2) 
-(aplus g (ASort x1 x0) x2))).(\lambda (H4: (eq A a3 (ASort x1 x0))).(let 
-TMP_11 \def (\lambda (e: A).e) in (let TMP_12 \def (ASort x1 x0) in (let H5 
-\def (f_equal A A TMP_11 a3 TMP_12 H4) in (let TMP_13 \def (ASort x1 x0) in 
-(let TMP_15 \def (\lambda (a: A).(let TMP_14 \def (ASort h1 n1) in (leq g 
-TMP_14 a))) in (let TMP_16 \def (ASort h1 n1) in (let TMP_17 \def (ASort x1 
-x0) in (let TMP_18 \def (leq g TMP_16 TMP_17) in (let TMP_41 \def (\lambda 
-(H6: (lt k x2)).(let TMP_19 \def (ASort h1 n1) in (let TMP_20 \def (ASort h2 
-n2) in (let TMP_21 \def (minus x2 k) in (let H_y \def (aplus_reg_r g TMP_19 
-TMP_20 k k H0 TMP_21) in (let TMP_22 \def (minus x2 k) in (let TMP_23 \def 
-(plus TMP_22 k) in (let TMP_28 \def (\lambda (n: nat).(let TMP_24 \def (ASort 
-h1 n1) in (let TMP_25 \def (aplus g TMP_24 n) in (let TMP_26 \def (ASort h2 
-n2) in (let TMP_27 \def (aplus g TMP_26 n) in (eq A TMP_25 TMP_27)))))) in 
-(let TMP_29 \def (S k) in (let TMP_30 \def (le_n k) in (let TMP_31 \def (le_S 
-k k TMP_30) in (let TMP_32 \def (le_trans k TMP_29 x2 TMP_31 H6) in (let 
-TMP_33 \def (le_plus_minus_sym k x2 TMP_32) in (let H7 \def (eq_ind_r nat 
-TMP_23 TMP_28 H_y x2 TMP_33) in (let TMP_34 \def (ASort h1 n1) in (let TMP_35 
-\def (aplus g TMP_34 x2) in (let TMP_36 \def (ASort h2 n2) in (let TMP_37 
-\def (aplus g TMP_36 x2) in (let TMP_38 \def (ASort x1 x0) in (let TMP_39 
-\def (aplus g TMP_38 x2) in (let TMP_40 \def (trans_eq A TMP_35 TMP_37 TMP_39 
-H7 H3) in (leq_sort g h1 x1 n1 x0 x2 TMP_40)))))))))))))))))))))) in (let 
-TMP_60 \def (\lambda (H6: (le x2 k)).(let TMP_42 \def (ASort h2 n2) in (let 
-TMP_43 \def (ASort x1 x0) in (let TMP_44 \def (minus k x2) in (let H_y \def 
-(aplus_reg_r g TMP_42 TMP_43 x2 x2 H3 TMP_44) in (let TMP_45 \def (minus k 
-x2) in (let TMP_46 \def (plus TMP_45 x2) in (let TMP_51 \def (\lambda (n: 
-nat).(let TMP_47 \def (ASort h2 n2) in (let TMP_48 \def (aplus g TMP_47 n) in 
-(let TMP_49 \def (ASort x1 x0) in (let TMP_50 \def (aplus g TMP_49 n) in (eq 
-A TMP_48 TMP_50)))))) in (let TMP_52 \def (le_plus_minus_sym x2 k H6) in (let 
-H7 \def (eq_ind_r nat TMP_46 TMP_51 H_y k TMP_52) in (let TMP_53 \def (ASort 
-h1 n1) in (let TMP_54 \def (aplus g TMP_53 k) in (let TMP_55 \def (ASort h2 
-n2) in (let TMP_56 \def (aplus g TMP_55 k) in (let TMP_57 \def (ASort x1 x0) 
-in (let TMP_58 \def (aplus g TMP_57 k) in (let TMP_59 \def (trans_eq A TMP_54 
-TMP_56 TMP_58 H0 H7) in (leq_sort g h1 x1 n1 x0 k TMP_59)))))))))))))))))) in 
-(let TMP_61 \def (lt_le_e k x2 TMP_18 TMP_41 TMP_60) in (eq_ind_r A TMP_13 
-TMP_15 TMP_61 a3 H5))))))))))))))))) in (ex2_3_ind nat nat nat TMP_6 TMP_8 
-TMP_10 TMP_62 H2)))))))))))))))) in (let TMP_79 \def (\lambda (a3: 
+a2)).(leq_ind g (\lambda (a: A).(\lambda (a0: A).(\forall (a3: A).((leq g a0 
+a3) \to (leq g a a3))))) (\lambda (h1: nat).(\lambda (h2: nat).(\lambda (n1: 
+nat).(\lambda (n2: nat).(\lambda (k: nat).(\lambda (H0: (eq A (aplus g (ASort 
+h1 n1) k) (aplus g (ASort h2 n2) k))).(\lambda (a3: A).(\lambda (H1: (leq g 
+(ASort h2 n2) a3)).(let H_x \def (leq_gen_sort1 g h2 n2 a3 H1) in (let H2 
+\def H_x in (ex2_3_ind nat nat nat (\lambda (n3: nat).(\lambda (h3: 
+nat).(\lambda (k0: nat).(eq A (aplus g (ASort h2 n2) k0) (aplus g (ASort h3 
+n3) k0))))) (\lambda (n3: nat).(\lambda (h3: nat).(\lambda (_: nat).(eq A a3 
+(ASort h3 n3))))) (leq g (ASort h1 n1) a3) (\lambda (x0: nat).(\lambda (x1: 
+nat).(\lambda (x2: nat).(\lambda (H3: (eq A (aplus g (ASort h2 n2) x2) (aplus 
+g (ASort x1 x0) x2))).(\lambda (H4: (eq A a3 (ASort x1 x0))).(let H5 \def 
+(f_equal A A (\lambda (e: A).e) a3 (ASort x1 x0) H4) in (eq_ind_r A (ASort x1 
+x0) (\lambda (a: A).(leq g (ASort h1 n1) a)) (lt_le_e k x2 (leq g (ASort h1 
+n1) (ASort x1 x0)) (\lambda (H6: (lt k x2)).(let H_y \def (aplus_reg_r g 
+(ASort h1 n1) (ASort h2 n2) k k H0 (minus x2 k)) in (let H7 \def (eq_ind_r 
+nat (plus (minus x2 k) k) (\lambda (n: nat).(eq A (aplus g (ASort h1 n1) n) 
+(aplus g (ASort h2 n2) n))) H_y x2 (le_plus_minus_sym k x2 (le_trans k (S k) 
+x2 (le_S k k (le_n k)) H6))) in (leq_sort g h1 x1 n1 x0 x2 (trans_eq A (aplus 
+g (ASort h1 n1) x2) (aplus g (ASort h2 n2) x2) (aplus g (ASort x1 x0) x2) H7 
+H3))))) (\lambda (H6: (le x2 k)).(let H_y \def (aplus_reg_r g (ASort h2 n2) 
+(ASort x1 x0) x2 x2 H3 (minus k x2)) in (let H7 \def (eq_ind_r nat (plus 
+(minus k x2) x2) (\lambda (n: nat).(eq A (aplus g (ASort h2 n2) n) (aplus g 
+(ASort x1 x0) n))) H_y k (le_plus_minus_sym x2 k H6)) in (leq_sort g h1 x1 n1 
+x0 k (trans_eq A (aplus g (ASort h1 n1) k) (aplus g (ASort h2 n2) k) (aplus g 
+(ASort x1 x0) k) H0 H7)))))) a3 H5))))))) H2))))))))))) (\lambda (a3: 
 A).(\lambda (a4: A).(\lambda (_: (leq g a3 a4)).(\lambda (H1: ((\forall (a5: 
 A).((leq g a4 a5) \to (leq g a3 a5))))).(\lambda (a5: A).(\lambda (a6: 
 A).(\lambda (_: (leq g a5 a6)).(\lambda (H3: ((\forall (a7: A).((leq g a6 a7) 
 \to (leq g a5 a7))))).(\lambda (a0: A).(\lambda (H4: (leq g (AHead a4 a6) 
-a0)).(let H_x \def (leq_gen_head1 g a4 a6 a0 H4) in (let H5 \def H_x in (let 
-TMP_64 \def (\lambda (a7: A).(\lambda (_: A).(leq g a4 a7))) in (let TMP_65 
-\def (\lambda (_: A).(\lambda (a8: A).(leq g a6 a8))) in (let TMP_67 \def 
-(\lambda (a7: A).(\lambda (a8: A).(let TMP_66 \def (AHead a7 a8) in (eq A a0 
-TMP_66)))) in (let TMP_68 \def (AHead a3 a5) in (let TMP_69 \def (leq g 
-TMP_68 a0) in (let TMP_78 \def (\lambda (x0: A).(\lambda (x1: A).(\lambda 
-(H6: (leq g a4 x0)).(\lambda (H7: (leq g a6 x1)).(\lambda (H8: (eq A a0 
-(AHead x0 x1))).(let TMP_70 \def (\lambda (e: A).e) in (let TMP_71 \def 
-(AHead x0 x1) in (let H9 \def (f_equal A A TMP_70 a0 TMP_71 H8) in (let 
-TMP_72 \def (AHead x0 x1) in (let TMP_74 \def (\lambda (a: A).(let TMP_73 
-\def (AHead a3 a5) in (leq g TMP_73 a))) in (let TMP_75 \def (H1 x0 H6) in 
-(let TMP_76 \def (H3 x1 H7) in (let TMP_77 \def (leq_head g a3 x0 TMP_75 a5 
-x1 TMP_76) in (eq_ind_r A TMP_72 TMP_74 TMP_77 a0 H9)))))))))))))) in 
-(ex3_2_ind A A TMP_64 TMP_65 TMP_67 TMP_69 TMP_78 H5))))))))))))))))))) in 
-(leq_ind g TMP_1 TMP_63 TMP_79 a1 a2 H))))))).
+a0)).(let H_x \def (leq_gen_head1 g a4 a6 a0 H4) in (let H5 \def H_x in 
+(ex3_2_ind A A (\lambda (a7: A).(\lambda (_: A).(leq g a4 a7))) (\lambda (_: 
+A).(\lambda (a8: A).(leq g a6 a8))) (\lambda (a7: A).(\lambda (a8: A).(eq A 
+a0 (AHead a7 a8)))) (leq g (AHead a3 a5) a0) (\lambda (x0: A).(\lambda (x1: 
+A).(\lambda (H6: (leq g a4 x0)).(\lambda (H7: (leq g a6 x1)).(\lambda (H8: 
+(eq A a0 (AHead x0 x1))).(let H9 \def (f_equal A A (\lambda (e: A).e) a0 
+(AHead x0 x1) H8) in (eq_ind_r A (AHead x0 x1) (\lambda (a: A).(leq g (AHead 
+a3 a5) a)) (leq_head g a3 x0 (H1 x0 H6) a5 x1 (H3 x1 H7)) a0 H9))))))) 
+H5))))))))))))) a1 a2 H)))).
 
 theorem leq_ahead_false_1:
  \forall (g: G).(\forall (a1: A).(\forall (a2: A).((leq g (AHead a1 a2) a1) 
 \to (\forall (P: Prop).P))))
 \def
- \lambda (g: G).(\lambda (a1: A).(let TMP_1 \def (\lambda (a: A).(\forall 
-(a2: A).((leq g (AHead a a2) a) \to (\forall (P: Prop).P)))) in (let TMP_34 
-\def (\lambda (n: nat).(\lambda (n0: nat).(\lambda (a2: A).(\lambda (H: (leq 
-g (AHead (ASort n n0) a2) (ASort n n0))).(\lambda (P: Prop).(let TMP_2 \def 
-(\lambda (n1: nat).((leq g (AHead (ASort n1 n0) a2) (ASort n1 n0)) \to P)) in 
-(let TMP_15 \def (\lambda (H0: (leq g (AHead (ASort O n0) a2) (ASort O 
-n0))).(let TMP_3 \def (ASort O n0) in (let TMP_4 \def (ASort O n0) in (let 
-H_x \def (leq_gen_head1 g TMP_3 a2 TMP_4 H0) in (let H1 \def H_x in (let 
-TMP_6 \def (\lambda (a3: A).(\lambda (_: A).(let TMP_5 \def (ASort O n0) in 
-(leq g TMP_5 a3)))) in (let TMP_7 \def (\lambda (_: A).(\lambda (a4: A).(leq 
-g a2 a4))) in (let TMP_10 \def (\lambda (a3: A).(\lambda (a4: A).(let TMP_8 
-\def (ASort O n0) in (let TMP_9 \def (AHead a3 a4) in (eq A TMP_8 TMP_9))))) 
-in (let TMP_14 \def (\lambda (x0: A).(\lambda (x1: A).(\lambda (_: (leq g 
+ \lambda (g: G).(\lambda (a1: A).(A_ind (\lambda (a: A).(\forall (a2: 
+A).((leq g (AHead a a2) a) \to (\forall (P: Prop).P)))) (\lambda (n: 
+nat).(\lambda (n0: nat).(\lambda (a2: A).(\lambda (H: (leq g (AHead (ASort n 
+n0) a2) (ASort n n0))).(\lambda (P: Prop).(nat_ind (\lambda (n1: nat).((leq g 
+(AHead (ASort n1 n0) a2) (ASort n1 n0)) \to P)) (\lambda (H0: (leq g (AHead 
+(ASort O n0) a2) (ASort O n0))).(let H_x \def (leq_gen_head1 g (ASort O n0) 
+a2 (ASort O n0) H0) in (let H1 \def H_x in (ex3_2_ind A A (\lambda (a3: 
+A).(\lambda (_: A).(leq g (ASort O n0) a3))) (\lambda (_: A).(\lambda (a4: 
+A).(leq g a2 a4))) (\lambda (a3: A).(\lambda (a4: A).(eq A (ASort O n0) 
+(AHead a3 a4)))) P (\lambda (x0: A).(\lambda (x1: A).(\lambda (_: (leq g 
 (ASort O n0) x0)).(\lambda (_: (leq g a2 x1)).(\lambda (H4: (eq A (ASort O 
-n0) (AHead x0 x1))).(let TMP_11 \def (ASort O n0) in (let TMP_12 \def 
-(\lambda (ee: A).(match ee with [(ASort _ _) \Rightarrow True | (AHead _ _) 
-\Rightarrow False])) in (let TMP_13 \def (AHead x0 x1) in (let H5 \def 
-(eq_ind A TMP_11 TMP_12 I TMP_13 H4) in (False_ind P H5)))))))))) in 
-(ex3_2_ind A A TMP_6 TMP_7 TMP_10 P TMP_14 H1)))))))))) in (let TMP_33 \def 
-(\lambda (n1: nat).(\lambda (_: (((leq g (AHead (ASort n1 n0) a2) (ASort n1 
-n0)) \to P))).(\lambda (H0: (leq g (AHead (ASort (S n1) n0) a2) (ASort (S n1) 
-n0))).(let TMP_16 \def (S n1) in (let TMP_17 \def (ASort TMP_16 n0) in (let 
-TMP_18 \def (S n1) in (let TMP_19 \def (ASort TMP_18 n0) in (let H_x \def 
-(leq_gen_head1 g TMP_17 a2 TMP_19 H0) in (let H1 \def H_x in (let TMP_22 \def 
-(\lambda (a3: A).(\lambda (_: A).(let TMP_20 \def (S n1) in (let TMP_21 \def 
-(ASort TMP_20 n0) in (leq g TMP_21 a3))))) in (let TMP_23 \def (\lambda (_: 
-A).(\lambda (a4: A).(leq g a2 a4))) in (let TMP_27 \def (\lambda (a3: 
-A).(\lambda (a4: A).(let TMP_24 \def (S n1) in (let TMP_25 \def (ASort TMP_24 
-n0) in (let TMP_26 \def (AHead a3 a4) in (eq A TMP_25 TMP_26)))))) in (let 
-TMP_32 \def (\lambda (x0: A).(\lambda (x1: A).(\lambda (_: (leq g (ASort (S 
-n1) n0) x0)).(\lambda (_: (leq g a2 x1)).(\lambda (H4: (eq A (ASort (S n1) 
-n0) (AHead x0 x1))).(let TMP_28 \def (S n1) in (let TMP_29 \def (ASort TMP_28 
-n0) in (let TMP_30 \def (\lambda (ee: A).(match ee with [(ASort _ _) 
-\Rightarrow True | (AHead _ _) \Rightarrow False])) in (let TMP_31 \def 
-(AHead x0 x1) in (let H5 \def (eq_ind A TMP_29 TMP_30 I TMP_31 H4) in 
-(False_ind P H5))))))))))) in (ex3_2_ind A A TMP_22 TMP_23 TMP_27 P TMP_32 
-H1)))))))))))))) in (nat_ind TMP_2 TMP_15 TMP_33 n H))))))))) in (let TMP_54 
-\def (\lambda (a: A).(\lambda (H: ((\forall (a2: A).((leq g (AHead a a2) a) 
-\to (\forall (P: Prop).P))))).(\lambda (a0: A).(\lambda (_: ((\forall (a2: 
+n0) (AHead x0 x1))).(let H5 \def (eq_ind A (ASort O n0) (\lambda (ee: 
+A).(match ee with [(ASort _ _) \Rightarrow True | (AHead _ _) \Rightarrow 
+False])) I (AHead x0 x1) H4) in (False_ind P H5))))))) H1)))) (\lambda (n1: 
+nat).(\lambda (_: (((leq g (AHead (ASort n1 n0) a2) (ASort n1 n0)) \to 
+P))).(\lambda (H0: (leq g (AHead (ASort (S n1) n0) a2) (ASort (S n1) 
+n0))).(let H_x \def (leq_gen_head1 g (ASort (S n1) n0) a2 (ASort (S n1) n0) 
+H0) in (let H1 \def H_x in (ex3_2_ind A A (\lambda (a3: A).(\lambda (_: 
+A).(leq g (ASort (S n1) n0) a3))) (\lambda (_: A).(\lambda (a4: A).(leq g a2 
+a4))) (\lambda (a3: A).(\lambda (a4: A).(eq A (ASort (S n1) n0) (AHead a3 
+a4)))) P (\lambda (x0: A).(\lambda (x1: A).(\lambda (_: (leq g (ASort (S n1) 
+n0) x0)).(\lambda (_: (leq g a2 x1)).(\lambda (H4: (eq A (ASort (S n1) n0) 
+(AHead x0 x1))).(let H5 \def (eq_ind A (ASort (S n1) n0) (\lambda (ee: 
+A).(match ee with [(ASort _ _) \Rightarrow True | (AHead _ _) \Rightarrow 
+False])) I (AHead x0 x1) H4) in (False_ind P H5))))))) H1)))))) n H)))))) 
+(\lambda (a: A).(\lambda (H: ((\forall (a2: A).((leq g (AHead a a2) a) \to 
+(\forall (P: Prop).P))))).(\lambda (a0: A).(\lambda (_: ((\forall (a2: 
 A).((leq g (AHead a0 a2) a0) \to (\forall (P: Prop).P))))).(\lambda (a2: 
 A).(\lambda (H1: (leq g (AHead (AHead a a0) a2) (AHead a a0))).(\lambda (P: 
-Prop).(let TMP_35 \def (AHead a a0) in (let TMP_36 \def (AHead a a0) in (let 
-H_x \def (leq_gen_head1 g TMP_35 a2 TMP_36 H1) in (let H2 \def H_x in (let 
-TMP_38 \def (\lambda (a3: A).(\lambda (_: A).(let TMP_37 \def (AHead a a0) in 
-(leq g TMP_37 a3)))) in (let TMP_39 \def (\lambda (_: A).(\lambda (a4: 
-A).(leq g a2 a4))) in (let TMP_42 \def (\lambda (a3: A).(\lambda (a4: A).(let 
-TMP_40 \def (AHead a a0) in (let TMP_41 \def (AHead a3 a4) in (eq A TMP_40 
-TMP_41))))) in (let TMP_53 \def (\lambda (x0: A).(\lambda (x1: A).(\lambda 
-(H3: (leq g (AHead a a0) x0)).(\lambda (H4: (leq g a2 x1)).(\lambda (H5: (eq 
-A (AHead a a0) (AHead x0 x1))).(let TMP_43 \def (\lambda (e: A).(match e with 
-[(ASort _ _) \Rightarrow a | (AHead a3 _) \Rightarrow a3])) in (let TMP_44 
-\def (AHead a a0) in (let TMP_45 \def (AHead x0 x1) in (let H6 \def (f_equal 
-A A TMP_43 TMP_44 TMP_45 H5) in (let TMP_46 \def (\lambda (e: A).(match e 
-with [(ASort _ _) \Rightarrow a0 | (AHead _ a3) \Rightarrow a3])) in (let 
-TMP_47 \def (AHead a a0) in (let TMP_48 \def (AHead x0 x1) in (let H7 \def 
-(f_equal A A TMP_46 TMP_47 TMP_48 H5) in (let TMP_52 \def (\lambda (H8: (eq A 
-a x0)).(let TMP_49 \def (\lambda (a3: A).(leq g a2 a3)) in (let H9 \def 
-(eq_ind_r A x1 TMP_49 H4 a0 H7) in (let TMP_51 \def (\lambda (a3: A).(let 
-TMP_50 \def (AHead a a0) in (leq g TMP_50 a3))) in (let H10 \def (eq_ind_r A 
-x0 TMP_51 H3 a H8) in (H a0 H10 P)))))) in (TMP_52 H6))))))))))))))) in 
-(ex3_2_ind A A TMP_38 TMP_39 TMP_42 P TMP_53 H2)))))))))))))))) in (A_ind 
-TMP_1 TMP_34 TMP_54 a1))))).
+Prop).(let H_x \def (leq_gen_head1 g (AHead a a0) a2 (AHead a a0) H1) in (let 
+H2 \def H_x in (ex3_2_ind A A (\lambda (a3: A).(\lambda (_: A).(leq g (AHead 
+a a0) a3))) (\lambda (_: A).(\lambda (a4: A).(leq g a2 a4))) (\lambda (a3: 
+A).(\lambda (a4: A).(eq A (AHead a a0) (AHead a3 a4)))) P (\lambda (x0: 
+A).(\lambda (x1: A).(\lambda (H3: (leq g (AHead a a0) x0)).(\lambda (H4: (leq 
+g a2 x1)).(\lambda (H5: (eq A (AHead a a0) (AHead x0 x1))).(let H6 \def 
+(f_equal A A (\lambda (e: A).(match e with [(ASort _ _) \Rightarrow a | 
+(AHead a3 _) \Rightarrow a3])) (AHead a a0) (AHead x0 x1) H5) in ((let H7 
+\def (f_equal A A (\lambda (e: A).(match e with [(ASort _ _) \Rightarrow a0 | 
+(AHead _ a3) \Rightarrow a3])) (AHead a a0) (AHead x0 x1) H5) in (\lambda 
+(H8: (eq A a x0)).(let H9 \def (eq_ind_r A x1 (\lambda (a3: A).(leq g a2 a3)) 
+H4 a0 H7) in (let H10 \def (eq_ind_r A x0 (\lambda (a3: A).(leq g (AHead a 
+a0) a3)) H3 a H8) in (H a0 H10 P))))) H6))))))) H2)))))))))) a1)).
 
 theorem leq_ahead_false_2:
  \forall (g: G).(\forall (a2: A).(\forall (a1: A).((leq g (AHead a1 a2) a2) 
 \to (\forall (P: Prop).P))))
 \def
- \lambda (g: G).(\lambda (a2: A).(let TMP_1 \def (\lambda (a: A).(\forall 
-(a1: A).((leq g (AHead a1 a) a) \to (\forall (P: Prop).P)))) in (let TMP_34 
-\def (\lambda (n: nat).(\lambda (n0: nat).(\lambda (a1: A).(\lambda (H: (leq 
-g (AHead a1 (ASort n n0)) (ASort n n0))).(\lambda (P: Prop).(let TMP_2 \def 
-(\lambda (n1: nat).((leq g (AHead a1 (ASort n1 n0)) (ASort n1 n0)) \to P)) in 
-(let TMP_15 \def (\lambda (H0: (leq g (AHead a1 (ASort O n0)) (ASort O 
-n0))).(let TMP_3 \def (ASort O n0) in (let TMP_4 \def (ASort O n0) in (let 
-H_x \def (leq_gen_head1 g a1 TMP_3 TMP_4 H0) in (let H1 \def H_x in (let 
-TMP_5 \def (\lambda (a3: A).(\lambda (_: A).(leq g a1 a3))) in (let TMP_7 
-\def (\lambda (_: A).(\lambda (a4: A).(let TMP_6 \def (ASort O n0) in (leq g 
-TMP_6 a4)))) in (let TMP_10 \def (\lambda (a3: A).(\lambda (a4: A).(let TMP_8 
-\def (ASort O n0) in (let TMP_9 \def (AHead a3 a4) in (eq A TMP_8 TMP_9))))) 
-in (let TMP_14 \def (\lambda (x0: A).(\lambda (x1: A).(\lambda (_: (leq g a1 
+ \lambda (g: G).(\lambda (a2: A).(A_ind (\lambda (a: A).(\forall (a1: 
+A).((leq g (AHead a1 a) a) \to (\forall (P: Prop).P)))) (\lambda (n: 
+nat).(\lambda (n0: nat).(\lambda (a1: A).(\lambda (H: (leq g (AHead a1 (ASort 
+n n0)) (ASort n n0))).(\lambda (P: Prop).(nat_ind (\lambda (n1: nat).((leq g 
+(AHead a1 (ASort n1 n0)) (ASort n1 n0)) \to P)) (\lambda (H0: (leq g (AHead 
+a1 (ASort O n0)) (ASort O n0))).(let H_x \def (leq_gen_head1 g a1 (ASort O 
+n0) (ASort O n0) H0) in (let H1 \def H_x in (ex3_2_ind A A (\lambda (a3: 
+A).(\lambda (_: A).(leq g a1 a3))) (\lambda (_: A).(\lambda (a4: A).(leq g 
+(ASort O n0) a4))) (\lambda (a3: A).(\lambda (a4: A).(eq A (ASort O n0) 
+(AHead a3 a4)))) P (\lambda (x0: A).(\lambda (x1: A).(\lambda (_: (leq g a1 
 x0)).(\lambda (_: (leq g (ASort O n0) x1)).(\lambda (H4: (eq A (ASort O n0) 
-(AHead x0 x1))).(let TMP_11 \def (ASort O n0) in (let TMP_12 \def (\lambda 
-(ee: A).(match ee with [(ASort _ _) \Rightarrow True | (AHead _ _) 
-\Rightarrow False])) in (let TMP_13 \def (AHead x0 x1) in (let H5 \def 
-(eq_ind A TMP_11 TMP_12 I TMP_13 H4) in (False_ind P H5)))))))))) in 
-(ex3_2_ind A A TMP_5 TMP_7 TMP_10 P TMP_14 H1)))))))))) in (let TMP_33 \def 
-(\lambda (n1: nat).(\lambda (_: (((leq g (AHead a1 (ASort n1 n0)) (ASort n1 
-n0)) \to P))).(\lambda (H0: (leq g (AHead a1 (ASort (S n1) n0)) (ASort (S n1) 
-n0))).(let TMP_16 \def (S n1) in (let TMP_17 \def (ASort TMP_16 n0) in (let 
-TMP_18 \def (S n1) in (let TMP_19 \def (ASort TMP_18 n0) in (let H_x \def 
-(leq_gen_head1 g a1 TMP_17 TMP_19 H0) in (let H1 \def H_x in (let TMP_20 \def 
-(\lambda (a3: A).(\lambda (_: A).(leq g a1 a3))) in (let TMP_23 \def (\lambda 
-(_: A).(\lambda (a4: A).(let TMP_21 \def (S n1) in (let TMP_22 \def (ASort 
-TMP_21 n0) in (leq g TMP_22 a4))))) in (let TMP_27 \def (\lambda (a3: 
-A).(\lambda (a4: A).(let TMP_24 \def (S n1) in (let TMP_25 \def (ASort TMP_24 
-n0) in (let TMP_26 \def (AHead a3 a4) in (eq A TMP_25 TMP_26)))))) in (let 
-TMP_32 \def (\lambda (x0: A).(\lambda (x1: A).(\lambda (_: (leq g a1 
+(AHead x0 x1))).(let H5 \def (eq_ind A (ASort O n0) (\lambda (ee: A).(match 
+ee with [(ASort _ _) \Rightarrow True | (AHead _ _) \Rightarrow False])) I 
+(AHead x0 x1) H4) in (False_ind P H5))))))) H1)))) (\lambda (n1: 
+nat).(\lambda (_: (((leq g (AHead a1 (ASort n1 n0)) (ASort n1 n0)) \to 
+P))).(\lambda (H0: (leq g (AHead a1 (ASort (S n1) n0)) (ASort (S n1) 
+n0))).(let H_x \def (leq_gen_head1 g a1 (ASort (S n1) n0) (ASort (S n1) n0) 
+H0) in (let H1 \def H_x in (ex3_2_ind A A (\lambda (a3: A).(\lambda (_: 
+A).(leq g a1 a3))) (\lambda (_: A).(\lambda (a4: A).(leq g (ASort (S n1) n0) 
+a4))) (\lambda (a3: A).(\lambda (a4: A).(eq A (ASort (S n1) n0) (AHead a3 
+a4)))) P (\lambda (x0: A).(\lambda (x1: A).(\lambda (_: (leq g a1 
 x0)).(\lambda (_: (leq g (ASort (S n1) n0) x1)).(\lambda (H4: (eq A (ASort (S 
-n1) n0) (AHead x0 x1))).(let TMP_28 \def (S n1) in (let TMP_29 \def (ASort 
-TMP_28 n0) in (let TMP_30 \def (\lambda (ee: A).(match ee with [(ASort _ _) 
-\Rightarrow True | (AHead _ _) \Rightarrow False])) in (let TMP_31 \def 
-(AHead x0 x1) in (let H5 \def (eq_ind A TMP_29 TMP_30 I TMP_31 H4) in 
-(False_ind P H5))))))))))) in (ex3_2_ind A A TMP_20 TMP_23 TMP_27 P TMP_32 
-H1)))))))))))))) in (nat_ind TMP_2 TMP_15 TMP_33 n H))))))))) in (let TMP_54 
-\def (\lambda (a: A).(\lambda (_: ((\forall (a1: A).((leq g (AHead a1 a) a) 
-\to (\forall (P: Prop).P))))).(\lambda (a0: A).(\lambda (H0: ((\forall (a1: 
-A).((leq g (AHead a1 a0) a0) \to (\forall (P: Prop).P))))).(\lambda (a1: 
+n1) n0) (AHead x0 x1))).(let H5 \def (eq_ind A (ASort (S n1) n0) (\lambda 
+(ee: A).(match ee with [(ASort _ _) \Rightarrow True | (AHead _ _) 
+\Rightarrow False])) I (AHead x0 x1) H4) in (False_ind P H5))))))) H1)))))) n 
+H)))))) (\lambda (a: A).(\lambda (_: ((\forall (a1: A).((leq g (AHead a1 a) 
+a) \to (\forall (P: Prop).P))))).(\lambda (a0: A).(\lambda (H0: ((\forall 
+(a1: A).((leq g (AHead a1 a0) a0) \to (\forall (P: Prop).P))))).(\lambda (a1: 
 A).(\lambda (H1: (leq g (AHead a1 (AHead a a0)) (AHead a a0))).(\lambda (P: 
-Prop).(let TMP_35 \def (AHead a a0) in (let TMP_36 \def (AHead a a0) in (let 
-H_x \def (leq_gen_head1 g a1 TMP_35 TMP_36 H1) in (let H2 \def H_x in (let 
-TMP_37 \def (\lambda (a3: A).(\lambda (_: A).(leq g a1 a3))) in (let TMP_39 
-\def (\lambda (_: A).(\lambda (a4: A).(let TMP_38 \def (AHead a a0) in (leq g 
-TMP_38 a4)))) in (let TMP_42 \def (\lambda (a3: A).(\lambda (a4: A).(let 
-TMP_40 \def (AHead a a0) in (let TMP_41 \def (AHead a3 a4) in (eq A TMP_40 
-TMP_41))))) in (let TMP_53 \def (\lambda (x0: A).(\lambda (x1: A).(\lambda 
-(H3: (leq g a1 x0)).(\lambda (H4: (leq g (AHead a a0) x1)).(\lambda (H5: (eq 
-A (AHead a a0) (AHead x0 x1))).(let TMP_43 \def (\lambda (e: A).(match e with 
-[(ASort _ _) \Rightarrow a | (AHead a3 _) \Rightarrow a3])) in (let TMP_44 
-\def (AHead a a0) in (let TMP_45 \def (AHead x0 x1) in (let H6 \def (f_equal 
-A A TMP_43 TMP_44 TMP_45 H5) in (let TMP_46 \def (\lambda (e: A).(match e 
-with [(ASort _ _) \Rightarrow a0 | (AHead _ a3) \Rightarrow a3])) in (let 
-TMP_47 \def (AHead a a0) in (let TMP_48 \def (AHead x0 x1) in (let H7 \def 
-(f_equal A A TMP_46 TMP_47 TMP_48 H5) in (let TMP_52 \def (\lambda (H8: (eq A 
-a x0)).(let TMP_50 \def (\lambda (a3: A).(let TMP_49 \def (AHead a a0) in 
-(leq g TMP_49 a3))) in (let H9 \def (eq_ind_r A x1 TMP_50 H4 a0 H7) in (let 
-TMP_51 \def (\lambda (a3: A).(leq g a1 a3)) in (let H10 \def (eq_ind_r A x0 
-TMP_51 H3 a H8) in (H0 a H9 P)))))) in (TMP_52 H6))))))))))))))) in 
-(ex3_2_ind A A TMP_37 TMP_39 TMP_42 P TMP_53 H2)))))))))))))))) in (A_ind 
-TMP_1 TMP_34 TMP_54 a2))))).
+Prop).(let H_x \def (leq_gen_head1 g a1 (AHead a a0) (AHead a a0) H1) in (let 
+H2 \def H_x in (ex3_2_ind A A (\lambda (a3: A).(\lambda (_: A).(leq g a1 
+a3))) (\lambda (_: A).(\lambda (a4: A).(leq g (AHead a a0) a4))) (\lambda 
+(a3: A).(\lambda (a4: A).(eq A (AHead a a0) (AHead a3 a4)))) P (\lambda (x0: 
+A).(\lambda (x1: A).(\lambda (H3: (leq g a1 x0)).(\lambda (H4: (leq g (AHead 
+a a0) x1)).(\lambda (H5: (eq A (AHead a a0) (AHead x0 x1))).(let H6 \def 
+(f_equal A A (\lambda (e: A).(match e with [(ASort _ _) \Rightarrow a | 
+(AHead a3 _) \Rightarrow a3])) (AHead a a0) (AHead x0 x1) H5) in ((let H7 
+\def (f_equal A A (\lambda (e: A).(match e with [(ASort _ _) \Rightarrow a0 | 
+(AHead _ a3) \Rightarrow a3])) (AHead a a0) (AHead x0 x1) H5) in (\lambda 
+(H8: (eq A a x0)).(let H9 \def (eq_ind_r A x1 (\lambda (a3: A).(leq g (AHead 
+a a0) a3)) H4 a0 H7) in (let H10 \def (eq_ind_r A x0 (\lambda (a3: A).(leq g 
+a1 a3)) H3 a H8) in (H0 a H9 P))))) H6))))))) H2)))))))))) a2)).
 
index ba88961f44ab57e7514f069b08a3cdf51ca9062d..6f9475944759fbd4b3f18dee47485cd84b238b93 100644 (file)
@@ -19,19 +19,17 @@ include "basic_1/tlist/defs.ma".
 include "basic_1/s/defs.ma".
 
 let rec lref_map (f: (nat \to nat)) (d: nat) (t: T) on t: T \def match t with 
-[(TSort n) \Rightarrow (TSort n) | (TLRef i) \Rightarrow (let TMP_4 \def (blt 
-i d) in (let TMP_5 \def (match TMP_4 with [true \Rightarrow i | false 
-\Rightarrow (f i)]) in (TLRef TMP_5))) | (THead k u t0) \Rightarrow (let 
-TMP_1 \def (lref_map f d u) in (let TMP_2 \def (s k d) in (let TMP_3 \def 
-(lref_map f TMP_2 t0) in (THead k TMP_1 TMP_3))))].
+[(TSort n) \Rightarrow (TSort n) | (TLRef i) \Rightarrow (TLRef (match (blt i 
+d) with [true \Rightarrow i | false \Rightarrow (f i)])) | (THead k u t0) 
+\Rightarrow (THead k (lref_map f d u) (lref_map f (s k d) t0))].
 
 definition lift:
  nat \to (nat \to (T \to T))
 \def
- \lambda (h: nat).(\lambda (i: nat).(\lambda (t: T).(let TMP_1 \def (\lambda 
-(x: nat).(plus x h)) in (lref_map TMP_1 i t)))).
+ \lambda (h: nat).(\lambda (i: nat).(\lambda (t: T).(lref_map (\lambda (x: 
+nat).(plus x h)) i t))).
 
 let rec lifts (h: nat) (d: nat) (ts: TList) on ts: TList \def match ts with 
-[TNil \Rightarrow TNil | (TCons t ts0) \Rightarrow (let TMP_1 \def (lift h d 
-t) in (let TMP_2 \def (lifts h d ts0) in (TCons TMP_1 TMP_2)))].
+[TNil \Rightarrow TNil | (TCons t ts0) \Rightarrow (TCons (lift h d t) (lifts 
+h d ts0))].
 
index 9c625c76c804efe35a7b7165b69c4962eee6675c..e2d22dc7cd5c7bfbc3d05035acdc5b33cc9536e4 100644 (file)
@@ -20,192 +20,94 @@ theorem lift_gen_sort:
  \forall (h: nat).(\forall (d: nat).(\forall (n: nat).(\forall (t: T).((eq T 
 (TSort n) (lift h d t)) \to (eq T t (TSort n))))))
 \def
- \lambda (h: nat).(\lambda (d: nat).(\lambda (n: nat).(\lambda (t: T).(let 
-TMP_2 \def (\lambda (t0: T).((eq T (TSort n) (lift h d t0)) \to (let TMP_1 
-\def (TSort n) in (eq T t0 TMP_1)))) in (let TMP_5 \def (\lambda (n0: 
-nat).(\lambda (H: (eq T (TSort n) (lift h d (TSort n0)))).(let TMP_3 \def 
-(TSort n) in (let TMP_4 \def (TSort n0) in (sym_eq T TMP_3 TMP_4 H))))) in 
-(let TMP_49 \def (\lambda (n0: nat).(\lambda (H: (eq T (TSort n) (lift h d 
-(TLRef n0)))).(let TMP_6 \def (TLRef n0) in (let TMP_7 \def (TSort n) in (let 
-TMP_8 \def (eq T TMP_6 TMP_7) in (let TMP_27 \def (\lambda (_: (lt n0 
-d)).(let TMP_9 \def (TLRef n0) in (let TMP_10 \def (lift h d TMP_9) in (let 
-TMP_12 \def (\lambda (t0: T).(let TMP_11 \def (TSort n) in (eq T TMP_11 t0))) 
-in (let TMP_13 \def (TLRef n0) in (let TMP_14 \def (TSort n) in (let TMP_15 
-\def (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow True | (TLRef _) 
-\Rightarrow False | (THead _ _ _) \Rightarrow False])) in (let TMP_16 \def 
-(TLRef n0) in (let TMP_17 \def (lift h d TMP_16) in (let H1 \def (eq_ind T 
-TMP_14 TMP_15 I TMP_17 H) in (let TMP_18 \def (lt n0 d) in (let TMP_19 \def 
-(False_ind TMP_18 H1) in (let TMP_20 \def (lift_lref_lt n0 h d TMP_19) in 
-(let H1 \def (eq_ind T TMP_10 TMP_12 H TMP_13 TMP_20) in (let TMP_21 \def 
-(TSort n) in (let TMP_22 \def (\lambda (ee: T).(match ee with [(TSort _) 
+ \lambda (h: nat).(\lambda (d: nat).(\lambda (n: nat).(\lambda (t: T).(T_ind 
+(\lambda (t0: T).((eq T (TSort n) (lift h d t0)) \to (eq T t0 (TSort n)))) 
+(\lambda (n0: nat).(\lambda (H: (eq T (TSort n) (lift h d (TSort 
+n0)))).(sym_eq T (TSort n) (TSort n0) H))) (\lambda (n0: nat).(\lambda (H: 
+(eq T (TSort n) (lift h d (TLRef n0)))).(lt_le_e n0 d (eq T (TLRef n0) (TSort 
+n)) (\lambda (_: (lt n0 d)).(let H1 \def (eq_ind T (lift h d (TLRef n0)) 
+(\lambda (t0: T).(eq T (TSort n) t0)) H (TLRef n0) (lift_lref_lt n0 h d (let 
+H1 \def (eq_ind T (TSort n) (\lambda (ee: T).(match ee with [(TSort _) 
 \Rightarrow True | (TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow 
-False])) in (let TMP_23 \def (TLRef n0) in (let H2 \def (eq_ind T TMP_21 
-TMP_22 I TMP_23 H1) in (let TMP_24 \def (TLRef n0) in (let TMP_25 \def (TSort 
-n) in (let TMP_26 \def (eq T TMP_24 TMP_25) in (False_ind TMP_26 
-H2)))))))))))))))))))))) in (let TMP_48 \def (\lambda (_: (le d n0)).(let 
-TMP_28 \def (TLRef n0) in (let TMP_29 \def (lift h d TMP_28) in (let TMP_31 
-\def (\lambda (t0: T).(let TMP_30 \def (TSort n) in (eq T TMP_30 t0))) in 
-(let TMP_32 \def (plus n0 h) in (let TMP_33 \def (TLRef TMP_32) in (let 
-TMP_34 \def (TSort n) in (let TMP_35 \def (\lambda (ee: T).(match ee with 
-[(TSort _) \Rightarrow True | (TLRef _) \Rightarrow False | (THead _ _ _) 
-\Rightarrow False])) in (let TMP_36 \def (TLRef n0) in (let TMP_37 \def (lift 
-h d TMP_36) in (let H1 \def (eq_ind T TMP_34 TMP_35 I TMP_37 H) in (let 
-TMP_38 \def (le d n0) in (let TMP_39 \def (False_ind TMP_38 H1) in (let 
-TMP_40 \def (lift_lref_ge n0 h d TMP_39) in (let H1 \def (eq_ind T TMP_29 
-TMP_31 H TMP_33 TMP_40) in (let TMP_41 \def (TSort n) in (let TMP_42 \def 
-(\lambda (ee: T).(match ee with [(TSort _) \Rightarrow True | (TLRef _) 
-\Rightarrow False | (THead _ _ _) \Rightarrow False])) in (let TMP_43 \def 
-(plus n0 h) in (let TMP_44 \def (TLRef TMP_43) in (let H2 \def (eq_ind T 
-TMP_41 TMP_42 I TMP_44 H1) in (let TMP_45 \def (TLRef n0) in (let TMP_46 \def 
-(TSort n) in (let TMP_47 \def (eq T TMP_45 TMP_46) in (False_ind TMP_47 
-H2)))))))))))))))))))))))) in (lt_le_e n0 d TMP_8 TMP_27 TMP_48)))))))) in 
-(let TMP_68 \def (\lambda (k: K).(\lambda (t0: T).(\lambda (_: (((eq T (TSort 
-n) (lift h d t0)) \to (eq T t0 (TSort n))))).(\lambda (t1: T).(\lambda (_: 
-(((eq T (TSort n) (lift h d t1)) \to (eq T t1 (TSort n))))).(\lambda (H1: (eq 
-T (TSort n) (lift h d (THead k t0 t1)))).(let TMP_50 \def (THead k t0 t1) in 
-(let TMP_51 \def (lift h d TMP_50) in (let TMP_53 \def (\lambda (t2: T).(let 
-TMP_52 \def (TSort n) in (eq T TMP_52 t2))) in (let TMP_54 \def (lift h d t0) 
-in (let TMP_55 \def (s k d) in (let TMP_56 \def (lift h TMP_55 t1) in (let 
-TMP_57 \def (THead k TMP_54 TMP_56) in (let TMP_58 \def (lift_head k t0 t1 h 
-d) in (let H2 \def (eq_ind T TMP_51 TMP_53 H1 TMP_57 TMP_58) in (let TMP_59 
-\def (TSort n) in (let TMP_60 \def (\lambda (ee: T).(match ee with [(TSort _) 
+False])) I (lift h d (TLRef n0)) H) in (False_ind (lt n0 d) H1)))) in (let H2 
+\def (eq_ind T (TSort n) (\lambda (ee: T).(match ee with [(TSort _) 
 \Rightarrow True | (TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow 
-False])) in (let TMP_61 \def (lift h d t0) in (let TMP_62 \def (s k d) in 
-(let TMP_63 \def (lift h TMP_62 t1) in (let TMP_64 \def (THead k TMP_61 
-TMP_63) in (let H3 \def (eq_ind T TMP_59 TMP_60 I TMP_64 H2) in (let TMP_65 
-\def (THead k t0 t1) in (let TMP_66 \def (TSort n) in (let TMP_67 \def (eq T 
-TMP_65 TMP_66) in (False_ind TMP_67 H3)))))))))))))))))))))))))) in (T_ind 
-TMP_2 TMP_5 TMP_49 TMP_68 t)))))))).
+False])) I (TLRef n0) H1) in (False_ind (eq T (TLRef n0) (TSort n)) H2)))) 
+(\lambda (_: (le d n0)).(let H1 \def (eq_ind T (lift h d (TLRef n0)) (\lambda 
+(t0: T).(eq T (TSort n) t0)) H (TLRef (plus n0 h)) (lift_lref_ge n0 h d (let 
+H1 \def (eq_ind T (TSort n) (\lambda (ee: T).(match ee with [(TSort _) 
+\Rightarrow True | (TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow 
+False])) I (lift h d (TLRef n0)) H) in (False_ind (le d n0) H1)))) in (let H2 
+\def (eq_ind T (TSort n) (\lambda (ee: T).(match ee with [(TSort _) 
+\Rightarrow True | (TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow 
+False])) I (TLRef (plus n0 h)) H1) in (False_ind (eq T (TLRef n0) (TSort n)) 
+H2))))))) (\lambda (k: K).(\lambda (t0: T).(\lambda (_: (((eq T (TSort n) 
+(lift h d t0)) \to (eq T t0 (TSort n))))).(\lambda (t1: T).(\lambda (_: (((eq 
+T (TSort n) (lift h d t1)) \to (eq T t1 (TSort n))))).(\lambda (H1: (eq T 
+(TSort n) (lift h d (THead k t0 t1)))).(let H2 \def (eq_ind T (lift h d 
+(THead k t0 t1)) (\lambda (t2: T).(eq T (TSort n) t2)) H1 (THead k (lift h d 
+t0) (lift h (s k d) t1)) (lift_head k t0 t1 h d)) in (let H3 \def (eq_ind T 
+(TSort n) (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow True | 
+(TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow False])) I (THead k 
+(lift h d t0) (lift h (s k d) t1)) H2) in (False_ind (eq T (THead k t0 t1) 
+(TSort n)) H3))))))))) t)))).
 
 theorem lift_gen_lref:
  \forall (t: T).(\forall (d: nat).(\forall (h: nat).(\forall (i: nat).((eq T 
 (TLRef i) (lift h d t)) \to (or (land (lt i d) (eq T t (TLRef i))) (land (le 
 (plus d h) i) (eq T t (TLRef (minus i h)))))))))
 \def
- \lambda (t: T).(let TMP_11 \def (\lambda (t0: T).(\forall (d: nat).(\forall 
-(h: nat).(\forall (i: nat).((eq T (TLRef i) (lift h d t0)) \to (let TMP_1 
-\def (lt i d) in (let TMP_2 \def (TLRef i) in (let TMP_3 \def (eq T t0 TMP_2) 
-in (let TMP_4 \def (land TMP_1 TMP_3) in (let TMP_5 \def (plus d h) in (let 
-TMP_6 \def (le TMP_5 i) in (let TMP_7 \def (minus i h) in (let TMP_8 \def 
-(TLRef TMP_7) in (let TMP_9 \def (eq T t0 TMP_8) in (let TMP_10 \def (land 
-TMP_6 TMP_9) in (or TMP_4 TMP_10)))))))))))))))) in (let TMP_34 \def (\lambda 
-(n: nat).(\lambda (d: nat).(\lambda (h: nat).(\lambda (i: nat).(\lambda (H: 
-(eq T (TLRef i) (lift h d (TSort n)))).(let TMP_12 \def (TSort n) in (let 
-TMP_13 \def (lift h d TMP_12) in (let TMP_15 \def (\lambda (t0: T).(let 
-TMP_14 \def (TLRef i) in (eq T TMP_14 t0))) in (let TMP_16 \def (TSort n) in 
-(let TMP_17 \def (lift_sort n h d) in (let H0 \def (eq_ind T TMP_13 TMP_15 H 
-TMP_16 TMP_17) in (let TMP_18 \def (TLRef i) in (let TMP_19 \def (\lambda 
-(ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow 
-True | (THead _ _ _) \Rightarrow False])) in (let TMP_20 \def (TSort n) in 
-(let H1 \def (eq_ind T TMP_18 TMP_19 I TMP_20 H0) in (let TMP_21 \def (lt i 
-d) in (let TMP_22 \def (TSort n) in (let TMP_23 \def (TLRef i) in (let TMP_24 
-\def (eq T TMP_22 TMP_23) in (let TMP_25 \def (land TMP_21 TMP_24) in (let 
-TMP_26 \def (plus d h) in (let TMP_27 \def (le TMP_26 i) in (let TMP_28 \def 
-(TSort n) in (let TMP_29 \def (minus i h) in (let TMP_30 \def (TLRef TMP_29) 
-in (let TMP_31 \def (eq T TMP_28 TMP_30) in (let TMP_32 \def (land TMP_27 
-TMP_31) in (let TMP_33 \def (or TMP_25 TMP_32) in (False_ind TMP_33 
-H1))))))))))))))))))))))))))))) in (let TMP_162 \def (\lambda (n: 
-nat).(\lambda (d: nat).(\lambda (h: nat).(\lambda (i: nat).(\lambda (H: (eq T 
-(TLRef i) (lift h d (TLRef n)))).(let TMP_35 \def (lt i d) in (let TMP_36 
-\def (TLRef n) in (let TMP_37 \def (TLRef i) in (let TMP_38 \def (eq T TMP_36 
-TMP_37) in (let TMP_39 \def (land TMP_35 TMP_38) in (let TMP_40 \def (plus d 
-h) in (let TMP_41 \def (le TMP_40 i) in (let TMP_42 \def (TLRef n) in (let 
-TMP_43 \def (minus i h) in (let TMP_44 \def (TLRef TMP_43) in (let TMP_45 
-\def (eq T TMP_42 TMP_44) in (let TMP_46 \def (land TMP_41 TMP_45) in (let 
-TMP_47 \def (or TMP_39 TMP_46) in (let TMP_90 \def (\lambda (H0: (lt n 
-d)).(let TMP_48 \def (TLRef n) in (let TMP_49 \def (lift h d TMP_48) in (let 
-TMP_51 \def (\lambda (t0: T).(let TMP_50 \def (TLRef i) in (eq T TMP_50 t0))) 
-in (let TMP_52 \def (TLRef n) in (let TMP_53 \def (lift_lref_lt n h d H0) in 
-(let H1 \def (eq_ind T TMP_49 TMP_51 H TMP_52 TMP_53) in (let TMP_54 \def 
-(\lambda (e: T).(match e with [(TSort _) \Rightarrow i | (TLRef n0) 
-\Rightarrow n0 | (THead _ _ _) \Rightarrow i])) in (let TMP_55 \def (TLRef i) 
-in (let TMP_56 \def (TLRef n) in (let H2 \def (f_equal T nat TMP_54 TMP_55 
-TMP_56 H1) in (let TMP_69 \def (\lambda (n0: nat).(let TMP_57 \def (lt n0 d) 
-in (let TMP_58 \def (TLRef n) in (let TMP_59 \def (TLRef n0) in (let TMP_60 
-\def (eq T TMP_58 TMP_59) in (let TMP_61 \def (land TMP_57 TMP_60) in (let 
-TMP_62 \def (plus d h) in (let TMP_63 \def (le TMP_62 n0) in (let TMP_64 \def 
-(TLRef n) in (let TMP_65 \def (minus n0 h) in (let TMP_66 \def (TLRef TMP_65) 
-in (let TMP_67 \def (eq T TMP_64 TMP_66) in (let TMP_68 \def (land TMP_63 
-TMP_67) in (or TMP_61 TMP_68)))))))))))))) in (let TMP_70 \def (lt n d) in 
-(let TMP_71 \def (TLRef n) in (let TMP_72 \def (TLRef n) in (let TMP_73 \def 
-(eq T TMP_71 TMP_72) in (let TMP_74 \def (land TMP_70 TMP_73) in (let TMP_75 
-\def (plus d h) in (let TMP_76 \def (le TMP_75 n) in (let TMP_77 \def (TLRef 
-n) in (let TMP_78 \def (minus n h) in (let TMP_79 \def (TLRef TMP_78) in (let 
-TMP_80 \def (eq T TMP_77 TMP_79) in (let TMP_81 \def (land TMP_76 TMP_80) in 
-(let TMP_82 \def (lt n d) in (let TMP_83 \def (TLRef n) in (let TMP_84 \def 
-(TLRef n) in (let TMP_85 \def (eq T TMP_83 TMP_84) in (let TMP_86 \def (TLRef 
-n) in (let TMP_87 \def (refl_equal T TMP_86) in (let TMP_88 \def (conj TMP_82 
-TMP_85 H0 TMP_87) in (let TMP_89 \def (or_introl TMP_74 TMP_81 TMP_88) in 
-(eq_ind_r nat n TMP_69 TMP_89 i H2))))))))))))))))))))))))))))))))) in (let 
-TMP_161 \def (\lambda (H0: (le d n)).(let TMP_91 \def (TLRef n) in (let 
-TMP_92 \def (lift h d TMP_91) in (let TMP_94 \def (\lambda (t0: T).(let 
-TMP_93 \def (TLRef i) in (eq T TMP_93 t0))) in (let TMP_95 \def (plus n h) in 
-(let TMP_96 \def (TLRef TMP_95) in (let TMP_97 \def (lift_lref_ge n h d H0) 
-in (let H1 \def (eq_ind T TMP_92 TMP_94 H TMP_96 TMP_97) in (let TMP_98 \def 
-(\lambda (e: T).(match e with [(TSort _) \Rightarrow i | (TLRef n0) 
-\Rightarrow n0 | (THead _ _ _) \Rightarrow i])) in (let TMP_99 \def (TLRef i) 
-in (let TMP_100 \def (plus n h) in (let TMP_101 \def (TLRef TMP_100) in (let 
-H2 \def (f_equal T nat TMP_98 TMP_99 TMP_101 H1) in (let TMP_102 \def (plus n 
-h) in (let TMP_115 \def (\lambda (n0: nat).(let TMP_103 \def (lt n0 d) in 
-(let TMP_104 \def (TLRef n) in (let TMP_105 \def (TLRef n0) in (let TMP_106 
-\def (eq T TMP_104 TMP_105) in (let TMP_107 \def (land TMP_103 TMP_106) in 
-(let TMP_108 \def (plus d h) in (let TMP_109 \def (le TMP_108 n0) in (let 
-TMP_110 \def (TLRef n) in (let TMP_111 \def (minus n0 h) in (let TMP_112 \def 
-(TLRef TMP_111) in (let TMP_113 \def (eq T TMP_110 TMP_112) in (let TMP_114 
-\def (land TMP_109 TMP_113) in (or TMP_107 TMP_114)))))))))))))) in (let 
-TMP_130 \def (\lambda (n0: nat).(let TMP_116 \def (plus n h) in (let TMP_117 
-\def (lt TMP_116 d) in (let TMP_118 \def (TLRef n) in (let TMP_119 \def (plus 
-n h) in (let TMP_120 \def (TLRef TMP_119) in (let TMP_121 \def (eq T TMP_118 
-TMP_120) in (let TMP_122 \def (land TMP_117 TMP_121) in (let TMP_123 \def 
-(plus d h) in (let TMP_124 \def (plus n h) in (let TMP_125 \def (le TMP_123 
-TMP_124) in (let TMP_126 \def (TLRef n) in (let TMP_127 \def (TLRef n0) in 
-(let TMP_128 \def (eq T TMP_126 TMP_127) in (let TMP_129 \def (land TMP_125 
-TMP_128) in (or TMP_122 TMP_129)))))))))))))))) in (let TMP_131 \def (plus n 
-h) in (let TMP_132 \def (lt TMP_131 d) in (let TMP_133 \def (TLRef n) in (let 
-TMP_134 \def (plus n h) in (let TMP_135 \def (TLRef TMP_134) in (let TMP_136 
-\def (eq T TMP_133 TMP_135) in (let TMP_137 \def (land TMP_132 TMP_136) in 
-(let TMP_138 \def (plus d h) in (let TMP_139 \def (plus n h) in (let TMP_140 
-\def (le TMP_138 TMP_139) in (let TMP_141 \def (TLRef n) in (let TMP_142 \def 
-(TLRef n) in (let TMP_143 \def (eq T TMP_141 TMP_142) in (let TMP_144 \def 
-(land TMP_140 TMP_143) in (let TMP_145 \def (plus d h) in (let TMP_146 \def 
-(plus n h) in (let TMP_147 \def (le TMP_145 TMP_146) in (let TMP_148 \def 
-(TLRef n) in (let TMP_149 \def (TLRef n) in (let TMP_150 \def (eq T TMP_148 
-TMP_149) in (let TMP_151 \def (le_n h) in (let TMP_152 \def (le_plus_plus d n 
-h h H0 TMP_151) in (let TMP_153 \def (TLRef n) in (let TMP_154 \def 
-(refl_equal T TMP_153) in (let TMP_155 \def (conj TMP_147 TMP_150 TMP_152 
-TMP_154) in (let TMP_156 \def (or_intror TMP_137 TMP_144 TMP_155) in (let 
-TMP_157 \def (plus n h) in (let TMP_158 \def (minus TMP_157 h) in (let 
-TMP_159 \def (minus_plus_r n h) in (let TMP_160 \def (eq_ind_r nat n TMP_130 
-TMP_156 TMP_158 TMP_159) in (eq_ind_r nat TMP_102 TMP_115 TMP_160 i 
-H2))))))))))))))))))))))))))))))))))))))))))))))) in (lt_le_e n d TMP_47 
-TMP_90 TMP_161))))))))))))))))))))) in (let TMP_191 \def (\lambda (k: 
-K).(\lambda (t0: T).(\lambda (_: ((\forall (d: nat).(\forall (h: 
+ \lambda (t: T).(T_ind (\lambda (t0: T).(\forall (d: nat).(\forall (h: 
 nat).(\forall (i: nat).((eq T (TLRef i) (lift h d t0)) \to (or (land (lt i d) 
 (eq T t0 (TLRef i))) (land (le (plus d h) i) (eq T t0 (TLRef (minus i 
-h))))))))))).(\lambda (t1: T).(\lambda (_: ((\forall (d: nat).(\forall (h: 
-nat).(\forall (i: nat).((eq T (TLRef i) (lift h d t1)) \to (or (land (lt i d) 
-(eq T t1 (TLRef i))) (land (le (plus d h) i) (eq T t1 (TLRef (minus i 
-h))))))))))).(\lambda (d: nat).(\lambda (h: nat).(\lambda (i: nat).(\lambda 
-(H1: (eq T (TLRef i) (lift h d (THead k t0 t1)))).(let TMP_163 \def (THead k 
-t0 t1) in (let TMP_164 \def (lift h d TMP_163) in (let TMP_166 \def (\lambda 
-(t2: T).(let TMP_165 \def (TLRef i) in (eq T TMP_165 t2))) in (let TMP_167 
-\def (lift h d t0) in (let TMP_168 \def (s k d) in (let TMP_169 \def (lift h 
-TMP_168 t1) in (let TMP_170 \def (THead k TMP_167 TMP_169) in (let TMP_171 
-\def (lift_head k t0 t1 h d) in (let H2 \def (eq_ind T TMP_164 TMP_166 H1 
-TMP_170 TMP_171) in (let TMP_172 \def (TLRef i) in (let TMP_173 \def (\lambda 
+h)))))))))) (\lambda (n: nat).(\lambda (d: nat).(\lambda (h: nat).(\lambda 
+(i: nat).(\lambda (H: (eq T (TLRef i) (lift h d (TSort n)))).(let H0 \def 
+(eq_ind T (lift h d (TSort n)) (\lambda (t0: T).(eq T (TLRef i) t0)) H (TSort 
+n) (lift_sort n h d)) in (let H1 \def (eq_ind T (TLRef i) (\lambda (ee: 
+T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow True | 
+(THead _ _ _) \Rightarrow False])) I (TSort n) H0) in (False_ind (or (land 
+(lt i d) (eq T (TSort n) (TLRef i))) (land (le (plus d h) i) (eq T (TSort n) 
+(TLRef (minus i h))))) H1)))))))) (\lambda (n: nat).(\lambda (d: 
+nat).(\lambda (h: nat).(\lambda (i: nat).(\lambda (H: (eq T (TLRef i) (lift h 
+d (TLRef n)))).(lt_le_e n d (or (land (lt i d) (eq T (TLRef n) (TLRef i))) 
+(land (le (plus d h) i) (eq T (TLRef n) (TLRef (minus i h))))) (\lambda (H0: 
+(lt n d)).(let H1 \def (eq_ind T (lift h d (TLRef n)) (\lambda (t0: T).(eq T 
+(TLRef i) t0)) H (TLRef n) (lift_lref_lt n h d H0)) in (let H2 \def (f_equal 
+T nat (\lambda (e: T).(match e with [(TSort _) \Rightarrow i | (TLRef n0) 
+\Rightarrow n0 | (THead _ _ _) \Rightarrow i])) (TLRef i) (TLRef n) H1) in 
+(eq_ind_r nat n (\lambda (n0: nat).(or (land (lt n0 d) (eq T (TLRef n) (TLRef 
+n0))) (land (le (plus d h) n0) (eq T (TLRef n) (TLRef (minus n0 h)))))) 
+(or_introl (land (lt n d) (eq T (TLRef n) (TLRef n))) (land (le (plus d h) n) 
+(eq T (TLRef n) (TLRef (minus n h)))) (conj (lt n d) (eq T (TLRef n) (TLRef 
+n)) H0 (refl_equal T (TLRef n)))) i H2)))) (\lambda (H0: (le d n)).(let H1 
+\def (eq_ind T (lift h d (TLRef n)) (\lambda (t0: T).(eq T (TLRef i) t0)) H 
+(TLRef (plus n h)) (lift_lref_ge n h d H0)) in (let H2 \def (f_equal T nat 
+(\lambda (e: T).(match e with [(TSort _) \Rightarrow i | (TLRef n0) 
+\Rightarrow n0 | (THead _ _ _) \Rightarrow i])) (TLRef i) (TLRef (plus n h)) 
+H1) in (eq_ind_r nat (plus n h) (\lambda (n0: nat).(or (land (lt n0 d) (eq T 
+(TLRef n) (TLRef n0))) (land (le (plus d h) n0) (eq T (TLRef n) (TLRef (minus 
+n0 h)))))) (eq_ind_r nat n (\lambda (n0: nat).(or (land (lt (plus n h) d) (eq 
+T (TLRef n) (TLRef (plus n h)))) (land (le (plus d h) (plus n h)) (eq T 
+(TLRef n) (TLRef n0))))) (or_intror (land (lt (plus n h) d) (eq T (TLRef n) 
+(TLRef (plus n h)))) (land (le (plus d h) (plus n h)) (eq T (TLRef n) (TLRef 
+n))) (conj (le (plus d h) (plus n h)) (eq T (TLRef n) (TLRef n)) 
+(le_plus_plus d n h h H0 (le_n h)) (refl_equal T (TLRef n)))) (minus (plus n 
+h) h) (minus_plus_r n h)) i H2)))))))))) (\lambda (k: K).(\lambda (t0: 
+T).(\lambda (_: ((\forall (d: nat).(\forall (h: nat).(\forall (i: nat).((eq T 
+(TLRef i) (lift h d t0)) \to (or (land (lt i d) (eq T t0 (TLRef i))) (land 
+(le (plus d h) i) (eq T t0 (TLRef (minus i h))))))))))).(\lambda (t1: 
+T).(\lambda (_: ((\forall (d: nat).(\forall (h: nat).(\forall (i: nat).((eq T 
+(TLRef i) (lift h d t1)) \to (or (land (lt i d) (eq T t1 (TLRef i))) (land 
+(le (plus d h) i) (eq T t1 (TLRef (minus i h))))))))))).(\lambda (d: 
+nat).(\lambda (h: nat).(\lambda (i: nat).(\lambda (H1: (eq T (TLRef i) (lift 
+h d (THead k t0 t1)))).(let H2 \def (eq_ind T (lift h d (THead k t0 t1)) 
+(\lambda (t2: T).(eq T (TLRef i) t2)) H1 (THead k (lift h d t0) (lift h (s k 
+d) t1)) (lift_head k t0 t1 h d)) in (let H3 \def (eq_ind T (TLRef i) (\lambda 
 (ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow 
-True | (THead _ _ _) \Rightarrow False])) in (let TMP_174 \def (lift h d t0) 
-in (let TMP_175 \def (s k d) in (let TMP_176 \def (lift h TMP_175 t1) in (let 
-TMP_177 \def (THead k TMP_174 TMP_176) in (let H3 \def (eq_ind T TMP_172 
-TMP_173 I TMP_177 H2) in (let TMP_178 \def (lt i d) in (let TMP_179 \def 
-(THead k t0 t1) in (let TMP_180 \def (TLRef i) in (let TMP_181 \def (eq T 
-TMP_179 TMP_180) in (let TMP_182 \def (land TMP_178 TMP_181) in (let TMP_183 
-\def (plus d h) in (let TMP_184 \def (le TMP_183 i) in (let TMP_185 \def 
-(THead k t0 t1) in (let TMP_186 \def (minus i h) in (let TMP_187 \def (TLRef 
-TMP_186) in (let TMP_188 \def (eq T TMP_185 TMP_187) in (let TMP_189 \def 
-(land TMP_184 TMP_188) in (let TMP_190 \def (or TMP_182 TMP_189) in 
-(False_ind TMP_190 H3))))))))))))))))))))))))))))))))))))))) in (T_ind TMP_11 
-TMP_34 TMP_162 TMP_191 t))))).
+True | (THead _ _ _) \Rightarrow False])) I (THead k (lift h d t0) (lift h (s 
+k d) t1)) H2) in (False_ind (or (land (lt i d) (eq T (THead k t0 t1) (TLRef 
+i))) (land (le (plus d h) i) (eq T (THead k t0 t1) (TLRef (minus i h))))) 
+H3)))))))))))) t).
 
 theorem lift_gen_lref_lt:
  \forall (h: nat).(\forall (d: nat).(\forall (n: nat).((lt n d) \to (\forall 
@@ -213,35 +115,18 @@ theorem lift_gen_lref_lt:
 \def
  \lambda (h: nat).(\lambda (d: nat).(\lambda (n: nat).(\lambda (H: (lt n 
 d)).(\lambda (t: T).(\lambda (H0: (eq T (TLRef n) (lift h d t))).(let H_x 
-\def (lift_gen_lref t d h n H0) in (let H1 \def H_x in (let TMP_1 \def (lt n 
-d) in (let TMP_2 \def (TLRef n) in (let TMP_3 \def (eq T t TMP_2) in (let 
-TMP_4 \def (land TMP_1 TMP_3) in (let TMP_5 \def (plus d h) in (let TMP_6 
-\def (le TMP_5 n) in (let TMP_7 \def (minus n h) in (let TMP_8 \def (TLRef 
-TMP_7) in (let TMP_9 \def (eq T t TMP_8) in (let TMP_10 \def (land TMP_6 
-TMP_9) in (let TMP_11 \def (TLRef n) in (let TMP_12 \def (eq T t TMP_11) in 
-(let TMP_24 \def (\lambda (H2: (land (lt n d) (eq T t (TLRef n)))).(let 
-TMP_13 \def (lt n d) in (let TMP_14 \def (TLRef n) in (let TMP_15 \def (eq T 
-t TMP_14) in (let TMP_16 \def (TLRef n) in (let TMP_17 \def (eq T t TMP_16) 
-in (let TMP_23 \def (\lambda (_: (lt n d)).(\lambda (H4: (eq T t (TLRef 
-n))).(let TMP_18 \def (TLRef n) in (let TMP_20 \def (\lambda (t0: T).(let 
-TMP_19 \def (TLRef n) in (eq T t0 TMP_19))) in (let TMP_21 \def (TLRef n) in 
-(let TMP_22 \def (refl_equal T TMP_21) in (eq_ind_r T TMP_18 TMP_20 TMP_22 t 
-H4))))))) in (land_ind TMP_13 TMP_15 TMP_17 TMP_23 H2)))))))) in (let TMP_47 
-\def (\lambda (H2: (land (le (plus d h) n) (eq T t (TLRef (minus n 
-h))))).(let TMP_25 \def (plus d h) in (let TMP_26 \def (le TMP_25 n) in (let 
-TMP_27 \def (minus n h) in (let TMP_28 \def (TLRef TMP_27) in (let TMP_29 
-\def (eq T t TMP_28) in (let TMP_30 \def (TLRef n) in (let TMP_31 \def (eq T 
-t TMP_30) in (let TMP_46 \def (\lambda (H3: (le (plus d h) n)).(\lambda (H4: 
-(eq T t (TLRef (minus n h)))).(let TMP_32 \def (minus n h) in (let TMP_33 
-\def (TLRef TMP_32) in (let TMP_35 \def (\lambda (t0: T).(let TMP_34 \def 
-(TLRef n) in (eq T t0 TMP_34))) in (let TMP_36 \def (plus d h) in (let TMP_37 
-\def (minus n h) in (let TMP_38 \def (TLRef TMP_37) in (let TMP_39 \def 
-(TLRef n) in (let TMP_40 \def (eq T TMP_38 TMP_39) in (let TMP_41 \def (plus 
-d h) in (let TMP_42 \def (S n) in (let TMP_43 \def (le_plus_trans TMP_42 d h 
-H) in (let TMP_44 \def (lt_le_S n TMP_41 TMP_43) in (let TMP_45 \def 
-(le_false TMP_36 n TMP_40 H3 TMP_44) in (eq_ind_r T TMP_33 TMP_35 TMP_45 t 
-H4)))))))))))))))) in (land_ind TMP_26 TMP_29 TMP_31 TMP_46 H2)))))))))) in 
-(or_ind TMP_4 TMP_10 TMP_12 TMP_24 TMP_47 H1)))))))))))))))))))))).
+\def (lift_gen_lref t d h n H0) in (let H1 \def H_x in (or_ind (land (lt n d) 
+(eq T t (TLRef n))) (land (le (plus d h) n) (eq T t (TLRef (minus n h)))) (eq 
+T t (TLRef n)) (\lambda (H2: (land (lt n d) (eq T t (TLRef n)))).(land_ind 
+(lt n d) (eq T t (TLRef n)) (eq T t (TLRef n)) (\lambda (_: (lt n 
+d)).(\lambda (H4: (eq T t (TLRef n))).(eq_ind_r T (TLRef n) (\lambda (t0: 
+T).(eq T t0 (TLRef n))) (refl_equal T (TLRef n)) t H4))) H2)) (\lambda (H2: 
+(land (le (plus d h) n) (eq T t (TLRef (minus n h))))).(land_ind (le (plus d 
+h) n) (eq T t (TLRef (minus n h))) (eq T t (TLRef n)) (\lambda (H3: (le (plus 
+d h) n)).(\lambda (H4: (eq T t (TLRef (minus n h)))).(eq_ind_r T (TLRef 
+(minus n h)) (\lambda (t0: T).(eq T t0 (TLRef n))) (le_false (plus d h) n (eq 
+T (TLRef (minus n h)) (TLRef n)) H3 (lt_le_S n (plus d h) (le_plus_trans (S 
+n) d h H))) t H4))) H2)) H1)))))))).
 
 theorem lift_gen_lref_false:
  \forall (h: nat).(\forall (d: nat).(\forall (n: nat).((le d n) \to ((lt n 
@@ -251,22 +136,14 @@ theorem lift_gen_lref_false:
  \lambda (h: nat).(\lambda (d: nat).(\lambda (n: nat).(\lambda (H: (le d 
 n)).(\lambda (H0: (lt n (plus d h))).(\lambda (t: T).(\lambda (H1: (eq T 
 (TLRef n) (lift h d t))).(\lambda (P: Prop).(let H_x \def (lift_gen_lref t d 
-h n H1) in (let H2 \def H_x in (let TMP_1 \def (lt n d) in (let TMP_2 \def 
-(TLRef n) in (let TMP_3 \def (eq T t TMP_2) in (let TMP_4 \def (land TMP_1 
-TMP_3) in (let TMP_5 \def (plus d h) in (let TMP_6 \def (le TMP_5 n) in (let 
-TMP_7 \def (minus n h) in (let TMP_8 \def (TLRef TMP_7) in (let TMP_9 \def 
-(eq T t TMP_8) in (let TMP_10 \def (land TMP_6 TMP_9) in (let TMP_15 \def 
-(\lambda (H3: (land (lt n d) (eq T t (TLRef n)))).(let TMP_11 \def (lt n d) 
-in (let TMP_12 \def (TLRef n) in (let TMP_13 \def (eq T t TMP_12) in (let 
-TMP_14 \def (\lambda (H4: (lt n d)).(\lambda (_: (eq T t (TLRef 
-n))).(le_false d n P H H4))) in (land_ind TMP_11 TMP_13 P TMP_14 H3)))))) in 
-(let TMP_23 \def (\lambda (H3: (land (le (plus d h) n) (eq T t (TLRef (minus 
-n h))))).(let TMP_16 \def (plus d h) in (let TMP_17 \def (le TMP_16 n) in 
-(let TMP_18 \def (minus n h) in (let TMP_19 \def (TLRef TMP_18) in (let 
-TMP_20 \def (eq T t TMP_19) in (let TMP_22 \def (\lambda (H4: (le (plus d h) 
-n)).(\lambda (_: (eq T t (TLRef (minus n h)))).(let TMP_21 \def (plus d h) in 
-(le_false TMP_21 n P H4 H0)))) in (land_ind TMP_17 TMP_20 P TMP_22 H3)))))))) 
-in (or_ind TMP_4 TMP_10 P TMP_15 TMP_23 H2)))))))))))))))))))))).
+h n H1) in (let H2 \def H_x in (or_ind (land (lt n d) (eq T t (TLRef n))) 
+(land (le (plus d h) n) (eq T t (TLRef (minus n h)))) P (\lambda (H3: (land 
+(lt n d) (eq T t (TLRef n)))).(land_ind (lt n d) (eq T t (TLRef n)) P 
+(\lambda (H4: (lt n d)).(\lambda (_: (eq T t (TLRef n))).(le_false d n P H 
+H4))) H3)) (\lambda (H3: (land (le (plus d h) n) (eq T t (TLRef (minus n 
+h))))).(land_ind (le (plus d h) n) (eq T t (TLRef (minus n h))) P (\lambda 
+(H4: (le (plus d h) n)).(\lambda (_: (eq T t (TLRef (minus n h)))).(le_false 
+(plus d h) n P H4 H0))) H3)) H2)))))))))).
 
 theorem lift_gen_lref_ge:
  \forall (h: nat).(\forall (d: nat).(\forall (n: nat).((le d n) \to (\forall 
@@ -274,44 +151,21 @@ theorem lift_gen_lref_ge:
 \def
  \lambda (h: nat).(\lambda (d: nat).(\lambda (n: nat).(\lambda (H: (le d 
 n)).(\lambda (t: T).(\lambda (H0: (eq T (TLRef (plus n h)) (lift h d 
-t))).(let TMP_1 \def (plus n h) in (let H_x \def (lift_gen_lref t d h TMP_1 
-H0) in (let H1 \def H_x in (let TMP_2 \def (plus n h) in (let TMP_3 \def (lt 
-TMP_2 d) in (let TMP_4 \def (plus n h) in (let TMP_5 \def (TLRef TMP_4) in 
-(let TMP_6 \def (eq T t TMP_5) in (let TMP_7 \def (land TMP_3 TMP_6) in (let 
-TMP_8 \def (plus d h) in (let TMP_9 \def (plus n h) in (let TMP_10 \def (le 
-TMP_8 TMP_9) in (let TMP_11 \def (plus n h) in (let TMP_12 \def (minus TMP_11 
-h) in (let TMP_13 \def (TLRef TMP_12) in (let TMP_14 \def (eq T t TMP_13) in 
-(let TMP_15 \def (land TMP_10 TMP_14) in (let TMP_16 \def (TLRef n) in (let 
-TMP_17 \def (eq T t TMP_16) in (let TMP_41 \def (\lambda (H2: (land (lt (plus 
-n h) d) (eq T t (TLRef (plus n h))))).(let TMP_18 \def (plus n h) in (let 
-TMP_19 \def (lt TMP_18 d) in (let TMP_20 \def (plus n h) in (let TMP_21 \def 
-(TLRef TMP_20) in (let TMP_22 \def (eq T t TMP_21) in (let TMP_23 \def (TLRef 
-n) in (let TMP_24 \def (eq T t TMP_23) in (let TMP_40 \def (\lambda (H3: (lt 
-(plus n h) d)).(\lambda (H4: (eq T t (TLRef (plus n h)))).(let TMP_25 \def 
-(plus n h) in (let TMP_26 \def (TLRef TMP_25) in (let TMP_28 \def (\lambda 
-(t0: T).(let TMP_27 \def (TLRef n) in (eq T t0 TMP_27))) in (let TMP_29 \def 
-(plus n h) in (let TMP_30 \def (TLRef TMP_29) in (let TMP_31 \def (TLRef n) 
-in (let TMP_32 \def (eq T TMP_30 TMP_31) in (let TMP_33 \def (plus n h) in 
-(let TMP_34 \def (plus d h) in (let TMP_35 \def (le_plus_l d h) in (let 
-TMP_36 \def (lt_le_trans TMP_33 d TMP_34 H3 TMP_35) in (let TMP_37 \def 
-(simpl_lt_plus_r h n d TMP_36) in (let TMP_38 \def (lt_le_S n d TMP_37) in 
-(let TMP_39 \def (le_false d n TMP_32 H TMP_38) in (eq_ind_r T TMP_26 TMP_28 
-TMP_39 t H4))))))))))))))))) in (land_ind TMP_19 TMP_22 TMP_24 TMP_40 
-H2)))))))))) in (let TMP_61 \def (\lambda (H2: (land (le (plus d h) (plus n 
-h)) (eq T t (TLRef (minus (plus n h) h))))).(let TMP_42 \def (plus d h) in 
-(let TMP_43 \def (plus n h) in (let TMP_44 \def (le TMP_42 TMP_43) in (let 
-TMP_45 \def (plus n h) in (let TMP_46 \def (minus TMP_45 h) in (let TMP_47 
-\def (TLRef TMP_46) in (let TMP_48 \def (eq T t TMP_47) in (let TMP_49 \def 
-(TLRef n) in (let TMP_50 \def (eq T t TMP_49) in (let TMP_60 \def (\lambda 
-(_: (le (plus d h) (plus n h))).(\lambda (H4: (eq T t (TLRef (minus (plus n 
-h) h)))).(let TMP_51 \def (plus n h) in (let TMP_52 \def (minus TMP_51 h) in 
-(let TMP_53 \def (TLRef TMP_52) in (let TMP_55 \def (\lambda (t0: T).(let 
-TMP_54 \def (TLRef n) in (eq T t0 TMP_54))) in (let TMP_56 \def (plus n h) in 
-(let TMP_57 \def (minus TMP_56 h) in (let TMP_58 \def (minus_plus_r n h) in 
-(let TMP_59 \def (f_equal nat T TLRef TMP_57 n TMP_58) in (eq_ind_r T TMP_53 
-TMP_55 TMP_59 t H4))))))))))) in (land_ind TMP_44 TMP_48 TMP_50 TMP_60 
-H2)))))))))))) in (or_ind TMP_7 TMP_15 TMP_17 TMP_41 TMP_61 
-H1))))))))))))))))))))))))))).
+t))).(let H_x \def (lift_gen_lref t d h (plus n h) H0) in (let H1 \def H_x in 
+(or_ind (land (lt (plus n h) d) (eq T t (TLRef (plus n h)))) (land (le (plus 
+d h) (plus n h)) (eq T t (TLRef (minus (plus n h) h)))) (eq T t (TLRef n)) 
+(\lambda (H2: (land (lt (plus n h) d) (eq T t (TLRef (plus n h))))).(land_ind 
+(lt (plus n h) d) (eq T t (TLRef (plus n h))) (eq T t (TLRef n)) (\lambda 
+(H3: (lt (plus n h) d)).(\lambda (H4: (eq T t (TLRef (plus n h)))).(eq_ind_r 
+T (TLRef (plus n h)) (\lambda (t0: T).(eq T t0 (TLRef n))) (le_false d n (eq 
+T (TLRef (plus n h)) (TLRef n)) H (lt_le_S n d (simpl_lt_plus_r h n d 
+(lt_le_trans (plus n h) d (plus d h) H3 (le_plus_l d h))))) t H4))) H2)) 
+(\lambda (H2: (land (le (plus d h) (plus n h)) (eq T t (TLRef (minus (plus n 
+h) h))))).(land_ind (le (plus d h) (plus n h)) (eq T t (TLRef (minus (plus n 
+h) h))) (eq T t (TLRef n)) (\lambda (_: (le (plus d h) (plus n h))).(\lambda 
+(H4: (eq T t (TLRef (minus (plus n h) h)))).(eq_ind_r T (TLRef (minus (plus n 
+h) h)) (\lambda (t0: T).(eq T t0 (TLRef n))) (f_equal nat T TLRef (minus 
+(plus n h) h) n (minus_plus_r n h)) t H4))) H2)) H1)))))))).
 
 theorem lift_gen_head:
  \forall (k: K).(\forall (u: T).(\forall (t: T).(\forall (x: T).(\forall (h: 
@@ -320,67 +174,39 @@ nat).(\forall (d: nat).((eq T (THead k u t) (lift h d x)) \to (ex3_2 T T
 T).(\lambda (_: T).(eq T u (lift h d y)))) (\lambda (_: T).(\lambda (z: 
 T).(eq T t (lift h (s k d) z)))))))))))
 \def
- \lambda (k: K).(\lambda (u: T).(\lambda (t: T).(\lambda (x: T).(let TMP_8 
-\def (\lambda (t0: T).(\forall (h: nat).(\forall (d: nat).((eq T (THead k u 
-t) (lift h d t0)) \to (let TMP_2 \def (\lambda (y: T).(\lambda (z: T).(let 
-TMP_1 \def (THead k y z) in (eq T t0 TMP_1)))) in (let TMP_4 \def (\lambda 
-(y: T).(\lambda (_: T).(let TMP_3 \def (lift h d y) in (eq T u TMP_3)))) in 
-(let TMP_7 \def (\lambda (_: T).(\lambda (z: T).(let TMP_5 \def (s k d) in 
-(let TMP_6 \def (lift h TMP_5 z) in (eq T t TMP_6))))) in (ex3_2 T T TMP_2 
-TMP_4 TMP_7)))))))) in (let TMP_27 \def (\lambda (n: nat).(\lambda (h: 
-nat).(\lambda (d: nat).(\lambda (H: (eq T (THead k u t) (lift h d (TSort 
-n)))).(let TMP_9 \def (TSort n) in (let TMP_10 \def (lift h d TMP_9) in (let 
-TMP_12 \def (\lambda (t0: T).(let TMP_11 \def (THead k u t) in (eq T TMP_11 
-t0))) in (let TMP_13 \def (TSort n) in (let TMP_14 \def (lift_sort n h d) in 
-(let H0 \def (eq_ind T TMP_10 TMP_12 H TMP_13 TMP_14) in (let TMP_15 \def 
-(THead k u t) in (let TMP_16 \def (\lambda (ee: T).(match ee with [(TSort _) 
-\Rightarrow False | (TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow 
-True])) in (let TMP_17 \def (TSort n) in (let H1 \def (eq_ind T TMP_15 TMP_16 
-I TMP_17 H0) in (let TMP_20 \def (\lambda (y: T).(\lambda (z: T).(let TMP_18 
-\def (TSort n) in (let TMP_19 \def (THead k y z) in (eq T TMP_18 TMP_19))))) 
-in (let TMP_22 \def (\lambda (y: T).(\lambda (_: T).(let TMP_21 \def (lift h 
-d y) in (eq T u TMP_21)))) in (let TMP_25 \def (\lambda (_: T).(\lambda (z: 
-T).(let TMP_23 \def (s k d) in (let TMP_24 \def (lift h TMP_23 z) in (eq T t 
-TMP_24))))) in (let TMP_26 \def (ex3_2 T T TMP_20 TMP_22 TMP_25) in 
-(False_ind TMP_26 H1))))))))))))))))))) in (let TMP_77 \def (\lambda (n: 
+ \lambda (k: K).(\lambda (u: T).(\lambda (t: T).(\lambda (x: T).(T_ind 
+(\lambda (t0: T).(\forall (h: nat).(\forall (d: nat).((eq T (THead k u t) 
+(lift h d t0)) \to (ex3_2 T T (\lambda (y: T).(\lambda (z: T).(eq T t0 (THead 
+k y z)))) (\lambda (y: T).(\lambda (_: T).(eq T u (lift h d y)))) (\lambda 
+(_: T).(\lambda (z: T).(eq T t (lift h (s k d) z))))))))) (\lambda (n: 
 nat).(\lambda (h: nat).(\lambda (d: nat).(\lambda (H: (eq T (THead k u t) 
-(lift h d (TLRef n)))).(let TMP_30 \def (\lambda (y: T).(\lambda (z: T).(let 
-TMP_28 \def (TLRef n) in (let TMP_29 \def (THead k y z) in (eq T TMP_28 
-TMP_29))))) in (let TMP_32 \def (\lambda (y: T).(\lambda (_: T).(let TMP_31 
-\def (lift h d y) in (eq T u TMP_31)))) in (let TMP_35 \def (\lambda (_: 
-T).(\lambda (z: T).(let TMP_33 \def (s k d) in (let TMP_34 \def (lift h 
-TMP_33 z) in (eq T t TMP_34))))) in (let TMP_36 \def (ex3_2 T T TMP_30 TMP_32 
-TMP_35) in (let TMP_55 \def (\lambda (H0: (lt n d)).(let TMP_37 \def (TLRef 
-n) in (let TMP_38 \def (lift h d TMP_37) in (let TMP_40 \def (\lambda (t0: 
-T).(let TMP_39 \def (THead k u t) in (eq T TMP_39 t0))) in (let TMP_41 \def 
-(TLRef n) in (let TMP_42 \def (lift_lref_lt n h d H0) in (let H1 \def (eq_ind 
-T TMP_38 TMP_40 H TMP_41 TMP_42) in (let TMP_43 \def (THead k u t) in (let 
-TMP_44 \def (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | 
-(TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow True])) in (let 
-TMP_45 \def (TLRef n) in (let H2 \def (eq_ind T TMP_43 TMP_44 I TMP_45 H1) in 
-(let TMP_48 \def (\lambda (y: T).(\lambda (z: T).(let TMP_46 \def (TLRef n) 
-in (let TMP_47 \def (THead k y z) in (eq T TMP_46 TMP_47))))) in (let TMP_50 
-\def (\lambda (y: T).(\lambda (_: T).(let TMP_49 \def (lift h d y) in (eq T u 
-TMP_49)))) in (let TMP_53 \def (\lambda (_: T).(\lambda (z: T).(let TMP_51 
-\def (s k d) in (let TMP_52 \def (lift h TMP_51 z) in (eq T t TMP_52))))) in 
-(let TMP_54 \def (ex3_2 T T TMP_48 TMP_50 TMP_53) in (False_ind TMP_54 
-H2)))))))))))))))) in (let TMP_76 \def (\lambda (H0: (le d n)).(let TMP_56 
-\def (TLRef n) in (let TMP_57 \def (lift h d TMP_56) in (let TMP_59 \def 
-(\lambda (t0: T).(let TMP_58 \def (THead k u t) in (eq T TMP_58 t0))) in (let 
-TMP_60 \def (plus n h) in (let TMP_61 \def (TLRef TMP_60) in (let TMP_62 \def 
-(lift_lref_ge n h d H0) in (let H1 \def (eq_ind T TMP_57 TMP_59 H TMP_61 
-TMP_62) in (let TMP_63 \def (THead k u t) in (let TMP_64 \def (\lambda (ee: 
-T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False 
-| (THead _ _ _) \Rightarrow True])) in (let TMP_65 \def (plus n h) in (let 
-TMP_66 \def (TLRef TMP_65) in (let H2 \def (eq_ind T TMP_63 TMP_64 I TMP_66 
-H1) in (let TMP_69 \def (\lambda (y: T).(\lambda (z: T).(let TMP_67 \def 
-(TLRef n) in (let TMP_68 \def (THead k y z) in (eq T TMP_67 TMP_68))))) in 
-(let TMP_71 \def (\lambda (y: T).(\lambda (_: T).(let TMP_70 \def (lift h d 
-y) in (eq T u TMP_70)))) in (let TMP_74 \def (\lambda (_: T).(\lambda (z: 
-T).(let TMP_72 \def (s k d) in (let TMP_73 \def (lift h TMP_72 z) in (eq T t 
-TMP_73))))) in (let TMP_75 \def (ex3_2 T T TMP_69 TMP_71 TMP_74) in 
-(False_ind TMP_75 H2)))))))))))))))))) in (lt_le_e n d TMP_36 TMP_55 
-TMP_76))))))))))) in (let TMP_205 \def (\lambda (k0: K).(\lambda (t0: 
+(lift h d (TSort n)))).(let H0 \def (eq_ind T (lift h d (TSort n)) (\lambda 
+(t0: T).(eq T (THead k u t) t0)) H (TSort n) (lift_sort n h d)) in (let H1 
+\def (eq_ind T (THead k u t) (\lambda (ee: T).(match ee with [(TSort _) 
+\Rightarrow False | (TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow 
+True])) I (TSort n) H0) in (False_ind (ex3_2 T T (\lambda (y: T).(\lambda (z: 
+T).(eq T (TSort n) (THead k y z)))) (\lambda (y: T).(\lambda (_: T).(eq T u 
+(lift h d y)))) (\lambda (_: T).(\lambda (z: T).(eq T t (lift h (s k d) 
+z))))) H1))))))) (\lambda (n: nat).(\lambda (h: nat).(\lambda (d: 
+nat).(\lambda (H: (eq T (THead k u t) (lift h d (TLRef n)))).(lt_le_e n d 
+(ex3_2 T T (\lambda (y: T).(\lambda (z: T).(eq T (TLRef n) (THead k y z)))) 
+(\lambda (y: T).(\lambda (_: T).(eq T u (lift h d y)))) (\lambda (_: 
+T).(\lambda (z: T).(eq T t (lift h (s k d) z))))) (\lambda (H0: (lt n 
+d)).(let H1 \def (eq_ind T (lift h d (TLRef n)) (\lambda (t0: T).(eq T (THead 
+k u t) t0)) H (TLRef n) (lift_lref_lt n h d H0)) in (let H2 \def (eq_ind T 
+(THead k u t) (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | 
+(TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow True])) I (TLRef n) 
+H1) in (False_ind (ex3_2 T T (\lambda (y: T).(\lambda (z: T).(eq T (TLRef n) 
+(THead k y z)))) (\lambda (y: T).(\lambda (_: T).(eq T u (lift h d y)))) 
+(\lambda (_: T).(\lambda (z: T).(eq T t (lift h (s k d) z))))) H2)))) 
+(\lambda (H0: (le d n)).(let H1 \def (eq_ind T (lift h d (TLRef n)) (\lambda 
+(t0: T).(eq T (THead k u t) t0)) H (TLRef (plus n h)) (lift_lref_ge n h d 
+H0)) in (let H2 \def (eq_ind T (THead k u t) (\lambda (ee: T).(match ee with 
+[(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | (THead _ _ _) 
+\Rightarrow True])) I (TLRef (plus n h)) H1) in (False_ind (ex3_2 T T 
+(\lambda (y: T).(\lambda (z: T).(eq T (TLRef n) (THead k y z)))) (\lambda (y: 
+T).(\lambda (_: T).(eq T u (lift h d y)))) (\lambda (_: T).(\lambda (z: 
+T).(eq T t (lift h (s k d) z))))) H2))))))))) (\lambda (k0: K).(\lambda (t0: 
 T).(\lambda (H: ((\forall (h: nat).(\forall (d: nat).((eq T (THead k u t) 
 (lift h d t0)) \to (ex3_2 T T (\lambda (y: T).(\lambda (z: T).(eq T t0 (THead 
 k y z)))) (\lambda (y: T).(\lambda (_: T).(eq T u (lift h d y)))) (\lambda 
@@ -390,105 +216,54 @@ T).(\lambda (H0: ((\forall (h: nat).(\forall (d: nat).((eq T (THead k u t)
 k y z)))) (\lambda (y: T).(\lambda (_: T).(eq T u (lift h d y)))) (\lambda 
 (_: T).(\lambda (z: T).(eq T t (lift h (s k d) z)))))))))).(\lambda (h: 
 nat).(\lambda (d: nat).(\lambda (H1: (eq T (THead k u t) (lift h d (THead k0 
-t0 t1)))).(let TMP_78 \def (THead k0 t0 t1) in (let TMP_79 \def (lift h d 
-TMP_78) in (let TMP_81 \def (\lambda (t2: T).(let TMP_80 \def (THead k u t) 
-in (eq T TMP_80 t2))) in (let TMP_82 \def (lift h d t0) in (let TMP_83 \def 
-(s k0 d) in (let TMP_84 \def (lift h TMP_83 t1) in (let TMP_85 \def (THead k0 
-TMP_82 TMP_84) in (let TMP_86 \def (lift_head k0 t0 t1 h d) in (let H2 \def 
-(eq_ind T TMP_79 TMP_81 H1 TMP_85 TMP_86) in (let TMP_87 \def (\lambda (e: 
-T).(match e with [(TSort _) \Rightarrow k | (TLRef _) \Rightarrow k | (THead 
-k1 _ _) \Rightarrow k1])) in (let TMP_88 \def (THead k u t) in (let TMP_89 
-\def (lift h d t0) in (let TMP_90 \def (s k0 d) in (let TMP_91 \def (lift h 
-TMP_90 t1) in (let TMP_92 \def (THead k0 TMP_89 TMP_91) in (let H3 \def 
-(f_equal T K TMP_87 TMP_88 TMP_92 H2) in (let TMP_93 \def (\lambda (e: 
-T).(match e with [(TSort _) \Rightarrow u | (TLRef _) \Rightarrow u | (THead 
-_ t2 _) \Rightarrow t2])) in (let TMP_94 \def (THead k u t) in (let TMP_95 
-\def (lift h d t0) in (let TMP_96 \def (s k0 d) in (let TMP_97 \def (lift h 
-TMP_96 t1) in (let TMP_98 \def (THead k0 TMP_95 TMP_97) in (let H4 \def 
-(f_equal T T TMP_93 TMP_94 TMP_98 H2) in (let TMP_99 \def (\lambda (e: 
-T).(match e with [(TSort _) \Rightarrow t | (TLRef _) \Rightarrow t | (THead 
-_ _ t2) \Rightarrow t2])) in (let TMP_100 \def (THead k u t) in (let TMP_101 
-\def (lift h d t0) in (let TMP_102 \def (s k0 d) in (let TMP_103 \def (lift h 
-TMP_102 t1) in (let TMP_104 \def (THead k0 TMP_101 TMP_103) in (let H5 \def 
-(f_equal T T TMP_99 TMP_100 TMP_104 H2) in (let TMP_203 \def (\lambda (H6: 
-(eq T u (lift h d t0))).(\lambda (H7: (eq K k k0)).(let TMP_107 \def (\lambda 
-(k1: K).(let TMP_105 \def (s k1 d) in (let TMP_106 \def (lift h TMP_105 t1) 
-in (eq T t TMP_106)))) in (let H8 \def (eq_ind_r K k0 TMP_107 H5 k H7) in 
-(let TMP_116 \def (\lambda (k1: K).(let TMP_110 \def (\lambda (y: T).(\lambda 
-(z: T).(let TMP_108 \def (THead k1 t0 t1) in (let TMP_109 \def (THead k y z) 
-in (eq T TMP_108 TMP_109))))) in (let TMP_112 \def (\lambda (y: T).(\lambda 
-(_: T).(let TMP_111 \def (lift h d y) in (eq T u TMP_111)))) in (let TMP_115 
-\def (\lambda (_: T).(\lambda (z: T).(let TMP_113 \def (s k d) in (let 
-TMP_114 \def (lift h TMP_113 z) in (eq T t TMP_114))))) in (ex3_2 T T TMP_110 
-TMP_112 TMP_115))))) in (let TMP_124 \def (\lambda (t2: T).(\forall (h0: 
-nat).(\forall (d0: nat).((eq T (THead k u t2) (lift h0 d0 t1)) \to (let 
-TMP_118 \def (\lambda (y: T).(\lambda (z: T).(let TMP_117 \def (THead k y z) 
-in (eq T t1 TMP_117)))) in (let TMP_120 \def (\lambda (y: T).(\lambda (_: 
-T).(let TMP_119 \def (lift h0 d0 y) in (eq T u TMP_119)))) in (let TMP_123 
-\def (\lambda (_: T).(\lambda (z: T).(let TMP_121 \def (s k d0) in (let 
-TMP_122 \def (lift h0 TMP_121 z) in (eq T t2 TMP_122))))) in (ex3_2 T T 
-TMP_118 TMP_120 TMP_123)))))))) in (let TMP_125 \def (s k d) in (let TMP_126 
-\def (lift h TMP_125 t1) in (let H9 \def (eq_ind T t TMP_124 H0 TMP_126 H8) 
-in (let TMP_134 \def (\lambda (t2: T).(\forall (h0: nat).(\forall (d0: 
-nat).((eq T (THead k u t2) (lift h0 d0 t0)) \to (let TMP_128 \def (\lambda 
-(y: T).(\lambda (z: T).(let TMP_127 \def (THead k y z) in (eq T t0 
-TMP_127)))) in (let TMP_130 \def (\lambda (y: T).(\lambda (_: T).(let TMP_129 
-\def (lift h0 d0 y) in (eq T u TMP_129)))) in (let TMP_133 \def (\lambda (_: 
-T).(\lambda (z: T).(let TMP_131 \def (s k d0) in (let TMP_132 \def (lift h0 
-TMP_131 z) in (eq T t2 TMP_132))))) in (ex3_2 T T TMP_128 TMP_130 
-TMP_133)))))))) in (let TMP_135 \def (s k d) in (let TMP_136 \def (lift h 
-TMP_135 t1) in (let H10 \def (eq_ind T t TMP_134 H TMP_136 H8) in (let 
-TMP_137 \def (s k d) in (let TMP_138 \def (lift h TMP_137 t1) in (let TMP_147 
-\def (\lambda (t2: T).(let TMP_141 \def (\lambda (y: T).(\lambda (z: T).(let 
-TMP_139 \def (THead k t0 t1) in (let TMP_140 \def (THead k y z) in (eq T 
-TMP_139 TMP_140))))) in (let TMP_143 \def (\lambda (y: T).(\lambda (_: 
-T).(let TMP_142 \def (lift h d y) in (eq T u TMP_142)))) in (let TMP_146 \def 
-(\lambda (_: T).(\lambda (z: T).(let TMP_144 \def (s k d) in (let TMP_145 
-\def (lift h TMP_144 z) in (eq T t2 TMP_145))))) in (ex3_2 T T TMP_141 
-TMP_143 TMP_146))))) in (let TMP_157 \def (\lambda (t2: T).(\forall (h0: 
-nat).(\forall (d0: nat).((eq T (THead k t2 (lift h (s k d) t1)) (lift h0 d0 
-t0)) \to (let TMP_149 \def (\lambda (y: T).(\lambda (z: T).(let TMP_148 \def 
-(THead k y z) in (eq T t0 TMP_148)))) in (let TMP_151 \def (\lambda (y: 
-T).(\lambda (_: T).(let TMP_150 \def (lift h0 d0 y) in (eq T t2 TMP_150)))) 
-in (let TMP_156 \def (\lambda (_: T).(\lambda (z: T).(let TMP_152 \def (s k 
-d) in (let TMP_153 \def (lift h TMP_152 t1) in (let TMP_154 \def (s k d0) in 
-(let TMP_155 \def (lift h0 TMP_154 z) in (eq T TMP_153 TMP_155))))))) in 
-(ex3_2 T T TMP_149 TMP_151 TMP_156)))))))) in (let TMP_158 \def (lift h d t0) 
-in (let H11 \def (eq_ind T u TMP_157 H10 TMP_158 H6) in (let TMP_168 \def 
+t0 t1)))).(let H2 \def (eq_ind T (lift h d (THead k0 t0 t1)) (\lambda (t2: 
+T).(eq T (THead k u t) t2)) H1 (THead k0 (lift h d t0) (lift h (s k0 d) t1)) 
+(lift_head k0 t0 t1 h d)) in (let H3 \def (f_equal T K (\lambda (e: T).(match 
+e with [(TSort _) \Rightarrow k | (TLRef _) \Rightarrow k | (THead k1 _ _) 
+\Rightarrow k1])) (THead k u t) (THead k0 (lift h d t0) (lift h (s k0 d) t1)) 
+H2) in ((let H4 \def (f_equal T T (\lambda (e: T).(match e with [(TSort _) 
+\Rightarrow u | (TLRef _) \Rightarrow u | (THead _ t2 _) \Rightarrow t2])) 
+(THead k u t) (THead k0 (lift h d t0) (lift h (s k0 d) t1)) H2) in ((let H5 
+\def (f_equal T T (\lambda (e: T).(match e with [(TSort _) \Rightarrow t | 
+(TLRef _) \Rightarrow t | (THead _ _ t2) \Rightarrow t2])) (THead k u t) 
+(THead k0 (lift h d t0) (lift h (s k0 d) t1)) H2) in (\lambda (H6: (eq T u 
+(lift h d t0))).(\lambda (H7: (eq K k k0)).(let H8 \def (eq_ind_r K k0 
+(\lambda (k1: K).(eq T t (lift h (s k1 d) t1))) H5 k H7) in (eq_ind K k 
+(\lambda (k1: K).(ex3_2 T T (\lambda (y: T).(\lambda (z: T).(eq T (THead k1 
+t0 t1) (THead k y z)))) (\lambda (y: T).(\lambda (_: T).(eq T u (lift h d 
+y)))) (\lambda (_: T).(\lambda (z: T).(eq T t (lift h (s k d) z)))))) (let H9 
+\def (eq_ind T t (\lambda (t2: T).(\forall (h0: nat).(\forall (d0: nat).((eq 
+T (THead k u t2) (lift h0 d0 t1)) \to (ex3_2 T T (\lambda (y: T).(\lambda (z: 
+T).(eq T t1 (THead k y z)))) (\lambda (y: T).(\lambda (_: T).(eq T u (lift h0 
+d0 y)))) (\lambda (_: T).(\lambda (z: T).(eq T t2 (lift h0 (s k d0) 
+z))))))))) H0 (lift h (s k d) t1) H8) in (let H10 \def (eq_ind T t (\lambda 
+(t2: T).(\forall (h0: nat).(\forall (d0: nat).((eq T (THead k u t2) (lift h0 
+d0 t0)) \to (ex3_2 T T (\lambda (y: T).(\lambda (z: T).(eq T t0 (THead k y 
+z)))) (\lambda (y: T).(\lambda (_: T).(eq T u (lift h0 d0 y)))) (\lambda (_: 
+T).(\lambda (z: T).(eq T t2 (lift h0 (s k d0) z))))))))) H (lift h (s k d) 
+t1) H8) in (eq_ind_r T (lift h (s k d) t1) (\lambda (t2: T).(ex3_2 T T 
+(\lambda (y: T).(\lambda (z: T).(eq T (THead k t0 t1) (THead k y z)))) 
+(\lambda (y: T).(\lambda (_: T).(eq T u (lift h d y)))) (\lambda (_: 
+T).(\lambda (z: T).(eq T t2 (lift h (s k d) z)))))) (let H11 \def (eq_ind T u 
 (\lambda (t2: T).(\forall (h0: nat).(\forall (d0: nat).((eq T (THead k t2 
-(lift h (s k d) t1)) (lift h0 d0 t1)) \to (let TMP_160 \def (\lambda (y: 
-T).(\lambda (z: T).(let TMP_159 \def (THead k y z) in (eq T t1 TMP_159)))) in 
-(let TMP_162 \def (\lambda (y: T).(\lambda (_: T).(let TMP_161 \def (lift h0 
-d0 y) in (eq T t2 TMP_161)))) in (let TMP_167 \def (\lambda (_: T).(\lambda 
-(z: T).(let TMP_163 \def (s k d) in (let TMP_164 \def (lift h TMP_163 t1) in 
-(let TMP_165 \def (s k d0) in (let TMP_166 \def (lift h0 TMP_165 z) in (eq T 
-TMP_164 TMP_166))))))) in (ex3_2 T T TMP_160 TMP_162 TMP_167)))))))) in (let 
-TMP_169 \def (lift h d t0) in (let H12 \def (eq_ind T u TMP_168 H9 TMP_169 
-H6) in (let TMP_170 \def (lift h d t0) in (let TMP_181 \def (\lambda (t2: 
-T).(let TMP_173 \def (\lambda (y: T).(\lambda (z: T).(let TMP_171 \def (THead 
-k t0 t1) in (let TMP_172 \def (THead k y z) in (eq T TMP_171 TMP_172))))) in 
-(let TMP_175 \def (\lambda (y: T).(\lambda (_: T).(let TMP_174 \def (lift h d 
-y) in (eq T t2 TMP_174)))) in (let TMP_180 \def (\lambda (_: T).(\lambda (z: 
-T).(let TMP_176 \def (s k d) in (let TMP_177 \def (lift h TMP_176 t1) in (let 
-TMP_178 \def (s k d) in (let TMP_179 \def (lift h TMP_178 z) in (eq T TMP_177 
-TMP_179))))))) in (ex3_2 T T TMP_173 TMP_175 TMP_180))))) in (let TMP_184 
-\def (\lambda (y: T).(\lambda (z: T).(let TMP_182 \def (THead k t0 t1) in 
-(let TMP_183 \def (THead k y z) in (eq T TMP_182 TMP_183))))) in (let TMP_187 
-\def (\lambda (y: T).(\lambda (_: T).(let TMP_185 \def (lift h d t0) in (let 
-TMP_186 \def (lift h d y) in (eq T TMP_185 TMP_186))))) in (let TMP_192 \def 
-(\lambda (_: T).(\lambda (z: T).(let TMP_188 \def (s k d) in (let TMP_189 
-\def (lift h TMP_188 t1) in (let TMP_190 \def (s k d) in (let TMP_191 \def 
-(lift h TMP_190 z) in (eq T TMP_189 TMP_191))))))) in (let TMP_193 \def 
-(THead k t0 t1) in (let TMP_194 \def (refl_equal T TMP_193) in (let TMP_195 
-\def (lift h d t0) in (let TMP_196 \def (refl_equal T TMP_195) in (let 
-TMP_197 \def (s k d) in (let TMP_198 \def (lift h TMP_197 t1) in (let TMP_199 
-\def (refl_equal T TMP_198) in (let TMP_200 \def (ex3_2_intro T T TMP_184 
-TMP_187 TMP_192 t0 t1 TMP_194 TMP_196 TMP_199) in (let TMP_201 \def (eq_ind_r 
-T TMP_170 TMP_181 TMP_200 u H6) in (let TMP_202 \def (eq_ind_r T TMP_138 
-TMP_147 TMP_201 t H8) in (eq_ind K k TMP_116 TMP_202 k0 
-H7)))))))))))))))))))))))))))))))))))))) in (let TMP_204 \def (TMP_203 H4) in 
-(TMP_204 H3))))))))))))))))))))))))))))))))))))))))) in (T_ind TMP_8 TMP_27 
-TMP_77 TMP_205 x)))))))).
+(lift h (s k d) t1)) (lift h0 d0 t0)) \to (ex3_2 T T (\lambda (y: T).(\lambda 
+(z: T).(eq T t0 (THead k y z)))) (\lambda (y: T).(\lambda (_: T).(eq T t2 
+(lift h0 d0 y)))) (\lambda (_: T).(\lambda (z: T).(eq T (lift h (s k d) t1) 
+(lift h0 (s k d0) z))))))))) H10 (lift h d t0) H6) in (let H12 \def (eq_ind T 
+u (\lambda (t2: T).(\forall (h0: nat).(\forall (d0: nat).((eq T (THead k t2 
+(lift h (s k d) t1)) (lift h0 d0 t1)) \to (ex3_2 T T (\lambda (y: T).(\lambda 
+(z: T).(eq T t1 (THead k y z)))) (\lambda (y: T).(\lambda (_: T).(eq T t2 
+(lift h0 d0 y)))) (\lambda (_: T).(\lambda (z: T).(eq T (lift h (s k d) t1) 
+(lift h0 (s k d0) z))))))))) H9 (lift h d t0) H6) in (eq_ind_r T (lift h d 
+t0) (\lambda (t2: T).(ex3_2 T T (\lambda (y: T).(\lambda (z: T).(eq T (THead 
+k t0 t1) (THead k y z)))) (\lambda (y: T).(\lambda (_: T).(eq T t2 (lift h d 
+y)))) (\lambda (_: T).(\lambda (z: T).(eq T (lift h (s k d) t1) (lift h (s k 
+d) z)))))) (ex3_2_intro T T (\lambda (y: T).(\lambda (z: T).(eq T (THead k t0 
+t1) (THead k y z)))) (\lambda (y: T).(\lambda (_: T).(eq T (lift h d t0) 
+(lift h d y)))) (\lambda (_: T).(\lambda (z: T).(eq T (lift h (s k d) t1) 
+(lift h (s k d) z)))) t0 t1 (refl_equal T (THead k t0 t1)) (refl_equal T 
+(lift h d t0)) (refl_equal T (lift h (s k d) t1))) u H6))) t H8))) k0 H7))))) 
+H4)) H3))))))))))) x)))).
 
 theorem lift_gen_bind:
  \forall (b: B).(\forall (u: T).(\forall (t: T).(\forall (x: T).(\forall (h: 
@@ -499,60 +274,30 @@ T).(eq T t (lift h (S d) z)))))))))))
 \def
  \lambda (b: B).(\lambda (u: T).(\lambda (t: T).(\lambda (x: T).(\lambda (h: 
 nat).(\lambda (d: nat).(\lambda (H: (eq T (THead (Bind b) u t) (lift h d 
-x))).(let TMP_1 \def (Bind b) in (let H_x \def (lift_gen_head TMP_1 u t x h d 
-H) in (let H0 \def H_x in (let TMP_4 \def (\lambda (y: T).(\lambda (z: 
-T).(let TMP_2 \def (Bind b) in (let TMP_3 \def (THead TMP_2 y z) in (eq T x 
-TMP_3))))) in (let TMP_6 \def (\lambda (y: T).(\lambda (_: T).(let TMP_5 \def 
-(lift h d y) in (eq T u TMP_5)))) in (let TMP_9 \def (\lambda (_: T).(\lambda 
-(z: T).(let TMP_7 \def (S d) in (let TMP_8 \def (lift h TMP_7 z) in (eq T t 
-TMP_8))))) in (let TMP_12 \def (\lambda (y: T).(\lambda (z: T).(let TMP_10 
-\def (Bind b) in (let TMP_11 \def (THead TMP_10 y z) in (eq T x TMP_11))))) 
-in (let TMP_14 \def (\lambda (y: T).(\lambda (_: T).(let TMP_13 \def (lift h 
-d y) in (eq T u TMP_13)))) in (let TMP_17 \def (\lambda (_: T).(\lambda (z: 
-T).(let TMP_15 \def (S d) in (let TMP_16 \def (lift h TMP_15 z) in (eq T t 
-TMP_16))))) in (let TMP_18 \def (ex3_2 T T TMP_12 TMP_14 TMP_17) in (let 
-TMP_81 \def (\lambda (x0: T).(\lambda (x1: T).(\lambda (H1: (eq T x (THead 
+x))).(let H_x \def (lift_gen_head (Bind b) u t x h d H) in (let H0 \def H_x 
+in (ex3_2_ind T T (\lambda (y: T).(\lambda (z: T).(eq T x (THead (Bind b) y 
+z)))) (\lambda (y: T).(\lambda (_: T).(eq T u (lift h d y)))) (\lambda (_: 
+T).(\lambda (z: T).(eq T t (lift h (S d) z)))) (ex3_2 T T (\lambda (y: 
+T).(\lambda (z: T).(eq T x (THead (Bind b) y z)))) (\lambda (y: T).(\lambda 
+(_: T).(eq T u (lift h d y)))) (\lambda (_: T).(\lambda (z: T).(eq T t (lift 
+h (S d) z))))) (\lambda (x0: T).(\lambda (x1: T).(\lambda (H1: (eq T x (THead 
 (Bind b) x0 x1))).(\lambda (H2: (eq T u (lift h d x0))).(\lambda (H3: (eq T t 
-(lift h (S d) x1))).(let TMP_19 \def (Bind b) in (let TMP_20 \def (THead 
-TMP_19 x0 x1) in (let TMP_29 \def (\lambda (t0: T).(let TMP_23 \def (\lambda 
-(y: T).(\lambda (z: T).(let TMP_21 \def (Bind b) in (let TMP_22 \def (THead 
-TMP_21 y z) in (eq T t0 TMP_22))))) in (let TMP_25 \def (\lambda (y: 
-T).(\lambda (_: T).(let TMP_24 \def (lift h d y) in (eq T u TMP_24)))) in 
-(let TMP_28 \def (\lambda (_: T).(\lambda (z: T).(let TMP_26 \def (S d) in 
-(let TMP_27 \def (lift h TMP_26 z) in (eq T t TMP_27))))) in (ex3_2 T T 
-TMP_23 TMP_25 TMP_28))))) in (let TMP_30 \def (S d) in (let TMP_31 \def (lift 
-h TMP_30 x1) in (let TMP_42 \def (\lambda (t0: T).(let TMP_36 \def (\lambda 
-(y: T).(\lambda (z: T).(let TMP_32 \def (Bind b) in (let TMP_33 \def (THead 
-TMP_32 x0 x1) in (let TMP_34 \def (Bind b) in (let TMP_35 \def (THead TMP_34 
-y z) in (eq T TMP_33 TMP_35))))))) in (let TMP_38 \def (\lambda (y: 
-T).(\lambda (_: T).(let TMP_37 \def (lift h d y) in (eq T u TMP_37)))) in 
-(let TMP_41 \def (\lambda (_: T).(\lambda (z: T).(let TMP_39 \def (S d) in 
-(let TMP_40 \def (lift h TMP_39 z) in (eq T t0 TMP_40))))) in (ex3_2 T T 
-TMP_36 TMP_38 TMP_41))))) in (let TMP_43 \def (lift h d x0) in (let TMP_56 
-\def (\lambda (t0: T).(let TMP_48 \def (\lambda (y: T).(\lambda (z: T).(let 
-TMP_44 \def (Bind b) in (let TMP_45 \def (THead TMP_44 x0 x1) in (let TMP_46 
-\def (Bind b) in (let TMP_47 \def (THead TMP_46 y z) in (eq T TMP_45 
-TMP_47))))))) in (let TMP_50 \def (\lambda (y: T).(\lambda (_: T).(let TMP_49 
-\def (lift h d y) in (eq T t0 TMP_49)))) in (let TMP_55 \def (\lambda (_: 
-T).(\lambda (z: T).(let TMP_51 \def (S d) in (let TMP_52 \def (lift h TMP_51 
-x1) in (let TMP_53 \def (S d) in (let TMP_54 \def (lift h TMP_53 z) in (eq T 
-TMP_52 TMP_54))))))) in (ex3_2 T T TMP_48 TMP_50 TMP_55))))) in (let TMP_61 
-\def (\lambda (y: T).(\lambda (z: T).(let TMP_57 \def (Bind b) in (let TMP_58 
-\def (THead TMP_57 x0 x1) in (let TMP_59 \def (Bind b) in (let TMP_60 \def 
-(THead TMP_59 y z) in (eq T TMP_58 TMP_60))))))) in (let TMP_64 \def (\lambda 
-(y: T).(\lambda (_: T).(let TMP_62 \def (lift h d x0) in (let TMP_63 \def 
-(lift h d y) in (eq T TMP_62 TMP_63))))) in (let TMP_69 \def (\lambda (_: 
-T).(\lambda (z: T).(let TMP_65 \def (S d) in (let TMP_66 \def (lift h TMP_65 
-x1) in (let TMP_67 \def (S d) in (let TMP_68 \def (lift h TMP_67 z) in (eq T 
-TMP_66 TMP_68))))))) in (let TMP_70 \def (Bind b) in (let TMP_71 \def (THead 
-TMP_70 x0 x1) in (let TMP_72 \def (refl_equal T TMP_71) in (let TMP_73 \def 
-(lift h d x0) in (let TMP_74 \def (refl_equal T TMP_73) in (let TMP_75 \def 
-(S d) in (let TMP_76 \def (lift h TMP_75 x1) in (let TMP_77 \def (refl_equal 
-T TMP_76) in (let TMP_78 \def (ex3_2_intro T T TMP_61 TMP_64 TMP_69 x0 x1 
-TMP_72 TMP_74 TMP_77) in (let TMP_79 \def (eq_ind_r T TMP_43 TMP_56 TMP_78 u 
-H2) in (let TMP_80 \def (eq_ind_r T TMP_31 TMP_42 TMP_79 t H3) in (eq_ind_r T 
-TMP_20 TMP_29 TMP_80 x H1)))))))))))))))))))))))))))) in (ex3_2_ind T T TMP_4 
-TMP_6 TMP_9 TMP_18 TMP_81 H0)))))))))))))))))).
+(lift h (S d) x1))).(eq_ind_r T (THead (Bind b) x0 x1) (\lambda (t0: 
+T).(ex3_2 T T (\lambda (y: T).(\lambda (z: T).(eq T t0 (THead (Bind b) y 
+z)))) (\lambda (y: T).(\lambda (_: T).(eq T u (lift h d y)))) (\lambda (_: 
+T).(\lambda (z: T).(eq T t (lift h (S d) z)))))) (eq_ind_r T (lift h (S d) 
+x1) (\lambda (t0: T).(ex3_2 T T (\lambda (y: T).(\lambda (z: T).(eq T (THead 
+(Bind b) x0 x1) (THead (Bind b) y z)))) (\lambda (y: T).(\lambda (_: T).(eq T 
+u (lift h d y)))) (\lambda (_: T).(\lambda (z: T).(eq T t0 (lift h (S d) 
+z)))))) (eq_ind_r T (lift h d x0) (\lambda (t0: T).(ex3_2 T T (\lambda (y: 
+T).(\lambda (z: T).(eq T (THead (Bind b) x0 x1) (THead (Bind b) y z)))) 
+(\lambda (y: T).(\lambda (_: T).(eq T t0 (lift h d y)))) (\lambda (_: 
+T).(\lambda (z: T).(eq T (lift h (S d) x1) (lift h (S d) z)))))) (ex3_2_intro 
+T T (\lambda (y: T).(\lambda (z: T).(eq T (THead (Bind b) x0 x1) (THead (Bind 
+b) y z)))) (\lambda (y: T).(\lambda (_: T).(eq T (lift h d x0) (lift h d 
+y)))) (\lambda (_: T).(\lambda (z: T).(eq T (lift h (S d) x1) (lift h (S d) 
+z)))) x0 x1 (refl_equal T (THead (Bind b) x0 x1)) (refl_equal T (lift h d 
+x0)) (refl_equal T (lift h (S d) x1))) u H2) t H3) x H1)))))) H0))))))))).
 
 theorem lift_gen_flat:
  \forall (f: F).(\forall (u: T).(\forall (t: T).(\forall (x: T).(\forall (h: 
@@ -563,173 +308,93 @@ T).(eq T t (lift h d z)))))))))))
 \def
  \lambda (f: F).(\lambda (u: T).(\lambda (t: T).(\lambda (x: T).(\lambda (h: 
 nat).(\lambda (d: nat).(\lambda (H: (eq T (THead (Flat f) u t) (lift h d 
-x))).(let TMP_1 \def (Flat f) in (let H_x \def (lift_gen_head TMP_1 u t x h d 
-H) in (let H0 \def H_x in (let TMP_4 \def (\lambda (y: T).(\lambda (z: 
-T).(let TMP_2 \def (Flat f) in (let TMP_3 \def (THead TMP_2 y z) in (eq T x 
-TMP_3))))) in (let TMP_6 \def (\lambda (y: T).(\lambda (_: T).(let TMP_5 \def 
-(lift h d y) in (eq T u TMP_5)))) in (let TMP_8 \def (\lambda (_: T).(\lambda 
-(z: T).(let TMP_7 \def (lift h d z) in (eq T t TMP_7)))) in (let TMP_11 \def 
-(\lambda (y: T).(\lambda (z: T).(let TMP_9 \def (Flat f) in (let TMP_10 \def 
-(THead TMP_9 y z) in (eq T x TMP_10))))) in (let TMP_13 \def (\lambda (y: 
-T).(\lambda (_: T).(let TMP_12 \def (lift h d y) in (eq T u TMP_12)))) in 
-(let TMP_15 \def (\lambda (_: T).(\lambda (z: T).(let TMP_14 \def (lift h d 
-z) in (eq T t TMP_14)))) in (let TMP_16 \def (ex3_2 T T TMP_11 TMP_13 TMP_15) 
-in (let TMP_71 \def (\lambda (x0: T).(\lambda (x1: T).(\lambda (H1: (eq T x 
-(THead (Flat f) x0 x1))).(\lambda (H2: (eq T u (lift h d x0))).(\lambda (H3: 
-(eq T t (lift h d x1))).(let TMP_17 \def (Flat f) in (let TMP_18 \def (THead 
-TMP_17 x0 x1) in (let TMP_26 \def (\lambda (t0: T).(let TMP_21 \def (\lambda 
-(y: T).(\lambda (z: T).(let TMP_19 \def (Flat f) in (let TMP_20 \def (THead 
-TMP_19 y z) in (eq T t0 TMP_20))))) in (let TMP_23 \def (\lambda (y: 
-T).(\lambda (_: T).(let TMP_22 \def (lift h d y) in (eq T u TMP_22)))) in 
-(let TMP_25 \def (\lambda (_: T).(\lambda (z: T).(let TMP_24 \def (lift h d 
-z) in (eq T t TMP_24)))) in (ex3_2 T T TMP_21 TMP_23 TMP_25))))) in (let 
-TMP_27 \def (lift h d x1) in (let TMP_37 \def (\lambda (t0: T).(let TMP_32 
-\def (\lambda (y: T).(\lambda (z: T).(let TMP_28 \def (Flat f) in (let TMP_29 
-\def (THead TMP_28 x0 x1) in (let TMP_30 \def (Flat f) in (let TMP_31 \def 
-(THead TMP_30 y z) in (eq T TMP_29 TMP_31))))))) in (let TMP_34 \def (\lambda 
-(y: T).(\lambda (_: T).(let TMP_33 \def (lift h d y) in (eq T u TMP_33)))) in 
-(let TMP_36 \def (\lambda (_: T).(\lambda (z: T).(let TMP_35 \def (lift h d 
-z) in (eq T t0 TMP_35)))) in (ex3_2 T T TMP_32 TMP_34 TMP_36))))) in (let 
-TMP_38 \def (lift h d x0) in (let TMP_49 \def (\lambda (t0: T).(let TMP_43 
-\def (\lambda (y: T).(\lambda (z: T).(let TMP_39 \def (Flat f) in (let TMP_40 
-\def (THead TMP_39 x0 x1) in (let TMP_41 \def (Flat f) in (let TMP_42 \def 
-(THead TMP_41 y z) in (eq T TMP_40 TMP_42))))))) in (let TMP_45 \def (\lambda 
-(y: T).(\lambda (_: T).(let TMP_44 \def (lift h d y) in (eq T t0 TMP_44)))) 
-in (let TMP_48 \def (\lambda (_: T).(\lambda (z: T).(let TMP_46 \def (lift h 
-d x1) in (let TMP_47 \def (lift h d z) in (eq T TMP_46 TMP_47))))) in (ex3_2 
-T T TMP_43 TMP_45 TMP_48))))) in (let TMP_54 \def (\lambda (y: T).(\lambda 
-(z: T).(let TMP_50 \def (Flat f) in (let TMP_51 \def (THead TMP_50 x0 x1) in 
-(let TMP_52 \def (Flat f) in (let TMP_53 \def (THead TMP_52 y z) in (eq T 
-TMP_51 TMP_53))))))) in (let TMP_57 \def (\lambda (y: T).(\lambda (_: T).(let 
-TMP_55 \def (lift h d x0) in (let TMP_56 \def (lift h d y) in (eq T TMP_55 
-TMP_56))))) in (let TMP_60 \def (\lambda (_: T).(\lambda (z: T).(let TMP_58 
-\def (lift h d x1) in (let TMP_59 \def (lift h d z) in (eq T TMP_58 
-TMP_59))))) in (let TMP_61 \def (Flat f) in (let TMP_62 \def (THead TMP_61 x0 
-x1) in (let TMP_63 \def (refl_equal T TMP_62) in (let TMP_64 \def (lift h d 
-x0) in (let TMP_65 \def (refl_equal T TMP_64) in (let TMP_66 \def (lift h d 
-x1) in (let TMP_67 \def (refl_equal T TMP_66) in (let TMP_68 \def 
-(ex3_2_intro T T TMP_54 TMP_57 TMP_60 x0 x1 TMP_63 TMP_65 TMP_67) in (let 
-TMP_69 \def (eq_ind_r T TMP_38 TMP_49 TMP_68 u H2) in (let TMP_70 \def 
-(eq_ind_r T TMP_27 TMP_37 TMP_69 t H3) in (eq_ind_r T TMP_18 TMP_26 TMP_70 x 
-H1)))))))))))))))))))))))))) in (ex3_2_ind T T TMP_4 TMP_6 TMP_8 TMP_16 
-TMP_71 H0)))))))))))))))))).
+x))).(let H_x \def (lift_gen_head (Flat f) u t x h d H) in (let H0 \def H_x 
+in (ex3_2_ind T T (\lambda (y: T).(\lambda (z: T).(eq T x (THead (Flat f) y 
+z)))) (\lambda (y: T).(\lambda (_: T).(eq T u (lift h d y)))) (\lambda (_: 
+T).(\lambda (z: T).(eq T t (lift h d z)))) (ex3_2 T T (\lambda (y: 
+T).(\lambda (z: T).(eq T x (THead (Flat f) y z)))) (\lambda (y: T).(\lambda 
+(_: T).(eq T u (lift h d y)))) (\lambda (_: T).(\lambda (z: T).(eq T t (lift 
+h d z))))) (\lambda (x0: T).(\lambda (x1: T).(\lambda (H1: (eq T x (THead 
+(Flat f) x0 x1))).(\lambda (H2: (eq T u (lift h d x0))).(\lambda (H3: (eq T t 
+(lift h d x1))).(eq_ind_r T (THead (Flat f) x0 x1) (\lambda (t0: T).(ex3_2 T 
+T (\lambda (y: T).(\lambda (z: T).(eq T t0 (THead (Flat f) y z)))) (\lambda 
+(y: T).(\lambda (_: T).(eq T u (lift h d y)))) (\lambda (_: T).(\lambda (z: 
+T).(eq T t (lift h d z)))))) (eq_ind_r T (lift h d x1) (\lambda (t0: 
+T).(ex3_2 T T (\lambda (y: T).(\lambda (z: T).(eq T (THead (Flat f) x0 x1) 
+(THead (Flat f) y z)))) (\lambda (y: T).(\lambda (_: T).(eq T u (lift h d 
+y)))) (\lambda (_: T).(\lambda (z: T).(eq T t0 (lift h d z)))))) (eq_ind_r T 
+(lift h d x0) (\lambda (t0: T).(ex3_2 T T (\lambda (y: T).(\lambda (z: T).(eq 
+T (THead (Flat f) x0 x1) (THead (Flat f) y z)))) (\lambda (y: T).(\lambda (_: 
+T).(eq T t0 (lift h d y)))) (\lambda (_: T).(\lambda (z: T).(eq T (lift h d 
+x1) (lift h d z)))))) (ex3_2_intro T T (\lambda (y: T).(\lambda (z: T).(eq T 
+(THead (Flat f) x0 x1) (THead (Flat f) y z)))) (\lambda (y: T).(\lambda (_: 
+T).(eq T (lift h d x0) (lift h d y)))) (\lambda (_: T).(\lambda (z: T).(eq T 
+(lift h d x1) (lift h d z)))) x0 x1 (refl_equal T (THead (Flat f) x0 x1)) 
+(refl_equal T (lift h d x0)) (refl_equal T (lift h d x1))) u H2) t H3) x 
+H1)))))) H0))))))))).
 
 theorem lift_inj:
  \forall (x: T).(\forall (t: T).(\forall (h: nat).(\forall (d: nat).((eq T 
 (lift h d x) (lift h d t)) \to (eq T x t)))))
 \def
- \lambda (x: T).(let TMP_1 \def (\lambda (t: T).(\forall (t0: T).(\forall (h: 
-nat).(\forall (d: nat).((eq T (lift h d t) (lift h d t0)) \to (eq T t 
-t0)))))) in (let TMP_10 \def (\lambda (n: nat).(\lambda (t: T).(\lambda (h: 
-nat).(\lambda (d: nat).(\lambda (H: (eq T (lift h d (TSort n)) (lift h d 
-t))).(let TMP_2 \def (TSort n) in (let TMP_3 \def (lift h d TMP_2) in (let 
-TMP_5 \def (\lambda (t0: T).(let TMP_4 \def (lift h d t) in (eq T t0 TMP_4))) 
-in (let TMP_6 \def (TSort n) in (let TMP_7 \def (lift_sort n h d) in (let H0 
-\def (eq_ind T TMP_3 TMP_5 H TMP_6 TMP_7) in (let TMP_8 \def (TSort n) in 
-(let TMP_9 \def (lift_gen_sort h d n t H0) in (sym_eq T t TMP_8 
-TMP_9)))))))))))))) in (let TMP_34 \def (\lambda (n: nat).(\lambda (t: 
-T).(\lambda (h: nat).(\lambda (d: nat).(\lambda (H: (eq T (lift h d (TLRef 
-n)) (lift h d t))).(let TMP_11 \def (TLRef n) in (let TMP_12 \def (eq T 
-TMP_11 t) in (let TMP_23 \def (\lambda (H0: (lt n d)).(let TMP_13 \def (TLRef 
-n) in (let TMP_14 \def (lift h d TMP_13) in (let TMP_16 \def (\lambda (t0: 
-T).(let TMP_15 \def (lift h d t) in (eq T t0 TMP_15))) in (let TMP_17 \def 
-(TLRef n) in (let TMP_18 \def (lift_lref_lt n h d H0) in (let H1 \def (eq_ind 
-T TMP_14 TMP_16 H TMP_17 TMP_18) in (let TMP_19 \def (TLRef n) in (let TMP_20 
-\def (le_n d) in (let TMP_21 \def (lt_le_trans n d d H0 TMP_20) in (let 
-TMP_22 \def (lift_gen_lref_lt h d n TMP_21 t H1) in (sym_eq T t TMP_19 
-TMP_22)))))))))))) in (let TMP_33 \def (\lambda (H0: (le d n)).(let TMP_24 
-\def (TLRef n) in (let TMP_25 \def (lift h d TMP_24) in (let TMP_27 \def 
-(\lambda (t0: T).(let TMP_26 \def (lift h d t) in (eq T t0 TMP_26))) in (let 
-TMP_28 \def (plus n h) in (let TMP_29 \def (TLRef TMP_28) in (let TMP_30 \def 
-(lift_lref_ge n h d H0) in (let H1 \def (eq_ind T TMP_25 TMP_27 H TMP_29 
-TMP_30) in (let TMP_31 \def (TLRef n) in (let TMP_32 \def (lift_gen_lref_ge h 
-d n H0 t H1) in (sym_eq T t TMP_31 TMP_32))))))))))) in (lt_le_e n d TMP_12 
-TMP_23 TMP_33)))))))))) in (let TMP_140 \def (\lambda (k: K).(let TMP_36 \def 
-(\lambda (k0: K).(\forall (t: T).(((\forall (t0: T).(\forall (h: 
+ \lambda (x: T).(T_ind (\lambda (t: T).(\forall (t0: T).(\forall (h: 
 nat).(\forall (d: nat).((eq T (lift h d t) (lift h d t0)) \to (eq T t 
-t0)))))) \to (\forall (t0: T).(((\forall (t1: T).(\forall (h: nat).(\forall 
-(d: nat).((eq T (lift h d t0) (lift h d t1)) \to (eq T t0 t1)))))) \to 
-(\forall (t1: T).(\forall (h: nat).(\forall (d: nat).((eq T (lift h d (THead 
-k0 t t0)) (lift h d t1)) \to (let TMP_35 \def (THead k0 t t0) in (eq T TMP_35 
-t1))))))))))) in (let TMP_90 \def (\lambda (b: B).(\lambda (t: T).(\lambda 
-(H: ((\forall (t0: T).(\forall (h: nat).(\forall (d: nat).((eq T (lift h d t) 
-(lift h d t0)) \to (eq T t t0))))))).(\lambda (t0: T).(\lambda (H0: ((\forall 
-(t1: T).(\forall (h: nat).(\forall (d: nat).((eq T (lift h d t0) (lift h d 
-t1)) \to (eq T t0 t1))))))).(\lambda (t1: T).(\lambda (h: nat).(\lambda (d: 
-nat).(\lambda (H1: (eq T (lift h d (THead (Bind b) t t0)) (lift h d 
-t1))).(let TMP_37 \def (Bind b) in (let TMP_38 \def (THead TMP_37 t t0) in 
-(let TMP_39 \def (lift h d TMP_38) in (let TMP_41 \def (\lambda (t2: T).(let 
-TMP_40 \def (lift h d t1) in (eq T t2 TMP_40))) in (let TMP_42 \def (Bind b) 
-in (let TMP_43 \def (lift h d t) in (let TMP_44 \def (S d) in (let TMP_45 
-\def (lift h TMP_44 t0) in (let TMP_46 \def (THead TMP_42 TMP_43 TMP_45) in 
-(let TMP_47 \def (lift_bind b t t0 h d) in (let H2 \def (eq_ind T TMP_39 
-TMP_41 H1 TMP_46 TMP_47) in (let TMP_50 \def (\lambda (y: T).(\lambda (z: 
-T).(let TMP_48 \def (Bind b) in (let TMP_49 \def (THead TMP_48 y z) in (eq T 
-t1 TMP_49))))) in (let TMP_53 \def (\lambda (y: T).(\lambda (_: T).(let 
-TMP_51 \def (lift h d t) in (let TMP_52 \def (lift h d y) in (eq T TMP_51 
-TMP_52))))) in (let TMP_58 \def (\lambda (_: T).(\lambda (z: T).(let TMP_54 
-\def (S d) in (let TMP_55 \def (lift h TMP_54 t0) in (let TMP_56 \def (S d) 
-in (let TMP_57 \def (lift h TMP_56 z) in (eq T TMP_55 TMP_57))))))) in (let 
-TMP_59 \def (Bind b) in (let TMP_60 \def (THead TMP_59 t t0) in (let TMP_61 
-\def (eq T TMP_60 t1) in (let TMP_85 \def (\lambda (x0: T).(\lambda (x1: 
-T).(\lambda (H3: (eq T t1 (THead (Bind b) x0 x1))).(\lambda (H4: (eq T (lift 
-h d t) (lift h d x0))).(\lambda (H5: (eq T (lift h (S d) t0) (lift h (S d) 
-x1))).(let TMP_62 \def (Bind b) in (let TMP_63 \def (THead TMP_62 x0 x1) in 
-(let TMP_66 \def (\lambda (t2: T).(let TMP_64 \def (Bind b) in (let TMP_65 
-\def (THead TMP_64 t t0) in (eq T TMP_65 t2)))) in (let TMP_67 \def (Bind b) 
-in (let TMP_68 \def (THead TMP_67 x0 x1) in (let TMP_69 \def (Bind b) in (let 
-TMP_70 \def (THead TMP_69 t t0) in (let TMP_71 \def (Bind b) in (let TMP_72 
-\def (THead TMP_71 t t0) in (let TMP_73 \def (Bind b) in (let TMP_74 \def 
-(THead TMP_73 x0 x1) in (let TMP_75 \def (Bind b) in (let TMP_76 \def (Bind 
-b) in (let TMP_77 \def (Bind b) in (let TMP_78 \def (refl_equal K TMP_77) in 
-(let TMP_79 \def (H x0 h d H4) in (let TMP_80 \def (S d) in (let TMP_81 \def 
-(H0 x1 h TMP_80 H5) in (let TMP_82 \def (f_equal3 K T T T THead TMP_75 TMP_76 
-t x0 t0 x1 TMP_78 TMP_79 TMP_81) in (let TMP_83 \def (sym_eq T TMP_72 TMP_74 
-TMP_82) in (let TMP_84 \def (sym_eq T TMP_68 TMP_70 TMP_83) in (eq_ind_r T 
-TMP_63 TMP_66 TMP_84 t1 H3))))))))))))))))))))))))))) in (let TMP_86 \def 
-(lift h d t) in (let TMP_87 \def (S d) in (let TMP_88 \def (lift h TMP_87 t0) 
-in (let TMP_89 \def (lift_gen_bind b TMP_86 TMP_88 t1 h d H2) in (ex3_2_ind T 
-T TMP_50 TMP_53 TMP_58 TMP_61 TMP_85 TMP_89)))))))))))))))))))))))))))))))) 
-in (let TMP_139 \def (\lambda (f: F).(\lambda (t: T).(\lambda (H: ((\forall 
-(t0: T).(\forall (h: nat).(\forall (d: nat).((eq T (lift h d t) (lift h d 
-t0)) \to (eq T t t0))))))).(\lambda (t0: T).(\lambda (H0: ((\forall (t1: 
+t0)))))) (\lambda (n: nat).(\lambda (t: T).(\lambda (h: nat).(\lambda (d: 
+nat).(\lambda (H: (eq T (lift h d (TSort n)) (lift h d t))).(let H0 \def 
+(eq_ind T (lift h d (TSort n)) (\lambda (t0: T).(eq T t0 (lift h d t))) H 
+(TSort n) (lift_sort n h d)) in (sym_eq T t (TSort n) (lift_gen_sort h d n t 
+H0)))))))) (\lambda (n: nat).(\lambda (t: T).(\lambda (h: nat).(\lambda (d: 
+nat).(\lambda (H: (eq T (lift h d (TLRef n)) (lift h d t))).(lt_le_e n d (eq 
+T (TLRef n) t) (\lambda (H0: (lt n d)).(let H1 \def (eq_ind T (lift h d 
+(TLRef n)) (\lambda (t0: T).(eq T t0 (lift h d t))) H (TLRef n) (lift_lref_lt 
+n h d H0)) in (sym_eq T t (TLRef n) (lift_gen_lref_lt h d n (lt_le_trans n d 
+d H0 (le_n d)) t H1)))) (\lambda (H0: (le d n)).(let H1 \def (eq_ind T (lift 
+h d (TLRef n)) (\lambda (t0: T).(eq T t0 (lift h d t))) H (TLRef (plus n h)) 
+(lift_lref_ge n h d H0)) in (sym_eq T t (TLRef n) (lift_gen_lref_ge h d n H0 
+t H1)))))))))) (\lambda (k: K).(K_ind (\lambda (k0: K).(\forall (t: 
+T).(((\forall (t0: T).(\forall (h: nat).(\forall (d: nat).((eq T (lift h d t) 
+(lift h d t0)) \to (eq T t t0)))))) \to (\forall (t0: T).(((\forall (t1: 
 T).(\forall (h: nat).(\forall (d: nat).((eq T (lift h d t0) (lift h d t1)) 
-\to (eq T t0 t1))))))).(\lambda (t1: T).(\lambda (h: nat).(\lambda (d: 
-nat).(\lambda (H1: (eq T (lift h d (THead (Flat f) t t0)) (lift h d 
-t1))).(let TMP_91 \def (Flat f) in (let TMP_92 \def (THead TMP_91 t t0) in 
-(let TMP_93 \def (lift h d TMP_92) in (let TMP_95 \def (\lambda (t2: T).(let 
-TMP_94 \def (lift h d t1) in (eq T t2 TMP_94))) in (let TMP_96 \def (Flat f) 
-in (let TMP_97 \def (lift h d t) in (let TMP_98 \def (lift h d t0) in (let 
-TMP_99 \def (THead TMP_96 TMP_97 TMP_98) in (let TMP_100 \def (lift_flat f t 
-t0 h d) in (let H2 \def (eq_ind T TMP_93 TMP_95 H1 TMP_99 TMP_100) in (let 
-TMP_103 \def (\lambda (y: T).(\lambda (z: T).(let TMP_101 \def (Flat f) in 
-(let TMP_102 \def (THead TMP_101 y z) in (eq T t1 TMP_102))))) in (let 
-TMP_106 \def (\lambda (y: T).(\lambda (_: T).(let TMP_104 \def (lift h d t) 
-in (let TMP_105 \def (lift h d y) in (eq T TMP_104 TMP_105))))) in (let 
-TMP_109 \def (\lambda (_: T).(\lambda (z: T).(let TMP_107 \def (lift h d t0) 
-in (let TMP_108 \def (lift h d z) in (eq T TMP_107 TMP_108))))) in (let 
-TMP_110 \def (Flat f) in (let TMP_111 \def (THead TMP_110 t t0) in (let 
-TMP_112 \def (eq T TMP_111 t1) in (let TMP_135 \def (\lambda (x0: T).(\lambda 
-(x1: T).(\lambda (H3: (eq T t1 (THead (Flat f) x0 x1))).(\lambda (H4: (eq T 
-(lift h d t) (lift h d x0))).(\lambda (H5: (eq T (lift h d t0) (lift h d 
-x1))).(let TMP_113 \def (Flat f) in (let TMP_114 \def (THead TMP_113 x0 x1) 
-in (let TMP_117 \def (\lambda (t2: T).(let TMP_115 \def (Flat f) in (let 
-TMP_116 \def (THead TMP_115 t t0) in (eq T TMP_116 t2)))) in (let TMP_118 
-\def (Flat f) in (let TMP_119 \def (THead TMP_118 x0 x1) in (let TMP_120 \def 
-(Flat f) in (let TMP_121 \def (THead TMP_120 t t0) in (let TMP_122 \def (Flat 
-f) in (let TMP_123 \def (THead TMP_122 t t0) in (let TMP_124 \def (Flat f) in 
-(let TMP_125 \def (THead TMP_124 x0 x1) in (let TMP_126 \def (Flat f) in (let 
-TMP_127 \def (Flat f) in (let TMP_128 \def (Flat f) in (let TMP_129 \def 
-(refl_equal K TMP_128) in (let TMP_130 \def (H x0 h d H4) in (let TMP_131 
-\def (H0 x1 h d H5) in (let TMP_132 \def (f_equal3 K T T T THead TMP_126 
-TMP_127 t x0 t0 x1 TMP_129 TMP_130 TMP_131) in (let TMP_133 \def (sym_eq T 
-TMP_123 TMP_125 TMP_132) in (let TMP_134 \def (sym_eq T TMP_119 TMP_121 
-TMP_133) in (eq_ind_r T TMP_114 TMP_117 TMP_134 t1 
-H3)))))))))))))))))))))))))) in (let TMP_136 \def (lift h d t) in (let 
-TMP_137 \def (lift h d t0) in (let TMP_138 \def (lift_gen_flat f TMP_136 
-TMP_137 t1 h d H2) in (ex3_2_ind T T TMP_103 TMP_106 TMP_109 TMP_112 TMP_135 
-TMP_138)))))))))))))))))))))))))))))) in (K_ind TMP_36 TMP_90 TMP_139 k))))) 
-in (T_ind TMP_1 TMP_10 TMP_34 TMP_140 x))))).
+\to (eq T t0 t1)))))) \to (\forall (t1: T).(\forall (h: nat).(\forall (d: 
+nat).((eq T (lift h d (THead k0 t t0)) (lift h d t1)) \to (eq T (THead k0 t 
+t0) t1)))))))))) (\lambda (b: B).(\lambda (t: T).(\lambda (H: ((\forall (t0: 
+T).(\forall (h: nat).(\forall (d: nat).((eq T (lift h d t) (lift h d t0)) \to 
+(eq T t t0))))))).(\lambda (t0: T).(\lambda (H0: ((\forall (t1: T).(\forall 
+(h: nat).(\forall (d: nat).((eq T (lift h d t0) (lift h d t1)) \to (eq T t0 
+t1))))))).(\lambda (t1: T).(\lambda (h: nat).(\lambda (d: nat).(\lambda (H1: 
+(eq T (lift h d (THead (Bind b) t t0)) (lift h d t1))).(let H2 \def (eq_ind T 
+(lift h d (THead (Bind b) t t0)) (\lambda (t2: T).(eq T t2 (lift h d t1))) H1 
+(THead (Bind b) (lift h d t) (lift h (S d) t0)) (lift_bind b t t0 h d)) in 
+(ex3_2_ind T T (\lambda (y: T).(\lambda (z: T).(eq T t1 (THead (Bind b) y 
+z)))) (\lambda (y: T).(\lambda (_: T).(eq T (lift h d t) (lift h d y)))) 
+(\lambda (_: T).(\lambda (z: T).(eq T (lift h (S d) t0) (lift h (S d) z)))) 
+(eq T (THead (Bind b) t t0) t1) (\lambda (x0: T).(\lambda (x1: T).(\lambda 
+(H3: (eq T t1 (THead (Bind b) x0 x1))).(\lambda (H4: (eq T (lift h d t) (lift 
+h d x0))).(\lambda (H5: (eq T (lift h (S d) t0) (lift h (S d) x1))).(eq_ind_r 
+T (THead (Bind b) x0 x1) (\lambda (t2: T).(eq T (THead (Bind b) t t0) t2)) 
+(sym_eq T (THead (Bind b) x0 x1) (THead (Bind b) t t0) (sym_eq T (THead (Bind 
+b) t t0) (THead (Bind b) x0 x1) (f_equal3 K T T T THead (Bind b) (Bind b) t 
+x0 t0 x1 (refl_equal K (Bind b)) (H x0 h d H4) (H0 x1 h (S d) H5)))) t1 
+H3)))))) (lift_gen_bind b (lift h d t) (lift h (S d) t0) t1 h d 
+H2)))))))))))) (\lambda (f: F).(\lambda (t: T).(\lambda (H: ((\forall (t0: 
+T).(\forall (h: nat).(\forall (d: nat).((eq T (lift h d t) (lift h d t0)) \to 
+(eq T t t0))))))).(\lambda (t0: T).(\lambda (H0: ((\forall (t1: T).(\forall 
+(h: nat).(\forall (d: nat).((eq T (lift h d t0) (lift h d t1)) \to (eq T t0 
+t1))))))).(\lambda (t1: T).(\lambda (h: nat).(\lambda (d: nat).(\lambda (H1: 
+(eq T (lift h d (THead (Flat f) t t0)) (lift h d t1))).(let H2 \def (eq_ind T 
+(lift h d (THead (Flat f) t t0)) (\lambda (t2: T).(eq T t2 (lift h d t1))) H1 
+(THead (Flat f) (lift h d t) (lift h d t0)) (lift_flat f t t0 h d)) in 
+(ex3_2_ind T T (\lambda (y: T).(\lambda (z: T).(eq T t1 (THead (Flat f) y 
+z)))) (\lambda (y: T).(\lambda (_: T).(eq T (lift h d t) (lift h d y)))) 
+(\lambda (_: T).(\lambda (z: T).(eq T (lift h d t0) (lift h d z)))) (eq T 
+(THead (Flat f) t t0) t1) (\lambda (x0: T).(\lambda (x1: T).(\lambda (H3: (eq 
+T t1 (THead (Flat f) x0 x1))).(\lambda (H4: (eq T (lift h d t) (lift h d 
+x0))).(\lambda (H5: (eq T (lift h d t0) (lift h d x1))).(eq_ind_r T (THead 
+(Flat f) x0 x1) (\lambda (t2: T).(eq T (THead (Flat f) t t0) t2)) (sym_eq T 
+(THead (Flat f) x0 x1) (THead (Flat f) t t0) (sym_eq T (THead (Flat f) t t0) 
+(THead (Flat f) x0 x1) (f_equal3 K T T T THead (Flat f) (Flat f) t x0 t0 x1 
+(refl_equal K (Flat f)) (H x0 h d H4) (H0 x1 h d H5)))) t1 H3)))))) 
+(lift_gen_flat f (lift h d t) (lift h d t0) t1 h d H2)))))))))))) k)) x).
 
 theorem lift_gen_lift:
  \forall (t1: T).(\forall (x: T).(\forall (h1: nat).(\forall (h2: 
@@ -737,535 +402,233 @@ nat).(\forall (d1: nat).(\forall (d2: nat).((le d1 d2) \to ((eq T (lift h1 d1
 t1) (lift h2 (plus d2 h1) x)) \to (ex2 T (\lambda (t2: T).(eq T x (lift h1 d1 
 t2))) (\lambda (t2: T).(eq T t1 (lift h2 d2 t2)))))))))))
 \def
- \lambda (t1: T).(let TMP_5 \def (\lambda (t: T).(\forall (x: T).(\forall 
-(h1: nat).(\forall (h2: nat).(\forall (d1: nat).(\forall (d2: nat).((le d1 
-d2) \to ((eq T (lift h1 d1 t) (lift h2 (plus d2 h1) x)) \to (let TMP_2 \def 
-(\lambda (t2: T).(let TMP_1 \def (lift h1 d1 t2) in (eq T x TMP_1))) in (let 
-TMP_4 \def (\lambda (t2: T).(let TMP_3 \def (lift h2 d2 t2) in (eq T t 
-TMP_3))) in (ex2 T TMP_2 TMP_4))))))))))) in (let TMP_48 \def (\lambda (n: 
-nat).(\lambda (x: T).(\lambda (h1: nat).(\lambda (h2: nat).(\lambda (d1: 
-nat).(\lambda (d2: nat).(\lambda (_: (le d1 d2)).(\lambda (H0: (eq T (lift h1 
-d1 (TSort n)) (lift h2 (plus d2 h1) x))).(let TMP_6 \def (TSort n) in (let 
-TMP_7 \def (lift h1 d1 TMP_6) in (let TMP_10 \def (\lambda (t: T).(let TMP_8 
-\def (plus d2 h1) in (let TMP_9 \def (lift h2 TMP_8 x) in (eq T t TMP_9)))) 
-in (let TMP_11 \def (TSort n) in (let TMP_12 \def (lift_sort n h1 d1) in (let 
-H1 \def (eq_ind T TMP_7 TMP_10 H0 TMP_11 TMP_12) in (let TMP_13 \def (TSort 
-n) in (let TMP_19 \def (\lambda (t: T).(let TMP_15 \def (\lambda (t2: T).(let 
-TMP_14 \def (lift h1 d1 t2) in (eq T t TMP_14))) in (let TMP_18 \def (\lambda 
-(t2: T).(let TMP_16 \def (TSort n) in (let TMP_17 \def (lift h2 d2 t2) in (eq 
-T TMP_16 TMP_17)))) in (ex2 T TMP_15 TMP_18)))) in (let TMP_22 \def (\lambda 
-(t2: T).(let TMP_20 \def (TSort n) in (let TMP_21 \def (lift h1 d1 t2) in (eq 
-T TMP_20 TMP_21)))) in (let TMP_25 \def (\lambda (t2: T).(let TMP_23 \def 
-(TSort n) in (let TMP_24 \def (lift h2 d2 t2) in (eq T TMP_23 TMP_24)))) in 
-(let TMP_26 \def (TSort n) in (let TMP_27 \def (TSort n) in (let TMP_29 \def 
-(\lambda (t: T).(let TMP_28 \def (TSort n) in (eq T TMP_28 t))) in (let 
-TMP_30 \def (TSort n) in (let TMP_31 \def (refl_equal T TMP_30) in (let 
-TMP_32 \def (TSort n) in (let TMP_33 \def (lift h1 d1 TMP_32) in (let TMP_34 
-\def (lift_sort n h1 d1) in (let TMP_35 \def (eq_ind_r T TMP_27 TMP_29 TMP_31 
-TMP_33 TMP_34) in (let TMP_36 \def (TSort n) in (let TMP_38 \def (\lambda (t: 
-T).(let TMP_37 \def (TSort n) in (eq T TMP_37 t))) in (let TMP_39 \def (TSort 
-n) in (let TMP_40 \def (refl_equal T TMP_39) in (let TMP_41 \def (TSort n) in 
-(let TMP_42 \def (lift h2 d2 TMP_41) in (let TMP_43 \def (lift_sort n h2 d2) 
-in (let TMP_44 \def (eq_ind_r T TMP_36 TMP_38 TMP_40 TMP_42 TMP_43) in (let 
-TMP_45 \def (ex_intro2 T TMP_22 TMP_25 TMP_26 TMP_35 TMP_44) in (let TMP_46 
-\def (plus d2 h1) in (let TMP_47 \def (lift_gen_sort h2 TMP_46 n x H1) in 
-(eq_ind_r T TMP_13 TMP_19 TMP_45 x 
-TMP_47))))))))))))))))))))))))))))))))))))))) in (let TMP_325 \def (\lambda 
-(n: nat).(\lambda (x: T).(\lambda (h1: nat).(\lambda (h2: nat).(\lambda (d1: 
-nat).(\lambda (d2: nat).(\lambda (H: (le d1 d2)).(\lambda (H0: (eq T (lift h1 
-d1 (TLRef n)) (lift h2 (plus d2 h1) x))).(let TMP_50 \def (\lambda (t2: 
-T).(let TMP_49 \def (lift h1 d1 t2) in (eq T x TMP_49))) in (let TMP_53 \def 
-(\lambda (t2: T).(let TMP_51 \def (TLRef n) in (let TMP_52 \def (lift h2 d2 
-t2) in (eq T TMP_51 TMP_52)))) in (let TMP_54 \def (ex2 T TMP_50 TMP_53) in 
-(let TMP_101 \def (\lambda (H1: (lt n d1)).(let TMP_55 \def (TLRef n) in (let 
-TMP_56 \def (lift h1 d1 TMP_55) in (let TMP_59 \def (\lambda (t: T).(let 
-TMP_57 \def (plus d2 h1) in (let TMP_58 \def (lift h2 TMP_57 x) in (eq T t 
-TMP_58)))) in (let TMP_60 \def (TLRef n) in (let TMP_61 \def (lift_lref_lt n 
-h1 d1 H1) in (let H2 \def (eq_ind T TMP_56 TMP_59 H0 TMP_60 TMP_61) in (let 
-TMP_62 \def (TLRef n) in (let TMP_68 \def (\lambda (t: T).(let TMP_64 \def 
-(\lambda (t2: T).(let TMP_63 \def (lift h1 d1 t2) in (eq T t TMP_63))) in 
-(let TMP_67 \def (\lambda (t2: T).(let TMP_65 \def (TLRef n) in (let TMP_66 
-\def (lift h2 d2 t2) in (eq T TMP_65 TMP_66)))) in (ex2 T TMP_64 TMP_67)))) 
-in (let TMP_71 \def (\lambda (t2: T).(let TMP_69 \def (TLRef n) in (let 
-TMP_70 \def (lift h1 d1 t2) in (eq T TMP_69 TMP_70)))) in (let TMP_74 \def 
-(\lambda (t2: T).(let TMP_72 \def (TLRef n) in (let TMP_73 \def (lift h2 d2 
-t2) in (eq T TMP_72 TMP_73)))) in (let TMP_75 \def (TLRef n) in (let TMP_76 
-\def (TLRef n) in (let TMP_78 \def (\lambda (t: T).(let TMP_77 \def (TLRef n) 
-in (eq T TMP_77 t))) in (let TMP_79 \def (TLRef n) in (let TMP_80 \def 
-(refl_equal T TMP_79) in (let TMP_81 \def (TLRef n) in (let TMP_82 \def (lift 
-h1 d1 TMP_81) in (let TMP_83 \def (lift_lref_lt n h1 d1 H1) in (let TMP_84 
-\def (eq_ind_r T TMP_76 TMP_78 TMP_80 TMP_82 TMP_83) in (let TMP_85 \def 
-(TLRef n) in (let TMP_87 \def (\lambda (t: T).(let TMP_86 \def (TLRef n) in 
-(eq T TMP_86 t))) in (let TMP_88 \def (TLRef n) in (let TMP_89 \def 
-(refl_equal T TMP_88) in (let TMP_90 \def (TLRef n) in (let TMP_91 \def (lift 
-h2 d2 TMP_90) in (let TMP_92 \def (lt_le_trans n d1 d2 H1 H) in (let TMP_93 
-\def (lift_lref_lt n h2 d2 TMP_92) in (let TMP_94 \def (eq_ind_r T TMP_85 
-TMP_87 TMP_89 TMP_91 TMP_93) in (let TMP_95 \def (ex_intro2 T TMP_71 TMP_74 
-TMP_75 TMP_84 TMP_94) in (let TMP_96 \def (plus d2 h1) in (let TMP_97 \def 
-(plus d2 h1) in (let TMP_98 \def (le_plus_trans d1 d2 h1 H) in (let TMP_99 
-\def (lt_le_trans n d1 TMP_97 H1 TMP_98) in (let TMP_100 \def 
-(lift_gen_lref_lt h2 TMP_96 n TMP_99 x H2) in (eq_ind_r T TMP_62 TMP_68 
-TMP_95 x TMP_100)))))))))))))))))))))))))))))))))))) in (let TMP_324 \def 
-(\lambda (H1: (le d1 n)).(let TMP_102 \def (TLRef n) in (let TMP_103 \def 
-(lift h1 d1 TMP_102) in (let TMP_106 \def (\lambda (t: T).(let TMP_104 \def 
-(plus d2 h1) in (let TMP_105 \def (lift h2 TMP_104 x) in (eq T t TMP_105)))) 
-in (let TMP_107 \def (plus n h1) in (let TMP_108 \def (TLRef TMP_107) in (let 
-TMP_109 \def (lift_lref_ge n h1 d1 H1) in (let H2 \def (eq_ind T TMP_103 
-TMP_106 H0 TMP_108 TMP_109) in (let TMP_111 \def (\lambda (t2: T).(let 
-TMP_110 \def (lift h1 d1 t2) in (eq T x TMP_110))) in (let TMP_114 \def 
-(\lambda (t2: T).(let TMP_112 \def (TLRef n) in (let TMP_113 \def (lift h2 d2 
-t2) in (eq T TMP_112 TMP_113)))) in (let TMP_115 \def (ex2 T TMP_111 TMP_114) 
-in (let TMP_158 \def (\lambda (H3: (lt n d2)).(let TMP_116 \def (plus n h1) 
-in (let TMP_117 \def (TLRef TMP_116) in (let TMP_123 \def (\lambda (t: 
-T).(let TMP_119 \def (\lambda (t2: T).(let TMP_118 \def (lift h1 d1 t2) in 
-(eq T t TMP_118))) in (let TMP_122 \def (\lambda (t2: T).(let TMP_120 \def 
-(TLRef n) in (let TMP_121 \def (lift h2 d2 t2) in (eq T TMP_120 TMP_121)))) 
-in (ex2 T TMP_119 TMP_122)))) in (let TMP_127 \def (\lambda (t2: T).(let 
-TMP_124 \def (plus n h1) in (let TMP_125 \def (TLRef TMP_124) in (let TMP_126 
-\def (lift h1 d1 t2) in (eq T TMP_125 TMP_126))))) in (let TMP_130 \def 
-(\lambda (t2: T).(let TMP_128 \def (TLRef n) in (let TMP_129 \def (lift h2 d2 
-t2) in (eq T TMP_128 TMP_129)))) in (let TMP_131 \def (TLRef n) in (let 
-TMP_132 \def (plus n h1) in (let TMP_133 \def (TLRef TMP_132) in (let TMP_136 
-\def (\lambda (t: T).(let TMP_134 \def (plus n h1) in (let TMP_135 \def 
-(TLRef TMP_134) in (eq T TMP_135 t)))) in (let TMP_137 \def (plus n h1) in 
-(let TMP_138 \def (TLRef TMP_137) in (let TMP_139 \def (refl_equal T TMP_138) 
-in (let TMP_140 \def (TLRef n) in (let TMP_141 \def (lift h1 d1 TMP_140) in 
-(let TMP_142 \def (lift_lref_ge n h1 d1 H1) in (let TMP_143 \def (eq_ind_r T 
-TMP_133 TMP_136 TMP_139 TMP_141 TMP_142) in (let TMP_144 \def (TLRef n) in 
-(let TMP_146 \def (\lambda (t: T).(let TMP_145 \def (TLRef n) in (eq T 
-TMP_145 t))) in (let TMP_147 \def (TLRef n) in (let TMP_148 \def (refl_equal 
-T TMP_147) in (let TMP_149 \def (TLRef n) in (let TMP_150 \def (lift h2 d2 
-TMP_149) in (let TMP_151 \def (lift_lref_lt n h2 d2 H3) in (let TMP_152 \def 
-(eq_ind_r T TMP_144 TMP_146 TMP_148 TMP_150 TMP_151) in (let TMP_153 \def 
-(ex_intro2 T TMP_127 TMP_130 TMP_131 TMP_143 TMP_152) in (let TMP_154 \def 
-(plus d2 h1) in (let TMP_155 \def (plus n h1) in (let TMP_156 \def (lt_reg_r 
-n d2 h1 H3) in (let TMP_157 \def (lift_gen_lref_lt h2 TMP_154 TMP_155 TMP_156 
-x H2) in (eq_ind_r T TMP_117 TMP_123 TMP_153 x 
-TMP_157))))))))))))))))))))))))))))))) in (let TMP_323 \def (\lambda (H3: (le 
-d2 n)).(let TMP_159 \def (plus d2 h2) in (let TMP_161 \def (\lambda (t2: 
-T).(let TMP_160 \def (lift h1 d1 t2) in (eq T x TMP_160))) in (let TMP_164 
-\def (\lambda (t2: T).(let TMP_162 \def (TLRef n) in (let TMP_163 \def (lift 
-h2 d2 t2) in (eq T TMP_162 TMP_163)))) in (let TMP_165 \def (ex2 T TMP_161 
-TMP_164) in (let TMP_186 \def (\lambda (H4: (lt n (plus d2 h2))).(let TMP_166 
-\def (plus d2 h1) in (let TMP_167 \def (plus n h1) in (let TMP_168 \def (le_n 
-h1) in (let TMP_169 \def (le_plus_plus d2 n h1 h1 H3 TMP_168) in (let TMP_170 
-\def (plus d2 h2) in (let TMP_171 \def (plus TMP_170 h1) in (let TMP_173 \def 
-(\lambda (n0: nat).(let TMP_172 \def (plus n h1) in (lt TMP_172 n0))) in (let 
-TMP_174 \def (plus d2 h2) in (let TMP_175 \def (lt_reg_r n TMP_174 h1 H4) in 
-(let TMP_176 \def (plus d2 h1) in (let TMP_177 \def (plus TMP_176 h2) in (let 
-TMP_178 \def (plus_permute_2_in_3 d2 h1 h2) in (let TMP_179 \def (eq_ind_r 
-nat TMP_171 TMP_173 TMP_175 TMP_177 TMP_178) in (let TMP_181 \def (\lambda 
-(t2: T).(let TMP_180 \def (lift h1 d1 t2) in (eq T x TMP_180))) in (let 
-TMP_184 \def (\lambda (t2: T).(let TMP_182 \def (TLRef n) in (let TMP_183 
-\def (lift h2 d2 t2) in (eq T TMP_182 TMP_183)))) in (let TMP_185 \def (ex2 T 
-TMP_181 TMP_184) in (lift_gen_lref_false h2 TMP_166 TMP_167 TMP_169 TMP_179 x 
-H2 TMP_185)))))))))))))))))) in (let TMP_322 \def (\lambda (H4: (le (plus d2 
-h2) n)).(let TMP_187 \def (plus n h1) in (let TMP_191 \def (\lambda (n0: 
-nat).(let TMP_188 \def (TLRef n0) in (let TMP_189 \def (plus d2 h1) in (let 
-TMP_190 \def (lift h2 TMP_189 x) in (eq T TMP_188 TMP_190))))) in (let 
-TMP_192 \def (plus n h1) in (let TMP_193 \def (minus TMP_192 h2) in (let 
-TMP_194 \def (plus TMP_193 h2) in (let TMP_195 \def (plus n h1) in (let 
-TMP_196 \def (plus d2 h2) in (let TMP_197 \def (le_plus_r d2 h2) in (let 
-TMP_198 \def (le_trans h2 TMP_196 n TMP_197 H4) in (let TMP_199 \def 
-(le_plus_trans h2 n h1 TMP_198) in (let TMP_200 \def (le_plus_minus_sym h2 
-TMP_195 TMP_199) in (let H5 \def (eq_ind nat TMP_187 TMP_191 H2 TMP_194 
-TMP_200) in (let TMP_201 \def (plus n h1) in (let TMP_202 \def (minus TMP_201 
-h2) in (let TMP_203 \def (TLRef TMP_202) in (let TMP_209 \def (\lambda (t: 
-T).(let TMP_205 \def (\lambda (t2: T).(let TMP_204 \def (lift h1 d1 t2) in 
-(eq T t TMP_204))) in (let TMP_208 \def (\lambda (t2: T).(let TMP_206 \def 
-(TLRef n) in (let TMP_207 \def (lift h2 d2 t2) in (eq T TMP_206 TMP_207)))) 
-in (ex2 T TMP_205 TMP_208)))) in (let TMP_214 \def (\lambda (t2: T).(let 
-TMP_210 \def (plus n h1) in (let TMP_211 \def (minus TMP_210 h2) in (let 
-TMP_212 \def (TLRef TMP_211) in (let TMP_213 \def (lift h1 d1 t2) in (eq T 
-TMP_212 TMP_213)))))) in (let TMP_217 \def (\lambda (t2: T).(let TMP_215 \def 
-(TLRef n) in (let TMP_216 \def (lift h2 d2 t2) in (eq T TMP_215 TMP_216)))) 
-in (let TMP_218 \def (minus n h2) in (let TMP_219 \def (TLRef TMP_218) in 
-(let TMP_220 \def (minus n h2) in (let TMP_221 \def (plus TMP_220 h1) in (let 
-TMP_226 \def (\lambda (n0: nat).(let TMP_222 \def (TLRef n0) in (let TMP_223 
-\def (minus n h2) in (let TMP_224 \def (TLRef TMP_223) in (let TMP_225 \def 
-(lift h1 d1 TMP_224) in (eq T TMP_222 TMP_225)))))) in (let TMP_227 \def 
-(minus n h2) in (let TMP_228 \def (plus TMP_227 h1) in (let TMP_229 \def 
-(TLRef TMP_228) in (let TMP_233 \def (\lambda (t: T).(let TMP_230 \def (minus 
-n h2) in (let TMP_231 \def (plus TMP_230 h1) in (let TMP_232 \def (TLRef 
-TMP_231) in (eq T TMP_232 t))))) in (let TMP_234 \def (minus n h2) in (let 
-TMP_235 \def (plus TMP_234 h1) in (let TMP_236 \def (TLRef TMP_235) in (let 
-TMP_237 \def (refl_equal T TMP_236) in (let TMP_238 \def (minus n h2) in (let 
-TMP_239 \def (TLRef TMP_238) in (let TMP_240 \def (lift h1 d1 TMP_239) in 
-(let TMP_241 \def (minus n h2) in (let TMP_242 \def (minus n h2) in (let 
-TMP_243 \def (le_minus d2 n h2 H4) in (let TMP_244 \def (le_trans d1 d2 
-TMP_242 H TMP_243) in (let TMP_245 \def (lift_lref_ge TMP_241 h1 d1 TMP_244) 
-in (let TMP_246 \def (eq_ind_r T TMP_229 TMP_233 TMP_237 TMP_240 TMP_245) in 
-(let TMP_247 \def (plus n h1) in (let TMP_248 \def (minus TMP_247 h2) in (let 
-TMP_249 \def (plus d2 h2) in (let TMP_250 \def (le_plus_r d2 h2) in (let 
-TMP_251 \def (le_trans h2 TMP_249 n TMP_250 H4) in (let TMP_252 \def 
-(le_minus_plus h2 n TMP_251 h1) in (let TMP_253 \def (eq_ind_r nat TMP_221 
-TMP_226 TMP_246 TMP_248 TMP_252) in (let TMP_254 \def (minus n h2) in (let 
-TMP_255 \def (plus TMP_254 h2) in (let TMP_260 \def (\lambda (n0: nat).(let 
-TMP_256 \def (TLRef n0) in (let TMP_257 \def (minus n0 h2) in (let TMP_258 
-\def (TLRef TMP_257) in (let TMP_259 \def (lift h2 d2 TMP_258) in (eq T 
-TMP_256 TMP_259)))))) in (let TMP_261 \def (minus n h2) in (let TMP_262 \def 
-(plus TMP_261 h2) in (let TMP_263 \def (minus TMP_262 h2) in (let TMP_264 
-\def (plus TMP_263 h2) in (let TMP_265 \def (TLRef TMP_264) in (let TMP_269 
-\def (\lambda (t: T).(let TMP_266 \def (minus n h2) in (let TMP_267 \def 
-(plus TMP_266 h2) in (let TMP_268 \def (TLRef TMP_267) in (eq T TMP_268 
-t))))) in (let TMP_270 \def (minus n h2) in (let TMP_271 \def (plus TMP_270 
-h2) in (let TMP_272 \def (minus TMP_271 h2) in (let TMP_273 \def (plus 
-TMP_272 h2) in (let TMP_274 \def (TLRef TMP_273) in (let TMP_275 \def (minus 
-n h2) in (let TMP_276 \def (plus TMP_275 h2) in (let TMP_277 \def (TLRef 
-TMP_276) in (let TMP_278 \def (minus n h2) in (let TMP_279 \def (plus TMP_278 
-h2) in (let TMP_280 \def (minus TMP_279 h2) in (let TMP_281 \def (plus 
-TMP_280 h2) in (let TMP_282 \def (minus n h2) in (let TMP_283 \def (plus 
-TMP_282 h2) in (let TMP_284 \def (minus n h2) in (let TMP_285 \def (plus 
-TMP_284 h2) in (let TMP_286 \def (minus TMP_285 h2) in (let TMP_287 \def 
-(minus n h2) in (let TMP_288 \def (minus n h2) in (let TMP_289 \def 
-(minus_plus_r TMP_288 h2) in (let TMP_290 \def (refl_equal nat h2) in (let 
-TMP_291 \def (f_equal2 nat nat nat plus TMP_286 TMP_287 h2 h2 TMP_289 
-TMP_290) in (let TMP_292 \def (f_equal nat T TLRef TMP_281 TMP_283 TMP_291) 
-in (let TMP_293 \def (sym_eq T TMP_274 TMP_277 TMP_292) in (let TMP_294 \def 
-(minus n h2) in (let TMP_295 \def (plus TMP_294 h2) in (let TMP_296 \def 
-(minus TMP_295 h2) in (let TMP_297 \def (TLRef TMP_296) in (let TMP_298 \def 
-(lift h2 d2 TMP_297) in (let TMP_299 \def (minus n h2) in (let TMP_300 \def 
-(plus TMP_299 h2) in (let TMP_301 \def (minus TMP_300 h2) in (let TMP_302 
-\def (minus n h2) in (let TMP_303 \def (plus TMP_302 h2) in (let TMP_304 \def 
-(minus n h2) in (let TMP_305 \def (le_minus d2 n h2 H4) in (let TMP_306 \def 
-(le_n h2) in (let TMP_307 \def (le_plus_plus d2 TMP_304 h2 h2 TMP_305 
-TMP_306) in (let TMP_308 \def (le_minus d2 TMP_303 h2 TMP_307) in (let 
-TMP_309 \def (lift_lref_ge TMP_301 h2 d2 TMP_308) in (let TMP_310 \def 
-(eq_ind_r T TMP_265 TMP_269 TMP_293 TMP_298 TMP_309) in (let TMP_311 \def 
-(plus d2 h2) in (let TMP_312 \def (le_plus_r d2 h2) in (let TMP_313 \def 
-(le_trans h2 TMP_311 n TMP_312 H4) in (let TMP_314 \def (le_plus_minus_sym h2 
-n TMP_313) in (let TMP_315 \def (eq_ind_r nat TMP_255 TMP_260 TMP_310 n 
-TMP_314) in (let TMP_316 \def (ex_intro2 T TMP_214 TMP_217 TMP_219 TMP_253 
-TMP_315) in (let TMP_317 \def (plus d2 h1) in (let TMP_318 \def (plus n h1) 
-in (let TMP_319 \def (minus TMP_318 h2) in (let TMP_320 \def (arith0 h2 d2 n 
-H4 h1) in (let TMP_321 \def (lift_gen_lref_ge h2 TMP_317 TMP_319 TMP_320 x 
-H5) in (eq_ind_r T TMP_203 TMP_209 TMP_316 x 
-TMP_321)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
-))))))))))))))))))))))))))))))))))))))) in (lt_le_e n TMP_159 TMP_165 TMP_186 
-TMP_322)))))))) in (lt_le_e n d2 TMP_115 TMP_158 TMP_323)))))))))))))) in 
-(lt_le_e n d1 TMP_54 TMP_101 TMP_324)))))))))))))) in (let TMP_720 \def 
-(\lambda (k: K).(\lambda (t: T).(\lambda (H: ((\forall (x: T).(\forall (h1: 
+ \lambda (t1: T).(T_ind (\lambda (t: T).(\forall (x: T).(\forall (h1: 
 nat).(\forall (h2: nat).(\forall (d1: nat).(\forall (d2: nat).((le d1 d2) \to 
 ((eq T (lift h1 d1 t) (lift h2 (plus d2 h1) x)) \to (ex2 T (\lambda (t2: 
 T).(eq T x (lift h1 d1 t2))) (\lambda (t2: T).(eq T t (lift h2 d2 
-t2))))))))))))).(\lambda (t0: T).(\lambda (H0: ((\forall (x: T).(\forall (h1: 
-nat).(\forall (h2: nat).(\forall (d1: nat).(\forall (d2: nat).((le d1 d2) \to 
-((eq T (lift h1 d1 t0) (lift h2 (plus d2 h1) x)) \to (ex2 T (\lambda (t2: 
-T).(eq T x (lift h1 d1 t2))) (\lambda (t2: T).(eq T t0 (lift h2 d2 
-t2))))))))))))).(\lambda (x: T).(\lambda (h1: nat).(\lambda (h2: 
+t2)))))))))))) (\lambda (n: nat).(\lambda (x: T).(\lambda (h1: nat).(\lambda 
+(h2: nat).(\lambda (d1: nat).(\lambda (d2: nat).(\lambda (_: (le d1 
+d2)).(\lambda (H0: (eq T (lift h1 d1 (TSort n)) (lift h2 (plus d2 h1) 
+x))).(let H1 \def (eq_ind T (lift h1 d1 (TSort n)) (\lambda (t: T).(eq T t 
+(lift h2 (plus d2 h1) x))) H0 (TSort n) (lift_sort n h1 d1)) in (eq_ind_r T 
+(TSort n) (\lambda (t: T).(ex2 T (\lambda (t2: T).(eq T t (lift h1 d1 t2))) 
+(\lambda (t2: T).(eq T (TSort n) (lift h2 d2 t2))))) (ex_intro2 T (\lambda 
+(t2: T).(eq T (TSort n) (lift h1 d1 t2))) (\lambda (t2: T).(eq T (TSort n) 
+(lift h2 d2 t2))) (TSort n) (eq_ind_r T (TSort n) (\lambda (t: T).(eq T 
+(TSort n) t)) (refl_equal T (TSort n)) (lift h1 d1 (TSort n)) (lift_sort n h1 
+d1)) (eq_ind_r T (TSort n) (\lambda (t: T).(eq T (TSort n) t)) (refl_equal T 
+(TSort n)) (lift h2 d2 (TSort n)) (lift_sort n h2 d2))) x (lift_gen_sort h2 
+(plus d2 h1) n x H1))))))))))) (\lambda (n: nat).(\lambda (x: T).(\lambda 
+(h1: nat).(\lambda (h2: nat).(\lambda (d1: nat).(\lambda (d2: nat).(\lambda 
+(H: (le d1 d2)).(\lambda (H0: (eq T (lift h1 d1 (TLRef n)) (lift h2 (plus d2 
+h1) x))).(lt_le_e n d1 (ex2 T (\lambda (t2: T).(eq T x (lift h1 d1 t2))) 
+(\lambda (t2: T).(eq T (TLRef n) (lift h2 d2 t2)))) (\lambda (H1: (lt n 
+d1)).(let H2 \def (eq_ind T (lift h1 d1 (TLRef n)) (\lambda (t: T).(eq T t 
+(lift h2 (plus d2 h1) x))) H0 (TLRef n) (lift_lref_lt n h1 d1 H1)) in 
+(eq_ind_r T (TLRef n) (\lambda (t: T).(ex2 T (\lambda (t2: T).(eq T t (lift 
+h1 d1 t2))) (\lambda (t2: T).(eq T (TLRef n) (lift h2 d2 t2))))) (ex_intro2 T 
+(\lambda (t2: T).(eq T (TLRef n) (lift h1 d1 t2))) (\lambda (t2: T).(eq T 
+(TLRef n) (lift h2 d2 t2))) (TLRef n) (eq_ind_r T (TLRef n) (\lambda (t: 
+T).(eq T (TLRef n) t)) (refl_equal T (TLRef n)) (lift h1 d1 (TLRef n)) 
+(lift_lref_lt n h1 d1 H1)) (eq_ind_r T (TLRef n) (\lambda (t: T).(eq T (TLRef 
+n) t)) (refl_equal T (TLRef n)) (lift h2 d2 (TLRef n)) (lift_lref_lt n h2 d2 
+(lt_le_trans n d1 d2 H1 H)))) x (lift_gen_lref_lt h2 (plus d2 h1) n 
+(lt_le_trans n d1 (plus d2 h1) H1 (le_plus_trans d1 d2 h1 H)) x H2)))) 
+(\lambda (H1: (le d1 n)).(let H2 \def (eq_ind T (lift h1 d1 (TLRef n)) 
+(\lambda (t: T).(eq T t (lift h2 (plus d2 h1) x))) H0 (TLRef (plus n h1)) 
+(lift_lref_ge n h1 d1 H1)) in (lt_le_e n d2 (ex2 T (\lambda (t2: T).(eq T x 
+(lift h1 d1 t2))) (\lambda (t2: T).(eq T (TLRef n) (lift h2 d2 t2)))) 
+(\lambda (H3: (lt n d2)).(eq_ind_r T (TLRef (plus n h1)) (\lambda (t: T).(ex2 
+T (\lambda (t2: T).(eq T t (lift h1 d1 t2))) (\lambda (t2: T).(eq T (TLRef n) 
+(lift h2 d2 t2))))) (ex_intro2 T (\lambda (t2: T).(eq T (TLRef (plus n h1)) 
+(lift h1 d1 t2))) (\lambda (t2: T).(eq T (TLRef n) (lift h2 d2 t2))) (TLRef 
+n) (eq_ind_r T (TLRef (plus n h1)) (\lambda (t: T).(eq T (TLRef (plus n h1)) 
+t)) (refl_equal T (TLRef (plus n h1))) (lift h1 d1 (TLRef n)) (lift_lref_ge n 
+h1 d1 H1)) (eq_ind_r T (TLRef n) (\lambda (t: T).(eq T (TLRef n) t)) 
+(refl_equal T (TLRef n)) (lift h2 d2 (TLRef n)) (lift_lref_lt n h2 d2 H3))) x 
+(lift_gen_lref_lt h2 (plus d2 h1) (plus n h1) (lt_reg_r n d2 h1 H3) x H2))) 
+(\lambda (H3: (le d2 n)).(lt_le_e n (plus d2 h2) (ex2 T (\lambda (t2: T).(eq 
+T x (lift h1 d1 t2))) (\lambda (t2: T).(eq T (TLRef n) (lift h2 d2 t2)))) 
+(\lambda (H4: (lt n (plus d2 h2))).(lift_gen_lref_false h2 (plus d2 h1) (plus 
+n h1) (le_plus_plus d2 n h1 h1 H3 (le_n h1)) (eq_ind_r nat (plus (plus d2 h2) 
+h1) (\lambda (n0: nat).(lt (plus n h1) n0)) (lt_reg_r n (plus d2 h2) h1 H4) 
+(plus (plus d2 h1) h2) (plus_permute_2_in_3 d2 h1 h2)) x H2 (ex2 T (\lambda 
+(t2: T).(eq T x (lift h1 d1 t2))) (\lambda (t2: T).(eq T (TLRef n) (lift h2 
+d2 t2)))))) (\lambda (H4: (le (plus d2 h2) n)).(let H5 \def (eq_ind nat (plus 
+n h1) (\lambda (n0: nat).(eq T (TLRef n0) (lift h2 (plus d2 h1) x))) H2 (plus 
+(minus (plus n h1) h2) h2) (le_plus_minus_sym h2 (plus n h1) (le_plus_trans 
+h2 n h1 (le_trans h2 (plus d2 h2) n (le_plus_r d2 h2) H4)))) in (eq_ind_r T 
+(TLRef (minus (plus n h1) h2)) (\lambda (t: T).(ex2 T (\lambda (t2: T).(eq T 
+t (lift h1 d1 t2))) (\lambda (t2: T).(eq T (TLRef n) (lift h2 d2 t2))))) 
+(ex_intro2 T (\lambda (t2: T).(eq T (TLRef (minus (plus n h1) h2)) (lift h1 
+d1 t2))) (\lambda (t2: T).(eq T (TLRef n) (lift h2 d2 t2))) (TLRef (minus n 
+h2)) (eq_ind_r nat (plus (minus n h2) h1) (\lambda (n0: nat).(eq T (TLRef n0) 
+(lift h1 d1 (TLRef (minus n h2))))) (eq_ind_r T (TLRef (plus (minus n h2) 
+h1)) (\lambda (t: T).(eq T (TLRef (plus (minus n h2) h1)) t)) (refl_equal T 
+(TLRef (plus (minus n h2) h1))) (lift h1 d1 (TLRef (minus n h2))) 
+(lift_lref_ge (minus n h2) h1 d1 (le_trans d1 d2 (minus n h2) H (le_minus d2 
+n h2 H4)))) (minus (plus n h1) h2) (le_minus_plus h2 n (le_trans h2 (plus d2 
+h2) n (le_plus_r d2 h2) H4) h1)) (eq_ind_r nat (plus (minus n h2) h2) 
+(\lambda (n0: nat).(eq T (TLRef n0) (lift h2 d2 (TLRef (minus n0 h2))))) 
+(eq_ind_r T (TLRef (plus (minus (plus (minus n h2) h2) h2) h2)) (\lambda (t: 
+T).(eq T (TLRef (plus (minus n h2) h2)) t)) (sym_eq T (TLRef (plus (minus 
+(plus (minus n h2) h2) h2) h2)) (TLRef (plus (minus n h2) h2)) (f_equal nat T 
+TLRef (plus (minus (plus (minus n h2) h2) h2) h2) (plus (minus n h2) h2) 
+(f_equal2 nat nat nat plus (minus (plus (minus n h2) h2) h2) (minus n h2) h2 
+h2 (minus_plus_r (minus n h2) h2) (refl_equal nat h2)))) (lift h2 d2 (TLRef 
+(minus (plus (minus n h2) h2) h2))) (lift_lref_ge (minus (plus (minus n h2) 
+h2) h2) h2 d2 (le_minus d2 (plus (minus n h2) h2) h2 (le_plus_plus d2 (minus 
+n h2) h2 h2 (le_minus d2 n h2 H4) (le_n h2))))) n (le_plus_minus_sym h2 n 
+(le_trans h2 (plus d2 h2) n (le_plus_r d2 h2) H4)))) x (lift_gen_lref_ge h2 
+(plus d2 h1) (minus (plus n h1) h2) (arith0 h2 d2 n H4 h1) x 
+H5)))))))))))))))))) (\lambda (k: K).(\lambda (t: T).(\lambda (H: ((\forall 
+(x: T).(\forall (h1: nat).(\forall (h2: nat).(\forall (d1: nat).(\forall (d2: 
+nat).((le d1 d2) \to ((eq T (lift h1 d1 t) (lift h2 (plus d2 h1) x)) \to (ex2 
+T (\lambda (t2: T).(eq T x (lift h1 d1 t2))) (\lambda (t2: T).(eq T t (lift 
+h2 d2 t2))))))))))))).(\lambda (t0: T).(\lambda (H0: ((\forall (x: 
+T).(\forall (h1: nat).(\forall (h2: nat).(\forall (d1: nat).(\forall (d2: 
+nat).((le d1 d2) \to ((eq T (lift h1 d1 t0) (lift h2 (plus d2 h1) x)) \to 
+(ex2 T (\lambda (t2: T).(eq T x (lift h1 d1 t2))) (\lambda (t2: T).(eq T t0 
+(lift h2 d2 t2))))))))))))).(\lambda (x: T).(\lambda (h1: nat).(\lambda (h2: 
 nat).(\lambda (d1: nat).(\lambda (d2: nat).(\lambda (H1: (le d1 d2)).(\lambda 
-(H2: (eq T (lift h1 d1 (THead k t t0)) (lift h2 (plus d2 h1) x))).(let 
-TMP_331 \def (\lambda (k0: K).((eq T (lift h1 d1 (THead k0 t t0)) (lift h2 
-(plus d2 h1) x)) \to (let TMP_327 \def (\lambda (t2: T).(let TMP_326 \def 
-(lift h1 d1 t2) in (eq T x TMP_326))) in (let TMP_330 \def (\lambda (t2: 
-T).(let TMP_328 \def (THead k0 t t0) in (let TMP_329 \def (lift h2 d2 t2) in 
-(eq T TMP_328 TMP_329)))) in (ex2 T TMP_327 TMP_330))))) in (let TMP_540 \def 
-(\lambda (b: B).(\lambda (H3: (eq T (lift h1 d1 (THead (Bind b) t t0)) (lift 
-h2 (plus d2 h1) x))).(let TMP_332 \def (Bind b) in (let TMP_333 \def (THead 
-TMP_332 t t0) in (let TMP_334 \def (lift h1 d1 TMP_333) in (let TMP_337 \def 
-(\lambda (t2: T).(let TMP_335 \def (plus d2 h1) in (let TMP_336 \def (lift h2 
-TMP_335 x) in (eq T t2 TMP_336)))) in (let TMP_338 \def (Bind b) in (let 
-TMP_339 \def (lift h1 d1 t) in (let TMP_340 \def (S d1) in (let TMP_341 \def 
-(lift h1 TMP_340 t0) in (let TMP_342 \def (THead TMP_338 TMP_339 TMP_341) in 
-(let TMP_343 \def (lift_bind b t t0 h1 d1) in (let H4 \def (eq_ind T TMP_334 
-TMP_337 H3 TMP_342 TMP_343) in (let TMP_346 \def (\lambda (y: T).(\lambda (z: 
-T).(let TMP_344 \def (Bind b) in (let TMP_345 \def (THead TMP_344 y z) in (eq 
-T x TMP_345))))) in (let TMP_350 \def (\lambda (y: T).(\lambda (_: T).(let 
-TMP_347 \def (lift h1 d1 t) in (let TMP_348 \def (plus d2 h1) in (let TMP_349 
-\def (lift h2 TMP_348 y) in (eq T TMP_347 TMP_349)))))) in (let TMP_356 \def 
-(\lambda (_: T).(\lambda (z: T).(let TMP_351 \def (S d1) in (let TMP_352 \def 
-(lift h1 TMP_351 t0) in (let TMP_353 \def (plus d2 h1) in (let TMP_354 \def 
-(S TMP_353) in (let TMP_355 \def (lift h2 TMP_354 z) in (eq T TMP_352 
-TMP_355)))))))) in (let TMP_358 \def (\lambda (t2: T).(let TMP_357 \def (lift 
-h1 d1 t2) in (eq T x TMP_357))) in (let TMP_362 \def (\lambda (t2: T).(let 
-TMP_359 \def (Bind b) in (let TMP_360 \def (THead TMP_359 t t0) in (let 
-TMP_361 \def (lift h2 d2 t2) in (eq T TMP_360 TMP_361))))) in (let TMP_363 
-\def (ex2 T TMP_358 TMP_362) in (let TMP_534 \def (\lambda (x0: T).(\lambda 
-(x1: T).(\lambda (H5: (eq T x (THead (Bind b) x0 x1))).(\lambda (H6: (eq T 
-(lift h1 d1 t) (lift h2 (plus d2 h1) x0))).(\lambda (H7: (eq T (lift h1 (S 
-d1) t0) (lift h2 (S (plus d2 h1)) x1))).(let TMP_364 \def (Bind b) in (let 
-TMP_365 \def (THead TMP_364 x0 x1) in (let TMP_372 \def (\lambda (t2: T).(let 
-TMP_367 \def (\lambda (t3: T).(let TMP_366 \def (lift h1 d1 t3) in (eq T t2 
-TMP_366))) in (let TMP_371 \def (\lambda (t3: T).(let TMP_368 \def (Bind b) 
-in (let TMP_369 \def (THead TMP_368 t t0) in (let TMP_370 \def (lift h2 d2 
-t3) in (eq T TMP_369 TMP_370))))) in (ex2 T TMP_367 TMP_371)))) in (let 
-TMP_374 \def (\lambda (t2: T).(let TMP_373 \def (lift h1 d1 t2) in (eq T x0 
-TMP_373))) in (let TMP_376 \def (\lambda (t2: T).(let TMP_375 \def (lift h2 
-d2 t2) in (eq T t TMP_375))) in (let TMP_380 \def (\lambda (t2: T).(let 
-TMP_377 \def (Bind b) in (let TMP_378 \def (THead TMP_377 x0 x1) in (let 
-TMP_379 \def (lift h1 d1 t2) in (eq T TMP_378 TMP_379))))) in (let TMP_384 
-\def (\lambda (t2: T).(let TMP_381 \def (Bind b) in (let TMP_382 \def (THead 
-TMP_381 t t0) in (let TMP_383 \def (lift h2 d2 t2) in (eq T TMP_382 
-TMP_383))))) in (let TMP_385 \def (ex2 T TMP_380 TMP_384) in (let TMP_531 
-\def (\lambda (x2: T).(\lambda (H8: (eq T x0 (lift h1 d1 x2))).(\lambda (H9: 
-(eq T t (lift h2 d2 x2))).(let TMP_386 \def (lift h1 d1 x2) in (let TMP_395 
-\def (\lambda (t2: T).(let TMP_390 \def (\lambda (t3: T).(let TMP_387 \def 
-(Bind b) in (let TMP_388 \def (THead TMP_387 t2 x1) in (let TMP_389 \def 
-(lift h1 d1 t3) in (eq T TMP_388 TMP_389))))) in (let TMP_394 \def (\lambda 
-(t3: T).(let TMP_391 \def (Bind b) in (let TMP_392 \def (THead TMP_391 t t0) 
-in (let TMP_393 \def (lift h2 d2 t3) in (eq T TMP_392 TMP_393))))) in (ex2 T 
-TMP_390 TMP_394)))) in (let TMP_396 \def (lift h2 d2 x2) in (let TMP_406 \def 
-(\lambda (t2: T).(let TMP_401 \def (\lambda (t3: T).(let TMP_397 \def (Bind 
-b) in (let TMP_398 \def (lift h1 d1 x2) in (let TMP_399 \def (THead TMP_397 
-TMP_398 x1) in (let TMP_400 \def (lift h1 d1 t3) in (eq T TMP_399 
-TMP_400)))))) in (let TMP_405 \def (\lambda (t3: T).(let TMP_402 \def (Bind 
-b) in (let TMP_403 \def (THead TMP_402 t2 t0) in (let TMP_404 \def (lift h2 
-d2 t3) in (eq T TMP_403 TMP_404))))) in (ex2 T TMP_401 TMP_405)))) in (let 
-TMP_407 \def (S d2) in (let TMP_408 \def (plus TMP_407 h1) in (let H10 \def 
-(refl_equal nat TMP_408) in (let TMP_409 \def (plus d2 h1) in (let TMP_410 
-\def (S TMP_409) in (let TMP_414 \def (\lambda (n: nat).(let TMP_411 \def (S 
-d1) in (let TMP_412 \def (lift h1 TMP_411 t0) in (let TMP_413 \def (lift h2 n 
-x1) in (eq T TMP_412 TMP_413))))) in (let TMP_415 \def (S d2) in (let TMP_416 
-\def (plus TMP_415 h1) in (let H11 \def (eq_ind nat TMP_410 TMP_414 H7 
-TMP_416 H10) in (let TMP_419 \def (\lambda (t2: T).(let TMP_417 \def (S d1) 
-in (let TMP_418 \def (lift h1 TMP_417 t2) in (eq T x1 TMP_418)))) in (let 
-TMP_422 \def (\lambda (t2: T).(let TMP_420 \def (S d2) in (let TMP_421 \def 
-(lift h2 TMP_420 t2) in (eq T t0 TMP_421)))) in (let TMP_427 \def (\lambda 
-(t2: T).(let TMP_423 \def (Bind b) in (let TMP_424 \def (lift h1 d1 x2) in 
-(let TMP_425 \def (THead TMP_423 TMP_424 x1) in (let TMP_426 \def (lift h1 d1 
-t2) in (eq T TMP_425 TMP_426)))))) in (let TMP_432 \def (\lambda (t2: T).(let 
-TMP_428 \def (Bind b) in (let TMP_429 \def (lift h2 d2 x2) in (let TMP_430 
-\def (THead TMP_428 TMP_429 t0) in (let TMP_431 \def (lift h2 d2 t2) in (eq T 
-TMP_430 TMP_431)))))) in (let TMP_433 \def (ex2 T TMP_427 TMP_432) in (let 
-TMP_524 \def (\lambda (x3: T).(\lambda (H12: (eq T x1 (lift h1 (S d1) 
-x3))).(\lambda (H13: (eq T t0 (lift h2 (S d2) x3))).(let TMP_434 \def (S d1) 
-in (let TMP_435 \def (lift h1 TMP_434 x3) in (let TMP_446 \def (\lambda (t2: 
-T).(let TMP_440 \def (\lambda (t3: T).(let TMP_436 \def (Bind b) in (let 
-TMP_437 \def (lift h1 d1 x2) in (let TMP_438 \def (THead TMP_436 TMP_437 t2) 
-in (let TMP_439 \def (lift h1 d1 t3) in (eq T TMP_438 TMP_439)))))) in (let 
-TMP_445 \def (\lambda (t3: T).(let TMP_441 \def (Bind b) in (let TMP_442 \def 
-(lift h2 d2 x2) in (let TMP_443 \def (THead TMP_441 TMP_442 t0) in (let 
-TMP_444 \def (lift h2 d2 t3) in (eq T TMP_443 TMP_444)))))) in (ex2 T TMP_440 
-TMP_445)))) in (let TMP_447 \def (S d2) in (let TMP_448 \def (lift h2 TMP_447 
-x3) in (let TMP_461 \def (\lambda (t2: T).(let TMP_455 \def (\lambda (t3: 
-T).(let TMP_449 \def (Bind b) in (let TMP_450 \def (lift h1 d1 x2) in (let 
-TMP_451 \def (S d1) in (let TMP_452 \def (lift h1 TMP_451 x3) in (let TMP_453 
-\def (THead TMP_449 TMP_450 TMP_452) in (let TMP_454 \def (lift h1 d1 t3) in 
-(eq T TMP_453 TMP_454)))))))) in (let TMP_460 \def (\lambda (t3: T).(let 
-TMP_456 \def (Bind b) in (let TMP_457 \def (lift h2 d2 x2) in (let TMP_458 
-\def (THead TMP_456 TMP_457 t2) in (let TMP_459 \def (lift h2 d2 t3) in (eq T 
-TMP_458 TMP_459)))))) in (ex2 T TMP_455 TMP_460)))) in (let TMP_468 \def 
-(\lambda (t2: T).(let TMP_462 \def (Bind b) in (let TMP_463 \def (lift h1 d1 
-x2) in (let TMP_464 \def (S d1) in (let TMP_465 \def (lift h1 TMP_464 x3) in 
-(let TMP_466 \def (THead TMP_462 TMP_463 TMP_465) in (let TMP_467 \def (lift 
-h1 d1 t2) in (eq T TMP_466 TMP_467)))))))) in (let TMP_475 \def (\lambda (t2: 
-T).(let TMP_469 \def (Bind b) in (let TMP_470 \def (lift h2 d2 x2) in (let 
-TMP_471 \def (S d2) in (let TMP_472 \def (lift h2 TMP_471 x3) in (let TMP_473 
-\def (THead TMP_469 TMP_470 TMP_472) in (let TMP_474 \def (lift h2 d2 t2) in 
-(eq T TMP_473 TMP_474)))))))) in (let TMP_476 \def (Bind b) in (let TMP_477 
-\def (THead TMP_476 x2 x3) in (let TMP_478 \def (Bind b) in (let TMP_479 \def 
-(lift h1 d1 x2) in (let TMP_480 \def (S d1) in (let TMP_481 \def (lift h1 
-TMP_480 x3) in (let TMP_482 \def (THead TMP_478 TMP_479 TMP_481) in (let 
-TMP_488 \def (\lambda (t2: T).(let TMP_483 \def (Bind b) in (let TMP_484 \def 
-(lift h1 d1 x2) in (let TMP_485 \def (S d1) in (let TMP_486 \def (lift h1 
-TMP_485 x3) in (let TMP_487 \def (THead TMP_483 TMP_484 TMP_486) in (eq T 
-TMP_487 t2))))))) in (let TMP_489 \def (Bind b) in (let TMP_490 \def (lift h1 
-d1 x2) in (let TMP_491 \def (S d1) in (let TMP_492 \def (lift h1 TMP_491 x3) 
-in (let TMP_493 \def (THead TMP_489 TMP_490 TMP_492) in (let TMP_494 \def 
-(refl_equal T TMP_493) in (let TMP_495 \def (Bind b) in (let TMP_496 \def 
-(THead TMP_495 x2 x3) in (let TMP_497 \def (lift h1 d1 TMP_496) in (let 
-TMP_498 \def (lift_bind b x2 x3 h1 d1) in (let TMP_499 \def (eq_ind_r T 
-TMP_482 TMP_488 TMP_494 TMP_497 TMP_498) in (let TMP_500 \def (Bind b) in 
-(let TMP_501 \def (lift h2 d2 x2) in (let TMP_502 \def (S d2) in (let TMP_503 
-\def (lift h2 TMP_502 x3) in (let TMP_504 \def (THead TMP_500 TMP_501 
-TMP_503) in (let TMP_510 \def (\lambda (t2: T).(let TMP_505 \def (Bind b) in 
-(let TMP_506 \def (lift h2 d2 x2) in (let TMP_507 \def (S d2) in (let TMP_508 
-\def (lift h2 TMP_507 x3) in (let TMP_509 \def (THead TMP_505 TMP_506 
-TMP_508) in (eq T TMP_509 t2))))))) in (let TMP_511 \def (Bind b) in (let 
-TMP_512 \def (lift h2 d2 x2) in (let TMP_513 \def (S d2) in (let TMP_514 \def 
-(lift h2 TMP_513 x3) in (let TMP_515 \def (THead TMP_511 TMP_512 TMP_514) in 
-(let TMP_516 \def (refl_equal T TMP_515) in (let TMP_517 \def (Bind b) in 
-(let TMP_518 \def (THead TMP_517 x2 x3) in (let TMP_519 \def (lift h2 d2 
-TMP_518) in (let TMP_520 \def (lift_bind b x2 x3 h2 d2) in (let TMP_521 \def 
-(eq_ind_r T TMP_504 TMP_510 TMP_516 TMP_519 TMP_520) in (let TMP_522 \def 
-(ex_intro2 T TMP_468 TMP_475 TMP_477 TMP_499 TMP_521) in (let TMP_523 \def 
-(eq_ind_r T TMP_448 TMP_461 TMP_522 t0 H13) in (eq_ind_r T TMP_435 TMP_446 
-TMP_523 x1 H12)))))))))))))))))))))))))))))))))))))))))))))))))) in (let 
-TMP_525 \def (S d1) in (let TMP_526 \def (S d2) in (let TMP_527 \def (le_n_S 
-d1 d2 H1) in (let TMP_528 \def (H0 x1 h1 h2 TMP_525 TMP_526 TMP_527 H11) in 
-(let TMP_529 \def (ex2_ind T TMP_419 TMP_422 TMP_433 TMP_524 TMP_528) in (let 
-TMP_530 \def (eq_ind_r T TMP_396 TMP_406 TMP_529 t H9) in (eq_ind_r T TMP_386 
-TMP_395 TMP_530 x0 H8))))))))))))))))))))))))))))) in (let TMP_532 \def (H x0 
-h1 h2 d1 d2 H1 H6) in (let TMP_533 \def (ex2_ind T TMP_374 TMP_376 TMP_385 
-TMP_531 TMP_532) in (eq_ind_r T TMP_365 TMP_372 TMP_533 x H5))))))))))))))))) 
-in (let TMP_535 \def (lift h1 d1 t) in (let TMP_536 \def (S d1) in (let 
-TMP_537 \def (lift h1 TMP_536 t0) in (let TMP_538 \def (plus d2 h1) in (let 
-TMP_539 \def (lift_gen_bind b TMP_535 TMP_537 x h2 TMP_538 H4) in (ex3_2_ind 
-T T TMP_346 TMP_350 TMP_356 TMP_363 TMP_534 TMP_539)))))))))))))))))))))))))) 
-in (let TMP_719 \def (\lambda (f: F).(\lambda (H3: (eq T (lift h1 d1 (THead 
-(Flat f) t t0)) (lift h2 (plus d2 h1) x))).(let TMP_541 \def (Flat f) in (let 
-TMP_542 \def (THead TMP_541 t t0) in (let TMP_543 \def (lift h1 d1 TMP_542) 
-in (let TMP_546 \def (\lambda (t2: T).(let TMP_544 \def (plus d2 h1) in (let 
-TMP_545 \def (lift h2 TMP_544 x) in (eq T t2 TMP_545)))) in (let TMP_547 \def 
-(Flat f) in (let TMP_548 \def (lift h1 d1 t) in (let TMP_549 \def (lift h1 d1 
-t0) in (let TMP_550 \def (THead TMP_547 TMP_548 TMP_549) in (let TMP_551 \def 
-(lift_flat f t t0 h1 d1) in (let H4 \def (eq_ind T TMP_543 TMP_546 H3 TMP_550 
-TMP_551) in (let TMP_554 \def (\lambda (y: T).(\lambda (z: T).(let TMP_552 
-\def (Flat f) in (let TMP_553 \def (THead TMP_552 y z) in (eq T x 
-TMP_553))))) in (let TMP_558 \def (\lambda (y: T).(\lambda (_: T).(let 
-TMP_555 \def (lift h1 d1 t) in (let TMP_556 \def (plus d2 h1) in (let TMP_557 
-\def (lift h2 TMP_556 y) in (eq T TMP_555 TMP_557)))))) in (let TMP_562 \def 
-(\lambda (_: T).(\lambda (z: T).(let TMP_559 \def (lift h1 d1 t0) in (let 
-TMP_560 \def (plus d2 h1) in (let TMP_561 \def (lift h2 TMP_560 z) in (eq T 
-TMP_559 TMP_561)))))) in (let TMP_564 \def (\lambda (t2: T).(let TMP_563 \def 
-(lift h1 d1 t2) in (eq T x TMP_563))) in (let TMP_568 \def (\lambda (t2: 
-T).(let TMP_565 \def (Flat f) in (let TMP_566 \def (THead TMP_565 t t0) in 
-(let TMP_567 \def (lift h2 d2 t2) in (eq T TMP_566 TMP_567))))) in (let 
-TMP_569 \def (ex2 T TMP_564 TMP_568) in (let TMP_714 \def (\lambda (x0: 
+(H2: (eq T (lift h1 d1 (THead k t t0)) (lift h2 (plus d2 h1) x))).(K_ind 
+(\lambda (k0: K).((eq T (lift h1 d1 (THead k0 t t0)) (lift h2 (plus d2 h1) 
+x)) \to (ex2 T (\lambda (t2: T).(eq T x (lift h1 d1 t2))) (\lambda (t2: 
+T).(eq T (THead k0 t t0) (lift h2 d2 t2)))))) (\lambda (b: B).(\lambda (H3: 
+(eq T (lift h1 d1 (THead (Bind b) t t0)) (lift h2 (plus d2 h1) x))).(let H4 
+\def (eq_ind T (lift h1 d1 (THead (Bind b) t t0)) (\lambda (t2: T).(eq T t2 
+(lift h2 (plus d2 h1) x))) H3 (THead (Bind b) (lift h1 d1 t) (lift h1 (S d1) 
+t0)) (lift_bind b t t0 h1 d1)) in (ex3_2_ind T T (\lambda (y: T).(\lambda (z: 
+T).(eq T x (THead (Bind b) y z)))) (\lambda (y: T).(\lambda (_: T).(eq T 
+(lift h1 d1 t) (lift h2 (plus d2 h1) y)))) (\lambda (_: T).(\lambda (z: 
+T).(eq T (lift h1 (S d1) t0) (lift h2 (S (plus d2 h1)) z)))) (ex2 T (\lambda 
+(t2: T).(eq T x (lift h1 d1 t2))) (\lambda (t2: T).(eq T (THead (Bind b) t 
+t0) (lift h2 d2 t2)))) (\lambda (x0: T).(\lambda (x1: T).(\lambda (H5: (eq T 
+x (THead (Bind b) x0 x1))).(\lambda (H6: (eq T (lift h1 d1 t) (lift h2 (plus 
+d2 h1) x0))).(\lambda (H7: (eq T (lift h1 (S d1) t0) (lift h2 (S (plus d2 
+h1)) x1))).(eq_ind_r T (THead (Bind b) x0 x1) (\lambda (t2: T).(ex2 T 
+(\lambda (t3: T).(eq T t2 (lift h1 d1 t3))) (\lambda (t3: T).(eq T (THead 
+(Bind b) t t0) (lift h2 d2 t3))))) (ex2_ind T (\lambda (t2: T).(eq T x0 (lift 
+h1 d1 t2))) (\lambda (t2: T).(eq T t (lift h2 d2 t2))) (ex2 T (\lambda (t2: 
+T).(eq T (THead (Bind b) x0 x1) (lift h1 d1 t2))) (\lambda (t2: T).(eq T 
+(THead (Bind b) t t0) (lift h2 d2 t2)))) (\lambda (x2: T).(\lambda (H8: (eq T 
+x0 (lift h1 d1 x2))).(\lambda (H9: (eq T t (lift h2 d2 x2))).(eq_ind_r T 
+(lift h1 d1 x2) (\lambda (t2: T).(ex2 T (\lambda (t3: T).(eq T (THead (Bind 
+b) t2 x1) (lift h1 d1 t3))) (\lambda (t3: T).(eq T (THead (Bind b) t t0) 
+(lift h2 d2 t3))))) (eq_ind_r T (lift h2 d2 x2) (\lambda (t2: T).(ex2 T 
+(\lambda (t3: T).(eq T (THead (Bind b) (lift h1 d1 x2) x1) (lift h1 d1 t3))) 
+(\lambda (t3: T).(eq T (THead (Bind b) t2 t0) (lift h2 d2 t3))))) (let H10 
+\def (refl_equal nat (plus (S d2) h1)) in (let H11 \def (eq_ind nat (S (plus 
+d2 h1)) (\lambda (n: nat).(eq T (lift h1 (S d1) t0) (lift h2 n x1))) H7 (plus 
+(S d2) h1) H10) in (ex2_ind T (\lambda (t2: T).(eq T x1 (lift h1 (S d1) t2))) 
+(\lambda (t2: T).(eq T t0 (lift h2 (S d2) t2))) (ex2 T (\lambda (t2: T).(eq T 
+(THead (Bind b) (lift h1 d1 x2) x1) (lift h1 d1 t2))) (\lambda (t2: T).(eq T 
+(THead (Bind b) (lift h2 d2 x2) t0) (lift h2 d2 t2)))) (\lambda (x3: 
+T).(\lambda (H12: (eq T x1 (lift h1 (S d1) x3))).(\lambda (H13: (eq T t0 
+(lift h2 (S d2) x3))).(eq_ind_r T (lift h1 (S d1) x3) (\lambda (t2: T).(ex2 T 
+(\lambda (t3: T).(eq T (THead (Bind b) (lift h1 d1 x2) t2) (lift h1 d1 t3))) 
+(\lambda (t3: T).(eq T (THead (Bind b) (lift h2 d2 x2) t0) (lift h2 d2 
+t3))))) (eq_ind_r T (lift h2 (S d2) x3) (\lambda (t2: T).(ex2 T (\lambda (t3: 
+T).(eq T (THead (Bind b) (lift h1 d1 x2) (lift h1 (S d1) x3)) (lift h1 d1 
+t3))) (\lambda (t3: T).(eq T (THead (Bind b) (lift h2 d2 x2) t2) (lift h2 d2 
+t3))))) (ex_intro2 T (\lambda (t2: T).(eq T (THead (Bind b) (lift h1 d1 x2) 
+(lift h1 (S d1) x3)) (lift h1 d1 t2))) (\lambda (t2: T).(eq T (THead (Bind b) 
+(lift h2 d2 x2) (lift h2 (S d2) x3)) (lift h2 d2 t2))) (THead (Bind b) x2 x3) 
+(eq_ind_r T (THead (Bind b) (lift h1 d1 x2) (lift h1 (S d1) x3)) (\lambda 
+(t2: T).(eq T (THead (Bind b) (lift h1 d1 x2) (lift h1 (S d1) x3)) t2)) 
+(refl_equal T (THead (Bind b) (lift h1 d1 x2) (lift h1 (S d1) x3))) (lift h1 
+d1 (THead (Bind b) x2 x3)) (lift_bind b x2 x3 h1 d1)) (eq_ind_r T (THead 
+(Bind b) (lift h2 d2 x2) (lift h2 (S d2) x3)) (\lambda (t2: T).(eq T (THead 
+(Bind b) (lift h2 d2 x2) (lift h2 (S d2) x3)) t2)) (refl_equal T (THead (Bind 
+b) (lift h2 d2 x2) (lift h2 (S d2) x3))) (lift h2 d2 (THead (Bind b) x2 x3)) 
+(lift_bind b x2 x3 h2 d2))) t0 H13) x1 H12)))) (H0 x1 h1 h2 (S d1) (S d2) 
+(le_n_S d1 d2 H1) H11)))) t H9) x0 H8)))) (H x0 h1 h2 d1 d2 H1 H6)) x 
+H5)))))) (lift_gen_bind b (lift h1 d1 t) (lift h1 (S d1) t0) x h2 (plus d2 
+h1) H4))))) (\lambda (f: F).(\lambda (H3: (eq T (lift h1 d1 (THead (Flat f) t 
+t0)) (lift h2 (plus d2 h1) x))).(let H4 \def (eq_ind T (lift h1 d1 (THead 
+(Flat f) t t0)) (\lambda (t2: T).(eq T t2 (lift h2 (plus d2 h1) x))) H3 
+(THead (Flat f) (lift h1 d1 t) (lift h1 d1 t0)) (lift_flat f t t0 h1 d1)) in 
+(ex3_2_ind T T (\lambda (y: T).(\lambda (z: T).(eq T x (THead (Flat f) y 
+z)))) (\lambda (y: T).(\lambda (_: T).(eq T (lift h1 d1 t) (lift h2 (plus d2 
+h1) y)))) (\lambda (_: T).(\lambda (z: T).(eq T (lift h1 d1 t0) (lift h2 
+(plus d2 h1) z)))) (ex2 T (\lambda (t2: T).(eq T x (lift h1 d1 t2))) (\lambda 
+(t2: T).(eq T (THead (Flat f) t t0) (lift h2 d2 t2)))) (\lambda (x0: 
 T).(\lambda (x1: T).(\lambda (H5: (eq T x (THead (Flat f) x0 x1))).(\lambda 
 (H6: (eq T (lift h1 d1 t) (lift h2 (plus d2 h1) x0))).(\lambda (H7: (eq T 
-(lift h1 d1 t0) (lift h2 (plus d2 h1) x1))).(let TMP_570 \def (Flat f) in 
-(let TMP_571 \def (THead TMP_570 x0 x1) in (let TMP_578 \def (\lambda (t2: 
-T).(let TMP_573 \def (\lambda (t3: T).(let TMP_572 \def (lift h1 d1 t3) in 
-(eq T t2 TMP_572))) in (let TMP_577 \def (\lambda (t3: T).(let TMP_574 \def 
-(Flat f) in (let TMP_575 \def (THead TMP_574 t t0) in (let TMP_576 \def (lift 
-h2 d2 t3) in (eq T TMP_575 TMP_576))))) in (ex2 T TMP_573 TMP_577)))) in (let 
-TMP_580 \def (\lambda (t2: T).(let TMP_579 \def (lift h1 d1 t2) in (eq T x0 
-TMP_579))) in (let TMP_582 \def (\lambda (t2: T).(let TMP_581 \def (lift h2 
-d2 t2) in (eq T t TMP_581))) in (let TMP_586 \def (\lambda (t2: T).(let 
-TMP_583 \def (Flat f) in (let TMP_584 \def (THead TMP_583 x0 x1) in (let 
-TMP_585 \def (lift h1 d1 t2) in (eq T TMP_584 TMP_585))))) in (let TMP_590 
-\def (\lambda (t2: T).(let TMP_587 \def (Flat f) in (let TMP_588 \def (THead 
-TMP_587 t t0) in (let TMP_589 \def (lift h2 d2 t2) in (eq T TMP_588 
-TMP_589))))) in (let TMP_591 \def (ex2 T TMP_586 TMP_590) in (let TMP_711 
-\def (\lambda (x2: T).(\lambda (H8: (eq T x0 (lift h1 d1 x2))).(\lambda (H9: 
-(eq T t (lift h2 d2 x2))).(let TMP_592 \def (lift h1 d1 x2) in (let TMP_601 
-\def (\lambda (t2: T).(let TMP_596 \def (\lambda (t3: T).(let TMP_593 \def 
-(Flat f) in (let TMP_594 \def (THead TMP_593 t2 x1) in (let TMP_595 \def 
-(lift h1 d1 t3) in (eq T TMP_594 TMP_595))))) in (let TMP_600 \def (\lambda 
-(t3: T).(let TMP_597 \def (Flat f) in (let TMP_598 \def (THead TMP_597 t t0) 
-in (let TMP_599 \def (lift h2 d2 t3) in (eq T TMP_598 TMP_599))))) in (ex2 T 
-TMP_596 TMP_600)))) in (let TMP_602 \def (lift h2 d2 x2) in (let TMP_612 \def 
-(\lambda (t2: T).(let TMP_607 \def (\lambda (t3: T).(let TMP_603 \def (Flat 
-f) in (let TMP_604 \def (lift h1 d1 x2) in (let TMP_605 \def (THead TMP_603 
-TMP_604 x1) in (let TMP_606 \def (lift h1 d1 t3) in (eq T TMP_605 
-TMP_606)))))) in (let TMP_611 \def (\lambda (t3: T).(let TMP_608 \def (Flat 
-f) in (let TMP_609 \def (THead TMP_608 t2 t0) in (let TMP_610 \def (lift h2 
-d2 t3) in (eq T TMP_609 TMP_610))))) in (ex2 T TMP_607 TMP_611)))) in (let 
-TMP_614 \def (\lambda (t2: T).(let TMP_613 \def (lift h1 d1 t2) in (eq T x1 
-TMP_613))) in (let TMP_616 \def (\lambda (t2: T).(let TMP_615 \def (lift h2 
-d2 t2) in (eq T t0 TMP_615))) in (let TMP_621 \def (\lambda (t2: T).(let 
-TMP_617 \def (Flat f) in (let TMP_618 \def (lift h1 d1 x2) in (let TMP_619 
-\def (THead TMP_617 TMP_618 x1) in (let TMP_620 \def (lift h1 d1 t2) in (eq T 
-TMP_619 TMP_620)))))) in (let TMP_626 \def (\lambda (t2: T).(let TMP_622 \def 
-(Flat f) in (let TMP_623 \def (lift h2 d2 x2) in (let TMP_624 \def (THead 
-TMP_622 TMP_623 t0) in (let TMP_625 \def (lift h2 d2 t2) in (eq T TMP_624 
-TMP_625)))))) in (let TMP_627 \def (ex2 T TMP_621 TMP_626) in (let TMP_707 
-\def (\lambda (x3: T).(\lambda (H10: (eq T x1 (lift h1 d1 x3))).(\lambda 
-(H11: (eq T t0 (lift h2 d2 x3))).(let TMP_628 \def (lift h1 d1 x3) in (let 
-TMP_639 \def (\lambda (t2: T).(let TMP_633 \def (\lambda (t3: T).(let TMP_629 
-\def (Flat f) in (let TMP_630 \def (lift h1 d1 x2) in (let TMP_631 \def 
-(THead TMP_629 TMP_630 t2) in (let TMP_632 \def (lift h1 d1 t3) in (eq T 
-TMP_631 TMP_632)))))) in (let TMP_638 \def (\lambda (t3: T).(let TMP_634 \def 
-(Flat f) in (let TMP_635 \def (lift h2 d2 x2) in (let TMP_636 \def (THead 
-TMP_634 TMP_635 t0) in (let TMP_637 \def (lift h2 d2 t3) in (eq T TMP_636 
-TMP_637)))))) in (ex2 T TMP_633 TMP_638)))) in (let TMP_640 \def (lift h2 d2 
-x3) in (let TMP_652 \def (\lambda (t2: T).(let TMP_646 \def (\lambda (t3: 
-T).(let TMP_641 \def (Flat f) in (let TMP_642 \def (lift h1 d1 x2) in (let 
-TMP_643 \def (lift h1 d1 x3) in (let TMP_644 \def (THead TMP_641 TMP_642 
-TMP_643) in (let TMP_645 \def (lift h1 d1 t3) in (eq T TMP_644 TMP_645))))))) 
-in (let TMP_651 \def (\lambda (t3: T).(let TMP_647 \def (Flat f) in (let 
-TMP_648 \def (lift h2 d2 x2) in (let TMP_649 \def (THead TMP_647 TMP_648 t2) 
-in (let TMP_650 \def (lift h2 d2 t3) in (eq T TMP_649 TMP_650)))))) in (ex2 T 
-TMP_646 TMP_651)))) in (let TMP_658 \def (\lambda (t2: T).(let TMP_653 \def 
-(Flat f) in (let TMP_654 \def (lift h1 d1 x2) in (let TMP_655 \def (lift h1 
-d1 x3) in (let TMP_656 \def (THead TMP_653 TMP_654 TMP_655) in (let TMP_657 
-\def (lift h1 d1 t2) in (eq T TMP_656 TMP_657))))))) in (let TMP_664 \def 
-(\lambda (t2: T).(let TMP_659 \def (Flat f) in (let TMP_660 \def (lift h2 d2 
-x2) in (let TMP_661 \def (lift h2 d2 x3) in (let TMP_662 \def (THead TMP_659 
-TMP_660 TMP_661) in (let TMP_663 \def (lift h2 d2 t2) in (eq T TMP_662 
-TMP_663))))))) in (let TMP_665 \def (Flat f) in (let TMP_666 \def (THead 
-TMP_665 x2 x3) in (let TMP_667 \def (Flat f) in (let TMP_668 \def (lift h1 d1 
-x2) in (let TMP_669 \def (lift h1 d1 x3) in (let TMP_670 \def (THead TMP_667 
-TMP_668 TMP_669) in (let TMP_675 \def (\lambda (t2: T).(let TMP_671 \def 
-(Flat f) in (let TMP_672 \def (lift h1 d1 x2) in (let TMP_673 \def (lift h1 
-d1 x3) in (let TMP_674 \def (THead TMP_671 TMP_672 TMP_673) in (eq T TMP_674 
-t2)))))) in (let TMP_676 \def (Flat f) in (let TMP_677 \def (lift h1 d1 x2) 
-in (let TMP_678 \def (lift h1 d1 x3) in (let TMP_679 \def (THead TMP_676 
-TMP_677 TMP_678) in (let TMP_680 \def (refl_equal T TMP_679) in (let TMP_681 
-\def (Flat f) in (let TMP_682 \def (THead TMP_681 x2 x3) in (let TMP_683 \def 
-(lift h1 d1 TMP_682) in (let TMP_684 \def (lift_flat f x2 x3 h1 d1) in (let 
-TMP_685 \def (eq_ind_r T TMP_670 TMP_675 TMP_680 TMP_683 TMP_684) in (let 
-TMP_686 \def (Flat f) in (let TMP_687 \def (lift h2 d2 x2) in (let TMP_688 
-\def (lift h2 d2 x3) in (let TMP_689 \def (THead TMP_686 TMP_687 TMP_688) in 
-(let TMP_694 \def (\lambda (t2: T).(let TMP_690 \def (Flat f) in (let TMP_691 
-\def (lift h2 d2 x2) in (let TMP_692 \def (lift h2 d2 x3) in (let TMP_693 
-\def (THead TMP_690 TMP_691 TMP_692) in (eq T TMP_693 t2)))))) in (let 
-TMP_695 \def (Flat f) in (let TMP_696 \def (lift h2 d2 x2) in (let TMP_697 
-\def (lift h2 d2 x3) in (let TMP_698 \def (THead TMP_695 TMP_696 TMP_697) in 
-(let TMP_699 \def (refl_equal T TMP_698) in (let TMP_700 \def (Flat f) in 
-(let TMP_701 \def (THead TMP_700 x2 x3) in (let TMP_702 \def (lift h2 d2 
-TMP_701) in (let TMP_703 \def (lift_flat f x2 x3 h2 d2) in (let TMP_704 \def 
-(eq_ind_r T TMP_689 TMP_694 TMP_699 TMP_702 TMP_703) in (let TMP_705 \def 
-(ex_intro2 T TMP_658 TMP_664 TMP_666 TMP_685 TMP_704) in (let TMP_706 \def 
-(eq_ind_r T TMP_640 TMP_652 TMP_705 t0 H11) in (eq_ind_r T TMP_628 TMP_639 
-TMP_706 x1 H10)))))))))))))))))))))))))))))))))))))))))))) in (let TMP_708 
-\def (H0 x1 h1 h2 d1 d2 H1 H7) in (let TMP_709 \def (ex2_ind T TMP_614 
-TMP_616 TMP_627 TMP_707 TMP_708) in (let TMP_710 \def (eq_ind_r T TMP_602 
-TMP_612 TMP_709 t H9) in (eq_ind_r T TMP_592 TMP_601 TMP_710 x0 
-H8))))))))))))))))) in (let TMP_712 \def (H x0 h1 h2 d1 d2 H1 H6) in (let 
-TMP_713 \def (ex2_ind T TMP_580 TMP_582 TMP_591 TMP_711 TMP_712) in (eq_ind_r 
-T TMP_571 TMP_578 TMP_713 x H5))))))))))))))))) in (let TMP_715 \def (lift h1 
-d1 t) in (let TMP_716 \def (lift h1 d1 t0) in (let TMP_717 \def (plus d2 h1) 
-in (let TMP_718 \def (lift_gen_flat f TMP_715 TMP_716 x h2 TMP_717 H4) in 
-(ex3_2_ind T T TMP_554 TMP_558 TMP_562 TMP_569 TMP_714 
-TMP_718)))))))))))))))))))))))) in (K_ind TMP_331 TMP_540 TMP_719 k 
-H2)))))))))))))))) in (T_ind TMP_5 TMP_48 TMP_325 TMP_720 t1))))).
+(lift h1 d1 t0) (lift h2 (plus d2 h1) x1))).(eq_ind_r T (THead (Flat f) x0 
+x1) (\lambda (t2: T).(ex2 T (\lambda (t3: T).(eq T t2 (lift h1 d1 t3))) 
+(\lambda (t3: T).(eq T (THead (Flat f) t t0) (lift h2 d2 t3))))) (ex2_ind T 
+(\lambda (t2: T).(eq T x0 (lift h1 d1 t2))) (\lambda (t2: T).(eq T t (lift h2 
+d2 t2))) (ex2 T (\lambda (t2: T).(eq T (THead (Flat f) x0 x1) (lift h1 d1 
+t2))) (\lambda (t2: T).(eq T (THead (Flat f) t t0) (lift h2 d2 t2)))) 
+(\lambda (x2: T).(\lambda (H8: (eq T x0 (lift h1 d1 x2))).(\lambda (H9: (eq T 
+t (lift h2 d2 x2))).(eq_ind_r T (lift h1 d1 x2) (\lambda (t2: T).(ex2 T 
+(\lambda (t3: T).(eq T (THead (Flat f) t2 x1) (lift h1 d1 t3))) (\lambda (t3: 
+T).(eq T (THead (Flat f) t t0) (lift h2 d2 t3))))) (eq_ind_r T (lift h2 d2 
+x2) (\lambda (t2: T).(ex2 T (\lambda (t3: T).(eq T (THead (Flat f) (lift h1 
+d1 x2) x1) (lift h1 d1 t3))) (\lambda (t3: T).(eq T (THead (Flat f) t2 t0) 
+(lift h2 d2 t3))))) (ex2_ind T (\lambda (t2: T).(eq T x1 (lift h1 d1 t2))) 
+(\lambda (t2: T).(eq T t0 (lift h2 d2 t2))) (ex2 T (\lambda (t2: T).(eq T 
+(THead (Flat f) (lift h1 d1 x2) x1) (lift h1 d1 t2))) (\lambda (t2: T).(eq T 
+(THead (Flat f) (lift h2 d2 x2) t0) (lift h2 d2 t2)))) (\lambda (x3: 
+T).(\lambda (H10: (eq T x1 (lift h1 d1 x3))).(\lambda (H11: (eq T t0 (lift h2 
+d2 x3))).(eq_ind_r T (lift h1 d1 x3) (\lambda (t2: T).(ex2 T (\lambda (t3: 
+T).(eq T (THead (Flat f) (lift h1 d1 x2) t2) (lift h1 d1 t3))) (\lambda (t3: 
+T).(eq T (THead (Flat f) (lift h2 d2 x2) t0) (lift h2 d2 t3))))) (eq_ind_r T 
+(lift h2 d2 x3) (\lambda (t2: T).(ex2 T (\lambda (t3: T).(eq T (THead (Flat 
+f) (lift h1 d1 x2) (lift h1 d1 x3)) (lift h1 d1 t3))) (\lambda (t3: T).(eq T 
+(THead (Flat f) (lift h2 d2 x2) t2) (lift h2 d2 t3))))) (ex_intro2 T (\lambda 
+(t2: T).(eq T (THead (Flat f) (lift h1 d1 x2) (lift h1 d1 x3)) (lift h1 d1 
+t2))) (\lambda (t2: T).(eq T (THead (Flat f) (lift h2 d2 x2) (lift h2 d2 x3)) 
+(lift h2 d2 t2))) (THead (Flat f) x2 x3) (eq_ind_r T (THead (Flat f) (lift h1 
+d1 x2) (lift h1 d1 x3)) (\lambda (t2: T).(eq T (THead (Flat f) (lift h1 d1 
+x2) (lift h1 d1 x3)) t2)) (refl_equal T (THead (Flat f) (lift h1 d1 x2) (lift 
+h1 d1 x3))) (lift h1 d1 (THead (Flat f) x2 x3)) (lift_flat f x2 x3 h1 d1)) 
+(eq_ind_r T (THead (Flat f) (lift h2 d2 x2) (lift h2 d2 x3)) (\lambda (t2: 
+T).(eq T (THead (Flat f) (lift h2 d2 x2) (lift h2 d2 x3)) t2)) (refl_equal T 
+(THead (Flat f) (lift h2 d2 x2) (lift h2 d2 x3))) (lift h2 d2 (THead (Flat f) 
+x2 x3)) (lift_flat f x2 x3 h2 d2))) t0 H11) x1 H10)))) (H0 x1 h1 h2 d1 d2 H1 
+H7)) t H9) x0 H8)))) (H x0 h1 h2 d1 d2 H1 H6)) x H5)))))) (lift_gen_flat f 
+(lift h1 d1 t) (lift h1 d1 t0) x h2 (plus d2 h1) H4))))) k H2))))))))))))) 
+t1).
 
 theorem lifts_inj:
  \forall (xs: TList).(\forall (ts: TList).(\forall (h: nat).(\forall (d: 
 nat).((eq TList (lifts h d xs) (lifts h d ts)) \to (eq TList xs ts)))))
 \def
- \lambda (xs: TList).(let TMP_1 \def (\lambda (t: TList).(\forall (ts: 
+ \lambda (xs: TList).(TList_ind (\lambda (t: TList).(\forall (ts: 
 TList).(\forall (h: nat).(\forall (d: nat).((eq TList (lifts h d t) (lifts h 
-d ts)) \to (eq TList t ts)))))) in (let TMP_11 \def (\lambda (ts: TList).(let 
-TMP_2 \def (\lambda (t: TList).(\forall (h: nat).(\forall (d: nat).((eq TList 
-(lifts h d TNil) (lifts h d t)) \to (eq TList TNil t))))) in (let TMP_3 \def 
-(\lambda (_: nat).(\lambda (_: nat).(\lambda (_: (eq TList TNil 
-TNil)).(refl_equal TList TNil)))) in (let TMP_10 \def (\lambda (t: 
-T).(\lambda (t0: TList).(\lambda (_: ((\forall (h: nat).(\forall (d: 
+d ts)) \to (eq TList t ts)))))) (\lambda (ts: TList).(TList_ind (\lambda (t: 
+TList).(\forall (h: nat).(\forall (d: nat).((eq TList (lifts h d TNil) (lifts 
+h d t)) \to (eq TList TNil t))))) (\lambda (_: nat).(\lambda (_: 
+nat).(\lambda (_: (eq TList TNil TNil)).(refl_equal TList TNil)))) (\lambda 
+(t: T).(\lambda (t0: TList).(\lambda (_: ((\forall (h: nat).(\forall (d: 
 nat).((eq TList TNil (lifts h d t0)) \to (eq TList TNil t0)))))).(\lambda (h: 
 nat).(\lambda (d: nat).(\lambda (H0: (eq TList TNil (TCons (lift h d t) 
-(lifts h d t0)))).(let TMP_4 \def (\lambda (ee: TList).(match ee with [TNil 
-\Rightarrow True | (TCons _ _) \Rightarrow False])) in (let TMP_5 \def (lift 
-h d t) in (let TMP_6 \def (lifts h d t0) in (let TMP_7 \def (TCons TMP_5 
-TMP_6) in (let H1 \def (eq_ind TList TNil TMP_4 I TMP_7 H0) in (let TMP_8 
-\def (TCons t t0) in (let TMP_9 \def (eq TList TNil TMP_8) in (False_ind 
-TMP_9 H1)))))))))))))) in (TList_ind TMP_2 TMP_3 TMP_10 ts))))) in (let 
-TMP_52 \def (\lambda (t: T).(\lambda (t0: TList).(\lambda (H: ((\forall (ts: 
-TList).(\forall (h: nat).(\forall (d: nat).((eq TList (lifts h d t0) (lifts h 
-d ts)) \to (eq TList t0 ts))))))).(\lambda (ts: TList).(let TMP_13 \def 
+(lifts h d t0)))).(let H1 \def (eq_ind TList TNil (\lambda (ee: TList).(match 
+ee with [TNil \Rightarrow True | (TCons _ _) \Rightarrow False])) I (TCons 
+(lift h d t) (lifts h d t0)) H0) in (False_ind (eq TList TNil (TCons t t0)) 
+H1)))))))) ts)) (\lambda (t: T).(\lambda (t0: TList).(\lambda (H: ((\forall 
+(ts: TList).(\forall (h: nat).(\forall (d: nat).((eq TList (lifts h d t0) 
+(lifts h d ts)) \to (eq TList t0 ts))))))).(\lambda (ts: TList).(TList_ind 
 (\lambda (t1: TList).(\forall (h: nat).(\forall (d: nat).((eq TList (lifts h 
-d (TCons t t0)) (lifts h d t1)) \to (let TMP_12 \def (TCons t t0) in (eq 
-TList TMP_12 t1)))))) in (let TMP_20 \def (\lambda (h: nat).(\lambda (d: 
-nat).(\lambda (H0: (eq TList (TCons (lift h d t) (lifts h d t0)) TNil)).(let 
-TMP_14 \def (lift h d t) in (let TMP_15 \def (lifts h d t0) in (let TMP_16 
-\def (TCons TMP_14 TMP_15) in (let TMP_17 \def (\lambda (ee: TList).(match ee 
-with [TNil \Rightarrow False | (TCons _ _) \Rightarrow True])) in (let H1 
-\def (eq_ind TList TMP_16 TMP_17 I TNil H0) in (let TMP_18 \def (TCons t t0) 
-in (let TMP_19 \def (eq TList TMP_18 TNil) in (False_ind TMP_19 H1))))))))))) 
-in (let TMP_51 \def (\lambda (t1: T).(\lambda (t2: TList).(\lambda (_: 
-((\forall (h: nat).(\forall (d: nat).((eq TList (TCons (lift h d t) (lifts h 
-d t0)) (lifts h d t2)) \to (eq TList (TCons t t0) t2)))))).(\lambda (h: 
-nat).(\lambda (d: nat).(\lambda (H1: (eq TList (TCons (lift h d t) (lifts h d 
-t0)) (TCons (lift h d t1) (lifts h d t2)))).(let TMP_27 \def (\lambda (e: 
-TList).(match e with [TNil \Rightarrow (let TMP_26 \def (\lambda (x: 
-nat).(plus x h)) in (lref_map TMP_26 d t)) | (TCons t3 _) \Rightarrow t3])) 
-in (let TMP_28 \def (lift h d t) in (let TMP_29 \def (lifts h d t0) in (let 
-TMP_30 \def (TCons TMP_28 TMP_29) in (let TMP_31 \def (lift h d t1) in (let 
-TMP_32 \def (lifts h d t2) in (let TMP_33 \def (TCons TMP_31 TMP_32) in (let 
-H2 \def (f_equal TList T TMP_27 TMP_30 TMP_33 H1) in (let TMP_36 \def 
-(\lambda (e: TList).(match e with [TNil \Rightarrow (lifts h d t0) | (TCons _ 
-t3) \Rightarrow t3])) in (let TMP_37 \def (lift h d t) in (let TMP_38 \def 
-(lifts h d t0) in (let TMP_39 \def (TCons TMP_37 TMP_38) in (let TMP_40 \def 
-(lift h d t1) in (let TMP_41 \def (lifts h d t2) in (let TMP_42 \def (TCons 
-TMP_40 TMP_41) in (let H3 \def (f_equal TList TList TMP_36 TMP_39 TMP_42 H1) 
-in (let TMP_50 \def (\lambda (H4: (eq T (lift h d t) (lift h d t1))).(let 
-TMP_45 \def (\lambda (t3: T).(let TMP_43 \def (TCons t t0) in (let TMP_44 
-\def (TCons t3 t2) in (eq TList TMP_43 TMP_44)))) in (let TMP_46 \def 
-(refl_equal T t) in (let TMP_47 \def (H t2 h d H3) in (let TMP_48 \def 
-(f_equal2 T TList TList TCons t t t0 t2 TMP_46 TMP_47) in (let TMP_49 \def 
-(lift_inj t t1 h d H4) in (eq_ind T t TMP_45 TMP_48 t1 TMP_49))))))) in 
-(TMP_50 H2)))))))))))))))))))))))) in (TList_ind TMP_13 TMP_20 TMP_51 
-ts)))))))) in (TList_ind TMP_1 TMP_11 TMP_52 xs)))).
+d (TCons t t0)) (lifts h d t1)) \to (eq TList (TCons t t0) t1))))) (\lambda 
+(h: nat).(\lambda (d: nat).(\lambda (H0: (eq TList (TCons (lift h d t) (lifts 
+h d t0)) TNil)).(let H1 \def (eq_ind TList (TCons (lift h d t) (lifts h d 
+t0)) (\lambda (ee: TList).(match ee with [TNil \Rightarrow False | (TCons _ 
+_) \Rightarrow True])) I TNil H0) in (False_ind (eq TList (TCons t t0) TNil) 
+H1))))) (\lambda (t1: T).(\lambda (t2: TList).(\lambda (_: ((\forall (h: 
+nat).(\forall (d: nat).((eq TList (TCons (lift h d t) (lifts h d t0)) (lifts 
+h d t2)) \to (eq TList (TCons t t0) t2)))))).(\lambda (h: nat).(\lambda (d: 
+nat).(\lambda (H1: (eq TList (TCons (lift h d t) (lifts h d t0)) (TCons (lift 
+h d t1) (lifts h d t2)))).(let H2 \def (f_equal TList T (\lambda (e: 
+TList).(match e with [TNil \Rightarrow (lref_map (\lambda (x: nat).(plus x 
+h)) d t) | (TCons t3 _) \Rightarrow t3])) (TCons (lift h d t) (lifts h d t0)) 
+(TCons (lift h d t1) (lifts h d t2)) H1) in ((let H3 \def (f_equal TList 
+TList (\lambda (e: TList).(match e with [TNil \Rightarrow (lifts h d t0) | 
+(TCons _ t3) \Rightarrow t3])) (TCons (lift h d t) (lifts h d t0)) (TCons 
+(lift h d t1) (lifts h d t2)) H1) in (\lambda (H4: (eq T (lift h d t) (lift h 
+d t1))).(eq_ind T t (\lambda (t3: T).(eq TList (TCons t t0) (TCons t3 t2))) 
+(f_equal2 T TList TList TCons t t t0 t2 (refl_equal T t) (H t2 h d H3)) t1 
+(lift_inj t t1 h d H4)))) H2)))))))) ts))))) xs).
 
index 6adeada0c74be488605997e746239fb183f0fe37..6907f694c7d215f5ad4aa6c769b78f11ae7ab22d 100644 (file)
@@ -24,35 +24,27 @@ theorem lift_sort:
  \forall (n: nat).(\forall (h: nat).(\forall (d: nat).(eq T (lift h d (TSort 
 n)) (TSort n))))
 \def
- \lambda (n: nat).(\lambda (_: nat).(\lambda (_: nat).(let TMP_1 \def (TSort 
-n) in (refl_equal T TMP_1)))).
+ \lambda (n: nat).(\lambda (_: nat).(\lambda (_: nat).(refl_equal T (TSort 
+n)))).
 
 theorem lift_lref_lt:
  \forall (n: nat).(\forall (h: nat).(\forall (d: nat).((lt n d) \to (eq T 
 (lift h d (TLRef n)) (TLRef n)))))
 \def
  \lambda (n: nat).(\lambda (h: nat).(\lambda (d: nat).(\lambda (H: (lt n 
-d)).(let TMP_4 \def (\lambda (b: bool).(let TMP_1 \def (match b with [true 
-\Rightarrow n | false \Rightarrow (plus n h)]) in (let TMP_2 \def (TLRef 
-TMP_1) in (let TMP_3 \def (TLRef n) in (eq T TMP_2 TMP_3))))) in (let TMP_5 
-\def (TLRef n) in (let TMP_6 \def (refl_equal T TMP_5) in (let TMP_7 \def 
-(blt n d) in (let TMP_8 \def (blt n d) in (let TMP_9 \def (lt_blt d n H) in 
-(let TMP_10 \def (sym_eq bool TMP_8 true TMP_9) in (eq_ind bool true TMP_4 
-TMP_6 TMP_7 TMP_10))))))))))).
+d)).(eq_ind bool true (\lambda (b: bool).(eq T (TLRef (match b with [true 
+\Rightarrow n | false \Rightarrow (plus n h)])) (TLRef n))) (refl_equal T 
+(TLRef n)) (blt n d) (sym_eq bool (blt n d) true (lt_blt d n H)))))).
 
 theorem lift_lref_ge:
  \forall (n: nat).(\forall (h: nat).(\forall (d: nat).((le d n) \to (eq T 
 (lift h d (TLRef n)) (TLRef (plus n h))))))
 \def
  \lambda (n: nat).(\lambda (h: nat).(\lambda (d: nat).(\lambda (H: (le d 
-n)).(let TMP_5 \def (\lambda (b: bool).(let TMP_1 \def (match b with [true 
-\Rightarrow n | false \Rightarrow (plus n h)]) in (let TMP_2 \def (TLRef 
-TMP_1) in (let TMP_3 \def (plus n h) in (let TMP_4 \def (TLRef TMP_3) in (eq 
-T TMP_2 TMP_4)))))) in (let TMP_6 \def (plus n h) in (let TMP_7 \def (TLRef 
-TMP_6) in (let TMP_8 \def (refl_equal T TMP_7) in (let TMP_9 \def (blt n d) 
-in (let TMP_10 \def (blt n d) in (let TMP_11 \def (le_bge d n H) in (let 
-TMP_12 \def (sym_eq bool TMP_10 false TMP_11) in (eq_ind bool false TMP_5 
-TMP_8 TMP_9 TMP_12)))))))))))).
+n)).(eq_ind bool false (\lambda (b: bool).(eq T (TLRef (match b with [true 
+\Rightarrow n | false \Rightarrow (plus n h)])) (TLRef (plus n h)))) 
+(refl_equal T (TLRef (plus n h))) (blt n d) (sym_eq bool (blt n d) false 
+(le_bge d n H)))))).
 
 theorem lift_head:
  \forall (k: K).(\forall (u: T).(\forall (t: T).(\forall (h: nat).(\forall 
@@ -60,9 +52,7 @@ theorem lift_head:
 t)))))))
 \def
  \lambda (k: K).(\lambda (u: T).(\lambda (t: T).(\lambda (h: nat).(\lambda 
-(d: nat).(let TMP_1 \def (lift h d u) in (let TMP_2 \def (s k d) in (let 
-TMP_3 \def (lift h TMP_2 t) in (let TMP_4 \def (THead k TMP_1 TMP_3) in 
-(refl_equal T TMP_4))))))))).
+(d: nat).(refl_equal T (THead k (lift h d u) (lift h (s k d) t))))))).
 
 theorem lift_bind:
  \forall (b: B).(\forall (u: T).(\forall (t: T).(\forall (h: nat).(\forall 
@@ -70,9 +60,7 @@ theorem lift_bind:
 (lift h (S d) t)))))))
 \def
  \lambda (b: B).(\lambda (u: T).(\lambda (t: T).(\lambda (h: nat).(\lambda 
-(d: nat).(let TMP_1 \def (Bind b) in (let TMP_2 \def (lift h d u) in (let 
-TMP_3 \def (S d) in (let TMP_4 \def (lift h TMP_3 t) in (let TMP_5 \def 
-(THead TMP_1 TMP_2 TMP_4) in (refl_equal T TMP_5)))))))))).
+(d: nat).(refl_equal T (THead (Bind b) (lift h d u) (lift h (S d) t))))))).
 
 theorem lift_flat:
  \forall (f: F).(\forall (u: T).(\forall (t: T).(\forall (h: nat).(\forall 
@@ -80,330 +68,170 @@ theorem lift_flat:
 (lift h d t)))))))
 \def
  \lambda (f: F).(\lambda (u: T).(\lambda (t: T).(\lambda (h: nat).(\lambda 
-(d: nat).(let TMP_1 \def (Flat f) in (let TMP_2 \def (lift h d u) in (let 
-TMP_3 \def (lift h d t) in (let TMP_4 \def (THead TMP_1 TMP_2 TMP_3) in 
-(refl_equal T TMP_4))))))))).
+(d: nat).(refl_equal T (THead (Flat f) (lift h d u) (lift h d t))))))).
 
 theorem thead_x_lift_y_y:
  \forall (k: K).(\forall (t: T).(\forall (v: T).(\forall (h: nat).(\forall 
 (d: nat).((eq T (THead k v (lift h d t)) t) \to (\forall (P: Prop).P))))))
 \def
- \lambda (k: K).(\lambda (t: T).(let TMP_1 \def (\lambda (t0: T).(\forall (v: 
+ \lambda (k: K).(\lambda (t: T).(T_ind (\lambda (t0: T).(\forall (v: 
 T).(\forall (h: nat).(\forall (d: nat).((eq T (THead k v (lift h d t0)) t0) 
-\to (\forall (P: Prop).P)))))) in (let TMP_7 \def (\lambda (n: nat).(\lambda 
-(v: T).(\lambda (h: nat).(\lambda (d: nat).(\lambda (H: (eq T (THead k v 
-(lift h d (TSort n))) (TSort n))).(\lambda (P: Prop).(let TMP_2 \def (TSort 
-n) in (let TMP_3 \def (lift h d TMP_2) in (let TMP_4 \def (THead k v TMP_3) 
-in (let TMP_5 \def (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow 
-False | (TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow True])) in 
-(let TMP_6 \def (TSort n) in (let H0 \def (eq_ind T TMP_4 TMP_5 I TMP_6 H) in 
-(False_ind P H0))))))))))))) in (let TMP_13 \def (\lambda (n: nat).(\lambda 
-(v: T).(\lambda (h: nat).(\lambda (d: nat).(\lambda (H: (eq T (THead k v 
-(lift h d (TLRef n))) (TLRef n))).(\lambda (P: Prop).(let TMP_8 \def (TLRef 
-n) in (let TMP_9 \def (lift h d TMP_8) in (let TMP_10 \def (THead k v TMP_9) 
-in (let TMP_11 \def (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow 
-False | (TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow True])) in 
-(let TMP_12 \def (TLRef n) in (let H0 \def (eq_ind T TMP_10 TMP_11 I TMP_12 
-H) in (False_ind P H0))))))))))))) in (let TMP_72 \def (\lambda (k0: 
-K).(\lambda (t0: T).(\lambda (_: ((\forall (v: T).(\forall (h: nat).(\forall 
-(d: nat).((eq T (THead k v (lift h d t0)) t0) \to (\forall (P: 
-Prop).P))))))).(\lambda (t1: T).(\lambda (H0: ((\forall (v: T).(\forall (h: 
-nat).(\forall (d: nat).((eq T (THead k v (lift h d t1)) t1) \to (\forall (P: 
-Prop).P))))))).(\lambda (v: T).(\lambda (h: nat).(\lambda (d: nat).(\lambda 
-(H1: (eq T (THead k v (lift h d (THead k0 t0 t1))) (THead k0 t0 
-t1))).(\lambda (P: Prop).(let TMP_14 \def (\lambda (e: T).(match e with 
-[(TSort _) \Rightarrow k | (TLRef _) \Rightarrow k | (THead k1 _ _) 
-\Rightarrow k1])) in (let TMP_15 \def (THead k0 t0 t1) in (let TMP_16 \def 
-(lift h d TMP_15) in (let TMP_17 \def (THead k v TMP_16) in (let TMP_18 \def 
-(THead k0 t0 t1) in (let H2 \def (f_equal T K TMP_14 TMP_17 TMP_18 H1) in 
-(let TMP_19 \def (\lambda (e: T).(match e with [(TSort _) \Rightarrow v | 
-(TLRef _) \Rightarrow v | (THead _ t2 _) \Rightarrow t2])) in (let TMP_20 
-\def (THead k0 t0 t1) in (let TMP_21 \def (lift h d TMP_20) in (let TMP_22 
-\def (THead k v TMP_21) in (let TMP_23 \def (THead k0 t0 t1) in (let H3 \def 
-(f_equal T T TMP_19 TMP_22 TMP_23 H1) in (let TMP_54 \def (\lambda (e: 
-T).(match e with [(TSort _) \Rightarrow (let TMP_44 \def (\lambda (x: 
-nat).(plus x h)) in (let TMP_45 \def (lref_map TMP_44 d t0) in (let TMP_51 
-\def (\lambda (x: nat).(plus x h)) in (let TMP_52 \def (s k0 d) in (let 
-TMP_53 \def (lref_map TMP_51 TMP_52 t1) in (THead k0 TMP_45 TMP_53)))))) | 
-(TLRef _) \Rightarrow (let TMP_29 \def (\lambda (x: nat).(plus x h)) in (let 
-TMP_30 \def (lref_map TMP_29 d t0) in (let TMP_36 \def (\lambda (x: 
-nat).(plus x h)) in (let TMP_37 \def (s k0 d) in (let TMP_38 \def (lref_map 
-TMP_36 TMP_37 t1) in (THead k0 TMP_30 TMP_38)))))) | (THead _ _ t2) 
-\Rightarrow t2])) in (let TMP_55 \def (THead k0 t0 t1) in (let TMP_56 \def 
-(lift h d TMP_55) in (let TMP_57 \def (THead k v TMP_56) in (let TMP_58 \def 
-(THead k0 t0 t1) in (let H4 \def (f_equal T T TMP_54 TMP_57 TMP_58 H1) in 
-(let TMP_70 \def (\lambda (_: (eq T v t0)).(\lambda (H6: (eq K k k0)).(let 
-TMP_59 \def (\lambda (k1: K).(\forall (v0: T).(\forall (h0: nat).(\forall 
-(d0: nat).((eq T (THead k1 v0 (lift h0 d0 t1)) t1) \to (\forall (P0: 
-Prop).P0)))))) in (let H7 \def (eq_ind K k TMP_59 H0 k0 H6) in (let TMP_60 
-\def (THead k0 t0 t1) in (let TMP_61 \def (lift h d TMP_60) in (let TMP_62 
-\def (\lambda (t2: T).(eq T t2 t1)) in (let TMP_63 \def (lift h d t0) in (let 
-TMP_64 \def (s k0 d) in (let TMP_65 \def (lift h TMP_64 t1) in (let TMP_66 
-\def (THead k0 TMP_63 TMP_65) in (let TMP_67 \def (lift_head k0 t0 t1 h d) in 
-(let H8 \def (eq_ind T TMP_61 TMP_62 H4 TMP_66 TMP_67) in (let TMP_68 \def 
-(lift h d t0) in (let TMP_69 \def (s k0 d) in (H7 TMP_68 h TMP_69 H8 
-P)))))))))))))))) in (let TMP_71 \def (TMP_70 H3) in (TMP_71 
-H2))))))))))))))))))))))))))))))) in (T_ind TMP_1 TMP_7 TMP_13 TMP_72 t)))))).
+\to (\forall (P: Prop).P)))))) (\lambda (n: nat).(\lambda (v: T).(\lambda (h: 
+nat).(\lambda (d: nat).(\lambda (H: (eq T (THead k v (lift h d (TSort n))) 
+(TSort n))).(\lambda (P: Prop).(let H0 \def (eq_ind T (THead k v (lift h d 
+(TSort n))) (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | 
+(TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow True])) I (TSort n) 
+H) in (False_ind P H0)))))))) (\lambda (n: nat).(\lambda (v: T).(\lambda (h: 
+nat).(\lambda (d: nat).(\lambda (H: (eq T (THead k v (lift h d (TLRef n))) 
+(TLRef n))).(\lambda (P: Prop).(let H0 \def (eq_ind T (THead k v (lift h d 
+(TLRef n))) (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | 
+(TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow True])) I (TLRef n) 
+H) in (False_ind P H0)))))))) (\lambda (k0: K).(\lambda (t0: T).(\lambda (_: 
+((\forall (v: T).(\forall (h: nat).(\forall (d: nat).((eq T (THead k v (lift 
+h d t0)) t0) \to (\forall (P: Prop).P))))))).(\lambda (t1: T).(\lambda (H0: 
+((\forall (v: T).(\forall (h: nat).(\forall (d: nat).((eq T (THead k v (lift 
+h d t1)) t1) \to (\forall (P: Prop).P))))))).(\lambda (v: T).(\lambda (h: 
+nat).(\lambda (d: nat).(\lambda (H1: (eq T (THead k v (lift h d (THead k0 t0 
+t1))) (THead k0 t0 t1))).(\lambda (P: Prop).(let H2 \def (f_equal T K 
+(\lambda (e: T).(match e with [(TSort _) \Rightarrow k | (TLRef _) 
+\Rightarrow k | (THead k1 _ _) \Rightarrow k1])) (THead k v (lift h d (THead 
+k0 t0 t1))) (THead k0 t0 t1) H1) in ((let H3 \def (f_equal T T (\lambda (e: 
+T).(match e with [(TSort _) \Rightarrow v | (TLRef _) \Rightarrow v | (THead 
+_ t2 _) \Rightarrow t2])) (THead k v (lift h d (THead k0 t0 t1))) (THead k0 
+t0 t1) H1) in ((let H4 \def (f_equal T T (\lambda (e: T).(match e with 
+[(TSort _) \Rightarrow (THead k0 (lref_map (\lambda (x: nat).(plus x h)) d 
+t0) (lref_map (\lambda (x: nat).(plus x h)) (s k0 d) t1)) | (TLRef _) 
+\Rightarrow (THead k0 (lref_map (\lambda (x: nat).(plus x h)) d t0) (lref_map 
+(\lambda (x: nat).(plus x h)) (s k0 d) t1)) | (THead _ _ t2) \Rightarrow 
+t2])) (THead k v (lift h d (THead k0 t0 t1))) (THead k0 t0 t1) H1) in 
+(\lambda (_: (eq T v t0)).(\lambda (H6: (eq K k k0)).(let H7 \def (eq_ind K k 
+(\lambda (k1: K).(\forall (v0: T).(\forall (h0: nat).(\forall (d0: nat).((eq 
+T (THead k1 v0 (lift h0 d0 t1)) t1) \to (\forall (P0: Prop).P0)))))) H0 k0 
+H6) in (let H8 \def (eq_ind T (lift h d (THead k0 t0 t1)) (\lambda (t2: 
+T).(eq T t2 t1)) H4 (THead k0 (lift h d t0) (lift h (s k0 d) t1)) (lift_head 
+k0 t0 t1 h d)) in (H7 (lift h d t0) h (s k0 d) H8 P)))))) H3)) H2)))))))))))) 
+t)).
 
 theorem lift_r:
  \forall (t: T).(\forall (d: nat).(eq T (lift O d t) t))
 \def
- \lambda (t: T).(let TMP_2 \def (\lambda (t0: T).(\forall (d: nat).(let TMP_1 
-\def (lift O d t0) in (eq T TMP_1 t0)))) in (let TMP_4 \def (\lambda (n: 
-nat).(\lambda (_: nat).(let TMP_3 \def (TSort n) in (refl_equal T TMP_3)))) 
-in (let TMP_31 \def (\lambda (n: nat).(\lambda (d: nat).(let TMP_5 \def 
-(TLRef n) in (let TMP_6 \def (lift O d TMP_5) in (let TMP_7 \def (TLRef n) in 
-(let TMP_8 \def (eq T TMP_6 TMP_7) in (let TMP_17 \def (\lambda (H: (lt n 
-d)).(let TMP_9 \def (TLRef n) in (let TMP_11 \def (\lambda (t0: T).(let 
-TMP_10 \def (TLRef n) in (eq T t0 TMP_10))) in (let TMP_12 \def (TLRef n) in 
-(let TMP_13 \def (refl_equal T TMP_12) in (let TMP_14 \def (TLRef n) in (let 
-TMP_15 \def (lift O d TMP_14) in (let TMP_16 \def (lift_lref_lt n O d H) in 
-(eq_ind_r T TMP_9 TMP_11 TMP_13 TMP_15 TMP_16))))))))) in (let TMP_30 \def 
-(\lambda (H: (le d n)).(let TMP_18 \def (plus n O) in (let TMP_19 \def (TLRef 
-TMP_18) in (let TMP_21 \def (\lambda (t0: T).(let TMP_20 \def (TLRef n) in 
-(eq T t0 TMP_20))) in (let TMP_22 \def (plus n O) in (let TMP_23 \def (plus n 
-O) in (let TMP_24 \def (plus_n_O n) in (let TMP_25 \def (sym_eq nat n TMP_23 
-TMP_24) in (let TMP_26 \def (f_equal nat T TLRef TMP_22 n TMP_25) in (let 
-TMP_27 \def (TLRef n) in (let TMP_28 \def (lift O d TMP_27) in (let TMP_29 
-\def (lift_lref_ge n O d H) in (eq_ind_r T TMP_19 TMP_21 TMP_26 TMP_28 
-TMP_29))))))))))))) in (lt_le_e n d TMP_8 TMP_17 TMP_30))))))))) in (let 
-TMP_61 \def (\lambda (k: K).(\lambda (t0: T).(\lambda (H: ((\forall (d: 
-nat).(eq T (lift O d t0) t0)))).(\lambda (t1: T).(\lambda (H0: ((\forall (d: 
-nat).(eq T (lift O d t1) t1)))).(\lambda (d: nat).(let TMP_32 \def (lift O d 
-t0) in (let TMP_33 \def (s k d) in (let TMP_34 \def (lift O TMP_33 t1) in 
-(let TMP_35 \def (THead k TMP_32 TMP_34) in (let TMP_37 \def (\lambda (t2: 
-T).(let TMP_36 \def (THead k t0 t1) in (eq T t2 TMP_36))) in (let TMP_38 \def 
-(THead k t0 t1) in (let TMP_39 \def (lift O d t0) in (let TMP_40 \def (s k d) 
-in (let TMP_41 \def (lift O TMP_40 t1) in (let TMP_42 \def (THead k TMP_39 
-TMP_41) in (let TMP_43 \def (lift O d t0) in (let TMP_44 \def (s k d) in (let 
-TMP_45 \def (lift O TMP_44 t1) in (let TMP_46 \def (THead k TMP_43 TMP_45) in 
-(let TMP_47 \def (THead k t0 t1) in (let TMP_48 \def (lift O d t0) in (let 
-TMP_49 \def (s k d) in (let TMP_50 \def (lift O TMP_49 t1) in (let TMP_51 
-\def (refl_equal K k) in (let TMP_52 \def (H d) in (let TMP_53 \def (s k d) 
-in (let TMP_54 \def (H0 TMP_53) in (let TMP_55 \def (f_equal3 K T T T THead k 
-k TMP_48 t0 TMP_50 t1 TMP_51 TMP_52 TMP_54) in (let TMP_56 \def (sym_eq T 
-TMP_46 TMP_47 TMP_55) in (let TMP_57 \def (sym_eq T TMP_38 TMP_42 TMP_56) in 
-(let TMP_58 \def (THead k t0 t1) in (let TMP_59 \def (lift O d TMP_58) in 
-(let TMP_60 \def (lift_head k t0 t1 O d) in (eq_ind_r T TMP_35 TMP_37 TMP_57 
-TMP_59 TMP_60))))))))))))))))))))))))))))))))))) in (T_ind TMP_2 TMP_4 TMP_31 
-TMP_61 t))))).
+ \lambda (t: T).(T_ind (\lambda (t0: T).(\forall (d: nat).(eq T (lift O d t0) 
+t0))) (\lambda (n: nat).(\lambda (_: nat).(refl_equal T (TSort n)))) (\lambda 
+(n: nat).(\lambda (d: nat).(lt_le_e n d (eq T (lift O d (TLRef n)) (TLRef n)) 
+(\lambda (H: (lt n d)).(eq_ind_r T (TLRef n) (\lambda (t0: T).(eq T t0 (TLRef 
+n))) (refl_equal T (TLRef n)) (lift O d (TLRef n)) (lift_lref_lt n O d H))) 
+(\lambda (H: (le d n)).(eq_ind_r T (TLRef (plus n O)) (\lambda (t0: T).(eq T 
+t0 (TLRef n))) (f_equal nat T TLRef (plus n O) n (sym_eq nat n (plus n O) 
+(plus_n_O n))) (lift O d (TLRef n)) (lift_lref_ge n O d H)))))) (\lambda (k: 
+K).(\lambda (t0: T).(\lambda (H: ((\forall (d: nat).(eq T (lift O d t0) 
+t0)))).(\lambda (t1: T).(\lambda (H0: ((\forall (d: nat).(eq T (lift O d t1) 
+t1)))).(\lambda (d: nat).(eq_ind_r T (THead k (lift O d t0) (lift O (s k d) 
+t1)) (\lambda (t2: T).(eq T t2 (THead k t0 t1))) (sym_eq T (THead k t0 t1) 
+(THead k (lift O d t0) (lift O (s k d) t1)) (sym_eq T (THead k (lift O d t0) 
+(lift O (s k d) t1)) (THead k t0 t1) (f_equal3 K T T T THead k k (lift O d 
+t0) t0 (lift O (s k d) t1) t1 (refl_equal K k) (H d) (H0 (s k d))))) (lift O 
+d (THead k t0 t1)) (lift_head k t0 t1 O d)))))))) t).
 
 theorem lift_lref_gt:
  \forall (d: nat).(\forall (n: nat).((lt d n) \to (eq T (lift (S O) d (TLRef 
 (pred n))) (TLRef n))))
 \def
- \lambda (d: nat).(\lambda (n: nat).(\lambda (H: (lt d n)).(let TMP_1 \def 
-(pred n) in (let TMP_2 \def (S O) in (let TMP_3 \def (plus TMP_1 TMP_2) in 
-(let TMP_4 \def (TLRef TMP_3) in (let TMP_6 \def (\lambda (t: T).(let TMP_5 
-\def (TLRef n) in (eq T t TMP_5))) in (let TMP_7 \def (S O) in (let TMP_8 
-\def (pred n) in (let TMP_9 \def (plus TMP_7 TMP_8) in (let TMP_12 \def 
-(\lambda (n0: nat).(let TMP_10 \def (TLRef n0) in (let TMP_11 \def (TLRef n) 
-in (eq T TMP_10 TMP_11)))) in (let TMP_15 \def (\lambda (n0: nat).(let TMP_13 
-\def (TLRef n0) in (let TMP_14 \def (TLRef n) in (eq T TMP_13 TMP_14)))) in 
-(let TMP_16 \def (TLRef n) in (let TMP_17 \def (refl_equal T TMP_16) in (let 
-TMP_18 \def (pred n) in (let TMP_19 \def (S TMP_18) in (let TMP_20 \def 
-(S_pred n d H) in (let TMP_21 \def (eq_ind nat n TMP_15 TMP_17 TMP_19 TMP_20) 
-in (let TMP_22 \def (pred n) in (let TMP_23 \def (S O) in (let TMP_24 \def 
-(plus TMP_22 TMP_23) in (let TMP_25 \def (S O) in (let TMP_26 \def (pred n) 
-in (let TMP_27 \def (plus_sym TMP_25 TMP_26) in (let TMP_28 \def (eq_ind nat 
-TMP_9 TMP_12 TMP_21 TMP_24 TMP_27) in (let TMP_29 \def (S O) in (let TMP_30 
-\def (pred n) in (let TMP_31 \def (TLRef TMP_30) in (let TMP_32 \def (lift 
-TMP_29 d TMP_31) in (let TMP_33 \def (pred n) in (let TMP_34 \def (S O) in 
-(let TMP_35 \def (pred n) in (let TMP_37 \def (\lambda (n0: nat).(let TMP_36 
-\def (S d) in (le TMP_36 n0))) in (let TMP_38 \def (pred n) in (let TMP_39 
-\def (S TMP_38) in (let TMP_40 \def (S_pred n d H) in (let TMP_41 \def 
-(eq_ind nat n TMP_37 H TMP_39 TMP_40) in (let TMP_42 \def (le_S_n d TMP_35 
-TMP_41) in (let TMP_43 \def (lift_lref_ge TMP_33 TMP_34 d TMP_42) in 
-(eq_ind_r T TMP_4 TMP_6 TMP_28 TMP_32 
-TMP_43)))))))))))))))))))))))))))))))))))))))).
+ \lambda (d: nat).(\lambda (n: nat).(\lambda (H: (lt d n)).(eq_ind_r T (TLRef 
+(plus (pred n) (S O))) (\lambda (t: T).(eq T t (TLRef n))) (eq_ind nat (plus 
+(S O) (pred n)) (\lambda (n0: nat).(eq T (TLRef n0) (TLRef n))) (eq_ind nat n 
+(\lambda (n0: nat).(eq T (TLRef n0) (TLRef n))) (refl_equal T (TLRef n)) (S 
+(pred n)) (S_pred n d H)) (plus (pred n) (S O)) (plus_sym (S O) (pred n))) 
+(lift (S O) d (TLRef (pred n))) (lift_lref_ge (pred n) (S O) d (le_S_n d 
+(pred n) (eq_ind nat n (\lambda (n0: nat).(le (S d) n0)) H (S (pred n)) 
+(S_pred n d H))))))).
 
 theorem lift_tle:
  \forall (t: T).(\forall (h: nat).(\forall (d: nat).(tle t (lift h d t))))
 \def
- \lambda (t: T).(let TMP_4 \def (\lambda (t0: T).(\forall (h: nat).(\forall 
-(d: nat).(let TMP_1 \def (tweight t0) in (let TMP_2 \def (lift h d t0) in 
-(let TMP_3 \def (tweight TMP_2) in (le TMP_1 TMP_3))))))) in (let TMP_6 \def 
-(\lambda (_: nat).(\lambda (_: nat).(\lambda (_: nat).(let TMP_5 \def (S O) 
-in (le_n TMP_5))))) in (let TMP_8 \def (\lambda (_: nat).(\lambda (_: 
-nat).(\lambda (_: nat).(let TMP_7 \def (S O) in (le_n TMP_7))))) in (let 
-TMP_31 \def (\lambda (k: K).(\lambda (t0: T).(\lambda (H: ((\forall (h: 
-nat).(\forall (d: nat).(le (tweight t0) (tweight (lift h d t0))))))).(\lambda 
-(t1: T).(\lambda (H0: ((\forall (h: nat).(\forall (d: nat).(le (tweight t1) 
-(tweight (lift h d t1))))))).(\lambda (h: nat).(\lambda (d: nat).(let H_y 
-\def (H h d) in (let TMP_9 \def (s k d) in (let H_y0 \def (H0 h TMP_9) in 
-(let TMP_10 \def (tweight t0) in (let TMP_11 \def (tweight t1) in (let TMP_12 
-\def (plus TMP_10 TMP_11) in (let TMP_13 \def (\lambda (x: nat).(plus x h)) 
-in (let TMP_14 \def (lref_map TMP_13 d t0) in (let TMP_15 \def (tweight 
-TMP_14) in (let TMP_16 \def (\lambda (x: nat).(plus x h)) in (let TMP_17 \def 
-(s k d) in (let TMP_18 \def (lref_map TMP_16 TMP_17 t1) in (let TMP_19 \def 
-(tweight TMP_18) in (let TMP_20 \def (plus TMP_15 TMP_19) in (let TMP_21 \def 
-(tweight t0) in (let TMP_22 \def (\lambda (x: nat).(plus x h)) in (let TMP_23 
-\def (lref_map TMP_22 d t0) in (let TMP_24 \def (tweight TMP_23) in (let 
-TMP_25 \def (tweight t1) in (let TMP_26 \def (\lambda (x: nat).(plus x h)) in 
-(let TMP_27 \def (s k d) in (let TMP_28 \def (lref_map TMP_26 TMP_27 t1) in 
-(let TMP_29 \def (tweight TMP_28) in (let TMP_30 \def (le_plus_plus TMP_21 
-TMP_24 TMP_25 TMP_29 H_y H_y0) in (le_n_S TMP_12 TMP_20 
-TMP_30)))))))))))))))))))))))))))))))) in (T_ind TMP_4 TMP_6 TMP_8 TMP_31 
-t))))).
+ \lambda (t: T).(T_ind (\lambda (t0: T).(\forall (h: nat).(\forall (d: 
+nat).(le (tweight t0) (tweight (lift h d t0)))))) (\lambda (_: nat).(\lambda 
+(_: nat).(\lambda (_: nat).(le_n (S O))))) (\lambda (_: nat).(\lambda (_: 
+nat).(\lambda (_: nat).(le_n (S O))))) (\lambda (k: K).(\lambda (t0: 
+T).(\lambda (H: ((\forall (h: nat).(\forall (d: nat).(le (tweight t0) 
+(tweight (lift h d t0))))))).(\lambda (t1: T).(\lambda (H0: ((\forall (h: 
+nat).(\forall (d: nat).(le (tweight t1) (tweight (lift h d t1))))))).(\lambda 
+(h: nat).(\lambda (d: nat).(let H_y \def (H h d) in (let H_y0 \def (H0 h (s k 
+d)) in (le_n_S (plus (tweight t0) (tweight t1)) (plus (tweight (lref_map 
+(\lambda (x: nat).(plus x h)) d t0)) (tweight (lref_map (\lambda (x: 
+nat).(plus x h)) (s k d) t1))) (le_plus_plus (tweight t0) (tweight (lref_map 
+(\lambda (x: nat).(plus x h)) d t0)) (tweight t1) (tweight (lref_map (\lambda 
+(x: nat).(plus x h)) (s k d) t1)) H_y H_y0))))))))))) t).
 
 theorem lifts_tapp:
  \forall (h: nat).(\forall (d: nat).(\forall (v: T).(\forall (vs: TList).(eq 
 TList (lifts h d (TApp vs v)) (TApp (lifts h d vs) (lift h d v))))))
 \def
- \lambda (h: nat).(\lambda (d: nat).(\lambda (v: T).(\lambda (vs: TList).(let 
-TMP_6 \def (\lambda (t: TList).(let TMP_1 \def (TApp t v) in (let TMP_2 \def 
-(lifts h d TMP_1) in (let TMP_3 \def (lifts h d t) in (let TMP_4 \def (lift h 
-d v) in (let TMP_5 \def (TApp TMP_3 TMP_4) in (eq TList TMP_2 TMP_5))))))) in 
-(let TMP_7 \def (lift h d v) in (let TMP_8 \def (TCons TMP_7 TNil) in (let 
-TMP_9 \def (refl_equal TList TMP_8) in (let TMP_29 \def (\lambda (t: 
-T).(\lambda (t0: TList).(\lambda (H: (eq TList (lifts h d (TApp t0 v)) (TApp 
-(lifts h d t0) (lift h d v)))).(let TMP_10 \def (lifts h d t0) in (let TMP_11 
-\def (lift h d v) in (let TMP_12 \def (TApp TMP_10 TMP_11) in (let TMP_20 
-\def (\lambda (t1: TList).(let TMP_13 \def (lift h d t) in (let TMP_14 \def 
-(TCons TMP_13 t1) in (let TMP_15 \def (lift h d t) in (let TMP_16 \def (lifts 
-h d t0) in (let TMP_17 \def (lift h d v) in (let TMP_18 \def (TApp TMP_16 
-TMP_17) in (let TMP_19 \def (TCons TMP_15 TMP_18) in (eq TList TMP_14 
-TMP_19))))))))) in (let TMP_21 \def (lift h d t) in (let TMP_22 \def (lifts h 
-d t0) in (let TMP_23 \def (lift h d v) in (let TMP_24 \def (TApp TMP_22 
-TMP_23) in (let TMP_25 \def (TCons TMP_21 TMP_24) in (let TMP_26 \def 
-(refl_equal TList TMP_25) in (let TMP_27 \def (TApp t0 v) in (let TMP_28 \def 
-(lifts h d TMP_27) in (eq_ind_r TList TMP_12 TMP_20 TMP_26 TMP_28 
-H)))))))))))))))) in (TList_ind TMP_6 TMP_9 TMP_29 vs))))))))).
+ \lambda (h: nat).(\lambda (d: nat).(\lambda (v: T).(\lambda (vs: 
+TList).(TList_ind (\lambda (t: TList).(eq TList (lifts h d (TApp t v)) (TApp 
+(lifts h d t) (lift h d v)))) (refl_equal TList (TCons (lift h d v) TNil)) 
+(\lambda (t: T).(\lambda (t0: TList).(\lambda (H: (eq TList (lifts h d (TApp 
+t0 v)) (TApp (lifts h d t0) (lift h d v)))).(eq_ind_r TList (TApp (lifts h d 
+t0) (lift h d v)) (\lambda (t1: TList).(eq TList (TCons (lift h d t) t1) 
+(TCons (lift h d t) (TApp (lifts h d t0) (lift h d v))))) (refl_equal TList 
+(TCons (lift h d t) (TApp (lifts h d t0) (lift h d v)))) (lifts h d (TApp t0 
+v)) H)))) vs)))).
 
 theorem lift_free:
  \forall (t: T).(\forall (h: nat).(\forall (k: nat).(\forall (d: 
 nat).(\forall (e: nat).((le e (plus d h)) \to ((le d e) \to (eq T (lift k e 
 (lift h d t)) (lift (plus k h) d t))))))))
 \def
- \lambda (t: T).(let TMP_5 \def (\lambda (t0: T).(\forall (h: nat).(\forall 
-(k: nat).(\forall (d: nat).(\forall (e: nat).((le e (plus d h)) \to ((le d e) 
-\to (let TMP_1 \def (lift h d t0) in (let TMP_2 \def (lift k e TMP_1) in (let 
-TMP_3 \def (plus k h) in (let TMP_4 \def (lift TMP_3 d t0) in (eq T TMP_2 
-TMP_4)))))))))))) in (let TMP_35 \def (\lambda (n: nat).(\lambda (h: 
-nat).(\lambda (k: nat).(\lambda (d: nat).(\lambda (e: nat).(\lambda (_: (le e 
-(plus d h))).(\lambda (_: (le d e)).(let TMP_6 \def (TSort n) in (let TMP_11 
-\def (\lambda (t0: T).(let TMP_7 \def (lift k e t0) in (let TMP_8 \def (plus 
-k h) in (let TMP_9 \def (TSort n) in (let TMP_10 \def (lift TMP_8 d TMP_9) in 
-(eq T TMP_7 TMP_10)))))) in (let TMP_12 \def (TSort n) in (let TMP_16 \def 
-(\lambda (t0: T).(let TMP_13 \def (plus k h) in (let TMP_14 \def (TSort n) in 
-(let TMP_15 \def (lift TMP_13 d TMP_14) in (eq T t0 TMP_15))))) in (let 
-TMP_17 \def (TSort n) in (let TMP_19 \def (\lambda (t0: T).(let TMP_18 \def 
-(TSort n) in (eq T TMP_18 t0))) in (let TMP_20 \def (TSort n) in (let TMP_21 
-\def (refl_equal T TMP_20) in (let TMP_22 \def (plus k h) in (let TMP_23 \def 
-(TSort n) in (let TMP_24 \def (lift TMP_22 d TMP_23) in (let TMP_25 \def 
-(plus k h) in (let TMP_26 \def (lift_sort n TMP_25 d) in (let TMP_27 \def 
-(eq_ind_r T TMP_17 TMP_19 TMP_21 TMP_24 TMP_26) in (let TMP_28 \def (TSort n) 
-in (let TMP_29 \def (lift k e TMP_28) in (let TMP_30 \def (lift_sort n k e) 
-in (let TMP_31 \def (eq_ind_r T TMP_12 TMP_16 TMP_27 TMP_29 TMP_30) in (let 
-TMP_32 \def (TSort n) in (let TMP_33 \def (lift h d TMP_32) in (let TMP_34 
-\def (lift_sort n h d) in (eq_ind_r T TMP_6 TMP_11 TMP_31 TMP_33 
-TMP_34))))))))))))))))))))))))))))) in (let TMP_122 \def (\lambda (n: 
+ \lambda (t: T).(T_ind (\lambda (t0: T).(\forall (h: nat).(\forall (k: 
+nat).(\forall (d: nat).(\forall (e: nat).((le e (plus d h)) \to ((le d e) \to 
+(eq T (lift k e (lift h d t0)) (lift (plus k h) d t0))))))))) (\lambda (n: 
 nat).(\lambda (h: nat).(\lambda (k: nat).(\lambda (d: nat).(\lambda (e: 
-nat).(\lambda (H: (le e (plus d h))).(\lambda (H0: (le d e)).(let TMP_36 \def 
-(TLRef n) in (let TMP_37 \def (lift h d TMP_36) in (let TMP_38 \def (lift k e 
-TMP_37) in (let TMP_39 \def (plus k h) in (let TMP_40 \def (TLRef n) in (let 
-TMP_41 \def (lift TMP_39 d TMP_40) in (let TMP_42 \def (eq T TMP_38 TMP_41) 
-in (let TMP_73 \def (\lambda (H1: (lt n d)).(let TMP_43 \def (TLRef n) in 
-(let TMP_48 \def (\lambda (t0: T).(let TMP_44 \def (lift k e t0) in (let 
-TMP_45 \def (plus k h) in (let TMP_46 \def (TLRef n) in (let TMP_47 \def 
-(lift TMP_45 d TMP_46) in (eq T TMP_44 TMP_47)))))) in (let TMP_49 \def 
-(TLRef n) in (let TMP_53 \def (\lambda (t0: T).(let TMP_50 \def (plus k h) in 
-(let TMP_51 \def (TLRef n) in (let TMP_52 \def (lift TMP_50 d TMP_51) in (eq 
-T t0 TMP_52))))) in (let TMP_54 \def (TLRef n) in (let TMP_56 \def (\lambda 
-(t0: T).(let TMP_55 \def (TLRef n) in (eq T TMP_55 t0))) in (let TMP_57 \def 
-(TLRef n) in (let TMP_58 \def (refl_equal T TMP_57) in (let TMP_59 \def (plus 
-k h) in (let TMP_60 \def (TLRef n) in (let TMP_61 \def (lift TMP_59 d TMP_60) 
-in (let TMP_62 \def (plus k h) in (let TMP_63 \def (lift_lref_lt n TMP_62 d 
-H1) in (let TMP_64 \def (eq_ind_r T TMP_54 TMP_56 TMP_58 TMP_61 TMP_63) in 
-(let TMP_65 \def (TLRef n) in (let TMP_66 \def (lift k e TMP_65) in (let 
-TMP_67 \def (lt_le_trans n d e H1 H0) in (let TMP_68 \def (lift_lref_lt n k e 
-TMP_67) in (let TMP_69 \def (eq_ind_r T TMP_49 TMP_53 TMP_64 TMP_66 TMP_68) 
-in (let TMP_70 \def (TLRef n) in (let TMP_71 \def (lift h d TMP_70) in (let 
-TMP_72 \def (lift_lref_lt n h d H1) in (eq_ind_r T TMP_43 TMP_48 TMP_69 
-TMP_71 TMP_72)))))))))))))))))))))))) in (let TMP_121 \def (\lambda (H1: (le 
-d n)).(let TMP_74 \def (plus n h) in (let TMP_75 \def (TLRef TMP_74) in (let 
-TMP_80 \def (\lambda (t0: T).(let TMP_76 \def (lift k e t0) in (let TMP_77 
-\def (plus k h) in (let TMP_78 \def (TLRef n) in (let TMP_79 \def (lift 
-TMP_77 d TMP_78) in (eq T TMP_76 TMP_79)))))) in (let TMP_81 \def (plus n h) 
-in (let TMP_82 \def (plus TMP_81 k) in (let TMP_83 \def (TLRef TMP_82) in 
-(let TMP_87 \def (\lambda (t0: T).(let TMP_84 \def (plus k h) in (let TMP_85 
-\def (TLRef n) in (let TMP_86 \def (lift TMP_84 d TMP_85) in (eq T t0 
-TMP_86))))) in (let TMP_88 \def (plus k h) in (let TMP_89 \def (plus n 
-TMP_88) in (let TMP_90 \def (TLRef TMP_89) in (let TMP_94 \def (\lambda (t0: 
-T).(let TMP_91 \def (plus n h) in (let TMP_92 \def (plus TMP_91 k) in (let 
-TMP_93 \def (TLRef TMP_92) in (eq T TMP_93 t0))))) in (let TMP_95 \def (plus 
-n h) in (let TMP_96 \def (plus TMP_95 k) in (let TMP_97 \def (plus k h) in 
-(let TMP_98 \def (plus n TMP_97) in (let TMP_99 \def 
-(plus_permute_2_in_3_assoc n h k) in (let TMP_100 \def (f_equal nat T TLRef 
-TMP_96 TMP_98 TMP_99) in (let TMP_101 \def (plus k h) in (let TMP_102 \def 
-(TLRef n) in (let TMP_103 \def (lift TMP_101 d TMP_102) in (let TMP_104 \def 
-(plus k h) in (let TMP_105 \def (lift_lref_ge n TMP_104 d H1) in (let TMP_106 
-\def (eq_ind_r T TMP_90 TMP_94 TMP_100 TMP_103 TMP_105) in (let TMP_107 \def 
-(plus n h) in (let TMP_108 \def (TLRef TMP_107) in (let TMP_109 \def (lift k 
-e TMP_108) in (let TMP_110 \def (plus n h) in (let TMP_111 \def (plus d h) in 
-(let TMP_112 \def (plus n h) in (let TMP_113 \def (le_n h) in (let TMP_114 
-\def (le_plus_plus d n h h H1 TMP_113) in (let TMP_115 \def (le_trans e 
-TMP_111 TMP_112 H TMP_114) in (let TMP_116 \def (lift_lref_ge TMP_110 k e 
-TMP_115) in (let TMP_117 \def (eq_ind_r T TMP_83 TMP_87 TMP_106 TMP_109 
-TMP_116) in (let TMP_118 \def (TLRef n) in (let TMP_119 \def (lift h d 
-TMP_118) in (let TMP_120 \def (lift_lref_ge n h d H1) in (eq_ind_r T TMP_75 
-TMP_80 TMP_117 TMP_119 TMP_120))))))))))))))))))))))))))))))))))))))) in 
-(lt_le_e n d TMP_42 TMP_73 TMP_121))))))))))))))))) in (let TMP_204 \def 
-(\lambda (k: K).(\lambda (t0: T).(\lambda (H: ((\forall (h: nat).(\forall 
-(k0: nat).(\forall (d: nat).(\forall (e: nat).((le e (plus d h)) \to ((le d 
-e) \to (eq T (lift k0 e (lift h d t0)) (lift (plus k0 h) d 
-t0)))))))))).(\lambda (t1: T).(\lambda (H0: ((\forall (h: nat).(\forall (k0: 
+nat).(\lambda (_: (le e (plus d h))).(\lambda (_: (le d e)).(eq_ind_r T 
+(TSort n) (\lambda (t0: T).(eq T (lift k e t0) (lift (plus k h) d (TSort 
+n)))) (eq_ind_r T (TSort n) (\lambda (t0: T).(eq T t0 (lift (plus k h) d 
+(TSort n)))) (eq_ind_r T (TSort n) (\lambda (t0: T).(eq T (TSort n) t0)) 
+(refl_equal T (TSort n)) (lift (plus k h) d (TSort n)) (lift_sort n (plus k 
+h) d)) (lift k e (TSort n)) (lift_sort n k e)) (lift h d (TSort n)) 
+(lift_sort n h d))))))))) (\lambda (n: nat).(\lambda (h: nat).(\lambda (k: 
+nat).(\lambda (d: nat).(\lambda (e: nat).(\lambda (H: (le e (plus d 
+h))).(\lambda (H0: (le d e)).(lt_le_e n d (eq T (lift k e (lift h d (TLRef 
+n))) (lift (plus k h) d (TLRef n))) (\lambda (H1: (lt n d)).(eq_ind_r T 
+(TLRef n) (\lambda (t0: T).(eq T (lift k e t0) (lift (plus k h) d (TLRef 
+n)))) (eq_ind_r T (TLRef n) (\lambda (t0: T).(eq T t0 (lift (plus k h) d 
+(TLRef n)))) (eq_ind_r T (TLRef n) (\lambda (t0: T).(eq T (TLRef n) t0)) 
+(refl_equal T (TLRef n)) (lift (plus k h) d (TLRef n)) (lift_lref_lt n (plus 
+k h) d H1)) (lift k e (TLRef n)) (lift_lref_lt n k e (lt_le_trans n d e H1 
+H0))) (lift h d (TLRef n)) (lift_lref_lt n h d H1))) (\lambda (H1: (le d 
+n)).(eq_ind_r T (TLRef (plus n h)) (\lambda (t0: T).(eq T (lift k e t0) (lift 
+(plus k h) d (TLRef n)))) (eq_ind_r T (TLRef (plus (plus n h) k)) (\lambda 
+(t0: T).(eq T t0 (lift (plus k h) d (TLRef n)))) (eq_ind_r T (TLRef (plus n 
+(plus k h))) (\lambda (t0: T).(eq T (TLRef (plus (plus n h) k)) t0)) (f_equal 
+nat T TLRef (plus (plus n h) k) (plus n (plus k h)) 
+(plus_permute_2_in_3_assoc n h k)) (lift (plus k h) d (TLRef n)) 
+(lift_lref_ge n (plus k h) d H1)) (lift k e (TLRef (plus n h))) (lift_lref_ge 
+(plus n h) k e (le_trans e (plus d h) (plus n h) H (le_plus_plus d n h h H1 
+(le_n h))))) (lift h d (TLRef n)) (lift_lref_ge n h d H1))))))))))) (\lambda 
+(k: K).(\lambda (t0: T).(\lambda (H: ((\forall (h: nat).(\forall (k0: 
 nat).(\forall (d: nat).(\forall (e: nat).((le e (plus d h)) \to ((le d e) \to 
-(eq T (lift k0 e (lift h d t1)) (lift (plus k0 h) d t1)))))))))).(\lambda (h: 
-nat).(\lambda (k0: nat).(\lambda (d: nat).(\lambda (e: nat).(\lambda (H1: (le 
-e (plus d h))).(\lambda (H2: (le d e)).(let TMP_123 \def (lift h d t0) in 
-(let TMP_124 \def (s k d) in (let TMP_125 \def (lift h TMP_124 t1) in (let 
-TMP_126 \def (THead k TMP_123 TMP_125) in (let TMP_131 \def (\lambda (t2: 
-T).(let TMP_127 \def (lift k0 e t2) in (let TMP_128 \def (plus k0 h) in (let 
-TMP_129 \def (THead k t0 t1) in (let TMP_130 \def (lift TMP_128 d TMP_129) in 
-(eq T TMP_127 TMP_130)))))) in (let TMP_132 \def (lift h d t0) in (let 
-TMP_133 \def (lift k0 e TMP_132) in (let TMP_134 \def (s k e) in (let TMP_135 
-\def (s k d) in (let TMP_136 \def (lift h TMP_135 t1) in (let TMP_137 \def 
-(lift k0 TMP_134 TMP_136) in (let TMP_138 \def (THead k TMP_133 TMP_137) in 
-(let TMP_142 \def (\lambda (t2: T).(let TMP_139 \def (plus k0 h) in (let 
-TMP_140 \def (THead k t0 t1) in (let TMP_141 \def (lift TMP_139 d TMP_140) in 
-(eq T t2 TMP_141))))) in (let TMP_143 \def (plus k0 h) in (let TMP_144 \def 
-(lift TMP_143 d t0) in (let TMP_145 \def (plus k0 h) in (let TMP_146 \def (s 
-k d) in (let TMP_147 \def (lift TMP_145 TMP_146 t1) in (let TMP_148 \def 
-(THead k TMP_144 TMP_147) in (let TMP_156 \def (\lambda (t2: T).(let TMP_149 
-\def (lift h d t0) in (let TMP_150 \def (lift k0 e TMP_149) in (let TMP_151 
-\def (s k e) in (let TMP_152 \def (s k d) in (let TMP_153 \def (lift h 
-TMP_152 t1) in (let TMP_154 \def (lift k0 TMP_151 TMP_153) in (let TMP_155 
-\def (THead k TMP_150 TMP_154) in (eq T TMP_155 t2))))))))) in (let TMP_157 
-\def (lift h d t0) in (let TMP_158 \def (lift k0 e TMP_157) in (let TMP_159 
-\def (plus k0 h) in (let TMP_160 \def (lift TMP_159 d t0) in (let TMP_161 
-\def (s k e) in (let TMP_162 \def (s k d) in (let TMP_163 \def (lift h 
-TMP_162 t1) in (let TMP_164 \def (lift k0 TMP_161 TMP_163) in (let TMP_165 
-\def (plus k0 h) in (let TMP_166 \def (s k d) in (let TMP_167 \def (lift 
-TMP_165 TMP_166 t1) in (let TMP_168 \def (refl_equal K k) in (let TMP_169 
-\def (H h k0 d e H1 H2) in (let TMP_170 \def (s k d) in (let TMP_171 \def (s 
-k e) in (let TMP_172 \def (plus d h) in (let TMP_173 \def (s k TMP_172) in 
-(let TMP_175 \def (\lambda (n: nat).(let TMP_174 \def (s k e) in (le TMP_174 
-n))) in (let TMP_176 \def (plus d h) in (let TMP_177 \def (s_le k e TMP_176 
-H1) in (let TMP_178 \def (s k d) in (let TMP_179 \def (plus TMP_178 h) in 
-(let TMP_180 \def (s_plus k d h) in (let TMP_181 \def (eq_ind nat TMP_173 
-TMP_175 TMP_177 TMP_179 TMP_180) in (let TMP_182 \def (s_le k d e H2) in (let 
-TMP_183 \def (H0 h k0 TMP_170 TMP_171 TMP_181 TMP_182) in (let TMP_184 \def 
-(f_equal3 K T T T THead k k TMP_158 TMP_160 TMP_164 TMP_167 TMP_168 TMP_169 
-TMP_183) in (let TMP_185 \def (plus k0 h) in (let TMP_186 \def (THead k t0 
-t1) in (let TMP_187 \def (lift TMP_185 d TMP_186) in (let TMP_188 \def (plus 
-k0 h) in (let TMP_189 \def (lift_head k t0 t1 TMP_188 d) in (let TMP_190 \def 
-(eq_ind_r T TMP_148 TMP_156 TMP_184 TMP_187 TMP_189) in (let TMP_191 \def 
-(lift h d t0) in (let TMP_192 \def (s k d) in (let TMP_193 \def (lift h 
-TMP_192 t1) in (let TMP_194 \def (THead k TMP_191 TMP_193) in (let TMP_195 
-\def (lift k0 e TMP_194) in (let TMP_196 \def (lift h d t0) in (let TMP_197 
-\def (s k d) in (let TMP_198 \def (lift h TMP_197 t1) in (let TMP_199 \def 
-(lift_head k TMP_196 TMP_198 k0 e) in (let TMP_200 \def (eq_ind_r T TMP_138 
-TMP_142 TMP_190 TMP_195 TMP_199) in (let TMP_201 \def (THead k t0 t1) in (let 
-TMP_202 \def (lift h d TMP_201) in (let TMP_203 \def (lift_head k t0 t1 h d) 
-in (eq_ind_r T TMP_126 TMP_131 TMP_200 TMP_202 
-TMP_203)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
-))))))) in (T_ind TMP_5 TMP_35 TMP_122 TMP_204 t))))).
+(eq T (lift k0 e (lift h d t0)) (lift (plus k0 h) d t0)))))))))).(\lambda 
+(t1: T).(\lambda (H0: ((\forall (h: nat).(\forall (k0: nat).(\forall (d: 
+nat).(\forall (e: nat).((le e (plus d h)) \to ((le d e) \to (eq T (lift k0 e 
+(lift h d t1)) (lift (plus k0 h) d t1)))))))))).(\lambda (h: nat).(\lambda 
+(k0: nat).(\lambda (d: nat).(\lambda (e: nat).(\lambda (H1: (le e (plus d 
+h))).(\lambda (H2: (le d e)).(eq_ind_r T (THead k (lift h d t0) (lift h (s k 
+d) t1)) (\lambda (t2: T).(eq T (lift k0 e t2) (lift (plus k0 h) d (THead k t0 
+t1)))) (eq_ind_r T (THead k (lift k0 e (lift h d t0)) (lift k0 (s k e) (lift 
+h (s k d) t1))) (\lambda (t2: T).(eq T t2 (lift (plus k0 h) d (THead k t0 
+t1)))) (eq_ind_r T (THead k (lift (plus k0 h) d t0) (lift (plus k0 h) (s k d) 
+t1)) (\lambda (t2: T).(eq T (THead k (lift k0 e (lift h d t0)) (lift k0 (s k 
+e) (lift h (s k d) t1))) t2)) (f_equal3 K T T T THead k k (lift k0 e (lift h 
+d t0)) (lift (plus k0 h) d t0) (lift k0 (s k e) (lift h (s k d) t1)) (lift 
+(plus k0 h) (s k d) t1) (refl_equal K k) (H h k0 d e H1 H2) (H0 h k0 (s k d) 
+(s k e) (eq_ind nat (s k (plus d h)) (\lambda (n: nat).(le (s k e) n)) (s_le 
+k e (plus d h) H1) (plus (s k d) h) (s_plus k d h)) (s_le k d e H2))) (lift 
+(plus k0 h) d (THead k t0 t1)) (lift_head k t0 t1 (plus k0 h) d)) (lift k0 e 
+(THead k (lift h d t0) (lift h (s k d) t1))) (lift_head k (lift h d t0) (lift 
+h (s k d) t1) k0 e)) (lift h d (THead k t0 t1)) (lift_head k t0 t1 h 
+d))))))))))))) t).
 
 theorem lift_free_sym:
  \forall (t: T).(\forall (h: nat).(\forall (k: nat).(\forall (d: 
@@ -412,220 +240,84 @@ nat).(\forall (e: nat).((le e (plus d h)) \to ((le d e) \to (eq T (lift k e
 \def
  \lambda (t: T).(\lambda (h: nat).(\lambda (k: nat).(\lambda (d: 
 nat).(\lambda (e: nat).(\lambda (H: (le e (plus d h))).(\lambda (H0: (le d 
-e)).(let TMP_1 \def (plus k h) in (let TMP_5 \def (\lambda (n: nat).(let 
-TMP_2 \def (lift h d t) in (let TMP_3 \def (lift k e TMP_2) in (let TMP_4 
-\def (lift n d t) in (eq T TMP_3 TMP_4))))) in (let TMP_6 \def (lift_free t h 
-k d e H H0) in (let TMP_7 \def (plus h k) in (let TMP_8 \def (plus_sym h k) 
-in (eq_ind_r nat TMP_1 TMP_5 TMP_6 TMP_7 TMP_8)))))))))))).
+e)).(eq_ind_r nat (plus k h) (\lambda (n: nat).(eq T (lift k e (lift h d t)) 
+(lift n d t))) (lift_free t h k d e H H0) (plus h k) (plus_sym h k)))))))).
 
 theorem lift_d:
  \forall (t: T).(\forall (h: nat).(\forall (k: nat).(\forall (d: 
 nat).(\forall (e: nat).((le e d) \to (eq T (lift h (plus k d) (lift k e t)) 
 (lift k e (lift h d t))))))))
 \def
- \lambda (t: T).(let TMP_6 \def (\lambda (t0: T).(\forall (h: nat).(\forall 
-(k: nat).(\forall (d: nat).(\forall (e: nat).((le e d) \to (let TMP_1 \def 
-(plus k d) in (let TMP_2 \def (lift k e t0) in (let TMP_3 \def (lift h TMP_1 
-TMP_2) in (let TMP_4 \def (lift h d t0) in (let TMP_5 \def (lift k e TMP_4) 
-in (eq T TMP_3 TMP_5)))))))))))) in (let TMP_45 \def (\lambda (n: 
-nat).(\lambda (h: nat).(\lambda (k: nat).(\lambda (d: nat).(\lambda (e: 
-nat).(\lambda (_: (le e d)).(let TMP_7 \def (TSort n) in (let TMP_13 \def 
-(\lambda (t0: T).(let TMP_8 \def (plus k d) in (let TMP_9 \def (lift h TMP_8 
-t0) in (let TMP_10 \def (TSort n) in (let TMP_11 \def (lift h d TMP_10) in 
-(let TMP_12 \def (lift k e TMP_11) in (eq T TMP_9 TMP_12))))))) in (let 
-TMP_14 \def (TSort n) in (let TMP_18 \def (\lambda (t0: T).(let TMP_15 \def 
-(TSort n) in (let TMP_16 \def (lift h d TMP_15) in (let TMP_17 \def (lift k e 
-TMP_16) in (eq T t0 TMP_17))))) in (let TMP_19 \def (TSort n) in (let TMP_22 
-\def (\lambda (t0: T).(let TMP_20 \def (TSort n) in (let TMP_21 \def (lift k 
-e t0) in (eq T TMP_20 TMP_21)))) in (let TMP_23 \def (TSort n) in (let TMP_25 
-\def (\lambda (t0: T).(let TMP_24 \def (TSort n) in (eq T TMP_24 t0))) in 
-(let TMP_26 \def (TSort n) in (let TMP_27 \def (refl_equal T TMP_26) in (let 
-TMP_28 \def (TSort n) in (let TMP_29 \def (lift k e TMP_28) in (let TMP_30 
-\def (lift_sort n k e) in (let TMP_31 \def (eq_ind_r T TMP_23 TMP_25 TMP_27 
-TMP_29 TMP_30) in (let TMP_32 \def (TSort n) in (let TMP_33 \def (lift h d 
-TMP_32) in (let TMP_34 \def (lift_sort n h d) in (let TMP_35 \def (eq_ind_r T 
-TMP_19 TMP_22 TMP_31 TMP_33 TMP_34) in (let TMP_36 \def (plus k d) in (let 
-TMP_37 \def (TSort n) in (let TMP_38 \def (lift h TMP_36 TMP_37) in (let 
-TMP_39 \def (plus k d) in (let TMP_40 \def (lift_sort n h TMP_39) in (let 
-TMP_41 \def (eq_ind_r T TMP_14 TMP_18 TMP_35 TMP_38 TMP_40) in (let TMP_42 
-\def (TSort n) in (let TMP_43 \def (lift k e TMP_42) in (let TMP_44 \def 
-(lift_sort n k e) in (eq_ind_r T TMP_7 TMP_13 TMP_41 TMP_43 
-TMP_44)))))))))))))))))))))))))))))))))) in (let TMP_212 \def (\lambda (n: 
-nat).(\lambda (h: nat).(\lambda (k: nat).(\lambda (d: nat).(\lambda (e: 
-nat).(\lambda (H: (le e d)).(let TMP_46 \def (plus k d) in (let TMP_47 \def 
-(TLRef n) in (let TMP_48 \def (lift k e TMP_47) in (let TMP_49 \def (lift h 
-TMP_46 TMP_48) in (let TMP_50 \def (TLRef n) in (let TMP_51 \def (lift h d 
-TMP_50) in (let TMP_52 \def (lift k e TMP_51) in (let TMP_53 \def (eq T 
-TMP_49 TMP_52) in (let TMP_95 \def (\lambda (H0: (lt n e)).(let H1 \def 
-(lt_le_trans n e d H0 H) in (let TMP_54 \def (TLRef n) in (let TMP_60 \def 
-(\lambda (t0: T).(let TMP_55 \def (plus k d) in (let TMP_56 \def (lift h 
-TMP_55 t0) in (let TMP_57 \def (TLRef n) in (let TMP_58 \def (lift h d 
-TMP_57) in (let TMP_59 \def (lift k e TMP_58) in (eq T TMP_56 TMP_59))))))) 
-in (let TMP_61 \def (TLRef n) in (let TMP_65 \def (\lambda (t0: T).(let 
-TMP_62 \def (TLRef n) in (let TMP_63 \def (lift h d TMP_62) in (let TMP_64 
-\def (lift k e TMP_63) in (eq T t0 TMP_64))))) in (let TMP_66 \def (TLRef n) 
-in (let TMP_69 \def (\lambda (t0: T).(let TMP_67 \def (TLRef n) in (let 
-TMP_68 \def (lift k e t0) in (eq T TMP_67 TMP_68)))) in (let TMP_70 \def 
-(TLRef n) in (let TMP_72 \def (\lambda (t0: T).(let TMP_71 \def (TLRef n) in 
-(eq T TMP_71 t0))) in (let TMP_73 \def (TLRef n) in (let TMP_74 \def 
-(refl_equal T TMP_73) in (let TMP_75 \def (TLRef n) in (let TMP_76 \def (lift 
-k e TMP_75) in (let TMP_77 \def (lift_lref_lt n k e H0) in (let TMP_78 \def 
-(eq_ind_r T TMP_70 TMP_72 TMP_74 TMP_76 TMP_77) in (let TMP_79 \def (TLRef n) 
-in (let TMP_80 \def (lift h d TMP_79) in (let TMP_81 \def (lift_lref_lt n h d 
-H1) in (let TMP_82 \def (eq_ind_r T TMP_66 TMP_69 TMP_78 TMP_80 TMP_81) in 
-(let TMP_83 \def (plus k d) in (let TMP_84 \def (TLRef n) in (let TMP_85 \def 
-(lift h TMP_83 TMP_84) in (let TMP_86 \def (plus k d) in (let TMP_87 \def 
-(plus k d) in (let TMP_88 \def (le_plus_r k d) in (let TMP_89 \def 
-(lt_le_trans n d TMP_87 H1 TMP_88) in (let TMP_90 \def (lift_lref_lt n h 
-TMP_86 TMP_89) in (let TMP_91 \def (eq_ind_r T TMP_61 TMP_65 TMP_82 TMP_85 
-TMP_90) in (let TMP_92 \def (TLRef n) in (let TMP_93 \def (lift k e TMP_92) 
-in (let TMP_94 \def (lift_lref_lt n k e H0) in (eq_ind_r T TMP_54 TMP_60 
-TMP_91 TMP_93 TMP_94))))))))))))))))))))))))))))))))) in (let TMP_211 \def 
-(\lambda (H0: (le e n)).(let TMP_96 \def (plus n k) in (let TMP_97 \def 
-(TLRef TMP_96) in (let TMP_103 \def (\lambda (t0: T).(let TMP_98 \def (plus k 
-d) in (let TMP_99 \def (lift h TMP_98 t0) in (let TMP_100 \def (TLRef n) in 
-(let TMP_101 \def (lift h d TMP_100) in (let TMP_102 \def (lift k e TMP_101) 
-in (eq T TMP_99 TMP_102))))))) in (let TMP_104 \def (plus d k) in (let 
-TMP_111 \def (\lambda (n0: nat).(let TMP_105 \def (plus n k) in (let TMP_106 
-\def (TLRef TMP_105) in (let TMP_107 \def (lift h n0 TMP_106) in (let TMP_108 
-\def (TLRef n) in (let TMP_109 \def (lift h d TMP_108) in (let TMP_110 \def 
-(lift k e TMP_109) in (eq T TMP_107 TMP_110)))))))) in (let TMP_112 \def 
-(plus d k) in (let TMP_113 \def (plus n k) in (let TMP_114 \def (TLRef 
-TMP_113) in (let TMP_115 \def (lift h TMP_112 TMP_114) in (let TMP_116 \def 
-(TLRef n) in (let TMP_117 \def (lift h d TMP_116) in (let TMP_118 \def (lift 
-k e TMP_117) in (let TMP_119 \def (eq T TMP_115 TMP_118) in (let TMP_155 \def 
-(\lambda (H1: (lt n d)).(let TMP_120 \def (plus n k) in (let TMP_121 \def 
-(TLRef TMP_120) in (let TMP_125 \def (\lambda (t0: T).(let TMP_122 \def 
-(TLRef n) in (let TMP_123 \def (lift h d TMP_122) in (let TMP_124 \def (lift 
-k e TMP_123) in (eq T t0 TMP_124))))) in (let TMP_126 \def (TLRef n) in (let 
-TMP_130 \def (\lambda (t0: T).(let TMP_127 \def (plus n k) in (let TMP_128 
-\def (TLRef TMP_127) in (let TMP_129 \def (lift k e t0) in (eq T TMP_128 
-TMP_129))))) in (let TMP_131 \def (plus n k) in (let TMP_132 \def (TLRef 
-TMP_131) in (let TMP_135 \def (\lambda (t0: T).(let TMP_133 \def (plus n k) 
-in (let TMP_134 \def (TLRef TMP_133) in (eq T TMP_134 t0)))) in (let TMP_136 
-\def (plus n k) in (let TMP_137 \def (TLRef TMP_136) in (let TMP_138 \def 
-(refl_equal T TMP_137) in (let TMP_139 \def (TLRef n) in (let TMP_140 \def 
-(lift k e TMP_139) in (let TMP_141 \def (lift_lref_ge n k e H0) in (let 
-TMP_142 \def (eq_ind_r T TMP_132 TMP_135 TMP_138 TMP_140 TMP_141) in (let 
-TMP_143 \def (TLRef n) in (let TMP_144 \def (lift h d TMP_143) in (let 
-TMP_145 \def (lift_lref_lt n h d H1) in (let TMP_146 \def (eq_ind_r T TMP_126 
-TMP_130 TMP_142 TMP_144 TMP_145) in (let TMP_147 \def (plus d k) in (let 
-TMP_148 \def (plus n k) in (let TMP_149 \def (TLRef TMP_148) in (let TMP_150 
-\def (lift h TMP_147 TMP_149) in (let TMP_151 \def (plus n k) in (let TMP_152 
-\def (plus d k) in (let TMP_153 \def (lt_reg_r n d k H1) in (let TMP_154 \def 
-(lift_lref_lt TMP_151 h TMP_152 TMP_153) in (eq_ind_r T TMP_121 TMP_125 
-TMP_146 TMP_150 TMP_154))))))))))))))))))))))))))))) in (let TMP_203 \def 
-(\lambda (H1: (le d n)).(let TMP_156 \def (plus n k) in (let TMP_157 \def 
-(plus TMP_156 h) in (let TMP_158 \def (TLRef TMP_157) in (let TMP_162 \def 
-(\lambda (t0: T).(let TMP_159 \def (TLRef n) in (let TMP_160 \def (lift h d 
-TMP_159) in (let TMP_161 \def (lift k e TMP_160) in (eq T t0 TMP_161))))) in 
-(let TMP_163 \def (plus n h) in (let TMP_164 \def (TLRef TMP_163) in (let 
-TMP_169 \def (\lambda (t0: T).(let TMP_165 \def (plus n k) in (let TMP_166 
-\def (plus TMP_165 h) in (let TMP_167 \def (TLRef TMP_166) in (let TMP_168 
-\def (lift k e t0) in (eq T TMP_167 TMP_168)))))) in (let TMP_170 \def (plus 
-n h) in (let TMP_171 \def (plus TMP_170 k) in (let TMP_172 \def (TLRef 
-TMP_171) in (let TMP_176 \def (\lambda (t0: T).(let TMP_173 \def (plus n k) 
-in (let TMP_174 \def (plus TMP_173 h) in (let TMP_175 \def (TLRef TMP_174) in 
-(eq T TMP_175 t0))))) in (let TMP_177 \def (plus n k) in (let TMP_178 \def 
-(plus TMP_177 h) in (let TMP_179 \def (plus n h) in (let TMP_180 \def (plus 
-TMP_179 k) in (let TMP_181 \def (plus_permute_2_in_3 n k h) in (let TMP_182 
-\def (f_equal nat T TLRef TMP_178 TMP_180 TMP_181) in (let TMP_183 \def (plus 
-n h) in (let TMP_184 \def (TLRef TMP_183) in (let TMP_185 \def (lift k e 
-TMP_184) in (let TMP_186 \def (plus n h) in (let TMP_187 \def (le_plus_trans 
-e n h H0) in (let TMP_188 \def (lift_lref_ge TMP_186 k e TMP_187) in (let 
-TMP_189 \def (eq_ind_r T TMP_172 TMP_176 TMP_182 TMP_185 TMP_188) in (let 
-TMP_190 \def (TLRef n) in (let TMP_191 \def (lift h d TMP_190) in (let 
-TMP_192 \def (lift_lref_ge n h d H1) in (let TMP_193 \def (eq_ind_r T TMP_164 
-TMP_169 TMP_189 TMP_191 TMP_192) in (let TMP_194 \def (plus d k) in (let 
-TMP_195 \def (plus n k) in (let TMP_196 \def (TLRef TMP_195) in (let TMP_197 
-\def (lift h TMP_194 TMP_196) in (let TMP_198 \def (plus n k) in (let TMP_199 
-\def (plus d k) in (let TMP_200 \def (le_n k) in (let TMP_201 \def 
-(le_plus_plus d n k k H1 TMP_200) in (let TMP_202 \def (lift_lref_ge TMP_198 
-h TMP_199 TMP_201) in (eq_ind_r T TMP_158 TMP_162 TMP_193 TMP_197 
-TMP_202))))))))))))))))))))))))))))))))))))))) in (let TMP_204 \def (lt_le_e 
-n d TMP_119 TMP_155 TMP_203) in (let TMP_205 \def (plus k d) in (let TMP_206 
-\def (plus_sym k d) in (let TMP_207 \def (eq_ind_r nat TMP_104 TMP_111 
-TMP_204 TMP_205 TMP_206) in (let TMP_208 \def (TLRef n) in (let TMP_209 \def 
-(lift k e TMP_208) in (let TMP_210 \def (lift_lref_ge n k e H0) in (eq_ind_r 
-T TMP_97 TMP_103 TMP_207 TMP_209 TMP_210)))))))))))))))))))))))) in (lt_le_e 
-n e TMP_53 TMP_95 TMP_211))))))))))))))))) in (let TMP_339 \def (\lambda (k: 
+ \lambda (t: T).(T_ind (\lambda (t0: T).(\forall (h: nat).(\forall (k: 
+nat).(\forall (d: nat).(\forall (e: nat).((le e d) \to (eq T (lift h (plus k 
+d) (lift k e t0)) (lift k e (lift h d t0))))))))) (\lambda (n: nat).(\lambda 
+(h: nat).(\lambda (k: nat).(\lambda (d: nat).(\lambda (e: nat).(\lambda (_: 
+(le e d)).(eq_ind_r T (TSort n) (\lambda (t0: T).(eq T (lift h (plus k d) t0) 
+(lift k e (lift h d (TSort n))))) (eq_ind_r T (TSort n) (\lambda (t0: T).(eq 
+T t0 (lift k e (lift h d (TSort n))))) (eq_ind_r T (TSort n) (\lambda (t0: 
+T).(eq T (TSort n) (lift k e t0))) (eq_ind_r T (TSort n) (\lambda (t0: T).(eq 
+T (TSort n) t0)) (refl_equal T (TSort n)) (lift k e (TSort n)) (lift_sort n k 
+e)) (lift h d (TSort n)) (lift_sort n h d)) (lift h (plus k d) (TSort n)) 
+(lift_sort n h (plus k d))) (lift k e (TSort n)) (lift_sort n k e)))))))) 
+(\lambda (n: nat).(\lambda (h: nat).(\lambda (k: nat).(\lambda (d: 
+nat).(\lambda (e: nat).(\lambda (H: (le e d)).(lt_le_e n e (eq T (lift h 
+(plus k d) (lift k e (TLRef n))) (lift k e (lift h d (TLRef n)))) (\lambda 
+(H0: (lt n e)).(let H1 \def (lt_le_trans n e d H0 H) in (eq_ind_r T (TLRef n) 
+(\lambda (t0: T).(eq T (lift h (plus k d) t0) (lift k e (lift h d (TLRef 
+n))))) (eq_ind_r T (TLRef n) (\lambda (t0: T).(eq T t0 (lift k e (lift h d 
+(TLRef n))))) (eq_ind_r T (TLRef n) (\lambda (t0: T).(eq T (TLRef n) (lift k 
+e t0))) (eq_ind_r T (TLRef n) (\lambda (t0: T).(eq T (TLRef n) t0)) 
+(refl_equal T (TLRef n)) (lift k e (TLRef n)) (lift_lref_lt n k e H0)) (lift 
+h d (TLRef n)) (lift_lref_lt n h d H1)) (lift h (plus k d) (TLRef n)) 
+(lift_lref_lt n h (plus k d) (lt_le_trans n d (plus k d) H1 (le_plus_r k 
+d)))) (lift k e (TLRef n)) (lift_lref_lt n k e H0)))) (\lambda (H0: (le e 
+n)).(eq_ind_r T (TLRef (plus n k)) (\lambda (t0: T).(eq T (lift h (plus k d) 
+t0) (lift k e (lift h d (TLRef n))))) (eq_ind_r nat (plus d k) (\lambda (n0: 
+nat).(eq T (lift h n0 (TLRef (plus n k))) (lift k e (lift h d (TLRef n))))) 
+(lt_le_e n d (eq T (lift h (plus d k) (TLRef (plus n k))) (lift k e (lift h d 
+(TLRef n)))) (\lambda (H1: (lt n d)).(eq_ind_r T (TLRef (plus n k)) (\lambda 
+(t0: T).(eq T t0 (lift k e (lift h d (TLRef n))))) (eq_ind_r T (TLRef n) 
+(\lambda (t0: T).(eq T (TLRef (plus n k)) (lift k e t0))) (eq_ind_r T (TLRef 
+(plus n k)) (\lambda (t0: T).(eq T (TLRef (plus n k)) t0)) (refl_equal T 
+(TLRef (plus n k))) (lift k e (TLRef n)) (lift_lref_ge n k e H0)) (lift h d 
+(TLRef n)) (lift_lref_lt n h d H1)) (lift h (plus d k) (TLRef (plus n k))) 
+(lift_lref_lt (plus n k) h (plus d k) (lt_reg_r n d k H1)))) (\lambda (H1: 
+(le d n)).(eq_ind_r T (TLRef (plus (plus n k) h)) (\lambda (t0: T).(eq T t0 
+(lift k e (lift h d (TLRef n))))) (eq_ind_r T (TLRef (plus n h)) (\lambda 
+(t0: T).(eq T (TLRef (plus (plus n k) h)) (lift k e t0))) (eq_ind_r T (TLRef 
+(plus (plus n h) k)) (\lambda (t0: T).(eq T (TLRef (plus (plus n k) h)) t0)) 
+(f_equal nat T TLRef (plus (plus n k) h) (plus (plus n h) k) 
+(plus_permute_2_in_3 n k h)) (lift k e (TLRef (plus n h))) (lift_lref_ge 
+(plus n h) k e (le_plus_trans e n h H0))) (lift h d (TLRef n)) (lift_lref_ge 
+n h d H1)) (lift h (plus d k) (TLRef (plus n k))) (lift_lref_ge (plus n k) h 
+(plus d k) (le_plus_plus d n k k H1 (le_n k)))))) (plus k d) (plus_sym k d)) 
+(lift k e (TLRef n)) (lift_lref_ge n k e H0)))))))))) (\lambda (k: 
 K).(\lambda (t0: T).(\lambda (H: ((\forall (h: nat).(\forall (k0: 
 nat).(\forall (d: nat).(\forall (e: nat).((le e d) \to (eq T (lift h (plus k0 
 d) (lift k0 e t0)) (lift k0 e (lift h d t0)))))))))).(\lambda (t1: 
 T).(\lambda (H0: ((\forall (h: nat).(\forall (k0: nat).(\forall (d: 
 nat).(\forall (e: nat).((le e d) \to (eq T (lift h (plus k0 d) (lift k0 e 
 t1)) (lift k0 e (lift h d t1)))))))))).(\lambda (h: nat).(\lambda (k0: 
-nat).(\lambda (d: nat).(\lambda (e: nat).(\lambda (H1: (le e d)).(let TMP_213 
-\def (lift k0 e t0) in (let TMP_214 \def (s k e) in (let TMP_215 \def (lift 
-k0 TMP_214 t1) in (let TMP_216 \def (THead k TMP_213 TMP_215) in (let TMP_222 
-\def (\lambda (t2: T).(let TMP_217 \def (plus k0 d) in (let TMP_218 \def 
-(lift h TMP_217 t2) in (let TMP_219 \def (THead k t0 t1) in (let TMP_220 \def 
-(lift h d TMP_219) in (let TMP_221 \def (lift k0 e TMP_220) in (eq T TMP_218 
-TMP_221))))))) in (let TMP_223 \def (plus k0 d) in (let TMP_224 \def (lift k0 
-e t0) in (let TMP_225 \def (lift h TMP_223 TMP_224) in (let TMP_226 \def 
-(plus k0 d) in (let TMP_227 \def (s k TMP_226) in (let TMP_228 \def (s k e) 
-in (let TMP_229 \def (lift k0 TMP_228 t1) in (let TMP_230 \def (lift h 
-TMP_227 TMP_229) in (let TMP_231 \def (THead k TMP_225 TMP_230) in (let 
-TMP_235 \def (\lambda (t2: T).(let TMP_232 \def (THead k t0 t1) in (let 
-TMP_233 \def (lift h d TMP_232) in (let TMP_234 \def (lift k0 e TMP_233) in 
-(eq T t2 TMP_234))))) in (let TMP_236 \def (lift h d t0) in (let TMP_237 \def 
-(s k d) in (let TMP_238 \def (lift h TMP_237 t1) in (let TMP_239 \def (THead 
-k TMP_236 TMP_238) in (let TMP_250 \def (\lambda (t2: T).(let TMP_240 \def 
-(plus k0 d) in (let TMP_241 \def (lift k0 e t0) in (let TMP_242 \def (lift h 
-TMP_240 TMP_241) in (let TMP_243 \def (plus k0 d) in (let TMP_244 \def (s k 
-TMP_243) in (let TMP_245 \def (s k e) in (let TMP_246 \def (lift k0 TMP_245 
-t1) in (let TMP_247 \def (lift h TMP_244 TMP_246) in (let TMP_248 \def (THead 
-k TMP_242 TMP_247) in (let TMP_249 \def (lift k0 e t2) in (eq T TMP_248 
-TMP_249)))))))))))) in (let TMP_251 \def (lift h d t0) in (let TMP_252 \def 
-(lift k0 e TMP_251) in (let TMP_253 \def (s k e) in (let TMP_254 \def (s k d) 
-in (let TMP_255 \def (lift h TMP_254 t1) in (let TMP_256 \def (lift k0 
-TMP_253 TMP_255) in (let TMP_257 \def (THead k TMP_252 TMP_256) in (let 
-TMP_267 \def (\lambda (t2: T).(let TMP_258 \def (plus k0 d) in (let TMP_259 
-\def (lift k0 e t0) in (let TMP_260 \def (lift h TMP_258 TMP_259) in (let 
-TMP_261 \def (plus k0 d) in (let TMP_262 \def (s k TMP_261) in (let TMP_263 
-\def (s k e) in (let TMP_264 \def (lift k0 TMP_263 t1) in (let TMP_265 \def 
-(lift h TMP_262 TMP_264) in (let TMP_266 \def (THead k TMP_260 TMP_265) in 
-(eq T TMP_266 t2))))))))))) in (let TMP_268 \def (s k d) in (let TMP_269 \def 
-(plus k0 TMP_268) in (let TMP_284 \def (\lambda (n: nat).(let TMP_270 \def 
-(plus k0 d) in (let TMP_271 \def (lift k0 e t0) in (let TMP_272 \def (lift h 
-TMP_270 TMP_271) in (let TMP_273 \def (s k e) in (let TMP_274 \def (lift k0 
-TMP_273 t1) in (let TMP_275 \def (lift h n TMP_274) in (let TMP_276 \def 
-(THead k TMP_272 TMP_275) in (let TMP_277 \def (lift h d t0) in (let TMP_278 
-\def (lift k0 e TMP_277) in (let TMP_279 \def (s k e) in (let TMP_280 \def (s 
-k d) in (let TMP_281 \def (lift h TMP_280 t1) in (let TMP_282 \def (lift k0 
-TMP_279 TMP_281) in (let TMP_283 \def (THead k TMP_278 TMP_282) in (eq T 
-TMP_276 TMP_283)))))))))))))))) in (let TMP_285 \def (plus k0 d) in (let 
-TMP_286 \def (lift k0 e t0) in (let TMP_287 \def (lift h TMP_285 TMP_286) in 
-(let TMP_288 \def (lift h d t0) in (let TMP_289 \def (lift k0 e TMP_288) in 
-(let TMP_290 \def (s k d) in (let TMP_291 \def (plus k0 TMP_290) in (let 
-TMP_292 \def (s k e) in (let TMP_293 \def (lift k0 TMP_292 t1) in (let 
-TMP_294 \def (lift h TMP_291 TMP_293) in (let TMP_295 \def (s k e) in (let 
-TMP_296 \def (s k d) in (let TMP_297 \def (lift h TMP_296 t1) in (let TMP_298 
-\def (lift k0 TMP_295 TMP_297) in (let TMP_299 \def (refl_equal K k) in (let 
-TMP_300 \def (H h k0 d e H1) in (let TMP_301 \def (s k d) in (let TMP_302 
-\def (s k e) in (let TMP_303 \def (s_le k e d H1) in (let TMP_304 \def (H0 h 
-k0 TMP_301 TMP_302 TMP_303) in (let TMP_305 \def (f_equal3 K T T T THead k k 
-TMP_287 TMP_289 TMP_294 TMP_298 TMP_299 TMP_300 TMP_304) in (let TMP_306 \def 
-(plus k0 d) in (let TMP_307 \def (s k TMP_306) in (let TMP_308 \def 
-(s_plus_sym k k0 d) in (let TMP_309 \def (eq_ind_r nat TMP_269 TMP_284 
-TMP_305 TMP_307 TMP_308) in (let TMP_310 \def (lift h d t0) in (let TMP_311 
-\def (s k d) in (let TMP_312 \def (lift h TMP_311 t1) in (let TMP_313 \def 
-(THead k TMP_310 TMP_312) in (let TMP_314 \def (lift k0 e TMP_313) in (let 
-TMP_315 \def (lift h d t0) in (let TMP_316 \def (s k d) in (let TMP_317 \def 
-(lift h TMP_316 t1) in (let TMP_318 \def (lift_head k TMP_315 TMP_317 k0 e) 
-in (let TMP_319 \def (eq_ind_r T TMP_257 TMP_267 TMP_309 TMP_314 TMP_318) in 
-(let TMP_320 \def (THead k t0 t1) in (let TMP_321 \def (lift h d TMP_320) in 
-(let TMP_322 \def (lift_head k t0 t1 h d) in (let TMP_323 \def (eq_ind_r T 
-TMP_239 TMP_250 TMP_319 TMP_321 TMP_322) in (let TMP_324 \def (plus k0 d) in 
-(let TMP_325 \def (lift k0 e t0) in (let TMP_326 \def (s k e) in (let TMP_327 
-\def (lift k0 TMP_326 t1) in (let TMP_328 \def (THead k TMP_325 TMP_327) in 
-(let TMP_329 \def (lift h TMP_324 TMP_328) in (let TMP_330 \def (lift k0 e 
-t0) in (let TMP_331 \def (s k e) in (let TMP_332 \def (lift k0 TMP_331 t1) in 
-(let TMP_333 \def (plus k0 d) in (let TMP_334 \def (lift_head k TMP_330 
-TMP_332 h TMP_333) in (let TMP_335 \def (eq_ind_r T TMP_231 TMP_235 TMP_323 
-TMP_329 TMP_334) in (let TMP_336 \def (THead k t0 t1) in (let TMP_337 \def 
-(lift k0 e TMP_336) in (let TMP_338 \def (lift_head k t0 t1 k0 e) in 
-(eq_ind_r T TMP_216 TMP_222 TMP_335 TMP_337 
-TMP_338)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
-))))))))))))))))))))))))) in (T_ind TMP_6 TMP_45 TMP_212 TMP_339 t))))).
+nat).(\lambda (d: nat).(\lambda (e: nat).(\lambda (H1: (le e d)).(eq_ind_r T 
+(THead k (lift k0 e t0) (lift k0 (s k e) t1)) (\lambda (t2: T).(eq T (lift h 
+(plus k0 d) t2) (lift k0 e (lift h d (THead k t0 t1))))) (eq_ind_r T (THead k 
+(lift h (plus k0 d) (lift k0 e t0)) (lift h (s k (plus k0 d)) (lift k0 (s k 
+e) t1))) (\lambda (t2: T).(eq T t2 (lift k0 e (lift h d (THead k t0 t1))))) 
+(eq_ind_r T (THead k (lift h d t0) (lift h (s k d) t1)) (\lambda (t2: T).(eq 
+T (THead k (lift h (plus k0 d) (lift k0 e t0)) (lift h (s k (plus k0 d)) 
+(lift k0 (s k e) t1))) (lift k0 e t2))) (eq_ind_r T (THead k (lift k0 e (lift 
+h d t0)) (lift k0 (s k e) (lift h (s k d) t1))) (\lambda (t2: T).(eq T (THead 
+k (lift h (plus k0 d) (lift k0 e t0)) (lift h (s k (plus k0 d)) (lift k0 (s k 
+e) t1))) t2)) (eq_ind_r nat (plus k0 (s k d)) (\lambda (n: nat).(eq T (THead 
+k (lift h (plus k0 d) (lift k0 e t0)) (lift h n (lift k0 (s k e) t1))) (THead 
+k (lift k0 e (lift h d t0)) (lift k0 (s k e) (lift h (s k d) t1))))) 
+(f_equal3 K T T T THead k k (lift h (plus k0 d) (lift k0 e t0)) (lift k0 e 
+(lift h d t0)) (lift h (plus k0 (s k d)) (lift k0 (s k e) t1)) (lift k0 (s k 
+e) (lift h (s k d) t1)) (refl_equal K k) (H h k0 d e H1) (H0 h k0 (s k d) (s 
+k e) (s_le k e d H1))) (s k (plus k0 d)) (s_plus_sym k k0 d)) (lift k0 e 
+(THead k (lift h d t0) (lift h (s k d) t1))) (lift_head k (lift h d t0) (lift 
+h (s k d) t1) k0 e)) (lift h d (THead k t0 t1)) (lift_head k t0 t1 h d)) 
+(lift h (plus k0 d) (THead k (lift k0 e t0) (lift k0 (s k e) t1))) (lift_head 
+k (lift k0 e t0) (lift k0 (s k e) t1) h (plus k0 d))) (lift k0 e (THead k t0 
+t1)) (lift_head k t0 t1 k0 e)))))))))))) t).
 
index adade462b7a18f289fd32c92408449a91c3e93c0..d66d095ef9004493d2fdaa6c81f3ac19dbbbaa5e 100644 (file)
@@ -23,38 +23,22 @@ theorem lift_weight_map:
 nat))).(((\forall (m: nat).((le d m) \to (eq nat (f m) O)))) \to (eq nat 
 (weight_map f (lift h d t)) (weight_map f t))))))
 \def
- \lambda (t: T).(let TMP_4 \def (\lambda (t0: T).(\forall (h: nat).(\forall 
-(d: nat).(\forall (f: ((nat \to nat))).(((\forall (m: nat).((le d m) \to (eq 
-nat (f m) O)))) \to (let TMP_1 \def (lift h d t0) in (let TMP_2 \def 
-(weight_map f TMP_1) in (let TMP_3 \def (weight_map f t0) in (eq nat TMP_2 
-TMP_3))))))))) in (let TMP_7 \def (\lambda (n: nat).(\lambda (_: 
-nat).(\lambda (d: nat).(\lambda (f: ((nat \to nat))).(\lambda (_: ((\forall 
-(m: nat).((le d m) \to (eq nat (f m) O))))).(let TMP_5 \def (TSort n) in (let 
-TMP_6 \def (weight_map f TMP_5) in (refl_equal nat TMP_6)))))))) in (let 
-TMP_45 \def (\lambda (n: nat).(\lambda (h: nat).(\lambda (d: nat).(\lambda 
-(f: ((nat \to nat))).(\lambda (H: ((\forall (m: nat).((le d m) \to (eq nat (f 
-m) O))))).(let TMP_8 \def (TLRef n) in (let TMP_9 \def (lift h d TMP_8) in 
-(let TMP_10 \def (weight_map f TMP_9) in (let TMP_11 \def (TLRef n) in (let 
-TMP_12 \def (weight_map f TMP_11) in (let TMP_13 \def (eq nat TMP_10 TMP_12) 
-in (let TMP_25 \def (\lambda (H0: (lt n d)).(let TMP_14 \def (TLRef n) in 
-(let TMP_18 \def (\lambda (t0: T).(let TMP_15 \def (weight_map f t0) in (let 
-TMP_16 \def (TLRef n) in (let TMP_17 \def (weight_map f TMP_16) in (eq nat 
-TMP_15 TMP_17))))) in (let TMP_19 \def (TLRef n) in (let TMP_20 \def 
-(weight_map f TMP_19) in (let TMP_21 \def (refl_equal nat TMP_20) in (let 
-TMP_22 \def (TLRef n) in (let TMP_23 \def (lift h d TMP_22) in (let TMP_24 
-\def (lift_lref_lt n h d H0) in (eq_ind_r T TMP_14 TMP_18 TMP_21 TMP_23 
-TMP_24)))))))))) in (let TMP_44 \def (\lambda (H0: (le d n)).(let TMP_26 \def 
-(plus n h) in (let TMP_27 \def (TLRef TMP_26) in (let TMP_31 \def (\lambda 
-(t0: T).(let TMP_28 \def (weight_map f t0) in (let TMP_29 \def (TLRef n) in 
-(let TMP_30 \def (weight_map f TMP_29) in (eq nat TMP_28 TMP_30))))) in (let 
-TMP_34 \def (\lambda (n0: nat).(let TMP_32 \def (plus n h) in (let TMP_33 
-\def (f TMP_32) in (eq nat TMP_33 n0)))) in (let TMP_35 \def (plus n h) in 
-(let TMP_36 \def (le_plus_trans d n h H0) in (let TMP_37 \def (H TMP_35 
-TMP_36) in (let TMP_38 \def (f n) in (let TMP_39 \def (H n H0) in (let TMP_40 
-\def (eq_ind_r nat O TMP_34 TMP_37 TMP_38 TMP_39) in (let TMP_41 \def (TLRef 
-n) in (let TMP_42 \def (lift h d TMP_41) in (let TMP_43 \def (lift_lref_ge n 
-h d H0) in (eq_ind_r T TMP_27 TMP_31 TMP_40 TMP_42 TMP_43))))))))))))))) in 
-(lt_le_e n d TMP_13 TMP_25 TMP_44)))))))))))))) in (let TMP_325 \def (\lambda 
+ \lambda (t: T).(T_ind (\lambda (t0: T).(\forall (h: nat).(\forall (d: 
+nat).(\forall (f: ((nat \to nat))).(((\forall (m: nat).((le d m) \to (eq nat 
+(f m) O)))) \to (eq nat (weight_map f (lift h d t0)) (weight_map f t0))))))) 
+(\lambda (n: nat).(\lambda (_: nat).(\lambda (d: nat).(\lambda (f: ((nat \to 
+nat))).(\lambda (_: ((\forall (m: nat).((le d m) \to (eq nat (f m) 
+O))))).(refl_equal nat (weight_map f (TSort n)))))))) (\lambda (n: 
+nat).(\lambda (h: nat).(\lambda (d: nat).(\lambda (f: ((nat \to 
+nat))).(\lambda (H: ((\forall (m: nat).((le d m) \to (eq nat (f m) 
+O))))).(lt_le_e n d (eq nat (weight_map f (lift h d (TLRef n))) (weight_map f 
+(TLRef n))) (\lambda (H0: (lt n d)).(eq_ind_r T (TLRef n) (\lambda (t0: 
+T).(eq nat (weight_map f t0) (weight_map f (TLRef n)))) (refl_equal nat 
+(weight_map f (TLRef n))) (lift h d (TLRef n)) (lift_lref_lt n h d H0))) 
+(\lambda (H0: (le d n)).(eq_ind_r T (TLRef (plus n h)) (\lambda (t0: T).(eq 
+nat (weight_map f t0) (weight_map f (TLRef n)))) (eq_ind_r nat O (\lambda 
+(n0: nat).(eq nat (f (plus n h)) n0)) (H (plus n h) (le_plus_trans d n h H0)) 
+(f n) (H n H0)) (lift h d (TLRef n)) (lift_lref_ge n h d H0))))))))) (\lambda 
 (k: K).(\lambda (t0: T).(\lambda (H: ((\forall (h: nat).(\forall (d: 
 nat).(\forall (f: ((nat \to nat))).(((\forall (m: nat).((le d m) \to (eq nat 
 (f m) O)))) \to (eq nat (weight_map f (lift h d t0)) (weight_map f 
@@ -63,183 +47,72 @@ nat).(\forall (f: ((nat \to nat))).(((\forall (m: nat).((le d m) \to (eq nat
 (f m) O)))) \to (eq nat (weight_map f (lift h d t1)) (weight_map f 
 t1)))))))).(\lambda (h: nat).(\lambda (d: nat).(\lambda (f: ((nat \to 
 nat))).(\lambda (H1: ((\forall (m: nat).((le d m) \to (eq nat (f m) 
-O))))).(let TMP_51 \def (\lambda (k0: K).(let TMP_46 \def (THead k0 t0 t1) in 
-(let TMP_47 \def (lift h d TMP_46) in (let TMP_48 \def (weight_map f TMP_47) 
-in (let TMP_49 \def (THead k0 t0 t1) in (let TMP_50 \def (weight_map f 
-TMP_49) in (eq nat TMP_48 TMP_50))))))) in (let TMP_289 \def (\lambda (b: 
-B).(let TMP_52 \def (Bind b) in (let TMP_53 \def (lift h d t0) in (let TMP_54 
-\def (Bind b) in (let TMP_55 \def (s TMP_54 d) in (let TMP_56 \def (lift h 
-TMP_55 t1) in (let TMP_57 \def (THead TMP_52 TMP_53 TMP_56) in (let TMP_62 
-\def (\lambda (t2: T).(let TMP_58 \def (weight_map f t2) in (let TMP_59 \def 
-(Bind b) in (let TMP_60 \def (THead TMP_59 t0 t1) in (let TMP_61 \def 
-(weight_map f TMP_60) in (eq nat TMP_58 TMP_61)))))) in (let TMP_103 \def 
-(\lambda (b0: B).(let TMP_87 \def (match b0 with [Abbr \Rightarrow (let 
-TMP_77 \def (lift h d t0) in (let TMP_78 \def (weight_map f TMP_77) in (let 
-TMP_79 \def (lift h d t0) in (let TMP_80 \def (weight_map f TMP_79) in (let 
-TMP_81 \def (S TMP_80) in (let TMP_82 \def (wadd f TMP_81) in (let TMP_83 
-\def (S d) in (let TMP_84 \def (lift h TMP_83 t1) in (let TMP_85 \def 
-(weight_map TMP_82 TMP_84) in (let TMP_86 \def (plus TMP_78 TMP_85) in (S 
-TMP_86))))))))))) | Abst \Rightarrow (let TMP_70 \def (lift h d t0) in (let 
-TMP_71 \def (weight_map f TMP_70) in (let TMP_72 \def (wadd f O) in (let 
-TMP_73 \def (S d) in (let TMP_74 \def (lift h TMP_73 t1) in (let TMP_75 \def 
-(weight_map TMP_72 TMP_74) in (let TMP_76 \def (plus TMP_71 TMP_75) in (S 
-TMP_76)))))))) | Void \Rightarrow (let TMP_63 \def (lift h d t0) in (let 
-TMP_64 \def (weight_map f TMP_63) in (let TMP_65 \def (wadd f O) in (let 
-TMP_66 \def (S d) in (let TMP_67 \def (lift h TMP_66 t1) in (let TMP_68 \def 
-(weight_map TMP_65 TMP_67) in (let TMP_69 \def (plus TMP_64 TMP_68) in (S 
-TMP_69))))))))]) in (let TMP_102 \def (match b0 with [Abbr \Rightarrow (let 
-TMP_96 \def (weight_map f t0) in (let TMP_97 \def (weight_map f t0) in (let 
-TMP_98 \def (S TMP_97) in (let TMP_99 \def (wadd f TMP_98) in (let TMP_100 
-\def (weight_map TMP_99 t1) in (let TMP_101 \def (plus TMP_96 TMP_100) in (S 
-TMP_101))))))) | Abst \Rightarrow (let TMP_92 \def (weight_map f t0) in (let 
-TMP_93 \def (wadd f O) in (let TMP_94 \def (weight_map TMP_93 t1) in (let 
-TMP_95 \def (plus TMP_92 TMP_94) in (S TMP_95))))) | Void \Rightarrow (let 
-TMP_88 \def (weight_map f t0) in (let TMP_89 \def (wadd f O) in (let TMP_90 
-\def (weight_map TMP_89 t1) in (let TMP_91 \def (plus TMP_88 TMP_90) in (S 
-TMP_91)))))]) in (eq nat TMP_87 TMP_102)))) in (let TMP_104 \def (weight_map 
-f t0) in (let TMP_119 \def (\lambda (n: nat).(let TMP_105 \def (S n) in (let 
-TMP_106 \def (wadd f TMP_105) in (let TMP_107 \def (S d) in (let TMP_108 \def 
-(lift h TMP_107 t1) in (let TMP_109 \def (weight_map TMP_106 TMP_108) in (let 
-TMP_110 \def (plus n TMP_109) in (let TMP_111 \def (S TMP_110) in (let 
-TMP_112 \def (weight_map f t0) in (let TMP_113 \def (weight_map f t0) in (let 
-TMP_114 \def (S TMP_113) in (let TMP_115 \def (wadd f TMP_114) in (let 
-TMP_116 \def (weight_map TMP_115 t1) in (let TMP_117 \def (plus TMP_112 
-TMP_116) in (let TMP_118 \def (S TMP_117) in (eq nat TMP_111 
-TMP_118)))))))))))))))) in (let TMP_120 \def (weight_map f t0) in (let 
-TMP_121 \def (S TMP_120) in (let TMP_122 \def (wadd f TMP_121) in (let 
-TMP_123 \def (weight_map TMP_122 t1) in (let TMP_134 \def (\lambda (n: 
-nat).(let TMP_124 \def (weight_map f t0) in (let TMP_125 \def (plus TMP_124 
-n) in (let TMP_126 \def (S TMP_125) in (let TMP_127 \def (weight_map f t0) in 
-(let TMP_128 \def (weight_map f t0) in (let TMP_129 \def (S TMP_128) in (let 
-TMP_130 \def (wadd f TMP_129) in (let TMP_131 \def (weight_map TMP_130 t1) in 
-(let TMP_132 \def (plus TMP_127 TMP_131) in (let TMP_133 \def (S TMP_132) in 
-(eq nat TMP_126 TMP_133)))))))))))) in (let TMP_135 \def (weight_map f t0) in 
-(let TMP_136 \def (weight_map f t0) in (let TMP_137 \def (S TMP_136) in (let 
-TMP_138 \def (wadd f TMP_137) in (let TMP_139 \def (weight_map TMP_138 t1) in 
-(let TMP_140 \def (plus TMP_135 TMP_139) in (let TMP_141 \def (S TMP_140) in 
-(let TMP_142 \def (refl_equal nat TMP_141) in (let TMP_143 \def (weight_map f 
-t0) in (let TMP_144 \def (S TMP_143) in (let TMP_145 \def (wadd f TMP_144) in 
-(let TMP_146 \def (S d) in (let TMP_147 \def (lift h TMP_146 t1) in (let 
-TMP_148 \def (weight_map TMP_145 TMP_147) in (let TMP_149 \def (S d) in (let 
-TMP_150 \def (weight_map f t0) in (let TMP_151 \def (S TMP_150) in (let 
-TMP_152 \def (wadd f TMP_151) in (let TMP_168 \def (\lambda (m: nat).(\lambda 
-(H2: (le (S d) m)).(let TMP_154 \def (\lambda (n: nat).(let TMP_153 \def (S 
-n) in (eq nat m TMP_153))) in (let TMP_155 \def (\lambda (n: nat).(le d n)) 
-in (let TMP_156 \def (weight_map f t0) in (let TMP_157 \def (S TMP_156) in 
-(let TMP_158 \def (wadd f TMP_157 m) in (let TMP_159 \def (eq nat TMP_158 O) 
-in (let TMP_166 \def (\lambda (x: nat).(\lambda (H3: (eq nat m (S 
-x))).(\lambda (H4: (le d x)).(let TMP_160 \def (S x) in (let TMP_164 \def 
-(\lambda (n: nat).(let TMP_161 \def (weight_map f t0) in (let TMP_162 \def (S 
-TMP_161) in (let TMP_163 \def (wadd f TMP_162 n) in (eq nat TMP_163 O))))) in 
-(let TMP_165 \def (H1 x H4) in (eq_ind_r nat TMP_160 TMP_164 TMP_165 m 
-H3))))))) in (let TMP_167 \def (le_gen_S d m H2) in (ex2_ind nat TMP_154 
-TMP_155 TMP_159 TMP_166 TMP_167))))))))))) in (let TMP_169 \def (H0 h TMP_149 
-TMP_152 TMP_168) in (let TMP_170 \def (eq_ind_r nat TMP_123 TMP_134 TMP_142 
-TMP_148 TMP_169) in (let TMP_171 \def (lift h d t0) in (let TMP_172 \def 
-(weight_map f TMP_171) in (let TMP_173 \def (H h d f H1) in (let TMP_174 \def 
-(eq_ind_r nat TMP_104 TMP_119 TMP_170 TMP_172 TMP_173) in (let TMP_175 \def 
-(wadd f O) in (let TMP_176 \def (weight_map TMP_175 t1) in (let TMP_186 \def 
-(\lambda (n: nat).(let TMP_177 \def (lift h d t0) in (let TMP_178 \def 
-(weight_map f TMP_177) in (let TMP_179 \def (plus TMP_178 n) in (let TMP_180 
-\def (S TMP_179) in (let TMP_181 \def (weight_map f t0) in (let TMP_182 \def 
-(wadd f O) in (let TMP_183 \def (weight_map TMP_182 t1) in (let TMP_184 \def 
-(plus TMP_181 TMP_183) in (let TMP_185 \def (S TMP_184) in (eq nat TMP_180 
-TMP_185))))))))))) in (let TMP_187 \def (lift h d t0) in (let TMP_188 \def 
-(weight_map f TMP_187) in (let TMP_189 \def (wadd f O) in (let TMP_190 \def 
-(weight_map TMP_189 t1) in (let TMP_191 \def (plus TMP_188 TMP_190) in (let 
-TMP_192 \def (weight_map f t0) in (let TMP_193 \def (wadd f O) in (let 
-TMP_194 \def (weight_map TMP_193 t1) in (let TMP_195 \def (plus TMP_192 
-TMP_194) in (let TMP_196 \def (lift h d t0) in (let TMP_197 \def (weight_map 
-f TMP_196) in (let TMP_198 \def (weight_map f t0) in (let TMP_199 \def (wadd 
-f O) in (let TMP_200 \def (weight_map TMP_199 t1) in (let TMP_201 \def (wadd 
-f O) in (let TMP_202 \def (weight_map TMP_201 t1) in (let TMP_203 \def (H h d 
-f H1) in (let TMP_204 \def (wadd f O) in (let TMP_205 \def (weight_map 
-TMP_204 t1) in (let TMP_206 \def (refl_equal nat TMP_205) in (let TMP_207 
-\def (f_equal2 nat nat nat plus TMP_197 TMP_198 TMP_200 TMP_202 TMP_203 
-TMP_206) in (let TMP_208 \def (f_equal nat nat S TMP_191 TMP_195 TMP_207) in 
-(let TMP_209 \def (wadd f O) in (let TMP_210 \def (S d) in (let TMP_211 \def 
-(lift h TMP_210 t1) in (let TMP_212 \def (weight_map TMP_209 TMP_211) in (let 
-TMP_213 \def (S d) in (let TMP_214 \def (wadd f O) in (let TMP_226 \def 
-(\lambda (m: nat).(\lambda (H2: (le (S d) m)).(let TMP_216 \def (\lambda (n: 
-nat).(let TMP_215 \def (S n) in (eq nat m TMP_215))) in (let TMP_217 \def 
-(\lambda (n: nat).(le d n)) in (let TMP_218 \def (wadd f O m) in (let TMP_219 
-\def (eq nat TMP_218 O) in (let TMP_224 \def (\lambda (x: nat).(\lambda (H3: 
-(eq nat m (S x))).(\lambda (H4: (le d x)).(let TMP_220 \def (S x) in (let 
-TMP_222 \def (\lambda (n: nat).(let TMP_221 \def (wadd f O n) in (eq nat 
-TMP_221 O))) in (let TMP_223 \def (H1 x H4) in (eq_ind_r nat TMP_220 TMP_222 
-TMP_223 m H3))))))) in (let TMP_225 \def (le_gen_S d m H2) in (ex2_ind nat 
-TMP_216 TMP_217 TMP_219 TMP_224 TMP_225))))))))) in (let TMP_227 \def (H0 h 
-TMP_213 TMP_214 TMP_226) in (let TMP_228 \def (eq_ind_r nat TMP_176 TMP_186 
-TMP_208 TMP_212 TMP_227) in (let TMP_229 \def (wadd f O) in (let TMP_230 \def 
-(weight_map TMP_229 t1) in (let TMP_240 \def (\lambda (n: nat).(let TMP_231 
-\def (lift h d t0) in (let TMP_232 \def (weight_map f TMP_231) in (let 
-TMP_233 \def (plus TMP_232 n) in (let TMP_234 \def (S TMP_233) in (let 
-TMP_235 \def (weight_map f t0) in (let TMP_236 \def (wadd f O) in (let 
-TMP_237 \def (weight_map TMP_236 t1) in (let TMP_238 \def (plus TMP_235 
-TMP_237) in (let TMP_239 \def (S TMP_238) in (eq nat TMP_234 
-TMP_239))))))))))) in (let TMP_241 \def (lift h d t0) in (let TMP_242 \def 
-(weight_map f TMP_241) in (let TMP_243 \def (wadd f O) in (let TMP_244 \def 
-(weight_map TMP_243 t1) in (let TMP_245 \def (plus TMP_242 TMP_244) in (let 
-TMP_246 \def (weight_map f t0) in (let TMP_247 \def (wadd f O) in (let 
-TMP_248 \def (weight_map TMP_247 t1) in (let TMP_249 \def (plus TMP_246 
-TMP_248) in (let TMP_250 \def (lift h d t0) in (let TMP_251 \def (weight_map 
-f TMP_250) in (let TMP_252 \def (weight_map f t0) in (let TMP_253 \def (wadd 
-f O) in (let TMP_254 \def (weight_map TMP_253 t1) in (let TMP_255 \def (wadd 
-f O) in (let TMP_256 \def (weight_map TMP_255 t1) in (let TMP_257 \def (H h d 
-f H1) in (let TMP_258 \def (wadd f O) in (let TMP_259 \def (weight_map 
-TMP_258 t1) in (let TMP_260 \def (refl_equal nat TMP_259) in (let TMP_261 
-\def (f_equal2 nat nat nat plus TMP_251 TMP_252 TMP_254 TMP_256 TMP_257 
-TMP_260) in (let TMP_262 \def (f_equal nat nat S TMP_245 TMP_249 TMP_261) in 
-(let TMP_263 \def (wadd f O) in (let TMP_264 \def (S d) in (let TMP_265 \def 
-(lift h TMP_264 t1) in (let TMP_266 \def (weight_map TMP_263 TMP_265) in (let 
-TMP_267 \def (S d) in (let TMP_268 \def (wadd f O) in (let TMP_280 \def 
-(\lambda (m: nat).(\lambda (H2: (le (S d) m)).(let TMP_270 \def (\lambda (n: 
-nat).(let TMP_269 \def (S n) in (eq nat m TMP_269))) in (let TMP_271 \def 
-(\lambda (n: nat).(le d n)) in (let TMP_272 \def (wadd f O m) in (let TMP_273 
-\def (eq nat TMP_272 O) in (let TMP_278 \def (\lambda (x: nat).(\lambda (H3: 
-(eq nat m (S x))).(\lambda (H4: (le d x)).(let TMP_274 \def (S x) in (let 
-TMP_276 \def (\lambda (n: nat).(let TMP_275 \def (wadd f O n) in (eq nat 
-TMP_275 O))) in (let TMP_277 \def (H1 x H4) in (eq_ind_r nat TMP_274 TMP_276 
-TMP_277 m H3))))))) in (let TMP_279 \def (le_gen_S d m H2) in (ex2_ind nat 
-TMP_270 TMP_271 TMP_273 TMP_278 TMP_279))))))))) in (let TMP_281 \def (H0 h 
-TMP_267 TMP_268 TMP_280) in (let TMP_282 \def (eq_ind_r nat TMP_230 TMP_240 
-TMP_262 TMP_266 TMP_281) in (let TMP_283 \def (B_ind TMP_103 TMP_174 TMP_228 
-TMP_282 b) in (let TMP_284 \def (Bind b) in (let TMP_285 \def (THead TMP_284 
-t0 t1) in (let TMP_286 \def (lift h d TMP_285) in (let TMP_287 \def (Bind b) 
-in (let TMP_288 \def (lift_head TMP_287 t0 t1 h d) in (eq_ind_r T TMP_57 
-TMP_62 TMP_283 TMP_286 
-TMP_288)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
-))))))))))))))))))))))))))))))))))))))))))))) in (let TMP_324 \def (\lambda 
-(f0: F).(let TMP_290 \def (Flat f0) in (let TMP_291 \def (lift h d t0) in 
-(let TMP_292 \def (Flat f0) in (let TMP_293 \def (s TMP_292 d) in (let 
-TMP_294 \def (lift h TMP_293 t1) in (let TMP_295 \def (THead TMP_290 TMP_291 
-TMP_294) in (let TMP_300 \def (\lambda (t2: T).(let TMP_296 \def (weight_map 
-f t2) in (let TMP_297 \def (Flat f0) in (let TMP_298 \def (THead TMP_297 t0 
-t1) in (let TMP_299 \def (weight_map f TMP_298) in (eq nat TMP_296 
-TMP_299)))))) in (let TMP_301 \def (lift h d t0) in (let TMP_302 \def 
-(weight_map f TMP_301) in (let TMP_303 \def (lift h d t1) in (let TMP_304 
-\def (weight_map f TMP_303) in (let TMP_305 \def (plus TMP_302 TMP_304) in 
-(let TMP_306 \def (weight_map f t0) in (let TMP_307 \def (weight_map f t1) in 
-(let TMP_308 \def (plus TMP_306 TMP_307) in (let TMP_309 \def (lift h d t0) 
-in (let TMP_310 \def (weight_map f TMP_309) in (let TMP_311 \def (weight_map 
-f t0) in (let TMP_312 \def (lift h d t1) in (let TMP_313 \def (weight_map f 
-TMP_312) in (let TMP_314 \def (weight_map f t1) in (let TMP_315 \def (H h d f 
-H1) in (let TMP_316 \def (H0 h d f H1) in (let TMP_317 \def (f_equal2 nat nat 
-nat plus TMP_310 TMP_311 TMP_313 TMP_314 TMP_315 TMP_316) in (let TMP_318 
-\def (f_equal nat nat S TMP_305 TMP_308 TMP_317) in (let TMP_319 \def (Flat 
-f0) in (let TMP_320 \def (THead TMP_319 t0 t1) in (let TMP_321 \def (lift h d 
-TMP_320) in (let TMP_322 \def (Flat f0) in (let TMP_323 \def (lift_head 
-TMP_322 t0 t1 h d) in (eq_ind_r T TMP_295 TMP_300 TMP_318 TMP_321 
-TMP_323)))))))))))))))))))))))))))))))) in (K_ind TMP_51 TMP_289 TMP_324 
-k))))))))))))) in (T_ind TMP_4 TMP_7 TMP_45 TMP_325 t))))).
+O))))).(K_ind (\lambda (k0: K).(eq nat (weight_map f (lift h d (THead k0 t0 
+t1))) (weight_map f (THead k0 t0 t1)))) (\lambda (b: B).(eq_ind_r T (THead 
+(Bind b) (lift h d t0) (lift h (s (Bind b) d) t1)) (\lambda (t2: T).(eq nat 
+(weight_map f t2) (weight_map f (THead (Bind b) t0 t1)))) (B_ind (\lambda 
+(b0: B).(eq nat (match b0 with [Abbr \Rightarrow (S (plus (weight_map f (lift 
+h d t0)) (weight_map (wadd f (S (weight_map f (lift h d t0)))) (lift h (S d) 
+t1)))) | Abst \Rightarrow (S (plus (weight_map f (lift h d t0)) (weight_map 
+(wadd f O) (lift h (S d) t1)))) | Void \Rightarrow (S (plus (weight_map f 
+(lift h d t0)) (weight_map (wadd f O) (lift h (S d) t1))))]) (match b0 with 
+[Abbr \Rightarrow (S (plus (weight_map f t0) (weight_map (wadd f (S 
+(weight_map f t0))) t1))) | Abst \Rightarrow (S (plus (weight_map f t0) 
+(weight_map (wadd f O) t1))) | Void \Rightarrow (S (plus (weight_map f t0) 
+(weight_map (wadd f O) t1)))]))) (eq_ind_r nat (weight_map f t0) (\lambda (n: 
+nat).(eq nat (S (plus n (weight_map (wadd f (S n)) (lift h (S d) t1)))) (S 
+(plus (weight_map f t0) (weight_map (wadd f (S (weight_map f t0))) t1))))) 
+(eq_ind_r nat (weight_map (wadd f (S (weight_map f t0))) t1) (\lambda (n: 
+nat).(eq nat (S (plus (weight_map f t0) n)) (S (plus (weight_map f t0) 
+(weight_map (wadd f (S (weight_map f t0))) t1))))) (refl_equal nat (S (plus 
+(weight_map f t0) (weight_map (wadd f (S (weight_map f t0))) t1)))) 
+(weight_map (wadd f (S (weight_map f t0))) (lift h (S d) t1)) (H0 h (S d) 
+(wadd f (S (weight_map f t0))) (\lambda (m: nat).(\lambda (H2: (le (S d) 
+m)).(ex2_ind nat (\lambda (n: nat).(eq nat m (S n))) (\lambda (n: nat).(le d 
+n)) (eq nat (wadd f (S (weight_map f t0)) m) O) (\lambda (x: nat).(\lambda 
+(H3: (eq nat m (S x))).(\lambda (H4: (le d x)).(eq_ind_r nat (S x) (\lambda 
+(n: nat).(eq nat (wadd f (S (weight_map f t0)) n) O)) (H1 x H4) m H3)))) 
+(le_gen_S d m H2)))))) (weight_map f (lift h d t0)) (H h d f H1)) (eq_ind_r 
+nat (weight_map (wadd f O) t1) (\lambda (n: nat).(eq nat (S (plus (weight_map 
+f (lift h d t0)) n)) (S (plus (weight_map f t0) (weight_map (wadd f O) 
+t1))))) (f_equal nat nat S (plus (weight_map f (lift h d t0)) (weight_map 
+(wadd f O) t1)) (plus (weight_map f t0) (weight_map (wadd f O) t1)) (f_equal2 
+nat nat nat plus (weight_map f (lift h d t0)) (weight_map f t0) (weight_map 
+(wadd f O) t1) (weight_map (wadd f O) t1) (H h d f H1) (refl_equal nat 
+(weight_map (wadd f O) t1)))) (weight_map (wadd f O) (lift h (S d) t1)) (H0 h 
+(S d) (wadd f O) (\lambda (m: nat).(\lambda (H2: (le (S d) m)).(ex2_ind nat 
+(\lambda (n: nat).(eq nat m (S n))) (\lambda (n: nat).(le d n)) (eq nat (wadd 
+f O m) O) (\lambda (x: nat).(\lambda (H3: (eq nat m (S x))).(\lambda (H4: (le 
+d x)).(eq_ind_r nat (S x) (\lambda (n: nat).(eq nat (wadd f O n) O)) (H1 x 
+H4) m H3)))) (le_gen_S d m H2)))))) (eq_ind_r nat (weight_map (wadd f O) t1) 
+(\lambda (n: nat).(eq nat (S (plus (weight_map f (lift h d t0)) n)) (S (plus 
+(weight_map f t0) (weight_map (wadd f O) t1))))) (f_equal nat nat S (plus 
+(weight_map f (lift h d t0)) (weight_map (wadd f O) t1)) (plus (weight_map f 
+t0) (weight_map (wadd f O) t1)) (f_equal2 nat nat nat plus (weight_map f 
+(lift h d t0)) (weight_map f t0) (weight_map (wadd f O) t1) (weight_map (wadd 
+f O) t1) (H h d f H1) (refl_equal nat (weight_map (wadd f O) t1)))) 
+(weight_map (wadd f O) (lift h (S d) t1)) (H0 h (S d) (wadd f O) (\lambda (m: 
+nat).(\lambda (H2: (le (S d) m)).(ex2_ind nat (\lambda (n: nat).(eq nat m (S 
+n))) (\lambda (n: nat).(le d n)) (eq nat (wadd f O m) O) (\lambda (x: 
+nat).(\lambda (H3: (eq nat m (S x))).(\lambda (H4: (le d x)).(eq_ind_r nat (S 
+x) (\lambda (n: nat).(eq nat (wadd f O n) O)) (H1 x H4) m H3)))) (le_gen_S d 
+m H2)))))) b) (lift h d (THead (Bind b) t0 t1)) (lift_head (Bind b) t0 t1 h 
+d))) (\lambda (f0: F).(eq_ind_r T (THead (Flat f0) (lift h d t0) (lift h (s 
+(Flat f0) d) t1)) (\lambda (t2: T).(eq nat (weight_map f t2) (weight_map f 
+(THead (Flat f0) t0 t1)))) (f_equal nat nat S (plus (weight_map f (lift h d 
+t0)) (weight_map f (lift h d t1))) (plus (weight_map f t0) (weight_map f t1)) 
+(f_equal2 nat nat nat plus (weight_map f (lift h d t0)) (weight_map f t0) 
+(weight_map f (lift h d t1)) (weight_map f t1) (H h d f H1) (H0 h d f H1))) 
+(lift h d (THead (Flat f0) t0 t1)) (lift_head (Flat f0) t0 t1 h d))) 
+k)))))))))) t).
 
 theorem lift_weight:
  \forall (t: T).(\forall (h: nat).(\forall (d: nat).(eq nat (weight (lift h d 
 t)) (weight t))))
 \def
- \lambda (t: T).(\lambda (h: nat).(\lambda (d: nat).(let TMP_1 \def (\lambda 
-(_: nat).O) in (let TMP_2 \def (\lambda (m: nat).(\lambda (_: (le d 
-m)).(refl_equal nat O))) in (lift_weight_map t h d TMP_1 TMP_2))))).
+ \lambda (t: T).(\lambda (h: nat).(\lambda (d: nat).(lift_weight_map t h d 
+(\lambda (_: nat).O) (\lambda (m: nat).(\lambda (_: (le d m)).(refl_equal nat 
+O)))))).
 
 theorem lift_weight_add:
  \forall (w: nat).(\forall (t: T).(\forall (h: nat).(\forall (d: 
@@ -248,375 +121,146 @@ nat).(\forall (f: ((nat \to nat))).(\forall (g: ((nat \to nat))).(((\forall
 (((\forall (m: nat).((le d m) \to (eq nat (g (S m)) (f m))))) \to (eq nat 
 (weight_map f (lift h d t)) (weight_map g (lift (S h) d t)))))))))))
 \def
- \lambda (w: nat).(\lambda (t: T).(let TMP_6 \def (\lambda (t0: T).(\forall 
-(h: nat).(\forall (d: nat).(\forall (f: ((nat \to nat))).(\forall (g: ((nat 
-\to nat))).(((\forall (m: nat).((lt m d) \to (eq nat (g m) (f m))))) \to ((eq 
-nat (g d) w) \to (((\forall (m: nat).((le d m) \to (eq nat (g (S m)) (f 
-m))))) \to (let TMP_1 \def (lift h d t0) in (let TMP_2 \def (weight_map f 
-TMP_1) in (let TMP_3 \def (S h) in (let TMP_4 \def (lift TMP_3 d t0) in (let 
-TMP_5 \def (weight_map g TMP_4) in (eq nat TMP_2 TMP_5)))))))))))))) in (let 
-TMP_11 \def (\lambda (n: nat).(\lambda (h: nat).(\lambda (d: nat).(\lambda 
+ \lambda (w: nat).(\lambda (t: T).(T_ind (\lambda (t0: T).(\forall (h: 
+nat).(\forall (d: nat).(\forall (f: ((nat \to nat))).(\forall (g: ((nat \to 
+nat))).(((\forall (m: nat).((lt m d) \to (eq nat (g m) (f m))))) \to ((eq nat 
+(g d) w) \to (((\forall (m: nat).((le d m) \to (eq nat (g (S m)) (f m))))) 
+\to (eq nat (weight_map f (lift h d t0)) (weight_map g (lift (S h) d 
+t0))))))))))) (\lambda (n: nat).(\lambda (h: nat).(\lambda (d: nat).(\lambda 
 (f: ((nat \to nat))).(\lambda (g: ((nat \to nat))).(\lambda (_: ((\forall (m: 
 nat).((lt m d) \to (eq nat (g m) (f m)))))).(\lambda (_: (eq nat (g d) 
 w)).(\lambda (_: ((\forall (m: nat).((le d m) \to (eq nat (g (S m)) (f 
-m)))))).(let TMP_7 \def (S h) in (let TMP_8 \def (TSort n) in (let TMP_9 \def 
-(lift TMP_7 d TMP_8) in (let TMP_10 \def (weight_map g TMP_9) in (refl_equal 
-nat TMP_10))))))))))))) in (let TMP_91 \def (\lambda (n: nat).(\lambda (h: 
-nat).(\lambda (d: nat).(\lambda (f: ((nat \to nat))).(\lambda (g: ((nat \to 
-nat))).(\lambda (H: ((\forall (m: nat).((lt m d) \to (eq nat (g m) (f 
-m)))))).(\lambda (_: (eq nat (g d) w)).(\lambda (H1: ((\forall (m: nat).((le 
-d m) \to (eq nat (g (S m)) (f m)))))).(let TMP_12 \def (TLRef n) in (let 
-TMP_13 \def (lift h d TMP_12) in (let TMP_14 \def (weight_map f TMP_13) in 
-(let TMP_15 \def (S h) in (let TMP_16 \def (TLRef n) in (let TMP_17 \def 
-(lift TMP_15 d TMP_16) in (let TMP_18 \def (weight_map g TMP_17) in (let 
-TMP_19 \def (eq nat TMP_14 TMP_18) in (let TMP_45 \def (\lambda (H2: (lt n 
-d)).(let TMP_20 \def (TLRef n) in (let TMP_26 \def (\lambda (t0: T).(let 
-TMP_21 \def (weight_map f t0) in (let TMP_22 \def (S h) in (let TMP_23 \def 
-(TLRef n) in (let TMP_24 \def (lift TMP_22 d TMP_23) in (let TMP_25 \def 
-(weight_map g TMP_24) in (eq nat TMP_21 TMP_25))))))) in (let TMP_27 \def 
-(TLRef n) in (let TMP_31 \def (\lambda (t0: T).(let TMP_28 \def (TLRef n) in 
-(let TMP_29 \def (weight_map f TMP_28) in (let TMP_30 \def (weight_map g t0) 
-in (eq nat TMP_29 TMP_30))))) in (let TMP_32 \def (g n) in (let TMP_33 \def 
-(f n) in (let TMP_34 \def (H n H2) in (let TMP_35 \def (sym_eq nat TMP_32 
-TMP_33 TMP_34) in (let TMP_36 \def (S h) in (let TMP_37 \def (TLRef n) in 
-(let TMP_38 \def (lift TMP_36 d TMP_37) in (let TMP_39 \def (S h) in (let 
-TMP_40 \def (lift_lref_lt n TMP_39 d H2) in (let TMP_41 \def (eq_ind_r T 
-TMP_27 TMP_31 TMP_35 TMP_38 TMP_40) in (let TMP_42 \def (TLRef n) in (let 
-TMP_43 \def (lift h d TMP_42) in (let TMP_44 \def (lift_lref_lt n h d H2) in 
-(eq_ind_r T TMP_20 TMP_26 TMP_41 TMP_43 TMP_44))))))))))))))))))) in (let 
-TMP_90 \def (\lambda (H2: (le d n)).(let TMP_46 \def (plus n h) in (let 
-TMP_47 \def (TLRef TMP_46) in (let TMP_53 \def (\lambda (t0: T).(let TMP_48 
-\def (weight_map f t0) in (let TMP_49 \def (S h) in (let TMP_50 \def (TLRef 
-n) in (let TMP_51 \def (lift TMP_49 d TMP_50) in (let TMP_52 \def (weight_map 
-g TMP_51) in (eq nat TMP_48 TMP_52))))))) in (let TMP_54 \def (S h) in (let 
-TMP_55 \def (plus n TMP_54) in (let TMP_56 \def (TLRef TMP_55) in (let TMP_61 
-\def (\lambda (t0: T).(let TMP_57 \def (plus n h) in (let TMP_58 \def (TLRef 
-TMP_57) in (let TMP_59 \def (weight_map f TMP_58) in (let TMP_60 \def 
-(weight_map g t0) in (eq nat TMP_59 TMP_60)))))) in (let TMP_62 \def (plus n 
-h) in (let TMP_63 \def (S TMP_62) in (let TMP_67 \def (\lambda (n0: nat).(let 
-TMP_64 \def (plus n h) in (let TMP_65 \def (f TMP_64) in (let TMP_66 \def (g 
-n0) in (eq nat TMP_65 TMP_66))))) in (let TMP_68 \def (plus n h) in (let 
-TMP_69 \def (S TMP_68) in (let TMP_70 \def (g TMP_69) in (let TMP_71 \def 
-(plus n h) in (let TMP_72 \def (f TMP_71) in (let TMP_73 \def (plus n h) in 
-(let TMP_74 \def (le_plus_trans d n h H2) in (let TMP_75 \def (H1 TMP_73 
-TMP_74) in (let TMP_76 \def (sym_eq nat TMP_70 TMP_72 TMP_75) in (let TMP_77 
-\def (S h) in (let TMP_78 \def (plus n TMP_77) in (let TMP_79 \def (plus_n_Sm 
-n h) in (let TMP_80 \def (eq_ind nat TMP_63 TMP_67 TMP_76 TMP_78 TMP_79) in 
-(let TMP_81 \def (S h) in (let TMP_82 \def (TLRef n) in (let TMP_83 \def 
-(lift TMP_81 d TMP_82) in (let TMP_84 \def (S h) in (let TMP_85 \def 
-(lift_lref_ge n TMP_84 d H2) in (let TMP_86 \def (eq_ind_r T TMP_56 TMP_61 
-TMP_80 TMP_83 TMP_85) in (let TMP_87 \def (TLRef n) in (let TMP_88 \def (lift 
-h d TMP_87) in (let TMP_89 \def (lift_lref_ge n h d H2) in (eq_ind_r T TMP_47 
-TMP_53 TMP_86 TMP_88 TMP_89)))))))))))))))))))))))))))))))))) in (lt_le_e n d 
-TMP_19 TMP_45 TMP_90))))))))))))))))))) in (let TMP_577 \def (\lambda (k: 
-K).(\lambda (t0: T).(\lambda (H: ((\forall (h: nat).(\forall (d: 
-nat).(\forall (f: ((nat \to nat))).(\forall (g: ((nat \to nat))).(((\forall 
-(m: nat).((lt m d) \to (eq nat (g m) (f m))))) \to ((eq nat (g d) w) \to 
-(((\forall (m: nat).((le d m) \to (eq nat (g (S m)) (f m))))) \to (eq nat 
-(weight_map f (lift h d t0)) (weight_map g (lift (S h) d 
-t0)))))))))))).(\lambda (t1: T).(\lambda (H0: ((\forall (h: nat).(\forall (d: 
-nat).(\forall (f: ((nat \to nat))).(\forall (g: ((nat \to nat))).(((\forall 
-(m: nat).((lt m d) \to (eq nat (g m) (f m))))) \to ((eq nat (g d) w) \to 
-(((\forall (m: nat).((le d m) \to (eq nat (g (S m)) (f m))))) \to (eq nat 
-(weight_map f (lift h d t1)) (weight_map g (lift (S h) d 
-t1)))))))))))).(\lambda (h: nat).(\lambda (d: nat).(\lambda (f: ((nat \to 
-nat))).(\lambda (g: ((nat \to nat))).(\lambda (H1: ((\forall (m: nat).((lt m 
-d) \to (eq nat (g m) (f m)))))).(\lambda (H2: (eq nat (g d) w)).(\lambda (H3: 
-((\forall (m: nat).((le d m) \to (eq nat (g (S m)) (f m)))))).(let TMP_99 
-\def (\lambda (k0: K).(let TMP_92 \def (THead k0 t0 t1) in (let TMP_93 \def 
-(lift h d TMP_92) in (let TMP_94 \def (weight_map f TMP_93) in (let TMP_95 
-\def (S h) in (let TMP_96 \def (THead k0 t0 t1) in (let TMP_97 \def (lift 
-TMP_95 d TMP_96) in (let TMP_98 \def (weight_map g TMP_97) in (eq nat TMP_94 
-TMP_98))))))))) in (let TMP_506 \def (\lambda (b: B).(let TMP_100 \def (Bind 
-b) in (let TMP_101 \def (lift h d t0) in (let TMP_102 \def (Bind b) in (let 
-TMP_103 \def (s TMP_102 d) in (let TMP_104 \def (lift h TMP_103 t1) in (let 
-TMP_105 \def (THead TMP_100 TMP_101 TMP_104) in (let TMP_112 \def (\lambda 
-(t2: T).(let TMP_106 \def (weight_map f t2) in (let TMP_107 \def (S h) in 
-(let TMP_108 \def (Bind b) in (let TMP_109 \def (THead TMP_108 t0 t1) in (let 
-TMP_110 \def (lift TMP_107 d TMP_109) in (let TMP_111 \def (weight_map g 
-TMP_110) in (eq nat TMP_106 TMP_111)))))))) in (let TMP_113 \def (Bind b) in 
-(let TMP_114 \def (S h) in (let TMP_115 \def (lift TMP_114 d t0) in (let 
-TMP_116 \def (S h) in (let TMP_117 \def (Bind b) in (let TMP_118 \def (s 
-TMP_117 d) in (let TMP_119 \def (lift TMP_116 TMP_118 t1) in (let TMP_120 
-\def (THead TMP_113 TMP_115 TMP_119) in (let TMP_129 \def (\lambda (t2: 
-T).(let TMP_121 \def (Bind b) in (let TMP_122 \def (lift h d t0) in (let 
-TMP_123 \def (Bind b) in (let TMP_124 \def (s TMP_123 d) in (let TMP_125 \def 
-(lift h TMP_124 t1) in (let TMP_126 \def (THead TMP_121 TMP_122 TMP_125) in 
-(let TMP_127 \def (weight_map f TMP_126) in (let TMP_128 \def (weight_map g 
-t2) in (eq nat TMP_127 TMP_128)))))))))) in (let TMP_187 \def (\lambda (b0: 
-B).(let TMP_154 \def (match b0 with [Abbr \Rightarrow (let TMP_144 \def (lift 
-h d t0) in (let TMP_145 \def (weight_map f TMP_144) in (let TMP_146 \def 
-(lift h d t0) in (let TMP_147 \def (weight_map f TMP_146) in (let TMP_148 
-\def (S TMP_147) in (let TMP_149 \def (wadd f TMP_148) in (let TMP_150 \def 
-(S d) in (let TMP_151 \def (lift h TMP_150 t1) in (let TMP_152 \def 
-(weight_map TMP_149 TMP_151) in (let TMP_153 \def (plus TMP_145 TMP_152) in 
-(S TMP_153))))))))))) | Abst \Rightarrow (let TMP_137 \def (lift h d t0) in 
-(let TMP_138 \def (weight_map f TMP_137) in (let TMP_139 \def (wadd f O) in 
-(let TMP_140 \def (S d) in (let TMP_141 \def (lift h TMP_140 t1) in (let 
-TMP_142 \def (weight_map TMP_139 TMP_141) in (let TMP_143 \def (plus TMP_138 
-TMP_142) in (S TMP_143)))))))) | Void \Rightarrow (let TMP_130 \def (lift h d 
-t0) in (let TMP_131 \def (weight_map f TMP_130) in (let TMP_132 \def (wadd f 
-O) in (let TMP_133 \def (S d) in (let TMP_134 \def (lift h TMP_133 t1) in 
-(let TMP_135 \def (weight_map TMP_132 TMP_134) in (let TMP_136 \def (plus 
-TMP_131 TMP_135) in (S TMP_136))))))))]) in (let TMP_186 \def (match b0 with 
-[Abbr \Rightarrow (let TMP_173 \def (S h) in (let TMP_174 \def (lift TMP_173 
-d t0) in (let TMP_175 \def (weight_map g TMP_174) in (let TMP_176 \def (S h) 
-in (let TMP_177 \def (lift TMP_176 d t0) in (let TMP_178 \def (weight_map g 
-TMP_177) in (let TMP_179 \def (S TMP_178) in (let TMP_180 \def (wadd g 
-TMP_179) in (let TMP_181 \def (S h) in (let TMP_182 \def (S d) in (let 
-TMP_183 \def (lift TMP_181 TMP_182 t1) in (let TMP_184 \def (weight_map 
-TMP_180 TMP_183) in (let TMP_185 \def (plus TMP_175 TMP_184) in (S 
-TMP_185)))))))))))))) | Abst \Rightarrow (let TMP_164 \def (S h) in (let 
-TMP_165 \def (lift TMP_164 d t0) in (let TMP_166 \def (weight_map g TMP_165) 
-in (let TMP_167 \def (wadd g O) in (let TMP_168 \def (S h) in (let TMP_169 
-\def (S d) in (let TMP_170 \def (lift TMP_168 TMP_169 t1) in (let TMP_171 
-\def (weight_map TMP_167 TMP_170) in (let TMP_172 \def (plus TMP_166 TMP_171) 
-in (S TMP_172)))))))))) | Void \Rightarrow (let TMP_155 \def (S h) in (let 
-TMP_156 \def (lift TMP_155 d t0) in (let TMP_157 \def (weight_map g TMP_156) 
-in (let TMP_158 \def (wadd g O) in (let TMP_159 \def (S h) in (let TMP_160 
-\def (S d) in (let TMP_161 \def (lift TMP_159 TMP_160 t1) in (let TMP_162 
-\def (weight_map TMP_158 TMP_161) in (let TMP_163 \def (plus TMP_157 TMP_162) 
-in (S TMP_163))))))))))]) in (eq nat TMP_154 TMP_186)))) in (let TMP_188 \def 
-(lift h d t0) in (let TMP_189 \def (weight_map f TMP_188) in (let TMP_190 
-\def (lift h d t0) in (let TMP_191 \def (weight_map f TMP_190) in (let 
-TMP_192 \def (S TMP_191) in (let TMP_193 \def (wadd f TMP_192) in (let 
-TMP_194 \def (S d) in (let TMP_195 \def (lift h TMP_194 t1) in (let TMP_196 
-\def (weight_map TMP_193 TMP_195) in (let TMP_197 \def (plus TMP_189 TMP_196) 
-in (let TMP_198 \def (S h) in (let TMP_199 \def (lift TMP_198 d t0) in (let 
-TMP_200 \def (weight_map g TMP_199) in (let TMP_201 \def (S h) in (let 
-TMP_202 \def (lift TMP_201 d t0) in (let TMP_203 \def (weight_map g TMP_202) 
-in (let TMP_204 \def (S TMP_203) in (let TMP_205 \def (wadd g TMP_204) in 
-(let TMP_206 \def (S h) in (let TMP_207 \def (S d) in (let TMP_208 \def (lift 
-TMP_206 TMP_207 t1) in (let TMP_209 \def (weight_map TMP_205 TMP_208) in (let 
-TMP_210 \def (plus TMP_200 TMP_209) in (let TMP_211 \def (lift h d t0) in 
-(let TMP_212 \def (weight_map f TMP_211) in (let TMP_213 \def (S h) in (let 
-TMP_214 \def (lift TMP_213 d t0) in (let TMP_215 \def (weight_map g TMP_214) 
-in (let TMP_216 \def (lift h d t0) in (let TMP_217 \def (weight_map f 
-TMP_216) in (let TMP_218 \def (S TMP_217) in (let TMP_219 \def (wadd f 
-TMP_218) in (let TMP_220 \def (S d) in (let TMP_221 \def (lift h TMP_220 t1) 
-in (let TMP_222 \def (weight_map TMP_219 TMP_221) in (let TMP_223 \def (S h) 
-in (let TMP_224 \def (lift TMP_223 d t0) in (let TMP_225 \def (weight_map g 
-TMP_224) in (let TMP_226 \def (S TMP_225) in (let TMP_227 \def (wadd g 
-TMP_226) in (let TMP_228 \def (S h) in (let TMP_229 \def (S d) in (let 
-TMP_230 \def (lift TMP_228 TMP_229 t1) in (let TMP_231 \def (weight_map 
-TMP_227 TMP_230) in (let TMP_232 \def (H h d f g H1 H2 H3) in (let TMP_233 
-\def (S d) in (let TMP_234 \def (lift h d t0) in (let TMP_235 \def 
-(weight_map f TMP_234) in (let TMP_236 \def (S TMP_235) in (let TMP_237 \def 
-(wadd f TMP_236) in (let TMP_238 \def (S h) in (let TMP_239 \def (lift 
-TMP_238 d t0) in (let TMP_240 \def (weight_map g TMP_239) in (let TMP_241 
-\def (S TMP_240) in (let TMP_242 \def (wadd g TMP_241) in (let TMP_310 \def 
-(\lambda (m: nat).(\lambda (H4: (lt m (S d))).(let TMP_243 \def (eq nat m O) 
-in (let TMP_245 \def (\lambda (m0: nat).(let TMP_244 \def (S m0) in (eq nat m 
-TMP_244))) in (let TMP_246 \def (\lambda (m0: nat).(lt m0 d)) in (let TMP_247 
-\def (ex2 nat TMP_245 TMP_246) in (let TMP_248 \def (S h) in (let TMP_249 
-\def (lift TMP_248 d t0) in (let TMP_250 \def (weight_map g TMP_249) in (let 
-TMP_251 \def (S TMP_250) in (let TMP_252 \def (wadd g TMP_251 m) in (let 
-TMP_253 \def (lift h d t0) in (let TMP_254 \def (weight_map f TMP_253) in 
-(let TMP_255 \def (S TMP_254) in (let TMP_256 \def (wadd f TMP_255 m) in (let 
-TMP_257 \def (eq nat TMP_252 TMP_256) in (let TMP_281 \def (\lambda (H5: (eq 
-nat m O)).(let TMP_267 \def (\lambda (n: nat).(let TMP_258 \def (S h) in (let 
-TMP_259 \def (lift TMP_258 d t0) in (let TMP_260 \def (weight_map g TMP_259) 
-in (let TMP_261 \def (S TMP_260) in (let TMP_262 \def (wadd g TMP_261 n) in 
-(let TMP_263 \def (lift h d t0) in (let TMP_264 \def (weight_map f TMP_263) 
-in (let TMP_265 \def (S TMP_264) in (let TMP_266 \def (wadd f TMP_265 n) in 
-(eq nat TMP_262 TMP_266))))))))))) in (let TMP_268 \def (S h) in (let TMP_269 
-\def (lift TMP_268 d t0) in (let TMP_270 \def (weight_map g TMP_269) in (let 
-TMP_271 \def (lift h d t0) in (let TMP_272 \def (weight_map f TMP_271) in 
-(let TMP_273 \def (lift h d t0) in (let TMP_274 \def (weight_map f TMP_273) 
-in (let TMP_275 \def (S h) in (let TMP_276 \def (lift TMP_275 d t0) in (let 
-TMP_277 \def (weight_map g TMP_276) in (let TMP_278 \def (H h d f g H1 H2 H3) 
-in (let TMP_279 \def (sym_eq nat TMP_274 TMP_277 TMP_278) in (let TMP_280 
-\def (f_equal nat nat S TMP_270 TMP_272 TMP_279) in (eq_ind_r nat O TMP_267 
-TMP_280 m H5)))))))))))))))) in (let TMP_308 \def (\lambda (H5: (ex2 nat 
-(\lambda (m0: nat).(eq nat m (S m0))) (\lambda (m0: nat).(lt m0 d)))).(let 
-TMP_283 \def (\lambda (m0: nat).(let TMP_282 \def (S m0) in (eq nat m 
-TMP_282))) in (let TMP_284 \def (\lambda (m0: nat).(lt m0 d)) in (let TMP_285 
-\def (S h) in (let TMP_286 \def (lift TMP_285 d t0) in (let TMP_287 \def 
-(weight_map g TMP_286) in (let TMP_288 \def (S TMP_287) in (let TMP_289 \def 
-(wadd g TMP_288 m) in (let TMP_290 \def (lift h d t0) in (let TMP_291 \def 
-(weight_map f TMP_290) in (let TMP_292 \def (S TMP_291) in (let TMP_293 \def 
-(wadd f TMP_292 m) in (let TMP_294 \def (eq nat TMP_289 TMP_293) in (let 
-TMP_307 \def (\lambda (x: nat).(\lambda (H6: (eq nat m (S x))).(\lambda (H7: 
-(lt x d)).(let TMP_295 \def (S x) in (let TMP_305 \def (\lambda (n: nat).(let 
-TMP_296 \def (S h) in (let TMP_297 \def (lift TMP_296 d t0) in (let TMP_298 
-\def (weight_map g TMP_297) in (let TMP_299 \def (S TMP_298) in (let TMP_300 
-\def (wadd g TMP_299 n) in (let TMP_301 \def (lift h d t0) in (let TMP_302 
-\def (weight_map f TMP_301) in (let TMP_303 \def (S TMP_302) in (let TMP_304 
-\def (wadd f TMP_303 n) in (eq nat TMP_300 TMP_304))))))))))) in (let TMP_306 
-\def (H1 x H7) in (eq_ind_r nat TMP_295 TMP_305 TMP_306 m H6))))))) in 
-(ex2_ind nat TMP_283 TMP_284 TMP_294 TMP_307 H5))))))))))))))) in (let 
-TMP_309 \def (lt_gen_xS m d H4) in (or_ind TMP_243 TMP_247 TMP_257 TMP_281 
-TMP_308 TMP_309)))))))))))))))))))) in (let TMP_330 \def (\lambda (m: 
-nat).(\lambda (H4: (le (S d) m)).(let TMP_312 \def (\lambda (n: nat).(let 
-TMP_311 \def (S n) in (eq nat m TMP_311))) in (let TMP_313 \def (\lambda (n: 
-nat).(le d n)) in (let TMP_314 \def (g m) in (let TMP_315 \def (lift h d t0) 
-in (let TMP_316 \def (weight_map f TMP_315) in (let TMP_317 \def (S TMP_316) 
-in (let TMP_318 \def (wadd f TMP_317 m) in (let TMP_319 \def (eq nat TMP_314 
-TMP_318) in (let TMP_328 \def (\lambda (x: nat).(\lambda (H5: (eq nat m (S 
-x))).(\lambda (H6: (le d x)).(let TMP_320 \def (S x) in (let TMP_326 \def 
-(\lambda (n: nat).(let TMP_321 \def (g n) in (let TMP_322 \def (lift h d t0) 
-in (let TMP_323 \def (weight_map f TMP_322) in (let TMP_324 \def (S TMP_323) 
-in (let TMP_325 \def (wadd f TMP_324 n) in (eq nat TMP_321 TMP_325))))))) in 
-(let TMP_327 \def (H3 x H6) in (eq_ind_r nat TMP_320 TMP_326 TMP_327 m 
-H5))))))) in (let TMP_329 \def (le_gen_S d m H4) in (ex2_ind nat TMP_312 
-TMP_313 TMP_319 TMP_328 TMP_329))))))))))))) in (let TMP_331 \def (H0 h 
-TMP_233 TMP_237 TMP_242 TMP_310 H2 TMP_330) in (let TMP_332 \def (f_equal2 
-nat nat nat plus TMP_212 TMP_215 TMP_222 TMP_231 TMP_232 TMP_331) in (let 
-TMP_333 \def (f_equal nat nat S TMP_197 TMP_210 TMP_332) in (let TMP_334 \def 
-(lift h d t0) in (let TMP_335 \def (weight_map f TMP_334) in (let TMP_336 
-\def (wadd f O) in (let TMP_337 \def (S d) in (let TMP_338 \def (lift h 
-TMP_337 t1) in (let TMP_339 \def (weight_map TMP_336 TMP_338) in (let TMP_340 
-\def (plus TMP_335 TMP_339) in (let TMP_341 \def (S h) in (let TMP_342 \def 
-(lift TMP_341 d t0) in (let TMP_343 \def (weight_map g TMP_342) in (let 
-TMP_344 \def (wadd g O) in (let TMP_345 \def (S h) in (let TMP_346 \def (S d) 
-in (let TMP_347 \def (lift TMP_345 TMP_346 t1) in (let TMP_348 \def 
-(weight_map TMP_344 TMP_347) in (let TMP_349 \def (plus TMP_343 TMP_348) in 
-(let TMP_350 \def (lift h d t0) in (let TMP_351 \def (weight_map f TMP_350) 
-in (let TMP_352 \def (S h) in (let TMP_353 \def (lift TMP_352 d t0) in (let 
-TMP_354 \def (weight_map g TMP_353) in (let TMP_355 \def (wadd f O) in (let 
-TMP_356 \def (S d) in (let TMP_357 \def (lift h TMP_356 t1) in (let TMP_358 
-\def (weight_map TMP_355 TMP_357) in (let TMP_359 \def (wadd g O) in (let 
-TMP_360 \def (S h) in (let TMP_361 \def (S d) in (let TMP_362 \def (lift 
-TMP_360 TMP_361 t1) in (let TMP_363 \def (weight_map TMP_359 TMP_362) in (let 
-TMP_364 \def (H h d f g H1 H2 H3) in (let TMP_365 \def (S d) in (let TMP_366 
-\def (wadd f O) in (let TMP_367 \def (wadd g O) in (let TMP_395 \def (\lambda 
-(m: nat).(\lambda (H4: (lt m (S d))).(let TMP_368 \def (eq nat m O) in (let 
-TMP_370 \def (\lambda (m0: nat).(let TMP_369 \def (S m0) in (eq nat m 
-TMP_369))) in (let TMP_371 \def (\lambda (m0: nat).(lt m0 d)) in (let TMP_372 
-\def (ex2 nat TMP_370 TMP_371) in (let TMP_373 \def (wadd g O m) in (let 
-TMP_374 \def (wadd f O m) in (let TMP_375 \def (eq nat TMP_373 TMP_374) in 
-(let TMP_380 \def (\lambda (H5: (eq nat m O)).(let TMP_378 \def (\lambda (n: 
-nat).(let TMP_376 \def (wadd g O n) in (let TMP_377 \def (wadd f O n) in (eq 
-nat TMP_376 TMP_377)))) in (let TMP_379 \def (refl_equal nat O) in (eq_ind_r 
-nat O TMP_378 TMP_379 m H5)))) in (let TMP_393 \def (\lambda (H5: (ex2 nat 
-(\lambda (m0: nat).(eq nat m (S m0))) (\lambda (m0: nat).(lt m0 d)))).(let 
-TMP_382 \def (\lambda (m0: nat).(let TMP_381 \def (S m0) in (eq nat m 
-TMP_381))) in (let TMP_383 \def (\lambda (m0: nat).(lt m0 d)) in (let TMP_384 
-\def (wadd g O m) in (let TMP_385 \def (wadd f O m) in (let TMP_386 \def (eq 
-nat TMP_384 TMP_385) in (let TMP_392 \def (\lambda (x: nat).(\lambda (H6: (eq 
-nat m (S x))).(\lambda (H7: (lt x d)).(let TMP_387 \def (S x) in (let TMP_390 
-\def (\lambda (n: nat).(let TMP_388 \def (wadd g O n) in (let TMP_389 \def 
-(wadd f O n) in (eq nat TMP_388 TMP_389)))) in (let TMP_391 \def (H1 x H7) in 
-(eq_ind_r nat TMP_387 TMP_390 TMP_391 m H6))))))) in (ex2_ind nat TMP_382 
-TMP_383 TMP_386 TMP_392 H5)))))))) in (let TMP_394 \def (lt_gen_xS m d H4) in 
-(or_ind TMP_368 TMP_372 TMP_375 TMP_380 TMP_393 TMP_394))))))))))))) in (let 
-TMP_409 \def (\lambda (m: nat).(\lambda (H4: (le (S d) m)).(let TMP_397 \def 
-(\lambda (n: nat).(let TMP_396 \def (S n) in (eq nat m TMP_396))) in (let 
-TMP_398 \def (\lambda (n: nat).(le d n)) in (let TMP_399 \def (g m) in (let 
-TMP_400 \def (wadd f O m) in (let TMP_401 \def (eq nat TMP_399 TMP_400) in 
-(let TMP_407 \def (\lambda (x: nat).(\lambda (H5: (eq nat m (S x))).(\lambda 
-(H6: (le d x)).(let TMP_402 \def (S x) in (let TMP_405 \def (\lambda (n: 
-nat).(let TMP_403 \def (g n) in (let TMP_404 \def (wadd f O n) in (eq nat 
-TMP_403 TMP_404)))) in (let TMP_406 \def (H3 x H6) in (eq_ind_r nat TMP_402 
-TMP_405 TMP_406 m H5))))))) in (let TMP_408 \def (le_gen_S d m H4) in 
-(ex2_ind nat TMP_397 TMP_398 TMP_401 TMP_407 TMP_408)))))))))) in (let 
-TMP_410 \def (H0 h TMP_365 TMP_366 TMP_367 TMP_395 H2 TMP_409) in (let 
-TMP_411 \def (f_equal2 nat nat nat plus TMP_351 TMP_354 TMP_358 TMP_363 
-TMP_364 TMP_410) in (let TMP_412 \def (f_equal nat nat S TMP_340 TMP_349 
-TMP_411) in (let TMP_413 \def (lift h d t0) in (let TMP_414 \def (weight_map 
-f TMP_413) in (let TMP_415 \def (wadd f O) in (let TMP_416 \def (S d) in (let 
-TMP_417 \def (lift h TMP_416 t1) in (let TMP_418 \def (weight_map TMP_415 
-TMP_417) in (let TMP_419 \def (plus TMP_414 TMP_418) in (let TMP_420 \def (S 
-h) in (let TMP_421 \def (lift TMP_420 d t0) in (let TMP_422 \def (weight_map 
-g TMP_421) in (let TMP_423 \def (wadd g O) in (let TMP_424 \def (S h) in (let 
-TMP_425 \def (S d) in (let TMP_426 \def (lift TMP_424 TMP_425 t1) in (let 
-TMP_427 \def (weight_map TMP_423 TMP_426) in (let TMP_428 \def (plus TMP_422 
-TMP_427) in (let TMP_429 \def (lift h d t0) in (let TMP_430 \def (weight_map 
-f TMP_429) in (let TMP_431 \def (S h) in (let TMP_432 \def (lift TMP_431 d 
-t0) in (let TMP_433 \def (weight_map g TMP_432) in (let TMP_434 \def (wadd f 
-O) in (let TMP_435 \def (S d) in (let TMP_436 \def (lift h TMP_435 t1) in 
-(let TMP_437 \def (weight_map TMP_434 TMP_436) in (let TMP_438 \def (wadd g 
-O) in (let TMP_439 \def (S h) in (let TMP_440 \def (S d) in (let TMP_441 \def 
-(lift TMP_439 TMP_440 t1) in (let TMP_442 \def (weight_map TMP_438 TMP_441) 
-in (let TMP_443 \def (H h d f g H1 H2 H3) in (let TMP_444 \def (S d) in (let 
-TMP_445 \def (wadd f O) in (let TMP_446 \def (wadd g O) in (let TMP_474 \def 
-(\lambda (m: nat).(\lambda (H4: (lt m (S d))).(let TMP_447 \def (eq nat m O) 
-in (let TMP_449 \def (\lambda (m0: nat).(let TMP_448 \def (S m0) in (eq nat m 
-TMP_448))) in (let TMP_450 \def (\lambda (m0: nat).(lt m0 d)) in (let TMP_451 
-\def (ex2 nat TMP_449 TMP_450) in (let TMP_452 \def (wadd g O m) in (let 
-TMP_453 \def (wadd f O m) in (let TMP_454 \def (eq nat TMP_452 TMP_453) in 
-(let TMP_459 \def (\lambda (H5: (eq nat m O)).(let TMP_457 \def (\lambda (n: 
-nat).(let TMP_455 \def (wadd g O n) in (let TMP_456 \def (wadd f O n) in (eq 
-nat TMP_455 TMP_456)))) in (let TMP_458 \def (refl_equal nat O) in (eq_ind_r 
-nat O TMP_457 TMP_458 m H5)))) in (let TMP_472 \def (\lambda (H5: (ex2 nat 
-(\lambda (m0: nat).(eq nat m (S m0))) (\lambda (m0: nat).(lt m0 d)))).(let 
-TMP_461 \def (\lambda (m0: nat).(let TMP_460 \def (S m0) in (eq nat m 
-TMP_460))) in (let TMP_462 \def (\lambda (m0: nat).(lt m0 d)) in (let TMP_463 
-\def (wadd g O m) in (let TMP_464 \def (wadd f O m) in (let TMP_465 \def (eq 
-nat TMP_463 TMP_464) in (let TMP_471 \def (\lambda (x: nat).(\lambda (H6: (eq 
-nat m (S x))).(\lambda (H7: (lt x d)).(let TMP_466 \def (S x) in (let TMP_469 
-\def (\lambda (n: nat).(let TMP_467 \def (wadd g O n) in (let TMP_468 \def 
-(wadd f O n) in (eq nat TMP_467 TMP_468)))) in (let TMP_470 \def (H1 x H7) in 
-(eq_ind_r nat TMP_466 TMP_469 TMP_470 m H6))))))) in (ex2_ind nat TMP_461 
-TMP_462 TMP_465 TMP_471 H5)))))))) in (let TMP_473 \def (lt_gen_xS m d H4) in 
-(or_ind TMP_447 TMP_451 TMP_454 TMP_459 TMP_472 TMP_473))))))))))))) in (let 
-TMP_488 \def (\lambda (m: nat).(\lambda (H4: (le (S d) m)).(let TMP_476 \def 
-(\lambda (n: nat).(let TMP_475 \def (S n) in (eq nat m TMP_475))) in (let 
-TMP_477 \def (\lambda (n: nat).(le d n)) in (let TMP_478 \def (g m) in (let 
-TMP_479 \def (wadd f O m) in (let TMP_480 \def (eq nat TMP_478 TMP_479) in 
-(let TMP_486 \def (\lambda (x: nat).(\lambda (H5: (eq nat m (S x))).(\lambda 
-(H6: (le d x)).(let TMP_481 \def (S x) in (let TMP_484 \def (\lambda (n: 
-nat).(let TMP_482 \def (g n) in (let TMP_483 \def (wadd f O n) in (eq nat 
-TMP_482 TMP_483)))) in (let TMP_485 \def (H3 x H6) in (eq_ind_r nat TMP_481 
-TMP_484 TMP_485 m H5))))))) in (let TMP_487 \def (le_gen_S d m H4) in 
-(ex2_ind nat TMP_476 TMP_477 TMP_480 TMP_486 TMP_487)))))))))) in (let 
-TMP_489 \def (H0 h TMP_444 TMP_445 TMP_446 TMP_474 H2 TMP_488) in (let 
-TMP_490 \def (f_equal2 nat nat nat plus TMP_430 TMP_433 TMP_437 TMP_442 
-TMP_443 TMP_489) in (let TMP_491 \def (f_equal nat nat S TMP_419 TMP_428 
-TMP_490) in (let TMP_492 \def (B_ind TMP_187 TMP_333 TMP_412 TMP_491 b) in 
-(let TMP_493 \def (S h) in (let TMP_494 \def (Bind b) in (let TMP_495 \def 
-(THead TMP_494 t0 t1) in (let TMP_496 \def (lift TMP_493 d TMP_495) in (let 
-TMP_497 \def (Bind b) in (let TMP_498 \def (S h) in (let TMP_499 \def 
-(lift_head TMP_497 t0 t1 TMP_498 d) in (let TMP_500 \def (eq_ind_r T TMP_120 
-TMP_129 TMP_492 TMP_496 TMP_499) in (let TMP_501 \def (Bind b) in (let 
-TMP_502 \def (THead TMP_501 t0 t1) in (let TMP_503 \def (lift h d TMP_502) in 
-(let TMP_504 \def (Bind b) in (let TMP_505 \def (lift_head TMP_504 t0 t1 h d) 
-in (eq_ind_r T TMP_105 TMP_112 TMP_500 TMP_503 
-TMP_505)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
-))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
-)))))))))))))))))))))) in (let TMP_576 \def (\lambda (f0: F).(let TMP_507 
-\def (Flat f0) in (let TMP_508 \def (lift h d t0) in (let TMP_509 \def (Flat 
-f0) in (let TMP_510 \def (s TMP_509 d) in (let TMP_511 \def (lift h TMP_510 
-t1) in (let TMP_512 \def (THead TMP_507 TMP_508 TMP_511) in (let TMP_519 \def 
-(\lambda (t2: T).(let TMP_513 \def (weight_map f t2) in (let TMP_514 \def (S 
-h) in (let TMP_515 \def (Flat f0) in (let TMP_516 \def (THead TMP_515 t0 t1) 
-in (let TMP_517 \def (lift TMP_514 d TMP_516) in (let TMP_518 \def 
-(weight_map g TMP_517) in (eq nat TMP_513 TMP_518)))))))) in (let TMP_520 
-\def (Flat f0) in (let TMP_521 \def (S h) in (let TMP_522 \def (lift TMP_521 
-d t0) in (let TMP_523 \def (S h) in (let TMP_524 \def (Flat f0) in (let 
-TMP_525 \def (s TMP_524 d) in (let TMP_526 \def (lift TMP_523 TMP_525 t1) in 
-(let TMP_527 \def (THead TMP_520 TMP_522 TMP_526) in (let TMP_536 \def 
-(\lambda (t2: T).(let TMP_528 \def (Flat f0) in (let TMP_529 \def (lift h d 
-t0) in (let TMP_530 \def (Flat f0) in (let TMP_531 \def (s TMP_530 d) in (let 
-TMP_532 \def (lift h TMP_531 t1) in (let TMP_533 \def (THead TMP_528 TMP_529 
-TMP_532) in (let TMP_534 \def (weight_map f TMP_533) in (let TMP_535 \def 
-(weight_map g t2) in (eq nat TMP_534 TMP_535)))))))))) in (let TMP_537 \def 
-(lift h d t0) in (let TMP_538 \def (weight_map f TMP_537) in (let TMP_539 
-\def (lift h d t1) in (let TMP_540 \def (weight_map f TMP_539) in (let 
-TMP_541 \def (plus TMP_538 TMP_540) in (let TMP_542 \def (S h) in (let 
-TMP_543 \def (lift TMP_542 d t0) in (let TMP_544 \def (weight_map g TMP_543) 
-in (let TMP_545 \def (S h) in (let TMP_546 \def (lift TMP_545 d t1) in (let 
-TMP_547 \def (weight_map g TMP_546) in (let TMP_548 \def (plus TMP_544 
-TMP_547) in (let TMP_549 \def (lift h d t0) in (let TMP_550 \def (weight_map 
-f TMP_549) in (let TMP_551 \def (S h) in (let TMP_552 \def (lift TMP_551 d 
-t0) in (let TMP_553 \def (weight_map g TMP_552) in (let TMP_554 \def (lift h 
-d t1) in (let TMP_555 \def (weight_map f TMP_554) in (let TMP_556 \def (S h) 
-in (let TMP_557 \def (lift TMP_556 d t1) in (let TMP_558 \def (weight_map g 
-TMP_557) in (let TMP_559 \def (H h d f g H1 H2 H3) in (let TMP_560 \def (H0 h 
-d f g H1 H2 H3) in (let TMP_561 \def (f_equal2 nat nat nat plus TMP_550 
-TMP_553 TMP_555 TMP_558 TMP_559 TMP_560) in (let TMP_562 \def (f_equal nat 
-nat S TMP_541 TMP_548 TMP_561) in (let TMP_563 \def (S h) in (let TMP_564 
-\def (Flat f0) in (let TMP_565 \def (THead TMP_564 t0 t1) in (let TMP_566 
-\def (lift TMP_563 d TMP_565) in (let TMP_567 \def (Flat f0) in (let TMP_568 
-\def (S h) in (let TMP_569 \def (lift_head TMP_567 t0 t1 TMP_568 d) in (let 
-TMP_570 \def (eq_ind_r T TMP_527 TMP_536 TMP_562 TMP_566 TMP_569) in (let 
-TMP_571 \def (Flat f0) in (let TMP_572 \def (THead TMP_571 t0 t1) in (let 
-TMP_573 \def (lift h d TMP_572) in (let TMP_574 \def (Flat f0) in (let 
-TMP_575 \def (lift_head TMP_574 t0 t1 h d) in (eq_ind_r T TMP_512 TMP_519 
-TMP_570 TMP_573 
-TMP_575))))))))))))))))))))))))))))))))))))))))))))))))))))))))) in (K_ind 
-TMP_99 TMP_506 TMP_576 k)))))))))))))))) in (T_ind TMP_6 TMP_11 TMP_91 
-TMP_577 t)))))).
+m)))))).(refl_equal nat (weight_map g (lift (S h) d (TSort n)))))))))))) 
+(\lambda (n: nat).(\lambda (h: nat).(\lambda (d: nat).(\lambda (f: ((nat \to 
+nat))).(\lambda (g: ((nat \to nat))).(\lambda (H: ((\forall (m: nat).((lt m 
+d) \to (eq nat (g m) (f m)))))).(\lambda (_: (eq nat (g d) w)).(\lambda (H1: 
+((\forall (m: nat).((le d m) \to (eq nat (g (S m)) (f m)))))).(lt_le_e n d 
+(eq nat (weight_map f (lift h d (TLRef n))) (weight_map g (lift (S h) d 
+(TLRef n)))) (\lambda (H2: (lt n d)).(eq_ind_r T (TLRef n) (\lambda (t0: 
+T).(eq nat (weight_map f t0) (weight_map g (lift (S h) d (TLRef n))))) 
+(eq_ind_r T (TLRef n) (\lambda (t0: T).(eq nat (weight_map f (TLRef n)) 
+(weight_map g t0))) (sym_eq nat (g n) (f n) (H n H2)) (lift (S h) d (TLRef 
+n)) (lift_lref_lt n (S h) d H2)) (lift h d (TLRef n)) (lift_lref_lt n h d 
+H2))) (\lambda (H2: (le d n)).(eq_ind_r T (TLRef (plus n h)) (\lambda (t0: 
+T).(eq nat (weight_map f t0) (weight_map g (lift (S h) d (TLRef n))))) 
+(eq_ind_r T (TLRef (plus n (S h))) (\lambda (t0: T).(eq nat (weight_map f 
+(TLRef (plus n h))) (weight_map g t0))) (eq_ind nat (S (plus n h)) (\lambda 
+(n0: nat).(eq nat (f (plus n h)) (g n0))) (sym_eq nat (g (S (plus n h))) (f 
+(plus n h)) (H1 (plus n h) (le_plus_trans d n h H2))) (plus n (S h)) 
+(plus_n_Sm n h)) (lift (S h) d (TLRef n)) (lift_lref_ge n (S h) d H2)) (lift 
+h d (TLRef n)) (lift_lref_ge n h d H2)))))))))))) (\lambda (k: K).(\lambda 
+(t0: T).(\lambda (H: ((\forall (h: nat).(\forall (d: nat).(\forall (f: ((nat 
+\to nat))).(\forall (g: ((nat \to nat))).(((\forall (m: nat).((lt m d) \to 
+(eq nat (g m) (f m))))) \to ((eq nat (g d) w) \to (((\forall (m: nat).((le d 
+m) \to (eq nat (g (S m)) (f m))))) \to (eq nat (weight_map f (lift h d t0)) 
+(weight_map g (lift (S h) d t0)))))))))))).(\lambda (t1: T).(\lambda (H0: 
+((\forall (h: nat).(\forall (d: nat).(\forall (f: ((nat \to nat))).(\forall 
+(g: ((nat \to nat))).(((\forall (m: nat).((lt m d) \to (eq nat (g m) (f 
+m))))) \to ((eq nat (g d) w) \to (((\forall (m: nat).((le d m) \to (eq nat (g 
+(S m)) (f m))))) \to (eq nat (weight_map f (lift h d t1)) (weight_map g (lift 
+(S h) d t1)))))))))))).(\lambda (h: nat).(\lambda (d: nat).(\lambda (f: ((nat 
+\to nat))).(\lambda (g: ((nat \to nat))).(\lambda (H1: ((\forall (m: 
+nat).((lt m d) \to (eq nat (g m) (f m)))))).(\lambda (H2: (eq nat (g d) 
+w)).(\lambda (H3: ((\forall (m: nat).((le d m) \to (eq nat (g (S m)) (f 
+m)))))).(K_ind (\lambda (k0: K).(eq nat (weight_map f (lift h d (THead k0 t0 
+t1))) (weight_map g (lift (S h) d (THead k0 t0 t1))))) (\lambda (b: 
+B).(eq_ind_r T (THead (Bind b) (lift h d t0) (lift h (s (Bind b) d) t1)) 
+(\lambda (t2: T).(eq nat (weight_map f t2) (weight_map g (lift (S h) d (THead 
+(Bind b) t0 t1))))) (eq_ind_r T (THead (Bind b) (lift (S h) d t0) (lift (S h) 
+(s (Bind b) d) t1)) (\lambda (t2: T).(eq nat (weight_map f (THead (Bind b) 
+(lift h d t0) (lift h (s (Bind b) d) t1))) (weight_map g t2))) (B_ind 
+(\lambda (b0: B).(eq nat (match b0 with [Abbr \Rightarrow (S (plus 
+(weight_map f (lift h d t0)) (weight_map (wadd f (S (weight_map f (lift h d 
+t0)))) (lift h (S d) t1)))) | Abst \Rightarrow (S (plus (weight_map f (lift h 
+d t0)) (weight_map (wadd f O) (lift h (S d) t1)))) | Void \Rightarrow (S 
+(plus (weight_map f (lift h d t0)) (weight_map (wadd f O) (lift h (S d) 
+t1))))]) (match b0 with [Abbr \Rightarrow (S (plus (weight_map g (lift (S h) 
+d t0)) (weight_map (wadd g (S (weight_map g (lift (S h) d t0)))) (lift (S h) 
+(S d) t1)))) | Abst \Rightarrow (S (plus (weight_map g (lift (S h) d t0)) 
+(weight_map (wadd g O) (lift (S h) (S d) t1)))) | Void \Rightarrow (S (plus 
+(weight_map g (lift (S h) d t0)) (weight_map (wadd g O) (lift (S h) (S d) 
+t1))))]))) (f_equal nat nat S (plus (weight_map f (lift h d t0)) (weight_map 
+(wadd f (S (weight_map f (lift h d t0)))) (lift h (S d) t1))) (plus 
+(weight_map g (lift (S h) d t0)) (weight_map (wadd g (S (weight_map g (lift 
+(S h) d t0)))) (lift (S h) (S d) t1))) (f_equal2 nat nat nat plus (weight_map 
+f (lift h d t0)) (weight_map g (lift (S h) d t0)) (weight_map (wadd f (S 
+(weight_map f (lift h d t0)))) (lift h (S d) t1)) (weight_map (wadd g (S 
+(weight_map g (lift (S h) d t0)))) (lift (S h) (S d) t1)) (H h d f g H1 H2 
+H3) (H0 h (S d) (wadd f (S (weight_map f (lift h d t0)))) (wadd g (S 
+(weight_map g (lift (S h) d t0)))) (\lambda (m: nat).(\lambda (H4: (lt m (S 
+d))).(or_ind (eq nat m O) (ex2 nat (\lambda (m0: nat).(eq nat m (S m0))) 
+(\lambda (m0: nat).(lt m0 d))) (eq nat (wadd g (S (weight_map g (lift (S h) d 
+t0))) m) (wadd f (S (weight_map f (lift h d t0))) m)) (\lambda (H5: (eq nat m 
+O)).(eq_ind_r nat O (\lambda (n: nat).(eq nat (wadd g (S (weight_map g (lift 
+(S h) d t0))) n) (wadd f (S (weight_map f (lift h d t0))) n))) (f_equal nat 
+nat S (weight_map g (lift (S h) d t0)) (weight_map f (lift h d t0)) (sym_eq 
+nat (weight_map f (lift h d t0)) (weight_map g (lift (S h) d t0)) (H h d f g 
+H1 H2 H3))) m H5)) (\lambda (H5: (ex2 nat (\lambda (m0: nat).(eq nat m (S 
+m0))) (\lambda (m0: nat).(lt m0 d)))).(ex2_ind nat (\lambda (m0: nat).(eq nat 
+m (S m0))) (\lambda (m0: nat).(lt m0 d)) (eq nat (wadd g (S (weight_map g 
+(lift (S h) d t0))) m) (wadd f (S (weight_map f (lift h d t0))) m)) (\lambda 
+(x: nat).(\lambda (H6: (eq nat m (S x))).(\lambda (H7: (lt x d)).(eq_ind_r 
+nat (S x) (\lambda (n: nat).(eq nat (wadd g (S (weight_map g (lift (S h) d 
+t0))) n) (wadd f (S (weight_map f (lift h d t0))) n))) (H1 x H7) m H6)))) 
+H5)) (lt_gen_xS m d H4)))) H2 (\lambda (m: nat).(\lambda (H4: (le (S d) 
+m)).(ex2_ind nat (\lambda (n: nat).(eq nat m (S n))) (\lambda (n: nat).(le d 
+n)) (eq nat (g m) (wadd f (S (weight_map f (lift h d t0))) m)) (\lambda (x: 
+nat).(\lambda (H5: (eq nat m (S x))).(\lambda (H6: (le d x)).(eq_ind_r nat (S 
+x) (\lambda (n: nat).(eq nat (g n) (wadd f (S (weight_map f (lift h d t0))) 
+n))) (H3 x H6) m H5)))) (le_gen_S d m H4))))))) (f_equal nat nat S (plus 
+(weight_map f (lift h d t0)) (weight_map (wadd f O) (lift h (S d) t1))) (plus 
+(weight_map g (lift (S h) d t0)) (weight_map (wadd g O) (lift (S h) (S d) 
+t1))) (f_equal2 nat nat nat plus (weight_map f (lift h d t0)) (weight_map g 
+(lift (S h) d t0)) (weight_map (wadd f O) (lift h (S d) t1)) (weight_map 
+(wadd g O) (lift (S h) (S d) t1)) (H h d f g H1 H2 H3) (H0 h (S d) (wadd f O) 
+(wadd g O) (\lambda (m: nat).(\lambda (H4: (lt m (S d))).(or_ind (eq nat m O) 
+(ex2 nat (\lambda (m0: nat).(eq nat m (S m0))) (\lambda (m0: nat).(lt m0 d))) 
+(eq nat (wadd g O m) (wadd f O m)) (\lambda (H5: (eq nat m O)).(eq_ind_r nat 
+O (\lambda (n: nat).(eq nat (wadd g O n) (wadd f O n))) (refl_equal nat O) m 
+H5)) (\lambda (H5: (ex2 nat (\lambda (m0: nat).(eq nat m (S m0))) (\lambda 
+(m0: nat).(lt m0 d)))).(ex2_ind nat (\lambda (m0: nat).(eq nat m (S m0))) 
+(\lambda (m0: nat).(lt m0 d)) (eq nat (wadd g O m) (wadd f O m)) (\lambda (x: 
+nat).(\lambda (H6: (eq nat m (S x))).(\lambda (H7: (lt x d)).(eq_ind_r nat (S 
+x) (\lambda (n: nat).(eq nat (wadd g O n) (wadd f O n))) (H1 x H7) m H6)))) 
+H5)) (lt_gen_xS m d H4)))) H2 (\lambda (m: nat).(\lambda (H4: (le (S d) 
+m)).(ex2_ind nat (\lambda (n: nat).(eq nat m (S n))) (\lambda (n: nat).(le d 
+n)) (eq nat (g m) (wadd f O m)) (\lambda (x: nat).(\lambda (H5: (eq nat m (S 
+x))).(\lambda (H6: (le d x)).(eq_ind_r nat (S x) (\lambda (n: nat).(eq nat (g 
+n) (wadd f O n))) (H3 x H6) m H5)))) (le_gen_S d m H4))))))) (f_equal nat nat 
+S (plus (weight_map f (lift h d t0)) (weight_map (wadd f O) (lift h (S d) 
+t1))) (plus (weight_map g (lift (S h) d t0)) (weight_map (wadd g O) (lift (S 
+h) (S d) t1))) (f_equal2 nat nat nat plus (weight_map f (lift h d t0)) 
+(weight_map g (lift (S h) d t0)) (weight_map (wadd f O) (lift h (S d) t1)) 
+(weight_map (wadd g O) (lift (S h) (S d) t1)) (H h d f g H1 H2 H3) (H0 h (S 
+d) (wadd f O) (wadd g O) (\lambda (m: nat).(\lambda (H4: (lt m (S 
+d))).(or_ind (eq nat m O) (ex2 nat (\lambda (m0: nat).(eq nat m (S m0))) 
+(\lambda (m0: nat).(lt m0 d))) (eq nat (wadd g O m) (wadd f O m)) (\lambda 
+(H5: (eq nat m O)).(eq_ind_r nat O (\lambda (n: nat).(eq nat (wadd g O n) 
+(wadd f O n))) (refl_equal nat O) m H5)) (\lambda (H5: (ex2 nat (\lambda (m0: 
+nat).(eq nat m (S m0))) (\lambda (m0: nat).(lt m0 d)))).(ex2_ind nat (\lambda 
+(m0: nat).(eq nat m (S m0))) (\lambda (m0: nat).(lt m0 d)) (eq nat (wadd g O 
+m) (wadd f O m)) (\lambda (x: nat).(\lambda (H6: (eq nat m (S x))).(\lambda 
+(H7: (lt x d)).(eq_ind_r nat (S x) (\lambda (n: nat).(eq nat (wadd g O n) 
+(wadd f O n))) (H1 x H7) m H6)))) H5)) (lt_gen_xS m d H4)))) H2 (\lambda (m: 
+nat).(\lambda (H4: (le (S d) m)).(ex2_ind nat (\lambda (n: nat).(eq nat m (S 
+n))) (\lambda (n: nat).(le d n)) (eq nat (g m) (wadd f O m)) (\lambda (x: 
+nat).(\lambda (H5: (eq nat m (S x))).(\lambda (H6: (le d x)).(eq_ind_r nat (S 
+x) (\lambda (n: nat).(eq nat (g n) (wadd f O n))) (H3 x H6) m H5)))) 
+(le_gen_S d m H4))))))) b) (lift (S h) d (THead (Bind b) t0 t1)) (lift_head 
+(Bind b) t0 t1 (S h) d)) (lift h d (THead (Bind b) t0 t1)) (lift_head (Bind 
+b) t0 t1 h d))) (\lambda (f0: F).(eq_ind_r T (THead (Flat f0) (lift h d t0) 
+(lift h (s (Flat f0) d) t1)) (\lambda (t2: T).(eq nat (weight_map f t2) 
+(weight_map g (lift (S h) d (THead (Flat f0) t0 t1))))) (eq_ind_r T (THead 
+(Flat f0) (lift (S h) d t0) (lift (S h) (s (Flat f0) d) t1)) (\lambda (t2: 
+T).(eq nat (weight_map f (THead (Flat f0) (lift h d t0) (lift h (s (Flat f0) 
+d) t1))) (weight_map g t2))) (f_equal nat nat S (plus (weight_map f (lift h d 
+t0)) (weight_map f (lift h d t1))) (plus (weight_map g (lift (S h) d t0)) 
+(weight_map g (lift (S h) d t1))) (f_equal2 nat nat nat plus (weight_map f 
+(lift h d t0)) (weight_map g (lift (S h) d t0)) (weight_map f (lift h d t1)) 
+(weight_map g (lift (S h) d t1)) (H h d f g H1 H2 H3) (H0 h d f g H1 H2 H3))) 
+(lift (S h) d (THead (Flat f0) t0 t1)) (lift_head (Flat f0) t0 t1 (S h) d)) 
+(lift h d (THead (Flat f0) t0 t1)) (lift_head (Flat f0) t0 t1 h d))) 
+k))))))))))))) t)).
 
 theorem lift_weight_add_O:
  \forall (w: nat).(\forall (t: T).(\forall (h: nat).(\forall (f: ((nat \to 
@@ -624,24 +268,17 @@ nat))).(eq nat (weight_map f (lift h O t)) (weight_map (wadd f w) (lift (S h)
 O t))))))
 \def
  \lambda (w: nat).(\lambda (t: T).(\lambda (h: nat).(\lambda (f: ((nat \to 
-nat))).(let TMP_1 \def (wadd f w O) in (let TMP_2 \def (minus TMP_1 O) in 
-(let TMP_3 \def (wadd f w) in (let TMP_7 \def (\lambda (m: nat).(\lambda (H: 
-(lt m O)).(let TMP_4 \def (wadd f w m) in (let TMP_5 \def (f m) in (let TMP_6 
-\def (eq nat TMP_4 TMP_5) in (lt_x_O m H TMP_6)))))) in (let TMP_8 \def (wadd 
-f w O) in (let TMP_9 \def (minus_n_O TMP_8) in (let TMP_11 \def (\lambda (m: 
-nat).(\lambda (_: (le O m)).(let TMP_10 \def (f m) in (refl_equal nat 
-TMP_10)))) in (lift_weight_add TMP_2 t h O f TMP_3 TMP_7 TMP_9 
-TMP_11))))))))))).
+nat))).(lift_weight_add (minus (wadd f w O) O) t h O f (wadd f w) (\lambda 
+(m: nat).(\lambda (H: (lt m O)).(lt_x_O m H (eq nat (wadd f w m) (f m))))) 
+(minus_n_O (wadd f w O)) (\lambda (m: nat).(\lambda (_: (le O m)).(refl_equal 
+nat (f m)))))))).
 
 theorem lift_tlt_dx:
  \forall (k: K).(\forall (u: T).(\forall (t: T).(\forall (h: nat).(\forall 
 (d: nat).(tlt t (THead k u (lift h d t)))))))
 \def
  \lambda (k: K).(\lambda (u: T).(\lambda (t: T).(\lambda (h: nat).(\lambda 
-(d: nat).(let TMP_1 \def (lift h d t) in (let TMP_2 \def (weight TMP_1) in 
-(let TMP_6 \def (\lambda (n: nat).(let TMP_3 \def (lift h d t) in (let TMP_4 
-\def (THead k u TMP_3) in (let TMP_5 \def (weight TMP_4) in (lt n TMP_5))))) 
-in (let TMP_7 \def (lift h d t) in (let TMP_8 \def (tlt_head_dx k u TMP_7) in 
-(let TMP_9 \def (weight t) in (let TMP_10 \def (lift_weight t h d) in (eq_ind 
-nat TMP_2 TMP_6 TMP_8 TMP_9 TMP_10)))))))))))).
+(d: nat).(eq_ind nat (weight (lift h d t)) (\lambda (n: nat).(lt n (weight 
+(THead k u (lift h d t))))) (tlt_head_dx k u (lift h d t)) (weight t) 
+(lift_weight t h d)))))).
 
index 1e1080c89c842dc0d31a89c99e3039c3788d3b34..94e6343dfa034faf5d3ef607de01c74c65329f67 100644 (file)
@@ -18,14 +18,14 @@ include "basic_1/lift/defs.ma".
 
 let rec trans (hds: PList) on hds: nat \to nat \def \lambda (i: nat).(match 
 hds with [PNil \Rightarrow i | (PCons h d hds0) \Rightarrow (let j \def 
-(trans hds0 i) in (let TMP_1 \def (blt j d) in (match TMP_1 with [tru
-\Rightarrow j | false \Rightarrow (plus j h)])))]).
+(trans hds0 i) in (match (blt j d) with [true \Rightarrow j | fals
+\Rightarrow (plus j h)]))]).
 
 let rec lift1 (hds: PList) on hds: T \to T \def \lambda (t: T).(match hds 
-with [PNil \Rightarrow t | (PCons h d hds0) \Rightarrow (let TMP_1 \def 
-(lift1 hds0 t) in (lift h d TMP_1))]).
+with [PNil \Rightarrow t | (PCons h d hds0) \Rightarrow (lift h d (lift1 hds0 
+t))]).
 
 let rec lifts1 (hds: PList) (ts: TList) on ts: TList \def match ts with [TNil 
-\Rightarrow TNil | (TCons t ts0) \Rightarrow (let TMP_1 \def (lift1 hds t) in 
-(let TMP_2 \def (lifts1 hds ts0) in (TCons TMP_1 TMP_2)))].
+\Rightarrow TNil | (TCons t ts0) \Rightarrow (TCons (lift1 hds t) (lifts1 hds 
+ts0))].
 
index 459fcb85245fc75742ae28bb5b5eea40d5b93f64..8c1489f1973e8fcf0077ddb9628f8882db14e1c8 100644 (file)
@@ -22,260 +22,106 @@ theorem lift1_lift1:
  \forall (is1: PList).(\forall (is2: PList).(\forall (t: T).(eq T (lift1 is1 
 (lift1 is2 t)) (lift1 (papp is1 is2) t))))
 \def
- \lambda (is1: PList).(let TMP_5 \def (\lambda (p: PList).(\forall (is2: 
-PList).(\forall (t: T).(let TMP_1 \def (lift1 is2 t) in (let TMP_2 \def 
-(lift1 p TMP_1) in (let TMP_3 \def (papp p is2) in (let TMP_4 \def (lift1 
-TMP_3 t) in (eq T TMP_2 TMP_4)))))))) in (let TMP_7 \def (\lambda (is2: 
-PList).(\lambda (t: T).(let TMP_6 \def (lift1 is2 t) in (refl_equal T 
-TMP_6)))) in (let TMP_15 \def (\lambda (n: nat).(\lambda (n0: nat).(\lambda 
-(p: PList).(\lambda (H: ((\forall (is2: PList).(\forall (t: T).(eq T (lift1 p 
-(lift1 is2 t)) (lift1 (papp p is2) t)))))).(\lambda (is2: PList).(\lambda (t: 
-T).(let TMP_8 \def (lift1 is2 t) in (let TMP_9 \def (lift1 p TMP_8) in (let 
-TMP_10 \def (papp p is2) in (let TMP_11 \def (lift1 TMP_10 t) in (let TMP_12 
-\def (refl_equal nat n) in (let TMP_13 \def (refl_equal nat n0) in (let 
-TMP_14 \def (H is2 t) in (f_equal3 nat nat T T lift n n n0 n0 TMP_9 TMP_11 
-TMP_12 TMP_13 TMP_14)))))))))))))) in (PList_ind TMP_5 TMP_7 TMP_15 is1)))).
+ \lambda (is1: PList).(PList_ind (\lambda (p: PList).(\forall (is2: 
+PList).(\forall (t: T).(eq T (lift1 p (lift1 is2 t)) (lift1 (papp p is2) 
+t))))) (\lambda (is2: PList).(\lambda (t: T).(refl_equal T (lift1 is2 t)))) 
+(\lambda (n: nat).(\lambda (n0: nat).(\lambda (p: PList).(\lambda (H: 
+((\forall (is2: PList).(\forall (t: T).(eq T (lift1 p (lift1 is2 t)) (lift1 
+(papp p is2) t)))))).(\lambda (is2: PList).(\lambda (t: T).(f_equal3 nat nat 
+T T lift n n n0 n0 (lift1 p (lift1 is2 t)) (lift1 (papp p is2) t) (refl_equal 
+nat n) (refl_equal nat n0) (H is2 t)))))))) is1).
 
 theorem lift1_xhg:
  \forall (hds: PList).(\forall (t: T).(eq T (lift1 (Ss hds) (lift (S O) O t)) 
 (lift (S O) O (lift1 hds t))))
 \def
- \lambda (hds: PList).(let TMP_8 \def (\lambda (p: PList).(\forall (t: 
-T).(let TMP_1 \def (Ss p) in (let TMP_2 \def (S O) in (let TMP_3 \def (lift 
-TMP_2 O t) in (let TMP_4 \def (lift1 TMP_1 TMP_3) in (let TMP_5 \def (S O) in 
-(let TMP_6 \def (lift1 p t) in (let TMP_7 \def (lift TMP_5 O TMP_6) in (eq T 
-TMP_4 TMP_7)))))))))) in (let TMP_11 \def (\lambda (t: T).(let TMP_9 \def (S 
-O) in (let TMP_10 \def (lift TMP_9 O t) in (refl_equal T TMP_10)))) in (let 
-TMP_67 \def (\lambda (h: nat).(\lambda (d: nat).(\lambda (p: PList).(\lambda 
-(H: ((\forall (t: T).(eq T (lift1 (Ss p) (lift (S O) O t)) (lift (S O) O 
-(lift1 p t)))))).(\lambda (t: T).(let TMP_12 \def (S O) in (let TMP_13 \def 
-(lift1 p t) in (let TMP_14 \def (lift TMP_12 O TMP_13) in (let TMP_21 \def 
-(\lambda (t0: T).(let TMP_15 \def (S d) in (let TMP_16 \def (lift h TMP_15 
-t0) in (let TMP_17 \def (S O) in (let TMP_18 \def (lift1 p t) in (let TMP_19 
-\def (lift h d TMP_18) in (let TMP_20 \def (lift TMP_17 O TMP_19) in (eq T 
-TMP_16 TMP_20)))))))) in (let TMP_22 \def (S O) in (let TMP_23 \def (plus 
-TMP_22 d) in (let TMP_32 \def (\lambda (n: nat).(let TMP_24 \def (S O) in 
-(let TMP_25 \def (lift1 p t) in (let TMP_26 \def (lift TMP_24 O TMP_25) in 
-(let TMP_27 \def (lift h n TMP_26) in (let TMP_28 \def (S O) in (let TMP_29 
-\def (lift1 p t) in (let TMP_30 \def (lift h d TMP_29) in (let TMP_31 \def 
-(lift TMP_28 O TMP_30) in (eq T TMP_27 TMP_31)))))))))) in (let TMP_33 \def 
-(S O) in (let TMP_34 \def (lift1 p t) in (let TMP_35 \def (lift h d TMP_34) 
-in (let TMP_36 \def (lift TMP_33 O TMP_35) in (let TMP_41 \def (\lambda (t0: 
-T).(let TMP_37 \def (S O) in (let TMP_38 \def (lift1 p t) in (let TMP_39 \def 
-(lift h d TMP_38) in (let TMP_40 \def (lift TMP_37 O TMP_39) in (eq T t0 
-TMP_40)))))) in (let TMP_42 \def (S O) in (let TMP_43 \def (lift1 p t) in 
-(let TMP_44 \def (lift h d TMP_43) in (let TMP_45 \def (lift TMP_42 O TMP_44) 
-in (let TMP_46 \def (refl_equal T TMP_45) in (let TMP_47 \def (S O) in (let 
-TMP_48 \def (plus TMP_47 d) in (let TMP_49 \def (S O) in (let TMP_50 \def 
-(lift1 p t) in (let TMP_51 \def (lift TMP_49 O TMP_50) in (let TMP_52 \def 
-(lift h TMP_48 TMP_51) in (let TMP_53 \def (lift1 p t) in (let TMP_54 \def (S 
-O) in (let TMP_55 \def (le_O_n d) in (let TMP_56 \def (lift_d TMP_53 h TMP_54 
-d O TMP_55) in (let TMP_57 \def (eq_ind_r T TMP_36 TMP_41 TMP_46 TMP_52 
-TMP_56) in (let TMP_58 \def (S d) in (let TMP_59 \def (S d) in (let TMP_60 
-\def (refl_equal nat TMP_59) in (let TMP_61 \def (eq_ind nat TMP_23 TMP_32 
-TMP_57 TMP_58 TMP_60) in (let TMP_62 \def (Ss p) in (let TMP_63 \def (S O) in 
-(let TMP_64 \def (lift TMP_63 O t) in (let TMP_65 \def (lift1 TMP_62 TMP_64) 
-in (let TMP_66 \def (H t) in (eq_ind_r T TMP_14 TMP_21 TMP_61 TMP_65 
-TMP_66))))))))))))))))))))))))))))))))))))))))))) in (PList_ind TMP_8 TMP_11 
-TMP_67 hds)))).
+ \lambda (hds: PList).(PList_ind (\lambda (p: PList).(\forall (t: T).(eq T 
+(lift1 (Ss p) (lift (S O) O t)) (lift (S O) O (lift1 p t))))) (\lambda (t: 
+T).(refl_equal T (lift (S O) O t))) (\lambda (h: nat).(\lambda (d: 
+nat).(\lambda (p: PList).(\lambda (H: ((\forall (t: T).(eq T (lift1 (Ss p) 
+(lift (S O) O t)) (lift (S O) O (lift1 p t)))))).(\lambda (t: T).(eq_ind_r T 
+(lift (S O) O (lift1 p t)) (\lambda (t0: T).(eq T (lift h (S d) t0) (lift (S 
+O) O (lift h d (lift1 p t))))) (eq_ind nat (plus (S O) d) (\lambda (n: 
+nat).(eq T (lift h n (lift (S O) O (lift1 p t))) (lift (S O) O (lift h d 
+(lift1 p t))))) (eq_ind_r T (lift (S O) O (lift h d (lift1 p t))) (\lambda 
+(t0: T).(eq T t0 (lift (S O) O (lift h d (lift1 p t))))) (refl_equal T (lift 
+(S O) O (lift h d (lift1 p t)))) (lift h (plus (S O) d) (lift (S O) O (lift1 
+p t))) (lift_d (lift1 p t) h (S O) d O (le_O_n d))) (S d) (refl_equal nat (S 
+d))) (lift1 (Ss p) (lift (S O) O t)) (H t))))))) hds).
 
 theorem lifts1_xhg:
  \forall (hds: PList).(\forall (ts: TList).(eq TList (lifts1 (Ss hds) (lifts 
 (S O) O ts)) (lifts (S O) O (lifts1 hds ts))))
 \def
- \lambda (hds: PList).(\lambda (ts: TList).(let TMP_8 \def (\lambda (t: 
-TList).(let TMP_1 \def (Ss hds) in (let TMP_2 \def (S O) in (let TMP_3 \def 
-(lifts TMP_2 O t) in (let TMP_4 \def (lifts1 TMP_1 TMP_3) in (let TMP_5 \def 
-(S O) in (let TMP_6 \def (lifts1 hds t) in (let TMP_7 \def (lifts TMP_5 O 
-TMP_6) in (eq TList TMP_4 TMP_7))))))))) in (let TMP_9 \def (refl_equal TList 
-TNil) in (let TMP_59 \def (\lambda (t: T).(\lambda (t0: TList).(\lambda (H: 
-(eq TList (lifts1 (Ss hds) (lifts (S O) O t0)) (lifts (S O) O (lifts1 hds 
-t0)))).(let TMP_10 \def (S O) in (let TMP_11 \def (lift1 hds t) in (let 
-TMP_12 \def (lift TMP_10 O TMP_11) in (let TMP_25 \def (\lambda (t1: T).(let 
-TMP_13 \def (Ss hds) in (let TMP_14 \def (S O) in (let TMP_15 \def (lifts 
-TMP_14 O t0) in (let TMP_16 \def (lifts1 TMP_13 TMP_15) in (let TMP_17 \def 
-(TCons t1 TMP_16) in (let TMP_18 \def (S O) in (let TMP_19 \def (lift1 hds t) 
-in (let TMP_20 \def (lift TMP_18 O TMP_19) in (let TMP_21 \def (S O) in (let 
-TMP_22 \def (lifts1 hds t0) in (let TMP_23 \def (lifts TMP_21 O TMP_22) in 
-(let TMP_24 \def (TCons TMP_20 TMP_23) in (eq TList TMP_17 
-TMP_24)))))))))))))) in (let TMP_26 \def (S O) in (let TMP_27 \def (lifts1 
-hds t0) in (let TMP_28 \def (lifts TMP_26 O TMP_27) in (let TMP_40 \def 
-(\lambda (t1: TList).(let TMP_29 \def (S O) in (let TMP_30 \def (lift1 hds t) 
-in (let TMP_31 \def (lift TMP_29 O TMP_30) in (let TMP_32 \def (TCons TMP_31 
-t1) in (let TMP_33 \def (S O) in (let TMP_34 \def (lift1 hds t) in (let 
-TMP_35 \def (lift TMP_33 O TMP_34) in (let TMP_36 \def (S O) in (let TMP_37 
-\def (lifts1 hds t0) in (let TMP_38 \def (lifts TMP_36 O TMP_37) in (let 
-TMP_39 \def (TCons TMP_35 TMP_38) in (eq TList TMP_32 TMP_39))))))))))))) in 
-(let TMP_41 \def (S O) in (let TMP_42 \def (lift1 hds t) in (let TMP_43 \def 
-(lift TMP_41 O TMP_42) in (let TMP_44 \def (S O) in (let TMP_45 \def (lifts1 
-hds t0) in (let TMP_46 \def (lifts TMP_44 O TMP_45) in (let TMP_47 \def 
-(TCons TMP_43 TMP_46) in (let TMP_48 \def (refl_equal TList TMP_47) in (let 
-TMP_49 \def (Ss hds) in (let TMP_50 \def (S O) in (let TMP_51 \def (lifts 
-TMP_50 O t0) in (let TMP_52 \def (lifts1 TMP_49 TMP_51) in (let TMP_53 \def 
-(eq_ind_r TList TMP_28 TMP_40 TMP_48 TMP_52 H) in (let TMP_54 \def (Ss hds) 
-in (let TMP_55 \def (S O) in (let TMP_56 \def (lift TMP_55 O t) in (let 
-TMP_57 \def (lift1 TMP_54 TMP_56) in (let TMP_58 \def (lift1_xhg hds t) in 
-(eq_ind_r T TMP_12 TMP_25 TMP_53 TMP_57 TMP_58)))))))))))))))))))))))))))))) 
-in (TList_ind TMP_8 TMP_9 TMP_59 ts))))).
+ \lambda (hds: PList).(\lambda (ts: TList).(TList_ind (\lambda (t: TList).(eq 
+TList (lifts1 (Ss hds) (lifts (S O) O t)) (lifts (S O) O (lifts1 hds t)))) 
+(refl_equal TList TNil) (\lambda (t: T).(\lambda (t0: TList).(\lambda (H: (eq 
+TList (lifts1 (Ss hds) (lifts (S O) O t0)) (lifts (S O) O (lifts1 hds 
+t0)))).(eq_ind_r T (lift (S O) O (lift1 hds t)) (\lambda (t1: T).(eq TList 
+(TCons t1 (lifts1 (Ss hds) (lifts (S O) O t0))) (TCons (lift (S O) O (lift1 
+hds t)) (lifts (S O) O (lifts1 hds t0))))) (eq_ind_r TList (lifts (S O) O 
+(lifts1 hds t0)) (\lambda (t1: TList).(eq TList (TCons (lift (S O) O (lift1 
+hds t)) t1) (TCons (lift (S O) O (lift1 hds t)) (lifts (S O) O (lifts1 hds 
+t0))))) (refl_equal TList (TCons (lift (S O) O (lift1 hds t)) (lifts (S O) O 
+(lifts1 hds t0)))) (lifts1 (Ss hds) (lifts (S O) O t0)) H) (lift1 (Ss hds) 
+(lift (S O) O t)) (lift1_xhg hds t))))) ts)).
 
 theorem lift1_free:
  \forall (hds: PList).(\forall (i: nat).(\forall (t: T).(eq T (lift1 hds 
 (lift (S i) O t)) (lift (S (trans hds i)) O (lift1 (ptrans hds i) t)))))
 \def
- \lambda (hds: PList).(let TMP_9 \def (\lambda (p: PList).(\forall (i: 
-nat).(\forall (t: T).(let TMP_1 \def (S i) in (let TMP_2 \def (lift TMP_1 O 
-t) in (let TMP_3 \def (lift1 p TMP_2) in (let TMP_4 \def (trans p i) in (let 
-TMP_5 \def (S TMP_4) in (let TMP_6 \def (ptrans p i) in (let TMP_7 \def 
-(lift1 TMP_6 t) in (let TMP_8 \def (lift TMP_5 O TMP_7) in (eq T TMP_3 
-TMP_8)))))))))))) in (let TMP_12 \def (\lambda (i: nat).(\lambda (t: T).(let 
-TMP_10 \def (S i) in (let TMP_11 \def (lift TMP_10 O t) in (refl_equal T 
-TMP_11))))) in (let TMP_262 \def (\lambda (h: nat).(\lambda (d: nat).(\lambda 
-(hds0: PList).(\lambda (H: ((\forall (i: nat).(\forall (t: T).(eq T (lift1 
-hds0 (lift (S i) O t)) (lift (S (trans hds0 i)) O (lift1 (ptrans hds0 i) 
-t))))))).(\lambda (i: nat).(\lambda (t: T).(let TMP_13 \def (trans hds0 i) in 
-(let TMP_14 \def (S TMP_13) in (let TMP_15 \def (ptrans hds0 i) in (let 
-TMP_16 \def (lift1 TMP_15 t) in (let TMP_17 \def (lift TMP_14 O TMP_16) in 
-(let TMP_33 \def (\lambda (t0: T).(let TMP_18 \def (lift h d t0) in (let 
-TMP_19 \def (trans hds0 i) in (let TMP_20 \def (blt TMP_19 d) in (let TMP_22 
-\def (match TMP_20 with [true \Rightarrow (trans hds0 i) | false \Rightarrow 
-(let TMP_21 \def (trans hds0 i) in (plus TMP_21 h))]) in (let TMP_23 \def (S 
-TMP_22) in (let TMP_24 \def (trans hds0 i) in (let TMP_25 \def (blt TMP_24 d) 
-in (let TMP_30 \def (match TMP_25 with [true \Rightarrow (let TMP_26 \def 
-(trans hds0 i) in (let TMP_27 \def (S TMP_26) in (let TMP_28 \def (minus d 
-TMP_27) in (let TMP_29 \def (ptrans hds0 i) in (PCons h TMP_28 TMP_29))))) | 
-false \Rightarrow (ptrans hds0 i)]) in (let TMP_31 \def (lift1 TMP_30 t) in 
-(let TMP_32 \def (lift TMP_23 O TMP_31) in (eq T TMP_18 TMP_32)))))))))))) in 
-(let TMP_34 \def (trans hds0 i) in (let TMP_35 \def (blt TMP_34 d) in (let 
-TMP_52 \def (\lambda (b: bool).(let TMP_36 \def (trans hds0 i) in (let TMP_37 
-\def (S TMP_36) in (let TMP_38 \def (ptrans hds0 i) in (let TMP_39 \def 
-(lift1 TMP_38 t) in (let TMP_40 \def (lift TMP_37 O TMP_39) in (let TMP_41 
-\def (lift h d TMP_40) in (let TMP_43 \def (match b with [true \Rightarrow 
-(trans hds0 i) | false \Rightarrow (let TMP_42 \def (trans hds0 i) in (plus 
-TMP_42 h))]) in (let TMP_44 \def (S TMP_43) in (let TMP_49 \def (match b with 
-[true \Rightarrow (let TMP_45 \def (trans hds0 i) in (let TMP_46 \def (S 
-TMP_45) in (let TMP_47 \def (minus d TMP_46) in (let TMP_48 \def (ptrans hds0 
-i) in (PCons h TMP_47 TMP_48))))) | false \Rightarrow (ptrans hds0 i)]) in 
-(let TMP_50 \def (lift1 TMP_49 t) in (let TMP_51 \def (lift TMP_44 O TMP_50) 
-in (eq T TMP_41 TMP_51))))))))))))) in (let TMP_256 \def (\lambda (x_x: 
-bool).(let TMP_69 \def (\lambda (b: bool).((eq bool (blt (trans hds0 i) d) b) 
-\to (let TMP_53 \def (trans hds0 i) in (let TMP_54 \def (S TMP_53) in (let 
-TMP_55 \def (ptrans hds0 i) in (let TMP_56 \def (lift1 TMP_55 t) in (let 
-TMP_57 \def (lift TMP_54 O TMP_56) in (let TMP_58 \def (lift h d TMP_57) in 
-(let TMP_60 \def (match b with [true \Rightarrow (trans hds0 i) | false 
-\Rightarrow (let TMP_59 \def (trans hds0 i) in (plus TMP_59 h))]) in (let 
-TMP_61 \def (S TMP_60) in (let TMP_66 \def (match b with [true \Rightarrow 
-(let TMP_62 \def (trans hds0 i) in (let TMP_63 \def (S TMP_62) in (let TMP_64 
-\def (minus d TMP_63) in (let TMP_65 \def (ptrans hds0 i) in (PCons h TMP_64 
-TMP_65))))) | false \Rightarrow (ptrans hds0 i)]) in (let TMP_67 \def (lift1 
-TMP_66 t) in (let TMP_68 \def (lift TMP_61 O TMP_67) in (eq T TMP_58 
-TMP_68)))))))))))))) in (let TMP_159 \def (\lambda (H0: (eq bool (blt (trans 
-hds0 i) d) true)).(let TMP_70 \def (trans hds0 i) in (let TMP_71 \def (S 
-TMP_70) in (let TMP_72 \def (trans hds0 i) in (let TMP_73 \def (S TMP_72) in 
-(let TMP_74 \def (minus d TMP_73) in (let TMP_75 \def (plus TMP_71 TMP_74) in 
-(let TMP_91 \def (\lambda (n: nat).(let TMP_76 \def (trans hds0 i) in (let 
-TMP_77 \def (S TMP_76) in (let TMP_78 \def (ptrans hds0 i) in (let TMP_79 
-\def (lift1 TMP_78 t) in (let TMP_80 \def (lift TMP_77 O TMP_79) in (let 
-TMP_81 \def (lift h n TMP_80) in (let TMP_82 \def (trans hds0 i) in (let 
-TMP_83 \def (S TMP_82) in (let TMP_84 \def (trans hds0 i) in (let TMP_85 \def 
-(S TMP_84) in (let TMP_86 \def (minus d TMP_85) in (let TMP_87 \def (ptrans 
-hds0 i) in (let TMP_88 \def (PCons h TMP_86 TMP_87) in (let TMP_89 \def 
-(lift1 TMP_88 t) in (let TMP_90 \def (lift TMP_83 O TMP_89) in (eq T TMP_81 
-TMP_90))))))))))))))))) in (let TMP_92 \def (trans hds0 i) in (let TMP_93 
-\def (S TMP_92) in (let TMP_94 \def (trans hds0 i) in (let TMP_95 \def (S 
-TMP_94) in (let TMP_96 \def (minus d TMP_95) in (let TMP_97 \def (ptrans hds0 
-i) in (let TMP_98 \def (lift1 TMP_97 t) in (let TMP_99 \def (lift h TMP_96 
-TMP_98) in (let TMP_100 \def (lift TMP_93 O TMP_99) in (let TMP_110 \def 
-(\lambda (t0: T).(let TMP_101 \def (trans hds0 i) in (let TMP_102 \def (S 
-TMP_101) in (let TMP_103 \def (trans hds0 i) in (let TMP_104 \def (S TMP_103) 
-in (let TMP_105 \def (minus d TMP_104) in (let TMP_106 \def (ptrans hds0 i) 
-in (let TMP_107 \def (PCons h TMP_105 TMP_106) in (let TMP_108 \def (lift1 
-TMP_107 t) in (let TMP_109 \def (lift TMP_102 O TMP_108) in (eq T t0 
-TMP_109))))))))))) in (let TMP_111 \def (trans hds0 i) in (let TMP_112 \def 
-(S TMP_111) in (let TMP_113 \def (trans hds0 i) in (let TMP_114 \def (S 
-TMP_113) in (let TMP_115 \def (minus d TMP_114) in (let TMP_116 \def (ptrans 
-hds0 i) in (let TMP_117 \def (PCons h TMP_115 TMP_116) in (let TMP_118 \def 
-(lift1 TMP_117 t) in (let TMP_119 \def (lift TMP_112 O TMP_118) in (let 
-TMP_120 \def (refl_equal T TMP_119) in (let TMP_121 \def (trans hds0 i) in 
-(let TMP_122 \def (S TMP_121) in (let TMP_123 \def (trans hds0 i) in (let 
-TMP_124 \def (S TMP_123) in (let TMP_125 \def (minus d TMP_124) in (let 
-TMP_126 \def (plus TMP_122 TMP_125) in (let TMP_127 \def (trans hds0 i) in 
-(let TMP_128 \def (S TMP_127) in (let TMP_129 \def (ptrans hds0 i) in (let 
-TMP_130 \def (lift1 TMP_129 t) in (let TMP_131 \def (lift TMP_128 O TMP_130) 
-in (let TMP_132 \def (lift h TMP_126 TMP_131) in (let TMP_133 \def (ptrans 
-hds0 i) in (let TMP_134 \def (lift1 TMP_133 t) in (let TMP_135 \def (trans 
-hds0 i) in (let TMP_136 \def (S TMP_135) in (let TMP_137 \def (trans hds0 i) 
-in (let TMP_138 \def (S TMP_137) in (let TMP_139 \def (minus d TMP_138) in 
-(let TMP_140 \def (trans hds0 i) in (let TMP_141 \def (S TMP_140) in (let 
-TMP_142 \def (minus d TMP_141) in (let TMP_143 \def (le_O_n TMP_142) in (let 
-TMP_144 \def (lift_d TMP_134 h TMP_136 TMP_139 O TMP_143) in (let TMP_145 
-\def (eq_ind_r T TMP_100 TMP_110 TMP_120 TMP_132 TMP_144) in (let TMP_146 
-\def (trans hds0 i) in (let TMP_147 \def (S TMP_146) in (let TMP_148 \def 
-(trans hds0 i) in (let TMP_149 \def (S TMP_148) in (let TMP_150 \def (trans 
-hds0 i) in (let TMP_151 \def (S TMP_150) in (let TMP_152 \def (trans hds0 i) 
-in (let TMP_153 \def (trans hds0 i) in (let TMP_154 \def (blt_lt d TMP_153 
-H0) in (let TMP_155 \def (lt_le_S TMP_152 d TMP_154) in (let TMP_156 \def 
-(le_bge TMP_151 d TMP_155) in (let TMP_157 \def (bge_le TMP_149 d TMP_156) in 
-(let TMP_158 \def (le_plus_minus TMP_147 d TMP_157) in (eq_ind_r nat TMP_75 
-TMP_91 TMP_145 d 
-TMP_158))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) in 
-(let TMP_255 \def (\lambda (H0: (eq bool (blt (trans hds0 i) d) false)).(let 
-TMP_160 \def (trans hds0 i) in (let TMP_161 \def (S TMP_160) in (let TMP_162 
-\def (plus h TMP_161) in (let TMP_163 \def (ptrans hds0 i) in (let TMP_164 
-\def (lift1 TMP_163 t) in (let TMP_165 \def (lift TMP_162 O TMP_164) in (let 
-TMP_172 \def (\lambda (t0: T).(let TMP_166 \def (trans hds0 i) in (let 
-TMP_167 \def (plus TMP_166 h) in (let TMP_168 \def (S TMP_167) in (let 
-TMP_169 \def (ptrans hds0 i) in (let TMP_170 \def (lift1 TMP_169 t) in (let 
-TMP_171 \def (lift TMP_168 O TMP_170) in (eq T t0 TMP_171)))))))) in (let 
-TMP_173 \def (trans hds0 i) in (let TMP_174 \def (plus h TMP_173) in (let 
-TMP_175 \def (S TMP_174) in (let TMP_185 \def (\lambda (n: nat).(let TMP_176 
-\def (ptrans hds0 i) in (let TMP_177 \def (lift1 TMP_176 t) in (let TMP_178 
-\def (lift n O TMP_177) in (let TMP_179 \def (trans hds0 i) in (let TMP_180 
-\def (plus TMP_179 h) in (let TMP_181 \def (S TMP_180) in (let TMP_182 \def 
-(ptrans hds0 i) in (let TMP_183 \def (lift1 TMP_182 t) in (let TMP_184 \def 
-(lift TMP_181 O TMP_183) in (eq T TMP_178 TMP_184))))))))))) in (let TMP_186 
-\def (trans hds0 i) in (let TMP_187 \def (plus TMP_186 h) in (let TMP_198 
-\def (\lambda (n: nat).(let TMP_188 \def (S n) in (let TMP_189 \def (ptrans 
-hds0 i) in (let TMP_190 \def (lift1 TMP_189 t) in (let TMP_191 \def (lift 
-TMP_188 O TMP_190) in (let TMP_192 \def (trans hds0 i) in (let TMP_193 \def 
-(plus TMP_192 h) in (let TMP_194 \def (S TMP_193) in (let TMP_195 \def 
-(ptrans hds0 i) in (let TMP_196 \def (lift1 TMP_195 t) in (let TMP_197 \def 
-(lift TMP_194 O TMP_196) in (eq T TMP_191 TMP_197)))))))))))) in (let TMP_199 
-\def (trans hds0 i) in (let TMP_200 \def (plus TMP_199 h) in (let TMP_201 
-\def (S TMP_200) in (let TMP_202 \def (ptrans hds0 i) in (let TMP_203 \def 
-(lift1 TMP_202 t) in (let TMP_204 \def (lift TMP_201 O TMP_203) in (let 
-TMP_205 \def (refl_equal T TMP_204) in (let TMP_206 \def (trans hds0 i) in 
-(let TMP_207 \def (plus h TMP_206) in (let TMP_208 \def (trans hds0 i) in 
-(let TMP_209 \def (plus_sym h TMP_208) in (let TMP_210 \def (eq_ind_r nat 
-TMP_187 TMP_198 TMP_205 TMP_207 TMP_209) in (let TMP_211 \def (trans hds0 i) 
-in (let TMP_212 \def (S TMP_211) in (let TMP_213 \def (plus h TMP_212) in 
-(let TMP_214 \def (trans hds0 i) in (let TMP_215 \def (plus_n_Sm h TMP_214) 
-in (let TMP_216 \def (eq_ind nat TMP_175 TMP_185 TMP_210 TMP_213 TMP_215) in 
-(let TMP_217 \def (trans hds0 i) in (let TMP_218 \def (S TMP_217) in (let 
-TMP_219 \def (ptrans hds0 i) in (let TMP_220 \def (lift1 TMP_219 t) in (let 
-TMP_221 \def (lift TMP_218 O TMP_220) in (let TMP_222 \def (lift h d TMP_221) 
-in (let TMP_223 \def (ptrans hds0 i) in (let TMP_224 \def (lift1 TMP_223 t) 
-in (let TMP_225 \def (trans hds0 i) in (let TMP_226 \def (S TMP_225) in (let 
-TMP_227 \def (trans hds0 i) in (let TMP_228 \def (plus O TMP_227) in (let 
-TMP_229 \def (S TMP_228) in (let TMP_230 \def (\lambda (n: nat).(le d n)) in 
-(let TMP_231 \def (trans hds0 i) in (let TMP_232 \def (plus TMP_231 O) in 
-(let TMP_234 \def (\lambda (n: nat).(let TMP_233 \def (S n) in (le d 
-TMP_233))) in (let TMP_235 \def (trans hds0 i) in (let TMP_236 \def (plus 
-TMP_235 O) in (let TMP_237 \def (trans hds0 i) in (let TMP_238 \def (trans 
-hds0 i) in (let TMP_239 \def (bge_le d TMP_238 H0) in (let TMP_240 \def 
-(le_plus_trans d TMP_237 O TMP_239) in (let TMP_241 \def (le_S d TMP_236 
-TMP_240) in (let TMP_242 \def (trans hds0 i) in (let TMP_243 \def (plus O 
-TMP_242) in (let TMP_244 \def (trans hds0 i) in (let TMP_245 \def (plus_sym O 
-TMP_244) in (let TMP_246 \def (eq_ind_r nat TMP_232 TMP_234 TMP_241 TMP_243 
-TMP_245) in (let TMP_247 \def (trans hds0 i) in (let TMP_248 \def (S TMP_247) 
-in (let TMP_249 \def (plus O TMP_248) in (let TMP_250 \def (trans hds0 i) in 
-(let TMP_251 \def (plus_n_Sm O TMP_250) in (let TMP_252 \def (eq_ind nat 
-TMP_229 TMP_230 TMP_246 TMP_249 TMP_251) in (let TMP_253 \def (le_O_n d) in 
-(let TMP_254 \def (lift_free TMP_224 TMP_226 h O d TMP_252 TMP_253) in 
-(eq_ind_r T TMP_165 TMP_172 TMP_216 TMP_222 
-TMP_254)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
- in (bool_ind TMP_69 TMP_159 TMP_255 x_x))))) in (let TMP_257 \def 
-(xinduction bool TMP_35 TMP_52 TMP_256) in (let TMP_258 \def (S i) in (let 
-TMP_259 \def (lift TMP_258 O t) in (let TMP_260 \def (lift1 hds0 TMP_259) in 
-(let TMP_261 \def (H i t) in (eq_ind_r T TMP_17 TMP_33 TMP_257 TMP_260 
-TMP_261)))))))))))))))))))))) in (PList_ind TMP_9 TMP_12 TMP_262 hds)))).
+ \lambda (hds: PList).(PList_ind (\lambda (p: PList).(\forall (i: 
+nat).(\forall (t: T).(eq T (lift1 p (lift (S i) O t)) (lift (S (trans p i)) O 
+(lift1 (ptrans p i) t)))))) (\lambda (i: nat).(\lambda (t: T).(refl_equal T 
+(lift (S i) O t)))) (\lambda (h: nat).(\lambda (d: nat).(\lambda (hds0: 
+PList).(\lambda (H: ((\forall (i: nat).(\forall (t: T).(eq T (lift1 hds0 
+(lift (S i) O t)) (lift (S (trans hds0 i)) O (lift1 (ptrans hds0 i) 
+t))))))).(\lambda (i: nat).(\lambda (t: T).(eq_ind_r T (lift (S (trans hds0 
+i)) O (lift1 (ptrans hds0 i) t)) (\lambda (t0: T).(eq T (lift h d t0) (lift 
+(S (match (blt (trans hds0 i) d) with [true \Rightarrow (trans hds0 i) | 
+false \Rightarrow (plus (trans hds0 i) h)])) O (lift1 (match (blt (trans hds0 
+i) d) with [true \Rightarrow (PCons h (minus d (S (trans hds0 i))) (ptrans 
+hds0 i)) | false \Rightarrow (ptrans hds0 i)]) t)))) (xinduction bool (blt 
+(trans hds0 i) d) (\lambda (b: bool).(eq T (lift h d (lift (S (trans hds0 i)) 
+O (lift1 (ptrans hds0 i) t))) (lift (S (match b with [true \Rightarrow (trans 
+hds0 i) | false \Rightarrow (plus (trans hds0 i) h)])) O (lift1 (match b with 
+[true \Rightarrow (PCons h (minus d (S (trans hds0 i))) (ptrans hds0 i)) | 
+false \Rightarrow (ptrans hds0 i)]) t)))) (\lambda (x_x: bool).(bool_ind 
+(\lambda (b: bool).((eq bool (blt (trans hds0 i) d) b) \to (eq T (lift h d 
+(lift (S (trans hds0 i)) O (lift1 (ptrans hds0 i) t))) (lift (S (match b with 
+[true \Rightarrow (trans hds0 i) | false \Rightarrow (plus (trans hds0 i) 
+h)])) O (lift1 (match b with [true \Rightarrow (PCons h (minus d (S (trans 
+hds0 i))) (ptrans hds0 i)) | false \Rightarrow (ptrans hds0 i)]) t))))) 
+(\lambda (H0: (eq bool (blt (trans hds0 i) d) true)).(eq_ind_r nat (plus (S 
+(trans hds0 i)) (minus d (S (trans hds0 i)))) (\lambda (n: nat).(eq T (lift h 
+n (lift (S (trans hds0 i)) O (lift1 (ptrans hds0 i) t))) (lift (S (trans hds0 
+i)) O (lift1 (PCons h (minus d (S (trans hds0 i))) (ptrans hds0 i)) t)))) 
+(eq_ind_r T (lift (S (trans hds0 i)) O (lift h (minus d (S (trans hds0 i))) 
+(lift1 (ptrans hds0 i) t))) (\lambda (t0: T).(eq T t0 (lift (S (trans hds0 
+i)) O (lift1 (PCons h (minus d (S (trans hds0 i))) (ptrans hds0 i)) t)))) 
+(refl_equal T (lift (S (trans hds0 i)) O (lift1 (PCons h (minus d (S (trans 
+hds0 i))) (ptrans hds0 i)) t))) (lift h (plus (S (trans hds0 i)) (minus d (S 
+(trans hds0 i)))) (lift (S (trans hds0 i)) O (lift1 (ptrans hds0 i) t))) 
+(lift_d (lift1 (ptrans hds0 i) t) h (S (trans hds0 i)) (minus d (S (trans 
+hds0 i))) O (le_O_n (minus d (S (trans hds0 i)))))) d (le_plus_minus (S 
+(trans hds0 i)) d (bge_le (S (trans hds0 i)) d (le_bge (S (trans hds0 i)) d 
+(lt_le_S (trans hds0 i) d (blt_lt d (trans hds0 i) H0))))))) (\lambda (H0: 
+(eq bool (blt (trans hds0 i) d) false)).(eq_ind_r T (lift (plus h (S (trans 
+hds0 i))) O (lift1 (ptrans hds0 i) t)) (\lambda (t0: T).(eq T t0 (lift (S 
+(plus (trans hds0 i) h)) O (lift1 (ptrans hds0 i) t)))) (eq_ind nat (S (plus 
+h (trans hds0 i))) (\lambda (n: nat).(eq T (lift n O (lift1 (ptrans hds0 i) 
+t)) (lift (S (plus (trans hds0 i) h)) O (lift1 (ptrans hds0 i) t)))) 
+(eq_ind_r nat (plus (trans hds0 i) h) (\lambda (n: nat).(eq T (lift (S n) O 
+(lift1 (ptrans hds0 i) t)) (lift (S (plus (trans hds0 i) h)) O (lift1 (ptrans 
+hds0 i) t)))) (refl_equal T (lift (S (plus (trans hds0 i) h)) O (lift1 
+(ptrans hds0 i) t))) (plus h (trans hds0 i)) (plus_sym h (trans hds0 i))) 
+(plus h (S (trans hds0 i))) (plus_n_Sm h (trans hds0 i))) (lift h d (lift (S 
+(trans hds0 i)) O (lift1 (ptrans hds0 i) t))) (lift_free (lift1 (ptrans hds0 
+i) t) (S (trans hds0 i)) h O d (eq_ind nat (S (plus O (trans hds0 i))) 
+(\lambda (n: nat).(le d n)) (eq_ind_r nat (plus (trans hds0 i) O) (\lambda 
+(n: nat).(le d (S n))) (le_S d (plus (trans hds0 i) O) (le_plus_trans d 
+(trans hds0 i) O (bge_le d (trans hds0 i) H0))) (plus O (trans hds0 i)) 
+(plus_sym O (trans hds0 i))) (plus O (S (trans hds0 i))) (plus_n_Sm O (trans 
+hds0 i))) (le_O_n d)))) x_x))) (lift1 hds0 (lift (S i) O t)) (H i t)))))))) 
+hds).
 
index bb6374c163e23e6d07af085837a28ee81fb4a039..067edeeef032d344d7ac2011863d069d14eda8b6 100644 (file)
@@ -21,149 +21,79 @@ include "basic_1/lift/props.ma".
 theorem lift1_sort:
  \forall (n: nat).(\forall (is: PList).(eq T (lift1 is (TSort n)) (TSort n)))
 \def
- \lambda (n: nat).(\lambda (is: PList).(let TMP_4 \def (\lambda (p: 
-PList).(let TMP_1 \def (TSort n) in (let TMP_2 \def (lift1 p TMP_1) in (let 
-TMP_3 \def (TSort n) in (eq T TMP_2 TMP_3))))) in (let TMP_5 \def (TSort n) 
-in (let TMP_6 \def (refl_equal T TMP_5) in (let TMP_15 \def (\lambda (n0: 
+ \lambda (n: nat).(\lambda (is: PList).(PList_ind (\lambda (p: PList).(eq T 
+(lift1 p (TSort n)) (TSort n))) (refl_equal T (TSort n)) (\lambda (n0: 
 nat).(\lambda (n1: nat).(\lambda (p: PList).(\lambda (H: (eq T (lift1 p 
-(TSort n)) (TSort n))).(let TMP_7 \def (TSort n) in (let TMP_10 \def (\lambda 
-(t: T).(let TMP_8 \def (lift n0 n1 t) in (let TMP_9 \def (TSort n) in (eq T 
-TMP_8 TMP_9)))) in (let TMP_11 \def (TSort n) in (let TMP_12 \def (refl_equal 
-T TMP_11) in (let TMP_13 \def (TSort n) in (let TMP_14 \def (lift1 p TMP_13) 
-in (eq_ind_r T TMP_7 TMP_10 TMP_12 TMP_14 H))))))))))) in (PList_ind TMP_4 
-TMP_6 TMP_15 is)))))).
+(TSort n)) (TSort n))).(eq_ind_r T (TSort n) (\lambda (t: T).(eq T (lift n0 
+n1 t) (TSort n))) (refl_equal T (TSort n)) (lift1 p (TSort n)) H))))) is)).
 
 theorem lift1_lref:
  \forall (hds: PList).(\forall (i: nat).(eq T (lift1 hds (TLRef i)) (TLRef 
 (trans hds i))))
 \def
- \lambda (hds: PList).(let TMP_5 \def (\lambda (p: PList).(\forall (i: 
-nat).(let TMP_1 \def (TLRef i) in (let TMP_2 \def (lift1 p TMP_1) in (let 
-TMP_3 \def (trans p i) in (let TMP_4 \def (TLRef TMP_3) in (eq T TMP_2 
-TMP_4))))))) in (let TMP_7 \def (\lambda (i: nat).(let TMP_6 \def (TLRef i) 
-in (refl_equal T TMP_6))) in (let TMP_26 \def (\lambda (n: nat).(\lambda (n0: 
-nat).(\lambda (p: PList).(\lambda (H: ((\forall (i: nat).(eq T (lift1 p 
-(TLRef i)) (TLRef (trans p i)))))).(\lambda (i: nat).(let TMP_8 \def (trans p 
-i) in (let TMP_9 \def (TLRef TMP_8) in (let TMP_16 \def (\lambda (t: T).(let 
-TMP_10 \def (lift n n0 t) in (let TMP_11 \def (trans p i) in (let TMP_12 \def 
-(blt TMP_11 n0) in (let TMP_14 \def (match TMP_12 with [true \Rightarrow 
-(trans p i) | false \Rightarrow (let TMP_13 \def (trans p i) in (plus TMP_13 
-n))]) in (let TMP_15 \def (TLRef TMP_14) in (eq T TMP_10 TMP_15))))))) in 
-(let TMP_17 \def (trans p i) in (let TMP_18 \def (blt TMP_17 n0) in (let 
-TMP_20 \def (match TMP_18 with [true \Rightarrow (trans p i) | false 
-\Rightarrow (let TMP_19 \def (trans p i) in (plus TMP_19 n))]) in (let TMP_21 
-\def (TLRef TMP_20) in (let TMP_22 \def (refl_equal T TMP_21) in (let TMP_23 
-\def (TLRef i) in (let TMP_24 \def (lift1 p TMP_23) in (let TMP_25 \def (H i) 
-in (eq_ind_r T TMP_9 TMP_16 TMP_22 TMP_24 TMP_25))))))))))))))))) in 
-(PList_ind TMP_5 TMP_7 TMP_26 hds)))).
+ \lambda (hds: PList).(PList_ind (\lambda (p: PList).(\forall (i: nat).(eq T 
+(lift1 p (TLRef i)) (TLRef (trans p i))))) (\lambda (i: nat).(refl_equal T 
+(TLRef i))) (\lambda (n: nat).(\lambda (n0: nat).(\lambda (p: PList).(\lambda 
+(H: ((\forall (i: nat).(eq T (lift1 p (TLRef i)) (TLRef (trans p 
+i)))))).(\lambda (i: nat).(eq_ind_r T (TLRef (trans p i)) (\lambda (t: T).(eq 
+T (lift n n0 t) (TLRef (match (blt (trans p i) n0) with [true \Rightarrow 
+(trans p i) | false \Rightarrow (plus (trans p i) n)])))) (refl_equal T 
+(TLRef (match (blt (trans p i) n0) with [true \Rightarrow (trans p i) | false 
+\Rightarrow (plus (trans p i) n)]))) (lift1 p (TLRef i)) (H i))))))) hds).
 
 theorem lift1_bind:
  \forall (b: B).(\forall (hds: PList).(\forall (u: T).(\forall (t: T).(eq T 
 (lift1 hds (THead (Bind b) u t)) (THead (Bind b) (lift1 hds u) (lift1 (Ss 
 hds) t))))))
 \def
- \lambda (b: B).(\lambda (hds: PList).(let TMP_9 \def (\lambda (p: 
-PList).(\forall (u: T).(\forall (t: T).(let TMP_1 \def (Bind b) in (let TMP_2 
-\def (THead TMP_1 u t) in (let TMP_3 \def (lift1 p TMP_2) in (let TMP_4 \def 
-(Bind b) in (let TMP_5 \def (lift1 p u) in (let TMP_6 \def (Ss p) in (let 
-TMP_7 \def (lift1 TMP_6 t) in (let TMP_8 \def (THead TMP_4 TMP_5 TMP_7) in 
-(eq T TMP_3 TMP_8)))))))))))) in (let TMP_12 \def (\lambda (u: T).(\lambda 
-(t: T).(let TMP_10 \def (Bind b) in (let TMP_11 \def (THead TMP_10 u t) in 
-(refl_equal T TMP_11))))) in (let TMP_69 \def (\lambda (n: nat).(\lambda (n0: 
-nat).(\lambda (p: PList).(\lambda (H: ((\forall (u: T).(\forall (t: T).(eq T 
-(lift1 p (THead (Bind b) u t)) (THead (Bind b) (lift1 p u) (lift1 (Ss p) 
-t))))))).(\lambda (u: T).(\lambda (t: T).(let TMP_13 \def (Bind b) in (let 
-TMP_14 \def (lift1 p u) in (let TMP_15 \def (Ss p) in (let TMP_16 \def (lift1 
-TMP_15 t) in (let TMP_17 \def (THead TMP_13 TMP_14 TMP_16) in (let TMP_27 
-\def (\lambda (t0: T).(let TMP_18 \def (lift n n0 t0) in (let TMP_19 \def 
-(Bind b) in (let TMP_20 \def (lift1 p u) in (let TMP_21 \def (lift n n0 
-TMP_20) in (let TMP_22 \def (S n0) in (let TMP_23 \def (Ss p) in (let TMP_24 
-\def (lift1 TMP_23 t) in (let TMP_25 \def (lift n TMP_22 TMP_24) in (let 
-TMP_26 \def (THead TMP_19 TMP_21 TMP_25) in (eq T TMP_18 TMP_26))))))))))) in 
-(let TMP_28 \def (Bind b) in (let TMP_29 \def (lift1 p u) in (let TMP_30 \def 
-(lift n n0 TMP_29) in (let TMP_31 \def (S n0) in (let TMP_32 \def (Ss p) in 
-(let TMP_33 \def (lift1 TMP_32 t) in (let TMP_34 \def (lift n TMP_31 TMP_33) 
-in (let TMP_35 \def (THead TMP_28 TMP_30 TMP_34) in (let TMP_44 \def (\lambda 
-(t0: T).(let TMP_36 \def (Bind b) in (let TMP_37 \def (lift1 p u) in (let 
-TMP_38 \def (lift n n0 TMP_37) in (let TMP_39 \def (S n0) in (let TMP_40 \def 
-(Ss p) in (let TMP_41 \def (lift1 TMP_40 t) in (let TMP_42 \def (lift n 
-TMP_39 TMP_41) in (let TMP_43 \def (THead TMP_36 TMP_38 TMP_42) in (eq T t0 
-TMP_43)))))))))) in (let TMP_45 \def (Bind b) in (let TMP_46 \def (lift1 p u) 
-in (let TMP_47 \def (lift n n0 TMP_46) in (let TMP_48 \def (S n0) in (let 
-TMP_49 \def (Ss p) in (let TMP_50 \def (lift1 TMP_49 t) in (let TMP_51 \def 
-(lift n TMP_48 TMP_50) in (let TMP_52 \def (THead TMP_45 TMP_47 TMP_51) in 
-(let TMP_53 \def (refl_equal T TMP_52) in (let TMP_54 \def (Bind b) in (let 
-TMP_55 \def (lift1 p u) in (let TMP_56 \def (Ss p) in (let TMP_57 \def (lift1 
-TMP_56 t) in (let TMP_58 \def (THead TMP_54 TMP_55 TMP_57) in (let TMP_59 
-\def (lift n n0 TMP_58) in (let TMP_60 \def (lift1 p u) in (let TMP_61 \def 
-(Ss p) in (let TMP_62 \def (lift1 TMP_61 t) in (let TMP_63 \def (lift_bind b 
-TMP_60 TMP_62 n n0) in (let TMP_64 \def (eq_ind_r T TMP_35 TMP_44 TMP_53 
-TMP_59 TMP_63) in (let TMP_65 \def (Bind b) in (let TMP_66 \def (THead TMP_65 
-u t) in (let TMP_67 \def (lift1 p TMP_66) in (let TMP_68 \def (H u t) in 
-(eq_ind_r T TMP_17 TMP_27 TMP_64 TMP_67 
-TMP_68)))))))))))))))))))))))))))))))))))))))))))))) in (PList_ind TMP_9 
-TMP_12 TMP_69 hds))))).
+ \lambda (b: B).(\lambda (hds: PList).(PList_ind (\lambda (p: PList).(\forall 
+(u: T).(\forall (t: T).(eq T (lift1 p (THead (Bind b) u t)) (THead (Bind b) 
+(lift1 p u) (lift1 (Ss p) t)))))) (\lambda (u: T).(\lambda (t: T).(refl_equal 
+T (THead (Bind b) u t)))) (\lambda (n: nat).(\lambda (n0: nat).(\lambda (p: 
+PList).(\lambda (H: ((\forall (u: T).(\forall (t: T).(eq T (lift1 p (THead 
+(Bind b) u t)) (THead (Bind b) (lift1 p u) (lift1 (Ss p) t))))))).(\lambda 
+(u: T).(\lambda (t: T).(eq_ind_r T (THead (Bind b) (lift1 p u) (lift1 (Ss p) 
+t)) (\lambda (t0: T).(eq T (lift n n0 t0) (THead (Bind b) (lift n n0 (lift1 p 
+u)) (lift n (S n0) (lift1 (Ss p) t))))) (eq_ind_r T (THead (Bind b) (lift n 
+n0 (lift1 p u)) (lift n (S n0) (lift1 (Ss p) t))) (\lambda (t0: T).(eq T t0 
+(THead (Bind b) (lift n n0 (lift1 p u)) (lift n (S n0) (lift1 (Ss p) t))))) 
+(refl_equal T (THead (Bind b) (lift n n0 (lift1 p u)) (lift n (S n0) (lift1 
+(Ss p) t)))) (lift n n0 (THead (Bind b) (lift1 p u) (lift1 (Ss p) t))) 
+(lift_bind b (lift1 p u) (lift1 (Ss p) t) n n0)) (lift1 p (THead (Bind b) u 
+t)) (H u t)))))))) hds)).
 
 theorem lift1_flat:
  \forall (f: F).(\forall (hds: PList).(\forall (u: T).(\forall (t: T).(eq T 
 (lift1 hds (THead (Flat f) u t)) (THead (Flat f) (lift1 hds u) (lift1 hds 
 t))))))
 \def
- \lambda (f: F).(\lambda (hds: PList).(let TMP_8 \def (\lambda (p: 
-PList).(\forall (u: T).(\forall (t: T).(let TMP_1 \def (Flat f) in (let TMP_2 
-\def (THead TMP_1 u t) in (let TMP_3 \def (lift1 p TMP_2) in (let TMP_4 \def 
-(Flat f) in (let TMP_5 \def (lift1 p u) in (let TMP_6 \def (lift1 p t) in 
-(let TMP_7 \def (THead TMP_4 TMP_5 TMP_6) in (eq T TMP_3 TMP_7))))))))))) in 
-(let TMP_11 \def (\lambda (u: T).(\lambda (t: T).(let TMP_9 \def (Flat f) in 
-(let TMP_10 \def (THead TMP_9 u t) in (refl_equal T TMP_10))))) in (let 
-TMP_57 \def (\lambda (n: nat).(\lambda (n0: nat).(\lambda (p: PList).(\lambda 
-(H: ((\forall (u: T).(\forall (t: T).(eq T (lift1 p (THead (Flat f) u t)) 
-(THead (Flat f) (lift1 p u) (lift1 p t))))))).(\lambda (u: T).(\lambda (t: 
-T).(let TMP_12 \def (Flat f) in (let TMP_13 \def (lift1 p u) in (let TMP_14 
-\def (lift1 p t) in (let TMP_15 \def (THead TMP_12 TMP_13 TMP_14) in (let 
-TMP_23 \def (\lambda (t0: T).(let TMP_16 \def (lift n n0 t0) in (let TMP_17 
-\def (Flat f) in (let TMP_18 \def (lift1 p u) in (let TMP_19 \def (lift n n0 
-TMP_18) in (let TMP_20 \def (lift1 p t) in (let TMP_21 \def (lift n n0 
-TMP_20) in (let TMP_22 \def (THead TMP_17 TMP_19 TMP_21) in (eq T TMP_16 
-TMP_22))))))))) in (let TMP_24 \def (Flat f) in (let TMP_25 \def (lift1 p u) 
-in (let TMP_26 \def (lift n n0 TMP_25) in (let TMP_27 \def (lift1 p t) in 
-(let TMP_28 \def (lift n n0 TMP_27) in (let TMP_29 \def (THead TMP_24 TMP_26 
-TMP_28) in (let TMP_36 \def (\lambda (t0: T).(let TMP_30 \def (Flat f) in 
-(let TMP_31 \def (lift1 p u) in (let TMP_32 \def (lift n n0 TMP_31) in (let 
-TMP_33 \def (lift1 p t) in (let TMP_34 \def (lift n n0 TMP_33) in (let TMP_35 
-\def (THead TMP_30 TMP_32 TMP_34) in (eq T t0 TMP_35)))))))) in (let TMP_37 
-\def (Flat f) in (let TMP_38 \def (lift1 p u) in (let TMP_39 \def (lift n n0 
-TMP_38) in (let TMP_40 \def (lift1 p t) in (let TMP_41 \def (lift n n0 
-TMP_40) in (let TMP_42 \def (THead TMP_37 TMP_39 TMP_41) in (let TMP_43 \def 
-(refl_equal T TMP_42) in (let TMP_44 \def (Flat f) in (let TMP_45 \def (lift1 
-p u) in (let TMP_46 \def (lift1 p t) in (let TMP_47 \def (THead TMP_44 TMP_45 
-TMP_46) in (let TMP_48 \def (lift n n0 TMP_47) in (let TMP_49 \def (lift1 p 
-u) in (let TMP_50 \def (lift1 p t) in (let TMP_51 \def (lift_flat f TMP_49 
-TMP_50 n n0) in (let TMP_52 \def (eq_ind_r T TMP_29 TMP_36 TMP_43 TMP_48 
-TMP_51) in (let TMP_53 \def (Flat f) in (let TMP_54 \def (THead TMP_53 u t) 
-in (let TMP_55 \def (lift1 p TMP_54) in (let TMP_56 \def (H u t) in (eq_ind_r 
-T TMP_15 TMP_23 TMP_52 TMP_55 TMP_56))))))))))))))))))))))))))))))))))))))) 
-in (PList_ind TMP_8 TMP_11 TMP_57 hds))))).
+ \lambda (f: F).(\lambda (hds: PList).(PList_ind (\lambda (p: PList).(\forall 
+(u: T).(\forall (t: T).(eq T (lift1 p (THead (Flat f) u t)) (THead (Flat f) 
+(lift1 p u) (lift1 p t)))))) (\lambda (u: T).(\lambda (t: T).(refl_equal T 
+(THead (Flat f) u t)))) (\lambda (n: nat).(\lambda (n0: nat).(\lambda (p: 
+PList).(\lambda (H: ((\forall (u: T).(\forall (t: T).(eq T (lift1 p (THead 
+(Flat f) u t)) (THead (Flat f) (lift1 p u) (lift1 p t))))))).(\lambda (u: 
+T).(\lambda (t: T).(eq_ind_r T (THead (Flat f) (lift1 p u) (lift1 p t)) 
+(\lambda (t0: T).(eq T (lift n n0 t0) (THead (Flat f) (lift n n0 (lift1 p u)) 
+(lift n n0 (lift1 p t))))) (eq_ind_r T (THead (Flat f) (lift n n0 (lift1 p 
+u)) (lift n n0 (lift1 p t))) (\lambda (t0: T).(eq T t0 (THead (Flat f) (lift 
+n n0 (lift1 p u)) (lift n n0 (lift1 p t))))) (refl_equal T (THead (Flat f) 
+(lift n n0 (lift1 p u)) (lift n n0 (lift1 p t)))) (lift n n0 (THead (Flat f) 
+(lift1 p u) (lift1 p t))) (lift_flat f (lift1 p u) (lift1 p t) n n0)) (lift1 
+p (THead (Flat f) u t)) (H u t)))))))) hds)).
 
 theorem lift1_cons_tail:
  \forall (t: T).(\forall (h: nat).(\forall (d: nat).(\forall (hds: PList).(eq 
 T (lift1 (PConsTail hds h d) t) (lift1 hds (lift h d t))))))
 \def
  \lambda (t: T).(\lambda (h: nat).(\lambda (d: nat).(\lambda (hds: 
-PList).(let TMP_5 \def (\lambda (p: PList).(let TMP_1 \def (PConsTail p h d) 
-in (let TMP_2 \def (lift1 TMP_1 t) in (let TMP_3 \def (lift h d t) in (let 
-TMP_4 \def (lift1 p TMP_3) in (eq T TMP_2 TMP_4)))))) in (let TMP_6 \def 
-(lift h d t) in (let TMP_7 \def (refl_equal T TMP_6) in (let TMP_21 \def 
-(\lambda (n: nat).(\lambda (n0: nat).(\lambda (p: PList).(\lambda (H: (eq T 
-(lift1 (PConsTail p h d) t) (lift1 p (lift h d t)))).(let TMP_8 \def (lift h 
-d t) in (let TMP_9 \def (lift1 p TMP_8) in (let TMP_14 \def (\lambda (t0: 
-T).(let TMP_10 \def (lift n n0 t0) in (let TMP_11 \def (lift h d t) in (let 
-TMP_12 \def (lift1 p TMP_11) in (let TMP_13 \def (lift n n0 TMP_12) in (eq T 
-TMP_10 TMP_13)))))) in (let TMP_15 \def (lift h d t) in (let TMP_16 \def 
-(lift1 p TMP_15) in (let TMP_17 \def (lift n n0 TMP_16) in (let TMP_18 \def 
-(refl_equal T TMP_17) in (let TMP_19 \def (PConsTail p h d) in (let TMP_20 
-\def (lift1 TMP_19 t) in (eq_ind_r T TMP_9 TMP_14 TMP_18 TMP_20 
-H)))))))))))))) in (PList_ind TMP_5 TMP_7 TMP_21 hds)))))))).
+PList).(PList_ind (\lambda (p: PList).(eq T (lift1 (PConsTail p h d) t) 
+(lift1 p (lift h d t)))) (refl_equal T (lift h d t)) (\lambda (n: 
+nat).(\lambda (n0: nat).(\lambda (p: PList).(\lambda (H: (eq T (lift1 
+(PConsTail p h d) t) (lift1 p (lift h d t)))).(eq_ind_r T (lift1 p (lift h d 
+t)) (\lambda (t0: T).(eq T (lift n n0 t0) (lift n n0 (lift1 p (lift h d 
+t))))) (refl_equal T (lift n n0 (lift1 p (lift h d t)))) (lift1 (PConsTail p 
+h d) t) H))))) hds)))).
 
 theorem lifts1_flat:
  \forall (f: F).(\forall (hds: PList).(\forall (t: T).(\forall (ts: 
@@ -171,74 +101,40 @@ TList).(eq T (lift1 hds (THeads (Flat f) ts t)) (THeads (Flat f) (lifts1 hds
 ts) (lift1 hds t))))))
 \def
  \lambda (f: F).(\lambda (hds: PList).(\lambda (t: T).(\lambda (ts: 
-TList).(let TMP_8 \def (\lambda (t0: TList).(let TMP_1 \def (Flat f) in (let 
-TMP_2 \def (THeads TMP_1 t0 t) in (let TMP_3 \def (lift1 hds TMP_2) in (let 
-TMP_4 \def (Flat f) in (let TMP_5 \def (lifts1 hds t0) in (let TMP_6 \def 
-(lift1 hds t) in (let TMP_7 \def (THeads TMP_4 TMP_5 TMP_6) in (eq T TMP_3 
-TMP_7))))))))) in (let TMP_9 \def (lift1 hds t) in (let TMP_10 \def 
-(refl_equal T TMP_9) in (let TMP_60 \def (\lambda (t0: T).(\lambda (t1: 
-TList).(\lambda (H: (eq T (lift1 hds (THeads (Flat f) t1 t)) (THeads (Flat f) 
-(lifts1 hds t1) (lift1 hds t)))).(let TMP_11 \def (Flat f) in (let TMP_12 
-\def (lift1 hds t0) in (let TMP_13 \def (Flat f) in (let TMP_14 \def (THeads 
-TMP_13 t1 t) in (let TMP_15 \def (lift1 hds TMP_14) in (let TMP_16 \def 
-(THead TMP_11 TMP_12 TMP_15) in (let TMP_24 \def (\lambda (t2: T).(let TMP_17 
-\def (Flat f) in (let TMP_18 \def (lift1 hds t0) in (let TMP_19 \def (Flat f) 
-in (let TMP_20 \def (lifts1 hds t1) in (let TMP_21 \def (lift1 hds t) in (let 
-TMP_22 \def (THeads TMP_19 TMP_20 TMP_21) in (let TMP_23 \def (THead TMP_17 
-TMP_18 TMP_22) in (eq T t2 TMP_23))))))))) in (let TMP_25 \def (Flat f) in 
-(let TMP_26 \def (lifts1 hds t1) in (let TMP_27 \def (lift1 hds t) in (let 
-TMP_28 \def (THeads TMP_25 TMP_26 TMP_27) in (let TMP_39 \def (\lambda (t2: 
-T).(let TMP_29 \def (Flat f) in (let TMP_30 \def (lift1 hds t0) in (let 
-TMP_31 \def (THead TMP_29 TMP_30 t2) in (let TMP_32 \def (Flat f) in (let 
-TMP_33 \def (lift1 hds t0) in (let TMP_34 \def (Flat f) in (let TMP_35 \def 
-(lifts1 hds t1) in (let TMP_36 \def (lift1 hds t) in (let TMP_37 \def (THeads 
-TMP_34 TMP_35 TMP_36) in (let TMP_38 \def (THead TMP_32 TMP_33 TMP_37) in (eq 
-T TMP_31 TMP_38)))))))))))) in (let TMP_40 \def (Flat f) in (let TMP_41 \def 
-(lift1 hds t0) in (let TMP_42 \def (Flat f) in (let TMP_43 \def (lifts1 hds 
-t1) in (let TMP_44 \def (lift1 hds t) in (let TMP_45 \def (THeads TMP_42 
-TMP_43 TMP_44) in (let TMP_46 \def (THead TMP_40 TMP_41 TMP_45) in (let 
-TMP_47 \def (refl_equal T TMP_46) in (let TMP_48 \def (Flat f) in (let TMP_49 
-\def (THeads TMP_48 t1 t) in (let TMP_50 \def (lift1 hds TMP_49) in (let 
-TMP_51 \def (eq_ind_r T TMP_28 TMP_39 TMP_47 TMP_50 H) in (let TMP_52 \def 
-(Flat f) in (let TMP_53 \def (Flat f) in (let TMP_54 \def (THeads TMP_53 t1 
-t) in (let TMP_55 \def (THead TMP_52 t0 TMP_54) in (let TMP_56 \def (lift1 
-hds TMP_55) in (let TMP_57 \def (Flat f) in (let TMP_58 \def (THeads TMP_57 
-t1 t) in (let TMP_59 \def (lift1_flat f hds t0 TMP_58) in (eq_ind_r T TMP_16 
-TMP_24 TMP_51 TMP_56 TMP_59)))))))))))))))))))))))))))))))))))) in (TList_ind 
-TMP_8 TMP_10 TMP_60 ts)))))))).
+TList).(TList_ind (\lambda (t0: TList).(eq T (lift1 hds (THeads (Flat f) t0 
+t)) (THeads (Flat f) (lifts1 hds t0) (lift1 hds t)))) (refl_equal T (lift1 
+hds t)) (\lambda (t0: T).(\lambda (t1: TList).(\lambda (H: (eq T (lift1 hds 
+(THeads (Flat f) t1 t)) (THeads (Flat f) (lifts1 hds t1) (lift1 hds 
+t)))).(eq_ind_r T (THead (Flat f) (lift1 hds t0) (lift1 hds (THeads (Flat f) 
+t1 t))) (\lambda (t2: T).(eq T t2 (THead (Flat f) (lift1 hds t0) (THeads 
+(Flat f) (lifts1 hds t1) (lift1 hds t))))) (eq_ind_r T (THeads (Flat f) 
+(lifts1 hds t1) (lift1 hds t)) (\lambda (t2: T).(eq T (THead (Flat f) (lift1 
+hds t0) t2) (THead (Flat f) (lift1 hds t0) (THeads (Flat f) (lifts1 hds t1) 
+(lift1 hds t))))) (refl_equal T (THead (Flat f) (lift1 hds t0) (THeads (Flat 
+f) (lifts1 hds t1) (lift1 hds t)))) (lift1 hds (THeads (Flat f) t1 t)) H) 
+(lift1 hds (THead (Flat f) t0 (THeads (Flat f) t1 t))) (lift1_flat f hds t0 
+(THeads (Flat f) t1 t)))))) ts)))).
 
 theorem lifts1_nil:
  \forall (ts: TList).(eq TList (lifts1 PNil ts) ts)
 \def
- \lambda (ts: TList).(let TMP_2 \def (\lambda (t: TList).(let TMP_1 \def 
-(lifts1 PNil t) in (eq TList TMP_1 t))) in (let TMP_3 \def (refl_equal TList 
-TNil) in (let TMP_10 \def (\lambda (t: T).(\lambda (t0: TList).(\lambda (H: 
-(eq TList (lifts1 PNil t0) t0)).(let TMP_6 \def (\lambda (t1: TList).(let 
-TMP_4 \def (TCons t t1) in (let TMP_5 \def (TCons t t0) in (eq TList TMP_4 
-TMP_5)))) in (let TMP_7 \def (TCons t t0) in (let TMP_8 \def (refl_equal 
-TList TMP_7) in (let TMP_9 \def (lifts1 PNil t0) in (eq_ind_r TList t0 TMP_6 
-TMP_8 TMP_9 H)))))))) in (TList_ind TMP_2 TMP_3 TMP_10 ts)))).
+ \lambda (ts: TList).(TList_ind (\lambda (t: TList).(eq TList (lifts1 PNil t) 
+t)) (refl_equal TList TNil) (\lambda (t: T).(\lambda (t0: TList).(\lambda (H: 
+(eq TList (lifts1 PNil t0) t0)).(eq_ind_r TList t0 (\lambda (t1: TList).(eq 
+TList (TCons t t1) (TCons t t0))) (refl_equal TList (TCons t t0)) (lifts1 
+PNil t0) H)))) ts).
 
 theorem lifts1_cons:
  \forall (h: nat).(\forall (d: nat).(\forall (hds: PList).(\forall (ts: 
 TList).(eq TList (lifts1 (PCons h d hds) ts) (lifts h d (lifts1 hds ts))))))
 \def
  \lambda (h: nat).(\lambda (d: nat).(\lambda (hds: PList).(\lambda (ts: 
-TList).(let TMP_5 \def (\lambda (t: TList).(let TMP_1 \def (PCons h d hds) in 
-(let TMP_2 \def (lifts1 TMP_1 t) in (let TMP_3 \def (lifts1 hds t) in (let 
-TMP_4 \def (lifts h d TMP_3) in (eq TList TMP_2 TMP_4)))))) in (let TMP_6 
-\def (refl_equal TList TNil) in (let TMP_26 \def (\lambda (t: T).(\lambda 
+TList).(TList_ind (\lambda (t: TList).(eq TList (lifts1 (PCons h d hds) t) 
+(lifts h d (lifts1 hds t)))) (refl_equal TList TNil) (\lambda (t: T).(\lambda 
 (t0: TList).(\lambda (H: (eq TList (lifts1 (PCons h d hds) t0) (lifts h d 
-(lifts1 hds t0)))).(let TMP_7 \def (lifts1 hds t0) in (let TMP_8 \def (lifts 
-h d TMP_7) in (let TMP_17 \def (\lambda (t1: TList).(let TMP_9 \def (lift1 
-hds t) in (let TMP_10 \def (lift h d TMP_9) in (let TMP_11 \def (TCons TMP_10 
-t1) in (let TMP_12 \def (lift1 hds t) in (let TMP_13 \def (lift h d TMP_12) 
-in (let TMP_14 \def (lifts1 hds t0) in (let TMP_15 \def (lifts h d TMP_14) in 
-(let TMP_16 \def (TCons TMP_13 TMP_15) in (eq TList TMP_11 TMP_16)))))))))) 
-in (let TMP_18 \def (lift1 hds t) in (let TMP_19 \def (lift h d TMP_18) in 
-(let TMP_20 \def (lifts1 hds t0) in (let TMP_21 \def (lifts h d TMP_20) in 
-(let TMP_22 \def (TCons TMP_19 TMP_21) in (let TMP_23 \def (refl_equal TList 
-TMP_22) in (let TMP_24 \def (PCons h d hds) in (let TMP_25 \def (lifts1 
-TMP_24 t0) in (eq_ind_r TList TMP_8 TMP_17 TMP_23 TMP_25 H))))))))))))))) in 
-(TList_ind TMP_5 TMP_6 TMP_26 ts))))))).
+(lifts1 hds t0)))).(eq_ind_r TList (lifts h d (lifts1 hds t0)) (\lambda (t1: 
+TList).(eq TList (TCons (lift h d (lift1 hds t)) t1) (TCons (lift h d (lift1 
+hds t)) (lifts h d (lifts1 hds t0))))) (refl_equal TList (TCons (lift h d 
+(lift1 hds t)) (lifts h d (lifts1 hds t0)))) (lifts1 (PCons h d hds) t0) 
+H)))) ts)))).
 
index d56fda894ebb09fb37ee1d37d3948d0e10c7c9f0..e1e9ee5af4847ff44b3c6be267057cd79cdbe927 100644 (file)
 include "basic_1/A/defs.ma".
 
 let rec lweight (a: A) on a: nat \def match a with [(ASort _ _) \Rightarrow O 
-| (AHead a1 a2) \Rightarrow (let TMP_1 \def (lweight a1) in (let TMP_2 \def 
-(lweight a2) in (let TMP_3 \def (plus TMP_1 TMP_2) in (S TMP_3))))].
+| (AHead a1 a2) \Rightarrow (S (plus (lweight a1) (lweight a2)))].
 
 definition llt:
  A \to (A \to Prop)
 \def
- \lambda (a1: A).(\lambda (a2: A).(let TMP_1 \def (lweight a1) in (let TMP_2 
-\def (lweight a2) in (lt TMP_1 TMP_2)))).
+ \lambda (a1: A).(\lambda (a2: A).(lt (lweight a1) (lweight a2))).
 
index 025bf660fa43d5128b2f891f881d12cced130652..7cad4fc7a63ca276ddbf8afec411276e85017ff7 100644 (file)
@@ -24,9 +24,8 @@ a))))) P n))) \to (\forall (a: A).(P a)))
  let Q \def (\lambda (P: ((A \to Prop))).(\lambda (n: nat).(\forall (a: 
 A).((eq nat (lweight a) n) \to (P a))))) in (\lambda (P: ((A \to 
 Prop))).(\lambda (H: ((\forall (n: nat).(\forall (a: A).((eq nat (lweight a) 
-n) \to (P a)))))).(\lambda (a: A).(let TMP_1 \def (lweight a) in (let TMP_2 
-\def (lweight a) in (let TMP_3 \def (refl_equal nat TMP_2) in (H TMP_1 a 
-TMP_3))))))).
+n) \to (P a)))))).(\lambda (a: A).(H (lweight a) a (refl_equal nat (lweight 
+a)))))).
 
 theorem llt_wf_ind:
  \forall (P: ((A \to Prop))).(((\forall (a2: A).(((\forall (a1: A).((llt a1 
@@ -35,17 +34,13 @@ a2) \to (P a1)))) \to (P a2)))) \to (\forall (a: A).(P a)))
  let Q \def (\lambda (P: ((A \to Prop))).(\lambda (n: nat).(\forall (a: 
 A).((eq nat (lweight a) n) \to (P a))))) in (\lambda (P: ((A \to 
 Prop))).(\lambda (H: ((\forall (a2: A).(((\forall (a1: A).((lt (lweight a1) 
-(lweight a2)) \to (P a1)))) \to (P a2))))).(\lambda (a: A).(let TMP_1 \def 
-(\lambda (a0: A).(P a0)) in (let TMP_11 \def (\lambda (n: nat).(let TMP_2 
-\def (\lambda (a0: A).(P a0)) in (let TMP_3 \def (Q TMP_2) in (let TMP_10 
-\def (\lambda (n0: nat).(\lambda (H0: ((\forall (m: nat).((lt m n0) \to (Q 
-(\lambda (a0: A).(P a0)) m))))).(\lambda (a0: A).(\lambda (H1: (eq nat 
-(lweight a0) n0)).(let TMP_4 \def (\lambda (n1: nat).(\forall (m: nat).((lt m 
-n1) \to (\forall (a1: A).((eq nat (lweight a1) m) \to (P a1)))))) in (let 
-TMP_5 \def (lweight a0) in (let H2 \def (eq_ind_r nat n0 TMP_4 H0 TMP_5 H1) 
-in (let TMP_9 \def (\lambda (a1: A).(\lambda (H3: (lt (lweight a1) (lweight 
-a0))).(let TMP_6 \def (lweight a1) in (let TMP_7 \def (lweight a1) in (let 
-TMP_8 \def (refl_equal nat TMP_7) in (H2 TMP_6 H3 a1 TMP_8)))))) in (H a0 
-TMP_9))))))))) in (lt_wf_ind n TMP_3 TMP_10))))) in (llt_wf__q_ind TMP_1 
-TMP_11 a)))))).
+(lweight a2)) \to (P a1)))) \to (P a2))))).(\lambda (a: A).(llt_wf__q_ind 
+(\lambda (a0: A).(P a0)) (\lambda (n: nat).(lt_wf_ind n (Q (\lambda (a0: 
+A).(P a0))) (\lambda (n0: nat).(\lambda (H0: ((\forall (m: nat).((lt m n0) 
+\to (Q (\lambda (a0: A).(P a0)) m))))).(\lambda (a0: A).(\lambda (H1: (eq nat 
+(lweight a0) n0)).(let H2 \def (eq_ind_r nat n0 (\lambda (n1: nat).(\forall 
+(m: nat).((lt m n1) \to (\forall (a1: A).((eq nat (lweight a1) m) \to (P 
+a1)))))) H0 (lweight a0) H1) in (H a0 (\lambda (a1: A).(\lambda (H3: (lt 
+(lweight a1) (lweight a0))).(H2 (lweight a1) H3 a1 (refl_equal nat (lweight 
+a1))))))))))))) a)))).
 
index fb70372f938d8a4ac3b2bd0539ff0c7f82348765..fe0842328619239fab1287e87b48fa45813e015b 100644 (file)
@@ -23,58 +23,43 @@ theorem lweight_repl:
 (lweight a1) (lweight a2)))))
 \def
  \lambda (g: G).(\lambda (a1: A).(\lambda (a2: A).(\lambda (H: (leq g a1 
-a2)).(let TMP_3 \def (\lambda (a: A).(\lambda (a0: A).(let TMP_1 \def 
-(lweight a) in (let TMP_2 \def (lweight a0) in (eq nat TMP_1 TMP_2))))) in 
-(let TMP_4 \def (\lambda (h1: nat).(\lambda (h2: nat).(\lambda (n1: 
-nat).(\lambda (n2: nat).(\lambda (k: nat).(\lambda (_: (eq A (aplus g (ASort 
-h1 n1) k) (aplus g (ASort h2 n2) k))).(refl_equal nat O))))))) in (let TMP_16 
-\def (\lambda (a0: A).(\lambda (a3: A).(\lambda (_: (leq g a0 a3)).(\lambda 
-(H1: (eq nat (lweight a0) (lweight a3))).(\lambda (a4: A).(\lambda (a5: 
-A).(\lambda (_: (leq g a4 a5)).(\lambda (H3: (eq nat (lweight a4) (lweight 
-a5))).(let TMP_5 \def (lweight a0) in (let TMP_6 \def (lweight a4) in (let 
-TMP_7 \def (plus TMP_5 TMP_6) in (let TMP_8 \def (lweight a3) in (let TMP_9 
-\def (lweight a5) in (let TMP_10 \def (plus TMP_8 TMP_9) in (let TMP_11 \def 
-(lweight a0) in (let TMP_12 \def (lweight a3) in (let TMP_13 \def (lweight 
-a4) in (let TMP_14 \def (lweight a5) in (let TMP_15 \def (f_equal2 nat nat 
-nat plus TMP_11 TMP_12 TMP_13 TMP_14 H1 H3) in (f_equal nat nat S TMP_7 
-TMP_10 TMP_15)))))))))))))))))))) in (leq_ind g TMP_3 TMP_4 TMP_16 a1 a2 
-H))))))).
+a2)).(leq_ind g (\lambda (a: A).(\lambda (a0: A).(eq nat (lweight a) (lweight 
+a0)))) (\lambda (h1: nat).(\lambda (h2: nat).(\lambda (n1: nat).(\lambda (n2: 
+nat).(\lambda (k: nat).(\lambda (_: (eq A (aplus g (ASort h1 n1) k) (aplus g 
+(ASort h2 n2) k))).(refl_equal nat O))))))) (\lambda (a0: A).(\lambda (a3: 
+A).(\lambda (_: (leq g a0 a3)).(\lambda (H1: (eq nat (lweight a0) (lweight 
+a3))).(\lambda (a4: A).(\lambda (a5: A).(\lambda (_: (leq g a4 a5)).(\lambda 
+(H3: (eq nat (lweight a4) (lweight a5))).(f_equal nat nat S (plus (lweight 
+a0) (lweight a4)) (plus (lweight a3) (lweight a5)) (f_equal2 nat nat nat plus 
+(lweight a0) (lweight a3) (lweight a4) (lweight a5) H1 H3)))))))))) a1 a2 
+H)))).
 
 theorem llt_repl:
  \forall (g: G).(\forall (a1: A).(\forall (a2: A).((leq g a1 a2) \to (\forall 
 (a3: A).((llt a1 a3) \to (llt a2 a3))))))
 \def
  \lambda (g: G).(\lambda (a1: A).(\lambda (a2: A).(\lambda (H: (leq g a1 
-a2)).(\lambda (a3: A).(\lambda (H0: (lt (lweight a1) (lweight a3))).(let 
-TMP_1 \def (lweight a1) in (let TMP_3 \def (\lambda (n: nat).(let TMP_2 \def 
-(lweight a3) in (lt n TMP_2))) in (let TMP_4 \def (lweight a2) in (let TMP_5 
-\def (lweight_repl g a1 a2 H) in (let H1 \def (eq_ind nat TMP_1 TMP_3 H0 
-TMP_4 TMP_5) in H1)))))))))).
+a2)).(\lambda (a3: A).(\lambda (H0: (lt (lweight a1) (lweight a3))).(let H1 
+\def (eq_ind nat (lweight a1) (\lambda (n: nat).(lt n (lweight a3))) H0 
+(lweight a2) (lweight_repl g a1 a2 H)) in H1)))))).
 
 theorem llt_trans:
  \forall (a1: A).(\forall (a2: A).(\forall (a3: A).((llt a1 a2) \to ((llt a2 
 a3) \to (llt a1 a3)))))
 \def
  \lambda (a1: A).(\lambda (a2: A).(\lambda (a3: A).(\lambda (H: (lt (lweight 
-a1) (lweight a2))).(\lambda (H0: (lt (lweight a2) (lweight a3))).(let TMP_1 
-\def (lweight a1) in (let TMP_2 \def (lweight a2) in (let TMP_3 \def (lweight 
-a3) in (lt_trans TMP_1 TMP_2 TMP_3 H H0)))))))).
+a1) (lweight a2))).(\lambda (H0: (lt (lweight a2) (lweight a3))).(lt_trans 
+(lweight a1) (lweight a2) (lweight a3) H H0))))).
 
 theorem llt_head_sx:
  \forall (a1: A).(\forall (a2: A).(llt a1 (AHead a1 a2)))
 \def
- \lambda (a1: A).(\lambda (a2: A).(let TMP_1 \def (lweight a1) in (let TMP_2 
-\def (lweight a1) in (let TMP_3 \def (lweight a2) in (let TMP_4 \def (plus 
-TMP_2 TMP_3) in (let TMP_5 \def (lweight a1) in (let TMP_6 \def (lweight a2) 
-in (let TMP_7 \def (le_plus_l TMP_5 TMP_6) in (le_n_S TMP_1 TMP_4 
-TMP_7))))))))).
+ \lambda (a1: A).(\lambda (a2: A).(le_n_S (lweight a1) (plus (lweight a1) 
+(lweight a2)) (le_plus_l (lweight a1) (lweight a2)))).
 
 theorem llt_head_dx:
  \forall (a1: A).(\forall (a2: A).(llt a2 (AHead a1 a2)))
 \def
- \lambda (a1: A).(\lambda (a2: A).(let TMP_1 \def (lweight a2) in (let TMP_2 
-\def (lweight a1) in (let TMP_3 \def (lweight a2) in (let TMP_4 \def (plus 
-TMP_2 TMP_3) in (let TMP_5 \def (lweight a1) in (let TMP_6 \def (lweight a2) 
-in (let TMP_7 \def (le_plus_r TMP_5 TMP_6) in (le_n_S TMP_1 TMP_4 
-TMP_7))))))))).
+ \lambda (a1: A).(\lambda (a2: A).(le_n_S (lweight a2) (plus (lweight a1) 
+(lweight a2)) (le_plus_r (lweight a1) (lweight a2)))).
 
index 63eeacb4167e5ab3ca07c964422d68c771ec2768..b622b763c26c88a57cd5eb762d0699b137ffef3c 100644 (file)
@@ -17,6 +17,5 @@
 include "basic_1/G/defs.ma".
 
 let rec next_plus (g: G) (n: nat) (i: nat) on i: nat \def match i with [O 
-\Rightarrow n | (S i0) \Rightarrow (let TMP_1 \def (next_plus g n i0) in 
-(next g TMP_1))].
+\Rightarrow n | (S i0) \Rightarrow (next g (next_plus g n i0))].
 
index 29d7c60d702e8f45b1ab553bebbfb51a15e95cff..84dd3f5fe6943e1f8a517aab9dc6d9a7074e11f4 100644 (file)
@@ -20,70 +20,40 @@ theorem next_plus_assoc:
  \forall (g: G).(\forall (n: nat).(\forall (h1: nat).(\forall (h2: nat).(eq 
 nat (next_plus g (next_plus g n h1) h2) (next_plus g n (plus h1 h2))))))
 \def
- \lambda (g: G).(\lambda (n: nat).(\lambda (h1: nat).(let TMP_5 \def (\lambda 
-(n0: nat).(\forall (h2: nat).(let TMP_1 \def (next_plus g n n0) in (let TMP_2 
-\def (next_plus g TMP_1 h2) in (let TMP_3 \def (plus n0 h2) in (let TMP_4 
-\def (next_plus g n TMP_3) in (eq nat TMP_2 TMP_4))))))) in (let TMP_7 \def 
-(\lambda (h2: nat).(let TMP_6 \def (next_plus g n h2) in (refl_equal nat 
-TMP_6))) in (let TMP_47 \def (\lambda (n0: nat).(\lambda (_: ((\forall (h2: 
-nat).(eq nat (next_plus g (next_plus g n n0) h2) (next_plus g n (plus n0 
-h2)))))).(\lambda (h2: nat).(let TMP_14 \def (\lambda (n1: nat).(let TMP_8 
-\def (next_plus g n n0) in (let TMP_9 \def (next g TMP_8) in (let TMP_10 \def 
-(next_plus g TMP_9 n1) in (let TMP_11 \def (plus n0 n1) in (let TMP_12 \def 
-(next_plus g n TMP_11) in (let TMP_13 \def (next g TMP_12) in (eq nat TMP_10 
-TMP_13)))))))) in (let TMP_19 \def (\lambda (n1: nat).(let TMP_15 \def 
-(next_plus g n n0) in (let TMP_16 \def (next g TMP_15) in (let TMP_17 \def 
-(next_plus g n n1) in (let TMP_18 \def (next g TMP_17) in (eq nat TMP_16 
-TMP_18)))))) in (let TMP_20 \def (next_plus g n n0) in (let TMP_21 \def (next 
-g TMP_20) in (let TMP_22 \def (refl_equal nat TMP_21) in (let TMP_23 \def 
-(plus n0 O) in (let TMP_24 \def (plus_n_O n0) in (let TMP_25 \def (eq_ind nat 
-n0 TMP_19 TMP_22 TMP_23 TMP_24) in (let TMP_46 \def (\lambda (n1: 
-nat).(\lambda (H0: (eq nat (next_plus g (next g (next_plus g n n0)) n1) (next 
-g (next_plus g n (plus n0 n1))))).(let TMP_26 \def (plus n0 n1) in (let 
-TMP_27 \def (S TMP_26) in (let TMP_34 \def (\lambda (n2: nat).(let TMP_28 
-\def (next_plus g n n0) in (let TMP_29 \def (next g TMP_28) in (let TMP_30 
-\def (next_plus g TMP_29 n1) in (let TMP_31 \def (next g TMP_30) in (let 
-TMP_32 \def (next_plus g n n2) in (let TMP_33 \def (next g TMP_32) in (eq nat 
-TMP_31 TMP_33)))))))) in (let TMP_35 \def (next g) in (let TMP_36 \def 
-(next_plus g n n0) in (let TMP_37 \def (next g TMP_36) in (let TMP_38 \def 
-(next_plus g TMP_37 n1) in (let TMP_39 \def (plus n0 n1) in (let TMP_40 \def 
-(next_plus g n TMP_39) in (let TMP_41 \def (next g TMP_40) in (let TMP_42 
-\def (f_equal nat nat TMP_35 TMP_38 TMP_41 H0) in (let TMP_43 \def (S n1) in 
-(let TMP_44 \def (plus n0 TMP_43) in (let TMP_45 \def (plus_n_Sm n0 n1) in 
-(eq_ind nat TMP_27 TMP_34 TMP_42 TMP_44 TMP_45))))))))))))))))) in (nat_ind 
-TMP_14 TMP_25 TMP_46 h2))))))))))))) in (nat_ind TMP_5 TMP_7 TMP_47 h1)))))).
+ \lambda (g: G).(\lambda (n: nat).(\lambda (h1: nat).(nat_ind (\lambda (n0: 
+nat).(\forall (h2: nat).(eq nat (next_plus g (next_plus g n n0) h2) 
+(next_plus g n (plus n0 h2))))) (\lambda (h2: nat).(refl_equal nat (next_plus 
+g n h2))) (\lambda (n0: nat).(\lambda (_: ((\forall (h2: nat).(eq nat 
+(next_plus g (next_plus g n n0) h2) (next_plus g n (plus n0 h2)))))).(\lambda 
+(h2: nat).(nat_ind (\lambda (n1: nat).(eq nat (next_plus g (next g (next_plus 
+g n n0)) n1) (next g (next_plus g n (plus n0 n1))))) (eq_ind nat n0 (\lambda 
+(n1: nat).(eq nat (next g (next_plus g n n0)) (next g (next_plus g n n1)))) 
+(refl_equal nat (next g (next_plus g n n0))) (plus n0 O) (plus_n_O n0)) 
+(\lambda (n1: nat).(\lambda (H0: (eq nat (next_plus g (next g (next_plus g n 
+n0)) n1) (next g (next_plus g n (plus n0 n1))))).(eq_ind nat (S (plus n0 n1)) 
+(\lambda (n2: nat).(eq nat (next g (next_plus g (next g (next_plus g n n0)) 
+n1)) (next g (next_plus g n n2)))) (f_equal nat nat (next g) (next_plus g 
+(next g (next_plus g n n0)) n1) (next g (next_plus g n (plus n0 n1))) H0) 
+(plus n0 (S n1)) (plus_n_Sm n0 n1)))) h2)))) h1))).
 
 theorem next_plus_next:
  \forall (g: G).(\forall (n: nat).(\forall (h: nat).(eq nat (next_plus g 
 (next g n) h) (next g (next_plus g n h)))))
 \def
- \lambda (g: G).(\lambda (n: nat).(\lambda (h: nat).(let TMP_1 \def (S O) in 
-(let TMP_2 \def (plus TMP_1 h) in (let TMP_3 \def (next_plus g n TMP_2) in 
-(let TMP_6 \def (\lambda (n0: nat).(let TMP_4 \def (next_plus g n h) in (let 
-TMP_5 \def (next g TMP_4) in (eq nat n0 TMP_5)))) in (let TMP_7 \def 
-(next_plus g n h) in (let TMP_8 \def (next g TMP_7) in (let TMP_9 \def 
-(refl_equal nat TMP_8) in (let TMP_10 \def (S O) in (let TMP_11 \def 
-(next_plus g n TMP_10) in (let TMP_12 \def (next_plus g TMP_11 h) in (let 
-TMP_13 \def (S O) in (let TMP_14 \def (next_plus_assoc g n TMP_13 h) in 
-(eq_ind_r nat TMP_3 TMP_6 TMP_9 TMP_12 TMP_14))))))))))))))).
+ \lambda (g: G).(\lambda (n: nat).(\lambda (h: nat).(eq_ind_r nat (next_plus 
+g n (plus (S O) h)) (\lambda (n0: nat).(eq nat n0 (next g (next_plus g n 
+h)))) (refl_equal nat (next g (next_plus g n h))) (next_plus g (next_plus g n 
+(S O)) h) (next_plus_assoc g n (S O) h)))).
 
 theorem next_plus_lt:
  \forall (g: G).(\forall (h: nat).(\forall (n: nat).(lt n (next_plus g (next 
 g n) h))))
 \def
- \lambda (g: G).(\lambda (h: nat).(let TMP_3 \def (\lambda (n: nat).(\forall 
-(n0: nat).(let TMP_1 \def (next g n0) in (let TMP_2 \def (next_plus g TMP_1 
-n) in (lt n0 TMP_2))))) in (let TMP_4 \def (\lambda (n: nat).(next_lt g n)) 
-in (let TMP_22 \def (\lambda (n: nat).(\lambda (H: ((\forall (n0: nat).(lt n0 
-(next_plus g (next g n0) n))))).(\lambda (n0: nat).(let TMP_5 \def (next g 
-n0) in (let TMP_6 \def (next g TMP_5) in (let TMP_7 \def (next_plus g TMP_6 
-n) in (let TMP_8 \def (\lambda (n1: nat).(lt n0 n1)) in (let TMP_9 \def (next 
-g n0) in (let TMP_10 \def (next g n0) in (let TMP_11 \def (next g TMP_10) in 
-(let TMP_12 \def (next_plus g TMP_11 n) in (let TMP_13 \def (next_lt g n0) in 
-(let TMP_14 \def (next g n0) in (let TMP_15 \def (H TMP_14) in (let TMP_16 
-\def (lt_trans n0 TMP_9 TMP_12 TMP_13 TMP_15) in (let TMP_17 \def (next g n0) 
-in (let TMP_18 \def (next_plus g TMP_17 n) in (let TMP_19 \def (next g 
-TMP_18) in (let TMP_20 \def (next g n0) in (let TMP_21 \def (next_plus_next g 
-TMP_20 n) in (eq_ind nat TMP_7 TMP_8 TMP_16 TMP_19 
-TMP_21))))))))))))))))))))) in (nat_ind TMP_3 TMP_4 TMP_22 h))))).
+ \lambda (g: G).(\lambda (h: nat).(nat_ind (\lambda (n: nat).(\forall (n0: 
+nat).(lt n0 (next_plus g (next g n0) n)))) (\lambda (n: nat).(next_lt g n)) 
+(\lambda (n: nat).(\lambda (H: ((\forall (n0: nat).(lt n0 (next_plus g (next 
+g n0) n))))).(\lambda (n0: nat).(eq_ind nat (next_plus g (next g (next g n0)) 
+n) (\lambda (n1: nat).(lt n0 n1)) (lt_trans n0 (next g n0) (next_plus g (next 
+g (next g n0)) n) (next_lt g n0) (H (next g n0))) (next g (next_plus g (next 
+g n0) n)) (next_plus_next g (next g n0) n))))) h)).
 
index 42826c1f46a38f591f2c0801a900b2a297da5869..e42bf9e0072d09a9b1dc273ac5be44e615417781 100644 (file)
@@ -26,327 +26,168 @@ theorem nf2_dec:
  \forall (c: C).(\forall (t1: T).(or (nf2 c t1) (ex2 T (\lambda (t2: T).((eq 
 T t1 t2) \to (\forall (P: Prop).P))) (\lambda (t2: T).(pr2 c t1 t2)))))
 \def
- \lambda (c: C).(let TMP_5 \def (\lambda (c0: C).(\forall (t1: T).(let TMP_1 
-\def (\forall (t2: T).((pr2 c0 t1 t2) \to (eq T t1 t2))) in (let TMP_2 \def 
-(\lambda (t2: T).((eq T t1 t2) \to (\forall (P: Prop).P))) in (let TMP_3 \def 
-(\lambda (t2: T).(pr2 c0 t1 t2)) in (let TMP_4 \def (ex2 T TMP_2 TMP_3) in 
-(or TMP_1 TMP_4))))))) in (let TMP_44 \def (\lambda (n: nat).(\lambda (t1: 
-T).(let H_x \def (nf0_dec t1) in (let H \def H_x in (let TMP_6 \def (\forall 
-(t2: T).((pr0 t1 t2) \to (eq T t1 t2))) in (let TMP_7 \def (\lambda (t2: 
-T).((eq T t1 t2) \to (\forall (P: Prop).P))) in (let TMP_8 \def (\lambda (t2: 
-T).(pr0 t1 t2)) in (let TMP_9 \def (ex2 T TMP_7 TMP_8) in (let TMP_10 \def 
-(\forall (t2: T).((pr2 (CSort n) t1 t2) \to (eq T t1 t2))) in (let TMP_11 
-\def (\lambda (t2: T).((eq T t1 t2) \to (\forall (P: Prop).P))) in (let 
-TMP_13 \def (\lambda (t2: T).(let TMP_12 \def (CSort n) in (pr2 TMP_12 t1 
-t2))) in (let TMP_14 \def (ex2 T TMP_11 TMP_13) in (let TMP_15 \def (or 
-TMP_10 TMP_14) in (let TMP_22 \def (\lambda (H0: ((\forall (t2: T).((pr0 t1 
-t2) \to (eq T t1 t2))))).(let TMP_16 \def (\forall (t2: T).((pr2 (CSort n) t1 
-t2) \to (eq T t1 t2))) in (let TMP_17 \def (\lambda (t2: T).((eq T t1 t2) \to 
-(\forall (P: Prop).P))) in (let TMP_19 \def (\lambda (t2: T).(let TMP_18 \def 
-(CSort n) in (pr2 TMP_18 t1 t2))) in (let TMP_20 \def (ex2 T TMP_17 TMP_19) 
-in (let TMP_21 \def (\lambda (t2: T).(\lambda (H1: (pr2 (CSort n) t1 
-t2)).(let H_y \def (pr2_gen_csort t1 t2 n H1) in (H0 t2 H_y)))) in (or_introl 
-TMP_16 TMP_20 TMP_21))))))) in (let TMP_43 \def (\lambda (H0: (ex2 T (\lambda 
-(t2: T).((eq T t1 t2) \to (\forall (P: Prop).P))) (\lambda (t2: T).(pr0 t1 
-t2)))).(let TMP_23 \def (\lambda (t2: T).((eq T t1 t2) \to (\forall (P: 
-Prop).P))) in (let TMP_24 \def (\lambda (t2: T).(pr0 t1 t2)) in (let TMP_25 
-\def (\forall (t2: T).((pr2 (CSort n) t1 t2) \to (eq T t1 t2))) in (let 
-TMP_26 \def (\lambda (t2: T).((eq T t1 t2) \to (\forall (P: Prop).P))) in 
-(let TMP_28 \def (\lambda (t2: T).(let TMP_27 \def (CSort n) in (pr2 TMP_27 
-t1 t2))) in (let TMP_29 \def (ex2 T TMP_26 TMP_28) in (let TMP_30 \def (or 
-TMP_25 TMP_29) in (let TMP_42 \def (\lambda (x: T).(\lambda (H1: (((eq T t1 
-x) \to (\forall (P: Prop).P)))).(\lambda (H2: (pr0 t1 x)).(let TMP_31 \def 
-(\forall (t2: T).((pr2 (CSort n) t1 t2) \to (eq T t1 t2))) in (let TMP_32 
-\def (\lambda (t2: T).((eq T t1 t2) \to (\forall (P: Prop).P))) in (let 
-TMP_34 \def (\lambda (t2: T).(let TMP_33 \def (CSort n) in (pr2 TMP_33 t1 
-t2))) in (let TMP_35 \def (ex2 T TMP_32 TMP_34) in (let TMP_36 \def (\lambda 
-(t2: T).((eq T t1 t2) \to (\forall (P: Prop).P))) in (let TMP_38 \def 
-(\lambda (t2: T).(let TMP_37 \def (CSort n) in (pr2 TMP_37 t1 t2))) in (let 
-TMP_39 \def (CSort n) in (let TMP_40 \def (pr2_free TMP_39 t1 x H2) in (let 
-TMP_41 \def (ex_intro2 T TMP_36 TMP_38 x H1 TMP_40) in (or_intror TMP_31 
-TMP_35 TMP_41))))))))))))) in (ex2_ind T TMP_23 TMP_24 TMP_30 TMP_42 
-H0)))))))))) in (or_ind TMP_6 TMP_9 TMP_15 TMP_22 TMP_43 H)))))))))))))))) in 
-(let TMP_404 \def (\lambda (c0: C).(\lambda (H: ((\forall (t1: T).(or 
+ \lambda (c: C).(c_tail_ind (\lambda (c0: C).(\forall (t1: T).(or (\forall 
+(t2: T).((pr2 c0 t1 t2) \to (eq T t1 t2))) (ex2 T (\lambda (t2: T).((eq T t1 
+t2) \to (\forall (P: Prop).P))) (\lambda (t2: T).(pr2 c0 t1 t2)))))) (\lambda 
+(n: nat).(\lambda (t1: T).(let H_x \def (nf0_dec t1) in (let H \def H_x in 
+(or_ind (\forall (t2: T).((pr0 t1 t2) \to (eq T t1 t2))) (ex2 T (\lambda (t2: 
+T).((eq T t1 t2) \to (\forall (P: Prop).P))) (\lambda (t2: T).(pr0 t1 t2))) 
+(or (\forall (t2: T).((pr2 (CSort n) t1 t2) \to (eq T t1 t2))) (ex2 T 
+(\lambda (t2: T).((eq T t1 t2) \to (\forall (P: Prop).P))) (\lambda (t2: 
+T).(pr2 (CSort n) t1 t2)))) (\lambda (H0: ((\forall (t2: T).((pr0 t1 t2) \to 
+(eq T t1 t2))))).(or_introl (\forall (t2: T).((pr2 (CSort n) t1 t2) \to (eq T 
+t1 t2))) (ex2 T (\lambda (t2: T).((eq T t1 t2) \to (\forall (P: Prop).P))) 
+(\lambda (t2: T).(pr2 (CSort n) t1 t2))) (\lambda (t2: T).(\lambda (H1: (pr2 
+(CSort n) t1 t2)).(let H_y \def (pr2_gen_csort t1 t2 n H1) in (H0 t2 
+H_y)))))) (\lambda (H0: (ex2 T (\lambda (t2: T).((eq T t1 t2) \to (\forall 
+(P: Prop).P))) (\lambda (t2: T).(pr0 t1 t2)))).(ex2_ind T (\lambda (t2: 
+T).((eq T t1 t2) \to (\forall (P: Prop).P))) (\lambda (t2: T).(pr0 t1 t2)) 
+(or (\forall (t2: T).((pr2 (CSort n) t1 t2) \to (eq T t1 t2))) (ex2 T 
+(\lambda (t2: T).((eq T t1 t2) \to (\forall (P: Prop).P))) (\lambda (t2: 
+T).(pr2 (CSort n) t1 t2)))) (\lambda (x: T).(\lambda (H1: (((eq T t1 x) \to 
+(\forall (P: Prop).P)))).(\lambda (H2: (pr0 t1 x)).(or_intror (\forall (t2: 
+T).((pr2 (CSort n) t1 t2) \to (eq T t1 t2))) (ex2 T (\lambda (t2: T).((eq T 
+t1 t2) \to (\forall (P: Prop).P))) (\lambda (t2: T).(pr2 (CSort n) t1 t2))) 
+(ex_intro2 T (\lambda (t2: T).((eq T t1 t2) \to (\forall (P: Prop).P))) 
+(\lambda (t2: T).(pr2 (CSort n) t1 t2)) x H1 (pr2_free (CSort n) t1 x 
+H2)))))) H0)) H))))) (\lambda (c0: C).(\lambda (H: ((\forall (t1: T).(or 
 (\forall (t2: T).((pr2 c0 t1 t2) \to (eq T t1 t2))) (ex2 T (\lambda (t2: 
 T).((eq T t1 t2) \to (\forall (P: Prop).P))) (\lambda (t2: T).(pr2 c0 t1 
 t2))))))).(\lambda (k: K).(\lambda (t: T).(\lambda (t1: T).(let H_x \def (H 
-t1) in (let H0 \def H_x in (let TMP_45 \def (\forall (t2: T).((pr2 c0 t1 t2) 
-\to (eq T t1 t2))) in (let TMP_46 \def (\lambda (t2: T).((eq T t1 t2) \to 
-(\forall (P: Prop).P))) in (let TMP_47 \def (\lambda (t2: T).(pr2 c0 t1 t2)) 
-in (let TMP_48 \def (ex2 T TMP_46 TMP_47) in (let TMP_49 \def (\forall (t2: 
-T).((pr2 (CTail k t c0) t1 t2) \to (eq T t1 t2))) in (let TMP_50 \def 
-(\lambda (t2: T).((eq T t1 t2) \to (\forall (P: Prop).P))) in (let TMP_52 
-\def (\lambda (t2: T).(let TMP_51 \def (CTail k t c0) in (pr2 TMP_51 t1 t2))) 
-in (let TMP_53 \def (ex2 T TMP_50 TMP_52) in (let TMP_54 \def (or TMP_49 
-TMP_53) in (let TMP_383 \def (\lambda (H1: ((\forall (t2: T).((pr2 c0 t1 t2) 
-\to (eq T t1 t2))))).(let TMP_60 \def (\lambda (k0: K).(let TMP_55 \def 
-(\forall (t2: T).((pr2 (CTail k0 t c0) t1 t2) \to (eq T t1 t2))) in (let 
-TMP_56 \def (\lambda (t2: T).((eq T t1 t2) \to (\forall (P: Prop).P))) in 
-(let TMP_58 \def (\lambda (t2: T).(let TMP_57 \def (CTail k0 t c0) in (pr2 
-TMP_57 t1 t2))) in (let TMP_59 \def (ex2 T TMP_56 TMP_58) in (or TMP_55 
-TMP_59)))))) in (let TMP_350 \def (\lambda (b: B).(let TMP_67 \def (\lambda 
-(b0: B).(let TMP_61 \def (\forall (t2: T).((pr2 (CTail (Bind b0) t c0) t1 t2) 
-\to (eq T t1 t2))) in (let TMP_62 \def (\lambda (t2: T).((eq T t1 t2) \to 
-(\forall (P: Prop).P))) in (let TMP_65 \def (\lambda (t2: T).(let TMP_63 \def 
-(Bind b0) in (let TMP_64 \def (CTail TMP_63 t c0) in (pr2 TMP_64 t1 t2)))) in 
-(let TMP_66 \def (ex2 T TMP_62 TMP_65) in (or TMP_61 TMP_66)))))) in (let 
-TMP_68 \def (clen c0) in (let H_x0 \def (dnf_dec t t1 TMP_68) in (let H2 \def 
-H_x0 in (let TMP_78 \def (\lambda (v: T).(let TMP_69 \def (clen c0) in (let 
-TMP_70 \def (S O) in (let TMP_71 \def (clen c0) in (let TMP_72 \def (lift 
-TMP_70 TMP_71 v) in (let TMP_73 \def (subst0 TMP_69 t t1 TMP_72) in (let 
-TMP_74 \def (S O) in (let TMP_75 \def (clen c0) in (let TMP_76 \def (lift 
-TMP_74 TMP_75 v) in (let TMP_77 \def (eq T t1 TMP_76) in (or TMP_73 
-TMP_77))))))))))) in (let TMP_79 \def (\forall (t2: T).((pr2 (CTail (Bind 
-Abbr) t c0) t1 t2) \to (eq T t1 t2))) in (let TMP_80 \def (\lambda (t2: 
-T).((eq T t1 t2) \to (\forall (P: Prop).P))) in (let TMP_83 \def (\lambda 
-(t2: T).(let TMP_81 \def (Bind Abbr) in (let TMP_82 \def (CTail TMP_81 t c0) 
-in (pr2 TMP_82 t1 t2)))) in (let TMP_84 \def (ex2 T TMP_80 TMP_83) in (let 
-TMP_85 \def (or TMP_79 TMP_84) in (let TMP_284 \def (\lambda (x: T).(\lambda 
-(H3: (or (subst0 (clen c0) t t1 (lift (S O) (clen c0) x)) (eq T t1 (lift (S 
-O) (clen c0) x)))).(let TMP_86 \def (clen c0) in (let TMP_87 \def (S O) in 
-(let TMP_88 \def (clen c0) in (let TMP_89 \def (lift TMP_87 TMP_88 x) in (let 
-TMP_90 \def (subst0 TMP_86 t t1 TMP_89) in (let TMP_91 \def (S O) in (let 
-TMP_92 \def (clen c0) in (let TMP_93 \def (lift TMP_91 TMP_92 x) in (let 
-TMP_94 \def (eq T t1 TMP_93) in (let TMP_95 \def (\forall (t2: T).((pr2 
-(CTail (Bind Abbr) t c0) t1 t2) \to (eq T t1 t2))) in (let TMP_96 \def 
-(\lambda (t2: T).((eq T t1 t2) \to (\forall (P: Prop).P))) in (let TMP_99 
-\def (\lambda (t2: T).(let TMP_97 \def (Bind Abbr) in (let TMP_98 \def (CTail 
-TMP_97 t c0) in (pr2 TMP_98 t1 t2)))) in (let TMP_100 \def (ex2 T TMP_96 
-TMP_99) in (let TMP_101 \def (or TMP_95 TMP_100) in (let TMP_173 \def 
-(\lambda (H4: (subst0 (clen c0) t t1 (lift (S O) (clen c0) x))).(let H_x1 
-\def (getl_ctail_clen Abbr t c0) in (let H5 \def H_x1 in (let TMP_108 \def 
-(\lambda (n: nat).(let TMP_102 \def (clen c0) in (let TMP_103 \def (Bind 
-Abbr) in (let TMP_104 \def (CTail TMP_103 t c0) in (let TMP_105 \def (CSort 
-n) in (let TMP_106 \def (Bind Abbr) in (let TMP_107 \def (CHead TMP_105 
-TMP_106 t) in (getl TMP_102 TMP_104 TMP_107)))))))) in (let TMP_109 \def 
-(\forall (t2: T).((pr2 (CTail (Bind Abbr) t c0) t1 t2) \to (eq T t1 t2))) in 
-(let TMP_110 \def (\lambda (t2: T).((eq T t1 t2) \to (\forall (P: Prop).P))) 
-in (let TMP_113 \def (\lambda (t2: T).(let TMP_111 \def (Bind Abbr) in (let 
-TMP_112 \def (CTail TMP_111 t c0) in (pr2 TMP_112 t1 t2)))) in (let TMP_114 
-\def (ex2 T TMP_110 TMP_113) in (let TMP_115 \def (or TMP_109 TMP_114) in 
-(let TMP_172 \def (\lambda (x0: nat).(\lambda (H6: (getl (clen c0) (CTail 
-(Bind Abbr) t c0) (CHead (CSort x0) (Bind Abbr) t))).(let TMP_116 \def 
-(\forall (t2: T).((pr2 (CTail (Bind Abbr) t c0) t1 t2) \to (eq T t1 t2))) in 
-(let TMP_117 \def (\lambda (t2: T).((eq T t1 t2) \to (\forall (P: Prop).P))) 
-in (let TMP_120 \def (\lambda (t2: T).(let TMP_118 \def (Bind Abbr) in (let 
-TMP_119 \def (CTail TMP_118 t c0) in (pr2 TMP_119 t1 t2)))) in (let TMP_121 
-\def (ex2 T TMP_117 TMP_120) in (let TMP_122 \def (\lambda (t2: T).((eq T t1 
-t2) \to (\forall (P: Prop).P))) in (let TMP_125 \def (\lambda (t2: T).(let 
-TMP_123 \def (Bind Abbr) in (let TMP_124 \def (CTail TMP_123 t c0) in (pr2 
-TMP_124 t1 t2)))) in (let TMP_126 \def (S O) in (let TMP_127 \def (clen c0) 
-in (let TMP_128 \def (lift TMP_126 TMP_127 x) in (let TMP_161 \def (\lambda 
-(H7: (eq T t1 (lift (S O) (clen c0) x))).(\lambda (P: Prop).(let TMP_133 \def 
-(\lambda (t0: T).(let TMP_129 \def (clen c0) in (let TMP_130 \def (S O) in 
-(let TMP_131 \def (clen c0) in (let TMP_132 \def (lift TMP_130 TMP_131 x) in 
-(subst0 TMP_129 t t0 TMP_132)))))) in (let TMP_134 \def (S O) in (let TMP_135 
-\def (clen c0) in (let TMP_136 \def (lift TMP_134 TMP_135 x) in (let H8 \def 
-(eq_ind T t1 TMP_133 H4 TMP_136 H7) in (let TMP_137 \def (S O) in (let 
-TMP_138 \def (clen c0) in (let TMP_139 \def (lift TMP_137 TMP_138 x) in (let 
-TMP_140 \def (S O) in (let TMP_141 \def (clen c0) in (let TMP_142 \def (clen 
-c0) in (let TMP_143 \def (clen c0) in (let TMP_144 \def (le_n TMP_143) in 
-(let TMP_145 \def (S O) in (let TMP_146 \def (clen c0) in (let TMP_147 \def 
-(plus TMP_145 TMP_146) in (let TMP_149 \def (\lambda (n: nat).(let TMP_148 
-\def (clen c0) in (lt TMP_148 n))) in (let TMP_150 \def (S O) in (let TMP_151 
-\def (clen c0) in (let TMP_152 \def (plus TMP_150 TMP_151) in (let TMP_153 
-\def (le_n TMP_152) in (let TMP_154 \def (clen c0) in (let TMP_155 \def (S O) 
-in (let TMP_156 \def (plus TMP_154 TMP_155) in (let TMP_157 \def (clen c0) in 
-(let TMP_158 \def (S O) in (let TMP_159 \def (plus_sym TMP_157 TMP_158) in 
-(let TMP_160 \def (eq_ind_r nat TMP_147 TMP_149 TMP_153 TMP_156 TMP_159) in 
-(subst0_gen_lift_false x t TMP_139 TMP_140 TMP_141 TMP_142 TMP_144 TMP_160 H8 
-P))))))))))))))))))))))))))))))) in (let TMP_162 \def (Bind Abbr) in (let 
-TMP_163 \def (CTail TMP_162 t c0) in (let TMP_164 \def (CSort x0) in (let 
-TMP_165 \def (clen c0) in (let TMP_166 \def (pr0_refl t1) in (let TMP_167 
-\def (S O) in (let TMP_168 \def (clen c0) in (let TMP_169 \def (lift TMP_167 
-TMP_168 x) in (let TMP_170 \def (pr2_delta TMP_163 TMP_164 t TMP_165 H6 t1 t1 
-TMP_166 TMP_169 H4) in (let TMP_171 \def (ex_intro2 T TMP_122 TMP_125 TMP_128 
-TMP_161 TMP_170) in (or_intror TMP_116 TMP_121 TMP_171))))))))))))))))))))))) 
-in (ex_ind nat TMP_108 TMP_115 TMP_172 H5))))))))))) in (let TMP_283 \def 
-(\lambda (H4: (eq T t1 (lift (S O) (clen c0) x))).(let TMP_174 \def (\lambda 
-(t0: T).(\forall (t2: T).((pr2 c0 t0 t2) \to (eq T t0 t2)))) in (let TMP_175 
-\def (S O) in (let TMP_176 \def (clen c0) in (let TMP_177 \def (lift TMP_175 
-TMP_176 x) in (let H5 \def (eq_ind T t1 TMP_174 H1 TMP_177 H4) in (let 
-TMP_178 \def (S O) in (let TMP_179 \def (clen c0) in (let TMP_180 \def (lift 
-TMP_178 TMP_179 x) in (let TMP_187 \def (\lambda (t0: T).(let TMP_181 \def 
-(\forall (t2: T).((pr2 (CTail (Bind Abbr) t c0) t0 t2) \to (eq T t0 t2))) in 
-(let TMP_182 \def (\lambda (t2: T).((eq T t0 t2) \to (\forall (P: Prop).P))) 
-in (let TMP_185 \def (\lambda (t2: T).(let TMP_183 \def (Bind Abbr) in (let 
-TMP_184 \def (CTail TMP_183 t c0) in (pr2 TMP_184 t0 t2)))) in (let TMP_186 
-\def (ex2 T TMP_182 TMP_185) in (or TMP_181 TMP_186)))))) in (let TMP_191 
-\def (\forall (t2: T).((pr2 (CTail (Bind Abbr) t c0) (lift (S O) (clen c0) x) 
-t2) \to (let TMP_188 \def (S O) in (let TMP_189 \def (clen c0) in (let 
-TMP_190 \def (lift TMP_188 TMP_189 x) in (eq T TMP_190 t2)))))) in (let 
-TMP_192 \def (\lambda (t2: T).((eq T (lift (S O) (clen c0) x) t2) \to 
-(\forall (P: Prop).P))) in (let TMP_198 \def (\lambda (t2: T).(let TMP_193 
-\def (Bind Abbr) in (let TMP_194 \def (CTail TMP_193 t c0) in (let TMP_195 
-\def (S O) in (let TMP_196 \def (clen c0) in (let TMP_197 \def (lift TMP_195 
-TMP_196 x) in (pr2 TMP_194 TMP_197 t2))))))) in (let TMP_199 \def (ex2 T 
-TMP_192 TMP_198) in (let TMP_281 \def (\lambda (t2: T).(\lambda (H6: (pr2 
-(CTail (Bind Abbr) t c0) (lift (S O) (clen c0) x) t2)).(let TMP_200 \def 
-(Bind Abbr) in (let TMP_201 \def (S O) in (let TMP_202 \def (clen c0) in (let 
-TMP_203 \def (lift TMP_201 TMP_202 x) in (let H_x1 \def (pr2_gen_ctail 
-TMP_200 c0 t TMP_203 t2 H6) in (let H7 \def H_x1 in (let TMP_204 \def (S O) 
-in (let TMP_205 \def (clen c0) in (let TMP_206 \def (lift TMP_204 TMP_205 x) 
-in (let TMP_207 \def (pr2 c0 TMP_206 t2) in (let TMP_210 \def (\lambda (_: 
-T).(let TMP_208 \def (Bind Abbr) in (let TMP_209 \def (Bind Abbr) in (eq K 
-TMP_208 TMP_209)))) in (let TMP_214 \def (\lambda (t0: T).(let TMP_211 \def 
-(S O) in (let TMP_212 \def (clen c0) in (let TMP_213 \def (lift TMP_211 
-TMP_212 x) in (pr0 TMP_213 t0))))) in (let TMP_216 \def (\lambda (t0: T).(let 
-TMP_215 \def (clen c0) in (subst0 TMP_215 t t0 t2))) in (let TMP_217 \def 
-(ex3 T TMP_210 TMP_214 TMP_216) in (let TMP_218 \def (S O) in (let TMP_219 
-\def (clen c0) in (let TMP_220 \def (lift TMP_218 TMP_219 x) in (let TMP_221 
-\def (eq T TMP_220 t2) in (let TMP_222 \def (\lambda (H8: (pr2 c0 (lift (S O) 
-(clen c0) x) t2)).(H5 t2 H8)) in (let TMP_280 \def (\lambda (H8: (ex3 T 
-(\lambda (_: T).(eq K (Bind Abbr) (Bind Abbr))) (\lambda (t0: T).(pr0 (lift 
-(S O) (clen c0) x) t0)) (\lambda (t0: T).(subst0 (clen c0) t t0 t2)))).(let 
-TMP_225 \def (\lambda (_: T).(let TMP_223 \def (Bind Abbr) in (let TMP_224 
-\def (Bind Abbr) in (eq K TMP_223 TMP_224)))) in (let TMP_229 \def (\lambda 
-(t0: T).(let TMP_226 \def (S O) in (let TMP_227 \def (clen c0) in (let 
-TMP_228 \def (lift TMP_226 TMP_227 x) in (pr0 TMP_228 t0))))) in (let TMP_231 
-\def (\lambda (t0: T).(let TMP_230 \def (clen c0) in (subst0 TMP_230 t t0 
-t2))) in (let TMP_232 \def (S O) in (let TMP_233 \def (clen c0) in (let 
-TMP_234 \def (lift TMP_232 TMP_233 x) in (let TMP_235 \def (eq T TMP_234 t2) 
-in (let TMP_279 \def (\lambda (x0: T).(\lambda (_: (eq K (Bind Abbr) (Bind 
-Abbr))).(\lambda (H10: (pr0 (lift (S O) (clen c0) x) x0)).(\lambda (H11: 
-(subst0 (clen c0) t x0 t2)).(let TMP_239 \def (\lambda (t3: T).(let TMP_236 
-\def (S O) in (let TMP_237 \def (clen c0) in (let TMP_238 \def (lift TMP_236 
-TMP_237 t3) in (eq T x0 TMP_238))))) in (let TMP_240 \def (\lambda (t3: 
-T).(pr0 x t3)) in (let TMP_241 \def (S O) in (let TMP_242 \def (clen c0) in 
-(let TMP_243 \def (lift TMP_241 TMP_242 x) in (let TMP_244 \def (eq T TMP_243 
-t2) in (let TMP_275 \def (\lambda (x1: T).(\lambda (H12: (eq T x0 (lift (S O) 
-(clen c0) x1))).(\lambda (_: (pr0 x x1)).(let TMP_246 \def (\lambda (t0: 
-T).(let TMP_245 \def (clen c0) in (subst0 TMP_245 t t0 t2))) in (let TMP_247 
-\def (S O) in (let TMP_248 \def (clen c0) in (let TMP_249 \def (lift TMP_247 
-TMP_248 x1) in (let H14 \def (eq_ind T x0 TMP_246 H11 TMP_249 H12) in (let 
-TMP_250 \def (S O) in (let TMP_251 \def (clen c0) in (let TMP_252 \def (clen 
-c0) in (let TMP_253 \def (clen c0) in (let TMP_254 \def (le_n TMP_253) in 
-(let TMP_255 \def (S O) in (let TMP_256 \def (clen c0) in (let TMP_257 \def 
-(plus TMP_255 TMP_256) in (let TMP_259 \def (\lambda (n: nat).(let TMP_258 
-\def (clen c0) in (lt TMP_258 n))) in (let TMP_260 \def (S O) in (let TMP_261 
-\def (clen c0) in (let TMP_262 \def (plus TMP_260 TMP_261) in (let TMP_263 
-\def (le_n TMP_262) in (let TMP_264 \def (clen c0) in (let TMP_265 \def (S O) 
-in (let TMP_266 \def (plus TMP_264 TMP_265) in (let TMP_267 \def (clen c0) in 
-(let TMP_268 \def (S O) in (let TMP_269 \def (plus_sym TMP_267 TMP_268) in 
-(let TMP_270 \def (eq_ind_r nat TMP_257 TMP_259 TMP_263 TMP_266 TMP_269) in 
-(let TMP_271 \def (S O) in (let TMP_272 \def (clen c0) in (let TMP_273 \def 
-(lift TMP_271 TMP_272 x) in (let TMP_274 \def (eq T TMP_273 t2) in 
-(subst0_gen_lift_false x1 t t2 TMP_250 TMP_251 TMP_252 TMP_254 TMP_270 H14 
-TMP_274))))))))))))))))))))))))))))))))) in (let TMP_276 \def (S O) in (let 
-TMP_277 \def (clen c0) in (let TMP_278 \def (pr0_gen_lift x x0 TMP_276 
-TMP_277 H10) in (ex2_ind T TMP_239 TMP_240 TMP_244 TMP_275 
-TMP_278))))))))))))))) in (ex3_ind T TMP_225 TMP_229 TMP_231 TMP_235 TMP_279 
-H8)))))))))) in (or_ind TMP_207 TMP_217 TMP_221 TMP_222 TMP_280 
-H7))))))))))))))))))))))) in (let TMP_282 \def (or_introl TMP_191 TMP_199 
-TMP_281) in (eq_ind_r T TMP_180 TMP_187 TMP_282 t1 H4))))))))))))))))) in 
-(or_ind TMP_90 TMP_94 TMP_101 TMP_173 TMP_283 H3))))))))))))))))))) in (let 
-TMP_285 \def (ex_ind T TMP_78 TMP_85 TMP_284 H2) in (let TMP_286 \def 
-(\forall (t2: T).((pr2 (CTail (Bind Abst) t c0) t1 t2) \to (eq T t1 t2))) in 
-(let TMP_287 \def (\lambda (t2: T).((eq T t1 t2) \to (\forall (P: Prop).P))) 
-in (let TMP_290 \def (\lambda (t2: T).(let TMP_288 \def (Bind Abst) in (let 
-TMP_289 \def (CTail TMP_288 t c0) in (pr2 TMP_289 t1 t2)))) in (let TMP_291 
-\def (ex2 T TMP_287 TMP_290) in (let TMP_316 \def (\lambda (t2: T).(\lambda 
-(H2: (pr2 (CTail (Bind Abst) t c0) t1 t2)).(let TMP_292 \def (Bind Abst) in 
-(let H_x0 \def (pr2_gen_ctail TMP_292 c0 t t1 t2 H2) in (let H3 \def H_x0 in 
-(let TMP_293 \def (pr2 c0 t1 t2) in (let TMP_296 \def (\lambda (_: T).(let 
-TMP_294 \def (Bind Abst) in (let TMP_295 \def (Bind Abbr) in (eq K TMP_294 
-TMP_295)))) in (let TMP_297 \def (\lambda (t0: T).(pr0 t1 t0)) in (let 
-TMP_299 \def (\lambda (t0: T).(let TMP_298 \def (clen c0) in (subst0 TMP_298 
-t t0 t2))) in (let TMP_300 \def (ex3 T TMP_296 TMP_297 TMP_299) in (let 
-TMP_301 \def (eq T t1 t2) in (let TMP_302 \def (\lambda (H4: (pr2 c0 t1 
-t2)).(H1 t2 H4)) in (let TMP_315 \def (\lambda (H4: (ex3 T (\lambda (_: 
-T).(eq K (Bind Abst) (Bind Abbr))) (\lambda (t0: T).(pr0 t1 t0)) (\lambda 
-(t0: T).(subst0 (clen c0) t t0 t2)))).(let TMP_305 \def (\lambda (_: T).(let 
-TMP_303 \def (Bind Abst) in (let TMP_304 \def (Bind Abbr) in (eq K TMP_303 
-TMP_304)))) in (let TMP_306 \def (\lambda (t0: T).(pr0 t1 t0)) in (let 
-TMP_308 \def (\lambda (t0: T).(let TMP_307 \def (clen c0) in (subst0 TMP_307 
-t t0 t2))) in (let TMP_309 \def (eq T t1 t2) in (let TMP_314 \def (\lambda 
-(x0: T).(\lambda (H5: (eq K (Bind Abst) (Bind Abbr))).(\lambda (_: (pr0 t1 
-x0)).(\lambda (_: (subst0 (clen c0) t x0 t2)).(let TMP_310 \def (Bind Abst) 
-in (let TMP_311 \def (\lambda (ee: K).(match ee with [(Bind b0) \Rightarrow 
-(match b0 with [Abbr \Rightarrow False | Abst \Rightarrow True | Void 
-\Rightarrow False]) | (Flat _) \Rightarrow False])) in (let TMP_312 \def 
-(Bind Abbr) in (let H8 \def (eq_ind K TMP_310 TMP_311 I TMP_312 H5) in (let 
-TMP_313 \def (eq T t1 t2) in (False_ind TMP_313 H8)))))))))) in (ex3_ind T 
-TMP_305 TMP_306 TMP_308 TMP_309 TMP_314 H4))))))) in (or_ind TMP_293 TMP_300 
-TMP_301 TMP_302 TMP_315 H3)))))))))))))) in (let TMP_317 \def (or_introl 
-TMP_286 TMP_291 TMP_316) in (let TMP_318 \def (\forall (t2: T).((pr2 (CTail 
-(Bind Void) t c0) t1 t2) \to (eq T t1 t2))) in (let TMP_319 \def (\lambda 
-(t2: T).((eq T t1 t2) \to (\forall (P: Prop).P))) in (let TMP_322 \def 
-(\lambda (t2: T).(let TMP_320 \def (Bind Void) in (let TMP_321 \def (CTail 
-TMP_320 t c0) in (pr2 TMP_321 t1 t2)))) in (let TMP_323 \def (ex2 T TMP_319 
-TMP_322) in (let TMP_348 \def (\lambda (t2: T).(\lambda (H2: (pr2 (CTail 
-(Bind Void) t c0) t1 t2)).(let TMP_324 \def (Bind Void) in (let H_x0 \def 
-(pr2_gen_ctail TMP_324 c0 t t1 t2 H2) in (let H3 \def H_x0 in (let TMP_325 
-\def (pr2 c0 t1 t2) in (let TMP_328 \def (\lambda (_: T).(let TMP_326 \def 
-(Bind Void) in (let TMP_327 \def (Bind Abbr) in (eq K TMP_326 TMP_327)))) in 
-(let TMP_329 \def (\lambda (t0: T).(pr0 t1 t0)) in (let TMP_331 \def (\lambda 
-(t0: T).(let TMP_330 \def (clen c0) in (subst0 TMP_330 t t0 t2))) in (let 
-TMP_332 \def (ex3 T TMP_328 TMP_329 TMP_331) in (let TMP_333 \def (eq T t1 
-t2) in (let TMP_334 \def (\lambda (H4: (pr2 c0 t1 t2)).(H1 t2 H4)) in (let 
-TMP_347 \def (\lambda (H4: (ex3 T (\lambda (_: T).(eq K (Bind Void) (Bind 
-Abbr))) (\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0: T).(subst0 (clen c0) t t0 
-t2)))).(let TMP_337 \def (\lambda (_: T).(let TMP_335 \def (Bind Void) in 
-(let TMP_336 \def (Bind Abbr) in (eq K TMP_335 TMP_336)))) in (let TMP_338 
-\def (\lambda (t0: T).(pr0 t1 t0)) in (let TMP_340 \def (\lambda (t0: T).(let 
-TMP_339 \def (clen c0) in (subst0 TMP_339 t t0 t2))) in (let TMP_341 \def (eq 
-T t1 t2) in (let TMP_346 \def (\lambda (x0: T).(\lambda (H5: (eq K (Bind 
-Void) (Bind Abbr))).(\lambda (_: (pr0 t1 x0)).(\lambda (_: (subst0 (clen c0) 
-t x0 t2)).(let TMP_342 \def (Bind Void) in (let TMP_343 \def (\lambda (ee: 
+t1) in (let H0 \def H_x in (or_ind (\forall (t2: T).((pr2 c0 t1 t2) \to (eq T 
+t1 t2))) (ex2 T (\lambda (t2: T).((eq T t1 t2) \to (\forall (P: Prop).P))) 
+(\lambda (t2: T).(pr2 c0 t1 t2))) (or (\forall (t2: T).((pr2 (CTail k t c0) 
+t1 t2) \to (eq T t1 t2))) (ex2 T (\lambda (t2: T).((eq T t1 t2) \to (\forall 
+(P: Prop).P))) (\lambda (t2: T).(pr2 (CTail k t c0) t1 t2)))) (\lambda (H1: 
+((\forall (t2: T).((pr2 c0 t1 t2) \to (eq T t1 t2))))).(K_ind (\lambda (k0: 
+K).(or (\forall (t2: T).((pr2 (CTail k0 t c0) t1 t2) \to (eq T t1 t2))) (ex2 
+T (\lambda (t2: T).((eq T t1 t2) \to (\forall (P: Prop).P))) (\lambda (t2: 
+T).(pr2 (CTail k0 t c0) t1 t2))))) (\lambda (b: B).(B_ind (\lambda (b0: 
+B).(or (\forall (t2: T).((pr2 (CTail (Bind b0) t c0) t1 t2) \to (eq T t1 
+t2))) (ex2 T (\lambda (t2: T).((eq T t1 t2) \to (\forall (P: Prop).P))) 
+(\lambda (t2: T).(pr2 (CTail (Bind b0) t c0) t1 t2))))) (let H_x0 \def 
+(dnf_dec t t1 (clen c0)) in (let H2 \def H_x0 in (ex_ind T (\lambda (v: 
+T).(or (subst0 (clen c0) t t1 (lift (S O) (clen c0) v)) (eq T t1 (lift (S O) 
+(clen c0) v)))) (or (\forall (t2: T).((pr2 (CTail (Bind Abbr) t c0) t1 t2) 
+\to (eq T t1 t2))) (ex2 T (\lambda (t2: T).((eq T t1 t2) \to (\forall (P: 
+Prop).P))) (\lambda (t2: T).(pr2 (CTail (Bind Abbr) t c0) t1 t2)))) (\lambda 
+(x: T).(\lambda (H3: (or (subst0 (clen c0) t t1 (lift (S O) (clen c0) x)) (eq 
+T t1 (lift (S O) (clen c0) x)))).(or_ind (subst0 (clen c0) t t1 (lift (S O) 
+(clen c0) x)) (eq T t1 (lift (S O) (clen c0) x)) (or (\forall (t2: T).((pr2 
+(CTail (Bind Abbr) t c0) t1 t2) \to (eq T t1 t2))) (ex2 T (\lambda (t2: 
+T).((eq T t1 t2) \to (\forall (P: Prop).P))) (\lambda (t2: T).(pr2 (CTail 
+(Bind Abbr) t c0) t1 t2)))) (\lambda (H4: (subst0 (clen c0) t t1 (lift (S O) 
+(clen c0) x))).(let H_x1 \def (getl_ctail_clen Abbr t c0) in (let H5 \def 
+H_x1 in (ex_ind nat (\lambda (n: nat).(getl (clen c0) (CTail (Bind Abbr) t 
+c0) (CHead (CSort n) (Bind Abbr) t))) (or (\forall (t2: T).((pr2 (CTail (Bind 
+Abbr) t c0) t1 t2) \to (eq T t1 t2))) (ex2 T (\lambda (t2: T).((eq T t1 t2) 
+\to (\forall (P: Prop).P))) (\lambda (t2: T).(pr2 (CTail (Bind Abbr) t c0) t1 
+t2)))) (\lambda (x0: nat).(\lambda (H6: (getl (clen c0) (CTail (Bind Abbr) t 
+c0) (CHead (CSort x0) (Bind Abbr) t))).(or_intror (\forall (t2: T).((pr2 
+(CTail (Bind Abbr) t c0) t1 t2) \to (eq T t1 t2))) (ex2 T (\lambda (t2: 
+T).((eq T t1 t2) \to (\forall (P: Prop).P))) (\lambda (t2: T).(pr2 (CTail 
+(Bind Abbr) t c0) t1 t2))) (ex_intro2 T (\lambda (t2: T).((eq T t1 t2) \to 
+(\forall (P: Prop).P))) (\lambda (t2: T).(pr2 (CTail (Bind Abbr) t c0) t1 
+t2)) (lift (S O) (clen c0) x) (\lambda (H7: (eq T t1 (lift (S O) (clen c0) 
+x))).(\lambda (P: Prop).(let H8 \def (eq_ind T t1 (\lambda (t0: T).(subst0 
+(clen c0) t t0 (lift (S O) (clen c0) x))) H4 (lift (S O) (clen c0) x) H7) in 
+(subst0_gen_lift_false x t (lift (S O) (clen c0) x) (S O) (clen c0) (clen c0) 
+(le_n (clen c0)) (eq_ind_r nat (plus (S O) (clen c0)) (\lambda (n: nat).(lt 
+(clen c0) n)) (le_n (plus (S O) (clen c0))) (plus (clen c0) (S O)) (plus_sym 
+(clen c0) (S O))) H8 P)))) (pr2_delta (CTail (Bind Abbr) t c0) (CSort x0) t 
+(clen c0) H6 t1 t1 (pr0_refl t1) (lift (S O) (clen c0) x) H4))))) H5)))) 
+(\lambda (H4: (eq T t1 (lift (S O) (clen c0) x))).(let H5 \def (eq_ind T t1 
+(\lambda (t0: T).(\forall (t2: T).((pr2 c0 t0 t2) \to (eq T t0 t2)))) H1 
+(lift (S O) (clen c0) x) H4) in (eq_ind_r T (lift (S O) (clen c0) x) (\lambda 
+(t0: T).(or (\forall (t2: T).((pr2 (CTail (Bind Abbr) t c0) t0 t2) \to (eq T 
+t0 t2))) (ex2 T (\lambda (t2: T).((eq T t0 t2) \to (\forall (P: Prop).P))) 
+(\lambda (t2: T).(pr2 (CTail (Bind Abbr) t c0) t0 t2))))) (or_introl (\forall 
+(t2: T).((pr2 (CTail (Bind Abbr) t c0) (lift (S O) (clen c0) x) t2) \to (eq T 
+(lift (S O) (clen c0) x) t2))) (ex2 T (\lambda (t2: T).((eq T (lift (S O) 
+(clen c0) x) t2) \to (\forall (P: Prop).P))) (\lambda (t2: T).(pr2 (CTail 
+(Bind Abbr) t c0) (lift (S O) (clen c0) x) t2))) (\lambda (t2: T).(\lambda 
+(H6: (pr2 (CTail (Bind Abbr) t c0) (lift (S O) (clen c0) x) t2)).(let H_x1 
+\def (pr2_gen_ctail (Bind Abbr) c0 t (lift (S O) (clen c0) x) t2 H6) in (let 
+H7 \def H_x1 in (or_ind (pr2 c0 (lift (S O) (clen c0) x) t2) (ex3 T (\lambda 
+(_: T).(eq K (Bind Abbr) (Bind Abbr))) (\lambda (t0: T).(pr0 (lift (S O) 
+(clen c0) x) t0)) (\lambda (t0: T).(subst0 (clen c0) t t0 t2))) (eq T (lift 
+(S O) (clen c0) x) t2) (\lambda (H8: (pr2 c0 (lift (S O) (clen c0) x) 
+t2)).(H5 t2 H8)) (\lambda (H8: (ex3 T (\lambda (_: T).(eq K (Bind Abbr) (Bind 
+Abbr))) (\lambda (t0: T).(pr0 (lift (S O) (clen c0) x) t0)) (\lambda (t0: 
+T).(subst0 (clen c0) t t0 t2)))).(ex3_ind T (\lambda (_: T).(eq K (Bind Abbr) 
+(Bind Abbr))) (\lambda (t0: T).(pr0 (lift (S O) (clen c0) x) t0)) (\lambda 
+(t0: T).(subst0 (clen c0) t t0 t2)) (eq T (lift (S O) (clen c0) x) t2) 
+(\lambda (x0: T).(\lambda (_: (eq K (Bind Abbr) (Bind Abbr))).(\lambda (H10: 
+(pr0 (lift (S O) (clen c0) x) x0)).(\lambda (H11: (subst0 (clen c0) t x0 
+t2)).(ex2_ind T (\lambda (t3: T).(eq T x0 (lift (S O) (clen c0) t3))) 
+(\lambda (t3: T).(pr0 x t3)) (eq T (lift (S O) (clen c0) x) t2) (\lambda (x1: 
+T).(\lambda (H12: (eq T x0 (lift (S O) (clen c0) x1))).(\lambda (_: (pr0 x 
+x1)).(let H14 \def (eq_ind T x0 (\lambda (t0: T).(subst0 (clen c0) t t0 t2)) 
+H11 (lift (S O) (clen c0) x1) H12) in (subst0_gen_lift_false x1 t t2 (S O) 
+(clen c0) (clen c0) (le_n (clen c0)) (eq_ind_r nat (plus (S O) (clen c0)) 
+(\lambda (n: nat).(lt (clen c0) n)) (le_n (plus (S O) (clen c0))) (plus (clen 
+c0) (S O)) (plus_sym (clen c0) (S O))) H14 (eq T (lift (S O) (clen c0) x) 
+t2)))))) (pr0_gen_lift x x0 (S O) (clen c0) H10)))))) H8)) H7)))))) t1 H4))) 
+H3))) H2))) (or_introl (\forall (t2: T).((pr2 (CTail (Bind Abst) t c0) t1 t2) 
+\to (eq T t1 t2))) (ex2 T (\lambda (t2: T).((eq T t1 t2) \to (\forall (P: 
+Prop).P))) (\lambda (t2: T).(pr2 (CTail (Bind Abst) t c0) t1 t2))) (\lambda 
+(t2: T).(\lambda (H2: (pr2 (CTail (Bind Abst) t c0) t1 t2)).(let H_x0 \def 
+(pr2_gen_ctail (Bind Abst) c0 t t1 t2 H2) in (let H3 \def H_x0 in (or_ind 
+(pr2 c0 t1 t2) (ex3 T (\lambda (_: T).(eq K (Bind Abst) (Bind Abbr))) 
+(\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0: T).(subst0 (clen c0) t t0 t2))) 
+(eq T t1 t2) (\lambda (H4: (pr2 c0 t1 t2)).(H1 t2 H4)) (\lambda (H4: (ex3 T 
+(\lambda (_: T).(eq K (Bind Abst) (Bind Abbr))) (\lambda (t0: T).(pr0 t1 t0)) 
+(\lambda (t0: T).(subst0 (clen c0) t t0 t2)))).(ex3_ind T (\lambda (_: T).(eq 
+K (Bind Abst) (Bind Abbr))) (\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0: 
+T).(subst0 (clen c0) t t0 t2)) (eq T t1 t2) (\lambda (x0: T).(\lambda (H5: 
+(eq K (Bind Abst) (Bind Abbr))).(\lambda (_: (pr0 t1 x0)).(\lambda (_: 
+(subst0 (clen c0) t x0 t2)).(let H8 \def (eq_ind K (Bind Abst) (\lambda (ee: 
+K).(match ee with [(Bind b0) \Rightarrow (match b0 with [Abbr \Rightarrow 
+False | Abst \Rightarrow True | Void \Rightarrow False]) | (Flat _) 
+\Rightarrow False])) I (Bind Abbr) H5) in (False_ind (eq T t1 t2) H8)))))) 
+H4)) H3)))))) (or_introl (\forall (t2: T).((pr2 (CTail (Bind Void) t c0) t1 
+t2) \to (eq T t1 t2))) (ex2 T (\lambda (t2: T).((eq T t1 t2) \to (\forall (P: 
+Prop).P))) (\lambda (t2: T).(pr2 (CTail (Bind Void) t c0) t1 t2))) (\lambda 
+(t2: T).(\lambda (H2: (pr2 (CTail (Bind Void) t c0) t1 t2)).(let H_x0 \def 
+(pr2_gen_ctail (Bind Void) c0 t t1 t2 H2) in (let H3 \def H_x0 in (or_ind 
+(pr2 c0 t1 t2) (ex3 T (\lambda (_: T).(eq K (Bind Void) (Bind Abbr))) 
+(\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0: T).(subst0 (clen c0) t t0 t2))) 
+(eq T t1 t2) (\lambda (H4: (pr2 c0 t1 t2)).(H1 t2 H4)) (\lambda (H4: (ex3 T 
+(\lambda (_: T).(eq K (Bind Void) (Bind Abbr))) (\lambda (t0: T).(pr0 t1 t0)) 
+(\lambda (t0: T).(subst0 (clen c0) t t0 t2)))).(ex3_ind T (\lambda (_: T).(eq 
+K (Bind Void) (Bind Abbr))) (\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0: 
+T).(subst0 (clen c0) t t0 t2)) (eq T t1 t2) (\lambda (x0: T).(\lambda (H5: 
+(eq K (Bind Void) (Bind Abbr))).(\lambda (_: (pr0 t1 x0)).(\lambda (_: 
+(subst0 (clen c0) t x0 t2)).(let H8 \def (eq_ind K (Bind Void) (\lambda (ee: 
 K).(match ee with [(Bind b0) \Rightarrow (match b0 with [Abbr \Rightarrow 
 False | Abst \Rightarrow False | Void \Rightarrow True]) | (Flat _) 
-\Rightarrow False])) in (let TMP_344 \def (Bind Abbr) in (let H8 \def (eq_ind 
-K TMP_342 TMP_343 I TMP_344 H5) in (let TMP_345 \def (eq T t1 t2) in 
-(False_ind TMP_345 H8)))))))))) in (ex3_ind T TMP_337 TMP_338 TMP_340 TMP_341 
-TMP_346 H4))))))) in (or_ind TMP_325 TMP_332 TMP_333 TMP_334 TMP_347 
-H3)))))))))))))) in (let TMP_349 \def (or_introl TMP_318 TMP_323 TMP_348) in 
-(B_ind TMP_67 TMP_285 TMP_317 TMP_349 b)))))))))))))))))))))))))) in (let 
-TMP_382 \def (\lambda (f: F).(let TMP_351 \def (\forall (t2: T).((pr2 (CTail 
-(Flat f) t c0) t1 t2) \to (eq T t1 t2))) in (let TMP_352 \def (\lambda (t2: 
-T).((eq T t1 t2) \to (\forall (P: Prop).P))) in (let TMP_355 \def (\lambda 
-(t2: T).(let TMP_353 \def (Flat f) in (let TMP_354 \def (CTail TMP_353 t c0) 
-in (pr2 TMP_354 t1 t2)))) in (let TMP_356 \def (ex2 T TMP_352 TMP_355) in 
-(let TMP_381 \def (\lambda (t2: T).(\lambda (H2: (pr2 (CTail (Flat f) t c0) 
-t1 t2)).(let TMP_357 \def (Flat f) in (let H_x0 \def (pr2_gen_ctail TMP_357 
-c0 t t1 t2 H2) in (let H3 \def H_x0 in (let TMP_358 \def (pr2 c0 t1 t2) in 
-(let TMP_361 \def (\lambda (_: T).(let TMP_359 \def (Flat f) in (let TMP_360 
-\def (Bind Abbr) in (eq K TMP_359 TMP_360)))) in (let TMP_362 \def (\lambda 
-(t0: T).(pr0 t1 t0)) in (let TMP_364 \def (\lambda (t0: T).(let TMP_363 \def 
-(clen c0) in (subst0 TMP_363 t t0 t2))) in (let TMP_365 \def (ex3 T TMP_361 
-TMP_362 TMP_364) in (let TMP_366 \def (eq T t1 t2) in (let TMP_367 \def 
-(\lambda (H4: (pr2 c0 t1 t2)).(H1 t2 H4)) in (let TMP_380 \def (\lambda (H4: 
+\Rightarrow False])) I (Bind Abbr) H5) in (False_ind (eq T t1 t2) H8)))))) 
+H4)) H3)))))) b)) (\lambda (f: F).(or_introl (\forall (t2: T).((pr2 (CTail 
+(Flat f) t c0) t1 t2) \to (eq T t1 t2))) (ex2 T (\lambda (t2: T).((eq T t1 
+t2) \to (\forall (P: Prop).P))) (\lambda (t2: T).(pr2 (CTail (Flat f) t c0) 
+t1 t2))) (\lambda (t2: T).(\lambda (H2: (pr2 (CTail (Flat f) t c0) t1 
+t2)).(let H_x0 \def (pr2_gen_ctail (Flat f) c0 t t1 t2 H2) in (let H3 \def 
+H_x0 in (or_ind (pr2 c0 t1 t2) (ex3 T (\lambda (_: T).(eq K (Flat f) (Bind 
+Abbr))) (\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0: T).(subst0 (clen c0) t t0 
+t2))) (eq T t1 t2) (\lambda (H4: (pr2 c0 t1 t2)).(H1 t2 H4)) (\lambda (H4: 
 (ex3 T (\lambda (_: T).(eq K (Flat f) (Bind Abbr))) (\lambda (t0: T).(pr0 t1 
-t0)) (\lambda (t0: T).(subst0 (clen c0) t t0 t2)))).(let TMP_370 \def 
-(\lambda (_: T).(let TMP_368 \def (Flat f) in (let TMP_369 \def (Bind Abbr) 
-in (eq K TMP_368 TMP_369)))) in (let TMP_371 \def (\lambda (t0: T).(pr0 t1 
-t0)) in (let TMP_373 \def (\lambda (t0: T).(let TMP_372 \def (clen c0) in 
-(subst0 TMP_372 t t0 t2))) in (let TMP_374 \def (eq T t1 t2) in (let TMP_379 
-\def (\lambda (x0: T).(\lambda (H5: (eq K (Flat f) (Bind Abbr))).(\lambda (_: 
-(pr0 t1 x0)).(\lambda (_: (subst0 (clen c0) t x0 t2)).(let TMP_375 \def (Flat 
-f) in (let TMP_376 \def (\lambda (ee: K).(match ee with [(Bind _) \Rightarrow 
-False | (Flat _) \Rightarrow True])) in (let TMP_377 \def (Bind Abbr) in (let 
-H8 \def (eq_ind K TMP_375 TMP_376 I TMP_377 H5) in (let TMP_378 \def (eq T t1 
-t2) in (False_ind TMP_378 H8)))))))))) in (ex3_ind T TMP_370 TMP_371 TMP_373 
-TMP_374 TMP_379 H4))))))) in (or_ind TMP_358 TMP_365 TMP_366 TMP_367 TMP_380 
-H3)))))))))))))) in (or_introl TMP_351 TMP_356 TMP_381))))))) in (K_ind 
-TMP_60 TMP_350 TMP_382 k))))) in (let TMP_403 \def (\lambda (H1: (ex2 T 
-(\lambda (t2: T).((eq T t1 t2) \to (\forall (P: Prop).P))) (\lambda (t2: 
-T).(pr2 c0 t1 t2)))).(let TMP_384 \def (\lambda (t2: T).((eq T t1 t2) \to 
-(\forall (P: Prop).P))) in (let TMP_385 \def (\lambda (t2: T).(pr2 c0 t1 t2)) 
-in (let TMP_386 \def (\forall (t2: T).((pr2 (CTail k t c0) t1 t2) \to (eq T 
-t1 t2))) in (let TMP_387 \def (\lambda (t2: T).((eq T t1 t2) \to (\forall (P: 
-Prop).P))) in (let TMP_389 \def (\lambda (t2: T).(let TMP_388 \def (CTail k t 
-c0) in (pr2 TMP_388 t1 t2))) in (let TMP_390 \def (ex2 T TMP_387 TMP_389) in 
-(let TMP_391 \def (or TMP_386 TMP_390) in (let TMP_402 \def (\lambda (x: 
-T).(\lambda (H2: (((eq T t1 x) \to (\forall (P: Prop).P)))).(\lambda (H3: 
-(pr2 c0 t1 x)).(let TMP_392 \def (\forall (t2: T).((pr2 (CTail k t c0) t1 t2) 
-\to (eq T t1 t2))) in (let TMP_393 \def (\lambda (t2: T).((eq T t1 t2) \to 
-(\forall (P: Prop).P))) in (let TMP_395 \def (\lambda (t2: T).(let TMP_394 
-\def (CTail k t c0) in (pr2 TMP_394 t1 t2))) in (let TMP_396 \def (ex2 T 
-TMP_393 TMP_395) in (let TMP_397 \def (\lambda (t2: T).((eq T t1 t2) \to 
-(\forall (P: Prop).P))) in (let TMP_399 \def (\lambda (t2: T).(let TMP_398 
-\def (CTail k t c0) in (pr2 TMP_398 t1 t2))) in (let TMP_400 \def (pr2_ctail 
-c0 t1 x H3 k t) in (let TMP_401 \def (ex_intro2 T TMP_397 TMP_399 x H2 
-TMP_400) in (or_intror TMP_392 TMP_396 TMP_401)))))))))))) in (ex2_ind T 
-TMP_384 TMP_385 TMP_391 TMP_402 H1)))))))))) in (or_ind TMP_45 TMP_48 TMP_54 
-TMP_383 TMP_403 H0))))))))))))))))))) in (c_tail_ind TMP_5 TMP_44 TMP_404 
-c)))).
+t0)) (\lambda (t0: T).(subst0 (clen c0) t t0 t2)))).(ex3_ind T (\lambda (_: 
+T).(eq K (Flat f) (Bind Abbr))) (\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0: 
+T).(subst0 (clen c0) t t0 t2)) (eq T t1 t2) (\lambda (x0: T).(\lambda (H5: 
+(eq K (Flat f) (Bind Abbr))).(\lambda (_: (pr0 t1 x0)).(\lambda (_: (subst0 
+(clen c0) t x0 t2)).(let H8 \def (eq_ind K (Flat f) (\lambda (ee: K).(match 
+ee with [(Bind _) \Rightarrow False | (Flat _) \Rightarrow True])) I (Bind 
+Abbr) H5) in (False_ind (eq T t1 t2) H8)))))) H4)) H3))))))) k)) (\lambda 
+(H1: (ex2 T (\lambda (t2: T).((eq T t1 t2) \to (\forall (P: Prop).P))) 
+(\lambda (t2: T).(pr2 c0 t1 t2)))).(ex2_ind T (\lambda (t2: T).((eq T t1 t2) 
+\to (\forall (P: Prop).P))) (\lambda (t2: T).(pr2 c0 t1 t2)) (or (\forall 
+(t2: T).((pr2 (CTail k t c0) t1 t2) \to (eq T t1 t2))) (ex2 T (\lambda (t2: 
+T).((eq T t1 t2) \to (\forall (P: Prop).P))) (\lambda (t2: T).(pr2 (CTail k t 
+c0) t1 t2)))) (\lambda (x: T).(\lambda (H2: (((eq T t1 x) \to (\forall (P: 
+Prop).P)))).(\lambda (H3: (pr2 c0 t1 x)).(or_intror (\forall (t2: T).((pr2 
+(CTail k t c0) t1 t2) \to (eq T t1 t2))) (ex2 T (\lambda (t2: T).((eq T t1 
+t2) \to (\forall (P: Prop).P))) (\lambda (t2: T).(pr2 (CTail k t c0) t1 t2))) 
+(ex_intro2 T (\lambda (t2: T).((eq T t1 t2) \to (\forall (P: Prop).P))) 
+(\lambda (t2: T).(pr2 (CTail k t c0) t1 t2)) x H2 (pr2_ctail c0 t1 x H3 k 
+t)))))) H1)) H0)))))))) c).
 
index d501b8b3cba6ab76ed2506f6f022bbc4ed6e5092..eae14f72809c6caf51db3ac02ef8d52cb15ad84b 100644 (file)
@@ -23,6 +23,5 @@ definition nf2:
 t2)))).
 
 let rec nfs2 (c: C) (ts: TList) on ts: Prop \def match ts with [TNil 
-\Rightarrow True | (TCons t ts0) \Rightarrow (let TMP_1 \def (nf2 c t) in 
-(let TMP_2 \def (nfs2 c ts0) in (land TMP_1 TMP_2)))].
+\Rightarrow True | (TCons t ts0) \Rightarrow (land (nf2 c t) (nfs2 c ts0))].
 
index 11d3302e5f14dd1a63df37b72b9ef60519f8bb5b..1143c6ff3d159d789edf50b73024f5385b0e3c3f 100644 (file)
@@ -28,16 +28,10 @@ theorem nf2_gen_lref:
 \def
  \lambda (c: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: nat).(\lambda 
 (H: (getl i c (CHead d (Bind Abbr) u))).(\lambda (H0: ((\forall (t2: T).((pr2 
-c (TLRef i) t2) \to (eq T (TLRef i) t2))))).(\lambda (P: Prop).(let TMP_1 
-\def (S i) in (let TMP_2 \def (le_O_n i) in (let TMP_3 \def (S i) in (let 
-TMP_4 \def (plus O TMP_3) in (let TMP_5 \def (le_n TMP_4) in (let TMP_6 \def 
-(S i) in (let TMP_7 \def (lift TMP_6 O u) in (let TMP_8 \def (TLRef i) in 
-(let TMP_9 \def (TLRef i) in (let TMP_10 \def (TLRef i) in (let TMP_11 \def 
-(pr0_refl TMP_10) in (let TMP_12 \def (S i) in (let TMP_13 \def (lift TMP_12 
-O u) in (let TMP_14 \def (subst0_lref u i) in (let TMP_15 \def (pr2_delta c d 
-u i H TMP_8 TMP_9 TMP_11 TMP_13 TMP_14) in (let TMP_16 \def (H0 TMP_7 TMP_15) 
-in (lift_gen_lref_false TMP_1 O i TMP_2 TMP_5 u TMP_16 
-P))))))))))))))))))))))).
+c (TLRef i) t2) \to (eq T (TLRef i) t2))))).(\lambda (P: 
+Prop).(lift_gen_lref_false (S i) O i (le_O_n i) (le_n (plus O (S i))) u (H0 
+(lift (S i) O u) (pr2_delta c d u i H (TLRef i) (TLRef i) (pr0_refl (TLRef 
+i)) (lift (S i) O u) (subst0_lref u i))) P))))))).
 
 theorem nf2_gen_abst:
  \forall (c: C).(\forall (u: T).(\forall (t: T).((nf2 c (THead (Bind Abst) u 
@@ -45,43 +39,29 @@ t)) \to (land (nf2 c u) (nf2 (CHead c (Bind Abst) u) t)))))
 \def
  \lambda (c: C).(\lambda (u: T).(\lambda (t: T).(\lambda (H: ((\forall (t2: 
 T).((pr2 c (THead (Bind Abst) u t) t2) \to (eq T (THead (Bind Abst) u t) 
-t2))))).(let TMP_1 \def (\forall (t2: T).((pr2 c u t2) \to (eq T u t2))) in 
-(let TMP_2 \def (\forall (t2: T).((pr2 (CHead c (Bind Abst) u) t t2) \to (eq 
-T t t2))) in (let TMP_16 \def (\lambda (t2: T).(\lambda (H0: (pr2 c u 
-t2)).(let TMP_3 \def (\lambda (e: T).(match e with [(TSort _) \Rightarrow u | 
-(TLRef _) \Rightarrow u | (THead _ t0 _) \Rightarrow t0])) in (let TMP_4 \def 
-(Bind Abst) in (let TMP_5 \def (THead TMP_4 u t) in (let TMP_6 \def (Bind 
-Abst) in (let TMP_7 \def (THead TMP_6 t2 t) in (let TMP_8 \def (Bind Abst) in 
-(let TMP_9 \def (THead TMP_8 t2 t) in (let TMP_10 \def (Bind Abst) in (let 
-TMP_11 \def (pr2_head_1 c u t2 H0 TMP_10 t) in (let TMP_12 \def (H TMP_9 
-TMP_11) in (let H1 \def (f_equal T T TMP_3 TMP_5 TMP_7 TMP_12) in (let TMP_13 
-\def (\lambda (t0: T).(pr2 c u t0)) in (let H2 \def (eq_ind_r T t2 TMP_13 H0 
-u H1) in (let TMP_14 \def (\lambda (t0: T).(eq T u t0)) in (let TMP_15 \def 
-(refl_equal T u) in (eq_ind T u TMP_14 TMP_15 t2 H1)))))))))))))))))) in (let 
-TMP_30 \def (\lambda (t2: T).(\lambda (H0: (pr2 (CHead c (Bind Abst) u) t 
-t2)).(let TMP_17 \def (\lambda (e: T).(match e with [(TSort _) \Rightarrow t 
-| (TLRef _) \Rightarrow t | (THead _ _ t0) \Rightarrow t0])) in (let TMP_18 
-\def (Bind Abst) in (let TMP_19 \def (THead TMP_18 u t) in (let TMP_20 \def 
-(Bind Abst) in (let TMP_21 \def (THead TMP_20 u t2) in (let TMP_22 \def (Bind 
-Abst) in (let TMP_23 \def (THead TMP_22 u t2) in (let H_y \def (pr2_gen_cbind 
-Abst c u t t2 H0) in (let TMP_24 \def (H TMP_23 H_y) in (let H1 \def (f_equal 
-T T TMP_17 TMP_19 TMP_21 TMP_24) in (let TMP_27 \def (\lambda (t0: T).(let 
-TMP_25 \def (Bind Abst) in (let TMP_26 \def (CHead c TMP_25 u) in (pr2 TMP_26 
-t t0)))) in (let H2 \def (eq_ind_r T t2 TMP_27 H0 t H1) in (let TMP_28 \def 
-(\lambda (t0: T).(eq T t t0)) in (let TMP_29 \def (refl_equal T t) in (eq_ind 
-T t TMP_28 TMP_29 t2 H1))))))))))))))))) in (conj TMP_1 TMP_2 TMP_16 
-TMP_30)))))))).
+t2))))).(conj (\forall (t2: T).((pr2 c u t2) \to (eq T u t2))) (\forall (t2: 
+T).((pr2 (CHead c (Bind Abst) u) t t2) \to (eq T t t2))) (\lambda (t2: 
+T).(\lambda (H0: (pr2 c u t2)).(let H1 \def (f_equal T T (\lambda (e: 
+T).(match e with [(TSort _) \Rightarrow u | (TLRef _) \Rightarrow u | (THead 
+_ t0 _) \Rightarrow t0])) (THead (Bind Abst) u t) (THead (Bind Abst) t2 t) (H 
+(THead (Bind Abst) t2 t) (pr2_head_1 c u t2 H0 (Bind Abst) t))) in (let H2 
+\def (eq_ind_r T t2 (\lambda (t0: T).(pr2 c u t0)) H0 u H1) in (eq_ind T u 
+(\lambda (t0: T).(eq T u t0)) (refl_equal T u) t2 H1))))) (\lambda (t2: 
+T).(\lambda (H0: (pr2 (CHead c (Bind Abst) u) t t2)).(let H1 \def (f_equal T 
+T (\lambda (e: T).(match e with [(TSort _) \Rightarrow t | (TLRef _) 
+\Rightarrow t | (THead _ _ t0) \Rightarrow t0])) (THead (Bind Abst) u t) 
+(THead (Bind Abst) u t2) (H (THead (Bind Abst) u t2) (let H_y \def 
+(pr2_gen_cbind Abst c u t t2 H0) in H_y))) in (let H2 \def (eq_ind_r T t2 
+(\lambda (t0: T).(pr2 (CHead c (Bind Abst) u) t t0)) H0 t H1) in (eq_ind T t 
+(\lambda (t0: T).(eq T t t0)) (refl_equal T t) t2 H1))))))))).
 
 theorem nf2_gen_cast:
  \forall (c: C).(\forall (u: T).(\forall (t: T).((nf2 c (THead (Flat Cast) u 
 t)) \to (\forall (P: Prop).P))))
 \def
  \lambda (c: C).(\lambda (u: T).(\lambda (t: T).(\lambda (H: (nf2 c (THead 
-(Flat Cast) u t))).(\lambda (P: Prop).(let TMP_1 \def (Flat Cast) in (let 
-TMP_2 \def (Flat Cast) in (let TMP_3 \def (THead TMP_2 u t) in (let TMP_4 
-\def (pr0_refl t) in (let TMP_5 \def (pr0_tau t t TMP_4 u) in (let TMP_6 \def 
-(pr2_free c TMP_3 t TMP_5) in (let TMP_7 \def (H t TMP_6) in (thead_x_y_y 
-TMP_1 u t TMP_7 P)))))))))))).
+(Flat Cast) u t))).(\lambda (P: Prop).(thead_x_y_y (Flat Cast) u t (H t 
+(pr2_free c (THead (Flat Cast) u t) t (pr0_tau t t (pr0_refl t) u))) P))))).
 
 theorem nf2_gen_beta:
  \forall (c: C).(\forall (u: T).(\forall (v: T).(\forall (t: T).((nf2 c 
@@ -90,20 +70,13 @@ theorem nf2_gen_beta:
  \lambda (c: C).(\lambda (u: T).(\lambda (v: T).(\lambda (t: T).(\lambda (H: 
 ((\forall (t2: T).((pr2 c (THead (Flat Appl) u (THead (Bind Abst) v t)) t2) 
 \to (eq T (THead (Flat Appl) u (THead (Bind Abst) v t)) t2))))).(\lambda (P: 
-Prop).(let TMP_1 \def (Flat Appl) in (let TMP_2 \def (Bind Abst) in (let 
-TMP_3 \def (THead TMP_2 v t) in (let TMP_4 \def (THead TMP_1 u TMP_3) in (let 
-TMP_5 \def (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | 
-(TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow (match k with [(Bind 
-_) \Rightarrow False | (Flat _) \Rightarrow True])])) in (let TMP_6 \def 
-(Bind Abbr) in (let TMP_7 \def (THead TMP_6 u t) in (let TMP_8 \def (Bind 
-Abbr) in (let TMP_9 \def (THead TMP_8 u t) in (let TMP_10 \def (Flat Appl) in 
-(let TMP_11 \def (Bind Abst) in (let TMP_12 \def (THead TMP_11 v t) in (let 
-TMP_13 \def (THead TMP_10 u TMP_12) in (let TMP_14 \def (Bind Abbr) in (let 
-TMP_15 \def (THead TMP_14 u t) in (let TMP_16 \def (pr0_refl u) in (let 
-TMP_17 \def (pr0_refl t) in (let TMP_18 \def (pr0_beta v u u TMP_16 t t 
-TMP_17) in (let TMP_19 \def (pr2_free c TMP_13 TMP_15 TMP_18) in (let TMP_20 
-\def (H TMP_9 TMP_19) in (let H0 \def (eq_ind T TMP_4 TMP_5 I TMP_7 TMP_20) 
-in (False_ind P H0))))))))))))))))))))))))))).
+Prop).(let H0 \def (eq_ind T (THead (Flat Appl) u (THead (Bind Abst) v t)) 
+(\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) 
+\Rightarrow False | (THead k _ _) \Rightarrow (match k with [(Bind _) 
+\Rightarrow False | (Flat _) \Rightarrow True])])) I (THead (Bind Abbr) u t) 
+(H (THead (Bind Abbr) u t) (pr2_free c (THead (Flat Appl) u (THead (Bind 
+Abst) v t)) (THead (Bind Abbr) u t) (pr0_beta v u u (pr0_refl u) t t 
+(pr0_refl t))))) in (False_ind P H0))))))).
 
 theorem nf2_gen_flat:
  \forall (f: F).(\forall (c: C).(\forall (u: T).(\forall (t: T).((nf2 c 
@@ -111,96 +84,57 @@ theorem nf2_gen_flat:
 \def
  \lambda (f: F).(\lambda (c: C).(\lambda (u: T).(\lambda (t: T).(\lambda (H: 
 ((\forall (t2: T).((pr2 c (THead (Flat f) u t) t2) \to (eq T (THead (Flat f) 
-u t) t2))))).(let TMP_1 \def (\forall (t2: T).((pr2 c u t2) \to (eq T u t2))) 
-in (let TMP_2 \def (\forall (t2: T).((pr2 c t t2) \to (eq T t t2))) in (let 
-TMP_13 \def (\lambda (t2: T).(\lambda (H0: (pr2 c u t2)).(let TMP_3 \def 
-(\lambda (e: T).(match e with [(TSort _) \Rightarrow u | (TLRef _) 
-\Rightarrow u | (THead _ t0 _) \Rightarrow t0])) in (let TMP_4 \def (Flat f) 
-in (let TMP_5 \def (THead TMP_4 u t) in (let TMP_6 \def (Flat f) in (let 
-TMP_7 \def (THead TMP_6 t2 t) in (let TMP_8 \def (Flat f) in (let TMP_9 \def 
-(THead TMP_8 t2 t) in (let TMP_10 \def (Flat f) in (let TMP_11 \def 
-(pr2_head_1 c u t2 H0 TMP_10 t) in (let TMP_12 \def (H TMP_9 TMP_11) in (let 
-H1 \def (f_equal T T TMP_3 TMP_5 TMP_7 TMP_12) in H1))))))))))))) in (let 
-TMP_25 \def (\lambda (t2: T).(\lambda (H0: (pr2 c t t2)).(let TMP_14 \def 
-(\lambda (e: T).(match e with [(TSort _) \Rightarrow t | (TLRef _) 
-\Rightarrow t | (THead _ _ t0) \Rightarrow t0])) in (let TMP_15 \def (Flat f) 
-in (let TMP_16 \def (THead TMP_15 u t) in (let TMP_17 \def (Flat f) in (let 
-TMP_18 \def (THead TMP_17 u t2) in (let TMP_19 \def (Flat f) in (let TMP_20 
-\def (THead TMP_19 u t2) in (let TMP_21 \def (Flat f) in (let TMP_22 \def 
-(pr2_cflat c t t2 H0 f u) in (let TMP_23 \def (pr2_head_2 c u t t2 TMP_21 
-TMP_22) in (let TMP_24 \def (H TMP_20 TMP_23) in (let H1 \def (f_equal T T 
-TMP_14 TMP_16 TMP_18 TMP_24) in H1)))))))))))))) in (conj TMP_1 TMP_2 TMP_13 
-TMP_25))))))))).
+u t) t2))))).(conj (\forall (t2: T).((pr2 c u t2) \to (eq T u t2))) (\forall 
+(t2: T).((pr2 c t t2) \to (eq T t t2))) (\lambda (t2: T).(\lambda (H0: (pr2 c 
+u t2)).(let H1 \def (f_equal T T (\lambda (e: T).(match e with [(TSort _) 
+\Rightarrow u | (TLRef _) \Rightarrow u | (THead _ t0 _) \Rightarrow t0])) 
+(THead (Flat f) u t) (THead (Flat f) t2 t) (H (THead (Flat f) t2 t) 
+(pr2_head_1 c u t2 H0 (Flat f) t))) in H1))) (\lambda (t2: T).(\lambda (H0: 
+(pr2 c t t2)).(let H1 \def (f_equal T T (\lambda (e: T).(match e with [(TSort 
+_) \Rightarrow t | (TLRef _) \Rightarrow t | (THead _ _ t0) \Rightarrow t0])) 
+(THead (Flat f) u t) (THead (Flat f) u t2) (H (THead (Flat f) u t2) 
+(pr2_head_2 c u t t2 (Flat f) (pr2_cflat c t t2 H0 f u)))) in H1)))))))).
 
 theorem nf2_gen__nf2_gen_aux:
  \forall (b: B).(\forall (x: T).(\forall (u: T).(\forall (d: nat).((eq T 
 (THead (Bind b) u (lift (S O) d x)) x) \to (\forall (P: Prop).P)))))
 \def
- \lambda (b: B).(\lambda (x: T).(let TMP_1 \def (\lambda (t: T).(\forall (u: 
+ \lambda (b: B).(\lambda (x: T).(T_ind (\lambda (t: T).(\forall (u: 
 T).(\forall (d: nat).((eq T (THead (Bind b) u (lift (S O) d t)) t) \to 
-(\forall (P: Prop).P))))) in (let TMP_9 \def (\lambda (n: nat).(\lambda (u: 
-T).(\lambda (d: nat).(\lambda (H: (eq T (THead (Bind b) u (lift (S O) d 
-(TSort n))) (TSort n))).(\lambda (P: Prop).(let TMP_2 \def (Bind b) in (let 
-TMP_3 \def (S O) in (let TMP_4 \def (TSort n) in (let TMP_5 \def (lift TMP_3 
-d TMP_4) in (let TMP_6 \def (THead TMP_2 u TMP_5) in (let TMP_7 \def (\lambda 
-(ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow 
-False | (THead _ _ _) \Rightarrow True])) in (let TMP_8 \def (TSort n) in 
-(let H0 \def (eq_ind T TMP_6 TMP_7 I TMP_8 H) in (False_ind P 
-H0)))))))))))))) in (let TMP_17 \def (\lambda (n: nat).(\lambda (u: 
-T).(\lambda (d: nat).(\lambda (H: (eq T (THead (Bind b) u (lift (S O) d 
-(TLRef n))) (TLRef n))).(\lambda (P: Prop).(let TMP_10 \def (Bind b) in (let 
-TMP_11 \def (S O) in (let TMP_12 \def (TLRef n) in (let TMP_13 \def (lift 
-TMP_11 d TMP_12) in (let TMP_14 \def (THead TMP_10 u TMP_13) in (let TMP_15 
-\def (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) 
-\Rightarrow False | (THead _ _ _) \Rightarrow True])) in (let TMP_16 \def 
-(TLRef n) in (let H0 \def (eq_ind T TMP_14 TMP_15 I TMP_16 H) in (False_ind P 
-H0)))))))))))))) in (let TMP_97 \def (\lambda (k: K).(\lambda (t: T).(\lambda 
-(_: ((\forall (u: T).(\forall (d: nat).((eq T (THead (Bind b) u (lift (S O) d 
-t)) t) \to (\forall (P: Prop).P)))))).(\lambda (t0: T).(\lambda (H0: 
-((\forall (u: T).(\forall (d: nat).((eq T (THead (Bind b) u (lift (S O) d 
-t0)) t0) \to (\forall (P: Prop).P)))))).(\lambda (u: T).(\lambda (d: 
-nat).(\lambda (H1: (eq T (THead (Bind b) u (lift (S O) d (THead k t t0))) 
-(THead k t t0))).(\lambda (P: Prop).(let TMP_18 \def (\lambda (e: T).(match e 
+(\forall (P: Prop).P))))) (\lambda (n: nat).(\lambda (u: T).(\lambda (d: 
+nat).(\lambda (H: (eq T (THead (Bind b) u (lift (S O) d (TSort n))) (TSort 
+n))).(\lambda (P: Prop).(let H0 \def (eq_ind T (THead (Bind b) u (lift (S O) 
+d (TSort n))) (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | 
+(TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow True])) I (TSort n) 
+H) in (False_ind P H0))))))) (\lambda (n: nat).(\lambda (u: T).(\lambda (d: 
+nat).(\lambda (H: (eq T (THead (Bind b) u (lift (S O) d (TLRef n))) (TLRef 
+n))).(\lambda (P: Prop).(let H0 \def (eq_ind T (THead (Bind b) u (lift (S O) 
+d (TLRef n))) (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | 
+(TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow True])) I (TLRef n) 
+H) in (False_ind P H0))))))) (\lambda (k: K).(\lambda (t: T).(\lambda (_: 
+((\forall (u: T).(\forall (d: nat).((eq T (THead (Bind b) u (lift (S O) d t)) 
+t) \to (\forall (P: Prop).P)))))).(\lambda (t0: T).(\lambda (H0: ((\forall 
+(u: T).(\forall (d: nat).((eq T (THead (Bind b) u (lift (S O) d t0)) t0) \to 
+(\forall (P: Prop).P)))))).(\lambda (u: T).(\lambda (d: nat).(\lambda (H1: 
+(eq T (THead (Bind b) u (lift (S O) d (THead k t t0))) (THead k t 
+t0))).(\lambda (P: Prop).(let H2 \def (f_equal T K (\lambda (e: T).(match e 
 with [(TSort _) \Rightarrow (Bind b) | (TLRef _) \Rightarrow (Bind b) | 
-(THead k0 _ _) \Rightarrow k0])) in (let TMP_19 \def (Bind b) in (let TMP_20 
-\def (S O) in (let TMP_21 \def (THead k t t0) in (let TMP_22 \def (lift 
-TMP_20 d TMP_21) in (let TMP_23 \def (THead TMP_19 u TMP_22) in (let TMP_24 
-\def (THead k t t0) in (let H2 \def (f_equal T K TMP_18 TMP_23 TMP_24 H1) in 
-(let TMP_25 \def (\lambda (e: T).(match e with [(TSort _) \Rightarrow u | 
-(TLRef _) \Rightarrow u | (THead _ t1 _) \Rightarrow t1])) in (let TMP_26 
-\def (Bind b) in (let TMP_27 \def (S O) in (let TMP_28 \def (THead k t t0) in 
-(let TMP_29 \def (lift TMP_27 d TMP_28) in (let TMP_30 \def (THead TMP_26 u 
-TMP_29) in (let TMP_31 \def (THead k t t0) in (let H3 \def (f_equal T T 
-TMP_25 TMP_30 TMP_31 H1) in (let TMP_66 \def (\lambda (e: T).(match e with 
-[(TSort _) \Rightarrow (let TMP_55 \def (\lambda (x0: nat).(let TMP_54 \def 
-(S O) in (plus x0 TMP_54))) in (let TMP_56 \def (lref_map TMP_55 d t) in (let 
-TMP_63 \def (\lambda (x0: nat).(let TMP_62 \def (S O) in (plus x0 TMP_62))) 
-in (let TMP_64 \def (s k d) in (let TMP_65 \def (lref_map TMP_63 TMP_64 t0) 
-in (THead k TMP_56 TMP_65)))))) | (TLRef _) \Rightarrow (let TMP_38 \def 
-(\lambda (x0: nat).(let TMP_37 \def (S O) in (plus x0 TMP_37))) in (let 
-TMP_39 \def (lref_map TMP_38 d t) in (let TMP_46 \def (\lambda (x0: nat).(let 
-TMP_45 \def (S O) in (plus x0 TMP_45))) in (let TMP_47 \def (s k d) in (let 
-TMP_48 \def (lref_map TMP_46 TMP_47 t0) in (THead k TMP_39 TMP_48)))))) | 
-(THead _ _ t1) \Rightarrow t1])) in (let TMP_67 \def (Bind b) in (let TMP_68 
-\def (S O) in (let TMP_69 \def (THead k t t0) in (let TMP_70 \def (lift 
-TMP_68 d TMP_69) in (let TMP_71 \def (THead TMP_67 u TMP_70) in (let TMP_72 
-\def (THead k t t0) in (let H4 \def (f_equal T T TMP_66 TMP_71 TMP_72 H1) in 
-(let TMP_95 \def (\lambda (_: (eq T u t)).(\lambda (H6: (eq K (Bind b) 
-k)).(let TMP_76 \def (\lambda (k0: K).(let TMP_73 \def (S O) in (let TMP_74 
-\def (THead k0 t t0) in (let TMP_75 \def (lift TMP_73 d TMP_74) in (eq T 
-TMP_75 t0))))) in (let TMP_77 \def (Bind b) in (let H7 \def (eq_ind_r K k 
-TMP_76 H4 TMP_77 H6) in (let TMP_78 \def (S O) in (let TMP_79 \def (Bind b) 
-in (let TMP_80 \def (THead TMP_79 t t0) in (let TMP_81 \def (lift TMP_78 d 
-TMP_80) in (let TMP_82 \def (\lambda (t1: T).(eq T t1 t0)) in (let TMP_83 
-\def (Bind b) in (let TMP_84 \def (S O) in (let TMP_85 \def (lift TMP_84 d t) 
-in (let TMP_86 \def (S O) in (let TMP_87 \def (S d) in (let TMP_88 \def (lift 
-TMP_86 TMP_87 t0) in (let TMP_89 \def (THead TMP_83 TMP_85 TMP_88) in (let 
-TMP_90 \def (S O) in (let TMP_91 \def (lift_bind b t t0 TMP_90 d) in (let H8 
-\def (eq_ind T TMP_81 TMP_82 H7 TMP_89 TMP_91) in (let TMP_92 \def (S O) in 
-(let TMP_93 \def (lift TMP_92 d t) in (let TMP_94 \def (S d) in (H0 TMP_93 
-TMP_94 H8 P)))))))))))))))))))))))) in (let TMP_96 \def (TMP_95 H3) in 
-(TMP_96 H2)))))))))))))))))))))))))))))))))))) in (T_ind TMP_1 TMP_9 TMP_17 
-TMP_97 x)))))).
+(THead k0 _ _) \Rightarrow k0])) (THead (Bind b) u (lift (S O) d (THead k t 
+t0))) (THead k t t0) H1) in ((let H3 \def (f_equal T T (\lambda (e: T).(match 
+e with [(TSort _) \Rightarrow u | (TLRef _) \Rightarrow u | (THead _ t1 _) 
+\Rightarrow t1])) (THead (Bind b) u (lift (S O) d (THead k t t0))) (THead k t 
+t0) H1) in ((let H4 \def (f_equal T T (\lambda (e: T).(match e with [(TSort 
+_) \Rightarrow (THead k (lref_map (\lambda (x0: nat).(plus x0 (S O))) d t) 
+(lref_map (\lambda (x0: nat).(plus x0 (S O))) (s k d) t0)) | (TLRef _) 
+\Rightarrow (THead k (lref_map (\lambda (x0: nat).(plus x0 (S O))) d t) 
+(lref_map (\lambda (x0: nat).(plus x0 (S O))) (s k d) t0)) | (THead _ _ t1) 
+\Rightarrow t1])) (THead (Bind b) u (lift (S O) d (THead k t t0))) (THead k t 
+t0) H1) in (\lambda (_: (eq T u t)).(\lambda (H6: (eq K (Bind b) k)).(let H7 
+\def (eq_ind_r K k (\lambda (k0: K).(eq T (lift (S O) d (THead k0 t t0)) t0)) 
+H4 (Bind b) H6) in (let H8 \def (eq_ind T (lift (S O) d (THead (Bind b) t 
+t0)) (\lambda (t1: T).(eq T t1 t0)) H7 (THead (Bind b) (lift (S O) d t) (lift 
+(S O) (S d) t0)) (lift_bind b t t0 (S O) d)) in (H0 (lift (S O) d t) (S d) H8 
+P)))))) H3)) H2))))))))))) x)).
 
 theorem nf2_gen_abbr:
  \forall (c: C).(\forall (u: T).(\forall (t: T).((nf2 c (THead (Bind Abbr) u 
@@ -209,44 +143,23 @@ t)) \to (\forall (P: Prop).P))))
  \lambda (c: C).(\lambda (u: T).(\lambda (t: T).(\lambda (H: ((\forall (t2: 
 T).((pr2 c (THead (Bind Abbr) u t) t2) \to (eq T (THead (Bind Abbr) u t) 
 t2))))).(\lambda (P: Prop).(let H_x \def (dnf_dec u t O) in (let H0 \def H_x 
-in (let TMP_7 \def (\lambda (v: T).(let TMP_1 \def (S O) in (let TMP_2 \def 
-(lift TMP_1 O v) in (let TMP_3 \def (subst0 O u t TMP_2) in (let TMP_4 \def 
-(S O) in (let TMP_5 \def (lift TMP_4 O v) in (let TMP_6 \def (eq T t TMP_5) 
-in (or TMP_3 TMP_6)))))))) in (let TMP_60 \def (\lambda (x: T).(\lambda (H1: 
-(or (subst0 O u t (lift (S O) O x)) (eq T t (lift (S O) O x)))).(let TMP_8 
-\def (S O) in (let TMP_9 \def (lift TMP_8 O x) in (let TMP_10 \def (subst0 O 
-u t TMP_9) in (let TMP_11 \def (S O) in (let TMP_12 \def (lift TMP_11 O x) in 
-(let TMP_13 \def (eq T t TMP_12) in (let TMP_45 \def (\lambda (H2: (subst0 O 
-u t (lift (S O) O x))).(let TMP_14 \def (\lambda (e: T).(match e with [(TSort 
-_) \Rightarrow t | (TLRef _) \Rightarrow t | (THead _ _ t0) \Rightarrow t0])) 
-in (let TMP_15 \def (Bind Abbr) in (let TMP_16 \def (THead TMP_15 u t) in 
-(let TMP_17 \def (Bind Abbr) in (let TMP_18 \def (S O) in (let TMP_19 \def 
-(lift TMP_18 O x) in (let TMP_20 \def (THead TMP_17 u TMP_19) in (let TMP_21 
-\def (Bind Abbr) in (let TMP_22 \def (S O) in (let TMP_23 \def (lift TMP_22 O 
-x) in (let TMP_24 \def (THead TMP_21 u TMP_23) in (let TMP_25 \def (Bind 
-Abbr) in (let TMP_26 \def (THead TMP_25 u t) in (let TMP_27 \def (Bind Abbr) 
-in (let TMP_28 \def (S O) in (let TMP_29 \def (lift TMP_28 O x) in (let 
-TMP_30 \def (THead TMP_27 u TMP_29) in (let TMP_31 \def (pr0_refl u) in (let 
-TMP_32 \def (pr0_refl t) in (let TMP_33 \def (S O) in (let TMP_34 \def (lift 
-TMP_33 O x) in (let TMP_35 \def (pr0_delta u u TMP_31 t t TMP_32 TMP_34 H2) 
-in (let TMP_36 \def (pr2_free c TMP_26 TMP_30 TMP_35) in (let TMP_37 \def (H 
-TMP_24 TMP_36) in (let H3 \def (f_equal T T TMP_14 TMP_16 TMP_20 TMP_37) in 
-(let TMP_40 \def (\lambda (t0: T).(let TMP_38 \def (S O) in (let TMP_39 \def 
-(lift TMP_38 O x) in (subst0 O u t0 TMP_39)))) in (let TMP_41 \def (S O) in 
-(let TMP_42 \def (lift TMP_41 O x) in (let H4 \def (eq_ind T t TMP_40 H2 
-TMP_42 H3) in (let TMP_43 \def (S O) in (let TMP_44 \def (lift TMP_43 O x) in 
-(subst0_refl u TMP_44 O H4 P))))))))))))))))))))))))))))))))) in (let TMP_59 
-\def (\lambda (H2: (eq T t (lift (S O) O x))).(let TMP_48 \def (\lambda (t0: 
-T).(\forall (t2: T).((pr2 c (THead (Bind Abbr) u t0) t2) \to (let TMP_46 \def 
-(Bind Abbr) in (let TMP_47 \def (THead TMP_46 u t0) in (eq T TMP_47 t2)))))) 
-in (let TMP_49 \def (S O) in (let TMP_50 \def (lift TMP_49 O x) in (let H3 
-\def (eq_ind T t TMP_48 H TMP_50 H2) in (let TMP_51 \def (Bind Abbr) in (let 
-TMP_52 \def (S O) in (let TMP_53 \def (lift TMP_52 O x) in (let TMP_54 \def 
-(THead TMP_51 u TMP_53) in (let TMP_55 \def (pr0_refl x) in (let TMP_56 \def 
-(pr0_zeta Abbr not_abbr_abst x x TMP_55 u) in (let TMP_57 \def (pr2_free c 
-TMP_54 x TMP_56) in (let TMP_58 \def (H3 x TMP_57) in (nf2_gen__nf2_gen_aux 
-Abbr x u O TMP_58 P)))))))))))))) in (or_ind TMP_10 TMP_13 P TMP_45 TMP_59 
-H1))))))))))) in (ex_ind T TMP_7 P TMP_60 H0))))))))).
+in (ex_ind T (\lambda (v: T).(or (subst0 O u t (lift (S O) O v)) (eq T t 
+(lift (S O) O v)))) P (\lambda (x: T).(\lambda (H1: (or (subst0 O u t (lift 
+(S O) O x)) (eq T t (lift (S O) O x)))).(or_ind (subst0 O u t (lift (S O) O 
+x)) (eq T t (lift (S O) O x)) P (\lambda (H2: (subst0 O u t (lift (S O) O 
+x))).(let H3 \def (f_equal T T (\lambda (e: T).(match e with [(TSort _) 
+\Rightarrow t | (TLRef _) \Rightarrow t | (THead _ _ t0) \Rightarrow t0])) 
+(THead (Bind Abbr) u t) (THead (Bind Abbr) u (lift (S O) O x)) (H (THead 
+(Bind Abbr) u (lift (S O) O x)) (pr2_free c (THead (Bind Abbr) u t) (THead 
+(Bind Abbr) u (lift (S O) O x)) (pr0_delta u u (pr0_refl u) t t (pr0_refl t) 
+(lift (S O) O x) H2)))) in (let H4 \def (eq_ind T t (\lambda (t0: T).(subst0 
+O u t0 (lift (S O) O x))) H2 (lift (S O) O x) H3) in (subst0_refl u (lift (S 
+O) O x) O H4 P)))) (\lambda (H2: (eq T t (lift (S O) O x))).(let H3 \def 
+(eq_ind T t (\lambda (t0: T).(\forall (t2: T).((pr2 c (THead (Bind Abbr) u 
+t0) t2) \to (eq T (THead (Bind Abbr) u t0) t2)))) H (lift (S O) O x) H2) in 
+(nf2_gen__nf2_gen_aux Abbr x u O (H3 x (pr2_free c (THead (Bind Abbr) u (lift 
+(S O) O x)) x (pr0_zeta Abbr not_abbr_abst x x (pr0_refl x) u))) P))) H1))) 
+H0))))))).
 
 theorem nf2_gen_void:
  \forall (c: C).(\forall (u: T).(\forall (t: T).((nf2 c (THead (Bind Void) u 
@@ -254,10 +167,7 @@ theorem nf2_gen_void:
 \def
  \lambda (c: C).(\lambda (u: T).(\lambda (t: T).(\lambda (H: ((\forall (t2: 
 T).((pr2 c (THead (Bind Void) u (lift (S O) O t)) t2) \to (eq T (THead (Bind 
-Void) u (lift (S O) O t)) t2))))).(\lambda (P: Prop).(let TMP_1 \def (Bind 
-Void) in (let TMP_2 \def (S O) in (let TMP_3 \def (lift TMP_2 O t) in (let 
-TMP_4 \def (THead TMP_1 u TMP_3) in (let TMP_5 \def (pr0_refl t) in (let 
-TMP_6 \def (pr0_zeta Void not_void_abst t t TMP_5 u) in (let TMP_7 \def 
-(pr2_free c TMP_4 t TMP_6) in (let TMP_8 \def (H t TMP_7) in 
-(nf2_gen__nf2_gen_aux Void t u O TMP_8 P))))))))))))).
+Void) u (lift (S O) O t)) t2))))).(\lambda (P: Prop).(nf2_gen__nf2_gen_aux 
+Void t u O (H t (pr2_free c (THead (Bind Void) u (lift (S O) O t)) t 
+(pr0_zeta Void not_void_abst t t (pr0_refl t) u))) P))))).
 
index 67540f34db9840a6ea57b5163263f42d61a9a363..bd34df9dae7769abdeb14d8cc79896853c796182 100644 (file)
@@ -24,119 +24,73 @@ TList).(\forall (u: T).((pr3 c (THeads (Flat Appl) vs (TLRef i)) u) \to (iso
 (THeads (Flat Appl) vs (TLRef i)) u))))))
 \def
  \lambda (c: C).(\lambda (i: nat).(\lambda (H: (nf2 c (TLRef i))).(\lambda 
-(vs: TList).(let TMP_4 \def (\lambda (t: TList).(\forall (u: T).((pr3 c 
-(THeads (Flat Appl) t (TLRef i)) u) \to (let TMP_1 \def (Flat Appl) in (let 
-TMP_2 \def (TLRef i) in (let TMP_3 \def (THeads TMP_1 t TMP_2) in (iso TMP_3 
-u))))))) in (let TMP_14 \def (\lambda (u: T).(\lambda (H0: (pr3 c (TLRef i) 
-u)).(let TMP_5 \def (TLRef i) in (let H_y \def (nf2_pr3_unfold c TMP_5 u H0 
-H) in (let TMP_7 \def (\lambda (t: T).(let TMP_6 \def (TLRef i) in (pr3 c 
-TMP_6 t))) in (let TMP_8 \def (TLRef i) in (let H1 \def (eq_ind_r T u TMP_7 
-H0 TMP_8 H_y) in (let TMP_9 \def (TLRef i) in (let TMP_11 \def (\lambda (t: 
-T).(let TMP_10 \def (TLRef i) in (iso TMP_10 t))) in (let TMP_12 \def (TLRef 
-i) in (let TMP_13 \def (iso_refl TMP_12) in (eq_ind T TMP_9 TMP_11 TMP_13 u 
-H_y)))))))))))) in (let TMP_162 \def (\lambda (t: T).(\lambda (t0: 
-TList).(\lambda (H0: ((\forall (u: T).((pr3 c (THeads (Flat Appl) t0 (TLRef 
-i)) u) \to (iso (THeads (Flat Appl) t0 (TLRef i)) u))))).(\lambda (u: 
-T).(\lambda (H1: (pr3 c (THead (Flat Appl) t (THeads (Flat Appl) t0 (TLRef 
-i))) u)).(let TMP_15 \def (Flat Appl) in (let TMP_16 \def (TLRef i) in (let 
-TMP_17 \def (THeads TMP_15 t0 TMP_16) in (let H2 \def (pr3_gen_appl c t 
-TMP_17 u H1) in (let TMP_20 \def (\lambda (u2: T).(\lambda (t2: T).(let 
-TMP_18 \def (Flat Appl) in (let TMP_19 \def (THead TMP_18 u2 t2) in (eq T u 
-TMP_19))))) in (let TMP_21 \def (\lambda (u2: T).(\lambda (_: T).(pr3 c t 
-u2))) in (let TMP_25 \def (\lambda (_: T).(\lambda (t2: T).(let TMP_22 \def 
-(Flat Appl) in (let TMP_23 \def (TLRef i) in (let TMP_24 \def (THeads TMP_22 
-t0 TMP_23) in (pr3 c TMP_24 t2)))))) in (let TMP_26 \def (ex3_2 T T TMP_20 
-TMP_21 TMP_25) in (let TMP_29 \def (\lambda (_: T).(\lambda (_: T).(\lambda 
-(u2: T).(\lambda (t2: T).(let TMP_27 \def (Bind Abbr) in (let TMP_28 \def 
-(THead TMP_27 u2 t2) in (pr3 c TMP_28 u))))))) in (let TMP_30 \def (\lambda 
-(_: T).(\lambda (_: T).(\lambda (u2: T).(\lambda (_: T).(pr3 c t u2))))) in 
-(let TMP_36 \def (\lambda (y1: T).(\lambda (z1: T).(\lambda (_: T).(\lambda 
-(_: T).(let TMP_31 \def (Flat Appl) in (let TMP_32 \def (TLRef i) in (let 
-TMP_33 \def (THeads TMP_31 t0 TMP_32) in (let TMP_34 \def (Bind Abst) in (let 
-TMP_35 \def (THead TMP_34 y1 z1) in (pr3 c TMP_33 TMP_35)))))))))) in (let 
-TMP_39 \def (\lambda (_: T).(\lambda (z1: T).(\lambda (_: T).(\lambda (t2: 
-T).(\forall (b: B).(\forall (u0: T).(let TMP_37 \def (Bind b) in (let TMP_38 
-\def (CHead c TMP_37 u0) in (pr3 TMP_38 z1 t2))))))))) in (let TMP_40 \def 
-(ex4_4 T T T T TMP_29 TMP_30 TMP_36 TMP_39) in (let TMP_42 \def (\lambda (b: 
+(vs: TList).(TList_ind (\lambda (t: TList).(\forall (u: T).((pr3 c (THeads 
+(Flat Appl) t (TLRef i)) u) \to (iso (THeads (Flat Appl) t (TLRef i)) u)))) 
+(\lambda (u: T).(\lambda (H0: (pr3 c (TLRef i) u)).(let H_y \def 
+(nf2_pr3_unfold c (TLRef i) u H0 H) in (let H1 \def (eq_ind_r T u (\lambda 
+(t: T).(pr3 c (TLRef i) t)) H0 (TLRef i) H_y) in (eq_ind T (TLRef i) (\lambda 
+(t: T).(iso (TLRef i) t)) (iso_refl (TLRef i)) u H_y))))) (\lambda (t: 
+T).(\lambda (t0: TList).(\lambda (H0: ((\forall (u: T).((pr3 c (THeads (Flat 
+Appl) t0 (TLRef i)) u) \to (iso (THeads (Flat Appl) t0 (TLRef i)) 
+u))))).(\lambda (u: T).(\lambda (H1: (pr3 c (THead (Flat Appl) t (THeads 
+(Flat Appl) t0 (TLRef i))) u)).(let H2 \def (pr3_gen_appl c t (THeads (Flat 
+Appl) t0 (TLRef i)) u H1) in (or3_ind (ex3_2 T T (\lambda (u2: T).(\lambda 
+(t2: T).(eq T u (THead (Flat Appl) u2 t2)))) (\lambda (u2: T).(\lambda (_: 
+T).(pr3 c t u2))) (\lambda (_: T).(\lambda (t2: T).(pr3 c (THeads (Flat Appl) 
+t0 (TLRef i)) t2)))) (ex4_4 T T T T (\lambda (_: T).(\lambda (_: T).(\lambda 
+(u2: T).(\lambda (t2: T).(pr3 c (THead (Bind Abbr) u2 t2) u))))) (\lambda (_: 
+T).(\lambda (_: T).(\lambda (u2: T).(\lambda (_: T).(pr3 c t u2))))) (\lambda 
+(y1: T).(\lambda (z1: T).(\lambda (_: T).(\lambda (_: T).(pr3 c (THeads (Flat 
+Appl) t0 (TLRef i)) (THead (Bind Abst) y1 z1)))))) (\lambda (_: T).(\lambda 
+(z1: T).(\lambda (_: T).(\lambda (t2: T).(\forall (b: B).(\forall (u0: 
+T).(pr3 (CHead c (Bind b) u0) z1 t2)))))))) (ex6_6 B T T T T T (\lambda (b: 
 B).(\lambda (_: T).(\lambda (_: T).(\lambda (_: T).(\lambda (_: T).(\lambda 
-(_: T).(let TMP_41 \def (eq B b Abst) in (not TMP_41)))))))) in (let TMP_48 
-\def (\lambda (b: B).(\lambda (y1: T).(\lambda (z1: T).(\lambda (_: 
-T).(\lambda (_: T).(\lambda (_: T).(let TMP_43 \def (Flat Appl) in (let 
-TMP_44 \def (TLRef i) in (let TMP_45 \def (THeads TMP_43 t0 TMP_44) in (let 
-TMP_46 \def (Bind b) in (let TMP_47 \def (THead TMP_46 y1 z1) in (pr3 c 
-TMP_45 TMP_47)))))))))))) in (let TMP_55 \def (\lambda (b: B).(\lambda (_: 
-T).(\lambda (_: T).(\lambda (z2: T).(\lambda (u2: T).(\lambda (y2: T).(let 
-TMP_49 \def (Bind b) in (let TMP_50 \def (Flat Appl) in (let TMP_51 \def (S 
-O) in (let TMP_52 \def (lift TMP_51 O u2) in (let TMP_53 \def (THead TMP_50 
-TMP_52 z2) in (let TMP_54 \def (THead TMP_49 y2 TMP_53) in (pr3 c TMP_54 
-u))))))))))))) in (let TMP_56 \def (\lambda (_: B).(\lambda (_: T).(\lambda 
-(_: T).(\lambda (_: T).(\lambda (u2: T).(\lambda (_: T).(pr3 c t u2))))))) in 
-(let TMP_57 \def (\lambda (_: B).(\lambda (y1: T).(\lambda (_: T).(\lambda 
-(_: T).(\lambda (_: T).(\lambda (y2: T).(pr3 c y1 y2))))))) in (let TMP_60 
-\def (\lambda (b: B).(\lambda (_: T).(\lambda (z1: T).(\lambda (z2: 
-T).(\lambda (_: T).(\lambda (y2: T).(let TMP_58 \def (Bind b) in (let TMP_59 
-\def (CHead c TMP_58 y2) in (pr3 TMP_59 z1 z2))))))))) in (let TMP_61 \def 
-(ex6_6 B T T T T T TMP_42 TMP_48 TMP_55 TMP_56 TMP_57 TMP_60) in (let TMP_62 
-\def (Flat Appl) in (let TMP_63 \def (Flat Appl) in (let TMP_64 \def (TLRef 
-i) in (let TMP_65 \def (THeads TMP_63 t0 TMP_64) in (let TMP_66 \def (THead 
-TMP_62 t TMP_65) in (let TMP_67 \def (iso TMP_66 u) in (let TMP_96 \def 
-(\lambda (H3: (ex3_2 T T (\lambda (u2: T).(\lambda (t2: T).(eq T u (THead 
-(Flat Appl) u2 t2)))) (\lambda (u2: T).(\lambda (_: T).(pr3 c t u2))) 
+(_: T).(not (eq B b Abst)))))))) (\lambda (b: B).(\lambda (y1: T).(\lambda 
+(z1: T).(\lambda (_: T).(\lambda (_: T).(\lambda (_: T).(pr3 c (THeads (Flat 
+Appl) t0 (TLRef i)) (THead (Bind b) y1 z1)))))))) (\lambda (b: B).(\lambda 
+(_: T).(\lambda (_: T).(\lambda (z2: T).(\lambda (u2: T).(\lambda (y2: 
+T).(pr3 c (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)) 
+u))))))) (\lambda (_: B).(\lambda (_: T).(\lambda (_: T).(\lambda (_: 
+T).(\lambda (u2: T).(\lambda (_: T).(pr3 c t u2))))))) (\lambda (_: 
+B).(\lambda (y1: T).(\lambda (_: T).(\lambda (_: T).(\lambda (_: T).(\lambda 
+(y2: T).(pr3 c y1 y2))))))) (\lambda (b: B).(\lambda (_: T).(\lambda (z1: 
+T).(\lambda (z2: T).(\lambda (_: T).(\lambda (y2: T).(pr3 (CHead c (Bind b) 
+y2) z1 z2)))))))) (iso (THead (Flat Appl) t (THeads (Flat Appl) t0 (TLRef 
+i))) u) (\lambda (H3: (ex3_2 T T (\lambda (u2: T).(\lambda (t2: T).(eq T u 
+(THead (Flat Appl) u2 t2)))) (\lambda (u2: T).(\lambda (_: T).(pr3 c t u2))) 
 (\lambda (_: T).(\lambda (t2: T).(pr3 c (THeads (Flat Appl) t0 (TLRef i)) 
-t2))))).(let TMP_70 \def (\lambda (u2: T).(\lambda (t2: T).(let TMP_68 \def 
-(Flat Appl) in (let TMP_69 \def (THead TMP_68 u2 t2) in (eq T u TMP_69))))) 
-in (let TMP_71 \def (\lambda (u2: T).(\lambda (_: T).(pr3 c t u2))) in (let 
-TMP_75 \def (\lambda (_: T).(\lambda (t2: T).(let TMP_72 \def (Flat Appl) in 
-(let TMP_73 \def (TLRef i) in (let TMP_74 \def (THeads TMP_72 t0 TMP_73) in 
-(pr3 c TMP_74 t2)))))) in (let TMP_76 \def (Flat Appl) in (let TMP_77 \def 
-(Flat Appl) in (let TMP_78 \def (TLRef i) in (let TMP_79 \def (THeads TMP_77 
-t0 TMP_78) in (let TMP_80 \def (THead TMP_76 t TMP_79) in (let TMP_81 \def 
-(iso TMP_80 u) in (let TMP_95 \def (\lambda (x0: T).(\lambda (x1: T).(\lambda 
-(H4: (eq T u (THead (Flat Appl) x0 x1))).(\lambda (_: (pr3 c t x0)).(\lambda 
-(_: (pr3 c (THeads (Flat Appl) t0 (TLRef i)) x1)).(let TMP_82 \def (Flat 
-Appl) in (let TMP_83 \def (THead TMP_82 x0 x1) in (let TMP_89 \def (\lambda 
-(t1: T).(let TMP_84 \def (Flat Appl) in (let TMP_85 \def (Flat Appl) in (let 
-TMP_86 \def (TLRef i) in (let TMP_87 \def (THeads TMP_85 t0 TMP_86) in (let 
-TMP_88 \def (THead TMP_84 t TMP_87) in (iso TMP_88 t1))))))) in (let TMP_90 
-\def (Flat Appl) in (let TMP_91 \def (TLRef i) in (let TMP_92 \def (THeads 
-TMP_90 t0 TMP_91) in (let TMP_93 \def (Flat Appl) in (let TMP_94 \def 
-(iso_head t x0 TMP_92 x1 TMP_93) in (eq_ind_r T TMP_83 TMP_89 TMP_94 u 
-H4)))))))))))))) in (ex3_2_ind T T TMP_70 TMP_71 TMP_75 TMP_81 TMP_95 
-H3)))))))))))) in (let TMP_125 \def (\lambda (H3: (ex4_4 T T T T (\lambda (_: 
+t2))))).(ex3_2_ind T T (\lambda (u2: T).(\lambda (t2: T).(eq T u (THead (Flat 
+Appl) u2 t2)))) (\lambda (u2: T).(\lambda (_: T).(pr3 c t u2))) (\lambda (_: 
+T).(\lambda (t2: T).(pr3 c (THeads (Flat Appl) t0 (TLRef i)) t2))) (iso 
+(THead (Flat Appl) t (THeads (Flat Appl) t0 (TLRef i))) u) (\lambda (x0: 
+T).(\lambda (x1: T).(\lambda (H4: (eq T u (THead (Flat Appl) x0 
+x1))).(\lambda (_: (pr3 c t x0)).(\lambda (_: (pr3 c (THeads (Flat Appl) t0 
+(TLRef i)) x1)).(eq_ind_r T (THead (Flat Appl) x0 x1) (\lambda (t1: T).(iso 
+(THead (Flat Appl) t (THeads (Flat Appl) t0 (TLRef i))) t1)) (iso_head t x0 
+(THeads (Flat Appl) t0 (TLRef i)) x1 (Flat Appl)) u H4)))))) H3)) (\lambda 
+(H3: (ex4_4 T T T T (\lambda (_: T).(\lambda (_: T).(\lambda (u2: T).(\lambda 
+(t2: T).(pr3 c (THead (Bind Abbr) u2 t2) u))))) (\lambda (_: T).(\lambda (_: 
+T).(\lambda (u2: T).(\lambda (_: T).(pr3 c t u2))))) (\lambda (y1: 
+T).(\lambda (z1: T).(\lambda (_: T).(\lambda (_: T).(pr3 c (THeads (Flat 
+Appl) t0 (TLRef i)) (THead (Bind Abst) y1 z1)))))) (\lambda (_: T).(\lambda 
+(z1: T).(\lambda (_: T).(\lambda (t2: T).(\forall (b: B).(\forall (u0: 
+T).(pr3 (CHead c (Bind b) u0) z1 t2))))))))).(ex4_4_ind T T T T (\lambda (_: 
 T).(\lambda (_: T).(\lambda (u2: T).(\lambda (t2: T).(pr3 c (THead (Bind 
 Abbr) u2 t2) u))))) (\lambda (_: T).(\lambda (_: T).(\lambda (u2: T).(\lambda 
 (_: T).(pr3 c t u2))))) (\lambda (y1: T).(\lambda (z1: T).(\lambda (_: 
 T).(\lambda (_: T).(pr3 c (THeads (Flat Appl) t0 (TLRef i)) (THead (Bind 
 Abst) y1 z1)))))) (\lambda (_: T).(\lambda (z1: T).(\lambda (_: T).(\lambda 
 (t2: T).(\forall (b: B).(\forall (u0: T).(pr3 (CHead c (Bind b) u0) z1 
-t2))))))))).(let TMP_99 \def (\lambda (_: T).(\lambda (_: T).(\lambda (u2: 
-T).(\lambda (t2: T).(let TMP_97 \def (Bind Abbr) in (let TMP_98 \def (THead 
-TMP_97 u2 t2) in (pr3 c TMP_98 u))))))) in (let TMP_100 \def (\lambda (_: 
-T).(\lambda (_: T).(\lambda (u2: T).(\lambda (_: T).(pr3 c t u2))))) in (let 
-TMP_106 \def (\lambda (y1: T).(\lambda (z1: T).(\lambda (_: T).(\lambda (_: 
-T).(let TMP_101 \def (Flat Appl) in (let TMP_102 \def (TLRef i) in (let 
-TMP_103 \def (THeads TMP_101 t0 TMP_102) in (let TMP_104 \def (Bind Abst) in 
-(let TMP_105 \def (THead TMP_104 y1 z1) in (pr3 c TMP_103 TMP_105)))))))))) 
-in (let TMP_109 \def (\lambda (_: T).(\lambda (z1: T).(\lambda (_: 
-T).(\lambda (t2: T).(\forall (b: B).(\forall (u0: T).(let TMP_107 \def (Bind 
-b) in (let TMP_108 \def (CHead c TMP_107 u0) in (pr3 TMP_108 z1 t2))))))))) 
-in (let TMP_110 \def (Flat Appl) in (let TMP_111 \def (Flat Appl) in (let 
-TMP_112 \def (TLRef i) in (let TMP_113 \def (THeads TMP_111 t0 TMP_112) in 
-(let TMP_114 \def (THead TMP_110 t TMP_113) in (let TMP_115 \def (iso TMP_114 
-u) in (let TMP_124 \def (\lambda (x0: T).(\lambda (x1: T).(\lambda (x2: 
-T).(\lambda (x3: T).(\lambda (_: (pr3 c (THead (Bind Abbr) x2 x3) 
-u)).(\lambda (_: (pr3 c t x2)).(\lambda (H6: (pr3 c (THeads (Flat Appl) t0 
-(TLRef i)) (THead (Bind Abst) x0 x1))).(\lambda (_: ((\forall (b: B).(\forall 
-(u0: T).(pr3 (CHead c (Bind b) u0) x1 x3))))).(let TMP_116 \def (Bind Abst) 
-in (let TMP_117 \def (THead TMP_116 x0 x1) in (let H_y \def (H0 TMP_117 H6) 
-in (let TMP_118 \def (Flat Appl) in (let TMP_119 \def (Flat Appl) in (let 
-TMP_120 \def (TLRef i) in (let TMP_121 \def (THeads TMP_119 t0 TMP_120) in 
-(let TMP_122 \def (THead TMP_118 t TMP_121) in (let TMP_123 \def (iso TMP_122 
-u) in (iso_flats_lref_bind_false Appl Abst i x0 x1 t0 H_y 
-TMP_123)))))))))))))))))) in (ex4_4_ind T T T T TMP_99 TMP_100 TMP_106 
-TMP_109 TMP_115 TMP_124 H3))))))))))))) in (let TMP_161 \def (\lambda (H3: 
-(ex6_6 B T T T T T (\lambda (b: B).(\lambda (_: T).(\lambda (_: T).(\lambda 
-(_: T).(\lambda (_: T).(\lambda (_: T).(not (eq B b Abst)))))))) (\lambda (b: 
+t2))))))) (iso (THead (Flat Appl) t (THeads (Flat Appl) t0 (TLRef i))) u) 
+(\lambda (x0: T).(\lambda (x1: T).(\lambda (x2: T).(\lambda (x3: T).(\lambda 
+(_: (pr3 c (THead (Bind Abbr) x2 x3) u)).(\lambda (_: (pr3 c t x2)).(\lambda 
+(H6: (pr3 c (THeads (Flat Appl) t0 (TLRef i)) (THead (Bind Abst) x0 
+x1))).(\lambda (_: ((\forall (b: B).(\forall (u0: T).(pr3 (CHead c (Bind b) 
+u0) x1 x3))))).(let H_y \def (H0 (THead (Bind Abst) x0 x1) H6) in 
+(iso_flats_lref_bind_false Appl Abst i x0 x1 t0 H_y (iso (THead (Flat Appl) t 
+(THeads (Flat Appl) t0 (TLRef i))) u))))))))))) H3)) (\lambda (H3: (ex6_6 B T 
+T T T T (\lambda (b: B).(\lambda (_: T).(\lambda (_: T).(\lambda (_: 
+T).(\lambda (_: T).(\lambda (_: T).(not (eq B b Abst)))))))) (\lambda (b: 
 B).(\lambda (y1: T).(\lambda (z1: T).(\lambda (_: T).(\lambda (_: T).(\lambda 
 (_: T).(pr3 c (THeads (Flat Appl) t0 (TLRef i)) (THead (Bind b) y1 z1)))))))) 
 (\lambda (b: B).(\lambda (_: T).(\lambda (_: T).(\lambda (z2: T).(\lambda 
@@ -146,42 +100,26 @@ T).(\lambda (_: T).(\lambda (u2: T).(\lambda (_: T).(pr3 c t u2)))))))
 (\lambda (_: B).(\lambda (y1: T).(\lambda (_: T).(\lambda (_: T).(\lambda (_: 
 T).(\lambda (y2: T).(pr3 c y1 y2))))))) (\lambda (b: B).(\lambda (_: 
 T).(\lambda (z1: T).(\lambda (z2: T).(\lambda (_: T).(\lambda (y2: T).(pr3 
-(CHead c (Bind b) y2) z1 z2))))))))).(let TMP_127 \def (\lambda (b: 
+(CHead c (Bind b) y2) z1 z2))))))))).(ex6_6_ind B T T T T T (\lambda (b: 
 B).(\lambda (_: T).(\lambda (_: T).(\lambda (_: T).(\lambda (_: T).(\lambda 
-(_: T).(let TMP_126 \def (eq B b Abst) in (not TMP_126)))))))) in (let 
-TMP_133 \def (\lambda (b: B).(\lambda (y1: T).(\lambda (z1: T).(\lambda (_: 
-T).(\lambda (_: T).(\lambda (_: T).(let TMP_128 \def (Flat Appl) in (let 
-TMP_129 \def (TLRef i) in (let TMP_130 \def (THeads TMP_128 t0 TMP_129) in 
-(let TMP_131 \def (Bind b) in (let TMP_132 \def (THead TMP_131 y1 z1) in (pr3 
-c TMP_130 TMP_132)))))))))))) in (let TMP_140 \def (\lambda (b: B).(\lambda 
+(_: T).(not (eq B b Abst)))))))) (\lambda (b: B).(\lambda (y1: T).(\lambda 
+(z1: T).(\lambda (_: T).(\lambda (_: T).(\lambda (_: T).(pr3 c (THeads (Flat 
+Appl) t0 (TLRef i)) (THead (Bind b) y1 z1)))))))) (\lambda (b: B).(\lambda 
 (_: T).(\lambda (_: T).(\lambda (z2: T).(\lambda (u2: T).(\lambda (y2: 
-T).(let TMP_134 \def (Bind b) in (let TMP_135 \def (Flat Appl) in (let 
-TMP_136 \def (S O) in (let TMP_137 \def (lift TMP_136 O u2) in (let TMP_138 
-\def (THead TMP_135 TMP_137 z2) in (let TMP_139 \def (THead TMP_134 y2 
-TMP_138) in (pr3 c TMP_139 u))))))))))))) in (let TMP_141 \def (\lambda (_: 
-B).(\lambda (_: T).(\lambda (_: T).(\lambda (_: T).(\lambda (u2: T).(\lambda 
-(_: T).(pr3 c t u2))))))) in (let TMP_142 \def (\lambda (_: B).(\lambda (y1: 
-T).(\lambda (_: T).(\lambda (_: T).(\lambda (_: T).(\lambda (y2: T).(pr3 c y1 
-y2))))))) in (let TMP_145 \def (\lambda (b: B).(\lambda (_: T).(\lambda (z1: 
-T).(\lambda (z2: T).(\lambda (_: T).(\lambda (y2: T).(let TMP_143 \def (Bind 
-b) in (let TMP_144 \def (CHead c TMP_143 y2) in (pr3 TMP_144 z1 z2))))))))) 
-in (let TMP_146 \def (Flat Appl) in (let TMP_147 \def (Flat Appl) in (let 
-TMP_148 \def (TLRef i) in (let TMP_149 \def (THeads TMP_147 t0 TMP_148) in 
-(let TMP_150 \def (THead TMP_146 t TMP_149) in (let TMP_151 \def (iso TMP_150 
-u) in (let TMP_160 \def (\lambda (x0: B).(\lambda (x1: T).(\lambda (x2: 
-T).(\lambda (x3: T).(\lambda (x4: T).(\lambda (x5: T).(\lambda (_: (not (eq B 
-x0 Abst))).(\lambda (H5: (pr3 c (THeads (Flat Appl) t0 (TLRef i)) (THead 
-(Bind x0) x1 x2))).(\lambda (_: (pr3 c (THead (Bind x0) x5 (THead (Flat Appl) 
-(lift (S O) O x4) x3)) u)).(\lambda (_: (pr3 c t x4)).(\lambda (_: (pr3 c x1 
-x5)).(\lambda (_: (pr3 (CHead c (Bind x0) x5) x2 x3)).(let TMP_152 \def (Bind 
-x0) in (let TMP_153 \def (THead TMP_152 x1 x2) in (let H_y \def (H0 TMP_153 
-H5) in (let TMP_154 \def (Flat Appl) in (let TMP_155 \def (Flat Appl) in (let 
-TMP_156 \def (TLRef i) in (let TMP_157 \def (THeads TMP_155 t0 TMP_156) in 
-(let TMP_158 \def (THead TMP_154 t TMP_157) in (let TMP_159 \def (iso TMP_158 
-u) in (iso_flats_lref_bind_false Appl x0 i x1 x2 t0 H_y 
-TMP_159)))))))))))))))))))))) in (ex6_6_ind B T T T T T TMP_127 TMP_133 
-TMP_140 TMP_141 TMP_142 TMP_145 TMP_151 TMP_160 H3))))))))))))))) in (or3_ind 
-TMP_26 TMP_40 TMP_61 TMP_67 TMP_96 TMP_125 TMP_161 
-H2))))))))))))))))))))))))))))))))))) in (TList_ind TMP_4 TMP_14 TMP_162 
-vs))))))).
+T).(pr3 c (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2)) 
+u))))))) (\lambda (_: B).(\lambda (_: T).(\lambda (_: T).(\lambda (_: 
+T).(\lambda (u2: T).(\lambda (_: T).(pr3 c t u2))))))) (\lambda (_: 
+B).(\lambda (y1: T).(\lambda (_: T).(\lambda (_: T).(\lambda (_: T).(\lambda 
+(y2: T).(pr3 c y1 y2))))))) (\lambda (b: B).(\lambda (_: T).(\lambda (z1: 
+T).(\lambda (z2: T).(\lambda (_: T).(\lambda (y2: T).(pr3 (CHead c (Bind b) 
+y2) z1 z2))))))) (iso (THead (Flat Appl) t (THeads (Flat Appl) t0 (TLRef i))) 
+u) (\lambda (x0: B).(\lambda (x1: T).(\lambda (x2: T).(\lambda (x3: 
+T).(\lambda (x4: T).(\lambda (x5: T).(\lambda (_: (not (eq B x0 
+Abst))).(\lambda (H5: (pr3 c (THeads (Flat Appl) t0 (TLRef i)) (THead (Bind 
+x0) x1 x2))).(\lambda (_: (pr3 c (THead (Bind x0) x5 (THead (Flat Appl) (lift 
+(S O) O x4) x3)) u)).(\lambda (_: (pr3 c t x4)).(\lambda (_: (pr3 c x1 
+x5)).(\lambda (_: (pr3 (CHead c (Bind x0) x5) x2 x3)).(let H_y \def (H0 
+(THead (Bind x0) x1 x2) H5) in (iso_flats_lref_bind_false Appl x0 i x1 x2 t0 
+H_y (iso (THead (Flat Appl) t (THeads (Flat Appl) t0 (TLRef i))) 
+u))))))))))))))) H3)) H2))))))) vs)))).
 
index 2004f127096c3362efd0c5b22e3b5263f3264865..f2b078af0987b80fc53785cb783c8f7ebf87534b 100644 (file)
@@ -22,22 +22,17 @@ theorem nf2_lift1:
  \forall (e: C).(\forall (hds: PList).(\forall (c: C).(\forall (t: T).((drop1 
 hds c e) \to ((nf2 e t) \to (nf2 c (lift1 hds t)))))))
 \def
- \lambda (e: C).(\lambda (hds: PList).(let TMP_2 \def (\lambda (p: 
-PList).(\forall (c: C).(\forall (t: T).((drop1 p c e) \to ((nf2 e t) \to (let 
-TMP_1 \def (lift1 p t) in (nf2 c TMP_1))))))) in (let TMP_4 \def (\lambda (c: 
-C).(\lambda (t: T).(\lambda (H: (drop1 PNil c e)).(\lambda (H0: (nf2 e 
-t)).(let H_y \def (drop1_gen_pnil c e H) in (let TMP_3 \def (\lambda (c0: 
-C).(nf2 c0 t)) in (eq_ind_r C e TMP_3 H0 c H_y))))))) in (let TMP_13 \def 
-(\lambda (n: nat).(\lambda (n0: nat).(\lambda (p: PList).(\lambda (H: 
-((\forall (c: C).(\forall (t: T).((drop1 p c e) \to ((nf2 e t) \to (nf2 c 
-(lift1 p t)))))))).(\lambda (c: C).(\lambda (t: T).(\lambda (H0: (drop1 
-(PCons n n0 p) c e)).(\lambda (H1: (nf2 e t)).(let H_x \def (drop1_gen_pcons 
-c e p n n0 H0) in (let H2 \def H_x in (let TMP_5 \def (\lambda (c2: C).(drop 
-n n0 c c2)) in (let TMP_6 \def (\lambda (c2: C).(drop1 p c2 e)) in (let TMP_7 
-\def (lift1 p t) in (let TMP_8 \def (lift n n0 TMP_7) in (let TMP_9 \def (nf2 
-c TMP_8) in (let TMP_12 \def (\lambda (x: C).(\lambda (H3: (drop n n0 c 
-x)).(\lambda (H4: (drop1 p x e)).(let TMP_10 \def (lift1 p t) in (let TMP_11 
-\def (H x t H4 H1) in (nf2_lift x TMP_10 TMP_11 c n n0 H3)))))) in (ex2_ind C 
-TMP_5 TMP_6 TMP_9 TMP_12 H2))))))))))))))))) in (PList_ind TMP_2 TMP_4 TMP_13 
-hds))))).
+ \lambda (e: C).(\lambda (hds: PList).(PList_ind (\lambda (p: PList).(\forall 
+(c: C).(\forall (t: T).((drop1 p c e) \to ((nf2 e t) \to (nf2 c (lift1 p 
+t))))))) (\lambda (c: C).(\lambda (t: T).(\lambda (H: (drop1 PNil c 
+e)).(\lambda (H0: (nf2 e t)).(let H_y \def (drop1_gen_pnil c e H) in 
+(eq_ind_r C e (\lambda (c0: C).(nf2 c0 t)) H0 c H_y)))))) (\lambda (n: 
+nat).(\lambda (n0: nat).(\lambda (p: PList).(\lambda (H: ((\forall (c: 
+C).(\forall (t: T).((drop1 p c e) \to ((nf2 e t) \to (nf2 c (lift1 p 
+t)))))))).(\lambda (c: C).(\lambda (t: T).(\lambda (H0: (drop1 (PCons n n0 p) 
+c e)).(\lambda (H1: (nf2 e t)).(let H_x \def (drop1_gen_pcons c e p n n0 H0) 
+in (let H2 \def H_x in (ex2_ind C (\lambda (c2: C).(drop n n0 c c2)) (\lambda 
+(c2: C).(drop1 p c2 e)) (nf2 c (lift n n0 (lift1 p t))) (\lambda (x: 
+C).(\lambda (H3: (drop n n0 c x)).(\lambda (H4: (drop1 p x e)).(nf2_lift x 
+(lift1 p t) (H x t H4 H1) c n n0 H3)))) H2))))))))))) hds)).
 
index 6dc1547bdb15a6639bee199113861c2bcee95b59..8c602dfe0ec8e1b5d74e14560a87f8b34b8d00ae 100644 (file)
@@ -23,19 +23,14 @@ theorem nf2_pr3_unfold:
 t1) \to (eq T t1 t2)))))
 \def
  \lambda (c: C).(\lambda (t1: T).(\lambda (t2: T).(\lambda (H: (pr3 c t1 
-t2)).(let TMP_1 \def (\lambda (t: T).(\lambda (t0: T).((nf2 c t) \to (eq T t 
-t0)))) in (let TMP_4 \def (\lambda (t: T).(\lambda (H0: (nf2 c t)).(let TMP_2 
-\def (pr0_refl t) in (let TMP_3 \def (pr2_free c t t TMP_2) in (H0 t 
-TMP_3))))) in (let TMP_12 \def (\lambda (t0: T).(\lambda (t3: T).(\lambda 
-(H0: (pr2 c t3 t0)).(\lambda (t4: T).(\lambda (_: (pr3 c t0 t4)).(\lambda 
-(H2: (((nf2 c t0) \to (eq T t0 t4)))).(\lambda (H3: (nf2 c t3)).(let H4 \def 
-H3 in (let TMP_5 \def (\lambda (t: T).(nf2 c t)) in (let TMP_6 \def (H4 t0 
-H0) in (let H5 \def (eq_ind T t3 TMP_5 H3 t0 TMP_6) in (let TMP_7 \def 
-(\lambda (t: T).(pr2 c t t0)) in (let TMP_8 \def (H4 t0 H0) in (let H6 \def 
-(eq_ind T t3 TMP_7 H0 t0 TMP_8) in (let TMP_9 \def (\lambda (t: T).(eq T t 
-t4)) in (let TMP_10 \def (H2 H5) in (let TMP_11 \def (H4 t0 H0) in (eq_ind_r 
-T t0 TMP_9 TMP_10 t3 TMP_11)))))))))))))))))) in (pr3_ind c TMP_1 TMP_4 
-TMP_12 t1 t2 H))))))).
+t2)).(pr3_ind c (\lambda (t: T).(\lambda (t0: T).((nf2 c t) \to (eq T t 
+t0)))) (\lambda (t: T).(\lambda (H0: (nf2 c t)).(H0 t (pr2_free c t t 
+(pr0_refl t))))) (\lambda (t0: T).(\lambda (t3: T).(\lambda (H0: (pr2 c t3 
+t0)).(\lambda (t4: T).(\lambda (_: (pr3 c t0 t4)).(\lambda (H2: (((nf2 c t0) 
+\to (eq T t0 t4)))).(\lambda (H3: (nf2 c t3)).(let H4 \def H3 in (let H5 \def 
+(eq_ind T t3 (\lambda (t: T).(nf2 c t)) H3 t0 (H4 t0 H0)) in (let H6 \def 
+(eq_ind T t3 (\lambda (t: T).(pr2 c t t0)) H0 t0 (H4 t0 H0)) in (eq_ind_r T 
+t0 (\lambda (t: T).(eq T t t4)) (H2 H5) t3 (H4 t0 H0)))))))))))) t1 t2 H)))).
 
 theorem nf2_pr3_confluence:
  \forall (c: C).(\forall (t1: T).((nf2 c t1) \to (\forall (t2: T).((nf2 c t2) 
@@ -43,16 +38,13 @@ theorem nf2_pr3_confluence:
 \def
  \lambda (c: C).(\lambda (t1: T).(\lambda (H: (nf2 c t1)).(\lambda (t2: 
 T).(\lambda (H0: (nf2 c t2)).(\lambda (t: T).(\lambda (H1: (pr3 c t 
-t1)).(\lambda (H2: (pr3 c t t2)).(let TMP_1 \def (\lambda (t0: T).(pr3 c t2 
-t0)) in (let TMP_2 \def (\lambda (t0: T).(pr3 c t1 t0)) in (let TMP_3 \def 
-(eq T t1 t2) in (let TMP_9 \def (\lambda (x: T).(\lambda (H3: (pr3 c t2 
-x)).(\lambda (H4: (pr3 c t1 x)).(let H_y \def (nf2_pr3_unfold c t1 x H4 H) in 
-(let TMP_4 \def (\lambda (t0: T).(pr3 c t1 t0)) in (let H5 \def (eq_ind_r T x 
-TMP_4 H4 t1 H_y) in (let TMP_5 \def (\lambda (t0: T).(pr3 c t2 t0)) in (let 
-H6 \def (eq_ind_r T x TMP_5 H3 t1 H_y) in (let H_y0 \def (nf2_pr3_unfold c t2 
-t1 H6 H0) in (let TMP_6 \def (\lambda (t0: T).(pr3 c t0 t1)) in (let H7 \def 
-(eq_ind T t2 TMP_6 H6 t1 H_y0) in (let TMP_7 \def (\lambda (t0: T).(eq T t1 
-t0)) in (let TMP_8 \def (refl_equal T t1) in (eq_ind_r T t1 TMP_7 TMP_8 t2 
-H_y0)))))))))))))) in (let TMP_10 \def (pr3_confluence c t t2 H2 t1 H1) in 
-(ex2_ind T TMP_1 TMP_2 TMP_3 TMP_9 TMP_10))))))))))))).
+t1)).(\lambda (H2: (pr3 c t t2)).(ex2_ind T (\lambda (t0: T).(pr3 c t2 t0)) 
+(\lambda (t0: T).(pr3 c t1 t0)) (eq T t1 t2) (\lambda (x: T).(\lambda (H3: 
+(pr3 c t2 x)).(\lambda (H4: (pr3 c t1 x)).(let H_y \def (nf2_pr3_unfold c t1 
+x H4 H) in (let H5 \def (eq_ind_r T x (\lambda (t0: T).(pr3 c t1 t0)) H4 t1 
+H_y) in (let H6 \def (eq_ind_r T x (\lambda (t0: T).(pr3 c t2 t0)) H3 t1 H_y) 
+in (let H_y0 \def (nf2_pr3_unfold c t2 t1 H6 H0) in (let H7 \def (eq_ind T t2 
+(\lambda (t0: T).(pr3 c t0 t1)) H6 t1 H_y0) in (eq_ind_r T t1 (\lambda (t0: 
+T).(eq T t1 t0)) (refl_equal T t1) t2 H_y0))))))))) (pr3_confluence c t t2 H2 
+t1 H1))))))))).
 
index e1431c4e3343c56e4f4d624f43547a0e95c56c1a..43383eee4020e03b46f7e843532b873777ac9e7c 100644 (file)
@@ -22,44 +22,27 @@ theorem nf2_sort:
  \forall (c: C).(\forall (n: nat).(nf2 c (TSort n)))
 \def
  \lambda (c: C).(\lambda (n: nat).(\lambda (t2: T).(\lambda (H: (pr2 c (TSort 
-n) t2)).(let TMP_1 \def (TSort n) in (let TMP_3 \def (\lambda (t: T).(let 
-TMP_2 \def (TSort n) in (eq T TMP_2 t))) in (let TMP_4 \def (TSort n) in (let 
-TMP_5 \def (refl_equal T TMP_4) in (let TMP_6 \def (pr2_gen_sort c t2 n H) in 
-(eq_ind_r T TMP_1 TMP_3 TMP_5 t2 TMP_6))))))))).
+n) t2)).(eq_ind_r T (TSort n) (\lambda (t: T).(eq T (TSort n) t)) (refl_equal 
+T (TSort n)) t2 (pr2_gen_sort c t2 n H))))).
 
 theorem nf2_csort_lref:
  \forall (n: nat).(\forall (i: nat).(nf2 (CSort n) (TLRef i)))
 \def
  \lambda (n: nat).(\lambda (i: nat).(\lambda (t2: T).(\lambda (H: (pr2 (CSort 
-n) (TLRef i) t2)).(let TMP_1 \def (CSort n) in (let H0 \def (pr2_gen_lref 
-TMP_1 t2 i H) in (let TMP_2 \def (TLRef i) in (let TMP_3 \def (eq T t2 TMP_2) 
-in (let TMP_7 \def (\lambda (d: C).(\lambda (u: T).(let TMP_4 \def (CSort n) 
-in (let TMP_5 \def (Bind Abbr) in (let TMP_6 \def (CHead d TMP_5 u) in (getl 
-i TMP_4 TMP_6)))))) in (let TMP_10 \def (\lambda (_: C).(\lambda (u: T).(let 
-TMP_8 \def (S i) in (let TMP_9 \def (lift TMP_8 O u) in (eq T t2 TMP_9))))) 
-in (let TMP_11 \def (ex2_2 C T TMP_7 TMP_10) in (let TMP_12 \def (TLRef i) in 
-(let TMP_13 \def (eq T TMP_12 t2) in (let TMP_19 \def (\lambda (H1: (eq T t2 
-(TLRef i))).(let TMP_14 \def (TLRef i) in (let TMP_16 \def (\lambda (t: 
-T).(let TMP_15 \def (TLRef i) in (eq T TMP_15 t))) in (let TMP_17 \def (TLRef 
-i) in (let TMP_18 \def (refl_equal T TMP_17) in (eq_ind_r T TMP_14 TMP_16 
-TMP_18 t2 H1)))))) in (let TMP_41 \def (\lambda (H1: (ex2_2 C T (\lambda (d: 
-C).(\lambda (u: T).(getl i (CSort n) (CHead d (Bind Abbr) u)))) (\lambda (_: 
-C).(\lambda (u: T).(eq T t2 (lift (S i) O u)))))).(let TMP_23 \def (\lambda 
-(d: C).(\lambda (u: T).(let TMP_20 \def (CSort n) in (let TMP_21 \def (Bind 
-Abbr) in (let TMP_22 \def (CHead d TMP_21 u) in (getl i TMP_20 TMP_22)))))) 
-in (let TMP_26 \def (\lambda (_: C).(\lambda (u: T).(let TMP_24 \def (S i) in 
-(let TMP_25 \def (lift TMP_24 O u) in (eq T t2 TMP_25))))) in (let TMP_27 
-\def (TLRef i) in (let TMP_28 \def (eq T TMP_27 t2) in (let TMP_40 \def 
-(\lambda (x0: C).(\lambda (x1: T).(\lambda (H2: (getl i (CSort n) (CHead x0 
-(Bind Abbr) x1))).(\lambda (H3: (eq T t2 (lift (S i) O x1))).(let TMP_29 \def 
-(S i) in (let TMP_30 \def (lift TMP_29 O x1) in (let TMP_32 \def (\lambda (t: 
-T).(let TMP_31 \def (TLRef i) in (eq T TMP_31 t))) in (let TMP_33 \def (Bind 
-Abbr) in (let TMP_34 \def (CHead x0 TMP_33 x1) in (let TMP_35 \def (TLRef i) 
-in (let TMP_36 \def (S i) in (let TMP_37 \def (lift TMP_36 O x1) in (let 
-TMP_38 \def (eq T TMP_35 TMP_37) in (let TMP_39 \def (getl_gen_sort n i 
-TMP_34 H2 TMP_38) in (eq_ind_r T TMP_30 TMP_32 TMP_39 t2 H3))))))))))))))) in 
-(ex2_2_ind C T TMP_23 TMP_26 TMP_28 TMP_40 H1))))))) in (or_ind TMP_3 TMP_11 
-TMP_13 TMP_19 TMP_41 H0))))))))))))))).
+n) (TLRef i) t2)).(let H0 \def (pr2_gen_lref (CSort n) t2 i H) in (or_ind (eq 
+T t2 (TLRef i)) (ex2_2 C T (\lambda (d: C).(\lambda (u: T).(getl i (CSort n) 
+(CHead d (Bind Abbr) u)))) (\lambda (_: C).(\lambda (u: T).(eq T t2 (lift (S 
+i) O u))))) (eq T (TLRef i) t2) (\lambda (H1: (eq T t2 (TLRef i))).(eq_ind_r 
+T (TLRef i) (\lambda (t: T).(eq T (TLRef i) t)) (refl_equal T (TLRef i)) t2 
+H1)) (\lambda (H1: (ex2_2 C T (\lambda (d: C).(\lambda (u: T).(getl i (CSort 
+n) (CHead d (Bind Abbr) u)))) (\lambda (_: C).(\lambda (u: T).(eq T t2 (lift 
+(S i) O u)))))).(ex2_2_ind C T (\lambda (d: C).(\lambda (u: T).(getl i (CSort 
+n) (CHead d (Bind Abbr) u)))) (\lambda (_: C).(\lambda (u: T).(eq T t2 (lift 
+(S i) O u)))) (eq T (TLRef i) t2) (\lambda (x0: C).(\lambda (x1: T).(\lambda 
+(H2: (getl i (CSort n) (CHead x0 (Bind Abbr) x1))).(\lambda (H3: (eq T t2 
+(lift (S i) O x1))).(eq_ind_r T (lift (S i) O x1) (\lambda (t: T).(eq T 
+(TLRef i) t)) (getl_gen_sort n i (CHead x0 (Bind Abbr) x1) H2 (eq T (TLRef i) 
+(lift (S i) O x1))) t2 H3))))) H1)) H0))))).
 
 theorem nf2_abst:
  \forall (c: C).(\forall (u: T).((nf2 c u) \to (\forall (b: B).(\forall (v: 
@@ -70,25 +53,17 @@ Abst) u t))))))))
 \to (eq T u t2))))).(\lambda (b: B).(\lambda (v: T).(\lambda (t: T).(\lambda 
 (H0: ((\forall (t2: T).((pr2 (CHead c (Bind b) v) t t2) \to (eq T t 
 t2))))).(\lambda (t2: T).(\lambda (H1: (pr2 c (THead (Bind Abst) u t) 
-t2)).(let H2 \def (pr2_gen_abst c u t t2 H1) in (let TMP_3 \def (\lambda (u2: 
-T).(\lambda (t3: T).(let TMP_1 \def (Bind Abst) in (let TMP_2 \def (THead 
-TMP_1 u2 t3) in (eq T t2 TMP_2))))) in (let TMP_4 \def (\lambda (u2: 
-T).(\lambda (_: T).(pr2 c u u2))) in (let TMP_7 \def (\lambda (_: T).(\lambda 
-(t3: T).(\forall (b0: B).(\forall (u0: T).(let TMP_5 \def (Bind b0) in (let 
-TMP_6 \def (CHead c TMP_5 u0) in (pr2 TMP_6 t t3))))))) in (let TMP_8 \def 
-(Bind Abst) in (let TMP_9 \def (THead TMP_8 u t) in (let TMP_10 \def (eq T 
-TMP_9 t2) in (let TMP_24 \def (\lambda (x0: T).(\lambda (x1: T).(\lambda (H3: 
-(eq T t2 (THead (Bind Abst) x0 x1))).(\lambda (H4: (pr2 c u x0)).(\lambda 
-(H5: ((\forall (b0: B).(\forall (u0: T).(pr2 (CHead c (Bind b0) u0) t 
-x1))))).(let TMP_11 \def (Bind Abst) in (let TMP_12 \def (THead TMP_11 x0 x1) 
-in (let TMP_15 \def (\lambda (t0: T).(let TMP_13 \def (Bind Abst) in (let 
-TMP_14 \def (THead TMP_13 u t) in (eq T TMP_14 t0)))) in (let TMP_16 \def 
-(Bind Abst) in (let TMP_17 \def (Bind Abst) in (let TMP_18 \def (Bind Abst) 
-in (let TMP_19 \def (refl_equal K TMP_18) in (let TMP_20 \def (H x0 H4) in 
-(let TMP_21 \def (H5 b v) in (let TMP_22 \def (H0 x1 TMP_21) in (let TMP_23 
-\def (f_equal3 K T T T THead TMP_16 TMP_17 u x0 t x1 TMP_19 TMP_20 TMP_22) in 
-(eq_ind_r T TMP_12 TMP_15 TMP_23 t2 H3))))))))))))))))) in (ex3_2_ind T T 
-TMP_3 TMP_4 TMP_7 TMP_10 TMP_24 H2))))))))))))))))).
+t2)).(let H2 \def (pr2_gen_abst c u t t2 H1) in (ex3_2_ind T T (\lambda (u2: 
+T).(\lambda (t3: T).(eq T t2 (THead (Bind Abst) u2 t3)))) (\lambda (u2: 
+T).(\lambda (_: T).(pr2 c u u2))) (\lambda (_: T).(\lambda (t3: T).(\forall 
+(b0: B).(\forall (u0: T).(pr2 (CHead c (Bind b0) u0) t t3))))) (eq T (THead 
+(Bind Abst) u t) t2) (\lambda (x0: T).(\lambda (x1: T).(\lambda (H3: (eq T t2 
+(THead (Bind Abst) x0 x1))).(\lambda (H4: (pr2 c u x0)).(\lambda (H5: 
+((\forall (b0: B).(\forall (u0: T).(pr2 (CHead c (Bind b0) u0) t 
+x1))))).(eq_ind_r T (THead (Bind Abst) x0 x1) (\lambda (t0: T).(eq T (THead 
+(Bind Abst) u t) t0)) (f_equal3 K T T T THead (Bind Abst) (Bind Abst) u x0 t 
+x1 (refl_equal K (Bind Abst)) (H x0 H4) (H0 x1 (H5 b v))) t2 H3)))))) 
+H2)))))))))).
 
 theorem nf2_abst_shift:
  \forall (c: C).(\forall (u: T).((nf2 c u) \to (\forall (t: T).((nf2 (CHead c 
@@ -98,228 +73,59 @@ theorem nf2_abst_shift:
 \to (eq T u t2))))).(\lambda (t: T).(\lambda (H0: ((\forall (t2: T).((pr2 
 (CHead c (Bind Abst) u) t t2) \to (eq T t t2))))).(\lambda (t2: T).(\lambda 
 (H1: (pr2 c (THead (Bind Abst) u t) t2)).(let H2 \def (pr2_gen_abst c u t t2 
-H1) in (let TMP_3 \def (\lambda (u2: T).(\lambda (t3: T).(let TMP_1 \def 
-(Bind Abst) in (let TMP_2 \def (THead TMP_1 u2 t3) in (eq T t2 TMP_2))))) in 
-(let TMP_4 \def (\lambda (u2: T).(\lambda (_: T).(pr2 c u u2))) in (let TMP_7 
-\def (\lambda (_: T).(\lambda (t3: T).(\forall (b: B).(\forall (u0: T).(let 
-TMP_5 \def (Bind b) in (let TMP_6 \def (CHead c TMP_5 u0) in (pr2 TMP_6 t 
-t3))))))) in (let TMP_8 \def (Bind Abst) in (let TMP_9 \def (THead TMP_8 u t) 
-in (let TMP_10 \def (eq T TMP_9 t2) in (let TMP_24 \def (\lambda (x0: 
-T).(\lambda (x1: T).(\lambda (H3: (eq T t2 (THead (Bind Abst) x0 
-x1))).(\lambda (H4: (pr2 c u x0)).(\lambda (H5: ((\forall (b: B).(\forall 
-(u0: T).(pr2 (CHead c (Bind b) u0) t x1))))).(let TMP_11 \def (Bind Abst) in 
-(let TMP_12 \def (THead TMP_11 x0 x1) in (let TMP_15 \def (\lambda (t0: 
-T).(let TMP_13 \def (Bind Abst) in (let TMP_14 \def (THead TMP_13 u t) in (eq 
-T TMP_14 t0)))) in (let TMP_16 \def (Bind Abst) in (let TMP_17 \def (Bind 
-Abst) in (let TMP_18 \def (Bind Abst) in (let TMP_19 \def (refl_equal K 
-TMP_18) in (let TMP_20 \def (H x0 H4) in (let TMP_21 \def (H5 Abst u) in (let 
-TMP_22 \def (H0 x1 TMP_21) in (let TMP_23 \def (f_equal3 K T T T THead TMP_16 
-TMP_17 u x0 t x1 TMP_19 TMP_20 TMP_22) in (eq_ind_r T TMP_12 TMP_15 TMP_23 t2 
-H3))))))))))))))))) in (ex3_2_ind T T TMP_3 TMP_4 TMP_7 TMP_10 TMP_24 
-H2))))))))))))))).
+H1) in (ex3_2_ind T T (\lambda (u2: T).(\lambda (t3: T).(eq T t2 (THead (Bind 
+Abst) u2 t3)))) (\lambda (u2: T).(\lambda (_: T).(pr2 c u u2))) (\lambda (_: 
+T).(\lambda (t3: T).(\forall (b: B).(\forall (u0: T).(pr2 (CHead c (Bind b) 
+u0) t t3))))) (eq T (THead (Bind Abst) u t) t2) (\lambda (x0: T).(\lambda 
+(x1: T).(\lambda (H3: (eq T t2 (THead (Bind Abst) x0 x1))).(\lambda (H4: (pr2 
+c u x0)).(\lambda (H5: ((\forall (b: B).(\forall (u0: T).(pr2 (CHead c (Bind 
+b) u0) t x1))))).(eq_ind_r T (THead (Bind Abst) x0 x1) (\lambda (t0: T).(eq T 
+(THead (Bind Abst) u t) t0)) (f_equal3 K T T T THead (Bind Abst) (Bind Abst) 
+u x0 t x1 (refl_equal K (Bind Abst)) (H x0 H4) (H0 x1 (H5 Abst u))) t2 
+H3)))))) H2)))))))).
 
 theorem nfs2_tapp:
  \forall (c: C).(\forall (t: T).(\forall (ts: TList).((nfs2 c (TApp ts t)) 
 \to (land (nfs2 c ts) (nf2 c t)))))
 \def
- \lambda (c: C).(\lambda (t: T).(\lambda (ts: TList).(let TMP_3 \def (\lambda 
-(t0: TList).((nfs2 c (TApp t0 t)) \to (let TMP_1 \def (nfs2 c t0) in (let 
-TMP_2 \def (nf2 c t) in (land TMP_1 TMP_2))))) in (let TMP_9 \def (\lambda 
-(H: (land (nf2 c t) True)).(let H0 \def H in (let TMP_4 \def (nf2 c t) in 
-(let TMP_5 \def (nf2 c t) in (let TMP_6 \def (land True TMP_5) in (let TMP_8 
-\def (\lambda (H1: (nf2 c t)).(\lambda (_: True).(let TMP_7 \def (nf2 c t) in 
-(conj True TMP_7 I H1)))) in (land_ind TMP_4 True TMP_6 TMP_8 H0))))))) in 
-(let TMP_34 \def (\lambda (t0: T).(\lambda (t1: TList).(\lambda (H: (((nfs2 c 
+ \lambda (c: C).(\lambda (t: T).(\lambda (ts: TList).(TList_ind (\lambda (t0: 
+TList).((nfs2 c (TApp t0 t)) \to (land (nfs2 c t0) (nf2 c t)))) (\lambda (H: 
+(land (nf2 c t) True)).(let H0 \def H in (land_ind (nf2 c t) True (land True 
+(nf2 c t)) (\lambda (H1: (nf2 c t)).(\lambda (_: True).(conj True (nf2 c t) I 
+H1))) H0))) (\lambda (t0: T).(\lambda (t1: TList).(\lambda (H: (((nfs2 c 
 (TApp t1 t)) \to (land (nfs2 c t1) (nf2 c t))))).(\lambda (H0: (land (nf2 c 
-t0) (nfs2 c (TApp t1 t)))).(let H1 \def H0 in (let TMP_10 \def (nf2 c t0) in 
-(let TMP_11 \def (TApp t1 t) in (let TMP_12 \def (nfs2 c TMP_11) in (let 
-TMP_13 \def (nf2 c t0) in (let TMP_14 \def (nfs2 c t1) in (let TMP_15 \def 
-(land TMP_13 TMP_14) in (let TMP_16 \def (nf2 c t) in (let TMP_17 \def (land 
-TMP_15 TMP_16) in (let TMP_33 \def (\lambda (H2: (nf2 c t0)).(\lambda (H3: 
-(nfs2 c (TApp t1 t))).(let H_x \def (H H3) in (let H4 \def H_x in (let TMP_18 
-\def (nfs2 c t1) in (let TMP_19 \def (nf2 c t) in (let TMP_20 \def (nf2 c t0) 
-in (let TMP_21 \def (nfs2 c t1) in (let TMP_22 \def (land TMP_20 TMP_21) in 
-(let TMP_23 \def (nf2 c t) in (let TMP_24 \def (land TMP_22 TMP_23) in (let 
-TMP_32 \def (\lambda (H5: (nfs2 c t1)).(\lambda (H6: (nf2 c t)).(let TMP_25 
-\def (nf2 c t0) in (let TMP_26 \def (nfs2 c t1) in (let TMP_27 \def (land 
-TMP_25 TMP_26) in (let TMP_28 \def (nf2 c t) in (let TMP_29 \def (nf2 c t0) 
-in (let TMP_30 \def (nfs2 c t1) in (let TMP_31 \def (conj TMP_29 TMP_30 H2 
-H5) in (conj TMP_27 TMP_28 TMP_31 H6)))))))))) in (land_ind TMP_18 TMP_19 
-TMP_24 TMP_32 H4))))))))))))) in (land_ind TMP_10 TMP_12 TMP_17 TMP_33 
-H1))))))))))))))) in (TList_ind TMP_3 TMP_9 TMP_34 ts)))))).
+t0) (nfs2 c (TApp t1 t)))).(let H1 \def H0 in (land_ind (nf2 c t0) (nfs2 c 
+(TApp t1 t)) (land (land (nf2 c t0) (nfs2 c t1)) (nf2 c t)) (\lambda (H2: 
+(nf2 c t0)).(\lambda (H3: (nfs2 c (TApp t1 t))).(let H_x \def (H H3) in (let 
+H4 \def H_x in (land_ind (nfs2 c t1) (nf2 c t) (land (land (nf2 c t0) (nfs2 c 
+t1)) (nf2 c t)) (\lambda (H5: (nfs2 c t1)).(\lambda (H6: (nf2 c t)).(conj 
+(land (nf2 c t0) (nfs2 c t1)) (nf2 c t) (conj (nf2 c t0) (nfs2 c t1) H2 H5) 
+H6))) H4))))) H1)))))) ts))).
 
 theorem nf2_appls_lref:
  \forall (c: C).(\forall (i: nat).((nf2 c (TLRef i)) \to (\forall (vs: 
 TList).((nfs2 c vs) \to (nf2 c (THeads (Flat Appl) vs (TLRef i)))))))
 \def
  \lambda (c: C).(\lambda (i: nat).(\lambda (H: (nf2 c (TLRef i))).(\lambda 
-(vs: TList).(let TMP_4 \def (\lambda (t: TList).((nfs2 c t) \to (let TMP_1 
-\def (Flat Appl) in (let TMP_2 \def (TLRef i) in (let TMP_3 \def (THeads 
-TMP_1 t TMP_2) in (nf2 c TMP_3)))))) in (let TMP_5 \def (\lambda (_: True).H) 
-in (let TMP_295 \def (\lambda (t: T).(\lambda (t0: TList).(\lambda (H0: 
-(((nfs2 c t0) \to (nf2 c (THeads (Flat Appl) t0 (TLRef i)))))).(\lambda (H1: 
-(land (nf2 c t) (nfs2 c t0))).(let H2 \def H1 in (let TMP_6 \def (nf2 c t) in 
-(let TMP_7 \def (nfs2 c t0) in (let TMP_8 \def (Flat Appl) in (let TMP_9 \def 
-(Flat Appl) in (let TMP_10 \def (TLRef i) in (let TMP_11 \def (THeads TMP_9 
-t0 TMP_10) in (let TMP_12 \def (THead TMP_8 t TMP_11) in (let TMP_13 \def 
-(nf2 c TMP_12) in (let TMP_294 \def (\lambda (H3: (nf2 c t)).(\lambda (H4: 
-(nfs2 c t0)).(let H_y \def (H0 H4) in (\lambda (t2: T).(\lambda (H5: (pr2 c 
-(THead (Flat Appl) t (THeads (Flat Appl) t0 (TLRef i))) t2)).(let TMP_14 \def 
-(Flat Appl) in (let TMP_15 \def (TLRef i) in (let TMP_16 \def (THeads TMP_14 
-t0 TMP_15) in (let H6 \def (pr2_gen_appl c t TMP_16 t2 H5) in (let TMP_19 
-\def (\lambda (u2: T).(\lambda (t3: T).(let TMP_17 \def (Flat Appl) in (let 
-TMP_18 \def (THead TMP_17 u2 t3) in (eq T t2 TMP_18))))) in (let TMP_20 \def 
-(\lambda (u2: T).(\lambda (_: T).(pr2 c t u2))) in (let TMP_24 \def (\lambda 
-(_: T).(\lambda (t3: T).(let TMP_21 \def (Flat Appl) in (let TMP_22 \def 
-(TLRef i) in (let TMP_23 \def (THeads TMP_21 t0 TMP_22) in (pr2 c TMP_23 
-t3)))))) in (let TMP_25 \def (ex3_2 T T TMP_19 TMP_20 TMP_24) in (let TMP_31 
-\def (\lambda (y1: T).(\lambda (z1: T).(\lambda (_: T).(\lambda (_: T).(let 
-TMP_26 \def (Flat Appl) in (let TMP_27 \def (TLRef i) in (let TMP_28 \def 
-(THeads TMP_26 t0 TMP_27) in (let TMP_29 \def (Bind Abst) in (let TMP_30 \def 
-(THead TMP_29 y1 z1) in (eq T TMP_28 TMP_30)))))))))) in (let TMP_34 \def 
-(\lambda (_: T).(\lambda (_: T).(\lambda (u2: T).(\lambda (t3: T).(let TMP_32 
-\def (Bind Abbr) in (let TMP_33 \def (THead TMP_32 u2 t3) in (eq T t2 
-TMP_33))))))) in (let TMP_35 \def (\lambda (_: T).(\lambda (_: T).(\lambda 
-(u2: T).(\lambda (_: T).(pr2 c t u2))))) in (let TMP_38 \def (\lambda (_: 
-T).(\lambda (z1: T).(\lambda (_: T).(\lambda (t3: T).(\forall (b: B).(\forall 
-(u: T).(let TMP_36 \def (Bind b) in (let TMP_37 \def (CHead c TMP_36 u) in 
-(pr2 TMP_37 z1 t3))))))))) in (let TMP_39 \def (ex4_4 T T T T TMP_31 TMP_34 
-TMP_35 TMP_38) in (let TMP_41 \def (\lambda (b: B).(\lambda (_: T).(\lambda 
-(_: T).(\lambda (_: T).(\lambda (_: T).(\lambda (_: T).(let TMP_40 \def (eq B 
-b Abst) in (not TMP_40)))))))) in (let TMP_47 \def (\lambda (b: B).(\lambda 
-(y1: T).(\lambda (z1: T).(\lambda (_: T).(\lambda (_: T).(\lambda (_: T).(let 
-TMP_42 \def (Flat Appl) in (let TMP_43 \def (TLRef i) in (let TMP_44 \def 
-(THeads TMP_42 t0 TMP_43) in (let TMP_45 \def (Bind b) in (let TMP_46 \def 
-(THead TMP_45 y1 z1) in (eq T TMP_44 TMP_46)))))))))))) in (let TMP_54 \def 
-(\lambda (b: B).(\lambda (_: T).(\lambda (_: T).(\lambda (z2: T).(\lambda 
-(u2: T).(\lambda (y2: T).(let TMP_48 \def (Bind b) in (let TMP_49 \def (Flat 
-Appl) in (let TMP_50 \def (S O) in (let TMP_51 \def (lift TMP_50 O u2) in 
-(let TMP_52 \def (THead TMP_49 TMP_51 z2) in (let TMP_53 \def (THead TMP_48 
-y2 TMP_52) in (eq T t2 TMP_53))))))))))))) in (let TMP_55 \def (\lambda (_: 
-B).(\lambda (_: T).(\lambda (_: T).(\lambda (_: T).(\lambda (u2: T).(\lambda 
-(_: T).(pr2 c t u2))))))) in (let TMP_56 \def (\lambda (_: B).(\lambda (y1: 
-T).(\lambda (_: T).(\lambda (_: T).(\lambda (_: T).(\lambda (y2: T).(pr2 c y1 
-y2))))))) in (let TMP_59 \def (\lambda (b: B).(\lambda (_: T).(\lambda (z1: 
-T).(\lambda (z2: T).(\lambda (_: T).(\lambda (y2: T).(let TMP_57 \def (Bind 
-b) in (let TMP_58 \def (CHead c TMP_57 y2) in (pr2 TMP_58 z1 z2))))))))) in 
-(let TMP_60 \def (ex6_6 B T T T T T TMP_41 TMP_47 TMP_54 TMP_55 TMP_56 
-TMP_59) in (let TMP_61 \def (Flat Appl) in (let TMP_62 \def (Flat Appl) in 
-(let TMP_63 \def (TLRef i) in (let TMP_64 \def (THeads TMP_62 t0 TMP_63) in 
-(let TMP_65 \def (THead TMP_61 t TMP_64) in (let TMP_66 \def (eq T TMP_65 t2) 
-in (let TMP_132 \def (\lambda (H7: (ex3_2 T T (\lambda (u2: T).(\lambda (t3: 
-T).(eq T t2 (THead (Flat Appl) u2 t3)))) (\lambda (u2: T).(\lambda (_: 
-T).(pr2 c t u2))) (\lambda (_: T).(\lambda (t3: T).(pr2 c (THeads (Flat Appl) 
-t0 (TLRef i)) t3))))).(let TMP_69 \def (\lambda (u2: T).(\lambda (t3: T).(let 
-TMP_67 \def (Flat Appl) in (let TMP_68 \def (THead TMP_67 u2 t3) in (eq T t2 
-TMP_68))))) in (let TMP_70 \def (\lambda (u2: T).(\lambda (_: T).(pr2 c t 
-u2))) in (let TMP_74 \def (\lambda (_: T).(\lambda (t3: T).(let TMP_71 \def 
-(Flat Appl) in (let TMP_72 \def (TLRef i) in (let TMP_73 \def (THeads TMP_71 
-t0 TMP_72) in (pr2 c TMP_73 t3)))))) in (let TMP_75 \def (Flat Appl) in (let 
-TMP_76 \def (Flat Appl) in (let TMP_77 \def (TLRef i) in (let TMP_78 \def 
-(THeads TMP_76 t0 TMP_77) in (let TMP_79 \def (THead TMP_75 t TMP_78) in (let 
-TMP_80 \def (eq T TMP_79 t2) in (let TMP_131 \def (\lambda (x0: T).(\lambda 
-(x1: T).(\lambda (H8: (eq T t2 (THead (Flat Appl) x0 x1))).(\lambda (H9: (pr2 
-c t x0)).(\lambda (H10: (pr2 c (THeads (Flat Appl) t0 (TLRef i)) x1)).(let 
-TMP_81 \def (Flat Appl) in (let TMP_82 \def (THead TMP_81 x0 x1) in (let 
-TMP_88 \def (\lambda (t1: T).(let TMP_83 \def (Flat Appl) in (let TMP_84 \def 
-(Flat Appl) in (let TMP_85 \def (TLRef i) in (let TMP_86 \def (THeads TMP_84 
-t0 TMP_85) in (let TMP_87 \def (THead TMP_83 t TMP_86) in (eq T TMP_87 
-t1))))))) in (let TMP_92 \def (\lambda (t1: T).(let TMP_89 \def (Flat Appl) 
-in (let TMP_90 \def (TLRef i) in (let TMP_91 \def (THeads TMP_89 t0 TMP_90) 
-in (pr2 c TMP_91 t1))))) in (let TMP_93 \def (Flat Appl) in (let TMP_94 \def 
-(TLRef i) in (let TMP_95 \def (THeads TMP_93 t0 TMP_94) in (let TMP_96 \def 
-(H_y x1 H10) in (let H11 \def (eq_ind_r T x1 TMP_92 H10 TMP_95 TMP_96) in 
-(let TMP_97 \def (Flat Appl) in (let TMP_98 \def (TLRef i) in (let TMP_99 
-\def (THeads TMP_97 t0 TMP_98) in (let TMP_107 \def (\lambda (t1: T).(let 
-TMP_100 \def (Flat Appl) in (let TMP_101 \def (Flat Appl) in (let TMP_102 
-\def (TLRef i) in (let TMP_103 \def (THeads TMP_101 t0 TMP_102) in (let 
-TMP_104 \def (THead TMP_100 t TMP_103) in (let TMP_105 \def (Flat Appl) in 
-(let TMP_106 \def (THead TMP_105 x0 t1) in (eq T TMP_104 TMP_106))))))))) in 
-(let TMP_108 \def (\lambda (t1: T).(pr2 c t t1)) in (let TMP_109 \def (H3 x0 
-H9) in (let H12 \def (eq_ind_r T x0 TMP_108 H9 t TMP_109) in (let TMP_120 
-\def (\lambda (t1: T).(let TMP_110 \def (Flat Appl) in (let TMP_111 \def 
-(Flat Appl) in (let TMP_112 \def (TLRef i) in (let TMP_113 \def (THeads 
-TMP_111 t0 TMP_112) in (let TMP_114 \def (THead TMP_110 t TMP_113) in (let 
-TMP_115 \def (Flat Appl) in (let TMP_116 \def (Flat Appl) in (let TMP_117 
-\def (TLRef i) in (let TMP_118 \def (THeads TMP_116 t0 TMP_117) in (let 
-TMP_119 \def (THead TMP_115 t1 TMP_118) in (eq T TMP_114 TMP_119)))))))))))) 
-in (let TMP_121 \def (Flat Appl) in (let TMP_122 \def (Flat Appl) in (let 
-TMP_123 \def (TLRef i) in (let TMP_124 \def (THeads TMP_122 t0 TMP_123) in 
-(let TMP_125 \def (THead TMP_121 t TMP_124) in (let TMP_126 \def (refl_equal 
-T TMP_125) in (let TMP_127 \def (H3 x0 H9) in (let TMP_128 \def (eq_ind T t 
-TMP_120 TMP_126 x0 TMP_127) in (let TMP_129 \def (H_y x1 H10) in (let TMP_130 
-\def (eq_ind T TMP_99 TMP_107 TMP_128 x1 TMP_129) in (eq_ind_r T TMP_82 
-TMP_88 TMP_130 t2 H8))))))))))))))))))))))))))))))))) in (ex3_2_ind T T 
-TMP_69 TMP_70 TMP_74 TMP_80 TMP_131 H7)))))))))))) in (let TMP_201 \def 
-(\lambda (H7: (ex4_4 T T T T (\lambda (y1: T).(\lambda (z1: T).(\lambda (_: 
-T).(\lambda (_: T).(eq T (THeads (Flat Appl) t0 (TLRef i)) (THead (Bind Abst) 
-y1 z1)))))) (\lambda (_: T).(\lambda (_: T).(\lambda (u2: T).(\lambda (t3: 
-T).(eq T t2 (THead (Bind Abbr) u2 t3)))))) (\lambda (_: T).(\lambda (_: 
-T).(\lambda (u2: T).(\lambda (_: T).(pr2 c t u2))))) (\lambda (_: T).(\lambda 
-(z1: T).(\lambda (_: T).(\lambda (t3: T).(\forall (b: B).(\forall (u: T).(pr2 
-(CHead c (Bind b) u) z1 t3))))))))).(let TMP_138 \def (\lambda (y1: 
-T).(\lambda (z1: T).(\lambda (_: T).(\lambda (_: T).(let TMP_133 \def (Flat 
-Appl) in (let TMP_134 \def (TLRef i) in (let TMP_135 \def (THeads TMP_133 t0 
-TMP_134) in (let TMP_136 \def (Bind Abst) in (let TMP_137 \def (THead TMP_136 
-y1 z1) in (eq T TMP_135 TMP_137)))))))))) in (let TMP_141 \def (\lambda (_: 
-T).(\lambda (_: T).(\lambda (u2: T).(\lambda (t3: T).(let TMP_139 \def (Bind 
-Abbr) in (let TMP_140 \def (THead TMP_139 u2 t3) in (eq T t2 TMP_140))))))) 
-in (let TMP_142 \def (\lambda (_: T).(\lambda (_: T).(\lambda (u2: 
-T).(\lambda (_: T).(pr2 c t u2))))) in (let TMP_145 \def (\lambda (_: 
-T).(\lambda (z1: T).(\lambda (_: T).(\lambda (t3: T).(\forall (b: B).(\forall 
-(u: T).(let TMP_143 \def (Bind b) in (let TMP_144 \def (CHead c TMP_143 u) in 
-(pr2 TMP_144 z1 t3))))))))) in (let TMP_146 \def (Flat Appl) in (let TMP_147 
-\def (Flat Appl) in (let TMP_148 \def (TLRef i) in (let TMP_149 \def (THeads 
-TMP_147 t0 TMP_148) in (let TMP_150 \def (THead TMP_146 t TMP_149) in (let 
-TMP_151 \def (eq T TMP_150 t2) in (let TMP_200 \def (\lambda (x0: T).(\lambda 
-(x1: T).(\lambda (x2: T).(\lambda (x3: T).(\lambda (H8: (eq T (THeads (Flat 
-Appl) t0 (TLRef i)) (THead (Bind Abst) x0 x1))).(\lambda (H9: (eq T t2 (THead 
-(Bind Abbr) x2 x3))).(\lambda (_: (pr2 c t x2)).(\lambda (_: ((\forall (b: 
-B).(\forall (u: T).(pr2 (CHead c (Bind b) u) x1 x3))))).(let TMP_152 \def 
-(Bind Abbr) in (let TMP_153 \def (THead TMP_152 x2 x3) in (let TMP_159 \def 
-(\lambda (t1: T).(let TMP_154 \def (Flat Appl) in (let TMP_155 \def (Flat 
-Appl) in (let TMP_156 \def (TLRef i) in (let TMP_157 \def (THeads TMP_155 t0 
-TMP_156) in (let TMP_158 \def (THead TMP_154 t TMP_157) in (eq T TMP_158 
-t1))))))) in (let TMP_167 \def (\lambda (t1: TList).((nf2 c (THeads (Flat 
-Appl) t1 (TLRef i))) \to ((eq T (THeads (Flat Appl) t1 (TLRef i)) (THead 
-(Bind Abst) x0 x1)) \to (let TMP_160 \def (Flat Appl) in (let TMP_161 \def 
-(Flat Appl) in (let TMP_162 \def (TLRef i) in (let TMP_163 \def (THeads 
-TMP_161 t1 TMP_162) in (let TMP_164 \def (THead TMP_160 t TMP_163) in (let 
-TMP_165 \def (Bind Abbr) in (let TMP_166 \def (THead TMP_165 x2 x3) in (eq T 
-TMP_164 TMP_166))))))))))) in (let TMP_180 \def (\lambda (_: (nf2 c (THeads 
-(Flat Appl) TNil (TLRef i)))).(\lambda (H13: (eq T (THeads (Flat Appl) TNil 
-(TLRef i)) (THead (Bind Abst) x0 x1))).(let TMP_168 \def (TLRef i) in (let 
-TMP_169 \def (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | 
-(TLRef _) \Rightarrow True | (THead _ _ _) \Rightarrow False])) in (let 
-TMP_170 \def (Bind Abst) in (let TMP_171 \def (THead TMP_170 x0 x1) in (let 
-H14 \def (eq_ind T TMP_168 TMP_169 I TMP_171 H13) in (let TMP_172 \def (Flat 
-Appl) in (let TMP_173 \def (Flat Appl) in (let TMP_174 \def (TLRef i) in (let 
-TMP_175 \def (THeads TMP_173 TNil TMP_174) in (let TMP_176 \def (THead 
-TMP_172 t TMP_175) in (let TMP_177 \def (Bind Abbr) in (let TMP_178 \def 
-(THead TMP_177 x2 x3) in (let TMP_179 \def (eq T TMP_176 TMP_178) in 
-(False_ind TMP_179 H14)))))))))))))))) in (let TMP_198 \def (\lambda (t1: 
-T).(\lambda (t3: TList).(\lambda (_: (((nf2 c (THeads (Flat Appl) t3 (TLRef 
-i))) \to ((eq T (THeads (Flat Appl) t3 (TLRef i)) (THead (Bind Abst) x0 x1)) 
-\to (eq T (THead (Flat Appl) t (THeads (Flat Appl) t3 (TLRef i))) (THead 
-(Bind Abbr) x2 x3)))))).(\lambda (_: (nf2 c (THeads (Flat Appl) (TCons t1 t3) 
-(TLRef i)))).(\lambda (H13: (eq T (THeads (Flat Appl) (TCons t1 t3) (TLRef 
-i)) (THead (Bind Abst) x0 x1))).(let TMP_181 \def (Flat Appl) in (let TMP_182 
-\def (Flat Appl) in (let TMP_183 \def (TLRef i) in (let TMP_184 \def (THeads 
-TMP_182 t3 TMP_183) in (let TMP_185 \def (THead TMP_181 t1 TMP_184) in (let 
-TMP_186 \def (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | 
-(TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow (match k with [(Bind 
-_) \Rightarrow False | (Flat _) \Rightarrow True])])) in (let TMP_187 \def 
-(Bind Abst) in (let TMP_188 \def (THead TMP_187 x0 x1) in (let H14 \def 
-(eq_ind T TMP_185 TMP_186 I TMP_188 H13) in (let TMP_189 \def (Flat Appl) in 
-(let TMP_190 \def (Flat Appl) in (let TMP_191 \def (TCons t1 t3) in (let 
-TMP_192 \def (TLRef i) in (let TMP_193 \def (THeads TMP_190 TMP_191 TMP_192) 
-in (let TMP_194 \def (THead TMP_189 t TMP_193) in (let TMP_195 \def (Bind 
-Abbr) in (let TMP_196 \def (THead TMP_195 x2 x3) in (let TMP_197 \def (eq T 
-TMP_194 TMP_196) in (False_ind TMP_197 H14)))))))))))))))))))))))) in (let 
-TMP_199 \def (TList_ind TMP_167 TMP_180 TMP_198 t0 H_y H8) in (eq_ind_r T 
-TMP_153 TMP_159 TMP_199 t2 H9)))))))))))))))) in (ex4_4_ind T T T T TMP_138 
-TMP_141 TMP_142 TMP_145 TMP_151 TMP_200 H7))))))))))))) in (let TMP_293 \def 
-(\lambda (H7: (ex6_6 B T T T T T (\lambda (b: B).(\lambda (_: T).(\lambda (_: 
+(vs: TList).(TList_ind (\lambda (t: TList).((nfs2 c t) \to (nf2 c (THeads 
+(Flat Appl) t (TLRef i))))) (\lambda (_: True).H) (\lambda (t: T).(\lambda 
+(t0: TList).(\lambda (H0: (((nfs2 c t0) \to (nf2 c (THeads (Flat Appl) t0 
+(TLRef i)))))).(\lambda (H1: (land (nf2 c t) (nfs2 c t0))).(let H2 \def H1 in 
+(land_ind (nf2 c t) (nfs2 c t0) (nf2 c (THead (Flat Appl) t (THeads (Flat 
+Appl) t0 (TLRef i)))) (\lambda (H3: (nf2 c t)).(\lambda (H4: (nfs2 c 
+t0)).(let H_y \def (H0 H4) in (\lambda (t2: T).(\lambda (H5: (pr2 c (THead 
+(Flat Appl) t (THeads (Flat Appl) t0 (TLRef i))) t2)).(let H6 \def 
+(pr2_gen_appl c t (THeads (Flat Appl) t0 (TLRef i)) t2 H5) in (or3_ind (ex3_2 
+T T (\lambda (u2: T).(\lambda (t3: T).(eq T t2 (THead (Flat Appl) u2 t3)))) 
+(\lambda (u2: T).(\lambda (_: T).(pr2 c t u2))) (\lambda (_: T).(\lambda (t3: 
+T).(pr2 c (THeads (Flat Appl) t0 (TLRef i)) t3)))) (ex4_4 T T T T (\lambda 
+(y1: T).(\lambda (z1: T).(\lambda (_: T).(\lambda (_: T).(eq T (THeads (Flat 
+Appl) t0 (TLRef i)) (THead (Bind Abst) y1 z1)))))) (\lambda (_: T).(\lambda 
+(_: T).(\lambda (u2: T).(\lambda (t3: T).(eq T t2 (THead (Bind Abbr) u2 
+t3)))))) (\lambda (_: T).(\lambda (_: T).(\lambda (u2: T).(\lambda (_: 
+T).(pr2 c t u2))))) (\lambda (_: T).(\lambda (z1: T).(\lambda (_: T).(\lambda 
+(t3: T).(\forall (b: B).(\forall (u: T).(pr2 (CHead c (Bind b) u) z1 
+t3)))))))) (ex6_6 B T T T T T (\lambda (b: B).(\lambda (_: T).(\lambda (_: 
 T).(\lambda (_: T).(\lambda (_: T).(\lambda (_: T).(not (eq B b Abst)))))))) 
 (\lambda (b: B).(\lambda (y1: T).(\lambda (z1: T).(\lambda (_: T).(\lambda 
 (_: T).(\lambda (_: T).(eq T (THeads (Flat Appl) t0 (TLRef i)) (THead (Bind 
@@ -330,98 +136,132 @@ T).(\lambda (_: T).(\lambda (_: T).(\lambda (u2: T).(\lambda (_: T).(pr2 c t
 u2))))))) (\lambda (_: B).(\lambda (y1: T).(\lambda (_: T).(\lambda (_: 
 T).(\lambda (_: T).(\lambda (y2: T).(pr2 c y1 y2))))))) (\lambda (b: 
 B).(\lambda (_: T).(\lambda (z1: T).(\lambda (z2: T).(\lambda (_: T).(\lambda 
-(y2: T).(pr2 (CHead c (Bind b) y2) z1 z2))))))))).(let TMP_203 \def (\lambda 
-(b: B).(\lambda (_: T).(\lambda (_: T).(\lambda (_: T).(\lambda (_: 
-T).(\lambda (_: T).(let TMP_202 \def (eq B b Abst) in (not TMP_202)))))))) in 
-(let TMP_209 \def (\lambda (b: B).(\lambda (y1: T).(\lambda (z1: T).(\lambda 
-(_: T).(\lambda (_: T).(\lambda (_: T).(let TMP_204 \def (Flat Appl) in (let 
-TMP_205 \def (TLRef i) in (let TMP_206 \def (THeads TMP_204 t0 TMP_205) in 
-(let TMP_207 \def (Bind b) in (let TMP_208 \def (THead TMP_207 y1 z1) in (eq 
-T TMP_206 TMP_208)))))))))))) in (let TMP_216 \def (\lambda (b: B).(\lambda 
-(_: T).(\lambda (_: T).(\lambda (z2: T).(\lambda (u2: T).(\lambda (y2: 
-T).(let TMP_210 \def (Bind b) in (let TMP_211 \def (Flat Appl) in (let 
-TMP_212 \def (S O) in (let TMP_213 \def (lift TMP_212 O u2) in (let TMP_214 
-\def (THead TMP_211 TMP_213 z2) in (let TMP_215 \def (THead TMP_210 y2 
-TMP_214) in (eq T t2 TMP_215))))))))))))) in (let TMP_217 \def (\lambda (_: 
-B).(\lambda (_: T).(\lambda (_: T).(\lambda (_: T).(\lambda (u2: T).(\lambda 
-(_: T).(pr2 c t u2))))))) in (let TMP_218 \def (\lambda (_: B).(\lambda (y1: 
+(y2: T).(pr2 (CHead c (Bind b) y2) z1 z2)))))))) (eq T (THead (Flat Appl) t 
+(THeads (Flat Appl) t0 (TLRef i))) t2) (\lambda (H7: (ex3_2 T T (\lambda (u2: 
+T).(\lambda (t3: T).(eq T t2 (THead (Flat Appl) u2 t3)))) (\lambda (u2: 
+T).(\lambda (_: T).(pr2 c t u2))) (\lambda (_: T).(\lambda (t3: T).(pr2 c 
+(THeads (Flat Appl) t0 (TLRef i)) t3))))).(ex3_2_ind T T (\lambda (u2: 
+T).(\lambda (t3: T).(eq T t2 (THead (Flat Appl) u2 t3)))) (\lambda (u2: 
+T).(\lambda (_: T).(pr2 c t u2))) (\lambda (_: T).(\lambda (t3: T).(pr2 c 
+(THeads (Flat Appl) t0 (TLRef i)) t3))) (eq T (THead (Flat Appl) t (THeads 
+(Flat Appl) t0 (TLRef i))) t2) (\lambda (x0: T).(\lambda (x1: T).(\lambda 
+(H8: (eq T t2 (THead (Flat Appl) x0 x1))).(\lambda (H9: (pr2 c t 
+x0)).(\lambda (H10: (pr2 c (THeads (Flat Appl) t0 (TLRef i)) x1)).(eq_ind_r T 
+(THead (Flat Appl) x0 x1) (\lambda (t1: T).(eq T (THead (Flat Appl) t (THeads 
+(Flat Appl) t0 (TLRef i))) t1)) (let H11 \def (eq_ind_r T x1 (\lambda (t1: 
+T).(pr2 c (THeads (Flat Appl) t0 (TLRef i)) t1)) H10 (THeads (Flat Appl) t0 
+(TLRef i)) (H_y x1 H10)) in (eq_ind T (THeads (Flat Appl) t0 (TLRef i)) 
+(\lambda (t1: T).(eq T (THead (Flat Appl) t (THeads (Flat Appl) t0 (TLRef 
+i))) (THead (Flat Appl) x0 t1))) (let H12 \def (eq_ind_r T x0 (\lambda (t1: 
+T).(pr2 c t t1)) H9 t (H3 x0 H9)) in (eq_ind T t (\lambda (t1: T).(eq T 
+(THead (Flat Appl) t (THeads (Flat Appl) t0 (TLRef i))) (THead (Flat Appl) t1 
+(THeads (Flat Appl) t0 (TLRef i))))) (refl_equal T (THead (Flat Appl) t 
+(THeads (Flat Appl) t0 (TLRef i)))) x0 (H3 x0 H9))) x1 (H_y x1 H10))) t2 
+H8)))))) H7)) (\lambda (H7: (ex4_4 T T T T (\lambda (y1: T).(\lambda (z1: 
+T).(\lambda (_: T).(\lambda (_: T).(eq T (THeads (Flat Appl) t0 (TLRef i)) 
+(THead (Bind Abst) y1 z1)))))) (\lambda (_: T).(\lambda (_: T).(\lambda (u2: 
+T).(\lambda (t3: T).(eq T t2 (THead (Bind Abbr) u2 t3)))))) (\lambda (_: 
+T).(\lambda (_: T).(\lambda (u2: T).(\lambda (_: T).(pr2 c t u2))))) (\lambda 
+(_: T).(\lambda (z1: T).(\lambda (_: T).(\lambda (t3: T).(\forall (b: 
+B).(\forall (u: T).(pr2 (CHead c (Bind b) u) z1 t3))))))))).(ex4_4_ind T T T 
+T (\lambda (y1: T).(\lambda (z1: T).(\lambda (_: T).(\lambda (_: T).(eq T 
+(THeads (Flat Appl) t0 (TLRef i)) (THead (Bind Abst) y1 z1)))))) (\lambda (_: 
+T).(\lambda (_: T).(\lambda (u2: T).(\lambda (t3: T).(eq T t2 (THead (Bind 
+Abbr) u2 t3)))))) (\lambda (_: T).(\lambda (_: T).(\lambda (u2: T).(\lambda 
+(_: T).(pr2 c t u2))))) (\lambda (_: T).(\lambda (z1: T).(\lambda (_: 
+T).(\lambda (t3: T).(\forall (b: B).(\forall (u: T).(pr2 (CHead c (Bind b) u) 
+z1 t3))))))) (eq T (THead (Flat Appl) t (THeads (Flat Appl) t0 (TLRef i))) 
+t2) (\lambda (x0: T).(\lambda (x1: T).(\lambda (x2: T).(\lambda (x3: 
+T).(\lambda (H8: (eq T (THeads (Flat Appl) t0 (TLRef i)) (THead (Bind Abst) 
+x0 x1))).(\lambda (H9: (eq T t2 (THead (Bind Abbr) x2 x3))).(\lambda (_: (pr2 
+c t x2)).(\lambda (_: ((\forall (b: B).(\forall (u: T).(pr2 (CHead c (Bind b) 
+u) x1 x3))))).(eq_ind_r T (THead (Bind Abbr) x2 x3) (\lambda (t1: T).(eq T 
+(THead (Flat Appl) t (THeads (Flat Appl) t0 (TLRef i))) t1)) (TList_ind 
+(\lambda (t1: TList).((nf2 c (THeads (Flat Appl) t1 (TLRef i))) \to ((eq T 
+(THeads (Flat Appl) t1 (TLRef i)) (THead (Bind Abst) x0 x1)) \to (eq T (THead 
+(Flat Appl) t (THeads (Flat Appl) t1 (TLRef i))) (THead (Bind Abbr) x2 
+x3))))) (\lambda (_: (nf2 c (THeads (Flat Appl) TNil (TLRef i)))).(\lambda 
+(H13: (eq T (THeads (Flat Appl) TNil (TLRef i)) (THead (Bind Abst) x0 
+x1))).(let H14 \def (eq_ind T (TLRef i) (\lambda (ee: T).(match ee with 
+[(TSort _) \Rightarrow False | (TLRef _) \Rightarrow True | (THead _ _ _) 
+\Rightarrow False])) I (THead (Bind Abst) x0 x1) H13) in (False_ind (eq T 
+(THead (Flat Appl) t (THeads (Flat Appl) TNil (TLRef i))) (THead (Bind Abbr) 
+x2 x3)) H14)))) (\lambda (t1: T).(\lambda (t3: TList).(\lambda (_: (((nf2 c 
+(THeads (Flat Appl) t3 (TLRef i))) \to ((eq T (THeads (Flat Appl) t3 (TLRef 
+i)) (THead (Bind Abst) x0 x1)) \to (eq T (THead (Flat Appl) t (THeads (Flat 
+Appl) t3 (TLRef i))) (THead (Bind Abbr) x2 x3)))))).(\lambda (_: (nf2 c 
+(THeads (Flat Appl) (TCons t1 t3) (TLRef i)))).(\lambda (H13: (eq T (THeads 
+(Flat Appl) (TCons t1 t3) (TLRef i)) (THead (Bind Abst) x0 x1))).(let H14 
+\def (eq_ind T (THead (Flat Appl) t1 (THeads (Flat Appl) t3 (TLRef i))) 
+(\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) 
+\Rightarrow False | (THead k _ _) \Rightarrow (match k with [(Bind _) 
+\Rightarrow False | (Flat _) \Rightarrow True])])) I (THead (Bind Abst) x0 
+x1) H13) in (False_ind (eq T (THead (Flat Appl) t (THeads (Flat Appl) (TCons 
+t1 t3) (TLRef i))) (THead (Bind Abbr) x2 x3)) H14))))))) t0 H_y H8) t2 
+H9))))))))) H7)) (\lambda (H7: (ex6_6 B T T T T T (\lambda (b: B).(\lambda 
+(_: T).(\lambda (_: T).(\lambda (_: T).(\lambda (_: T).(\lambda (_: T).(not 
+(eq B b Abst)))))))) (\lambda (b: B).(\lambda (y1: T).(\lambda (z1: 
+T).(\lambda (_: T).(\lambda (_: T).(\lambda (_: T).(eq T (THeads (Flat Appl) 
+t0 (TLRef i)) (THead (Bind b) y1 z1)))))))) (\lambda (b: B).(\lambda (_: 
+T).(\lambda (_: T).(\lambda (z2: T).(\lambda (u2: T).(\lambda (y2: T).(eq T 
+t2 (THead (Bind b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))))))))) 
+(\lambda (_: B).(\lambda (_: T).(\lambda (_: T).(\lambda (_: T).(\lambda (u2: 
+T).(\lambda (_: T).(pr2 c t u2))))))) (\lambda (_: B).(\lambda (y1: 
 T).(\lambda (_: T).(\lambda (_: T).(\lambda (_: T).(\lambda (y2: T).(pr2 c y1 
-y2))))))) in (let TMP_221 \def (\lambda (b: B).(\lambda (_: T).(\lambda (z1: 
-T).(\lambda (z2: T).(\lambda (_: T).(\lambda (y2: T).(let TMP_219 \def (Bind 
-b) in (let TMP_220 \def (CHead c TMP_219 y2) in (pr2 TMP_220 z1 z2))))))))) 
-in (let TMP_222 \def (Flat Appl) in (let TMP_223 \def (Flat Appl) in (let 
-TMP_224 \def (TLRef i) in (let TMP_225 \def (THeads TMP_223 t0 TMP_224) in 
-(let TMP_226 \def (THead TMP_222 t TMP_225) in (let TMP_227 \def (eq T 
-TMP_226 t2) in (let TMP_292 \def (\lambda (x0: B).(\lambda (x1: T).(\lambda 
-(x2: T).(\lambda (x3: T).(\lambda (x4: T).(\lambda (x5: T).(\lambda (_: (not 
-(eq B x0 Abst))).(\lambda (H9: (eq T (THeads (Flat Appl) t0 (TLRef i)) (THead 
-(Bind x0) x1 x2))).(\lambda (H10: (eq T t2 (THead (Bind x0) x5 (THead (Flat 
-Appl) (lift (S O) O x4) x3)))).(\lambda (_: (pr2 c t x4)).(\lambda (_: (pr2 c 
-x1 x5)).(\lambda (_: (pr2 (CHead c (Bind x0) x5) x2 x3)).(let TMP_228 \def 
-(Bind x0) in (let TMP_229 \def (Flat Appl) in (let TMP_230 \def (S O) in (let 
-TMP_231 \def (lift TMP_230 O x4) in (let TMP_232 \def (THead TMP_229 TMP_231 
-x3) in (let TMP_233 \def (THead TMP_228 x5 TMP_232) in (let TMP_239 \def 
-(\lambda (t1: T).(let TMP_234 \def (Flat Appl) in (let TMP_235 \def (Flat 
-Appl) in (let TMP_236 \def (TLRef i) in (let TMP_237 \def (THeads TMP_235 t0 
-TMP_236) in (let TMP_238 \def (THead TMP_234 t TMP_237) in (eq T TMP_238 
-t1))))))) in (let TMP_251 \def (\lambda (t1: TList).((nf2 c (THeads (Flat 
-Appl) t1 (TLRef i))) \to ((eq T (THeads (Flat Appl) t1 (TLRef i)) (THead 
-(Bind x0) x1 x2)) \to (let TMP_240 \def (Flat Appl) in (let TMP_241 \def 
-(Flat Appl) in (let TMP_242 \def (TLRef i) in (let TMP_243 \def (THeads 
-TMP_241 t1 TMP_242) in (let TMP_244 \def (THead TMP_240 t TMP_243) in (let 
-TMP_245 \def (Bind x0) in (let TMP_246 \def (Flat Appl) in (let TMP_247 \def 
-(S O) in (let TMP_248 \def (lift TMP_247 O x4) in (let TMP_249 \def (THead 
-TMP_246 TMP_248 x3) in (let TMP_250 \def (THead TMP_245 x5 TMP_249) in (eq T 
-TMP_244 TMP_250))))))))))))))) in (let TMP_268 \def (\lambda (_: (nf2 c 
-(THeads (Flat Appl) TNil (TLRef i)))).(\lambda (H15: (eq T (THeads (Flat 
-Appl) TNil (TLRef i)) (THead (Bind x0) x1 x2))).(let TMP_252 \def (TLRef i) 
-in (let TMP_253 \def (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow 
-False | (TLRef _) \Rightarrow True | (THead _ _ _) \Rightarrow False])) in 
-(let TMP_254 \def (Bind x0) in (let TMP_255 \def (THead TMP_254 x1 x2) in 
-(let H16 \def (eq_ind T TMP_252 TMP_253 I TMP_255 H15) in (let TMP_256 \def 
-(Flat Appl) in (let TMP_257 \def (Flat Appl) in (let TMP_258 \def (TLRef i) 
-in (let TMP_259 \def (THeads TMP_257 TNil TMP_258) in (let TMP_260 \def 
-(THead TMP_256 t TMP_259) in (let TMP_261 \def (Bind x0) in (let TMP_262 \def 
-(Flat Appl) in (let TMP_263 \def (S O) in (let TMP_264 \def (lift TMP_263 O 
-x4) in (let TMP_265 \def (THead TMP_262 TMP_264 x3) in (let TMP_266 \def 
-(THead TMP_261 x5 TMP_265) in (let TMP_267 \def (eq T TMP_260 TMP_266) in 
-(False_ind TMP_267 H16)))))))))))))))))))) in (let TMP_290 \def (\lambda (t1: 
-T).(\lambda (t3: TList).(\lambda (_: (((nf2 c (THeads (Flat Appl) t3 (TLRef 
-i))) \to ((eq T (THeads (Flat Appl) t3 (TLRef i)) (THead (Bind x0) x1 x2)) 
-\to (eq T (THead (Flat Appl) t (THeads (Flat Appl) t3 (TLRef i))) (THead 
-(Bind x0) x5 (THead (Flat Appl) (lift (S O) O x4) x3))))))).(\lambda (_: (nf2 
-c (THeads (Flat Appl) (TCons t1 t3) (TLRef i)))).(\lambda (H15: (eq T (THeads 
-(Flat Appl) (TCons t1 t3) (TLRef i)) (THead (Bind x0) x1 x2))).(let TMP_269 
-\def (Flat Appl) in (let TMP_270 \def (Flat Appl) in (let TMP_271 \def (TLRef 
-i) in (let TMP_272 \def (THeads TMP_270 t3 TMP_271) in (let TMP_273 \def 
-(THead TMP_269 t1 TMP_272) in (let TMP_274 \def (\lambda (ee: T).(match ee 
-with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ 
-_) \Rightarrow (match k with [(Bind _) \Rightarrow False | (Flat _) 
-\Rightarrow True])])) in (let TMP_275 \def (Bind x0) in (let TMP_276 \def 
-(THead TMP_275 x1 x2) in (let H16 \def (eq_ind T TMP_273 TMP_274 I TMP_276 
-H15) in (let TMP_277 \def (Flat Appl) in (let TMP_278 \def (Flat Appl) in 
-(let TMP_279 \def (TCons t1 t3) in (let TMP_280 \def (TLRef i) in (let 
-TMP_281 \def (THeads TMP_278 TMP_279 TMP_280) in (let TMP_282 \def (THead 
-TMP_277 t TMP_281) in (let TMP_283 \def (Bind x0) in (let TMP_284 \def (Flat 
-Appl) in (let TMP_285 \def (S O) in (let TMP_286 \def (lift TMP_285 O x4) in 
-(let TMP_287 \def (THead TMP_284 TMP_286 x3) in (let TMP_288 \def (THead 
-TMP_283 x5 TMP_287) in (let TMP_289 \def (eq T TMP_282 TMP_288) in (False_ind 
-TMP_289 H16)))))))))))))))))))))))))))) in (let TMP_291 \def (TList_ind 
-TMP_251 TMP_268 TMP_290 t0 H_y H9) in (eq_ind_r T TMP_233 TMP_239 TMP_291 t2 
-H10)))))))))))))))))))))))) in (ex6_6_ind B T T T T T TMP_203 TMP_209 TMP_216 
-TMP_217 TMP_218 TMP_221 TMP_227 TMP_292 H7))))))))))))))) in (or3_ind TMP_25 
-TMP_39 TMP_60 TMP_66 TMP_132 TMP_201 TMP_293 
-H6))))))))))))))))))))))))))))))))))) in (land_ind TMP_6 TMP_7 TMP_13 TMP_294 
-H2))))))))))))))) in (TList_ind TMP_4 TMP_5 TMP_295 vs))))))).
+y2))))))) (\lambda (b: B).(\lambda (_: T).(\lambda (z1: T).(\lambda (z2: 
+T).(\lambda (_: T).(\lambda (y2: T).(pr2 (CHead c (Bind b) y2) z1 
+z2))))))))).(ex6_6_ind B T T T T T (\lambda (b: B).(\lambda (_: T).(\lambda 
+(_: T).(\lambda (_: T).(\lambda (_: T).(\lambda (_: T).(not (eq B b 
+Abst)))))))) (\lambda (b: B).(\lambda (y1: T).(\lambda (z1: T).(\lambda (_: 
+T).(\lambda (_: T).(\lambda (_: T).(eq T (THeads (Flat Appl) t0 (TLRef i)) 
+(THead (Bind b) y1 z1)))))))) (\lambda (b: B).(\lambda (_: T).(\lambda (_: 
+T).(\lambda (z2: T).(\lambda (u2: T).(\lambda (y2: T).(eq T t2 (THead (Bind 
+b) y2 (THead (Flat Appl) (lift (S O) O u2) z2))))))))) (\lambda (_: 
+B).(\lambda (_: T).(\lambda (_: T).(\lambda (_: T).(\lambda (u2: T).(\lambda 
+(_: T).(pr2 c t u2))))))) (\lambda (_: B).(\lambda (y1: T).(\lambda (_: 
+T).(\lambda (_: T).(\lambda (_: T).(\lambda (y2: T).(pr2 c y1 y2))))))) 
+(\lambda (b: B).(\lambda (_: T).(\lambda (z1: T).(\lambda (z2: T).(\lambda 
+(_: T).(\lambda (y2: T).(pr2 (CHead c (Bind b) y2) z1 z2))))))) (eq T (THead 
+(Flat Appl) t (THeads (Flat Appl) t0 (TLRef i))) t2) (\lambda (x0: 
+B).(\lambda (x1: T).(\lambda (x2: T).(\lambda (x3: T).(\lambda (x4: 
+T).(\lambda (x5: T).(\lambda (_: (not (eq B x0 Abst))).(\lambda (H9: (eq T 
+(THeads (Flat Appl) t0 (TLRef i)) (THead (Bind x0) x1 x2))).(\lambda (H10: 
+(eq T t2 (THead (Bind x0) x5 (THead (Flat Appl) (lift (S O) O x4) 
+x3)))).(\lambda (_: (pr2 c t x4)).(\lambda (_: (pr2 c x1 x5)).(\lambda (_: 
+(pr2 (CHead c (Bind x0) x5) x2 x3)).(eq_ind_r T (THead (Bind x0) x5 (THead 
+(Flat Appl) (lift (S O) O x4) x3)) (\lambda (t1: T).(eq T (THead (Flat Appl) 
+t (THeads (Flat Appl) t0 (TLRef i))) t1)) (TList_ind (\lambda (t1: 
+TList).((nf2 c (THeads (Flat Appl) t1 (TLRef i))) \to ((eq T (THeads (Flat 
+Appl) t1 (TLRef i)) (THead (Bind x0) x1 x2)) \to (eq T (THead (Flat Appl) t 
+(THeads (Flat Appl) t1 (TLRef i))) (THead (Bind x0) x5 (THead (Flat Appl) 
+(lift (S O) O x4) x3)))))) (\lambda (_: (nf2 c (THeads (Flat Appl) TNil 
+(TLRef i)))).(\lambda (H15: (eq T (THeads (Flat Appl) TNil (TLRef i)) (THead 
+(Bind x0) x1 x2))).(let H16 \def (eq_ind T (TLRef i) (\lambda (ee: T).(match 
+ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow True | (THead _ 
+_ _) \Rightarrow False])) I (THead (Bind x0) x1 x2) H15) in (False_ind (eq T 
+(THead (Flat Appl) t (THeads (Flat Appl) TNil (TLRef i))) (THead (Bind x0) x5 
+(THead (Flat Appl) (lift (S O) O x4) x3))) H16)))) (\lambda (t1: T).(\lambda 
+(t3: TList).(\lambda (_: (((nf2 c (THeads (Flat Appl) t3 (TLRef i))) \to ((eq 
+T (THeads (Flat Appl) t3 (TLRef i)) (THead (Bind x0) x1 x2)) \to (eq T (THead 
+(Flat Appl) t (THeads (Flat Appl) t3 (TLRef i))) (THead (Bind x0) x5 (THead 
+(Flat Appl) (lift (S O) O x4) x3))))))).(\lambda (_: (nf2 c (THeads (Flat 
+Appl) (TCons t1 t3) (TLRef i)))).(\lambda (H15: (eq T (THeads (Flat Appl) 
+(TCons t1 t3) (TLRef i)) (THead (Bind x0) x1 x2))).(let H16 \def (eq_ind T 
+(THead (Flat Appl) t1 (THeads (Flat Appl) t3 (TLRef i))) (\lambda (ee: 
+T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False 
+| (THead k _ _) \Rightarrow (match k with [(Bind _) \Rightarrow False | (Flat 
+_) \Rightarrow True])])) I (THead (Bind x0) x1 x2) H15) in (False_ind (eq T 
+(THead (Flat Appl) t (THeads (Flat Appl) (TCons t1 t3) (TLRef i))) (THead 
+(Bind x0) x5 (THead (Flat Appl) (lift (S O) O x4) x3))) H16))))))) t0 H_y H9) 
+t2 H10))))))))))))) H7)) H6))))))) H2)))))) vs)))).
 
 theorem nf2_appl_lref:
  \forall (c: C).(\forall (u: T).((nf2 c u) \to (\forall (i: nat).((nf2 c 
 (TLRef i)) \to (nf2 c (THead (Flat Appl) u (TLRef i)))))))
 \def
  \lambda (c: C).(\lambda (u: T).(\lambda (H: (nf2 c u)).(\lambda (i: 
-nat).(\lambda (H0: (nf2 c (TLRef i))).(let TMP_1 \def (TCons u TNil) in (let 
-H_y \def (nf2_appls_lref c i H0 TMP_1) in (let TMP_2 \def (nf2 c u) in (let 
-TMP_3 \def (conj TMP_2 True H I) in (H_y TMP_3))))))))).
+nat).(\lambda (H0: (nf2 c (TLRef i))).(let H_y \def (nf2_appls_lref c i H0 
+(TCons u TNil)) in (H_y (conj (nf2 c u) True H I))))))).
 
 theorem nf2_lref_abst:
  \forall (c: C).(\forall (e: C).(\forall (u: T).(\forall (i: nat).((getl i c 
@@ -429,48 +269,27 @@ theorem nf2_lref_abst:
 \def
  \lambda (c: C).(\lambda (e: C).(\lambda (u: T).(\lambda (i: nat).(\lambda 
 (H: (getl i c (CHead e (Bind Abst) u))).(\lambda (t2: T).(\lambda (H0: (pr2 c 
-(TLRef i) t2)).(let H1 \def (pr2_gen_lref c t2 i H0) in (let TMP_1 \def 
-(TLRef i) in (let TMP_2 \def (eq T t2 TMP_1) in (let TMP_5 \def (\lambda (d: 
-C).(\lambda (u0: T).(let TMP_3 \def (Bind Abbr) in (let TMP_4 \def (CHead d 
-TMP_3 u0) in (getl i c TMP_4))))) in (let TMP_8 \def (\lambda (_: C).(\lambda 
-(u0: T).(let TMP_6 \def (S i) in (let TMP_7 \def (lift TMP_6 O u0) in (eq T 
-t2 TMP_7))))) in (let TMP_9 \def (ex2_2 C T TMP_5 TMP_8) in (let TMP_10 \def 
-(TLRef i) in (let TMP_11 \def (eq T TMP_10 t2) in (let TMP_17 \def (\lambda 
-(H2: (eq T t2 (TLRef i))).(let TMP_12 \def (TLRef i) in (let TMP_14 \def 
-(\lambda (t: T).(let TMP_13 \def (TLRef i) in (eq T TMP_13 t))) in (let 
-TMP_15 \def (TLRef i) in (let TMP_16 \def (refl_equal T TMP_15) in (eq_ind_r 
-T TMP_12 TMP_14 TMP_16 t2 H2)))))) in (let TMP_56 \def (\lambda (H2: (ex2_2 C 
-T (\lambda (d: C).(\lambda (u0: T).(getl i c (CHead d (Bind Abbr) u0)))) 
-(\lambda (_: C).(\lambda (u0: T).(eq T t2 (lift (S i) O u0)))))).(let TMP_20 
-\def (\lambda (d: C).(\lambda (u0: T).(let TMP_18 \def (Bind Abbr) in (let 
-TMP_19 \def (CHead d TMP_18 u0) in (getl i c TMP_19))))) in (let TMP_23 \def 
-(\lambda (_: C).(\lambda (u0: T).(let TMP_21 \def (S i) in (let TMP_22 \def 
-(lift TMP_21 O u0) in (eq T t2 TMP_22))))) in (let TMP_24 \def (TLRef i) in 
-(let TMP_25 \def (eq T TMP_24 t2) in (let TMP_55 \def (\lambda (x0: 
-C).(\lambda (x1: T).(\lambda (H3: (getl i c (CHead x0 (Bind Abbr) 
-x1))).(\lambda (H4: (eq T t2 (lift (S i) O x1))).(let TMP_26 \def (S i) in 
-(let TMP_27 \def (lift TMP_26 O x1) in (let TMP_29 \def (\lambda (t: T).(let 
-TMP_28 \def (TLRef i) in (eq T TMP_28 t))) in (let TMP_30 \def (Bind Abst) in 
-(let TMP_31 \def (CHead e TMP_30 u) in (let TMP_32 \def (\lambda (c0: 
-C).(getl i c c0)) in (let TMP_33 \def (Bind Abbr) in (let TMP_34 \def (CHead 
-x0 TMP_33 x1) in (let TMP_35 \def (Bind Abst) in (let TMP_36 \def (CHead e 
-TMP_35 u) in (let TMP_37 \def (Bind Abbr) in (let TMP_38 \def (CHead x0 
-TMP_37 x1) in (let TMP_39 \def (getl_mono c TMP_36 i H TMP_38 H3) in (let H5 
-\def (eq_ind C TMP_31 TMP_32 H TMP_34 TMP_39) in (let TMP_40 \def (Bind Abst) 
-in (let TMP_41 \def (CHead e TMP_40 u) in (let TMP_42 \def (\lambda (ee: 
-C).(match ee with [(CSort _) \Rightarrow False | (CHead _ k _) \Rightarrow 
-(match k with [(Bind b) \Rightarrow (match b with [Abbr \Rightarrow False | 
-Abst \Rightarrow True | Void \Rightarrow False]) | (Flat _) \Rightarrow 
-False])])) in (let TMP_43 \def (Bind Abbr) in (let TMP_44 \def (CHead x0 
-TMP_43 x1) in (let TMP_45 \def (Bind Abst) in (let TMP_46 \def (CHead e 
-TMP_45 u) in (let TMP_47 \def (Bind Abbr) in (let TMP_48 \def (CHead x0 
-TMP_47 x1) in (let TMP_49 \def (getl_mono c TMP_46 i H TMP_48 H3) in (let H6 
-\def (eq_ind C TMP_41 TMP_42 I TMP_44 TMP_49) in (let TMP_50 \def (TLRef i) 
-in (let TMP_51 \def (S i) in (let TMP_52 \def (lift TMP_51 O x1) in (let 
-TMP_53 \def (eq T TMP_50 TMP_52) in (let TMP_54 \def (False_ind TMP_53 H6) in 
-(eq_ind_r T TMP_27 TMP_29 TMP_54 t2 H4))))))))))))))))))))))))))))))))))) in 
-(ex2_2_ind C T TMP_20 TMP_23 TMP_25 TMP_55 H2))))))) in (or_ind TMP_2 TMP_9 
-TMP_11 TMP_17 TMP_56 H1))))))))))))))))).
+(TLRef i) t2)).(let H1 \def (pr2_gen_lref c t2 i H0) in (or_ind (eq T t2 
+(TLRef i)) (ex2_2 C T (\lambda (d: C).(\lambda (u0: T).(getl i c (CHead d 
+(Bind Abbr) u0)))) (\lambda (_: C).(\lambda (u0: T).(eq T t2 (lift (S i) O 
+u0))))) (eq T (TLRef i) t2) (\lambda (H2: (eq T t2 (TLRef i))).(eq_ind_r T 
+(TLRef i) (\lambda (t: T).(eq T (TLRef i) t)) (refl_equal T (TLRef i)) t2 
+H2)) (\lambda (H2: (ex2_2 C T (\lambda (d: C).(\lambda (u0: T).(getl i c 
+(CHead d (Bind Abbr) u0)))) (\lambda (_: C).(\lambda (u0: T).(eq T t2 (lift 
+(S i) O u0)))))).(ex2_2_ind C T (\lambda (d: C).(\lambda (u0: T).(getl i c 
+(CHead d (Bind Abbr) u0)))) (\lambda (_: C).(\lambda (u0: T).(eq T t2 (lift 
+(S i) O u0)))) (eq T (TLRef i) t2) (\lambda (x0: C).(\lambda (x1: T).(\lambda 
+(H3: (getl i c (CHead x0 (Bind Abbr) x1))).(\lambda (H4: (eq T t2 (lift (S i) 
+O x1))).(eq_ind_r T (lift (S i) O x1) (\lambda (t: T).(eq T (TLRef i) t)) 
+(let H5 \def (eq_ind C (CHead e (Bind Abst) u) (\lambda (c0: C).(getl i c 
+c0)) H (CHead x0 (Bind Abbr) x1) (getl_mono c (CHead e (Bind Abst) u) i H 
+(CHead x0 (Bind Abbr) x1) H3)) in (let H6 \def (eq_ind C (CHead e (Bind Abst) 
+u) (\lambda (ee: C).(match ee with [(CSort _) \Rightarrow False | (CHead _ k 
+_) \Rightarrow (match k with [(Bind b) \Rightarrow (match b with [Abbr 
+\Rightarrow False | Abst \Rightarrow True | Void \Rightarrow False]) | (Flat 
+_) \Rightarrow False])])) I (CHead x0 (Bind Abbr) x1) (getl_mono c (CHead e 
+(Bind Abst) u) i H (CHead x0 (Bind Abbr) x1) H3)) in (False_ind (eq T (TLRef 
+i) (lift (S i) O x1)) H6))) t2 H4))))) H2)) H1)))))))).
 
 theorem nf2_lift:
  \forall (d: C).(\forall (t: T).((nf2 d t) \to (\forall (c: C).(\forall (h: 
@@ -479,17 +298,12 @@ nat).(\forall (i: nat).((drop h i c d) \to (nf2 c (lift h i t))))))))
  \lambda (d: C).(\lambda (t: T).(\lambda (H: ((\forall (t2: T).((pr2 d t t2) 
 \to (eq T t t2))))).(\lambda (c: C).(\lambda (h: nat).(\lambda (i: 
 nat).(\lambda (H0: (drop h i c d)).(\lambda (t2: T).(\lambda (H1: (pr2 c 
-(lift h i t) t2)).(let H2 \def (pr2_gen_lift c t t2 h i H1 d H0) in (let 
-TMP_2 \def (\lambda (t3: T).(let TMP_1 \def (lift h i t3) in (eq T t2 
-TMP_1))) in (let TMP_3 \def (\lambda (t3: T).(pr2 d t t3)) in (let TMP_4 \def 
-(lift h i t) in (let TMP_5 \def (eq T TMP_4 t2) in (let TMP_16 \def (\lambda 
-(x: T).(\lambda (H3: (eq T t2 (lift h i x))).(\lambda (H4: (pr2 d t x)).(let 
-TMP_6 \def (lift h i x) in (let TMP_8 \def (\lambda (t0: T).(let TMP_7 \def 
-(lift h i t) in (eq T TMP_7 t0))) in (let H_y \def (H x H4) in (let TMP_9 
-\def (\lambda (t0: T).(pr2 d t t0)) in (let H5 \def (eq_ind_r T x TMP_9 H4 t 
-H_y) in (let TMP_12 \def (\lambda (t0: T).(let TMP_10 \def (lift h i t) in 
-(let TMP_11 \def (lift h i t0) in (eq T TMP_10 TMP_11)))) in (let TMP_13 \def 
-(lift h i t) in (let TMP_14 \def (refl_equal T TMP_13) in (let TMP_15 \def 
-(eq_ind T t TMP_12 TMP_14 x H_y) in (eq_ind_r T TMP_6 TMP_8 TMP_15 t2 
-H3))))))))))))) in (ex2_ind T TMP_2 TMP_3 TMP_5 TMP_16 H2))))))))))))))).
+(lift h i t) t2)).(let H2 \def (pr2_gen_lift c t t2 h i H1 d H0) in (ex2_ind 
+T (\lambda (t3: T).(eq T t2 (lift h i t3))) (\lambda (t3: T).(pr2 d t t3)) 
+(eq T (lift h i t) t2) (\lambda (x: T).(\lambda (H3: (eq T t2 (lift h i 
+x))).(\lambda (H4: (pr2 d t x)).(eq_ind_r T (lift h i x) (\lambda (t0: T).(eq 
+T (lift h i t) t0)) (let H_y \def (H x H4) in (let H5 \def (eq_ind_r T x 
+(\lambda (t0: T).(pr2 d t t0)) H4 t H_y) in (eq_ind T t (\lambda (t0: T).(eq 
+T (lift h i t) (lift h i t0))) (refl_equal T (lift h i t)) x H_y))) t2 H3)))) 
+H2)))))))))).
 
index 659d11b419589359828602e4bb6830789fd30df1..7fb3cd29a12b00536c575f4e451f63e94d6d5e3f 100644 (file)
@@ -19,6 +19,6 @@ include "basic_1/pr1/defs.ma".
 definition pc1:
  T \to (T \to Prop)
 \def
- \lambda (t1: T).(\lambda (t2: T).(let TMP_1 \def (\lambda (t: T).(pr1 t1 t)) 
-in (let TMP_2 \def (\lambda (t: T).(pr1 t2 t)) in (ex2 T TMP_1 TMP_2)))).
+ \lambda (t1: T).(\lambda (t2: T).(ex2 T (\lambda (t: T).(pr1 t1 t)) (\lambda 
+(t: T).(pr1 t2 t)))).
 
index c6f910089b2af1c4aa1f10106fd1f2773a0857b5..faaa213cd8828090bb2d07276afc6911c27ba71c 100644 (file)
@@ -21,110 +21,88 @@ include "basic_1/pr1/pr1.ma".
 theorem pc1_pr0_r:
  \forall (t1: T).(\forall (t2: T).((pr0 t1 t2) \to (pc1 t1 t2)))
 \def
- \lambda (t1: T).(\lambda (t2: T).(\lambda (H: (pr0 t1 t2)).(let TMP_1 \def 
-(\lambda (t: T).(pr1 t1 t)) in (let TMP_2 \def (\lambda (t: T).(pr1 t2 t)) in 
-(let TMP_3 \def (pr1_pr0 t1 t2 H) in (let TMP_4 \def (pr1_refl t2) in 
-(ex_intro2 T TMP_1 TMP_2 t2 TMP_3 TMP_4))))))).
+ \lambda (t1: T).(\lambda (t2: T).(\lambda (H: (pr0 t1 t2)).(ex_intro2 T 
+(\lambda (t: T).(pr1 t1 t)) (\lambda (t: T).(pr1 t2 t)) t2 (pr1_pr0 t1 t2 H) 
+(pr1_refl t2)))).
 
 theorem pc1_pr0_x:
  \forall (t1: T).(\forall (t2: T).((pr0 t2 t1) \to (pc1 t1 t2)))
 \def
- \lambda (t1: T).(\lambda (t2: T).(\lambda (H: (pr0 t2 t1)).(let TMP_1 \def 
-(\lambda (t: T).(pr1 t1 t)) in (let TMP_2 \def (\lambda (t: T).(pr1 t2 t)) in 
-(let TMP_3 \def (pr1_refl t1) in (let TMP_4 \def (pr1_pr0 t2 t1 H) in 
-(ex_intro2 T TMP_1 TMP_2 t1 TMP_3 TMP_4))))))).
+ \lambda (t1: T).(\lambda (t2: T).(\lambda (H: (pr0 t2 t1)).(ex_intro2 T 
+(\lambda (t: T).(pr1 t1 t)) (\lambda (t: T).(pr1 t2 t)) t1 (pr1_refl t1) 
+(pr1_pr0 t2 t1 H)))).
 
 theorem pc1_refl:
  \forall (t: T).(pc1 t t)
 \def
- \lambda (t: T).(let TMP_1 \def (\lambda (t0: T).(pr1 t t0)) in (let TMP_2 
-\def (\lambda (t0: T).(pr1 t t0)) in (let TMP_3 \def (pr1_refl t) in (let 
-TMP_4 \def (pr1_refl t) in (ex_intro2 T TMP_1 TMP_2 t TMP_3 TMP_4))))).
+ \lambda (t: T).(ex_intro2 T (\lambda (t0: T).(pr1 t t0)) (\lambda (t0: 
+T).(pr1 t t0)) t (pr1_refl t) (pr1_refl t)).
 
 theorem pc1_pr0_u:
  \forall (t2: T).(\forall (t1: T).((pr0 t1 t2) \to (\forall (t3: T).((pc1 t2 
 t3) \to (pc1 t1 t3)))))
 \def
  \lambda (t2: T).(\lambda (t1: T).(\lambda (H: (pr0 t1 t2)).(\lambda (t3: 
-T).(\lambda (H0: (pc1 t2 t3)).(let H1 \def H0 in (let TMP_1 \def (\lambda (t: 
-T).(pr1 t2 t)) in (let TMP_2 \def (\lambda (t: T).(pr1 t3 t)) in (let TMP_3 
-\def (pc1 t1 t3) in (let TMP_7 \def (\lambda (x: T).(\lambda (H2: (pr1 t2 
-x)).(\lambda (H3: (pr1 t3 x)).(let TMP_4 \def (\lambda (t: T).(pr1 t1 t)) in 
-(let TMP_5 \def (\lambda (t: T).(pr1 t3 t)) in (let TMP_6 \def (pr1_sing t2 
-t1 H x H2) in (ex_intro2 T TMP_4 TMP_5 x TMP_6 H3))))))) in (ex2_ind T TMP_1 
-TMP_2 TMP_3 TMP_7 H1)))))))))).
+T).(\lambda (H0: (pc1 t2 t3)).(let H1 \def H0 in (ex2_ind T (\lambda (t: 
+T).(pr1 t2 t)) (\lambda (t: T).(pr1 t3 t)) (pc1 t1 t3) (\lambda (x: 
+T).(\lambda (H2: (pr1 t2 x)).(\lambda (H3: (pr1 t3 x)).(ex_intro2 T (\lambda 
+(t: T).(pr1 t1 t)) (\lambda (t: T).(pr1 t3 t)) x (pr1_sing t2 t1 H x H2) 
+H3)))) H1)))))).
 
 theorem pc1_s:
  \forall (t2: T).(\forall (t1: T).((pc1 t1 t2) \to (pc1 t2 t1)))
 \def
  \lambda (t2: T).(\lambda (t1: T).(\lambda (H: (pc1 t1 t2)).(let H0 \def H in 
-(let TMP_1 \def (\lambda (t: T).(pr1 t1 t)) in (let TMP_2 \def (\lambda (t: 
-T).(pr1 t2 t)) in (let TMP_3 \def (pc1 t2 t1) in (let TMP_6 \def (\lambda (x: 
-T).(\lambda (H1: (pr1 t1 x)).(\lambda (H2: (pr1 t2 x)).(let TMP_4 \def 
-(\lambda (t: T).(pr1 t2 t)) in (let TMP_5 \def (\lambda (t: T).(pr1 t1 t)) in 
-(ex_intro2 T TMP_4 TMP_5 x H2 H1)))))) in (ex2_ind T TMP_1 TMP_2 TMP_3 TMP_6 
-H0)))))))).
+(ex2_ind T (\lambda (t: T).(pr1 t1 t)) (\lambda (t: T).(pr1 t2 t)) (pc1 t2 
+t1) (\lambda (x: T).(\lambda (H1: (pr1 t1 x)).(\lambda (H2: (pr1 t2 
+x)).(ex_intro2 T (\lambda (t: T).(pr1 t2 t)) (\lambda (t: T).(pr1 t1 t)) x H2 
+H1)))) H0)))).
 
 theorem pc1_head_1:
  \forall (u1: T).(\forall (u2: T).((pc1 u1 u2) \to (\forall (t: T).(\forall 
 (k: K).(pc1 (THead k u1 t) (THead k u2 t))))))
 \def
  \lambda (u1: T).(\lambda (u2: T).(\lambda (H: (pc1 u1 u2)).(\lambda (t: 
-T).(\lambda (k: K).(let H0 \def H in (let TMP_1 \def (\lambda (t0: T).(pr1 u1 
-t0)) in (let TMP_2 \def (\lambda (t0: T).(pr1 u2 t0)) in (let TMP_3 \def 
-(THead k u1 t) in (let TMP_4 \def (THead k u2 t) in (let TMP_5 \def (pc1 
-TMP_3 TMP_4) in (let TMP_13 \def (\lambda (x: T).(\lambda (H1: (pr1 u1 
-x)).(\lambda (H2: (pr1 u2 x)).(let TMP_7 \def (\lambda (t0: T).(let TMP_6 
-\def (THead k u1 t) in (pr1 TMP_6 t0))) in (let TMP_9 \def (\lambda (t0: 
-T).(let TMP_8 \def (THead k u2 t) in (pr1 TMP_8 t0))) in (let TMP_10 \def 
-(THead k x t) in (let TMP_11 \def (pr1_head_1 u1 x H1 t k) in (let TMP_12 
-\def (pr1_head_1 u2 x H2 t k) in (ex_intro2 T TMP_7 TMP_9 TMP_10 TMP_11 
-TMP_12))))))))) in (ex2_ind T TMP_1 TMP_2 TMP_5 TMP_13 H0)))))))))))).
+T).(\lambda (k: K).(let H0 \def H in (ex2_ind T (\lambda (t0: T).(pr1 u1 t0)) 
+(\lambda (t0: T).(pr1 u2 t0)) (pc1 (THead k u1 t) (THead k u2 t)) (\lambda 
+(x: T).(\lambda (H1: (pr1 u1 x)).(\lambda (H2: (pr1 u2 x)).(ex_intro2 T 
+(\lambda (t0: T).(pr1 (THead k u1 t) t0)) (\lambda (t0: T).(pr1 (THead k u2 
+t) t0)) (THead k x t) (pr1_head_1 u1 x H1 t k) (pr1_head_1 u2 x H2 t k))))) 
+H0)))))).
 
 theorem pc1_head_2:
  \forall (t1: T).(\forall (t2: T).((pc1 t1 t2) \to (\forall (u: T).(\forall 
 (k: K).(pc1 (THead k u t1) (THead k u t2))))))
 \def
  \lambda (t1: T).(\lambda (t2: T).(\lambda (H: (pc1 t1 t2)).(\lambda (u: 
-T).(\lambda (k: K).(let H0 \def H in (let TMP_1 \def (\lambda (t: T).(pr1 t1 
-t)) in (let TMP_2 \def (\lambda (t: T).(pr1 t2 t)) in (let TMP_3 \def (THead 
-k u t1) in (let TMP_4 \def (THead k u t2) in (let TMP_5 \def (pc1 TMP_3 
-TMP_4) in (let TMP_13 \def (\lambda (x: T).(\lambda (H1: (pr1 t1 x)).(\lambda 
-(H2: (pr1 t2 x)).(let TMP_7 \def (\lambda (t: T).(let TMP_6 \def (THead k u 
-t1) in (pr1 TMP_6 t))) in (let TMP_9 \def (\lambda (t: T).(let TMP_8 \def 
-(THead k u t2) in (pr1 TMP_8 t))) in (let TMP_10 \def (THead k u x) in (let 
-TMP_11 \def (pr1_head_2 t1 x H1 u k) in (let TMP_12 \def (pr1_head_2 t2 x H2 
-u k) in (ex_intro2 T TMP_7 TMP_9 TMP_10 TMP_11 TMP_12))))))))) in (ex2_ind T 
-TMP_1 TMP_2 TMP_5 TMP_13 H0)))))))))))).
+T).(\lambda (k: K).(let H0 \def H in (ex2_ind T (\lambda (t: T).(pr1 t1 t)) 
+(\lambda (t: T).(pr1 t2 t)) (pc1 (THead k u t1) (THead k u t2)) (\lambda (x: 
+T).(\lambda (H1: (pr1 t1 x)).(\lambda (H2: (pr1 t2 x)).(ex_intro2 T (\lambda 
+(t: T).(pr1 (THead k u t1) t)) (\lambda (t: T).(pr1 (THead k u t2) t)) (THead 
+k u x) (pr1_head_2 t1 x H1 u k) (pr1_head_2 t2 x H2 u k))))) H0)))))).
 
 theorem pc1_t:
  \forall (t2: T).(\forall (t1: T).((pc1 t1 t2) \to (\forall (t3: T).((pc1 t2 
 t3) \to (pc1 t1 t3)))))
 \def
  \lambda (t2: T).(\lambda (t1: T).(\lambda (H: (pc1 t1 t2)).(\lambda (t3: 
-T).(\lambda (H0: (pc1 t2 t3)).(let H1 \def H0 in (let TMP_1 \def (\lambda (t: 
-T).(pr1 t2 t)) in (let TMP_2 \def (\lambda (t: T).(pr1 t3 t)) in (let TMP_3 
-\def (pc1 t1 t3) in (let TMP_17 \def (\lambda (x: T).(\lambda (H2: (pr1 t2 
-x)).(\lambda (H3: (pr1 t3 x)).(let H4 \def H in (let TMP_4 \def (\lambda (t: 
-T).(pr1 t1 t)) in (let TMP_5 \def (\lambda (t: T).(pr1 t2 t)) in (let TMP_6 
-\def (pc1 t1 t3) in (let TMP_16 \def (\lambda (x0: T).(\lambda (H5: (pr1 t1 
-x0)).(\lambda (H6: (pr1 t2 x0)).(let TMP_7 \def (\lambda (t: T).(pr1 x0 t)) 
-in (let TMP_8 \def (\lambda (t: T).(pr1 x t)) in (let TMP_9 \def (pc1 t1 t3) 
-in (let TMP_14 \def (\lambda (x1: T).(\lambda (H7: (pr1 x0 x1)).(\lambda (H8: 
-(pr1 x x1)).(let TMP_10 \def (\lambda (t: T).(pr1 t1 t)) in (let TMP_11 \def 
-(\lambda (t: T).(pr1 t3 t)) in (let TMP_12 \def (pr1_t x0 t1 H5 x1 H7) in 
-(let TMP_13 \def (pr1_t x t3 H3 x1 H8) in (ex_intro2 T TMP_10 TMP_11 x1 
-TMP_12 TMP_13)))))))) in (let TMP_15 \def (pr1_confluence t2 x0 H6 x H2) in 
-(ex2_ind T TMP_7 TMP_8 TMP_9 TMP_14 TMP_15))))))))) in (ex2_ind T TMP_4 TMP_5 
-TMP_6 TMP_16 H4))))))))) in (ex2_ind T TMP_1 TMP_2 TMP_3 TMP_17 H1)))))))))).
+T).(\lambda (H0: (pc1 t2 t3)).(let H1 \def H0 in (ex2_ind T (\lambda (t: 
+T).(pr1 t2 t)) (\lambda (t: T).(pr1 t3 t)) (pc1 t1 t3) (\lambda (x: 
+T).(\lambda (H2: (pr1 t2 x)).(\lambda (H3: (pr1 t3 x)).(let H4 \def H in 
+(ex2_ind T (\lambda (t: T).(pr1 t1 t)) (\lambda (t: T).(pr1 t2 t)) (pc1 t1 
+t3) (\lambda (x0: T).(\lambda (H5: (pr1 t1 x0)).(\lambda (H6: (pr1 t2 
+x0)).(ex2_ind T (\lambda (t: T).(pr1 x0 t)) (\lambda (t: T).(pr1 x t)) (pc1 
+t1 t3) (\lambda (x1: T).(\lambda (H7: (pr1 x0 x1)).(\lambda (H8: (pr1 x 
+x1)).(ex_intro2 T (\lambda (t: T).(pr1 t1 t)) (\lambda (t: T).(pr1 t3 t)) x1 
+(pr1_t x0 t1 H5 x1 H7) (pr1_t x t3 H3 x1 H8))))) (pr1_confluence t2 x0 H6 x 
+H2))))) H4))))) H1)))))).
 
 theorem pc1_pr0_u2:
  \forall (t0: T).(\forall (t1: T).((pr0 t0 t1) \to (\forall (t2: T).((pc1 t0 
 t2) \to (pc1 t1 t2)))))
 \def
  \lambda (t0: T).(\lambda (t1: T).(\lambda (H: (pr0 t0 t1)).(\lambda (t2: 
-T).(\lambda (H0: (pc1 t0 t2)).(let TMP_1 \def (pc1_pr0_x t1 t0 H) in (pc1_t 
-t0 t1 TMP_1 t2 H0)))))).
+T).(\lambda (H0: (pc1 t0 t2)).(pc1_t t0 t1 (pc1_pr0_x t1 t0 H) t2 H0))))).
 
 theorem pc1_head:
  \forall (u1: T).(\forall (u2: T).((pc1 u1 u2) \to (\forall (t1: T).(\forall 
@@ -132,9 +110,7 @@ theorem pc1_head:
 t2))))))))
 \def
  \lambda (u1: T).(\lambda (u2: T).(\lambda (H: (pc1 u1 u2)).(\lambda (t1: 
-T).(\lambda (t2: T).(\lambda (H0: (pc1 t1 t2)).(\lambda (k: K).(let TMP_1 
-\def (THead k u2 t1) in (let TMP_2 \def (THead k u1 t1) in (let TMP_3 \def 
-(pc1_head_1 u1 u2 H t1 k) in (let TMP_4 \def (THead k u2 t2) in (let TMP_5 
-\def (pc1_head_2 t1 t2 H0 u2 k) in (pc1_t TMP_1 TMP_2 TMP_3 TMP_4 
-TMP_5)))))))))))).
+T).(\lambda (t2: T).(\lambda (H0: (pc1 t1 t2)).(\lambda (k: K).(pc1_t (THead 
+k u2 t1) (THead k u1 t1) (pc1_head_1 u1 u2 H t1 k) (THead k u2 t2) 
+(pc1_head_2 t1 t2 H0 u2 k)))))))).
 
index db0fcb95fe54afb931292c61e9a55e8e60be1884..c8cca31319c94a239d2cac541c2928799504cd25 100644 (file)
@@ -26,42 +26,29 @@ u1 u2) ((pc3 c u1 u2) \to False)))))))))
  \lambda (g: G).(\lambda (c: C).(\lambda (u1: T).(\lambda (t1: T).(\lambda 
 (H: (ty3 g c u1 t1)).(\lambda (u2: T).(\lambda (t2: T).(\lambda (H0: (ty3 g c 
 u2 t2)).(let H_y \def (ty3_sn3 g c u1 t1 H) in (let H_y0 \def (ty3_sn3 g c u2 
-t2 H0) in (let H_x \def (nf2_sn3 c u1 H_y) in (let H1 \def H_x in (let TMP_1 
-\def (\lambda (u: T).(pr3 c u1 u)) in (let TMP_2 \def (\lambda (u: T).(nf2 c 
-u)) in (let TMP_3 \def (pc3 c u1 u2) in (let TMP_4 \def ((pc3 c u1 u2) \to 
-False) in (let TMP_5 \def (or TMP_3 TMP_4) in (let TMP_36 \def (\lambda (x: 
-T).(\lambda (H2: (pr3 c u1 x)).(\lambda (H3: (nf2 c x)).(let H_x0 \def 
-(nf2_sn3 c u2 H_y0) in (let H4 \def H_x0 in (let TMP_6 \def (\lambda (u: 
-T).(pr3 c u2 u)) in (let TMP_7 \def (\lambda (u: T).(nf2 c u)) in (let TMP_8 
-\def (pc3 c u1 u2) in (let TMP_9 \def ((pc3 c u1 u2) \to False) in (let 
-TMP_10 \def (or TMP_8 TMP_9) in (let TMP_35 \def (\lambda (x0: T).(\lambda 
+t2 H0) in (let H_x \def (nf2_sn3 c u1 H_y) in (let H1 \def H_x in (ex2_ind T 
+(\lambda (u: T).(pr3 c u1 u)) (\lambda (u: T).(nf2 c u)) (or (pc3 c u1 u2) 
+((pc3 c u1 u2) \to False)) (\lambda (x: T).(\lambda (H2: (pr3 c u1 
+x)).(\lambda (H3: (nf2 c x)).(let H_x0 \def (nf2_sn3 c u2 H_y0) in (let H4 
+\def H_x0 in (ex2_ind T (\lambda (u: T).(pr3 c u2 u)) (\lambda (u: T).(nf2 c 
+u)) (or (pc3 c u1 u2) ((pc3 c u1 u2) \to False)) (\lambda (x0: T).(\lambda 
 (H5: (pr3 c u2 x0)).(\lambda (H6: (nf2 c x0)).(let H_x1 \def (term_dec x x0) 
-in (let H7 \def H_x1 in (let TMP_11 \def (eq T x x0) in (let TMP_12 \def ((eq 
-T x x0) \to (\forall (P: Prop).P)) in (let TMP_13 \def (pc3 c u1 u2) in (let 
-TMP_14 \def ((pc3 c u1 u2) \to False) in (let TMP_15 \def (or TMP_13 TMP_14) 
-in (let TMP_21 \def (\lambda (H8: (eq T x x0)).(let TMP_16 \def (\lambda (t: 
-T).(nf2 c t)) in (let H9 \def (eq_ind_r T x0 TMP_16 H6 x H8) in (let TMP_17 
-\def (\lambda (t: T).(pr3 c u2 t)) in (let H10 \def (eq_ind_r T x0 TMP_17 H5 
-x H8) in (let TMP_18 \def (pc3 c u1 u2) in (let TMP_19 \def ((pc3 c u1 u2) 
-\to False) in (let TMP_20 \def (pc3_pr3_t c u1 x H2 u2 H10) in (or_introl 
-TMP_18 TMP_19 TMP_20))))))))) in (let TMP_34 \def (\lambda (H8: (((eq T x x0) 
-\to (\forall (P: Prop).P)))).(let TMP_22 \def (pc3 c u1 u2) in (let TMP_23 
-\def ((pc3 c u1 u2) \to False) in (let TMP_33 \def (\lambda (H9: (pc3 c u1 
-u2)).(let H10 \def H9 in (let TMP_24 \def (\lambda (t: T).(pr3 c u1 t)) in 
-(let TMP_25 \def (\lambda (t: T).(pr3 c u2 t)) in (let TMP_32 \def (\lambda 
-(x1: T).(\lambda (H11: (pr3 c u1 x1)).(\lambda (H12: (pr3 c u2 x1)).(let H_x2 
-\def (pr3_confluence c u2 x0 H5 x1 H12) in (let H13 \def H_x2 in (let TMP_26 
-\def (\lambda (t: T).(pr3 c x0 t)) in (let TMP_27 \def (\lambda (t: T).(pr3 c 
-x1 t)) in (let TMP_31 \def (\lambda (x2: T).(\lambda (H14: (pr3 c x0 
-x2)).(\lambda (H15: (pr3 c x1 x2)).(let H_y1 \def (nf2_pr3_unfold c x0 x2 H14 
-H6) in (let TMP_28 \def (\lambda (t: T).(pr3 c x1 t)) in (let H16 \def 
-(eq_ind_r T x2 TMP_28 H15 x0 H_y1) in (let H17 \def (nf2_pr3_confluence c x 
-H3 x0 H6 u1 H2) in (let TMP_29 \def (pr3_t x1 u1 c H11 x0 H16) in (let TMP_30 
-\def (H17 TMP_29) in (H8 TMP_30 False)))))))))) in (ex2_ind T TMP_26 TMP_27 
-False TMP_31 H13))))))))) in (ex2_ind T TMP_24 TMP_25 False TMP_32 H10)))))) 
-in (or_intror TMP_22 TMP_23 TMP_33))))) in (or_ind TMP_11 TMP_12 TMP_15 
-TMP_21 TMP_34 H7))))))))))))) in (ex2_ind T TMP_6 TMP_7 TMP_10 TMP_35 
-H4)))))))))))) in (ex2_ind T TMP_1 TMP_2 TMP_5 TMP_36 H1)))))))))))))))))).
+in (let H7 \def H_x1 in (or_ind (eq T x x0) ((eq T x x0) \to (\forall (P: 
+Prop).P)) (or (pc3 c u1 u2) ((pc3 c u1 u2) \to False)) (\lambda (H8: (eq T x 
+x0)).(let H9 \def (eq_ind_r T x0 (\lambda (t: T).(nf2 c t)) H6 x H8) in (let 
+H10 \def (eq_ind_r T x0 (\lambda (t: T).(pr3 c u2 t)) H5 x H8) in (or_introl 
+(pc3 c u1 u2) ((pc3 c u1 u2) \to False) (pc3_pr3_t c u1 x H2 u2 H10))))) 
+(\lambda (H8: (((eq T x x0) \to (\forall (P: Prop).P)))).(or_intror (pc3 c u1 
+u2) ((pc3 c u1 u2) \to False) (\lambda (H9: (pc3 c u1 u2)).(let H10 \def H9 
+in (ex2_ind T (\lambda (t: T).(pr3 c u1 t)) (\lambda (t: T).(pr3 c u2 t)) 
+False (\lambda (x1: T).(\lambda (H11: (pr3 c u1 x1)).(\lambda (H12: (pr3 c u2 
+x1)).(let H_x2 \def (pr3_confluence c u2 x0 H5 x1 H12) in (let H13 \def H_x2 
+in (ex2_ind T (\lambda (t: T).(pr3 c x0 t)) (\lambda (t: T).(pr3 c x1 t)) 
+False (\lambda (x2: T).(\lambda (H14: (pr3 c x0 x2)).(\lambda (H15: (pr3 c x1 
+x2)).(let H_y1 \def (nf2_pr3_unfold c x0 x2 H14 H6) in (let H16 \def 
+(eq_ind_r T x2 (\lambda (t: T).(pr3 c x1 t)) H15 x0 H_y1) in (let H17 \def 
+(nf2_pr3_confluence c x H3 x0 H6 u1 H2) in (H8 (H17 (pr3_t x1 u1 c H11 x0 
+H16)) False))))))) H13)))))) H10))))) H7)))))) H4)))))) H1)))))))))))).
 
 theorem pc3_abst_dec:
  \forall (g: G).(\forall (c: C).(\forall (u1: T).(\forall (t1: T).((ty3 g c 
@@ -75,147 +62,85 @@ T T (\lambda (u: T).(\lambda (_: T).(pc3 c u1 (THead (Bind Abst) u2 u))))
  \lambda (g: G).(\lambda (c: C).(\lambda (u1: T).(\lambda (t1: T).(\lambda 
 (H: (ty3 g c u1 t1)).(\lambda (u2: T).(\lambda (t2: T).(\lambda (H0: (ty3 g c 
 u2 t2)).(let H1 \def (ty3_sn3 g c u1 t1 H) in (let H2 \def (ty3_sn3 g c u2 t2 
-H0) in (let H_x \def (nf2_sn3 c u1 H1) in (let H3 \def H_x in (let TMP_1 \def 
-(\lambda (u: T).(pr3 c u1 u)) in (let TMP_2 \def (\lambda (u: T).(nf2 c u)) 
-in (let TMP_5 \def (\lambda (u: T).(\lambda (_: T).(let TMP_3 \def (Bind 
-Abst) in (let TMP_4 \def (THead TMP_3 u2 u) in (pc3 c u1 TMP_4))))) in (let 
-TMP_8 \def (\lambda (u: T).(\lambda (v2: T).(let TMP_6 \def (Bind Abst) in 
-(let TMP_7 \def (THead TMP_6 v2 u) in (ty3 g c TMP_7 t1))))) in (let TMP_9 
-\def (\lambda (_: T).(\lambda (v2: T).(pr3 c u2 v2))) in (let TMP_10 \def 
-(\lambda (_: T).(\lambda (v2: T).(nf2 c v2))) in (let TMP_11 \def (ex4_2 T T 
-TMP_5 TMP_8 TMP_9 TMP_10) in (let TMP_12 \def (\forall (u: T).((pc3 c u1 
-(THead (Bind Abst) u2 u)) \to False)) in (let TMP_13 \def (or TMP_11 TMP_12) 
-in (let TMP_162 \def (\lambda (x: T).(\lambda (H4: (pr3 c u1 x)).(\lambda 
-(H5: (nf2 c x)).(let H_x0 \def (nf2_sn3 c u2 H2) in (let H6 \def H_x0 in (let 
-TMP_14 \def (\lambda (u: T).(pr3 c u2 u)) in (let TMP_15 \def (\lambda (u: 
-T).(nf2 c u)) in (let TMP_18 \def (\lambda (u: T).(\lambda (_: T).(let TMP_16 
-\def (Bind Abst) in (let TMP_17 \def (THead TMP_16 u2 u) in (pc3 c u1 
-TMP_17))))) in (let TMP_21 \def (\lambda (u: T).(\lambda (v2: T).(let TMP_19 
-\def (Bind Abst) in (let TMP_20 \def (THead TMP_19 v2 u) in (ty3 g c TMP_20 
-t1))))) in (let TMP_22 \def (\lambda (_: T).(\lambda (v2: T).(pr3 c u2 v2))) 
-in (let TMP_23 \def (\lambda (_: T).(\lambda (v2: T).(nf2 c v2))) in (let 
-TMP_24 \def (ex4_2 T T TMP_18 TMP_21 TMP_22 TMP_23) in (let TMP_25 \def 
-(\forall (u: T).((pc3 c u1 (THead (Bind Abst) u2 u)) \to False)) in (let 
-TMP_26 \def (or TMP_24 TMP_25) in (let TMP_161 \def (\lambda (x0: T).(\lambda 
-(H7: (pr3 c u2 x0)).(\lambda (H8: (nf2 c x0)).(let H_x1 \def (abst_dec x x0) 
-in (let H9 \def H_x1 in (let TMP_29 \def (\lambda (t: T).(let TMP_27 \def 
-(Bind Abst) in (let TMP_28 \def (THead TMP_27 x0 t) in (eq T x TMP_28)))) in 
-(let TMP_30 \def (ex T TMP_29) in (let TMP_31 \def (\forall (t: T).((eq T x 
-(THead (Bind Abst) x0 t)) \to (\forall (P: Prop).P))) in (let TMP_34 \def 
-(\lambda (u: T).(\lambda (_: T).(let TMP_32 \def (Bind Abst) in (let TMP_33 
-\def (THead TMP_32 u2 u) in (pc3 c u1 TMP_33))))) in (let TMP_37 \def 
-(\lambda (u: T).(\lambda (v2: T).(let TMP_35 \def (Bind Abst) in (let TMP_36 
-\def (THead TMP_35 v2 u) in (ty3 g c TMP_36 t1))))) in (let TMP_38 \def 
-(\lambda (_: T).(\lambda (v2: T).(pr3 c u2 v2))) in (let TMP_39 \def (\lambda 
-(_: T).(\lambda (v2: T).(nf2 c v2))) in (let TMP_40 \def (ex4_2 T T TMP_34 
-TMP_37 TMP_38 TMP_39) in (let TMP_41 \def (\forall (u: T).((pc3 c u1 (THead 
-(Bind Abst) u2 u)) \to False)) in (let TMP_42 \def (or TMP_40 TMP_41) in (let 
-TMP_95 \def (\lambda (H10: (ex T (\lambda (t: T).(eq T x (THead (Bind Abst) 
-x0 t))))).(let TMP_45 \def (\lambda (t: T).(let TMP_43 \def (Bind Abst) in 
-(let TMP_44 \def (THead TMP_43 x0 t) in (eq T x TMP_44)))) in (let TMP_48 
-\def (\lambda (u: T).(\lambda (_: T).(let TMP_46 \def (Bind Abst) in (let 
-TMP_47 \def (THead TMP_46 u2 u) in (pc3 c u1 TMP_47))))) in (let TMP_51 \def 
-(\lambda (u: T).(\lambda (v2: T).(let TMP_49 \def (Bind Abst) in (let TMP_50 
-\def (THead TMP_49 v2 u) in (ty3 g c TMP_50 t1))))) in (let TMP_52 \def 
-(\lambda (_: T).(\lambda (v2: T).(pr3 c u2 v2))) in (let TMP_53 \def (\lambda 
-(_: T).(\lambda (v2: T).(nf2 c v2))) in (let TMP_54 \def (ex4_2 T T TMP_48 
-TMP_51 TMP_52 TMP_53) in (let TMP_55 \def (\forall (u: T).((pc3 c u1 (THead 
-(Bind Abst) u2 u)) \to False)) in (let TMP_56 \def (or TMP_54 TMP_55) in (let 
-TMP_94 \def (\lambda (x1: T).(\lambda (H11: (eq T x (THead (Bind Abst) x0 
-x1))).(let TMP_57 \def (\lambda (t: T).(nf2 c t)) in (let TMP_58 \def (Bind 
-Abst) in (let TMP_59 \def (THead TMP_58 x0 x1) in (let H12 \def (eq_ind T x 
-TMP_57 H5 TMP_59 H11) in (let TMP_60 \def (\lambda (t: T).(pr3 c u1 t)) in 
-(let TMP_61 \def (Bind Abst) in (let TMP_62 \def (THead TMP_61 x0 x1) in (let 
-H13 \def (eq_ind T x TMP_60 H4 TMP_62 H11) in (let TMP_63 \def (Bind Abst) in 
-(let TMP_64 \def (THead TMP_63 x0 x1) in (let H_y \def (ty3_sred_pr3 c u1 
-TMP_64 H13 g t1 H) in (let TMP_67 \def (\lambda (u: T).(\lambda (_: T).(let 
-TMP_65 \def (Bind Abst) in (let TMP_66 \def (THead TMP_65 u2 u) in (pc3 c u1 
-TMP_66))))) in (let TMP_70 \def (\lambda (u: T).(\lambda (v2: T).(let TMP_68 
-\def (Bind Abst) in (let TMP_69 \def (THead TMP_68 v2 u) in (ty3 g c TMP_69 
-t1))))) in (let TMP_71 \def (\lambda (_: T).(\lambda (v2: T).(pr3 c u2 v2))) 
-in (let TMP_72 \def (\lambda (_: T).(\lambda (v2: T).(nf2 c v2))) in (let 
-TMP_73 \def (ex4_2 T T TMP_67 TMP_70 TMP_71 TMP_72) in (let TMP_74 \def 
-(\forall (u: T).((pc3 c u1 (THead (Bind Abst) u2 u)) \to False)) in (let 
-TMP_77 \def (\lambda (u: T).(\lambda (_: T).(let TMP_75 \def (Bind Abst) in 
-(let TMP_76 \def (THead TMP_75 u2 u) in (pc3 c u1 TMP_76))))) in (let TMP_80 
-\def (\lambda (u: T).(\lambda (v2: T).(let TMP_78 \def (Bind Abst) in (let 
-TMP_79 \def (THead TMP_78 v2 u) in (ty3 g c TMP_79 t1))))) in (let TMP_81 
-\def (\lambda (_: T).(\lambda (v2: T).(pr3 c u2 v2))) in (let TMP_82 \def 
-(\lambda (_: T).(\lambda (v2: T).(nf2 c v2))) in (let TMP_83 \def (Bind Abst) 
-in (let TMP_84 \def (THead TMP_83 x0 x1) in (let TMP_85 \def (Bind Abst) in 
-(let TMP_86 \def (THead TMP_85 u2 x1) in (let TMP_87 \def (Bind Abst) in (let 
-TMP_88 \def (Bind Abst) in (let TMP_89 \def (CHead c TMP_88 x0) in (let 
-TMP_90 \def (pr3_refl TMP_89 x1) in (let TMP_91 \def (pr3_head_12 c u2 x0 H7 
-TMP_87 x1 x1 TMP_90) in (let TMP_92 \def (pc3_pr3_t c u1 TMP_84 H13 TMP_86 
-TMP_91) in (let TMP_93 \def (ex4_2_intro T T TMP_77 TMP_80 TMP_81 TMP_82 x1 
-x0 TMP_92 H_y H7 H8) in (or_introl TMP_73 TMP_74 
-TMP_93))))))))))))))))))))))))))))))))))) in (ex_ind T TMP_45 TMP_56 TMP_94 
-H10))))))))))) in (let TMP_160 \def (\lambda (H10: ((\forall (t: T).((eq T x 
-(THead (Bind Abst) x0 t)) \to (\forall (P: Prop).P))))).(let TMP_98 \def 
-(\lambda (u: T).(\lambda (_: T).(let TMP_96 \def (Bind Abst) in (let TMP_97 
-\def (THead TMP_96 u2 u) in (pc3 c u1 TMP_97))))) in (let TMP_101 \def 
-(\lambda (u: T).(\lambda (v2: T).(let TMP_99 \def (Bind Abst) in (let TMP_100 
-\def (THead TMP_99 v2 u) in (ty3 g c TMP_100 t1))))) in (let TMP_102 \def 
-(\lambda (_: T).(\lambda (v2: T).(pr3 c u2 v2))) in (let TMP_103 \def 
-(\lambda (_: T).(\lambda (v2: T).(nf2 c v2))) in (let TMP_104 \def (ex4_2 T T 
-TMP_98 TMP_101 TMP_102 TMP_103) in (let TMP_105 \def (\forall (u: T).((pc3 c 
-u1 (THead (Bind Abst) u2 u)) \to False)) in (let TMP_159 \def (\lambda (u: 
-T).(\lambda (H11: (pc3 c u1 (THead (Bind Abst) u2 u))).(let H12 \def H11 in 
-(let TMP_106 \def (\lambda (t: T).(pr3 c u1 t)) in (let TMP_109 \def (\lambda 
-(t: T).(let TMP_107 \def (Bind Abst) in (let TMP_108 \def (THead TMP_107 u2 
-u) in (pr3 c TMP_108 t)))) in (let TMP_158 \def (\lambda (x1: T).(\lambda 
-(H13: (pr3 c u1 x1)).(\lambda (H14: (pr3 c (THead (Bind Abst) u2 u) x1)).(let 
-TMP_110 \def (\lambda (t: T).(pr3 c x1 t)) in (let TMP_111 \def (\lambda (t: 
-T).(pr3 c x t)) in (let TMP_156 \def (\lambda (x2: T).(\lambda (H15: (pr3 c 
-x1 x2)).(\lambda (H16: (pr3 c x x2)).(let H_y \def (nf2_pr3_unfold c x x2 H16 
-H5) in (let TMP_112 \def (\lambda (t: T).(pr3 c x1 t)) in (let H17 \def 
-(eq_ind_r T x2 TMP_112 H15 x H_y) in (let H18 \def (pr3_gen_abst c u2 u x1 
-H14) in (let TMP_115 \def (\lambda (u3: T).(\lambda (t3: T).(let TMP_113 \def 
-(Bind Abst) in (let TMP_114 \def (THead TMP_113 u3 t3) in (eq T x1 
-TMP_114))))) in (let TMP_116 \def (\lambda (u3: T).(\lambda (_: T).(pr3 c u2 
-u3))) in (let TMP_119 \def (\lambda (_: T).(\lambda (t3: T).(\forall (b: 
-B).(\forall (u0: T).(let TMP_117 \def (Bind b) in (let TMP_118 \def (CHead c 
-TMP_117 u0) in (pr3 TMP_118 u t3))))))) in (let TMP_155 \def (\lambda (x3: 
-T).(\lambda (x4: T).(\lambda (H19: (eq T x1 (THead (Bind Abst) x3 
-x4))).(\lambda (H20: (pr3 c u2 x3)).(\lambda (_: ((\forall (b: B).(\forall 
-(u0: T).(pr3 (CHead c (Bind b) u0) u x4))))).(let TMP_120 \def (\lambda (t: 
-T).(pr3 c t x)) in (let TMP_121 \def (Bind Abst) in (let TMP_122 \def (THead 
-TMP_121 x3 x4) in (let H22 \def (eq_ind T x1 TMP_120 H17 TMP_122 H19) in (let 
-H23 \def (pr3_gen_abst c x3 x4 x H22) in (let TMP_125 \def (\lambda (u3: 
-T).(\lambda (t3: T).(let TMP_123 \def (Bind Abst) in (let TMP_124 \def (THead 
-TMP_123 u3 t3) in (eq T x TMP_124))))) in (let TMP_126 \def (\lambda (u3: 
-T).(\lambda (_: T).(pr3 c x3 u3))) in (let TMP_129 \def (\lambda (_: 
-T).(\lambda (t3: T).(\forall (b: B).(\forall (u0: T).(let TMP_127 \def (Bind 
-b) in (let TMP_128 \def (CHead c TMP_127 u0) in (pr3 TMP_128 x4 t3))))))) in 
-(let TMP_154 \def (\lambda (x5: T).(\lambda (x6: T).(\lambda (H24: (eq T x 
-(THead (Bind Abst) x5 x6))).(\lambda (H25: (pr3 c x3 x5)).(\lambda (_: 
-((\forall (b: B).(\forall (u0: T).(pr3 (CHead c (Bind b) u0) x4 x6))))).(let 
-TMP_130 \def (\lambda (t: T).(\forall (t0: T).((eq T t (THead (Bind Abst) x0 
-t0)) \to (\forall (P: Prop).P)))) in (let TMP_131 \def (Bind Abst) in (let 
-TMP_132 \def (THead TMP_131 x5 x6) in (let H27 \def (eq_ind T x TMP_130 H10 
-TMP_132 H24) in (let TMP_133 \def (\lambda (t: T).(nf2 c t)) in (let TMP_134 
-\def (Bind Abst) in (let TMP_135 \def (THead TMP_134 x5 x6) in (let H28 \def 
-(eq_ind T x TMP_133 H5 TMP_135 H24) in (let H29 \def (nf2_gen_abst c x5 x6 
-H28) in (let TMP_136 \def (nf2 c x5) in (let TMP_137 \def (Bind Abst) in (let 
-TMP_138 \def (CHead c TMP_137 x5) in (let TMP_139 \def (nf2 TMP_138 x6) in 
-(let TMP_153 \def (\lambda (H30: (nf2 c x5)).(\lambda (_: (nf2 (CHead c (Bind 
+H0) in (let H_x \def (nf2_sn3 c u1 H1) in (let H3 \def H_x in (ex2_ind T 
+(\lambda (u: T).(pr3 c u1 u)) (\lambda (u: T).(nf2 c u)) (or (ex4_2 T T 
+(\lambda (u: T).(\lambda (_: T).(pc3 c u1 (THead (Bind Abst) u2 u)))) 
+(\lambda (u: T).(\lambda (v2: T).(ty3 g c (THead (Bind Abst) v2 u) t1))) 
+(\lambda (_: T).(\lambda (v2: T).(pr3 c u2 v2))) (\lambda (_: T).(\lambda 
+(v2: T).(nf2 c v2)))) (\forall (u: T).((pc3 c u1 (THead (Bind Abst) u2 u)) 
+\to False))) (\lambda (x: T).(\lambda (H4: (pr3 c u1 x)).(\lambda (H5: (nf2 c 
+x)).(let H_x0 \def (nf2_sn3 c u2 H2) in (let H6 \def H_x0 in (ex2_ind T 
+(\lambda (u: T).(pr3 c u2 u)) (\lambda (u: T).(nf2 c u)) (or (ex4_2 T T 
+(\lambda (u: T).(\lambda (_: T).(pc3 c u1 (THead (Bind Abst) u2 u)))) 
+(\lambda (u: T).(\lambda (v2: T).(ty3 g c (THead (Bind Abst) v2 u) t1))) 
+(\lambda (_: T).(\lambda (v2: T).(pr3 c u2 v2))) (\lambda (_: T).(\lambda 
+(v2: T).(nf2 c v2)))) (\forall (u: T).((pc3 c u1 (THead (Bind Abst) u2 u)) 
+\to False))) (\lambda (x0: T).(\lambda (H7: (pr3 c u2 x0)).(\lambda (H8: (nf2 
+c x0)).(let H_x1 \def (abst_dec x x0) in (let H9 \def H_x1 in (or_ind (ex T 
+(\lambda (t: T).(eq T x (THead (Bind Abst) x0 t)))) (\forall (t: T).((eq T x 
+(THead (Bind Abst) x0 t)) \to (\forall (P: Prop).P))) (or (ex4_2 T T (\lambda 
+(u: T).(\lambda (_: T).(pc3 c u1 (THead (Bind Abst) u2 u)))) (\lambda (u: 
+T).(\lambda (v2: T).(ty3 g c (THead (Bind Abst) v2 u) t1))) (\lambda (_: 
+T).(\lambda (v2: T).(pr3 c u2 v2))) (\lambda (_: T).(\lambda (v2: T).(nf2 c 
+v2)))) (\forall (u: T).((pc3 c u1 (THead (Bind Abst) u2 u)) \to False))) 
+(\lambda (H10: (ex T (\lambda (t: T).(eq T x (THead (Bind Abst) x0 
+t))))).(ex_ind T (\lambda (t: T).(eq T x (THead (Bind Abst) x0 t))) (or 
+(ex4_2 T T (\lambda (u: T).(\lambda (_: T).(pc3 c u1 (THead (Bind Abst) u2 
+u)))) (\lambda (u: T).(\lambda (v2: T).(ty3 g c (THead (Bind Abst) v2 u) 
+t1))) (\lambda (_: T).(\lambda (v2: T).(pr3 c u2 v2))) (\lambda (_: 
+T).(\lambda (v2: T).(nf2 c v2)))) (\forall (u: T).((pc3 c u1 (THead (Bind 
+Abst) u2 u)) \to False))) (\lambda (x1: T).(\lambda (H11: (eq T x (THead 
+(Bind Abst) x0 x1))).(let H12 \def (eq_ind T x (\lambda (t: T).(nf2 c t)) H5 
+(THead (Bind Abst) x0 x1) H11) in (let H13 \def (eq_ind T x (\lambda (t: 
+T).(pr3 c u1 t)) H4 (THead (Bind Abst) x0 x1) H11) in (let H_y \def 
+(ty3_sred_pr3 c u1 (THead (Bind Abst) x0 x1) H13 g t1 H) in (or_introl (ex4_2 
+T T (\lambda (u: T).(\lambda (_: T).(pc3 c u1 (THead (Bind Abst) u2 u)))) 
+(\lambda (u: T).(\lambda (v2: T).(ty3 g c (THead (Bind Abst) v2 u) t1))) 
+(\lambda (_: T).(\lambda (v2: T).(pr3 c u2 v2))) (\lambda (_: T).(\lambda 
+(v2: T).(nf2 c v2)))) (\forall (u: T).((pc3 c u1 (THead (Bind Abst) u2 u)) 
+\to False)) (ex4_2_intro T T (\lambda (u: T).(\lambda (_: T).(pc3 c u1 (THead 
+(Bind Abst) u2 u)))) (\lambda (u: T).(\lambda (v2: T).(ty3 g c (THead (Bind 
+Abst) v2 u) t1))) (\lambda (_: T).(\lambda (v2: T).(pr3 c u2 v2))) (\lambda 
+(_: T).(\lambda (v2: T).(nf2 c v2))) x1 x0 (pc3_pr3_t c u1 (THead (Bind Abst) 
+x0 x1) H13 (THead (Bind Abst) u2 x1) (pr3_head_12 c u2 x0 H7 (Bind Abst) x1 
+x1 (pr3_refl (CHead c (Bind Abst) x0) x1))) H_y H7 H8))))))) H10)) (\lambda 
+(H10: ((\forall (t: T).((eq T x (THead (Bind Abst) x0 t)) \to (\forall (P: 
+Prop).P))))).(or_intror (ex4_2 T T (\lambda (u: T).(\lambda (_: T).(pc3 c u1 
+(THead (Bind Abst) u2 u)))) (\lambda (u: T).(\lambda (v2: T).(ty3 g c (THead 
+(Bind Abst) v2 u) t1))) (\lambda (_: T).(\lambda (v2: T).(pr3 c u2 v2))) 
+(\lambda (_: T).(\lambda (v2: T).(nf2 c v2)))) (\forall (u: T).((pc3 c u1 
+(THead (Bind Abst) u2 u)) \to False)) (\lambda (u: T).(\lambda (H11: (pc3 c 
+u1 (THead (Bind Abst) u2 u))).(let H12 \def H11 in (ex2_ind T (\lambda (t: 
+T).(pr3 c u1 t)) (\lambda (t: T).(pr3 c (THead (Bind Abst) u2 u) t)) False 
+(\lambda (x1: T).(\lambda (H13: (pr3 c u1 x1)).(\lambda (H14: (pr3 c (THead 
+(Bind Abst) u2 u) x1)).(ex2_ind T (\lambda (t: T).(pr3 c x1 t)) (\lambda (t: 
+T).(pr3 c x t)) False (\lambda (x2: T).(\lambda (H15: (pr3 c x1 x2)).(\lambda 
+(H16: (pr3 c x x2)).(let H_y \def (nf2_pr3_unfold c x x2 H16 H5) in (let H17 
+\def (eq_ind_r T x2 (\lambda (t: T).(pr3 c x1 t)) H15 x H_y) in (let H18 \def 
+(pr3_gen_abst c u2 u x1 H14) in (ex3_2_ind T T (\lambda (u3: T).(\lambda (t3: 
+T).(eq T x1 (THead (Bind Abst) u3 t3)))) (\lambda (u3: T).(\lambda (_: 
+T).(pr3 c u2 u3))) (\lambda (_: T).(\lambda (t3: T).(\forall (b: B).(\forall 
+(u0: T).(pr3 (CHead c (Bind b) u0) u t3))))) False (\lambda (x3: T).(\lambda 
+(x4: T).(\lambda (H19: (eq T x1 (THead (Bind Abst) x3 x4))).(\lambda (H20: 
+(pr3 c u2 x3)).(\lambda (_: ((\forall (b: B).(\forall (u0: T).(pr3 (CHead c 
+(Bind b) u0) u x4))))).(let H22 \def (eq_ind T x1 (\lambda (t: T).(pr3 c t 
+x)) H17 (THead (Bind Abst) x3 x4) H19) in (let H23 \def (pr3_gen_abst c x3 x4 
+x H22) in (ex3_2_ind T T (\lambda (u3: T).(\lambda (t3: T).(eq T x (THead 
+(Bind Abst) u3 t3)))) (\lambda (u3: T).(\lambda (_: T).(pr3 c x3 u3))) 
+(\lambda (_: T).(\lambda (t3: T).(\forall (b: B).(\forall (u0: T).(pr3 (CHead 
+c (Bind b) u0) x4 t3))))) False (\lambda (x5: T).(\lambda (x6: T).(\lambda 
+(H24: (eq T x (THead (Bind Abst) x5 x6))).(\lambda (H25: (pr3 c x3 
+x5)).(\lambda (_: ((\forall (b: B).(\forall (u0: T).(pr3 (CHead c (Bind b) 
+u0) x4 x6))))).(let H27 \def (eq_ind T x (\lambda (t: T).(\forall (t0: 
+T).((eq T t (THead (Bind Abst) x0 t0)) \to (\forall (P: Prop).P)))) H10 
+(THead (Bind Abst) x5 x6) H24) in (let H28 \def (eq_ind T x (\lambda (t: 
+T).(nf2 c t)) H5 (THead (Bind Abst) x5 x6) H24) in (let H29 \def 
+(nf2_gen_abst c x5 x6 H28) in (land_ind (nf2 c x5) (nf2 (CHead c (Bind Abst) 
+x5) x6) False (\lambda (H30: (nf2 c x5)).(\lambda (_: (nf2 (CHead c (Bind 
 Abst) x5) x6)).(let H32 \def (nf2_pr3_confluence c x0 H8 x5 H30 u2 H7) in 
-(let TMP_140 \def (Bind Abst) in (let TMP_141 \def (THead TMP_140 x0 x6) in 
-(let TMP_142 \def (Bind Abst) in (let TMP_143 \def (THead TMP_142 x5 x6) in 
-(let TMP_144 \def (Bind Abst) in (let TMP_145 \def (Bind Abst) in (let 
-TMP_146 \def (Bind Abst) in (let TMP_147 \def (refl_equal K TMP_146) in (let 
-TMP_148 \def (pr3_t x3 u2 c H20 x5 H25) in (let TMP_149 \def (H32 TMP_148) in 
-(let TMP_150 \def (refl_equal T x6) in (let TMP_151 \def (f_equal3 K T T T 
-THead TMP_144 TMP_145 x0 x5 x6 x6 TMP_147 TMP_149 TMP_150) in (let TMP_152 
-\def (sym_eq T TMP_141 TMP_143 TMP_151) in (H27 x6 TMP_152 
-False))))))))))))))))) in (land_ind TMP_136 TMP_139 False TMP_153 
-H29)))))))))))))))))))) in (ex3_2_ind T T TMP_125 TMP_126 TMP_129 False 
-TMP_154 H23))))))))))))))) in (ex3_2_ind T T TMP_115 TMP_116 TMP_119 False 
-TMP_155 H18)))))))))))) in (let TMP_157 \def (pr3_confluence c u1 x1 H13 x 
-H4) in (ex2_ind T TMP_110 TMP_111 False TMP_156 TMP_157)))))))) in (ex2_ind T 
-TMP_106 TMP_109 False TMP_158 H12))))))) in (or_intror TMP_104 TMP_105 
-TMP_159))))))))) in (or_ind TMP_30 TMP_31 TMP_42 TMP_95 TMP_160 
-H9)))))))))))))))))) in (ex2_ind T TMP_14 TMP_15 TMP_26 TMP_161 
-H6)))))))))))))))) in (ex2_ind T TMP_1 TMP_2 TMP_13 TMP_162 
-H3)))))))))))))))))))))).
+(H27 x6 (sym_eq T (THead (Bind Abst) x0 x6) (THead (Bind Abst) x5 x6) 
+(f_equal3 K T T T THead (Bind Abst) (Bind Abst) x0 x5 x6 x6 (refl_equal K 
+(Bind Abst)) (H32 (pr3_t x3 u2 c H20 x5 H25)) (refl_equal T x6))) False)))) 
+H29))))))))) H23)))))))) H18))))))) (pr3_confluence c u1 x1 H13 x H4))))) 
+H12)))))) H9)))))) H6)))))) H3)))))))))))).
 
index bbc07ef1befb103ddc9e2fce7c1a90a64695571f..a0c97231e65fb7cf521db93387885d3f5707d56d 100644 (file)
@@ -19,9 +19,8 @@ include "basic_1/pr3/defs.ma".
 definition pc3:
  C \to (T \to (T \to Prop))
 \def
- \lambda (c: C).(\lambda (t1: T).(\lambda (t2: T).(let TMP_1 \def (\lambda 
-(t: T).(pr3 c t1 t)) in (let TMP_2 \def (\lambda (t: T).(pr3 c t2 t)) in (ex2 
-T TMP_1 TMP_2))))).
+ \lambda (c: C).(\lambda (t1: T).(\lambda (t2: T).(ex2 T (\lambda (t: T).(pr3 
+c t1 t)) (\lambda (t: T).(pr3 c t2 t))))).
 
 inductive pc3_left (c: C): T \to (T \to Prop) \def
 | pc3_left_r: \forall (t: T).(pc3_left c t t)
index 3de6c58b5b103b25929fcd4c2ed4e7c523da2aaa..7147efce300e70d423e3e558a9539ff12d2a639d 100644 (file)
@@ -27,529 +27,310 @@ t1 c2 t2) \to (\forall (e: C).((getl i c1 (CHead e (Bind Abbr) u)) \to (pc3
 c2 t2 t)))))))))))
 \def
  \lambda (c1: C).(\lambda (t1: T).(\lambda (t: T).(\lambda (H: (pr2 c1 t1 
-t)).(let TMP_1 \def (\lambda (c: C).(\lambda (t0: T).(\lambda (t2: 
-T).(\forall (i: nat).(\forall (u: T).(\forall (c2: C).(\forall (t3: 
-T).((fsubst0 i u c t0 c2 t3) \to (\forall (e: C).((getl i c (CHead e (Bind 
-Abbr) u)) \to (pc3 c2 t3 t2))))))))))) in (let TMP_47 \def (\lambda (c: 
-C).(\lambda (t2: T).(\lambda (t3: T).(\lambda (H0: (pr0 t2 t3)).(\lambda (i: 
-nat).(\lambda (u: T).(\lambda (c2: C).(\lambda (t0: T).(\lambda (H1: (fsubst0 
-i u c t2 c2 t0)).(let TMP_2 \def (\lambda (c0: C).(\lambda (t4: T).(\forall 
-(e: C).((getl i c (CHead e (Bind Abbr) u)) \to (pc3 c0 t4 t3))))) in (let 
-TMP_21 \def (\lambda (t4: T).(\lambda (H2: (subst0 i u t2 t4)).(\lambda (e: 
-C).(\lambda (H3: (getl i c (CHead e (Bind Abbr) u))).(let TMP_3 \def (pr0 t4 
-t3) in (let TMP_4 \def (\lambda (w2: T).(pr0 t4 w2)) in (let TMP_5 \def 
-(\lambda (w2: T).(subst0 i u t3 w2)) in (let TMP_6 \def (ex2 T TMP_4 TMP_5) 
-in (let TMP_7 \def (pc3 c t4 t3) in (let TMP_9 \def (\lambda (H4: (pr0 t4 
-t3)).(let TMP_8 \def (pr2_free c t4 t3 H4) in (pc3_pr2_r c t4 t3 TMP_8))) in 
-(let TMP_18 \def (\lambda (H4: (ex2 T (\lambda (w2: T).(pr0 t4 w2)) (\lambda 
-(w2: T).(subst0 i u t3 w2)))).(let TMP_10 \def (\lambda (w2: T).(pr0 t4 w2)) 
-in (let TMP_11 \def (\lambda (w2: T).(subst0 i u t3 w2)) in (let TMP_12 \def 
-(pc3 c t4 t3) in (let TMP_17 \def (\lambda (x: T).(\lambda (H5: (pr0 t4 
-x)).(\lambda (H6: (subst0 i u t3 x)).(let TMP_13 \def (pr2_free c t4 x H5) in 
-(let TMP_14 \def (pr0_refl t3) in (let TMP_15 \def (pr2_delta c e u i H3 t3 
-t3 TMP_14 x H6) in (let TMP_16 \def (pc3_pr2_x c x t3 TMP_15) in (pc3_pr2_u c 
-x t4 TMP_13 t3 TMP_16)))))))) in (ex2_ind T TMP_10 TMP_11 TMP_12 TMP_17 
-H4)))))) in (let TMP_19 \def (pr0_refl u) in (let TMP_20 \def (pr0_subst0 t2 
-t3 H0 u t4 i H2 u TMP_19) in (or_ind TMP_3 TMP_6 TMP_7 TMP_9 TMP_18 
-TMP_20)))))))))))))) in (let TMP_23 \def (\lambda (c0: C).(\lambda (_: 
-(csubst0 i u c c0)).(\lambda (e: C).(\lambda (_: (getl i c (CHead e (Bind 
-Abbr) u))).(let TMP_22 \def (pr2_free c0 t2 t3 H0) in (pc3_pr2_r c0 t2 t3 
-TMP_22)))))) in (let TMP_46 \def (\lambda (t4: T).(\lambda (H2: (subst0 i u 
-t2 t4)).(\lambda (c0: C).(\lambda (H3: (csubst0 i u c c0)).(\lambda (e: 
-C).(\lambda (H4: (getl i c (CHead e (Bind Abbr) u))).(let TMP_24 \def (pr0 t4 
-t3) in (let TMP_25 \def (\lambda (w2: T).(pr0 t4 w2)) in (let TMP_26 \def 
-(\lambda (w2: T).(subst0 i u t3 w2)) in (let TMP_27 \def (ex2 T TMP_25 
-TMP_26) in (let TMP_28 \def (pc3 c0 t4 t3) in (let TMP_30 \def (\lambda (H5: 
-(pr0 t4 t3)).(let TMP_29 \def (pr2_free c0 t4 t3 H5) in (pc3_pr2_r c0 t4 t3 
-TMP_29))) in (let TMP_43 \def (\lambda (H5: (ex2 T (\lambda (w2: T).(pr0 t4 
-w2)) (\lambda (w2: T).(subst0 i u t3 w2)))).(let TMP_31 \def (\lambda (w2: 
-T).(pr0 t4 w2)) in (let TMP_32 \def (\lambda (w2: T).(subst0 i u t3 w2)) in 
-(let TMP_33 \def (pc3 c0 t4 t3) in (let TMP_42 \def (\lambda (x: T).(\lambda 
-(H6: (pr0 t4 x)).(\lambda (H7: (subst0 i u t3 x)).(let TMP_34 \def (pr2_free 
-c0 t4 x H6) in (let TMP_35 \def (le_n i) in (let TMP_36 \def (Bind Abbr) in 
-(let TMP_37 \def (CHead e TMP_36 u) in (let TMP_38 \def (csubst0_getl_ge i i 
-TMP_35 c c0 u H3 TMP_37 H4) in (let TMP_39 \def (pr0_refl t3) in (let TMP_40 
-\def (pr2_delta c0 e u i TMP_38 t3 t3 TMP_39 x H7) in (let TMP_41 \def 
-(pc3_pr2_x c0 x t3 TMP_40) in (pc3_pr2_u c0 x t4 TMP_34 t3 TMP_41)))))))))))) 
-in (ex2_ind T TMP_31 TMP_32 TMP_33 TMP_42 H5)))))) in (let TMP_44 \def 
-(pr0_refl u) in (let TMP_45 \def (pr0_subst0 t2 t3 H0 u t4 i H2 u TMP_44) in 
-(or_ind TMP_24 TMP_27 TMP_28 TMP_30 TMP_43 TMP_45)))))))))))))))) in 
-(fsubst0_ind i u c t2 TMP_2 TMP_21 TMP_23 TMP_46 c2 t0 H1)))))))))))))) in 
-(let TMP_549 \def (\lambda (c: C).(\lambda (d: C).(\lambda (u: T).(\lambda 
-(i: nat).(\lambda (H0: (getl i c (CHead d (Bind Abbr) u))).(\lambda (t2: 
-T).(\lambda (t3: T).(\lambda (H1: (pr0 t2 t3)).(\lambda (t0: T).(\lambda (H2: 
-(subst0 i u t3 t0)).(\lambda (i0: nat).(\lambda (u0: T).(\lambda (c2: 
-C).(\lambda (t4: T).(\lambda (H3: (fsubst0 i0 u0 c t2 c2 t4)).(let TMP_48 
-\def (\lambda (c0: C).(\lambda (t5: T).(\forall (e: C).((getl i0 c (CHead e 
-(Bind Abbr) u0)) \to (pc3 c0 t5 t0))))) in (let TMP_55 \def (\lambda (t5: 
-T).(\lambda (H4: (subst0 i0 u0 t2 t5)).(\lambda (e: C).(\lambda (H5: (getl i0 
-c (CHead e (Bind Abbr) u0))).(let TMP_49 \def (pr0_refl t2) in (let TMP_50 
-\def (pr2_delta c e u0 i0 H5 t2 t2 TMP_49 t5 H4) in (let TMP_51 \def 
-(pc3_pr2_r c t2 t5 TMP_50) in (let TMP_52 \def (pc3_s c t5 t2 TMP_51) in (let 
-TMP_53 \def (pr2_delta c d u i H0 t2 t3 H1 t0 H2) in (let TMP_54 \def 
-(pc3_pr2_r c t2 t0 TMP_53) in (pc3_t t2 c t5 TMP_52 t0 TMP_54))))))))))) in 
-(let TMP_284 \def (\lambda (c0: C).(\lambda (H4: (csubst0 i0 u0 c 
-c0)).(\lambda (e: C).(\lambda (H5: (getl i0 c (CHead e (Bind Abbr) u0))).(let 
-TMP_56 \def (pc3 c0 t2 t0) in (let TMP_278 \def (\lambda (H6: (lt i i0)).(let 
-TMP_57 \def (Bind Abbr) in (let TMP_58 \def (CHead d TMP_57 u) in (let H7 
-\def (csubst0_getl_lt i0 i H6 c c0 u0 H4 TMP_58 H0) in (let TMP_59 \def (Bind 
-Abbr) in (let TMP_60 \def (CHead d TMP_59 u) in (let TMP_61 \def (getl i c0 
-TMP_60) in (let TMP_66 \def (\lambda (b: B).(\lambda (e0: C).(\lambda (u1: 
-T).(\lambda (_: T).(let TMP_62 \def (Bind Abbr) in (let TMP_63 \def (CHead d 
-TMP_62 u) in (let TMP_64 \def (Bind b) in (let TMP_65 \def (CHead e0 TMP_64 
-u1) in (eq C TMP_63 TMP_65))))))))) in (let TMP_69 \def (\lambda (b: 
-B).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: T).(let TMP_67 \def (Bind b) 
-in (let TMP_68 \def (CHead e0 TMP_67 w) in (getl i c0 TMP_68))))))) in (let 
-TMP_72 \def (\lambda (_: B).(\lambda (_: C).(\lambda (u1: T).(\lambda (w: 
-T).(let TMP_70 \def (S i) in (let TMP_71 \def (minus i0 TMP_70) in (subst0 
-TMP_71 u0 u1 w))))))) in (let TMP_73 \def (ex3_4 B C T T TMP_66 TMP_69 
-TMP_72) in (let TMP_78 \def (\lambda (b: B).(\lambda (e1: C).(\lambda (_: 
-C).(\lambda (u1: T).(let TMP_74 \def (Bind Abbr) in (let TMP_75 \def (CHead d 
-TMP_74 u) in (let TMP_76 \def (Bind b) in (let TMP_77 \def (CHead e1 TMP_76 
-u1) in (eq C TMP_75 TMP_77))))))))) in (let TMP_81 \def (\lambda (b: 
-B).(\lambda (_: C).(\lambda (e2: C).(\lambda (u1: T).(let TMP_79 \def (Bind 
-b) in (let TMP_80 \def (CHead e2 TMP_79 u1) in (getl i c0 TMP_80))))))) in 
-(let TMP_84 \def (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: C).(\lambda 
-(_: T).(let TMP_82 \def (S i) in (let TMP_83 \def (minus i0 TMP_82) in 
-(csubst0 TMP_83 u0 e1 e2))))))) in (let TMP_85 \def (ex3_4 B C C T TMP_78 
-TMP_81 TMP_84) in (let TMP_90 \def (\lambda (b: B).(\lambda (e1: C).(\lambda 
-(_: C).(\lambda (u1: T).(\lambda (_: T).(let TMP_86 \def (Bind Abbr) in (let 
-TMP_87 \def (CHead d TMP_86 u) in (let TMP_88 \def (Bind b) in (let TMP_89 
-\def (CHead e1 TMP_88 u1) in (eq C TMP_87 TMP_89)))))))))) in (let TMP_93 
-\def (\lambda (b: B).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: 
-T).(\lambda (w: T).(let TMP_91 \def (Bind b) in (let TMP_92 \def (CHead e2 
-TMP_91 w) in (getl i c0 TMP_92)))))))) in (let TMP_96 \def (\lambda (_: 
-B).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (w: T).(let 
-TMP_94 \def (S i) in (let TMP_95 \def (minus i0 TMP_94) in (subst0 TMP_95 u0 
-u1 w)))))))) in (let TMP_99 \def (\lambda (_: B).(\lambda (e1: C).(\lambda 
-(e2: C).(\lambda (_: T).(\lambda (_: T).(let TMP_97 \def (S i) in (let TMP_98 
-\def (minus i0 TMP_97) in (csubst0 TMP_98 u0 e1 e2)))))))) in (let TMP_100 
-\def (ex4_5 B C C T T TMP_90 TMP_93 TMP_96 TMP_99) in (let TMP_101 \def (pc3 
-c0 t2 t0) in (let TMP_103 \def (\lambda (H8: (getl i c0 (CHead d (Bind Abbr) 
-u))).(let TMP_102 \def (pr2_delta c0 d u i H8 t2 t3 H1 t0 H2) in (pc3_pr2_r 
-c0 t2 t0 TMP_102))) in (let TMP_168 \def (\lambda (H8: (ex3_4 B C T T 
-(\lambda (b: B).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: T).(eq C 
-(CHead d (Bind Abbr) u) (CHead e0 (Bind b) u1)))))) (\lambda (b: B).(\lambda 
-(e0: C).(\lambda (_: T).(\lambda (w: T).(getl i c0 (CHead e0 (Bind b) w)))))) 
-(\lambda (_: B).(\lambda (_: C).(\lambda (u1: T).(\lambda (w: T).(subst0 
-(minus i0 (S i)) u0 u1 w))))))).(let TMP_108 \def (\lambda (b: B).(\lambda 
-(e0: C).(\lambda (u1: T).(\lambda (_: T).(let TMP_104 \def (Bind Abbr) in 
-(let TMP_105 \def (CHead d TMP_104 u) in (let TMP_106 \def (Bind b) in (let 
-TMP_107 \def (CHead e0 TMP_106 u1) in (eq C TMP_105 TMP_107))))))))) in (let 
-TMP_111 \def (\lambda (b: B).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: 
-T).(let TMP_109 \def (Bind b) in (let TMP_110 \def (CHead e0 TMP_109 w) in 
-(getl i c0 TMP_110))))))) in (let TMP_114 \def (\lambda (_: B).(\lambda (_: 
-C).(\lambda (u1: T).(\lambda (w: T).(let TMP_112 \def (S i) in (let TMP_113 
-\def (minus i0 TMP_112) in (subst0 TMP_113 u0 u1 w))))))) in (let TMP_115 
-\def (pc3 c0 t2 t0) in (let TMP_167 \def (\lambda (x0: B).(\lambda (x1: 
-C).(\lambda (x2: T).(\lambda (x3: T).(\lambda (H9: (eq C (CHead d (Bind Abbr) 
-u) (CHead x1 (Bind x0) x2))).(\lambda (H10: (getl i c0 (CHead x1 (Bind x0) 
-x3))).(\lambda (H11: (subst0 (minus i0 (S i)) u0 x2 x3)).(let TMP_116 \def 
-(\lambda (e0: C).(match e0 with [(CSort _) \Rightarrow d | (CHead c3 _ _) 
-\Rightarrow c3])) in (let TMP_117 \def (Bind Abbr) in (let TMP_118 \def 
-(CHead d TMP_117 u) in (let TMP_119 \def (Bind x0) in (let TMP_120 \def 
-(CHead x1 TMP_119 x2) in (let H12 \def (f_equal C C TMP_116 TMP_118 TMP_120 
-H9) in (let TMP_121 \def (\lambda (e0: C).(match e0 with [(CSort _) 
-\Rightarrow Abbr | (CHead _ k _) \Rightarrow (match k with [(Bind b) 
-\Rightarrow b | (Flat _) \Rightarrow Abbr])])) in (let TMP_122 \def (Bind 
-Abbr) in (let TMP_123 \def (CHead d TMP_122 u) in (let TMP_124 \def (Bind x0) 
-in (let TMP_125 \def (CHead x1 TMP_124 x2) in (let H13 \def (f_equal C B 
-TMP_121 TMP_123 TMP_125 H9) in (let TMP_126 \def (\lambda (e0: C).(match e0 
-with [(CSort _) \Rightarrow u | (CHead _ _ t5) \Rightarrow t5])) in (let 
-TMP_127 \def (Bind Abbr) in (let TMP_128 \def (CHead d TMP_127 u) in (let 
-TMP_129 \def (Bind x0) in (let TMP_130 \def (CHead x1 TMP_129 x2) in (let H14 
-\def (f_equal C T TMP_126 TMP_128 TMP_130 H9) in (let TMP_165 \def (\lambda 
-(H15: (eq B Abbr x0)).(\lambda (H16: (eq C d x1)).(let TMP_133 \def (\lambda 
-(t5: T).(let TMP_131 \def (S i) in (let TMP_132 \def (minus i0 TMP_131) in 
-(subst0 TMP_132 u0 t5 x3)))) in (let H17 \def (eq_ind_r T x2 TMP_133 H11 u 
-H14) in (let TMP_136 \def (\lambda (c3: C).(let TMP_134 \def (Bind x0) in 
-(let TMP_135 \def (CHead c3 TMP_134 x3) in (getl i c0 TMP_135)))) in (let H18 
-\def (eq_ind_r C x1 TMP_136 H10 d H16) in (let TMP_139 \def (\lambda (b: 
-B).(let TMP_137 \def (Bind b) in (let TMP_138 \def (CHead d TMP_137 x3) in 
-(getl i c0 TMP_138)))) in (let H19 \def (eq_ind_r B x0 TMP_139 H18 Abbr H15) 
-in (let TMP_140 \def (\lambda (t5: T).(subst0 i x3 t3 t5)) in (let TMP_145 
-\def (\lambda (t5: T).(let TMP_141 \def (S i) in (let TMP_142 \def (minus i0 
-TMP_141) in (let TMP_143 \def (plus TMP_142 i) in (let TMP_144 \def (S 
-TMP_143) in (subst0 TMP_144 u0 t0 t5)))))) in (let TMP_146 \def (pc3 c0 t2 
-t0) in (let TMP_161 \def (\lambda (x: T).(\lambda (H20: (subst0 i x3 t3 
-x)).(\lambda (H21: (subst0 (S (plus (minus i0 (S i)) i)) u0 t0 x)).(let 
-TMP_147 \def (S i) in (let TMP_148 \def (minus i0 TMP_147) in (let TMP_149 
-\def (plus TMP_148 i) in (let TMP_150 \def (S TMP_149) in (let TMP_151 \def 
-(\lambda (n: nat).(subst0 n u0 t0 x)) in (let TMP_152 \def (lt_plus_minus_r i 
-i0 H6) in (let H22 \def (eq_ind_r nat TMP_150 TMP_151 H21 i0 TMP_152) in (let 
-TMP_153 \def (pr2_delta c0 d x3 i H19 t2 t3 H1 x H20) in (let TMP_154 \def 
-(le_n i0) in (let TMP_155 \def (Bind Abbr) in (let TMP_156 \def (CHead e 
-TMP_155 u0) in (let TMP_157 \def (csubst0_getl_ge i0 i0 TMP_154 c c0 u0 H4 
-TMP_156 H5) in (let TMP_158 \def (pr0_refl t0) in (let TMP_159 \def 
-(pr2_delta c0 e u0 i0 TMP_157 t0 t0 TMP_158 x H22) in (let TMP_160 \def 
-(pc3_pr2_x c0 x t0 TMP_159) in (pc3_pr2_u c0 x t2 TMP_153 t0 
-TMP_160))))))))))))))))))) in (let TMP_162 \def (S i) in (let TMP_163 \def 
-(minus i0 TMP_162) in (let TMP_164 \def (subst0_subst0_back t3 t0 u i H2 x3 
-u0 TMP_163 H17) in (ex2_ind T TMP_140 TMP_145 TMP_146 TMP_161 
-TMP_164)))))))))))))))) in (let TMP_166 \def (TMP_165 H13) in (TMP_166 
-H12)))))))))))))))))))))))))))) in (ex3_4_ind B C T T TMP_108 TMP_111 TMP_114 
-TMP_115 TMP_167 H8))))))) in (let TMP_209 \def (\lambda (H8: (ex3_4 B C C T 
-(\lambda (b: B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(eq C 
-(CHead d (Bind Abbr) u) (CHead e1 (Bind b) u1)))))) (\lambda (b: B).(\lambda 
-(_: C).(\lambda (e2: C).(\lambda (u1: T).(getl i c0 (CHead e2 (Bind b) 
-u1)))))) (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: 
-T).(csubst0 (minus i0 (S i)) u0 e1 e2))))))).(let TMP_173 \def (\lambda (b: 
-B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(let TMP_169 \def (Bind 
-Abbr) in (let TMP_170 \def (CHead d TMP_169 u) in (let TMP_171 \def (Bind b) 
-in (let TMP_172 \def (CHead e1 TMP_171 u1) in (eq C TMP_170 TMP_172))))))))) 
-in (let TMP_176 \def (\lambda (b: B).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (u1: T).(let TMP_174 \def (Bind b) in (let TMP_175 \def (CHead e2 
-TMP_174 u1) in (getl i c0 TMP_175))))))) in (let TMP_179 \def (\lambda (_: 
-B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(let TMP_177 \def (S i) 
-in (let TMP_178 \def (minus i0 TMP_177) in (csubst0 TMP_178 u0 e1 e2))))))) 
-in (let TMP_180 \def (pc3 c0 t2 t0) in (let TMP_208 \def (\lambda (x0: 
-B).(\lambda (x1: C).(\lambda (x2: C).(\lambda (x3: T).(\lambda (H9: (eq C 
-(CHead d (Bind Abbr) u) (CHead x1 (Bind x0) x3))).(\lambda (H10: (getl i c0 
-(CHead x2 (Bind x0) x3))).(\lambda (H11: (csubst0 (minus i0 (S i)) u0 x1 
-x2)).(let TMP_181 \def (\lambda (e0: C).(match e0 with [(CSort _) \Rightarrow 
-d | (CHead c3 _ _) \Rightarrow c3])) in (let TMP_182 \def (Bind Abbr) in (let 
-TMP_183 \def (CHead d TMP_182 u) in (let TMP_184 \def (Bind x0) in (let 
-TMP_185 \def (CHead x1 TMP_184 x3) in (let H12 \def (f_equal C C TMP_181 
-TMP_183 TMP_185 H9) in (let TMP_186 \def (\lambda (e0: C).(match e0 with 
+t)).(pr2_ind (\lambda (c: C).(\lambda (t0: T).(\lambda (t2: T).(\forall (i: 
+nat).(\forall (u: T).(\forall (c2: C).(\forall (t3: T).((fsubst0 i u c t0 c2 
+t3) \to (\forall (e: C).((getl i c (CHead e (Bind Abbr) u)) \to (pc3 c2 t3 
+t2))))))))))) (\lambda (c: C).(\lambda (t2: T).(\lambda (t3: T).(\lambda (H0: 
+(pr0 t2 t3)).(\lambda (i: nat).(\lambda (u: T).(\lambda (c2: C).(\lambda (t0: 
+T).(\lambda (H1: (fsubst0 i u c t2 c2 t0)).(fsubst0_ind i u c t2 (\lambda 
+(c0: C).(\lambda (t4: T).(\forall (e: C).((getl i c (CHead e (Bind Abbr) u)) 
+\to (pc3 c0 t4 t3))))) (\lambda (t4: T).(\lambda (H2: (subst0 i u t2 
+t4)).(\lambda (e: C).(\lambda (H3: (getl i c (CHead e (Bind Abbr) 
+u))).(or_ind (pr0 t4 t3) (ex2 T (\lambda (w2: T).(pr0 t4 w2)) (\lambda (w2: 
+T).(subst0 i u t3 w2))) (pc3 c t4 t3) (\lambda (H4: (pr0 t4 t3)).(pc3_pr2_r c 
+t4 t3 (pr2_free c t4 t3 H4))) (\lambda (H4: (ex2 T (\lambda (w2: T).(pr0 t4 
+w2)) (\lambda (w2: T).(subst0 i u t3 w2)))).(ex2_ind T (\lambda (w2: T).(pr0 
+t4 w2)) (\lambda (w2: T).(subst0 i u t3 w2)) (pc3 c t4 t3) (\lambda (x: 
+T).(\lambda (H5: (pr0 t4 x)).(\lambda (H6: (subst0 i u t3 x)).(pc3_pr2_u c x 
+t4 (pr2_free c t4 x H5) t3 (pc3_pr2_x c x t3 (pr2_delta c e u i H3 t3 t3 
+(pr0_refl t3) x H6)))))) H4)) (pr0_subst0 t2 t3 H0 u t4 i H2 u (pr0_refl 
+u))))))) (\lambda (c0: C).(\lambda (_: (csubst0 i u c c0)).(\lambda (e: 
+C).(\lambda (_: (getl i c (CHead e (Bind Abbr) u))).(pc3_pr2_r c0 t2 t3 
+(pr2_free c0 t2 t3 H0)))))) (\lambda (t4: T).(\lambda (H2: (subst0 i u t2 
+t4)).(\lambda (c0: C).(\lambda (H3: (csubst0 i u c c0)).(\lambda (e: 
+C).(\lambda (H4: (getl i c (CHead e (Bind Abbr) u))).(or_ind (pr0 t4 t3) (ex2 
+T (\lambda (w2: T).(pr0 t4 w2)) (\lambda (w2: T).(subst0 i u t3 w2))) (pc3 c0 
+t4 t3) (\lambda (H5: (pr0 t4 t3)).(pc3_pr2_r c0 t4 t3 (pr2_free c0 t4 t3 
+H5))) (\lambda (H5: (ex2 T (\lambda (w2: T).(pr0 t4 w2)) (\lambda (w2: 
+T).(subst0 i u t3 w2)))).(ex2_ind T (\lambda (w2: T).(pr0 t4 w2)) (\lambda 
+(w2: T).(subst0 i u t3 w2)) (pc3 c0 t4 t3) (\lambda (x: T).(\lambda (H6: (pr0 
+t4 x)).(\lambda (H7: (subst0 i u t3 x)).(pc3_pr2_u c0 x t4 (pr2_free c0 t4 x 
+H6) t3 (pc3_pr2_x c0 x t3 (pr2_delta c0 e u i (csubst0_getl_ge i i (le_n i) c 
+c0 u H3 (CHead e (Bind Abbr) u) H4) t3 t3 (pr0_refl t3) x H7)))))) H5)) 
+(pr0_subst0 t2 t3 H0 u t4 i H2 u (pr0_refl u))))))))) c2 t0 H1)))))))))) 
+(\lambda (c: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: nat).(\lambda 
+(H0: (getl i c (CHead d (Bind Abbr) u))).(\lambda (t2: T).(\lambda (t3: 
+T).(\lambda (H1: (pr0 t2 t3)).(\lambda (t0: T).(\lambda (H2: (subst0 i u t3 
+t0)).(\lambda (i0: nat).(\lambda (u0: T).(\lambda (c2: C).(\lambda (t4: 
+T).(\lambda (H3: (fsubst0 i0 u0 c t2 c2 t4)).(fsubst0_ind i0 u0 c t2 (\lambda 
+(c0: C).(\lambda (t5: T).(\forall (e: C).((getl i0 c (CHead e (Bind Abbr) 
+u0)) \to (pc3 c0 t5 t0))))) (\lambda (t5: T).(\lambda (H4: (subst0 i0 u0 t2 
+t5)).(\lambda (e: C).(\lambda (H5: (getl i0 c (CHead e (Bind Abbr) 
+u0))).(pc3_t t2 c t5 (pc3_s c t5 t2 (pc3_pr2_r c t2 t5 (pr2_delta c e u0 i0 
+H5 t2 t2 (pr0_refl t2) t5 H4))) t0 (pc3_pr2_r c t2 t0 (pr2_delta c d u i H0 
+t2 t3 H1 t0 H2))))))) (\lambda (c0: C).(\lambda (H4: (csubst0 i0 u0 c 
+c0)).(\lambda (e: C).(\lambda (H5: (getl i0 c (CHead e (Bind Abbr) 
+u0))).(lt_le_e i i0 (pc3 c0 t2 t0) (\lambda (H6: (lt i i0)).(let H7 \def 
+(csubst0_getl_lt i0 i H6 c c0 u0 H4 (CHead d (Bind Abbr) u) H0) in (or4_ind 
+(getl i c0 (CHead d (Bind Abbr) u)) (ex3_4 B C T T (\lambda (b: B).(\lambda 
+(e0: C).(\lambda (u1: T).(\lambda (_: T).(eq C (CHead d (Bind Abbr) u) (CHead 
+e0 (Bind b) u1)))))) (\lambda (b: B).(\lambda (e0: C).(\lambda (_: 
+T).(\lambda (w: T).(getl i c0 (CHead e0 (Bind b) w)))))) (\lambda (_: 
+B).(\lambda (_: C).(\lambda (u1: T).(\lambda (w: T).(subst0 (minus i0 (S i)) 
+u0 u1 w)))))) (ex3_4 B C C T (\lambda (b: B).(\lambda (e1: C).(\lambda (_: 
+C).(\lambda (u1: T).(eq C (CHead d (Bind Abbr) u) (CHead e1 (Bind b) u1)))))) 
+(\lambda (b: B).(\lambda (_: C).(\lambda (e2: C).(\lambda (u1: T).(getl i c0 
+(CHead e2 (Bind b) u1)))))) (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: 
+C).(\lambda (_: T).(csubst0 (minus i0 (S i)) u0 e1 e2)))))) (ex4_5 B C C T T 
+(\lambda (b: B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda 
+(_: T).(eq C (CHead d (Bind Abbr) u) (CHead e1 (Bind b) u1))))))) (\lambda 
+(b: B).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (w: T).(getl 
+i c0 (CHead e2 (Bind b) w))))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: 
+C).(\lambda (u1: T).(\lambda (w: T).(subst0 (minus i0 (S i)) u0 u1 w)))))) 
+(\lambda (_: B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
+(_: T).(csubst0 (minus i0 (S i)) u0 e1 e2))))))) (pc3 c0 t2 t0) (\lambda (H8: 
+(getl i c0 (CHead d (Bind Abbr) u))).(pc3_pr2_r c0 t2 t0 (pr2_delta c0 d u i 
+H8 t2 t3 H1 t0 H2))) (\lambda (H8: (ex3_4 B C T T (\lambda (b: B).(\lambda 
+(e0: C).(\lambda (u1: T).(\lambda (_: T).(eq C (CHead d (Bind Abbr) u) (CHead 
+e0 (Bind b) u1)))))) (\lambda (b: B).(\lambda (e0: C).(\lambda (_: 
+T).(\lambda (w: T).(getl i c0 (CHead e0 (Bind b) w)))))) (\lambda (_: 
+B).(\lambda (_: C).(\lambda (u1: T).(\lambda (w: T).(subst0 (minus i0 (S i)) 
+u0 u1 w))))))).(ex3_4_ind B C T T (\lambda (b: B).(\lambda (e0: C).(\lambda 
+(u1: T).(\lambda (_: T).(eq C (CHead d (Bind Abbr) u) (CHead e0 (Bind b) 
+u1)))))) (\lambda (b: B).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: 
+T).(getl i c0 (CHead e0 (Bind b) w)))))) (\lambda (_: B).(\lambda (_: 
+C).(\lambda (u1: T).(\lambda (w: T).(subst0 (minus i0 (S i)) u0 u1 w))))) 
+(pc3 c0 t2 t0) (\lambda (x0: B).(\lambda (x1: C).(\lambda (x2: T).(\lambda 
+(x3: T).(\lambda (H9: (eq C (CHead d (Bind Abbr) u) (CHead x1 (Bind x0) 
+x2))).(\lambda (H10: (getl i c0 (CHead x1 (Bind x0) x3))).(\lambda (H11: 
+(subst0 (minus i0 (S i)) u0 x2 x3)).(let H12 \def (f_equal C C (\lambda (e0: 
+C).(match e0 with [(CSort _) \Rightarrow d | (CHead c3 _ _) \Rightarrow c3])) 
+(CHead d (Bind Abbr) u) (CHead x1 (Bind x0) x2) H9) in ((let H13 \def 
+(f_equal C B (\lambda (e0: C).(match e0 with [(CSort _) \Rightarrow Abbr | 
+(CHead _ k _) \Rightarrow (match k with [(Bind b) \Rightarrow b | (Flat _) 
+\Rightarrow Abbr])])) (CHead d (Bind Abbr) u) (CHead x1 (Bind x0) x2) H9) in 
+((let H14 \def (f_equal C T (\lambda (e0: C).(match e0 with [(CSort _) 
+\Rightarrow u | (CHead _ _ t5) \Rightarrow t5])) (CHead d (Bind Abbr) u) 
+(CHead x1 (Bind x0) x2) H9) in (\lambda (H15: (eq B Abbr x0)).(\lambda (H16: 
+(eq C d x1)).(let H17 \def (eq_ind_r T x2 (\lambda (t5: T).(subst0 (minus i0 
+(S i)) u0 t5 x3)) H11 u H14) in (let H18 \def (eq_ind_r C x1 (\lambda (c3: 
+C).(getl i c0 (CHead c3 (Bind x0) x3))) H10 d H16) in (let H19 \def (eq_ind_r 
+B x0 (\lambda (b: B).(getl i c0 (CHead d (Bind b) x3))) H18 Abbr H15) in 
+(ex2_ind T (\lambda (t5: T).(subst0 i x3 t3 t5)) (\lambda (t5: T).(subst0 (S 
+(plus (minus i0 (S i)) i)) u0 t0 t5)) (pc3 c0 t2 t0) (\lambda (x: T).(\lambda 
+(H20: (subst0 i x3 t3 x)).(\lambda (H21: (subst0 (S (plus (minus i0 (S i)) 
+i)) u0 t0 x)).(let H22 \def (eq_ind_r nat (S (plus (minus i0 (S i)) i)) 
+(\lambda (n: nat).(subst0 n u0 t0 x)) H21 i0 (lt_plus_minus_r i i0 H6)) in 
+(pc3_pr2_u c0 x t2 (pr2_delta c0 d x3 i H19 t2 t3 H1 x H20) t0 (pc3_pr2_x c0 
+x t0 (pr2_delta c0 e u0 i0 (csubst0_getl_ge i0 i0 (le_n i0) c c0 u0 H4 (CHead 
+e (Bind Abbr) u0) H5) t0 t0 (pr0_refl t0) x H22))))))) (subst0_subst0_back t3 
+t0 u i H2 x3 u0 (minus i0 (S i)) H17)))))))) H13)) H12))))))))) H8)) (\lambda 
+(H8: (ex3_4 B C C T (\lambda (b: B).(\lambda (e1: C).(\lambda (_: C).(\lambda 
+(u1: T).(eq C (CHead d (Bind Abbr) u) (CHead e1 (Bind b) u1)))))) (\lambda 
+(b: B).(\lambda (_: C).(\lambda (e2: C).(\lambda (u1: T).(getl i c0 (CHead e2 
+(Bind b) u1)))))) (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: C).(\lambda 
+(_: T).(csubst0 (minus i0 (S i)) u0 e1 e2))))))).(ex3_4_ind B C C T (\lambda 
+(b: B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(eq C (CHead d (Bind 
+Abbr) u) (CHead e1 (Bind b) u1)))))) (\lambda (b: B).(\lambda (_: C).(\lambda 
+(e2: C).(\lambda (u1: T).(getl i c0 (CHead e2 (Bind b) u1)))))) (\lambda (_: 
+B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 (minus i0 (S 
+i)) u0 e1 e2))))) (pc3 c0 t2 t0) (\lambda (x0: B).(\lambda (x1: C).(\lambda 
+(x2: C).(\lambda (x3: T).(\lambda (H9: (eq C (CHead d (Bind Abbr) u) (CHead 
+x1 (Bind x0) x3))).(\lambda (H10: (getl i c0 (CHead x2 (Bind x0) 
+x3))).(\lambda (H11: (csubst0 (minus i0 (S i)) u0 x1 x2)).(let H12 \def 
+(f_equal C C (\lambda (e0: C).(match e0 with [(CSort _) \Rightarrow d | 
+(CHead c3 _ _) \Rightarrow c3])) (CHead d (Bind Abbr) u) (CHead x1 (Bind x0) 
+x3) H9) in ((let H13 \def (f_equal C B (\lambda (e0: C).(match e0 with 
 [(CSort _) \Rightarrow Abbr | (CHead _ k _) \Rightarrow (match k with [(Bind 
-b) \Rightarrow b | (Flat _) \Rightarrow Abbr])])) in (let TMP_187 \def (Bind 
-Abbr) in (let TMP_188 \def (CHead d TMP_187 u) in (let TMP_189 \def (Bind x0) 
-in (let TMP_190 \def (CHead x1 TMP_189 x3) in (let H13 \def (f_equal C B 
-TMP_186 TMP_188 TMP_190 H9) in (let TMP_191 \def (\lambda (e0: C).(match e0 
-with [(CSort _) \Rightarrow u | (CHead _ _ t5) \Rightarrow t5])) in (let 
-TMP_192 \def (Bind Abbr) in (let TMP_193 \def (CHead d TMP_192 u) in (let 
-TMP_194 \def (Bind x0) in (let TMP_195 \def (CHead x1 TMP_194 x3) in (let H14 
-\def (f_equal C T TMP_191 TMP_193 TMP_195 H9) in (let TMP_206 \def (\lambda 
-(H15: (eq B Abbr x0)).(\lambda (H16: (eq C d x1)).(let TMP_198 \def (\lambda 
-(t5: T).(let TMP_196 \def (Bind x0) in (let TMP_197 \def (CHead x2 TMP_196 
-t5) in (getl i c0 TMP_197)))) in (let H17 \def (eq_ind_r T x3 TMP_198 H10 u 
-H14) in (let TMP_201 \def (\lambda (c3: C).(let TMP_199 \def (S i) in (let 
-TMP_200 \def (minus i0 TMP_199) in (csubst0 TMP_200 u0 c3 x2)))) in (let H18 
-\def (eq_ind_r C x1 TMP_201 H11 d H16) in (let TMP_204 \def (\lambda (b: 
-B).(let TMP_202 \def (Bind b) in (let TMP_203 \def (CHead x2 TMP_202 u) in 
-(getl i c0 TMP_203)))) in (let H19 \def (eq_ind_r B x0 TMP_204 H17 Abbr H15) 
-in (let TMP_205 \def (pr2_delta c0 x2 u i H19 t2 t3 H1 t0 H2) in (pc3_pr2_r 
-c0 t2 t0 TMP_205)))))))))) in (let TMP_207 \def (TMP_206 H13) in (TMP_207 
-H12)))))))))))))))))))))))))))) in (ex3_4_ind B C C T TMP_173 TMP_176 TMP_179 
-TMP_180 TMP_208 H8))))))) in (let TMP_277 \def (\lambda (H8: (ex4_5 B C C T T 
+b) \Rightarrow b | (Flat _) \Rightarrow Abbr])])) (CHead d (Bind Abbr) u) 
+(CHead x1 (Bind x0) x3) H9) in ((let H14 \def (f_equal C T (\lambda (e0: 
+C).(match e0 with [(CSort _) \Rightarrow u | (CHead _ _ t5) \Rightarrow t5])) 
+(CHead d (Bind Abbr) u) (CHead x1 (Bind x0) x3) H9) in (\lambda (H15: (eq B 
+Abbr x0)).(\lambda (H16: (eq C d x1)).(let H17 \def (eq_ind_r T x3 (\lambda 
+(t5: T).(getl i c0 (CHead x2 (Bind x0) t5))) H10 u H14) in (let H18 \def 
+(eq_ind_r C x1 (\lambda (c3: C).(csubst0 (minus i0 (S i)) u0 c3 x2)) H11 d 
+H16) in (let H19 \def (eq_ind_r B x0 (\lambda (b: B).(getl i c0 (CHead x2 
+(Bind b) u))) H17 Abbr H15) in (pc3_pr2_r c0 t2 t0 (pr2_delta c0 x2 u i H19 
+t2 t3 H1 t0 H2)))))))) H13)) H12))))))))) H8)) (\lambda (H8: (ex4_5 B C C T T 
 (\lambda (b: B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda 
 (_: T).(eq C (CHead d (Bind Abbr) u) (CHead e1 (Bind b) u1))))))) (\lambda 
 (b: B).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (w: T).(getl 
 i c0 (CHead e2 (Bind b) w))))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: 
 C).(\lambda (u1: T).(\lambda (w: T).(subst0 (minus i0 (S i)) u0 u1 w)))))) 
 (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
-(_: T).(csubst0 (minus i0 (S i)) u0 e1 e2)))))))).(let TMP_214 \def (\lambda 
-(b: B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(let 
-TMP_210 \def (Bind Abbr) in (let TMP_211 \def (CHead d TMP_210 u) in (let 
-TMP_212 \def (Bind b) in (let TMP_213 \def (CHead e1 TMP_212 u1) in (eq C 
-TMP_211 TMP_213)))))))))) in (let TMP_217 \def (\lambda (b: B).(\lambda (_: 
-C).(\lambda (e2: C).(\lambda (_: T).(\lambda (w: T).(let TMP_215 \def (Bind 
-b) in (let TMP_216 \def (CHead e2 TMP_215 w) in (getl i c0 TMP_216)))))))) in 
-(let TMP_220 \def (\lambda (_: B).(\lambda (_: C).(\lambda (_: C).(\lambda 
-(u1: T).(\lambda (w: T).(let TMP_218 \def (S i) in (let TMP_219 \def (minus 
-i0 TMP_218) in (subst0 TMP_219 u0 u1 w)))))))) in (let TMP_223 \def (\lambda 
-(_: B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(let 
-TMP_221 \def (S i) in (let TMP_222 \def (minus i0 TMP_221) in (csubst0 
-TMP_222 u0 e1 e2)))))))) in (let TMP_224 \def (pc3 c0 t2 t0) in (let TMP_276 
-\def (\lambda (x0: B).(\lambda (x1: C).(\lambda (x2: C).(\lambda (x3: 
-T).(\lambda (x4: T).(\lambda (H9: (eq C (CHead d (Bind Abbr) u) (CHead x1 
-(Bind x0) x3))).(\lambda (H10: (getl i c0 (CHead x2 (Bind x0) x4))).(\lambda 
-(H11: (subst0 (minus i0 (S i)) u0 x3 x4)).(\lambda (H12: (csubst0 (minus i0 
-(S i)) u0 x1 x2)).(let TMP_225 \def (\lambda (e0: C).(match e0 with [(CSort 
-_) \Rightarrow d | (CHead c3 _ _) \Rightarrow c3])) in (let TMP_226 \def 
-(Bind Abbr) in (let TMP_227 \def (CHead d TMP_226 u) in (let TMP_228 \def 
-(Bind x0) in (let TMP_229 \def (CHead x1 TMP_228 x3) in (let H13 \def 
-(f_equal C C TMP_225 TMP_227 TMP_229 H9) in (let TMP_230 \def (\lambda (e0: 
+(_: T).(csubst0 (minus i0 (S i)) u0 e1 e2)))))))).(ex4_5_ind B C C T T 
+(\lambda (b: B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda 
+(_: T).(eq C (CHead d (Bind Abbr) u) (CHead e1 (Bind b) u1))))))) (\lambda 
+(b: B).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (w: T).(getl 
+i c0 (CHead e2 (Bind b) w))))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: 
+C).(\lambda (u1: T).(\lambda (w: T).(subst0 (minus i0 (S i)) u0 u1 w)))))) 
+(\lambda (_: B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
+(_: T).(csubst0 (minus i0 (S i)) u0 e1 e2)))))) (pc3 c0 t2 t0) (\lambda (x0: 
+B).(\lambda (x1: C).(\lambda (x2: C).(\lambda (x3: T).(\lambda (x4: 
+T).(\lambda (H9: (eq C (CHead d (Bind Abbr) u) (CHead x1 (Bind x0) 
+x3))).(\lambda (H10: (getl i c0 (CHead x2 (Bind x0) x4))).(\lambda (H11: 
+(subst0 (minus i0 (S i)) u0 x3 x4)).(\lambda (H12: (csubst0 (minus i0 (S i)) 
+u0 x1 x2)).(let H13 \def (f_equal C C (\lambda (e0: C).(match e0 with [(CSort 
+_) \Rightarrow d | (CHead c3 _ _) \Rightarrow c3])) (CHead d (Bind Abbr) u) 
+(CHead x1 (Bind x0) x3) H9) in ((let H14 \def (f_equal C B (\lambda (e0: 
 C).(match e0 with [(CSort _) \Rightarrow Abbr | (CHead _ k _) \Rightarrow 
-(match k with [(Bind b) \Rightarrow b | (Flat _) \Rightarrow Abbr])])) in 
-(let TMP_231 \def (Bind Abbr) in (let TMP_232 \def (CHead d TMP_231 u) in 
-(let TMP_233 \def (Bind x0) in (let TMP_234 \def (CHead x1 TMP_233 x3) in 
-(let H14 \def (f_equal C B TMP_230 TMP_232 TMP_234 H9) in (let TMP_235 \def 
+(match k with [(Bind b) \Rightarrow b | (Flat _) \Rightarrow Abbr])])) (CHead 
+d (Bind Abbr) u) (CHead x1 (Bind x0) x3) H9) in ((let H15 \def (f_equal C T 
 (\lambda (e0: C).(match e0 with [(CSort _) \Rightarrow u | (CHead _ _ t5) 
-\Rightarrow t5])) in (let TMP_236 \def (Bind Abbr) in (let TMP_237 \def 
-(CHead d TMP_236 u) in (let TMP_238 \def (Bind x0) in (let TMP_239 \def 
-(CHead x1 TMP_238 x3) in (let H15 \def (f_equal C T TMP_235 TMP_237 TMP_239 
-H9) in (let TMP_274 \def (\lambda (H16: (eq B Abbr x0)).(\lambda (H17: (eq C 
-d x1)).(let TMP_242 \def (\lambda (t5: T).(let TMP_240 \def (S i) in (let 
-TMP_241 \def (minus i0 TMP_240) in (subst0 TMP_241 u0 t5 x4)))) in (let H18 
-\def (eq_ind_r T x3 TMP_242 H11 u H15) in (let TMP_245 \def (\lambda (c3: 
-C).(let TMP_243 \def (S i) in (let TMP_244 \def (minus i0 TMP_243) in 
-(csubst0 TMP_244 u0 c3 x2)))) in (let H19 \def (eq_ind_r C x1 TMP_245 H12 d 
-H17) in (let TMP_248 \def (\lambda (b: B).(let TMP_246 \def (Bind b) in (let 
-TMP_247 \def (CHead x2 TMP_246 x4) in (getl i c0 TMP_247)))) in (let H20 \def 
-(eq_ind_r B x0 TMP_248 H10 Abbr H16) in (let TMP_249 \def (\lambda (t5: 
-T).(subst0 i x4 t3 t5)) in (let TMP_254 \def (\lambda (t5: T).(let TMP_250 
-\def (S i) in (let TMP_251 \def (minus i0 TMP_250) in (let TMP_252 \def (plus 
-TMP_251 i) in (let TMP_253 \def (S TMP_252) in (subst0 TMP_253 u0 t0 t5)))))) 
-in (let TMP_255 \def (pc3 c0 t2 t0) in (let TMP_270 \def (\lambda (x: 
-T).(\lambda (H21: (subst0 i x4 t3 x)).(\lambda (H22: (subst0 (S (plus (minus 
-i0 (S i)) i)) u0 t0 x)).(let TMP_256 \def (S i) in (let TMP_257 \def (minus 
-i0 TMP_256) in (let TMP_258 \def (plus TMP_257 i) in (let TMP_259 \def (S 
-TMP_258) in (let TMP_260 \def (\lambda (n: nat).(subst0 n u0 t0 x)) in (let 
-TMP_261 \def (lt_plus_minus_r i i0 H6) in (let H23 \def (eq_ind_r nat TMP_259 
-TMP_260 H22 i0 TMP_261) in (let TMP_262 \def (pr2_delta c0 x2 x4 i H20 t2 t3 
-H1 x H21) in (let TMP_263 \def (le_n i0) in (let TMP_264 \def (Bind Abbr) in 
-(let TMP_265 \def (CHead e TMP_264 u0) in (let TMP_266 \def (csubst0_getl_ge 
-i0 i0 TMP_263 c c0 u0 H4 TMP_265 H5) in (let TMP_267 \def (pr0_refl t0) in 
-(let TMP_268 \def (pr2_delta c0 e u0 i0 TMP_266 t0 t0 TMP_267 x H23) in (let 
-TMP_269 \def (pc3_pr2_x c0 x t0 TMP_268) in (pc3_pr2_u c0 x t2 TMP_262 t0 
-TMP_269))))))))))))))))))) in (let TMP_271 \def (S i) in (let TMP_272 \def 
-(minus i0 TMP_271) in (let TMP_273 \def (subst0_subst0_back t3 t0 u i H2 x4 
-u0 TMP_272 H18) in (ex2_ind T TMP_249 TMP_254 TMP_255 TMP_270 
-TMP_273)))))))))))))))) in (let TMP_275 \def (TMP_274 H14) in (TMP_275 
-H13)))))))))))))))))))))))))))))) in (ex4_5_ind B C C T T TMP_214 TMP_217 
-TMP_220 TMP_223 TMP_224 TMP_276 H8)))))))) in (or4_ind TMP_61 TMP_73 TMP_85 
-TMP_100 TMP_101 TMP_103 TMP_168 TMP_209 TMP_277 H7)))))))))))))))))))))))))) 
-in (let TMP_283 \def (\lambda (H6: (le i0 i)).(let TMP_279 \def (Bind Abbr) 
-in (let TMP_280 \def (CHead d TMP_279 u) in (let TMP_281 \def 
-(csubst0_getl_ge i0 i H6 c c0 u0 H4 TMP_280 H0) in (let TMP_282 \def 
-(pr2_delta c0 d u i TMP_281 t2 t3 H1 t0 H2) in (pc3_pr2_r c0 t2 t0 
-TMP_282)))))) in (lt_le_e i i0 TMP_56 TMP_278 TMP_283)))))))) in (let TMP_548 
-\def (\lambda (t5: T).(\lambda (H4: (subst0 i0 u0 t2 t5)).(\lambda (c0: 
-C).(\lambda (H5: (csubst0 i0 u0 c c0)).(\lambda (e: C).(\lambda (H6: (getl i0 
-c (CHead e (Bind Abbr) u0))).(let TMP_285 \def (pc3 c0 t5 t0) in (let TMP_535 
-\def (\lambda (H7: (lt i i0)).(let TMP_286 \def (Bind Abbr) in (let TMP_287 
-\def (CHead d TMP_286 u) in (let H8 \def (csubst0_getl_lt i0 i H7 c c0 u0 H5 
-TMP_287 H0) in (let TMP_288 \def (Bind Abbr) in (let TMP_289 \def (CHead d 
-TMP_288 u) in (let TMP_290 \def (getl i c0 TMP_289) in (let TMP_295 \def 
-(\lambda (b: B).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: T).(let 
-TMP_291 \def (Bind Abbr) in (let TMP_292 \def (CHead d TMP_291 u) in (let 
-TMP_293 \def (Bind b) in (let TMP_294 \def (CHead e0 TMP_293 u1) in (eq C 
-TMP_292 TMP_294))))))))) in (let TMP_298 \def (\lambda (b: B).(\lambda (e0: 
-C).(\lambda (_: T).(\lambda (w: T).(let TMP_296 \def (Bind b) in (let TMP_297 
-\def (CHead e0 TMP_296 w) in (getl i c0 TMP_297))))))) in (let TMP_301 \def 
-(\lambda (_: B).(\lambda (_: C).(\lambda (u1: T).(\lambda (w: T).(let TMP_299 
-\def (S i) in (let TMP_300 \def (minus i0 TMP_299) in (subst0 TMP_300 u0 u1 
-w))))))) in (let TMP_302 \def (ex3_4 B C T T TMP_295 TMP_298 TMP_301) in (let 
-TMP_307 \def (\lambda (b: B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: 
-T).(let TMP_303 \def (Bind Abbr) in (let TMP_304 \def (CHead d TMP_303 u) in 
-(let TMP_305 \def (Bind b) in (let TMP_306 \def (CHead e1 TMP_305 u1) in (eq 
-C TMP_304 TMP_306))))))))) in (let TMP_310 \def (\lambda (b: B).(\lambda (_: 
-C).(\lambda (e2: C).(\lambda (u1: T).(let TMP_308 \def (Bind b) in (let 
-TMP_309 \def (CHead e2 TMP_308 u1) in (getl i c0 TMP_309))))))) in (let 
-TMP_313 \def (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: 
-T).(let TMP_311 \def (S i) in (let TMP_312 \def (minus i0 TMP_311) in 
-(csubst0 TMP_312 u0 e1 e2))))))) in (let TMP_314 \def (ex3_4 B C C T TMP_307 
-TMP_310 TMP_313) in (let TMP_319 \def (\lambda (b: B).(\lambda (e1: 
-C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(let TMP_315 \def (Bind 
-Abbr) in (let TMP_316 \def (CHead d TMP_315 u) in (let TMP_317 \def (Bind b) 
-in (let TMP_318 \def (CHead e1 TMP_317 u1) in (eq C TMP_316 TMP_318)))))))))) 
-in (let TMP_322 \def (\lambda (b: B).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (_: T).(\lambda (w: T).(let TMP_320 \def (Bind b) in (let TMP_321 
-\def (CHead e2 TMP_320 w) in (getl i c0 TMP_321)))))))) in (let TMP_325 \def 
-(\lambda (_: B).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (w: 
-T).(let TMP_323 \def (S i) in (let TMP_324 \def (minus i0 TMP_323) in (subst0 
-TMP_324 u0 u1 w)))))))) in (let TMP_328 \def (\lambda (_: B).(\lambda (e1: 
-C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(let TMP_326 \def (S i) 
-in (let TMP_327 \def (minus i0 TMP_326) in (csubst0 TMP_327 u0 e1 e2)))))))) 
-in (let TMP_329 \def (ex4_5 B C C T T TMP_319 TMP_322 TMP_325 TMP_328) in 
-(let TMP_330 \def (pc3 c0 t5 t0) in (let TMP_339 \def (\lambda (H9: (getl i 
-c0 (CHead d (Bind Abbr) u))).(let TMP_331 \def (le_n i0) in (let TMP_332 \def 
-(Bind Abbr) in (let TMP_333 \def (CHead e TMP_332 u0) in (let TMP_334 \def 
-(csubst0_getl_ge i0 i0 TMP_331 c c0 u0 H5 TMP_333 H6) in (let TMP_335 \def 
-(pr0_refl t2) in (let TMP_336 \def (pr2_delta c0 e u0 i0 TMP_334 t2 t2 
-TMP_335 t5 H4) in (let TMP_337 \def (pr2_delta c0 d u i H9 t2 t3 H1 t0 H2) in 
-(let TMP_338 \def (pc3_pr2_r c0 t2 t0 TMP_337) in (pc3_pr2_u2 c0 t2 t5 
-TMP_336 t0 TMP_338)))))))))) in (let TMP_411 \def (\lambda (H9: (ex3_4 B C T 
-T (\lambda (b: B).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: T).(eq C 
+\Rightarrow t5])) (CHead d (Bind Abbr) u) (CHead x1 (Bind x0) x3) H9) in 
+(\lambda (H16: (eq B Abbr x0)).(\lambda (H17: (eq C d x1)).(let H18 \def 
+(eq_ind_r T x3 (\lambda (t5: T).(subst0 (minus i0 (S i)) u0 t5 x4)) H11 u 
+H15) in (let H19 \def (eq_ind_r C x1 (\lambda (c3: C).(csubst0 (minus i0 (S 
+i)) u0 c3 x2)) H12 d H17) in (let H20 \def (eq_ind_r B x0 (\lambda (b: 
+B).(getl i c0 (CHead x2 (Bind b) x4))) H10 Abbr H16) in (ex2_ind T (\lambda 
+(t5: T).(subst0 i x4 t3 t5)) (\lambda (t5: T).(subst0 (S (plus (minus i0 (S 
+i)) i)) u0 t0 t5)) (pc3 c0 t2 t0) (\lambda (x: T).(\lambda (H21: (subst0 i x4 
+t3 x)).(\lambda (H22: (subst0 (S (plus (minus i0 (S i)) i)) u0 t0 x)).(let 
+H23 \def (eq_ind_r nat (S (plus (minus i0 (S i)) i)) (\lambda (n: 
+nat).(subst0 n u0 t0 x)) H22 i0 (lt_plus_minus_r i i0 H6)) in (pc3_pr2_u c0 x 
+t2 (pr2_delta c0 x2 x4 i H20 t2 t3 H1 x H21) t0 (pc3_pr2_x c0 x t0 (pr2_delta 
+c0 e u0 i0 (csubst0_getl_ge i0 i0 (le_n i0) c c0 u0 H4 (CHead e (Bind Abbr) 
+u0) H5) t0 t0 (pr0_refl t0) x H23))))))) (subst0_subst0_back t3 t0 u i H2 x4 
+u0 (minus i0 (S i)) H18)))))))) H14)) H13))))))))))) H8)) H7))) (\lambda (H6: 
+(le i0 i)).(pc3_pr2_r c0 t2 t0 (pr2_delta c0 d u i (csubst0_getl_ge i0 i H6 c 
+c0 u0 H4 (CHead d (Bind Abbr) u) H0) t2 t3 H1 t0 H2)))))))) (\lambda (t5: 
+T).(\lambda (H4: (subst0 i0 u0 t2 t5)).(\lambda (c0: C).(\lambda (H5: 
+(csubst0 i0 u0 c c0)).(\lambda (e: C).(\lambda (H6: (getl i0 c (CHead e (Bind 
+Abbr) u0))).(lt_le_e i i0 (pc3 c0 t5 t0) (\lambda (H7: (lt i i0)).(let H8 
+\def (csubst0_getl_lt i0 i H7 c c0 u0 H5 (CHead d (Bind Abbr) u) H0) in 
+(or4_ind (getl i c0 (CHead d (Bind Abbr) u)) (ex3_4 B C T T (\lambda (b: 
+B).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: T).(eq C (CHead d (Bind 
+Abbr) u) (CHead e0 (Bind b) u1)))))) (\lambda (b: B).(\lambda (e0: 
+C).(\lambda (_: T).(\lambda (w: T).(getl i c0 (CHead e0 (Bind b) w)))))) 
+(\lambda (_: B).(\lambda (_: C).(\lambda (u1: T).(\lambda (w: T).(subst0 
+(minus i0 (S i)) u0 u1 w)))))) (ex3_4 B C C T (\lambda (b: B).(\lambda (e1: 
+C).(\lambda (_: C).(\lambda (u1: T).(eq C (CHead d (Bind Abbr) u) (CHead e1 
+(Bind b) u1)))))) (\lambda (b: B).(\lambda (_: C).(\lambda (e2: C).(\lambda 
+(u1: T).(getl i c0 (CHead e2 (Bind b) u1)))))) (\lambda (_: B).(\lambda (e1: 
+C).(\lambda (e2: C).(\lambda (_: T).(csubst0 (minus i0 (S i)) u0 e1 e2)))))) 
+(ex4_5 B C C T T (\lambda (b: B).(\lambda (e1: C).(\lambda (_: C).(\lambda 
+(u1: T).(\lambda (_: T).(eq C (CHead d (Bind Abbr) u) (CHead e1 (Bind b) 
+u1))))))) (\lambda (b: B).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: 
+T).(\lambda (w: T).(getl i c0 (CHead e2 (Bind b) w))))))) (\lambda (_: 
+B).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (w: T).(subst0 
+(minus i0 (S i)) u0 u1 w)))))) (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: 
+C).(\lambda (_: T).(\lambda (_: T).(csubst0 (minus i0 (S i)) u0 e1 e2))))))) 
+(pc3 c0 t5 t0) (\lambda (H9: (getl i c0 (CHead d (Bind Abbr) u))).(pc3_pr2_u2 
+c0 t2 t5 (pr2_delta c0 e u0 i0 (csubst0_getl_ge i0 i0 (le_n i0) c c0 u0 H5 
+(CHead e (Bind Abbr) u0) H6) t2 t2 (pr0_refl t2) t5 H4) t0 (pc3_pr2_r c0 t2 
+t0 (pr2_delta c0 d u i H9 t2 t3 H1 t0 H2)))) (\lambda (H9: (ex3_4 B C T T 
+(\lambda (b: B).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: T).(eq C 
 (CHead d (Bind Abbr) u) (CHead e0 (Bind b) u1)))))) (\lambda (b: B).(\lambda 
 (e0: C).(\lambda (_: T).(\lambda (w: T).(getl i c0 (CHead e0 (Bind b) w)))))) 
 (\lambda (_: B).(\lambda (_: C).(\lambda (u1: T).(\lambda (w: T).(subst0 
-(minus i0 (S i)) u0 u1 w))))))).(let TMP_344 \def (\lambda (b: B).(\lambda 
-(e0: C).(\lambda (u1: T).(\lambda (_: T).(let TMP_340 \def (Bind Abbr) in 
-(let TMP_341 \def (CHead d TMP_340 u) in (let TMP_342 \def (Bind b) in (let 
-TMP_343 \def (CHead e0 TMP_342 u1) in (eq C TMP_341 TMP_343))))))))) in (let 
-TMP_347 \def (\lambda (b: B).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: 
-T).(let TMP_345 \def (Bind b) in (let TMP_346 \def (CHead e0 TMP_345 w) in 
-(getl i c0 TMP_346))))))) in (let TMP_350 \def (\lambda (_: B).(\lambda (_: 
-C).(\lambda (u1: T).(\lambda (w: T).(let TMP_348 \def (S i) in (let TMP_349 
-\def (minus i0 TMP_348) in (subst0 TMP_349 u0 u1 w))))))) in (let TMP_351 
-\def (pc3 c0 t5 t0) in (let TMP_410 \def (\lambda (x0: B).(\lambda (x1: 
-C).(\lambda (x2: T).(\lambda (x3: T).(\lambda (H10: (eq C (CHead d (Bind 
-Abbr) u) (CHead x1 (Bind x0) x2))).(\lambda (H11: (getl i c0 (CHead x1 (Bind 
-x0) x3))).(\lambda (H12: (subst0 (minus i0 (S i)) u0 x2 x3)).(let TMP_352 
-\def (\lambda (e0: C).(match e0 with [(CSort _) \Rightarrow d | (CHead c3 _ 
-_) \Rightarrow c3])) in (let TMP_353 \def (Bind Abbr) in (let TMP_354 \def 
-(CHead d TMP_353 u) in (let TMP_355 \def (Bind x0) in (let TMP_356 \def 
-(CHead x1 TMP_355 x2) in (let H13 \def (f_equal C C TMP_352 TMP_354 TMP_356 
-H10) in (let TMP_357 \def (\lambda (e0: C).(match e0 with [(CSort _) 
-\Rightarrow Abbr | (CHead _ k _) \Rightarrow (match k with [(Bind b) 
-\Rightarrow b | (Flat _) \Rightarrow Abbr])])) in (let TMP_358 \def (Bind 
-Abbr) in (let TMP_359 \def (CHead d TMP_358 u) in (let TMP_360 \def (Bind x0) 
-in (let TMP_361 \def (CHead x1 TMP_360 x2) in (let H14 \def (f_equal C B 
-TMP_357 TMP_359 TMP_361 H10) in (let TMP_362 \def (\lambda (e0: C).(match e0 
-with [(CSort _) \Rightarrow u | (CHead _ _ t6) \Rightarrow t6])) in (let 
-TMP_363 \def (Bind Abbr) in (let TMP_364 \def (CHead d TMP_363 u) in (let 
-TMP_365 \def (Bind x0) in (let TMP_366 \def (CHead x1 TMP_365 x2) in (let H15 
-\def (f_equal C T TMP_362 TMP_364 TMP_366 H10) in (let TMP_408 \def (\lambda 
-(H16: (eq B Abbr x0)).(\lambda (H17: (eq C d x1)).(let TMP_369 \def (\lambda 
-(t6: T).(let TMP_367 \def (S i) in (let TMP_368 \def (minus i0 TMP_367) in 
-(subst0 TMP_368 u0 t6 x3)))) in (let H18 \def (eq_ind_r T x2 TMP_369 H12 u 
-H15) in (let TMP_372 \def (\lambda (c3: C).(let TMP_370 \def (Bind x0) in 
-(let TMP_371 \def (CHead c3 TMP_370 x3) in (getl i c0 TMP_371)))) in (let H19 
-\def (eq_ind_r C x1 TMP_372 H11 d H17) in (let TMP_375 \def (\lambda (b: 
-B).(let TMP_373 \def (Bind b) in (let TMP_374 \def (CHead d TMP_373 x3) in 
-(getl i c0 TMP_374)))) in (let H20 \def (eq_ind_r B x0 TMP_375 H19 Abbr H16) 
-in (let TMP_376 \def (\lambda (t6: T).(subst0 i x3 t3 t6)) in (let TMP_381 
-\def (\lambda (t6: T).(let TMP_377 \def (S i) in (let TMP_378 \def (minus i0 
-TMP_377) in (let TMP_379 \def (plus TMP_378 i) in (let TMP_380 \def (S 
-TMP_379) in (subst0 TMP_380 u0 t0 t6)))))) in (let TMP_382 \def (pc3 c0 t5 
-t0) in (let TMP_404 \def (\lambda (x: T).(\lambda (H21: (subst0 i x3 t3 
-x)).(\lambda (H22: (subst0 (S (plus (minus i0 (S i)) i)) u0 t0 x)).(let 
-TMP_383 \def (S i) in (let TMP_384 \def (minus i0 TMP_383) in (let TMP_385 
-\def (plus TMP_384 i) in (let TMP_386 \def (S TMP_385) in (let TMP_387 \def 
-(\lambda (n: nat).(subst0 n u0 t0 x)) in (let TMP_388 \def (lt_plus_minus_r i 
-i0 H7) in (let H23 \def (eq_ind_r nat TMP_386 TMP_387 H22 i0 TMP_388) in (let 
-TMP_389 \def (le_n i0) in (let TMP_390 \def (Bind Abbr) in (let TMP_391 \def 
-(CHead e TMP_390 u0) in (let TMP_392 \def (csubst0_getl_ge i0 i0 TMP_389 c c0 
-u0 H5 TMP_391 H6) in (let TMP_393 \def (pr0_refl t2) in (let TMP_394 \def 
-(pr2_delta c0 e u0 i0 TMP_392 t2 t2 TMP_393 t5 H4) in (let TMP_395 \def 
-(pr2_delta c0 d x3 i H20 t2 t3 H1 x H21) in (let TMP_396 \def (le_n i0) in 
-(let TMP_397 \def (Bind Abbr) in (let TMP_398 \def (CHead e TMP_397 u0) in 
-(let TMP_399 \def (csubst0_getl_ge i0 i0 TMP_396 c c0 u0 H5 TMP_398 H6) in 
-(let TMP_400 \def (pr0_refl t0) in (let TMP_401 \def (pr2_delta c0 e u0 i0 
-TMP_399 t0 t0 TMP_400 x H23) in (let TMP_402 \def (pc3_pr2_x c0 x t0 TMP_401) 
-in (let TMP_403 \def (pc3_pr2_u c0 x t2 TMP_395 t0 TMP_402) in (pc3_pr2_u2 c0 
-t2 t5 TMP_394 t0 TMP_403)))))))))))))))))))))))))) in (let TMP_405 \def (S i) 
-in (let TMP_406 \def (minus i0 TMP_405) in (let TMP_407 \def 
-(subst0_subst0_back t3 t0 u i H2 x3 u0 TMP_406 H18) in (ex2_ind T TMP_376 
-TMP_381 TMP_382 TMP_404 TMP_407)))))))))))))))) in (let TMP_409 \def (TMP_408 
-H14) in (TMP_409 H13)))))))))))))))))))))))))))) in (ex3_4_ind B C T T 
-TMP_344 TMP_347 TMP_350 TMP_351 TMP_410 H9))))))) in (let TMP_459 \def 
+(minus i0 (S i)) u0 u1 w))))))).(ex3_4_ind B C T T (\lambda (b: B).(\lambda 
+(e0: C).(\lambda (u1: T).(\lambda (_: T).(eq C (CHead d (Bind Abbr) u) (CHead 
+e0 (Bind b) u1)))))) (\lambda (b: B).(\lambda (e0: C).(\lambda (_: 
+T).(\lambda (w: T).(getl i c0 (CHead e0 (Bind b) w)))))) (\lambda (_: 
+B).(\lambda (_: C).(\lambda (u1: T).(\lambda (w: T).(subst0 (minus i0 (S i)) 
+u0 u1 w))))) (pc3 c0 t5 t0) (\lambda (x0: B).(\lambda (x1: C).(\lambda (x2: 
+T).(\lambda (x3: T).(\lambda (H10: (eq C (CHead d (Bind Abbr) u) (CHead x1 
+(Bind x0) x2))).(\lambda (H11: (getl i c0 (CHead x1 (Bind x0) x3))).(\lambda 
+(H12: (subst0 (minus i0 (S i)) u0 x2 x3)).(let H13 \def (f_equal C C (\lambda 
+(e0: C).(match e0 with [(CSort _) \Rightarrow d | (CHead c3 _ _) \Rightarrow 
+c3])) (CHead d (Bind Abbr) u) (CHead x1 (Bind x0) x2) H10) in ((let H14 \def 
+(f_equal C B (\lambda (e0: C).(match e0 with [(CSort _) \Rightarrow Abbr | 
+(CHead _ k _) \Rightarrow (match k with [(Bind b) \Rightarrow b | (Flat _) 
+\Rightarrow Abbr])])) (CHead d (Bind Abbr) u) (CHead x1 (Bind x0) x2) H10) in 
+((let H15 \def (f_equal C T (\lambda (e0: C).(match e0 with [(CSort _) 
+\Rightarrow u | (CHead _ _ t6) \Rightarrow t6])) (CHead d (Bind Abbr) u) 
+(CHead x1 (Bind x0) x2) H10) in (\lambda (H16: (eq B Abbr x0)).(\lambda (H17: 
+(eq C d x1)).(let H18 \def (eq_ind_r T x2 (\lambda (t6: T).(subst0 (minus i0 
+(S i)) u0 t6 x3)) H12 u H15) in (let H19 \def (eq_ind_r C x1 (\lambda (c3: 
+C).(getl i c0 (CHead c3 (Bind x0) x3))) H11 d H17) in (let H20 \def (eq_ind_r 
+B x0 (\lambda (b: B).(getl i c0 (CHead d (Bind b) x3))) H19 Abbr H16) in 
+(ex2_ind T (\lambda (t6: T).(subst0 i x3 t3 t6)) (\lambda (t6: T).(subst0 (S 
+(plus (minus i0 (S i)) i)) u0 t0 t6)) (pc3 c0 t5 t0) (\lambda (x: T).(\lambda 
+(H21: (subst0 i x3 t3 x)).(\lambda (H22: (subst0 (S (plus (minus i0 (S i)) 
+i)) u0 t0 x)).(let H23 \def (eq_ind_r nat (S (plus (minus i0 (S i)) i)) 
+(\lambda (n: nat).(subst0 n u0 t0 x)) H22 i0 (lt_plus_minus_r i i0 H7)) in 
+(pc3_pr2_u2 c0 t2 t5 (pr2_delta c0 e u0 i0 (csubst0_getl_ge i0 i0 (le_n i0) c 
+c0 u0 H5 (CHead e (Bind Abbr) u0) H6) t2 t2 (pr0_refl t2) t5 H4) t0 
+(pc3_pr2_u c0 x t2 (pr2_delta c0 d x3 i H20 t2 t3 H1 x H21) t0 (pc3_pr2_x c0 
+x t0 (pr2_delta c0 e u0 i0 (csubst0_getl_ge i0 i0 (le_n i0) c c0 u0 H5 (CHead 
+e (Bind Abbr) u0) H6) t0 t0 (pr0_refl t0) x H23)))))))) (subst0_subst0_back 
+t3 t0 u i H2 x3 u0 (minus i0 (S i)) H18)))))))) H14)) H13))))))))) H9)) 
 (\lambda (H9: (ex3_4 B C C T (\lambda (b: B).(\lambda (e1: C).(\lambda (_: 
 C).(\lambda (u1: T).(eq C (CHead d (Bind Abbr) u) (CHead e1 (Bind b) u1)))))) 
 (\lambda (b: B).(\lambda (_: C).(\lambda (e2: C).(\lambda (u1: T).(getl i c0 
 (CHead e2 (Bind b) u1)))))) (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: 
-C).(\lambda (_: T).(csubst0 (minus i0 (S i)) u0 e1 e2))))))).(let TMP_416 
-\def (\lambda (b: B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(let 
-TMP_412 \def (Bind Abbr) in (let TMP_413 \def (CHead d TMP_412 u) in (let 
-TMP_414 \def (Bind b) in (let TMP_415 \def (CHead e1 TMP_414 u1) in (eq C 
-TMP_413 TMP_415))))))))) in (let TMP_419 \def (\lambda (b: B).(\lambda (_: 
-C).(\lambda (e2: C).(\lambda (u1: T).(let TMP_417 \def (Bind b) in (let 
-TMP_418 \def (CHead e2 TMP_417 u1) in (getl i c0 TMP_418))))))) in (let 
-TMP_422 \def (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: 
-T).(let TMP_420 \def (S i) in (let TMP_421 \def (minus i0 TMP_420) in 
-(csubst0 TMP_421 u0 e1 e2))))))) in (let TMP_423 \def (pc3 c0 t5 t0) in (let 
-TMP_458 \def (\lambda (x0: B).(\lambda (x1: C).(\lambda (x2: C).(\lambda (x3: 
-T).(\lambda (H10: (eq C (CHead d (Bind Abbr) u) (CHead x1 (Bind x0) 
-x3))).(\lambda (H11: (getl i c0 (CHead x2 (Bind x0) x3))).(\lambda (H12: 
-(csubst0 (minus i0 (S i)) u0 x1 x2)).(let TMP_424 \def (\lambda (e0: 
-C).(match e0 with [(CSort _) \Rightarrow d | (CHead c3 _ _) \Rightarrow c3])) 
-in (let TMP_425 \def (Bind Abbr) in (let TMP_426 \def (CHead d TMP_425 u) in 
-(let TMP_427 \def (Bind x0) in (let TMP_428 \def (CHead x1 TMP_427 x3) in 
-(let H13 \def (f_equal C C TMP_424 TMP_426 TMP_428 H10) in (let TMP_429 \def 
-(\lambda (e0: C).(match e0 with [(CSort _) \Rightarrow Abbr | (CHead _ k _) 
-\Rightarrow (match k with [(Bind b) \Rightarrow b | (Flat _) \Rightarrow 
-Abbr])])) in (let TMP_430 \def (Bind Abbr) in (let TMP_431 \def (CHead d 
-TMP_430 u) in (let TMP_432 \def (Bind x0) in (let TMP_433 \def (CHead x1 
-TMP_432 x3) in (let H14 \def (f_equal C B TMP_429 TMP_431 TMP_433 H10) in 
-(let TMP_434 \def (\lambda (e0: C).(match e0 with [(CSort _) \Rightarrow u | 
-(CHead _ _ t6) \Rightarrow t6])) in (let TMP_435 \def (Bind Abbr) in (let 
-TMP_436 \def (CHead d TMP_435 u) in (let TMP_437 \def (Bind x0) in (let 
-TMP_438 \def (CHead x1 TMP_437 x3) in (let H15 \def (f_equal C T TMP_434 
-TMP_436 TMP_438 H10) in (let TMP_456 \def (\lambda (H16: (eq B Abbr 
-x0)).(\lambda (H17: (eq C d x1)).(let TMP_441 \def (\lambda (t6: T).(let 
-TMP_439 \def (Bind x0) in (let TMP_440 \def (CHead x2 TMP_439 t6) in (getl i 
-c0 TMP_440)))) in (let H18 \def (eq_ind_r T x3 TMP_441 H11 u H15) in (let 
-TMP_444 \def (\lambda (c3: C).(let TMP_442 \def (S i) in (let TMP_443 \def 
-(minus i0 TMP_442) in (csubst0 TMP_443 u0 c3 x2)))) in (let H19 \def 
-(eq_ind_r C x1 TMP_444 H12 d H17) in (let TMP_447 \def (\lambda (b: B).(let 
-TMP_445 \def (Bind b) in (let TMP_446 \def (CHead x2 TMP_445 u) in (getl i c0 
-TMP_446)))) in (let H20 \def (eq_ind_r B x0 TMP_447 H18 Abbr H16) in (let 
-TMP_448 \def (le_n i0) in (let TMP_449 \def (Bind Abbr) in (let TMP_450 \def 
-(CHead e TMP_449 u0) in (let TMP_451 \def (csubst0_getl_ge i0 i0 TMP_448 c c0 
-u0 H5 TMP_450 H6) in (let TMP_452 \def (pr0_refl t2) in (let TMP_453 \def 
-(pr2_delta c0 e u0 i0 TMP_451 t2 t2 TMP_452 t5 H4) in (let TMP_454 \def 
-(pr2_delta c0 x2 u i H20 t2 t3 H1 t0 H2) in (let TMP_455 \def (pc3_pr2_r c0 
-t2 t0 TMP_454) in (pc3_pr2_u2 c0 t2 t5 TMP_453 t0 TMP_455))))))))))))))))) in 
-(let TMP_457 \def (TMP_456 H14) in (TMP_457 H13)))))))))))))))))))))))))))) 
-in (ex3_4_ind B C C T TMP_416 TMP_419 TMP_422 TMP_423 TMP_458 H9))))))) in 
-(let TMP_534 \def (\lambda (H9: (ex4_5 B C C T T (\lambda (b: B).(\lambda 
-(e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(eq C (CHead d (Bind 
-Abbr) u) (CHead e1 (Bind b) u1))))))) (\lambda (b: B).(\lambda (_: 
-C).(\lambda (e2: C).(\lambda (_: T).(\lambda (w: T).(getl i c0 (CHead e2 
-(Bind b) w))))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: C).(\lambda 
-(u1: T).(\lambda (w: T).(subst0 (minus i0 (S i)) u0 u1 w)))))) (\lambda (_: 
-B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(csubst0 
-(minus i0 (S i)) u0 e1 e2)))))))).(let TMP_464 \def (\lambda (b: B).(\lambda 
-(e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(let TMP_460 \def 
-(Bind Abbr) in (let TMP_461 \def (CHead d TMP_460 u) in (let TMP_462 \def 
-(Bind b) in (let TMP_463 \def (CHead e1 TMP_462 u1) in (eq C TMP_461 
-TMP_463)))))))))) in (let TMP_467 \def (\lambda (b: B).(\lambda (_: 
-C).(\lambda (e2: C).(\lambda (_: T).(\lambda (w: T).(let TMP_465 \def (Bind 
-b) in (let TMP_466 \def (CHead e2 TMP_465 w) in (getl i c0 TMP_466)))))))) in 
-(let TMP_470 \def (\lambda (_: B).(\lambda (_: C).(\lambda (_: C).(\lambda 
-(u1: T).(\lambda (w: T).(let TMP_468 \def (S i) in (let TMP_469 \def (minus 
-i0 TMP_468) in (subst0 TMP_469 u0 u1 w)))))))) in (let TMP_473 \def (\lambda 
-(_: B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(let 
-TMP_471 \def (S i) in (let TMP_472 \def (minus i0 TMP_471) in (csubst0 
-TMP_472 u0 e1 e2)))))))) in (let TMP_474 \def (pc3 c0 t5 t0) in (let TMP_533 
-\def (\lambda (x0: B).(\lambda (x1: C).(\lambda (x2: C).(\lambda (x3: 
-T).(\lambda (x4: T).(\lambda (H10: (eq C (CHead d (Bind Abbr) u) (CHead x1 
-(Bind x0) x3))).(\lambda (H11: (getl i c0 (CHead x2 (Bind x0) x4))).(\lambda 
-(H12: (subst0 (minus i0 (S i)) u0 x3 x4)).(\lambda (H13: (csubst0 (minus i0 
-(S i)) u0 x1 x2)).(let TMP_475 \def (\lambda (e0: C).(match e0 with [(CSort 
-_) \Rightarrow d | (CHead c3 _ _) \Rightarrow c3])) in (let TMP_476 \def 
-(Bind Abbr) in (let TMP_477 \def (CHead d TMP_476 u) in (let TMP_478 \def 
-(Bind x0) in (let TMP_479 \def (CHead x1 TMP_478 x3) in (let H14 \def 
-(f_equal C C TMP_475 TMP_477 TMP_479 H10) in (let TMP_480 \def (\lambda (e0: 
+C).(\lambda (_: T).(csubst0 (minus i0 (S i)) u0 e1 e2))))))).(ex3_4_ind B C C 
+T (\lambda (b: B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(eq C 
+(CHead d (Bind Abbr) u) (CHead e1 (Bind b) u1)))))) (\lambda (b: B).(\lambda 
+(_: C).(\lambda (e2: C).(\lambda (u1: T).(getl i c0 (CHead e2 (Bind b) 
+u1)))))) (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: 
+T).(csubst0 (minus i0 (S i)) u0 e1 e2))))) (pc3 c0 t5 t0) (\lambda (x0: 
+B).(\lambda (x1: C).(\lambda (x2: C).(\lambda (x3: T).(\lambda (H10: (eq C 
+(CHead d (Bind Abbr) u) (CHead x1 (Bind x0) x3))).(\lambda (H11: (getl i c0 
+(CHead x2 (Bind x0) x3))).(\lambda (H12: (csubst0 (minus i0 (S i)) u0 x1 
+x2)).(let H13 \def (f_equal C C (\lambda (e0: C).(match e0 with [(CSort _) 
+\Rightarrow d | (CHead c3 _ _) \Rightarrow c3])) (CHead d (Bind Abbr) u) 
+(CHead x1 (Bind x0) x3) H10) in ((let H14 \def (f_equal C B (\lambda (e0: 
 C).(match e0 with [(CSort _) \Rightarrow Abbr | (CHead _ k _) \Rightarrow 
-(match k with [(Bind b) \Rightarrow b | (Flat _) \Rightarrow Abbr])])) in 
-(let TMP_481 \def (Bind Abbr) in (let TMP_482 \def (CHead d TMP_481 u) in 
-(let TMP_483 \def (Bind x0) in (let TMP_484 \def (CHead x1 TMP_483 x3) in 
-(let H15 \def (f_equal C B TMP_480 TMP_482 TMP_484 H10) in (let TMP_485 \def 
+(match k with [(Bind b) \Rightarrow b | (Flat _) \Rightarrow Abbr])])) (CHead 
+d (Bind Abbr) u) (CHead x1 (Bind x0) x3) H10) in ((let H15 \def (f_equal C T 
 (\lambda (e0: C).(match e0 with [(CSort _) \Rightarrow u | (CHead _ _ t6) 
-\Rightarrow t6])) in (let TMP_486 \def (Bind Abbr) in (let TMP_487 \def 
-(CHead d TMP_486 u) in (let TMP_488 \def (Bind x0) in (let TMP_489 \def 
-(CHead x1 TMP_488 x3) in (let H16 \def (f_equal C T TMP_485 TMP_487 TMP_489 
-H10) in (let TMP_531 \def (\lambda (H17: (eq B Abbr x0)).(\lambda (H18: (eq C 
-d x1)).(let TMP_492 \def (\lambda (t6: T).(let TMP_490 \def (S i) in (let 
-TMP_491 \def (minus i0 TMP_490) in (subst0 TMP_491 u0 t6 x4)))) in (let H19 
-\def (eq_ind_r T x3 TMP_492 H12 u H16) in (let TMP_495 \def (\lambda (c3: 
-C).(let TMP_493 \def (S i) in (let TMP_494 \def (minus i0 TMP_493) in 
-(csubst0 TMP_494 u0 c3 x2)))) in (let H20 \def (eq_ind_r C x1 TMP_495 H13 d 
-H18) in (let TMP_498 \def (\lambda (b: B).(let TMP_496 \def (Bind b) in (let 
-TMP_497 \def (CHead x2 TMP_496 x4) in (getl i c0 TMP_497)))) in (let H21 \def 
-(eq_ind_r B x0 TMP_498 H11 Abbr H17) in (let TMP_499 \def (\lambda (t6: 
-T).(subst0 i x4 t3 t6)) in (let TMP_504 \def (\lambda (t6: T).(let TMP_500 
-\def (S i) in (let TMP_501 \def (minus i0 TMP_500) in (let TMP_502 \def (plus 
-TMP_501 i) in (let TMP_503 \def (S TMP_502) in (subst0 TMP_503 u0 t0 t6)))))) 
-in (let TMP_505 \def (pc3 c0 t5 t0) in (let TMP_527 \def (\lambda (x: 
-T).(\lambda (H22: (subst0 i x4 t3 x)).(\lambda (H23: (subst0 (S (plus (minus 
-i0 (S i)) i)) u0 t0 x)).(let TMP_506 \def (S i) in (let TMP_507 \def (minus 
-i0 TMP_506) in (let TMP_508 \def (plus TMP_507 i) in (let TMP_509 \def (S 
-TMP_508) in (let TMP_510 \def (\lambda (n: nat).(subst0 n u0 t0 x)) in (let 
-TMP_511 \def (lt_plus_minus_r i i0 H7) in (let H24 \def (eq_ind_r nat TMP_509 
-TMP_510 H23 i0 TMP_511) in (let TMP_512 \def (le_n i0) in (let TMP_513 \def 
-(Bind Abbr) in (let TMP_514 \def (CHead e TMP_513 u0) in (let TMP_515 \def 
-(csubst0_getl_ge i0 i0 TMP_512 c c0 u0 H5 TMP_514 H6) in (let TMP_516 \def 
-(pr0_refl t2) in (let TMP_517 \def (pr2_delta c0 e u0 i0 TMP_515 t2 t2 
-TMP_516 t5 H4) in (let TMP_518 \def (pr2_delta c0 x2 x4 i H21 t2 t3 H1 x H22) 
-in (let TMP_519 \def (le_n i0) in (let TMP_520 \def (Bind Abbr) in (let 
-TMP_521 \def (CHead e TMP_520 u0) in (let TMP_522 \def (csubst0_getl_ge i0 i0 
-TMP_519 c c0 u0 H5 TMP_521 H6) in (let TMP_523 \def (pr0_refl t0) in (let 
-TMP_524 \def (pr2_delta c0 e u0 i0 TMP_522 t0 t0 TMP_523 x H24) in (let 
-TMP_525 \def (pc3_pr2_x c0 x t0 TMP_524) in (let TMP_526 \def (pc3_pr2_u c0 x 
-t2 TMP_518 t0 TMP_525) in (pc3_pr2_u2 c0 t2 t5 TMP_517 t0 
-TMP_526)))))))))))))))))))))))))) in (let TMP_528 \def (S i) in (let TMP_529 
-\def (minus i0 TMP_528) in (let TMP_530 \def (subst0_subst0_back t3 t0 u i H2 
-x4 u0 TMP_529 H19) in (ex2_ind T TMP_499 TMP_504 TMP_505 TMP_527 
-TMP_530)))))))))))))))) in (let TMP_532 \def (TMP_531 H15) in (TMP_532 
-H14)))))))))))))))))))))))))))))) in (ex4_5_ind B C C T T TMP_464 TMP_467 
-TMP_470 TMP_473 TMP_474 TMP_533 H9)))))))) in (or4_ind TMP_290 TMP_302 
-TMP_314 TMP_329 TMP_330 TMP_339 TMP_411 TMP_459 TMP_534 
-H8)))))))))))))))))))))))))) in (let TMP_547 \def (\lambda (H7: (le i0 
-i)).(let TMP_536 \def (le_n i0) in (let TMP_537 \def (Bind Abbr) in (let 
-TMP_538 \def (CHead e TMP_537 u0) in (let TMP_539 \def (csubst0_getl_ge i0 i0 
-TMP_536 c c0 u0 H5 TMP_538 H6) in (let TMP_540 \def (pr0_refl t2) in (let 
-TMP_541 \def (pr2_delta c0 e u0 i0 TMP_539 t2 t2 TMP_540 t5 H4) in (let 
-TMP_542 \def (Bind Abbr) in (let TMP_543 \def (CHead d TMP_542 u) in (let 
-TMP_544 \def (csubst0_getl_ge i0 i H7 c c0 u0 H5 TMP_543 H0) in (let TMP_545 
-\def (pr2_delta c0 d u i TMP_544 t2 t3 H1 t0 H2) in (let TMP_546 \def 
-(pc3_pr2_r c0 t2 t0 TMP_545) in (pc3_pr2_u2 c0 t2 t5 TMP_541 t0 
-TMP_546))))))))))))) in (lt_le_e i i0 TMP_285 TMP_535 TMP_547)))))))))) in 
-(fsubst0_ind i0 u0 c t2 TMP_48 TMP_55 TMP_284 TMP_548 c2 t4 
-H3)))))))))))))))))))) in (pr2_ind TMP_1 TMP_47 TMP_549 c1 t1 t H))))))).
+\Rightarrow t6])) (CHead d (Bind Abbr) u) (CHead x1 (Bind x0) x3) H10) in 
+(\lambda (H16: (eq B Abbr x0)).(\lambda (H17: (eq C d x1)).(let H18 \def 
+(eq_ind_r T x3 (\lambda (t6: T).(getl i c0 (CHead x2 (Bind x0) t6))) H11 u 
+H15) in (let H19 \def (eq_ind_r C x1 (\lambda (c3: C).(csubst0 (minus i0 (S 
+i)) u0 c3 x2)) H12 d H17) in (let H20 \def (eq_ind_r B x0 (\lambda (b: 
+B).(getl i c0 (CHead x2 (Bind b) u))) H18 Abbr H16) in (pc3_pr2_u2 c0 t2 t5 
+(pr2_delta c0 e u0 i0 (csubst0_getl_ge i0 i0 (le_n i0) c c0 u0 H5 (CHead e 
+(Bind Abbr) u0) H6) t2 t2 (pr0_refl t2) t5 H4) t0 (pc3_pr2_r c0 t2 t0 
+(pr2_delta c0 x2 u i H20 t2 t3 H1 t0 H2))))))))) H14)) H13))))))))) H9)) 
+(\lambda (H9: (ex4_5 B C C T T (\lambda (b: B).(\lambda (e1: C).(\lambda (_: 
+C).(\lambda (u1: T).(\lambda (_: T).(eq C (CHead d (Bind Abbr) u) (CHead e1 
+(Bind b) u1))))))) (\lambda (b: B).(\lambda (_: C).(\lambda (e2: C).(\lambda 
+(_: T).(\lambda (w: T).(getl i c0 (CHead e2 (Bind b) w))))))) (\lambda (_: 
+B).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (w: T).(subst0 
+(minus i0 (S i)) u0 u1 w)))))) (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: 
+C).(\lambda (_: T).(\lambda (_: T).(csubst0 (minus i0 (S i)) u0 e1 
+e2)))))))).(ex4_5_ind B C C T T (\lambda (b: B).(\lambda (e1: C).(\lambda (_: 
+C).(\lambda (u1: T).(\lambda (_: T).(eq C (CHead d (Bind Abbr) u) (CHead e1 
+(Bind b) u1))))))) (\lambda (b: B).(\lambda (_: C).(\lambda (e2: C).(\lambda 
+(_: T).(\lambda (w: T).(getl i c0 (CHead e2 (Bind b) w))))))) (\lambda (_: 
+B).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (w: T).(subst0 
+(minus i0 (S i)) u0 u1 w)))))) (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: 
+C).(\lambda (_: T).(\lambda (_: T).(csubst0 (minus i0 (S i)) u0 e1 e2)))))) 
+(pc3 c0 t5 t0) (\lambda (x0: B).(\lambda (x1: C).(\lambda (x2: C).(\lambda 
+(x3: T).(\lambda (x4: T).(\lambda (H10: (eq C (CHead d (Bind Abbr) u) (CHead 
+x1 (Bind x0) x3))).(\lambda (H11: (getl i c0 (CHead x2 (Bind x0) 
+x4))).(\lambda (H12: (subst0 (minus i0 (S i)) u0 x3 x4)).(\lambda (H13: 
+(csubst0 (minus i0 (S i)) u0 x1 x2)).(let H14 \def (f_equal C C (\lambda (e0: 
+C).(match e0 with [(CSort _) \Rightarrow d | (CHead c3 _ _) \Rightarrow c3])) 
+(CHead d (Bind Abbr) u) (CHead x1 (Bind x0) x3) H10) in ((let H15 \def 
+(f_equal C B (\lambda (e0: C).(match e0 with [(CSort _) \Rightarrow Abbr | 
+(CHead _ k _) \Rightarrow (match k with [(Bind b) \Rightarrow b | (Flat _) 
+\Rightarrow Abbr])])) (CHead d (Bind Abbr) u) (CHead x1 (Bind x0) x3) H10) in 
+((let H16 \def (f_equal C T (\lambda (e0: C).(match e0 with [(CSort _) 
+\Rightarrow u | (CHead _ _ t6) \Rightarrow t6])) (CHead d (Bind Abbr) u) 
+(CHead x1 (Bind x0) x3) H10) in (\lambda (H17: (eq B Abbr x0)).(\lambda (H18: 
+(eq C d x1)).(let H19 \def (eq_ind_r T x3 (\lambda (t6: T).(subst0 (minus i0 
+(S i)) u0 t6 x4)) H12 u H16) in (let H20 \def (eq_ind_r C x1 (\lambda (c3: 
+C).(csubst0 (minus i0 (S i)) u0 c3 x2)) H13 d H18) in (let H21 \def (eq_ind_r 
+B x0 (\lambda (b: B).(getl i c0 (CHead x2 (Bind b) x4))) H11 Abbr H17) in 
+(ex2_ind T (\lambda (t6: T).(subst0 i x4 t3 t6)) (\lambda (t6: T).(subst0 (S 
+(plus (minus i0 (S i)) i)) u0 t0 t6)) (pc3 c0 t5 t0) (\lambda (x: T).(\lambda 
+(H22: (subst0 i x4 t3 x)).(\lambda (H23: (subst0 (S (plus (minus i0 (S i)) 
+i)) u0 t0 x)).(let H24 \def (eq_ind_r nat (S (plus (minus i0 (S i)) i)) 
+(\lambda (n: nat).(subst0 n u0 t0 x)) H23 i0 (lt_plus_minus_r i i0 H7)) in 
+(pc3_pr2_u2 c0 t2 t5 (pr2_delta c0 e u0 i0 (csubst0_getl_ge i0 i0 (le_n i0) c 
+c0 u0 H5 (CHead e (Bind Abbr) u0) H6) t2 t2 (pr0_refl t2) t5 H4) t0 
+(pc3_pr2_u c0 x t2 (pr2_delta c0 x2 x4 i H21 t2 t3 H1 x H22) t0 (pc3_pr2_x c0 
+x t0 (pr2_delta c0 e u0 i0 (csubst0_getl_ge i0 i0 (le_n i0) c c0 u0 H5 (CHead 
+e (Bind Abbr) u0) H6) t0 t0 (pr0_refl t0) x H24)))))))) (subst0_subst0_back 
+t3 t0 u i H2 x4 u0 (minus i0 (S i)) H19)))))))) H15)) H14))))))))))) H9)) 
+H8))) (\lambda (H7: (le i0 i)).(pc3_pr2_u2 c0 t2 t5 (pr2_delta c0 e u0 i0 
+(csubst0_getl_ge i0 i0 (le_n i0) c c0 u0 H5 (CHead e (Bind Abbr) u0) H6) t2 
+t2 (pr0_refl t2) t5 H4) t0 (pc3_pr2_r c0 t2 t0 (pr2_delta c0 d u i 
+(csubst0_getl_ge i0 i H7 c c0 u0 H5 (CHead d (Bind Abbr) u) H0) t2 t3 H1 t0 
+H2))))))))))) c2 t4 H3)))))))))))))))) c1 t1 t H)))).
 
 theorem pc3_pr2_fsubst0_back:
  \forall (c1: C).(\forall (t: T).(\forall (t1: T).((pr2 c1 t t1) \to (\forall 
@@ -558,510 +339,299 @@ t1 c2 t2) \to (\forall (e: C).((getl i c1 (CHead e (Bind Abbr) u)) \to (pc3
 c2 t t2)))))))))))
 \def
  \lambda (c1: C).(\lambda (t: T).(\lambda (t1: T).(\lambda (H: (pr2 c1 t 
-t1)).(let TMP_1 \def (\lambda (c: C).(\lambda (t0: T).(\lambda (t2: 
-T).(\forall (i: nat).(\forall (u: T).(\forall (c2: C).(\forall (t3: 
-T).((fsubst0 i u c t2 c2 t3) \to (\forall (e: C).((getl i c (CHead e (Bind 
-Abbr) u)) \to (pc3 c2 t0 t3))))))))))) in (let TMP_19 \def (\lambda (c: 
-C).(\lambda (t2: T).(\lambda (t3: T).(\lambda (H0: (pr0 t2 t3)).(\lambda (i: 
-nat).(\lambda (u: T).(\lambda (c2: C).(\lambda (t0: T).(\lambda (H1: (fsubst0 
-i u c t3 c2 t0)).(let TMP_2 \def (\lambda (c0: C).(\lambda (t4: T).(\forall 
-(e: C).((getl i c (CHead e (Bind Abbr) u)) \to (pc3 c0 t2 t4))))) in (let 
-TMP_7 \def (\lambda (t4: T).(\lambda (H2: (subst0 i u t3 t4)).(\lambda (e: 
-C).(\lambda (H3: (getl i c (CHead e (Bind Abbr) u))).(let TMP_3 \def 
-(pr2_free c t2 t3 H0) in (let TMP_4 \def (pr0_refl t3) in (let TMP_5 \def 
-(pr2_delta c e u i H3 t3 t3 TMP_4 t4 H2) in (let TMP_6 \def (pc3_pr2_r c t3 
-t4 TMP_5) in (pc3_pr2_u c t3 t2 TMP_3 t4 TMP_6))))))))) in (let TMP_9 \def 
-(\lambda (c0: C).(\lambda (_: (csubst0 i u c c0)).(\lambda (e: C).(\lambda 
-(_: (getl i c (CHead e (Bind Abbr) u))).(let TMP_8 \def (pr2_free c0 t2 t3 
-H0) in (pc3_pr2_r c0 t2 t3 TMP_8)))))) in (let TMP_18 \def (\lambda (t4: 
-T).(\lambda (H2: (subst0 i u t3 t4)).(\lambda (c0: C).(\lambda (H3: (csubst0 
-i u c c0)).(\lambda (e: C).(\lambda (H4: (getl i c (CHead e (Bind Abbr) 
-u))).(let TMP_10 \def (pr2_free c0 t2 t3 H0) in (let TMP_11 \def (le_n i) in 
-(let TMP_12 \def (Bind Abbr) in (let TMP_13 \def (CHead e TMP_12 u) in (let 
-TMP_14 \def (csubst0_getl_ge i i TMP_11 c c0 u H3 TMP_13 H4) in (let TMP_15 
-\def (pr0_refl t3) in (let TMP_16 \def (pr2_delta c0 e u i TMP_14 t3 t3 
-TMP_15 t4 H2) in (let TMP_17 \def (pc3_pr2_r c0 t3 t4 TMP_16) in (pc3_pr2_u 
-c0 t3 t2 TMP_10 t4 TMP_17))))))))))))))) in (fsubst0_ind i u c t3 TMP_2 TMP_7 
-TMP_9 TMP_18 c2 t0 H1)))))))))))))) in (let TMP_529 \def (\lambda (c: 
-C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: nat).(\lambda (H0: (getl i c 
-(CHead d (Bind Abbr) u))).(\lambda (t2: T).(\lambda (t3: T).(\lambda (H1: 
-(pr0 t2 t3)).(\lambda (t0: T).(\lambda (H2: (subst0 i u t3 t0)).(\lambda (i0: 
-nat).(\lambda (u0: T).(\lambda (c2: C).(\lambda (t4: T).(\lambda (H3: 
-(fsubst0 i0 u0 c t0 c2 t4)).(let TMP_20 \def (\lambda (c0: C).(\lambda (t5: 
-T).(\forall (e: C).((getl i0 c (CHead e (Bind Abbr) u0)) \to (pc3 c0 t2 
-t5))))) in (let TMP_31 \def (\lambda (t5: T).(\lambda (H4: (subst0 i0 u0 t0 
-t5)).(\lambda (e: C).(\lambda (H5: (getl i0 c (CHead e (Bind Abbr) u0))).(let 
-TMP_21 \def (pr2_free c t2 t3 H1) in (let TMP_22 \def (pr3_pr2 c t2 t3 
-TMP_21) in (let TMP_23 \def (pc3_pr3_r c t2 t3 TMP_22) in (let TMP_24 \def 
-(pr0_refl t3) in (let TMP_25 \def (pr2_delta c d u i H0 t3 t3 TMP_24 t0 H2) 
-in (let TMP_26 \def (pr0_refl t0) in (let TMP_27 \def (pr2_delta c e u0 i0 H5 
-t0 t0 TMP_26 t5 H4) in (let TMP_28 \def (pr3_pr2 c t0 t5 TMP_27) in (let 
-TMP_29 \def (pr3_sing c t0 t3 TMP_25 t5 TMP_28) in (let TMP_30 \def 
-(pc3_pr3_r c t3 t5 TMP_29) in (pc3_t t3 c t2 TMP_23 t5 TMP_30))))))))))))))) 
-in (let TMP_260 \def (\lambda (c0: C).(\lambda (H4: (csubst0 i0 u0 c 
-c0)).(\lambda (e: C).(\lambda (H5: (getl i0 c (CHead e (Bind Abbr) u0))).(let 
-TMP_32 \def (pc3 c0 t2 t0) in (let TMP_254 \def (\lambda (H6: (lt i i0)).(let 
-TMP_33 \def (Bind Abbr) in (let TMP_34 \def (CHead d TMP_33 u) in (let H7 
-\def (csubst0_getl_lt i0 i H6 c c0 u0 H4 TMP_34 H0) in (let TMP_35 \def (Bind 
-Abbr) in (let TMP_36 \def (CHead d TMP_35 u) in (let TMP_37 \def (getl i c0 
-TMP_36) in (let TMP_42 \def (\lambda (b: B).(\lambda (e0: C).(\lambda (u1: 
-T).(\lambda (_: T).(let TMP_38 \def (Bind Abbr) in (let TMP_39 \def (CHead d 
-TMP_38 u) in (let TMP_40 \def (Bind b) in (let TMP_41 \def (CHead e0 TMP_40 
-u1) in (eq C TMP_39 TMP_41))))))))) in (let TMP_45 \def (\lambda (b: 
-B).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: T).(let TMP_43 \def (Bind b) 
-in (let TMP_44 \def (CHead e0 TMP_43 w) in (getl i c0 TMP_44))))))) in (let 
-TMP_48 \def (\lambda (_: B).(\lambda (_: C).(\lambda (u1: T).(\lambda (w: 
-T).(let TMP_46 \def (S i) in (let TMP_47 \def (minus i0 TMP_46) in (subst0 
-TMP_47 u0 u1 w))))))) in (let TMP_49 \def (ex3_4 B C T T TMP_42 TMP_45 
-TMP_48) in (let TMP_54 \def (\lambda (b: B).(\lambda (e1: C).(\lambda (_: 
-C).(\lambda (u1: T).(let TMP_50 \def (Bind Abbr) in (let TMP_51 \def (CHead d 
-TMP_50 u) in (let TMP_52 \def (Bind b) in (let TMP_53 \def (CHead e1 TMP_52 
-u1) in (eq C TMP_51 TMP_53))))))))) in (let TMP_57 \def (\lambda (b: 
-B).(\lambda (_: C).(\lambda (e2: C).(\lambda (u1: T).(let TMP_55 \def (Bind 
-b) in (let TMP_56 \def (CHead e2 TMP_55 u1) in (getl i c0 TMP_56))))))) in 
-(let TMP_60 \def (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: C).(\lambda 
-(_: T).(let TMP_58 \def (S i) in (let TMP_59 \def (minus i0 TMP_58) in 
-(csubst0 TMP_59 u0 e1 e2))))))) in (let TMP_61 \def (ex3_4 B C C T TMP_54 
-TMP_57 TMP_60) in (let TMP_66 \def (\lambda (b: B).(\lambda (e1: C).(\lambda 
-(_: C).(\lambda (u1: T).(\lambda (_: T).(let TMP_62 \def (Bind Abbr) in (let 
-TMP_63 \def (CHead d TMP_62 u) in (let TMP_64 \def (Bind b) in (let TMP_65 
-\def (CHead e1 TMP_64 u1) in (eq C TMP_63 TMP_65)))))))))) in (let TMP_69 
-\def (\lambda (b: B).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: 
-T).(\lambda (w: T).(let TMP_67 \def (Bind b) in (let TMP_68 \def (CHead e2 
-TMP_67 w) in (getl i c0 TMP_68)))))))) in (let TMP_72 \def (\lambda (_: 
-B).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (w: T).(let 
-TMP_70 \def (S i) in (let TMP_71 \def (minus i0 TMP_70) in (subst0 TMP_71 u0 
-u1 w)))))))) in (let TMP_75 \def (\lambda (_: B).(\lambda (e1: C).(\lambda 
-(e2: C).(\lambda (_: T).(\lambda (_: T).(let TMP_73 \def (S i) in (let TMP_74 
-\def (minus i0 TMP_73) in (csubst0 TMP_74 u0 e1 e2)))))))) in (let TMP_76 
-\def (ex4_5 B C C T T TMP_66 TMP_69 TMP_72 TMP_75) in (let TMP_77 \def (pc3 
-c0 t2 t0) in (let TMP_79 \def (\lambda (H8: (getl i c0 (CHead d (Bind Abbr) 
-u))).(let TMP_78 \def (pr2_delta c0 d u i H8 t2 t3 H1 t0 H2) in (pc3_pr2_r c0 
-t2 t0 TMP_78))) in (let TMP_144 \def (\lambda (H8: (ex3_4 B C T T (\lambda 
-(b: B).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: T).(eq C (CHead d (Bind 
-Abbr) u) (CHead e0 (Bind b) u1)))))) (\lambda (b: B).(\lambda (e0: 
-C).(\lambda (_: T).(\lambda (w: T).(getl i c0 (CHead e0 (Bind b) w)))))) 
-(\lambda (_: B).(\lambda (_: C).(\lambda (u1: T).(\lambda (w: T).(subst0 
-(minus i0 (S i)) u0 u1 w))))))).(let TMP_84 \def (\lambda (b: B).(\lambda 
-(e0: C).(\lambda (u1: T).(\lambda (_: T).(let TMP_80 \def (Bind Abbr) in (let 
-TMP_81 \def (CHead d TMP_80 u) in (let TMP_82 \def (Bind b) in (let TMP_83 
-\def (CHead e0 TMP_82 u1) in (eq C TMP_81 TMP_83))))))))) in (let TMP_87 \def 
-(\lambda (b: B).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: T).(let TMP_85 
-\def (Bind b) in (let TMP_86 \def (CHead e0 TMP_85 w) in (getl i c0 
-TMP_86))))))) in (let TMP_90 \def (\lambda (_: B).(\lambda (_: C).(\lambda 
-(u1: T).(\lambda (w: T).(let TMP_88 \def (S i) in (let TMP_89 \def (minus i0 
-TMP_88) in (subst0 TMP_89 u0 u1 w))))))) in (let TMP_91 \def (pc3 c0 t2 t0) 
-in (let TMP_143 \def (\lambda (x0: B).(\lambda (x1: C).(\lambda (x2: 
-T).(\lambda (x3: T).(\lambda (H9: (eq C (CHead d (Bind Abbr) u) (CHead x1 
-(Bind x0) x2))).(\lambda (H10: (getl i c0 (CHead x1 (Bind x0) x3))).(\lambda 
-(H11: (subst0 (minus i0 (S i)) u0 x2 x3)).(let TMP_92 \def (\lambda (e0: 
+t1)).(pr2_ind (\lambda (c: C).(\lambda (t0: T).(\lambda (t2: T).(\forall (i: 
+nat).(\forall (u: T).(\forall (c2: C).(\forall (t3: T).((fsubst0 i u c t2 c2 
+t3) \to (\forall (e: C).((getl i c (CHead e (Bind Abbr) u)) \to (pc3 c2 t0 
+t3))))))))))) (\lambda (c: C).(\lambda (t2: T).(\lambda (t3: T).(\lambda (H0: 
+(pr0 t2 t3)).(\lambda (i: nat).(\lambda (u: T).(\lambda (c2: C).(\lambda (t0: 
+T).(\lambda (H1: (fsubst0 i u c t3 c2 t0)).(fsubst0_ind i u c t3 (\lambda 
+(c0: C).(\lambda (t4: T).(\forall (e: C).((getl i c (CHead e (Bind Abbr) u)) 
+\to (pc3 c0 t2 t4))))) (\lambda (t4: T).(\lambda (H2: (subst0 i u t3 
+t4)).(\lambda (e: C).(\lambda (H3: (getl i c (CHead e (Bind Abbr) 
+u))).(pc3_pr2_u c t3 t2 (pr2_free c t2 t3 H0) t4 (pc3_pr2_r c t3 t4 
+(pr2_delta c e u i H3 t3 t3 (pr0_refl t3) t4 H2))))))) (\lambda (c0: 
+C).(\lambda (_: (csubst0 i u c c0)).(\lambda (e: C).(\lambda (_: (getl i c 
+(CHead e (Bind Abbr) u))).(pc3_pr2_r c0 t2 t3 (pr2_free c0 t2 t3 H0)))))) 
+(\lambda (t4: T).(\lambda (H2: (subst0 i u t3 t4)).(\lambda (c0: C).(\lambda 
+(H3: (csubst0 i u c c0)).(\lambda (e: C).(\lambda (H4: (getl i c (CHead e 
+(Bind Abbr) u))).(pc3_pr2_u c0 t3 t2 (pr2_free c0 t2 t3 H0) t4 (pc3_pr2_r c0 
+t3 t4 (pr2_delta c0 e u i (csubst0_getl_ge i i (le_n i) c c0 u H3 (CHead e 
+(Bind Abbr) u) H4) t3 t3 (pr0_refl t3) t4 H2))))))))) c2 t0 H1)))))))))) 
+(\lambda (c: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: nat).(\lambda 
+(H0: (getl i c (CHead d (Bind Abbr) u))).(\lambda (t2: T).(\lambda (t3: 
+T).(\lambda (H1: (pr0 t2 t3)).(\lambda (t0: T).(\lambda (H2: (subst0 i u t3 
+t0)).(\lambda (i0: nat).(\lambda (u0: T).(\lambda (c2: C).(\lambda (t4: 
+T).(\lambda (H3: (fsubst0 i0 u0 c t0 c2 t4)).(fsubst0_ind i0 u0 c t0 (\lambda 
+(c0: C).(\lambda (t5: T).(\forall (e: C).((getl i0 c (CHead e (Bind Abbr) 
+u0)) \to (pc3 c0 t2 t5))))) (\lambda (t5: T).(\lambda (H4: (subst0 i0 u0 t0 
+t5)).(\lambda (e: C).(\lambda (H5: (getl i0 c (CHead e (Bind Abbr) 
+u0))).(pc3_t t3 c t2 (pc3_pr3_r c t2 t3 (pr3_pr2 c t2 t3 (pr2_free c t2 t3 
+H1))) t5 (pc3_pr3_r c t3 t5 (pr3_sing c t0 t3 (pr2_delta c d u i H0 t3 t3 
+(pr0_refl t3) t0 H2) t5 (pr3_pr2 c t0 t5 (pr2_delta c e u0 i0 H5 t0 t0 
+(pr0_refl t0) t5 H4))))))))) (\lambda (c0: C).(\lambda (H4: (csubst0 i0 u0 c 
+c0)).(\lambda (e: C).(\lambda (H5: (getl i0 c (CHead e (Bind Abbr) 
+u0))).(lt_le_e i i0 (pc3 c0 t2 t0) (\lambda (H6: (lt i i0)).(let H7 \def 
+(csubst0_getl_lt i0 i H6 c c0 u0 H4 (CHead d (Bind Abbr) u) H0) in (or4_ind 
+(getl i c0 (CHead d (Bind Abbr) u)) (ex3_4 B C T T (\lambda (b: B).(\lambda 
+(e0: C).(\lambda (u1: T).(\lambda (_: T).(eq C (CHead d (Bind Abbr) u) (CHead 
+e0 (Bind b) u1)))))) (\lambda (b: B).(\lambda (e0: C).(\lambda (_: 
+T).(\lambda (w: T).(getl i c0 (CHead e0 (Bind b) w)))))) (\lambda (_: 
+B).(\lambda (_: C).(\lambda (u1: T).(\lambda (w: T).(subst0 (minus i0 (S i)) 
+u0 u1 w)))))) (ex3_4 B C C T (\lambda (b: B).(\lambda (e1: C).(\lambda (_: 
+C).(\lambda (u1: T).(eq C (CHead d (Bind Abbr) u) (CHead e1 (Bind b) u1)))))) 
+(\lambda (b: B).(\lambda (_: C).(\lambda (e2: C).(\lambda (u1: T).(getl i c0 
+(CHead e2 (Bind b) u1)))))) (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: 
+C).(\lambda (_: T).(csubst0 (minus i0 (S i)) u0 e1 e2)))))) (ex4_5 B C C T T 
+(\lambda (b: B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda 
+(_: T).(eq C (CHead d (Bind Abbr) u) (CHead e1 (Bind b) u1))))))) (\lambda 
+(b: B).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (w: T).(getl 
+i c0 (CHead e2 (Bind b) w))))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: 
+C).(\lambda (u1: T).(\lambda (w: T).(subst0 (minus i0 (S i)) u0 u1 w)))))) 
+(\lambda (_: B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
+(_: T).(csubst0 (minus i0 (S i)) u0 e1 e2))))))) (pc3 c0 t2 t0) (\lambda (H8: 
+(getl i c0 (CHead d (Bind Abbr) u))).(pc3_pr2_r c0 t2 t0 (pr2_delta c0 d u i 
+H8 t2 t3 H1 t0 H2))) (\lambda (H8: (ex3_4 B C T T (\lambda (b: B).(\lambda 
+(e0: C).(\lambda (u1: T).(\lambda (_: T).(eq C (CHead d (Bind Abbr) u) (CHead 
+e0 (Bind b) u1)))))) (\lambda (b: B).(\lambda (e0: C).(\lambda (_: 
+T).(\lambda (w: T).(getl i c0 (CHead e0 (Bind b) w)))))) (\lambda (_: 
+B).(\lambda (_: C).(\lambda (u1: T).(\lambda (w: T).(subst0 (minus i0 (S i)) 
+u0 u1 w))))))).(ex3_4_ind B C T T (\lambda (b: B).(\lambda (e0: C).(\lambda 
+(u1: T).(\lambda (_: T).(eq C (CHead d (Bind Abbr) u) (CHead e0 (Bind b) 
+u1)))))) (\lambda (b: B).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: 
+T).(getl i c0 (CHead e0 (Bind b) w)))))) (\lambda (_: B).(\lambda (_: 
+C).(\lambda (u1: T).(\lambda (w: T).(subst0 (minus i0 (S i)) u0 u1 w))))) 
+(pc3 c0 t2 t0) (\lambda (x0: B).(\lambda (x1: C).(\lambda (x2: T).(\lambda 
+(x3: T).(\lambda (H9: (eq C (CHead d (Bind Abbr) u) (CHead x1 (Bind x0) 
+x2))).(\lambda (H10: (getl i c0 (CHead x1 (Bind x0) x3))).(\lambda (H11: 
+(subst0 (minus i0 (S i)) u0 x2 x3)).(let H12 \def (f_equal C C (\lambda (e0: 
 C).(match e0 with [(CSort _) \Rightarrow d | (CHead c3 _ _) \Rightarrow c3])) 
-in (let TMP_93 \def (Bind Abbr) in (let TMP_94 \def (CHead d TMP_93 u) in 
-(let TMP_95 \def (Bind x0) in (let TMP_96 \def (CHead x1 TMP_95 x2) in (let 
-H12 \def (f_equal C C TMP_92 TMP_94 TMP_96 H9) in (let TMP_97 \def (\lambda 
-(e0: C).(match e0 with [(CSort _) \Rightarrow Abbr | (CHead _ k _) 
-\Rightarrow (match k with [(Bind b) \Rightarrow b | (Flat _) \Rightarrow 
-Abbr])])) in (let TMP_98 \def (Bind Abbr) in (let TMP_99 \def (CHead d TMP_98 
-u) in (let TMP_100 \def (Bind x0) in (let TMP_101 \def (CHead x1 TMP_100 x2) 
-in (let H13 \def (f_equal C B TMP_97 TMP_99 TMP_101 H9) in (let TMP_102 \def 
-(\lambda (e0: C).(match e0 with [(CSort _) \Rightarrow u | (CHead _ _ t5) 
-\Rightarrow t5])) in (let TMP_103 \def (Bind Abbr) in (let TMP_104 \def 
-(CHead d TMP_103 u) in (let TMP_105 \def (Bind x0) in (let TMP_106 \def 
-(CHead x1 TMP_105 x2) in (let H14 \def (f_equal C T TMP_102 TMP_104 TMP_106 
-H9) in (let TMP_141 \def (\lambda (H15: (eq B Abbr x0)).(\lambda (H16: (eq C 
-d x1)).(let TMP_109 \def (\lambda (t5: T).(let TMP_107 \def (S i) in (let 
-TMP_108 \def (minus i0 TMP_107) in (subst0 TMP_108 u0 t5 x3)))) in (let H17 
-\def (eq_ind_r T x2 TMP_109 H11 u H14) in (let TMP_112 \def (\lambda (c3: 
-C).(let TMP_110 \def (Bind x0) in (let TMP_111 \def (CHead c3 TMP_110 x3) in 
-(getl i c0 TMP_111)))) in (let H18 \def (eq_ind_r C x1 TMP_112 H10 d H16) in 
-(let TMP_115 \def (\lambda (b: B).(let TMP_113 \def (Bind b) in (let TMP_114 
-\def (CHead d TMP_113 x3) in (getl i c0 TMP_114)))) in (let H19 \def 
-(eq_ind_r B x0 TMP_115 H18 Abbr H15) in (let TMP_116 \def (\lambda (t5: 
-T).(subst0 i x3 t3 t5)) in (let TMP_121 \def (\lambda (t5: T).(let TMP_117 
-\def (S i) in (let TMP_118 \def (minus i0 TMP_117) in (let TMP_119 \def (plus 
-TMP_118 i) in (let TMP_120 \def (S TMP_119) in (subst0 TMP_120 u0 t0 t5)))))) 
-in (let TMP_122 \def (pc3 c0 t2 t0) in (let TMP_137 \def (\lambda (x: 
-T).(\lambda (H20: (subst0 i x3 t3 x)).(\lambda (H21: (subst0 (S (plus (minus 
-i0 (S i)) i)) u0 t0 x)).(let TMP_123 \def (S i) in (let TMP_124 \def (minus 
-i0 TMP_123) in (let TMP_125 \def (plus TMP_124 i) in (let TMP_126 \def (S 
-TMP_125) in (let TMP_127 \def (\lambda (n: nat).(subst0 n u0 t0 x)) in (let 
-TMP_128 \def (lt_plus_minus_r i i0 H6) in (let H22 \def (eq_ind_r nat TMP_126 
-TMP_127 H21 i0 TMP_128) in (let TMP_129 \def (pr2_delta c0 d x3 i H19 t2 t3 
-H1 x H20) in (let TMP_130 \def (le_n i0) in (let TMP_131 \def (Bind Abbr) in 
-(let TMP_132 \def (CHead e TMP_131 u0) in (let TMP_133 \def (csubst0_getl_ge 
-i0 i0 TMP_130 c c0 u0 H4 TMP_132 H5) in (let TMP_134 \def (pr0_refl t0) in 
-(let TMP_135 \def (pr2_delta c0 e u0 i0 TMP_133 t0 t0 TMP_134 x H22) in (let 
-TMP_136 \def (pc3_pr2_x c0 x t0 TMP_135) in (pc3_pr2_u c0 x t2 TMP_129 t0 
-TMP_136))))))))))))))))))) in (let TMP_138 \def (S i) in (let TMP_139 \def 
-(minus i0 TMP_138) in (let TMP_140 \def (subst0_subst0_back t3 t0 u i H2 x3 
-u0 TMP_139 H17) in (ex2_ind T TMP_116 TMP_121 TMP_122 TMP_137 
-TMP_140)))))))))))))))) in (let TMP_142 \def (TMP_141 H13) in (TMP_142 
-H12)))))))))))))))))))))))))))) in (ex3_4_ind B C T T TMP_84 TMP_87 TMP_90 
-TMP_91 TMP_143 H8))))))) in (let TMP_185 \def (\lambda (H8: (ex3_4 B C C T 
-(\lambda (b: B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(eq C 
-(CHead d (Bind Abbr) u) (CHead e1 (Bind b) u1)))))) (\lambda (b: B).(\lambda 
-(_: C).(\lambda (e2: C).(\lambda (u1: T).(getl i c0 (CHead e2 (Bind b) 
-u1)))))) (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: 
-T).(csubst0 (minus i0 (S i)) u0 e1 e2))))))).(let TMP_149 \def (\lambda (b: 
-B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(let TMP_145 \def (Bind 
-Abbr) in (let TMP_146 \def (CHead d TMP_145 u) in (let TMP_147 \def (Bind b) 
-in (let TMP_148 \def (CHead e1 TMP_147 u1) in (eq C TMP_146 TMP_148))))))))) 
-in (let TMP_152 \def (\lambda (b: B).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (u1: T).(let TMP_150 \def (Bind b) in (let TMP_151 \def (CHead e2 
-TMP_150 u1) in (getl i c0 TMP_151))))))) in (let TMP_155 \def (\lambda (_: 
-B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(let TMP_153 \def (S i) 
-in (let TMP_154 \def (minus i0 TMP_153) in (csubst0 TMP_154 u0 e1 e2))))))) 
-in (let TMP_156 \def (pc3 c0 t2 t0) in (let TMP_184 \def (\lambda (x0: 
-B).(\lambda (x1: C).(\lambda (x2: C).(\lambda (x3: T).(\lambda (H9: (eq C 
-(CHead d (Bind Abbr) u) (CHead x1 (Bind x0) x3))).(\lambda (H10: (getl i c0 
-(CHead x2 (Bind x0) x3))).(\lambda (H11: (csubst0 (minus i0 (S i)) u0 x1 
-x2)).(let TMP_157 \def (\lambda (e0: C).(match e0 with [(CSort _) \Rightarrow 
-d | (CHead c3 _ _) \Rightarrow c3])) in (let TMP_158 \def (Bind Abbr) in (let 
-TMP_159 \def (CHead d TMP_158 u) in (let TMP_160 \def (Bind x0) in (let 
-TMP_161 \def (CHead x1 TMP_160 x3) in (let H12 \def (f_equal C C TMP_157 
-TMP_159 TMP_161 H9) in (let TMP_162 \def (\lambda (e0: C).(match e0 with 
+(CHead d (Bind Abbr) u) (CHead x1 (Bind x0) x2) H9) in ((let H13 \def 
+(f_equal C B (\lambda (e0: C).(match e0 with [(CSort _) \Rightarrow Abbr | 
+(CHead _ k _) \Rightarrow (match k with [(Bind b) \Rightarrow b | (Flat _) 
+\Rightarrow Abbr])])) (CHead d (Bind Abbr) u) (CHead x1 (Bind x0) x2) H9) in 
+((let H14 \def (f_equal C T (\lambda (e0: C).(match e0 with [(CSort _) 
+\Rightarrow u | (CHead _ _ t5) \Rightarrow t5])) (CHead d (Bind Abbr) u) 
+(CHead x1 (Bind x0) x2) H9) in (\lambda (H15: (eq B Abbr x0)).(\lambda (H16: 
+(eq C d x1)).(let H17 \def (eq_ind_r T x2 (\lambda (t5: T).(subst0 (minus i0 
+(S i)) u0 t5 x3)) H11 u H14) in (let H18 \def (eq_ind_r C x1 (\lambda (c3: 
+C).(getl i c0 (CHead c3 (Bind x0) x3))) H10 d H16) in (let H19 \def (eq_ind_r 
+B x0 (\lambda (b: B).(getl i c0 (CHead d (Bind b) x3))) H18 Abbr H15) in 
+(ex2_ind T (\lambda (t5: T).(subst0 i x3 t3 t5)) (\lambda (t5: T).(subst0 (S 
+(plus (minus i0 (S i)) i)) u0 t0 t5)) (pc3 c0 t2 t0) (\lambda (x: T).(\lambda 
+(H20: (subst0 i x3 t3 x)).(\lambda (H21: (subst0 (S (plus (minus i0 (S i)) 
+i)) u0 t0 x)).(let H22 \def (eq_ind_r nat (S (plus (minus i0 (S i)) i)) 
+(\lambda (n: nat).(subst0 n u0 t0 x)) H21 i0 (lt_plus_minus_r i i0 H6)) in 
+(pc3_pr2_u c0 x t2 (pr2_delta c0 d x3 i H19 t2 t3 H1 x H20) t0 (pc3_pr2_x c0 
+x t0 (pr2_delta c0 e u0 i0 (csubst0_getl_ge i0 i0 (le_n i0) c c0 u0 H4 (CHead 
+e (Bind Abbr) u0) H5) t0 t0 (pr0_refl t0) x H22))))))) (subst0_subst0_back t3 
+t0 u i H2 x3 u0 (minus i0 (S i)) H17)))))))) H13)) H12))))))))) H8)) (\lambda 
+(H8: (ex3_4 B C C T (\lambda (b: B).(\lambda (e1: C).(\lambda (_: C).(\lambda 
+(u1: T).(eq C (CHead d (Bind Abbr) u) (CHead e1 (Bind b) u1)))))) (\lambda 
+(b: B).(\lambda (_: C).(\lambda (e2: C).(\lambda (u1: T).(getl i c0 (CHead e2 
+(Bind b) u1)))))) (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: C).(\lambda 
+(_: T).(csubst0 (minus i0 (S i)) u0 e1 e2))))))).(ex3_4_ind B C C T (\lambda 
+(b: B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(eq C (CHead d (Bind 
+Abbr) u) (CHead e1 (Bind b) u1)))))) (\lambda (b: B).(\lambda (_: C).(\lambda 
+(e2: C).(\lambda (u1: T).(getl i c0 (CHead e2 (Bind b) u1)))))) (\lambda (_: 
+B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 (minus i0 (S 
+i)) u0 e1 e2))))) (pc3 c0 t2 t0) (\lambda (x0: B).(\lambda (x1: C).(\lambda 
+(x2: C).(\lambda (x3: T).(\lambda (H9: (eq C (CHead d (Bind Abbr) u) (CHead 
+x1 (Bind x0) x3))).(\lambda (H10: (getl i c0 (CHead x2 (Bind x0) 
+x3))).(\lambda (H11: (csubst0 (minus i0 (S i)) u0 x1 x2)).(let H12 \def 
+(f_equal C C (\lambda (e0: C).(match e0 with [(CSort _) \Rightarrow d | 
+(CHead c3 _ _) \Rightarrow c3])) (CHead d (Bind Abbr) u) (CHead x1 (Bind x0) 
+x3) H9) in ((let H13 \def (f_equal C B (\lambda (e0: C).(match e0 with 
 [(CSort _) \Rightarrow Abbr | (CHead _ k _) \Rightarrow (match k with [(Bind 
-b) \Rightarrow b | (Flat _) \Rightarrow Abbr])])) in (let TMP_163 \def (Bind 
-Abbr) in (let TMP_164 \def (CHead d TMP_163 u) in (let TMP_165 \def (Bind x0) 
-in (let TMP_166 \def (CHead x1 TMP_165 x3) in (let H13 \def (f_equal C B 
-TMP_162 TMP_164 TMP_166 H9) in (let TMP_167 \def (\lambda (e0: C).(match e0 
-with [(CSort _) \Rightarrow u | (CHead _ _ t5) \Rightarrow t5])) in (let 
-TMP_168 \def (Bind Abbr) in (let TMP_169 \def (CHead d TMP_168 u) in (let 
-TMP_170 \def (Bind x0) in (let TMP_171 \def (CHead x1 TMP_170 x3) in (let H14 
-\def (f_equal C T TMP_167 TMP_169 TMP_171 H9) in (let TMP_182 \def (\lambda 
-(H15: (eq B Abbr x0)).(\lambda (H16: (eq C d x1)).(let TMP_174 \def (\lambda 
-(t5: T).(let TMP_172 \def (Bind x0) in (let TMP_173 \def (CHead x2 TMP_172 
-t5) in (getl i c0 TMP_173)))) in (let H17 \def (eq_ind_r T x3 TMP_174 H10 u 
-H14) in (let TMP_177 \def (\lambda (c3: C).(let TMP_175 \def (S i) in (let 
-TMP_176 \def (minus i0 TMP_175) in (csubst0 TMP_176 u0 c3 x2)))) in (let H18 
-\def (eq_ind_r C x1 TMP_177 H11 d H16) in (let TMP_180 \def (\lambda (b: 
-B).(let TMP_178 \def (Bind b) in (let TMP_179 \def (CHead x2 TMP_178 u) in 
-(getl i c0 TMP_179)))) in (let H19 \def (eq_ind_r B x0 TMP_180 H17 Abbr H15) 
-in (let TMP_181 \def (pr2_delta c0 x2 u i H19 t2 t3 H1 t0 H2) in (pc3_pr2_r 
-c0 t2 t0 TMP_181)))))))))) in (let TMP_183 \def (TMP_182 H13) in (TMP_183 
-H12)))))))))))))))))))))))))))) in (ex3_4_ind B C C T TMP_149 TMP_152 TMP_155 
-TMP_156 TMP_184 H8))))))) in (let TMP_253 \def (\lambda (H8: (ex4_5 B C C T T 
+b) \Rightarrow b | (Flat _) \Rightarrow Abbr])])) (CHead d (Bind Abbr) u) 
+(CHead x1 (Bind x0) x3) H9) in ((let H14 \def (f_equal C T (\lambda (e0: 
+C).(match e0 with [(CSort _) \Rightarrow u | (CHead _ _ t5) \Rightarrow t5])) 
+(CHead d (Bind Abbr) u) (CHead x1 (Bind x0) x3) H9) in (\lambda (H15: (eq B 
+Abbr x0)).(\lambda (H16: (eq C d x1)).(let H17 \def (eq_ind_r T x3 (\lambda 
+(t5: T).(getl i c0 (CHead x2 (Bind x0) t5))) H10 u H14) in (let H18 \def 
+(eq_ind_r C x1 (\lambda (c3: C).(csubst0 (minus i0 (S i)) u0 c3 x2)) H11 d 
+H16) in (let H19 \def (eq_ind_r B x0 (\lambda (b: B).(getl i c0 (CHead x2 
+(Bind b) u))) H17 Abbr H15) in (pc3_pr2_r c0 t2 t0 (pr2_delta c0 x2 u i H19 
+t2 t3 H1 t0 H2)))))))) H13)) H12))))))))) H8)) (\lambda (H8: (ex4_5 B C C T T 
+(\lambda (b: B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda 
+(_: T).(eq C (CHead d (Bind Abbr) u) (CHead e1 (Bind b) u1))))))) (\lambda 
+(b: B).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (w: T).(getl 
+i c0 (CHead e2 (Bind b) w))))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: 
+C).(\lambda (u1: T).(\lambda (w: T).(subst0 (minus i0 (S i)) u0 u1 w)))))) 
+(\lambda (_: B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
+(_: T).(csubst0 (minus i0 (S i)) u0 e1 e2)))))))).(ex4_5_ind B C C T T 
 (\lambda (b: B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda 
 (_: T).(eq C (CHead d (Bind Abbr) u) (CHead e1 (Bind b) u1))))))) (\lambda 
 (b: B).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (w: T).(getl 
 i c0 (CHead e2 (Bind b) w))))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: 
 C).(\lambda (u1: T).(\lambda (w: T).(subst0 (minus i0 (S i)) u0 u1 w)))))) 
 (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
-(_: T).(csubst0 (minus i0 (S i)) u0 e1 e2)))))))).(let TMP_190 \def (\lambda 
-(b: B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(let 
-TMP_186 \def (Bind Abbr) in (let TMP_187 \def (CHead d TMP_186 u) in (let 
-TMP_188 \def (Bind b) in (let TMP_189 \def (CHead e1 TMP_188 u1) in (eq C 
-TMP_187 TMP_189)))))))))) in (let TMP_193 \def (\lambda (b: B).(\lambda (_: 
-C).(\lambda (e2: C).(\lambda (_: T).(\lambda (w: T).(let TMP_191 \def (Bind 
-b) in (let TMP_192 \def (CHead e2 TMP_191 w) in (getl i c0 TMP_192)))))))) in 
-(let TMP_196 \def (\lambda (_: B).(\lambda (_: C).(\lambda (_: C).(\lambda 
-(u1: T).(\lambda (w: T).(let TMP_194 \def (S i) in (let TMP_195 \def (minus 
-i0 TMP_194) in (subst0 TMP_195 u0 u1 w)))))))) in (let TMP_199 \def (\lambda 
-(_: B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(let 
-TMP_197 \def (S i) in (let TMP_198 \def (minus i0 TMP_197) in (csubst0 
-TMP_198 u0 e1 e2)))))))) in (let TMP_200 \def (pc3 c0 t2 t0) in (let TMP_252 
-\def (\lambda (x0: B).(\lambda (x1: C).(\lambda (x2: C).(\lambda (x3: 
-T).(\lambda (x4: T).(\lambda (H9: (eq C (CHead d (Bind Abbr) u) (CHead x1 
-(Bind x0) x3))).(\lambda (H10: (getl i c0 (CHead x2 (Bind x0) x4))).(\lambda 
-(H11: (subst0 (minus i0 (S i)) u0 x3 x4)).(\lambda (H12: (csubst0 (minus i0 
-(S i)) u0 x1 x2)).(let TMP_201 \def (\lambda (e0: C).(match e0 with [(CSort 
-_) \Rightarrow d | (CHead c3 _ _) \Rightarrow c3])) in (let TMP_202 \def 
-(Bind Abbr) in (let TMP_203 \def (CHead d TMP_202 u) in (let TMP_204 \def 
-(Bind x0) in (let TMP_205 \def (CHead x1 TMP_204 x3) in (let H13 \def 
-(f_equal C C TMP_201 TMP_203 TMP_205 H9) in (let TMP_206 \def (\lambda (e0: 
+(_: T).(csubst0 (minus i0 (S i)) u0 e1 e2)))))) (pc3 c0 t2 t0) (\lambda (x0: 
+B).(\lambda (x1: C).(\lambda (x2: C).(\lambda (x3: T).(\lambda (x4: 
+T).(\lambda (H9: (eq C (CHead d (Bind Abbr) u) (CHead x1 (Bind x0) 
+x3))).(\lambda (H10: (getl i c0 (CHead x2 (Bind x0) x4))).(\lambda (H11: 
+(subst0 (minus i0 (S i)) u0 x3 x4)).(\lambda (H12: (csubst0 (minus i0 (S i)) 
+u0 x1 x2)).(let H13 \def (f_equal C C (\lambda (e0: C).(match e0 with [(CSort 
+_) \Rightarrow d | (CHead c3 _ _) \Rightarrow c3])) (CHead d (Bind Abbr) u) 
+(CHead x1 (Bind x0) x3) H9) in ((let H14 \def (f_equal C B (\lambda (e0: 
 C).(match e0 with [(CSort _) \Rightarrow Abbr | (CHead _ k _) \Rightarrow 
-(match k with [(Bind b) \Rightarrow b | (Flat _) \Rightarrow Abbr])])) in 
-(let TMP_207 \def (Bind Abbr) in (let TMP_208 \def (CHead d TMP_207 u) in 
-(let TMP_209 \def (Bind x0) in (let TMP_210 \def (CHead x1 TMP_209 x3) in 
-(let H14 \def (f_equal C B TMP_206 TMP_208 TMP_210 H9) in (let TMP_211 \def 
+(match k with [(Bind b) \Rightarrow b | (Flat _) \Rightarrow Abbr])])) (CHead 
+d (Bind Abbr) u) (CHead x1 (Bind x0) x3) H9) in ((let H15 \def (f_equal C T 
 (\lambda (e0: C).(match e0 with [(CSort _) \Rightarrow u | (CHead _ _ t5) 
-\Rightarrow t5])) in (let TMP_212 \def (Bind Abbr) in (let TMP_213 \def 
-(CHead d TMP_212 u) in (let TMP_214 \def (Bind x0) in (let TMP_215 \def 
-(CHead x1 TMP_214 x3) in (let H15 \def (f_equal C T TMP_211 TMP_213 TMP_215 
-H9) in (let TMP_250 \def (\lambda (H16: (eq B Abbr x0)).(\lambda (H17: (eq C 
-d x1)).(let TMP_218 \def (\lambda (t5: T).(let TMP_216 \def (S i) in (let 
-TMP_217 \def (minus i0 TMP_216) in (subst0 TMP_217 u0 t5 x4)))) in (let H18 
-\def (eq_ind_r T x3 TMP_218 H11 u H15) in (let TMP_221 \def (\lambda (c3: 
-C).(let TMP_219 \def (S i) in (let TMP_220 \def (minus i0 TMP_219) in 
-(csubst0 TMP_220 u0 c3 x2)))) in (let H19 \def (eq_ind_r C x1 TMP_221 H12 d 
-H17) in (let TMP_224 \def (\lambda (b: B).(let TMP_222 \def (Bind b) in (let 
-TMP_223 \def (CHead x2 TMP_222 x4) in (getl i c0 TMP_223)))) in (let H20 \def 
-(eq_ind_r B x0 TMP_224 H10 Abbr H16) in (let TMP_225 \def (\lambda (t5: 
-T).(subst0 i x4 t3 t5)) in (let TMP_230 \def (\lambda (t5: T).(let TMP_226 
-\def (S i) in (let TMP_227 \def (minus i0 TMP_226) in (let TMP_228 \def (plus 
-TMP_227 i) in (let TMP_229 \def (S TMP_228) in (subst0 TMP_229 u0 t0 t5)))))) 
-in (let TMP_231 \def (pc3 c0 t2 t0) in (let TMP_246 \def (\lambda (x: 
-T).(\lambda (H21: (subst0 i x4 t3 x)).(\lambda (H22: (subst0 (S (plus (minus 
-i0 (S i)) i)) u0 t0 x)).(let TMP_232 \def (S i) in (let TMP_233 \def (minus 
-i0 TMP_232) in (let TMP_234 \def (plus TMP_233 i) in (let TMP_235 \def (S 
-TMP_234) in (let TMP_236 \def (\lambda (n: nat).(subst0 n u0 t0 x)) in (let 
-TMP_237 \def (lt_plus_minus_r i i0 H6) in (let H23 \def (eq_ind_r nat TMP_235 
-TMP_236 H22 i0 TMP_237) in (let TMP_238 \def (pr2_delta c0 x2 x4 i H20 t2 t3 
-H1 x H21) in (let TMP_239 \def (le_n i0) in (let TMP_240 \def (Bind Abbr) in 
-(let TMP_241 \def (CHead e TMP_240 u0) in (let TMP_242 \def (csubst0_getl_ge 
-i0 i0 TMP_239 c c0 u0 H4 TMP_241 H5) in (let TMP_243 \def (pr0_refl t0) in 
-(let TMP_244 \def (pr2_delta c0 e u0 i0 TMP_242 t0 t0 TMP_243 x H23) in (let 
-TMP_245 \def (pc3_pr2_x c0 x t0 TMP_244) in (pc3_pr2_u c0 x t2 TMP_238 t0 
-TMP_245))))))))))))))))))) in (let TMP_247 \def (S i) in (let TMP_248 \def 
-(minus i0 TMP_247) in (let TMP_249 \def (subst0_subst0_back t3 t0 u i H2 x4 
-u0 TMP_248 H18) in (ex2_ind T TMP_225 TMP_230 TMP_231 TMP_246 
-TMP_249)))))))))))))))) in (let TMP_251 \def (TMP_250 H14) in (TMP_251 
-H13)))))))))))))))))))))))))))))) in (ex4_5_ind B C C T T TMP_190 TMP_193 
-TMP_196 TMP_199 TMP_200 TMP_252 H8)))))))) in (or4_ind TMP_37 TMP_49 TMP_61 
-TMP_76 TMP_77 TMP_79 TMP_144 TMP_185 TMP_253 H7)))))))))))))))))))))))))) in 
-(let TMP_259 \def (\lambda (H6: (le i0 i)).(let TMP_255 \def (Bind Abbr) in 
-(let TMP_256 \def (CHead d TMP_255 u) in (let TMP_257 \def (csubst0_getl_ge 
-i0 i H6 c c0 u0 H4 TMP_256 H0) in (let TMP_258 \def (pr2_delta c0 d u i 
-TMP_257 t2 t3 H1 t0 H2) in (pc3_pr2_r c0 t2 t0 TMP_258)))))) in (lt_le_e i i0 
-TMP_32 TMP_254 TMP_259)))))))) in (let TMP_528 \def (\lambda (t5: T).(\lambda 
-(H4: (subst0 i0 u0 t0 t5)).(\lambda (c0: C).(\lambda (H5: (csubst0 i0 u0 c 
-c0)).(\lambda (e: C).(\lambda (H6: (getl i0 c (CHead e (Bind Abbr) u0))).(let 
-TMP_261 \def (pc3 c0 t2 t5) in (let TMP_515 \def (\lambda (H7: (lt i 
-i0)).(let TMP_262 \def (Bind Abbr) in (let TMP_263 \def (CHead d TMP_262 u) 
-in (let H8 \def (csubst0_getl_lt i0 i H7 c c0 u0 H5 TMP_263 H0) in (let 
-TMP_264 \def (Bind Abbr) in (let TMP_265 \def (CHead d TMP_264 u) in (let 
-TMP_266 \def (getl i c0 TMP_265) in (let TMP_271 \def (\lambda (b: 
-B).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: T).(let TMP_267 \def (Bind 
-Abbr) in (let TMP_268 \def (CHead d TMP_267 u) in (let TMP_269 \def (Bind b) 
-in (let TMP_270 \def (CHead e0 TMP_269 u1) in (eq C TMP_268 TMP_270))))))))) 
-in (let TMP_274 \def (\lambda (b: B).(\lambda (e0: C).(\lambda (_: 
-T).(\lambda (w: T).(let TMP_272 \def (Bind b) in (let TMP_273 \def (CHead e0 
-TMP_272 w) in (getl i c0 TMP_273))))))) in (let TMP_277 \def (\lambda (_: 
-B).(\lambda (_: C).(\lambda (u1: T).(\lambda (w: T).(let TMP_275 \def (S i) 
-in (let TMP_276 \def (minus i0 TMP_275) in (subst0 TMP_276 u0 u1 w))))))) in 
-(let TMP_278 \def (ex3_4 B C T T TMP_271 TMP_274 TMP_277) in (let TMP_283 
-\def (\lambda (b: B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(let 
-TMP_279 \def (Bind Abbr) in (let TMP_280 \def (CHead d TMP_279 u) in (let 
-TMP_281 \def (Bind b) in (let TMP_282 \def (CHead e1 TMP_281 u1) in (eq C 
-TMP_280 TMP_282))))))))) in (let TMP_286 \def (\lambda (b: B).(\lambda (_: 
-C).(\lambda (e2: C).(\lambda (u1: T).(let TMP_284 \def (Bind b) in (let 
-TMP_285 \def (CHead e2 TMP_284 u1) in (getl i c0 TMP_285))))))) in (let 
-TMP_289 \def (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: 
-T).(let TMP_287 \def (S i) in (let TMP_288 \def (minus i0 TMP_287) in 
-(csubst0 TMP_288 u0 e1 e2))))))) in (let TMP_290 \def (ex3_4 B C C T TMP_283 
-TMP_286 TMP_289) in (let TMP_295 \def (\lambda (b: B).(\lambda (e1: 
-C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(let TMP_291 \def (Bind 
-Abbr) in (let TMP_292 \def (CHead d TMP_291 u) in (let TMP_293 \def (Bind b) 
-in (let TMP_294 \def (CHead e1 TMP_293 u1) in (eq C TMP_292 TMP_294)))))))))) 
-in (let TMP_298 \def (\lambda (b: B).(\lambda (_: C).(\lambda (e2: 
-C).(\lambda (_: T).(\lambda (w: T).(let TMP_296 \def (Bind b) in (let TMP_297 
-\def (CHead e2 TMP_296 w) in (getl i c0 TMP_297)))))))) in (let TMP_301 \def 
-(\lambda (_: B).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (w: 
-T).(let TMP_299 \def (S i) in (let TMP_300 \def (minus i0 TMP_299) in (subst0 
-TMP_300 u0 u1 w)))))))) in (let TMP_304 \def (\lambda (_: B).(\lambda (e1: 
-C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(let TMP_302 \def (S i) 
-in (let TMP_303 \def (minus i0 TMP_302) in (csubst0 TMP_303 u0 e1 e2)))))))) 
-in (let TMP_305 \def (ex4_5 B C C T T TMP_295 TMP_298 TMP_301 TMP_304) in 
-(let TMP_306 \def (pc3 c0 t2 t5) in (let TMP_319 \def (\lambda (H9: (getl i 
-c0 (CHead d (Bind Abbr) u))).(let TMP_307 \def (pr2_free c0 t2 t3 H1) in (let 
-TMP_308 \def (pr0_refl t3) in (let TMP_309 \def (pr2_delta c0 d u i H9 t3 t3 
-TMP_308 t0 H2) in (let TMP_310 \def (le_n i0) in (let TMP_311 \def (Bind 
-Abbr) in (let TMP_312 \def (CHead e TMP_311 u0) in (let TMP_313 \def 
-(csubst0_getl_ge i0 i0 TMP_310 c c0 u0 H5 TMP_312 H6) in (let TMP_314 \def 
-(pr0_refl t0) in (let TMP_315 \def (pr2_delta c0 e u0 i0 TMP_313 t0 t0 
-TMP_314 t5 H4) in (let TMP_316 \def (pr3_pr2 c0 t0 t5 TMP_315) in (let 
-TMP_317 \def (pr3_sing c0 t0 t3 TMP_309 t5 TMP_316) in (let TMP_318 \def 
-(pc3_pr3_r c0 t3 t5 TMP_317) in (pc3_pr2_u c0 t3 t2 TMP_307 t5 
-TMP_318)))))))))))))) in (let TMP_391 \def (\lambda (H9: (ex3_4 B C T T 
-(\lambda (b: B).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: T).(eq C 
+\Rightarrow t5])) (CHead d (Bind Abbr) u) (CHead x1 (Bind x0) x3) H9) in 
+(\lambda (H16: (eq B Abbr x0)).(\lambda (H17: (eq C d x1)).(let H18 \def 
+(eq_ind_r T x3 (\lambda (t5: T).(subst0 (minus i0 (S i)) u0 t5 x4)) H11 u 
+H15) in (let H19 \def (eq_ind_r C x1 (\lambda (c3: C).(csubst0 (minus i0 (S 
+i)) u0 c3 x2)) H12 d H17) in (let H20 \def (eq_ind_r B x0 (\lambda (b: 
+B).(getl i c0 (CHead x2 (Bind b) x4))) H10 Abbr H16) in (ex2_ind T (\lambda 
+(t5: T).(subst0 i x4 t3 t5)) (\lambda (t5: T).(subst0 (S (plus (minus i0 (S 
+i)) i)) u0 t0 t5)) (pc3 c0 t2 t0) (\lambda (x: T).(\lambda (H21: (subst0 i x4 
+t3 x)).(\lambda (H22: (subst0 (S (plus (minus i0 (S i)) i)) u0 t0 x)).(let 
+H23 \def (eq_ind_r nat (S (plus (minus i0 (S i)) i)) (\lambda (n: 
+nat).(subst0 n u0 t0 x)) H22 i0 (lt_plus_minus_r i i0 H6)) in (pc3_pr2_u c0 x 
+t2 (pr2_delta c0 x2 x4 i H20 t2 t3 H1 x H21) t0 (pc3_pr2_x c0 x t0 (pr2_delta 
+c0 e u0 i0 (csubst0_getl_ge i0 i0 (le_n i0) c c0 u0 H4 (CHead e (Bind Abbr) 
+u0) H5) t0 t0 (pr0_refl t0) x H23))))))) (subst0_subst0_back t3 t0 u i H2 x4 
+u0 (minus i0 (S i)) H18)))))))) H14)) H13))))))))))) H8)) H7))) (\lambda (H6: 
+(le i0 i)).(pc3_pr2_r c0 t2 t0 (pr2_delta c0 d u i (csubst0_getl_ge i0 i H6 c 
+c0 u0 H4 (CHead d (Bind Abbr) u) H0) t2 t3 H1 t0 H2)))))))) (\lambda (t5: 
+T).(\lambda (H4: (subst0 i0 u0 t0 t5)).(\lambda (c0: C).(\lambda (H5: 
+(csubst0 i0 u0 c c0)).(\lambda (e: C).(\lambda (H6: (getl i0 c (CHead e (Bind 
+Abbr) u0))).(lt_le_e i i0 (pc3 c0 t2 t5) (\lambda (H7: (lt i i0)).(let H8 
+\def (csubst0_getl_lt i0 i H7 c c0 u0 H5 (CHead d (Bind Abbr) u) H0) in 
+(or4_ind (getl i c0 (CHead d (Bind Abbr) u)) (ex3_4 B C T T (\lambda (b: 
+B).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: T).(eq C (CHead d (Bind 
+Abbr) u) (CHead e0 (Bind b) u1)))))) (\lambda (b: B).(\lambda (e0: 
+C).(\lambda (_: T).(\lambda (w: T).(getl i c0 (CHead e0 (Bind b) w)))))) 
+(\lambda (_: B).(\lambda (_: C).(\lambda (u1: T).(\lambda (w: T).(subst0 
+(minus i0 (S i)) u0 u1 w)))))) (ex3_4 B C C T (\lambda (b: B).(\lambda (e1: 
+C).(\lambda (_: C).(\lambda (u1: T).(eq C (CHead d (Bind Abbr) u) (CHead e1 
+(Bind b) u1)))))) (\lambda (b: B).(\lambda (_: C).(\lambda (e2: C).(\lambda 
+(u1: T).(getl i c0 (CHead e2 (Bind b) u1)))))) (\lambda (_: B).(\lambda (e1: 
+C).(\lambda (e2: C).(\lambda (_: T).(csubst0 (minus i0 (S i)) u0 e1 e2)))))) 
+(ex4_5 B C C T T (\lambda (b: B).(\lambda (e1: C).(\lambda (_: C).(\lambda 
+(u1: T).(\lambda (_: T).(eq C (CHead d (Bind Abbr) u) (CHead e1 (Bind b) 
+u1))))))) (\lambda (b: B).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: 
+T).(\lambda (w: T).(getl i c0 (CHead e2 (Bind b) w))))))) (\lambda (_: 
+B).(\lambda (_: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (w: T).(subst0 
+(minus i0 (S i)) u0 u1 w)))))) (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: 
+C).(\lambda (_: T).(\lambda (_: T).(csubst0 (minus i0 (S i)) u0 e1 e2))))))) 
+(pc3 c0 t2 t5) (\lambda (H9: (getl i c0 (CHead d (Bind Abbr) u))).(pc3_pr2_u 
+c0 t3 t2 (pr2_free c0 t2 t3 H1) t5 (pc3_pr3_r c0 t3 t5 (pr3_sing c0 t0 t3 
+(pr2_delta c0 d u i H9 t3 t3 (pr0_refl t3) t0 H2) t5 (pr3_pr2 c0 t0 t5 
+(pr2_delta c0 e u0 i0 (csubst0_getl_ge i0 i0 (le_n i0) c c0 u0 H5 (CHead e 
+(Bind Abbr) u0) H6) t0 t0 (pr0_refl t0) t5 H4)))))) (\lambda (H9: (ex3_4 B C 
+T T (\lambda (b: B).(\lambda (e0: C).(\lambda (u1: T).(\lambda (_: T).(eq C 
 (CHead d (Bind Abbr) u) (CHead e0 (Bind b) u1)))))) (\lambda (b: B).(\lambda 
 (e0: C).(\lambda (_: T).(\lambda (w: T).(getl i c0 (CHead e0 (Bind b) w)))))) 
 (\lambda (_: B).(\lambda (_: C).(\lambda (u1: T).(\lambda (w: T).(subst0 
-(minus i0 (S i)) u0 u1 w))))))).(let TMP_324 \def (\lambda (b: B).(\lambda 
-(e0: C).(\lambda (u1: T).(\lambda (_: T).(let TMP_320 \def (Bind Abbr) in 
-(let TMP_321 \def (CHead d TMP_320 u) in (let TMP_322 \def (Bind b) in (let 
-TMP_323 \def (CHead e0 TMP_322 u1) in (eq C TMP_321 TMP_323))))))))) in (let 
-TMP_327 \def (\lambda (b: B).(\lambda (e0: C).(\lambda (_: T).(\lambda (w: 
-T).(let TMP_325 \def (Bind b) in (let TMP_326 \def (CHead e0 TMP_325 w) in 
-(getl i c0 TMP_326))))))) in (let TMP_330 \def (\lambda (_: B).(\lambda (_: 
-C).(\lambda (u1: T).(\lambda (w: T).(let TMP_328 \def (S i) in (let TMP_329 
-\def (minus i0 TMP_328) in (subst0 TMP_329 u0 u1 w))))))) in (let TMP_331 
-\def (pc3 c0 t2 t5) in (let TMP_390 \def (\lambda (x0: B).(\lambda (x1: 
-C).(\lambda (x2: T).(\lambda (x3: T).(\lambda (H10: (eq C (CHead d (Bind 
-Abbr) u) (CHead x1 (Bind x0) x2))).(\lambda (H11: (getl i c0 (CHead x1 (Bind 
-x0) x3))).(\lambda (H12: (subst0 (minus i0 (S i)) u0 x2 x3)).(let TMP_332 
-\def (\lambda (e0: C).(match e0 with [(CSort _) \Rightarrow d | (CHead c3 _ 
-_) \Rightarrow c3])) in (let TMP_333 \def (Bind Abbr) in (let TMP_334 \def 
-(CHead d TMP_333 u) in (let TMP_335 \def (Bind x0) in (let TMP_336 \def 
-(CHead x1 TMP_335 x2) in (let H13 \def (f_equal C C TMP_332 TMP_334 TMP_336 
-H10) in (let TMP_337 \def (\lambda (e0: C).(match e0 with [(CSort _) 
-\Rightarrow Abbr | (CHead _ k _) \Rightarrow (match k with [(Bind b) 
-\Rightarrow b | (Flat _) \Rightarrow Abbr])])) in (let TMP_338 \def (Bind 
-Abbr) in (let TMP_339 \def (CHead d TMP_338 u) in (let TMP_340 \def (Bind x0) 
-in (let TMP_341 \def (CHead x1 TMP_340 x2) in (let H14 \def (f_equal C B 
-TMP_337 TMP_339 TMP_341 H10) in (let TMP_342 \def (\lambda (e0: C).(match e0 
-with [(CSort _) \Rightarrow u | (CHead _ _ t6) \Rightarrow t6])) in (let 
-TMP_343 \def (Bind Abbr) in (let TMP_344 \def (CHead d TMP_343 u) in (let 
-TMP_345 \def (Bind x0) in (let TMP_346 \def (CHead x1 TMP_345 x2) in (let H15 
-\def (f_equal C T TMP_342 TMP_344 TMP_346 H10) in (let TMP_388 \def (\lambda 
-(H16: (eq B Abbr x0)).(\lambda (H17: (eq C d x1)).(let TMP_349 \def (\lambda 
-(t6: T).(let TMP_347 \def (S i) in (let TMP_348 \def (minus i0 TMP_347) in 
-(subst0 TMP_348 u0 t6 x3)))) in (let H18 \def (eq_ind_r T x2 TMP_349 H12 u 
-H15) in (let TMP_352 \def (\lambda (c3: C).(let TMP_350 \def (Bind x0) in 
-(let TMP_351 \def (CHead c3 TMP_350 x3) in (getl i c0 TMP_351)))) in (let H19 
-\def (eq_ind_r C x1 TMP_352 H11 d H17) in (let TMP_355 \def (\lambda (b: 
-B).(let TMP_353 \def (Bind b) in (let TMP_354 \def (CHead d TMP_353 x3) in 
-(getl i c0 TMP_354)))) in (let H20 \def (eq_ind_r B x0 TMP_355 H19 Abbr H16) 
-in (let TMP_356 \def (\lambda (t6: T).(subst0 i x3 t3 t6)) in (let TMP_361 
-\def (\lambda (t6: T).(let TMP_357 \def (S i) in (let TMP_358 \def (minus i0 
-TMP_357) in (let TMP_359 \def (plus TMP_358 i) in (let TMP_360 \def (S 
-TMP_359) in (subst0 TMP_360 u0 t0 t6)))))) in (let TMP_362 \def (pc3 c0 t2 
-t5) in (let TMP_384 \def (\lambda (x: T).(\lambda (H21: (subst0 i x3 t3 
-x)).(\lambda (H22: (subst0 (S (plus (minus i0 (S i)) i)) u0 t0 x)).(let 
-TMP_363 \def (S i) in (let TMP_364 \def (minus i0 TMP_363) in (let TMP_365 
-\def (plus TMP_364 i) in (let TMP_366 \def (S TMP_365) in (let TMP_367 \def 
-(\lambda (n: nat).(subst0 n u0 t0 x)) in (let TMP_368 \def (lt_plus_minus_r i 
-i0 H7) in (let H23 \def (eq_ind_r nat TMP_366 TMP_367 H22 i0 TMP_368) in (let 
-TMP_369 \def (pr2_delta c0 d x3 i H20 t2 t3 H1 x H21) in (let TMP_370 \def 
-(le_n i0) in (let TMP_371 \def (Bind Abbr) in (let TMP_372 \def (CHead e 
-TMP_371 u0) in (let TMP_373 \def (csubst0_getl_ge i0 i0 TMP_370 c c0 u0 H5 
-TMP_372 H6) in (let TMP_374 \def (pr0_refl t0) in (let TMP_375 \def 
-(pr2_delta c0 e u0 i0 TMP_373 t0 t0 TMP_374 x H23) in (let TMP_376 \def (le_n 
-i0) in (let TMP_377 \def (Bind Abbr) in (let TMP_378 \def (CHead e TMP_377 
-u0) in (let TMP_379 \def (csubst0_getl_ge i0 i0 TMP_376 c c0 u0 H5 TMP_378 
-H6) in (let TMP_380 \def (pr0_refl t0) in (let TMP_381 \def (pr2_delta c0 e 
-u0 i0 TMP_379 t0 t0 TMP_380 t5 H4) in (let TMP_382 \def (pc3_pr2_r c0 t0 t5 
-TMP_381) in (let TMP_383 \def (pc3_pr2_u2 c0 t0 x TMP_375 t5 TMP_382) in 
-(pc3_pr2_u c0 x t2 TMP_369 t5 TMP_383)))))))))))))))))))))))))) in (let 
-TMP_385 \def (S i) in (let TMP_386 \def (minus i0 TMP_385) in (let TMP_387 
-\def (subst0_subst0_back t3 t0 u i H2 x3 u0 TMP_386 H18) in (ex2_ind T 
-TMP_356 TMP_361 TMP_362 TMP_384 TMP_387)))))))))))))))) in (let TMP_389 \def 
-(TMP_388 H14) in (TMP_389 H13)))))))))))))))))))))))))))) in (ex3_4_ind B C T 
-T TMP_324 TMP_327 TMP_330 TMP_331 TMP_390 H9))))))) in (let TMP_439 \def 
-(\lambda (H9: (ex3_4 B C C T (\lambda (b: B).(\lambda (e1: C).(\lambda (_: 
-C).(\lambda (u1: T).(eq C (CHead d (Bind Abbr) u) (CHead e1 (Bind b) u1)))))) 
-(\lambda (b: B).(\lambda (_: C).(\lambda (e2: C).(\lambda (u1: T).(getl i c0 
-(CHead e2 (Bind b) u1)))))) (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: 
-C).(\lambda (_: T).(csubst0 (minus i0 (S i)) u0 e1 e2))))))).(let TMP_396 
-\def (\lambda (b: B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(let 
-TMP_392 \def (Bind Abbr) in (let TMP_393 \def (CHead d TMP_392 u) in (let 
-TMP_394 \def (Bind b) in (let TMP_395 \def (CHead e1 TMP_394 u1) in (eq C 
-TMP_393 TMP_395))))))))) in (let TMP_399 \def (\lambda (b: B).(\lambda (_: 
-C).(\lambda (e2: C).(\lambda (u1: T).(let TMP_397 \def (Bind b) in (let 
-TMP_398 \def (CHead e2 TMP_397 u1) in (getl i c0 TMP_398))))))) in (let 
-TMP_402 \def (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: 
-T).(let TMP_400 \def (S i) in (let TMP_401 \def (minus i0 TMP_400) in 
-(csubst0 TMP_401 u0 e1 e2))))))) in (let TMP_403 \def (pc3 c0 t2 t5) in (let 
-TMP_438 \def (\lambda (x0: B).(\lambda (x1: C).(\lambda (x2: C).(\lambda (x3: 
-T).(\lambda (H10: (eq C (CHead d (Bind Abbr) u) (CHead x1 (Bind x0) 
-x3))).(\lambda (H11: (getl i c0 (CHead x2 (Bind x0) x3))).(\lambda (H12: 
-(csubst0 (minus i0 (S i)) u0 x1 x2)).(let TMP_404 \def (\lambda (e0: 
-C).(match e0 with [(CSort _) \Rightarrow d | (CHead c3 _ _) \Rightarrow c3])) 
-in (let TMP_405 \def (Bind Abbr) in (let TMP_406 \def (CHead d TMP_405 u) in 
-(let TMP_407 \def (Bind x0) in (let TMP_408 \def (CHead x1 TMP_407 x3) in 
-(let H13 \def (f_equal C C TMP_404 TMP_406 TMP_408 H10) in (let TMP_409 \def 
-(\lambda (e0: C).(match e0 with [(CSort _) \Rightarrow Abbr | (CHead _ k _) 
-\Rightarrow (match k with [(Bind b) \Rightarrow b | (Flat _) \Rightarrow 
-Abbr])])) in (let TMP_410 \def (Bind Abbr) in (let TMP_411 \def (CHead d 
-TMP_410 u) in (let TMP_412 \def (Bind x0) in (let TMP_413 \def (CHead x1 
-TMP_412 x3) in (let H14 \def (f_equal C B TMP_409 TMP_411 TMP_413 H10) in 
-(let TMP_414 \def (\lambda (e0: C).(match e0 with [(CSort _) \Rightarrow u | 
-(CHead _ _ t6) \Rightarrow t6])) in (let TMP_415 \def (Bind Abbr) in (let 
-TMP_416 \def (CHead d TMP_415 u) in (let TMP_417 \def (Bind x0) in (let 
-TMP_418 \def (CHead x1 TMP_417 x3) in (let H15 \def (f_equal C T TMP_414 
-TMP_416 TMP_418 H10) in (let TMP_436 \def (\lambda (H16: (eq B Abbr 
-x0)).(\lambda (H17: (eq C d x1)).(let TMP_421 \def (\lambda (t6: T).(let 
-TMP_419 \def (Bind x0) in (let TMP_420 \def (CHead x2 TMP_419 t6) in (getl i 
-c0 TMP_420)))) in (let H18 \def (eq_ind_r T x3 TMP_421 H11 u H15) in (let 
-TMP_424 \def (\lambda (c3: C).(let TMP_422 \def (S i) in (let TMP_423 \def 
-(minus i0 TMP_422) in (csubst0 TMP_423 u0 c3 x2)))) in (let H19 \def 
-(eq_ind_r C x1 TMP_424 H12 d H17) in (let TMP_427 \def (\lambda (b: B).(let 
-TMP_425 \def (Bind b) in (let TMP_426 \def (CHead x2 TMP_425 u) in (getl i c0 
-TMP_426)))) in (let H20 \def (eq_ind_r B x0 TMP_427 H18 Abbr H16) in (let 
-TMP_428 \def (pr2_delta c0 x2 u i H20 t2 t3 H1 t0 H2) in (let TMP_429 \def 
-(le_n i0) in (let TMP_430 \def (Bind Abbr) in (let TMP_431 \def (CHead e 
-TMP_430 u0) in (let TMP_432 \def (csubst0_getl_ge i0 i0 TMP_429 c c0 u0 H5 
-TMP_431 H6) in (let TMP_433 \def (pr0_refl t0) in (let TMP_434 \def 
-(pr2_delta c0 e u0 i0 TMP_432 t0 t0 TMP_433 t5 H4) in (let TMP_435 \def 
-(pc3_pr2_r c0 t0 t5 TMP_434) in (pc3_pr2_u c0 t0 t2 TMP_428 t5 
-TMP_435))))))))))))))))) in (let TMP_437 \def (TMP_436 H14) in (TMP_437 
-H13)))))))))))))))))))))))))))) in (ex3_4_ind B C C T TMP_396 TMP_399 TMP_402 
-TMP_403 TMP_438 H9))))))) in (let TMP_514 \def (\lambda (H9: (ex4_5 B C C T T 
+(minus i0 (S i)) u0 u1 w))))))).(ex3_4_ind B C T T (\lambda (b: B).(\lambda 
+(e0: C).(\lambda (u1: T).(\lambda (_: T).(eq C (CHead d (Bind Abbr) u) (CHead 
+e0 (Bind b) u1)))))) (\lambda (b: B).(\lambda (e0: C).(\lambda (_: 
+T).(\lambda (w: T).(getl i c0 (CHead e0 (Bind b) w)))))) (\lambda (_: 
+B).(\lambda (_: C).(\lambda (u1: T).(\lambda (w: T).(subst0 (minus i0 (S i)) 
+u0 u1 w))))) (pc3 c0 t2 t5) (\lambda (x0: B).(\lambda (x1: C).(\lambda (x2: 
+T).(\lambda (x3: T).(\lambda (H10: (eq C (CHead d (Bind Abbr) u) (CHead x1 
+(Bind x0) x2))).(\lambda (H11: (getl i c0 (CHead x1 (Bind x0) x3))).(\lambda 
+(H12: (subst0 (minus i0 (S i)) u0 x2 x3)).(let H13 \def (f_equal C C (\lambda 
+(e0: C).(match e0 with [(CSort _) \Rightarrow d | (CHead c3 _ _) \Rightarrow 
+c3])) (CHead d (Bind Abbr) u) (CHead x1 (Bind x0) x2) H10) in ((let H14 \def 
+(f_equal C B (\lambda (e0: C).(match e0 with [(CSort _) \Rightarrow Abbr | 
+(CHead _ k _) \Rightarrow (match k with [(Bind b) \Rightarrow b | (Flat _) 
+\Rightarrow Abbr])])) (CHead d (Bind Abbr) u) (CHead x1 (Bind x0) x2) H10) in 
+((let H15 \def (f_equal C T (\lambda (e0: C).(match e0 with [(CSort _) 
+\Rightarrow u | (CHead _ _ t6) \Rightarrow t6])) (CHead d (Bind Abbr) u) 
+(CHead x1 (Bind x0) x2) H10) in (\lambda (H16: (eq B Abbr x0)).(\lambda (H17: 
+(eq C d x1)).(let H18 \def (eq_ind_r T x2 (\lambda (t6: T).(subst0 (minus i0 
+(S i)) u0 t6 x3)) H12 u H15) in (let H19 \def (eq_ind_r C x1 (\lambda (c3: 
+C).(getl i c0 (CHead c3 (Bind x0) x3))) H11 d H17) in (let H20 \def (eq_ind_r 
+B x0 (\lambda (b: B).(getl i c0 (CHead d (Bind b) x3))) H19 Abbr H16) in 
+(ex2_ind T (\lambda (t6: T).(subst0 i x3 t3 t6)) (\lambda (t6: T).(subst0 (S 
+(plus (minus i0 (S i)) i)) u0 t0 t6)) (pc3 c0 t2 t5) (\lambda (x: T).(\lambda 
+(H21: (subst0 i x3 t3 x)).(\lambda (H22: (subst0 (S (plus (minus i0 (S i)) 
+i)) u0 t0 x)).(let H23 \def (eq_ind_r nat (S (plus (minus i0 (S i)) i)) 
+(\lambda (n: nat).(subst0 n u0 t0 x)) H22 i0 (lt_plus_minus_r i i0 H7)) in 
+(pc3_pr2_u c0 x t2 (pr2_delta c0 d x3 i H20 t2 t3 H1 x H21) t5 (pc3_pr2_u2 c0 
+t0 x (pr2_delta c0 e u0 i0 (csubst0_getl_ge i0 i0 (le_n i0) c c0 u0 H5 (CHead 
+e (Bind Abbr) u0) H6) t0 t0 (pr0_refl t0) x H23) t5 (pc3_pr2_r c0 t0 t5 
+(pr2_delta c0 e u0 i0 (csubst0_getl_ge i0 i0 (le_n i0) c c0 u0 H5 (CHead e 
+(Bind Abbr) u0) H6) t0 t0 (pr0_refl t0) t5 H4)))))))) (subst0_subst0_back t3 
+t0 u i H2 x3 u0 (minus i0 (S i)) H18)))))))) H14)) H13))))))))) H9)) (\lambda 
+(H9: (ex3_4 B C C T (\lambda (b: B).(\lambda (e1: C).(\lambda (_: C).(\lambda 
+(u1: T).(eq C (CHead d (Bind Abbr) u) (CHead e1 (Bind b) u1)))))) (\lambda 
+(b: B).(\lambda (_: C).(\lambda (e2: C).(\lambda (u1: T).(getl i c0 (CHead e2 
+(Bind b) u1)))))) (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: C).(\lambda 
+(_: T).(csubst0 (minus i0 (S i)) u0 e1 e2))))))).(ex3_4_ind B C C T (\lambda 
+(b: B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(eq C (CHead d (Bind 
+Abbr) u) (CHead e1 (Bind b) u1)))))) (\lambda (b: B).(\lambda (_: C).(\lambda 
+(e2: C).(\lambda (u1: T).(getl i c0 (CHead e2 (Bind b) u1)))))) (\lambda (_: 
+B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(csubst0 (minus i0 (S 
+i)) u0 e1 e2))))) (pc3 c0 t2 t5) (\lambda (x0: B).(\lambda (x1: C).(\lambda 
+(x2: C).(\lambda (x3: T).(\lambda (H10: (eq C (CHead d (Bind Abbr) u) (CHead 
+x1 (Bind x0) x3))).(\lambda (H11: (getl i c0 (CHead x2 (Bind x0) 
+x3))).(\lambda (H12: (csubst0 (minus i0 (S i)) u0 x1 x2)).(let H13 \def 
+(f_equal C C (\lambda (e0: C).(match e0 with [(CSort _) \Rightarrow d | 
+(CHead c3 _ _) \Rightarrow c3])) (CHead d (Bind Abbr) u) (CHead x1 (Bind x0) 
+x3) H10) in ((let H14 \def (f_equal C B (\lambda (e0: C).(match e0 with 
+[(CSort _) \Rightarrow Abbr | (CHead _ k _) \Rightarrow (match k with [(Bind 
+b) \Rightarrow b | (Flat _) \Rightarrow Abbr])])) (CHead d (Bind Abbr) u) 
+(CHead x1 (Bind x0) x3) H10) in ((let H15 \def (f_equal C T (\lambda (e0: 
+C).(match e0 with [(CSort _) \Rightarrow u | (CHead _ _ t6) \Rightarrow t6])) 
+(CHead d (Bind Abbr) u) (CHead x1 (Bind x0) x3) H10) in (\lambda (H16: (eq B 
+Abbr x0)).(\lambda (H17: (eq C d x1)).(let H18 \def (eq_ind_r T x3 (\lambda 
+(t6: T).(getl i c0 (CHead x2 (Bind x0) t6))) H11 u H15) in (let H19 \def 
+(eq_ind_r C x1 (\lambda (c3: C).(csubst0 (minus i0 (S i)) u0 c3 x2)) H12 d 
+H17) in (let H20 \def (eq_ind_r B x0 (\lambda (b: B).(getl i c0 (CHead x2 
+(Bind b) u))) H18 Abbr H16) in (pc3_pr2_u c0 t0 t2 (pr2_delta c0 x2 u i H20 
+t2 t3 H1 t0 H2) t5 (pc3_pr2_r c0 t0 t5 (pr2_delta c0 e u0 i0 (csubst0_getl_ge 
+i0 i0 (le_n i0) c c0 u0 H5 (CHead e (Bind Abbr) u0) H6) t0 t0 (pr0_refl t0) 
+t5 H4))))))))) H14)) H13))))))))) H9)) (\lambda (H9: (ex4_5 B C C T T 
 (\lambda (b: B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda 
 (_: T).(eq C (CHead d (Bind Abbr) u) (CHead e1 (Bind b) u1))))))) (\lambda 
 (b: B).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (w: T).(getl 
 i c0 (CHead e2 (Bind b) w))))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: 
 C).(\lambda (u1: T).(\lambda (w: T).(subst0 (minus i0 (S i)) u0 u1 w)))))) 
 (\lambda (_: B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
-(_: T).(csubst0 (minus i0 (S i)) u0 e1 e2)))))))).(let TMP_444 \def (\lambda 
-(b: B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(let 
-TMP_440 \def (Bind Abbr) in (let TMP_441 \def (CHead d TMP_440 u) in (let 
-TMP_442 \def (Bind b) in (let TMP_443 \def (CHead e1 TMP_442 u1) in (eq C 
-TMP_441 TMP_443)))))))))) in (let TMP_447 \def (\lambda (b: B).(\lambda (_: 
-C).(\lambda (e2: C).(\lambda (_: T).(\lambda (w: T).(let TMP_445 \def (Bind 
-b) in (let TMP_446 \def (CHead e2 TMP_445 w) in (getl i c0 TMP_446)))))))) in 
-(let TMP_450 \def (\lambda (_: B).(\lambda (_: C).(\lambda (_: C).(\lambda 
-(u1: T).(\lambda (w: T).(let TMP_448 \def (S i) in (let TMP_449 \def (minus 
-i0 TMP_448) in (subst0 TMP_449 u0 u1 w)))))))) in (let TMP_453 \def (\lambda 
-(_: B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (_: T).(let 
-TMP_451 \def (S i) in (let TMP_452 \def (minus i0 TMP_451) in (csubst0 
-TMP_452 u0 e1 e2)))))))) in (let TMP_454 \def (pc3 c0 t2 t5) in (let TMP_513 
-\def (\lambda (x0: B).(\lambda (x1: C).(\lambda (x2: C).(\lambda (x3: 
-T).(\lambda (x4: T).(\lambda (H10: (eq C (CHead d (Bind Abbr) u) (CHead x1 
-(Bind x0) x3))).(\lambda (H11: (getl i c0 (CHead x2 (Bind x0) x4))).(\lambda 
-(H12: (subst0 (minus i0 (S i)) u0 x3 x4)).(\lambda (H13: (csubst0 (minus i0 
-(S i)) u0 x1 x2)).(let TMP_455 \def (\lambda (e0: C).(match e0 with [(CSort 
-_) \Rightarrow d | (CHead c3 _ _) \Rightarrow c3])) in (let TMP_456 \def 
-(Bind Abbr) in (let TMP_457 \def (CHead d TMP_456 u) in (let TMP_458 \def 
-(Bind x0) in (let TMP_459 \def (CHead x1 TMP_458 x3) in (let H14 \def 
-(f_equal C C TMP_455 TMP_457 TMP_459 H10) in (let TMP_460 \def (\lambda (e0: 
+(_: T).(csubst0 (minus i0 (S i)) u0 e1 e2)))))))).(ex4_5_ind B C C T T 
+(\lambda (b: B).(\lambda (e1: C).(\lambda (_: C).(\lambda (u1: T).(\lambda 
+(_: T).(eq C (CHead d (Bind Abbr) u) (CHead e1 (Bind b) u1))))))) (\lambda 
+(b: B).(\lambda (_: C).(\lambda (e2: C).(\lambda (_: T).(\lambda (w: T).(getl 
+i c0 (CHead e2 (Bind b) w))))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: 
+C).(\lambda (u1: T).(\lambda (w: T).(subst0 (minus i0 (S i)) u0 u1 w)))))) 
+(\lambda (_: B).(\lambda (e1: C).(\lambda (e2: C).(\lambda (_: T).(\lambda 
+(_: T).(csubst0 (minus i0 (S i)) u0 e1 e2)))))) (pc3 c0 t2 t5) (\lambda (x0: 
+B).(\lambda (x1: C).(\lambda (x2: C).(\lambda (x3: T).(\lambda (x4: 
+T).(\lambda (H10: (eq C (CHead d (Bind Abbr) u) (CHead x1 (Bind x0) 
+x3))).(\lambda (H11: (getl i c0 (CHead x2 (Bind x0) x4))).(\lambda (H12: 
+(subst0 (minus i0 (S i)) u0 x3 x4)).(\lambda (H13: (csubst0 (minus i0 (S i)) 
+u0 x1 x2)).(let H14 \def (f_equal C C (\lambda (e0: C).(match e0 with [(CSort 
+_) \Rightarrow d | (CHead c3 _ _) \Rightarrow c3])) (CHead d (Bind Abbr) u) 
+(CHead x1 (Bind x0) x3) H10) in ((let H15 \def (f_equal C B (\lambda (e0: 
 C).(match e0 with [(CSort _) \Rightarrow Abbr | (CHead _ k _) \Rightarrow 
-(match k with [(Bind b) \Rightarrow b | (Flat _) \Rightarrow Abbr])])) in 
-(let TMP_461 \def (Bind Abbr) in (let TMP_462 \def (CHead d TMP_461 u) in 
-(let TMP_463 \def (Bind x0) in (let TMP_464 \def (CHead x1 TMP_463 x3) in 
-(let H15 \def (f_equal C B TMP_460 TMP_462 TMP_464 H10) in (let TMP_465 \def 
+(match k with [(Bind b) \Rightarrow b | (Flat _) \Rightarrow Abbr])])) (CHead 
+d (Bind Abbr) u) (CHead x1 (Bind x0) x3) H10) in ((let H16 \def (f_equal C T 
 (\lambda (e0: C).(match e0 with [(CSort _) \Rightarrow u | (CHead _ _ t6) 
-\Rightarrow t6])) in (let TMP_466 \def (Bind Abbr) in (let TMP_467 \def 
-(CHead d TMP_466 u) in (let TMP_468 \def (Bind x0) in (let TMP_469 \def 
-(CHead x1 TMP_468 x3) in (let H16 \def (f_equal C T TMP_465 TMP_467 TMP_469 
-H10) in (let TMP_511 \def (\lambda (H17: (eq B Abbr x0)).(\lambda (H18: (eq C 
-d x1)).(let TMP_472 \def (\lambda (t6: T).(let TMP_470 \def (S i) in (let 
-TMP_471 \def (minus i0 TMP_470) in (subst0 TMP_471 u0 t6 x4)))) in (let H19 
-\def (eq_ind_r T x3 TMP_472 H12 u H16) in (let TMP_475 \def (\lambda (c3: 
-C).(let TMP_473 \def (S i) in (let TMP_474 \def (minus i0 TMP_473) in 
-(csubst0 TMP_474 u0 c3 x2)))) in (let H20 \def (eq_ind_r C x1 TMP_475 H13 d 
-H18) in (let TMP_478 \def (\lambda (b: B).(let TMP_476 \def (Bind b) in (let 
-TMP_477 \def (CHead x2 TMP_476 x4) in (getl i c0 TMP_477)))) in (let H21 \def 
-(eq_ind_r B x0 TMP_478 H11 Abbr H17) in (let TMP_479 \def (\lambda (t6: 
-T).(subst0 i x4 t3 t6)) in (let TMP_484 \def (\lambda (t6: T).(let TMP_480 
-\def (S i) in (let TMP_481 \def (minus i0 TMP_480) in (let TMP_482 \def (plus 
-TMP_481 i) in (let TMP_483 \def (S TMP_482) in (subst0 TMP_483 u0 t0 t6)))))) 
-in (let TMP_485 \def (pc3 c0 t2 t5) in (let TMP_507 \def (\lambda (x: 
-T).(\lambda (H22: (subst0 i x4 t3 x)).(\lambda (H23: (subst0 (S (plus (minus 
-i0 (S i)) i)) u0 t0 x)).(let TMP_486 \def (S i) in (let TMP_487 \def (minus 
-i0 TMP_486) in (let TMP_488 \def (plus TMP_487 i) in (let TMP_489 \def (S 
-TMP_488) in (let TMP_490 \def (\lambda (n: nat).(subst0 n u0 t0 x)) in (let 
-TMP_491 \def (lt_plus_minus_r i i0 H7) in (let H24 \def (eq_ind_r nat TMP_489 
-TMP_490 H23 i0 TMP_491) in (let TMP_492 \def (pr2_delta c0 x2 x4 i H21 t2 t3 
-H1 x H22) in (let TMP_493 \def (le_n i0) in (let TMP_494 \def (Bind Abbr) in 
-(let TMP_495 \def (CHead e TMP_494 u0) in (let TMP_496 \def (csubst0_getl_ge 
-i0 i0 TMP_493 c c0 u0 H5 TMP_495 H6) in (let TMP_497 \def (pr0_refl t0) in 
-(let TMP_498 \def (pr2_delta c0 e u0 i0 TMP_496 t0 t0 TMP_497 x H24) in (let 
-TMP_499 \def (le_n i0) in (let TMP_500 \def (Bind Abbr) in (let TMP_501 \def 
-(CHead e TMP_500 u0) in (let TMP_502 \def (csubst0_getl_ge i0 i0 TMP_499 c c0 
-u0 H5 TMP_501 H6) in (let TMP_503 \def (pr0_refl t0) in (let TMP_504 \def 
-(pr2_delta c0 e u0 i0 TMP_502 t0 t0 TMP_503 t5 H4) in (let TMP_505 \def 
-(pc3_pr2_r c0 t0 t5 TMP_504) in (let TMP_506 \def (pc3_pr2_u2 c0 t0 x TMP_498 
-t5 TMP_505) in (pc3_pr2_u c0 x t2 TMP_492 t5 
-TMP_506)))))))))))))))))))))))))) in (let TMP_508 \def (S i) in (let TMP_509 
-\def (minus i0 TMP_508) in (let TMP_510 \def (subst0_subst0_back t3 t0 u i H2 
-x4 u0 TMP_509 H19) in (ex2_ind T TMP_479 TMP_484 TMP_485 TMP_507 
-TMP_510)))))))))))))))) in (let TMP_512 \def (TMP_511 H15) in (TMP_512 
-H14)))))))))))))))))))))))))))))) in (ex4_5_ind B C C T T TMP_444 TMP_447 
-TMP_450 TMP_453 TMP_454 TMP_513 H9)))))))) in (or4_ind TMP_266 TMP_278 
-TMP_290 TMP_305 TMP_306 TMP_319 TMP_391 TMP_439 TMP_514 
-H8)))))))))))))))))))))))))) in (let TMP_527 \def (\lambda (H7: (le i0 
-i)).(let TMP_516 \def (Bind Abbr) in (let TMP_517 \def (CHead d TMP_516 u) in 
-(let TMP_518 \def (csubst0_getl_ge i0 i H7 c c0 u0 H5 TMP_517 H0) in (let 
-TMP_519 \def (pr2_delta c0 d u i TMP_518 t2 t3 H1 t0 H2) in (let TMP_520 \def 
-(le_n i0) in (let TMP_521 \def (Bind Abbr) in (let TMP_522 \def (CHead e 
-TMP_521 u0) in (let TMP_523 \def (csubst0_getl_ge i0 i0 TMP_520 c c0 u0 H5 
-TMP_522 H6) in (let TMP_524 \def (pr0_refl t0) in (let TMP_525 \def 
-(pr2_delta c0 e u0 i0 TMP_523 t0 t0 TMP_524 t5 H4) in (let TMP_526 \def 
-(pc3_pr2_r c0 t0 t5 TMP_525) in (pc3_pr2_u c0 t0 t2 TMP_519 t5 
-TMP_526))))))))))))) in (lt_le_e i i0 TMP_261 TMP_515 TMP_527)))))))))) in 
-(fsubst0_ind i0 u0 c t0 TMP_20 TMP_31 TMP_260 TMP_528 c2 t4 
-H3)))))))))))))))))))) in (pr2_ind TMP_1 TMP_19 TMP_529 c1 t t1 H))))))).
+\Rightarrow t6])) (CHead d (Bind Abbr) u) (CHead x1 (Bind x0) x3) H10) in 
+(\lambda (H17: (eq B Abbr x0)).(\lambda (H18: (eq C d x1)).(let H19 \def 
+(eq_ind_r T x3 (\lambda (t6: T).(subst0 (minus i0 (S i)) u0 t6 x4)) H12 u 
+H16) in (let H20 \def (eq_ind_r C x1 (\lambda (c3: C).(csubst0 (minus i0 (S 
+i)) u0 c3 x2)) H13 d H18) in (let H21 \def (eq_ind_r B x0 (\lambda (b: 
+B).(getl i c0 (CHead x2 (Bind b) x4))) H11 Abbr H17) in (ex2_ind T (\lambda 
+(t6: T).(subst0 i x4 t3 t6)) (\lambda (t6: T).(subst0 (S (plus (minus i0 (S 
+i)) i)) u0 t0 t6)) (pc3 c0 t2 t5) (\lambda (x: T).(\lambda (H22: (subst0 i x4 
+t3 x)).(\lambda (H23: (subst0 (S (plus (minus i0 (S i)) i)) u0 t0 x)).(let 
+H24 \def (eq_ind_r nat (S (plus (minus i0 (S i)) i)) (\lambda (n: 
+nat).(subst0 n u0 t0 x)) H23 i0 (lt_plus_minus_r i i0 H7)) in (pc3_pr2_u c0 x 
+t2 (pr2_delta c0 x2 x4 i H21 t2 t3 H1 x H22) t5 (pc3_pr2_u2 c0 t0 x 
+(pr2_delta c0 e u0 i0 (csubst0_getl_ge i0 i0 (le_n i0) c c0 u0 H5 (CHead e 
+(Bind Abbr) u0) H6) t0 t0 (pr0_refl t0) x H24) t5 (pc3_pr2_r c0 t0 t5 
+(pr2_delta c0 e u0 i0 (csubst0_getl_ge i0 i0 (le_n i0) c c0 u0 H5 (CHead e 
+(Bind Abbr) u0) H6) t0 t0 (pr0_refl t0) t5 H4)))))))) (subst0_subst0_back t3 
+t0 u i H2 x4 u0 (minus i0 (S i)) H19)))))))) H15)) H14))))))))))) H9)) H8))) 
+(\lambda (H7: (le i0 i)).(pc3_pr2_u c0 t0 t2 (pr2_delta c0 d u i 
+(csubst0_getl_ge i0 i H7 c c0 u0 H5 (CHead d (Bind Abbr) u) H0) t2 t3 H1 t0 
+H2) t5 (pc3_pr2_r c0 t0 t5 (pr2_delta c0 e u0 i0 (csubst0_getl_ge i0 i0 (le_n 
+i0) c c0 u0 H5 (CHead e (Bind Abbr) u0) H6) t0 t0 (pr0_refl t0) t5 
+H4))))))))))) c2 t4 H3)))))))))))))))) c1 t t1 H)))).
 
 theorem pc3_fsubst0:
  \forall (c1: C).(\forall (t1: T).(\forall (t: T).((pc3 c1 t1 t) \to (\forall 
@@ -1070,75 +640,58 @@ t1 c2 t2) \to (\forall (e: C).((getl i c1 (CHead e (Bind Abbr) u)) \to (pc3
 c2 t2 t)))))))))))
 \def
  \lambda (c1: C).(\lambda (t1: T).(\lambda (t: T).(\lambda (H: (pc3 c1 t1 
-t)).(let TMP_1 \def (\lambda (t0: T).(\lambda (t2: T).(\forall (i: 
+t)).(pc3_ind_left c1 (\lambda (t0: T).(\lambda (t2: T).(\forall (i: 
 nat).(\forall (u: T).(\forall (c2: C).(\forall (t3: T).((fsubst0 i u c1 t0 c2 
 t3) \to (\forall (e: C).((getl i c1 (CHead e (Bind Abbr) u)) \to (pc3 c2 t3 
-t2)))))))))) in (let TMP_14 \def (\lambda (t0: T).(\lambda (i: nat).(\lambda 
-(u: T).(\lambda (c2: C).(\lambda (t2: T).(\lambda (H0: (fsubst0 i u c1 t0 c2 
-t2)).(let TMP_2 \def (\lambda (c: C).(\lambda (t3: T).(\forall (e: C).((getl 
-i c1 (CHead e (Bind Abbr) u)) \to (pc3 c t3 t0))))) in (let TMP_5 \def 
-(\lambda (t3: T).(\lambda (H1: (subst0 i u t0 t3)).(\lambda (e: C).(\lambda 
-(H2: (getl i c1 (CHead e (Bind Abbr) u))).(let TMP_3 \def (pr0_refl t0) in 
-(let TMP_4 \def (pr2_delta c1 e u i H2 t0 t0 TMP_3 t3 H1) in (pc3_pr2_x c1 t3 
-t0 TMP_4))))))) in (let TMP_6 \def (\lambda (c0: C).(\lambda (_: (csubst0 i u 
-c1 c0)).(\lambda (e: C).(\lambda (_: (getl i c1 (CHead e (Bind Abbr) 
-u))).(pc3_refl c0 t0))))) in (let TMP_13 \def (\lambda (t3: T).(\lambda (H1: 
-(subst0 i u t0 t3)).(\lambda (c0: C).(\lambda (H2: (csubst0 i u c1 
-c0)).(\lambda (e: C).(\lambda (H3: (getl i c1 (CHead e (Bind Abbr) u))).(let 
-TMP_7 \def (le_n i) in (let TMP_8 \def (Bind Abbr) in (let TMP_9 \def (CHead 
-e TMP_8 u) in (let TMP_10 \def (csubst0_getl_ge i i TMP_7 c1 c0 u H2 TMP_9 
-H3) in (let TMP_11 \def (pr0_refl t0) in (let TMP_12 \def (pr2_delta c0 e u i 
-TMP_10 t0 t0 TMP_11 t3 H1) in (pc3_pr2_x c0 t3 t0 TMP_12))))))))))))) in 
-(fsubst0_ind i u c1 t0 TMP_2 TMP_5 TMP_6 TMP_13 c2 t2 H0))))))))))) in (let 
-TMP_29 \def (\lambda (t0: T).(\lambda (t2: T).(\lambda (H0: (pr2 c1 t0 
-t2)).(\lambda (t3: T).(\lambda (H1: (pc3 c1 t2 t3)).(\lambda (H2: ((\forall 
-(i: nat).(\forall (u: T).(\forall (c2: C).(\forall (t4: T).((fsubst0 i u c1 
-t2 c2 t4) \to (\forall (e: C).((getl i c1 (CHead e (Bind Abbr) u)) \to (pc3 
-c2 t4 t3)))))))))).(\lambda (i: nat).(\lambda (u: T).(\lambda (c2: 
-C).(\lambda (t4: T).(\lambda (H3: (fsubst0 i u c1 t0 c2 t4)).(let TMP_15 \def 
-(\lambda (c: C).(\lambda (t5: T).(\forall (e: C).((getl i c1 (CHead e (Bind 
-Abbr) u)) \to (pc3 c t5 t3))))) in (let TMP_18 \def (\lambda (t5: T).(\lambda 
-(H4: (subst0 i u t0 t5)).(\lambda (e: C).(\lambda (H5: (getl i c1 (CHead e 
-(Bind Abbr) u))).(let TMP_16 \def (fsubst0_snd i u c1 t0 t5 H4) in (let 
-TMP_17 \def (pc3_pr2_fsubst0 c1 t0 t2 H0 i u c1 t5 TMP_16 e H5) in (pc3_t t2 
-c1 t5 TMP_17 t3 H1))))))) in (let TMP_23 \def (\lambda (c0: C).(\lambda (H4: 
-(csubst0 i u c1 c0)).(\lambda (e: C).(\lambda (H5: (getl i c1 (CHead e (Bind 
-Abbr) u))).(let TMP_19 \def (fsubst0_fst i u c1 t0 c0 H4) in (let TMP_20 \def 
-(pc3_pr2_fsubst0 c1 t0 t2 H0 i u c0 t0 TMP_19 e H5) in (let TMP_21 \def 
-(fsubst0_fst i u c1 t2 c0 H4) in (let TMP_22 \def (H2 i u c0 t2 TMP_21 e H5) 
-in (pc3_t t2 c0 t0 TMP_20 t3 TMP_22))))))))) in (let TMP_28 \def (\lambda 
-(t5: T).(\lambda (H4: (subst0 i u t0 t5)).(\lambda (c0: C).(\lambda (H5: 
-(csubst0 i u c1 c0)).(\lambda (e: C).(\lambda (H6: (getl i c1 (CHead e (Bind 
-Abbr) u))).(let TMP_24 \def (fsubst0_both i u c1 t0 t5 H4 c0 H5) in (let 
-TMP_25 \def (pc3_pr2_fsubst0 c1 t0 t2 H0 i u c0 t5 TMP_24 e H6) in (let 
-TMP_26 \def (fsubst0_fst i u c1 t2 c0 H5) in (let TMP_27 \def (H2 i u c0 t2 
-TMP_26 e H6) in (pc3_t t2 c0 t5 TMP_25 t3 TMP_27))))))))))) in (fsubst0_ind i 
-u c1 t0 TMP_15 TMP_18 TMP_23 TMP_28 c2 t4 H3)))))))))))))))) in (let TMP_47 
-\def (\lambda (t0: T).(\lambda (t2: T).(\lambda (H0: (pr2 c1 t0 t2)).(\lambda 
-(t3: T).(\lambda (H1: (pc3 c1 t0 t3)).(\lambda (H2: ((\forall (i: 
-nat).(\forall (u: T).(\forall (c2: C).(\forall (t4: T).((fsubst0 i u c1 t0 c2 
-t4) \to (\forall (e: C).((getl i c1 (CHead e (Bind Abbr) u)) \to (pc3 c2 t4 
+t2)))))))))) (\lambda (t0: T).(\lambda (i: nat).(\lambda (u: T).(\lambda (c2: 
+C).(\lambda (t2: T).(\lambda (H0: (fsubst0 i u c1 t0 c2 t2)).(fsubst0_ind i u 
+c1 t0 (\lambda (c: C).(\lambda (t3: T).(\forall (e: C).((getl i c1 (CHead e 
+(Bind Abbr) u)) \to (pc3 c t3 t0))))) (\lambda (t3: T).(\lambda (H1: (subst0 
+i u t0 t3)).(\lambda (e: C).(\lambda (H2: (getl i c1 (CHead e (Bind Abbr) 
+u))).(pc3_pr2_x c1 t3 t0 (pr2_delta c1 e u i H2 t0 t0 (pr0_refl t0) t3 
+H1)))))) (\lambda (c0: C).(\lambda (_: (csubst0 i u c1 c0)).(\lambda (e: 
+C).(\lambda (_: (getl i c1 (CHead e (Bind Abbr) u))).(pc3_refl c0 t0))))) 
+(\lambda (t3: T).(\lambda (H1: (subst0 i u t0 t3)).(\lambda (c0: C).(\lambda 
+(H2: (csubst0 i u c1 c0)).(\lambda (e: C).(\lambda (H3: (getl i c1 (CHead e 
+(Bind Abbr) u))).(pc3_pr2_x c0 t3 t0 (pr2_delta c0 e u i (csubst0_getl_ge i i 
+(le_n i) c1 c0 u H2 (CHead e (Bind Abbr) u) H3) t0 t0 (pr0_refl t0) t3 
+H1)))))))) c2 t2 H0))))))) (\lambda (t0: T).(\lambda (t2: T).(\lambda (H0: 
+(pr2 c1 t0 t2)).(\lambda (t3: T).(\lambda (H1: (pc3 c1 t2 t3)).(\lambda (H2: 
+((\forall (i: nat).(\forall (u: T).(\forall (c2: C).(\forall (t4: 
+T).((fsubst0 i u c1 t2 c2 t4) \to (\forall (e: C).((getl i c1 (CHead e (Bind 
+Abbr) u)) \to (pc3 c2 t4 t3)))))))))).(\lambda (i: nat).(\lambda (u: 
+T).(\lambda (c2: C).(\lambda (t4: T).(\lambda (H3: (fsubst0 i u c1 t0 c2 
+t4)).(fsubst0_ind i u c1 t0 (\lambda (c: C).(\lambda (t5: T).(\forall (e: 
+C).((getl i c1 (CHead e (Bind Abbr) u)) \to (pc3 c t5 t3))))) (\lambda (t5: 
+T).(\lambda (H4: (subst0 i u t0 t5)).(\lambda (e: C).(\lambda (H5: (getl i c1 
+(CHead e (Bind Abbr) u))).(pc3_t t2 c1 t5 (pc3_pr2_fsubst0 c1 t0 t2 H0 i u c1 
+t5 (fsubst0_snd i u c1 t0 t5 H4) e H5) t3 H1))))) (\lambda (c0: C).(\lambda 
+(H4: (csubst0 i u c1 c0)).(\lambda (e: C).(\lambda (H5: (getl i c1 (CHead e 
+(Bind Abbr) u))).(pc3_t t2 c0 t0 (pc3_pr2_fsubst0 c1 t0 t2 H0 i u c0 t0 
+(fsubst0_fst i u c1 t0 c0 H4) e H5) t3 (H2 i u c0 t2 (fsubst0_fst i u c1 t2 
+c0 H4) e H5)))))) (\lambda (t5: T).(\lambda (H4: (subst0 i u t0 t5)).(\lambda 
+(c0: C).(\lambda (H5: (csubst0 i u c1 c0)).(\lambda (e: C).(\lambda (H6: 
+(getl i c1 (CHead e (Bind Abbr) u))).(pc3_t t2 c0 t5 (pc3_pr2_fsubst0 c1 t0 
+t2 H0 i u c0 t5 (fsubst0_both i u c1 t0 t5 H4 c0 H5) e H6) t3 (H2 i u c0 t2 
+(fsubst0_fst i u c1 t2 c0 H5) e H6)))))))) c2 t4 H3)))))))))))) (\lambda (t0: 
+T).(\lambda (t2: T).(\lambda (H0: (pr2 c1 t0 t2)).(\lambda (t3: T).(\lambda 
+(H1: (pc3 c1 t0 t3)).(\lambda (H2: ((\forall (i: nat).(\forall (u: 
+T).(\forall (c2: C).(\forall (t4: T).((fsubst0 i u c1 t0 c2 t4) \to (\forall 
+(e: C).((getl i c1 (CHead e (Bind Abbr) u)) \to (pc3 c2 t4 
 t3)))))))))).(\lambda (i: nat).(\lambda (u: T).(\lambda (c2: C).(\lambda (t4: 
-T).(\lambda (H3: (fsubst0 i u c1 t2 c2 t4)).(let TMP_30 \def (\lambda (c: 
-C).(\lambda (t5: T).(\forall (e: C).((getl i c1 (CHead e (Bind Abbr) u)) \to 
-(pc3 c t5 t3))))) in (let TMP_34 \def (\lambda (t5: T).(\lambda (H4: (subst0 
-i u t2 t5)).(\lambda (e: C).(\lambda (H5: (getl i c1 (CHead e (Bind Abbr) 
-u))).(let TMP_31 \def (fsubst0_snd i u c1 t2 t5 H4) in (let TMP_32 \def 
-(pc3_pr2_fsubst0_back c1 t0 t2 H0 i u c1 t5 TMP_31 e H5) in (let TMP_33 \def 
-(pc3_s c1 t5 t0 TMP_32) in (pc3_t t0 c1 t5 TMP_33 t3 H1)))))))) in (let 
-TMP_40 \def (\lambda (c0: C).(\lambda (H4: (csubst0 i u c1 c0)).(\lambda (e: 
-C).(\lambda (H5: (getl i c1 (CHead e (Bind Abbr) u))).(let TMP_35 \def 
-(fsubst0_fst i u c1 t2 c0 H4) in (let TMP_36 \def (pc3_pr2_fsubst0_back c1 t0 
-t2 H0 i u c0 t2 TMP_35 e H5) in (let TMP_37 \def (pc3_s c0 t2 t0 TMP_36) in 
-(let TMP_38 \def (fsubst0_fst i u c1 t0 c0 H4) in (let TMP_39 \def (H2 i u c0 
-t0 TMP_38 e H5) in (pc3_t t0 c0 t2 TMP_37 t3 TMP_39)))))))))) in (let TMP_46 
-\def (\lambda (t5: T).(\lambda (H4: (subst0 i u t2 t5)).(\lambda (c0: 
-C).(\lambda (H5: (csubst0 i u c1 c0)).(\lambda (e: C).(\lambda (H6: (getl i 
-c1 (CHead e (Bind Abbr) u))).(let TMP_41 \def (fsubst0_both i u c1 t2 t5 H4 
-c0 H5) in (let TMP_42 \def (pc3_pr2_fsubst0_back c1 t0 t2 H0 i u c0 t5 TMP_41 
-e H6) in (let TMP_43 \def (pc3_s c0 t5 t0 TMP_42) in (let TMP_44 \def 
-(fsubst0_fst i u c1 t0 c0 H5) in (let TMP_45 \def (H2 i u c0 t0 TMP_44 e H6) 
-in (pc3_t t0 c0 t5 TMP_43 t3 TMP_45)))))))))))) in (fsubst0_ind i u c1 t2 
-TMP_30 TMP_34 TMP_40 TMP_46 c2 t4 H3)))))))))))))))) in (pc3_ind_left c1 
-TMP_1 TMP_14 TMP_29 TMP_47 t1 t H)))))))).
+T).(\lambda (H3: (fsubst0 i u c1 t2 c2 t4)).(fsubst0_ind i u c1 t2 (\lambda 
+(c: C).(\lambda (t5: T).(\forall (e: C).((getl i c1 (CHead e (Bind Abbr) u)) 
+\to (pc3 c t5 t3))))) (\lambda (t5: T).(\lambda (H4: (subst0 i u t2 
+t5)).(\lambda (e: C).(\lambda (H5: (getl i c1 (CHead e (Bind Abbr) 
+u))).(pc3_t t0 c1 t5 (pc3_s c1 t5 t0 (pc3_pr2_fsubst0_back c1 t0 t2 H0 i u c1 
+t5 (fsubst0_snd i u c1 t2 t5 H4) e H5)) t3 H1))))) (\lambda (c0: C).(\lambda 
+(H4: (csubst0 i u c1 c0)).(\lambda (e: C).(\lambda (H5: (getl i c1 (CHead e 
+(Bind Abbr) u))).(pc3_t t0 c0 t2 (pc3_s c0 t2 t0 (pc3_pr2_fsubst0_back c1 t0 
+t2 H0 i u c0 t2 (fsubst0_fst i u c1 t2 c0 H4) e H5)) t3 (H2 i u c0 t0 
+(fsubst0_fst i u c1 t0 c0 H4) e H5)))))) (\lambda (t5: T).(\lambda (H4: 
+(subst0 i u t2 t5)).(\lambda (c0: C).(\lambda (H5: (csubst0 i u c1 
+c0)).(\lambda (e: C).(\lambda (H6: (getl i c1 (CHead e (Bind Abbr) 
+u))).(pc3_t t0 c0 t5 (pc3_s c0 t5 t0 (pc3_pr2_fsubst0_back c1 t0 t2 H0 i u c0 
+t5 (fsubst0_both i u c1 t2 t5 H4 c0 H5) e H6)) t3 (H2 i u c0 t0 (fsubst0_fst 
+i u c1 t0 c0 H5) e H6)))))))) c2 t4 H3)))))))))))) t1 t H)))).
 
index 9b1bbcfc2fd370bfc846609911d85bc80ed375f7..28c9587553b0010714c9587fca7c1e1517b2b686 100644 (file)
@@ -22,85 +22,75 @@ t t))) (f0: (\forall (t1: T).(\forall (t2: T).((pr2 c t1 t2) \to (\forall
 (t1: T).(\forall (t2: T).((pr2 c t1 t2) \to (\forall (t3: T).((pc3_left c t1 
 t3) \to ((P t1 t3) \to (P t2 t3)))))))) (t: T) (t0: T) (p: pc3_left c t t0) 
 on p: P t t0 \def match p with [(pc3_left_r t1) \Rightarrow (f t1) | 
-(pc3_left_ur t1 t2 p0 t3 p1) \Rightarrow (let TMP_2 \def ((pc3_left_ind c P f 
-f0 f1) t2 t3 p1) in (f0 t1 t2 p0 t3 p1 TMP_2)) | (pc3_left_ux t1 t2 p0 t3 p1) 
-\Rightarrow (let TMP_1 \def ((pc3_left_ind c P f f0 f1) t1 t3 p1) in (f1 t1 
-t2 p0 t3 p1 TMP_1))].
+(pc3_left_ur t1 t2 p0 t3 p1) \Rightarrow (f0 t1 t2 p0 t3 p1 ((pc3_left_ind c 
+P f f0 f1) t2 t3 p1)) | (pc3_left_ux t1 t2 p0 t3 p1) \Rightarrow (f1 t1 t2 p0 
+t3 p1 ((pc3_left_ind c P f f0 f1) t1 t3 p1))].
 
 theorem pc3_ind_left__pc3_left_pr3:
  \forall (c: C).(\forall (t1: T).(\forall (t2: T).((pr3 c t1 t2) \to 
 (pc3_left c t1 t2))))
 \def
  \lambda (c: C).(\lambda (t1: T).(\lambda (t2: T).(\lambda (H: (pr3 c t1 
-t2)).(let TMP_1 \def (\lambda (t: T).(\lambda (t0: T).(pc3_left c t t0))) in 
-(let TMP_2 \def (\lambda (t: T).(pc3_left_r c t)) in (let TMP_3 \def (\lambda 
-(t0: T).(\lambda (t3: T).(\lambda (H0: (pr2 c t3 t0)).(\lambda (t4: 
-T).(\lambda (_: (pr3 c t0 t4)).(\lambda (H2: (pc3_left c t0 t4)).(pc3_left_ur 
-c t3 t0 H0 t4 H2))))))) in (pr3_ind c TMP_1 TMP_2 TMP_3 t1 t2 H))))))).
+t2)).(pr3_ind c (\lambda (t: T).(\lambda (t0: T).(pc3_left c t t0))) (\lambda 
+(t: T).(pc3_left_r c t)) (\lambda (t0: T).(\lambda (t3: T).(\lambda (H0: (pr2 
+c t3 t0)).(\lambda (t4: T).(\lambda (_: (pr3 c t0 t4)).(\lambda (H2: 
+(pc3_left c t0 t4)).(pc3_left_ur c t3 t0 H0 t4 H2))))))) t1 t2 H)))).
 
 theorem pc3_ind_left__pc3_left_trans:
  \forall (c: C).(\forall (t1: T).(\forall (t2: T).((pc3_left c t1 t2) \to 
 (\forall (t3: T).((pc3_left c t2 t3) \to (pc3_left c t1 t3))))))
 \def
  \lambda (c: C).(\lambda (t1: T).(\lambda (t2: T).(\lambda (H: (pc3_left c t1 
-t2)).(let TMP_1 \def (\lambda (t: T).(\lambda (t0: T).(\forall (t3: 
-T).((pc3_left c t0 t3) \to (pc3_left c t t3))))) in (let TMP_2 \def (\lambda 
-(t: T).(\lambda (t3: T).(\lambda (H0: (pc3_left c t t3)).H0))) in (let TMP_4 
-\def (\lambda (t0: T).(\lambda (t3: T).(\lambda (H0: (pr2 c t0 t3)).(\lambda 
-(t4: T).(\lambda (_: (pc3_left c t3 t4)).(\lambda (H2: ((\forall (t5: 
-T).((pc3_left c t4 t5) \to (pc3_left c t3 t5))))).(\lambda (t5: T).(\lambda 
-(H3: (pc3_left c t4 t5)).(let TMP_3 \def (H2 t5 H3) in (pc3_left_ur c t0 t3 
-H0 t5 TMP_3)))))))))) in (let TMP_6 \def (\lambda (t0: T).(\lambda (t3: 
-T).(\lambda (H0: (pr2 c t0 t3)).(\lambda (t4: T).(\lambda (_: (pc3_left c t0 
-t4)).(\lambda (H2: ((\forall (t5: T).((pc3_left c t4 t5) \to (pc3_left c t0 
-t5))))).(\lambda (t5: T).(\lambda (H3: (pc3_left c t4 t5)).(let TMP_5 \def 
-(H2 t5 H3) in (pc3_left_ux c t0 t3 H0 t5 TMP_5)))))))))) in (pc3_left_ind c 
-TMP_1 TMP_2 TMP_4 TMP_6 t1 t2 H)))))))).
+t2)).(pc3_left_ind c (\lambda (t: T).(\lambda (t0: T).(\forall (t3: 
+T).((pc3_left c t0 t3) \to (pc3_left c t t3))))) (\lambda (t: T).(\lambda 
+(t3: T).(\lambda (H0: (pc3_left c t t3)).H0))) (\lambda (t0: T).(\lambda (t3: 
+T).(\lambda (H0: (pr2 c t0 t3)).(\lambda (t4: T).(\lambda (_: (pc3_left c t3 
+t4)).(\lambda (H2: ((\forall (t5: T).((pc3_left c t4 t5) \to (pc3_left c t3 
+t5))))).(\lambda (t5: T).(\lambda (H3: (pc3_left c t4 t5)).(pc3_left_ur c t0 
+t3 H0 t5 (H2 t5 H3)))))))))) (\lambda (t0: T).(\lambda (t3: T).(\lambda (H0: 
+(pr2 c t0 t3)).(\lambda (t4: T).(\lambda (_: (pc3_left c t0 t4)).(\lambda 
+(H2: ((\forall (t5: T).((pc3_left c t4 t5) \to (pc3_left c t0 
+t5))))).(\lambda (t5: T).(\lambda (H3: (pc3_left c t4 t5)).(pc3_left_ux c t0 
+t3 H0 t5 (H2 t5 H3)))))))))) t1 t2 H)))).
 
 theorem pc3_ind_left__pc3_left_sym:
  \forall (c: C).(\forall (t1: T).(\forall (t2: T).((pc3_left c t1 t2) \to 
 (pc3_left c t2 t1))))
 \def
  \lambda (c: C).(\lambda (t1: T).(\lambda (t2: T).(\lambda (H: (pc3_left c t1 
-t2)).(let TMP_1 \def (\lambda (t: T).(\lambda (t0: T).(pc3_left c t0 t))) in 
-(let TMP_2 \def (\lambda (t: T).(pc3_left_r c t)) in (let TMP_5 \def (\lambda 
-(t0: T).(\lambda (t3: T).(\lambda (H0: (pr2 c t0 t3)).(\lambda (t4: 
-T).(\lambda (_: (pc3_left c t3 t4)).(\lambda (H2: (pc3_left c t4 t3)).(let 
-TMP_3 \def (pc3_left_r c t0) in (let TMP_4 \def (pc3_left_ux c t0 t3 H0 t0 
-TMP_3) in (pc3_ind_left__pc3_left_trans c t4 t3 H2 t0 TMP_4))))))))) in (let 
-TMP_8 \def (\lambda (t0: T).(\lambda (t3: T).(\lambda (H0: (pr2 c t0 
-t3)).(\lambda (t4: T).(\lambda (_: (pc3_left c t0 t4)).(\lambda (H2: 
-(pc3_left c t4 t0)).(let TMP_6 \def (pc3_left_r c t3) in (let TMP_7 \def 
-(pc3_left_ur c t0 t3 H0 t3 TMP_6) in (pc3_ind_left__pc3_left_trans c t4 t0 H2 
-t3 TMP_7))))))))) in (pc3_left_ind c TMP_1 TMP_2 TMP_5 TMP_8 t1 t2 H)))))))).
+t2)).(pc3_left_ind c (\lambda (t: T).(\lambda (t0: T).(pc3_left c t0 t))) 
+(\lambda (t: T).(pc3_left_r c t)) (\lambda (t0: T).(\lambda (t3: T).(\lambda 
+(H0: (pr2 c t0 t3)).(\lambda (t4: T).(\lambda (_: (pc3_left c t3 
+t4)).(\lambda (H2: (pc3_left c t4 t3)).(pc3_ind_left__pc3_left_trans c t4 t3 
+H2 t0 (pc3_left_ux c t0 t3 H0 t0 (pc3_left_r c t0))))))))) (\lambda (t0: 
+T).(\lambda (t3: T).(\lambda (H0: (pr2 c t0 t3)).(\lambda (t4: T).(\lambda 
+(_: (pc3_left c t0 t4)).(\lambda (H2: (pc3_left c t4 
+t0)).(pc3_ind_left__pc3_left_trans c t4 t0 H2 t3 (pc3_left_ur c t0 t3 H0 t3 
+(pc3_left_r c t3))))))))) t1 t2 H)))).
 
 theorem pc3_ind_left__pc3_left_pc3:
  \forall (c: C).(\forall (t1: T).(\forall (t2: T).((pc3 c t1 t2) \to 
 (pc3_left c t1 t2))))
 \def
  \lambda (c: C).(\lambda (t1: T).(\lambda (t2: T).(\lambda (H: (pc3 c t1 
-t2)).(let H0 \def H in (let TMP_1 \def (\lambda (t: T).(pr3 c t1 t)) in (let 
-TMP_2 \def (\lambda (t: T).(pr3 c t2 t)) in (let TMP_3 \def (pc3_left c t1 
-t2) in (let TMP_7 \def (\lambda (x: T).(\lambda (H1: (pr3 c t1 x)).(\lambda 
-(H2: (pr3 c t2 x)).(let TMP_4 \def (pc3_ind_left__pc3_left_pr3 c t1 x H1) in 
-(let TMP_5 \def (pc3_ind_left__pc3_left_pr3 c t2 x H2) in (let TMP_6 \def 
-(pc3_ind_left__pc3_left_sym c t2 x TMP_5) in (pc3_ind_left__pc3_left_trans c 
-t1 x TMP_4 t2 TMP_6))))))) in (ex2_ind T TMP_1 TMP_2 TMP_3 TMP_7 H0))))))))).
+t2)).(let H0 \def H in (ex2_ind T (\lambda (t: T).(pr3 c t1 t)) (\lambda (t: 
+T).(pr3 c t2 t)) (pc3_left c t1 t2) (\lambda (x: T).(\lambda (H1: (pr3 c t1 
+x)).(\lambda (H2: (pr3 c t2 x)).(pc3_ind_left__pc3_left_trans c t1 x 
+(pc3_ind_left__pc3_left_pr3 c t1 x H1) t2 (pc3_ind_left__pc3_left_sym c t2 x 
+(pc3_ind_left__pc3_left_pr3 c t2 x H2)))))) H0))))).
 
 theorem pc3_ind_left__pc3_pc3_left:
  \forall (c: C).(\forall (t1: T).(\forall (t2: T).((pc3_left c t1 t2) \to 
 (pc3 c t1 t2))))
 \def
  \lambda (c: C).(\lambda (t1: T).(\lambda (t2: T).(\lambda (H: (pc3_left c t1 
-t2)).(let TMP_1 \def (\lambda (t: T).(\lambda (t0: T).(pc3 c t t0))) in (let 
-TMP_2 \def (\lambda (t: T).(pc3_refl c t)) in (let TMP_4 \def (\lambda (t0: 
+t2)).(pc3_left_ind c (\lambda (t: T).(\lambda (t0: T).(pc3 c t t0))) (\lambda 
+(t: T).(pc3_refl c t)) (\lambda (t0: T).(\lambda (t3: T).(\lambda (H0: (pr2 c 
+t0 t3)).(\lambda (t4: T).(\lambda (_: (pc3_left c t3 t4)).(\lambda (H2: (pc3 
+c t3 t4)).(pc3_t t3 c t0 (pc3_pr2_r c t0 t3 H0) t4 H2))))))) (\lambda (t0: 
 T).(\lambda (t3: T).(\lambda (H0: (pr2 c t0 t3)).(\lambda (t4: T).(\lambda 
-(_: (pc3_left c t3 t4)).(\lambda (H2: (pc3 c t3 t4)).(let TMP_3 \def 
-(pc3_pr2_r c t0 t3 H0) in (pc3_t t3 c t0 TMP_3 t4 H2)))))))) in (let TMP_6 
-\def (\lambda (t0: T).(\lambda (t3: T).(\lambda (H0: (pr2 c t0 t3)).(\lambda 
-(t4: T).(\lambda (_: (pc3_left c t0 t4)).(\lambda (H2: (pc3 c t0 t4)).(let 
-TMP_5 \def (pc3_pr2_x c t3 t0 H0) in (pc3_t t0 c t3 TMP_5 t4 H2)))))))) in 
-(pc3_left_ind c TMP_1 TMP_2 TMP_4 TMP_6 t1 t2 H)))))))).
+(_: (pc3_left c t0 t4)).(\lambda (H2: (pc3 c t0 t4)).(pc3_t t0 c t3 
+(pc3_pr2_x c t3 t0 H0) t4 H2))))))) t1 t2 H)))).
 
 theorem pc3_ind_left:
  \forall (c: C).(\forall (P: ((T \to (T \to Prop)))).(((\forall (t: T).(P t 
@@ -115,14 +105,13 @@ t t0) \to (P t t0))))))))
 t2) \to (\forall (t3: T).((pc3 c t2 t3) \to ((P t2 t3) \to (P t1 
 t3))))))))).(\lambda (H1: ((\forall (t1: T).(\forall (t2: T).((pr2 c t1 t2) 
 \to (\forall (t3: T).((pc3 c t1 t3) \to ((P t1 t3) \to (P t2 
-t3))))))))).(\lambda (t: T).(\lambda (t0: T).(\lambda (H2: (pc3 c t t0)).(let 
-TMP_1 \def (\lambda (t1: T).(\lambda (t2: T).(P t1 t2))) in (let TMP_3 \def 
-(\lambda (t1: T).(\lambda (t2: T).(\lambda (H3: (pr2 c t1 t2)).(\lambda (t3: 
-T).(\lambda (H4: (pc3_left c t2 t3)).(\lambda (H5: (P t2 t3)).(let TMP_2 \def 
-(pc3_ind_left__pc3_pc3_left c t2 t3 H4) in (H0 t1 t2 H3 t3 TMP_2 H5)))))))) 
-in (let TMP_5 \def (\lambda (t1: T).(\lambda (t2: T).(\lambda (H3: (pr2 c t1 
-t2)).(\lambda (t3: T).(\lambda (H4: (pc3_left c t1 t3)).(\lambda (H5: (P t1 
-t3)).(let TMP_4 \def (pc3_ind_left__pc3_pc3_left c t1 t3 H4) in (H1 t1 t2 H3 
-t3 TMP_4 H5)))))))) in (let TMP_6 \def (pc3_ind_left__pc3_left_pc3 c t t0 H2) 
-in (pc3_left_ind c TMP_1 H TMP_3 TMP_5 t t0 TMP_6)))))))))))).
+t3))))))))).(\lambda (t: T).(\lambda (t0: T).(\lambda (H2: (pc3 c t 
+t0)).(pc3_left_ind c (\lambda (t1: T).(\lambda (t2: T).(P t1 t2))) H (\lambda 
+(t1: T).(\lambda (t2: T).(\lambda (H3: (pr2 c t1 t2)).(\lambda (t3: 
+T).(\lambda (H4: (pc3_left c t2 t3)).(\lambda (H5: (P t2 t3)).(H0 t1 t2 H3 t3 
+(pc3_ind_left__pc3_pc3_left c t2 t3 H4) H5))))))) (\lambda (t1: T).(\lambda 
+(t2: T).(\lambda (H3: (pr2 c t1 t2)).(\lambda (t3: T).(\lambda (H4: (pc3_left 
+c t1 t3)).(\lambda (H5: (P t1 t3)).(H1 t1 t2 H3 t3 
+(pc3_ind_left__pc3_pc3_left c t1 t3 H4) H5))))))) t t0 
+(pc3_ind_left__pc3_left_pc3 c t t0 H2))))))))).
 
index 9146795eb1834d1fbf3a62810f0cc47215b8bf48..0d16aeb79f410690f8eec4cd5ad1d3d5a1113ede 100644 (file)
@@ -24,28 +24,23 @@ t1) \to ((nf2 c t2) \to (eq T t1 t2))))))
 \def
  \lambda (c: C).(\lambda (t1: T).(\lambda (t2: T).(\lambda (H: (pc3 c t1 
 t2)).(\lambda (H0: (nf2 c t1)).(\lambda (H1: (nf2 c t2)).(let H2 \def H in 
-(let TMP_1 \def (\lambda (t: T).(pr3 c t1 t)) in (let TMP_2 \def (\lambda (t: 
-T).(pr3 c t2 t)) in (let TMP_3 \def (eq T t1 t2) in (let TMP_9 \def (\lambda 
-(x: T).(\lambda (H3: (pr3 c t1 x)).(\lambda (H4: (pr3 c t2 x)).(let H_y \def 
-(nf2_pr3_unfold c t1 x H3 H0) in (let TMP_4 \def (\lambda (t: T).(pr3 c t2 
-t)) in (let H5 \def (eq_ind_r T x TMP_4 H4 t1 H_y) in (let TMP_5 \def 
-(\lambda (t: T).(pr3 c t1 t)) in (let H6 \def (eq_ind_r T x TMP_5 H3 t1 H_y) 
-in (let H_y0 \def (nf2_pr3_unfold c t2 t1 H5 H1) in (let TMP_6 \def (\lambda 
-(t: T).(pr3 c t t1)) in (let H7 \def (eq_ind T t2 TMP_6 H5 t1 H_y0) in (let 
-TMP_7 \def (\lambda (t: T).(eq T t1 t)) in (let TMP_8 \def (refl_equal T t1) 
-in (eq_ind_r T t1 TMP_7 TMP_8 t2 H_y0)))))))))))))) in (ex2_ind T TMP_1 TMP_2 
-TMP_3 TMP_9 H2))))))))))).
+(ex2_ind T (\lambda (t: T).(pr3 c t1 t)) (\lambda (t: T).(pr3 c t2 t)) (eq T 
+t1 t2) (\lambda (x: T).(\lambda (H3: (pr3 c t1 x)).(\lambda (H4: (pr3 c t2 
+x)).(let H_y \def (nf2_pr3_unfold c t1 x H3 H0) in (let H5 \def (eq_ind_r T x 
+(\lambda (t: T).(pr3 c t2 t)) H4 t1 H_y) in (let H6 \def (eq_ind_r T x 
+(\lambda (t: T).(pr3 c t1 t)) H3 t1 H_y) in (let H_y0 \def (nf2_pr3_unfold c 
+t2 t1 H5 H1) in (let H7 \def (eq_ind T t2 (\lambda (t: T).(pr3 c t t1)) H5 t1 
+H_y0) in (eq_ind_r T t1 (\lambda (t: T).(eq T t1 t)) (refl_equal T t1) t2 
+H_y0))))))))) H2))))))).
 
 theorem pc3_nf2_unfold:
  \forall (c: C).(\forall (t1: T).(\forall (t2: T).((pc3 c t1 t2) \to ((nf2 c 
 t2) \to (pr3 c t1 t2)))))
 \def
  \lambda (c: C).(\lambda (t1: T).(\lambda (t2: T).(\lambda (H: (pc3 c t1 
-t2)).(\lambda (H0: (nf2 c t2)).(let H1 \def H in (let TMP_1 \def (\lambda (t: 
-T).(pr3 c t1 t)) in (let TMP_2 \def (\lambda (t: T).(pr3 c t2 t)) in (let 
-TMP_3 \def (pr3 c t1 t2) in (let TMP_5 \def (\lambda (x: T).(\lambda (H2: 
-(pr3 c t1 x)).(\lambda (H3: (pr3 c t2 x)).(let H_y \def (nf2_pr3_unfold c t2 
-x H3 H0) in (let TMP_4 \def (\lambda (t: T).(pr3 c t1 t)) in (let H4 \def 
-(eq_ind_r T x TMP_4 H2 t2 H_y) in H4)))))) in (ex2_ind T TMP_1 TMP_2 TMP_3 
-TMP_5 H1)))))))))).
+t2)).(\lambda (H0: (nf2 c t2)).(let H1 \def H in (ex2_ind T (\lambda (t: 
+T).(pr3 c t1 t)) (\lambda (t: T).(pr3 c t2 t)) (pr3 c t1 t2) (\lambda (x: 
+T).(\lambda (H2: (pr3 c t1 x)).(\lambda (H3: (pr3 c t2 x)).(let H_y \def 
+(nf2_pr3_unfold c t2 x H3 H0) in (let H4 \def (eq_ind_r T x (\lambda (t: 
+T).(pr3 c t1 t)) H2 t2 H_y) in H4))))) H1)))))).
 
index 7093a13a1c7c53ad6980bd2ebc517ba0d173a97d..abead4fc4fd91c59cbbfe9e876c6f84b2ac17f5a 100644 (file)
@@ -25,11 +25,9 @@ theorem pc3_pc1:
 t2))))
 \def
  \lambda (t1: T).(\lambda (t2: T).(\lambda (H: (pc1 t1 t2)).(\lambda (c: 
-C).(let H0 \def H in (let TMP_1 \def (\lambda (t: T).(pr1 t1 t)) in (let 
-TMP_2 \def (\lambda (t: T).(pr1 t2 t)) in (let TMP_3 \def (pc3 c t1 t2) in 
-(let TMP_8 \def (\lambda (x: T).(\lambda (H1: (pr1 t1 x)).(\lambda (H2: (pr1 
-t2 x)).(let TMP_4 \def (\lambda (t: T).(pr3 c t1 t)) in (let TMP_5 \def 
-(\lambda (t: T).(pr3 c t2 t)) in (let TMP_6 \def (pr3_pr1 t1 x H1 c) in (let 
-TMP_7 \def (pr3_pr1 t2 x H2 c) in (ex_intro2 T TMP_4 TMP_5 x TMP_6 
-TMP_7)))))))) in (ex2_ind T TMP_1 TMP_2 TMP_3 TMP_8 H0))))))))).
+C).(let H0 \def H in (ex2_ind T (\lambda (t: T).(pr1 t1 t)) (\lambda (t: 
+T).(pr1 t2 t)) (pc3 c t1 t2) (\lambda (x: T).(\lambda (H1: (pr1 t1 
+x)).(\lambda (H2: (pr1 t2 x)).(ex_intro2 T (\lambda (t: T).(pr3 c t1 t)) 
+(\lambda (t: T).(pr3 c t2 t)) x (pr3_pr1 t1 x H1 c) (pr3_pr1 t2 x H2 c))))) 
+H0))))).
 
index e73743a36f0f1f725581da22c306b3cdcc046ab9..d65a673b8b192f9fe0298c31b7823af9e1ec96cd 100644 (file)
@@ -23,81 +23,68 @@ theorem clear_pc3_trans:
 (\forall (c1: C).((clear c1 c2) \to (pc3 c1 t1 t2))))))
 \def
  \lambda (c2: C).(\lambda (t1: T).(\lambda (t2: T).(\lambda (H: (pc3 c2 t1 
-t2)).(\lambda (c1: C).(\lambda (H0: (clear c1 c2)).(let H1 \def H in (let 
-TMP_1 \def (\lambda (t: T).(pr3 c2 t1 t)) in (let TMP_2 \def (\lambda (t: 
-T).(pr3 c2 t2 t)) in (let TMP_3 \def (pc3 c1 t1 t2) in (let TMP_8 \def 
-(\lambda (x: T).(\lambda (H2: (pr3 c2 t1 x)).(\lambda (H3: (pr3 c2 t2 
-x)).(let TMP_4 \def (\lambda (t: T).(pr3 c1 t1 t)) in (let TMP_5 \def 
-(\lambda (t: T).(pr3 c1 t2 t)) in (let TMP_6 \def (clear_pr3_trans c2 t1 x H2 
-c1 H0) in (let TMP_7 \def (clear_pr3_trans c2 t2 x H3 c1 H0) in (ex_intro2 T 
-TMP_4 TMP_5 x TMP_6 TMP_7)))))))) in (ex2_ind T TMP_1 TMP_2 TMP_3 TMP_8 
-H1))))))))))).
+t2)).(\lambda (c1: C).(\lambda (H0: (clear c1 c2)).(let H1 \def H in (ex2_ind 
+T (\lambda (t: T).(pr3 c2 t1 t)) (\lambda (t: T).(pr3 c2 t2 t)) (pc3 c1 t1 
+t2) (\lambda (x: T).(\lambda (H2: (pr3 c2 t1 x)).(\lambda (H3: (pr3 c2 t2 
+x)).(ex_intro2 T (\lambda (t: T).(pr3 c1 t1 t)) (\lambda (t: T).(pr3 c1 t2 
+t)) x (clear_pr3_trans c2 t1 x H2 c1 H0) (clear_pr3_trans c2 t2 x H3 c1 
+H0))))) H1))))))).
 
 theorem pc3_pr2_r:
  \forall (c: C).(\forall (t1: T).(\forall (t2: T).((pr2 c t1 t2) \to (pc3 c 
 t1 t2))))
 \def
  \lambda (c: C).(\lambda (t1: T).(\lambda (t2: T).(\lambda (H: (pr2 c t1 
-t2)).(let TMP_1 \def (\lambda (t: T).(pr3 c t1 t)) in (let TMP_2 \def 
-(\lambda (t: T).(pr3 c t2 t)) in (let TMP_3 \def (pr3_pr2 c t1 t2 H) in (let 
-TMP_4 \def (pr3_refl c t2) in (ex_intro2 T TMP_1 TMP_2 t2 TMP_3 TMP_4)))))))).
+t2)).(ex_intro2 T (\lambda (t: T).(pr3 c t1 t)) (\lambda (t: T).(pr3 c t2 t)) 
+t2 (pr3_pr2 c t1 t2 H) (pr3_refl c t2))))).
 
 theorem pc3_pr2_x:
  \forall (c: C).(\forall (t1: T).(\forall (t2: T).((pr2 c t2 t1) \to (pc3 c 
 t1 t2))))
 \def
  \lambda (c: C).(\lambda (t1: T).(\lambda (t2: T).(\lambda (H: (pr2 c t2 
-t1)).(let TMP_1 \def (\lambda (t: T).(pr3 c t1 t)) in (let TMP_2 \def 
-(\lambda (t: T).(pr3 c t2 t)) in (let TMP_3 \def (pr3_refl c t1) in (let 
-TMP_4 \def (pr3_pr2 c t2 t1 H) in (ex_intro2 T TMP_1 TMP_2 t1 TMP_3 
-TMP_4)))))))).
+t1)).(ex_intro2 T (\lambda (t: T).(pr3 c t1 t)) (\lambda (t: T).(pr3 c t2 t)) 
+t1 (pr3_refl c t1) (pr3_pr2 c t2 t1 H))))).
 
 theorem pc3_pr3_r:
  \forall (c: C).(\forall (t1: T).(\forall (t2: T).((pr3 c t1 t2) \to (pc3 c 
 t1 t2))))
 \def
  \lambda (c: C).(\lambda (t1: T).(\lambda (t2: T).(\lambda (H: (pr3 c t1 
-t2)).(let TMP_1 \def (\lambda (t: T).(pr3 c t1 t)) in (let TMP_2 \def 
-(\lambda (t: T).(pr3 c t2 t)) in (let TMP_3 \def (pr3_refl c t2) in 
-(ex_intro2 T TMP_1 TMP_2 t2 H TMP_3))))))).
+t2)).(ex_intro2 T (\lambda (t: T).(pr3 c t1 t)) (\lambda (t: T).(pr3 c t2 t)) 
+t2 H (pr3_refl c t2))))).
 
 theorem pc3_pr3_x:
  \forall (c: C).(\forall (t1: T).(\forall (t2: T).((pr3 c t2 t1) \to (pc3 c 
 t1 t2))))
 \def
  \lambda (c: C).(\lambda (t1: T).(\lambda (t2: T).(\lambda (H: (pr3 c t2 
-t1)).(let TMP_1 \def (\lambda (t: T).(pr3 c t1 t)) in (let TMP_2 \def 
-(\lambda (t: T).(pr3 c t2 t)) in (let TMP_3 \def (pr3_refl c t1) in 
-(ex_intro2 T TMP_1 TMP_2 t1 TMP_3 H))))))).
+t1)).(ex_intro2 T (\lambda (t: T).(pr3 c t1 t)) (\lambda (t: T).(pr3 c t2 t)) 
+t1 (pr3_refl c t1) H)))).
 
 theorem pc3_pr3_t:
  \forall (c: C).(\forall (t1: T).(\forall (t0: T).((pr3 c t1 t0) \to (\forall 
 (t2: T).((pr3 c t2 t0) \to (pc3 c t1 t2))))))
 \def
  \lambda (c: C).(\lambda (t1: T).(\lambda (t0: T).(\lambda (H: (pr3 c t1 
-t0)).(\lambda (t2: T).(\lambda (H0: (pr3 c t2 t0)).(let TMP_1 \def (\lambda 
-(t: T).(pr3 c t1 t)) in (let TMP_2 \def (\lambda (t: T).(pr3 c t2 t)) in 
-(ex_intro2 T TMP_1 TMP_2 t0 H H0)))))))).
+t0)).(\lambda (t2: T).(\lambda (H0: (pr3 c t2 t0)).(ex_intro2 T (\lambda (t: 
+T).(pr3 c t1 t)) (\lambda (t: T).(pr3 c t2 t)) t0 H H0)))))).
 
 theorem pc3_refl:
  \forall (c: C).(\forall (t: T).(pc3 c t t))
 \def
- \lambda (c: C).(\lambda (t: T).(let TMP_1 \def (\lambda (t0: T).(pr3 c t 
-t0)) in (let TMP_2 \def (\lambda (t0: T).(pr3 c t t0)) in (let TMP_3 \def 
-(pr3_refl c t) in (let TMP_4 \def (pr3_refl c t) in (ex_intro2 T TMP_1 TMP_2 
-t TMP_3 TMP_4)))))).
+ \lambda (c: C).(\lambda (t: T).(ex_intro2 T (\lambda (t0: T).(pr3 c t t0)) 
+(\lambda (t0: T).(pr3 c t t0)) t (pr3_refl c t) (pr3_refl c t))).
 
 theorem pc3_s:
  \forall (c: C).(\forall (t2: T).(\forall (t1: T).((pc3 c t1 t2) \to (pc3 c 
 t2 t1))))
 \def
  \lambda (c: C).(\lambda (t2: T).(\lambda (t1: T).(\lambda (H: (pc3 c t1 
-t2)).(let H0 \def H in (let TMP_1 \def (\lambda (t: T).(pr3 c t1 t)) in (let 
-TMP_2 \def (\lambda (t: T).(pr3 c t2 t)) in (let TMP_3 \def (pc3 c t2 t1) in 
-(let TMP_6 \def (\lambda (x: T).(\lambda (H1: (pr3 c t1 x)).(\lambda (H2: 
-(pr3 c t2 x)).(let TMP_4 \def (\lambda (t: T).(pr3 c t2 t)) in (let TMP_5 
-\def (\lambda (t: T).(pr3 c t1 t)) in (ex_intro2 T TMP_4 TMP_5 x H2 H1)))))) 
-in (ex2_ind T TMP_1 TMP_2 TMP_3 TMP_6 H0))))))))).
+t2)).(let H0 \def H in (ex2_ind T (\lambda (t: T).(pr3 c t1 t)) (\lambda (t: 
+T).(pr3 c t2 t)) (pc3 c t2 t1) (\lambda (x: T).(\lambda (H1: (pr3 c t1 
+x)).(\lambda (H2: (pr3 c t2 x)).(ex_intro2 T (\lambda (t: T).(pr3 c t2 t)) 
+(\lambda (t: T).(pr3 c t1 t)) x H2 H1)))) H0))))).
 
 theorem pc3_thin_dx:
  \forall (c: C).(\forall (t1: T).(\forall (t2: T).((pc3 c t1 t2) \to (\forall 
@@ -105,38 +92,26 @@ theorem pc3_thin_dx:
 t2)))))))
 \def
  \lambda (c: C).(\lambda (t1: T).(\lambda (t2: T).(\lambda (H: (pc3 c t1 
-t2)).(\lambda (u: T).(\lambda (f: F).(let H0 \def H in (let TMP_1 \def 
-(\lambda (t: T).(pr3 c t1 t)) in (let TMP_2 \def (\lambda (t: T).(pr3 c t2 
-t)) in (let TMP_3 \def (Flat f) in (let TMP_4 \def (THead TMP_3 u t1) in (let 
-TMP_5 \def (Flat f) in (let TMP_6 \def (THead TMP_5 u t2) in (let TMP_7 \def 
-(pc3 c TMP_4 TMP_6) in (let TMP_18 \def (\lambda (x: T).(\lambda (H1: (pr3 c 
-t1 x)).(\lambda (H2: (pr3 c t2 x)).(let TMP_10 \def (\lambda (t: T).(let 
-TMP_8 \def (Flat f) in (let TMP_9 \def (THead TMP_8 u t1) in (pr3 c TMP_9 
-t)))) in (let TMP_13 \def (\lambda (t: T).(let TMP_11 \def (Flat f) in (let 
-TMP_12 \def (THead TMP_11 u t2) in (pr3 c TMP_12 t)))) in (let TMP_14 \def 
-(Flat f) in (let TMP_15 \def (THead TMP_14 u x) in (let TMP_16 \def 
-(pr3_thin_dx c t1 x H1 u f) in (let TMP_17 \def (pr3_thin_dx c t2 x H2 u f) 
-in (ex_intro2 T TMP_10 TMP_13 TMP_15 TMP_16 TMP_17)))))))))) in (ex2_ind T 
-TMP_1 TMP_2 TMP_7 TMP_18 H0))))))))))))))).
+t2)).(\lambda (u: T).(\lambda (f: F).(let H0 \def H in (ex2_ind T (\lambda 
+(t: T).(pr3 c t1 t)) (\lambda (t: T).(pr3 c t2 t)) (pc3 c (THead (Flat f) u 
+t1) (THead (Flat f) u t2)) (\lambda (x: T).(\lambda (H1: (pr3 c t1 
+x)).(\lambda (H2: (pr3 c t2 x)).(ex_intro2 T (\lambda (t: T).(pr3 c (THead 
+(Flat f) u t1) t)) (\lambda (t: T).(pr3 c (THead (Flat f) u t2) t)) (THead 
+(Flat f) u x) (pr3_thin_dx c t1 x H1 u f) (pr3_thin_dx c t2 x H2 u f))))) 
+H0))))))).
 
 theorem pc3_head_1:
  \forall (c: C).(\forall (u1: T).(\forall (u2: T).((pc3 c u1 u2) \to (\forall 
 (k: K).(\forall (t: T).(pc3 c (THead k u1 t) (THead k u2 t)))))))
 \def
  \lambda (c: C).(\lambda (u1: T).(\lambda (u2: T).(\lambda (H: (pc3 c u1 
-u2)).(\lambda (k: K).(\lambda (t: T).(let H0 \def H in (let TMP_1 \def 
-(\lambda (t0: T).(pr3 c u1 t0)) in (let TMP_2 \def (\lambda (t0: T).(pr3 c u2 
-t0)) in (let TMP_3 \def (THead k u1 t) in (let TMP_4 \def (THead k u2 t) in 
-(let TMP_5 \def (pc3 c TMP_3 TMP_4) in (let TMP_17 \def (\lambda (x: 
-T).(\lambda (H1: (pr3 c u1 x)).(\lambda (H2: (pr3 c u2 x)).(let TMP_7 \def 
-(\lambda (t0: T).(let TMP_6 \def (THead k u1 t) in (pr3 c TMP_6 t0))) in (let 
-TMP_9 \def (\lambda (t0: T).(let TMP_8 \def (THead k u2 t) in (pr3 c TMP_8 
-t0))) in (let TMP_10 \def (THead k x t) in (let TMP_11 \def (CHead c k x) in 
-(let TMP_12 \def (pr3_refl TMP_11 t) in (let TMP_13 \def (pr3_head_12 c u1 x 
-H1 k t t TMP_12) in (let TMP_14 \def (CHead c k x) in (let TMP_15 \def 
-(pr3_refl TMP_14 t) in (let TMP_16 \def (pr3_head_12 c u2 x H2 k t t TMP_15) 
-in (ex_intro2 T TMP_7 TMP_9 TMP_10 TMP_13 TMP_16))))))))))))) in (ex2_ind T 
-TMP_1 TMP_2 TMP_5 TMP_17 H0))))))))))))).
+u2)).(\lambda (k: K).(\lambda (t: T).(let H0 \def H in (ex2_ind T (\lambda 
+(t0: T).(pr3 c u1 t0)) (\lambda (t0: T).(pr3 c u2 t0)) (pc3 c (THead k u1 t) 
+(THead k u2 t)) (\lambda (x: T).(\lambda (H1: (pr3 c u1 x)).(\lambda (H2: 
+(pr3 c u2 x)).(ex_intro2 T (\lambda (t0: T).(pr3 c (THead k u1 t) t0)) 
+(\lambda (t0: T).(pr3 c (THead k u2 t) t0)) (THead k x t) (pr3_head_12 c u1 x 
+H1 k t t (pr3_refl (CHead c k x) t)) (pr3_head_12 c u2 x H2 k t t (pr3_refl 
+(CHead c k x) t)))))) H0))))))).
 
 theorem pc3_head_2:
  \forall (c: C).(\forall (u: T).(\forall (t1: T).(\forall (t2: T).(\forall 
@@ -144,69 +119,56 @@ theorem pc3_head_2:
 t2)))))))
 \def
  \lambda (c: C).(\lambda (u: T).(\lambda (t1: T).(\lambda (t2: T).(\lambda 
-(k: K).(\lambda (H: (pc3 (CHead c k u) t1 t2)).(let H0 \def H in (let TMP_2 
-\def (\lambda (t: T).(let TMP_1 \def (CHead c k u) in (pr3 TMP_1 t1 t))) in 
-(let TMP_4 \def (\lambda (t: T).(let TMP_3 \def (CHead c k u) in (pr3 TMP_3 
-t2 t))) in (let TMP_5 \def (THead k u t1) in (let TMP_6 \def (THead k u t2) 
-in (let TMP_7 \def (pc3 c TMP_5 TMP_6) in (let TMP_17 \def (\lambda (x: 
-T).(\lambda (H1: (pr3 (CHead c k u) t1 x)).(\lambda (H2: (pr3 (CHead c k u) 
-t2 x)).(let TMP_9 \def (\lambda (t: T).(let TMP_8 \def (THead k u t1) in (pr3 
-c TMP_8 t))) in (let TMP_11 \def (\lambda (t: T).(let TMP_10 \def (THead k u 
-t2) in (pr3 c TMP_10 t))) in (let TMP_12 \def (THead k u x) in (let TMP_13 
-\def (pr3_refl c u) in (let TMP_14 \def (pr3_head_12 c u u TMP_13 k t1 x H1) 
-in (let TMP_15 \def (pr3_refl c u) in (let TMP_16 \def (pr3_head_12 c u u 
-TMP_15 k t2 x H2) in (ex_intro2 T TMP_9 TMP_11 TMP_12 TMP_14 
-TMP_16))))))))))) in (ex2_ind T TMP_2 TMP_4 TMP_7 TMP_17 H0))))))))))))).
+(k: K).(\lambda (H: (pc3 (CHead c k u) t1 t2)).(let H0 \def H in (ex2_ind T 
+(\lambda (t: T).(pr3 (CHead c k u) t1 t)) (\lambda (t: T).(pr3 (CHead c k u) 
+t2 t)) (pc3 c (THead k u t1) (THead k u t2)) (\lambda (x: T).(\lambda (H1: 
+(pr3 (CHead c k u) t1 x)).(\lambda (H2: (pr3 (CHead c k u) t2 x)).(ex_intro2 
+T (\lambda (t: T).(pr3 c (THead k u t1) t)) (\lambda (t: T).(pr3 c (THead k u 
+t2) t)) (THead k u x) (pr3_head_12 c u u (pr3_refl c u) k t1 x H1) 
+(pr3_head_12 c u u (pr3_refl c u) k t2 x H2))))) H0))))))).
 
 theorem pc3_pr2_u:
  \forall (c: C).(\forall (t2: T).(\forall (t1: T).((pr2 c t1 t2) \to (\forall 
 (t3: T).((pc3 c t2 t3) \to (pc3 c t1 t3))))))
 \def
  \lambda (c: C).(\lambda (t2: T).(\lambda (t1: T).(\lambda (H: (pr2 c t1 
-t2)).(\lambda (t3: T).(\lambda (H0: (pc3 c t2 t3)).(let H1 \def H0 in (let 
-TMP_1 \def (\lambda (t: T).(pr3 c t2 t)) in (let TMP_2 \def (\lambda (t: 
-T).(pr3 c t3 t)) in (let TMP_3 \def (pc3 c t1 t3) in (let TMP_7 \def (\lambda 
-(x: T).(\lambda (H2: (pr3 c t2 x)).(\lambda (H3: (pr3 c t3 x)).(let TMP_4 
-\def (\lambda (t: T).(pr3 c t1 t)) in (let TMP_5 \def (\lambda (t: T).(pr3 c 
-t3 t)) in (let TMP_6 \def (pr3_sing c t2 t1 H x H2) in (ex_intro2 T TMP_4 
-TMP_5 x TMP_6 H3))))))) in (ex2_ind T TMP_1 TMP_2 TMP_3 TMP_7 H1))))))))))).
+t2)).(\lambda (t3: T).(\lambda (H0: (pc3 c t2 t3)).(let H1 \def H0 in 
+(ex2_ind T (\lambda (t: T).(pr3 c t2 t)) (\lambda (t: T).(pr3 c t3 t)) (pc3 c 
+t1 t3) (\lambda (x: T).(\lambda (H2: (pr3 c t2 x)).(\lambda (H3: (pr3 c t3 
+x)).(ex_intro2 T (\lambda (t: T).(pr3 c t1 t)) (\lambda (t: T).(pr3 c t3 t)) 
+x (pr3_sing c t2 t1 H x H2) H3)))) H1))))))).
 
 theorem pc3_t:
  \forall (t2: T).(\forall (c: C).(\forall (t1: T).((pc3 c t1 t2) \to (\forall 
 (t3: T).((pc3 c t2 t3) \to (pc3 c t1 t3))))))
 \def
  \lambda (t2: T).(\lambda (c: C).(\lambda (t1: T).(\lambda (H: (pc3 c t1 
-t2)).(\lambda (t3: T).(\lambda (H0: (pc3 c t2 t3)).(let H1 \def H0 in (let 
-TMP_1 \def (\lambda (t: T).(pr3 c t2 t)) in (let TMP_2 \def (\lambda (t: 
-T).(pr3 c t3 t)) in (let TMP_3 \def (pc3 c t1 t3) in (let TMP_15 \def 
-(\lambda (x: T).(\lambda (H2: (pr3 c t2 x)).(\lambda (H3: (pr3 c t3 x)).(let 
-H4 \def H in (let TMP_4 \def (\lambda (t: T).(pr3 c t1 t)) in (let TMP_5 \def 
-(\lambda (t: T).(pr3 c t2 t)) in (let TMP_6 \def (pc3 c t1 t3) in (let TMP_14 
-\def (\lambda (x0: T).(\lambda (H5: (pr3 c t1 x0)).(\lambda (H6: (pr3 c t2 
-x0)).(let TMP_7 \def (\lambda (t: T).(pr3 c x0 t)) in (let TMP_8 \def 
-(\lambda (t: T).(pr3 c x t)) in (let TMP_9 \def (pc3 c t1 t3) in (let TMP_12 
-\def (\lambda (x1: T).(\lambda (H7: (pr3 c x0 x1)).(\lambda (H8: (pr3 c x 
-x1)).(let TMP_10 \def (pr3_t x0 t1 c H5 x1 H7) in (let TMP_11 \def (pr3_t x 
-t3 c H3 x1 H8) in (pc3_pr3_t c t1 x1 TMP_10 t3 TMP_11)))))) in (let TMP_13 
-\def (pr3_confluence c t2 x0 H6 x H2) in (ex2_ind T TMP_7 TMP_8 TMP_9 TMP_12 
-TMP_13))))))))) in (ex2_ind T TMP_4 TMP_5 TMP_6 TMP_14 H4))))))))) in 
-(ex2_ind T TMP_1 TMP_2 TMP_3 TMP_15 H1))))))))))).
+t2)).(\lambda (t3: T).(\lambda (H0: (pc3 c t2 t3)).(let H1 \def H0 in 
+(ex2_ind T (\lambda (t: T).(pr3 c t2 t)) (\lambda (t: T).(pr3 c t3 t)) (pc3 c 
+t1 t3) (\lambda (x: T).(\lambda (H2: (pr3 c t2 x)).(\lambda (H3: (pr3 c t3 
+x)).(let H4 \def H in (ex2_ind T (\lambda (t: T).(pr3 c t1 t)) (\lambda (t: 
+T).(pr3 c t2 t)) (pc3 c t1 t3) (\lambda (x0: T).(\lambda (H5: (pr3 c t1 
+x0)).(\lambda (H6: (pr3 c t2 x0)).(ex2_ind T (\lambda (t: T).(pr3 c x0 t)) 
+(\lambda (t: T).(pr3 c x t)) (pc3 c t1 t3) (\lambda (x1: T).(\lambda (H7: 
+(pr3 c x0 x1)).(\lambda (H8: (pr3 c x x1)).(pc3_pr3_t c t1 x1 (pr3_t x0 t1 c 
+H5 x1 H7) t3 (pr3_t x t3 c H3 x1 H8))))) (pr3_confluence c t2 x0 H6 x H2))))) 
+H4))))) H1))))))).
 
 theorem pc3_pr2_u2:
  \forall (c: C).(\forall (t0: T).(\forall (t1: T).((pr2 c t0 t1) \to (\forall 
 (t2: T).((pc3 c t0 t2) \to (pc3 c t1 t2))))))
 \def
  \lambda (c: C).(\lambda (t0: T).(\lambda (t1: T).(\lambda (H: (pr2 c t0 
-t1)).(\lambda (t2: T).(\lambda (H0: (pc3 c t0 t2)).(let TMP_1 \def (pc3_pr2_x 
-c t1 t0 H) in (pc3_t t0 c t1 TMP_1 t2 H0))))))).
+t1)).(\lambda (t2: T).(\lambda (H0: (pc3 c t0 t2)).(pc3_t t0 c t1 (pc3_pr2_x 
+c t1 t0 H) t2 H0)))))).
 
 theorem pc3_pr3_conf:
  \forall (c: C).(\forall (t: T).(\forall (t1: T).((pc3 c t t1) \to (\forall 
 (t2: T).((pr3 c t t2) \to (pc3 c t2 t1))))))
 \def
  \lambda (c: C).(\lambda (t: T).(\lambda (t1: T).(\lambda (H: (pc3 c t 
-t1)).(\lambda (t2: T).(\lambda (H0: (pr3 c t t2)).(let TMP_1 \def (pc3_pr3_x 
-c t2 t H0) in (pc3_t t c t2 TMP_1 t1 H))))))).
+t1)).(\lambda (t2: T).(\lambda (H0: (pr3 c t t2)).(pc3_t t c t2 (pc3_pr3_x c 
+t2 t H0) t1 H)))))).
 
 theorem pc3_head_12:
  \forall (c: C).(\forall (u1: T).(\forall (u2: T).((pc3 c u1 u2) \to (\forall 
@@ -215,10 +177,8 @@ c (THead k u1 t1) (THead k u2 t2)))))))))
 \def
  \lambda (c: C).(\lambda (u1: T).(\lambda (u2: T).(\lambda (H: (pc3 c u1 
 u2)).(\lambda (k: K).(\lambda (t1: T).(\lambda (t2: T).(\lambda (H0: (pc3 
-(CHead c k u2) t1 t2)).(let TMP_1 \def (THead k u2 t1) in (let TMP_2 \def 
-(THead k u1 t1) in (let TMP_3 \def (pc3_head_1 c u1 u2 H k t1) in (let TMP_4 
-\def (THead k u2 t2) in (let TMP_5 \def (pc3_head_2 c u2 t1 t2 k H0) in 
-(pc3_t TMP_1 c TMP_2 TMP_3 TMP_4 TMP_5))))))))))))).
+(CHead c k u2) t1 t2)).(pc3_t (THead k u2 t1) c (THead k u1 t1) (pc3_head_1 c 
+u1 u2 H k t1) (THead k u2 t2) (pc3_head_2 c u2 t1 t2 k H0))))))))).
 
 theorem pc3_head_21:
  \forall (c: C).(\forall (u1: T).(\forall (u2: T).((pc3 c u1 u2) \to (\forall 
@@ -227,10 +187,8 @@ c (THead k u1 t1) (THead k u2 t2)))))))))
 \def
  \lambda (c: C).(\lambda (u1: T).(\lambda (u2: T).(\lambda (H: (pc3 c u1 
 u2)).(\lambda (k: K).(\lambda (t1: T).(\lambda (t2: T).(\lambda (H0: (pc3 
-(CHead c k u1) t1 t2)).(let TMP_1 \def (THead k u1 t2) in (let TMP_2 \def 
-(THead k u1 t1) in (let TMP_3 \def (pc3_head_2 c u1 t1 t2 k H0) in (let TMP_4 
-\def (THead k u2 t2) in (let TMP_5 \def (pc3_head_1 c u1 u2 H k t2) in (pc3_t 
-TMP_1 c TMP_2 TMP_3 TMP_4 TMP_5))))))))))))).
+(CHead c k u1) t1 t2)).(pc3_t (THead k u1 t2) c (THead k u1 t1) (pc3_head_2 c 
+u1 t1 t2 k H0) (THead k u2 t2) (pc3_head_1 c u1 u2 H k t2))))))))).
 
 theorem pc3_pr0_pr2_t:
  \forall (u1: T).(\forall (u2: T).((pr0 u2 u1) \to (\forall (c: C).(\forall 
@@ -239,115 +197,67 @@ theorem pc3_pr0_pr2_t:
 \def
  \lambda (u1: T).(\lambda (u2: T).(\lambda (H: (pr0 u2 u1)).(\lambda (c: 
 C).(\lambda (t1: T).(\lambda (t2: T).(\lambda (k: K).(\lambda (H0: (pr2 
-(CHead c k u2) t1 t2)).(let TMP_1 \def (CHead c k u2) in (let TMP_2 \def 
-(\lambda (c0: C).(pr2 c0 t1 t2)) in (let TMP_4 \def (\lambda (_: C).(let 
-TMP_3 \def (CHead c k u1) in (pc3 TMP_3 t1 t2))) in (let TMP_125 \def 
-(\lambda (y: C).(\lambda (H1: (pr2 y t1 t2)).(let TMP_6 \def (\lambda (c0: 
-C).(\lambda (t: T).(\lambda (t0: T).((eq C c0 (CHead c k u2)) \to (let TMP_5 
-\def (CHead c k u1) in (pc3 TMP_5 t t0)))))) in (let TMP_12 \def (\lambda 
-(c0: C).(\lambda (t3: T).(\lambda (t4: T).(\lambda (H2: (pr0 t3 t4)).(\lambda 
-(H3: (eq C c0 (CHead c k u2))).(let TMP_7 \def (\lambda (e: C).e) in (let 
-TMP_8 \def (CHead c k u2) in (let H4 \def (f_equal C C TMP_7 c0 TMP_8 H3) in 
-(let TMP_9 \def (CHead c k u1) in (let TMP_10 \def (CHead c k u1) in (let 
-TMP_11 \def (pr2_free TMP_10 t3 t4 H2) in (pc3_pr2_r TMP_9 t3 t4 
-TMP_11)))))))))))) in (let TMP_124 \def (\lambda (c0: C).(\lambda (d: 
-C).(\lambda (u: T).(\lambda (i: nat).(\lambda (H2: (getl i c0 (CHead d (Bind 
-Abbr) u))).(\lambda (t3: T).(\lambda (t4: T).(\lambda (H3: (pr0 t3 
-t4)).(\lambda (t: T).(\lambda (H4: (subst0 i u t4 t)).(\lambda (H5: (eq C c0 
-(CHead c k u2))).(let TMP_13 \def (\lambda (e: C).e) in (let TMP_14 \def 
-(CHead c k u2) in (let H6 \def (f_equal C C TMP_13 c0 TMP_14 H5) in (let 
-TMP_17 \def (\lambda (c1: C).(let TMP_15 \def (Bind Abbr) in (let TMP_16 \def 
-(CHead d TMP_15 u) in (getl i c1 TMP_16)))) in (let TMP_18 \def (CHead c k 
-u2) in (let H7 \def (eq_ind C c0 TMP_17 H2 TMP_18 H6) in (let TMP_20 \def 
-(\lambda (n: nat).((getl n (CHead c k u2) (CHead d (Bind Abbr) u)) \to 
-((subst0 n u t4 t) \to (let TMP_19 \def (CHead c k u1) in (pc3 TMP_19 t3 
-t))))) in (let TMP_99 \def (\lambda (H8: (getl O (CHead c k u2) (CHead d 
-(Bind Abbr) u))).(\lambda (H9: (subst0 O u t4 t)).(let TMP_22 \def (\lambda 
-(k0: K).((clear (CHead c k0 u2) (CHead d (Bind Abbr) u)) \to (let TMP_21 \def 
-(CHead c k0 u1) in (pc3 TMP_21 t3 t)))) in (let TMP_76 \def (\lambda (b: 
-B).(\lambda (H10: (clear (CHead c (Bind b) u2) (CHead d (Bind Abbr) u))).(let 
-TMP_23 \def (\lambda (e: C).(match e with [(CSort _) \Rightarrow d | (CHead 
-c1 _ _) \Rightarrow c1])) in (let TMP_24 \def (Bind Abbr) in (let TMP_25 \def 
-(CHead d TMP_24 u) in (let TMP_26 \def (Bind b) in (let TMP_27 \def (CHead c 
-TMP_26 u2) in (let TMP_28 \def (Bind Abbr) in (let TMP_29 \def (CHead d 
-TMP_28 u) in (let TMP_30 \def (clear_gen_bind b c TMP_29 u2 H10) in (let H11 
-\def (f_equal C C TMP_23 TMP_25 TMP_27 TMP_30) in (let TMP_31 \def (\lambda 
-(e: C).(match e with [(CSort _) \Rightarrow Abbr | (CHead _ k0 _) \Rightarrow 
-(match k0 with [(Bind b0) \Rightarrow b0 | (Flat _) \Rightarrow Abbr])])) in 
-(let TMP_32 \def (Bind Abbr) in (let TMP_33 \def (CHead d TMP_32 u) in (let 
-TMP_34 \def (Bind b) in (let TMP_35 \def (CHead c TMP_34 u2) in (let TMP_36 
-\def (Bind Abbr) in (let TMP_37 \def (CHead d TMP_36 u) in (let TMP_38 \def 
-(clear_gen_bind b c TMP_37 u2 H10) in (let H12 \def (f_equal C B TMP_31 
-TMP_33 TMP_35 TMP_38) in (let TMP_39 \def (\lambda (e: C).(match e with 
-[(CSort _) \Rightarrow u | (CHead _ _ t0) \Rightarrow t0])) in (let TMP_40 
-\def (Bind Abbr) in (let TMP_41 \def (CHead d TMP_40 u) in (let TMP_42 \def 
-(Bind b) in (let TMP_43 \def (CHead c TMP_42 u2) in (let TMP_44 \def (Bind 
-Abbr) in (let TMP_45 \def (CHead d TMP_44 u) in (let TMP_46 \def 
-(clear_gen_bind b c TMP_45 u2 H10) in (let H13 \def (f_equal C T TMP_39 
-TMP_41 TMP_43 TMP_46) in (let TMP_74 \def (\lambda (H14: (eq B Abbr 
-b)).(\lambda (_: (eq C d c)).(let TMP_47 \def (\lambda (t0: T).(subst0 O t0 
-t4 t)) in (let H16 \def (eq_ind T u TMP_47 H9 u2 H13) in (let TMP_50 \def 
-(\lambda (b0: B).(let TMP_48 \def (Bind b0) in (let TMP_49 \def (CHead c 
-TMP_48 u1) in (pc3 TMP_49 t3 t)))) in (let TMP_51 \def (\lambda (t0: 
-T).(subst0 O u1 t4 t0)) in (let TMP_52 \def (\lambda (t0: T).(pr0 t t0)) in 
-(let TMP_53 \def (Bind Abbr) in (let TMP_54 \def (CHead c TMP_53 u1) in (let 
-TMP_55 \def (pc3 TMP_54 t3 t) in (let TMP_71 \def (\lambda (x: T).(\lambda 
-(H17: (subst0 O u1 t4 x)).(\lambda (H18: (pr0 t x)).(let TMP_56 \def (Bind 
-Abbr) in (let TMP_57 \def (CHead c TMP_56 u1) in (let TMP_58 \def (Bind Abbr) 
-in (let TMP_59 \def (CHead c TMP_58 u1) in (let TMP_60 \def (Bind Abbr) in 
-(let TMP_61 \def (CHead c TMP_60 u1) in (let TMP_62 \def (getl_refl Abbr c 
-u1) in (let TMP_63 \def (pr2_delta TMP_61 c u1 O TMP_62 t3 t4 H3 x H17) in 
-(let TMP_64 \def (pr3_pr2 TMP_59 t3 x TMP_63) in (let TMP_65 \def (Bind Abbr) 
-in (let TMP_66 \def (CHead c TMP_65 u1) in (let TMP_67 \def (Bind Abbr) in 
-(let TMP_68 \def (CHead c TMP_67 u1) in (let TMP_69 \def (pr2_free TMP_68 t x 
-H18) in (let TMP_70 \def (pr3_pr2 TMP_66 t x TMP_69) in (pc3_pr3_t TMP_57 t3 
-x TMP_64 t TMP_70))))))))))))))))))) in (let TMP_72 \def (pr0_subst0_fwd u2 
-t4 t O H16 u1 H) in (let TMP_73 \def (ex2_ind T TMP_51 TMP_52 TMP_55 TMP_71 
-TMP_72) in (eq_ind B Abbr TMP_50 TMP_73 b H14)))))))))))))) in (let TMP_75 
-\def (TMP_74 H12) in (TMP_75 H11)))))))))))))))))))))))))))))))) in (let 
-TMP_94 \def (\lambda (f: F).(\lambda (H10: (clear (CHead c (Flat f) u2) 
-(CHead d (Bind Abbr) u))).(let TMP_77 \def (Bind Abbr) in (let TMP_78 \def 
-(CHead d TMP_77 u) in (let TMP_79 \def (Bind Abbr) in (let TMP_80 \def (CHead 
-d TMP_79 u) in (let TMP_81 \def (Bind Abbr) in (let TMP_82 \def (CHead d 
-TMP_81 u) in (let TMP_83 \def (getl_refl Abbr d u) in (let TMP_84 \def 
-(pr2_delta TMP_82 d u O TMP_83 t3 t4 H3 t H9) in (let TMP_85 \def (pc3_pr2_r 
-TMP_80 t3 t TMP_84) in (let TMP_86 \def (Flat f) in (let TMP_87 \def (CHead c 
-TMP_86 u1) in (let TMP_88 \def (Bind Abbr) in (let TMP_89 \def (CHead d 
-TMP_88 u) in (let TMP_90 \def (Bind Abbr) in (let TMP_91 \def (CHead d TMP_90 
-u) in (let TMP_92 \def (clear_gen_flat f c TMP_91 u2 H10) in (let TMP_93 \def 
-(clear_flat c TMP_89 TMP_92 f u1) in (clear_pc3_trans TMP_78 t3 t TMP_85 
-TMP_87 TMP_93)))))))))))))))))))) in (let TMP_95 \def (CHead c k u2) in (let 
-TMP_96 \def (Bind Abbr) in (let TMP_97 \def (CHead d TMP_96 u) in (let TMP_98 
-\def (getl_gen_O TMP_95 TMP_97 H8) in (K_ind TMP_22 TMP_76 TMP_94 k 
-TMP_98)))))))))) in (let TMP_123 \def (\lambda (i0: nat).(\lambda (IHi: 
-(((getl i0 (CHead c k u2) (CHead d (Bind Abbr) u)) \to ((subst0 i0 u t4 t) 
-\to (pc3 (CHead c k u1) t3 t))))).(\lambda (H8: (getl (S i0) (CHead c k u2) 
-(CHead d (Bind Abbr) u))).(\lambda (H9: (subst0 (S i0) u t4 t)).(let TMP_101 
-\def (\lambda (k0: K).((((getl i0 (CHead c k0 u2) (CHead d (Bind Abbr) u)) 
-\to ((subst0 i0 u t4 t) \to (pc3 (CHead c k0 u1) t3 t)))) \to ((getl (r k0 
-i0) c (CHead d (Bind Abbr) u)) \to (let TMP_100 \def (CHead c k0 u1) in (pc3 
-TMP_100 t3 t))))) in (let TMP_112 \def (\lambda (b: B).(\lambda (_: (((getl 
-i0 (CHead c (Bind b) u2) (CHead d (Bind Abbr) u)) \to ((subst0 i0 u t4 t) \to 
-(pc3 (CHead c (Bind b) u1) t3 t))))).(\lambda (H10: (getl (r (Bind b) i0) c 
-(CHead d (Bind Abbr) u))).(let TMP_102 \def (Bind b) in (let TMP_103 \def 
-(CHead c TMP_102 u1) in (let TMP_104 \def (Bind b) in (let TMP_105 \def 
-(CHead c TMP_104 u1) in (let TMP_106 \def (S i0) in (let TMP_107 \def (Bind 
-b) in (let TMP_108 \def (Bind Abbr) in (let TMP_109 \def (CHead d TMP_108 u) 
-in (let TMP_110 \def (getl_head TMP_107 i0 c TMP_109 H10 u1) in (let TMP_111 
-\def (pr2_delta TMP_105 d u TMP_106 TMP_110 t3 t4 H3 t H9) in (pc3_pr2_r 
-TMP_103 t3 t TMP_111)))))))))))))) in (let TMP_119 \def (\lambda (f: 
-F).(\lambda (_: (((getl i0 (CHead c (Flat f) u2) (CHead d (Bind Abbr) u)) \to 
-((subst0 i0 u t4 t) \to (pc3 (CHead c (Flat f) u1) t3 t))))).(\lambda (H10: 
-(getl (r (Flat f) i0) c (CHead d (Bind Abbr) u))).(let TMP_113 \def (Flat f) 
-in (let TMP_114 \def (CHead c TMP_113 u1) in (let TMP_115 \def (Flat f) in 
-(let TMP_116 \def (r TMP_115 i0) in (let TMP_117 \def (pr2_delta c d u 
-TMP_116 H10 t3 t4 H3 t H9) in (let TMP_118 \def (pr2_cflat c t3 t TMP_117 f 
-u1) in (pc3_pr2_r TMP_114 t3 t TMP_118)))))))))) in (let TMP_120 \def (Bind 
-Abbr) in (let TMP_121 \def (CHead d TMP_120 u) in (let TMP_122 \def 
-(getl_gen_S k c TMP_121 u2 i0 H8) in (K_ind TMP_101 TMP_112 TMP_119 k IHi 
-TMP_122))))))))))) in (nat_ind TMP_20 TMP_99 TMP_123 i H7 
-H4))))))))))))))))))))) in (pr2_ind TMP_6 TMP_12 TMP_124 y t1 t2 H1)))))) in 
-(insert_eq C TMP_1 TMP_2 TMP_4 TMP_125 H0)))))))))))).
+(CHead c k u2) t1 t2)).(insert_eq C (CHead c k u2) (\lambda (c0: C).(pr2 c0 
+t1 t2)) (\lambda (_: C).(pc3 (CHead c k u1) t1 t2)) (\lambda (y: C).(\lambda 
+(H1: (pr2 y t1 t2)).(pr2_ind (\lambda (c0: C).(\lambda (t: T).(\lambda (t0: 
+T).((eq C c0 (CHead c k u2)) \to (pc3 (CHead c k u1) t t0))))) (\lambda (c0: 
+C).(\lambda (t3: T).(\lambda (t4: T).(\lambda (H2: (pr0 t3 t4)).(\lambda (H3: 
+(eq C c0 (CHead c k u2))).(let H4 \def (f_equal C C (\lambda (e: C).e) c0 
+(CHead c k u2) H3) in (pc3_pr2_r (CHead c k u1) t3 t4 (pr2_free (CHead c k 
+u1) t3 t4 H2)))))))) (\lambda (c0: C).(\lambda (d: C).(\lambda (u: 
+T).(\lambda (i: nat).(\lambda (H2: (getl i c0 (CHead d (Bind Abbr) 
+u))).(\lambda (t3: T).(\lambda (t4: T).(\lambda (H3: (pr0 t3 t4)).(\lambda 
+(t: T).(\lambda (H4: (subst0 i u t4 t)).(\lambda (H5: (eq C c0 (CHead c k 
+u2))).(let H6 \def (f_equal C C (\lambda (e: C).e) c0 (CHead c k u2) H5) in 
+(let H7 \def (eq_ind C c0 (\lambda (c1: C).(getl i c1 (CHead d (Bind Abbr) 
+u))) H2 (CHead c k u2) H6) in (nat_ind (\lambda (n: nat).((getl n (CHead c k 
+u2) (CHead d (Bind Abbr) u)) \to ((subst0 n u t4 t) \to (pc3 (CHead c k u1) 
+t3 t)))) (\lambda (H8: (getl O (CHead c k u2) (CHead d (Bind Abbr) 
+u))).(\lambda (H9: (subst0 O u t4 t)).(K_ind (\lambda (k0: K).((clear (CHead 
+c k0 u2) (CHead d (Bind Abbr) u)) \to (pc3 (CHead c k0 u1) t3 t))) (\lambda 
+(b: B).(\lambda (H10: (clear (CHead c (Bind b) u2) (CHead d (Bind Abbr) 
+u))).(let H11 \def (f_equal C C (\lambda (e: C).(match e with [(CSort _) 
+\Rightarrow d | (CHead c1 _ _) \Rightarrow c1])) (CHead d (Bind Abbr) u) 
+(CHead c (Bind b) u2) (clear_gen_bind b c (CHead d (Bind Abbr) u) u2 H10)) in 
+((let H12 \def (f_equal C B (\lambda (e: C).(match e with [(CSort _) 
+\Rightarrow Abbr | (CHead _ k0 _) \Rightarrow (match k0 with [(Bind b0) 
+\Rightarrow b0 | (Flat _) \Rightarrow Abbr])])) (CHead d (Bind Abbr) u) 
+(CHead c (Bind b) u2) (clear_gen_bind b c (CHead d (Bind Abbr) u) u2 H10)) in 
+((let H13 \def (f_equal C T (\lambda (e: C).(match e with [(CSort _) 
+\Rightarrow u | (CHead _ _ t0) \Rightarrow t0])) (CHead d (Bind Abbr) u) 
+(CHead c (Bind b) u2) (clear_gen_bind b c (CHead d (Bind Abbr) u) u2 H10)) in 
+(\lambda (H14: (eq B Abbr b)).(\lambda (_: (eq C d c)).(let H16 \def (eq_ind 
+T u (\lambda (t0: T).(subst0 O t0 t4 t)) H9 u2 H13) in (eq_ind B Abbr 
+(\lambda (b0: B).(pc3 (CHead c (Bind b0) u1) t3 t)) (ex2_ind T (\lambda (t0: 
+T).(subst0 O u1 t4 t0)) (\lambda (t0: T).(pr0 t t0)) (pc3 (CHead c (Bind 
+Abbr) u1) t3 t) (\lambda (x: T).(\lambda (H17: (subst0 O u1 t4 x)).(\lambda 
+(H18: (pr0 t x)).(pc3_pr3_t (CHead c (Bind Abbr) u1) t3 x (pr3_pr2 (CHead c 
+(Bind Abbr) u1) t3 x (pr2_delta (CHead c (Bind Abbr) u1) c u1 O (getl_refl 
+Abbr c u1) t3 t4 H3 x H17)) t (pr3_pr2 (CHead c (Bind Abbr) u1) t x (pr2_free 
+(CHead c (Bind Abbr) u1) t x H18)))))) (pr0_subst0_fwd u2 t4 t O H16 u1 H)) b 
+H14))))) H12)) H11)))) (\lambda (f: F).(\lambda (H10: (clear (CHead c (Flat 
+f) u2) (CHead d (Bind Abbr) u))).(clear_pc3_trans (CHead d (Bind Abbr) u) t3 
+t (pc3_pr2_r (CHead d (Bind Abbr) u) t3 t (pr2_delta (CHead d (Bind Abbr) u) 
+d u O (getl_refl Abbr d u) t3 t4 H3 t H9)) (CHead c (Flat f) u1) (clear_flat 
+c (CHead d (Bind Abbr) u) (clear_gen_flat f c (CHead d (Bind Abbr) u) u2 H10) 
+f u1)))) k (getl_gen_O (CHead c k u2) (CHead d (Bind Abbr) u) H8)))) (\lambda 
+(i0: nat).(\lambda (IHi: (((getl i0 (CHead c k u2) (CHead d (Bind Abbr) u)) 
+\to ((subst0 i0 u t4 t) \to (pc3 (CHead c k u1) t3 t))))).(\lambda (H8: (getl 
+(S i0) (CHead c k u2) (CHead d (Bind Abbr) u))).(\lambda (H9: (subst0 (S i0) 
+u t4 t)).(K_ind (\lambda (k0: K).((((getl i0 (CHead c k0 u2) (CHead d (Bind 
+Abbr) u)) \to ((subst0 i0 u t4 t) \to (pc3 (CHead c k0 u1) t3 t)))) \to 
+((getl (r k0 i0) c (CHead d (Bind Abbr) u)) \to (pc3 (CHead c k0 u1) t3 t)))) 
+(\lambda (b: B).(\lambda (_: (((getl i0 (CHead c (Bind b) u2) (CHead d (Bind 
+Abbr) u)) \to ((subst0 i0 u t4 t) \to (pc3 (CHead c (Bind b) u1) t3 
+t))))).(\lambda (H10: (getl (r (Bind b) i0) c (CHead d (Bind Abbr) 
+u))).(pc3_pr2_r (CHead c (Bind b) u1) t3 t (pr2_delta (CHead c (Bind b) u1) d 
+u (S i0) (getl_head (Bind b) i0 c (CHead d (Bind Abbr) u) H10 u1) t3 t4 H3 t 
+H9))))) (\lambda (f: F).(\lambda (_: (((getl i0 (CHead c (Flat f) u2) (CHead 
+d (Bind Abbr) u)) \to ((subst0 i0 u t4 t) \to (pc3 (CHead c (Flat f) u1) t3 
+t))))).(\lambda (H10: (getl (r (Flat f) i0) c (CHead d (Bind Abbr) 
+u))).(pc3_pr2_r (CHead c (Flat f) u1) t3 t (pr2_cflat c t3 t (pr2_delta c d u 
+(r (Flat f) i0) H10 t3 t4 H3 t H9) f u1))))) k IHi (getl_gen_S k c (CHead d 
+(Bind Abbr) u) u2 i0 H8)))))) i H7 H4)))))))))))))) y t1 t2 H1))) H0)))))))).
 
 theorem pc3_pr2_pr2_t:
  \forall (c: C).(\forall (u1: T).(\forall (u2: T).((pr2 c u2 u1) \to (\forall 
@@ -355,134 +265,78 @@ theorem pc3_pr2_pr2_t:
 (CHead c k u1) t1 t2))))))))
 \def
  \lambda (c: C).(\lambda (u1: T).(\lambda (u2: T).(\lambda (H: (pr2 c u2 
-u1)).(let TMP_2 \def (\lambda (c0: C).(\lambda (t: T).(\lambda (t0: 
-T).(\forall (t1: T).(\forall (t2: T).(\forall (k: K).((pr2 (CHead c0 k t) t1 
-t2) \to (let TMP_1 \def (CHead c0 k t0) in (pc3 TMP_1 t1 t2))))))))) in (let 
-TMP_3 \def (\lambda (c0: C).(\lambda (t1: T).(\lambda (t2: T).(\lambda (H0: 
-(pr0 t1 t2)).(\lambda (t0: T).(\lambda (t3: T).(\lambda (k: K).(\lambda (H1: 
-(pr2 (CHead c0 k t1) t0 t3)).(pc3_pr0_pr2_t t2 t1 H0 c0 t0 t3 k H1))))))))) 
-in (let TMP_144 \def (\lambda (c0: C).(\lambda (d: C).(\lambda (u: 
-T).(\lambda (i: nat).(\lambda (H0: (getl i c0 (CHead d (Bind Abbr) 
-u))).(\lambda (t1: T).(\lambda (t2: T).(\lambda (H1: (pr0 t1 t2)).(\lambda 
-(t: T).(\lambda (H2: (subst0 i u t2 t)).(\lambda (t0: T).(\lambda (t3: 
-T).(\lambda (k: K).(\lambda (H3: (pr2 (CHead c0 k t1) t0 t3)).(let TMP_4 \def 
-(CHead c0 k t1) in (let TMP_5 \def (\lambda (c1: C).(pr2 c1 t0 t3)) in (let 
-TMP_7 \def (\lambda (_: C).(let TMP_6 \def (CHead c0 k t) in (pc3 TMP_6 t0 
-t3))) in (let TMP_143 \def (\lambda (y: C).(\lambda (H4: (pr2 y t0 t3)).(let 
-TMP_9 \def (\lambda (c1: C).(\lambda (t4: T).(\lambda (t5: T).((eq C c1 
-(CHead c0 k t1)) \to (let TMP_8 \def (CHead c0 k t) in (pc3 TMP_8 t4 t5)))))) 
-in (let TMP_13 \def (\lambda (c1: C).(\lambda (t4: T).(\lambda (t5: 
-T).(\lambda (H5: (pr0 t4 t5)).(\lambda (_: (eq C c1 (CHead c0 k t1))).(let 
-TMP_10 \def (CHead c0 k t) in (let TMP_11 \def (CHead c0 k t) in (let TMP_12 
-\def (pr2_free TMP_11 t4 t5 H5) in (pc3_pr2_r TMP_10 t4 t5 TMP_12))))))))) in 
-(let TMP_142 \def (\lambda (c1: C).(\lambda (d0: C).(\lambda (u0: T).(\lambda 
-(i0: nat).(\lambda (H5: (getl i0 c1 (CHead d0 (Bind Abbr) u0))).(\lambda (t4: 
-T).(\lambda (t5: T).(\lambda (H6: (pr0 t4 t5)).(\lambda (t6: T).(\lambda (H7: 
-(subst0 i0 u0 t5 t6)).(\lambda (H8: (eq C c1 (CHead c0 k t1))).(let TMP_16 
-\def (\lambda (c2: C).(let TMP_14 \def (Bind Abbr) in (let TMP_15 \def (CHead 
-d0 TMP_14 u0) in (getl i0 c2 TMP_15)))) in (let TMP_17 \def (CHead c0 k t1) 
-in (let H9 \def (eq_ind C c1 TMP_16 H5 TMP_17 H8) in (let TMP_19 \def 
-(\lambda (n: nat).((getl n (CHead c0 k t1) (CHead d0 (Bind Abbr) u0)) \to 
-((subst0 n u0 t5 t6) \to (let TMP_18 \def (CHead c0 k t) in (pc3 TMP_18 t4 
-t6))))) in (let TMP_117 \def (\lambda (H10: (getl O (CHead c0 k t1) (CHead d0 
-(Bind Abbr) u0))).(\lambda (H11: (subst0 O u0 t5 t6)).(let TMP_21 \def 
-(\lambda (k0: K).((clear (CHead c0 k0 t1) (CHead d0 (Bind Abbr) u0)) \to (let 
-TMP_20 \def (CHead c0 k0 t) in (pc3 TMP_20 t4 t6)))) in (let TMP_94 \def 
-(\lambda (b: B).(\lambda (H12: (clear (CHead c0 (Bind b) t1) (CHead d0 (Bind 
-Abbr) u0))).(let TMP_22 \def (\lambda (e: C).(match e with [(CSort _) 
-\Rightarrow d0 | (CHead c2 _ _) \Rightarrow c2])) in (let TMP_23 \def (Bind 
-Abbr) in (let TMP_24 \def (CHead d0 TMP_23 u0) in (let TMP_25 \def (Bind b) 
-in (let TMP_26 \def (CHead c0 TMP_25 t1) in (let TMP_27 \def (Bind Abbr) in 
-(let TMP_28 \def (CHead d0 TMP_27 u0) in (let TMP_29 \def (clear_gen_bind b 
-c0 TMP_28 t1 H12) in (let H13 \def (f_equal C C TMP_22 TMP_24 TMP_26 TMP_29) 
-in (let TMP_30 \def (\lambda (e: C).(match e with [(CSort _) \Rightarrow Abbr 
-| (CHead _ k0 _) \Rightarrow (match k0 with [(Bind b0) \Rightarrow b0 | (Flat 
-_) \Rightarrow Abbr])])) in (let TMP_31 \def (Bind Abbr) in (let TMP_32 \def 
-(CHead d0 TMP_31 u0) in (let TMP_33 \def (Bind b) in (let TMP_34 \def (CHead 
-c0 TMP_33 t1) in (let TMP_35 \def (Bind Abbr) in (let TMP_36 \def (CHead d0 
-TMP_35 u0) in (let TMP_37 \def (clear_gen_bind b c0 TMP_36 t1 H12) in (let 
-H14 \def (f_equal C B TMP_30 TMP_32 TMP_34 TMP_37) in (let TMP_38 \def 
-(\lambda (e: C).(match e with [(CSort _) \Rightarrow u0 | (CHead _ _ t7) 
-\Rightarrow t7])) in (let TMP_39 \def (Bind Abbr) in (let TMP_40 \def (CHead 
-d0 TMP_39 u0) in (let TMP_41 \def (Bind b) in (let TMP_42 \def (CHead c0 
-TMP_41 t1) in (let TMP_43 \def (Bind Abbr) in (let TMP_44 \def (CHead d0 
-TMP_43 u0) in (let TMP_45 \def (clear_gen_bind b c0 TMP_44 t1 H12) in (let 
-H15 \def (f_equal C T TMP_38 TMP_40 TMP_42 TMP_45) in (let TMP_92 \def 
-(\lambda (H16: (eq B Abbr b)).(\lambda (_: (eq C d0 c0)).(let TMP_46 \def 
-(\lambda (t7: T).(subst0 O t7 t5 t6)) in (let H18 \def (eq_ind T u0 TMP_46 
-H11 t1 H15) in (let TMP_49 \def (\lambda (b0: B).(let TMP_47 \def (Bind b0) 
-in (let TMP_48 \def (CHead c0 TMP_47 t) in (pc3 TMP_48 t4 t6)))) in (let 
-TMP_50 \def (\lambda (t7: T).(subst0 O t2 t5 t7)) in (let TMP_51 \def 
-(\lambda (t7: T).(pr0 t6 t7)) in (let TMP_52 \def (Bind Abbr) in (let TMP_53 
-\def (CHead c0 TMP_52 t) in (let TMP_54 \def (pc3 TMP_53 t4 t6) in (let 
-TMP_89 \def (\lambda (x: T).(\lambda (H19: (subst0 O t2 t5 x)).(\lambda (H20: 
-(pr0 t6 x)).(let TMP_55 \def (\lambda (t7: T).(subst0 O t t5 t7)) in (let 
-TMP_58 \def (\lambda (t7: T).(let TMP_56 \def (plus i O) in (let TMP_57 \def 
-(S TMP_56) in (subst0 TMP_57 u x t7)))) in (let TMP_59 \def (Bind Abbr) in 
-(let TMP_60 \def (CHead c0 TMP_59 t) in (let TMP_61 \def (pc3 TMP_60 t4 t6) 
-in (let TMP_87 \def (\lambda (x0: T).(\lambda (H21: (subst0 O t t5 
-x0)).(\lambda (H22: (subst0 (S (plus i O)) u x x0)).(let TMP_62 \def (plus i 
-O) in (let TMP_63 \def (plus i O) in (let TMP_64 \def (plus_n_O i) in (let 
-TMP_65 \def (sym_eq nat i TMP_63 TMP_64) in (let H23 \def (f_equal nat nat S 
-TMP_62 i TMP_65) in (let TMP_66 \def (plus i O) in (let TMP_67 \def (S 
-TMP_66) in (let TMP_68 \def (\lambda (n: nat).(subst0 n u x x0)) in (let 
-TMP_69 \def (S i) in (let H24 \def (eq_ind nat TMP_67 TMP_68 H22 TMP_69 H23) 
-in (let TMP_70 \def (Bind Abbr) in (let TMP_71 \def (CHead c0 TMP_70 t) in 
-(let TMP_72 \def (Bind Abbr) in (let TMP_73 \def (CHead c0 TMP_72 t) in (let 
-TMP_74 \def (getl_refl Abbr c0 t) in (let TMP_75 \def (pr2_delta TMP_73 c0 t 
-O TMP_74 t4 t5 H6 x0 H21) in (let TMP_76 \def (Bind Abbr) in (let TMP_77 \def 
-(CHead c0 TMP_76 t) in (let TMP_78 \def (Bind Abbr) in (let TMP_79 \def 
-(CHead c0 TMP_78 t) in (let TMP_80 \def (S i) in (let TMP_81 \def (Bind Abbr) 
-in (let TMP_82 \def (Bind Abbr) in (let TMP_83 \def (CHead d TMP_82 u) in 
-(let TMP_84 \def (getl_head TMP_81 i c0 TMP_83 H0 t) in (let TMP_85 \def 
-(pr2_delta TMP_79 d u TMP_80 TMP_84 t6 x H20 x0 H24) in (let TMP_86 \def 
-(pc3_pr2_x TMP_77 x0 t6 TMP_85) in (pc3_pr2_u TMP_71 x0 t4 TMP_75 t6 
-TMP_86))))))))))))))))))))))))))))))) in (let TMP_88 \def (subst0_subst0_back 
-t5 x t2 O H19 t u i H2) in (ex2_ind T TMP_55 TMP_58 TMP_61 TMP_87 
-TMP_88))))))))))) in (let TMP_90 \def (pr0_subst0_fwd t1 t5 t6 O H18 t2 H1) 
-in (let TMP_91 \def (ex2_ind T TMP_50 TMP_51 TMP_54 TMP_89 TMP_90) in (eq_ind 
-B Abbr TMP_49 TMP_91 b H16)))))))))))))) in (let TMP_93 \def (TMP_92 H14) in 
-(TMP_93 H13)))))))))))))))))))))))))))))))) in (let TMP_112 \def (\lambda (f: 
-F).(\lambda (H12: (clear (CHead c0 (Flat f) t1) (CHead d0 (Bind Abbr) 
-u0))).(let TMP_95 \def (Bind Abbr) in (let TMP_96 \def (CHead d0 TMP_95 u0) 
-in (let TMP_97 \def (Bind Abbr) in (let TMP_98 \def (CHead d0 TMP_97 u0) in 
-(let TMP_99 \def (Bind Abbr) in (let TMP_100 \def (CHead d0 TMP_99 u0) in 
-(let TMP_101 \def (getl_refl Abbr d0 u0) in (let TMP_102 \def (pr2_delta 
-TMP_100 d0 u0 O TMP_101 t4 t5 H6 t6 H11) in (let TMP_103 \def (pc3_pr2_r 
-TMP_98 t4 t6 TMP_102) in (let TMP_104 \def (Flat f) in (let TMP_105 \def 
-(CHead c0 TMP_104 t) in (let TMP_106 \def (Bind Abbr) in (let TMP_107 \def 
-(CHead d0 TMP_106 u0) in (let TMP_108 \def (Bind Abbr) in (let TMP_109 \def 
-(CHead d0 TMP_108 u0) in (let TMP_110 \def (clear_gen_flat f c0 TMP_109 t1 
-H12) in (let TMP_111 \def (clear_flat c0 TMP_107 TMP_110 f t) in 
-(clear_pc3_trans TMP_96 t4 t6 TMP_103 TMP_105 TMP_111)))))))))))))))))))) in 
-(let TMP_113 \def (CHead c0 k t1) in (let TMP_114 \def (Bind Abbr) in (let 
-TMP_115 \def (CHead d0 TMP_114 u0) in (let TMP_116 \def (getl_gen_O TMP_113 
-TMP_115 H10) in (K_ind TMP_21 TMP_94 TMP_112 k TMP_116)))))))))) in (let 
-TMP_141 \def (\lambda (i1: nat).(\lambda (_: (((getl i1 (CHead c0 k t1) 
-(CHead d0 (Bind Abbr) u0)) \to ((subst0 i1 u0 t5 t6) \to (pc3 (CHead c0 k t) 
-t4 t6))))).(\lambda (H10: (getl (S i1) (CHead c0 k t1) (CHead d0 (Bind Abbr) 
-u0))).(\lambda (H11: (subst0 (S i1) u0 t5 t6)).(let TMP_119 \def (\lambda 
-(k0: K).((getl (r k0 i1) c0 (CHead d0 (Bind Abbr) u0)) \to (let TMP_118 \def 
-(CHead c0 k0 t) in (pc3 TMP_118 t4 t6)))) in (let TMP_130 \def (\lambda (b: 
-B).(\lambda (H12: (getl (r (Bind b) i1) c0 (CHead d0 (Bind Abbr) u0))).(let 
-TMP_120 \def (Bind b) in (let TMP_121 \def (CHead c0 TMP_120 t) in (let 
-TMP_122 \def (Bind b) in (let TMP_123 \def (CHead c0 TMP_122 t) in (let 
-TMP_124 \def (S i1) in (let TMP_125 \def (Bind b) in (let TMP_126 \def (Bind 
-Abbr) in (let TMP_127 \def (CHead d0 TMP_126 u0) in (let TMP_128 \def 
-(getl_head TMP_125 i1 c0 TMP_127 H12 t) in (let TMP_129 \def (pr2_delta 
-TMP_123 d0 u0 TMP_124 TMP_128 t4 t5 H6 t6 H11) in (pc3_pr2_r TMP_121 t4 t6 
-TMP_129))))))))))))) in (let TMP_137 \def (\lambda (f: F).(\lambda (H12: 
-(getl (r (Flat f) i1) c0 (CHead d0 (Bind Abbr) u0))).(let TMP_131 \def (Flat 
-f) in (let TMP_132 \def (CHead c0 TMP_131 t) in (let TMP_133 \def (Flat f) in 
-(let TMP_134 \def (r TMP_133 i1) in (let TMP_135 \def (pr2_delta c0 d0 u0 
-TMP_134 H12 t4 t5 H6 t6 H11) in (let TMP_136 \def (pr2_cflat c0 t4 t6 TMP_135 
-f t) in (pc3_pr2_r TMP_132 t4 t6 TMP_136))))))))) in (let TMP_138 \def (Bind 
-Abbr) in (let TMP_139 \def (CHead d0 TMP_138 u0) in (let TMP_140 \def 
-(getl_gen_S k c0 TMP_139 t1 i1 H10) in (K_ind TMP_119 TMP_130 TMP_137 k 
-TMP_140))))))))))) in (nat_ind TMP_19 TMP_117 TMP_141 i0 H9 
-H7)))))))))))))))))) in (pr2_ind TMP_9 TMP_13 TMP_142 y t0 t3 H4)))))) in 
-(insert_eq C TMP_4 TMP_5 TMP_7 TMP_143 H3))))))))))))))))))) in (pr2_ind 
-TMP_2 TMP_3 TMP_144 c u2 u1 H))))))).
+u1)).(pr2_ind (\lambda (c0: C).(\lambda (t: T).(\lambda (t0: T).(\forall (t1: 
+T).(\forall (t2: T).(\forall (k: K).((pr2 (CHead c0 k t) t1 t2) \to (pc3 
+(CHead c0 k t0) t1 t2)))))))) (\lambda (c0: C).(\lambda (t1: T).(\lambda (t2: 
+T).(\lambda (H0: (pr0 t1 t2)).(\lambda (t0: T).(\lambda (t3: T).(\lambda (k: 
+K).(\lambda (H1: (pr2 (CHead c0 k t1) t0 t3)).(pc3_pr0_pr2_t t2 t1 H0 c0 t0 
+t3 k H1))))))))) (\lambda (c0: C).(\lambda (d: C).(\lambda (u: T).(\lambda 
+(i: nat).(\lambda (H0: (getl i c0 (CHead d (Bind Abbr) u))).(\lambda (t1: 
+T).(\lambda (t2: T).(\lambda (H1: (pr0 t1 t2)).(\lambda (t: T).(\lambda (H2: 
+(subst0 i u t2 t)).(\lambda (t0: T).(\lambda (t3: T).(\lambda (k: K).(\lambda 
+(H3: (pr2 (CHead c0 k t1) t0 t3)).(insert_eq C (CHead c0 k t1) (\lambda (c1: 
+C).(pr2 c1 t0 t3)) (\lambda (_: C).(pc3 (CHead c0 k t) t0 t3)) (\lambda (y: 
+C).(\lambda (H4: (pr2 y t0 t3)).(pr2_ind (\lambda (c1: C).(\lambda (t4: 
+T).(\lambda (t5: T).((eq C c1 (CHead c0 k t1)) \to (pc3 (CHead c0 k t) t4 
+t5))))) (\lambda (c1: C).(\lambda (t4: T).(\lambda (t5: T).(\lambda (H5: (pr0 
+t4 t5)).(\lambda (_: (eq C c1 (CHead c0 k t1))).(pc3_pr2_r (CHead c0 k t) t4 
+t5 (pr2_free (CHead c0 k t) t4 t5 H5))))))) (\lambda (c1: C).(\lambda (d0: 
+C).(\lambda (u0: T).(\lambda (i0: nat).(\lambda (H5: (getl i0 c1 (CHead d0 
+(Bind Abbr) u0))).(\lambda (t4: T).(\lambda (t5: T).(\lambda (H6: (pr0 t4 
+t5)).(\lambda (t6: T).(\lambda (H7: (subst0 i0 u0 t5 t6)).(\lambda (H8: (eq C 
+c1 (CHead c0 k t1))).(let H9 \def (eq_ind C c1 (\lambda (c2: C).(getl i0 c2 
+(CHead d0 (Bind Abbr) u0))) H5 (CHead c0 k t1) H8) in (nat_ind (\lambda (n: 
+nat).((getl n (CHead c0 k t1) (CHead d0 (Bind Abbr) u0)) \to ((subst0 n u0 t5 
+t6) \to (pc3 (CHead c0 k t) t4 t6)))) (\lambda (H10: (getl O (CHead c0 k t1) 
+(CHead d0 (Bind Abbr) u0))).(\lambda (H11: (subst0 O u0 t5 t6)).(K_ind 
+(\lambda (k0: K).((clear (CHead c0 k0 t1) (CHead d0 (Bind Abbr) u0)) \to (pc3 
+(CHead c0 k0 t) t4 t6))) (\lambda (b: B).(\lambda (H12: (clear (CHead c0 
+(Bind b) t1) (CHead d0 (Bind Abbr) u0))).(let H13 \def (f_equal C C (\lambda 
+(e: C).(match e with [(CSort _) \Rightarrow d0 | (CHead c2 _ _) \Rightarrow 
+c2])) (CHead d0 (Bind Abbr) u0) (CHead c0 (Bind b) t1) (clear_gen_bind b c0 
+(CHead d0 (Bind Abbr) u0) t1 H12)) in ((let H14 \def (f_equal C B (\lambda 
+(e: C).(match e with [(CSort _) \Rightarrow Abbr | (CHead _ k0 _) \Rightarrow 
+(match k0 with [(Bind b0) \Rightarrow b0 | (Flat _) \Rightarrow Abbr])])) 
+(CHead d0 (Bind Abbr) u0) (CHead c0 (Bind b) t1) (clear_gen_bind b c0 (CHead 
+d0 (Bind Abbr) u0) t1 H12)) in ((let H15 \def (f_equal C T (\lambda (e: 
+C).(match e with [(CSort _) \Rightarrow u0 | (CHead _ _ t7) \Rightarrow t7])) 
+(CHead d0 (Bind Abbr) u0) (CHead c0 (Bind b) t1) (clear_gen_bind b c0 (CHead 
+d0 (Bind Abbr) u0) t1 H12)) in (\lambda (H16: (eq B Abbr b)).(\lambda (_: (eq 
+C d0 c0)).(let H18 \def (eq_ind T u0 (\lambda (t7: T).(subst0 O t7 t5 t6)) 
+H11 t1 H15) in (eq_ind B Abbr (\lambda (b0: B).(pc3 (CHead c0 (Bind b0) t) t4 
+t6)) (ex2_ind T (\lambda (t7: T).(subst0 O t2 t5 t7)) (\lambda (t7: T).(pr0 
+t6 t7)) (pc3 (CHead c0 (Bind Abbr) t) t4 t6) (\lambda (x: T).(\lambda (H19: 
+(subst0 O t2 t5 x)).(\lambda (H20: (pr0 t6 x)).(ex2_ind T (\lambda (t7: 
+T).(subst0 O t t5 t7)) (\lambda (t7: T).(subst0 (S (plus i O)) u x t7)) (pc3 
+(CHead c0 (Bind Abbr) t) t4 t6) (\lambda (x0: T).(\lambda (H21: (subst0 O t 
+t5 x0)).(\lambda (H22: (subst0 (S (plus i O)) u x x0)).(let H23 \def (f_equal 
+nat nat S (plus i O) i (sym_eq nat i (plus i O) (plus_n_O i))) in (let H24 
+\def (eq_ind nat (S (plus i O)) (\lambda (n: nat).(subst0 n u x x0)) H22 (S 
+i) H23) in (pc3_pr2_u (CHead c0 (Bind Abbr) t) x0 t4 (pr2_delta (CHead c0 
+(Bind Abbr) t) c0 t O (getl_refl Abbr c0 t) t4 t5 H6 x0 H21) t6 (pc3_pr2_x 
+(CHead c0 (Bind Abbr) t) x0 t6 (pr2_delta (CHead c0 (Bind Abbr) t) d u (S i) 
+(getl_head (Bind Abbr) i c0 (CHead d (Bind Abbr) u) H0 t) t6 x H20 x0 
+H24)))))))) (subst0_subst0_back t5 x t2 O H19 t u i H2))))) (pr0_subst0_fwd 
+t1 t5 t6 O H18 t2 H1)) b H16))))) H14)) H13)))) (\lambda (f: F).(\lambda 
+(H12: (clear (CHead c0 (Flat f) t1) (CHead d0 (Bind Abbr) 
+u0))).(clear_pc3_trans (CHead d0 (Bind Abbr) u0) t4 t6 (pc3_pr2_r (CHead d0 
+(Bind Abbr) u0) t4 t6 (pr2_delta (CHead d0 (Bind Abbr) u0) d0 u0 O (getl_refl 
+Abbr d0 u0) t4 t5 H6 t6 H11)) (CHead c0 (Flat f) t) (clear_flat c0 (CHead d0 
+(Bind Abbr) u0) (clear_gen_flat f c0 (CHead d0 (Bind Abbr) u0) t1 H12) f 
+t)))) k (getl_gen_O (CHead c0 k t1) (CHead d0 (Bind Abbr) u0) H10)))) 
+(\lambda (i1: nat).(\lambda (_: (((getl i1 (CHead c0 k t1) (CHead d0 (Bind 
+Abbr) u0)) \to ((subst0 i1 u0 t5 t6) \to (pc3 (CHead c0 k t) t4 
+t6))))).(\lambda (H10: (getl (S i1) (CHead c0 k t1) (CHead d0 (Bind Abbr) 
+u0))).(\lambda (H11: (subst0 (S i1) u0 t5 t6)).(K_ind (\lambda (k0: K).((getl 
+(r k0 i1) c0 (CHead d0 (Bind Abbr) u0)) \to (pc3 (CHead c0 k0 t) t4 t6))) 
+(\lambda (b: B).(\lambda (H12: (getl (r (Bind b) i1) c0 (CHead d0 (Bind Abbr) 
+u0))).(pc3_pr2_r (CHead c0 (Bind b) t) t4 t6 (pr2_delta (CHead c0 (Bind b) t) 
+d0 u0 (S i1) (getl_head (Bind b) i1 c0 (CHead d0 (Bind Abbr) u0) H12 t) t4 t5 
+H6 t6 H11)))) (\lambda (f: F).(\lambda (H12: (getl (r (Flat f) i1) c0 (CHead 
+d0 (Bind Abbr) u0))).(pc3_pr2_r (CHead c0 (Flat f) t) t4 t6 (pr2_cflat c0 t4 
+t6 (pr2_delta c0 d0 u0 (r (Flat f) i1) H12 t4 t5 H6 t6 H11) f t)))) k 
+(getl_gen_S k c0 (CHead d0 (Bind Abbr) u0) t1 i1 H10)))))) i0 H9 
+H7))))))))))))) y t0 t3 H4))) H3))))))))))))))) c u2 u1 H)))).
 
 theorem pc3_pr2_pr3_t:
  \forall (c: C).(\forall (u2: T).(\forall (t1: T).(\forall (t2: T).(\forall 
@@ -490,18 +344,15 @@ theorem pc3_pr2_pr3_t:
 (pc3 (CHead c k u1) t1 t2))))))))
 \def
  \lambda (c: C).(\lambda (u2: T).(\lambda (t1: T).(\lambda (t2: T).(\lambda 
-(k: K).(\lambda (H: (pr3 (CHead c k u2) t1 t2)).(let TMP_1 \def (CHead c k 
-u2) in (let TMP_3 \def (\lambda (t: T).(\lambda (t0: T).(\forall (u1: 
-T).((pr2 c u2 u1) \to (let TMP_2 \def (CHead c k u1) in (pc3 TMP_2 t t0)))))) 
-in (let TMP_5 \def (\lambda (t: T).(\lambda (u1: T).(\lambda (_: (pr2 c u2 
-u1)).(let TMP_4 \def (CHead c k u1) in (pc3_refl TMP_4 t))))) in (let TMP_9 
-\def (\lambda (t0: T).(\lambda (t3: T).(\lambda (H0: (pr2 (CHead c k u2) t3 
-t0)).(\lambda (t4: T).(\lambda (_: (pr3 (CHead c k u2) t0 t4)).(\lambda (H2: 
-((\forall (u1: T).((pr2 c u2 u1) \to (pc3 (CHead c k u1) t0 t4))))).(\lambda 
-(u1: T).(\lambda (H3: (pr2 c u2 u1)).(let TMP_6 \def (CHead c k u1) in (let 
-TMP_7 \def (pc3_pr2_pr2_t c u1 u2 H3 t3 t0 k H0) in (let TMP_8 \def (H2 u1 
-H3) in (pc3_t t0 TMP_6 t3 TMP_7 t4 TMP_8)))))))))))) in (pr3_ind TMP_1 TMP_3 
-TMP_5 TMP_9 t1 t2 H)))))))))).
+(k: K).(\lambda (H: (pr3 (CHead c k u2) t1 t2)).(pr3_ind (CHead c k u2) 
+(\lambda (t: T).(\lambda (t0: T).(\forall (u1: T).((pr2 c u2 u1) \to (pc3 
+(CHead c k u1) t t0))))) (\lambda (t: T).(\lambda (u1: T).(\lambda (_: (pr2 c 
+u2 u1)).(pc3_refl (CHead c k u1) t)))) (\lambda (t0: T).(\lambda (t3: 
+T).(\lambda (H0: (pr2 (CHead c k u2) t3 t0)).(\lambda (t4: T).(\lambda (_: 
+(pr3 (CHead c k u2) t0 t4)).(\lambda (H2: ((\forall (u1: T).((pr2 c u2 u1) 
+\to (pc3 (CHead c k u1) t0 t4))))).(\lambda (u1: T).(\lambda (H3: (pr2 c u2 
+u1)).(pc3_t t0 (CHead c k u1) t3 (pc3_pr2_pr2_t c u1 u2 H3 t3 t0 k H0) t4 (H2 
+u1 H3)))))))))) t1 t2 H)))))).
 
 theorem pc3_pr3_pc3_t:
  \forall (c: C).(\forall (u1: T).(\forall (u2: T).((pr3 c u2 u1) \to (\forall 
@@ -509,26 +360,20 @@ theorem pc3_pr3_pc3_t:
 (CHead c k u1) t1 t2))))))))
 \def
  \lambda (c: C).(\lambda (u1: T).(\lambda (u2: T).(\lambda (H: (pr3 c u2 
-u1)).(let TMP_2 \def (\lambda (t: T).(\lambda (t0: T).(\forall (t1: 
-T).(\forall (t2: T).(\forall (k: K).((pc3 (CHead c k t) t1 t2) \to (let TMP_1 
-\def (CHead c k t0) in (pc3 TMP_1 t1 t2)))))))) in (let TMP_3 \def (\lambda 
-(t: T).(\lambda (t1: T).(\lambda (t2: T).(\lambda (k: K).(\lambda (H0: (pc3 
-(CHead c k t) t1 t2)).H0))))) in (let TMP_17 \def (\lambda (t2: T).(\lambda 
+u1)).(pr3_ind c (\lambda (t: T).(\lambda (t0: T).(\forall (t1: T).(\forall 
+(t2: T).(\forall (k: K).((pc3 (CHead c k t) t1 t2) \to (pc3 (CHead c k t0) t1 
+t2))))))) (\lambda (t: T).(\lambda (t1: T).(\lambda (t2: T).(\lambda (k: 
+K).(\lambda (H0: (pc3 (CHead c k t) t1 t2)).H0))))) (\lambda (t2: T).(\lambda 
 (t1: T).(\lambda (H0: (pr2 c t1 t2)).(\lambda (t3: T).(\lambda (_: (pr3 c t2 
 t3)).(\lambda (H2: ((\forall (t4: T).(\forall (t5: T).(\forall (k: K).((pc3 
 (CHead c k t2) t4 t5) \to (pc3 (CHead c k t3) t4 t5))))))).(\lambda (t0: 
 T).(\lambda (t4: T).(\lambda (k: K).(\lambda (H3: (pc3 (CHead c k t1) t0 
-t4)).(let H4 \def H3 in (let TMP_5 \def (\lambda (t: T).(let TMP_4 \def 
-(CHead c k t1) in (pr3 TMP_4 t0 t))) in (let TMP_7 \def (\lambda (t: T).(let 
-TMP_6 \def (CHead c k t1) in (pr3 TMP_6 t4 t))) in (let TMP_8 \def (CHead c k 
-t2) in (let TMP_9 \def (pc3 TMP_8 t0 t4) in (let TMP_15 \def (\lambda (x: 
-T).(\lambda (H5: (pr3 (CHead c k t1) t0 x)).(\lambda (H6: (pr3 (CHead c k t1) 
-t4 x)).(let TMP_10 \def (CHead c k t2) in (let TMP_11 \def (pc3_pr2_pr3_t c 
-t1 t0 x k H5 t2 H0) in (let TMP_12 \def (CHead c k t2) in (let TMP_13 \def 
-(pc3_pr2_pr3_t c t1 t4 x k H6 t2 H0) in (let TMP_14 \def (pc3_s TMP_12 x t4 
-TMP_13) in (pc3_t x TMP_10 t0 TMP_11 t4 TMP_14))))))))) in (let TMP_16 \def 
-(ex2_ind T TMP_5 TMP_7 TMP_9 TMP_15 H4) in (H2 t0 t4 k 
-TMP_16)))))))))))))))))) in (pr3_ind c TMP_2 TMP_3 TMP_17 u2 u1 H))))))).
+t4)).(H2 t0 t4 k (let H4 \def H3 in (ex2_ind T (\lambda (t: T).(pr3 (CHead c 
+k t1) t0 t)) (\lambda (t: T).(pr3 (CHead c k t1) t4 t)) (pc3 (CHead c k t2) 
+t0 t4) (\lambda (x: T).(\lambda (H5: (pr3 (CHead c k t1) t0 x)).(\lambda (H6: 
+(pr3 (CHead c k t1) t4 x)).(pc3_t x (CHead c k t2) t0 (pc3_pr2_pr3_t c t1 t0 
+x k H5 t2 H0) t4 (pc3_s (CHead c k t2) x t4 (pc3_pr2_pr3_t c t1 t4 x k H6 t2 
+H0)))))) H4))))))))))))) u2 u1 H)))).
 
 theorem pc3_lift:
  \forall (c: C).(\forall (e: C).(\forall (h: nat).(\forall (d: nat).((drop h 
@@ -537,15 +382,11 @@ h d t1) (lift h d t2)))))))))
 \def
  \lambda (c: C).(\lambda (e: C).(\lambda (h: nat).(\lambda (d: nat).(\lambda 
 (H: (drop h d c e)).(\lambda (t1: T).(\lambda (t2: T).(\lambda (H0: (pc3 e t1 
-t2)).(let H1 \def H0 in (let TMP_1 \def (\lambda (t: T).(pr3 e t1 t)) in (let 
-TMP_2 \def (\lambda (t: T).(pr3 e t2 t)) in (let TMP_3 \def (lift h d t1) in 
-(let TMP_4 \def (lift h d t2) in (let TMP_5 \def (pc3 c TMP_3 TMP_4) in (let 
-TMP_11 \def (\lambda (x: T).(\lambda (H2: (pr3 e t1 x)).(\lambda (H3: (pr3 e 
-t2 x)).(let TMP_6 \def (lift h d t1) in (let TMP_7 \def (lift h d x) in (let 
-TMP_8 \def (pr3_lift c e h d H t1 x H2) in (let TMP_9 \def (lift h d t2) in 
-(let TMP_10 \def (pr3_lift c e h d H t2 x H3) in (pc3_pr3_t c TMP_6 TMP_7 
-TMP_8 TMP_9 TMP_10))))))))) in (ex2_ind T TMP_1 TMP_2 TMP_5 TMP_11 
-H1))))))))))))))).
+t2)).(let H1 \def H0 in (ex2_ind T (\lambda (t: T).(pr3 e t1 t)) (\lambda (t: 
+T).(pr3 e t2 t)) (pc3 c (lift h d t1) (lift h d t2)) (\lambda (x: T).(\lambda 
+(H2: (pr3 e t1 x)).(\lambda (H3: (pr3 e t2 x)).(pc3_pr3_t c (lift h d t1) 
+(lift h d x) (pr3_lift c e h d H t1 x H2) (lift h d t2) (pr3_lift c e h d H 
+t2 x H3))))) H1))))))))).
 
 theorem pc3_eta:
  \forall (c: C).(\forall (t: T).(\forall (w: T).(\forall (u: T).((pc3 c t 
@@ -554,46 +395,16 @@ theorem pc3_eta:
 \def
  \lambda (c: C).(\lambda (t: T).(\lambda (w: T).(\lambda (u: T).(\lambda (H: 
 (pc3 c t (THead (Bind Abst) w u))).(\lambda (v: T).(\lambda (H0: (pc3 c v 
-w)).(let TMP_1 \def (Bind Abst) in (let TMP_2 \def (Flat Appl) in (let TMP_3 
-\def (TLRef O) in (let TMP_4 \def (S O) in (let TMP_5 \def (Bind Abst) in 
-(let TMP_6 \def (THead TMP_5 w u) in (let TMP_7 \def (lift TMP_4 O TMP_6) in 
-(let TMP_8 \def (THead TMP_2 TMP_3 TMP_7) in (let TMP_9 \def (THead TMP_1 w 
-TMP_8) in (let TMP_10 \def (Bind Abst) in (let TMP_11 \def (Flat Appl) in 
-(let TMP_12 \def (TLRef O) in (let TMP_13 \def (S O) in (let TMP_14 \def 
-(lift TMP_13 O t) in (let TMP_15 \def (THead TMP_11 TMP_12 TMP_14) in (let 
-TMP_16 \def (THead TMP_10 v TMP_15) in (let TMP_17 \def (Bind Abst) in (let 
-TMP_18 \def (Flat Appl) in (let TMP_19 \def (TLRef O) in (let TMP_20 \def (S 
-O) in (let TMP_21 \def (lift TMP_20 O t) in (let TMP_22 \def (THead TMP_18 
-TMP_19 TMP_21) in (let TMP_23 \def (Flat Appl) in (let TMP_24 \def (TLRef O) 
-in (let TMP_25 \def (S O) in (let TMP_26 \def (Bind Abst) in (let TMP_27 \def 
-(THead TMP_26 w u) in (let TMP_28 \def (lift TMP_25 O TMP_27) in (let TMP_29 
-\def (THead TMP_23 TMP_24 TMP_28) in (let TMP_30 \def (Bind Abst) in (let 
-TMP_31 \def (CHead c TMP_30 v) in (let TMP_32 \def (S O) in (let TMP_33 \def 
-(lift TMP_32 O t) in (let TMP_34 \def (S O) in (let TMP_35 \def (Bind Abst) 
-in (let TMP_36 \def (THead TMP_35 w u) in (let TMP_37 \def (lift TMP_34 O 
-TMP_36) in (let TMP_38 \def (Bind Abst) in (let TMP_39 \def (CHead c TMP_38 
-v) in (let TMP_40 \def (S O) in (let TMP_41 \def (Bind Abst) in (let TMP_42 
-\def (drop_refl c) in (let TMP_43 \def (drop_drop TMP_41 O c c TMP_42 v) in 
-(let TMP_44 \def (Bind Abst) in (let TMP_45 \def (THead TMP_44 w u) in (let 
-TMP_46 \def (pc3_lift TMP_39 c TMP_40 O TMP_43 t TMP_45 H) in (let TMP_47 
-\def (TLRef O) in (let TMP_48 \def (pc3_thin_dx TMP_31 TMP_33 TMP_37 TMP_46 
-TMP_47 Appl) in (let TMP_49 \def (pc3_head_21 c v w H0 TMP_17 TMP_22 TMP_29 
-TMP_48) in (let TMP_50 \def (Bind Abst) in (let TMP_51 \def (THead TMP_50 w 
-u) in (let TMP_52 \def (Bind Abst) in (let TMP_53 \def (Flat Appl) in (let 
-TMP_54 \def (TLRef O) in (let TMP_55 \def (S O) in (let TMP_56 \def (Bind 
-Abst) in (let TMP_57 \def (THead TMP_56 w u) in (let TMP_58 \def (lift TMP_55 
-O TMP_57) in (let TMP_59 \def (THead TMP_53 TMP_54 TMP_58) in (let TMP_60 
-\def (THead TMP_52 w TMP_59) in (let TMP_61 \def (Bind Abst) in (let TMP_62 
-\def (Flat Appl) in (let TMP_63 \def (TLRef O) in (let TMP_64 \def (S O) in 
-(let TMP_65 \def (Bind Abst) in (let TMP_66 \def (THead TMP_65 w u) in (let 
-TMP_67 \def (lift TMP_64 O TMP_66) in (let TMP_68 \def (THead TMP_62 TMP_63 
-TMP_67) in (let TMP_69 \def (THead TMP_61 w TMP_68) in (let TMP_70 \def (Bind 
-Abst) in (let TMP_71 \def (THead TMP_70 w u) in (let TMP_72 \def (pr3_refl c 
-w) in (let TMP_73 \def (pr3_eta c w u w TMP_72) in (let TMP_74 \def 
-(pc3_pr3_r c TMP_69 TMP_71 TMP_73) in (let TMP_75 \def (Bind Abst) in (let 
-TMP_76 \def (THead TMP_75 w u) in (let TMP_77 \def (pc3_s c TMP_76 t H) in 
-(let TMP_78 \def (pc3_t TMP_51 c TMP_60 TMP_74 t TMP_77) in (pc3_t TMP_9 c 
-TMP_16 TMP_49 t 
-TMP_78))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
-))))))))))))).
+w)).(pc3_t (THead (Bind Abst) w (THead (Flat Appl) (TLRef O) (lift (S O) O 
+(THead (Bind Abst) w u)))) c (THead (Bind Abst) v (THead (Flat Appl) (TLRef 
+O) (lift (S O) O t))) (pc3_head_21 c v w H0 (Bind Abst) (THead (Flat Appl) 
+(TLRef O) (lift (S O) O t)) (THead (Flat Appl) (TLRef O) (lift (S O) O (THead 
+(Bind Abst) w u))) (pc3_thin_dx (CHead c (Bind Abst) v) (lift (S O) O t) 
+(lift (S O) O (THead (Bind Abst) w u)) (pc3_lift (CHead c (Bind Abst) v) c (S 
+O) O (drop_drop (Bind Abst) O c c (drop_refl c) v) t (THead (Bind Abst) w u) 
+H) (TLRef O) Appl)) t (pc3_t (THead (Bind Abst) w u) c (THead (Bind Abst) w 
+(THead (Flat Appl) (TLRef O) (lift (S O) O (THead (Bind Abst) w u)))) 
+(pc3_pr3_r c (THead (Bind Abst) w (THead (Flat Appl) (TLRef O) (lift (S O) O 
+(THead (Bind Abst) w u)))) (THead (Bind Abst) w u) (pr3_eta c w u w (pr3_refl 
+c w))) t (pc3_s c (THead (Bind Abst) w u) t H))))))))).
 
index 75a8794fd3f1772eacd6fd7e727f8d9cecf2874e..525c45469b95548fdc886bfa59578e26c1aff355 100644 (file)
@@ -30,24 +30,16 @@ t2)).(\lambda (e: C).(\lambda (u: T).(\lambda (d: nat).(\lambda (H0: (getl d
 c (CHead e (Bind Abbr) u))).(\lambda (a0: C).(\lambda (H1: (csubst1 d u c 
 a0)).(\lambda (a: C).(\lambda (H2: (drop (S O) d a0 a)).(\lambda (x1: 
 T).(\lambda (H3: (subst1 d u t1 (lift (S O) d x1))).(\lambda (x2: T).(\lambda 
-(H4: (subst1 d u t2 (lift (S O) d x2))).(let H5 \def H in (let TMP_1 \def 
-(\lambda (t: T).(pr3 c t1 t)) in (let TMP_2 \def (\lambda (t: T).(pr3 c t2 
-t)) in (let TMP_3 \def (pc3 a x1 x2) in (let TMP_20 \def (\lambda (x: 
-T).(\lambda (H6: (pr3 c t1 x)).(\lambda (H7: (pr3 c t2 x)).(let TMP_6 \def 
-(\lambda (x3: T).(let TMP_4 \def (S O) in (let TMP_5 \def (lift TMP_4 d x3) 
-in (subst1 d u x TMP_5)))) in (let TMP_7 \def (\lambda (x3: T).(pr3 a x2 x3)) 
-in (let TMP_8 \def (pc3 a x1 x2) in (let TMP_18 \def (\lambda (x0: 
-T).(\lambda (H8: (subst1 d u x (lift (S O) d x0))).(\lambda (H9: (pr3 a x2 
-x0)).(let TMP_11 \def (\lambda (x3: T).(let TMP_9 \def (S O) in (let TMP_10 
-\def (lift TMP_9 d x3) in (subst1 d u x TMP_10)))) in (let TMP_12 \def 
-(\lambda (x3: T).(pr3 a x1 x3)) in (let TMP_13 \def (pc3 a x1 x2) in (let 
-TMP_16 \def (\lambda (x3: T).(\lambda (H10: (subst1 d u x (lift (S O) d 
-x3))).(\lambda (H11: (pr3 a x1 x3)).(let TMP_14 \def (\lambda (t: T).(pr3 a 
-x1 t)) in (let TMP_15 \def (subst1_confluence_lift x x3 u d H10 x0 H8) in 
-(let H12 \def (eq_ind T x3 TMP_14 H11 x0 TMP_15) in (pc3_pr3_t a x1 x0 H12 x2 
-H9))))))) in (let TMP_17 \def (pr3_gen_cabbr c t1 x H6 e u d H0 a0 H1 a H2 x1 
-H3) in (ex2_ind T TMP_11 TMP_12 TMP_13 TMP_16 TMP_17))))))))) in (let TMP_19 
-\def (pr3_gen_cabbr c t2 x H7 e u d H0 a0 H1 a H2 x2 H4) in (ex2_ind T TMP_6 
-TMP_7 TMP_8 TMP_18 TMP_19))))))))) in (ex2_ind T TMP_1 TMP_2 TMP_3 TMP_20 
-H5))))))))))))))))))))).
+(H4: (subst1 d u t2 (lift (S O) d x2))).(let H5 \def H in (ex2_ind T (\lambda 
+(t: T).(pr3 c t1 t)) (\lambda (t: T).(pr3 c t2 t)) (pc3 a x1 x2) (\lambda (x: 
+T).(\lambda (H6: (pr3 c t1 x)).(\lambda (H7: (pr3 c t2 x)).(ex2_ind T 
+(\lambda (x3: T).(subst1 d u x (lift (S O) d x3))) (\lambda (x3: T).(pr3 a x2 
+x3)) (pc3 a x1 x2) (\lambda (x0: T).(\lambda (H8: (subst1 d u x (lift (S O) d 
+x0))).(\lambda (H9: (pr3 a x2 x0)).(ex2_ind T (\lambda (x3: T).(subst1 d u x 
+(lift (S O) d x3))) (\lambda (x3: T).(pr3 a x1 x3)) (pc3 a x1 x2) (\lambda 
+(x3: T).(\lambda (H10: (subst1 d u x (lift (S O) d x3))).(\lambda (H11: (pr3 
+a x1 x3)).(let H12 \def (eq_ind T x3 (\lambda (t: T).(pr3 a x1 t)) H11 x0 
+(subst1_confluence_lift x x3 u d H10 x0 H8)) in (pc3_pr3_t a x1 x0 H12 x2 
+H9))))) (pr3_gen_cabbr c t1 x H6 e u d H0 a0 H1 a H2 x1 H3))))) 
+(pr3_gen_cabbr c t2 x H7 e u d H0 a0 H1 a H2 x2 H4))))) H5))))))))))))))))).
 
index a5d7b1c2510ae85bdea84bfb9e33f9ea7397b3c2..662b6bf2ec7903f74fa8afe0b034f632706c2f7c 100644 (file)
@@ -25,92 +25,63 @@ theorem pc3_wcpr0__pc3_wcpr0_t_aux:
 \def
  \lambda (c1: C).(\lambda (c2: C).(\lambda (H: (wcpr0 c1 c2)).(\lambda (k: 
 K).(\lambda (u: T).(\lambda (t1: T).(\lambda (t2: T).(\lambda (H0: (pr3 
-(CHead c1 k u) t1 t2)).(let TMP_1 \def (CHead c1 k u) in (let TMP_3 \def 
-(\lambda (t: T).(\lambda (t0: T).(let TMP_2 \def (CHead c2 k u) in (pc3 TMP_2 
-t t0)))) in (let TMP_5 \def (\lambda (t: T).(let TMP_4 \def (CHead c2 k u) in 
-(pc3_refl TMP_4 t))) in (let TMP_52 \def (\lambda (t3: T).(\lambda (t4: 
-T).(\lambda (H1: (pr2 (CHead c1 k u) t4 t3)).(\lambda (t5: T).(\lambda (_: 
-(pr3 (CHead c1 k u) t3 t5)).(\lambda (H3: (pc3 (CHead c2 k u) t3 t5)).(let 
-TMP_6 \def (CHead c2 k u) in (let TMP_7 \def (CHead c1 k u) in (let TMP_8 
-\def (\lambda (c: C).(pr2 c t4 t3)) in (let TMP_10 \def (\lambda (_: C).(let 
-TMP_9 \def (CHead c2 k u) in (pc3 TMP_9 t4 t3))) in (let TMP_50 \def (\lambda 
-(y: C).(\lambda (H4: (pr2 y t4 t3)).(let TMP_12 \def (\lambda (c: C).(\lambda 
-(t: T).(\lambda (t0: T).((eq C c (CHead c1 k u)) \to (let TMP_11 \def (CHead 
-c2 k u) in (pc3 TMP_11 t t0)))))) in (let TMP_16 \def (\lambda (c: 
-C).(\lambda (t6: T).(\lambda (t0: T).(\lambda (H5: (pr0 t6 t0)).(\lambda (_: 
-(eq C c (CHead c1 k u))).(let TMP_13 \def (CHead c2 k u) in (let TMP_14 \def 
-(CHead c2 k u) in (let TMP_15 \def (pr2_free TMP_14 t6 t0 H5) in (pc3_pr2_r 
-TMP_13 t6 t0 TMP_15))))))))) in (let TMP_49 \def (\lambda (c: C).(\lambda (d: 
-C).(\lambda (u0: T).(\lambda (i: nat).(\lambda (H5: (getl i c (CHead d (Bind 
-Abbr) u0))).(\lambda (t6: T).(\lambda (t0: T).(\lambda (H6: (pr0 t6 
+(CHead c1 k u) t1 t2)).(pr3_ind (CHead c1 k u) (\lambda (t: T).(\lambda (t0: 
+T).(pc3 (CHead c2 k u) t t0))) (\lambda (t: T).(pc3_refl (CHead c2 k u) t)) 
+(\lambda (t3: T).(\lambda (t4: T).(\lambda (H1: (pr2 (CHead c1 k u) t4 
+t3)).(\lambda (t5: T).(\lambda (_: (pr3 (CHead c1 k u) t3 t5)).(\lambda (H3: 
+(pc3 (CHead c2 k u) t3 t5)).(pc3_t t3 (CHead c2 k u) t4 (insert_eq C (CHead 
+c1 k u) (\lambda (c: C).(pr2 c t4 t3)) (\lambda (_: C).(pc3 (CHead c2 k u) t4 
+t3)) (\lambda (y: C).(\lambda (H4: (pr2 y t4 t3)).(pr2_ind (\lambda (c: 
+C).(\lambda (t: T).(\lambda (t0: T).((eq C c (CHead c1 k u)) \to (pc3 (CHead 
+c2 k u) t t0))))) (\lambda (c: C).(\lambda (t6: T).(\lambda (t0: T).(\lambda 
+(H5: (pr0 t6 t0)).(\lambda (_: (eq C c (CHead c1 k u))).(pc3_pr2_r (CHead c2 
+k u) t6 t0 (pr2_free (CHead c2 k u) t6 t0 H5))))))) (\lambda (c: C).(\lambda 
+(d: C).(\lambda (u0: T).(\lambda (i: nat).(\lambda (H5: (getl i c (CHead d 
+(Bind Abbr) u0))).(\lambda (t6: T).(\lambda (t0: T).(\lambda (H6: (pr0 t6 
 t0)).(\lambda (t: T).(\lambda (H7: (subst0 i u0 t0 t)).(\lambda (H8: (eq C c 
-(CHead c1 k u))).(let TMP_19 \def (\lambda (c0: C).(let TMP_17 \def (Bind 
-Abbr) in (let TMP_18 \def (CHead d TMP_17 u0) in (getl i c0 TMP_18)))) in 
-(let TMP_20 \def (CHead c1 k u) in (let H9 \def (eq_ind C c TMP_19 H5 TMP_20 
-H8) in (let TMP_24 \def (\lambda (e2: C).(\lambda (u2: T).(let TMP_21 \def 
-(CHead c2 k u) in (let TMP_22 \def (Bind Abbr) in (let TMP_23 \def (CHead e2 
-TMP_22 u2) in (getl i TMP_21 TMP_23)))))) in (let TMP_25 \def (\lambda (e2: 
-C).(\lambda (_: T).(wcpr0 d e2))) in (let TMP_26 \def (\lambda (_: 
-C).(\lambda (u2: T).(pr0 u0 u2))) in (let TMP_27 \def (CHead c2 k u) in (let 
-TMP_28 \def (pc3 TMP_27 t6 t) in (let TMP_42 \def (\lambda (x0: C).(\lambda 
-(x1: T).(\lambda (H10: (getl i (CHead c2 k u) (CHead x0 (Bind Abbr) 
-x1))).(\lambda (_: (wcpr0 d x0)).(\lambda (H12: (pr0 u0 x1)).(let TMP_29 \def 
-(\lambda (t7: T).(subst0 i x1 t0 t7)) in (let TMP_30 \def (\lambda (t7: 
-T).(pr0 t t7)) in (let TMP_31 \def (CHead c2 k u) in (let TMP_32 \def (pc3 
-TMP_31 t6 t) in (let TMP_40 \def (\lambda (x: T).(\lambda (H13: (subst0 i x1 
-t0 x)).(\lambda (H14: (pr0 t x)).(let TMP_33 \def (CHead c2 k u) in (let 
-TMP_34 \def (CHead c2 k u) in (let TMP_35 \def (pr2_delta TMP_34 x0 x1 i H10 
-t6 t0 H6 x H13) in (let TMP_36 \def (CHead c2 k u) in (let TMP_37 \def (CHead 
-c2 k u) in (let TMP_38 \def (pr2_free TMP_37 t x H14) in (let TMP_39 \def 
-(pc3_pr2_x TMP_36 x t TMP_38) in (pc3_pr2_u TMP_33 x t6 TMP_35 t 
-TMP_39))))))))))) in (let TMP_41 \def (pr0_subst0_fwd u0 t0 t i H7 x1 H12) in 
-(ex2_ind T TMP_29 TMP_30 TMP_32 TMP_40 TMP_41)))))))))))) in (let TMP_43 \def 
-(CHead c1 k u) in (let TMP_44 \def (CHead c2 k u) in (let TMP_45 \def 
-(pr0_refl u) in (let TMP_46 \def (wcpr0_comp c1 c2 H u u TMP_45 k) in (let 
-TMP_47 \def (Bind Abbr) in (let TMP_48 \def (wcpr0_getl TMP_43 TMP_44 TMP_46 
-i d u0 TMP_47 H9) in (ex3_2_ind C T TMP_24 TMP_25 TMP_26 TMP_28 TMP_42 
-TMP_48))))))))))))))))))))))))))) in (pr2_ind TMP_12 TMP_16 TMP_49 y t4 t3 
-H4)))))) in (let TMP_51 \def (insert_eq C TMP_7 TMP_8 TMP_10 TMP_50 H1) in 
-(pc3_t t3 TMP_6 t4 TMP_51 t5 H3))))))))))))) in (pr3_ind TMP_1 TMP_3 TMP_5 
-TMP_52 t1 t2 H0)))))))))))).
+(CHead c1 k u))).(let H9 \def (eq_ind C c (\lambda (c0: C).(getl i c0 (CHead 
+d (Bind Abbr) u0))) H5 (CHead c1 k u) H8) in (ex3_2_ind C T (\lambda (e2: 
+C).(\lambda (u2: T).(getl i (CHead c2 k u) (CHead e2 (Bind Abbr) u2)))) 
+(\lambda (e2: C).(\lambda (_: T).(wcpr0 d e2))) (\lambda (_: C).(\lambda (u2: 
+T).(pr0 u0 u2))) (pc3 (CHead c2 k u) t6 t) (\lambda (x0: C).(\lambda (x1: 
+T).(\lambda (H10: (getl i (CHead c2 k u) (CHead x0 (Bind Abbr) x1))).(\lambda 
+(_: (wcpr0 d x0)).(\lambda (H12: (pr0 u0 x1)).(ex2_ind T (\lambda (t7: 
+T).(subst0 i x1 t0 t7)) (\lambda (t7: T).(pr0 t t7)) (pc3 (CHead c2 k u) t6 
+t) (\lambda (x: T).(\lambda (H13: (subst0 i x1 t0 x)).(\lambda (H14: (pr0 t 
+x)).(pc3_pr2_u (CHead c2 k u) x t6 (pr2_delta (CHead c2 k u) x0 x1 i H10 t6 
+t0 H6 x H13) t (pc3_pr2_x (CHead c2 k u) x t (pr2_free (CHead c2 k u) t x 
+H14)))))) (pr0_subst0_fwd u0 t0 t i H7 x1 H12))))))) (wcpr0_getl (CHead c1 k 
+u) (CHead c2 k u) (wcpr0_comp c1 c2 H u u (pr0_refl u) k) i d u0 (Bind Abbr) 
+H9)))))))))))))) y t4 t3 H4))) H1) t5 H3))))))) t1 t2 H0)))))))).
 
 theorem pc3_wcpr0_t:
  \forall (c1: C).(\forall (c2: C).((wcpr0 c1 c2) \to (\forall (t1: 
 T).(\forall (t2: T).((pr3 c1 t1 t2) \to (pc3 c2 t1 t2))))))
 \def
- \lambda (c1: C).(\lambda (c2: C).(\lambda (H: (wcpr0 c1 c2)).(let TMP_1 \def 
+ \lambda (c1: C).(\lambda (c2: C).(\lambda (H: (wcpr0 c1 c2)).(wcpr0_ind 
 (\lambda (c: C).(\lambda (c0: C).(\forall (t1: T).(\forall (t2: T).((pr3 c t1 
-t2) \to (pc3 c0 t1 t2)))))) in (let TMP_2 \def (\lambda (c: C).(\lambda (t1: 
-T).(\lambda (t2: T).(\lambda (H0: (pr3 c t1 t2)).(pc3_pr3_r c t1 t2 H0))))) 
-in (let TMP_16 \def (\lambda (c0: C).(\lambda (c3: C).(\lambda (H0: (wcpr0 c0 
-c3)).(\lambda (_: ((\forall (t1: T).(\forall (t2: T).((pr3 c0 t1 t2) \to (pc3 
-c3 t1 t2)))))).(\lambda (u1: T).(\lambda (u2: T).(\lambda (H2: (pr0 u1 
-u2)).(\lambda (k: K).(\lambda (t1: T).(\lambda (t2: T).(\lambda (H3: (pr3 
-(CHead c0 k u1) t1 t2)).(let TMP_3 \def (pr2_free c0 u1 u2 H2) in (let H4 
-\def (pc3_pr2_pr3_t c0 u1 t1 t2 k H3 u2 TMP_3) in (let TMP_5 \def (\lambda 
-(t: T).(let TMP_4 \def (CHead c0 k u2) in (pr3 TMP_4 t1 t))) in (let TMP_7 
-\def (\lambda (t: T).(let TMP_6 \def (CHead c0 k u2) in (pr3 TMP_6 t2 t))) in 
-(let TMP_8 \def (CHead c3 k u2) in (let TMP_9 \def (pc3 TMP_8 t1 t2) in (let 
-TMP_15 \def (\lambda (x: T).(\lambda (H5: (pr3 (CHead c0 k u2) t1 
-x)).(\lambda (H6: (pr3 (CHead c0 k u2) t2 x)).(let TMP_10 \def (CHead c3 k 
-u2) in (let TMP_11 \def (pc3_wcpr0__pc3_wcpr0_t_aux c0 c3 H0 k u2 t1 x H5) in 
-(let TMP_12 \def (CHead c3 k u2) in (let TMP_13 \def 
-(pc3_wcpr0__pc3_wcpr0_t_aux c0 c3 H0 k u2 t2 x H6) in (let TMP_14 \def (pc3_s 
-TMP_12 x t2 TMP_13) in (pc3_t x TMP_10 t1 TMP_11 t2 TMP_14))))))))) in 
-(ex2_ind T TMP_5 TMP_7 TMP_9 TMP_15 H4))))))))))))))))))) in (wcpr0_ind TMP_1 
-TMP_2 TMP_16 c1 c2 H)))))).
+t2) \to (pc3 c0 t1 t2)))))) (\lambda (c: C).(\lambda (t1: T).(\lambda (t2: 
+T).(\lambda (H0: (pr3 c t1 t2)).(pc3_pr3_r c t1 t2 H0))))) (\lambda (c0: 
+C).(\lambda (c3: C).(\lambda (H0: (wcpr0 c0 c3)).(\lambda (_: ((\forall (t1: 
+T).(\forall (t2: T).((pr3 c0 t1 t2) \to (pc3 c3 t1 t2)))))).(\lambda (u1: 
+T).(\lambda (u2: T).(\lambda (H2: (pr0 u1 u2)).(\lambda (k: K).(\lambda (t1: 
+T).(\lambda (t2: T).(\lambda (H3: (pr3 (CHead c0 k u1) t1 t2)).(let H4 \def 
+(pc3_pr2_pr3_t c0 u1 t1 t2 k H3 u2 (pr2_free c0 u1 u2 H2)) in (ex2_ind T 
+(\lambda (t: T).(pr3 (CHead c0 k u2) t1 t)) (\lambda (t: T).(pr3 (CHead c0 k 
+u2) t2 t)) (pc3 (CHead c3 k u2) t1 t2) (\lambda (x: T).(\lambda (H5: (pr3 
+(CHead c0 k u2) t1 x)).(\lambda (H6: (pr3 (CHead c0 k u2) t2 x)).(pc3_t x 
+(CHead c3 k u2) t1 (pc3_wcpr0__pc3_wcpr0_t_aux c0 c3 H0 k u2 t1 x H5) t2 
+(pc3_s (CHead c3 k u2) x t2 (pc3_wcpr0__pc3_wcpr0_t_aux c0 c3 H0 k u2 t2 x 
+H6)))))) H4))))))))))))) c1 c2 H))).
 
 theorem pc3_wcpr0:
  \forall (c1: C).(\forall (c2: C).((wcpr0 c1 c2) \to (\forall (t1: 
 T).(\forall (t2: T).((pc3 c1 t1 t2) \to (pc3 c2 t1 t2))))))
 \def
  \lambda (c1: C).(\lambda (c2: C).(\lambda (H: (wcpr0 c1 c2)).(\lambda (t1: 
-T).(\lambda (t2: T).(\lambda (H0: (pc3 c1 t1 t2)).(let H1 \def H0 in (let 
-TMP_1 \def (\lambda (t: T).(pr3 c1 t1 t)) in (let TMP_2 \def (\lambda (t: 
-T).(pr3 c1 t2 t)) in (let TMP_3 \def (pc3 c2 t1 t2) in (let TMP_7 \def 
-(\lambda (x: T).(\lambda (H2: (pr3 c1 t1 x)).(\lambda (H3: (pr3 c1 t2 
-x)).(let TMP_4 \def (pc3_wcpr0_t c1 c2 H t1 x H2) in (let TMP_5 \def 
-(pc3_wcpr0_t c1 c2 H t2 x H3) in (let TMP_6 \def (pc3_s c2 x t2 TMP_5) in 
-(pc3_t x c2 t1 TMP_4 t2 TMP_6))))))) in (ex2_ind T TMP_1 TMP_2 TMP_3 TMP_7 
-H1))))))))))).
+T).(\lambda (t2: T).(\lambda (H0: (pc3 c1 t1 t2)).(let H1 \def H0 in (ex2_ind 
+T (\lambda (t: T).(pr3 c1 t1 t)) (\lambda (t: T).(pr3 c1 t2 t)) (pc3 c2 t1 
+t2) (\lambda (x: T).(\lambda (H2: (pr3 c1 t1 x)).(\lambda (H3: (pr3 c1 t2 
+x)).(pc3_t x c2 t1 (pc3_wcpr0_t c1 c2 H t1 x H2) t2 (pc3_s c2 x t2 
+(pc3_wcpr0_t c1 c2 H t2 x H3)))))) H1))))))).
 
index a99bdf288154c419401c6c4fb59921443c5c4c98..c3558ca724ea945d476d890407faf9da8fddb4a2 100644 (file)
@@ -22,301 +22,111 @@ theorem pr0_lift:
  \forall (t1: T).(\forall (t2: T).((pr0 t1 t2) \to (\forall (h: nat).(\forall 
 (d: nat).(pr0 (lift h d t1) (lift h d t2))))))
 \def
- \lambda (t1: T).(\lambda (t2: T).(\lambda (H: (pr0 t1 t2)).(let TMP_3 \def 
-(\lambda (t: T).(\lambda (t0: T).(\forall (h: nat).(\forall (d: nat).(let 
-TMP_1 \def (lift h d t) in (let TMP_2 \def (lift h d t0) in (pr0 TMP_1 
-TMP_2))))))) in (let TMP_5 \def (\lambda (t: T).(\lambda (h: nat).(\lambda 
-(d: nat).(let TMP_4 \def (lift h d t) in (pr0_refl TMP_4))))) in (let TMP_39 
-\def (\lambda (u1: T).(\lambda (u2: T).(\lambda (_: (pr0 u1 u2)).(\lambda 
-(H1: ((\forall (h: nat).(\forall (d: nat).(pr0 (lift h d u1) (lift h d 
-u2)))))).(\lambda (t3: T).(\lambda (t4: T).(\lambda (_: (pr0 t3 t4)).(\lambda 
-(H3: ((\forall (h: nat).(\forall (d: nat).(pr0 (lift h d t3) (lift h d 
-t4)))))).(\lambda (k: K).(\lambda (h: nat).(\lambda (d: nat).(let TMP_6 \def 
-(lift h d u1) in (let TMP_7 \def (s k d) in (let TMP_8 \def (lift h TMP_7 t3) 
-in (let TMP_9 \def (THead k TMP_6 TMP_8) in (let TMP_12 \def (\lambda (t: 
-T).(let TMP_10 \def (THead k u2 t4) in (let TMP_11 \def (lift h d TMP_10) in 
-(pr0 t TMP_11)))) in (let TMP_13 \def (lift h d u2) in (let TMP_14 \def (s k 
-d) in (let TMP_15 \def (lift h TMP_14 t4) in (let TMP_16 \def (THead k TMP_13 
-TMP_15) in (let TMP_21 \def (\lambda (t: T).(let TMP_17 \def (lift h d u1) in 
-(let TMP_18 \def (s k d) in (let TMP_19 \def (lift h TMP_18 t3) in (let 
-TMP_20 \def (THead k TMP_17 TMP_19) in (pr0 TMP_20 t)))))) in (let TMP_22 
-\def (lift h d u1) in (let TMP_23 \def (lift h d u2) in (let TMP_24 \def (H1 
-h d) in (let TMP_25 \def (s k d) in (let TMP_26 \def (lift h TMP_25 t3) in 
-(let TMP_27 \def (s k d) in (let TMP_28 \def (lift h TMP_27 t4) in (let 
-TMP_29 \def (s k d) in (let TMP_30 \def (H3 h TMP_29) in (let TMP_31 \def 
-(pr0_comp TMP_22 TMP_23 TMP_24 TMP_26 TMP_28 TMP_30 k) in (let TMP_32 \def 
-(THead k u2 t4) in (let TMP_33 \def (lift h d TMP_32) in (let TMP_34 \def 
-(lift_head k u2 t4 h d) in (let TMP_35 \def (eq_ind_r T TMP_16 TMP_21 TMP_31 
-TMP_33 TMP_34) in (let TMP_36 \def (THead k u1 t3) in (let TMP_37 \def (lift 
-h d TMP_36) in (let TMP_38 \def (lift_head k u1 t3 h d) in (eq_ind_r T TMP_9 
-TMP_12 TMP_35 TMP_37 TMP_38))))))))))))))))))))))))))))))))))))))) in (let 
-TMP_132 \def (\lambda (u: T).(\lambda (v1: T).(\lambda (v2: T).(\lambda (_: 
+ \lambda (t1: T).(\lambda (t2: T).(\lambda (H: (pr0 t1 t2)).(pr0_ind (\lambda 
+(t: T).(\lambda (t0: T).(\forall (h: nat).(\forall (d: nat).(pr0 (lift h d t) 
+(lift h d t0)))))) (\lambda (t: T).(\lambda (h: nat).(\lambda (d: 
+nat).(pr0_refl (lift h d t))))) (\lambda (u1: T).(\lambda (u2: T).(\lambda 
+(_: (pr0 u1 u2)).(\lambda (H1: ((\forall (h: nat).(\forall (d: nat).(pr0 
+(lift h d u1) (lift h d u2)))))).(\lambda (t3: T).(\lambda (t4: T).(\lambda 
+(_: (pr0 t3 t4)).(\lambda (H3: ((\forall (h: nat).(\forall (d: nat).(pr0 
+(lift h d t3) (lift h d t4)))))).(\lambda (k: K).(\lambda (h: nat).(\lambda 
+(d: nat).(eq_ind_r T (THead k (lift h d u1) (lift h (s k d) t3)) (\lambda (t: 
+T).(pr0 t (lift h d (THead k u2 t4)))) (eq_ind_r T (THead k (lift h d u2) 
+(lift h (s k d) t4)) (\lambda (t: T).(pr0 (THead k (lift h d u1) (lift h (s k 
+d) t3)) t)) (pr0_comp (lift h d u1) (lift h d u2) (H1 h d) (lift h (s k d) 
+t3) (lift h (s k d) t4) (H3 h (s k d)) k) (lift h d (THead k u2 t4)) 
+(lift_head k u2 t4 h d)) (lift h d (THead k u1 t3)) (lift_head k u1 t3 h 
+d))))))))))))) (\lambda (u: T).(\lambda (v1: T).(\lambda (v2: T).(\lambda (_: 
 (pr0 v1 v2)).(\lambda (H1: ((\forall (h: nat).(\forall (d: nat).(pr0 (lift h 
 d v1) (lift h d v2)))))).(\lambda (t3: T).(\lambda (t4: T).(\lambda (_: (pr0 
 t3 t4)).(\lambda (H3: ((\forall (h: nat).(\forall (d: nat).(pr0 (lift h d t3) 
-(lift h d t4)))))).(\lambda (h: nat).(\lambda (d: nat).(let TMP_40 \def (Flat 
-Appl) in (let TMP_41 \def (lift h d v1) in (let TMP_42 \def (Flat Appl) in 
-(let TMP_43 \def (s TMP_42 d) in (let TMP_44 \def (Bind Abst) in (let TMP_45 
-\def (THead TMP_44 u t3) in (let TMP_46 \def (lift h TMP_43 TMP_45) in (let 
-TMP_47 \def (THead TMP_40 TMP_41 TMP_46) in (let TMP_51 \def (\lambda (t: 
-T).(let TMP_48 \def (Bind Abbr) in (let TMP_49 \def (THead TMP_48 v2 t4) in 
-(let TMP_50 \def (lift h d TMP_49) in (pr0 t TMP_50))))) in (let TMP_52 \def 
-(Bind Abst) in (let TMP_53 \def (Flat Appl) in (let TMP_54 \def (s TMP_53 d) 
-in (let TMP_55 \def (lift h TMP_54 u) in (let TMP_56 \def (Bind Abst) in (let 
-TMP_57 \def (Flat Appl) in (let TMP_58 \def (s TMP_57 d) in (let TMP_59 \def 
-(s TMP_56 TMP_58) in (let TMP_60 \def (lift h TMP_59 t3) in (let TMP_61 \def 
-(THead TMP_52 TMP_55 TMP_60) in (let TMP_68 \def (\lambda (t: T).(let TMP_62 
-\def (Flat Appl) in (let TMP_63 \def (lift h d v1) in (let TMP_64 \def (THead 
-TMP_62 TMP_63 t) in (let TMP_65 \def (Bind Abbr) in (let TMP_66 \def (THead 
-TMP_65 v2 t4) in (let TMP_67 \def (lift h d TMP_66) in (pr0 TMP_64 
-TMP_67)))))))) in (let TMP_69 \def (Bind Abbr) in (let TMP_70 \def (lift h d 
-v2) in (let TMP_71 \def (Bind Abbr) in (let TMP_72 \def (s TMP_71 d) in (let 
-TMP_73 \def (lift h TMP_72 t4) in (let TMP_74 \def (THead TMP_69 TMP_70 
-TMP_73) in (let TMP_88 \def (\lambda (t: T).(let TMP_75 \def (Flat Appl) in 
-(let TMP_76 \def (lift h d v1) in (let TMP_77 \def (Bind Abst) in (let TMP_78 
-\def (Flat Appl) in (let TMP_79 \def (s TMP_78 d) in (let TMP_80 \def (lift h 
-TMP_79 u) in (let TMP_81 \def (Bind Abst) in (let TMP_82 \def (Flat Appl) in 
-(let TMP_83 \def (s TMP_82 d) in (let TMP_84 \def (s TMP_81 TMP_83) in (let 
-TMP_85 \def (lift h TMP_84 t3) in (let TMP_86 \def (THead TMP_77 TMP_80 
-TMP_85) in (let TMP_87 \def (THead TMP_75 TMP_76 TMP_86) in (pr0 TMP_87 
-t))))))))))))))) in (let TMP_89 \def (Flat Appl) in (let TMP_90 \def (s 
-TMP_89 d) in (let TMP_91 \def (lift h TMP_90 u) in (let TMP_92 \def (lift h d 
-v1) in (let TMP_93 \def (lift h d v2) in (let TMP_94 \def (H1 h d) in (let 
-TMP_95 \def (Bind Abst) in (let TMP_96 \def (Flat Appl) in (let TMP_97 \def 
-(s TMP_96 d) in (let TMP_98 \def (s TMP_95 TMP_97) in (let TMP_99 \def (lift 
-h TMP_98 t3) in (let TMP_100 \def (Bind Abbr) in (let TMP_101 \def (s TMP_100 
-d) in (let TMP_102 \def (lift h TMP_101 t4) in (let TMP_103 \def (Bind Abbr) 
-in (let TMP_104 \def (s TMP_103 d) in (let TMP_105 \def (H3 h TMP_104) in 
-(let TMP_106 \def (pr0_beta TMP_91 TMP_92 TMP_93 TMP_94 TMP_99 TMP_102 
-TMP_105) in (let TMP_107 \def (Bind Abbr) in (let TMP_108 \def (THead TMP_107 
-v2 t4) in (let TMP_109 \def (lift h d TMP_108) in (let TMP_110 \def (Bind 
-Abbr) in (let TMP_111 \def (lift_head TMP_110 v2 t4 h d) in (let TMP_112 \def 
-(eq_ind_r T TMP_74 TMP_88 TMP_106 TMP_109 TMP_111) in (let TMP_113 \def (Flat 
-Appl) in (let TMP_114 \def (s TMP_113 d) in (let TMP_115 \def (Bind Abst) in 
-(let TMP_116 \def (THead TMP_115 u t3) in (let TMP_117 \def (lift h TMP_114 
-TMP_116) in (let TMP_118 \def (Bind Abst) in (let TMP_119 \def (Flat Appl) in 
-(let TMP_120 \def (s TMP_119 d) in (let TMP_121 \def (lift_head TMP_118 u t3 
-h TMP_120) in (let TMP_122 \def (eq_ind_r T TMP_61 TMP_68 TMP_112 TMP_117 
-TMP_121) in (let TMP_123 \def (Flat Appl) in (let TMP_124 \def (Bind Abst) in 
-(let TMP_125 \def (THead TMP_124 u t3) in (let TMP_126 \def (THead TMP_123 v1 
-TMP_125) in (let TMP_127 \def (lift h d TMP_126) in (let TMP_128 \def (Flat 
-Appl) in (let TMP_129 \def (Bind Abst) in (let TMP_130 \def (THead TMP_129 u 
-t3) in (let TMP_131 \def (lift_head TMP_128 v1 TMP_130 h d) in (eq_ind_r T 
-TMP_47 TMP_51 TMP_122 TMP_127 
-TMP_131)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
-))))))))))) in (let TMP_339 \def (\lambda (b: B).(\lambda (H0: (not (eq B b 
-Abst))).(\lambda (v1: T).(\lambda (v2: T).(\lambda (_: (pr0 v1 v2)).(\lambda 
-(H2: ((\forall (h: nat).(\forall (d: nat).(pr0 (lift h d v1) (lift h d 
-v2)))))).(\lambda (u1: T).(\lambda (u2: T).(\lambda (_: (pr0 u1 u2)).(\lambda 
-(H4: ((\forall (h: nat).(\forall (d: nat).(pr0 (lift h d u1) (lift h d 
-u2)))))).(\lambda (t3: T).(\lambda (t4: T).(\lambda (_: (pr0 t3 t4)).(\lambda 
-(H6: ((\forall (h: nat).(\forall (d: nat).(pr0 (lift h d t3) (lift h d 
-t4)))))).(\lambda (h: nat).(\lambda (d: nat).(let TMP_133 \def (Flat Appl) in 
-(let TMP_134 \def (lift h d v1) in (let TMP_135 \def (Flat Appl) in (let 
-TMP_136 \def (s TMP_135 d) in (let TMP_137 \def (Bind b) in (let TMP_138 \def 
-(THead TMP_137 u1 t3) in (let TMP_139 \def (lift h TMP_136 TMP_138) in (let 
-TMP_140 \def (THead TMP_133 TMP_134 TMP_139) in (let TMP_148 \def (\lambda 
-(t: T).(let TMP_141 \def (Bind b) in (let TMP_142 \def (Flat Appl) in (let 
-TMP_143 \def (S O) in (let TMP_144 \def (lift TMP_143 O v2) in (let TMP_145 
-\def (THead TMP_142 TMP_144 t4) in (let TMP_146 \def (THead TMP_141 u2 
-TMP_145) in (let TMP_147 \def (lift h d TMP_146) in (pr0 t TMP_147))))))))) 
-in (let TMP_149 \def (Bind b) in (let TMP_150 \def (Flat Appl) in (let 
-TMP_151 \def (s TMP_150 d) in (let TMP_152 \def (lift h TMP_151 u1) in (let 
-TMP_153 \def (Bind b) in (let TMP_154 \def (Flat Appl) in (let TMP_155 \def 
-(s TMP_154 d) in (let TMP_156 \def (s TMP_153 TMP_155) in (let TMP_157 \def 
-(lift h TMP_156 t3) in (let TMP_158 \def (THead TMP_149 TMP_152 TMP_157) in 
-(let TMP_169 \def (\lambda (t: T).(let TMP_159 \def (Flat Appl) in (let 
-TMP_160 \def (lift h d v1) in (let TMP_161 \def (THead TMP_159 TMP_160 t) in 
-(let TMP_162 \def (Bind b) in (let TMP_163 \def (Flat Appl) in (let TMP_164 
-\def (S O) in (let TMP_165 \def (lift TMP_164 O v2) in (let TMP_166 \def 
-(THead TMP_163 TMP_165 t4) in (let TMP_167 \def (THead TMP_162 u2 TMP_166) in 
-(let TMP_168 \def (lift h d TMP_167) in (pr0 TMP_161 TMP_168)))))))))))) in 
-(let TMP_170 \def (Bind b) in (let TMP_171 \def (lift h d u2) in (let TMP_172 
-\def (Bind b) in (let TMP_173 \def (s TMP_172 d) in (let TMP_174 \def (Flat 
-Appl) in (let TMP_175 \def (S O) in (let TMP_176 \def (lift TMP_175 O v2) in 
-(let TMP_177 \def (THead TMP_174 TMP_176 t4) in (let TMP_178 \def (lift h 
-TMP_173 TMP_177) in (let TMP_179 \def (THead TMP_170 TMP_171 TMP_178) in (let 
-TMP_193 \def (\lambda (t: T).(let TMP_180 \def (Flat Appl) in (let TMP_181 
-\def (lift h d v1) in (let TMP_182 \def (Bind b) in (let TMP_183 \def (Flat 
-Appl) in (let TMP_184 \def (s TMP_183 d) in (let TMP_185 \def (lift h TMP_184 
-u1) in (let TMP_186 \def (Bind b) in (let TMP_187 \def (Flat Appl) in (let 
-TMP_188 \def (s TMP_187 d) in (let TMP_189 \def (s TMP_186 TMP_188) in (let 
-TMP_190 \def (lift h TMP_189 t3) in (let TMP_191 \def (THead TMP_182 TMP_185 
-TMP_190) in (let TMP_192 \def (THead TMP_180 TMP_181 TMP_191) in (pr0 TMP_192 
-t))))))))))))))) in (let TMP_194 \def (Flat Appl) in (let TMP_195 \def (Bind 
-b) in (let TMP_196 \def (s TMP_195 d) in (let TMP_197 \def (S O) in (let 
-TMP_198 \def (lift TMP_197 O v2) in (let TMP_199 \def (lift h TMP_196 
-TMP_198) in (let TMP_200 \def (Flat Appl) in (let TMP_201 \def (Bind b) in 
-(let TMP_202 \def (s TMP_201 d) in (let TMP_203 \def (s TMP_200 TMP_202) in 
-(let TMP_204 \def (lift h TMP_203 t4) in (let TMP_205 \def (THead TMP_194 
-TMP_199 TMP_204) in (let TMP_222 \def (\lambda (t: T).(let TMP_206 \def (Flat 
-Appl) in (let TMP_207 \def (lift h d v1) in (let TMP_208 \def (Bind b) in 
-(let TMP_209 \def (Flat Appl) in (let TMP_210 \def (s TMP_209 d) in (let 
-TMP_211 \def (lift h TMP_210 u1) in (let TMP_212 \def (Bind b) in (let 
-TMP_213 \def (Flat Appl) in (let TMP_214 \def (s TMP_213 d) in (let TMP_215 
-\def (s TMP_212 TMP_214) in (let TMP_216 \def (lift h TMP_215 t3) in (let 
-TMP_217 \def (THead TMP_208 TMP_211 TMP_216) in (let TMP_218 \def (THead 
-TMP_206 TMP_207 TMP_217) in (let TMP_219 \def (Bind b) in (let TMP_220 \def 
-(lift h d u2) in (let TMP_221 \def (THead TMP_219 TMP_220 t) in (pr0 TMP_218 
-TMP_221)))))))))))))))))) in (let TMP_223 \def (S O) in (let TMP_224 \def 
-(plus TMP_223 d) in (let TMP_241 \def (\lambda (n: nat).(let TMP_225 \def 
-(Flat Appl) in (let TMP_226 \def (lift h d v1) in (let TMP_227 \def (Bind b) 
-in (let TMP_228 \def (lift h d u1) in (let TMP_229 \def (lift h n t3) in (let 
-TMP_230 \def (THead TMP_227 TMP_228 TMP_229) in (let TMP_231 \def (THead 
-TMP_225 TMP_226 TMP_230) in (let TMP_232 \def (Bind b) in (let TMP_233 \def 
-(lift h d u2) in (let TMP_234 \def (Flat Appl) in (let TMP_235 \def (S O) in 
-(let TMP_236 \def (lift TMP_235 O v2) in (let TMP_237 \def (lift h n TMP_236) 
-in (let TMP_238 \def (lift h n t4) in (let TMP_239 \def (THead TMP_234 
-TMP_237 TMP_238) in (let TMP_240 \def (THead TMP_232 TMP_233 TMP_239) in (pr0 
-TMP_231 TMP_240)))))))))))))))))) in (let TMP_242 \def (S O) in (let TMP_243 
-\def (lift h d v2) in (let TMP_244 \def (lift TMP_242 O TMP_243) in (let 
-TMP_262 \def (\lambda (t: T).(let TMP_245 \def (Flat Appl) in (let TMP_246 
-\def (lift h d v1) in (let TMP_247 \def (Bind b) in (let TMP_248 \def (lift h 
-d u1) in (let TMP_249 \def (S O) in (let TMP_250 \def (plus TMP_249 d) in 
-(let TMP_251 \def (lift h TMP_250 t3) in (let TMP_252 \def (THead TMP_247 
-TMP_248 TMP_251) in (let TMP_253 \def (THead TMP_245 TMP_246 TMP_252) in (let 
-TMP_254 \def (Bind b) in (let TMP_255 \def (lift h d u2) in (let TMP_256 \def 
-(Flat Appl) in (let TMP_257 \def (S O) in (let TMP_258 \def (plus TMP_257 d) 
-in (let TMP_259 \def (lift h TMP_258 t4) in (let TMP_260 \def (THead TMP_256 
-t TMP_259) in (let TMP_261 \def (THead TMP_254 TMP_255 TMP_260) in (pr0 
-TMP_253 TMP_261))))))))))))))))))) in (let TMP_263 \def (lift h d v1) in (let 
-TMP_264 \def (lift h d v2) in (let TMP_265 \def (H2 h d) in (let TMP_266 \def 
-(lift h d u1) in (let TMP_267 \def (lift h d u2) in (let TMP_268 \def (H4 h 
-d) in (let TMP_269 \def (S O) in (let TMP_270 \def (plus TMP_269 d) in (let 
-TMP_271 \def (lift h TMP_270 t3) in (let TMP_272 \def (S O) in (let TMP_273 
-\def (plus TMP_272 d) in (let TMP_274 \def (lift h TMP_273 t4) in (let 
-TMP_275 \def (S O) in (let TMP_276 \def (plus TMP_275 d) in (let TMP_277 \def 
-(H6 h TMP_276) in (let TMP_278 \def (pr0_upsilon b H0 TMP_263 TMP_264 TMP_265 
-TMP_266 TMP_267 TMP_268 TMP_271 TMP_274 TMP_277) in (let TMP_279 \def (S O) 
-in (let TMP_280 \def (plus TMP_279 d) in (let TMP_281 \def (S O) in (let 
-TMP_282 \def (lift TMP_281 O v2) in (let TMP_283 \def (lift h TMP_280 
-TMP_282) in (let TMP_284 \def (S O) in (let TMP_285 \def (le_O_n d) in (let 
-TMP_286 \def (lift_d v2 h TMP_284 d O TMP_285) in (let TMP_287 \def (eq_ind_r 
-T TMP_244 TMP_262 TMP_278 TMP_283 TMP_286) in (let TMP_288 \def (S d) in (let 
-TMP_289 \def (S d) in (let TMP_290 \def (refl_equal nat TMP_289) in (let 
-TMP_291 \def (eq_ind nat TMP_224 TMP_241 TMP_287 TMP_288 TMP_290) in (let 
-TMP_292 \def (Bind b) in (let TMP_293 \def (s TMP_292 d) in (let TMP_294 \def 
-(Flat Appl) in (let TMP_295 \def (S O) in (let TMP_296 \def (lift TMP_295 O 
-v2) in (let TMP_297 \def (THead TMP_294 TMP_296 t4) in (let TMP_298 \def 
-(lift h TMP_293 TMP_297) in (let TMP_299 \def (Flat Appl) in (let TMP_300 
-\def (S O) in (let TMP_301 \def (lift TMP_300 O v2) in (let TMP_302 \def 
-(Bind b) in (let TMP_303 \def (s TMP_302 d) in (let TMP_304 \def (lift_head 
-TMP_299 TMP_301 t4 h TMP_303) in (let TMP_305 \def (eq_ind_r T TMP_205 
-TMP_222 TMP_291 TMP_298 TMP_304) in (let TMP_306 \def (Bind b) in (let 
-TMP_307 \def (Flat Appl) in (let TMP_308 \def (S O) in (let TMP_309 \def 
-(lift TMP_308 O v2) in (let TMP_310 \def (THead TMP_307 TMP_309 t4) in (let 
-TMP_311 \def (THead TMP_306 u2 TMP_310) in (let TMP_312 \def (lift h d 
-TMP_311) in (let TMP_313 \def (Bind b) in (let TMP_314 \def (Flat Appl) in 
-(let TMP_315 \def (S O) in (let TMP_316 \def (lift TMP_315 O v2) in (let 
-TMP_317 \def (THead TMP_314 TMP_316 t4) in (let TMP_318 \def (lift_head 
-TMP_313 u2 TMP_317 h d) in (let TMP_319 \def (eq_ind_r T TMP_179 TMP_193 
-TMP_305 TMP_312 TMP_318) in (let TMP_320 \def (Flat Appl) in (let TMP_321 
-\def (s TMP_320 d) in (let TMP_322 \def (Bind b) in (let TMP_323 \def (THead 
-TMP_322 u1 t3) in (let TMP_324 \def (lift h TMP_321 TMP_323) in (let TMP_325 
-\def (Bind b) in (let TMP_326 \def (Flat Appl) in (let TMP_327 \def (s 
-TMP_326 d) in (let TMP_328 \def (lift_head TMP_325 u1 t3 h TMP_327) in (let 
-TMP_329 \def (eq_ind_r T TMP_158 TMP_169 TMP_319 TMP_324 TMP_328) in (let 
-TMP_330 \def (Flat Appl) in (let TMP_331 \def (Bind b) in (let TMP_332 \def 
-(THead TMP_331 u1 t3) in (let TMP_333 \def (THead TMP_330 v1 TMP_332) in (let 
-TMP_334 \def (lift h d TMP_333) in (let TMP_335 \def (Flat Appl) in (let 
-TMP_336 \def (Bind b) in (let TMP_337 \def (THead TMP_336 u1 t3) in (let 
-TMP_338 \def (lift_head TMP_335 v1 TMP_337 h d) in (eq_ind_r T TMP_140 
-TMP_148 TMP_329 TMP_334 
-TMP_338)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
-))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) in 
-(let TMP_405 \def (\lambda (u1: T).(\lambda (u2: T).(\lambda (_: (pr0 u1 
+(lift h d t4)))))).(\lambda (h: nat).(\lambda (d: nat).(eq_ind_r T (THead 
+(Flat Appl) (lift h d v1) (lift h (s (Flat Appl) d) (THead (Bind Abst) u 
+t3))) (\lambda (t: T).(pr0 t (lift h d (THead (Bind Abbr) v2 t4)))) (eq_ind_r 
+T (THead (Bind Abst) (lift h (s (Flat Appl) d) u) (lift h (s (Bind Abst) (s 
+(Flat Appl) d)) t3)) (\lambda (t: T).(pr0 (THead (Flat Appl) (lift h d v1) t) 
+(lift h d (THead (Bind Abbr) v2 t4)))) (eq_ind_r T (THead (Bind Abbr) (lift h 
+d v2) (lift h (s (Bind Abbr) d) t4)) (\lambda (t: T).(pr0 (THead (Flat Appl) 
+(lift h d v1) (THead (Bind Abst) (lift h (s (Flat Appl) d) u) (lift h (s 
+(Bind Abst) (s (Flat Appl) d)) t3))) t)) (pr0_beta (lift h (s (Flat Appl) d) 
+u) (lift h d v1) (lift h d v2) (H1 h d) (lift h (s (Bind Abst) (s (Flat Appl) 
+d)) t3) (lift h (s (Bind Abbr) d) t4) (H3 h (s (Bind Abbr) d))) (lift h d 
+(THead (Bind Abbr) v2 t4)) (lift_head (Bind Abbr) v2 t4 h d)) (lift h (s 
+(Flat Appl) d) (THead (Bind Abst) u t3)) (lift_head (Bind Abst) u t3 h (s 
+(Flat Appl) d))) (lift h d (THead (Flat Appl) v1 (THead (Bind Abst) u t3))) 
+(lift_head (Flat Appl) v1 (THead (Bind Abst) u t3) h d))))))))))))) (\lambda 
+(b: B).(\lambda (H0: (not (eq B b Abst))).(\lambda (v1: T).(\lambda (v2: 
+T).(\lambda (_: (pr0 v1 v2)).(\lambda (H2: ((\forall (h: nat).(\forall (d: 
+nat).(pr0 (lift h d v1) (lift h d v2)))))).(\lambda (u1: T).(\lambda (u2: 
+T).(\lambda (_: (pr0 u1 u2)).(\lambda (H4: ((\forall (h: nat).(\forall (d: 
+nat).(pr0 (lift h d u1) (lift h d u2)))))).(\lambda (t3: T).(\lambda (t4: 
+T).(\lambda (_: (pr0 t3 t4)).(\lambda (H6: ((\forall (h: nat).(\forall (d: 
+nat).(pr0 (lift h d t3) (lift h d t4)))))).(\lambda (h: nat).(\lambda (d: 
+nat).(eq_ind_r T (THead (Flat Appl) (lift h d v1) (lift h (s (Flat Appl) d) 
+(THead (Bind b) u1 t3))) (\lambda (t: T).(pr0 t (lift h d (THead (Bind b) u2 
+(THead (Flat Appl) (lift (S O) O v2) t4))))) (eq_ind_r T (THead (Bind b) 
+(lift h (s (Flat Appl) d) u1) (lift h (s (Bind b) (s (Flat Appl) d)) t3)) 
+(\lambda (t: T).(pr0 (THead (Flat Appl) (lift h d v1) t) (lift h d (THead 
+(Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4))))) (eq_ind_r T (THead 
+(Bind b) (lift h d u2) (lift h (s (Bind b) d) (THead (Flat Appl) (lift (S O) 
+O v2) t4))) (\lambda (t: T).(pr0 (THead (Flat Appl) (lift h d v1) (THead 
+(Bind b) (lift h (s (Flat Appl) d) u1) (lift h (s (Bind b) (s (Flat Appl) d)) 
+t3))) t)) (eq_ind_r T (THead (Flat Appl) (lift h (s (Bind b) d) (lift (S O) O 
+v2)) (lift h (s (Flat Appl) (s (Bind b) d)) t4)) (\lambda (t: T).(pr0 (THead 
+(Flat Appl) (lift h d v1) (THead (Bind b) (lift h (s (Flat Appl) d) u1) (lift 
+h (s (Bind b) (s (Flat Appl) d)) t3))) (THead (Bind b) (lift h d u2) t))) 
+(eq_ind nat (plus (S O) d) (\lambda (n: nat).(pr0 (THead (Flat Appl) (lift h 
+d v1) (THead (Bind b) (lift h d u1) (lift h n t3))) (THead (Bind b) (lift h d 
+u2) (THead (Flat Appl) (lift h n (lift (S O) O v2)) (lift h n t4))))) 
+(eq_ind_r T (lift (S O) O (lift h d v2)) (\lambda (t: T).(pr0 (THead (Flat 
+Appl) (lift h d v1) (THead (Bind b) (lift h d u1) (lift h (plus (S O) d) 
+t3))) (THead (Bind b) (lift h d u2) (THead (Flat Appl) t (lift h (plus (S O) 
+d) t4))))) (pr0_upsilon b H0 (lift h d v1) (lift h d v2) (H2 h d) (lift h d 
+u1) (lift h d u2) (H4 h d) (lift h (plus (S O) d) t3) (lift h (plus (S O) d) 
+t4) (H6 h (plus (S O) d))) (lift h (plus (S O) d) (lift (S O) O v2)) (lift_d 
+v2 h (S O) d O (le_O_n d))) (S d) (refl_equal nat (S d))) (lift h (s (Bind b) 
+d) (THead (Flat Appl) (lift (S O) O v2) t4)) (lift_head (Flat Appl) (lift (S 
+O) O v2) t4 h (s (Bind b) d))) (lift h d (THead (Bind b) u2 (THead (Flat 
+Appl) (lift (S O) O v2) t4))) (lift_head (Bind b) u2 (THead (Flat Appl) (lift 
+(S O) O v2) t4) h d)) (lift h (s (Flat Appl) d) (THead (Bind b) u1 t3)) 
+(lift_head (Bind b) u1 t3 h (s (Flat Appl) d))) (lift h d (THead (Flat Appl) 
+v1 (THead (Bind b) u1 t3))) (lift_head (Flat Appl) v1 (THead (Bind b) u1 t3) 
+h d)))))))))))))))))) (\lambda (u1: T).(\lambda (u2: T).(\lambda (_: (pr0 u1 
 u2)).(\lambda (H1: ((\forall (h: nat).(\forall (d: nat).(pr0 (lift h d u1) 
 (lift h d u2)))))).(\lambda (t3: T).(\lambda (t4: T).(\lambda (_: (pr0 t3 
 t4)).(\lambda (H3: ((\forall (h: nat).(\forall (d: nat).(pr0 (lift h d t3) 
 (lift h d t4)))))).(\lambda (w: T).(\lambda (H4: (subst0 O u2 t4 w)).(\lambda 
-(h: nat).(\lambda (d: nat).(let TMP_340 \def (Bind Abbr) in (let TMP_341 \def 
-(lift h d u1) in (let TMP_342 \def (Bind Abbr) in (let TMP_343 \def (s 
-TMP_342 d) in (let TMP_344 \def (lift h TMP_343 t3) in (let TMP_345 \def 
-(THead TMP_340 TMP_341 TMP_344) in (let TMP_349 \def (\lambda (t: T).(let 
-TMP_346 \def (Bind Abbr) in (let TMP_347 \def (THead TMP_346 u2 w) in (let 
-TMP_348 \def (lift h d TMP_347) in (pr0 t TMP_348))))) in (let TMP_350 \def 
-(Bind Abbr) in (let TMP_351 \def (lift h d u2) in (let TMP_352 \def (Bind 
-Abbr) in (let TMP_353 \def (s TMP_352 d) in (let TMP_354 \def (lift h TMP_353 
-w) in (let TMP_355 \def (THead TMP_350 TMP_351 TMP_354) in (let TMP_362 \def 
-(\lambda (t: T).(let TMP_356 \def (Bind Abbr) in (let TMP_357 \def (lift h d 
-u1) in (let TMP_358 \def (Bind Abbr) in (let TMP_359 \def (s TMP_358 d) in 
-(let TMP_360 \def (lift h TMP_359 t3) in (let TMP_361 \def (THead TMP_356 
-TMP_357 TMP_360) in (pr0 TMP_361 t)))))))) in (let TMP_363 \def (lift h d u1) 
-in (let TMP_364 \def (lift h d u2) in (let TMP_365 \def (H1 h d) in (let 
-TMP_366 \def (S d) in (let TMP_367 \def (lift h TMP_366 t3) in (let TMP_368 
-\def (S d) in (let TMP_369 \def (lift h TMP_368 t4) in (let TMP_370 \def (S 
-d) in (let TMP_371 \def (H3 h TMP_370) in (let TMP_372 \def (S d) in (let 
-TMP_373 \def (lift h TMP_372 w) in (let d' \def (S d) in (let TMP_374 \def (S 
-d) in (let TMP_375 \def (S O) in (let TMP_376 \def (minus TMP_374 TMP_375) in 
-(let TMP_380 \def (\lambda (n: nat).(let TMP_377 \def (lift h n u2) in (let 
-TMP_378 \def (lift h d' t4) in (let TMP_379 \def (lift h d' w) in (subst0 O 
-TMP_377 TMP_378 TMP_379))))) in (let TMP_381 \def (S d) in (let TMP_382 \def 
-(le_O_n d) in (let TMP_383 \def (le_n_S O d TMP_382) in (let TMP_384 \def 
-(subst0_lift_lt t4 w u2 O H4 TMP_381 TMP_383 h) in (let TMP_385 \def (\lambda 
-(n: nat).(eq nat n d)) in (let TMP_386 \def (le_n d) in (let TMP_387 \def 
-(le_n d) in (let TMP_388 \def (le_antisym d d TMP_386 TMP_387) in (let 
-TMP_389 \def (minus d O) in (let TMP_390 \def (minus_n_O d) in (let TMP_391 
-\def (eq_ind nat d TMP_385 TMP_388 TMP_389 TMP_390) in (let TMP_392 \def 
-(eq_ind nat TMP_376 TMP_380 TMP_384 d TMP_391) in (let TMP_393 \def 
-(pr0_delta TMP_363 TMP_364 TMP_365 TMP_367 TMP_369 TMP_371 TMP_373 TMP_392) 
-in (let TMP_394 \def (Bind Abbr) in (let TMP_395 \def (THead TMP_394 u2 w) in 
-(let TMP_396 \def (lift h d TMP_395) in (let TMP_397 \def (Bind Abbr) in (let 
-TMP_398 \def (lift_head TMP_397 u2 w h d) in (let TMP_399 \def (eq_ind_r T 
-TMP_355 TMP_362 TMP_393 TMP_396 TMP_398) in (let TMP_400 \def (Bind Abbr) in 
-(let TMP_401 \def (THead TMP_400 u1 t3) in (let TMP_402 \def (lift h d 
-TMP_401) in (let TMP_403 \def (Bind Abbr) in (let TMP_404 \def (lift_head 
-TMP_403 u1 t3 h d) in (eq_ind_r T TMP_345 TMP_349 TMP_399 TMP_402 
-TMP_404))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) in 
-(let TMP_461 \def (\lambda (b: B).(\lambda (H0: (not (eq B b Abst))).(\lambda 
-(t3: T).(\lambda (t4: T).(\lambda (_: (pr0 t3 t4)).(\lambda (H2: ((\forall 
-(h: nat).(\forall (d: nat).(pr0 (lift h d t3) (lift h d t4)))))).(\lambda (u: 
-T).(\lambda (h: nat).(\lambda (d: nat).(let TMP_406 \def (Bind b) in (let 
-TMP_407 \def (lift h d u) in (let TMP_408 \def (Bind b) in (let TMP_409 \def 
-(s TMP_408 d) in (let TMP_410 \def (S O) in (let TMP_411 \def (lift TMP_410 O 
-t3) in (let TMP_412 \def (lift h TMP_409 TMP_411) in (let TMP_413 \def (THead 
-TMP_406 TMP_407 TMP_412) in (let TMP_415 \def (\lambda (t: T).(let TMP_414 
-\def (lift h d t4) in (pr0 t TMP_414))) in (let TMP_416 \def (S O) in (let 
-TMP_417 \def (plus TMP_416 d) in (let TMP_425 \def (\lambda (n: nat).(let 
-TMP_418 \def (Bind b) in (let TMP_419 \def (lift h d u) in (let TMP_420 \def 
-(S O) in (let TMP_421 \def (lift TMP_420 O t3) in (let TMP_422 \def (lift h n 
-TMP_421) in (let TMP_423 \def (THead TMP_418 TMP_419 TMP_422) in (let TMP_424 
-\def (lift h d t4) in (pr0 TMP_423 TMP_424))))))))) in (let TMP_426 \def (S 
-O) in (let TMP_427 \def (lift h d t3) in (let TMP_428 \def (lift TMP_426 O 
-TMP_427) in (let TMP_433 \def (\lambda (t: T).(let TMP_429 \def (Bind b) in 
-(let TMP_430 \def (lift h d u) in (let TMP_431 \def (THead TMP_429 TMP_430 t) 
-in (let TMP_432 \def (lift h d t4) in (pr0 TMP_431 TMP_432)))))) in (let 
-TMP_434 \def (lift h d t3) in (let TMP_435 \def (lift h d t4) in (let TMP_436 
-\def (H2 h d) in (let TMP_437 \def (lift h d u) in (let TMP_438 \def 
-(pr0_zeta b H0 TMP_434 TMP_435 TMP_436 TMP_437) in (let TMP_439 \def (S O) in 
-(let TMP_440 \def (plus TMP_439 d) in (let TMP_441 \def (S O) in (let TMP_442 
-\def (lift TMP_441 O t3) in (let TMP_443 \def (lift h TMP_440 TMP_442) in 
-(let TMP_444 \def (S O) in (let TMP_445 \def (le_O_n d) in (let TMP_446 \def 
-(lift_d t3 h TMP_444 d O TMP_445) in (let TMP_447 \def (eq_ind_r T TMP_428 
-TMP_433 TMP_438 TMP_443 TMP_446) in (let TMP_448 \def (S d) in (let TMP_449 
-\def (S d) in (let TMP_450 \def (refl_equal nat TMP_449) in (let TMP_451 \def 
-(eq_ind nat TMP_417 TMP_425 TMP_447 TMP_448 TMP_450) in (let TMP_452 \def 
-(Bind b) in (let TMP_453 \def (S O) in (let TMP_454 \def (lift TMP_453 O t3) 
-in (let TMP_455 \def (THead TMP_452 u TMP_454) in (let TMP_456 \def (lift h d 
-TMP_455) in (let TMP_457 \def (Bind b) in (let TMP_458 \def (S O) in (let 
-TMP_459 \def (lift TMP_458 O t3) in (let TMP_460 \def (lift_head TMP_457 u 
-TMP_459 h d) in (eq_ind_r T TMP_413 TMP_415 TMP_451 TMP_456 
-TMP_460))))))))))))))))))))))))))))))))))))))))))))))))))))) in (let TMP_482 
-\def (\lambda (t3: T).(\lambda (t4: T).(\lambda (_: (pr0 t3 t4)).(\lambda 
-(H1: ((\forall (h: nat).(\forall (d: nat).(pr0 (lift h d t3) (lift h d 
-t4)))))).(\lambda (u: T).(\lambda (h: nat).(\lambda (d: nat).(let TMP_462 
-\def (Flat Cast) in (let TMP_463 \def (lift h d u) in (let TMP_464 \def (Flat 
-Cast) in (let TMP_465 \def (s TMP_464 d) in (let TMP_466 \def (lift h TMP_465 
-t3) in (let TMP_467 \def (THead TMP_462 TMP_463 TMP_466) in (let TMP_469 \def 
-(\lambda (t: T).(let TMP_468 \def (lift h d t4) in (pr0 t TMP_468))) in (let 
-TMP_470 \def (Flat Cast) in (let TMP_471 \def (s TMP_470 d) in (let TMP_472 
-\def (lift h TMP_471 t3) in (let TMP_473 \def (lift h d t4) in (let TMP_474 
-\def (H1 h d) in (let TMP_475 \def (lift h d u) in (let TMP_476 \def (pr0_tau 
-TMP_472 TMP_473 TMP_474 TMP_475) in (let TMP_477 \def (Flat Cast) in (let 
-TMP_478 \def (THead TMP_477 u t3) in (let TMP_479 \def (lift h d TMP_478) in 
-(let TMP_480 \def (Flat Cast) in (let TMP_481 \def (lift_head TMP_480 u t3 h 
-d) in (eq_ind_r T TMP_467 TMP_469 TMP_476 TMP_479 
-TMP_481))))))))))))))))))))))))))) in (pr0_ind TMP_3 TMP_5 TMP_39 TMP_132 
-TMP_339 TMP_405 TMP_461 TMP_482 t1 t2 H))))))))))).
+(h: nat).(\lambda (d: nat).(eq_ind_r T (THead (Bind Abbr) (lift h d u1) (lift 
+h (s (Bind Abbr) d) t3)) (\lambda (t: T).(pr0 t (lift h d (THead (Bind Abbr) 
+u2 w)))) (eq_ind_r T (THead (Bind Abbr) (lift h d u2) (lift h (s (Bind Abbr) 
+d) w)) (\lambda (t: T).(pr0 (THead (Bind Abbr) (lift h d u1) (lift h (s (Bind 
+Abbr) d) t3)) t)) (pr0_delta (lift h d u1) (lift h d u2) (H1 h d) (lift h (S 
+d) t3) (lift h (S d) t4) (H3 h (S d)) (lift h (S d) w) (let d' \def (S d) in 
+(eq_ind nat (minus (S d) (S O)) (\lambda (n: nat).(subst0 O (lift h n u2) 
+(lift h d' t4) (lift h d' w))) (subst0_lift_lt t4 w u2 O H4 (S d) (le_n_S O d 
+(le_O_n d)) h) d (eq_ind nat d (\lambda (n: nat).(eq nat n d)) (le_antisym d 
+d (le_n d) (le_n d)) (minus d O) (minus_n_O d))))) (lift h d (THead (Bind 
+Abbr) u2 w)) (lift_head (Bind Abbr) u2 w h d)) (lift h d (THead (Bind Abbr) 
+u1 t3)) (lift_head (Bind Abbr) u1 t3 h d)))))))))))))) (\lambda (b: 
+B).(\lambda (H0: (not (eq B b Abst))).(\lambda (t3: T).(\lambda (t4: 
+T).(\lambda (_: (pr0 t3 t4)).(\lambda (H2: ((\forall (h: nat).(\forall (d: 
+nat).(pr0 (lift h d t3) (lift h d t4)))))).(\lambda (u: T).(\lambda (h: 
+nat).(\lambda (d: nat).(eq_ind_r T (THead (Bind b) (lift h d u) (lift h (s 
+(Bind b) d) (lift (S O) O t3))) (\lambda (t: T).(pr0 t (lift h d t4))) 
+(eq_ind nat (plus (S O) d) (\lambda (n: nat).(pr0 (THead (Bind b) (lift h d 
+u) (lift h n (lift (S O) O t3))) (lift h d t4))) (eq_ind_r T (lift (S O) O 
+(lift h d t3)) (\lambda (t: T).(pr0 (THead (Bind b) (lift h d u) t) (lift h d 
+t4))) (pr0_zeta b H0 (lift h d t3) (lift h d t4) (H2 h d) (lift h d u)) (lift 
+h (plus (S O) d) (lift (S O) O t3)) (lift_d t3 h (S O) d O (le_O_n d))) (S d) 
+(refl_equal nat (S d))) (lift h d (THead (Bind b) u (lift (S O) O t3))) 
+(lift_head (Bind b) u (lift (S O) O t3) h d))))))))))) (\lambda (t3: 
+T).(\lambda (t4: T).(\lambda (_: (pr0 t3 t4)).(\lambda (H1: ((\forall (h: 
+nat).(\forall (d: nat).(pr0 (lift h d t3) (lift h d t4)))))).(\lambda (u: 
+T).(\lambda (h: nat).(\lambda (d: nat).(eq_ind_r T (THead (Flat Cast) (lift h 
+d u) (lift h (s (Flat Cast) d) t3)) (\lambda (t: T).(pr0 t (lift h d t4))) 
+(pr0_tau (lift h (s (Flat Cast) d) t3) (lift h d t4) (H1 h d) (lift h d u)) 
+(lift h d (THead (Flat Cast) u t3)) (lift_head (Flat Cast) u t3 h d))))))))) 
+t1 t2 H))).
 
 theorem pr0_gen_abbr:
  \forall (u1: T).(\forall (t1: T).(\forall (x: T).((pr0 (THead (Bind Abbr) u1 
@@ -326,191 +136,107 @@ t1) x) \to (or (ex3_2 T T (\lambda (u2: T).(\lambda (t2: T).(eq T x (THead
 (\lambda (y: T).(subst0 O u2 y t2))))))) (pr0 t1 (lift (S O) O x))))))
 \def
  \lambda (u1: T).(\lambda (t1: T).(\lambda (x: T).(\lambda (H: (pr0 (THead 
-(Bind Abbr) u1 t1) x)).(let TMP_1 \def (Bind Abbr) in (let TMP_2 \def (THead 
-TMP_1 u1 t1) in (let TMP_3 \def (\lambda (t: T).(pr0 t x)) in (let TMP_17 
-\def (\lambda (_: T).(let TMP_6 \def (\lambda (u2: T).(\lambda (t2: T).(let 
-TMP_4 \def (Bind Abbr) in (let TMP_5 \def (THead TMP_4 u2 t2) in (eq T x 
-TMP_5))))) in (let TMP_7 \def (\lambda (u2: T).(\lambda (_: T).(pr0 u1 u2))) 
-in (let TMP_12 \def (\lambda (u2: T).(\lambda (t2: T).(let TMP_8 \def (pr0 t1 
-t2) in (let TMP_9 \def (\lambda (y: T).(pr0 t1 y)) in (let TMP_10 \def 
-(\lambda (y: T).(subst0 O u2 y t2)) in (let TMP_11 \def (ex2 T TMP_9 TMP_10) 
-in (or TMP_8 TMP_11))))))) in (let TMP_13 \def (ex3_2 T T TMP_6 TMP_7 TMP_12) 
-in (let TMP_14 \def (S O) in (let TMP_15 \def (lift TMP_14 O x) in (let 
-TMP_16 \def (pr0 t1 TMP_15) in (or TMP_13 TMP_16))))))))) in (let TMP_448 
-\def (\lambda (y: T).(\lambda (H0: (pr0 y x)).(let TMP_31 \def (\lambda (t: 
-T).(\lambda (t0: T).((eq T t (THead (Bind Abbr) u1 t1)) \to (let TMP_20 \def 
-(\lambda (u2: T).(\lambda (t2: T).(let TMP_18 \def (Bind Abbr) in (let TMP_19 
-\def (THead TMP_18 u2 t2) in (eq T t0 TMP_19))))) in (let TMP_21 \def 
-(\lambda (u2: T).(\lambda (_: T).(pr0 u1 u2))) in (let TMP_26 \def (\lambda 
-(u2: T).(\lambda (t2: T).(let TMP_22 \def (pr0 t1 t2) in (let TMP_23 \def 
-(\lambda (y0: T).(pr0 t1 y0)) in (let TMP_24 \def (\lambda (y0: T).(subst0 O 
-u2 y0 t2)) in (let TMP_25 \def (ex2 T TMP_23 TMP_24) in (or TMP_22 
-TMP_25))))))) in (let TMP_27 \def (ex3_2 T T TMP_20 TMP_21 TMP_26) in (let 
-TMP_28 \def (S O) in (let TMP_29 \def (lift TMP_28 O t0) in (let TMP_30 \def 
-(pr0 t1 TMP_29) in (or TMP_27 TMP_30))))))))))) in (let TMP_91 \def (\lambda 
-(t: T).(\lambda (H1: (eq T t (THead (Bind Abbr) u1 t1))).(let TMP_32 \def 
-(\lambda (e: T).e) in (let TMP_33 \def (Bind Abbr) in (let TMP_34 \def (THead 
-TMP_33 u1 t1) in (let H2 \def (f_equal T T TMP_32 t TMP_34 H1) in (let TMP_35 
-\def (Bind Abbr) in (let TMP_36 \def (THead TMP_35 u1 t1) in (let TMP_50 \def 
-(\lambda (t0: T).(let TMP_39 \def (\lambda (u2: T).(\lambda (t2: T).(let 
-TMP_37 \def (Bind Abbr) in (let TMP_38 \def (THead TMP_37 u2 t2) in (eq T t0 
-TMP_38))))) in (let TMP_40 \def (\lambda (u2: T).(\lambda (_: T).(pr0 u1 
-u2))) in (let TMP_45 \def (\lambda (u2: T).(\lambda (t2: T).(let TMP_41 \def 
-(pr0 t1 t2) in (let TMP_42 \def (\lambda (y0: T).(pr0 t1 y0)) in (let TMP_43 
-\def (\lambda (y0: T).(subst0 O u2 y0 t2)) in (let TMP_44 \def (ex2 T TMP_42 
-TMP_43) in (or TMP_41 TMP_44))))))) in (let TMP_46 \def (ex3_2 T T TMP_39 
-TMP_40 TMP_45) in (let TMP_47 \def (S O) in (let TMP_48 \def (lift TMP_47 O 
-t0) in (let TMP_49 \def (pr0 t1 TMP_48) in (or TMP_46 TMP_49))))))))) in (let 
-TMP_55 \def (\lambda (u2: T).(\lambda (t2: T).(let TMP_51 \def (Bind Abbr) in 
-(let TMP_52 \def (THead TMP_51 u1 t1) in (let TMP_53 \def (Bind Abbr) in (let 
-TMP_54 \def (THead TMP_53 u2 t2) in (eq T TMP_52 TMP_54))))))) in (let TMP_56 
-\def (\lambda (u2: T).(\lambda (_: T).(pr0 u1 u2))) in (let TMP_61 \def 
-(\lambda (u2: T).(\lambda (t2: T).(let TMP_57 \def (pr0 t1 t2) in (let TMP_58 
-\def (\lambda (y0: T).(pr0 t1 y0)) in (let TMP_59 \def (\lambda (y0: 
-T).(subst0 O u2 y0 t2)) in (let TMP_60 \def (ex2 T TMP_58 TMP_59) in (or 
-TMP_57 TMP_60))))))) in (let TMP_62 \def (ex3_2 T T TMP_55 TMP_56 TMP_61) in 
-(let TMP_63 \def (S O) in (let TMP_64 \def (Bind Abbr) in (let TMP_65 \def 
-(THead TMP_64 u1 t1) in (let TMP_66 \def (lift TMP_63 O TMP_65) in (let 
-TMP_67 \def (pr0 t1 TMP_66) in (let TMP_72 \def (\lambda (u2: T).(\lambda 
-(t2: T).(let TMP_68 \def (Bind Abbr) in (let TMP_69 \def (THead TMP_68 u1 t1) 
-in (let TMP_70 \def (Bind Abbr) in (let TMP_71 \def (THead TMP_70 u2 t2) in 
-(eq T TMP_69 TMP_71))))))) in (let TMP_73 \def (\lambda (u2: T).(\lambda (_: 
-T).(pr0 u1 u2))) in (let TMP_78 \def (\lambda (u2: T).(\lambda (t2: T).(let 
-TMP_74 \def (pr0 t1 t2) in (let TMP_75 \def (\lambda (y0: T).(pr0 t1 y0)) in 
-(let TMP_76 \def (\lambda (y0: T).(subst0 O u2 y0 t2)) in (let TMP_77 \def 
-(ex2 T TMP_75 TMP_76) in (or TMP_74 TMP_77))))))) in (let TMP_79 \def (Bind 
-Abbr) in (let TMP_80 \def (THead TMP_79 u1 t1) in (let TMP_81 \def 
-(refl_equal T TMP_80) in (let TMP_82 \def (pr0_refl u1) in (let TMP_83 \def 
-(pr0 t1 t1) in (let TMP_84 \def (\lambda (y0: T).(pr0 t1 y0)) in (let TMP_85 
-\def (\lambda (y0: T).(subst0 O u1 y0 t1)) in (let TMP_86 \def (ex2 T TMP_84 
-TMP_85) in (let TMP_87 \def (pr0_refl t1) in (let TMP_88 \def (or_introl 
-TMP_83 TMP_86 TMP_87) in (let TMP_89 \def (ex3_2_intro T T TMP_72 TMP_73 
-TMP_78 u1 t1 TMP_81 TMP_82 TMP_88) in (let TMP_90 \def (or_introl TMP_62 
-TMP_67 TMP_89) in (eq_ind_r T TMP_36 TMP_50 TMP_90 t 
-H2)))))))))))))))))))))))))))))))))) in (let TMP_191 \def (\lambda (u0: 
-T).(\lambda (u2: T).(\lambda (H1: (pr0 u0 u2)).(\lambda (H2: (((eq T u0 
-(THead (Bind Abbr) u1 t1)) \to (or (ex3_2 T T (\lambda (u3: T).(\lambda (t2: 
-T).(eq T u2 (THead (Bind Abbr) u3 t2)))) (\lambda (u3: T).(\lambda (_: 
-T).(pr0 u1 u3))) (\lambda (u3: T).(\lambda (t2: T).(or (pr0 t1 t2) (ex2 T 
-(\lambda (y0: T).(pr0 t1 y0)) (\lambda (y0: T).(subst0 O u3 y0 t2))))))) (pr0 
-t1 (lift (S O) O u2)))))).(\lambda (t0: T).(\lambda (t2: T).(\lambda (H3: 
-(pr0 t0 t2)).(\lambda (H4: (((eq T t0 (THead (Bind Abbr) u1 t1)) \to (or 
-(ex3_2 T T (\lambda (u3: T).(\lambda (t3: T).(eq T t2 (THead (Bind Abbr) u3 
-t3)))) (\lambda (u3: T).(\lambda (_: T).(pr0 u1 u3))) (\lambda (u3: 
-T).(\lambda (t3: T).(or (pr0 t1 t3) (ex2 T (\lambda (y0: T).(pr0 t1 y0)) 
-(\lambda (y0: T).(subst0 O u3 y0 t3))))))) (pr0 t1 (lift (S O) O 
-t2)))))).(\lambda (k: K).(\lambda (H5: (eq T (THead k u0 t0) (THead (Bind 
-Abbr) u1 t1))).(let TMP_92 \def (\lambda (e: T).(match e with [(TSort _) 
-\Rightarrow k | (TLRef _) \Rightarrow k | (THead k0 _ _) \Rightarrow k0])) in 
-(let TMP_93 \def (THead k u0 t0) in (let TMP_94 \def (Bind Abbr) in (let 
-TMP_95 \def (THead TMP_94 u1 t1) in (let H6 \def (f_equal T K TMP_92 TMP_93 
-TMP_95 H5) in (let TMP_96 \def (\lambda (e: T).(match e with [(TSort _) 
-\Rightarrow u0 | (TLRef _) \Rightarrow u0 | (THead _ t _) \Rightarrow t])) in 
-(let TMP_97 \def (THead k u0 t0) in (let TMP_98 \def (Bind Abbr) in (let 
-TMP_99 \def (THead TMP_98 u1 t1) in (let H7 \def (f_equal T T TMP_96 TMP_97 
-TMP_99 H5) in (let TMP_100 \def (\lambda (e: T).(match e with [(TSort _) 
-\Rightarrow t0 | (TLRef _) \Rightarrow t0 | (THead _ _ t) \Rightarrow t])) in 
-(let TMP_101 \def (THead k u0 t0) in (let TMP_102 \def (Bind Abbr) in (let 
-TMP_103 \def (THead TMP_102 u1 t1) in (let H8 \def (f_equal T T TMP_100 
-TMP_101 TMP_103 H5) in (let TMP_189 \def (\lambda (H9: (eq T u0 u1)).(\lambda 
-(H10: (eq K k (Bind Abbr))).(let TMP_104 \def (Bind Abbr) in (let TMP_120 
-\def (\lambda (k0: K).(let TMP_108 \def (\lambda (u3: T).(\lambda (t3: 
-T).(let TMP_105 \def (THead k0 u2 t2) in (let TMP_106 \def (Bind Abbr) in 
-(let TMP_107 \def (THead TMP_106 u3 t3) in (eq T TMP_105 TMP_107)))))) in 
-(let TMP_109 \def (\lambda (u3: T).(\lambda (_: T).(pr0 u1 u3))) in (let 
-TMP_114 \def (\lambda (u3: T).(\lambda (t3: T).(let TMP_110 \def (pr0 t1 t3) 
-in (let TMP_111 \def (\lambda (y0: T).(pr0 t1 y0)) in (let TMP_112 \def 
-(\lambda (y0: T).(subst0 O u3 y0 t3)) in (let TMP_113 \def (ex2 T TMP_111 
-TMP_112) in (or TMP_110 TMP_113))))))) in (let TMP_115 \def (ex3_2 T T 
-TMP_108 TMP_109 TMP_114) in (let TMP_116 \def (S O) in (let TMP_117 \def 
-(THead k0 u2 t2) in (let TMP_118 \def (lift TMP_116 O TMP_117) in (let 
-TMP_119 \def (pr0 t1 TMP_118) in (or TMP_115 TMP_119)))))))))) in (let 
-TMP_134 \def (\lambda (t: T).((eq T t (THead (Bind Abbr) u1 t1)) \to (let 
-TMP_123 \def (\lambda (u3: T).(\lambda (t3: T).(let TMP_121 \def (Bind Abbr) 
-in (let TMP_122 \def (THead TMP_121 u3 t3) in (eq T t2 TMP_122))))) in (let 
-TMP_124 \def (\lambda (u3: T).(\lambda (_: T).(pr0 u1 u3))) in (let TMP_129 
-\def (\lambda (u3: T).(\lambda (t3: T).(let TMP_125 \def (pr0 t1 t3) in (let 
-TMP_126 \def (\lambda (y0: T).(pr0 t1 y0)) in (let TMP_127 \def (\lambda (y0: 
-T).(subst0 O u3 y0 t3)) in (let TMP_128 \def (ex2 T TMP_126 TMP_127) in (or 
-TMP_125 TMP_128))))))) in (let TMP_130 \def (ex3_2 T T TMP_123 TMP_124 
-TMP_129) in (let TMP_131 \def (S O) in (let TMP_132 \def (lift TMP_131 O t2) 
-in (let TMP_133 \def (pr0 t1 TMP_132) in (or TMP_130 TMP_133)))))))))) in 
-(let H11 \def (eq_ind T t0 TMP_134 H4 t1 H8) in (let TMP_135 \def (\lambda 
-(t: T).(pr0 t t2)) in (let H12 \def (eq_ind T t0 TMP_135 H3 t1 H8) in (let 
-TMP_149 \def (\lambda (t: T).((eq T t (THead (Bind Abbr) u1 t1)) \to (let 
-TMP_138 \def (\lambda (u3: T).(\lambda (t3: T).(let TMP_136 \def (Bind Abbr) 
-in (let TMP_137 \def (THead TMP_136 u3 t3) in (eq T u2 TMP_137))))) in (let 
-TMP_139 \def (\lambda (u3: T).(\lambda (_: T).(pr0 u1 u3))) in (let TMP_144 
-\def (\lambda (u3: T).(\lambda (t3: T).(let TMP_140 \def (pr0 t1 t3) in (let 
-TMP_141 \def (\lambda (y0: T).(pr0 t1 y0)) in (let TMP_142 \def (\lambda (y0: 
-T).(subst0 O u3 y0 t3)) in (let TMP_143 \def (ex2 T TMP_141 TMP_142) in (or 
-TMP_140 TMP_143))))))) in (let TMP_145 \def (ex3_2 T T TMP_138 TMP_139 
-TMP_144) in (let TMP_146 \def (S O) in (let TMP_147 \def (lift TMP_146 O u2) 
-in (let TMP_148 \def (pr0 t1 TMP_147) in (or TMP_145 TMP_148)))))))))) in 
-(let H13 \def (eq_ind T u0 TMP_149 H2 u1 H9) in (let TMP_150 \def (\lambda 
-(t: T).(pr0 t u2)) in (let H14 \def (eq_ind T u0 TMP_150 H1 u1 H9) in (let 
-TMP_155 \def (\lambda (u3: T).(\lambda (t3: T).(let TMP_151 \def (Bind Abbr) 
-in (let TMP_152 \def (THead TMP_151 u2 t2) in (let TMP_153 \def (Bind Abbr) 
-in (let TMP_154 \def (THead TMP_153 u3 t3) in (eq T TMP_152 TMP_154))))))) in 
-(let TMP_156 \def (\lambda (u3: T).(\lambda (_: T).(pr0 u1 u3))) in (let 
-TMP_161 \def (\lambda (u3: T).(\lambda (t3: T).(let TMP_157 \def (pr0 t1 t3) 
-in (let TMP_158 \def (\lambda (y0: T).(pr0 t1 y0)) in (let TMP_159 \def 
-(\lambda (y0: T).(subst0 O u3 y0 t3)) in (let TMP_160 \def (ex2 T TMP_158 
-TMP_159) in (or TMP_157 TMP_160))))))) in (let TMP_162 \def (ex3_2 T T 
-TMP_155 TMP_156 TMP_161) in (let TMP_163 \def (S O) in (let TMP_164 \def 
-(Bind Abbr) in (let TMP_165 \def (THead TMP_164 u2 t2) in (let TMP_166 \def 
-(lift TMP_163 O TMP_165) in (let TMP_167 \def (pr0 t1 TMP_166) in (let 
-TMP_172 \def (\lambda (u3: T).(\lambda (t3: T).(let TMP_168 \def (Bind Abbr) 
-in (let TMP_169 \def (THead TMP_168 u2 t2) in (let TMP_170 \def (Bind Abbr) 
-in (let TMP_171 \def (THead TMP_170 u3 t3) in (eq T TMP_169 TMP_171))))))) in 
-(let TMP_173 \def (\lambda (u3: T).(\lambda (_: T).(pr0 u1 u3))) in (let 
-TMP_178 \def (\lambda (u3: T).(\lambda (t3: T).(let TMP_174 \def (pr0 t1 t3) 
-in (let TMP_175 \def (\lambda (y0: T).(pr0 t1 y0)) in (let TMP_176 \def 
-(\lambda (y0: T).(subst0 O u3 y0 t3)) in (let TMP_177 \def (ex2 T TMP_175 
-TMP_176) in (or TMP_174 TMP_177))))))) in (let TMP_179 \def (Bind Abbr) in 
-(let TMP_180 \def (THead TMP_179 u2 t2) in (let TMP_181 \def (refl_equal T 
-TMP_180) in (let TMP_182 \def (pr0 t1 t2) in (let TMP_183 \def (\lambda (y0: 
-T).(pr0 t1 y0)) in (let TMP_184 \def (\lambda (y0: T).(subst0 O u2 y0 t2)) in 
-(let TMP_185 \def (ex2 T TMP_183 TMP_184) in (let TMP_186 \def (or_introl 
-TMP_182 TMP_185 H12) in (let TMP_187 \def (ex3_2_intro T T TMP_172 TMP_173 
-TMP_178 u2 t2 TMP_181 H14 TMP_186) in (let TMP_188 \def (or_introl TMP_162 
-TMP_167 TMP_187) in (eq_ind_r K TMP_104 TMP_120 TMP_188 k 
-H10))))))))))))))))))))))))))))))))))) in (let TMP_190 \def (TMP_189 H7) in 
-(TMP_190 H6)))))))))))))))))))))))))))) in (let TMP_217 \def (\lambda (u: 
-T).(\lambda (v1: T).(\lambda (v2: T).(\lambda (_: (pr0 v1 v2)).(\lambda (_: 
-(((eq T v1 (THead (Bind Abbr) u1 t1)) \to (or (ex3_2 T T (\lambda (u2: 
-T).(\lambda (t2: T).(eq T v2 (THead (Bind Abbr) u2 t2)))) (\lambda (u2: 
+(Bind Abbr) u1 t1) x)).(insert_eq T (THead (Bind Abbr) u1 t1) (\lambda (t: 
+T).(pr0 t x)) (\lambda (_: T).(or (ex3_2 T T (\lambda (u2: T).(\lambda (t2: 
+T).(eq T x (THead (Bind Abbr) u2 t2)))) (\lambda (u2: T).(\lambda (_: T).(pr0 
+u1 u2))) (\lambda (u2: T).(\lambda (t2: T).(or (pr0 t1 t2) (ex2 T (\lambda 
+(y: T).(pr0 t1 y)) (\lambda (y: T).(subst0 O u2 y t2))))))) (pr0 t1 (lift (S 
+O) O x)))) (\lambda (y: T).(\lambda (H0: (pr0 y x)).(pr0_ind (\lambda (t: 
+T).(\lambda (t0: T).((eq T t (THead (Bind Abbr) u1 t1)) \to (or (ex3_2 T T 
+(\lambda (u2: T).(\lambda (t2: T).(eq T t0 (THead (Bind Abbr) u2 t2)))) 
+(\lambda (u2: T).(\lambda (_: T).(pr0 u1 u2))) (\lambda (u2: T).(\lambda (t2: 
+T).(or (pr0 t1 t2) (ex2 T (\lambda (y0: T).(pr0 t1 y0)) (\lambda (y0: 
+T).(subst0 O u2 y0 t2))))))) (pr0 t1 (lift (S O) O t0)))))) (\lambda (t: 
+T).(\lambda (H1: (eq T t (THead (Bind Abbr) u1 t1))).(let H2 \def (f_equal T 
+T (\lambda (e: T).e) t (THead (Bind Abbr) u1 t1) H1) in (eq_ind_r T (THead 
+(Bind Abbr) u1 t1) (\lambda (t0: T).(or (ex3_2 T T (\lambda (u2: T).(\lambda 
+(t2: T).(eq T t0 (THead (Bind Abbr) u2 t2)))) (\lambda (u2: T).(\lambda (_: 
+T).(pr0 u1 u2))) (\lambda (u2: T).(\lambda (t2: T).(or (pr0 t1 t2) (ex2 T 
+(\lambda (y0: T).(pr0 t1 y0)) (\lambda (y0: T).(subst0 O u2 y0 t2))))))) (pr0 
+t1 (lift (S O) O t0)))) (or_introl (ex3_2 T T (\lambda (u2: T).(\lambda (t2: 
+T).(eq T (THead (Bind Abbr) u1 t1) (THead (Bind Abbr) u2 t2)))) (\lambda (u2: 
 T).(\lambda (_: T).(pr0 u1 u2))) (\lambda (u2: T).(\lambda (t2: T).(or (pr0 
 t1 t2) (ex2 T (\lambda (y0: T).(pr0 t1 y0)) (\lambda (y0: T).(subst0 O u2 y0 
-t2))))))) (pr0 t1 (lift (S O) O v2)))))).(\lambda (t0: T).(\lambda (t2: 
-T).(\lambda (_: (pr0 t0 t2)).(\lambda (_: (((eq T t0 (THead (Bind Abbr) u1 
-t1)) \to (or (ex3_2 T T (\lambda (u2: T).(\lambda (t3: T).(eq T t2 (THead 
-(Bind Abbr) u2 t3)))) (\lambda (u2: T).(\lambda (_: T).(pr0 u1 u2))) (\lambda 
-(u2: T).(\lambda (t3: T).(or (pr0 t1 t3) (ex2 T (\lambda (y0: T).(pr0 t1 y0)) 
-(\lambda (y0: T).(subst0 O u2 y0 t3))))))) (pr0 t1 (lift (S O) O 
-t2)))))).(\lambda (H5: (eq T (THead (Flat Appl) v1 (THead (Bind Abst) u t0)) 
-(THead (Bind Abbr) u1 t1))).(let TMP_192 \def (Flat Appl) in (let TMP_193 
-\def (Bind Abst) in (let TMP_194 \def (THead TMP_193 u t0) in (let TMP_195 
-\def (THead TMP_192 v1 TMP_194) in (let TMP_196 \def (\lambda (ee: T).(match 
-ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | (THead k 
-_ _) \Rightarrow (match k with [(Bind _) \Rightarrow False | (Flat _) 
-\Rightarrow True])])) in (let TMP_197 \def (Bind Abbr) in (let TMP_198 \def 
-(THead TMP_197 u1 t1) in (let H6 \def (eq_ind T TMP_195 TMP_196 I TMP_198 H5) 
-in (let TMP_203 \def (\lambda (u2: T).(\lambda (t3: T).(let TMP_199 \def 
-(Bind Abbr) in (let TMP_200 \def (THead TMP_199 v2 t2) in (let TMP_201 \def 
-(Bind Abbr) in (let TMP_202 \def (THead TMP_201 u2 t3) in (eq T TMP_200 
-TMP_202))))))) in (let TMP_204 \def (\lambda (u2: T).(\lambda (_: T).(pr0 u1 
-u2))) in (let TMP_209 \def (\lambda (u2: T).(\lambda (t3: T).(let TMP_205 
-\def (pr0 t1 t3) in (let TMP_206 \def (\lambda (y0: T).(pr0 t1 y0)) in (let 
-TMP_207 \def (\lambda (y0: T).(subst0 O u2 y0 t3)) in (let TMP_208 \def (ex2 
-T TMP_206 TMP_207) in (or TMP_205 TMP_208))))))) in (let TMP_210 \def (ex3_2 
-T T TMP_203 TMP_204 TMP_209) in (let TMP_211 \def (S O) in (let TMP_212 \def 
-(Bind Abbr) in (let TMP_213 \def (THead TMP_212 v2 t2) in (let TMP_214 \def 
-(lift TMP_211 O TMP_213) in (let TMP_215 \def (pr0 t1 TMP_214) in (let 
-TMP_216 \def (or TMP_210 TMP_215) in (False_ind TMP_216 
-H6))))))))))))))))))))))))))))) in (let TMP_251 \def (\lambda (b: B).(\lambda 
-(_: (not (eq B b Abst))).(\lambda (v1: T).(\lambda (v2: T).(\lambda (_: (pr0 
-v1 v2)).(\lambda (_: (((eq T v1 (THead (Bind Abbr) u1 t1)) \to (or (ex3_2 T T 
+t2))))))) (pr0 t1 (lift (S O) O (THead (Bind Abbr) u1 t1))) (ex3_2_intro T T 
+(\lambda (u2: T).(\lambda (t2: T).(eq T (THead (Bind Abbr) u1 t1) (THead 
+(Bind Abbr) u2 t2)))) (\lambda (u2: T).(\lambda (_: T).(pr0 u1 u2))) (\lambda 
+(u2: T).(\lambda (t2: T).(or (pr0 t1 t2) (ex2 T (\lambda (y0: T).(pr0 t1 y0)) 
+(\lambda (y0: T).(subst0 O u2 y0 t2)))))) u1 t1 (refl_equal T (THead (Bind 
+Abbr) u1 t1)) (pr0_refl u1) (or_introl (pr0 t1 t1) (ex2 T (\lambda (y0: 
+T).(pr0 t1 y0)) (\lambda (y0: T).(subst0 O u1 y0 t1))) (pr0_refl t1)))) t 
+H2)))) (\lambda (u0: T).(\lambda (u2: T).(\lambda (H1: (pr0 u0 u2)).(\lambda 
+(H2: (((eq T u0 (THead (Bind Abbr) u1 t1)) \to (or (ex3_2 T T (\lambda (u3: 
+T).(\lambda (t2: T).(eq T u2 (THead (Bind Abbr) u3 t2)))) (\lambda (u3: 
+T).(\lambda (_: T).(pr0 u1 u3))) (\lambda (u3: T).(\lambda (t2: T).(or (pr0 
+t1 t2) (ex2 T (\lambda (y0: T).(pr0 t1 y0)) (\lambda (y0: T).(subst0 O u3 y0 
+t2))))))) (pr0 t1 (lift (S O) O u2)))))).(\lambda (t0: T).(\lambda (t2: 
+T).(\lambda (H3: (pr0 t0 t2)).(\lambda (H4: (((eq T t0 (THead (Bind Abbr) u1 
+t1)) \to (or (ex3_2 T T (\lambda (u3: T).(\lambda (t3: T).(eq T t2 (THead 
+(Bind Abbr) u3 t3)))) (\lambda (u3: T).(\lambda (_: T).(pr0 u1 u3))) (\lambda 
+(u3: T).(\lambda (t3: T).(or (pr0 t1 t3) (ex2 T (\lambda (y0: T).(pr0 t1 y0)) 
+(\lambda (y0: T).(subst0 O u3 y0 t3))))))) (pr0 t1 (lift (S O) O 
+t2)))))).(\lambda (k: K).(\lambda (H5: (eq T (THead k u0 t0) (THead (Bind 
+Abbr) u1 t1))).(let H6 \def (f_equal T K (\lambda (e: T).(match e with 
+[(TSort _) \Rightarrow k | (TLRef _) \Rightarrow k | (THead k0 _ _) 
+\Rightarrow k0])) (THead k u0 t0) (THead (Bind Abbr) u1 t1) H5) in ((let H7 
+\def (f_equal T T (\lambda (e: T).(match e with [(TSort _) \Rightarrow u0 | 
+(TLRef _) \Rightarrow u0 | (THead _ t _) \Rightarrow t])) (THead k u0 t0) 
+(THead (Bind Abbr) u1 t1) H5) in ((let H8 \def (f_equal T T (\lambda (e: 
+T).(match e with [(TSort _) \Rightarrow t0 | (TLRef _) \Rightarrow t0 | 
+(THead _ _ t) \Rightarrow t])) (THead k u0 t0) (THead (Bind Abbr) u1 t1) H5) 
+in (\lambda (H9: (eq T u0 u1)).(\lambda (H10: (eq K k (Bind Abbr))).(eq_ind_r 
+K (Bind Abbr) (\lambda (k0: K).(or (ex3_2 T T (\lambda (u3: T).(\lambda (t3: 
+T).(eq T (THead k0 u2 t2) (THead (Bind Abbr) u3 t3)))) (\lambda (u3: 
+T).(\lambda (_: T).(pr0 u1 u3))) (\lambda (u3: T).(\lambda (t3: T).(or (pr0 
+t1 t3) (ex2 T (\lambda (y0: T).(pr0 t1 y0)) (\lambda (y0: T).(subst0 O u3 y0 
+t3))))))) (pr0 t1 (lift (S O) O (THead k0 u2 t2))))) (let H11 \def (eq_ind T 
+t0 (\lambda (t: T).((eq T t (THead (Bind Abbr) u1 t1)) \to (or (ex3_2 T T 
+(\lambda (u3: T).(\lambda (t3: T).(eq T t2 (THead (Bind Abbr) u3 t3)))) 
+(\lambda (u3: T).(\lambda (_: T).(pr0 u1 u3))) (\lambda (u3: T).(\lambda (t3: 
+T).(or (pr0 t1 t3) (ex2 T (\lambda (y0: T).(pr0 t1 y0)) (\lambda (y0: 
+T).(subst0 O u3 y0 t3))))))) (pr0 t1 (lift (S O) O t2))))) H4 t1 H8) in (let 
+H12 \def (eq_ind T t0 (\lambda (t: T).(pr0 t t2)) H3 t1 H8) in (let H13 \def 
+(eq_ind T u0 (\lambda (t: T).((eq T t (THead (Bind Abbr) u1 t1)) \to (or 
+(ex3_2 T T (\lambda (u3: T).(\lambda (t3: T).(eq T u2 (THead (Bind Abbr) u3 
+t3)))) (\lambda (u3: T).(\lambda (_: T).(pr0 u1 u3))) (\lambda (u3: 
+T).(\lambda (t3: T).(or (pr0 t1 t3) (ex2 T (\lambda (y0: T).(pr0 t1 y0)) 
+(\lambda (y0: T).(subst0 O u3 y0 t3))))))) (pr0 t1 (lift (S O) O u2))))) H2 
+u1 H9) in (let H14 \def (eq_ind T u0 (\lambda (t: T).(pr0 t u2)) H1 u1 H9) in 
+(or_introl (ex3_2 T T (\lambda (u3: T).(\lambda (t3: T).(eq T (THead (Bind 
+Abbr) u2 t2) (THead (Bind Abbr) u3 t3)))) (\lambda (u3: T).(\lambda (_: 
+T).(pr0 u1 u3))) (\lambda (u3: T).(\lambda (t3: T).(or (pr0 t1 t3) (ex2 T 
+(\lambda (y0: T).(pr0 t1 y0)) (\lambda (y0: T).(subst0 O u3 y0 t3))))))) (pr0 
+t1 (lift (S O) O (THead (Bind Abbr) u2 t2))) (ex3_2_intro T T (\lambda (u3: 
+T).(\lambda (t3: T).(eq T (THead (Bind Abbr) u2 t2) (THead (Bind Abbr) u3 
+t3)))) (\lambda (u3: T).(\lambda (_: T).(pr0 u1 u3))) (\lambda (u3: 
+T).(\lambda (t3: T).(or (pr0 t1 t3) (ex2 T (\lambda (y0: T).(pr0 t1 y0)) 
+(\lambda (y0: T).(subst0 O u3 y0 t3)))))) u2 t2 (refl_equal T (THead (Bind 
+Abbr) u2 t2)) H14 (or_introl (pr0 t1 t2) (ex2 T (\lambda (y0: T).(pr0 t1 y0)) 
+(\lambda (y0: T).(subst0 O u2 y0 t2))) H12))))))) k H10)))) H7)) 
+H6)))))))))))) (\lambda (u: T).(\lambda (v1: T).(\lambda (v2: T).(\lambda (_: 
+(pr0 v1 v2)).(\lambda (_: (((eq T v1 (THead (Bind Abbr) u1 t1)) \to (or 
+(ex3_2 T T (\lambda (u2: T).(\lambda (t2: T).(eq T v2 (THead (Bind Abbr) u2 
+t2)))) (\lambda (u2: T).(\lambda (_: T).(pr0 u1 u2))) (\lambda (u2: 
+T).(\lambda (t2: T).(or (pr0 t1 t2) (ex2 T (\lambda (y0: T).(pr0 t1 y0)) 
+(\lambda (y0: T).(subst0 O u2 y0 t2))))))) (pr0 t1 (lift (S O) O 
+v2)))))).(\lambda (t0: T).(\lambda (t2: T).(\lambda (_: (pr0 t0 t2)).(\lambda 
+(_: (((eq T t0 (THead (Bind Abbr) u1 t1)) \to (or (ex3_2 T T (\lambda (u2: 
+T).(\lambda (t3: T).(eq T t2 (THead (Bind Abbr) u2 t3)))) (\lambda (u2: 
+T).(\lambda (_: T).(pr0 u1 u2))) (\lambda (u2: T).(\lambda (t3: T).(or (pr0 
+t1 t3) (ex2 T (\lambda (y0: T).(pr0 t1 y0)) (\lambda (y0: T).(subst0 O u2 y0 
+t3))))))) (pr0 t1 (lift (S O) O t2)))))).(\lambda (H5: (eq T (THead (Flat 
+Appl) v1 (THead (Bind Abst) u t0)) (THead (Bind Abbr) u1 t1))).(let H6 \def 
+(eq_ind T (THead (Flat Appl) v1 (THead (Bind Abst) u t0)) (\lambda (ee: 
+T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False 
+| (THead k _ _) \Rightarrow (match k with [(Bind _) \Rightarrow False | (Flat 
+_) \Rightarrow True])])) I (THead (Bind Abbr) u1 t1) H5) in (False_ind (or 
+(ex3_2 T T (\lambda (u2: T).(\lambda (t3: T).(eq T (THead (Bind Abbr) v2 t2) 
+(THead (Bind Abbr) u2 t3)))) (\lambda (u2: T).(\lambda (_: T).(pr0 u1 u2))) 
+(\lambda (u2: T).(\lambda (t3: T).(or (pr0 t1 t3) (ex2 T (\lambda (y0: 
+T).(pr0 t1 y0)) (\lambda (y0: T).(subst0 O u2 y0 t3))))))) (pr0 t1 (lift (S 
+O) O (THead (Bind Abbr) v2 t2)))) H6)))))))))))) (\lambda (b: B).(\lambda (_: 
+(not (eq B b Abst))).(\lambda (v1: T).(\lambda (v2: T).(\lambda (_: (pr0 v1 
+v2)).(\lambda (_: (((eq T v1 (THead (Bind Abbr) u1 t1)) \to (or (ex3_2 T T 
 (\lambda (u2: T).(\lambda (t2: T).(eq T v2 (THead (Bind Abbr) u2 t2)))) 
 (\lambda (u2: T).(\lambda (_: T).(pr0 u1 u2))) (\lambda (u2: T).(\lambda (t2: 
 T).(or (pr0 t1 t2) (ex2 T (\lambda (y0: T).(pr0 t1 y0)) (\lambda (y0: 
@@ -527,199 +253,110 @@ t2)).(\lambda (_: (((eq T t0 (THead (Bind Abbr) u1 t1)) \to (or (ex3_2 T T
 T).(or (pr0 t1 t3) (ex2 T (\lambda (y0: T).(pr0 t1 y0)) (\lambda (y0: 
 T).(subst0 O u3 y0 t3))))))) (pr0 t1 (lift (S O) O t2)))))).(\lambda (H8: (eq 
 T (THead (Flat Appl) v1 (THead (Bind b) u0 t0)) (THead (Bind Abbr) u1 
-t1))).(let TMP_218 \def (Flat Appl) in (let TMP_219 \def (Bind b) in (let 
-TMP_220 \def (THead TMP_219 u0 t0) in (let TMP_221 \def (THead TMP_218 v1 
-TMP_220) in (let TMP_222 \def (\lambda (ee: T).(match ee with [(TSort _) 
-\Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow 
-(match k with [(Bind _) \Rightarrow False | (Flat _) \Rightarrow True])])) in 
-(let TMP_223 \def (Bind Abbr) in (let TMP_224 \def (THead TMP_223 u1 t1) in 
-(let H9 \def (eq_ind T TMP_221 TMP_222 I TMP_224 H8) in (let TMP_233 \def 
-(\lambda (u3: T).(\lambda (t3: T).(let TMP_225 \def (Bind b) in (let TMP_226 
-\def (Flat Appl) in (let TMP_227 \def (S O) in (let TMP_228 \def (lift 
-TMP_227 O v2) in (let TMP_229 \def (THead TMP_226 TMP_228 t2) in (let TMP_230 
-\def (THead TMP_225 u2 TMP_229) in (let TMP_231 \def (Bind Abbr) in (let 
-TMP_232 \def (THead TMP_231 u3 t3) in (eq T TMP_230 TMP_232))))))))))) in 
-(let TMP_234 \def (\lambda (u3: T).(\lambda (_: T).(pr0 u1 u3))) in (let 
-TMP_239 \def (\lambda (u3: T).(\lambda (t3: T).(let TMP_235 \def (pr0 t1 t3) 
-in (let TMP_236 \def (\lambda (y0: T).(pr0 t1 y0)) in (let TMP_237 \def 
-(\lambda (y0: T).(subst0 O u3 y0 t3)) in (let TMP_238 \def (ex2 T TMP_236 
-TMP_237) in (or TMP_235 TMP_238))))))) in (let TMP_240 \def (ex3_2 T T 
-TMP_233 TMP_234 TMP_239) in (let TMP_241 \def (S O) in (let TMP_242 \def 
-(Bind b) in (let TMP_243 \def (Flat Appl) in (let TMP_244 \def (S O) in (let 
-TMP_245 \def (lift TMP_244 O v2) in (let TMP_246 \def (THead TMP_243 TMP_245 
-t2) in (let TMP_247 \def (THead TMP_242 u2 TMP_246) in (let TMP_248 \def 
-(lift TMP_241 O TMP_247) in (let TMP_249 \def (pr0 t1 TMP_248) in (let 
-TMP_250 \def (or TMP_240 TMP_249) in (False_ind TMP_250 
-H9)))))))))))))))))))))))))))))))))))))) in (let TMP_333 \def (\lambda (u0: 
-T).(\lambda (u2: T).(\lambda (H1: (pr0 u0 u2)).(\lambda (H2: (((eq T u0 
-(THead (Bind Abbr) u1 t1)) \to (or (ex3_2 T T (\lambda (u3: T).(\lambda (t2: 
-T).(eq T u2 (THead (Bind Abbr) u3 t2)))) (\lambda (u3: T).(\lambda (_: 
-T).(pr0 u1 u3))) (\lambda (u3: T).(\lambda (t2: T).(or (pr0 t1 t2) (ex2 T 
-(\lambda (y0: T).(pr0 t1 y0)) (\lambda (y0: T).(subst0 O u3 y0 t2))))))) (pr0 
-t1 (lift (S O) O u2)))))).(\lambda (t0: T).(\lambda (t2: T).(\lambda (H3: 
-(pr0 t0 t2)).(\lambda (H4: (((eq T t0 (THead (Bind Abbr) u1 t1)) \to (or 
-(ex3_2 T T (\lambda (u3: T).(\lambda (t3: T).(eq T t2 (THead (Bind Abbr) u3 
-t3)))) (\lambda (u3: T).(\lambda (_: T).(pr0 u1 u3))) (\lambda (u3: 
+t1))).(let H9 \def (eq_ind T (THead (Flat Appl) v1 (THead (Bind b) u0 t0)) 
+(\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) 
+\Rightarrow False | (THead k _ _) \Rightarrow (match k with [(Bind _) 
+\Rightarrow False | (Flat _) \Rightarrow True])])) I (THead (Bind Abbr) u1 
+t1) H8) in (False_ind (or (ex3_2 T T (\lambda (u3: T).(\lambda (t3: T).(eq T 
+(THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t2)) (THead (Bind 
+Abbr) u3 t3)))) (\lambda (u3: T).(\lambda (_: T).(pr0 u1 u3))) (\lambda (u3: 
 T).(\lambda (t3: T).(or (pr0 t1 t3) (ex2 T (\lambda (y0: T).(pr0 t1 y0)) 
+(\lambda (y0: T).(subst0 O u3 y0 t3))))))) (pr0 t1 (lift (S O) O (THead (Bind 
+b) u2 (THead (Flat Appl) (lift (S O) O v2) t2))))) H9))))))))))))))))) 
+(\lambda (u0: T).(\lambda (u2: T).(\lambda (H1: (pr0 u0 u2)).(\lambda (H2: 
+(((eq T u0 (THead (Bind Abbr) u1 t1)) \to (or (ex3_2 T T (\lambda (u3: 
+T).(\lambda (t2: T).(eq T u2 (THead (Bind Abbr) u3 t2)))) (\lambda (u3: 
+T).(\lambda (_: T).(pr0 u1 u3))) (\lambda (u3: T).(\lambda (t2: T).(or (pr0 
+t1 t2) (ex2 T (\lambda (y0: T).(pr0 t1 y0)) (\lambda (y0: T).(subst0 O u3 y0 
+t2))))))) (pr0 t1 (lift (S O) O u2)))))).(\lambda (t0: T).(\lambda (t2: 
+T).(\lambda (H3: (pr0 t0 t2)).(\lambda (H4: (((eq T t0 (THead (Bind Abbr) u1 
+t1)) \to (or (ex3_2 T T (\lambda (u3: T).(\lambda (t3: T).(eq T t2 (THead 
+(Bind Abbr) u3 t3)))) (\lambda (u3: T).(\lambda (_: T).(pr0 u1 u3))) (\lambda 
+(u3: T).(\lambda (t3: T).(or (pr0 t1 t3) (ex2 T (\lambda (y0: T).(pr0 t1 y0)) 
 (\lambda (y0: T).(subst0 O u3 y0 t3))))))) (pr0 t1 (lift (S O) O 
 t2)))))).(\lambda (w: T).(\lambda (H5: (subst0 O u2 t2 w)).(\lambda (H6: (eq 
-T (THead (Bind Abbr) u0 t0) (THead (Bind Abbr) u1 t1))).(let TMP_252 \def 
-(\lambda (e: T).(match e with [(TSort _) \Rightarrow u0 | (TLRef _) 
-\Rightarrow u0 | (THead _ t _) \Rightarrow t])) in (let TMP_253 \def (Bind 
-Abbr) in (let TMP_254 \def (THead TMP_253 u0 t0) in (let TMP_255 \def (Bind 
-Abbr) in (let TMP_256 \def (THead TMP_255 u1 t1) in (let H7 \def (f_equal T T 
-TMP_252 TMP_254 TMP_256 H6) in (let TMP_257 \def (\lambda (e: T).(match e 
-with [(TSort _) \Rightarrow t0 | (TLRef _) \Rightarrow t0 | (THead _ _ t) 
-\Rightarrow t])) in (let TMP_258 \def (Bind Abbr) in (let TMP_259 \def (THead 
-TMP_258 u0 t0) in (let TMP_260 \def (Bind Abbr) in (let TMP_261 \def (THead 
-TMP_260 u1 t1) in (let H8 \def (f_equal T T TMP_257 TMP_259 TMP_261 H6) in 
-(let TMP_332 \def (\lambda (H9: (eq T u0 u1)).(let TMP_275 \def (\lambda (t: 
-T).((eq T t (THead (Bind Abbr) u1 t1)) \to (let TMP_264 \def (\lambda (u3: 
-T).(\lambda (t3: T).(let TMP_262 \def (Bind Abbr) in (let TMP_263 \def (THead 
-TMP_262 u3 t3) in (eq T t2 TMP_263))))) in (let TMP_265 \def (\lambda (u3: 
-T).(\lambda (_: T).(pr0 u1 u3))) in (let TMP_270 \def (\lambda (u3: 
-T).(\lambda (t3: T).(let TMP_266 \def (pr0 t1 t3) in (let TMP_267 \def 
-(\lambda (y0: T).(pr0 t1 y0)) in (let TMP_268 \def (\lambda (y0: T).(subst0 O 
-u3 y0 t3)) in (let TMP_269 \def (ex2 T TMP_267 TMP_268) in (or TMP_266 
-TMP_269))))))) in (let TMP_271 \def (ex3_2 T T TMP_264 TMP_265 TMP_270) in 
-(let TMP_272 \def (S O) in (let TMP_273 \def (lift TMP_272 O t2) in (let 
-TMP_274 \def (pr0 t1 TMP_273) in (or TMP_271 TMP_274)))))))))) in (let H10 
-\def (eq_ind T t0 TMP_275 H4 t1 H8) in (let TMP_276 \def (\lambda (t: T).(pr0 
-t t2)) in (let H11 \def (eq_ind T t0 TMP_276 H3 t1 H8) in (let TMP_290 \def 
-(\lambda (t: T).((eq T t (THead (Bind Abbr) u1 t1)) \to (let TMP_279 \def 
-(\lambda (u3: T).(\lambda (t3: T).(let TMP_277 \def (Bind Abbr) in (let 
-TMP_278 \def (THead TMP_277 u3 t3) in (eq T u2 TMP_278))))) in (let TMP_280 
-\def (\lambda (u3: T).(\lambda (_: T).(pr0 u1 u3))) in (let TMP_285 \def 
-(\lambda (u3: T).(\lambda (t3: T).(let TMP_281 \def (pr0 t1 t3) in (let 
-TMP_282 \def (\lambda (y0: T).(pr0 t1 y0)) in (let TMP_283 \def (\lambda (y0: 
-T).(subst0 O u3 y0 t3)) in (let TMP_284 \def (ex2 T TMP_282 TMP_283) in (or 
-TMP_281 TMP_284))))))) in (let TMP_286 \def (ex3_2 T T TMP_279 TMP_280 
-TMP_285) in (let TMP_287 \def (S O) in (let TMP_288 \def (lift TMP_287 O u2) 
-in (let TMP_289 \def (pr0 t1 TMP_288) in (or TMP_286 TMP_289)))))))))) in 
-(let H12 \def (eq_ind T u0 TMP_290 H2 u1 H9) in (let TMP_291 \def (\lambda 
-(t: T).(pr0 t u2)) in (let H13 \def (eq_ind T u0 TMP_291 H1 u1 H9) in (let 
-TMP_296 \def (\lambda (u3: T).(\lambda (t3: T).(let TMP_292 \def (Bind Abbr) 
-in (let TMP_293 \def (THead TMP_292 u2 w) in (let TMP_294 \def (Bind Abbr) in 
-(let TMP_295 \def (THead TMP_294 u3 t3) in (eq T TMP_293 TMP_295))))))) in 
-(let TMP_297 \def (\lambda (u3: T).(\lambda (_: T).(pr0 u1 u3))) in (let 
-TMP_302 \def (\lambda (u3: T).(\lambda (t3: T).(let TMP_298 \def (pr0 t1 t3) 
-in (let TMP_299 \def (\lambda (y0: T).(pr0 t1 y0)) in (let TMP_300 \def 
-(\lambda (y0: T).(subst0 O u3 y0 t3)) in (let TMP_301 \def (ex2 T TMP_299 
-TMP_300) in (or TMP_298 TMP_301))))))) in (let TMP_303 \def (ex3_2 T T 
-TMP_296 TMP_297 TMP_302) in (let TMP_304 \def (S O) in (let TMP_305 \def 
-(Bind Abbr) in (let TMP_306 \def (THead TMP_305 u2 w) in (let TMP_307 \def 
-(lift TMP_304 O TMP_306) in (let TMP_308 \def (pr0 t1 TMP_307) in (let 
-TMP_313 \def (\lambda (u3: T).(\lambda (t3: T).(let TMP_309 \def (Bind Abbr) 
-in (let TMP_310 \def (THead TMP_309 u2 w) in (let TMP_311 \def (Bind Abbr) in 
-(let TMP_312 \def (THead TMP_311 u3 t3) in (eq T TMP_310 TMP_312))))))) in 
-(let TMP_314 \def (\lambda (u3: T).(\lambda (_: T).(pr0 u1 u3))) in (let 
-TMP_319 \def (\lambda (u3: T).(\lambda (t3: T).(let TMP_315 \def (pr0 t1 t3) 
-in (let TMP_316 \def (\lambda (y0: T).(pr0 t1 y0)) in (let TMP_317 \def 
-(\lambda (y0: T).(subst0 O u3 y0 t3)) in (let TMP_318 \def (ex2 T TMP_316 
-TMP_317) in (or TMP_315 TMP_318))))))) in (let TMP_320 \def (Bind Abbr) in 
-(let TMP_321 \def (THead TMP_320 u2 w) in (let TMP_322 \def (refl_equal T 
-TMP_321) in (let TMP_323 \def (pr0 t1 w) in (let TMP_324 \def (\lambda (y0: 
-T).(pr0 t1 y0)) in (let TMP_325 \def (\lambda (y0: T).(subst0 O u2 y0 w)) in 
-(let TMP_326 \def (ex2 T TMP_324 TMP_325) in (let TMP_327 \def (\lambda (y0: 
-T).(pr0 t1 y0)) in (let TMP_328 \def (\lambda (y0: T).(subst0 O u2 y0 w)) in 
-(let TMP_329 \def (ex_intro2 T TMP_327 TMP_328 t2 H11 H5) in (let TMP_330 
-\def (or_intror TMP_323 TMP_326 TMP_329) in (let TMP_331 \def (ex3_2_intro T 
-T TMP_313 TMP_314 TMP_319 u2 w TMP_322 H13 TMP_330) in (or_introl TMP_303 
-TMP_308 TMP_331)))))))))))))))))))))))))))))))))) in (TMP_332 
-H7))))))))))))))))))))))))) in (let TMP_427 \def (\lambda (b: B).(\lambda 
-(H1: (not (eq B b Abst))).(\lambda (t0: T).(\lambda (t2: T).(\lambda (H2: 
-(pr0 t0 t2)).(\lambda (H3: (((eq T t0 (THead (Bind Abbr) u1 t1)) \to (or 
+T (THead (Bind Abbr) u0 t0) (THead (Bind Abbr) u1 t1))).(let H7 \def (f_equal 
+T T (\lambda (e: T).(match e with [(TSort _) \Rightarrow u0 | (TLRef _) 
+\Rightarrow u0 | (THead _ t _) \Rightarrow t])) (THead (Bind Abbr) u0 t0) 
+(THead (Bind Abbr) u1 t1) H6) in ((let H8 \def (f_equal T T (\lambda (e: 
+T).(match e with [(TSort _) \Rightarrow t0 | (TLRef _) \Rightarrow t0 | 
+(THead _ _ t) \Rightarrow t])) (THead (Bind Abbr) u0 t0) (THead (Bind Abbr) 
+u1 t1) H6) in (\lambda (H9: (eq T u0 u1)).(let H10 \def (eq_ind T t0 (\lambda 
+(t: T).((eq T t (THead (Bind Abbr) u1 t1)) \to (or (ex3_2 T T (\lambda (u3: 
+T).(\lambda (t3: T).(eq T t2 (THead (Bind Abbr) u3 t3)))) (\lambda (u3: 
+T).(\lambda (_: T).(pr0 u1 u3))) (\lambda (u3: T).(\lambda (t3: T).(or (pr0 
+t1 t3) (ex2 T (\lambda (y0: T).(pr0 t1 y0)) (\lambda (y0: T).(subst0 O u3 y0 
+t3))))))) (pr0 t1 (lift (S O) O t2))))) H4 t1 H8) in (let H11 \def (eq_ind T 
+t0 (\lambda (t: T).(pr0 t t2)) H3 t1 H8) in (let H12 \def (eq_ind T u0 
+(\lambda (t: T).((eq T t (THead (Bind Abbr) u1 t1)) \to (or (ex3_2 T T 
+(\lambda (u3: T).(\lambda (t3: T).(eq T u2 (THead (Bind Abbr) u3 t3)))) 
+(\lambda (u3: T).(\lambda (_: T).(pr0 u1 u3))) (\lambda (u3: T).(\lambda (t3: 
+T).(or (pr0 t1 t3) (ex2 T (\lambda (y0: T).(pr0 t1 y0)) (\lambda (y0: 
+T).(subst0 O u3 y0 t3))))))) (pr0 t1 (lift (S O) O u2))))) H2 u1 H9) in (let 
+H13 \def (eq_ind T u0 (\lambda (t: T).(pr0 t u2)) H1 u1 H9) in (or_introl 
+(ex3_2 T T (\lambda (u3: T).(\lambda (t3: T).(eq T (THead (Bind Abbr) u2 w) 
+(THead (Bind Abbr) u3 t3)))) (\lambda (u3: T).(\lambda (_: T).(pr0 u1 u3))) 
+(\lambda (u3: T).(\lambda (t3: T).(or (pr0 t1 t3) (ex2 T (\lambda (y0: 
+T).(pr0 t1 y0)) (\lambda (y0: T).(subst0 O u3 y0 t3))))))) (pr0 t1 (lift (S 
+O) O (THead (Bind Abbr) u2 w))) (ex3_2_intro T T (\lambda (u3: T).(\lambda 
+(t3: T).(eq T (THead (Bind Abbr) u2 w) (THead (Bind Abbr) u3 t3)))) (\lambda 
+(u3: T).(\lambda (_: T).(pr0 u1 u3))) (\lambda (u3: T).(\lambda (t3: T).(or 
+(pr0 t1 t3) (ex2 T (\lambda (y0: T).(pr0 t1 y0)) (\lambda (y0: T).(subst0 O 
+u3 y0 t3)))))) u2 w (refl_equal T (THead (Bind Abbr) u2 w)) H13 (or_intror 
+(pr0 t1 w) (ex2 T (\lambda (y0: T).(pr0 t1 y0)) (\lambda (y0: T).(subst0 O u2 
+y0 w))) (ex_intro2 T (\lambda (y0: T).(pr0 t1 y0)) (\lambda (y0: T).(subst0 O 
+u2 y0 w)) t2 H11 H5)))))))))) H7))))))))))))) (\lambda (b: B).(\lambda (H1: 
+(not (eq B b Abst))).(\lambda (t0: T).(\lambda (t2: T).(\lambda (H2: (pr0 t0 
+t2)).(\lambda (H3: (((eq T t0 (THead (Bind Abbr) u1 t1)) \to (or (ex3_2 T T 
+(\lambda (u2: T).(\lambda (t3: T).(eq T t2 (THead (Bind Abbr) u2 t3)))) 
+(\lambda (u2: T).(\lambda (_: T).(pr0 u1 u2))) (\lambda (u2: T).(\lambda (t3: 
+T).(or (pr0 t1 t3) (ex2 T (\lambda (y0: T).(pr0 t1 y0)) (\lambda (y0: 
+T).(subst0 O u2 y0 t3))))))) (pr0 t1 (lift (S O) O t2)))))).(\lambda (u: 
+T).(\lambda (H4: (eq T (THead (Bind b) u (lift (S O) O t0)) (THead (Bind 
+Abbr) u1 t1))).(let H5 \def (f_equal T B (\lambda (e: T).(match e with 
+[(TSort _) \Rightarrow b | (TLRef _) \Rightarrow b | (THead k _ _) 
+\Rightarrow (match k with [(Bind b0) \Rightarrow b0 | (Flat _) \Rightarrow 
+b])])) (THead (Bind b) u (lift (S O) O t0)) (THead (Bind Abbr) u1 t1) H4) in 
+((let H6 \def (f_equal T T (\lambda (e: T).(match e with [(TSort _) 
+\Rightarrow u | (TLRef _) \Rightarrow u | (THead _ t _) \Rightarrow t])) 
+(THead (Bind b) u (lift (S O) O t0)) (THead (Bind Abbr) u1 t1) H4) in ((let 
+H7 \def (f_equal T T (\lambda (e: T).(match e with [(TSort _) \Rightarrow 
+(lref_map (\lambda (x0: nat).(plus x0 (S O))) O t0) | (TLRef _) \Rightarrow 
+(lref_map (\lambda (x0: nat).(plus x0 (S O))) O t0) | (THead _ _ t) 
+\Rightarrow t])) (THead (Bind b) u (lift (S O) O t0)) (THead (Bind Abbr) u1 
+t1) H4) in (\lambda (_: (eq T u u1)).(\lambda (H9: (eq B b Abbr)).(let H10 
+\def (eq_ind B b (\lambda (b0: B).(not (eq B b0 Abst))) H1 Abbr H9) in (let 
+H11 \def (eq_ind_r T t1 (\lambda (t: T).((eq T t0 (THead (Bind Abbr) u1 t)) 
+\to (or (ex3_2 T T (\lambda (u2: T).(\lambda (t3: T).(eq T t2 (THead (Bind 
+Abbr) u2 t3)))) (\lambda (u2: T).(\lambda (_: T).(pr0 u1 u2))) (\lambda (u2: 
+T).(\lambda (t3: T).(or (pr0 t t3) (ex2 T (\lambda (y0: T).(pr0 t y0)) 
+(\lambda (y0: T).(subst0 O u2 y0 t3))))))) (pr0 t (lift (S O) O t2))))) H3 
+(lift (S O) O t0) H7) in (eq_ind T (lift (S O) O t0) (\lambda (t: T).(or 
+(ex3_2 T T (\lambda (u2: T).(\lambda (t3: T).(eq T t2 (THead (Bind Abbr) u2 
+t3)))) (\lambda (u2: T).(\lambda (_: T).(pr0 u1 u2))) (\lambda (u2: 
+T).(\lambda (t3: T).(or (pr0 t t3) (ex2 T (\lambda (y0: T).(pr0 t y0)) 
+(\lambda (y0: T).(subst0 O u2 y0 t3))))))) (pr0 t (lift (S O) O t2)))) 
+(or_intror (ex3_2 T T (\lambda (u2: T).(\lambda (t3: T).(eq T t2 (THead (Bind 
+Abbr) u2 t3)))) (\lambda (u2: T).(\lambda (_: T).(pr0 u1 u2))) (\lambda (u2: 
+T).(\lambda (t3: T).(or (pr0 (lift (S O) O t0) t3) (ex2 T (\lambda (y0: 
+T).(pr0 (lift (S O) O t0) y0)) (\lambda (y0: T).(subst0 O u2 y0 t3))))))) 
+(pr0 (lift (S O) O t0) (lift (S O) O t2)) (pr0_lift t0 t2 H2 (S O) O)) t1 
+H7)))))) H6)) H5)))))))))) (\lambda (t0: T).(\lambda (t2: T).(\lambda (_: 
+(pr0 t0 t2)).(\lambda (_: (((eq T t0 (THead (Bind Abbr) u1 t1)) \to (or 
 (ex3_2 T T (\lambda (u2: T).(\lambda (t3: T).(eq T t2 (THead (Bind Abbr) u2 
 t3)))) (\lambda (u2: T).(\lambda (_: T).(pr0 u1 u2))) (\lambda (u2: 
 T).(\lambda (t3: T).(or (pr0 t1 t3) (ex2 T (\lambda (y0: T).(pr0 t1 y0)) 
 (\lambda (y0: T).(subst0 O u2 y0 t3))))))) (pr0 t1 (lift (S O) O 
-t2)))))).(\lambda (u: T).(\lambda (H4: (eq T (THead (Bind b) u (lift (S O) O 
-t0)) (THead (Bind Abbr) u1 t1))).(let TMP_334 \def (\lambda (e: T).(match e 
-with [(TSort _) \Rightarrow b | (TLRef _) \Rightarrow b | (THead k _ _) 
-\Rightarrow (match k with [(Bind b0) \Rightarrow b0 | (Flat _) \Rightarrow 
-b])])) in (let TMP_335 \def (Bind b) in (let TMP_336 \def (S O) in (let 
-TMP_337 \def (lift TMP_336 O t0) in (let TMP_338 \def (THead TMP_335 u 
-TMP_337) in (let TMP_339 \def (Bind Abbr) in (let TMP_340 \def (THead TMP_339 
-u1 t1) in (let H5 \def (f_equal T B TMP_334 TMP_338 TMP_340 H4) in (let 
-TMP_341 \def (\lambda (e: T).(match e with [(TSort _) \Rightarrow u | (TLRef 
-_) \Rightarrow u | (THead _ t _) \Rightarrow t])) in (let TMP_342 \def (Bind 
-b) in (let TMP_343 \def (S O) in (let TMP_344 \def (lift TMP_343 O t0) in 
-(let TMP_345 \def (THead TMP_342 u TMP_344) in (let TMP_346 \def (Bind Abbr) 
-in (let TMP_347 \def (THead TMP_346 u1 t1) in (let H6 \def (f_equal T T 
-TMP_341 TMP_345 TMP_347 H4) in (let TMP_362 \def (\lambda (e: T).(match e 
-with [(TSort _) \Rightarrow (let TMP_361 \def (\lambda (x0: nat).(let TMP_360 
-\def (S O) in (plus x0 TMP_360))) in (lref_map TMP_361 O t0)) | (TLRef _) 
-\Rightarrow (let TMP_354 \def (\lambda (x0: nat).(let TMP_353 \def (S O) in 
-(plus x0 TMP_353))) in (lref_map TMP_354 O t0)) | (THead _ _ t) \Rightarrow 
-t])) in (let TMP_363 \def (Bind b) in (let TMP_364 \def (S O) in (let TMP_365 
-\def (lift TMP_364 O t0) in (let TMP_366 \def (THead TMP_363 u TMP_365) in 
-(let TMP_367 \def (Bind Abbr) in (let TMP_368 \def (THead TMP_367 u1 t1) in 
-(let H7 \def (f_equal T T TMP_362 TMP_366 TMP_368 H4) in (let TMP_425 \def 
-(\lambda (_: (eq T u u1)).(\lambda (H9: (eq B b Abbr)).(let TMP_370 \def 
-(\lambda (b0: B).(let TMP_369 \def (eq B b0 Abst) in (not TMP_369))) in (let 
-H10 \def (eq_ind B b TMP_370 H1 Abbr H9) in (let TMP_384 \def (\lambda (t: 
-T).((eq T t0 (THead (Bind Abbr) u1 t)) \to (let TMP_373 \def (\lambda (u2: 
-T).(\lambda (t3: T).(let TMP_371 \def (Bind Abbr) in (let TMP_372 \def (THead 
-TMP_371 u2 t3) in (eq T t2 TMP_372))))) in (let TMP_374 \def (\lambda (u2: 
-T).(\lambda (_: T).(pr0 u1 u2))) in (let TMP_379 \def (\lambda (u2: 
-T).(\lambda (t3: T).(let TMP_375 \def (pr0 t t3) in (let TMP_376 \def 
-(\lambda (y0: T).(pr0 t y0)) in (let TMP_377 \def (\lambda (y0: T).(subst0 O 
-u2 y0 t3)) in (let TMP_378 \def (ex2 T TMP_376 TMP_377) in (or TMP_375 
-TMP_378))))))) in (let TMP_380 \def (ex3_2 T T TMP_373 TMP_374 TMP_379) in 
-(let TMP_381 \def (S O) in (let TMP_382 \def (lift TMP_381 O t2) in (let 
-TMP_383 \def (pr0 t TMP_382) in (or TMP_380 TMP_383)))))))))) in (let TMP_385 
-\def (S O) in (let TMP_386 \def (lift TMP_385 O t0) in (let H11 \def 
-(eq_ind_r T t1 TMP_384 H3 TMP_386 H7) in (let TMP_387 \def (S O) in (let 
-TMP_388 \def (lift TMP_387 O t0) in (let TMP_402 \def (\lambda (t: T).(let 
-TMP_391 \def (\lambda (u2: T).(\lambda (t3: T).(let TMP_389 \def (Bind Abbr) 
-in (let TMP_390 \def (THead TMP_389 u2 t3) in (eq T t2 TMP_390))))) in (let 
-TMP_392 \def (\lambda (u2: T).(\lambda (_: T).(pr0 u1 u2))) in (let TMP_397 
-\def (\lambda (u2: T).(\lambda (t3: T).(let TMP_393 \def (pr0 t t3) in (let 
-TMP_394 \def (\lambda (y0: T).(pr0 t y0)) in (let TMP_395 \def (\lambda (y0: 
-T).(subst0 O u2 y0 t3)) in (let TMP_396 \def (ex2 T TMP_394 TMP_395) in (or 
-TMP_393 TMP_396))))))) in (let TMP_398 \def (ex3_2 T T TMP_391 TMP_392 
-TMP_397) in (let TMP_399 \def (S O) in (let TMP_400 \def (lift TMP_399 O t2) 
-in (let TMP_401 \def (pr0 t TMP_400) in (or TMP_398 TMP_401))))))))) in (let 
-TMP_405 \def (\lambda (u2: T).(\lambda (t3: T).(let TMP_403 \def (Bind Abbr) 
-in (let TMP_404 \def (THead TMP_403 u2 t3) in (eq T t2 TMP_404))))) in (let 
-TMP_406 \def (\lambda (u2: T).(\lambda (_: T).(pr0 u1 u2))) in (let TMP_415 
-\def (\lambda (u2: T).(\lambda (t3: T).(let TMP_407 \def (S O) in (let 
-TMP_408 \def (lift TMP_407 O t0) in (let TMP_409 \def (pr0 TMP_408 t3) in 
-(let TMP_412 \def (\lambda (y0: T).(let TMP_410 \def (S O) in (let TMP_411 
-\def (lift TMP_410 O t0) in (pr0 TMP_411 y0)))) in (let TMP_413 \def (\lambda 
-(y0: T).(subst0 O u2 y0 t3)) in (let TMP_414 \def (ex2 T TMP_412 TMP_413) in 
-(or TMP_409 TMP_414))))))))) in (let TMP_416 \def (ex3_2 T T TMP_405 TMP_406 
-TMP_415) in (let TMP_417 \def (S O) in (let TMP_418 \def (lift TMP_417 O t0) 
-in (let TMP_419 \def (S O) in (let TMP_420 \def (lift TMP_419 O t2) in (let 
-TMP_421 \def (pr0 TMP_418 TMP_420) in (let TMP_422 \def (S O) in (let TMP_423 
-\def (pr0_lift t0 t2 H2 TMP_422 O) in (let TMP_424 \def (or_intror TMP_416 
-TMP_421 TMP_423) in (eq_ind T TMP_388 TMP_402 TMP_424 t1 
-H7)))))))))))))))))))))))) in (let TMP_426 \def (TMP_425 H6) in (TMP_426 
-H5))))))))))))))))))))))))))))))))))) in (let TMP_447 \def (\lambda (t0: 
-T).(\lambda (t2: T).(\lambda (_: (pr0 t0 t2)).(\lambda (_: (((eq T t0 (THead 
-(Bind Abbr) u1 t1)) \to (or (ex3_2 T T (\lambda (u2: T).(\lambda (t3: T).(eq 
-T t2 (THead (Bind Abbr) u2 t3)))) (\lambda (u2: T).(\lambda (_: T).(pr0 u1 
-u2))) (\lambda (u2: T).(\lambda (t3: T).(or (pr0 t1 t3) (ex2 T (\lambda (y0: 
-T).(pr0 t1 y0)) (\lambda (y0: T).(subst0 O u2 y0 t3))))))) (pr0 t1 (lift (S 
-O) O t2)))))).(\lambda (u: T).(\lambda (H3: (eq T (THead (Flat Cast) u t0) 
-(THead (Bind Abbr) u1 t1))).(let TMP_428 \def (Flat Cast) in (let TMP_429 
-\def (THead TMP_428 u t0) in (let TMP_430 \def (\lambda (ee: T).(match ee 
-with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ 
-_) \Rightarrow (match k with [(Bind _) \Rightarrow False | (Flat _) 
-\Rightarrow True])])) in (let TMP_431 \def (Bind Abbr) in (let TMP_432 \def 
-(THead TMP_431 u1 t1) in (let H4 \def (eq_ind T TMP_429 TMP_430 I TMP_432 H3) 
-in (let TMP_435 \def (\lambda (u2: T).(\lambda (t3: T).(let TMP_433 \def 
-(Bind Abbr) in (let TMP_434 \def (THead TMP_433 u2 t3) in (eq T t2 
-TMP_434))))) in (let TMP_436 \def (\lambda (u2: T).(\lambda (_: T).(pr0 u1 
-u2))) in (let TMP_441 \def (\lambda (u2: T).(\lambda (t3: T).(let TMP_437 
-\def (pr0 t1 t3) in (let TMP_438 \def (\lambda (y0: T).(pr0 t1 y0)) in (let 
-TMP_439 \def (\lambda (y0: T).(subst0 O u2 y0 t3)) in (let TMP_440 \def (ex2 
-T TMP_438 TMP_439) in (or TMP_437 TMP_440))))))) in (let TMP_442 \def (ex3_2 
-T T TMP_435 TMP_436 TMP_441) in (let TMP_443 \def (S O) in (let TMP_444 \def 
-(lift TMP_443 O t2) in (let TMP_445 \def (pr0 t1 TMP_444) in (let TMP_446 
-\def (or TMP_442 TMP_445) in (False_ind TMP_446 H4))))))))))))))))))))) in 
-(pr0_ind TMP_31 TMP_91 TMP_191 TMP_217 TMP_251 TMP_333 TMP_427 TMP_447 y x 
-H0))))))))))) in (insert_eq T TMP_2 TMP_3 TMP_17 TMP_448 H))))))))).
+t2)))))).(\lambda (u: T).(\lambda (H3: (eq T (THead (Flat Cast) u t0) (THead 
+(Bind Abbr) u1 t1))).(let H4 \def (eq_ind T (THead (Flat Cast) u t0) (\lambda 
+(ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow 
+False | (THead k _ _) \Rightarrow (match k with [(Bind _) \Rightarrow False | 
+(Flat _) \Rightarrow True])])) I (THead (Bind Abbr) u1 t1) H3) in (False_ind 
+(or (ex3_2 T T (\lambda (u2: T).(\lambda (t3: T).(eq T t2 (THead (Bind Abbr) 
+u2 t3)))) (\lambda (u2: T).(\lambda (_: T).(pr0 u1 u2))) (\lambda (u2: 
+T).(\lambda (t3: T).(or (pr0 t1 t3) (ex2 T (\lambda (y0: T).(pr0 t1 y0)) 
+(\lambda (y0: T).(subst0 O u2 y0 t3))))))) (pr0 t1 (lift (S O) O t2))) 
+H4)))))))) y x H0))) H)))).
 
 theorem pr0_gen_void:
  \forall (u1: T).(\forall (t1: T).(\forall (x: T).((pr0 (THead (Bind Void) u1 
@@ -728,150 +365,88 @@ t1) x) \to (or (ex3_2 T T (\lambda (u2: T).(\lambda (t2: T).(eq T x (THead
 (_: T).(\lambda (t2: T).(pr0 t1 t2)))) (pr0 t1 (lift (S O) O x))))))
 \def
  \lambda (u1: T).(\lambda (t1: T).(\lambda (x: T).(\lambda (H: (pr0 (THead 
-(Bind Void) u1 t1) x)).(let TMP_1 \def (Bind Void) in (let TMP_2 \def (THead 
-TMP_1 u1 t1) in (let TMP_3 \def (\lambda (t: T).(pr0 t x)) in (let TMP_13 
-\def (\lambda (_: T).(let TMP_6 \def (\lambda (u2: T).(\lambda (t2: T).(let 
-TMP_4 \def (Bind Void) in (let TMP_5 \def (THead TMP_4 u2 t2) in (eq T x 
-TMP_5))))) in (let TMP_7 \def (\lambda (u2: T).(\lambda (_: T).(pr0 u1 u2))) 
-in (let TMP_8 \def (\lambda (_: T).(\lambda (t2: T).(pr0 t1 t2))) in (let 
-TMP_9 \def (ex3_2 T T TMP_6 TMP_7 TMP_8) in (let TMP_10 \def (S O) in (let 
-TMP_11 \def (lift TMP_10 O x) in (let TMP_12 \def (pr0 t1 TMP_11) in (or 
-TMP_9 TMP_12))))))))) in (let TMP_310 \def (\lambda (y: T).(\lambda (H0: (pr0 
-y x)).(let TMP_23 \def (\lambda (t: T).(\lambda (t0: T).((eq T t (THead (Bind 
-Void) u1 t1)) \to (let TMP_16 \def (\lambda (u2: T).(\lambda (t2: T).(let 
-TMP_14 \def (Bind Void) in (let TMP_15 \def (THead TMP_14 u2 t2) in (eq T t0 
-TMP_15))))) in (let TMP_17 \def (\lambda (u2: T).(\lambda (_: T).(pr0 u1 
-u2))) in (let TMP_18 \def (\lambda (_: T).(\lambda (t2: T).(pr0 t1 t2))) in 
-(let TMP_19 \def (ex3_2 T T TMP_16 TMP_17 TMP_18) in (let TMP_20 \def (S O) 
-in (let TMP_21 \def (lift TMP_20 O t0) in (let TMP_22 \def (pr0 t1 TMP_21) in 
-(or TMP_19 TMP_22))))))))))) in (let TMP_66 \def (\lambda (t: T).(\lambda 
-(H1: (eq T t (THead (Bind Void) u1 t1))).(let TMP_24 \def (\lambda (e: T).e) 
-in (let TMP_25 \def (Bind Void) in (let TMP_26 \def (THead TMP_25 u1 t1) in 
-(let H2 \def (f_equal T T TMP_24 t TMP_26 H1) in (let TMP_27 \def (Bind Void) 
-in (let TMP_28 \def (THead TMP_27 u1 t1) in (let TMP_38 \def (\lambda (t0: 
-T).(let TMP_31 \def (\lambda (u2: T).(\lambda (t2: T).(let TMP_29 \def (Bind 
-Void) in (let TMP_30 \def (THead TMP_29 u2 t2) in (eq T t0 TMP_30))))) in 
-(let TMP_32 \def (\lambda (u2: T).(\lambda (_: T).(pr0 u1 u2))) in (let 
-TMP_33 \def (\lambda (_: T).(\lambda (t2: T).(pr0 t1 t2))) in (let TMP_34 
-\def (ex3_2 T T TMP_31 TMP_32 TMP_33) in (let TMP_35 \def (S O) in (let 
-TMP_36 \def (lift TMP_35 O t0) in (let TMP_37 \def (pr0 t1 TMP_36) in (or 
-TMP_34 TMP_37))))))))) in (let TMP_43 \def (\lambda (u2: T).(\lambda (t2: 
-T).(let TMP_39 \def (Bind Void) in (let TMP_40 \def (THead TMP_39 u1 t1) in 
-(let TMP_41 \def (Bind Void) in (let TMP_42 \def (THead TMP_41 u2 t2) in (eq 
-T TMP_40 TMP_42))))))) in (let TMP_44 \def (\lambda (u2: T).(\lambda (_: 
-T).(pr0 u1 u2))) in (let TMP_45 \def (\lambda (_: T).(\lambda (t2: T).(pr0 t1 
-t2))) in (let TMP_46 \def (ex3_2 T T TMP_43 TMP_44 TMP_45) in (let TMP_47 
-\def (S O) in (let TMP_48 \def (Bind Void) in (let TMP_49 \def (THead TMP_48 
-u1 t1) in (let TMP_50 \def (lift TMP_47 O TMP_49) in (let TMP_51 \def (pr0 t1 
-TMP_50) in (let TMP_56 \def (\lambda (u2: T).(\lambda (t2: T).(let TMP_52 
-\def (Bind Void) in (let TMP_53 \def (THead TMP_52 u1 t1) in (let TMP_54 \def 
-(Bind Void) in (let TMP_55 \def (THead TMP_54 u2 t2) in (eq T TMP_53 
-TMP_55))))))) in (let TMP_57 \def (\lambda (u2: T).(\lambda (_: T).(pr0 u1 
-u2))) in (let TMP_58 \def (\lambda (_: T).(\lambda (t2: T).(pr0 t1 t2))) in 
-(let TMP_59 \def (Bind Void) in (let TMP_60 \def (THead TMP_59 u1 t1) in (let 
-TMP_61 \def (refl_equal T TMP_60) in (let TMP_62 \def (pr0_refl u1) in (let 
-TMP_63 \def (pr0_refl t1) in (let TMP_64 \def (ex3_2_intro T T TMP_56 TMP_57 
-TMP_58 u1 t1 TMP_61 TMP_62 TMP_63) in (let TMP_65 \def (or_introl TMP_46 
-TMP_51 TMP_64) in (eq_ind_r T TMP_28 TMP_38 TMP_65 t 
-H2))))))))))))))))))))))))))))) in (let TMP_141 \def (\lambda (u0: 
-T).(\lambda (u2: T).(\lambda (H1: (pr0 u0 u2)).(\lambda (H2: (((eq T u0 
-(THead (Bind Void) u1 t1)) \to (or (ex3_2 T T (\lambda (u3: T).(\lambda (t2: 
-T).(eq T u2 (THead (Bind Void) u3 t2)))) (\lambda (u3: T).(\lambda (_: 
-T).(pr0 u1 u3))) (\lambda (_: T).(\lambda (t2: T).(pr0 t1 t2)))) (pr0 t1 
-(lift (S O) O u2)))))).(\lambda (t0: T).(\lambda (t2: T).(\lambda (H3: (pr0 
-t0 t2)).(\lambda (H4: (((eq T t0 (THead (Bind Void) u1 t1)) \to (or (ex3_2 T 
-T (\lambda (u3: T).(\lambda (t3: T).(eq T t2 (THead (Bind Void) u3 t3)))) 
+(Bind Void) u1 t1) x)).(insert_eq T (THead (Bind Void) u1 t1) (\lambda (t: 
+T).(pr0 t x)) (\lambda (_: T).(or (ex3_2 T T (\lambda (u2: T).(\lambda (t2: 
+T).(eq T x (THead (Bind Void) u2 t2)))) (\lambda (u2: T).(\lambda (_: T).(pr0 
+u1 u2))) (\lambda (_: T).(\lambda (t2: T).(pr0 t1 t2)))) (pr0 t1 (lift (S O) 
+O x)))) (\lambda (y: T).(\lambda (H0: (pr0 y x)).(pr0_ind (\lambda (t: 
+T).(\lambda (t0: T).((eq T t (THead (Bind Void) u1 t1)) \to (or (ex3_2 T T 
+(\lambda (u2: T).(\lambda (t2: T).(eq T t0 (THead (Bind Void) u2 t2)))) 
+(\lambda (u2: T).(\lambda (_: T).(pr0 u1 u2))) (\lambda (_: T).(\lambda (t2: 
+T).(pr0 t1 t2)))) (pr0 t1 (lift (S O) O t0)))))) (\lambda (t: T).(\lambda 
+(H1: (eq T t (THead (Bind Void) u1 t1))).(let H2 \def (f_equal T T (\lambda 
+(e: T).e) t (THead (Bind Void) u1 t1) H1) in (eq_ind_r T (THead (Bind Void) 
+u1 t1) (\lambda (t0: T).(or (ex3_2 T T (\lambda (u2: T).(\lambda (t2: T).(eq 
+T t0 (THead (Bind Void) u2 t2)))) (\lambda (u2: T).(\lambda (_: T).(pr0 u1 
+u2))) (\lambda (_: T).(\lambda (t2: T).(pr0 t1 t2)))) (pr0 t1 (lift (S O) O 
+t0)))) (or_introl (ex3_2 T T (\lambda (u2: T).(\lambda (t2: T).(eq T (THead 
+(Bind Void) u1 t1) (THead (Bind Void) u2 t2)))) (\lambda (u2: T).(\lambda (_: 
+T).(pr0 u1 u2))) (\lambda (_: T).(\lambda (t2: T).(pr0 t1 t2)))) (pr0 t1 
+(lift (S O) O (THead (Bind Void) u1 t1))) (ex3_2_intro T T (\lambda (u2: 
+T).(\lambda (t2: T).(eq T (THead (Bind Void) u1 t1) (THead (Bind Void) u2 
+t2)))) (\lambda (u2: T).(\lambda (_: T).(pr0 u1 u2))) (\lambda (_: 
+T).(\lambda (t2: T).(pr0 t1 t2))) u1 t1 (refl_equal T (THead (Bind Void) u1 
+t1)) (pr0_refl u1) (pr0_refl t1))) t H2)))) (\lambda (u0: T).(\lambda (u2: 
+T).(\lambda (H1: (pr0 u0 u2)).(\lambda (H2: (((eq T u0 (THead (Bind Void) u1 
+t1)) \to (or (ex3_2 T T (\lambda (u3: T).(\lambda (t2: T).(eq T u2 (THead 
+(Bind Void) u3 t2)))) (\lambda (u3: T).(\lambda (_: T).(pr0 u1 u3))) (\lambda 
+(_: T).(\lambda (t2: T).(pr0 t1 t2)))) (pr0 t1 (lift (S O) O 
+u2)))))).(\lambda (t0: T).(\lambda (t2: T).(\lambda (H3: (pr0 t0 
+t2)).(\lambda (H4: (((eq T t0 (THead (Bind Void) u1 t1)) \to (or (ex3_2 T T 
+(\lambda (u3: T).(\lambda (t3: T).(eq T t2 (THead (Bind Void) u3 t3)))) 
 (\lambda (u3: T).(\lambda (_: T).(pr0 u1 u3))) (\lambda (_: T).(\lambda (t3: 
 T).(pr0 t1 t3)))) (pr0 t1 (lift (S O) O t2)))))).(\lambda (k: K).(\lambda 
-(H5: (eq T (THead k u0 t0) (THead (Bind Void) u1 t1))).(let TMP_67 \def 
-(\lambda (e: T).(match e with [(TSort _) \Rightarrow k | (TLRef _) 
-\Rightarrow k | (THead k0 _ _) \Rightarrow k0])) in (let TMP_68 \def (THead k 
-u0 t0) in (let TMP_69 \def (Bind Void) in (let TMP_70 \def (THead TMP_69 u1 
-t1) in (let H6 \def (f_equal T K TMP_67 TMP_68 TMP_70 H5) in (let TMP_71 \def 
-(\lambda (e: T).(match e with [(TSort _) \Rightarrow u0 | (TLRef _) 
-\Rightarrow u0 | (THead _ t _) \Rightarrow t])) in (let TMP_72 \def (THead k 
-u0 t0) in (let TMP_73 \def (Bind Void) in (let TMP_74 \def (THead TMP_73 u1 
-t1) in (let H7 \def (f_equal T T TMP_71 TMP_72 TMP_74 H5) in (let TMP_75 \def 
-(\lambda (e: T).(match e with [(TSort _) \Rightarrow t0 | (TLRef _) 
-\Rightarrow t0 | (THead _ _ t) \Rightarrow t])) in (let TMP_76 \def (THead k 
-u0 t0) in (let TMP_77 \def (Bind Void) in (let TMP_78 \def (THead TMP_77 u1 
-t1) in (let H8 \def (f_equal T T TMP_75 TMP_76 TMP_78 H5) in (let TMP_139 
-\def (\lambda (H9: (eq T u0 u1)).(\lambda (H10: (eq K k (Bind Void))).(let 
-TMP_79 \def (Bind Void) in (let TMP_91 \def (\lambda (k0: K).(let TMP_83 \def 
-(\lambda (u3: T).(\lambda (t3: T).(let TMP_80 \def (THead k0 u2 t2) in (let 
-TMP_81 \def (Bind Void) in (let TMP_82 \def (THead TMP_81 u3 t3) in (eq T 
-TMP_80 TMP_82)))))) in (let TMP_84 \def (\lambda (u3: T).(\lambda (_: T).(pr0 
-u1 u3))) in (let TMP_85 \def (\lambda (_: T).(\lambda (t3: T).(pr0 t1 t3))) 
-in (let TMP_86 \def (ex3_2 T T TMP_83 TMP_84 TMP_85) in (let TMP_87 \def (S 
-O) in (let TMP_88 \def (THead k0 u2 t2) in (let TMP_89 \def (lift TMP_87 O 
-TMP_88) in (let TMP_90 \def (pr0 t1 TMP_89) in (or TMP_86 TMP_90)))))))))) in 
-(let TMP_101 \def (\lambda (t: T).((eq T t (THead (Bind Void) u1 t1)) \to 
-(let TMP_94 \def (\lambda (u3: T).(\lambda (t3: T).(let TMP_92 \def (Bind 
-Void) in (let TMP_93 \def (THead TMP_92 u3 t3) in (eq T t2 TMP_93))))) in 
-(let TMP_95 \def (\lambda (u3: T).(\lambda (_: T).(pr0 u1 u3))) in (let 
-TMP_96 \def (\lambda (_: T).(\lambda (t3: T).(pr0 t1 t3))) in (let TMP_97 
-\def (ex3_2 T T TMP_94 TMP_95 TMP_96) in (let TMP_98 \def (S O) in (let 
-TMP_99 \def (lift TMP_98 O t2) in (let TMP_100 \def (pr0 t1 TMP_99) in (or 
-TMP_97 TMP_100)))))))))) in (let H11 \def (eq_ind T t0 TMP_101 H4 t1 H8) in 
-(let TMP_102 \def (\lambda (t: T).(pr0 t t2)) in (let H12 \def (eq_ind T t0 
-TMP_102 H3 t1 H8) in (let TMP_112 \def (\lambda (t: T).((eq T t (THead (Bind 
-Void) u1 t1)) \to (let TMP_105 \def (\lambda (u3: T).(\lambda (t3: T).(let 
-TMP_103 \def (Bind Void) in (let TMP_104 \def (THead TMP_103 u3 t3) in (eq T 
-u2 TMP_104))))) in (let TMP_106 \def (\lambda (u3: T).(\lambda (_: T).(pr0 u1 
-u3))) in (let TMP_107 \def (\lambda (_: T).(\lambda (t3: T).(pr0 t1 t3))) in 
-(let TMP_108 \def (ex3_2 T T TMP_105 TMP_106 TMP_107) in (let TMP_109 \def (S 
-O) in (let TMP_110 \def (lift TMP_109 O u2) in (let TMP_111 \def (pr0 t1 
-TMP_110) in (or TMP_108 TMP_111)))))))))) in (let H13 \def (eq_ind T u0 
-TMP_112 H2 u1 H9) in (let TMP_113 \def (\lambda (t: T).(pr0 t u2)) in (let 
-H14 \def (eq_ind T u0 TMP_113 H1 u1 H9) in (let TMP_118 \def (\lambda (u3: 
-T).(\lambda (t3: T).(let TMP_114 \def (Bind Void) in (let TMP_115 \def (THead 
-TMP_114 u2 t2) in (let TMP_116 \def (Bind Void) in (let TMP_117 \def (THead 
-TMP_116 u3 t3) in (eq T TMP_115 TMP_117))))))) in (let TMP_119 \def (\lambda 
-(u3: T).(\lambda (_: T).(pr0 u1 u3))) in (let TMP_120 \def (\lambda (_: 
-T).(\lambda (t3: T).(pr0 t1 t3))) in (let TMP_121 \def (ex3_2 T T TMP_118 
-TMP_119 TMP_120) in (let TMP_122 \def (S O) in (let TMP_123 \def (Bind Void) 
-in (let TMP_124 \def (THead TMP_123 u2 t2) in (let TMP_125 \def (lift TMP_122 
-O TMP_124) in (let TMP_126 \def (pr0 t1 TMP_125) in (let TMP_131 \def 
-(\lambda (u3: T).(\lambda (t3: T).(let TMP_127 \def (Bind Void) in (let 
-TMP_128 \def (THead TMP_127 u2 t2) in (let TMP_129 \def (Bind Void) in (let 
-TMP_130 \def (THead TMP_129 u3 t3) in (eq T TMP_128 TMP_130))))))) in (let 
-TMP_132 \def (\lambda (u3: T).(\lambda (_: T).(pr0 u1 u3))) in (let TMP_133 
-\def (\lambda (_: T).(\lambda (t3: T).(pr0 t1 t3))) in (let TMP_134 \def 
-(Bind Void) in (let TMP_135 \def (THead TMP_134 u2 t2) in (let TMP_136 \def 
-(refl_equal T TMP_135) in (let TMP_137 \def (ex3_2_intro T T TMP_131 TMP_132 
-TMP_133 u2 t2 TMP_136 H14 H12) in (let TMP_138 \def (or_introl TMP_121 
-TMP_126 TMP_137) in (eq_ind_r K TMP_79 TMP_91 TMP_138 k 
-H10)))))))))))))))))))))))))))))) in (let TMP_140 \def (TMP_139 H7) in 
-(TMP_140 H6)))))))))))))))))))))))))))) in (let TMP_163 \def (\lambda (u: 
-T).(\lambda (v1: T).(\lambda (v2: T).(\lambda (_: (pr0 v1 v2)).(\lambda (_: 
-(((eq T v1 (THead (Bind Void) u1 t1)) \to (or (ex3_2 T T (\lambda (u2: 
-T).(\lambda (t2: T).(eq T v2 (THead (Bind Void) u2 t2)))) (\lambda (u2: 
-T).(\lambda (_: T).(pr0 u1 u2))) (\lambda (_: T).(\lambda (t2: T).(pr0 t1 
-t2)))) (pr0 t1 (lift (S O) O v2)))))).(\lambda (t0: T).(\lambda (t2: 
-T).(\lambda (_: (pr0 t0 t2)).(\lambda (_: (((eq T t0 (THead (Bind Void) u1 
-t1)) \to (or (ex3_2 T T (\lambda (u2: T).(\lambda (t3: T).(eq T t2 (THead 
-(Bind Void) u2 t3)))) (\lambda (u2: T).(\lambda (_: T).(pr0 u1 u2))) (\lambda 
-(_: T).(\lambda (t3: T).(pr0 t1 t3)))) (pr0 t1 (lift (S O) O 
-t2)))))).(\lambda (H5: (eq T (THead (Flat Appl) v1 (THead (Bind Abst) u t0)) 
-(THead (Bind Void) u1 t1))).(let TMP_142 \def (Flat Appl) in (let TMP_143 
-\def (Bind Abst) in (let TMP_144 \def (THead TMP_143 u t0) in (let TMP_145 
-\def (THead TMP_142 v1 TMP_144) in (let TMP_146 \def (\lambda (ee: T).(match 
-ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | (THead k 
-_ _) \Rightarrow (match k with [(Bind _) \Rightarrow False | (Flat _) 
-\Rightarrow True])])) in (let TMP_147 \def (Bind Void) in (let TMP_148 \def 
-(THead TMP_147 u1 t1) in (let H6 \def (eq_ind T TMP_145 TMP_146 I TMP_148 H5) 
-in (let TMP_153 \def (\lambda (u2: T).(\lambda (t3: T).(let TMP_149 \def 
-(Bind Abbr) in (let TMP_150 \def (THead TMP_149 v2 t2) in (let TMP_151 \def 
-(Bind Void) in (let TMP_152 \def (THead TMP_151 u2 t3) in (eq T TMP_150 
-TMP_152))))))) in (let TMP_154 \def (\lambda (u2: T).(\lambda (_: T).(pr0 u1 
-u2))) in (let TMP_155 \def (\lambda (_: T).(\lambda (t3: T).(pr0 t1 t3))) in 
-(let TMP_156 \def (ex3_2 T T TMP_153 TMP_154 TMP_155) in (let TMP_157 \def (S 
-O) in (let TMP_158 \def (Bind Abbr) in (let TMP_159 \def (THead TMP_158 v2 
-t2) in (let TMP_160 \def (lift TMP_157 O TMP_159) in (let TMP_161 \def (pr0 
-t1 TMP_160) in (let TMP_162 \def (or TMP_156 TMP_161) in (False_ind TMP_162 
-H6))))))))))))))))))))))))))))) in (let TMP_193 \def (\lambda (b: B).(\lambda 
-(_: (not (eq B b Abst))).(\lambda (v1: T).(\lambda (v2: T).(\lambda (_: (pr0 
-v1 v2)).(\lambda (_: (((eq T v1 (THead (Bind Void) u1 t1)) \to (or (ex3_2 T T 
+(H5: (eq T (THead k u0 t0) (THead (Bind Void) u1 t1))).(let H6 \def (f_equal 
+T K (\lambda (e: T).(match e with [(TSort _) \Rightarrow k | (TLRef _) 
+\Rightarrow k | (THead k0 _ _) \Rightarrow k0])) (THead k u0 t0) (THead (Bind 
+Void) u1 t1) H5) in ((let H7 \def (f_equal T T (\lambda (e: T).(match e with 
+[(TSort _) \Rightarrow u0 | (TLRef _) \Rightarrow u0 | (THead _ t _) 
+\Rightarrow t])) (THead k u0 t0) (THead (Bind Void) u1 t1) H5) in ((let H8 
+\def (f_equal T T (\lambda (e: T).(match e with [(TSort _) \Rightarrow t0 | 
+(TLRef _) \Rightarrow t0 | (THead _ _ t) \Rightarrow t])) (THead k u0 t0) 
+(THead (Bind Void) u1 t1) H5) in (\lambda (H9: (eq T u0 u1)).(\lambda (H10: 
+(eq K k (Bind Void))).(eq_ind_r K (Bind Void) (\lambda (k0: K).(or (ex3_2 T T 
+(\lambda (u3: T).(\lambda (t3: T).(eq T (THead k0 u2 t2) (THead (Bind Void) 
+u3 t3)))) (\lambda (u3: T).(\lambda (_: T).(pr0 u1 u3))) (\lambda (_: 
+T).(\lambda (t3: T).(pr0 t1 t3)))) (pr0 t1 (lift (S O) O (THead k0 u2 t2))))) 
+(let H11 \def (eq_ind T t0 (\lambda (t: T).((eq T t (THead (Bind Void) u1 
+t1)) \to (or (ex3_2 T T (\lambda (u3: T).(\lambda (t3: T).(eq T t2 (THead 
+(Bind Void) u3 t3)))) (\lambda (u3: T).(\lambda (_: T).(pr0 u1 u3))) (\lambda 
+(_: T).(\lambda (t3: T).(pr0 t1 t3)))) (pr0 t1 (lift (S O) O t2))))) H4 t1 
+H8) in (let H12 \def (eq_ind T t0 (\lambda (t: T).(pr0 t t2)) H3 t1 H8) in 
+(let H13 \def (eq_ind T u0 (\lambda (t: T).((eq T t (THead (Bind Void) u1 
+t1)) \to (or (ex3_2 T T (\lambda (u3: T).(\lambda (t3: T).(eq T u2 (THead 
+(Bind Void) u3 t3)))) (\lambda (u3: T).(\lambda (_: T).(pr0 u1 u3))) (\lambda 
+(_: T).(\lambda (t3: T).(pr0 t1 t3)))) (pr0 t1 (lift (S O) O u2))))) H2 u1 
+H9) in (let H14 \def (eq_ind T u0 (\lambda (t: T).(pr0 t u2)) H1 u1 H9) in 
+(or_introl (ex3_2 T T (\lambda (u3: T).(\lambda (t3: T).(eq T (THead (Bind 
+Void) u2 t2) (THead (Bind Void) u3 t3)))) (\lambda (u3: T).(\lambda (_: 
+T).(pr0 u1 u3))) (\lambda (_: T).(\lambda (t3: T).(pr0 t1 t3)))) (pr0 t1 
+(lift (S O) O (THead (Bind Void) u2 t2))) (ex3_2_intro T T (\lambda (u3: 
+T).(\lambda (t3: T).(eq T (THead (Bind Void) u2 t2) (THead (Bind Void) u3 
+t3)))) (\lambda (u3: T).(\lambda (_: T).(pr0 u1 u3))) (\lambda (_: 
+T).(\lambda (t3: T).(pr0 t1 t3))) u2 t2 (refl_equal T (THead (Bind Void) u2 
+t2)) H14 H12)))))) k H10)))) H7)) H6)))))))))))) (\lambda (u: T).(\lambda 
+(v1: T).(\lambda (v2: T).(\lambda (_: (pr0 v1 v2)).(\lambda (_: (((eq T v1 
+(THead (Bind Void) u1 t1)) \to (or (ex3_2 T T (\lambda (u2: T).(\lambda (t2: 
+T).(eq T v2 (THead (Bind Void) u2 t2)))) (\lambda (u2: T).(\lambda (_: 
+T).(pr0 u1 u2))) (\lambda (_: T).(\lambda (t2: T).(pr0 t1 t2)))) (pr0 t1 
+(lift (S O) O v2)))))).(\lambda (t0: T).(\lambda (t2: T).(\lambda (_: (pr0 t0 
+t2)).(\lambda (_: (((eq T t0 (THead (Bind Void) u1 t1)) \to (or (ex3_2 T T 
+(\lambda (u2: T).(\lambda (t3: T).(eq T t2 (THead (Bind Void) u2 t3)))) 
+(\lambda (u2: T).(\lambda (_: T).(pr0 u1 u2))) (\lambda (_: T).(\lambda (t3: 
+T).(pr0 t1 t3)))) (pr0 t1 (lift (S O) O t2)))))).(\lambda (H5: (eq T (THead 
+(Flat Appl) v1 (THead (Bind Abst) u t0)) (THead (Bind Void) u1 t1))).(let H6 
+\def (eq_ind T (THead (Flat Appl) v1 (THead (Bind Abst) u t0)) (\lambda (ee: 
+T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False 
+| (THead k _ _) \Rightarrow (match k with [(Bind _) \Rightarrow False | (Flat 
+_) \Rightarrow True])])) I (THead (Bind Void) u1 t1) H5) in (False_ind (or 
+(ex3_2 T T (\lambda (u2: T).(\lambda (t3: T).(eq T (THead (Bind Abbr) v2 t2) 
+(THead (Bind Void) u2 t3)))) (\lambda (u2: T).(\lambda (_: T).(pr0 u1 u2))) 
+(\lambda (_: T).(\lambda (t3: T).(pr0 t1 t3)))) (pr0 t1 (lift (S O) O (THead 
+(Bind Abbr) v2 t2)))) H6)))))))))))) (\lambda (b: B).(\lambda (_: (not (eq B 
+b Abst))).(\lambda (v1: T).(\lambda (v2: T).(\lambda (_: (pr0 v1 
+v2)).(\lambda (_: (((eq T v1 (THead (Bind Void) u1 t1)) \to (or (ex3_2 T T 
 (\lambda (u2: T).(\lambda (t2: T).(eq T v2 (THead (Bind Void) u2 t2)))) 
 (\lambda (u2: T).(\lambda (_: T).(pr0 u1 u2))) (\lambda (_: T).(\lambda (t2: 
 T).(pr0 t1 t2)))) (pr0 t1 (lift (S O) O v2)))))).(\lambda (u0: T).(\lambda 
@@ -884,132 +459,76 @@ u2)))))).(\lambda (t0: T).(\lambda (t2: T).(\lambda (_: (pr0 t0 t2)).(\lambda
 T).(\lambda (t3: T).(eq T t2 (THead (Bind Void) u3 t3)))) (\lambda (u3: 
 T).(\lambda (_: T).(pr0 u1 u3))) (\lambda (_: T).(\lambda (t3: T).(pr0 t1 
 t3)))) (pr0 t1 (lift (S O) O t2)))))).(\lambda (H8: (eq T (THead (Flat Appl) 
-v1 (THead (Bind b) u0 t0)) (THead (Bind Void) u1 t1))).(let TMP_164 \def 
-(Flat Appl) in (let TMP_165 \def (Bind b) in (let TMP_166 \def (THead TMP_165 
-u0 t0) in (let TMP_167 \def (THead TMP_164 v1 TMP_166) in (let TMP_168 \def 
-(\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) 
-\Rightarrow False | (THead k _ _) \Rightarrow (match k with [(Bind _) 
-\Rightarrow False | (Flat _) \Rightarrow True])])) in (let TMP_169 \def (Bind 
-Void) in (let TMP_170 \def (THead TMP_169 u1 t1) in (let H9 \def (eq_ind T 
-TMP_167 TMP_168 I TMP_170 H8) in (let TMP_179 \def (\lambda (u3: T).(\lambda 
-(t3: T).(let TMP_171 \def (Bind b) in (let TMP_172 \def (Flat Appl) in (let 
-TMP_173 \def (S O) in (let TMP_174 \def (lift TMP_173 O v2) in (let TMP_175 
-\def (THead TMP_172 TMP_174 t2) in (let TMP_176 \def (THead TMP_171 u2 
-TMP_175) in (let TMP_177 \def (Bind Void) in (let TMP_178 \def (THead TMP_177 
-u3 t3) in (eq T TMP_176 TMP_178))))))))))) in (let TMP_180 \def (\lambda (u3: 
-T).(\lambda (_: T).(pr0 u1 u3))) in (let TMP_181 \def (\lambda (_: 
-T).(\lambda (t3: T).(pr0 t1 t3))) in (let TMP_182 \def (ex3_2 T T TMP_179 
-TMP_180 TMP_181) in (let TMP_183 \def (S O) in (let TMP_184 \def (Bind b) in 
-(let TMP_185 \def (Flat Appl) in (let TMP_186 \def (S O) in (let TMP_187 \def 
-(lift TMP_186 O v2) in (let TMP_188 \def (THead TMP_185 TMP_187 t2) in (let 
-TMP_189 \def (THead TMP_184 u2 TMP_188) in (let TMP_190 \def (lift TMP_183 O 
-TMP_189) in (let TMP_191 \def (pr0 t1 TMP_190) in (let TMP_192 \def (or 
-TMP_182 TMP_191) in (False_ind TMP_192 
-H9)))))))))))))))))))))))))))))))))))))) in (let TMP_213 \def (\lambda (u0: 
-T).(\lambda (u2: T).(\lambda (_: (pr0 u0 u2)).(\lambda (_: (((eq T u0 (THead 
-(Bind Void) u1 t1)) \to (or (ex3_2 T T (\lambda (u3: T).(\lambda (t2: T).(eq 
-T u2 (THead (Bind Void) u3 t2)))) (\lambda (u3: T).(\lambda (_: T).(pr0 u1 
-u3))) (\lambda (_: T).(\lambda (t2: T).(pr0 t1 t2)))) (pr0 t1 (lift (S O) O 
-u2)))))).(\lambda (t0: T).(\lambda (t2: T).(\lambda (_: (pr0 t0 t2)).(\lambda 
-(_: (((eq T t0 (THead (Bind Void) u1 t1)) \to (or (ex3_2 T T (\lambda (u3: 
-T).(\lambda (t3: T).(eq T t2 (THead (Bind Void) u3 t3)))) (\lambda (u3: 
-T).(\lambda (_: T).(pr0 u1 u3))) (\lambda (_: T).(\lambda (t3: T).(pr0 t1 
-t3)))) (pr0 t1 (lift (S O) O t2)))))).(\lambda (w: T).(\lambda (_: (subst0 O 
-u2 t2 w)).(\lambda (H6: (eq T (THead (Bind Abbr) u0 t0) (THead (Bind Void) u1 
-t1))).(let TMP_194 \def (Bind Abbr) in (let TMP_195 \def (THead TMP_194 u0 
-t0) in (let TMP_196 \def (\lambda (ee: T).(match ee with [(TSort _) 
+v1 (THead (Bind b) u0 t0)) (THead (Bind Void) u1 t1))).(let H9 \def (eq_ind T 
+(THead (Flat Appl) v1 (THead (Bind b) u0 t0)) (\lambda (ee: T).(match ee with 
+[(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _) 
+\Rightarrow (match k with [(Bind _) \Rightarrow False | (Flat _) \Rightarrow 
+True])])) I (THead (Bind Void) u1 t1) H8) in (False_ind (or (ex3_2 T T 
+(\lambda (u3: T).(\lambda (t3: T).(eq T (THead (Bind b) u2 (THead (Flat Appl) 
+(lift (S O) O v2) t2)) (THead (Bind Void) u3 t3)))) (\lambda (u3: T).(\lambda 
+(_: T).(pr0 u1 u3))) (\lambda (_: T).(\lambda (t3: T).(pr0 t1 t3)))) (pr0 t1 
+(lift (S O) O (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t2))))) 
+H9))))))))))))))))) (\lambda (u0: T).(\lambda (u2: T).(\lambda (_: (pr0 u0 
+u2)).(\lambda (_: (((eq T u0 (THead (Bind Void) u1 t1)) \to (or (ex3_2 T T 
+(\lambda (u3: T).(\lambda (t2: T).(eq T u2 (THead (Bind Void) u3 t2)))) 
+(\lambda (u3: T).(\lambda (_: T).(pr0 u1 u3))) (\lambda (_: T).(\lambda (t2: 
+T).(pr0 t1 t2)))) (pr0 t1 (lift (S O) O u2)))))).(\lambda (t0: T).(\lambda 
+(t2: T).(\lambda (_: (pr0 t0 t2)).(\lambda (_: (((eq T t0 (THead (Bind Void) 
+u1 t1)) \to (or (ex3_2 T T (\lambda (u3: T).(\lambda (t3: T).(eq T t2 (THead 
+(Bind Void) u3 t3)))) (\lambda (u3: T).(\lambda (_: T).(pr0 u1 u3))) (\lambda 
+(_: T).(\lambda (t3: T).(pr0 t1 t3)))) (pr0 t1 (lift (S O) O 
+t2)))))).(\lambda (w: T).(\lambda (_: (subst0 O u2 t2 w)).(\lambda (H6: (eq T 
+(THead (Bind Abbr) u0 t0) (THead (Bind Void) u1 t1))).(let H7 \def (eq_ind T 
+(THead (Bind Abbr) u0 t0) (\lambda (ee: T).(match ee with [(TSort _) 
 \Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow 
 (match k with [(Bind b) \Rightarrow (match b with [Abbr \Rightarrow True | 
 Abst \Rightarrow False | Void \Rightarrow False]) | (Flat _) \Rightarrow 
-False])])) in (let TMP_197 \def (Bind Void) in (let TMP_198 \def (THead 
-TMP_197 u1 t1) in (let H7 \def (eq_ind T TMP_195 TMP_196 I TMP_198 H6) in 
-(let TMP_203 \def (\lambda (u3: T).(\lambda (t3: T).(let TMP_199 \def (Bind 
-Abbr) in (let TMP_200 \def (THead TMP_199 u2 w) in (let TMP_201 \def (Bind 
-Void) in (let TMP_202 \def (THead TMP_201 u3 t3) in (eq T TMP_200 
-TMP_202))))))) in (let TMP_204 \def (\lambda (u3: T).(\lambda (_: T).(pr0 u1 
-u3))) in (let TMP_205 \def (\lambda (_: T).(\lambda (t3: T).(pr0 t1 t3))) in 
-(let TMP_206 \def (ex3_2 T T TMP_203 TMP_204 TMP_205) in (let TMP_207 \def (S 
-O) in (let TMP_208 \def (Bind Abbr) in (let TMP_209 \def (THead TMP_208 u2 w) 
-in (let TMP_210 \def (lift TMP_207 O TMP_209) in (let TMP_211 \def (pr0 t1 
-TMP_210) in (let TMP_212 \def (or TMP_206 TMP_211) in (False_ind TMP_212 
-H7)))))))))))))))))))))))))))) in (let TMP_293 \def (\lambda (b: B).(\lambda 
-(H1: (not (eq B b Abst))).(\lambda (t0: T).(\lambda (t2: T).(\lambda (H2: 
-(pr0 t0 t2)).(\lambda (H3: (((eq T t0 (THead (Bind Void) u1 t1)) \to (or 
+False])])) I (THead (Bind Void) u1 t1) H6) in (False_ind (or (ex3_2 T T 
+(\lambda (u3: T).(\lambda (t3: T).(eq T (THead (Bind Abbr) u2 w) (THead (Bind 
+Void) u3 t3)))) (\lambda (u3: T).(\lambda (_: T).(pr0 u1 u3))) (\lambda (_: 
+T).(\lambda (t3: T).(pr0 t1 t3)))) (pr0 t1 (lift (S O) O (THead (Bind Abbr) 
+u2 w)))) H7))))))))))))) (\lambda (b: B).(\lambda (H1: (not (eq B b 
+Abst))).(\lambda (t0: T).(\lambda (t2: T).(\lambda (H2: (pr0 t0 t2)).(\lambda 
+(H3: (((eq T t0 (THead (Bind Void) u1 t1)) \to (or (ex3_2 T T (\lambda (u2: 
+T).(\lambda (t3: T).(eq T t2 (THead (Bind Void) u2 t3)))) (\lambda (u2: 
+T).(\lambda (_: T).(pr0 u1 u2))) (\lambda (_: T).(\lambda (t3: T).(pr0 t1 
+t3)))) (pr0 t1 (lift (S O) O t2)))))).(\lambda (u: T).(\lambda (H4: (eq T 
+(THead (Bind b) u (lift (S O) O t0)) (THead (Bind Void) u1 t1))).(let H5 \def 
+(f_equal T B (\lambda (e: T).(match e with [(TSort _) \Rightarrow b | (TLRef 
+_) \Rightarrow b | (THead k _ _) \Rightarrow (match k with [(Bind b0) 
+\Rightarrow b0 | (Flat _) \Rightarrow b])])) (THead (Bind b) u (lift (S O) O 
+t0)) (THead (Bind Void) u1 t1) H4) in ((let H6 \def (f_equal T T (\lambda (e: 
+T).(match e with [(TSort _) \Rightarrow u | (TLRef _) \Rightarrow u | (THead 
+_ t _) \Rightarrow t])) (THead (Bind b) u (lift (S O) O t0)) (THead (Bind 
+Void) u1 t1) H4) in ((let H7 \def (f_equal T T (\lambda (e: T).(match e with 
+[(TSort _) \Rightarrow (lref_map (\lambda (x0: nat).(plus x0 (S O))) O t0) | 
+(TLRef _) \Rightarrow (lref_map (\lambda (x0: nat).(plus x0 (S O))) O t0) | 
+(THead _ _ t) \Rightarrow t])) (THead (Bind b) u (lift (S O) O t0)) (THead 
+(Bind Void) u1 t1) H4) in (\lambda (_: (eq T u u1)).(\lambda (H9: (eq B b 
+Void)).(let H10 \def (eq_ind B b (\lambda (b0: B).(not (eq B b0 Abst))) H1 
+Void H9) in (let H11 \def (eq_ind_r T t1 (\lambda (t: T).((eq T t0 (THead 
+(Bind Void) u1 t)) \to (or (ex3_2 T T (\lambda (u2: T).(\lambda (t3: T).(eq T 
+t2 (THead (Bind Void) u2 t3)))) (\lambda (u2: T).(\lambda (_: T).(pr0 u1 
+u2))) (\lambda (_: T).(\lambda (t3: T).(pr0 t t3)))) (pr0 t (lift (S O) O 
+t2))))) H3 (lift (S O) O t0) H7) in (eq_ind T (lift (S O) O t0) (\lambda (t: 
+T).(or (ex3_2 T T (\lambda (u2: T).(\lambda (t3: T).(eq T t2 (THead (Bind 
+Void) u2 t3)))) (\lambda (u2: T).(\lambda (_: T).(pr0 u1 u2))) (\lambda (_: 
+T).(\lambda (t3: T).(pr0 t t3)))) (pr0 t (lift (S O) O t2)))) (or_intror 
 (ex3_2 T T (\lambda (u2: T).(\lambda (t3: T).(eq T t2 (THead (Bind Void) u2 
 t3)))) (\lambda (u2: T).(\lambda (_: T).(pr0 u1 u2))) (\lambda (_: 
-T).(\lambda (t3: T).(pr0 t1 t3)))) (pr0 t1 (lift (S O) O t2)))))).(\lambda 
-(u: T).(\lambda (H4: (eq T (THead (Bind b) u (lift (S O) O t0)) (THead (Bind 
-Void) u1 t1))).(let TMP_214 \def (\lambda (e: T).(match e with [(TSort _) 
-\Rightarrow b | (TLRef _) \Rightarrow b | (THead k _ _) \Rightarrow (match k 
-with [(Bind b0) \Rightarrow b0 | (Flat _) \Rightarrow b])])) in (let TMP_215 
-\def (Bind b) in (let TMP_216 \def (S O) in (let TMP_217 \def (lift TMP_216 O 
-t0) in (let TMP_218 \def (THead TMP_215 u TMP_217) in (let TMP_219 \def (Bind 
-Void) in (let TMP_220 \def (THead TMP_219 u1 t1) in (let H5 \def (f_equal T B 
-TMP_214 TMP_218 TMP_220 H4) in (let TMP_221 \def (\lambda (e: T).(match e 
-with [(TSort _) \Rightarrow u | (TLRef _) \Rightarrow u | (THead _ t _) 
-\Rightarrow t])) in (let TMP_222 \def (Bind b) in (let TMP_223 \def (S O) in 
-(let TMP_224 \def (lift TMP_223 O t0) in (let TMP_225 \def (THead TMP_222 u 
-TMP_224) in (let TMP_226 \def (Bind Void) in (let TMP_227 \def (THead TMP_226 
-u1 t1) in (let H6 \def (f_equal T T TMP_221 TMP_225 TMP_227 H4) in (let 
-TMP_242 \def (\lambda (e: T).(match e with [(TSort _) \Rightarrow (let 
-TMP_241 \def (\lambda (x0: nat).(let TMP_240 \def (S O) in (plus x0 
-TMP_240))) in (lref_map TMP_241 O t0)) | (TLRef _) \Rightarrow (let TMP_234 
-\def (\lambda (x0: nat).(let TMP_233 \def (S O) in (plus x0 TMP_233))) in 
-(lref_map TMP_234 O t0)) | (THead _ _ t) \Rightarrow t])) in (let TMP_243 
-\def (Bind b) in (let TMP_244 \def (S O) in (let TMP_245 \def (lift TMP_244 O 
-t0) in (let TMP_246 \def (THead TMP_243 u TMP_245) in (let TMP_247 \def (Bind 
-Void) in (let TMP_248 \def (THead TMP_247 u1 t1) in (let H7 \def (f_equal T T 
-TMP_242 TMP_246 TMP_248 H4) in (let TMP_291 \def (\lambda (_: (eq T u 
-u1)).(\lambda (H9: (eq B b Void)).(let TMP_250 \def (\lambda (b0: B).(let 
-TMP_249 \def (eq B b0 Abst) in (not TMP_249))) in (let H10 \def (eq_ind B b 
-TMP_250 H1 Void H9) in (let TMP_260 \def (\lambda (t: T).((eq T t0 (THead 
-(Bind Void) u1 t)) \to (let TMP_253 \def (\lambda (u2: T).(\lambda (t3: 
-T).(let TMP_251 \def (Bind Void) in (let TMP_252 \def (THead TMP_251 u2 t3) 
-in (eq T t2 TMP_252))))) in (let TMP_254 \def (\lambda (u2: T).(\lambda (_: 
-T).(pr0 u1 u2))) in (let TMP_255 \def (\lambda (_: T).(\lambda (t3: T).(pr0 t 
-t3))) in (let TMP_256 \def (ex3_2 T T TMP_253 TMP_254 TMP_255) in (let 
-TMP_257 \def (S O) in (let TMP_258 \def (lift TMP_257 O t2) in (let TMP_259 
-\def (pr0 t TMP_258) in (or TMP_256 TMP_259)))))))))) in (let TMP_261 \def (S 
-O) in (let TMP_262 \def (lift TMP_261 O t0) in (let H11 \def (eq_ind_r T t1 
-TMP_260 H3 TMP_262 H7) in (let TMP_263 \def (S O) in (let TMP_264 \def (lift 
-TMP_263 O t0) in (let TMP_274 \def (\lambda (t: T).(let TMP_267 \def (\lambda 
-(u2: T).(\lambda (t3: T).(let TMP_265 \def (Bind Void) in (let TMP_266 \def 
-(THead TMP_265 u2 t3) in (eq T t2 TMP_266))))) in (let TMP_268 \def (\lambda 
-(u2: T).(\lambda (_: T).(pr0 u1 u2))) in (let TMP_269 \def (\lambda (_: 
-T).(\lambda (t3: T).(pr0 t t3))) in (let TMP_270 \def (ex3_2 T T TMP_267 
-TMP_268 TMP_269) in (let TMP_271 \def (S O) in (let TMP_272 \def (lift 
-TMP_271 O t2) in (let TMP_273 \def (pr0 t TMP_272) in (or TMP_270 
-TMP_273))))))))) in (let TMP_277 \def (\lambda (u2: T).(\lambda (t3: T).(let 
-TMP_275 \def (Bind Void) in (let TMP_276 \def (THead TMP_275 u2 t3) in (eq T 
-t2 TMP_276))))) in (let TMP_278 \def (\lambda (u2: T).(\lambda (_: T).(pr0 u1 
-u2))) in (let TMP_281 \def (\lambda (_: T).(\lambda (t3: T).(let TMP_279 \def 
-(S O) in (let TMP_280 \def (lift TMP_279 O t0) in (pr0 TMP_280 t3))))) in 
-(let TMP_282 \def (ex3_2 T T TMP_277 TMP_278 TMP_281) in (let TMP_283 \def (S 
-O) in (let TMP_284 \def (lift TMP_283 O t0) in (let TMP_285 \def (S O) in 
-(let TMP_286 \def (lift TMP_285 O t2) in (let TMP_287 \def (pr0 TMP_284 
-TMP_286) in (let TMP_288 \def (S O) in (let TMP_289 \def (pr0_lift t0 t2 H2 
-TMP_288 O) in (let TMP_290 \def (or_intror TMP_282 TMP_287 TMP_289) in 
-(eq_ind T TMP_264 TMP_274 TMP_290 t1 H7)))))))))))))))))))))))) in (let 
-TMP_292 \def (TMP_291 H6) in (TMP_292 H5))))))))))))))))))))))))))))))))))) 
-in (let TMP_309 \def (\lambda (t0: T).(\lambda (t2: T).(\lambda (_: (pr0 t0 
-t2)).(\lambda (_: (((eq T t0 (THead (Bind Void) u1 t1)) \to (or (ex3_2 T T 
-(\lambda (u2: T).(\lambda (t3: T).(eq T t2 (THead (Bind Void) u2 t3)))) 
-(\lambda (u2: T).(\lambda (_: T).(pr0 u1 u2))) (\lambda (_: T).(\lambda (t3: 
-T).(pr0 t1 t3)))) (pr0 t1 (lift (S O) O t2)))))).(\lambda (u: T).(\lambda 
-(H3: (eq T (THead (Flat Cast) u t0) (THead (Bind Void) u1 t1))).(let TMP_294 
-\def (Flat Cast) in (let TMP_295 \def (THead TMP_294 u t0) in (let TMP_296 
-\def (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) 
-\Rightarrow False | (THead k _ _) \Rightarrow (match k with [(Bind _) 
-\Rightarrow False | (Flat _) \Rightarrow True])])) in (let TMP_297 \def (Bind 
-Void) in (let TMP_298 \def (THead TMP_297 u1 t1) in (let H4 \def (eq_ind T 
-TMP_295 TMP_296 I TMP_298 H3) in (let TMP_301 \def (\lambda (u2: T).(\lambda 
-(t3: T).(let TMP_299 \def (Bind Void) in (let TMP_300 \def (THead TMP_299 u2 
-t3) in (eq T t2 TMP_300))))) in (let TMP_302 \def (\lambda (u2: T).(\lambda 
-(_: T).(pr0 u1 u2))) in (let TMP_303 \def (\lambda (_: T).(\lambda (t3: 
-T).(pr0 t1 t3))) in (let TMP_304 \def (ex3_2 T T TMP_301 TMP_302 TMP_303) in 
-(let TMP_305 \def (S O) in (let TMP_306 \def (lift TMP_305 O t2) in (let 
-TMP_307 \def (pr0 t1 TMP_306) in (let TMP_308 \def (or TMP_304 TMP_307) in 
-(False_ind TMP_308 H4))))))))))))))))))))) in (pr0_ind TMP_23 TMP_66 TMP_141 
-TMP_163 TMP_193 TMP_213 TMP_293 TMP_309 y x H0))))))))))) in (insert_eq T 
-TMP_2 TMP_3 TMP_13 TMP_310 H))))))))).
+T).(\lambda (t3: T).(pr0 (lift (S O) O t0) t3)))) (pr0 (lift (S O) O t0) 
+(lift (S O) O t2)) (pr0_lift t0 t2 H2 (S O) O)) t1 H7)))))) H6)) H5)))))))))) 
+(\lambda (t0: T).(\lambda (t2: T).(\lambda (_: (pr0 t0 t2)).(\lambda (_: 
+(((eq T t0 (THead (Bind Void) u1 t1)) \to (or (ex3_2 T T (\lambda (u2: 
+T).(\lambda (t3: T).(eq T t2 (THead (Bind Void) u2 t3)))) (\lambda (u2: 
+T).(\lambda (_: T).(pr0 u1 u2))) (\lambda (_: T).(\lambda (t3: T).(pr0 t1 
+t3)))) (pr0 t1 (lift (S O) O t2)))))).(\lambda (u: T).(\lambda (H3: (eq T 
+(THead (Flat Cast) u t0) (THead (Bind Void) u1 t1))).(let H4 \def (eq_ind T 
+(THead (Flat Cast) u t0) (\lambda (ee: T).(match ee with [(TSort _) 
+\Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow 
+(match k with [(Bind _) \Rightarrow False | (Flat _) \Rightarrow True])])) I 
+(THead (Bind Void) u1 t1) H3) in (False_ind (or (ex3_2 T T (\lambda (u2: 
+T).(\lambda (t3: T).(eq T t2 (THead (Bind Void) u2 t3)))) (\lambda (u2: 
+T).(\lambda (_: T).(pr0 u1 u2))) (\lambda (_: T).(\lambda (t3: T).(pr0 t1 
+t3)))) (pr0 t1 (lift (S O) O t2))) H4)))))))) y x H0))) H)))).
 
index 5a67308c4aa025d1681612275a6ec09e78cdac6c..77a73414a5ed4063529291a7c6241da46be6a35a 100644 (file)
@@ -25,13 +25,10 @@ theorem pr0_delta1:
 \def
  \lambda (u1: T).(\lambda (u2: T).(\lambda (H: (pr0 u1 u2)).(\lambda (t1: 
 T).(\lambda (t2: T).(\lambda (H0: (pr0 t1 t2)).(\lambda (w: T).(\lambda (H1: 
-(subst1 O u2 t2 w)).(let TMP_5 \def (\lambda (t: T).(let TMP_1 \def (Bind 
-Abbr) in (let TMP_2 \def (THead TMP_1 u1 t1) in (let TMP_3 \def (Bind Abbr) 
-in (let TMP_4 \def (THead TMP_3 u2 t) in (pr0 TMP_2 TMP_4)))))) in (let TMP_6 
-\def (Bind Abbr) in (let TMP_7 \def (pr0_comp u1 u2 H t1 t2 H0 TMP_6) in (let 
-TMP_8 \def (\lambda (t0: T).(\lambda (H2: (subst0 O u2 t2 t0)).(pr0_delta u1 
-u2 H t1 t2 H0 t0 H2))) in (subst1_ind O u2 t2 TMP_5 TMP_7 TMP_8 w 
-H1)))))))))))).
+(subst1 O u2 t2 w)).(subst1_ind O u2 t2 (\lambda (t: T).(pr0 (THead (Bind 
+Abbr) u1 t1) (THead (Bind Abbr) u2 t))) (pr0_comp u1 u2 H t1 t2 H0 (Bind 
+Abbr)) (\lambda (t0: T).(\lambda (H2: (subst0 O u2 t2 t0)).(pr0_delta u1 u2 H 
+t1 t2 H0 t0 H2))) w H1)))))))).
 
 theorem pr0_subst1_back:
  \forall (u2: T).(\forall (t1: T).(\forall (t2: T).(\forall (i: nat).((subst1 
@@ -39,24 +36,17 @@ i u2 t1 t2) \to (\forall (u1: T).((pr0 u1 u2) \to (ex2 T (\lambda (t:
 T).(subst1 i u1 t1 t)) (\lambda (t: T).(pr0 t t2)))))))))
 \def
  \lambda (u2: T).(\lambda (t1: T).(\lambda (t2: T).(\lambda (i: nat).(\lambda 
-(H: (subst1 i u2 t1 t2)).(let TMP_3 \def (\lambda (t: T).(\forall (u1: 
-T).((pr0 u1 u2) \to (let TMP_1 \def (\lambda (t0: T).(subst1 i u1 t1 t0)) in 
-(let TMP_2 \def (\lambda (t0: T).(pr0 t0 t)) in (ex2 T TMP_1 TMP_2)))))) in 
-(let TMP_8 \def (\lambda (u1: T).(\lambda (_: (pr0 u1 u2)).(let TMP_4 \def 
-(\lambda (t: T).(subst1 i u1 t1 t)) in (let TMP_5 \def (\lambda (t: T).(pr0 t 
-t1)) in (let TMP_6 \def (subst1_refl i u1 t1) in (let TMP_7 \def (pr0_refl 
-t1) in (ex_intro2 T TMP_4 TMP_5 t1 TMP_6 TMP_7))))))) in (let TMP_19 \def 
-(\lambda (t0: T).(\lambda (H0: (subst0 i u2 t1 t0)).(\lambda (u1: T).(\lambda 
-(H1: (pr0 u1 u2)).(let TMP_9 \def (\lambda (t: T).(subst0 i u1 t1 t)) in (let 
-TMP_10 \def (\lambda (t: T).(pr0 t t0)) in (let TMP_11 \def (\lambda (t: 
-T).(subst1 i u1 t1 t)) in (let TMP_12 \def (\lambda (t: T).(pr0 t t0)) in 
-(let TMP_13 \def (ex2 T TMP_11 TMP_12) in (let TMP_17 \def (\lambda (x: 
-T).(\lambda (H2: (subst0 i u1 t1 x)).(\lambda (H3: (pr0 x t0)).(let TMP_14 
-\def (\lambda (t: T).(subst1 i u1 t1 t)) in (let TMP_15 \def (\lambda (t: 
-T).(pr0 t t0)) in (let TMP_16 \def (subst1_single i u1 t1 x H2) in (ex_intro2 
-T TMP_14 TMP_15 x TMP_16 H3))))))) in (let TMP_18 \def (pr0_subst0_back u2 t1 
-t0 i H0 u1 H1) in (ex2_ind T TMP_9 TMP_10 TMP_13 TMP_17 TMP_18)))))))))))) in 
-(subst1_ind i u2 t1 TMP_3 TMP_8 TMP_19 t2 H)))))))).
+(H: (subst1 i u2 t1 t2)).(subst1_ind i u2 t1 (\lambda (t: T).(\forall (u1: 
+T).((pr0 u1 u2) \to (ex2 T (\lambda (t0: T).(subst1 i u1 t1 t0)) (\lambda 
+(t0: T).(pr0 t0 t)))))) (\lambda (u1: T).(\lambda (_: (pr0 u1 u2)).(ex_intro2 
+T (\lambda (t: T).(subst1 i u1 t1 t)) (\lambda (t: T).(pr0 t t1)) t1 
+(subst1_refl i u1 t1) (pr0_refl t1)))) (\lambda (t0: T).(\lambda (H0: (subst0 
+i u2 t1 t0)).(\lambda (u1: T).(\lambda (H1: (pr0 u1 u2)).(ex2_ind T (\lambda 
+(t: T).(subst0 i u1 t1 t)) (\lambda (t: T).(pr0 t t0)) (ex2 T (\lambda (t: 
+T).(subst1 i u1 t1 t)) (\lambda (t: T).(pr0 t t0))) (\lambda (x: T).(\lambda 
+(H2: (subst0 i u1 t1 x)).(\lambda (H3: (pr0 x t0)).(ex_intro2 T (\lambda (t: 
+T).(subst1 i u1 t1 t)) (\lambda (t: T).(pr0 t t0)) x (subst1_single i u1 t1 x 
+H2) H3)))) (pr0_subst0_back u2 t1 t0 i H0 u1 H1)))))) t2 H))))).
 
 theorem pr0_subst1_fwd:
  \forall (u2: T).(\forall (t1: T).(\forall (t2: T).(\forall (i: nat).((subst1 
@@ -64,24 +54,17 @@ i u2 t1 t2) \to (\forall (u1: T).((pr0 u2 u1) \to (ex2 T (\lambda (t:
 T).(subst1 i u1 t1 t)) (\lambda (t: T).(pr0 t2 t)))))))))
 \def
  \lambda (u2: T).(\lambda (t1: T).(\lambda (t2: T).(\lambda (i: nat).(\lambda 
-(H: (subst1 i u2 t1 t2)).(let TMP_3 \def (\lambda (t: T).(\forall (u1: 
-T).((pr0 u2 u1) \to (let TMP_1 \def (\lambda (t0: T).(subst1 i u1 t1 t0)) in 
-(let TMP_2 \def (\lambda (t0: T).(pr0 t t0)) in (ex2 T TMP_1 TMP_2)))))) in 
-(let TMP_8 \def (\lambda (u1: T).(\lambda (_: (pr0 u2 u1)).(let TMP_4 \def 
-(\lambda (t: T).(subst1 i u1 t1 t)) in (let TMP_5 \def (\lambda (t: T).(pr0 
-t1 t)) in (let TMP_6 \def (subst1_refl i u1 t1) in (let TMP_7 \def (pr0_refl 
-t1) in (ex_intro2 T TMP_4 TMP_5 t1 TMP_6 TMP_7))))))) in (let TMP_19 \def 
-(\lambda (t0: T).(\lambda (H0: (subst0 i u2 t1 t0)).(\lambda (u1: T).(\lambda 
-(H1: (pr0 u2 u1)).(let TMP_9 \def (\lambda (t: T).(subst0 i u1 t1 t)) in (let 
-TMP_10 \def (\lambda (t: T).(pr0 t0 t)) in (let TMP_11 \def (\lambda (t: 
-T).(subst1 i u1 t1 t)) in (let TMP_12 \def (\lambda (t: T).(pr0 t0 t)) in 
-(let TMP_13 \def (ex2 T TMP_11 TMP_12) in (let TMP_17 \def (\lambda (x: 
-T).(\lambda (H2: (subst0 i u1 t1 x)).(\lambda (H3: (pr0 t0 x)).(let TMP_14 
-\def (\lambda (t: T).(subst1 i u1 t1 t)) in (let TMP_15 \def (\lambda (t: 
-T).(pr0 t0 t)) in (let TMP_16 \def (subst1_single i u1 t1 x H2) in (ex_intro2 
-T TMP_14 TMP_15 x TMP_16 H3))))))) in (let TMP_18 \def (pr0_subst0_fwd u2 t1 
-t0 i H0 u1 H1) in (ex2_ind T TMP_9 TMP_10 TMP_13 TMP_17 TMP_18)))))))))))) in 
-(subst1_ind i u2 t1 TMP_3 TMP_8 TMP_19 t2 H)))))))).
+(H: (subst1 i u2 t1 t2)).(subst1_ind i u2 t1 (\lambda (t: T).(\forall (u1: 
+T).((pr0 u2 u1) \to (ex2 T (\lambda (t0: T).(subst1 i u1 t1 t0)) (\lambda 
+(t0: T).(pr0 t t0)))))) (\lambda (u1: T).(\lambda (_: (pr0 u2 u1)).(ex_intro2 
+T (\lambda (t: T).(subst1 i u1 t1 t)) (\lambda (t: T).(pr0 t1 t)) t1 
+(subst1_refl i u1 t1) (pr0_refl t1)))) (\lambda (t0: T).(\lambda (H0: (subst0 
+i u2 t1 t0)).(\lambda (u1: T).(\lambda (H1: (pr0 u2 u1)).(ex2_ind T (\lambda 
+(t: T).(subst0 i u1 t1 t)) (\lambda (t: T).(pr0 t0 t)) (ex2 T (\lambda (t: 
+T).(subst1 i u1 t1 t)) (\lambda (t: T).(pr0 t0 t))) (\lambda (x: T).(\lambda 
+(H2: (subst0 i u1 t1 x)).(\lambda (H3: (pr0 t0 x)).(ex_intro2 T (\lambda (t: 
+T).(subst1 i u1 t1 t)) (\lambda (t: T).(pr0 t0 t)) x (subst1_single i u1 t1 x 
+H2) H3)))) (pr0_subst0_fwd u2 t1 t0 i H0 u1 H1)))))) t2 H))))).
 
 theorem pr0_subst1:
  \forall (t1: T).(\forall (t2: T).((pr0 t1 t2) \to (\forall (v1: T).(\forall 
@@ -90,33 +73,21 @@ v2) \to (ex2 T (\lambda (w2: T).(pr0 w1 w2)) (\lambda (w2: T).(subst1 i v2 t2
 w2)))))))))))
 \def
  \lambda (t1: T).(\lambda (t2: T).(\lambda (H: (pr0 t1 t2)).(\lambda (v1: 
-T).(\lambda (w1: T).(\lambda (i: nat).(\lambda (H0: (subst1 i v1 t1 w1)).(let 
-TMP_3 \def (\lambda (t: T).(\forall (v2: T).((pr0 v1 v2) \to (let TMP_1 \def 
-(\lambda (w2: T).(pr0 t w2)) in (let TMP_2 \def (\lambda (w2: T).(subst1 i v2 
-t2 w2)) in (ex2 T TMP_1 TMP_2)))))) in (let TMP_7 \def (\lambda (v2: 
-T).(\lambda (_: (pr0 v1 v2)).(let TMP_4 \def (\lambda (w2: T).(pr0 t1 w2)) in 
-(let TMP_5 \def (\lambda (w2: T).(subst1 i v2 t2 w2)) in (let TMP_6 \def 
-(subst1_refl i v2 t2) in (ex_intro2 T TMP_4 TMP_5 t2 H TMP_6)))))) in (let 
-TMP_30 \def (\lambda (t0: T).(\lambda (H1: (subst0 i v1 t1 t0)).(\lambda (v2: 
-T).(\lambda (H2: (pr0 v1 v2)).(let TMP_8 \def (pr0 t0 t2) in (let TMP_9 \def 
-(\lambda (w2: T).(pr0 t0 w2)) in (let TMP_10 \def (\lambda (w2: T).(subst0 i 
-v2 t2 w2)) in (let TMP_11 \def (ex2 T TMP_9 TMP_10) in (let TMP_12 \def 
-(\lambda (w2: T).(pr0 t0 w2)) in (let TMP_13 \def (\lambda (w2: T).(subst1 i 
-v2 t2 w2)) in (let TMP_14 \def (ex2 T TMP_12 TMP_13) in (let TMP_18 \def 
-(\lambda (H3: (pr0 t0 t2)).(let TMP_15 \def (\lambda (w2: T).(pr0 t0 w2)) in 
-(let TMP_16 \def (\lambda (w2: T).(subst1 i v2 t2 w2)) in (let TMP_17 \def 
-(subst1_refl i v2 t2) in (ex_intro2 T TMP_15 TMP_16 t2 H3 TMP_17))))) in (let 
-TMP_28 \def (\lambda (H3: (ex2 T (\lambda (w2: T).(pr0 t0 w2)) (\lambda (w2: 
-T).(subst0 i v2 t2 w2)))).(let TMP_19 \def (\lambda (w2: T).(pr0 t0 w2)) in 
-(let TMP_20 \def (\lambda (w2: T).(subst0 i v2 t2 w2)) in (let TMP_21 \def 
-(\lambda (w2: T).(pr0 t0 w2)) in (let TMP_22 \def (\lambda (w2: T).(subst1 i 
-v2 t2 w2)) in (let TMP_23 \def (ex2 T TMP_21 TMP_22) in (let TMP_27 \def 
-(\lambda (x: T).(\lambda (H4: (pr0 t0 x)).(\lambda (H5: (subst0 i v2 t2 
-x)).(let TMP_24 \def (\lambda (w2: T).(pr0 t0 w2)) in (let TMP_25 \def 
-(\lambda (w2: T).(subst1 i v2 t2 w2)) in (let TMP_26 \def (subst1_single i v2 
-t2 x H5) in (ex_intro2 T TMP_24 TMP_25 x H4 TMP_26))))))) in (ex2_ind T 
-TMP_19 TMP_20 TMP_23 TMP_27 H3)))))))) in (let TMP_29 \def (pr0_subst0 t1 t2 
-H v1 t0 i H1 v2 H2) in (or_ind TMP_8 TMP_11 TMP_14 TMP_18 TMP_28 
-TMP_29))))))))))))))) in (subst1_ind i v1 t1 TMP_3 TMP_7 TMP_30 w1 
-H0)))))))))).
+T).(\lambda (w1: T).(\lambda (i: nat).(\lambda (H0: (subst1 i v1 t1 
+w1)).(subst1_ind i v1 t1 (\lambda (t: T).(\forall (v2: T).((pr0 v1 v2) \to 
+(ex2 T (\lambda (w2: T).(pr0 t w2)) (\lambda (w2: T).(subst1 i v2 t2 w2)))))) 
+(\lambda (v2: T).(\lambda (_: (pr0 v1 v2)).(ex_intro2 T (\lambda (w2: T).(pr0 
+t1 w2)) (\lambda (w2: T).(subst1 i v2 t2 w2)) t2 H (subst1_refl i v2 t2)))) 
+(\lambda (t0: T).(\lambda (H1: (subst0 i v1 t1 t0)).(\lambda (v2: T).(\lambda 
+(H2: (pr0 v1 v2)).(or_ind (pr0 t0 t2) (ex2 T (\lambda (w2: T).(pr0 t0 w2)) 
+(\lambda (w2: T).(subst0 i v2 t2 w2))) (ex2 T (\lambda (w2: T).(pr0 t0 w2)) 
+(\lambda (w2: T).(subst1 i v2 t2 w2))) (\lambda (H3: (pr0 t0 t2)).(ex_intro2 
+T (\lambda (w2: T).(pr0 t0 w2)) (\lambda (w2: T).(subst1 i v2 t2 w2)) t2 H3 
+(subst1_refl i v2 t2))) (\lambda (H3: (ex2 T (\lambda (w2: T).(pr0 t0 w2)) 
+(\lambda (w2: T).(subst0 i v2 t2 w2)))).(ex2_ind T (\lambda (w2: T).(pr0 t0 
+w2)) (\lambda (w2: T).(subst0 i v2 t2 w2)) (ex2 T (\lambda (w2: T).(pr0 t0 
+w2)) (\lambda (w2: T).(subst1 i v2 t2 w2))) (\lambda (x: T).(\lambda (H4: 
+(pr0 t0 x)).(\lambda (H5: (subst0 i v2 t2 x)).(ex_intro2 T (\lambda (w2: 
+T).(pr0 t0 w2)) (\lambda (w2: T).(subst1 i v2 t2 w2)) x H4 (subst1_single i 
+v2 t2 x H5))))) H3)) (pr0_subst0 t1 t2 H v1 t0 i H1 v2 H2)))))) w1 H0))))))).
 
index 1bdb1532736207ef500fa39d07a5e103dec995a0..1d4dd0cfa5f29b182e7834680b4785ea86104095 100644 (file)
@@ -20,6 +20,5 @@ let rec pr1_ind (P: (T \to (T \to Prop))) (f: (\forall (t: T).(P t t))) (f0:
 (\forall (t2: T).(\forall (t1: T).((pr0 t1 t2) \to (\forall (t3: T).((pr1 t2 
 t3) \to ((P t2 t3) \to (P t1 t3)))))))) (t: T) (t0: T) (p: pr1 t t0) on p: P 
 t t0 \def match p with [(pr1_refl t1) \Rightarrow (f t1) | (pr1_sing t2 t1 p0 
-t3 p1) \Rightarrow (let TMP_1 \def ((pr1_ind P f f0) t2 t3 p1) in (f0 t2 t1 
-p0 t3 p1 TMP_1))].
+t3 p1) \Rightarrow (f0 t2 t1 p0 t3 p1 ((pr1_ind P f f0) t2 t3 p1))].
 
index db9c74c5abb660a09304d6c02feb956d4082f0e0..0b088cc7ba623196dab85b1661760a0cc8c2a698 100644 (file)
@@ -22,61 +22,43 @@ theorem pr1_strip:
  \forall (t0: T).(\forall (t1: T).((pr1 t0 t1) \to (\forall (t2: T).((pr0 t0 
 t2) \to (ex2 T (\lambda (t: T).(pr1 t1 t)) (\lambda (t: T).(pr1 t2 t)))))))
 \def
- \lambda (t0: T).(\lambda (t1: T).(\lambda (H: (pr1 t0 t1)).(let TMP_3 \def 
-(\lambda (t: T).(\lambda (t2: T).(\forall (t3: T).((pr0 t t3) \to (let TMP_1 
-\def (\lambda (t4: T).(pr1 t2 t4)) in (let TMP_2 \def (\lambda (t4: T).(pr1 
-t3 t4)) in (ex2 T TMP_1 TMP_2))))))) in (let TMP_8 \def (\lambda (t: 
-T).(\lambda (t2: T).(\lambda (H0: (pr0 t t2)).(let TMP_4 \def (\lambda (t3: 
-T).(pr1 t t3)) in (let TMP_5 \def (\lambda (t3: T).(pr1 t2 t3)) in (let TMP_6 
-\def (pr1_pr0 t t2 H0) in (let TMP_7 \def (pr1_refl t2) in (ex_intro2 T TMP_4 
-TMP_5 t2 TMP_6 TMP_7)))))))) in (let TMP_26 \def (\lambda (t2: T).(\lambda 
-(t3: T).(\lambda (H0: (pr0 t3 t2)).(\lambda (t4: T).(\lambda (_: (pr1 t2 
-t4)).(\lambda (H2: ((\forall (t5: T).((pr0 t2 t5) \to (ex2 T (\lambda (t: 
-T).(pr1 t4 t)) (\lambda (t: T).(pr1 t5 t))))))).(\lambda (t5: T).(\lambda 
-(H3: (pr0 t3 t5)).(let TMP_9 \def (\lambda (t: T).(pr0 t5 t)) in (let TMP_10 
-\def (\lambda (t: T).(pr0 t2 t)) in (let TMP_11 \def (\lambda (t: T).(pr1 t4 
-t)) in (let TMP_12 \def (\lambda (t: T).(pr1 t5 t)) in (let TMP_13 \def (ex2 
-T TMP_11 TMP_12) in (let TMP_24 \def (\lambda (x: T).(\lambda (H4: (pr0 t5 
-x)).(\lambda (H5: (pr0 t2 x)).(let H6 \def (H2 x H5) in (let TMP_14 \def 
-(\lambda (t: T).(pr1 t4 t)) in (let TMP_15 \def (\lambda (t: T).(pr1 x t)) in 
-(let TMP_16 \def (\lambda (t: T).(pr1 t4 t)) in (let TMP_17 \def (\lambda (t: 
-T).(pr1 t5 t)) in (let TMP_18 \def (ex2 T TMP_16 TMP_17) in (let TMP_23 \def 
-(\lambda (x0: T).(\lambda (H7: (pr1 t4 x0)).(\lambda (H8: (pr1 x x0)).(let 
-TMP_19 \def (\lambda (t: T).(pr1 t4 t)) in (let TMP_20 \def (\lambda (t: 
-T).(pr1 t5 t)) in (let TMP_21 \def (pr1_pr0 t5 x H4) in (let TMP_22 \def 
-(pr1_t x t5 TMP_21 x0 H8) in (ex_intro2 T TMP_19 TMP_20 x0 H7 TMP_22)))))))) 
-in (ex2_ind T TMP_14 TMP_15 TMP_18 TMP_23 H6))))))))))) in (let TMP_25 \def 
-(pr0_confluence t3 t5 H3 t2 H0) in (ex2_ind T TMP_9 TMP_10 TMP_13 TMP_24 
-TMP_25)))))))))))))))) in (pr1_ind TMP_3 TMP_8 TMP_26 t0 t1 H)))))).
+ \lambda (t0: T).(\lambda (t1: T).(\lambda (H: (pr1 t0 t1)).(pr1_ind (\lambda 
+(t: T).(\lambda (t2: T).(\forall (t3: T).((pr0 t t3) \to (ex2 T (\lambda (t4: 
+T).(pr1 t2 t4)) (\lambda (t4: T).(pr1 t3 t4))))))) (\lambda (t: T).(\lambda 
+(t2: T).(\lambda (H0: (pr0 t t2)).(ex_intro2 T (\lambda (t3: T).(pr1 t t3)) 
+(\lambda (t3: T).(pr1 t2 t3)) t2 (pr1_pr0 t t2 H0) (pr1_refl t2))))) (\lambda 
+(t2: T).(\lambda (t3: T).(\lambda (H0: (pr0 t3 t2)).(\lambda (t4: T).(\lambda 
+(_: (pr1 t2 t4)).(\lambda (H2: ((\forall (t5: T).((pr0 t2 t5) \to (ex2 T 
+(\lambda (t: T).(pr1 t4 t)) (\lambda (t: T).(pr1 t5 t))))))).(\lambda (t5: 
+T).(\lambda (H3: (pr0 t3 t5)).(ex2_ind T (\lambda (t: T).(pr0 t5 t)) (\lambda 
+(t: T).(pr0 t2 t)) (ex2 T (\lambda (t: T).(pr1 t4 t)) (\lambda (t: T).(pr1 t5 
+t))) (\lambda (x: T).(\lambda (H4: (pr0 t5 x)).(\lambda (H5: (pr0 t2 x)).(let 
+H6 \def (H2 x H5) in (ex2_ind T (\lambda (t: T).(pr1 t4 t)) (\lambda (t: 
+T).(pr1 x t)) (ex2 T (\lambda (t: T).(pr1 t4 t)) (\lambda (t: T).(pr1 t5 t))) 
+(\lambda (x0: T).(\lambda (H7: (pr1 t4 x0)).(\lambda (H8: (pr1 x 
+x0)).(ex_intro2 T (\lambda (t: T).(pr1 t4 t)) (\lambda (t: T).(pr1 t5 t)) x0 
+H7 (pr1_t x t5 (pr1_pr0 t5 x H4) x0 H8))))) H6))))) (pr0_confluence t3 t5 H3 
+t2 H0)))))))))) t0 t1 H))).
 
 theorem pr1_confluence:
  \forall (t0: T).(\forall (t1: T).((pr1 t0 t1) \to (\forall (t2: T).((pr1 t0 
 t2) \to (ex2 T (\lambda (t: T).(pr1 t1 t)) (\lambda (t: T).(pr1 t2 t)))))))
 \def
- \lambda (t0: T).(\lambda (t1: T).(\lambda (H: (pr1 t0 t1)).(let TMP_3 \def 
-(\lambda (t: T).(\lambda (t2: T).(\forall (t3: T).((pr1 t t3) \to (let TMP_1 
-\def (\lambda (t4: T).(pr1 t2 t4)) in (let TMP_2 \def (\lambda (t4: T).(pr1 
-t3 t4)) in (ex2 T TMP_1 TMP_2))))))) in (let TMP_7 \def (\lambda (t: 
-T).(\lambda (t2: T).(\lambda (H0: (pr1 t t2)).(let TMP_4 \def (\lambda (t3: 
-T).(pr1 t t3)) in (let TMP_5 \def (\lambda (t3: T).(pr1 t2 t3)) in (let TMP_6 
-\def (pr1_refl t2) in (ex_intro2 T TMP_4 TMP_5 t2 H0 TMP_6))))))) in (let 
-TMP_23 \def (\lambda (t2: T).(\lambda (t3: T).(\lambda (H0: (pr0 t3 
-t2)).(\lambda (t4: T).(\lambda (_: (pr1 t2 t4)).(\lambda (H2: ((\forall (t5: 
-T).((pr1 t2 t5) \to (ex2 T (\lambda (t: T).(pr1 t4 t)) (\lambda (t: T).(pr1 
-t5 t))))))).(\lambda (t5: T).(\lambda (H3: (pr1 t3 t5)).(let H_x \def 
-(pr1_strip t3 t5 H3 t2 H0) in (let H4 \def H_x in (let TMP_8 \def (\lambda 
-(t: T).(pr1 t5 t)) in (let TMP_9 \def (\lambda (t: T).(pr1 t2 t)) in (let 
-TMP_10 \def (\lambda (t: T).(pr1 t4 t)) in (let TMP_11 \def (\lambda (t: 
-T).(pr1 t5 t)) in (let TMP_12 \def (ex2 T TMP_10 TMP_11) in (let TMP_22 \def 
-(\lambda (x: T).(\lambda (H5: (pr1 t5 x)).(\lambda (H6: (pr1 t2 x)).(let H_x0 
-\def (H2 x H6) in (let H7 \def H_x0 in (let TMP_13 \def (\lambda (t: T).(pr1 
-t4 t)) in (let TMP_14 \def (\lambda (t: T).(pr1 x t)) in (let TMP_15 \def 
-(\lambda (t: T).(pr1 t4 t)) in (let TMP_16 \def (\lambda (t: T).(pr1 t5 t)) 
-in (let TMP_17 \def (ex2 T TMP_15 TMP_16) in (let TMP_21 \def (\lambda (x0: 
-T).(\lambda (H8: (pr1 t4 x0)).(\lambda (H9: (pr1 x x0)).(let TMP_18 \def 
-(\lambda (t: T).(pr1 t4 t)) in (let TMP_19 \def (\lambda (t: T).(pr1 t5 t)) 
-in (let TMP_20 \def (pr1_t x t5 H5 x0 H9) in (ex_intro2 T TMP_18 TMP_19 x0 H8 
-TMP_20))))))) in (ex2_ind T TMP_13 TMP_14 TMP_17 TMP_21 H7)))))))))))) in 
-(ex2_ind T TMP_8 TMP_9 TMP_12 TMP_22 H4))))))))))))))))) in (pr1_ind TMP_3 
-TMP_7 TMP_23 t0 t1 H)))))).
+ \lambda (t0: T).(\lambda (t1: T).(\lambda (H: (pr1 t0 t1)).(pr1_ind (\lambda 
+(t: T).(\lambda (t2: T).(\forall (t3: T).((pr1 t t3) \to (ex2 T (\lambda (t4: 
+T).(pr1 t2 t4)) (\lambda (t4: T).(pr1 t3 t4))))))) (\lambda (t: T).(\lambda 
+(t2: T).(\lambda (H0: (pr1 t t2)).(ex_intro2 T (\lambda (t3: T).(pr1 t t3)) 
+(\lambda (t3: T).(pr1 t2 t3)) t2 H0 (pr1_refl t2))))) (\lambda (t2: 
+T).(\lambda (t3: T).(\lambda (H0: (pr0 t3 t2)).(\lambda (t4: T).(\lambda (_: 
+(pr1 t2 t4)).(\lambda (H2: ((\forall (t5: T).((pr1 t2 t5) \to (ex2 T (\lambda 
+(t: T).(pr1 t4 t)) (\lambda (t: T).(pr1 t5 t))))))).(\lambda (t5: T).(\lambda 
+(H3: (pr1 t3 t5)).(let H_x \def (pr1_strip t3 t5 H3 t2 H0) in (let H4 \def 
+H_x in (ex2_ind T (\lambda (t: T).(pr1 t5 t)) (\lambda (t: T).(pr1 t2 t)) 
+(ex2 T (\lambda (t: T).(pr1 t4 t)) (\lambda (t: T).(pr1 t5 t))) (\lambda (x: 
+T).(\lambda (H5: (pr1 t5 x)).(\lambda (H6: (pr1 t2 x)).(let H_x0 \def (H2 x 
+H6) in (let H7 \def H_x0 in (ex2_ind T (\lambda (t: T).(pr1 t4 t)) (\lambda 
+(t: T).(pr1 x t)) (ex2 T (\lambda (t: T).(pr1 t4 t)) (\lambda (t: T).(pr1 t5 
+t))) (\lambda (x0: T).(\lambda (H8: (pr1 t4 x0)).(\lambda (H9: (pr1 x 
+x0)).(ex_intro2 T (\lambda (t: T).(pr1 t4 t)) (\lambda (t: T).(pr1 t5 t)) x0 
+H8 (pr1_t x t5 H5 x0 H9))))) H7)))))) H4))))))))))) t0 t1 H))).
 
index ab17c0dc0a2470a7b9de430d4a2c837ec4ad96b7..c3c58fe31fdac3f6bb620b5ee235bc8839599f9a 100644 (file)
@@ -25,140 +25,84 @@ include "basic_1/T/props.ma".
 theorem pr1_pr0:
  \forall (t1: T).(\forall (t2: T).((pr0 t1 t2) \to (pr1 t1 t2)))
 \def
- \lambda (t1: T).(\lambda (t2: T).(\lambda (H: (pr0 t1 t2)).(let TMP_1 \def 
-(pr1_refl t2) in (pr1_sing t2 t1 H t2 TMP_1)))).
+ \lambda (t1: T).(\lambda (t2: T).(\lambda (H: (pr0 t1 t2)).(pr1_sing t2 t1 H 
+t2 (pr1_refl t2)))).
 
 theorem pr1_t:
  \forall (t2: T).(\forall (t1: T).((pr1 t1 t2) \to (\forall (t3: T).((pr1 t2 
 t3) \to (pr1 t1 t3)))))
 \def
- \lambda (t2: T).(\lambda (t1: T).(\lambda (H: (pr1 t1 t2)).(let TMP_1 \def 
-(\lambda (t: T).(\lambda (t0: T).(\forall (t3: T).((pr1 t0 t3) \to (pr1 t 
-t3))))) in (let TMP_2 \def (\lambda (t: T).(\lambda (t3: T).(\lambda (H0: 
-(pr1 t t3)).H0))) in (let TMP_4 \def (\lambda (t0: T).(\lambda (t3: 
-T).(\lambda (H0: (pr0 t3 t0)).(\lambda (t4: T).(\lambda (_: (pr1 t0 
-t4)).(\lambda (H2: ((\forall (t5: T).((pr1 t4 t5) \to (pr1 t0 
-t5))))).(\lambda (t5: T).(\lambda (H3: (pr1 t4 t5)).(let TMP_3 \def (H2 t5 
-H3) in (pr1_sing t0 t3 H0 t5 TMP_3)))))))))) in (pr1_ind TMP_1 TMP_2 TMP_4 t1 
-t2 H)))))).
+ \lambda (t2: T).(\lambda (t1: T).(\lambda (H: (pr1 t1 t2)).(pr1_ind (\lambda 
+(t: T).(\lambda (t0: T).(\forall (t3: T).((pr1 t0 t3) \to (pr1 t t3))))) 
+(\lambda (t: T).(\lambda (t3: T).(\lambda (H0: (pr1 t t3)).H0))) (\lambda 
+(t0: T).(\lambda (t3: T).(\lambda (H0: (pr0 t3 t0)).(\lambda (t4: T).(\lambda 
+(_: (pr1 t0 t4)).(\lambda (H2: ((\forall (t5: T).((pr1 t4 t5) \to (pr1 t0 
+t5))))).(\lambda (t5: T).(\lambda (H3: (pr1 t4 t5)).(pr1_sing t0 t3 H0 t5 (H2 
+t5 H3)))))))))) t1 t2 H))).
 
 theorem pr1_head_1:
  \forall (u1: T).(\forall (u2: T).((pr1 u1 u2) \to (\forall (t: T).(\forall 
 (k: K).(pr1 (THead k u1 t) (THead k u2 t))))))
 \def
  \lambda (u1: T).(\lambda (u2: T).(\lambda (H: (pr1 u1 u2)).(\lambda (t: 
-T).(\lambda (k: K).(let TMP_3 \def (\lambda (t0: T).(\lambda (t1: T).(let 
-TMP_1 \def (THead k t0 t) in (let TMP_2 \def (THead k t1 t) in (pr1 TMP_1 
-TMP_2))))) in (let TMP_5 \def (\lambda (t0: T).(let TMP_4 \def (THead k t0 t) 
-in (pr1_refl TMP_4))) in (let TMP_11 \def (\lambda (t2: T).(\lambda (t1: 
-T).(\lambda (H0: (pr0 t1 t2)).(\lambda (t3: T).(\lambda (_: (pr1 t2 
-t3)).(\lambda (H2: (pr1 (THead k t2 t) (THead k t3 t))).(let TMP_6 \def 
-(THead k t2 t) in (let TMP_7 \def (THead k t1 t) in (let TMP_8 \def (pr0_refl 
-t) in (let TMP_9 \def (pr0_comp t1 t2 H0 t t TMP_8 k) in (let TMP_10 \def 
-(THead k t3 t) in (pr1_sing TMP_6 TMP_7 TMP_9 TMP_10 H2)))))))))))) in 
-(pr1_ind TMP_3 TMP_5 TMP_11 u1 u2 H)))))))).
+T).(\lambda (k: K).(pr1_ind (\lambda (t0: T).(\lambda (t1: T).(pr1 (THead k 
+t0 t) (THead k t1 t)))) (\lambda (t0: T).(pr1_refl (THead k t0 t))) (\lambda 
+(t2: T).(\lambda (t1: T).(\lambda (H0: (pr0 t1 t2)).(\lambda (t3: T).(\lambda 
+(_: (pr1 t2 t3)).(\lambda (H2: (pr1 (THead k t2 t) (THead k t3 t))).(pr1_sing 
+(THead k t2 t) (THead k t1 t) (pr0_comp t1 t2 H0 t t (pr0_refl t) k) (THead k 
+t3 t) H2))))))) u1 u2 H))))).
 
 theorem pr1_head_2:
  \forall (t1: T).(\forall (t2: T).((pr1 t1 t2) \to (\forall (u: T).(\forall 
 (k: K).(pr1 (THead k u t1) (THead k u t2))))))
 \def
  \lambda (t1: T).(\lambda (t2: T).(\lambda (H: (pr1 t1 t2)).(\lambda (u: 
-T).(\lambda (k: K).(let TMP_3 \def (\lambda (t: T).(\lambda (t0: T).(let 
-TMP_1 \def (THead k u t) in (let TMP_2 \def (THead k u t0) in (pr1 TMP_1 
-TMP_2))))) in (let TMP_5 \def (\lambda (t: T).(let TMP_4 \def (THead k u t) 
-in (pr1_refl TMP_4))) in (let TMP_11 \def (\lambda (t0: T).(\lambda (t3: 
-T).(\lambda (H0: (pr0 t3 t0)).(\lambda (t4: T).(\lambda (_: (pr1 t0 
-t4)).(\lambda (H2: (pr1 (THead k u t0) (THead k u t4))).(let TMP_6 \def 
-(THead k u t0) in (let TMP_7 \def (THead k u t3) in (let TMP_8 \def (pr0_refl 
-u) in (let TMP_9 \def (pr0_comp u u TMP_8 t3 t0 H0 k) in (let TMP_10 \def 
-(THead k u t4) in (pr1_sing TMP_6 TMP_7 TMP_9 TMP_10 H2)))))))))))) in 
-(pr1_ind TMP_3 TMP_5 TMP_11 t1 t2 H)))))))).
+T).(\lambda (k: K).(pr1_ind (\lambda (t: T).(\lambda (t0: T).(pr1 (THead k u 
+t) (THead k u t0)))) (\lambda (t: T).(pr1_refl (THead k u t))) (\lambda (t0: 
+T).(\lambda (t3: T).(\lambda (H0: (pr0 t3 t0)).(\lambda (t4: T).(\lambda (_: 
+(pr1 t0 t4)).(\lambda (H2: (pr1 (THead k u t0) (THead k u t4))).(pr1_sing 
+(THead k u t0) (THead k u t3) (pr0_comp u u (pr0_refl u) t3 t0 H0 k) (THead k 
+u t4) H2))))))) t1 t2 H))))).
 
 theorem pr1_comp:
  \forall (v: T).(\forall (w: T).((pr1 v w) \to (\forall (t: T).(\forall (u: 
 T).((pr1 t u) \to (\forall (k: K).(pr1 (THead k v t) (THead k w u))))))))
 \def
- \lambda (v: T).(\lambda (w: T).(\lambda (H: (pr1 v w)).(let TMP_3 \def 
-(\lambda (t: T).(\lambda (t0: T).(\forall (t1: T).(\forall (u: T).((pr1 t1 u) 
-\to (\forall (k: K).(let TMP_1 \def (THead k t t1) in (let TMP_2 \def (THead 
-k t0 u) in (pr1 TMP_1 TMP_2))))))))) in (let TMP_4 \def (\lambda (t: 
-T).(\lambda (t0: T).(\lambda (u: T).(\lambda (H0: (pr1 t0 u)).(\lambda (k: 
-K).(pr1_head_2 t0 u H0 t k)))))) in (let TMP_16 \def (\lambda (t2: 
-T).(\lambda (t1: T).(\lambda (H0: (pr0 t1 t2)).(\lambda (t3: T).(\lambda (H1: 
-(pr1 t2 t3)).(\lambda (_: ((\forall (t: T).(\forall (u: T).((pr1 t u) \to 
-(\forall (k: K).(pr1 (THead k t2 t) (THead k t3 u)))))))).(\lambda (t: 
-T).(\lambda (u: T).(\lambda (H3: (pr1 t u)).(\lambda (k: K).(let TMP_7 \def 
-(\lambda (t0: T).(\lambda (t4: T).(let TMP_5 \def (THead k t1 t0) in (let 
-TMP_6 \def (THead k t3 t4) in (pr1 TMP_5 TMP_6))))) in (let TMP_9 \def 
-(\lambda (t0: T).(let TMP_8 \def (pr1_sing t2 t1 H0 t3 H1) in (pr1_head_1 t1 
-t3 TMP_8 t0 k))) in (let TMP_15 \def (\lambda (t0: T).(\lambda (t4: 
-T).(\lambda (H4: (pr0 t4 t0)).(\lambda (t5: T).(\lambda (_: (pr1 t0 
-t5)).(\lambda (H6: (pr1 (THead k t1 t0) (THead k t3 t5))).(let TMP_10 \def 
-(THead k t1 t0) in (let TMP_11 \def (THead k t1 t4) in (let TMP_12 \def 
-(pr0_refl t1) in (let TMP_13 \def (pr0_comp t1 t1 TMP_12 t4 t0 H4 k) in (let 
-TMP_14 \def (THead k t3 t5) in (pr1_sing TMP_10 TMP_11 TMP_13 TMP_14 
-H6)))))))))))) in (pr1_ind TMP_7 TMP_9 TMP_15 t u H3)))))))))))))) in 
-(pr1_ind TMP_3 TMP_4 TMP_16 v w H)))))).
+ \lambda (v: T).(\lambda (w: T).(\lambda (H: (pr1 v w)).(pr1_ind (\lambda (t: 
+T).(\lambda (t0: T).(\forall (t1: T).(\forall (u: T).((pr1 t1 u) \to (\forall 
+(k: K).(pr1 (THead k t t1) (THead k t0 u)))))))) (\lambda (t: T).(\lambda 
+(t0: T).(\lambda (u: T).(\lambda (H0: (pr1 t0 u)).(\lambda (k: K).(pr1_head_2 
+t0 u H0 t k)))))) (\lambda (t2: T).(\lambda (t1: T).(\lambda (H0: (pr0 t1 
+t2)).(\lambda (t3: T).(\lambda (H1: (pr1 t2 t3)).(\lambda (_: ((\forall (t: 
+T).(\forall (u: T).((pr1 t u) \to (\forall (k: K).(pr1 (THead k t2 t) (THead 
+k t3 u)))))))).(\lambda (t: T).(\lambda (u: T).(\lambda (H3: (pr1 t 
+u)).(\lambda (k: K).(pr1_ind (\lambda (t0: T).(\lambda (t4: T).(pr1 (THead k 
+t1 t0) (THead k t3 t4)))) (\lambda (t0: T).(pr1_head_1 t1 t3 (pr1_sing t2 t1 
+H0 t3 H1) t0 k)) (\lambda (t0: T).(\lambda (t4: T).(\lambda (H4: (pr0 t4 
+t0)).(\lambda (t5: T).(\lambda (_: (pr1 t0 t5)).(\lambda (H6: (pr1 (THead k 
+t1 t0) (THead k t3 t5))).(pr1_sing (THead k t1 t0) (THead k t1 t4) (pr0_comp 
+t1 t1 (pr0_refl t1) t4 t0 H4 k) (THead k t3 t5) H6))))))) t u H3))))))))))) v 
+w H))).
 
 theorem pr1_eta:
  \forall (w: T).(\forall (u: T).(let t \def (THead (Bind Abst) w u) in 
 (\forall (v: T).((pr1 v w) \to (pr1 (THead (Bind Abst) v (THead (Flat Appl) 
 (TLRef O) (lift (S O) O t))) t)))))
 \def
- \lambda (w: T).(\lambda (u: T).(let TMP_1 \def (Bind Abst) in (let t \def 
-(THead TMP_1 w u) in (\lambda (v: T).(\lambda (H: (pr1 v w)).(let TMP_2 \def 
-(Bind Abst) in (let TMP_3 \def (S O) in (let TMP_4 \def (lift TMP_3 O w) in 
-(let TMP_5 \def (S O) in (let TMP_6 \def (S O) in (let TMP_7 \def (lift TMP_5 
-TMP_6 u) in (let TMP_8 \def (THead TMP_2 TMP_4 TMP_7) in (let TMP_16 \def 
-(\lambda (t0: T).(let TMP_9 \def (Bind Abst) in (let TMP_10 \def (Flat Appl) 
-in (let TMP_11 \def (TLRef O) in (let TMP_12 \def (THead TMP_10 TMP_11 t0) in 
-(let TMP_13 \def (THead TMP_9 v TMP_12) in (let TMP_14 \def (Bind Abst) in 
-(let TMP_15 \def (THead TMP_14 w u) in (pr1 TMP_13 TMP_15))))))))) in (let 
-TMP_17 \def (Flat Appl) in (let TMP_18 \def (TLRef O) in (let TMP_19 \def 
-(Bind Abst) in (let TMP_20 \def (S O) in (let TMP_21 \def (lift TMP_20 O w) 
-in (let TMP_22 \def (S O) in (let TMP_23 \def (S O) in (let TMP_24 \def (lift 
-TMP_22 TMP_23 u) in (let TMP_25 \def (THead TMP_19 TMP_21 TMP_24) in (let 
-TMP_26 \def (THead TMP_17 TMP_18 TMP_25) in (let TMP_27 \def (Bind Abbr) in 
-(let TMP_28 \def (TLRef O) in (let TMP_29 \def (S O) in (let TMP_30 \def (S 
-O) in (let TMP_31 \def (lift TMP_29 TMP_30 u) in (let TMP_32 \def (THead 
-TMP_27 TMP_28 TMP_31) in (let TMP_33 \def (Flat Appl) in (let TMP_34 \def 
-(TLRef O) in (let TMP_35 \def (Bind Abst) in (let TMP_36 \def (S O) in (let 
-TMP_37 \def (lift TMP_36 O w) in (let TMP_38 \def (S O) in (let TMP_39 \def 
-(S O) in (let TMP_40 \def (lift TMP_38 TMP_39 u) in (let TMP_41 \def (THead 
-TMP_35 TMP_37 TMP_40) in (let TMP_42 \def (THead TMP_33 TMP_34 TMP_41) in 
-(let TMP_43 \def (S O) in (let TMP_44 \def (lift TMP_43 O w) in (let TMP_45 
-\def (TLRef O) in (let TMP_46 \def (TLRef O) in (let TMP_47 \def (TLRef O) in 
-(let TMP_48 \def (pr0_refl TMP_47) in (let TMP_49 \def (S O) in (let TMP_50 
-\def (S O) in (let TMP_51 \def (lift TMP_49 TMP_50 u) in (let TMP_52 \def (S 
-O) in (let TMP_53 \def (S O) in (let TMP_54 \def (lift TMP_52 TMP_53 u) in 
-(let TMP_55 \def (S O) in (let TMP_56 \def (S O) in (let TMP_57 \def (lift 
-TMP_55 TMP_56 u) in (let TMP_58 \def (pr0_refl TMP_57) in (let TMP_59 \def 
-(pr0_beta TMP_44 TMP_45 TMP_46 TMP_48 TMP_51 TMP_54 TMP_58) in (let TMP_60 
-\def (Bind Abbr) in (let TMP_61 \def (TLRef O) in (let TMP_62 \def (S O) in 
-(let TMP_63 \def (lift TMP_62 O u) in (let TMP_64 \def (THead TMP_60 TMP_61 
-TMP_63) in (let TMP_65 \def (Bind Abbr) in (let TMP_66 \def (TLRef O) in (let 
-TMP_67 \def (S O) in (let TMP_68 \def (S O) in (let TMP_69 \def (lift TMP_67 
-TMP_68 u) in (let TMP_70 \def (THead TMP_65 TMP_66 TMP_69) in (let TMP_71 
-\def (TLRef O) in (let TMP_72 \def (TLRef O) in (let TMP_73 \def (TLRef O) in 
-(let TMP_74 \def (pr0_refl TMP_73) in (let TMP_75 \def (S O) in (let TMP_76 
-\def (S O) in (let TMP_77 \def (lift TMP_75 TMP_76 u) in (let TMP_78 \def (S 
-O) in (let TMP_79 \def (S O) in (let TMP_80 \def (lift TMP_78 TMP_79 u) in 
-(let TMP_81 \def (S O) in (let TMP_82 \def (S O) in (let TMP_83 \def (lift 
-TMP_81 TMP_82 u) in (let TMP_84 \def (pr0_refl TMP_83) in (let TMP_85 \def (S 
-O) in (let TMP_86 \def (lift TMP_85 O u) in (let TMP_87 \def (le_O_n O) in 
-(let TMP_88 \def (subst1_lift_S u O O TMP_87) in (let TMP_89 \def (pr0_delta1 
-TMP_71 TMP_72 TMP_74 TMP_77 TMP_80 TMP_84 TMP_86 TMP_88) in (let TMP_90 \def 
-(Bind Abbr) in (let TMP_91 \def (TLRef O) in (let TMP_92 \def (S O) in (let 
-TMP_93 \def (lift TMP_92 O u) in (let TMP_94 \def (THead TMP_90 TMP_91 
-TMP_93) in (let TMP_95 \def (pr0_refl u) in (let TMP_96 \def (TLRef O) in 
-(let TMP_97 \def (pr0_zeta Abbr not_abbr_abst u u TMP_95 TMP_96) in (let 
-TMP_98 \def (pr1_pr0 TMP_94 u TMP_97) in (let TMP_99 \def (pr1_sing TMP_64 
-TMP_70 TMP_89 u TMP_98) in (let TMP_100 \def (pr1_sing TMP_32 TMP_42 TMP_59 u 
-TMP_99) in (let TMP_101 \def (Bind Abst) in (let TMP_102 \def (pr1_comp v w H 
-TMP_26 u TMP_100 TMP_101) in (let TMP_103 \def (S O) in (let TMP_104 \def 
-(Bind Abst) in (let TMP_105 \def (THead TMP_104 w u) in (let TMP_106 \def 
-(lift TMP_103 O TMP_105) in (let TMP_107 \def (S O) in (let TMP_108 \def 
-(lift_bind Abst w u TMP_107 O) in (eq_ind_r T TMP_8 TMP_16 TMP_102 TMP_106 
-TMP_108)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
-))))))))))))))))))))))))))))))))))).
+ \lambda (w: T).(\lambda (u: T).(let t \def (THead (Bind Abst) w u) in 
+(\lambda (v: T).(\lambda (H: (pr1 v w)).(eq_ind_r T (THead (Bind Abst) (lift 
+(S O) O w) (lift (S O) (S O) u)) (\lambda (t0: T).(pr1 (THead (Bind Abst) v 
+(THead (Flat Appl) (TLRef O) t0)) (THead (Bind Abst) w u))) (pr1_comp v w H 
+(THead (Flat Appl) (TLRef O) (THead (Bind Abst) (lift (S O) O w) (lift (S O) 
+(S O) u))) u (pr1_sing (THead (Bind Abbr) (TLRef O) (lift (S O) (S O) u)) 
+(THead (Flat Appl) (TLRef O) (THead (Bind Abst) (lift (S O) O w) (lift (S O) 
+(S O) u))) (pr0_beta (lift (S O) O w) (TLRef O) (TLRef O) (pr0_refl (TLRef 
+O)) (lift (S O) (S O) u) (lift (S O) (S O) u) (pr0_refl (lift (S O) (S O) 
+u))) u (pr1_sing (THead (Bind Abbr) (TLRef O) (lift (S O) O u)) (THead (Bind 
+Abbr) (TLRef O) (lift (S O) (S O) u)) (pr0_delta1 (TLRef O) (TLRef O) 
+(pr0_refl (TLRef O)) (lift (S O) (S O) u) (lift (S O) (S O) u) (pr0_refl 
+(lift (S O) (S O) u)) (lift (S O) O u) (subst1_lift_S u O O (le_O_n O))) u 
+(pr1_pr0 (THead (Bind Abbr) (TLRef O) (lift (S O) O u)) u (pr0_zeta Abbr 
+not_abbr_abst u u (pr0_refl u) (TLRef O))))) (Bind Abst)) (lift (S O) O 
+(THead (Bind Abst) w u)) (lift_bind Abst w u (S O) O)))))).
 
index 0b256622f96dc1332a23bc5f1517d8915e9bd6d3..fbcbfbf15b38f70f3601577991b25e34fe7b2d87 100644 (file)
@@ -25,103 +25,56 @@ T).(eq K k (Bind Abbr))) (\lambda (t: T).(pr0 t1 t)) (\lambda (t: T).(subst0
 (clen c) u t t2)))))))))
 \def
  \lambda (k: K).(\lambda (c: C).(\lambda (u: T).(\lambda (t1: T).(\lambda 
-(t2: T).(\lambda (H: (pr2 (CTail k u c) t1 t2)).(let TMP_1 \def (CTail k u c) 
-in (let TMP_2 \def (\lambda (c0: C).(pr2 c0 t1 t2)) in (let TMP_10 \def 
-(\lambda (_: C).(let TMP_3 \def (pr2 c t1 t2) in (let TMP_5 \def (\lambda (_: 
-T).(let TMP_4 \def (Bind Abbr) in (eq K k TMP_4))) in (let TMP_6 \def 
-(\lambda (t: T).(pr0 t1 t)) in (let TMP_8 \def (\lambda (t: T).(let TMP_7 
-\def (clen c) in (subst0 TMP_7 u t t2))) in (let TMP_9 \def (ex3 T TMP_5 
-TMP_6 TMP_8) in (or TMP_3 TMP_9))))))) in (let TMP_126 \def (\lambda (y: 
-C).(\lambda (H0: (pr2 y t1 t2)).(let TMP_18 \def (\lambda (c0: C).(\lambda 
-(t: T).(\lambda (t0: T).((eq C c0 (CTail k u c)) \to (let TMP_11 \def (pr2 c 
-t t0) in (let TMP_13 \def (\lambda (_: T).(let TMP_12 \def (Bind Abbr) in (eq 
-K k TMP_12))) in (let TMP_14 \def (\lambda (t3: T).(pr0 t t3)) in (let TMP_16 
-\def (\lambda (t3: T).(let TMP_15 \def (clen c) in (subst0 TMP_15 u t3 t0))) 
-in (let TMP_17 \def (ex3 T TMP_13 TMP_14 TMP_16) in (or TMP_11 
-TMP_17)))))))))) in (let TMP_27 \def (\lambda (c0: C).(\lambda (t3: 
-T).(\lambda (t4: T).(\lambda (H1: (pr0 t3 t4)).(\lambda (_: (eq C c0 (CTail k 
-u c))).(let TMP_19 \def (pr2 c t3 t4) in (let TMP_21 \def (\lambda (_: 
-T).(let TMP_20 \def (Bind Abbr) in (eq K k TMP_20))) in (let TMP_22 \def 
-(\lambda (t: T).(pr0 t3 t)) in (let TMP_24 \def (\lambda (t: T).(let TMP_23 
-\def (clen c) in (subst0 TMP_23 u t t4))) in (let TMP_25 \def (ex3 T TMP_21 
-TMP_22 TMP_24) in (let TMP_26 \def (pr2_free c t3 t4 H1) in (or_introl TMP_19 
-TMP_25 TMP_26)))))))))))) in (let TMP_125 \def (\lambda (c0: C).(\lambda (d: 
-C).(\lambda (u0: T).(\lambda (i: nat).(\lambda (H1: (getl i c0 (CHead d (Bind 
-Abbr) u0))).(\lambda (t3: T).(\lambda (t4: T).(\lambda (H2: (pr0 t3 
-t4)).(\lambda (t: T).(\lambda (H3: (subst0 i u0 t4 t)).(\lambda (H4: (eq C c0 
-(CTail k u c))).(let TMP_30 \def (\lambda (c1: C).(let TMP_28 \def (Bind 
-Abbr) in (let TMP_29 \def (CHead d TMP_28 u0) in (getl i c1 TMP_29)))) in 
-(let TMP_31 \def (CTail k u c) in (let H5 \def (eq_ind C c0 TMP_30 H1 TMP_31 
-H4) in (let H_x \def (getl_gen_tail k Abbr u u0 d c i H5) in (let H6 \def H_x 
-in (let TMP_33 \def (\lambda (e: C).(let TMP_32 \def (CTail k u e) in (eq C d 
-TMP_32))) in (let TMP_36 \def (\lambda (e: C).(let TMP_34 \def (Bind Abbr) in 
-(let TMP_35 \def (CHead e TMP_34 u0) in (getl i c TMP_35)))) in (let TMP_37 
-\def (ex2 C TMP_33 TMP_36) in (let TMP_39 \def (\lambda (_: nat).(let TMP_38 
-\def (clen c) in (eq nat i TMP_38))) in (let TMP_41 \def (\lambda (_: 
-nat).(let TMP_40 \def (Bind Abbr) in (eq K k TMP_40))) in (let TMP_42 \def 
-(\lambda (_: nat).(eq T u u0)) in (let TMP_44 \def (\lambda (n: nat).(let 
-TMP_43 \def (CSort n) in (eq C d TMP_43))) in (let TMP_45 \def (ex4 nat 
-TMP_39 TMP_41 TMP_42 TMP_44) in (let TMP_46 \def (pr2 c t3 t) in (let TMP_48 
-\def (\lambda (_: T).(let TMP_47 \def (Bind Abbr) in (eq K k TMP_47))) in 
-(let TMP_49 \def (\lambda (t0: T).(pr0 t3 t0)) in (let TMP_51 \def (\lambda 
-(t0: T).(let TMP_50 \def (clen c) in (subst0 TMP_50 u t0 t))) in (let TMP_52 
-\def (ex3 T TMP_48 TMP_49 TMP_51) in (let TMP_53 \def (or TMP_46 TMP_52) in 
-(let TMP_76 \def (\lambda (H7: (ex2 C (\lambda (e: C).(eq C d (CTail k u e))) 
-(\lambda (e: C).(getl i c (CHead e (Bind Abbr) u0))))).(let TMP_55 \def 
-(\lambda (e: C).(let TMP_54 \def (CTail k u e) in (eq C d TMP_54))) in (let 
-TMP_58 \def (\lambda (e: C).(let TMP_56 \def (Bind Abbr) in (let TMP_57 \def 
-(CHead e TMP_56 u0) in (getl i c TMP_57)))) in (let TMP_59 \def (pr2 c t3 t) 
-in (let TMP_61 \def (\lambda (_: T).(let TMP_60 \def (Bind Abbr) in (eq K k 
-TMP_60))) in (let TMP_62 \def (\lambda (t0: T).(pr0 t3 t0)) in (let TMP_64 
-\def (\lambda (t0: T).(let TMP_63 \def (clen c) in (subst0 TMP_63 u t0 t))) 
-in (let TMP_65 \def (ex3 T TMP_61 TMP_62 TMP_64) in (let TMP_66 \def (or 
-TMP_59 TMP_65) in (let TMP_75 \def (\lambda (x: C).(\lambda (_: (eq C d 
-(CTail k u x))).(\lambda (H9: (getl i c (CHead x (Bind Abbr) u0))).(let 
-TMP_67 \def (pr2 c t3 t) in (let TMP_69 \def (\lambda (_: T).(let TMP_68 \def 
-(Bind Abbr) in (eq K k TMP_68))) in (let TMP_70 \def (\lambda (t0: T).(pr0 t3 
-t0)) in (let TMP_72 \def (\lambda (t0: T).(let TMP_71 \def (clen c) in 
-(subst0 TMP_71 u t0 t))) in (let TMP_73 \def (ex3 T TMP_69 TMP_70 TMP_72) in 
-(let TMP_74 \def (pr2_delta c x u0 i H9 t3 t4 H2 t H3) in (or_introl TMP_67 
-TMP_73 TMP_74)))))))))) in (ex2_ind C TMP_55 TMP_58 TMP_66 TMP_75 
-H7))))))))))) in (let TMP_124 \def (\lambda (H7: (ex4 nat (\lambda (_: 
-nat).(eq nat i (clen c))) (\lambda (_: nat).(eq K k (Bind Abbr))) (\lambda 
-(_: nat).(eq T u u0)) (\lambda (n: nat).(eq C d (CSort n))))).(let TMP_78 
-\def (\lambda (_: nat).(let TMP_77 \def (clen c) in (eq nat i TMP_77))) in 
-(let TMP_80 \def (\lambda (_: nat).(let TMP_79 \def (Bind Abbr) in (eq K k 
-TMP_79))) in (let TMP_81 \def (\lambda (_: nat).(eq T u u0)) in (let TMP_83 
-\def (\lambda (n: nat).(let TMP_82 \def (CSort n) in (eq C d TMP_82))) in 
-(let TMP_84 \def (pr2 c t3 t) in (let TMP_86 \def (\lambda (_: T).(let TMP_85 
-\def (Bind Abbr) in (eq K k TMP_85))) in (let TMP_87 \def (\lambda (t0: 
-T).(pr0 t3 t0)) in (let TMP_89 \def (\lambda (t0: T).(let TMP_88 \def (clen 
-c) in (subst0 TMP_88 u t0 t))) in (let TMP_90 \def (ex3 T TMP_86 TMP_87 
-TMP_89) in (let TMP_91 \def (or TMP_84 TMP_90) in (let TMP_123 \def (\lambda 
-(x0: nat).(\lambda (H8: (eq nat i (clen c))).(\lambda (H9: (eq K k (Bind 
-Abbr))).(\lambda (H10: (eq T u u0)).(\lambda (_: (eq C d (CSort x0))).(let 
-TMP_92 \def (\lambda (n: nat).(subst0 n u0 t4 t)) in (let TMP_93 \def (clen 
-c) in (let H12 \def (eq_ind nat i TMP_92 H3 TMP_93 H8) in (let TMP_95 \def 
-(\lambda (t0: T).(let TMP_94 \def (clen c) in (subst0 TMP_94 t0 t4 t))) in 
-(let H13 \def (eq_ind_r T u0 TMP_95 H12 u H10) in (let TMP_96 \def (Bind 
-Abbr) in (let TMP_104 \def (\lambda (k0: K).(let TMP_97 \def (pr2 c t3 t) in 
-(let TMP_99 \def (\lambda (_: T).(let TMP_98 \def (Bind Abbr) in (eq K k0 
-TMP_98))) in (let TMP_100 \def (\lambda (t0: T).(pr0 t3 t0)) in (let TMP_102 
-\def (\lambda (t0: T).(let TMP_101 \def (clen c) in (subst0 TMP_101 u t0 t))) 
-in (let TMP_103 \def (ex3 T TMP_99 TMP_100 TMP_102) in (or TMP_97 
-TMP_103))))))) in (let TMP_105 \def (pr2 c t3 t) in (let TMP_108 \def 
-(\lambda (_: T).(let TMP_106 \def (Bind Abbr) in (let TMP_107 \def (Bind 
-Abbr) in (eq K TMP_106 TMP_107)))) in (let TMP_109 \def (\lambda (t0: T).(pr0 
-t3 t0)) in (let TMP_111 \def (\lambda (t0: T).(let TMP_110 \def (clen c) in 
-(subst0 TMP_110 u t0 t))) in (let TMP_112 \def (ex3 T TMP_108 TMP_109 
-TMP_111) in (let TMP_115 \def (\lambda (_: T).(let TMP_113 \def (Bind Abbr) 
-in (let TMP_114 \def (Bind Abbr) in (eq K TMP_113 TMP_114)))) in (let TMP_116 
-\def (\lambda (t0: T).(pr0 t3 t0)) in (let TMP_118 \def (\lambda (t0: T).(let 
-TMP_117 \def (clen c) in (subst0 TMP_117 u t0 t))) in (let TMP_119 \def (Bind 
-Abbr) in (let TMP_120 \def (refl_equal K TMP_119) in (let TMP_121 \def 
-(ex3_intro T TMP_115 TMP_116 TMP_118 t4 TMP_120 H2 H13) in (let TMP_122 \def 
-(or_intror TMP_105 TMP_112 TMP_121) in (eq_ind_r K TMP_96 TMP_104 TMP_122 k 
-H9))))))))))))))))))))))))) in (ex4_ind nat TMP_78 TMP_80 TMP_81 TMP_83 
-TMP_91 TMP_123 H7))))))))))))) in (or_ind TMP_37 TMP_45 TMP_53 TMP_76 TMP_124 
-H6))))))))))))))))))))))))))))))))) in (pr2_ind TMP_18 TMP_27 TMP_125 y t1 t2 
-H0)))))) in (insert_eq C TMP_1 TMP_2 TMP_10 TMP_126 H)))))))))).
+(t2: T).(\lambda (H: (pr2 (CTail k u c) t1 t2)).(insert_eq C (CTail k u c) 
+(\lambda (c0: C).(pr2 c0 t1 t2)) (\lambda (_: C).(or (pr2 c t1 t2) (ex3 T 
+(\lambda (_: T).(eq K k (Bind Abbr))) (\lambda (t: T).(pr0 t1 t)) (\lambda 
+(t: T).(subst0 (clen c) u t t2))))) (\lambda (y: C).(\lambda (H0: (pr2 y t1 
+t2)).(pr2_ind (\lambda (c0: C).(\lambda (t: T).(\lambda (t0: T).((eq C c0 
+(CTail k u c)) \to (or (pr2 c t t0) (ex3 T (\lambda (_: T).(eq K k (Bind 
+Abbr))) (\lambda (t3: T).(pr0 t t3)) (\lambda (t3: T).(subst0 (clen c) u t3 
+t0)))))))) (\lambda (c0: C).(\lambda (t3: T).(\lambda (t4: T).(\lambda (H1: 
+(pr0 t3 t4)).(\lambda (_: (eq C c0 (CTail k u c))).(or_introl (pr2 c t3 t4) 
+(ex3 T (\lambda (_: T).(eq K k (Bind Abbr))) (\lambda (t: T).(pr0 t3 t)) 
+(\lambda (t: T).(subst0 (clen c) u t t4))) (pr2_free c t3 t4 H1))))))) 
+(\lambda (c0: C).(\lambda (d: C).(\lambda (u0: T).(\lambda (i: nat).(\lambda 
+(H1: (getl i c0 (CHead d (Bind Abbr) u0))).(\lambda (t3: T).(\lambda (t4: 
+T).(\lambda (H2: (pr0 t3 t4)).(\lambda (t: T).(\lambda (H3: (subst0 i u0 t4 
+t)).(\lambda (H4: (eq C c0 (CTail k u c))).(let H5 \def (eq_ind C c0 (\lambda 
+(c1: C).(getl i c1 (CHead d (Bind Abbr) u0))) H1 (CTail k u c) H4) in (let 
+H_x \def (getl_gen_tail k Abbr u u0 d c i H5) in (let H6 \def H_x in (or_ind 
+(ex2 C (\lambda (e: C).(eq C d (CTail k u e))) (\lambda (e: C).(getl i c 
+(CHead e (Bind Abbr) u0)))) (ex4 nat (\lambda (_: nat).(eq nat i (clen c))) 
+(\lambda (_: nat).(eq K k (Bind Abbr))) (\lambda (_: nat).(eq T u u0)) 
+(\lambda (n: nat).(eq C d (CSort n)))) (or (pr2 c t3 t) (ex3 T (\lambda (_: 
+T).(eq K k (Bind Abbr))) (\lambda (t0: T).(pr0 t3 t0)) (\lambda (t0: 
+T).(subst0 (clen c) u t0 t)))) (\lambda (H7: (ex2 C (\lambda (e: C).(eq C d 
+(CTail k u e))) (\lambda (e: C).(getl i c (CHead e (Bind Abbr) 
+u0))))).(ex2_ind C (\lambda (e: C).(eq C d (CTail k u e))) (\lambda (e: 
+C).(getl i c (CHead e (Bind Abbr) u0))) (or (pr2 c t3 t) (ex3 T (\lambda (_: 
+T).(eq K k (Bind Abbr))) (\lambda (t0: T).(pr0 t3 t0)) (\lambda (t0: 
+T).(subst0 (clen c) u t0 t)))) (\lambda (x: C).(\lambda (_: (eq C d (CTail k 
+u x))).(\lambda (H9: (getl i c (CHead x (Bind Abbr) u0))).(or_introl (pr2 c 
+t3 t) (ex3 T (\lambda (_: T).(eq K k (Bind Abbr))) (\lambda (t0: T).(pr0 t3 
+t0)) (\lambda (t0: T).(subst0 (clen c) u t0 t))) (pr2_delta c x u0 i H9 t3 t4 
+H2 t H3))))) H7)) (\lambda (H7: (ex4 nat (\lambda (_: nat).(eq nat i (clen 
+c))) (\lambda (_: nat).(eq K k (Bind Abbr))) (\lambda (_: nat).(eq T u u0)) 
+(\lambda (n: nat).(eq C d (CSort n))))).(ex4_ind nat (\lambda (_: nat).(eq 
+nat i (clen c))) (\lambda (_: nat).(eq K k (Bind Abbr))) (\lambda (_: 
+nat).(eq T u u0)) (\lambda (n: nat).(eq C d (CSort n))) (or (pr2 c t3 t) (ex3 
+T (\lambda (_: T).(eq K k (Bind Abbr))) (\lambda (t0: T).(pr0 t3 t0)) 
+(\lambda (t0: T).(subst0 (clen c) u t0 t)))) (\lambda (x0: nat).(\lambda (H8: 
+(eq nat i (clen c))).(\lambda (H9: (eq K k (Bind Abbr))).(\lambda (H10: (eq T 
+u u0)).(\lambda (_: (eq C d (CSort x0))).(let H12 \def (eq_ind nat i (\lambda 
+(n: nat).(subst0 n u0 t4 t)) H3 (clen c) H8) in (let H13 \def (eq_ind_r T u0 
+(\lambda (t0: T).(subst0 (clen c) t0 t4 t)) H12 u H10) in (eq_ind_r K (Bind 
+Abbr) (\lambda (k0: K).(or (pr2 c t3 t) (ex3 T (\lambda (_: T).(eq K k0 (Bind 
+Abbr))) (\lambda (t0: T).(pr0 t3 t0)) (\lambda (t0: T).(subst0 (clen c) u t0 
+t))))) (or_intror (pr2 c t3 t) (ex3 T (\lambda (_: T).(eq K (Bind Abbr) (Bind 
+Abbr))) (\lambda (t0: T).(pr0 t3 t0)) (\lambda (t0: T).(subst0 (clen c) u t0 
+t))) (ex3_intro T (\lambda (_: T).(eq K (Bind Abbr) (Bind Abbr))) (\lambda 
+(t0: T).(pr0 t3 t0)) (\lambda (t0: T).(subst0 (clen c) u t0 t)) t4 
+(refl_equal K (Bind Abbr)) H2 H13)) k H9)))))))) H7)) H6))))))))))))))) y t1 
+t2 H0))) H)))))).
 
 theorem pr2_gen_cbind:
  \forall (b: B).(\forall (c: C).(\forall (v: T).(\forall (t1: T).(\forall 
@@ -129,119 +82,70 @@ theorem pr2_gen_cbind:
 (THead (Bind b) v t2)))))))
 \def
  \lambda (b: B).(\lambda (c: C).(\lambda (v: T).(\lambda (t1: T).(\lambda 
-(t2: T).(\lambda (H: (pr2 (CHead c (Bind b) v) t1 t2)).(let TMP_1 \def (Bind 
-b) in (let TMP_2 \def (CHead c TMP_1 v) in (let TMP_3 \def (\lambda (c0: 
-C).(pr2 c0 t1 t2)) in (let TMP_8 \def (\lambda (_: C).(let TMP_4 \def (Bind 
-b) in (let TMP_5 \def (THead TMP_4 v t1) in (let TMP_6 \def (Bind b) in (let 
-TMP_7 \def (THead TMP_6 v t2) in (pr2 c TMP_5 TMP_7)))))) in (let TMP_119 
-\def (\lambda (y: C).(\lambda (H0: (pr2 y t1 t2)).(let TMP_13 \def (\lambda 
-(c0: C).(\lambda (t: T).(\lambda (t0: T).((eq C c0 (CHead c (Bind b) v)) \to 
-(let TMP_9 \def (Bind b) in (let TMP_10 \def (THead TMP_9 v t) in (let TMP_11 
-\def (Bind b) in (let TMP_12 \def (THead TMP_11 v t0) in (pr2 c TMP_10 
-TMP_12))))))))) in (let TMP_21 \def (\lambda (c0: C).(\lambda (t3: 
-T).(\lambda (t4: T).(\lambda (H1: (pr0 t3 t4)).(\lambda (_: (eq C c0 (CHead c 
-(Bind b) v))).(let TMP_14 \def (Bind b) in (let TMP_15 \def (THead TMP_14 v 
-t3) in (let TMP_16 \def (Bind b) in (let TMP_17 \def (THead TMP_16 v t4) in 
-(let TMP_18 \def (pr0_refl v) in (let TMP_19 \def (Bind b) in (let TMP_20 
-\def (pr0_comp v v TMP_18 t3 t4 H1 TMP_19) in (pr2_free c TMP_15 TMP_17 
-TMP_20))))))))))))) in (let TMP_118 \def (\lambda (c0: C).(\lambda (d: 
-C).(\lambda (u: T).(\lambda (i: nat).(\lambda (H1: (getl i c0 (CHead d (Bind 
-Abbr) u))).(\lambda (t3: T).(\lambda (t4: T).(\lambda (H2: (pr0 t3 
-t4)).(\lambda (t: T).(\lambda (H3: (subst0 i u t4 t)).(\lambda (H4: (eq C c0 
-(CHead c (Bind b) v))).(let TMP_24 \def (\lambda (c1: C).(let TMP_22 \def 
-(Bind Abbr) in (let TMP_23 \def (CHead d TMP_22 u) in (getl i c1 TMP_23)))) 
-in (let TMP_25 \def (Bind b) in (let TMP_26 \def (CHead c TMP_25 v) in (let 
-H5 \def (eq_ind C c0 TMP_24 H1 TMP_26 H4) in (let TMP_27 \def (Bind Abbr) in 
-(let TMP_28 \def (CHead d TMP_27 u) in (let H_x \def (getl_gen_bind b c 
-TMP_28 v i H5) in (let H6 \def H_x in (let TMP_29 \def (eq nat i O) in (let 
-TMP_30 \def (Bind Abbr) in (let TMP_31 \def (CHead d TMP_30 u) in (let TMP_32 
-\def (Bind b) in (let TMP_33 \def (CHead c TMP_32 v) in (let TMP_34 \def (eq 
-C TMP_31 TMP_33) in (let TMP_35 \def (land TMP_29 TMP_34) in (let TMP_37 \def 
-(\lambda (j: nat).(let TMP_36 \def (S j) in (eq nat i TMP_36))) in (let 
-TMP_40 \def (\lambda (j: nat).(let TMP_38 \def (Bind Abbr) in (let TMP_39 
-\def (CHead d TMP_38 u) in (getl j c TMP_39)))) in (let TMP_41 \def (ex2 nat 
-TMP_37 TMP_40) in (let TMP_42 \def (Bind b) in (let TMP_43 \def (THead TMP_42 
-v t3) in (let TMP_44 \def (Bind b) in (let TMP_45 \def (THead TMP_44 v t) in 
-(let TMP_46 \def (pr2 c TMP_43 TMP_45) in (let TMP_90 \def (\lambda (H7: 
-(land (eq nat i O) (eq C (CHead d (Bind Abbr) u) (CHead c (Bind b) v)))).(let 
-TMP_47 \def (eq nat i O) in (let TMP_48 \def (Bind Abbr) in (let TMP_49 \def 
-(CHead d TMP_48 u) in (let TMP_50 \def (Bind b) in (let TMP_51 \def (CHead c 
-TMP_50 v) in (let TMP_52 \def (eq C TMP_49 TMP_51) in (let TMP_53 \def (Bind 
-b) in (let TMP_54 \def (THead TMP_53 v t3) in (let TMP_55 \def (Bind b) in 
-(let TMP_56 \def (THead TMP_55 v t) in (let TMP_57 \def (pr2 c TMP_54 TMP_56) 
-in (let TMP_89 \def (\lambda (H8: (eq nat i O)).(\lambda (H9: (eq C (CHead d 
-(Bind Abbr) u) (CHead c (Bind b) v))).(let TMP_58 \def (\lambda (e: C).(match 
-e with [(CSort _) \Rightarrow d | (CHead c1 _ _) \Rightarrow c1])) in (let 
-TMP_59 \def (Bind Abbr) in (let TMP_60 \def (CHead d TMP_59 u) in (let TMP_61 
-\def (Bind b) in (let TMP_62 \def (CHead c TMP_61 v) in (let H10 \def 
-(f_equal C C TMP_58 TMP_60 TMP_62 H9) in (let TMP_63 \def (\lambda (e: 
-C).(match e with [(CSort _) \Rightarrow Abbr | (CHead _ k _) \Rightarrow 
-(match k with [(Bind b0) \Rightarrow b0 | (Flat _) \Rightarrow Abbr])])) in 
-(let TMP_64 \def (Bind Abbr) in (let TMP_65 \def (CHead d TMP_64 u) in (let 
-TMP_66 \def (Bind b) in (let TMP_67 \def (CHead c TMP_66 v) in (let H11 \def 
-(f_equal C B TMP_63 TMP_65 TMP_67 H9) in (let TMP_68 \def (\lambda (e: 
-C).(match e with [(CSort _) \Rightarrow u | (CHead _ _ t0) \Rightarrow t0])) 
-in (let TMP_69 \def (Bind Abbr) in (let TMP_70 \def (CHead d TMP_69 u) in 
-(let TMP_71 \def (Bind b) in (let TMP_72 \def (CHead c TMP_71 v) in (let H12 
-\def (f_equal C T TMP_68 TMP_70 TMP_72 H9) in (let TMP_87 \def (\lambda (H13: 
-(eq B Abbr b)).(\lambda (_: (eq C d c)).(let TMP_73 \def (\lambda (n: 
-nat).(subst0 n u t4 t)) in (let H15 \def (eq_ind nat i TMP_73 H3 O H8) in 
-(let TMP_74 \def (\lambda (t0: T).(subst0 O t0 t4 t)) in (let H16 \def 
-(eq_ind T u TMP_74 H15 v H12) in (let TMP_79 \def (\lambda (b0: B).(let 
-TMP_75 \def (Bind b0) in (let TMP_76 \def (THead TMP_75 v t3) in (let TMP_77 
-\def (Bind b0) in (let TMP_78 \def (THead TMP_77 v t) in (pr2 c TMP_76 
-TMP_78)))))) in (let TMP_80 \def (Bind Abbr) in (let TMP_81 \def (THead 
-TMP_80 v t3) in (let TMP_82 \def (Bind Abbr) in (let TMP_83 \def (THead 
-TMP_82 v t) in (let TMP_84 \def (pr0_refl v) in (let TMP_85 \def (pr0_delta v 
-v TMP_84 t3 t4 H2 t H16) in (let TMP_86 \def (pr2_free c TMP_81 TMP_83 
-TMP_85) in (eq_ind B Abbr TMP_79 TMP_86 b H13))))))))))))))) in (let TMP_88 
-\def (TMP_87 H11) in (TMP_88 H10))))))))))))))))))))))) in (land_ind TMP_47 
-TMP_52 TMP_57 TMP_89 H7)))))))))))))) in (let TMP_117 \def (\lambda (H7: (ex2 
-nat (\lambda (j: nat).(eq nat i (S j))) (\lambda (j: nat).(getl j c (CHead d 
-(Bind Abbr) u))))).(let TMP_92 \def (\lambda (j: nat).(let TMP_91 \def (S j) 
-in (eq nat i TMP_91))) in (let TMP_95 \def (\lambda (j: nat).(let TMP_93 \def 
-(Bind Abbr) in (let TMP_94 \def (CHead d TMP_93 u) in (getl j c TMP_94)))) in 
-(let TMP_96 \def (Bind b) in (let TMP_97 \def (THead TMP_96 v t3) in (let 
-TMP_98 \def (Bind b) in (let TMP_99 \def (THead TMP_98 v t) in (let TMP_100 
-\def (pr2 c TMP_97 TMP_99) in (let TMP_116 \def (\lambda (x: nat).(\lambda 
-(H8: (eq nat i (S x))).(\lambda (H9: (getl x c (CHead d (Bind Abbr) u))).(let 
-TMP_101 \def (\lambda (e: nat).e) in (let TMP_102 \def (S x) in (let H10 \def 
-(f_equal nat nat TMP_101 i TMP_102 H8) in (let TMP_103 \def (\lambda (n: 
-nat).(subst0 n u t4 t)) in (let TMP_104 \def (S x) in (let H11 \def (eq_ind 
-nat i TMP_103 H3 TMP_104 H10) in (let TMP_105 \def (Bind b) in (let TMP_106 
-\def (Bind b) in (let TMP_107 \def (CHead c TMP_106 v) in (let TMP_108 \def 
-(S x) in (let TMP_109 \def (Bind b) in (let TMP_110 \def (CHead c TMP_109 v) 
-in (let TMP_111 \def (clear_bind b c v) in (let TMP_112 \def (Bind Abbr) in 
-(let TMP_113 \def (CHead d TMP_112 u) in (let TMP_114 \def (getl_clear_bind b 
-TMP_110 c v TMP_111 TMP_113 x H9) in (let TMP_115 \def (pr2_delta TMP_107 d u 
-TMP_108 TMP_114 t3 t4 H2 t H11) in (pr2_head_2 c v t3 t TMP_105 
-TMP_115))))))))))))))))))))) in (ex2_ind nat TMP_92 TMP_95 TMP_100 TMP_116 
-H7)))))))))) in (or_ind TMP_35 TMP_41 TMP_46 TMP_90 TMP_117 
-H6))))))))))))))))))))))))))))))))))))) in (pr2_ind TMP_13 TMP_21 TMP_118 y 
-t1 t2 H0)))))) in (insert_eq C TMP_2 TMP_3 TMP_8 TMP_119 H))))))))))).
+(t2: T).(\lambda (H: (pr2 (CHead c (Bind b) v) t1 t2)).(insert_eq C (CHead c 
+(Bind b) v) (\lambda (c0: C).(pr2 c0 t1 t2)) (\lambda (_: C).(pr2 c (THead 
+(Bind b) v t1) (THead (Bind b) v t2))) (\lambda (y: C).(\lambda (H0: (pr2 y 
+t1 t2)).(pr2_ind (\lambda (c0: C).(\lambda (t: T).(\lambda (t0: T).((eq C c0 
+(CHead c (Bind b) v)) \to (pr2 c (THead (Bind b) v t) (THead (Bind b) v 
+t0)))))) (\lambda (c0: C).(\lambda (t3: T).(\lambda (t4: T).(\lambda (H1: 
+(pr0 t3 t4)).(\lambda (_: (eq C c0 (CHead c (Bind b) v))).(pr2_free c (THead 
+(Bind b) v t3) (THead (Bind b) v t4) (pr0_comp v v (pr0_refl v) t3 t4 H1 
+(Bind b)))))))) (\lambda (c0: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: 
+nat).(\lambda (H1: (getl i c0 (CHead d (Bind Abbr) u))).(\lambda (t3: 
+T).(\lambda (t4: T).(\lambda (H2: (pr0 t3 t4)).(\lambda (t: T).(\lambda (H3: 
+(subst0 i u t4 t)).(\lambda (H4: (eq C c0 (CHead c (Bind b) v))).(let H5 \def 
+(eq_ind C c0 (\lambda (c1: C).(getl i c1 (CHead d (Bind Abbr) u))) H1 (CHead 
+c (Bind b) v) H4) in (let H_x \def (getl_gen_bind b c (CHead d (Bind Abbr) u) 
+v i H5) in (let H6 \def H_x in (or_ind (land (eq nat i O) (eq C (CHead d 
+(Bind Abbr) u) (CHead c (Bind b) v))) (ex2 nat (\lambda (j: nat).(eq nat i (S 
+j))) (\lambda (j: nat).(getl j c (CHead d (Bind Abbr) u)))) (pr2 c (THead 
+(Bind b) v t3) (THead (Bind b) v t)) (\lambda (H7: (land (eq nat i O) (eq C 
+(CHead d (Bind Abbr) u) (CHead c (Bind b) v)))).(land_ind (eq nat i O) (eq C 
+(CHead d (Bind Abbr) u) (CHead c (Bind b) v)) (pr2 c (THead (Bind b) v t3) 
+(THead (Bind b) v t)) (\lambda (H8: (eq nat i O)).(\lambda (H9: (eq C (CHead 
+d (Bind Abbr) u) (CHead c (Bind b) v))).(let H10 \def (f_equal C C (\lambda 
+(e: C).(match e with [(CSort _) \Rightarrow d | (CHead c1 _ _) \Rightarrow 
+c1])) (CHead d (Bind Abbr) u) (CHead c (Bind b) v) H9) in ((let H11 \def 
+(f_equal C B (\lambda (e: C).(match e with [(CSort _) \Rightarrow Abbr | 
+(CHead _ k _) \Rightarrow (match k with [(Bind b0) \Rightarrow b0 | (Flat _) 
+\Rightarrow Abbr])])) (CHead d (Bind Abbr) u) (CHead c (Bind b) v) H9) in 
+((let H12 \def (f_equal C T (\lambda (e: C).(match e with [(CSort _) 
+\Rightarrow u | (CHead _ _ t0) \Rightarrow t0])) (CHead d (Bind Abbr) u) 
+(CHead c (Bind b) v) H9) in (\lambda (H13: (eq B Abbr b)).(\lambda (_: (eq C 
+d c)).(let H15 \def (eq_ind nat i (\lambda (n: nat).(subst0 n u t4 t)) H3 O 
+H8) in (let H16 \def (eq_ind T u (\lambda (t0: T).(subst0 O t0 t4 t)) H15 v 
+H12) in (eq_ind B Abbr (\lambda (b0: B).(pr2 c (THead (Bind b0) v t3) (THead 
+(Bind b0) v t))) (pr2_free c (THead (Bind Abbr) v t3) (THead (Bind Abbr) v t) 
+(pr0_delta v v (pr0_refl v) t3 t4 H2 t H16)) b H13)))))) H11)) H10)))) H7)) 
+(\lambda (H7: (ex2 nat (\lambda (j: nat).(eq nat i (S j))) (\lambda (j: 
+nat).(getl j c (CHead d (Bind Abbr) u))))).(ex2_ind nat (\lambda (j: nat).(eq 
+nat i (S j))) (\lambda (j: nat).(getl j c (CHead d (Bind Abbr) u))) (pr2 c 
+(THead (Bind b) v t3) (THead (Bind b) v t)) (\lambda (x: nat).(\lambda (H8: 
+(eq nat i (S x))).(\lambda (H9: (getl x c (CHead d (Bind Abbr) u))).(let H10 
+\def (f_equal nat nat (\lambda (e: nat).e) i (S x) H8) in (let H11 \def 
+(eq_ind nat i (\lambda (n: nat).(subst0 n u t4 t)) H3 (S x) H10) in 
+(pr2_head_2 c v t3 t (Bind b) (pr2_delta (CHead c (Bind b) v) d u (S x) 
+(getl_clear_bind b (CHead c (Bind b) v) c v (clear_bind b c v) (CHead d (Bind 
+Abbr) u) x H9) t3 t4 H2 t H11))))))) H7)) H6))))))))))))))) y t1 t2 H0))) 
+H)))))).
 
 theorem pr2_gen_cflat:
  \forall (f: F).(\forall (c: C).(\forall (v: T).(\forall (t1: T).(\forall 
 (t2: T).((pr2 (CHead c (Flat f) v) t1 t2) \to (pr2 c t1 t2))))))
 \def
  \lambda (f: F).(\lambda (c: C).(\lambda (v: T).(\lambda (t1: T).(\lambda 
-(t2: T).(\lambda (H: (pr2 (CHead c (Flat f) v) t1 t2)).(let TMP_1 \def (Flat 
-f) in (let TMP_2 \def (CHead c TMP_1 v) in (let TMP_3 \def (\lambda (c0: 
-C).(pr2 c0 t1 t2)) in (let TMP_4 \def (\lambda (_: C).(pr2 c t1 t2)) in (let 
-TMP_15 \def (\lambda (y: C).(\lambda (H0: (pr2 y t1 t2)).(let TMP_5 \def 
-(\lambda (c0: C).(\lambda (t: T).(\lambda (t0: T).((eq C c0 (CHead c (Flat f) 
-v)) \to (pr2 c t t0))))) in (let TMP_6 \def (\lambda (c0: C).(\lambda (t3: 
-T).(\lambda (t4: T).(\lambda (H1: (pr0 t3 t4)).(\lambda (_: (eq C c0 (CHead c 
-(Flat f) v))).(pr2_free c t3 t4 H1)))))) in (let TMP_14 \def (\lambda (c0: 
-C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: nat).(\lambda (H1: (getl i c0 
-(CHead d (Bind Abbr) u))).(\lambda (t3: T).(\lambda (t4: T).(\lambda (H2: 
-(pr0 t3 t4)).(\lambda (t: T).(\lambda (H3: (subst0 i u t4 t)).(\lambda (H4: 
-(eq C c0 (CHead c (Flat f) v))).(let TMP_9 \def (\lambda (c1: C).(let TMP_7 
-\def (Bind Abbr) in (let TMP_8 \def (CHead d TMP_7 u) in (getl i c1 TMP_8)))) 
-in (let TMP_10 \def (Flat f) in (let TMP_11 \def (CHead c TMP_10 v) in (let 
-H5 \def (eq_ind C c0 TMP_9 H1 TMP_11 H4) in (let TMP_12 \def (Bind Abbr) in 
-(let TMP_13 \def (CHead d TMP_12 u) in (let H_y \def (getl_gen_flat f c 
-TMP_13 v i H5) in (pr2_delta c d u i H_y t3 t4 H2 t H3))))))))))))))))))) in 
-(pr2_ind TMP_5 TMP_6 TMP_14 y t1 t2 H0)))))) in (insert_eq C TMP_2 TMP_3 
-TMP_4 TMP_15 H))))))))))).
+(t2: T).(\lambda (H: (pr2 (CHead c (Flat f) v) t1 t2)).(insert_eq C (CHead c 
+(Flat f) v) (\lambda (c0: C).(pr2 c0 t1 t2)) (\lambda (_: C).(pr2 c t1 t2)) 
+(\lambda (y: C).(\lambda (H0: (pr2 y t1 t2)).(pr2_ind (\lambda (c0: 
+C).(\lambda (t: T).(\lambda (t0: T).((eq C c0 (CHead c (Flat f) v)) \to (pr2 
+c t t0))))) (\lambda (c0: C).(\lambda (t3: T).(\lambda (t4: T).(\lambda (H1: 
+(pr0 t3 t4)).(\lambda (_: (eq C c0 (CHead c (Flat f) v))).(pr2_free c t3 t4 
+H1)))))) (\lambda (c0: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: 
+nat).(\lambda (H1: (getl i c0 (CHead d (Bind Abbr) u))).(\lambda (t3: 
+T).(\lambda (t4: T).(\lambda (H2: (pr0 t3 t4)).(\lambda (t: T).(\lambda (H3: 
+(subst0 i u t4 t)).(\lambda (H4: (eq C c0 (CHead c (Flat f) v))).(let H5 \def 
+(eq_ind C c0 (\lambda (c1: C).(getl i c1 (CHead d (Bind Abbr) u))) H1 (CHead 
+c (Flat f) v) H4) in (let H_y \def (getl_gen_flat f c (CHead d (Bind Abbr) u) 
+v i H5) in (pr2_delta c d u i H_y t3 t4 H2 t H3)))))))))))))) y t1 t2 H0))) 
+H)))))).
 
index 406d8bcd2c3daccea3ec9a4834326eeb58c3c51b..df933985d13bde771f1a1d2fb65930b72ca4b33a 100644 (file)
@@ -26,16 +26,12 @@ t1) \to ((pr0 t0 t2) \to (ex2 T (\lambda (t: T).(pr2 c t1 t)) (\lambda (t:
 T).(pr2 c t2 t))))))))
 \def
  \lambda (c: C).(\lambda (t0: T).(\lambda (t1: T).(\lambda (t2: T).(\lambda 
-(H: (pr0 t0 t1)).(\lambda (H0: (pr0 t0 t2)).(let TMP_1 \def (\lambda (t: 
-T).(pr0 t2 t)) in (let TMP_2 \def (\lambda (t: T).(pr0 t1 t)) in (let TMP_3 
-\def (\lambda (t: T).(pr2 c t1 t)) in (let TMP_4 \def (\lambda (t: T).(pr2 c 
-t2 t)) in (let TMP_5 \def (ex2 T TMP_3 TMP_4) in (let TMP_10 \def (\lambda 
-(x: T).(\lambda (H1: (pr0 t2 x)).(\lambda (H2: (pr0 t1 x)).(let TMP_6 \def 
-(\lambda (t: T).(pr2 c t1 t)) in (let TMP_7 \def (\lambda (t: T).(pr2 c t2 
-t)) in (let TMP_8 \def (pr2_free c t1 x H2) in (let TMP_9 \def (pr2_free c t2 
-x H1) in (ex_intro2 T TMP_6 TMP_7 x TMP_8 TMP_9)))))))) in (let TMP_11 \def 
-(pr0_confluence t0 t2 H0 t1 H) in (ex2_ind T TMP_1 TMP_2 TMP_5 TMP_10 
-TMP_11))))))))))))).
+(H: (pr0 t0 t1)).(\lambda (H0: (pr0 t0 t2)).(ex2_ind T (\lambda (t: T).(pr0 
+t2 t)) (\lambda (t: T).(pr0 t1 t)) (ex2 T (\lambda (t: T).(pr2 c t1 t)) 
+(\lambda (t: T).(pr2 c t2 t))) (\lambda (x: T).(\lambda (H1: (pr0 t2 
+x)).(\lambda (H2: (pr0 t1 x)).(ex_intro2 T (\lambda (t: T).(pr2 c t1 t)) 
+(\lambda (t: T).(pr2 c t2 t)) x (pr2_free c t1 x H2) (pr2_free c t2 x H1))))) 
+(pr0_confluence t0 t2 H0 t1 H))))))).
 
 theorem pr2_confluence__pr2_free_delta:
  \forall (c: C).(\forall (d: C).(\forall (t0: T).(\forall (t1: T).(\forall 
@@ -47,33 +43,21 @@ t))))))))))))))
  \lambda (c: C).(\lambda (d: C).(\lambda (t0: T).(\lambda (t1: T).(\lambda 
 (t2: T).(\lambda (t4: T).(\lambda (u: T).(\lambda (i: nat).(\lambda (H: (pr0 
 t0 t1)).(\lambda (H0: (getl i c (CHead d (Bind Abbr) u))).(\lambda (H1: (pr0 
-t0 t4)).(\lambda (H2: (subst0 i u t4 t2)).(let TMP_1 \def (\lambda (t: 
-T).(pr0 t4 t)) in (let TMP_2 \def (\lambda (t: T).(pr0 t1 t)) in (let TMP_3 
-\def (\lambda (t: T).(pr2 c t1 t)) in (let TMP_4 \def (\lambda (t: T).(pr2 c 
-t2 t)) in (let TMP_5 \def (ex2 T TMP_3 TMP_4) in (let TMP_31 \def (\lambda 
-(x: T).(\lambda (H3: (pr0 t4 x)).(\lambda (H4: (pr0 t1 x)).(let TMP_6 \def 
-(pr0 t2 x) in (let TMP_7 \def (\lambda (w2: T).(pr0 t2 w2)) in (let TMP_8 
-\def (\lambda (w2: T).(subst0 i u x w2)) in (let TMP_9 \def (ex2 T TMP_7 
-TMP_8) in (let TMP_10 \def (\lambda (t: T).(pr2 c t1 t)) in (let TMP_11 \def 
-(\lambda (t: T).(pr2 c t2 t)) in (let TMP_12 \def (ex2 T TMP_10 TMP_11) in 
-(let TMP_17 \def (\lambda (H5: (pr0 t2 x)).(let TMP_13 \def (\lambda (t: 
-T).(pr2 c t1 t)) in (let TMP_14 \def (\lambda (t: T).(pr2 c t2 t)) in (let 
-TMP_15 \def (pr2_free c t1 x H4) in (let TMP_16 \def (pr2_free c t2 x H5) in 
-(ex_intro2 T TMP_13 TMP_14 x TMP_15 TMP_16)))))) in (let TMP_28 \def (\lambda 
-(H5: (ex2 T (\lambda (w2: T).(pr0 t2 w2)) (\lambda (w2: T).(subst0 i u x 
-w2)))).(let TMP_18 \def (\lambda (w2: T).(pr0 t2 w2)) in (let TMP_19 \def 
-(\lambda (w2: T).(subst0 i u x w2)) in (let TMP_20 \def (\lambda (t: T).(pr2 
-c t1 t)) in (let TMP_21 \def (\lambda (t: T).(pr2 c t2 t)) in (let TMP_22 
-\def (ex2 T TMP_20 TMP_21) in (let TMP_27 \def (\lambda (x0: T).(\lambda (H6: 
-(pr0 t2 x0)).(\lambda (H7: (subst0 i u x x0)).(let TMP_23 \def (\lambda (t: 
-T).(pr2 c t1 t)) in (let TMP_24 \def (\lambda (t: T).(pr2 c t2 t)) in (let 
-TMP_25 \def (pr2_delta c d u i H0 t1 x H4 x0 H7) in (let TMP_26 \def 
-(pr2_free c t2 x0 H6) in (ex_intro2 T TMP_23 TMP_24 x0 TMP_25 TMP_26)))))))) 
-in (ex2_ind T TMP_18 TMP_19 TMP_22 TMP_27 H5)))))))) in (let TMP_29 \def 
-(pr0_refl u) in (let TMP_30 \def (pr0_subst0 t4 x H3 u t2 i H2 u TMP_29) in 
-(or_ind TMP_6 TMP_9 TMP_12 TMP_17 TMP_28 TMP_30))))))))))))))) in (let TMP_32 
-\def (pr0_confluence t0 t4 H1 t1 H) in (ex2_ind T TMP_1 TMP_2 TMP_5 TMP_31 
-TMP_32))))))))))))))))))).
+t0 t4)).(\lambda (H2: (subst0 i u t4 t2)).(ex2_ind T (\lambda (t: T).(pr0 t4 
+t)) (\lambda (t: T).(pr0 t1 t)) (ex2 T (\lambda (t: T).(pr2 c t1 t)) (\lambda 
+(t: T).(pr2 c t2 t))) (\lambda (x: T).(\lambda (H3: (pr0 t4 x)).(\lambda (H4: 
+(pr0 t1 x)).(or_ind (pr0 t2 x) (ex2 T (\lambda (w2: T).(pr0 t2 w2)) (\lambda 
+(w2: T).(subst0 i u x w2))) (ex2 T (\lambda (t: T).(pr2 c t1 t)) (\lambda (t: 
+T).(pr2 c t2 t))) (\lambda (H5: (pr0 t2 x)).(ex_intro2 T (\lambda (t: T).(pr2 
+c t1 t)) (\lambda (t: T).(pr2 c t2 t)) x (pr2_free c t1 x H4) (pr2_free c t2 
+x H5))) (\lambda (H5: (ex2 T (\lambda (w2: T).(pr0 t2 w2)) (\lambda (w2: 
+T).(subst0 i u x w2)))).(ex2_ind T (\lambda (w2: T).(pr0 t2 w2)) (\lambda 
+(w2: T).(subst0 i u x w2)) (ex2 T (\lambda (t: T).(pr2 c t1 t)) (\lambda (t: 
+T).(pr2 c t2 t))) (\lambda (x0: T).(\lambda (H6: (pr0 t2 x0)).(\lambda (H7: 
+(subst0 i u x x0)).(ex_intro2 T (\lambda (t: T).(pr2 c t1 t)) (\lambda (t: 
+T).(pr2 c t2 t)) x0 (pr2_delta c d u i H0 t1 x H4 x0 H7) (pr2_free c t2 x0 
+H6))))) H5)) (pr0_subst0 t4 x H3 u t2 i H2 u (pr0_refl u)))))) 
+(pr0_confluence t0 t4 H1 t1 H))))))))))))).
 
 theorem pr2_confluence__pr2_delta_delta:
  \forall (c: C).(\forall (d: C).(\forall (d0: C).(\forall (t0: T).(\forall 
@@ -89,143 +73,80 @@ t))))))))))))))))))))
 T).(\lambda (u0: T).(\lambda (i: nat).(\lambda (i0: nat).(\lambda (H: (getl i 
 c (CHead d (Bind Abbr) u))).(\lambda (H0: (pr0 t0 t3)).(\lambda (H1: (subst0 
 i u t3 t1)).(\lambda (H2: (getl i0 c (CHead d0 (Bind Abbr) u0))).(\lambda 
-(H3: (pr0 t0 t4)).(\lambda (H4: (subst0 i0 u0 t4 t2)).(let TMP_1 \def 
-(\lambda (t: T).(pr0 t4 t)) in (let TMP_2 \def (\lambda (t: T).(pr0 t3 t)) in 
-(let TMP_3 \def (\lambda (t: T).(pr2 c t1 t)) in (let TMP_4 \def (\lambda (t: 
-T).(pr2 c t2 t)) in (let TMP_5 \def (ex2 T TMP_3 TMP_4) in (let TMP_165 \def 
-(\lambda (x: T).(\lambda (H5: (pr0 t4 x)).(\lambda (H6: (pr0 t3 x)).(let 
-TMP_6 \def (pr0 t1 x) in (let TMP_7 \def (\lambda (w2: T).(pr0 t1 w2)) in 
-(let TMP_8 \def (\lambda (w2: T).(subst0 i u x w2)) in (let TMP_9 \def (ex2 T 
-TMP_7 TMP_8) in (let TMP_10 \def (\lambda (t: T).(pr2 c t1 t)) in (let TMP_11 
-\def (\lambda (t: T).(pr2 c t2 t)) in (let TMP_12 \def (ex2 T TMP_10 TMP_11) 
-in (let TMP_38 \def (\lambda (H7: (pr0 t1 x)).(let TMP_13 \def (pr0 t2 x) in 
-(let TMP_14 \def (\lambda (w2: T).(pr0 t2 w2)) in (let TMP_15 \def (\lambda 
-(w2: T).(subst0 i0 u0 x w2)) in (let TMP_16 \def (ex2 T TMP_14 TMP_15) in 
-(let TMP_17 \def (\lambda (t: T).(pr2 c t1 t)) in (let TMP_18 \def (\lambda 
-(t: T).(pr2 c t2 t)) in (let TMP_19 \def (ex2 T TMP_17 TMP_18) in (let TMP_24 
-\def (\lambda (H8: (pr0 t2 x)).(let TMP_20 \def (\lambda (t: T).(pr2 c t1 t)) 
-in (let TMP_21 \def (\lambda (t: T).(pr2 c t2 t)) in (let TMP_22 \def 
-(pr2_free c t1 x H7) in (let TMP_23 \def (pr2_free c t2 x H8) in (ex_intro2 T 
-TMP_20 TMP_21 x TMP_22 TMP_23)))))) in (let TMP_35 \def (\lambda (H8: (ex2 T 
-(\lambda (w2: T).(pr0 t2 w2)) (\lambda (w2: T).(subst0 i0 u0 x w2)))).(let 
-TMP_25 \def (\lambda (w2: T).(pr0 t2 w2)) in (let TMP_26 \def (\lambda (w2: 
-T).(subst0 i0 u0 x w2)) in (let TMP_27 \def (\lambda (t: T).(pr2 c t1 t)) in 
-(let TMP_28 \def (\lambda (t: T).(pr2 c t2 t)) in (let TMP_29 \def (ex2 T 
-TMP_27 TMP_28) in (let TMP_34 \def (\lambda (x0: T).(\lambda (H9: (pr0 t2 
-x0)).(\lambda (H10: (subst0 i0 u0 x x0)).(let TMP_30 \def (\lambda (t: 
-T).(pr2 c t1 t)) in (let TMP_31 \def (\lambda (t: T).(pr2 c t2 t)) in (let 
-TMP_32 \def (pr2_delta c d0 u0 i0 H2 t1 x H7 x0 H10) in (let TMP_33 \def 
-(pr2_free c t2 x0 H9) in (ex_intro2 T TMP_30 TMP_31 x0 TMP_32 TMP_33)))))))) 
-in (ex2_ind T TMP_25 TMP_26 TMP_29 TMP_34 H8)))))))) in (let TMP_36 \def 
-(pr0_refl u0) in (let TMP_37 \def (pr0_subst0 t4 x H5 u0 t2 i0 H4 u0 TMP_36) 
-in (or_ind TMP_13 TMP_16 TMP_19 TMP_24 TMP_35 TMP_37))))))))))))) in (let 
-TMP_162 \def (\lambda (H7: (ex2 T (\lambda (w2: T).(pr0 t1 w2)) (\lambda (w2: 
-T).(subst0 i u x w2)))).(let TMP_39 \def (\lambda (w2: T).(pr0 t1 w2)) in 
-(let TMP_40 \def (\lambda (w2: T).(subst0 i u x w2)) in (let TMP_41 \def 
-(\lambda (t: T).(pr2 c t1 t)) in (let TMP_42 \def (\lambda (t: T).(pr2 c t2 
-t)) in (let TMP_43 \def (ex2 T TMP_41 TMP_42) in (let TMP_161 \def (\lambda 
-(x0: T).(\lambda (H8: (pr0 t1 x0)).(\lambda (H9: (subst0 i u x x0)).(let 
-TMP_44 \def (pr0 t2 x) in (let TMP_45 \def (\lambda (w2: T).(pr0 t2 w2)) in 
-(let TMP_46 \def (\lambda (w2: T).(subst0 i0 u0 x w2)) in (let TMP_47 \def 
-(ex2 T TMP_45 TMP_46) in (let TMP_48 \def (\lambda (t: T).(pr2 c t1 t)) in 
-(let TMP_49 \def (\lambda (t: T).(pr2 c t2 t)) in (let TMP_50 \def (ex2 T 
-TMP_48 TMP_49) in (let TMP_55 \def (\lambda (H10: (pr0 t2 x)).(let TMP_51 
-\def (\lambda (t: T).(pr2 c t1 t)) in (let TMP_52 \def (\lambda (t: T).(pr2 c 
-t2 t)) in (let TMP_53 \def (pr2_free c t1 x0 H8) in (let TMP_54 \def 
-(pr2_delta c d u i H t2 x H10 x0 H9) in (ex_intro2 T TMP_51 TMP_52 x0 TMP_53 
-TMP_54)))))) in (let TMP_158 \def (\lambda (H10: (ex2 T (\lambda (w2: T).(pr0 
-t2 w2)) (\lambda (w2: T).(subst0 i0 u0 x w2)))).(let TMP_56 \def (\lambda 
-(w2: T).(pr0 t2 w2)) in (let TMP_57 \def (\lambda (w2: T).(subst0 i0 u0 x 
-w2)) in (let TMP_58 \def (\lambda (t: T).(pr2 c t1 t)) in (let TMP_59 \def 
-(\lambda (t: T).(pr2 c t2 t)) in (let TMP_60 \def (ex2 T TMP_58 TMP_59) in 
-(let TMP_157 \def (\lambda (x1: T).(\lambda (H11: (pr0 t2 x1)).(\lambda (H12: 
-(subst0 i0 u0 x x1)).(let TMP_61 \def (\lambda (t: T).(pr2 c t1 t)) in (let 
-TMP_62 \def (\lambda (t: T).(pr2 c t2 t)) in (let TMP_63 \def (ex2 T TMP_61 
-TMP_62) in (let TMP_76 \def (\lambda (H13: (not (eq nat i i0))).(let TMP_64 
-\def (\lambda (t: T).(subst0 i u x1 t)) in (let TMP_65 \def (\lambda (t: 
-T).(subst0 i0 u0 x0 t)) in (let TMP_66 \def (\lambda (t: T).(pr2 c t1 t)) in 
-(let TMP_67 \def (\lambda (t: T).(pr2 c t2 t)) in (let TMP_68 \def (ex2 T 
-TMP_66 TMP_67) in (let TMP_73 \def (\lambda (x2: T).(\lambda (H14: (subst0 i 
-u x1 x2)).(\lambda (H15: (subst0 i0 u0 x0 x2)).(let TMP_69 \def (\lambda (t: 
-T).(pr2 c t1 t)) in (let TMP_70 \def (\lambda (t: T).(pr2 c t2 t)) in (let 
-TMP_71 \def (pr2_delta c d0 u0 i0 H2 t1 x0 H8 x2 H15) in (let TMP_72 \def 
-(pr2_delta c d u i H t2 x1 H11 x2 H14) in (ex_intro2 T TMP_69 TMP_70 x2 
-TMP_71 TMP_72)))))))) in (let TMP_74 \def (sym_not_eq nat i i0 H13) in (let 
-TMP_75 \def (subst0_confluence_neq x x1 u0 i0 H12 x0 u i H9 TMP_74) in 
-(ex2_ind T TMP_64 TMP_65 TMP_68 TMP_73 TMP_75)))))))))) in (let TMP_156 \def 
-(\lambda (H13: (eq nat i i0)).(let TMP_77 \def (\lambda (n: nat).(subst0 n u0 
-x x1)) in (let H14 \def (eq_ind_r nat i0 TMP_77 H12 i H13) in (let TMP_80 
-\def (\lambda (n: nat).(let TMP_78 \def (Bind Abbr) in (let TMP_79 \def 
-(CHead d0 TMP_78 u0) in (getl n c TMP_79)))) in (let H15 \def (eq_ind_r nat 
-i0 TMP_80 H2 i H13) in (let TMP_81 \def (Bind Abbr) in (let TMP_82 \def 
-(CHead d TMP_81 u) in (let TMP_83 \def (\lambda (c0: C).(getl i c c0)) in 
-(let TMP_84 \def (Bind Abbr) in (let TMP_85 \def (CHead d0 TMP_84 u0) in (let 
-TMP_86 \def (Bind Abbr) in (let TMP_87 \def (CHead d TMP_86 u) in (let TMP_88 
-\def (Bind Abbr) in (let TMP_89 \def (CHead d0 TMP_88 u0) in (let TMP_90 \def 
-(getl_mono c TMP_87 i H TMP_89 H15) in (let H16 \def (eq_ind C TMP_82 TMP_83 
-H TMP_85 TMP_90) in (let TMP_91 \def (\lambda (e: C).(match e with [(CSort _) 
-\Rightarrow d | (CHead c0 _ _) \Rightarrow c0])) in (let TMP_92 \def (Bind 
-Abbr) in (let TMP_93 \def (CHead d TMP_92 u) in (let TMP_94 \def (Bind Abbr) 
-in (let TMP_95 \def (CHead d0 TMP_94 u0) in (let TMP_96 \def (Bind Abbr) in 
-(let TMP_97 \def (CHead d TMP_96 u) in (let TMP_98 \def (Bind Abbr) in (let 
-TMP_99 \def (CHead d0 TMP_98 u0) in (let TMP_100 \def (getl_mono c TMP_97 i H 
-TMP_99 H15) in (let H17 \def (f_equal C C TMP_91 TMP_93 TMP_95 TMP_100) in 
-(let TMP_101 \def (\lambda (e: C).(match e with [(CSort _) \Rightarrow u | 
-(CHead _ _ t) \Rightarrow t])) in (let TMP_102 \def (Bind Abbr) in (let 
-TMP_103 \def (CHead d TMP_102 u) in (let TMP_104 \def (Bind Abbr) in (let 
-TMP_105 \def (CHead d0 TMP_104 u0) in (let TMP_106 \def (Bind Abbr) in (let 
-TMP_107 \def (CHead d TMP_106 u) in (let TMP_108 \def (Bind Abbr) in (let 
-TMP_109 \def (CHead d0 TMP_108 u0) in (let TMP_110 \def (getl_mono c TMP_107 
-i H TMP_109 H15) in (let H18 \def (f_equal C T TMP_101 TMP_103 TMP_105 
-TMP_110) in (let TMP_155 \def (\lambda (H19: (eq C d d0)).(let TMP_111 \def 
-(\lambda (t: T).(subst0 i t x x1)) in (let H20 \def (eq_ind_r T u0 TMP_111 
-H14 u H18) in (let TMP_114 \def (\lambda (t: T).(let TMP_112 \def (Bind Abbr) 
-in (let TMP_113 \def (CHead d0 TMP_112 t) in (getl i c TMP_113)))) in (let 
-H21 \def (eq_ind_r T u0 TMP_114 H16 u H18) in (let TMP_117 \def (\lambda (c0: 
-C).(let TMP_115 \def (Bind Abbr) in (let TMP_116 \def (CHead c0 TMP_115 u) in 
-(getl i c TMP_116)))) in (let H22 \def (eq_ind_r C d0 TMP_117 H21 d H19) in 
-(let TMP_118 \def (eq T x1 x0) in (let TMP_119 \def (\lambda (t: T).(subst0 i 
-u x1 t)) in (let TMP_120 \def (\lambda (t: T).(subst0 i u x0 t)) in (let 
-TMP_121 \def (ex2 T TMP_119 TMP_120) in (let TMP_122 \def (subst0 i u x1 x0) 
-in (let TMP_123 \def (subst0 i u x0 x1) in (let TMP_124 \def (\lambda (t: 
-T).(pr2 c t1 t)) in (let TMP_125 \def (\lambda (t: T).(pr2 c t2 t)) in (let 
-TMP_126 \def (ex2 T TMP_124 TMP_125) in (let TMP_132 \def (\lambda (H23: (eq 
-T x1 x0)).(let TMP_127 \def (\lambda (t: T).(pr0 t2 t)) in (let H24 \def 
-(eq_ind T x1 TMP_127 H11 x0 H23) in (let TMP_128 \def (\lambda (t: T).(pr2 c 
-t1 t)) in (let TMP_129 \def (\lambda (t: T).(pr2 c t2 t)) in (let TMP_130 
-\def (pr2_free c t1 x0 H8) in (let TMP_131 \def (pr2_free c t2 x0 H24) in 
-(ex_intro2 T TMP_128 TMP_129 x0 TMP_130 TMP_131)))))))) in (let TMP_143 \def 
-(\lambda (H23: (ex2 T (\lambda (t: T).(subst0 i u x1 t)) (\lambda (t: 
-T).(subst0 i u x0 t)))).(let TMP_133 \def (\lambda (t: T).(subst0 i u x1 t)) 
-in (let TMP_134 \def (\lambda (t: T).(subst0 i u x0 t)) in (let TMP_135 \def 
-(\lambda (t: T).(pr2 c t1 t)) in (let TMP_136 \def (\lambda (t: T).(pr2 c t2 
-t)) in (let TMP_137 \def (ex2 T TMP_135 TMP_136) in (let TMP_142 \def 
-(\lambda (x2: T).(\lambda (H24: (subst0 i u x1 x2)).(\lambda (H25: (subst0 i 
-u x0 x2)).(let TMP_138 \def (\lambda (t: T).(pr2 c t1 t)) in (let TMP_139 
-\def (\lambda (t: T).(pr2 c t2 t)) in (let TMP_140 \def (pr2_delta c d u i 
-H22 t1 x0 H8 x2 H25) in (let TMP_141 \def (pr2_delta c d u i H22 t2 x1 H11 x2 
-H24) in (ex_intro2 T TMP_138 TMP_139 x2 TMP_140 TMP_141)))))))) in (ex2_ind T 
-TMP_133 TMP_134 TMP_137 TMP_142 H23)))))))) in (let TMP_148 \def (\lambda 
-(H23: (subst0 i u x1 x0)).(let TMP_144 \def (\lambda (t: T).(pr2 c t1 t)) in 
-(let TMP_145 \def (\lambda (t: T).(pr2 c t2 t)) in (let TMP_146 \def 
-(pr2_free c t1 x0 H8) in (let TMP_147 \def (pr2_delta c d u i H22 t2 x1 H11 
-x0 H23) in (ex_intro2 T TMP_144 TMP_145 x0 TMP_146 TMP_147)))))) in (let 
-TMP_153 \def (\lambda (H23: (subst0 i u x0 x1)).(let TMP_149 \def (\lambda 
-(t: T).(pr2 c t1 t)) in (let TMP_150 \def (\lambda (t: T).(pr2 c t2 t)) in 
-(let TMP_151 \def (pr2_delta c d u i H22 t1 x0 H8 x1 H23) in (let TMP_152 
-\def (pr2_free c t2 x1 H11) in (ex_intro2 T TMP_149 TMP_150 x1 TMP_151 
-TMP_152)))))) in (let TMP_154 \def (subst0_confluence_eq x x1 u i H20 x0 H9) 
-in (or4_ind TMP_118 TMP_121 TMP_122 TMP_123 TMP_126 TMP_132 TMP_143 TMP_148 
-TMP_153 TMP_154)))))))))))))))))))))) in (TMP_155 
-H17)))))))))))))))))))))))))))))))))))))))) in (neq_eq_e i i0 TMP_63 TMP_76 
-TMP_156))))))))) in (ex2_ind T TMP_56 TMP_57 TMP_60 TMP_157 H10)))))))) in 
-(let TMP_159 \def (pr0_refl u0) in (let TMP_160 \def (pr0_subst0 t4 x H5 u0 
-t2 i0 H4 u0 TMP_159) in (or_ind TMP_44 TMP_47 TMP_50 TMP_55 TMP_158 
-TMP_160))))))))))))))) in (ex2_ind T TMP_39 TMP_40 TMP_43 TMP_161 H7)))))))) 
-in (let TMP_163 \def (pr0_refl u) in (let TMP_164 \def (pr0_subst0 t3 x H6 u 
-t1 i H1 u TMP_163) in (or_ind TMP_6 TMP_9 TMP_12 TMP_38 TMP_162 
-TMP_164))))))))))))))) in (let TMP_166 \def (pr0_confluence t0 t4 H3 t3 H0) 
-in (ex2_ind T TMP_1 TMP_2 TMP_5 TMP_165 TMP_166))))))))))))))))))))))))).
+(H3: (pr0 t0 t4)).(\lambda (H4: (subst0 i0 u0 t4 t2)).(ex2_ind T (\lambda (t: 
+T).(pr0 t4 t)) (\lambda (t: T).(pr0 t3 t)) (ex2 T (\lambda (t: T).(pr2 c t1 
+t)) (\lambda (t: T).(pr2 c t2 t))) (\lambda (x: T).(\lambda (H5: (pr0 t4 
+x)).(\lambda (H6: (pr0 t3 x)).(or_ind (pr0 t1 x) (ex2 T (\lambda (w2: T).(pr0 
+t1 w2)) (\lambda (w2: T).(subst0 i u x w2))) (ex2 T (\lambda (t: T).(pr2 c t1 
+t)) (\lambda (t: T).(pr2 c t2 t))) (\lambda (H7: (pr0 t1 x)).(or_ind (pr0 t2 
+x) (ex2 T (\lambda (w2: T).(pr0 t2 w2)) (\lambda (w2: T).(subst0 i0 u0 x 
+w2))) (ex2 T (\lambda (t: T).(pr2 c t1 t)) (\lambda (t: T).(pr2 c t2 t))) 
+(\lambda (H8: (pr0 t2 x)).(ex_intro2 T (\lambda (t: T).(pr2 c t1 t)) (\lambda 
+(t: T).(pr2 c t2 t)) x (pr2_free c t1 x H7) (pr2_free c t2 x H8))) (\lambda 
+(H8: (ex2 T (\lambda (w2: T).(pr0 t2 w2)) (\lambda (w2: T).(subst0 i0 u0 x 
+w2)))).(ex2_ind T (\lambda (w2: T).(pr0 t2 w2)) (\lambda (w2: T).(subst0 i0 
+u0 x w2)) (ex2 T (\lambda (t: T).(pr2 c t1 t)) (\lambda (t: T).(pr2 c t2 t))) 
+(\lambda (x0: T).(\lambda (H9: (pr0 t2 x0)).(\lambda (H10: (subst0 i0 u0 x 
+x0)).(ex_intro2 T (\lambda (t: T).(pr2 c t1 t)) (\lambda (t: T).(pr2 c t2 t)) 
+x0 (pr2_delta c d0 u0 i0 H2 t1 x H7 x0 H10) (pr2_free c t2 x0 H9))))) H8)) 
+(pr0_subst0 t4 x H5 u0 t2 i0 H4 u0 (pr0_refl u0)))) (\lambda (H7: (ex2 T 
+(\lambda (w2: T).(pr0 t1 w2)) (\lambda (w2: T).(subst0 i u x w2)))).(ex2_ind 
+T (\lambda (w2: T).(pr0 t1 w2)) (\lambda (w2: T).(subst0 i u x w2)) (ex2 T 
+(\lambda (t: T).(pr2 c t1 t)) (\lambda (t: T).(pr2 c t2 t))) (\lambda (x0: 
+T).(\lambda (H8: (pr0 t1 x0)).(\lambda (H9: (subst0 i u x x0)).(or_ind (pr0 
+t2 x) (ex2 T (\lambda (w2: T).(pr0 t2 w2)) (\lambda (w2: T).(subst0 i0 u0 x 
+w2))) (ex2 T (\lambda (t: T).(pr2 c t1 t)) (\lambda (t: T).(pr2 c t2 t))) 
+(\lambda (H10: (pr0 t2 x)).(ex_intro2 T (\lambda (t: T).(pr2 c t1 t)) 
+(\lambda (t: T).(pr2 c t2 t)) x0 (pr2_free c t1 x0 H8) (pr2_delta c d u i H 
+t2 x H10 x0 H9))) (\lambda (H10: (ex2 T (\lambda (w2: T).(pr0 t2 w2)) 
+(\lambda (w2: T).(subst0 i0 u0 x w2)))).(ex2_ind T (\lambda (w2: T).(pr0 t2 
+w2)) (\lambda (w2: T).(subst0 i0 u0 x w2)) (ex2 T (\lambda (t: T).(pr2 c t1 
+t)) (\lambda (t: T).(pr2 c t2 t))) (\lambda (x1: T).(\lambda (H11: (pr0 t2 
+x1)).(\lambda (H12: (subst0 i0 u0 x x1)).(neq_eq_e i i0 (ex2 T (\lambda (t: 
+T).(pr2 c t1 t)) (\lambda (t: T).(pr2 c t2 t))) (\lambda (H13: (not (eq nat i 
+i0))).(ex2_ind T (\lambda (t: T).(subst0 i u x1 t)) (\lambda (t: T).(subst0 
+i0 u0 x0 t)) (ex2 T (\lambda (t: T).(pr2 c t1 t)) (\lambda (t: T).(pr2 c t2 
+t))) (\lambda (x2: T).(\lambda (H14: (subst0 i u x1 x2)).(\lambda (H15: 
+(subst0 i0 u0 x0 x2)).(ex_intro2 T (\lambda (t: T).(pr2 c t1 t)) (\lambda (t: 
+T).(pr2 c t2 t)) x2 (pr2_delta c d0 u0 i0 H2 t1 x0 H8 x2 H15) (pr2_delta c d 
+u i H t2 x1 H11 x2 H14))))) (subst0_confluence_neq x x1 u0 i0 H12 x0 u i H9 
+(sym_not_eq nat i i0 H13)))) (\lambda (H13: (eq nat i i0)).(let H14 \def 
+(eq_ind_r nat i0 (\lambda (n: nat).(subst0 n u0 x x1)) H12 i H13) in (let H15 
+\def (eq_ind_r nat i0 (\lambda (n: nat).(getl n c (CHead d0 (Bind Abbr) u0))) 
+H2 i H13) in (let H16 \def (eq_ind C (CHead d (Bind Abbr) u) (\lambda (c0: 
+C).(getl i c c0)) H (CHead d0 (Bind Abbr) u0) (getl_mono c (CHead d (Bind 
+Abbr) u) i H (CHead d0 (Bind Abbr) u0) H15)) in (let H17 \def (f_equal C C 
+(\lambda (e: C).(match e with [(CSort _) \Rightarrow d | (CHead c0 _ _) 
+\Rightarrow c0])) (CHead d (Bind Abbr) u) (CHead d0 (Bind Abbr) u0) 
+(getl_mono c (CHead d (Bind Abbr) u) i H (CHead d0 (Bind Abbr) u0) H15)) in 
+((let H18 \def (f_equal C T (\lambda (e: C).(match e with [(CSort _) 
+\Rightarrow u | (CHead _ _ t) \Rightarrow t])) (CHead d (Bind Abbr) u) (CHead 
+d0 (Bind Abbr) u0) (getl_mono c (CHead d (Bind Abbr) u) i H (CHead d0 (Bind 
+Abbr) u0) H15)) in (\lambda (H19: (eq C d d0)).(let H20 \def (eq_ind_r T u0 
+(\lambda (t: T).(subst0 i t x x1)) H14 u H18) in (let H21 \def (eq_ind_r T u0 
+(\lambda (t: T).(getl i c (CHead d0 (Bind Abbr) t))) H16 u H18) in (let H22 
+\def (eq_ind_r C d0 (\lambda (c0: C).(getl i c (CHead c0 (Bind Abbr) u))) H21 
+d H19) in (or4_ind (eq T x1 x0) (ex2 T (\lambda (t: T).(subst0 i u x1 t)) 
+(\lambda (t: T).(subst0 i u x0 t))) (subst0 i u x1 x0) (subst0 i u x0 x1) 
+(ex2 T (\lambda (t: T).(pr2 c t1 t)) (\lambda (t: T).(pr2 c t2 t))) (\lambda 
+(H23: (eq T x1 x0)).(let H24 \def (eq_ind T x1 (\lambda (t: T).(pr0 t2 t)) 
+H11 x0 H23) in (ex_intro2 T (\lambda (t: T).(pr2 c t1 t)) (\lambda (t: 
+T).(pr2 c t2 t)) x0 (pr2_free c t1 x0 H8) (pr2_free c t2 x0 H24)))) (\lambda 
+(H23: (ex2 T (\lambda (t: T).(subst0 i u x1 t)) (\lambda (t: T).(subst0 i u 
+x0 t)))).(ex2_ind T (\lambda (t: T).(subst0 i u x1 t)) (\lambda (t: 
+T).(subst0 i u x0 t)) (ex2 T (\lambda (t: T).(pr2 c t1 t)) (\lambda (t: 
+T).(pr2 c t2 t))) (\lambda (x2: T).(\lambda (H24: (subst0 i u x1 
+x2)).(\lambda (H25: (subst0 i u x0 x2)).(ex_intro2 T (\lambda (t: T).(pr2 c 
+t1 t)) (\lambda (t: T).(pr2 c t2 t)) x2 (pr2_delta c d u i H22 t1 x0 H8 x2 
+H25) (pr2_delta c d u i H22 t2 x1 H11 x2 H24))))) H23)) (\lambda (H23: 
+(subst0 i u x1 x0)).(ex_intro2 T (\lambda (t: T).(pr2 c t1 t)) (\lambda (t: 
+T).(pr2 c t2 t)) x0 (pr2_free c t1 x0 H8) (pr2_delta c d u i H22 t2 x1 H11 x0 
+H23))) (\lambda (H23: (subst0 i u x0 x1)).(ex_intro2 T (\lambda (t: T).(pr2 c 
+t1 t)) (\lambda (t: T).(pr2 c t2 t)) x1 (pr2_delta c d u i H22 t1 x0 H8 x1 
+H23) (pr2_free c t2 x1 H11))) (subst0_confluence_eq x x1 u i H20 x0 H9))))))) 
+H17)))))))))) H10)) (pr0_subst0 t4 x H5 u0 t2 i0 H4 u0 (pr0_refl u0)))))) 
+H7)) (pr0_subst0 t3 x H6 u t1 i H1 u (pr0_refl u)))))) (pr0_confluence t0 t4 
+H3 t3 H0))))))))))))))))))).
 
 theorem pr2_confluence:
  \forall (c: C).(\forall (t0: T).(\forall (t1: T).((pr2 c t0 t1) \to (\forall 
@@ -235,118 +156,81 @@ T).(pr2 c t2 t))))))))
  \lambda (c: C).(\lambda (t0: T).(\lambda (t1: T).(\lambda (H: (pr2 c t0 
 t1)).(\lambda (t2: T).(\lambda (H0: (pr2 c t0 t2)).(let H1 \def (match H with 
 [(pr2_free c0 t3 t4 H1) \Rightarrow (\lambda (H2: (eq C c0 c)).(\lambda (H3: 
-(eq T t3 t0)).(\lambda (H4: (eq T t4 t1)).(let TMP_54 \def (\lambda (_: 
-C).((eq T t3 t0) \to ((eq T t4 t1) \to ((pr0 t3 t4) \to (let TMP_52 \def 
-(\lambda (t: T).(pr2 c t1 t)) in (let TMP_53 \def (\lambda (t: T).(pr2 c t2 
-t)) in (ex2 T TMP_52 TMP_53))))))) in (let TMP_98 \def (\lambda (H5: (eq T t3 
-t0)).(let TMP_57 \def (\lambda (t: T).((eq T t4 t1) \to ((pr0 t t4) \to (let 
-TMP_55 \def (\lambda (t5: T).(pr2 c t1 t5)) in (let TMP_56 \def (\lambda (t5: 
-T).(pr2 c t2 t5)) in (ex2 T TMP_55 TMP_56)))))) in (let TMP_96 \def (\lambda 
-(H6: (eq T t4 t1)).(let TMP_60 \def (\lambda (t: T).((pr0 t0 t) \to (let 
-TMP_58 \def (\lambda (t5: T).(pr2 c t1 t5)) in (let TMP_59 \def (\lambda (t5: 
-T).(pr2 c t2 t5)) in (ex2 T TMP_58 TMP_59))))) in (let TMP_94 \def (\lambda 
-(H7: (pr0 t0 t1)).(let H8 \def (match H0 with [(pr2_free c1 t5 t6 H8) 
-\Rightarrow (\lambda (H9: (eq C c1 c)).(\lambda (H10: (eq T t5 t0)).(\lambda 
-(H11: (eq T t6 t2)).(let TMP_78 \def (\lambda (_: C).((eq T t5 t0) \to ((eq T 
-t6 t2) \to ((pr0 t5 t6) \to (let TMP_76 \def (\lambda (t: T).(pr2 c t1 t)) in 
-(let TMP_77 \def (\lambda (t: T).(pr2 c t2 t)) in (ex2 T TMP_76 TMP_77))))))) 
-in (let TMP_89 \def (\lambda (H12: (eq T t5 t0)).(let TMP_81 \def (\lambda 
-(t: T).((eq T t6 t2) \to ((pr0 t t6) \to (let TMP_79 \def (\lambda (t7: 
-T).(pr2 c t1 t7)) in (let TMP_80 \def (\lambda (t7: T).(pr2 c t2 t7)) in (ex2 
-T TMP_79 TMP_80)))))) in (let TMP_87 \def (\lambda (H13: (eq T t6 t2)).(let 
-TMP_84 \def (\lambda (t: T).((pr0 t0 t) \to (let TMP_82 \def (\lambda (t7: 
-T).(pr2 c t1 t7)) in (let TMP_83 \def (\lambda (t7: T).(pr2 c t2 t7)) in (ex2 
-T TMP_82 TMP_83))))) in (let TMP_85 \def (\lambda (H14: (pr0 t0 
-t2)).(pr2_confluence__pr2_free_free c t0 t1 t2 H7 H14)) in (let TMP_86 \def 
-(sym_eq T t6 t2 H13) in (eq_ind T t2 TMP_84 TMP_85 t6 TMP_86))))) in (let 
-TMP_88 \def (sym_eq T t5 t0 H12) in (eq_ind T t0 TMP_81 TMP_87 t5 TMP_88))))) 
-in (let TMP_90 \def (sym_eq C c1 c H9) in (eq_ind C c TMP_78 TMP_89 c1 TMP_90 
-H10 H11 H8))))))) | (pr2_delta c1 d u i H8 t5 t6 H9 t H10) \Rightarrow 
-(\lambda (H11: (eq C c1 c)).(\lambda (H12: (eq T t5 t0)).(\lambda (H13: (eq T 
-t t2)).(let TMP_63 \def (\lambda (c2: C).((eq T t5 t0) \to ((eq T t t2) \to 
-((getl i c2 (CHead d (Bind Abbr) u)) \to ((pr0 t5 t6) \to ((subst0 i u t6 t) 
-\to (let TMP_61 \def (\lambda (t7: T).(pr2 c t1 t7)) in (let TMP_62 \def 
-(\lambda (t7: T).(pr2 c t2 t7)) in (ex2 T TMP_61 TMP_62))))))))) in (let 
-TMP_74 \def (\lambda (H14: (eq T t5 t0)).(let TMP_66 \def (\lambda (t7: 
-T).((eq T t t2) \to ((getl i c (CHead d (Bind Abbr) u)) \to ((pr0 t7 t6) \to 
-((subst0 i u t6 t) \to (let TMP_64 \def (\lambda (t8: T).(pr2 c t1 t8)) in 
-(let TMP_65 \def (\lambda (t8: T).(pr2 c t2 t8)) in (ex2 T TMP_64 
-TMP_65)))))))) in (let TMP_72 \def (\lambda (H15: (eq T t t2)).(let TMP_69 
-\def (\lambda (t7: T).((getl i c (CHead d (Bind Abbr) u)) \to ((pr0 t0 t6) 
-\to ((subst0 i u t6 t7) \to (let TMP_67 \def (\lambda (t8: T).(pr2 c t1 t8)) 
-in (let TMP_68 \def (\lambda (t8: T).(pr2 c t2 t8)) in (ex2 T TMP_67 
-TMP_68))))))) in (let TMP_70 \def (\lambda (H16: (getl i c (CHead d (Bind 
-Abbr) u))).(\lambda (H17: (pr0 t0 t6)).(\lambda (H18: (subst0 i u t6 
-t2)).(pr2_confluence__pr2_free_delta c d t0 t1 t2 t6 u i H7 H16 H17 H18)))) 
-in (let TMP_71 \def (sym_eq T t t2 H15) in (eq_ind T t2 TMP_69 TMP_70 t 
-TMP_71))))) in (let TMP_73 \def (sym_eq T t5 t0 H14) in (eq_ind T t0 TMP_66 
-TMP_72 t5 TMP_73))))) in (let TMP_75 \def (sym_eq C c1 c H11) in (eq_ind C c 
-TMP_63 TMP_74 c1 TMP_75 H12 H13 H8 H9 H10)))))))]) in (let TMP_91 \def 
-(refl_equal C c) in (let TMP_92 \def (refl_equal T t0) in (let TMP_93 \def 
-(refl_equal T t2) in (H8 TMP_91 TMP_92 TMP_93)))))) in (let TMP_95 \def 
-(sym_eq T t4 t1 H6) in (eq_ind T t1 TMP_60 TMP_94 t4 TMP_95))))) in (let 
-TMP_97 \def (sym_eq T t3 t0 H5) in (eq_ind T t0 TMP_57 TMP_96 t3 TMP_97))))) 
-in (let TMP_99 \def (sym_eq C c0 c H2) in (eq_ind C c TMP_54 TMP_98 c0 TMP_99 
-H3 H4 H1))))))) | (pr2_delta c0 d u i H1 t3 t4 H2 t H3) \Rightarrow (\lambda 
-(H4: (eq C c0 c)).(\lambda (H5: (eq T t3 t0)).(\lambda (H6: (eq T t t1)).(let 
-TMP_3 \def (\lambda (c1: C).((eq T t3 t0) \to ((eq T t t1) \to ((getl i c1 
-(CHead d (Bind Abbr) u)) \to ((pr0 t3 t4) \to ((subst0 i u t4 t) \to (let 
-TMP_1 \def (\lambda (t5: T).(pr2 c t1 t5)) in (let TMP_2 \def (\lambda (t5: 
-T).(pr2 c t2 t5)) in (ex2 T TMP_1 TMP_2))))))))) in (let TMP_50 \def (\lambda 
-(H7: (eq T t3 t0)).(let TMP_6 \def (\lambda (t5: T).((eq T t t1) \to ((getl i 
-c (CHead d (Bind Abbr) u)) \to ((pr0 t5 t4) \to ((subst0 i u t4 t) \to (let 
-TMP_4 \def (\lambda (t6: T).(pr2 c t1 t6)) in (let TMP_5 \def (\lambda (t6: 
-T).(pr2 c t2 t6)) in (ex2 T TMP_4 TMP_5)))))))) in (let TMP_48 \def (\lambda 
-(H8: (eq T t t1)).(let TMP_9 \def (\lambda (t5: T).((getl i c (CHead d (Bind 
-Abbr) u)) \to ((pr0 t0 t4) \to ((subst0 i u t4 t5) \to (let TMP_7 \def 
-(\lambda (t6: T).(pr2 c t1 t6)) in (let TMP_8 \def (\lambda (t6: T).(pr2 c t2 
-t6)) in (ex2 T TMP_7 TMP_8))))))) in (let TMP_46 \def (\lambda (H9: (getl i c 
-(CHead d (Bind Abbr) u))).(\lambda (H10: (pr0 t0 t4)).(\lambda (H11: (subst0 
-i u t4 t1)).(let H12 \def (match H0 with [(pr2_free c1 t5 t6 H12) \Rightarrow 
-(\lambda (H13: (eq C c1 c)).(\lambda (H14: (eq T t5 t0)).(\lambda (H15: (eq T 
-t6 t2)).(let TMP_27 \def (\lambda (_: C).((eq T t5 t0) \to ((eq T t6 t2) \to 
-((pr0 t5 t6) \to (let TMP_25 \def (\lambda (t7: T).(pr2 c t1 t7)) in (let 
-TMP_26 \def (\lambda (t7: T).(pr2 c t2 t7)) in (ex2 T TMP_25 TMP_26))))))) in 
-(let TMP_41 \def (\lambda (H16: (eq T t5 t0)).(let TMP_30 \def (\lambda (t7: 
-T).((eq T t6 t2) \to ((pr0 t7 t6) \to (let TMP_28 \def (\lambda (t8: T).(pr2 
-c t1 t8)) in (let TMP_29 \def (\lambda (t8: T).(pr2 c t2 t8)) in (ex2 T 
-TMP_28 TMP_29)))))) in (let TMP_39 \def (\lambda (H17: (eq T t6 t2)).(let 
-TMP_33 \def (\lambda (t7: T).((pr0 t0 t7) \to (let TMP_31 \def (\lambda (t8: 
-T).(pr2 c t1 t8)) in (let TMP_32 \def (\lambda (t8: T).(pr2 c t2 t8)) in (ex2 
-T TMP_31 TMP_32))))) in (let TMP_37 \def (\lambda (H18: (pr0 t0 t2)).(let 
-TMP_34 \def (pr2 c t2) in (let TMP_35 \def (pr2 c t1) in (let TMP_36 \def 
-(pr2_confluence__pr2_free_delta c d t0 t2 t1 t4 u i H18 H9 H10 H11) in 
-(ex2_sym T TMP_34 TMP_35 TMP_36))))) in (let TMP_38 \def (sym_eq T t6 t2 H17) 
-in (eq_ind T t2 TMP_33 TMP_37 t6 TMP_38))))) in (let TMP_40 \def (sym_eq T t5 
-t0 H16) in (eq_ind T t0 TMP_30 TMP_39 t5 TMP_40))))) in (let TMP_42 \def 
-(sym_eq C c1 c H13) in (eq_ind C c TMP_27 TMP_41 c1 TMP_42 H14 H15 H12))))))) 
-| (pr2_delta c1 d0 u0 i0 H12 t5 t6 H13 t7 H14) \Rightarrow (\lambda (H15: (eq 
-C c1 c)).(\lambda (H16: (eq T t5 t0)).(\lambda (H17: (eq T t7 t2)).(let 
-TMP_12 \def (\lambda (c2: C).((eq T t5 t0) \to ((eq T t7 t2) \to ((getl i0 c2 
-(CHead d0 (Bind Abbr) u0)) \to ((pr0 t5 t6) \to ((subst0 i0 u0 t6 t7) \to 
-(let TMP_10 \def (\lambda (t8: T).(pr2 c t1 t8)) in (let TMP_11 \def (\lambda 
-(t8: T).(pr2 c t2 t8)) in (ex2 T TMP_10 TMP_11))))))))) in (let TMP_23 \def 
-(\lambda (H18: (eq T t5 t0)).(let TMP_15 \def (\lambda (t8: T).((eq T t7 t2) 
-\to ((getl i0 c (CHead d0 (Bind Abbr) u0)) \to ((pr0 t8 t6) \to ((subst0 i0 
-u0 t6 t7) \to (let TMP_13 \def (\lambda (t9: T).(pr2 c t1 t9)) in (let TMP_14 
-\def (\lambda (t9: T).(pr2 c t2 t9)) in (ex2 T TMP_13 TMP_14)))))))) in (let 
-TMP_21 \def (\lambda (H19: (eq T t7 t2)).(let TMP_18 \def (\lambda (t8: 
-T).((getl i0 c (CHead d0 (Bind Abbr) u0)) \to ((pr0 t0 t6) \to ((subst0 i0 u0 
-t6 t8) \to (let TMP_16 \def (\lambda (t9: T).(pr2 c t1 t9)) in (let TMP_17 
-\def (\lambda (t9: T).(pr2 c t2 t9)) in (ex2 T TMP_16 TMP_17))))))) in (let 
-TMP_19 \def (\lambda (H20: (getl i0 c (CHead d0 (Bind Abbr) u0))).(\lambda 
-(H21: (pr0 t0 t6)).(\lambda (H22: (subst0 i0 u0 t6 
+(eq T t3 t0)).(\lambda (H4: (eq T t4 t1)).(eq_ind C c (\lambda (_: C).((eq T 
+t3 t0) \to ((eq T t4 t1) \to ((pr0 t3 t4) \to (ex2 T (\lambda (t: T).(pr2 c 
+t1 t)) (\lambda (t: T).(pr2 c t2 t))))))) (\lambda (H5: (eq T t3 t0)).(eq_ind 
+T t0 (\lambda (t: T).((eq T t4 t1) \to ((pr0 t t4) \to (ex2 T (\lambda (t5: 
+T).(pr2 c t1 t5)) (\lambda (t5: T).(pr2 c t2 t5)))))) (\lambda (H6: (eq T t4 
+t1)).(eq_ind T t1 (\lambda (t: T).((pr0 t0 t) \to (ex2 T (\lambda (t5: 
+T).(pr2 c t1 t5)) (\lambda (t5: T).(pr2 c t2 t5))))) (\lambda (H7: (pr0 t0 
+t1)).(let H8 \def (match H0 with [(pr2_free c1 t5 t6 H8) \Rightarrow (\lambda 
+(H9: (eq C c1 c)).(\lambda (H10: (eq T t5 t0)).(\lambda (H11: (eq T t6 
+t2)).(eq_ind C c (\lambda (_: C).((eq T t5 t0) \to ((eq T t6 t2) \to ((pr0 t5 
+t6) \to (ex2 T (\lambda (t: T).(pr2 c t1 t)) (\lambda (t: T).(pr2 c t2 
+t))))))) (\lambda (H12: (eq T t5 t0)).(eq_ind T t0 (\lambda (t: T).((eq T t6 
+t2) \to ((pr0 t t6) \to (ex2 T (\lambda (t7: T).(pr2 c t1 t7)) (\lambda (t7: 
+T).(pr2 c t2 t7)))))) (\lambda (H13: (eq T t6 t2)).(eq_ind T t2 (\lambda (t: 
+T).((pr0 t0 t) \to (ex2 T (\lambda (t7: T).(pr2 c t1 t7)) (\lambda (t7: 
+T).(pr2 c t2 t7))))) (\lambda (H14: (pr0 t0 
+t2)).(pr2_confluence__pr2_free_free c t0 t1 t2 H7 H14)) t6 (sym_eq T t6 t2 
+H13))) t5 (sym_eq T t5 t0 H12))) c1 (sym_eq C c1 c H9) H10 H11 H8)))) | 
+(pr2_delta c1 d u i H8 t5 t6 H9 t H10) \Rightarrow (\lambda (H11: (eq C c1 
+c)).(\lambda (H12: (eq T t5 t0)).(\lambda (H13: (eq T t t2)).(eq_ind C c 
+(\lambda (c2: C).((eq T t5 t0) \to ((eq T t t2) \to ((getl i c2 (CHead d 
+(Bind Abbr) u)) \to ((pr0 t5 t6) \to ((subst0 i u t6 t) \to (ex2 T (\lambda 
+(t7: T).(pr2 c t1 t7)) (\lambda (t7: T).(pr2 c t2 t7))))))))) (\lambda (H14: 
+(eq T t5 t0)).(eq_ind T t0 (\lambda (t7: T).((eq T t t2) \to ((getl i c 
+(CHead d (Bind Abbr) u)) \to ((pr0 t7 t6) \to ((subst0 i u t6 t) \to (ex2 T 
+(\lambda (t8: T).(pr2 c t1 t8)) (\lambda (t8: T).(pr2 c t2 t8)))))))) 
+(\lambda (H15: (eq T t t2)).(eq_ind T t2 (\lambda (t7: T).((getl i c (CHead d 
+(Bind Abbr) u)) \to ((pr0 t0 t6) \to ((subst0 i u t6 t7) \to (ex2 T (\lambda 
+(t8: T).(pr2 c t1 t8)) (\lambda (t8: T).(pr2 c t2 t8))))))) (\lambda (H16: 
+(getl i c (CHead d (Bind Abbr) u))).(\lambda (H17: (pr0 t0 t6)).(\lambda 
+(H18: (subst0 i u t6 t2)).(pr2_confluence__pr2_free_delta c d t0 t1 t2 t6 u i 
+H7 H16 H17 H18)))) t (sym_eq T t t2 H15))) t5 (sym_eq T t5 t0 H14))) c1 
+(sym_eq C c1 c H11) H12 H13 H8 H9 H10))))]) in (H8 (refl_equal C c) 
+(refl_equal T t0) (refl_equal T t2)))) t4 (sym_eq T t4 t1 H6))) t3 (sym_eq T 
+t3 t0 H5))) c0 (sym_eq C c0 c H2) H3 H4 H1)))) | (pr2_delta c0 d u i H1 t3 t4 
+H2 t H3) \Rightarrow (\lambda (H4: (eq C c0 c)).(\lambda (H5: (eq T t3 
+t0)).(\lambda (H6: (eq T t t1)).(eq_ind C c (\lambda (c1: C).((eq T t3 t0) 
+\to ((eq T t t1) \to ((getl i c1 (CHead d (Bind Abbr) u)) \to ((pr0 t3 t4) 
+\to ((subst0 i u t4 t) \to (ex2 T (\lambda (t5: T).(pr2 c t1 t5)) (\lambda 
+(t5: T).(pr2 c t2 t5))))))))) (\lambda (H7: (eq T t3 t0)).(eq_ind T t0 
+(\lambda (t5: T).((eq T t t1) \to ((getl i c (CHead d (Bind Abbr) u)) \to 
+((pr0 t5 t4) \to ((subst0 i u t4 t) \to (ex2 T (\lambda (t6: T).(pr2 c t1 
+t6)) (\lambda (t6: T).(pr2 c t2 t6)))))))) (\lambda (H8: (eq T t t1)).(eq_ind 
+T t1 (\lambda (t5: T).((getl i c (CHead d (Bind Abbr) u)) \to ((pr0 t0 t4) 
+\to ((subst0 i u t4 t5) \to (ex2 T (\lambda (t6: T).(pr2 c t1 t6)) (\lambda 
+(t6: T).(pr2 c t2 t6))))))) (\lambda (H9: (getl i c (CHead d (Bind Abbr) 
+u))).(\lambda (H10: (pr0 t0 t4)).(\lambda (H11: (subst0 i u t4 t1)).(let H12 
+\def (match H0 with [(pr2_free c1 t5 t6 H12) \Rightarrow (\lambda (H13: (eq C 
+c1 c)).(\lambda (H14: (eq T t5 t0)).(\lambda (H15: (eq T t6 t2)).(eq_ind C c 
+(\lambda (_: C).((eq T t5 t0) \to ((eq T t6 t2) \to ((pr0 t5 t6) \to (ex2 T 
+(\lambda (t7: T).(pr2 c t1 t7)) (\lambda (t7: T).(pr2 c t2 t7))))))) (\lambda 
+(H16: (eq T t5 t0)).(eq_ind T t0 (\lambda (t7: T).((eq T t6 t2) \to ((pr0 t7 
+t6) \to (ex2 T (\lambda (t8: T).(pr2 c t1 t8)) (\lambda (t8: T).(pr2 c t2 
+t8)))))) (\lambda (H17: (eq T t6 t2)).(eq_ind T t2 (\lambda (t7: T).((pr0 t0 
+t7) \to (ex2 T (\lambda (t8: T).(pr2 c t1 t8)) (\lambda (t8: T).(pr2 c t2 
+t8))))) (\lambda (H18: (pr0 t0 t2)).(ex2_sym T (pr2 c t2) (pr2 c t1) 
+(pr2_confluence__pr2_free_delta c d t0 t2 t1 t4 u i H18 H9 H10 H11))) t6 
+(sym_eq T t6 t2 H17))) t5 (sym_eq T t5 t0 H16))) c1 (sym_eq C c1 c H13) H14 
+H15 H12)))) | (pr2_delta c1 d0 u0 i0 H12 t5 t6 H13 t7 H14) \Rightarrow 
+(\lambda (H15: (eq C c1 c)).(\lambda (H16: (eq T t5 t0)).(\lambda (H17: (eq T 
+t7 t2)).(eq_ind C c (\lambda (c2: C).((eq T t5 t0) \to ((eq T t7 t2) \to 
+((getl i0 c2 (CHead d0 (Bind Abbr) u0)) \to ((pr0 t5 t6) \to ((subst0 i0 u0 
+t6 t7) \to (ex2 T (\lambda (t8: T).(pr2 c t1 t8)) (\lambda (t8: T).(pr2 c t2 
+t8))))))))) (\lambda (H18: (eq T t5 t0)).(eq_ind T t0 (\lambda (t8: T).((eq T 
+t7 t2) \to ((getl i0 c (CHead d0 (Bind Abbr) u0)) \to ((pr0 t8 t6) \to 
+((subst0 i0 u0 t6 t7) \to (ex2 T (\lambda (t9: T).(pr2 c t1 t9)) (\lambda 
+(t9: T).(pr2 c t2 t9)))))))) (\lambda (H19: (eq T t7 t2)).(eq_ind T t2 
+(\lambda (t8: T).((getl i0 c (CHead d0 (Bind Abbr) u0)) \to ((pr0 t0 t6) \to 
+((subst0 i0 u0 t6 t8) \to (ex2 T (\lambda (t9: T).(pr2 c t1 t9)) (\lambda 
+(t9: T).(pr2 c t2 t9))))))) (\lambda (H20: (getl i0 c (CHead d0 (Bind Abbr) 
+u0))).(\lambda (H21: (pr0 t0 t6)).(\lambda (H22: (subst0 i0 u0 t6 
 t2)).(pr2_confluence__pr2_delta_delta c d d0 t0 t1 t2 t4 t6 u u0 i i0 H9 H10 
-H11 H20 H21 H22)))) in (let TMP_20 \def (sym_eq T t7 t2 H19) in (eq_ind T t2 
-TMP_18 TMP_19 t7 TMP_20))))) in (let TMP_22 \def (sym_eq T t5 t0 H18) in 
-(eq_ind T t0 TMP_15 TMP_21 t5 TMP_22))))) in (let TMP_24 \def (sym_eq C c1 c 
-H15) in (eq_ind C c TMP_12 TMP_23 c1 TMP_24 H16 H17 H12 H13 H14)))))))]) in 
-(let TMP_43 \def (refl_equal C c) in (let TMP_44 \def (refl_equal T t0) in 
-(let TMP_45 \def (refl_equal T t2) in (H12 TMP_43 TMP_44 TMP_45)))))))) in 
-(let TMP_47 \def (sym_eq T t t1 H8) in (eq_ind T t1 TMP_9 TMP_46 t 
-TMP_47))))) in (let TMP_49 \def (sym_eq T t3 t0 H7) in (eq_ind T t0 TMP_6 
-TMP_48 t3 TMP_49))))) in (let TMP_51 \def (sym_eq C c0 c H4) in (eq_ind C c 
-TMP_3 TMP_50 c0 TMP_51 H5 H6 H1 H2 H3)))))))]) in (let TMP_100 \def 
-(refl_equal C c) in (let TMP_101 \def (refl_equal T t0) in (let TMP_102 \def 
-(refl_equal T t1) in (H1 TMP_100 TMP_101 TMP_102)))))))))).
+H11 H20 H21 H22)))) t7 (sym_eq T t7 t2 H19))) t5 (sym_eq T t5 t0 H18))) c1 
+(sym_eq C c1 c H15) H16 H17 H12 H13 H14))))]) in (H12 (refl_equal C c) 
+(refl_equal T t0) (refl_equal T t2)))))) t (sym_eq T t t1 H8))) t3 (sym_eq T 
+t3 t0 H7))) c0 (sym_eq C c0 c H4) H5 H6 H1 H2 H3))))]) in (H1 (refl_equal C 
+c) (refl_equal T t0) (refl_equal T t1)))))))).
 
index ca979dd820044c2a5db5480e87d6cef31852672f..1da77c869790323585000d1e832be44741e010e3 100644 (file)
@@ -22,31 +22,25 @@ let rec pr3_ind (c: C) (P: (T \to (T \to Prop))) (f: (\forall (t: T).(P t
 t))) (f0: (\forall (t2: T).(\forall (t1: T).((pr2 c t1 t2) \to (\forall (t3: 
 T).((pr3 c t2 t3) \to ((P t2 t3) \to (P t1 t3)))))))) (t: T) (t0: T) (p: pr3 
 c t t0) on p: P t t0 \def match p with [(pr3_refl t1) \Rightarrow (f t1) | 
-(pr3_sing t2 t1 p0 t3 p1) \Rightarrow (let TMP_1 \def ((pr3_ind c P f f0) t2 
-t3 p1) in (f0 t2 t1 p0 t3 p1 TMP_1))].
+(pr3_sing t2 t1 p0 t3 p1) \Rightarrow (f0 t2 t1 p0 t3 p1 ((pr3_ind c P f f0) 
+t2 t3 p1))].
 
 theorem pr3_gen_sort:
  \forall (c: C).(\forall (x: T).(\forall (n: nat).((pr3 c (TSort n) x) \to 
 (eq T x (TSort n)))))
 \def
  \lambda (c: C).(\lambda (x: T).(\lambda (n: nat).(\lambda (H: (pr3 c (TSort 
-n) x)).(let TMP_1 \def (TSort n) in (let TMP_2 \def (\lambda (t: T).(pr3 c t 
-x)) in (let TMP_3 \def (\lambda (t: T).(eq T x t)) in (let TMP_17 \def 
-(\lambda (y: T).(\lambda (H0: (pr3 c y x)).(let TMP_4 \def (\lambda (t: 
-T).(\lambda (t0: T).((eq T t (TSort n)) \to (eq T t0 t)))) in (let TMP_5 \def 
-(\lambda (t: T).(\lambda (_: (eq T t (TSort n))).(refl_equal T t))) in (let 
-TMP_16 \def (\lambda (t2: T).(\lambda (t1: T).(\lambda (H1: (pr2 c t1 
-t2)).(\lambda (t3: T).(\lambda (_: (pr3 c t2 t3)).(\lambda (H3: (((eq T t2 
-(TSort n)) \to (eq T t3 t2)))).(\lambda (H4: (eq T t1 (TSort n))).(let TMP_6 
-\def (\lambda (t: T).(pr2 c t t2)) in (let TMP_7 \def (TSort n) in (let H5 
-\def (eq_ind T t1 TMP_6 H1 TMP_7 H4) in (let TMP_8 \def (TSort n) in (let 
-TMP_9 \def (\lambda (t: T).(eq T t3 t)) in (let TMP_10 \def (\lambda (t: 
-T).((eq T t (TSort n)) \to (eq T t3 t))) in (let TMP_11 \def (TSort n) in 
-(let TMP_12 \def (pr2_gen_sort c t2 n H5) in (let H6 \def (eq_ind T t2 TMP_10 
-H3 TMP_11 TMP_12) in (let TMP_13 \def (TSort n) in (let TMP_14 \def 
-(refl_equal T TMP_13) in (let TMP_15 \def (H6 TMP_14) in (eq_ind_r T TMP_8 
-TMP_9 TMP_15 t1 H4)))))))))))))))))))) in (pr3_ind c TMP_4 TMP_5 TMP_16 y x 
-H0)))))) in (insert_eq T TMP_1 TMP_2 TMP_3 TMP_17 H)))))))).
+n) x)).(insert_eq T (TSort n) (\lambda (t: T).(pr3 c t x)) (\lambda (t: 
+T).(eq T x t)) (\lambda (y: T).(\lambda (H0: (pr3 c y x)).(pr3_ind c (\lambda 
+(t: T).(\lambda (t0: T).((eq T t (TSort n)) \to (eq T t0 t)))) (\lambda (t: 
+T).(\lambda (_: (eq T t (TSort n))).(refl_equal T t))) (\lambda (t2: 
+T).(\lambda (t1: T).(\lambda (H1: (pr2 c t1 t2)).(\lambda (t3: T).(\lambda 
+(_: (pr3 c t2 t3)).(\lambda (H3: (((eq T t2 (TSort n)) \to (eq T t3 
+t2)))).(\lambda (H4: (eq T t1 (TSort n))).(let H5 \def (eq_ind T t1 (\lambda 
+(t: T).(pr2 c t t2)) H1 (TSort n) H4) in (eq_ind_r T (TSort n) (\lambda (t: 
+T).(eq T t3 t)) (let H6 \def (eq_ind T t2 (\lambda (t: T).((eq T t (TSort n)) 
+\to (eq T t3 t))) H3 (TSort n) (pr2_gen_sort c t2 n H5)) in (H6 (refl_equal T 
+(TSort n)))) t1 H4))))))))) y x H0))) H)))).
 
 theorem pr3_gen_abst:
  \forall (c: C).(\forall (u1: T).(\forall (t1: T).(\forall (x: T).((pr3 c 
@@ -56,112 +50,70 @@ c u1 u2))) (\lambda (_: T).(\lambda (t2: T).(\forall (b: B).(\forall (u:
 T).(pr3 (CHead c (Bind b) u) t1 t2))))))))))
 \def
  \lambda (c: C).(\lambda (u1: T).(\lambda (t1: T).(\lambda (x: T).(\lambda 
-(H: (pr3 c (THead (Bind Abst) u1 t1) x)).(let TMP_1 \def (Bind Abst) in (let 
-TMP_2 \def (THead TMP_1 u1 t1) in (let TMP_3 \def (\lambda (t: T).(pr3 c t 
-x)) in (let TMP_11 \def (\lambda (_: T).(let TMP_6 \def (\lambda (u2: 
-T).(\lambda (t2: T).(let TMP_4 \def (Bind Abst) in (let TMP_5 \def (THead 
-TMP_4 u2 t2) in (eq T x TMP_5))))) in (let TMP_7 \def (\lambda (u2: 
-T).(\lambda (_: T).(pr3 c u1 u2))) in (let TMP_10 \def (\lambda (_: 
-T).(\lambda (t2: T).(\forall (b: B).(\forall (u: T).(let TMP_8 \def (Bind b) 
-in (let TMP_9 \def (CHead c TMP_8 u) in (pr3 TMP_9 t1 t2))))))) in (ex3_2 T T 
-TMP_6 TMP_7 TMP_10))))) in (let TMP_112 \def (\lambda (y: T).(\lambda (H0: 
-(pr3 c y x)).(let TMP_19 \def (\lambda (t: T).((eq T y (THead (Bind Abst) u1 
-t)) \to (let TMP_14 \def (\lambda (u2: T).(\lambda (t2: T).(let TMP_12 \def 
-(Bind Abst) in (let TMP_13 \def (THead TMP_12 u2 t2) in (eq T x TMP_13))))) 
-in (let TMP_15 \def (\lambda (u2: T).(\lambda (_: T).(pr3 c u1 u2))) in (let 
-TMP_18 \def (\lambda (_: T).(\lambda (t2: T).(\forall (b: B).(\forall (u: 
-T).(let TMP_16 \def (Bind b) in (let TMP_17 \def (CHead c TMP_16 u) in (pr3 
-TMP_17 t t2))))))) in (ex3_2 T T TMP_14 TMP_15 TMP_18)))))) in (let TMP_27 
-\def (\lambda (t: T).(\forall (x0: T).((eq T y (THead (Bind Abst) t x0)) \to 
-(let TMP_22 \def (\lambda (u2: T).(\lambda (t2: T).(let TMP_20 \def (Bind 
-Abst) in (let TMP_21 \def (THead TMP_20 u2 t2) in (eq T x TMP_21))))) in (let 
-TMP_23 \def (\lambda (u2: T).(\lambda (_: T).(pr3 c t u2))) in (let TMP_26 
-\def (\lambda (_: T).(\lambda (t2: T).(\forall (b: B).(\forall (u: T).(let 
-TMP_24 \def (Bind b) in (let TMP_25 \def (CHead c TMP_24 u) in (pr3 TMP_25 x0 
-t2))))))) in (ex3_2 T T TMP_22 TMP_23 TMP_26))))))) in (let TMP_35 \def 
+(H: (pr3 c (THead (Bind Abst) u1 t1) x)).(insert_eq T (THead (Bind Abst) u1 
+t1) (\lambda (t: T).(pr3 c t x)) (\lambda (_: T).(ex3_2 T T (\lambda (u2: 
+T).(\lambda (t2: T).(eq T x (THead (Bind Abst) u2 t2)))) (\lambda (u2: 
+T).(\lambda (_: T).(pr3 c u1 u2))) (\lambda (_: T).(\lambda (t2: T).(\forall 
+(b: B).(\forall (u: T).(pr3 (CHead c (Bind b) u) t1 t2))))))) (\lambda (y: 
+T).(\lambda (H0: (pr3 c y x)).(unintro T t1 (\lambda (t: T).((eq T y (THead 
+(Bind Abst) u1 t)) \to (ex3_2 T T (\lambda (u2: T).(\lambda (t2: T).(eq T x 
+(THead (Bind Abst) u2 t2)))) (\lambda (u2: T).(\lambda (_: T).(pr3 c u1 u2))) 
+(\lambda (_: T).(\lambda (t2: T).(\forall (b: B).(\forall (u: T).(pr3 (CHead 
+c (Bind b) u) t t2)))))))) (unintro T u1 (\lambda (t: T).(\forall (x0: 
+T).((eq T y (THead (Bind Abst) t x0)) \to (ex3_2 T T (\lambda (u2: 
+T).(\lambda (t2: T).(eq T x (THead (Bind Abst) u2 t2)))) (\lambda (u2: 
+T).(\lambda (_: T).(pr3 c t u2))) (\lambda (_: T).(\lambda (t2: T).(\forall 
+(b: B).(\forall (u: T).(pr3 (CHead c (Bind b) u) x0 t2))))))))) (pr3_ind c 
 (\lambda (t: T).(\lambda (t0: T).(\forall (x0: T).(\forall (x1: T).((eq T t 
-(THead (Bind Abst) x0 x1)) \to (let TMP_30 \def (\lambda (u2: T).(\lambda 
-(t2: T).(let TMP_28 \def (Bind Abst) in (let TMP_29 \def (THead TMP_28 u2 t2) 
-in (eq T t0 TMP_29))))) in (let TMP_31 \def (\lambda (u2: T).(\lambda (_: 
-T).(pr3 c x0 u2))) in (let TMP_34 \def (\lambda (_: T).(\lambda (t2: 
-T).(\forall (b: B).(\forall (u: T).(let TMP_32 \def (Bind b) in (let TMP_33 
-\def (CHead c TMP_32 u) in (pr3 TMP_33 x1 t2))))))) in (ex3_2 T T TMP_30 
-TMP_31 TMP_34))))))))) in (let TMP_47 \def (\lambda (t: T).(\lambda (x0: 
-T).(\lambda (x1: T).(\lambda (H1: (eq T t (THead (Bind Abst) x0 x1))).(let 
-TMP_38 \def (\lambda (u2: T).(\lambda (t2: T).(let TMP_36 \def (Bind Abst) in 
-(let TMP_37 \def (THead TMP_36 u2 t2) in (eq T t TMP_37))))) in (let TMP_39 
-\def (\lambda (u2: T).(\lambda (_: T).(pr3 c x0 u2))) in (let TMP_42 \def 
-(\lambda (_: T).(\lambda (t2: T).(\forall (b: B).(\forall (u: T).(let TMP_40 
-\def (Bind b) in (let TMP_41 \def (CHead c TMP_40 u) in (pr3 TMP_41 x1 
-t2))))))) in (let TMP_43 \def (pr3_refl c x0) in (let TMP_46 \def (\lambda 
-(b: B).(\lambda (u: T).(let TMP_44 \def (Bind b) in (let TMP_45 \def (CHead c 
-TMP_44 u) in (pr3_refl TMP_45 x1))))) in (ex3_2_intro T T TMP_38 TMP_39 
-TMP_42 x0 x1 H1 TMP_43 TMP_46)))))))))) in (let TMP_109 \def (\lambda (t2: 
-T).(\lambda (t3: T).(\lambda (H1: (pr2 c t3 t2)).(\lambda (t4: T).(\lambda 
-(_: (pr3 c t2 t4)).(\lambda (H3: ((\forall (x0: T).(\forall (x1: T).((eq T t2 
-(THead (Bind Abst) x0 x1)) \to (ex3_2 T T (\lambda (u2: T).(\lambda (t5: 
-T).(eq T t4 (THead (Bind Abst) u2 t5)))) (\lambda (u2: T).(\lambda (_: 
-T).(pr3 c x0 u2))) (\lambda (_: T).(\lambda (t5: T).(\forall (b: B).(\forall 
-(u: T).(pr3 (CHead c (Bind b) u) x1 t5))))))))))).(\lambda (x0: T).(\lambda 
-(x1: T).(\lambda (H4: (eq T t3 (THead (Bind Abst) x0 x1))).(let TMP_48 \def 
-(\lambda (t: T).(pr2 c t t2)) in (let TMP_49 \def (Bind Abst) in (let TMP_50 
-\def (THead TMP_49 x0 x1) in (let H5 \def (eq_ind T t3 TMP_48 H1 TMP_50 H4) 
-in (let H6 \def (pr2_gen_abst c x0 x1 t2 H5) in (let TMP_53 \def (\lambda 
-(u2: T).(\lambda (t5: T).(let TMP_51 \def (Bind Abst) in (let TMP_52 \def 
-(THead TMP_51 u2 t5) in (eq T t2 TMP_52))))) in (let TMP_54 \def (\lambda 
-(u2: T).(\lambda (_: T).(pr2 c x0 u2))) in (let TMP_57 \def (\lambda (_: 
-T).(\lambda (t5: T).(\forall (b: B).(\forall (u: T).(let TMP_55 \def (Bind b) 
-in (let TMP_56 \def (CHead c TMP_55 u) in (pr2 TMP_56 x1 t5))))))) in (let 
-TMP_60 \def (\lambda (u2: T).(\lambda (t5: T).(let TMP_58 \def (Bind Abst) in 
-(let TMP_59 \def (THead TMP_58 u2 t5) in (eq T t4 TMP_59))))) in (let TMP_61 
-\def (\lambda (u2: T).(\lambda (_: T).(pr3 c x0 u2))) in (let TMP_64 \def 
-(\lambda (_: T).(\lambda (t5: T).(\forall (b: B).(\forall (u: T).(let TMP_62 
-\def (Bind b) in (let TMP_63 \def (CHead c TMP_62 u) in (pr3 TMP_63 x1 
-t5))))))) in (let TMP_65 \def (ex3_2 T T TMP_60 TMP_61 TMP_64) in (let 
-TMP_108 \def (\lambda (x2: T).(\lambda (x3: T).(\lambda (H7: (eq T t2 (THead 
-(Bind Abst) x2 x3))).(\lambda (H8: (pr2 c x0 x2)).(\lambda (H9: ((\forall (b: 
-B).(\forall (u: T).(pr2 (CHead c (Bind b) u) x1 x3))))).(let TMP_73 \def 
-(\lambda (t: T).(\forall (x4: T).(\forall (x5: T).((eq T t (THead (Bind Abst) 
-x4 x5)) \to (let TMP_68 \def (\lambda (u2: T).(\lambda (t5: T).(let TMP_66 
-\def (Bind Abst) in (let TMP_67 \def (THead TMP_66 u2 t5) in (eq T t4 
-TMP_67))))) in (let TMP_69 \def (\lambda (u2: T).(\lambda (_: T).(pr3 c x4 
-u2))) in (let TMP_72 \def (\lambda (_: T).(\lambda (t5: T).(\forall (b: 
-B).(\forall (u: T).(let TMP_70 \def (Bind b) in (let TMP_71 \def (CHead c 
-TMP_70 u) in (pr3 TMP_71 x5 t5))))))) in (ex3_2 T T TMP_68 TMP_69 
-TMP_72)))))))) in (let TMP_74 \def (Bind Abst) in (let TMP_75 \def (THead 
-TMP_74 x2 x3) in (let H10 \def (eq_ind T t2 TMP_73 H3 TMP_75 H7) in (let 
-TMP_76 \def (Bind Abst) in (let TMP_77 \def (THead TMP_76 x2 x3) in (let 
-TMP_78 \def (refl_equal T TMP_77) in (let H11 \def (H10 x2 x3 TMP_78) in (let 
-TMP_81 \def (\lambda (u2: T).(\lambda (t5: T).(let TMP_79 \def (Bind Abst) in 
-(let TMP_80 \def (THead TMP_79 u2 t5) in (eq T t4 TMP_80))))) in (let TMP_82 
-\def (\lambda (u2: T).(\lambda (_: T).(pr3 c x2 u2))) in (let TMP_85 \def 
-(\lambda (_: T).(\lambda (t5: T).(\forall (b: B).(\forall (u: T).(let TMP_83 
-\def (Bind b) in (let TMP_84 \def (CHead c TMP_83 u) in (pr3 TMP_84 x3 
-t5))))))) in (let TMP_88 \def (\lambda (u2: T).(\lambda (t5: T).(let TMP_86 
-\def (Bind Abst) in (let TMP_87 \def (THead TMP_86 u2 t5) in (eq T t4 
-TMP_87))))) in (let TMP_89 \def (\lambda (u2: T).(\lambda (_: T).(pr3 c x0 
-u2))) in (let TMP_92 \def (\lambda (_: T).(\lambda (t5: T).(\forall (b: 
-B).(\forall (u: T).(let TMP_90 \def (Bind b) in (let TMP_91 \def (CHead c 
-TMP_90 u) in (pr3 TMP_91 x1 t5))))))) in (let TMP_93 \def (ex3_2 T T TMP_88 
-TMP_89 TMP_92) in (let TMP_107 \def (\lambda (x4: T).(\lambda (x5: 
-T).(\lambda (H12: (eq T t4 (THead (Bind Abst) x4 x5))).(\lambda (H13: (pr3 c 
-x2 x4)).(\lambda (H14: ((\forall (b: B).(\forall (u: T).(pr3 (CHead c (Bind 
-b) u) x3 x5))))).(let TMP_96 \def (\lambda (u2: T).(\lambda (t5: T).(let 
-TMP_94 \def (Bind Abst) in (let TMP_95 \def (THead TMP_94 u2 t5) in (eq T t4 
-TMP_95))))) in (let TMP_97 \def (\lambda (u2: T).(\lambda (_: T).(pr3 c x0 
-u2))) in (let TMP_100 \def (\lambda (_: T).(\lambda (t5: T).(\forall (b: 
-B).(\forall (u: T).(let TMP_98 \def (Bind b) in (let TMP_99 \def (CHead c 
-TMP_98 u) in (pr3 TMP_99 x1 t5))))))) in (let TMP_101 \def (pr3_sing c x2 x0 
-H8 x4 H13) in (let TMP_106 \def (\lambda (b: B).(\lambda (u: T).(let TMP_102 
-\def (Bind b) in (let TMP_103 \def (CHead c TMP_102 u) in (let TMP_104 \def 
-(H9 b u) in (let TMP_105 \def (H14 b u) in (pr3_sing TMP_103 x3 x1 TMP_104 x5 
-TMP_105))))))) in (ex3_2_intro T T TMP_96 TMP_97 TMP_100 x4 x5 H12 TMP_101 
-TMP_106))))))))))) in (ex3_2_ind T T TMP_81 TMP_82 TMP_85 TMP_93 TMP_107 
-H11)))))))))))))))))))))) in (ex3_2_ind T T TMP_53 TMP_54 TMP_57 TMP_65 
-TMP_108 H6))))))))))))))))))))))) in (let TMP_110 \def (pr3_ind c TMP_35 
-TMP_47 TMP_109 y x H0) in (let TMP_111 \def (unintro T u1 TMP_27 TMP_110) in 
-(unintro T t1 TMP_19 TMP_111)))))))))) in (insert_eq T TMP_2 TMP_3 TMP_11 
-TMP_112 H)))))))))).
+(THead (Bind Abst) x0 x1)) \to (ex3_2 T T (\lambda (u2: T).(\lambda (t2: 
+T).(eq T t0 (THead (Bind Abst) u2 t2)))) (\lambda (u2: T).(\lambda (_: 
+T).(pr3 c x0 u2))) (\lambda (_: T).(\lambda (t2: T).(\forall (b: B).(\forall 
+(u: T).(pr3 (CHead c (Bind b) u) x1 t2))))))))))) (\lambda (t: T).(\lambda 
+(x0: T).(\lambda (x1: T).(\lambda (H1: (eq T t (THead (Bind Abst) x0 
+x1))).(ex3_2_intro T T (\lambda (u2: T).(\lambda (t2: T).(eq T t (THead (Bind 
+Abst) u2 t2)))) (\lambda (u2: T).(\lambda (_: T).(pr3 c x0 u2))) (\lambda (_: 
+T).(\lambda (t2: T).(\forall (b: B).(\forall (u: T).(pr3 (CHead c (Bind b) u) 
+x1 t2))))) x0 x1 H1 (pr3_refl c x0) (\lambda (b: B).(\lambda (u: T).(pr3_refl 
+(CHead c (Bind b) u) x1)))))))) (\lambda (t2: T).(\lambda (t3: T).(\lambda 
+(H1: (pr2 c t3 t2)).(\lambda (t4: T).(\lambda (_: (pr3 c t2 t4)).(\lambda 
+(H3: ((\forall (x0: T).(\forall (x1: T).((eq T t2 (THead (Bind Abst) x0 x1)) 
+\to (ex3_2 T T (\lambda (u2: T).(\lambda (t5: T).(eq T t4 (THead (Bind Abst) 
+u2 t5)))) (\lambda (u2: T).(\lambda (_: T).(pr3 c x0 u2))) (\lambda (_: 
+T).(\lambda (t5: T).(\forall (b: B).(\forall (u: T).(pr3 (CHead c (Bind b) u) 
+x1 t5))))))))))).(\lambda (x0: T).(\lambda (x1: T).(\lambda (H4: (eq T t3 
+(THead (Bind Abst) x0 x1))).(let H5 \def (eq_ind T t3 (\lambda (t: T).(pr2 c 
+t t2)) H1 (THead (Bind Abst) x0 x1) H4) in (let H6 \def (pr2_gen_abst c x0 x1 
+t2 H5) in (ex3_2_ind T T (\lambda (u2: T).(\lambda (t5: T).(eq T t2 (THead 
+(Bind Abst) u2 t5)))) (\lambda (u2: T).(\lambda (_: T).(pr2 c x0 u2))) 
+(\lambda (_: T).(\lambda (t5: T).(\forall (b: B).(\forall (u: T).(pr2 (CHead 
+c (Bind b) u) x1 t5))))) (ex3_2 T T (\lambda (u2: T).(\lambda (t5: T).(eq T 
+t4 (THead (Bind Abst) u2 t5)))) (\lambda (u2: T).(\lambda (_: T).(pr3 c x0 
+u2))) (\lambda (_: T).(\lambda (t5: T).(\forall (b: B).(\forall (u: T).(pr3 
+(CHead c (Bind b) u) x1 t5)))))) (\lambda (x2: T).(\lambda (x3: T).(\lambda 
+(H7: (eq T t2 (THead (Bind Abst) x2 x3))).(\lambda (H8: (pr2 c x0 
+x2)).(\lambda (H9: ((\forall (b: B).(\forall (u: T).(pr2 (CHead c (Bind b) u) 
+x1 x3))))).(let H10 \def (eq_ind T t2 (\lambda (t: T).(\forall (x4: 
+T).(\forall (x5: T).((eq T t (THead (Bind Abst) x4 x5)) \to (ex3_2 T T 
+(\lambda (u2: T).(\lambda (t5: T).(eq T t4 (THead (Bind Abst) u2 t5)))) 
+(\lambda (u2: T).(\lambda (_: T).(pr3 c x4 u2))) (\lambda (_: T).(\lambda 
+(t5: T).(\forall (b: B).(\forall (u: T).(pr3 (CHead c (Bind b) u) x5 
+t5)))))))))) H3 (THead (Bind Abst) x2 x3) H7) in (let H11 \def (H10 x2 x3 
+(refl_equal T (THead (Bind Abst) x2 x3))) in (ex3_2_ind T T (\lambda (u2: 
+T).(\lambda (t5: T).(eq T t4 (THead (Bind Abst) u2 t5)))) (\lambda (u2: 
+T).(\lambda (_: T).(pr3 c x2 u2))) (\lambda (_: T).(\lambda (t5: T).(\forall 
+(b: B).(\forall (u: T).(pr3 (CHead c (Bind b) u) x3 t5))))) (ex3_2 T T 
+(\lambda (u2: T).(\lambda (t5: T).(eq T t4 (THead (Bind Abst) u2 t5)))) 
+(\lambda (u2: T).(\lambda (_: T).(pr3 c x0 u2))) (\lambda (_: T).(\lambda 
+(t5: T).(\forall (b: B).(\forall (u: T).(pr3 (CHead c (Bind b) u) x1 t5)))))) 
+(\lambda (x4: T).(\lambda (x5: T).(\lambda (H12: (eq T t4 (THead (Bind Abst) 
+x4 x5))).(\lambda (H13: (pr3 c x2 x4)).(\lambda (H14: ((\forall (b: 
+B).(\forall (u: T).(pr3 (CHead c (Bind b) u) x3 x5))))).(ex3_2_intro T T 
+(\lambda (u2: T).(\lambda (t5: T).(eq T t4 (THead (Bind Abst) u2 t5)))) 
+(\lambda (u2: T).(\lambda (_: T).(pr3 c x0 u2))) (\lambda (_: T).(\lambda 
+(t5: T).(\forall (b: B).(\forall (u: T).(pr3 (CHead c (Bind b) u) x1 t5))))) 
+x4 x5 H12 (pr3_sing c x2 x0 H8 x4 H13) (\lambda (b: B).(\lambda (u: 
+T).(pr3_sing (CHead c (Bind b) u) x3 x1 (H9 b u) x5 (H14 b u)))))))))) 
+H11)))))))) H6)))))))))))) y x H0))))) H))))).
 
 theorem pr3_gen_cast:
  \forall (c: C).(\forall (u1: T).(\forall (t1: T).(\forall (x: T).((pr3 c 
@@ -171,178 +123,99 @@ T).(pr3 c u1 u2))) (\lambda (_: T).(\lambda (t2: T).(pr3 c t1 t2)))) (pr3 c
 t1 x))))))
 \def
  \lambda (c: C).(\lambda (u1: T).(\lambda (t1: T).(\lambda (x: T).(\lambda 
-(H: (pr3 c (THead (Flat Cast) u1 t1) x)).(let TMP_1 \def (Flat Cast) in (let 
-TMP_2 \def (THead TMP_1 u1 t1) in (let TMP_3 \def (\lambda (t: T).(pr3 c t 
-x)) in (let TMP_11 \def (\lambda (_: T).(let TMP_6 \def (\lambda (u2: 
-T).(\lambda (t2: T).(let TMP_4 \def (Flat Cast) in (let TMP_5 \def (THead 
-TMP_4 u2 t2) in (eq T x TMP_5))))) in (let TMP_7 \def (\lambda (u2: 
-T).(\lambda (_: T).(pr3 c u1 u2))) in (let TMP_8 \def (\lambda (_: 
-T).(\lambda (t2: T).(pr3 c t1 t2))) in (let TMP_9 \def (ex3_2 T T TMP_6 TMP_7 
-TMP_8) in (let TMP_10 \def (pr3 c t1 x) in (or TMP_9 TMP_10))))))) in (let 
-TMP_204 \def (\lambda (y: T).(\lambda (H0: (pr3 c y x)).(let TMP_19 \def 
-(\lambda (t: T).((eq T y (THead (Flat Cast) u1 t)) \to (let TMP_14 \def 
-(\lambda (u2: T).(\lambda (t2: T).(let TMP_12 \def (Flat Cast) in (let TMP_13 
-\def (THead TMP_12 u2 t2) in (eq T x TMP_13))))) in (let TMP_15 \def (\lambda 
-(u2: T).(\lambda (_: T).(pr3 c u1 u2))) in (let TMP_16 \def (\lambda (_: 
-T).(\lambda (t2: T).(pr3 c t t2))) in (let TMP_17 \def (ex3_2 T T TMP_14 
-TMP_15 TMP_16) in (let TMP_18 \def (pr3 c t x) in (or TMP_17 TMP_18)))))))) 
-in (let TMP_27 \def (\lambda (t: T).(\forall (x0: T).((eq T y (THead (Flat 
-Cast) t x0)) \to (let TMP_22 \def (\lambda (u2: T).(\lambda (t2: T).(let 
-TMP_20 \def (Flat Cast) in (let TMP_21 \def (THead TMP_20 u2 t2) in (eq T x 
-TMP_21))))) in (let TMP_23 \def (\lambda (u2: T).(\lambda (_: T).(pr3 c t 
-u2))) in (let TMP_24 \def (\lambda (_: T).(\lambda (t2: T).(pr3 c x0 t2))) in 
-(let TMP_25 \def (ex3_2 T T TMP_22 TMP_23 TMP_24) in (let TMP_26 \def (pr3 c 
-x0 x) in (or TMP_25 TMP_26))))))))) in (let TMP_35 \def (\lambda (t: 
-T).(\lambda (t0: T).(\forall (x0: T).(\forall (x1: T).((eq T t (THead (Flat 
-Cast) x0 x1)) \to (let TMP_30 \def (\lambda (u2: T).(\lambda (t2: T).(let 
-TMP_28 \def (Flat Cast) in (let TMP_29 \def (THead TMP_28 u2 t2) in (eq T t0 
-TMP_29))))) in (let TMP_31 \def (\lambda (u2: T).(\lambda (_: T).(pr3 c x0 
-u2))) in (let TMP_32 \def (\lambda (_: T).(\lambda (t2: T).(pr3 c x1 t2))) in 
-(let TMP_33 \def (ex3_2 T T TMP_30 TMP_31 TMP_32) in (let TMP_34 \def (pr3 c 
-x1 t0) in (or TMP_33 TMP_34))))))))))) in (let TMP_71 \def (\lambda (t: 
-T).(\lambda (x0: T).(\lambda (x1: T).(\lambda (H1: (eq T t (THead (Flat Cast) 
-x0 x1))).(let TMP_36 \def (Flat Cast) in (let TMP_37 \def (THead TMP_36 x0 
-x1) in (let TMP_45 \def (\lambda (t0: T).(let TMP_40 \def (\lambda (u2: 
-T).(\lambda (t2: T).(let TMP_38 \def (Flat Cast) in (let TMP_39 \def (THead 
-TMP_38 u2 t2) in (eq T t0 TMP_39))))) in (let TMP_41 \def (\lambda (u2: 
-T).(\lambda (_: T).(pr3 c x0 u2))) in (let TMP_42 \def (\lambda (_: 
-T).(\lambda (t2: T).(pr3 c x1 t2))) in (let TMP_43 \def (ex3_2 T T TMP_40 
-TMP_41 TMP_42) in (let TMP_44 \def (pr3 c x1 t0) in (or TMP_43 TMP_44))))))) 
-in (let TMP_50 \def (\lambda (u2: T).(\lambda (t2: T).(let TMP_46 \def (Flat 
-Cast) in (let TMP_47 \def (THead TMP_46 x0 x1) in (let TMP_48 \def (Flat 
-Cast) in (let TMP_49 \def (THead TMP_48 u2 t2) in (eq T TMP_47 TMP_49))))))) 
-in (let TMP_51 \def (\lambda (u2: T).(\lambda (_: T).(pr3 c x0 u2))) in (let 
-TMP_52 \def (\lambda (_: T).(\lambda (t2: T).(pr3 c x1 t2))) in (let TMP_53 
-\def (ex3_2 T T TMP_50 TMP_51 TMP_52) in (let TMP_54 \def (Flat Cast) in (let 
-TMP_55 \def (THead TMP_54 x0 x1) in (let TMP_56 \def (pr3 c x1 TMP_55) in 
-(let TMP_61 \def (\lambda (u2: T).(\lambda (t2: T).(let TMP_57 \def (Flat 
-Cast) in (let TMP_58 \def (THead TMP_57 x0 x1) in (let TMP_59 \def (Flat 
-Cast) in (let TMP_60 \def (THead TMP_59 u2 t2) in (eq T TMP_58 TMP_60))))))) 
-in (let TMP_62 \def (\lambda (u2: T).(\lambda (_: T).(pr3 c x0 u2))) in (let 
-TMP_63 \def (\lambda (_: T).(\lambda (t2: T).(pr3 c x1 t2))) in (let TMP_64 
-\def (Flat Cast) in (let TMP_65 \def (THead TMP_64 x0 x1) in (let TMP_66 \def 
-(refl_equal T TMP_65) in (let TMP_67 \def (pr3_refl c x0) in (let TMP_68 \def 
-(pr3_refl c x1) in (let TMP_69 \def (ex3_2_intro T T TMP_61 TMP_62 TMP_63 x0 
-x1 TMP_66 TMP_67 TMP_68) in (let TMP_70 \def (or_introl TMP_53 TMP_56 TMP_69) 
-in (eq_ind_r T TMP_37 TMP_45 TMP_70 t H1))))))))))))))))))))))))) in (let 
-TMP_201 \def (\lambda (t2: T).(\lambda (t3: T).(\lambda (H1: (pr2 c t3 
-t2)).(\lambda (t4: T).(\lambda (H2: (pr3 c t2 t4)).(\lambda (H3: ((\forall 
-(x0: T).(\forall (x1: T).((eq T t2 (THead (Flat Cast) x0 x1)) \to (or (ex3_2 
-T T (\lambda (u2: T).(\lambda (t5: T).(eq T t4 (THead (Flat Cast) u2 t5)))) 
+(H: (pr3 c (THead (Flat Cast) u1 t1) x)).(insert_eq T (THead (Flat Cast) u1 
+t1) (\lambda (t: T).(pr3 c t x)) (\lambda (_: T).(or (ex3_2 T T (\lambda (u2: 
+T).(\lambda (t2: T).(eq T x (THead (Flat Cast) u2 t2)))) (\lambda (u2: 
+T).(\lambda (_: T).(pr3 c u1 u2))) (\lambda (_: T).(\lambda (t2: T).(pr3 c t1 
+t2)))) (pr3 c t1 x))) (\lambda (y: T).(\lambda (H0: (pr3 c y x)).(unintro T 
+t1 (\lambda (t: T).((eq T y (THead (Flat Cast) u1 t)) \to (or (ex3_2 T T 
+(\lambda (u2: T).(\lambda (t2: T).(eq T x (THead (Flat Cast) u2 t2)))) 
+(\lambda (u2: T).(\lambda (_: T).(pr3 c u1 u2))) (\lambda (_: T).(\lambda 
+(t2: T).(pr3 c t t2)))) (pr3 c t x)))) (unintro T u1 (\lambda (t: T).(\forall 
+(x0: T).((eq T y (THead (Flat Cast) t x0)) \to (or (ex3_2 T T (\lambda (u2: 
+T).(\lambda (t2: T).(eq T x (THead (Flat Cast) u2 t2)))) (\lambda (u2: 
+T).(\lambda (_: T).(pr3 c t u2))) (\lambda (_: T).(\lambda (t2: T).(pr3 c x0 
+t2)))) (pr3 c x0 x))))) (pr3_ind c (\lambda (t: T).(\lambda (t0: T).(\forall 
+(x0: T).(\forall (x1: T).((eq T t (THead (Flat Cast) x0 x1)) \to (or (ex3_2 T 
+T (\lambda (u2: T).(\lambda (t2: T).(eq T t0 (THead (Flat Cast) u2 t2)))) 
 (\lambda (u2: T).(\lambda (_: T).(pr3 c x0 u2))) (\lambda (_: T).(\lambda 
-(t5: T).(pr3 c x1 t5)))) (pr3 c x1 t4))))))).(\lambda (x0: T).(\lambda (x1: 
-T).(\lambda (H4: (eq T t3 (THead (Flat Cast) x0 x1))).(let TMP_72 \def 
-(\lambda (t: T).(pr2 c t t2)) in (let TMP_73 \def (Flat Cast) in (let TMP_74 
-\def (THead TMP_73 x0 x1) in (let H5 \def (eq_ind T t3 TMP_72 H1 TMP_74 H4) 
-in (let H6 \def (pr2_gen_cast c x0 x1 t2 H5) in (let TMP_77 \def (\lambda 
-(u2: T).(\lambda (t5: T).(let TMP_75 \def (Flat Cast) in (let TMP_76 \def 
-(THead TMP_75 u2 t5) in (eq T t2 TMP_76))))) in (let TMP_78 \def (\lambda 
-(u2: T).(\lambda (_: T).(pr2 c x0 u2))) in (let TMP_79 \def (\lambda (_: 
-T).(\lambda (t5: T).(pr2 c x1 t5))) in (let TMP_80 \def (ex3_2 T T TMP_77 
-TMP_78 TMP_79) in (let TMP_81 \def (pr2 c x1 t2) in (let TMP_84 \def (\lambda 
-(u2: T).(\lambda (t5: T).(let TMP_82 \def (Flat Cast) in (let TMP_83 \def 
-(THead TMP_82 u2 t5) in (eq T t4 TMP_83))))) in (let TMP_85 \def (\lambda 
-(u2: T).(\lambda (_: T).(pr3 c x0 u2))) in (let TMP_86 \def (\lambda (_: 
-T).(\lambda (t5: T).(pr3 c x1 t5))) in (let TMP_87 \def (ex3_2 T T TMP_84 
-TMP_85 TMP_86) in (let TMP_88 \def (pr3 c x1 t4) in (let TMP_89 \def (or 
-TMP_87 TMP_88) in (let TMP_191 \def (\lambda (H7: (ex3_2 T T (\lambda (u2: 
-T).(\lambda (t5: T).(eq T t2 (THead (Flat Cast) u2 t5)))) (\lambda (u2: 
-T).(\lambda (_: T).(pr2 c x0 u2))) (\lambda (_: T).(\lambda (t5: T).(pr2 c x1 
-t5))))).(let TMP_92 \def (\lambda (u2: T).(\lambda (t5: T).(let TMP_90 \def 
-(Flat Cast) in (let TMP_91 \def (THead TMP_90 u2 t5) in (eq T t2 TMP_91))))) 
-in (let TMP_93 \def (\lambda (u2: T).(\lambda (_: T).(pr2 c x0 u2))) in (let 
-TMP_94 \def (\lambda (_: T).(\lambda (t5: T).(pr2 c x1 t5))) in (let TMP_97 
-\def (\lambda (u2: T).(\lambda (t5: T).(let TMP_95 \def (Flat Cast) in (let 
-TMP_96 \def (THead TMP_95 u2 t5) in (eq T t4 TMP_96))))) in (let TMP_98 \def 
-(\lambda (u2: T).(\lambda (_: T).(pr3 c x0 u2))) in (let TMP_99 \def (\lambda 
-(_: T).(\lambda (t5: T).(pr3 c x1 t5))) in (let TMP_100 \def (ex3_2 T T 
-TMP_97 TMP_98 TMP_99) in (let TMP_101 \def (pr3 c x1 t4) in (let TMP_102 \def 
-(or TMP_100 TMP_101) in (let TMP_190 \def (\lambda (x2: T).(\lambda (x3: 
-T).(\lambda (H8: (eq T t2 (THead (Flat Cast) x2 x3))).(\lambda (H9: (pr2 c x0 
-x2)).(\lambda (H10: (pr2 c x1 x3)).(let TMP_110 \def (\lambda (t: T).(\forall 
-(x4: T).(\forall (x5: T).((eq T t (THead (Flat Cast) x4 x5)) \to (let TMP_105 
-\def (\lambda (u2: T).(\lambda (t5: T).(let TMP_103 \def (Flat Cast) in (let 
-TMP_104 \def (THead TMP_103 u2 t5) in (eq T t4 TMP_104))))) in (let TMP_106 
-\def (\lambda (u2: T).(\lambda (_: T).(pr3 c x4 u2))) in (let TMP_107 \def 
-(\lambda (_: T).(\lambda (t5: T).(pr3 c x5 t5))) in (let TMP_108 \def (ex3_2 
-T T TMP_105 TMP_106 TMP_107) in (let TMP_109 \def (pr3 c x5 t4) in (or 
-TMP_108 TMP_109)))))))))) in (let TMP_111 \def (Flat Cast) in (let TMP_112 
-\def (THead TMP_111 x2 x3) in (let H11 \def (eq_ind T t2 TMP_110 H3 TMP_112 
-H8) in (let TMP_113 \def (Flat Cast) in (let TMP_114 \def (THead TMP_113 x2 
-x3) in (let TMP_115 \def (refl_equal T TMP_114) in (let H12 \def (H11 x2 x3 
-TMP_115) in (let TMP_118 \def (\lambda (u2: T).(\lambda (t5: T).(let TMP_116 
-\def (Flat Cast) in (let TMP_117 \def (THead TMP_116 u2 t5) in (eq T t4 
-TMP_117))))) in (let TMP_119 \def (\lambda (u2: T).(\lambda (_: T).(pr3 c x2 
-u2))) in (let TMP_120 \def (\lambda (_: T).(\lambda (t5: T).(pr3 c x3 t5))) 
-in (let TMP_121 \def (ex3_2 T T TMP_118 TMP_119 TMP_120) in (let TMP_122 \def 
-(pr3 c x3 t4) in (let TMP_125 \def (\lambda (u2: T).(\lambda (t5: T).(let 
-TMP_123 \def (Flat Cast) in (let TMP_124 \def (THead TMP_123 u2 t5) in (eq T 
-t4 TMP_124))))) in (let TMP_126 \def (\lambda (u2: T).(\lambda (_: T).(pr3 c 
-x0 u2))) in (let TMP_127 \def (\lambda (_: T).(\lambda (t5: T).(pr3 c x1 
-t5))) in (let TMP_128 \def (ex3_2 T T TMP_125 TMP_126 TMP_127) in (let 
-TMP_129 \def (pr3 c x1 t4) in (let TMP_130 \def (or TMP_128 TMP_129) in (let 
-TMP_180 \def (\lambda (H13: (ex3_2 T T (\lambda (u2: T).(\lambda (t5: T).(eq 
-T t4 (THead (Flat Cast) u2 t5)))) (\lambda (u2: T).(\lambda (_: T).(pr3 c x2 
-u2))) (\lambda (_: T).(\lambda (t5: T).(pr3 c x3 t5))))).(let TMP_133 \def 
-(\lambda (u2: T).(\lambda (t5: T).(let TMP_131 \def (Flat Cast) in (let 
-TMP_132 \def (THead TMP_131 u2 t5) in (eq T t4 TMP_132))))) in (let TMP_134 
-\def (\lambda (u2: T).(\lambda (_: T).(pr3 c x2 u2))) in (let TMP_135 \def 
-(\lambda (_: T).(\lambda (t5: T).(pr3 c x3 t5))) in (let TMP_138 \def 
-(\lambda (u2: T).(\lambda (t5: T).(let TMP_136 \def (Flat Cast) in (let 
-TMP_137 \def (THead TMP_136 u2 t5) in (eq T t4 TMP_137))))) in (let TMP_139 
-\def (\lambda (u2: T).(\lambda (_: T).(pr3 c x0 u2))) in (let TMP_140 \def 
-(\lambda (_: T).(\lambda (t5: T).(pr3 c x1 t5))) in (let TMP_141 \def (ex3_2 
-T T TMP_138 TMP_139 TMP_140) in (let TMP_142 \def (pr3 c x1 t4) in (let 
-TMP_143 \def (or TMP_141 TMP_142) in (let TMP_179 \def (\lambda (x4: 
-T).(\lambda (x5: T).(\lambda (H14: (eq T t4 (THead (Flat Cast) x4 
-x5))).(\lambda (H15: (pr3 c x2 x4)).(\lambda (H16: (pr3 c x3 x5)).(let 
-TMP_144 \def (Flat Cast) in (let TMP_145 \def (THead TMP_144 x4 x5) in (let 
-TMP_153 \def (\lambda (t: T).(let TMP_148 \def (\lambda (u2: T).(\lambda (t5: 
-T).(let TMP_146 \def (Flat Cast) in (let TMP_147 \def (THead TMP_146 u2 t5) 
-in (eq T t TMP_147))))) in (let TMP_149 \def (\lambda (u2: T).(\lambda (_: 
-T).(pr3 c x0 u2))) in (let TMP_150 \def (\lambda (_: T).(\lambda (t5: T).(pr3 
-c x1 t5))) in (let TMP_151 \def (ex3_2 T T TMP_148 TMP_149 TMP_150) in (let 
-TMP_152 \def (pr3 c x1 t) in (or TMP_151 TMP_152))))))) in (let TMP_158 \def 
-(\lambda (u2: T).(\lambda (t5: T).(let TMP_154 \def (Flat Cast) in (let 
-TMP_155 \def (THead TMP_154 x4 x5) in (let TMP_156 \def (Flat Cast) in (let 
-TMP_157 \def (THead TMP_156 u2 t5) in (eq T TMP_155 TMP_157))))))) in (let 
-TMP_159 \def (\lambda (u2: T).(\lambda (_: T).(pr3 c x0 u2))) in (let TMP_160 
-\def (\lambda (_: T).(\lambda (t5: T).(pr3 c x1 t5))) in (let TMP_161 \def 
-(ex3_2 T T TMP_158 TMP_159 TMP_160) in (let TMP_162 \def (Flat Cast) in (let 
-TMP_163 \def (THead TMP_162 x4 x5) in (let TMP_164 \def (pr3 c x1 TMP_163) in 
-(let TMP_169 \def (\lambda (u2: T).(\lambda (t5: T).(let TMP_165 \def (Flat 
-Cast) in (let TMP_166 \def (THead TMP_165 x4 x5) in (let TMP_167 \def (Flat 
-Cast) in (let TMP_168 \def (THead TMP_167 u2 t5) in (eq T TMP_166 
-TMP_168))))))) in (let TMP_170 \def (\lambda (u2: T).(\lambda (_: T).(pr3 c 
-x0 u2))) in (let TMP_171 \def (\lambda (_: T).(\lambda (t5: T).(pr3 c x1 
-t5))) in (let TMP_172 \def (Flat Cast) in (let TMP_173 \def (THead TMP_172 x4 
-x5) in (let TMP_174 \def (refl_equal T TMP_173) in (let TMP_175 \def 
-(pr3_sing c x2 x0 H9 x4 H15) in (let TMP_176 \def (pr3_sing c x3 x1 H10 x5 
-H16) in (let TMP_177 \def (ex3_2_intro T T TMP_169 TMP_170 TMP_171 x4 x5 
-TMP_174 TMP_175 TMP_176) in (let TMP_178 \def (or_introl TMP_161 TMP_164 
-TMP_177) in (eq_ind_r T TMP_145 TMP_153 TMP_178 t4 
-H14)))))))))))))))))))))))))) in (ex3_2_ind T T TMP_133 TMP_134 TMP_135 
-TMP_143 TMP_179 H13)))))))))))) in (let TMP_189 \def (\lambda (H13: (pr3 c x3 
-t4)).(let TMP_183 \def (\lambda (u2: T).(\lambda (t5: T).(let TMP_181 \def 
-(Flat Cast) in (let TMP_182 \def (THead TMP_181 u2 t5) in (eq T t4 
-TMP_182))))) in (let TMP_184 \def (\lambda (u2: T).(\lambda (_: T).(pr3 c x0 
-u2))) in (let TMP_185 \def (\lambda (_: T).(\lambda (t5: T).(pr3 c x1 t5))) 
-in (let TMP_186 \def (ex3_2 T T TMP_183 TMP_184 TMP_185) in (let TMP_187 \def 
-(pr3 c x1 t4) in (let TMP_188 \def (pr3_sing c x3 x1 H10 t4 H13) in 
-(or_intror TMP_186 TMP_187 TMP_188)))))))) in (or_ind TMP_121 TMP_122 TMP_130 
-TMP_180 TMP_189 H12))))))))))))))))))))))))))) in (ex3_2_ind T T TMP_92 
-TMP_93 TMP_94 TMP_102 TMP_190 H7)))))))))))) in (let TMP_200 \def (\lambda 
-(H7: (pr2 c x1 t2)).(let TMP_194 \def (\lambda (u2: T).(\lambda (t5: T).(let 
-TMP_192 \def (Flat Cast) in (let TMP_193 \def (THead TMP_192 u2 t5) in (eq T 
-t4 TMP_193))))) in (let TMP_195 \def (\lambda (u2: T).(\lambda (_: T).(pr3 c 
-x0 u2))) in (let TMP_196 \def (\lambda (_: T).(\lambda (t5: T).(pr3 c x1 
-t5))) in (let TMP_197 \def (ex3_2 T T TMP_194 TMP_195 TMP_196) in (let 
-TMP_198 \def (pr3 c x1 t4) in (let TMP_199 \def (pr3_sing c t2 x1 H7 t4 H2) 
-in (or_intror TMP_197 TMP_198 TMP_199)))))))) in (or_ind TMP_80 TMP_81 TMP_89 
-TMP_191 TMP_200 H6)))))))))))))))))))))))))))) in (let TMP_202 \def (pr3_ind 
-c TMP_35 TMP_71 TMP_201 y x H0) in (let TMP_203 \def (unintro T u1 TMP_27 
-TMP_202) in (unintro T t1 TMP_19 TMP_203)))))))))) in (insert_eq T TMP_2 
-TMP_3 TMP_11 TMP_204 H)))))))))).
+(t2: T).(pr3 c x1 t2)))) (pr3 c x1 t0))))))) (\lambda (t: T).(\lambda (x0: 
+T).(\lambda (x1: T).(\lambda (H1: (eq T t (THead (Flat Cast) x0 
+x1))).(eq_ind_r T (THead (Flat Cast) x0 x1) (\lambda (t0: T).(or (ex3_2 T T 
+(\lambda (u2: T).(\lambda (t2: T).(eq T t0 (THead (Flat Cast) u2 t2)))) 
+(\lambda (u2: T).(\lambda (_: T).(pr3 c x0 u2))) (\lambda (_: T).(\lambda 
+(t2: T).(pr3 c x1 t2)))) (pr3 c x1 t0))) (or_introl (ex3_2 T T (\lambda (u2: 
+T).(\lambda (t2: T).(eq T (THead (Flat Cast) x0 x1) (THead (Flat Cast) u2 
+t2)))) (\lambda (u2: T).(\lambda (_: T).(pr3 c x0 u2))) (\lambda (_: 
+T).(\lambda (t2: T).(pr3 c x1 t2)))) (pr3 c x1 (THead (Flat Cast) x0 x1)) 
+(ex3_2_intro T T (\lambda (u2: T).(\lambda (t2: T).(eq T (THead (Flat Cast) 
+x0 x1) (THead (Flat Cast) u2 t2)))) (\lambda (u2: T).(\lambda (_: T).(pr3 c 
+x0 u2))) (\lambda (_: T).(\lambda (t2: T).(pr3 c x1 t2))) x0 x1 (refl_equal T 
+(THead (Flat Cast) x0 x1)) (pr3_refl c x0) (pr3_refl c x1))) t H1))))) 
+(\lambda (t2: T).(\lambda (t3: T).(\lambda (H1: (pr2 c t3 t2)).(\lambda (t4: 
+T).(\lambda (H2: (pr3 c t2 t4)).(\lambda (H3: ((\forall (x0: T).(\forall (x1: 
+T).((eq T t2 (THead (Flat Cast) x0 x1)) \to (or (ex3_2 T T (\lambda (u2: 
+T).(\lambda (t5: T).(eq T t4 (THead (Flat Cast) u2 t5)))) (\lambda (u2: 
+T).(\lambda (_: T).(pr3 c x0 u2))) (\lambda (_: T).(\lambda (t5: T).(pr3 c x1 
+t5)))) (pr3 c x1 t4))))))).(\lambda (x0: T).(\lambda (x1: T).(\lambda (H4: 
+(eq T t3 (THead (Flat Cast) x0 x1))).(let H5 \def (eq_ind T t3 (\lambda (t: 
+T).(pr2 c t t2)) H1 (THead (Flat Cast) x0 x1) H4) in (let H6 \def 
+(pr2_gen_cast c x0 x1 t2 H5) in (or_ind (ex3_2 T T (\lambda (u2: T).(\lambda 
+(t5: T).(eq T t2 (THead (Flat Cast) u2 t5)))) (\lambda (u2: T).(\lambda (_: 
+T).(pr2 c x0 u2))) (\lambda (_: T).(\lambda (t5: T).(pr2 c x1 t5)))) (pr2 c 
+x1 t2) (or (ex3_2 T T (\lambda (u2: T).(\lambda (t5: T).(eq T t4 (THead (Flat 
+Cast) u2 t5)))) (\lambda (u2: T).(\lambda (_: T).(pr3 c x0 u2))) (\lambda (_: 
+T).(\lambda (t5: T).(pr3 c x1 t5)))) (pr3 c x1 t4)) (\lambda (H7: (ex3_2 T T 
+(\lambda (u2: T).(\lambda (t5: T).(eq T t2 (THead (Flat Cast) u2 t5)))) 
+(\lambda (u2: T).(\lambda (_: T).(pr2 c x0 u2))) (\lambda (_: T).(\lambda 
+(t5: T).(pr2 c x1 t5))))).(ex3_2_ind T T (\lambda (u2: T).(\lambda (t5: 
+T).(eq T t2 (THead (Flat Cast) u2 t5)))) (\lambda (u2: T).(\lambda (_: 
+T).(pr2 c x0 u2))) (\lambda (_: T).(\lambda (t5: T).(pr2 c x1 t5))) (or 
+(ex3_2 T T (\lambda (u2: T).(\lambda (t5: T).(eq T t4 (THead (Flat Cast) u2 
+t5)))) (\lambda (u2: T).(\lambda (_: T).(pr3 c x0 u2))) (\lambda (_: 
+T).(\lambda (t5: T).(pr3 c x1 t5)))) (pr3 c x1 t4)) (\lambda (x2: T).(\lambda 
+(x3: T).(\lambda (H8: (eq T t2 (THead (Flat Cast) x2 x3))).(\lambda (H9: (pr2 
+c x0 x2)).(\lambda (H10: (pr2 c x1 x3)).(let H11 \def (eq_ind T t2 (\lambda 
+(t: T).(\forall (x4: T).(\forall (x5: T).((eq T t (THead (Flat Cast) x4 x5)) 
+\to (or (ex3_2 T T (\lambda (u2: T).(\lambda (t5: T).(eq T t4 (THead (Flat 
+Cast) u2 t5)))) (\lambda (u2: T).(\lambda (_: T).(pr3 c x4 u2))) (\lambda (_: 
+T).(\lambda (t5: T).(pr3 c x5 t5)))) (pr3 c x5 t4)))))) H3 (THead (Flat Cast) 
+x2 x3) H8) in (let H12 \def (H11 x2 x3 (refl_equal T (THead (Flat Cast) x2 
+x3))) in (or_ind (ex3_2 T T (\lambda (u2: T).(\lambda (t5: T).(eq T t4 (THead 
+(Flat Cast) u2 t5)))) (\lambda (u2: T).(\lambda (_: T).(pr3 c x2 u2))) 
+(\lambda (_: T).(\lambda (t5: T).(pr3 c x3 t5)))) (pr3 c x3 t4) (or (ex3_2 T 
+T (\lambda (u2: T).(\lambda (t5: T).(eq T t4 (THead (Flat Cast) u2 t5)))) 
+(\lambda (u2: T).(\lambda (_: T).(pr3 c x0 u2))) (\lambda (_: T).(\lambda 
+(t5: T).(pr3 c x1 t5)))) (pr3 c x1 t4)) (\lambda (H13: (ex3_2 T T (\lambda 
+(u2: T).(\lambda (t5: T).(eq T t4 (THead (Flat Cast) u2 t5)))) (\lambda (u2: 
+T).(\lambda (_: T).(pr3 c x2 u2))) (\lambda (_: T).(\lambda (t5: T).(pr3 c x3 
+t5))))).(ex3_2_ind T T (\lambda (u2: T).(\lambda (t5: T).(eq T t4 (THead 
+(Flat Cast) u2 t5)))) (\lambda (u2: T).(\lambda (_: T).(pr3 c x2 u2))) 
+(\lambda (_: T).(\lambda (t5: T).(pr3 c x3 t5))) (or (ex3_2 T T (\lambda (u2: 
+T).(\lambda (t5: T).(eq T t4 (THead (Flat Cast) u2 t5)))) (\lambda (u2: 
+T).(\lambda (_: T).(pr3 c x0 u2))) (\lambda (_: T).(\lambda (t5: T).(pr3 c x1 
+t5)))) (pr3 c x1 t4)) (\lambda (x4: T).(\lambda (x5: T).(\lambda (H14: (eq T 
+t4 (THead (Flat Cast) x4 x5))).(\lambda (H15: (pr3 c x2 x4)).(\lambda (H16: 
+(pr3 c x3 x5)).(eq_ind_r T (THead (Flat Cast) x4 x5) (\lambda (t: T).(or 
+(ex3_2 T T (\lambda (u2: T).(\lambda (t5: T).(eq T t (THead (Flat Cast) u2 
+t5)))) (\lambda (u2: T).(\lambda (_: T).(pr3 c x0 u2))) (\lambda (_: 
+T).(\lambda (t5: T).(pr3 c x1 t5)))) (pr3 c x1 t))) (or_introl (ex3_2 T T 
+(\lambda (u2: T).(\lambda (t5: T).(eq T (THead (Flat Cast) x4 x5) (THead 
+(Flat Cast) u2 t5)))) (\lambda (u2: T).(\lambda (_: T).(pr3 c x0 u2))) 
+(\lambda (_: T).(\lambda (t5: T).(pr3 c x1 t5)))) (pr3 c x1 (THead (Flat 
+Cast) x4 x5)) (ex3_2_intro T T (\lambda (u2: T).(\lambda (t5: T).(eq T (THead 
+(Flat Cast) x4 x5) (THead (Flat Cast) u2 t5)))) (\lambda (u2: T).(\lambda (_: 
+T).(pr3 c x0 u2))) (\lambda (_: T).(\lambda (t5: T).(pr3 c x1 t5))) x4 x5 
+(refl_equal T (THead (Flat Cast) x4 x5)) (pr3_sing c x2 x0 H9 x4 H15) 
+(pr3_sing c x3 x1 H10 x5 H16))) t4 H14)))))) H13)) (\lambda (H13: (pr3 c x3 
+t4)).(or_intror (ex3_2 T T (\lambda (u2: T).(\lambda (t5: T).(eq T t4 (THead 
+(Flat Cast) u2 t5)))) (\lambda (u2: T).(\lambda (_: T).(pr3 c x0 u2))) 
+(\lambda (_: T).(\lambda (t5: T).(pr3 c x1 t5)))) (pr3 c x1 t4) (pr3_sing c 
+x3 x1 H10 t4 H13))) H12)))))))) H7)) (\lambda (H7: (pr2 c x1 t2)).(or_intror 
+(ex3_2 T T (\lambda (u2: T).(\lambda (t5: T).(eq T t4 (THead (Flat Cast) u2 
+t5)))) (\lambda (u2: T).(\lambda (_: T).(pr3 c x0 u2))) (\lambda (_: 
+T).(\lambda (t5: T).(pr3 c x1 t5)))) (pr3 c x1 t4) (pr3_sing c t2 x1 H7 t4 
+H2))) H6)))))))))))) y x H0))))) H))))).
 
 theorem pr3_gen_lift:
  \forall (c: C).(\forall (t1: T).(\forall (x: T).(\forall (h: nat).(\forall 
@@ -351,51 +224,35 @@ theorem pr3_gen_lift:
 t2))))))))))
 \def
  \lambda (c: C).(\lambda (t1: T).(\lambda (x: T).(\lambda (h: nat).(\lambda 
-(d: nat).(\lambda (H: (pr3 c (lift h d t1) x)).(let TMP_1 \def (lift h d t1) 
-in (let TMP_2 \def (\lambda (t: T).(pr3 c t x)) in (let TMP_6 \def (\lambda 
-(_: T).(\forall (e: C).((drop h d c e) \to (let TMP_4 \def (\lambda (t2: 
-T).(let TMP_3 \def (lift h d t2) in (eq T x TMP_3))) in (let TMP_5 \def 
-(\lambda (t2: T).(pr3 e t1 t2)) in (ex2 T TMP_4 TMP_5)))))) in (let TMP_45 
-\def (\lambda (y: T).(\lambda (H0: (pr3 c y x)).(let TMP_10 \def (\lambda (t: 
-T).((eq T y (lift h d t)) \to (\forall (e: C).((drop h d c e) \to (let TMP_8 
-\def (\lambda (t2: T).(let TMP_7 \def (lift h d t2) in (eq T x TMP_7))) in 
-(let TMP_9 \def (\lambda (t2: T).(pr3 e t t2)) in (ex2 T TMP_8 TMP_9))))))) 
-in (let TMP_14 \def (\lambda (t: T).(\lambda (t0: T).(\forall (x0: T).((eq T 
-t (lift h d x0)) \to (\forall (e: C).((drop h d c e) \to (let TMP_12 \def 
-(\lambda (t2: T).(let TMP_11 \def (lift h d t2) in (eq T t0 TMP_11))) in (let 
-TMP_13 \def (\lambda (t2: T).(pr3 e x0 t2)) in (ex2 T TMP_12 TMP_13))))))))) 
-in (let TMP_19 \def (\lambda (t: T).(\lambda (x0: T).(\lambda (H1: (eq T t 
-(lift h d x0))).(\lambda (e: C).(\lambda (_: (drop h d c e)).(let TMP_16 \def 
-(\lambda (t2: T).(let TMP_15 \def (lift h d t2) in (eq T t TMP_15))) in (let 
-TMP_17 \def (\lambda (t2: T).(pr3 e x0 t2)) in (let TMP_18 \def (pr3_refl e 
-x0) in (ex_intro2 T TMP_16 TMP_17 x0 H1 TMP_18))))))))) in (let TMP_43 \def 
-(\lambda (t2: T).(\lambda (t3: T).(\lambda (H1: (pr2 c t3 t2)).(\lambda (t4: 
+(d: nat).(\lambda (H: (pr3 c (lift h d t1) x)).(insert_eq T (lift h d t1) 
+(\lambda (t: T).(pr3 c t x)) (\lambda (_: T).(\forall (e: C).((drop h d c e) 
+\to (ex2 T (\lambda (t2: T).(eq T x (lift h d t2))) (\lambda (t2: T).(pr3 e 
+t1 t2)))))) (\lambda (y: T).(\lambda (H0: (pr3 c y x)).(unintro T t1 (\lambda 
+(t: T).((eq T y (lift h d t)) \to (\forall (e: C).((drop h d c e) \to (ex2 T 
+(\lambda (t2: T).(eq T x (lift h d t2))) (\lambda (t2: T).(pr3 e t t2))))))) 
+(pr3_ind c (\lambda (t: T).(\lambda (t0: T).(\forall (x0: T).((eq T t (lift h 
+d x0)) \to (\forall (e: C).((drop h d c e) \to (ex2 T (\lambda (t2: T).(eq T 
+t0 (lift h d t2))) (\lambda (t2: T).(pr3 e x0 t2))))))))) (\lambda (t: 
+T).(\lambda (x0: T).(\lambda (H1: (eq T t (lift h d x0))).(\lambda (e: 
+C).(\lambda (_: (drop h d c e)).(ex_intro2 T (\lambda (t2: T).(eq T t (lift h 
+d t2))) (\lambda (t2: T).(pr3 e x0 t2)) x0 H1 (pr3_refl e x0))))))) (\lambda 
+(t2: T).(\lambda (t3: T).(\lambda (H1: (pr2 c t3 t2)).(\lambda (t4: 
 T).(\lambda (_: (pr3 c t2 t4)).(\lambda (H3: ((\forall (x0: T).((eq T t2 
 (lift h d x0)) \to (\forall (e: C).((drop h d c e) \to (ex2 T (\lambda (t5: 
 T).(eq T t4 (lift h d t5))) (\lambda (t5: T).(pr3 e x0 t5))))))))).(\lambda 
 (x0: T).(\lambda (H4: (eq T t3 (lift h d x0))).(\lambda (e: C).(\lambda (H5: 
-(drop h d c e)).(let TMP_20 \def (\lambda (t: T).(pr2 c t t2)) in (let TMP_21 
-\def (lift h d x0) in (let H6 \def (eq_ind T t3 TMP_20 H1 TMP_21 H4) in (let 
-H7 \def (pr2_gen_lift c x0 t2 h d H6 e H5) in (let TMP_23 \def (\lambda (t5: 
-T).(let TMP_22 \def (lift h d t5) in (eq T t2 TMP_22))) in (let TMP_24 \def 
-(\lambda (t5: T).(pr2 e x0 t5)) in (let TMP_26 \def (\lambda (t5: T).(let 
-TMP_25 \def (lift h d t5) in (eq T t4 TMP_25))) in (let TMP_27 \def (\lambda 
-(t5: T).(pr3 e x0 t5)) in (let TMP_28 \def (ex2 T TMP_26 TMP_27) in (let 
-TMP_42 \def (\lambda (x1: T).(\lambda (H8: (eq T t2 (lift h d x1))).(\lambda 
-(H9: (pr2 e x0 x1)).(let TMP_30 \def (\lambda (t5: T).(let TMP_29 \def (lift 
-h d t5) in (eq T t4 TMP_29))) in (let TMP_31 \def (\lambda (t5: T).(pr3 e x1 
-t5)) in (let TMP_33 \def (\lambda (t5: T).(let TMP_32 \def (lift h d t5) in 
-(eq T t4 TMP_32))) in (let TMP_34 \def (\lambda (t5: T).(pr3 e x0 t5)) in 
-(let TMP_35 \def (ex2 T TMP_33 TMP_34) in (let TMP_40 \def (\lambda (x2: 
-T).(\lambda (H10: (eq T t4 (lift h d x2))).(\lambda (H11: (pr3 e x1 x2)).(let 
-TMP_37 \def (\lambda (t5: T).(let TMP_36 \def (lift h d t5) in (eq T t4 
-TMP_36))) in (let TMP_38 \def (\lambda (t5: T).(pr3 e x0 t5)) in (let TMP_39 
-\def (pr3_sing e x1 x0 H9 x2 H11) in (ex_intro2 T TMP_37 TMP_38 x2 H10 
-TMP_39))))))) in (let TMP_41 \def (H3 x1 H8 e H5) in (ex2_ind T TMP_30 TMP_31 
-TMP_35 TMP_40 TMP_41))))))))))) in (ex2_ind T TMP_23 TMP_24 TMP_28 TMP_42 
-H7))))))))))))))))))))) in (let TMP_44 \def (pr3_ind c TMP_14 TMP_19 TMP_43 y 
-x H0) in (unintro T t1 TMP_10 TMP_44)))))))) in (insert_eq T TMP_1 TMP_2 
-TMP_6 TMP_45 H)))))))))).
+(drop h d c e)).(let H6 \def (eq_ind T t3 (\lambda (t: T).(pr2 c t t2)) H1 
+(lift h d x0) H4) in (let H7 \def (pr2_gen_lift c x0 t2 h d H6 e H5) in 
+(ex2_ind T (\lambda (t5: T).(eq T t2 (lift h d t5))) (\lambda (t5: T).(pr2 e 
+x0 t5)) (ex2 T (\lambda (t5: T).(eq T t4 (lift h d t5))) (\lambda (t5: 
+T).(pr3 e x0 t5))) (\lambda (x1: T).(\lambda (H8: (eq T t2 (lift h d 
+x1))).(\lambda (H9: (pr2 e x0 x1)).(ex2_ind T (\lambda (t5: T).(eq T t4 (lift 
+h d t5))) (\lambda (t5: T).(pr3 e x1 t5)) (ex2 T (\lambda (t5: T).(eq T t4 
+(lift h d t5))) (\lambda (t5: T).(pr3 e x0 t5))) (\lambda (x2: T).(\lambda 
+(H10: (eq T t4 (lift h d x2))).(\lambda (H11: (pr3 e x1 x2)).(ex_intro2 T 
+(\lambda (t5: T).(eq T t4 (lift h d t5))) (\lambda (t5: T).(pr3 e x0 t5)) x2 
+H10 (pr3_sing e x1 x0 H9 x2 H11))))) (H3 x1 H8 e H5))))) H7))))))))))))) y x 
+H0)))) H)))))).
 
 theorem pr3_gen_lref:
  \forall (c: C).(\forall (x: T).(\forall (n: nat).((pr3 c (TLRef n) x) \to 
@@ -405,132 +262,73 @@ T).(\lambda (v: T).(pr3 d u v)))) (\lambda (_: C).(\lambda (_: T).(\lambda
 (v: T).(eq T x (lift (S n) O v))))))))))
 \def
  \lambda (c: C).(\lambda (x: T).(\lambda (n: nat).(\lambda (H: (pr3 c (TLRef 
-n) x)).(let TMP_1 \def (TLRef n) in (let TMP_2 \def (\lambda (t: T).(pr3 c t 
-x)) in (let TMP_12 \def (\lambda (t: T).(let TMP_3 \def (eq T x t) in (let 
-TMP_6 \def (\lambda (d: C).(\lambda (u: T).(\lambda (_: T).(let TMP_4 \def 
-(Bind Abbr) in (let TMP_5 \def (CHead d TMP_4 u) in (getl n c TMP_5)))))) in 
-(let TMP_7 \def (\lambda (d: C).(\lambda (u: T).(\lambda (v: T).(pr3 d u 
-v)))) in (let TMP_10 \def (\lambda (_: C).(\lambda (_: T).(\lambda (v: 
-T).(let TMP_8 \def (S n) in (let TMP_9 \def (lift TMP_8 O v) in (eq T x 
-TMP_9)))))) in (let TMP_11 \def (ex3_3 C T T TMP_6 TMP_7 TMP_10) in (or TMP_3 
-TMP_11))))))) in (let TMP_155 \def (\lambda (y: T).(\lambda (H0: (pr3 c y 
-x)).(let TMP_22 \def (\lambda (t: T).(\lambda (t0: T).((eq T t (TLRef n)) \to 
-(let TMP_13 \def (eq T t0 t) in (let TMP_16 \def (\lambda (d: C).(\lambda (u: 
-T).(\lambda (_: T).(let TMP_14 \def (Bind Abbr) in (let TMP_15 \def (CHead d 
-TMP_14 u) in (getl n c TMP_15)))))) in (let TMP_17 \def (\lambda (d: 
-C).(\lambda (u: T).(\lambda (v: T).(pr3 d u v)))) in (let TMP_20 \def 
-(\lambda (_: C).(\lambda (_: T).(\lambda (v: T).(let TMP_18 \def (S n) in 
-(let TMP_19 \def (lift TMP_18 O v) in (eq T t0 TMP_19)))))) in (let TMP_21 
-\def (ex3_3 C T T TMP_16 TMP_17 TMP_20) in (or TMP_13 TMP_21))))))))) in (let 
-TMP_33 \def (\lambda (t: T).(\lambda (_: (eq T t (TLRef n))).(let TMP_23 \def 
-(eq T t t) in (let TMP_26 \def (\lambda (d: C).(\lambda (u: T).(\lambda (_: 
-T).(let TMP_24 \def (Bind Abbr) in (let TMP_25 \def (CHead d TMP_24 u) in 
-(getl n c TMP_25)))))) in (let TMP_27 \def (\lambda (d: C).(\lambda (u: 
-T).(\lambda (v: T).(pr3 d u v)))) in (let TMP_30 \def (\lambda (_: 
-C).(\lambda (_: T).(\lambda (v: T).(let TMP_28 \def (S n) in (let TMP_29 \def 
-(lift TMP_28 O v) in (eq T t TMP_29)))))) in (let TMP_31 \def (ex3_3 C T T 
-TMP_26 TMP_27 TMP_30) in (let TMP_32 \def (refl_equal T t) in (or_introl 
-TMP_23 TMP_31 TMP_32))))))))) in (let TMP_154 \def (\lambda (t2: T).(\lambda 
-(t1: T).(\lambda (H1: (pr2 c t1 t2)).(\lambda (t3: T).(\lambda (H2: (pr3 c t2 
-t3)).(\lambda (H3: (((eq T t2 (TLRef n)) \to (or (eq T t3 t2) (ex3_3 C T T 
+n) x)).(insert_eq T (TLRef n) (\lambda (t: T).(pr3 c t x)) (\lambda (t: 
+T).(or (eq T x t) (ex3_3 C T T (\lambda (d: C).(\lambda (u: T).(\lambda (_: 
+T).(getl n c (CHead d (Bind Abbr) u))))) (\lambda (d: C).(\lambda (u: 
+T).(\lambda (v: T).(pr3 d u v)))) (\lambda (_: C).(\lambda (_: T).(\lambda 
+(v: T).(eq T x (lift (S n) O v)))))))) (\lambda (y: T).(\lambda (H0: (pr3 c y 
+x)).(pr3_ind c (\lambda (t: T).(\lambda (t0: T).((eq T t (TLRef n)) \to (or 
+(eq T t0 t) (ex3_3 C T T (\lambda (d: C).(\lambda (u: T).(\lambda (_: 
+T).(getl n c (CHead d (Bind Abbr) u))))) (\lambda (d: C).(\lambda (u: 
+T).(\lambda (v: T).(pr3 d u v)))) (\lambda (_: C).(\lambda (_: T).(\lambda 
+(v: T).(eq T t0 (lift (S n) O v)))))))))) (\lambda (t: T).(\lambda (_: (eq T 
+t (TLRef n))).(or_introl (eq T t t) (ex3_3 C T T (\lambda (d: C).(\lambda (u: 
+T).(\lambda (_: T).(getl n c (CHead d (Bind Abbr) u))))) (\lambda (d: 
+C).(\lambda (u: T).(\lambda (v: T).(pr3 d u v)))) (\lambda (_: C).(\lambda 
+(_: T).(\lambda (v: T).(eq T t (lift (S n) O v)))))) (refl_equal T t)))) 
+(\lambda (t2: T).(\lambda (t1: T).(\lambda (H1: (pr2 c t1 t2)).(\lambda (t3: 
+T).(\lambda (H2: (pr3 c t2 t3)).(\lambda (H3: (((eq T t2 (TLRef n)) \to (or 
+(eq T t3 t2) (ex3_3 C T T (\lambda (d: C).(\lambda (u: T).(\lambda (_: 
+T).(getl n c (CHead d (Bind Abbr) u))))) (\lambda (d: C).(\lambda (u: 
+T).(\lambda (v: T).(pr3 d u v)))) (\lambda (_: C).(\lambda (_: T).(\lambda 
+(v: T).(eq T t3 (lift (S n) O v)))))))))).(\lambda (H4: (eq T t1 (TLRef 
+n))).(let H5 \def (eq_ind T t1 (\lambda (t: T).(pr2 c t t2)) H1 (TLRef n) H4) 
+in (eq_ind_r T (TLRef n) (\lambda (t: T).(or (eq T t3 t) (ex3_3 C T T 
 (\lambda (d: C).(\lambda (u: T).(\lambda (_: T).(getl n c (CHead d (Bind 
 Abbr) u))))) (\lambda (d: C).(\lambda (u: T).(\lambda (v: T).(pr3 d u v)))) 
 (\lambda (_: C).(\lambda (_: T).(\lambda (v: T).(eq T t3 (lift (S n) O 
-v)))))))))).(\lambda (H4: (eq T t1 (TLRef n))).(let TMP_34 \def (\lambda (t: 
-T).(pr2 c t t2)) in (let TMP_35 \def (TLRef n) in (let H5 \def (eq_ind T t1 
-TMP_34 H1 TMP_35 H4) in (let TMP_36 \def (TLRef n) in (let TMP_46 \def 
-(\lambda (t: T).(let TMP_37 \def (eq T t3 t) in (let TMP_40 \def (\lambda (d: 
-C).(\lambda (u: T).(\lambda (_: T).(let TMP_38 \def (Bind Abbr) in (let 
-TMP_39 \def (CHead d TMP_38 u) in (getl n c TMP_39)))))) in (let TMP_41 \def 
-(\lambda (d: C).(\lambda (u: T).(\lambda (v: T).(pr3 d u v)))) in (let TMP_44 
-\def (\lambda (_: C).(\lambda (_: T).(\lambda (v: T).(let TMP_42 \def (S n) 
-in (let TMP_43 \def (lift TMP_42 O v) in (eq T t3 TMP_43)))))) in (let TMP_45 
-\def (ex3_3 C T T TMP_40 TMP_41 TMP_44) in (or TMP_37 TMP_45))))))) in (let 
-H6 \def (pr2_gen_lref c t2 n H5) in (let TMP_47 \def (TLRef n) in (let TMP_48 
-\def (eq T t2 TMP_47) in (let TMP_51 \def (\lambda (d: C).(\lambda (u: 
-T).(let TMP_49 \def (Bind Abbr) in (let TMP_50 \def (CHead d TMP_49 u) in 
-(getl n c TMP_50))))) in (let TMP_54 \def (\lambda (_: C).(\lambda (u: 
-T).(let TMP_52 \def (S n) in (let TMP_53 \def (lift TMP_52 O u) in (eq T t2 
-TMP_53))))) in (let TMP_55 \def (ex2_2 C T TMP_51 TMP_54) in (let TMP_56 \def 
-(TLRef n) in (let TMP_57 \def (eq T t3 TMP_56) in (let TMP_60 \def (\lambda 
-(d: C).(\lambda (u: T).(\lambda (_: T).(let TMP_58 \def (Bind Abbr) in (let 
-TMP_59 \def (CHead d TMP_58 u) in (getl n c TMP_59)))))) in (let TMP_61 \def 
-(\lambda (d: C).(\lambda (u: T).(\lambda (v: T).(pr3 d u v)))) in (let TMP_64 
-\def (\lambda (_: C).(\lambda (_: T).(\lambda (v: T).(let TMP_62 \def (S n) 
-in (let TMP_63 \def (lift TMP_62 O v) in (eq T t3 TMP_63)))))) in (let TMP_65 
-\def (ex3_3 C T T TMP_60 TMP_61 TMP_64) in (let TMP_66 \def (or TMP_57 
-TMP_65) in (let TMP_82 \def (\lambda (H7: (eq T t2 (TLRef n))).(let TMP_76 
-\def (\lambda (t: T).((eq T t (TLRef n)) \to (let TMP_67 \def (eq T t3 t) in 
-(let TMP_70 \def (\lambda (d: C).(\lambda (u: T).(\lambda (_: T).(let TMP_68 
-\def (Bind Abbr) in (let TMP_69 \def (CHead d TMP_68 u) in (getl n c 
-TMP_69)))))) in (let TMP_71 \def (\lambda (d: C).(\lambda (u: T).(\lambda (v: 
-T).(pr3 d u v)))) in (let TMP_74 \def (\lambda (_: C).(\lambda (_: 
-T).(\lambda (v: T).(let TMP_72 \def (S n) in (let TMP_73 \def (lift TMP_72 O 
-v) in (eq T t3 TMP_73)))))) in (let TMP_75 \def (ex3_3 C T T TMP_70 TMP_71 
-TMP_74) in (or TMP_67 TMP_75)))))))) in (let TMP_77 \def (TLRef n) in (let H8 
-\def (eq_ind T t2 TMP_76 H3 TMP_77 H7) in (let TMP_78 \def (\lambda (t: 
-T).(pr3 c t t3)) in (let TMP_79 \def (TLRef n) in (let H9 \def (eq_ind T t2 
-TMP_78 H2 TMP_79 H7) in (let TMP_80 \def (TLRef n) in (let TMP_81 \def 
-(refl_equal T TMP_80) in (H8 TMP_81)))))))))) in (let TMP_152 \def (\lambda 
-(H7: (ex2_2 C T (\lambda (d: C).(\lambda (u: T).(getl n c (CHead d (Bind 
-Abbr) u)))) (\lambda (_: C).(\lambda (u: T).(eq T t2 (lift (S n) O 
-u)))))).(let TMP_85 \def (\lambda (d: C).(\lambda (u: T).(let TMP_83 \def 
-(Bind Abbr) in (let TMP_84 \def (CHead d TMP_83 u) in (getl n c TMP_84))))) 
-in (let TMP_88 \def (\lambda (_: C).(\lambda (u: T).(let TMP_86 \def (S n) in 
-(let TMP_87 \def (lift TMP_86 O u) in (eq T t2 TMP_87))))) in (let TMP_89 
-\def (TLRef n) in (let TMP_90 \def (eq T t3 TMP_89) in (let TMP_93 \def 
-(\lambda (d: C).(\lambda (u: T).(\lambda (_: T).(let TMP_91 \def (Bind Abbr) 
-in (let TMP_92 \def (CHead d TMP_91 u) in (getl n c TMP_92)))))) in (let 
-TMP_94 \def (\lambda (d: C).(\lambda (u: T).(\lambda (v: T).(pr3 d u v)))) in 
-(let TMP_97 \def (\lambda (_: C).(\lambda (_: T).(\lambda (v: T).(let TMP_95 
-\def (S n) in (let TMP_96 \def (lift TMP_95 O v) in (eq T t3 TMP_96)))))) in 
-(let TMP_98 \def (ex3_3 C T T TMP_93 TMP_94 TMP_97) in (let TMP_99 \def (or 
-TMP_90 TMP_98) in (let TMP_151 \def (\lambda (x0: C).(\lambda (x1: 
-T).(\lambda (H8: (getl n c (CHead x0 (Bind Abbr) x1))).(\lambda (H9: (eq T t2 
-(lift (S n) O x1))).(let TMP_109 \def (\lambda (t: T).((eq T t (TLRef n)) \to 
-(let TMP_100 \def (eq T t3 t) in (let TMP_103 \def (\lambda (d: C).(\lambda 
-(u: T).(\lambda (_: T).(let TMP_101 \def (Bind Abbr) in (let TMP_102 \def 
-(CHead d TMP_101 u) in (getl n c TMP_102)))))) in (let TMP_104 \def (\lambda 
-(d: C).(\lambda (u: T).(\lambda (v: T).(pr3 d u v)))) in (let TMP_107 \def 
-(\lambda (_: C).(\lambda (_: T).(\lambda (v: T).(let TMP_105 \def (S n) in 
-(let TMP_106 \def (lift TMP_105 O v) in (eq T t3 TMP_106)))))) in (let 
-TMP_108 \def (ex3_3 C T T TMP_103 TMP_104 TMP_107) in (or TMP_100 
-TMP_108)))))))) in (let TMP_110 \def (S n) in (let TMP_111 \def (lift TMP_110 
-O x1) in (let H10 \def (eq_ind T t2 TMP_109 H3 TMP_111 H9) in (let TMP_112 
-\def (\lambda (t: T).(pr3 c t t3)) in (let TMP_113 \def (S n) in (let TMP_114 
-\def (lift TMP_113 O x1) in (let H11 \def (eq_ind T t2 TMP_112 H2 TMP_114 H9) 
-in (let TMP_115 \def (S n) in (let TMP_116 \def (getl_drop Abbr c x0 x1 n H8) 
-in (let H12 \def (pr3_gen_lift c x1 t3 TMP_115 O H11 x0 TMP_116) in (let 
-TMP_119 \def (\lambda (t4: T).(let TMP_117 \def (S n) in (let TMP_118 \def 
-(lift TMP_117 O t4) in (eq T t3 TMP_118)))) in (let TMP_120 \def (\lambda 
-(t4: T).(pr3 x0 x1 t4)) in (let TMP_121 \def (TLRef n) in (let TMP_122 \def 
-(eq T t3 TMP_121) in (let TMP_125 \def (\lambda (d: C).(\lambda (u: 
-T).(\lambda (_: T).(let TMP_123 \def (Bind Abbr) in (let TMP_124 \def (CHead 
-d TMP_123 u) in (getl n c TMP_124)))))) in (let TMP_126 \def (\lambda (d: 
-C).(\lambda (u: T).(\lambda (v: T).(pr3 d u v)))) in (let TMP_129 \def 
-(\lambda (_: C).(\lambda (_: T).(\lambda (v: T).(let TMP_127 \def (S n) in 
-(let TMP_128 \def (lift TMP_127 O v) in (eq T t3 TMP_128)))))) in (let 
-TMP_130 \def (ex3_3 C T T TMP_125 TMP_126 TMP_129) in (let TMP_131 \def (or 
-TMP_122 TMP_130) in (let TMP_150 \def (\lambda (x2: T).(\lambda (H13: (eq T 
-t3 (lift (S n) O x2))).(\lambda (H14: (pr3 x0 x1 x2)).(let TMP_132 \def 
-(TLRef n) in (let TMP_133 \def (eq T t3 TMP_132) in (let TMP_136 \def 
-(\lambda (d: C).(\lambda (u: T).(\lambda (_: T).(let TMP_134 \def (Bind Abbr) 
-in (let TMP_135 \def (CHead d TMP_134 u) in (getl n c TMP_135)))))) in (let 
-TMP_137 \def (\lambda (d: C).(\lambda (u: T).(\lambda (v: T).(pr3 d u v)))) 
-in (let TMP_140 \def (\lambda (_: C).(\lambda (_: T).(\lambda (v: T).(let 
-TMP_138 \def (S n) in (let TMP_139 \def (lift TMP_138 O v) in (eq T t3 
-TMP_139)))))) in (let TMP_141 \def (ex3_3 C T T TMP_136 TMP_137 TMP_140) in 
-(let TMP_144 \def (\lambda (d: C).(\lambda (u: T).(\lambda (_: T).(let 
-TMP_142 \def (Bind Abbr) in (let TMP_143 \def (CHead d TMP_142 u) in (getl n 
-c TMP_143)))))) in (let TMP_145 \def (\lambda (d: C).(\lambda (u: T).(\lambda 
-(v: T).(pr3 d u v)))) in (let TMP_148 \def (\lambda (_: C).(\lambda (_: 
-T).(\lambda (v: T).(let TMP_146 \def (S n) in (let TMP_147 \def (lift TMP_146 
-O v) in (eq T t3 TMP_147)))))) in (let TMP_149 \def (ex3_3_intro C T T 
-TMP_144 TMP_145 TMP_148 x0 x1 x2 H8 H14 H13) in (or_intror TMP_133 TMP_141 
-TMP_149)))))))))))))) in (ex2_ind T TMP_119 TMP_120 TMP_131 TMP_150 
-H12)))))))))))))))))))))))))) in (ex2_2_ind C T TMP_85 TMP_88 TMP_99 TMP_151 
-H7)))))))))))) in (let TMP_153 \def (or_ind TMP_48 TMP_55 TMP_66 TMP_82 
-TMP_152 H6) in (eq_ind_r T TMP_36 TMP_46 TMP_153 t1 
-H4))))))))))))))))))))))))))))) in (pr3_ind c TMP_22 TMP_33 TMP_154 y x 
-H0)))))) in (insert_eq T TMP_1 TMP_2 TMP_12 TMP_155 H)))))))).
+v)))))))) (let H6 \def (pr2_gen_lref c t2 n H5) in (or_ind (eq T t2 (TLRef 
+n)) (ex2_2 C T (\lambda (d: C).(\lambda (u: T).(getl n c (CHead d (Bind Abbr) 
+u)))) (\lambda (_: C).(\lambda (u: T).(eq T t2 (lift (S n) O u))))) (or (eq T 
+t3 (TLRef n)) (ex3_3 C T T (\lambda (d: C).(\lambda (u: T).(\lambda (_: 
+T).(getl n c (CHead d (Bind Abbr) u))))) (\lambda (d: C).(\lambda (u: 
+T).(\lambda (v: T).(pr3 d u v)))) (\lambda (_: C).(\lambda (_: T).(\lambda 
+(v: T).(eq T t3 (lift (S n) O v))))))) (\lambda (H7: (eq T t2 (TLRef 
+n))).(let H8 \def (eq_ind T t2 (\lambda (t: T).((eq T t (TLRef n)) \to (or 
+(eq T t3 t) (ex3_3 C T T (\lambda (d: C).(\lambda (u: T).(\lambda (_: 
+T).(getl n c (CHead d (Bind Abbr) u))))) (\lambda (d: C).(\lambda (u: 
+T).(\lambda (v: T).(pr3 d u v)))) (\lambda (_: C).(\lambda (_: T).(\lambda 
+(v: T).(eq T t3 (lift (S n) O v))))))))) H3 (TLRef n) H7) in (let H9 \def 
+(eq_ind T t2 (\lambda (t: T).(pr3 c t t3)) H2 (TLRef n) H7) in (H8 
+(refl_equal T (TLRef n)))))) (\lambda (H7: (ex2_2 C T (\lambda (d: 
+C).(\lambda (u: T).(getl n c (CHead d (Bind Abbr) u)))) (\lambda (_: 
+C).(\lambda (u: T).(eq T t2 (lift (S n) O u)))))).(ex2_2_ind C T (\lambda (d: 
+C).(\lambda (u: T).(getl n c (CHead d (Bind Abbr) u)))) (\lambda (_: 
+C).(\lambda (u: T).(eq T t2 (lift (S n) O u)))) (or (eq T t3 (TLRef n)) 
+(ex3_3 C T T (\lambda (d: C).(\lambda (u: T).(\lambda (_: T).(getl n c (CHead 
+d (Bind Abbr) u))))) (\lambda (d: C).(\lambda (u: T).(\lambda (v: T).(pr3 d u 
+v)))) (\lambda (_: C).(\lambda (_: T).(\lambda (v: T).(eq T t3 (lift (S n) O 
+v))))))) (\lambda (x0: C).(\lambda (x1: T).(\lambda (H8: (getl n c (CHead x0 
+(Bind Abbr) x1))).(\lambda (H9: (eq T t2 (lift (S n) O x1))).(let H10 \def 
+(eq_ind T t2 (\lambda (t: T).((eq T t (TLRef n)) \to (or (eq T t3 t) (ex3_3 C 
+T T (\lambda (d: C).(\lambda (u: T).(\lambda (_: T).(getl n c (CHead d (Bind 
+Abbr) u))))) (\lambda (d: C).(\lambda (u: T).(\lambda (v: T).(pr3 d u v)))) 
+(\lambda (_: C).(\lambda (_: T).(\lambda (v: T).(eq T t3 (lift (S n) O 
+v))))))))) H3 (lift (S n) O x1) H9) in (let H11 \def (eq_ind T t2 (\lambda 
+(t: T).(pr3 c t t3)) H2 (lift (S n) O x1) H9) in (let H12 \def (pr3_gen_lift 
+c x1 t3 (S n) O H11 x0 (getl_drop Abbr c x0 x1 n H8)) in (ex2_ind T (\lambda 
+(t4: T).(eq T t3 (lift (S n) O t4))) (\lambda (t4: T).(pr3 x0 x1 t4)) (or (eq 
+T t3 (TLRef n)) (ex3_3 C T T (\lambda (d: C).(\lambda (u: T).(\lambda (_: 
+T).(getl n c (CHead d (Bind Abbr) u))))) (\lambda (d: C).(\lambda (u: 
+T).(\lambda (v: T).(pr3 d u v)))) (\lambda (_: C).(\lambda (_: T).(\lambda 
+(v: T).(eq T t3 (lift (S n) O v))))))) (\lambda (x2: T).(\lambda (H13: (eq T 
+t3 (lift (S n) O x2))).(\lambda (H14: (pr3 x0 x1 x2)).(or_intror (eq T t3 
+(TLRef n)) (ex3_3 C T T (\lambda (d: C).(\lambda (u: T).(\lambda (_: T).(getl 
+n c (CHead d (Bind Abbr) u))))) (\lambda (d: C).(\lambda (u: T).(\lambda (v: 
+T).(pr3 d u v)))) (\lambda (_: C).(\lambda (_: T).(\lambda (v: T).(eq T t3 
+(lift (S n) O v)))))) (ex3_3_intro C T T (\lambda (d: C).(\lambda (u: 
+T).(\lambda (_: T).(getl n c (CHead d (Bind Abbr) u))))) (\lambda (d: 
+C).(\lambda (u: T).(\lambda (v: T).(pr3 d u v)))) (\lambda (_: C).(\lambda 
+(_: T).(\lambda (v: T).(eq T t3 (lift (S n) O v))))) x0 x1 x2 H8 H14 H13))))) 
+H12)))))))) H7)) H6)) t1 H4))))))))) y x H0))) H)))).
 
index 3501531aadb3759684f29519caf0eae2b260386d..77bb9bc5916fbcf12dd3a93e9b31e1ff2a99ce80 100644 (file)
@@ -22,12 +22,10 @@ theorem pr3_pr1:
  \forall (t1: T).(\forall (t2: T).((pr1 t1 t2) \to (\forall (c: C).(pr3 c t1 
 t2))))
 \def
- \lambda (t1: T).(\lambda (t2: T).(\lambda (H: (pr1 t1 t2)).(let TMP_1 \def 
-(\lambda (t: T).(\lambda (t0: T).(\forall (c: C).(pr3 c t t0)))) in (let 
-TMP_2 \def (\lambda (t: T).(\lambda (c: C).(pr3_refl c t))) in (let TMP_5 
-\def (\lambda (t0: T).(\lambda (t3: T).(\lambda (H0: (pr0 t3 t0)).(\lambda 
-(t4: T).(\lambda (_: (pr1 t0 t4)).(\lambda (H2: ((\forall (c: C).(pr3 c t0 
-t4)))).(\lambda (c: C).(let TMP_3 \def (pr2_free c t3 t0 H0) in (let TMP_4 
-\def (H2 c) in (pr3_sing c t0 t3 TMP_3 t4 TMP_4)))))))))) in (pr1_ind TMP_1 
-TMP_2 TMP_5 t1 t2 H)))))).
+ \lambda (t1: T).(\lambda (t2: T).(\lambda (H: (pr1 t1 t2)).(pr1_ind (\lambda 
+(t: T).(\lambda (t0: T).(\forall (c: C).(pr3 c t t0)))) (\lambda (t: 
+T).(\lambda (c: C).(pr3_refl c t))) (\lambda (t0: T).(\lambda (t3: 
+T).(\lambda (H0: (pr0 t3 t0)).(\lambda (t4: T).(\lambda (_: (pr1 t0 
+t4)).(\lambda (H2: ((\forall (c: C).(pr3 c t0 t4)))).(\lambda (c: 
+C).(pr3_sing c t0 t3 (pr2_free c t3 t0 H0) t4 (H2 c))))))))) t1 t2 H))).
 
index b50ab1cbb8c3fdb86ef4939055adf287dbbf7d44..a8ad07418b167c895401fa916f3153164d522c0c 100644 (file)
@@ -24,32 +24,23 @@ theorem pr3_strip:
 T).(pr3 c t2 t))))))))
 \def
  \lambda (c: C).(\lambda (t0: T).(\lambda (t1: T).(\lambda (H: (pr3 c t0 
-t1)).(let TMP_3 \def (\lambda (t: T).(\lambda (t2: T).(\forall (t3: T).((pr2 
-c t t3) \to (let TMP_1 \def (\lambda (t4: T).(pr3 c t2 t4)) in (let TMP_2 
-\def (\lambda (t4: T).(pr3 c t3 t4)) in (ex2 T TMP_1 TMP_2))))))) in (let 
-TMP_8 \def (\lambda (t: T).(\lambda (t2: T).(\lambda (H0: (pr2 c t t2)).(let 
-TMP_4 \def (\lambda (t3: T).(pr3 c t t3)) in (let TMP_5 \def (\lambda (t3: 
-T).(pr3 c t2 t3)) in (let TMP_6 \def (pr3_pr2 c t t2 H0) in (let TMP_7 \def 
-(pr3_refl c t2) in (ex_intro2 T TMP_4 TMP_5 t2 TMP_6 TMP_7)))))))) in (let 
-TMP_26 \def (\lambda (t2: T).(\lambda (t3: T).(\lambda (H0: (pr2 c t3 
-t2)).(\lambda (t4: T).(\lambda (_: (pr3 c t2 t4)).(\lambda (H2: ((\forall 
-(t5: T).((pr2 c t2 t5) \to (ex2 T (\lambda (t: T).(pr3 c t4 t)) (\lambda (t: 
-T).(pr3 c t5 t))))))).(\lambda (t5: T).(\lambda (H3: (pr2 c t3 t5)).(let 
-TMP_9 \def (\lambda (t: T).(pr2 c t5 t)) in (let TMP_10 \def (\lambda (t: 
-T).(pr2 c t2 t)) in (let TMP_11 \def (\lambda (t: T).(pr3 c t4 t)) in (let 
-TMP_12 \def (\lambda (t: T).(pr3 c t5 t)) in (let TMP_13 \def (ex2 T TMP_11 
-TMP_12) in (let TMP_24 \def (\lambda (x: T).(\lambda (H4: (pr2 c t5 
-x)).(\lambda (H5: (pr2 c t2 x)).(let TMP_14 \def (\lambda (t: T).(pr3 c t4 
-t)) in (let TMP_15 \def (\lambda (t: T).(pr3 c x t)) in (let TMP_16 \def 
-(\lambda (t: T).(pr3 c t4 t)) in (let TMP_17 \def (\lambda (t: T).(pr3 c t5 
-t)) in (let TMP_18 \def (ex2 T TMP_16 TMP_17) in (let TMP_22 \def (\lambda 
-(x0: T).(\lambda (H6: (pr3 c t4 x0)).(\lambda (H7: (pr3 c x x0)).(let TMP_19 
-\def (\lambda (t: T).(pr3 c t4 t)) in (let TMP_20 \def (\lambda (t: T).(pr3 c 
-t5 t)) in (let TMP_21 \def (pr3_sing c x t5 H4 x0 H7) in (ex_intro2 T TMP_19 
-TMP_20 x0 H6 TMP_21))))))) in (let TMP_23 \def (H2 x H5) in (ex2_ind T TMP_14 
-TMP_15 TMP_18 TMP_22 TMP_23))))))))))) in (let TMP_25 \def (pr2_confluence c 
-t3 t5 H3 t2 H0) in (ex2_ind T TMP_9 TMP_10 TMP_13 TMP_24 
-TMP_25)))))))))))))))) in (pr3_ind c TMP_3 TMP_8 TMP_26 t0 t1 H))))))).
+t1)).(pr3_ind c (\lambda (t: T).(\lambda (t2: T).(\forall (t3: T).((pr2 c t 
+t3) \to (ex2 T (\lambda (t4: T).(pr3 c t2 t4)) (\lambda (t4: T).(pr3 c t3 
+t4))))))) (\lambda (t: T).(\lambda (t2: T).(\lambda (H0: (pr2 c t 
+t2)).(ex_intro2 T (\lambda (t3: T).(pr3 c t t3)) (\lambda (t3: T).(pr3 c t2 
+t3)) t2 (pr3_pr2 c t t2 H0) (pr3_refl c t2))))) (\lambda (t2: T).(\lambda 
+(t3: T).(\lambda (H0: (pr2 c t3 t2)).(\lambda (t4: T).(\lambda (_: (pr3 c t2 
+t4)).(\lambda (H2: ((\forall (t5: T).((pr2 c t2 t5) \to (ex2 T (\lambda (t: 
+T).(pr3 c t4 t)) (\lambda (t: T).(pr3 c t5 t))))))).(\lambda (t5: T).(\lambda 
+(H3: (pr2 c t3 t5)).(ex2_ind T (\lambda (t: T).(pr2 c t5 t)) (\lambda (t: 
+T).(pr2 c t2 t)) (ex2 T (\lambda (t: T).(pr3 c t4 t)) (\lambda (t: T).(pr3 c 
+t5 t))) (\lambda (x: T).(\lambda (H4: (pr2 c t5 x)).(\lambda (H5: (pr2 c t2 
+x)).(ex2_ind T (\lambda (t: T).(pr3 c t4 t)) (\lambda (t: T).(pr3 c x t)) 
+(ex2 T (\lambda (t: T).(pr3 c t4 t)) (\lambda (t: T).(pr3 c t5 t))) (\lambda 
+(x0: T).(\lambda (H6: (pr3 c t4 x0)).(\lambda (H7: (pr3 c x x0)).(ex_intro2 T 
+(\lambda (t: T).(pr3 c t4 t)) (\lambda (t: T).(pr3 c t5 t)) x0 H6 (pr3_sing c 
+x t5 H4 x0 H7))))) (H2 x H5))))) (pr2_confluence c t3 t5 H3 t2 H0)))))))))) 
+t0 t1 H)))).
 
 theorem pr3_confluence:
  \forall (c: C).(\forall (t0: T).(\forall (t1: T).((pr3 c t0 t1) \to (\forall 
@@ -57,29 +48,21 @@ theorem pr3_confluence:
 T).(pr3 c t2 t))))))))
 \def
  \lambda (c: C).(\lambda (t0: T).(\lambda (t1: T).(\lambda (H: (pr3 c t0 
-t1)).(let TMP_3 \def (\lambda (t: T).(\lambda (t2: T).(\forall (t3: T).((pr3 
-c t t3) \to (let TMP_1 \def (\lambda (t4: T).(pr3 c t2 t4)) in (let TMP_2 
-\def (\lambda (t4: T).(pr3 c t3 t4)) in (ex2 T TMP_1 TMP_2))))))) in (let 
-TMP_7 \def (\lambda (t: T).(\lambda (t2: T).(\lambda (H0: (pr3 c t t2)).(let 
-TMP_4 \def (\lambda (t3: T).(pr3 c t t3)) in (let TMP_5 \def (\lambda (t3: 
-T).(pr3 c t2 t3)) in (let TMP_6 \def (pr3_refl c t2) in (ex_intro2 T TMP_4 
-TMP_5 t2 H0 TMP_6))))))) in (let TMP_25 \def (\lambda (t2: T).(\lambda (t3: 
-T).(\lambda (H0: (pr2 c t3 t2)).(\lambda (t4: T).(\lambda (_: (pr3 c t2 
-t4)).(\lambda (H2: ((\forall (t5: T).((pr3 c t2 t5) \to (ex2 T (\lambda (t: 
-T).(pr3 c t4 t)) (\lambda (t: T).(pr3 c t5 t))))))).(\lambda (t5: T).(\lambda 
-(H3: (pr3 c t3 t5)).(let TMP_8 \def (\lambda (t: T).(pr3 c t5 t)) in (let 
-TMP_9 \def (\lambda (t: T).(pr3 c t2 t)) in (let TMP_10 \def (\lambda (t: 
-T).(pr3 c t4 t)) in (let TMP_11 \def (\lambda (t: T).(pr3 c t5 t)) in (let 
-TMP_12 \def (ex2 T TMP_10 TMP_11) in (let TMP_23 \def (\lambda (x: 
-T).(\lambda (H4: (pr3 c t5 x)).(\lambda (H5: (pr3 c t2 x)).(let TMP_13 \def 
-(\lambda (t: T).(pr3 c t4 t)) in (let TMP_14 \def (\lambda (t: T).(pr3 c x 
-t)) in (let TMP_15 \def (\lambda (t: T).(pr3 c t4 t)) in (let TMP_16 \def 
-(\lambda (t: T).(pr3 c t5 t)) in (let TMP_17 \def (ex2 T TMP_15 TMP_16) in 
-(let TMP_21 \def (\lambda (x0: T).(\lambda (H6: (pr3 c t4 x0)).(\lambda (H7: 
-(pr3 c x x0)).(let TMP_18 \def (\lambda (t: T).(pr3 c t4 t)) in (let TMP_19 
-\def (\lambda (t: T).(pr3 c t5 t)) in (let TMP_20 \def (pr3_t x t5 c H4 x0 
-H7) in (ex_intro2 T TMP_18 TMP_19 x0 H6 TMP_20))))))) in (let TMP_22 \def (H2 
-x H5) in (ex2_ind T TMP_13 TMP_14 TMP_17 TMP_21 TMP_22))))))))))) in (let 
-TMP_24 \def (pr3_strip c t3 t5 H3 t2 H0) in (ex2_ind T TMP_8 TMP_9 TMP_12 
-TMP_23 TMP_24)))))))))))))))) in (pr3_ind c TMP_3 TMP_7 TMP_25 t0 t1 H))))))).
+t1)).(pr3_ind c (\lambda (t: T).(\lambda (t2: T).(\forall (t3: T).((pr3 c t 
+t3) \to (ex2 T (\lambda (t4: T).(pr3 c t2 t4)) (\lambda (t4: T).(pr3 c t3 
+t4))))))) (\lambda (t: T).(\lambda (t2: T).(\lambda (H0: (pr3 c t 
+t2)).(ex_intro2 T (\lambda (t3: T).(pr3 c t t3)) (\lambda (t3: T).(pr3 c t2 
+t3)) t2 H0 (pr3_refl c t2))))) (\lambda (t2: T).(\lambda (t3: T).(\lambda 
+(H0: (pr2 c t3 t2)).(\lambda (t4: T).(\lambda (_: (pr3 c t2 t4)).(\lambda 
+(H2: ((\forall (t5: T).((pr3 c t2 t5) \to (ex2 T (\lambda (t: T).(pr3 c t4 
+t)) (\lambda (t: T).(pr3 c t5 t))))))).(\lambda (t5: T).(\lambda (H3: (pr3 c 
+t3 t5)).(ex2_ind T (\lambda (t: T).(pr3 c t5 t)) (\lambda (t: T).(pr3 c t2 
+t)) (ex2 T (\lambda (t: T).(pr3 c t4 t)) (\lambda (t: T).(pr3 c t5 t))) 
+(\lambda (x: T).(\lambda (H4: (pr3 c t5 x)).(\lambda (H5: (pr3 c t2 
+x)).(ex2_ind T (\lambda (t: T).(pr3 c t4 t)) (\lambda (t: T).(pr3 c x t)) 
+(ex2 T (\lambda (t: T).(pr3 c t4 t)) (\lambda (t: T).(pr3 c t5 t))) (\lambda 
+(x0: T).(\lambda (H6: (pr3 c t4 x0)).(\lambda (H7: (pr3 c x x0)).(ex_intro2 T 
+(\lambda (t: T).(pr3 c t4 t)) (\lambda (t: T).(pr3 c t5 t)) x0 H6 (pr3_t x t5 
+c H4 x0 H7))))) (H2 x H5))))) (pr3_strip c t3 t5 H3 t2 H0)))))))))) t0 t1 
+H)))).
 
index 048fc9bebf363085918831e8dd13ddf80186f85a..bcecb2777af2fd494db253fa9e12e0217f8aecf9 100644 (file)
@@ -26,33 +26,24 @@ w1 w2)) (\lambda (w2: T).(subst1 i v t2 w2))))))))))))
 \def
  \lambda (c: C).(\lambda (e: C).(\lambda (v: T).(\lambda (i: nat).(\lambda 
 (H: (getl i c (CHead e (Bind Abbr) v))).(\lambda (t1: T).(\lambda (t2: 
-T).(\lambda (H0: (pr3 c t1 t2)).(let TMP_3 \def (\lambda (t: T).(\lambda (t0: 
-T).(\forall (w1: T).((subst1 i v t w1) \to (let TMP_1 \def (\lambda (w2: 
-T).(pr3 c w1 w2)) in (let TMP_2 \def (\lambda (w2: T).(subst1 i v t0 w2)) in 
-(ex2 T TMP_1 TMP_2))))))) in (let TMP_7 \def (\lambda (t: T).(\lambda (w1: 
-T).(\lambda (H1: (subst1 i v t w1)).(let TMP_4 \def (\lambda (w2: T).(pr3 c 
-w1 w2)) in (let TMP_5 \def (\lambda (w2: T).(subst1 i v t w2)) in (let TMP_6 
-\def (pr3_refl c w1) in (ex_intro2 T TMP_4 TMP_5 w1 TMP_6 H1))))))) in (let 
-TMP_25 \def (\lambda (t3: T).(\lambda (t4: T).(\lambda (H1: (pr2 c t4 
-t3)).(\lambda (t5: T).(\lambda (_: (pr3 c t3 t5)).(\lambda (H3: ((\forall 
-(w1: T).((subst1 i v t3 w1) \to (ex2 T (\lambda (w2: T).(pr3 c w1 w2)) 
-(\lambda (w2: T).(subst1 i v t5 w2))))))).(\lambda (w1: T).(\lambda (H4: 
-(subst1 i v t4 w1)).(let TMP_8 \def (\lambda (w2: T).(pr2 c w1 w2)) in (let 
-TMP_9 \def (\lambda (w2: T).(subst1 i v t3 w2)) in (let TMP_10 \def (\lambda 
-(w2: T).(pr3 c w1 w2)) in (let TMP_11 \def (\lambda (w2: T).(subst1 i v t5 
-w2)) in (let TMP_12 \def (ex2 T TMP_10 TMP_11) in (let TMP_23 \def (\lambda 
-(x: T).(\lambda (H5: (pr2 c w1 x)).(\lambda (H6: (subst1 i v t3 x)).(let 
-TMP_13 \def (\lambda (w2: T).(pr3 c x w2)) in (let TMP_14 \def (\lambda (w2: 
-T).(subst1 i v t5 w2)) in (let TMP_15 \def (\lambda (w2: T).(pr3 c w1 w2)) in 
-(let TMP_16 \def (\lambda (w2: T).(subst1 i v t5 w2)) in (let TMP_17 \def 
-(ex2 T TMP_15 TMP_16) in (let TMP_21 \def (\lambda (x0: T).(\lambda (H7: (pr3 
-c x x0)).(\lambda (H8: (subst1 i v t5 x0)).(let TMP_18 \def (\lambda (w2: 
-T).(pr3 c w1 w2)) in (let TMP_19 \def (\lambda (w2: T).(subst1 i v t5 w2)) in 
-(let TMP_20 \def (pr3_sing c x w1 H5 x0 H7) in (ex_intro2 T TMP_18 TMP_19 x0 
-TMP_20 H8))))))) in (let TMP_22 \def (H3 x H6) in (ex2_ind T TMP_13 TMP_14 
-TMP_17 TMP_21 TMP_22))))))))))) in (let TMP_24 \def (pr2_subst1 c e v i H t4 
-t3 H1 w1 H4) in (ex2_ind T TMP_8 TMP_9 TMP_12 TMP_23 TMP_24)))))))))))))))) 
-in (pr3_ind c TMP_3 TMP_7 TMP_25 t1 t2 H0))))))))))).
+T).(\lambda (H0: (pr3 c t1 t2)).(pr3_ind c (\lambda (t: T).(\lambda (t0: 
+T).(\forall (w1: T).((subst1 i v t w1) \to (ex2 T (\lambda (w2: T).(pr3 c w1 
+w2)) (\lambda (w2: T).(subst1 i v t0 w2))))))) (\lambda (t: T).(\lambda (w1: 
+T).(\lambda (H1: (subst1 i v t w1)).(ex_intro2 T (\lambda (w2: T).(pr3 c w1 
+w2)) (\lambda (w2: T).(subst1 i v t w2)) w1 (pr3_refl c w1) H1)))) (\lambda 
+(t3: T).(\lambda (t4: T).(\lambda (H1: (pr2 c t4 t3)).(\lambda (t5: 
+T).(\lambda (_: (pr3 c t3 t5)).(\lambda (H3: ((\forall (w1: T).((subst1 i v 
+t3 w1) \to (ex2 T (\lambda (w2: T).(pr3 c w1 w2)) (\lambda (w2: T).(subst1 i 
+v t5 w2))))))).(\lambda (w1: T).(\lambda (H4: (subst1 i v t4 w1)).(ex2_ind T 
+(\lambda (w2: T).(pr2 c w1 w2)) (\lambda (w2: T).(subst1 i v t3 w2)) (ex2 T 
+(\lambda (w2: T).(pr3 c w1 w2)) (\lambda (w2: T).(subst1 i v t5 w2))) 
+(\lambda (x: T).(\lambda (H5: (pr2 c w1 x)).(\lambda (H6: (subst1 i v t3 
+x)).(ex2_ind T (\lambda (w2: T).(pr3 c x w2)) (\lambda (w2: T).(subst1 i v t5 
+w2)) (ex2 T (\lambda (w2: T).(pr3 c w1 w2)) (\lambda (w2: T).(subst1 i v t5 
+w2))) (\lambda (x0: T).(\lambda (H7: (pr3 c x x0)).(\lambda (H8: (subst1 i v 
+t5 x0)).(ex_intro2 T (\lambda (w2: T).(pr3 c w1 w2)) (\lambda (w2: T).(subst1 
+i v t5 w2)) x0 (pr3_sing c x w1 H5 x0 H7) H8)))) (H3 x H6))))) (pr2_subst1 c 
+e v i H t4 t3 H1 w1 H4)))))))))) t1 t2 H0)))))))).
 
 theorem pr3_gen_cabbr:
  \forall (c: C).(\forall (t1: T).(\forall (t2: T).((pr3 c t1 t2) \to (\forall 
@@ -63,50 +54,36 @@ a0 a) \to (\forall (x1: T).((subst1 d u t1 (lift (S O) d x1)) \to (ex2 T
 x1 x2))))))))))))))))
 \def
  \lambda (c: C).(\lambda (t1: T).(\lambda (t2: T).(\lambda (H: (pr3 c t1 
-t2)).(let TMP_5 \def (\lambda (t: T).(\lambda (t0: T).(\forall (e: 
-C).(\forall (u: T).(\forall (d: nat).((getl d c (CHead e (Bind Abbr) u)) \to 
-(\forall (a0: C).((csubst1 d u c a0) \to (\forall (a: C).((drop (S O) d a0 a) 
-\to (\forall (x1: T).((subst1 d u t (lift (S O) d x1)) \to (let TMP_3 \def 
-(\lambda (x2: T).(let TMP_1 \def (S O) in (let TMP_2 \def (lift TMP_1 d x2) 
-in (subst1 d u t0 TMP_2)))) in (let TMP_4 \def (\lambda (x2: T).(pr3 a x1 
-x2)) in (ex2 T TMP_3 TMP_4))))))))))))))) in (let TMP_11 \def (\lambda (t: 
-T).(\lambda (e: C).(\lambda (u: T).(\lambda (d: nat).(\lambda (_: (getl d c 
-(CHead e (Bind Abbr) u))).(\lambda (a0: C).(\lambda (_: (csubst1 d u c 
-a0)).(\lambda (a: C).(\lambda (_: (drop (S O) d a0 a)).(\lambda (x1: 
-T).(\lambda (H3: (subst1 d u t (lift (S O) d x1))).(let TMP_8 \def (\lambda 
-(x2: T).(let TMP_6 \def (S O) in (let TMP_7 \def (lift TMP_6 d x2) in (subst1 
-d u t TMP_7)))) in (let TMP_9 \def (\lambda (x2: T).(pr3 a x1 x2)) in (let 
-TMP_10 \def (pr3_refl a x1) in (ex_intro2 T TMP_8 TMP_9 x1 H3 
-TMP_10))))))))))))))) in (let TMP_39 \def (\lambda (t0: T).(\lambda (t3: 
-T).(\lambda (H0: (pr2 c t3 t0)).(\lambda (t4: T).(\lambda (_: (pr3 c t0 
-t4)).(\lambda (H2: ((\forall (e: C).(\forall (u: T).(\forall (d: nat).((getl 
-d c (CHead e (Bind Abbr) u)) \to (\forall (a0: C).((csubst1 d u c a0) \to 
-(\forall (a: C).((drop (S O) d a0 a) \to (\forall (x1: T).((subst1 d u t0 
-(lift (S O) d x1)) \to (ex2 T (\lambda (x2: T).(subst1 d u t4 (lift (S O) d 
-x2))) (\lambda (x2: T).(pr3 a x1 x2))))))))))))))).(\lambda (e: C).(\lambda 
-(u: T).(\lambda (d: nat).(\lambda (H3: (getl d c (CHead e (Bind Abbr) 
-u))).(\lambda (a0: C).(\lambda (H4: (csubst1 d u c a0)).(\lambda (a: 
-C).(\lambda (H5: (drop (S O) d a0 a)).(\lambda (x1: T).(\lambda (H6: (subst1 
-d u t3 (lift (S O) d x1))).(let TMP_14 \def (\lambda (x2: T).(let TMP_12 \def 
-(S O) in (let TMP_13 \def (lift TMP_12 d x2) in (subst1 d u t0 TMP_13)))) in 
-(let TMP_15 \def (\lambda (x2: T).(pr2 a x1 x2)) in (let TMP_18 \def (\lambda 
-(x2: T).(let TMP_16 \def (S O) in (let TMP_17 \def (lift TMP_16 d x2) in 
-(subst1 d u t4 TMP_17)))) in (let TMP_19 \def (\lambda (x2: T).(pr3 a x1 x2)) 
-in (let TMP_20 \def (ex2 T TMP_18 TMP_19) in (let TMP_37 \def (\lambda (x: 
-T).(\lambda (H7: (subst1 d u t0 (lift (S O) d x))).(\lambda (H8: (pr2 a x1 
-x)).(let TMP_23 \def (\lambda (x2: T).(let TMP_21 \def (S O) in (let TMP_22 
-\def (lift TMP_21 d x2) in (subst1 d u t4 TMP_22)))) in (let TMP_24 \def 
-(\lambda (x2: T).(pr3 a x x2)) in (let TMP_27 \def (\lambda (x2: T).(let 
-TMP_25 \def (S O) in (let TMP_26 \def (lift TMP_25 d x2) in (subst1 d u t4 
-TMP_26)))) in (let TMP_28 \def (\lambda (x2: T).(pr3 a x1 x2)) in (let TMP_29 
-\def (ex2 T TMP_27 TMP_28) in (let TMP_35 \def (\lambda (x0: T).(\lambda (H9: 
-(subst1 d u t4 (lift (S O) d x0))).(\lambda (H10: (pr3 a x x0)).(let TMP_32 
-\def (\lambda (x2: T).(let TMP_30 \def (S O) in (let TMP_31 \def (lift TMP_30 
-d x2) in (subst1 d u t4 TMP_31)))) in (let TMP_33 \def (\lambda (x2: T).(pr3 
-a x1 x2)) in (let TMP_34 \def (pr3_sing a x x1 H8 x0 H10) in (ex_intro2 T 
-TMP_32 TMP_33 x0 H9 TMP_34))))))) in (let TMP_36 \def (H2 e u d H3 a0 H4 a H5 
-x H7) in (ex2_ind T TMP_23 TMP_24 TMP_29 TMP_35 TMP_36))))))))))) in (let 
-TMP_38 \def (pr2_gen_cabbr c t3 t0 H0 e u d H3 a0 H4 a H5 x1 H6) in (ex2_ind 
-T TMP_14 TMP_15 TMP_20 TMP_37 TMP_38)))))))))))))))))))))))) in (pr3_ind c 
-TMP_5 TMP_11 TMP_39 t1 t2 H))))))).
+t2)).(pr3_ind c (\lambda (t: T).(\lambda (t0: T).(\forall (e: C).(\forall (u: 
+T).(\forall (d: nat).((getl d c (CHead e (Bind Abbr) u)) \to (\forall (a0: 
+C).((csubst1 d u c a0) \to (\forall (a: C).((drop (S O) d a0 a) \to (\forall 
+(x1: T).((subst1 d u t (lift (S O) d x1)) \to (ex2 T (\lambda (x2: T).(subst1 
+d u t0 (lift (S O) d x2))) (\lambda (x2: T).(pr3 a x1 x2))))))))))))))) 
+(\lambda (t: T).(\lambda (e: C).(\lambda (u: T).(\lambda (d: nat).(\lambda 
+(_: (getl d c (CHead e (Bind Abbr) u))).(\lambda (a0: C).(\lambda (_: 
+(csubst1 d u c a0)).(\lambda (a: C).(\lambda (_: (drop (S O) d a0 
+a)).(\lambda (x1: T).(\lambda (H3: (subst1 d u t (lift (S O) d 
+x1))).(ex_intro2 T (\lambda (x2: T).(subst1 d u t (lift (S O) d x2))) 
+(\lambda (x2: T).(pr3 a x1 x2)) x1 H3 (pr3_refl a x1))))))))))))) (\lambda 
+(t0: T).(\lambda (t3: T).(\lambda (H0: (pr2 c t3 t0)).(\lambda (t4: 
+T).(\lambda (_: (pr3 c t0 t4)).(\lambda (H2: ((\forall (e: C).(\forall (u: 
+T).(\forall (d: nat).((getl d c (CHead e (Bind Abbr) u)) \to (\forall (a0: 
+C).((csubst1 d u c a0) \to (\forall (a: C).((drop (S O) d a0 a) \to (\forall 
+(x1: T).((subst1 d u t0 (lift (S O) d x1)) \to (ex2 T (\lambda (x2: 
+T).(subst1 d u t4 (lift (S O) d x2))) (\lambda (x2: T).(pr3 a x1 
+x2))))))))))))))).(\lambda (e: C).(\lambda (u: T).(\lambda (d: nat).(\lambda 
+(H3: (getl d c (CHead e (Bind Abbr) u))).(\lambda (a0: C).(\lambda (H4: 
+(csubst1 d u c a0)).(\lambda (a: C).(\lambda (H5: (drop (S O) d a0 
+a)).(\lambda (x1: T).(\lambda (H6: (subst1 d u t3 (lift (S O) d 
+x1))).(ex2_ind T (\lambda (x2: T).(subst1 d u t0 (lift (S O) d x2))) (\lambda 
+(x2: T).(pr2 a x1 x2)) (ex2 T (\lambda (x2: T).(subst1 d u t4 (lift (S O) d 
+x2))) (\lambda (x2: T).(pr3 a x1 x2))) (\lambda (x: T).(\lambda (H7: (subst1 
+d u t0 (lift (S O) d x))).(\lambda (H8: (pr2 a x1 x)).(ex2_ind T (\lambda 
+(x2: T).(subst1 d u t4 (lift (S O) d x2))) (\lambda (x2: T).(pr3 a x x2)) 
+(ex2 T (\lambda (x2: T).(subst1 d u t4 (lift (S O) d x2))) (\lambda (x2: 
+T).(pr3 a x1 x2))) (\lambda (x0: T).(\lambda (H9: (subst1 d u t4 (lift (S O) 
+d x0))).(\lambda (H10: (pr3 a x x0)).(ex_intro2 T (\lambda (x2: T).(subst1 d 
+u t4 (lift (S O) d x2))) (\lambda (x2: T).(pr3 a x1 x2)) x0 H9 (pr3_sing a x 
+x1 H8 x0 H10))))) (H2 e u d H3 a0 H4 a H5 x H7))))) (pr2_gen_cabbr c t3 t0 H0 
+e u d H3 a0 H4 a H5 x1 H6)))))))))))))))))) t1 t2 H)))).
 
index c7f6669d5c49f2b314047bb73e1cb5f8b3582777..ef4d354959ea2eadc9c85b2b2b354f7e1c09a849 100644 (file)
@@ -22,62 +22,42 @@ theorem pr3_wcpr0_t:
  \forall (c1: C).(\forall (c2: C).((wcpr0 c2 c1) \to (\forall (t1: 
 T).(\forall (t2: T).((pr3 c1 t1 t2) \to (pr3 c2 t1 t2))))))
 \def
- \lambda (c1: C).(\lambda (c2: C).(\lambda (H: (wcpr0 c2 c1)).(let TMP_1 \def 
+ \lambda (c1: C).(\lambda (c2: C).(\lambda (H: (wcpr0 c2 c1)).(wcpr0_ind 
 (\lambda (c: C).(\lambda (c0: C).(\forall (t1: T).(\forall (t2: T).((pr3 c0 
-t1 t2) \to (pr3 c t1 t2)))))) in (let TMP_2 \def (\lambda (c: C).(\lambda 
-(t1: T).(\lambda (t2: T).(\lambda (H0: (pr3 c t1 t2)).H0)))) in (let TMP_57 
-\def (\lambda (c0: C).(\lambda (c3: C).(\lambda (H0: (wcpr0 c0 c3)).(\lambda 
-(_: ((\forall (t1: T).(\forall (t2: T).((pr3 c3 t1 t2) \to (pr3 c0 t1 
-t2)))))).(\lambda (u1: T).(\lambda (u2: T).(\lambda (H2: (pr0 u1 
-u2)).(\lambda (k: K).(\lambda (t1: T).(\lambda (t2: T).(\lambda (H3: (pr3 
-(CHead c3 k u2) t1 t2)).(let TMP_3 \def (CHead c3 k u1) in (let TMP_5 \def 
-(\lambda (t: T).(\lambda (t0: T).(let TMP_4 \def (CHead c0 k u1) in (pr3 
-TMP_4 t t0)))) in (let TMP_7 \def (\lambda (t: T).(let TMP_6 \def (CHead c0 k 
-u1) in (pr3_refl TMP_6 t))) in (let TMP_54 \def (\lambda (t0: T).(\lambda 
-(t3: T).(\lambda (H4: (pr2 (CHead c3 k u1) t3 t0)).(\lambda (t4: T).(\lambda 
-(_: (pr3 (CHead c3 k u1) t0 t4)).(\lambda (H6: (pr3 (CHead c0 k u1) t0 
-t4)).(let TMP_8 \def (CHead c0 k u1) in (let TMP_9 \def (CHead c3 k u1) in 
-(let TMP_10 \def (\lambda (c: C).(pr2 c t3 t0)) in (let TMP_12 \def (\lambda 
-(_: C).(let TMP_11 \def (CHead c0 k u1) in (pr3 TMP_11 t3 t0))) in (let 
-TMP_52 \def (\lambda (y: C).(\lambda (H7: (pr2 y t3 t0)).(let TMP_14 \def 
-(\lambda (c: C).(\lambda (t: T).(\lambda (t5: T).((eq C c (CHead c3 k u1)) 
-\to (let TMP_13 \def (CHead c0 k u1) in (pr3 TMP_13 t t5)))))) in (let TMP_18 
-\def (\lambda (c: C).(\lambda (t5: T).(\lambda (t6: T).(\lambda (H8: (pr0 t5 
-t6)).(\lambda (_: (eq C c (CHead c3 k u1))).(let TMP_15 \def (CHead c0 k u1) 
-in (let TMP_16 \def (CHead c0 k u1) in (let TMP_17 \def (pr2_free TMP_16 t5 
-t6 H8) in (pr3_pr2 TMP_15 t5 t6 TMP_17))))))))) in (let TMP_51 \def (\lambda 
-(c: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: nat).(\lambda (H8: (getl 
-i c (CHead d (Bind Abbr) u))).(\lambda (t5: T).(\lambda (t6: T).(\lambda (H9: 
-(pr0 t5 t6)).(\lambda (t: T).(\lambda (H10: (subst0 i u t6 t)).(\lambda (H11: 
-(eq C c (CHead c3 k u1))).(let TMP_21 \def (\lambda (c4: C).(let TMP_19 \def 
-(Bind Abbr) in (let TMP_20 \def (CHead d TMP_19 u) in (getl i c4 TMP_20)))) 
-in (let TMP_22 \def (CHead c3 k u1) in (let H12 \def (eq_ind C c TMP_21 H8 
-TMP_22 H11) in (let TMP_26 \def (\lambda (e2: C).(\lambda (u3: T).(let TMP_23 
-\def (CHead c0 k u1) in (let TMP_24 \def (Bind Abbr) in (let TMP_25 \def 
-(CHead e2 TMP_24 u3) in (getl i TMP_23 TMP_25)))))) in (let TMP_27 \def 
-(\lambda (e2: C).(\lambda (_: T).(wcpr0 e2 d))) in (let TMP_28 \def (\lambda 
-(_: C).(\lambda (u3: T).(pr0 u3 u))) in (let TMP_29 \def (CHead c0 k u1) in 
-(let TMP_30 \def (pr3 TMP_29 t5 t) in (let TMP_44 \def (\lambda (x0: 
-C).(\lambda (x1: T).(\lambda (H13: (getl i (CHead c0 k u1) (CHead x0 (Bind 
-Abbr) x1))).(\lambda (_: (wcpr0 x0 d)).(\lambda (H15: (pr0 x1 u)).(let TMP_31 
-\def (\lambda (t7: T).(subst0 i x1 t6 t7)) in (let TMP_32 \def (\lambda (t7: 
-T).(pr0 t7 t)) in (let TMP_33 \def (CHead c0 k u1) in (let TMP_34 \def (pr3 
-TMP_33 t5 t) in (let TMP_42 \def (\lambda (x: T).(\lambda (H16: (subst0 i x1 
-t6 x)).(\lambda (H17: (pr0 x t)).(let TMP_35 \def (CHead c0 k u1) in (let 
-TMP_36 \def (CHead c0 k u1) in (let TMP_37 \def (pr2_delta TMP_36 x0 x1 i H13 
-t5 t6 H9 x H16) in (let TMP_38 \def (CHead c0 k u1) in (let TMP_39 \def 
-(CHead c0 k u1) in (let TMP_40 \def (pr2_free TMP_39 x t H17) in (let TMP_41 
-\def (pr3_pr2 TMP_38 x t TMP_40) in (pr3_sing TMP_35 x t5 TMP_37 t 
-TMP_41))))))))))) in (let TMP_43 \def (pr0_subst0_back u t6 t i H10 x1 H15) 
-in (ex2_ind T TMP_31 TMP_32 TMP_34 TMP_42 TMP_43)))))))))))) in (let TMP_45 
-\def (CHead c3 k u1) in (let TMP_46 \def (CHead c0 k u1) in (let TMP_47 \def 
-(pr0_refl u1) in (let TMP_48 \def (wcpr0_comp c0 c3 H0 u1 u1 TMP_47 k) in 
-(let TMP_49 \def (Bind Abbr) in (let TMP_50 \def (wcpr0_getl_back TMP_45 
-TMP_46 TMP_48 i d u TMP_49 H12) in (ex3_2_ind C T TMP_26 TMP_27 TMP_28 TMP_30 
-TMP_44 TMP_50))))))))))))))))))))))))))) in (pr2_ind TMP_14 TMP_18 TMP_51 y 
-t3 t0 H7)))))) in (let TMP_53 \def (insert_eq C TMP_9 TMP_10 TMP_12 TMP_52 
-H4) in (pr3_t t0 t3 TMP_8 TMP_53 t4 H6))))))))))))) in (let TMP_55 \def 
-(pr2_free c3 u1 u2 H2) in (let TMP_56 \def (pr3_pr2_pr3_t c3 u2 t1 t2 k H3 u1 
-TMP_55) in (pr3_ind TMP_3 TMP_5 TMP_7 TMP_54 t1 t2 TMP_56)))))))))))))))))) 
-in (wcpr0_ind TMP_1 TMP_2 TMP_57 c2 c1 H)))))).
+t1 t2) \to (pr3 c t1 t2)))))) (\lambda (c: C).(\lambda (t1: T).(\lambda (t2: 
+T).(\lambda (H0: (pr3 c t1 t2)).H0)))) (\lambda (c0: C).(\lambda (c3: 
+C).(\lambda (H0: (wcpr0 c0 c3)).(\lambda (_: ((\forall (t1: T).(\forall (t2: 
+T).((pr3 c3 t1 t2) \to (pr3 c0 t1 t2)))))).(\lambda (u1: T).(\lambda (u2: 
+T).(\lambda (H2: (pr0 u1 u2)).(\lambda (k: K).(\lambda (t1: T).(\lambda (t2: 
+T).(\lambda (H3: (pr3 (CHead c3 k u2) t1 t2)).(pr3_ind (CHead c3 k u1) 
+(\lambda (t: T).(\lambda (t0: T).(pr3 (CHead c0 k u1) t t0))) (\lambda (t: 
+T).(pr3_refl (CHead c0 k u1) t)) (\lambda (t0: T).(\lambda (t3: T).(\lambda 
+(H4: (pr2 (CHead c3 k u1) t3 t0)).(\lambda (t4: T).(\lambda (_: (pr3 (CHead 
+c3 k u1) t0 t4)).(\lambda (H6: (pr3 (CHead c0 k u1) t0 t4)).(pr3_t t0 t3 
+(CHead c0 k u1) (insert_eq C (CHead c3 k u1) (\lambda (c: C).(pr2 c t3 t0)) 
+(\lambda (_: C).(pr3 (CHead c0 k u1) t3 t0)) (\lambda (y: C).(\lambda (H7: 
+(pr2 y t3 t0)).(pr2_ind (\lambda (c: C).(\lambda (t: T).(\lambda (t5: T).((eq 
+C c (CHead c3 k u1)) \to (pr3 (CHead c0 k u1) t t5))))) (\lambda (c: 
+C).(\lambda (t5: T).(\lambda (t6: T).(\lambda (H8: (pr0 t5 t6)).(\lambda (_: 
+(eq C c (CHead c3 k u1))).(pr3_pr2 (CHead c0 k u1) t5 t6 (pr2_free (CHead c0 
+k u1) t5 t6 H8))))))) (\lambda (c: C).(\lambda (d: C).(\lambda (u: 
+T).(\lambda (i: nat).(\lambda (H8: (getl i c (CHead d (Bind Abbr) 
+u))).(\lambda (t5: T).(\lambda (t6: T).(\lambda (H9: (pr0 t5 t6)).(\lambda 
+(t: T).(\lambda (H10: (subst0 i u t6 t)).(\lambda (H11: (eq C c (CHead c3 k 
+u1))).(let H12 \def (eq_ind C c (\lambda (c4: C).(getl i c4 (CHead d (Bind 
+Abbr) u))) H8 (CHead c3 k u1) H11) in (ex3_2_ind C T (\lambda (e2: 
+C).(\lambda (u3: T).(getl i (CHead c0 k u1) (CHead e2 (Bind Abbr) u3)))) 
+(\lambda (e2: C).(\lambda (_: T).(wcpr0 e2 d))) (\lambda (_: C).(\lambda (u3: 
+T).(pr0 u3 u))) (pr3 (CHead c0 k u1) t5 t) (\lambda (x0: C).(\lambda (x1: 
+T).(\lambda (H13: (getl i (CHead c0 k u1) (CHead x0 (Bind Abbr) 
+x1))).(\lambda (_: (wcpr0 x0 d)).(\lambda (H15: (pr0 x1 u)).(ex2_ind T 
+(\lambda (t7: T).(subst0 i x1 t6 t7)) (\lambda (t7: T).(pr0 t7 t)) (pr3 
+(CHead c0 k u1) t5 t) (\lambda (x: T).(\lambda (H16: (subst0 i x1 t6 
+x)).(\lambda (H17: (pr0 x t)).(pr3_sing (CHead c0 k u1) x t5 (pr2_delta 
+(CHead c0 k u1) x0 x1 i H13 t5 t6 H9 x H16) t (pr3_pr2 (CHead c0 k u1) x t 
+(pr2_free (CHead c0 k u1) x t H17)))))) (pr0_subst0_back u t6 t i H10 x1 
+H15))))))) (wcpr0_getl_back (CHead c3 k u1) (CHead c0 k u1) (wcpr0_comp c0 c3 
+H0 u1 u1 (pr0_refl u1) k) i d u (Bind Abbr) H12)))))))))))))) y t3 t0 H7))) 
+H4) t4 H6))))))) t1 t2 (pr3_pr2_pr3_t c3 u2 t1 t2 k H3 u1 (pr2_free c3 u1 u2 
+H2)))))))))))))) c2 c1 H))).
 
index e67f789c51f0b3d618dc0b7a06594ebef598f9bb..80ebd666e2e290e36103be9b709e77b6d6c97d52 100644 (file)
@@ -21,180 +21,133 @@ include "basic_1/s/defs.ma".
 theorem r_S:
  \forall (k: K).(\forall (i: nat).(eq nat (r k (S i)) (S (r k i))))
 \def
- \lambda (k: K).(let TMP_5 \def (\lambda (k0: K).(\forall (i: nat).(let TMP_1 
-\def (S i) in (let TMP_2 \def (r k0 TMP_1) in (let TMP_3 \def (r k0 i) in 
-(let TMP_4 \def (S TMP_3) in (eq nat TMP_2 TMP_4))))))) in (let TMP_9 \def 
-(\lambda (b: B).(\lambda (i: nat).(let TMP_6 \def (Bind b) in (let TMP_7 \def 
-(r TMP_6 i) in (let TMP_8 \def (S TMP_7) in (refl_equal nat TMP_8)))))) in 
-(let TMP_13 \def (\lambda (f: F).(\lambda (i: nat).(let TMP_10 \def (Flat f) 
-in (let TMP_11 \def (r TMP_10 i) in (let TMP_12 \def (S TMP_11) in 
-(refl_equal nat TMP_12)))))) in (K_ind TMP_5 TMP_9 TMP_13 k)))).
+ \lambda (k: K).(K_ind (\lambda (k0: K).(\forall (i: nat).(eq nat (r k0 (S 
+i)) (S (r k0 i))))) (\lambda (b: B).(\lambda (i: nat).(refl_equal nat (S (r 
+(Bind b) i))))) (\lambda (f: F).(\lambda (i: nat).(refl_equal nat (S (r (Flat 
+f) i))))) k).
 
 theorem r_plus:
  \forall (k: K).(\forall (i: nat).(\forall (j: nat).(eq nat (r k (plus i j)) 
 (plus (r k i) j))))
 \def
- \lambda (k: K).(let TMP_5 \def (\lambda (k0: K).(\forall (i: nat).(\forall 
-(j: nat).(let TMP_1 \def (plus i j) in (let TMP_2 \def (r k0 TMP_1) in (let 
-TMP_3 \def (r k0 i) in (let TMP_4 \def (plus TMP_3 j) in (eq nat TMP_2 
-TMP_4)))))))) in (let TMP_9 \def (\lambda (b: B).(\lambda (i: nat).(\lambda 
-(j: nat).(let TMP_6 \def (Bind b) in (let TMP_7 \def (r TMP_6 i) in (let 
-TMP_8 \def (plus TMP_7 j) in (refl_equal nat TMP_8))))))) in (let TMP_13 \def 
-(\lambda (f: F).(\lambda (i: nat).(\lambda (j: nat).(let TMP_10 \def (Flat f) 
-in (let TMP_11 \def (r TMP_10 i) in (let TMP_12 \def (plus TMP_11 j) in 
-(refl_equal nat TMP_12))))))) in (K_ind TMP_5 TMP_9 TMP_13 k)))).
+ \lambda (k: K).(K_ind (\lambda (k0: K).(\forall (i: nat).(\forall (j: 
+nat).(eq nat (r k0 (plus i j)) (plus (r k0 i) j))))) (\lambda (b: B).(\lambda 
+(i: nat).(\lambda (j: nat).(refl_equal nat (plus (r (Bind b) i) j))))) 
+(\lambda (f: F).(\lambda (i: nat).(\lambda (j: nat).(refl_equal nat (plus (r 
+(Flat f) i) j))))) k).
 
 theorem r_plus_sym:
  \forall (k: K).(\forall (i: nat).(\forall (j: nat).(eq nat (r k (plus i j)) 
 (plus i (r k j)))))
 \def
- \lambda (k: K).(let TMP_5 \def (\lambda (k0: K).(\forall (i: nat).(\forall 
-(j: nat).(let TMP_1 \def (plus i j) in (let TMP_2 \def (r k0 TMP_1) in (let 
-TMP_3 \def (r k0 j) in (let TMP_4 \def (plus i TMP_3) in (eq nat TMP_2 
-TMP_4)))))))) in (let TMP_7 \def (\lambda (_: B).(\lambda (i: nat).(\lambda 
-(j: nat).(let TMP_6 \def (plus i j) in (refl_equal nat TMP_6))))) in (let 
-TMP_8 \def (\lambda (_: F).(\lambda (i: nat).(\lambda (j: nat).(plus_n_Sm i 
-j)))) in (K_ind TMP_5 TMP_7 TMP_8 k)))).
+ \lambda (k: K).(K_ind (\lambda (k0: K).(\forall (i: nat).(\forall (j: 
+nat).(eq nat (r k0 (plus i j)) (plus i (r k0 j)))))) (\lambda (_: B).(\lambda 
+(i: nat).(\lambda (j: nat).(refl_equal nat (plus i j))))) (\lambda (_: 
+F).(\lambda (i: nat).(\lambda (j: nat).(plus_n_Sm i j)))) k).
 
 theorem r_minus:
  \forall (i: nat).(\forall (n: nat).((lt n i) \to (\forall (k: K).(eq nat 
 (minus (r k i) (S n)) (r k (minus i (S n)))))))
 \def
  \lambda (i: nat).(\lambda (n: nat).(\lambda (H: (lt n i)).(\lambda (k: 
-K).(let TMP_7 \def (\lambda (k0: K).(let TMP_1 \def (r k0 i) in (let TMP_2 
-\def (S n) in (let TMP_3 \def (minus TMP_1 TMP_2) in (let TMP_4 \def (S n) in 
-(let TMP_5 \def (minus i TMP_4) in (let TMP_6 \def (r k0 TMP_5) in (eq nat 
-TMP_3 TMP_6)))))))) in (let TMP_10 \def (\lambda (_: B).(let TMP_8 \def (S n) 
-in (let TMP_9 \def (minus i TMP_8) in (refl_equal nat TMP_9)))) in (let 
-TMP_11 \def (\lambda (_: F).(minus_x_Sy i n H)) in (K_ind TMP_7 TMP_10 TMP_11 
-k))))))).
+K).(K_ind (\lambda (k0: K).(eq nat (minus (r k0 i) (S n)) (r k0 (minus i (S 
+n))))) (\lambda (_: B).(refl_equal nat (minus i (S n)))) (\lambda (_: 
+F).(minus_x_Sy i n H)) k)))).
 
 theorem r_dis:
  \forall (k: K).(\forall (P: Prop).(((((\forall (i: nat).(eq nat (r k i) i))) 
 \to P)) \to (((((\forall (i: nat).(eq nat (r k i) (S i)))) \to P)) \to P)))
 \def
- \lambda (k: K).(let TMP_1 \def (\lambda (k0: K).(\forall (P: 
-Prop).(((((\forall (i: nat).(eq nat (r k0 i) i))) \to P)) \to (((((\forall 
-(i: nat).(eq nat (r k0 i) (S i)))) \to P)) \to P)))) in (let TMP_3 \def 
-(\lambda (b: B).(\lambda (P: Prop).(\lambda (H: ((((\forall (i: nat).(eq nat 
-(r (Bind b) i) i))) \to P))).(\lambda (_: ((((\forall (i: nat).(eq nat (r 
-(Bind b) i) (S i)))) \to P))).(let TMP_2 \def (\lambda (i: nat).(refl_equal 
-nat i)) in (H TMP_2)))))) in (let TMP_6 \def (\lambda (f: F).(\lambda (P: 
-Prop).(\lambda (_: ((((\forall (i: nat).(eq nat (r (Flat f) i) i))) \to 
-P))).(\lambda (H0: ((((\forall (i: nat).(eq nat (r (Flat f) i) (S i)))) \to 
-P))).(let TMP_5 \def (\lambda (i: nat).(let TMP_4 \def (S i) in (refl_equal 
-nat TMP_4))) in (H0 TMP_5)))))) in (K_ind TMP_1 TMP_3 TMP_6 k)))).
+ \lambda (k: K).(K_ind (\lambda (k0: K).(\forall (P: Prop).(((((\forall (i: 
+nat).(eq nat (r k0 i) i))) \to P)) \to (((((\forall (i: nat).(eq nat (r k0 i) 
+(S i)))) \to P)) \to P)))) (\lambda (b: B).(\lambda (P: Prop).(\lambda (H: 
+((((\forall (i: nat).(eq nat (r (Bind b) i) i))) \to P))).(\lambda (_: 
+((((\forall (i: nat).(eq nat (r (Bind b) i) (S i)))) \to P))).(H (\lambda (i: 
+nat).(refl_equal nat i))))))) (\lambda (f: F).(\lambda (P: Prop).(\lambda (_: 
+((((\forall (i: nat).(eq nat (r (Flat f) i) i))) \to P))).(\lambda (H0: 
+((((\forall (i: nat).(eq nat (r (Flat f) i) (S i)))) \to P))).(H0 (\lambda 
+(i: nat).(refl_equal nat (S i)))))))) k).
 
 theorem s_r:
  \forall (k: K).(\forall (i: nat).(eq nat (s k (r k i)) (S i)))
 \def
- \lambda (k: K).(let TMP_4 \def (\lambda (k0: K).(\forall (i: nat).(let TMP_1 
-\def (r k0 i) in (let TMP_2 \def (s k0 TMP_1) in (let TMP_3 \def (S i) in (eq 
-nat TMP_2 TMP_3)))))) in (let TMP_6 \def (\lambda (_: B).(\lambda (i: 
-nat).(let TMP_5 \def (S i) in (refl_equal nat TMP_5)))) in (let TMP_8 \def 
-(\lambda (_: F).(\lambda (i: nat).(let TMP_7 \def (S i) in (refl_equal nat 
-TMP_7)))) in (K_ind TMP_4 TMP_6 TMP_8 k)))).
+ \lambda (k: K).(K_ind (\lambda (k0: K).(\forall (i: nat).(eq nat (s k0 (r k0 
+i)) (S i)))) (\lambda (_: B).(\lambda (i: nat).(refl_equal nat (S i)))) 
+(\lambda (_: F).(\lambda (i: nat).(refl_equal nat (S i)))) k).
 
 theorem r_arith0:
  \forall (k: K).(\forall (i: nat).(eq nat (minus (r k (S i)) (S O)) (r k i)))
 \def
- \lambda (k: K).(\lambda (i: nat).(let TMP_1 \def (r k i) in (let TMP_2 \def 
-(S TMP_1) in (let TMP_6 \def (\lambda (n: nat).(let TMP_3 \def (S O) in (let 
-TMP_4 \def (minus n TMP_3) in (let TMP_5 \def (r k i) in (eq nat TMP_4 
-TMP_5))))) in (let TMP_7 \def (r k i) in (let TMP_9 \def (\lambda (n: 
-nat).(let TMP_8 \def (r k i) in (eq nat n TMP_8))) in (let TMP_10 \def (r k 
-i) in (let TMP_11 \def (refl_equal nat TMP_10) in (let TMP_12 \def (r k i) in 
-(let TMP_13 \def (S TMP_12) in (let TMP_14 \def (S O) in (let TMP_15 \def 
-(minus TMP_13 TMP_14) in (let TMP_16 \def (r k i) in (let TMP_17 \def 
-(minus_Sx_SO TMP_16) in (let TMP_18 \def (eq_ind_r nat TMP_7 TMP_9 TMP_11 
-TMP_15 TMP_17) in (let TMP_19 \def (S i) in (let TMP_20 \def (r k TMP_19) in 
-(let TMP_21 \def (r_S k i) in (eq_ind_r nat TMP_2 TMP_6 TMP_18 TMP_20 
-TMP_21))))))))))))))))))).
+ \lambda (k: K).(\lambda (i: nat).(eq_ind_r nat (S (r k i)) (\lambda (n: 
+nat).(eq nat (minus n (S O)) (r k i))) (eq_ind_r nat (r k i) (\lambda (n: 
+nat).(eq nat n (r k i))) (refl_equal nat (r k i)) (minus (S (r k i)) (S O)) 
+(minus_Sx_SO (r k i))) (r k (S i)) (r_S k i))).
 
 theorem r_arith1:
  \forall (k: K).(\forall (i: nat).(\forall (j: nat).(eq nat (minus (r k (S 
 i)) (S j)) (minus (r k i) j))))
 \def
- \lambda (k: K).(\lambda (i: nat).(\lambda (j: nat).(let TMP_1 \def (r k i) 
-in (let TMP_2 \def (S TMP_1) in (let TMP_7 \def (\lambda (n: nat).(let TMP_3 
-\def (S j) in (let TMP_4 \def (minus n TMP_3) in (let TMP_5 \def (r k i) in 
-(let TMP_6 \def (minus TMP_5 j) in (eq nat TMP_4 TMP_6)))))) in (let TMP_8 
-\def (r k i) in (let TMP_9 \def (minus TMP_8 j) in (let TMP_10 \def 
-(refl_equal nat TMP_9) in (let TMP_11 \def (S i) in (let TMP_12 \def (r k 
-TMP_11) in (let TMP_13 \def (r_S k i) in (eq_ind_r nat TMP_2 TMP_7 TMP_10 
-TMP_12 TMP_13)))))))))))).
+ \lambda (k: K).(\lambda (i: nat).(\lambda (j: nat).(eq_ind_r nat (S (r k i)) 
+(\lambda (n: nat).(eq nat (minus n (S j)) (minus (r k i) j))) (refl_equal nat 
+(minus (r k i) j)) (r k (S i)) (r_S k i)))).
 
 theorem r_arith2:
  \forall (k: K).(\forall (i: nat).(\forall (j: nat).((le (S i) (s k j)) \to 
 (le (r k i) j))))
 \def
- \lambda (k: K).(let TMP_2 \def (\lambda (k0: K).(\forall (i: nat).(\forall 
-(j: nat).((le (S i) (s k0 j)) \to (let TMP_1 \def (r k0 i) in (le TMP_1 
-j)))))) in (let TMP_3 \def (\lambda (_: B).(\lambda (i: nat).(\lambda (j: 
-nat).(\lambda (H: (le (S i) (S j))).(let H_y \def (le_S_n i j H) in H_y))))) 
-in (let TMP_4 \def (\lambda (_: F).(\lambda (i: nat).(\lambda (j: 
-nat).(\lambda (H: (le (S i) j)).H)))) in (K_ind TMP_2 TMP_3 TMP_4 k)))).
+ \lambda (k: K).(K_ind (\lambda (k0: K).(\forall (i: nat).(\forall (j: 
+nat).((le (S i) (s k0 j)) \to (le (r k0 i) j))))) (\lambda (_: B).(\lambda 
+(i: nat).(\lambda (j: nat).(\lambda (H: (le (S i) (S j))).(let H_y \def 
+(le_S_n i j H) in H_y))))) (\lambda (_: F).(\lambda (i: nat).(\lambda (j: 
+nat).(\lambda (H: (le (S i) j)).H)))) k).
 
 theorem r_arith3:
  \forall (k: K).(\forall (i: nat).(\forall (j: nat).((le (s k j) (S i)) \to 
 (le j (r k i)))))
 \def
- \lambda (k: K).(let TMP_2 \def (\lambda (k0: K).(\forall (i: nat).(\forall 
-(j: nat).((le (s k0 j) (S i)) \to (let TMP_1 \def (r k0 i) in (le j 
-TMP_1)))))) in (let TMP_3 \def (\lambda (_: B).(\lambda (i: nat).(\lambda (j: 
-nat).(\lambda (H: (le (S j) (S i))).(let H_y \def (le_S_n j i H) in H_y))))) 
-in (let TMP_4 \def (\lambda (_: F).(\lambda (i: nat).(\lambda (j: 
-nat).(\lambda (H: (le j (S i))).H)))) in (K_ind TMP_2 TMP_3 TMP_4 k)))).
+ \lambda (k: K).(K_ind (\lambda (k0: K).(\forall (i: nat).(\forall (j: 
+nat).((le (s k0 j) (S i)) \to (le j (r k0 i)))))) (\lambda (_: B).(\lambda 
+(i: nat).(\lambda (j: nat).(\lambda (H: (le (S j) (S i))).(let H_y \def 
+(le_S_n j i H) in H_y))))) (\lambda (_: F).(\lambda (i: nat).(\lambda (j: 
+nat).(\lambda (H: (le j (S i))).H)))) k).
 
 theorem r_arith4:
  \forall (k: K).(\forall (i: nat).(\forall (j: nat).(eq nat (minus (S i) (s k 
 j)) (minus (r k i) j))))
 \def
- \lambda (k: K).(let TMP_6 \def (\lambda (k0: K).(\forall (i: nat).(\forall 
-(j: nat).(let TMP_1 \def (S i) in (let TMP_2 \def (s k0 j) in (let TMP_3 \def 
-(minus TMP_1 TMP_2) in (let TMP_4 \def (r k0 i) in (let TMP_5 \def (minus 
-TMP_4 j) in (eq nat TMP_3 TMP_5))))))))) in (let TMP_10 \def (\lambda (b: 
-B).(\lambda (i: nat).(\lambda (j: nat).(let TMP_7 \def (Bind b) in (let TMP_8 
-\def (r TMP_7 i) in (let TMP_9 \def (minus TMP_8 j) in (refl_equal nat 
-TMP_9))))))) in (let TMP_14 \def (\lambda (f: F).(\lambda (i: nat).(\lambda 
-(j: nat).(let TMP_11 \def (Flat f) in (let TMP_12 \def (r TMP_11 i) in (let 
-TMP_13 \def (minus TMP_12 j) in (refl_equal nat TMP_13))))))) in (K_ind TMP_6 
-TMP_10 TMP_14 k)))).
+ \lambda (k: K).(K_ind (\lambda (k0: K).(\forall (i: nat).(\forall (j: 
+nat).(eq nat (minus (S i) (s k0 j)) (minus (r k0 i) j))))) (\lambda (b: 
+B).(\lambda (i: nat).(\lambda (j: nat).(refl_equal nat (minus (r (Bind b) i) 
+j))))) (\lambda (f: F).(\lambda (i: nat).(\lambda (j: nat).(refl_equal nat 
+(minus (r (Flat f) i) j))))) k).
 
 theorem r_arith5:
  \forall (k: K).(\forall (i: nat).(\forall (j: nat).((lt (s k j) (S i)) \to 
 (lt j (r k i)))))
 \def
- \lambda (k: K).(let TMP_2 \def (\lambda (k0: K).(\forall (i: nat).(\forall 
-(j: nat).((lt (s k0 j) (S i)) \to (let TMP_1 \def (r k0 i) in (lt j 
-TMP_1)))))) in (let TMP_3 \def (\lambda (_: B).(\lambda (i: nat).(\lambda (j: 
-nat).(\lambda (H: (lt (S j) (S i))).(lt_S_n j i H))))) in (let TMP_4 \def 
+ \lambda (k: K).(K_ind (\lambda (k0: K).(\forall (i: nat).(\forall (j: 
+nat).((lt (s k0 j) (S i)) \to (lt j (r k0 i)))))) (\lambda (_: B).(\lambda 
+(i: nat).(\lambda (j: nat).(\lambda (H: (lt (S j) (S i))).(lt_S_n j i H))))) 
 (\lambda (_: F).(\lambda (i: nat).(\lambda (j: nat).(\lambda (H: (lt j (S 
-i))).H)))) in (K_ind TMP_2 TMP_3 TMP_4 k)))).
+i))).H)))) k).
 
 theorem r_arith6:
  \forall (k: K).(\forall (i: nat).(\forall (j: nat).(eq nat (minus (r k i) (S 
 j)) (minus i (s k j)))))
 \def
- \lambda (k: K).(let TMP_6 \def (\lambda (k0: K).(\forall (i: nat).(\forall 
-(j: nat).(let TMP_1 \def (r k0 i) in (let TMP_2 \def (S j) in (let TMP_3 \def 
-(minus TMP_1 TMP_2) in (let TMP_4 \def (s k0 j) in (let TMP_5 \def (minus i 
-TMP_4) in (eq nat TMP_3 TMP_5))))))))) in (let TMP_10 \def (\lambda (b: 
-B).(\lambda (i: nat).(\lambda (j: nat).(let TMP_7 \def (Bind b) in (let TMP_8 
-\def (s TMP_7 j) in (let TMP_9 \def (minus i TMP_8) in (refl_equal nat 
-TMP_9))))))) in (let TMP_14 \def (\lambda (f: F).(\lambda (i: nat).(\lambda 
-(j: nat).(let TMP_11 \def (Flat f) in (let TMP_12 \def (s TMP_11 j) in (let 
-TMP_13 \def (minus i TMP_12) in (refl_equal nat TMP_13))))))) in (K_ind TMP_6 
-TMP_10 TMP_14 k)))).
+ \lambda (k: K).(K_ind (\lambda (k0: K).(\forall (i: nat).(\forall (j: 
+nat).(eq nat (minus (r k0 i) (S j)) (minus i (s k0 j)))))) (\lambda (b: 
+B).(\lambda (i: nat).(\lambda (j: nat).(refl_equal nat (minus i (s (Bind b) 
+j)))))) (\lambda (f: F).(\lambda (i: nat).(\lambda (j: nat).(refl_equal nat 
+(minus i (s (Flat f) j)))))) k).
 
 theorem r_arith7:
  \forall (k: K).(\forall (i: nat).(\forall (j: nat).((eq nat (S i) (s k j)) 
 \to (eq nat (r k i) j))))
 \def
- \lambda (k: K).(let TMP_2 \def (\lambda (k0: K).(\forall (i: nat).(\forall 
-(j: nat).((eq nat (S i) (s k0 j)) \to (let TMP_1 \def (r k0 i) in (eq nat 
-TMP_1 j)))))) in (let TMP_3 \def (\lambda (_: B).(\lambda (i: nat).(\lambda 
-(j: nat).(\lambda (H: (eq nat (S i) (S j))).(eq_add_S i j H))))) in (let 
-TMP_4 \def (\lambda (_: F).(\lambda (i: nat).(\lambda (j: nat).(\lambda (H: 
-(eq nat (S i) j)).H)))) in (K_ind TMP_2 TMP_3 TMP_4 k)))).
+ \lambda (k: K).(K_ind (\lambda (k0: K).(\forall (i: nat).(\forall (j: 
+nat).((eq nat (S i) (s k0 j)) \to (eq nat (r k0 i) j))))) (\lambda (_: 
+B).(\lambda (i: nat).(\lambda (j: nat).(\lambda (H: (eq nat (S i) (S 
+j))).(eq_add_S i j H))))) (\lambda (_: F).(\lambda (i: nat).(\lambda (j: 
+nat).(\lambda (H: (eq nat (S i) j)).H)))) k).
 
index c9ab5dbfcf8be0d317f611038dbbea19fd7bf95b..48a34e79b3a34c5469f80330780bbe21c5695eae 100644 (file)
@@ -20,32 +20,29 @@ theorem s_inj:
  \forall (k: K).(\forall (i: nat).(\forall (j: nat).((eq nat (s k i) (s k j)) 
 \to (eq nat i j))))
 \def
- \lambda (k: K).(let TMP_1 \def (\lambda (k0: K).(\forall (i: nat).(\forall 
-(j: nat).((eq nat (s k0 i) (s k0 j)) \to (eq nat i j))))) in (let TMP_2 \def 
-(\lambda (b: B).(\lambda (i: nat).(\lambda (j: nat).(\lambda (H: (eq nat (s 
-(Bind b) i) (s (Bind b) j))).(eq_add_S i j H))))) in (let TMP_3 \def (\lambda 
-(f: F).(\lambda (i: nat).(\lambda (j: nat).(\lambda (H: (eq nat (s (Flat f) 
-i) (s (Flat f) j))).H)))) in (K_ind TMP_1 TMP_2 TMP_3 k)))).
+ \lambda (k: K).(K_ind (\lambda (k0: K).(\forall (i: nat).(\forall (j: 
+nat).((eq nat (s k0 i) (s k0 j)) \to (eq nat i j))))) (\lambda (b: 
+B).(\lambda (i: nat).(\lambda (j: nat).(\lambda (H: (eq nat (s (Bind b) i) (s 
+(Bind b) j))).(eq_add_S i j H))))) (\lambda (f: F).(\lambda (i: nat).(\lambda 
+(j: nat).(\lambda (H: (eq nat (s (Flat f) i) (s (Flat f) j))).H)))) k).
 
 theorem s_le_gen:
  \forall (k: K).(\forall (i: nat).(\forall (j: nat).((le (s k i) (s k j)) \to 
 (le i j))))
 \def
- \lambda (k: K).(let TMP_1 \def (\lambda (k0: K).(\forall (i: nat).(\forall 
-(j: nat).((le (s k0 i) (s k0 j)) \to (le i j))))) in (let TMP_2 \def (\lambda 
-(b: B).(\lambda (i: nat).(\lambda (j: nat).(\lambda (H: (le (s (Bind b) i) (s 
-(Bind b) j))).(le_S_n i j H))))) in (let TMP_3 \def (\lambda (f: F).(\lambda 
-(i: nat).(\lambda (j: nat).(\lambda (H: (le (s (Flat f) i) (s (Flat f) 
-j))).H)))) in (K_ind TMP_1 TMP_2 TMP_3 k)))).
+ \lambda (k: K).(K_ind (\lambda (k0: K).(\forall (i: nat).(\forall (j: 
+nat).((le (s k0 i) (s k0 j)) \to (le i j))))) (\lambda (b: B).(\lambda (i: 
+nat).(\lambda (j: nat).(\lambda (H: (le (s (Bind b) i) (s (Bind b) 
+j))).(le_S_n i j H))))) (\lambda (f: F).(\lambda (i: nat).(\lambda (j: 
+nat).(\lambda (H: (le (s (Flat f) i) (s (Flat f) j))).H)))) k).
 
 theorem s_lt_gen:
  \forall (k: K).(\forall (i: nat).(\forall (j: nat).((lt (s k i) (s k j)) \to 
 (lt i j))))
 \def
- \lambda (k: K).(let TMP_1 \def (\lambda (k0: K).(\forall (i: nat).(\forall 
-(j: nat).((lt (s k0 i) (s k0 j)) \to (lt i j))))) in (let TMP_3 \def (\lambda 
-(b: B).(\lambda (i: nat).(\lambda (j: nat).(\lambda (H: (lt (s (Bind b) i) (s 
-(Bind b) j))).(let TMP_2 \def (S i) in (le_S_n TMP_2 j H)))))) in (let TMP_4 
-\def (\lambda (f: F).(\lambda (i: nat).(\lambda (j: nat).(\lambda (H: (lt (s 
-(Flat f) i) (s (Flat f) j))).H)))) in (K_ind TMP_1 TMP_3 TMP_4 k)))).
+ \lambda (k: K).(K_ind (\lambda (k0: K).(\forall (i: nat).(\forall (j: 
+nat).((lt (s k0 i) (s k0 j)) \to (lt i j))))) (\lambda (b: B).(\lambda (i: 
+nat).(\lambda (j: nat).(\lambda (H: (lt (s (Bind b) i) (s (Bind b) 
+j))).(le_S_n (S i) j H))))) (\lambda (f: F).(\lambda (i: nat).(\lambda (j: 
+nat).(\lambda (H: (lt (s (Flat f) i) (s (Flat f) j))).H)))) k).
 
index 5727eee556048d5baf3e2470dfcd1961d0596357..82d7c11fa459b726680b03d65385339e7e224458 100644 (file)
@@ -19,138 +19,91 @@ include "basic_1/s/defs.ma".
 theorem s_S:
  \forall (k: K).(\forall (i: nat).(eq nat (s k (S i)) (S (s k i))))
 \def
- \lambda (k: K).(let TMP_5 \def (\lambda (k0: K).(\forall (i: nat).(let TMP_1 
-\def (S i) in (let TMP_2 \def (s k0 TMP_1) in (let TMP_3 \def (s k0 i) in 
-(let TMP_4 \def (S TMP_3) in (eq nat TMP_2 TMP_4))))))) in (let TMP_9 \def 
-(\lambda (b: B).(\lambda (i: nat).(let TMP_6 \def (Bind b) in (let TMP_7 \def 
-(s TMP_6 i) in (let TMP_8 \def (S TMP_7) in (refl_equal nat TMP_8)))))) in 
-(let TMP_13 \def (\lambda (f: F).(\lambda (i: nat).(let TMP_10 \def (Flat f) 
-in (let TMP_11 \def (s TMP_10 i) in (let TMP_12 \def (S TMP_11) in 
-(refl_equal nat TMP_12)))))) in (K_ind TMP_5 TMP_9 TMP_13 k)))).
+ \lambda (k: K).(K_ind (\lambda (k0: K).(\forall (i: nat).(eq nat (s k0 (S 
+i)) (S (s k0 i))))) (\lambda (b: B).(\lambda (i: nat).(refl_equal nat (S (s 
+(Bind b) i))))) (\lambda (f: F).(\lambda (i: nat).(refl_equal nat (S (s (Flat 
+f) i))))) k).
 
 theorem s_plus:
  \forall (k: K).(\forall (i: nat).(\forall (j: nat).(eq nat (s k (plus i j)) 
 (plus (s k i) j))))
 \def
- \lambda (k: K).(let TMP_5 \def (\lambda (k0: K).(\forall (i: nat).(\forall 
-(j: nat).(let TMP_1 \def (plus i j) in (let TMP_2 \def (s k0 TMP_1) in (let 
-TMP_3 \def (s k0 i) in (let TMP_4 \def (plus TMP_3 j) in (eq nat TMP_2 
-TMP_4)))))))) in (let TMP_9 \def (\lambda (b: B).(\lambda (i: nat).(\lambda 
-(j: nat).(let TMP_6 \def (Bind b) in (let TMP_7 \def (s TMP_6 i) in (let 
-TMP_8 \def (plus TMP_7 j) in (refl_equal nat TMP_8))))))) in (let TMP_13 \def 
-(\lambda (f: F).(\lambda (i: nat).(\lambda (j: nat).(let TMP_10 \def (Flat f) 
-in (let TMP_11 \def (s TMP_10 i) in (let TMP_12 \def (plus TMP_11 j) in 
-(refl_equal nat TMP_12))))))) in (K_ind TMP_5 TMP_9 TMP_13 k)))).
+ \lambda (k: K).(K_ind (\lambda (k0: K).(\forall (i: nat).(\forall (j: 
+nat).(eq nat (s k0 (plus i j)) (plus (s k0 i) j))))) (\lambda (b: B).(\lambda 
+(i: nat).(\lambda (j: nat).(refl_equal nat (plus (s (Bind b) i) j))))) 
+(\lambda (f: F).(\lambda (i: nat).(\lambda (j: nat).(refl_equal nat (plus (s 
+(Flat f) i) j))))) k).
 
 theorem s_plus_sym:
  \forall (k: K).(\forall (i: nat).(\forall (j: nat).(eq nat (s k (plus i j)) 
 (plus i (s k j)))))
 \def
- \lambda (k: K).(let TMP_5 \def (\lambda (k0: K).(\forall (i: nat).(\forall 
-(j: nat).(let TMP_1 \def (plus i j) in (let TMP_2 \def (s k0 TMP_1) in (let 
-TMP_3 \def (s k0 j) in (let TMP_4 \def (plus i TMP_3) in (eq nat TMP_2 
-TMP_4)))))))) in (let TMP_17 \def (\lambda (_: B).(\lambda (i: nat).(\lambda 
-(j: nat).(let TMP_6 \def (S j) in (let TMP_7 \def (plus i TMP_6) in (let 
-TMP_10 \def (\lambda (n: nat).(let TMP_8 \def (S j) in (let TMP_9 \def (plus 
-i TMP_8) in (eq nat n TMP_9)))) in (let TMP_11 \def (S j) in (let TMP_12 \def 
-(plus i TMP_11) in (let TMP_13 \def (refl_equal nat TMP_12) in (let TMP_14 
-\def (plus i j) in (let TMP_15 \def (S TMP_14) in (let TMP_16 \def (plus_n_Sm 
-i j) in (eq_ind_r nat TMP_7 TMP_10 TMP_13 TMP_15 TMP_16))))))))))))) in (let 
-TMP_21 \def (\lambda (f: F).(\lambda (i: nat).(\lambda (j: nat).(let TMP_18 
-\def (Flat f) in (let TMP_19 \def (s TMP_18 j) in (let TMP_20 \def (plus i 
-TMP_19) in (refl_equal nat TMP_20))))))) in (K_ind TMP_5 TMP_17 TMP_21 k)))).
+ \lambda (k: K).(K_ind (\lambda (k0: K).(\forall (i: nat).(\forall (j: 
+nat).(eq nat (s k0 (plus i j)) (plus i (s k0 j)))))) (\lambda (_: B).(\lambda 
+(i: nat).(\lambda (j: nat).(eq_ind_r nat (plus i (S j)) (\lambda (n: nat).(eq 
+nat n (plus i (S j)))) (refl_equal nat (plus i (S j))) (S (plus i j)) 
+(plus_n_Sm i j))))) (\lambda (f: F).(\lambda (i: nat).(\lambda (j: 
+nat).(refl_equal nat (plus i (s (Flat f) j)))))) k).
 
 theorem s_minus:
  \forall (k: K).(\forall (i: nat).(\forall (j: nat).((le j i) \to (eq nat (s 
 k (minus i j)) (minus (s k i) j)))))
 \def
- \lambda (k: K).(let TMP_5 \def (\lambda (k0: K).(\forall (i: nat).(\forall 
-(j: nat).((le j i) \to (let TMP_1 \def (minus i j) in (let TMP_2 \def (s k0 
-TMP_1) in (let TMP_3 \def (s k0 i) in (let TMP_4 \def (minus TMP_3 j) in (eq 
-nat TMP_2 TMP_4))))))))) in (let TMP_17 \def (\lambda (_: B).(\lambda (i: 
-nat).(\lambda (j: nat).(\lambda (H: (le j i)).(let TMP_6 \def (S i) in (let 
-TMP_7 \def (minus TMP_6 j) in (let TMP_10 \def (\lambda (n: nat).(let TMP_8 
-\def (S i) in (let TMP_9 \def (minus TMP_8 j) in (eq nat n TMP_9)))) in (let 
-TMP_11 \def (S i) in (let TMP_12 \def (minus TMP_11 j) in (let TMP_13 \def 
-(refl_equal nat TMP_12) in (let TMP_14 \def (minus i j) in (let TMP_15 \def 
-(S TMP_14) in (let TMP_16 \def (minus_Sn_m i j H) in (eq_ind_r nat TMP_7 
-TMP_10 TMP_13 TMP_15 TMP_16)))))))))))))) in (let TMP_21 \def (\lambda (f: 
-F).(\lambda (i: nat).(\lambda (j: nat).(\lambda (_: (le j i)).(let TMP_18 
-\def (Flat f) in (let TMP_19 \def (s TMP_18 i) in (let TMP_20 \def (minus 
-TMP_19 j) in (refl_equal nat TMP_20)))))))) in (K_ind TMP_5 TMP_17 TMP_21 
-k)))).
+ \lambda (k: K).(K_ind (\lambda (k0: K).(\forall (i: nat).(\forall (j: 
+nat).((le j i) \to (eq nat (s k0 (minus i j)) (minus (s k0 i) j)))))) 
+(\lambda (_: B).(\lambda (i: nat).(\lambda (j: nat).(\lambda (H: (le j 
+i)).(eq_ind_r nat (minus (S i) j) (\lambda (n: nat).(eq nat n (minus (S i) 
+j))) (refl_equal nat (minus (S i) j)) (S (minus i j)) (minus_Sn_m i j H)))))) 
+(\lambda (f: F).(\lambda (i: nat).(\lambda (j: nat).(\lambda (_: (le j 
+i)).(refl_equal nat (minus (s (Flat f) i) j)))))) k).
 
 theorem minus_s_s:
  \forall (k: K).(\forall (i: nat).(\forall (j: nat).(eq nat (minus (s k i) (s 
 k j)) (minus i j))))
 \def
- \lambda (k: K).(let TMP_5 \def (\lambda (k0: K).(\forall (i: nat).(\forall 
-(j: nat).(let TMP_1 \def (s k0 i) in (let TMP_2 \def (s k0 j) in (let TMP_3 
-\def (minus TMP_1 TMP_2) in (let TMP_4 \def (minus i j) in (eq nat TMP_3 
-TMP_4)))))))) in (let TMP_7 \def (\lambda (_: B).(\lambda (i: nat).(\lambda 
-(j: nat).(let TMP_6 \def (minus i j) in (refl_equal nat TMP_6))))) in (let 
-TMP_9 \def (\lambda (_: F).(\lambda (i: nat).(\lambda (j: nat).(let TMP_8 
-\def (minus i j) in (refl_equal nat TMP_8))))) in (K_ind TMP_5 TMP_7 TMP_9 
-k)))).
+ \lambda (k: K).(K_ind (\lambda (k0: K).(\forall (i: nat).(\forall (j: 
+nat).(eq nat (minus (s k0 i) (s k0 j)) (minus i j))))) (\lambda (_: 
+B).(\lambda (i: nat).(\lambda (j: nat).(refl_equal nat (minus i j))))) 
+(\lambda (_: F).(\lambda (i: nat).(\lambda (j: nat).(refl_equal nat (minus i 
+j))))) k).
 
 theorem s_le:
  \forall (k: K).(\forall (i: nat).(\forall (j: nat).((le i j) \to (le (s k i) 
 (s k j)))))
 \def
- \lambda (k: K).(let TMP_3 \def (\lambda (k0: K).(\forall (i: nat).(\forall 
-(j: nat).((le i j) \to (let TMP_1 \def (s k0 i) in (let TMP_2 \def (s k0 j) 
-in (le TMP_1 TMP_2))))))) in (let TMP_4 \def (\lambda (_: B).(\lambda (i: 
-nat).(\lambda (j: nat).(\lambda (H: (le i j)).(le_n_S i j H))))) in (let 
-TMP_5 \def (\lambda (_: F).(\lambda (i: nat).(\lambda (j: nat).(\lambda (H: 
-(le i j)).H)))) in (K_ind TMP_3 TMP_4 TMP_5 k)))).
+ \lambda (k: K).(K_ind (\lambda (k0: K).(\forall (i: nat).(\forall (j: 
+nat).((le i j) \to (le (s k0 i) (s k0 j)))))) (\lambda (_: B).(\lambda (i: 
+nat).(\lambda (j: nat).(\lambda (H: (le i j)).(le_n_S i j H))))) (\lambda (_: 
+F).(\lambda (i: nat).(\lambda (j: nat).(\lambda (H: (le i j)).H)))) k).
 
 theorem s_lt:
  \forall (k: K).(\forall (i: nat).(\forall (j: nat).((lt i j) \to (lt (s k i) 
 (s k j)))))
 \def
- \lambda (k: K).(let TMP_3 \def (\lambda (k0: K).(\forall (i: nat).(\forall 
-(j: nat).((lt i j) \to (let TMP_1 \def (s k0 i) in (let TMP_2 \def (s k0 j) 
-in (lt TMP_1 TMP_2))))))) in (let TMP_4 \def (\lambda (_: B).(\lambda (i: 
-nat).(\lambda (j: nat).(\lambda (H: (lt i j)).(lt_n_S i j H))))) in (let 
-TMP_5 \def (\lambda (_: F).(\lambda (i: nat).(\lambda (j: nat).(\lambda (H: 
-(lt i j)).H)))) in (K_ind TMP_3 TMP_4 TMP_5 k)))).
+ \lambda (k: K).(K_ind (\lambda (k0: K).(\forall (i: nat).(\forall (j: 
+nat).((lt i j) \to (lt (s k0 i) (s k0 j)))))) (\lambda (_: B).(\lambda (i: 
+nat).(\lambda (j: nat).(\lambda (H: (lt i j)).(lt_n_S i j H))))) (\lambda (_: 
+F).(\lambda (i: nat).(\lambda (j: nat).(\lambda (H: (lt i j)).H)))) k).
 
 theorem s_inc:
  \forall (k: K).(\forall (i: nat).(le i (s k i)))
 \def
- \lambda (k: K).(let TMP_2 \def (\lambda (k0: K).(\forall (i: nat).(let TMP_1 
-\def (s k0 i) in (le i TMP_1)))) in (let TMP_30 \def (\lambda (b: B).(\lambda 
-(i: nat).(let TMP_3 \def (Bind b) in (let TMP_4 \def (s TMP_3 i) in (let 
-TMP_5 \def (S i) in (let TMP_6 \def (Bind b) in (let TMP_7 \def (s TMP_6 i) 
-in (let TMP_8 \def (S TMP_7) in (let TMP_9 \def (S i) in (let TMP_10 \def (S 
-TMP_9) in (let TMP_11 \def (Bind b) in (let TMP_12 \def (s TMP_11 i) in (let 
-TMP_13 \def (S TMP_12) in (let TMP_14 \def (S TMP_13) in (let TMP_15 \def (S 
-i) in (let TMP_16 \def (S TMP_15) in (let TMP_17 \def (S TMP_16) in (let 
-TMP_18 \def (Bind b) in (let TMP_19 \def (s TMP_18 i) in (let TMP_20 \def (S 
-TMP_19) in (let TMP_21 \def (S TMP_20) in (let TMP_22 \def (Bind b) in (let 
-TMP_23 \def (s TMP_22 i) in (let TMP_24 \def (S TMP_23) in (let TMP_25 \def 
-(S TMP_24) in (let TMP_26 \def (le_n TMP_25) in (let TMP_27 \def (le_S TMP_17 
-TMP_21 TMP_26) in (let TMP_28 \def (le_S_n TMP_10 TMP_14 TMP_27) in (let 
-TMP_29 \def (le_S_n TMP_5 TMP_8 TMP_28) in (le_S_n i TMP_4 
-TMP_29)))))))))))))))))))))))))))))) in (let TMP_33 \def (\lambda (f: 
-F).(\lambda (i: nat).(let TMP_31 \def (Flat f) in (let TMP_32 \def (s TMP_31 
-i) in (le_n TMP_32))))) in (K_ind TMP_2 TMP_30 TMP_33 k)))).
+ \lambda (k: K).(K_ind (\lambda (k0: K).(\forall (i: nat).(le i (s k0 i)))) 
+(\lambda (b: B).(\lambda (i: nat).(le_S_n i (s (Bind b) i) (le_S_n (S i) (S 
+(s (Bind b) i)) (le_S_n (S (S i)) (S (S (s (Bind b) i))) (le_S (S (S (S i))) 
+(S (S (s (Bind b) i))) (le_n (S (S (s (Bind b) i)))))))))) (\lambda (f: 
+F).(\lambda (i: nat).(le_n (s (Flat f) i)))) k).
 
 theorem s_arith0:
  \forall (k: K).(\forall (i: nat).(eq nat (minus (s k i) (s k O)) i))
 \def
- \lambda (k: K).(\lambda (i: nat).(let TMP_1 \def (minus i O) in (let TMP_2 
-\def (\lambda (n: nat).(eq nat n i)) in (let TMP_3 \def (\lambda (n: nat).(eq 
-nat n i)) in (let TMP_4 \def (refl_equal nat i) in (let TMP_5 \def (minus i 
-O) in (let TMP_6 \def (minus_n_O i) in (let TMP_7 \def (eq_ind nat i TMP_3 
-TMP_4 TMP_5 TMP_6) in (let TMP_8 \def (s k i) in (let TMP_9 \def (s k O) in 
-(let TMP_10 \def (minus TMP_8 TMP_9) in (let TMP_11 \def (minus_s_s k i O) in 
-(eq_ind_r nat TMP_1 TMP_2 TMP_7 TMP_10 TMP_11))))))))))))).
+ \lambda (k: K).(\lambda (i: nat).(eq_ind_r nat (minus i O) (\lambda (n: 
+nat).(eq nat n i)) (eq_ind nat i (\lambda (n: nat).(eq nat n i)) (refl_equal 
+nat i) (minus i O) (minus_n_O i)) (minus (s k i) (s k O)) (minus_s_s k i O))).
 
 theorem s_arith1:
  \forall (b: B).(\forall (i: nat).(eq nat (minus (s (Bind b) i) (S O)) i))
 \def
- \lambda (_: B).(\lambda (i: nat).(let TMP_1 \def (\lambda (n: nat).(eq nat n 
-i)) in (let TMP_2 \def (refl_equal nat i) in (let TMP_3 \def (minus i O) in 
-(let TMP_4 \def (minus_n_O i) in (eq_ind nat i TMP_1 TMP_2 TMP_3 TMP_4)))))).
+ \lambda (_: B).(\lambda (i: nat).(eq_ind nat i (\lambda (n: nat).(eq nat n 
+i)) (refl_equal nat i) (minus i O) (minus_n_O i))).
 
index bf6d36485dccbbc4476674e7906691fc13d9c919..eb08a1c7fa230938f1b1268c22106fd3b81aaeb7 100644 (file)
@@ -28,524 +28,286 @@ t a) \to (\forall (d1: C).(\forall (is: PList).((drop1 is d1 c1) \to (\forall
 (c2: C).((csubc g d1 c2) \to (sc3 g a c2 (lift1 is t)))))))))))
 \def
  \lambda (g: G).(\lambda (c1: C).(\lambda (t: T).(\lambda (a: A).(\lambda (H: 
-(arity g c1 t a)).(let TMP_2 \def (\lambda (c: C).(\lambda (t0: T).(\lambda 
-(a0: A).(\forall (d1: C).(\forall (is: PList).((drop1 is d1 c) \to (\forall 
-(c2: C).((csubc g d1 c2) \to (let TMP_1 \def (lift1 is t0) in (sc3 g a0 c2 
-TMP_1)))))))))) in (let TMP_21 \def (\lambda (c: C).(\lambda (n: 
-nat).(\lambda (d1: C).(\lambda (is: PList).(\lambda (_: (drop1 is d1 
-c)).(\lambda (c2: C).(\lambda (_: (csubc g d1 c2)).(let TMP_3 \def (TSort n) 
-in (let TMP_7 \def (\lambda (t0: T).(let TMP_4 \def (ASort O n) in (let TMP_5 
-\def (arity g c2 t0 TMP_4) in (let TMP_6 \def (sn3 c2 t0) in (land TMP_5 
-TMP_6))))) in (let TMP_8 \def (TSort n) in (let TMP_9 \def (ASort O n) in 
-(let TMP_10 \def (arity g c2 TMP_8 TMP_9) in (let TMP_11 \def (TSort n) in 
-(let TMP_12 \def (sn3 c2 TMP_11) in (let TMP_13 \def (arity_sort g c2 n) in 
-(let TMP_14 \def (TSort n) in (let TMP_15 \def (nf2_sort c2 n) in (let TMP_16 
-\def (sn3_nf2 c2 TMP_14 TMP_15) in (let TMP_17 \def (conj TMP_10 TMP_12 
-TMP_13 TMP_16) in (let TMP_18 \def (TSort n) in (let TMP_19 \def (lift1 is 
-TMP_18) in (let TMP_20 \def (lift1_sort n is) in (eq_ind_r T TMP_3 TMP_7 
-TMP_17 TMP_19 TMP_20))))))))))))))))))))))) in (let TMP_191 \def (\lambda (c: 
-C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: nat).(\lambda (H0: (getl i c 
-(CHead d (Bind Abbr) u))).(\lambda (a0: A).(\lambda (_: (arity g d u 
-a0)).(\lambda (H2: ((\forall (d1: C).(\forall (is: PList).((drop1 is d1 d) 
-\to (\forall (c2: C).((csubc g d1 c2) \to (sc3 g a0 c2 (lift1 is 
-u))))))))).(\lambda (d1: C).(\lambda (is: PList).(\lambda (H3: (drop1 is d1 
-c)).(\lambda (c2: C).(\lambda (H4: (csubc g d1 c2)).(let H_x \def 
-(drop1_getl_trans is c d1 H3 Abbr d u i H0) in (let H5 \def H_x in (let 
-TMP_23 \def (\lambda (e2: C).(let TMP_22 \def (ptrans is i) in (drop1 TMP_22 
-e2 d))) in (let TMP_29 \def (\lambda (e2: C).(let TMP_24 \def (trans is i) in 
-(let TMP_25 \def (Bind Abbr) in (let TMP_26 \def (ptrans is i) in (let TMP_27 
-\def (lift1 TMP_26 u) in (let TMP_28 \def (CHead e2 TMP_25 TMP_27) in (getl 
-TMP_24 d1 TMP_28))))))) in (let TMP_30 \def (TLRef i) in (let TMP_31 \def 
-(lift1 is TMP_30) in (let TMP_32 \def (sc3 g a0 c2 TMP_31) in (let TMP_190 
-\def (\lambda (x: C).(\lambda (_: (drop1 (ptrans is i) x d)).(\lambda (H7: 
-(getl (trans is i) d1 (CHead x (Bind Abbr) (lift1 (ptrans is i) u)))).(let 
-TMP_33 \def (Bind Abbr) in (let TMP_34 \def (ptrans is i) in (let TMP_35 \def 
-(lift1 TMP_34 u) in (let TMP_36 \def (CHead x TMP_33 TMP_35) in (let TMP_37 
-\def (trans is i) in (let H_x0 \def (csubc_getl_conf g d1 TMP_36 TMP_37 H7 c2 
-H4) in (let H8 \def H_x0 in (let TMP_39 \def (\lambda (e2: C).(let TMP_38 
-\def (trans is i) in (getl TMP_38 c2 e2))) in (let TMP_44 \def (\lambda (e2: 
-C).(let TMP_40 \def (Bind Abbr) in (let TMP_41 \def (ptrans is i) in (let 
-TMP_42 \def (lift1 TMP_41 u) in (let TMP_43 \def (CHead x TMP_40 TMP_42) in 
-(csubc g TMP_43 e2)))))) in (let TMP_45 \def (TLRef i) in (let TMP_46 \def 
-(lift1 is TMP_45) in (let TMP_47 \def (sc3 g a0 c2 TMP_46) in (let TMP_189 
-\def (\lambda (x0: C).(\lambda (H9: (getl (trans is i) c2 x0)).(\lambda (H10: 
-(csubc g (CHead x (Bind Abbr) (lift1 (ptrans is i) u)) x0)).(let TMP_48 \def 
-(ptrans is i) in (let TMP_49 \def (lift1 TMP_48 u) in (let TMP_50 \def (Bind 
-Abbr) in (let H_x1 \def (csubc_gen_head_l g x x0 TMP_49 TMP_50 H10) in (let 
-H11 \def H_x1 in (let TMP_55 \def (\lambda (c3: C).(let TMP_51 \def (Bind 
-Abbr) in (let TMP_52 \def (ptrans is i) in (let TMP_53 \def (lift1 TMP_52 u) 
-in (let TMP_54 \def (CHead c3 TMP_51 TMP_53) in (eq C x0 TMP_54)))))) in (let 
-TMP_56 \def (\lambda (c3: C).(csubc g x c3)) in (let TMP_57 \def (ex2 C 
-TMP_55 TMP_56) in (let TMP_60 \def (\lambda (_: C).(\lambda (_: T).(\lambda 
-(_: A).(let TMP_58 \def (Bind Abbr) in (let TMP_59 \def (Bind Abst) in (eq K 
-TMP_58 TMP_59)))))) in (let TMP_63 \def (\lambda (c3: C).(\lambda (w: 
-T).(\lambda (_: A).(let TMP_61 \def (Bind Abbr) in (let TMP_62 \def (CHead c3 
-TMP_61 w) in (eq C x0 TMP_62)))))) in (let TMP_64 \def (\lambda (c3: 
-C).(\lambda (_: T).(\lambda (_: A).(csubc g x c3)))) in (let TMP_68 \def 
-(\lambda (_: C).(\lambda (_: T).(\lambda (a1: A).(let TMP_65 \def (asucc g 
-a1) in (let TMP_66 \def (ptrans is i) in (let TMP_67 \def (lift1 TMP_66 u) in 
-(sc3 g TMP_65 x TMP_67))))))) in (let TMP_69 \def (\lambda (c3: C).(\lambda 
-(w: T).(\lambda (a1: A).(sc3 g a1 c3 w)))) in (let TMP_70 \def (ex5_3 C T A 
-TMP_60 TMP_63 TMP_64 TMP_68 TMP_69) in (let TMP_73 \def (\lambda (b: 
-B).(\lambda (c3: C).(\lambda (v2: T).(let TMP_71 \def (Bind b) in (let TMP_72 
-\def (CHead c3 TMP_71 v2) in (eq C x0 TMP_72)))))) in (let TMP_76 \def 
-(\lambda (_: B).(\lambda (_: C).(\lambda (_: T).(let TMP_74 \def (Bind Abbr) 
-in (let TMP_75 \def (Bind Void) in (eq K TMP_74 TMP_75)))))) in (let TMP_78 
-\def (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(let TMP_77 \def (eq B b 
-Void) in (not TMP_77))))) in (let TMP_79 \def (\lambda (_: B).(\lambda (c3: 
-C).(\lambda (_: T).(csubc g x c3)))) in (let TMP_80 \def (ex4_3 B C T TMP_73 
-TMP_76 TMP_78 TMP_79) in (let TMP_81 \def (TLRef i) in (let TMP_82 \def 
-(lift1 is TMP_81) in (let TMP_83 \def (sc3 g a0 c2 TMP_82) in (let TMP_137 
-\def (\lambda (H12: (ex2 C (\lambda (c3: C).(eq C x0 (CHead c3 (Bind Abbr) 
-(lift1 (ptrans is i) u)))) (\lambda (c3: C).(csubc g x c3)))).(let TMP_88 
-\def (\lambda (c3: C).(let TMP_84 \def (Bind Abbr) in (let TMP_85 \def 
-(ptrans is i) in (let TMP_86 \def (lift1 TMP_85 u) in (let TMP_87 \def (CHead 
-c3 TMP_84 TMP_86) in (eq C x0 TMP_87)))))) in (let TMP_89 \def (\lambda (c3: 
-C).(csubc g x c3)) in (let TMP_90 \def (TLRef i) in (let TMP_91 \def (lift1 
-is TMP_90) in (let TMP_92 \def (sc3 g a0 c2 TMP_91) in (let TMP_136 \def 
-(\lambda (x1: C).(\lambda (H13: (eq C x0 (CHead x1 (Bind Abbr) (lift1 (ptrans 
-is i) u)))).(\lambda (_: (csubc g x x1)).(let TMP_94 \def (\lambda (c0: 
-C).(let TMP_93 \def (trans is i) in (getl TMP_93 c2 c0))) in (let TMP_95 \def 
-(Bind Abbr) in (let TMP_96 \def (ptrans is i) in (let TMP_97 \def (lift1 
-TMP_96 u) in (let TMP_98 \def (CHead x1 TMP_95 TMP_97) in (let H15 \def 
-(eq_ind C x0 TMP_94 H9 TMP_98 H13) in (let H_y \def (sc3_abbr g a0 TNil) in 
-(let TMP_99 \def (trans is i) in (let TMP_100 \def (TLRef TMP_99) in (let 
-TMP_101 \def (\lambda (t0: T).(sc3 g a0 c2 t0)) in (let TMP_102 \def (trans 
-is i) in (let TMP_103 \def (ptrans is i) in (let TMP_104 \def (lift1 TMP_103 
-u) in (let TMP_105 \def (S i) in (let TMP_106 \def (lift TMP_105 O u) in (let 
-TMP_107 \def (lift1 is TMP_106) in (let TMP_108 \def (\lambda (t0: T).(sc3 g 
-a0 c2 t0)) in (let TMP_109 \def (S i) in (let TMP_110 \def (PConsTail is 
-TMP_109 O) in (let TMP_111 \def (lift1 TMP_110 u) in (let TMP_112 \def 
-(\lambda (t0: T).(sc3 g a0 c2 t0)) in (let TMP_113 \def (S i) in (let TMP_114 
-\def (PConsTail is TMP_113 O) in (let TMP_115 \def (S i) in (let TMP_116 \def 
-(getl_drop Abbr c d u i H0) in (let TMP_117 \def (drop1_cons_tail c d TMP_115 
-O TMP_116 is d1 H3) in (let TMP_118 \def (H2 d1 TMP_114 TMP_117 c2 H4) in 
-(let TMP_119 \def (S i) in (let TMP_120 \def (lift TMP_119 O u) in (let 
-TMP_121 \def (lift1 is TMP_120) in (let TMP_122 \def (S i) in (let TMP_123 
-\def (lift1_cons_tail u TMP_122 O is) in (let TMP_124 \def (eq_ind T TMP_111 
-TMP_112 TMP_118 TMP_121 TMP_123) in (let TMP_125 \def (trans is i) in (let 
-TMP_126 \def (S TMP_125) in (let TMP_127 \def (ptrans is i) in (let TMP_128 
-\def (lift1 TMP_127 u) in (let TMP_129 \def (lift TMP_126 O TMP_128) in (let 
-TMP_130 \def (lift1_free is i u) in (let TMP_131 \def (eq_ind T TMP_107 
-TMP_108 TMP_124 TMP_129 TMP_130) in (let TMP_132 \def (H_y TMP_102 x1 TMP_104 
-c2 TMP_131 H15) in (let TMP_133 \def (TLRef i) in (let TMP_134 \def (lift1 is 
-TMP_133) in (let TMP_135 \def (lift1_lref is i) in (eq_ind_r T TMP_100 
-TMP_101 TMP_132 TMP_134 
-TMP_135)))))))))))))))))))))))))))))))))))))))))))))))) in (ex2_ind C TMP_88 
-TMP_89 TMP_92 TMP_136 H12)))))))) in (let TMP_164 \def (\lambda (H12: (ex5_3 
-C T A (\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(eq K (Bind Abbr) (Bind 
-Abst))))) (\lambda (c3: C).(\lambda (w: T).(\lambda (_: A).(eq C x0 (CHead c3 
-(Bind Abbr) w))))) (\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g 
-x c3)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a1: A).(sc3 g (asucc g a1) 
-x (lift1 (ptrans is i) u))))) (\lambda (c3: C).(\lambda (w: T).(\lambda (a1: 
-A).(sc3 g a1 c3 w)))))).(let TMP_140 \def (\lambda (_: C).(\lambda (_: 
-T).(\lambda (_: A).(let TMP_138 \def (Bind Abbr) in (let TMP_139 \def (Bind 
-Abst) in (eq K TMP_138 TMP_139)))))) in (let TMP_143 \def (\lambda (c3: 
-C).(\lambda (w: T).(\lambda (_: A).(let TMP_141 \def (Bind Abbr) in (let 
-TMP_142 \def (CHead c3 TMP_141 w) in (eq C x0 TMP_142)))))) in (let TMP_144 
-\def (\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g x c3)))) in 
-(let TMP_148 \def (\lambda (_: C).(\lambda (_: T).(\lambda (a1: A).(let 
-TMP_145 \def (asucc g a1) in (let TMP_146 \def (ptrans is i) in (let TMP_147 
-\def (lift1 TMP_146 u) in (sc3 g TMP_145 x TMP_147))))))) in (let TMP_149 
-\def (\lambda (c3: C).(\lambda (w: T).(\lambda (a1: A).(sc3 g a1 c3 w)))) in 
-(let TMP_150 \def (TLRef i) in (let TMP_151 \def (lift1 is TMP_150) in (let 
-TMP_152 \def (sc3 g a0 c2 TMP_151) in (let TMP_163 \def (\lambda (x1: 
-C).(\lambda (x2: T).(\lambda (x3: A).(\lambda (H13: (eq K (Bind Abbr) (Bind 
-Abst))).(\lambda (H14: (eq C x0 (CHead x1 (Bind Abbr) x2))).(\lambda (_: 
-(csubc g x x1)).(\lambda (_: (sc3 g (asucc g x3) x (lift1 (ptrans is i) 
-u))).(\lambda (_: (sc3 g x3 x1 x2)).(let TMP_154 \def (\lambda (c0: C).(let 
-TMP_153 \def (trans is i) in (getl TMP_153 c2 c0))) in (let TMP_155 \def 
-(Bind Abbr) in (let TMP_156 \def (CHead x1 TMP_155 x2) in (let H18 \def 
-(eq_ind C x0 TMP_154 H9 TMP_156 H14) in (let TMP_157 \def (Bind Abbr) in (let 
-TMP_158 \def (\lambda (ee: K).(match ee with [(Bind b) \Rightarrow (match b 
-with [Abbr \Rightarrow True | Abst \Rightarrow False | Void \Rightarrow 
-False]) | (Flat _) \Rightarrow False])) in (let TMP_159 \def (Bind Abst) in 
-(let H19 \def (eq_ind K TMP_157 TMP_158 I TMP_159 H13) in (let TMP_160 \def 
-(TLRef i) in (let TMP_161 \def (lift1 is TMP_160) in (let TMP_162 \def (sc3 g 
-a0 c2 TMP_161) in (False_ind TMP_162 H19)))))))))))))))))))) in (ex5_3_ind C 
-T A TMP_140 TMP_143 TMP_144 TMP_148 TMP_149 TMP_152 TMP_163 H12))))))))))) in 
-(let TMP_188 \def (\lambda (H12: (ex4_3 B C T (\lambda (b: B).(\lambda (c3: 
-C).(\lambda (v2: T).(eq C x0 (CHead c3 (Bind b) v2))))) (\lambda (_: 
-B).(\lambda (_: C).(\lambda (_: T).(eq K (Bind Abbr) (Bind Void))))) (\lambda 
-(b: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_: 
-B).(\lambda (c3: C).(\lambda (_: T).(csubc g x c3)))))).(let TMP_167 \def 
-(\lambda (b: B).(\lambda (c3: C).(\lambda (v2: T).(let TMP_165 \def (Bind b) 
-in (let TMP_166 \def (CHead c3 TMP_165 v2) in (eq C x0 TMP_166)))))) in (let 
-TMP_170 \def (\lambda (_: B).(\lambda (_: C).(\lambda (_: T).(let TMP_168 
-\def (Bind Abbr) in (let TMP_169 \def (Bind Void) in (eq K TMP_168 
-TMP_169)))))) in (let TMP_172 \def (\lambda (b: B).(\lambda (_: C).(\lambda 
-(_: T).(let TMP_171 \def (eq B b Void) in (not TMP_171))))) in (let TMP_173 
-\def (\lambda (_: B).(\lambda (c3: C).(\lambda (_: T).(csubc g x c3)))) in 
-(let TMP_174 \def (TLRef i) in (let TMP_175 \def (lift1 is TMP_174) in (let 
-TMP_176 \def (sc3 g a0 c2 TMP_175) in (let TMP_187 \def (\lambda (x1: 
-B).(\lambda (x2: C).(\lambda (x3: T).(\lambda (H13: (eq C x0 (CHead x2 (Bind 
-x1) x3))).(\lambda (H14: (eq K (Bind Abbr) (Bind Void))).(\lambda (_: (not 
-(eq B x1 Void))).(\lambda (_: (csubc g x x2)).(let TMP_178 \def (\lambda (c0: 
-C).(let TMP_177 \def (trans is i) in (getl TMP_177 c2 c0))) in (let TMP_179 
-\def (Bind x1) in (let TMP_180 \def (CHead x2 TMP_179 x3) in (let H17 \def 
-(eq_ind C x0 TMP_178 H9 TMP_180 H13) in (let TMP_181 \def (Bind Abbr) in (let 
-TMP_182 \def (\lambda (ee: K).(match ee with [(Bind b) \Rightarrow (match b 
-with [Abbr \Rightarrow True | Abst \Rightarrow False | Void \Rightarrow 
-False]) | (Flat _) \Rightarrow False])) in (let TMP_183 \def (Bind Void) in 
-(let H18 \def (eq_ind K TMP_181 TMP_182 I TMP_183 H14) in (let TMP_184 \def 
-(TLRef i) in (let TMP_185 \def (lift1 is TMP_184) in (let TMP_186 \def (sc3 g 
-a0 c2 TMP_185) in (False_ind TMP_186 H18))))))))))))))))))) in (ex4_3_ind B C 
-T TMP_167 TMP_170 TMP_172 TMP_173 TMP_176 TMP_187 H12)))))))))) in (or3_ind 
-TMP_57 TMP_70 TMP_80 TMP_83 TMP_137 TMP_164 TMP_188 
-H11))))))))))))))))))))))))))))) in (ex2_ind C TMP_39 TMP_44 TMP_47 TMP_189 
-H8))))))))))))))))) in (ex2_ind C TMP_23 TMP_29 TMP_32 TMP_190 
-H5)))))))))))))))))))))) in (let TMP_371 \def (\lambda (c: C).(\lambda (d: 
-C).(\lambda (u: T).(\lambda (i: nat).(\lambda (H0: (getl i c (CHead d (Bind 
-Abst) u))).(\lambda (a0: A).(\lambda (H1: (arity g d u (asucc g 
-a0))).(\lambda (_: ((\forall (d1: C).(\forall (is: PList).((drop1 is d1 d) 
-\to (\forall (c2: C).((csubc g d1 c2) \to (sc3 g (asucc g a0) c2 (lift1 is 
-u))))))))).(\lambda (d1: C).(\lambda (is: PList).(\lambda (H3: (drop1 is d1 
-c)).(\lambda (c2: C).(\lambda (H4: (csubc g d1 c2)).(let H5 \def H0 in (let 
-H_x \def (drop1_getl_trans is c d1 H3 Abst d u i H5) in (let H6 \def H_x in 
-(let TMP_193 \def (\lambda (e2: C).(let TMP_192 \def (ptrans is i) in (drop1 
-TMP_192 e2 d))) in (let TMP_199 \def (\lambda (e2: C).(let TMP_194 \def 
-(trans is i) in (let TMP_195 \def (Bind Abst) in (let TMP_196 \def (ptrans is 
-i) in (let TMP_197 \def (lift1 TMP_196 u) in (let TMP_198 \def (CHead e2 
-TMP_195 TMP_197) in (getl TMP_194 d1 TMP_198))))))) in (let TMP_200 \def 
-(TLRef i) in (let TMP_201 \def (lift1 is TMP_200) in (let TMP_202 \def (sc3 g 
-a0 c2 TMP_201) in (let TMP_370 \def (\lambda (x: C).(\lambda (H7: (drop1 
-(ptrans is i) x d)).(\lambda (H8: (getl (trans is i) d1 (CHead x (Bind Abst) 
-(lift1 (ptrans is i) u)))).(let TMP_203 \def (Bind Abst) in (let TMP_204 \def 
-(ptrans is i) in (let TMP_205 \def (lift1 TMP_204 u) in (let TMP_206 \def 
-(CHead x TMP_203 TMP_205) in (let TMP_207 \def (trans is i) in (let H_x0 \def 
-(csubc_getl_conf g d1 TMP_206 TMP_207 H8 c2 H4) in (let H9 \def H_x0 in (let 
-TMP_209 \def (\lambda (e2: C).(let TMP_208 \def (trans is i) in (getl TMP_208 
-c2 e2))) in (let TMP_214 \def (\lambda (e2: C).(let TMP_210 \def (Bind Abst) 
-in (let TMP_211 \def (ptrans is i) in (let TMP_212 \def (lift1 TMP_211 u) in 
-(let TMP_213 \def (CHead x TMP_210 TMP_212) in (csubc g TMP_213 e2)))))) in 
-(let TMP_215 \def (TLRef i) in (let TMP_216 \def (lift1 is TMP_215) in (let 
-TMP_217 \def (sc3 g a0 c2 TMP_216) in (let TMP_369 \def (\lambda (x0: 
-C).(\lambda (H10: (getl (trans is i) c2 x0)).(\lambda (H11: (csubc g (CHead x 
-(Bind Abst) (lift1 (ptrans is i) u)) x0)).(let TMP_218 \def (ptrans is i) in 
-(let TMP_219 \def (lift1 TMP_218 u) in (let TMP_220 \def (Bind Abst) in (let 
-H_x1 \def (csubc_gen_head_l g x x0 TMP_219 TMP_220 H11) in (let H12 \def H_x1 
-in (let TMP_225 \def (\lambda (c3: C).(let TMP_221 \def (Bind Abst) in (let 
-TMP_222 \def (ptrans is i) in (let TMP_223 \def (lift1 TMP_222 u) in (let 
-TMP_224 \def (CHead c3 TMP_221 TMP_223) in (eq C x0 TMP_224)))))) in (let 
-TMP_226 \def (\lambda (c3: C).(csubc g x c3)) in (let TMP_227 \def (ex2 C 
-TMP_225 TMP_226) in (let TMP_230 \def (\lambda (_: C).(\lambda (_: 
-T).(\lambda (_: A).(let TMP_228 \def (Bind Abst) in (let TMP_229 \def (Bind 
-Abst) in (eq K TMP_228 TMP_229)))))) in (let TMP_233 \def (\lambda (c3: 
-C).(\lambda (w: T).(\lambda (_: A).(let TMP_231 \def (Bind Abbr) in (let 
-TMP_232 \def (CHead c3 TMP_231 w) in (eq C x0 TMP_232)))))) in (let TMP_234 
-\def (\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g x c3)))) in 
-(let TMP_238 \def (\lambda (_: C).(\lambda (_: T).(\lambda (a1: A).(let 
-TMP_235 \def (asucc g a1) in (let TMP_236 \def (ptrans is i) in (let TMP_237 
-\def (lift1 TMP_236 u) in (sc3 g TMP_235 x TMP_237))))))) in (let TMP_239 
-\def (\lambda (c3: C).(\lambda (w: T).(\lambda (a1: A).(sc3 g a1 c3 w)))) in 
-(let TMP_240 \def (ex5_3 C T A TMP_230 TMP_233 TMP_234 TMP_238 TMP_239) in 
-(let TMP_243 \def (\lambda (b: B).(\lambda (c3: C).(\lambda (v2: T).(let 
-TMP_241 \def (Bind b) in (let TMP_242 \def (CHead c3 TMP_241 v2) in (eq C x0 
-TMP_242)))))) in (let TMP_246 \def (\lambda (_: B).(\lambda (_: C).(\lambda 
-(_: T).(let TMP_244 \def (Bind Abst) in (let TMP_245 \def (Bind Void) in (eq 
-K TMP_244 TMP_245)))))) in (let TMP_248 \def (\lambda (b: B).(\lambda (_: 
-C).(\lambda (_: T).(let TMP_247 \def (eq B b Void) in (not TMP_247))))) in 
-(let TMP_249 \def (\lambda (_: B).(\lambda (c3: C).(\lambda (_: T).(csubc g x 
-c3)))) in (let TMP_250 \def (ex4_3 B C T TMP_243 TMP_246 TMP_248 TMP_249) in 
-(let TMP_251 \def (TLRef i) in (let TMP_252 \def (lift1 is TMP_251) in (let 
-TMP_253 \def (sc3 g a0 c2 TMP_252) in (let TMP_295 \def (\lambda (H13: (ex2 C 
+(arity g c1 t a)).(arity_ind g (\lambda (c: C).(\lambda (t0: T).(\lambda (a0: 
+A).(\forall (d1: C).(\forall (is: PList).((drop1 is d1 c) \to (\forall (c2: 
+C).((csubc g d1 c2) \to (sc3 g a0 c2 (lift1 is t0)))))))))) (\lambda (c: 
+C).(\lambda (n: nat).(\lambda (d1: C).(\lambda (is: PList).(\lambda (_: 
+(drop1 is d1 c)).(\lambda (c2: C).(\lambda (_: (csubc g d1 c2)).(eq_ind_r T 
+(TSort n) (\lambda (t0: T).(land (arity g c2 t0 (ASort O n)) (sn3 c2 t0))) 
+(conj (arity g c2 (TSort n) (ASort O n)) (sn3 c2 (TSort n)) (arity_sort g c2 
+n) (sn3_nf2 c2 (TSort n) (nf2_sort c2 n))) (lift1 is (TSort n)) (lift1_sort n 
+is))))))))) (\lambda (c: C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: 
+nat).(\lambda (H0: (getl i c (CHead d (Bind Abbr) u))).(\lambda (a0: 
+A).(\lambda (_: (arity g d u a0)).(\lambda (H2: ((\forall (d1: C).(\forall 
+(is: PList).((drop1 is d1 d) \to (\forall (c2: C).((csubc g d1 c2) \to (sc3 g 
+a0 c2 (lift1 is u))))))))).(\lambda (d1: C).(\lambda (is: PList).(\lambda 
+(H3: (drop1 is d1 c)).(\lambda (c2: C).(\lambda (H4: (csubc g d1 c2)).(let 
+H_x \def (drop1_getl_trans is c d1 H3 Abbr d u i H0) in (let H5 \def H_x in 
+(ex2_ind C (\lambda (e2: C).(drop1 (ptrans is i) e2 d)) (\lambda (e2: 
+C).(getl (trans is i) d1 (CHead e2 (Bind Abbr) (lift1 (ptrans is i) u)))) 
+(sc3 g a0 c2 (lift1 is (TLRef i))) (\lambda (x: C).(\lambda (_: (drop1 
+(ptrans is i) x d)).(\lambda (H7: (getl (trans is i) d1 (CHead x (Bind Abbr) 
+(lift1 (ptrans is i) u)))).(let H_x0 \def (csubc_getl_conf g d1 (CHead x 
+(Bind Abbr) (lift1 (ptrans is i) u)) (trans is i) H7 c2 H4) in (let H8 \def 
+H_x0 in (ex2_ind C (\lambda (e2: C).(getl (trans is i) c2 e2)) (\lambda (e2: 
+C).(csubc g (CHead x (Bind Abbr) (lift1 (ptrans is i) u)) e2)) (sc3 g a0 c2 
+(lift1 is (TLRef i))) (\lambda (x0: C).(\lambda (H9: (getl (trans is i) c2 
+x0)).(\lambda (H10: (csubc g (CHead x (Bind Abbr) (lift1 (ptrans is i) u)) 
+x0)).(let H_x1 \def (csubc_gen_head_l g x x0 (lift1 (ptrans is i) u) (Bind 
+Abbr) H10) in (let H11 \def H_x1 in (or3_ind (ex2 C (\lambda (c3: C).(eq C x0 
+(CHead c3 (Bind Abbr) (lift1 (ptrans is i) u)))) (\lambda (c3: C).(csubc g x 
+c3))) (ex5_3 C T A (\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(eq K 
+(Bind Abbr) (Bind Abst))))) (\lambda (c3: C).(\lambda (w: T).(\lambda (_: 
+A).(eq C x0 (CHead c3 (Bind Abbr) w))))) (\lambda (c3: C).(\lambda (_: 
+T).(\lambda (_: A).(csubc g x c3)))) (\lambda (_: C).(\lambda (_: T).(\lambda 
+(a1: A).(sc3 g (asucc g a1) x (lift1 (ptrans is i) u))))) (\lambda (c3: 
+C).(\lambda (w: T).(\lambda (a1: A).(sc3 g a1 c3 w))))) (ex4_3 B C T (\lambda 
+(b: B).(\lambda (c3: C).(\lambda (v2: T).(eq C x0 (CHead c3 (Bind b) v2))))) 
+(\lambda (_: B).(\lambda (_: C).(\lambda (_: T).(eq K (Bind Abbr) (Bind 
+Void))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b 
+Void))))) (\lambda (_: B).(\lambda (c3: C).(\lambda (_: T).(csubc g x c3))))) 
+(sc3 g a0 c2 (lift1 is (TLRef i))) (\lambda (H12: (ex2 C (\lambda (c3: C).(eq 
+C x0 (CHead c3 (Bind Abbr) (lift1 (ptrans is i) u)))) (\lambda (c3: C).(csubc 
+g x c3)))).(ex2_ind C (\lambda (c3: C).(eq C x0 (CHead c3 (Bind Abbr) (lift1 
+(ptrans is i) u)))) (\lambda (c3: C).(csubc g x c3)) (sc3 g a0 c2 (lift1 is 
+(TLRef i))) (\lambda (x1: C).(\lambda (H13: (eq C x0 (CHead x1 (Bind Abbr) 
+(lift1 (ptrans is i) u)))).(\lambda (_: (csubc g x x1)).(let H15 \def (eq_ind 
+C x0 (\lambda (c0: C).(getl (trans is i) c2 c0)) H9 (CHead x1 (Bind Abbr) 
+(lift1 (ptrans is i) u)) H13) in (let H_y \def (sc3_abbr g a0 TNil) in 
+(eq_ind_r T (TLRef (trans is i)) (\lambda (t0: T).(sc3 g a0 c2 t0)) (H_y 
+(trans is i) x1 (lift1 (ptrans is i) u) c2 (eq_ind T (lift1 is (lift (S i) O 
+u)) (\lambda (t0: T).(sc3 g a0 c2 t0)) (eq_ind T (lift1 (PConsTail is (S i) 
+O) u) (\lambda (t0: T).(sc3 g a0 c2 t0)) (H2 d1 (PConsTail is (S i) O) 
+(drop1_cons_tail c d (S i) O (getl_drop Abbr c d u i H0) is d1 H3) c2 H4) 
+(lift1 is (lift (S i) O u)) (lift1_cons_tail u (S i) O is)) (lift (S (trans 
+is i)) O (lift1 (ptrans is i) u)) (lift1_free is i u)) H15) (lift1 is (TLRef 
+i)) (lift1_lref is i))))))) H12)) (\lambda (H12: (ex5_3 C T A (\lambda (_: 
+C).(\lambda (_: T).(\lambda (_: A).(eq K (Bind Abbr) (Bind Abst))))) (\lambda 
+(c3: C).(\lambda (w: T).(\lambda (_: A).(eq C x0 (CHead c3 (Bind Abbr) w))))) 
+(\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g x c3)))) (\lambda 
+(_: C).(\lambda (_: T).(\lambda (a1: A).(sc3 g (asucc g a1) x (lift1 (ptrans 
+is i) u))))) (\lambda (c3: C).(\lambda (w: T).(\lambda (a1: A).(sc3 g a1 c3 
+w)))))).(ex5_3_ind C T A (\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(eq 
+K (Bind Abbr) (Bind Abst))))) (\lambda (c3: C).(\lambda (w: T).(\lambda (_: 
+A).(eq C x0 (CHead c3 (Bind Abbr) w))))) (\lambda (c3: C).(\lambda (_: 
+T).(\lambda (_: A).(csubc g x c3)))) (\lambda (_: C).(\lambda (_: T).(\lambda 
+(a1: A).(sc3 g (asucc g a1) x (lift1 (ptrans is i) u))))) (\lambda (c3: 
+C).(\lambda (w: T).(\lambda (a1: A).(sc3 g a1 c3 w)))) (sc3 g a0 c2 (lift1 is 
+(TLRef i))) (\lambda (x1: C).(\lambda (x2: T).(\lambda (x3: A).(\lambda (H13: 
+(eq K (Bind Abbr) (Bind Abst))).(\lambda (H14: (eq C x0 (CHead x1 (Bind Abbr) 
+x2))).(\lambda (_: (csubc g x x1)).(\lambda (_: (sc3 g (asucc g x3) x (lift1 
+(ptrans is i) u))).(\lambda (_: (sc3 g x3 x1 x2)).(let H18 \def (eq_ind C x0 
+(\lambda (c0: C).(getl (trans is i) c2 c0)) H9 (CHead x1 (Bind Abbr) x2) H14) 
+in (let H19 \def (eq_ind K (Bind Abbr) (\lambda (ee: K).(match ee with [(Bind 
+b) \Rightarrow (match b with [Abbr \Rightarrow True | Abst \Rightarrow False 
+| Void \Rightarrow False]) | (Flat _) \Rightarrow False])) I (Bind Abst) H13) 
+in (False_ind (sc3 g a0 c2 (lift1 is (TLRef i))) H19))))))))))) H12)) 
+(\lambda (H12: (ex4_3 B C T (\lambda (b: B).(\lambda (c3: C).(\lambda (v2: 
+T).(eq C x0 (CHead c3 (Bind b) v2))))) (\lambda (_: B).(\lambda (_: 
+C).(\lambda (_: T).(eq K (Bind Abbr) (Bind Void))))) (\lambda (b: B).(\lambda 
+(_: C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_: B).(\lambda (c3: 
+C).(\lambda (_: T).(csubc g x c3)))))).(ex4_3_ind B C T (\lambda (b: 
+B).(\lambda (c3: C).(\lambda (v2: T).(eq C x0 (CHead c3 (Bind b) v2))))) 
+(\lambda (_: B).(\lambda (_: C).(\lambda (_: T).(eq K (Bind Abbr) (Bind 
+Void))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b 
+Void))))) (\lambda (_: B).(\lambda (c3: C).(\lambda (_: T).(csubc g x c3)))) 
+(sc3 g a0 c2 (lift1 is (TLRef i))) (\lambda (x1: B).(\lambda (x2: C).(\lambda 
+(x3: T).(\lambda (H13: (eq C x0 (CHead x2 (Bind x1) x3))).(\lambda (H14: (eq 
+K (Bind Abbr) (Bind Void))).(\lambda (_: (not (eq B x1 Void))).(\lambda (_: 
+(csubc g x x2)).(let H17 \def (eq_ind C x0 (\lambda (c0: C).(getl (trans is 
+i) c2 c0)) H9 (CHead x2 (Bind x1) x3) H13) in (let H18 \def (eq_ind K (Bind 
+Abbr) (\lambda (ee: K).(match ee with [(Bind b) \Rightarrow (match b with 
+[Abbr \Rightarrow True | Abst \Rightarrow False | Void \Rightarrow False]) | 
+(Flat _) \Rightarrow False])) I (Bind Void) H14) in (False_ind (sc3 g a0 c2 
+(lift1 is (TLRef i))) H18)))))))))) H12)) H11)))))) H8)))))) 
+H5)))))))))))))))) (\lambda (c: C).(\lambda (d: C).(\lambda (u: T).(\lambda 
+(i: nat).(\lambda (H0: (getl i c (CHead d (Bind Abst) u))).(\lambda (a0: 
+A).(\lambda (H1: (arity g d u (asucc g a0))).(\lambda (_: ((\forall (d1: 
+C).(\forall (is: PList).((drop1 is d1 d) \to (\forall (c2: C).((csubc g d1 
+c2) \to (sc3 g (asucc g a0) c2 (lift1 is u))))))))).(\lambda (d1: C).(\lambda 
+(is: PList).(\lambda (H3: (drop1 is d1 c)).(\lambda (c2: C).(\lambda (H4: 
+(csubc g d1 c2)).(let H5 \def H0 in (let H_x \def (drop1_getl_trans is c d1 
+H3 Abst d u i H5) in (let H6 \def H_x in (ex2_ind C (\lambda (e2: C).(drop1 
+(ptrans is i) e2 d)) (\lambda (e2: C).(getl (trans is i) d1 (CHead e2 (Bind 
+Abst) (lift1 (ptrans is i) u)))) (sc3 g a0 c2 (lift1 is (TLRef i))) (\lambda 
+(x: C).(\lambda (H7: (drop1 (ptrans is i) x d)).(\lambda (H8: (getl (trans is 
+i) d1 (CHead x (Bind Abst) (lift1 (ptrans is i) u)))).(let H_x0 \def 
+(csubc_getl_conf g d1 (CHead x (Bind Abst) (lift1 (ptrans is i) u)) (trans is 
+i) H8 c2 H4) in (let H9 \def H_x0 in (ex2_ind C (\lambda (e2: C).(getl (trans 
+is i) c2 e2)) (\lambda (e2: C).(csubc g (CHead x (Bind Abst) (lift1 (ptrans 
+is i) u)) e2)) (sc3 g a0 c2 (lift1 is (TLRef i))) (\lambda (x0: C).(\lambda 
+(H10: (getl (trans is i) c2 x0)).(\lambda (H11: (csubc g (CHead x (Bind Abst) 
+(lift1 (ptrans is i) u)) x0)).(let H_x1 \def (csubc_gen_head_l g x x0 (lift1 
+(ptrans is i) u) (Bind Abst) H11) in (let H12 \def H_x1 in (or3_ind (ex2 C 
 (\lambda (c3: C).(eq C x0 (CHead c3 (Bind Abst) (lift1 (ptrans is i) u)))) 
-(\lambda (c3: C).(csubc g x c3)))).(let TMP_258 \def (\lambda (c3: C).(let 
-TMP_254 \def (Bind Abst) in (let TMP_255 \def (ptrans is i) in (let TMP_256 
-\def (lift1 TMP_255 u) in (let TMP_257 \def (CHead c3 TMP_254 TMP_256) in (eq 
-C x0 TMP_257)))))) in (let TMP_259 \def (\lambda (c3: C).(csubc g x c3)) in 
-(let TMP_260 \def (TLRef i) in (let TMP_261 \def (lift1 is TMP_260) in (let 
-TMP_262 \def (sc3 g a0 c2 TMP_261) in (let TMP_294 \def (\lambda (x1: 
-C).(\lambda (H14: (eq C x0 (CHead x1 (Bind Abst) (lift1 (ptrans is i) 
-u)))).(\lambda (_: (csubc g x x1)).(let TMP_264 \def (\lambda (c0: C).(let 
-TMP_263 \def (trans is i) in (getl TMP_263 c2 c0))) in (let TMP_265 \def 
-(Bind Abst) in (let TMP_266 \def (ptrans is i) in (let TMP_267 \def (lift1 
-TMP_266 u) in (let TMP_268 \def (CHead x1 TMP_265 TMP_267) in (let H16 \def 
-(eq_ind C x0 TMP_264 H10 TMP_268 H14) in (let H_y \def (sc3_abst g a0 TNil) 
-in (let TMP_269 \def (trans is i) in (let TMP_270 \def (TLRef TMP_269) in 
-(let TMP_271 \def (\lambda (t0: T).(sc3 g a0 c2 t0)) in (let TMP_272 \def 
-(trans is i) in (let TMP_273 \def (trans is i) in (let TMP_274 \def (TLRef 
-TMP_273) in (let TMP_275 \def (TLRef i) in (let TMP_276 \def (lift1 is 
-TMP_275) in (let TMP_277 \def (\lambda (t0: T).(arity g d1 t0 a0)) in (let 
-TMP_278 \def (TLRef i) in (let TMP_279 \def (arity_abst g c d u i H0 a0 H1) 
-in (let TMP_280 \def (arity_lift1 g a0 c is d1 TMP_278 H3 TMP_279) in (let 
-TMP_281 \def (trans is i) in (let TMP_282 \def (TLRef TMP_281) in (let 
-TMP_283 \def (lift1_lref is i) in (let TMP_284 \def (eq_ind T TMP_276 TMP_277 
-TMP_280 TMP_282 TMP_283) in (let TMP_285 \def (csubc_arity_conf g d1 c2 H4 
-TMP_274 a0 TMP_284) in (let TMP_286 \def (ptrans is i) in (let TMP_287 \def 
-(lift1 TMP_286 u) in (let TMP_288 \def (trans is i) in (let TMP_289 \def 
-(nf2_lref_abst c2 x1 TMP_287 TMP_288 H16) in (let TMP_290 \def (H_y c2 
-TMP_272 TMP_285 TMP_289 I) in (let TMP_291 \def (TLRef i) in (let TMP_292 
-\def (lift1 is TMP_291) in (let TMP_293 \def (lift1_lref is i) in (eq_ind_r T 
-TMP_270 TMP_271 TMP_290 TMP_292 TMP_293)))))))))))))))))))))))))))))))))))) 
-in (ex2_ind C TMP_258 TMP_259 TMP_262 TMP_294 H13)))))))) in (let TMP_344 
-\def (\lambda (H13: (ex5_3 C T A (\lambda (_: C).(\lambda (_: T).(\lambda (_: 
-A).(eq K (Bind Abst) (Bind Abst))))) (\lambda (c3: C).(\lambda (w: 
-T).(\lambda (_: A).(eq C x0 (CHead c3 (Bind Abbr) w))))) (\lambda (c3: 
-C).(\lambda (_: T).(\lambda (_: A).(csubc g x c3)))) (\lambda (_: C).(\lambda 
-(_: T).(\lambda (a1: A).(sc3 g (asucc g a1) x (lift1 (ptrans is i) u))))) 
-(\lambda (c3: C).(\lambda (w: T).(\lambda (a1: A).(sc3 g a1 c3 w)))))).(let 
-TMP_298 \def (\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(let TMP_296 
-\def (Bind Abst) in (let TMP_297 \def (Bind Abst) in (eq K TMP_296 
-TMP_297)))))) in (let TMP_301 \def (\lambda (c3: C).(\lambda (w: T).(\lambda 
-(_: A).(let TMP_299 \def (Bind Abbr) in (let TMP_300 \def (CHead c3 TMP_299 
-w) in (eq C x0 TMP_300)))))) in (let TMP_302 \def (\lambda (c3: C).(\lambda 
-(_: T).(\lambda (_: A).(csubc g x c3)))) in (let TMP_306 \def (\lambda (_: 
-C).(\lambda (_: T).(\lambda (a1: A).(let TMP_303 \def (asucc g a1) in (let 
-TMP_304 \def (ptrans is i) in (let TMP_305 \def (lift1 TMP_304 u) in (sc3 g 
-TMP_303 x TMP_305))))))) in (let TMP_307 \def (\lambda (c3: C).(\lambda (w: 
-T).(\lambda (a1: A).(sc3 g a1 c3 w)))) in (let TMP_308 \def (TLRef i) in (let 
-TMP_309 \def (lift1 is TMP_308) in (let TMP_310 \def (sc3 g a0 c2 TMP_309) in 
-(let TMP_343 \def (\lambda (x1: C).(\lambda (x2: T).(\lambda (x3: A).(\lambda 
-(_: (eq K (Bind Abst) (Bind Abst))).(\lambda (H15: (eq C x0 (CHead x1 (Bind 
-Abbr) x2))).(\lambda (_: (csubc g x x1)).(\lambda (H17: (sc3 g (asucc g x3) x 
-(lift1 (ptrans is i) u))).(\lambda (H18: (sc3 g x3 x1 x2)).(let TMP_312 \def 
-(\lambda (c0: C).(let TMP_311 \def (trans is i) in (getl TMP_311 c2 c0))) in 
-(let TMP_313 \def (Bind Abbr) in (let TMP_314 \def (CHead x1 TMP_313 x2) in 
-(let H19 \def (eq_ind C x0 TMP_312 H10 TMP_314 H15) in (let H_y \def 
-(sc3_abbr g a0 TNil) in (let TMP_315 \def (trans is i) in (let TMP_316 \def 
-(TLRef TMP_315) in (let TMP_317 \def (\lambda (t0: T).(sc3 g a0 c2 t0)) in 
-(let TMP_318 \def (trans is i) in (let TMP_319 \def (asucc g a0) in (let 
-TMP_320 \def (ptrans is i) in (let H_y0 \def (arity_lift1 g TMP_319 d TMP_320 
-x u H7 H1) in (let TMP_321 \def (ptrans is i) in (let TMP_322 \def (lift1 
-TMP_321 u) in (let TMP_323 \def (asucc g x3) in (let H_y1 \def (sc3_arity_gen 
-g x TMP_322 TMP_323 H17) in (let TMP_324 \def (trans is i) in (let TMP_325 
-\def (S TMP_324) in (let TMP_326 \def (lift TMP_325 O x2) in (let TMP_327 
-\def (trans is i) in (let TMP_328 \def (S TMP_327) in (let TMP_329 \def 
-(trans is i) in (let TMP_330 \def (getl_drop Abbr c2 x1 x2 TMP_329 H19) in 
-(let TMP_331 \def (sc3_lift g x3 x1 x2 H18 c2 TMP_328 O TMP_330) in (let 
-TMP_332 \def (ptrans is i) in (let TMP_333 \def (lift1 TMP_332 u) in (let 
-TMP_334 \def (asucc g x3) in (let TMP_335 \def (asucc g a0) in (let TMP_336 
-\def (arity_mono g x TMP_333 TMP_334 H_y1 TMP_335 H_y0) in (let TMP_337 \def 
-(asucc_inj g x3 a0 TMP_336) in (let TMP_338 \def (sc3_repl g x3 c2 TMP_326 
-TMP_331 a0 TMP_337) in (let TMP_339 \def (H_y TMP_318 x1 x2 c2 TMP_338 H19) 
-in (let TMP_340 \def (TLRef i) in (let TMP_341 \def (lift1 is TMP_340) in 
-(let TMP_342 \def (lift1_lref is i) in (eq_ind_r T TMP_316 TMP_317 TMP_339 
-TMP_341 TMP_342)))))))))))))))))))))))))))))))))))))))))))) in (ex5_3_ind C T 
-A TMP_298 TMP_301 TMP_302 TMP_306 TMP_307 TMP_310 TMP_343 H13))))))))))) in 
-(let TMP_368 \def (\lambda (H13: (ex4_3 B C T (\lambda (b: B).(\lambda (c3: 
-C).(\lambda (v2: T).(eq C x0 (CHead c3 (Bind b) v2))))) (\lambda (_: 
-B).(\lambda (_: C).(\lambda (_: T).(eq K (Bind Abst) (Bind Void))))) (\lambda 
-(b: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_: 
-B).(\lambda (c3: C).(\lambda (_: T).(csubc g x c3)))))).(let TMP_347 \def 
-(\lambda (b: B).(\lambda (c3: C).(\lambda (v2: T).(let TMP_345 \def (Bind b) 
-in (let TMP_346 \def (CHead c3 TMP_345 v2) in (eq C x0 TMP_346)))))) in (let 
-TMP_350 \def (\lambda (_: B).(\lambda (_: C).(\lambda (_: T).(let TMP_348 
-\def (Bind Abst) in (let TMP_349 \def (Bind Void) in (eq K TMP_348 
-TMP_349)))))) in (let TMP_352 \def (\lambda (b: B).(\lambda (_: C).(\lambda 
-(_: T).(let TMP_351 \def (eq B b Void) in (not TMP_351))))) in (let TMP_353 
-\def (\lambda (_: B).(\lambda (c3: C).(\lambda (_: T).(csubc g x c3)))) in 
-(let TMP_354 \def (TLRef i) in (let TMP_355 \def (lift1 is TMP_354) in (let 
-TMP_356 \def (sc3 g a0 c2 TMP_355) in (let TMP_367 \def (\lambda (x1: 
-B).(\lambda (x2: C).(\lambda (x3: T).(\lambda (H14: (eq C x0 (CHead x2 (Bind 
-x1) x3))).(\lambda (H15: (eq K (Bind Abst) (Bind Void))).(\lambda (_: (not 
-(eq B x1 Void))).(\lambda (_: (csubc g x x2)).(let TMP_358 \def (\lambda (c0: 
-C).(let TMP_357 \def (trans is i) in (getl TMP_357 c2 c0))) in (let TMP_359 
-\def (Bind x1) in (let TMP_360 \def (CHead x2 TMP_359 x3) in (let H18 \def 
-(eq_ind C x0 TMP_358 H10 TMP_360 H14) in (let TMP_361 \def (Bind Abst) in 
-(let TMP_362 \def (\lambda (ee: K).(match ee with [(Bind b) \Rightarrow 
-(match b with [Abbr \Rightarrow False | Abst \Rightarrow True | Void 
-\Rightarrow False]) | (Flat _) \Rightarrow False])) in (let TMP_363 \def 
-(Bind Void) in (let H19 \def (eq_ind K TMP_361 TMP_362 I TMP_363 H15) in (let 
-TMP_364 \def (TLRef i) in (let TMP_365 \def (lift1 is TMP_364) in (let 
-TMP_366 \def (sc3 g a0 c2 TMP_365) in (False_ind TMP_366 
-H19))))))))))))))))))) in (ex4_3_ind B C T TMP_347 TMP_350 TMP_352 TMP_353 
-TMP_356 TMP_367 H13)))))))))) in (or3_ind TMP_227 TMP_240 TMP_250 TMP_253 
-TMP_295 TMP_344 TMP_368 H12))))))))))))))))))))))))))))) in (ex2_ind C 
-TMP_209 TMP_214 TMP_217 TMP_369 H9))))))))))))))))) in (ex2_ind C TMP_193 
-TMP_199 TMP_202 TMP_370 H6))))))))))))))))))))))) in (let TMP_399 \def 
-(\lambda (b: B).(\lambda (H0: (not (eq B b Abst))).(\lambda (c: C).(\lambda 
-(u: T).(\lambda (a1: A).(\lambda (_: (arity g c u a1)).(\lambda (H2: 
-((\forall (d1: C).(\forall (is: PList).((drop1 is d1 c) \to (\forall (c2: 
-C).((csubc g d1 c2) \to (sc3 g a1 c2 (lift1 is u))))))))).(\lambda (t0: 
-T).(\lambda (a2: A).(\lambda (_: (arity g (CHead c (Bind b) u) t0 
-a2)).(\lambda (H4: ((\forall (d1: C).(\forall (is: PList).((drop1 is d1 
-(CHead c (Bind b) u)) \to (\forall (c2: C).((csubc g d1 c2) \to (sc3 g a2 c2 
-(lift1 is t0))))))))).(\lambda (d1: C).(\lambda (is: PList).(\lambda (H5: 
-(drop1 is d1 c)).(\lambda (c2: C).(\lambda (H6: (csubc g d1 c2)).(let H_y 
-\def (sc3_bind g b H0 a1 a2 TNil) in (let TMP_372 \def (Bind b) in (let 
-TMP_373 \def (lift1 is u) in (let TMP_374 \def (Ss is) in (let TMP_375 \def 
-(lift1 TMP_374 t0) in (let TMP_376 \def (THead TMP_372 TMP_373 TMP_375) in 
-(let TMP_377 \def (\lambda (t1: T).(sc3 g a2 c2 t1)) in (let TMP_378 \def 
-(lift1 is u) in (let TMP_379 \def (Ss is) in (let TMP_380 \def (lift1 TMP_379 
-t0) in (let TMP_381 \def (Bind b) in (let TMP_382 \def (lift1 is u) in (let 
-TMP_383 \def (CHead d1 TMP_381 TMP_382) in (let TMP_384 \def (Ss is) in (let 
-TMP_385 \def (drop1_skip_bind b c is d1 u H5) in (let TMP_386 \def (Bind b) 
-in (let TMP_387 \def (lift1 is u) in (let TMP_388 \def (CHead c2 TMP_386 
-TMP_387) in (let TMP_389 \def (Bind b) in (let TMP_390 \def (lift1 is u) in 
-(let TMP_391 \def (csubc_head g d1 c2 H6 TMP_389 TMP_390) in (let TMP_392 
-\def (H4 TMP_383 TMP_384 TMP_385 TMP_388 TMP_391) in (let TMP_393 \def (H2 d1 
-is H5 c2 H6) in (let TMP_394 \def (H_y c2 TMP_378 TMP_380 TMP_392 TMP_393) in 
-(let TMP_395 \def (Bind b) in (let TMP_396 \def (THead TMP_395 u t0) in (let 
-TMP_397 \def (lift1 is TMP_396) in (let TMP_398 \def (lift1_bind b is u t0) 
-in (eq_ind_r T TMP_376 TMP_377 TMP_394 TMP_397 
-TMP_398))))))))))))))))))))))))))))))))))))))))))))) in (let TMP_547 \def 
-(\lambda (c: C).(\lambda (u: T).(\lambda (a1: A).(\lambda (H0: (arity g c u 
-(asucc g a1))).(\lambda (H1: ((\forall (d1: C).(\forall (is: PList).((drop1 
-is d1 c) \to (\forall (c2: C).((csubc g d1 c2) \to (sc3 g (asucc g a1) c2 
-(lift1 is u))))))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda (H2: (arity g 
-(CHead c (Bind Abst) u) t0 a2)).(\lambda (H3: ((\forall (d1: C).(\forall (is: 
+(\lambda (c3: C).(csubc g x c3))) (ex5_3 C T A (\lambda (_: C).(\lambda (_: 
+T).(\lambda (_: A).(eq K (Bind Abst) (Bind Abst))))) (\lambda (c3: 
+C).(\lambda (w: T).(\lambda (_: A).(eq C x0 (CHead c3 (Bind Abbr) w))))) 
+(\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g x c3)))) (\lambda 
+(_: C).(\lambda (_: T).(\lambda (a1: A).(sc3 g (asucc g a1) x (lift1 (ptrans 
+is i) u))))) (\lambda (c3: C).(\lambda (w: T).(\lambda (a1: A).(sc3 g a1 c3 
+w))))) (ex4_3 B C T (\lambda (b: B).(\lambda (c3: C).(\lambda (v2: T).(eq C 
+x0 (CHead c3 (Bind b) v2))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: 
+T).(eq K (Bind Abst) (Bind Void))))) (\lambda (b: B).(\lambda (_: C).(\lambda 
+(_: T).(not (eq B b Void))))) (\lambda (_: B).(\lambda (c3: C).(\lambda (_: 
+T).(csubc g x c3))))) (sc3 g a0 c2 (lift1 is (TLRef i))) (\lambda (H13: (ex2 
+C (\lambda (c3: C).(eq C x0 (CHead c3 (Bind Abst) (lift1 (ptrans is i) u)))) 
+(\lambda (c3: C).(csubc g x c3)))).(ex2_ind C (\lambda (c3: C).(eq C x0 
+(CHead c3 (Bind Abst) (lift1 (ptrans is i) u)))) (\lambda (c3: C).(csubc g x 
+c3)) (sc3 g a0 c2 (lift1 is (TLRef i))) (\lambda (x1: C).(\lambda (H14: (eq C 
+x0 (CHead x1 (Bind Abst) (lift1 (ptrans is i) u)))).(\lambda (_: (csubc g x 
+x1)).(let H16 \def (eq_ind C x0 (\lambda (c0: C).(getl (trans is i) c2 c0)) 
+H10 (CHead x1 (Bind Abst) (lift1 (ptrans is i) u)) H14) in (let H_y \def 
+(sc3_abst g a0 TNil) in (eq_ind_r T (TLRef (trans is i)) (\lambda (t0: 
+T).(sc3 g a0 c2 t0)) (H_y c2 (trans is i) (csubc_arity_conf g d1 c2 H4 (TLRef 
+(trans is i)) a0 (eq_ind T (lift1 is (TLRef i)) (\lambda (t0: T).(arity g d1 
+t0 a0)) (arity_lift1 g a0 c is d1 (TLRef i) H3 (arity_abst g c d u i H0 a0 
+H1)) (TLRef (trans is i)) (lift1_lref is i))) (nf2_lref_abst c2 x1 (lift1 
+(ptrans is i) u) (trans is i) H16) I) (lift1 is (TLRef i)) (lift1_lref is 
+i))))))) H13)) (\lambda (H13: (ex5_3 C T A (\lambda (_: C).(\lambda (_: 
+T).(\lambda (_: A).(eq K (Bind Abst) (Bind Abst))))) (\lambda (c3: 
+C).(\lambda (w: T).(\lambda (_: A).(eq C x0 (CHead c3 (Bind Abbr) w))))) 
+(\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g x c3)))) (\lambda 
+(_: C).(\lambda (_: T).(\lambda (a1: A).(sc3 g (asucc g a1) x (lift1 (ptrans 
+is i) u))))) (\lambda (c3: C).(\lambda (w: T).(\lambda (a1: A).(sc3 g a1 c3 
+w)))))).(ex5_3_ind C T A (\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(eq 
+K (Bind Abst) (Bind Abst))))) (\lambda (c3: C).(\lambda (w: T).(\lambda (_: 
+A).(eq C x0 (CHead c3 (Bind Abbr) w))))) (\lambda (c3: C).(\lambda (_: 
+T).(\lambda (_: A).(csubc g x c3)))) (\lambda (_: C).(\lambda (_: T).(\lambda 
+(a1: A).(sc3 g (asucc g a1) x (lift1 (ptrans is i) u))))) (\lambda (c3: 
+C).(\lambda (w: T).(\lambda (a1: A).(sc3 g a1 c3 w)))) (sc3 g a0 c2 (lift1 is 
+(TLRef i))) (\lambda (x1: C).(\lambda (x2: T).(\lambda (x3: A).(\lambda (_: 
+(eq K (Bind Abst) (Bind Abst))).(\lambda (H15: (eq C x0 (CHead x1 (Bind Abbr) 
+x2))).(\lambda (_: (csubc g x x1)).(\lambda (H17: (sc3 g (asucc g x3) x 
+(lift1 (ptrans is i) u))).(\lambda (H18: (sc3 g x3 x1 x2)).(let H19 \def 
+(eq_ind C x0 (\lambda (c0: C).(getl (trans is i) c2 c0)) H10 (CHead x1 (Bind 
+Abbr) x2) H15) in (let H_y \def (sc3_abbr g a0 TNil) in (eq_ind_r T (TLRef 
+(trans is i)) (\lambda (t0: T).(sc3 g a0 c2 t0)) (H_y (trans is i) x1 x2 c2 
+(let H_y0 \def (arity_lift1 g (asucc g a0) d (ptrans is i) x u H7 H1) in (let 
+H_y1 \def (sc3_arity_gen g x (lift1 (ptrans is i) u) (asucc g x3) H17) in 
+(sc3_repl g x3 c2 (lift (S (trans is i)) O x2) (sc3_lift g x3 x1 x2 H18 c2 (S 
+(trans is i)) O (getl_drop Abbr c2 x1 x2 (trans is i) H19)) a0 (asucc_inj g 
+x3 a0 (arity_mono g x (lift1 (ptrans is i) u) (asucc g x3) H_y1 (asucc g a0) 
+H_y0))))) H19) (lift1 is (TLRef i)) (lift1_lref is i)))))))))))) H13)) 
+(\lambda (H13: (ex4_3 B C T (\lambda (b: B).(\lambda (c3: C).(\lambda (v2: 
+T).(eq C x0 (CHead c3 (Bind b) v2))))) (\lambda (_: B).(\lambda (_: 
+C).(\lambda (_: T).(eq K (Bind Abst) (Bind Void))))) (\lambda (b: B).(\lambda 
+(_: C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_: B).(\lambda (c3: 
+C).(\lambda (_: T).(csubc g x c3)))))).(ex4_3_ind B C T (\lambda (b: 
+B).(\lambda (c3: C).(\lambda (v2: T).(eq C x0 (CHead c3 (Bind b) v2))))) 
+(\lambda (_: B).(\lambda (_: C).(\lambda (_: T).(eq K (Bind Abst) (Bind 
+Void))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b 
+Void))))) (\lambda (_: B).(\lambda (c3: C).(\lambda (_: T).(csubc g x c3)))) 
+(sc3 g a0 c2 (lift1 is (TLRef i))) (\lambda (x1: B).(\lambda (x2: C).(\lambda 
+(x3: T).(\lambda (H14: (eq C x0 (CHead x2 (Bind x1) x3))).(\lambda (H15: (eq 
+K (Bind Abst) (Bind Void))).(\lambda (_: (not (eq B x1 Void))).(\lambda (_: 
+(csubc g x x2)).(let H18 \def (eq_ind C x0 (\lambda (c0: C).(getl (trans is 
+i) c2 c0)) H10 (CHead x2 (Bind x1) x3) H14) in (let H19 \def (eq_ind K (Bind 
+Abst) (\lambda (ee: K).(match ee with [(Bind b) \Rightarrow (match b with 
+[Abbr \Rightarrow False | Abst \Rightarrow True | Void \Rightarrow False]) | 
+(Flat _) \Rightarrow False])) I (Bind Void) H15) in (False_ind (sc3 g a0 c2 
+(lift1 is (TLRef i))) H19)))))))))) H13)) H12)))))) H9)))))) 
+H6))))))))))))))))) (\lambda (b: B).(\lambda (H0: (not (eq B b 
+Abst))).(\lambda (c: C).(\lambda (u: T).(\lambda (a1: A).(\lambda (_: (arity 
+g c u a1)).(\lambda (H2: ((\forall (d1: C).(\forall (is: PList).((drop1 is d1 
+c) \to (\forall (c2: C).((csubc g d1 c2) \to (sc3 g a1 c2 (lift1 is 
+u))))))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda (_: (arity g (CHead c 
+(Bind b) u) t0 a2)).(\lambda (H4: ((\forall (d1: C).(\forall (is: 
+PList).((drop1 is d1 (CHead c (Bind b) u)) \to (\forall (c2: C).((csubc g d1 
+c2) \to (sc3 g a2 c2 (lift1 is t0))))))))).(\lambda (d1: C).(\lambda (is: 
+PList).(\lambda (H5: (drop1 is d1 c)).(\lambda (c2: C).(\lambda (H6: (csubc g 
+d1 c2)).(let H_y \def (sc3_bind g b H0 a1 a2 TNil) in (eq_ind_r T (THead 
+(Bind b) (lift1 is u) (lift1 (Ss is) t0)) (\lambda (t1: T).(sc3 g a2 c2 t1)) 
+(H_y c2 (lift1 is u) (lift1 (Ss is) t0) (H4 (CHead d1 (Bind b) (lift1 is u)) 
+(Ss is) (drop1_skip_bind b c is d1 u H5) (CHead c2 (Bind b) (lift1 is u)) 
+(csubc_head g d1 c2 H6 (Bind b) (lift1 is u))) (H2 d1 is H5 c2 H6)) (lift1 is 
+(THead (Bind b) u t0)) (lift1_bind b is u t0))))))))))))))))))) (\lambda (c: 
+C).(\lambda (u: T).(\lambda (a1: A).(\lambda (H0: (arity g c u (asucc g 
+a1))).(\lambda (H1: ((\forall (d1: C).(\forall (is: PList).((drop1 is d1 c) 
+\to (\forall (c2: C).((csubc g d1 c2) \to (sc3 g (asucc g a1) c2 (lift1 is 
+u))))))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda (H2: (arity g (CHead c 
+(Bind Abst) u) t0 a2)).(\lambda (H3: ((\forall (d1: C).(\forall (is: 
 PList).((drop1 is d1 (CHead c (Bind Abst) u)) \to (\forall (c2: C).((csubc g 
 d1 c2) \to (sc3 g a2 c2 (lift1 is t0))))))))).(\lambda (d1: C).(\lambda (is: 
 PList).(\lambda (H4: (drop1 is d1 c)).(\lambda (c2: C).(\lambda (H5: (csubc g 
-d1 c2)).(let TMP_400 \def (Bind Abst) in (let TMP_401 \def (lift1 is u) in 
-(let TMP_402 \def (Ss is) in (let TMP_403 \def (lift1 TMP_402 t0) in (let 
-TMP_404 \def (THead TMP_400 TMP_401 TMP_403) in (let TMP_411 \def (\lambda 
-(t1: T).(let TMP_405 \def (AHead a1 a2) in (let TMP_406 \def (arity g c2 t1 
-TMP_405) in (let TMP_410 \def (\forall (d: C).(\forall (w: T).((sc3 g a1 d w) 
-\to (\forall (is0: PList).((drop1 is0 d c2) \to (let TMP_407 \def (Flat Appl) 
-in (let TMP_408 \def (lift1 is0 t1) in (let TMP_409 \def (THead TMP_407 w 
-TMP_408) in (sc3 g a2 d TMP_409))))))))) in (land TMP_406 TMP_410))))) in 
-(let TMP_412 \def (Bind Abst) in (let TMP_413 \def (lift1 is u) in (let 
-TMP_414 \def (Ss is) in (let TMP_415 \def (lift1 TMP_414 t0) in (let TMP_416 
-\def (THead TMP_412 TMP_413 TMP_415) in (let TMP_417 \def (AHead a1 a2) in 
-(let TMP_418 \def (arity g c2 TMP_416 TMP_417) in (let TMP_427 \def (\forall 
-(d: C).(\forall (w: T).((sc3 g a1 d w) \to (\forall (is0: PList).((drop1 is0 
-d c2) \to (let TMP_419 \def (Flat Appl) in (let TMP_420 \def (Bind Abst) in 
-(let TMP_421 \def (lift1 is u) in (let TMP_422 \def (Ss is) in (let TMP_423 
-\def (lift1 TMP_422 t0) in (let TMP_424 \def (THead TMP_420 TMP_421 TMP_423) 
-in (let TMP_425 \def (lift1 is0 TMP_424) in (let TMP_426 \def (THead TMP_419 
-w TMP_425) in (sc3 g a2 d TMP_426)))))))))))))) in (let TMP_428 \def (Bind 
-Abst) in (let TMP_429 \def (lift1 is u) in (let TMP_430 \def (Ss is) in (let 
-TMP_431 \def (lift1 TMP_430 t0) in (let TMP_432 \def (THead TMP_428 TMP_429 
-TMP_431) in (let TMP_433 \def (AHead a1 a2) in (let TMP_434 \def (lift1 is u) 
-in (let TMP_435 \def (asucc g a1) in (let TMP_436 \def (arity_lift1 g TMP_435 
-c is d1 u H4 H0) in (let TMP_437 \def (Ss is) in (let TMP_438 \def (lift1 
-TMP_437 t0) in (let TMP_439 \def (Bind Abst) in (let TMP_440 \def (CHead c 
-TMP_439 u) in (let TMP_441 \def (Ss is) in (let TMP_442 \def (Bind Abst) in 
-(let TMP_443 \def (lift1 is u) in (let TMP_444 \def (CHead d1 TMP_442 
-TMP_443) in (let TMP_445 \def (drop1_skip_bind Abst c is d1 u H4) in (let 
-TMP_446 \def (arity_lift1 g a2 TMP_440 TMP_441 TMP_444 t0 TMP_445 H2) in (let 
-TMP_447 \def (arity_head g d1 TMP_434 a1 TMP_436 TMP_438 a2 TMP_446) in (let 
-TMP_448 \def (csubc_arity_conf g d1 c2 H5 TMP_432 TMP_433 TMP_447) in (let 
-TMP_541 \def (\lambda (d: C).(\lambda (w: T).(\lambda (H6: (sc3 g a1 d 
-w)).(\lambda (is0: PList).(\lambda (H7: (drop1 is0 d c2)).(let TMP_449 \def 
-(Bind Abst) in (let TMP_450 \def (lift1 is u) in (let TMP_451 \def (lift1 is0 
-TMP_450) in (let TMP_452 \def (Ss is0) in (let TMP_453 \def (Ss is) in (let 
-TMP_454 \def (lift1 TMP_453 t0) in (let TMP_455 \def (lift1 TMP_452 TMP_454) 
-in (let TMP_456 \def (THead TMP_449 TMP_451 TMP_455) in (let TMP_459 \def 
-(\lambda (t1: T).(let TMP_457 \def (Flat Appl) in (let TMP_458 \def (THead 
-TMP_457 w t1) in (sc3 g a2 d TMP_458)))) in (let H8 \def (sc3_appl g a1 a2 
-TNil) in (let TMP_460 \def (Ss is0) in (let TMP_461 \def (Ss is) in (let 
-TMP_462 \def (lift1 TMP_461 t0) in (let TMP_463 \def (lift1 TMP_460 TMP_462) 
-in (let H_y \def (sc3_bind g Abbr not_abbr_abst a1 a2 TNil) in (let TMP_464 
-\def (Ss is0) in (let TMP_465 \def (Ss is) in (let TMP_466 \def (lift1 
-TMP_465 t0) in (let TMP_467 \def (lift1 TMP_464 TMP_466) in (let H_x \def 
-(csubc_drop1_conf_rev g is0 d c2 H7 d1 H5) in (let H9 \def H_x in (let 
-TMP_468 \def (\lambda (c3: C).(drop1 is0 c3 d1)) in (let TMP_469 \def 
-(\lambda (c3: C).(csubc g c3 d)) in (let TMP_470 \def (Bind Abbr) in (let 
-TMP_471 \def (CHead d TMP_470 w) in (let TMP_472 \def (Ss is0) in (let 
-TMP_473 \def (Ss is) in (let TMP_474 \def (lift1 TMP_473 t0) in (let TMP_475 
-\def (lift1 TMP_472 TMP_474) in (let TMP_476 \def (sc3 g a2 TMP_471 TMP_475) 
-in (let TMP_521 \def (\lambda (x: C).(\lambda (H10: (drop1 is0 x 
-d1)).(\lambda (H11: (csubc g x d)).(let TMP_477 \def (Ss is0) in (let TMP_478 
-\def (Ss is) in (let TMP_479 \def (papp TMP_477 TMP_478) in (let TMP_480 \def 
-(lift1 TMP_479 t0) in (let TMP_483 \def (\lambda (t1: T).(let TMP_481 \def 
-(Bind Abbr) in (let TMP_482 \def (CHead d TMP_481 w) in (sc3 g a2 TMP_482 
-t1)))) in (let TMP_484 \def (papp is0 is) in (let TMP_485 \def (Ss TMP_484) 
-in (let TMP_489 \def (\lambda (p: PList).(let TMP_486 \def (Bind Abbr) in 
-(let TMP_487 \def (CHead d TMP_486 w) in (let TMP_488 \def (lift1 p t0) in 
-(sc3 g a2 TMP_487 TMP_488))))) in (let TMP_490 \def (Bind Abst) in (let 
-TMP_491 \def (papp is0 is) in (let TMP_492 \def (lift1 TMP_491 u) in (let 
-TMP_493 \def (CHead x TMP_490 TMP_492) in (let TMP_494 \def (papp is0 is) in 
-(let TMP_495 \def (Ss TMP_494) in (let TMP_496 \def (papp is0 is) in (let 
-TMP_497 \def (drop1_trans is0 x d1 H10 is c H4) in (let TMP_498 \def 
-(drop1_skip_bind Abst c TMP_496 x u TMP_497) in (let TMP_499 \def (Bind Abbr) 
-in (let TMP_500 \def (CHead d TMP_499 w) in (let TMP_501 \def (papp is0 is) 
-in (let TMP_502 \def (lift1 TMP_501 u) in (let TMP_503 \def (papp is0 is) in 
-(let TMP_504 \def (drop1_trans is0 x d1 H10 is c H4) in (let TMP_505 \def 
-(csubc_refl g x) in (let TMP_506 \def (H1 x TMP_503 TMP_504 x TMP_505) in 
-(let TMP_507 \def (csubc_abst g x d H11 TMP_502 a1 TMP_506 w H6) in (let 
-TMP_508 \def (H3 TMP_493 TMP_495 TMP_498 TMP_500 TMP_507) in (let TMP_509 
-\def (Ss is0) in (let TMP_510 \def (Ss is) in (let TMP_511 \def (papp TMP_509 
-TMP_510) in (let TMP_512 \def (papp_ss is0 is) in (let TMP_513 \def (eq_ind_r 
-PList TMP_485 TMP_489 TMP_508 TMP_511 TMP_512) in (let TMP_514 \def (Ss is0) 
-in (let TMP_515 \def (Ss is) in (let TMP_516 \def (lift1 TMP_515 t0) in (let 
-TMP_517 \def (lift1 TMP_514 TMP_516) in (let TMP_518 \def (Ss is0) in (let 
-TMP_519 \def (Ss is) in (let TMP_520 \def (lift1_lift1 TMP_518 TMP_519 t0) in 
-(eq_ind_r T TMP_480 TMP_483 TMP_513 TMP_517 
-TMP_520))))))))))))))))))))))))))))))))))))))))))) in (let TMP_522 \def 
-(ex2_ind C TMP_468 TMP_469 TMP_476 TMP_521 H9) in (let TMP_523 \def (H_y d w 
-TMP_467 TMP_522 H6) in (let TMP_524 \def (lift1 is u) in (let TMP_525 \def 
-(lift1 is0 TMP_524) in (let TMP_526 \def (asucc g a1) in (let TMP_527 \def 
-(lift1 is u) in (let TMP_528 \def (H1 d1 is H4 c2 H5) in (let TMP_529 \def 
-(sc3_lift1 g c2 TMP_526 is0 d TMP_527 TMP_528 H7) in (let TMP_530 \def (H8 d 
-w TMP_463 TMP_523 H6 TMP_525 TMP_529) in (let TMP_531 \def (Bind Abst) in 
-(let TMP_532 \def (lift1 is u) in (let TMP_533 \def (Ss is) in (let TMP_534 
-\def (lift1 TMP_533 t0) in (let TMP_535 \def (THead TMP_531 TMP_532 TMP_534) 
-in (let TMP_536 \def (lift1 is0 TMP_535) in (let TMP_537 \def (lift1 is u) in 
-(let TMP_538 \def (Ss is) in (let TMP_539 \def (lift1 TMP_538 t0) in (let 
-TMP_540 \def (lift1_bind Abst is0 TMP_537 TMP_539) in (eq_ind_r T TMP_456 
-TMP_459 TMP_530 TMP_536 
-TMP_540)))))))))))))))))))))))))))))))))))))))))))))))))))))))) in (let 
-TMP_542 \def (conj TMP_418 TMP_427 TMP_448 TMP_541) in (let TMP_543 \def 
-(Bind Abst) in (let TMP_544 \def (THead TMP_543 u t0) in (let TMP_545 \def 
-(lift1 is TMP_544) in (let TMP_546 \def (lift1_bind Abst is u t0) in 
-(eq_ind_r T TMP_404 TMP_411 TMP_542 TMP_545 
-TMP_546)))))))))))))))))))))))))))))))))))))))))))))))))))))))) in (let 
-TMP_573 \def (\lambda (c: C).(\lambda (u: T).(\lambda (a1: A).(\lambda (_: 
-(arity g c u a1)).(\lambda (H1: ((\forall (d1: C).(\forall (is: 
-PList).((drop1 is d1 c) \to (\forall (c2: C).((csubc g d1 c2) \to (sc3 g a1 
-c2 (lift1 is u))))))))).(\lambda (t0: T).(\lambda (a2: A).(\lambda (_: (arity 
-g c t0 (AHead a1 a2))).(\lambda (H3: ((\forall (d1: C).(\forall (is: 
-PList).((drop1 is d1 c) \to (\forall (c2: C).((csubc g d1 c2) \to (sc3 g 
-(AHead a1 a2) c2 (lift1 is t0))))))))).(\lambda (d1: C).(\lambda (is: 
-PList).(\lambda (H4: (drop1 is d1 c)).(\lambda (c2: C).(\lambda (H5: (csubc g 
-d1 c2)).(let H_y \def (H1 d1 is H4 c2 H5) in (let H_y0 \def (H3 d1 is H4 c2 
-H5) in (let H6 \def H_y0 in (let TMP_548 \def (lift1 is t0) in (let TMP_549 
-\def (AHead a1 a2) in (let TMP_550 \def (arity g c2 TMP_548 TMP_549) in (let 
-TMP_555 \def (\forall (d: C).(\forall (w: T).((sc3 g a1 d w) \to (\forall 
-(is0: PList).((drop1 is0 d c2) \to (let TMP_551 \def (Flat Appl) in (let 
-TMP_552 \def (lift1 is t0) in (let TMP_553 \def (lift1 is0 TMP_552) in (let 
-TMP_554 \def (THead TMP_551 w TMP_553) in (sc3 g a2 d TMP_554)))))))))) in 
-(let TMP_556 \def (Flat Appl) in (let TMP_557 \def (THead TMP_556 u t0) in 
-(let TMP_558 \def (lift1 is TMP_557) in (let TMP_559 \def (sc3 g a2 c2 
-TMP_558) in (let TMP_572 \def (\lambda (_: (arity g c2 (lift1 is t0) (AHead 
-a1 a2))).(\lambda (H8: ((\forall (d: C).(\forall (w: T).((sc3 g a1 d w) \to 
-(\forall (is0: PList).((drop1 is0 d c2) \to (sc3 g a2 d (THead (Flat Appl) w 
-(lift1 is0 (lift1 is t0))))))))))).(let TMP_560 \def (lift1 is u) in (let 
-H_y1 \def (H8 c2 TMP_560 H_y PNil) in (let TMP_561 \def (Flat Appl) in (let 
-TMP_562 \def (lift1 is u) in (let TMP_563 \def (lift1 is t0) in (let TMP_564 
-\def (THead TMP_561 TMP_562 TMP_563) in (let TMP_565 \def (\lambda (t1: 
-T).(sc3 g a2 c2 t1)) in (let TMP_566 \def (drop1_nil c2) in (let TMP_567 \def 
-(H_y1 TMP_566) in (let TMP_568 \def (Flat Appl) in (let TMP_569 \def (THead 
-TMP_568 u t0) in (let TMP_570 \def (lift1 is TMP_569) in (let TMP_571 \def 
-(lift1_flat Appl is u t0) in (eq_ind_r T TMP_564 TMP_565 TMP_567 TMP_570 
-TMP_571)))))))))))))))) in (land_ind TMP_550 TMP_555 TMP_559 TMP_572 
-H6))))))))))))))))))))))))))) in (let TMP_588 \def (\lambda (c: C).(\lambda 
-(u: T).(\lambda (a0: A).(\lambda (_: (arity g c u (asucc g a0))).(\lambda 
-(H1: ((\forall (d1: C).(\forall (is: PList).((drop1 is d1 c) \to (\forall 
-(c2: C).((csubc g d1 c2) \to (sc3 g (asucc g a0) c2 (lift1 is 
+d1 c2)).(eq_ind_r T (THead (Bind Abst) (lift1 is u) (lift1 (Ss is) t0)) 
+(\lambda (t1: T).(land (arity g c2 t1 (AHead a1 a2)) (\forall (d: C).(\forall 
+(w: T).((sc3 g a1 d w) \to (\forall (is0: PList).((drop1 is0 d c2) \to (sc3 g 
+a2 d (THead (Flat Appl) w (lift1 is0 t1)))))))))) (conj (arity g c2 (THead 
+(Bind Abst) (lift1 is u) (lift1 (Ss is) t0)) (AHead a1 a2)) (\forall (d: 
+C).(\forall (w: T).((sc3 g a1 d w) \to (\forall (is0: PList).((drop1 is0 d 
+c2) \to (sc3 g a2 d (THead (Flat Appl) w (lift1 is0 (THead (Bind Abst) (lift1 
+is u) (lift1 (Ss is) t0)))))))))) (csubc_arity_conf g d1 c2 H5 (THead (Bind 
+Abst) (lift1 is u) (lift1 (Ss is) t0)) (AHead a1 a2) (arity_head g d1 (lift1 
+is u) a1 (arity_lift1 g (asucc g a1) c is d1 u H4 H0) (lift1 (Ss is) t0) a2 
+(arity_lift1 g a2 (CHead c (Bind Abst) u) (Ss is) (CHead d1 (Bind Abst) 
+(lift1 is u)) t0 (drop1_skip_bind Abst c is d1 u H4) H2))) (\lambda (d: 
+C).(\lambda (w: T).(\lambda (H6: (sc3 g a1 d w)).(\lambda (is0: 
+PList).(\lambda (H7: (drop1 is0 d c2)).(eq_ind_r T (THead (Bind Abst) (lift1 
+is0 (lift1 is u)) (lift1 (Ss is0) (lift1 (Ss is) t0))) (\lambda (t1: T).(sc3 
+g a2 d (THead (Flat Appl) w t1))) (let H8 \def (sc3_appl g a1 a2 TNil) in (H8 
+d w (lift1 (Ss is0) (lift1 (Ss is) t0)) (let H_y \def (sc3_bind g Abbr 
+not_abbr_abst a1 a2 TNil) in (H_y d w (lift1 (Ss is0) (lift1 (Ss is) t0)) 
+(let H_x \def (csubc_drop1_conf_rev g is0 d c2 H7 d1 H5) in (let H9 \def H_x 
+in (ex2_ind C (\lambda (c3: C).(drop1 is0 c3 d1)) (\lambda (c3: C).(csubc g 
+c3 d)) (sc3 g a2 (CHead d (Bind Abbr) w) (lift1 (Ss is0) (lift1 (Ss is) t0))) 
+(\lambda (x: C).(\lambda (H10: (drop1 is0 x d1)).(\lambda (H11: (csubc g x 
+d)).(eq_ind_r T (lift1 (papp (Ss is0) (Ss is)) t0) (\lambda (t1: T).(sc3 g a2 
+(CHead d (Bind Abbr) w) t1)) (eq_ind_r PList (Ss (papp is0 is)) (\lambda (p: 
+PList).(sc3 g a2 (CHead d (Bind Abbr) w) (lift1 p t0))) (H3 (CHead x (Bind 
+Abst) (lift1 (papp is0 is) u)) (Ss (papp is0 is)) (drop1_skip_bind Abst c 
+(papp is0 is) x u (drop1_trans is0 x d1 H10 is c H4)) (CHead d (Bind Abbr) w) 
+(csubc_abst g x d H11 (lift1 (papp is0 is) u) a1 (H1 x (papp is0 is) 
+(drop1_trans is0 x d1 H10 is c H4) x (csubc_refl g x)) w H6)) (papp (Ss is0) 
+(Ss is)) (papp_ss is0 is)) (lift1 (Ss is0) (lift1 (Ss is) t0)) (lift1_lift1 
+(Ss is0) (Ss is) t0))))) H9))) H6)) H6 (lift1 is0 (lift1 is u)) (sc3_lift1 g 
+c2 (asucc g a1) is0 d (lift1 is u) (H1 d1 is H4 c2 H5) H7))) (lift1 is0 
+(THead (Bind Abst) (lift1 is u) (lift1 (Ss is) t0))) (lift1_bind Abst is0 
+(lift1 is u) (lift1 (Ss is) t0))))))))) (lift1 is (THead (Bind Abst) u t0)) 
+(lift1_bind Abst is u t0)))))))))))))))) (\lambda (c: C).(\lambda (u: 
+T).(\lambda (a1: A).(\lambda (_: (arity g c u a1)).(\lambda (H1: ((\forall 
+(d1: C).(\forall (is: PList).((drop1 is d1 c) \to (\forall (c2: C).((csubc g 
+d1 c2) \to (sc3 g a1 c2 (lift1 is u))))))))).(\lambda (t0: T).(\lambda (a2: 
+A).(\lambda (_: (arity g c t0 (AHead a1 a2))).(\lambda (H3: ((\forall (d1: 
+C).(\forall (is: PList).((drop1 is d1 c) \to (\forall (c2: C).((csubc g d1 
+c2) \to (sc3 g (AHead a1 a2) c2 (lift1 is t0))))))))).(\lambda (d1: 
+C).(\lambda (is: PList).(\lambda (H4: (drop1 is d1 c)).(\lambda (c2: 
+C).(\lambda (H5: (csubc g d1 c2)).(let H_y \def (H1 d1 is H4 c2 H5) in (let 
+H_y0 \def (H3 d1 is H4 c2 H5) in (let H6 \def H_y0 in (land_ind (arity g c2 
+(lift1 is t0) (AHead a1 a2)) (\forall (d: C).(\forall (w: T).((sc3 g a1 d w) 
+\to (\forall (is0: PList).((drop1 is0 d c2) \to (sc3 g a2 d (THead (Flat 
+Appl) w (lift1 is0 (lift1 is t0))))))))) (sc3 g a2 c2 (lift1 is (THead (Flat 
+Appl) u t0))) (\lambda (_: (arity g c2 (lift1 is t0) (AHead a1 a2))).(\lambda 
+(H8: ((\forall (d: C).(\forall (w: T).((sc3 g a1 d w) \to (\forall (is0: 
+PList).((drop1 is0 d c2) \to (sc3 g a2 d (THead (Flat Appl) w (lift1 is0 
+(lift1 is t0))))))))))).(let H_y1 \def (H8 c2 (lift1 is u) H_y PNil) in 
+(eq_ind_r T (THead (Flat Appl) (lift1 is u) (lift1 is t0)) (\lambda (t1: 
+T).(sc3 g a2 c2 t1)) (H_y1 (drop1_nil c2)) (lift1 is (THead (Flat Appl) u 
+t0)) (lift1_flat Appl is u t0))))) H6)))))))))))))))))) (\lambda (c: 
+C).(\lambda (u: T).(\lambda (a0: A).(\lambda (_: (arity g c u (asucc g 
+a0))).(\lambda (H1: ((\forall (d1: C).(\forall (is: PList).((drop1 is d1 c) 
+\to (\forall (c2: C).((csubc g d1 c2) \to (sc3 g (asucc g a0) c2 (lift1 is 
 u))))))))).(\lambda (t0: T).(\lambda (_: (arity g c t0 a0)).(\lambda (H3: 
 ((\forall (d1: C).(\forall (is: PList).((drop1 is d1 c) \to (\forall (c2: 
 C).((csubc g d1 c2) \to (sc3 g a0 c2 (lift1 is t0))))))))).(\lambda (d1: 
 C).(\lambda (is: PList).(\lambda (H4: (drop1 is d1 c)).(\lambda (c2: 
-C).(\lambda (H5: (csubc g d1 c2)).(let H_y \def (sc3_cast g a0 TNil) in (let 
-TMP_574 \def (Flat Cast) in (let TMP_575 \def (lift1 is u) in (let TMP_576 
-\def (lift1 is t0) in (let TMP_577 \def (THead TMP_574 TMP_575 TMP_576) in 
-(let TMP_578 \def (\lambda (t1: T).(sc3 g a0 c2 t1)) in (let TMP_579 \def 
-(lift1 is u) in (let TMP_580 \def (H1 d1 is H4 c2 H5) in (let TMP_581 \def 
-(lift1 is t0) in (let TMP_582 \def (H3 d1 is H4 c2 H5) in (let TMP_583 \def 
-(H_y c2 TMP_579 TMP_580 TMP_581 TMP_582) in (let TMP_584 \def (Flat Cast) in 
-(let TMP_585 \def (THead TMP_584 u t0) in (let TMP_586 \def (lift1 is 
-TMP_585) in (let TMP_587 \def (lift1_flat Cast is u t0) in (eq_ind_r T 
-TMP_577 TMP_578 TMP_583 TMP_586 TMP_587))))))))))))))))))))))))))))) in (let 
-TMP_591 \def (\lambda (c: C).(\lambda (t0: T).(\lambda (a1: A).(\lambda (_: 
-(arity g c t0 a1)).(\lambda (H1: ((\forall (d1: C).(\forall (is: 
-PList).((drop1 is d1 c) \to (\forall (c2: C).((csubc g d1 c2) \to (sc3 g a1 
-c2 (lift1 is t0))))))))).(\lambda (a2: A).(\lambda (H2: (leq g a1 
+C).(\lambda (H5: (csubc g d1 c2)).(let H_y \def (sc3_cast g a0 TNil) in 
+(eq_ind_r T (THead (Flat Cast) (lift1 is u) (lift1 is t0)) (\lambda (t1: 
+T).(sc3 g a0 c2 t1)) (H_y c2 (lift1 is u) (H1 d1 is H4 c2 H5) (lift1 is t0) 
+(H3 d1 is H4 c2 H5)) (lift1 is (THead (Flat Cast) u t0)) (lift1_flat Cast is 
+u t0)))))))))))))))) (\lambda (c: C).(\lambda (t0: T).(\lambda (a1: 
+A).(\lambda (_: (arity g c t0 a1)).(\lambda (H1: ((\forall (d1: C).(\forall 
+(is: PList).((drop1 is d1 c) \to (\forall (c2: C).((csubc g d1 c2) \to (sc3 g 
+a1 c2 (lift1 is t0))))))))).(\lambda (a2: A).(\lambda (H2: (leq g a1 
 a2)).(\lambda (d1: C).(\lambda (is: PList).(\lambda (H3: (drop1 is d1 
-c)).(\lambda (c2: C).(\lambda (H4: (csubc g d1 c2)).(let TMP_589 \def (lift1 
-is t0) in (let TMP_590 \def (H1 d1 is H3 c2 H4) in (sc3_repl g a1 c2 TMP_589 
-TMP_590 a2 H2))))))))))))))) in (arity_ind g TMP_2 TMP_21 TMP_191 TMP_371 
-TMP_399 TMP_547 TMP_573 TMP_588 TMP_591 c1 t a H)))))))))))))).
+c)).(\lambda (c2: C).(\lambda (H4: (csubc g d1 c2)).(sc3_repl g a1 c2 (lift1 
+is t0) (H1 d1 is H3 c2 H4) a2 H2))))))))))))) c1 t a H))))).
 
 theorem sc3_arity:
  \forall (g: G).(\forall (c: C).(\forall (t: T).(\forall (a: A).((arity g c t 
 a) \to (sc3 g a c t)))))
 \def
  \lambda (g: G).(\lambda (c: C).(\lambda (t: T).(\lambda (a: A).(\lambda (H: 
-(arity g c t a)).(let H_y \def (sc3_arity_csubc g c t a H c PNil) in (let 
-TMP_1 \def (drop1_nil c) in (let TMP_2 \def (csubc_refl g c) in (H_y TMP_1 c 
-TMP_2)))))))).
+(arity g c t a)).(let H_y \def (sc3_arity_csubc g c t a H c PNil) in (H_y 
+(drop1_nil c) c (csubc_refl g c))))))).
 
index 13b7cdea2e6bedca9611984b12a7175b6c680aa5..6a9f0739b1d06f6581f03456d3925fd0716d76e7 100644 (file)
@@ -21,12 +21,9 @@ include "basic_1/arity/defs.ma".
 include "basic_1/drop1/defs.ma".
 
 let rec sc3 (g: G) (a: A) on a: C \to (T \to Prop) \def \lambda (c: 
-C).(\lambda (t: T).(match a with [(ASort h n) \Rightarrow (let TMP_7 \def 
-(ASort h n) in (let TMP_8 \def (arity g c t TMP_7) in (let TMP_9 \def (sn3 c 
-t) in (land TMP_8 TMP_9)))) | (AHead a1 a2) \Rightarrow (let TMP_1 \def 
-(AHead a1 a2) in (let TMP_2 \def (arity g c t TMP_1) in (let TMP_6 \def 
-(\forall (d: C).(\forall (w: T).((sc3 g a1 d w) \to (\forall (is: 
-PList).((drop1 is d c) \to (let TMP_3 \def (Flat Appl) in (let TMP_4 \def 
-(lift1 is t) in (let TMP_5 \def (THead TMP_3 w TMP_4) in (sc3 g a2 d 
-TMP_5))))))))) in (land TMP_2 TMP_6))))])).
+C).(\lambda (t: T).(match a with [(ASort h n) \Rightarrow (land (arity g c t 
+(ASort h n)) (sn3 c t)) | (AHead a1 a2) \Rightarrow (land (arity g c t (AHead 
+a1 a2)) (\forall (d: C).(\forall (w: T).((sc3 g a1 d w) \to (\forall (is: 
+PList).((drop1 is d c) \to (sc3 g a2 d (THead (Flat Appl) w (lift1 is 
+t)))))))))])).
 
index 67d97963b0f65f50b5f388bdfb2845652a2b90d1..8740e6edb1e4631e82d3886b23cfa08acee1ed33 100644 (file)
@@ -40,211 +40,152 @@ theorem sc3_arity_gen:
  \forall (g: G).(\forall (c: C).(\forall (t: T).(\forall (a: A).((sc3 g a c 
 t) \to (arity g c t a)))))
 \def
- \lambda (g: G).(\lambda (c: C).(\lambda (t: T).(\lambda (a: A).(let TMP_1 
-\def (\lambda (a0: A).((sc3 g a0 c t) \to (arity g c t a0))) in (let TMP_8 
-\def (\lambda (n: nat).(\lambda (n0: nat).(\lambda (H: (land (arity g c t 
-(ASort n n0)) (sn3 c t))).(let H0 \def H in (let TMP_2 \def (ASort n n0) in 
-(let TMP_3 \def (arity g c t TMP_2) in (let TMP_4 \def (sn3 c t) in (let 
-TMP_5 \def (ASort n n0) in (let TMP_6 \def (arity g c t TMP_5) in (let TMP_7 
-\def (\lambda (H1: (arity g c t (ASort n n0))).(\lambda (_: (sn3 c t)).H1)) 
-in (land_ind TMP_3 TMP_4 TMP_6 TMP_7 H0))))))))))) in (let TMP_18 \def 
-(\lambda (a0: A).(\lambda (_: (((sc3 g a0 c t) \to (arity g c t 
-a0)))).(\lambda (a1: A).(\lambda (_: (((sc3 g a1 c t) \to (arity g c t 
-a1)))).(\lambda (H1: (land (arity g c t (AHead a0 a1)) (\forall (d: 
+ \lambda (g: G).(\lambda (c: C).(\lambda (t: T).(\lambda (a: A).(A_ind 
+(\lambda (a0: A).((sc3 g a0 c t) \to (arity g c t a0))) (\lambda (n: 
+nat).(\lambda (n0: nat).(\lambda (H: (land (arity g c t (ASort n n0)) (sn3 c 
+t))).(let H0 \def H in (land_ind (arity g c t (ASort n n0)) (sn3 c t) (arity 
+g c t (ASort n n0)) (\lambda (H1: (arity g c t (ASort n n0))).(\lambda (_: 
+(sn3 c t)).H1)) H0))))) (\lambda (a0: A).(\lambda (_: (((sc3 g a0 c t) \to 
+(arity g c t a0)))).(\lambda (a1: A).(\lambda (_: (((sc3 g a1 c t) \to (arity 
+g c t a1)))).(\lambda (H1: (land (arity g c t (AHead a0 a1)) (\forall (d: 
 C).(\forall (w: T).((sc3 g a0 d w) \to (\forall (is: PList).((drop1 is d c) 
 \to (sc3 g a1 d (THead (Flat Appl) w (lift1 is t)))))))))).(let H2 \def H1 in 
-(let TMP_9 \def (AHead a0 a1) in (let TMP_10 \def (arity g c t TMP_9) in (let 
-TMP_14 \def (\forall (d: C).(\forall (w: T).((sc3 g a0 d w) \to (\forall (is: 
-PList).((drop1 is d c) \to (let TMP_11 \def (Flat Appl) in (let TMP_12 \def 
-(lift1 is t) in (let TMP_13 \def (THead TMP_11 w TMP_12) in (sc3 g a1 d 
-TMP_13))))))))) in (let TMP_15 \def (AHead a0 a1) in (let TMP_16 \def (arity 
-g c t TMP_15) in (let TMP_17 \def (\lambda (H3: (arity g c t (AHead a0 
-a1))).(\lambda (_: ((\forall (d: C).(\forall (w: T).((sc3 g a0 d w) \to 
-(\forall (is: PList).((drop1 is d c) \to (sc3 g a1 d (THead (Flat Appl) w 
-(lift1 is t)))))))))).H3)) in (land_ind TMP_10 TMP_14 TMP_16 TMP_17 
-H2))))))))))))) in (A_ind TMP_1 TMP_8 TMP_18 a))))))).
+(land_ind (arity g c t (AHead a0 a1)) (\forall (d: C).(\forall (w: T).((sc3 g 
+a0 d w) \to (\forall (is: PList).((drop1 is d c) \to (sc3 g a1 d (THead (Flat 
+Appl) w (lift1 is t)))))))) (arity g c t (AHead a0 a1)) (\lambda (H3: (arity 
+g c t (AHead a0 a1))).(\lambda (_: ((\forall (d: C).(\forall (w: T).((sc3 g 
+a0 d w) \to (\forall (is: PList).((drop1 is d c) \to (sc3 g a1 d (THead (Flat 
+Appl) w (lift1 is t)))))))))).H3)) H2))))))) a)))).
 
 theorem sc3_repl:
  \forall (g: G).(\forall (a1: A).(\forall (c: C).(\forall (t: T).((sc3 g a1 c 
 t) \to (\forall (a2: A).((leq g a1 a2) \to (sc3 g a2 c t)))))))
 \def
- \lambda (g: G).(\lambda (a1: A).(let TMP_1 \def (\lambda (a: A).(\forall (c: 
+ \lambda (g: G).(\lambda (a1: A).(llt_wf_ind (\lambda (a: A).(\forall (c: 
 C).(\forall (t: T).((sc3 g a c t) \to (\forall (a2: A).((leq g a a2) \to (sc3 
-g a2 c t))))))) in (let TMP_73 \def (\lambda (a2: A).(let TMP_2 \def (\lambda 
-(a: A).(((\forall (a3: A).((llt a3 a) \to (\forall (c: C).(\forall (t: 
-T).((sc3 g a3 c t) \to (\forall (a4: A).((leq g a3 a4) \to (sc3 g a4 c 
-t))))))))) \to (\forall (c: C).(\forall (t: T).((sc3 g a c t) \to (\forall 
-(a3: A).((leq g a a3) \to (sc3 g a3 c t)))))))) in (let TMP_28 \def (\lambda 
-(n: nat).(\lambda (n0: nat).(\lambda (_: ((\forall (a3: A).((llt a3 (ASort n 
-n0)) \to (\forall (c: C).(\forall (t: T).((sc3 g a3 c t) \to (\forall (a4: 
-A).((leq g a3 a4) \to (sc3 g a4 c t)))))))))).(\lambda (c: C).(\lambda (t: 
-T).(\lambda (H0: (land (arity g c t (ASort n n0)) (sn3 c t))).(\lambda (a3: 
-A).(\lambda (H1: (leq g (ASort n n0) a3)).(let H2 \def H0 in (let TMP_3 \def 
-(ASort n n0) in (let TMP_4 \def (arity g c t TMP_3) in (let TMP_5 \def (sn3 c 
-t) in (let TMP_6 \def (sc3 g a3 c t) in (let TMP_27 \def (\lambda (H3: (arity 
-g c t (ASort n n0))).(\lambda (H4: (sn3 c t)).(let TMP_7 \def (ASort n n0) in 
-(let H_y \def (arity_repl g c t TMP_7 H3 a3 H1) in (let H_x \def 
-(leq_gen_sort1 g n n0 a3 H1) in (let H5 \def H_x in (let TMP_12 \def (\lambda 
-(n2: nat).(\lambda (h2: nat).(\lambda (k: nat).(let TMP_8 \def (ASort n n0) 
-in (let TMP_9 \def (aplus g TMP_8 k) in (let TMP_10 \def (ASort h2 n2) in 
-(let TMP_11 \def (aplus g TMP_10 k) in (eq A TMP_9 TMP_11)))))))) in (let 
-TMP_14 \def (\lambda (n2: nat).(\lambda (h2: nat).(\lambda (_: nat).(let 
-TMP_13 \def (ASort h2 n2) in (eq A a3 TMP_13))))) in (let TMP_15 \def (sc3 g 
-a3 c t) in (let TMP_26 \def (\lambda (x0: nat).(\lambda (x1: nat).(\lambda 
-(x2: nat).(\lambda (_: (eq A (aplus g (ASort n n0) x2) (aplus g (ASort x1 x0) 
-x2))).(\lambda (H7: (eq A a3 (ASort x1 x0))).(let TMP_16 \def (\lambda (e: 
-A).e) in (let TMP_17 \def (ASort x1 x0) in (let H8 \def (f_equal A A TMP_16 
-a3 TMP_17 H7) in (let TMP_18 \def (\lambda (a: A).(arity g c t a)) in (let 
-TMP_19 \def (ASort x1 x0) in (let H9 \def (eq_ind A a3 TMP_18 H_y TMP_19 H8) 
-in (let TMP_20 \def (ASort x1 x0) in (let TMP_21 \def (\lambda (a: A).(sc3 g 
-a c t)) in (let TMP_22 \def (ASort x1 x0) in (let TMP_23 \def (arity g c t 
-TMP_22) in (let TMP_24 \def (sn3 c t) in (let TMP_25 \def (conj TMP_23 TMP_24 
-H9 H4) in (eq_ind_r A TMP_20 TMP_21 TMP_25 a3 H8)))))))))))))))))) in 
-(ex2_3_ind nat nat nat TMP_12 TMP_14 TMP_15 TMP_26 H5))))))))))) in (land_ind 
-TMP_4 TMP_5 TMP_6 TMP_27 H2))))))))))))))) in (let TMP_72 \def (\lambda (a: 
-A).(\lambda (_: ((((\forall (a3: A).((llt a3 a) \to (\forall (c: C).(\forall 
-(t: T).((sc3 g a3 c t) \to (\forall (a4: A).((leq g a3 a4) \to (sc3 g a4 c 
-t))))))))) \to (\forall (c: C).(\forall (t: T).((sc3 g a c t) \to (\forall 
-(a3: A).((leq g a a3) \to (sc3 g a3 c t))))))))).(\lambda (a0: A).(\lambda 
-(H0: ((((\forall (a3: A).((llt a3 a0) \to (\forall (c: C).(\forall (t: 
-T).((sc3 g a3 c t) \to (\forall (a4: A).((leq g a3 a4) \to (sc3 g a4 c 
-t))))))))) \to (\forall (c: C).(\forall (t: T).((sc3 g a0 c t) \to (\forall 
-(a3: A).((leq g a0 a3) \to (sc3 g a3 c t))))))))).(\lambda (H1: ((\forall 
-(a3: A).((llt a3 (AHead a a0)) \to (\forall (c: C).(\forall (t: T).((sc3 g a3 
+g a2 c t))))))) (\lambda (a2: A).(A_ind (\lambda (a: A).(((\forall (a3: 
+A).((llt a3 a) \to (\forall (c: C).(\forall (t: T).((sc3 g a3 c t) \to 
+(\forall (a4: A).((leq g a3 a4) \to (sc3 g a4 c t))))))))) \to (\forall (c: 
+C).(\forall (t: T).((sc3 g a c t) \to (\forall (a3: A).((leq g a a3) \to (sc3 
+g a3 c t)))))))) (\lambda (n: nat).(\lambda (n0: nat).(\lambda (_: ((\forall 
+(a3: A).((llt a3 (ASort n n0)) \to (\forall (c: C).(\forall (t: T).((sc3 g a3 
 c t) \to (\forall (a4: A).((leq g a3 a4) \to (sc3 g a4 c t)))))))))).(\lambda 
-(c: C).(\lambda (t: T).(\lambda (H2: (land (arity g c t (AHead a a0)) 
-(\forall (d: C).(\forall (w: T).((sc3 g a d w) \to (\forall (is: 
-PList).((drop1 is d c) \to (sc3 g a0 d (THead (Flat Appl) w (lift1 is 
+(c: C).(\lambda (t: T).(\lambda (H0: (land (arity g c t (ASort n n0)) (sn3 c 
+t))).(\lambda (a3: A).(\lambda (H1: (leq g (ASort n n0) a3)).(let H2 \def H0 
+in (land_ind (arity g c t (ASort n n0)) (sn3 c t) (sc3 g a3 c t) (\lambda 
+(H3: (arity g c t (ASort n n0))).(\lambda (H4: (sn3 c t)).(let H_y \def 
+(arity_repl g c t (ASort n n0) H3 a3 H1) in (let H_x \def (leq_gen_sort1 g n 
+n0 a3 H1) in (let H5 \def H_x in (ex2_3_ind nat nat nat (\lambda (n2: 
+nat).(\lambda (h2: nat).(\lambda (k: nat).(eq A (aplus g (ASort n n0) k) 
+(aplus g (ASort h2 n2) k))))) (\lambda (n2: nat).(\lambda (h2: nat).(\lambda 
+(_: nat).(eq A a3 (ASort h2 n2))))) (sc3 g a3 c t) (\lambda (x0: 
+nat).(\lambda (x1: nat).(\lambda (x2: nat).(\lambda (_: (eq A (aplus g (ASort 
+n n0) x2) (aplus g (ASort x1 x0) x2))).(\lambda (H7: (eq A a3 (ASort x1 
+x0))).(let H8 \def (f_equal A A (\lambda (e: A).e) a3 (ASort x1 x0) H7) in 
+(let H9 \def (eq_ind A a3 (\lambda (a: A).(arity g c t a)) H_y (ASort x1 x0) 
+H8) in (eq_ind_r A (ASort x1 x0) (\lambda (a: A).(sc3 g a c t)) (conj (arity 
+g c t (ASort x1 x0)) (sn3 c t) H9 H4) a3 H8)))))))) H5)))))) H2)))))))))) 
+(\lambda (a: A).(\lambda (_: ((((\forall (a3: A).((llt a3 a) \to (\forall (c: 
+C).(\forall (t: T).((sc3 g a3 c t) \to (\forall (a4: A).((leq g a3 a4) \to 
+(sc3 g a4 c t))))))))) \to (\forall (c: C).(\forall (t: T).((sc3 g a c t) \to 
+(\forall (a3: A).((leq g a a3) \to (sc3 g a3 c t))))))))).(\lambda (a0: 
+A).(\lambda (H0: ((((\forall (a3: A).((llt a3 a0) \to (\forall (c: 
+C).(\forall (t: T).((sc3 g a3 c t) \to (\forall (a4: A).((leq g a3 a4) \to 
+(sc3 g a4 c t))))))))) \to (\forall (c: C).(\forall (t: T).((sc3 g a0 c t) 
+\to (\forall (a3: A).((leq g a0 a3) \to (sc3 g a3 c t))))))))).(\lambda (H1: 
+((\forall (a3: A).((llt a3 (AHead a a0)) \to (\forall (c: C).(\forall (t: 
+T).((sc3 g a3 c t) \to (\forall (a4: A).((leq g a3 a4) \to (sc3 g a4 c 
+t)))))))))).(\lambda (c: C).(\lambda (t: T).(\lambda (H2: (land (arity g c t 
+(AHead a a0)) (\forall (d: C).(\forall (w: T).((sc3 g a d w) \to (\forall 
+(is: PList).((drop1 is d c) \to (sc3 g a0 d (THead (Flat Appl) w (lift1 is 
 t)))))))))).(\lambda (a3: A).(\lambda (H3: (leq g (AHead a a0) a3)).(let H4 
-\def H2 in (let TMP_29 \def (AHead a a0) in (let TMP_30 \def (arity g c t 
-TMP_29) in (let TMP_34 \def (\forall (d: C).(\forall (w: T).((sc3 g a d w) 
-\to (\forall (is: PList).((drop1 is d c) \to (let TMP_31 \def (Flat Appl) in 
-(let TMP_32 \def (lift1 is t) in (let TMP_33 \def (THead TMP_31 w TMP_32) in 
-(sc3 g a0 d TMP_33))))))))) in (let TMP_35 \def (sc3 g a3 c t) in (let TMP_71 
-\def (\lambda (H5: (arity g c t (AHead a a0))).(\lambda (H6: ((\forall (d: 
-C).(\forall (w: T).((sc3 g a d w) \to (\forall (is: PList).((drop1 is d c) 
-\to (sc3 g a0 d (THead (Flat Appl) w (lift1 is t)))))))))).(let H_x \def 
-(leq_gen_head1 g a a0 a3 H3) in (let H7 \def H_x in (let TMP_36 \def (\lambda 
-(a4: A).(\lambda (_: A).(leq g a a4))) in (let TMP_37 \def (\lambda (_: 
-A).(\lambda (a5: A).(leq g a0 a5))) in (let TMP_39 \def (\lambda (a4: 
-A).(\lambda (a5: A).(let TMP_38 \def (AHead a4 a5) in (eq A a3 TMP_38)))) in 
-(let TMP_40 \def (sc3 g a3 c t) in (let TMP_70 \def (\lambda (x0: A).(\lambda 
-(x1: A).(\lambda (H8: (leq g a x0)).(\lambda (H9: (leq g a0 x1)).(\lambda 
-(H10: (eq A a3 (AHead x0 x1))).(let TMP_41 \def (\lambda (e: A).e) in (let 
-TMP_42 \def (AHead x0 x1) in (let H11 \def (f_equal A A TMP_41 a3 TMP_42 H10) 
-in (let TMP_43 \def (AHead x0 x1) in (let TMP_44 \def (\lambda (a4: A).(sc3 g 
-a4 c t)) in (let TMP_45 \def (AHead x0 x1) in (let TMP_46 \def (arity g c t 
-TMP_45) in (let TMP_50 \def (\forall (d: C).(\forall (w: T).((sc3 g x0 d w) 
-\to (\forall (is: PList).((drop1 is d c) \to (let TMP_47 \def (Flat Appl) in 
-(let TMP_48 \def (lift1 is t) in (let TMP_49 \def (THead TMP_47 w TMP_48) in 
-(sc3 g x1 d TMP_49))))))))) in (let TMP_51 \def (AHead a a0) in (let TMP_52 
-\def (AHead x0 x1) in (let TMP_53 \def (leq_head g a x0 H8 a0 x1 H9) in (let 
-TMP_54 \def (arity_repl g c t TMP_51 H5 TMP_52 TMP_53) in (let TMP_68 \def 
-(\lambda (d: C).(\lambda (w: T).(\lambda (H12: (sc3 g x0 d w)).(\lambda (is: 
-PList).(\lambda (H13: (drop1 is d c)).(let TMP_58 \def (\lambda (a4: 
-A).(\lambda (H14: (llt a4 a0)).(\lambda (c0: C).(\lambda (t0: T).(\lambda 
-(H15: (sc3 g a4 c0 t0)).(\lambda (a5: A).(\lambda (H16: (leq g a4 a5)).(let 
-TMP_55 \def (AHead a a0) in (let TMP_56 \def (llt_head_dx a a0) in (let 
-TMP_57 \def (llt_trans a4 a0 TMP_55 H14 TMP_56) in (H1 a4 TMP_57 c0 t0 H15 a5 
-H16))))))))))) in (let TMP_59 \def (Flat Appl) in (let TMP_60 \def (lift1 is 
-t) in (let TMP_61 \def (THead TMP_59 w TMP_60) in (let TMP_62 \def (AHead a 
-a0) in (let TMP_63 \def (llt_head_sx a a0) in (let TMP_64 \def (llt_repl g a 
-x0 H8 TMP_62 TMP_63) in (let TMP_65 \def (leq_sym g a x0 H8) in (let TMP_66 
-\def (H1 x0 TMP_64 d w H12 a TMP_65) in (let TMP_67 \def (H6 d w TMP_66 is 
-H13) in (H0 TMP_58 d TMP_61 TMP_67 x1 H9)))))))))))))))) in (let TMP_69 \def 
-(conj TMP_46 TMP_50 TMP_54 TMP_68) in (eq_ind_r A TMP_43 TMP_44 TMP_69 a3 
-H11)))))))))))))))))))) in (ex3_2_ind A A TMP_36 TMP_37 TMP_39 TMP_40 TMP_70 
-H7)))))))))) in (land_ind TMP_30 TMP_34 TMP_35 TMP_71 H4))))))))))))))))) in 
-(A_ind TMP_2 TMP_28 TMP_72 a2))))) in (llt_wf_ind TMP_1 TMP_73 a1)))).
+\def H2 in (land_ind (arity g c t (AHead a a0)) (\forall (d: C).(\forall (w: 
+T).((sc3 g a d w) \to (\forall (is: PList).((drop1 is d c) \to (sc3 g a0 d 
+(THead (Flat Appl) w (lift1 is t)))))))) (sc3 g a3 c t) (\lambda (H5: (arity 
+g c t (AHead a a0))).(\lambda (H6: ((\forall (d: C).(\forall (w: T).((sc3 g a 
+d w) \to (\forall (is: PList).((drop1 is d c) \to (sc3 g a0 d (THead (Flat 
+Appl) w (lift1 is t)))))))))).(let H_x \def (leq_gen_head1 g a a0 a3 H3) in 
+(let H7 \def H_x in (ex3_2_ind A A (\lambda (a4: A).(\lambda (_: A).(leq g a 
+a4))) (\lambda (_: A).(\lambda (a5: A).(leq g a0 a5))) (\lambda (a4: 
+A).(\lambda (a5: A).(eq A a3 (AHead a4 a5)))) (sc3 g a3 c t) (\lambda (x0: 
+A).(\lambda (x1: A).(\lambda (H8: (leq g a x0)).(\lambda (H9: (leq g a0 
+x1)).(\lambda (H10: (eq A a3 (AHead x0 x1))).(let H11 \def (f_equal A A 
+(\lambda (e: A).e) a3 (AHead x0 x1) H10) in (eq_ind_r A (AHead x0 x1) 
+(\lambda (a4: A).(sc3 g a4 c t)) (conj (arity g c t (AHead x0 x1)) (\forall 
+(d: C).(\forall (w: T).((sc3 g x0 d w) \to (\forall (is: PList).((drop1 is d 
+c) \to (sc3 g x1 d (THead (Flat Appl) w (lift1 is t)))))))) (arity_repl g c t 
+(AHead a a0) H5 (AHead x0 x1) (leq_head g a x0 H8 a0 x1 H9)) (\lambda (d: 
+C).(\lambda (w: T).(\lambda (H12: (sc3 g x0 d w)).(\lambda (is: 
+PList).(\lambda (H13: (drop1 is d c)).(H0 (\lambda (a4: A).(\lambda (H14: 
+(llt a4 a0)).(\lambda (c0: C).(\lambda (t0: T).(\lambda (H15: (sc3 g a4 c0 
+t0)).(\lambda (a5: A).(\lambda (H16: (leq g a4 a5)).(H1 a4 (llt_trans a4 a0 
+(AHead a a0) H14 (llt_head_dx a a0)) c0 t0 H15 a5 H16)))))))) d (THead (Flat 
+Appl) w (lift1 is t)) (H6 d w (H1 x0 (llt_repl g a x0 H8 (AHead a a0) 
+(llt_head_sx a a0)) d w H12 a (leq_sym g a x0 H8)) is H13) x1 H9))))))) a3 
+H11))))))) H7))))) H4)))))))))))) a2)) a1)).
 
 theorem sc3_lift:
  \forall (g: G).(\forall (a: A).(\forall (e: C).(\forall (t: T).((sc3 g a e 
 t) \to (\forall (c: C).(\forall (h: nat).(\forall (d: nat).((drop h d c e) 
 \to (sc3 g a c (lift h d t))))))))))
 \def
- \lambda (g: G).(\lambda (a: A).(let TMP_2 \def (\lambda (a0: A).(\forall (e: 
+ \lambda (g: G).(\lambda (a: A).(A_ind (\lambda (a0: A).(\forall (e: 
 C).(\forall (t: T).((sc3 g a0 e t) \to (\forall (c: C).(\forall (h: 
-nat).(\forall (d: nat).((drop h d c e) \to (let TMP_1 \def (lift h d t) in 
-(sc3 g a0 c TMP_1)))))))))) in (let TMP_21 \def (\lambda (n: nat).(\lambda 
-(n0: nat).(\lambda (e: C).(\lambda (t: T).(\lambda (H: (land (arity g e t 
-(ASort n n0)) (sn3 e t))).(\lambda (c: C).(\lambda (h: nat).(\lambda (d: 
-nat).(\lambda (H0: (drop h d c e)).(let H1 \def H in (let TMP_3 \def (ASort n 
-n0) in (let TMP_4 \def (arity g e t TMP_3) in (let TMP_5 \def (sn3 e t) in 
-(let TMP_6 \def (lift h d t) in (let TMP_7 \def (ASort n n0) in (let TMP_8 
-\def (arity g c TMP_6 TMP_7) in (let TMP_9 \def (lift h d t) in (let TMP_10 
-\def (sn3 c TMP_9) in (let TMP_11 \def (land TMP_8 TMP_10) in (let TMP_20 
-\def (\lambda (H2: (arity g e t (ASort n n0))).(\lambda (H3: (sn3 e t)).(let 
-TMP_12 \def (lift h d t) in (let TMP_13 \def (ASort n n0) in (let TMP_14 \def 
-(arity g c TMP_12 TMP_13) in (let TMP_15 \def (lift h d t) in (let TMP_16 
-\def (sn3 c TMP_15) in (let TMP_17 \def (ASort n n0) in (let TMP_18 \def 
-(arity_lift g e t TMP_17 H2 c h d H0) in (let TMP_19 \def (sn3_lift e t H3 c 
-h d H0) in (conj TMP_14 TMP_16 TMP_18 TMP_19))))))))))) in (land_ind TMP_4 
-TMP_5 TMP_11 TMP_20 H1))))))))))))))))))))) in (let TMP_60 \def (\lambda (a0: 
-A).(\lambda (_: ((\forall (e: C).(\forall (t: T).((sc3 g a0 e t) \to (\forall 
-(c: C).(\forall (h: nat).(\forall (d: nat).((drop h d c e) \to (sc3 g a0 c 
-(lift h d t))))))))))).(\lambda (a1: A).(\lambda (_: ((\forall (e: 
-C).(\forall (t: T).((sc3 g a1 e t) \to (\forall (c: C).(\forall (h: 
-nat).(\forall (d: nat).((drop h d c e) \to (sc3 g a1 c (lift h d 
-t))))))))))).(\lambda (e: C).(\lambda (t: T).(\lambda (H1: (land (arity g e t 
-(AHead a0 a1)) (\forall (d: C).(\forall (w: T).((sc3 g a0 d w) \to (\forall 
-(is: PList).((drop1 is d e) \to (sc3 g a1 d (THead (Flat Appl) w (lift1 is 
-t)))))))))).(\lambda (c: C).(\lambda (h: nat).(\lambda (d: nat).(\lambda (H2: 
-(drop h d c e)).(let H3 \def H1 in (let TMP_22 \def (AHead a0 a1) in (let 
-TMP_23 \def (arity g e t TMP_22) in (let TMP_27 \def (\forall (d0: 
-C).(\forall (w: T).((sc3 g a0 d0 w) \to (\forall (is: PList).((drop1 is d0 e) 
-\to (let TMP_24 \def (Flat Appl) in (let TMP_25 \def (lift1 is t) in (let 
-TMP_26 \def (THead TMP_24 w TMP_25) in (sc3 g a1 d0 TMP_26))))))))) in (let 
-TMP_28 \def (lift h d t) in (let TMP_29 \def (AHead a0 a1) in (let TMP_30 
-\def (arity g c TMP_28 TMP_29) in (let TMP_35 \def (\forall (d0: C).(\forall 
-(w: T).((sc3 g a0 d0 w) \to (\forall (is: PList).((drop1 is d0 c) \to (let 
-TMP_31 \def (Flat Appl) in (let TMP_32 \def (lift h d t) in (let TMP_33 \def 
-(lift1 is TMP_32) in (let TMP_34 \def (THead TMP_31 w TMP_33) in (sc3 g a1 d0 
-TMP_34)))))))))) in (let TMP_36 \def (land TMP_30 TMP_35) in (let TMP_59 \def 
-(\lambda (H4: (arity g e t (AHead a0 a1))).(\lambda (H5: ((\forall (d0: 
-C).(\forall (w: T).((sc3 g a0 d0 w) \to (\forall (is: PList).((drop1 is d0 e) 
-\to (sc3 g a1 d0 (THead (Flat Appl) w (lift1 is t)))))))))).(let TMP_37 \def 
-(lift h d t) in (let TMP_38 \def (AHead a0 a1) in (let TMP_39 \def (arity g c 
-TMP_37 TMP_38) in (let TMP_44 \def (\forall (d0: C).(\forall (w: T).((sc3 g 
-a0 d0 w) \to (\forall (is: PList).((drop1 is d0 c) \to (let TMP_40 \def (Flat 
-Appl) in (let TMP_41 \def (lift h d t) in (let TMP_42 \def (lift1 is TMP_41) 
-in (let TMP_43 \def (THead TMP_40 w TMP_42) in (sc3 g a1 d0 TMP_43)))))))))) 
-in (let TMP_45 \def (AHead a0 a1) in (let TMP_46 \def (arity_lift g e t 
-TMP_45 H4 c h d H2) in (let TMP_58 \def (\lambda (d0: C).(\lambda (w: 
+nat).(\forall (d: nat).((drop h d c e) \to (sc3 g a0 c (lift h d t)))))))))) 
+(\lambda (n: nat).(\lambda (n0: nat).(\lambda (e: C).(\lambda (t: T).(\lambda 
+(H: (land (arity g e t (ASort n n0)) (sn3 e t))).(\lambda (c: C).(\lambda (h: 
+nat).(\lambda (d: nat).(\lambda (H0: (drop h d c e)).(let H1 \def H in 
+(land_ind (arity g e t (ASort n n0)) (sn3 e t) (land (arity g c (lift h d t) 
+(ASort n n0)) (sn3 c (lift h d t))) (\lambda (H2: (arity g e t (ASort n 
+n0))).(\lambda (H3: (sn3 e t)).(conj (arity g c (lift h d t) (ASort n n0)) 
+(sn3 c (lift h d t)) (arity_lift g e t (ASort n n0) H2 c h d H0) (sn3_lift e 
+t H3 c h d H0)))) H1))))))))))) (\lambda (a0: A).(\lambda (_: ((\forall (e: 
+C).(\forall (t: T).((sc3 g a0 e t) \to (\forall (c: C).(\forall (h: 
+nat).(\forall (d: nat).((drop h d c e) \to (sc3 g a0 c (lift h d 
+t))))))))))).(\lambda (a1: A).(\lambda (_: ((\forall (e: C).(\forall (t: 
+T).((sc3 g a1 e t) \to (\forall (c: C).(\forall (h: nat).(\forall (d: 
+nat).((drop h d c e) \to (sc3 g a1 c (lift h d t))))))))))).(\lambda (e: 
+C).(\lambda (t: T).(\lambda (H1: (land (arity g e t (AHead a0 a1)) (\forall 
+(d: C).(\forall (w: T).((sc3 g a0 d w) \to (\forall (is: PList).((drop1 is d 
+e) \to (sc3 g a1 d (THead (Flat Appl) w (lift1 is t)))))))))).(\lambda (c: 
+C).(\lambda (h: nat).(\lambda (d: nat).(\lambda (H2: (drop h d c e)).(let H3 
+\def H1 in (land_ind (arity g e t (AHead a0 a1)) (\forall (d0: C).(\forall 
+(w: T).((sc3 g a0 d0 w) \to (\forall (is: PList).((drop1 is d0 e) \to (sc3 g 
+a1 d0 (THead (Flat Appl) w (lift1 is t)))))))) (land (arity g c (lift h d t) 
+(AHead a0 a1)) (\forall (d0: C).(\forall (w: T).((sc3 g a0 d0 w) \to (\forall 
+(is: PList).((drop1 is d0 c) \to (sc3 g a1 d0 (THead (Flat Appl) w (lift1 is 
+(lift h d t)))))))))) (\lambda (H4: (arity g e t (AHead a0 a1))).(\lambda 
+(H5: ((\forall (d0: C).(\forall (w: T).((sc3 g a0 d0 w) \to (\forall (is: 
+PList).((drop1 is d0 e) \to (sc3 g a1 d0 (THead (Flat Appl) w (lift1 is 
+t)))))))))).(conj (arity g c (lift h d t) (AHead a0 a1)) (\forall (d0: 
+C).(\forall (w: T).((sc3 g a0 d0 w) \to (\forall (is: PList).((drop1 is d0 c) 
+\to (sc3 g a1 d0 (THead (Flat Appl) w (lift1 is (lift h d t))))))))) 
+(arity_lift g e t (AHead a0 a1) H4 c h d H2) (\lambda (d0: C).(\lambda (w: 
 T).(\lambda (H6: (sc3 g a0 d0 w)).(\lambda (is: PList).(\lambda (H7: (drop1 
-is d0 c)).(let TMP_47 \def (PConsTail is h d) in (let H_y \def (H5 d0 w H6 
-TMP_47) in (let TMP_48 \def (PConsTail is h d) in (let TMP_49 \def (lift1 
-TMP_48 t) in (let TMP_52 \def (\lambda (t0: T).(let TMP_50 \def (Flat Appl) 
-in (let TMP_51 \def (THead TMP_50 w t0) in (sc3 g a1 d0 TMP_51)))) in (let 
-TMP_53 \def (drop1_cons_tail c e h d H2 is d0 H7) in (let TMP_54 \def (H_y 
-TMP_53) in (let TMP_55 \def (lift h d t) in (let TMP_56 \def (lift1 is 
-TMP_55) in (let TMP_57 \def (lift1_cons_tail t h d is) in (eq_ind T TMP_49 
-TMP_52 TMP_54 TMP_56 TMP_57)))))))))))))))) in (conj TMP_39 TMP_44 TMP_46 
-TMP_58)))))))))) in (land_ind TMP_23 TMP_27 TMP_36 TMP_59 
-H3)))))))))))))))))))))) in (A_ind TMP_2 TMP_21 TMP_60 a))))).
+is d0 c)).(let H_y \def (H5 d0 w H6 (PConsTail is h d)) in (eq_ind T (lift1 
+(PConsTail is h d) t) (\lambda (t0: T).(sc3 g a1 d0 (THead (Flat Appl) w 
+t0))) (H_y (drop1_cons_tail c e h d H2 is d0 H7)) (lift1 is (lift h d t)) 
+(lift1_cons_tail t h d is))))))))))) H3))))))))))))) a)).
 
 theorem sc3_lift1:
  \forall (g: G).(\forall (e: C).(\forall (a: A).(\forall (hds: 
 PList).(\forall (c: C).(\forall (t: T).((sc3 g a e t) \to ((drop1 hds c e) 
 \to (sc3 g a c (lift1 hds t)))))))))
 \def
- \lambda (g: G).(\lambda (e: C).(\lambda (a: A).(\lambda (hds: PList).(let 
-TMP_2 \def (\lambda (p: PList).(\forall (c: C).(\forall (t: T).((sc3 g a e t) 
-\to ((drop1 p c e) \to (let TMP_1 \def (lift1 p t) in (sc3 g a c TMP_1))))))) 
-in (let TMP_4 \def (\lambda (c: C).(\lambda (t: T).(\lambda (H: (sc3 g a e 
-t)).(\lambda (H0: (drop1 PNil c e)).(let H_y \def (drop1_gen_pnil c e H0) in 
-(let TMP_3 \def (\lambda (c0: C).(sc3 g a c0 t)) in (eq_ind_r C e TMP_3 H c 
-H_y))))))) in (let TMP_13 \def (\lambda (n: nat).(\lambda (n0: nat).(\lambda 
-(p: PList).(\lambda (H: ((\forall (c: C).(\forall (t: T).((sc3 g a e t) \to 
-((drop1 p c e) \to (sc3 g a c (lift1 p t)))))))).(\lambda (c: C).(\lambda (t: 
-T).(\lambda (H0: (sc3 g a e t)).(\lambda (H1: (drop1 (PCons n n0 p) c 
-e)).(let H_x \def (drop1_gen_pcons c e p n n0 H1) in (let H2 \def H_x in (let 
-TMP_5 \def (\lambda (c2: C).(drop n n0 c c2)) in (let TMP_6 \def (\lambda 
-(c2: C).(drop1 p c2 e)) in (let TMP_7 \def (lift1 p t) in (let TMP_8 \def 
-(lift n n0 TMP_7) in (let TMP_9 \def (sc3 g a c TMP_8) in (let TMP_12 \def 
-(\lambda (x: C).(\lambda (H3: (drop n n0 c x)).(\lambda (H4: (drop1 p x 
-e)).(let TMP_10 \def (lift1 p t) in (let TMP_11 \def (H x t H0 H4) in 
-(sc3_lift g a x TMP_10 TMP_11 c n n0 H3)))))) in (ex2_ind C TMP_5 TMP_6 TMP_9 
-TMP_12 H2))))))))))))))))) in (PList_ind TMP_2 TMP_4 TMP_13 hds))))))).
+ \lambda (g: G).(\lambda (e: C).(\lambda (a: A).(\lambda (hds: 
+PList).(PList_ind (\lambda (p: PList).(\forall (c: C).(\forall (t: T).((sc3 g 
+a e t) \to ((drop1 p c e) \to (sc3 g a c (lift1 p t))))))) (\lambda (c: 
+C).(\lambda (t: T).(\lambda (H: (sc3 g a e t)).(\lambda (H0: (drop1 PNil c 
+e)).(let H_y \def (drop1_gen_pnil c e H0) in (eq_ind_r C e (\lambda (c0: 
+C).(sc3 g a c0 t)) H c H_y)))))) (\lambda (n: nat).(\lambda (n0: 
+nat).(\lambda (p: PList).(\lambda (H: ((\forall (c: C).(\forall (t: T).((sc3 
+g a e t) \to ((drop1 p c e) \to (sc3 g a c (lift1 p t)))))))).(\lambda (c: 
+C).(\lambda (t: T).(\lambda (H0: (sc3 g a e t)).(\lambda (H1: (drop1 (PCons n 
+n0 p) c e)).(let H_x \def (drop1_gen_pcons c e p n n0 H1) in (let H2 \def H_x 
+in (ex2_ind C (\lambda (c2: C).(drop n n0 c c2)) (\lambda (c2: C).(drop1 p c2 
+e)) (sc3 g a c (lift n n0 (lift1 p t))) (\lambda (x: C).(\lambda (H3: (drop n 
+n0 c x)).(\lambda (H4: (drop1 p x e)).(sc3_lift g a x (lift1 p t) (H x t H0 
+H4) c n n0 H3)))) H2))))))))))) hds)))).
 
 theorem sc3_abbr:
  \forall (g: G).(\forall (a: A).(\forall (vs: TList).(\forall (i: 
@@ -252,42 +193,28 @@ nat).(\forall (d: C).(\forall (v: T).(\forall (c: C).((sc3 g a c (THeads
 (Flat Appl) vs (lift (S i) O v))) \to ((getl i c (CHead d (Bind Abbr) v)) \to 
 (sc3 g a c (THeads (Flat Appl) vs (TLRef i)))))))))))
 \def
- \lambda (g: G).(\lambda (a: A).(let TMP_4 \def (\lambda (a0: A).(\forall 
-(vs: TList).(\forall (i: nat).(\forall (d: C).(\forall (v: T).(\forall (c: 
+ \lambda (g: G).(\lambda (a: A).(A_ind (\lambda (a0: A).(\forall (vs: 
+TList).(\forall (i: nat).(\forall (d: C).(\forall (v: T).(\forall (c: 
 C).((sc3 g a0 c (THeads (Flat Appl) vs (lift (S i) O v))) \to ((getl i c 
-(CHead d (Bind Abbr) v)) \to (let TMP_1 \def (Flat Appl) in (let TMP_2 \def 
-(TLRef i) in (let TMP_3 \def (THeads TMP_1 vs TMP_2) in (sc3 g a0 c 
-TMP_3)))))))))))) in (let TMP_39 \def (\lambda (n: nat).(\lambda (n0: 
-nat).(\lambda (vs: TList).(\lambda (i: nat).(\lambda (d: C).(\lambda (v: 
-T).(\lambda (c: C).(\lambda (H: (land (arity g c (THeads (Flat Appl) vs (lift 
-(S i) O v)) (ASort n n0)) (sn3 c (THeads (Flat Appl) vs (lift (S i) O 
-v))))).(\lambda (H0: (getl i c (CHead d (Bind Abbr) v))).(let H1 \def H in 
-(let TMP_5 \def (Flat Appl) in (let TMP_6 \def (S i) in (let TMP_7 \def (lift 
-TMP_6 O v) in (let TMP_8 \def (THeads TMP_5 vs TMP_7) in (let TMP_9 \def 
-(ASort n n0) in (let TMP_10 \def (arity g c TMP_8 TMP_9) in (let TMP_11 \def 
-(Flat Appl) in (let TMP_12 \def (S i) in (let TMP_13 \def (lift TMP_12 O v) 
-in (let TMP_14 \def (THeads TMP_11 vs TMP_13) in (let TMP_15 \def (sn3 c 
-TMP_14) in (let TMP_16 \def (Flat Appl) in (let TMP_17 \def (TLRef i) in (let 
-TMP_18 \def (THeads TMP_16 vs TMP_17) in (let TMP_19 \def (ASort n n0) in 
-(let TMP_20 \def (arity g c TMP_18 TMP_19) in (let TMP_21 \def (Flat Appl) in 
-(let TMP_22 \def (TLRef i) in (let TMP_23 \def (THeads TMP_21 vs TMP_22) in 
-(let TMP_24 \def (sn3 c TMP_23) in (let TMP_25 \def (land TMP_20 TMP_24) in 
-(let TMP_38 \def (\lambda (H2: (arity g c (THeads (Flat Appl) vs (lift (S i) 
-O v)) (ASort n n0))).(\lambda (H3: (sn3 c (THeads (Flat Appl) vs (lift (S i) 
-O v)))).(let TMP_26 \def (Flat Appl) in (let TMP_27 \def (TLRef i) in (let 
-TMP_28 \def (THeads TMP_26 vs TMP_27) in (let TMP_29 \def (ASort n n0) in 
-(let TMP_30 \def (arity g c TMP_28 TMP_29) in (let TMP_31 \def (Flat Appl) in 
-(let TMP_32 \def (TLRef i) in (let TMP_33 \def (THeads TMP_31 vs TMP_32) in 
-(let TMP_34 \def (sn3 c TMP_33) in (let TMP_35 \def (ASort n n0) in (let 
-TMP_36 \def (arity_appls_abbr g c d v i H0 vs TMP_35 H2) in (let TMP_37 \def 
-(sn3_appls_abbr c d v i H0 vs H3) in (conj TMP_30 TMP_34 TMP_36 
-TMP_37))))))))))))))) in (land_ind TMP_10 TMP_15 TMP_25 TMP_38 
-H1))))))))))))))))))))))))))))))))) in (let TMP_166 \def (\lambda (a0: 
-A).(\lambda (_: ((\forall (vs: TList).(\forall (i: nat).(\forall (d: 
-C).(\forall (v: T).(\forall (c: C).((sc3 g a0 c (THeads (Flat Appl) vs (lift 
-(S i) O v))) \to ((getl i c (CHead d (Bind Abbr) v)) \to (sc3 g a0 c (THeads 
-(Flat Appl) vs (TLRef i)))))))))))).(\lambda (a1: A).(\lambda (H0: ((\forall 
-(vs: TList).(\forall (i: nat).(\forall (d: C).(\forall (v: T).(\forall (c: 
+(CHead d (Bind Abbr) v)) \to (sc3 g a0 c (THeads (Flat Appl) vs (TLRef 
+i))))))))))) (\lambda (n: nat).(\lambda (n0: nat).(\lambda (vs: 
+TList).(\lambda (i: nat).(\lambda (d: C).(\lambda (v: T).(\lambda (c: 
+C).(\lambda (H: (land (arity g c (THeads (Flat Appl) vs (lift (S i) O v)) 
+(ASort n n0)) (sn3 c (THeads (Flat Appl) vs (lift (S i) O v))))).(\lambda 
+(H0: (getl i c (CHead d (Bind Abbr) v))).(let H1 \def H in (land_ind (arity g 
+c (THeads (Flat Appl) vs (lift (S i) O v)) (ASort n n0)) (sn3 c (THeads (Flat 
+Appl) vs (lift (S i) O v))) (land (arity g c (THeads (Flat Appl) vs (TLRef 
+i)) (ASort n n0)) (sn3 c (THeads (Flat Appl) vs (TLRef i)))) (\lambda (H2: 
+(arity g c (THeads (Flat Appl) vs (lift (S i) O v)) (ASort n n0))).(\lambda 
+(H3: (sn3 c (THeads (Flat Appl) vs (lift (S i) O v)))).(conj (arity g c 
+(THeads (Flat Appl) vs (TLRef i)) (ASort n n0)) (sn3 c (THeads (Flat Appl) vs 
+(TLRef i))) (arity_appls_abbr g c d v i H0 vs (ASort n n0) H2) 
+(sn3_appls_abbr c d v i H0 vs H3)))) H1))))))))))) (\lambda (a0: A).(\lambda 
+(_: ((\forall (vs: TList).(\forall (i: nat).(\forall (d: C).(\forall (v: 
+T).(\forall (c: C).((sc3 g a0 c (THeads (Flat Appl) vs (lift (S i) O v))) \to 
+((getl i c (CHead d (Bind Abbr) v)) \to (sc3 g a0 c (THeads (Flat Appl) vs 
+(TLRef i)))))))))))).(\lambda (a1: A).(\lambda (H0: ((\forall (vs: 
+TList).(\forall (i: nat).(\forall (d: C).(\forall (v: T).(\forall (c: 
 C).((sc3 g a1 c (THeads (Flat Appl) vs (lift (S i) O v))) \to ((getl i c 
 (CHead d (Bind Abbr) v)) \to (sc3 g a1 c (THeads (Flat Appl) vs (TLRef 
 i)))))))))))).(\lambda (vs: TList).(\lambda (i: nat).(\lambda (d: C).(\lambda 
@@ -295,91 +222,42 @@ i)))))))))))).(\lambda (vs: TList).(\lambda (i: nat).(\lambda (d: C).(\lambda
 (lift (S i) O v)) (AHead a0 a1)) (\forall (d0: C).(\forall (w: T).((sc3 g a0 
 d0 w) \to (\forall (is: PList).((drop1 is d0 c) \to (sc3 g a1 d0 (THead (Flat 
 Appl) w (lift1 is (THeads (Flat Appl) vs (lift (S i) O v)))))))))))).(\lambda 
-(H2: (getl i c (CHead d (Bind Abbr) v))).(let H3 \def H1 in (let TMP_40 \def 
-(Flat Appl) in (let TMP_41 \def (S i) in (let TMP_42 \def (lift TMP_41 O v) 
-in (let TMP_43 \def (THeads TMP_40 vs TMP_42) in (let TMP_44 \def (AHead a0 
-a1) in (let TMP_45 \def (arity g c TMP_43 TMP_44) in (let TMP_53 \def 
-(\forall (d0: C).(\forall (w: T).((sc3 g a0 d0 w) \to (\forall (is: 
-PList).((drop1 is d0 c) \to (let TMP_46 \def (Flat Appl) in (let TMP_47 \def 
-(Flat Appl) in (let TMP_48 \def (S i) in (let TMP_49 \def (lift TMP_48 O v) 
-in (let TMP_50 \def (THeads TMP_47 vs TMP_49) in (let TMP_51 \def (lift1 is 
-TMP_50) in (let TMP_52 \def (THead TMP_46 w TMP_51) in (sc3 g a1 d0 
-TMP_52))))))))))))) in (let TMP_54 \def (Flat Appl) in (let TMP_55 \def 
-(TLRef i) in (let TMP_56 \def (THeads TMP_54 vs TMP_55) in (let TMP_57 \def 
-(AHead a0 a1) in (let TMP_58 \def (arity g c TMP_56 TMP_57) in (let TMP_65 
-\def (\forall (d0: C).(\forall (w: T).((sc3 g a0 d0 w) \to (\forall (is: 
-PList).((drop1 is d0 c) \to (let TMP_59 \def (Flat Appl) in (let TMP_60 \def 
-(Flat Appl) in (let TMP_61 \def (TLRef i) in (let TMP_62 \def (THeads TMP_60 
-vs TMP_61) in (let TMP_63 \def (lift1 is TMP_62) in (let TMP_64 \def (THead 
-TMP_59 w TMP_63) in (sc3 g a1 d0 TMP_64)))))))))))) in (let TMP_66 \def (land 
-TMP_58 TMP_65) in (let TMP_165 \def (\lambda (H4: (arity g c (THeads (Flat 
-Appl) vs (lift (S i) O v)) (AHead a0 a1))).(\lambda (H5: ((\forall (d0: 
+(H2: (getl i c (CHead d (Bind Abbr) v))).(let H3 \def H1 in (land_ind (arity 
+g c (THeads (Flat Appl) vs (lift (S i) O v)) (AHead a0 a1)) (\forall (d0: 
+C).(\forall (w: T).((sc3 g a0 d0 w) \to (\forall (is: PList).((drop1 is d0 c) 
+\to (sc3 g a1 d0 (THead (Flat Appl) w (lift1 is (THeads (Flat Appl) vs (lift 
+(S i) O v)))))))))) (land (arity g c (THeads (Flat Appl) vs (TLRef i)) (AHead 
+a0 a1)) (\forall (d0: C).(\forall (w: T).((sc3 g a0 d0 w) \to (\forall (is: 
+PList).((drop1 is d0 c) \to (sc3 g a1 d0 (THead (Flat Appl) w (lift1 is 
+(THeads (Flat Appl) vs (TLRef i))))))))))) (\lambda (H4: (arity g c (THeads 
+(Flat Appl) vs (lift (S i) O v)) (AHead a0 a1))).(\lambda (H5: ((\forall (d0: 
 C).(\forall (w: T).((sc3 g a0 d0 w) \to (\forall (is: PList).((drop1 is d0 c) 
 \to (sc3 g a1 d0 (THead (Flat Appl) w (lift1 is (THeads (Flat Appl) vs (lift 
-(S i) O v)))))))))))).(let TMP_67 \def (Flat Appl) in (let TMP_68 \def (TLRef 
-i) in (let TMP_69 \def (THeads TMP_67 vs TMP_68) in (let TMP_70 \def (AHead 
-a0 a1) in (let TMP_71 \def (arity g c TMP_69 TMP_70) in (let TMP_78 \def 
-(\forall (d0: C).(\forall (w: T).((sc3 g a0 d0 w) \to (\forall (is: 
-PList).((drop1 is d0 c) \to (let TMP_72 \def (Flat Appl) in (let TMP_73 \def 
-(Flat Appl) in (let TMP_74 \def (TLRef i) in (let TMP_75 \def (THeads TMP_73 
-vs TMP_74) in (let TMP_76 \def (lift1 is TMP_75) in (let TMP_77 \def (THead 
-TMP_72 w TMP_76) in (sc3 g a1 d0 TMP_77)))))))))))) in (let TMP_79 \def 
-(AHead a0 a1) in (let TMP_80 \def (arity_appls_abbr g c d v i H2 vs TMP_79 
-H4) in (let TMP_164 \def (\lambda (d0: C).(\lambda (w: T).(\lambda (H6: (sc3 
-g a0 d0 w)).(\lambda (is: PList).(\lambda (H7: (drop1 is d0 c)).(let H_x \def 
-(drop1_getl_trans is c d0 H7 Abbr d v i H2) in (let H8 \def H_x in (let 
-TMP_82 \def (\lambda (e2: C).(let TMP_81 \def (ptrans is i) in (drop1 TMP_81 
-e2 d))) in (let TMP_88 \def (\lambda (e2: C).(let TMP_83 \def (trans is i) in 
-(let TMP_84 \def (Bind Abbr) in (let TMP_85 \def (ptrans is i) in (let TMP_86 
-\def (lift1 TMP_85 v) in (let TMP_87 \def (CHead e2 TMP_84 TMP_86) in (getl 
-TMP_83 d0 TMP_87))))))) in (let TMP_89 \def (Flat Appl) in (let TMP_90 \def 
-(Flat Appl) in (let TMP_91 \def (TLRef i) in (let TMP_92 \def (THeads TMP_90 
-vs TMP_91) in (let TMP_93 \def (lift1 is TMP_92) in (let TMP_94 \def (THead 
-TMP_89 w TMP_93) in (let TMP_95 \def (sc3 g a1 d0 TMP_94) in (let TMP_163 
-\def (\lambda (x: C).(\lambda (_: (drop1 (ptrans is i) x d)).(\lambda (H10: 
-(getl (trans is i) d0 (CHead x (Bind Abbr) (lift1 (ptrans is i) v)))).(let 
-TMP_96 \def (lifts1 is vs) in (let TMP_97 \def (TCons w TMP_96) in (let H_y 
-\def (H0 TMP_97) in (let TMP_98 \def (Flat Appl) in (let TMP_99 \def (lifts1 
-is vs) in (let TMP_100 \def (TLRef i) in (let TMP_101 \def (lift1 is TMP_100) 
-in (let TMP_102 \def (THeads TMP_98 TMP_99 TMP_101) in (let TMP_105 \def 
-(\lambda (t: T).(let TMP_103 \def (Flat Appl) in (let TMP_104 \def (THead 
-TMP_103 w t) in (sc3 g a1 d0 TMP_104)))) in (let TMP_106 \def (trans is i) in 
-(let TMP_107 \def (TLRef TMP_106) in (let TMP_113 \def (\lambda (t: T).(let 
-TMP_108 \def (Flat Appl) in (let TMP_109 \def (Flat Appl) in (let TMP_110 
-\def (lifts1 is vs) in (let TMP_111 \def (THeads TMP_109 TMP_110 t) in (let 
-TMP_112 \def (THead TMP_108 w TMP_111) in (sc3 g a1 d0 TMP_112))))))) in (let 
-TMP_114 \def (trans is i) in (let TMP_115 \def (ptrans is i) in (let TMP_116 
-\def (lift1 TMP_115 v) in (let TMP_117 \def (S i) in (let TMP_118 \def (lift 
-TMP_117 O v) in (let TMP_119 \def (lift1 is TMP_118) in (let TMP_125 \def 
-(\lambda (t: T).(let TMP_120 \def (Flat Appl) in (let TMP_121 \def (Flat 
-Appl) in (let TMP_122 \def (lifts1 is vs) in (let TMP_123 \def (THeads 
-TMP_121 TMP_122 t) in (let TMP_124 \def (THead TMP_120 w TMP_123) in (sc3 g 
-a1 d0 TMP_124))))))) in (let TMP_126 \def (Flat Appl) in (let TMP_127 \def (S 
-i) in (let TMP_128 \def (lift TMP_127 O v) in (let TMP_129 \def (THeads 
-TMP_126 vs TMP_128) in (let TMP_130 \def (lift1 is TMP_129) in (let TMP_133 
-\def (\lambda (t: T).(let TMP_131 \def (Flat Appl) in (let TMP_132 \def 
-(THead TMP_131 w t) in (sc3 g a1 d0 TMP_132)))) in (let TMP_134 \def (H5 d0 w 
-H6 is H7) in (let TMP_135 \def (Flat Appl) in (let TMP_136 \def (lifts1 is 
-vs) in (let TMP_137 \def (S i) in (let TMP_138 \def (lift TMP_137 O v) in 
-(let TMP_139 \def (lift1 is TMP_138) in (let TMP_140 \def (THeads TMP_135 
-TMP_136 TMP_139) in (let TMP_141 \def (S i) in (let TMP_142 \def (lift 
-TMP_141 O v) in (let TMP_143 \def (lifts1_flat Appl is TMP_142 vs) in (let 
-TMP_144 \def (eq_ind T TMP_130 TMP_133 TMP_134 TMP_140 TMP_143) in (let 
-TMP_145 \def (trans is i) in (let TMP_146 \def (S TMP_145) in (let TMP_147 
-\def (ptrans is i) in (let TMP_148 \def (lift1 TMP_147 v) in (let TMP_149 
-\def (lift TMP_146 O TMP_148) in (let TMP_150 \def (lift1_free is i v) in 
-(let TMP_151 \def (eq_ind T TMP_119 TMP_125 TMP_144 TMP_149 TMP_150) in (let 
-TMP_152 \def (H_y TMP_114 x TMP_116 d0 TMP_151 H10) in (let TMP_153 \def 
-(TLRef i) in (let TMP_154 \def (lift1 is TMP_153) in (let TMP_155 \def 
-(lift1_lref is i) in (let TMP_156 \def (eq_ind_r T TMP_107 TMP_113 TMP_152 
-TMP_154 TMP_155) in (let TMP_157 \def (Flat Appl) in (let TMP_158 \def (TLRef 
-i) in (let TMP_159 \def (THeads TMP_157 vs TMP_158) in (let TMP_160 \def 
-(lift1 is TMP_159) in (let TMP_161 \def (TLRef i) in (let TMP_162 \def 
-(lifts1_flat Appl is TMP_161 vs) in (eq_ind_r T TMP_102 TMP_105 TMP_156 
-TMP_160 TMP_162)))))))))))))))))))))))))))))))))))))))))))))))))))))))))) in 
-(ex2_ind C TMP_82 TMP_88 TMP_95 TMP_163 H8)))))))))))))))))) in (conj TMP_71 
-TMP_78 TMP_80 TMP_164)))))))))))) in (land_ind TMP_45 TMP_53 TMP_66 TMP_165 
-H3)))))))))))))))))))))))))))) in (A_ind TMP_4 TMP_39 TMP_166 a))))).
+(S i) O v)))))))))))).(conj (arity g c (THeads (Flat Appl) vs (TLRef i)) 
+(AHead a0 a1)) (\forall (d0: C).(\forall (w: T).((sc3 g a0 d0 w) \to (\forall 
+(is: PList).((drop1 is d0 c) \to (sc3 g a1 d0 (THead (Flat Appl) w (lift1 is 
+(THeads (Flat Appl) vs (TLRef i)))))))))) (arity_appls_abbr g c d v i H2 vs 
+(AHead a0 a1) H4) (\lambda (d0: C).(\lambda (w: T).(\lambda (H6: (sc3 g a0 d0 
+w)).(\lambda (is: PList).(\lambda (H7: (drop1 is d0 c)).(let H_x \def 
+(drop1_getl_trans is c d0 H7 Abbr d v i H2) in (let H8 \def H_x in (ex2_ind C 
+(\lambda (e2: C).(drop1 (ptrans is i) e2 d)) (\lambda (e2: C).(getl (trans is 
+i) d0 (CHead e2 (Bind Abbr) (lift1 (ptrans is i) v)))) (sc3 g a1 d0 (THead 
+(Flat Appl) w (lift1 is (THeads (Flat Appl) vs (TLRef i))))) (\lambda (x: 
+C).(\lambda (_: (drop1 (ptrans is i) x d)).(\lambda (H10: (getl (trans is i) 
+d0 (CHead x (Bind Abbr) (lift1 (ptrans is i) v)))).(let H_y \def (H0 (TCons w 
+(lifts1 is vs))) in (eq_ind_r T (THeads (Flat Appl) (lifts1 is vs) (lift1 is 
+(TLRef i))) (\lambda (t: T).(sc3 g a1 d0 (THead (Flat Appl) w t))) (eq_ind_r 
+T (TLRef (trans is i)) (\lambda (t: T).(sc3 g a1 d0 (THead (Flat Appl) w 
+(THeads (Flat Appl) (lifts1 is vs) t)))) (H_y (trans is i) x (lift1 (ptrans 
+is i) v) d0 (eq_ind T (lift1 is (lift (S i) O v)) (\lambda (t: T).(sc3 g a1 
+d0 (THead (Flat Appl) w (THeads (Flat Appl) (lifts1 is vs) t)))) (eq_ind T 
+(lift1 is (THeads (Flat Appl) vs (lift (S i) O v))) (\lambda (t: T).(sc3 g a1 
+d0 (THead (Flat Appl) w t))) (H5 d0 w H6 is H7) (THeads (Flat Appl) (lifts1 
+is vs) (lift1 is (lift (S i) O v))) (lifts1_flat Appl is (lift (S i) O v) 
+vs)) (lift (S (trans is i)) O (lift1 (ptrans is i) v)) (lift1_free is i v)) 
+H10) (lift1 is (TLRef i)) (lift1_lref is i)) (lift1 is (THeads (Flat Appl) vs 
+(TLRef i))) (lifts1_flat Appl is (TLRef i) vs)))))) H8))))))))))) 
+H3))))))))))))) a)).
 
 theorem sc3_cast:
  \forall (g: G).(\forall (a: A).(\forall (vs: TList).(\forall (c: C).(\forall 
@@ -387,217 +265,111 @@ theorem sc3_cast:
 T).((sc3 g a c (THeads (Flat Appl) vs t)) \to (sc3 g a c (THeads (Flat Appl) 
 vs (THead (Flat Cast) u t))))))))))
 \def
- \lambda (g: G).(\lambda (a: A).(let TMP_5 \def (\lambda (a0: A).(\forall 
-(vs: TList).(\forall (c: C).(\forall (u: T).((sc3 g (asucc g a0) c (THeads 
-(Flat Appl) vs u)) \to (\forall (t: T).((sc3 g a0 c (THeads (Flat Appl) vs 
-t)) \to (let TMP_1 \def (Flat Appl) in (let TMP_2 \def (Flat Cast) in (let 
-TMP_3 \def (THead TMP_2 u t) in (let TMP_4 \def (THeads TMP_1 vs TMP_3) in 
-(sc3 g a0 c TMP_4)))))))))))) in (let TMP_134 \def (\lambda (n: nat).(\lambda 
-(n0: nat).(\lambda (vs: TList).(\lambda (c: C).(\lambda (u: T).(\lambda (H: 
-(sc3 g (match n with [O \Rightarrow (ASort O (next g n0)) | (S h) \Rightarrow 
-(ASort h n0)]) c (THeads (Flat Appl) vs u))).(\lambda (t: T).(\lambda (H0: 
-(land (arity g c (THeads (Flat Appl) vs t) (ASort n n0)) (sn3 c (THeads (Flat 
-Appl) vs t)))).(let TMP_17 \def (\lambda (n1: nat).((sc3 g (match n1 with [O 
-\Rightarrow (ASort O (next g n0)) | (S h) \Rightarrow (ASort h n0)]) c 
-(THeads (Flat Appl) vs u)) \to ((land (arity g c (THeads (Flat Appl) vs t) 
-(ASort n1 n0)) (sn3 c (THeads (Flat Appl) vs t))) \to (let TMP_6 \def (Flat 
-Appl) in (let TMP_7 \def (Flat Cast) in (let TMP_8 \def (THead TMP_7 u t) in 
-(let TMP_9 \def (THeads TMP_6 vs TMP_8) in (let TMP_10 \def (ASort n1 n0) in 
-(let TMP_11 \def (arity g c TMP_9 TMP_10) in (let TMP_12 \def (Flat Appl) in 
-(let TMP_13 \def (Flat Cast) in (let TMP_14 \def (THead TMP_13 u t) in (let 
-TMP_15 \def (THeads TMP_12 vs TMP_14) in (let TMP_16 \def (sn3 c TMP_15) in 
-(land TMP_11 TMP_16))))))))))))))) in (let TMP_73 \def (\lambda (H1: (sc3 g 
-(ASort O (next g n0)) c (THeads (Flat Appl) vs u))).(\lambda (H2: (land 
-(arity g c (THeads (Flat Appl) vs t) (ASort O n0)) (sn3 c (THeads (Flat Appl) 
-vs t)))).(let H3 \def H1 in (let TMP_18 \def (Flat Appl) in (let TMP_19 \def 
-(THeads TMP_18 vs u) in (let TMP_20 \def (next g n0) in (let TMP_21 \def 
-(ASort O TMP_20) in (let TMP_22 \def (arity g c TMP_19 TMP_21) in (let TMP_23 
-\def (Flat Appl) in (let TMP_24 \def (THeads TMP_23 vs u) in (let TMP_25 \def 
-(sn3 c TMP_24) in (let TMP_26 \def (Flat Appl) in (let TMP_27 \def (Flat 
-Cast) in (let TMP_28 \def (THead TMP_27 u t) in (let TMP_29 \def (THeads 
-TMP_26 vs TMP_28) in (let TMP_30 \def (ASort O n0) in (let TMP_31 \def (arity 
-g c TMP_29 TMP_30) in (let TMP_32 \def (Flat Appl) in (let TMP_33 \def (Flat 
-Cast) in (let TMP_34 \def (THead TMP_33 u t) in (let TMP_35 \def (THeads 
-TMP_32 vs TMP_34) in (let TMP_36 \def (sn3 c TMP_35) in (let TMP_37 \def 
-(land TMP_31 TMP_36) in (let TMP_72 \def (\lambda (H4: (arity g c (THeads 
+ \lambda (g: G).(\lambda (a: A).(A_ind (\lambda (a0: A).(\forall (vs: 
+TList).(\forall (c: C).(\forall (u: T).((sc3 g (asucc g a0) c (THeads (Flat 
+Appl) vs u)) \to (\forall (t: T).((sc3 g a0 c (THeads (Flat Appl) vs t)) \to 
+(sc3 g a0 c (THeads (Flat Appl) vs (THead (Flat Cast) u t)))))))))) (\lambda 
+(n: nat).(\lambda (n0: nat).(\lambda (vs: TList).(\lambda (c: C).(\lambda (u: 
+T).(\lambda (H: (sc3 g (match n with [O \Rightarrow (ASort O (next g n0)) | 
+(S h) \Rightarrow (ASort h n0)]) c (THeads (Flat Appl) vs u))).(\lambda (t: 
+T).(\lambda (H0: (land (arity g c (THeads (Flat Appl) vs t) (ASort n n0)) 
+(sn3 c (THeads (Flat Appl) vs t)))).(nat_ind (\lambda (n1: nat).((sc3 g 
+(match n1 with [O \Rightarrow (ASort O (next g n0)) | (S h) \Rightarrow 
+(ASort h n0)]) c (THeads (Flat Appl) vs u)) \to ((land (arity g c (THeads 
+(Flat Appl) vs t) (ASort n1 n0)) (sn3 c (THeads (Flat Appl) vs t))) \to (land 
+(arity g c (THeads (Flat Appl) vs (THead (Flat Cast) u t)) (ASort n1 n0)) 
+(sn3 c (THeads (Flat Appl) vs (THead (Flat Cast) u t))))))) (\lambda (H1: 
+(sc3 g (ASort O (next g n0)) c (THeads (Flat Appl) vs u))).(\lambda (H2: 
+(land (arity g c (THeads (Flat Appl) vs t) (ASort O n0)) (sn3 c (THeads (Flat 
+Appl) vs t)))).(let H3 \def H1 in (land_ind (arity g c (THeads (Flat Appl) vs 
+u) (ASort O (next g n0))) (sn3 c (THeads (Flat Appl) vs u)) (land (arity g c 
+(THeads (Flat Appl) vs (THead (Flat Cast) u t)) (ASort O n0)) (sn3 c (THeads 
+(Flat Appl) vs (THead (Flat Cast) u t)))) (\lambda (H4: (arity g c (THeads 
 (Flat Appl) vs u) (ASort O (next g n0)))).(\lambda (H5: (sn3 c (THeads (Flat 
-Appl) vs u))).(let H6 \def H2 in (let TMP_38 \def (Flat Appl) in (let TMP_39 
-\def (THeads TMP_38 vs t) in (let TMP_40 \def (ASort O n0) in (let TMP_41 
-\def (arity g c TMP_39 TMP_40) in (let TMP_42 \def (Flat Appl) in (let TMP_43 
-\def (THeads TMP_42 vs t) in (let TMP_44 \def (sn3 c TMP_43) in (let TMP_45 
-\def (Flat Appl) in (let TMP_46 \def (Flat Cast) in (let TMP_47 \def (THead 
-TMP_46 u t) in (let TMP_48 \def (THeads TMP_45 vs TMP_47) in (let TMP_49 \def 
-(ASort O n0) in (let TMP_50 \def (arity g c TMP_48 TMP_49) in (let TMP_51 
-\def (Flat Appl) in (let TMP_52 \def (Flat Cast) in (let TMP_53 \def (THead 
-TMP_52 u t) in (let TMP_54 \def (THeads TMP_51 vs TMP_53) in (let TMP_55 \def 
-(sn3 c TMP_54) in (let TMP_56 \def (land TMP_50 TMP_55) in (let TMP_71 \def 
-(\lambda (H7: (arity g c (THeads (Flat Appl) vs t) (ASort O n0))).(\lambda 
-(H8: (sn3 c (THeads (Flat Appl) vs t))).(let TMP_57 \def (Flat Appl) in (let 
-TMP_58 \def (Flat Cast) in (let TMP_59 \def (THead TMP_58 u t) in (let TMP_60 
-\def (THeads TMP_57 vs TMP_59) in (let TMP_61 \def (ASort O n0) in (let 
-TMP_62 \def (arity g c TMP_60 TMP_61) in (let TMP_63 \def (Flat Appl) in (let 
-TMP_64 \def (Flat Cast) in (let TMP_65 \def (THead TMP_64 u t) in (let TMP_66 
-\def (THeads TMP_63 vs TMP_65) in (let TMP_67 \def (sn3 c TMP_66) in (let 
-TMP_68 \def (ASort O n0) in (let TMP_69 \def (arity_appls_cast g c u t vs 
-TMP_68 H4 H7) in (let TMP_70 \def (sn3_appls_cast c vs u H5 t H8) in (conj 
-TMP_62 TMP_67 TMP_69 TMP_70))))))))))))))))) in (land_ind TMP_41 TMP_44 
-TMP_56 TMP_71 H6)))))))))))))))))))))))) in (land_ind TMP_22 TMP_25 TMP_37 
-TMP_72 H3))))))))))))))))))))))))) in (let TMP_133 \def (\lambda (n1: 
-nat).(\lambda (_: (((sc3 g (match n1 with [O \Rightarrow (ASort O (next g 
-n0)) | (S h) \Rightarrow (ASort h n0)]) c (THeads (Flat Appl) vs u)) \to 
-((land (arity g c (THeads (Flat Appl) vs t) (ASort n1 n0)) (sn3 c (THeads 
-(Flat Appl) vs t))) \to (land (arity g c (THeads (Flat Appl) vs (THead (Flat 
-Cast) u t)) (ASort n1 n0)) (sn3 c (THeads (Flat Appl) vs (THead (Flat Cast) u 
-t)))))))).(\lambda (H1: (sc3 g (ASort n1 n0) c (THeads (Flat Appl) vs 
-u))).(\lambda (H2: (land (arity g c (THeads (Flat Appl) vs t) (ASort (S n1) 
-n0)) (sn3 c (THeads (Flat Appl) vs t)))).(let H3 \def H1 in (let TMP_74 \def 
-(Flat Appl) in (let TMP_75 \def (THeads TMP_74 vs u) in (let TMP_76 \def 
-(ASort n1 n0) in (let TMP_77 \def (arity g c TMP_75 TMP_76) in (let TMP_78 
-\def (Flat Appl) in (let TMP_79 \def (THeads TMP_78 vs u) in (let TMP_80 \def 
-(sn3 c TMP_79) in (let TMP_81 \def (Flat Appl) in (let TMP_82 \def (Flat 
-Cast) in (let TMP_83 \def (THead TMP_82 u t) in (let TMP_84 \def (THeads 
-TMP_81 vs TMP_83) in (let TMP_85 \def (S n1) in (let TMP_86 \def (ASort 
-TMP_85 n0) in (let TMP_87 \def (arity g c TMP_84 TMP_86) in (let TMP_88 \def 
-(Flat Appl) in (let TMP_89 \def (Flat Cast) in (let TMP_90 \def (THead TMP_89 
-u t) in (let TMP_91 \def (THeads TMP_88 vs TMP_90) in (let TMP_92 \def (sn3 c 
-TMP_91) in (let TMP_93 \def (land TMP_87 TMP_92) in (let TMP_132 \def 
-(\lambda (H4: (arity g c (THeads (Flat Appl) vs u) (ASort n1 n0))).(\lambda 
-(H5: (sn3 c (THeads (Flat Appl) vs u))).(let H6 \def H2 in (let TMP_94 \def 
-(Flat Appl) in (let TMP_95 \def (THeads TMP_94 vs t) in (let TMP_96 \def (S 
-n1) in (let TMP_97 \def (ASort TMP_96 n0) in (let TMP_98 \def (arity g c 
-TMP_95 TMP_97) in (let TMP_99 \def (Flat Appl) in (let TMP_100 \def (THeads 
-TMP_99 vs t) in (let TMP_101 \def (sn3 c TMP_100) in (let TMP_102 \def (Flat 
-Appl) in (let TMP_103 \def (Flat Cast) in (let TMP_104 \def (THead TMP_103 u 
-t) in (let TMP_105 \def (THeads TMP_102 vs TMP_104) in (let TMP_106 \def (S 
-n1) in (let TMP_107 \def (ASort TMP_106 n0) in (let TMP_108 \def (arity g c 
-TMP_105 TMP_107) in (let TMP_109 \def (Flat Appl) in (let TMP_110 \def (Flat 
-Cast) in (let TMP_111 \def (THead TMP_110 u t) in (let TMP_112 \def (THeads 
-TMP_109 vs TMP_111) in (let TMP_113 \def (sn3 c TMP_112) in (let TMP_114 \def 
-(land TMP_108 TMP_113) in (let TMP_131 \def (\lambda (H7: (arity g c (THeads 
-(Flat Appl) vs t) (ASort (S n1) n0))).(\lambda (H8: (sn3 c (THeads (Flat 
-Appl) vs t))).(let TMP_115 \def (Flat Appl) in (let TMP_116 \def (Flat Cast) 
-in (let TMP_117 \def (THead TMP_116 u t) in (let TMP_118 \def (THeads TMP_115 
-vs TMP_117) in (let TMP_119 \def (S n1) in (let TMP_120 \def (ASort TMP_119 
-n0) in (let TMP_121 \def (arity g c TMP_118 TMP_120) in (let TMP_122 \def 
-(Flat Appl) in (let TMP_123 \def (Flat Cast) in (let TMP_124 \def (THead 
-TMP_123 u t) in (let TMP_125 \def (THeads TMP_122 vs TMP_124) in (let TMP_126 
-\def (sn3 c TMP_125) in (let TMP_127 \def (S n1) in (let TMP_128 \def (ASort 
-TMP_127 n0) in (let TMP_129 \def (arity_appls_cast g c u t vs TMP_128 H4 H7) 
-in (let TMP_130 \def (sn3_appls_cast c vs u H5 t H8) in (conj TMP_121 TMP_126 
-TMP_129 TMP_130))))))))))))))))))) in (land_ind TMP_98 TMP_101 TMP_114 
-TMP_131 H6)))))))))))))))))))))))))) in (land_ind TMP_77 TMP_80 TMP_93 
-TMP_132 H3))))))))))))))))))))))))))) in (nat_ind TMP_17 TMP_73 TMP_133 n H 
-H0)))))))))))) in (let TMP_270 \def (\lambda (a0: A).(\lambda (_: ((\forall 
-(vs: TList).(\forall (c: C).(\forall (u: T).((sc3 g (asucc g a0) c (THeads 
-(Flat Appl) vs u)) \to (\forall (t: T).((sc3 g a0 c (THeads (Flat Appl) vs 
-t)) \to (sc3 g a0 c (THeads (Flat Appl) vs (THead (Flat Cast) u 
-t))))))))))).(\lambda (a1: A).(\lambda (H0: ((\forall (vs: TList).(\forall 
-(c: C).(\forall (u: T).((sc3 g (asucc g a1) c (THeads (Flat Appl) vs u)) \to 
-(\forall (t: T).((sc3 g a1 c (THeads (Flat Appl) vs t)) \to (sc3 g a1 c 
-(THeads (Flat Appl) vs (THead (Flat Cast) u t))))))))))).(\lambda (vs: 
-TList).(\lambda (c: C).(\lambda (u: T).(\lambda (H1: (land (arity g c (THeads 
-(Flat Appl) vs u) (AHead a0 (asucc g a1))) (\forall (d: C).(\forall (w: 
-T).((sc3 g a0 d w) \to (\forall (is: PList).((drop1 is d c) \to (sc3 g (asucc 
-g a1) d (THead (Flat Appl) w (lift1 is (THeads (Flat Appl) vs 
-u))))))))))).(\lambda (t: T).(\lambda (H2: (land (arity g c (THeads (Flat 
-Appl) vs t) (AHead a0 a1)) (\forall (d: C).(\forall (w: T).((sc3 g a0 d w) 
-\to (\forall (is: PList).((drop1 is d c) \to (sc3 g a1 d (THead (Flat Appl) w 
-(lift1 is (THeads (Flat Appl) vs t))))))))))).(let H3 \def H1 in (let TMP_135 
-\def (Flat Appl) in (let TMP_136 \def (THeads TMP_135 vs u) in (let TMP_137 
-\def (asucc g a1) in (let TMP_138 \def (AHead a0 TMP_137) in (let TMP_139 
-\def (arity g c TMP_136 TMP_138) in (let TMP_146 \def (\forall (d: 
+Appl) vs u))).(let H6 \def H2 in (land_ind (arity g c (THeads (Flat Appl) vs 
+t) (ASort O n0)) (sn3 c (THeads (Flat Appl) vs t)) (land (arity g c (THeads 
+(Flat Appl) vs (THead (Flat Cast) u t)) (ASort O n0)) (sn3 c (THeads (Flat 
+Appl) vs (THead (Flat Cast) u t)))) (\lambda (H7: (arity g c (THeads (Flat 
+Appl) vs t) (ASort O n0))).(\lambda (H8: (sn3 c (THeads (Flat Appl) vs 
+t))).(conj (arity g c (THeads (Flat Appl) vs (THead (Flat Cast) u t)) (ASort 
+O n0)) (sn3 c (THeads (Flat Appl) vs (THead (Flat Cast) u t))) 
+(arity_appls_cast g c u t vs (ASort O n0) H4 H7) (sn3_appls_cast c vs u H5 t 
+H8)))) H6)))) H3)))) (\lambda (n1: nat).(\lambda (_: (((sc3 g (match n1 with 
+[O \Rightarrow (ASort O (next g n0)) | (S h) \Rightarrow (ASort h n0)]) c 
+(THeads (Flat Appl) vs u)) \to ((land (arity g c (THeads (Flat Appl) vs t) 
+(ASort n1 n0)) (sn3 c (THeads (Flat Appl) vs t))) \to (land (arity g c 
+(THeads (Flat Appl) vs (THead (Flat Cast) u t)) (ASort n1 n0)) (sn3 c (THeads 
+(Flat Appl) vs (THead (Flat Cast) u t)))))))).(\lambda (H1: (sc3 g (ASort n1 
+n0) c (THeads (Flat Appl) vs u))).(\lambda (H2: (land (arity g c (THeads 
+(Flat Appl) vs t) (ASort (S n1) n0)) (sn3 c (THeads (Flat Appl) vs t)))).(let 
+H3 \def H1 in (land_ind (arity g c (THeads (Flat Appl) vs u) (ASort n1 n0)) 
+(sn3 c (THeads (Flat Appl) vs u)) (land (arity g c (THeads (Flat Appl) vs 
+(THead (Flat Cast) u t)) (ASort (S n1) n0)) (sn3 c (THeads (Flat Appl) vs 
+(THead (Flat Cast) u t)))) (\lambda (H4: (arity g c (THeads (Flat Appl) vs u) 
+(ASort n1 n0))).(\lambda (H5: (sn3 c (THeads (Flat Appl) vs u))).(let H6 \def 
+H2 in (land_ind (arity g c (THeads (Flat Appl) vs t) (ASort (S n1) n0)) (sn3 
+c (THeads (Flat Appl) vs t)) (land (arity g c (THeads (Flat Appl) vs (THead 
+(Flat Cast) u t)) (ASort (S n1) n0)) (sn3 c (THeads (Flat Appl) vs (THead 
+(Flat Cast) u t)))) (\lambda (H7: (arity g c (THeads (Flat Appl) vs t) (ASort 
+(S n1) n0))).(\lambda (H8: (sn3 c (THeads (Flat Appl) vs t))).(conj (arity g 
+c (THeads (Flat Appl) vs (THead (Flat Cast) u t)) (ASort (S n1) n0)) (sn3 c 
+(THeads (Flat Appl) vs (THead (Flat Cast) u t))) (arity_appls_cast g c u t vs 
+(ASort (S n1) n0) H4 H7) (sn3_appls_cast c vs u H5 t H8)))) H6)))) H3)))))) n 
+H H0))))))))) (\lambda (a0: A).(\lambda (_: ((\forall (vs: TList).(\forall 
+(c: C).(\forall (u: T).((sc3 g (asucc g a0) c (THeads (Flat Appl) vs u)) \to 
+(\forall (t: T).((sc3 g a0 c (THeads (Flat Appl) vs t)) \to (sc3 g a0 c 
+(THeads (Flat Appl) vs (THead (Flat Cast) u t))))))))))).(\lambda (a1: 
+A).(\lambda (H0: ((\forall (vs: TList).(\forall (c: C).(\forall (u: T).((sc3 
+g (asucc g a1) c (THeads (Flat Appl) vs u)) \to (\forall (t: T).((sc3 g a1 c 
+(THeads (Flat Appl) vs t)) \to (sc3 g a1 c (THeads (Flat Appl) vs (THead 
+(Flat Cast) u t))))))))))).(\lambda (vs: TList).(\lambda (c: C).(\lambda (u: 
+T).(\lambda (H1: (land (arity g c (THeads (Flat Appl) vs u) (AHead a0 (asucc 
+g a1))) (\forall (d: C).(\forall (w: T).((sc3 g a0 d w) \to (\forall (is: 
+PList).((drop1 is d c) \to (sc3 g (asucc g a1) d (THead (Flat Appl) w (lift1 
+is (THeads (Flat Appl) vs u))))))))))).(\lambda (t: T).(\lambda (H2: (land 
+(arity g c (THeads (Flat Appl) vs t) (AHead a0 a1)) (\forall (d: C).(\forall 
+(w: T).((sc3 g a0 d w) \to (\forall (is: PList).((drop1 is d c) \to (sc3 g a1 
+d (THead (Flat Appl) w (lift1 is (THeads (Flat Appl) vs t))))))))))).(let H3 
+\def H1 in (land_ind (arity g c (THeads (Flat Appl) vs u) (AHead a0 (asucc g 
+a1))) (\forall (d: C).(\forall (w: T).((sc3 g a0 d w) \to (\forall (is: 
+PList).((drop1 is d c) \to (sc3 g (asucc g a1) d (THead (Flat Appl) w (lift1 
+is (THeads (Flat Appl) vs u))))))))) (land (arity g c (THeads (Flat Appl) vs 
+(THead (Flat Cast) u t)) (AHead a0 a1)) (\forall (d: C).(\forall (w: T).((sc3 
+g a0 d w) \to (\forall (is: PList).((drop1 is d c) \to (sc3 g a1 d (THead 
+(Flat Appl) w (lift1 is (THeads (Flat Appl) vs (THead (Flat Cast) u 
+t))))))))))) (\lambda (H4: (arity g c (THeads (Flat Appl) vs u) (AHead a0 
+(asucc g a1)))).(\lambda (H5: ((\forall (d: C).(\forall (w: T).((sc3 g a0 d 
+w) \to (\forall (is: PList).((drop1 is d c) \to (sc3 g (asucc g a1) d (THead 
+(Flat Appl) w (lift1 is (THeads (Flat Appl) vs u))))))))))).(let H6 \def H2 
+in (land_ind (arity g c (THeads (Flat Appl) vs t) (AHead a0 a1)) (\forall (d: 
 C).(\forall (w: T).((sc3 g a0 d w) \to (\forall (is: PList).((drop1 is d c) 
-\to (let TMP_140 \def (asucc g a1) in (let TMP_141 \def (Flat Appl) in (let 
-TMP_142 \def (Flat Appl) in (let TMP_143 \def (THeads TMP_142 vs u) in (let 
-TMP_144 \def (lift1 is TMP_143) in (let TMP_145 \def (THead TMP_141 w 
-TMP_144) in (sc3 g TMP_140 d TMP_145)))))))))))) in (let TMP_147 \def (Flat 
-Appl) in (let TMP_148 \def (Flat Cast) in (let TMP_149 \def (THead TMP_148 u 
-t) in (let TMP_150 \def (THeads TMP_147 vs TMP_149) in (let TMP_151 \def 
-(AHead a0 a1) in (let TMP_152 \def (arity g c TMP_150 TMP_151) in (let 
-TMP_160 \def (\forall (d: C).(\forall (w: T).((sc3 g a0 d w) \to (\forall 
-(is: PList).((drop1 is d c) \to (let TMP_153 \def (Flat Appl) in (let TMP_154 
-\def (Flat Appl) in (let TMP_155 \def (Flat Cast) in (let TMP_156 \def (THead 
-TMP_155 u t) in (let TMP_157 \def (THeads TMP_154 vs TMP_156) in (let TMP_158 
-\def (lift1 is TMP_157) in (let TMP_159 \def (THead TMP_153 w TMP_158) in 
-(sc3 g a1 d TMP_159))))))))))))) in (let TMP_161 \def (land TMP_152 TMP_160) 
-in (let TMP_269 \def (\lambda (H4: (arity g c (THeads (Flat Appl) vs u) 
-(AHead a0 (asucc g a1)))).(\lambda (H5: ((\forall (d: C).(\forall (w: 
-T).((sc3 g a0 d w) \to (\forall (is: PList).((drop1 is d c) \to (sc3 g (asucc 
-g a1) d (THead (Flat Appl) w (lift1 is (THeads (Flat Appl) vs 
-u))))))))))).(let H6 \def H2 in (let TMP_162 \def (Flat Appl) in (let TMP_163 
-\def (THeads TMP_162 vs t) in (let TMP_164 \def (AHead a0 a1) in (let TMP_165 
-\def (arity g c TMP_163 TMP_164) in (let TMP_171 \def (\forall (d: 
+\to (sc3 g a1 d (THead (Flat Appl) w (lift1 is (THeads (Flat Appl) vs 
+t))))))))) (land (arity g c (THeads (Flat Appl) vs (THead (Flat Cast) u t)) 
+(AHead a0 a1)) (\forall (d: C).(\forall (w: T).((sc3 g a0 d w) \to (\forall 
+(is: PList).((drop1 is d c) \to (sc3 g a1 d (THead (Flat Appl) w (lift1 is 
+(THeads (Flat Appl) vs (THead (Flat Cast) u t))))))))))) (\lambda (H7: (arity 
+g c (THeads (Flat Appl) vs t) (AHead a0 a1))).(\lambda (H8: ((\forall (d: 
 C).(\forall (w: T).((sc3 g a0 d w) \to (\forall (is: PList).((drop1 is d c) 
-\to (let TMP_166 \def (Flat Appl) in (let TMP_167 \def (Flat Appl) in (let 
-TMP_168 \def (THeads TMP_167 vs t) in (let TMP_169 \def (lift1 is TMP_168) in 
-(let TMP_170 \def (THead TMP_166 w TMP_169) in (sc3 g a1 d TMP_170))))))))))) 
-in (let TMP_172 \def (Flat Appl) in (let TMP_173 \def (Flat Cast) in (let 
-TMP_174 \def (THead TMP_173 u t) in (let TMP_175 \def (THeads TMP_172 vs 
-TMP_174) in (let TMP_176 \def (AHead a0 a1) in (let TMP_177 \def (arity g c 
-TMP_175 TMP_176) in (let TMP_185 \def (\forall (d: C).(\forall (w: T).((sc3 g 
-a0 d w) \to (\forall (is: PList).((drop1 is d c) \to (let TMP_178 \def (Flat 
-Appl) in (let TMP_179 \def (Flat Appl) in (let TMP_180 \def (Flat Cast) in 
-(let TMP_181 \def (THead TMP_180 u t) in (let TMP_182 \def (THeads TMP_179 vs 
-TMP_181) in (let TMP_183 \def (lift1 is TMP_182) in (let TMP_184 \def (THead 
-TMP_178 w TMP_183) in (sc3 g a1 d TMP_184))))))))))))) in (let TMP_186 \def 
-(land TMP_177 TMP_185) in (let TMP_268 \def (\lambda (H7: (arity g c (THeads 
-(Flat Appl) vs t) (AHead a0 a1))).(\lambda (H8: ((\forall (d: C).(\forall (w: 
-T).((sc3 g a0 d w) \to (\forall (is: PList).((drop1 is d c) \to (sc3 g a1 d 
-(THead (Flat Appl) w (lift1 is (THeads (Flat Appl) vs t))))))))))).(let 
-TMP_187 \def (Flat Appl) in (let TMP_188 \def (Flat Cast) in (let TMP_189 
-\def (THead TMP_188 u t) in (let TMP_190 \def (THeads TMP_187 vs TMP_189) in 
-(let TMP_191 \def (AHead a0 a1) in (let TMP_192 \def (arity g c TMP_190 
-TMP_191) in (let TMP_200 \def (\forall (d: C).(\forall (w: T).((sc3 g a0 d w) 
-\to (\forall (is: PList).((drop1 is d c) \to (let TMP_193 \def (Flat Appl) in 
-(let TMP_194 \def (Flat Appl) in (let TMP_195 \def (Flat Cast) in (let 
-TMP_196 \def (THead TMP_195 u t) in (let TMP_197 \def (THeads TMP_194 vs 
-TMP_196) in (let TMP_198 \def (lift1 is TMP_197) in (let TMP_199 \def (THead 
-TMP_193 w TMP_198) in (sc3 g a1 d TMP_199))))))))))))) in (let TMP_201 \def 
-(AHead a0 a1) in (let TMP_202 \def (arity_appls_cast g c u t vs TMP_201 H4 
-H7) in (let TMP_267 \def (\lambda (d: C).(\lambda (w: T).(\lambda (H9: (sc3 g 
-a0 d w)).(\lambda (is: PList).(\lambda (H10: (drop1 is d c)).(let TMP_203 
-\def (lifts1 is vs) in (let TMP_204 \def (TCons w TMP_203) in (let H_y \def 
-(H0 TMP_204) in (let TMP_205 \def (Flat Appl) in (let TMP_206 \def (lifts1 is 
-vs) in (let TMP_207 \def (Flat Cast) in (let TMP_208 \def (THead TMP_207 u t) 
-in (let TMP_209 \def (lift1 is TMP_208) in (let TMP_210 \def (THeads TMP_205 
-TMP_206 TMP_209) in (let TMP_213 \def (\lambda (t0: T).(let TMP_211 \def 
-(Flat Appl) in (let TMP_212 \def (THead TMP_211 w t0) in (sc3 g a1 d 
-TMP_212)))) in (let TMP_214 \def (Flat Cast) in (let TMP_215 \def (lift1 is 
-u) in (let TMP_216 \def (lift1 is t) in (let TMP_217 \def (THead TMP_214 
-TMP_215 TMP_216) in (let TMP_223 \def (\lambda (t0: T).(let TMP_218 \def 
-(Flat Appl) in (let TMP_219 \def (Flat Appl) in (let TMP_220 \def (lifts1 is 
-vs) in (let TMP_221 \def (THeads TMP_219 TMP_220 t0) in (let TMP_222 \def 
-(THead TMP_218 w TMP_221) in (sc3 g a1 d TMP_222))))))) in (let TMP_224 \def 
-(lift1 is u) in (let TMP_225 \def (Flat Appl) in (let TMP_226 \def (THeads 
-TMP_225 vs u) in (let TMP_227 \def (lift1 is TMP_226) in (let TMP_231 \def 
-(\lambda (t0: T).(let TMP_228 \def (asucc g a1) in (let TMP_229 \def (Flat 
-Appl) in (let TMP_230 \def (THead TMP_229 w t0) in (sc3 g TMP_228 d 
-TMP_230))))) in (let TMP_232 \def (H5 d w H9 is H10) in (let TMP_233 \def 
-(Flat Appl) in (let TMP_234 \def (lifts1 is vs) in (let TMP_235 \def (lift1 
-is u) in (let TMP_236 \def (THeads TMP_233 TMP_234 TMP_235) in (let TMP_237 
-\def (lifts1_flat Appl is u vs) in (let TMP_238 \def (eq_ind T TMP_227 
-TMP_231 TMP_232 TMP_236 TMP_237) in (let TMP_239 \def (lift1 is t) in (let 
-TMP_240 \def (Flat Appl) in (let TMP_241 \def (THeads TMP_240 vs t) in (let 
-TMP_242 \def (lift1 is TMP_241) in (let TMP_245 \def (\lambda (t0: T).(let 
-TMP_243 \def (Flat Appl) in (let TMP_244 \def (THead TMP_243 w t0) in (sc3 g 
-a1 d TMP_244)))) in (let TMP_246 \def (H8 d w H9 is H10) in (let TMP_247 \def 
-(Flat Appl) in (let TMP_248 \def (lifts1 is vs) in (let TMP_249 \def (lift1 
-is t) in (let TMP_250 \def (THeads TMP_247 TMP_248 TMP_249) in (let TMP_251 
-\def (lifts1_flat Appl is t vs) in (let TMP_252 \def (eq_ind T TMP_242 
-TMP_245 TMP_246 TMP_250 TMP_251) in (let TMP_253 \def (H_y d TMP_224 TMP_238 
-TMP_239 TMP_252) in (let TMP_254 \def (Flat Cast) in (let TMP_255 \def (THead 
-TMP_254 u t) in (let TMP_256 \def (lift1 is TMP_255) in (let TMP_257 \def 
-(lift1_flat Cast is u t) in (let TMP_258 \def (eq_ind_r T TMP_217 TMP_223 
-TMP_253 TMP_256 TMP_257) in (let TMP_259 \def (Flat Appl) in (let TMP_260 
-\def (Flat Cast) in (let TMP_261 \def (THead TMP_260 u t) in (let TMP_262 
-\def (THeads TMP_259 vs TMP_261) in (let TMP_263 \def (lift1 is TMP_262) in 
-(let TMP_264 \def (Flat Cast) in (let TMP_265 \def (THead TMP_264 u t) in 
-(let TMP_266 \def (lifts1_flat Appl is TMP_265 vs) in (eq_ind_r T TMP_210 
-TMP_213 TMP_258 TMP_263 
-TMP_266))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) in (conj 
-TMP_192 TMP_200 TMP_202 TMP_267))))))))))))) in (land_ind TMP_165 TMP_171 
-TMP_186 TMP_268 H6)))))))))))))))))) in (land_ind TMP_139 TMP_146 TMP_161 
-TMP_269 H3))))))))))))))))))))))))))) in (A_ind TMP_5 TMP_134 TMP_270 a))))).
+\to (sc3 g a1 d (THead (Flat Appl) w (lift1 is (THeads (Flat Appl) vs 
+t))))))))))).(conj (arity g c (THeads (Flat Appl) vs (THead (Flat Cast) u t)) 
+(AHead a0 a1)) (\forall (d: C).(\forall (w: T).((sc3 g a0 d w) \to (\forall 
+(is: PList).((drop1 is d c) \to (sc3 g a1 d (THead (Flat Appl) w (lift1 is 
+(THeads (Flat Appl) vs (THead (Flat Cast) u t)))))))))) (arity_appls_cast g c 
+u t vs (AHead a0 a1) H4 H7) (\lambda (d: C).(\lambda (w: T).(\lambda (H9: 
+(sc3 g a0 d w)).(\lambda (is: PList).(\lambda (H10: (drop1 is d c)).(let H_y 
+\def (H0 (TCons w (lifts1 is vs))) in (eq_ind_r T (THeads (Flat Appl) (lifts1 
+is vs) (lift1 is (THead (Flat Cast) u t))) (\lambda (t0: T).(sc3 g a1 d 
+(THead (Flat Appl) w t0))) (eq_ind_r T (THead (Flat Cast) (lift1 is u) (lift1 
+is t)) (\lambda (t0: T).(sc3 g a1 d (THead (Flat Appl) w (THeads (Flat Appl) 
+(lifts1 is vs) t0)))) (H_y d (lift1 is u) (eq_ind T (lift1 is (THeads (Flat 
+Appl) vs u)) (\lambda (t0: T).(sc3 g (asucc g a1) d (THead (Flat Appl) w 
+t0))) (H5 d w H9 is H10) (THeads (Flat Appl) (lifts1 is vs) (lift1 is u)) 
+(lifts1_flat Appl is u vs)) (lift1 is t) (eq_ind T (lift1 is (THeads (Flat 
+Appl) vs t)) (\lambda (t0: T).(sc3 g a1 d (THead (Flat Appl) w t0))) (H8 d w 
+H9 is H10) (THeads (Flat Appl) (lifts1 is vs) (lift1 is t)) (lifts1_flat Appl 
+is t vs))) (lift1 is (THead (Flat Cast) u t)) (lift1_flat Cast is u t)) 
+(lift1 is (THeads (Flat Appl) vs (THead (Flat Cast) u t))) (lifts1_flat Appl 
+is (THead (Flat Cast) u t) vs))))))))))) H6)))) H3)))))))))))) a)).
 
 theorem sc3_props__sc3_sn3_abst:
  \forall (g: G).(\forall (a: A).(land (\forall (c: C).(\forall (t: T).((sc3 g 
@@ -605,36 +377,24 @@ a c t) \to (sn3 c t)))) (\forall (vs: TList).(\forall (i: nat).(let t \def
 (THeads (Flat Appl) vs (TLRef i)) in (\forall (c: C).((arity g c t a) \to 
 ((nf2 c (TLRef i)) \to ((sns3 c vs) \to (sc3 g a c t))))))))))
 \def
- \lambda (g: G).(\lambda (a: A).(let TMP_5 \def (\lambda (a0: A).(let TMP_1 
-\def (\forall (c: C).(\forall (t: T).((sc3 g a0 c t) \to (sn3 c t)))) in (let 
-TMP_4 \def (\forall (vs: TList).(\forall (i: nat).(let TMP_2 \def (Flat Appl) 
-in (let TMP_3 \def (TLRef i) in (let t \def (THeads TMP_2 vs TMP_3) in 
+ \lambda (g: G).(\lambda (a: A).(A_ind (\lambda (a0: A).(land (\forall (c: 
+C).(\forall (t: T).((sc3 g a0 c t) \to (sn3 c t)))) (\forall (vs: 
+TList).(\forall (i: nat).(let t \def (THeads (Flat Appl) vs (TLRef i)) in 
 (\forall (c: C).((arity g c t a0) \to ((nf2 c (TLRef i)) \to ((sns3 c vs) \to 
-(sc3 g a0 c t)))))))))) in (land TMP_1 TMP_4)))) in (let TMP_34 \def (\lambda 
-(n: nat).(\lambda (n0: nat).(let TMP_6 \def (\forall (c: C).(\forall (t: 
-T).((land (arity g c t (ASort n n0)) (sn3 c t)) \to (sn3 c t)))) in (let 
-TMP_16 \def (\forall (vs: TList).(\forall (i: nat).(\forall (c: C).((arity g 
-c (THeads (Flat Appl) vs (TLRef i)) (ASort n n0)) \to ((nf2 c (TLRef i)) \to 
-((sns3 c vs) \to (let TMP_7 \def (Flat Appl) in (let TMP_8 \def (TLRef i) in 
-(let TMP_9 \def (THeads TMP_7 vs TMP_8) in (let TMP_10 \def (ASort n n0) in 
-(let TMP_11 \def (arity g c TMP_9 TMP_10) in (let TMP_12 \def (Flat Appl) in 
-(let TMP_13 \def (TLRef i) in (let TMP_14 \def (THeads TMP_12 vs TMP_13) in 
-(let TMP_15 \def (sn3 c TMP_14) in (land TMP_11 TMP_15)))))))))))))))) in 
-(let TMP_22 \def (\lambda (c: C).(\lambda (t: T).(\lambda (H: (land (arity g 
-c t (ASort n n0)) (sn3 c t))).(let H0 \def H in (let TMP_17 \def (ASort n n0) 
-in (let TMP_18 \def (arity g c t TMP_17) in (let TMP_19 \def (sn3 c t) in 
-(let TMP_20 \def (sn3 c t) in (let TMP_21 \def (\lambda (_: (arity g c t 
-(ASort n n0))).(\lambda (H2: (sn3 c t)).H2)) in (land_ind TMP_18 TMP_19 
-TMP_20 TMP_21 H0)))))))))) in (let TMP_33 \def (\lambda (vs: TList).(\lambda 
-(i: nat).(\lambda (c: C).(\lambda (H: (arity g c (THeads (Flat Appl) vs 
-(TLRef i)) (ASort n n0))).(\lambda (H0: (nf2 c (TLRef i))).(\lambda (H1: 
-(sns3 c vs)).(let TMP_23 \def (Flat Appl) in (let TMP_24 \def (TLRef i) in 
-(let TMP_25 \def (THeads TMP_23 vs TMP_24) in (let TMP_26 \def (ASort n n0) 
-in (let TMP_27 \def (arity g c TMP_25 TMP_26) in (let TMP_28 \def (Flat Appl) 
-in (let TMP_29 \def (TLRef i) in (let TMP_30 \def (THeads TMP_28 vs TMP_29) 
-in (let TMP_31 \def (sn3 c TMP_30) in (let TMP_32 \def (sn3_appls_lref c i H0 
-vs H1) in (conj TMP_27 TMP_31 H TMP_32))))))))))))))))) in (conj TMP_6 TMP_16 
-TMP_22 TMP_33))))))) in (let TMP_254 \def (\lambda (a0: A).(\lambda (H: (land 
+(sc3 g a0 c t)))))))))) (\lambda (n: nat).(\lambda (n0: nat).(conj (\forall 
+(c: C).(\forall (t: T).((land (arity g c t (ASort n n0)) (sn3 c t)) \to (sn3 
+c t)))) (\forall (vs: TList).(\forall (i: nat).(\forall (c: C).((arity g c 
+(THeads (Flat Appl) vs (TLRef i)) (ASort n n0)) \to ((nf2 c (TLRef i)) \to 
+((sns3 c vs) \to (land (arity g c (THeads (Flat Appl) vs (TLRef i)) (ASort n 
+n0)) (sn3 c (THeads (Flat Appl) vs (TLRef i)))))))))) (\lambda (c: 
+C).(\lambda (t: T).(\lambda (H: (land (arity g c t (ASort n n0)) (sn3 c 
+t))).(let H0 \def H in (land_ind (arity g c t (ASort n n0)) (sn3 c t) (sn3 c 
+t) (\lambda (_: (arity g c t (ASort n n0))).(\lambda (H2: (sn3 c t)).H2)) 
+H0))))) (\lambda (vs: TList).(\lambda (i: nat).(\lambda (c: C).(\lambda (H: 
+(arity g c (THeads (Flat Appl) vs (TLRef i)) (ASort n n0))).(\lambda (H0: 
+(nf2 c (TLRef i))).(\lambda (H1: (sns3 c vs)).(conj (arity g c (THeads (Flat 
+Appl) vs (TLRef i)) (ASort n n0)) (sn3 c (THeads (Flat Appl) vs (TLRef i))) H 
+(sn3_appls_lref c i H0 vs H1))))))))))) (\lambda (a0: A).(\lambda (H: (land 
 (\forall (c: C).(\forall (t: T).((sc3 g a0 c t) \to (sn3 c t)))) (\forall 
 (vs: TList).(\forall (i: nat).(\forall (c: C).((arity g c (THeads (Flat Appl) 
 vs (TLRef i)) a0) \to ((nf2 c (TLRef i)) \to ((sns3 c vs) \to (sc3 g a0 c 
@@ -642,190 +402,103 @@ vs (TLRef i)) a0) \to ((nf2 c (TLRef i)) \to ((sns3 c vs) \to (sc3 g a0 c
 (land (\forall (c: C).(\forall (t: T).((sc3 g a1 c t) \to (sn3 c t)))) 
 (\forall (vs: TList).(\forall (i: nat).(\forall (c: C).((arity g c (THeads 
 (Flat Appl) vs (TLRef i)) a1) \to ((nf2 c (TLRef i)) \to ((sns3 c vs) \to 
-(sc3 g a1 c (THeads (Flat Appl) vs (TLRef i))))))))))).(let TMP_35 \def 
-(\forall (c: C).(\forall (t: T).((land (arity g c t (AHead a0 a1)) (\forall 
-(d: C).(\forall (w: T).((sc3 g a0 d w) \to (\forall (is: PList).((drop1 is d 
-c) \to (sc3 g a1 d (THead (Flat Appl) w (lift1 is t))))))))) \to (sn3 c t)))) 
-in (let TMP_48 \def (\forall (vs: TList).(\forall (i: nat).(\forall (c: 
-C).((arity g c (THeads (Flat Appl) vs (TLRef i)) (AHead a0 a1)) \to ((nf2 c 
-(TLRef i)) \to ((sns3 c vs) \to (let TMP_36 \def (Flat Appl) in (let TMP_37 
-\def (TLRef i) in (let TMP_38 \def (THeads TMP_36 vs TMP_37) in (let TMP_39 
-\def (AHead a0 a1) in (let TMP_40 \def (arity g c TMP_38 TMP_39) in (let 
-TMP_47 \def (\forall (d: C).(\forall (w: T).((sc3 g a0 d w) \to (\forall (is: 
-PList).((drop1 is d c) \to (let TMP_41 \def (Flat Appl) in (let TMP_42 \def 
-(Flat Appl) in (let TMP_43 \def (TLRef i) in (let TMP_44 \def (THeads TMP_42 
-vs TMP_43) in (let TMP_45 \def (lift1 is TMP_44) in (let TMP_46 \def (THead 
-TMP_41 w TMP_45) in (sc3 g a1 d TMP_46)))))))))))) in (land TMP_40 
-TMP_47))))))))))))) in (let TMP_130 \def (\lambda (c: C).(\lambda (t: 
+(sc3 g a1 c (THeads (Flat Appl) vs (TLRef i))))))))))).(conj (\forall (c: 
+C).(\forall (t: T).((land (arity g c t (AHead a0 a1)) (\forall (d: 
+C).(\forall (w: T).((sc3 g a0 d w) \to (\forall (is: PList).((drop1 is d c) 
+\to (sc3 g a1 d (THead (Flat Appl) w (lift1 is t))))))))) \to (sn3 c t)))) 
+(\forall (vs: TList).(\forall (i: nat).(\forall (c: C).((arity g c (THeads 
+(Flat Appl) vs (TLRef i)) (AHead a0 a1)) \to ((nf2 c (TLRef i)) \to ((sns3 c 
+vs) \to (land (arity g c (THeads (Flat Appl) vs (TLRef i)) (AHead a0 a1)) 
+(\forall (d: C).(\forall (w: T).((sc3 g a0 d w) \to (\forall (is: 
+PList).((drop1 is d c) \to (sc3 g a1 d (THead (Flat Appl) w (lift1 is (THeads 
+(Flat Appl) vs (TLRef i))))))))))))))))) (\lambda (c: C).(\lambda (t: 
 T).(\lambda (H1: (land (arity g c t (AHead a0 a1)) (\forall (d: C).(\forall 
 (w: T).((sc3 g a0 d w) \to (\forall (is: PList).((drop1 is d c) \to (sc3 g a1 
-d (THead (Flat Appl) w (lift1 is t)))))))))).(let H2 \def H in (let TMP_49 
-\def (\forall (c0: C).(\forall (t0: T).((sc3 g a0 c0 t0) \to (sn3 c0 t0)))) 
-in (let TMP_53 \def (\forall (vs: TList).(\forall (i: nat).(\forall (c0: 
-C).((arity g c0 (THeads (Flat Appl) vs (TLRef i)) a0) \to ((nf2 c0 (TLRef i)) 
-\to ((sns3 c0 vs) \to (let TMP_50 \def (Flat Appl) in (let TMP_51 \def (TLRef 
-i) in (let TMP_52 \def (THeads TMP_50 vs TMP_51) in (sc3 g a0 c0 
-TMP_52)))))))))) in (let TMP_54 \def (sn3 c t) in (let TMP_129 \def (\lambda 
-(_: ((\forall (c0: C).(\forall (t0: T).((sc3 g a0 c0 t0) \to (sn3 c0 
+d (THead (Flat Appl) w (lift1 is t)))))))))).(let H2 \def H in (land_ind 
+(\forall (c0: C).(\forall (t0: T).((sc3 g a0 c0 t0) \to (sn3 c0 t0)))) 
+(\forall (vs: TList).(\forall (i: nat).(\forall (c0: C).((arity g c0 (THeads 
+(Flat Appl) vs (TLRef i)) a0) \to ((nf2 c0 (TLRef i)) \to ((sns3 c0 vs) \to 
+(sc3 g a0 c0 (THeads (Flat Appl) vs (TLRef i))))))))) (sn3 c t) (\lambda (_: 
+((\forall (c0: C).(\forall (t0: T).((sc3 g a0 c0 t0) \to (sn3 c0 
 t0)))))).(\lambda (H4: ((\forall (vs: TList).(\forall (i: nat).(\forall (c0: 
 C).((arity g c0 (THeads (Flat Appl) vs (TLRef i)) a0) \to ((nf2 c0 (TLRef i)) 
 \to ((sns3 c0 vs) \to (sc3 g a0 c0 (THeads (Flat Appl) vs (TLRef 
-i))))))))))).(let H5 \def H0 in (let TMP_55 \def (\forall (c0: C).(\forall 
-(t0: T).((sc3 g a1 c0 t0) \to (sn3 c0 t0)))) in (let TMP_59 \def (\forall 
-(vs: TList).(\forall (i: nat).(\forall (c0: C).((arity g c0 (THeads (Flat 
-Appl) vs (TLRef i)) a1) \to ((nf2 c0 (TLRef i)) \to ((sns3 c0 vs) \to (let 
-TMP_56 \def (Flat Appl) in (let TMP_57 \def (TLRef i) in (let TMP_58 \def 
-(THeads TMP_56 vs TMP_57) in (sc3 g a1 c0 TMP_58)))))))))) in (let TMP_60 
-\def (sn3 c t) in (let TMP_128 \def (\lambda (H6: ((\forall (c0: C).(\forall 
-(t0: T).((sc3 g a1 c0 t0) \to (sn3 c0 t0)))))).(\lambda (_: ((\forall (vs: 
+i))))))))))).(let H5 \def H0 in (land_ind (\forall (c0: C).(\forall (t0: 
+T).((sc3 g a1 c0 t0) \to (sn3 c0 t0)))) (\forall (vs: TList).(\forall (i: 
+nat).(\forall (c0: C).((arity g c0 (THeads (Flat Appl) vs (TLRef i)) a1) \to 
+((nf2 c0 (TLRef i)) \to ((sns3 c0 vs) \to (sc3 g a1 c0 (THeads (Flat Appl) vs 
+(TLRef i))))))))) (sn3 c t) (\lambda (H6: ((\forall (c0: C).(\forall (t0: 
+T).((sc3 g a1 c0 t0) \to (sn3 c0 t0)))))).(\lambda (_: ((\forall (vs: 
 TList).(\forall (i: nat).(\forall (c0: C).((arity g c0 (THeads (Flat Appl) vs 
 (TLRef i)) a1) \to ((nf2 c0 (TLRef i)) \to ((sns3 c0 vs) \to (sc3 g a1 c0 
-(THeads (Flat Appl) vs (TLRef i))))))))))).(let H8 \def H1 in (let TMP_61 
-\def (AHead a0 a1) in (let TMP_62 \def (arity g c t TMP_61) in (let TMP_66 
-\def (\forall (d: C).(\forall (w: T).((sc3 g a0 d w) \to (\forall (is: 
-PList).((drop1 is d c) \to (let TMP_63 \def (Flat Appl) in (let TMP_64 \def 
-(lift1 is t) in (let TMP_65 \def (THead TMP_63 w TMP_64) in (sc3 g a1 d 
-TMP_65))))))))) in (let TMP_67 \def (sn3 c t) in (let TMP_127 \def (\lambda 
-(H9: (arity g c t (AHead a0 a1))).(\lambda (H10: ((\forall (d: C).(\forall 
-(w: T).((sc3 g a0 d w) \to (\forall (is: PList).((drop1 is d c) \to (sc3 g a1 
-d (THead (Flat Appl) w (lift1 is t)))))))))).(let TMP_68 \def (AHead a0 a1) 
-in (let H_y \def (arity_aprem g c t TMP_68 H9 O a0) in (let TMP_69 \def 
-(aprem_zero a0 a1) in (let H11 \def (H_y TMP_69) in (let TMP_70 \def (\lambda 
-(d: C).(\lambda (_: T).(\lambda (j: nat).(drop j O d c)))) in (let TMP_72 
-\def (\lambda (d: C).(\lambda (u: T).(\lambda (_: nat).(let TMP_71 \def 
-(asucc g a0) in (arity g d u TMP_71))))) in (let TMP_73 \def (sn3 c t) in 
-(let TMP_126 \def (\lambda (x0: C).(\lambda (x1: T).(\lambda (x2: 
-nat).(\lambda (H12: (drop x2 O x0 c)).(\lambda (H13: (arity g x0 x1 (asucc g 
-a0))).(let TMP_74 \def (Bind Abst) in (let TMP_75 \def (CHead x0 TMP_74 x1) 
-in (let TMP_76 \def (TLRef O) in (let TMP_77 \def (Bind Abst) in (let TMP_78 
-\def (CHead x0 TMP_77 x1) in (let TMP_79 \def (Bind Abst) in (let TMP_80 \def 
-(CHead x0 TMP_79 x1) in (let TMP_81 \def (getl_refl Abst x0 x1) in (let 
-TMP_82 \def (arity_abst g TMP_80 x0 x1 O TMP_81 a0 H13) in (let TMP_83 \def 
-(Bind Abst) in (let TMP_84 \def (CHead x0 TMP_83 x1) in (let TMP_85 \def 
-(getl_refl Abst x0 x1) in (let TMP_86 \def (nf2_lref_abst TMP_84 x0 x1 O 
-TMP_85) in (let TMP_87 \def (H4 TNil O TMP_78 TMP_82 TMP_86 I) in (let TMP_88 
-\def (S x2) in (let TMP_89 \def (PCons TMP_88 O PNil) in (let H_y0 \def (H10 
-TMP_75 TMP_76 TMP_87 TMP_89) in (let TMP_90 \def (Bind Abst) in (let TMP_91 
-\def (CHead x0 TMP_90 x1) in (let TMP_92 \def (Flat Appl) in (let TMP_93 \def 
-(TLRef O) in (let TMP_94 \def (S x2) in (let TMP_95 \def (lift TMP_94 O t) in 
-(let TMP_96 \def (THead TMP_92 TMP_93 TMP_95) in (let TMP_97 \def (Bind Abst) 
-in (let TMP_98 \def (CHead x0 TMP_97 x1) in (let TMP_99 \def (S x2) in (let 
-TMP_100 \def (Bind Abst) in (let TMP_101 \def (drop_drop TMP_100 x2 x0 c H12 
-x1) in (let TMP_102 \def (drop1_nil c) in (let TMP_103 \def (drop1_cons 
-TMP_98 c TMP_99 O TMP_101 c PNil TMP_102) in (let TMP_104 \def (H_y0 TMP_103) 
-in (let H_y1 \def (H6 TMP_91 TMP_96 TMP_104) in (let TMP_105 \def (Bind Abst) 
-in (let TMP_106 \def (CHead x0 TMP_105 x1) in (let TMP_107 \def (TLRef O) in 
-(let TMP_108 \def (S x2) in (let TMP_109 \def (lift TMP_108 O t) in (let H_x 
-\def (sn3_gen_flat Appl TMP_106 TMP_107 TMP_109 H_y1) in (let H14 \def H_x in 
-(let TMP_110 \def (Bind Abst) in (let TMP_111 \def (CHead x0 TMP_110 x1) in 
-(let TMP_112 \def (TLRef O) in (let TMP_113 \def (sn3 TMP_111 TMP_112) in 
-(let TMP_114 \def (Bind Abst) in (let TMP_115 \def (CHead x0 TMP_114 x1) in 
-(let TMP_116 \def (S x2) in (let TMP_117 \def (lift TMP_116 O t) in (let 
-TMP_118 \def (sn3 TMP_115 TMP_117) in (let TMP_119 \def (sn3 c t) in (let 
-TMP_125 \def (\lambda (_: (sn3 (CHead x0 (Bind Abst) x1) (TLRef O))).(\lambda 
-(H16: (sn3 (CHead x0 (Bind Abst) x1) (lift (S x2) O t))).(let TMP_120 \def 
-(Bind Abst) in (let TMP_121 \def (CHead x0 TMP_120 x1) in (let TMP_122 \def 
-(S x2) in (let TMP_123 \def (Bind Abst) in (let TMP_124 \def (drop_drop 
-TMP_123 x2 x0 c H12 x1) in (sn3_gen_lift TMP_121 t TMP_122 O H16 c 
-TMP_124)))))))) in (land_ind TMP_113 TMP_118 TMP_119 TMP_125 
-H14))))))))))))))))))))))))))))))))))))))))))))))))))))))))) in (ex2_3_ind C 
-T nat TMP_70 TMP_72 TMP_73 TMP_126 H11))))))))))) in (land_ind TMP_62 TMP_66 
-TMP_67 TMP_127 H8))))))))) in (land_ind TMP_55 TMP_59 TMP_60 TMP_128 
-H5)))))))) in (land_ind TMP_49 TMP_53 TMP_54 TMP_129 H2))))))))) in (let 
-TMP_253 \def (\lambda (vs: TList).(\lambda (i: nat).(\lambda (c: C).(\lambda 
-(H1: (arity g c (THeads (Flat Appl) vs (TLRef i)) (AHead a0 a1))).(\lambda 
-(H2: (nf2 c (TLRef i))).(\lambda (H3: (sns3 c vs)).(let TMP_131 \def (Flat 
-Appl) in (let TMP_132 \def (TLRef i) in (let TMP_133 \def (THeads TMP_131 vs 
-TMP_132) in (let TMP_134 \def (AHead a0 a1) in (let TMP_135 \def (arity g c 
-TMP_133 TMP_134) in (let TMP_142 \def (\forall (d: C).(\forall (w: T).((sc3 g 
-a0 d w) \to (\forall (is: PList).((drop1 is d c) \to (let TMP_136 \def (Flat 
-Appl) in (let TMP_137 \def (Flat Appl) in (let TMP_138 \def (TLRef i) in (let 
-TMP_139 \def (THeads TMP_137 vs TMP_138) in (let TMP_140 \def (lift1 is 
-TMP_139) in (let TMP_141 \def (THead TMP_136 w TMP_140) in (sc3 g a1 d 
-TMP_141)))))))))))) in (let TMP_252 \def (\lambda (d: C).(\lambda (w: 
-T).(\lambda (H4: (sc3 g a0 d w)).(\lambda (is: PList).(\lambda (H5: (drop1 is 
-d c)).(let H6 \def H in (let TMP_143 \def (\forall (c0: C).(\forall (t: 
-T).((sc3 g a0 c0 t) \to (sn3 c0 t)))) in (let TMP_147 \def (\forall (vs0: 
-TList).(\forall (i0: nat).(\forall (c0: C).((arity g c0 (THeads (Flat Appl) 
-vs0 (TLRef i0)) a0) \to ((nf2 c0 (TLRef i0)) \to ((sns3 c0 vs0) \to (let 
-TMP_144 \def (Flat Appl) in (let TMP_145 \def (TLRef i0) in (let TMP_146 \def 
-(THeads TMP_144 vs0 TMP_145) in (sc3 g a0 c0 TMP_146)))))))))) in (let 
-TMP_148 \def (Flat Appl) in (let TMP_149 \def (Flat Appl) in (let TMP_150 
-\def (TLRef i) in (let TMP_151 \def (THeads TMP_149 vs TMP_150) in (let 
-TMP_152 \def (lift1 is TMP_151) in (let TMP_153 \def (THead TMP_148 w 
-TMP_152) in (let TMP_154 \def (sc3 g a1 d TMP_153) in (let TMP_251 \def 
-(\lambda (H7: ((\forall (c0: C).(\forall (t: T).((sc3 g a0 c0 t) \to (sn3 c0 
-t)))))).(\lambda (_: ((\forall (vs0: TList).(\forall (i0: nat).(\forall (c0: 
-C).((arity g c0 (THeads (Flat Appl) vs0 (TLRef i0)) a0) \to ((nf2 c0 (TLRef 
-i0)) \to ((sns3 c0 vs0) \to (sc3 g a0 c0 (THeads (Flat Appl) vs0 (TLRef 
-i0))))))))))).(let H9 \def H0 in (let TMP_155 \def (\forall (c0: C).(\forall 
-(t: T).((sc3 g a1 c0 t) \to (sn3 c0 t)))) in (let TMP_159 \def (\forall (vs0: 
+(THeads (Flat Appl) vs (TLRef i))))))))))).(let H8 \def H1 in (land_ind 
+(arity g c t (AHead a0 a1)) (\forall (d: C).(\forall (w: T).((sc3 g a0 d w) 
+\to (\forall (is: PList).((drop1 is d c) \to (sc3 g a1 d (THead (Flat Appl) w 
+(lift1 is t)))))))) (sn3 c t) (\lambda (H9: (arity g c t (AHead a0 
+a1))).(\lambda (H10: ((\forall (d: C).(\forall (w: T).((sc3 g a0 d w) \to 
+(\forall (is: PList).((drop1 is d c) \to (sc3 g a1 d (THead (Flat Appl) w 
+(lift1 is t)))))))))).(let H_y \def (arity_aprem g c t (AHead a0 a1) H9 O a0) 
+in (let H11 \def (H_y (aprem_zero a0 a1)) in (ex2_3_ind C T nat (\lambda (d: 
+C).(\lambda (_: T).(\lambda (j: nat).(drop j O d c)))) (\lambda (d: 
+C).(\lambda (u: T).(\lambda (_: nat).(arity g d u (asucc g a0))))) (sn3 c t) 
+(\lambda (x0: C).(\lambda (x1: T).(\lambda (x2: nat).(\lambda (H12: (drop x2 
+O x0 c)).(\lambda (H13: (arity g x0 x1 (asucc g a0))).(let H_y0 \def (H10 
+(CHead x0 (Bind Abst) x1) (TLRef O) (H4 TNil O (CHead x0 (Bind Abst) x1) 
+(arity_abst g (CHead x0 (Bind Abst) x1) x0 x1 O (getl_refl Abst x0 x1) a0 
+H13) (nf2_lref_abst (CHead x0 (Bind Abst) x1) x0 x1 O (getl_refl Abst x0 x1)) 
+I) (PCons (S x2) O PNil)) in (let H_y1 \def (H6 (CHead x0 (Bind Abst) x1) 
+(THead (Flat Appl) (TLRef O) (lift (S x2) O t)) (H_y0 (drop1_cons (CHead x0 
+(Bind Abst) x1) c (S x2) O (drop_drop (Bind Abst) x2 x0 c H12 x1) c PNil 
+(drop1_nil c)))) in (let H_x \def (sn3_gen_flat Appl (CHead x0 (Bind Abst) 
+x1) (TLRef O) (lift (S x2) O t) H_y1) in (let H14 \def H_x in (land_ind (sn3 
+(CHead x0 (Bind Abst) x1) (TLRef O)) (sn3 (CHead x0 (Bind Abst) x1) (lift (S 
+x2) O t)) (sn3 c t) (\lambda (_: (sn3 (CHead x0 (Bind Abst) x1) (TLRef 
+O))).(\lambda (H16: (sn3 (CHead x0 (Bind Abst) x1) (lift (S x2) O 
+t))).(sn3_gen_lift (CHead x0 (Bind Abst) x1) t (S x2) O H16 c (drop_drop 
+(Bind Abst) x2 x0 c H12 x1)))) H14)))))))))) H11))))) H8)))) H5)))) H2))))) 
+(\lambda (vs: TList).(\lambda (i: nat).(\lambda (c: C).(\lambda (H1: (arity g 
+c (THeads (Flat Appl) vs (TLRef i)) (AHead a0 a1))).(\lambda (H2: (nf2 c 
+(TLRef i))).(\lambda (H3: (sns3 c vs)).(conj (arity g c (THeads (Flat Appl) 
+vs (TLRef i)) (AHead a0 a1)) (\forall (d: C).(\forall (w: T).((sc3 g a0 d w) 
+\to (\forall (is: PList).((drop1 is d c) \to (sc3 g a1 d (THead (Flat Appl) w 
+(lift1 is (THeads (Flat Appl) vs (TLRef i)))))))))) H1 (\lambda (d: 
+C).(\lambda (w: T).(\lambda (H4: (sc3 g a0 d w)).(\lambda (is: 
+PList).(\lambda (H5: (drop1 is d c)).(let H6 \def H in (land_ind (\forall 
+(c0: C).(\forall (t: T).((sc3 g a0 c0 t) \to (sn3 c0 t)))) (\forall (vs0: 
 TList).(\forall (i0: nat).(\forall (c0: C).((arity g c0 (THeads (Flat Appl) 
-vs0 (TLRef i0)) a1) \to ((nf2 c0 (TLRef i0)) \to ((sns3 c0 vs0) \to (let 
-TMP_156 \def (Flat Appl) in (let TMP_157 \def (TLRef i0) in (let TMP_158 \def 
-(THeads TMP_156 vs0 TMP_157) in (sc3 g a1 c0 TMP_158)))))))))) in (let 
-TMP_160 \def (Flat Appl) in (let TMP_161 \def (Flat Appl) in (let TMP_162 
-\def (TLRef i) in (let TMP_163 \def (THeads TMP_161 vs TMP_162) in (let 
-TMP_164 \def (lift1 is TMP_163) in (let TMP_165 \def (THead TMP_160 w 
-TMP_164) in (let TMP_166 \def (sc3 g a1 d TMP_165) in (let TMP_250 \def 
-(\lambda (_: ((\forall (c0: C).(\forall (t: T).((sc3 g a1 c0 t) \to (sn3 c0 
-t)))))).(\lambda (H11: ((\forall (vs0: TList).(\forall (i0: nat).(\forall 
-(c0: C).((arity g c0 (THeads (Flat Appl) vs0 (TLRef i0)) a1) \to ((nf2 c0 
-(TLRef i0)) \to ((sns3 c0 vs0) \to (sc3 g a1 c0 (THeads (Flat Appl) vs0 
-(TLRef i0))))))))))).(let TMP_167 \def (lifts1 is vs) in (let TMP_168 \def 
-(TCons w TMP_167) in (let H_y \def (H11 TMP_168) in (let TMP_169 \def (Flat 
-Appl) in (let TMP_170 \def (lifts1 is vs) in (let TMP_171 \def (TLRef i) in 
-(let TMP_172 \def (lift1 is TMP_171) in (let TMP_173 \def (THeads TMP_169 
-TMP_170 TMP_172) in (let TMP_176 \def (\lambda (t: T).(let TMP_174 \def (Flat 
-Appl) in (let TMP_175 \def (THead TMP_174 w t) in (sc3 g a1 d TMP_175)))) in 
-(let TMP_177 \def (trans is i) in (let TMP_178 \def (TLRef TMP_177) in (let 
-TMP_184 \def (\lambda (t: T).(let TMP_179 \def (Flat Appl) in (let TMP_180 
-\def (Flat Appl) in (let TMP_181 \def (lifts1 is vs) in (let TMP_182 \def 
-(THeads TMP_180 TMP_181 t) in (let TMP_183 \def (THead TMP_179 w TMP_182) in 
-(sc3 g a1 d TMP_183))))))) in (let TMP_185 \def (trans is i) in (let TMP_186 
-\def (TLRef i) in (let TMP_187 \def (lift1 is TMP_186) in (let TMP_193 \def 
-(\lambda (t: T).(let TMP_188 \def (Flat Appl) in (let TMP_189 \def (Flat 
-Appl) in (let TMP_190 \def (lifts1 is vs) in (let TMP_191 \def (THeads 
-TMP_189 TMP_190 t) in (let TMP_192 \def (THead TMP_188 w TMP_191) in (arity g 
-d TMP_192 a1))))))) in (let TMP_194 \def (Flat Appl) in (let TMP_195 \def 
-(TLRef i) in (let TMP_196 \def (THeads TMP_194 vs TMP_195) in (let TMP_197 
-\def (lift1 is TMP_196) in (let TMP_200 \def (\lambda (t: T).(let TMP_198 
-\def (Flat Appl) in (let TMP_199 \def (THead TMP_198 w t) in (arity g d 
-TMP_199 a1)))) in (let TMP_201 \def (sc3_arity_gen g d w a0 H4) in (let 
-TMP_202 \def (Flat Appl) in (let TMP_203 \def (TLRef i) in (let TMP_204 \def 
-(THeads TMP_202 vs TMP_203) in (let TMP_205 \def (lift1 is TMP_204) in (let 
-TMP_206 \def (AHead a0 a1) in (let TMP_207 \def (Flat Appl) in (let TMP_208 
-\def (TLRef i) in (let TMP_209 \def (THeads TMP_207 vs TMP_208) in (let 
-TMP_210 \def (arity_lift1 g TMP_206 c is d TMP_209 H5 H1) in (let TMP_211 
-\def (arity_appl g d w a0 TMP_201 TMP_205 a1 TMP_210) in (let TMP_212 \def 
-(Flat Appl) in (let TMP_213 \def (lifts1 is vs) in (let TMP_214 \def (TLRef 
-i) in (let TMP_215 \def (lift1 is TMP_214) in (let TMP_216 \def (THeads 
-TMP_212 TMP_213 TMP_215) in (let TMP_217 \def (TLRef i) in (let TMP_218 \def 
-(lifts1_flat Appl is TMP_217 vs) in (let TMP_219 \def (eq_ind T TMP_197 
-TMP_200 TMP_211 TMP_216 TMP_218) in (let TMP_220 \def (trans is i) in (let 
-TMP_221 \def (TLRef TMP_220) in (let TMP_222 \def (lift1_lref is i) in (let 
-TMP_223 \def (eq_ind T TMP_187 TMP_193 TMP_219 TMP_221 TMP_222) in (let 
-TMP_224 \def (TLRef i) in (let TMP_225 \def (lift1 is TMP_224) in (let 
-TMP_226 \def (\lambda (t: T).(nf2 d t)) in (let TMP_227 \def (TLRef i) in 
-(let TMP_228 \def (nf2_lift1 c is d TMP_227 H5 H2) in (let TMP_229 \def 
-(trans is i) in (let TMP_230 \def (TLRef TMP_229) in (let TMP_231 \def 
-(lift1_lref is i) in (let TMP_232 \def (eq_ind T TMP_225 TMP_226 TMP_228 
-TMP_230 TMP_231) in (let TMP_233 \def (sn3 d w) in (let TMP_234 \def (lifts1 
-is vs) in (let TMP_235 \def (sns3 d TMP_234) in (let TMP_236 \def (H7 d w H4) 
-in (let TMP_237 \def (sns3_lifts1 c is d H5 vs H3) in (let TMP_238 \def (conj 
-TMP_233 TMP_235 TMP_236 TMP_237) in (let TMP_239 \def (H_y TMP_185 d TMP_223 
-TMP_232 TMP_238) in (let TMP_240 \def (TLRef i) in (let TMP_241 \def (lift1 
-is TMP_240) in (let TMP_242 \def (lift1_lref is i) in (let TMP_243 \def 
-(eq_ind_r T TMP_178 TMP_184 TMP_239 TMP_241 TMP_242) in (let TMP_244 \def 
-(Flat Appl) in (let TMP_245 \def (TLRef i) in (let TMP_246 \def (THeads 
-TMP_244 vs TMP_245) in (let TMP_247 \def (lift1 is TMP_246) in (let TMP_248 
-\def (TLRef i) in (let TMP_249 \def (lifts1_flat Appl is TMP_248 vs) in 
-(eq_ind_r T TMP_173 TMP_176 TMP_243 TMP_247 
-TMP_249)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
-)) in (land_ind TMP_155 TMP_159 TMP_166 TMP_250 H9)))))))))))))) in (land_ind 
-TMP_143 TMP_147 TMP_154 TMP_251 H6))))))))))))))))) in (conj TMP_135 TMP_142 
-H1 TMP_252)))))))))))))) in (conj TMP_35 TMP_48 TMP_130 TMP_253))))))))) in 
-(A_ind TMP_5 TMP_34 TMP_254 a))))).
+vs0 (TLRef i0)) a0) \to ((nf2 c0 (TLRef i0)) \to ((sns3 c0 vs0) \to (sc3 g a0 
+c0 (THeads (Flat Appl) vs0 (TLRef i0))))))))) (sc3 g a1 d (THead (Flat Appl) 
+w (lift1 is (THeads (Flat Appl) vs (TLRef i))))) (\lambda (H7: ((\forall (c0: 
+C).(\forall (t: T).((sc3 g a0 c0 t) \to (sn3 c0 t)))))).(\lambda (_: 
+((\forall (vs0: TList).(\forall (i0: nat).(\forall (c0: C).((arity g c0 
+(THeads (Flat Appl) vs0 (TLRef i0)) a0) \to ((nf2 c0 (TLRef i0)) \to ((sns3 
+c0 vs0) \to (sc3 g a0 c0 (THeads (Flat Appl) vs0 (TLRef i0))))))))))).(let H9 
+\def H0 in (land_ind (\forall (c0: C).(\forall (t: T).((sc3 g a1 c0 t) \to 
+(sn3 c0 t)))) (\forall (vs0: TList).(\forall (i0: nat).(\forall (c0: 
+C).((arity g c0 (THeads (Flat Appl) vs0 (TLRef i0)) a1) \to ((nf2 c0 (TLRef 
+i0)) \to ((sns3 c0 vs0) \to (sc3 g a1 c0 (THeads (Flat Appl) vs0 (TLRef 
+i0))))))))) (sc3 g a1 d (THead (Flat Appl) w (lift1 is (THeads (Flat Appl) vs 
+(TLRef i))))) (\lambda (_: ((\forall (c0: C).(\forall (t: T).((sc3 g a1 c0 t) 
+\to (sn3 c0 t)))))).(\lambda (H11: ((\forall (vs0: TList).(\forall (i0: 
+nat).(\forall (c0: C).((arity g c0 (THeads (Flat Appl) vs0 (TLRef i0)) a1) 
+\to ((nf2 c0 (TLRef i0)) \to ((sns3 c0 vs0) \to (sc3 g a1 c0 (THeads (Flat 
+Appl) vs0 (TLRef i0))))))))))).(let H_y \def (H11 (TCons w (lifts1 is vs))) 
+in (eq_ind_r T (THeads (Flat Appl) (lifts1 is vs) (lift1 is (TLRef i))) 
+(\lambda (t: T).(sc3 g a1 d (THead (Flat Appl) w t))) (eq_ind_r T (TLRef 
+(trans is i)) (\lambda (t: T).(sc3 g a1 d (THead (Flat Appl) w (THeads (Flat 
+Appl) (lifts1 is vs) t)))) (H_y (trans is i) d (eq_ind T (lift1 is (TLRef i)) 
+(\lambda (t: T).(arity g d (THead (Flat Appl) w (THeads (Flat Appl) (lifts1 
+is vs) t)) a1)) (eq_ind T (lift1 is (THeads (Flat Appl) vs (TLRef i))) 
+(\lambda (t: T).(arity g d (THead (Flat Appl) w t) a1)) (arity_appl g d w a0 
+(sc3_arity_gen g d w a0 H4) (lift1 is (THeads (Flat Appl) vs (TLRef i))) a1 
+(arity_lift1 g (AHead a0 a1) c is d (THeads (Flat Appl) vs (TLRef i)) H5 H1)) 
+(THeads (Flat Appl) (lifts1 is vs) (lift1 is (TLRef i))) (lifts1_flat Appl is 
+(TLRef i) vs)) (TLRef (trans is i)) (lift1_lref is i)) (eq_ind T (lift1 is 
+(TLRef i)) (\lambda (t: T).(nf2 d t)) (nf2_lift1 c is d (TLRef i) H5 H2) 
+(TLRef (trans is i)) (lift1_lref is i)) (conj (sn3 d w) (sns3 d (lifts1 is 
+vs)) (H7 d w H4) (sns3_lifts1 c is d H5 vs H3))) (lift1 is (TLRef i)) 
+(lift1_lref is i)) (lift1 is (THeads (Flat Appl) vs (TLRef i))) (lifts1_flat 
+Appl is (TLRef i) vs))))) H9)))) H6))))))))))))))))))) a)).
 
 theorem sc3_sn3:
  \forall (g: G).(\forall (a: A).(\forall (c: C).(\forall (t: T).((sc3 g a c 
@@ -833,17 +506,15 @@ t) \to (sn3 c t)))))
 \def
  \lambda (g: G).(\lambda (a: A).(\lambda (c: C).(\lambda (t: T).(\lambda (H: 
 (sc3 g a c t)).(let H_x \def (sc3_props__sc3_sn3_abst g a) in (let H0 \def 
-H_x in (let TMP_1 \def (\forall (c0: C).(\forall (t0: T).((sc3 g a c0 t0) \to 
-(sn3 c0 t0)))) in (let TMP_5 \def (\forall (vs: TList).(\forall (i: 
-nat).(\forall (c0: C).((arity g c0 (THeads (Flat Appl) vs (TLRef i)) a) \to 
-((nf2 c0 (TLRef i)) \to ((sns3 c0 vs) \to (let TMP_2 \def (Flat Appl) in (let 
-TMP_3 \def (TLRef i) in (let TMP_4 \def (THeads TMP_2 vs TMP_3) in (sc3 g a 
-c0 TMP_4)))))))))) in (let TMP_6 \def (sn3 c t) in (let TMP_7 \def (\lambda 
-(H1: ((\forall (c0: C).(\forall (t0: T).((sc3 g a c0 t0) \to (sn3 c0 
+H_x in (land_ind (\forall (c0: C).(\forall (t0: T).((sc3 g a c0 t0) \to (sn3 
+c0 t0)))) (\forall (vs: TList).(\forall (i: nat).(\forall (c0: C).((arity g 
+c0 (THeads (Flat Appl) vs (TLRef i)) a) \to ((nf2 c0 (TLRef i)) \to ((sns3 c0 
+vs) \to (sc3 g a c0 (THeads (Flat Appl) vs (TLRef i))))))))) (sn3 c t) 
+(\lambda (H1: ((\forall (c0: C).(\forall (t0: T).((sc3 g a c0 t0) \to (sn3 c0 
 t0)))))).(\lambda (_: ((\forall (vs: TList).(\forall (i: nat).(\forall (c0: 
 C).((arity g c0 (THeads (Flat Appl) vs (TLRef i)) a) \to ((nf2 c0 (TLRef i)) 
 \to ((sns3 c0 vs) \to (sc3 g a c0 (THeads (Flat Appl) vs (TLRef 
-i))))))))))).(H1 c t H))) in (land_ind TMP_1 TMP_5 TMP_6 TMP_7 H0))))))))))).
+i))))))))))).(H1 c t H))) H0))))))).
 
 theorem sc3_abst:
  \forall (g: G).(\forall (a: A).(\forall (vs: TList).(\forall (c: C).(\forall 
@@ -853,20 +524,16 @@ i)) \to ((sns3 c vs) \to (sc3 g a c (THeads (Flat Appl) vs (TLRef i))))))))))
  \lambda (g: G).(\lambda (a: A).(\lambda (vs: TList).(\lambda (c: C).(\lambda 
 (i: nat).(\lambda (H: (arity g c (THeads (Flat Appl) vs (TLRef i)) 
 a)).(\lambda (H0: (nf2 c (TLRef i))).(\lambda (H1: (sns3 c vs)).(let H_x \def 
-(sc3_props__sc3_sn3_abst g a) in (let H2 \def H_x in (let TMP_1 \def (\forall 
-(c0: C).(\forall (t: T).((sc3 g a c0 t) \to (sn3 c0 t)))) in (let TMP_5 \def 
-(\forall (vs0: TList).(\forall (i0: nat).(\forall (c0: C).((arity g c0 
-(THeads (Flat Appl) vs0 (TLRef i0)) a) \to ((nf2 c0 (TLRef i0)) \to ((sns3 c0 
-vs0) \to (let TMP_2 \def (Flat Appl) in (let TMP_3 \def (TLRef i0) in (let 
-TMP_4 \def (THeads TMP_2 vs0 TMP_3) in (sc3 g a c0 TMP_4)))))))))) in (let 
-TMP_6 \def (Flat Appl) in (let TMP_7 \def (TLRef i) in (let TMP_8 \def 
-(THeads TMP_6 vs TMP_7) in (let TMP_9 \def (sc3 g a c TMP_8) in (let TMP_10 
-\def (\lambda (_: ((\forall (c0: C).(\forall (t: T).((sc3 g a c0 t) \to (sn3 
-c0 t)))))).(\lambda (H4: ((\forall (vs0: TList).(\forall (i0: nat).(\forall 
-(c0: C).((arity g c0 (THeads (Flat Appl) vs0 (TLRef i0)) a) \to ((nf2 c0 
-(TLRef i0)) \to ((sns3 c0 vs0) \to (sc3 g a c0 (THeads (Flat Appl) vs0 (TLRef 
-i0))))))))))).(H4 vs i c H H0 H1))) in (land_ind TMP_1 TMP_5 TMP_9 TMP_10 
-H2))))))))))))))))).
+(sc3_props__sc3_sn3_abst g a) in (let H2 \def H_x in (land_ind (\forall (c0: 
+C).(\forall (t: T).((sc3 g a c0 t) \to (sn3 c0 t)))) (\forall (vs0: 
+TList).(\forall (i0: nat).(\forall (c0: C).((arity g c0 (THeads (Flat Appl) 
+vs0 (TLRef i0)) a) \to ((nf2 c0 (TLRef i0)) \to ((sns3 c0 vs0) \to (sc3 g a 
+c0 (THeads (Flat Appl) vs0 (TLRef i0))))))))) (sc3 g a c (THeads (Flat Appl) 
+vs (TLRef i))) (\lambda (_: ((\forall (c0: C).(\forall (t: T).((sc3 g a c0 t) 
+\to (sn3 c0 t)))))).(\lambda (H4: ((\forall (vs0: TList).(\forall (i0: 
+nat).(\forall (c0: C).((arity g c0 (THeads (Flat Appl) vs0 (TLRef i0)) a) \to 
+((nf2 c0 (TLRef i0)) \to ((sns3 c0 vs0) \to (sc3 g a c0 (THeads (Flat Appl) 
+vs0 (TLRef i0))))))))))).(H4 vs i c H H0 H1))) H2)))))))))).
 
 theorem sc3_bind:
  \forall (g: G).(\forall (b: B).((not (eq B b Abst)) \to (\forall (a1: 
@@ -876,154 +543,73 @@ T).(\forall (t: T).((sc3 g a2 (CHead c (Bind b) v) (THeads (Flat Appl) (lifts
 (THead (Bind b) v t)))))))))))))
 \def
  \lambda (g: G).(\lambda (b: B).(\lambda (H: (not (eq B b Abst))).(\lambda 
-(a1: A).(\lambda (a2: A).(let TMP_5 \def (\lambda (a: A).(\forall (vs: 
-TList).(\forall (c: C).(\forall (v: T).(\forall (t: T).((sc3 g a (CHead c 
-(Bind b) v) (THeads (Flat Appl) (lifts (S O) O vs) t)) \to ((sc3 g a1 c v) 
-\to (let TMP_1 \def (Flat Appl) in (let TMP_2 \def (Bind b) in (let TMP_3 
-\def (THead TMP_2 v t) in (let TMP_4 \def (THeads TMP_1 vs TMP_3) in (sc3 g a 
-c TMP_4)))))))))))) in (let TMP_50 \def (\lambda (n: nat).(\lambda (n0: 
+(a1: A).(\lambda (a2: A).(A_ind (\lambda (a: A).(\forall (vs: TList).(\forall 
+(c: C).(\forall (v: T).(\forall (t: T).((sc3 g a (CHead c (Bind b) v) (THeads 
+(Flat Appl) (lifts (S O) O vs) t)) \to ((sc3 g a1 c v) \to (sc3 g a c (THeads 
+(Flat Appl) vs (THead (Bind b) v t)))))))))) (\lambda (n: nat).(\lambda (n0: 
 nat).(\lambda (vs: TList).(\lambda (c: C).(\lambda (v: T).(\lambda (t: 
 T).(\lambda (H0: (land (arity g (CHead c (Bind b) v) (THeads (Flat Appl) 
 (lifts (S O) O vs) t) (ASort n n0)) (sn3 (CHead c (Bind b) v) (THeads (Flat 
 Appl) (lifts (S O) O vs) t)))).(\lambda (H1: (sc3 g a1 c v)).(let H2 \def H0 
-in (let TMP_6 \def (Bind b) in (let TMP_7 \def (CHead c TMP_6 v) in (let 
-TMP_8 \def (Flat Appl) in (let TMP_9 \def (S O) in (let TMP_10 \def (lifts 
-TMP_9 O vs) in (let TMP_11 \def (THeads TMP_8 TMP_10 t) in (let TMP_12 \def 
-(ASort n n0) in (let TMP_13 \def (arity g TMP_7 TMP_11 TMP_12) in (let TMP_14 
-\def (Bind b) in (let TMP_15 \def (CHead c TMP_14 v) in (let TMP_16 \def 
-(Flat Appl) in (let TMP_17 \def (S O) in (let TMP_18 \def (lifts TMP_17 O vs) 
-in (let TMP_19 \def (THeads TMP_16 TMP_18 t) in (let TMP_20 \def (sn3 TMP_15 
-TMP_19) in (let TMP_21 \def (Flat Appl) in (let TMP_22 \def (Bind b) in (let 
-TMP_23 \def (THead TMP_22 v t) in (let TMP_24 \def (THeads TMP_21 vs TMP_23) 
-in (let TMP_25 \def (ASort n n0) in (let TMP_26 \def (arity g c TMP_24 
-TMP_25) in (let TMP_27 \def (Flat Appl) in (let TMP_28 \def (Bind b) in (let 
-TMP_29 \def (THead TMP_28 v t) in (let TMP_30 \def (THeads TMP_27 vs TMP_29) 
-in (let TMP_31 \def (sn3 c TMP_30) in (let TMP_32 \def (land TMP_26 TMP_31) 
-in (let TMP_49 \def (\lambda (H3: (arity g (CHead c (Bind b) v) (THeads (Flat 
-Appl) (lifts (S O) O vs) t) (ASort n n0))).(\lambda (H4: (sn3 (CHead c (Bind 
-b) v) (THeads (Flat Appl) (lifts (S O) O vs) t))).(let TMP_33 \def (Flat 
-Appl) in (let TMP_34 \def (Bind b) in (let TMP_35 \def (THead TMP_34 v t) in 
-(let TMP_36 \def (THeads TMP_33 vs TMP_35) in (let TMP_37 \def (ASort n n0) 
-in (let TMP_38 \def (arity g c TMP_36 TMP_37) in (let TMP_39 \def (Flat Appl) 
-in (let TMP_40 \def (Bind b) in (let TMP_41 \def (THead TMP_40 v t) in (let 
-TMP_42 \def (THeads TMP_39 vs TMP_41) in (let TMP_43 \def (sn3 c TMP_42) in 
-(let TMP_44 \def (sc3_arity_gen g c v a1 H1) in (let TMP_45 \def (ASort n n0) 
-in (let TMP_46 \def (arity_appls_bind g b H c v a1 TMP_44 t vs TMP_45 H3) in 
-(let TMP_47 \def (sc3_sn3 g a1 c v H1) in (let TMP_48 \def (sn3_appls_bind b 
-H c v TMP_47 vs t H4) in (conj TMP_38 TMP_43 TMP_46 TMP_48))))))))))))))))))) 
-in (land_ind TMP_13 TMP_20 TMP_32 TMP_49 
-H2)))))))))))))))))))))))))))))))))))))) in (let TMP_206 \def (\lambda (a: 
-A).(\lambda (_: ((\forall (vs: TList).(\forall (c: C).(\forall (v: 
-T).(\forall (t: T).((sc3 g a (CHead c (Bind b) v) (THeads (Flat Appl) (lifts 
-(S O) O vs) t)) \to ((sc3 g a1 c v) \to (sc3 g a c (THeads (Flat Appl) vs 
-(THead (Bind b) v t))))))))))).(\lambda (a0: A).(\lambda (H1: ((\forall (vs: 
-TList).(\forall (c: C).(\forall (v: T).(\forall (t: T).((sc3 g a0 (CHead c 
-(Bind b) v) (THeads (Flat Appl) (lifts (S O) O vs) t)) \to ((sc3 g a1 c v) 
+in (land_ind (arity g (CHead c (Bind b) v) (THeads (Flat Appl) (lifts (S O) O 
+vs) t) (ASort n n0)) (sn3 (CHead c (Bind b) v) (THeads (Flat Appl) (lifts (S 
+O) O vs) t)) (land (arity g c (THeads (Flat Appl) vs (THead (Bind b) v t)) 
+(ASort n n0)) (sn3 c (THeads (Flat Appl) vs (THead (Bind b) v t)))) (\lambda 
+(H3: (arity g (CHead c (Bind b) v) (THeads (Flat Appl) (lifts (S O) O vs) t) 
+(ASort n n0))).(\lambda (H4: (sn3 (CHead c (Bind b) v) (THeads (Flat Appl) 
+(lifts (S O) O vs) t))).(conj (arity g c (THeads (Flat Appl) vs (THead (Bind 
+b) v t)) (ASort n n0)) (sn3 c (THeads (Flat Appl) vs (THead (Bind b) v t))) 
+(arity_appls_bind g b H c v a1 (sc3_arity_gen g c v a1 H1) t vs (ASort n n0) 
+H3) (sn3_appls_bind b H c v (sc3_sn3 g a1 c v H1) vs t H4)))) H2)))))))))) 
+(\lambda (a: A).(\lambda (_: ((\forall (vs: TList).(\forall (c: C).(\forall 
+(v: T).(\forall (t: T).((sc3 g a (CHead c (Bind b) v) (THeads (Flat Appl) 
+(lifts (S O) O vs) t)) \to ((sc3 g a1 c v) \to (sc3 g a c (THeads (Flat Appl) 
+vs (THead (Bind b) v t))))))))))).(\lambda (a0: A).(\lambda (H1: ((\forall 
+(vs: TList).(\forall (c: C).(\forall (v: T).(\forall (t: T).((sc3 g a0 (CHead 
+c (Bind b) v) (THeads (Flat Appl) (lifts (S O) O vs) t)) \to ((sc3 g a1 c v) 
 \to (sc3 g a0 c (THeads (Flat Appl) vs (THead (Bind b) v 
 t))))))))))).(\lambda (vs: TList).(\lambda (c: C).(\lambda (v: T).(\lambda 
 (t: T).(\lambda (H2: (land (arity g (CHead c (Bind b) v) (THeads (Flat Appl) 
 (lifts (S O) O vs) t) (AHead a a0)) (\forall (d: C).(\forall (w: T).((sc3 g a 
 d w) \to (\forall (is: PList).((drop1 is d (CHead c (Bind b) v)) \to (sc3 g 
 a0 d (THead (Flat Appl) w (lift1 is (THeads (Flat Appl) (lifts (S O) O vs) 
-t))))))))))).(\lambda (H3: (sc3 g a1 c v)).(let H4 \def H2 in (let TMP_51 
-\def (Bind b) in (let TMP_52 \def (CHead c TMP_51 v) in (let TMP_53 \def 
-(Flat Appl) in (let TMP_54 \def (S O) in (let TMP_55 \def (lifts TMP_54 O vs) 
-in (let TMP_56 \def (THeads TMP_53 TMP_55 t) in (let TMP_57 \def (AHead a a0) 
-in (let TMP_58 \def (arity g TMP_52 TMP_56 TMP_57) in (let TMP_66 \def 
+t))))))))))).(\lambda (H3: (sc3 g a1 c v)).(let H4 \def H2 in (land_ind 
+(arity g (CHead c (Bind b) v) (THeads (Flat Appl) (lifts (S O) O vs) t) 
+(AHead a a0)) (\forall (d: C).(\forall (w: T).((sc3 g a d w) \to (\forall 
+(is: PList).((drop1 is d (CHead c (Bind b) v)) \to (sc3 g a0 d (THead (Flat 
+Appl) w (lift1 is (THeads (Flat Appl) (lifts (S O) O vs) t))))))))) (land 
+(arity g c (THeads (Flat Appl) vs (THead (Bind b) v t)) (AHead a a0)) 
 (\forall (d: C).(\forall (w: T).((sc3 g a d w) \to (\forall (is: 
-PList).((drop1 is d (CHead c (Bind b) v)) \to (let TMP_59 \def (Flat Appl) in 
-(let TMP_60 \def (Flat Appl) in (let TMP_61 \def (S O) in (let TMP_62 \def 
-(lifts TMP_61 O vs) in (let TMP_63 \def (THeads TMP_60 TMP_62 t) in (let 
-TMP_64 \def (lift1 is TMP_63) in (let TMP_65 \def (THead TMP_59 w TMP_64) in 
-(sc3 g a0 d TMP_65))))))))))))) in (let TMP_67 \def (Flat Appl) in (let 
-TMP_68 \def (Bind b) in (let TMP_69 \def (THead TMP_68 v t) in (let TMP_70 
-\def (THeads TMP_67 vs TMP_69) in (let TMP_71 \def (AHead a a0) in (let 
-TMP_72 \def (arity g c TMP_70 TMP_71) in (let TMP_80 \def (\forall (d: 
+PList).((drop1 is d c) \to (sc3 g a0 d (THead (Flat Appl) w (lift1 is (THeads 
+(Flat Appl) vs (THead (Bind b) v t))))))))))) (\lambda (H5: (arity g (CHead c 
+(Bind b) v) (THeads (Flat Appl) (lifts (S O) O vs) t) (AHead a a0))).(\lambda 
+(H6: ((\forall (d: C).(\forall (w: T).((sc3 g a d w) \to (\forall (is: 
+PList).((drop1 is d (CHead c (Bind b) v)) \to (sc3 g a0 d (THead (Flat Appl) 
+w (lift1 is (THeads (Flat Appl) (lifts (S O) O vs) t))))))))))).(conj (arity 
+g c (THeads (Flat Appl) vs (THead (Bind b) v t)) (AHead a a0)) (\forall (d: 
 C).(\forall (w: T).((sc3 g a d w) \to (\forall (is: PList).((drop1 is d c) 
-\to (let TMP_73 \def (Flat Appl) in (let TMP_74 \def (Flat Appl) in (let 
-TMP_75 \def (Bind b) in (let TMP_76 \def (THead TMP_75 v t) in (let TMP_77 
-\def (THeads TMP_74 vs TMP_76) in (let TMP_78 \def (lift1 is TMP_77) in (let 
-TMP_79 \def (THead TMP_73 w TMP_78) in (sc3 g a0 d TMP_79))))))))))))) in 
-(let TMP_81 \def (land TMP_72 TMP_80) in (let TMP_205 \def (\lambda (H5: 
-(arity g (CHead c (Bind b) v) (THeads (Flat Appl) (lifts (S O) O vs) t) 
-(AHead a a0))).(\lambda (H6: ((\forall (d: C).(\forall (w: T).((sc3 g a d w) 
-\to (\forall (is: PList).((drop1 is d (CHead c (Bind b) v)) \to (sc3 g a0 d 
-(THead (Flat Appl) w (lift1 is (THeads (Flat Appl) (lifts (S O) O vs) 
-t))))))))))).(let TMP_82 \def (Flat Appl) in (let TMP_83 \def (Bind b) in 
-(let TMP_84 \def (THead TMP_83 v t) in (let TMP_85 \def (THeads TMP_82 vs 
-TMP_84) in (let TMP_86 \def (AHead a a0) in (let TMP_87 \def (arity g c 
-TMP_85 TMP_86) in (let TMP_95 \def (\forall (d: C).(\forall (w: T).((sc3 g a 
-d w) \to (\forall (is: PList).((drop1 is d c) \to (let TMP_88 \def (Flat 
-Appl) in (let TMP_89 \def (Flat Appl) in (let TMP_90 \def (Bind b) in (let 
-TMP_91 \def (THead TMP_90 v t) in (let TMP_92 \def (THeads TMP_89 vs TMP_91) 
-in (let TMP_93 \def (lift1 is TMP_92) in (let TMP_94 \def (THead TMP_88 w 
-TMP_93) in (sc3 g a0 d TMP_94))))))))))))) in (let TMP_96 \def (sc3_arity_gen 
-g c v a1 H3) in (let TMP_97 \def (AHead a a0) in (let TMP_98 \def 
-(arity_appls_bind g b H c v a1 TMP_96 t vs TMP_97 H5) in (let TMP_204 \def 
-(\lambda (d: C).(\lambda (w: T).(\lambda (H7: (sc3 g a d w)).(\lambda (is: 
-PList).(\lambda (H8: (drop1 is d c)).(let TMP_99 \def (lifts1 is vs) in (let 
-TMP_100 \def (TCons w TMP_99) in (let H_y \def (H1 TMP_100) in (let TMP_101 
-\def (Flat Appl) in (let TMP_102 \def (lifts1 is vs) in (let TMP_103 \def 
-(Bind b) in (let TMP_104 \def (THead TMP_103 v t) in (let TMP_105 \def (lift1 
-is TMP_104) in (let TMP_106 \def (THeads TMP_101 TMP_102 TMP_105) in (let 
-TMP_109 \def (\lambda (t0: T).(let TMP_107 \def (Flat Appl) in (let TMP_108 
-\def (THead TMP_107 w t0) in (sc3 g a0 d TMP_108)))) in (let TMP_110 \def 
-(Bind b) in (let TMP_111 \def (lift1 is v) in (let TMP_112 \def (Ss is) in 
-(let TMP_113 \def (lift1 TMP_112 t) in (let TMP_114 \def (THead TMP_110 
-TMP_111 TMP_113) in (let TMP_120 \def (\lambda (t0: T).(let TMP_115 \def 
-(Flat Appl) in (let TMP_116 \def (Flat Appl) in (let TMP_117 \def (lifts1 is 
-vs) in (let TMP_118 \def (THeads TMP_116 TMP_117 t0) in (let TMP_119 \def 
-(THead TMP_115 w TMP_118) in (sc3 g a0 d TMP_119))))))) in (let TMP_121 \def 
-(lift1 is v) in (let TMP_122 \def (Ss is) in (let TMP_123 \def (lift1 TMP_122 
-t) in (let TMP_124 \def (Ss is) in (let TMP_125 \def (S O) in (let TMP_126 
-\def (lifts TMP_125 O vs) in (let TMP_127 \def (lifts1 TMP_124 TMP_126) in 
-(let TMP_139 \def (\lambda (t0: TList).(let TMP_128 \def (Bind b) in (let 
-TMP_129 \def (lift1 is v) in (let TMP_130 \def (CHead d TMP_128 TMP_129) in 
-(let TMP_131 \def (Flat Appl) in (let TMP_132 \def (S O) in (let TMP_133 \def 
-(lift TMP_132 O w) in (let TMP_134 \def (Flat Appl) in (let TMP_135 \def (Ss 
-is) in (let TMP_136 \def (lift1 TMP_135 t) in (let TMP_137 \def (THeads 
-TMP_134 t0 TMP_136) in (let TMP_138 \def (THead TMP_131 TMP_133 TMP_137) in 
-(sc3 g a0 TMP_130 TMP_138))))))))))))) in (let TMP_140 \def (Ss is) in (let 
-TMP_141 \def (Flat Appl) in (let TMP_142 \def (S O) in (let TMP_143 \def 
-(lifts TMP_142 O vs) in (let TMP_144 \def (THeads TMP_141 TMP_143 t) in (let 
-TMP_145 \def (lift1 TMP_140 TMP_144) in (let TMP_153 \def (\lambda (t0: 
-T).(let TMP_146 \def (Bind b) in (let TMP_147 \def (lift1 is v) in (let 
-TMP_148 \def (CHead d TMP_146 TMP_147) in (let TMP_149 \def (Flat Appl) in 
-(let TMP_150 \def (S O) in (let TMP_151 \def (lift TMP_150 O w) in (let 
-TMP_152 \def (THead TMP_149 TMP_151 t0) in (sc3 g a0 TMP_148 TMP_152))))))))) 
-in (let TMP_154 \def (Bind b) in (let TMP_155 \def (lift1 is v) in (let 
-TMP_156 \def (CHead d TMP_154 TMP_155) in (let TMP_157 \def (S O) in (let 
-TMP_158 \def (lift TMP_157 O w) in (let TMP_159 \def (Bind b) in (let TMP_160 
-\def (lift1 is v) in (let TMP_161 \def (CHead d TMP_159 TMP_160) in (let 
-TMP_162 \def (S O) in (let TMP_163 \def (Bind b) in (let TMP_164 \def 
-(drop_refl d) in (let TMP_165 \def (lift1 is v) in (let TMP_166 \def 
-(drop_drop TMP_163 O d d TMP_164 TMP_165) in (let TMP_167 \def (sc3_lift g a 
-d w H7 TMP_161 TMP_162 O TMP_166) in (let TMP_168 \def (Ss is) in (let 
-TMP_169 \def (drop1_skip_bind b c is d v H8) in (let TMP_170 \def (H6 TMP_156 
-TMP_158 TMP_167 TMP_168 TMP_169) in (let TMP_171 \def (Flat Appl) in (let 
-TMP_172 \def (Ss is) in (let TMP_173 \def (S O) in (let TMP_174 \def (lifts 
-TMP_173 O vs) in (let TMP_175 \def (lifts1 TMP_172 TMP_174) in (let TMP_176 
-\def (Ss is) in (let TMP_177 \def (lift1 TMP_176 t) in (let TMP_178 \def 
-(THeads TMP_171 TMP_175 TMP_177) in (let TMP_179 \def (Ss is) in (let TMP_180 
-\def (S O) in (let TMP_181 \def (lifts TMP_180 O vs) in (let TMP_182 \def 
-(lifts1_flat Appl TMP_179 t TMP_181) in (let TMP_183 \def (eq_ind T TMP_145 
-TMP_153 TMP_170 TMP_178 TMP_182) in (let TMP_184 \def (S O) in (let TMP_185 
-\def (lifts1 is vs) in (let TMP_186 \def (lifts TMP_184 O TMP_185) in (let 
-TMP_187 \def (lifts1_xhg is vs) in (let TMP_188 \def (eq_ind TList TMP_127 
-TMP_139 TMP_183 TMP_186 TMP_187) in (let TMP_189 \def (sc3_lift1 g c a1 is d 
-v H3 H8) in (let TMP_190 \def (H_y d TMP_121 TMP_123 TMP_188 TMP_189) in (let 
-TMP_191 \def (Bind b) in (let TMP_192 \def (THead TMP_191 v t) in (let 
-TMP_193 \def (lift1 is TMP_192) in (let TMP_194 \def (lift1_bind b is v t) in 
-(let TMP_195 \def (eq_ind_r T TMP_114 TMP_120 TMP_190 TMP_193 TMP_194) in 
-(let TMP_196 \def (Flat Appl) in (let TMP_197 \def (Bind b) in (let TMP_198 
-\def (THead TMP_197 v t) in (let TMP_199 \def (THeads TMP_196 vs TMP_198) in 
-(let TMP_200 \def (lift1 is TMP_199) in (let TMP_201 \def (Bind b) in (let 
-TMP_202 \def (THead TMP_201 v t) in (let TMP_203 \def (lifts1_flat Appl is 
-TMP_202 vs) in (eq_ind_r T TMP_106 TMP_109 TMP_195 TMP_200 
-TMP_203)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
-)))))))))))))))) in (conj TMP_87 TMP_95 TMP_98 TMP_204)))))))))))))) in 
-(land_ind TMP_58 TMP_66 TMP_81 TMP_205 H4)))))))))))))))))))))))))))))) in 
-(A_ind TMP_5 TMP_50 TMP_206 a2)))))))).
+\to (sc3 g a0 d (THead (Flat Appl) w (lift1 is (THeads (Flat Appl) vs (THead 
+(Bind b) v t)))))))))) (arity_appls_bind g b H c v a1 (sc3_arity_gen g c v a1 
+H3) t vs (AHead a a0) H5) (\lambda (d: C).(\lambda (w: T).(\lambda (H7: (sc3 
+g a d w)).(\lambda (is: PList).(\lambda (H8: (drop1 is d c)).(let H_y \def 
+(H1 (TCons w (lifts1 is vs))) in (eq_ind_r T (THeads (Flat Appl) (lifts1 is 
+vs) (lift1 is (THead (Bind b) v t))) (\lambda (t0: T).(sc3 g a0 d (THead 
+(Flat Appl) w t0))) (eq_ind_r T (THead (Bind b) (lift1 is v) (lift1 (Ss is) 
+t)) (\lambda (t0: T).(sc3 g a0 d (THead (Flat Appl) w (THeads (Flat Appl) 
+(lifts1 is vs) t0)))) (H_y d (lift1 is v) (lift1 (Ss is) t) (eq_ind TList 
+(lifts1 (Ss is) (lifts (S O) O vs)) (\lambda (t0: TList).(sc3 g a0 (CHead d 
+(Bind b) (lift1 is v)) (THead (Flat Appl) (lift (S O) O w) (THeads (Flat 
+Appl) t0 (lift1 (Ss is) t))))) (eq_ind T (lift1 (Ss is) (THeads (Flat Appl) 
+(lifts (S O) O vs) t)) (\lambda (t0: T).(sc3 g a0 (CHead d (Bind b) (lift1 is 
+v)) (THead (Flat Appl) (lift (S O) O w) t0))) (H6 (CHead d (Bind b) (lift1 is 
+v)) (lift (S O) O w) (sc3_lift g a d w H7 (CHead d (Bind b) (lift1 is v)) (S 
+O) O (drop_drop (Bind b) O d d (drop_refl d) (lift1 is v))) (Ss is) 
+(drop1_skip_bind b c is d v H8)) (THeads (Flat Appl) (lifts1 (Ss is) (lifts 
+(S O) O vs)) (lift1 (Ss is) t)) (lifts1_flat Appl (Ss is) t (lifts (S O) O 
+vs))) (lifts (S O) O (lifts1 is vs)) (lifts1_xhg is vs)) (sc3_lift1 g c a1 is 
+d v H3 H8)) (lift1 is (THead (Bind b) v t)) (lift1_bind b is v t)) (lift1 is 
+(THeads (Flat Appl) vs (THead (Bind b) v t))) (lifts1_flat Appl is (THead 
+(Bind b) v t) vs))))))))))) H4)))))))))))) a2))))).
 
 theorem sc3_appl:
  \forall (g: G).(\forall (a1: A).(\forall (a2: A).(\forall (vs: 
@@ -1032,167 +618,80 @@ TList).(\forall (c: C).(\forall (v: T).(\forall (t: T).((sc3 g a2 c (THeads
 T).((sc3 g (asucc g a1) c w) \to (sc3 g a2 c (THeads (Flat Appl) vs (THead 
 (Flat Appl) v (THead (Bind Abst) w t))))))))))))))
 \def
- \lambda (g: G).(\lambda (a1: A).(\lambda (a2: A).(let TMP_7 \def (\lambda 
-(a: A).(\forall (vs: TList).(\forall (c: C).(\forall (v: T).(\forall (t: 
-T).((sc3 g a c (THeads (Flat Appl) vs (THead (Bind Abbr) v t))) \to ((sc3 g 
-a1 c v) \to (\forall (w: T).((sc3 g (asucc g a1) c w) \to (let TMP_1 \def 
-(Flat Appl) in (let TMP_2 \def (Flat Appl) in (let TMP_3 \def (Bind Abst) in 
-(let TMP_4 \def (THead TMP_3 w t) in (let TMP_5 \def (THead TMP_2 v TMP_4) in 
-(let TMP_6 \def (THeads TMP_1 vs TMP_5) in (sc3 g a c TMP_6)))))))))))))))) 
-in (let TMP_59 \def (\lambda (n: nat).(\lambda (n0: nat).(\lambda (vs: 
-TList).(\lambda (c: C).(\lambda (v: T).(\lambda (t: T).(\lambda (H: (land 
-(arity g c (THeads (Flat Appl) vs (THead (Bind Abbr) v t)) (ASort n n0)) (sn3 
-c (THeads (Flat Appl) vs (THead (Bind Abbr) v t))))).(\lambda (H0: (sc3 g a1 
-c v)).(\lambda (w: T).(\lambda (H1: (sc3 g (asucc g a1) c w)).(let H2 \def H 
-in (let TMP_8 \def (Flat Appl) in (let TMP_9 \def (Bind Abbr) in (let TMP_10 
-\def (THead TMP_9 v t) in (let TMP_11 \def (THeads TMP_8 vs TMP_10) in (let 
-TMP_12 \def (ASort n n0) in (let TMP_13 \def (arity g c TMP_11 TMP_12) in 
-(let TMP_14 \def (Flat Appl) in (let TMP_15 \def (Bind Abbr) in (let TMP_16 
-\def (THead TMP_15 v t) in (let TMP_17 \def (THeads TMP_14 vs TMP_16) in (let 
-TMP_18 \def (sn3 c TMP_17) in (let TMP_19 \def (Flat Appl) in (let TMP_20 
-\def (Flat Appl) in (let TMP_21 \def (Bind Abst) in (let TMP_22 \def (THead 
-TMP_21 w t) in (let TMP_23 \def (THead TMP_20 v TMP_22) in (let TMP_24 \def 
-(THeads TMP_19 vs TMP_23) in (let TMP_25 \def (ASort n n0) in (let TMP_26 
-\def (arity g c TMP_24 TMP_25) in (let TMP_27 \def (Flat Appl) in (let TMP_28 
-\def (Flat Appl) in (let TMP_29 \def (Bind Abst) in (let TMP_30 \def (THead 
-TMP_29 w t) in (let TMP_31 \def (THead TMP_28 v TMP_30) in (let TMP_32 \def 
-(THeads TMP_27 vs TMP_31) in (let TMP_33 \def (sn3 c TMP_32) in (let TMP_34 
-\def (land TMP_26 TMP_33) in (let TMP_58 \def (\lambda (H3: (arity g c 
-(THeads (Flat Appl) vs (THead (Bind Abbr) v t)) (ASort n n0))).(\lambda (H4: 
-(sn3 c (THeads (Flat Appl) vs (THead (Bind Abbr) v t)))).(let TMP_35 \def 
-(Flat Appl) in (let TMP_36 \def (Flat Appl) in (let TMP_37 \def (Bind Abst) 
-in (let TMP_38 \def (THead TMP_37 w t) in (let TMP_39 \def (THead TMP_36 v 
-TMP_38) in (let TMP_40 \def (THeads TMP_35 vs TMP_39) in (let TMP_41 \def 
-(ASort n n0) in (let TMP_42 \def (arity g c TMP_40 TMP_41) in (let TMP_43 
-\def (Flat Appl) in (let TMP_44 \def (Flat Appl) in (let TMP_45 \def (Bind 
-Abst) in (let TMP_46 \def (THead TMP_45 w t) in (let TMP_47 \def (THead 
-TMP_44 v TMP_46) in (let TMP_48 \def (THeads TMP_43 vs TMP_47) in (let TMP_49 
-\def (sn3 c TMP_48) in (let TMP_50 \def (sc3_arity_gen g c v a1 H0) in (let 
-TMP_51 \def (asucc g a1) in (let TMP_52 \def (sc3_arity_gen g c w TMP_51 H1) 
-in (let TMP_53 \def (ASort n n0) in (let TMP_54 \def (arity_appls_appl g c v 
-a1 TMP_50 w TMP_52 t vs TMP_53 H3) in (let TMP_55 \def (asucc g a1) in (let 
-TMP_56 \def (sc3_sn3 g TMP_55 c w H1) in (let TMP_57 \def (sn3_appls_beta c v 
-t vs H4 w TMP_56) in (conj TMP_42 TMP_49 TMP_54 
-TMP_57)))))))))))))))))))))))))) in (land_ind TMP_13 TMP_18 TMP_34 TMP_58 
-H2)))))))))))))))))))))))))))))))))))))))) in (let TMP_226 \def (\lambda (a: 
-A).(\lambda (_: ((\forall (vs: TList).(\forall (c: C).(\forall (v: 
-T).(\forall (t: T).((sc3 g a c (THeads (Flat Appl) vs (THead (Bind Abbr) v 
-t))) \to ((sc3 g a1 c v) \to (\forall (w: T).((sc3 g (asucc g a1) c w) \to 
-(sc3 g a c (THeads (Flat Appl) vs (THead (Flat Appl) v (THead (Bind Abst) w 
-t)))))))))))))).(\lambda (a0: A).(\lambda (H0: ((\forall (vs: TList).(\forall 
-(c: C).(\forall (v: T).(\forall (t: T).((sc3 g a0 c (THeads (Flat Appl) vs 
+ \lambda (g: G).(\lambda (a1: A).(\lambda (a2: A).(A_ind (\lambda (a: 
+A).(\forall (vs: TList).(\forall (c: C).(\forall (v: T).(\forall (t: T).((sc3 
+g a c (THeads (Flat Appl) vs (THead (Bind Abbr) v t))) \to ((sc3 g a1 c v) 
+\to (\forall (w: T).((sc3 g (asucc g a1) c w) \to (sc3 g a c (THeads (Flat 
+Appl) vs (THead (Flat Appl) v (THead (Bind Abst) w t))))))))))))) (\lambda 
+(n: nat).(\lambda (n0: nat).(\lambda (vs: TList).(\lambda (c: C).(\lambda (v: 
+T).(\lambda (t: T).(\lambda (H: (land (arity g c (THeads (Flat Appl) vs 
+(THead (Bind Abbr) v t)) (ASort n n0)) (sn3 c (THeads (Flat Appl) vs (THead 
+(Bind Abbr) v t))))).(\lambda (H0: (sc3 g a1 c v)).(\lambda (w: T).(\lambda 
+(H1: (sc3 g (asucc g a1) c w)).(let H2 \def H in (land_ind (arity g c (THeads 
+(Flat Appl) vs (THead (Bind Abbr) v t)) (ASort n n0)) (sn3 c (THeads (Flat 
+Appl) vs (THead (Bind Abbr) v t))) (land (arity g c (THeads (Flat Appl) vs 
+(THead (Flat Appl) v (THead (Bind Abst) w t))) (ASort n n0)) (sn3 c (THeads 
+(Flat Appl) vs (THead (Flat Appl) v (THead (Bind Abst) w t))))) (\lambda (H3: 
+(arity g c (THeads (Flat Appl) vs (THead (Bind Abbr) v t)) (ASort n 
+n0))).(\lambda (H4: (sn3 c (THeads (Flat Appl) vs (THead (Bind Abbr) v 
+t)))).(conj (arity g c (THeads (Flat Appl) vs (THead (Flat Appl) v (THead 
+(Bind Abst) w t))) (ASort n n0)) (sn3 c (THeads (Flat Appl) vs (THead (Flat 
+Appl) v (THead (Bind Abst) w t)))) (arity_appls_appl g c v a1 (sc3_arity_gen 
+g c v a1 H0) w (sc3_arity_gen g c w (asucc g a1) H1) t vs (ASort n n0) H3) 
+(sn3_appls_beta c v t vs H4 w (sc3_sn3 g (asucc g a1) c w H1))))) 
+H2)))))))))))) (\lambda (a: A).(\lambda (_: ((\forall (vs: TList).(\forall 
+(c: C).(\forall (v: T).(\forall (t: T).((sc3 g a c (THeads (Flat Appl) vs 
 (THead (Bind Abbr) v t))) \to ((sc3 g a1 c v) \to (\forall (w: T).((sc3 g 
-(asucc g a1) c w) \to (sc3 g a0 c (THeads (Flat Appl) vs (THead (Flat Appl) v 
-(THead (Bind Abst) w t)))))))))))))).(\lambda (vs: TList).(\lambda (c: 
-C).(\lambda (v: T).(\lambda (t: T).(\lambda (H1: (land (arity g c (THeads 
-(Flat Appl) vs (THead (Bind Abbr) v t)) (AHead a a0)) (\forall (d: 
-C).(\forall (w: T).((sc3 g a d w) \to (\forall (is: PList).((drop1 is d c) 
-\to (sc3 g a0 d (THead (Flat Appl) w (lift1 is (THeads (Flat Appl) vs (THead 
-(Bind Abbr) v t)))))))))))).(\lambda (H2: (sc3 g a1 c v)).(\lambda (w: 
-T).(\lambda (H3: (sc3 g (asucc g a1) c w)).(let H4 \def H1 in (let TMP_60 
-\def (Flat Appl) in (let TMP_61 \def (Bind Abbr) in (let TMP_62 \def (THead 
-TMP_61 v t) in (let TMP_63 \def (THeads TMP_60 vs TMP_62) in (let TMP_64 \def 
-(AHead a a0) in (let TMP_65 \def (arity g c TMP_63 TMP_64) in (let TMP_73 
-\def (\forall (d: C).(\forall (w0: T).((sc3 g a d w0) \to (\forall (is: 
-PList).((drop1 is d c) \to (let TMP_66 \def (Flat Appl) in (let TMP_67 \def 
-(Flat Appl) in (let TMP_68 \def (Bind Abbr) in (let TMP_69 \def (THead TMP_68 
-v t) in (let TMP_70 \def (THeads TMP_67 vs TMP_69) in (let TMP_71 \def (lift1 
-is TMP_70) in (let TMP_72 \def (THead TMP_66 w0 TMP_71) in (sc3 g a0 d 
-TMP_72))))))))))))) in (let TMP_74 \def (Flat Appl) in (let TMP_75 \def (Flat 
-Appl) in (let TMP_76 \def (Bind Abst) in (let TMP_77 \def (THead TMP_76 w t) 
-in (let TMP_78 \def (THead TMP_75 v TMP_77) in (let TMP_79 \def (THeads 
-TMP_74 vs TMP_78) in (let TMP_80 \def (AHead a a0) in (let TMP_81 \def (arity 
-g c TMP_79 TMP_80) in (let TMP_91 \def (\forall (d: C).(\forall (w0: T).((sc3 
-g a d w0) \to (\forall (is: PList).((drop1 is d c) \to (let TMP_82 \def (Flat 
-Appl) in (let TMP_83 \def (Flat Appl) in (let TMP_84 \def (Flat Appl) in (let 
-TMP_85 \def (Bind Abst) in (let TMP_86 \def (THead TMP_85 w t) in (let TMP_87 
-\def (THead TMP_84 v TMP_86) in (let TMP_88 \def (THeads TMP_83 vs TMP_87) in 
-(let TMP_89 \def (lift1 is TMP_88) in (let TMP_90 \def (THead TMP_82 w0 
-TMP_89) in (sc3 g a0 d TMP_90))))))))))))))) in (let TMP_92 \def (land TMP_81 
-TMP_91) in (let TMP_225 \def (\lambda (H5: (arity g c (THeads (Flat Appl) vs 
-(THead (Bind Abbr) v t)) (AHead a a0))).(\lambda (H6: ((\forall (d: 
-C).(\forall (w0: T).((sc3 g a d w0) \to (\forall (is: PList).((drop1 is d c) 
-\to (sc3 g a0 d (THead (Flat Appl) w0 (lift1 is (THeads (Flat Appl) vs (THead 
-(Bind Abbr) v t)))))))))))).(let TMP_93 \def (Flat Appl) in (let TMP_94 \def 
-(Flat Appl) in (let TMP_95 \def (Bind Abst) in (let TMP_96 \def (THead TMP_95 
-w t) in (let TMP_97 \def (THead TMP_94 v TMP_96) in (let TMP_98 \def (THeads 
-TMP_93 vs TMP_97) in (let TMP_99 \def (AHead a a0) in (let TMP_100 \def 
-(arity g c TMP_98 TMP_99) in (let TMP_110 \def (\forall (d: C).(\forall (w0: 
-T).((sc3 g a d w0) \to (\forall (is: PList).((drop1 is d c) \to (let TMP_101 
-\def (Flat Appl) in (let TMP_102 \def (Flat Appl) in (let TMP_103 \def (Flat 
-Appl) in (let TMP_104 \def (Bind Abst) in (let TMP_105 \def (THead TMP_104 w 
-t) in (let TMP_106 \def (THead TMP_103 v TMP_105) in (let TMP_107 \def 
-(THeads TMP_102 vs TMP_106) in (let TMP_108 \def (lift1 is TMP_107) in (let 
-TMP_109 \def (THead TMP_101 w0 TMP_108) in (sc3 g a0 d TMP_109))))))))))))))) 
-in (let TMP_111 \def (sc3_arity_gen g c v a1 H2) in (let TMP_112 \def (asucc 
-g a1) in (let TMP_113 \def (sc3_arity_gen g c w TMP_112 H3) in (let TMP_114 
-\def (AHead a a0) in (let TMP_115 \def (arity_appls_appl g c v a1 TMP_111 w 
-TMP_113 t vs TMP_114 H5) in (let TMP_224 \def (\lambda (d: C).(\lambda (w0: 
-T).(\lambda (H7: (sc3 g a d w0)).(\lambda (is: PList).(\lambda (H8: (drop1 is 
-d c)).(let TMP_116 \def (Flat Appl) in (let TMP_117 \def (lifts1 is vs) in 
-(let TMP_118 \def (Flat Appl) in (let TMP_119 \def (Bind Abst) in (let 
-TMP_120 \def (THead TMP_119 w t) in (let TMP_121 \def (THead TMP_118 v 
-TMP_120) in (let TMP_122 \def (lift1 is TMP_121) in (let TMP_123 \def (THeads 
-TMP_116 TMP_117 TMP_122) in (let TMP_126 \def (\lambda (t0: T).(let TMP_124 
-\def (Flat Appl) in (let TMP_125 \def (THead TMP_124 w0 t0) in (sc3 g a0 d 
-TMP_125)))) in (let TMP_127 \def (Flat Appl) in (let TMP_128 \def (lift1 is 
-v) in (let TMP_129 \def (Bind Abst) in (let TMP_130 \def (THead TMP_129 w t) 
-in (let TMP_131 \def (lift1 is TMP_130) in (let TMP_132 \def (THead TMP_127 
-TMP_128 TMP_131) in (let TMP_138 \def (\lambda (t0: T).(let TMP_133 \def 
-(Flat Appl) in (let TMP_134 \def (Flat Appl) in (let TMP_135 \def (lifts1 is 
-vs) in (let TMP_136 \def (THeads TMP_134 TMP_135 t0) in (let TMP_137 \def 
-(THead TMP_133 w0 TMP_136) in (sc3 g a0 d TMP_137))))))) in (let TMP_139 \def 
-(Bind Abst) in (let TMP_140 \def (lift1 is w) in (let TMP_141 \def (Ss is) in 
-(let TMP_142 \def (lift1 TMP_141 t) in (let TMP_143 \def (THead TMP_139 
-TMP_140 TMP_142) in (let TMP_152 \def (\lambda (t0: T).(let TMP_144 \def 
-(Flat Appl) in (let TMP_145 \def (Flat Appl) in (let TMP_146 \def (lifts1 is 
-vs) in (let TMP_147 \def (Flat Appl) in (let TMP_148 \def (lift1 is v) in 
-(let TMP_149 \def (THead TMP_147 TMP_148 t0) in (let TMP_150 \def (THeads 
-TMP_145 TMP_146 TMP_149) in (let TMP_151 \def (THead TMP_144 w0 TMP_150) in 
-(sc3 g a0 d TMP_151)))))))))) in (let TMP_153 \def (lifts1 is vs) in (let 
-TMP_154 \def (TCons w0 TMP_153) in (let H_y \def (H0 TMP_154) in (let TMP_155 
-\def (lift1 is v) in (let TMP_156 \def (Ss is) in (let TMP_157 \def (lift1 
-TMP_156 t) in (let TMP_158 \def (Bind Abbr) in (let TMP_159 \def (THead 
-TMP_158 v t) in (let TMP_160 \def (lift1 is TMP_159) in (let TMP_166 \def 
-(\lambda (t0: T).(let TMP_161 \def (Flat Appl) in (let TMP_162 \def (Flat 
-Appl) in (let TMP_163 \def (lifts1 is vs) in (let TMP_164 \def (THeads 
-TMP_162 TMP_163 t0) in (let TMP_165 \def (THead TMP_161 w0 TMP_164) in (sc3 g 
-a0 d TMP_165))))))) in (let TMP_167 \def (Flat Appl) in (let TMP_168 \def 
-(Bind Abbr) in (let TMP_169 \def (THead TMP_168 v t) in (let TMP_170 \def 
-(THeads TMP_167 vs TMP_169) in (let TMP_171 \def (lift1 is TMP_170) in (let 
-TMP_174 \def (\lambda (t0: T).(let TMP_172 \def (Flat Appl) in (let TMP_173 
-\def (THead TMP_172 w0 t0) in (sc3 g a0 d TMP_173)))) in (let TMP_175 \def 
-(H6 d w0 H7 is H8) in (let TMP_176 \def (Flat Appl) in (let TMP_177 \def 
-(lifts1 is vs) in (let TMP_178 \def (Bind Abbr) in (let TMP_179 \def (THead 
-TMP_178 v t) in (let TMP_180 \def (lift1 is TMP_179) in (let TMP_181 \def 
-(THeads TMP_176 TMP_177 TMP_180) in (let TMP_182 \def (Bind Abbr) in (let 
-TMP_183 \def (THead TMP_182 v t) in (let TMP_184 \def (lifts1_flat Appl is 
-TMP_183 vs) in (let TMP_185 \def (eq_ind T TMP_171 TMP_174 TMP_175 TMP_181 
-TMP_184) in (let TMP_186 \def (Bind Abbr) in (let TMP_187 \def (lift1 is v) 
-in (let TMP_188 \def (Ss is) in (let TMP_189 \def (lift1 TMP_188 t) in (let 
-TMP_190 \def (THead TMP_186 TMP_187 TMP_189) in (let TMP_191 \def (lift1_bind 
-Abbr is v t) in (let TMP_192 \def (eq_ind T TMP_160 TMP_166 TMP_185 TMP_190 
-TMP_191) in (let TMP_193 \def (sc3_lift1 g c a1 is d v H2 H8) in (let TMP_194 
-\def (lift1 is w) in (let TMP_195 \def (asucc g a1) in (let TMP_196 \def 
-(sc3_lift1 g c TMP_195 is d w H3 H8) in (let TMP_197 \def (H_y d TMP_155 
-TMP_157 TMP_192 TMP_193 TMP_194 TMP_196) in (let TMP_198 \def (Bind Abst) in 
-(let TMP_199 \def (THead TMP_198 w t) in (let TMP_200 \def (lift1 is TMP_199) 
-in (let TMP_201 \def (lift1_bind Abst is w t) in (let TMP_202 \def (eq_ind_r 
-T TMP_143 TMP_152 TMP_197 TMP_200 TMP_201) in (let TMP_203 \def (Flat Appl) 
-in (let TMP_204 \def (Bind Abst) in (let TMP_205 \def (THead TMP_204 w t) in 
-(let TMP_206 \def (THead TMP_203 v TMP_205) in (let TMP_207 \def (lift1 is 
-TMP_206) in (let TMP_208 \def (Bind Abst) in (let TMP_209 \def (THead TMP_208 
-w t) in (let TMP_210 \def (lift1_flat Appl is v TMP_209) in (let TMP_211 \def 
-(eq_ind_r T TMP_132 TMP_138 TMP_202 TMP_207 TMP_210) in (let TMP_212 \def 
-(Flat Appl) in (let TMP_213 \def (Flat Appl) in (let TMP_214 \def (Bind Abst) 
-in (let TMP_215 \def (THead TMP_214 w t) in (let TMP_216 \def (THead TMP_213 
-v TMP_215) in (let TMP_217 \def (THeads TMP_212 vs TMP_216) in (let TMP_218 
-\def (lift1 is TMP_217) in (let TMP_219 \def (Flat Appl) in (let TMP_220 \def 
-(Bind Abst) in (let TMP_221 \def (THead TMP_220 w t) in (let TMP_222 \def 
-(THead TMP_219 v TMP_221) in (let TMP_223 \def (lifts1_flat Appl is TMP_222 
-vs) in (eq_ind_r T TMP_123 TMP_126 TMP_211 TMP_218 
-TMP_223)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
-)))))))))))))))))))))) in (conj TMP_100 TMP_110 TMP_115 
-TMP_224)))))))))))))))))) in (land_ind TMP_65 TMP_73 TMP_92 TMP_225 
-H4)))))))))))))))))))))))))))))))) in (A_ind TMP_7 TMP_59 TMP_226 a2)))))).
+(asucc g a1) c w) \to (sc3 g a c (THeads (Flat Appl) vs (THead (Flat Appl) v 
+(THead (Bind Abst) w t)))))))))))))).(\lambda (a0: A).(\lambda (H0: ((\forall 
+(vs: TList).(\forall (c: C).(\forall (v: T).(\forall (t: T).((sc3 g a0 c 
+(THeads (Flat Appl) vs (THead (Bind Abbr) v t))) \to ((sc3 g a1 c v) \to 
+(\forall (w: T).((sc3 g (asucc g a1) c w) \to (sc3 g a0 c (THeads (Flat Appl) 
+vs (THead (Flat Appl) v (THead (Bind Abst) w t)))))))))))))).(\lambda (vs: 
+TList).(\lambda (c: C).(\lambda (v: T).(\lambda (t: T).(\lambda (H1: (land 
+(arity g c (THeads (Flat Appl) vs (THead (Bind Abbr) v t)) (AHead a a0)) 
+(\forall (d: C).(\forall (w: T).((sc3 g a d w) \to (\forall (is: 
+PList).((drop1 is d c) \to (sc3 g a0 d (THead (Flat Appl) w (lift1 is (THeads 
+(Flat Appl) vs (THead (Bind Abbr) v t)))))))))))).(\lambda (H2: (sc3 g a1 c 
+v)).(\lambda (w: T).(\lambda (H3: (sc3 g (asucc g a1) c w)).(let H4 \def H1 
+in (land_ind (arity g c (THeads (Flat Appl) vs (THead (Bind Abbr) v t)) 
+(AHead a a0)) (\forall (d: C).(\forall (w0: T).((sc3 g a d w0) \to (\forall 
+(is: PList).((drop1 is d c) \to (sc3 g a0 d (THead (Flat Appl) w0 (lift1 is 
+(THeads (Flat Appl) vs (THead (Bind Abbr) v t)))))))))) (land (arity g c 
+(THeads (Flat Appl) vs (THead (Flat Appl) v (THead (Bind Abst) w t))) (AHead 
+a a0)) (\forall (d: C).(\forall (w0: T).((sc3 g a d w0) \to (\forall (is: 
+PList).((drop1 is d c) \to (sc3 g a0 d (THead (Flat Appl) w0 (lift1 is 
+(THeads (Flat Appl) vs (THead (Flat Appl) v (THead (Bind Abst) w 
+t)))))))))))) (\lambda (H5: (arity g c (THeads (Flat Appl) vs (THead (Bind 
+Abbr) v t)) (AHead a a0))).(\lambda (H6: ((\forall (d: C).(\forall (w0: 
+T).((sc3 g a d w0) \to (\forall (is: PList).((drop1 is d c) \to (sc3 g a0 d 
+(THead (Flat Appl) w0 (lift1 is (THeads (Flat Appl) vs (THead (Bind Abbr) v 
+t)))))))))))).(conj (arity g c (THeads (Flat Appl) vs (THead (Flat Appl) v 
+(THead (Bind Abst) w t))) (AHead a a0)) (\forall (d: C).(\forall (w0: 
+T).((sc3 g a d w0) \to (\forall (is: PList).((drop1 is d c) \to (sc3 g a0 d 
+(THead (Flat Appl) w0 (lift1 is (THeads (Flat Appl) vs (THead (Flat Appl) v 
+(THead (Bind Abst) w t))))))))))) (arity_appls_appl g c v a1 (sc3_arity_gen g 
+c v a1 H2) w (sc3_arity_gen g c w (asucc g a1) H3) t vs (AHead a a0) H5) 
+(\lambda (d: C).(\lambda (w0: T).(\lambda (H7: (sc3 g a d w0)).(\lambda (is: 
+PList).(\lambda (H8: (drop1 is d c)).(eq_ind_r T (THeads (Flat Appl) (lifts1 
+is vs) (lift1 is (THead (Flat Appl) v (THead (Bind Abst) w t)))) (\lambda 
+(t0: T).(sc3 g a0 d (THead (Flat Appl) w0 t0))) (eq_ind_r T (THead (Flat 
+Appl) (lift1 is v) (lift1 is (THead (Bind Abst) w t))) (\lambda (t0: T).(sc3 
+g a0 d (THead (Flat Appl) w0 (THeads (Flat Appl) (lifts1 is vs) t0)))) 
+(eq_ind_r T (THead (Bind Abst) (lift1 is w) (lift1 (Ss is) t)) (\lambda (t0: 
+T).(sc3 g a0 d (THead (Flat Appl) w0 (THeads (Flat Appl) (lifts1 is vs) 
+(THead (Flat Appl) (lift1 is v) t0))))) (let H_y \def (H0 (TCons w0 (lifts1 
+is vs))) in (H_y d (lift1 is v) (lift1 (Ss is) t) (eq_ind T (lift1 is (THead 
+(Bind Abbr) v t)) (\lambda (t0: T).(sc3 g a0 d (THead (Flat Appl) w0 (THeads 
+(Flat Appl) (lifts1 is vs) t0)))) (eq_ind T (lift1 is (THeads (Flat Appl) vs 
+(THead (Bind Abbr) v t))) (\lambda (t0: T).(sc3 g a0 d (THead (Flat Appl) w0 
+t0))) (H6 d w0 H7 is H8) (THeads (Flat Appl) (lifts1 is vs) (lift1 is (THead 
+(Bind Abbr) v t))) (lifts1_flat Appl is (THead (Bind Abbr) v t) vs)) (THead 
+(Bind Abbr) (lift1 is v) (lift1 (Ss is) t)) (lift1_bind Abbr is v t)) 
+(sc3_lift1 g c a1 is d v H2 H8) (lift1 is w) (sc3_lift1 g c (asucc g a1) is d 
+w H3 H8))) (lift1 is (THead (Bind Abst) w t)) (lift1_bind Abst is w t)) 
+(lift1 is (THead (Flat Appl) v (THead (Bind Abst) w t))) (lift1_flat Appl is 
+v (THead (Bind Abst) w t))) (lift1 is (THeads (Flat Appl) vs (THead (Flat 
+Appl) v (THead (Bind Abst) w t)))) (lifts1_flat Appl is (THead (Flat Appl) v 
+(THead (Bind Abst) w t)) vs)))))))))) H4)))))))))))))) a2))).
 
index 90149df3299fce44df34521efdb18f791f55f34c..c6980318bca9e430dd7c9f1cd6d310930d2246c4 100644 (file)
@@ -21,6 +21,5 @@ inductive sn3 (c: C): T \to Prop \def
 (P: Prop).P))) \to ((pr3 c t1 t2) \to (sn3 c t2))))) \to (sn3 c t1)).
 
 let rec sns3 (c: C) (ts: TList) on ts: Prop \def match ts with [TNil 
-\Rightarrow True | (TCons t ts0) \Rightarrow (let TMP_1 \def (sn3 c t) in 
-(let TMP_2 \def (sns3 c ts0) in (land TMP_1 TMP_2)))].
+\Rightarrow True | (TCons t ts0) \Rightarrow (land (sn3 c t) (sns3 c ts0))].
 
index 9221e890cf5eec42cc35007f9601886ea2818ebf..7b5d41e5105b83d5838bab8c15ee90f1057ed796 100644 (file)
@@ -22,248 +22,168 @@ let rec sn3_ind (c: C) (P: (T \to Prop)) (f: (\forall (t1: T).(((\forall (t2:
 T).((((eq T t1 t2) \to (\forall (P0: Prop).P0))) \to ((pr3 c t1 t2) \to (sn3 
 c t2))))) \to (((\forall (t2: T).((((eq T t1 t2) \to (\forall (P0: 
 Prop).P0))) \to ((pr3 c t1 t2) \to (P t2))))) \to (P t1))))) (t: T) (s0: sn3 
-c t) on s0: P t \def match s0 with [(sn3_sing t1 s1) \Rightarrow (let TMP_2 
-\def (\lambda (t2: T).(\lambda (p: (((eq T t1 t2) \to (\forall (P0: 
-Prop).P0)))).(\lambda (p0: (pr3 c t1 t2)).(let TMP_1 \def (s1 t2 p p0) in 
-((sn3_ind c P f) t2 TMP_1))))) in (f t1 s1 TMP_2))].
+c t) on s0: P t \def match s0 with [(sn3_sing t1 s1) \Rightarrow (f t1 s1 
+(\lambda (t2: T).(\lambda (p: (((eq T t1 t2) \to (\forall (P0: 
+Prop).P0)))).(\lambda (p0: (pr3 c t1 t2)).((sn3_ind c P f) t2 (s1 t2 p 
+p0))))))].
 
 theorem sn3_gen_bind:
  \forall (b: B).(\forall (c: C).(\forall (u: T).(\forall (t: T).((sn3 c 
 (THead (Bind b) u t)) \to (land (sn3 c u) (sn3 (CHead c (Bind b) u) t))))))
 \def
  \lambda (b: B).(\lambda (c: C).(\lambda (u: T).(\lambda (t: T).(\lambda (H: 
-(sn3 c (THead (Bind b) u t))).(let TMP_1 \def (Bind b) in (let TMP_2 \def 
-(THead TMP_1 u t) in (let TMP_3 \def (\lambda (t0: T).(sn3 c t0)) in (let 
-TMP_8 \def (\lambda (_: T).(let TMP_4 \def (sn3 c u) in (let TMP_5 \def (Bind 
-b) in (let TMP_6 \def (CHead c TMP_5 u) in (let TMP_7 \def (sn3 TMP_6 t) in 
-(land TMP_4 TMP_7)))))) in (let TMP_99 \def (\lambda (y: T).(\lambda (H0: 
-(sn3 c y)).(let TMP_13 \def (\lambda (t0: T).((eq T y (THead (Bind b) u t0)) 
-\to (let TMP_9 \def (sn3 c u) in (let TMP_10 \def (Bind b) in (let TMP_11 
-\def (CHead c TMP_10 u) in (let TMP_12 \def (sn3 TMP_11 t0) in (land TMP_9 
-TMP_12))))))) in (let TMP_18 \def (\lambda (t0: T).(\forall (x: T).((eq T y 
-(THead (Bind b) t0 x)) \to (let TMP_14 \def (sn3 c t0) in (let TMP_15 \def 
-(Bind b) in (let TMP_16 \def (CHead c TMP_15 t0) in (let TMP_17 \def (sn3 
-TMP_16 x) in (land TMP_14 TMP_17)))))))) in (let TMP_23 \def (\lambda (t0: 
-T).(\forall (x: T).(\forall (x0: T).((eq T t0 (THead (Bind b) x x0)) \to (let 
-TMP_19 \def (sn3 c x) in (let TMP_20 \def (Bind b) in (let TMP_21 \def (CHead 
-c TMP_20 x) in (let TMP_22 \def (sn3 TMP_21 x0) in (land TMP_19 
-TMP_22))))))))) in (let TMP_96 \def (\lambda (t1: T).(\lambda (H1: ((\forall 
-(t2: T).((((eq T t1 t2) \to (\forall (P: Prop).P))) \to ((pr3 c t1 t2) \to 
-(sn3 c t2)))))).(\lambda (H2: ((\forall (t2: T).((((eq T t1 t2) \to (\forall 
-(P: Prop).P))) \to ((pr3 c t1 t2) \to (\forall (x: T).(\forall (x0: T).((eq T 
-t2 (THead (Bind b) x x0)) \to (land (sn3 c x) (sn3 (CHead c (Bind b) x) 
-x0)))))))))).(\lambda (x: T).(\lambda (x0: T).(\lambda (H3: (eq T t1 (THead 
-(Bind b) x x0))).(let TMP_28 \def (\lambda (t0: T).(\forall (t2: T).((((eq T 
-t0 t2) \to (\forall (P: Prop).P))) \to ((pr3 c t0 t2) \to (\forall (x1: 
-T).(\forall (x2: T).((eq T t2 (THead (Bind b) x1 x2)) \to (let TMP_24 \def 
-(sn3 c x1) in (let TMP_25 \def (Bind b) in (let TMP_26 \def (CHead c TMP_25 
-x1) in (let TMP_27 \def (sn3 TMP_26 x2) in (land TMP_24 TMP_27)))))))))))) in 
-(let TMP_29 \def (Bind b) in (let TMP_30 \def (THead TMP_29 x x0) in (let H4 
-\def (eq_ind T t1 TMP_28 H2 TMP_30 H3) in (let TMP_31 \def (\lambda (t0: 
+(sn3 c (THead (Bind b) u t))).(insert_eq T (THead (Bind b) u t) (\lambda (t0: 
+T).(sn3 c t0)) (\lambda (_: T).(land (sn3 c u) (sn3 (CHead c (Bind b) u) t))) 
+(\lambda (y: T).(\lambda (H0: (sn3 c y)).(unintro T t (\lambda (t0: T).((eq T 
+y (THead (Bind b) u t0)) \to (land (sn3 c u) (sn3 (CHead c (Bind b) u) t0)))) 
+(unintro T u (\lambda (t0: T).(\forall (x: T).((eq T y (THead (Bind b) t0 x)) 
+\to (land (sn3 c t0) (sn3 (CHead c (Bind b) t0) x))))) (sn3_ind c (\lambda 
+(t0: T).(\forall (x: T).(\forall (x0: T).((eq T t0 (THead (Bind b) x x0)) \to 
+(land (sn3 c x) (sn3 (CHead c (Bind b) x) x0)))))) (\lambda (t1: T).(\lambda 
+(H1: ((\forall (t2: T).((((eq T t1 t2) \to (\forall (P: Prop).P))) \to ((pr3 
+c t1 t2) \to (sn3 c t2)))))).(\lambda (H2: ((\forall (t2: T).((((eq T t1 t2) 
+\to (\forall (P: Prop).P))) \to ((pr3 c t1 t2) \to (\forall (x: T).(\forall 
+(x0: T).((eq T t2 (THead (Bind b) x x0)) \to (land (sn3 c x) (sn3 (CHead c 
+(Bind b) x) x0)))))))))).(\lambda (x: T).(\lambda (x0: T).(\lambda (H3: (eq T 
+t1 (THead (Bind b) x x0))).(let H4 \def (eq_ind T t1 (\lambda (t0: 
 T).(\forall (t2: T).((((eq T t0 t2) \to (\forall (P: Prop).P))) \to ((pr3 c 
-t0 t2) \to (sn3 c t2))))) in (let TMP_32 \def (Bind b) in (let TMP_33 \def 
-(THead TMP_32 x x0) in (let H5 \def (eq_ind T t1 TMP_31 H1 TMP_33 H3) in (let 
-TMP_34 \def (sn3 c x) in (let TMP_35 \def (Bind b) in (let TMP_36 \def (CHead 
-c TMP_35 x) in (let TMP_37 \def (sn3 TMP_36 x0) in (let TMP_63 \def (\lambda 
-(t2: T).(\lambda (H6: (((eq T x t2) \to (\forall (P: Prop).P)))).(\lambda 
-(H7: (pr3 c x t2)).(let TMP_38 \def (Bind b) in (let TMP_39 \def (THead 
-TMP_38 t2 x0) in (let TMP_48 \def (\lambda (H8: (eq T (THead (Bind b) x x0) 
-(THead (Bind b) t2 x0))).(\lambda (P: Prop).(let TMP_40 \def (\lambda (e: 
+t0 t2) \to (\forall (x1: T).(\forall (x2: T).((eq T t2 (THead (Bind b) x1 
+x2)) \to (land (sn3 c x1) (sn3 (CHead c (Bind b) x1) x2))))))))) H2 (THead 
+(Bind b) x x0) H3) in (let H5 \def (eq_ind T t1 (\lambda (t0: T).(\forall 
+(t2: T).((((eq T t0 t2) \to (\forall (P: Prop).P))) \to ((pr3 c t0 t2) \to 
+(sn3 c t2))))) H1 (THead (Bind b) x x0) H3) in (conj (sn3 c x) (sn3 (CHead c 
+(Bind b) x) x0) (sn3_sing c x (\lambda (t2: T).(\lambda (H6: (((eq T x t2) 
+\to (\forall (P: Prop).P)))).(\lambda (H7: (pr3 c x t2)).(let H8 \def (H4 
+(THead (Bind b) t2 x0) (\lambda (H8: (eq T (THead (Bind b) x x0) (THead (Bind 
+b) t2 x0))).(\lambda (P: Prop).(let H9 \def (f_equal T T (\lambda (e: 
 T).(match e with [(TSort _) \Rightarrow x | (TLRef _) \Rightarrow x | (THead 
-_ t0 _) \Rightarrow t0])) in (let TMP_41 \def (Bind b) in (let TMP_42 \def 
-(THead TMP_41 x x0) in (let TMP_43 \def (Bind b) in (let TMP_44 \def (THead 
-TMP_43 t2 x0) in (let H9 \def (f_equal T T TMP_40 TMP_42 TMP_44 H8) in (let 
-TMP_45 \def (\lambda (t0: T).(pr3 c x t0)) in (let H10 \def (eq_ind_r T t2 
-TMP_45 H7 x H9) in (let TMP_46 \def (\lambda (t0: T).((eq T x t0) \to 
-(\forall (P0: Prop).P0))) in (let H11 \def (eq_ind_r T t2 TMP_46 H6 x H9) in 
-(let TMP_47 \def (refl_equal T x) in (H11 TMP_47 P)))))))))))))) in (let 
-TMP_49 \def (Bind b) in (let TMP_50 \def (Bind b) in (let TMP_51 \def (CHead 
-c TMP_50 t2) in (let TMP_52 \def (pr3_refl TMP_51 x0) in (let TMP_53 \def 
-(pr3_head_12 c x t2 H7 TMP_49 x0 x0 TMP_52) in (let TMP_54 \def (Bind b) in 
-(let TMP_55 \def (THead TMP_54 t2 x0) in (let TMP_56 \def (refl_equal T 
-TMP_55) in (let H8 \def (H4 TMP_39 TMP_48 TMP_53 t2 x0 TMP_56) in (let TMP_57 
-\def (sn3 c t2) in (let TMP_58 \def (Bind b) in (let TMP_59 \def (CHead c 
-TMP_58 t2) in (let TMP_60 \def (sn3 TMP_59 x0) in (let TMP_61 \def (sn3 c t2) 
-in (let TMP_62 \def (\lambda (H9: (sn3 c t2)).(\lambda (_: (sn3 (CHead c 
-(Bind b) t2) x0)).H9)) in (land_ind TMP_57 TMP_60 TMP_61 TMP_62 
-H8)))))))))))))))))))))) in (let TMP_64 \def (sn3_sing c x TMP_63) in (let 
-TMP_65 \def (Bind b) in (let TMP_66 \def (CHead c TMP_65 x) in (let TMP_94 
-\def (\lambda (t2: T).(\lambda (H6: (((eq T x0 t2) \to (\forall (P: 
-Prop).P)))).(\lambda (H7: (pr3 (CHead c (Bind b) x) x0 t2)).(let TMP_67 \def 
-(Bind b) in (let TMP_68 \def (THead TMP_67 x t2) in (let TMP_79 \def (\lambda 
-(H8: (eq T (THead (Bind b) x x0) (THead (Bind b) x t2))).(\lambda (P: 
-Prop).(let TMP_69 \def (\lambda (e: T).(match e with [(TSort _) \Rightarrow 
-x0 | (TLRef _) \Rightarrow x0 | (THead _ _ t0) \Rightarrow t0])) in (let 
-TMP_70 \def (Bind b) in (let TMP_71 \def (THead TMP_70 x x0) in (let TMP_72 
-\def (Bind b) in (let TMP_73 \def (THead TMP_72 x t2) in (let H9 \def 
-(f_equal T T TMP_69 TMP_71 TMP_73 H8) in (let TMP_76 \def (\lambda (t0: 
-T).(let TMP_74 \def (Bind b) in (let TMP_75 \def (CHead c TMP_74 x) in (pr3 
-TMP_75 x0 t0)))) in (let H10 \def (eq_ind_r T t2 TMP_76 H7 x0 H9) in (let 
-TMP_77 \def (\lambda (t0: T).((eq T x0 t0) \to (\forall (P0: Prop).P0))) in 
-(let H11 \def (eq_ind_r T t2 TMP_77 H6 x0 H9) in (let TMP_78 \def (refl_equal 
-T x0) in (H11 TMP_78 P)))))))))))))) in (let TMP_80 \def (pr3_refl c x) in 
-(let TMP_81 \def (Bind b) in (let TMP_82 \def (pr3_head_12 c x x TMP_80 
-TMP_81 x0 t2 H7) in (let TMP_83 \def (Bind b) in (let TMP_84 \def (THead 
-TMP_83 x t2) in (let TMP_85 \def (refl_equal T TMP_84) in (let H8 \def (H4 
-TMP_68 TMP_79 TMP_82 x t2 TMP_85) in (let TMP_86 \def (sn3 c x) in (let 
-TMP_87 \def (Bind b) in (let TMP_88 \def (CHead c TMP_87 x) in (let TMP_89 
-\def (sn3 TMP_88 t2) in (let TMP_90 \def (Bind b) in (let TMP_91 \def (CHead 
-c TMP_90 x) in (let TMP_92 \def (sn3 TMP_91 t2) in (let TMP_93 \def (\lambda 
-(_: (sn3 c x)).(\lambda (H10: (sn3 (CHead c (Bind b) x) t2)).H10)) in 
-(land_ind TMP_86 TMP_89 TMP_92 TMP_93 H8)))))))))))))))))))))) in (let TMP_95 
-\def (sn3_sing TMP_66 x0 TMP_94) in (conj TMP_34 TMP_37 TMP_64 
-TMP_95))))))))))))))))))))))))) in (let TMP_97 \def (sn3_ind c TMP_23 TMP_96 
-y H0) in (let TMP_98 \def (unintro T u TMP_18 TMP_97) in (unintro T t TMP_13 
-TMP_98))))))))) in (insert_eq T TMP_2 TMP_3 TMP_8 TMP_99 H)))))))))).
+_ t0 _) \Rightarrow t0])) (THead (Bind b) x x0) (THead (Bind b) t2 x0) H8) in 
+(let H10 \def (eq_ind_r T t2 (\lambda (t0: T).(pr3 c x t0)) H7 x H9) in (let 
+H11 \def (eq_ind_r T t2 (\lambda (t0: T).((eq T x t0) \to (\forall (P0: 
+Prop).P0))) H6 x H9) in (H11 (refl_equal T x) P)))))) (pr3_head_12 c x t2 H7 
+(Bind b) x0 x0 (pr3_refl (CHead c (Bind b) t2) x0)) t2 x0 (refl_equal T 
+(THead (Bind b) t2 x0))) in (land_ind (sn3 c t2) (sn3 (CHead c (Bind b) t2) 
+x0) (sn3 c t2) (\lambda (H9: (sn3 c t2)).(\lambda (_: (sn3 (CHead c (Bind b) 
+t2) x0)).H9)) H8)))))) (sn3_sing (CHead c (Bind b) x) x0 (\lambda (t2: 
+T).(\lambda (H6: (((eq T x0 t2) \to (\forall (P: Prop).P)))).(\lambda (H7: 
+(pr3 (CHead c (Bind b) x) x0 t2)).(let H8 \def (H4 (THead (Bind b) x t2) 
+(\lambda (H8: (eq T (THead (Bind b) x x0) (THead (Bind b) x t2))).(\lambda 
+(P: Prop).(let H9 \def (f_equal T T (\lambda (e: T).(match e with [(TSort _) 
+\Rightarrow x0 | (TLRef _) \Rightarrow x0 | (THead _ _ t0) \Rightarrow t0])) 
+(THead (Bind b) x x0) (THead (Bind b) x t2) H8) in (let H10 \def (eq_ind_r T 
+t2 (\lambda (t0: T).(pr3 (CHead c (Bind b) x) x0 t0)) H7 x0 H9) in (let H11 
+\def (eq_ind_r T t2 (\lambda (t0: T).((eq T x0 t0) \to (\forall (P0: 
+Prop).P0))) H6 x0 H9) in (H11 (refl_equal T x0) P)))))) (pr3_head_12 c x x 
+(pr3_refl c x) (Bind b) x0 t2 H7) x t2 (refl_equal T (THead (Bind b) x t2))) 
+in (land_ind (sn3 c x) (sn3 (CHead c (Bind b) x) t2) (sn3 (CHead c (Bind b) 
+x) t2) (\lambda (_: (sn3 c x)).(\lambda (H10: (sn3 (CHead c (Bind b) x) 
+t2)).H10)) H8))))))))))))))) y H0))))) H))))).
 
 theorem sn3_gen_flat:
  \forall (f: F).(\forall (c: C).(\forall (u: T).(\forall (t: T).((sn3 c 
 (THead (Flat f) u t)) \to (land (sn3 c u) (sn3 c t))))))
 \def
  \lambda (f: F).(\lambda (c: C).(\lambda (u: T).(\lambda (t: T).(\lambda (H: 
-(sn3 c (THead (Flat f) u t))).(let TMP_1 \def (Flat f) in (let TMP_2 \def 
-(THead TMP_1 u t) in (let TMP_3 \def (\lambda (t0: T).(sn3 c t0)) in (let 
-TMP_6 \def (\lambda (_: T).(let TMP_4 \def (sn3 c u) in (let TMP_5 \def (sn3 
-c t) in (land TMP_4 TMP_5)))) in (let TMP_75 \def (\lambda (y: T).(\lambda 
-(H0: (sn3 c y)).(let TMP_9 \def (\lambda (t0: T).((eq T y (THead (Flat f) u 
-t0)) \to (let TMP_7 \def (sn3 c u) in (let TMP_8 \def (sn3 c t0) in (land 
-TMP_7 TMP_8))))) in (let TMP_12 \def (\lambda (t0: T).(\forall (x: T).((eq T 
-y (THead (Flat f) t0 x)) \to (let TMP_10 \def (sn3 c t0) in (let TMP_11 \def 
-(sn3 c x) in (land TMP_10 TMP_11)))))) in (let TMP_15 \def (\lambda (t0: 
-T).(\forall (x: T).(\forall (x0: T).((eq T t0 (THead (Flat f) x x0)) \to (let 
-TMP_13 \def (sn3 c x) in (let TMP_14 \def (sn3 c x0) in (land TMP_13 
-TMP_14))))))) in (let TMP_72 \def (\lambda (t1: T).(\lambda (H1: ((\forall 
+(sn3 c (THead (Flat f) u t))).(insert_eq T (THead (Flat f) u t) (\lambda (t0: 
+T).(sn3 c t0)) (\lambda (_: T).(land (sn3 c u) (sn3 c t))) (\lambda (y: 
+T).(\lambda (H0: (sn3 c y)).(unintro T t (\lambda (t0: T).((eq T y (THead 
+(Flat f) u t0)) \to (land (sn3 c u) (sn3 c t0)))) (unintro T u (\lambda (t0: 
+T).(\forall (x: T).((eq T y (THead (Flat f) t0 x)) \to (land (sn3 c t0) (sn3 
+c x))))) (sn3_ind c (\lambda (t0: T).(\forall (x: T).(\forall (x0: T).((eq T 
+t0 (THead (Flat f) x x0)) \to (land (sn3 c x) (sn3 c x0)))))) (\lambda (t1: 
+T).(\lambda (H1: ((\forall (t2: T).((((eq T t1 t2) \to (\forall (P: 
+Prop).P))) \to ((pr3 c t1 t2) \to (sn3 c t2)))))).(\lambda (H2: ((\forall 
 (t2: T).((((eq T t1 t2) \to (\forall (P: Prop).P))) \to ((pr3 c t1 t2) \to 
-(sn3 c t2)))))).(\lambda (H2: ((\forall (t2: T).((((eq T t1 t2) \to (\forall 
-(P: Prop).P))) \to ((pr3 c t1 t2) \to (\forall (x: T).(\forall (x0: T).((eq T 
-t2 (THead (Flat f) x x0)) \to (land (sn3 c x) (sn3 c x0)))))))))).(\lambda 
-(x: T).(\lambda (x0: T).(\lambda (H3: (eq T t1 (THead (Flat f) x x0))).(let 
-TMP_18 \def (\lambda (t0: T).(\forall (t2: T).((((eq T t0 t2) \to (\forall 
-(P: Prop).P))) \to ((pr3 c t0 t2) \to (\forall (x1: T).(\forall (x2: T).((eq 
-T t2 (THead (Flat f) x1 x2)) \to (let TMP_16 \def (sn3 c x1) in (let TMP_17 
-\def (sn3 c x2) in (land TMP_16 TMP_17)))))))))) in (let TMP_19 \def (Flat f) 
-in (let TMP_20 \def (THead TMP_19 x x0) in (let H4 \def (eq_ind T t1 TMP_18 
-H2 TMP_20 H3) in (let TMP_21 \def (\lambda (t0: T).(\forall (t2: T).((((eq T 
-t0 t2) \to (\forall (P: Prop).P))) \to ((pr3 c t0 t2) \to (sn3 c t2))))) in 
-(let TMP_22 \def (Flat f) in (let TMP_23 \def (THead TMP_22 x x0) in (let H5 
-\def (eq_ind T t1 TMP_21 H1 TMP_23 H3) in (let TMP_24 \def (sn3 c x) in (let 
-TMP_25 \def (sn3 c x0) in (let TMP_49 \def (\lambda (t2: T).(\lambda (H6: 
-(((eq T x t2) \to (\forall (P: Prop).P)))).(\lambda (H7: (pr3 c x t2)).(let 
-TMP_26 \def (Flat f) in (let TMP_27 \def (THead TMP_26 t2 x0) in (let TMP_36 
-\def (\lambda (H8: (eq T (THead (Flat f) x x0) (THead (Flat f) t2 
-x0))).(\lambda (P: Prop).(let TMP_28 \def (\lambda (e: T).(match e with 
-[(TSort _) \Rightarrow x | (TLRef _) \Rightarrow x | (THead _ t0 _) 
-\Rightarrow t0])) in (let TMP_29 \def (Flat f) in (let TMP_30 \def (THead 
-TMP_29 x x0) in (let TMP_31 \def (Flat f) in (let TMP_32 \def (THead TMP_31 
-t2 x0) in (let H9 \def (f_equal T T TMP_28 TMP_30 TMP_32 H8) in (let TMP_33 
-\def (\lambda (t0: T).(pr3 c x t0)) in (let H10 \def (eq_ind_r T t2 TMP_33 H7 
-x H9) in (let TMP_34 \def (\lambda (t0: T).((eq T x t0) \to (\forall (P0: 
-Prop).P0))) in (let H11 \def (eq_ind_r T t2 TMP_34 H6 x H9) in (let TMP_35 
-\def (refl_equal T x) in (H11 TMP_35 P)))))))))))))) in (let TMP_37 \def 
-(Flat f) in (let TMP_38 \def (Flat f) in (let TMP_39 \def (CHead c TMP_38 t2) 
-in (let TMP_40 \def (pr3_refl TMP_39 x0) in (let TMP_41 \def (pr3_head_12 c x 
-t2 H7 TMP_37 x0 x0 TMP_40) in (let TMP_42 \def (Flat f) in (let TMP_43 \def 
-(THead TMP_42 t2 x0) in (let TMP_44 \def (refl_equal T TMP_43) in (let H8 
-\def (H4 TMP_27 TMP_36 TMP_41 t2 x0 TMP_44) in (let TMP_45 \def (sn3 c t2) in 
-(let TMP_46 \def (sn3 c x0) in (let TMP_47 \def (sn3 c t2) in (let TMP_48 
-\def (\lambda (H9: (sn3 c t2)).(\lambda (_: (sn3 c x0)).H9)) in (land_ind 
-TMP_45 TMP_46 TMP_47 TMP_48 H8)))))))))))))))))))) in (let TMP_50 \def 
-(sn3_sing c x TMP_49) in (let TMP_70 \def (\lambda (t2: T).(\lambda (H6: 
-(((eq T x0 t2) \to (\forall (P: Prop).P)))).(\lambda (H7: (pr3 c x0 t2)).(let 
-TMP_51 \def (Flat f) in (let TMP_52 \def (THead TMP_51 x t2) in (let TMP_61 
-\def (\lambda (H8: (eq T (THead (Flat f) x x0) (THead (Flat f) x 
-t2))).(\lambda (P: Prop).(let TMP_53 \def (\lambda (e: T).(match e with 
-[(TSort _) \Rightarrow x0 | (TLRef _) \Rightarrow x0 | (THead _ _ t0) 
-\Rightarrow t0])) in (let TMP_54 \def (Flat f) in (let TMP_55 \def (THead 
-TMP_54 x x0) in (let TMP_56 \def (Flat f) in (let TMP_57 \def (THead TMP_56 x 
-t2) in (let H9 \def (f_equal T T TMP_53 TMP_55 TMP_57 H8) in (let TMP_58 \def 
-(\lambda (t0: T).(pr3 c x0 t0)) in (let H10 \def (eq_ind_r T t2 TMP_58 H7 x0 
-H9) in (let TMP_59 \def (\lambda (t0: T).((eq T x0 t0) \to (\forall (P0: 
-Prop).P0))) in (let H11 \def (eq_ind_r T t2 TMP_59 H6 x0 H9) in (let TMP_60 
-\def (refl_equal T x0) in (H11 TMP_60 P)))))))))))))) in (let TMP_62 \def 
-(pr3_thin_dx c x0 t2 H7 x f) in (let TMP_63 \def (Flat f) in (let TMP_64 \def 
-(THead TMP_63 x t2) in (let TMP_65 \def (refl_equal T TMP_64) in (let H8 \def 
-(H4 TMP_52 TMP_61 TMP_62 x t2 TMP_65) in (let TMP_66 \def (sn3 c x) in (let 
-TMP_67 \def (sn3 c t2) in (let TMP_68 \def (sn3 c t2) in (let TMP_69 \def 
-(\lambda (_: (sn3 c x)).(\lambda (H10: (sn3 c t2)).H10)) in (land_ind TMP_66 
-TMP_67 TMP_68 TMP_69 H8)))))))))))))))) in (let TMP_71 \def (sn3_sing c x0 
-TMP_70) in (conj TMP_24 TMP_25 TMP_50 TMP_71))))))))))))))))))))) in (let 
-TMP_73 \def (sn3_ind c TMP_15 TMP_72 y H0) in (let TMP_74 \def (unintro T u 
-TMP_12 TMP_73) in (unintro T t TMP_9 TMP_74))))))))) in (insert_eq T TMP_2 
-TMP_3 TMP_6 TMP_75 H)))))))))).
+(\forall (x: T).(\forall (x0: T).((eq T t2 (THead (Flat f) x x0)) \to (land 
+(sn3 c x) (sn3 c x0)))))))))).(\lambda (x: T).(\lambda (x0: T).(\lambda (H3: 
+(eq T t1 (THead (Flat f) x x0))).(let H4 \def (eq_ind T t1 (\lambda (t0: 
+T).(\forall (t2: T).((((eq T t0 t2) \to (\forall (P: Prop).P))) \to ((pr3 c 
+t0 t2) \to (\forall (x1: T).(\forall (x2: T).((eq T t2 (THead (Flat f) x1 
+x2)) \to (land (sn3 c x1) (sn3 c x2))))))))) H2 (THead (Flat f) x x0) H3) in 
+(let H5 \def (eq_ind T t1 (\lambda (t0: T).(\forall (t2: T).((((eq T t0 t2) 
+\to (\forall (P: Prop).P))) \to ((pr3 c t0 t2) \to (sn3 c t2))))) H1 (THead 
+(Flat f) x x0) H3) in (conj (sn3 c x) (sn3 c x0) (sn3_sing c x (\lambda (t2: 
+T).(\lambda (H6: (((eq T x t2) \to (\forall (P: Prop).P)))).(\lambda (H7: 
+(pr3 c x t2)).(let H8 \def (H4 (THead (Flat f) t2 x0) (\lambda (H8: (eq T 
+(THead (Flat f) x x0) (THead (Flat f) t2 x0))).(\lambda (P: Prop).(let H9 
+\def (f_equal T T (\lambda (e: T).(match e with [(TSort _) \Rightarrow x | 
+(TLRef _) \Rightarrow x | (THead _ t0 _) \Rightarrow t0])) (THead (Flat f) x 
+x0) (THead (Flat f) t2 x0) H8) in (let H10 \def (eq_ind_r T t2 (\lambda (t0: 
+T).(pr3 c x t0)) H7 x H9) in (let H11 \def (eq_ind_r T t2 (\lambda (t0: 
+T).((eq T x t0) \to (\forall (P0: Prop).P0))) H6 x H9) in (H11 (refl_equal T 
+x) P)))))) (pr3_head_12 c x t2 H7 (Flat f) x0 x0 (pr3_refl (CHead c (Flat f) 
+t2) x0)) t2 x0 (refl_equal T (THead (Flat f) t2 x0))) in (land_ind (sn3 c t2) 
+(sn3 c x0) (sn3 c t2) (\lambda (H9: (sn3 c t2)).(\lambda (_: (sn3 c x0)).H9)) 
+H8)))))) (sn3_sing c x0 (\lambda (t2: T).(\lambda (H6: (((eq T x0 t2) \to 
+(\forall (P: Prop).P)))).(\lambda (H7: (pr3 c x0 t2)).(let H8 \def (H4 (THead 
+(Flat f) x t2) (\lambda (H8: (eq T (THead (Flat f) x x0) (THead (Flat f) x 
+t2))).(\lambda (P: Prop).(let H9 \def (f_equal T T (\lambda (e: T).(match e 
+with [(TSort _) \Rightarrow x0 | (TLRef _) \Rightarrow x0 | (THead _ _ t0) 
+\Rightarrow t0])) (THead (Flat f) x x0) (THead (Flat f) x t2) H8) in (let H10 
+\def (eq_ind_r T t2 (\lambda (t0: T).(pr3 c x0 t0)) H7 x0 H9) in (let H11 
+\def (eq_ind_r T t2 (\lambda (t0: T).((eq T x0 t0) \to (\forall (P0: 
+Prop).P0))) H6 x0 H9) in (H11 (refl_equal T x0) P)))))) (pr3_thin_dx c x0 t2 
+H7 x f) x t2 (refl_equal T (THead (Flat f) x t2))) in (land_ind (sn3 c x) 
+(sn3 c t2) (sn3 c t2) (\lambda (_: (sn3 c x)).(\lambda (H10: (sn3 c 
+t2)).H10)) H8))))))))))))))) y H0))))) H))))).
 
 theorem sn3_gen_head:
  \forall (k: K).(\forall (c: C).(\forall (u: T).(\forall (t: T).((sn3 c 
 (THead k u t)) \to (sn3 c u)))))
 \def
- \lambda (k: K).(let TMP_1 \def (\lambda (k0: K).(\forall (c: C).(\forall (u: 
-T).(\forall (t: T).((sn3 c (THead k0 u t)) \to (sn3 c u)))))) in (let TMP_8 
-\def (\lambda (b: B).(\lambda (c: C).(\lambda (u: T).(\lambda (t: T).(\lambda 
-(H: (sn3 c (THead (Bind b) u t))).(let H_x \def (sn3_gen_bind b c u t H) in 
-(let H0 \def H_x in (let TMP_2 \def (sn3 c u) in (let TMP_3 \def (Bind b) in 
-(let TMP_4 \def (CHead c TMP_3 u) in (let TMP_5 \def (sn3 TMP_4 t) in (let 
-TMP_6 \def (sn3 c u) in (let TMP_7 \def (\lambda (H1: (sn3 c u)).(\lambda (_: 
-(sn3 (CHead c (Bind b) u) t)).H1)) in (land_ind TMP_2 TMP_5 TMP_6 TMP_7 
-H0)))))))))))))) in (let TMP_13 \def (\lambda (f: F).(\lambda (c: C).(\lambda 
-(u: T).(\lambda (t: T).(\lambda (H: (sn3 c (THead (Flat f) u t))).(let H_x 
-\def (sn3_gen_flat f c u t H) in (let H0 \def H_x in (let TMP_9 \def (sn3 c 
-u) in (let TMP_10 \def (sn3 c t) in (let TMP_11 \def (sn3 c u) in (let TMP_12 
-\def (\lambda (H1: (sn3 c u)).(\lambda (_: (sn3 c t)).H1)) in (land_ind TMP_9 
-TMP_10 TMP_11 TMP_12 H0)))))))))))) in (K_ind TMP_1 TMP_8 TMP_13 k)))).
+ \lambda (k: K).(K_ind (\lambda (k0: K).(\forall (c: C).(\forall (u: 
+T).(\forall (t: T).((sn3 c (THead k0 u t)) \to (sn3 c u)))))) (\lambda (b: 
+B).(\lambda (c: C).(\lambda (u: T).(\lambda (t: T).(\lambda (H: (sn3 c (THead 
+(Bind b) u t))).(let H_x \def (sn3_gen_bind b c u t H) in (let H0 \def H_x in 
+(land_ind (sn3 c u) (sn3 (CHead c (Bind b) u) t) (sn3 c u) (\lambda (H1: (sn3 
+c u)).(\lambda (_: (sn3 (CHead c (Bind b) u) t)).H1)) H0)))))))) (\lambda (f: 
+F).(\lambda (c: C).(\lambda (u: T).(\lambda (t: T).(\lambda (H: (sn3 c (THead 
+(Flat f) u t))).(let H_x \def (sn3_gen_flat f c u t H) in (let H0 \def H_x in 
+(land_ind (sn3 c u) (sn3 c t) (sn3 c u) (\lambda (H1: (sn3 c u)).(\lambda (_: 
+(sn3 c t)).H1)) H0)))))))) k).
 
 theorem sn3_gen_cflat:
  \forall (f: F).(\forall (c: C).(\forall (u: T).(\forall (t: T).((sn3 (CHead 
 c (Flat f) u) t) \to (sn3 c t)))))
 \def
  \lambda (f: F).(\lambda (c: C).(\lambda (u: T).(\lambda (t: T).(\lambda (H: 
-(sn3 (CHead c (Flat f) u) t)).(let TMP_1 \def (Flat f) in (let TMP_2 \def 
-(CHead c TMP_1 u) in (let TMP_3 \def (\lambda (t0: T).(sn3 c t0)) in (let 
-TMP_6 \def (\lambda (t1: T).(\lambda (_: ((\forall (t2: T).((((eq T t1 t2) 
-\to (\forall (P: Prop).P))) \to ((pr3 (CHead c (Flat f) u) t1 t2) \to (sn3 
-(CHead c (Flat f) u) t2)))))).(\lambda (H1: ((\forall (t2: T).((((eq T t1 t2) 
-\to (\forall (P: Prop).P))) \to ((pr3 (CHead c (Flat f) u) t1 t2) \to (sn3 c 
-t2)))))).(let TMP_5 \def (\lambda (t2: T).(\lambda (H2: (((eq T t1 t2) \to 
-(\forall (P: Prop).P)))).(\lambda (H3: (pr3 c t1 t2)).(let TMP_4 \def 
-(pr3_cflat c t1 t2 H3 f u) in (H1 t2 H2 TMP_4))))) in (sn3_sing c t1 
-TMP_5))))) in (sn3_ind TMP_2 TMP_3 TMP_6 t H))))))))).
+(sn3 (CHead c (Flat f) u) t)).(sn3_ind (CHead c (Flat f) u) (\lambda (t0: 
+T).(sn3 c t0)) (\lambda (t1: T).(\lambda (_: ((\forall (t2: T).((((eq T t1 
+t2) \to (\forall (P: Prop).P))) \to ((pr3 (CHead c (Flat f) u) t1 t2) \to 
+(sn3 (CHead c (Flat f) u) t2)))))).(\lambda (H1: ((\forall (t2: T).((((eq T 
+t1 t2) \to (\forall (P: Prop).P))) \to ((pr3 (CHead c (Flat f) u) t1 t2) \to 
+(sn3 c t2)))))).(sn3_sing c t1 (\lambda (t2: T).(\lambda (H2: (((eq T t1 t2) 
+\to (\forall (P: Prop).P)))).(\lambda (H3: (pr3 c t1 t2)).(H1 t2 H2 
+(pr3_cflat c t1 t2 H3 f u))))))))) t H))))).
 
 theorem sn3_gen_lift:
  \forall (c1: C).(\forall (t: T).(\forall (h: nat).(\forall (d: nat).((sn3 c1 
 (lift h d t)) \to (\forall (c2: C).((drop h d c1 c2) \to (sn3 c2 t)))))))
 \def
  \lambda (c1: C).(\lambda (t: T).(\lambda (h: nat).(\lambda (d: nat).(\lambda 
-(H: (sn3 c1 (lift h d t))).(let TMP_1 \def (lift h d t) in (let TMP_2 \def 
-(\lambda (t0: T).(sn3 c1 t0)) in (let TMP_3 \def (\lambda (_: T).(\forall 
-(c2: C).((drop h d c1 c2) \to (sn3 c2 t)))) in (let TMP_23 \def (\lambda (y: 
-T).(\lambda (H0: (sn3 c1 y)).(let TMP_4 \def (\lambda (t0: T).((eq T y (lift 
-h d t0)) \to (\forall (c2: C).((drop h d c1 c2) \to (sn3 c2 t0))))) in (let 
-TMP_5 \def (\lambda (t0: T).(\forall (x: T).((eq T t0 (lift h d x)) \to 
-(\forall (c2: C).((drop h d c1 c2) \to (sn3 c2 x)))))) in (let TMP_21 \def 
-(\lambda (t1: T).(\lambda (H1: ((\forall (t2: T).((((eq T t1 t2) \to (\forall 
-(P: Prop).P))) \to ((pr3 c1 t1 t2) \to (sn3 c1 t2)))))).(\lambda (H2: 
-((\forall (t2: T).((((eq T t1 t2) \to (\forall (P: Prop).P))) \to ((pr3 c1 t1 
-t2) \to (\forall (x: T).((eq T t2 (lift h d x)) \to (\forall (c2: C).((drop h 
-d c1 c2) \to (sn3 c2 x)))))))))).(\lambda (x: T).(\lambda (H3: (eq T t1 (lift 
-h d x))).(\lambda (c2: C).(\lambda (H4: (drop h d c1 c2)).(let TMP_6 \def 
-(\lambda (t0: T).(\forall (t2: T).((((eq T t0 t2) \to (\forall (P: Prop).P))) 
-\to ((pr3 c1 t0 t2) \to (\forall (x0: T).((eq T t2 (lift h d x0)) \to 
-(\forall (c3: C).((drop h d c1 c3) \to (sn3 c3 x0))))))))) in (let TMP_7 \def 
-(lift h d x) in (let H5 \def (eq_ind T t1 TMP_6 H2 TMP_7 H3) in (let TMP_8 
-\def (\lambda (t0: T).(\forall (t2: T).((((eq T t0 t2) \to (\forall (P: 
-Prop).P))) \to ((pr3 c1 t0 t2) \to (sn3 c1 t2))))) in (let TMP_9 \def (lift h 
-d x) in (let H6 \def (eq_ind T t1 TMP_8 H1 TMP_9 H3) in (let TMP_20 \def 
-(\lambda (t2: T).(\lambda (H7: (((eq T x t2) \to (\forall (P: 
-Prop).P)))).(\lambda (H8: (pr3 c2 x t2)).(let TMP_10 \def (lift h d t2) in 
-(let TMP_16 \def (\lambda (H9: (eq T (lift h d x) (lift h d t2))).(\lambda 
-(P: Prop).(let TMP_11 \def (\lambda (t0: T).(pr3 c2 x t0)) in (let TMP_12 
-\def (lift_inj x t2 h d H9) in (let H10 \def (eq_ind_r T t2 TMP_11 H8 x 
-TMP_12) in (let TMP_13 \def (\lambda (t0: T).((eq T x t0) \to (\forall (P0: 
-Prop).P0))) in (let TMP_14 \def (lift_inj x t2 h d H9) in (let H11 \def 
-(eq_ind_r T t2 TMP_13 H7 x TMP_14) in (let TMP_15 \def (refl_equal T x) in 
-(H11 TMP_15 P)))))))))) in (let TMP_17 \def (pr3_lift c1 c2 h d H4 x t2 H8) 
-in (let TMP_18 \def (lift h d t2) in (let TMP_19 \def (refl_equal T TMP_18) 
-in (H5 TMP_10 TMP_16 TMP_17 t2 TMP_19 c2 H4))))))))) in (sn3_sing c2 x 
-TMP_20))))))))))))))) in (let TMP_22 \def (sn3_ind c1 TMP_5 TMP_21 y H0) in 
-(unintro T t TMP_4 TMP_22))))))) in (insert_eq T TMP_1 TMP_2 TMP_3 TMP_23 
-H))))))))).
+(H: (sn3 c1 (lift h d t))).(insert_eq T (lift h d t) (\lambda (t0: T).(sn3 c1 
+t0)) (\lambda (_: T).(\forall (c2: C).((drop h d c1 c2) \to (sn3 c2 t)))) 
+(\lambda (y: T).(\lambda (H0: (sn3 c1 y)).(unintro T t (\lambda (t0: T).((eq 
+T y (lift h d t0)) \to (\forall (c2: C).((drop h d c1 c2) \to (sn3 c2 t0))))) 
+(sn3_ind c1 (\lambda (t0: T).(\forall (x: T).((eq T t0 (lift h d x)) \to 
+(\forall (c2: C).((drop h d c1 c2) \to (sn3 c2 x)))))) (\lambda (t1: 
+T).(\lambda (H1: ((\forall (t2: T).((((eq T t1 t2) \to (\forall (P: 
+Prop).P))) \to ((pr3 c1 t1 t2) \to (sn3 c1 t2)))))).(\lambda (H2: ((\forall 
+(t2: T).((((eq T t1 t2) \to (\forall (P: Prop).P))) \to ((pr3 c1 t1 t2) \to 
+(\forall (x: T).((eq T t2 (lift h d x)) \to (\forall (c2: C).((drop h d c1 
+c2) \to (sn3 c2 x)))))))))).(\lambda (x: T).(\lambda (H3: (eq T t1 (lift h d 
+x))).(\lambda (c2: C).(\lambda (H4: (drop h d c1 c2)).(let H5 \def (eq_ind T 
+t1 (\lambda (t0: T).(\forall (t2: T).((((eq T t0 t2) \to (\forall (P: 
+Prop).P))) \to ((pr3 c1 t0 t2) \to (\forall (x0: T).((eq T t2 (lift h d x0)) 
+\to (\forall (c3: C).((drop h d c1 c3) \to (sn3 c3 x0))))))))) H2 (lift h d 
+x) H3) in (let H6 \def (eq_ind T t1 (\lambda (t0: T).(\forall (t2: T).((((eq 
+T t0 t2) \to (\forall (P: Prop).P))) \to ((pr3 c1 t0 t2) \to (sn3 c1 t2))))) 
+H1 (lift h d x) H3) in (sn3_sing c2 x (\lambda (t2: T).(\lambda (H7: (((eq T 
+x t2) \to (\forall (P: Prop).P)))).(\lambda (H8: (pr3 c2 x t2)).(H5 (lift h d 
+t2) (\lambda (H9: (eq T (lift h d x) (lift h d t2))).(\lambda (P: Prop).(let 
+H10 \def (eq_ind_r T t2 (\lambda (t0: T).(pr3 c2 x t0)) H8 x (lift_inj x t2 h 
+d H9)) in (let H11 \def (eq_ind_r T t2 (\lambda (t0: T).((eq T x t0) \to 
+(\forall (P0: Prop).P0))) H7 x (lift_inj x t2 h d H9)) in (H11 (refl_equal T 
+x) P))))) (pr3_lift c1 c2 h d H4 x t2 H8) t2 (refl_equal T (lift h d t2)) c2 
+H4)))))))))))))) y H0)))) H))))).
 
index 51bc3426ccade0be00a1761e4f518260b82a6828..24d0f4ed6eb7b30ff35749db451ef4227c3fa49c 100644 (file)
@@ -24,30 +24,20 @@ theorem sns3_lifts1:
  \forall (e: C).(\forall (hds: PList).(\forall (c: C).((drop1 hds c e) \to 
 (\forall (ts: TList).((sns3 e ts) \to (sns3 c (lifts1 hds ts)))))))
 \def
- \lambda (e: C).(\lambda (hds: PList).(let TMP_2 \def (\lambda (p: 
-PList).(\forall (c: C).((drop1 p c e) \to (\forall (ts: TList).((sns3 e ts) 
-\to (let TMP_1 \def (lifts1 p ts) in (sns3 c TMP_1))))))) in (let TMP_9 \def 
-(\lambda (c: C).(\lambda (H: (drop1 PNil c e)).(\lambda (ts: TList).(\lambda 
-(H0: (sns3 e ts)).(let H_y \def (drop1_gen_pnil c e H) in (let TMP_4 \def 
-(\lambda (c0: C).(let TMP_3 \def (lifts1 PNil ts) in (sns3 c0 TMP_3))) in 
-(let TMP_5 \def (\lambda (t: TList).(sns3 e t)) in (let TMP_6 \def (lifts1 
-PNil ts) in (let TMP_7 \def (lifts1_nil ts) in (let TMP_8 \def (eq_ind_r 
-TList ts TMP_5 H0 TMP_6 TMP_7) in (eq_ind_r C e TMP_4 TMP_8 c H_y))))))))))) 
-in (let TMP_25 \def (\lambda (n: nat).(\lambda (n0: nat).(\lambda (p: 
-PList).(\lambda (H: ((\forall (c: C).((drop1 p c e) \to (\forall (ts: 
-TList).((sns3 e ts) \to (sns3 c (lifts1 p ts)))))))).(\lambda (c: C).(\lambda 
-(H0: (drop1 (PCons n n0 p) c e)).(\lambda (ts: TList).(\lambda (H1: (sns3 e 
-ts)).(let H_x \def (drop1_gen_pcons c e p n n0 H0) in (let H2 \def H_x in 
-(let TMP_10 \def (\lambda (c2: C).(drop n n0 c c2)) in (let TMP_11 \def 
-(\lambda (c2: C).(drop1 p c2 e)) in (let TMP_12 \def (PCons n n0 p) in (let 
-TMP_13 \def (lifts1 TMP_12 ts) in (let TMP_14 \def (sns3 c TMP_13) in (let 
-TMP_24 \def (\lambda (x: C).(\lambda (H3: (drop n n0 c x)).(\lambda (H4: 
-(drop1 p x e)).(let TMP_15 \def (lifts1 p ts) in (let TMP_16 \def (lifts n n0 
-TMP_15) in (let TMP_17 \def (\lambda (t: TList).(sns3 c t)) in (let TMP_18 
-\def (lifts1 p ts) in (let TMP_19 \def (H x H4 ts H1) in (let TMP_20 \def 
-(sns3_lifts c x n n0 H3 TMP_18 TMP_19) in (let TMP_21 \def (PCons n n0 p) in 
-(let TMP_22 \def (lifts1 TMP_21 ts) in (let TMP_23 \def (lifts1_cons n n0 p 
-ts) in (eq_ind_r TList TMP_16 TMP_17 TMP_20 TMP_22 TMP_23))))))))))))) in 
-(ex2_ind C TMP_10 TMP_11 TMP_14 TMP_24 H2))))))))))))))))) in (PList_ind 
-TMP_2 TMP_9 TMP_25 hds))))).
+ \lambda (e: C).(\lambda (hds: PList).(PList_ind (\lambda (p: PList).(\forall 
+(c: C).((drop1 p c e) \to (\forall (ts: TList).((sns3 e ts) \to (sns3 c 
+(lifts1 p ts))))))) (\lambda (c: C).(\lambda (H: (drop1 PNil c e)).(\lambda 
+(ts: TList).(\lambda (H0: (sns3 e ts)).(let H_y \def (drop1_gen_pnil c e H) 
+in (eq_ind_r C e (\lambda (c0: C).(sns3 c0 (lifts1 PNil ts))) (eq_ind_r TList 
+ts (\lambda (t: TList).(sns3 e t)) H0 (lifts1 PNil ts) (lifts1_nil ts)) c 
+H_y)))))) (\lambda (n: nat).(\lambda (n0: nat).(\lambda (p: PList).(\lambda 
+(H: ((\forall (c: C).((drop1 p c e) \to (\forall (ts: TList).((sns3 e ts) \to 
+(sns3 c (lifts1 p ts)))))))).(\lambda (c: C).(\lambda (H0: (drop1 (PCons n n0 
+p) c e)).(\lambda (ts: TList).(\lambda (H1: (sns3 e ts)).(let H_x \def 
+(drop1_gen_pcons c e p n n0 H0) in (let H2 \def H_x in (ex2_ind C (\lambda 
+(c2: C).(drop n n0 c c2)) (\lambda (c2: C).(drop1 p c2 e)) (sns3 c (lifts1 
+(PCons n n0 p) ts)) (\lambda (x: C).(\lambda (H3: (drop n n0 c x)).(\lambda 
+(H4: (drop1 p x e)).(eq_ind_r TList (lifts n n0 (lifts1 p ts)) (\lambda (t: 
+TList).(sns3 c t)) (sns3_lifts c x n n0 H3 (lifts1 p ts) (H x H4 ts H1)) 
+(lifts1 (PCons n n0 p) ts) (lifts1_cons n n0 p ts))))) H2))))))))))) hds)).
 
index 05744e7d0510485eb298f4a524154db6e2e8dd61..fc3f7c09ef0b35d1881f7e548d116a1445a3126a 100644 (file)
@@ -23,52 +23,38 @@ include "basic_1/nf2/pr3.ma".
 theorem sn3_nf2:
  \forall (c: C).(\forall (t: T).((nf2 c t) \to (sn3 c t)))
 \def
- \lambda (c: C).(\lambda (t: T).(\lambda (H: (nf2 c t)).(let TMP_7 \def 
+ \lambda (c: C).(\lambda (t: T).(\lambda (H: (nf2 c t)).(sn3_sing c t 
 (\lambda (t2: T).(\lambda (H0: (((eq T t t2) \to (\forall (P: 
 Prop).P)))).(\lambda (H1: (pr3 c t t2)).(let H_y \def (nf2_pr3_unfold c t t2 
-H1 H) in (let TMP_1 \def (\lambda (t0: T).(pr3 c t t0)) in (let H2 \def 
-(eq_ind_r T t2 TMP_1 H1 t H_y) in (let TMP_2 \def (\lambda (t0: T).((eq T t 
-t0) \to (\forall (P: Prop).P))) in (let H3 \def (eq_ind_r T t2 TMP_2 H0 t 
-H_y) in (let TMP_3 \def (\lambda (t0: T).(sn3 c t0)) in (let TMP_4 \def 
-(refl_equal T t) in (let TMP_5 \def (sn3 c t) in (let TMP_6 \def (H3 TMP_4 
-TMP_5) in (eq_ind T t TMP_3 TMP_6 t2 H_y))))))))))))) in (sn3_sing c t 
-TMP_7)))).
+H1 H) in (let H2 \def (eq_ind_r T t2 (\lambda (t0: T).(pr3 c t t0)) H1 t H_y) 
+in (let H3 \def (eq_ind_r T t2 (\lambda (t0: T).((eq T t t0) \to (\forall (P: 
+Prop).P))) H0 t H_y) in (eq_ind T t (\lambda (t0: T).(sn3 c t0)) (H3 
+(refl_equal T t) (sn3 c t)) t2 H_y)))))))))).
 
 theorem nf2_sn3:
  \forall (c: C).(\forall (t: T).((sn3 c t) \to (ex2 T (\lambda (u: T).(pr3 c 
 t u)) (\lambda (u: T).(nf2 c u)))))
 \def
- \lambda (c: C).(\lambda (t: T).(\lambda (H: (sn3 c t)).(let TMP_3 \def 
-(\lambda (t0: T).(let TMP_1 \def (\lambda (u: T).(pr3 c t0 u)) in (let TMP_2 
-\def (\lambda (u: T).(nf2 c u)) in (ex2 T TMP_1 TMP_2)))) in (let TMP_32 \def 
+ \lambda (c: C).(\lambda (t: T).(\lambda (H: (sn3 c t)).(sn3_ind c (\lambda 
+(t0: T).(ex2 T (\lambda (u: T).(pr3 c t0 u)) (\lambda (u: T).(nf2 c u)))) 
 (\lambda (t1: T).(\lambda (_: ((\forall (t2: T).((((eq T t1 t2) \to (\forall 
 (P: Prop).P))) \to ((pr3 c t1 t2) \to (sn3 c t2)))))).(\lambda (H1: ((\forall 
 (t2: T).((((eq T t1 t2) \to (\forall (P: Prop).P))) \to ((pr3 c t1 t2) \to 
 (ex2 T (\lambda (u: T).(pr3 c t2 u)) (\lambda (u: T).(nf2 c u)))))))).(let 
-H_x \def (nf2_dec c t1) in (let H2 \def H_x in (let TMP_4 \def (nf2 c t1) in 
-(let TMP_5 \def (\lambda (t2: T).((eq T t1 t2) \to (\forall (P: Prop).P))) in 
-(let TMP_6 \def (\lambda (t2: T).(pr2 c t1 t2)) in (let TMP_7 \def (ex2 T 
-TMP_5 TMP_6) in (let TMP_8 \def (\lambda (u: T).(pr3 c t1 u)) in (let TMP_9 
-\def (\lambda (u: T).(nf2 c u)) in (let TMP_10 \def (ex2 T TMP_8 TMP_9) in 
-(let TMP_14 \def (\lambda (H3: (nf2 c t1)).(let TMP_11 \def (\lambda (u: 
-T).(pr3 c t1 u)) in (let TMP_12 \def (\lambda (u: T).(nf2 c u)) in (let 
-TMP_13 \def (pr3_refl c t1) in (ex_intro2 T TMP_11 TMP_12 t1 TMP_13 H3))))) 
-in (let TMP_31 \def (\lambda (H3: (ex2 T (\lambda (t2: T).((eq T t1 t2) \to 
-(\forall (P: Prop).P))) (\lambda (t2: T).(pr2 c t1 t2)))).(let TMP_15 \def 
-(\lambda (t2: T).((eq T t1 t2) \to (\forall (P: Prop).P))) in (let TMP_16 
-\def (\lambda (t2: T).(pr2 c t1 t2)) in (let TMP_17 \def (\lambda (u: T).(pr3 
-c t1 u)) in (let TMP_18 \def (\lambda (u: T).(nf2 c u)) in (let TMP_19 \def 
-(ex2 T TMP_17 TMP_18) in (let TMP_30 \def (\lambda (x: T).(\lambda (H4: (((eq 
-T t1 x) \to (\forall (P: Prop).P)))).(\lambda (H5: (pr2 c t1 x)).(let H_y 
-\def (H1 x H4) in (let TMP_20 \def (pr3_pr2 c t1 x H5) in (let H6 \def (H_y 
-TMP_20) in (let TMP_21 \def (\lambda (u: T).(pr3 c x u)) in (let TMP_22 \def 
-(\lambda (u: T).(nf2 c u)) in (let TMP_23 \def (\lambda (u: T).(pr3 c t1 u)) 
-in (let TMP_24 \def (\lambda (u: T).(nf2 c u)) in (let TMP_25 \def (ex2 T 
-TMP_23 TMP_24) in (let TMP_29 \def (\lambda (x0: T).(\lambda (H7: (pr3 c x 
-x0)).(\lambda (H8: (nf2 c x0)).(let TMP_26 \def (\lambda (u: T).(pr3 c t1 u)) 
-in (let TMP_27 \def (\lambda (u: T).(nf2 c u)) in (let TMP_28 \def (pr3_sing 
-c x t1 H5 x0 H7) in (ex_intro2 T TMP_26 TMP_27 x0 TMP_28 H8))))))) in 
-(ex2_ind T TMP_21 TMP_22 TMP_25 TMP_29 H6))))))))))))) in (ex2_ind T TMP_15 
-TMP_16 TMP_19 TMP_30 H3)))))))) in (or_ind TMP_4 TMP_7 TMP_10 TMP_14 TMP_31 
-H2))))))))))))))) in (sn3_ind c TMP_3 TMP_32 t H))))).
+H_x \def (nf2_dec c t1) in (let H2 \def H_x in (or_ind (nf2 c t1) (ex2 T 
+(\lambda (t2: T).((eq T t1 t2) \to (\forall (P: Prop).P))) (\lambda (t2: 
+T).(pr2 c t1 t2))) (ex2 T (\lambda (u: T).(pr3 c t1 u)) (\lambda (u: T).(nf2 
+c u))) (\lambda (H3: (nf2 c t1)).(ex_intro2 T (\lambda (u: T).(pr3 c t1 u)) 
+(\lambda (u: T).(nf2 c u)) t1 (pr3_refl c t1) H3)) (\lambda (H3: (ex2 T 
+(\lambda (t2: T).((eq T t1 t2) \to (\forall (P: Prop).P))) (\lambda (t2: 
+T).(pr2 c t1 t2)))).(ex2_ind T (\lambda (t2: T).((eq T t1 t2) \to (\forall 
+(P: Prop).P))) (\lambda (t2: T).(pr2 c t1 t2)) (ex2 T (\lambda (u: T).(pr3 c 
+t1 u)) (\lambda (u: T).(nf2 c u))) (\lambda (x: T).(\lambda (H4: (((eq T t1 
+x) \to (\forall (P: Prop).P)))).(\lambda (H5: (pr2 c t1 x)).(let H_y \def (H1 
+x H4) in (let H6 \def (H_y (pr3_pr2 c t1 x H5)) in (ex2_ind T (\lambda (u: 
+T).(pr3 c x u)) (\lambda (u: T).(nf2 c u)) (ex2 T (\lambda (u: T).(pr3 c t1 
+u)) (\lambda (u: T).(nf2 c u))) (\lambda (x0: T).(\lambda (H7: (pr3 c x 
+x0)).(\lambda (H8: (nf2 c x0)).(ex_intro2 T (\lambda (u: T).(pr3 c t1 u)) 
+(\lambda (u: T).(nf2 c u)) x0 (pr3_sing c x t1 H5 x0 H7) H8)))) H6)))))) H3)) 
+H2)))))) t H))).
 
index 82448bfcae79fbd35559b4c40be42baf3fdbd0fa..4a8aa1a3058fe30f13168e7458be3a95e45356cb 100644 (file)
@@ -24,111 +24,63 @@ t1 t) \to (ex2 T (\lambda (t2: T).(sty1 g c t1 t2)) (\lambda (t2: T).(cnt
 t2)))))))
 \def
  \lambda (g: G).(\lambda (c: C).(\lambda (t1: T).(\lambda (t: T).(\lambda (H: 
-(sty0 g c t1 t)).(let TMP_3 \def (\lambda (c0: C).(\lambda (t0: T).(\lambda 
-(_: T).(let TMP_1 \def (\lambda (t3: T).(sty1 g c0 t0 t3)) in (let TMP_2 \def 
-(\lambda (t3: T).(cnt t3)) in (ex2 T TMP_1 TMP_2)))))) in (let TMP_16 \def 
-(\lambda (c0: C).(\lambda (n: nat).(let TMP_5 \def (\lambda (t2: T).(let 
-TMP_4 \def (TSort n) in (sty1 g c0 TMP_4 t2))) in (let TMP_6 \def (\lambda 
-(t2: T).(cnt t2)) in (let TMP_7 \def (next g n) in (let TMP_8 \def (TSort 
-TMP_7) in (let TMP_9 \def (TSort n) in (let TMP_10 \def (next g n) in (let 
-TMP_11 \def (TSort TMP_10) in (let TMP_12 \def (sty0_sort g c0 n) in (let 
-TMP_13 \def (sty1_sty0 g c0 TMP_9 TMP_11 TMP_12) in (let TMP_14 \def (next g 
-n) in (let TMP_15 \def (cnt_sort TMP_14) in (ex_intro2 T TMP_5 TMP_6 TMP_8 
-TMP_13 TMP_15)))))))))))))) in (let TMP_32 \def (\lambda (c0: C).(\lambda (d: 
-C).(\lambda (v: T).(\lambda (i: nat).(\lambda (H0: (getl i c0 (CHead d (Bind 
-Abbr) v))).(\lambda (w: T).(\lambda (_: (sty0 g d v w)).(\lambda (H2: (ex2 T 
-(\lambda (t2: T).(sty1 g d v t2)) (\lambda (t2: T).(cnt t2)))).(let H3 \def 
-H2 in (let TMP_17 \def (\lambda (t2: T).(sty1 g d v t2)) in (let TMP_18 \def 
-(\lambda (t2: T).(cnt t2)) in (let TMP_20 \def (\lambda (t2: T).(let TMP_19 
-\def (TLRef i) in (sty1 g c0 TMP_19 t2))) in (let TMP_21 \def (\lambda (t2: 
-T).(cnt t2)) in (let TMP_22 \def (ex2 T TMP_20 TMP_21) in (let TMP_31 \def 
-(\lambda (x: T).(\lambda (H4: (sty1 g d v x)).(\lambda (H5: (cnt x)).(let 
-TMP_24 \def (\lambda (t2: T).(let TMP_23 \def (TLRef i) in (sty1 g c0 TMP_23 
-t2))) in (let TMP_25 \def (\lambda (t2: T).(cnt t2)) in (let TMP_26 \def (S 
-i) in (let TMP_27 \def (lift TMP_26 O x) in (let TMP_28 \def (sty1_abbr g c0 
-d v i H0 x H4) in (let TMP_29 \def (S i) in (let TMP_30 \def (cnt_lift x H5 
-TMP_29 O) in (ex_intro2 T TMP_24 TMP_25 TMP_27 TMP_28 TMP_30))))))))))) in 
-(ex2_ind T TMP_17 TMP_18 TMP_22 TMP_31 H3)))))))))))))))) in (let TMP_61 \def 
+(sty0 g c t1 t)).(sty0_ind g (\lambda (c0: C).(\lambda (t0: T).(\lambda (_: 
+T).(ex2 T (\lambda (t3: T).(sty1 g c0 t0 t3)) (\lambda (t3: T).(cnt t3)))))) 
+(\lambda (c0: C).(\lambda (n: nat).(ex_intro2 T (\lambda (t2: T).(sty1 g c0 
+(TSort n) t2)) (\lambda (t2: T).(cnt t2)) (TSort (next g n)) (sty1_sty0 g c0 
+(TSort n) (TSort (next g n)) (sty0_sort g c0 n)) (cnt_sort (next g n))))) 
 (\lambda (c0: C).(\lambda (d: C).(\lambda (v: T).(\lambda (i: nat).(\lambda 
-(H0: (getl i c0 (CHead d (Bind Abst) v))).(\lambda (w: T).(\lambda (H1: (sty0 
+(H0: (getl i c0 (CHead d (Bind Abbr) v))).(\lambda (w: T).(\lambda (_: (sty0 
 g d v w)).(\lambda (H2: (ex2 T (\lambda (t2: T).(sty1 g d v t2)) (\lambda 
-(t2: T).(cnt t2)))).(let H3 \def H2 in (let TMP_33 \def (\lambda (t2: 
-T).(sty1 g d v t2)) in (let TMP_34 \def (\lambda (t2: T).(cnt t2)) in (let 
-TMP_36 \def (\lambda (t2: T).(let TMP_35 \def (TLRef i) in (sty1 g c0 TMP_35 
-t2))) in (let TMP_37 \def (\lambda (t2: T).(cnt t2)) in (let TMP_38 \def (ex2 
-T TMP_36 TMP_37) in (let TMP_60 \def (\lambda (x: T).(\lambda (H4: (sty1 g d 
-v x)).(\lambda (H5: (cnt x)).(let TMP_40 \def (\lambda (t2: T).(let TMP_39 
-\def (TLRef i) in (sty1 g c0 TMP_39 t2))) in (let TMP_41 \def (\lambda (t2: 
-T).(cnt t2)) in (let TMP_42 \def (S i) in (let TMP_43 \def (lift TMP_42 O x) 
-in (let TMP_44 \def (TLRef i) in (let TMP_45 \def (S i) in (let TMP_46 \def 
-(lift TMP_45 O v) in (let TMP_47 \def (TLRef i) in (let TMP_48 \def (S i) in 
-(let TMP_49 \def (lift TMP_48 O v) in (let TMP_50 \def (sty0_abst g c0 d v i 
-H0 w H1) in (let TMP_51 \def (sty1_sty0 g c0 TMP_47 TMP_49 TMP_50) in (let 
-TMP_52 \def (S i) in (let TMP_53 \def (lift TMP_52 O x) in (let TMP_54 \def 
-(S i) in (let TMP_55 \def (getl_drop Abst c0 d v i H0) in (let TMP_56 \def 
-(sty1_lift g d v x H4 c0 TMP_54 O TMP_55) in (let TMP_57 \def (sty1_trans g 
-c0 TMP_44 TMP_46 TMP_51 TMP_53 TMP_56) in (let TMP_58 \def (S i) in (let 
-TMP_59 \def (cnt_lift x H5 TMP_58 O) in (ex_intro2 T TMP_40 TMP_41 TMP_43 
-TMP_57 TMP_59)))))))))))))))))))))))) in (ex2_ind T TMP_33 TMP_34 TMP_38 
-TMP_60 H3)))))))))))))))) in (let TMP_81 \def (\lambda (b: B).(\lambda (c0: 
+(t2: T).(cnt t2)))).(let H3 \def H2 in (ex2_ind T (\lambda (t2: T).(sty1 g d 
+v t2)) (\lambda (t2: T).(cnt t2)) (ex2 T (\lambda (t2: T).(sty1 g c0 (TLRef 
+i) t2)) (\lambda (t2: T).(cnt t2))) (\lambda (x: T).(\lambda (H4: (sty1 g d v 
+x)).(\lambda (H5: (cnt x)).(ex_intro2 T (\lambda (t2: T).(sty1 g c0 (TLRef i) 
+t2)) (\lambda (t2: T).(cnt t2)) (lift (S i) O x) (sty1_abbr g c0 d v i H0 x 
+H4) (cnt_lift x H5 (S i) O))))) H3)))))))))) (\lambda (c0: C).(\lambda (d: 
+C).(\lambda (v: T).(\lambda (i: nat).(\lambda (H0: (getl i c0 (CHead d (Bind 
+Abst) v))).(\lambda (w: T).(\lambda (H1: (sty0 g d v w)).(\lambda (H2: (ex2 T 
+(\lambda (t2: T).(sty1 g d v t2)) (\lambda (t2: T).(cnt t2)))).(let H3 \def 
+H2 in (ex2_ind T (\lambda (t2: T).(sty1 g d v t2)) (\lambda (t2: T).(cnt t2)) 
+(ex2 T (\lambda (t2: T).(sty1 g c0 (TLRef i) t2)) (\lambda (t2: T).(cnt t2))) 
+(\lambda (x: T).(\lambda (H4: (sty1 g d v x)).(\lambda (H5: (cnt 
+x)).(ex_intro2 T (\lambda (t2: T).(sty1 g c0 (TLRef i) t2)) (\lambda (t2: 
+T).(cnt t2)) (lift (S i) O x) (sty1_trans g c0 (TLRef i) (lift (S i) O v) 
+(sty1_sty0 g c0 (TLRef i) (lift (S i) O v) (sty0_abst g c0 d v i H0 w H1)) 
+(lift (S i) O x) (sty1_lift g d v x H4 c0 (S i) O (getl_drop Abst c0 d v i 
+H0))) (cnt_lift x H5 (S i) O))))) H3)))))))))) (\lambda (b: B).(\lambda (c0: 
 C).(\lambda (v: T).(\lambda (t2: T).(\lambda (t3: T).(\lambda (_: (sty0 g 
 (CHead c0 (Bind b) v) t2 t3)).(\lambda (H1: (ex2 T (\lambda (t4: T).(sty1 g 
 (CHead c0 (Bind b) v) t2 t4)) (\lambda (t4: T).(cnt t4)))).(let H2 \def H1 in 
-(let TMP_64 \def (\lambda (t4: T).(let TMP_62 \def (Bind b) in (let TMP_63 
-\def (CHead c0 TMP_62 v) in (sty1 g TMP_63 t2 t4)))) in (let TMP_65 \def 
-(\lambda (t4: T).(cnt t4)) in (let TMP_68 \def (\lambda (t4: T).(let TMP_66 
-\def (Bind b) in (let TMP_67 \def (THead TMP_66 v t2) in (sty1 g c0 TMP_67 
-t4)))) in (let TMP_69 \def (\lambda (t4: T).(cnt t4)) in (let TMP_70 \def 
-(ex2 T TMP_68 TMP_69) in (let TMP_80 \def (\lambda (x: T).(\lambda (H3: (sty1 
-g (CHead c0 (Bind b) v) t2 x)).(\lambda (H4: (cnt x)).(let TMP_73 \def 
-(\lambda (t4: T).(let TMP_71 \def (Bind b) in (let TMP_72 \def (THead TMP_71 
-v t2) in (sty1 g c0 TMP_72 t4)))) in (let TMP_74 \def (\lambda (t4: T).(cnt 
-t4)) in (let TMP_75 \def (Bind b) in (let TMP_76 \def (THead TMP_75 v x) in 
-(let TMP_77 \def (sty1_bind g b c0 v t2 x H3) in (let TMP_78 \def (Bind b) in 
-(let TMP_79 \def (cnt_head x H4 TMP_78 v) in (ex_intro2 T TMP_73 TMP_74 
-TMP_76 TMP_77 TMP_79))))))))))) in (ex2_ind T TMP_64 TMP_65 TMP_70 TMP_80 
-H2))))))))))))))) in (let TMP_99 \def (\lambda (c0: C).(\lambda (v: 
-T).(\lambda (t2: T).(\lambda (t3: T).(\lambda (_: (sty0 g c0 t2 t3)).(\lambda 
-(H1: (ex2 T (\lambda (t4: T).(sty1 g c0 t2 t4)) (\lambda (t4: T).(cnt 
-t4)))).(let H2 \def H1 in (let TMP_82 \def (\lambda (t4: T).(sty1 g c0 t2 
-t4)) in (let TMP_83 \def (\lambda (t4: T).(cnt t4)) in (let TMP_86 \def 
-(\lambda (t4: T).(let TMP_84 \def (Flat Appl) in (let TMP_85 \def (THead 
-TMP_84 v t2) in (sty1 g c0 TMP_85 t4)))) in (let TMP_87 \def (\lambda (t4: 
-T).(cnt t4)) in (let TMP_88 \def (ex2 T TMP_86 TMP_87) in (let TMP_98 \def 
-(\lambda (x: T).(\lambda (H3: (sty1 g c0 t2 x)).(\lambda (H4: (cnt x)).(let 
-TMP_91 \def (\lambda (t4: T).(let TMP_89 \def (Flat Appl) in (let TMP_90 \def 
-(THead TMP_89 v t2) in (sty1 g c0 TMP_90 t4)))) in (let TMP_92 \def (\lambda 
-(t4: T).(cnt t4)) in (let TMP_93 \def (Flat Appl) in (let TMP_94 \def (THead 
-TMP_93 v x) in (let TMP_95 \def (sty1_appl g c0 v t2 x H3) in (let TMP_96 
-\def (Flat Appl) in (let TMP_97 \def (cnt_head x H4 TMP_96 v) in (ex_intro2 T 
-TMP_91 TMP_92 TMP_94 TMP_95 TMP_97))))))))))) in (ex2_ind T TMP_82 TMP_83 
-TMP_88 TMP_98 H2)))))))))))))) in (let TMP_128 \def (\lambda (c0: C).(\lambda 
-(v1: T).(\lambda (v2: T).(\lambda (H0: (sty0 g c0 v1 v2)).(\lambda (_: (ex2 T 
-(\lambda (t2: T).(sty1 g c0 v1 t2)) (\lambda (t2: T).(cnt t2)))).(\lambda 
-(t2: T).(\lambda (t3: T).(\lambda (_: (sty0 g c0 t2 t3)).(\lambda (H3: (ex2 T 
-(\lambda (t4: T).(sty1 g c0 t2 t4)) (\lambda (t4: T).(cnt t4)))).(let H4 \def 
-H3 in (let TMP_100 \def (\lambda (t4: T).(sty1 g c0 t2 t4)) in (let TMP_101 
-\def (\lambda (t4: T).(cnt t4)) in (let TMP_104 \def (\lambda (t4: T).(let 
-TMP_102 \def (Flat Cast) in (let TMP_103 \def (THead TMP_102 v1 t2) in (sty1 
-g c0 TMP_103 t4)))) in (let TMP_105 \def (\lambda (t4: T).(cnt t4)) in (let 
-TMP_106 \def (ex2 T TMP_104 TMP_105) in (let TMP_127 \def (\lambda (x: 
-T).(\lambda (H5: (sty1 g c0 t2 x)).(\lambda (H6: (cnt x)).(let H_x \def 
-(sty1_cast2 g c0 t2 x H5 v1 v2 H0) in (let H7 \def H_x in (let TMP_107 \def 
-(\lambda (v3: T).(sty1 g c0 v1 v3)) in (let TMP_112 \def (\lambda (v3: 
-T).(let TMP_108 \def (Flat Cast) in (let TMP_109 \def (THead TMP_108 v1 t2) 
-in (let TMP_110 \def (Flat Cast) in (let TMP_111 \def (THead TMP_110 v3 x) in 
-(sty1 g c0 TMP_109 TMP_111)))))) in (let TMP_115 \def (\lambda (t4: T).(let 
-TMP_113 \def (Flat Cast) in (let TMP_114 \def (THead TMP_113 v1 t2) in (sty1 
-g c0 TMP_114 t4)))) in (let TMP_116 \def (\lambda (t4: T).(cnt t4)) in (let 
-TMP_117 \def (ex2 T TMP_115 TMP_116) in (let TMP_126 \def (\lambda (x0: 
-T).(\lambda (_: (sty1 g c0 v1 x0)).(\lambda (H9: (sty1 g c0 (THead (Flat 
-Cast) v1 t2) (THead (Flat Cast) x0 x))).(let TMP_120 \def (\lambda (t4: 
-T).(let TMP_118 \def (Flat Cast) in (let TMP_119 \def (THead TMP_118 v1 t2) 
-in (sty1 g c0 TMP_119 t4)))) in (let TMP_121 \def (\lambda (t4: T).(cnt t4)) 
-in (let TMP_122 \def (Flat Cast) in (let TMP_123 \def (THead TMP_122 x0 x) in 
-(let TMP_124 \def (Flat Cast) in (let TMP_125 \def (cnt_head x H6 TMP_124 x0) 
-in (ex_intro2 T TMP_120 TMP_121 TMP_123 H9 TMP_125)))))))))) in (ex2_ind T 
-TMP_107 TMP_112 TMP_117 TMP_126 H7)))))))))))) in (ex2_ind T TMP_100 TMP_101 
-TMP_106 TMP_127 H4))))))))))))))))) in (sty0_ind g TMP_3 TMP_16 TMP_32 TMP_61 
-TMP_81 TMP_99 TMP_128 c t1 t H)))))))))))).
+(ex2_ind T (\lambda (t4: T).(sty1 g (CHead c0 (Bind b) v) t2 t4)) (\lambda 
+(t4: T).(cnt t4)) (ex2 T (\lambda (t4: T).(sty1 g c0 (THead (Bind b) v t2) 
+t4)) (\lambda (t4: T).(cnt t4))) (\lambda (x: T).(\lambda (H3: (sty1 g (CHead 
+c0 (Bind b) v) t2 x)).(\lambda (H4: (cnt x)).(ex_intro2 T (\lambda (t4: 
+T).(sty1 g c0 (THead (Bind b) v t2) t4)) (\lambda (t4: T).(cnt t4)) (THead 
+(Bind b) v x) (sty1_bind g b c0 v t2 x H3) (cnt_head x H4 (Bind b) v))))) 
+H2))))))))) (\lambda (c0: C).(\lambda (v: T).(\lambda (t2: T).(\lambda (t3: 
+T).(\lambda (_: (sty0 g c0 t2 t3)).(\lambda (H1: (ex2 T (\lambda (t4: 
+T).(sty1 g c0 t2 t4)) (\lambda (t4: T).(cnt t4)))).(let H2 \def H1 in 
+(ex2_ind T (\lambda (t4: T).(sty1 g c0 t2 t4)) (\lambda (t4: T).(cnt t4)) 
+(ex2 T (\lambda (t4: T).(sty1 g c0 (THead (Flat Appl) v t2) t4)) (\lambda 
+(t4: T).(cnt t4))) (\lambda (x: T).(\lambda (H3: (sty1 g c0 t2 x)).(\lambda 
+(H4: (cnt x)).(ex_intro2 T (\lambda (t4: T).(sty1 g c0 (THead (Flat Appl) v 
+t2) t4)) (\lambda (t4: T).(cnt t4)) (THead (Flat Appl) v x) (sty1_appl g c0 v 
+t2 x H3) (cnt_head x H4 (Flat Appl) v))))) H2)))))))) (\lambda (c0: 
+C).(\lambda (v1: T).(\lambda (v2: T).(\lambda (H0: (sty0 g c0 v1 
+v2)).(\lambda (_: (ex2 T (\lambda (t2: T).(sty1 g c0 v1 t2)) (\lambda (t2: 
+T).(cnt t2)))).(\lambda (t2: T).(\lambda (t3: T).(\lambda (_: (sty0 g c0 t2 
+t3)).(\lambda (H3: (ex2 T (\lambda (t4: T).(sty1 g c0 t2 t4)) (\lambda (t4: 
+T).(cnt t4)))).(let H4 \def H3 in (ex2_ind T (\lambda (t4: T).(sty1 g c0 t2 
+t4)) (\lambda (t4: T).(cnt t4)) (ex2 T (\lambda (t4: T).(sty1 g c0 (THead 
+(Flat Cast) v1 t2) t4)) (\lambda (t4: T).(cnt t4))) (\lambda (x: T).(\lambda 
+(H5: (sty1 g c0 t2 x)).(\lambda (H6: (cnt x)).(let H_x \def (sty1_cast2 g c0 
+t2 x H5 v1 v2 H0) in (let H7 \def H_x in (ex2_ind T (\lambda (v3: T).(sty1 g 
+c0 v1 v3)) (\lambda (v3: T).(sty1 g c0 (THead (Flat Cast) v1 t2) (THead (Flat 
+Cast) v3 x))) (ex2 T (\lambda (t4: T).(sty1 g c0 (THead (Flat Cast) v1 t2) 
+t4)) (\lambda (t4: T).(cnt t4))) (\lambda (x0: T).(\lambda (_: (sty1 g c0 v1 
+x0)).(\lambda (H9: (sty1 g c0 (THead (Flat Cast) v1 t2) (THead (Flat Cast) x0 
+x))).(ex_intro2 T (\lambda (t4: T).(sty1 g c0 (THead (Flat Cast) v1 t2) t4)) 
+(\lambda (t4: T).(cnt t4)) (THead (Flat Cast) x0 x) H9 (cnt_head x H6 (Flat 
+Cast) x0))))) H7)))))) H4))))))))))) c t1 t H))))).
 
index 86a54c777a6a55c1f4185cc3c7891d3d113b2652..bf89e1618a94e2a321242a0ea3be22a83a744e4e 100644 (file)
 include "basic_1/lift/defs.ma".
 
 let rec subst (d: nat) (v: T) (t: T) on t: T \def match t with [(TSort n) 
-\Rightarrow (TSort n) | (TLRef i) \Rightarrow (let TMP_4 \def (blt i d) in 
-(match TMP_4 with [true \Rightarrow (TLRef i) | false \Rightarrow (let TMP_5 
-\def (blt d i) in (match TMP_5 with [true \Rightarrow (let TMP_6 \def (pred 
-i) in (TLRef TMP_6)) | false \Rightarrow (lift d O v)]))])) | (THead k u t0) 
-\Rightarrow (let TMP_1 \def (subst d v u) in (let TMP_2 \def (s k d) in (let 
-TMP_3 \def (subst TMP_2 v t0) in (THead k TMP_1 TMP_3))))].
+\Rightarrow (TSort n) | (TLRef i) \Rightarrow (match (blt i d) with [true 
+\Rightarrow (TLRef i) | false \Rightarrow (match (blt d i) with [true 
+\Rightarrow (TLRef (pred i)) | false \Rightarrow (lift d O v)])]) | (THead k 
+u t0) \Rightarrow (THead k (subst d v u) (subst (s k d) v t0))].
 
index c891a6b59452f874ac3601ff9a7ec7e3570f4cc8..fe6e5d3d117094d8bf1699645f82a982455f9faa 100644 (file)
@@ -22,53 +22,39 @@ theorem subst_sort:
  \forall (v: T).(\forall (d: nat).(\forall (k: nat).(eq T (subst d v (TSort 
 k)) (TSort k))))
 \def
- \lambda (_: T).(\lambda (_: nat).(\lambda (k: nat).(let TMP_1 \def (TSort k) 
-in (refl_equal T TMP_1)))).
+ \lambda (_: T).(\lambda (_: nat).(\lambda (k: nat).(refl_equal T (TSort 
+k)))).
 
 theorem subst_lref_lt:
  \forall (v: T).(\forall (d: nat).(\forall (i: nat).((lt i d) \to (eq T 
 (subst d v (TLRef i)) (TLRef i)))))
 \def
  \lambda (v: T).(\lambda (d: nat).(\lambda (i: nat).(\lambda (H: (lt i 
-d)).(let TMP_5 \def (\lambda (b: bool).(let TMP_3 \def (match b with [true 
-\Rightarrow (TLRef i) | false \Rightarrow (let TMP_1 \def (blt d i) in (match 
-TMP_1 with [true \Rightarrow (let TMP_2 \def (pred i) in (TLRef TMP_2)) | 
-false \Rightarrow (lift d O v)]))]) in (let TMP_4 \def (TLRef i) in (eq T 
-TMP_3 TMP_4)))) in (let TMP_6 \def (TLRef i) in (let TMP_7 \def (refl_equal T 
-TMP_6) in (let TMP_8 \def (blt i d) in (let TMP_9 \def (lt_blt d i H) in 
-(eq_ind_r bool true TMP_5 TMP_7 TMP_8 TMP_9))))))))).
+d)).(eq_ind_r bool true (\lambda (b: bool).(eq T (match b with [true 
+\Rightarrow (TLRef i) | false \Rightarrow (match (blt d i) with [true 
+\Rightarrow (TLRef (pred i)) | false \Rightarrow (lift d O v)])]) (TLRef i))) 
+(refl_equal T (TLRef i)) (blt i d) (lt_blt d i H))))).
 
 theorem subst_lref_eq:
  \forall (v: T).(\forall (i: nat).(eq T (subst i v (TLRef i)) (lift i O v)))
 \def
- \lambda (v: T).(\lambda (i: nat).(let TMP_4 \def (\lambda (b: bool).(let 
-TMP_2 \def (match b with [true \Rightarrow (TLRef i) | false \Rightarrow 
-(match b with [true \Rightarrow (let TMP_1 \def (pred i) in (TLRef TMP_1)) | 
-false \Rightarrow (lift i O v)])]) in (let TMP_3 \def (lift i O v) in (eq T 
-TMP_2 TMP_3)))) in (let TMP_5 \def (lift i O v) in (let TMP_6 \def 
-(refl_equal T TMP_5) in (let TMP_7 \def (blt i i) in (let TMP_8 \def (le_n i) 
-in (let TMP_9 \def (le_bge i i TMP_8) in (eq_ind_r bool false TMP_4 TMP_6 
-TMP_7 TMP_9)))))))).
+ \lambda (v: T).(\lambda (i: nat).(eq_ind_r bool false (\lambda (b: bool).(eq 
+T (match b with [true \Rightarrow (TLRef i) | false \Rightarrow (match b with 
+[true \Rightarrow (TLRef (pred i)) | false \Rightarrow (lift i O v)])]) (lift 
+i O v))) (refl_equal T (lift i O v)) (blt i i) (le_bge i i (le_n i)))).
 
 theorem subst_lref_gt:
  \forall (v: T).(\forall (d: nat).(\forall (i: nat).((lt d i) \to (eq T 
 (subst d v (TLRef i)) (TLRef (pred i))))))
 \def
  \lambda (v: T).(\lambda (d: nat).(\lambda (i: nat).(\lambda (H: (lt d 
-i)).(let TMP_6 \def (\lambda (b: bool).(let TMP_3 \def (match b with [true 
-\Rightarrow (TLRef i) | false \Rightarrow (let TMP_1 \def (blt d i) in (match 
-TMP_1 with [true \Rightarrow (let TMP_2 \def (pred i) in (TLRef TMP_2)) | 
-false \Rightarrow (lift d O v)]))]) in (let TMP_4 \def (pred i) in (let TMP_5 
-\def (TLRef TMP_4) in (eq T TMP_3 TMP_5))))) in (let TMP_11 \def (\lambda (b: 
-bool).(let TMP_8 \def (match b with [true \Rightarrow (let TMP_7 \def (pred 
-i) in (TLRef TMP_7)) | false \Rightarrow (lift d O v)]) in (let TMP_9 \def 
-(pred i) in (let TMP_10 \def (TLRef TMP_9) in (eq T TMP_8 TMP_10))))) in (let 
-TMP_12 \def (pred i) in (let TMP_13 \def (TLRef TMP_12) in (let TMP_14 \def 
-(refl_equal T TMP_13) in (let TMP_15 \def (blt d i) in (let TMP_16 \def 
-(lt_blt i d H) in (let TMP_17 \def (eq_ind_r bool true TMP_11 TMP_14 TMP_15 
-TMP_16) in (let TMP_18 \def (blt i d) in (let TMP_19 \def (lt_le_weak d i H) 
-in (let TMP_20 \def (le_bge d i TMP_19) in (eq_ind_r bool false TMP_6 TMP_17 
-TMP_18 TMP_20))))))))))))))).
+i)).(eq_ind_r bool false (\lambda (b: bool).(eq T (match b with [true 
+\Rightarrow (TLRef i) | false \Rightarrow (match (blt d i) with [true 
+\Rightarrow (TLRef (pred i)) | false \Rightarrow (lift d O v)])]) (TLRef 
+(pred i)))) (eq_ind_r bool true (\lambda (b: bool).(eq T (match b with [true 
+\Rightarrow (TLRef (pred i)) | false \Rightarrow (lift d O v)]) (TLRef (pred 
+i)))) (refl_equal T (TLRef (pred i))) (blt d i) (lt_blt i d H)) (blt i d) 
+(le_bge d i (lt_le_weak d i H)))))).
 
 theorem subst_head:
  \forall (k: K).(\forall (w: T).(\forall (u: T).(\forall (t: T).(\forall (d: 
@@ -76,236 +62,96 @@ nat).(eq T (subst d w (THead k u t)) (THead k (subst d w u) (subst (s k d) w
 t)))))))
 \def
  \lambda (k: K).(\lambda (w: T).(\lambda (u: T).(\lambda (t: T).(\lambda (d: 
-nat).(let TMP_1 \def (subst d w u) in (let TMP_2 \def (s k d) in (let TMP_3 
-\def (subst TMP_2 w t) in (let TMP_4 \def (THead k TMP_1 TMP_3) in 
-(refl_equal T TMP_4))))))))).
+nat).(refl_equal T (THead k (subst d w u) (subst (s k d) w t))))))).
 
 theorem subst_lift_SO:
  \forall (v: T).(\forall (t: T).(\forall (d: nat).(eq T (subst d v (lift (S 
 O) d t)) t)))
 \def
- \lambda (v: T).(\lambda (t: T).(let TMP_4 \def (\lambda (t0: T).(\forall (d: 
-nat).(let TMP_1 \def (S O) in (let TMP_2 \def (lift TMP_1 d t0) in (let TMP_3 
-\def (subst d v TMP_2) in (eq T TMP_3 t0)))))) in (let TMP_23 \def (\lambda 
-(n: nat).(\lambda (d: nat).(let TMP_5 \def (TSort n) in (let TMP_8 \def 
-(\lambda (t0: T).(let TMP_6 \def (subst d v t0) in (let TMP_7 \def (TSort n) 
-in (eq T TMP_6 TMP_7)))) in (let TMP_9 \def (TSort n) in (let TMP_11 \def 
-(\lambda (t0: T).(let TMP_10 \def (TSort n) in (eq T t0 TMP_10))) in (let 
-TMP_12 \def (TSort n) in (let TMP_13 \def (refl_equal T TMP_12) in (let 
-TMP_14 \def (TSort n) in (let TMP_15 \def (subst d v TMP_14) in (let TMP_16 
-\def (subst_sort v d n) in (let TMP_17 \def (eq_ind_r T TMP_9 TMP_11 TMP_13 
-TMP_15 TMP_16) in (let TMP_18 \def (S O) in (let TMP_19 \def (TSort n) in 
-(let TMP_20 \def (lift TMP_18 d TMP_19) in (let TMP_21 \def (S O) in (let 
-TMP_22 \def (lift_sort n TMP_21 d) in (eq_ind_r T TMP_5 TMP_8 TMP_17 TMP_20 
-TMP_22)))))))))))))))))) in (let TMP_103 \def (\lambda (n: nat).(\lambda (d: 
-nat).(let TMP_24 \def (S O) in (let TMP_25 \def (TLRef n) in (let TMP_26 \def 
-(lift TMP_24 d TMP_25) in (let TMP_27 \def (subst d v TMP_26) in (let TMP_28 
-\def (TLRef n) in (let TMP_29 \def (eq T TMP_27 TMP_28) in (let TMP_48 \def 
-(\lambda (H: (lt n d)).(let TMP_30 \def (TLRef n) in (let TMP_33 \def 
-(\lambda (t0: T).(let TMP_31 \def (subst d v t0) in (let TMP_32 \def (TLRef 
-n) in (eq T TMP_31 TMP_32)))) in (let TMP_34 \def (TLRef n) in (let TMP_36 
-\def (\lambda (t0: T).(let TMP_35 \def (TLRef n) in (eq T t0 TMP_35))) in 
-(let TMP_37 \def (TLRef n) in (let TMP_38 \def (refl_equal T TMP_37) in (let 
-TMP_39 \def (TLRef n) in (let TMP_40 \def (subst d v TMP_39) in (let TMP_41 
-\def (subst_lref_lt v d n H) in (let TMP_42 \def (eq_ind_r T TMP_34 TMP_36 
-TMP_38 TMP_40 TMP_41) in (let TMP_43 \def (S O) in (let TMP_44 \def (TLRef n) 
-in (let TMP_45 \def (lift TMP_43 d TMP_44) in (let TMP_46 \def (S O) in (let 
-TMP_47 \def (lift_lref_lt n TMP_46 d H) in (eq_ind_r T TMP_30 TMP_33 TMP_42 
-TMP_45 TMP_47))))))))))))))))) in (let TMP_102 \def (\lambda (H: (le d 
-n)).(let TMP_49 \def (S O) in (let TMP_50 \def (plus n TMP_49) in (let TMP_51 
-\def (TLRef TMP_50) in (let TMP_54 \def (\lambda (t0: T).(let TMP_52 \def 
-(subst d v t0) in (let TMP_53 \def (TLRef n) in (eq T TMP_52 TMP_53)))) in 
-(let TMP_55 \def (plus n O) in (let TMP_56 \def (S TMP_55) in (let TMP_60 
-\def (\lambda (n0: nat).(let TMP_57 \def (TLRef n0) in (let TMP_58 \def 
-(subst d v TMP_57) in (let TMP_59 \def (TLRef n) in (eq T TMP_58 TMP_59))))) 
-in (let TMP_61 \def (plus n O) in (let TMP_62 \def (S TMP_61) in (let TMP_63 
-\def (pred TMP_62) in (let TMP_64 \def (TLRef TMP_63) in (let TMP_66 \def 
-(\lambda (t0: T).(let TMP_65 \def (TLRef n) in (eq T t0 TMP_65))) in (let 
-TMP_67 \def (plus n O) in (let TMP_70 \def (\lambda (n0: nat).(let TMP_68 
-\def (TLRef n0) in (let TMP_69 \def (TLRef n) in (eq T TMP_68 TMP_69)))) in 
-(let TMP_71 \def (plus n O) in (let TMP_72 \def (plus n O) in (let TMP_73 
-\def (plus_n_O n) in (let TMP_74 \def (sym_eq nat n TMP_72 TMP_73) in (let 
-TMP_75 \def (f_equal nat T TLRef TMP_71 n TMP_74) in (let TMP_76 \def (plus n 
-O) in (let TMP_77 \def (S TMP_76) in (let TMP_78 \def (pred TMP_77) in (let 
-TMP_79 \def (plus n O) in (let TMP_80 \def (pred_Sn TMP_79) in (let TMP_81 
-\def (eq_ind nat TMP_67 TMP_70 TMP_75 TMP_78 TMP_80) in (let TMP_82 \def 
-(plus n O) in (let TMP_83 \def (S TMP_82) in (let TMP_84 \def (TLRef TMP_83) 
-in (let TMP_85 \def (subst d v TMP_84) in (let TMP_86 \def (plus n O) in (let 
-TMP_87 \def (S TMP_86) in (let TMP_88 \def (plus n O) in (let TMP_89 \def 
-(le_plus_trans d n O H) in (let TMP_90 \def (le_n_S d TMP_88 TMP_89) in (let 
-TMP_91 \def (subst_lref_gt v d TMP_87 TMP_90) in (let TMP_92 \def (eq_ind_r T 
-TMP_64 TMP_66 TMP_81 TMP_85 TMP_91) in (let TMP_93 \def (S O) in (let TMP_94 
-\def (plus n TMP_93) in (let TMP_95 \def (plus_n_Sm n O) in (let TMP_96 \def 
-(eq_ind nat TMP_56 TMP_60 TMP_92 TMP_94 TMP_95) in (let TMP_97 \def (S O) in 
-(let TMP_98 \def (TLRef n) in (let TMP_99 \def (lift TMP_97 d TMP_98) in (let 
-TMP_100 \def (S O) in (let TMP_101 \def (lift_lref_ge n TMP_100 d H) in 
-(eq_ind_r T TMP_51 TMP_54 TMP_96 TMP_99 
-TMP_101))))))))))))))))))))))))))))))))))))))))))))))) in (lt_le_e n d TMP_29 
-TMP_48 TMP_102))))))))))) in (let TMP_178 \def (\lambda (k: K).(\lambda (t0: 
+ \lambda (v: T).(\lambda (t: T).(T_ind (\lambda (t0: T).(\forall (d: nat).(eq 
+T (subst d v (lift (S O) d t0)) t0))) (\lambda (n: nat).(\lambda (d: 
+nat).(eq_ind_r T (TSort n) (\lambda (t0: T).(eq T (subst d v t0) (TSort n))) 
+(eq_ind_r T (TSort n) (\lambda (t0: T).(eq T t0 (TSort n))) (refl_equal T 
+(TSort n)) (subst d v (TSort n)) (subst_sort v d n)) (lift (S O) d (TSort n)) 
+(lift_sort n (S O) d)))) (\lambda (n: nat).(\lambda (d: nat).(lt_le_e n d (eq 
+T (subst d v (lift (S O) d (TLRef n))) (TLRef n)) (\lambda (H: (lt n 
+d)).(eq_ind_r T (TLRef n) (\lambda (t0: T).(eq T (subst d v t0) (TLRef n))) 
+(eq_ind_r T (TLRef n) (\lambda (t0: T).(eq T t0 (TLRef n))) (refl_equal T 
+(TLRef n)) (subst d v (TLRef n)) (subst_lref_lt v d n H)) (lift (S O) d 
+(TLRef n)) (lift_lref_lt n (S O) d H))) (\lambda (H: (le d n)).(eq_ind_r T 
+(TLRef (plus n (S O))) (\lambda (t0: T).(eq T (subst d v t0) (TLRef n))) 
+(eq_ind nat (S (plus n O)) (\lambda (n0: nat).(eq T (subst d v (TLRef n0)) 
+(TLRef n))) (eq_ind_r T (TLRef (pred (S (plus n O)))) (\lambda (t0: T).(eq T 
+t0 (TLRef n))) (eq_ind nat (plus n O) (\lambda (n0: nat).(eq T (TLRef n0) 
+(TLRef n))) (f_equal nat T TLRef (plus n O) n (sym_eq nat n (plus n O) 
+(plus_n_O n))) (pred (S (plus n O))) (pred_Sn (plus n O))) (subst d v (TLRef 
+(S (plus n O)))) (subst_lref_gt v d (S (plus n O)) (le_n_S d (plus n O) 
+(le_plus_trans d n O H)))) (plus n (S O)) (plus_n_Sm n O)) (lift (S O) d 
+(TLRef n)) (lift_lref_ge n (S O) d H)))))) (\lambda (k: K).(\lambda (t0: 
 T).(\lambda (H: ((\forall (d: nat).(eq T (subst d v (lift (S O) d t0)) 
 t0)))).(\lambda (t1: T).(\lambda (H0: ((\forall (d: nat).(eq T (subst d v 
-(lift (S O) d t1)) t1)))).(\lambda (d: nat).(let TMP_104 \def (S O) in (let 
-TMP_105 \def (lift TMP_104 d t0) in (let TMP_106 \def (S O) in (let TMP_107 
-\def (s k d) in (let TMP_108 \def (lift TMP_106 TMP_107 t1) in (let TMP_109 
-\def (THead k TMP_105 TMP_108) in (let TMP_112 \def (\lambda (t2: T).(let 
-TMP_110 \def (subst d v t2) in (let TMP_111 \def (THead k t0 t1) in (eq T 
-TMP_110 TMP_111)))) in (let TMP_113 \def (S O) in (let TMP_114 \def (lift 
-TMP_113 d t0) in (let TMP_115 \def (subst d v TMP_114) in (let TMP_116 \def 
-(s k d) in (let TMP_117 \def (S O) in (let TMP_118 \def (s k d) in (let 
-TMP_119 \def (lift TMP_117 TMP_118 t1) in (let TMP_120 \def (subst TMP_116 v 
-TMP_119) in (let TMP_121 \def (THead k TMP_115 TMP_120) in (let TMP_123 \def 
-(\lambda (t2: T).(let TMP_122 \def (THead k t0 t1) in (eq T t2 TMP_122))) in 
-(let TMP_124 \def (THead k t0 t1) in (let TMP_125 \def (S O) in (let TMP_126 
-\def (lift TMP_125 d t0) in (let TMP_127 \def (subst d v TMP_126) in (let 
-TMP_128 \def (s k d) in (let TMP_129 \def (S O) in (let TMP_130 \def (s k d) 
-in (let TMP_131 \def (lift TMP_129 TMP_130 t1) in (let TMP_132 \def (subst 
-TMP_128 v TMP_131) in (let TMP_133 \def (THead k TMP_127 TMP_132) in (let 
-TMP_134 \def (S O) in (let TMP_135 \def (lift TMP_134 d t0) in (let TMP_136 
-\def (subst d v TMP_135) in (let TMP_137 \def (s k d) in (let TMP_138 \def (S 
-O) in (let TMP_139 \def (s k d) in (let TMP_140 \def (lift TMP_138 TMP_139 
-t1) in (let TMP_141 \def (subst TMP_137 v TMP_140) in (let TMP_142 \def 
-(THead k TMP_136 TMP_141) in (let TMP_143 \def (THead k t0 t1) in (let 
-TMP_144 \def (S O) in (let TMP_145 \def (lift TMP_144 d t0) in (let TMP_146 
-\def (subst d v TMP_145) in (let TMP_147 \def (s k d) in (let TMP_148 \def (S 
-O) in (let TMP_149 \def (s k d) in (let TMP_150 \def (lift TMP_148 TMP_149 
-t1) in (let TMP_151 \def (subst TMP_147 v TMP_150) in (let TMP_152 \def 
-(refl_equal K k) in (let TMP_153 \def (H d) in (let TMP_154 \def (s k d) in 
-(let TMP_155 \def (H0 TMP_154) in (let TMP_156 \def (f_equal3 K T T T THead k 
-k TMP_146 t0 TMP_151 t1 TMP_152 TMP_153 TMP_155) in (let TMP_157 \def (sym_eq 
-T TMP_142 TMP_143 TMP_156) in (let TMP_158 \def (sym_eq T TMP_124 TMP_133 
-TMP_157) in (let TMP_159 \def (S O) in (let TMP_160 \def (lift TMP_159 d t0) 
-in (let TMP_161 \def (S O) in (let TMP_162 \def (s k d) in (let TMP_163 \def 
-(lift TMP_161 TMP_162 t1) in (let TMP_164 \def (THead k TMP_160 TMP_163) in 
-(let TMP_165 \def (subst d v TMP_164) in (let TMP_166 \def (S O) in (let 
-TMP_167 \def (lift TMP_166 d t0) in (let TMP_168 \def (S O) in (let TMP_169 
-\def (s k d) in (let TMP_170 \def (lift TMP_168 TMP_169 t1) in (let TMP_171 
-\def (subst_head k v TMP_167 TMP_170 d) in (let TMP_172 \def (eq_ind_r T 
-TMP_121 TMP_123 TMP_158 TMP_165 TMP_171) in (let TMP_173 \def (S O) in (let 
-TMP_174 \def (THead k t0 t1) in (let TMP_175 \def (lift TMP_173 d TMP_174) in 
-(let TMP_176 \def (S O) in (let TMP_177 \def (lift_head k t0 t1 TMP_176 d) in 
-(eq_ind_r T TMP_109 TMP_112 TMP_172 TMP_175 
-TMP_177)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
-))))))) in (T_ind TMP_4 TMP_23 TMP_103 TMP_178 t)))))).
+(lift (S O) d t1)) t1)))).(\lambda (d: nat).(eq_ind_r T (THead k (lift (S O) 
+d t0) (lift (S O) (s k d) t1)) (\lambda (t2: T).(eq T (subst d v t2) (THead k 
+t0 t1))) (eq_ind_r T (THead k (subst d v (lift (S O) d t0)) (subst (s k d) v 
+(lift (S O) (s k d) t1))) (\lambda (t2: T).(eq T t2 (THead k t0 t1))) (sym_eq 
+T (THead k t0 t1) (THead k (subst d v (lift (S O) d t0)) (subst (s k d) v 
+(lift (S O) (s k d) t1))) (sym_eq T (THead k (subst d v (lift (S O) d t0)) 
+(subst (s k d) v (lift (S O) (s k d) t1))) (THead k t0 t1) (f_equal3 K T T T 
+THead k k (subst d v (lift (S O) d t0)) t0 (subst (s k d) v (lift (S O) (s k 
+d) t1)) t1 (refl_equal K k) (H d) (H0 (s k d))))) (subst d v (THead k (lift 
+(S O) d t0) (lift (S O) (s k d) t1))) (subst_head k v (lift (S O) d t0) (lift 
+(S O) (s k d) t1) d)) (lift (S O) d (THead k t0 t1)) (lift_head k t0 t1 (S O) 
+d)))))))) t)).
 
 theorem subst_subst0:
  \forall (v: T).(\forall (t1: T).(\forall (t2: T).(\forall (d: nat).((subst0 
 d v t1 t2) \to (eq T (subst d v t1) (subst d v t2))))))
 \def
  \lambda (v: T).(\lambda (t1: T).(\lambda (t2: T).(\lambda (d: nat).(\lambda 
-(H: (subst0 d v t1 t2)).(let TMP_3 \def (\lambda (n: nat).(\lambda (t: 
-T).(\lambda (t0: T).(\lambda (t3: T).(let TMP_1 \def (subst n t t0) in (let 
-TMP_2 \def (subst n t t3) in (eq T TMP_1 TMP_2))))))) in (let TMP_49 \def 
-(\lambda (v0: T).(\lambda (i: nat).(let TMP_4 \def (lift i O v0) in (let 
-TMP_8 \def (\lambda (t: T).(let TMP_5 \def (S i) in (let TMP_6 \def (lift 
-TMP_5 O v0) in (let TMP_7 \def (subst i v0 TMP_6) in (eq T t TMP_7))))) in 
-(let TMP_9 \def (S O) in (let TMP_10 \def (plus TMP_9 i) in (let TMP_14 \def 
-(\lambda (n: nat).(let TMP_11 \def (lift i O v0) in (let TMP_12 \def (lift n 
-O v0) in (let TMP_13 \def (subst i v0 TMP_12) in (eq T TMP_11 TMP_13))))) in 
-(let TMP_15 \def (S O) in (let TMP_16 \def (lift i O v0) in (let TMP_17 \def 
-(lift TMP_15 i TMP_16) in (let TMP_20 \def (\lambda (t: T).(let TMP_18 \def 
-(lift i O v0) in (let TMP_19 \def (subst i v0 t) in (eq T TMP_18 TMP_19)))) 
-in (let TMP_21 \def (lift i O v0) in (let TMP_23 \def (\lambda (t: T).(let 
-TMP_22 \def (lift i O v0) in (eq T TMP_22 t))) in (let TMP_24 \def (lift i O 
-v0) in (let TMP_25 \def (refl_equal T TMP_24) in (let TMP_26 \def (S O) in 
-(let TMP_27 \def (lift i O v0) in (let TMP_28 \def (lift TMP_26 i TMP_27) in 
-(let TMP_29 \def (subst i v0 TMP_28) in (let TMP_30 \def (lift i O v0) in 
-(let TMP_31 \def (subst_lift_SO v0 TMP_30 i) in (let TMP_32 \def (eq_ind_r T 
-TMP_21 TMP_23 TMP_25 TMP_29 TMP_31) in (let TMP_33 \def (S O) in (let TMP_34 
-\def (plus TMP_33 i) in (let TMP_35 \def (lift TMP_34 O v0) in (let TMP_36 
-\def (S O) in (let TMP_37 \def (plus O i) in (let TMP_38 \def (le_n TMP_37) 
-in (let TMP_39 \def (le_O_n i) in (let TMP_40 \def (lift_free v0 i TMP_36 O i 
-TMP_38 TMP_39) in (let TMP_41 \def (eq_ind T TMP_17 TMP_20 TMP_32 TMP_35 
-TMP_40) in (let TMP_42 \def (S i) in (let TMP_43 \def (S i) in (let TMP_44 
-\def (refl_equal nat TMP_43) in (let TMP_45 \def (eq_ind nat TMP_10 TMP_14 
-TMP_41 TMP_42 TMP_44) in (let TMP_46 \def (TLRef i) in (let TMP_47 \def 
-(subst i v0 TMP_46) in (let TMP_48 \def (subst_lref_eq v0 i) in (eq_ind_r T 
-TMP_4 TMP_8 TMP_45 TMP_47 TMP_48))))))))))))))))))))))))))))))))))))))) in 
-(let TMP_89 \def (\lambda (v0: T).(\lambda (u2: T).(\lambda (u1: T).(\lambda 
+(H: (subst0 d v t1 t2)).(subst0_ind (\lambda (n: nat).(\lambda (t: 
+T).(\lambda (t0: T).(\lambda (t3: T).(eq T (subst n t t0) (subst n t t3)))))) 
+(\lambda (v0: T).(\lambda (i: nat).(eq_ind_r T (lift i O v0) (\lambda (t: 
+T).(eq T t (subst i v0 (lift (S i) O v0)))) (eq_ind nat (plus (S O) i) 
+(\lambda (n: nat).(eq T (lift i O v0) (subst i v0 (lift n O v0)))) (eq_ind T 
+(lift (S O) i (lift i O v0)) (\lambda (t: T).(eq T (lift i O v0) (subst i v0 
+t))) (eq_ind_r T (lift i O v0) (\lambda (t: T).(eq T (lift i O v0) t)) 
+(refl_equal T (lift i O v0)) (subst i v0 (lift (S O) i (lift i O v0))) 
+(subst_lift_SO v0 (lift i O v0) i)) (lift (plus (S O) i) O v0) (lift_free v0 
+i (S O) O i (le_n (plus O i)) (le_O_n i))) (S i) (refl_equal nat (S i))) 
+(subst i v0 (TLRef i)) (subst_lref_eq v0 i)))) (\lambda (v0: T).(\lambda (u2: 
+T).(\lambda (u1: T).(\lambda (i: nat).(\lambda (_: (subst0 i v0 u1 
+u2)).(\lambda (H1: (eq T (subst i v0 u1) (subst i v0 u2))).(\lambda (t: 
+T).(\lambda (k: K).(eq_ind_r T (THead k (subst i v0 u1) (subst (s k i) v0 t)) 
+(\lambda (t0: T).(eq T t0 (subst i v0 (THead k u2 t)))) (eq_ind_r T (THead k 
+(subst i v0 u2) (subst (s k i) v0 t)) (\lambda (t0: T).(eq T (THead k (subst 
+i v0 u1) (subst (s k i) v0 t)) t0)) (eq_ind_r T (subst i v0 u2) (\lambda (t0: 
+T).(eq T (THead k t0 (subst (s k i) v0 t)) (THead k (subst i v0 u2) (subst (s 
+k i) v0 t)))) (refl_equal T (THead k (subst i v0 u2) (subst (s k i) v0 t))) 
+(subst i v0 u1) H1) (subst i v0 (THead k u2 t)) (subst_head k v0 u2 t i)) 
+(subst i v0 (THead k u1 t)) (subst_head k v0 u1 t i)))))))))) (\lambda (k: 
+K).(\lambda (v0: T).(\lambda (t3: T).(\lambda (t4: T).(\lambda (i: 
+nat).(\lambda (_: (subst0 (s k i) v0 t4 t3)).(\lambda (H1: (eq T (subst (s k 
+i) v0 t4) (subst (s k i) v0 t3))).(\lambda (u: T).(eq_ind_r T (THead k (subst 
+i v0 u) (subst (s k i) v0 t4)) (\lambda (t: T).(eq T t (subst i v0 (THead k u 
+t3)))) (eq_ind_r T (THead k (subst i v0 u) (subst (s k i) v0 t3)) (\lambda 
+(t: T).(eq T (THead k (subst i v0 u) (subst (s k i) v0 t4)) t)) (eq_ind_r T 
+(subst (s k i) v0 t3) (\lambda (t: T).(eq T (THead k (subst i v0 u) t) (THead 
+k (subst i v0 u) (subst (s k i) v0 t3)))) (refl_equal T (THead k (subst i v0 
+u) (subst (s k i) v0 t3))) (subst (s k i) v0 t4) H1) (subst i v0 (THead k u 
+t3)) (subst_head k v0 u t3 i)) (subst i v0 (THead k u t4)) (subst_head k v0 u 
+t4 i)))))))))) (\lambda (v0: T).(\lambda (u1: T).(\lambda (u2: T).(\lambda 
 (i: nat).(\lambda (_: (subst0 i v0 u1 u2)).(\lambda (H1: (eq T (subst i v0 
-u1) (subst i v0 u2))).(\lambda (t: T).(\lambda (k: K).(let TMP_50 \def (subst 
-i v0 u1) in (let TMP_51 \def (s k i) in (let TMP_52 \def (subst TMP_51 v0 t) 
-in (let TMP_53 \def (THead k TMP_50 TMP_52) in (let TMP_56 \def (\lambda (t0: 
-T).(let TMP_54 \def (THead k u2 t) in (let TMP_55 \def (subst i v0 TMP_54) in 
-(eq T t0 TMP_55)))) in (let TMP_57 \def (subst i v0 u2) in (let TMP_58 \def 
-(s k i) in (let TMP_59 \def (subst TMP_58 v0 t) in (let TMP_60 \def (THead k 
-TMP_57 TMP_59) in (let TMP_65 \def (\lambda (t0: T).(let TMP_61 \def (subst i 
-v0 u1) in (let TMP_62 \def (s k i) in (let TMP_63 \def (subst TMP_62 v0 t) in 
-(let TMP_64 \def (THead k TMP_61 TMP_63) in (eq T TMP_64 t0)))))) in (let 
-TMP_66 \def (subst i v0 u2) in (let TMP_74 \def (\lambda (t0: T).(let TMP_67 
-\def (s k i) in (let TMP_68 \def (subst TMP_67 v0 t) in (let TMP_69 \def 
-(THead k t0 TMP_68) in (let TMP_70 \def (subst i v0 u2) in (let TMP_71 \def 
-(s k i) in (let TMP_72 \def (subst TMP_71 v0 t) in (let TMP_73 \def (THead k 
-TMP_70 TMP_72) in (eq T TMP_69 TMP_73))))))))) in (let TMP_75 \def (subst i 
-v0 u2) in (let TMP_76 \def (s k i) in (let TMP_77 \def (subst TMP_76 v0 t) in 
-(let TMP_78 \def (THead k TMP_75 TMP_77) in (let TMP_79 \def (refl_equal T 
-TMP_78) in (let TMP_80 \def (subst i v0 u1) in (let TMP_81 \def (eq_ind_r T 
-TMP_66 TMP_74 TMP_79 TMP_80 H1) in (let TMP_82 \def (THead k u2 t) in (let 
-TMP_83 \def (subst i v0 TMP_82) in (let TMP_84 \def (subst_head k v0 u2 t i) 
-in (let TMP_85 \def (eq_ind_r T TMP_60 TMP_65 TMP_81 TMP_83 TMP_84) in (let 
-TMP_86 \def (THead k u1 t) in (let TMP_87 \def (subst i v0 TMP_86) in (let 
-TMP_88 \def (subst_head k v0 u1 t i) in (eq_ind_r T TMP_53 TMP_56 TMP_85 
-TMP_87 TMP_88))))))))))))))))))))))))))))))))))) in (let TMP_130 \def 
-(\lambda (k: K).(\lambda (v0: T).(\lambda (t3: T).(\lambda (t4: T).(\lambda 
-(i: nat).(\lambda (_: (subst0 (s k i) v0 t4 t3)).(\lambda (H1: (eq T (subst 
-(s k i) v0 t4) (subst (s k i) v0 t3))).(\lambda (u: T).(let TMP_90 \def 
-(subst i v0 u) in (let TMP_91 \def (s k i) in (let TMP_92 \def (subst TMP_91 
-v0 t4) in (let TMP_93 \def (THead k TMP_90 TMP_92) in (let TMP_96 \def 
-(\lambda (t: T).(let TMP_94 \def (THead k u t3) in (let TMP_95 \def (subst i 
-v0 TMP_94) in (eq T t TMP_95)))) in (let TMP_97 \def (subst i v0 u) in (let 
-TMP_98 \def (s k i) in (let TMP_99 \def (subst TMP_98 v0 t3) in (let TMP_100 
-\def (THead k TMP_97 TMP_99) in (let TMP_105 \def (\lambda (t: T).(let 
-TMP_101 \def (subst i v0 u) in (let TMP_102 \def (s k i) in (let TMP_103 \def 
-(subst TMP_102 v0 t4) in (let TMP_104 \def (THead k TMP_101 TMP_103) in (eq T 
-TMP_104 t)))))) in (let TMP_106 \def (s k i) in (let TMP_107 \def (subst 
-TMP_106 v0 t3) in (let TMP_114 \def (\lambda (t: T).(let TMP_108 \def (subst 
-i v0 u) in (let TMP_109 \def (THead k TMP_108 t) in (let TMP_110 \def (subst 
-i v0 u) in (let TMP_111 \def (s k i) in (let TMP_112 \def (subst TMP_111 v0 
-t3) in (let TMP_113 \def (THead k TMP_110 TMP_112) in (eq T TMP_109 
-TMP_113)))))))) in (let TMP_115 \def (subst i v0 u) in (let TMP_116 \def (s k 
-i) in (let TMP_117 \def (subst TMP_116 v0 t3) in (let TMP_118 \def (THead k 
-TMP_115 TMP_117) in (let TMP_119 \def (refl_equal T TMP_118) in (let TMP_120 
-\def (s k i) in (let TMP_121 \def (subst TMP_120 v0 t4) in (let TMP_122 \def 
-(eq_ind_r T TMP_107 TMP_114 TMP_119 TMP_121 H1) in (let TMP_123 \def (THead k 
-u t3) in (let TMP_124 \def (subst i v0 TMP_123) in (let TMP_125 \def 
-(subst_head k v0 u t3 i) in (let TMP_126 \def (eq_ind_r T TMP_100 TMP_105 
-TMP_122 TMP_124 TMP_125) in (let TMP_127 \def (THead k u t4) in (let TMP_128 
-\def (subst i v0 TMP_127) in (let TMP_129 \def (subst_head k v0 u t4 i) in 
-(eq_ind_r T TMP_93 TMP_96 TMP_126 TMP_128 
-TMP_129))))))))))))))))))))))))))))))))))))) in (let TMP_182 \def (\lambda 
-(v0: T).(\lambda (u1: T).(\lambda (u2: T).(\lambda (i: nat).(\lambda (_: 
-(subst0 i v0 u1 u2)).(\lambda (H1: (eq T (subst i v0 u1) (subst i v0 
-u2))).(\lambda (k: K).(\lambda (t3: T).(\lambda (t4: T).(\lambda (_: (subst0 
-(s k i) v0 t3 t4)).(\lambda (H3: (eq T (subst (s k i) v0 t3) (subst (s k i) 
-v0 t4))).(let TMP_131 \def (subst i v0 u1) in (let TMP_132 \def (s k i) in 
-(let TMP_133 \def (subst TMP_132 v0 t3) in (let TMP_134 \def (THead k TMP_131 
-TMP_133) in (let TMP_137 \def (\lambda (t: T).(let TMP_135 \def (THead k u2 
-t4) in (let TMP_136 \def (subst i v0 TMP_135) in (eq T t TMP_136)))) in (let 
-TMP_138 \def (subst i v0 u2) in (let TMP_139 \def (s k i) in (let TMP_140 
-\def (subst TMP_139 v0 t4) in (let TMP_141 \def (THead k TMP_138 TMP_140) in 
-(let TMP_146 \def (\lambda (t: T).(let TMP_142 \def (subst i v0 u1) in (let 
-TMP_143 \def (s k i) in (let TMP_144 \def (subst TMP_143 v0 t3) in (let 
-TMP_145 \def (THead k TMP_142 TMP_144) in (eq T TMP_145 t)))))) in (let 
-TMP_147 \def (subst i v0 u2) in (let TMP_155 \def (\lambda (t: T).(let 
-TMP_148 \def (s k i) in (let TMP_149 \def (subst TMP_148 v0 t3) in (let 
-TMP_150 \def (THead k t TMP_149) in (let TMP_151 \def (subst i v0 u2) in (let 
-TMP_152 \def (s k i) in (let TMP_153 \def (subst TMP_152 v0 t4) in (let 
-TMP_154 \def (THead k TMP_151 TMP_153) in (eq T TMP_150 TMP_154))))))))) in 
-(let TMP_156 \def (s k i) in (let TMP_157 \def (subst TMP_156 v0 t4) in (let 
-TMP_164 \def (\lambda (t: T).(let TMP_158 \def (subst i v0 u2) in (let 
-TMP_159 \def (THead k TMP_158 t) in (let TMP_160 \def (subst i v0 u2) in (let 
-TMP_161 \def (s k i) in (let TMP_162 \def (subst TMP_161 v0 t4) in (let 
-TMP_163 \def (THead k TMP_160 TMP_162) in (eq T TMP_159 TMP_163)))))))) in 
-(let TMP_165 \def (subst i v0 u2) in (let TMP_166 \def (s k i) in (let 
-TMP_167 \def (subst TMP_166 v0 t4) in (let TMP_168 \def (THead k TMP_165 
-TMP_167) in (let TMP_169 \def (refl_equal T TMP_168) in (let TMP_170 \def (s 
-k i) in (let TMP_171 \def (subst TMP_170 v0 t3) in (let TMP_172 \def 
-(eq_ind_r T TMP_157 TMP_164 TMP_169 TMP_171 H3) in (let TMP_173 \def (subst i 
-v0 u1) in (let TMP_174 \def (eq_ind_r T TMP_147 TMP_155 TMP_172 TMP_173 H1) 
-in (let TMP_175 \def (THead k u2 t4) in (let TMP_176 \def (subst i v0 
-TMP_175) in (let TMP_177 \def (subst_head k v0 u2 t4 i) in (let TMP_178 \def 
-(eq_ind_r T TMP_141 TMP_146 TMP_174 TMP_176 TMP_177) in (let TMP_179 \def 
-(THead k u1 t3) in (let TMP_180 \def (subst i v0 TMP_179) in (let TMP_181 
-\def (subst_head k v0 u1 t3 i) in (eq_ind_r T TMP_134 TMP_137 TMP_178 TMP_180 
-TMP_181)))))))))))))))))))))))))))))))))))))))))))) in (subst0_ind TMP_3 
-TMP_49 TMP_89 TMP_130 TMP_182 d v t1 t2 H)))))))))).
+u1) (subst i v0 u2))).(\lambda (k: K).(\lambda (t3: T).(\lambda (t4: 
+T).(\lambda (_: (subst0 (s k i) v0 t3 t4)).(\lambda (H3: (eq T (subst (s k i) 
+v0 t3) (subst (s k i) v0 t4))).(eq_ind_r T (THead k (subst i v0 u1) (subst (s 
+k i) v0 t3)) (\lambda (t: T).(eq T t (subst i v0 (THead k u2 t4)))) (eq_ind_r 
+T (THead k (subst i v0 u2) (subst (s k i) v0 t4)) (\lambda (t: T).(eq T 
+(THead k (subst i v0 u1) (subst (s k i) v0 t3)) t)) (eq_ind_r T (subst i v0 
+u2) (\lambda (t: T).(eq T (THead k t (subst (s k i) v0 t3)) (THead k (subst i 
+v0 u2) (subst (s k i) v0 t4)))) (eq_ind_r T (subst (s k i) v0 t4) (\lambda 
+(t: T).(eq T (THead k (subst i v0 u2) t) (THead k (subst i v0 u2) (subst (s k 
+i) v0 t4)))) (refl_equal T (THead k (subst i v0 u2) (subst (s k i) v0 t4))) 
+(subst (s k i) v0 t3) H3) (subst i v0 u1) H1) (subst i v0 (THead k u2 t4)) 
+(subst_head k v0 u2 t4 i)) (subst i v0 (THead k u1 t3)) (subst_head k v0 u1 
+t3 i))))))))))))) d v t1 t2 H))))).
 
index a787f6872f574eb21b02206e671d08b8108c072b..4a70958c1142832dbce0724de7611e29405fd2ba 100644 (file)
@@ -23,410 +23,154 @@ theorem dnf_dec2:
 T).(subst0 d w t (lift (S O) d v))))) (ex T (\lambda (v: T).(eq T t (lift (S 
 O) d v))))))
 \def
- \lambda (t: T).(let TMP_9 \def (\lambda (t0: T).(\forall (d: nat).(let TMP_4 
-\def (\forall (w: T).(let TMP_3 \def (\lambda (v: T).(let TMP_1 \def (S O) in 
-(let TMP_2 \def (lift TMP_1 d v) in (subst0 d w t0 TMP_2)))) in (ex T 
-TMP_3))) in (let TMP_7 \def (\lambda (v: T).(let TMP_5 \def (S O) in (let 
-TMP_6 \def (lift TMP_5 d v) in (eq T t0 TMP_6)))) in (let TMP_8 \def (ex T 
-TMP_7) in (or TMP_4 TMP_8)))))) in (let TMP_37 \def (\lambda (n: 
-nat).(\lambda (d: nat).(let TMP_14 \def (\forall (w: T).(let TMP_13 \def 
-(\lambda (v: T).(let TMP_10 \def (TSort n) in (let TMP_11 \def (S O) in (let 
-TMP_12 \def (lift TMP_11 d v) in (subst0 d w TMP_10 TMP_12))))) in (ex T 
-TMP_13))) in (let TMP_18 \def (\lambda (v: T).(let TMP_15 \def (TSort n) in 
-(let TMP_16 \def (S O) in (let TMP_17 \def (lift TMP_16 d v) in (eq T TMP_15 
-TMP_17))))) in (let TMP_19 \def (ex T TMP_18) in (let TMP_23 \def (\lambda 
-(v: T).(let TMP_20 \def (TSort n) in (let TMP_21 \def (S O) in (let TMP_22 
-\def (lift TMP_21 d v) in (eq T TMP_20 TMP_22))))) in (let TMP_24 \def (TSort 
-n) in (let TMP_25 \def (TSort n) in (let TMP_27 \def (\lambda (t0: T).(let 
-TMP_26 \def (TSort n) in (eq T TMP_26 t0))) in (let TMP_28 \def (TSort n) in 
-(let TMP_29 \def (refl_equal T TMP_28) in (let TMP_30 \def (S O) in (let 
-TMP_31 \def (TSort n) in (let TMP_32 \def (lift TMP_30 d TMP_31) in (let 
-TMP_33 \def (S O) in (let TMP_34 \def (lift_sort n TMP_33 d) in (let TMP_35 
-\def (eq_ind_r T TMP_25 TMP_27 TMP_29 TMP_32 TMP_34) in (let TMP_36 \def 
-(ex_intro T TMP_23 TMP_24 TMP_35) in (or_intror TMP_14 TMP_19 
-TMP_36))))))))))))))))))) in (let TMP_149 \def (\lambda (n: nat).(\lambda (d: 
-nat).(let TMP_42 \def (\forall (w: T).(let TMP_41 \def (\lambda (v: T).(let 
-TMP_38 \def (TLRef n) in (let TMP_39 \def (S O) in (let TMP_40 \def (lift 
-TMP_39 d v) in (subst0 d w TMP_38 TMP_40))))) in (ex T TMP_41))) in (let 
-TMP_46 \def (\lambda (v: T).(let TMP_43 \def (TLRef n) in (let TMP_44 \def (S 
-O) in (let TMP_45 \def (lift TMP_44 d v) in (eq T TMP_43 TMP_45))))) in (let 
-TMP_47 \def (ex T TMP_46) in (let TMP_48 \def (or TMP_42 TMP_47) in (let 
-TMP_76 \def (\lambda (H: (lt n d)).(let TMP_53 \def (\forall (w: T).(let 
-TMP_52 \def (\lambda (v: T).(let TMP_49 \def (TLRef n) in (let TMP_50 \def (S 
-O) in (let TMP_51 \def (lift TMP_50 d v) in (subst0 d w TMP_49 TMP_51))))) in 
-(ex T TMP_52))) in (let TMP_57 \def (\lambda (v: T).(let TMP_54 \def (TLRef 
-n) in (let TMP_55 \def (S O) in (let TMP_56 \def (lift TMP_55 d v) in (eq T 
-TMP_54 TMP_56))))) in (let TMP_58 \def (ex T TMP_57) in (let TMP_62 \def 
-(\lambda (v: T).(let TMP_59 \def (TLRef n) in (let TMP_60 \def (S O) in (let 
-TMP_61 \def (lift TMP_60 d v) in (eq T TMP_59 TMP_61))))) in (let TMP_63 \def 
-(TLRef n) in (let TMP_64 \def (TLRef n) in (let TMP_66 \def (\lambda (t0: 
-T).(let TMP_65 \def (TLRef n) in (eq T TMP_65 t0))) in (let TMP_67 \def 
-(TLRef n) in (let TMP_68 \def (refl_equal T TMP_67) in (let TMP_69 \def (S O) 
-in (let TMP_70 \def (TLRef n) in (let TMP_71 \def (lift TMP_69 d TMP_70) in 
-(let TMP_72 \def (S O) in (let TMP_73 \def (lift_lref_lt n TMP_72 d H) in 
-(let TMP_74 \def (eq_ind_r T TMP_64 TMP_66 TMP_68 TMP_71 TMP_73) in (let 
-TMP_75 \def (ex_intro T TMP_62 TMP_63 TMP_74) in (or_intror TMP_53 TMP_58 
-TMP_75)))))))))))))))))) in (let TMP_119 \def (\lambda (H: (eq nat n d)).(let 
-TMP_87 \def (\lambda (n0: nat).(let TMP_81 \def (\forall (w: T).(let TMP_80 
-\def (\lambda (v: T).(let TMP_77 \def (TLRef n) in (let TMP_78 \def (S O) in 
-(let TMP_79 \def (lift TMP_78 n0 v) in (subst0 n0 w TMP_77 TMP_79))))) in (ex 
-T TMP_80))) in (let TMP_85 \def (\lambda (v: T).(let TMP_82 \def (TLRef n) in 
-(let TMP_83 \def (S O) in (let TMP_84 \def (lift TMP_83 n0 v) in (eq T TMP_82 
-TMP_84))))) in (let TMP_86 \def (ex T TMP_85) in (or TMP_81 TMP_86))))) in 
-(let TMP_92 \def (\forall (w: T).(let TMP_91 \def (\lambda (v: T).(let TMP_88 
-\def (TLRef n) in (let TMP_89 \def (S O) in (let TMP_90 \def (lift TMP_89 n 
-v) in (subst0 n w TMP_88 TMP_90))))) in (ex T TMP_91))) in (let TMP_96 \def 
-(\lambda (v: T).(let TMP_93 \def (TLRef n) in (let TMP_94 \def (S O) in (let 
-TMP_95 \def (lift TMP_94 n v) in (eq T TMP_93 TMP_95))))) in (let TMP_97 \def 
-(ex T TMP_96) in (let TMP_117 \def (\lambda (w: T).(let TMP_101 \def (\lambda 
-(v: T).(let TMP_98 \def (TLRef n) in (let TMP_99 \def (S O) in (let TMP_100 
-\def (lift TMP_99 n v) in (subst0 n w TMP_98 TMP_100))))) in (let TMP_102 
-\def (lift n O w) in (let TMP_103 \def (S O) in (let TMP_104 \def (plus 
-TMP_103 n) in (let TMP_105 \def (lift TMP_104 O w) in (let TMP_107 \def 
-(\lambda (t0: T).(let TMP_106 \def (TLRef n) in (subst0 n w TMP_106 t0))) in 
-(let TMP_108 \def (subst0_lref w n) in (let TMP_109 \def (S O) in (let 
-TMP_110 \def (lift n O w) in (let TMP_111 \def (lift TMP_109 n TMP_110) in 
-(let TMP_112 \def (S O) in (let TMP_113 \def (le_plus_r O n) in (let TMP_114 
-\def (le_O_n n) in (let TMP_115 \def (lift_free w n TMP_112 O n TMP_113 
-TMP_114) in (let TMP_116 \def (eq_ind_r T TMP_105 TMP_107 TMP_108 TMP_111 
-TMP_115) in (ex_intro T TMP_101 TMP_102 TMP_116))))))))))))))))) in (let 
-TMP_118 \def (or_introl TMP_92 TMP_97 TMP_117) in (eq_ind nat n TMP_87 
-TMP_118 d H)))))))) in (let TMP_148 \def (\lambda (H: (lt d n)).(let TMP_124 
-\def (\forall (w: T).(let TMP_123 \def (\lambda (v: T).(let TMP_120 \def 
-(TLRef n) in (let TMP_121 \def (S O) in (let TMP_122 \def (lift TMP_121 d v) 
-in (subst0 d w TMP_120 TMP_122))))) in (ex T TMP_123))) in (let TMP_128 \def 
-(\lambda (v: T).(let TMP_125 \def (TLRef n) in (let TMP_126 \def (S O) in 
-(let TMP_127 \def (lift TMP_126 d v) in (eq T TMP_125 TMP_127))))) in (let 
-TMP_129 \def (ex T TMP_128) in (let TMP_133 \def (\lambda (v: T).(let TMP_130 
-\def (TLRef n) in (let TMP_131 \def (S O) in (let TMP_132 \def (lift TMP_131 
-d v) in (eq T TMP_130 TMP_132))))) in (let TMP_134 \def (pred n) in (let 
-TMP_135 \def (TLRef TMP_134) in (let TMP_136 \def (TLRef n) in (let TMP_138 
-\def (\lambda (t0: T).(let TMP_137 \def (TLRef n) in (eq T TMP_137 t0))) in 
-(let TMP_139 \def (TLRef n) in (let TMP_140 \def (refl_equal T TMP_139) in 
-(let TMP_141 \def (S O) in (let TMP_142 \def (pred n) in (let TMP_143 \def 
-(TLRef TMP_142) in (let TMP_144 \def (lift TMP_141 d TMP_143) in (let TMP_145 
-\def (lift_lref_gt d n H) in (let TMP_146 \def (eq_ind_r T TMP_136 TMP_138 
-TMP_140 TMP_144 TMP_145) in (let TMP_147 \def (ex_intro T TMP_133 TMP_135 
-TMP_146) in (or_intror TMP_124 TMP_129 TMP_147))))))))))))))))))) in 
-(lt_eq_gt_e n d TMP_48 TMP_76 TMP_119 TMP_148)))))))))) in (let TMP_562 \def 
-(\lambda (k: K).(\lambda (t0: T).(\lambda (H: ((\forall (d: nat).(or (\forall 
-(w: T).(ex T (\lambda (v: T).(subst0 d w t0 (lift (S O) d v))))) (ex T 
-(\lambda (v: T).(eq T t0 (lift (S O) d v)))))))).(\lambda (t1: T).(\lambda 
-(H0: ((\forall (d: nat).(or (\forall (w: T).(ex T (\lambda (v: T).(subst0 d w 
-t1 (lift (S O) d v))))) (ex T (\lambda (v: T).(eq T t1 (lift (S O) d 
-v)))))))).(\lambda (d: nat).(let H_x \def (H d) in (let H1 \def H_x in (let 
-TMP_153 \def (\forall (w: T).(let TMP_152 \def (\lambda (v: T).(let TMP_150 
-\def (S O) in (let TMP_151 \def (lift TMP_150 d v) in (subst0 d w t0 
-TMP_151)))) in (ex T TMP_152))) in (let TMP_156 \def (\lambda (v: T).(let 
-TMP_154 \def (S O) in (let TMP_155 \def (lift TMP_154 d v) in (eq T t0 
-TMP_155)))) in (let TMP_157 \def (ex T TMP_156) in (let TMP_162 \def (\forall 
-(w: T).(let TMP_161 \def (\lambda (v: T).(let TMP_158 \def (THead k t0 t1) in 
-(let TMP_159 \def (S O) in (let TMP_160 \def (lift TMP_159 d v) in (subst0 d 
-w TMP_158 TMP_160))))) in (ex T TMP_161))) in (let TMP_166 \def (\lambda (v: 
-T).(let TMP_163 \def (THead k t0 t1) in (let TMP_164 \def (S O) in (let 
-TMP_165 \def (lift TMP_164 d v) in (eq T TMP_163 TMP_165))))) in (let TMP_167 
-\def (ex T TMP_166) in (let TMP_168 \def (or TMP_162 TMP_167) in (let TMP_341 
-\def (\lambda (H2: ((\forall (w: T).(ex T (\lambda (v: T).(subst0 d w t0 
-(lift (S O) d v))))))).(let TMP_169 \def (s k d) in (let H_x0 \def (H0 
-TMP_169) in (let H3 \def H_x0 in (let TMP_175 \def (\forall (w: T).(let 
-TMP_174 \def (\lambda (v: T).(let TMP_170 \def (s k d) in (let TMP_171 \def 
-(S O) in (let TMP_172 \def (s k d) in (let TMP_173 \def (lift TMP_171 TMP_172 
-v) in (subst0 TMP_170 w t1 TMP_173)))))) in (ex T TMP_174))) in (let TMP_179 
-\def (\lambda (v: T).(let TMP_176 \def (S O) in (let TMP_177 \def (s k d) in 
-(let TMP_178 \def (lift TMP_176 TMP_177 v) in (eq T t1 TMP_178))))) in (let 
-TMP_180 \def (ex T TMP_179) in (let TMP_185 \def (\forall (w: T).(let TMP_184 
-\def (\lambda (v: T).(let TMP_181 \def (THead k t0 t1) in (let TMP_182 \def 
-(S O) in (let TMP_183 \def (lift TMP_182 d v) in (subst0 d w TMP_181 
-TMP_183))))) in (ex T TMP_184))) in (let TMP_189 \def (\lambda (v: T).(let 
-TMP_186 \def (THead k t0 t1) in (let TMP_187 \def (S O) in (let TMP_188 \def 
-(lift TMP_187 d v) in (eq T TMP_186 TMP_188))))) in (let TMP_190 \def (ex T 
-TMP_189) in (let TMP_191 \def (or TMP_185 TMP_190) in (let TMP_248 \def 
-(\lambda (H4: ((\forall (w: T).(ex T (\lambda (v: T).(subst0 (s k d) w t1 
-(lift (S O) (s k d) v))))))).(let TMP_196 \def (\forall (w: T).(let TMP_195 
-\def (\lambda (v: T).(let TMP_192 \def (THead k t0 t1) in (let TMP_193 \def 
-(S O) in (let TMP_194 \def (lift TMP_193 d v) in (subst0 d w TMP_192 
-TMP_194))))) in (ex T TMP_195))) in (let TMP_200 \def (\lambda (v: T).(let 
-TMP_197 \def (THead k t0 t1) in (let TMP_198 \def (S O) in (let TMP_199 \def 
-(lift TMP_198 d v) in (eq T TMP_197 TMP_199))))) in (let TMP_201 \def (ex T 
-TMP_200) in (let TMP_247 \def (\lambda (w: T).(let H_x1 \def (H4 w) in (let 
-H5 \def H_x1 in (let TMP_206 \def (\lambda (v: T).(let TMP_202 \def (s k d) 
-in (let TMP_203 \def (S O) in (let TMP_204 \def (s k d) in (let TMP_205 \def 
-(lift TMP_203 TMP_204 v) in (subst0 TMP_202 w t1 TMP_205)))))) in (let 
-TMP_210 \def (\lambda (v: T).(let TMP_207 \def (THead k t0 t1) in (let 
-TMP_208 \def (S O) in (let TMP_209 \def (lift TMP_208 d v) in (subst0 d w 
-TMP_207 TMP_209))))) in (let TMP_211 \def (ex T TMP_210) in (let TMP_246 \def 
-(\lambda (x: T).(\lambda (H6: (subst0 (s k d) w t1 (lift (S O) (s k d) 
-x))).(let H_x2 \def (H2 w) in (let H7 \def H_x2 in (let TMP_214 \def (\lambda 
-(v: T).(let TMP_212 \def (S O) in (let TMP_213 \def (lift TMP_212 d v) in 
-(subst0 d w t0 TMP_213)))) in (let TMP_218 \def (\lambda (v: T).(let TMP_215 
-\def (THead k t0 t1) in (let TMP_216 \def (S O) in (let TMP_217 \def (lift 
-TMP_216 d v) in (subst0 d w TMP_215 TMP_217))))) in (let TMP_219 \def (ex T 
-TMP_218) in (let TMP_245 \def (\lambda (x0: T).(\lambda (H8: (subst0 d w t0 
-(lift (S O) d x0))).(let TMP_223 \def (\lambda (v: T).(let TMP_220 \def 
-(THead k t0 t1) in (let TMP_221 \def (S O) in (let TMP_222 \def (lift TMP_221 
-d v) in (subst0 d w TMP_220 TMP_222))))) in (let TMP_224 \def (THead k x0 x) 
-in (let TMP_225 \def (S O) in (let TMP_226 \def (lift TMP_225 d x0) in (let 
-TMP_227 \def (S O) in (let TMP_228 \def (s k d) in (let TMP_229 \def (lift 
-TMP_227 TMP_228 x) in (let TMP_230 \def (THead k TMP_226 TMP_229) in (let 
-TMP_232 \def (\lambda (t2: T).(let TMP_231 \def (THead k t0 t1) in (subst0 d 
-w TMP_231 t2))) in (let TMP_233 \def (S O) in (let TMP_234 \def (lift TMP_233 
-d x0) in (let TMP_235 \def (S O) in (let TMP_236 \def (s k d) in (let TMP_237 
-\def (lift TMP_235 TMP_236 x) in (let TMP_238 \def (subst0_both w t0 TMP_234 
-d H8 k t1 TMP_237 H6) in (let TMP_239 \def (S O) in (let TMP_240 \def (THead 
-k x0 x) in (let TMP_241 \def (lift TMP_239 d TMP_240) in (let TMP_242 \def (S 
-O) in (let TMP_243 \def (lift_head k x0 x TMP_242 d) in (let TMP_244 \def 
-(eq_ind_r T TMP_230 TMP_232 TMP_238 TMP_241 TMP_243) in (ex_intro T TMP_223 
-TMP_224 TMP_244)))))))))))))))))))))))) in (ex_ind T TMP_214 TMP_219 TMP_245 
-H7))))))))) in (ex_ind T TMP_206 TMP_211 TMP_246 H5)))))))) in (or_introl 
-TMP_196 TMP_201 TMP_247)))))) in (let TMP_340 \def (\lambda (H4: (ex T 
-(\lambda (v: T).(eq T t1 (lift (S O) (s k d) v))))).(let TMP_252 \def 
-(\lambda (v: T).(let TMP_249 \def (S O) in (let TMP_250 \def (s k d) in (let 
-TMP_251 \def (lift TMP_249 TMP_250 v) in (eq T t1 TMP_251))))) in (let 
-TMP_257 \def (\forall (w: T).(let TMP_256 \def (\lambda (v: T).(let TMP_253 
-\def (THead k t0 t1) in (let TMP_254 \def (S O) in (let TMP_255 \def (lift 
-TMP_254 d v) in (subst0 d w TMP_253 TMP_255))))) in (ex T TMP_256))) in (let 
-TMP_261 \def (\lambda (v: T).(let TMP_258 \def (THead k t0 t1) in (let 
-TMP_259 \def (S O) in (let TMP_260 \def (lift TMP_259 d v) in (eq T TMP_258 
-TMP_260))))) in (let TMP_262 \def (ex T TMP_261) in (let TMP_263 \def (or 
-TMP_257 TMP_262) in (let TMP_339 \def (\lambda (x: T).(\lambda (H5: (eq T t1 
-(lift (S O) (s k d) x))).(let TMP_264 \def (S O) in (let TMP_265 \def (s k d) 
-in (let TMP_266 \def (lift TMP_264 TMP_265 x) in (let TMP_277 \def (\lambda 
-(t2: T).(let TMP_271 \def (\forall (w: T).(let TMP_270 \def (\lambda (v: 
-T).(let TMP_267 \def (THead k t0 t2) in (let TMP_268 \def (S O) in (let 
-TMP_269 \def (lift TMP_268 d v) in (subst0 d w TMP_267 TMP_269))))) in (ex T 
-TMP_270))) in (let TMP_275 \def (\lambda (v: T).(let TMP_272 \def (THead k t0 
-t2) in (let TMP_273 \def (S O) in (let TMP_274 \def (lift TMP_273 d v) in (eq 
-T TMP_272 TMP_274))))) in (let TMP_276 \def (ex T TMP_275) in (or TMP_271 
-TMP_276))))) in (let TMP_285 \def (\forall (w: T).(let TMP_284 \def (\lambda 
-(v: T).(let TMP_278 \def (S O) in (let TMP_279 \def (s k d) in (let TMP_280 
-\def (lift TMP_278 TMP_279 x) in (let TMP_281 \def (THead k t0 TMP_280) in 
-(let TMP_282 \def (S O) in (let TMP_283 \def (lift TMP_282 d v) in (subst0 d 
-w TMP_281 TMP_283)))))))) in (ex T TMP_284))) in (let TMP_292 \def (\lambda 
-(v: T).(let TMP_286 \def (S O) in (let TMP_287 \def (s k d) in (let TMP_288 
-\def (lift TMP_286 TMP_287 x) in (let TMP_289 \def (THead k t0 TMP_288) in 
-(let TMP_290 \def (S O) in (let TMP_291 \def (lift TMP_290 d v) in (eq T 
-TMP_289 TMP_291)))))))) in (let TMP_293 \def (ex T TMP_292) in (let TMP_337 
-\def (\lambda (w: T).(let H_x1 \def (H2 w) in (let H6 \def H_x1 in (let 
-TMP_296 \def (\lambda (v: T).(let TMP_294 \def (S O) in (let TMP_295 \def 
-(lift TMP_294 d v) in (subst0 d w t0 TMP_295)))) in (let TMP_303 \def 
-(\lambda (v: T).(let TMP_297 \def (S O) in (let TMP_298 \def (s k d) in (let 
-TMP_299 \def (lift TMP_297 TMP_298 x) in (let TMP_300 \def (THead k t0 
-TMP_299) in (let TMP_301 \def (S O) in (let TMP_302 \def (lift TMP_301 d v) 
-in (subst0 d w TMP_300 TMP_302)))))))) in (let TMP_304 \def (ex T TMP_303) in 
-(let TMP_336 \def (\lambda (x0: T).(\lambda (H7: (subst0 d w t0 (lift (S O) d 
-x0))).(let TMP_311 \def (\lambda (v: T).(let TMP_305 \def (S O) in (let 
-TMP_306 \def (s k d) in (let TMP_307 \def (lift TMP_305 TMP_306 x) in (let 
-TMP_308 \def (THead k t0 TMP_307) in (let TMP_309 \def (S O) in (let TMP_310 
-\def (lift TMP_309 d v) in (subst0 d w TMP_308 TMP_310)))))))) in (let 
-TMP_312 \def (THead k x0 x) in (let TMP_313 \def (S O) in (let TMP_314 \def 
-(lift TMP_313 d x0) in (let TMP_315 \def (S O) in (let TMP_316 \def (s k d) 
-in (let TMP_317 \def (lift TMP_315 TMP_316 x) in (let TMP_318 \def (THead k 
-TMP_314 TMP_317) in (let TMP_323 \def (\lambda (t2: T).(let TMP_319 \def (S 
-O) in (let TMP_320 \def (s k d) in (let TMP_321 \def (lift TMP_319 TMP_320 x) 
-in (let TMP_322 \def (THead k t0 TMP_321) in (subst0 d w TMP_322 t2)))))) in 
-(let TMP_324 \def (S O) in (let TMP_325 \def (lift TMP_324 d x0) in (let 
-TMP_326 \def (S O) in (let TMP_327 \def (s k d) in (let TMP_328 \def (lift 
-TMP_326 TMP_327 x) in (let TMP_329 \def (subst0_fst w TMP_325 t0 d H7 TMP_328 
-k) in (let TMP_330 \def (S O) in (let TMP_331 \def (THead k x0 x) in (let 
-TMP_332 \def (lift TMP_330 d TMP_331) in (let TMP_333 \def (S O) in (let 
-TMP_334 \def (lift_head k x0 x TMP_333 d) in (let TMP_335 \def (eq_ind_r T 
-TMP_318 TMP_323 TMP_329 TMP_332 TMP_334) in (ex_intro T TMP_311 TMP_312 
-TMP_335)))))))))))))))))))))))) in (ex_ind T TMP_296 TMP_304 TMP_336 
-H6)))))))) in (let TMP_338 \def (or_introl TMP_285 TMP_293 TMP_337) in 
-(eq_ind_r T TMP_266 TMP_277 TMP_338 t1 H5)))))))))))) in (ex_ind T TMP_252 
-TMP_263 TMP_339 H4)))))))) in (or_ind TMP_175 TMP_180 TMP_191 TMP_248 TMP_340 
-H3)))))))))))))) in (let TMP_561 \def (\lambda (H2: (ex T (\lambda (v: T).(eq 
-T t0 (lift (S O) d v))))).(let TMP_344 \def (\lambda (v: T).(let TMP_342 \def 
-(S O) in (let TMP_343 \def (lift TMP_342 d v) in (eq T t0 TMP_343)))) in (let 
-TMP_349 \def (\forall (w: T).(let TMP_348 \def (\lambda (v: T).(let TMP_345 
-\def (THead k t0 t1) in (let TMP_346 \def (S O) in (let TMP_347 \def (lift 
-TMP_346 d v) in (subst0 d w TMP_345 TMP_347))))) in (ex T TMP_348))) in (let 
-TMP_353 \def (\lambda (v: T).(let TMP_350 \def (THead k t0 t1) in (let 
-TMP_351 \def (S O) in (let TMP_352 \def (lift TMP_351 d v) in (eq T TMP_350 
-TMP_352))))) in (let TMP_354 \def (ex T TMP_353) in (let TMP_355 \def (or 
-TMP_349 TMP_354) in (let TMP_560 \def (\lambda (x: T).(\lambda (H3: (eq T t0 
-(lift (S O) d x))).(let TMP_356 \def (s k d) in (let H_x0 \def (H0 TMP_356) 
-in (let H4 \def H_x0 in (let TMP_362 \def (\forall (w: T).(let TMP_361 \def 
-(\lambda (v: T).(let TMP_357 \def (s k d) in (let TMP_358 \def (S O) in (let 
-TMP_359 \def (s k d) in (let TMP_360 \def (lift TMP_358 TMP_359 v) in (subst0 
-TMP_357 w t1 TMP_360)))))) in (ex T TMP_361))) in (let TMP_366 \def (\lambda 
-(v: T).(let TMP_363 \def (S O) in (let TMP_364 \def (s k d) in (let TMP_365 
-\def (lift TMP_363 TMP_364 v) in (eq T t1 TMP_365))))) in (let TMP_367 \def 
-(ex T TMP_366) in (let TMP_372 \def (\forall (w: T).(let TMP_371 \def 
-(\lambda (v: T).(let TMP_368 \def (THead k t0 t1) in (let TMP_369 \def (S O) 
-in (let TMP_370 \def (lift TMP_369 d v) in (subst0 d w TMP_368 TMP_370))))) 
-in (ex T TMP_371))) in (let TMP_376 \def (\lambda (v: T).(let TMP_373 \def 
-(THead k t0 t1) in (let TMP_374 \def (S O) in (let TMP_375 \def (lift TMP_374 
-d v) in (eq T TMP_373 TMP_375))))) in (let TMP_377 \def (ex T TMP_376) in 
-(let TMP_378 \def (or TMP_372 TMP_377) in (let TMP_450 \def (\lambda (H5: 
-((\forall (w: T).(ex T (\lambda (v: T).(subst0 (s k d) w t1 (lift (S O) (s k 
-d) v))))))).(let TMP_379 \def (S O) in (let TMP_380 \def (lift TMP_379 d x) 
-in (let TMP_391 \def (\lambda (t2: T).(let TMP_385 \def (\forall (w: T).(let 
-TMP_384 \def (\lambda (v: T).(let TMP_381 \def (THead k t2 t1) in (let 
-TMP_382 \def (S O) in (let TMP_383 \def (lift TMP_382 d v) in (subst0 d w 
-TMP_381 TMP_383))))) in (ex T TMP_384))) in (let TMP_389 \def (\lambda (v: 
-T).(let TMP_386 \def (THead k t2 t1) in (let TMP_387 \def (S O) in (let 
-TMP_388 \def (lift TMP_387 d v) in (eq T TMP_386 TMP_388))))) in (let TMP_390 
-\def (ex T TMP_389) in (or TMP_385 TMP_390))))) in (let TMP_398 \def (\forall 
-(w: T).(let TMP_397 \def (\lambda (v: T).(let TMP_392 \def (S O) in (let 
-TMP_393 \def (lift TMP_392 d x) in (let TMP_394 \def (THead k TMP_393 t1) in 
-(let TMP_395 \def (S O) in (let TMP_396 \def (lift TMP_395 d v) in (subst0 d 
-w TMP_394 TMP_396))))))) in (ex T TMP_397))) in (let TMP_404 \def (\lambda 
-(v: T).(let TMP_399 \def (S O) in (let TMP_400 \def (lift TMP_399 d x) in 
-(let TMP_401 \def (THead k TMP_400 t1) in (let TMP_402 \def (S O) in (let 
-TMP_403 \def (lift TMP_402 d v) in (eq T TMP_401 TMP_403))))))) in (let 
-TMP_405 \def (ex T TMP_404) in (let TMP_448 \def (\lambda (w: T).(let H_x1 
-\def (H5 w) in (let H6 \def H_x1 in (let TMP_410 \def (\lambda (v: T).(let 
-TMP_406 \def (s k d) in (let TMP_407 \def (S O) in (let TMP_408 \def (s k d) 
-in (let TMP_409 \def (lift TMP_407 TMP_408 v) in (subst0 TMP_406 w t1 
-TMP_409)))))) in (let TMP_416 \def (\lambda (v: T).(let TMP_411 \def (S O) in 
-(let TMP_412 \def (lift TMP_411 d x) in (let TMP_413 \def (THead k TMP_412 
-t1) in (let TMP_414 \def (S O) in (let TMP_415 \def (lift TMP_414 d v) in 
-(subst0 d w TMP_413 TMP_415))))))) in (let TMP_417 \def (ex T TMP_416) in 
-(let TMP_447 \def (\lambda (x0: T).(\lambda (H7: (subst0 (s k d) w t1 (lift 
-(S O) (s k d) x0))).(let TMP_423 \def (\lambda (v: T).(let TMP_418 \def (S O) 
-in (let TMP_419 \def (lift TMP_418 d x) in (let TMP_420 \def (THead k TMP_419 
-t1) in (let TMP_421 \def (S O) in (let TMP_422 \def (lift TMP_421 d v) in 
-(subst0 d w TMP_420 TMP_422))))))) in (let TMP_424 \def (THead k x x0) in 
-(let TMP_425 \def (S O) in (let TMP_426 \def (lift TMP_425 d x) in (let 
-TMP_427 \def (S O) in (let TMP_428 \def (s k d) in (let TMP_429 \def (lift 
-TMP_427 TMP_428 x0) in (let TMP_430 \def (THead k TMP_426 TMP_429) in (let 
-TMP_434 \def (\lambda (t2: T).(let TMP_431 \def (S O) in (let TMP_432 \def 
-(lift TMP_431 d x) in (let TMP_433 \def (THead k TMP_432 t1) in (subst0 d w 
-TMP_433 t2))))) in (let TMP_435 \def (S O) in (let TMP_436 \def (s k d) in 
-(let TMP_437 \def (lift TMP_435 TMP_436 x0) in (let TMP_438 \def (S O) in 
-(let TMP_439 \def (lift TMP_438 d x) in (let TMP_440 \def (subst0_snd k w 
-TMP_437 t1 d H7 TMP_439) in (let TMP_441 \def (S O) in (let TMP_442 \def 
-(THead k x x0) in (let TMP_443 \def (lift TMP_441 d TMP_442) in (let TMP_444 
-\def (S O) in (let TMP_445 \def (lift_head k x x0 TMP_444 d) in (let TMP_446 
-\def (eq_ind_r T TMP_430 TMP_434 TMP_440 TMP_443 TMP_445) in (ex_intro T 
-TMP_423 TMP_424 TMP_446)))))))))))))))))))))))) in (ex_ind T TMP_410 TMP_417 
-TMP_447 H6)))))))) in (let TMP_449 \def (or_introl TMP_398 TMP_405 TMP_448) 
-in (eq_ind_r T TMP_380 TMP_391 TMP_449 t0 H3)))))))))) in (let TMP_559 \def 
-(\lambda (H5: (ex T (\lambda (v: T).(eq T t1 (lift (S O) (s k d) v))))).(let 
-TMP_454 \def (\lambda (v: T).(let TMP_451 \def (S O) in (let TMP_452 \def (s 
-k d) in (let TMP_453 \def (lift TMP_451 TMP_452 v) in (eq T t1 TMP_453))))) 
-in (let TMP_459 \def (\forall (w: T).(let TMP_458 \def (\lambda (v: T).(let 
-TMP_455 \def (THead k t0 t1) in (let TMP_456 \def (S O) in (let TMP_457 \def 
-(lift TMP_456 d v) in (subst0 d w TMP_455 TMP_457))))) in (ex T TMP_458))) in 
-(let TMP_463 \def (\lambda (v: T).(let TMP_460 \def (THead k t0 t1) in (let 
-TMP_461 \def (S O) in (let TMP_462 \def (lift TMP_461 d v) in (eq T TMP_460 
-TMP_462))))) in (let TMP_464 \def (ex T TMP_463) in (let TMP_465 \def (or 
-TMP_459 TMP_464) in (let TMP_558 \def (\lambda (x0: T).(\lambda (H6: (eq T t1 
-(lift (S O) (s k d) x0))).(let TMP_466 \def (S O) in (let TMP_467 \def (s k 
-d) in (let TMP_468 \def (lift TMP_466 TMP_467 x0) in (let TMP_479 \def 
-(\lambda (t2: T).(let TMP_473 \def (\forall (w: T).(let TMP_472 \def (\lambda 
-(v: T).(let TMP_469 \def (THead k t0 t2) in (let TMP_470 \def (S O) in (let 
-TMP_471 \def (lift TMP_470 d v) in (subst0 d w TMP_469 TMP_471))))) in (ex T 
-TMP_472))) in (let TMP_477 \def (\lambda (v: T).(let TMP_474 \def (THead k t0 
-t2) in (let TMP_475 \def (S O) in (let TMP_476 \def (lift TMP_475 d v) in (eq 
-T TMP_474 TMP_476))))) in (let TMP_478 \def (ex T TMP_477) in (or TMP_473 
-TMP_478))))) in (let TMP_480 \def (S O) in (let TMP_481 \def (lift TMP_480 d 
-x) in (let TMP_498 \def (\lambda (t2: T).(let TMP_489 \def (\forall (w: 
-T).(let TMP_488 \def (\lambda (v: T).(let TMP_482 \def (S O) in (let TMP_483 
-\def (s k d) in (let TMP_484 \def (lift TMP_482 TMP_483 x0) in (let TMP_485 
-\def (THead k t2 TMP_484) in (let TMP_486 \def (S O) in (let TMP_487 \def 
-(lift TMP_486 d v) in (subst0 d w TMP_485 TMP_487)))))))) in (ex T TMP_488))) 
-in (let TMP_496 \def (\lambda (v: T).(let TMP_490 \def (S O) in (let TMP_491 
-\def (s k d) in (let TMP_492 \def (lift TMP_490 TMP_491 x0) in (let TMP_493 
-\def (THead k t2 TMP_492) in (let TMP_494 \def (S O) in (let TMP_495 \def 
-(lift TMP_494 d v) in (eq T TMP_493 TMP_495)))))))) in (let TMP_497 \def (ex 
-T TMP_496) in (or TMP_489 TMP_497))))) in (let TMP_508 \def (\forall (w: 
-T).(let TMP_507 \def (\lambda (v: T).(let TMP_499 \def (S O) in (let TMP_500 
-\def (lift TMP_499 d x) in (let TMP_501 \def (S O) in (let TMP_502 \def (s k 
-d) in (let TMP_503 \def (lift TMP_501 TMP_502 x0) in (let TMP_504 \def (THead 
-k TMP_500 TMP_503) in (let TMP_505 \def (S O) in (let TMP_506 \def (lift 
-TMP_505 d v) in (subst0 d w TMP_504 TMP_506)))))))))) in (ex T TMP_507))) in 
-(let TMP_517 \def (\lambda (v: T).(let TMP_509 \def (S O) in (let TMP_510 
-\def (lift TMP_509 d x) in (let TMP_511 \def (S O) in (let TMP_512 \def (s k 
-d) in (let TMP_513 \def (lift TMP_511 TMP_512 x0) in (let TMP_514 \def (THead 
-k TMP_510 TMP_513) in (let TMP_515 \def (S O) in (let TMP_516 \def (lift 
-TMP_515 d v) in (eq T TMP_514 TMP_516)))))))))) in (let TMP_518 \def (ex T 
-TMP_517) in (let TMP_527 \def (\lambda (v: T).(let TMP_519 \def (S O) in (let 
-TMP_520 \def (lift TMP_519 d x) in (let TMP_521 \def (S O) in (let TMP_522 
-\def (s k d) in (let TMP_523 \def (lift TMP_521 TMP_522 x0) in (let TMP_524 
-\def (THead k TMP_520 TMP_523) in (let TMP_525 \def (S O) in (let TMP_526 
-\def (lift TMP_525 d v) in (eq T TMP_524 TMP_526)))))))))) in (let TMP_528 
-\def (THead k x x0) in (let TMP_529 \def (S O) in (let TMP_530 \def (lift 
-TMP_529 d x) in (let TMP_531 \def (S O) in (let TMP_532 \def (s k d) in (let 
-TMP_533 \def (lift TMP_531 TMP_532 x0) in (let TMP_534 \def (THead k TMP_530 
-TMP_533) in (let TMP_541 \def (\lambda (t2: T).(let TMP_535 \def (S O) in 
-(let TMP_536 \def (lift TMP_535 d x) in (let TMP_537 \def (S O) in (let 
-TMP_538 \def (s k d) in (let TMP_539 \def (lift TMP_537 TMP_538 x0) in (let 
-TMP_540 \def (THead k TMP_536 TMP_539) in (eq T TMP_540 t2)))))))) in (let 
-TMP_542 \def (S O) in (let TMP_543 \def (lift TMP_542 d x) in (let TMP_544 
-\def (S O) in (let TMP_545 \def (s k d) in (let TMP_546 \def (lift TMP_544 
-TMP_545 x0) in (let TMP_547 \def (THead k TMP_543 TMP_546) in (let TMP_548 
-\def (refl_equal T TMP_547) in (let TMP_549 \def (S O) in (let TMP_550 \def 
-(THead k x x0) in (let TMP_551 \def (lift TMP_549 d TMP_550) in (let TMP_552 
-\def (S O) in (let TMP_553 \def (lift_head k x x0 TMP_552 d) in (let TMP_554 
-\def (eq_ind_r T TMP_534 TMP_541 TMP_548 TMP_551 TMP_553) in (let TMP_555 
-\def (ex_intro T TMP_527 TMP_528 TMP_554) in (let TMP_556 \def (or_intror 
-TMP_508 TMP_518 TMP_555) in (let TMP_557 \def (eq_ind_r T TMP_481 TMP_498 
-TMP_556 t0 H3) in (eq_ind_r T TMP_468 TMP_479 TMP_557 t1 
-H6)))))))))))))))))))))))))))))))))))))) in (ex_ind T TMP_454 TMP_465 TMP_558 
-H5)))))))) in (or_ind TMP_362 TMP_367 TMP_378 TMP_450 TMP_559 
-H4))))))))))))))) in (ex_ind T TMP_344 TMP_355 TMP_560 H2)))))))) in (or_ind 
-TMP_153 TMP_157 TMP_168 TMP_341 TMP_561 H1)))))))))))))))))) in (T_ind TMP_9 
-TMP_37 TMP_149 TMP_562 t))))).
+ \lambda (t: T).(T_ind (\lambda (t0: T).(\forall (d: nat).(or (\forall (w: 
+T).(ex T (\lambda (v: T).(subst0 d w t0 (lift (S O) d v))))) (ex T (\lambda 
+(v: T).(eq T t0 (lift (S O) d v))))))) (\lambda (n: nat).(\lambda (d: 
+nat).(or_intror (\forall (w: T).(ex T (\lambda (v: T).(subst0 d w (TSort n) 
+(lift (S O) d v))))) (ex T (\lambda (v: T).(eq T (TSort n) (lift (S O) d 
+v)))) (ex_intro T (\lambda (v: T).(eq T (TSort n) (lift (S O) d v))) (TSort 
+n) (eq_ind_r T (TSort n) (\lambda (t0: T).(eq T (TSort n) t0)) (refl_equal T 
+(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 (or (\forall (w: T).(ex T (\lambda (v: 
+T).(subst0 d w (TLRef n) (lift (S O) d v))))) (ex T (\lambda (v: T).(eq T 
+(TLRef n) (lift (S O) d v))))) (\lambda (H: (lt n d)).(or_intror (\forall (w: 
+T).(ex T (\lambda (v: T).(subst0 d w (TLRef n) (lift (S O) d v))))) (ex T 
+(\lambda (v: T).(eq T (TLRef n) (lift (S O) d v)))) (ex_intro T (\lambda (v: 
+T).(eq T (TLRef n) (lift (S O) d v))) (TLRef n) (eq_ind_r T (TLRef n) 
+(\lambda (t0: T).(eq T (TLRef n) t0)) (refl_equal T (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).(or (\forall (w: T).(ex T (\lambda (v: T).(subst0 n0 
+w (TLRef n) (lift (S O) n0 v))))) (ex T (\lambda (v: T).(eq T (TLRef n) (lift 
+(S O) n0 v)))))) (or_introl (\forall (w: T).(ex T (\lambda (v: T).(subst0 n w 
+(TLRef n) (lift (S O) n v))))) (ex T (\lambda (v: T).(eq T (TLRef n) (lift (S 
+O) n v)))) (\lambda (w: T).(ex_intro T (\lambda (v: T).(subst0 n w (TLRef n) 
+(lift (S O) n v))) (lift n O w) (eq_ind_r T (lift (plus (S O) n) O w) 
+(\lambda (t0: T).(subst0 n w (TLRef n) t0)) (subst0_lref w n) (lift (S O) n 
+(lift n O w)) (lift_free w n (S O) O n (le_plus_r O n) (le_O_n n)))))) d H)) 
+(\lambda (H: (lt d n)).(or_intror (\forall (w: T).(ex T (\lambda (v: 
+T).(subst0 d w (TLRef n) (lift (S O) d v))))) (ex T (\lambda (v: T).(eq T 
+(TLRef n) (lift (S O) d v)))) (ex_intro T (\lambda (v: T).(eq T (TLRef n) 
+(lift (S O) d v))) (TLRef (pred n)) (eq_ind_r T (TLRef n) (\lambda (t0: 
+T).(eq T (TLRef n) t0)) (refl_equal T (TLRef n)) (lift (S O) d (TLRef (pred 
+n))) (lift_lref_gt d n H)))))))) (\lambda (k: K).(\lambda (t0: T).(\lambda 
+(H: ((\forall (d: nat).(or (\forall (w: T).(ex T (\lambda (v: T).(subst0 d w 
+t0 (lift (S O) d v))))) (ex T (\lambda (v: T).(eq T t0 (lift (S O) d 
+v)))))))).(\lambda (t1: T).(\lambda (H0: ((\forall (d: nat).(or (\forall (w: 
+T).(ex T (\lambda (v: T).(subst0 d w t1 (lift (S O) d v))))) (ex T (\lambda 
+(v: T).(eq T t1 (lift (S O) d v)))))))).(\lambda (d: nat).(let H_x \def (H d) 
+in (let H1 \def H_x in (or_ind (\forall (w: T).(ex T (\lambda (v: T).(subst0 
+d w t0 (lift (S O) d v))))) (ex T (\lambda (v: T).(eq T t0 (lift (S O) d 
+v)))) (or (\forall (w: T).(ex T (\lambda (v: T).(subst0 d w (THead k t0 t1) 
+(lift (S O) d v))))) (ex T (\lambda (v: T).(eq T (THead k t0 t1) (lift (S O) 
+d v))))) (\lambda (H2: ((\forall (w: T).(ex T (\lambda (v: T).(subst0 d w t0 
+(lift (S O) d v))))))).(let H_x0 \def (H0 (s k d)) in (let H3 \def H_x0 in 
+(or_ind (\forall (w: T).(ex T (\lambda (v: T).(subst0 (s k d) w t1 (lift (S 
+O) (s k d) v))))) (ex T (\lambda (v: T).(eq T t1 (lift (S O) (s k d) v)))) 
+(or (\forall (w: T).(ex T (\lambda (v: T).(subst0 d w (THead k t0 t1) (lift 
+(S O) d v))))) (ex T (\lambda (v: T).(eq T (THead k t0 t1) (lift (S O) d 
+v))))) (\lambda (H4: ((\forall (w: T).(ex T (\lambda (v: T).(subst0 (s k d) w 
+t1 (lift (S O) (s k d) v))))))).(or_introl (\forall (w: T).(ex T (\lambda (v: 
+T).(subst0 d w (THead k t0 t1) (lift (S O) d v))))) (ex T (\lambda (v: T).(eq 
+T (THead k t0 t1) (lift (S O) d v)))) (\lambda (w: T).(let H_x1 \def (H4 w) 
+in (let H5 \def H_x1 in (ex_ind T (\lambda (v: T).(subst0 (s k d) w t1 (lift 
+(S O) (s k d) v))) (ex T (\lambda (v: T).(subst0 d w (THead k t0 t1) (lift (S 
+O) d v)))) (\lambda (x: T).(\lambda (H6: (subst0 (s k d) w t1 (lift (S O) (s 
+k d) x))).(let H_x2 \def (H2 w) in (let H7 \def H_x2 in (ex_ind T (\lambda 
+(v: T).(subst0 d w t0 (lift (S O) d v))) (ex T (\lambda (v: T).(subst0 d w 
+(THead k t0 t1) (lift (S O) d v)))) (\lambda (x0: T).(\lambda (H8: (subst0 d 
+w t0 (lift (S O) d x0))).(ex_intro T (\lambda (v: T).(subst0 d w (THead k t0 
+t1) (lift (S O) d v))) (THead k x0 x) (eq_ind_r T (THead k (lift (S O) d x0) 
+(lift (S O) (s k d) x)) (\lambda (t2: T).(subst0 d w (THead k t0 t1) t2)) 
+(subst0_both w t0 (lift (S O) d x0) d H8 k t1 (lift (S O) (s k d) x) H6) 
+(lift (S O) d (THead k x0 x)) (lift_head k x0 x (S O) d))))) H7))))) H5)))))) 
+(\lambda (H4: (ex T (\lambda (v: T).(eq T t1 (lift (S O) (s k d) 
+v))))).(ex_ind T (\lambda (v: T).(eq T t1 (lift (S O) (s k d) v))) (or 
+(\forall (w: T).(ex T (\lambda (v: T).(subst0 d w (THead k t0 t1) (lift (S O) 
+d v))))) (ex T (\lambda (v: T).(eq T (THead k t0 t1) (lift (S O) d v))))) 
+(\lambda (x: T).(\lambda (H5: (eq T t1 (lift (S O) (s k d) x))).(eq_ind_r T 
+(lift (S O) (s k d) x) (\lambda (t2: T).(or (\forall (w: T).(ex T (\lambda 
+(v: T).(subst0 d w (THead k t0 t2) (lift (S O) d v))))) (ex T (\lambda (v: 
+T).(eq T (THead k t0 t2) (lift (S O) d v)))))) (or_introl (\forall (w: T).(ex 
+T (\lambda (v: T).(subst0 d w (THead k t0 (lift (S O) (s k d) x)) (lift (S O) 
+d v))))) (ex T (\lambda (v: T).(eq T (THead k t0 (lift (S O) (s k d) x)) 
+(lift (S O) d v)))) (\lambda (w: T).(let H_x1 \def (H2 w) in (let H6 \def 
+H_x1 in (ex_ind T (\lambda (v: T).(subst0 d w t0 (lift (S O) d v))) (ex T 
+(\lambda (v: T).(subst0 d w (THead k t0 (lift (S O) (s k d) x)) (lift (S O) d 
+v)))) (\lambda (x0: T).(\lambda (H7: (subst0 d w t0 (lift (S O) d 
+x0))).(ex_intro T (\lambda (v: T).(subst0 d w (THead k t0 (lift (S O) (s k d) 
+x)) (lift (S O) d v))) (THead k x0 x) (eq_ind_r T (THead k (lift (S O) d x0) 
+(lift (S O) (s k d) x)) (\lambda (t2: T).(subst0 d w (THead k t0 (lift (S O) 
+(s k d) x)) t2)) (subst0_fst w (lift (S O) d x0) t0 d H7 (lift (S O) (s k d) 
+x) k) (lift (S O) d (THead k x0 x)) (lift_head k x0 x (S O) d))))) H6))))) t1 
+H5))) H4)) H3)))) (\lambda (H2: (ex T (\lambda (v: T).(eq T t0 (lift (S O) d 
+v))))).(ex_ind T (\lambda (v: T).(eq T t0 (lift (S O) d v))) (or (\forall (w: 
+T).(ex T (\lambda (v: T).(subst0 d w (THead k t0 t1) (lift (S O) d v))))) (ex 
+T (\lambda (v: T).(eq T (THead k t0 t1) (lift (S O) d v))))) (\lambda (x: 
+T).(\lambda (H3: (eq T t0 (lift (S O) d x))).(let H_x0 \def (H0 (s k d)) in 
+(let H4 \def H_x0 in (or_ind (\forall (w: T).(ex T (\lambda (v: T).(subst0 (s 
+k d) w t1 (lift (S O) (s k d) v))))) (ex T (\lambda (v: T).(eq T t1 (lift (S 
+O) (s k d) v)))) (or (\forall (w: T).(ex T (\lambda (v: T).(subst0 d w (THead 
+k t0 t1) (lift (S O) d v))))) (ex T (\lambda (v: T).(eq T (THead k t0 t1) 
+(lift (S O) d v))))) (\lambda (H5: ((\forall (w: T).(ex T (\lambda (v: 
+T).(subst0 (s k d) w t1 (lift (S O) (s k d) v))))))).(eq_ind_r T (lift (S O) 
+d x) (\lambda (t2: T).(or (\forall (w: T).(ex T (\lambda (v: T).(subst0 d w 
+(THead k t2 t1) (lift (S O) d v))))) (ex T (\lambda (v: T).(eq T (THead k t2 
+t1) (lift (S O) d v)))))) (or_introl (\forall (w: T).(ex T (\lambda (v: 
+T).(subst0 d w (THead k (lift (S O) d x) t1) (lift (S O) d v))))) (ex T 
+(\lambda (v: T).(eq T (THead k (lift (S O) d x) t1) (lift (S O) d v)))) 
+(\lambda (w: T).(let H_x1 \def (H5 w) in (let H6 \def H_x1 in (ex_ind T 
+(\lambda (v: T).(subst0 (s k d) w t1 (lift (S O) (s k d) v))) (ex T (\lambda 
+(v: T).(subst0 d w (THead k (lift (S O) d x) t1) (lift (S O) d v)))) (\lambda 
+(x0: T).(\lambda (H7: (subst0 (s k d) w t1 (lift (S O) (s k d) 
+x0))).(ex_intro T (\lambda (v: T).(subst0 d w (THead k (lift (S O) d x) t1) 
+(lift (S O) d v))) (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).(subst0 d w (THead k (lift (S O) d x) t1) 
+t2)) (subst0_snd k w (lift (S O) (s k d) x0) t1 d H7 (lift (S O) d x)) (lift 
+(S O) d (THead k x x0)) (lift_head k x x0 (S O) d))))) H6))))) t0 H3)) 
+(\lambda (H5: (ex T (\lambda (v: T).(eq T t1 (lift (S O) (s k d) 
+v))))).(ex_ind T (\lambda (v: T).(eq T t1 (lift (S O) (s k d) v))) (or 
+(\forall (w: T).(ex T (\lambda (v: T).(subst0 d w (THead k t0 t1) (lift (S O) 
+d v))))) (ex T (\lambda (v: T).(eq T (THead k t0 t1) (lift (S O) d v))))) 
+(\lambda (x0: T).(\lambda (H6: (eq T t1 (lift (S O) (s k d) x0))).(eq_ind_r T 
+(lift (S O) (s k d) x0) (\lambda (t2: T).(or (\forall (w: T).(ex T (\lambda 
+(v: T).(subst0 d w (THead k t0 t2) (lift (S O) d v))))) (ex T (\lambda (v: 
+T).(eq T (THead k t0 t2) (lift (S O) d v)))))) (eq_ind_r T (lift (S O) d x) 
+(\lambda (t2: T).(or (\forall (w: T).(ex T (\lambda (v: T).(subst0 d w (THead 
+k t2 (lift (S O) (s k d) x0)) (lift (S O) d v))))) (ex T (\lambda (v: T).(eq 
+T (THead k t2 (lift (S O) (s k d) x0)) (lift (S O) d v)))))) (or_intror 
+(\forall (w: T).(ex T (\lambda (v: T).(subst0 d w (THead k (lift (S O) d x) 
+(lift (S O) (s k d) x0)) (lift (S O) d v))))) (ex T (\lambda (v: T).(eq T 
+(THead k (lift (S O) d x) (lift (S O) (s k d) x0)) (lift (S O) d v)))) 
+(ex_intro T (\lambda (v: T).(eq T (THead k (lift (S O) d x) (lift (S O) (s k 
+d) x0)) (lift (S O) d v))) (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).(eq T (THead k (lift (S O) d x) 
+(lift (S O) (s k d) x0)) t2)) (refl_equal T (THead k (lift (S O) d x) (lift 
+(S O) (s k d) x0))) (lift (S O) d (THead k x x0)) (lift_head k x x0 (S O) 
+d)))) t0 H3) t1 H6))) H5)) H4))))) H2)) H1))))))))) t).
 
 theorem dnf_dec:
  \forall (w: T).(\forall (t: T).(\forall (d: nat).(ex T (\lambda (v: T).(or 
 (subst0 d w t (lift (S O) d v)) (eq T t (lift (S O) d v)))))))
 \def
  \lambda (w: T).(\lambda (t: T).(\lambda (d: nat).(let H_x \def (dnf_dec2 t 
-d) in (let H \def H_x in (let TMP_4 \def (\forall (w0: T).(let TMP_3 \def 
-(\lambda (v: T).(let TMP_1 \def (S O) in (let TMP_2 \def (lift TMP_1 d v) in 
-(subst0 d w0 t TMP_2)))) in (ex T TMP_3))) in (let TMP_7 \def (\lambda (v: 
-T).(let TMP_5 \def (S O) in (let TMP_6 \def (lift TMP_5 d v) in (eq T t 
-TMP_6)))) in (let TMP_8 \def (ex T TMP_7) in (let TMP_15 \def (\lambda (v: 
-T).(let TMP_9 \def (S O) in (let TMP_10 \def (lift TMP_9 d v) in (let TMP_11 
-\def (subst0 d w t TMP_10) in (let TMP_12 \def (S O) in (let TMP_13 \def 
-(lift TMP_12 d v) in (let TMP_14 \def (eq T t TMP_13) in (or TMP_11 
-TMP_14)))))))) in (let TMP_16 \def (ex T TMP_15) in (let TMP_43 \def (\lambda 
-(H0: ((\forall (w0: T).(ex T (\lambda (v: T).(subst0 d w0 t (lift (S O) d 
-v))))))).(let H_x0 \def (H0 w) in (let H1 \def H_x0 in (let TMP_19 \def 
-(\lambda (v: T).(let TMP_17 \def (S O) in (let TMP_18 \def (lift TMP_17 d v) 
-in (subst0 d w t TMP_18)))) in (let TMP_26 \def (\lambda (v: T).(let TMP_20 
-\def (S O) in (let TMP_21 \def (lift TMP_20 d v) in (let TMP_22 \def (subst0 
-d w t TMP_21) in (let TMP_23 \def (S O) in (let TMP_24 \def (lift TMP_23 d v) 
-in (let TMP_25 \def (eq T t TMP_24) in (or TMP_22 TMP_25)))))))) in (let 
-TMP_27 \def (ex T TMP_26) in (let TMP_42 \def (\lambda (x: T).(\lambda (H2: 
-(subst0 d w t (lift (S O) d x))).(let TMP_34 \def (\lambda (v: T).(let TMP_28 
-\def (S O) in (let TMP_29 \def (lift TMP_28 d v) in (let TMP_30 \def (subst0 
-d w t TMP_29) in (let TMP_31 \def (S O) in (let TMP_32 \def (lift TMP_31 d v) 
-in (let TMP_33 \def (eq T t TMP_32) in (or TMP_30 TMP_33)))))))) in (let 
-TMP_35 \def (S O) in (let TMP_36 \def (lift TMP_35 d x) in (let TMP_37 \def 
-(subst0 d w t TMP_36) in (let TMP_38 \def (S O) in (let TMP_39 \def (lift 
-TMP_38 d x) in (let TMP_40 \def (eq T t TMP_39) in (let TMP_41 \def 
-(or_introl TMP_37 TMP_40 H2) in (ex_intro T TMP_34 x TMP_41))))))))))) in 
-(ex_ind T TMP_19 TMP_27 TMP_42 H1)))))))) in (let TMP_92 \def (\lambda (H0: 
-(ex T (\lambda (v: T).(eq T t (lift (S O) d v))))).(let TMP_46 \def (\lambda 
-(v: T).(let TMP_44 \def (S O) in (let TMP_45 \def (lift TMP_44 d v) in (eq T 
-t TMP_45)))) in (let TMP_53 \def (\lambda (v: T).(let TMP_47 \def (S O) in 
-(let TMP_48 \def (lift TMP_47 d v) in (let TMP_49 \def (subst0 d w t TMP_48) 
-in (let TMP_50 \def (S O) in (let TMP_51 \def (lift TMP_50 d v) in (let 
-TMP_52 \def (eq T t TMP_51) in (or TMP_49 TMP_52)))))))) in (let TMP_54 \def 
-(ex T TMP_53) in (let TMP_91 \def (\lambda (x: T).(\lambda (H1: (eq T t (lift 
-(S O) d x))).(let TMP_55 \def (S O) in (let TMP_56 \def (lift TMP_55 d x) in 
-(let TMP_64 \def (\lambda (t0: T).(let TMP_63 \def (\lambda (v: T).(let 
-TMP_57 \def (S O) in (let TMP_58 \def (lift TMP_57 d v) in (let TMP_59 \def 
-(subst0 d w t0 TMP_58) in (let TMP_60 \def (S O) in (let TMP_61 \def (lift 
-TMP_60 d v) in (let TMP_62 \def (eq T t0 TMP_61) in (or TMP_59 TMP_62)))))))) 
-in (ex T TMP_63))) in (let TMP_75 \def (\lambda (v: T).(let TMP_65 \def (S O) 
-in (let TMP_66 \def (lift TMP_65 d x) in (let TMP_67 \def (S O) in (let 
-TMP_68 \def (lift TMP_67 d v) in (let TMP_69 \def (subst0 d w TMP_66 TMP_68) 
-in (let TMP_70 \def (S O) in (let TMP_71 \def (lift TMP_70 d x) in (let 
-TMP_72 \def (S O) in (let TMP_73 \def (lift TMP_72 d v) in (let TMP_74 \def 
-(eq T TMP_71 TMP_73) in (or TMP_69 TMP_74)))))))))))) in (let TMP_76 \def (S 
-O) in (let TMP_77 \def (lift TMP_76 d x) in (let TMP_78 \def (S O) in (let 
-TMP_79 \def (lift TMP_78 d x) in (let TMP_80 \def (subst0 d w TMP_77 TMP_79) 
-in (let TMP_81 \def (S O) in (let TMP_82 \def (lift TMP_81 d x) in (let 
-TMP_83 \def (S O) in (let TMP_84 \def (lift TMP_83 d x) in (let TMP_85 \def 
-(eq T TMP_82 TMP_84) in (let TMP_86 \def (S O) in (let TMP_87 \def (lift 
-TMP_86 d x) in (let TMP_88 \def (refl_equal T TMP_87) in (let TMP_89 \def 
-(or_intror TMP_80 TMP_85 TMP_88) in (let TMP_90 \def (ex_intro T TMP_75 x 
-TMP_89) in (eq_ind_r T TMP_56 TMP_64 TMP_90 t H1)))))))))))))))))))))) in 
-(ex_ind T TMP_46 TMP_54 TMP_91 H0)))))) in (or_ind TMP_4 TMP_8 TMP_16 TMP_43 
-TMP_92 H)))))))))))).
+d) in (let H \def H_x in (or_ind (\forall (w0: T).(ex T (\lambda (v: 
+T).(subst0 d w0 t (lift (S O) d v))))) (ex T (\lambda (v: T).(eq T t (lift (S 
+O) d v)))) (ex T (\lambda (v: T).(or (subst0 d w t (lift (S O) d v)) (eq T t 
+(lift (S O) d v))))) (\lambda (H0: ((\forall (w0: T).(ex T (\lambda (v: 
+T).(subst0 d w0 t (lift (S O) d v))))))).(let H_x0 \def (H0 w) in (let H1 
+\def H_x0 in (ex_ind T (\lambda (v: T).(subst0 d w t (lift (S O) d v))) (ex T 
+(\lambda (v: T).(or (subst0 d w t (lift (S O) d v)) (eq T t (lift (S O) d 
+v))))) (\lambda (x: T).(\lambda (H2: (subst0 d w t (lift (S O) d 
+x))).(ex_intro T (\lambda (v: T).(or (subst0 d w t (lift (S O) d v)) (eq T t 
+(lift (S O) d v)))) x (or_introl (subst0 d w t (lift (S O) d x)) (eq T t 
+(lift (S O) d x)) H2)))) H1)))) (\lambda (H0: (ex T (\lambda (v: T).(eq T t 
+(lift (S O) d v))))).(ex_ind T (\lambda (v: T).(eq T t (lift (S O) d v))) (ex 
+T (\lambda (v: T).(or (subst0 d w t (lift (S O) d v)) (eq T t (lift (S O) d 
+v))))) (\lambda (x: T).(\lambda (H1: (eq T t (lift (S O) d x))).(eq_ind_r T 
+(lift (S O) d x) (\lambda (t0: T).(ex T (\lambda (v: T).(or (subst0 d w t0 
+(lift (S O) d v)) (eq T t0 (lift (S O) d v)))))) (ex_intro T (\lambda (v: 
+T).(or (subst0 d w (lift (S O) d x) (lift (S O) d v)) (eq T (lift (S O) d x) 
+(lift (S O) d v)))) x (or_intror (subst0 d w (lift (S O) d x) (lift (S O) d 
+x)) (eq T (lift (S O) d x) (lift (S O) d x)) (refl_equal T (lift (S O) d 
+x)))) t H1))) H0)) H))))).
 
index 04300ba9b17940db2d474d76edb124b2ad637d46..98238b9cfb48e37c8dd8d7980c90f2ff81ef5d5d 100644 (file)
@@ -20,87 +20,58 @@ theorem subst0_refl:
  \forall (u: T).(\forall (t: T).(\forall (d: nat).((subst0 d u t t) \to 
 (\forall (P: Prop).P))))
 \def
- \lambda (u: T).(\lambda (t: T).(let TMP_1 \def (\lambda (t0: T).(\forall (d: 
-nat).((subst0 d u t0 t0) \to (\forall (P: Prop).P)))) in (let TMP_3 \def 
-(\lambda (n: nat).(\lambda (d: nat).(\lambda (H: (subst0 d u (TSort n) (TSort 
-n))).(\lambda (P: Prop).(let TMP_2 \def (TSort n) in (subst0_gen_sort u TMP_2 
-d n H P)))))) in (let TMP_17 \def (\lambda (n: nat).(\lambda (d: 
-nat).(\lambda (H: (subst0 d u (TLRef n) (TLRef n))).(\lambda (P: Prop).(let 
-TMP_4 \def (eq nat n d) in (let TMP_5 \def (TLRef n) in (let TMP_6 \def (S n) 
-in (let TMP_7 \def (lift TMP_6 O u) in (let TMP_8 \def (eq T TMP_5 TMP_7) in 
-(let TMP_14 \def (\lambda (_: (eq nat n d)).(\lambda (H1: (eq T (TLRef n) 
-(lift (S n) O u))).(let TMP_9 \def (S n) in (let TMP_10 \def (le_O_n n) in 
-(let TMP_11 \def (S n) in (let TMP_12 \def (plus O TMP_11) in (let TMP_13 
-\def (le_n TMP_12) in (lift_gen_lref_false TMP_9 O n TMP_10 TMP_13 u H1 
-P)))))))) in (let TMP_15 \def (TLRef n) in (let TMP_16 \def (subst0_gen_lref 
-u TMP_15 d n H) in (land_ind TMP_4 TMP_8 P TMP_14 TMP_16))))))))))))) in (let 
-TMP_79 \def (\lambda (k: K).(\lambda (t0: T).(\lambda (H: ((\forall (d: 
-nat).((subst0 d u t0 t0) \to (\forall (P: Prop).P))))).(\lambda (t1: 
-T).(\lambda (H0: ((\forall (d: nat).((subst0 d u t1 t1) \to (\forall (P: 
-Prop).P))))).(\lambda (d: nat).(\lambda (H1: (subst0 d u (THead k t0 t1) 
-(THead k t0 t1))).(\lambda (P: Prop).(let TMP_20 \def (\lambda (u2: T).(let 
-TMP_18 \def (THead k t0 t1) in (let TMP_19 \def (THead k u2 t1) in (eq T 
-TMP_18 TMP_19)))) in (let TMP_21 \def (\lambda (u2: T).(subst0 d u t0 u2)) in 
-(let TMP_22 \def (ex2 T TMP_20 TMP_21) in (let TMP_25 \def (\lambda (t2: 
-T).(let TMP_23 \def (THead k t0 t1) in (let TMP_24 \def (THead k t0 t2) in 
-(eq T TMP_23 TMP_24)))) in (let TMP_27 \def (\lambda (t2: T).(let TMP_26 \def 
-(s k d) in (subst0 TMP_26 u t1 t2))) in (let TMP_28 \def (ex2 T TMP_25 
-TMP_27) in (let TMP_31 \def (\lambda (u2: T).(\lambda (t2: T).(let TMP_29 
-\def (THead k t0 t1) in (let TMP_30 \def (THead k u2 t2) in (eq T TMP_29 
-TMP_30))))) in (let TMP_32 \def (\lambda (u2: T).(\lambda (_: T).(subst0 d u 
-t0 u2))) in (let TMP_34 \def (\lambda (_: T).(\lambda (t2: T).(let TMP_33 
-\def (s k d) in (subst0 TMP_33 u t1 t2)))) in (let TMP_35 \def (ex3_2 T T 
-TMP_31 TMP_32 TMP_34) in (let TMP_45 \def (\lambda (H2: (ex2 T (\lambda (u2: 
-T).(eq T (THead k t0 t1) (THead k u2 t1))) (\lambda (u2: T).(subst0 d u t0 
-u2)))).(let TMP_38 \def (\lambda (u2: T).(let TMP_36 \def (THead k t0 t1) in 
-(let TMP_37 \def (THead k u2 t1) in (eq T TMP_36 TMP_37)))) in (let TMP_39 
-\def (\lambda (u2: T).(subst0 d u t0 u2)) in (let TMP_44 \def (\lambda (x: 
-T).(\lambda (H3: (eq T (THead k t0 t1) (THead k x t1))).(\lambda (H4: (subst0 
-d u t0 x)).(let TMP_40 \def (\lambda (e: T).(match e with [(TSort _) 
-\Rightarrow t0 | (TLRef _) \Rightarrow t0 | (THead _ t2 _) \Rightarrow t2])) 
-in (let TMP_41 \def (THead k t0 t1) in (let TMP_42 \def (THead k x t1) in 
-(let H5 \def (f_equal T T TMP_40 TMP_41 TMP_42 H3) in (let TMP_43 \def 
-(\lambda (t2: T).(subst0 d u t0 t2)) in (let H6 \def (eq_ind_r T x TMP_43 H4 
-t0 H5) in (H d H6 P)))))))))) in (ex2_ind T TMP_38 TMP_39 P TMP_44 H2))))) in 
-(let TMP_58 \def (\lambda (H2: (ex2 T (\lambda (t2: T).(eq T (THead k t0 t1) 
-(THead k t0 t2))) (\lambda (t2: T).(subst0 (s k d) u t1 t2)))).(let TMP_48 
-\def (\lambda (t2: T).(let TMP_46 \def (THead k t0 t1) in (let TMP_47 \def 
-(THead k t0 t2) in (eq T TMP_46 TMP_47)))) in (let TMP_50 \def (\lambda (t2: 
-T).(let TMP_49 \def (s k d) in (subst0 TMP_49 u t1 t2))) in (let TMP_57 \def 
-(\lambda (x: T).(\lambda (H3: (eq T (THead k t0 t1) (THead k t0 x))).(\lambda 
-(H4: (subst0 (s k d) u t1 x)).(let TMP_51 \def (\lambda (e: T).(match e with 
+ \lambda (u: T).(\lambda (t: T).(T_ind (\lambda (t0: T).(\forall (d: 
+nat).((subst0 d u t0 t0) \to (\forall (P: Prop).P)))) (\lambda (n: 
+nat).(\lambda (d: nat).(\lambda (H: (subst0 d u (TSort n) (TSort 
+n))).(\lambda (P: Prop).(subst0_gen_sort u (TSort n) d n H P))))) (\lambda 
+(n: nat).(\lambda (d: nat).(\lambda (H: (subst0 d u (TLRef n) (TLRef 
+n))).(\lambda (P: Prop).(land_ind (eq nat n d) (eq T (TLRef n) (lift (S n) O 
+u)) P (\lambda (_: (eq nat n d)).(\lambda (H1: (eq T (TLRef n) (lift (S n) O 
+u))).(lift_gen_lref_false (S n) O n (le_O_n n) (le_n (plus O (S n))) u H1 
+P))) (subst0_gen_lref u (TLRef n) d n H)))))) (\lambda (k: K).(\lambda (t0: 
+T).(\lambda (H: ((\forall (d: nat).((subst0 d u t0 t0) \to (\forall (P: 
+Prop).P))))).(\lambda (t1: T).(\lambda (H0: ((\forall (d: nat).((subst0 d u 
+t1 t1) \to (\forall (P: Prop).P))))).(\lambda (d: nat).(\lambda (H1: (subst0 
+d u (THead k t0 t1) (THead k t0 t1))).(\lambda (P: Prop).(or3_ind (ex2 T 
+(\lambda (u2: T).(eq T (THead k t0 t1) (THead k u2 t1))) (\lambda (u2: 
+T).(subst0 d u t0 u2))) (ex2 T (\lambda (t2: T).(eq T (THead k t0 t1) (THead 
+k t0 t2))) (\lambda (t2: T).(subst0 (s k d) u t1 t2))) (ex3_2 T T (\lambda 
+(u2: T).(\lambda (t2: T).(eq T (THead k t0 t1) (THead k u2 t2)))) (\lambda 
+(u2: T).(\lambda (_: T).(subst0 d u t0 u2))) (\lambda (_: T).(\lambda (t2: 
+T).(subst0 (s k d) u t1 t2)))) P (\lambda (H2: (ex2 T (\lambda (u2: T).(eq T 
+(THead k t0 t1) (THead k u2 t1))) (\lambda (u2: T).(subst0 d u t0 
+u2)))).(ex2_ind T (\lambda (u2: T).(eq T (THead k t0 t1) (THead k u2 t1))) 
+(\lambda (u2: T).(subst0 d u t0 u2)) P (\lambda (x: T).(\lambda (H3: (eq T 
+(THead k t0 t1) (THead k x t1))).(\lambda (H4: (subst0 d u t0 x)).(let H5 
+\def (f_equal T T (\lambda (e: T).(match e with [(TSort _) \Rightarrow t0 | 
+(TLRef _) \Rightarrow t0 | (THead _ t2 _) \Rightarrow t2])) (THead k t0 t1) 
+(THead k x t1) H3) in (let H6 \def (eq_ind_r T x (\lambda (t2: T).(subst0 d u 
+t0 t2)) H4 t0 H5) in (H d H6 P)))))) H2)) (\lambda (H2: (ex2 T (\lambda (t2: 
+T).(eq T (THead k t0 t1) (THead k t0 t2))) (\lambda (t2: T).(subst0 (s k d) u 
+t1 t2)))).(ex2_ind T (\lambda (t2: T).(eq T (THead k t0 t1) (THead k t0 t2))) 
+(\lambda (t2: T).(subst0 (s k d) u t1 t2)) P (\lambda (x: T).(\lambda (H3: 
+(eq T (THead k t0 t1) (THead k t0 x))).(\lambda (H4: (subst0 (s k d) u t1 
+x)).(let H5 \def (f_equal T T (\lambda (e: T).(match e with [(TSort _) 
+\Rightarrow t1 | (TLRef _) \Rightarrow t1 | (THead _ _ t2) \Rightarrow t2])) 
+(THead k t0 t1) (THead k t0 x) H3) in (let H6 \def (eq_ind_r T x (\lambda 
+(t2: T).(subst0 (s k d) u t1 t2)) H4 t1 H5) in (H0 (s k d) H6 P)))))) H2)) 
+(\lambda (H2: (ex3_2 T T (\lambda (u2: T).(\lambda (t2: T).(eq T (THead k t0 
+t1) (THead k u2 t2)))) (\lambda (u2: T).(\lambda (_: T).(subst0 d u t0 u2))) 
+(\lambda (_: T).(\lambda (t2: T).(subst0 (s k d) u t1 t2))))).(ex3_2_ind T T 
+(\lambda (u2: T).(\lambda (t2: T).(eq T (THead k t0 t1) (THead k u2 t2)))) 
+(\lambda (u2: T).(\lambda (_: T).(subst0 d u t0 u2))) (\lambda (_: 
+T).(\lambda (t2: T).(subst0 (s k d) u t1 t2))) P (\lambda (x0: T).(\lambda 
+(x1: T).(\lambda (H3: (eq T (THead k t0 t1) (THead k x0 x1))).(\lambda (H4: 
+(subst0 d u t0 x0)).(\lambda (H5: (subst0 (s k d) u t1 x1)).(let H6 \def 
+(f_equal T T (\lambda (e: T).(match e with [(TSort _) \Rightarrow t0 | (TLRef 
+_) \Rightarrow t0 | (THead _ t2 _) \Rightarrow t2])) (THead k t0 t1) (THead k 
+x0 x1) H3) in ((let H7 \def (f_equal T T (\lambda (e: T).(match e with 
 [(TSort _) \Rightarrow t1 | (TLRef _) \Rightarrow t1 | (THead _ _ t2) 
-\Rightarrow t2])) in (let TMP_52 \def (THead k t0 t1) in (let TMP_53 \def 
-(THead k t0 x) in (let H5 \def (f_equal T T TMP_51 TMP_52 TMP_53 H3) in (let 
-TMP_55 \def (\lambda (t2: T).(let TMP_54 \def (s k d) in (subst0 TMP_54 u t1 
-t2))) in (let H6 \def (eq_ind_r T x TMP_55 H4 t1 H5) in (let TMP_56 \def (s k 
-d) in (H0 TMP_56 H6 P))))))))))) in (ex2_ind T TMP_48 TMP_50 P TMP_57 H2))))) 
-in (let TMP_76 \def (\lambda (H2: (ex3_2 T T (\lambda (u2: T).(\lambda (t2: 
-T).(eq T (THead k t0 t1) (THead k u2 t2)))) (\lambda (u2: T).(\lambda (_: 
-T).(subst0 d u t0 u2))) (\lambda (_: T).(\lambda (t2: T).(subst0 (s k d) u t1 
-t2))))).(let TMP_61 \def (\lambda (u2: T).(\lambda (t2: T).(let TMP_59 \def 
-(THead k t0 t1) in (let TMP_60 \def (THead k u2 t2) in (eq T TMP_59 
-TMP_60))))) in (let TMP_62 \def (\lambda (u2: T).(\lambda (_: T).(subst0 d u 
-t0 u2))) in (let TMP_64 \def (\lambda (_: T).(\lambda (t2: T).(let TMP_63 
-\def (s k d) in (subst0 TMP_63 u t1 t2)))) in (let TMP_75 \def (\lambda (x0: 
-T).(\lambda (x1: T).(\lambda (H3: (eq T (THead k t0 t1) (THead k x0 
-x1))).(\lambda (H4: (subst0 d u t0 x0)).(\lambda (H5: (subst0 (s k d) u t1 
-x1)).(let TMP_65 \def (\lambda (e: T).(match e with [(TSort _) \Rightarrow t0 
-| (TLRef _) \Rightarrow t0 | (THead _ t2 _) \Rightarrow t2])) in (let TMP_66 
-\def (THead k t0 t1) in (let TMP_67 \def (THead k x0 x1) in (let H6 \def 
-(f_equal T T TMP_65 TMP_66 TMP_67 H3) in (let TMP_68 \def (\lambda (e: 
-T).(match e with [(TSort _) \Rightarrow t1 | (TLRef _) \Rightarrow t1 | 
-(THead _ _ t2) \Rightarrow t2])) in (let TMP_69 \def (THead k t0 t1) in (let 
-TMP_70 \def (THead k x0 x1) in (let H7 \def (f_equal T T TMP_68 TMP_69 TMP_70 
-H3) in (let TMP_74 \def (\lambda (H8: (eq T t0 x0)).(let TMP_72 \def (\lambda 
-(t2: T).(let TMP_71 \def (s k d) in (subst0 TMP_71 u t1 t2))) in (let H9 \def 
-(eq_ind_r T x1 TMP_72 H5 t1 H7) in (let TMP_73 \def (\lambda (t2: T).(subst0 
-d u t0 t2)) in (let H10 \def (eq_ind_r T x0 TMP_73 H4 t0 H8) in (H d H10 
-P)))))) in (TMP_74 H6))))))))))))))) in (ex3_2_ind T T TMP_61 TMP_62 TMP_64 P 
-TMP_75 H2)))))) in (let TMP_77 \def (THead k t0 t1) in (let TMP_78 \def 
-(subst0_gen_head k u t0 t1 TMP_77 d H1) in (or3_ind TMP_22 TMP_28 TMP_35 P 
-TMP_45 TMP_58 TMP_76 TMP_78)))))))))))))))))))))))) in (T_ind TMP_1 TMP_3 
-TMP_17 TMP_79 t)))))).
+\Rightarrow t2])) (THead k t0 t1) (THead k x0 x1) H3) in (\lambda (H8: (eq T 
+t0 x0)).(let H9 \def (eq_ind_r T x1 (\lambda (t2: T).(subst0 (s k d) u t1 
+t2)) H5 t1 H7) in (let H10 \def (eq_ind_r T x0 (\lambda (t2: T).(subst0 d u 
+t0 t2)) H4 t0 H8) in (H d H10 P))))) H6))))))) H2)) (subst0_gen_head k u t0 
+t1 (THead k t0 t1) d H1)))))))))) t)).
 
 theorem subst0_lift_lt:
  \forall (t1: T).(\forall (t2: T).(\forall (u: T).(\forall (i: nat).((subst0 
@@ -108,163 +79,69 @@ i u t1 t2) \to (\forall (d: nat).((lt i d) \to (\forall (h: nat).(subst0 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: (subst0 i u t1 t2)).(let TMP_6 \def (\lambda (n: nat).(\lambda (t: 
+(H: (subst0 i u t1 t2)).(subst0_ind (\lambda (n: nat).(\lambda (t: 
 T).(\lambda (t0: T).(\lambda (t3: T).(\forall (d: nat).((lt n d) \to (\forall 
-(h: nat).(let TMP_1 \def (S n) in (let TMP_2 \def (minus d TMP_1) in (let 
-TMP_3 \def (lift h TMP_2 t) in (let TMP_4 \def (lift h d t0) in (let TMP_5 
-\def (lift h d t3) in (subst0 n TMP_3 TMP_4 TMP_5))))))))))))) in (let TMP_59 
-\def (\lambda (v: T).(\lambda (i0: nat).(\lambda (d: nat).(\lambda (H0: (lt 
-i0 d)).(\lambda (h: nat).(let TMP_7 \def (TLRef i0) in (let TMP_14 \def 
-(\lambda (t: T).(let TMP_8 \def (S i0) in (let TMP_9 \def (minus d TMP_8) in 
-(let TMP_10 \def (lift h TMP_9 v) in (let TMP_11 \def (S i0) in (let TMP_12 
-\def (lift TMP_11 O v) in (let TMP_13 \def (lift h d TMP_12) in (subst0 i0 
-TMP_10 t TMP_13)))))))) in (let TMP_15 \def (S i0) in (let w \def (minus d 
-TMP_15) in (let TMP_16 \def (S i0) in (let TMP_17 \def (S i0) in (let TMP_18 
-\def (minus d TMP_17) in (let TMP_19 \def (plus TMP_16 TMP_18) in (let TMP_25 
-\def (\lambda (n: nat).(let TMP_20 \def (lift h w v) in (let TMP_21 \def 
-(TLRef i0) in (let TMP_22 \def (S i0) in (let TMP_23 \def (lift TMP_22 O v) 
-in (let TMP_24 \def (lift h n TMP_23) in (subst0 i0 TMP_20 TMP_21 
-TMP_24))))))) in (let TMP_26 \def (S i0) in (let TMP_27 \def (S i0) in (let 
-TMP_28 \def (minus d TMP_27) in (let TMP_29 \def (lift h TMP_28 v) in (let 
-TMP_30 \def (lift TMP_26 O TMP_29) in (let TMP_33 \def (\lambda (t: T).(let 
-TMP_31 \def (lift h w v) in (let TMP_32 \def (TLRef i0) in (subst0 i0 TMP_31 
-TMP_32 t)))) in (let TMP_34 \def (S i0) in (let TMP_35 \def (minus d TMP_34) 
-in (let TMP_36 \def (lift h TMP_35 v) in (let TMP_37 \def (subst0_lref TMP_36 
-i0) in (let TMP_38 \def (S i0) in (let TMP_39 \def (S i0) in (let TMP_40 \def 
-(minus d TMP_39) in (let TMP_41 \def (plus TMP_38 TMP_40) in (let TMP_42 \def 
-(S i0) in (let TMP_43 \def (lift TMP_42 O v) in (let TMP_44 \def (lift h 
-TMP_41 TMP_43) in (let TMP_45 \def (S i0) in (let TMP_46 \def (S i0) in (let 
-TMP_47 \def (minus d TMP_46) in (let TMP_48 \def (S i0) in (let TMP_49 \def 
-(minus d TMP_48) in (let TMP_50 \def (le_O_n TMP_49) in (let TMP_51 \def 
-(lift_d v h TMP_45 TMP_47 O TMP_50) in (let TMP_52 \def (eq_ind_r T TMP_30 
-TMP_33 TMP_37 TMP_44 TMP_51) in (let TMP_53 \def (S i0) in (let TMP_54 \def 
-(le_plus_minus_r TMP_53 d H0) in (let TMP_55 \def (eq_ind nat TMP_19 TMP_25 
-TMP_52 d TMP_54) in (let TMP_56 \def (TLRef i0) in (let TMP_57 \def (lift h d 
-TMP_56) in (let TMP_58 \def (lift_lref_lt i0 h d H0) in (eq_ind_r T TMP_7 
-TMP_14 TMP_55 TMP_57 TMP_58)))))))))))))))))))))))))))))))))))))))))))))) in 
-(let TMP_98 \def (\lambda (v: T).(\lambda (u2: T).(\lambda (u1: T).(\lambda 
+(h: nat).(subst0 n (lift h (minus d (S n)) t) (lift h d t0) (lift h d 
+t3))))))))) (\lambda (v: T).(\lambda (i0: nat).(\lambda (d: nat).(\lambda 
+(H0: (lt i0 d)).(\lambda (h: nat).(eq_ind_r T (TLRef i0) (\lambda (t: 
+T).(subst0 i0 (lift h (minus d (S i0)) v) t (lift h d (lift (S i0) O v)))) 
+(let w \def (minus d (S i0)) in (eq_ind nat (plus (S i0) (minus d (S i0))) 
+(\lambda (n: nat).(subst0 i0 (lift h w v) (TLRef i0) (lift h n (lift (S i0) O 
+v)))) (eq_ind_r T (lift (S i0) O (lift h (minus d (S i0)) v)) (\lambda (t: 
+T).(subst0 i0 (lift h w v) (TLRef i0) t)) (subst0_lref (lift h (minus d (S 
+i0)) v) i0) (lift h (plus (S i0) (minus d (S i0))) (lift (S i0) O v)) (lift_d 
+v h (S i0) (minus d (S i0)) O (le_O_n (minus d (S i0))))) d (le_plus_minus_r 
+(S i0) d H0))) (lift h d (TLRef i0)) (lift_lref_lt i0 h d H0))))))) (\lambda 
+(v: T).(\lambda (u2: T).(\lambda (u1: T).(\lambda (i0: nat).(\lambda (_: 
+(subst0 i0 v u1 u2)).(\lambda (H1: ((\forall (d: nat).((lt i0 d) \to (\forall 
+(h: nat).(subst0 i0 (lift h (minus d (S i0)) v) (lift h d u1) (lift h d 
+u2))))))).(\lambda (t: T).(\lambda (k: K).(\lambda (d: nat).(\lambda (H2: (lt 
+i0 d)).(\lambda (h: nat).(eq_ind_r T (THead k (lift h d u1) (lift h (s k d) 
+t)) (\lambda (t0: T).(subst0 i0 (lift h (minus d (S i0)) v) t0 (lift h d 
+(THead k u2 t)))) (eq_ind_r T (THead k (lift h d u2) (lift h (s k d) t)) 
+(\lambda (t0: T).(subst0 i0 (lift h (minus d (S i0)) v) (THead k (lift h d 
+u1) (lift h (s k d) t)) t0)) (subst0_fst (lift h (minus d (S i0)) v) (lift h 
+d u2) (lift h d u1) i0 (H1 d H2 h) (lift h (s k d) t) k) (lift h d (THead k 
+u2 t)) (lift_head k u2 t h d)) (lift h d (THead k u1 t)) (lift_head k u1 t h 
+d))))))))))))) (\lambda (k: K).(\lambda (v: T).(\lambda (t0: T).(\lambda (t3: 
+T).(\lambda (i0: nat).(\lambda (_: (subst0 (s k i0) v t3 t0)).(\lambda (H1: 
+((\forall (d: nat).((lt (s k i0) d) \to (\forall (h: nat).(subst0 (s k i0) 
+(lift h (minus d (S (s k i0))) v) (lift h d t3) (lift h d t0))))))).(\lambda 
+(u0: T).(\lambda (d: nat).(\lambda (H2: (lt i0 d)).(\lambda (h: nat).(let H3 
+\def (eq_ind_r nat (S (s k i0)) (\lambda (n: nat).(\forall (d0: nat).((lt (s 
+k i0) d0) \to (\forall (h0: nat).(subst0 (s k i0) (lift h0 (minus d0 n) v) 
+(lift h0 d0 t3) (lift h0 d0 t0)))))) H1 (s k (S i0)) (s_S k i0)) in (eq_ind_r 
+T (THead k (lift h d u0) (lift h (s k d) t3)) (\lambda (t: T).(subst0 i0 
+(lift h (minus d (S i0)) v) t (lift h d (THead k u0 t0)))) (eq_ind_r T (THead 
+k (lift h d u0) (lift h (s k d) t0)) (\lambda (t: T).(subst0 i0 (lift h 
+(minus d (S i0)) v) (THead k (lift h d u0) (lift h (s k d) t3)) t)) (eq_ind 
+nat (minus (s k d) (s k (S i0))) (\lambda (n: nat).(subst0 i0 (lift h n v) 
+(THead k (lift h d u0) (lift h (s k d) t3)) (THead k (lift h d u0) (lift h (s 
+k d) t0)))) (subst0_snd k (lift h (minus (s k d) (s k (S i0))) v) (lift h (s 
+k d) t0) (lift h (s k d) t3) i0 (H3 (s k d) (s_lt k i0 d H2) h) (lift h d 
+u0)) (minus d (S i0)) (minus_s_s k d (S i0))) (lift h d (THead k u0 t0)) 
+(lift_head k u0 t0 h d)) (lift h d (THead k u0 t3)) (lift_head k u0 t3 h 
+d)))))))))))))) (\lambda (v: T).(\lambda (u1: T).(\lambda (u2: T).(\lambda 
 (i0: nat).(\lambda (_: (subst0 i0 v u1 u2)).(\lambda (H1: ((\forall (d: 
 nat).((lt i0 d) \to (\forall (h: nat).(subst0 i0 (lift h (minus d (S i0)) v) 
-(lift h d u1) (lift h d u2))))))).(\lambda (t: T).(\lambda (k: K).(\lambda 
-(d: nat).(\lambda (H2: (lt i0 d)).(\lambda (h: nat).(let TMP_60 \def (lift h 
-d u1) in (let TMP_61 \def (s k d) in (let TMP_62 \def (lift h TMP_61 t) in 
-(let TMP_63 \def (THead k TMP_60 TMP_62) in (let TMP_69 \def (\lambda (t0: 
-T).(let TMP_64 \def (S i0) in (let TMP_65 \def (minus d TMP_64) in (let 
-TMP_66 \def (lift h TMP_65 v) in (let TMP_67 \def (THead k u2 t) in (let 
-TMP_68 \def (lift h d TMP_67) in (subst0 i0 TMP_66 t0 TMP_68))))))) in (let 
-TMP_70 \def (lift h d u2) in (let TMP_71 \def (s k d) in (let TMP_72 \def 
-(lift h TMP_71 t) in (let TMP_73 \def (THead k TMP_70 TMP_72) in (let TMP_81 
-\def (\lambda (t0: T).(let TMP_74 \def (S i0) in (let TMP_75 \def (minus d 
-TMP_74) in (let TMP_76 \def (lift h TMP_75 v) in (let TMP_77 \def (lift h d 
-u1) in (let TMP_78 \def (s k d) in (let TMP_79 \def (lift h TMP_78 t) in (let 
-TMP_80 \def (THead k TMP_77 TMP_79) in (subst0 i0 TMP_76 TMP_80 t0))))))))) 
-in (let TMP_82 \def (S i0) in (let TMP_83 \def (minus d TMP_82) in (let 
-TMP_84 \def (lift h TMP_83 v) in (let TMP_85 \def (lift h d u2) in (let 
-TMP_86 \def (lift h d u1) in (let TMP_87 \def (H1 d H2 h) in (let TMP_88 \def 
-(s k d) in (let TMP_89 \def (lift h TMP_88 t) in (let TMP_90 \def (subst0_fst 
-TMP_84 TMP_85 TMP_86 i0 TMP_87 TMP_89 k) in (let TMP_91 \def (THead k u2 t) 
-in (let TMP_92 \def (lift h d TMP_91) in (let TMP_93 \def (lift_head k u2 t h 
-d) in (let TMP_94 \def (eq_ind_r T TMP_73 TMP_81 TMP_90 TMP_92 TMP_93) in 
-(let TMP_95 \def (THead k u1 t) in (let TMP_96 \def (lift h d TMP_95) in (let 
-TMP_97 \def (lift_head k u1 t h d) in (eq_ind_r T TMP_63 TMP_69 TMP_94 TMP_96 
-TMP_97)))))))))))))))))))))))))))))))))))))) in (let TMP_172 \def (\lambda 
-(k: K).(\lambda (v: T).(\lambda (t0: T).(\lambda (t3: T).(\lambda (i0: 
-nat).(\lambda (_: (subst0 (s k i0) v t3 t0)).(\lambda (H1: ((\forall (d: 
-nat).((lt (s k i0) d) \to (\forall (h: nat).(subst0 (s k i0) (lift h (minus d 
-(S (s k i0))) v) (lift h d t3) (lift h d t0))))))).(\lambda (u0: T).(\lambda 
-(d: nat).(\lambda (H2: (lt i0 d)).(\lambda (h: nat).(let TMP_99 \def (s k i0) 
-in (let TMP_100 \def (S TMP_99) in (let TMP_106 \def (\lambda (n: 
-nat).(\forall (d0: nat).((lt (s k i0) d0) \to (\forall (h0: nat).(let TMP_101 
-\def (s k i0) in (let TMP_102 \def (minus d0 n) in (let TMP_103 \def (lift h0 
-TMP_102 v) in (let TMP_104 \def (lift h0 d0 t3) in (let TMP_105 \def (lift h0 
-d0 t0) in (subst0 TMP_101 TMP_103 TMP_104 TMP_105)))))))))) in (let TMP_107 
-\def (S i0) in (let TMP_108 \def (s k TMP_107) in (let TMP_109 \def (s_S k 
-i0) in (let H3 \def (eq_ind_r nat TMP_100 TMP_106 H1 TMP_108 TMP_109) in (let 
-TMP_110 \def (lift h d u0) in (let TMP_111 \def (s k d) in (let TMP_112 \def 
-(lift h TMP_111 t3) in (let TMP_113 \def (THead k TMP_110 TMP_112) in (let 
-TMP_119 \def (\lambda (t: T).(let TMP_114 \def (S i0) in (let TMP_115 \def 
-(minus d TMP_114) in (let TMP_116 \def (lift h TMP_115 v) in (let TMP_117 
-\def (THead k u0 t0) in (let TMP_118 \def (lift h d TMP_117) in (subst0 i0 
-TMP_116 t TMP_118))))))) in (let TMP_120 \def (lift h d u0) in (let TMP_121 
-\def (s k d) in (let TMP_122 \def (lift h TMP_121 t0) in (let TMP_123 \def 
-(THead k TMP_120 TMP_122) in (let TMP_131 \def (\lambda (t: T).(let TMP_124 
-\def (S i0) in (let TMP_125 \def (minus d TMP_124) in (let TMP_126 \def (lift 
-h TMP_125 v) in (let TMP_127 \def (lift h d u0) in (let TMP_128 \def (s k d) 
-in (let TMP_129 \def (lift h TMP_128 t3) in (let TMP_130 \def (THead k 
-TMP_127 TMP_129) in (subst0 i0 TMP_126 TMP_130 t))))))))) in (let TMP_132 
-\def (s k d) in (let TMP_133 \def (S i0) in (let TMP_134 \def (s k TMP_133) 
-in (let TMP_135 \def (minus TMP_132 TMP_134) in (let TMP_145 \def (\lambda 
-(n: nat).(let TMP_136 \def (lift h n v) in (let TMP_137 \def (lift h d u0) in 
-(let TMP_138 \def (s k d) in (let TMP_139 \def (lift h TMP_138 t3) in (let 
-TMP_140 \def (THead k TMP_137 TMP_139) in (let TMP_141 \def (lift h d u0) in 
-(let TMP_142 \def (s k d) in (let TMP_143 \def (lift h TMP_142 t0) in (let 
-TMP_144 \def (THead k TMP_141 TMP_143) in (subst0 i0 TMP_136 TMP_140 
-TMP_144))))))))))) in (let TMP_146 \def (s k d) in (let TMP_147 \def (S i0) 
-in (let TMP_148 \def (s k TMP_147) in (let TMP_149 \def (minus TMP_146 
-TMP_148) in (let TMP_150 \def (lift h TMP_149 v) in (let TMP_151 \def (s k d) 
-in (let TMP_152 \def (lift h TMP_151 t0) in (let TMP_153 \def (s k d) in (let 
-TMP_154 \def (lift h TMP_153 t3) in (let TMP_155 \def (s k d) in (let TMP_156 
-\def (s_lt k i0 d H2) in (let TMP_157 \def (H3 TMP_155 TMP_156 h) in (let 
-TMP_158 \def (lift h d u0) in (let TMP_159 \def (subst0_snd k TMP_150 TMP_152 
-TMP_154 i0 TMP_157 TMP_158) in (let TMP_160 \def (S i0) in (let TMP_161 \def 
-(minus d TMP_160) in (let TMP_162 \def (S i0) in (let TMP_163 \def (minus_s_s 
-k d TMP_162) in (let TMP_164 \def (eq_ind nat TMP_135 TMP_145 TMP_159 TMP_161 
-TMP_163) in (let TMP_165 \def (THead k u0 t0) in (let TMP_166 \def (lift h d 
-TMP_165) in (let TMP_167 \def (lift_head k u0 t0 h d) in (let TMP_168 \def 
-(eq_ind_r T TMP_123 TMP_131 TMP_164 TMP_166 TMP_167) in (let TMP_169 \def 
-(THead k u0 t3) in (let TMP_170 \def (lift h d TMP_169) in (let TMP_171 \def 
-(lift_head k u0 t3 h d) in (eq_ind_r T TMP_113 TMP_119 TMP_168 TMP_170 
-TMP_171)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) in (let 
-TMP_243 \def (\lambda (v: T).(\lambda (u1: T).(\lambda (u2: T).(\lambda (i0: 
-nat).(\lambda (_: (subst0 i0 v u1 u2)).(\lambda (H1: ((\forall (d: nat).((lt 
-i0 d) \to (\forall (h: nat).(subst0 i0 (lift h (minus d (S i0)) v) (lift h d 
-u1) (lift h d u2))))))).(\lambda (k: K).(\lambda (t0: T).(\lambda (t3: 
-T).(\lambda (_: (subst0 (s k i0) v t0 t3)).(\lambda (H3: ((\forall (d: 
+(lift h d u1) (lift h d u2))))))).(\lambda (k: K).(\lambda (t0: T).(\lambda 
+(t3: T).(\lambda (_: (subst0 (s k i0) v t0 t3)).(\lambda (H3: ((\forall (d: 
 nat).((lt (s k i0) d) \to (\forall (h: nat).(subst0 (s k i0) (lift h (minus d 
 (S (s k i0))) v) (lift h d t0) (lift h d t3))))))).(\lambda (d: nat).(\lambda 
-(H4: (lt i0 d)).(\lambda (h: nat).(let TMP_173 \def (s k i0) in (let TMP_174 
-\def (S TMP_173) in (let TMP_180 \def (\lambda (n: nat).(\forall (d0: 
-nat).((lt (s k i0) d0) \to (\forall (h0: nat).(let TMP_175 \def (s k i0) in 
-(let TMP_176 \def (minus d0 n) in (let TMP_177 \def (lift h0 TMP_176 v) in 
-(let TMP_178 \def (lift h0 d0 t0) in (let TMP_179 \def (lift h0 d0 t3) in 
-(subst0 TMP_175 TMP_177 TMP_178 TMP_179)))))))))) in (let TMP_181 \def (S i0) 
-in (let TMP_182 \def (s k TMP_181) in (let TMP_183 \def (s_S k i0) in (let H5 
-\def (eq_ind_r nat TMP_174 TMP_180 H3 TMP_182 TMP_183) in (let TMP_184 \def 
-(lift h d u1) in (let TMP_185 \def (s k d) in (let TMP_186 \def (lift h 
-TMP_185 t0) in (let TMP_187 \def (THead k TMP_184 TMP_186) in (let TMP_193 
-\def (\lambda (t: T).(let TMP_188 \def (S i0) in (let TMP_189 \def (minus d 
-TMP_188) in (let TMP_190 \def (lift h TMP_189 v) in (let TMP_191 \def (THead 
-k u2 t3) in (let TMP_192 \def (lift h d TMP_191) in (subst0 i0 TMP_190 t 
-TMP_192))))))) in (let TMP_194 \def (lift h d u2) in (let TMP_195 \def (s k 
-d) in (let TMP_196 \def (lift h TMP_195 t3) in (let TMP_197 \def (THead k 
-TMP_194 TMP_196) in (let TMP_205 \def (\lambda (t: T).(let TMP_198 \def (S 
-i0) in (let TMP_199 \def (minus d TMP_198) in (let TMP_200 \def (lift h 
-TMP_199 v) in (let TMP_201 \def (lift h d u1) in (let TMP_202 \def (s k d) in 
-(let TMP_203 \def (lift h TMP_202 t0) in (let TMP_204 \def (THead k TMP_201 
-TMP_203) in (subst0 i0 TMP_200 TMP_204 t))))))))) in (let TMP_206 \def (S i0) 
-in (let TMP_207 \def (minus d TMP_206) in (let TMP_208 \def (lift h TMP_207 
-v) in (let TMP_209 \def (lift h d u1) in (let TMP_210 \def (lift h d u2) in 
-(let TMP_211 \def (H1 d H4 h) in (let TMP_212 \def (s k d) in (let TMP_213 
-\def (lift h TMP_212 t0) in (let TMP_214 \def (s k d) in (let TMP_215 \def 
-(lift h TMP_214 t3) in (let TMP_216 \def (s k d) in (let TMP_217 \def (S i0) 
-in (let TMP_218 \def (s k TMP_217) in (let TMP_219 \def (minus TMP_216 
-TMP_218) in (let TMP_226 \def (\lambda (n: nat).(let TMP_220 \def (s k i0) in 
-(let TMP_221 \def (lift h n v) in (let TMP_222 \def (s k d) in (let TMP_223 
-\def (lift h TMP_222 t0) in (let TMP_224 \def (s k d) in (let TMP_225 \def 
-(lift h TMP_224 t3) in (subst0 TMP_220 TMP_221 TMP_223 TMP_225)))))))) in 
-(let TMP_227 \def (s k d) in (let TMP_228 \def (s_lt k i0 d H4) in (let 
-TMP_229 \def (H5 TMP_227 TMP_228 h) in (let TMP_230 \def (S i0) in (let 
-TMP_231 \def (minus d TMP_230) in (let TMP_232 \def (S i0) in (let TMP_233 
-\def (minus_s_s k d TMP_232) in (let TMP_234 \def (eq_ind nat TMP_219 TMP_226 
-TMP_229 TMP_231 TMP_233) in (let TMP_235 \def (subst0_both TMP_208 TMP_209 
-TMP_210 i0 TMP_211 k TMP_213 TMP_215 TMP_234) in (let TMP_236 \def (THead k 
-u2 t3) in (let TMP_237 \def (lift h d TMP_236) in (let TMP_238 \def 
-(lift_head k u2 t3 h d) in (let TMP_239 \def (eq_ind_r T TMP_197 TMP_205 
-TMP_235 TMP_237 TMP_238) in (let TMP_240 \def (THead k u1 t0) in (let TMP_241 
-\def (lift h d TMP_240) in (let TMP_242 \def (lift_head k u1 t0 h d) in 
-(eq_ind_r T TMP_187 TMP_193 TMP_239 TMP_241 
-TMP_242))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) in 
-(subst0_ind TMP_6 TMP_59 TMP_98 TMP_172 TMP_243 i u t1 t2 H)))))))))).
+(H4: (lt i0 d)).(\lambda (h: nat).(let H5 \def (eq_ind_r nat (S (s k i0)) 
+(\lambda (n: nat).(\forall (d0: nat).((lt (s k i0) d0) \to (\forall (h0: 
+nat).(subst0 (s k i0) (lift h0 (minus d0 n) v) (lift h0 d0 t0) (lift h0 d0 
+t3)))))) H3 (s k (S i0)) (s_S k i0)) in (eq_ind_r T (THead k (lift h d u1) 
+(lift h (s k d) t0)) (\lambda (t: T).(subst0 i0 (lift h (minus d (S i0)) v) t 
+(lift h d (THead k u2 t3)))) (eq_ind_r T (THead k (lift h d u2) (lift h (s k 
+d) t3)) (\lambda (t: T).(subst0 i0 (lift h (minus d (S i0)) v) (THead k (lift 
+h d u1) (lift h (s k d) t0)) t)) (subst0_both (lift h (minus d (S i0)) v) 
+(lift h d u1) (lift h d u2) i0 (H1 d H4 h) k (lift h (s k d) t0) (lift h (s k 
+d) t3) (eq_ind nat (minus (s k d) (s k (S i0))) (\lambda (n: nat).(subst0 (s 
+k i0) (lift h n v) (lift h (s k d) t0) (lift h (s k d) t3))) (H5 (s k d) 
+(s_lt k i0 d H4) h) (minus d (S i0)) (minus_s_s k d (S i0)))) (lift h d 
+(THead k u2 t3)) (lift_head k u2 t3 h d)) (lift h d (THead k u1 t0)) 
+(lift_head k u1 t0 h d))))))))))))))))) i u t1 t2 H))))).
 
 theorem subst0_lift_ge:
  \forall (t1: T).(\forall (t2: T).(\forall (u: T).(\forall (i: nat).(\forall 
@@ -272,124 +149,57 @@ theorem subst0_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: (subst0 i u t1 t2)).(let TMP_4 \def (\lambda (n: 
+(h: nat).(\lambda (H: (subst0 i u t1 t2)).(subst0_ind (\lambda (n: 
 nat).(\lambda (t: T).(\lambda (t0: T).(\lambda (t3: T).(\forall (d: nat).((le 
-d n) \to (let TMP_1 \def (plus n h) in (let TMP_2 \def (lift h d t0) in (let 
-TMP_3 \def (lift h d t3) in (subst0 TMP_1 t TMP_2 TMP_3)))))))))) in (let 
-TMP_52 \def (\lambda (v: T).(\lambda (i0: nat).(\lambda (d: nat).(\lambda 
-(H0: (le d i0)).(let TMP_5 \def (plus i0 h) in (let TMP_6 \def (TLRef TMP_5) 
-in (let TMP_11 \def (\lambda (t: T).(let TMP_7 \def (plus i0 h) in (let TMP_8 
-\def (S i0) in (let TMP_9 \def (lift TMP_8 O v) in (let TMP_10 \def (lift h d 
-TMP_9) in (subst0 TMP_7 v t TMP_10)))))) in (let TMP_12 \def (S i0) in (let 
-TMP_13 \def (plus h TMP_12) in (let TMP_14 \def (lift TMP_13 O v) in (let 
-TMP_18 \def (\lambda (t: T).(let TMP_15 \def (plus i0 h) in (let TMP_16 \def 
-(plus i0 h) in (let TMP_17 \def (TLRef TMP_16) in (subst0 TMP_15 v TMP_17 
-t))))) in (let TMP_19 \def (plus h i0) in (let TMP_20 \def (S TMP_19) in (let 
-TMP_25 \def (\lambda (n: nat).(let TMP_21 \def (plus i0 h) in (let TMP_22 
-\def (plus i0 h) in (let TMP_23 \def (TLRef TMP_22) in (let TMP_24 \def (lift 
-n O v) in (subst0 TMP_21 v TMP_23 TMP_24)))))) in (let TMP_26 \def (plus h 
-i0) in (let TMP_31 \def (\lambda (n: nat).(let TMP_27 \def (TLRef n) in (let 
-TMP_28 \def (plus h i0) in (let TMP_29 \def (S TMP_28) in (let TMP_30 \def 
-(lift TMP_29 O v) in (subst0 n v TMP_27 TMP_30)))))) in (let TMP_32 \def 
-(plus h i0) in (let TMP_33 \def (subst0_lref v TMP_32) in (let TMP_34 \def 
-(plus i0 h) in (let TMP_35 \def (plus_sym i0 h) in (let TMP_36 \def (eq_ind_r 
-nat TMP_26 TMP_31 TMP_33 TMP_34 TMP_35) in (let TMP_37 \def (S i0) in (let 
-TMP_38 \def (plus h TMP_37) in (let TMP_39 \def (plus_n_Sm h i0) in (let 
-TMP_40 \def (eq_ind nat TMP_20 TMP_25 TMP_36 TMP_38 TMP_39) in (let TMP_41 
-\def (S i0) in (let TMP_42 \def (lift TMP_41 O v) in (let TMP_43 \def (lift h 
-d TMP_42) in (let TMP_44 \def (S i0) in (let TMP_45 \def (le_S d i0 H0) in 
-(let TMP_46 \def (le_O_n d) in (let TMP_47 \def (lift_free v TMP_44 h O d 
-TMP_45 TMP_46) in (let TMP_48 \def (eq_ind_r T TMP_14 TMP_18 TMP_40 TMP_43 
-TMP_47) in (let TMP_49 \def (TLRef i0) in (let TMP_50 \def (lift h d TMP_49) 
-in (let TMP_51 \def (lift_lref_ge i0 h d H0) in (eq_ind_r T TMP_6 TMP_11 
-TMP_48 TMP_50 TMP_51))))))))))))))))))))))))))))))))))))) in (let TMP_85 \def 
-(\lambda (v: T).(\lambda (u2: T).(\lambda (u1: T).(\lambda (i0: nat).(\lambda 
-(_: (subst0 i0 v u1 u2)).(\lambda (H1: ((\forall (d: nat).((le d i0) \to 
-(subst0 (plus i0 h) v (lift h d u1) (lift h d u2)))))).(\lambda (t: 
-T).(\lambda (k: K).(\lambda (d: nat).(\lambda (H2: (le d i0)).(let TMP_53 
-\def (lift h d u1) in (let TMP_54 \def (s k d) in (let TMP_55 \def (lift h 
-TMP_54 t) in (let TMP_56 \def (THead k TMP_53 TMP_55) in (let TMP_60 \def 
-(\lambda (t0: T).(let TMP_57 \def (plus i0 h) in (let TMP_58 \def (THead k u2 
-t) in (let TMP_59 \def (lift h d TMP_58) in (subst0 TMP_57 v t0 TMP_59))))) 
-in (let TMP_61 \def (lift h d u2) in (let TMP_62 \def (s k d) in (let TMP_63 
-\def (lift h TMP_62 t) in (let TMP_64 \def (THead k TMP_61 TMP_63) in (let 
-TMP_70 \def (\lambda (t0: T).(let TMP_65 \def (plus i0 h) in (let TMP_66 \def 
-(lift h d u1) in (let TMP_67 \def (s k d) in (let TMP_68 \def (lift h TMP_67 
-t) in (let TMP_69 \def (THead k TMP_66 TMP_68) in (subst0 TMP_65 v TMP_69 
-t0))))))) in (let TMP_71 \def (lift h d u2) in (let TMP_72 \def (lift h d u1) 
-in (let TMP_73 \def (plus i0 h) in (let TMP_74 \def (H1 d H2) in (let TMP_75 
-\def (s k d) in (let TMP_76 \def (lift h TMP_75 t) in (let TMP_77 \def 
-(subst0_fst v TMP_71 TMP_72 TMP_73 TMP_74 TMP_76 k) in (let TMP_78 \def 
-(THead k u2 t) in (let TMP_79 \def (lift h d TMP_78) in (let TMP_80 \def 
-(lift_head k u2 t h d) in (let TMP_81 \def (eq_ind_r T TMP_64 TMP_70 TMP_77 
-TMP_79 TMP_80) in (let TMP_82 \def (THead k u1 t) in (let TMP_83 \def (lift h 
-d TMP_82) in (let TMP_84 \def (lift_head k u1 t h d) in (eq_ind_r T TMP_56 
-TMP_60 TMP_81 TMP_83 TMP_84))))))))))))))))))))))))))))))))))) in (let 
-TMP_129 \def (\lambda (k: K).(\lambda (v: T).(\lambda (t0: T).(\lambda (t3: 
-T).(\lambda (i0: nat).(\lambda (_: (subst0 (s k i0) v t3 t0)).(\lambda (H1: 
-((\forall (d: nat).((le d (s k i0)) \to (subst0 (plus (s k i0) h) v (lift h d 
-t3) (lift h d t0)))))).(\lambda (u0: T).(\lambda (d: nat).(\lambda (H2: (le d 
-i0)).(let TMP_86 \def (s k i0) in (let TMP_87 \def (plus TMP_86 h) in (let 
-TMP_90 \def (\lambda (n: nat).(\forall (d0: nat).((le d0 (s k i0)) \to (let 
-TMP_88 \def (lift h d0 t3) in (let TMP_89 \def (lift h d0 t0) in (subst0 n v 
-TMP_88 TMP_89)))))) in (let TMP_91 \def (plus i0 h) in (let TMP_92 \def (s k 
-TMP_91) in (let TMP_93 \def (s_plus k i0 h) in (let H3 \def (eq_ind_r nat 
-TMP_87 TMP_90 H1 TMP_92 TMP_93) in (let TMP_94 \def (lift h d u0) in (let 
-TMP_95 \def (s k d) in (let TMP_96 \def (lift h TMP_95 t3) in (let TMP_97 
-\def (THead k TMP_94 TMP_96) in (let TMP_101 \def (\lambda (t: T).(let TMP_98 
-\def (plus i0 h) in (let TMP_99 \def (THead k u0 t0) in (let TMP_100 \def 
-(lift h d TMP_99) in (subst0 TMP_98 v t TMP_100))))) in (let TMP_102 \def 
-(lift h d u0) in (let TMP_103 \def (s k d) in (let TMP_104 \def (lift h 
-TMP_103 t0) in (let TMP_105 \def (THead k TMP_102 TMP_104) in (let TMP_111 
-\def (\lambda (t: T).(let TMP_106 \def (plus i0 h) in (let TMP_107 \def (lift 
-h d u0) in (let TMP_108 \def (s k d) in (let TMP_109 \def (lift h TMP_108 t3) 
-in (let TMP_110 \def (THead k TMP_107 TMP_109) in (subst0 TMP_106 v TMP_110 
-t))))))) in (let TMP_112 \def (s k d) in (let TMP_113 \def (lift h TMP_112 
-t0) in (let TMP_114 \def (s k d) in (let TMP_115 \def (lift h TMP_114 t3) in 
-(let TMP_116 \def (plus i0 h) in (let TMP_117 \def (s k d) in (let TMP_118 
-\def (s_le k d i0 H2) in (let TMP_119 \def (H3 TMP_117 TMP_118) in (let 
-TMP_120 \def (lift h d u0) in (let TMP_121 \def (subst0_snd k v TMP_113 
-TMP_115 TMP_116 TMP_119 TMP_120) in (let TMP_122 \def (THead k u0 t0) in (let 
-TMP_123 \def (lift h d TMP_122) in (let TMP_124 \def (lift_head k u0 t0 h d) 
-in (let TMP_125 \def (eq_ind_r T TMP_105 TMP_111 TMP_121 TMP_123 TMP_124) in 
-(let TMP_126 \def (THead k u0 t3) in (let TMP_127 \def (lift h d TMP_126) in 
-(let TMP_128 \def (lift_head k u0 t3 h d) in (eq_ind_r T TMP_97 TMP_101 
-TMP_125 TMP_127 TMP_128))))))))))))))))))))))))))))))))))))))))))))) in (let 
-TMP_175 \def (\lambda (v: T).(\lambda (u1: T).(\lambda (u2: T).(\lambda (i0: 
+d n) \to (subst0 (plus n h) t (lift h d t0) (lift h d t3)))))))) (\lambda (v: 
+T).(\lambda (i0: nat).(\lambda (d: nat).(\lambda (H0: (le d i0)).(eq_ind_r T 
+(TLRef (plus i0 h)) (\lambda (t: T).(subst0 (plus i0 h) v t (lift h d (lift 
+(S i0) O v)))) (eq_ind_r T (lift (plus h (S i0)) O v) (\lambda (t: T).(subst0 
+(plus i0 h) v (TLRef (plus i0 h)) t)) (eq_ind nat (S (plus h i0)) (\lambda 
+(n: nat).(subst0 (plus i0 h) v (TLRef (plus i0 h)) (lift n O v))) (eq_ind_r 
+nat (plus h i0) (\lambda (n: nat).(subst0 n v (TLRef n) (lift (S (plus h i0)) 
+O v))) (subst0_lref v (plus h i0)) (plus i0 h) (plus_sym i0 h)) (plus h (S 
+i0)) (plus_n_Sm h i0)) (lift h d (lift (S i0) O v)) (lift_free v (S i0) h O d 
+(le_S d i0 H0) (le_O_n d))) (lift h d (TLRef i0)) (lift_lref_ge i0 h d 
+H0)))))) (\lambda (v: T).(\lambda (u2: T).(\lambda (u1: T).(\lambda (i0: 
 nat).(\lambda (_: (subst0 i0 v u1 u2)).(\lambda (H1: ((\forall (d: nat).((le 
-d i0) \to (subst0 (plus i0 h) v (lift h d u1) (lift h d u2)))))).(\lambda (k: 
+d i0) \to (subst0 (plus i0 h) v (lift h d u1) (lift h d u2)))))).(\lambda (t: 
+T).(\lambda (k: K).(\lambda (d: nat).(\lambda (H2: (le d i0)).(eq_ind_r T 
+(THead k (lift h d u1) (lift h (s k d) t)) (\lambda (t0: T).(subst0 (plus i0 
+h) v t0 (lift h d (THead k u2 t)))) (eq_ind_r T (THead k (lift h d u2) (lift 
+h (s k d) t)) (\lambda (t0: T).(subst0 (plus i0 h) v (THead k (lift h d u1) 
+(lift h (s k d) t)) t0)) (subst0_fst v (lift h d u2) (lift h d u1) (plus i0 
+h) (H1 d H2) (lift h (s k d) t) k) (lift h d (THead k u2 t)) (lift_head k u2 
+t h d)) (lift h d (THead k u1 t)) (lift_head k u1 t h d)))))))))))) (\lambda 
+(k: K).(\lambda (v: T).(\lambda (t0: T).(\lambda (t3: T).(\lambda (i0: 
+nat).(\lambda (_: (subst0 (s k i0) v t3 t0)).(\lambda (H1: ((\forall (d: 
+nat).((le d (s k i0)) \to (subst0 (plus (s k i0) h) v (lift h d t3) (lift h d 
+t0)))))).(\lambda (u0: T).(\lambda (d: nat).(\lambda (H2: (le d i0)).(let H3 
+\def (eq_ind_r nat (plus (s k i0) h) (\lambda (n: nat).(\forall (d0: 
+nat).((le d0 (s k i0)) \to (subst0 n v (lift h d0 t3) (lift h d0 t0))))) H1 
+(s k (plus i0 h)) (s_plus k i0 h)) in (eq_ind_r T (THead k (lift h d u0) 
+(lift h (s k d) t3)) (\lambda (t: T).(subst0 (plus i0 h) v t (lift h d (THead 
+k u0 t0)))) (eq_ind_r T (THead k (lift h d u0) (lift h (s k d) t0)) (\lambda 
+(t: T).(subst0 (plus i0 h) v (THead k (lift h d u0) (lift h (s k d) t3)) t)) 
+(subst0_snd k v (lift h (s k d) t0) (lift h (s k d) t3) (plus i0 h) (H3 (s k 
+d) (s_le k d i0 H2)) (lift h d u0)) (lift h d (THead k u0 t0)) (lift_head k 
+u0 t0 h d)) (lift h d (THead k u0 t3)) (lift_head k u0 t3 h d))))))))))))) 
+(\lambda (v: T).(\lambda (u1: T).(\lambda (u2: T).(\lambda (i0: nat).(\lambda 
+(_: (subst0 i0 v u1 u2)).(\lambda (H1: ((\forall (d: nat).((le d i0) \to 
+(subst0 (plus i0 h) v (lift h d u1) (lift h d u2)))))).(\lambda (k: 
 K).(\lambda (t0: T).(\lambda (t3: T).(\lambda (_: (subst0 (s k i0) v t0 
 t3)).(\lambda (H3: ((\forall (d: nat).((le d (s k i0)) \to (subst0 (plus (s k 
 i0) h) v (lift h d t0) (lift h d t3)))))).(\lambda (d: nat).(\lambda (H4: (le 
-d i0)).(let TMP_130 \def (s k i0) in (let TMP_131 \def (plus TMP_130 h) in 
-(let TMP_134 \def (\lambda (n: nat).(\forall (d0: nat).((le d0 (s k i0)) \to 
-(let TMP_132 \def (lift h d0 t0) in (let TMP_133 \def (lift h d0 t3) in 
-(subst0 n v TMP_132 TMP_133)))))) in (let TMP_135 \def (plus i0 h) in (let 
-TMP_136 \def (s k TMP_135) in (let TMP_137 \def (s_plus k i0 h) in (let H5 
-\def (eq_ind_r nat TMP_131 TMP_134 H3 TMP_136 TMP_137) in (let TMP_138 \def 
-(lift h d u1) in (let TMP_139 \def (s k d) in (let TMP_140 \def (lift h 
-TMP_139 t0) in (let TMP_141 \def (THead k TMP_138 TMP_140) in (let TMP_145 
-\def (\lambda (t: T).(let TMP_142 \def (plus i0 h) in (let TMP_143 \def 
-(THead k u2 t3) in (let TMP_144 \def (lift h d TMP_143) in (subst0 TMP_142 v 
-t TMP_144))))) in (let TMP_146 \def (lift h d u2) in (let TMP_147 \def (s k 
-d) in (let TMP_148 \def (lift h TMP_147 t3) in (let TMP_149 \def (THead k 
-TMP_146 TMP_148) in (let TMP_155 \def (\lambda (t: T).(let TMP_150 \def (plus 
-i0 h) in (let TMP_151 \def (lift h d u1) in (let TMP_152 \def (s k d) in (let 
-TMP_153 \def (lift h TMP_152 t0) in (let TMP_154 \def (THead k TMP_151 
-TMP_153) in (subst0 TMP_150 v TMP_154 t))))))) in (let TMP_156 \def (lift h d 
-u1) in (let TMP_157 \def (lift h d u2) in (let TMP_158 \def (plus i0 h) in 
-(let TMP_159 \def (H1 d H4) in (let TMP_160 \def (s k d) in (let TMP_161 \def 
-(lift h TMP_160 t0) in (let TMP_162 \def (s k d) in (let TMP_163 \def (lift h 
-TMP_162 t3) in (let TMP_164 \def (s k d) in (let TMP_165 \def (s_le k d i0 
-H4) in (let TMP_166 \def (H5 TMP_164 TMP_165) in (let TMP_167 \def 
-(subst0_both v TMP_156 TMP_157 TMP_158 TMP_159 k TMP_161 TMP_163 TMP_166) in 
-(let TMP_168 \def (THead k u2 t3) in (let TMP_169 \def (lift h d TMP_168) in 
-(let TMP_170 \def (lift_head k u2 t3 h d) in (let TMP_171 \def (eq_ind_r T 
-TMP_149 TMP_155 TMP_167 TMP_169 TMP_170) in (let TMP_172 \def (THead k u1 t0) 
-in (let TMP_173 \def (lift h d TMP_172) in (let TMP_174 \def (lift_head k u1 
-t0 h d) in (eq_ind_r T TMP_141 TMP_145 TMP_171 TMP_173 
-TMP_174)))))))))))))))))))))))))))))))))))))))))))))))))) in (subst0_ind 
-TMP_4 TMP_52 TMP_85 TMP_129 TMP_175 i u t1 t2 H))))))))))).
+d i0)).(let H5 \def (eq_ind_r nat (plus (s k i0) h) (\lambda (n: 
+nat).(\forall (d0: nat).((le d0 (s k i0)) \to (subst0 n v (lift h d0 t0) 
+(lift h d0 t3))))) H3 (s k (plus i0 h)) (s_plus k i0 h)) in (eq_ind_r T 
+(THead k (lift h d u1) (lift h (s k d) t0)) (\lambda (t: T).(subst0 (plus i0 
+h) v t (lift h d (THead k u2 t3)))) (eq_ind_r T (THead k (lift h d u2) (lift 
+h (s k d) t3)) (\lambda (t: T).(subst0 (plus i0 h) v (THead k (lift h d u1) 
+(lift h (s k d) t0)) t)) (subst0_both v (lift h d u1) (lift h d u2) (plus i0 
+h) (H1 d H4) k (lift h (s k d) t0) (lift h (s k d) t3) (H5 (s k d) (s_le k d 
+i0 H4))) (lift h d (THead k u2 t3)) (lift_head k u2 t3 h d)) (lift h d (THead 
+k u1 t0)) (lift_head k u1 t0 h d)))))))))))))))) i u t1 t2 H)))))).
 
 theorem subst0_lift_ge_S:
  \forall (t1: T).(\forall (t2: T).(\forall (u: T).(\forall (i: nat).((subst0 
@@ -397,22 +207,11 @@ i u t1 t2) \to (\forall (d: nat).((le d i) \to (subst0 (S i) u (lift (S O) d
 t1) (lift (S O) d t2))))))))
 \def
  \lambda (t1: T).(\lambda (t2: T).(\lambda (u: T).(\lambda (i: nat).(\lambda 
-(H: (subst0 i u t1 t2)).(\lambda (d: nat).(\lambda (H0: (le d i)).(let TMP_1 
-\def (S O) in (let TMP_2 \def (plus i TMP_1) in (let TMP_7 \def (\lambda (n: 
-nat).(let TMP_3 \def (S O) in (let TMP_4 \def (lift TMP_3 d t1) in (let TMP_5 
-\def (S O) in (let TMP_6 \def (lift TMP_5 d t2) in (subst0 n u TMP_4 
-TMP_6)))))) in (let TMP_8 \def (S O) in (let TMP_9 \def (subst0_lift_ge t1 t2 
-u i TMP_8 H d H0) in (let TMP_10 \def (S i) in (let TMP_11 \def (S O) in (let 
-TMP_12 \def (plus TMP_11 i) in (let TMP_14 \def (\lambda (n: nat).(let TMP_13 
-\def (S i) in (eq nat n TMP_13))) in (let TMP_15 \def (S O) in (let TMP_16 
-\def (plus TMP_15 i) in (let TMP_17 \def (S i) in (let TMP_18 \def (S i) in 
-(let TMP_19 \def (le_n TMP_18) in (let TMP_20 \def (S O) in (let TMP_21 \def 
-(plus TMP_20 i) in (let TMP_22 \def (le_n TMP_21) in (let TMP_23 \def 
-(le_antisym TMP_16 TMP_17 TMP_19 TMP_22) in (let TMP_24 \def (S O) in (let 
-TMP_25 \def (plus i TMP_24) in (let TMP_26 \def (S O) in (let TMP_27 \def 
-(plus_sym i TMP_26) in (let TMP_28 \def (eq_ind_r nat TMP_12 TMP_14 TMP_23 
-TMP_25 TMP_27) in (eq_ind nat TMP_2 TMP_7 TMP_9 TMP_10 
-TMP_28)))))))))))))))))))))))))))))).
+(H: (subst0 i u t1 t2)).(\lambda (d: nat).(\lambda (H0: (le d i)).(eq_ind nat 
+(plus i (S O)) (\lambda (n: nat).(subst0 n u (lift (S O) d t1) (lift (S O) d 
+t2))) (subst0_lift_ge t1 t2 u i (S O) H d H0) (S i) (eq_ind_r nat (plus (S O) 
+i) (\lambda (n: nat).(eq nat n (S i))) (le_antisym (plus (S O) i) (S i) (le_n 
+(S i)) (le_n (plus (S O) i))) (plus i (S O)) (plus_sym i (S O)))))))))).
 
 theorem subst0_lift_ge_s:
  \forall (t1: T).(\forall (t2: T).(\forall (u: T).(\forall (i: nat).((subst0 
index 7fe9f6ef23c9c742dfd06968d508d21c8481d9ce..5fcbf8405d19266e088619817dd7a7963262cdfa 100644 (file)
@@ -25,381 +25,200 @@ nat))).(((\forall (m: nat).(le (f m) (g m)))) \to ((lt (weight_map f (lift (S
 d) O u)) (g d)) \to (le (weight_map f z) (weight_map g t))))))))))
 \def
  \lambda (u: T).(\lambda (t: T).(\lambda (z: T).(\lambda (d: nat).(\lambda 
-(H: (subst0 d u t z)).(let TMP_3 \def (\lambda (n: nat).(\lambda (t0: 
-T).(\lambda (t1: T).(\lambda (t2: T).(\forall (f: ((nat \to nat))).(\forall 
-(g: ((nat \to nat))).(((\forall (m: nat).(le (f m) (g m)))) \to ((lt 
-(weight_map f (lift (S n) O t0)) (g n)) \to (let TMP_1 \def (weight_map f t2) 
-in (let TMP_2 \def (weight_map g t1) in (le TMP_1 TMP_2))))))))))) in (let 
-TMP_33 \def (\lambda (v: T).(\lambda (i: nat).(\lambda (f: ((nat \to 
-nat))).(\lambda (g: ((nat \to nat))).(\lambda (_: ((\forall (m: nat).(le (f 
-m) (g m))))).(\lambda (H1: (lt (weight_map f (lift (S i) O v)) (g i))).(let 
-TMP_4 \def (S i) in (let TMP_5 \def (lift TMP_4 O v) in (let TMP_6 \def 
-(weight_map f TMP_5) in (let TMP_7 \def (TLRef i) in (let TMP_8 \def 
-(weight_map g TMP_7) in (let TMP_9 \def (S i) in (let TMP_10 \def (lift TMP_9 
-O v) in (let TMP_11 \def (weight_map f TMP_10) in (let TMP_12 \def (S TMP_11) 
-in (let TMP_13 \def (TLRef i) in (let TMP_14 \def (weight_map g TMP_13) in 
-(let TMP_15 \def (S TMP_14) in (let TMP_16 \def (S i) in (let TMP_17 \def 
-(lift TMP_16 O v) in (let TMP_18 \def (weight_map f TMP_17) in (let TMP_19 
-\def (S TMP_18) in (let TMP_20 \def (S TMP_19) in (let TMP_21 \def (TLRef i) 
-in (let TMP_22 \def (weight_map g TMP_21) in (let TMP_23 \def (S TMP_22) in 
-(let TMP_24 \def (S i) in (let TMP_25 \def (lift TMP_24 O v) in (let TMP_26 
-\def (weight_map f TMP_25) in (let TMP_27 \def (S TMP_26) in (let TMP_28 \def 
-(TLRef i) in (let TMP_29 \def (weight_map g TMP_28) in (let TMP_30 \def 
-(le_n_S TMP_27 TMP_29 H1) in (let TMP_31 \def (le_S TMP_20 TMP_23 TMP_30) in 
-(let TMP_32 \def (le_S_n TMP_12 TMP_15 TMP_31) in (le_S_n TMP_6 TMP_8 
-TMP_32)))))))))))))))))))))))))))))))))))) in (let TMP_146 \def (\lambda (v: 
-T).(\lambda (u2: T).(\lambda (u1: T).(\lambda (i: nat).(\lambda (_: (subst0 i 
-v u1 u2)).(\lambda (H1: ((\forall (f: ((nat \to nat))).(\forall (g: ((nat \to 
+(H: (subst0 d u t z)).(subst0_ind (\lambda (n: nat).(\lambda (t0: T).(\lambda 
+(t1: T).(\lambda (t2: T).(\forall (f: ((nat \to nat))).(\forall (g: ((nat \to 
+nat))).(((\forall (m: nat).(le (f m) (g m)))) \to ((lt (weight_map f (lift (S 
+n) O t0)) (g n)) \to (le (weight_map f t2) (weight_map g t1)))))))))) 
+(\lambda (v: T).(\lambda (i: nat).(\lambda (f: ((nat \to nat))).(\lambda (g: 
+((nat \to nat))).(\lambda (_: ((\forall (m: nat).(le (f m) (g m))))).(\lambda 
+(H1: (lt (weight_map f (lift (S i) O v)) (g i))).(le_S_n (weight_map f (lift 
+(S i) O v)) (weight_map g (TLRef i)) (le_S_n (S (weight_map f (lift (S i) O 
+v))) (S (weight_map g (TLRef i))) (le_S (S (S (weight_map f (lift (S i) O 
+v)))) (S (weight_map g (TLRef i))) (le_n_S (S (weight_map f (lift (S i) O 
+v))) (weight_map g (TLRef i)) H1)))))))))) (\lambda (v: T).(\lambda (u2: 
+T).(\lambda (u1: T).(\lambda (i: nat).(\lambda (_: (subst0 i v u1 
+u2)).(\lambda (H1: ((\forall (f: ((nat \to nat))).(\forall (g: ((nat \to 
 nat))).(((\forall (m: nat).(le (f m) (g m)))) \to ((lt (weight_map f (lift (S 
 i) O v)) (g i)) \to (le (weight_map f u2) (weight_map g u1)))))))).(\lambda 
-(t0: T).(\lambda (k: K).(let TMP_38 \def (\lambda (k0: K).(\forall (f: ((nat 
-\to nat))).(\forall (g: ((nat \to nat))).(((\forall (m: nat).(le (f m) (g 
-m)))) \to ((lt (weight_map f (lift (S i) O v)) (g i)) \to (let TMP_34 \def 
-(THead k0 u2 t0) in (let TMP_35 \def (weight_map f TMP_34) in (let TMP_36 
-\def (THead k0 u1 t0) in (let TMP_37 \def (weight_map g TMP_36) in (le TMP_35 
-TMP_37)))))))))) in (let TMP_131 \def (\lambda (b: B).(let TMP_45 \def 
+(t0: T).(\lambda (k: K).(K_ind (\lambda (k0: K).(\forall (f: ((nat \to 
+nat))).(\forall (g: ((nat \to nat))).(((\forall (m: nat).(le (f m) (g m)))) 
+\to ((lt (weight_map f (lift (S i) O v)) (g i)) \to (le (weight_map f (THead 
+k0 u2 t0)) (weight_map g (THead k0 u1 t0)))))))) (\lambda (b: B).(B_ind 
 (\lambda (b0: B).(\forall (f: ((nat \to nat))).(\forall (g: ((nat \to 
 nat))).(((\forall (m: nat).(le (f m) (g m)))) \to ((lt (weight_map f (lift (S 
-i) O v)) (g i)) \to (let TMP_39 \def (Bind b0) in (let TMP_40 \def (THead 
-TMP_39 u2 t0) in (let TMP_41 \def (weight_map f TMP_40) in (let TMP_42 \def 
-(Bind b0) in (let TMP_43 \def (THead TMP_42 u1 t0) in (let TMP_44 \def 
-(weight_map g TMP_43) in (le TMP_41 TMP_44)))))))))))) in (let TMP_86 \def 
-(\lambda (f: ((nat \to nat))).(\lambda (g: ((nat \to nat))).(\lambda (H2: 
-((\forall (m: nat).(le (f m) (g m))))).(\lambda (H3: (lt (weight_map f (lift 
-(S i) O v)) (g i))).(let TMP_46 \def (weight_map f u2) in (let TMP_47 \def 
-(weight_map f u2) in (let TMP_48 \def (S TMP_47) in (let TMP_49 \def (wadd f 
-TMP_48) in (let TMP_50 \def (weight_map TMP_49 t0) in (let TMP_51 \def (plus 
-TMP_46 TMP_50) in (let TMP_52 \def (weight_map g u1) in (let TMP_53 \def 
-(weight_map g u1) in (let TMP_54 \def (S TMP_53) in (let TMP_55 \def (wadd g 
-TMP_54) in (let TMP_56 \def (weight_map TMP_55 t0) in (let TMP_57 \def (plus 
-TMP_52 TMP_56) in (let TMP_58 \def (weight_map f u2) in (let TMP_59 \def 
-(weight_map g u1) in (let TMP_60 \def (weight_map f u2) in (let TMP_61 \def 
-(S TMP_60) in (let TMP_62 \def (wadd f TMP_61) in (let TMP_63 \def 
-(weight_map TMP_62 t0) in (let TMP_64 \def (weight_map g u1) in (let TMP_65 
-\def (S TMP_64) in (let TMP_66 \def (wadd g TMP_65) in (let TMP_67 \def 
-(weight_map TMP_66 t0) in (let TMP_68 \def (H1 f g H2 H3) in (let TMP_69 \def 
-(weight_map f u2) in (let TMP_70 \def (S TMP_69) in (let TMP_71 \def (wadd f 
-TMP_70) in (let TMP_72 \def (weight_map g u1) in (let TMP_73 \def (S TMP_72) 
-in (let TMP_74 \def (wadd g TMP_73) in (let TMP_83 \def (\lambda (n: 
-nat).(let TMP_75 \def (weight_map f u2) in (let TMP_76 \def (S TMP_75) in 
-(let TMP_77 \def (weight_map g u1) in (let TMP_78 \def (S TMP_77) in (let 
-TMP_79 \def (weight_map f u2) in (let TMP_80 \def (weight_map g u1) in (let 
-TMP_81 \def (H1 f g H2 H3) in (let TMP_82 \def (le_n_S TMP_79 TMP_80 TMP_81) 
-in (wadd_le f g H2 TMP_76 TMP_78 TMP_82 n)))))))))) in (let TMP_84 \def 
-(weight_le t0 TMP_71 TMP_74 TMP_83) in (let TMP_85 \def (le_plus_plus TMP_58 
-TMP_59 TMP_63 TMP_67 TMP_68 TMP_84) in (le_n_S TMP_51 TMP_57 
-TMP_85))))))))))))))))))))))))))))))))))))) in (let TMP_108 \def (\lambda (f: 
-((nat \to nat))).(\lambda (g: ((nat \to nat))).(\lambda (H2: ((\forall (m: 
-nat).(le (f m) (g m))))).(\lambda (H3: (lt (weight_map f (lift (S i) O v)) (g 
-i))).(let TMP_87 \def (weight_map f u2) in (let TMP_88 \def (wadd f O) in 
-(let TMP_89 \def (weight_map TMP_88 t0) in (let TMP_90 \def (plus TMP_87 
-TMP_89) in (let TMP_91 \def (weight_map g u1) in (let TMP_92 \def (wadd g O) 
-in (let TMP_93 \def (weight_map TMP_92 t0) in (let TMP_94 \def (plus TMP_91 
-TMP_93) in (let TMP_95 \def (weight_map f u2) in (let TMP_96 \def (weight_map 
-g u1) in (let TMP_97 \def (wadd f O) in (let TMP_98 \def (weight_map TMP_97 
-t0) in (let TMP_99 \def (wadd g O) in (let TMP_100 \def (weight_map TMP_99 
-t0) in (let TMP_101 \def (H1 f g H2 H3) in (let TMP_102 \def (wadd f O) in 
-(let TMP_103 \def (wadd g O) in (let TMP_105 \def (\lambda (n: nat).(let 
-TMP_104 \def (le_O_n O) in (wadd_le f g H2 O O TMP_104 n))) in (let TMP_106 
-\def (weight_le t0 TMP_102 TMP_103 TMP_105) in (let TMP_107 \def 
-(le_plus_plus TMP_95 TMP_96 TMP_98 TMP_100 TMP_101 TMP_106) in (le_n_S TMP_90 
-TMP_94 TMP_107))))))))))))))))))))))))) in (let TMP_130 \def (\lambda (f: 
+i) O v)) (g i)) \to (le (weight_map f (THead (Bind b0) u2 t0)) (weight_map g 
+(THead (Bind b0) u1 t0)))))))) (\lambda (f: ((nat \to nat))).(\lambda (g: 
+((nat \to nat))).(\lambda (H2: ((\forall (m: nat).(le (f m) (g 
+m))))).(\lambda (H3: (lt (weight_map f (lift (S i) O v)) (g i))).(le_n_S 
+(plus (weight_map f u2) (weight_map (wadd f (S (weight_map f u2))) t0)) (plus 
+(weight_map g u1) (weight_map (wadd g (S (weight_map g u1))) t0)) 
+(le_plus_plus (weight_map f u2) (weight_map g u1) (weight_map (wadd f (S 
+(weight_map f u2))) t0) (weight_map (wadd g (S (weight_map g u1))) t0) (H1 f 
+g H2 H3) (weight_le t0 (wadd f (S (weight_map f u2))) (wadd g (S (weight_map 
+g u1))) (\lambda (n: nat).(wadd_le f g H2 (S (weight_map f u2)) (S 
+(weight_map g u1)) (le_n_S (weight_map f u2) (weight_map g u1) (H1 f g H2 
+H3)) n))))))))) (\lambda (f: ((nat \to nat))).(\lambda (g: ((nat \to 
+nat))).(\lambda (H2: ((\forall (m: nat).(le (f m) (g m))))).(\lambda (H3: (lt 
+(weight_map f (lift (S i) O v)) (g i))).(le_n_S (plus (weight_map f u2) 
+(weight_map (wadd f O) t0)) (plus (weight_map g u1) (weight_map (wadd g O) 
+t0)) (le_plus_plus (weight_map f u2) (weight_map g u1) (weight_map (wadd f O) 
+t0) (weight_map (wadd g O) t0) (H1 f g H2 H3) (weight_le t0 (wadd f O) (wadd 
+g O) (\lambda (n: nat).(wadd_le f g H2 O O (le_O_n O) n))))))))) (\lambda (f: 
 ((nat \to nat))).(\lambda (g: ((nat \to nat))).(\lambda (H2: ((\forall (m: 
 nat).(le (f m) (g m))))).(\lambda (H3: (lt (weight_map f (lift (S i) O v)) (g 
-i))).(let TMP_109 \def (weight_map f u2) in (let TMP_110 \def (wadd f O) in 
-(let TMP_111 \def (weight_map TMP_110 t0) in (let TMP_112 \def (plus TMP_109 
-TMP_111) in (let TMP_113 \def (weight_map g u1) in (let TMP_114 \def (wadd g 
-O) in (let TMP_115 \def (weight_map TMP_114 t0) in (let TMP_116 \def (plus 
-TMP_113 TMP_115) in (let TMP_117 \def (weight_map f u2) in (let TMP_118 \def 
-(weight_map g u1) in (let TMP_119 \def (wadd f O) in (let TMP_120 \def 
-(weight_map TMP_119 t0) in (let TMP_121 \def (wadd g O) in (let TMP_122 \def 
-(weight_map TMP_121 t0) in (let TMP_123 \def (H1 f g H2 H3) in (let TMP_124 
-\def (wadd f O) in (let TMP_125 \def (wadd g O) in (let TMP_127 \def (\lambda 
-(n: nat).(let TMP_126 \def (le_O_n O) in (wadd_le f g H2 O O TMP_126 n))) in 
-(let TMP_128 \def (weight_le t0 TMP_124 TMP_125 TMP_127) in (let TMP_129 \def 
-(le_plus_plus TMP_117 TMP_118 TMP_120 TMP_122 TMP_123 TMP_128) in (le_n_S 
-TMP_112 TMP_116 TMP_129))))))))))))))))))))))))) in (B_ind TMP_45 TMP_86 
-TMP_108 TMP_130 b)))))) in (let TMP_145 \def (\lambda (_: F).(\lambda (f0: 
-((nat \to nat))).(\lambda (g: ((nat \to nat))).(\lambda (H2: ((\forall (m: 
-nat).(le (f0 m) (g m))))).(\lambda (H3: (lt (weight_map f0 (lift (S i) O v)) 
-(g i))).(let TMP_132 \def (weight_map f0 u2) in (let TMP_133 \def (weight_map 
-f0 t0) in (let TMP_134 \def (plus TMP_132 TMP_133) in (let TMP_135 \def 
-(weight_map g u1) in (let TMP_136 \def (weight_map g t0) in (let TMP_137 \def 
-(plus TMP_135 TMP_136) in (let TMP_138 \def (weight_map f0 u2) in (let 
-TMP_139 \def (weight_map g u1) in (let TMP_140 \def (weight_map f0 t0) in 
-(let TMP_141 \def (weight_map g t0) in (let TMP_142 \def (H1 f0 g H2 H3) in 
-(let TMP_143 \def (weight_le t0 f0 g H2) in (let TMP_144 \def (le_plus_plus 
-TMP_138 TMP_139 TMP_140 TMP_141 TMP_142 TMP_143) in (le_n_S TMP_134 TMP_137 
-TMP_144))))))))))))))))))) in (K_ind TMP_38 TMP_131 TMP_145 k)))))))))))) in 
-(let TMP_302 \def (\lambda (k: K).(let TMP_151 \def (\lambda (k0: K).(\forall 
-(v: T).(\forall (t2: T).(\forall (t1: T).(\forall (i: nat).((subst0 (s k0 i) 
-v t1 t2) \to (((\forall (f: ((nat \to nat))).(\forall (g: ((nat \to 
+i))).(le_n_S (plus (weight_map f u2) (weight_map (wadd f O) t0)) (plus 
+(weight_map g u1) (weight_map (wadd g O) t0)) (le_plus_plus (weight_map f u2) 
+(weight_map g u1) (weight_map (wadd f O) t0) (weight_map (wadd g O) t0) (H1 f 
+g H2 H3) (weight_le t0 (wadd f O) (wadd g O) (\lambda (n: nat).(wadd_le f g 
+H2 O O (le_O_n O) n))))))))) b)) (\lambda (_: F).(\lambda (f0: ((nat \to 
+nat))).(\lambda (g: ((nat \to nat))).(\lambda (H2: ((\forall (m: nat).(le (f0 
+m) (g m))))).(\lambda (H3: (lt (weight_map f0 (lift (S i) O v)) (g 
+i))).(le_n_S (plus (weight_map f0 u2) (weight_map f0 t0)) (plus (weight_map g 
+u1) (weight_map g t0)) (le_plus_plus (weight_map f0 u2) (weight_map g u1) 
+(weight_map f0 t0) (weight_map g t0) (H1 f0 g H2 H3) (weight_le t0 f0 g 
+H2)))))))) k))))))))) (\lambda (k: K).(K_ind (\lambda (k0: K).(\forall (v: 
+T).(\forall (t2: T).(\forall (t1: T).(\forall (i: nat).((subst0 (s k0 i) v t1 
+t2) \to (((\forall (f: ((nat \to nat))).(\forall (g: ((nat \to 
 nat))).(((\forall (m: nat).(le (f m) (g m)))) \to ((lt (weight_map f (lift (S 
 (s k0 i)) O v)) (g (s k0 i))) \to (le (weight_map f t2) (weight_map g 
 t1))))))) \to (\forall (u0: T).(\forall (f: ((nat \to nat))).(\forall (g: 
 ((nat \to nat))).(((\forall (m: nat).(le (f m) (g m)))) \to ((lt (weight_map 
-f (lift (S i) O v)) (g i)) \to (let TMP_147 \def (THead k0 u0 t2) in (let 
-TMP_148 \def (weight_map f TMP_147) in (let TMP_149 \def (THead k0 u0 t1) in 
-(let TMP_150 \def (weight_map g TMP_149) in (le TMP_148 
-TMP_150))))))))))))))))) in (let TMP_287 \def (\lambda (b: B).(let TMP_158 
-\def (\lambda (b0: B).(\forall (v: T).(\forall (t2: T).(\forall (t1: 
-T).(\forall (i: nat).((subst0 (s (Bind b0) i) v t1 t2) \to (((\forall (f: 
-((nat \to nat))).(\forall (g: ((nat \to nat))).(((\forall (m: nat).(le (f m) 
-(g m)))) \to ((lt (weight_map f (lift (S (s (Bind b0) i)) O v)) (g (s (Bind 
-b0) i))) \to (le (weight_map f t2) (weight_map g t1))))))) \to (\forall (u0: 
+f (lift (S i) O v)) (g i)) \to (le (weight_map f (THead k0 u0 t2)) 
+(weight_map g (THead k0 u0 t1))))))))))))))) (\lambda (b: B).(B_ind (\lambda 
+(b0: B).(\forall (v: T).(\forall (t2: T).(\forall (t1: T).(\forall (i: 
+nat).((subst0 (s (Bind b0) i) v t1 t2) \to (((\forall (f: ((nat \to 
+nat))).(\forall (g: ((nat \to nat))).(((\forall (m: nat).(le (f m) (g m)))) 
+\to ((lt (weight_map f (lift (S (s (Bind b0) i)) O v)) (g (s (Bind b0) i))) 
+\to (le (weight_map f t2) (weight_map g t1))))))) \to (\forall (u0: 
 T).(\forall (f: ((nat \to nat))).(\forall (g: ((nat \to nat))).(((\forall (m: 
 nat).(le (f m) (g m)))) \to ((lt (weight_map f (lift (S i) O v)) (g i)) \to 
-(let TMP_152 \def (Bind b0) in (let TMP_153 \def (THead TMP_152 u0 t2) in 
-(let TMP_154 \def (weight_map f TMP_153) in (let TMP_155 \def (Bind b0) in 
-(let TMP_156 \def (THead TMP_155 u0 t1) in (let TMP_157 \def (weight_map g 
-TMP_156) in (le TMP_154 TMP_157))))))))))))))))))) in (let TMP_216 \def 
-(\lambda (v: T).(\lambda (t2: T).(\lambda (t1: T).(\lambda (i: nat).(\lambda 
-(_: (subst0 (S i) v t1 t2)).(\lambda (H1: ((\forall (f: ((nat \to 
-nat))).(\forall (g: ((nat \to nat))).(((\forall (m: nat).(le (f m) (g m)))) 
-\to ((lt (weight_map f (lift (S (S i)) O v)) (g (S i))) \to (le (weight_map f 
-t2) (weight_map g t1)))))))).(\lambda (u0: T).(\lambda (f: ((nat \to 
-nat))).(\lambda (g: ((nat \to nat))).(\lambda (H2: ((\forall (m: nat).(le (f 
-m) (g m))))).(\lambda (H3: (lt (weight_map f (lift (S i) O v)) (g i))).(let 
-TMP_159 \def (weight_map f u0) in (let TMP_160 \def (weight_map f u0) in (let 
-TMP_161 \def (S TMP_160) in (let TMP_162 \def (wadd f TMP_161) in (let 
-TMP_163 \def (weight_map TMP_162 t2) in (let TMP_164 \def (plus TMP_159 
-TMP_163) in (let TMP_165 \def (weight_map g u0) in (let TMP_166 \def 
-(weight_map g u0) in (let TMP_167 \def (S TMP_166) in (let TMP_168 \def (wadd 
-g TMP_167) in (let TMP_169 \def (weight_map TMP_168 t1) in (let TMP_170 \def 
-(plus TMP_165 TMP_169) in (let TMP_171 \def (weight_map f u0) in (let TMP_172 
-\def (weight_map g u0) in (let TMP_173 \def (weight_map f u0) in (let TMP_174 
-\def (S TMP_173) in (let TMP_175 \def (wadd f TMP_174) in (let TMP_176 \def 
-(weight_map TMP_175 t2) in (let TMP_177 \def (weight_map g u0) in (let 
-TMP_178 \def (S TMP_177) in (let TMP_179 \def (wadd g TMP_178) in (let 
-TMP_180 \def (weight_map TMP_179 t1) in (let TMP_181 \def (weight_le u0 f g 
-H2) in (let TMP_182 \def (weight_map f u0) in (let TMP_183 \def (S TMP_182) 
-in (let TMP_184 \def (wadd f TMP_183) in (let TMP_185 \def (weight_map g u0) 
-in (let TMP_186 \def (S TMP_185) in (let TMP_187 \def (wadd g TMP_186) in 
-(let TMP_196 \def (\lambda (m: nat).(let TMP_188 \def (weight_map f u0) in 
-(let TMP_189 \def (S TMP_188) in (let TMP_190 \def (weight_map g u0) in (let 
-TMP_191 \def (S TMP_190) in (let TMP_192 \def (weight_map f u0) in (let 
-TMP_193 \def (weight_map g u0) in (let TMP_194 \def (weight_le u0 f g H2) in 
-(let TMP_195 \def (le_n_S TMP_192 TMP_193 TMP_194) in (wadd_le f g H2 TMP_189 
-TMP_191 TMP_195 m)))))))))) in (let TMP_197 \def (S i) in (let TMP_198 \def 
-(lift TMP_197 O v) in (let TMP_199 \def (weight_map f TMP_198) in (let 
-TMP_201 \def (\lambda (n: nat).(let TMP_200 \def (g i) in (lt n TMP_200))) in 
-(let TMP_202 \def (weight_map f u0) in (let TMP_203 \def (S TMP_202) in (let 
-TMP_204 \def (wadd f TMP_203) in (let TMP_205 \def (S i) in (let TMP_206 \def 
-(S TMP_205) in (let TMP_207 \def (lift TMP_206 O v) in (let TMP_208 \def 
-(weight_map TMP_204 TMP_207) in (let TMP_209 \def (weight_map f u0) in (let 
-TMP_210 \def (S TMP_209) in (let TMP_211 \def (S i) in (let TMP_212 \def 
-(lift_weight_add_O TMP_210 v TMP_211 f) in (let TMP_213 \def (eq_ind nat 
-TMP_199 TMP_201 H3 TMP_208 TMP_212) in (let TMP_214 \def (H1 TMP_184 TMP_187 
-TMP_196 TMP_213) in (let TMP_215 \def (le_plus_plus TMP_171 TMP_172 TMP_176 
-TMP_180 TMP_181 TMP_214) in (le_n_S TMP_164 TMP_170 
-TMP_215)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) in (let 
-TMP_251 \def (\lambda (v: T).(\lambda (t2: T).(\lambda (t1: T).(\lambda (i: 
-nat).(\lambda (_: (subst0 (S i) v t1 t2)).(\lambda (H1: ((\forall (f: ((nat 
-\to nat))).(\forall (g: ((nat \to nat))).(((\forall (m: nat).(le (f m) (g 
-m)))) \to ((lt (weight_map f (lift (S (S i)) O v)) (g (S i))) \to (le 
+(le (weight_map f (THead (Bind b0) u0 t2)) (weight_map g (THead (Bind b0) u0 
+t1))))))))))))))) (\lambda (v: T).(\lambda (t2: T).(\lambda (t1: T).(\lambda 
+(i: nat).(\lambda (_: (subst0 (S i) v t1 t2)).(\lambda (H1: ((\forall (f: 
+((nat \to nat))).(\forall (g: ((nat \to nat))).(((\forall (m: nat).(le (f m) 
+(g m)))) \to ((lt (weight_map f (lift (S (S i)) O v)) (g (S i))) \to (le 
 (weight_map f t2) (weight_map g t1)))))))).(\lambda (u0: T).(\lambda (f: 
 ((nat \to nat))).(\lambda (g: ((nat \to nat))).(\lambda (H2: ((\forall (m: 
 nat).(le (f m) (g m))))).(\lambda (H3: (lt (weight_map f (lift (S i) O v)) (g 
-i))).(let TMP_217 \def (weight_map f u0) in (let TMP_218 \def (wadd f O) in 
-(let TMP_219 \def (weight_map TMP_218 t2) in (let TMP_220 \def (plus TMP_217 
-TMP_219) in (let TMP_221 \def (weight_map g u0) in (let TMP_222 \def (wadd g 
-O) in (let TMP_223 \def (weight_map TMP_222 t1) in (let TMP_224 \def (plus 
-TMP_221 TMP_223) in (let TMP_225 \def (weight_map f u0) in (let TMP_226 \def 
-(weight_map g u0) in (let TMP_227 \def (wadd f O) in (let TMP_228 \def 
-(weight_map TMP_227 t2) in (let TMP_229 \def (wadd g O) in (let TMP_230 \def 
-(weight_map TMP_229 t1) in (let TMP_231 \def (weight_le u0 f g H2) in (let 
-TMP_232 \def (wadd f O) in (let TMP_233 \def (wadd g O) in (let TMP_235 \def 
-(\lambda (m: nat).(let TMP_234 \def (le_O_n O) in (wadd_le f g H2 O O TMP_234 
-m))) in (let TMP_236 \def (S i) in (let TMP_237 \def (lift TMP_236 O v) in 
-(let TMP_238 \def (weight_map f TMP_237) in (let TMP_240 \def (\lambda (n: 
-nat).(let TMP_239 \def (g i) in (lt n TMP_239))) in (let TMP_241 \def (wadd f 
-O) in (let TMP_242 \def (S i) in (let TMP_243 \def (S TMP_242) in (let 
-TMP_244 \def (lift TMP_243 O v) in (let TMP_245 \def (weight_map TMP_241 
-TMP_244) in (let TMP_246 \def (S i) in (let TMP_247 \def (lift_weight_add_O O 
-v TMP_246 f) in (let TMP_248 \def (eq_ind nat TMP_238 TMP_240 H3 TMP_245 
-TMP_247) in (let TMP_249 \def (H1 TMP_232 TMP_233 TMP_235 TMP_248) in (let 
-TMP_250 \def (le_plus_plus TMP_225 TMP_226 TMP_228 TMP_230 TMP_231 TMP_249) 
-in (le_n_S TMP_220 TMP_224 
-TMP_250)))))))))))))))))))))))))))))))))))))))))))) in (let TMP_286 \def 
+i))).(le_n_S (plus (weight_map f u0) (weight_map (wadd f (S (weight_map f 
+u0))) t2)) (plus (weight_map g u0) (weight_map (wadd g (S (weight_map g u0))) 
+t1)) (le_plus_plus (weight_map f u0) (weight_map g u0) (weight_map (wadd f (S 
+(weight_map f u0))) t2) (weight_map (wadd g (S (weight_map g u0))) t1) 
+(weight_le u0 f g H2) (H1 (wadd f (S (weight_map f u0))) (wadd g (S 
+(weight_map g u0))) (\lambda (m: nat).(wadd_le f g H2 (S (weight_map f u0)) 
+(S (weight_map g u0)) (le_n_S (weight_map f u0) (weight_map g u0) (weight_le 
+u0 f g H2)) m)) (eq_ind nat (weight_map f (lift (S i) O v)) (\lambda (n: 
+nat).(lt n (g i))) H3 (weight_map (wadd f (S (weight_map f u0))) (lift (S (S 
+i)) O v)) (lift_weight_add_O (S (weight_map f u0)) v (S i) f)))))))))))))))) 
 (\lambda (v: T).(\lambda (t2: T).(\lambda (t1: T).(\lambda (i: nat).(\lambda 
 (_: (subst0 (S i) v t1 t2)).(\lambda (H1: ((\forall (f: ((nat \to 
 nat))).(\forall (g: ((nat \to nat))).(((\forall (m: nat).(le (f m) (g m)))) 
 \to ((lt (weight_map f (lift (S (S i)) O v)) (g (S i))) \to (le (weight_map f 
 t2) (weight_map g t1)))))))).(\lambda (u0: T).(\lambda (f: ((nat \to 
 nat))).(\lambda (g: ((nat \to nat))).(\lambda (H2: ((\forall (m: nat).(le (f 
-m) (g m))))).(\lambda (H3: (lt (weight_map f (lift (S i) O v)) (g i))).(let 
-TMP_252 \def (weight_map f u0) in (let TMP_253 \def (wadd f O) in (let 
-TMP_254 \def (weight_map TMP_253 t2) in (let TMP_255 \def (plus TMP_252 
-TMP_254) in (let TMP_256 \def (weight_map g u0) in (let TMP_257 \def (wadd g 
-O) in (let TMP_258 \def (weight_map TMP_257 t1) in (let TMP_259 \def (plus 
-TMP_256 TMP_258) in (let TMP_260 \def (weight_map f u0) in (let TMP_261 \def 
-(weight_map g u0) in (let TMP_262 \def (wadd f O) in (let TMP_263 \def 
-(weight_map TMP_262 t2) in (let TMP_264 \def (wadd g O) in (let TMP_265 \def 
-(weight_map TMP_264 t1) in (let TMP_266 \def (weight_le u0 f g H2) in (let 
-TMP_267 \def (wadd f O) in (let TMP_268 \def (wadd g O) in (let TMP_270 \def 
-(\lambda (m: nat).(let TMP_269 \def (le_O_n O) in (wadd_le f g H2 O O TMP_269 
-m))) in (let TMP_271 \def (S i) in (let TMP_272 \def (lift TMP_271 O v) in 
-(let TMP_273 \def (weight_map f TMP_272) in (let TMP_275 \def (\lambda (n: 
-nat).(let TMP_274 \def (g i) in (lt n TMP_274))) in (let TMP_276 \def (wadd f 
-O) in (let TMP_277 \def (S i) in (let TMP_278 \def (S TMP_277) in (let 
-TMP_279 \def (lift TMP_278 O v) in (let TMP_280 \def (weight_map TMP_276 
-TMP_279) in (let TMP_281 \def (S i) in (let TMP_282 \def (lift_weight_add_O O 
-v TMP_281 f) in (let TMP_283 \def (eq_ind nat TMP_273 TMP_275 H3 TMP_280 
-TMP_282) in (let TMP_284 \def (H1 TMP_267 TMP_268 TMP_270 TMP_283) in (let 
-TMP_285 \def (le_plus_plus TMP_260 TMP_261 TMP_263 TMP_265 TMP_266 TMP_284) 
-in (le_n_S TMP_255 TMP_259 
-TMP_285)))))))))))))))))))))))))))))))))))))))))))) in (B_ind TMP_158 TMP_216 
-TMP_251 TMP_286 b)))))) in (let TMP_301 \def (\lambda (_: F).(\lambda (v: 
-T).(\lambda (t2: T).(\lambda (t1: T).(\lambda (i: nat).(\lambda (_: (subst0 i 
-v t1 t2)).(\lambda (H1: ((\forall (f0: ((nat \to nat))).(\forall (g: ((nat 
-\to nat))).(((\forall (m: nat).(le (f0 m) (g m)))) \to ((lt (weight_map f0 
-(lift (S i) O v)) (g i)) \to (le (weight_map f0 t2) (weight_map g 
+m) (g m))))).(\lambda (H3: (lt (weight_map f (lift (S i) O v)) (g 
+i))).(le_n_S (plus (weight_map f u0) (weight_map (wadd f O) t2)) (plus 
+(weight_map g u0) (weight_map (wadd g O) t1)) (le_plus_plus (weight_map f u0) 
+(weight_map g u0) (weight_map (wadd f O) t2) (weight_map (wadd g O) t1) 
+(weight_le u0 f g H2) (H1 (wadd f O) (wadd g O) (\lambda (m: nat).(wadd_le f 
+g H2 O O (le_O_n O) m)) (eq_ind nat (weight_map f (lift (S i) O v)) (\lambda 
+(n: nat).(lt n (g i))) H3 (weight_map (wadd f O) (lift (S (S i)) O v)) 
+(lift_weight_add_O O v (S i) f)))))))))))))))) (\lambda (v: T).(\lambda (t2: 
+T).(\lambda (t1: T).(\lambda (i: nat).(\lambda (_: (subst0 (S i) v t1 
+t2)).(\lambda (H1: ((\forall (f: ((nat \to nat))).(\forall (g: ((nat \to 
+nat))).(((\forall (m: nat).(le (f m) (g m)))) \to ((lt (weight_map f (lift (S 
+(S i)) O v)) (g (S i))) \to (le (weight_map f t2) (weight_map g 
+t1)))))))).(\lambda (u0: T).(\lambda (f: ((nat \to nat))).(\lambda (g: ((nat 
+\to nat))).(\lambda (H2: ((\forall (m: nat).(le (f m) (g m))))).(\lambda (H3: 
+(lt (weight_map f (lift (S i) O v)) (g i))).(le_n_S (plus (weight_map f u0) 
+(weight_map (wadd f O) t2)) (plus (weight_map g u0) (weight_map (wadd g O) 
+t1)) (le_plus_plus (weight_map f u0) (weight_map g u0) (weight_map (wadd f O) 
+t2) (weight_map (wadd g O) t1) (weight_le u0 f g H2) (H1 (wadd f O) (wadd g 
+O) (\lambda (m: nat).(wadd_le f g H2 O O (le_O_n O) m)) (eq_ind nat 
+(weight_map f (lift (S i) O v)) (\lambda (n: nat).(lt n (g i))) H3 
+(weight_map (wadd f O) (lift (S (S i)) O v)) (lift_weight_add_O O v (S i) 
+f)))))))))))))))) b)) (\lambda (_: F).(\lambda (v: T).(\lambda (t2: 
+T).(\lambda (t1: T).(\lambda (i: nat).(\lambda (_: (subst0 i v t1 
+t2)).(\lambda (H1: ((\forall (f0: ((nat \to nat))).(\forall (g: ((nat \to 
+nat))).(((\forall (m: nat).(le (f0 m) (g m)))) \to ((lt (weight_map f0 (lift 
+(S i) O v)) (g i)) \to (le (weight_map f0 t2) (weight_map g 
 t1)))))))).(\lambda (u0: T).(\lambda (f0: ((nat \to nat))).(\lambda (g: ((nat 
 \to nat))).(\lambda (H2: ((\forall (m: nat).(le (f0 m) (g m))))).(\lambda 
-(H3: (lt (weight_map f0 (lift (S i) O v)) (g i))).(let TMP_288 \def 
-(weight_map f0 u0) in (let TMP_289 \def (weight_map f0 t2) in (let TMP_290 
-\def (plus TMP_288 TMP_289) in (let TMP_291 \def (weight_map g u0) in (let 
-TMP_292 \def (weight_map g t1) in (let TMP_293 \def (plus TMP_291 TMP_292) in 
-(let TMP_294 \def (weight_map f0 u0) in (let TMP_295 \def (weight_map g u0) 
-in (let TMP_296 \def (weight_map f0 t2) in (let TMP_297 \def (weight_map g 
-t1) in (let TMP_298 \def (weight_le u0 f0 g H2) in (let TMP_299 \def (H1 f0 g 
-H2 H3) in (let TMP_300 \def (le_plus_plus TMP_294 TMP_295 TMP_296 TMP_297 
-TMP_298 TMP_299) in (le_n_S TMP_290 TMP_293 TMP_300)))))))))))))))))))))))))) 
-in (K_ind TMP_151 TMP_287 TMP_301 k))))) in (let TMP_458 \def (\lambda (v: 
-T).(\lambda (u1: T).(\lambda (u2: T).(\lambda (i: nat).(\lambda (_: (subst0 i 
-v u1 u2)).(\lambda (H1: ((\forall (f: ((nat \to nat))).(\forall (g: ((nat \to 
-nat))).(((\forall (m: nat).(le (f m) (g m)))) \to ((lt (weight_map f (lift (S 
-i) O v)) (g i)) \to (le (weight_map f u2) (weight_map g u1)))))))).(\lambda 
-(k: K).(let TMP_307 \def (\lambda (k0: K).(\forall (t1: T).(\forall (t2: 
-T).((subst0 (s k0 i) v t1 t2) \to (((\forall (f: ((nat \to nat))).(\forall 
+(H3: (lt (weight_map f0 (lift (S i) O v)) (g i))).(le_n_S (plus (weight_map 
+f0 u0) (weight_map f0 t2)) (plus (weight_map g u0) (weight_map g t1)) 
+(le_plus_plus (weight_map f0 u0) (weight_map g u0) (weight_map f0 t2) 
+(weight_map g t1) (weight_le u0 f0 g H2) (H1 f0 g H2 H3))))))))))))))) k)) 
+(\lambda (v: T).(\lambda (u1: T).(\lambda (u2: T).(\lambda (i: nat).(\lambda 
+(_: (subst0 i v u1 u2)).(\lambda (H1: ((\forall (f: ((nat \to nat))).(\forall 
 (g: ((nat \to nat))).(((\forall (m: nat).(le (f m) (g m)))) \to ((lt 
-(weight_map f (lift (S (s k0 i)) O v)) (g (s k0 i))) \to (le (weight_map f 
-t2) (weight_map g t1))))))) \to (\forall (f: ((nat \to nat))).(\forall (g: 
-((nat \to nat))).(((\forall (m: nat).(le (f m) (g m)))) \to ((lt (weight_map 
-f (lift (S i) O v)) (g i)) \to (let TMP_303 \def (THead k0 u2 t2) in (let 
-TMP_304 \def (weight_map f TMP_303) in (let TMP_305 \def (THead k0 u1 t1) in 
-(let TMP_306 \def (weight_map g TMP_305) in (le TMP_304 TMP_306)))))))))))))) 
-in (let TMP_443 \def (\lambda (b: B).(let TMP_314 \def (\lambda (b0: 
-B).(\forall (t1: T).(\forall (t2: T).((subst0 (s (Bind b0) i) v t1 t2) \to 
-(((\forall (f: ((nat \to nat))).(\forall (g: ((nat \to nat))).(((\forall (m: 
-nat).(le (f m) (g m)))) \to ((lt (weight_map f (lift (S (s (Bind b0) i)) O 
-v)) (g (s (Bind b0) i))) \to (le (weight_map f t2) (weight_map g t1))))))) 
-\to (\forall (f: ((nat \to nat))).(\forall (g: ((nat \to nat))).(((\forall 
-(m: nat).(le (f m) (g m)))) \to ((lt (weight_map f (lift (S i) O v)) (g i)) 
-\to (let TMP_308 \def (Bind b0) in (let TMP_309 \def (THead TMP_308 u2 t2) in 
-(let TMP_310 \def (weight_map f TMP_309) in (let TMP_311 \def (Bind b0) in 
-(let TMP_312 \def (THead TMP_311 u1 t1) in (let TMP_313 \def (weight_map g 
-TMP_312) in (le TMP_310 TMP_313)))))))))))))))) in (let TMP_372 \def (\lambda 
-(t1: T).(\lambda (t2: T).(\lambda (_: (subst0 (S i) v t1 t2)).(\lambda (H3: 
+(weight_map f (lift (S i) O v)) (g i)) \to (le (weight_map f u2) (weight_map 
+g u1)))))))).(\lambda (k: K).(K_ind (\lambda (k0: K).(\forall (t1: 
+T).(\forall (t2: T).((subst0 (s k0 i) v t1 t2) \to (((\forall (f: ((nat \to 
+nat))).(\forall (g: ((nat \to nat))).(((\forall (m: nat).(le (f m) (g m)))) 
+\to ((lt (weight_map f (lift (S (s k0 i)) O v)) (g (s k0 i))) \to (le 
+(weight_map f t2) (weight_map g t1))))))) \to (\forall (f: ((nat \to 
+nat))).(\forall (g: ((nat \to nat))).(((\forall (m: nat).(le (f m) (g m)))) 
+\to ((lt (weight_map f (lift (S i) O v)) (g i)) \to (le (weight_map f (THead 
+k0 u2 t2)) (weight_map g (THead k0 u1 t1)))))))))))) (\lambda (b: B).(B_ind 
+(\lambda (b0: B).(\forall (t1: T).(\forall (t2: T).((subst0 (s (Bind b0) i) v 
+t1 t2) \to (((\forall (f: ((nat \to nat))).(\forall (g: ((nat \to 
+nat))).(((\forall (m: nat).(le (f m) (g m)))) \to ((lt (weight_map f (lift (S 
+(s (Bind b0) i)) O v)) (g (s (Bind b0) i))) \to (le (weight_map f t2) 
+(weight_map g t1))))))) \to (\forall (f: ((nat \to nat))).(\forall (g: ((nat 
+\to nat))).(((\forall (m: nat).(le (f m) (g m)))) \to ((lt (weight_map f 
+(lift (S i) O v)) (g i)) \to (le (weight_map f (THead (Bind b0) u2 t2)) 
+(weight_map g (THead (Bind b0) u1 t1)))))))))))) (\lambda (t1: T).(\lambda 
+(t2: T).(\lambda (_: (subst0 (S i) v t1 t2)).(\lambda (H3: ((\forall (f: 
+((nat \to nat))).(\forall (g: ((nat \to nat))).(((\forall (m: nat).(le (f m) 
+(g m)))) \to ((lt (weight_map f (lift (S (S i)) O v)) (g (S i))) \to (le 
+(weight_map f t2) (weight_map g t1)))))))).(\lambda (f: ((nat \to 
+nat))).(\lambda (g: ((nat \to nat))).(\lambda (H4: ((\forall (m: nat).(le (f 
+m) (g m))))).(\lambda (H5: (lt (weight_map f (lift (S i) O v)) (g 
+i))).(le_n_S (plus (weight_map f u2) (weight_map (wadd f (S (weight_map f 
+u2))) t2)) (plus (weight_map g u1) (weight_map (wadd g (S (weight_map g u1))) 
+t1)) (le_plus_plus (weight_map f u2) (weight_map g u1) (weight_map (wadd f (S 
+(weight_map f u2))) t2) (weight_map (wadd g (S (weight_map g u1))) t1) (H1 f 
+g H4 H5) (H3 (wadd f (S (weight_map f u2))) (wadd g (S (weight_map g u1))) 
+(\lambda (m: nat).(wadd_le f g H4 (S (weight_map f u2)) (S (weight_map g u1)) 
+(le_n_S (weight_map f u2) (weight_map g u1) (H1 f g H4 H5)) m)) (eq_ind nat 
+(weight_map f (lift (S i) O v)) (\lambda (n: nat).(lt n (g i))) H5 
+(weight_map (wadd f (S (weight_map f u2))) (lift (S (S i)) O v)) 
+(lift_weight_add_O (S (weight_map f u2)) v (S i) f))))))))))))) (\lambda (t1: 
+T).(\lambda (t2: T).(\lambda (_: (subst0 (S i) v t1 t2)).(\lambda (H3: 
 ((\forall (f: ((nat \to nat))).(\forall (g: ((nat \to nat))).(((\forall (m: 
 nat).(le (f m) (g m)))) \to ((lt (weight_map f (lift (S (S i)) O v)) (g (S 
 i))) \to (le (weight_map f t2) (weight_map g t1)))))))).(\lambda (f: ((nat 
 \to nat))).(\lambda (g: ((nat \to nat))).(\lambda (H4: ((\forall (m: nat).(le 
 (f m) (g m))))).(\lambda (H5: (lt (weight_map f (lift (S i) O v)) (g 
-i))).(let TMP_315 \def (weight_map f u2) in (let TMP_316 \def (weight_map f 
-u2) in (let TMP_317 \def (S TMP_316) in (let TMP_318 \def (wadd f TMP_317) in 
-(let TMP_319 \def (weight_map TMP_318 t2) in (let TMP_320 \def (plus TMP_315 
-TMP_319) in (let TMP_321 \def (weight_map g u1) in (let TMP_322 \def 
-(weight_map g u1) in (let TMP_323 \def (S TMP_322) in (let TMP_324 \def (wadd 
-g TMP_323) in (let TMP_325 \def (weight_map TMP_324 t1) in (let TMP_326 \def 
-(plus TMP_321 TMP_325) in (let TMP_327 \def (weight_map f u2) in (let TMP_328 
-\def (weight_map g u1) in (let TMP_329 \def (weight_map f u2) in (let TMP_330 
-\def (S TMP_329) in (let TMP_331 \def (wadd f TMP_330) in (let TMP_332 \def 
-(weight_map TMP_331 t2) in (let TMP_333 \def (weight_map g u1) in (let 
-TMP_334 \def (S TMP_333) in (let TMP_335 \def (wadd g TMP_334) in (let 
-TMP_336 \def (weight_map TMP_335 t1) in (let TMP_337 \def (H1 f g H4 H5) in 
-(let TMP_338 \def (weight_map f u2) in (let TMP_339 \def (S TMP_338) in (let 
-TMP_340 \def (wadd f TMP_339) in (let TMP_341 \def (weight_map g u1) in (let 
-TMP_342 \def (S TMP_341) in (let TMP_343 \def (wadd g TMP_342) in (let 
-TMP_352 \def (\lambda (m: nat).(let TMP_344 \def (weight_map f u2) in (let 
-TMP_345 \def (S TMP_344) in (let TMP_346 \def (weight_map g u1) in (let 
-TMP_347 \def (S TMP_346) in (let TMP_348 \def (weight_map f u2) in (let 
-TMP_349 \def (weight_map g u1) in (let TMP_350 \def (H1 f g H4 H5) in (let 
-TMP_351 \def (le_n_S TMP_348 TMP_349 TMP_350) in (wadd_le f g H4 TMP_345 
-TMP_347 TMP_351 m)))))))))) in (let TMP_353 \def (S i) in (let TMP_354 \def 
-(lift TMP_353 O v) in (let TMP_355 \def (weight_map f TMP_354) in (let 
-TMP_357 \def (\lambda (n: nat).(let TMP_356 \def (g i) in (lt n TMP_356))) in 
-(let TMP_358 \def (weight_map f u2) in (let TMP_359 \def (S TMP_358) in (let 
-TMP_360 \def (wadd f TMP_359) in (let TMP_361 \def (S i) in (let TMP_362 \def 
-(S TMP_361) in (let TMP_363 \def (lift TMP_362 O v) in (let TMP_364 \def 
-(weight_map TMP_360 TMP_363) in (let TMP_365 \def (weight_map f u2) in (let 
-TMP_366 \def (S TMP_365) in (let TMP_367 \def (S i) in (let TMP_368 \def 
-(lift_weight_add_O TMP_366 v TMP_367 f) in (let TMP_369 \def (eq_ind nat 
-TMP_355 TMP_357 H5 TMP_364 TMP_368) in (let TMP_370 \def (H3 TMP_340 TMP_343 
-TMP_352 TMP_369) in (let TMP_371 \def (le_plus_plus TMP_327 TMP_328 TMP_332 
-TMP_336 TMP_337 TMP_370) in (le_n_S TMP_320 TMP_326 
-TMP_371))))))))))))))))))))))))))))))))))))))))))))))))))))))))) in (let 
-TMP_407 \def (\lambda (t1: T).(\lambda (t2: T).(\lambda (_: (subst0 (S i) v 
-t1 t2)).(\lambda (H3: ((\forall (f: ((nat \to nat))).(\forall (g: ((nat \to 
-nat))).(((\forall (m: nat).(le (f m) (g m)))) \to ((lt (weight_map f (lift (S 
-(S i)) O v)) (g (S i))) \to (le (weight_map f t2) (weight_map g 
-t1)))))))).(\lambda (f: ((nat \to nat))).(\lambda (g: ((nat \to 
-nat))).(\lambda (H4: ((\forall (m: nat).(le (f m) (g m))))).(\lambda (H5: (lt 
-(weight_map f (lift (S i) O v)) (g i))).(let TMP_373 \def (weight_map f u2) 
-in (let TMP_374 \def (wadd f O) in (let TMP_375 \def (weight_map TMP_374 t2) 
-in (let TMP_376 \def (plus TMP_373 TMP_375) in (let TMP_377 \def (weight_map 
-g u1) in (let TMP_378 \def (wadd g O) in (let TMP_379 \def (weight_map 
-TMP_378 t1) in (let TMP_380 \def (plus TMP_377 TMP_379) in (let TMP_381 \def 
-(weight_map f u2) in (let TMP_382 \def (weight_map g u1) in (let TMP_383 \def 
-(wadd f O) in (let TMP_384 \def (weight_map TMP_383 t2) in (let TMP_385 \def 
-(wadd g O) in (let TMP_386 \def (weight_map TMP_385 t1) in (let TMP_387 \def 
-(H1 f g H4 H5) in (let TMP_388 \def (wadd f O) in (let TMP_389 \def (wadd g 
-O) in (let TMP_391 \def (\lambda (m: nat).(let TMP_390 \def (le_O_n O) in 
-(wadd_le f g H4 O O TMP_390 m))) in (let TMP_392 \def (S i) in (let TMP_393 
-\def (lift TMP_392 O v) in (let TMP_394 \def (weight_map f TMP_393) in (let 
-TMP_396 \def (\lambda (n: nat).(let TMP_395 \def (g i) in (lt n TMP_395))) in 
-(let TMP_397 \def (wadd f O) in (let TMP_398 \def (S i) in (let TMP_399 \def 
-(S TMP_398) in (let TMP_400 \def (lift TMP_399 O v) in (let TMP_401 \def 
-(weight_map TMP_397 TMP_400) in (let TMP_402 \def (S i) in (let TMP_403 \def 
-(lift_weight_add_O O v TMP_402 f) in (let TMP_404 \def (eq_ind nat TMP_394 
-TMP_396 H5 TMP_401 TMP_403) in (let TMP_405 \def (H3 TMP_388 TMP_389 TMP_391 
-TMP_404) in (let TMP_406 \def (le_plus_plus TMP_381 TMP_382 TMP_384 TMP_386 
-TMP_387 TMP_405) in (le_n_S TMP_376 TMP_380 
-TMP_406))))))))))))))))))))))))))))))))))))))))) in (let TMP_442 \def 
-(\lambda (t1: T).(\lambda (t2: T).(\lambda (_: (subst0 (S i) v t1 
-t2)).(\lambda (H3: ((\forall (f: ((nat \to nat))).(\forall (g: ((nat \to 
-nat))).(((\forall (m: nat).(le (f m) (g m)))) \to ((lt (weight_map f (lift (S 
-(S i)) O v)) (g (S i))) \to (le (weight_map f t2) (weight_map g 
-t1)))))))).(\lambda (f: ((nat \to nat))).(\lambda (g: ((nat \to 
-nat))).(\lambda (H4: ((\forall (m: nat).(le (f m) (g m))))).(\lambda (H5: (lt 
-(weight_map f (lift (S i) O v)) (g i))).(let TMP_408 \def (weight_map f u2) 
-in (let TMP_409 \def (wadd f O) in (let TMP_410 \def (weight_map TMP_409 t2) 
-in (let TMP_411 \def (plus TMP_408 TMP_410) in (let TMP_412 \def (weight_map 
-g u1) in (let TMP_413 \def (wadd g O) in (let TMP_414 \def (weight_map 
-TMP_413 t1) in (let TMP_415 \def (plus TMP_412 TMP_414) in (let TMP_416 \def 
-(weight_map f u2) in (let TMP_417 \def (weight_map g u1) in (let TMP_418 \def 
-(wadd f O) in (let TMP_419 \def (weight_map TMP_418 t2) in (let TMP_420 \def 
-(wadd g O) in (let TMP_421 \def (weight_map TMP_420 t1) in (let TMP_422 \def 
-(H1 f g H4 H5) in (let TMP_423 \def (wadd f O) in (let TMP_424 \def (wadd g 
-O) in (let TMP_426 \def (\lambda (m: nat).(let TMP_425 \def (le_O_n O) in 
-(wadd_le f g H4 O O TMP_425 m))) in (let TMP_427 \def (S i) in (let TMP_428 
-\def (lift TMP_427 O v) in (let TMP_429 \def (weight_map f TMP_428) in (let 
-TMP_431 \def (\lambda (n: nat).(let TMP_430 \def (g i) in (lt n TMP_430))) in 
-(let TMP_432 \def (wadd f O) in (let TMP_433 \def (S i) in (let TMP_434 \def 
-(S TMP_433) in (let TMP_435 \def (lift TMP_434 O v) in (let TMP_436 \def 
-(weight_map TMP_432 TMP_435) in (let TMP_437 \def (S i) in (let TMP_438 \def 
-(lift_weight_add_O O v TMP_437 f) in (let TMP_439 \def (eq_ind nat TMP_429 
-TMP_431 H5 TMP_436 TMP_438) in (let TMP_440 \def (H3 TMP_423 TMP_424 TMP_426 
-TMP_439) in (let TMP_441 \def (le_plus_plus TMP_416 TMP_417 TMP_419 TMP_421 
-TMP_422 TMP_440) in (le_n_S TMP_411 TMP_415 
-TMP_441))))))))))))))))))))))))))))))))))))))))) in (B_ind TMP_314 TMP_372 
-TMP_407 TMP_442 b)))))) in (let TMP_457 \def (\lambda (_: F).(\lambda (t1: 
-T).(\lambda (t2: T).(\lambda (_: (subst0 i v t1 t2)).(\lambda (H3: ((\forall 
-(f0: ((nat \to nat))).(\forall (g: ((nat \to nat))).(((\forall (m: nat).(le 
-(f0 m) (g m)))) \to ((lt (weight_map f0 (lift (S i) O v)) (g i)) \to (le 
-(weight_map f0 t2) (weight_map g t1)))))))).(\lambda (f0: ((nat \to 
-nat))).(\lambda (g: ((nat \to nat))).(\lambda (H4: ((\forall (m: nat).(le (f0 
-m) (g m))))).(\lambda (H5: (lt (weight_map f0 (lift (S i) O v)) (g i))).(let 
-TMP_444 \def (weight_map f0 u2) in (let TMP_445 \def (weight_map f0 t2) in 
-(let TMP_446 \def (plus TMP_444 TMP_445) in (let TMP_447 \def (weight_map g 
-u1) in (let TMP_448 \def (weight_map g t1) in (let TMP_449 \def (plus TMP_447 
-TMP_448) in (let TMP_450 \def (weight_map f0 u2) in (let TMP_451 \def 
-(weight_map g u1) in (let TMP_452 \def (weight_map f0 t2) in (let TMP_453 
-\def (weight_map g t1) in (let TMP_454 \def (H1 f0 g H4 H5) in (let TMP_455 
-\def (H3 f0 g H4 H5) in (let TMP_456 \def (le_plus_plus TMP_450 TMP_451 
-TMP_452 TMP_453 TMP_454 TMP_455) in (le_n_S TMP_446 TMP_449 
-TMP_456))))))))))))))))))))))) in (K_ind TMP_307 TMP_443 TMP_457 k))))))))))) 
-in (subst0_ind TMP_3 TMP_33 TMP_146 TMP_302 TMP_458 d u t z H)))))))))).
+i))).(le_n_S (plus (weight_map f u2) (weight_map (wadd f O) t2)) (plus 
+(weight_map g u1) (weight_map (wadd g O) t1)) (le_plus_plus (weight_map f u2) 
+(weight_map g u1) (weight_map (wadd f O) t2) (weight_map (wadd g O) t1) (H1 f 
+g H4 H5) (H3 (wadd f O) (wadd g O) (\lambda (m: nat).(wadd_le f g H4 O O 
+(le_O_n O) m)) (eq_ind nat (weight_map f (lift (S i) O v)) (\lambda (n: 
+nat).(lt n (g i))) H5 (weight_map (wadd f O) (lift (S (S i)) O v)) 
+(lift_weight_add_O O v (S i) f))))))))))))) (\lambda (t1: T).(\lambda (t2: 
+T).(\lambda (_: (subst0 (S i) v t1 t2)).(\lambda (H3: ((\forall (f: ((nat \to 
+nat))).(\forall (g: ((nat \to nat))).(((\forall (m: nat).(le (f m) (g m)))) 
+\to ((lt (weight_map f (lift (S (S i)) O v)) (g (S i))) \to (le (weight_map f 
+t2) (weight_map g t1)))))))).(\lambda (f: ((nat \to nat))).(\lambda (g: ((nat 
+\to nat))).(\lambda (H4: ((\forall (m: nat).(le (f m) (g m))))).(\lambda (H5: 
+(lt (weight_map f (lift (S i) O v)) (g i))).(le_n_S (plus (weight_map f u2) 
+(weight_map (wadd f O) t2)) (plus (weight_map g u1) (weight_map (wadd g O) 
+t1)) (le_plus_plus (weight_map f u2) (weight_map g u1) (weight_map (wadd f O) 
+t2) (weight_map (wadd g O) t1) (H1 f g H4 H5) (H3 (wadd f O) (wadd g O) 
+(\lambda (m: nat).(wadd_le f g H4 O O (le_O_n O) m)) (eq_ind nat (weight_map 
+f (lift (S i) O v)) (\lambda (n: nat).(lt n (g i))) H5 (weight_map (wadd f O) 
+(lift (S (S i)) O v)) (lift_weight_add_O O v (S i) f))))))))))))) b)) 
+(\lambda (_: F).(\lambda (t1: T).(\lambda (t2: T).(\lambda (_: (subst0 i v t1 
+t2)).(\lambda (H3: ((\forall (f0: ((nat \to nat))).(\forall (g: ((nat \to 
+nat))).(((\forall (m: nat).(le (f0 m) (g m)))) \to ((lt (weight_map f0 (lift 
+(S i) O v)) (g i)) \to (le (weight_map f0 t2) (weight_map g 
+t1)))))))).(\lambda (f0: ((nat \to nat))).(\lambda (g: ((nat \to 
+nat))).(\lambda (H4: ((\forall (m: nat).(le (f0 m) (g m))))).(\lambda (H5: 
+(lt (weight_map f0 (lift (S i) O v)) (g i))).(le_n_S (plus (weight_map f0 u2) 
+(weight_map f0 t2)) (plus (weight_map g u1) (weight_map g t1)) (le_plus_plus 
+(weight_map f0 u2) (weight_map g u1) (weight_map f0 t2) (weight_map g t1) (H1 
+f0 g H4 H5) (H3 f0 g H4 H5)))))))))))) k)))))))) d u t z H))))).
 
 theorem subst0_weight_lt:
  \forall (u: T).(\forall (t: T).(\forall (z: T).(\forall (d: nat).((subst0 d 
@@ -408,447 +227,231 @@ nat))).(((\forall (m: nat).(le (f m) (g m)))) \to ((lt (weight_map f (lift (S
 d) O u)) (g d)) \to (lt (weight_map f z) (weight_map g t))))))))))
 \def
  \lambda (u: T).(\lambda (t: T).(\lambda (z: T).(\lambda (d: nat).(\lambda 
-(H: (subst0 d u t z)).(let TMP_3 \def (\lambda (n: nat).(\lambda (t0: 
-T).(\lambda (t1: T).(\lambda (t2: T).(\forall (f: ((nat \to nat))).(\forall 
-(g: ((nat \to nat))).(((\forall (m: nat).(le (f m) (g m)))) \to ((lt 
-(weight_map f (lift (S n) O t0)) (g n)) \to (let TMP_1 \def (weight_map f t2) 
-in (let TMP_2 \def (weight_map g t1) in (lt TMP_1 TMP_2))))))))))) in (let 
-TMP_4 \def (\lambda (v: T).(\lambda (i: nat).(\lambda (f: ((nat \to 
-nat))).(\lambda (g: ((nat \to nat))).(\lambda (_: ((\forall (m: nat).(le (f 
-m) (g m))))).(\lambda (H1: (lt (weight_map f (lift (S i) O v)) (g 
-i))).H1)))))) in (let TMP_129 \def (\lambda (v: T).(\lambda (u2: T).(\lambda 
-(u1: T).(\lambda (i: nat).(\lambda (_: (subst0 i v u1 u2)).(\lambda (H1: 
-((\forall (f: ((nat \to nat))).(\forall (g: ((nat \to nat))).(((\forall (m: 
-nat).(le (f m) (g m)))) \to ((lt (weight_map f (lift (S i) O v)) (g i)) \to 
-(lt (weight_map f u2) (weight_map g u1)))))))).(\lambda (t0: T).(\lambda (k: 
-K).(let TMP_9 \def (\lambda (k0: K).(\forall (f: ((nat \to nat))).(\forall 
-(g: ((nat \to nat))).(((\forall (m: nat).(le (f m) (g m)))) \to ((lt 
-(weight_map f (lift (S i) O v)) (g i)) \to (let TMP_5 \def (THead k0 u2 t0) 
-in (let TMP_6 \def (weight_map f TMP_5) in (let TMP_7 \def (THead k0 u1 t0) 
-in (let TMP_8 \def (weight_map g TMP_7) in (lt TMP_6 TMP_8)))))))))) in (let 
-TMP_114 \def (\lambda (b: B).(let TMP_16 \def (\lambda (b0: B).(\forall (f: 
-((nat \to nat))).(\forall (g: ((nat \to nat))).(((\forall (m: nat).(le (f m) 
-(g m)))) \to ((lt (weight_map f (lift (S i) O v)) (g i)) \to (let TMP_10 \def 
-(Bind b0) in (let TMP_11 \def (THead TMP_10 u2 t0) in (let TMP_12 \def 
-(weight_map f TMP_11) in (let TMP_13 \def (Bind b0) in (let TMP_14 \def 
-(THead TMP_13 u1 t0) in (let TMP_15 \def (weight_map g TMP_14) in (lt TMP_12 
-TMP_15)))))))))))) in (let TMP_57 \def (\lambda (f: ((nat \to nat))).(\lambda 
-(g: ((nat \to nat))).(\lambda (H2: ((\forall (m: nat).(le (f m) (g 
-m))))).(\lambda (H3: (lt (weight_map f (lift (S i) O v)) (g i))).(let TMP_17 
-\def (weight_map f u2) in (let TMP_18 \def (weight_map f u2) in (let TMP_19 
-\def (S TMP_18) in (let TMP_20 \def (wadd f TMP_19) in (let TMP_21 \def 
-(weight_map TMP_20 t0) in (let TMP_22 \def (plus TMP_17 TMP_21) in (let 
-TMP_23 \def (weight_map g u1) in (let TMP_24 \def (weight_map g u1) in (let 
-TMP_25 \def (S TMP_24) in (let TMP_26 \def (wadd g TMP_25) in (let TMP_27 
-\def (weight_map TMP_26 t0) in (let TMP_28 \def (plus TMP_23 TMP_27) in (let 
-TMP_29 \def (weight_map f u2) in (let TMP_30 \def (weight_map g u1) in (let 
-TMP_31 \def (weight_map f u2) in (let TMP_32 \def (S TMP_31) in (let TMP_33 
-\def (wadd f TMP_32) in (let TMP_34 \def (weight_map TMP_33 t0) in (let 
-TMP_35 \def (weight_map g u1) in (let TMP_36 \def (S TMP_35) in (let TMP_37 
-\def (wadd g TMP_36) in (let TMP_38 \def (weight_map TMP_37 t0) in (let 
-TMP_39 \def (H1 f g H2 H3) in (let TMP_40 \def (weight_map f u2) in (let 
-TMP_41 \def (S TMP_40) in (let TMP_42 \def (wadd f TMP_41) in (let TMP_43 
-\def (weight_map g u1) in (let TMP_44 \def (S TMP_43) in (let TMP_45 \def 
-(wadd g TMP_44) in (let TMP_54 \def (\lambda (n: nat).(let TMP_46 \def 
-(weight_map f u2) in (let TMP_47 \def (S TMP_46) in (let TMP_48 \def 
-(weight_map g u1) in (let TMP_49 \def (S TMP_48) in (let TMP_50 \def 
-(weight_map f u2) in (let TMP_51 \def (weight_map g u1) in (let TMP_52 \def 
-(H1 f g H2 H3) in (let TMP_53 \def (lt_n_S TMP_50 TMP_51 TMP_52) in (wadd_lt 
-f g H2 TMP_47 TMP_49 TMP_53 n)))))))))) in (let TMP_55 \def (weight_le t0 
-TMP_42 TMP_45 TMP_54) in (let TMP_56 \def (lt_le_plus_plus TMP_29 TMP_30 
-TMP_34 TMP_38 TMP_39 TMP_55) in (lt_n_S TMP_22 TMP_28 
-TMP_56))))))))))))))))))))))))))))))))))))) in (let TMP_85 \def (\lambda (f: 
+(H: (subst0 d u t z)).(subst0_ind (\lambda (n: nat).(\lambda (t0: T).(\lambda 
+(t1: T).(\lambda (t2: T).(\forall (f: ((nat \to nat))).(\forall (g: ((nat \to 
+nat))).(((\forall (m: nat).(le (f m) (g m)))) \to ((lt (weight_map f (lift (S 
+n) O t0)) (g n)) \to (lt (weight_map f t2) (weight_map g t1)))))))))) 
+(\lambda (v: T).(\lambda (i: nat).(\lambda (f: ((nat \to nat))).(\lambda (g: 
+((nat \to nat))).(\lambda (_: ((\forall (m: nat).(le (f m) (g m))))).(\lambda 
+(H1: (lt (weight_map f (lift (S i) O v)) (g i))).H1)))))) (\lambda (v: 
+T).(\lambda (u2: T).(\lambda (u1: T).(\lambda (i: nat).(\lambda (_: (subst0 i 
+v u1 u2)).(\lambda (H1: ((\forall (f: ((nat \to nat))).(\forall (g: ((nat \to 
+nat))).(((\forall (m: nat).(le (f m) (g m)))) \to ((lt (weight_map f (lift (S 
+i) O v)) (g i)) \to (lt (weight_map f u2) (weight_map g u1)))))))).(\lambda 
+(t0: T).(\lambda (k: K).(K_ind (\lambda (k0: K).(\forall (f: ((nat \to 
+nat))).(\forall (g: ((nat \to nat))).(((\forall (m: nat).(le (f m) (g m)))) 
+\to ((lt (weight_map f (lift (S i) O v)) (g i)) \to (lt (weight_map f (THead 
+k0 u2 t0)) (weight_map g (THead k0 u1 t0)))))))) (\lambda (b: B).(B_ind 
+(\lambda (b0: B).(\forall (f: ((nat \to nat))).(\forall (g: ((nat \to 
+nat))).(((\forall (m: nat).(le (f m) (g m)))) \to ((lt (weight_map f (lift (S 
+i) O v)) (g i)) \to (lt (weight_map f (THead (Bind b0) u2 t0)) (weight_map g 
+(THead (Bind b0) u1 t0)))))))) (\lambda (f: ((nat \to nat))).(\lambda (g: 
+((nat \to nat))).(\lambda (H2: ((\forall (m: nat).(le (f m) (g 
+m))))).(\lambda (H3: (lt (weight_map f (lift (S i) O v)) (g i))).(lt_n_S 
+(plus (weight_map f u2) (weight_map (wadd f (S (weight_map f u2))) t0)) (plus 
+(weight_map g u1) (weight_map (wadd g (S (weight_map g u1))) t0)) 
+(lt_le_plus_plus (weight_map f u2) (weight_map g u1) (weight_map (wadd f (S 
+(weight_map f u2))) t0) (weight_map (wadd g (S (weight_map g u1))) t0) (H1 f 
+g H2 H3) (weight_le t0 (wadd f (S (weight_map f u2))) (wadd g (S (weight_map 
+g u1))) (\lambda (n: nat).(wadd_lt f g H2 (S (weight_map f u2)) (S 
+(weight_map g u1)) (lt_n_S (weight_map f u2) (weight_map g u1) (H1 f g H2 
+H3)) n))))))))) (\lambda (f: ((nat \to nat))).(\lambda (g: ((nat \to 
+nat))).(\lambda (H2: ((\forall (m: nat).(le (f m) (g m))))).(\lambda (H3: (lt 
+(weight_map f (lift (S i) O v)) (g i))).(lt_n_S (plus (weight_map f u2) 
+(weight_map (wadd f O) t0)) (plus (weight_map g u1) (weight_map (wadd g O) 
+t0)) (lt_le_plus_plus (weight_map f u2) (weight_map g u1) (weight_map (wadd f 
+O) t0) (weight_map (wadd g O) t0) (H1 f g H2 H3) (weight_le t0 (wadd f O) 
+(wadd g O) (\lambda (n: nat).(le_S_n (wadd f O n) (wadd g O n) (le_n_S (wadd 
+f O n) (wadd g O n) (wadd_le f g H2 O O (le_O_n O) n))))))))))) (\lambda (f: 
 ((nat \to nat))).(\lambda (g: ((nat \to nat))).(\lambda (H2: ((\forall (m: 
 nat).(le (f m) (g m))))).(\lambda (H3: (lt (weight_map f (lift (S i) O v)) (g 
-i))).(let TMP_58 \def (weight_map f u2) in (let TMP_59 \def (wadd f O) in 
-(let TMP_60 \def (weight_map TMP_59 t0) in (let TMP_61 \def (plus TMP_58 
-TMP_60) in (let TMP_62 \def (weight_map g u1) in (let TMP_63 \def (wadd g O) 
-in (let TMP_64 \def (weight_map TMP_63 t0) in (let TMP_65 \def (plus TMP_62 
-TMP_64) in (let TMP_66 \def (weight_map f u2) in (let TMP_67 \def (weight_map 
-g u1) in (let TMP_68 \def (wadd f O) in (let TMP_69 \def (weight_map TMP_68 
-t0) in (let TMP_70 \def (wadd g O) in (let TMP_71 \def (weight_map TMP_70 t0) 
-in (let TMP_72 \def (H1 f g H2 H3) in (let TMP_73 \def (wadd f O) in (let 
-TMP_74 \def (wadd g O) in (let TMP_82 \def (\lambda (n: nat).(let TMP_75 \def 
-(wadd f O n) in (let TMP_76 \def (wadd g O n) in (let TMP_77 \def (wadd f O 
-n) in (let TMP_78 \def (wadd g O n) in (let TMP_79 \def (le_O_n O) in (let 
-TMP_80 \def (wadd_le f g H2 O O TMP_79 n) in (let TMP_81 \def (le_n_S TMP_77 
-TMP_78 TMP_80) in (le_S_n TMP_75 TMP_76 TMP_81))))))))) in (let TMP_83 \def 
-(weight_le t0 TMP_73 TMP_74 TMP_82) in (let TMP_84 \def (lt_le_plus_plus 
-TMP_66 TMP_67 TMP_69 TMP_71 TMP_72 TMP_83) in (lt_n_S TMP_61 TMP_65 
-TMP_84))))))))))))))))))))))))) in (let TMP_113 \def (\lambda (f: ((nat \to 
-nat))).(\lambda (g: ((nat \to nat))).(\lambda (H2: ((\forall (m: nat).(le (f 
-m) (g m))))).(\lambda (H3: (lt (weight_map f (lift (S i) O v)) (g i))).(let 
-TMP_86 \def (weight_map f u2) in (let TMP_87 \def (wadd f O) in (let TMP_88 
-\def (weight_map TMP_87 t0) in (let TMP_89 \def (plus TMP_86 TMP_88) in (let 
-TMP_90 \def (weight_map g u1) in (let TMP_91 \def (wadd g O) in (let TMP_92 
-\def (weight_map TMP_91 t0) in (let TMP_93 \def (plus TMP_90 TMP_92) in (let 
-TMP_94 \def (weight_map f u2) in (let TMP_95 \def (weight_map g u1) in (let 
-TMP_96 \def (wadd f O) in (let TMP_97 \def (weight_map TMP_96 t0) in (let 
-TMP_98 \def (wadd g O) in (let TMP_99 \def (weight_map TMP_98 t0) in (let 
-TMP_100 \def (H1 f g H2 H3) in (let TMP_101 \def (wadd f O) in (let TMP_102 
-\def (wadd g O) in (let TMP_110 \def (\lambda (n: nat).(let TMP_103 \def 
-(wadd f O n) in (let TMP_104 \def (wadd g O n) in (let TMP_105 \def (wadd f O 
-n) in (let TMP_106 \def (wadd g O n) in (let TMP_107 \def (le_O_n O) in (let 
-TMP_108 \def (wadd_le f g H2 O O TMP_107 n) in (let TMP_109 \def (le_n_S 
-TMP_105 TMP_106 TMP_108) in (le_S_n TMP_103 TMP_104 TMP_109))))))))) in (let 
-TMP_111 \def (weight_le t0 TMP_101 TMP_102 TMP_110) in (let TMP_112 \def 
-(lt_le_plus_plus TMP_94 TMP_95 TMP_97 TMP_99 TMP_100 TMP_111) in (lt_n_S 
-TMP_89 TMP_93 TMP_112))))))))))))))))))))))))) in (B_ind TMP_16 TMP_57 TMP_85 
-TMP_113 b)))))) in (let TMP_128 \def (\lambda (_: F).(\lambda (f0: ((nat \to 
+i))).(lt_n_S (plus (weight_map f u2) (weight_map (wadd f O) t0)) (plus 
+(weight_map g u1) (weight_map (wadd g O) t0)) (lt_le_plus_plus (weight_map f 
+u2) (weight_map g u1) (weight_map (wadd f O) t0) (weight_map (wadd g O) t0) 
+(H1 f g H2 H3) (weight_le t0 (wadd f O) (wadd g O) (\lambda (n: nat).(le_S_n 
+(wadd f O n) (wadd g O n) (le_n_S (wadd f O n) (wadd g O n) (wadd_le f g H2 O 
+O (le_O_n O) n))))))))))) b)) (\lambda (_: F).(\lambda (f0: ((nat \to 
 nat))).(\lambda (g: ((nat \to nat))).(\lambda (H2: ((\forall (m: nat).(le (f0 
-m) (g m))))).(\lambda (H3: (lt (weight_map f0 (lift (S i) O v)) (g i))).(let 
-TMP_115 \def (weight_map f0 u2) in (let TMP_116 \def (weight_map f0 t0) in 
-(let TMP_117 \def (plus TMP_115 TMP_116) in (let TMP_118 \def (weight_map g 
-u1) in (let TMP_119 \def (weight_map g t0) in (let TMP_120 \def (plus TMP_118 
-TMP_119) in (let TMP_121 \def (weight_map f0 u2) in (let TMP_122 \def 
-(weight_map g u1) in (let TMP_123 \def (weight_map f0 t0) in (let TMP_124 
-\def (weight_map g t0) in (let TMP_125 \def (H1 f0 g H2 H3) in (let TMP_126 
-\def (weight_le t0 f0 g H2) in (let TMP_127 \def (lt_le_plus_plus TMP_121 
-TMP_122 TMP_123 TMP_124 TMP_125 TMP_126) in (lt_n_S TMP_117 TMP_120 
-TMP_127))))))))))))))))))) in (K_ind TMP_9 TMP_114 TMP_128 k)))))))))))) in 
-(let TMP_285 \def (\lambda (k: K).(let TMP_134 \def (\lambda (k0: K).(\forall 
-(v: T).(\forall (t2: T).(\forall (t1: T).(\forall (i: nat).((subst0 (s k0 i) 
-v t1 t2) \to (((\forall (f: ((nat \to nat))).(\forall (g: ((nat \to 
+m) (g m))))).(\lambda (H3: (lt (weight_map f0 (lift (S i) O v)) (g 
+i))).(lt_n_S (plus (weight_map f0 u2) (weight_map f0 t0)) (plus (weight_map g 
+u1) (weight_map g t0)) (lt_le_plus_plus (weight_map f0 u2) (weight_map g u1) 
+(weight_map f0 t0) (weight_map g t0) (H1 f0 g H2 H3) (weight_le t0 f0 g 
+H2)))))))) k))))))))) (\lambda (k: K).(K_ind (\lambda (k0: K).(\forall (v: 
+T).(\forall (t2: T).(\forall (t1: T).(\forall (i: nat).((subst0 (s k0 i) v t1 
+t2) \to (((\forall (f: ((nat \to nat))).(\forall (g: ((nat \to 
 nat))).(((\forall (m: nat).(le (f m) (g m)))) \to ((lt (weight_map f (lift (S 
 (s k0 i)) O v)) (g (s k0 i))) \to (lt (weight_map f t2) (weight_map g 
 t1))))))) \to (\forall (u0: T).(\forall (f: ((nat \to nat))).(\forall (g: 
 ((nat \to nat))).(((\forall (m: nat).(le (f m) (g m)))) \to ((lt (weight_map 
-f (lift (S i) O v)) (g i)) \to (let TMP_130 \def (THead k0 u0 t2) in (let 
-TMP_131 \def (weight_map f TMP_130) in (let TMP_132 \def (THead k0 u0 t1) in 
-(let TMP_133 \def (weight_map g TMP_132) in (lt TMP_131 
-TMP_133))))))))))))))))) in (let TMP_270 \def (\lambda (b: B).(let TMP_141 
-\def (\lambda (b0: B).(\forall (v: T).(\forall (t2: T).(\forall (t1: 
-T).(\forall (i: nat).((subst0 (s (Bind b0) i) v t1 t2) \to (((\forall (f: 
-((nat \to nat))).(\forall (g: ((nat \to nat))).(((\forall (m: nat).(le (f m) 
-(g m)))) \to ((lt (weight_map f (lift (S (s (Bind b0) i)) O v)) (g (s (Bind 
-b0) i))) \to (lt (weight_map f t2) (weight_map g t1))))))) \to (\forall (u0: 
+f (lift (S i) O v)) (g i)) \to (lt (weight_map f (THead k0 u0 t2)) 
+(weight_map g (THead k0 u0 t1))))))))))))))) (\lambda (b: B).(B_ind (\lambda 
+(b0: B).(\forall (v: T).(\forall (t2: T).(\forall (t1: T).(\forall (i: 
+nat).((subst0 (s (Bind b0) i) v t1 t2) \to (((\forall (f: ((nat \to 
+nat))).(\forall (g: ((nat \to nat))).(((\forall (m: nat).(le (f m) (g m)))) 
+\to ((lt (weight_map f (lift (S (s (Bind b0) i)) O v)) (g (s (Bind b0) i))) 
+\to (lt (weight_map f t2) (weight_map g t1))))))) \to (\forall (u0: 
 T).(\forall (f: ((nat \to nat))).(\forall (g: ((nat \to nat))).(((\forall (m: 
 nat).(le (f m) (g m)))) \to ((lt (weight_map f (lift (S i) O v)) (g i)) \to 
-(let TMP_135 \def (Bind b0) in (let TMP_136 \def (THead TMP_135 u0 t2) in 
-(let TMP_137 \def (weight_map f TMP_136) in (let TMP_138 \def (Bind b0) in 
-(let TMP_139 \def (THead TMP_138 u0 t1) in (let TMP_140 \def (weight_map g 
-TMP_139) in (lt TMP_137 TMP_140))))))))))))))))))) in (let TMP_199 \def 
-(\lambda (v: T).(\lambda (t2: T).(\lambda (t1: T).(\lambda (i: nat).(\lambda 
-(_: (subst0 (S i) v t1 t2)).(\lambda (H1: ((\forall (f: ((nat \to 
-nat))).(\forall (g: ((nat \to nat))).(((\forall (m: nat).(le (f m) (g m)))) 
-\to ((lt (weight_map f (lift (S (S i)) O v)) (g (S i))) \to (lt (weight_map f 
-t2) (weight_map g t1)))))))).(\lambda (u0: T).(\lambda (f: ((nat \to 
-nat))).(\lambda (g: ((nat \to nat))).(\lambda (H2: ((\forall (m: nat).(le (f 
-m) (g m))))).(\lambda (H3: (lt (weight_map f (lift (S i) O v)) (g i))).(let 
-TMP_142 \def (weight_map f u0) in (let TMP_143 \def (weight_map f u0) in (let 
-TMP_144 \def (S TMP_143) in (let TMP_145 \def (wadd f TMP_144) in (let 
-TMP_146 \def (weight_map TMP_145 t2) in (let TMP_147 \def (plus TMP_142 
-TMP_146) in (let TMP_148 \def (weight_map g u0) in (let TMP_149 \def 
-(weight_map g u0) in (let TMP_150 \def (S TMP_149) in (let TMP_151 \def (wadd 
-g TMP_150) in (let TMP_152 \def (weight_map TMP_151 t1) in (let TMP_153 \def 
-(plus TMP_148 TMP_152) in (let TMP_154 \def (weight_map f u0) in (let TMP_155 
-\def (weight_map g u0) in (let TMP_156 \def (weight_map f u0) in (let TMP_157 
-\def (S TMP_156) in (let TMP_158 \def (wadd f TMP_157) in (let TMP_159 \def 
-(weight_map TMP_158 t2) in (let TMP_160 \def (weight_map g u0) in (let 
-TMP_161 \def (S TMP_160) in (let TMP_162 \def (wadd g TMP_161) in (let 
-TMP_163 \def (weight_map TMP_162 t1) in (let TMP_164 \def (weight_le u0 f g 
-H2) in (let TMP_165 \def (weight_map f u0) in (let TMP_166 \def (S TMP_165) 
-in (let TMP_167 \def (wadd f TMP_166) in (let TMP_168 \def (weight_map g u0) 
-in (let TMP_169 \def (S TMP_168) in (let TMP_170 \def (wadd g TMP_169) in 
-(let TMP_179 \def (\lambda (m: nat).(let TMP_171 \def (weight_map f u0) in 
-(let TMP_172 \def (S TMP_171) in (let TMP_173 \def (weight_map g u0) in (let 
-TMP_174 \def (S TMP_173) in (let TMP_175 \def (weight_map f u0) in (let 
-TMP_176 \def (weight_map g u0) in (let TMP_177 \def (weight_le u0 f g H2) in 
-(let TMP_178 \def (le_n_S TMP_175 TMP_176 TMP_177) in (wadd_le f g H2 TMP_172 
-TMP_174 TMP_178 m)))))))))) in (let TMP_180 \def (S i) in (let TMP_181 \def 
-(lift TMP_180 O v) in (let TMP_182 \def (weight_map f TMP_181) in (let 
-TMP_184 \def (\lambda (n: nat).(let TMP_183 \def (g i) in (lt n TMP_183))) in 
-(let TMP_185 \def (weight_map f u0) in (let TMP_186 \def (S TMP_185) in (let 
-TMP_187 \def (wadd f TMP_186) in (let TMP_188 \def (S i) in (let TMP_189 \def 
-(S TMP_188) in (let TMP_190 \def (lift TMP_189 O v) in (let TMP_191 \def 
-(weight_map TMP_187 TMP_190) in (let TMP_192 \def (weight_map f u0) in (let 
-TMP_193 \def (S TMP_192) in (let TMP_194 \def (S i) in (let TMP_195 \def 
-(lift_weight_add_O TMP_193 v TMP_194 f) in (let TMP_196 \def (eq_ind nat 
-TMP_182 TMP_184 H3 TMP_191 TMP_195) in (let TMP_197 \def (H1 TMP_167 TMP_170 
-TMP_179 TMP_196) in (let TMP_198 \def (le_lt_plus_plus TMP_154 TMP_155 
-TMP_159 TMP_163 TMP_164 TMP_197) in (lt_n_S TMP_147 TMP_153 
-TMP_198)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) in (let 
-TMP_234 \def (\lambda (v: T).(\lambda (t2: T).(\lambda (t1: T).(\lambda (i: 
-nat).(\lambda (_: (subst0 (S i) v t1 t2)).(\lambda (H1: ((\forall (f: ((nat 
-\to nat))).(\forall (g: ((nat \to nat))).(((\forall (m: nat).(le (f m) (g 
-m)))) \to ((lt (weight_map f (lift (S (S i)) O v)) (g (S i))) \to (lt 
+(lt (weight_map f (THead (Bind b0) u0 t2)) (weight_map g (THead (Bind b0) u0 
+t1))))))))))))))) (\lambda (v: T).(\lambda (t2: T).(\lambda (t1: T).(\lambda 
+(i: nat).(\lambda (_: (subst0 (S i) v t1 t2)).(\lambda (H1: ((\forall (f: 
+((nat \to nat))).(\forall (g: ((nat \to nat))).(((\forall (m: nat).(le (f m) 
+(g m)))) \to ((lt (weight_map f (lift (S (S i)) O v)) (g (S i))) \to (lt 
 (weight_map f t2) (weight_map g t1)))))))).(\lambda (u0: T).(\lambda (f: 
 ((nat \to nat))).(\lambda (g: ((nat \to nat))).(\lambda (H2: ((\forall (m: 
 nat).(le (f m) (g m))))).(\lambda (H3: (lt (weight_map f (lift (S i) O v)) (g 
-i))).(let TMP_200 \def (weight_map f u0) in (let TMP_201 \def (wadd f O) in 
-(let TMP_202 \def (weight_map TMP_201 t2) in (let TMP_203 \def (plus TMP_200 
-TMP_202) in (let TMP_204 \def (weight_map g u0) in (let TMP_205 \def (wadd g 
-O) in (let TMP_206 \def (weight_map TMP_205 t1) in (let TMP_207 \def (plus 
-TMP_204 TMP_206) in (let TMP_208 \def (weight_map f u0) in (let TMP_209 \def 
-(weight_map g u0) in (let TMP_210 \def (wadd f O) in (let TMP_211 \def 
-(weight_map TMP_210 t2) in (let TMP_212 \def (wadd g O) in (let TMP_213 \def 
-(weight_map TMP_212 t1) in (let TMP_214 \def (weight_le u0 f g H2) in (let 
-TMP_215 \def (wadd f O) in (let TMP_216 \def (wadd g O) in (let TMP_218 \def 
-(\lambda (m: nat).(let TMP_217 \def (le_O_n O) in (wadd_le f g H2 O O TMP_217 
-m))) in (let TMP_219 \def (S i) in (let TMP_220 \def (lift TMP_219 O v) in 
-(let TMP_221 \def (weight_map f TMP_220) in (let TMP_223 \def (\lambda (n: 
-nat).(let TMP_222 \def (g i) in (lt n TMP_222))) in (let TMP_224 \def (wadd f 
-O) in (let TMP_225 \def (S i) in (let TMP_226 \def (S TMP_225) in (let 
-TMP_227 \def (lift TMP_226 O v) in (let TMP_228 \def (weight_map TMP_224 
-TMP_227) in (let TMP_229 \def (S i) in (let TMP_230 \def (lift_weight_add_O O 
-v TMP_229 f) in (let TMP_231 \def (eq_ind nat TMP_221 TMP_223 H3 TMP_228 
-TMP_230) in (let TMP_232 \def (H1 TMP_215 TMP_216 TMP_218 TMP_231) in (let 
-TMP_233 \def (le_lt_plus_plus TMP_208 TMP_209 TMP_211 TMP_213 TMP_214 
-TMP_232) in (lt_n_S TMP_203 TMP_207 
-TMP_233)))))))))))))))))))))))))))))))))))))))))))) in (let TMP_269 \def 
+i))).(lt_n_S (plus (weight_map f u0) (weight_map (wadd f (S (weight_map f 
+u0))) t2)) (plus (weight_map g u0) (weight_map (wadd g (S (weight_map g u0))) 
+t1)) (le_lt_plus_plus (weight_map f u0) (weight_map g u0) (weight_map (wadd f 
+(S (weight_map f u0))) t2) (weight_map (wadd g (S (weight_map g u0))) t1) 
+(weight_le u0 f g H2) (H1 (wadd f (S (weight_map f u0))) (wadd g (S 
+(weight_map g u0))) (\lambda (m: nat).(wadd_le f g H2 (S (weight_map f u0)) 
+(S (weight_map g u0)) (le_n_S (weight_map f u0) (weight_map g u0) (weight_le 
+u0 f g H2)) m)) (eq_ind nat (weight_map f (lift (S i) O v)) (\lambda (n: 
+nat).(lt n (g i))) H3 (weight_map (wadd f (S (weight_map f u0))) (lift (S (S 
+i)) O v)) (lift_weight_add_O (S (weight_map f u0)) v (S i) f)))))))))))))))) 
 (\lambda (v: T).(\lambda (t2: T).(\lambda (t1: T).(\lambda (i: nat).(\lambda 
 (_: (subst0 (S i) v t1 t2)).(\lambda (H1: ((\forall (f: ((nat \to 
 nat))).(\forall (g: ((nat \to nat))).(((\forall (m: nat).(le (f m) (g m)))) 
 \to ((lt (weight_map f (lift (S (S i)) O v)) (g (S i))) \to (lt (weight_map f 
 t2) (weight_map g t1)))))))).(\lambda (u0: T).(\lambda (f: ((nat \to 
 nat))).(\lambda (g: ((nat \to nat))).(\lambda (H2: ((\forall (m: nat).(le (f 
-m) (g m))))).(\lambda (H3: (lt (weight_map f (lift (S i) O v)) (g i))).(let 
-TMP_235 \def (weight_map f u0) in (let TMP_236 \def (wadd f O) in (let 
-TMP_237 \def (weight_map TMP_236 t2) in (let TMP_238 \def (plus TMP_235 
-TMP_237) in (let TMP_239 \def (weight_map g u0) in (let TMP_240 \def (wadd g 
-O) in (let TMP_241 \def (weight_map TMP_240 t1) in (let TMP_242 \def (plus 
-TMP_239 TMP_241) in (let TMP_243 \def (weight_map f u0) in (let TMP_244 \def 
-(weight_map g u0) in (let TMP_245 \def (wadd f O) in (let TMP_246 \def 
-(weight_map TMP_245 t2) in (let TMP_247 \def (wadd g O) in (let TMP_248 \def 
-(weight_map TMP_247 t1) in (let TMP_249 \def (weight_le u0 f g H2) in (let 
-TMP_250 \def (wadd f O) in (let TMP_251 \def (wadd g O) in (let TMP_253 \def 
-(\lambda (m: nat).(let TMP_252 \def (le_O_n O) in (wadd_le f g H2 O O TMP_252 
-m))) in (let TMP_254 \def (S i) in (let TMP_255 \def (lift TMP_254 O v) in 
-(let TMP_256 \def (weight_map f TMP_255) in (let TMP_258 \def (\lambda (n: 
-nat).(let TMP_257 \def (g i) in (lt n TMP_257))) in (let TMP_259 \def (wadd f 
-O) in (let TMP_260 \def (S i) in (let TMP_261 \def (S TMP_260) in (let 
-TMP_262 \def (lift TMP_261 O v) in (let TMP_263 \def (weight_map TMP_259 
-TMP_262) in (let TMP_264 \def (S i) in (let TMP_265 \def (lift_weight_add_O O 
-v TMP_264 f) in (let TMP_266 \def (eq_ind nat TMP_256 TMP_258 H3 TMP_263 
-TMP_265) in (let TMP_267 \def (H1 TMP_250 TMP_251 TMP_253 TMP_266) in (let 
-TMP_268 \def (le_lt_plus_plus TMP_243 TMP_244 TMP_246 TMP_248 TMP_249 
-TMP_267) in (lt_n_S TMP_238 TMP_242 
-TMP_268)))))))))))))))))))))))))))))))))))))))))))) in (B_ind TMP_141 TMP_199 
-TMP_234 TMP_269 b)))))) in (let TMP_284 \def (\lambda (_: F).(\lambda (v: 
-T).(\lambda (t2: T).(\lambda (t1: T).(\lambda (i: nat).(\lambda (_: (subst0 i 
-v t1 t2)).(\lambda (H1: ((\forall (f0: ((nat \to nat))).(\forall (g: ((nat 
-\to nat))).(((\forall (m: nat).(le (f0 m) (g m)))) \to ((lt (weight_map f0 
-(lift (S i) O v)) (g i)) \to (lt (weight_map f0 t2) (weight_map g 
+m) (g m))))).(\lambda (H3: (lt (weight_map f (lift (S i) O v)) (g 
+i))).(lt_n_S (plus (weight_map f u0) (weight_map (wadd f O) t2)) (plus 
+(weight_map g u0) (weight_map (wadd g O) t1)) (le_lt_plus_plus (weight_map f 
+u0) (weight_map g u0) (weight_map (wadd f O) t2) (weight_map (wadd g O) t1) 
+(weight_le u0 f g H2) (H1 (wadd f O) (wadd g O) (\lambda (m: nat).(wadd_le f 
+g H2 O O (le_O_n O) m)) (eq_ind nat (weight_map f (lift (S i) O v)) (\lambda 
+(n: nat).(lt n (g i))) H3 (weight_map (wadd f O) (lift (S (S i)) O v)) 
+(lift_weight_add_O O v (S i) f)))))))))))))))) (\lambda (v: T).(\lambda (t2: 
+T).(\lambda (t1: T).(\lambda (i: nat).(\lambda (_: (subst0 (S i) v t1 
+t2)).(\lambda (H1: ((\forall (f: ((nat \to nat))).(\forall (g: ((nat \to 
+nat))).(((\forall (m: nat).(le (f m) (g m)))) \to ((lt (weight_map f (lift (S 
+(S i)) O v)) (g (S i))) \to (lt (weight_map f t2) (weight_map g 
+t1)))))))).(\lambda (u0: T).(\lambda (f: ((nat \to nat))).(\lambda (g: ((nat 
+\to nat))).(\lambda (H2: ((\forall (m: nat).(le (f m) (g m))))).(\lambda (H3: 
+(lt (weight_map f (lift (S i) O v)) (g i))).(lt_n_S (plus (weight_map f u0) 
+(weight_map (wadd f O) t2)) (plus (weight_map g u0) (weight_map (wadd g O) 
+t1)) (le_lt_plus_plus (weight_map f u0) (weight_map g u0) (weight_map (wadd f 
+O) t2) (weight_map (wadd g O) t1) (weight_le u0 f g H2) (H1 (wadd f O) (wadd 
+g O) (\lambda (m: nat).(wadd_le f g H2 O O (le_O_n O) m)) (eq_ind nat 
+(weight_map f (lift (S i) O v)) (\lambda (n: nat).(lt n (g i))) H3 
+(weight_map (wadd f O) (lift (S (S i)) O v)) (lift_weight_add_O O v (S i) 
+f)))))))))))))))) b)) (\lambda (_: F).(\lambda (v: T).(\lambda (t2: 
+T).(\lambda (t1: T).(\lambda (i: nat).(\lambda (_: (subst0 i v t1 
+t2)).(\lambda (H1: ((\forall (f0: ((nat \to nat))).(\forall (g: ((nat \to 
+nat))).(((\forall (m: nat).(le (f0 m) (g m)))) \to ((lt (weight_map f0 (lift 
+(S i) O v)) (g i)) \to (lt (weight_map f0 t2) (weight_map g 
 t1)))))))).(\lambda (u0: T).(\lambda (f0: ((nat \to nat))).(\lambda (g: ((nat 
 \to nat))).(\lambda (H2: ((\forall (m: nat).(le (f0 m) (g m))))).(\lambda 
-(H3: (lt (weight_map f0 (lift (S i) O v)) (g i))).(let TMP_271 \def 
-(weight_map f0 u0) in (let TMP_272 \def (weight_map f0 t2) in (let TMP_273 
-\def (plus TMP_271 TMP_272) in (let TMP_274 \def (weight_map g u0) in (let 
-TMP_275 \def (weight_map g t1) in (let TMP_276 \def (plus TMP_274 TMP_275) in 
-(let TMP_277 \def (weight_map f0 u0) in (let TMP_278 \def (weight_map g u0) 
-in (let TMP_279 \def (weight_map f0 t2) in (let TMP_280 \def (weight_map g 
-t1) in (let TMP_281 \def (weight_le u0 f0 g H2) in (let TMP_282 \def (H1 f0 g 
-H2 H3) in (let TMP_283 \def (le_lt_plus_plus TMP_277 TMP_278 TMP_279 TMP_280 
-TMP_281 TMP_282) in (lt_n_S TMP_273 TMP_276 TMP_283)))))))))))))))))))))))))) 
-in (K_ind TMP_134 TMP_270 TMP_284 k))))) in (let TMP_454 \def (\lambda (v: 
-T).(\lambda (u1: T).(\lambda (u2: T).(\lambda (i: nat).(\lambda (_: (subst0 i 
-v u1 u2)).(\lambda (H1: ((\forall (f: ((nat \to nat))).(\forall (g: ((nat \to 
-nat))).(((\forall (m: nat).(le (f m) (g m)))) \to ((lt (weight_map f (lift (S 
-i) O v)) (g i)) \to (lt (weight_map f u2) (weight_map g u1)))))))).(\lambda 
-(k: K).(let TMP_290 \def (\lambda (k0: K).(\forall (t1: T).(\forall (t2: 
-T).((subst0 (s k0 i) v t1 t2) \to (((\forall (f: ((nat \to nat))).(\forall 
+(H3: (lt (weight_map f0 (lift (S i) O v)) (g i))).(lt_n_S (plus (weight_map 
+f0 u0) (weight_map f0 t2)) (plus (weight_map g u0) (weight_map g t1)) 
+(le_lt_plus_plus (weight_map f0 u0) (weight_map g u0) (weight_map f0 t2) 
+(weight_map g t1) (weight_le u0 f0 g H2) (H1 f0 g H2 H3))))))))))))))) k)) 
+(\lambda (v: T).(\lambda (u1: T).(\lambda (u2: T).(\lambda (i: nat).(\lambda 
+(_: (subst0 i v u1 u2)).(\lambda (H1: ((\forall (f: ((nat \to nat))).(\forall 
 (g: ((nat \to nat))).(((\forall (m: nat).(le (f m) (g m)))) \to ((lt 
-(weight_map f (lift (S (s k0 i)) O v)) (g (s k0 i))) \to (lt (weight_map f 
-t2) (weight_map g t1))))))) \to (\forall (f: ((nat \to nat))).(\forall (g: 
-((nat \to nat))).(((\forall (m: nat).(le (f m) (g m)))) \to ((lt (weight_map 
-f (lift (S i) O v)) (g i)) \to (let TMP_286 \def (THead k0 u2 t2) in (let 
-TMP_287 \def (weight_map f TMP_286) in (let TMP_288 \def (THead k0 u1 t1) in 
-(let TMP_289 \def (weight_map g TMP_288) in (lt TMP_287 TMP_289)))))))))))))) 
-in (let TMP_439 \def (\lambda (b: B).(let TMP_297 \def (\lambda (b0: 
-B).(\forall (t1: T).(\forall (t2: T).((subst0 (s (Bind b0) i) v t1 t2) \to 
-(((\forall (f: ((nat \to nat))).(\forall (g: ((nat \to nat))).(((\forall (m: 
-nat).(le (f m) (g m)))) \to ((lt (weight_map f (lift (S (s (Bind b0) i)) O 
-v)) (g (s (Bind b0) i))) \to (lt (weight_map f t2) (weight_map g t1))))))) 
-\to (\forall (f: ((nat \to nat))).(\forall (g: ((nat \to nat))).(((\forall 
-(m: nat).(le (f m) (g m)))) \to ((lt (weight_map f (lift (S i) O v)) (g i)) 
-\to (let TMP_291 \def (Bind b0) in (let TMP_292 \def (THead TMP_291 u2 t2) in 
-(let TMP_293 \def (weight_map f TMP_292) in (let TMP_294 \def (Bind b0) in 
-(let TMP_295 \def (THead TMP_294 u1 t1) in (let TMP_296 \def (weight_map g 
-TMP_295) in (lt TMP_293 TMP_296)))))))))))))))) in (let TMP_356 \def (\lambda 
-(t1: T).(\lambda (t2: T).(\lambda (H2: (subst0 (S i) v t1 t2)).(\lambda (_: 
-((\forall (f: ((nat \to nat))).(\forall (g: ((nat \to nat))).(((\forall (m: 
-nat).(le (f m) (g m)))) \to ((lt (weight_map f (lift (S (S i)) O v)) (g (S 
-i))) \to (lt (weight_map f t2) (weight_map g t1)))))))).(\lambda (f: ((nat 
-\to nat))).(\lambda (g: ((nat \to nat))).(\lambda (H4: ((\forall (m: nat).(le 
-(f m) (g m))))).(\lambda (H5: (lt (weight_map f (lift (S i) O v)) (g 
-i))).(let TMP_298 \def (weight_map f u2) in (let TMP_299 \def (weight_map f 
-u2) in (let TMP_300 \def (S TMP_299) in (let TMP_301 \def (wadd f TMP_300) in 
-(let TMP_302 \def (weight_map TMP_301 t2) in (let TMP_303 \def (plus TMP_298 
-TMP_302) in (let TMP_304 \def (weight_map g u1) in (let TMP_305 \def 
-(weight_map g u1) in (let TMP_306 \def (S TMP_305) in (let TMP_307 \def (wadd 
-g TMP_306) in (let TMP_308 \def (weight_map TMP_307 t1) in (let TMP_309 \def 
-(plus TMP_304 TMP_308) in (let TMP_310 \def (weight_map f u2) in (let TMP_311 
-\def (weight_map g u1) in (let TMP_312 \def (weight_map f u2) in (let TMP_313 
-\def (S TMP_312) in (let TMP_314 \def (wadd f TMP_313) in (let TMP_315 \def 
-(weight_map TMP_314 t2) in (let TMP_316 \def (weight_map g u1) in (let 
-TMP_317 \def (S TMP_316) in (let TMP_318 \def (wadd g TMP_317) in (let 
-TMP_319 \def (weight_map TMP_318 t1) in (let TMP_320 \def (H1 f g H4 H5) in 
-(let TMP_321 \def (S i) in (let TMP_322 \def (weight_map f u2) in (let 
-TMP_323 \def (S TMP_322) in (let TMP_324 \def (wadd f TMP_323) in (let 
-TMP_325 \def (weight_map g u1) in (let TMP_326 \def (S TMP_325) in (let 
-TMP_327 \def (wadd g TMP_326) in (let TMP_336 \def (\lambda (m: nat).(let 
-TMP_328 \def (weight_map f u2) in (let TMP_329 \def (S TMP_328) in (let 
-TMP_330 \def (weight_map g u1) in (let TMP_331 \def (S TMP_330) in (let 
-TMP_332 \def (weight_map f u2) in (let TMP_333 \def (weight_map g u1) in (let 
-TMP_334 \def (H1 f g H4 H5) in (let TMP_335 \def (lt_n_S TMP_332 TMP_333 
-TMP_334) in (wadd_lt f g H4 TMP_329 TMP_331 TMP_335 m)))))))))) in (let 
-TMP_337 \def (S i) in (let TMP_338 \def (lift TMP_337 O v) in (let TMP_339 
-\def (weight_map f TMP_338) in (let TMP_341 \def (\lambda (n: nat).(let 
-TMP_340 \def (g i) in (lt n TMP_340))) in (let TMP_342 \def (weight_map f u2) 
-in (let TMP_343 \def (S TMP_342) in (let TMP_344 \def (wadd f TMP_343) in 
-(let TMP_345 \def (S i) in (let TMP_346 \def (S TMP_345) in (let TMP_347 \def 
-(lift TMP_346 O v) in (let TMP_348 \def (weight_map TMP_344 TMP_347) in (let 
-TMP_349 \def (weight_map f u2) in (let TMP_350 \def (S TMP_349) in (let 
-TMP_351 \def (S i) in (let TMP_352 \def (lift_weight_add_O TMP_350 v TMP_351 
-f) in (let TMP_353 \def (eq_ind nat TMP_339 TMP_341 H5 TMP_348 TMP_352) in 
-(let TMP_354 \def (subst0_weight_le v t1 t2 TMP_321 H2 TMP_324 TMP_327 
-TMP_336 TMP_353) in (let TMP_355 \def (lt_le_plus_plus TMP_310 TMP_311 
-TMP_315 TMP_319 TMP_320 TMP_354) in (lt_n_S TMP_303 TMP_309 
-TMP_355)))))))))))))))))))))))))))))))))))))))))))))))))))))))))) in (let 
-TMP_397 \def (\lambda (t1: T).(\lambda (t2: T).(\lambda (_: (subst0 (S i) v 
-t1 t2)).(\lambda (H3: ((\forall (f: ((nat \to nat))).(\forall (g: ((nat \to 
+(weight_map f (lift (S i) O v)) (g i)) \to (lt (weight_map f u2) (weight_map 
+g u1)))))))).(\lambda (k: K).(K_ind (\lambda (k0: K).(\forall (t1: 
+T).(\forall (t2: T).((subst0 (s k0 i) v t1 t2) \to (((\forall (f: ((nat \to 
+nat))).(\forall (g: ((nat \to nat))).(((\forall (m: nat).(le (f m) (g m)))) 
+\to ((lt (weight_map f (lift (S (s k0 i)) O v)) (g (s k0 i))) \to (lt 
+(weight_map f t2) (weight_map g t1))))))) \to (\forall (f: ((nat \to 
+nat))).(\forall (g: ((nat \to nat))).(((\forall (m: nat).(le (f m) (g m)))) 
+\to ((lt (weight_map f (lift (S i) O v)) (g i)) \to (lt (weight_map f (THead 
+k0 u2 t2)) (weight_map g (THead k0 u1 t1)))))))))))) (\lambda (b: B).(B_ind 
+(\lambda (b0: B).(\forall (t1: T).(\forall (t2: T).((subst0 (s (Bind b0) i) v 
+t1 t2) \to (((\forall (f: ((nat \to nat))).(\forall (g: ((nat \to 
 nat))).(((\forall (m: nat).(le (f m) (g m)))) \to ((lt (weight_map f (lift (S 
-(S i)) O v)) (g (S i))) \to (lt (weight_map f t2) (weight_map g 
-t1)))))))).(\lambda (f: ((nat \to nat))).(\lambda (g: ((nat \to 
-nat))).(\lambda (H4: ((\forall (m: nat).(le (f m) (g m))))).(\lambda (H5: (lt 
-(weight_map f (lift (S i) O v)) (g i))).(let TMP_357 \def (weight_map f u2) 
-in (let TMP_358 \def (wadd f O) in (let TMP_359 \def (weight_map TMP_358 t2) 
-in (let TMP_360 \def (plus TMP_357 TMP_359) in (let TMP_361 \def (weight_map 
-g u1) in (let TMP_362 \def (wadd g O) in (let TMP_363 \def (weight_map 
-TMP_362 t1) in (let TMP_364 \def (plus TMP_361 TMP_363) in (let TMP_365 \def 
-(weight_map f u2) in (let TMP_366 \def (weight_map g u1) in (let TMP_367 \def 
-(wadd f O) in (let TMP_368 \def (weight_map TMP_367 t2) in (let TMP_369 \def 
-(wadd g O) in (let TMP_370 \def (weight_map TMP_369 t1) in (let TMP_371 \def 
-(H1 f g H4 H5) in (let TMP_372 \def (wadd f O) in (let TMP_373 \def (wadd g 
-O) in (let TMP_381 \def (\lambda (m: nat).(let TMP_374 \def (wadd f O m) in 
-(let TMP_375 \def (wadd g O m) in (let TMP_376 \def (wadd f O m) in (let 
-TMP_377 \def (wadd g O m) in (let TMP_378 \def (le_O_n O) in (let TMP_379 
-\def (wadd_le f g H4 O O TMP_378 m) in (let TMP_380 \def (le_n_S TMP_376 
-TMP_377 TMP_379) in (le_S_n TMP_374 TMP_375 TMP_380))))))))) in (let TMP_382 
-\def (S i) in (let TMP_383 \def (lift TMP_382 O v) in (let TMP_384 \def 
-(weight_map f TMP_383) in (let TMP_386 \def (\lambda (n: nat).(let TMP_385 
-\def (g i) in (lt n TMP_385))) in (let TMP_387 \def (wadd f O) in (let 
-TMP_388 \def (S i) in (let TMP_389 \def (S TMP_388) in (let TMP_390 \def 
-(lift TMP_389 O v) in (let TMP_391 \def (weight_map TMP_387 TMP_390) in (let 
-TMP_392 \def (S i) in (let TMP_393 \def (lift_weight_add_O O v TMP_392 f) in 
-(let TMP_394 \def (eq_ind nat TMP_384 TMP_386 H5 TMP_391 TMP_393) in (let 
-TMP_395 \def (H3 TMP_372 TMP_373 TMP_381 TMP_394) in (let TMP_396 \def 
-(lt_plus_plus TMP_365 TMP_366 TMP_368 TMP_370 TMP_371 TMP_395) in (lt_n_S 
-TMP_360 TMP_364 TMP_396))))))))))))))))))))))))))))))))))))))))) in (let 
-TMP_438 \def (\lambda (t1: T).(\lambda (t2: T).(\lambda (_: (subst0 (S i) v 
+(s (Bind b0) i)) O v)) (g (s (Bind b0) i))) \to (lt (weight_map f t2) 
+(weight_map g t1))))))) \to (\forall (f: ((nat \to nat))).(\forall (g: ((nat 
+\to nat))).(((\forall (m: nat).(le (f m) (g m)))) \to ((lt (weight_map f 
+(lift (S i) O v)) (g i)) \to (lt (weight_map f (THead (Bind b0) u2 t2)) 
+(weight_map g (THead (Bind b0) u1 t1)))))))))))) (\lambda (t1: T).(\lambda 
+(t2: T).(\lambda (H2: (subst0 (S i) v t1 t2)).(\lambda (_: ((\forall (f: 
+((nat \to nat))).(\forall (g: ((nat \to nat))).(((\forall (m: nat).(le (f m) 
+(g m)))) \to ((lt (weight_map f (lift (S (S i)) O v)) (g (S i))) \to (lt 
+(weight_map f t2) (weight_map g t1)))))))).(\lambda (f: ((nat \to 
+nat))).(\lambda (g: ((nat \to nat))).(\lambda (H4: ((\forall (m: nat).(le (f 
+m) (g m))))).(\lambda (H5: (lt (weight_map f (lift (S i) O v)) (g 
+i))).(lt_n_S (plus (weight_map f u2) (weight_map (wadd f (S (weight_map f 
+u2))) t2)) (plus (weight_map g u1) (weight_map (wadd g (S (weight_map g u1))) 
+t1)) (lt_le_plus_plus (weight_map f u2) (weight_map g u1) (weight_map (wadd f 
+(S (weight_map f u2))) t2) (weight_map (wadd g (S (weight_map g u1))) t1) (H1 
+f g H4 H5) (subst0_weight_le v t1 t2 (S i) H2 (wadd f (S (weight_map f u2))) 
+(wadd g (S (weight_map g u1))) (\lambda (m: nat).(wadd_lt f g H4 (S 
+(weight_map f u2)) (S (weight_map g u1)) (lt_n_S (weight_map f u2) 
+(weight_map g u1) (H1 f g H4 H5)) m)) (eq_ind nat (weight_map f (lift (S i) O 
+v)) (\lambda (n: nat).(lt n (g i))) H5 (weight_map (wadd f (S (weight_map f 
+u2))) (lift (S (S i)) O v)) (lift_weight_add_O (S (weight_map f u2)) v (S i) 
+f))))))))))))) (\lambda (t1: T).(\lambda (t2: T).(\lambda (_: (subst0 (S i) v 
 t1 t2)).(\lambda (H3: ((\forall (f: ((nat \to nat))).(\forall (g: ((nat \to 
 nat))).(((\forall (m: nat).(le (f m) (g m)))) \to ((lt (weight_map f (lift (S 
 (S i)) O v)) (g (S i))) \to (lt (weight_map f t2) (weight_map g 
 t1)))))))).(\lambda (f: ((nat \to nat))).(\lambda (g: ((nat \to 
 nat))).(\lambda (H4: ((\forall (m: nat).(le (f m) (g m))))).(\lambda (H5: (lt 
-(weight_map f (lift (S i) O v)) (g i))).(let TMP_398 \def (weight_map f u2) 
-in (let TMP_399 \def (wadd f O) in (let TMP_400 \def (weight_map TMP_399 t2) 
-in (let TMP_401 \def (plus TMP_398 TMP_400) in (let TMP_402 \def (weight_map 
-g u1) in (let TMP_403 \def (wadd g O) in (let TMP_404 \def (weight_map 
-TMP_403 t1) in (let TMP_405 \def (plus TMP_402 TMP_404) in (let TMP_406 \def 
-(weight_map f u2) in (let TMP_407 \def (weight_map g u1) in (let TMP_408 \def 
-(wadd f O) in (let TMP_409 \def (weight_map TMP_408 t2) in (let TMP_410 \def 
-(wadd g O) in (let TMP_411 \def (weight_map TMP_410 t1) in (let TMP_412 \def 
-(H1 f g H4 H5) in (let TMP_413 \def (wadd f O) in (let TMP_414 \def (wadd g 
-O) in (let TMP_422 \def (\lambda (m: nat).(let TMP_415 \def (wadd f O m) in 
-(let TMP_416 \def (wadd g O m) in (let TMP_417 \def (wadd f O m) in (let 
-TMP_418 \def (wadd g O m) in (let TMP_419 \def (le_O_n O) in (let TMP_420 
-\def (wadd_le f g H4 O O TMP_419 m) in (let TMP_421 \def (le_n_S TMP_417 
-TMP_418 TMP_420) in (le_S_n TMP_415 TMP_416 TMP_421))))))))) in (let TMP_423 
-\def (S i) in (let TMP_424 \def (lift TMP_423 O v) in (let TMP_425 \def 
-(weight_map f TMP_424) in (let TMP_427 \def (\lambda (n: nat).(let TMP_426 
-\def (g i) in (lt n TMP_426))) in (let TMP_428 \def (wadd f O) in (let 
-TMP_429 \def (S i) in (let TMP_430 \def (S TMP_429) in (let TMP_431 \def 
-(lift TMP_430 O v) in (let TMP_432 \def (weight_map TMP_428 TMP_431) in (let 
-TMP_433 \def (S i) in (let TMP_434 \def (lift_weight_add_O O v TMP_433 f) in 
-(let TMP_435 \def (eq_ind nat TMP_425 TMP_427 H5 TMP_432 TMP_434) in (let 
-TMP_436 \def (H3 TMP_413 TMP_414 TMP_422 TMP_435) in (let TMP_437 \def 
-(lt_plus_plus TMP_406 TMP_407 TMP_409 TMP_411 TMP_412 TMP_436) in (lt_n_S 
-TMP_401 TMP_405 TMP_437))))))))))))))))))))))))))))))))))))))))) in (B_ind 
-TMP_297 TMP_356 TMP_397 TMP_438 b)))))) in (let TMP_453 \def (\lambda (_: 
-F).(\lambda (t1: T).(\lambda (t2: T).(\lambda (_: (subst0 i v t1 
-t2)).(\lambda (H3: ((\forall (f0: ((nat \to nat))).(\forall (g: ((nat \to 
-nat))).(((\forall (m: nat).(le (f0 m) (g m)))) \to ((lt (weight_map f0 (lift 
-(S i) O v)) (g i)) \to (lt (weight_map f0 t2) (weight_map g 
-t1)))))))).(\lambda (f0: ((nat \to nat))).(\lambda (g: ((nat \to 
-nat))).(\lambda (H4: ((\forall (m: nat).(le (f0 m) (g m))))).(\lambda (H5: 
-(lt (weight_map f0 (lift (S i) O v)) (g i))).(let TMP_440 \def (weight_map f0 
-u2) in (let TMP_441 \def (weight_map f0 t2) in (let TMP_442 \def (plus 
-TMP_440 TMP_441) in (let TMP_443 \def (weight_map g u1) in (let TMP_444 \def 
-(weight_map g t1) in (let TMP_445 \def (plus TMP_443 TMP_444) in (let TMP_446 
-\def (weight_map f0 u2) in (let TMP_447 \def (weight_map g u1) in (let 
-TMP_448 \def (weight_map f0 t2) in (let TMP_449 \def (weight_map g t1) in 
-(let TMP_450 \def (H1 f0 g H4 H5) in (let TMP_451 \def (H3 f0 g H4 H5) in 
-(let TMP_452 \def (lt_plus_plus TMP_446 TMP_447 TMP_448 TMP_449 TMP_450 
-TMP_451) in (lt_n_S TMP_442 TMP_445 TMP_452))))))))))))))))))))))) in (K_ind 
-TMP_290 TMP_439 TMP_453 k))))))))))) in (subst0_ind TMP_3 TMP_4 TMP_129 
-TMP_285 TMP_454 d u t z H)))))))))).
+(weight_map f (lift (S i) O v)) (g i))).(lt_n_S (plus (weight_map f u2) 
+(weight_map (wadd f O) t2)) (plus (weight_map g u1) (weight_map (wadd g O) 
+t1)) (lt_plus_plus (weight_map f u2) (weight_map g u1) (weight_map (wadd f O) 
+t2) (weight_map (wadd g O) t1) (H1 f g H4 H5) (H3 (wadd f O) (wadd g O) 
+(\lambda (m: nat).(le_S_n (wadd f O m) (wadd g O m) (le_n_S (wadd f O m) 
+(wadd g O m) (wadd_le f g H4 O O (le_O_n O) m)))) (eq_ind nat (weight_map f 
+(lift (S i) O v)) (\lambda (n: nat).(lt n (g i))) H5 (weight_map (wadd f O) 
+(lift (S (S i)) O v)) (lift_weight_add_O O v (S i) f))))))))))))) (\lambda 
+(t1: T).(\lambda (t2: T).(\lambda (_: (subst0 (S i) v t1 t2)).(\lambda (H3: 
+((\forall (f: ((nat \to nat))).(\forall (g: ((nat \to nat))).(((\forall (m: 
+nat).(le (f m) (g m)))) \to ((lt (weight_map f (lift (S (S i)) O v)) (g (S 
+i))) \to (lt (weight_map f t2) (weight_map g t1)))))))).(\lambda (f: ((nat 
+\to nat))).(\lambda (g: ((nat \to nat))).(\lambda (H4: ((\forall (m: nat).(le 
+(f m) (g m))))).(\lambda (H5: (lt (weight_map f (lift (S i) O v)) (g 
+i))).(lt_n_S (plus (weight_map f u2) (weight_map (wadd f O) t2)) (plus 
+(weight_map g u1) (weight_map (wadd g O) t1)) (lt_plus_plus (weight_map f u2) 
+(weight_map g u1) (weight_map (wadd f O) t2) (weight_map (wadd g O) t1) (H1 f 
+g H4 H5) (H3 (wadd f O) (wadd g O) (\lambda (m: nat).(le_S_n (wadd f O m) 
+(wadd g O m) (le_n_S (wadd f O m) (wadd g O m) (wadd_le f g H4 O O (le_O_n O) 
+m)))) (eq_ind nat (weight_map f (lift (S i) O v)) (\lambda (n: nat).(lt n (g 
+i))) H5 (weight_map (wadd f O) (lift (S (S i)) O v)) (lift_weight_add_O O v 
+(S i) f))))))))))))) b)) (\lambda (_: F).(\lambda (t1: T).(\lambda (t2: 
+T).(\lambda (_: (subst0 i v t1 t2)).(\lambda (H3: ((\forall (f0: ((nat \to 
+nat))).(\forall (g: ((nat \to nat))).(((\forall (m: nat).(le (f0 m) (g m)))) 
+\to ((lt (weight_map f0 (lift (S i) O v)) (g i)) \to (lt (weight_map f0 t2) 
+(weight_map g t1)))))))).(\lambda (f0: ((nat \to nat))).(\lambda (g: ((nat 
+\to nat))).(\lambda (H4: ((\forall (m: nat).(le (f0 m) (g m))))).(\lambda 
+(H5: (lt (weight_map f0 (lift (S i) O v)) (g i))).(lt_n_S (plus (weight_map 
+f0 u2) (weight_map f0 t2)) (plus (weight_map g u1) (weight_map g t1)) 
+(lt_plus_plus (weight_map f0 u2) (weight_map g u1) (weight_map f0 t2) 
+(weight_map g t1) (H1 f0 g H4 H5) (H3 f0 g H4 H5)))))))))))) k)))))))) d u t 
+z H))))).
 
 theorem subst0_tlt_head:
  \forall (u: T).(\forall (t: T).(\forall (z: T).((subst0 O u t z) \to (tlt 
 (THead (Bind Abbr) u z) (THead (Bind Abbr) u t)))))
 \def
  \lambda (u: T).(\lambda (t: T).(\lambda (z: T).(\lambda (H: (subst0 O u t 
-z)).(let TMP_1 \def (\lambda (_: nat).O) in (let TMP_2 \def (weight_map TMP_1 
-u) in (let TMP_3 \def (\lambda (_: nat).O) in (let TMP_4 \def (\lambda (_: 
-nat).O) in (let TMP_5 \def (weight_map TMP_4 u) in (let TMP_6 \def (S TMP_5) 
-in (let TMP_7 \def (wadd TMP_3 TMP_6) in (let TMP_8 \def (weight_map TMP_7 z) 
-in (let TMP_9 \def (plus TMP_2 TMP_8) in (let TMP_10 \def (\lambda (_: 
-nat).O) in (let TMP_11 \def (weight_map TMP_10 u) in (let TMP_12 \def 
-(\lambda (_: nat).O) in (let TMP_13 \def (\lambda (_: nat).O) in (let TMP_14 
-\def (weight_map TMP_13 u) in (let TMP_15 \def (S TMP_14) in (let TMP_16 \def 
-(wadd TMP_12 TMP_15) in (let TMP_17 \def (weight_map TMP_16 t) in (let TMP_18 
-\def (plus TMP_11 TMP_17) in (let TMP_19 \def (\lambda (_: nat).O) in (let 
-TMP_20 \def (weight_map TMP_19 u) in (let TMP_21 \def (\lambda (_: nat).O) in 
-(let TMP_22 \def (weight_map TMP_21 u) in (let TMP_23 \def (\lambda (_: 
-nat).O) in (let TMP_24 \def (\lambda (_: nat).O) in (let TMP_25 \def 
-(weight_map TMP_24 u) in (let TMP_26 \def (S TMP_25) in (let TMP_27 \def 
-(wadd TMP_23 TMP_26) in (let TMP_28 \def (weight_map TMP_27 z) in (let TMP_29 
-\def (\lambda (_: nat).O) in (let TMP_30 \def (\lambda (_: nat).O) in (let 
-TMP_31 \def (weight_map TMP_30 u) in (let TMP_32 \def (S TMP_31) in (let 
-TMP_33 \def (wadd TMP_29 TMP_32) in (let TMP_34 \def (weight_map TMP_33 t) in 
-(let TMP_35 \def (\lambda (_: nat).O) in (let TMP_36 \def (weight_map TMP_35 
-u) in (let TMP_37 \def (le_n TMP_36) in (let TMP_38 \def (\lambda (_: nat).O) 
-in (let TMP_39 \def (\lambda (_: nat).O) in (let TMP_40 \def (weight_map 
-TMP_39 u) in (let TMP_41 \def (S TMP_40) in (let TMP_42 \def (wadd TMP_38 
-TMP_41) in (let TMP_43 \def (\lambda (_: nat).O) in (let TMP_44 \def (\lambda 
-(_: nat).O) in (let TMP_45 \def (weight_map TMP_44 u) in (let TMP_46 \def (S 
-TMP_45) in (let TMP_47 \def (wadd TMP_43 TMP_46) in (let TMP_53 \def (\lambda 
-(m: nat).(let TMP_48 \def (\lambda (_: nat).O) in (let TMP_49 \def (\lambda 
-(_: nat).O) in (let TMP_50 \def (weight_map TMP_49 u) in (let TMP_51 \def (S 
-TMP_50) in (let TMP_52 \def (wadd TMP_48 TMP_51 m) in (le_n TMP_52))))))) in 
-(let TMP_54 \def (\lambda (_: nat).O) in (let TMP_55 \def (lift O O u) in 
-(let TMP_56 \def (weight_map TMP_54 TMP_55) in (let TMP_60 \def (\lambda (n: 
-nat).(let TMP_57 \def (\lambda (_: nat).O) in (let TMP_58 \def (weight_map 
-TMP_57 u) in (let TMP_59 \def (S TMP_58) in (lt n TMP_59))))) in (let TMP_66 
-\def (\lambda (t0: T).(let TMP_61 \def (\lambda (_: nat).O) in (let TMP_62 
-\def (weight_map TMP_61 t0) in (let TMP_63 \def (\lambda (_: nat).O) in (let 
-TMP_64 \def (weight_map TMP_63 u) in (let TMP_65 \def (S TMP_64) in (lt 
-TMP_62 TMP_65))))))) in (let TMP_67 \def (\lambda (_: nat).O) in (let TMP_68 
-\def (weight_map TMP_67 u) in (let TMP_69 \def (S TMP_68) in (let TMP_70 \def 
-(le_n TMP_69) in (let TMP_71 \def (lift O O u) in (let TMP_72 \def (lift_r u 
-O) in (let TMP_73 \def (eq_ind_r T u TMP_66 TMP_70 TMP_71 TMP_72) in (let 
-TMP_74 \def (\lambda (_: nat).O) in (let TMP_75 \def (\lambda (_: nat).O) in 
-(let TMP_76 \def (weight_map TMP_75 u) in (let TMP_77 \def (S TMP_76) in (let 
-TMP_78 \def (wadd TMP_74 TMP_77) in (let TMP_79 \def (S O) in (let TMP_80 
-\def (lift TMP_79 O u) in (let TMP_81 \def (weight_map TMP_78 TMP_80) in (let 
-TMP_82 \def (\lambda (_: nat).O) in (let TMP_83 \def (weight_map TMP_82 u) in 
-(let TMP_84 \def (S TMP_83) in (let TMP_85 \def (\lambda (_: nat).O) in (let 
-TMP_86 \def (lift_weight_add_O TMP_84 u O TMP_85) in (let TMP_87 \def (eq_ind 
-nat TMP_56 TMP_60 TMP_73 TMP_81 TMP_86) in (let TMP_88 \def (subst0_weight_lt 
-u t z O H TMP_42 TMP_47 TMP_53 TMP_87) in (let TMP_89 \def (le_lt_plus_plus 
-TMP_20 TMP_22 TMP_28 TMP_34 TMP_37 TMP_88) in (lt_n_S TMP_9 TMP_18 
-TMP_89))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
-)))))))).
+z)).(lt_n_S (plus (weight_map (\lambda (_: nat).O) u) (weight_map (wadd 
+(\lambda (_: nat).O) (S (weight_map (\lambda (_: nat).O) u))) z)) (plus 
+(weight_map (\lambda (_: nat).O) u) (weight_map (wadd (\lambda (_: nat).O) (S 
+(weight_map (\lambda (_: nat).O) u))) t)) (le_lt_plus_plus (weight_map 
+(\lambda (_: nat).O) u) (weight_map (\lambda (_: nat).O) u) (weight_map (wadd 
+(\lambda (_: nat).O) (S (weight_map (\lambda (_: nat).O) u))) z) (weight_map 
+(wadd (\lambda (_: nat).O) (S (weight_map (\lambda (_: nat).O) u))) t) (le_n 
+(weight_map (\lambda (_: nat).O) u)) (subst0_weight_lt u t z O H (wadd 
+(\lambda (_: nat).O) (S (weight_map (\lambda (_: nat).O) u))) (wadd (\lambda 
+(_: nat).O) (S (weight_map (\lambda (_: nat).O) u))) (\lambda (m: nat).(le_n 
+(wadd (\lambda (_: nat).O) (S (weight_map (\lambda (_: nat).O) u)) m))) 
+(eq_ind nat (weight_map (\lambda (_: nat).O) (lift O O u)) (\lambda (n: 
+nat).(lt n (S (weight_map (\lambda (_: nat).O) u)))) (eq_ind_r T u (\lambda 
+(t0: T).(lt (weight_map (\lambda (_: nat).O) t0) (S (weight_map (\lambda (_: 
+nat).O) u)))) (le_n (S (weight_map (\lambda (_: nat).O) u))) (lift O O u) 
+(lift_r u O)) (weight_map (wadd (\lambda (_: nat).O) (S (weight_map (\lambda 
+(_: nat).O) u))) (lift (S O) O u)) (lift_weight_add_O (S (weight_map (\lambda 
+(_: nat).O) u)) u O (\lambda (_: nat).O))))))))).
 
 theorem subst0_tlt:
  \forall (u: T).(\forall (t: T).(\forall (z: T).((subst0 O u t z) \to (tlt z 
 (THead (Bind Abbr) u t)))))
 \def
  \lambda (u: T).(\lambda (t: T).(\lambda (z: T).(\lambda (H: (subst0 O u t 
-z)).(let TMP_1 \def (Bind Abbr) in (let TMP_2 \def (THead TMP_1 u z) in (let 
-TMP_3 \def (Bind Abbr) in (let TMP_4 \def (THead TMP_3 u t) in (let TMP_5 
-\def (Bind Abbr) in (let TMP_6 \def (tlt_head_dx TMP_5 u z) in (let TMP_7 
-\def (subst0_tlt_head u t z H) in (tlt_trans TMP_2 z TMP_4 TMP_6 
-TMP_7))))))))))).
+z)).(tlt_trans (THead (Bind Abbr) u z) z (THead (Bind Abbr) u t) (tlt_head_dx 
+(Bind Abbr) u z) (subst0_tlt_head u t z H))))).
 
index 4d7489cb15ca901353028facdcf56390140158e6..5689c2721dc5783f707577fb924162b81c32774d 100644 (file)
@@ -34,12 +34,10 @@ theorem subst1_gen_sort:
 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)).(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)))))))))).
+(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))))).
 
 theorem subst1_gen_lref:
  \forall (v: T).(\forall (x: T).(\forall (i: nat).(\forall (n: nat).((subst1 
@@ -47,33 +45,16 @@ 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)).(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)))))))))))))))))))).
+(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))))).
 
 theorem subst1_gen_head:
  \forall (k: K).(\forall (v: T).(\forall (u1: T).(\forall (t1: T).(\forall 
@@ -83,95 +64,57 @@ 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)).(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: 
+(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: 
 T).(\lambda (H2: (eq T t2 (THead k u1 x0))).(\lambda (H3: (subst0 (s k i) v 
-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: 
+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: 
 T).(\lambda (_: T).(subst0 i v u1 u2))) (\lambda (_: T).(\lambda (t3: 
-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))))))))))))))))))).
+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))))))).
 
 theorem subst1_gen_lift_lt:
  \forall (u: T).(\forall (t1: T).(\forall (x: T).(\forall (i: nat).(\forall 
@@ -181,35 +124,20 @@ 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)).(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))))))))))))))))))))).
+(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))))))).
 
 theorem subst1_gen_lift_eq:
  \forall (t: T).(\forall (u: T).(\forall (x: T).(\forall (h: nat).(\forall 
@@ -218,13 +146,10 @@ 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)).(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)))))))))))))).
+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))))))))).
 
 theorem subst1_gen_lift_ge:
  \forall (u: T).(\forall (t1: T).(\forall (x: T).(\forall (i: nat).(\forall 
@@ -234,29 +159,17 @@ 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)).(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)))))))))))))))))).
+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)))))))).
 
index 637b5017f634ea3823033c5186bb840d31706411..1cfc01a332452d4d2eca17b7c5520279c1b94320 100644 (file)
@@ -24,30 +24,20 @@ 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)).(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)))))))).
+(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))))).
 
 theorem subst1_lift_lt:
  \forall (t1: T).(\forall (t2: T).(\forall (u: T).(\forall (i: nat).((subst1 
@@ -55,20 +45,14 @@ 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)).(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)))))))).
+(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))))).
 
 theorem subst1_lift_ge:
  \forall (t1: T).(\forall (t2: T).(\forall (u: T).(\forall (i: nat).(\forall 
@@ -76,281 +60,106 @@ 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)).(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))))))))).
+(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)))))).
 
 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).(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)))))).
+ \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_plus_r 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)).
 
 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).(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: 
+ \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_n (S n) (S i) 
+(le_S (S (S n)) (S i) (le_n_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_n (S i) (S n) (le_S (S (S i)) (S n) 
+(le_n_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: 
 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)).(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))))).
+(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).
 
index 3338dcad9ebb6d1b9030f22eb0c1f114140afc11..9558c841f53811264ef8d3754e348c136f61189a 100644 (file)
@@ -25,56 +25,33 @@ 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)).(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)))))))).
+(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))))).
 
 theorem subst1_subst1_back:
  \forall (t1: T).(\forall (t2: T).(\forall (u2: T).(\forall (j: nat).((subst1 
@@ -83,45 +60,26 @@ 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)).(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)))))))).
+(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))))).
 
 theorem subst1_trans:
  \forall (t2: T).(\forall (t1: T).(\forall (v: T).(\forall (i: nat).((subst1 
@@ -129,16 +87,13 @@ 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)).(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)))))))).
+(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))))).
 
 theorem subst1_confluence_neq:
  \forall (t0: T).(\forall (t1: T).(\forall (u1: T).(\forall (i1: 
@@ -147,38 +102,27 @@ 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)).(let TMP_3 \def (\lambda (t: 
+nat).(\lambda (H: (subst1 i1 u1 t0 t1)).(subst1_ind i1 u1 t0 (\lambda (t: 
 T).(\forall (t2: T).(\forall (u2: T).(\forall (i2: nat).((subst1 i2 u2 t0 t2) 
-\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: 
+\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: 
 T).(\lambda (i2: nat).(\lambda (H0: (subst1 i2 u2 t0 t2)).(\lambda (_: (not 
-(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)))))))).
+(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))))).
 
 theorem subst1_confluence_eq:
  \forall (t0: T).(\forall (t1: T).(\forall (u: T).(\forall (i: nat).((subst1 
@@ -186,56 +130,35 @@ 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)).(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: 
+(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: 
 T).(\lambda (H0: (subst0 i u t0 t2)).(\lambda (t3: T).(\lambda (H1: (subst1 i 
-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)))))))).
+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))))).
 
 theorem subst1_confluence_lift:
  \forall (t0: T).(\forall (t1: T).(\forall (u: T).(\forall (i: nat).((subst1 
@@ -243,57 +166,31 @@ 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))).(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)))))))))).
+(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))))).
 
index 557e41021af2120f46ed778c6787e1706fa5fa8b..86b88b5dfbfedd36740096d048aba69b4155c964 100644 (file)
@@ -21,19 +21,18 @@ inductive TList: Type[0] \def
 | TCons: T \to (TList \to TList).
 
 let rec THeads (k: K) (us: TList) on us: T \to T \def \lambda (t: T).(match 
-us with [TNil \Rightarrow t | (TCons u ul) \Rightarrow (let TMP_1 \def 
-(THeads k ul t) in (THead k u TMP_1))]).
+us with [TNil \Rightarrow t | (TCons u ul) \Rightarrow (THead k u (THeads k 
+ul t))]).
 
 let rec TApp (ts: TList) on ts: T \to TList \def \lambda (v: T).(match ts 
-with [TNil \Rightarrow (TCons v TNil) | (TCons t ts0) \Rightarrow (let TMP_1 
-\def (TApp ts0 v) in (TCons t TMP_1))]).
+with [TNil \Rightarrow (TCons v TNil) | (TCons t ts0) \Rightarrow (TCons t 
+(TApp ts0 v))]).
 
 let rec tslen (ts: TList) on ts: nat \def match ts with [TNil \Rightarrow O | 
-(TCons _ ts0) \Rightarrow (let TMP_1 \def (tslen ts0) in (S TMP_1))].
+(TCons _ ts0) \Rightarrow (S (tslen ts0))].
 
 definition tslt:
  TList \to (TList \to Prop)
 \def
- \lambda (ts1: TList).(\lambda (ts2: TList).(let TMP_1 \def (tslen ts1) in 
-(let TMP_2 \def (tslen ts2) in (lt TMP_1 TMP_2)))).
+ \lambda (ts1: TList).(\lambda (ts2: TList).(lt (tslen ts1) (tslen ts2))).
 
index ed68fca5602a5eddae36ac0a45ac8d5f0b91e5d4..b816890f1cc2a5414f453e4b87529d49616301e8 100644 (file)
@@ -24,9 +24,8 @@ theorem tslt_wf__q_ind:
  let Q \def (\lambda (P: ((TList \to Prop))).(\lambda (n: nat).(\forall (ts: 
 TList).((eq nat (tslen ts) n) \to (P ts))))) in (\lambda (P: ((TList \to 
 Prop))).(\lambda (H: ((\forall (n: nat).(\forall (ts: TList).((eq nat (tslen 
-ts) n) \to (P ts)))))).(\lambda (ts: TList).(let TMP_1 \def (tslen ts) in 
-(let TMP_2 \def (tslen ts) in (let TMP_3 \def (refl_equal nat TMP_2) in (H 
-TMP_1 ts TMP_3))))))).
+ts) n) \to (P ts)))))).(\lambda (ts: TList).(H (tslen ts) ts (refl_equal nat 
+(tslen ts)))))).
 
 theorem tslt_wf_ind:
  \forall (P: ((TList \to Prop))).(((\forall (ts2: TList).(((\forall (ts1: 
@@ -37,18 +36,14 @@ TList).(P ts)))
 TList).((eq nat (tslen ts) n) \to (P ts))))) in (\lambda (P: ((TList \to 
 Prop))).(\lambda (H: ((\forall (ts2: TList).(((\forall (ts1: TList).((lt 
 (tslen ts1) (tslen ts2)) \to (P ts1)))) \to (P ts2))))).(\lambda (ts: 
-TList).(let TMP_1 \def (\lambda (t: TList).(P t)) in (let TMP_11 \def 
-(\lambda (n: nat).(let TMP_2 \def (\lambda (t: TList).(P t)) in (let TMP_3 
-\def (Q TMP_2) in (let TMP_10 \def (\lambda (n0: nat).(\lambda (H0: ((\forall 
-(m: nat).((lt m n0) \to (Q (\lambda (t: TList).(P t)) m))))).(\lambda (ts0: 
-TList).(\lambda (H1: (eq nat (tslen ts0) n0)).(let TMP_4 \def (\lambda (n1: 
-nat).(\forall (m: nat).((lt m n1) \to (\forall (ts1: TList).((eq nat (tslen 
-ts1) m) \to (P ts1)))))) in (let TMP_5 \def (tslen ts0) in (let H2 \def 
-(eq_ind_r nat n0 TMP_4 H0 TMP_5 H1) in (let TMP_9 \def (\lambda (ts1: 
-TList).(\lambda (H3: (lt (tslen ts1) (tslen ts0))).(let TMP_6 \def (tslen 
-ts1) in (let TMP_7 \def (tslen ts1) in (let TMP_8 \def (refl_equal nat TMP_7) 
-in (H2 TMP_6 H3 ts1 TMP_8)))))) in (H ts0 TMP_9))))))))) in (lt_wf_ind n 
-TMP_3 TMP_10))))) in (tslt_wf__q_ind TMP_1 TMP_11 ts)))))).
+TList).(tslt_wf__q_ind (\lambda (t: TList).(P t)) (\lambda (n: 
+nat).(lt_wf_ind n (Q (\lambda (t: TList).(P t))) (\lambda (n0: nat).(\lambda 
+(H0: ((\forall (m: nat).((lt m n0) \to (Q (\lambda (t: TList).(P t)) 
+m))))).(\lambda (ts0: TList).(\lambda (H1: (eq nat (tslen ts0) n0)).(let H2 
+\def (eq_ind_r nat n0 (\lambda (n1: nat).(\forall (m: nat).((lt m n1) \to 
+(\forall (ts1: TList).((eq nat (tslen ts1) m) \to (P ts1)))))) H0 (tslen ts0) 
+H1) in (H ts0 (\lambda (ts1: TList).(\lambda (H3: (lt (tslen ts1) (tslen 
+ts0))).(H2 (tslen ts1) H3 ts1 (refl_equal nat (tslen ts1))))))))))))) ts)))).
 
 theorem tlist_ind_rev:
  \forall (P: ((TList \to Prop))).((P TNil) \to (((\forall (ts: 
@@ -57,29 +52,19 @@ TList).(P ts))))
 \def
  \lambda (P: ((TList \to Prop))).(\lambda (H: (P TNil)).(\lambda (H0: 
 ((\forall (ts: TList).(\forall (t: T).((P ts) \to (P (TApp ts 
-t))))))).(\lambda (ts: TList).(let TMP_1 \def (\lambda (t: TList).(P t)) in 
-(let TMP_28 \def (\lambda (ts2: TList).(let TMP_2 \def (\lambda (t: 
-TList).(((\forall (ts1: TList).((tslt ts1 t) \to (P ts1)))) \to (P t))) in 
-(let TMP_3 \def (\lambda (_: ((\forall (ts1: TList).((tslt ts1 TNil) \to (P 
-ts1))))).H) in (let TMP_27 \def (\lambda (t: T).(\lambda (t0: TList).(\lambda 
-(_: ((((\forall (ts1: TList).((tslt ts1 t0) \to (P ts1)))) \to (P 
-t0)))).(\lambda (H2: ((\forall (ts1: TList).((tslt ts1 (TCons t t0)) \to (P 
-ts1))))).(let H_x \def (tcons_tapp_ex t0 t) in (let H3 \def H_x in (let TMP_6 
-\def (\lambda (ts3: TList).(\lambda (t2: T).(let TMP_4 \def (TCons t t0) in 
-(let TMP_5 \def (TApp ts3 t2) in (eq TList TMP_4 TMP_5))))) in (let TMP_9 
-\def (\lambda (ts3: TList).(\lambda (_: T).(let TMP_7 \def (tslen t0) in (let 
-TMP_8 \def (tslen ts3) in (eq nat TMP_7 TMP_8))))) in (let TMP_10 \def (TCons 
-t t0) in (let TMP_11 \def (P TMP_10) in (let TMP_26 \def (\lambda (x0: 
-TList).(\lambda (x1: T).(\lambda (H4: (eq TList (TCons t t0) (TApp x0 
-x1))).(\lambda (H5: (eq nat (tslen t0) (tslen x0))).(let TMP_12 \def (TApp x0 
-x1) in (let TMP_13 \def (\lambda (t1: TList).(P t1)) in (let TMP_14 \def 
-(tslen t0) in (let TMP_17 \def (\lambda (n: nat).(let TMP_15 \def (TCons t 
-t0) in (let TMP_16 \def (tslen TMP_15) in (lt n TMP_16)))) in (let TMP_18 
-\def (TCons t t0) in (let TMP_19 \def (tslen TMP_18) in (let TMP_20 \def 
-(le_n TMP_19) in (let TMP_21 \def (tslen x0) in (let TMP_22 \def (eq_ind nat 
-TMP_14 TMP_17 TMP_20 TMP_21 H5) in (let TMP_23 \def (H2 x0 TMP_22) in (let 
-TMP_24 \def (H0 x0 x1 TMP_23) in (let TMP_25 \def (TCons t t0) in (eq_ind_r 
-TList TMP_12 TMP_13 TMP_24 TMP_25 H4))))))))))))))))) in (ex2_2_ind TList T 
-TMP_6 TMP_9 TMP_11 TMP_26 H3)))))))))))) in (TList_ind TMP_2 TMP_3 TMP_27 
-ts2))))) in (tslt_wf_ind TMP_1 TMP_28 ts)))))).
+t))))))).(\lambda (ts: TList).(tslt_wf_ind (\lambda (t: TList).(P t)) 
+(\lambda (ts2: TList).(TList_ind (\lambda (t: TList).(((\forall (ts1: 
+TList).((tslt ts1 t) \to (P ts1)))) \to (P t))) (\lambda (_: ((\forall (ts1: 
+TList).((tslt ts1 TNil) \to (P ts1))))).H) (\lambda (t: T).(\lambda (t0: 
+TList).(\lambda (_: ((((\forall (ts1: TList).((tslt ts1 t0) \to (P ts1)))) 
+\to (P t0)))).(\lambda (H2: ((\forall (ts1: TList).((tslt ts1 (TCons t t0)) 
+\to (P ts1))))).(let H_x \def (tcons_tapp_ex t0 t) in (let H3 \def H_x in 
+(ex2_2_ind TList T (\lambda (ts3: TList).(\lambda (t2: T).(eq TList (TCons t 
+t0) (TApp ts3 t2)))) (\lambda (ts3: TList).(\lambda (_: T).(eq nat (tslen t0) 
+(tslen ts3)))) (P (TCons t t0)) (\lambda (x0: TList).(\lambda (x1: 
+T).(\lambda (H4: (eq TList (TCons t t0) (TApp x0 x1))).(\lambda (H5: (eq nat 
+(tslen t0) (tslen x0))).(eq_ind_r TList (TApp x0 x1) (\lambda (t1: TList).(P 
+t1)) (H0 x0 x1 (H2 x0 (eq_ind nat (tslen t0) (\lambda (n: nat).(lt n (tslen 
+(TCons t t0)))) (le_n (tslen (TCons t t0))) (tslen x0) H5))) (TCons t t0) 
+H4))))) H3))))))) ts2)) ts)))).
 
index ea801d6cb4b87aa0b1ab21a7f4cb4d98924fc24e..f941820bbe7bfe6421042507c7469a5c934ca3e9 100644 (file)
@@ -20,80 +20,45 @@ theorem theads_tapp:
  \forall (k: K).(\forall (v: T).(\forall (t: T).(\forall (vs: TList).(eq T 
 (THeads k (TApp vs v) t) (THeads k vs (THead k v t))))))
 \def
- \lambda (k: K).(\lambda (v: T).(\lambda (t: T).(\lambda (vs: TList).(let 
-TMP_5 \def (\lambda (t0: TList).(let TMP_1 \def (TApp t0 v) in (let TMP_2 
-\def (THeads k TMP_1 t) in (let TMP_3 \def (THead k v t) in (let TMP_4 \def 
-(THeads k t0 TMP_3) in (eq T TMP_2 TMP_4)))))) in (let TMP_6 \def (THead k v 
-t) in (let TMP_7 \def (refl_equal T TMP_6) in (let TMP_21 \def (\lambda (t0: 
-T).(\lambda (t1: TList).(\lambda (H: (eq T (THeads k (TApp t1 v) t) (THeads k 
-t1 (THead k v t)))).(let TMP_8 \def (TApp t1 v) in (let TMP_9 \def (THeads k 
-TMP_8 t) in (let TMP_14 \def (\lambda (t2: T).(let TMP_10 \def (TApp t1 v) in 
-(let TMP_11 \def (THeads k TMP_10 t) in (let TMP_12 \def (THead k t0 TMP_11) 
-in (let TMP_13 \def (THead k t0 t2) in (eq T TMP_12 TMP_13)))))) in (let 
-TMP_15 \def (TApp t1 v) in (let TMP_16 \def (THeads k TMP_15 t) in (let 
-TMP_17 \def (THead k t0 TMP_16) in (let TMP_18 \def (refl_equal T TMP_17) in 
-(let TMP_19 \def (THead k v t) in (let TMP_20 \def (THeads k t1 TMP_19) in 
-(eq_ind T TMP_9 TMP_14 TMP_18 TMP_20 H))))))))))))) in (TList_ind TMP_5 TMP_7 
-TMP_21 vs)))))))).
+ \lambda (k: K).(\lambda (v: T).(\lambda (t: T).(\lambda (vs: 
+TList).(TList_ind (\lambda (t0: TList).(eq T (THeads k (TApp t0 v) t) (THeads 
+k t0 (THead k v t)))) (refl_equal T (THead k v t)) (\lambda (t0: T).(\lambda 
+(t1: TList).(\lambda (H: (eq T (THeads k (TApp t1 v) t) (THeads k t1 (THead k 
+v t)))).(eq_ind T (THeads k (TApp t1 v) t) (\lambda (t2: T).(eq T (THead k t0 
+(THeads k (TApp t1 v) t)) (THead k t0 t2))) (refl_equal T (THead k t0 (THeads 
+k (TApp t1 v) t))) (THeads k t1 (THead k v t)) H)))) vs)))).
 
 theorem tcons_tapp_ex:
  \forall (ts1: TList).(\forall (t1: T).(ex2_2 TList T (\lambda (ts2: 
 TList).(\lambda (t2: T).(eq TList (TCons t1 ts1) (TApp ts2 t2)))) (\lambda 
 (ts2: TList).(\lambda (_: T).(eq nat (tslen ts1) (tslen ts2))))))
 \def
- \lambda (ts1: TList).(let TMP_7 \def (\lambda (t: TList).(\forall (t1: 
-T).(let TMP_3 \def (\lambda (ts2: TList).(\lambda (t2: T).(let TMP_1 \def 
-(TCons t1 t) in (let TMP_2 \def (TApp ts2 t2) in (eq TList TMP_1 TMP_2))))) 
-in (let TMP_6 \def (\lambda (ts2: TList).(\lambda (_: T).(let TMP_4 \def 
-(tslen t) in (let TMP_5 \def (tslen ts2) in (eq nat TMP_4 TMP_5))))) in 
-(ex2_2 TList T TMP_3 TMP_6))))) in (let TMP_17 \def (\lambda (t1: T).(let 
-TMP_10 \def (\lambda (ts2: TList).(\lambda (t2: T).(let TMP_8 \def (TCons t1 
-TNil) in (let TMP_9 \def (TApp ts2 t2) in (eq TList TMP_8 TMP_9))))) in (let 
-TMP_12 \def (\lambda (ts2: TList).(\lambda (_: T).(let TMP_11 \def (tslen 
-ts2) in (eq nat O TMP_11)))) in (let TMP_13 \def (TApp TNil t1) in (let 
-TMP_14 \def (refl_equal TList TMP_13) in (let TMP_15 \def (tslen TNil) in 
-(let TMP_16 \def (refl_equal nat TMP_15) in (ex2_2_intro TList T TMP_10 
-TMP_12 TNil t1 TMP_14 TMP_16)))))))) in (let TMP_71 \def (\lambda (t: 
+ \lambda (ts1: TList).(TList_ind (\lambda (t: TList).(\forall (t1: T).(ex2_2 
+TList T (\lambda (ts2: TList).(\lambda (t2: T).(eq TList (TCons t1 t) (TApp 
+ts2 t2)))) (\lambda (ts2: TList).(\lambda (_: T).(eq nat (tslen t) (tslen 
+ts2))))))) (\lambda (t1: T).(ex2_2_intro TList T (\lambda (ts2: 
+TList).(\lambda (t2: T).(eq TList (TCons t1 TNil) (TApp ts2 t2)))) (\lambda 
+(ts2: TList).(\lambda (_: T).(eq nat O (tslen ts2)))) TNil t1 (refl_equal 
+TList (TApp TNil t1)) (refl_equal nat (tslen TNil)))) (\lambda (t: 
 T).(\lambda (t0: TList).(\lambda (H: ((\forall (t1: T).(ex2_2 TList T 
 (\lambda (ts2: TList).(\lambda (t2: T).(eq TList (TCons t1 t0) (TApp ts2 
 t2)))) (\lambda (ts2: TList).(\lambda (_: T).(eq nat (tslen t0) (tslen 
-ts2)))))))).(\lambda (t1: T).(let H_x \def (H t) in (let H0 \def H_x in (let 
-TMP_20 \def (\lambda (ts2: TList).(\lambda (t2: T).(let TMP_18 \def (TCons t 
-t0) in (let TMP_19 \def (TApp ts2 t2) in (eq TList TMP_18 TMP_19))))) in (let 
-TMP_23 \def (\lambda (ts2: TList).(\lambda (_: T).(let TMP_21 \def (tslen t0) 
-in (let TMP_22 \def (tslen ts2) in (eq nat TMP_21 TMP_22))))) in (let TMP_27 
-\def (\lambda (ts2: TList).(\lambda (t2: T).(let TMP_24 \def (TCons t t0) in 
-(let TMP_25 \def (TCons t1 TMP_24) in (let TMP_26 \def (TApp ts2 t2) in (eq 
-TList TMP_25 TMP_26)))))) in (let TMP_31 \def (\lambda (ts2: TList).(\lambda 
-(_: T).(let TMP_28 \def (tslen t0) in (let TMP_29 \def (S TMP_28) in (let 
-TMP_30 \def (tslen ts2) in (eq nat TMP_29 TMP_30)))))) in (let TMP_32 \def 
-(ex2_2 TList T TMP_27 TMP_31) in (let TMP_70 \def (\lambda (x0: 
-TList).(\lambda (x1: T).(\lambda (H1: (eq TList (TCons t t0) (TApp x0 
-x1))).(\lambda (H2: (eq nat (tslen t0) (tslen x0))).(let TMP_33 \def (TApp x0 
-x1) in (let TMP_41 \def (\lambda (t2: TList).(let TMP_36 \def (\lambda (ts2: 
-TList).(\lambda (t3: T).(let TMP_34 \def (TCons t1 t2) in (let TMP_35 \def 
-(TApp ts2 t3) in (eq TList TMP_34 TMP_35))))) in (let TMP_40 \def (\lambda 
-(ts2: TList).(\lambda (_: T).(let TMP_37 \def (tslen t0) in (let TMP_38 \def 
-(S TMP_37) in (let TMP_39 \def (tslen ts2) in (eq nat TMP_38 TMP_39)))))) in 
-(ex2_2 TList T TMP_36 TMP_40)))) in (let TMP_42 \def (tslen x0) in (let 
-TMP_50 \def (\lambda (n: nat).(let TMP_46 \def (\lambda (ts2: TList).(\lambda 
-(t2: T).(let TMP_43 \def (TApp x0 x1) in (let TMP_44 \def (TCons t1 TMP_43) 
-in (let TMP_45 \def (TApp ts2 t2) in (eq TList TMP_44 TMP_45)))))) in (let 
-TMP_49 \def (\lambda (ts2: TList).(\lambda (_: T).(let TMP_47 \def (S n) in 
-(let TMP_48 \def (tslen ts2) in (eq nat TMP_47 TMP_48))))) in (ex2_2 TList T 
-TMP_46 TMP_49)))) in (let TMP_54 \def (\lambda (ts2: TList).(\lambda (t2: 
-T).(let TMP_51 \def (TApp x0 x1) in (let TMP_52 \def (TCons t1 TMP_51) in 
-(let TMP_53 \def (TApp ts2 t2) in (eq TList TMP_52 TMP_53)))))) in (let 
-TMP_58 \def (\lambda (ts2: TList).(\lambda (_: T).(let TMP_55 \def (tslen x0) 
-in (let TMP_56 \def (S TMP_55) in (let TMP_57 \def (tslen ts2) in (eq nat 
-TMP_56 TMP_57)))))) in (let TMP_59 \def (TCons t1 x0) in (let TMP_60 \def 
-(TCons t1 x0) in (let TMP_61 \def (TApp TMP_60 x1) in (let TMP_62 \def 
-(refl_equal TList TMP_61) in (let TMP_63 \def (TCons t1 x0) in (let TMP_64 
-\def (tslen TMP_63) in (let TMP_65 \def (refl_equal nat TMP_64) in (let 
-TMP_66 \def (ex2_2_intro TList T TMP_54 TMP_58 TMP_59 x1 TMP_62 TMP_65) in 
-(let TMP_67 \def (tslen t0) in (let TMP_68 \def (eq_ind_r nat TMP_42 TMP_50 
-TMP_66 TMP_67 H2) in (let TMP_69 \def (TCons t t0) in (eq_ind_r TList TMP_33 
-TMP_41 TMP_68 TMP_69 H1)))))))))))))))))))))) in (ex2_2_ind TList T TMP_20 
-TMP_23 TMP_32 TMP_70 H0))))))))))))) in (TList_ind TMP_7 TMP_17 TMP_71 
-ts1)))).
+ts2)))))))).(\lambda (t1: T).(let H_x \def (H t) in (let H0 \def H_x in 
+(ex2_2_ind TList T (\lambda (ts2: TList).(\lambda (t2: T).(eq TList (TCons t 
+t0) (TApp ts2 t2)))) (\lambda (ts2: TList).(\lambda (_: T).(eq nat (tslen t0) 
+(tslen ts2)))) (ex2_2 TList T (\lambda (ts2: TList).(\lambda (t2: T).(eq 
+TList (TCons t1 (TCons t t0)) (TApp ts2 t2)))) (\lambda (ts2: TList).(\lambda 
+(_: T).(eq nat (S (tslen t0)) (tslen ts2))))) (\lambda (x0: TList).(\lambda 
+(x1: T).(\lambda (H1: (eq TList (TCons t t0) (TApp x0 x1))).(\lambda (H2: (eq 
+nat (tslen t0) (tslen x0))).(eq_ind_r TList (TApp x0 x1) (\lambda (t2: 
+TList).(ex2_2 TList T (\lambda (ts2: TList).(\lambda (t3: T).(eq TList (TCons 
+t1 t2) (TApp ts2 t3)))) (\lambda (ts2: TList).(\lambda (_: T).(eq nat (S 
+(tslen t0)) (tslen ts2)))))) (eq_ind_r nat (tslen x0) (\lambda (n: 
+nat).(ex2_2 TList T (\lambda (ts2: TList).(\lambda (t2: T).(eq TList (TCons 
+t1 (TApp x0 x1)) (TApp ts2 t2)))) (\lambda (ts2: TList).(\lambda (_: T).(eq 
+nat (S n) (tslen ts2)))))) (ex2_2_intro TList T (\lambda (ts2: 
+TList).(\lambda (t2: T).(eq TList (TCons t1 (TApp x0 x1)) (TApp ts2 t2)))) 
+(\lambda (ts2: TList).(\lambda (_: T).(eq nat (S (tslen x0)) (tslen ts2)))) 
+(TCons t1 x0) x1 (refl_equal TList (TApp (TCons t1 x0) x1)) (refl_equal nat 
+(tslen (TCons t1 x0)))) (tslen t0) H2) (TCons t t0) H1))))) H0))))))) ts1).
 
index 5abfa6483164ad2f84e675c5301950a18a6a54f7..3a21225f2f2bd77cca50be3999cba32dfef56bca 100644 (file)
@@ -25,26 +25,19 @@ with [O \Rightarrow w | (S m) \Rightarrow (f m)]))).
 let rec weight_map (f: (nat \to nat)) (t: T) on t: nat \def match t with 
 [(TSort _) \Rightarrow O | (TLRef n) \Rightarrow (f n) | (THead k u t0) 
 \Rightarrow (match k with [(Bind b) \Rightarrow (match b with [Abbr 
-\Rightarrow (let TMP_12 \def (weight_map f u) in (let TMP_13 \def (weight_map 
-f u) in (let TMP_14 \def (S TMP_13) in (let TMP_15 \def (wadd f TMP_14) in 
-(let TMP_16 \def (weight_map TMP_15 t0) in (let TMP_17 \def (plus TMP_12 
-TMP_16) in (S TMP_17))))))) | Abst \Rightarrow (let TMP_8 \def (weight_map f 
-u) in (let TMP_9 \def (wadd f O) in (let TMP_10 \def (weight_map TMP_9 t0) in 
-(let TMP_11 \def (plus TMP_8 TMP_10) in (S TMP_11))))) | Void \Rightarrow 
-(let TMP_4 \def (weight_map f u) in (let TMP_5 \def (wadd f O) in (let TMP_6 
-\def (weight_map TMP_5 t0) in (let TMP_7 \def (plus TMP_4 TMP_6) in (S 
-TMP_7)))))]) | (Flat _) \Rightarrow (let TMP_1 \def (weight_map f u) in (let 
-TMP_2 \def (weight_map f t0) in (let TMP_3 \def (plus TMP_1 TMP_2) in (S 
-TMP_3))))])].
+\Rightarrow (S (plus (weight_map f u) (weight_map (wadd f (S (weight_map f 
+u))) t0))) | Abst \Rightarrow (S (plus (weight_map f u) (weight_map (wadd f 
+O) t0))) | Void \Rightarrow (S (plus (weight_map f u) (weight_map (wadd f O) 
+t0)))]) | (Flat _) \Rightarrow (S (plus (weight_map f u) (weight_map f 
+t0)))])].
 
 definition weight:
  T \to nat
 \def
let TMP_1 \def (\lambda (_: nat).O) in (weight_map TMP_1).
weight_map (\lambda (_: nat).O).
 
 definition tlt:
  T \to (T \to Prop)
 \def
- \lambda (t1: T).(\lambda (t2: T).(let TMP_1 \def (weight t1) in (let TMP_2 
-\def (weight t2) in (lt TMP_1 TMP_2)))).
+ \lambda (t1: T).(\lambda (t2: T).(lt (weight t1) (weight t2))).
 
index f284327c1d923376be5d26493167b04a19192f4c..2ee88a07352526ffaa66f2ac0b22738bd2af649d 100644 (file)
@@ -24,9 +24,8 @@ t))))) P n))) \to (\forall (t: T).(P t)))
  let Q \def (\lambda (P: ((T \to Prop))).(\lambda (n: nat).(\forall (t: 
 T).((eq nat (weight t) n) \to (P t))))) in (\lambda (P: ((T \to 
 Prop))).(\lambda (H: ((\forall (n: nat).(\forall (t: T).((eq nat (weight t) 
-n) \to (P t)))))).(\lambda (t: T).(let TMP_1 \def (weight t) in (let TMP_2 
-\def (weight t) in (let TMP_3 \def (refl_equal nat TMP_2) in (H TMP_1 t 
-TMP_3))))))).
+n) \to (P t)))))).(\lambda (t: T).(H (weight t) t (refl_equal nat (weight 
+t)))))).
 
 theorem tlt_wf_ind:
  \forall (P: ((T \to Prop))).(((\forall (t: T).(((\forall (v: T).((tlt v t) 
@@ -35,17 +34,13 @@ theorem tlt_wf_ind:
  let Q \def (\lambda (P: ((T \to Prop))).(\lambda (n: nat).(\forall (t: 
 T).((eq nat (weight t) n) \to (P t))))) in (\lambda (P: ((T \to 
 Prop))).(\lambda (H: ((\forall (t: T).(((\forall (v: T).((lt (weight v) 
-(weight t)) \to (P v)))) \to (P t))))).(\lambda (t: T).(let TMP_1 \def 
-(\lambda (t0: T).(P t0)) in (let TMP_11 \def (\lambda (n: nat).(let TMP_2 
-\def (\lambda (t0: T).(P t0)) in (let TMP_3 \def (Q TMP_2) in (let TMP_10 
-\def (\lambda (n0: nat).(\lambda (H0: ((\forall (m: nat).((lt m n0) \to (Q 
-(\lambda (t0: T).(P t0)) m))))).(\lambda (t0: T).(\lambda (H1: (eq nat 
-(weight t0) n0)).(let TMP_4 \def (\lambda (n1: nat).(\forall (m: nat).((lt m 
-n1) \to (\forall (t1: T).((eq nat (weight t1) m) \to (P t1)))))) in (let 
-TMP_5 \def (weight t0) in (let H2 \def (eq_ind_r nat n0 TMP_4 H0 TMP_5 H1) in 
-(let TMP_9 \def (\lambda (v: T).(\lambda (H3: (lt (weight v) (weight 
-t0))).(let TMP_6 \def (weight v) in (let TMP_7 \def (weight v) in (let TMP_8 
-\def (refl_equal nat TMP_7) in (H2 TMP_6 H3 v TMP_8)))))) in (H t0 
-TMP_9))))))))) in (lt_wf_ind n TMP_3 TMP_10))))) in (tlt_wf__q_ind TMP_1 
-TMP_11 t)))))).
+(weight t)) \to (P v)))) \to (P t))))).(\lambda (t: T).(tlt_wf__q_ind 
+(\lambda (t0: T).(P t0)) (\lambda (n: nat).(lt_wf_ind n (Q (\lambda (t0: 
+T).(P t0))) (\lambda (n0: nat).(\lambda (H0: ((\forall (m: nat).((lt m n0) 
+\to (Q (\lambda (t0: T).(P t0)) m))))).(\lambda (t0: T).(\lambda (H1: (eq nat 
+(weight t0) n0)).(let H2 \def (eq_ind_r nat n0 (\lambda (n1: nat).(\forall 
+(m: nat).((lt m n1) \to (\forall (t1: T).((eq nat (weight t1) m) \to (P 
+t1)))))) H0 (weight t0) H1) in (H t0 (\lambda (v: T).(\lambda (H3: (lt 
+(weight v) (weight t0))).(H2 (weight v) H3 v (refl_equal nat (weight 
+v))))))))))))) t)))).
 
index 37cd527fb34e51e8eb765faab54ae9aa3239487d..0daa861c71861348def37ac9def85091ecd5b80b 100644 (file)
@@ -25,10 +25,9 @@ nat).(le (f n) (g n)))) \to (\forall (v: nat).(\forall (w: nat).((le v w) \to
 \def
  \lambda (f: ((nat \to nat))).(\lambda (g: ((nat \to nat))).(\lambda (H: 
 ((\forall (n: nat).(le (f n) (g n))))).(\lambda (v: nat).(\lambda (w: 
-nat).(\lambda (H0: (le v w)).(\lambda (n: nat).(let TMP_3 \def (\lambda (n0: 
-nat).(let TMP_1 \def (wadd f v n0) in (let TMP_2 \def (wadd g w n0) in (le 
-TMP_1 TMP_2)))) in (let TMP_4 \def (\lambda (n0: nat).(\lambda (_: (le (wadd 
-f v n0) (wadd g w n0))).(H n0))) in (nat_ind TMP_3 H0 TMP_4 n))))))))).
+nat).(\lambda (H0: (le v w)).(\lambda (n: nat).(nat_ind (\lambda (n0: 
+nat).(le (wadd f v n0) (wadd g w n0))) H0 (\lambda (n0: nat).(\lambda (_: (le 
+(wadd f v n0) (wadd g w n0))).(H n0))) n))))))).
 
 theorem wadd_lt:
  \forall (f: ((nat \to nat))).(\forall (g: ((nat \to nat))).(((\forall (n: 
@@ -37,158 +36,96 @@ nat).(le (f n) (g n)))) \to (\forall (v: nat).(\forall (w: nat).((lt v w) \to
 \def
  \lambda (f: ((nat \to nat))).(\lambda (g: ((nat \to nat))).(\lambda (H: 
 ((\forall (n: nat).(le (f n) (g n))))).(\lambda (v: nat).(\lambda (w: 
-nat).(\lambda (H0: (lt v w)).(\lambda (n: nat).(let TMP_3 \def (\lambda (n0: 
-nat).(let TMP_1 \def (wadd f v n0) in (let TMP_2 \def (wadd g w n0) in (le 
-TMP_1 TMP_2)))) in (let TMP_4 \def (S v) in (let TMP_5 \def (S w) in (let 
-TMP_6 \def (S v) in (let TMP_7 \def (S TMP_6) in (let TMP_8 \def (S w) in 
-(let TMP_9 \def (S v) in (let TMP_10 \def (le_n_S TMP_9 w H0) in (let TMP_11 
-\def (le_S TMP_7 TMP_8 TMP_10) in (let TMP_12 \def (le_S_n TMP_4 TMP_5 
-TMP_11) in (let TMP_13 \def (le_S_n v w TMP_12) in (let TMP_14 \def (\lambda 
-(n0: nat).(\lambda (_: (le (wadd f v n0) (wadd g w n0))).(H n0))) in (nat_ind 
-TMP_3 TMP_13 TMP_14 n))))))))))))))))))).
+nat).(\lambda (H0: (lt v w)).(\lambda (n: nat).(nat_ind (\lambda (n0: 
+nat).(le (wadd f v n0) (wadd g w n0))) (le_S_n v w (le_S_n (S v) (S w) (le_S 
+(S (S v)) (S w) (le_n_S (S v) w H0)))) (\lambda (n0: nat).(\lambda (_: (le 
+(wadd f v n0) (wadd g w n0))).(H n0))) n))))))).
 
 theorem wadd_O:
  \forall (n: nat).(eq nat (wadd (\lambda (_: nat).O) O n) O)
 \def
- \lambda (n: nat).(let TMP_3 \def (\lambda (n0: nat).(let TMP_1 \def (\lambda 
-(_: nat).O) in (let TMP_2 \def (wadd TMP_1 O n0) in (eq nat TMP_2 O)))) in 
-(let TMP_4 \def (refl_equal nat O) in (let TMP_5 \def (\lambda (n0: 
-nat).(\lambda (_: (eq nat (wadd (\lambda (_: nat).O) O n0) O)).(refl_equal 
-nat O))) in (nat_ind TMP_3 TMP_4 TMP_5 n)))).
+ \lambda (n: nat).(nat_ind (\lambda (n0: nat).(eq nat (wadd (\lambda (_: 
+nat).O) O n0) O)) (refl_equal nat O) (\lambda (n0: nat).(\lambda (_: (eq nat 
+(wadd (\lambda (_: nat).O) O n0) O)).(refl_equal nat O))) n).
 
 theorem weight_le:
  \forall (t: T).(\forall (f: ((nat \to nat))).(\forall (g: ((nat \to 
 nat))).(((\forall (n: nat).(le (f n) (g n)))) \to (le (weight_map f t) 
 (weight_map g t)))))
 \def
- \lambda (t: T).(let TMP_3 \def (\lambda (t0: T).(\forall (f: ((nat \to 
+ \lambda (t: T).(T_ind (\lambda (t0: T).(\forall (f: ((nat \to 
 nat))).(\forall (g: ((nat \to nat))).(((\forall (n: nat).(le (f n) (g n)))) 
-\to (let TMP_1 \def (weight_map f t0) in (let TMP_2 \def (weight_map g t0) in 
-(le TMP_1 TMP_2))))))) in (let TMP_6 \def (\lambda (n: nat).(\lambda (f: 
-((nat \to nat))).(\lambda (g: ((nat \to nat))).(\lambda (_: ((\forall (n0: 
-nat).(le (f n0) (g n0))))).(let TMP_4 \def (TSort n) in (let TMP_5 \def 
-(weight_map g TMP_4) in (le_O_n TMP_5))))))) in (let TMP_7 \def (\lambda (n: 
-nat).(\lambda (f: ((nat \to nat))).(\lambda (g: ((nat \to nat))).(\lambda (H: 
-((\forall (n0: nat).(le (f n0) (g n0))))).(H n))))) in (let TMP_144 \def 
-(\lambda (k: K).(let TMP_12 \def (\lambda (k0: K).(\forall (t0: T).(((\forall 
-(f: ((nat \to nat))).(\forall (g: ((nat \to nat))).(((\forall (n: nat).(le (f 
-n) (g n)))) \to (le (weight_map f t0) (weight_map g t0)))))) \to (\forall 
-(t1: T).(((\forall (f: ((nat \to nat))).(\forall (g: ((nat \to 
-nat))).(((\forall (n: nat).(le (f n) (g n)))) \to (le (weight_map f t1) 
-(weight_map g t1)))))) \to (\forall (f: ((nat \to nat))).(\forall (g: ((nat 
-\to nat))).(((\forall (n: nat).(le (f n) (g n)))) \to (let TMP_8 \def (THead 
-k0 t0 t1) in (let TMP_9 \def (weight_map f TMP_8) in (let TMP_10 \def (THead 
-k0 t0 t1) in (let TMP_11 \def (weight_map g TMP_10) in (le TMP_9 
-TMP_11))))))))))))) in (let TMP_129 \def (\lambda (b: B).(let TMP_43 \def 
-(\lambda (b0: B).(\forall (t0: T).(((\forall (f: ((nat \to nat))).(\forall 
-(g: ((nat \to nat))).(((\forall (n: nat).(le (f n) (g n)))) \to (le 
-(weight_map f t0) (weight_map g t0)))))) \to (\forall (t1: T).(((\forall (f: 
-((nat \to nat))).(\forall (g: ((nat \to nat))).(((\forall (n: nat).(le (f n) 
-(g n)))) \to (le (weight_map f t1) (weight_map g t1)))))) \to (\forall (f: 
-((nat \to nat))).(\forall (g: ((nat \to nat))).(((\forall (n: nat).(le (f n) 
-(g n)))) \to (let TMP_27 \def (match b0 with [Abbr \Rightarrow (let TMP_21 
-\def (weight_map f t0) in (let TMP_22 \def (weight_map f t0) in (let TMP_23 
-\def (S TMP_22) in (let TMP_24 \def (wadd f TMP_23) in (let TMP_25 \def 
-(weight_map TMP_24 t1) in (let TMP_26 \def (plus TMP_21 TMP_25) in (S 
-TMP_26))))))) | Abst \Rightarrow (let TMP_17 \def (weight_map f t0) in (let 
-TMP_18 \def (wadd f O) in (let TMP_19 \def (weight_map TMP_18 t1) in (let 
-TMP_20 \def (plus TMP_17 TMP_19) in (S TMP_20))))) | Void \Rightarrow (let 
-TMP_13 \def (weight_map f t0) in (let TMP_14 \def (wadd f O) in (let TMP_15 
-\def (weight_map TMP_14 t1) in (let TMP_16 \def (plus TMP_13 TMP_15) in (S 
-TMP_16)))))]) in (let TMP_42 \def (match b0 with [Abbr \Rightarrow (let 
-TMP_36 \def (weight_map g t0) in (let TMP_37 \def (weight_map g t0) in (let 
-TMP_38 \def (S TMP_37) in (let TMP_39 \def (wadd g TMP_38) in (let TMP_40 
-\def (weight_map TMP_39 t1) in (let TMP_41 \def (plus TMP_36 TMP_40) in (S 
-TMP_41))))))) | Abst \Rightarrow (let TMP_32 \def (weight_map g t0) in (let 
-TMP_33 \def (wadd g O) in (let TMP_34 \def (weight_map TMP_33 t1) in (let 
-TMP_35 \def (plus TMP_32 TMP_34) in (S TMP_35))))) | Void \Rightarrow (let 
-TMP_28 \def (weight_map g t0) in (let TMP_29 \def (wadd g O) in (let TMP_30 
-\def (weight_map TMP_29 t1) in (let TMP_31 \def (plus TMP_28 TMP_30) in (S 
-TMP_31)))))]) in (le TMP_27 TMP_42))))))))))) in (let TMP_84 \def (\lambda 
-(t0: T).(\lambda (H: ((\forall (f: ((nat \to nat))).(\forall (g: ((nat \to 
-nat))).(((\forall (n: nat).(le (f n) (g n)))) \to (le (weight_map f t0) 
-(weight_map g t0))))))).(\lambda (t1: T).(\lambda (H0: ((\forall (f: ((nat 
+\to (le (weight_map f t0) (weight_map g t0)))))) (\lambda (n: nat).(\lambda 
+(f: ((nat \to nat))).(\lambda (g: ((nat \to nat))).(\lambda (_: ((\forall 
+(n0: nat).(le (f n0) (g n0))))).(le_O_n (weight_map g (TSort n))))))) 
+(\lambda (n: nat).(\lambda (f: ((nat \to nat))).(\lambda (g: ((nat \to 
+nat))).(\lambda (H: ((\forall (n0: nat).(le (f n0) (g n0))))).(H n))))) 
+(\lambda (k: K).(K_ind (\lambda (k0: K).(\forall (t0: T).(((\forall (f: ((nat 
 \to nat))).(\forall (g: ((nat \to nat))).(((\forall (n: nat).(le (f n) (g 
-n)))) \to (le (weight_map f t1) (weight_map g t1))))))).(\lambda (f: ((nat 
-\to nat))).(\lambda (g: ((nat \to nat))).(\lambda (H1: ((\forall (n: nat).(le 
-(f n) (g n))))).(let TMP_44 \def (weight_map f t0) in (let TMP_45 \def 
-(weight_map f t0) in (let TMP_46 \def (S TMP_45) in (let TMP_47 \def (wadd f 
-TMP_46) in (let TMP_48 \def (weight_map TMP_47 t1) in (let TMP_49 \def (plus 
-TMP_44 TMP_48) in (let TMP_50 \def (weight_map g t0) in (let TMP_51 \def 
-(weight_map g t0) in (let TMP_52 \def (S TMP_51) in (let TMP_53 \def (wadd g 
-TMP_52) in (let TMP_54 \def (weight_map TMP_53 t1) in (let TMP_55 \def (plus 
-TMP_50 TMP_54) in (let TMP_56 \def (weight_map f t0) in (let TMP_57 \def 
-(weight_map g t0) in (let TMP_58 \def (weight_map f t0) in (let TMP_59 \def 
-(S TMP_58) in (let TMP_60 \def (wadd f TMP_59) in (let TMP_61 \def 
-(weight_map TMP_60 t1) in (let TMP_62 \def (weight_map g t0) in (let TMP_63 
-\def (S TMP_62) in (let TMP_64 \def (wadd g TMP_63) in (let TMP_65 \def 
-(weight_map TMP_64 t1) in (let TMP_66 \def (H f g H1) in (let TMP_67 \def 
-(weight_map f t0) in (let TMP_68 \def (S TMP_67) in (let TMP_69 \def (wadd f 
-TMP_68) in (let TMP_70 \def (weight_map g t0) in (let TMP_71 \def (S TMP_70) 
-in (let TMP_72 \def (wadd g TMP_71) in (let TMP_81 \def (\lambda (n: 
-nat).(let TMP_73 \def (weight_map f t0) in (let TMP_74 \def (S TMP_73) in 
-(let TMP_75 \def (weight_map g t0) in (let TMP_76 \def (S TMP_75) in (let 
-TMP_77 \def (weight_map f t0) in (let TMP_78 \def (weight_map g t0) in (let 
-TMP_79 \def (H f g H1) in (let TMP_80 \def (le_n_S TMP_77 TMP_78 TMP_79) in 
-(wadd_le f g H1 TMP_74 TMP_76 TMP_80 n)))))))))) in (let TMP_82 \def (H0 
-TMP_69 TMP_72 TMP_81) in (let TMP_83 \def (le_plus_plus TMP_56 TMP_57 TMP_61 
-TMP_65 TMP_66 TMP_82) in (le_n_S TMP_49 TMP_55 
-TMP_83)))))))))))))))))))))))))))))))))))))))) in (let TMP_106 \def (\lambda 
-(t0: T).(\lambda (H: ((\forall (f: ((nat \to nat))).(\forall (g: ((nat \to 
+n)))) \to (le (weight_map f t0) (weight_map g t0)))))) \to (\forall (t1: 
+T).(((\forall (f: ((nat \to nat))).(\forall (g: ((nat \to nat))).(((\forall 
+(n: nat).(le (f n) (g n)))) \to (le (weight_map f t1) (weight_map g t1)))))) 
+\to (\forall (f: ((nat \to nat))).(\forall (g: ((nat \to nat))).(((\forall 
+(n: nat).(le (f n) (g n)))) \to (le (weight_map f (THead k0 t0 t1)) 
+(weight_map g (THead k0 t0 t1))))))))))) (\lambda (b: B).(B_ind (\lambda (b0: 
+B).(\forall (t0: T).(((\forall (f: ((nat \to nat))).(\forall (g: ((nat \to 
 nat))).(((\forall (n: nat).(le (f n) (g n)))) \to (le (weight_map f t0) 
-(weight_map g t0))))))).(\lambda (t1: T).(\lambda (H0: ((\forall (f: ((nat 
-\to nat))).(\forall (g: ((nat \to nat))).(((\forall (n: nat).(le (f n) (g 
-n)))) \to (le (weight_map f t1) (weight_map g t1))))))).(\lambda (f: ((nat 
+(weight_map g t0)))))) \to (\forall (t1: T).(((\forall (f: ((nat \to 
+nat))).(\forall (g: ((nat \to nat))).(((\forall (n: nat).(le (f n) (g n)))) 
+\to (le (weight_map f t1) (weight_map g t1)))))) \to (\forall (f: ((nat \to 
+nat))).(\forall (g: ((nat \to nat))).(((\forall (n: nat).(le (f n) (g n)))) 
+\to (le (match b0 with [Abbr \Rightarrow (S (plus (weight_map f t0) 
+(weight_map (wadd f (S (weight_map f t0))) t1))) | Abst \Rightarrow (S (plus 
+(weight_map f t0) (weight_map (wadd f O) t1))) | Void \Rightarrow (S (plus 
+(weight_map f t0) (weight_map (wadd f O) t1)))]) (match b0 with [Abbr 
+\Rightarrow (S (plus (weight_map g t0) (weight_map (wadd g (S (weight_map g 
+t0))) t1))) | Abst \Rightarrow (S (plus (weight_map g t0) (weight_map (wadd g 
+O) t1))) | Void \Rightarrow (S (plus (weight_map g t0) (weight_map (wadd g O) 
+t1)))])))))))))) (\lambda (t0: T).(\lambda (H: ((\forall (f: ((nat \to 
+nat))).(\forall (g: ((nat \to nat))).(((\forall (n: nat).(le (f n) (g n)))) 
+\to (le (weight_map f t0) (weight_map g t0))))))).(\lambda (t1: T).(\lambda 
+(H0: ((\forall (f: ((nat \to nat))).(\forall (g: ((nat \to nat))).(((\forall 
+(n: nat).(le (f n) (g n)))) \to (le (weight_map f t1) (weight_map g 
+t1))))))).(\lambda (f: ((nat \to nat))).(\lambda (g: ((nat \to 
+nat))).(\lambda (H1: ((\forall (n: nat).(le (f n) (g n))))).(le_n_S (plus 
+(weight_map f t0) (weight_map (wadd f (S (weight_map f t0))) t1)) (plus 
+(weight_map g t0) (weight_map (wadd g (S (weight_map g t0))) t1)) 
+(le_plus_plus (weight_map f t0) (weight_map g t0) (weight_map (wadd f (S 
+(weight_map f t0))) t1) (weight_map (wadd g (S (weight_map g t0))) t1) (H f g 
+H1) (H0 (wadd f (S (weight_map f t0))) (wadd g (S (weight_map g t0))) 
+(\lambda (n: nat).(wadd_le f g H1 (S (weight_map f t0)) (S (weight_map g t0)) 
+(le_n_S (weight_map f t0) (weight_map g t0) (H f g H1)) n)))))))))))) 
+(\lambda (t0: T).(\lambda (H: ((\forall (f: ((nat \to nat))).(\forall (g: 
+((nat \to nat))).(((\forall (n: nat).(le (f n) (g n)))) \to (le (weight_map f 
+t0) (weight_map g t0))))))).(\lambda (t1: T).(\lambda (H0: ((\forall (f: 
+((nat \to nat))).(\forall (g: ((nat \to nat))).(((\forall (n: nat).(le (f n) 
+(g n)))) \to (le (weight_map f t1) (weight_map g t1))))))).(\lambda (f: ((nat 
 \to nat))).(\lambda (g: ((nat \to nat))).(\lambda (H1: ((\forall (n: nat).(le 
-(f n) (g n))))).(let TMP_85 \def (weight_map f t0) in (let TMP_86 \def (wadd 
-f O) in (let TMP_87 \def (weight_map TMP_86 t1) in (let TMP_88 \def (plus 
-TMP_85 TMP_87) in (let TMP_89 \def (weight_map g t0) in (let TMP_90 \def 
-(wadd g O) in (let TMP_91 \def (weight_map TMP_90 t1) in (let TMP_92 \def 
-(plus TMP_89 TMP_91) in (let TMP_93 \def (weight_map f t0) in (let TMP_94 
-\def (weight_map g t0) in (let TMP_95 \def (wadd f O) in (let TMP_96 \def 
-(weight_map TMP_95 t1) in (let TMP_97 \def (wadd g O) in (let TMP_98 \def 
-(weight_map TMP_97 t1) in (let TMP_99 \def (H f g H1) in (let TMP_100 \def 
-(wadd f O) in (let TMP_101 \def (wadd g O) in (let TMP_103 \def (\lambda (n: 
-nat).(let TMP_102 \def (le_O_n O) in (wadd_le f g H1 O O TMP_102 n))) in (let 
-TMP_104 \def (H0 TMP_100 TMP_101 TMP_103) in (let TMP_105 \def (le_plus_plus 
-TMP_93 TMP_94 TMP_96 TMP_98 TMP_99 TMP_104) in (le_n_S TMP_88 TMP_92 
-TMP_105)))))))))))))))))))))))))))) in (let TMP_128 \def (\lambda (t0: 
-T).(\lambda (H: ((\forall (f: ((nat \to nat))).(\forall (g: ((nat \to 
-nat))).(((\forall (n: nat).(le (f n) (g n)))) \to (le (weight_map f t0) 
-(weight_map g t0))))))).(\lambda (t1: T).(\lambda (H0: ((\forall (f: ((nat 
+(f n) (g n))))).(le_n_S (plus (weight_map f t0) (weight_map (wadd f O) t1)) 
+(plus (weight_map g t0) (weight_map (wadd g O) t1)) (le_plus_plus (weight_map 
+f t0) (weight_map g t0) (weight_map (wadd f O) t1) (weight_map (wadd g O) t1) 
+(H f g H1) (H0 (wadd f O) (wadd g O) (\lambda (n: nat).(wadd_le f g H1 O O 
+(le_O_n O) n)))))))))))) (\lambda (t0: T).(\lambda (H: ((\forall (f: ((nat 
 \to nat))).(\forall (g: ((nat \to nat))).(((\forall (n: nat).(le (f n) (g 
-n)))) \to (le (weight_map f t1) (weight_map g t1))))))).(\lambda (f: ((nat 
-\to nat))).(\lambda (g: ((nat \to nat))).(\lambda (H1: ((\forall (n: nat).(le 
-(f n) (g n))))).(let TMP_107 \def (weight_map f t0) in (let TMP_108 \def 
-(wadd f O) in (let TMP_109 \def (weight_map TMP_108 t1) in (let TMP_110 \def 
-(plus TMP_107 TMP_109) in (let TMP_111 \def (weight_map g t0) in (let TMP_112 
-\def (wadd g O) in (let TMP_113 \def (weight_map TMP_112 t1) in (let TMP_114 
-\def (plus TMP_111 TMP_113) in (let TMP_115 \def (weight_map f t0) in (let 
-TMP_116 \def (weight_map g t0) in (let TMP_117 \def (wadd f O) in (let 
-TMP_118 \def (weight_map TMP_117 t1) in (let TMP_119 \def (wadd g O) in (let 
-TMP_120 \def (weight_map TMP_119 t1) in (let TMP_121 \def (H f g H1) in (let 
-TMP_122 \def (wadd f O) in (let TMP_123 \def (wadd g O) in (let TMP_125 \def 
-(\lambda (n: nat).(let TMP_124 \def (le_O_n O) in (wadd_le f g H1 O O TMP_124 
-n))) in (let TMP_126 \def (H0 TMP_122 TMP_123 TMP_125) in (let TMP_127 \def 
-(le_plus_plus TMP_115 TMP_116 TMP_118 TMP_120 TMP_121 TMP_126) in (le_n_S 
-TMP_110 TMP_114 TMP_127)))))))))))))))))))))))))))) in (B_ind TMP_43 TMP_84 
-TMP_106 TMP_128 b)))))) in (let TMP_143 \def (\lambda (_: F).(\lambda (t0: 
-T).(\lambda (H: ((\forall (f0: ((nat \to nat))).(\forall (g: ((nat \to 
-nat))).(((\forall (n: nat).(le (f0 n) (g n)))) \to (le (weight_map f0 t0) 
-(weight_map g t0))))))).(\lambda (t1: T).(\lambda (H0: ((\forall (f0: ((nat 
-\to nat))).(\forall (g: ((nat \to nat))).(((\forall (n: nat).(le (f0 n) (g 
-n)))) \to (le (weight_map f0 t1) (weight_map g t1))))))).(\lambda (f0: ((nat 
-\to nat))).(\lambda (g: ((nat \to nat))).(\lambda (H1: ((\forall (n: nat).(le 
-(f0 n) (g n))))).(let TMP_130 \def (weight_map f0 t0) in (let TMP_131 \def 
-(weight_map f0 t1) in (let TMP_132 \def (plus TMP_130 TMP_131) in (let 
-TMP_133 \def (weight_map g t0) in (let TMP_134 \def (weight_map g t1) in (let 
-TMP_135 \def (plus TMP_133 TMP_134) in (let TMP_136 \def (weight_map f0 t0) 
-in (let TMP_137 \def (weight_map g t0) in (let TMP_138 \def (weight_map f0 
-t1) in (let TMP_139 \def (weight_map g t1) in (let TMP_140 \def (H f0 g H1) 
-in (let TMP_141 \def (H0 f0 g H1) in (let TMP_142 \def (le_plus_plus TMP_136 
-TMP_137 TMP_138 TMP_139 TMP_140 TMP_141) in (le_n_S TMP_132 TMP_135 
-TMP_142)))))))))))))))))))))) in (K_ind TMP_12 TMP_129 TMP_143 k))))) in 
-(T_ind TMP_3 TMP_6 TMP_7 TMP_144 t))))).
+n)))) \to (le (weight_map f t0) (weight_map g t0))))))).(\lambda (t1: 
+T).(\lambda (H0: ((\forall (f: ((nat \to nat))).(\forall (g: ((nat \to 
+nat))).(((\forall (n: nat).(le (f n) (g n)))) \to (le (weight_map f t1) 
+(weight_map g t1))))))).(\lambda (f: ((nat \to nat))).(\lambda (g: ((nat \to 
+nat))).(\lambda (H1: ((\forall (n: nat).(le (f n) (g n))))).(le_n_S (plus 
+(weight_map f t0) (weight_map (wadd f O) t1)) (plus (weight_map g t0) 
+(weight_map (wadd g O) t1)) (le_plus_plus (weight_map f t0) (weight_map g t0) 
+(weight_map (wadd f O) t1) (weight_map (wadd g O) t1) (H f g H1) (H0 (wadd f 
+O) (wadd g O) (\lambda (n: nat).(wadd_le f g H1 O O (le_O_n O) n)))))))))))) 
+b)) (\lambda (_: F).(\lambda (t0: T).(\lambda (H: ((\forall (f0: ((nat \to 
+nat))).(\forall (g: ((nat \to nat))).(((\forall (n: nat).(le (f0 n) (g n)))) 
+\to (le (weight_map f0 t0) (weight_map g t0))))))).(\lambda (t1: T).(\lambda 
+(H0: ((\forall (f0: ((nat \to nat))).(\forall (g: ((nat \to nat))).(((\forall 
+(n: nat).(le (f0 n) (g n)))) \to (le (weight_map f0 t1) (weight_map g 
+t1))))))).(\lambda (f0: ((nat \to nat))).(\lambda (g: ((nat \to 
+nat))).(\lambda (H1: ((\forall (n: nat).(le (f0 n) (g n))))).(le_n_S (plus 
+(weight_map f0 t0) (weight_map f0 t1)) (plus (weight_map g t0) (weight_map g 
+t1)) (le_plus_plus (weight_map f0 t0) (weight_map g t0) (weight_map f0 t1) 
+(weight_map g t1) (H f0 g H1) (H0 f0 g H1))))))))))) k)) t).
 
 theorem weight_eq:
  \forall (t: T).(\forall (f: ((nat \to nat))).(\forall (g: ((nat \to 
@@ -196,222 +133,106 @@ nat))).(((\forall (n: nat).(eq nat (f n) (g n)))) \to (eq nat (weight_map f
 t) (weight_map g t)))))
 \def
  \lambda (t: T).(\lambda (f: ((nat \to nat))).(\lambda (g: ((nat \to 
-nat))).(\lambda (H: ((\forall (n: nat).(eq nat (f n) (g n))))).(let TMP_1 
-\def (weight_map f t) in (let TMP_2 \def (weight_map g t) in (let TMP_10 \def 
-(\lambda (n: nat).(let TMP_3 \def (g n) in (let TMP_5 \def (\lambda (n0: 
-nat).(let TMP_4 \def (g n) in (le n0 TMP_4))) in (let TMP_6 \def (g n) in 
-(let TMP_7 \def (le_n TMP_6) in (let TMP_8 \def (f n) in (let TMP_9 \def (H 
-n) in (eq_ind_r nat TMP_3 TMP_5 TMP_7 TMP_8 TMP_9)))))))) in (let TMP_11 \def 
-(weight_le t f g TMP_10) in (let TMP_19 \def (\lambda (n: nat).(let TMP_12 
-\def (g n) in (let TMP_14 \def (\lambda (n0: nat).(let TMP_13 \def (g n) in 
-(le TMP_13 n0))) in (let TMP_15 \def (g n) in (let TMP_16 \def (le_n TMP_15) 
-in (let TMP_17 \def (f n) in (let TMP_18 \def (H n) in (eq_ind_r nat TMP_12 
-TMP_14 TMP_16 TMP_17 TMP_18)))))))) in (let TMP_20 \def (weight_le t g f 
-TMP_19) in (le_antisym TMP_1 TMP_2 TMP_11 TMP_20)))))))))).
+nat))).(\lambda (H: ((\forall (n: nat).(eq nat (f n) (g n))))).(le_antisym 
+(weight_map f t) (weight_map g t) (weight_le t f g (\lambda (n: 
+nat).(eq_ind_r nat (g n) (\lambda (n0: nat).(le n0 (g n))) (le_n (g n)) (f n) 
+(H n)))) (weight_le t g f (\lambda (n: nat).(eq_ind_r nat (g n) (\lambda (n0: 
+nat).(le (g n) n0)) (le_n (g n)) (f n) (H n)))))))).
 
 theorem weight_add_O:
  \forall (t: T).(eq nat (weight_map (wadd (\lambda (_: nat).O) O) t) 
 (weight_map (\lambda (_: nat).O) t))
 \def
- \lambda (t: T).(let TMP_1 \def (\lambda (_: nat).O) in (let TMP_2 \def (wadd 
-TMP_1 O) in (let TMP_3 \def (\lambda (_: nat).O) in (let TMP_4 \def (\lambda 
-(n: nat).(wadd_O n)) in (weight_eq t TMP_2 TMP_3 TMP_4))))).
+ \lambda (t: T).(weight_eq t (wadd (\lambda (_: nat).O) O) (\lambda (_: 
+nat).O) (\lambda (n: nat).(wadd_O n))).
 
 theorem weight_add_S:
  \forall (t: T).(\forall (m: nat).(le (weight_map (wadd (\lambda (_: nat).O) 
 O) t) (weight_map (wadd (\lambda (_: nat).O) (S m)) t)))
 \def
- \lambda (t: T).(\lambda (m: nat).(let TMP_1 \def (\lambda (_: nat).O) in 
-(let TMP_2 \def (wadd TMP_1 O) in (let TMP_3 \def (\lambda (_: nat).O) in 
-(let TMP_4 \def (S m) in (let TMP_5 \def (wadd TMP_3 TMP_4) in (let TMP_12 
-\def (\lambda (n: nat).(let TMP_6 \def (\lambda (_: nat).O) in (let TMP_7 
-\def (\lambda (_: nat).O) in (let TMP_8 \def (\lambda (_: nat).(le_O_n O)) in 
-(let TMP_9 \def (S m) in (let TMP_10 \def (S m) in (let TMP_11 \def (le_O_n 
-TMP_10) in (wadd_le TMP_6 TMP_7 TMP_8 O TMP_9 TMP_11 n)))))))) in (weight_le 
-t TMP_2 TMP_5 TMP_12)))))))).
+ \lambda (t: T).(\lambda (m: nat).(weight_le t (wadd (\lambda (_: nat).O) O) 
+(wadd (\lambda (_: nat).O) (S m)) (\lambda (n: nat).(wadd_le (\lambda (_: 
+nat).O) (\lambda (_: nat).O) (\lambda (_: nat).(le_O_n O)) O (S m) (le_O_n (S 
+m)) n)))).
 
 theorem tlt_trans:
  \forall (v: T).(\forall (u: T).(\forall (t: T).((tlt u v) \to ((tlt v t) \to 
 (tlt u t)))))
 \def
  \lambda (v: T).(\lambda (u: T).(\lambda (t: T).(\lambda (H: (lt (weight u) 
-(weight v))).(\lambda (H0: (lt (weight v) (weight t))).(let TMP_1 \def 
-(weight u) in (let TMP_2 \def (weight v) in (let TMP_3 \def (weight t) in 
-(lt_trans TMP_1 TMP_2 TMP_3 H H0)))))))).
+(weight v))).(\lambda (H0: (lt (weight v) (weight t))).(lt_trans (weight u) 
+(weight v) (weight t) H H0))))).
 
 theorem tlt_head_sx:
  \forall (k: K).(\forall (u: T).(\forall (t: T).(tlt u (THead k u t))))
 \def
- \lambda (k: K).(let TMP_6 \def (\lambda (k0: K).(\forall (u: T).(\forall (t: 
-T).(let TMP_1 \def (\lambda (_: nat).O) in (let TMP_2 \def (weight_map TMP_1 
-u) in (let TMP_3 \def (\lambda (_: nat).O) in (let TMP_4 \def (THead k0 u t) 
-in (let TMP_5 \def (weight_map TMP_3 TMP_4) in (lt TMP_2 TMP_5))))))))) in 
-(let TMP_83 \def (\lambda (b: B).(let TMP_31 \def (\lambda (b0: B).(\forall 
-(u: T).(\forall (t: T).(let TMP_7 \def (\lambda (_: nat).O) in (let TMP_8 
-\def (weight_map TMP_7 u) in (let TMP_30 \def (match b0 with [Abbr 
-\Rightarrow (let TMP_21 \def (\lambda (_: nat).O) in (let TMP_22 \def 
-(weight_map TMP_21 u) in (let TMP_23 \def (\lambda (_: nat).O) in (let TMP_24 
-\def (\lambda (_: nat).O) in (let TMP_25 \def (weight_map TMP_24 u) in (let 
-TMP_26 \def (S TMP_25) in (let TMP_27 \def (wadd TMP_23 TMP_26) in (let 
-TMP_28 \def (weight_map TMP_27 t) in (let TMP_29 \def (plus TMP_22 TMP_28) in 
-(S TMP_29)))))))))) | Abst \Rightarrow (let TMP_15 \def (\lambda (_: nat).O) 
-in (let TMP_16 \def (weight_map TMP_15 u) in (let TMP_17 \def (\lambda (_: 
-nat).O) in (let TMP_18 \def (wadd TMP_17 O) in (let TMP_19 \def (weight_map 
-TMP_18 t) in (let TMP_20 \def (plus TMP_16 TMP_19) in (S TMP_20))))))) | Void 
-\Rightarrow (let TMP_9 \def (\lambda (_: nat).O) in (let TMP_10 \def 
-(weight_map TMP_9 u) in (let TMP_11 \def (\lambda (_: nat).O) in (let TMP_12 
-\def (wadd TMP_11 O) in (let TMP_13 \def (weight_map TMP_12 t) in (let TMP_14 
-\def (plus TMP_10 TMP_13) in (S TMP_14)))))))]) in (lt TMP_8 TMP_30))))))) in 
-(let TMP_52 \def (\lambda (u: T).(\lambda (t: T).(let TMP_32 \def (\lambda 
-(_: nat).O) in (let TMP_33 \def (weight_map TMP_32 u) in (let TMP_34 \def 
-(\lambda (_: nat).O) in (let TMP_35 \def (weight_map TMP_34 u) in (let TMP_36 
-\def (\lambda (_: nat).O) in (let TMP_37 \def (\lambda (_: nat).O) in (let 
-TMP_38 \def (weight_map TMP_37 u) in (let TMP_39 \def (S TMP_38) in (let 
-TMP_40 \def (wadd TMP_36 TMP_39) in (let TMP_41 \def (weight_map TMP_40 t) in 
-(let TMP_42 \def (plus TMP_35 TMP_41) in (let TMP_43 \def (\lambda (_: 
-nat).O) in (let TMP_44 \def (weight_map TMP_43 u) in (let TMP_45 \def 
-(\lambda (_: nat).O) in (let TMP_46 \def (\lambda (_: nat).O) in (let TMP_47 
-\def (weight_map TMP_46 u) in (let TMP_48 \def (S TMP_47) in (let TMP_49 \def 
-(wadd TMP_45 TMP_48) in (let TMP_50 \def (weight_map TMP_49 t) in (let TMP_51 
-\def (le_plus_l TMP_44 TMP_50) in (le_n_S TMP_33 TMP_42 
-TMP_51))))))))))))))))))))))) in (let TMP_67 \def (\lambda (u: T).(\lambda 
-(t: T).(let TMP_53 \def (\lambda (_: nat).O) in (let TMP_54 \def (weight_map 
-TMP_53 u) in (let TMP_55 \def (\lambda (_: nat).O) in (let TMP_56 \def 
-(weight_map TMP_55 u) in (let TMP_57 \def (\lambda (_: nat).O) in (let TMP_58 
-\def (wadd TMP_57 O) in (let TMP_59 \def (weight_map TMP_58 t) in (let TMP_60 
-\def (plus TMP_56 TMP_59) in (let TMP_61 \def (\lambda (_: nat).O) in (let 
-TMP_62 \def (weight_map TMP_61 u) in (let TMP_63 \def (\lambda (_: nat).O) in 
-(let TMP_64 \def (wadd TMP_63 O) in (let TMP_65 \def (weight_map TMP_64 t) in 
-(let TMP_66 \def (le_plus_l TMP_62 TMP_65) in (le_n_S TMP_54 TMP_60 
-TMP_66))))))))))))))))) in (let TMP_82 \def (\lambda (u: T).(\lambda (t: 
-T).(let TMP_68 \def (\lambda (_: nat).O) in (let TMP_69 \def (weight_map 
-TMP_68 u) in (let TMP_70 \def (\lambda (_: nat).O) in (let TMP_71 \def 
-(weight_map TMP_70 u) in (let TMP_72 \def (\lambda (_: nat).O) in (let TMP_73 
-\def (wadd TMP_72 O) in (let TMP_74 \def (weight_map TMP_73 t) in (let TMP_75 
-\def (plus TMP_71 TMP_74) in (let TMP_76 \def (\lambda (_: nat).O) in (let 
-TMP_77 \def (weight_map TMP_76 u) in (let TMP_78 \def (\lambda (_: nat).O) in 
-(let TMP_79 \def (wadd TMP_78 O) in (let TMP_80 \def (weight_map TMP_79 t) in 
-(let TMP_81 \def (le_plus_l TMP_77 TMP_80) in (le_n_S TMP_69 TMP_75 
-TMP_81))))))))))))))))) in (B_ind TMP_31 TMP_52 TMP_67 TMP_82 b)))))) in (let 
-TMP_96 \def (\lambda (_: F).(\lambda (u: T).(\lambda (t: T).(let TMP_84 \def 
-(\lambda (_: nat).O) in (let TMP_85 \def (weight_map TMP_84 u) in (let TMP_86 
-\def (\lambda (_: nat).O) in (let TMP_87 \def (weight_map TMP_86 u) in (let 
-TMP_88 \def (\lambda (_: nat).O) in (let TMP_89 \def (weight_map TMP_88 t) in 
-(let TMP_90 \def (plus TMP_87 TMP_89) in (let TMP_91 \def (\lambda (_: 
-nat).O) in (let TMP_92 \def (weight_map TMP_91 u) in (let TMP_93 \def 
-(\lambda (_: nat).O) in (let TMP_94 \def (weight_map TMP_93 t) in (let TMP_95 
-\def (le_plus_l TMP_92 TMP_94) in (le_n_S TMP_85 TMP_90 
-TMP_95)))))))))))))))) in (K_ind TMP_6 TMP_83 TMP_96 k)))).
+ \lambda (k: K).(K_ind (\lambda (k0: K).(\forall (u: T).(\forall (t: T).(lt 
+(weight_map (\lambda (_: nat).O) u) (weight_map (\lambda (_: nat).O) (THead 
+k0 u t)))))) (\lambda (b: B).(B_ind (\lambda (b0: B).(\forall (u: T).(\forall 
+(t: T).(lt (weight_map (\lambda (_: nat).O) u) (match b0 with [Abbr 
+\Rightarrow (S (plus (weight_map (\lambda (_: nat).O) u) (weight_map (wadd 
+(\lambda (_: nat).O) (S (weight_map (\lambda (_: nat).O) u))) t))) | Abst 
+\Rightarrow (S (plus (weight_map (\lambda (_: nat).O) u) (weight_map (wadd 
+(\lambda (_: nat).O) O) t))) | Void \Rightarrow (S (plus (weight_map (\lambda 
+(_: nat).O) u) (weight_map (wadd (\lambda (_: nat).O) O) t)))]))))) (\lambda 
+(u: T).(\lambda (t: T).(le_n_S (weight_map (\lambda (_: nat).O) u) (plus 
+(weight_map (\lambda (_: nat).O) u) (weight_map (wadd (\lambda (_: nat).O) (S 
+(weight_map (\lambda (_: nat).O) u))) t)) (le_plus_l (weight_map (\lambda (_: 
+nat).O) u) (weight_map (wadd (\lambda (_: nat).O) (S (weight_map (\lambda (_: 
+nat).O) u))) t))))) (\lambda (u: T).(\lambda (t: T).(le_n_S (weight_map 
+(\lambda (_: nat).O) u) (plus (weight_map (\lambda (_: nat).O) u) (weight_map 
+(wadd (\lambda (_: nat).O) O) t)) (le_plus_l (weight_map (\lambda (_: nat).O) 
+u) (weight_map (wadd (\lambda (_: nat).O) O) t))))) (\lambda (u: T).(\lambda 
+(t: T).(le_n_S (weight_map (\lambda (_: nat).O) u) (plus (weight_map (\lambda 
+(_: nat).O) u) (weight_map (wadd (\lambda (_: nat).O) O) t)) (le_plus_l 
+(weight_map (\lambda (_: nat).O) u) (weight_map (wadd (\lambda (_: nat).O) O) 
+t))))) b)) (\lambda (_: F).(\lambda (u: T).(\lambda (t: T).(le_n_S 
+(weight_map (\lambda (_: nat).O) u) (plus (weight_map (\lambda (_: nat).O) u) 
+(weight_map (\lambda (_: nat).O) t)) (le_plus_l (weight_map (\lambda (_: 
+nat).O) u) (weight_map (\lambda (_: nat).O) t)))))) k).
 
 theorem tlt_head_dx:
  \forall (k: K).(\forall (u: T).(\forall (t: T).(tlt t (THead k u t))))
 \def
- \lambda (k: K).(let TMP_6 \def (\lambda (k0: K).(\forall (u: T).(\forall (t: 
-T).(let TMP_1 \def (\lambda (_: nat).O) in (let TMP_2 \def (weight_map TMP_1 
-t) in (let TMP_3 \def (\lambda (_: nat).O) in (let TMP_4 \def (THead k0 u t) 
-in (let TMP_5 \def (weight_map TMP_3 TMP_4) in (lt TMP_2 TMP_5))))))))) in 
-(let TMP_161 \def (\lambda (b: B).(let TMP_31 \def (\lambda (b0: B).(\forall 
-(u: T).(\forall (t: T).(let TMP_7 \def (\lambda (_: nat).O) in (let TMP_8 
-\def (weight_map TMP_7 t) in (let TMP_30 \def (match b0 with [Abbr 
-\Rightarrow (let TMP_21 \def (\lambda (_: nat).O) in (let TMP_22 \def 
-(weight_map TMP_21 u) in (let TMP_23 \def (\lambda (_: nat).O) in (let TMP_24 
-\def (\lambda (_: nat).O) in (let TMP_25 \def (weight_map TMP_24 u) in (let 
-TMP_26 \def (S TMP_25) in (let TMP_27 \def (wadd TMP_23 TMP_26) in (let 
-TMP_28 \def (weight_map TMP_27 t) in (let TMP_29 \def (plus TMP_22 TMP_28) in 
-(S TMP_29)))))))))) | Abst \Rightarrow (let TMP_15 \def (\lambda (_: nat).O) 
-in (let TMP_16 \def (weight_map TMP_15 u) in (let TMP_17 \def (\lambda (_: 
-nat).O) in (let TMP_18 \def (wadd TMP_17 O) in (let TMP_19 \def (weight_map 
-TMP_18 t) in (let TMP_20 \def (plus TMP_16 TMP_19) in (S TMP_20))))))) | Void 
-\Rightarrow (let TMP_9 \def (\lambda (_: nat).O) in (let TMP_10 \def 
-(weight_map TMP_9 u) in (let TMP_11 \def (\lambda (_: nat).O) in (let TMP_12 
-\def (wadd TMP_11 O) in (let TMP_13 \def (weight_map TMP_12 t) in (let TMP_14 
-\def (plus TMP_10 TMP_13) in (S TMP_14)))))))]) in (lt TMP_8 TMP_30))))))) in 
-(let TMP_106 \def (\lambda (u: T).(\lambda (t: T).(let TMP_32 \def (\lambda 
-(_: nat).O) in (let TMP_33 \def (weight_map TMP_32 t) in (let TMP_34 \def 
-(\lambda (_: nat).O) in (let TMP_35 \def (weight_map TMP_34 t) in (let TMP_36 
-\def (S TMP_35) in (let TMP_37 \def (\lambda (_: nat).O) in (let TMP_38 \def 
-(weight_map TMP_37 u) in (let TMP_39 \def (\lambda (_: nat).O) in (let TMP_40 
-\def (\lambda (_: nat).O) in (let TMP_41 \def (weight_map TMP_40 u) in (let 
-TMP_42 \def (S TMP_41) in (let TMP_43 \def (wadd TMP_39 TMP_42) in (let 
-TMP_44 \def (weight_map TMP_43 t) in (let TMP_45 \def (plus TMP_38 TMP_44) in 
-(let TMP_46 \def (S TMP_45) in (let TMP_47 \def (\lambda (_: nat).O) in (let 
-TMP_48 \def (weight_map TMP_47 t) in (let TMP_49 \def (lt_n_Sn TMP_48) in 
-(let TMP_50 \def (\lambda (_: nat).O) in (let TMP_51 \def (weight_map TMP_50 
-t) in (let TMP_52 \def (\lambda (_: nat).O) in (let TMP_53 \def (weight_map 
-TMP_52 u) in (let TMP_54 \def (\lambda (_: nat).O) in (let TMP_55 \def 
-(\lambda (_: nat).O) in (let TMP_56 \def (weight_map TMP_55 u) in (let TMP_57 
-\def (S TMP_56) in (let TMP_58 \def (wadd TMP_54 TMP_57) in (let TMP_59 \def 
-(weight_map TMP_58 t) in (let TMP_60 \def (plus TMP_53 TMP_59) in (let TMP_61 
-\def (\lambda (_: nat).O) in (let TMP_62 \def (weight_map TMP_61 t) in (let 
-TMP_63 \def (\lambda (_: nat).O) in (let TMP_64 \def (\lambda (_: nat).O) in 
-(let TMP_65 \def (weight_map TMP_64 u) in (let TMP_66 \def (S TMP_65) in (let 
-TMP_67 \def (wadd TMP_63 TMP_66) in (let TMP_68 \def (weight_map TMP_67 t) in 
-(let TMP_69 \def (\lambda (_: nat).O) in (let TMP_70 \def (weight_map TMP_69 
-u) in (let TMP_71 \def (\lambda (_: nat).O) in (let TMP_72 \def (\lambda (_: 
-nat).O) in (let TMP_73 \def (weight_map TMP_72 u) in (let TMP_74 \def (S 
-TMP_73) in (let TMP_75 \def (wadd TMP_71 TMP_74) in (let TMP_76 \def 
-(weight_map TMP_75 t) in (let TMP_77 \def (plus TMP_70 TMP_76) in (let TMP_78 
-\def (\lambda (_: nat).O) in (let TMP_79 \def (wadd TMP_78 O) in (let TMP_80 
-\def (weight_map TMP_79 t) in (let TMP_87 \def (\lambda (n: nat).(let TMP_81 
-\def (\lambda (_: nat).O) in (let TMP_82 \def (\lambda (_: nat).O) in (let 
-TMP_83 \def (weight_map TMP_82 u) in (let TMP_84 \def (S TMP_83) in (let 
-TMP_85 \def (wadd TMP_81 TMP_84) in (let TMP_86 \def (weight_map TMP_85 t) in 
-(le n TMP_86)))))))) in (let TMP_88 \def (\lambda (_: nat).O) in (let TMP_89 
-\def (weight_map TMP_88 u) in (let TMP_90 \def (weight_add_S t TMP_89) in 
-(let TMP_91 \def (\lambda (_: nat).O) in (let TMP_92 \def (weight_map TMP_91 
-t) in (let TMP_93 \def (weight_add_O t) in (let TMP_94 \def (eq_ind nat 
-TMP_80 TMP_87 TMP_90 TMP_92 TMP_93) in (let TMP_95 \def (\lambda (_: nat).O) 
-in (let TMP_96 \def (weight_map TMP_95 u) in (let TMP_97 \def (\lambda (_: 
-nat).O) in (let TMP_98 \def (\lambda (_: nat).O) in (let TMP_99 \def 
-(weight_map TMP_98 u) in (let TMP_100 \def (S TMP_99) in (let TMP_101 \def 
-(wadd TMP_97 TMP_100) in (let TMP_102 \def (weight_map TMP_101 t) in (let 
-TMP_103 \def (le_plus_r TMP_96 TMP_102) in (let TMP_104 \def (le_trans TMP_62 
-TMP_68 TMP_77 TMP_94 TMP_103) in (let TMP_105 \def (le_n_S TMP_51 TMP_60 
-TMP_104) in (lt_le_trans TMP_33 TMP_36 TMP_46 TMP_49 
-TMP_105)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
- in (let TMP_133 \def (\lambda (u: T).(\lambda (t: T).(let TMP_107 \def 
-(\lambda (_: nat).O) in (let TMP_108 \def (weight_map TMP_107 t) in (let 
-TMP_115 \def (\lambda (n: nat).(let TMP_109 \def (\lambda (_: nat).O) in (let 
-TMP_110 \def (weight_map TMP_109 t) in (let TMP_111 \def (\lambda (_: nat).O) 
-in (let TMP_112 \def (weight_map TMP_111 u) in (let TMP_113 \def (plus 
-TMP_112 n) in (let TMP_114 \def (S TMP_113) in (lt TMP_110 TMP_114)))))))) in 
-(let TMP_116 \def (\lambda (_: nat).O) in (let TMP_117 \def (weight_map 
-TMP_116 t) in (let TMP_118 \def (\lambda (_: nat).O) in (let TMP_119 \def 
-(weight_map TMP_118 u) in (let TMP_120 \def (\lambda (_: nat).O) in (let 
-TMP_121 \def (weight_map TMP_120 t) in (let TMP_122 \def (plus TMP_119 
-TMP_121) in (let TMP_123 \def (\lambda (_: nat).O) in (let TMP_124 \def 
-(weight_map TMP_123 u) in (let TMP_125 \def (\lambda (_: nat).O) in (let 
-TMP_126 \def (weight_map TMP_125 t) in (let TMP_127 \def (le_plus_r TMP_124 
-TMP_126) in (let TMP_128 \def (le_n_S TMP_117 TMP_122 TMP_127) in (let 
-TMP_129 \def (\lambda (_: nat).O) in (let TMP_130 \def (wadd TMP_129 O) in 
-(let TMP_131 \def (weight_map TMP_130 t) in (let TMP_132 \def (weight_add_O 
-t) in (eq_ind_r nat TMP_108 TMP_115 TMP_128 TMP_131 
-TMP_132))))))))))))))))))))))) in (let TMP_160 \def (\lambda (u: T).(\lambda 
-(t: T).(let TMP_134 \def (\lambda (_: nat).O) in (let TMP_135 \def 
-(weight_map TMP_134 t) in (let TMP_142 \def (\lambda (n: nat).(let TMP_136 
-\def (\lambda (_: nat).O) in (let TMP_137 \def (weight_map TMP_136 t) in (let 
-TMP_138 \def (\lambda (_: nat).O) in (let TMP_139 \def (weight_map TMP_138 u) 
-in (let TMP_140 \def (plus TMP_139 n) in (let TMP_141 \def (S TMP_140) in (lt 
-TMP_137 TMP_141)))))))) in (let TMP_143 \def (\lambda (_: nat).O) in (let 
-TMP_144 \def (weight_map TMP_143 t) in (let TMP_145 \def (\lambda (_: nat).O) 
-in (let TMP_146 \def (weight_map TMP_145 u) in (let TMP_147 \def (\lambda (_: 
-nat).O) in (let TMP_148 \def (weight_map TMP_147 t) in (let TMP_149 \def 
-(plus TMP_146 TMP_148) in (let TMP_150 \def (\lambda (_: nat).O) in (let 
-TMP_151 \def (weight_map TMP_150 u) in (let TMP_152 \def (\lambda (_: nat).O) 
-in (let TMP_153 \def (weight_map TMP_152 t) in (let TMP_154 \def (le_plus_r 
-TMP_151 TMP_153) in (let TMP_155 \def (le_n_S TMP_144 TMP_149 TMP_154) in 
-(let TMP_156 \def (\lambda (_: nat).O) in (let TMP_157 \def (wadd TMP_156 O) 
-in (let TMP_158 \def (weight_map TMP_157 t) in (let TMP_159 \def 
-(weight_add_O t) in (eq_ind_r nat TMP_135 TMP_142 TMP_155 TMP_158 
-TMP_159))))))))))))))))))))))) in (B_ind TMP_31 TMP_106 TMP_133 TMP_160 
-b)))))) in (let TMP_174 \def (\lambda (_: F).(\lambda (u: T).(\lambda (t: 
-T).(let TMP_162 \def (\lambda (_: nat).O) in (let TMP_163 \def (weight_map 
-TMP_162 t) in (let TMP_164 \def (\lambda (_: nat).O) in (let TMP_165 \def 
-(weight_map TMP_164 u) in (let TMP_166 \def (\lambda (_: nat).O) in (let 
-TMP_167 \def (weight_map TMP_166 t) in (let TMP_168 \def (plus TMP_165 
-TMP_167) in (let TMP_169 \def (\lambda (_: nat).O) in (let TMP_170 \def 
-(weight_map TMP_169 u) in (let TMP_171 \def (\lambda (_: nat).O) in (let 
-TMP_172 \def (weight_map TMP_171 t) in (let TMP_173 \def (le_plus_r TMP_170 
-TMP_172) in (le_n_S TMP_163 TMP_168 TMP_173)))))))))))))))) in (K_ind TMP_6 
-TMP_161 TMP_174 k)))).
+ \lambda (k: K).(K_ind (\lambda (k0: K).(\forall (u: T).(\forall (t: T).(lt 
+(weight_map (\lambda (_: nat).O) t) (weight_map (\lambda (_: nat).O) (THead 
+k0 u t)))))) (\lambda (b: B).(B_ind (\lambda (b0: B).(\forall (u: T).(\forall 
+(t: T).(lt (weight_map (\lambda (_: nat).O) t) (match b0 with [Abbr 
+\Rightarrow (S (plus (weight_map (\lambda (_: nat).O) u) (weight_map (wadd 
+(\lambda (_: nat).O) (S (weight_map (\lambda (_: nat).O) u))) t))) | Abst 
+\Rightarrow (S (plus (weight_map (\lambda (_: nat).O) u) (weight_map (wadd 
+(\lambda (_: nat).O) O) t))) | Void \Rightarrow (S (plus (weight_map (\lambda 
+(_: nat).O) u) (weight_map (wadd (\lambda (_: nat).O) O) t)))]))))) (\lambda 
+(u: T).(\lambda (t: T).(lt_le_trans (weight_map (\lambda (_: nat).O) t) (S 
+(weight_map (\lambda (_: nat).O) t)) (S (plus (weight_map (\lambda (_: 
+nat).O) u) (weight_map (wadd (\lambda (_: nat).O) (S (weight_map (\lambda (_: 
+nat).O) u))) t))) (lt_n_Sn (weight_map (\lambda (_: nat).O) t)) (le_n_S 
+(weight_map (\lambda (_: nat).O) t) (plus (weight_map (\lambda (_: nat).O) u) 
+(weight_map (wadd (\lambda (_: nat).O) (S (weight_map (\lambda (_: nat).O) 
+u))) t)) (le_trans (weight_map (\lambda (_: nat).O) t) (weight_map (wadd 
+(\lambda (_: nat).O) (S (weight_map (\lambda (_: nat).O) u))) t) (plus 
+(weight_map (\lambda (_: nat).O) u) (weight_map (wadd (\lambda (_: nat).O) (S 
+(weight_map (\lambda (_: nat).O) u))) t)) (eq_ind nat (weight_map (wadd 
+(\lambda (_: nat).O) O) t) (\lambda (n: nat).(le n (weight_map (wadd (\lambda 
+(_: nat).O) (S (weight_map (\lambda (_: nat).O) u))) t))) (weight_add_S t 
+(weight_map (\lambda (_: nat).O) u)) (weight_map (\lambda (_: nat).O) t) 
+(weight_add_O t)) (le_plus_r (weight_map (\lambda (_: nat).O) u) (weight_map 
+(wadd (\lambda (_: nat).O) (S (weight_map (\lambda (_: nat).O) u))) t))))))) 
+(\lambda (u: T).(\lambda (t: T).(eq_ind_r nat (weight_map (\lambda (_: 
+nat).O) t) (\lambda (n: nat).(lt (weight_map (\lambda (_: nat).O) t) (S (plus 
+(weight_map (\lambda (_: nat).O) u) n)))) (le_n_S (weight_map (\lambda (_: 
+nat).O) t) (plus (weight_map (\lambda (_: nat).O) u) (weight_map (\lambda (_: 
+nat).O) t)) (le_plus_r (weight_map (\lambda (_: nat).O) u) (weight_map 
+(\lambda (_: nat).O) t))) (weight_map (wadd (\lambda (_: nat).O) O) t) 
+(weight_add_O t)))) (\lambda (u: T).(\lambda (t: T).(eq_ind_r nat (weight_map 
+(\lambda (_: nat).O) t) (\lambda (n: nat).(lt (weight_map (\lambda (_: 
+nat).O) t) (S (plus (weight_map (\lambda (_: nat).O) u) n)))) (le_n_S 
+(weight_map (\lambda (_: nat).O) t) (plus (weight_map (\lambda (_: nat).O) u) 
+(weight_map (\lambda (_: nat).O) t)) (le_plus_r (weight_map (\lambda (_: 
+nat).O) u) (weight_map (\lambda (_: nat).O) t))) (weight_map (wadd (\lambda 
+(_: nat).O) O) t) (weight_add_O t)))) b)) (\lambda (_: F).(\lambda (u: 
+T).(\lambda (t: T).(le_n_S (weight_map (\lambda (_: nat).O) t) (plus 
+(weight_map (\lambda (_: nat).O) u) (weight_map (\lambda (_: nat).O) t)) 
+(le_plus_r (weight_map (\lambda (_: nat).O) u) (weight_map (\lambda (_: 
+nat).O) t)))))) k).
 
index 374743cc3650e7196284405c87b262240233f6d2..c90321ff4849101a9cf283d2897400bab7ecea73 100644 (file)
@@ -26,292 +26,157 @@ t1 t2) \to (ex2 A (\lambda (a1: A).(arity g c t1 a1)) (\lambda (a1: A).(arity
 g c t2 (asucc g a1))))))))
 \def
  \lambda (g: G).(\lambda (c: C).(\lambda (t1: T).(\lambda (t2: T).(\lambda 
-(H: (ty3 g c t1 t2)).(let TMP_4 \def (\lambda (c0: C).(\lambda (t: 
-T).(\lambda (t0: T).(let TMP_1 \def (\lambda (a1: A).(arity g c0 t a1)) in 
-(let TMP_3 \def (\lambda (a1: A).(let TMP_2 \def (asucc g a1) in (arity g c0 
-t0 TMP_2))) in (ex2 A TMP_1 TMP_3)))))) in (let TMP_40 \def (\lambda (c0: 
-C).(\lambda (t3: T).(\lambda (t: T).(\lambda (_: (ty3 g c0 t3 t)).(\lambda 
-(H1: (ex2 A (\lambda (a1: A).(arity g c0 t3 a1)) (\lambda (a1: A).(arity g c0 
-t (asucc g a1))))).(\lambda (u: T).(\lambda (t4: T).(\lambda (_: (ty3 g c0 u 
-t4)).(\lambda (H3: (ex2 A (\lambda (a1: A).(arity g c0 u a1)) (\lambda (a1: 
-A).(arity g c0 t4 (asucc g a1))))).(\lambda (H4: (pc3 c0 t4 t3)).(let H5 \def 
-H1 in (let TMP_5 \def (\lambda (a1: A).(arity g c0 t3 a1)) in (let TMP_7 \def 
-(\lambda (a1: A).(let TMP_6 \def (asucc g a1) in (arity g c0 t TMP_6))) in 
-(let TMP_8 \def (\lambda (a1: A).(arity g c0 u a1)) in (let TMP_10 \def 
-(\lambda (a1: A).(let TMP_9 \def (asucc g a1) in (arity g c0 t3 TMP_9))) in 
-(let TMP_11 \def (ex2 A TMP_8 TMP_10) in (let TMP_39 \def (\lambda (x: 
-A).(\lambda (H6: (arity g c0 t3 x)).(\lambda (_: (arity g c0 t (asucc g 
-x))).(let H8 \def H3 in (let TMP_12 \def (\lambda (a1: A).(arity g c0 u a1)) 
-in (let TMP_14 \def (\lambda (a1: A).(let TMP_13 \def (asucc g a1) in (arity 
-g c0 t4 TMP_13))) in (let TMP_15 \def (\lambda (a1: A).(arity g c0 u a1)) in 
-(let TMP_17 \def (\lambda (a1: A).(let TMP_16 \def (asucc g a1) in (arity g 
-c0 t3 TMP_16))) in (let TMP_18 \def (ex2 A TMP_15 TMP_17) in (let TMP_38 \def 
-(\lambda (x0: A).(\lambda (H9: (arity g c0 u x0)).(\lambda (H10: (arity g c0 
-t4 (asucc g x0))).(let H11 \def H4 in (let TMP_19 \def (\lambda (t0: T).(pr3 
-c0 t4 t0)) in (let TMP_20 \def (\lambda (t0: T).(pr3 c0 t3 t0)) in (let 
-TMP_21 \def (\lambda (a1: A).(arity g c0 u a1)) in (let TMP_23 \def (\lambda 
-(a1: A).(let TMP_22 \def (asucc g a1) in (arity g c0 t3 TMP_22))) in (let 
-TMP_24 \def (ex2 A TMP_21 TMP_23) in (let TMP_37 \def (\lambda (x1: 
-T).(\lambda (H12: (pr3 c0 t4 x1)).(\lambda (H13: (pr3 c0 t3 x1)).(let TMP_25 
-\def (\lambda (a1: A).(arity g c0 u a1)) in (let TMP_27 \def (\lambda (a1: 
-A).(let TMP_26 \def (asucc g a1) in (arity g c0 t3 TMP_26))) in (let TMP_28 
-\def (asucc g x0) in (let TMP_29 \def (asucc g x0) in (let TMP_30 \def (asucc 
-g x0) in (let TMP_31 \def (asucc g x0) in (let TMP_32 \def (arity_sred_pr3 c0 
-t4 x1 H12 g TMP_31 H10) in (let TMP_33 \def (arity_sred_pr3 c0 t3 x1 H13 g x 
-H6) in (let TMP_34 \def (arity_mono g c0 x1 TMP_30 TMP_32 x TMP_33) in (let 
-TMP_35 \def (leq_sym g TMP_29 x TMP_34) in (let TMP_36 \def (arity_repl g c0 
-t3 x H6 TMP_28 TMP_35) in (ex_intro2 A TMP_25 TMP_27 x0 H9 
-TMP_36))))))))))))))) in (ex2_ind T TMP_19 TMP_20 TMP_24 TMP_37 
-H11))))))))))) in (ex2_ind A TMP_12 TMP_14 TMP_18 TMP_38 H8))))))))))) in 
-(ex2_ind A TMP_5 TMP_7 TMP_11 TMP_39 H5)))))))))))))))))) in (let TMP_51 \def 
-(\lambda (c0: C).(\lambda (m: nat).(let TMP_42 \def (\lambda (a1: A).(let 
-TMP_41 \def (TSort m) in (arity g c0 TMP_41 a1))) in (let TMP_46 \def 
-(\lambda (a1: A).(let TMP_43 \def (next g m) in (let TMP_44 \def (TSort 
-TMP_43) in (let TMP_45 \def (asucc g a1) in (arity g c0 TMP_44 TMP_45))))) in 
-(let TMP_47 \def (ASort O m) in (let TMP_48 \def (arity_sort g c0 m) in (let 
-TMP_49 \def (next g m) in (let TMP_50 \def (arity_sort g c0 TMP_49) in 
-(ex_intro2 A TMP_42 TMP_46 TMP_47 TMP_48 TMP_50))))))))) in (let TMP_74 \def 
-(\lambda (n: nat).(\lambda (c0: C).(\lambda (d: C).(\lambda (u: T).(\lambda 
-(H0: (getl n c0 (CHead d (Bind Abbr) u))).(\lambda (t: T).(\lambda (_: (ty3 g 
-d u t)).(\lambda (H2: (ex2 A (\lambda (a1: A).(arity g d u a1)) (\lambda (a1: 
-A).(arity g d t (asucc g a1))))).(let H3 \def H2 in (let TMP_52 \def (\lambda 
-(a1: A).(arity g d u a1)) in (let TMP_54 \def (\lambda (a1: A).(let TMP_53 
-\def (asucc g a1) in (arity g d t TMP_53))) in (let TMP_56 \def (\lambda (a1: 
-A).(let TMP_55 \def (TLRef n) in (arity g c0 TMP_55 a1))) in (let TMP_60 \def 
-(\lambda (a1: A).(let TMP_57 \def (S n) in (let TMP_58 \def (lift TMP_57 O t) 
-in (let TMP_59 \def (asucc g a1) in (arity g c0 TMP_58 TMP_59))))) in (let 
-TMP_61 \def (ex2 A TMP_56 TMP_60) in (let TMP_73 \def (\lambda (x: 
-A).(\lambda (H4: (arity g d u x)).(\lambda (H5: (arity g d t (asucc g 
-x))).(let TMP_63 \def (\lambda (a1: A).(let TMP_62 \def (TLRef n) in (arity g 
-c0 TMP_62 a1))) in (let TMP_67 \def (\lambda (a1: A).(let TMP_64 \def (S n) 
-in (let TMP_65 \def (lift TMP_64 O t) in (let TMP_66 \def (asucc g a1) in 
-(arity g c0 TMP_65 TMP_66))))) in (let TMP_68 \def (arity_abbr g c0 d u n H0 
-x H4) in (let TMP_69 \def (asucc g x) in (let TMP_70 \def (S n) in (let 
-TMP_71 \def (getl_drop Abbr c0 d u n H0) in (let TMP_72 \def (arity_lift g d 
-t TMP_69 H5 c0 TMP_70 O TMP_71) in (ex_intro2 A TMP_63 TMP_67 x TMP_68 
-TMP_72))))))))))) in (ex2_ind A TMP_52 TMP_54 TMP_61 TMP_73 
-H3)))))))))))))))) in (let TMP_112 \def (\lambda (n: nat).(\lambda (c0: 
-C).(\lambda (d: C).(\lambda (u: T).(\lambda (H0: (getl n c0 (CHead d (Bind 
-Abst) u))).(\lambda (t: T).(\lambda (_: (ty3 g d u t)).(\lambda (H2: (ex2 A 
+(H: (ty3 g c t1 t2)).(ty3_ind g (\lambda (c0: C).(\lambda (t: T).(\lambda 
+(t0: T).(ex2 A (\lambda (a1: A).(arity g c0 t a1)) (\lambda (a1: A).(arity g 
+c0 t0 (asucc g a1))))))) (\lambda (c0: C).(\lambda (t3: T).(\lambda (t: 
+T).(\lambda (_: (ty3 g c0 t3 t)).(\lambda (H1: (ex2 A (\lambda (a1: A).(arity 
+g c0 t3 a1)) (\lambda (a1: A).(arity g c0 t (asucc g a1))))).(\lambda (u: 
+T).(\lambda (t4: T).(\lambda (_: (ty3 g c0 u t4)).(\lambda (H3: (ex2 A 
+(\lambda (a1: A).(arity g c0 u a1)) (\lambda (a1: A).(arity g c0 t4 (asucc g 
+a1))))).(\lambda (H4: (pc3 c0 t4 t3)).(let H5 \def H1 in (ex2_ind A (\lambda 
+(a1: A).(arity g c0 t3 a1)) (\lambda (a1: A).(arity g c0 t (asucc g a1))) 
+(ex2 A (\lambda (a1: A).(arity g c0 u a1)) (\lambda (a1: A).(arity g c0 t3 
+(asucc g a1)))) (\lambda (x: A).(\lambda (H6: (arity g c0 t3 x)).(\lambda (_: 
+(arity g c0 t (asucc g x))).(let H8 \def H3 in (ex2_ind A (\lambda (a1: 
+A).(arity g c0 u a1)) (\lambda (a1: A).(arity g c0 t4 (asucc g a1))) (ex2 A 
+(\lambda (a1: A).(arity g c0 u a1)) (\lambda (a1: A).(arity g c0 t3 (asucc g 
+a1)))) (\lambda (x0: A).(\lambda (H9: (arity g c0 u x0)).(\lambda (H10: 
+(arity g c0 t4 (asucc g x0))).(let H11 \def H4 in (ex2_ind T (\lambda (t0: 
+T).(pr3 c0 t4 t0)) (\lambda (t0: T).(pr3 c0 t3 t0)) (ex2 A (\lambda (a1: 
+A).(arity g c0 u a1)) (\lambda (a1: A).(arity g c0 t3 (asucc g a1)))) 
+(\lambda (x1: T).(\lambda (H12: (pr3 c0 t4 x1)).(\lambda (H13: (pr3 c0 t3 
+x1)).(ex_intro2 A (\lambda (a1: A).(arity g c0 u a1)) (\lambda (a1: A).(arity 
+g c0 t3 (asucc g a1))) x0 H9 (arity_repl g c0 t3 x H6 (asucc g x0) (leq_sym g 
+(asucc g x0) x (arity_mono g c0 x1 (asucc g x0) (arity_sred_pr3 c0 t4 x1 H12 
+g (asucc g x0) H10) x (arity_sred_pr3 c0 t3 x1 H13 g x H6)))))))) H11))))) 
+H8))))) H5)))))))))))) (\lambda (c0: C).(\lambda (m: nat).(ex_intro2 A 
+(\lambda (a1: A).(arity g c0 (TSort m) a1)) (\lambda (a1: A).(arity g c0 
+(TSort (next g m)) (asucc g a1))) (ASort O m) (arity_sort g c0 m) (arity_sort 
+g c0 (next g m))))) (\lambda (n: nat).(\lambda (c0: C).(\lambda (d: 
+C).(\lambda (u: T).(\lambda (H0: (getl n c0 (CHead d (Bind Abbr) 
+u))).(\lambda (t: T).(\lambda (_: (ty3 g d u t)).(\lambda (H2: (ex2 A 
 (\lambda (a1: A).(arity g d u a1)) (\lambda (a1: A).(arity g d t (asucc g 
-a1))))).(let H3 \def H2 in (let TMP_75 \def (\lambda (a1: A).(arity g d u 
-a1)) in (let TMP_77 \def (\lambda (a1: A).(let TMP_76 \def (asucc g a1) in 
-(arity g d t TMP_76))) in (let TMP_79 \def (\lambda (a1: A).(let TMP_78 \def 
-(TLRef n) in (arity g c0 TMP_78 a1))) in (let TMP_83 \def (\lambda (a1: 
-A).(let TMP_80 \def (S n) in (let TMP_81 \def (lift TMP_80 O u) in (let 
-TMP_82 \def (asucc g a1) in (arity g c0 TMP_81 TMP_82))))) in (let TMP_84 
-\def (ex2 A TMP_79 TMP_83) in (let TMP_111 \def (\lambda (x: A).(\lambda (H4: 
-(arity g d u x)).(\lambda (_: (arity g d t (asucc g x))).(let H_x \def 
-(leq_asucc g x) in (let H6 \def H_x in (let TMP_86 \def (\lambda (a0: A).(let 
-TMP_85 \def (asucc g a0) in (leq g x TMP_85))) in (let TMP_88 \def (\lambda 
-(a1: A).(let TMP_87 \def (TLRef n) in (arity g c0 TMP_87 a1))) in (let TMP_92 
-\def (\lambda (a1: A).(let TMP_89 \def (S n) in (let TMP_90 \def (lift TMP_89 
-O u) in (let TMP_91 \def (asucc g a1) in (arity g c0 TMP_90 TMP_91))))) in 
-(let TMP_93 \def (ex2 A TMP_88 TMP_92) in (let TMP_110 \def (\lambda (x0: 
-A).(\lambda (H7: (leq g x (asucc g x0))).(let TMP_95 \def (\lambda (a1: 
-A).(let TMP_94 \def (TLRef n) in (arity g c0 TMP_94 a1))) in (let TMP_99 \def 
-(\lambda (a1: A).(let TMP_96 \def (S n) in (let TMP_97 \def (lift TMP_96 O u) 
-in (let TMP_98 \def (asucc g a1) in (arity g c0 TMP_97 TMP_98))))) in (let 
-TMP_100 \def (asucc g x0) in (let TMP_101 \def (arity_repl g d u x H4 TMP_100 
-H7) in (let TMP_102 \def (arity_abst g c0 d u n H0 x0 TMP_101) in (let 
-TMP_103 \def (S n) in (let TMP_104 \def (lift TMP_103 O u) in (let TMP_105 
-\def (S n) in (let TMP_106 \def (getl_drop Abst c0 d u n H0) in (let TMP_107 
-\def (arity_lift g d u x H4 c0 TMP_105 O TMP_106) in (let TMP_108 \def (asucc 
-g x0) in (let TMP_109 \def (arity_repl g c0 TMP_104 x TMP_107 TMP_108 H7) in 
-(ex_intro2 A TMP_95 TMP_99 x0 TMP_102 TMP_109))))))))))))))) in (ex_ind A 
-TMP_86 TMP_93 TMP_110 H6))))))))))) in (ex2_ind A TMP_75 TMP_77 TMP_84 
-TMP_111 H3)))))))))))))))) in (let TMP_208 \def (\lambda (c0: C).(\lambda (u: 
-T).(\lambda (t: T).(\lambda (_: (ty3 g c0 u t)).(\lambda (H1: (ex2 A (\lambda 
-(a1: A).(arity g c0 u a1)) (\lambda (a1: A).(arity g c0 t (asucc g 
-a1))))).(\lambda (b: B).(\lambda (t3: T).(\lambda (t4: T).(\lambda (_: (ty3 g 
-(CHead c0 (Bind b) u) t3 t4)).(\lambda (H3: (ex2 A (\lambda (a1: A).(arity g 
-(CHead c0 (Bind b) u) t3 a1)) (\lambda (a1: A).(arity g (CHead c0 (Bind b) u) 
-t4 (asucc g a1))))).(let H4 \def H1 in (let TMP_113 \def (\lambda (a1: 
-A).(arity g c0 u a1)) in (let TMP_115 \def (\lambda (a1: A).(let TMP_114 \def 
-(asucc g a1) in (arity g c0 t TMP_114))) in (let TMP_118 \def (\lambda (a1: 
-A).(let TMP_116 \def (Bind b) in (let TMP_117 \def (THead TMP_116 u t3) in 
-(arity g c0 TMP_117 a1)))) in (let TMP_122 \def (\lambda (a1: A).(let TMP_119 
-\def (Bind b) in (let TMP_120 \def (THead TMP_119 u t4) in (let TMP_121 \def 
-(asucc g a1) in (arity g c0 TMP_120 TMP_121))))) in (let TMP_123 \def (ex2 A 
-TMP_118 TMP_122) in (let TMP_207 \def (\lambda (x: A).(\lambda (H5: (arity g 
-c0 u x)).(\lambda (_: (arity g c0 t (asucc g x))).(let H7 \def H3 in (let 
-TMP_126 \def (\lambda (a1: A).(let TMP_124 \def (Bind b) in (let TMP_125 \def 
-(CHead c0 TMP_124 u) in (arity g TMP_125 t3 a1)))) in (let TMP_130 \def 
-(\lambda (a1: A).(let TMP_127 \def (Bind b) in (let TMP_128 \def (CHead c0 
-TMP_127 u) in (let TMP_129 \def (asucc g a1) in (arity g TMP_128 t4 
-TMP_129))))) in (let TMP_133 \def (\lambda (a1: A).(let TMP_131 \def (Bind b) 
-in (let TMP_132 \def (THead TMP_131 u t3) in (arity g c0 TMP_132 a1)))) in 
-(let TMP_137 \def (\lambda (a1: A).(let TMP_134 \def (Bind b) in (let TMP_135 
-\def (THead TMP_134 u t4) in (let TMP_136 \def (asucc g a1) in (arity g c0 
-TMP_135 TMP_136))))) in (let TMP_138 \def (ex2 A TMP_133 TMP_137) in (let 
-TMP_206 \def (\lambda (x0: A).(\lambda (H8: (arity g (CHead c0 (Bind b) u) t3 
-x0)).(\lambda (H9: (arity g (CHead c0 (Bind b) u) t4 (asucc g x0))).(let H_x 
-\def (leq_asucc g x) in (let H10 \def H_x in (let TMP_140 \def (\lambda (a0: 
-A).(let TMP_139 \def (asucc g a0) in (leq g x TMP_139))) in (let TMP_143 \def 
-(\lambda (a1: A).(let TMP_141 \def (Bind b) in (let TMP_142 \def (THead 
-TMP_141 u t3) in (arity g c0 TMP_142 a1)))) in (let TMP_147 \def (\lambda 
-(a1: A).(let TMP_144 \def (Bind b) in (let TMP_145 \def (THead TMP_144 u t4) 
-in (let TMP_146 \def (asucc g a1) in (arity g c0 TMP_145 TMP_146))))) in (let 
-TMP_148 \def (ex2 A TMP_143 TMP_147) in (let TMP_205 \def (\lambda (x1: 
-A).(\lambda (H11: (leq g x (asucc g x1))).(let TMP_156 \def (\lambda (b0: 
-B).((arity g (CHead c0 (Bind b0) u) t3 x0) \to ((arity g (CHead c0 (Bind b0) 
-u) t4 (asucc g x0)) \to (let TMP_151 \def (\lambda (a1: A).(let TMP_149 \def 
-(Bind b0) in (let TMP_150 \def (THead TMP_149 u t3) in (arity g c0 TMP_150 
-a1)))) in (let TMP_155 \def (\lambda (a1: A).(let TMP_152 \def (Bind b0) in 
-(let TMP_153 \def (THead TMP_152 u t4) in (let TMP_154 \def (asucc g a1) in 
-(arity g c0 TMP_153 TMP_154))))) in (ex2 A TMP_151 TMP_155)))))) in (let 
-TMP_167 \def (\lambda (H12: (arity g (CHead c0 (Bind Abbr) u) t3 
-x0)).(\lambda (H13: (arity g (CHead c0 (Bind Abbr) u) t4 (asucc g x0))).(let 
-TMP_159 \def (\lambda (a1: A).(let TMP_157 \def (Bind Abbr) in (let TMP_158 
-\def (THead TMP_157 u t3) in (arity g c0 TMP_158 a1)))) in (let TMP_163 \def 
-(\lambda (a1: A).(let TMP_160 \def (Bind Abbr) in (let TMP_161 \def (THead 
-TMP_160 u t4) in (let TMP_162 \def (asucc g a1) in (arity g c0 TMP_161 
-TMP_162))))) in (let TMP_164 \def (arity_bind g Abbr not_abbr_abst c0 u x H5 
-t3 x0 H12) in (let TMP_165 \def (asucc g x0) in (let TMP_166 \def (arity_bind 
-g Abbr not_abbr_abst c0 u x H5 t4 TMP_165 H13) in (ex_intro2 A TMP_159 
-TMP_163 x0 TMP_164 TMP_166)))))))) in (let TMP_193 \def (\lambda (H12: (arity 
-g (CHead c0 (Bind Abst) u) t3 x0)).(\lambda (H13: (arity g (CHead c0 (Bind 
-Abst) u) t4 (asucc g x0))).(let TMP_170 \def (\lambda (a1: A).(let TMP_168 
-\def (Bind Abst) in (let TMP_169 \def (THead TMP_168 u t3) in (arity g c0 
-TMP_169 a1)))) in (let TMP_174 \def (\lambda (a1: A).(let TMP_171 \def (Bind 
-Abst) in (let TMP_172 \def (THead TMP_171 u t4) in (let TMP_173 \def (asucc g 
-a1) in (arity g c0 TMP_172 TMP_173))))) in (let TMP_175 \def (AHead x1 x0) in 
-(let TMP_176 \def (asucc g x1) in (let TMP_177 \def (arity_repl g c0 u x H5 
-TMP_176 H11) in (let TMP_178 \def (arity_head g c0 u x1 TMP_177 t3 x0 H12) in 
-(let TMP_179 \def (Bind Abst) in (let TMP_180 \def (THead TMP_179 u t4) in 
-(let TMP_181 \def (asucc g x0) in (let TMP_182 \def (AHead x1 TMP_181) in 
-(let TMP_183 \def (asucc g x1) in (let TMP_184 \def (arity_repl g c0 u x H5 
-TMP_183 H11) in (let TMP_185 \def (asucc g x0) in (let TMP_186 \def 
-(arity_head g c0 u x1 TMP_184 t4 TMP_185 H13) in (let TMP_187 \def (AHead x1 
-x0) in (let TMP_188 \def (asucc g TMP_187) in (let TMP_189 \def (AHead x1 x0) 
-in (let TMP_190 \def (asucc g TMP_189) in (let TMP_191 \def (leq_refl g 
-TMP_190) in (let TMP_192 \def (arity_repl g c0 TMP_180 TMP_182 TMP_186 
-TMP_188 TMP_191) in (ex_intro2 A TMP_170 TMP_174 TMP_175 TMP_178 
-TMP_192))))))))))))))))))))))) in (let TMP_204 \def (\lambda (H12: (arity g 
-(CHead c0 (Bind Void) u) t3 x0)).(\lambda (H13: (arity g (CHead c0 (Bind 
-Void) u) t4 (asucc g x0))).(let TMP_196 \def (\lambda (a1: A).(let TMP_194 
-\def (Bind Void) in (let TMP_195 \def (THead TMP_194 u t3) in (arity g c0 
-TMP_195 a1)))) in (let TMP_200 \def (\lambda (a1: A).(let TMP_197 \def (Bind 
-Void) in (let TMP_198 \def (THead TMP_197 u t4) in (let TMP_199 \def (asucc g 
-a1) in (arity g c0 TMP_198 TMP_199))))) in (let TMP_201 \def (arity_bind g 
-Void not_void_abst c0 u x H5 t3 x0 H12) in (let TMP_202 \def (asucc g x0) in 
-(let TMP_203 \def (arity_bind g Void not_void_abst c0 u x H5 t4 TMP_202 H13) 
-in (ex_intro2 A TMP_196 TMP_200 x0 TMP_201 TMP_203)))))))) in (B_ind TMP_156 
-TMP_167 TMP_193 TMP_204 b H8 H9))))))) in (ex_ind A TMP_140 TMP_148 TMP_205 
-H10))))))))))) in (ex2_ind A TMP_126 TMP_130 TMP_138 TMP_206 H7))))))))))) in 
-(ex2_ind A TMP_113 TMP_115 TMP_123 TMP_207 H4)))))))))))))))))) in (let 
-TMP_304 \def (\lambda (c0: C).(\lambda (w: T).(\lambda (u: T).(\lambda (_: 
+a1))))).(let H3 \def H2 in (ex2_ind A (\lambda (a1: A).(arity g d u a1)) 
+(\lambda (a1: A).(arity g d t (asucc g a1))) (ex2 A (\lambda (a1: A).(arity g 
+c0 (TLRef n) a1)) (\lambda (a1: A).(arity g c0 (lift (S n) O t) (asucc g 
+a1)))) (\lambda (x: A).(\lambda (H4: (arity g d u x)).(\lambda (H5: (arity g 
+d t (asucc g x))).(ex_intro2 A (\lambda (a1: A).(arity g c0 (TLRef n) a1)) 
+(\lambda (a1: A).(arity g c0 (lift (S n) O t) (asucc g a1))) x (arity_abbr g 
+c0 d u n H0 x H4) (arity_lift g d t (asucc g x) H5 c0 (S n) O (getl_drop Abbr 
+c0 d u n H0)))))) H3)))))))))) (\lambda (n: nat).(\lambda (c0: C).(\lambda 
+(d: C).(\lambda (u: T).(\lambda (H0: (getl n c0 (CHead d (Bind Abst) 
+u))).(\lambda (t: T).(\lambda (_: (ty3 g d u t)).(\lambda (H2: (ex2 A 
+(\lambda (a1: A).(arity g d u a1)) (\lambda (a1: A).(arity g d t (asucc g 
+a1))))).(let H3 \def H2 in (ex2_ind A (\lambda (a1: A).(arity g d u a1)) 
+(\lambda (a1: A).(arity g d t (asucc g a1))) (ex2 A (\lambda (a1: A).(arity g 
+c0 (TLRef n) a1)) (\lambda (a1: A).(arity g c0 (lift (S n) O u) (asucc g 
+a1)))) (\lambda (x: A).(\lambda (H4: (arity g d u x)).(\lambda (_: (arity g d 
+t (asucc g x))).(let H_x \def (leq_asucc g x) in (let H6 \def H_x in (ex_ind 
+A (\lambda (a0: A).(leq g x (asucc g a0))) (ex2 A (\lambda (a1: A).(arity g 
+c0 (TLRef n) a1)) (\lambda (a1: A).(arity g c0 (lift (S n) O u) (asucc g 
+a1)))) (\lambda (x0: A).(\lambda (H7: (leq g x (asucc g x0))).(ex_intro2 A 
+(\lambda (a1: A).(arity g c0 (TLRef n) a1)) (\lambda (a1: A).(arity g c0 
+(lift (S n) O u) (asucc g a1))) x0 (arity_abst g c0 d u n H0 x0 (arity_repl g 
+d u x H4 (asucc g x0) H7)) (arity_repl g c0 (lift (S n) O u) x (arity_lift g 
+d u x H4 c0 (S n) O (getl_drop Abst c0 d u n H0)) (asucc g x0) H7)))) 
+H6)))))) H3)))))))))) (\lambda (c0: C).(\lambda (u: T).(\lambda (t: 
+T).(\lambda (_: (ty3 g c0 u t)).(\lambda (H1: (ex2 A (\lambda (a1: A).(arity 
+g c0 u a1)) (\lambda (a1: A).(arity g c0 t (asucc g a1))))).(\lambda (b: 
+B).(\lambda (t3: T).(\lambda (t4: T).(\lambda (_: (ty3 g (CHead c0 (Bind b) 
+u) t3 t4)).(\lambda (H3: (ex2 A (\lambda (a1: A).(arity g (CHead c0 (Bind b) 
+u) t3 a1)) (\lambda (a1: A).(arity g (CHead c0 (Bind b) u) t4 (asucc g 
+a1))))).(let H4 \def H1 in (ex2_ind A (\lambda (a1: A).(arity g c0 u a1)) 
+(\lambda (a1: A).(arity g c0 t (asucc g a1))) (ex2 A (\lambda (a1: A).(arity 
+g c0 (THead (Bind b) u t3) a1)) (\lambda (a1: A).(arity g c0 (THead (Bind b) 
+u t4) (asucc g a1)))) (\lambda (x: A).(\lambda (H5: (arity g c0 u 
+x)).(\lambda (_: (arity g c0 t (asucc g x))).(let H7 \def H3 in (ex2_ind A 
+(\lambda (a1: A).(arity g (CHead c0 (Bind b) u) t3 a1)) (\lambda (a1: 
+A).(arity g (CHead c0 (Bind b) u) t4 (asucc g a1))) (ex2 A (\lambda (a1: 
+A).(arity g c0 (THead (Bind b) u t3) a1)) (\lambda (a1: A).(arity g c0 (THead 
+(Bind b) u t4) (asucc g a1)))) (\lambda (x0: A).(\lambda (H8: (arity g (CHead 
+c0 (Bind b) u) t3 x0)).(\lambda (H9: (arity g (CHead c0 (Bind b) u) t4 (asucc 
+g x0))).(let H_x \def (leq_asucc g x) in (let H10 \def H_x in (ex_ind A 
+(\lambda (a0: A).(leq g x (asucc g a0))) (ex2 A (\lambda (a1: A).(arity g c0 
+(THead (Bind b) u t3) a1)) (\lambda (a1: A).(arity g c0 (THead (Bind b) u t4) 
+(asucc g a1)))) (\lambda (x1: A).(\lambda (H11: (leq g x (asucc g 
+x1))).(B_ind (\lambda (b0: B).((arity g (CHead c0 (Bind b0) u) t3 x0) \to 
+((arity g (CHead c0 (Bind b0) u) t4 (asucc g x0)) \to (ex2 A (\lambda (a1: 
+A).(arity g c0 (THead (Bind b0) u t3) a1)) (\lambda (a1: A).(arity g c0 
+(THead (Bind b0) u t4) (asucc g a1))))))) (\lambda (H12: (arity g (CHead c0 
+(Bind Abbr) u) t3 x0)).(\lambda (H13: (arity g (CHead c0 (Bind Abbr) u) t4 
+(asucc g x0))).(ex_intro2 A (\lambda (a1: A).(arity g c0 (THead (Bind Abbr) u 
+t3) a1)) (\lambda (a1: A).(arity g c0 (THead (Bind Abbr) u t4) (asucc g a1))) 
+x0 (arity_bind g Abbr not_abbr_abst c0 u x H5 t3 x0 H12) (arity_bind g Abbr 
+not_abbr_abst c0 u x H5 t4 (asucc g x0) H13)))) (\lambda (H12: (arity g 
+(CHead c0 (Bind Abst) u) t3 x0)).(\lambda (H13: (arity g (CHead c0 (Bind 
+Abst) u) t4 (asucc g x0))).(ex_intro2 A (\lambda (a1: A).(arity g c0 (THead 
+(Bind Abst) u t3) a1)) (\lambda (a1: A).(arity g c0 (THead (Bind Abst) u t4) 
+(asucc g a1))) (AHead x1 x0) (arity_head g c0 u x1 (arity_repl g c0 u x H5 
+(asucc g x1) H11) t3 x0 H12) (arity_repl g c0 (THead (Bind Abst) u t4) (AHead 
+x1 (asucc g x0)) (arity_head g c0 u x1 (arity_repl g c0 u x H5 (asucc g x1) 
+H11) t4 (asucc g x0) H13) (asucc g (AHead x1 x0)) (leq_refl g (asucc g (AHead 
+x1 x0))))))) (\lambda (H12: (arity g (CHead c0 (Bind Void) u) t3 
+x0)).(\lambda (H13: (arity g (CHead c0 (Bind Void) u) t4 (asucc g 
+x0))).(ex_intro2 A (\lambda (a1: A).(arity g c0 (THead (Bind Void) u t3) a1)) 
+(\lambda (a1: A).(arity g c0 (THead (Bind Void) u t4) (asucc g a1))) x0 
+(arity_bind g Void not_void_abst c0 u x H5 t3 x0 H12) (arity_bind g Void 
+not_void_abst c0 u x H5 t4 (asucc g x0) H13)))) b H8 H9))) H10)))))) H7))))) 
+H4)))))))))))) (\lambda (c0: C).(\lambda (w: T).(\lambda (u: T).(\lambda (_: 
 (ty3 g c0 w u)).(\lambda (H1: (ex2 A (\lambda (a1: A).(arity g c0 w a1)) 
 (\lambda (a1: A).(arity g c0 u (asucc g a1))))).(\lambda (v: T).(\lambda (t: 
 T).(\lambda (_: (ty3 g c0 v (THead (Bind Abst) u t))).(\lambda (H3: (ex2 A 
 (\lambda (a1: A).(arity g c0 v a1)) (\lambda (a1: A).(arity g c0 (THead (Bind 
-Abst) u t) (asucc g a1))))).(let H4 \def H1 in (let TMP_209 \def (\lambda 
-(a1: A).(arity g c0 w a1)) in (let TMP_211 \def (\lambda (a1: A).(let TMP_210 
-\def (asucc g a1) in (arity g c0 u TMP_210))) in (let TMP_214 \def (\lambda 
-(a1: A).(let TMP_212 \def (Flat Appl) in (let TMP_213 \def (THead TMP_212 w 
-v) in (arity g c0 TMP_213 a1)))) in (let TMP_220 \def (\lambda (a1: A).(let 
-TMP_215 \def (Flat Appl) in (let TMP_216 \def (Bind Abst) in (let TMP_217 
-\def (THead TMP_216 u t) in (let TMP_218 \def (THead TMP_215 w TMP_217) in 
-(let TMP_219 \def (asucc g a1) in (arity g c0 TMP_218 TMP_219))))))) in (let 
-TMP_221 \def (ex2 A TMP_214 TMP_220) in (let TMP_303 \def (\lambda (x: 
-A).(\lambda (H5: (arity g c0 w x)).(\lambda (H6: (arity g c0 u (asucc g 
-x))).(let H7 \def H3 in (let TMP_222 \def (\lambda (a1: A).(arity g c0 v a1)) 
-in (let TMP_226 \def (\lambda (a1: A).(let TMP_223 \def (Bind Abst) in (let 
-TMP_224 \def (THead TMP_223 u t) in (let TMP_225 \def (asucc g a1) in (arity 
-g c0 TMP_224 TMP_225))))) in (let TMP_229 \def (\lambda (a1: A).(let TMP_227 
-\def (Flat Appl) in (let TMP_228 \def (THead TMP_227 w v) in (arity g c0 
-TMP_228 a1)))) in (let TMP_235 \def (\lambda (a1: A).(let TMP_230 \def (Flat 
-Appl) in (let TMP_231 \def (Bind Abst) in (let TMP_232 \def (THead TMP_231 u 
-t) in (let TMP_233 \def (THead TMP_230 w TMP_232) in (let TMP_234 \def (asucc 
-g a1) in (arity g c0 TMP_233 TMP_234))))))) in (let TMP_236 \def (ex2 A 
-TMP_229 TMP_235) in (let TMP_302 \def (\lambda (x0: A).(\lambda (H8: (arity g 
-c0 v x0)).(\lambda (H9: (arity g c0 (THead (Bind Abst) u t) (asucc g 
-x0))).(let TMP_237 \def (asucc g x0) in (let H10 \def (arity_gen_abst g c0 u 
-t TMP_237 H9) in (let TMP_240 \def (\lambda (a1: A).(\lambda (a2: A).(let 
-TMP_238 \def (asucc g x0) in (let TMP_239 \def (AHead a1 a2) in (eq A TMP_238 
-TMP_239))))) in (let TMP_242 \def (\lambda (a1: A).(\lambda (_: A).(let 
-TMP_241 \def (asucc g a1) in (arity g c0 u TMP_241)))) in (let TMP_245 \def 
-(\lambda (_: A).(\lambda (a2: A).(let TMP_243 \def (Bind Abst) in (let 
-TMP_244 \def (CHead c0 TMP_243 u) in (arity g TMP_244 t a2))))) in (let 
-TMP_248 \def (\lambda (a1: A).(let TMP_246 \def (Flat Appl) in (let TMP_247 
-\def (THead TMP_246 w v) in (arity g c0 TMP_247 a1)))) in (let TMP_254 \def 
-(\lambda (a1: A).(let TMP_249 \def (Flat Appl) in (let TMP_250 \def (Bind 
-Abst) in (let TMP_251 \def (THead TMP_250 u t) in (let TMP_252 \def (THead 
-TMP_249 w TMP_251) in (let TMP_253 \def (asucc g a1) in (arity g c0 TMP_252 
-TMP_253))))))) in (let TMP_255 \def (ex2 A TMP_248 TMP_254) in (let TMP_301 
-\def (\lambda (x1: A).(\lambda (x2: A).(\lambda (H11: (eq A (asucc g x0) 
-(AHead x1 x2))).(\lambda (H12: (arity g c0 u (asucc g x1))).(\lambda (H13: 
-(arity g (CHead c0 (Bind Abst) u) t x2)).(let TMP_256 \def (asucc g x0) in 
-(let TMP_257 \def (AHead x1 x2) in (let H14 \def (sym_eq A TMP_256 TMP_257 
-H11) in (let H15 \def (asucc_gen_head g x1 x2 x0 H14) in (let TMP_259 \def 
-(\lambda (a0: A).(let TMP_258 \def (AHead x1 a0) in (eq A x0 TMP_258))) in 
-(let TMP_261 \def (\lambda (a0: A).(let TMP_260 \def (asucc g a0) in (eq A x2 
-TMP_260))) in (let TMP_264 \def (\lambda (a1: A).(let TMP_262 \def (Flat 
-Appl) in (let TMP_263 \def (THead TMP_262 w v) in (arity g c0 TMP_263 a1)))) 
-in (let TMP_270 \def (\lambda (a1: A).(let TMP_265 \def (Flat Appl) in (let 
-TMP_266 \def (Bind Abst) in (let TMP_267 \def (THead TMP_266 u t) in (let 
-TMP_268 \def (THead TMP_265 w TMP_267) in (let TMP_269 \def (asucc g a1) in 
-(arity g c0 TMP_268 TMP_269))))))) in (let TMP_271 \def (ex2 A TMP_264 
-TMP_270) in (let TMP_300 \def (\lambda (x3: A).(\lambda (H16: (eq A x0 (AHead 
-x1 x3))).(\lambda (H17: (eq A x2 (asucc g x3))).(let TMP_274 \def (\lambda 
-(a: A).(let TMP_272 \def (Bind Abst) in (let TMP_273 \def (CHead c0 TMP_272 
-u) in (arity g TMP_273 t a)))) in (let TMP_275 \def (asucc g x3) in (let H18 
-\def (eq_ind A x2 TMP_274 H13 TMP_275 H17) in (let TMP_276 \def (\lambda (a: 
-A).(arity g c0 v a)) in (let TMP_277 \def (AHead x1 x3) in (let H19 \def 
-(eq_ind A x0 TMP_276 H8 TMP_277 H16) in (let TMP_280 \def (\lambda (a1: 
-A).(let TMP_278 \def (Flat Appl) in (let TMP_279 \def (THead TMP_278 w v) in 
-(arity g c0 TMP_279 a1)))) in (let TMP_286 \def (\lambda (a1: A).(let TMP_281 
-\def (Flat Appl) in (let TMP_282 \def (Bind Abst) in (let TMP_283 \def (THead 
-TMP_282 u t) in (let TMP_284 \def (THead TMP_281 w TMP_283) in (let TMP_285 
-\def (asucc g a1) in (arity g c0 TMP_284 TMP_285))))))) in (let TMP_287 \def 
-(asucc g x1) in (let TMP_288 \def (asucc g x) in (let TMP_289 \def 
-(arity_mono g c0 u TMP_287 H12 TMP_288 H6) in (let TMP_290 \def (asucc_inj g 
-x1 x TMP_289) in (let TMP_291 \def (leq_sym g x1 x TMP_290) in (let TMP_292 
-\def (arity_repl g c0 w x H5 x1 TMP_291) in (let TMP_293 \def (arity_appl g 
-c0 w x1 TMP_292 v x3 H19) in (let TMP_294 \def (Bind Abst) in (let TMP_295 
-\def (THead TMP_294 u t) in (let TMP_296 \def (asucc g x3) in (let TMP_297 
-\def (asucc g x3) in (let TMP_298 \def (arity_head g c0 u x H6 t TMP_297 H18) 
-in (let TMP_299 \def (arity_appl g c0 w x H5 TMP_295 TMP_296 TMP_298) in 
-(ex_intro2 A TMP_280 TMP_286 x3 TMP_293 TMP_299))))))))))))))))))))))))) in 
-(ex2_ind A TMP_259 TMP_261 TMP_271 TMP_300 H15)))))))))))))))) in (ex3_2_ind 
-A A TMP_240 TMP_242 TMP_245 TMP_255 TMP_301 H10))))))))))))) in (ex2_ind A 
-TMP_222 TMP_226 TMP_236 TMP_302 H7))))))))))) in (ex2_ind A TMP_209 TMP_211 
-TMP_221 TMP_303 H4))))))))))))))))) in (let TMP_347 \def (\lambda (c0: 
-C).(\lambda (t3: T).(\lambda (t4: T).(\lambda (_: (ty3 g c0 t3 t4)).(\lambda 
-(H1: (ex2 A (\lambda (a1: A).(arity g c0 t3 a1)) (\lambda (a1: A).(arity g c0 
-t4 (asucc g a1))))).(\lambda (t0: T).(\lambda (_: (ty3 g c0 t4 t0)).(\lambda 
-(H3: (ex2 A (\lambda (a1: A).(arity g c0 t4 a1)) (\lambda (a1: A).(arity g c0 
-t0 (asucc g a1))))).(let H4 \def H1 in (let TMP_305 \def (\lambda (a1: 
-A).(arity g c0 t3 a1)) in (let TMP_307 \def (\lambda (a1: A).(let TMP_306 
-\def (asucc g a1) in (arity g c0 t4 TMP_306))) in (let TMP_310 \def (\lambda 
-(a1: A).(let TMP_308 \def (Flat Cast) in (let TMP_309 \def (THead TMP_308 t4 
-t3) in (arity g c0 TMP_309 a1)))) in (let TMP_314 \def (\lambda (a1: A).(let 
-TMP_311 \def (Flat Cast) in (let TMP_312 \def (THead TMP_311 t0 t4) in (let 
-TMP_313 \def (asucc g a1) in (arity g c0 TMP_312 TMP_313))))) in (let TMP_315 
-\def (ex2 A TMP_310 TMP_314) in (let TMP_346 \def (\lambda (x: A).(\lambda 
-(H5: (arity g c0 t3 x)).(\lambda (H6: (arity g c0 t4 (asucc g x))).(let H7 
-\def H3 in (let TMP_316 \def (\lambda (a1: A).(arity g c0 t4 a1)) in (let 
-TMP_318 \def (\lambda (a1: A).(let TMP_317 \def (asucc g a1) in (arity g c0 
-t0 TMP_317))) in (let TMP_321 \def (\lambda (a1: A).(let TMP_319 \def (Flat 
-Cast) in (let TMP_320 \def (THead TMP_319 t4 t3) in (arity g c0 TMP_320 
-a1)))) in (let TMP_325 \def (\lambda (a1: A).(let TMP_322 \def (Flat Cast) in 
-(let TMP_323 \def (THead TMP_322 t0 t4) in (let TMP_324 \def (asucc g a1) in 
-(arity g c0 TMP_323 TMP_324))))) in (let TMP_326 \def (ex2 A TMP_321 TMP_325) 
-in (let TMP_345 \def (\lambda (x0: A).(\lambda (H8: (arity g c0 t4 
-x0)).(\lambda (H9: (arity g c0 t0 (asucc g x0))).(let TMP_329 \def (\lambda 
-(a1: A).(let TMP_327 \def (Flat Cast) in (let TMP_328 \def (THead TMP_327 t4 
-t3) in (arity g c0 TMP_328 a1)))) in (let TMP_333 \def (\lambda (a1: A).(let 
-TMP_330 \def (Flat Cast) in (let TMP_331 \def (THead TMP_330 t0 t4) in (let 
-TMP_332 \def (asucc g a1) in (arity g c0 TMP_331 TMP_332))))) in (let TMP_334 
-\def (arity_cast g c0 t4 x H6 t3 H5) in (let TMP_335 \def (asucc g x) in (let 
-TMP_336 \def (asucc g x0) in (let TMP_337 \def (asucc g x) in (let TMP_338 
-\def (asucc g TMP_337) in (let TMP_339 \def (asucc g x) in (let TMP_340 \def 
-(asucc g x) in (let TMP_341 \def (arity_mono g c0 t4 x0 H8 TMP_340 H6) in 
-(let TMP_342 \def (asucc_repl g x0 TMP_339 TMP_341) in (let TMP_343 \def 
-(arity_repl g c0 t0 TMP_336 H9 TMP_338 TMP_342) in (let TMP_344 \def 
-(arity_cast g c0 t0 TMP_335 TMP_343 t4 H6) in (ex_intro2 A TMP_329 TMP_333 x 
-TMP_334 TMP_344))))))))))))))))) in (ex2_ind A TMP_316 TMP_318 TMP_326 
-TMP_345 H7))))))))))) in (ex2_ind A TMP_305 TMP_307 TMP_315 TMP_346 
-H4)))))))))))))))) in (ty3_ind g TMP_4 TMP_40 TMP_51 TMP_74 TMP_112 TMP_208 
-TMP_304 TMP_347 c t1 t2 H))))))))))))).
+Abst) u t) (asucc g a1))))).(let H4 \def H1 in (ex2_ind A (\lambda (a1: 
+A).(arity g c0 w a1)) (\lambda (a1: A).(arity g c0 u (asucc g a1))) (ex2 A 
+(\lambda (a1: A).(arity g c0 (THead (Flat Appl) w v) a1)) (\lambda (a1: 
+A).(arity g c0 (THead (Flat Appl) w (THead (Bind Abst) u t)) (asucc g a1)))) 
+(\lambda (x: A).(\lambda (H5: (arity g c0 w x)).(\lambda (H6: (arity g c0 u 
+(asucc g x))).(let H7 \def H3 in (ex2_ind A (\lambda (a1: A).(arity g c0 v 
+a1)) (\lambda (a1: A).(arity g c0 (THead (Bind Abst) u t) (asucc g a1))) (ex2 
+A (\lambda (a1: A).(arity g c0 (THead (Flat Appl) w v) a1)) (\lambda (a1: 
+A).(arity g c0 (THead (Flat Appl) w (THead (Bind Abst) u t)) (asucc g a1)))) 
+(\lambda (x0: A).(\lambda (H8: (arity g c0 v x0)).(\lambda (H9: (arity g c0 
+(THead (Bind Abst) u t) (asucc g x0))).(let H10 \def (arity_gen_abst g c0 u t 
+(asucc g x0) H9) in (ex3_2_ind A A (\lambda (a1: A).(\lambda (a2: A).(eq A 
+(asucc g x0) (AHead a1 a2)))) (\lambda (a1: A).(\lambda (_: A).(arity g c0 u 
+(asucc g a1)))) (\lambda (_: A).(\lambda (a2: A).(arity g (CHead c0 (Bind 
+Abst) u) t a2))) (ex2 A (\lambda (a1: A).(arity g c0 (THead (Flat Appl) w v) 
+a1)) (\lambda (a1: A).(arity g c0 (THead (Flat Appl) w (THead (Bind Abst) u 
+t)) (asucc g a1)))) (\lambda (x1: A).(\lambda (x2: A).(\lambda (H11: (eq A 
+(asucc g x0) (AHead x1 x2))).(\lambda (H12: (arity g c0 u (asucc g 
+x1))).(\lambda (H13: (arity g (CHead c0 (Bind Abst) u) t x2)).(let H14 \def 
+(sym_eq A (asucc g x0) (AHead x1 x2) H11) in (let H15 \def (asucc_gen_head g 
+x1 x2 x0 H14) in (ex2_ind A (\lambda (a0: A).(eq A x0 (AHead x1 a0))) 
+(\lambda (a0: A).(eq A x2 (asucc g a0))) (ex2 A (\lambda (a1: A).(arity g c0 
+(THead (Flat Appl) w v) a1)) (\lambda (a1: A).(arity g c0 (THead (Flat Appl) 
+w (THead (Bind Abst) u t)) (asucc g a1)))) (\lambda (x3: A).(\lambda (H16: 
+(eq A x0 (AHead x1 x3))).(\lambda (H17: (eq A x2 (asucc g x3))).(let H18 \def 
+(eq_ind A x2 (\lambda (a: A).(arity g (CHead c0 (Bind Abst) u) t a)) H13 
+(asucc g x3) H17) in (let H19 \def (eq_ind A x0 (\lambda (a: A).(arity g c0 v 
+a)) H8 (AHead x1 x3) H16) in (ex_intro2 A (\lambda (a1: A).(arity g c0 (THead 
+(Flat Appl) w v) a1)) (\lambda (a1: A).(arity g c0 (THead (Flat Appl) w 
+(THead (Bind Abst) u t)) (asucc g a1))) x3 (arity_appl g c0 w x1 (arity_repl 
+g c0 w x H5 x1 (leq_sym g x1 x (asucc_inj g x1 x (arity_mono g c0 u (asucc g 
+x1) H12 (asucc g x) H6)))) v x3 H19) (arity_appl g c0 w x H5 (THead (Bind 
+Abst) u t) (asucc g x3) (arity_head g c0 u x H6 t (asucc g x3) H18)))))))) 
+H15)))))))) H10))))) H7))))) H4))))))))))) (\lambda (c0: C).(\lambda (t3: 
+T).(\lambda (t4: T).(\lambda (_: (ty3 g c0 t3 t4)).(\lambda (H1: (ex2 A 
+(\lambda (a1: A).(arity g c0 t3 a1)) (\lambda (a1: A).(arity g c0 t4 (asucc g 
+a1))))).(\lambda (t0: T).(\lambda (_: (ty3 g c0 t4 t0)).(\lambda (H3: (ex2 A 
+(\lambda (a1: A).(arity g c0 t4 a1)) (\lambda (a1: A).(arity g c0 t0 (asucc g 
+a1))))).(let H4 \def H1 in (ex2_ind A (\lambda (a1: A).(arity g c0 t3 a1)) 
+(\lambda (a1: A).(arity g c0 t4 (asucc g a1))) (ex2 A (\lambda (a1: A).(arity 
+g c0 (THead (Flat Cast) t4 t3) a1)) (\lambda (a1: A).(arity g c0 (THead (Flat 
+Cast) t0 t4) (asucc g a1)))) (\lambda (x: A).(\lambda (H5: (arity g c0 t3 
+x)).(\lambda (H6: (arity g c0 t4 (asucc g x))).(let H7 \def H3 in (ex2_ind A 
+(\lambda (a1: A).(arity g c0 t4 a1)) (\lambda (a1: A).(arity g c0 t0 (asucc g 
+a1))) (ex2 A (\lambda (a1: A).(arity g c0 (THead (Flat Cast) t4 t3) a1)) 
+(\lambda (a1: A).(arity g c0 (THead (Flat Cast) t0 t4) (asucc g a1)))) 
+(\lambda (x0: A).(\lambda (H8: (arity g c0 t4 x0)).(\lambda (H9: (arity g c0 
+t0 (asucc g x0))).(ex_intro2 A (\lambda (a1: A).(arity g c0 (THead (Flat 
+Cast) t4 t3) a1)) (\lambda (a1: A).(arity g c0 (THead (Flat Cast) t0 t4) 
+(asucc g a1))) x (arity_cast g c0 t4 x H6 t3 H5) (arity_cast g c0 t0 (asucc g 
+x) (arity_repl g c0 t0 (asucc g x0) H9 (asucc g (asucc g x)) (asucc_repl g x0 
+(asucc g x) (arity_mono g c0 t4 x0 H8 (asucc g x) H6))) t4 H6))))) H7))))) 
+H4)))))))))) c t1 t2 H))))).
 
index e53197b3b2c73e5536dc7940ebee7eac2e7c80bc..7fe662dce3b4adb0e44ef55c8229383562da6deb 100644 (file)
@@ -25,39 +25,27 @@ Prop).P)))))))
 \def
  \lambda (g: G).(\lambda (c: C).(\lambda (v: T).(\lambda (t: T).(\lambda (u: 
 T).(\lambda (H: (ty3 g c (THead (Bind Abst) v t) u)).(\lambda (H0: (pc3 c u 
-v)).(\lambda (P: Prop).(let H1 \def H in (let TMP_3 \def (\lambda (t2: 
-T).(\lambda (_: T).(let TMP_1 \def (Bind Abst) in (let TMP_2 \def (THead 
-TMP_1 v t2) in (pc3 c TMP_2 u))))) in (let TMP_4 \def (\lambda (_: 
-T).(\lambda (t0: T).(ty3 g c v t0))) in (let TMP_7 \def (\lambda (t2: 
-T).(\lambda (_: T).(let TMP_5 \def (Bind Abst) in (let TMP_6 \def (CHead c 
-TMP_5 v) in (ty3 g TMP_6 t t2))))) in (let TMP_34 \def (\lambda (x0: 
-T).(\lambda (x1: T).(\lambda (_: (pc3 c (THead (Bind Abst) v x0) u)).(\lambda 
-(H3: (ty3 g c v x1)).(\lambda (_: (ty3 g (CHead c (Bind Abst) v) t x0)).(let 
-TMP_8 \def (Bind Abst) in (let TMP_9 \def (THead TMP_8 v t) in (let H_y \def 
-(ty3_conv g c v x1 H3 TMP_9 u H H0) in (let TMP_10 \def (Bind Abst) in (let 
-TMP_11 \def (THead TMP_10 v t) in (let H_x \def (ty3_arity g c TMP_11 v H_y) 
-in (let H5 \def H_x in (let TMP_14 \def (\lambda (a1: A).(let TMP_12 \def 
-(Bind Abst) in (let TMP_13 \def (THead TMP_12 v t) in (arity g c TMP_13 
-a1)))) in (let TMP_16 \def (\lambda (a1: A).(let TMP_15 \def (asucc g a1) in 
-(arity g c v TMP_15))) in (let TMP_33 \def (\lambda (x: A).(\lambda (H6: 
-(arity g c (THead (Bind Abst) v t) x)).(\lambda (H7: (arity g c v (asucc g 
-x))).(let H8 \def (arity_gen_abst g c v t x H6) in (let TMP_18 \def (\lambda 
-(a1: A).(\lambda (a2: A).(let TMP_17 \def (AHead a1 a2) in (eq A x TMP_17)))) 
-in (let TMP_20 \def (\lambda (a1: A).(\lambda (_: A).(let TMP_19 \def (asucc 
-g a1) in (arity g c v TMP_19)))) in (let TMP_23 \def (\lambda (_: A).(\lambda 
-(a2: A).(let TMP_21 \def (Bind Abst) in (let TMP_22 \def (CHead c TMP_21 v) 
-in (arity g TMP_22 t a2))))) in (let TMP_32 \def (\lambda (x2: A).(\lambda 
-(x3: A).(\lambda (H9: (eq A x (AHead x2 x3))).(\lambda (H10: (arity g c v 
-(asucc g x2))).(\lambda (_: (arity g (CHead c (Bind Abst) v) t x3)).(let 
-TMP_25 \def (\lambda (a: A).(let TMP_24 \def (asucc g a) in (arity g c v 
-TMP_24))) in (let TMP_26 \def (AHead x2 x3) in (let H12 \def (eq_ind A x 
-TMP_25 H7 TMP_26 H9) in (let TMP_27 \def (asucc g x3) in (let TMP_28 \def 
-(AHead x2 x3) in (let TMP_29 \def (asucc g TMP_28) in (let TMP_30 \def (asucc 
-g x2) in (let TMP_31 \def (arity_mono g c v TMP_29 H12 TMP_30 H10) in 
-(leq_ahead_asucc_false g x2 TMP_27 TMP_31 P)))))))))))))) in (ex3_2_ind A A 
-TMP_18 TMP_20 TMP_23 P TMP_32 H8))))))))) in (ex2_ind A TMP_14 TMP_16 P 
-TMP_33 H5)))))))))))))))) in (let TMP_35 \def (ty3_gen_bind g Abst c v t u 
-H1) in (ex3_2_ind T T TMP_3 TMP_4 TMP_7 P TMP_34 TMP_35)))))))))))))).
+v)).(\lambda (P: Prop).(let H1 \def H in (ex3_2_ind T T (\lambda (t2: 
+T).(\lambda (_: T).(pc3 c (THead (Bind Abst) v t2) u))) (\lambda (_: 
+T).(\lambda (t0: T).(ty3 g c v t0))) (\lambda (t2: T).(\lambda (_: T).(ty3 g 
+(CHead c (Bind Abst) v) t t2))) P (\lambda (x0: T).(\lambda (x1: T).(\lambda 
+(_: (pc3 c (THead (Bind Abst) v x0) u)).(\lambda (H3: (ty3 g c v 
+x1)).(\lambda (_: (ty3 g (CHead c (Bind Abst) v) t x0)).(let H_y \def 
+(ty3_conv g c v x1 H3 (THead (Bind Abst) v t) u H H0) in (let H_x \def 
+(ty3_arity g c (THead (Bind Abst) v t) v H_y) in (let H5 \def H_x in (ex2_ind 
+A (\lambda (a1: A).(arity g c (THead (Bind Abst) v t) a1)) (\lambda (a1: 
+A).(arity g c v (asucc g a1))) P (\lambda (x: A).(\lambda (H6: (arity g c 
+(THead (Bind Abst) v t) x)).(\lambda (H7: (arity g c v (asucc g x))).(let H8 
+\def (arity_gen_abst g c v t x H6) in (ex3_2_ind A A (\lambda (a1: 
+A).(\lambda (a2: A).(eq A x (AHead a1 a2)))) (\lambda (a1: A).(\lambda (_: 
+A).(arity g c v (asucc g a1)))) (\lambda (_: A).(\lambda (a2: A).(arity g 
+(CHead c (Bind Abst) v) t a2))) P (\lambda (x2: A).(\lambda (x3: A).(\lambda 
+(H9: (eq A x (AHead x2 x3))).(\lambda (H10: (arity g c v (asucc g 
+x2))).(\lambda (_: (arity g (CHead c (Bind Abst) v) t x3)).(let H12 \def 
+(eq_ind A x (\lambda (a: A).(arity g c v (asucc g a))) H7 (AHead x2 x3) H9) 
+in (leq_ahead_asucc_false g x2 (asucc g x3) (arity_mono g c v (asucc g (AHead 
+x2 x3)) H12 (asucc g x2) H10) P))))))) H8))))) H5))))))))) (ty3_gen_bind g 
+Abst c v t u H1)))))))))).
 
 theorem ty3_repellent:
  \forall (g: G).(\forall (c: C).(\forall (w: T).(\forall (t: T).(\forall (u1: 
@@ -68,51 +56,29 @@ Prop).P)))))))))
  \lambda (g: G).(\lambda (c: C).(\lambda (w: T).(\lambda (t: T).(\lambda (u1: 
 T).(\lambda (H: (ty3 g c (THead (Bind Abst) w t) u1)).(\lambda (u2: 
 T).(\lambda (H0: (ty3 g (CHead c (Bind Abst) w) t (lift (S O) O 
-u2))).(\lambda (H1: (pc3 c u1 u2)).(\lambda (P: Prop).(let TMP_5 \def 
-(\lambda (t0: T).(let TMP_1 \def (Bind Abst) in (let TMP_2 \def (CHead c 
-TMP_1 w) in (let TMP_3 \def (S O) in (let TMP_4 \def (lift TMP_3 O u2) in 
-(ty3 g TMP_2 TMP_4 t0)))))) in (let TMP_55 \def (\lambda (x: T).(\lambda (H2: 
-(ty3 g (CHead c (Bind Abst) w) (lift (S O) O u2) x)).(let TMP_6 \def (Bind 
-Abst) in (let TMP_7 \def (CHead c TMP_6 w) in (let TMP_8 \def (S O) in (let 
-TMP_9 \def (Bind Abst) in (let TMP_10 \def (drop_refl c) in (let TMP_11 \def 
-(drop_drop TMP_9 O c c TMP_10 w) in (let H3 \def (ty3_gen_lift g TMP_7 u2 x 
-TMP_8 O H2 c TMP_11) in (let TMP_16 \def (\lambda (t2: T).(let TMP_12 \def 
-(Bind Abst) in (let TMP_13 \def (CHead c TMP_12 w) in (let TMP_14 \def (S O) 
-in (let TMP_15 \def (lift TMP_14 O t2) in (pc3 TMP_13 TMP_15 x)))))) in (let 
-TMP_17 \def (\lambda (t2: T).(ty3 g c u2 t2)) in (let TMP_54 \def (\lambda 
-(x0: T).(\lambda (_: (pc3 (CHead c (Bind Abst) w) (lift (S O) O x0) 
-x)).(\lambda (H5: (ty3 g c u2 x0)).(let TMP_18 \def (Bind Abst) in (let 
-TMP_19 \def (THead TMP_18 w t) in (let H_y \def (ty3_conv g c u2 x0 H5 TMP_19 
-u1 H H1) in (let TMP_20 \def (Bind Abst) in (let TMP_21 \def (CHead c TMP_20 
-w) in (let TMP_22 \def (S O) in (let TMP_23 \def (lift TMP_22 O u2) in (let 
-H_x \def (ty3_arity g TMP_21 t TMP_23 H0) in (let H6 \def H_x in (let TMP_26 
-\def (\lambda (a1: A).(let TMP_24 \def (Bind Abst) in (let TMP_25 \def (CHead 
-c TMP_24 w) in (arity g TMP_25 t a1)))) in (let TMP_32 \def (\lambda (a1: 
-A).(let TMP_27 \def (Bind Abst) in (let TMP_28 \def (CHead c TMP_27 w) in 
-(let TMP_29 \def (S O) in (let TMP_30 \def (lift TMP_29 O u2) in (let TMP_31 
-\def (asucc g a1) in (arity g TMP_28 TMP_30 TMP_31))))))) in (let TMP_53 \def 
-(\lambda (x1: A).(\lambda (H7: (arity g (CHead c (Bind Abst) w) t 
-x1)).(\lambda (H8: (arity g (CHead c (Bind Abst) w) (lift (S O) O u2) (asucc 
-g x1))).(let TMP_33 \def (Bind Abst) in (let TMP_34 \def (THead TMP_33 w t) 
-in (let H_x0 \def (ty3_arity g c TMP_34 u2 H_y) in (let H9 \def H_x0 in (let 
-TMP_37 \def (\lambda (a1: A).(let TMP_35 \def (Bind Abst) in (let TMP_36 \def 
-(THead TMP_35 w t) in (arity g c TMP_36 a1)))) in (let TMP_39 \def (\lambda 
-(a1: A).(let TMP_38 \def (asucc g a1) in (arity g c u2 TMP_38))) in (let 
-TMP_52 \def (\lambda (x2: A).(\lambda (H10: (arity g c (THead (Bind Abst) w 
-t) x2)).(\lambda (H11: (arity g c u2 (asucc g x2))).(let TMP_40 \def (asucc g 
-x1) in (let TMP_41 \def (Bind Abst) in (let TMP_42 \def (CHead c TMP_41 w) in 
-(let TMP_43 \def (asucc g x1) in (let TMP_44 \def (S O) in (let TMP_45 \def 
-(Bind Abst) in (let TMP_46 \def (drop_refl c) in (let TMP_47 \def (drop_drop 
-TMP_45 O c c TMP_46 w) in (let TMP_48 \def (arity_gen_lift g TMP_42 u2 TMP_43 
-TMP_44 O H8 c TMP_47) in (let TMP_49 \def (asucc g x2) in (let TMP_50 \def 
-(arity_mono g c u2 TMP_40 TMP_48 TMP_49 H11) in (let TMP_51 \def (asucc_inj g 
-x1 x2 TMP_50) in (arity_repellent g c w t x1 H7 x2 H10 TMP_51 
-P)))))))))))))))) in (ex2_ind A TMP_37 TMP_39 P TMP_52 H9))))))))))) in 
-(ex2_ind A TMP_26 TMP_32 P TMP_53 H6)))))))))))))))) in (ex2_ind T TMP_16 
-TMP_17 P TMP_54 H3))))))))))))) in (let TMP_56 \def (Bind Abst) in (let 
-TMP_57 \def (CHead c TMP_56 w) in (let TMP_58 \def (S O) in (let TMP_59 \def 
-(lift TMP_58 O u2) in (let TMP_60 \def (ty3_correct g TMP_57 t TMP_59 H0) in 
-(ex_ind T TMP_5 P TMP_55 TMP_60))))))))))))))))).
+u2))).(\lambda (H1: (pc3 c u1 u2)).(\lambda (P: Prop).(ex_ind T (\lambda (t0: 
+T).(ty3 g (CHead c (Bind Abst) w) (lift (S O) O u2) t0)) P (\lambda (x: 
+T).(\lambda (H2: (ty3 g (CHead c (Bind Abst) w) (lift (S O) O u2) x)).(let H3 
+\def (ty3_gen_lift g (CHead c (Bind Abst) w) u2 x (S O) O H2 c (drop_drop 
+(Bind Abst) O c c (drop_refl c) w)) in (ex2_ind T (\lambda (t2: T).(pc3 
+(CHead c (Bind Abst) w) (lift (S O) O t2) x)) (\lambda (t2: T).(ty3 g c u2 
+t2)) P (\lambda (x0: T).(\lambda (_: (pc3 (CHead c (Bind Abst) w) (lift (S O) 
+O x0) x)).(\lambda (H5: (ty3 g c u2 x0)).(let H_y \def (ty3_conv g c u2 x0 H5 
+(THead (Bind Abst) w t) u1 H H1) in (let H_x \def (ty3_arity g (CHead c (Bind 
+Abst) w) t (lift (S O) O u2) H0) in (let H6 \def H_x in (ex2_ind A (\lambda 
+(a1: A).(arity g (CHead c (Bind Abst) w) t a1)) (\lambda (a1: A).(arity g 
+(CHead c (Bind Abst) w) (lift (S O) O u2) (asucc g a1))) P (\lambda (x1: 
+A).(\lambda (H7: (arity g (CHead c (Bind Abst) w) t x1)).(\lambda (H8: (arity 
+g (CHead c (Bind Abst) w) (lift (S O) O u2) (asucc g x1))).(let H_x0 \def 
+(ty3_arity g c (THead (Bind Abst) w t) u2 H_y) in (let H9 \def H_x0 in 
+(ex2_ind A (\lambda (a1: A).(arity g c (THead (Bind Abst) w t) a1)) (\lambda 
+(a1: A).(arity g c u2 (asucc g a1))) P (\lambda (x2: A).(\lambda (H10: (arity 
+g c (THead (Bind Abst) w t) x2)).(\lambda (H11: (arity g c u2 (asucc g 
+x2))).(arity_repellent g c w t x1 H7 x2 H10 (asucc_inj g x1 x2 (arity_mono g 
+c u2 (asucc g x1) (arity_gen_lift g (CHead c (Bind Abst) w) u2 (asucc g x1) 
+(S O) O H8 c (drop_drop (Bind Abst) O c c (drop_refl c) w)) (asucc g x2) 
+H11)) P)))) H9)))))) H6))))))) H3)))) (ty3_correct g (CHead c (Bind Abst) w) 
+t (lift (S O) O u2) H0))))))))))).
 
 theorem ty3_acyclic:
  \forall (g: G).(\forall (c: C).(\forall (t: T).(\forall (u: T).((ty3 g c t 
@@ -121,12 +87,10 @@ u) \to ((pc3 c u t) \to (\forall (P: Prop).P))))))
  \lambda (g: G).(\lambda (c: C).(\lambda (t: T).(\lambda (u: T).(\lambda (H: 
 (ty3 g c t u)).(\lambda (H0: (pc3 c u t)).(\lambda (P: Prop).(let H_y \def 
 (ty3_conv g c t u H t u H H0) in (let H_x \def (ty3_arity g c t t H_y) in 
-(let H1 \def H_x in (let TMP_1 \def (\lambda (a1: A).(arity g c t a1)) in 
-(let TMP_3 \def (\lambda (a1: A).(let TMP_2 \def (asucc g a1) in (arity g c t 
-TMP_2))) in (let TMP_6 \def (\lambda (x: A).(\lambda (H2: (arity g c t 
-x)).(\lambda (H3: (arity g c t (asucc g x))).(let TMP_4 \def (asucc g x) in 
-(let TMP_5 \def (arity_mono g c t TMP_4 H3 x H2) in (leq_asucc_false g x 
-TMP_5 P)))))) in (ex2_ind A TMP_1 TMP_3 P TMP_6 H1))))))))))))).
+(let H1 \def H_x in (ex2_ind A (\lambda (a1: A).(arity g c t a1)) (\lambda 
+(a1: A).(arity g c t (asucc g a1))) P (\lambda (x: A).(\lambda (H2: (arity g 
+c t x)).(\lambda (H3: (arity g c t (asucc g x))).(leq_asucc_false g x 
+(arity_mono g c t (asucc g x) H3 x H2) P)))) H1)))))))))).
 
 theorem ty3_sn3:
  \forall (g: G).(\forall (c: C).(\forall (t: T).(\forall (u: T).((ty3 g c t 
@@ -134,10 +98,8 @@ u) \to (sn3 c t)))))
 \def
  \lambda (g: G).(\lambda (c: C).(\lambda (t: T).(\lambda (u: T).(\lambda (H: 
 (ty3 g c t u)).(let H_x \def (ty3_arity g c t u H) in (let H0 \def H_x in 
-(let TMP_1 \def (\lambda (a1: A).(arity g c t a1)) in (let TMP_3 \def 
-(\lambda (a1: A).(let TMP_2 \def (asucc g a1) in (arity g c u TMP_2))) in 
-(let TMP_4 \def (sn3 c t) in (let TMP_6 \def (\lambda (x: A).(\lambda (H1: 
-(arity g c t x)).(\lambda (_: (arity g c u (asucc g x))).(let TMP_5 \def 
-(sc3_arity g c t x H1) in (sc3_sn3 g x c t TMP_5))))) in (ex2_ind A TMP_1 
-TMP_3 TMP_4 TMP_6 H0))))))))))).
+(ex2_ind A (\lambda (a1: A).(arity g c t a1)) (\lambda (a1: A).(arity g c u 
+(asucc g a1))) (sn3 c t) (\lambda (x: A).(\lambda (H1: (arity g c t 
+x)).(\lambda (_: (arity g c u (asucc g x))).(sc3_sn3 g x c t (sc3_arity g c t 
+x H1))))) H0))))))).
 
index d41982a2a31ac00838e5c492a4f6ef5f229ad940..c1581ca573bd58120f1c3cb4ae582cfe7e658506 100644 (file)
@@ -29,118 +29,62 @@ T).(\lambda (t: T).(pc3 c (THead (Flat Appl) w (THead (Bind Abst) u t)) x)))
 T).(nf2 c (THead (Bind Abst) u t))))))))))
 \def
  \lambda (g: G).(\lambda (c: C).(\lambda (w: T).(\lambda (v: T).(\lambda (x: 
-T).(\lambda (H: (ty3 g c (THead (Flat Appl) w v) x)).(let TMP_5 \def (\lambda 
-(u: T).(\lambda (t: T).(let TMP_1 \def (Flat Appl) in (let TMP_2 \def (Bind 
-Abst) in (let TMP_3 \def (THead TMP_2 u t) in (let TMP_4 \def (THead TMP_1 w 
-TMP_3) in (pc3 c TMP_4 x))))))) in (let TMP_8 \def (\lambda (u: T).(\lambda 
-(t: T).(let TMP_6 \def (Bind Abst) in (let TMP_7 \def (THead TMP_6 u t) in 
-(ty3 g c v TMP_7))))) in (let TMP_9 \def (\lambda (u: T).(\lambda (_: T).(ty3 
-g c w u))) in (let TMP_14 \def (\lambda (u: T).(\lambda (t: T).(let TMP_10 
-\def (Flat Appl) in (let TMP_11 \def (Bind Abst) in (let TMP_12 \def (THead 
-TMP_11 u t) in (let TMP_13 \def (THead TMP_10 w TMP_12) in (pc3 c TMP_13 
-x))))))) in (let TMP_17 \def (\lambda (u: T).(\lambda (t: T).(let TMP_15 \def 
-(Bind Abst) in (let TMP_16 \def (THead TMP_15 u t) in (ty3 g c v TMP_16))))) 
-in (let TMP_18 \def (\lambda (u: T).(\lambda (_: T).(ty3 g c w u))) in (let 
-TMP_21 \def (\lambda (u: T).(\lambda (t: T).(let TMP_19 \def (Bind Abst) in 
-(let TMP_20 \def (THead TMP_19 u t) in (nf2 c TMP_20))))) in (let TMP_22 \def 
-(ex4_2 T T TMP_14 TMP_17 TMP_18 TMP_21) in (let TMP_149 \def (\lambda (x0: 
-T).(\lambda (x1: T).(\lambda (H0: (pc3 c (THead (Flat Appl) w (THead (Bind 
-Abst) x0 x1)) x)).(\lambda (H1: (ty3 g c v (THead (Bind Abst) x0 
-x1))).(\lambda (H2: (ty3 g c w x0)).(let TMP_23 \def (Bind Abst) in (let 
-TMP_24 \def (THead TMP_23 x0 x1) in (let H_x \def (ty3_correct g c v TMP_24 
-H1) in (let H3 \def H_x in (let TMP_27 \def (\lambda (t: T).(let TMP_25 \def 
-(Bind Abst) in (let TMP_26 \def (THead TMP_25 x0 x1) in (ty3 g c TMP_26 t)))) 
-in (let TMP_32 \def (\lambda (u: T).(\lambda (t: T).(let TMP_28 \def (Flat 
-Appl) in (let TMP_29 \def (Bind Abst) in (let TMP_30 \def (THead TMP_29 u t) 
-in (let TMP_31 \def (THead TMP_28 w TMP_30) in (pc3 c TMP_31 x))))))) in (let 
-TMP_35 \def (\lambda (u: T).(\lambda (t: T).(let TMP_33 \def (Bind Abst) in 
-(let TMP_34 \def (THead TMP_33 u t) in (ty3 g c v TMP_34))))) in (let TMP_36 
-\def (\lambda (u: T).(\lambda (_: T).(ty3 g c w u))) in (let TMP_39 \def 
-(\lambda (u: T).(\lambda (t: T).(let TMP_37 \def (Bind Abst) in (let TMP_38 
-\def (THead TMP_37 u t) in (nf2 c TMP_38))))) in (let TMP_40 \def (ex4_2 T T 
-TMP_32 TMP_35 TMP_36 TMP_39) in (let TMP_148 \def (\lambda (x2: T).(\lambda 
-(H4: (ty3 g c (THead (Bind Abst) x0 x1) x2)).(let H_x0 \def (ty3_correct g c 
-w x0 H2) in (let H5 \def H_x0 in (let TMP_41 \def (\lambda (t: T).(ty3 g c x0 
-t)) in (let TMP_46 \def (\lambda (u: T).(\lambda (t: T).(let TMP_42 \def 
-(Flat Appl) in (let TMP_43 \def (Bind Abst) in (let TMP_44 \def (THead TMP_43 
-u t) in (let TMP_45 \def (THead TMP_42 w TMP_44) in (pc3 c TMP_45 x))))))) in 
-(let TMP_49 \def (\lambda (u: T).(\lambda (t: T).(let TMP_47 \def (Bind Abst) 
-in (let TMP_48 \def (THead TMP_47 u t) in (ty3 g c v TMP_48))))) in (let 
-TMP_50 \def (\lambda (u: T).(\lambda (_: T).(ty3 g c w u))) in (let TMP_53 
-\def (\lambda (u: T).(\lambda (t: T).(let TMP_51 \def (Bind Abst) in (let 
-TMP_52 \def (THead TMP_51 u t) in (nf2 c TMP_52))))) in (let TMP_54 \def 
-(ex4_2 T T TMP_46 TMP_49 TMP_50 TMP_53) in (let TMP_147 \def (\lambda (x3: 
-T).(\lambda (H6: (ty3 g c x0 x3)).(let TMP_55 \def (Bind Abst) in (let TMP_56 
-\def (THead TMP_55 x0 x1) in (let H7 \def (ty3_sn3 g c TMP_56 x2 H4) in (let 
-TMP_57 \def (Bind Abst) in (let TMP_58 \def (THead TMP_57 x0 x1) in (let H_x1 
-\def (nf2_sn3 c TMP_58 H7) in (let H8 \def H_x1 in (let TMP_61 \def (\lambda 
-(u: T).(let TMP_59 \def (Bind Abst) in (let TMP_60 \def (THead TMP_59 x0 x1) 
-in (pr3 c TMP_60 u)))) in (let TMP_62 \def (\lambda (u: T).(nf2 c u)) in (let 
-TMP_67 \def (\lambda (u: T).(\lambda (t: T).(let TMP_63 \def (Flat Appl) in 
-(let TMP_64 \def (Bind Abst) in (let TMP_65 \def (THead TMP_64 u t) in (let 
-TMP_66 \def (THead TMP_63 w TMP_65) in (pc3 c TMP_66 x))))))) in (let TMP_70 
-\def (\lambda (u: T).(\lambda (t: T).(let TMP_68 \def (Bind Abst) in (let 
-TMP_69 \def (THead TMP_68 u t) in (ty3 g c v TMP_69))))) in (let TMP_71 \def 
-(\lambda (u: T).(\lambda (_: T).(ty3 g c w u))) in (let TMP_74 \def (\lambda 
-(u: T).(\lambda (t: T).(let TMP_72 \def (Bind Abst) in (let TMP_73 \def 
-(THead TMP_72 u t) in (nf2 c TMP_73))))) in (let TMP_75 \def (ex4_2 T T 
-TMP_67 TMP_70 TMP_71 TMP_74) in (let TMP_146 \def (\lambda (x4: T).(\lambda 
-(H9: (pr3 c (THead (Bind Abst) x0 x1) x4)).(\lambda (H10: (nf2 c x4)).(let 
-H11 \def (pr3_gen_abst c x0 x1 x4 H9) in (let TMP_78 \def (\lambda (u2: 
-T).(\lambda (t2: T).(let TMP_76 \def (Bind Abst) in (let TMP_77 \def (THead 
-TMP_76 u2 t2) in (eq T x4 TMP_77))))) in (let TMP_79 \def (\lambda (u2: 
-T).(\lambda (_: T).(pr3 c x0 u2))) in (let TMP_82 \def (\lambda (_: 
-T).(\lambda (t2: T).(\forall (b: B).(\forall (u: T).(let TMP_80 \def (Bind b) 
-in (let TMP_81 \def (CHead c TMP_80 u) in (pr3 TMP_81 x1 t2))))))) in (let 
-TMP_87 \def (\lambda (u: T).(\lambda (t: T).(let TMP_83 \def (Flat Appl) in 
-(let TMP_84 \def (Bind Abst) in (let TMP_85 \def (THead TMP_84 u t) in (let 
-TMP_86 \def (THead TMP_83 w TMP_85) in (pc3 c TMP_86 x))))))) in (let TMP_90 
-\def (\lambda (u: T).(\lambda (t: T).(let TMP_88 \def (Bind Abst) in (let 
-TMP_89 \def (THead TMP_88 u t) in (ty3 g c v TMP_89))))) in (let TMP_91 \def 
-(\lambda (u: T).(\lambda (_: T).(ty3 g c w u))) in (let TMP_94 \def (\lambda 
-(u: T).(\lambda (t: T).(let TMP_92 \def (Bind Abst) in (let TMP_93 \def 
-(THead TMP_92 u t) in (nf2 c TMP_93))))) in (let TMP_95 \def (ex4_2 T T 
-TMP_87 TMP_90 TMP_91 TMP_94) in (let TMP_145 \def (\lambda (x5: T).(\lambda 
-(x6: T).(\lambda (H12: (eq T x4 (THead (Bind Abst) x5 x6))).(\lambda (H13: 
-(pr3 c x0 x5)).(\lambda (H14: ((\forall (b: B).(\forall (u: T).(pr3 (CHead c 
-(Bind b) u) x1 x6))))).(let TMP_96 \def (\lambda (t: T).(nf2 c t)) in (let 
-TMP_97 \def (Bind Abst) in (let TMP_98 \def (THead TMP_97 x5 x6) in (let H15 
-\def (eq_ind T x4 TMP_96 H10 TMP_98 H12) in (let TMP_99 \def (Bind Abst) in 
-(let TMP_100 \def (H14 Abst x5) in (let H16 \def (pr3_head_12 c x0 x5 H13 
-TMP_99 x1 x6 TMP_100) in (let TMP_105 \def (\lambda (u: T).(\lambda (t: 
-T).(let TMP_101 \def (Flat Appl) in (let TMP_102 \def (Bind Abst) in (let 
-TMP_103 \def (THead TMP_102 u t) in (let TMP_104 \def (THead TMP_101 w 
-TMP_103) in (pc3 c TMP_104 x))))))) in (let TMP_108 \def (\lambda (u: 
-T).(\lambda (t: T).(let TMP_106 \def (Bind Abst) in (let TMP_107 \def (THead 
-TMP_106 u t) in (ty3 g c v TMP_107))))) in (let TMP_109 \def (\lambda (u: 
-T).(\lambda (_: T).(ty3 g c w u))) in (let TMP_112 \def (\lambda (u: 
-T).(\lambda (t: T).(let TMP_110 \def (Bind Abst) in (let TMP_111 \def (THead 
-TMP_110 u t) in (nf2 c TMP_111))))) in (let TMP_113 \def (Flat Appl) in (let 
-TMP_114 \def (Bind Abst) in (let TMP_115 \def (THead TMP_114 x0 x1) in (let 
-TMP_116 \def (THead TMP_113 w TMP_115) in (let TMP_117 \def (Flat Appl) in 
-(let TMP_118 \def (Bind Abst) in (let TMP_119 \def (THead TMP_118 x5 x6) in 
-(let TMP_120 \def (THead TMP_117 w TMP_119) in (let TMP_121 \def (Bind Abst) 
-in (let TMP_122 \def (THead TMP_121 x0 x1) in (let TMP_123 \def (Bind Abst) 
-in (let TMP_124 \def (THead TMP_123 x5 x6) in (let TMP_125 \def (pr3_thin_dx 
-c TMP_122 TMP_124 H16 w Appl) in (let TMP_126 \def (pc3_pr3_conf c TMP_116 x 
-H0 TMP_120 TMP_125) in (let TMP_127 \def (Bind Abst) in (let TMP_128 \def 
-(THead TMP_127 x5 x6) in (let TMP_129 \def (Bind Abst) in (let TMP_130 \def 
-(THead TMP_129 x0 x1) in (let TMP_131 \def (Bind Abst) in (let TMP_132 \def 
-(THead TMP_131 x5 x6) in (let TMP_133 \def (ty3_sred_pr3 c TMP_130 TMP_132 
-H16 g x2 H4) in (let TMP_134 \def (Bind Abst) in (let TMP_135 \def (THead 
-TMP_134 x0 x1) in (let TMP_136 \def (Bind Abst) in (let TMP_137 \def (THead 
-TMP_136 x0 x1) in (let TMP_138 \def (Bind Abst) in (let TMP_139 \def (THead 
-TMP_138 x5 x6) in (let TMP_140 \def (pc3_pr3_r c TMP_137 TMP_139 H16) in (let 
-TMP_141 \def (ty3_conv g c TMP_128 x2 TMP_133 v TMP_135 H1 TMP_140) in (let 
-TMP_142 \def (ty3_sred_pr3 c x0 x5 H13 g x3 H6) in (let TMP_143 \def 
-(pc3_pr3_r c x0 x5 H13) in (let TMP_144 \def (ty3_conv g c x5 x3 TMP_142 w x0 
-H2 TMP_143) in (ex4_2_intro T T TMP_105 TMP_108 TMP_109 TMP_112 x5 x6 TMP_126 
-TMP_141 TMP_144 H15))))))))))))))))))))))))))))))))))))))))))))))))) in 
-(ex3_2_ind T T TMP_78 TMP_79 TMP_82 TMP_95 TMP_145 H11)))))))))))))) in 
-(ex2_ind T TMP_61 TMP_62 TMP_75 TMP_146 H8)))))))))))))))))) in (ex_ind T 
-TMP_41 TMP_54 TMP_147 H5)))))))))))) in (ex_ind T TMP_27 TMP_40 TMP_148 
-H3))))))))))))))))) in (let TMP_150 \def (ty3_gen_appl g c w v x H) in 
-(ex3_2_ind T T TMP_5 TMP_8 TMP_9 TMP_22 TMP_149 TMP_150)))))))))))))))).
+T).(\lambda (H: (ty3 g c (THead (Flat Appl) w v) x)).(ex3_2_ind T T (\lambda 
+(u: T).(\lambda (t: T).(pc3 c (THead (Flat Appl) w (THead (Bind Abst) u t)) 
+x))) (\lambda (u: T).(\lambda (t: T).(ty3 g c v (THead (Bind Abst) u t)))) 
+(\lambda (u: T).(\lambda (_: T).(ty3 g c w u))) (ex4_2 T T (\lambda (u: 
+T).(\lambda (t: T).(pc3 c (THead (Flat Appl) w (THead (Bind Abst) u t)) x))) 
+(\lambda (u: T).(\lambda (t: T).(ty3 g c v (THead (Bind Abst) u t)))) 
+(\lambda (u: T).(\lambda (_: T).(ty3 g c w u))) (\lambda (u: T).(\lambda (t: 
+T).(nf2 c (THead (Bind Abst) u t))))) (\lambda (x0: T).(\lambda (x1: 
+T).(\lambda (H0: (pc3 c (THead (Flat Appl) w (THead (Bind Abst) x0 x1)) 
+x)).(\lambda (H1: (ty3 g c v (THead (Bind Abst) x0 x1))).(\lambda (H2: (ty3 g 
+c w x0)).(let H_x \def (ty3_correct g c v (THead (Bind Abst) x0 x1) H1) in 
+(let H3 \def H_x in (ex_ind T (\lambda (t: T).(ty3 g c (THead (Bind Abst) x0 
+x1) t)) (ex4_2 T T (\lambda (u: T).(\lambda (t: T).(pc3 c (THead (Flat Appl) 
+w (THead (Bind Abst) u t)) x))) (\lambda (u: T).(\lambda (t: T).(ty3 g c v 
+(THead (Bind Abst) u t)))) (\lambda (u: T).(\lambda (_: T).(ty3 g c w u))) 
+(\lambda (u: T).(\lambda (t: T).(nf2 c (THead (Bind Abst) u t))))) (\lambda 
+(x2: T).(\lambda (H4: (ty3 g c (THead (Bind Abst) x0 x1) x2)).(let H_x0 \def 
+(ty3_correct g c w x0 H2) in (let H5 \def H_x0 in (ex_ind T (\lambda (t: 
+T).(ty3 g c x0 t)) (ex4_2 T T (\lambda (u: T).(\lambda (t: T).(pc3 c (THead 
+(Flat Appl) w (THead (Bind Abst) u t)) x))) (\lambda (u: T).(\lambda (t: 
+T).(ty3 g c v (THead (Bind Abst) u t)))) (\lambda (u: T).(\lambda (_: T).(ty3 
+g c w u))) (\lambda (u: T).(\lambda (t: T).(nf2 c (THead (Bind Abst) u t))))) 
+(\lambda (x3: T).(\lambda (H6: (ty3 g c x0 x3)).(let H7 \def (ty3_sn3 g c 
+(THead (Bind Abst) x0 x1) x2 H4) in (let H_x1 \def (nf2_sn3 c (THead (Bind 
+Abst) x0 x1) H7) in (let H8 \def H_x1 in (ex2_ind T (\lambda (u: T).(pr3 c 
+(THead (Bind Abst) x0 x1) u)) (\lambda (u: T).(nf2 c u)) (ex4_2 T T (\lambda 
+(u: T).(\lambda (t: T).(pc3 c (THead (Flat Appl) w (THead (Bind Abst) u t)) 
+x))) (\lambda (u: T).(\lambda (t: T).(ty3 g c v (THead (Bind Abst) u t)))) 
+(\lambda (u: T).(\lambda (_: T).(ty3 g c w u))) (\lambda (u: T).(\lambda (t: 
+T).(nf2 c (THead (Bind Abst) u t))))) (\lambda (x4: T).(\lambda (H9: (pr3 c 
+(THead (Bind Abst) x0 x1) x4)).(\lambda (H10: (nf2 c x4)).(let H11 \def 
+(pr3_gen_abst c x0 x1 x4 H9) in (ex3_2_ind T T (\lambda (u2: T).(\lambda (t2: 
+T).(eq T x4 (THead (Bind Abst) u2 t2)))) (\lambda (u2: T).(\lambda (_: 
+T).(pr3 c x0 u2))) (\lambda (_: T).(\lambda (t2: T).(\forall (b: B).(\forall 
+(u: T).(pr3 (CHead c (Bind b) u) x1 t2))))) (ex4_2 T T (\lambda (u: 
+T).(\lambda (t: T).(pc3 c (THead (Flat Appl) w (THead (Bind Abst) u t)) x))) 
+(\lambda (u: T).(\lambda (t: T).(ty3 g c v (THead (Bind Abst) u t)))) 
+(\lambda (u: T).(\lambda (_: T).(ty3 g c w u))) (\lambda (u: T).(\lambda (t: 
+T).(nf2 c (THead (Bind Abst) u t))))) (\lambda (x5: T).(\lambda (x6: 
+T).(\lambda (H12: (eq T x4 (THead (Bind Abst) x5 x6))).(\lambda (H13: (pr3 c 
+x0 x5)).(\lambda (H14: ((\forall (b: B).(\forall (u: T).(pr3 (CHead c (Bind 
+b) u) x1 x6))))).(let H15 \def (eq_ind T x4 (\lambda (t: T).(nf2 c t)) H10 
+(THead (Bind Abst) x5 x6) H12) in (let H16 \def (pr3_head_12 c x0 x5 H13 
+(Bind Abst) x1 x6 (H14 Abst x5)) in (ex4_2_intro T T (\lambda (u: T).(\lambda 
+(t: T).(pc3 c (THead (Flat Appl) w (THead (Bind Abst) u t)) x))) (\lambda (u: 
+T).(\lambda (t: T).(ty3 g c v (THead (Bind Abst) u t)))) (\lambda (u: 
+T).(\lambda (_: T).(ty3 g c w u))) (\lambda (u: T).(\lambda (t: T).(nf2 c 
+(THead (Bind Abst) u t)))) x5 x6 (pc3_pr3_conf c (THead (Flat Appl) w (THead 
+(Bind Abst) x0 x1)) x H0 (THead (Flat Appl) w (THead (Bind Abst) x5 x6)) 
+(pr3_thin_dx c (THead (Bind Abst) x0 x1) (THead (Bind Abst) x5 x6) H16 w 
+Appl)) (ty3_conv g c (THead (Bind Abst) x5 x6) x2 (ty3_sred_pr3 c (THead 
+(Bind Abst) x0 x1) (THead (Bind Abst) x5 x6) H16 g x2 H4) v (THead (Bind 
+Abst) x0 x1) H1 (pc3_pr3_r c (THead (Bind Abst) x0 x1) (THead (Bind Abst) x5 
+x6) H16)) (ty3_conv g c x5 x3 (ty3_sred_pr3 c x0 x5 H13 g x3 H6) w x0 H2 
+(pc3_pr3_r c x0 x5 H13)) H15)))))))) H11))))) H8)))))) H5))))) H3)))))))) 
+(ty3_gen_appl g c w v x H))))))).
 
 theorem ty3_inv_lref_nf2_pc3:
  \forall (g: G).(\forall (c: C).(\forall (u1: T).(\forall (i: nat).((ty3 g c 
@@ -148,151 +92,108 @@ theorem ty3_inv_lref_nf2_pc3:
 ((pc3 c u1 u2) \to (ex T (\lambda (u: T).(eq T u2 (lift (S i) O u))))))))))))
 \def
  \lambda (g: G).(\lambda (c: C).(\lambda (u1: T).(\lambda (i: nat).(\lambda 
-(H: (ty3 g c (TLRef i) u1)).(let TMP_1 \def (TLRef i) in (let TMP_2 \def 
-(\lambda (t: T).(ty3 g c t u1)) in (let TMP_6 \def (\lambda (t: T).((nf2 c t) 
-\to (\forall (u2: T).((nf2 c u2) \to ((pc3 c u1 u2) \to (let TMP_5 \def 
-(\lambda (u: T).(let TMP_3 \def (S i) in (let TMP_4 \def (lift TMP_3 O u) in 
-(eq T u2 TMP_4)))) in (ex T TMP_5))))))) in (let TMP_115 \def (\lambda (y: 
-T).(\lambda (H0: (ty3 g c y u1)).(let TMP_10 \def (\lambda (c0: C).(\lambda 
-(t: T).(\lambda (t0: T).((eq T t (TLRef i)) \to ((nf2 c0 t) \to (\forall (u2: 
-T).((nf2 c0 u2) \to ((pc3 c0 t0 u2) \to (let TMP_9 \def (\lambda (u: T).(let 
-TMP_7 \def (S i) in (let TMP_8 \def (lift TMP_7 O u) in (eq T u2 TMP_8)))) in 
-(ex T TMP_9)))))))))) in (let TMP_23 \def (\lambda (c0: C).(\lambda (t2: 
-T).(\lambda (t: T).(\lambda (_: (ty3 g c0 t2 t)).(\lambda (_: (((eq T t2 
-(TLRef i)) \to ((nf2 c0 t2) \to (\forall (u2: T).((nf2 c0 u2) \to ((pc3 c0 t 
-u2) \to (ex T (\lambda (u: T).(eq T u2 (lift (S i) O u))))))))))).(\lambda 
-(u: T).(\lambda (t1: T).(\lambda (H3: (ty3 g c0 u t1)).(\lambda (H4: (((eq T 
-u (TLRef i)) \to ((nf2 c0 u) \to (\forall (u2: T).((nf2 c0 u2) \to ((pc3 c0 
-t1 u2) \to (ex T (\lambda (u0: T).(eq T u2 (lift (S i) O 
-u0))))))))))).(\lambda (H5: (pc3 c0 t1 t2)).(\lambda (H6: (eq T u (TLRef 
-i))).(\lambda (H7: (nf2 c0 u)).(\lambda (u2: T).(\lambda (H8: (nf2 c0 
-u2)).(\lambda (H9: (pc3 c0 t2 u2)).(let TMP_11 \def (\lambda (t0: T).(nf2 c0 
-t0)) in (let TMP_12 \def (TLRef i) in (let H10 \def (eq_ind T u TMP_11 H7 
-TMP_12 H6) in (let TMP_16 \def (\lambda (t0: T).((eq T t0 (TLRef i)) \to 
-((nf2 c0 t0) \to (\forall (u3: T).((nf2 c0 u3) \to ((pc3 c0 t1 u3) \to (let 
-TMP_15 \def (\lambda (u0: T).(let TMP_13 \def (S i) in (let TMP_14 \def (lift 
-TMP_13 O u0) in (eq T u3 TMP_14)))) in (ex T TMP_15)))))))) in (let TMP_17 
-\def (TLRef i) in (let H11 \def (eq_ind T u TMP_16 H4 TMP_17 H6) in (let 
-TMP_18 \def (\lambda (t0: T).(ty3 g c0 t0 t1)) in (let TMP_19 \def (TLRef i) 
-in (let H12 \def (eq_ind T u TMP_18 H3 TMP_19 H6) in (let TMP_20 \def (TLRef 
-i) in (let TMP_21 \def (refl_equal T TMP_20) in (let H_y \def (H11 TMP_21 H10 
-u2 H8) in (let TMP_22 \def (pc3_t t2 c0 t1 H5 u2 H9) in (H_y 
-TMP_22))))))))))))))))))))))))))))) in (let TMP_31 \def (\lambda (c0: 
-C).(\lambda (m: nat).(\lambda (H1: (eq T (TSort m) (TLRef i))).(\lambda (_: 
-(nf2 c0 (TSort m))).(\lambda (u2: T).(\lambda (_: (nf2 c0 u2)).(\lambda (_: 
-(pc3 c0 (TSort (next g m)) u2)).(let TMP_24 \def (TSort m) in (let TMP_25 
-\def (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow True | (TLRef _) 
-\Rightarrow False | (THead _ _ _) \Rightarrow False])) in (let TMP_26 \def 
-(TLRef i) in (let H5 \def (eq_ind T TMP_24 TMP_25 I TMP_26 H1) in (let TMP_29 
-\def (\lambda (u: T).(let TMP_27 \def (S i) in (let TMP_28 \def (lift TMP_27 
-O u) in (eq T u2 TMP_28)))) in (let TMP_30 \def (ex T TMP_29) in (False_ind 
-TMP_30 H5)))))))))))))) in (let TMP_47 \def (\lambda (n: nat).(\lambda (c0: 
-C).(\lambda (d: C).(\lambda (u: T).(\lambda (H1: (getl n c0 (CHead d (Bind 
-Abbr) u))).(\lambda (t: T).(\lambda (_: (ty3 g d u t)).(\lambda (_: (((eq T u 
+(H: (ty3 g c (TLRef i) u1)).(insert_eq T (TLRef i) (\lambda (t: T).(ty3 g c t 
+u1)) (\lambda (t: T).((nf2 c t) \to (\forall (u2: T).((nf2 c u2) \to ((pc3 c 
+u1 u2) \to (ex T (\lambda (u: T).(eq T u2 (lift (S i) O u))))))))) (\lambda 
+(y: T).(\lambda (H0: (ty3 g c y u1)).(ty3_ind g (\lambda (c0: C).(\lambda (t: 
+T).(\lambda (t0: T).((eq T t (TLRef i)) \to ((nf2 c0 t) \to (\forall (u2: 
+T).((nf2 c0 u2) \to ((pc3 c0 t0 u2) \to (ex T (\lambda (u: T).(eq T u2 (lift 
+(S i) O u)))))))))))) (\lambda (c0: C).(\lambda (t2: T).(\lambda (t: 
+T).(\lambda (_: (ty3 g c0 t2 t)).(\lambda (_: (((eq T t2 (TLRef i)) \to ((nf2 
+c0 t2) \to (\forall (u2: T).((nf2 c0 u2) \to ((pc3 c0 t u2) \to (ex T 
+(\lambda (u: T).(eq T u2 (lift (S i) O u))))))))))).(\lambda (u: T).(\lambda 
+(t1: T).(\lambda (H3: (ty3 g c0 u t1)).(\lambda (H4: (((eq T u (TLRef i)) \to 
+((nf2 c0 u) \to (\forall (u2: T).((nf2 c0 u2) \to ((pc3 c0 t1 u2) \to (ex T 
+(\lambda (u0: T).(eq T u2 (lift (S i) O u0))))))))))).(\lambda (H5: (pc3 c0 
+t1 t2)).(\lambda (H6: (eq T u (TLRef i))).(\lambda (H7: (nf2 c0 u)).(\lambda 
+(u2: T).(\lambda (H8: (nf2 c0 u2)).(\lambda (H9: (pc3 c0 t2 u2)).(let H10 
+\def (eq_ind T u (\lambda (t0: T).(nf2 c0 t0)) H7 (TLRef i) H6) in (let H11 
+\def (eq_ind T u (\lambda (t0: T).((eq T t0 (TLRef i)) \to ((nf2 c0 t0) \to 
+(\forall (u3: T).((nf2 c0 u3) \to ((pc3 c0 t1 u3) \to (ex T (\lambda (u0: 
+T).(eq T u3 (lift (S i) O u0)))))))))) H4 (TLRef i) H6) in (let H12 \def 
+(eq_ind T u (\lambda (t0: T).(ty3 g c0 t0 t1)) H3 (TLRef i) H6) in (let H_y 
+\def (H11 (refl_equal T (TLRef i)) H10 u2 H8) in (H_y (pc3_t t2 c0 t1 H5 u2 
+H9))))))))))))))))))))) (\lambda (c0: C).(\lambda (m: nat).(\lambda (H1: (eq 
+T (TSort m) (TLRef i))).(\lambda (_: (nf2 c0 (TSort m))).(\lambda (u2: 
+T).(\lambda (_: (nf2 c0 u2)).(\lambda (_: (pc3 c0 (TSort (next g m)) 
+u2)).(let H5 \def (eq_ind T (TSort m) (\lambda (ee: T).(match ee with [(TSort 
+_) \Rightarrow True | (TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow 
+False])) I (TLRef i) H1) in (False_ind (ex T (\lambda (u: T).(eq T u2 (lift 
+(S i) O u)))) H5))))))))) (\lambda (n: nat).(\lambda (c0: C).(\lambda (d: 
+C).(\lambda (u: T).(\lambda (H1: (getl n c0 (CHead d (Bind Abbr) 
+u))).(\lambda (t: T).(\lambda (_: (ty3 g d u t)).(\lambda (_: (((eq T u 
 (TLRef i)) \to ((nf2 d u) \to (\forall (u2: T).((nf2 d u2) \to ((pc3 d t u2) 
 \to (ex T (\lambda (u0: T).(eq T u2 (lift (S i) O u0))))))))))).(\lambda (H4: 
 (eq T (TLRef n) (TLRef i))).(\lambda (H5: (nf2 c0 (TLRef n))).(\lambda (u2: 
 T).(\lambda (_: (nf2 c0 u2)).(\lambda (H7: (pc3 c0 (lift (S n) O t) u2)).(let 
-TMP_32 \def (\lambda (e: T).(match e with [(TSort _) \Rightarrow n | (TLRef 
-n0) \Rightarrow n0 | (THead _ _ _) \Rightarrow n])) in (let TMP_33 \def 
-(TLRef n) in (let TMP_34 \def (TLRef i) in (let H8 \def (f_equal T nat TMP_32 
-TMP_33 TMP_34 H4) in (let TMP_37 \def (\lambda (n0: nat).(let TMP_35 \def (S 
-n0) in (let TMP_36 \def (lift TMP_35 O t) in (pc3 c0 TMP_36 u2)))) in (let H9 
-\def (eq_ind nat n TMP_37 H7 i H8) in (let TMP_39 \def (\lambda (n0: 
-nat).(let TMP_38 \def (TLRef n0) in (nf2 c0 TMP_38))) in (let H10 \def 
-(eq_ind nat n TMP_39 H5 i H8) in (let TMP_42 \def (\lambda (n0: nat).(let 
-TMP_40 \def (Bind Abbr) in (let TMP_41 \def (CHead d TMP_40 u) in (getl n0 c0 
-TMP_41)))) in (let H11 \def (eq_ind nat n TMP_42 H1 i H8) in (let TMP_45 \def 
-(\lambda (u0: T).(let TMP_43 \def (S i) in (let TMP_44 \def (lift TMP_43 O 
-u0) in (eq T u2 TMP_44)))) in (let TMP_46 \def (ex T TMP_45) in (nf2_gen_lref 
-c0 d u i H11 H10 TMP_46)))))))))))))))))))))))))) in (let TMP_87 \def 
+H8 \def (f_equal T nat (\lambda (e: T).(match e with [(TSort _) \Rightarrow n 
+| (TLRef n0) \Rightarrow n0 | (THead _ _ _) \Rightarrow n])) (TLRef n) (TLRef 
+i) H4) in (let H9 \def (eq_ind nat n (\lambda (n0: nat).(pc3 c0 (lift (S n0) 
+O t) u2)) H7 i H8) in (let H10 \def (eq_ind nat n (\lambda (n0: nat).(nf2 c0 
+(TLRef n0))) H5 i H8) in (let H11 \def (eq_ind nat n (\lambda (n0: nat).(getl 
+n0 c0 (CHead d (Bind Abbr) u))) H1 i H8) in (nf2_gen_lref c0 d u i H11 H10 
+(ex T (\lambda (u0: T).(eq T u2 (lift (S i) O u0)))))))))))))))))))))) 
 (\lambda (n: nat).(\lambda (c0: C).(\lambda (d: C).(\lambda (u: T).(\lambda 
 (H1: (getl n c0 (CHead d (Bind Abst) u))).(\lambda (t: T).(\lambda (_: (ty3 g 
 d u t)).(\lambda (_: (((eq T u (TLRef i)) \to ((nf2 d u) \to (\forall (u2: 
 T).((nf2 d u2) \to ((pc3 d t u2) \to (ex T (\lambda (u0: T).(eq T u2 (lift (S 
 i) O u0))))))))))).(\lambda (H4: (eq T (TLRef n) (TLRef i))).(\lambda (H5: 
 (nf2 c0 (TLRef n))).(\lambda (u2: T).(\lambda (H6: (nf2 c0 u2)).(\lambda (H7: 
-(pc3 c0 (lift (S n) O u) u2)).(let TMP_48 \def (\lambda (e: T).(match e with 
-[(TSort _) \Rightarrow n | (TLRef n0) \Rightarrow n0 | (THead _ _ _) 
-\Rightarrow n])) in (let TMP_49 \def (TLRef n) in (let TMP_50 \def (TLRef i) 
-in (let H8 \def (f_equal T nat TMP_48 TMP_49 TMP_50 H4) in (let TMP_53 \def 
-(\lambda (n0: nat).(let TMP_51 \def (S n0) in (let TMP_52 \def (lift TMP_51 O 
-u) in (pc3 c0 TMP_52 u2)))) in (let H9 \def (eq_ind nat n TMP_53 H7 i H8) in 
-(let TMP_55 \def (\lambda (n0: nat).(let TMP_54 \def (TLRef n0) in (nf2 c0 
-TMP_54))) in (let H10 \def (eq_ind nat n TMP_55 H5 i H8) in (let TMP_58 \def 
-(\lambda (n0: nat).(let TMP_56 \def (Bind Abst) in (let TMP_57 \def (CHead d 
-TMP_56 u) in (getl n0 c0 TMP_57)))) in (let H11 \def (eq_ind nat n TMP_58 H1 
-i H8) in (let TMP_59 \def (S i) in (let TMP_60 \def (lift TMP_59 O u) in (let 
-H_y \def (pc3_nf2_unfold c0 TMP_60 u2 H9 H6) in (let TMP_61 \def (S i) in 
-(let TMP_62 \def (getl_drop Abst c0 d u i H11) in (let H12 \def (pr3_gen_lift 
-c0 u u2 TMP_61 O H_y d TMP_62) in (let TMP_65 \def (\lambda (t2: T).(let 
-TMP_63 \def (S i) in (let TMP_64 \def (lift TMP_63 O t2) in (eq T u2 
-TMP_64)))) in (let TMP_66 \def (\lambda (t2: T).(pr3 d u t2)) in (let TMP_69 
-\def (\lambda (u0: T).(let TMP_67 \def (S i) in (let TMP_68 \def (lift TMP_67 
-O u0) in (eq T u2 TMP_68)))) in (let TMP_70 \def (ex T TMP_69) in (let TMP_86 
-\def (\lambda (x: T).(\lambda (H13: (eq T u2 (lift (S i) O x))).(\lambda (_: 
-(pr3 d u x)).(let TMP_71 \def (S i) in (let TMP_72 \def (lift TMP_71 O x) in 
-(let TMP_76 \def (\lambda (t0: T).(let TMP_75 \def (\lambda (u0: T).(let 
-TMP_73 \def (S i) in (let TMP_74 \def (lift TMP_73 O u0) in (eq T t0 
-TMP_74)))) in (ex T TMP_75))) in (let TMP_81 \def (\lambda (u0: T).(let 
-TMP_77 \def (S i) in (let TMP_78 \def (lift TMP_77 O x) in (let TMP_79 \def 
-(S i) in (let TMP_80 \def (lift TMP_79 O u0) in (eq T TMP_78 TMP_80)))))) in 
-(let TMP_82 \def (S i) in (let TMP_83 \def (lift TMP_82 O x) in (let TMP_84 
-\def (refl_equal T TMP_83) in (let TMP_85 \def (ex_intro T TMP_81 x TMP_84) 
-in (eq_ind_r T TMP_72 TMP_76 TMP_85 u2 H13)))))))))))) in (ex2_ind T TMP_65 
-TMP_66 TMP_70 TMP_86 H12))))))))))))))))))))))))))))))))))) in (let TMP_96 
-\def (\lambda (c0: C).(\lambda (u: T).(\lambda (t: T).(\lambda (_: (ty3 g c0 
-u t)).(\lambda (_: (((eq T u (TLRef i)) \to ((nf2 c0 u) \to (\forall (u2: 
-T).((nf2 c0 u2) \to ((pc3 c0 t u2) \to (ex T (\lambda (u0: T).(eq T u2 (lift 
-(S i) O u0))))))))))).(\lambda (b: B).(\lambda (t1: T).(\lambda (t2: 
-T).(\lambda (_: (ty3 g (CHead c0 (Bind b) u) t1 t2)).(\lambda (_: (((eq T t1 
-(TLRef i)) \to ((nf2 (CHead c0 (Bind b) u) t1) \to (\forall (u2: T).((nf2 
-(CHead c0 (Bind b) u) u2) \to ((pc3 (CHead c0 (Bind b) u) t2 u2) \to (ex T 
-(\lambda (u0: T).(eq T u2 (lift (S i) O u0))))))))))).(\lambda (H5: (eq T 
-(THead (Bind b) u t1) (TLRef i))).(\lambda (_: (nf2 c0 (THead (Bind b) u 
-t1))).(\lambda (u2: T).(\lambda (_: (nf2 c0 u2)).(\lambda (_: (pc3 c0 (THead 
-(Bind b) u t2) u2)).(let TMP_88 \def (Bind b) in (let TMP_89 \def (THead 
-TMP_88 u t1) in (let TMP_90 \def (\lambda (ee: T).(match ee with [(TSort _) 
-\Rightarrow False | (TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow 
-True])) in (let TMP_91 \def (TLRef i) in (let H9 \def (eq_ind T TMP_89 TMP_90 
-I TMP_91 H5) in (let TMP_94 \def (\lambda (u0: T).(let TMP_92 \def (S i) in 
-(let TMP_93 \def (lift TMP_92 O u0) in (eq T u2 TMP_93)))) in (let TMP_95 
-\def (ex T TMP_94) in (False_ind TMP_95 H9))))))))))))))))))))))) in (let 
-TMP_105 \def (\lambda (c0: C).(\lambda (w: T).(\lambda (u: T).(\lambda (_: 
-(ty3 g c0 w u)).(\lambda (_: (((eq T w (TLRef i)) \to ((nf2 c0 w) \to 
-(\forall (u2: T).((nf2 c0 u2) \to ((pc3 c0 u u2) \to (ex T (\lambda (u0: 
-T).(eq T u2 (lift (S i) O u0))))))))))).(\lambda (v: T).(\lambda (t: 
+(pc3 c0 (lift (S n) O u) u2)).(let H8 \def (f_equal T nat (\lambda (e: 
+T).(match e with [(TSort _) \Rightarrow n | (TLRef n0) \Rightarrow n0 | 
+(THead _ _ _) \Rightarrow n])) (TLRef n) (TLRef i) H4) in (let H9 \def 
+(eq_ind nat n (\lambda (n0: nat).(pc3 c0 (lift (S n0) O u) u2)) H7 i H8) in 
+(let H10 \def (eq_ind nat n (\lambda (n0: nat).(nf2 c0 (TLRef n0))) H5 i H8) 
+in (let H11 \def (eq_ind nat n (\lambda (n0: nat).(getl n0 c0 (CHead d (Bind 
+Abst) u))) H1 i H8) in (let H_y \def (pc3_nf2_unfold c0 (lift (S i) O u) u2 
+H9 H6) in (let H12 \def (pr3_gen_lift c0 u u2 (S i) O H_y d (getl_drop Abst 
+c0 d u i H11)) in (ex2_ind T (\lambda (t2: T).(eq T u2 (lift (S i) O t2))) 
+(\lambda (t2: T).(pr3 d u t2)) (ex T (\lambda (u0: T).(eq T u2 (lift (S i) O 
+u0)))) (\lambda (x: T).(\lambda (H13: (eq T u2 (lift (S i) O x))).(\lambda 
+(_: (pr3 d u x)).(eq_ind_r T (lift (S i) O x) (\lambda (t0: T).(ex T (\lambda 
+(u0: T).(eq T t0 (lift (S i) O u0))))) (ex_intro T (\lambda (u0: T).(eq T 
+(lift (S i) O x) (lift (S i) O u0))) x (refl_equal T (lift (S i) O x))) u2 
+H13)))) H12)))))))))))))))))))) (\lambda (c0: C).(\lambda (u: T).(\lambda (t: 
+T).(\lambda (_: (ty3 g c0 u t)).(\lambda (_: (((eq T u (TLRef i)) \to ((nf2 
+c0 u) \to (\forall (u2: T).((nf2 c0 u2) \to ((pc3 c0 t u2) \to (ex T (\lambda 
+(u0: T).(eq T u2 (lift (S i) O u0))))))))))).(\lambda (b: B).(\lambda (t1: 
+T).(\lambda (t2: T).(\lambda (_: (ty3 g (CHead c0 (Bind b) u) t1 
+t2)).(\lambda (_: (((eq T t1 (TLRef i)) \to ((nf2 (CHead c0 (Bind b) u) t1) 
+\to (\forall (u2: T).((nf2 (CHead c0 (Bind b) u) u2) \to ((pc3 (CHead c0 
+(Bind b) u) t2 u2) \to (ex T (\lambda (u0: T).(eq T u2 (lift (S i) O 
+u0))))))))))).(\lambda (H5: (eq T (THead (Bind b) u t1) (TLRef i))).(\lambda 
+(_: (nf2 c0 (THead (Bind b) u t1))).(\lambda (u2: T).(\lambda (_: (nf2 c0 
+u2)).(\lambda (_: (pc3 c0 (THead (Bind b) u t2) u2)).(let H9 \def (eq_ind T 
+(THead (Bind b) u t1) (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow 
+False | (TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow True])) I 
+(TLRef i) H5) in (False_ind (ex T (\lambda (u0: T).(eq T u2 (lift (S i) O 
+u0)))) H9))))))))))))))))) (\lambda (c0: C).(\lambda (w: T).(\lambda (u: 
+T).(\lambda (_: (ty3 g c0 w u)).(\lambda (_: (((eq T w (TLRef i)) \to ((nf2 
+c0 w) \to (\forall (u2: T).((nf2 c0 u2) \to ((pc3 c0 u u2) \to (ex T (\lambda 
+(u0: T).(eq T u2 (lift (S i) O u0))))))))))).(\lambda (v: T).(\lambda (t: 
 T).(\lambda (_: (ty3 g c0 v (THead (Bind Abst) u t))).(\lambda (_: (((eq T v 
 (TLRef i)) \to ((nf2 c0 v) \to (\forall (u2: T).((nf2 c0 u2) \to ((pc3 c0 
 (THead (Bind Abst) u t) u2) \to (ex T (\lambda (u0: T).(eq T u2 (lift (S i) O 
 u0))))))))))).(\lambda (H5: (eq T (THead (Flat Appl) w v) (TLRef 
 i))).(\lambda (_: (nf2 c0 (THead (Flat Appl) w v))).(\lambda (u2: T).(\lambda 
 (_: (nf2 c0 u2)).(\lambda (_: (pc3 c0 (THead (Flat Appl) w (THead (Bind Abst) 
-u t)) u2)).(let TMP_97 \def (Flat Appl) in (let TMP_98 \def (THead TMP_97 w 
-v) in (let TMP_99 \def (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow 
-False | (TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow True])) in 
-(let TMP_100 \def (TLRef i) in (let H9 \def (eq_ind T TMP_98 TMP_99 I TMP_100 
-H5) in (let TMP_103 \def (\lambda (u0: T).(let TMP_101 \def (S i) in (let 
-TMP_102 \def (lift TMP_101 O u0) in (eq T u2 TMP_102)))) in (let TMP_104 \def 
-(ex T TMP_103) in (False_ind TMP_104 H9)))))))))))))))))))))) in (let TMP_114 
-\def (\lambda (c0: C).(\lambda (t1: T).(\lambda (t2: T).(\lambda (_: (ty3 g 
-c0 t1 t2)).(\lambda (_: (((eq T t1 (TLRef i)) \to ((nf2 c0 t1) \to (\forall 
-(u2: T).((nf2 c0 u2) \to ((pc3 c0 t2 u2) \to (ex T (\lambda (u: T).(eq T u2 
-(lift (S i) O u))))))))))).(\lambda (t0: T).(\lambda (_: (ty3 g c0 t2 
-t0)).(\lambda (_: (((eq T t2 (TLRef i)) \to ((nf2 c0 t2) \to (\forall (u2: 
-T).((nf2 c0 u2) \to ((pc3 c0 t0 u2) \to (ex T (\lambda (u: T).(eq T u2 (lift 
-(S i) O u))))))))))).(\lambda (H5: (eq T (THead (Flat Cast) t2 t1) (TLRef 
+u t)) u2)).(let H9 \def (eq_ind T (THead (Flat Appl) w v) (\lambda (ee: 
+T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False 
+| (THead _ _ _) \Rightarrow True])) I (TLRef i) H5) in (False_ind (ex T 
+(\lambda (u0: T).(eq T u2 (lift (S i) O u0)))) H9)))))))))))))))) (\lambda 
+(c0: C).(\lambda (t1: T).(\lambda (t2: T).(\lambda (_: (ty3 g c0 t1 
+t2)).(\lambda (_: (((eq T t1 (TLRef i)) \to ((nf2 c0 t1) \to (\forall (u2: 
+T).((nf2 c0 u2) \to ((pc3 c0 t2 u2) \to (ex T (\lambda (u: T).(eq T u2 (lift 
+(S i) O u))))))))))).(\lambda (t0: T).(\lambda (_: (ty3 g c0 t2 t0)).(\lambda 
+(_: (((eq T t2 (TLRef i)) \to ((nf2 c0 t2) \to (\forall (u2: T).((nf2 c0 u2) 
+\to ((pc3 c0 t0 u2) \to (ex T (\lambda (u: T).(eq T u2 (lift (S i) O 
+u))))))))))).(\lambda (H5: (eq T (THead (Flat Cast) t2 t1) (TLRef 
 i))).(\lambda (_: (nf2 c0 (THead (Flat Cast) t2 t1))).(\lambda (u2: 
 T).(\lambda (_: (nf2 c0 u2)).(\lambda (_: (pc3 c0 (THead (Flat Cast) t0 t2) 
-u2)).(let TMP_106 \def (Flat Cast) in (let TMP_107 \def (THead TMP_106 t2 t1) 
-in (let TMP_108 \def (\lambda (ee: T).(match ee with [(TSort _) \Rightarrow 
-False | (TLRef _) \Rightarrow False | (THead _ _ _) \Rightarrow True])) in 
-(let TMP_109 \def (TLRef i) in (let H9 \def (eq_ind T TMP_107 TMP_108 I 
-TMP_109 H5) in (let TMP_112 \def (\lambda (u: T).(let TMP_110 \def (S i) in 
-(let TMP_111 \def (lift TMP_110 O u) in (eq T u2 TMP_111)))) in (let TMP_113 
-\def (ex T TMP_112) in (False_ind TMP_113 H9))))))))))))))))))))) in (ty3_ind 
-g TMP_10 TMP_23 TMP_31 TMP_47 TMP_87 TMP_96 TMP_105 TMP_114 c y u1 
-H0))))))))))) in (insert_eq T TMP_1 TMP_2 TMP_6 TMP_115 H))))))))).
+u2)).(let H9 \def (eq_ind T (THead (Flat Cast) t2 t1) (\lambda (ee: T).(match 
+ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | (THead _ 
+_ _) \Rightarrow True])) I (TLRef i) H5) in (False_ind (ex T (\lambda (u: 
+T).(eq T u2 (lift (S i) O u)))) H9))))))))))))))) c y u1 H0))) H))))).
 
 theorem ty3_inv_lref_nf2:
  \forall (g: G).(\forall (c: C).(\forall (u: T).(\forall (i: nat).((ty3 g c 
@@ -301,8 +202,7 @@ T).(eq T u (lift (S i) O u0))))))))))
 \def
  \lambda (g: G).(\lambda (c: C).(\lambda (u: T).(\lambda (i: nat).(\lambda 
 (H: (ty3 g c (TLRef i) u)).(\lambda (H0: (nf2 c (TLRef i))).(\lambda (H1: 
-(nf2 c u)).(let TMP_1 \def (pc3_refl c u) in (ty3_inv_lref_nf2_pc3 g c u i H 
-H0 u H1 TMP_1)))))))).
+(nf2 c u)).(ty3_inv_lref_nf2_pc3 g c u i H H0 u H1 (pc3_refl c u)))))))).
 
 theorem ty3_inv_appls_lref_nf2:
  \forall (g: G).(\forall (c: C).(\forall (vs: TList).(\forall (u1: 
@@ -311,112 +211,56 @@ T).(\forall (i: nat).((ty3 g c (THeads (Flat Appl) vs (TLRef i)) u1) \to
 i) O u))) (\lambda (u: T).(pc3 c (THeads (Flat Appl) vs (lift (S i) O u)) 
 u1))))))))))
 \def
- \lambda (g: G).(\lambda (c: C).(\lambda (vs: TList).(let TMP_9 \def (\lambda 
-(t: TList).(\forall (u1: T).(\forall (i: nat).((ty3 g c (THeads (Flat Appl) t 
-(TLRef i)) u1) \to ((nf2 c (TLRef i)) \to ((nf2 c u1) \to (let TMP_3 \def 
-(\lambda (u: T).(let TMP_1 \def (S i) in (let TMP_2 \def (lift TMP_1 O u) in 
-(nf2 c TMP_2)))) in (let TMP_8 \def (\lambda (u: T).(let TMP_4 \def (Flat 
-Appl) in (let TMP_5 \def (S i) in (let TMP_6 \def (lift TMP_5 O u) in (let 
-TMP_7 \def (THeads TMP_4 t TMP_6) in (pc3 c TMP_7 u1)))))) in (ex2 T TMP_3 
-TMP_8))))))))) in (let TMP_45 \def (\lambda (u1: T).(\lambda (i: 
-nat).(\lambda (H: (ty3 g c (TLRef i) u1)).(\lambda (H0: (nf2 c (TLRef 
-i))).(\lambda (H1: (nf2 c u1)).(let H_x \def (ty3_inv_lref_nf2 g c u1 i H H0 
-H1) in (let H2 \def H_x in (let TMP_12 \def (\lambda (u0: T).(let TMP_10 \def 
-(S i) in (let TMP_11 \def (lift TMP_10 O u0) in (eq T u1 TMP_11)))) in (let 
-TMP_15 \def (\lambda (u: T).(let TMP_13 \def (S i) in (let TMP_14 \def (lift 
-TMP_13 O u) in (nf2 c TMP_14)))) in (let TMP_18 \def (\lambda (u: T).(let 
-TMP_16 \def (S i) in (let TMP_17 \def (lift TMP_16 O u) in (pc3 c TMP_17 
-u1)))) in (let TMP_19 \def (ex2 T TMP_15 TMP_18) in (let TMP_44 \def (\lambda 
-(x: T).(\lambda (H3: (eq T u1 (lift (S i) O x))).(let TMP_20 \def (\lambda 
-(t: T).(nf2 c t)) in (let TMP_21 \def (S i) in (let TMP_22 \def (lift TMP_21 
-O x) in (let H4 \def (eq_ind T u1 TMP_20 H1 TMP_22 H3) in (let TMP_23 \def (S 
-i) in (let TMP_24 \def (lift TMP_23 O x) in (let TMP_31 \def (\lambda (t: 
-T).(let TMP_27 \def (\lambda (u: T).(let TMP_25 \def (S i) in (let TMP_26 
-\def (lift TMP_25 O u) in (nf2 c TMP_26)))) in (let TMP_30 \def (\lambda (u: 
-T).(let TMP_28 \def (S i) in (let TMP_29 \def (lift TMP_28 O u) in (pc3 c 
-TMP_29 t)))) in (ex2 T TMP_27 TMP_30)))) in (let TMP_34 \def (\lambda (u: 
-T).(let TMP_32 \def (S i) in (let TMP_33 \def (lift TMP_32 O u) in (nf2 c 
-TMP_33)))) in (let TMP_39 \def (\lambda (u: T).(let TMP_35 \def (S i) in (let 
-TMP_36 \def (lift TMP_35 O u) in (let TMP_37 \def (S i) in (let TMP_38 \def 
-(lift TMP_37 O x) in (pc3 c TMP_36 TMP_38)))))) in (let TMP_40 \def (S i) in 
-(let TMP_41 \def (lift TMP_40 O x) in (let TMP_42 \def (pc3_refl c TMP_41) in 
-(let TMP_43 \def (ex_intro2 T TMP_34 TMP_39 x H4 TMP_42) in (eq_ind_r T 
-TMP_24 TMP_31 TMP_43 u1 H3)))))))))))))))) in (ex_ind T TMP_12 TMP_19 TMP_44 
-H2))))))))))))) in (let TMP_145 \def (\lambda (t: T).(\lambda (t0: 
-TList).(\lambda (H: ((\forall (u1: T).(\forall (i: nat).((ty3 g c (THeads 
-(Flat Appl) t0 (TLRef i)) u1) \to ((nf2 c (TLRef i)) \to ((nf2 c u1) \to (ex2 
-T (\lambda (u: T).(nf2 c (lift (S i) O u))) (\lambda (u: T).(pc3 c (THeads 
-(Flat Appl) t0 (lift (S i) O u)) u1)))))))))).(\lambda (u1: T).(\lambda (i: 
-nat).(\lambda (H0: (ty3 g c (THead (Flat Appl) t (THeads (Flat Appl) t0 
-(TLRef i))) u1)).(\lambda (H1: (nf2 c (TLRef i))).(\lambda (_: (nf2 c 
-u1)).(let TMP_46 \def (Flat Appl) in (let TMP_47 \def (TLRef i) in (let 
-TMP_48 \def (THeads TMP_46 t0 TMP_47) in (let H_x \def (ty3_gen_appl_nf2 g c 
-t TMP_48 u1 H0) in (let H3 \def H_x in (let TMP_53 \def (\lambda (u: 
-T).(\lambda (t1: T).(let TMP_49 \def (Flat Appl) in (let TMP_50 \def (Bind 
-Abst) in (let TMP_51 \def (THead TMP_50 u t1) in (let TMP_52 \def (THead 
-TMP_49 t TMP_51) in (pc3 c TMP_52 u1))))))) in (let TMP_59 \def (\lambda (u: 
-T).(\lambda (t1: T).(let TMP_54 \def (Flat Appl) in (let TMP_55 \def (TLRef 
-i) in (let TMP_56 \def (THeads TMP_54 t0 TMP_55) in (let TMP_57 \def (Bind 
-Abst) in (let TMP_58 \def (THead TMP_57 u t1) in (ty3 g c TMP_56 
-TMP_58)))))))) in (let TMP_60 \def (\lambda (u: T).(\lambda (_: T).(ty3 g c t 
-u))) in (let TMP_63 \def (\lambda (u: T).(\lambda (t1: T).(let TMP_61 \def 
-(Bind Abst) in (let TMP_62 \def (THead TMP_61 u t1) in (nf2 c TMP_62))))) in 
-(let TMP_66 \def (\lambda (u: T).(let TMP_64 \def (S i) in (let TMP_65 \def 
-(lift TMP_64 O u) in (nf2 c TMP_65)))) in (let TMP_73 \def (\lambda (u: 
-T).(let TMP_67 \def (Flat Appl) in (let TMP_68 \def (Flat Appl) in (let 
-TMP_69 \def (S i) in (let TMP_70 \def (lift TMP_69 O u) in (let TMP_71 \def 
-(THeads TMP_68 t0 TMP_70) in (let TMP_72 \def (THead TMP_67 t TMP_71) in (pc3 
-c TMP_72 u1)))))))) in (let TMP_74 \def (ex2 T TMP_66 TMP_73) in (let TMP_144 
-\def (\lambda (x0: T).(\lambda (x1: T).(\lambda (H4: (pc3 c (THead (Flat 
+ \lambda (g: G).(\lambda (c: C).(\lambda (vs: TList).(TList_ind (\lambda (t: 
+TList).(\forall (u1: T).(\forall (i: nat).((ty3 g c (THeads (Flat Appl) t 
+(TLRef i)) u1) \to ((nf2 c (TLRef i)) \to ((nf2 c u1) \to (ex2 T (\lambda (u: 
+T).(nf2 c (lift (S i) O u))) (\lambda (u: T).(pc3 c (THeads (Flat Appl) t 
+(lift (S i) O u)) u1))))))))) (\lambda (u1: T).(\lambda (i: nat).(\lambda (H: 
+(ty3 g c (TLRef i) u1)).(\lambda (H0: (nf2 c (TLRef i))).(\lambda (H1: (nf2 c 
+u1)).(let H_x \def (ty3_inv_lref_nf2 g c u1 i H H0 H1) in (let H2 \def H_x in 
+(ex_ind T (\lambda (u0: T).(eq T u1 (lift (S i) O u0))) (ex2 T (\lambda (u: 
+T).(nf2 c (lift (S i) O u))) (\lambda (u: T).(pc3 c (lift (S i) O u) u1))) 
+(\lambda (x: T).(\lambda (H3: (eq T u1 (lift (S i) O x))).(let H4 \def 
+(eq_ind T u1 (\lambda (t: T).(nf2 c t)) H1 (lift (S i) O x) H3) in (eq_ind_r 
+T (lift (S i) O x) (\lambda (t: T).(ex2 T (\lambda (u: T).(nf2 c (lift (S i) 
+O u))) (\lambda (u: T).(pc3 c (lift (S i) O u) t)))) (ex_intro2 T (\lambda 
+(u: T).(nf2 c (lift (S i) O u))) (\lambda (u: T).(pc3 c (lift (S i) O u) 
+(lift (S i) O x))) x H4 (pc3_refl c (lift (S i) O x))) u1 H3)))) H2)))))))) 
+(\lambda (t: T).(\lambda (t0: TList).(\lambda (H: ((\forall (u1: T).(\forall 
+(i: nat).((ty3 g c (THeads (Flat Appl) t0 (TLRef i)) u1) \to ((nf2 c (TLRef 
+i)) \to ((nf2 c u1) \to (ex2 T (\lambda (u: T).(nf2 c (lift (S i) O u))) 
+(\lambda (u: T).(pc3 c (THeads (Flat Appl) t0 (lift (S i) O u)) 
+u1)))))))))).(\lambda (u1: T).(\lambda (i: nat).(\lambda (H0: (ty3 g c (THead 
+(Flat Appl) t (THeads (Flat Appl) t0 (TLRef i))) u1)).(\lambda (H1: (nf2 c 
+(TLRef i))).(\lambda (_: (nf2 c u1)).(let H_x \def (ty3_gen_appl_nf2 g c t 
+(THeads (Flat Appl) t0 (TLRef i)) u1 H0) in (let H3 \def H_x in (ex4_2_ind T 
+T (\lambda (u: T).(\lambda (t1: T).(pc3 c (THead (Flat Appl) t (THead (Bind 
+Abst) u t1)) u1))) (\lambda (u: T).(\lambda (t1: T).(ty3 g c (THeads (Flat 
+Appl) t0 (TLRef i)) (THead (Bind Abst) u t1)))) (\lambda (u: T).(\lambda (_: 
+T).(ty3 g c t u))) (\lambda (u: T).(\lambda (t1: T).(nf2 c (THead (Bind Abst) 
+u t1)))) (ex2 T (\lambda (u: T).(nf2 c (lift (S i) O u))) (\lambda (u: 
+T).(pc3 c (THead (Flat Appl) t (THeads (Flat Appl) t0 (lift (S i) O u))) 
+u1))) (\lambda (x0: T).(\lambda (x1: T).(\lambda (H4: (pc3 c (THead (Flat 
 Appl) t (THead (Bind Abst) x0 x1)) u1)).(\lambda (H5: (ty3 g c (THeads (Flat 
 Appl) t0 (TLRef i)) (THead (Bind Abst) x0 x1))).(\lambda (_: (ty3 g c t 
 x0)).(\lambda (H7: (nf2 c (THead (Bind Abst) x0 x1))).(let H8 \def 
-(nf2_gen_abst c x0 x1 H7) in (let TMP_75 \def (nf2 c x0) in (let TMP_76 \def 
-(Bind Abst) in (let TMP_77 \def (CHead c TMP_76 x0) in (let TMP_78 \def (nf2 
-TMP_77 x1) in (let TMP_81 \def (\lambda (u: T).(let TMP_79 \def (S i) in (let 
-TMP_80 \def (lift TMP_79 O u) in (nf2 c TMP_80)))) in (let TMP_88 \def 
-(\lambda (u: T).(let TMP_82 \def (Flat Appl) in (let TMP_83 \def (Flat Appl) 
-in (let TMP_84 \def (S i) in (let TMP_85 \def (lift TMP_84 O u) in (let 
-TMP_86 \def (THeads TMP_83 t0 TMP_85) in (let TMP_87 \def (THead TMP_82 t 
-TMP_86) in (pc3 c TMP_87 u1)))))))) in (let TMP_89 \def (ex2 T TMP_81 TMP_88) 
-in (let TMP_143 \def (\lambda (H9: (nf2 c x0)).(\lambda (H10: (nf2 (CHead c 
-(Bind Abst) x0) x1)).(let TMP_90 \def (Bind Abst) in (let TMP_91 \def (THead 
-TMP_90 x0 x1) in (let H_y \def (H TMP_91 i H5 H1) in (let TMP_92 \def 
-(nf2_abst_shift c x0 H9 x1 H10) in (let H11 \def (H_y TMP_92) in (let TMP_95 
-\def (\lambda (u: T).(let TMP_93 \def (S i) in (let TMP_94 \def (lift TMP_93 
-O u) in (nf2 c TMP_94)))) in (let TMP_102 \def (\lambda (u: T).(let TMP_96 
-\def (Flat Appl) in (let TMP_97 \def (S i) in (let TMP_98 \def (lift TMP_97 O 
-u) in (let TMP_99 \def (THeads TMP_96 t0 TMP_98) in (let TMP_100 \def (Bind 
-Abst) in (let TMP_101 \def (THead TMP_100 x0 x1) in (pc3 c TMP_99 
-TMP_101)))))))) in (let TMP_105 \def (\lambda (u: T).(let TMP_103 \def (S i) 
-in (let TMP_104 \def (lift TMP_103 O u) in (nf2 c TMP_104)))) in (let TMP_112 
-\def (\lambda (u: T).(let TMP_106 \def (Flat Appl) in (let TMP_107 \def (Flat 
-Appl) in (let TMP_108 \def (S i) in (let TMP_109 \def (lift TMP_108 O u) in 
-(let TMP_110 \def (THeads TMP_107 t0 TMP_109) in (let TMP_111 \def (THead 
-TMP_106 t TMP_110) in (pc3 c TMP_111 u1)))))))) in (let TMP_113 \def (ex2 T 
-TMP_105 TMP_112) in (let TMP_142 \def (\lambda (x: T).(\lambda (H12: (nf2 c 
-(lift (S i) O x))).(\lambda (H13: (pc3 c (THeads (Flat Appl) t0 (lift (S i) O 
-x)) (THead (Bind Abst) x0 x1))).(let TMP_116 \def (\lambda (u: T).(let 
-TMP_114 \def (S i) in (let TMP_115 \def (lift TMP_114 O u) in (nf2 c 
-TMP_115)))) in (let TMP_123 \def (\lambda (u: T).(let TMP_117 \def (Flat 
-Appl) in (let TMP_118 \def (Flat Appl) in (let TMP_119 \def (S i) in (let 
-TMP_120 \def (lift TMP_119 O u) in (let TMP_121 \def (THeads TMP_118 t0 
-TMP_120) in (let TMP_122 \def (THead TMP_117 t TMP_121) in (pc3 c TMP_122 
-u1)))))))) in (let TMP_124 \def (Flat Appl) in (let TMP_125 \def (Bind Abst) 
-in (let TMP_126 \def (THead TMP_125 x0 x1) in (let TMP_127 \def (THead 
-TMP_124 t TMP_126) in (let TMP_128 \def (Flat Appl) in (let TMP_129 \def 
-(Flat Appl) in (let TMP_130 \def (S i) in (let TMP_131 \def (lift TMP_130 O 
-x) in (let TMP_132 \def (THeads TMP_129 t0 TMP_131) in (let TMP_133 \def 
-(THead TMP_128 t TMP_132) in (let TMP_134 \def (Flat Appl) in (let TMP_135 
-\def (S i) in (let TMP_136 \def (lift TMP_135 O x) in (let TMP_137 \def 
-(THeads TMP_134 t0 TMP_136) in (let TMP_138 \def (Bind Abst) in (let TMP_139 
-\def (THead TMP_138 x0 x1) in (let TMP_140 \def (pc3_thin_dx c TMP_137 
-TMP_139 H13 t Appl) in (let TMP_141 \def (pc3_t TMP_127 c TMP_133 TMP_140 u1 
-H4) in (ex_intro2 T TMP_116 TMP_123 x H12 TMP_141)))))))))))))))))))))))) in 
-(ex2_ind T TMP_95 TMP_102 TMP_113 TMP_142 H11)))))))))))))) in (land_ind 
-TMP_75 TMP_78 TMP_89 TMP_143 H8)))))))))))))))) in (ex4_2_ind T T TMP_53 
-TMP_59 TMP_60 TMP_63 TMP_74 TMP_144 H3)))))))))))))))))))))) in (TList_ind 
-TMP_9 TMP_45 TMP_145 vs)))))).
+(nf2_gen_abst c x0 x1 H7) in (land_ind (nf2 c x0) (nf2 (CHead c (Bind Abst) 
+x0) x1) (ex2 T (\lambda (u: T).(nf2 c (lift (S i) O u))) (\lambda (u: T).(pc3 
+c (THead (Flat Appl) t (THeads (Flat Appl) t0 (lift (S i) O u))) u1))) 
+(\lambda (H9: (nf2 c x0)).(\lambda (H10: (nf2 (CHead c (Bind Abst) x0) 
+x1)).(let H_y \def (H (THead (Bind Abst) x0 x1) i H5 H1) in (let H11 \def 
+(H_y (nf2_abst_shift c x0 H9 x1 H10)) in (ex2_ind T (\lambda (u: T).(nf2 c 
+(lift (S i) O u))) (\lambda (u: T).(pc3 c (THeads (Flat Appl) t0 (lift (S i) 
+O u)) (THead (Bind Abst) x0 x1))) (ex2 T (\lambda (u: T).(nf2 c (lift (S i) O 
+u))) (\lambda (u: T).(pc3 c (THead (Flat Appl) t (THeads (Flat Appl) t0 (lift 
+(S i) O u))) u1))) (\lambda (x: T).(\lambda (H12: (nf2 c (lift (S i) O 
+x))).(\lambda (H13: (pc3 c (THeads (Flat Appl) t0 (lift (S i) O x)) (THead 
+(Bind Abst) x0 x1))).(ex_intro2 T (\lambda (u: T).(nf2 c (lift (S i) O u))) 
+(\lambda (u: T).(pc3 c (THead (Flat Appl) t (THeads (Flat Appl) t0 (lift (S 
+i) O u))) u1)) x H12 (pc3_t (THead (Flat Appl) t (THead (Bind Abst) x0 x1)) c 
+(THead (Flat Appl) t (THeads (Flat Appl) t0 (lift (S i) O x))) (pc3_thin_dx c 
+(THeads (Flat Appl) t0 (lift (S i) O x)) (THead (Bind Abst) x0 x1) H13 t 
+Appl) u1 H4))))) H11))))) H8)))))))) H3))))))))))) vs))).
 
 theorem ty3_inv_lref_lref_nf2:
  \forall (g: G).(\forall (c: C).(\forall (i: nat).(\forall (j: nat).((ty3 g c 
@@ -425,29 +269,16 @@ j)))))))
 \def
  \lambda (g: G).(\lambda (c: C).(\lambda (i: nat).(\lambda (j: nat).(\lambda 
 (H: (ty3 g c (TLRef i) (TLRef j))).(\lambda (H0: (nf2 c (TLRef i))).(\lambda 
-(H1: (nf2 c (TLRef j))).(let TMP_1 \def (TLRef j) in (let H_x \def 
-(ty3_inv_lref_nf2 g c TMP_1 i H H0 H1) in (let H2 \def H_x in (let TMP_5 \def 
-(\lambda (u0: T).(let TMP_2 \def (TLRef j) in (let TMP_3 \def (S i) in (let 
-TMP_4 \def (lift TMP_3 O u0) in (eq T TMP_2 TMP_4))))) in (let TMP_6 \def (lt 
-i j) in (let TMP_36 \def (\lambda (x: T).(\lambda (H3: (eq T (TLRef j) (lift 
-(S i) O x))).(let TMP_7 \def (S i) in (let H_x0 \def (lift_gen_lref x O TMP_7 
-j H3) in (let H4 \def H_x0 in (let TMP_8 \def (lt j O) in (let TMP_9 \def 
-(TLRef j) in (let TMP_10 \def (eq T x TMP_9) in (let TMP_11 \def (land TMP_8 
-TMP_10) in (let TMP_12 \def (S i) in (let TMP_13 \def (le TMP_12 j) in (let 
-TMP_14 \def (S i) in (let TMP_15 \def (minus j TMP_14) in (let TMP_16 \def 
-(TLRef TMP_15) in (let TMP_17 \def (eq T x TMP_16) in (let TMP_18 \def (land 
-TMP_13 TMP_17) in (let TMP_19 \def (lt i j) in (let TMP_26 \def (\lambda (H5: 
-(land (lt j O) (eq T x (TLRef j)))).(let TMP_20 \def (lt j O) in (let TMP_21 
-\def (TLRef j) in (let TMP_22 \def (eq T x TMP_21) in (let TMP_23 \def (lt i 
-j) in (let TMP_25 \def (\lambda (H6: (lt j O)).(\lambda (_: (eq T x (TLRef 
-j))).(let TMP_24 \def (lt i j) in (lt_x_O j H6 TMP_24)))) in (land_ind TMP_20 
-TMP_22 TMP_23 TMP_25 H5))))))) in (let TMP_35 \def (\lambda (H5: (land (le (S 
-i) j) (eq T x (TLRef (minus j (S i)))))).(let TMP_27 \def (S i) in (let 
-TMP_28 \def (le TMP_27 j) in (let TMP_29 \def (S i) in (let TMP_30 \def 
-(minus j TMP_29) in (let TMP_31 \def (TLRef TMP_30) in (let TMP_32 \def (eq T 
-x TMP_31) in (let TMP_33 \def (lt i j) in (let TMP_34 \def (\lambda (H6: (le 
-(S i) j)).(\lambda (_: (eq T x (TLRef (minus j (S i))))).H6)) in (land_ind 
-TMP_28 TMP_32 TMP_33 TMP_34 H5)))))))))) in (or_ind TMP_11 TMP_18 TMP_19 
-TMP_26 TMP_35 H4)))))))))))))))))))) in (ex_ind T TMP_5 TMP_6 TMP_36 
-H2))))))))))))).
+(H1: (nf2 c (TLRef j))).(let H_x \def (ty3_inv_lref_nf2 g c (TLRef j) i H H0 
+H1) in (let H2 \def H_x in (ex_ind T (\lambda (u0: T).(eq T (TLRef j) (lift 
+(S i) O u0))) (lt i j) (\lambda (x: T).(\lambda (H3: (eq T (TLRef j) (lift (S 
+i) O x))).(let H_x0 \def (lift_gen_lref x O (S i) j H3) in (let H4 \def H_x0 
+in (or_ind (land (lt j O) (eq T x (TLRef j))) (land (le (S i) j) (eq T x 
+(TLRef (minus j (S i))))) (lt i j) (\lambda (H5: (land (lt j O) (eq T x 
+(TLRef j)))).(land_ind (lt j O) (eq T x (TLRef j)) (lt i j) (\lambda (H6: (lt 
+j O)).(\lambda (_: (eq T x (TLRef j))).(lt_x_O j H6 (lt i j)))) H5)) (\lambda 
+(H5: (land (le (S i) j) (eq T x (TLRef (minus j (S i)))))).(land_ind (le (S 
+i) j) (eq T x (TLRef (minus j (S i)))) (lt i j) (\lambda (H6: (le (S i) 
+j)).(\lambda (_: (eq T x (TLRef (minus j (S i))))).H6)) H5)) H4))))) 
+H2))))))))).
 
index 5d968c5026ce408e778ebf13f25fa71a121657ee..e9cf818b747236cac12477489e9939fd745eaa46 100644 (file)
@@ -35,9 +35,8 @@ theorem ty3_nf2_inv_abst_premise_csort:
  \lambda (w: T).(\lambda (u: T).(\lambda (m: nat).(\lambda (d: C).(\lambda 
 (wi: T).(\lambda (i: nat).(\lambda (H: (getl i (CSort m) (CHead d (Bind Abst) 
 wi))).(\lambda (vs: TList).(\lambda (_: (pc3 (CSort m) (THeads (Flat Appl) vs 
-(lift (S i) O wi)) (THead (Bind Abst) w u))).(let TMP_1 \def (Bind Abst) in 
-(let TMP_2 \def (CHead d TMP_1 wi) in (getl_gen_sort m i TMP_2 H 
-False))))))))))).
+(lift (S i) O wi)) (THead (Bind Abst) w u))).(getl_gen_sort m i (CHead d 
+(Bind Abst) wi) H False))))))))).
 
 theorem ty3_nf2_inv_all:
  \forall (g: G).(\forall (c: C).(\forall (t: T).(\forall (u: T).((ty3 g c t 
@@ -51,25 +50,16 @@ TList).(\lambda (i: nat).(nf2 c (TLRef i)))))))))))
 \def
  \lambda (g: G).(\lambda (c: C).(\lambda (t: T).(\lambda (u: T).(\lambda (H: 
 (ty3 g c t u)).(\lambda (H0: (nf2 c t)).(let H_x \def (ty3_arity g c t u H) 
-in (let H1 \def H_x in (let TMP_1 \def (\lambda (a1: A).(arity g c t a1)) in 
-(let TMP_3 \def (\lambda (a1: A).(let TMP_2 \def (asucc g a1) in (arity g c u 
-TMP_2))) in (let TMP_6 \def (\lambda (w: T).(\lambda (u0: T).(let TMP_4 \def 
-(Bind Abst) in (let TMP_5 \def (THead TMP_4 w u0) in (eq T t TMP_5))))) in 
-(let TMP_7 \def (\lambda (w: T).(\lambda (_: T).(nf2 c w))) in (let TMP_10 
-\def (\lambda (w: T).(\lambda (u0: T).(let TMP_8 \def (Bind Abst) in (let 
-TMP_9 \def (CHead c TMP_8 w) in (nf2 TMP_9 u0))))) in (let TMP_11 \def (ex3_2 
-T T TMP_6 TMP_7 TMP_10) in (let TMP_13 \def (\lambda (n: nat).(let TMP_12 
-\def (TSort n) in (eq T t TMP_12))) in (let TMP_14 \def (ex nat TMP_13) in 
-(let TMP_18 \def (\lambda (ws: TList).(\lambda (i: nat).(let TMP_15 \def 
-(Flat Appl) in (let TMP_16 \def (TLRef i) in (let TMP_17 \def (THeads TMP_15 
-ws TMP_16) in (eq T t TMP_17)))))) in (let TMP_19 \def (\lambda (ws: 
-TList).(\lambda (_: nat).(nfs2 c ws))) in (let TMP_21 \def (\lambda (_: 
-TList).(\lambda (i: nat).(let TMP_20 \def (TLRef i) in (nf2 c TMP_20)))) in 
-(let TMP_22 \def (ex3_2 TList nat TMP_18 TMP_19 TMP_21) in (let TMP_23 \def 
-(or3 TMP_11 TMP_14 TMP_22) in (let TMP_24 \def (\lambda (x: A).(\lambda (H2: 
+in (let H1 \def H_x in (ex2_ind A (\lambda (a1: A).(arity g c t a1)) (\lambda 
+(a1: A).(arity g c u (asucc g a1))) (or3 (ex3_2 T T (\lambda (w: T).(\lambda 
+(u0: T).(eq T t (THead (Bind Abst) w u0)))) (\lambda (w: T).(\lambda (_: 
+T).(nf2 c w))) (\lambda (w: T).(\lambda (u0: T).(nf2 (CHead c (Bind Abst) w) 
+u0)))) (ex nat (\lambda (n: nat).(eq T t (TSort n)))) (ex3_2 TList nat 
+(\lambda (ws: TList).(\lambda (i: nat).(eq T t (THeads (Flat Appl) ws (TLRef 
+i))))) (\lambda (ws: TList).(\lambda (_: nat).(nfs2 c ws))) (\lambda (_: 
+TList).(\lambda (i: nat).(nf2 c (TLRef i)))))) (\lambda (x: A).(\lambda (H2: 
 (arity g c t x)).(\lambda (_: (arity g c u (asucc g x))).(arity_nf2_inv_all g 
-c t x H2 H0)))) in (ex2_ind A TMP_1 TMP_3 TMP_23 TMP_24 
-H1)))))))))))))))))))))).
+c t x H2 H0)))) H1)))))))).
 
 theorem ty3_nf2_inv_sort:
  \forall (g: G).(\forall (c: C).(\forall (t: T).(\forall (m: nat).((ty3 g c t 
@@ -80,222 +70,108 @@ TList).(\lambda (i: nat).(eq T t (THeads (Flat Appl) ws (TLRef i)))))
 TList).(\lambda (i: nat).(nf2 c (TLRef i)))))))))))
 \def
  \lambda (g: G).(\lambda (c: C).(\lambda (t: T).(\lambda (m: nat).(\lambda 
-(H: (ty3 g c t (TSort m))).(\lambda (H0: (nf2 c t)).(let TMP_1 \def (TSort m) 
-in (let H_x \def (ty3_nf2_inv_all g c t TMP_1 H H0) in (let H1 \def H_x in 
-(let TMP_4 \def (\lambda (w: T).(\lambda (u: T).(let TMP_2 \def (Bind Abst) 
-in (let TMP_3 \def (THead TMP_2 w u) in (eq T t TMP_3))))) in (let TMP_5 \def 
-(\lambda (w: T).(\lambda (_: T).(nf2 c w))) in (let TMP_8 \def (\lambda (w: 
-T).(\lambda (u: T).(let TMP_6 \def (Bind Abst) in (let TMP_7 \def (CHead c 
-TMP_6 w) in (nf2 TMP_7 u))))) in (let TMP_9 \def (ex3_2 T T TMP_4 TMP_5 
-TMP_8) in (let TMP_11 \def (\lambda (n: nat).(let TMP_10 \def (TSort n) in 
-(eq T t TMP_10))) in (let TMP_12 \def (ex nat TMP_11) in (let TMP_16 \def 
-(\lambda (ws: TList).(\lambda (i: nat).(let TMP_13 \def (Flat Appl) in (let 
-TMP_14 \def (TLRef i) in (let TMP_15 \def (THeads TMP_13 ws TMP_14) in (eq T 
-t TMP_15)))))) in (let TMP_17 \def (\lambda (ws: TList).(\lambda (_: 
-nat).(nfs2 c ws))) in (let TMP_19 \def (\lambda (_: TList).(\lambda (i: 
-nat).(let TMP_18 \def (TLRef i) in (nf2 c TMP_18)))) in (let TMP_20 \def 
-(ex3_2 TList nat TMP_16 TMP_17 TMP_19) in (let TMP_22 \def (\lambda (n: 
-nat).(let TMP_21 \def (TSort n) in (eq T t TMP_21))) in (let TMP_24 \def 
-(\lambda (n: nat).(let TMP_23 \def (next g n) in (eq nat m TMP_23))) in (let 
-TMP_25 \def (ex2 nat TMP_22 TMP_24) in (let TMP_29 \def (\lambda (ws: 
-TList).(\lambda (i: nat).(let TMP_26 \def (Flat Appl) in (let TMP_27 \def 
-(TLRef i) in (let TMP_28 \def (THeads TMP_26 ws TMP_27) in (eq T t 
-TMP_28)))))) in (let TMP_30 \def (\lambda (ws: TList).(\lambda (_: nat).(nfs2 
-c ws))) in (let TMP_32 \def (\lambda (_: TList).(\lambda (i: nat).(let TMP_31 
-\def (TLRef i) in (nf2 c TMP_31)))) in (let TMP_33 \def (ex3_2 TList nat 
-TMP_29 TMP_30 TMP_32) in (let TMP_34 \def (or TMP_25 TMP_33) in (let TMP_129 
-\def (\lambda (H2: (ex3_2 T T (\lambda (w: T).(\lambda (u: T).(eq T t (THead 
-(Bind Abst) w u)))) (\lambda (w: T).(\lambda (_: T).(nf2 c w))) (\lambda (w: 
-T).(\lambda (u: T).(nf2 (CHead c (Bind Abst) w) u))))).(let TMP_37 \def 
-(\lambda (w: T).(\lambda (u: T).(let TMP_35 \def (Bind Abst) in (let TMP_36 
-\def (THead TMP_35 w u) in (eq T t TMP_36))))) in (let TMP_38 \def (\lambda 
-(w: T).(\lambda (_: T).(nf2 c w))) in (let TMP_41 \def (\lambda (w: 
-T).(\lambda (u: T).(let TMP_39 \def (Bind Abst) in (let TMP_40 \def (CHead c 
-TMP_39 w) in (nf2 TMP_40 u))))) in (let TMP_43 \def (\lambda (n: nat).(let 
-TMP_42 \def (TSort n) in (eq T t TMP_42))) in (let TMP_45 \def (\lambda (n: 
-nat).(let TMP_44 \def (next g n) in (eq nat m TMP_44))) in (let TMP_46 \def 
-(ex2 nat TMP_43 TMP_45) in (let TMP_50 \def (\lambda (ws: TList).(\lambda (i: 
-nat).(let TMP_47 \def (Flat Appl) in (let TMP_48 \def (TLRef i) in (let 
-TMP_49 \def (THeads TMP_47 ws TMP_48) in (eq T t TMP_49)))))) in (let TMP_51 
-\def (\lambda (ws: TList).(\lambda (_: nat).(nfs2 c ws))) in (let TMP_53 \def 
-(\lambda (_: TList).(\lambda (i: nat).(let TMP_52 \def (TLRef i) in (nf2 c 
-TMP_52)))) in (let TMP_54 \def (ex3_2 TList nat TMP_50 TMP_51 TMP_53) in (let 
-TMP_55 \def (or TMP_46 TMP_54) in (let TMP_128 \def (\lambda (x0: T).(\lambda 
-(x1: T).(\lambda (H3: (eq T t (THead (Bind Abst) x0 x1))).(\lambda (_: (nf2 c 
-x0)).(\lambda (_: (nf2 (CHead c (Bind Abst) x0) x1)).(let TMP_57 \def 
-(\lambda (t0: T).(let TMP_56 \def (TSort m) in (ty3 g c t0 TMP_56))) in (let 
-TMP_58 \def (Bind Abst) in (let TMP_59 \def (THead TMP_58 x0 x1) in (let H6 
-\def (eq_ind T t TMP_57 H TMP_59 H3) in (let TMP_60 \def (Bind Abst) in (let 
-TMP_61 \def (THead TMP_60 x0 x1) in (let TMP_75 \def (\lambda (t0: T).(let 
-TMP_63 \def (\lambda (n: nat).(let TMP_62 \def (TSort n) in (eq T t0 
-TMP_62))) in (let TMP_65 \def (\lambda (n: nat).(let TMP_64 \def (next g n) 
-in (eq nat m TMP_64))) in (let TMP_66 \def (ex2 nat TMP_63 TMP_65) in (let 
-TMP_70 \def (\lambda (ws: TList).(\lambda (i: nat).(let TMP_67 \def (Flat 
-Appl) in (let TMP_68 \def (TLRef i) in (let TMP_69 \def (THeads TMP_67 ws 
-TMP_68) in (eq T t0 TMP_69)))))) in (let TMP_71 \def (\lambda (ws: 
-TList).(\lambda (_: nat).(nfs2 c ws))) in (let TMP_73 \def (\lambda (_: 
-TList).(\lambda (i: nat).(let TMP_72 \def (TLRef i) in (nf2 c TMP_72)))) in 
-(let TMP_74 \def (ex3_2 TList nat TMP_70 TMP_71 TMP_73) in (or TMP_66 
-TMP_74))))))))) in (let TMP_79 \def (\lambda (t2: T).(\lambda (_: T).(let 
-TMP_76 \def (Bind Abst) in (let TMP_77 \def (THead TMP_76 x0 t2) in (let 
-TMP_78 \def (TSort m) in (pc3 c TMP_77 TMP_78)))))) in (let TMP_80 \def 
-(\lambda (_: T).(\lambda (t0: T).(ty3 g c x0 t0))) in (let TMP_83 \def 
-(\lambda (t2: T).(\lambda (_: T).(let TMP_81 \def (Bind Abst) in (let TMP_82 
-\def (CHead c TMP_81 x0) in (ty3 g TMP_82 x1 t2))))) in (let TMP_87 \def 
-(\lambda (n: nat).(let TMP_84 \def (Bind Abst) in (let TMP_85 \def (THead 
-TMP_84 x0 x1) in (let TMP_86 \def (TSort n) in (eq T TMP_85 TMP_86))))) in 
-(let TMP_89 \def (\lambda (n: nat).(let TMP_88 \def (next g n) in (eq nat m 
-TMP_88))) in (let TMP_90 \def (ex2 nat TMP_87 TMP_89) in (let TMP_96 \def 
-(\lambda (ws: TList).(\lambda (i: nat).(let TMP_91 \def (Bind Abst) in (let 
-TMP_92 \def (THead TMP_91 x0 x1) in (let TMP_93 \def (Flat Appl) in (let 
-TMP_94 \def (TLRef i) in (let TMP_95 \def (THeads TMP_93 ws TMP_94) in (eq T 
-TMP_92 TMP_95)))))))) in (let TMP_97 \def (\lambda (ws: TList).(\lambda (_: 
-nat).(nfs2 c ws))) in (let TMP_99 \def (\lambda (_: TList).(\lambda (i: 
-nat).(let TMP_98 \def (TLRef i) in (nf2 c TMP_98)))) in (let TMP_100 \def 
-(ex3_2 TList nat TMP_96 TMP_97 TMP_99) in (let TMP_101 \def (or TMP_90 
-TMP_100) in (let TMP_124 \def (\lambda (x2: T).(\lambda (x3: T).(\lambda (H7: 
+(H: (ty3 g c t (TSort m))).(\lambda (H0: (nf2 c t)).(let H_x \def 
+(ty3_nf2_inv_all g c t (TSort m) H H0) in (let H1 \def H_x in (or3_ind (ex3_2 
+T T (\lambda (w: T).(\lambda (u: T).(eq T t (THead (Bind Abst) w u)))) 
+(\lambda (w: T).(\lambda (_: T).(nf2 c w))) (\lambda (w: T).(\lambda (u: 
+T).(nf2 (CHead c (Bind Abst) w) u)))) (ex nat (\lambda (n: nat).(eq T t 
+(TSort n)))) (ex3_2 TList nat (\lambda (ws: TList).(\lambda (i: nat).(eq T t 
+(THeads (Flat Appl) ws (TLRef i))))) (\lambda (ws: TList).(\lambda (_: 
+nat).(nfs2 c ws))) (\lambda (_: TList).(\lambda (i: nat).(nf2 c (TLRef i))))) 
+(or (ex2 nat (\lambda (n: nat).(eq T t (TSort n))) (\lambda (n: nat).(eq nat 
+m (next g n)))) (ex3_2 TList nat (\lambda (ws: TList).(\lambda (i: nat).(eq T 
+t (THeads (Flat Appl) ws (TLRef i))))) (\lambda (ws: TList).(\lambda (_: 
+nat).(nfs2 c ws))) (\lambda (_: TList).(\lambda (i: nat).(nf2 c (TLRef 
+i)))))) (\lambda (H2: (ex3_2 T T (\lambda (w: T).(\lambda (u: T).(eq T t 
+(THead (Bind Abst) w u)))) (\lambda (w: T).(\lambda (_: T).(nf2 c w))) 
+(\lambda (w: T).(\lambda (u: T).(nf2 (CHead c (Bind Abst) w) 
+u))))).(ex3_2_ind T T (\lambda (w: T).(\lambda (u: T).(eq T t (THead (Bind 
+Abst) w u)))) (\lambda (w: T).(\lambda (_: T).(nf2 c w))) (\lambda (w: 
+T).(\lambda (u: T).(nf2 (CHead c (Bind Abst) w) u))) (or (ex2 nat (\lambda 
+(n: nat).(eq T t (TSort n))) (\lambda (n: nat).(eq nat m (next g n)))) (ex3_2 
+TList nat (\lambda (ws: TList).(\lambda (i: nat).(eq T t (THeads (Flat Appl) 
+ws (TLRef i))))) (\lambda (ws: TList).(\lambda (_: nat).(nfs2 c ws))) 
+(\lambda (_: TList).(\lambda (i: nat).(nf2 c (TLRef i)))))) (\lambda (x0: 
+T).(\lambda (x1: T).(\lambda (H3: (eq T t (THead (Bind Abst) x0 
+x1))).(\lambda (_: (nf2 c x0)).(\lambda (_: (nf2 (CHead c (Bind Abst) x0) 
+x1)).(let H6 \def (eq_ind T t (\lambda (t0: T).(ty3 g c t0 (TSort m))) H 
+(THead (Bind Abst) x0 x1) H3) in (eq_ind_r T (THead (Bind Abst) x0 x1) 
+(\lambda (t0: T).(or (ex2 nat (\lambda (n: nat).(eq T t0 (TSort n))) (\lambda 
+(n: nat).(eq nat m (next g n)))) (ex3_2 TList nat (\lambda (ws: 
+TList).(\lambda (i: nat).(eq T t0 (THeads (Flat Appl) ws (TLRef i))))) 
+(\lambda (ws: TList).(\lambda (_: nat).(nfs2 c ws))) (\lambda (_: 
+TList).(\lambda (i: nat).(nf2 c (TLRef i))))))) (ex3_2_ind T T (\lambda (t2: 
+T).(\lambda (_: T).(pc3 c (THead (Bind Abst) x0 t2) (TSort m)))) (\lambda (_: 
+T).(\lambda (t0: T).(ty3 g c x0 t0))) (\lambda (t2: T).(\lambda (_: T).(ty3 g 
+(CHead c (Bind Abst) x0) x1 t2))) (or (ex2 nat (\lambda (n: nat).(eq T (THead 
+(Bind Abst) x0 x1) (TSort n))) (\lambda (n: nat).(eq nat m (next g n)))) 
+(ex3_2 TList nat (\lambda (ws: TList).(\lambda (i: nat).(eq T (THead (Bind 
+Abst) x0 x1) (THeads (Flat Appl) ws (TLRef i))))) (\lambda (ws: 
+TList).(\lambda (_: nat).(nfs2 c ws))) (\lambda (_: TList).(\lambda (i: 
+nat).(nf2 c (TLRef i)))))) (\lambda (x2: T).(\lambda (x3: T).(\lambda (H7: 
 (pc3 c (THead (Bind Abst) x0 x2) (TSort m))).(\lambda (_: (ty3 g c x0 
-x3)).(\lambda (_: (ty3 g (CHead c (Bind Abst) x0) x1 x2)).(let TMP_102 \def 
-(TSort m) in (let TMP_103 \def (Bind Abst) in (let TMP_104 \def (THead 
-TMP_103 x0 x2) in (let TMP_105 \def (pc3_s c TMP_102 TMP_104 H7) in (let 
-TMP_109 \def (\lambda (n: nat).(let TMP_106 \def (Bind Abst) in (let TMP_107 
-\def (THead TMP_106 x0 x1) in (let TMP_108 \def (TSort n) in (eq T TMP_107 
-TMP_108))))) in (let TMP_111 \def (\lambda (n: nat).(let TMP_110 \def (next g 
-n) in (eq nat m TMP_110))) in (let TMP_112 \def (ex2 nat TMP_109 TMP_111) in 
-(let TMP_118 \def (\lambda (ws: TList).(\lambda (i: nat).(let TMP_113 \def 
-(Bind Abst) in (let TMP_114 \def (THead TMP_113 x0 x1) in (let TMP_115 \def 
-(Flat Appl) in (let TMP_116 \def (TLRef i) in (let TMP_117 \def (THeads 
-TMP_115 ws TMP_116) in (eq T TMP_114 TMP_117)))))))) in (let TMP_119 \def 
-(\lambda (ws: TList).(\lambda (_: nat).(nfs2 c ws))) in (let TMP_121 \def 
-(\lambda (_: TList).(\lambda (i: nat).(let TMP_120 \def (TLRef i) in (nf2 c 
-TMP_120)))) in (let TMP_122 \def (ex3_2 TList nat TMP_118 TMP_119 TMP_121) in 
-(let TMP_123 \def (or TMP_112 TMP_122) in (pc3_gen_sort_abst c x0 x2 m 
-TMP_105 TMP_123)))))))))))))))))) in (let TMP_125 \def (TSort m) in (let 
-TMP_126 \def (ty3_gen_bind g Abst c x0 x1 TMP_125 H6) in (let TMP_127 \def 
-(ex3_2_ind T T TMP_79 TMP_80 TMP_83 TMP_101 TMP_124 TMP_126) in (eq_ind_r T 
-TMP_61 TMP_75 TMP_127 t H3)))))))))))))))))))))))))))) in (ex3_2_ind T T 
-TMP_37 TMP_38 TMP_41 TMP_55 TMP_128 H2)))))))))))))) in (let TMP_215 \def 
-(\lambda (H2: (ex nat (\lambda (n: nat).(eq T t (TSort n))))).(let TMP_131 
-\def (\lambda (n: nat).(let TMP_130 \def (TSort n) in (eq T t TMP_130))) in 
-(let TMP_133 \def (\lambda (n: nat).(let TMP_132 \def (TSort n) in (eq T t 
-TMP_132))) in (let TMP_135 \def (\lambda (n: nat).(let TMP_134 \def (next g 
-n) in (eq nat m TMP_134))) in (let TMP_136 \def (ex2 nat TMP_133 TMP_135) in 
-(let TMP_140 \def (\lambda (ws: TList).(\lambda (i: nat).(let TMP_137 \def 
-(Flat Appl) in (let TMP_138 \def (TLRef i) in (let TMP_139 \def (THeads 
-TMP_137 ws TMP_138) in (eq T t TMP_139)))))) in (let TMP_141 \def (\lambda 
-(ws: TList).(\lambda (_: nat).(nfs2 c ws))) in (let TMP_143 \def (\lambda (_: 
-TList).(\lambda (i: nat).(let TMP_142 \def (TLRef i) in (nf2 c TMP_142)))) in 
-(let TMP_144 \def (ex3_2 TList nat TMP_140 TMP_141 TMP_143) in (let TMP_145 
-\def (or TMP_136 TMP_144) in (let TMP_214 \def (\lambda (x: nat).(\lambda 
-(H3: (eq T t (TSort x))).(let TMP_147 \def (\lambda (t0: T).(let TMP_146 \def 
-(TSort m) in (ty3 g c t0 TMP_146))) in (let TMP_148 \def (TSort x) in (let H4 
-\def (eq_ind T t TMP_147 H TMP_148 H3) in (let TMP_149 \def (TSort x) in (let 
-TMP_163 \def (\lambda (t0: T).(let TMP_151 \def (\lambda (n: nat).(let 
-TMP_150 \def (TSort n) in (eq T t0 TMP_150))) in (let TMP_153 \def (\lambda 
-(n: nat).(let TMP_152 \def (next g n) in (eq nat m TMP_152))) in (let TMP_154 
-\def (ex2 nat TMP_151 TMP_153) in (let TMP_158 \def (\lambda (ws: 
-TList).(\lambda (i: nat).(let TMP_155 \def (Flat Appl) in (let TMP_156 \def 
-(TLRef i) in (let TMP_157 \def (THeads TMP_155 ws TMP_156) in (eq T t0 
-TMP_157)))))) in (let TMP_159 \def (\lambda (ws: TList).(\lambda (_: 
-nat).(nfs2 c ws))) in (let TMP_161 \def (\lambda (_: TList).(\lambda (i: 
-nat).(let TMP_160 \def (TLRef i) in (nf2 c TMP_160)))) in (let TMP_162 \def 
-(ex3_2 TList nat TMP_158 TMP_159 TMP_161) in (or TMP_154 TMP_162))))))))) in 
-(let TMP_164 \def (next g x) in (let TMP_180 \def (\lambda (n: nat).(let 
-TMP_167 \def (\lambda (n0: nat).(let TMP_165 \def (TSort x) in (let TMP_166 
-\def (TSort n0) in (eq T TMP_165 TMP_166)))) in (let TMP_169 \def (\lambda 
-(n0: nat).(let TMP_168 \def (next g n0) in (eq nat n TMP_168))) in (let 
-TMP_170 \def (ex2 nat TMP_167 TMP_169) in (let TMP_175 \def (\lambda (ws: 
-TList).(\lambda (i: nat).(let TMP_171 \def (TSort x) in (let TMP_172 \def 
-(Flat Appl) in (let TMP_173 \def (TLRef i) in (let TMP_174 \def (THeads 
-TMP_172 ws TMP_173) in (eq T TMP_171 TMP_174))))))) in (let TMP_176 \def 
-(\lambda (ws: TList).(\lambda (_: nat).(nfs2 c ws))) in (let TMP_178 \def 
-(\lambda (_: TList).(\lambda (i: nat).(let TMP_177 \def (TLRef i) in (nf2 c 
-TMP_177)))) in (let TMP_179 \def (ex3_2 TList nat TMP_175 TMP_176 TMP_178) in 
-(or TMP_170 TMP_179))))))))) in (let TMP_183 \def (\lambda (n: nat).(let 
-TMP_181 \def (TSort x) in (let TMP_182 \def (TSort n) in (eq T TMP_181 
-TMP_182)))) in (let TMP_186 \def (\lambda (n: nat).(let TMP_184 \def (next g 
-x) in (let TMP_185 \def (next g n) in (eq nat TMP_184 TMP_185)))) in (let 
-TMP_187 \def (ex2 nat TMP_183 TMP_186) in (let TMP_192 \def (\lambda (ws: 
-TList).(\lambda (i: nat).(let TMP_188 \def (TSort x) in (let TMP_189 \def 
-(Flat Appl) in (let TMP_190 \def (TLRef i) in (let TMP_191 \def (THeads 
-TMP_189 ws TMP_190) in (eq T TMP_188 TMP_191))))))) in (let TMP_193 \def 
-(\lambda (ws: TList).(\lambda (_: nat).(nfs2 c ws))) in (let TMP_195 \def 
-(\lambda (_: TList).(\lambda (i: nat).(let TMP_194 \def (TLRef i) in (nf2 c 
-TMP_194)))) in (let TMP_196 \def (ex3_2 TList nat TMP_192 TMP_193 TMP_195) in 
-(let TMP_199 \def (\lambda (n: nat).(let TMP_197 \def (TSort x) in (let 
-TMP_198 \def (TSort n) in (eq T TMP_197 TMP_198)))) in (let TMP_202 \def 
-(\lambda (n: nat).(let TMP_200 \def (next g x) in (let TMP_201 \def (next g 
-n) in (eq nat TMP_200 TMP_201)))) in (let TMP_203 \def (TSort x) in (let 
-TMP_204 \def (refl_equal T TMP_203) in (let TMP_205 \def (next g x) in (let 
-TMP_206 \def (refl_equal nat TMP_205) in (let TMP_207 \def (ex_intro2 nat 
-TMP_199 TMP_202 x TMP_204 TMP_206) in (let TMP_208 \def (or_introl TMP_187 
-TMP_196 TMP_207) in (let TMP_209 \def (next g x) in (let TMP_210 \def (TSort 
-m) in (let TMP_211 \def (ty3_gen_sort g c TMP_210 x H4) in (let TMP_212 \def 
-(pc3_gen_sort c TMP_209 m TMP_211) in (let TMP_213 \def (eq_ind nat TMP_164 
-TMP_180 TMP_208 m TMP_212) in (eq_ind_r T TMP_149 TMP_163 TMP_213 t 
-H3)))))))))))))))))))))))))))))) in (ex_ind nat TMP_131 TMP_145 TMP_214 
-H2)))))))))))) in (let TMP_295 \def (\lambda (H2: (ex3_2 TList nat (\lambda 
+x3)).(\lambda (_: (ty3 g (CHead c (Bind Abst) x0) x1 x2)).(pc3_gen_sort_abst 
+c x0 x2 m (pc3_s c (TSort m) (THead (Bind Abst) x0 x2) H7) (or (ex2 nat 
+(\lambda (n: nat).(eq T (THead (Bind Abst) x0 x1) (TSort n))) (\lambda (n: 
+nat).(eq nat m (next g n)))) (ex3_2 TList nat (\lambda (ws: TList).(\lambda 
+(i: nat).(eq T (THead (Bind Abst) x0 x1) (THeads (Flat Appl) ws (TLRef i))))) 
+(\lambda (ws: TList).(\lambda (_: nat).(nfs2 c ws))) (\lambda (_: 
+TList).(\lambda (i: nat).(nf2 c (TLRef i)))))))))))) (ty3_gen_bind g Abst c 
+x0 x1 (TSort m) H6)) t H3))))))) H2)) (\lambda (H2: (ex nat (\lambda (n: 
+nat).(eq T t (TSort n))))).(ex_ind nat (\lambda (n: nat).(eq T t (TSort n))) 
+(or (ex2 nat (\lambda (n: nat).(eq T t (TSort n))) (\lambda (n: nat).(eq nat 
+m (next g n)))) (ex3_2 TList nat (\lambda (ws: TList).(\lambda (i: nat).(eq T 
+t (THeads (Flat Appl) ws (TLRef i))))) (\lambda (ws: TList).(\lambda (_: 
+nat).(nfs2 c ws))) (\lambda (_: TList).(\lambda (i: nat).(nf2 c (TLRef 
+i)))))) (\lambda (x: nat).(\lambda (H3: (eq T t (TSort x))).(let H4 \def 
+(eq_ind T t (\lambda (t0: T).(ty3 g c t0 (TSort m))) H (TSort x) H3) in 
+(eq_ind_r T (TSort x) (\lambda (t0: T).(or (ex2 nat (\lambda (n: nat).(eq T 
+t0 (TSort n))) (\lambda (n: nat).(eq nat m (next g n)))) (ex3_2 TList nat 
+(\lambda (ws: TList).(\lambda (i: nat).(eq T t0 (THeads (Flat Appl) ws (TLRef 
+i))))) (\lambda (ws: TList).(\lambda (_: nat).(nfs2 c ws))) (\lambda (_: 
+TList).(\lambda (i: nat).(nf2 c (TLRef i))))))) (eq_ind nat (next g x) 
+(\lambda (n: nat).(or (ex2 nat (\lambda (n0: nat).(eq T (TSort x) (TSort 
+n0))) (\lambda (n0: nat).(eq nat n (next g n0)))) (ex3_2 TList nat (\lambda 
+(ws: TList).(\lambda (i: nat).(eq T (TSort x) (THeads (Flat Appl) ws (TLRef 
+i))))) (\lambda (ws: TList).(\lambda (_: nat).(nfs2 c ws))) (\lambda (_: 
+TList).(\lambda (i: nat).(nf2 c (TLRef i))))))) (or_introl (ex2 nat (\lambda 
+(n: nat).(eq T (TSort x) (TSort n))) (\lambda (n: nat).(eq nat (next g x) 
+(next g n)))) (ex3_2 TList nat (\lambda (ws: TList).(\lambda (i: nat).(eq T 
+(TSort x) (THeads (Flat Appl) ws (TLRef i))))) (\lambda (ws: TList).(\lambda 
+(_: nat).(nfs2 c ws))) (\lambda (_: TList).(\lambda (i: nat).(nf2 c (TLRef 
+i))))) (ex_intro2 nat (\lambda (n: nat).(eq T (TSort x) (TSort n))) (\lambda 
+(n: nat).(eq nat (next g x) (next g n))) x (refl_equal T (TSort x)) 
+(refl_equal nat (next g x)))) m (pc3_gen_sort c (next g x) m (ty3_gen_sort g 
+c (TSort m) x H4))) t H3)))) H2)) (\lambda (H2: (ex3_2 TList nat (\lambda 
+(ws: TList).(\lambda (i: nat).(eq T t (THeads (Flat Appl) ws (TLRef i))))) 
+(\lambda (ws: TList).(\lambda (_: nat).(nfs2 c ws))) (\lambda (_: 
+TList).(\lambda (i: nat).(nf2 c (TLRef i)))))).(ex3_2_ind TList nat (\lambda 
 (ws: TList).(\lambda (i: nat).(eq T t (THeads (Flat Appl) ws (TLRef i))))) 
 (\lambda (ws: TList).(\lambda (_: nat).(nfs2 c ws))) (\lambda (_: 
-TList).(\lambda (i: nat).(nf2 c (TLRef i)))))).(let TMP_219 \def (\lambda 
-(ws: TList).(\lambda (i: nat).(let TMP_216 \def (Flat Appl) in (let TMP_217 
-\def (TLRef i) in (let TMP_218 \def (THeads TMP_216 ws TMP_217) in (eq T t 
-TMP_218)))))) in (let TMP_220 \def (\lambda (ws: TList).(\lambda (_: 
-nat).(nfs2 c ws))) in (let TMP_222 \def (\lambda (_: TList).(\lambda (i: 
-nat).(let TMP_221 \def (TLRef i) in (nf2 c TMP_221)))) in (let TMP_224 \def 
-(\lambda (n: nat).(let TMP_223 \def (TSort n) in (eq T t TMP_223))) in (let 
-TMP_226 \def (\lambda (n: nat).(let TMP_225 \def (next g n) in (eq nat m 
-TMP_225))) in (let TMP_227 \def (ex2 nat TMP_224 TMP_226) in (let TMP_231 
-\def (\lambda (ws: TList).(\lambda (i: nat).(let TMP_228 \def (Flat Appl) in 
-(let TMP_229 \def (TLRef i) in (let TMP_230 \def (THeads TMP_228 ws TMP_229) 
-in (eq T t TMP_230)))))) in (let TMP_232 \def (\lambda (ws: TList).(\lambda 
-(_: nat).(nfs2 c ws))) in (let TMP_234 \def (\lambda (_: TList).(\lambda (i: 
-nat).(let TMP_233 \def (TLRef i) in (nf2 c TMP_233)))) in (let TMP_235 \def 
-(ex3_2 TList nat TMP_231 TMP_232 TMP_234) in (let TMP_236 \def (or TMP_227 
-TMP_235) in (let TMP_294 \def (\lambda (x0: TList).(\lambda (x1: 
-nat).(\lambda (H3: (eq T t (THeads (Flat Appl) x0 (TLRef x1)))).(\lambda (H4: 
-(nfs2 c x0)).(\lambda (H5: (nf2 c (TLRef x1))).(let TMP_238 \def (\lambda 
-(t0: T).(let TMP_237 \def (TSort m) in (ty3 g c t0 TMP_237))) in (let TMP_239 
-\def (Flat Appl) in (let TMP_240 \def (TLRef x1) in (let TMP_241 \def (THeads 
-TMP_239 x0 TMP_240) in (let H6 \def (eq_ind T t TMP_238 H TMP_241 H3) in (let 
-TMP_242 \def (Flat Appl) in (let TMP_243 \def (TLRef x1) in (let TMP_244 \def 
-(THeads TMP_242 x0 TMP_243) in (let TMP_258 \def (\lambda (t0: T).(let 
-TMP_246 \def (\lambda (n: nat).(let TMP_245 \def (TSort n) in (eq T t0 
-TMP_245))) in (let TMP_248 \def (\lambda (n: nat).(let TMP_247 \def (next g 
-n) in (eq nat m TMP_247))) in (let TMP_249 \def (ex2 nat TMP_246 TMP_248) in 
-(let TMP_253 \def (\lambda (ws: TList).(\lambda (i: nat).(let TMP_250 \def 
-(Flat Appl) in (let TMP_251 \def (TLRef i) in (let TMP_252 \def (THeads 
-TMP_250 ws TMP_251) in (eq T t0 TMP_252)))))) in (let TMP_254 \def (\lambda 
-(ws: TList).(\lambda (_: nat).(nfs2 c ws))) in (let TMP_256 \def (\lambda (_: 
-TList).(\lambda (i: nat).(let TMP_255 \def (TLRef i) in (nf2 c TMP_255)))) in 
-(let TMP_257 \def (ex3_2 TList nat TMP_253 TMP_254 TMP_256) in (or TMP_249 
-TMP_257))))))))) in (let TMP_263 \def (\lambda (n: nat).(let TMP_259 \def 
-(Flat Appl) in (let TMP_260 \def (TLRef x1) in (let TMP_261 \def (THeads 
-TMP_259 x0 TMP_260) in (let TMP_262 \def (TSort n) in (eq T TMP_261 
-TMP_262)))))) in (let TMP_265 \def (\lambda (n: nat).(let TMP_264 \def (next 
-g n) in (eq nat m TMP_264))) in (let TMP_266 \def (ex2 nat TMP_263 TMP_265) 
-in (let TMP_273 \def (\lambda (ws: TList).(\lambda (i: nat).(let TMP_267 \def 
-(Flat Appl) in (let TMP_268 \def (TLRef x1) in (let TMP_269 \def (THeads 
-TMP_267 x0 TMP_268) in (let TMP_270 \def (Flat Appl) in (let TMP_271 \def 
-(TLRef i) in (let TMP_272 \def (THeads TMP_270 ws TMP_271) in (eq T TMP_269 
-TMP_272))))))))) in (let TMP_274 \def (\lambda (ws: TList).(\lambda (_: 
-nat).(nfs2 c ws))) in (let TMP_276 \def (\lambda (_: TList).(\lambda (i: 
-nat).(let TMP_275 \def (TLRef i) in (nf2 c TMP_275)))) in (let TMP_277 \def 
-(ex3_2 TList nat TMP_273 TMP_274 TMP_276) in (let TMP_284 \def (\lambda (ws: 
-TList).(\lambda (i: nat).(let TMP_278 \def (Flat Appl) in (let TMP_279 \def 
-(TLRef x1) in (let TMP_280 \def (THeads TMP_278 x0 TMP_279) in (let TMP_281 
-\def (Flat Appl) in (let TMP_282 \def (TLRef i) in (let TMP_283 \def (THeads 
-TMP_281 ws TMP_282) in (eq T TMP_280 TMP_283))))))))) in (let TMP_285 \def 
-(\lambda (ws: TList).(\lambda (_: nat).(nfs2 c ws))) in (let TMP_287 \def 
-(\lambda (_: TList).(\lambda (i: nat).(let TMP_286 \def (TLRef i) in (nf2 c 
-TMP_286)))) in (let TMP_288 \def (Flat Appl) in (let TMP_289 \def (TLRef x1) 
-in (let TMP_290 \def (THeads TMP_288 x0 TMP_289) in (let TMP_291 \def 
-(refl_equal T TMP_290) in (let TMP_292 \def (ex3_2_intro TList nat TMP_284 
-TMP_285 TMP_287 x0 x1 TMP_291 H4 H5) in (let TMP_293 \def (or_intror TMP_266 
-TMP_277 TMP_292) in (eq_ind_r T TMP_244 TMP_258 TMP_293 t 
-H3))))))))))))))))))))))))))))))) in (ex3_2_ind TList nat TMP_219 TMP_220 
-TMP_222 TMP_236 TMP_294 H2)))))))))))))) in (or3_ind TMP_9 TMP_12 TMP_20 
-TMP_34 TMP_129 TMP_215 TMP_295 H1)))))))))))))))))))))))))))))).
+TList).(\lambda (i: nat).(nf2 c (TLRef i)))) (or (ex2 nat (\lambda (n: 
+nat).(eq T t (TSort n))) (\lambda (n: nat).(eq nat m (next g n)))) (ex3_2 
+TList nat (\lambda (ws: TList).(\lambda (i: nat).(eq T t (THeads (Flat Appl) 
+ws (TLRef i))))) (\lambda (ws: TList).(\lambda (_: nat).(nfs2 c ws))) 
+(\lambda (_: TList).(\lambda (i: nat).(nf2 c (TLRef i)))))) (\lambda (x0: 
+TList).(\lambda (x1: nat).(\lambda (H3: (eq T t (THeads (Flat Appl) x0 (TLRef 
+x1)))).(\lambda (H4: (nfs2 c x0)).(\lambda (H5: (nf2 c (TLRef x1))).(let H6 
+\def (eq_ind T t (\lambda (t0: T).(ty3 g c t0 (TSort m))) H (THeads (Flat 
+Appl) x0 (TLRef x1)) H3) in (eq_ind_r T (THeads (Flat Appl) x0 (TLRef x1)) 
+(\lambda (t0: T).(or (ex2 nat (\lambda (n: nat).(eq T t0 (TSort n))) (\lambda 
+(n: nat).(eq nat m (next g n)))) (ex3_2 TList nat (\lambda (ws: 
+TList).(\lambda (i: nat).(eq T t0 (THeads (Flat Appl) ws (TLRef i))))) 
+(\lambda (ws: TList).(\lambda (_: nat).(nfs2 c ws))) (\lambda (_: 
+TList).(\lambda (i: nat).(nf2 c (TLRef i))))))) (or_intror (ex2 nat (\lambda 
+(n: nat).(eq T (THeads (Flat Appl) x0 (TLRef x1)) (TSort n))) (\lambda (n: 
+nat).(eq nat m (next g n)))) (ex3_2 TList nat (\lambda (ws: TList).(\lambda 
+(i: nat).(eq T (THeads (Flat Appl) x0 (TLRef x1)) (THeads (Flat Appl) ws 
+(TLRef i))))) (\lambda (ws: TList).(\lambda (_: nat).(nfs2 c ws))) (\lambda 
+(_: TList).(\lambda (i: nat).(nf2 c (TLRef i))))) (ex3_2_intro TList nat 
+(\lambda (ws: TList).(\lambda (i: nat).(eq T (THeads (Flat Appl) x0 (TLRef 
+x1)) (THeads (Flat Appl) ws (TLRef i))))) (\lambda (ws: TList).(\lambda (_: 
+nat).(nfs2 c ws))) (\lambda (_: TList).(\lambda (i: nat).(nf2 c (TLRef i)))) 
+x0 x1 (refl_equal T (THeads (Flat Appl) x0 (TLRef x1))) H4 H5)) t H3))))))) 
+H2)) H1)))))))).
 
 theorem ty3_nf2_gen__ty3_nf2_inv_abst_aux:
  \forall (c: C).(\forall (w1: T).(\forall (u1: T).((ty3_nf2_inv_abst_premise 
@@ -311,18 +187,11 @@ T).(\lambda (u2: T).(\lambda (H0: (pc3 c (THead (Flat Appl) t (THead (Bind
 Abst) w2 u2)) (THead (Bind Abst) w1 u1))).(\lambda (d: C).(\lambda (wi: 
 T).(\lambda (i: nat).(\lambda (H1: (getl i c (CHead d (Bind Abst) 
 wi))).(\lambda (vs: TList).(\lambda (H2: (pc3 c (THeads (Flat Appl) vs (lift 
-(S i) O wi)) (THead (Bind Abst) w2 u2))).(let TMP_1 \def (TCons t vs) in (let 
-TMP_2 \def (Flat Appl) in (let TMP_3 \def (Bind Abst) in (let TMP_4 \def 
-(THead TMP_3 w2 u2) in (let TMP_5 \def (THead TMP_2 t TMP_4) in (let TMP_6 
-\def (Flat Appl) in (let TMP_7 \def (Flat Appl) in (let TMP_8 \def (S i) in 
-(let TMP_9 \def (lift TMP_8 O wi) in (let TMP_10 \def (THeads TMP_7 vs TMP_9) 
-in (let TMP_11 \def (THead TMP_6 t TMP_10) in (let TMP_12 \def (Flat Appl) in 
-(let TMP_13 \def (S i) in (let TMP_14 \def (lift TMP_13 O wi) in (let TMP_15 
-\def (THeads TMP_12 vs TMP_14) in (let TMP_16 \def (Bind Abst) in (let TMP_17 
-\def (THead TMP_16 w2 u2) in (let TMP_18 \def (pc3_thin_dx c TMP_15 TMP_17 H2 
-t Appl) in (let TMP_19 \def (Bind Abst) in (let TMP_20 \def (THead TMP_19 w1 
-u1) in (let TMP_21 \def (pc3_t TMP_5 c TMP_11 TMP_18 TMP_20 H0) in (H d wi i 
-H1 TMP_1 TMP_21))))))))))))))))))))))))))))))))))).
+(S i) O wi)) (THead (Bind Abst) w2 u2))).(H d wi i H1 (TCons t vs) (pc3_t 
+(THead (Flat Appl) t (THead (Bind Abst) w2 u2)) c (THead (Flat Appl) t 
+(THeads (Flat Appl) vs (lift (S i) O wi))) (pc3_thin_dx c (THeads (Flat Appl) 
+vs (lift (S i) O wi)) (THead (Bind Abst) w2 u2) H2 t Appl) (THead (Bind Abst) 
+w1 u1) H0))))))))))))))).
 
 theorem ty3_nf2_inv_abst:
  \forall (g: G).(\forall (c: C).(\forall (t: T).(\forall (w: T).(\forall (u: 
@@ -336,475 +205,251 @@ v))))))))))))
  \lambda (g: G).(\lambda (c: C).(\lambda (t: T).(\lambda (w: T).(\lambda (u: 
 T).(\lambda (H: (ty3 g c t (THead (Bind Abst) w u))).(\lambda (H0: (nf2 c 
 t)).(\lambda (H1: (nf2 c w)).(\lambda (H2: (ty3_nf2_inv_abst_premise c w 
-u)).(let TMP_1 \def (Bind Abst) in (let TMP_2 \def (THead TMP_1 w u) in (let 
-H_x \def (ty3_nf2_inv_all g c t TMP_2 H H0) in (let H3 \def H_x in (let TMP_5 
-\def (\lambda (w0: T).(\lambda (u0: T).(let TMP_3 \def (Bind Abst) in (let 
-TMP_4 \def (THead TMP_3 w0 u0) in (eq T t TMP_4))))) in (let TMP_6 \def 
-(\lambda (w0: T).(\lambda (_: T).(nf2 c w0))) in (let TMP_9 \def (\lambda 
-(w0: T).(\lambda (u0: T).(let TMP_7 \def (Bind Abst) in (let TMP_8 \def 
-(CHead c TMP_7 w0) in (nf2 TMP_8 u0))))) in (let TMP_10 \def (ex3_2 T T TMP_5 
-TMP_6 TMP_9) in (let TMP_12 \def (\lambda (n: nat).(let TMP_11 \def (TSort n) 
-in (eq T t TMP_11))) in (let TMP_13 \def (ex nat TMP_12) in (let TMP_17 \def 
-(\lambda (ws: TList).(\lambda (i: nat).(let TMP_14 \def (Flat Appl) in (let 
-TMP_15 \def (TLRef i) in (let TMP_16 \def (THeads TMP_14 ws TMP_15) in (eq T 
-t TMP_16)))))) in (let TMP_18 \def (\lambda (ws: TList).(\lambda (_: 
-nat).(nfs2 c ws))) in (let TMP_20 \def (\lambda (_: TList).(\lambda (i: 
-nat).(let TMP_19 \def (TLRef i) in (nf2 c TMP_19)))) in (let TMP_21 \def 
-(ex3_2 TList nat TMP_17 TMP_18 TMP_20) in (let TMP_24 \def (\lambda (v: 
-T).(\lambda (_: T).(let TMP_22 \def (Bind Abst) in (let TMP_23 \def (THead 
-TMP_22 w v) in (eq T t TMP_23))))) in (let TMP_25 \def (\lambda (_: 
-T).(\lambda (w0: T).(ty3 g c w w0))) in (let TMP_28 \def (\lambda (v: 
-T).(\lambda (_: T).(let TMP_26 \def (Bind Abst) in (let TMP_27 \def (CHead c 
-TMP_26 w) in (ty3 g TMP_27 v u))))) in (let TMP_31 \def (\lambda (v: 
-T).(\lambda (_: T).(let TMP_29 \def (Bind Abst) in (let TMP_30 \def (CHead c 
-TMP_29 w) in (nf2 TMP_30 v))))) in (let TMP_32 \def (ex4_2 T T TMP_24 TMP_25 
-TMP_28 TMP_31) in (let TMP_199 \def (\lambda (H4: (ex3_2 T T (\lambda (w0: 
-T).(\lambda (u0: T).(eq T t (THead (Bind Abst) w0 u0)))) (\lambda (w0: 
-T).(\lambda (_: T).(nf2 c w0))) (\lambda (w0: T).(\lambda (u0: T).(nf2 (CHead 
-c (Bind Abst) w0) u0))))).(let TMP_35 \def (\lambda (w0: T).(\lambda (u0: 
-T).(let TMP_33 \def (Bind Abst) in (let TMP_34 \def (THead TMP_33 w0 u0) in 
-(eq T t TMP_34))))) in (let TMP_36 \def (\lambda (w0: T).(\lambda (_: T).(nf2 
-c w0))) in (let TMP_39 \def (\lambda (w0: T).(\lambda (u0: T).(let TMP_37 
-\def (Bind Abst) in (let TMP_38 \def (CHead c TMP_37 w0) in (nf2 TMP_38 
-u0))))) in (let TMP_42 \def (\lambda (v: T).(\lambda (_: T).(let TMP_40 \def 
-(Bind Abst) in (let TMP_41 \def (THead TMP_40 w v) in (eq T t TMP_41))))) in 
-(let TMP_43 \def (\lambda (_: T).(\lambda (w0: T).(ty3 g c w w0))) in (let 
-TMP_46 \def (\lambda (v: T).(\lambda (_: T).(let TMP_44 \def (Bind Abst) in 
-(let TMP_45 \def (CHead c TMP_44 w) in (ty3 g TMP_45 v u))))) in (let TMP_49 
-\def (\lambda (v: T).(\lambda (_: T).(let TMP_47 \def (Bind Abst) in (let 
-TMP_48 \def (CHead c TMP_47 w) in (nf2 TMP_48 v))))) in (let TMP_50 \def 
-(ex4_2 T T TMP_42 TMP_43 TMP_46 TMP_49) in (let TMP_198 \def (\lambda (x0: 
-T).(\lambda (x1: T).(\lambda (H5: (eq T t (THead (Bind Abst) x0 
-x1))).(\lambda (H6: (nf2 c x0)).(\lambda (H7: (nf2 (CHead c (Bind Abst) x0) 
-x1)).(let TMP_53 \def (\lambda (t0: T).(let TMP_51 \def (Bind Abst) in (let 
-TMP_52 \def (THead TMP_51 w u) in (ty3 g c t0 TMP_52)))) in (let TMP_54 \def 
-(Bind Abst) in (let TMP_55 \def (THead TMP_54 x0 x1) in (let H8 \def (eq_ind 
-T t TMP_53 H TMP_55 H5) in (let TMP_56 \def (Bind Abst) in (let TMP_57 \def 
-(THead TMP_56 x0 x1) in (let TMP_68 \def (\lambda (t0: T).(let TMP_60 \def 
-(\lambda (v: T).(\lambda (_: T).(let TMP_58 \def (Bind Abst) in (let TMP_59 
-\def (THead TMP_58 w v) in (eq T t0 TMP_59))))) in (let TMP_61 \def (\lambda 
-(_: T).(\lambda (w0: T).(ty3 g c w w0))) in (let TMP_64 \def (\lambda (v: 
-T).(\lambda (_: T).(let TMP_62 \def (Bind Abst) in (let TMP_63 \def (CHead c 
-TMP_62 w) in (ty3 g TMP_63 v u))))) in (let TMP_67 \def (\lambda (v: 
-T).(\lambda (_: T).(let TMP_65 \def (Bind Abst) in (let TMP_66 \def (CHead c 
-TMP_65 w) in (nf2 TMP_66 v))))) in (ex4_2 T T TMP_60 TMP_61 TMP_64 
-TMP_67)))))) in (let TMP_71 \def (\lambda (t0: T).(let TMP_69 \def (Bind 
-Abst) in (let TMP_70 \def (THead TMP_69 w u) in (ty3 g c TMP_70 t0)))) in 
-(let TMP_76 \def (\lambda (v: T).(\lambda (_: T).(let TMP_72 \def (Bind Abst) 
-in (let TMP_73 \def (THead TMP_72 x0 x1) in (let TMP_74 \def (Bind Abst) in 
-(let TMP_75 \def (THead TMP_74 w v) in (eq T TMP_73 TMP_75))))))) in (let 
-TMP_77 \def (\lambda (_: T).(\lambda (w0: T).(ty3 g c w w0))) in (let TMP_80 
-\def (\lambda (v: T).(\lambda (_: T).(let TMP_78 \def (Bind Abst) in (let 
-TMP_79 \def (CHead c TMP_78 w) in (ty3 g TMP_79 v u))))) in (let TMP_83 \def 
-(\lambda (v: T).(\lambda (_: T).(let TMP_81 \def (Bind Abst) in (let TMP_82 
-\def (CHead c TMP_81 w) in (nf2 TMP_82 v))))) in (let TMP_84 \def (ex4_2 T T 
-TMP_76 TMP_77 TMP_80 TMP_83) in (let TMP_191 \def (\lambda (x: T).(\lambda 
-(H9: (ty3 g c (THead (Bind Abst) w u) x)).(let TMP_87 \def (\lambda (t2: 
-T).(\lambda (_: T).(let TMP_85 \def (Bind Abst) in (let TMP_86 \def (THead 
-TMP_85 w t2) in (pc3 c TMP_86 x))))) in (let TMP_88 \def (\lambda (_: 
-T).(\lambda (t0: T).(ty3 g c w t0))) in (let TMP_91 \def (\lambda (t2: 
-T).(\lambda (_: T).(let TMP_89 \def (Bind Abst) in (let TMP_90 \def (CHead c 
-TMP_89 w) in (ty3 g TMP_90 u t2))))) in (let TMP_96 \def (\lambda (v: 
-T).(\lambda (_: T).(let TMP_92 \def (Bind Abst) in (let TMP_93 \def (THead 
-TMP_92 x0 x1) in (let TMP_94 \def (Bind Abst) in (let TMP_95 \def (THead 
-TMP_94 w v) in (eq T TMP_93 TMP_95))))))) in (let TMP_97 \def (\lambda (_: 
-T).(\lambda (w0: T).(ty3 g c w w0))) in (let TMP_100 \def (\lambda (v: 
-T).(\lambda (_: T).(let TMP_98 \def (Bind Abst) in (let TMP_99 \def (CHead c 
-TMP_98 w) in (ty3 g TMP_99 v u))))) in (let TMP_103 \def (\lambda (v: 
-T).(\lambda (_: T).(let TMP_101 \def (Bind Abst) in (let TMP_102 \def (CHead 
-c TMP_101 w) in (nf2 TMP_102 v))))) in (let TMP_104 \def (ex4_2 T T TMP_96 
-TMP_97 TMP_100 TMP_103) in (let TMP_189 \def (\lambda (x2: T).(\lambda (x3: 
-T).(\lambda (_: (pc3 c (THead (Bind Abst) w x2) x)).(\lambda (H11: (ty3 g c w 
-x3)).(\lambda (H12: (ty3 g (CHead c (Bind Abst) w) u x2)).(let TMP_109 \def 
-(\lambda (t2: T).(\lambda (_: T).(let TMP_105 \def (Bind Abst) in (let 
-TMP_106 \def (THead TMP_105 x0 t2) in (let TMP_107 \def (Bind Abst) in (let 
-TMP_108 \def (THead TMP_107 w u) in (pc3 c TMP_106 TMP_108))))))) in (let 
-TMP_110 \def (\lambda (_: T).(\lambda (t0: T).(ty3 g c x0 t0))) in (let 
-TMP_113 \def (\lambda (t2: T).(\lambda (_: T).(let TMP_111 \def (Bind Abst) 
-in (let TMP_112 \def (CHead c TMP_111 x0) in (ty3 g TMP_112 x1 t2))))) in 
-(let TMP_118 \def (\lambda (v: T).(\lambda (_: T).(let TMP_114 \def (Bind 
-Abst) in (let TMP_115 \def (THead TMP_114 x0 x1) in (let TMP_116 \def (Bind 
-Abst) in (let TMP_117 \def (THead TMP_116 w v) in (eq T TMP_115 
-TMP_117))))))) in (let TMP_119 \def (\lambda (_: T).(\lambda (w0: T).(ty3 g c 
-w w0))) in (let TMP_122 \def (\lambda (v: T).(\lambda (_: T).(let TMP_120 
-\def (Bind Abst) in (let TMP_121 \def (CHead c TMP_120 w) in (ty3 g TMP_121 v 
-u))))) in (let TMP_125 \def (\lambda (v: T).(\lambda (_: T).(let TMP_123 \def 
-(Bind Abst) in (let TMP_124 \def (CHead c TMP_123 w) in (nf2 TMP_124 v))))) 
-in (let TMP_126 \def (ex4_2 T T TMP_118 TMP_119 TMP_122 TMP_125) in (let 
-TMP_185 \def (\lambda (x4: T).(\lambda (x5: T).(\lambda (H13: (pc3 c (THead 
-(Bind Abst) x0 x4) (THead (Bind Abst) w u))).(\lambda (_: (ty3 g c x0 
-x5)).(\lambda (H15: (ty3 g (CHead c (Bind Abst) x0) x1 x4)).(let TMP_127 \def 
-(pc3 c x0 w) in (let TMP_130 \def (\forall (b: B).(\forall (u0: T).(let 
-TMP_128 \def (Bind b) in (let TMP_129 \def (CHead c TMP_128 u0) in (pc3 
-TMP_129 x4 u))))) in (let TMP_135 \def (\lambda (v: T).(\lambda (_: T).(let 
-TMP_131 \def (Bind Abst) in (let TMP_132 \def (THead TMP_131 x0 x1) in (let 
-TMP_133 \def (Bind Abst) in (let TMP_134 \def (THead TMP_133 w v) in (eq T 
-TMP_132 TMP_134))))))) in (let TMP_136 \def (\lambda (_: T).(\lambda (w0: 
-T).(ty3 g c w w0))) in (let TMP_139 \def (\lambda (v: T).(\lambda (_: T).(let 
-TMP_137 \def (Bind Abst) in (let TMP_138 \def (CHead c TMP_137 w) in (ty3 g 
-TMP_138 v u))))) in (let TMP_142 \def (\lambda (v: T).(\lambda (_: T).(let 
-TMP_140 \def (Bind Abst) in (let TMP_141 \def (CHead c TMP_140 w) in (nf2 
-TMP_141 v))))) in (let TMP_143 \def (ex4_2 T T TMP_135 TMP_136 TMP_139 
-TMP_142) in (let TMP_183 \def (\lambda (H16: (pc3 c x0 w)).(\lambda (H17: 
-((\forall (b: B).(\forall (u0: T).(pc3 (CHead c (Bind b) u0) x4 u))))).(let 
-H_y \def (pc3_nf2 c x0 w H16 H6 H1) in (let TMP_146 \def (\lambda (t0: 
-T).(let TMP_144 \def (Bind Abst) in (let TMP_145 \def (CHead c TMP_144 t0) in 
-(ty3 g TMP_145 x1 x4)))) in (let H18 \def (eq_ind T x0 TMP_146 H15 w H_y) in 
-(let TMP_149 \def (\lambda (t0: T).(let TMP_147 \def (Bind Abst) in (let 
-TMP_148 \def (CHead c TMP_147 t0) in (nf2 TMP_148 x1)))) in (let H19 \def 
-(eq_ind T x0 TMP_149 H7 w H_y) in (let TMP_162 \def (\lambda (t0: T).(let 
-TMP_154 \def (\lambda (v: T).(\lambda (_: T).(let TMP_150 \def (Bind Abst) in 
-(let TMP_151 \def (THead TMP_150 t0 x1) in (let TMP_152 \def (Bind Abst) in 
-(let TMP_153 \def (THead TMP_152 w v) in (eq T TMP_151 TMP_153))))))) in (let 
-TMP_155 \def (\lambda (_: T).(\lambda (w0: T).(ty3 g c w w0))) in (let 
-TMP_158 \def (\lambda (v: T).(\lambda (_: T).(let TMP_156 \def (Bind Abst) in 
-(let TMP_157 \def (CHead c TMP_156 w) in (ty3 g TMP_157 v u))))) in (let 
-TMP_161 \def (\lambda (v: T).(\lambda (_: T).(let TMP_159 \def (Bind Abst) in 
-(let TMP_160 \def (CHead c TMP_159 w) in (nf2 TMP_160 v))))) in (ex4_2 T T 
-TMP_154 TMP_155 TMP_158 TMP_161)))))) in (let TMP_167 \def (\lambda (v: 
-T).(\lambda (_: T).(let TMP_163 \def (Bind Abst) in (let TMP_164 \def (THead 
-TMP_163 w x1) in (let TMP_165 \def (Bind Abst) in (let TMP_166 \def (THead 
-TMP_165 w v) in (eq T TMP_164 TMP_166))))))) in (let TMP_168 \def (\lambda 
-(_: T).(\lambda (w0: T).(ty3 g c w w0))) in (let TMP_171 \def (\lambda (v: 
-T).(\lambda (_: T).(let TMP_169 \def (Bind Abst) in (let TMP_170 \def (CHead 
-c TMP_169 w) in (ty3 g TMP_170 v u))))) in (let TMP_174 \def (\lambda (v: 
-T).(\lambda (_: T).(let TMP_172 \def (Bind Abst) in (let TMP_173 \def (CHead 
-c TMP_172 w) in (nf2 TMP_173 v))))) in (let TMP_175 \def (Bind Abst) in (let 
-TMP_176 \def (THead TMP_175 w x1) in (let TMP_177 \def (refl_equal T TMP_176) 
-in (let TMP_178 \def (Bind Abst) in (let TMP_179 \def (CHead c TMP_178 w) in 
-(let TMP_180 \def (H17 Abst w) in (let TMP_181 \def (ty3_conv g TMP_179 u x2 
-H12 x1 x4 H18 TMP_180) in (let TMP_182 \def (ex4_2_intro T T TMP_167 TMP_168 
-TMP_171 TMP_174 x1 x3 TMP_177 H11 TMP_181 H19) in (eq_ind_r T w TMP_162 
-TMP_182 x0 H_y))))))))))))))))))))) in (let TMP_184 \def (pc3_gen_abst c x0 w 
-x4 u H13) in (land_ind TMP_127 TMP_130 TMP_143 TMP_183 TMP_184))))))))))))))) 
-in (let TMP_186 \def (Bind Abst) in (let TMP_187 \def (THead TMP_186 w u) in 
-(let TMP_188 \def (ty3_gen_bind g Abst c x0 x1 TMP_187 H8) in (ex3_2_ind T T 
-TMP_109 TMP_110 TMP_113 TMP_126 TMP_185 TMP_188)))))))))))))))))) in (let 
-TMP_190 \def (ty3_gen_bind g Abst c w u x H9) in (ex3_2_ind T T TMP_87 TMP_88 
-TMP_91 TMP_104 TMP_189 TMP_190))))))))))))) in (let TMP_192 \def (Bind Abst) 
-in (let TMP_193 \def (THead TMP_192 x0 x1) in (let TMP_194 \def (Bind Abst) 
-in (let TMP_195 \def (THead TMP_194 w u) in (let TMP_196 \def (ty3_correct g 
-c TMP_193 TMP_195 H8) in (let TMP_197 \def (ex_ind T TMP_71 TMP_84 TMP_191 
-TMP_196) in (eq_ind_r T TMP_57 TMP_68 TMP_197 t H5)))))))))))))))))))))))))) 
-in (ex3_2_ind T T TMP_35 TMP_36 TMP_39 TMP_50 TMP_198 H4))))))))))) in (let 
-TMP_247 \def (\lambda (H4: (ex nat (\lambda (n: nat).(eq T t (TSort 
-n))))).(let TMP_201 \def (\lambda (n: nat).(let TMP_200 \def (TSort n) in (eq 
-T t TMP_200))) in (let TMP_204 \def (\lambda (v: T).(\lambda (_: T).(let 
-TMP_202 \def (Bind Abst) in (let TMP_203 \def (THead TMP_202 w v) in (eq T t 
-TMP_203))))) in (let TMP_205 \def (\lambda (_: T).(\lambda (w0: T).(ty3 g c w 
-w0))) in (let TMP_208 \def (\lambda (v: T).(\lambda (_: T).(let TMP_206 \def 
-(Bind Abst) in (let TMP_207 \def (CHead c TMP_206 w) in (ty3 g TMP_207 v 
-u))))) in (let TMP_211 \def (\lambda (v: T).(\lambda (_: T).(let TMP_209 \def 
-(Bind Abst) in (let TMP_210 \def (CHead c TMP_209 w) in (nf2 TMP_210 v))))) 
-in (let TMP_212 \def (ex4_2 T T TMP_204 TMP_205 TMP_208 TMP_211) in (let 
-TMP_246 \def (\lambda (x: nat).(\lambda (H5: (eq T t (TSort x))).(let TMP_215 
-\def (\lambda (t0: T).(let TMP_213 \def (Bind Abst) in (let TMP_214 \def 
-(THead TMP_213 w u) in (ty3 g c t0 TMP_214)))) in (let TMP_216 \def (TSort x) 
-in (let H6 \def (eq_ind T t TMP_215 H TMP_216 H5) in (let TMP_217 \def (TSort 
-x) in (let TMP_228 \def (\lambda (t0: T).(let TMP_220 \def (\lambda (v: 
-T).(\lambda (_: T).(let TMP_218 \def (Bind Abst) in (let TMP_219 \def (THead 
-TMP_218 w v) in (eq T t0 TMP_219))))) in (let TMP_221 \def (\lambda (_: 
-T).(\lambda (w0: T).(ty3 g c w w0))) in (let TMP_224 \def (\lambda (v: 
-T).(\lambda (_: T).(let TMP_222 \def (Bind Abst) in (let TMP_223 \def (CHead 
-c TMP_222 w) in (ty3 g TMP_223 v u))))) in (let TMP_227 \def (\lambda (v: 
-T).(\lambda (_: T).(let TMP_225 \def (Bind Abst) in (let TMP_226 \def (CHead 
-c TMP_225 w) in (nf2 TMP_226 v))))) in (ex4_2 T T TMP_220 TMP_221 TMP_224 
-TMP_227)))))) in (let TMP_229 \def (next g x) in (let TMP_230 \def (Bind 
-Abst) in (let TMP_231 \def (THead TMP_230 w u) in (let TMP_232 \def 
-(ty3_gen_sort g c TMP_231 x H6) in (let TMP_236 \def (\lambda (v: T).(\lambda 
-(_: T).(let TMP_233 \def (TSort x) in (let TMP_234 \def (Bind Abst) in (let 
-TMP_235 \def (THead TMP_234 w v) in (eq T TMP_233 TMP_235)))))) in (let 
-TMP_237 \def (\lambda (_: T).(\lambda (w0: T).(ty3 g c w w0))) in (let 
-TMP_240 \def (\lambda (v: T).(\lambda (_: T).(let TMP_238 \def (Bind Abst) in 
-(let TMP_239 \def (CHead c TMP_238 w) in (ty3 g TMP_239 v u))))) in (let 
-TMP_243 \def (\lambda (v: T).(\lambda (_: T).(let TMP_241 \def (Bind Abst) in 
-(let TMP_242 \def (CHead c TMP_241 w) in (nf2 TMP_242 v))))) in (let TMP_244 
-\def (ex4_2 T T TMP_236 TMP_237 TMP_240 TMP_243) in (let TMP_245 \def 
-(pc3_gen_sort_abst c w u TMP_229 TMP_232 TMP_244) in (eq_ind_r T TMP_217 
-TMP_228 TMP_245 t H5)))))))))))))))))) in (ex_ind nat TMP_201 TMP_212 TMP_246 
-H4))))))))) in (let TMP_570 \def (\lambda (H4: (ex3_2 TList nat (\lambda (ws: 
+u)).(let H_x \def (ty3_nf2_inv_all g c t (THead (Bind Abst) w u) H H0) in 
+(let H3 \def H_x in (or3_ind (ex3_2 T T (\lambda (w0: T).(\lambda (u0: T).(eq 
+T t (THead (Bind Abst) w0 u0)))) (\lambda (w0: T).(\lambda (_: T).(nf2 c 
+w0))) (\lambda (w0: T).(\lambda (u0: T).(nf2 (CHead c (Bind Abst) w0) u0)))) 
+(ex nat (\lambda (n: nat).(eq T t (TSort n)))) (ex3_2 TList nat (\lambda (ws: 
 TList).(\lambda (i: nat).(eq T t (THeads (Flat Appl) ws (TLRef i))))) 
 (\lambda (ws: TList).(\lambda (_: nat).(nfs2 c ws))) (\lambda (_: 
-TList).(\lambda (i: nat).(nf2 c (TLRef i)))))).(let TMP_251 \def (\lambda 
-(ws: TList).(\lambda (i: nat).(let TMP_248 \def (Flat Appl) in (let TMP_249 
-\def (TLRef i) in (let TMP_250 \def (THeads TMP_248 ws TMP_249) in (eq T t 
-TMP_250)))))) in (let TMP_252 \def (\lambda (ws: TList).(\lambda (_: 
-nat).(nfs2 c ws))) in (let TMP_254 \def (\lambda (_: TList).(\lambda (i: 
-nat).(let TMP_253 \def (TLRef i) in (nf2 c TMP_253)))) in (let TMP_257 \def 
-(\lambda (v: T).(\lambda (_: T).(let TMP_255 \def (Bind Abst) in (let TMP_256 
-\def (THead TMP_255 w v) in (eq T t TMP_256))))) in (let TMP_258 \def 
-(\lambda (_: T).(\lambda (w0: T).(ty3 g c w w0))) in (let TMP_261 \def 
-(\lambda (v: T).(\lambda (_: T).(let TMP_259 \def (Bind Abst) in (let TMP_260 
-\def (CHead c TMP_259 w) in (ty3 g TMP_260 v u))))) in (let TMP_264 \def 
-(\lambda (v: T).(\lambda (_: T).(let TMP_262 \def (Bind Abst) in (let TMP_263 
-\def (CHead c TMP_262 w) in (nf2 TMP_263 v))))) in (let TMP_265 \def (ex4_2 T 
-T TMP_257 TMP_258 TMP_261 TMP_264) in (let TMP_569 \def (\lambda (x0: 
-TList).(\lambda (x1: nat).(\lambda (H5: (eq T t (THeads (Flat Appl) x0 (TLRef 
-x1)))).(\lambda (_: (nfs2 c x0)).(\lambda (H7: (nf2 c (TLRef x1))).(let 
-TMP_268 \def (\lambda (t0: T).(let TMP_266 \def (Bind Abst) in (let TMP_267 
-\def (THead TMP_266 w u) in (ty3 g c t0 TMP_267)))) in (let TMP_269 \def 
-(Flat Appl) in (let TMP_270 \def (TLRef x1) in (let TMP_271 \def (THeads 
-TMP_269 x0 TMP_270) in (let H8 \def (eq_ind T t TMP_268 H TMP_271 H5) in (let 
-TMP_272 \def (Flat Appl) in (let TMP_273 \def (TLRef x1) in (let TMP_274 \def 
-(THeads TMP_272 x0 TMP_273) in (let TMP_285 \def (\lambda (t0: T).(let 
-TMP_277 \def (\lambda (v: T).(\lambda (_: T).(let TMP_275 \def (Bind Abst) in 
-(let TMP_276 \def (THead TMP_275 w v) in (eq T t0 TMP_276))))) in (let 
-TMP_278 \def (\lambda (_: T).(\lambda (w0: T).(ty3 g c w w0))) in (let 
-TMP_281 \def (\lambda (v: T).(\lambda (_: T).(let TMP_279 \def (Bind Abst) in 
-(let TMP_280 \def (CHead c TMP_279 w) in (ty3 g TMP_280 v u))))) in (let 
-TMP_284 \def (\lambda (v: T).(\lambda (_: T).(let TMP_282 \def (Bind Abst) in 
-(let TMP_283 \def (CHead c TMP_282 w) in (nf2 TMP_283 v))))) in (ex4_2 T T 
-TMP_277 TMP_278 TMP_281 TMP_284)))))) in (let H9 \def H2 in (let H10 \def H8 
-in (let TMP_299 \def (\lambda (t0: T).((ty3 g c (THeads (Flat Appl) x0 (TLRef 
-x1)) (THead (Bind Abst) w t0)) \to ((ty3_nf2_inv_abst_premise c w t0) \to 
-(let TMP_291 \def (\lambda (v: T).(\lambda (_: T).(let TMP_286 \def (Flat 
-Appl) in (let TMP_287 \def (TLRef x1) in (let TMP_288 \def (THeads TMP_286 x0 
-TMP_287) in (let TMP_289 \def (Bind Abst) in (let TMP_290 \def (THead TMP_289 
-w v) in (eq T TMP_288 TMP_290)))))))) in (let TMP_292 \def (\lambda (_: 
-T).(\lambda (w0: T).(ty3 g c w w0))) in (let TMP_295 \def (\lambda (v: 
-T).(\lambda (_: T).(let TMP_293 \def (Bind Abst) in (let TMP_294 \def (CHead 
-c TMP_293 w) in (ty3 g TMP_294 v t0))))) in (let TMP_298 \def (\lambda (v: 
-T).(\lambda (_: T).(let TMP_296 \def (Bind Abst) in (let TMP_297 \def (CHead 
-c TMP_296 w) in (nf2 TMP_297 v))))) in (ex4_2 T T TMP_291 TMP_292 TMP_295 
-TMP_298)))))))) in (let TMP_313 \def (\lambda (t0: T).(\forall (x: T).((ty3 g 
-c (THeads (Flat Appl) x0 (TLRef x1)) (THead (Bind Abst) t0 x)) \to 
-((ty3_nf2_inv_abst_premise c t0 x) \to (let TMP_305 \def (\lambda (v: 
-T).(\lambda (_: T).(let TMP_300 \def (Flat Appl) in (let TMP_301 \def (TLRef 
-x1) in (let TMP_302 \def (THeads TMP_300 x0 TMP_301) in (let TMP_303 \def 
-(Bind Abst) in (let TMP_304 \def (THead TMP_303 t0 v) in (eq T TMP_302 
-TMP_304)))))))) in (let TMP_306 \def (\lambda (_: T).(\lambda (w0: T).(ty3 g 
-c t0 w0))) in (let TMP_309 \def (\lambda (v: T).(\lambda (_: T).(let TMP_307 
-\def (Bind Abst) in (let TMP_308 \def (CHead c TMP_307 t0) in (ty3 g TMP_308 
-v x))))) in (let TMP_312 \def (\lambda (v: T).(\lambda (_: T).(let TMP_310 
-\def (Bind Abst) in (let TMP_311 \def (CHead c TMP_310 t0) in (nf2 TMP_311 
-v))))) in (ex4_2 T T TMP_305 TMP_306 TMP_309 TMP_312))))))))) in (let TMP_327 
-\def (\lambda (t0: TList).(\forall (x: T).(\forall (x2: T).((ty3 g c (THeads 
-(Flat Appl) t0 (TLRef x1)) (THead (Bind Abst) x x2)) \to 
-((ty3_nf2_inv_abst_premise c x x2) \to (let TMP_319 \def (\lambda (v: 
-T).(\lambda (_: T).(let TMP_314 \def (Flat Appl) in (let TMP_315 \def (TLRef 
-x1) in (let TMP_316 \def (THeads TMP_314 t0 TMP_315) in (let TMP_317 \def 
-(Bind Abst) in (let TMP_318 \def (THead TMP_317 x v) in (eq T TMP_316 
-TMP_318)))))))) in (let TMP_320 \def (\lambda (_: T).(\lambda (w0: T).(ty3 g 
-c x w0))) in (let TMP_323 \def (\lambda (v: T).(\lambda (_: T).(let TMP_321 
-\def (Bind Abst) in (let TMP_322 \def (CHead c TMP_321 x) in (ty3 g TMP_322 v 
-x2))))) in (let TMP_326 \def (\lambda (v: T).(\lambda (_: T).(let TMP_324 
-\def (Bind Abst) in (let TMP_325 \def (CHead c TMP_324 x) in (nf2 TMP_325 
-v))))) in (ex4_2 T T TMP_319 TMP_320 TMP_323 TMP_326)))))))))) in (let 
-TMP_433 \def (\lambda (x: T).(\lambda (x2: T).(\lambda (H11: (ty3 g c (TLRef 
-x1) (THead (Bind Abst) x x2))).(\lambda (H12: (ty3_nf2_inv_abst_premise c x 
-x2)).(let TMP_332 \def (\lambda (_: C).(\lambda (_: T).(\lambda (t0: T).(let 
-TMP_328 \def (S x1) in (let TMP_329 \def (lift TMP_328 O t0) in (let TMP_330 
-\def (Bind Abst) in (let TMP_331 \def (THead TMP_330 x x2) in (pc3 c TMP_329 
-TMP_331)))))))) in (let TMP_335 \def (\lambda (e: C).(\lambda (u0: 
-T).(\lambda (_: T).(let TMP_333 \def (Bind Abbr) in (let TMP_334 \def (CHead 
-e TMP_333 u0) in (getl x1 c TMP_334)))))) in (let TMP_336 \def (\lambda (e: 
-C).(\lambda (u0: T).(\lambda (t0: T).(ty3 g e u0 t0)))) in (let TMP_337 \def 
-(ex3_3 C T T TMP_332 TMP_335 TMP_336) in (let TMP_342 \def (\lambda (_: 
-C).(\lambda (u0: T).(\lambda (_: T).(let TMP_338 \def (S x1) in (let TMP_339 
-\def (lift TMP_338 O u0) in (let TMP_340 \def (Bind Abst) in (let TMP_341 
-\def (THead TMP_340 x x2) in (pc3 c TMP_339 TMP_341)))))))) in (let TMP_345 
-\def (\lambda (e: C).(\lambda (u0: T).(\lambda (_: T).(let TMP_343 \def (Bind 
-Abst) in (let TMP_344 \def (CHead e TMP_343 u0) in (getl x1 c TMP_344)))))) 
-in (let TMP_346 \def (\lambda (e: C).(\lambda (u0: T).(\lambda (t0: T).(ty3 g 
-e u0 t0)))) in (let TMP_347 \def (ex3_3 C T T TMP_342 TMP_345 TMP_346) in 
-(let TMP_351 \def (\lambda (v: T).(\lambda (_: T).(let TMP_348 \def (TLRef 
-x1) in (let TMP_349 \def (Bind Abst) in (let TMP_350 \def (THead TMP_349 x v) 
-in (eq T TMP_348 TMP_350)))))) in (let TMP_352 \def (\lambda (_: T).(\lambda 
-(w0: T).(ty3 g c x w0))) in (let TMP_355 \def (\lambda (v: T).(\lambda (_: 
-T).(let TMP_353 \def (Bind Abst) in (let TMP_354 \def (CHead c TMP_353 x) in 
-(ty3 g TMP_354 v x2))))) in (let TMP_358 \def (\lambda (v: T).(\lambda (_: 
-T).(let TMP_356 \def (Bind Abst) in (let TMP_357 \def (CHead c TMP_356 x) in 
-(nf2 TMP_357 v))))) in (let TMP_359 \def (ex4_2 T T TMP_351 TMP_352 TMP_355 
-TMP_358) in (let TMP_394 \def (\lambda (H13: (ex3_3 C T T (\lambda (_: 
+TList).(\lambda (i: nat).(nf2 c (TLRef i))))) (ex4_2 T T (\lambda (v: 
+T).(\lambda (_: T).(eq T t (THead (Bind Abst) w v)))) (\lambda (_: 
+T).(\lambda (w0: T).(ty3 g c w w0))) (\lambda (v: T).(\lambda (_: T).(ty3 g 
+(CHead c (Bind Abst) w) v u))) (\lambda (v: T).(\lambda (_: T).(nf2 (CHead c 
+(Bind Abst) w) v)))) (\lambda (H4: (ex3_2 T T (\lambda (w0: T).(\lambda (u0: 
+T).(eq T t (THead (Bind Abst) w0 u0)))) (\lambda (w0: T).(\lambda (_: T).(nf2 
+c w0))) (\lambda (w0: T).(\lambda (u0: T).(nf2 (CHead c (Bind Abst) w0) 
+u0))))).(ex3_2_ind T T (\lambda (w0: T).(\lambda (u0: T).(eq T t (THead (Bind 
+Abst) w0 u0)))) (\lambda (w0: T).(\lambda (_: T).(nf2 c w0))) (\lambda (w0: 
+T).(\lambda (u0: T).(nf2 (CHead c (Bind Abst) w0) u0))) (ex4_2 T T (\lambda 
+(v: T).(\lambda (_: T).(eq T t (THead (Bind Abst) w v)))) (\lambda (_: 
+T).(\lambda (w0: T).(ty3 g c w w0))) (\lambda (v: T).(\lambda (_: T).(ty3 g 
+(CHead c (Bind Abst) w) v u))) (\lambda (v: T).(\lambda (_: T).(nf2 (CHead c 
+(Bind Abst) w) v)))) (\lambda (x0: T).(\lambda (x1: T).(\lambda (H5: (eq T t 
+(THead (Bind Abst) x0 x1))).(\lambda (H6: (nf2 c x0)).(\lambda (H7: (nf2 
+(CHead c (Bind Abst) x0) x1)).(let H8 \def (eq_ind T t (\lambda (t0: T).(ty3 
+g c t0 (THead (Bind Abst) w u))) H (THead (Bind Abst) x0 x1) H5) in (eq_ind_r 
+T (THead (Bind Abst) x0 x1) (\lambda (t0: T).(ex4_2 T T (\lambda (v: 
+T).(\lambda (_: T).(eq T t0 (THead (Bind Abst) w v)))) (\lambda (_: 
+T).(\lambda (w0: T).(ty3 g c w w0))) (\lambda (v: T).(\lambda (_: T).(ty3 g 
+(CHead c (Bind Abst) w) v u))) (\lambda (v: T).(\lambda (_: T).(nf2 (CHead c 
+(Bind Abst) w) v))))) (ex_ind T (\lambda (t0: T).(ty3 g c (THead (Bind Abst) 
+w u) t0)) (ex4_2 T T (\lambda (v: T).(\lambda (_: T).(eq T (THead (Bind Abst) 
+x0 x1) (THead (Bind Abst) w v)))) (\lambda (_: T).(\lambda (w0: T).(ty3 g c w 
+w0))) (\lambda (v: T).(\lambda (_: T).(ty3 g (CHead c (Bind Abst) w) v u))) 
+(\lambda (v: T).(\lambda (_: T).(nf2 (CHead c (Bind Abst) w) v)))) (\lambda 
+(x: T).(\lambda (H9: (ty3 g c (THead (Bind Abst) w u) x)).(ex3_2_ind T T 
+(\lambda (t2: T).(\lambda (_: T).(pc3 c (THead (Bind Abst) w t2) x))) 
+(\lambda (_: T).(\lambda (t0: T).(ty3 g c w t0))) (\lambda (t2: T).(\lambda 
+(_: T).(ty3 g (CHead c (Bind Abst) w) u t2))) (ex4_2 T T (\lambda (v: 
+T).(\lambda (_: T).(eq T (THead (Bind Abst) x0 x1) (THead (Bind Abst) w v)))) 
+(\lambda (_: T).(\lambda (w0: T).(ty3 g c w w0))) (\lambda (v: T).(\lambda 
+(_: T).(ty3 g (CHead c (Bind Abst) w) v u))) (\lambda (v: T).(\lambda (_: 
+T).(nf2 (CHead c (Bind Abst) w) v)))) (\lambda (x2: T).(\lambda (x3: 
+T).(\lambda (_: (pc3 c (THead (Bind Abst) w x2) x)).(\lambda (H11: (ty3 g c w 
+x3)).(\lambda (H12: (ty3 g (CHead c (Bind Abst) w) u x2)).(ex3_2_ind T T 
+(\lambda (t2: T).(\lambda (_: T).(pc3 c (THead (Bind Abst) x0 t2) (THead 
+(Bind Abst) w u)))) (\lambda (_: T).(\lambda (t0: T).(ty3 g c x0 t0))) 
+(\lambda (t2: T).(\lambda (_: T).(ty3 g (CHead c (Bind Abst) x0) x1 t2))) 
+(ex4_2 T T (\lambda (v: T).(\lambda (_: T).(eq T (THead (Bind Abst) x0 x1) 
+(THead (Bind Abst) w v)))) (\lambda (_: T).(\lambda (w0: T).(ty3 g c w w0))) 
+(\lambda (v: T).(\lambda (_: T).(ty3 g (CHead c (Bind Abst) w) v u))) 
+(\lambda (v: T).(\lambda (_: T).(nf2 (CHead c (Bind Abst) w) v)))) (\lambda 
+(x4: T).(\lambda (x5: T).(\lambda (H13: (pc3 c (THead (Bind Abst) x0 x4) 
+(THead (Bind Abst) w u))).(\lambda (_: (ty3 g c x0 x5)).(\lambda (H15: (ty3 g 
+(CHead c (Bind Abst) x0) x1 x4)).(land_ind (pc3 c x0 w) (\forall (b: 
+B).(\forall (u0: T).(pc3 (CHead c (Bind b) u0) x4 u))) (ex4_2 T T (\lambda 
+(v: T).(\lambda (_: T).(eq T (THead (Bind Abst) x0 x1) (THead (Bind Abst) w 
+v)))) (\lambda (_: T).(\lambda (w0: T).(ty3 g c w w0))) (\lambda (v: 
+T).(\lambda (_: T).(ty3 g (CHead c (Bind Abst) w) v u))) (\lambda (v: 
+T).(\lambda (_: T).(nf2 (CHead c (Bind Abst) w) v)))) (\lambda (H16: (pc3 c 
+x0 w)).(\lambda (H17: ((\forall (b: B).(\forall (u0: T).(pc3 (CHead c (Bind 
+b) u0) x4 u))))).(let H_y \def (pc3_nf2 c x0 w H16 H6 H1) in (let H18 \def 
+(eq_ind T x0 (\lambda (t0: T).(ty3 g (CHead c (Bind Abst) t0) x1 x4)) H15 w 
+H_y) in (let H19 \def (eq_ind T x0 (\lambda (t0: T).(nf2 (CHead c (Bind Abst) 
+t0) x1)) H7 w H_y) in (eq_ind_r T w (\lambda (t0: T).(ex4_2 T T (\lambda (v: 
+T).(\lambda (_: T).(eq T (THead (Bind Abst) t0 x1) (THead (Bind Abst) w v)))) 
+(\lambda (_: T).(\lambda (w0: T).(ty3 g c w w0))) (\lambda (v: T).(\lambda 
+(_: T).(ty3 g (CHead c (Bind Abst) w) v u))) (\lambda (v: T).(\lambda (_: 
+T).(nf2 (CHead c (Bind Abst) w) v))))) (ex4_2_intro T T (\lambda (v: 
+T).(\lambda (_: T).(eq T (THead (Bind Abst) w x1) (THead (Bind Abst) w v)))) 
+(\lambda (_: T).(\lambda (w0: T).(ty3 g c w w0))) (\lambda (v: T).(\lambda 
+(_: T).(ty3 g (CHead c (Bind Abst) w) v u))) (\lambda (v: T).(\lambda (_: 
+T).(nf2 (CHead c (Bind Abst) w) v))) x1 x3 (refl_equal T (THead (Bind Abst) w 
+x1)) H11 (ty3_conv g (CHead c (Bind Abst) w) u x2 H12 x1 x4 H18 (H17 Abst w)) 
+H19) x0 H_y)))))) (pc3_gen_abst c x0 w x4 u H13))))))) (ty3_gen_bind g Abst c 
+x0 x1 (THead (Bind Abst) w u) H8))))))) (ty3_gen_bind g Abst c w u x H9)))) 
+(ty3_correct g c (THead (Bind Abst) x0 x1) (THead (Bind Abst) w u) H8)) t 
+H5))))))) H4)) (\lambda (H4: (ex nat (\lambda (n: nat).(eq T t (TSort 
+n))))).(ex_ind nat (\lambda (n: nat).(eq T t (TSort n))) (ex4_2 T T (\lambda 
+(v: T).(\lambda (_: T).(eq T t (THead (Bind Abst) w v)))) (\lambda (_: 
+T).(\lambda (w0: T).(ty3 g c w w0))) (\lambda (v: T).(\lambda (_: T).(ty3 g 
+(CHead c (Bind Abst) w) v u))) (\lambda (v: T).(\lambda (_: T).(nf2 (CHead c 
+(Bind Abst) w) v)))) (\lambda (x: nat).(\lambda (H5: (eq T t (TSort x))).(let 
+H6 \def (eq_ind T t (\lambda (t0: T).(ty3 g c t0 (THead (Bind Abst) w u))) H 
+(TSort x) H5) in (eq_ind_r T (TSort x) (\lambda (t0: T).(ex4_2 T T (\lambda 
+(v: T).(\lambda (_: T).(eq T t0 (THead (Bind Abst) w v)))) (\lambda (_: 
+T).(\lambda (w0: T).(ty3 g c w w0))) (\lambda (v: T).(\lambda (_: T).(ty3 g 
+(CHead c (Bind Abst) w) v u))) (\lambda (v: T).(\lambda (_: T).(nf2 (CHead c 
+(Bind Abst) w) v))))) (pc3_gen_sort_abst c w u (next g x) (ty3_gen_sort g c 
+(THead (Bind Abst) w u) x H6) (ex4_2 T T (\lambda (v: T).(\lambda (_: T).(eq 
+T (TSort x) (THead (Bind Abst) w v)))) (\lambda (_: T).(\lambda (w0: T).(ty3 
+g c w w0))) (\lambda (v: T).(\lambda (_: T).(ty3 g (CHead c (Bind Abst) w) v 
+u))) (\lambda (v: T).(\lambda (_: T).(nf2 (CHead c (Bind Abst) w) v))))) t 
+H5)))) H4)) (\lambda (H4: (ex3_2 TList nat (\lambda (ws: TList).(\lambda (i: 
+nat).(eq T t (THeads (Flat Appl) ws (TLRef i))))) (\lambda (ws: 
+TList).(\lambda (_: nat).(nfs2 c ws))) (\lambda (_: TList).(\lambda (i: 
+nat).(nf2 c (TLRef i)))))).(ex3_2_ind TList nat (\lambda (ws: TList).(\lambda 
+(i: nat).(eq T t (THeads (Flat Appl) ws (TLRef i))))) (\lambda (ws: 
+TList).(\lambda (_: nat).(nfs2 c ws))) (\lambda (_: TList).(\lambda (i: 
+nat).(nf2 c (TLRef i)))) (ex4_2 T T (\lambda (v: T).(\lambda (_: T).(eq T t 
+(THead (Bind Abst) w v)))) (\lambda (_: T).(\lambda (w0: T).(ty3 g c w w0))) 
+(\lambda (v: T).(\lambda (_: T).(ty3 g (CHead c (Bind Abst) w) v u))) 
+(\lambda (v: T).(\lambda (_: T).(nf2 (CHead c (Bind Abst) w) v)))) (\lambda 
+(x0: TList).(\lambda (x1: nat).(\lambda (H5: (eq T t (THeads (Flat Appl) x0 
+(TLRef x1)))).(\lambda (_: (nfs2 c x0)).(\lambda (H7: (nf2 c (TLRef 
+x1))).(let H8 \def (eq_ind T t (\lambda (t0: T).(ty3 g c t0 (THead (Bind 
+Abst) w u))) H (THeads (Flat Appl) x0 (TLRef x1)) H5) in (eq_ind_r T (THeads 
+(Flat Appl) x0 (TLRef x1)) (\lambda (t0: T).(ex4_2 T T (\lambda (v: 
+T).(\lambda (_: T).(eq T t0 (THead (Bind Abst) w v)))) (\lambda (_: 
+T).(\lambda (w0: T).(ty3 g c w w0))) (\lambda (v: T).(\lambda (_: T).(ty3 g 
+(CHead c (Bind Abst) w) v u))) (\lambda (v: T).(\lambda (_: T).(nf2 (CHead c 
+(Bind Abst) w) v))))) (let H9 \def H2 in ((let H10 \def H8 in (unintro T u 
+(\lambda (t0: T).((ty3 g c (THeads (Flat Appl) x0 (TLRef x1)) (THead (Bind 
+Abst) w t0)) \to ((ty3_nf2_inv_abst_premise c w t0) \to (ex4_2 T T (\lambda 
+(v: T).(\lambda (_: T).(eq T (THeads (Flat Appl) x0 (TLRef x1)) (THead (Bind 
+Abst) w v)))) (\lambda (_: T).(\lambda (w0: T).(ty3 g c w w0))) (\lambda (v: 
+T).(\lambda (_: T).(ty3 g (CHead c (Bind Abst) w) v t0))) (\lambda (v: 
+T).(\lambda (_: T).(nf2 (CHead c (Bind Abst) w) v))))))) (unintro T w 
+(\lambda (t0: T).(\forall (x: T).((ty3 g c (THeads (Flat Appl) x0 (TLRef x1)) 
+(THead (Bind Abst) t0 x)) \to ((ty3_nf2_inv_abst_premise c t0 x) \to (ex4_2 T 
+T (\lambda (v: T).(\lambda (_: T).(eq T (THeads (Flat Appl) x0 (TLRef x1)) 
+(THead (Bind Abst) t0 v)))) (\lambda (_: T).(\lambda (w0: T).(ty3 g c t0 
+w0))) (\lambda (v: T).(\lambda (_: T).(ty3 g (CHead c (Bind Abst) t0) v x))) 
+(\lambda (v: T).(\lambda (_: T).(nf2 (CHead c (Bind Abst) t0) v)))))))) 
+(TList_ind (\lambda (t0: TList).(\forall (x: T).(\forall (x2: T).((ty3 g c 
+(THeads (Flat Appl) t0 (TLRef x1)) (THead (Bind Abst) x x2)) \to 
+((ty3_nf2_inv_abst_premise c x x2) \to (ex4_2 T T (\lambda (v: T).(\lambda 
+(_: T).(eq T (THeads (Flat Appl) t0 (TLRef x1)) (THead (Bind Abst) x v)))) 
+(\lambda (_: T).(\lambda (w0: T).(ty3 g c x w0))) (\lambda (v: T).(\lambda 
+(_: T).(ty3 g (CHead c (Bind Abst) x) v x2))) (\lambda (v: T).(\lambda (_: 
+T).(nf2 (CHead c (Bind Abst) x) v))))))))) (\lambda (x: T).(\lambda (x2: 
+T).(\lambda (H11: (ty3 g c (TLRef x1) (THead (Bind Abst) x x2))).(\lambda 
+(H12: (ty3_nf2_inv_abst_premise c x x2)).(or_ind (ex3_3 C T T (\lambda (_: 
+C).(\lambda (_: T).(\lambda (t0: T).(pc3 c (lift (S x1) O t0) (THead (Bind 
+Abst) x x2))))) (\lambda (e: C).(\lambda (u0: T).(\lambda (_: T).(getl x1 c 
+(CHead e (Bind Abbr) u0))))) (\lambda (e: C).(\lambda (u0: T).(\lambda (t0: 
+T).(ty3 g e u0 t0))))) (ex3_3 C T T (\lambda (_: C).(\lambda (u0: T).(\lambda 
+(_: T).(pc3 c (lift (S x1) O u0) (THead (Bind Abst) x x2))))) (\lambda (e: 
+C).(\lambda (u0: T).(\lambda (_: T).(getl x1 c (CHead e (Bind Abst) u0))))) 
+(\lambda (e: C).(\lambda (u0: T).(\lambda (t0: T).(ty3 g e u0 t0))))) (ex4_2 
+T T (\lambda (v: T).(\lambda (_: T).(eq T (TLRef x1) (THead (Bind Abst) x 
+v)))) (\lambda (_: T).(\lambda (w0: T).(ty3 g c x w0))) (\lambda (v: 
+T).(\lambda (_: T).(ty3 g (CHead c (Bind Abst) x) v x2))) (\lambda (v: 
+T).(\lambda (_: T).(nf2 (CHead c (Bind Abst) x) v)))) (\lambda (H13: (ex3_3 C 
+T T (\lambda (_: C).(\lambda (_: T).(\lambda (t0: T).(pc3 c (lift (S x1) O 
+t0) (THead (Bind Abst) x x2))))) (\lambda (e: C).(\lambda (u0: T).(\lambda 
+(_: T).(getl x1 c (CHead e (Bind Abbr) u0))))) (\lambda (e: C).(\lambda (u0: 
+T).(\lambda (t0: T).(ty3 g e u0 t0)))))).(ex3_3_ind C T T (\lambda (_: 
 C).(\lambda (_: T).(\lambda (t0: T).(pc3 c (lift (S x1) O t0) (THead (Bind 
 Abst) x x2))))) (\lambda (e: C).(\lambda (u0: T).(\lambda (_: T).(getl x1 c 
 (CHead e (Bind Abbr) u0))))) (\lambda (e: C).(\lambda (u0: T).(\lambda (t0: 
-T).(ty3 g e u0 t0)))))).(let TMP_364 \def (\lambda (_: C).(\lambda (_: 
-T).(\lambda (t0: T).(let TMP_360 \def (S x1) in (let TMP_361 \def (lift 
-TMP_360 O t0) in (let TMP_362 \def (Bind Abst) in (let TMP_363 \def (THead 
-TMP_362 x x2) in (pc3 c TMP_361 TMP_363)))))))) in (let TMP_367 \def (\lambda 
-(e: C).(\lambda (u0: T).(\lambda (_: T).(let TMP_365 \def (Bind Abbr) in (let 
-TMP_366 \def (CHead e TMP_365 u0) in (getl x1 c TMP_366)))))) in (let TMP_368 
-\def (\lambda (e: C).(\lambda (u0: T).(\lambda (t0: T).(ty3 g e u0 t0)))) in 
-(let TMP_372 \def (\lambda (v: T).(\lambda (_: T).(let TMP_369 \def (TLRef 
-x1) in (let TMP_370 \def (Bind Abst) in (let TMP_371 \def (THead TMP_370 x v) 
-in (eq T TMP_369 TMP_371)))))) in (let TMP_373 \def (\lambda (_: T).(\lambda 
-(w0: T).(ty3 g c x w0))) in (let TMP_376 \def (\lambda (v: T).(\lambda (_: 
-T).(let TMP_374 \def (Bind Abst) in (let TMP_375 \def (CHead c TMP_374 x) in 
-(ty3 g TMP_375 v x2))))) in (let TMP_379 \def (\lambda (v: T).(\lambda (_: 
-T).(let TMP_377 \def (Bind Abst) in (let TMP_378 \def (CHead c TMP_377 x) in 
-(nf2 TMP_378 v))))) in (let TMP_380 \def (ex4_2 T T TMP_372 TMP_373 TMP_376 
-TMP_379) in (let TMP_393 \def (\lambda (x3: C).(\lambda (x4: T).(\lambda (x5: 
-T).(\lambda (_: (pc3 c (lift (S x1) O x5) (THead (Bind Abst) x x2))).(\lambda 
-(H15: (getl x1 c (CHead x3 (Bind Abbr) x4))).(\lambda (_: (ty3 g x3 x4 
-x5)).(let TMP_384 \def (\lambda (v: T).(\lambda (_: T).(let TMP_381 \def 
-(TLRef x1) in (let TMP_382 \def (Bind Abst) in (let TMP_383 \def (THead 
-TMP_382 x v) in (eq T TMP_381 TMP_383)))))) in (let TMP_385 \def (\lambda (_: 
-T).(\lambda (w0: T).(ty3 g c x w0))) in (let TMP_388 \def (\lambda (v: 
-T).(\lambda (_: T).(let TMP_386 \def (Bind Abst) in (let TMP_387 \def (CHead 
-c TMP_386 x) in (ty3 g TMP_387 v x2))))) in (let TMP_391 \def (\lambda (v: 
-T).(\lambda (_: T).(let TMP_389 \def (Bind Abst) in (let TMP_390 \def (CHead 
-c TMP_389 x) in (nf2 TMP_390 v))))) in (let TMP_392 \def (ex4_2 T T TMP_384 
-TMP_385 TMP_388 TMP_391) in (nf2_gen_lref c x3 x4 x1 H15 H7 
-TMP_392)))))))))))) in (ex3_3_ind C T T TMP_364 TMP_367 TMP_368 TMP_380 
-TMP_393 H13))))))))))) in (let TMP_429 \def (\lambda (H13: (ex3_3 C T T 
+T).(ty3 g e u0 t0)))) (ex4_2 T T (\lambda (v: T).(\lambda (_: T).(eq T (TLRef 
+x1) (THead (Bind Abst) x v)))) (\lambda (_: T).(\lambda (w0: T).(ty3 g c x 
+w0))) (\lambda (v: T).(\lambda (_: T).(ty3 g (CHead c (Bind Abst) x) v x2))) 
+(\lambda (v: T).(\lambda (_: T).(nf2 (CHead c (Bind Abst) x) v)))) (\lambda 
+(x3: C).(\lambda (x4: T).(\lambda (x5: T).(\lambda (_: (pc3 c (lift (S x1) O 
+x5) (THead (Bind Abst) x x2))).(\lambda (H15: (getl x1 c (CHead x3 (Bind 
+Abbr) x4))).(\lambda (_: (ty3 g x3 x4 x5)).(nf2_gen_lref c x3 x4 x1 H15 H7 
+(ex4_2 T T (\lambda (v: T).(\lambda (_: T).(eq T (TLRef x1) (THead (Bind 
+Abst) x v)))) (\lambda (_: T).(\lambda (w0: T).(ty3 g c x w0))) (\lambda (v: 
+T).(\lambda (_: T).(ty3 g (CHead c (Bind Abst) x) v x2))) (\lambda (v: 
+T).(\lambda (_: T).(nf2 (CHead c (Bind Abst) x) v))))))))))) H13)) (\lambda 
+(H13: (ex3_3 C T T (\lambda (_: C).(\lambda (u0: T).(\lambda (_: T).(pc3 c 
+(lift (S x1) O u0) (THead (Bind Abst) x x2))))) (\lambda (e: C).(\lambda (u0: 
+T).(\lambda (_: T).(getl x1 c (CHead e (Bind Abst) u0))))) (\lambda (e: 
+C).(\lambda (u0: T).(\lambda (t0: T).(ty3 g e u0 t0)))))).(ex3_3_ind C T T 
 (\lambda (_: C).(\lambda (u0: T).(\lambda (_: T).(pc3 c (lift (S x1) O u0) 
 (THead (Bind Abst) x x2))))) (\lambda (e: C).(\lambda (u0: T).(\lambda (_: 
 T).(getl x1 c (CHead e (Bind Abst) u0))))) (\lambda (e: C).(\lambda (u0: 
-T).(\lambda (t0: T).(ty3 g e u0 t0)))))).(let TMP_399 \def (\lambda (_: 
-C).(\lambda (u0: T).(\lambda (_: T).(let TMP_395 \def (S x1) in (let TMP_396 
-\def (lift TMP_395 O u0) in (let TMP_397 \def (Bind Abst) in (let TMP_398 
-\def (THead TMP_397 x x2) in (pc3 c TMP_396 TMP_398)))))))) in (let TMP_402 
-\def (\lambda (e: C).(\lambda (u0: T).(\lambda (_: T).(let TMP_400 \def (Bind 
-Abst) in (let TMP_401 \def (CHead e TMP_400 u0) in (getl x1 c TMP_401)))))) 
-in (let TMP_403 \def (\lambda (e: C).(\lambda (u0: T).(\lambda (t0: T).(ty3 g 
-e u0 t0)))) in (let TMP_407 \def (\lambda (v: T).(\lambda (_: T).(let TMP_404 
-\def (TLRef x1) in (let TMP_405 \def (Bind Abst) in (let TMP_406 \def (THead 
-TMP_405 x v) in (eq T TMP_404 TMP_406)))))) in (let TMP_408 \def (\lambda (_: 
-T).(\lambda (w0: T).(ty3 g c x w0))) in (let TMP_411 \def (\lambda (v: 
-T).(\lambda (_: T).(let TMP_409 \def (Bind Abst) in (let TMP_410 \def (CHead 
-c TMP_409 x) in (ty3 g TMP_410 v x2))))) in (let TMP_414 \def (\lambda (v: 
-T).(\lambda (_: T).(let TMP_412 \def (Bind Abst) in (let TMP_413 \def (CHead 
-c TMP_412 x) in (nf2 TMP_413 v))))) in (let TMP_415 \def (ex4_2 T T TMP_407 
-TMP_408 TMP_411 TMP_414) in (let TMP_428 \def (\lambda (x3: C).(\lambda (x4: 
-T).(\lambda (x5: T).(\lambda (H14: (pc3 c (lift (S x1) O x4) (THead (Bind 
-Abst) x x2))).(\lambda (H15: (getl x1 c (CHead x3 (Bind Abst) x4))).(\lambda 
-(_: (ty3 g x3 x4 x5)).(let H_x0 \def (H12 x3 x4 x1 H15 TNil H14) in (let H17 
-\def H_x0 in (let TMP_419 \def (\lambda (v: T).(\lambda (_: T).(let TMP_416 
-\def (TLRef x1) in (let TMP_417 \def (Bind Abst) in (let TMP_418 \def (THead 
-TMP_417 x v) in (eq T TMP_416 TMP_418)))))) in (let TMP_420 \def (\lambda (_: 
-T).(\lambda (w0: T).(ty3 g c x w0))) in (let TMP_423 \def (\lambda (v: 
-T).(\lambda (_: T).(let TMP_421 \def (Bind Abst) in (let TMP_422 \def (CHead 
-c TMP_421 x) in (ty3 g TMP_422 v x2))))) in (let TMP_426 \def (\lambda (v: 
-T).(\lambda (_: T).(let TMP_424 \def (Bind Abst) in (let TMP_425 \def (CHead 
-c TMP_424 x) in (nf2 TMP_425 v))))) in (let TMP_427 \def (ex4_2 T T TMP_419 
-TMP_420 TMP_423 TMP_426) in (False_ind TMP_427 H17)))))))))))))) in 
-(ex3_3_ind C T T TMP_399 TMP_402 TMP_403 TMP_415 TMP_428 H13))))))))))) in 
-(let TMP_430 \def (Bind Abst) in (let TMP_431 \def (THead TMP_430 x x2) in 
-(let TMP_432 \def (ty3_gen_lref g c TMP_431 x1 H11) in (or_ind TMP_337 
-TMP_347 TMP_359 TMP_394 TMP_429 TMP_432))))))))))))))))))))))) in (let 
-TMP_564 \def (\lambda (t0: T).(\lambda (t1: TList).(\lambda (H11: ((\forall 
-(x: T).(\forall (x2: T).((ty3 g c (THeads (Flat Appl) t1 (TLRef x1)) (THead 
-(Bind Abst) x x2)) \to ((ty3_nf2_inv_abst_premise c x x2) \to (ex4_2 T T 
+T).(\lambda (t0: T).(ty3 g e u0 t0)))) (ex4_2 T T (\lambda (v: T).(\lambda 
+(_: T).(eq T (TLRef x1) (THead (Bind Abst) x v)))) (\lambda (_: T).(\lambda 
+(w0: T).(ty3 g c x w0))) (\lambda (v: T).(\lambda (_: T).(ty3 g (CHead c 
+(Bind Abst) x) v x2))) (\lambda (v: T).(\lambda (_: T).(nf2 (CHead c (Bind 
+Abst) x) v)))) (\lambda (x3: C).(\lambda (x4: T).(\lambda (x5: T).(\lambda 
+(H14: (pc3 c (lift (S x1) O x4) (THead (Bind Abst) x x2))).(\lambda (H15: 
+(getl x1 c (CHead x3 (Bind Abst) x4))).(\lambda (_: (ty3 g x3 x4 x5)).(let 
+H_x0 \def (H12 x3 x4 x1 H15 TNil H14) in (let H17 \def H_x0 in (False_ind 
+(ex4_2 T T (\lambda (v: T).(\lambda (_: T).(eq T (TLRef x1) (THead (Bind 
+Abst) x v)))) (\lambda (_: T).(\lambda (w0: T).(ty3 g c x w0))) (\lambda (v: 
+T).(\lambda (_: T).(ty3 g (CHead c (Bind Abst) x) v x2))) (\lambda (v: 
+T).(\lambda (_: T).(nf2 (CHead c (Bind Abst) x) v)))) H17))))))))) H13)) 
+(ty3_gen_lref g c (THead (Bind Abst) x x2) x1 H11)))))) (\lambda (t0: 
+T).(\lambda (t1: TList).(\lambda (H11: ((\forall (x: T).(\forall (x2: 
+T).((ty3 g c (THeads (Flat Appl) t1 (TLRef x1)) (THead (Bind Abst) x x2)) \to 
+((ty3_nf2_inv_abst_premise c x x2) \to (ex4_2 T T (\lambda (v: T).(\lambda 
+(_: T).(eq T (THeads (Flat Appl) t1 (TLRef x1)) (THead (Bind Abst) x v)))) 
+(\lambda (_: T).(\lambda (w0: T).(ty3 g c x w0))) (\lambda (v: T).(\lambda 
+(_: T).(ty3 g (CHead c (Bind Abst) x) v x2))) (\lambda (v: T).(\lambda (_: 
+T).(nf2 (CHead c (Bind Abst) x) v)))))))))).(\lambda (x: T).(\lambda (x2: 
+T).(\lambda (H12: (ty3 g c (THead (Flat Appl) t0 (THeads (Flat Appl) t1 
+(TLRef x1))) (THead (Bind Abst) x x2))).(\lambda (H13: 
+(ty3_nf2_inv_abst_premise c x x2)).(ex3_2_ind T T (\lambda (u0: T).(\lambda 
+(t2: T).(pc3 c (THead (Flat Appl) t0 (THead (Bind Abst) u0 t2)) (THead (Bind 
+Abst) x x2)))) (\lambda (u0: T).(\lambda (t2: T).(ty3 g c (THeads (Flat Appl) 
+t1 (TLRef x1)) (THead (Bind Abst) u0 t2)))) (\lambda (u0: T).(\lambda (_: 
+T).(ty3 g c t0 u0))) (ex4_2 T T (\lambda (v: T).(\lambda (_: T).(eq T (THead 
+(Flat Appl) t0 (THeads (Flat Appl) t1 (TLRef x1))) (THead (Bind Abst) x v)))) 
+(\lambda (_: T).(\lambda (w0: T).(ty3 g c x w0))) (\lambda (v: T).(\lambda 
+(_: T).(ty3 g (CHead c (Bind Abst) x) v x2))) (\lambda (v: T).(\lambda (_: 
+T).(nf2 (CHead c (Bind Abst) x) v)))) (\lambda (x3: T).(\lambda (x4: 
+T).(\lambda (H14: (pc3 c (THead (Flat Appl) t0 (THead (Bind Abst) x3 x4)) 
+(THead (Bind Abst) x x2))).(\lambda (H15: (ty3 g c (THeads (Flat Appl) t1 
+(TLRef x1)) (THead (Bind Abst) x3 x4))).(\lambda (_: (ty3 g c t0 x3)).(let 
+H_y \def (ty3_nf2_gen__ty3_nf2_inv_abst_aux c x x2 H13 t0 x3 x4 H14) in (let 
+H_x0 \def (H11 x3 x4 H15 H_y) in (let H17 \def H_x0 in (ex4_2_ind T T 
 (\lambda (v: T).(\lambda (_: T).(eq T (THeads (Flat Appl) t1 (TLRef x1)) 
-(THead (Bind Abst) x v)))) (\lambda (_: T).(\lambda (w0: T).(ty3 g c x w0))) 
-(\lambda (v: T).(\lambda (_: T).(ty3 g (CHead c (Bind Abst) x) v x2))) 
-(\lambda (v: T).(\lambda (_: T).(nf2 (CHead c (Bind Abst) x) 
-v)))))))))).(\lambda (x: T).(\lambda (x2: T).(\lambda (H12: (ty3 g c (THead 
-(Flat Appl) t0 (THeads (Flat Appl) t1 (TLRef x1))) (THead (Bind Abst) x 
-x2))).(\lambda (H13: (ty3_nf2_inv_abst_premise c x x2)).(let TMP_440 \def 
-(\lambda (u0: T).(\lambda (t2: T).(let TMP_434 \def (Flat Appl) in (let 
-TMP_435 \def (Bind Abst) in (let TMP_436 \def (THead TMP_435 u0 t2) in (let 
-TMP_437 \def (THead TMP_434 t0 TMP_436) in (let TMP_438 \def (Bind Abst) in 
-(let TMP_439 \def (THead TMP_438 x x2) in (pc3 c TMP_437 TMP_439))))))))) in 
-(let TMP_446 \def (\lambda (u0: T).(\lambda (t2: T).(let TMP_441 \def (Flat 
-Appl) in (let TMP_442 \def (TLRef x1) in (let TMP_443 \def (THeads TMP_441 t1 
-TMP_442) in (let TMP_444 \def (Bind Abst) in (let TMP_445 \def (THead TMP_444 
-u0 t2) in (ty3 g c TMP_443 TMP_445)))))))) in (let TMP_447 \def (\lambda (u0: 
-T).(\lambda (_: T).(ty3 g c t0 u0))) in (let TMP_455 \def (\lambda (v: 
-T).(\lambda (_: T).(let TMP_448 \def (Flat Appl) in (let TMP_449 \def (Flat 
-Appl) in (let TMP_450 \def (TLRef x1) in (let TMP_451 \def (THeads TMP_449 t1 
-TMP_450) in (let TMP_452 \def (THead TMP_448 t0 TMP_451) in (let TMP_453 \def 
-(Bind Abst) in (let TMP_454 \def (THead TMP_453 x v) in (eq T TMP_452 
-TMP_454)))))))))) in (let TMP_456 \def (\lambda (_: T).(\lambda (w0: T).(ty3 
-g c x w0))) in (let TMP_459 \def (\lambda (v: T).(\lambda (_: T).(let TMP_457 
-\def (Bind Abst) in (let TMP_458 \def (CHead c TMP_457 x) in (ty3 g TMP_458 v 
-x2))))) in (let TMP_462 \def (\lambda (v: T).(\lambda (_: T).(let TMP_460 
-\def (Bind Abst) in (let TMP_461 \def (CHead c TMP_460 x) in (nf2 TMP_461 
-v))))) in (let TMP_463 \def (ex4_2 T T TMP_455 TMP_456 TMP_459 TMP_462) in 
-(let TMP_557 \def (\lambda (x3: T).(\lambda (x4: T).(\lambda (H14: (pc3 c 
-(THead (Flat Appl) t0 (THead (Bind Abst) x3 x4)) (THead (Bind Abst) x 
-x2))).(\lambda (H15: (ty3 g c (THeads (Flat Appl) t1 (TLRef x1)) (THead (Bind 
-Abst) x3 x4))).(\lambda (_: (ty3 g c t0 x3)).(let H_y \def 
-(ty3_nf2_gen__ty3_nf2_inv_abst_aux c x x2 H13 t0 x3 x4 H14) in (let H_x0 \def 
-(H11 x3 x4 H15 H_y) in (let H17 \def H_x0 in (let TMP_469 \def (\lambda (v: 
-T).(\lambda (_: T).(let TMP_464 \def (Flat Appl) in (let TMP_465 \def (TLRef 
-x1) in (let TMP_466 \def (THeads TMP_464 t1 TMP_465) in (let TMP_467 \def 
-(Bind Abst) in (let TMP_468 \def (THead TMP_467 x3 v) in (eq T TMP_466 
-TMP_468)))))))) in (let TMP_470 \def (\lambda (_: T).(\lambda (w0: T).(ty3 g 
-c x3 w0))) in (let TMP_473 \def (\lambda (v: T).(\lambda (_: T).(let TMP_471 
-\def (Bind Abst) in (let TMP_472 \def (CHead c TMP_471 x3) in (ty3 g TMP_472 
-v x4))))) in (let TMP_476 \def (\lambda (v: T).(\lambda (_: T).(let TMP_474 
-\def (Bind Abst) in (let TMP_475 \def (CHead c TMP_474 x3) in (nf2 TMP_475 
-v))))) in (let TMP_484 \def (\lambda (v: T).(\lambda (_: T).(let TMP_477 \def 
-(Flat Appl) in (let TMP_478 \def (Flat Appl) in (let TMP_479 \def (TLRef x1) 
-in (let TMP_480 \def (THeads TMP_478 t1 TMP_479) in (let TMP_481 \def (THead 
-TMP_477 t0 TMP_480) in (let TMP_482 \def (Bind Abst) in (let TMP_483 \def 
-(THead TMP_482 x v) in (eq T TMP_481 TMP_483)))))))))) in (let TMP_485 \def 
-(\lambda (_: T).(\lambda (w0: T).(ty3 g c x w0))) in (let TMP_488 \def 
-(\lambda (v: T).(\lambda (_: T).(let TMP_486 \def (Bind Abst) in (let TMP_487 
-\def (CHead c TMP_486 x) in (ty3 g TMP_487 v x2))))) in (let TMP_491 \def 
-(\lambda (v: T).(\lambda (_: T).(let TMP_489 \def (Bind Abst) in (let TMP_490 
-\def (CHead c TMP_489 x) in (nf2 TMP_490 v))))) in (let TMP_492 \def (ex4_2 T 
-T TMP_484 TMP_485 TMP_488 TMP_491) in (let TMP_556 \def (\lambda (x5: 
-T).(\lambda (x6: T).(\lambda (H18: (eq T (THeads (Flat Appl) t1 (TLRef x1)) 
-(THead (Bind Abst) x3 x5))).(\lambda (_: (ty3 g c x3 x6)).(\lambda (_: (ty3 g 
-(CHead c (Bind Abst) x3) x5 x4)).(\lambda (_: (nf2 (CHead c (Bind Abst) x3) 
-x5)).(let TMP_508 \def (\lambda (t2: TList).((eq T (THeads (Flat Appl) t2 
-(TLRef x1)) (THead (Bind Abst) x3 x5)) \to (let TMP_500 \def (\lambda (v: 
-T).(\lambda (_: T).(let TMP_493 \def (Flat Appl) in (let TMP_494 \def (Flat 
-Appl) in (let TMP_495 \def (TLRef x1) in (let TMP_496 \def (THeads TMP_494 t2 
-TMP_495) in (let TMP_497 \def (THead TMP_493 t0 TMP_496) in (let TMP_498 \def 
-(Bind Abst) in (let TMP_499 \def (THead TMP_498 x v) in (eq T TMP_497 
-TMP_499)))))))))) in (let TMP_501 \def (\lambda (_: T).(\lambda (w0: T).(ty3 
-g c x w0))) in (let TMP_504 \def (\lambda (v: T).(\lambda (_: T).(let TMP_502 
-\def (Bind Abst) in (let TMP_503 \def (CHead c TMP_502 x) in (ty3 g TMP_503 v 
-x2))))) in (let TMP_507 \def (\lambda (v: T).(\lambda (_: T).(let TMP_505 
-\def (Bind Abst) in (let TMP_506 \def (CHead c TMP_505 x) in (nf2 TMP_506 
-v))))) in (ex4_2 T T TMP_500 TMP_501 TMP_504 TMP_507))))))) in (let TMP_529 
-\def (\lambda (H22: (eq T (THeads (Flat Appl) TNil (TLRef x1)) (THead (Bind 
-Abst) x3 x5))).(let TMP_509 \def (TLRef x1) in (let TMP_510 \def (\lambda 
-(ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow 
-True | (THead _ _ _) \Rightarrow False])) in (let TMP_511 \def (Bind Abst) in 
-(let TMP_512 \def (THead TMP_511 x3 x5) in (let H23 \def (eq_ind T TMP_509 
-TMP_510 I TMP_512 H22) in (let TMP_520 \def (\lambda (v: T).(\lambda (_: 
-T).(let TMP_513 \def (Flat Appl) in (let TMP_514 \def (Flat Appl) in (let 
-TMP_515 \def (TLRef x1) in (let TMP_516 \def (THeads TMP_514 TNil TMP_515) in 
-(let TMP_517 \def (THead TMP_513 t0 TMP_516) in (let TMP_518 \def (Bind Abst) 
-in (let TMP_519 \def (THead TMP_518 x v) in (eq T TMP_517 TMP_519)))))))))) 
-in (let TMP_521 \def (\lambda (_: T).(\lambda (w0: T).(ty3 g c x w0))) in 
-(let TMP_524 \def (\lambda (v: T).(\lambda (_: T).(let TMP_522 \def (Bind 
-Abst) in (let TMP_523 \def (CHead c TMP_522 x) in (ty3 g TMP_523 v x2))))) in 
-(let TMP_527 \def (\lambda (v: T).(\lambda (_: T).(let TMP_525 \def (Bind 
-Abst) in (let TMP_526 \def (CHead c TMP_525 x) in (nf2 TMP_526 v))))) in (let 
-TMP_528 \def (ex4_2 T T TMP_520 TMP_521 TMP_524 TMP_527) in (False_ind 
-TMP_528 H23)))))))))))) in (let TMP_555 \def (\lambda (t2: T).(\lambda (t3: 
+(THead (Bind Abst) x3 v)))) (\lambda (_: T).(\lambda (w0: T).(ty3 g c x3 
+w0))) (\lambda (v: T).(\lambda (_: T).(ty3 g (CHead c (Bind Abst) x3) v x4))) 
+(\lambda (v: T).(\lambda (_: T).(nf2 (CHead c (Bind Abst) x3) v))) (ex4_2 T T 
+(\lambda (v: T).(\lambda (_: T).(eq T (THead (Flat Appl) t0 (THeads (Flat 
+Appl) t1 (TLRef x1))) (THead (Bind Abst) x v)))) (\lambda (_: T).(\lambda 
+(w0: T).(ty3 g c x w0))) (\lambda (v: T).(\lambda (_: T).(ty3 g (CHead c 
+(Bind Abst) x) v x2))) (\lambda (v: T).(\lambda (_: T).(nf2 (CHead c (Bind 
+Abst) x) v)))) (\lambda (x5: T).(\lambda (x6: T).(\lambda (H18: (eq T (THeads 
+(Flat Appl) t1 (TLRef x1)) (THead (Bind Abst) x3 x5))).(\lambda (_: (ty3 g c 
+x3 x6)).(\lambda (_: (ty3 g (CHead c (Bind Abst) x3) x5 x4)).(\lambda (_: 
+(nf2 (CHead c (Bind Abst) x3) x5)).(TList_ind (\lambda (t2: TList).((eq T 
+(THeads (Flat Appl) t2 (TLRef x1)) (THead (Bind Abst) x3 x5)) \to (ex4_2 T T 
+(\lambda (v: T).(\lambda (_: T).(eq T (THead (Flat Appl) t0 (THeads (Flat 
+Appl) t2 (TLRef x1))) (THead (Bind Abst) x v)))) (\lambda (_: T).(\lambda 
+(w0: T).(ty3 g c x w0))) (\lambda (v: T).(\lambda (_: T).(ty3 g (CHead c 
+(Bind Abst) x) v x2))) (\lambda (v: T).(\lambda (_: T).(nf2 (CHead c (Bind 
+Abst) x) v)))))) (\lambda (H22: (eq T (THeads (Flat Appl) TNil (TLRef x1)) 
+(THead (Bind Abst) x3 x5))).(let H23 \def (eq_ind T (TLRef x1) (\lambda (ee: 
+T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow True | 
+(THead _ _ _) \Rightarrow False])) I (THead (Bind Abst) x3 x5) H22) in 
+(False_ind (ex4_2 T T (\lambda (v: T).(\lambda (_: T).(eq T (THead (Flat 
+Appl) t0 (THeads (Flat Appl) TNil (TLRef x1))) (THead (Bind Abst) x v)))) 
+(\lambda (_: T).(\lambda (w0: T).(ty3 g c x w0))) (\lambda (v: T).(\lambda 
+(_: T).(ty3 g (CHead c (Bind Abst) x) v x2))) (\lambda (v: T).(\lambda (_: 
+T).(nf2 (CHead c (Bind Abst) x) v)))) H23))) (\lambda (t2: T).(\lambda (t3: 
 TList).(\lambda (_: (((eq T (THeads (Flat Appl) t3 (TLRef x1)) (THead (Bind 
 Abst) x3 x5)) \to (ex4_2 T T (\lambda (v: T).(\lambda (_: T).(eq T (THead 
 (Flat Appl) t0 (THeads (Flat Appl) t3 (TLRef x1))) (THead (Bind Abst) x v)))) 
 (\lambda (_: T).(\lambda (w0: T).(ty3 g c x w0))) (\lambda (v: T).(\lambda 
 (_: T).(ty3 g (CHead c (Bind Abst) x) v x2))) (\lambda (v: T).(\lambda (_: 
 T).(nf2 (CHead c (Bind Abst) x) v))))))).(\lambda (H22: (eq T (THeads (Flat 
-Appl) (TCons t2 t3) (TLRef x1)) (THead (Bind Abst) x3 x5))).(let TMP_530 \def 
-(Flat Appl) in (let TMP_531 \def (Flat Appl) in (let TMP_532 \def (TLRef x1) 
-in (let TMP_533 \def (THeads TMP_531 t3 TMP_532) in (let TMP_534 \def (THead 
-TMP_530 t2 TMP_533) in (let TMP_535 \def (\lambda (ee: T).(match ee with 
-[(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _) 
-\Rightarrow (match k with [(Bind _) \Rightarrow False | (Flat _) \Rightarrow 
-True])])) in (let TMP_536 \def (Bind Abst) in (let TMP_537 \def (THead 
-TMP_536 x3 x5) in (let H23 \def (eq_ind T TMP_534 TMP_535 I TMP_537 H22) in 
-(let TMP_546 \def (\lambda (v: T).(\lambda (_: T).(let TMP_538 \def (Flat 
-Appl) in (let TMP_539 \def (Flat Appl) in (let TMP_540 \def (TCons t2 t3) in 
-(let TMP_541 \def (TLRef x1) in (let TMP_542 \def (THeads TMP_539 TMP_540 
-TMP_541) in (let TMP_543 \def (THead TMP_538 t0 TMP_542) in (let TMP_544 \def 
-(Bind Abst) in (let TMP_545 \def (THead TMP_544 x v) in (eq T TMP_543 
-TMP_545))))))))))) in (let TMP_547 \def (\lambda (_: T).(\lambda (w0: T).(ty3 
-g c x w0))) in (let TMP_550 \def (\lambda (v: T).(\lambda (_: T).(let TMP_548 
-\def (Bind Abst) in (let TMP_549 \def (CHead c TMP_548 x) in (ty3 g TMP_549 v 
-x2))))) in (let TMP_553 \def (\lambda (v: T).(\lambda (_: T).(let TMP_551 
-\def (Bind Abst) in (let TMP_552 \def (CHead c TMP_551 x) in (nf2 TMP_552 
-v))))) in (let TMP_554 \def (ex4_2 T T TMP_546 TMP_547 TMP_550 TMP_553) in 
-(False_ind TMP_554 H23))))))))))))))))))) in (TList_ind TMP_508 TMP_529 
-TMP_555 t1 H18)))))))))) in (ex4_2_ind T T TMP_469 TMP_470 TMP_473 TMP_476 
-TMP_492 TMP_556 H17))))))))))))))))))) in (let TMP_558 \def (Flat Appl) in 
-(let TMP_559 \def (TLRef x1) in (let TMP_560 \def (THeads TMP_558 t1 TMP_559) 
-in (let TMP_561 \def (Bind Abst) in (let TMP_562 \def (THead TMP_561 x x2) in 
-(let TMP_563 \def (ty3_gen_appl g c t0 TMP_560 TMP_562 H12) in (ex3_2_ind T T 
-TMP_440 TMP_446 TMP_447 TMP_463 TMP_557 TMP_563))))))))))))))))))))))) in 
-(let TMP_565 \def (TList_ind TMP_327 TMP_433 TMP_564 x0) in (let TMP_566 \def 
-(unintro T w TMP_313 TMP_565) in (let TMP_567 \def (unintro T u TMP_299 
-TMP_566 H10) in (let TMP_568 \def (TMP_567 H9) in (eq_ind_r T TMP_274 TMP_285 
-TMP_568 t H5)))))))))))))))))))))))))) in (ex3_2_ind TList nat TMP_251 
-TMP_252 TMP_254 TMP_265 TMP_569 H4))))))))))) in (or3_ind TMP_10 TMP_13 
-TMP_21 TMP_32 TMP_199 TMP_247 TMP_570 H3))))))))))))))))))))))))))))))).
+Appl) (TCons t2 t3) (TLRef x1)) (THead (Bind Abst) x3 x5))).(let H23 \def 
+(eq_ind T (THead (Flat Appl) t2 (THeads (Flat Appl) t3 (TLRef x1))) (\lambda 
+(ee: T).(match ee with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow 
+False | (THead k _ _) \Rightarrow (match k with [(Bind _) \Rightarrow False | 
+(Flat _) \Rightarrow True])])) I (THead (Bind Abst) x3 x5) H22) in (False_ind 
+(ex4_2 T T (\lambda (v: T).(\lambda (_: T).(eq T (THead (Flat Appl) t0 
+(THeads (Flat Appl) (TCons t2 t3) (TLRef x1))) (THead (Bind Abst) x v)))) 
+(\lambda (_: T).(\lambda (w0: T).(ty3 g c x w0))) (\lambda (v: T).(\lambda 
+(_: T).(ty3 g (CHead c (Bind Abst) x) v x2))) (\lambda (v: T).(\lambda (_: 
+T).(nf2 (CHead c (Bind Abst) x) v)))) H23)))))) t1 H18))))))) H17))))))))) 
+(ty3_gen_appl g c t0 (THeads (Flat Appl) t1 (TLRef x1)) (THead (Bind Abst) x 
+x2) H12))))))))) x0)) H10)) H9)) t H5))))))) H4)) H3))))))))))).
 
index eedc5fddd81aee725a1767fafdd97382c55adc0f..8816826ed8b5db59794a96258efdcad94aa1ba25 100644 (file)
@@ -24,806 +24,396 @@ t1 t2) \to (\forall (c: C).(\forall (d: nat).(\forall (h: nat).((drop h d c
 e) \to (ty3 g c (lift h d t1) (lift h d t2))))))))))
 \def
  \lambda (g: G).(\lambda (e: C).(\lambda (t1: T).(\lambda (t2: T).(\lambda 
-(H: (ty3 g e t1 t2)).(let TMP_3 \def (\lambda (c: C).(\lambda (t: T).(\lambda 
-(t0: T).(\forall (c0: C).(\forall (d: nat).(\forall (h: nat).((drop h d c0 c) 
-\to (let TMP_1 \def (lift h d t) in (let TMP_2 \def (lift h d t0) in (ty3 g 
-c0 TMP_1 TMP_2)))))))))) in (let TMP_11 \def (\lambda (c: C).(\lambda (t0: 
+(H: (ty3 g e t1 t2)).(ty3_ind g (\lambda (c: C).(\lambda (t: T).(\lambda (t0: 
+T).(\forall (c0: C).(\forall (d: nat).(\forall (h: nat).((drop h d c0 c) \to 
+(ty3 g c0 (lift h d t) (lift h d t0))))))))) (\lambda (c: C).(\lambda (t0: 
 T).(\lambda (t: T).(\lambda (_: (ty3 g c t0 t)).(\lambda (H1: ((\forall (c0: 
 C).(\forall (d: nat).(\forall (h: nat).((drop h d c0 c) \to (ty3 g c0 (lift h 
 d t0) (lift h d t)))))))).(\lambda (u: T).(\lambda (t3: T).(\lambda (_: (ty3 
 g c u t3)).(\lambda (H3: ((\forall (c0: C).(\forall (d: nat).(\forall (h: 
 nat).((drop h d c0 c) \to (ty3 g c0 (lift h d u) (lift h d 
 t3)))))))).(\lambda (H4: (pc3 c t3 t0)).(\lambda (c0: C).(\lambda (d: 
-nat).(\lambda (h: nat).(\lambda (H5: (drop h d c0 c)).(let TMP_4 \def (lift h 
-d t0) in (let TMP_5 \def (lift h d t) in (let TMP_6 \def (H1 c0 d h H5) in 
-(let TMP_7 \def (lift h d u) in (let TMP_8 \def (lift h d t3) in (let TMP_9 
-\def (H3 c0 d h H5) in (let TMP_10 \def (pc3_lift c0 c h d H5 t3 t0 H4) in 
-(ty3_conv g c0 TMP_4 TMP_5 TMP_6 TMP_7 TMP_8 TMP_9 
-TMP_10)))))))))))))))))))))) in (let TMP_31 \def (\lambda (c: C).(\lambda (m: 
+nat).(\lambda (h: nat).(\lambda (H5: (drop h d c0 c)).(ty3_conv g c0 (lift h 
+d t0) (lift h d t) (H1 c0 d h H5) (lift h d u) (lift h d t3) (H3 c0 d h H5) 
+(pc3_lift c0 c h d H5 t3 t0 H4)))))))))))))))) (\lambda (c: C).(\lambda (m: 
 nat).(\lambda (c0: C).(\lambda (d: nat).(\lambda (h: nat).(\lambda (_: (drop 
-h d c0 c)).(let TMP_12 \def (TSort m) in (let TMP_16 \def (\lambda (t: 
-T).(let TMP_13 \def (next g m) in (let TMP_14 \def (TSort TMP_13) in (let 
-TMP_15 \def (lift h d TMP_14) in (ty3 g c0 t TMP_15))))) in (let TMP_17 \def 
-(next g m) in (let TMP_18 \def (TSort TMP_17) in (let TMP_20 \def (\lambda 
-(t: T).(let TMP_19 \def (TSort m) in (ty3 g c0 TMP_19 t))) in (let TMP_21 
-\def (ty3_sort g c0 m) in (let TMP_22 \def (next g m) in (let TMP_23 \def 
-(TSort TMP_22) in (let TMP_24 \def (lift h d TMP_23) in (let TMP_25 \def 
-(next g m) in (let TMP_26 \def (lift_sort TMP_25 h d) in (let TMP_27 \def 
-(eq_ind_r T TMP_18 TMP_20 TMP_21 TMP_24 TMP_26) in (let TMP_28 \def (TSort m) 
-in (let TMP_29 \def (lift h d TMP_28) in (let TMP_30 \def (lift_sort m h d) 
-in (eq_ind_r T TMP_12 TMP_16 TMP_27 TMP_29 TMP_30)))))))))))))))))))))) in 
-(let TMP_233 \def (\lambda (n: nat).(\lambda (c: C).(\lambda (d: C).(\lambda 
-(u: T).(\lambda (H0: (getl n c (CHead d (Bind Abbr) u))).(\lambda (t: 
-T).(\lambda (H1: (ty3 g d u t)).(\lambda (H2: ((\forall (c0: C).(\forall (d0: 
-nat).(\forall (h: nat).((drop h d0 c0 d) \to (ty3 g c0 (lift h d0 u) (lift h 
-d0 t)))))))).(\lambda (c0: C).(\lambda (d0: nat).(\lambda (h: nat).(\lambda 
-(H3: (drop h d0 c0 c)).(let TMP_32 \def (TLRef n) in (let TMP_33 \def (lift h 
-d0 TMP_32) in (let TMP_34 \def (S n) in (let TMP_35 \def (lift TMP_34 O t) in 
-(let TMP_36 \def (lift h d0 TMP_35) in (let TMP_37 \def (ty3 g c0 TMP_33 
-TMP_36) in (let TMP_159 \def (\lambda (H4: (lt n d0)).(let TMP_38 \def (S n) 
-in (let TMP_39 \def (S d0) in (let TMP_40 \def (S n) in (let TMP_41 \def (S 
-TMP_40) in (let TMP_42 \def (S d0) in (let TMP_43 \def (S n) in (let TMP_44 
-\def (le_n_S TMP_43 d0 H4) in (let TMP_45 \def (le_S TMP_41 TMP_42 TMP_44) in 
-(let TMP_46 \def (le_S_n TMP_38 TMP_39 TMP_45) in (let TMP_47 \def (le_S_n n 
-d0 TMP_46) in (let TMP_48 \def (Bind Abbr) in (let TMP_49 \def (CHead d 
-TMP_48 u) in (let H5 \def (drop_getl_trans_le n d0 TMP_47 c0 c h H3 TMP_49 
-H0) in (let TMP_50 \def (\lambda (e0: C).(\lambda (_: C).(drop n O c0 e0))) 
-in (let TMP_52 \def (\lambda (e0: C).(\lambda (e1: C).(let TMP_51 \def (minus 
-d0 n) in (drop h TMP_51 e0 e1)))) in (let TMP_55 \def (\lambda (_: 
-C).(\lambda (e1: C).(let TMP_53 \def (Bind Abbr) in (let TMP_54 \def (CHead d 
-TMP_53 u) in (clear e1 TMP_54))))) in (let TMP_56 \def (TLRef n) in (let 
-TMP_57 \def (lift h d0 TMP_56) in (let TMP_58 \def (S n) in (let TMP_59 \def 
-(lift TMP_58 O t) in (let TMP_60 \def (lift h d0 TMP_59) in (let TMP_61 \def 
-(ty3 g c0 TMP_57 TMP_60) in (let TMP_158 \def (\lambda (x0: C).(\lambda (x1: 
-C).(\lambda (H6: (drop n O c0 x0)).(\lambda (H7: (drop h (minus d0 n) x0 
-x1)).(\lambda (H8: (clear x1 (CHead d (Bind Abbr) u))).(let TMP_62 \def 
-(minus d0 n) in (let TMP_63 \def (\lambda (n0: nat).(drop h n0 x0 x1)) in 
-(let TMP_64 \def (S n) in (let TMP_65 \def (minus d0 TMP_64) in (let TMP_66 
-\def (S TMP_65) in (let TMP_67 \def (minus_x_Sy d0 n H4) in (let H9 \def 
-(eq_ind nat TMP_62 TMP_63 H7 TMP_66 TMP_67) in (let TMP_68 \def (S n) in (let 
-TMP_69 \def (minus d0 TMP_68) in (let H10 \def (drop_clear_S x1 x0 h TMP_69 
-H9 Abbr d u H8) in (let TMP_75 \def (\lambda (c1: C).(let TMP_70 \def (Bind 
-Abbr) in (let TMP_71 \def (S n) in (let TMP_72 \def (minus d0 TMP_71) in (let 
-TMP_73 \def (lift h TMP_72 u) in (let TMP_74 \def (CHead c1 TMP_70 TMP_73) in 
-(clear x0 TMP_74))))))) in (let TMP_78 \def (\lambda (c1: C).(let TMP_76 \def 
-(S n) in (let TMP_77 \def (minus d0 TMP_76) in (drop h TMP_77 c1 d)))) in 
-(let TMP_79 \def (TLRef n) in (let TMP_80 \def (lift h d0 TMP_79) in (let 
-TMP_81 \def (S n) in (let TMP_82 \def (lift TMP_81 O t) in (let TMP_83 \def 
-(lift h d0 TMP_82) in (let TMP_84 \def (ty3 g c0 TMP_80 TMP_83) in (let 
-TMP_157 \def (\lambda (x: C).(\lambda (H11: (clear x0 (CHead x (Bind Abbr) 
-(lift h (minus d0 (S n)) u)))).(\lambda (H12: (drop h (minus d0 (S n)) x 
-d)).(let TMP_85 \def (TLRef n) in (let TMP_89 \def (\lambda (t0: T).(let 
-TMP_86 \def (S n) in (let TMP_87 \def (lift TMP_86 O t) in (let TMP_88 \def 
-(lift h d0 TMP_87) in (ty3 g c0 t0 TMP_88))))) in (let TMP_90 \def (S n) in 
-(let TMP_91 \def (S n) in (let TMP_92 \def (minus d0 TMP_91) in (let TMP_93 
-\def (plus TMP_90 TMP_92) in (let TMP_98 \def (\lambda (n0: nat).(let TMP_94 
-\def (TLRef n) in (let TMP_95 \def (S n) in (let TMP_96 \def (lift TMP_95 O 
-t) in (let TMP_97 \def (lift h n0 TMP_96) in (ty3 g c0 TMP_94 TMP_97)))))) in 
-(let TMP_99 \def (S n) in (let TMP_100 \def (S n) in (let TMP_101 \def (minus 
-d0 TMP_100) in (let TMP_102 \def (lift h TMP_101 t) in (let TMP_103 \def 
-(lift TMP_99 O TMP_102) in (let TMP_105 \def (\lambda (t0: T).(let TMP_104 
-\def (TLRef n) in (ty3 g c0 TMP_104 t0))) in (let TMP_112 \def (\lambda (_: 
-nat).(let TMP_106 \def (TLRef n) in (let TMP_107 \def (S n) in (let TMP_108 
-\def (S n) in (let TMP_109 \def (minus d0 TMP_108) in (let TMP_110 \def (lift 
-h TMP_109 t) in (let TMP_111 \def (lift TMP_107 O TMP_110) in (ty3 g c0 
-TMP_106 TMP_111)))))))) in (let TMP_113 \def (S n) in (let TMP_114 \def 
-(minus d0 TMP_113) in (let TMP_115 \def (lift h TMP_114 u) in (let TMP_116 
-\def (Bind Abbr) in (let TMP_117 \def (S n) in (let TMP_118 \def (minus d0 
-TMP_117) in (let TMP_119 \def (lift h TMP_118 u) in (let TMP_120 \def (CHead 
-x TMP_116 TMP_119) in (let TMP_121 \def (getl_intro n c0 TMP_120 x0 H6 H11) 
-in (let TMP_122 \def (S n) in (let TMP_123 \def (minus d0 TMP_122) in (let 
-TMP_124 \def (lift h TMP_123 t) in (let TMP_125 \def (S n) in (let TMP_126 
-\def (minus d0 TMP_125) in (let TMP_127 \def (H2 x TMP_126 h H12) in (let 
-TMP_128 \def (ty3_abbr g n c0 x TMP_115 TMP_121 TMP_124 TMP_127) in (let 
-TMP_129 \def (S n) in (let TMP_130 \def (S n) in (let TMP_131 \def (minus d0 
-TMP_130) in (let TMP_132 \def (plus TMP_129 TMP_131) in (let TMP_133 \def (S 
-n) in (let TMP_134 \def (le_plus_minus TMP_133 d0 H4) in (let TMP_135 \def 
-(eq_ind nat d0 TMP_112 TMP_128 TMP_132 TMP_134) in (let TMP_136 \def (S n) in 
-(let TMP_137 \def (S n) in (let TMP_138 \def (minus d0 TMP_137) in (let 
-TMP_139 \def (plus TMP_136 TMP_138) in (let TMP_140 \def (S n) in (let 
-TMP_141 \def (lift TMP_140 O t) in (let TMP_142 \def (lift h TMP_139 TMP_141) 
-in (let TMP_143 \def (S n) in (let TMP_144 \def (S n) in (let TMP_145 \def 
-(minus d0 TMP_144) in (let TMP_146 \def (S n) in (let TMP_147 \def (minus d0 
-TMP_146) in (let TMP_148 \def (le_O_n TMP_147) in (let TMP_149 \def (lift_d t 
-h TMP_143 TMP_145 O TMP_148) in (let TMP_150 \def (eq_ind_r T TMP_103 TMP_105 
-TMP_135 TMP_142 TMP_149) in (let TMP_151 \def (S n) in (let TMP_152 \def 
-(le_plus_minus_r TMP_151 d0 H4) in (let TMP_153 \def (eq_ind nat TMP_93 
-TMP_98 TMP_150 d0 TMP_152) in (let TMP_154 \def (TLRef n) in (let TMP_155 
-\def (lift h d0 TMP_154) in (let TMP_156 \def (lift_lref_lt n h d0 H4) in 
-(eq_ind_r T TMP_85 TMP_89 TMP_153 TMP_155 
-TMP_156)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) in 
-(ex2_ind C TMP_75 TMP_78 TMP_84 TMP_157 H10))))))))))))))))))))))))) in 
-(ex3_2_ind C C TMP_50 TMP_52 TMP_55 TMP_61 TMP_158 
-H5))))))))))))))))))))))))) in (let TMP_232 \def (\lambda (H4: (le d0 
-n)).(let TMP_160 \def (plus n h) in (let TMP_161 \def (TLRef TMP_160) in (let 
-TMP_165 \def (\lambda (t0: T).(let TMP_162 \def (S n) in (let TMP_163 \def 
-(lift TMP_162 O t) in (let TMP_164 \def (lift h d0 TMP_163) in (ty3 g c0 t0 
-TMP_164))))) in (let TMP_166 \def (S n) in (let TMP_172 \def (\lambda (_: 
-nat).(let TMP_167 \def (plus n h) in (let TMP_168 \def (TLRef TMP_167) in 
-(let TMP_169 \def (S n) in (let TMP_170 \def (lift TMP_169 O t) in (let 
-TMP_171 \def (lift h d0 TMP_170) in (ty3 g c0 TMP_168 TMP_171))))))) in (let 
-TMP_173 \def (S n) in (let TMP_174 \def (plus h TMP_173) in (let TMP_175 \def 
-(lift TMP_174 O t) in (let TMP_178 \def (\lambda (t0: T).(let TMP_176 \def 
-(plus n h) in (let TMP_177 \def (TLRef TMP_176) in (ty3 g c0 TMP_177 t0)))) 
-in (let TMP_179 \def (S n) in (let TMP_180 \def (plus TMP_179 h) in (let 
-TMP_184 \def (\lambda (n0: nat).(let TMP_181 \def (plus n h) in (let TMP_182 
-\def (TLRef TMP_181) in (let TMP_183 \def (lift n0 O t) in (ty3 g c0 TMP_182 
-TMP_183))))) in (let TMP_185 \def (plus n h) in (let TMP_186 \def (Bind Abbr) 
-in (let TMP_187 \def (CHead d TMP_186 u) in (let TMP_188 \def 
-(drop_getl_trans_ge n c0 c d0 h H3 TMP_187 H0 H4) in (let TMP_189 \def 
-(ty3_abbr g TMP_185 c0 d u TMP_188 t H1) in (let TMP_190 \def (S n) in (let 
-TMP_191 \def (plus h TMP_190) in (let TMP_192 \def (S n) in (let TMP_193 \def 
-(plus_sym h TMP_192) in (let TMP_194 \def (eq_ind_r nat TMP_180 TMP_184 
-TMP_189 TMP_191 TMP_193) in (let TMP_195 \def (S n) in (let TMP_196 \def 
-(lift TMP_195 O t) in (let TMP_197 \def (lift h d0 TMP_196) in (let TMP_198 
-\def (S n) in (let TMP_199 \def (S n) in (let TMP_200 \def (S d0) in (let 
-TMP_201 \def (S n) in (let TMP_202 \def (le_n_S d0 n H4) in (let TMP_203 \def 
-(le_S TMP_200 TMP_201 TMP_202) in (let TMP_204 \def (le_S_n d0 TMP_199 
-TMP_203) in (let TMP_205 \def (le_O_n d0) in (let TMP_206 \def (lift_free t 
-TMP_198 h O d0 TMP_204 TMP_205) in (let TMP_207 \def (eq_ind_r T TMP_175 
-TMP_178 TMP_194 TMP_197 TMP_206) in (let TMP_208 \def (S O) in (let TMP_209 
-\def (plus n TMP_208) in (let TMP_210 \def (S O) in (let TMP_211 \def (plus 
-TMP_210 n) in (let TMP_213 \def (\lambda (n0: nat).(let TMP_212 \def (S n) in 
-(eq nat TMP_212 n0))) in (let TMP_214 \def (S n) in (let TMP_215 \def (S O) 
-in (let TMP_216 \def (plus TMP_215 n) in (let TMP_217 \def (S O) in (let 
-TMP_218 \def (plus TMP_217 n) in (let TMP_219 \def (le_n TMP_218) in (let 
-TMP_220 \def (S n) in (let TMP_221 \def (le_n TMP_220) in (let TMP_222 \def 
-(le_antisym TMP_214 TMP_216 TMP_219 TMP_221) in (let TMP_223 \def (S O) in 
-(let TMP_224 \def (plus n TMP_223) in (let TMP_225 \def (S O) in (let TMP_226 
-\def (plus_sym n TMP_225) in (let TMP_227 \def (eq_ind_r nat TMP_211 TMP_213 
-TMP_222 TMP_224 TMP_226) in (let TMP_228 \def (eq_ind nat TMP_166 TMP_172 
-TMP_207 TMP_209 TMP_227) in (let TMP_229 \def (TLRef n) in (let TMP_230 \def 
-(lift h d0 TMP_229) in (let TMP_231 \def (lift_lref_ge n h d0 H4) in 
-(eq_ind_r T TMP_161 TMP_165 TMP_228 TMP_230 
-TMP_231)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) in 
-(lt_le_e n d0 TMP_37 TMP_159 TMP_232))))))))))))))))))))) in (let TMP_435 
-\def (\lambda (n: nat).(\lambda (c: C).(\lambda (d: C).(\lambda (u: 
-T).(\lambda (H0: (getl n c (CHead d (Bind Abst) u))).(\lambda (t: T).(\lambda 
-(H1: (ty3 g d u t)).(\lambda (H2: ((\forall (c0: C).(\forall (d0: 
-nat).(\forall (h: nat).((drop h d0 c0 d) \to (ty3 g c0 (lift h d0 u) (lift h 
-d0 t)))))))).(\lambda (c0: C).(\lambda (d0: nat).(\lambda (h: nat).(\lambda 
-(H3: (drop h d0 c0 c)).(let TMP_234 \def (TLRef n) in (let TMP_235 \def (lift 
-h d0 TMP_234) in (let TMP_236 \def (S n) in (let TMP_237 \def (lift TMP_236 O 
-u) in (let TMP_238 \def (lift h d0 TMP_237) in (let TMP_239 \def (ty3 g c0 
-TMP_235 TMP_238) in (let TMP_361 \def (\lambda (H4: (lt n d0)).(let TMP_240 
-\def (S n) in (let TMP_241 \def (S d0) in (let TMP_242 \def (S n) in (let 
-TMP_243 \def (S TMP_242) in (let TMP_244 \def (S d0) in (let TMP_245 \def (S 
-n) in (let TMP_246 \def (le_n_S TMP_245 d0 H4) in (let TMP_247 \def (le_S 
-TMP_243 TMP_244 TMP_246) in (let TMP_248 \def (le_S_n TMP_240 TMP_241 
-TMP_247) in (let TMP_249 \def (le_S_n n d0 TMP_248) in (let TMP_250 \def 
-(Bind Abst) in (let TMP_251 \def (CHead d TMP_250 u) in (let H5 \def 
-(drop_getl_trans_le n d0 TMP_249 c0 c h H3 TMP_251 H0) in (let TMP_252 \def 
-(\lambda (e0: C).(\lambda (_: C).(drop n O c0 e0))) in (let TMP_254 \def 
-(\lambda (e0: C).(\lambda (e1: C).(let TMP_253 \def (minus d0 n) in (drop h 
-TMP_253 e0 e1)))) in (let TMP_257 \def (\lambda (_: C).(\lambda (e1: C).(let 
-TMP_255 \def (Bind Abst) in (let TMP_256 \def (CHead d TMP_255 u) in (clear 
-e1 TMP_256))))) in (let TMP_258 \def (TLRef n) in (let TMP_259 \def (lift h 
-d0 TMP_258) in (let TMP_260 \def (S n) in (let TMP_261 \def (lift TMP_260 O 
-u) in (let TMP_262 \def (lift h d0 TMP_261) in (let TMP_263 \def (ty3 g c0 
-TMP_259 TMP_262) in (let TMP_360 \def (\lambda (x0: C).(\lambda (x1: 
-C).(\lambda (H6: (drop n O c0 x0)).(\lambda (H7: (drop h (minus d0 n) x0 
-x1)).(\lambda (H8: (clear x1 (CHead d (Bind Abst) u))).(let TMP_264 \def 
-(minus d0 n) in (let TMP_265 \def (\lambda (n0: nat).(drop h n0 x0 x1)) in 
-(let TMP_266 \def (S n) in (let TMP_267 \def (minus d0 TMP_266) in (let 
-TMP_268 \def (S TMP_267) in (let TMP_269 \def (minus_x_Sy d0 n H4) in (let H9 
-\def (eq_ind nat TMP_264 TMP_265 H7 TMP_268 TMP_269) in (let TMP_270 \def (S 
-n) in (let TMP_271 \def (minus d0 TMP_270) in (let H10 \def (drop_clear_S x1 
-x0 h TMP_271 H9 Abst d u H8) in (let TMP_277 \def (\lambda (c1: C).(let 
-TMP_272 \def (Bind Abst) in (let TMP_273 \def (S n) in (let TMP_274 \def 
-(minus d0 TMP_273) in (let TMP_275 \def (lift h TMP_274 u) in (let TMP_276 
-\def (CHead c1 TMP_272 TMP_275) in (clear x0 TMP_276))))))) in (let TMP_280 
-\def (\lambda (c1: C).(let TMP_278 \def (S n) in (let TMP_279 \def (minus d0 
-TMP_278) in (drop h TMP_279 c1 d)))) in (let TMP_281 \def (TLRef n) in (let 
-TMP_282 \def (lift h d0 TMP_281) in (let TMP_283 \def (S n) in (let TMP_284 
-\def (lift TMP_283 O u) in (let TMP_285 \def (lift h d0 TMP_284) in (let 
-TMP_286 \def (ty3 g c0 TMP_282 TMP_285) in (let TMP_359 \def (\lambda (x: 
-C).(\lambda (H11: (clear x0 (CHead x (Bind Abst) (lift h (minus d0 (S n)) 
-u)))).(\lambda (H12: (drop h (minus d0 (S n)) x d)).(let TMP_287 \def (TLRef 
-n) in (let TMP_291 \def (\lambda (t0: T).(let TMP_288 \def (S n) in (let 
-TMP_289 \def (lift TMP_288 O u) in (let TMP_290 \def (lift h d0 TMP_289) in 
-(ty3 g c0 t0 TMP_290))))) in (let TMP_292 \def (S n) in (let TMP_293 \def (S 
-n) in (let TMP_294 \def (minus d0 TMP_293) in (let TMP_295 \def (plus TMP_292 
-TMP_294) in (let TMP_300 \def (\lambda (n0: nat).(let TMP_296 \def (TLRef n) 
-in (let TMP_297 \def (S n) in (let TMP_298 \def (lift TMP_297 O u) in (let 
-TMP_299 \def (lift h n0 TMP_298) in (ty3 g c0 TMP_296 TMP_299)))))) in (let 
-TMP_301 \def (S n) in (let TMP_302 \def (S n) in (let TMP_303 \def (minus d0 
-TMP_302) in (let TMP_304 \def (lift h TMP_303 u) in (let TMP_305 \def (lift 
-TMP_301 O TMP_304) in (let TMP_307 \def (\lambda (t0: T).(let TMP_306 \def 
-(TLRef n) in (ty3 g c0 TMP_306 t0))) in (let TMP_314 \def (\lambda (_: 
-nat).(let TMP_308 \def (TLRef n) in (let TMP_309 \def (S n) in (let TMP_310 
-\def (S n) in (let TMP_311 \def (minus d0 TMP_310) in (let TMP_312 \def (lift 
-h TMP_311 u) in (let TMP_313 \def (lift TMP_309 O TMP_312) in (ty3 g c0 
-TMP_308 TMP_313)))))))) in (let TMP_315 \def (S n) in (let TMP_316 \def 
-(minus d0 TMP_315) in (let TMP_317 \def (lift h TMP_316 u) in (let TMP_318 
-\def (Bind Abst) in (let TMP_319 \def (S n) in (let TMP_320 \def (minus d0 
-TMP_319) in (let TMP_321 \def (lift h TMP_320 u) in (let TMP_322 \def (CHead 
-x TMP_318 TMP_321) in (let TMP_323 \def (getl_intro n c0 TMP_322 x0 H6 H11) 
-in (let TMP_324 \def (S n) in (let TMP_325 \def (minus d0 TMP_324) in (let 
-TMP_326 \def (lift h TMP_325 t) in (let TMP_327 \def (S n) in (let TMP_328 
-\def (minus d0 TMP_327) in (let TMP_329 \def (H2 x TMP_328 h H12) in (let 
-TMP_330 \def (ty3_abst g n c0 x TMP_317 TMP_323 TMP_326 TMP_329) in (let 
-TMP_331 \def (S n) in (let TMP_332 \def (S n) in (let TMP_333 \def (minus d0 
-TMP_332) in (let TMP_334 \def (plus TMP_331 TMP_333) in (let TMP_335 \def (S 
-n) in (let TMP_336 \def (le_plus_minus TMP_335 d0 H4) in (let TMP_337 \def 
-(eq_ind nat d0 TMP_314 TMP_330 TMP_334 TMP_336) in (let TMP_338 \def (S n) in 
-(let TMP_339 \def (S n) in (let TMP_340 \def (minus d0 TMP_339) in (let 
-TMP_341 \def (plus TMP_338 TMP_340) in (let TMP_342 \def (S n) in (let 
-TMP_343 \def (lift TMP_342 O u) in (let TMP_344 \def (lift h TMP_341 TMP_343) 
-in (let TMP_345 \def (S n) in (let TMP_346 \def (S n) in (let TMP_347 \def 
-(minus d0 TMP_346) in (let TMP_348 \def (S n) in (let TMP_349 \def (minus d0 
-TMP_348) in (let TMP_350 \def (le_O_n TMP_349) in (let TMP_351 \def (lift_d u 
-h TMP_345 TMP_347 O TMP_350) in (let TMP_352 \def (eq_ind_r T TMP_305 TMP_307 
-TMP_337 TMP_344 TMP_351) in (let TMP_353 \def (S n) in (let TMP_354 \def 
-(le_plus_minus_r TMP_353 d0 H4) in (let TMP_355 \def (eq_ind nat TMP_295 
-TMP_300 TMP_352 d0 TMP_354) in (let TMP_356 \def (TLRef n) in (let TMP_357 
-\def (lift h d0 TMP_356) in (let TMP_358 \def (lift_lref_lt n h d0 H4) in 
-(eq_ind_r T TMP_287 TMP_291 TMP_355 TMP_357 
-TMP_358)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) in 
-(ex2_ind C TMP_277 TMP_280 TMP_286 TMP_359 H10))))))))))))))))))))))))) in 
-(ex3_2_ind C C TMP_252 TMP_254 TMP_257 TMP_263 TMP_360 
-H5))))))))))))))))))))))))) in (let TMP_434 \def (\lambda (H4: (le d0 
-n)).(let TMP_362 \def (plus n h) in (let TMP_363 \def (TLRef TMP_362) in (let 
-TMP_367 \def (\lambda (t0: T).(let TMP_364 \def (S n) in (let TMP_365 \def 
-(lift TMP_364 O u) in (let TMP_366 \def (lift h d0 TMP_365) in (ty3 g c0 t0 
-TMP_366))))) in (let TMP_368 \def (S n) in (let TMP_374 \def (\lambda (_: 
-nat).(let TMP_369 \def (plus n h) in (let TMP_370 \def (TLRef TMP_369) in 
-(let TMP_371 \def (S n) in (let TMP_372 \def (lift TMP_371 O u) in (let 
-TMP_373 \def (lift h d0 TMP_372) in (ty3 g c0 TMP_370 TMP_373))))))) in (let 
-TMP_375 \def (S n) in (let TMP_376 \def (plus h TMP_375) in (let TMP_377 \def 
-(lift TMP_376 O u) in (let TMP_380 \def (\lambda (t0: T).(let TMP_378 \def 
-(plus n h) in (let TMP_379 \def (TLRef TMP_378) in (ty3 g c0 TMP_379 t0)))) 
-in (let TMP_381 \def (S n) in (let TMP_382 \def (plus TMP_381 h) in (let 
-TMP_386 \def (\lambda (n0: nat).(let TMP_383 \def (plus n h) in (let TMP_384 
-\def (TLRef TMP_383) in (let TMP_385 \def (lift n0 O u) in (ty3 g c0 TMP_384 
-TMP_385))))) in (let TMP_387 \def (plus n h) in (let TMP_388 \def (Bind Abst) 
-in (let TMP_389 \def (CHead d TMP_388 u) in (let TMP_390 \def 
-(drop_getl_trans_ge n c0 c d0 h H3 TMP_389 H0 H4) in (let TMP_391 \def 
-(ty3_abst g TMP_387 c0 d u TMP_390 t H1) in (let TMP_392 \def (S n) in (let 
-TMP_393 \def (plus h TMP_392) in (let TMP_394 \def (S n) in (let TMP_395 \def 
-(plus_sym h TMP_394) in (let TMP_396 \def (eq_ind_r nat TMP_382 TMP_386 
-TMP_391 TMP_393 TMP_395) in (let TMP_397 \def (S n) in (let TMP_398 \def 
-(lift TMP_397 O u) in (let TMP_399 \def (lift h d0 TMP_398) in (let TMP_400 
-\def (S n) in (let TMP_401 \def (S n) in (let TMP_402 \def (S d0) in (let 
-TMP_403 \def (S n) in (let TMP_404 \def (le_n_S d0 n H4) in (let TMP_405 \def 
-(le_S TMP_402 TMP_403 TMP_404) in (let TMP_406 \def (le_S_n d0 TMP_401 
-TMP_405) in (let TMP_407 \def (le_O_n d0) in (let TMP_408 \def (lift_free u 
-TMP_400 h O d0 TMP_406 TMP_407) in (let TMP_409 \def (eq_ind_r T TMP_377 
-TMP_380 TMP_396 TMP_399 TMP_408) in (let TMP_410 \def (S O) in (let TMP_411 
-\def (plus n TMP_410) in (let TMP_412 \def (S O) in (let TMP_413 \def (plus 
-TMP_412 n) in (let TMP_415 \def (\lambda (n0: nat).(let TMP_414 \def (S n) in 
-(eq nat TMP_414 n0))) in (let TMP_416 \def (S n) in (let TMP_417 \def (S O) 
-in (let TMP_418 \def (plus TMP_417 n) in (let TMP_419 \def (S O) in (let 
-TMP_420 \def (plus TMP_419 n) in (let TMP_421 \def (le_n TMP_420) in (let 
-TMP_422 \def (S n) in (let TMP_423 \def (le_n TMP_422) in (let TMP_424 \def 
-(le_antisym TMP_416 TMP_418 TMP_421 TMP_423) in (let TMP_425 \def (S O) in 
-(let TMP_426 \def (plus n TMP_425) in (let TMP_427 \def (S O) in (let TMP_428 
-\def (plus_sym n TMP_427) in (let TMP_429 \def (eq_ind_r nat TMP_413 TMP_415 
-TMP_424 TMP_426 TMP_428) in (let TMP_430 \def (eq_ind nat TMP_368 TMP_374 
-TMP_409 TMP_411 TMP_429) in (let TMP_431 \def (TLRef n) in (let TMP_432 \def 
-(lift h d0 TMP_431) in (let TMP_433 \def (lift_lref_ge n h d0 H4) in 
-(eq_ind_r T TMP_363 TMP_367 TMP_430 TMP_432 
-TMP_433)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) in 
-(lt_le_e n d0 TMP_239 TMP_361 TMP_434))))))))))))))))))))) in (let TMP_484 
-\def (\lambda (c: C).(\lambda (u: T).(\lambda (t: T).(\lambda (_: (ty3 g c u 
-t)).(\lambda (H1: ((\forall (c0: C).(\forall (d: nat).(\forall (h: 
-nat).((drop h d c0 c) \to (ty3 g c0 (lift h d u) (lift h d t)))))))).(\lambda 
-(b: B).(\lambda (t0: T).(\lambda (t3: T).(\lambda (_: (ty3 g (CHead c (Bind 
-b) u) t0 t3)).(\lambda (H3: ((\forall (c0: C).(\forall (d: nat).(\forall (h: 
-nat).((drop h d c0 (CHead c (Bind b) u)) \to (ty3 g c0 (lift h d t0) (lift h 
-d t3)))))))).(\lambda (c0: C).(\lambda (d: nat).(\lambda (h: nat).(\lambda 
-(H4: (drop h d c0 c)).(let TMP_436 \def (Bind b) in (let TMP_437 \def (lift h 
-d u) in (let TMP_438 \def (Bind b) in (let TMP_439 \def (s TMP_438 d) in (let 
-TMP_440 \def (lift h TMP_439 t0) in (let TMP_441 \def (THead TMP_436 TMP_437 
-TMP_440) in (let TMP_445 \def (\lambda (t4: T).(let TMP_442 \def (Bind b) in 
-(let TMP_443 \def (THead TMP_442 u t3) in (let TMP_444 \def (lift h d 
-TMP_443) in (ty3 g c0 t4 TMP_444))))) in (let TMP_446 \def (Bind b) in (let 
-TMP_447 \def (lift h d u) in (let TMP_448 \def (Bind b) in (let TMP_449 \def 
-(s TMP_448 d) in (let TMP_450 \def (lift h TMP_449 t3) in (let TMP_451 \def 
-(THead TMP_446 TMP_447 TMP_450) in (let TMP_458 \def (\lambda (t4: T).(let 
-TMP_452 \def (Bind b) in (let TMP_453 \def (lift h d u) in (let TMP_454 \def 
-(Bind b) in (let TMP_455 \def (s TMP_454 d) in (let TMP_456 \def (lift h 
-TMP_455 t0) in (let TMP_457 \def (THead TMP_452 TMP_453 TMP_456) in (ty3 g c0 
-TMP_457 t4)))))))) in (let TMP_459 \def (lift h d u) in (let TMP_460 \def 
-(lift h d t) in (let TMP_461 \def (H1 c0 d h H4) in (let TMP_462 \def (S d) 
-in (let TMP_463 \def (lift h TMP_462 t0) in (let TMP_464 \def (S d) in (let 
-TMP_465 \def (lift h TMP_464 t3) in (let TMP_466 \def (Bind b) in (let 
-TMP_467 \def (lift h d u) in (let TMP_468 \def (CHead c0 TMP_466 TMP_467) in 
-(let TMP_469 \def (S d) in (let TMP_470 \def (drop_skip_bind h d c0 c H4 b u) 
-in (let TMP_471 \def (H3 TMP_468 TMP_469 h TMP_470) in (let TMP_472 \def 
-(ty3_bind g c0 TMP_459 TMP_460 TMP_461 b TMP_463 TMP_465 TMP_471) in (let 
-TMP_473 \def (Bind b) in (let TMP_474 \def (THead TMP_473 u t3) in (let 
-TMP_475 \def (lift h d TMP_474) in (let TMP_476 \def (Bind b) in (let TMP_477 
-\def (lift_head TMP_476 u t3 h d) in (let TMP_478 \def (eq_ind_r T TMP_451 
-TMP_458 TMP_472 TMP_475 TMP_477) in (let TMP_479 \def (Bind b) in (let 
-TMP_480 \def (THead TMP_479 u t0) in (let TMP_481 \def (lift h d TMP_480) in 
-(let TMP_482 \def (Bind b) in (let TMP_483 \def (lift_head TMP_482 u t0 h d) 
-in (eq_ind_r T TMP_441 TMP_445 TMP_478 TMP_481 
-TMP_483)))))))))))))))))))))))))))))))))))))))))))))))))))))) in (let TMP_577 
-\def (\lambda (c: C).(\lambda (w: T).(\lambda (u: T).(\lambda (_: (ty3 g c w 
-u)).(\lambda (H1: ((\forall (c0: C).(\forall (d: nat).(\forall (h: 
-nat).((drop h d c0 c) \to (ty3 g c0 (lift h d w) (lift h d u)))))))).(\lambda 
-(v: T).(\lambda (t: T).(\lambda (_: (ty3 g c v (THead (Bind Abst) u 
-t))).(\lambda (H3: ((\forall (c0: C).(\forall (d: nat).(\forall (h: 
-nat).((drop h d c0 c) \to (ty3 g c0 (lift h d v) (lift h d (THead (Bind Abst) 
-u t))))))))).(\lambda (c0: C).(\lambda (d: nat).(\lambda (h: nat).(\lambda 
-(H4: (drop h d c0 c)).(let TMP_485 \def (Flat Appl) in (let TMP_486 \def 
-(lift h d w) in (let TMP_487 \def (Flat Appl) in (let TMP_488 \def (s TMP_487 
-d) in (let TMP_489 \def (lift h TMP_488 v) in (let TMP_490 \def (THead 
-TMP_485 TMP_486 TMP_489) in (let TMP_496 \def (\lambda (t0: T).(let TMP_491 
-\def (Flat Appl) in (let TMP_492 \def (Bind Abst) in (let TMP_493 \def (THead 
-TMP_492 u t) in (let TMP_494 \def (THead TMP_491 w TMP_493) in (let TMP_495 
-\def (lift h d TMP_494) in (ty3 g c0 t0 TMP_495))))))) in (let TMP_497 \def 
-(Flat Appl) in (let TMP_498 \def (lift h d w) in (let TMP_499 \def (Flat 
-Appl) in (let TMP_500 \def (s TMP_499 d) in (let TMP_501 \def (Bind Abst) in 
-(let TMP_502 \def (THead TMP_501 u t) in (let TMP_503 \def (lift h TMP_500 
-TMP_502) in (let TMP_504 \def (THead TMP_497 TMP_498 TMP_503) in (let TMP_511 
-\def (\lambda (t0: T).(let TMP_505 \def (Flat Appl) in (let TMP_506 \def 
-(lift h d w) in (let TMP_507 \def (Flat Appl) in (let TMP_508 \def (s TMP_507 
-d) in (let TMP_509 \def (lift h TMP_508 v) in (let TMP_510 \def (THead 
-TMP_505 TMP_506 TMP_509) in (ty3 g c0 TMP_510 t0)))))))) in (let TMP_512 \def 
-(Bind Abst) in (let TMP_513 \def (Flat Appl) in (let TMP_514 \def (s TMP_513 
-d) in (let TMP_515 \def (lift h TMP_514 u) in (let TMP_516 \def (Bind Abst) 
-in (let TMP_517 \def (Flat Appl) in (let TMP_518 \def (s TMP_517 d) in (let 
-TMP_519 \def (s TMP_516 TMP_518) in (let TMP_520 \def (lift h TMP_519 t) in 
-(let TMP_521 \def (THead TMP_512 TMP_515 TMP_520) in (let TMP_531 \def 
-(\lambda (t0: T).(let TMP_522 \def (Flat Appl) in (let TMP_523 \def (lift h d 
-w) in (let TMP_524 \def (Flat Appl) in (let TMP_525 \def (s TMP_524 d) in 
-(let TMP_526 \def (lift h TMP_525 v) in (let TMP_527 \def (THead TMP_522 
-TMP_523 TMP_526) in (let TMP_528 \def (Flat Appl) in (let TMP_529 \def (lift 
-h d w) in (let TMP_530 \def (THead TMP_528 TMP_529 t0) in (ty3 g c0 TMP_527 
-TMP_530))))))))))) in (let TMP_532 \def (lift h d w) in (let TMP_533 \def 
-(lift h d u) in (let TMP_534 \def (H1 c0 d h H4) in (let TMP_535 \def (lift h 
-d v) in (let TMP_536 \def (S d) in (let TMP_537 \def (lift h TMP_536 t) in 
-(let TMP_538 \def (Bind Abst) in (let TMP_539 \def (THead TMP_538 u t) in 
-(let TMP_540 \def (lift h d TMP_539) in (let TMP_542 \def (\lambda (t0: 
-T).(let TMP_541 \def (lift h d v) in (ty3 g c0 TMP_541 t0))) in (let TMP_543 
-\def (H3 c0 d h H4) in (let TMP_544 \def (Bind Abst) in (let TMP_545 \def 
-(lift h d u) in (let TMP_546 \def (S d) in (let TMP_547 \def (lift h TMP_546 
-t) in (let TMP_548 \def (THead TMP_544 TMP_545 TMP_547) in (let TMP_549 \def 
-(lift_bind Abst u t h d) in (let TMP_550 \def (eq_ind T TMP_540 TMP_542 
-TMP_543 TMP_548 TMP_549) in (let TMP_551 \def (ty3_appl g c0 TMP_532 TMP_533 
-TMP_534 TMP_535 TMP_537 TMP_550) in (let TMP_552 \def (Flat Appl) in (let 
-TMP_553 \def (s TMP_552 d) in (let TMP_554 \def (Bind Abst) in (let TMP_555 
-\def (THead TMP_554 u t) in (let TMP_556 \def (lift h TMP_553 TMP_555) in 
-(let TMP_557 \def (Bind Abst) in (let TMP_558 \def (Flat Appl) in (let 
-TMP_559 \def (s TMP_558 d) in (let TMP_560 \def (lift_head TMP_557 u t h 
-TMP_559) in (let TMP_561 \def (eq_ind_r T TMP_521 TMP_531 TMP_551 TMP_556 
-TMP_560) in (let TMP_562 \def (Flat Appl) in (let TMP_563 \def (Bind Abst) in 
-(let TMP_564 \def (THead TMP_563 u t) in (let TMP_565 \def (THead TMP_562 w 
-TMP_564) in (let TMP_566 \def (lift h d TMP_565) in (let TMP_567 \def (Flat 
-Appl) in (let TMP_568 \def (Bind Abst) in (let TMP_569 \def (THead TMP_568 u 
-t) in (let TMP_570 \def (lift_head TMP_567 w TMP_569 h d) in (let TMP_571 
-\def (eq_ind_r T TMP_504 TMP_511 TMP_561 TMP_566 TMP_570) in (let TMP_572 
-\def (Flat Appl) in (let TMP_573 \def (THead TMP_572 w v) in (let TMP_574 
-\def (lift h d TMP_573) in (let TMP_575 \def (Flat Appl) in (let TMP_576 \def 
-(lift_head TMP_575 w v h d) in (eq_ind_r T TMP_490 TMP_496 TMP_571 TMP_574 
-TMP_576)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
-)))))))))))))) in (let TMP_624 \def (\lambda (c: C).(\lambda (t0: T).(\lambda 
-(t3: T).(\lambda (_: (ty3 g c t0 t3)).(\lambda (H1: ((\forall (c0: 
-C).(\forall (d: nat).(\forall (h: nat).((drop h d c0 c) \to (ty3 g c0 (lift h 
-d t0) (lift h d t3)))))))).(\lambda (t4: T).(\lambda (_: (ty3 g c t3 
-t4)).(\lambda (H3: ((\forall (c0: C).(\forall (d: nat).(\forall (h: 
-nat).((drop h d c0 c) \to (ty3 g c0 (lift h d t3) (lift h d 
+h d c0 c)).(eq_ind_r T (TSort m) (\lambda (t: T).(ty3 g c0 t (lift h d (TSort 
+(next g m))))) (eq_ind_r T (TSort (next g m)) (\lambda (t: T).(ty3 g c0 
+(TSort m) t)) (ty3_sort g c0 m) (lift h d (TSort (next g m))) (lift_sort 
+(next g m) h d)) (lift h d (TSort m)) (lift_sort m h d)))))))) (\lambda (n: 
+nat).(\lambda (c: C).(\lambda (d: C).(\lambda (u: T).(\lambda (H0: (getl n c 
+(CHead d (Bind Abbr) u))).(\lambda (t: T).(\lambda (H1: (ty3 g d u 
+t)).(\lambda (H2: ((\forall (c0: C).(\forall (d0: nat).(\forall (h: 
+nat).((drop h d0 c0 d) \to (ty3 g c0 (lift h d0 u) (lift h d0 
+t)))))))).(\lambda (c0: C).(\lambda (d0: nat).(\lambda (h: nat).(\lambda (H3: 
+(drop h d0 c0 c)).(lt_le_e n d0 (ty3 g c0 (lift h d0 (TLRef n)) (lift h d0 
+(lift (S n) O t))) (\lambda (H4: (lt n d0)).(let H5 \def (drop_getl_trans_le 
+n d0 (le_S_n n d0 (le_S_n (S n) (S d0) (le_S (S (S n)) (S d0) (le_n_S (S n) 
+d0 H4)))) c0 c h H3 (CHead d (Bind Abbr) u) H0) in (ex3_2_ind C C (\lambda 
+(e0: C).(\lambda (_: C).(drop n O c0 e0))) (\lambda (e0: C).(\lambda (e1: 
+C).(drop h (minus d0 n) e0 e1))) (\lambda (_: C).(\lambda (e1: C).(clear e1 
+(CHead d (Bind Abbr) u)))) (ty3 g c0 (lift h d0 (TLRef n)) (lift h d0 (lift 
+(S n) O t))) (\lambda (x0: C).(\lambda (x1: C).(\lambda (H6: (drop n O c0 
+x0)).(\lambda (H7: (drop h (minus d0 n) x0 x1)).(\lambda (H8: (clear x1 
+(CHead d (Bind Abbr) u))).(let H9 \def (eq_ind nat (minus d0 n) (\lambda (n0: 
+nat).(drop h n0 x0 x1)) H7 (S (minus d0 (S n))) (minus_x_Sy d0 n H4)) in (let 
+H10 \def (drop_clear_S x1 x0 h (minus d0 (S n)) H9 Abbr d u H8) in (ex2_ind C 
+(\lambda (c1: C).(clear x0 (CHead c1 (Bind Abbr) (lift h (minus d0 (S n)) 
+u)))) (\lambda (c1: C).(drop h (minus d0 (S n)) c1 d)) (ty3 g c0 (lift h d0 
+(TLRef n)) (lift h d0 (lift (S n) O t))) (\lambda (x: C).(\lambda (H11: 
+(clear x0 (CHead x (Bind Abbr) (lift h (minus d0 (S n)) u)))).(\lambda (H12: 
+(drop h (minus d0 (S n)) x d)).(eq_ind_r T (TLRef n) (\lambda (t0: T).(ty3 g 
+c0 t0 (lift h d0 (lift (S n) O t)))) (eq_ind nat (plus (S n) (minus d0 (S 
+n))) (\lambda (n0: nat).(ty3 g c0 (TLRef n) (lift h n0 (lift (S n) O t)))) 
+(eq_ind_r T (lift (S n) O (lift h (minus d0 (S n)) t)) (\lambda (t0: T).(ty3 
+g c0 (TLRef n) t0)) (eq_ind nat d0 (\lambda (_: nat).(ty3 g c0 (TLRef n) 
+(lift (S n) O (lift h (minus d0 (S n)) t)))) (ty3_abbr g n c0 x (lift h 
+(minus d0 (S n)) u) (getl_intro n c0 (CHead x (Bind Abbr) (lift h (minus d0 
+(S n)) u)) x0 H6 H11) (lift h (minus d0 (S n)) t) (H2 x (minus d0 (S n)) h 
+H12)) (plus (S n) (minus d0 (S n))) (le_plus_minus (S n) d0 H4)) (lift h 
+(plus (S n) (minus d0 (S n))) (lift (S n) O t)) (lift_d t h (S n) (minus d0 
+(S n)) O (le_O_n (minus d0 (S n))))) d0 (le_plus_minus_r (S n) d0 H4)) (lift 
+h d0 (TLRef n)) (lift_lref_lt n h d0 H4))))) H10)))))))) H5))) (\lambda (H4: 
+(le d0 n)).(eq_ind_r T (TLRef (plus n h)) (\lambda (t0: T).(ty3 g c0 t0 (lift 
+h d0 (lift (S n) O t)))) (eq_ind nat (S n) (\lambda (_: nat).(ty3 g c0 (TLRef 
+(plus n h)) (lift h d0 (lift (S n) O t)))) (eq_ind_r T (lift (plus h (S n)) O 
+t) (\lambda (t0: T).(ty3 g c0 (TLRef (plus n h)) t0)) (eq_ind_r nat (plus (S 
+n) h) (\lambda (n0: nat).(ty3 g c0 (TLRef (plus n h)) (lift n0 O t))) 
+(ty3_abbr g (plus n h) c0 d u (drop_getl_trans_ge n c0 c d0 h H3 (CHead d 
+(Bind Abbr) u) H0 H4) t H1) (plus h (S n)) (plus_sym h (S n))) (lift h d0 
+(lift (S n) O t)) (lift_free t (S n) h O d0 (le_S_n d0 (S n) (le_S (S d0) (S 
+n) (le_n_S d0 n H4))) (le_O_n d0))) (plus n (S O)) (eq_ind_r nat (plus (S O) 
+n) (\lambda (n0: nat).(eq nat (S n) n0)) (le_antisym (S n) (plus (S O) n) 
+(le_n (plus (S O) n)) (le_n (S n))) (plus n (S O)) (plus_sym n (S O)))) (lift 
+h d0 (TLRef n)) (lift_lref_ge n h d0 H4)))))))))))))))) (\lambda (n: 
+nat).(\lambda (c: C).(\lambda (d: C).(\lambda (u: T).(\lambda (H0: (getl n c 
+(CHead d (Bind Abst) u))).(\lambda (t: T).(\lambda (H1: (ty3 g d u 
+t)).(\lambda (H2: ((\forall (c0: C).(\forall (d0: nat).(\forall (h: 
+nat).((drop h d0 c0 d) \to (ty3 g c0 (lift h d0 u) (lift h d0 
+t)))))))).(\lambda (c0: C).(\lambda (d0: nat).(\lambda (h: nat).(\lambda (H3: 
+(drop h d0 c0 c)).(lt_le_e n d0 (ty3 g c0 (lift h d0 (TLRef n)) (lift h d0 
+(lift (S n) O u))) (\lambda (H4: (lt n d0)).(let H5 \def (drop_getl_trans_le 
+n d0 (le_S_n n d0 (le_S_n (S n) (S d0) (le_S (S (S n)) (S d0) (le_n_S (S n) 
+d0 H4)))) c0 c h H3 (CHead d (Bind Abst) u) H0) in (ex3_2_ind C C (\lambda 
+(e0: C).(\lambda (_: C).(drop n O c0 e0))) (\lambda (e0: C).(\lambda (e1: 
+C).(drop h (minus d0 n) e0 e1))) (\lambda (_: C).(\lambda (e1: C).(clear e1 
+(CHead d (Bind Abst) u)))) (ty3 g c0 (lift h d0 (TLRef n)) (lift h d0 (lift 
+(S n) O u))) (\lambda (x0: C).(\lambda (x1: C).(\lambda (H6: (drop n O c0 
+x0)).(\lambda (H7: (drop h (minus d0 n) x0 x1)).(\lambda (H8: (clear x1 
+(CHead d (Bind Abst) u))).(let H9 \def (eq_ind nat (minus d0 n) (\lambda (n0: 
+nat).(drop h n0 x0 x1)) H7 (S (minus d0 (S n))) (minus_x_Sy d0 n H4)) in (let 
+H10 \def (drop_clear_S x1 x0 h (minus d0 (S n)) H9 Abst d u H8) in (ex2_ind C 
+(\lambda (c1: C).(clear x0 (CHead c1 (Bind Abst) (lift h (minus d0 (S n)) 
+u)))) (\lambda (c1: C).(drop h (minus d0 (S n)) c1 d)) (ty3 g c0 (lift h d0 
+(TLRef n)) (lift h d0 (lift (S n) O u))) (\lambda (x: C).(\lambda (H11: 
+(clear x0 (CHead x (Bind Abst) (lift h (minus d0 (S n)) u)))).(\lambda (H12: 
+(drop h (minus d0 (S n)) x d)).(eq_ind_r T (TLRef n) (\lambda (t0: T).(ty3 g 
+c0 t0 (lift h d0 (lift (S n) O u)))) (eq_ind nat (plus (S n) (minus d0 (S 
+n))) (\lambda (n0: nat).(ty3 g c0 (TLRef n) (lift h n0 (lift (S n) O u)))) 
+(eq_ind_r T (lift (S n) O (lift h (minus d0 (S n)) u)) (\lambda (t0: T).(ty3 
+g c0 (TLRef n) t0)) (eq_ind nat d0 (\lambda (_: nat).(ty3 g c0 (TLRef n) 
+(lift (S n) O (lift h (minus d0 (S n)) u)))) (ty3_abst g n c0 x (lift h 
+(minus d0 (S n)) u) (getl_intro n c0 (CHead x (Bind Abst) (lift h (minus d0 
+(S n)) u)) x0 H6 H11) (lift h (minus d0 (S n)) t) (H2 x (minus d0 (S n)) h 
+H12)) (plus (S n) (minus d0 (S n))) (le_plus_minus (S n) d0 H4)) (lift h 
+(plus (S n) (minus d0 (S n))) (lift (S n) O u)) (lift_d u h (S n) (minus d0 
+(S n)) O (le_O_n (minus d0 (S n))))) d0 (le_plus_minus_r (S n) d0 H4)) (lift 
+h d0 (TLRef n)) (lift_lref_lt n h d0 H4))))) H10)))))))) H5))) (\lambda (H4: 
+(le d0 n)).(eq_ind_r T (TLRef (plus n h)) (\lambda (t0: T).(ty3 g c0 t0 (lift 
+h d0 (lift (S n) O u)))) (eq_ind nat (S n) (\lambda (_: nat).(ty3 g c0 (TLRef 
+(plus n h)) (lift h d0 (lift (S n) O u)))) (eq_ind_r T (lift (plus h (S n)) O 
+u) (\lambda (t0: T).(ty3 g c0 (TLRef (plus n h)) t0)) (eq_ind_r nat (plus (S 
+n) h) (\lambda (n0: nat).(ty3 g c0 (TLRef (plus n h)) (lift n0 O u))) 
+(ty3_abst g (plus n h) c0 d u (drop_getl_trans_ge n c0 c d0 h H3 (CHead d 
+(Bind Abst) u) H0 H4) t H1) (plus h (S n)) (plus_sym h (S n))) (lift h d0 
+(lift (S n) O u)) (lift_free u (S n) h O d0 (le_S_n d0 (S n) (le_S (S d0) (S 
+n) (le_n_S d0 n H4))) (le_O_n d0))) (plus n (S O)) (eq_ind_r nat (plus (S O) 
+n) (\lambda (n0: nat).(eq nat (S n) n0)) (le_antisym (S n) (plus (S O) n) 
+(le_n (plus (S O) n)) (le_n (S n))) (plus n (S O)) (plus_sym n (S O)))) (lift 
+h d0 (TLRef n)) (lift_lref_ge n h d0 H4)))))))))))))))) (\lambda (c: 
+C).(\lambda (u: T).(\lambda (t: T).(\lambda (_: (ty3 g c u t)).(\lambda (H1: 
+((\forall (c0: C).(\forall (d: nat).(\forall (h: nat).((drop h d c0 c) \to 
+(ty3 g c0 (lift h d u) (lift h d t)))))))).(\lambda (b: B).(\lambda (t0: 
+T).(\lambda (t3: T).(\lambda (_: (ty3 g (CHead c (Bind b) u) t0 t3)).(\lambda 
+(H3: ((\forall (c0: C).(\forall (d: nat).(\forall (h: nat).((drop h d c0 
+(CHead c (Bind b) u)) \to (ty3 g c0 (lift h d t0) (lift h d 
+t3)))))))).(\lambda (c0: C).(\lambda (d: nat).(\lambda (h: nat).(\lambda (H4: 
+(drop h d c0 c)).(eq_ind_r T (THead (Bind b) (lift h d u) (lift h (s (Bind b) 
+d) t0)) (\lambda (t4: T).(ty3 g c0 t4 (lift h d (THead (Bind b) u t3)))) 
+(eq_ind_r T (THead (Bind b) (lift h d u) (lift h (s (Bind b) d) t3)) (\lambda 
+(t4: T).(ty3 g c0 (THead (Bind b) (lift h d u) (lift h (s (Bind b) d) t0)) 
+t4)) (ty3_bind g c0 (lift h d u) (lift h d t) (H1 c0 d h H4) b (lift h (S d) 
+t0) (lift h (S d) t3) (H3 (CHead c0 (Bind b) (lift h d u)) (S d) h 
+(drop_skip_bind h d c0 c H4 b u))) (lift h d (THead (Bind b) u t3)) 
+(lift_head (Bind b) u t3 h d)) (lift h d (THead (Bind b) u t0)) (lift_head 
+(Bind b) u t0 h d)))))))))))))))) (\lambda (c: C).(\lambda (w: T).(\lambda 
+(u: T).(\lambda (_: (ty3 g c w u)).(\lambda (H1: ((\forall (c0: C).(\forall 
+(d: nat).(\forall (h: nat).((drop h d c0 c) \to (ty3 g c0 (lift h d w) (lift 
+h d u)))))))).(\lambda (v: T).(\lambda (t: T).(\lambda (_: (ty3 g c v (THead 
+(Bind Abst) u t))).(\lambda (H3: ((\forall (c0: C).(\forall (d: nat).(\forall 
+(h: nat).((drop h d c0 c) \to (ty3 g c0 (lift h d v) (lift h d (THead (Bind 
+Abst) u t))))))))).(\lambda (c0: C).(\lambda (d: nat).(\lambda (h: 
+nat).(\lambda (H4: (drop h d c0 c)).(eq_ind_r T (THead (Flat Appl) (lift h d 
+w) (lift h (s (Flat Appl) d) v)) (\lambda (t0: T).(ty3 g c0 t0 (lift h d 
+(THead (Flat Appl) w (THead (Bind Abst) u t))))) (eq_ind_r T (THead (Flat 
+Appl) (lift h d w) (lift h (s (Flat Appl) d) (THead (Bind Abst) u t))) 
+(\lambda (t0: T).(ty3 g c0 (THead (Flat Appl) (lift h d w) (lift h (s (Flat 
+Appl) d) v)) t0)) (eq_ind_r T (THead (Bind Abst) (lift h (s (Flat Appl) d) u) 
+(lift h (s (Bind Abst) (s (Flat Appl) d)) t)) (\lambda (t0: T).(ty3 g c0 
+(THead (Flat Appl) (lift h d w) (lift h (s (Flat Appl) d) v)) (THead (Flat 
+Appl) (lift h d w) t0))) (ty3_appl g c0 (lift h d w) (lift h d u) (H1 c0 d h 
+H4) (lift h d v) (lift h (S d) t) (eq_ind T (lift h d (THead (Bind Abst) u 
+t)) (\lambda (t0: T).(ty3 g c0 (lift h d v) t0)) (H3 c0 d h H4) (THead (Bind 
+Abst) (lift h d u) (lift h (S d) t)) (lift_bind Abst u t h d))) (lift h (s 
+(Flat Appl) d) (THead (Bind Abst) u t)) (lift_head (Bind Abst) u t h (s (Flat 
+Appl) d))) (lift h d (THead (Flat Appl) w (THead (Bind Abst) u t))) 
+(lift_head (Flat Appl) w (THead (Bind Abst) u t) h d)) (lift h d (THead (Flat 
+Appl) w v)) (lift_head (Flat Appl) w v h d))))))))))))))) (\lambda (c: 
+C).(\lambda (t0: T).(\lambda (t3: T).(\lambda (_: (ty3 g c t0 t3)).(\lambda 
+(H1: ((\forall (c0: C).(\forall (d: nat).(\forall (h: nat).((drop h d c0 c) 
+\to (ty3 g c0 (lift h d t0) (lift h d t3)))))))).(\lambda (t4: T).(\lambda 
+(_: (ty3 g c t3 t4)).(\lambda (H3: ((\forall (c0: C).(\forall (d: 
+nat).(\forall (h: nat).((drop h d c0 c) \to (ty3 g c0 (lift h d t3) (lift h d 
 t4)))))))).(\lambda (c0: C).(\lambda (d: nat).(\lambda (h: nat).(\lambda (H4: 
-(drop h d c0 c)).(let TMP_578 \def (Flat Cast) in (let TMP_579 \def (lift h d 
-t3) in (let TMP_580 \def (Flat Cast) in (let TMP_581 \def (s TMP_580 d) in 
-(let TMP_582 \def (lift h TMP_581 t0) in (let TMP_583 \def (THead TMP_578 
-TMP_579 TMP_582) in (let TMP_587 \def (\lambda (t: T).(let TMP_584 \def (Flat 
-Cast) in (let TMP_585 \def (THead TMP_584 t4 t3) in (let TMP_586 \def (lift h 
-d TMP_585) in (ty3 g c0 t TMP_586))))) in (let TMP_588 \def (Flat Cast) in 
-(let TMP_589 \def (lift h d t4) in (let TMP_590 \def (Flat Cast) in (let 
-TMP_591 \def (s TMP_590 d) in (let TMP_592 \def (lift h TMP_591 t3) in (let 
-TMP_593 \def (THead TMP_588 TMP_589 TMP_592) in (let TMP_600 \def (\lambda 
-(t: T).(let TMP_594 \def (Flat Cast) in (let TMP_595 \def (lift h d t3) in 
-(let TMP_596 \def (Flat Cast) in (let TMP_597 \def (s TMP_596 d) in (let 
-TMP_598 \def (lift h TMP_597 t0) in (let TMP_599 \def (THead TMP_594 TMP_595 
-TMP_598) in (ty3 g c0 TMP_599 t)))))))) in (let TMP_601 \def (Flat Cast) in 
-(let TMP_602 \def (s TMP_601 d) in (let TMP_603 \def (lift h TMP_602 t0) in 
-(let TMP_604 \def (Flat Cast) in (let TMP_605 \def (s TMP_604 d) in (let 
-TMP_606 \def (lift h TMP_605 t3) in (let TMP_607 \def (Flat Cast) in (let 
-TMP_608 \def (s TMP_607 d) in (let TMP_609 \def (H1 c0 TMP_608 h H4) in (let 
-TMP_610 \def (lift h d t4) in (let TMP_611 \def (H3 c0 d h H4) in (let 
-TMP_612 \def (ty3_cast g c0 TMP_603 TMP_606 TMP_609 TMP_610 TMP_611) in (let 
-TMP_613 \def (Flat Cast) in (let TMP_614 \def (THead TMP_613 t4 t3) in (let 
-TMP_615 \def (lift h d TMP_614) in (let TMP_616 \def (Flat Cast) in (let 
-TMP_617 \def (lift_head TMP_616 t4 t3 h d) in (let TMP_618 \def (eq_ind_r T 
-TMP_593 TMP_600 TMP_612 TMP_615 TMP_617) in (let TMP_619 \def (Flat Cast) in 
-(let TMP_620 \def (THead TMP_619 t3 t0) in (let TMP_621 \def (lift h d 
-TMP_620) in (let TMP_622 \def (Flat Cast) in (let TMP_623 \def (lift_head 
-TMP_622 t3 t0 h d) in (eq_ind_r T TMP_583 TMP_587 TMP_618 TMP_621 
-TMP_623)))))))))))))))))))))))))))))))))))))))))))))))))) in (ty3_ind g TMP_3 
-TMP_11 TMP_31 TMP_233 TMP_435 TMP_484 TMP_577 TMP_624 e t1 t2 H))))))))))))).
+(drop h d c0 c)).(eq_ind_r T (THead (Flat Cast) (lift h d t3) (lift h (s 
+(Flat Cast) d) t0)) (\lambda (t: T).(ty3 g c0 t (lift h d (THead (Flat Cast) 
+t4 t3)))) (eq_ind_r T (THead (Flat Cast) (lift h d t4) (lift h (s (Flat Cast) 
+d) t3)) (\lambda (t: T).(ty3 g c0 (THead (Flat Cast) (lift h d t3) (lift h (s 
+(Flat Cast) d) t0)) t)) (ty3_cast g c0 (lift h (s (Flat Cast) d) t0) (lift h 
+(s (Flat Cast) d) t3) (H1 c0 (s (Flat Cast) d) h H4) (lift h d t4) (H3 c0 d h 
+H4)) (lift h d (THead (Flat Cast) t4 t3)) (lift_head (Flat Cast) t4 t3 h d)) 
+(lift h d (THead (Flat Cast) t3 t0)) (lift_head (Flat Cast) t3 t0 h 
+d)))))))))))))) e t1 t2 H))))).
 
 theorem ty3_correct:
  \forall (g: G).(\forall (c: C).(\forall (t1: T).(\forall (t2: T).((ty3 g c 
 t1 t2) \to (ex T (\lambda (t: T).(ty3 g c t2 t)))))))
 \def
  \lambda (g: G).(\lambda (c: C).(\lambda (t1: T).(\lambda (t2: T).(\lambda 
-(H: (ty3 g c t1 t2)).(let TMP_2 \def (\lambda (c0: C).(\lambda (_: 
-T).(\lambda (t0: T).(let TMP_1 \def (\lambda (t3: T).(ty3 g c0 t0 t3)) in (ex 
-T TMP_1))))) in (let TMP_4 \def (\lambda (c0: C).(\lambda (t0: T).(\lambda 
-(t: T).(\lambda (H0: (ty3 g c0 t0 t)).(\lambda (_: (ex T (\lambda (t3: 
-T).(ty3 g c0 t t3)))).(\lambda (u: T).(\lambda (t3: T).(\lambda (_: (ty3 g c0 
-u t3)).(\lambda (_: (ex T (\lambda (t4: T).(ty3 g c0 t3 t4)))).(\lambda (_: 
-(pc3 c0 t3 t0)).(let TMP_3 \def (\lambda (t4: T).(ty3 g c0 t0 t4)) in 
-(ex_intro T TMP_3 t H0)))))))))))) in (let TMP_13 \def (\lambda (c0: 
-C).(\lambda (m: nat).(let TMP_7 \def (\lambda (t: T).(let TMP_5 \def (next g 
-m) in (let TMP_6 \def (TSort TMP_5) in (ty3 g c0 TMP_6 t)))) in (let TMP_8 
-\def (next g m) in (let TMP_9 \def (next g TMP_8) in (let TMP_10 \def (TSort 
-TMP_9) in (let TMP_11 \def (next g m) in (let TMP_12 \def (ty3_sort g c0 
-TMP_11) in (ex_intro T TMP_7 TMP_10 TMP_12))))))))) in (let TMP_28 \def 
-(\lambda (n: nat).(\lambda (c0: C).(\lambda (d: C).(\lambda (u: T).(\lambda 
-(H0: (getl n c0 (CHead d (Bind Abbr) u))).(\lambda (t: T).(\lambda (_: (ty3 g 
-d u t)).(\lambda (H2: (ex T (\lambda (t0: T).(ty3 g d t t0)))).(let H3 \def 
-H2 in (let TMP_14 \def (\lambda (t0: T).(ty3 g d t t0)) in (let TMP_17 \def 
-(\lambda (t0: T).(let TMP_15 \def (S n) in (let TMP_16 \def (lift TMP_15 O t) 
-in (ty3 g c0 TMP_16 t0)))) in (let TMP_18 \def (ex T TMP_17) in (let TMP_27 
-\def (\lambda (x: T).(\lambda (H4: (ty3 g d t x)).(let TMP_21 \def (\lambda 
-(t0: T).(let TMP_19 \def (S n) in (let TMP_20 \def (lift TMP_19 O t) in (ty3 
-g c0 TMP_20 t0)))) in (let TMP_22 \def (S n) in (let TMP_23 \def (lift TMP_22 
-O x) in (let TMP_24 \def (S n) in (let TMP_25 \def (getl_drop Abbr c0 d u n 
-H0) in (let TMP_26 \def (ty3_lift g d t x H4 c0 O TMP_24 TMP_25) in (ex_intro 
-T TMP_21 TMP_23 TMP_26))))))))) in (ex_ind T TMP_14 TMP_18 TMP_27 
-H3)))))))))))))) in (let TMP_37 \def (\lambda (n: nat).(\lambda (c0: 
+(H: (ty3 g c t1 t2)).(ty3_ind g (\lambda (c0: C).(\lambda (_: T).(\lambda 
+(t0: T).(ex T (\lambda (t3: T).(ty3 g c0 t0 t3)))))) (\lambda (c0: 
+C).(\lambda (t0: T).(\lambda (t: T).(\lambda (H0: (ty3 g c0 t0 t)).(\lambda 
+(_: (ex T (\lambda (t3: T).(ty3 g c0 t t3)))).(\lambda (u: T).(\lambda (t3: 
+T).(\lambda (_: (ty3 g c0 u t3)).(\lambda (_: (ex T (\lambda (t4: T).(ty3 g 
+c0 t3 t4)))).(\lambda (_: (pc3 c0 t3 t0)).(ex_intro T (\lambda (t4: T).(ty3 g 
+c0 t0 t4)) t H0))))))))))) (\lambda (c0: C).(\lambda (m: nat).(ex_intro T 
+(\lambda (t: T).(ty3 g c0 (TSort (next g m)) t)) (TSort (next g (next g m))) 
+(ty3_sort g c0 (next g m))))) (\lambda (n: nat).(\lambda (c0: C).(\lambda (d: 
+C).(\lambda (u: T).(\lambda (H0: (getl n c0 (CHead d (Bind Abbr) 
+u))).(\lambda (t: T).(\lambda (_: (ty3 g d u t)).(\lambda (H2: (ex T (\lambda 
+(t0: T).(ty3 g d t t0)))).(let H3 \def H2 in (ex_ind T (\lambda (t0: T).(ty3 
+g d t t0)) (ex T (\lambda (t0: T).(ty3 g c0 (lift (S n) O t) t0))) (\lambda 
+(x: T).(\lambda (H4: (ty3 g d t x)).(ex_intro T (\lambda (t0: T).(ty3 g c0 
+(lift (S n) O t) t0)) (lift (S n) O x) (ty3_lift g d t x H4 c0 O (S n) 
+(getl_drop Abbr c0 d u n H0))))) H3)))))))))) (\lambda (n: nat).(\lambda (c0: 
 C).(\lambda (d: C).(\lambda (u: T).(\lambda (H0: (getl n c0 (CHead d (Bind 
 Abst) u))).(\lambda (t: T).(\lambda (H1: (ty3 g d u t)).(\lambda (_: (ex T 
-(\lambda (t0: T).(ty3 g d t t0)))).(let TMP_31 \def (\lambda (t0: T).(let 
-TMP_29 \def (S n) in (let TMP_30 \def (lift TMP_29 O u) in (ty3 g c0 TMP_30 
-t0)))) in (let TMP_32 \def (S n) in (let TMP_33 \def (lift TMP_32 O t) in 
-(let TMP_34 \def (S n) in (let TMP_35 \def (getl_drop Abst c0 d u n H0) in 
-(let TMP_36 \def (ty3_lift g d u t H1 c0 O TMP_34 TMP_35) in (ex_intro T 
-TMP_31 TMP_33 TMP_36))))))))))))))) in (let TMP_52 \def (\lambda (c0: 
-C).(\lambda (u: T).(\lambda (t: T).(\lambda (H0: (ty3 g c0 u t)).(\lambda (_: 
-(ex T (\lambda (t0: T).(ty3 g c0 t t0)))).(\lambda (b: B).(\lambda (t0: 
-T).(\lambda (t3: T).(\lambda (_: (ty3 g (CHead c0 (Bind b) u) t0 
-t3)).(\lambda (H3: (ex T (\lambda (t4: T).(ty3 g (CHead c0 (Bind b) u) t3 
-t4)))).(let H4 \def H3 in (let TMP_40 \def (\lambda (t4: T).(let TMP_38 \def 
-(Bind b) in (let TMP_39 \def (CHead c0 TMP_38 u) in (ty3 g TMP_39 t3 t4)))) 
-in (let TMP_43 \def (\lambda (t4: T).(let TMP_41 \def (Bind b) in (let TMP_42 
-\def (THead TMP_41 u t3) in (ty3 g c0 TMP_42 t4)))) in (let TMP_44 \def (ex T 
-TMP_43) in (let TMP_51 \def (\lambda (x: T).(\lambda (H5: (ty3 g (CHead c0 
-(Bind b) u) t3 x)).(let TMP_47 \def (\lambda (t4: T).(let TMP_45 \def (Bind 
-b) in (let TMP_46 \def (THead TMP_45 u t3) in (ty3 g c0 TMP_46 t4)))) in (let 
-TMP_48 \def (Bind b) in (let TMP_49 \def (THead TMP_48 u x) in (let TMP_50 
-\def (ty3_bind g c0 u t H0 b t3 x H5) in (ex_intro T TMP_47 TMP_49 
-TMP_50))))))) in (ex_ind T TMP_40 TMP_44 TMP_51 H4)))))))))))))))) in (let 
-TMP_99 \def (\lambda (c0: C).(\lambda (w: T).(\lambda (u: T).(\lambda (H0: 
-(ty3 g c0 w u)).(\lambda (H1: (ex T (\lambda (t: T).(ty3 g c0 u 
-t)))).(\lambda (v: T).(\lambda (t: T).(\lambda (_: (ty3 g c0 v (THead (Bind 
-Abst) u t))).(\lambda (H3: (ex T (\lambda (t0: T).(ty3 g c0 (THead (Bind 
-Abst) u t) t0)))).(let H4 \def H1 in (let TMP_53 \def (\lambda (t0: T).(ty3 g 
-c0 u t0)) in (let TMP_58 \def (\lambda (t0: T).(let TMP_54 \def (Flat Appl) 
-in (let TMP_55 \def (Bind Abst) in (let TMP_56 \def (THead TMP_55 u t) in 
-(let TMP_57 \def (THead TMP_54 w TMP_56) in (ty3 g c0 TMP_57 t0)))))) in (let 
-TMP_59 \def (ex T TMP_58) in (let TMP_98 \def (\lambda (x: T).(\lambda (_: 
-(ty3 g c0 u x)).(let H6 \def H3 in (let TMP_62 \def (\lambda (t0: T).(let 
-TMP_60 \def (Bind Abst) in (let TMP_61 \def (THead TMP_60 u t) in (ty3 g c0 
-TMP_61 t0)))) in (let TMP_67 \def (\lambda (t0: T).(let TMP_63 \def (Flat 
-Appl) in (let TMP_64 \def (Bind Abst) in (let TMP_65 \def (THead TMP_64 u t) 
-in (let TMP_66 \def (THead TMP_63 w TMP_65) in (ty3 g c0 TMP_66 t0)))))) in 
-(let TMP_68 \def (ex T TMP_67) in (let TMP_97 \def (\lambda (x0: T).(\lambda 
-(H7: (ty3 g c0 (THead (Bind Abst) u t) x0)).(let TMP_71 \def (\lambda (t3: 
-T).(\lambda (_: T).(let TMP_69 \def (Bind Abst) in (let TMP_70 \def (THead 
-TMP_69 u t3) in (pc3 c0 TMP_70 x0))))) in (let TMP_72 \def (\lambda (_: 
-T).(\lambda (t0: T).(ty3 g c0 u t0))) in (let TMP_75 \def (\lambda (t3: 
-T).(\lambda (_: T).(let TMP_73 \def (Bind Abst) in (let TMP_74 \def (CHead c0 
-TMP_73 u) in (ty3 g TMP_74 t t3))))) in (let TMP_80 \def (\lambda (t0: 
-T).(let TMP_76 \def (Flat Appl) in (let TMP_77 \def (Bind Abst) in (let 
-TMP_78 \def (THead TMP_77 u t) in (let TMP_79 \def (THead TMP_76 w TMP_78) in 
-(ty3 g c0 TMP_79 t0)))))) in (let TMP_81 \def (ex T TMP_80) in (let TMP_95 
-\def (\lambda (x1: T).(\lambda (x2: T).(\lambda (_: (pc3 c0 (THead (Bind 
-Abst) u x1) x0)).(\lambda (H9: (ty3 g c0 u x2)).(\lambda (H10: (ty3 g (CHead 
-c0 (Bind Abst) u) t x1)).(let TMP_86 \def (\lambda (t0: T).(let TMP_82 \def 
-(Flat Appl) in (let TMP_83 \def (Bind Abst) in (let TMP_84 \def (THead TMP_83 
-u t) in (let TMP_85 \def (THead TMP_82 w TMP_84) in (ty3 g c0 TMP_85 t0)))))) 
-in (let TMP_87 \def (Flat Appl) in (let TMP_88 \def (Bind Abst) in (let 
-TMP_89 \def (THead TMP_88 u x1) in (let TMP_90 \def (THead TMP_87 w TMP_89) 
-in (let TMP_91 \def (Bind Abst) in (let TMP_92 \def (THead TMP_91 u t) in 
-(let TMP_93 \def (ty3_bind g c0 u x2 H9 Abst t x1 H10) in (let TMP_94 \def 
-(ty3_appl g c0 w u H0 TMP_92 x1 TMP_93) in (ex_intro T TMP_86 TMP_90 
-TMP_94))))))))))))))) in (let TMP_96 \def (ty3_gen_bind g Abst c0 u t x0 H7) 
-in (ex3_2_ind T T TMP_71 TMP_72 TMP_75 TMP_81 TMP_95 TMP_96)))))))))) in 
-(ex_ind T TMP_62 TMP_68 TMP_97 H6)))))))) in (ex_ind T TMP_53 TMP_59 TMP_98 
-H4))))))))))))))) in (let TMP_112 \def (\lambda (c0: C).(\lambda (t0: 
-T).(\lambda (t3: T).(\lambda (_: (ty3 g c0 t0 t3)).(\lambda (_: (ex T 
-(\lambda (t: T).(ty3 g c0 t3 t)))).(\lambda (t4: T).(\lambda (H2: (ty3 g c0 
-t3 t4)).(\lambda (H3: (ex T (\lambda (t: T).(ty3 g c0 t4 t)))).(let H4 \def 
-H3 in (let TMP_100 \def (\lambda (t: T).(ty3 g c0 t4 t)) in (let TMP_103 \def 
-(\lambda (t: T).(let TMP_101 \def (Flat Cast) in (let TMP_102 \def (THead 
-TMP_101 t4 t3) in (ty3 g c0 TMP_102 t)))) in (let TMP_104 \def (ex T TMP_103) 
-in (let TMP_111 \def (\lambda (x: T).(\lambda (H5: (ty3 g c0 t4 x)).(let 
-TMP_107 \def (\lambda (t: T).(let TMP_105 \def (Flat Cast) in (let TMP_106 
-\def (THead TMP_105 t4 t3) in (ty3 g c0 TMP_106 t)))) in (let TMP_108 \def 
-(Flat Cast) in (let TMP_109 \def (THead TMP_108 x t4) in (let TMP_110 \def 
-(ty3_cast g c0 t3 t4 H2 x H5) in (ex_intro T TMP_107 TMP_109 TMP_110))))))) 
-in (ex_ind T TMP_100 TMP_104 TMP_111 H4)))))))))))))) in (ty3_ind g TMP_2 
-TMP_4 TMP_13 TMP_28 TMP_37 TMP_52 TMP_99 TMP_112 c t1 t2 H))))))))))))).
+(\lambda (t0: T).(ty3 g d t t0)))).(ex_intro T (\lambda (t0: T).(ty3 g c0 
+(lift (S n) O u) t0)) (lift (S n) O t) (ty3_lift g d u t H1 c0 O (S n) 
+(getl_drop Abst c0 d u n H0))))))))))) (\lambda (c0: C).(\lambda (u: 
+T).(\lambda (t: T).(\lambda (H0: (ty3 g c0 u t)).(\lambda (_: (ex T (\lambda 
+(t0: T).(ty3 g c0 t t0)))).(\lambda (b: B).(\lambda (t0: T).(\lambda (t3: 
+T).(\lambda (_: (ty3 g (CHead c0 (Bind b) u) t0 t3)).(\lambda (H3: (ex T 
+(\lambda (t4: T).(ty3 g (CHead c0 (Bind b) u) t3 t4)))).(let H4 \def H3 in 
+(ex_ind T (\lambda (t4: T).(ty3 g (CHead c0 (Bind b) u) t3 t4)) (ex T 
+(\lambda (t4: T).(ty3 g c0 (THead (Bind b) u t3) t4))) (\lambda (x: 
+T).(\lambda (H5: (ty3 g (CHead c0 (Bind b) u) t3 x)).(ex_intro T (\lambda 
+(t4: T).(ty3 g c0 (THead (Bind b) u t3) t4)) (THead (Bind b) u x) (ty3_bind g 
+c0 u t H0 b t3 x H5)))) H4)))))))))))) (\lambda (c0: C).(\lambda (w: 
+T).(\lambda (u: T).(\lambda (H0: (ty3 g c0 w u)).(\lambda (H1: (ex T (\lambda 
+(t: T).(ty3 g c0 u t)))).(\lambda (v: T).(\lambda (t: T).(\lambda (_: (ty3 g 
+c0 v (THead (Bind Abst) u t))).(\lambda (H3: (ex T (\lambda (t0: T).(ty3 g c0 
+(THead (Bind Abst) u t) t0)))).(let H4 \def H1 in (ex_ind T (\lambda (t0: 
+T).(ty3 g c0 u t0)) (ex T (\lambda (t0: T).(ty3 g c0 (THead (Flat Appl) w 
+(THead (Bind Abst) u t)) t0))) (\lambda (x: T).(\lambda (_: (ty3 g c0 u 
+x)).(let H6 \def H3 in (ex_ind T (\lambda (t0: T).(ty3 g c0 (THead (Bind 
+Abst) u t) t0)) (ex T (\lambda (t0: T).(ty3 g c0 (THead (Flat Appl) w (THead 
+(Bind Abst) u t)) t0))) (\lambda (x0: T).(\lambda (H7: (ty3 g c0 (THead (Bind 
+Abst) u t) x0)).(ex3_2_ind T T (\lambda (t3: T).(\lambda (_: T).(pc3 c0 
+(THead (Bind Abst) u t3) x0))) (\lambda (_: T).(\lambda (t0: T).(ty3 g c0 u 
+t0))) (\lambda (t3: T).(\lambda (_: T).(ty3 g (CHead c0 (Bind Abst) u) t 
+t3))) (ex T (\lambda (t0: T).(ty3 g c0 (THead (Flat Appl) w (THead (Bind 
+Abst) u t)) t0))) (\lambda (x1: T).(\lambda (x2: T).(\lambda (_: (pc3 c0 
+(THead (Bind Abst) u x1) x0)).(\lambda (H9: (ty3 g c0 u x2)).(\lambda (H10: 
+(ty3 g (CHead c0 (Bind Abst) u) t x1)).(ex_intro T (\lambda (t0: T).(ty3 g c0 
+(THead (Flat Appl) w (THead (Bind Abst) u t)) t0)) (THead (Flat Appl) w 
+(THead (Bind Abst) u x1)) (ty3_appl g c0 w u H0 (THead (Bind Abst) u t) x1 
+(ty3_bind g c0 u x2 H9 Abst t x1 H10)))))))) (ty3_gen_bind g Abst c0 u t x0 
+H7)))) H6)))) H4))))))))))) (\lambda (c0: C).(\lambda (t0: T).(\lambda (t3: 
+T).(\lambda (_: (ty3 g c0 t0 t3)).(\lambda (_: (ex T (\lambda (t: T).(ty3 g 
+c0 t3 t)))).(\lambda (t4: T).(\lambda (H2: (ty3 g c0 t3 t4)).(\lambda (H3: 
+(ex T (\lambda (t: T).(ty3 g c0 t4 t)))).(let H4 \def H3 in (ex_ind T 
+(\lambda (t: T).(ty3 g c0 t4 t)) (ex T (\lambda (t: T).(ty3 g c0 (THead (Flat 
+Cast) t4 t3) t))) (\lambda (x: T).(\lambda (H5: (ty3 g c0 t4 x)).(ex_intro T 
+(\lambda (t: T).(ty3 g c0 (THead (Flat Cast) t4 t3) t)) (THead (Flat Cast) x 
+t4) (ty3_cast g c0 t3 t4 H2 x H5)))) H4)))))))))) c t1 t2 H))))).
 
 theorem ty3_unique:
  \forall (g: G).(\forall (c: C).(\forall (u: T).(\forall (t1: T).((ty3 g c u 
 t1) \to (\forall (t2: T).((ty3 g c u t2) \to (pc3 c t1 t2)))))))
 \def
  \lambda (g: G).(\lambda (c: C).(\lambda (u: T).(\lambda (t1: T).(\lambda (H: 
-(ty3 g c u t1)).(let TMP_1 \def (\lambda (c0: C).(\lambda (t: T).(\lambda 
-(t0: T).(\forall (t2: T).((ty3 g c0 t t2) \to (pc3 c0 t0 t2)))))) in (let 
-TMP_4 \def (\lambda (c0: C).(\lambda (t2: T).(\lambda (t: T).(\lambda (_: 
-(ty3 g c0 t2 t)).(\lambda (_: ((\forall (t3: T).((ty3 g c0 t2 t3) \to (pc3 c0 
-t t3))))).(\lambda (u0: T).(\lambda (t0: T).(\lambda (_: (ty3 g c0 u0 
-t0)).(\lambda (H3: ((\forall (t3: T).((ty3 g c0 u0 t3) \to (pc3 c0 t0 
-t3))))).(\lambda (H4: (pc3 c0 t0 t2)).(\lambda (t3: T).(\lambda (H5: (ty3 g 
-c0 u0 t3)).(let TMP_2 \def (pc3_s c0 t2 t0 H4) in (let TMP_3 \def (H3 t3 H5) 
-in (pc3_t t0 c0 t2 TMP_2 t3 TMP_3))))))))))))))) in (let TMP_5 \def (\lambda 
-(c0: C).(\lambda (m: nat).(\lambda (t2: T).(\lambda (H0: (ty3 g c0 (TSort m) 
-t2)).(ty3_gen_sort g c0 t2 m H0))))) in (let TMP_120 \def (\lambda (n: 
-nat).(\lambda (c0: C).(\lambda (d: C).(\lambda (u0: T).(\lambda (H0: (getl n 
-c0 (CHead d (Bind Abbr) u0))).(\lambda (t: T).(\lambda (_: (ty3 g d u0 
-t)).(\lambda (H2: ((\forall (t2: T).((ty3 g d u0 t2) \to (pc3 d t 
-t2))))).(\lambda (t2: T).(\lambda (H3: (ty3 g c0 (TLRef n) t2)).(let TMP_8 
-\def (\lambda (_: C).(\lambda (_: T).(\lambda (t0: T).(let TMP_6 \def (S n) 
-in (let TMP_7 \def (lift TMP_6 O t0) in (pc3 c0 TMP_7 t2)))))) in (let TMP_11 
-\def (\lambda (e: C).(\lambda (u1: T).(\lambda (_: T).(let TMP_9 \def (Bind 
-Abbr) in (let TMP_10 \def (CHead e TMP_9 u1) in (getl n c0 TMP_10)))))) in 
-(let TMP_12 \def (\lambda (e: C).(\lambda (u1: T).(\lambda (t0: T).(ty3 g e 
-u1 t0)))) in (let TMP_13 \def (ex3_3 C T T TMP_8 TMP_11 TMP_12) in (let 
-TMP_16 \def (\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(let TMP_14 \def 
-(S n) in (let TMP_15 \def (lift TMP_14 O u1) in (pc3 c0 TMP_15 t2)))))) in 
-(let TMP_19 \def (\lambda (e: C).(\lambda (u1: T).(\lambda (_: T).(let TMP_17 
-\def (Bind Abst) in (let TMP_18 \def (CHead e TMP_17 u1) in (getl n c0 
-TMP_18)))))) in (let TMP_20 \def (\lambda (e: C).(\lambda (u1: T).(\lambda 
-(t0: T).(ty3 g e u1 t0)))) in (let TMP_21 \def (ex3_3 C T T TMP_16 TMP_19 
-TMP_20) in (let TMP_22 \def (S n) in (let TMP_23 \def (lift TMP_22 O t) in 
-(let TMP_24 \def (pc3 c0 TMP_23 t2) in (let TMP_83 \def (\lambda (H4: (ex3_3 
-C T T (\lambda (_: C).(\lambda (_: T).(\lambda (t0: T).(pc3 c0 (lift (S n) O 
-t0) t2)))) (\lambda (e: C).(\lambda (u1: T).(\lambda (_: T).(getl n c0 (CHead 
-e (Bind Abbr) u1))))) (\lambda (e: C).(\lambda (u1: T).(\lambda (t0: T).(ty3 
-g e u1 t0)))))).(let TMP_27 \def (\lambda (_: C).(\lambda (_: T).(\lambda 
-(t0: T).(let TMP_25 \def (S n) in (let TMP_26 \def (lift TMP_25 O t0) in (pc3 
-c0 TMP_26 t2)))))) in (let TMP_30 \def (\lambda (e: C).(\lambda (u1: 
-T).(\lambda (_: T).(let TMP_28 \def (Bind Abbr) in (let TMP_29 \def (CHead e 
-TMP_28 u1) in (getl n c0 TMP_29)))))) in (let TMP_31 \def (\lambda (e: 
-C).(\lambda (u1: T).(\lambda (t0: T).(ty3 g e u1 t0)))) in (let TMP_32 \def 
-(S n) in (let TMP_33 \def (lift TMP_32 O t) in (let TMP_34 \def (pc3 c0 
-TMP_33 t2) in (let TMP_82 \def (\lambda (x0: C).(\lambda (x1: T).(\lambda 
-(x2: T).(\lambda (H5: (pc3 c0 (lift (S n) O x2) t2)).(\lambda (H6: (getl n c0 
-(CHead x0 (Bind Abbr) x1))).(\lambda (H7: (ty3 g x0 x1 x2)).(let TMP_35 \def 
-(Bind Abbr) in (let TMP_36 \def (CHead d TMP_35 u0) in (let TMP_37 \def 
-(\lambda (c1: C).(getl n c0 c1)) in (let TMP_38 \def (Bind Abbr) in (let 
-TMP_39 \def (CHead x0 TMP_38 x1) in (let TMP_40 \def (Bind Abbr) in (let 
-TMP_41 \def (CHead d TMP_40 u0) in (let TMP_42 \def (Bind Abbr) in (let 
-TMP_43 \def (CHead x0 TMP_42 x1) in (let TMP_44 \def (getl_mono c0 TMP_41 n 
-H0 TMP_43 H6) in (let H8 \def (eq_ind C TMP_36 TMP_37 H0 TMP_39 TMP_44) in 
-(let TMP_45 \def (\lambda (e: C).(match e with [(CSort _) \Rightarrow d | 
-(CHead c1 _ _) \Rightarrow c1])) in (let TMP_46 \def (Bind Abbr) in (let 
-TMP_47 \def (CHead d TMP_46 u0) in (let TMP_48 \def (Bind Abbr) in (let 
-TMP_49 \def (CHead x0 TMP_48 x1) in (let TMP_50 \def (Bind Abbr) in (let 
-TMP_51 \def (CHead d TMP_50 u0) in (let TMP_52 \def (Bind Abbr) in (let 
-TMP_53 \def (CHead x0 TMP_52 x1) in (let TMP_54 \def (getl_mono c0 TMP_51 n 
-H0 TMP_53 H6) in (let H9 \def (f_equal C C TMP_45 TMP_47 TMP_49 TMP_54) in 
-(let TMP_55 \def (\lambda (e: C).(match e with [(CSort _) \Rightarrow u0 | 
-(CHead _ _ t0) \Rightarrow t0])) in (let TMP_56 \def (Bind Abbr) in (let 
-TMP_57 \def (CHead d TMP_56 u0) in (let TMP_58 \def (Bind Abbr) in (let 
-TMP_59 \def (CHead x0 TMP_58 x1) in (let TMP_60 \def (Bind Abbr) in (let 
-TMP_61 \def (CHead d TMP_60 u0) in (let TMP_62 \def (Bind Abbr) in (let 
-TMP_63 \def (CHead x0 TMP_62 x1) in (let TMP_64 \def (getl_mono c0 TMP_61 n 
-H0 TMP_63 H6) in (let H10 \def (f_equal C T TMP_55 TMP_57 TMP_59 TMP_64) in 
-(let TMP_81 \def (\lambda (H11: (eq C d x0)).(let TMP_67 \def (\lambda (t0: 
-T).(let TMP_65 \def (Bind Abbr) in (let TMP_66 \def (CHead x0 TMP_65 t0) in 
-(getl n c0 TMP_66)))) in (let H12 \def (eq_ind_r T x1 TMP_67 H8 u0 H10) in 
-(let TMP_68 \def (\lambda (t0: T).(ty3 g x0 t0 x2)) in (let H13 \def 
-(eq_ind_r T x1 TMP_68 H7 u0 H10) in (let TMP_71 \def (\lambda (c1: C).(let 
-TMP_69 \def (Bind Abbr) in (let TMP_70 \def (CHead c1 TMP_69 u0) in (getl n 
-c0 TMP_70)))) in (let H14 \def (eq_ind_r C x0 TMP_71 H12 d H11) in (let 
-TMP_72 \def (\lambda (c1: C).(ty3 g c1 u0 x2)) in (let H15 \def (eq_ind_r C 
-x0 TMP_72 H13 d H11) in (let TMP_73 \def (S n) in (let TMP_74 \def (lift 
-TMP_73 O x2) in (let TMP_75 \def (S n) in (let TMP_76 \def (lift TMP_75 O t) 
-in (let TMP_77 \def (S n) in (let TMP_78 \def (getl_drop Abbr c0 d u0 n H14) 
-in (let TMP_79 \def (H2 x2 H15) in (let TMP_80 \def (pc3_lift c0 d TMP_77 O 
-TMP_78 t x2 TMP_79) in (pc3_t TMP_74 c0 TMP_76 TMP_80 t2 H5)))))))))))))))))) 
-in (TMP_81 H9))))))))))))))))))))))))))))))))))))))))) in (ex3_3_ind C T T 
-TMP_27 TMP_30 TMP_31 TMP_34 TMP_82 H4))))))))) in (let TMP_118 \def (\lambda 
-(H4: (ex3_3 C T T (\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(pc3 c0 
-(lift (S n) O u1) t2)))) (\lambda (e: C).(\lambda (u1: T).(\lambda (_: 
-T).(getl n c0 (CHead e (Bind Abst) u1))))) (\lambda (e: C).(\lambda (u1: 
-T).(\lambda (t0: T).(ty3 g e u1 t0)))))).(let TMP_86 \def (\lambda (_: 
-C).(\lambda (u1: T).(\lambda (_: T).(let TMP_84 \def (S n) in (let TMP_85 
-\def (lift TMP_84 O u1) in (pc3 c0 TMP_85 t2)))))) in (let TMP_89 \def 
-(\lambda (e: C).(\lambda (u1: T).(\lambda (_: T).(let TMP_87 \def (Bind Abst) 
-in (let TMP_88 \def (CHead e TMP_87 u1) in (getl n c0 TMP_88)))))) in (let 
-TMP_90 \def (\lambda (e: C).(\lambda (u1: T).(\lambda (t0: T).(ty3 g e u1 
-t0)))) in (let TMP_91 \def (S n) in (let TMP_92 \def (lift TMP_91 O t) in 
-(let TMP_93 \def (pc3 c0 TMP_92 t2) in (let TMP_117 \def (\lambda (x0: 
-C).(\lambda (x1: T).(\lambda (x2: T).(\lambda (_: (pc3 c0 (lift (S n) O x1) 
-t2)).(\lambda (H6: (getl n c0 (CHead x0 (Bind Abst) x1))).(\lambda (_: (ty3 g 
-x0 x1 x2)).(let TMP_94 \def (Bind Abbr) in (let TMP_95 \def (CHead d TMP_94 
-u0) in (let TMP_96 \def (\lambda (c1: C).(getl n c0 c1)) in (let TMP_97 \def 
-(Bind Abst) in (let TMP_98 \def (CHead x0 TMP_97 x1) in (let TMP_99 \def 
-(Bind Abbr) in (let TMP_100 \def (CHead d TMP_99 u0) in (let TMP_101 \def 
-(Bind Abst) in (let TMP_102 \def (CHead x0 TMP_101 x1) in (let TMP_103 \def 
-(getl_mono c0 TMP_100 n H0 TMP_102 H6) in (let H8 \def (eq_ind C TMP_95 
-TMP_96 H0 TMP_98 TMP_103) in (let TMP_104 \def (Bind Abbr) in (let TMP_105 
-\def (CHead d TMP_104 u0) in (let TMP_106 \def (\lambda (ee: C).(match ee 
-with [(CSort _) \Rightarrow False | (CHead _ k _) \Rightarrow (match k with 
-[(Bind b) \Rightarrow (match b with [Abbr \Rightarrow True | Abst \Rightarrow 
-False | Void \Rightarrow False]) | (Flat _) \Rightarrow False])])) in (let 
-TMP_107 \def (Bind Abst) in (let TMP_108 \def (CHead x0 TMP_107 x1) in (let 
-TMP_109 \def (Bind Abbr) in (let TMP_110 \def (CHead d TMP_109 u0) in (let 
-TMP_111 \def (Bind Abst) in (let TMP_112 \def (CHead x0 TMP_111 x1) in (let 
-TMP_113 \def (getl_mono c0 TMP_110 n H0 TMP_112 H6) in (let H9 \def (eq_ind C 
-TMP_105 TMP_106 I TMP_108 TMP_113) in (let TMP_114 \def (S n) in (let TMP_115 
-\def (lift TMP_114 O t) in (let TMP_116 \def (pc3 c0 TMP_115 t2) in 
-(False_ind TMP_116 H9)))))))))))))))))))))))))))))))) in (ex3_3_ind C T T 
-TMP_86 TMP_89 TMP_90 TMP_93 TMP_117 H4))))))))) in (let TMP_119 \def 
-(ty3_gen_lref g c0 t2 n H3) in (or_ind TMP_13 TMP_21 TMP_24 TMP_83 TMP_118 
-TMP_119))))))))))))))))))))))))) in (let TMP_230 \def (\lambda (n: 
-nat).(\lambda (c0: C).(\lambda (d: C).(\lambda (u0: T).(\lambda (H0: (getl n 
-c0 (CHead d (Bind Abst) u0))).(\lambda (t: T).(\lambda (_: (ty3 g d u0 
-t)).(\lambda (_: ((\forall (t2: T).((ty3 g d u0 t2) \to (pc3 d t 
-t2))))).(\lambda (t2: T).(\lambda (H3: (ty3 g c0 (TLRef n) t2)).(let TMP_123 
-\def (\lambda (_: C).(\lambda (_: T).(\lambda (t0: T).(let TMP_121 \def (S n) 
-in (let TMP_122 \def (lift TMP_121 O t0) in (pc3 c0 TMP_122 t2)))))) in (let 
-TMP_126 \def (\lambda (e: C).(\lambda (u1: T).(\lambda (_: T).(let TMP_124 
-\def (Bind Abbr) in (let TMP_125 \def (CHead e TMP_124 u1) in (getl n c0 
-TMP_125)))))) in (let TMP_127 \def (\lambda (e: C).(\lambda (u1: T).(\lambda 
-(t0: T).(ty3 g e u1 t0)))) in (let TMP_128 \def (ex3_3 C T T TMP_123 TMP_126 
-TMP_127) in (let TMP_131 \def (\lambda (_: C).(\lambda (u1: T).(\lambda (_: 
-T).(let TMP_129 \def (S n) in (let TMP_130 \def (lift TMP_129 O u1) in (pc3 
-c0 TMP_130 t2)))))) in (let TMP_134 \def (\lambda (e: C).(\lambda (u1: 
-T).(\lambda (_: T).(let TMP_132 \def (Bind Abst) in (let TMP_133 \def (CHead 
-e TMP_132 u1) in (getl n c0 TMP_133)))))) in (let TMP_135 \def (\lambda (e: 
-C).(\lambda (u1: T).(\lambda (t0: T).(ty3 g e u1 t0)))) in (let TMP_136 \def 
-(ex3_3 C T T TMP_131 TMP_134 TMP_135) in (let TMP_137 \def (S n) in (let 
-TMP_138 \def (lift TMP_137 O u0) in (let TMP_139 \def (pc3 c0 TMP_138 t2) in 
-(let TMP_174 \def (\lambda (H4: (ex3_3 C T T (\lambda (_: C).(\lambda (_: 
+(ty3 g c u t1)).(ty3_ind g (\lambda (c0: C).(\lambda (t: T).(\lambda (t0: 
+T).(\forall (t2: T).((ty3 g c0 t t2) \to (pc3 c0 t0 t2)))))) (\lambda (c0: 
+C).(\lambda (t2: T).(\lambda (t: T).(\lambda (_: (ty3 g c0 t2 t)).(\lambda 
+(_: ((\forall (t3: T).((ty3 g c0 t2 t3) \to (pc3 c0 t t3))))).(\lambda (u0: 
+T).(\lambda (t0: T).(\lambda (_: (ty3 g c0 u0 t0)).(\lambda (H3: ((\forall 
+(t3: T).((ty3 g c0 u0 t3) \to (pc3 c0 t0 t3))))).(\lambda (H4: (pc3 c0 t0 
+t2)).(\lambda (t3: T).(\lambda (H5: (ty3 g c0 u0 t3)).(pc3_t t0 c0 t2 (pc3_s 
+c0 t2 t0 H4) t3 (H3 t3 H5)))))))))))))) (\lambda (c0: C).(\lambda (m: 
+nat).(\lambda (t2: T).(\lambda (H0: (ty3 g c0 (TSort m) t2)).(ty3_gen_sort g 
+c0 t2 m H0))))) (\lambda (n: nat).(\lambda (c0: C).(\lambda (d: C).(\lambda 
+(u0: T).(\lambda (H0: (getl n c0 (CHead d (Bind Abbr) u0))).(\lambda (t: 
+T).(\lambda (_: (ty3 g d u0 t)).(\lambda (H2: ((\forall (t2: T).((ty3 g d u0 
+t2) \to (pc3 d t t2))))).(\lambda (t2: T).(\lambda (H3: (ty3 g c0 (TLRef n) 
+t2)).(or_ind (ex3_3 C T T (\lambda (_: C).(\lambda (_: T).(\lambda (t0: 
+T).(pc3 c0 (lift (S n) O t0) t2)))) (\lambda (e: C).(\lambda (u1: T).(\lambda 
+(_: T).(getl n c0 (CHead e (Bind Abbr) u1))))) (\lambda (e: C).(\lambda (u1: 
+T).(\lambda (t0: T).(ty3 g e u1 t0))))) (ex3_3 C T T (\lambda (_: C).(\lambda 
+(u1: T).(\lambda (_: T).(pc3 c0 (lift (S n) O u1) t2)))) (\lambda (e: 
+C).(\lambda (u1: T).(\lambda (_: T).(getl n c0 (CHead e (Bind Abst) u1))))) 
+(\lambda (e: C).(\lambda (u1: T).(\lambda (t0: T).(ty3 g e u1 t0))))) (pc3 c0 
+(lift (S n) O t) t2) (\lambda (H4: (ex3_3 C T T (\lambda (_: C).(\lambda (_: 
 T).(\lambda (t0: T).(pc3 c0 (lift (S n) O t0) t2)))) (\lambda (e: C).(\lambda 
 (u1: T).(\lambda (_: T).(getl n c0 (CHead e (Bind Abbr) u1))))) (\lambda (e: 
-C).(\lambda (u1: T).(\lambda (t0: T).(ty3 g e u1 t0)))))).(let TMP_142 \def 
-(\lambda (_: C).(\lambda (_: T).(\lambda (t0: T).(let TMP_140 \def (S n) in 
-(let TMP_141 \def (lift TMP_140 O t0) in (pc3 c0 TMP_141 t2)))))) in (let 
-TMP_145 \def (\lambda (e: C).(\lambda (u1: T).(\lambda (_: T).(let TMP_143 
-\def (Bind Abbr) in (let TMP_144 \def (CHead e TMP_143 u1) in (getl n c0 
-TMP_144)))))) in (let TMP_146 \def (\lambda (e: C).(\lambda (u1: T).(\lambda 
-(t0: T).(ty3 g e u1 t0)))) in (let TMP_147 \def (S n) in (let TMP_148 \def 
-(lift TMP_147 O u0) in (let TMP_149 \def (pc3 c0 TMP_148 t2) in (let TMP_173 
-\def (\lambda (x0: C).(\lambda (x1: T).(\lambda (x2: T).(\lambda (_: (pc3 c0 
-(lift (S n) O x2) t2)).(\lambda (H6: (getl n c0 (CHead x0 (Bind Abbr) 
-x1))).(\lambda (_: (ty3 g x0 x1 x2)).(let TMP_150 \def (Bind Abst) in (let 
-TMP_151 \def (CHead d TMP_150 u0) in (let TMP_152 \def (\lambda (c1: C).(getl 
-n c0 c1)) in (let TMP_153 \def (Bind Abbr) in (let TMP_154 \def (CHead x0 
-TMP_153 x1) in (let TMP_155 \def (Bind Abst) in (let TMP_156 \def (CHead d 
-TMP_155 u0) in (let TMP_157 \def (Bind Abbr) in (let TMP_158 \def (CHead x0 
-TMP_157 x1) in (let TMP_159 \def (getl_mono c0 TMP_156 n H0 TMP_158 H6) in 
-(let H8 \def (eq_ind C TMP_151 TMP_152 H0 TMP_154 TMP_159) in (let TMP_160 
-\def (Bind Abst) in (let TMP_161 \def (CHead d TMP_160 u0) in (let TMP_162 
-\def (\lambda (ee: C).(match ee with [(CSort _) \Rightarrow False | (CHead _ 
-k _) \Rightarrow (match k with [(Bind b) \Rightarrow (match b with [Abbr 
+C).(\lambda (u1: T).(\lambda (t0: T).(ty3 g e u1 t0)))))).(ex3_3_ind C T T 
+(\lambda (_: C).(\lambda (_: T).(\lambda (t0: T).(pc3 c0 (lift (S n) O t0) 
+t2)))) (\lambda (e: C).(\lambda (u1: T).(\lambda (_: T).(getl n c0 (CHead e 
+(Bind Abbr) u1))))) (\lambda (e: C).(\lambda (u1: T).(\lambda (t0: T).(ty3 g 
+e u1 t0)))) (pc3 c0 (lift (S n) O t) t2) (\lambda (x0: C).(\lambda (x1: 
+T).(\lambda (x2: T).(\lambda (H5: (pc3 c0 (lift (S n) O x2) t2)).(\lambda 
+(H6: (getl n c0 (CHead x0 (Bind Abbr) x1))).(\lambda (H7: (ty3 g x0 x1 
+x2)).(let H8 \def (eq_ind C (CHead d (Bind Abbr) u0) (\lambda (c1: C).(getl n 
+c0 c1)) H0 (CHead x0 (Bind Abbr) x1) (getl_mono c0 (CHead d (Bind Abbr) u0) n 
+H0 (CHead x0 (Bind Abbr) x1) H6)) in (let H9 \def (f_equal C C (\lambda (e: 
+C).(match e with [(CSort _) \Rightarrow d | (CHead c1 _ _) \Rightarrow c1])) 
+(CHead d (Bind Abbr) u0) (CHead x0 (Bind Abbr) x1) (getl_mono c0 (CHead d 
+(Bind Abbr) u0) n H0 (CHead x0 (Bind Abbr) x1) H6)) in ((let H10 \def 
+(f_equal C T (\lambda (e: C).(match e with [(CSort _) \Rightarrow u0 | (CHead 
+_ _ t0) \Rightarrow t0])) (CHead d (Bind Abbr) u0) (CHead x0 (Bind Abbr) x1) 
+(getl_mono c0 (CHead d (Bind Abbr) u0) n H0 (CHead x0 (Bind Abbr) x1) H6)) in 
+(\lambda (H11: (eq C d x0)).(let H12 \def (eq_ind_r T x1 (\lambda (t0: 
+T).(getl n c0 (CHead x0 (Bind Abbr) t0))) H8 u0 H10) in (let H13 \def 
+(eq_ind_r T x1 (\lambda (t0: T).(ty3 g x0 t0 x2)) H7 u0 H10) in (let H14 \def 
+(eq_ind_r C x0 (\lambda (c1: C).(getl n c0 (CHead c1 (Bind Abbr) u0))) H12 d 
+H11) in (let H15 \def (eq_ind_r C x0 (\lambda (c1: C).(ty3 g c1 u0 x2)) H13 d 
+H11) in (pc3_t (lift (S n) O x2) c0 (lift (S n) O t) (pc3_lift c0 d (S n) O 
+(getl_drop Abbr c0 d u0 n H14) t x2 (H2 x2 H15)) t2 H5))))))) H9))))))))) 
+H4)) (\lambda (H4: (ex3_3 C T T (\lambda (_: C).(\lambda (u1: T).(\lambda (_: 
+T).(pc3 c0 (lift (S n) O u1) t2)))) (\lambda (e: C).(\lambda (u1: T).(\lambda 
+(_: T).(getl n c0 (CHead e (Bind Abst) u1))))) (\lambda (e: C).(\lambda (u1: 
+T).(\lambda (t0: T).(ty3 g e u1 t0)))))).(ex3_3_ind C T T (\lambda (_: 
+C).(\lambda (u1: T).(\lambda (_: T).(pc3 c0 (lift (S n) O u1) t2)))) (\lambda 
+(e: C).(\lambda (u1: T).(\lambda (_: T).(getl n c0 (CHead e (Bind Abst) 
+u1))))) (\lambda (e: C).(\lambda (u1: T).(\lambda (t0: T).(ty3 g e u1 t0)))) 
+(pc3 c0 (lift (S n) O t) t2) (\lambda (x0: C).(\lambda (x1: T).(\lambda (x2: 
+T).(\lambda (_: (pc3 c0 (lift (S n) O x1) t2)).(\lambda (H6: (getl n c0 
+(CHead x0 (Bind Abst) x1))).(\lambda (_: (ty3 g x0 x1 x2)).(let H8 \def 
+(eq_ind C (CHead d (Bind Abbr) u0) (\lambda (c1: C).(getl n c0 c1)) H0 (CHead 
+x0 (Bind Abst) x1) (getl_mono c0 (CHead d (Bind Abbr) u0) n H0 (CHead x0 
+(Bind Abst) x1) H6)) in (let H9 \def (eq_ind C (CHead d (Bind Abbr) u0) 
+(\lambda (ee: C).(match ee with [(CSort _) \Rightarrow False | (CHead _ k _) 
+\Rightarrow (match k with [(Bind b) \Rightarrow (match b with [Abbr 
+\Rightarrow True | Abst \Rightarrow False | Void \Rightarrow False]) | (Flat 
+_) \Rightarrow False])])) I (CHead x0 (Bind Abst) x1) (getl_mono c0 (CHead d 
+(Bind Abbr) u0) n H0 (CHead x0 (Bind Abst) x1) H6)) in (False_ind (pc3 c0 
+(lift (S n) O t) t2) H9))))))))) H4)) (ty3_gen_lref g c0 t2 n H3)))))))))))) 
+(\lambda (n: nat).(\lambda (c0: C).(\lambda (d: C).(\lambda (u0: T).(\lambda 
+(H0: (getl n c0 (CHead d (Bind Abst) u0))).(\lambda (t: T).(\lambda (_: (ty3 
+g d u0 t)).(\lambda (_: ((\forall (t2: T).((ty3 g d u0 t2) \to (pc3 d t 
+t2))))).(\lambda (t2: T).(\lambda (H3: (ty3 g c0 (TLRef n) t2)).(or_ind 
+(ex3_3 C T T (\lambda (_: C).(\lambda (_: T).(\lambda (t0: T).(pc3 c0 (lift 
+(S n) O t0) t2)))) (\lambda (e: C).(\lambda (u1: T).(\lambda (_: T).(getl n 
+c0 (CHead e (Bind Abbr) u1))))) (\lambda (e: C).(\lambda (u1: T).(\lambda 
+(t0: T).(ty3 g e u1 t0))))) (ex3_3 C T T (\lambda (_: C).(\lambda (u1: 
+T).(\lambda (_: T).(pc3 c0 (lift (S n) O u1) t2)))) (\lambda (e: C).(\lambda 
+(u1: T).(\lambda (_: T).(getl n c0 (CHead e (Bind Abst) u1))))) (\lambda (e: 
+C).(\lambda (u1: T).(\lambda (t0: T).(ty3 g e u1 t0))))) (pc3 c0 (lift (S n) 
+O u0) t2) (\lambda (H4: (ex3_3 C T T (\lambda (_: C).(\lambda (_: T).(\lambda 
+(t0: T).(pc3 c0 (lift (S n) O t0) t2)))) (\lambda (e: C).(\lambda (u1: 
+T).(\lambda (_: T).(getl n c0 (CHead e (Bind Abbr) u1))))) (\lambda (e: 
+C).(\lambda (u1: T).(\lambda (t0: T).(ty3 g e u1 t0)))))).(ex3_3_ind C T T 
+(\lambda (_: C).(\lambda (_: T).(\lambda (t0: T).(pc3 c0 (lift (S n) O t0) 
+t2)))) (\lambda (e: C).(\lambda (u1: T).(\lambda (_: T).(getl n c0 (CHead e 
+(Bind Abbr) u1))))) (\lambda (e: C).(\lambda (u1: T).(\lambda (t0: T).(ty3 g 
+e u1 t0)))) (pc3 c0 (lift (S n) O u0) t2) (\lambda (x0: C).(\lambda (x1: 
+T).(\lambda (x2: T).(\lambda (_: (pc3 c0 (lift (S n) O x2) t2)).(\lambda (H6: 
+(getl n c0 (CHead x0 (Bind Abbr) x1))).(\lambda (_: (ty3 g x0 x1 x2)).(let H8 
+\def (eq_ind C (CHead d (Bind Abst) u0) (\lambda (c1: C).(getl n c0 c1)) H0 
+(CHead x0 (Bind Abbr) x1) (getl_mono c0 (CHead d (Bind Abst) u0) n H0 (CHead 
+x0 (Bind Abbr) x1) H6)) in (let H9 \def (eq_ind C (CHead d (Bind Abst) u0) 
+(\lambda (ee: C).(match ee with [(CSort _) \Rightarrow False | (CHead _ k _) 
+\Rightarrow (match k with [(Bind b) \Rightarrow (match b with [Abbr 
 \Rightarrow False | Abst \Rightarrow True | Void \Rightarrow False]) | (Flat 
-_) \Rightarrow False])])) in (let TMP_163 \def (Bind Abbr) in (let TMP_164 
-\def (CHead x0 TMP_163 x1) in (let TMP_165 \def (Bind Abst) in (let TMP_166 
-\def (CHead d TMP_165 u0) in (let TMP_167 \def (Bind Abbr) in (let TMP_168 
-\def (CHead x0 TMP_167 x1) in (let TMP_169 \def (getl_mono c0 TMP_166 n H0 
-TMP_168 H6) in (let H9 \def (eq_ind C TMP_161 TMP_162 I TMP_164 TMP_169) in 
-(let TMP_170 \def (S n) in (let TMP_171 \def (lift TMP_170 O u0) in (let 
-TMP_172 \def (pc3 c0 TMP_171 t2) in (False_ind TMP_172 
-H9)))))))))))))))))))))))))))))))) in (ex3_3_ind C T T TMP_142 TMP_145 
-TMP_146 TMP_149 TMP_173 H4))))))))) in (let TMP_228 \def (\lambda (H4: (ex3_3 
-C T T (\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(pc3 c0 (lift (S n) O 
-u1) t2)))) (\lambda (e: C).(\lambda (u1: T).(\lambda (_: T).(getl n c0 (CHead 
-e (Bind Abst) u1))))) (\lambda (e: C).(\lambda (u1: T).(\lambda (t0: T).(ty3 
-g e u1 t0)))))).(let TMP_177 \def (\lambda (_: C).(\lambda (u1: T).(\lambda 
-(_: T).(let TMP_175 \def (S n) in (let TMP_176 \def (lift TMP_175 O u1) in 
-(pc3 c0 TMP_176 t2)))))) in (let TMP_180 \def (\lambda (e: C).(\lambda (u1: 
-T).(\lambda (_: T).(let TMP_178 \def (Bind Abst) in (let TMP_179 \def (CHead 
-e TMP_178 u1) in (getl n c0 TMP_179)))))) in (let TMP_181 \def (\lambda (e: 
-C).(\lambda (u1: T).(\lambda (t0: T).(ty3 g e u1 t0)))) in (let TMP_182 \def 
-(S n) in (let TMP_183 \def (lift TMP_182 O u0) in (let TMP_184 \def (pc3 c0 
-TMP_183 t2) in (let TMP_227 \def (\lambda (x0: C).(\lambda (x1: T).(\lambda 
-(x2: T).(\lambda (H5: (pc3 c0 (lift (S n) O x1) t2)).(\lambda (H6: (getl n c0 
-(CHead x0 (Bind Abst) x1))).(\lambda (H7: (ty3 g x0 x1 x2)).(let TMP_185 \def 
-(Bind Abst) in (let TMP_186 \def (CHead d TMP_185 u0) in (let TMP_187 \def 
-(\lambda (c1: C).(getl n c0 c1)) in (let TMP_188 \def (Bind Abst) in (let 
-TMP_189 \def (CHead x0 TMP_188 x1) in (let TMP_190 \def (Bind Abst) in (let 
-TMP_191 \def (CHead d TMP_190 u0) in (let TMP_192 \def (Bind Abst) in (let 
-TMP_193 \def (CHead x0 TMP_192 x1) in (let TMP_194 \def (getl_mono c0 TMP_191 
-n H0 TMP_193 H6) in (let H8 \def (eq_ind C TMP_186 TMP_187 H0 TMP_189 
-TMP_194) in (let TMP_195 \def (\lambda (e: C).(match e with [(CSort _) 
-\Rightarrow d | (CHead c1 _ _) \Rightarrow c1])) in (let TMP_196 \def (Bind 
-Abst) in (let TMP_197 \def (CHead d TMP_196 u0) in (let TMP_198 \def (Bind 
-Abst) in (let TMP_199 \def (CHead x0 TMP_198 x1) in (let TMP_200 \def (Bind 
-Abst) in (let TMP_201 \def (CHead d TMP_200 u0) in (let TMP_202 \def (Bind 
-Abst) in (let TMP_203 \def (CHead x0 TMP_202 x1) in (let TMP_204 \def 
-(getl_mono c0 TMP_201 n H0 TMP_203 H6) in (let H9 \def (f_equal C C TMP_195 
-TMP_197 TMP_199 TMP_204) in (let TMP_205 \def (\lambda (e: C).(match e with 
-[(CSort _) \Rightarrow u0 | (CHead _ _ t0) \Rightarrow t0])) in (let TMP_206 
-\def (Bind Abst) in (let TMP_207 \def (CHead d TMP_206 u0) in (let TMP_208 
-\def (Bind Abst) in (let TMP_209 \def (CHead x0 TMP_208 x1) in (let TMP_210 
-\def (Bind Abst) in (let TMP_211 \def (CHead d TMP_210 u0) in (let TMP_212 
-\def (Bind Abst) in (let TMP_213 \def (CHead x0 TMP_212 x1) in (let TMP_214 
-\def (getl_mono c0 TMP_211 n H0 TMP_213 H6) in (let H10 \def (f_equal C T 
-TMP_205 TMP_207 TMP_209 TMP_214) in (let TMP_226 \def (\lambda (H11: (eq C d 
-x0)).(let TMP_217 \def (\lambda (t0: T).(let TMP_215 \def (Bind Abst) in (let 
-TMP_216 \def (CHead x0 TMP_215 t0) in (getl n c0 TMP_216)))) in (let H12 \def 
-(eq_ind_r T x1 TMP_217 H8 u0 H10) in (let TMP_218 \def (\lambda (t0: T).(ty3 
-g x0 t0 x2)) in (let H13 \def (eq_ind_r T x1 TMP_218 H7 u0 H10) in (let 
-TMP_221 \def (\lambda (t0: T).(let TMP_219 \def (S n) in (let TMP_220 \def 
-(lift TMP_219 O t0) in (pc3 c0 TMP_220 t2)))) in (let H14 \def (eq_ind_r T x1 
-TMP_221 H5 u0 H10) in (let TMP_224 \def (\lambda (c1: C).(let TMP_222 \def 
-(Bind Abst) in (let TMP_223 \def (CHead c1 TMP_222 u0) in (getl n c0 
-TMP_223)))) in (let H15 \def (eq_ind_r C x0 TMP_224 H12 d H11) in (let 
-TMP_225 \def (\lambda (c1: C).(ty3 g c1 u0 x2)) in (let H16 \def (eq_ind_r C 
-x0 TMP_225 H13 d H11) in H14))))))))))) in (TMP_226 
-H9))))))))))))))))))))))))))))))))))))))))) in (ex3_3_ind C T T TMP_177 
-TMP_180 TMP_181 TMP_184 TMP_227 H4))))))))) in (let TMP_229 \def 
-(ty3_gen_lref g c0 t2 n H3) in (or_ind TMP_128 TMP_136 TMP_139 TMP_174 
-TMP_228 TMP_229))))))))))))))))))))))))) in (let TMP_250 \def (\lambda (c0: 
-C).(\lambda (u0: T).(\lambda (t: T).(\lambda (_: (ty3 g c0 u0 t)).(\lambda 
-(_: ((\forall (t2: T).((ty3 g c0 u0 t2) \to (pc3 c0 t t2))))).(\lambda (b: 
-B).(\lambda (t0: T).(\lambda (t2: T).(\lambda (_: (ty3 g (CHead c0 (Bind b) 
-u0) t0 t2)).(\lambda (H3: ((\forall (t3: T).((ty3 g (CHead c0 (Bind b) u0) t0 
-t3) \to (pc3 (CHead c0 (Bind b) u0) t2 t3))))).(\lambda (t3: T).(\lambda (H4: 
-(ty3 g c0 (THead (Bind b) u0 t0) t3)).(let TMP_233 \def (\lambda (t4: 
-T).(\lambda (_: T).(let TMP_231 \def (Bind b) in (let TMP_232 \def (THead 
-TMP_231 u0 t4) in (pc3 c0 TMP_232 t3))))) in (let TMP_234 \def (\lambda (_: 
-T).(\lambda (t5: T).(ty3 g c0 u0 t5))) in (let TMP_237 \def (\lambda (t4: 
-T).(\lambda (_: T).(let TMP_235 \def (Bind b) in (let TMP_236 \def (CHead c0 
-TMP_235 u0) in (ty3 g TMP_236 t0 t4))))) in (let TMP_238 \def (Bind b) in 
-(let TMP_239 \def (THead TMP_238 u0 t2) in (let TMP_240 \def (pc3 c0 TMP_239 
-t3) in (let TMP_248 \def (\lambda (x0: T).(\lambda (x1: T).(\lambda (H5: (pc3 
-c0 (THead (Bind b) u0 x0) t3)).(\lambda (_: (ty3 g c0 u0 x1)).(\lambda (H7: 
-(ty3 g (CHead c0 (Bind b) u0) t0 x0)).(let TMP_241 \def (Bind b) in (let 
-TMP_242 \def (THead TMP_241 u0 x0) in (let TMP_243 \def (Bind b) in (let 
-TMP_244 \def (THead TMP_243 u0 t2) in (let TMP_245 \def (Bind b) in (let 
-TMP_246 \def (H3 x0 H7) in (let TMP_247 \def (pc3_head_2 c0 u0 t2 x0 TMP_245 
-TMP_246) in (pc3_t TMP_242 c0 TMP_244 TMP_247 t3 H5))))))))))))) in (let 
-TMP_249 \def (ty3_gen_bind g b c0 u0 t0 t3 H4) in (ex3_2_ind T T TMP_233 
-TMP_234 TMP_237 TMP_240 TMP_248 TMP_249))))))))))))))))))))) in (let TMP_283 
-\def (\lambda (c0: C).(\lambda (w: T).(\lambda (u0: T).(\lambda (_: (ty3 g c0 
-w u0)).(\lambda (_: ((\forall (t2: T).((ty3 g c0 w t2) \to (pc3 c0 u0 
-t2))))).(\lambda (v: T).(\lambda (t: T).(\lambda (_: (ty3 g c0 v (THead (Bind 
-Abst) u0 t))).(\lambda (H3: ((\forall (t2: T).((ty3 g c0 v t2) \to (pc3 c0 
-(THead (Bind Abst) u0 t) t2))))).(\lambda (t2: T).(\lambda (H4: (ty3 g c0 
-(THead (Flat Appl) w v) t2)).(let TMP_255 \def (\lambda (u1: T).(\lambda (t0: 
-T).(let TMP_251 \def (Flat Appl) in (let TMP_252 \def (Bind Abst) in (let 
-TMP_253 \def (THead TMP_252 u1 t0) in (let TMP_254 \def (THead TMP_251 w 
-TMP_253) in (pc3 c0 TMP_254 t2))))))) in (let TMP_258 \def (\lambda (u1: 
-T).(\lambda (t0: T).(let TMP_256 \def (Bind Abst) in (let TMP_257 \def (THead 
-TMP_256 u1 t0) in (ty3 g c0 v TMP_257))))) in (let TMP_259 \def (\lambda (u1: 
-T).(\lambda (_: T).(ty3 g c0 w u1))) in (let TMP_260 \def (Flat Appl) in (let 
-TMP_261 \def (Bind Abst) in (let TMP_262 \def (THead TMP_261 u0 t) in (let 
-TMP_263 \def (THead TMP_260 w TMP_262) in (let TMP_264 \def (pc3 c0 TMP_263 
-t2) in (let TMP_281 \def (\lambda (x0: T).(\lambda (x1: T).(\lambda (H5: (pc3 
-c0 (THead (Flat Appl) w (THead (Bind Abst) x0 x1)) t2)).(\lambda (H6: (ty3 g 
-c0 v (THead (Bind Abst) x0 x1))).(\lambda (_: (ty3 g c0 w x0)).(let TMP_265 
-\def (Flat Appl) in (let TMP_266 \def (Bind Abst) in (let TMP_267 \def (THead 
-TMP_266 x0 x1) in (let TMP_268 \def (THead TMP_265 w TMP_267) in (let TMP_269 
-\def (Flat Appl) in (let TMP_270 \def (Bind Abst) in (let TMP_271 \def (THead 
-TMP_270 u0 t) in (let TMP_272 \def (THead TMP_269 w TMP_271) in (let TMP_273 
-\def (Bind Abst) in (let TMP_274 \def (THead TMP_273 u0 t) in (let TMP_275 
-\def (Bind Abst) in (let TMP_276 \def (THead TMP_275 x0 x1) in (let TMP_277 
-\def (Bind Abst) in (let TMP_278 \def (THead TMP_277 x0 x1) in (let TMP_279 
-\def (H3 TMP_278 H6) in (let TMP_280 \def (pc3_thin_dx c0 TMP_274 TMP_276 
-TMP_279 w Appl) in (pc3_t TMP_268 c0 TMP_272 TMP_280 t2 
-H5)))))))))))))))))))))) in (let TMP_282 \def (ty3_gen_appl g c0 w v t2 H4) 
-in (ex3_2_ind T T TMP_255 TMP_258 TMP_259 TMP_264 TMP_281 
-TMP_282)))))))))))))))))))))) in (let TMP_301 \def (\lambda (c0: C).(\lambda 
+_) \Rightarrow False])])) I (CHead x0 (Bind Abbr) x1) (getl_mono c0 (CHead d 
+(Bind Abst) u0) n H0 (CHead x0 (Bind Abbr) x1) H6)) in (False_ind (pc3 c0 
+(lift (S n) O u0) t2) H9))))))))) H4)) (\lambda (H4: (ex3_3 C T T (\lambda 
+(_: C).(\lambda (u1: T).(\lambda (_: T).(pc3 c0 (lift (S n) O u1) t2)))) 
+(\lambda (e: C).(\lambda (u1: T).(\lambda (_: T).(getl n c0 (CHead e (Bind 
+Abst) u1))))) (\lambda (e: C).(\lambda (u1: T).(\lambda (t0: T).(ty3 g e u1 
+t0)))))).(ex3_3_ind C T T (\lambda (_: C).(\lambda (u1: T).(\lambda (_: 
+T).(pc3 c0 (lift (S n) O u1) t2)))) (\lambda (e: C).(\lambda (u1: T).(\lambda 
+(_: T).(getl n c0 (CHead e (Bind Abst) u1))))) (\lambda (e: C).(\lambda (u1: 
+T).(\lambda (t0: T).(ty3 g e u1 t0)))) (pc3 c0 (lift (S n) O u0) t2) (\lambda 
+(x0: C).(\lambda (x1: T).(\lambda (x2: T).(\lambda (H5: (pc3 c0 (lift (S n) O 
+x1) t2)).(\lambda (H6: (getl n c0 (CHead x0 (Bind Abst) x1))).(\lambda (H7: 
+(ty3 g x0 x1 x2)).(let H8 \def (eq_ind C (CHead d (Bind Abst) u0) (\lambda 
+(c1: C).(getl n c0 c1)) H0 (CHead x0 (Bind Abst) x1) (getl_mono c0 (CHead d 
+(Bind Abst) u0) n H0 (CHead x0 (Bind Abst) x1) H6)) in (let H9 \def (f_equal 
+C C (\lambda (e: C).(match e with [(CSort _) \Rightarrow d | (CHead c1 _ _) 
+\Rightarrow c1])) (CHead d (Bind Abst) u0) (CHead x0 (Bind Abst) x1) 
+(getl_mono c0 (CHead d (Bind Abst) u0) n H0 (CHead x0 (Bind Abst) x1) H6)) in 
+((let H10 \def (f_equal C T (\lambda (e: C).(match e with [(CSort _) 
+\Rightarrow u0 | (CHead _ _ t0) \Rightarrow t0])) (CHead d (Bind Abst) u0) 
+(CHead x0 (Bind Abst) x1) (getl_mono c0 (CHead d (Bind Abst) u0) n H0 (CHead 
+x0 (Bind Abst) x1) H6)) in (\lambda (H11: (eq C d x0)).(let H12 \def 
+(eq_ind_r T x1 (\lambda (t0: T).(getl n c0 (CHead x0 (Bind Abst) t0))) H8 u0 
+H10) in (let H13 \def (eq_ind_r T x1 (\lambda (t0: T).(ty3 g x0 t0 x2)) H7 u0 
+H10) in (let H14 \def (eq_ind_r T x1 (\lambda (t0: T).(pc3 c0 (lift (S n) O 
+t0) t2)) H5 u0 H10) in (let H15 \def (eq_ind_r C x0 (\lambda (c1: C).(getl n 
+c0 (CHead c1 (Bind Abst) u0))) H12 d H11) in (let H16 \def (eq_ind_r C x0 
+(\lambda (c1: C).(ty3 g c1 u0 x2)) H13 d H11) in H14))))))) H9))))))))) H4)) 
+(ty3_gen_lref g c0 t2 n H3)))))))))))) (\lambda (c0: C).(\lambda (u0: 
+T).(\lambda (t: T).(\lambda (_: (ty3 g c0 u0 t)).(\lambda (_: ((\forall (t2: 
+T).((ty3 g c0 u0 t2) \to (pc3 c0 t t2))))).(\lambda (b: B).(\lambda (t0: 
+T).(\lambda (t2: T).(\lambda (_: (ty3 g (CHead c0 (Bind b) u0) t0 
+t2)).(\lambda (H3: ((\forall (t3: T).((ty3 g (CHead c0 (Bind b) u0) t0 t3) 
+\to (pc3 (CHead c0 (Bind b) u0) t2 t3))))).(\lambda (t3: T).(\lambda (H4: 
+(ty3 g c0 (THead (Bind b) u0 t0) t3)).(ex3_2_ind T T (\lambda (t4: 
+T).(\lambda (_: T).(pc3 c0 (THead (Bind b) u0 t4) t3))) (\lambda (_: 
+T).(\lambda (t5: T).(ty3 g c0 u0 t5))) (\lambda (t4: T).(\lambda (_: T).(ty3 
+g (CHead c0 (Bind b) u0) t0 t4))) (pc3 c0 (THead (Bind b) u0 t2) t3) (\lambda 
+(x0: T).(\lambda (x1: T).(\lambda (H5: (pc3 c0 (THead (Bind b) u0 x0) 
+t3)).(\lambda (_: (ty3 g c0 u0 x1)).(\lambda (H7: (ty3 g (CHead c0 (Bind b) 
+u0) t0 x0)).(pc3_t (THead (Bind b) u0 x0) c0 (THead (Bind b) u0 t2) 
+(pc3_head_2 c0 u0 t2 x0 (Bind b) (H3 x0 H7)) t3 H5)))))) (ty3_gen_bind g b c0 
+u0 t0 t3 H4)))))))))))))) (\lambda (c0: C).(\lambda (w: T).(\lambda (u0: 
+T).(\lambda (_: (ty3 g c0 w u0)).(\lambda (_: ((\forall (t2: T).((ty3 g c0 w 
+t2) \to (pc3 c0 u0 t2))))).(\lambda (v: T).(\lambda (t: T).(\lambda (_: (ty3 
+g c0 v (THead (Bind Abst) u0 t))).(\lambda (H3: ((\forall (t2: T).((ty3 g c0 
+v t2) \to (pc3 c0 (THead (Bind Abst) u0 t) t2))))).(\lambda (t2: T).(\lambda 
+(H4: (ty3 g c0 (THead (Flat Appl) w v) t2)).(ex3_2_ind T T (\lambda (u1: 
+T).(\lambda (t0: T).(pc3 c0 (THead (Flat Appl) w (THead (Bind Abst) u1 t0)) 
+t2))) (\lambda (u1: T).(\lambda (t0: T).(ty3 g c0 v (THead (Bind Abst) u1 
+t0)))) (\lambda (u1: T).(\lambda (_: T).(ty3 g c0 w u1))) (pc3 c0 (THead 
+(Flat Appl) w (THead (Bind Abst) u0 t)) t2) (\lambda (x0: T).(\lambda (x1: 
+T).(\lambda (H5: (pc3 c0 (THead (Flat Appl) w (THead (Bind Abst) x0 x1)) 
+t2)).(\lambda (H6: (ty3 g c0 v (THead (Bind Abst) x0 x1))).(\lambda (_: (ty3 
+g c0 w x0)).(pc3_t (THead (Flat Appl) w (THead (Bind Abst) x0 x1)) c0 (THead 
+(Flat Appl) w (THead (Bind Abst) u0 t)) (pc3_thin_dx c0 (THead (Bind Abst) u0 
+t) (THead (Bind Abst) x0 x1) (H3 (THead (Bind Abst) x0 x1) H6) w Appl) t2 
+H5)))))) (ty3_gen_appl g c0 w v t2 H4))))))))))))) (\lambda (c0: C).(\lambda 
 (t0: T).(\lambda (t2: T).(\lambda (_: (ty3 g c0 t0 t2)).(\lambda (_: 
 ((\forall (t3: T).((ty3 g c0 t0 t3) \to (pc3 c0 t2 t3))))).(\lambda (t3: 
 T).(\lambda (_: (ty3 g c0 t2 t3)).(\lambda (H3: ((\forall (t4: T).((ty3 g c0 
 t2 t4) \to (pc3 c0 t3 t4))))).(\lambda (t4: T).(\lambda (H4: (ty3 g c0 (THead 
-(Flat Cast) t2 t0) t4)).(let TMP_286 \def (\lambda (t5: T).(let TMP_284 \def 
-(Flat Cast) in (let TMP_285 \def (THead TMP_284 t5 t2) in (pc3 c0 TMP_285 
-t4)))) in (let TMP_287 \def (\lambda (_: T).(ty3 g c0 t0 t2)) in (let TMP_288 
-\def (\lambda (t5: T).(ty3 g c0 t2 t5)) in (let TMP_289 \def (Flat Cast) in 
-(let TMP_290 \def (THead TMP_289 t3 t2) in (let TMP_291 \def (pc3 c0 TMP_290 
-t4) in (let TMP_299 \def (\lambda (x0: T).(\lambda (H5: (pc3 c0 (THead (Flat 
-Cast) x0 t2) t4)).(\lambda (_: (ty3 g c0 t0 t2)).(\lambda (H7: (ty3 g c0 t2 
-x0)).(let TMP_292 \def (Flat Cast) in (let TMP_293 \def (THead TMP_292 x0 t2) 
-in (let TMP_294 \def (Flat Cast) in (let TMP_295 \def (THead TMP_294 t3 t2) 
-in (let TMP_296 \def (H3 x0 H7) in (let TMP_297 \def (Flat Cast) in (let 
-TMP_298 \def (pc3_head_1 c0 t3 x0 TMP_296 TMP_297 t2) in (pc3_t TMP_293 c0 
-TMP_295 TMP_298 t4 H5)))))))))))) in (let TMP_300 \def (ty3_gen_cast g c0 t0 
-t2 t4 H4) in (ex3_ind T TMP_286 TMP_287 TMP_288 TMP_291 TMP_299 
-TMP_300))))))))))))))))))) in (ty3_ind g TMP_1 TMP_4 TMP_5 TMP_120 TMP_230 
-TMP_250 TMP_283 TMP_301 c u t1 H))))))))))))).
+(Flat Cast) t2 t0) t4)).(ex3_ind T (\lambda (t5: T).(pc3 c0 (THead (Flat 
+Cast) t5 t2) t4)) (\lambda (_: T).(ty3 g c0 t0 t2)) (\lambda (t5: T).(ty3 g 
+c0 t2 t5)) (pc3 c0 (THead (Flat Cast) t3 t2) t4) (\lambda (x0: T).(\lambda 
+(H5: (pc3 c0 (THead (Flat Cast) x0 t2) t4)).(\lambda (_: (ty3 g c0 t0 
+t2)).(\lambda (H7: (ty3 g c0 t2 x0)).(pc3_t (THead (Flat Cast) x0 t2) c0 
+(THead (Flat Cast) t3 t2) (pc3_head_1 c0 t3 x0 (H3 x0 H7) (Flat Cast) t2) t4 
+H5))))) (ty3_gen_cast g c0 t0 t2 t4 H4)))))))))))) c u t1 H))))).
 
 theorem ty3_gen_abst_abst:
  \forall (g: G).(\forall (c: C).(\forall (u: T).(\forall (t1: T).(\forall 
@@ -833,62 +423,39 @@ u) t1 t2))))))))
 \def
  \lambda (g: G).(\lambda (c: C).(\lambda (u: T).(\lambda (t1: T).(\lambda 
 (t2: T).(\lambda (H: (ty3 g c (THead (Bind Abst) u t1) (THead (Bind Abst) u 
-t2))).(let TMP_3 \def (\lambda (t: T).(let TMP_1 \def (Bind Abst) in (let 
-TMP_2 \def (THead TMP_1 u t2) in (ty3 g c TMP_2 t)))) in (let TMP_4 \def 
-(\lambda (w: T).(ty3 g c u w)) in (let TMP_7 \def (\lambda (_: T).(let TMP_5 
-\def (Bind Abst) in (let TMP_6 \def (CHead c TMP_5 u) in (ty3 g TMP_6 t1 
-t2)))) in (let TMP_8 \def (ex2 T TMP_4 TMP_7) in (let TMP_48 \def (\lambda 
-(x: T).(\lambda (H0: (ty3 g c (THead (Bind Abst) u t2) x)).(let TMP_11 \def 
-(\lambda (t3: T).(\lambda (_: T).(let TMP_9 \def (Bind Abst) in (let TMP_10 
-\def (THead TMP_9 u t3) in (pc3 c TMP_10 x))))) in (let TMP_12 \def (\lambda 
-(_: T).(\lambda (t: T).(ty3 g c u t))) in (let TMP_15 \def (\lambda (t3: 
-T).(\lambda (_: T).(let TMP_13 \def (Bind Abst) in (let TMP_14 \def (CHead c 
-TMP_13 u) in (ty3 g TMP_14 t2 t3))))) in (let TMP_16 \def (\lambda (w: 
-T).(ty3 g c u w)) in (let TMP_19 \def (\lambda (_: T).(let TMP_17 \def (Bind 
-Abst) in (let TMP_18 \def (CHead c TMP_17 u) in (ty3 g TMP_18 t1 t2)))) in 
-(let TMP_20 \def (ex2 T TMP_16 TMP_19) in (let TMP_46 \def (\lambda (x0: 
-T).(\lambda (x1: T).(\lambda (_: (pc3 c (THead (Bind Abst) u x0) x)).(\lambda 
-(_: (ty3 g c u x1)).(\lambda (H3: (ty3 g (CHead c (Bind Abst) u) t2 x0)).(let 
-TMP_25 \def (\lambda (t3: T).(\lambda (_: T).(let TMP_21 \def (Bind Abst) in 
-(let TMP_22 \def (THead TMP_21 u t3) in (let TMP_23 \def (Bind Abst) in (let 
-TMP_24 \def (THead TMP_23 u t2) in (pc3 c TMP_22 TMP_24))))))) in (let TMP_26 
-\def (\lambda (_: T).(\lambda (t: T).(ty3 g c u t))) in (let TMP_29 \def 
-(\lambda (t3: T).(\lambda (_: T).(let TMP_27 \def (Bind Abst) in (let TMP_28 
-\def (CHead c TMP_27 u) in (ty3 g TMP_28 t1 t3))))) in (let TMP_30 \def 
-(\lambda (w: T).(ty3 g c u w)) in (let TMP_33 \def (\lambda (_: T).(let 
-TMP_31 \def (Bind Abst) in (let TMP_32 \def (CHead c TMP_31 u) in (ty3 g 
-TMP_32 t1 t2)))) in (let TMP_34 \def (ex2 T TMP_30 TMP_33) in (let TMP_42 
-\def (\lambda (x2: T).(\lambda (x3: T).(\lambda (H4: (pc3 c (THead (Bind 
-Abst) u x2) (THead (Bind Abst) u t2))).(\lambda (H5: (ty3 g c u x3)).(\lambda 
-(H6: (ty3 g (CHead c (Bind Abst) u) t1 x2)).(let H_y \def (pc3_gen_abst_shift 
-c u x2 t2 H4) in (let TMP_35 \def (\lambda (w: T).(ty3 g c u w)) in (let 
-TMP_38 \def (\lambda (_: T).(let TMP_36 \def (Bind Abst) in (let TMP_37 \def 
-(CHead c TMP_36 u) in (ty3 g TMP_37 t1 t2)))) in (let TMP_39 \def (Bind Abst) 
-in (let TMP_40 \def (CHead c TMP_39 u) in (let TMP_41 \def (ty3_conv g TMP_40 
-t2 x0 H3 t1 x2 H6 H_y) in (ex_intro2 T TMP_35 TMP_38 x3 H5 TMP_41)))))))))))) 
-in (let TMP_43 \def (Bind Abst) in (let TMP_44 \def (THead TMP_43 u t2) in 
-(let TMP_45 \def (ty3_gen_bind g Abst c u t1 TMP_44 H) in (ex3_2_ind T T 
-TMP_25 TMP_26 TMP_29 TMP_34 TMP_42 TMP_45)))))))))))))))) in (let TMP_47 \def 
-(ty3_gen_bind g Abst c u t2 x H0) in (ex3_2_ind T T TMP_11 TMP_12 TMP_15 
-TMP_20 TMP_46 TMP_47))))))))))) in (let TMP_49 \def (Bind Abst) in (let 
-TMP_50 \def (THead TMP_49 u t1) in (let TMP_51 \def (Bind Abst) in (let 
-TMP_52 \def (THead TMP_51 u t2) in (let TMP_53 \def (ty3_correct g c TMP_50 
-TMP_52 H) in (ex_ind T TMP_3 TMP_8 TMP_48 TMP_53)))))))))))))))).
+t2))).(ex_ind T (\lambda (t: T).(ty3 g c (THead (Bind Abst) u t2) t)) (ex2 T 
+(\lambda (w: T).(ty3 g c u w)) (\lambda (_: T).(ty3 g (CHead c (Bind Abst) u) 
+t1 t2))) (\lambda (x: T).(\lambda (H0: (ty3 g c (THead (Bind Abst) u t2) 
+x)).(ex3_2_ind T T (\lambda (t3: T).(\lambda (_: T).(pc3 c (THead (Bind Abst) 
+u t3) x))) (\lambda (_: T).(\lambda (t: T).(ty3 g c u t))) (\lambda (t3: 
+T).(\lambda (_: T).(ty3 g (CHead c (Bind Abst) u) t2 t3))) (ex2 T (\lambda 
+(w: T).(ty3 g c u w)) (\lambda (_: T).(ty3 g (CHead c (Bind Abst) u) t1 t2))) 
+(\lambda (x0: T).(\lambda (x1: T).(\lambda (_: (pc3 c (THead (Bind Abst) u 
+x0) x)).(\lambda (_: (ty3 g c u x1)).(\lambda (H3: (ty3 g (CHead c (Bind 
+Abst) u) t2 x0)).(ex3_2_ind T T (\lambda (t3: T).(\lambda (_: T).(pc3 c 
+(THead (Bind Abst) u t3) (THead (Bind Abst) u t2)))) (\lambda (_: T).(\lambda 
+(t: T).(ty3 g c u t))) (\lambda (t3: T).(\lambda (_: T).(ty3 g (CHead c (Bind 
+Abst) u) t1 t3))) (ex2 T (\lambda (w: T).(ty3 g c u w)) (\lambda (_: T).(ty3 
+g (CHead c (Bind Abst) u) t1 t2))) (\lambda (x2: T).(\lambda (x3: T).(\lambda 
+(H4: (pc3 c (THead (Bind Abst) u x2) (THead (Bind Abst) u t2))).(\lambda (H5: 
+(ty3 g c u x3)).(\lambda (H6: (ty3 g (CHead c (Bind Abst) u) t1 x2)).(let H_y 
+\def (pc3_gen_abst_shift c u x2 t2 H4) in (ex_intro2 T (\lambda (w: T).(ty3 g 
+c u w)) (\lambda (_: T).(ty3 g (CHead c (Bind Abst) u) t1 t2)) x3 H5 
+(ty3_conv g (CHead c (Bind Abst) u) t2 x0 H3 t1 x2 H6 H_y)))))))) 
+(ty3_gen_bind g Abst c u t1 (THead (Bind Abst) u t2) H))))))) (ty3_gen_bind g 
+Abst c u t2 x H0)))) (ty3_correct g c (THead (Bind Abst) u t1) (THead (Bind 
+Abst) u t2) H))))))).
 
 theorem ty3_typecheck:
  \forall (g: G).(\forall (c: C).(\forall (t: T).(\forall (v: T).((ty3 g c t 
 v) \to (ex T (\lambda (u: T).(ty3 g c (THead (Flat Cast) v t) u)))))))
 \def
  \lambda (g: G).(\lambda (c: C).(\lambda (t: T).(\lambda (v: T).(\lambda (H: 
-(ty3 g c t v)).(let TMP_1 \def (\lambda (t0: T).(ty3 g c v t0)) in (let TMP_4 
-\def (\lambda (u: T).(let TMP_2 \def (Flat Cast) in (let TMP_3 \def (THead 
-TMP_2 v t) in (ty3 g c TMP_3 u)))) in (let TMP_5 \def (ex T TMP_4) in (let 
-TMP_12 \def (\lambda (x: T).(\lambda (H0: (ty3 g c v x)).(let TMP_8 \def 
-(\lambda (u: T).(let TMP_6 \def (Flat Cast) in (let TMP_7 \def (THead TMP_6 v 
-t) in (ty3 g c TMP_7 u)))) in (let TMP_9 \def (Flat Cast) in (let TMP_10 \def 
-(THead TMP_9 x v) in (let TMP_11 \def (ty3_cast g c t v H x H0) in (ex_intro 
-T TMP_8 TMP_10 TMP_11))))))) in (let TMP_13 \def (ty3_correct g c t v H) in 
-(ex_ind T TMP_1 TMP_5 TMP_12 TMP_13)))))))))).
+(ty3 g c t v)).(ex_ind T (\lambda (t0: T).(ty3 g c v t0)) (ex T (\lambda (u: 
+T).(ty3 g c (THead (Flat Cast) v t) u))) (\lambda (x: T).(\lambda (H0: (ty3 g 
+c v x)).(ex_intro T (\lambda (u: T).(ty3 g c (THead (Flat Cast) v t) u)) 
+(THead (Flat Cast) x v) (ty3_cast g c t v H x H0)))) (ty3_correct g c t v 
+H)))))).
 
 theorem ty3_getl_subst0:
  \forall (g: G).(\forall (c: C).(\forall (t: T).(\forall (u: T).((ty3 g c t 
@@ -897,209 +464,131 @@ t0) \to (\forall (b: B).(\forall (d: C).(\forall (v: T).((getl i c (CHead d
 (Bind b) v)) \to (ex T (\lambda (w: T).(ty3 g d v w)))))))))))))))
 \def
  \lambda (g: G).(\lambda (c: C).(\lambda (t: T).(\lambda (u: T).(\lambda (H: 
-(ty3 g c t u)).(let TMP_2 \def (\lambda (c0: C).(\lambda (t0: T).(\lambda (_: 
+(ty3 g c t u)).(ty3_ind g (\lambda (c0: C).(\lambda (t0: T).(\lambda (_: 
 T).(\forall (v0: T).(\forall (t2: T).(\forall (i: nat).((subst0 i v0 t0 t2) 
 \to (\forall (b: B).(\forall (d: C).(\forall (v: T).((getl i c0 (CHead d 
-(Bind b) v)) \to (let TMP_1 \def (\lambda (w: T).(ty3 g d v w)) in (ex T 
-TMP_1))))))))))))) in (let TMP_3 \def (\lambda (c0: C).(\lambda (t2: 
-T).(\lambda (t0: T).(\lambda (_: (ty3 g c0 t2 t0)).(\lambda (_: ((\forall 
-(v0: T).(\forall (t1: T).(\forall (i: nat).((subst0 i v0 t2 t1) \to (\forall 
-(b: B).(\forall (d: C).(\forall (v: T).((getl i c0 (CHead d (Bind b) v)) \to 
-(ex T (\lambda (w: T).(ty3 g d v w))))))))))))).(\lambda (u0: T).(\lambda 
-(t1: T).(\lambda (_: (ty3 g c0 u0 t1)).(\lambda (H3: ((\forall (v0: 
-T).(\forall (t3: T).(\forall (i: nat).((subst0 i v0 u0 t3) \to (\forall (b: 
-B).(\forall (d: C).(\forall (v: T).((getl i c0 (CHead d (Bind b) v)) \to (ex 
-T (\lambda (w: T).(ty3 g d v w))))))))))))).(\lambda (_: (pc3 c0 t1 
-t2)).(\lambda (v0: T).(\lambda (t3: T).(\lambda (i: nat).(\lambda (H5: 
-(subst0 i v0 u0 t3)).(\lambda (b: B).(\lambda (d: C).(\lambda (v: T).(\lambda 
-(H6: (getl i c0 (CHead d (Bind b) v))).(H3 v0 t3 i H5 b d v 
-H6))))))))))))))))))) in (let TMP_6 \def (\lambda (c0: C).(\lambda (m: 
+(Bind b) v)) \to (ex T (\lambda (w: T).(ty3 g d v w)))))))))))))) (\lambda 
+(c0: C).(\lambda (t2: T).(\lambda (t0: T).(\lambda (_: (ty3 g c0 t2 
+t0)).(\lambda (_: ((\forall (v0: T).(\forall (t1: T).(\forall (i: 
+nat).((subst0 i v0 t2 t1) \to (\forall (b: B).(\forall (d: C).(\forall (v: 
+T).((getl i c0 (CHead d (Bind b) v)) \to (ex T (\lambda (w: T).(ty3 g d v 
+w))))))))))))).(\lambda (u0: T).(\lambda (t1: T).(\lambda (_: (ty3 g c0 u0 
+t1)).(\lambda (H3: ((\forall (v0: T).(\forall (t3: T).(\forall (i: 
+nat).((subst0 i v0 u0 t3) \to (\forall (b: B).(\forall (d: C).(\forall (v: 
+T).((getl i c0 (CHead d (Bind b) v)) \to (ex T (\lambda (w: T).(ty3 g d v 
+w))))))))))))).(\lambda (_: (pc3 c0 t1 t2)).(\lambda (v0: T).(\lambda (t3: 
+T).(\lambda (i: nat).(\lambda (H5: (subst0 i v0 u0 t3)).(\lambda (b: 
+B).(\lambda (d: C).(\lambda (v: T).(\lambda (H6: (getl i c0 (CHead d (Bind b) 
+v))).(H3 v0 t3 i H5 b d v H6))))))))))))))))))) (\lambda (c0: C).(\lambda (m: 
 nat).(\lambda (v0: T).(\lambda (t0: T).(\lambda (i: nat).(\lambda (H0: 
 (subst0 i v0 (TSort m) t0)).(\lambda (b: B).(\lambda (d: C).(\lambda (v: 
-T).(\lambda (_: (getl i c0 (CHead d (Bind b) v))).(let TMP_4 \def (\lambda 
-(w: T).(ty3 g d v w)) in (let TMP_5 \def (ex T TMP_4) in (subst0_gen_sort v0 
-t0 i m H0 TMP_5))))))))))))) in (let TMP_76 \def (\lambda (n: nat).(\lambda 
+T).(\lambda (_: (getl i c0 (CHead d (Bind b) v))).(subst0_gen_sort v0 t0 i m 
+H0 (ex T (\lambda (w: T).(ty3 g d v w)))))))))))))) (\lambda (n: 
+nat).(\lambda (c0: C).(\lambda (d: C).(\lambda (u0: T).(\lambda (H0: (getl n 
+c0 (CHead d (Bind Abbr) u0))).(\lambda (t0: T).(\lambda (H1: (ty3 g d u0 
+t0)).(\lambda (_: ((\forall (v0: T).(\forall (t1: T).(\forall (i: 
+nat).((subst0 i v0 u0 t1) \to (\forall (b: B).(\forall (d0: C).(\forall (v: 
+T).((getl i d (CHead d0 (Bind b) v)) \to (ex T (\lambda (w: T).(ty3 g d0 v 
+w))))))))))))).(\lambda (v0: T).(\lambda (t1: T).(\lambda (i: nat).(\lambda 
+(H3: (subst0 i v0 (TLRef n) t1)).(\lambda (b: B).(\lambda (d0: C).(\lambda 
+(v: T).(\lambda (H4: (getl i c0 (CHead d0 (Bind b) v))).(land_ind (eq nat n 
+i) (eq T t1 (lift (S n) O v0)) (ex T (\lambda (w: T).(ty3 g d0 v w))) 
+(\lambda (H5: (eq nat n i)).(\lambda (_: (eq T t1 (lift (S n) O v0))).(let H7 
+\def (eq_ind_r nat i (\lambda (n0: nat).(getl n0 c0 (CHead d0 (Bind b) v))) 
+H4 n H5) in (let H8 \def (eq_ind C (CHead d (Bind Abbr) u0) (\lambda (c1: 
+C).(getl n c0 c1)) H0 (CHead d0 (Bind b) v) (getl_mono c0 (CHead d (Bind 
+Abbr) u0) n H0 (CHead d0 (Bind b) v) H7)) in (let H9 \def (f_equal C C 
+(\lambda (e: C).(match e with [(CSort _) \Rightarrow d | (CHead c1 _ _) 
+\Rightarrow c1])) (CHead d (Bind Abbr) u0) (CHead d0 (Bind b) v) (getl_mono 
+c0 (CHead d (Bind Abbr) u0) n H0 (CHead d0 (Bind b) v) H7)) in ((let H10 \def 
+(f_equal C B (\lambda (e: C).(match e with [(CSort _) \Rightarrow Abbr | 
+(CHead _ k _) \Rightarrow (match k with [(Bind b0) \Rightarrow b0 | (Flat _) 
+\Rightarrow Abbr])])) (CHead d (Bind Abbr) u0) (CHead d0 (Bind b) v) 
+(getl_mono c0 (CHead d (Bind Abbr) u0) n H0 (CHead d0 (Bind b) v) H7)) in 
+((let H11 \def (f_equal C T (\lambda (e: C).(match e with [(CSort _) 
+\Rightarrow u0 | (CHead _ _ t2) \Rightarrow t2])) (CHead d (Bind Abbr) u0) 
+(CHead d0 (Bind b) v) (getl_mono c0 (CHead d (Bind Abbr) u0) n H0 (CHead d0 
+(Bind b) v) H7)) in (\lambda (H12: (eq B Abbr b)).(\lambda (H13: (eq C d 
+d0)).(let H14 \def (eq_ind_r T v (\lambda (t2: T).(getl n c0 (CHead d0 (Bind 
+b) t2))) H8 u0 H11) in (eq_ind T u0 (\lambda (t2: T).(ex T (\lambda (w: 
+T).(ty3 g d0 t2 w)))) (let H15 \def (eq_ind_r C d0 (\lambda (c1: C).(getl n 
+c0 (CHead c1 (Bind b) u0))) H14 d H13) in (eq_ind C d (\lambda (c1: C).(ex T 
+(\lambda (w: T).(ty3 g c1 u0 w)))) (let H16 \def (eq_ind_r B b (\lambda (b0: 
+B).(getl n c0 (CHead d (Bind b0) u0))) H15 Abbr H12) in (ex_intro T (\lambda 
+(w: T).(ty3 g d u0 w)) t0 H1)) d0 H13)) v H11))))) H10)) H9)))))) 
+(subst0_gen_lref v0 t1 i n H3)))))))))))))))))) (\lambda (n: nat).(\lambda 
 (c0: C).(\lambda (d: C).(\lambda (u0: T).(\lambda (H0: (getl n c0 (CHead d 
-(Bind Abbr) u0))).(\lambda (t0: T).(\lambda (H1: (ty3 g d u0 t0)).(\lambda 
+(Bind Abst) u0))).(\lambda (t0: T).(\lambda (H1: (ty3 g d u0 t0)).(\lambda 
 (_: ((\forall (v0: T).(\forall (t1: T).(\forall (i: nat).((subst0 i v0 u0 t1) 
 \to (\forall (b: B).(\forall (d0: C).(\forall (v: T).((getl i d (CHead d0 
 (Bind b) v)) \to (ex T (\lambda (w: T).(ty3 g d0 v w))))))))))))).(\lambda 
 (v0: T).(\lambda (t1: T).(\lambda (i: nat).(\lambda (H3: (subst0 i v0 (TLRef 
 n) t1)).(\lambda (b: B).(\lambda (d0: C).(\lambda (v: T).(\lambda (H4: (getl 
-i c0 (CHead d0 (Bind b) v))).(let TMP_7 \def (eq nat n i) in (let TMP_8 \def 
-(S n) in (let TMP_9 \def (lift TMP_8 O v0) in (let TMP_10 \def (eq T t1 
-TMP_9) in (let TMP_11 \def (\lambda (w: T).(ty3 g d0 v w)) in (let TMP_12 
-\def (ex T TMP_11) in (let TMP_74 \def (\lambda (H5: (eq nat n i)).(\lambda 
-(_: (eq T t1 (lift (S n) O v0))).(let TMP_15 \def (\lambda (n0: nat).(let 
-TMP_13 \def (Bind b) in (let TMP_14 \def (CHead d0 TMP_13 v) in (getl n0 c0 
-TMP_14)))) in (let H7 \def (eq_ind_r nat i TMP_15 H4 n H5) in (let TMP_16 
-\def (Bind Abbr) in (let TMP_17 \def (CHead d TMP_16 u0) in (let TMP_18 \def 
-(\lambda (c1: C).(getl n c0 c1)) in (let TMP_19 \def (Bind b) in (let TMP_20 
-\def (CHead d0 TMP_19 v) in (let TMP_21 \def (Bind Abbr) in (let TMP_22 \def 
-(CHead d TMP_21 u0) in (let TMP_23 \def (Bind b) in (let TMP_24 \def (CHead 
-d0 TMP_23 v) in (let TMP_25 \def (getl_mono c0 TMP_22 n H0 TMP_24 H7) in (let 
-H8 \def (eq_ind C TMP_17 TMP_18 H0 TMP_20 TMP_25) in (let TMP_26 \def 
-(\lambda (e: C).(match e with [(CSort _) \Rightarrow d | (CHead c1 _ _) 
-\Rightarrow c1])) in (let TMP_27 \def (Bind Abbr) in (let TMP_28 \def (CHead 
-d TMP_27 u0) in (let TMP_29 \def (Bind b) in (let TMP_30 \def (CHead d0 
-TMP_29 v) in (let TMP_31 \def (Bind Abbr) in (let TMP_32 \def (CHead d TMP_31 
-u0) in (let TMP_33 \def (Bind b) in (let TMP_34 \def (CHead d0 TMP_33 v) in 
-(let TMP_35 \def (getl_mono c0 TMP_32 n H0 TMP_34 H7) in (let H9 \def 
-(f_equal C C TMP_26 TMP_28 TMP_30 TMP_35) in (let TMP_36 \def (\lambda (e: 
-C).(match e with [(CSort _) \Rightarrow Abbr | (CHead _ k _) \Rightarrow 
-(match k with [(Bind b0) \Rightarrow b0 | (Flat _) \Rightarrow Abbr])])) in 
-(let TMP_37 \def (Bind Abbr) in (let TMP_38 \def (CHead d TMP_37 u0) in (let 
-TMP_39 \def (Bind b) in (let TMP_40 \def (CHead d0 TMP_39 v) in (let TMP_41 
-\def (Bind Abbr) in (let TMP_42 \def (CHead d TMP_41 u0) in (let TMP_43 \def 
-(Bind b) in (let TMP_44 \def (CHead d0 TMP_43 v) in (let TMP_45 \def 
-(getl_mono c0 TMP_42 n H0 TMP_44 H7) in (let H10 \def (f_equal C B TMP_36 
-TMP_38 TMP_40 TMP_45) in (let TMP_46 \def (\lambda (e: C).(match e with 
-[(CSort _) \Rightarrow u0 | (CHead _ _ t2) \Rightarrow t2])) in (let TMP_47 
-\def (Bind Abbr) in (let TMP_48 \def (CHead d TMP_47 u0) in (let TMP_49 \def 
-(Bind b) in (let TMP_50 \def (CHead d0 TMP_49 v) in (let TMP_51 \def (Bind 
-Abbr) in (let TMP_52 \def (CHead d TMP_51 u0) in (let TMP_53 \def (Bind b) in 
-(let TMP_54 \def (CHead d0 TMP_53 v) in (let TMP_55 \def (getl_mono c0 TMP_52 
-n H0 TMP_54 H7) in (let H11 \def (f_equal C T TMP_46 TMP_48 TMP_50 TMP_55) in 
-(let TMP_72 \def (\lambda (H12: (eq B Abbr b)).(\lambda (H13: (eq C d 
-d0)).(let TMP_58 \def (\lambda (t2: T).(let TMP_56 \def (Bind b) in (let 
-TMP_57 \def (CHead d0 TMP_56 t2) in (getl n c0 TMP_57)))) in (let H14 \def 
-(eq_ind_r T v TMP_58 H8 u0 H11) in (let TMP_60 \def (\lambda (t2: T).(let 
-TMP_59 \def (\lambda (w: T).(ty3 g d0 t2 w)) in (ex T TMP_59))) in (let 
-TMP_63 \def (\lambda (c1: C).(let TMP_61 \def (Bind b) in (let TMP_62 \def 
-(CHead c1 TMP_61 u0) in (getl n c0 TMP_62)))) in (let H15 \def (eq_ind_r C d0 
-TMP_63 H14 d H13) in (let TMP_65 \def (\lambda (c1: C).(let TMP_64 \def 
-(\lambda (w: T).(ty3 g c1 u0 w)) in (ex T TMP_64))) in (let TMP_68 \def 
-(\lambda (b0: B).(let TMP_66 \def (Bind b0) in (let TMP_67 \def (CHead d 
-TMP_66 u0) in (getl n c0 TMP_67)))) in (let H16 \def (eq_ind_r B b TMP_68 H15 
-Abbr H12) in (let TMP_69 \def (\lambda (w: T).(ty3 g d u0 w)) in (let TMP_70 
-\def (ex_intro T TMP_69 t0 H1) in (let TMP_71 \def (eq_ind C d TMP_65 TMP_70 
-d0 H13) in (eq_ind T u0 TMP_60 TMP_71 v H11)))))))))))))) in (let TMP_73 \def 
-(TMP_72 H10) in (TMP_73 H9))))))))))))))))))))))))))))))))))))))))))))))))))) 
-in (let TMP_75 \def (subst0_gen_lref v0 t1 i n H3) in (land_ind TMP_7 TMP_10 
-TMP_12 TMP_74 TMP_75))))))))))))))))))))))))) in (let TMP_146 \def (\lambda 
-(n: nat).(\lambda (c0: C).(\lambda (d: C).(\lambda (u0: T).(\lambda (H0: 
-(getl n c0 (CHead d (Bind Abst) u0))).(\lambda (t0: T).(\lambda (H1: (ty3 g d 
-u0 t0)).(\lambda (_: ((\forall (v0: T).(\forall (t1: T).(\forall (i: 
-nat).((subst0 i v0 u0 t1) \to (\forall (b: B).(\forall (d0: C).(\forall (v: 
-T).((getl i d (CHead d0 (Bind b) v)) \to (ex T (\lambda (w: T).(ty3 g d0 v 
-w))))))))))))).(\lambda (v0: T).(\lambda (t1: T).(\lambda (i: nat).(\lambda 
-(H3: (subst0 i v0 (TLRef n) t1)).(\lambda (b: B).(\lambda (d0: C).(\lambda 
-(v: T).(\lambda (H4: (getl i c0 (CHead d0 (Bind b) v))).(let TMP_77 \def (eq 
-nat n i) in (let TMP_78 \def (S n) in (let TMP_79 \def (lift TMP_78 O v0) in 
-(let TMP_80 \def (eq T t1 TMP_79) in (let TMP_81 \def (\lambda (w: T).(ty3 g 
-d0 v w)) in (let TMP_82 \def (ex T TMP_81) in (let TMP_144 \def (\lambda (H5: 
-(eq nat n i)).(\lambda (_: (eq T t1 (lift (S n) O v0))).(let TMP_85 \def 
-(\lambda (n0: nat).(let TMP_83 \def (Bind b) in (let TMP_84 \def (CHead d0 
-TMP_83 v) in (getl n0 c0 TMP_84)))) in (let H7 \def (eq_ind_r nat i TMP_85 H4 
-n H5) in (let TMP_86 \def (Bind Abst) in (let TMP_87 \def (CHead d TMP_86 u0) 
-in (let TMP_88 \def (\lambda (c1: C).(getl n c0 c1)) in (let TMP_89 \def 
-(Bind b) in (let TMP_90 \def (CHead d0 TMP_89 v) in (let TMP_91 \def (Bind 
-Abst) in (let TMP_92 \def (CHead d TMP_91 u0) in (let TMP_93 \def (Bind b) in 
-(let TMP_94 \def (CHead d0 TMP_93 v) in (let TMP_95 \def (getl_mono c0 TMP_92 
-n H0 TMP_94 H7) in (let H8 \def (eq_ind C TMP_87 TMP_88 H0 TMP_90 TMP_95) in 
-(let TMP_96 \def (\lambda (e: C).(match e with [(CSort _) \Rightarrow d | 
-(CHead c1 _ _) \Rightarrow c1])) in (let TMP_97 \def (Bind Abst) in (let 
-TMP_98 \def (CHead d TMP_97 u0) in (let TMP_99 \def (Bind b) in (let TMP_100 
-\def (CHead d0 TMP_99 v) in (let TMP_101 \def (Bind Abst) in (let TMP_102 
-\def (CHead d TMP_101 u0) in (let TMP_103 \def (Bind b) in (let TMP_104 \def 
-(CHead d0 TMP_103 v) in (let TMP_105 \def (getl_mono c0 TMP_102 n H0 TMP_104 
-H7) in (let H9 \def (f_equal C C TMP_96 TMP_98 TMP_100 TMP_105) in (let 
-TMP_106 \def (\lambda (e: C).(match e with [(CSort _) \Rightarrow Abst | 
-(CHead _ k _) \Rightarrow (match k with [(Bind b0) \Rightarrow b0 | (Flat _) 
-\Rightarrow Abst])])) in (let TMP_107 \def (Bind Abst) in (let TMP_108 \def 
-(CHead d TMP_107 u0) in (let TMP_109 \def (Bind b) in (let TMP_110 \def 
-(CHead d0 TMP_109 v) in (let TMP_111 \def (Bind Abst) in (let TMP_112 \def 
-(CHead d TMP_111 u0) in (let TMP_113 \def (Bind b) in (let TMP_114 \def 
-(CHead d0 TMP_113 v) in (let TMP_115 \def (getl_mono c0 TMP_112 n H0 TMP_114 
-H7) in (let H10 \def (f_equal C B TMP_106 TMP_108 TMP_110 TMP_115) in (let 
-TMP_116 \def (\lambda (e: C).(match e with [(CSort _) \Rightarrow u0 | (CHead 
-_ _ t2) \Rightarrow t2])) in (let TMP_117 \def (Bind Abst) in (let TMP_118 
-\def (CHead d TMP_117 u0) in (let TMP_119 \def (Bind b) in (let TMP_120 \def 
-(CHead d0 TMP_119 v) in (let TMP_121 \def (Bind Abst) in (let TMP_122 \def 
-(CHead d TMP_121 u0) in (let TMP_123 \def (Bind b) in (let TMP_124 \def 
-(CHead d0 TMP_123 v) in (let TMP_125 \def (getl_mono c0 TMP_122 n H0 TMP_124 
-H7) in (let H11 \def (f_equal C T TMP_116 TMP_118 TMP_120 TMP_125) in (let 
-TMP_142 \def (\lambda (H12: (eq B Abst b)).(\lambda (H13: (eq C d d0)).(let 
-TMP_128 \def (\lambda (t2: T).(let TMP_126 \def (Bind b) in (let TMP_127 \def 
-(CHead d0 TMP_126 t2) in (getl n c0 TMP_127)))) in (let H14 \def (eq_ind_r T 
-v TMP_128 H8 u0 H11) in (let TMP_130 \def (\lambda (t2: T).(let TMP_129 \def 
-(\lambda (w: T).(ty3 g d0 t2 w)) in (ex T TMP_129))) in (let TMP_133 \def 
-(\lambda (c1: C).(let TMP_131 \def (Bind b) in (let TMP_132 \def (CHead c1 
-TMP_131 u0) in (getl n c0 TMP_132)))) in (let H15 \def (eq_ind_r C d0 TMP_133 
-H14 d H13) in (let TMP_135 \def (\lambda (c1: C).(let TMP_134 \def (\lambda 
-(w: T).(ty3 g c1 u0 w)) in (ex T TMP_134))) in (let TMP_138 \def (\lambda 
-(b0: B).(let TMP_136 \def (Bind b0) in (let TMP_137 \def (CHead d TMP_136 u0) 
-in (getl n c0 TMP_137)))) in (let H16 \def (eq_ind_r B b TMP_138 H15 Abst 
-H12) in (let TMP_139 \def (\lambda (w: T).(ty3 g d u0 w)) in (let TMP_140 
-\def (ex_intro T TMP_139 t0 H1) in (let TMP_141 \def (eq_ind C d TMP_135 
-TMP_140 d0 H13) in (eq_ind T u0 TMP_130 TMP_141 v H11)))))))))))))) in (let 
-TMP_143 \def (TMP_142 H10) in (TMP_143 
-H9))))))))))))))))))))))))))))))))))))))))))))))))))) in (let TMP_145 \def 
-(subst0_gen_lref v0 t1 i n H3) in (land_ind TMP_77 TMP_80 TMP_82 TMP_144 
-TMP_145))))))))))))))))))))))))) in (let TMP_205 \def (\lambda (c0: 
-C).(\lambda (u0: T).(\lambda (t0: T).(\lambda (_: (ty3 g c0 u0 t0)).(\lambda 
-(H1: ((\forall (v0: T).(\forall (t1: T).(\forall (i: nat).((subst0 i v0 u0 
-t1) \to (\forall (b: B).(\forall (d: C).(\forall (v: T).((getl i c0 (CHead d 
-(Bind b) v)) \to (ex T (\lambda (w: T).(ty3 g d v w))))))))))))).(\lambda (b: 
-B).(\lambda (t1: T).(\lambda (t2: T).(\lambda (_: (ty3 g (CHead c0 (Bind b) 
-u0) t1 t2)).(\lambda (H3: ((\forall (v0: T).(\forall (t3: T).(\forall (i: 
-nat).((subst0 i v0 t1 t3) \to (\forall (b0: B).(\forall (d: C).(\forall (v: 
-T).((getl i (CHead c0 (Bind b) u0) (CHead d (Bind b0) v)) \to (ex T (\lambda 
-(w: T).(ty3 g d v w))))))))))))).(\lambda (v0: T).(\lambda (t3: T).(\lambda 
-(i: nat).(\lambda (H4: (subst0 i v0 (THead (Bind b) u0 t1) t3)).(\lambda (b0: 
-B).(\lambda (d: C).(\lambda (v: T).(\lambda (H5: (getl i c0 (CHead d (Bind 
-b0) v))).(let TMP_149 \def (\lambda (u2: T).(let TMP_147 \def (Bind b) in 
-(let TMP_148 \def (THead TMP_147 u2 t1) in (eq T t3 TMP_148)))) in (let 
-TMP_150 \def (\lambda (u2: T).(subst0 i v0 u0 u2)) in (let TMP_151 \def (ex2 
-T TMP_149 TMP_150) in (let TMP_154 \def (\lambda (t4: T).(let TMP_152 \def 
-(Bind b) in (let TMP_153 \def (THead TMP_152 u0 t4) in (eq T t3 TMP_153)))) 
-in (let TMP_157 \def (\lambda (t4: T).(let TMP_155 \def (Bind b) in (let 
-TMP_156 \def (s TMP_155 i) in (subst0 TMP_156 v0 t1 t4)))) in (let TMP_158 
-\def (ex2 T TMP_154 TMP_157) in (let TMP_161 \def (\lambda (u2: T).(\lambda 
-(t4: T).(let TMP_159 \def (Bind b) in (let TMP_160 \def (THead TMP_159 u2 t4) 
-in (eq T t3 TMP_160))))) in (let TMP_162 \def (\lambda (u2: T).(\lambda (_: 
-T).(subst0 i v0 u0 u2))) in (let TMP_165 \def (\lambda (_: T).(\lambda (t4: 
-T).(let TMP_163 \def (Bind b) in (let TMP_164 \def (s TMP_163 i) in (subst0 
-TMP_164 v0 t1 t4))))) in (let TMP_166 \def (ex3_2 T T TMP_161 TMP_162 
-TMP_165) in (let TMP_167 \def (\lambda (w: T).(ty3 g d v w)) in (let TMP_168 
-\def (ex T TMP_167) in (let TMP_176 \def (\lambda (H6: (ex2 T (\lambda (u2: 
-T).(eq T t3 (THead (Bind b) u2 t1))) (\lambda (u2: T).(subst0 i v0 u0 
-u2)))).(let TMP_171 \def (\lambda (u2: T).(let TMP_169 \def (Bind b) in (let 
-TMP_170 \def (THead TMP_169 u2 t1) in (eq T t3 TMP_170)))) in (let TMP_172 
-\def (\lambda (u2: T).(subst0 i v0 u0 u2)) in (let TMP_173 \def (\lambda (w: 
-T).(ty3 g d v w)) in (let TMP_174 \def (ex T TMP_173) in (let TMP_175 \def 
-(\lambda (x: T).(\lambda (_: (eq T t3 (THead (Bind b) x t1))).(\lambda (H8: 
-(subst0 i v0 u0 x)).(H1 v0 x i H8 b0 d v H5)))) in (ex2_ind T TMP_171 TMP_172 
-TMP_174 TMP_175 H6))))))) in (let TMP_191 \def (\lambda (H6: (ex2 T (\lambda 
-(t4: T).(eq T t3 (THead (Bind b) u0 t4))) (\lambda (t4: T).(subst0 (s (Bind 
-b) i) v0 t1 t4)))).(let TMP_179 \def (\lambda (t4: T).(let TMP_177 \def (Bind 
-b) in (let TMP_178 \def (THead TMP_177 u0 t4) in (eq T t3 TMP_178)))) in (let 
-TMP_182 \def (\lambda (t4: T).(let TMP_180 \def (Bind b) in (let TMP_181 \def 
-(s TMP_180 i) in (subst0 TMP_181 v0 t1 t4)))) in (let TMP_183 \def (\lambda 
-(w: T).(ty3 g d v w)) in (let TMP_184 \def (ex T TMP_183) in (let TMP_190 
-\def (\lambda (x: T).(\lambda (_: (eq T t3 (THead (Bind b) u0 x))).(\lambda 
-(H8: (subst0 (s (Bind b) i) v0 t1 x)).(let TMP_185 \def (S i) in (let TMP_186 
-\def (Bind b) in (let TMP_187 \def (Bind b0) in (let TMP_188 \def (CHead d 
-TMP_187 v) in (let TMP_189 \def (getl_head TMP_186 i c0 TMP_188 H5 u0) in (H3 
-v0 x TMP_185 H8 b0 d v TMP_189))))))))) in (ex2_ind T TMP_179 TMP_182 TMP_184 
-TMP_190 H6))))))) in (let TMP_202 \def (\lambda (H6: (ex3_2 T T (\lambda (u2: 
-T).(\lambda (t4: T).(eq T t3 (THead (Bind b) u2 t4)))) (\lambda (u2: 
+i c0 (CHead d0 (Bind b) v))).(land_ind (eq nat n i) (eq T t1 (lift (S n) O 
+v0)) (ex T (\lambda (w: T).(ty3 g d0 v w))) (\lambda (H5: (eq nat n 
+i)).(\lambda (_: (eq T t1 (lift (S n) O v0))).(let H7 \def (eq_ind_r nat i 
+(\lambda (n0: nat).(getl n0 c0 (CHead d0 (Bind b) v))) H4 n H5) in (let H8 
+\def (eq_ind C (CHead d (Bind Abst) u0) (\lambda (c1: C).(getl n c0 c1)) H0 
+(CHead d0 (Bind b) v) (getl_mono c0 (CHead d (Bind Abst) u0) n H0 (CHead d0 
+(Bind b) v) H7)) in (let H9 \def (f_equal C C (\lambda (e: C).(match e with 
+[(CSort _) \Rightarrow d | (CHead c1 _ _) \Rightarrow c1])) (CHead d (Bind 
+Abst) u0) (CHead d0 (Bind b) v) (getl_mono c0 (CHead d (Bind Abst) u0) n H0 
+(CHead d0 (Bind b) v) H7)) in ((let H10 \def (f_equal C B (\lambda (e: 
+C).(match e with [(CSort _) \Rightarrow Abst | (CHead _ k _) \Rightarrow 
+(match k with [(Bind b0) \Rightarrow b0 | (Flat _) \Rightarrow Abst])])) 
+(CHead d (Bind Abst) u0) (CHead d0 (Bind b) v) (getl_mono c0 (CHead d (Bind 
+Abst) u0) n H0 (CHead d0 (Bind b) v) H7)) in ((let H11 \def (f_equal C T 
+(\lambda (e: C).(match e with [(CSort _) \Rightarrow u0 | (CHead _ _ t2) 
+\Rightarrow t2])) (CHead d (Bind Abst) u0) (CHead d0 (Bind b) v) (getl_mono 
+c0 (CHead d (Bind Abst) u0) n H0 (CHead d0 (Bind b) v) H7)) in (\lambda (H12: 
+(eq B Abst b)).(\lambda (H13: (eq C d d0)).(let H14 \def (eq_ind_r T v 
+(\lambda (t2: T).(getl n c0 (CHead d0 (Bind b) t2))) H8 u0 H11) in (eq_ind T 
+u0 (\lambda (t2: T).(ex T (\lambda (w: T).(ty3 g d0 t2 w)))) (let H15 \def 
+(eq_ind_r C d0 (\lambda (c1: C).(getl n c0 (CHead c1 (Bind b) u0))) H14 d 
+H13) in (eq_ind C d (\lambda (c1: C).(ex T (\lambda (w: T).(ty3 g c1 u0 w)))) 
+(let H16 \def (eq_ind_r B b (\lambda (b0: B).(getl n c0 (CHead d (Bind b0) 
+u0))) H15 Abst H12) in (ex_intro T (\lambda (w: T).(ty3 g d u0 w)) t0 H1)) d0 
+H13)) v H11))))) H10)) H9)))))) (subst0_gen_lref v0 t1 i n 
+H3)))))))))))))))))) (\lambda (c0: C).(\lambda (u0: T).(\lambda (t0: 
+T).(\lambda (_: (ty3 g c0 u0 t0)).(\lambda (H1: ((\forall (v0: T).(\forall 
+(t1: T).(\forall (i: nat).((subst0 i v0 u0 t1) \to (\forall (b: B).(\forall 
+(d: C).(\forall (v: T).((getl i c0 (CHead d (Bind b) v)) \to (ex T (\lambda 
+(w: T).(ty3 g d v w))))))))))))).(\lambda (b: B).(\lambda (t1: T).(\lambda 
+(t2: T).(\lambda (_: (ty3 g (CHead c0 (Bind b) u0) t1 t2)).(\lambda (H3: 
+((\forall (v0: T).(\forall (t3: T).(\forall (i: nat).((subst0 i v0 t1 t3) \to 
+(\forall (b0: B).(\forall (d: C).(\forall (v: T).((getl i (CHead c0 (Bind b) 
+u0) (CHead d (Bind b0) v)) \to (ex T (\lambda (w: T).(ty3 g d v 
+w))))))))))))).(\lambda (v0: T).(\lambda (t3: T).(\lambda (i: nat).(\lambda 
+(H4: (subst0 i v0 (THead (Bind b) u0 t1) t3)).(\lambda (b0: B).(\lambda (d: 
+C).(\lambda (v: T).(\lambda (H5: (getl i c0 (CHead d (Bind b0) v))).(or3_ind 
+(ex2 T (\lambda (u2: T).(eq T t3 (THead (Bind b) u2 t1))) (\lambda (u2: 
+T).(subst0 i v0 u0 u2))) (ex2 T (\lambda (t4: T).(eq T t3 (THead (Bind b) u0 
+t4))) (\lambda (t4: T).(subst0 (s (Bind b) i) v0 t1 t4))) (ex3_2 T T (\lambda 
+(u2: T).(\lambda (t4: T).(eq T t3 (THead (Bind b) u2 t4)))) (\lambda (u2: 
 T).(\lambda (_: T).(subst0 i v0 u0 u2))) (\lambda (_: T).(\lambda (t4: 
-T).(subst0 (s (Bind b) i) v0 t1 t4))))).(let TMP_194 \def (\lambda (u2: 
-T).(\lambda (t4: T).(let TMP_192 \def (Bind b) in (let TMP_193 \def (THead 
-TMP_192 u2 t4) in (eq T t3 TMP_193))))) in (let TMP_195 \def (\lambda (u2: 
-T).(\lambda (_: T).(subst0 i v0 u0 u2))) in (let TMP_198 \def (\lambda (_: 
-T).(\lambda (t4: T).(let TMP_196 \def (Bind b) in (let TMP_197 \def (s 
-TMP_196 i) in (subst0 TMP_197 v0 t1 t4))))) in (let TMP_199 \def (\lambda (w: 
-T).(ty3 g d v w)) in (let TMP_200 \def (ex T TMP_199) in (let TMP_201 \def 
-(\lambda (x0: T).(\lambda (x1: T).(\lambda (_: (eq T t3 (THead (Bind b) x0 
-x1))).(\lambda (H8: (subst0 i v0 u0 x0)).(\lambda (_: (subst0 (s (Bind b) i) 
-v0 t1 x1)).(H1 v0 x0 i H8 b0 d v H5)))))) in (ex3_2_ind T T TMP_194 TMP_195 
-TMP_198 TMP_200 TMP_201 H6)))))))) in (let TMP_203 \def (Bind b) in (let 
-TMP_204 \def (subst0_gen_head TMP_203 v0 u0 t1 t3 i H4) in (or3_ind TMP_151 
-TMP_158 TMP_166 TMP_168 TMP_176 TMP_191 TMP_202 
-TMP_204)))))))))))))))))))))))))))))))))))) in (let TMP_263 \def (\lambda 
-(c0: C).(\lambda (w: T).(\lambda (u0: T).(\lambda (_: (ty3 g c0 w 
+T).(subst0 (s (Bind b) i) v0 t1 t4)))) (ex T (\lambda (w: T).(ty3 g d v w))) 
+(\lambda (H6: (ex2 T (\lambda (u2: T).(eq T t3 (THead (Bind b) u2 t1))) 
+(\lambda (u2: T).(subst0 i v0 u0 u2)))).(ex2_ind T (\lambda (u2: T).(eq T t3 
+(THead (Bind b) u2 t1))) (\lambda (u2: T).(subst0 i v0 u0 u2)) (ex T (\lambda 
+(w: T).(ty3 g d v w))) (\lambda (x: T).(\lambda (_: (eq T t3 (THead (Bind b) 
+x t1))).(\lambda (H8: (subst0 i v0 u0 x)).(H1 v0 x i H8 b0 d v H5)))) H6)) 
+(\lambda (H6: (ex2 T (\lambda (t4: T).(eq T t3 (THead (Bind b) u0 t4))) 
+(\lambda (t4: T).(subst0 (s (Bind b) i) v0 t1 t4)))).(ex2_ind T (\lambda (t4: 
+T).(eq T t3 (THead (Bind b) u0 t4))) (\lambda (t4: T).(subst0 (s (Bind b) i) 
+v0 t1 t4)) (ex T (\lambda (w: T).(ty3 g d v w))) (\lambda (x: T).(\lambda (_: 
+(eq T t3 (THead (Bind b) u0 x))).(\lambda (H8: (subst0 (s (Bind b) i) v0 t1 
+x)).(H3 v0 x (S i) H8 b0 d v (getl_head (Bind b) i c0 (CHead d (Bind b0) v) 
+H5 u0))))) H6)) (\lambda (H6: (ex3_2 T T (\lambda (u2: T).(\lambda (t4: 
+T).(eq T t3 (THead (Bind b) u2 t4)))) (\lambda (u2: T).(\lambda (_: 
+T).(subst0 i v0 u0 u2))) (\lambda (_: T).(\lambda (t4: T).(subst0 (s (Bind b) 
+i) v0 t1 t4))))).(ex3_2_ind T T (\lambda (u2: T).(\lambda (t4: T).(eq T t3 
+(THead (Bind b) u2 t4)))) (\lambda (u2: T).(\lambda (_: T).(subst0 i v0 u0 
+u2))) (\lambda (_: T).(\lambda (t4: T).(subst0 (s (Bind b) i) v0 t1 t4))) (ex 
+T (\lambda (w: T).(ty3 g d v w))) (\lambda (x0: T).(\lambda (x1: T).(\lambda 
+(_: (eq T t3 (THead (Bind b) x0 x1))).(\lambda (H8: (subst0 i v0 u0 
+x0)).(\lambda (_: (subst0 (s (Bind b) i) v0 t1 x1)).(H1 v0 x0 i H8 b0 d v 
+H5)))))) H6)) (subst0_gen_head (Bind b) v0 u0 t1 t3 i H4)))))))))))))))))))) 
+(\lambda (c0: C).(\lambda (w: T).(\lambda (u0: T).(\lambda (_: (ty3 g c0 w 
 u0)).(\lambda (H1: ((\forall (v0: T).(\forall (t0: T).(\forall (i: 
 nat).((subst0 i v0 w t0) \to (\forall (b: B).(\forall (d: C).(\forall (v: 
 T).((getl i c0 (CHead d (Bind b) v)) \to (ex T (\lambda (w0: T).(ty3 g d v 
@@ -1110,116 +599,71 @@ C).(\forall (v1: T).((getl i c0 (CHead d (Bind b) v1)) \to (ex T (\lambda
 (w0: T).(ty3 g d v1 w0))))))))))))).(\lambda (v0: T).(\lambda (t1: 
 T).(\lambda (i: nat).(\lambda (H4: (subst0 i v0 (THead (Flat Appl) w v) 
 t1)).(\lambda (b: B).(\lambda (d: C).(\lambda (v1: T).(\lambda (H5: (getl i 
-c0 (CHead d (Bind b) v1))).(let TMP_208 \def (\lambda (u2: T).(let TMP_206 
-\def (Flat Appl) in (let TMP_207 \def (THead TMP_206 u2 v) in (eq T t1 
-TMP_207)))) in (let TMP_209 \def (\lambda (u2: T).(subst0 i v0 w u2)) in (let 
-TMP_210 \def (ex2 T TMP_208 TMP_209) in (let TMP_213 \def (\lambda (t2: 
-T).(let TMP_211 \def (Flat Appl) in (let TMP_212 \def (THead TMP_211 w t2) in 
-(eq T t1 TMP_212)))) in (let TMP_216 \def (\lambda (t2: T).(let TMP_214 \def 
-(Flat Appl) in (let TMP_215 \def (s TMP_214 i) in (subst0 TMP_215 v0 v t2)))) 
-in (let TMP_217 \def (ex2 T TMP_213 TMP_216) in (let TMP_220 \def (\lambda 
-(u2: T).(\lambda (t2: T).(let TMP_218 \def (Flat Appl) in (let TMP_219 \def 
-(THead TMP_218 u2 t2) in (eq T t1 TMP_219))))) in (let TMP_221 \def (\lambda 
-(u2: T).(\lambda (_: T).(subst0 i v0 w u2))) in (let TMP_224 \def (\lambda 
-(_: T).(\lambda (t2: T).(let TMP_222 \def (Flat Appl) in (let TMP_223 \def (s 
-TMP_222 i) in (subst0 TMP_223 v0 v t2))))) in (let TMP_225 \def (ex3_2 T T 
-TMP_220 TMP_221 TMP_224) in (let TMP_226 \def (\lambda (w0: T).(ty3 g d v1 
-w0)) in (let TMP_227 \def (ex T TMP_226) in (let TMP_235 \def (\lambda (H6: 
-(ex2 T (\lambda (u2: T).(eq T t1 (THead (Flat Appl) u2 v))) (\lambda (u2: 
-T).(subst0 i v0 w u2)))).(let TMP_230 \def (\lambda (u2: T).(let TMP_228 \def 
-(Flat Appl) in (let TMP_229 \def (THead TMP_228 u2 v) in (eq T t1 TMP_229)))) 
-in (let TMP_231 \def (\lambda (u2: T).(subst0 i v0 w u2)) in (let TMP_232 
-\def (\lambda (w0: T).(ty3 g d v1 w0)) in (let TMP_233 \def (ex T TMP_232) in 
-(let TMP_234 \def (\lambda (x: T).(\lambda (_: (eq T t1 (THead (Flat Appl) x 
-v))).(\lambda (H8: (subst0 i v0 w x)).(H1 v0 x i H8 b d v1 H5)))) in (ex2_ind 
-T TMP_230 TMP_231 TMP_233 TMP_234 H6))))))) in (let TMP_247 \def (\lambda 
-(H6: (ex2 T (\lambda (t2: T).(eq T t1 (THead (Flat Appl) w t2))) (\lambda 
-(t2: T).(subst0 (s (Flat Appl) i) v0 v t2)))).(let TMP_238 \def (\lambda (t2: 
-T).(let TMP_236 \def (Flat Appl) in (let TMP_237 \def (THead TMP_236 w t2) in 
-(eq T t1 TMP_237)))) in (let TMP_241 \def (\lambda (t2: T).(let TMP_239 \def 
-(Flat Appl) in (let TMP_240 \def (s TMP_239 i) in (subst0 TMP_240 v0 v t2)))) 
-in (let TMP_242 \def (\lambda (w0: T).(ty3 g d v1 w0)) in (let TMP_243 \def 
-(ex T TMP_242) in (let TMP_246 \def (\lambda (x: T).(\lambda (_: (eq T t1 
+c0 (CHead d (Bind b) v1))).(or3_ind (ex2 T (\lambda (u2: T).(eq T t1 (THead 
+(Flat Appl) u2 v))) (\lambda (u2: T).(subst0 i v0 w u2))) (ex2 T (\lambda 
+(t2: T).(eq T t1 (THead (Flat Appl) w t2))) (\lambda (t2: T).(subst0 (s (Flat 
+Appl) i) v0 v t2))) (ex3_2 T T (\lambda (u2: T).(\lambda (t2: T).(eq T t1 
+(THead (Flat Appl) u2 t2)))) (\lambda (u2: T).(\lambda (_: T).(subst0 i v0 w 
+u2))) (\lambda (_: T).(\lambda (t2: T).(subst0 (s (Flat Appl) i) v0 v t2)))) 
+(ex T (\lambda (w0: T).(ty3 g d v1 w0))) (\lambda (H6: (ex2 T (\lambda (u2: 
+T).(eq T t1 (THead (Flat Appl) u2 v))) (\lambda (u2: T).(subst0 i v0 w 
+u2)))).(ex2_ind T (\lambda (u2: T).(eq T t1 (THead (Flat Appl) u2 v))) 
+(\lambda (u2: T).(subst0 i v0 w u2)) (ex T (\lambda (w0: T).(ty3 g d v1 w0))) 
+(\lambda (x: T).(\lambda (_: (eq T t1 (THead (Flat Appl) x v))).(\lambda (H8: 
+(subst0 i v0 w x)).(H1 v0 x i H8 b d v1 H5)))) H6)) (\lambda (H6: (ex2 T 
+(\lambda (t2: T).(eq T t1 (THead (Flat Appl) w t2))) (\lambda (t2: T).(subst0 
+(s (Flat Appl) i) v0 v t2)))).(ex2_ind T (\lambda (t2: T).(eq T t1 (THead 
+(Flat Appl) w t2))) (\lambda (t2: T).(subst0 (s (Flat Appl) i) v0 v t2)) (ex 
+T (\lambda (w0: T).(ty3 g d v1 w0))) (\lambda (x: T).(\lambda (_: (eq T t1 
 (THead (Flat Appl) w x))).(\lambda (H8: (subst0 (s (Flat Appl) i) v0 v 
-x)).(let TMP_244 \def (Flat Appl) in (let TMP_245 \def (s TMP_244 i) in (H3 
-v0 x TMP_245 H8 b d v1 H5)))))) in (ex2_ind T TMP_238 TMP_241 TMP_243 TMP_246 
-H6))))))) in (let TMP_260 \def (\lambda (H6: (ex3_2 T T (\lambda (u2: 
-T).(\lambda (t2: T).(eq T t1 (THead (Flat Appl) u2 t2)))) (\lambda (u2: 
-T).(\lambda (_: T).(subst0 i v0 w u2))) (\lambda (_: T).(\lambda (t2: 
-T).(subst0 (s (Flat Appl) i) v0 v t2))))).(let TMP_250 \def (\lambda (u2: 
-T).(\lambda (t2: T).(let TMP_248 \def (Flat Appl) in (let TMP_249 \def (THead 
-TMP_248 u2 t2) in (eq T t1 TMP_249))))) in (let TMP_251 \def (\lambda (u2: 
-T).(\lambda (_: T).(subst0 i v0 w u2))) in (let TMP_254 \def (\lambda (_: 
-T).(\lambda (t2: T).(let TMP_252 \def (Flat Appl) in (let TMP_253 \def (s 
-TMP_252 i) in (subst0 TMP_253 v0 v t2))))) in (let TMP_255 \def (\lambda (w0: 
-T).(ty3 g d v1 w0)) in (let TMP_256 \def (ex T TMP_255) in (let TMP_259 \def 
-(\lambda (x0: T).(\lambda (x1: T).(\lambda (_: (eq T t1 (THead (Flat Appl) x0 
-x1))).(\lambda (_: (subst0 i v0 w x0)).(\lambda (H9: (subst0 (s (Flat Appl) 
-i) v0 v x1)).(let TMP_257 \def (Flat Appl) in (let TMP_258 \def (s TMP_257 i) 
-in (H3 v0 x1 TMP_258 H9 b d v1 H5)))))))) in (ex3_2_ind T T TMP_250 TMP_251 
-TMP_254 TMP_256 TMP_259 H6)))))))) in (let TMP_261 \def (Flat Appl) in (let 
-TMP_262 \def (subst0_gen_head TMP_261 v0 w v t1 i H4) in (or3_ind TMP_210 
-TMP_217 TMP_225 TMP_227 TMP_235 TMP_247 TMP_260 
-TMP_262))))))))))))))))))))))))))))))))))) in (let TMP_319 \def (\lambda (c0: 
-C).(\lambda (t1: T).(\lambda (t2: T).(\lambda (_: (ty3 g c0 t1 t2)).(\lambda 
-(H1: ((\forall (v0: T).(\forall (t0: T).(\forall (i: nat).((subst0 i v0 t1 
-t0) \to (\forall (b: B).(\forall (d: C).(\forall (v: T).((getl i c0 (CHead d 
-(Bind b) v)) \to (ex T (\lambda (w: T).(ty3 g d v w))))))))))))).(\lambda 
-(t0: T).(\lambda (_: (ty3 g c0 t2 t0)).(\lambda (H3: ((\forall (v0: 
-T).(\forall (t3: T).(\forall (i: nat).((subst0 i v0 t2 t3) \to (\forall (b: 
-B).(\forall (d: C).(\forall (v: T).((getl i c0 (CHead d (Bind b) v)) \to (ex 
-T (\lambda (w: T).(ty3 g d v w))))))))))))).(\lambda (v0: T).(\lambda (t3: 
-T).(\lambda (i: nat).(\lambda (H4: (subst0 i v0 (THead (Flat Cast) t2 t1) 
-t3)).(\lambda (b: B).(\lambda (d: C).(\lambda (v: T).(\lambda (H5: (getl i c0 
-(CHead d (Bind b) v))).(let TMP_266 \def (\lambda (u2: T).(let TMP_264 \def 
-(Flat Cast) in (let TMP_265 \def (THead TMP_264 u2 t1) in (eq T t3 
-TMP_265)))) in (let TMP_267 \def (\lambda (u2: T).(subst0 i v0 t2 u2)) in 
-(let TMP_268 \def (ex2 T TMP_266 TMP_267) in (let TMP_271 \def (\lambda (t4: 
-T).(let TMP_269 \def (Flat Cast) in (let TMP_270 \def (THead TMP_269 t2 t4) 
-in (eq T t3 TMP_270)))) in (let TMP_274 \def (\lambda (t4: T).(let TMP_272 
-\def (Flat Cast) in (let TMP_273 \def (s TMP_272 i) in (subst0 TMP_273 v0 t1 
-t4)))) in (let TMP_275 \def (ex2 T TMP_271 TMP_274) in (let TMP_278 \def 
-(\lambda (u2: T).(\lambda (t4: T).(let TMP_276 \def (Flat Cast) in (let 
-TMP_277 \def (THead TMP_276 u2 t4) in (eq T t3 TMP_277))))) in (let TMP_279 
-\def (\lambda (u2: T).(\lambda (_: T).(subst0 i v0 t2 u2))) in (let TMP_282 
-\def (\lambda (_: T).(\lambda (t4: T).(let TMP_280 \def (Flat Cast) in (let 
-TMP_281 \def (s TMP_280 i) in (subst0 TMP_281 v0 t1 t4))))) in (let TMP_283 
-\def (ex3_2 T T TMP_278 TMP_279 TMP_282) in (let TMP_284 \def (\lambda (w: 
-T).(ty3 g d v w)) in (let TMP_285 \def (ex T TMP_284) in (let TMP_293 \def 
-(\lambda (H6: (ex2 T (\lambda (u2: T).(eq T t3 (THead (Flat Cast) u2 t1))) 
-(\lambda (u2: T).(subst0 i v0 t2 u2)))).(let TMP_288 \def (\lambda (u2: 
-T).(let TMP_286 \def (Flat Cast) in (let TMP_287 \def (THead TMP_286 u2 t1) 
-in (eq T t3 TMP_287)))) in (let TMP_289 \def (\lambda (u2: T).(subst0 i v0 t2 
-u2)) in (let TMP_290 \def (\lambda (w: T).(ty3 g d v w)) in (let TMP_291 \def 
-(ex T TMP_290) in (let TMP_292 \def (\lambda (x: T).(\lambda (_: (eq T t3 
-(THead (Flat Cast) x t1))).(\lambda (H8: (subst0 i v0 t2 x)).(H3 v0 x i H8 b 
-d v H5)))) in (ex2_ind T TMP_288 TMP_289 TMP_291 TMP_292 H6))))))) in (let 
-TMP_305 \def (\lambda (H6: (ex2 T (\lambda (t4: T).(eq T t3 (THead (Flat 
-Cast) t2 t4))) (\lambda (t4: T).(subst0 (s (Flat Cast) i) v0 t1 t4)))).(let 
-TMP_296 \def (\lambda (t4: T).(let TMP_294 \def (Flat Cast) in (let TMP_295 
-\def (THead TMP_294 t2 t4) in (eq T t3 TMP_295)))) in (let TMP_299 \def 
-(\lambda (t4: T).(let TMP_297 \def (Flat Cast) in (let TMP_298 \def (s 
-TMP_297 i) in (subst0 TMP_298 v0 t1 t4)))) in (let TMP_300 \def (\lambda (w: 
-T).(ty3 g d v w)) in (let TMP_301 \def (ex T TMP_300) in (let TMP_304 \def 
-(\lambda (x: T).(\lambda (_: (eq T t3 (THead (Flat Cast) t2 x))).(\lambda 
-(H8: (subst0 (s (Flat Cast) i) v0 t1 x)).(let TMP_302 \def (Flat Cast) in 
-(let TMP_303 \def (s TMP_302 i) in (H1 v0 x TMP_303 H8 b d v H5)))))) in 
-(ex2_ind T TMP_296 TMP_299 TMP_301 TMP_304 H6))))))) in (let TMP_316 \def 
+x)).(H3 v0 x (s (Flat Appl) i) H8 b d v1 H5)))) H6)) (\lambda (H6: (ex3_2 T T 
+(\lambda (u2: T).(\lambda (t2: T).(eq T t1 (THead (Flat Appl) u2 t2)))) 
+(\lambda (u2: T).(\lambda (_: T).(subst0 i v0 w u2))) (\lambda (_: 
+T).(\lambda (t2: T).(subst0 (s (Flat Appl) i) v0 v t2))))).(ex3_2_ind T T 
+(\lambda (u2: T).(\lambda (t2: T).(eq T t1 (THead (Flat Appl) u2 t2)))) 
+(\lambda (u2: T).(\lambda (_: T).(subst0 i v0 w u2))) (\lambda (_: 
+T).(\lambda (t2: T).(subst0 (s (Flat Appl) i) v0 v t2))) (ex T (\lambda (w0: 
+T).(ty3 g d v1 w0))) (\lambda (x0: T).(\lambda (x1: T).(\lambda (_: (eq T t1 
+(THead (Flat Appl) x0 x1))).(\lambda (_: (subst0 i v0 w x0)).(\lambda (H9: 
+(subst0 (s (Flat Appl) i) v0 v x1)).(H3 v0 x1 (s (Flat Appl) i) H9 b d v1 
+H5)))))) H6)) (subst0_gen_head (Flat Appl) v0 w v t1 i H4))))))))))))))))))) 
+(\lambda (c0: C).(\lambda (t1: T).(\lambda (t2: T).(\lambda (_: (ty3 g c0 t1 
+t2)).(\lambda (H1: ((\forall (v0: T).(\forall (t0: T).(\forall (i: 
+nat).((subst0 i v0 t1 t0) \to (\forall (b: B).(\forall (d: C).(\forall (v: 
+T).((getl i c0 (CHead d (Bind b) v)) \to (ex T (\lambda (w: T).(ty3 g d v 
+w))))))))))))).(\lambda (t0: T).(\lambda (_: (ty3 g c0 t2 t0)).(\lambda (H3: 
+((\forall (v0: T).(\forall (t3: T).(\forall (i: nat).((subst0 i v0 t2 t3) \to 
+(\forall (b: B).(\forall (d: C).(\forall (v: T).((getl i c0 (CHead d (Bind b) 
+v)) \to (ex T (\lambda (w: T).(ty3 g d v w))))))))))))).(\lambda (v0: 
+T).(\lambda (t3: T).(\lambda (i: nat).(\lambda (H4: (subst0 i v0 (THead (Flat 
+Cast) t2 t1) t3)).(\lambda (b: B).(\lambda (d: C).(\lambda (v: T).(\lambda 
+(H5: (getl i c0 (CHead d (Bind b) v))).(or3_ind (ex2 T (\lambda (u2: T).(eq T 
+t3 (THead (Flat Cast) u2 t1))) (\lambda (u2: T).(subst0 i v0 t2 u2))) (ex2 T 
+(\lambda (t4: T).(eq T t3 (THead (Flat Cast) t2 t4))) (\lambda (t4: 
+T).(subst0 (s (Flat Cast) i) v0 t1 t4))) (ex3_2 T T (\lambda (u2: T).(\lambda 
+(t4: T).(eq T t3 (THead (Flat Cast) u2 t4)))) (\lambda (u2: T).(\lambda (_: 
+T).(subst0 i v0 t2 u2))) (\lambda (_: T).(\lambda (t4: T).(subst0 (s (Flat 
+Cast) i) v0 t1 t4)))) (ex T (\lambda (w: T).(ty3 g d v w))) (\lambda (H6: 
+(ex2 T (\lambda (u2: T).(eq T t3 (THead (Flat Cast) u2 t1))) (\lambda (u2: 
+T).(subst0 i v0 t2 u2)))).(ex2_ind T (\lambda (u2: T).(eq T t3 (THead (Flat 
+Cast) u2 t1))) (\lambda (u2: T).(subst0 i v0 t2 u2)) (ex T (\lambda (w: 
+T).(ty3 g d v w))) (\lambda (x: T).(\lambda (_: (eq T t3 (THead (Flat Cast) x 
+t1))).(\lambda (H8: (subst0 i v0 t2 x)).(H3 v0 x i H8 b d v H5)))) H6)) 
+(\lambda (H6: (ex2 T (\lambda (t4: T).(eq T t3 (THead (Flat Cast) t2 t4))) 
+(\lambda (t4: T).(subst0 (s (Flat Cast) i) v0 t1 t4)))).(ex2_ind T (\lambda 
+(t4: T).(eq T t3 (THead (Flat Cast) t2 t4))) (\lambda (t4: T).(subst0 (s 
+(Flat Cast) i) v0 t1 t4)) (ex T (\lambda (w: T).(ty3 g d v w))) (\lambda (x: 
+T).(\lambda (_: (eq T t3 (THead (Flat Cast) t2 x))).(\lambda (H8: (subst0 (s 
+(Flat Cast) i) v0 t1 x)).(H1 v0 x (s (Flat Cast) i) H8 b d v H5)))) H6)) 
 (\lambda (H6: (ex3_2 T T (\lambda (u2: T).(\lambda (t4: T).(eq T t3 (THead 
 (Flat Cast) u2 t4)))) (\lambda (u2: T).(\lambda (_: T).(subst0 i v0 t2 u2))) 
-(\lambda (_: T).(\lambda (t4: T).(subst0 (s (Flat Cast) i) v0 t1 t4))))).(let 
-TMP_308 \def (\lambda (u2: T).(\lambda (t4: T).(let TMP_306 \def (Flat Cast) 
-in (let TMP_307 \def (THead TMP_306 u2 t4) in (eq T t3 TMP_307))))) in (let 
-TMP_309 \def (\lambda (u2: T).(\lambda (_: T).(subst0 i v0 t2 u2))) in (let 
-TMP_312 \def (\lambda (_: T).(\lambda (t4: T).(let TMP_310 \def (Flat Cast) 
-in (let TMP_311 \def (s TMP_310 i) in (subst0 TMP_311 v0 t1 t4))))) in (let 
-TMP_313 \def (\lambda (w: T).(ty3 g d v w)) in (let TMP_314 \def (ex T 
-TMP_313) in (let TMP_315 \def (\lambda (x0: T).(\lambda (x1: T).(\lambda (_: 
-(eq T t3 (THead (Flat Cast) x0 x1))).(\lambda (H8: (subst0 i v0 t2 
+(\lambda (_: T).(\lambda (t4: T).(subst0 (s (Flat Cast) i) v0 t1 
+t4))))).(ex3_2_ind T T (\lambda (u2: T).(\lambda (t4: T).(eq T t3 (THead 
+(Flat Cast) u2 t4)))) (\lambda (u2: T).(\lambda (_: T).(subst0 i v0 t2 u2))) 
+(\lambda (_: T).(\lambda (t4: T).(subst0 (s (Flat Cast) i) v0 t1 t4))) (ex T 
+(\lambda (w: T).(ty3 g d v w))) (\lambda (x0: T).(\lambda (x1: T).(\lambda 
+(_: (eq T t3 (THead (Flat Cast) x0 x1))).(\lambda (H8: (subst0 i v0 t2 
 x0)).(\lambda (_: (subst0 (s (Flat Cast) i) v0 t1 x1)).(H3 v0 x0 i H8 b d v 
-H5)))))) in (ex3_2_ind T T TMP_308 TMP_309 TMP_312 TMP_314 TMP_315 H6)))))))) 
-in (let TMP_317 \def (Flat Cast) in (let TMP_318 \def (subst0_gen_head 
-TMP_317 v0 t2 t1 t3 i H4) in (or3_ind TMP_268 TMP_275 TMP_283 TMP_285 TMP_293 
-TMP_305 TMP_316 TMP_318)))))))))))))))))))))))))))))))))) in (ty3_ind g TMP_2 
-TMP_3 TMP_6 TMP_76 TMP_146 TMP_205 TMP_263 TMP_319 c t u H))))))))))))).
+H5)))))) H6)) (subst0_gen_head (Flat Cast) v0 t2 t1 t3 i H4)))))))))))))))))) 
+c t u H))))).
 
index 12d8e1d5c1e73abb41b593f6773b623c3af04421..390c22bae44ead639fedfe91be6abe93355ae414 100644 (file)
@@ -23,371 +23,208 @@ theorem ty3_sty0:
 t1) \to (\forall (t2: T).((sty0 g c u t2) \to (ty3 g c u t2)))))))
 \def
  \lambda (g: G).(\lambda (c: C).(\lambda (u: T).(\lambda (t1: T).(\lambda (H: 
-(ty3 g c u t1)).(let TMP_1 \def (\lambda (c0: C).(\lambda (t: T).(\lambda (_: 
-T).(\forall (t2: T).((sty0 g c0 t t2) \to (ty3 g c0 t t2)))))) in (let TMP_2 
-\def (\lambda (c0: C).(\lambda (t2: T).(\lambda (t: T).(\lambda (_: (ty3 g c0 
-t2 t)).(\lambda (_: ((\forall (t3: T).((sty0 g c0 t2 t3) \to (ty3 g c0 t2 
-t3))))).(\lambda (u0: T).(\lambda (t3: T).(\lambda (_: (ty3 g c0 u0 
-t3)).(\lambda (H3: ((\forall (t4: T).((sty0 g c0 u0 t4) \to (ty3 g c0 u0 
-t4))))).(\lambda (_: (pc3 c0 t3 t2)).(\lambda (t0: T).(\lambda (H5: (sty0 g 
-c0 u0 t0)).(H3 t0 H5))))))))))))) in (let TMP_11 \def (\lambda (c0: 
-C).(\lambda (m: nat).(\lambda (t2: T).(\lambda (H0: (sty0 g c0 (TSort m) 
-t2)).(let H_y \def (sty0_gen_sort g c0 t2 m H0) in (let TMP_3 \def (\lambda 
-(e: T).e) in (let TMP_4 \def (next g m) in (let TMP_5 \def (TSort TMP_4) in 
-(let H1 \def (f_equal T T TMP_3 t2 TMP_5 H_y) in (let TMP_6 \def (next g m) 
-in (let TMP_7 \def (TSort TMP_6) in (let TMP_9 \def (\lambda (t: T).(let 
-TMP_8 \def (TSort m) in (ty3 g c0 TMP_8 t))) in (let TMP_10 \def (ty3_sort g 
-c0 m) in (eq_ind_r T TMP_7 TMP_9 TMP_10 t2 H1)))))))))))))) in (let TMP_132 
-\def (\lambda (n: nat).(\lambda (c0: C).(\lambda (d: C).(\lambda (u0: 
-T).(\lambda (H0: (getl n c0 (CHead d (Bind Abbr) u0))).(\lambda (t: 
-T).(\lambda (_: (ty3 g d u0 t)).(\lambda (H2: ((\forall (t2: T).((sty0 g d u0 
-t2) \to (ty3 g d u0 t2))))).(\lambda (t2: T).(\lambda (H3: (sty0 g c0 (TLRef 
-n) t2)).(let H_x \def (sty0_gen_lref g c0 t2 n H3) in (let H4 \def H_x in 
-(let TMP_14 \def (\lambda (e: C).(\lambda (u1: T).(\lambda (_: T).(let TMP_12 
-\def (Bind Abbr) in (let TMP_13 \def (CHead e TMP_12 u1) in (getl n c0 
-TMP_13)))))) in (let TMP_15 \def (\lambda (e: C).(\lambda (u1: T).(\lambda 
-(t0: T).(sty0 g e u1 t0)))) in (let TMP_18 \def (\lambda (_: C).(\lambda (_: 
-T).(\lambda (t0: T).(let TMP_16 \def (S n) in (let TMP_17 \def (lift TMP_16 O 
-t0) in (eq T t2 TMP_17)))))) in (let TMP_19 \def (ex3_3 C T T TMP_14 TMP_15 
-TMP_18) in (let TMP_22 \def (\lambda (e: C).(\lambda (u1: T).(\lambda (_: 
-T).(let TMP_20 \def (Bind Abst) in (let TMP_21 \def (CHead e TMP_20 u1) in 
-(getl n c0 TMP_21)))))) in (let TMP_23 \def (\lambda (e: C).(\lambda (u1: 
-T).(\lambda (t0: T).(sty0 g e u1 t0)))) in (let TMP_26 \def (\lambda (_: 
-C).(\lambda (u1: T).(\lambda (_: T).(let TMP_24 \def (S n) in (let TMP_25 
-\def (lift TMP_24 O u1) in (eq T t2 TMP_25)))))) in (let TMP_27 \def (ex3_3 C 
-T T TMP_22 TMP_23 TMP_26) in (let TMP_28 \def (TLRef n) in (let TMP_29 \def 
-(ty3 g c0 TMP_28 t2) in (let TMP_88 \def (\lambda (H5: (ex3_3 C T T (\lambda 
+(ty3 g c u t1)).(ty3_ind g (\lambda (c0: C).(\lambda (t: T).(\lambda (_: 
+T).(\forall (t2: T).((sty0 g c0 t t2) \to (ty3 g c0 t t2)))))) (\lambda (c0: 
+C).(\lambda (t2: T).(\lambda (t: T).(\lambda (_: (ty3 g c0 t2 t)).(\lambda 
+(_: ((\forall (t3: T).((sty0 g c0 t2 t3) \to (ty3 g c0 t2 t3))))).(\lambda 
+(u0: T).(\lambda (t3: T).(\lambda (_: (ty3 g c0 u0 t3)).(\lambda (H3: 
+((\forall (t4: T).((sty0 g c0 u0 t4) \to (ty3 g c0 u0 t4))))).(\lambda (_: 
+(pc3 c0 t3 t2)).(\lambda (t0: T).(\lambda (H5: (sty0 g c0 u0 t0)).(H3 t0 
+H5))))))))))))) (\lambda (c0: C).(\lambda (m: nat).(\lambda (t2: T).(\lambda 
+(H0: (sty0 g c0 (TSort m) t2)).(let H_y \def (sty0_gen_sort g c0 t2 m H0) in 
+(let H1 \def (f_equal T T (\lambda (e: T).e) t2 (TSort (next g m)) H_y) in 
+(eq_ind_r T (TSort (next g m)) (\lambda (t: T).(ty3 g c0 (TSort m) t)) 
+(ty3_sort g c0 m) t2 H1))))))) (\lambda (n: nat).(\lambda (c0: C).(\lambda 
+(d: C).(\lambda (u0: T).(\lambda (H0: (getl n c0 (CHead d (Bind Abbr) 
+u0))).(\lambda (t: T).(\lambda (_: (ty3 g d u0 t)).(\lambda (H2: ((\forall 
+(t2: T).((sty0 g d u0 t2) \to (ty3 g d u0 t2))))).(\lambda (t2: T).(\lambda 
+(H3: (sty0 g c0 (TLRef n) t2)).(let H_x \def (sty0_gen_lref g c0 t2 n H3) in 
+(let H4 \def H_x in (or_ind (ex3_3 C T T (\lambda (e: C).(\lambda (u1: 
+T).(\lambda (_: T).(getl n c0 (CHead e (Bind Abbr) u1))))) (\lambda (e: 
+C).(\lambda (u1: T).(\lambda (t0: T).(sty0 g e u1 t0)))) (\lambda (_: 
+C).(\lambda (_: T).(\lambda (t0: T).(eq T t2 (lift (S n) O t0)))))) (ex3_3 C 
+T T (\lambda (e: C).(\lambda (u1: T).(\lambda (_: T).(getl n c0 (CHead e 
+(Bind Abst) u1))))) (\lambda (e: C).(\lambda (u1: T).(\lambda (t0: T).(sty0 g 
+e u1 t0)))) (\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(eq T t2 (lift 
+(S n) O u1)))))) (ty3 g c0 (TLRef n) t2) (\lambda (H5: (ex3_3 C T T (\lambda 
 (e: C).(\lambda (u1: T).(\lambda (_: T).(getl n c0 (CHead e (Bind Abbr) 
 u1))))) (\lambda (e: C).(\lambda (u1: T).(\lambda (t0: T).(sty0 g e u1 t0)))) 
 (\lambda (_: C).(\lambda (_: T).(\lambda (t0: T).(eq T t2 (lift (S n) O 
-t0))))))).(let TMP_32 \def (\lambda (e: C).(\lambda (u1: T).(\lambda (_: 
-T).(let TMP_30 \def (Bind Abbr) in (let TMP_31 \def (CHead e TMP_30 u1) in 
-(getl n c0 TMP_31)))))) in (let TMP_33 \def (\lambda (e: C).(\lambda (u1: 
-T).(\lambda (t0: T).(sty0 g e u1 t0)))) in (let TMP_36 \def (\lambda (_: 
-C).(\lambda (_: T).(\lambda (t0: T).(let TMP_34 \def (S n) in (let TMP_35 
-\def (lift TMP_34 O t0) in (eq T t2 TMP_35)))))) in (let TMP_37 \def (TLRef 
-n) in (let TMP_38 \def (ty3 g c0 TMP_37 t2) in (let TMP_87 \def (\lambda (x0: 
-C).(\lambda (x1: T).(\lambda (x2: T).(\lambda (H6: (getl n c0 (CHead x0 (Bind 
-Abbr) x1))).(\lambda (H7: (sty0 g x0 x1 x2)).(\lambda (H8: (eq T t2 (lift (S 
-n) O x2))).(let TMP_39 \def (\lambda (e: T).e) in (let TMP_40 \def (S n) in 
-(let TMP_41 \def (lift TMP_40 O x2) in (let H9 \def (f_equal T T TMP_39 t2 
-TMP_41 H8) in (let TMP_42 \def (S n) in (let TMP_43 \def (lift TMP_42 O x2) 
-in (let TMP_45 \def (\lambda (t0: T).(let TMP_44 \def (TLRef n) in (ty3 g c0 
-TMP_44 t0))) in (let TMP_46 \def (Bind Abbr) in (let TMP_47 \def (CHead d 
-TMP_46 u0) in (let TMP_48 \def (\lambda (c1: C).(getl n c0 c1)) in (let 
-TMP_49 \def (Bind Abbr) in (let TMP_50 \def (CHead x0 TMP_49 x1) in (let 
-TMP_51 \def (Bind Abbr) in (let TMP_52 \def (CHead d TMP_51 u0) in (let 
-TMP_53 \def (Bind Abbr) in (let TMP_54 \def (CHead x0 TMP_53 x1) in (let 
-TMP_55 \def (getl_mono c0 TMP_52 n H0 TMP_54 H6) in (let H10 \def (eq_ind C 
-TMP_47 TMP_48 H0 TMP_50 TMP_55) in (let TMP_56 \def (\lambda (e: C).(match e 
-with [(CSort _) \Rightarrow d | (CHead c1 _ _) \Rightarrow c1])) in (let 
-TMP_57 \def (Bind Abbr) in (let TMP_58 \def (CHead d TMP_57 u0) in (let 
-TMP_59 \def (Bind Abbr) in (let TMP_60 \def (CHead x0 TMP_59 x1) in (let 
-TMP_61 \def (Bind Abbr) in (let TMP_62 \def (CHead d TMP_61 u0) in (let 
-TMP_63 \def (Bind Abbr) in (let TMP_64 \def (CHead x0 TMP_63 x1) in (let 
-TMP_65 \def (getl_mono c0 TMP_62 n H0 TMP_64 H6) in (let H11 \def (f_equal C 
-C TMP_56 TMP_58 TMP_60 TMP_65) in (let TMP_66 \def (\lambda (e: C).(match e 
-with [(CSort _) \Rightarrow u0 | (CHead _ _ t0) \Rightarrow t0])) in (let 
-TMP_67 \def (Bind Abbr) in (let TMP_68 \def (CHead d TMP_67 u0) in (let 
-TMP_69 \def (Bind Abbr) in (let TMP_70 \def (CHead x0 TMP_69 x1) in (let 
-TMP_71 \def (Bind Abbr) in (let TMP_72 \def (CHead d TMP_71 u0) in (let 
-TMP_73 \def (Bind Abbr) in (let TMP_74 \def (CHead x0 TMP_73 x1) in (let 
-TMP_75 \def (getl_mono c0 TMP_72 n H0 TMP_74 H6) in (let H12 \def (f_equal C 
-T TMP_66 TMP_68 TMP_70 TMP_75) in (let TMP_85 \def (\lambda (H13: (eq C d 
-x0)).(let TMP_78 \def (\lambda (t0: T).(let TMP_76 \def (Bind Abbr) in (let 
-TMP_77 \def (CHead x0 TMP_76 t0) in (getl n c0 TMP_77)))) in (let H14 \def 
-(eq_ind_r T x1 TMP_78 H10 u0 H12) in (let TMP_79 \def (\lambda (t0: T).(sty0 
-g x0 t0 x2)) in (let H15 \def (eq_ind_r T x1 TMP_79 H7 u0 H12) in (let TMP_82 
-\def (\lambda (c1: C).(let TMP_80 \def (Bind Abbr) in (let TMP_81 \def (CHead 
-c1 TMP_80 u0) in (getl n c0 TMP_81)))) in (let H16 \def (eq_ind_r C x0 TMP_82 
-H14 d H13) in (let TMP_83 \def (\lambda (c1: C).(sty0 g c1 u0 x2)) in (let 
-H17 \def (eq_ind_r C x0 TMP_83 H15 d H13) in (let TMP_84 \def (H2 x2 H17) in 
-(ty3_abbr g n c0 d u0 H16 x2 TMP_84))))))))))) in (let TMP_86 \def (TMP_85 
-H11) in (eq_ind_r T TMP_43 TMP_45 TMP_86 t2 
-H9))))))))))))))))))))))))))))))))))))))))))))))))) in (ex3_3_ind C T T 
-TMP_32 TMP_33 TMP_36 TMP_38 TMP_87 H5)))))))) in (let TMP_131 \def (\lambda 
-(H5: (ex3_3 C T T (\lambda (e: C).(\lambda (u1: T).(\lambda (_: T).(getl n c0 
-(CHead e (Bind Abst) u1))))) (\lambda (e: C).(\lambda (u1: T).(\lambda (t0: 
-T).(sty0 g e u1 t0)))) (\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(eq T 
-t2 (lift (S n) O u1))))))).(let TMP_91 \def (\lambda (e: C).(\lambda (u1: 
-T).(\lambda (_: T).(let TMP_89 \def (Bind Abst) in (let TMP_90 \def (CHead e 
-TMP_89 u1) in (getl n c0 TMP_90)))))) in (let TMP_92 \def (\lambda (e: 
-C).(\lambda (u1: T).(\lambda (t0: T).(sty0 g e u1 t0)))) in (let TMP_95 \def 
-(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(let TMP_93 \def (S n) in 
-(let TMP_94 \def (lift TMP_93 O u1) in (eq T t2 TMP_94)))))) in (let TMP_96 
-\def (TLRef n) in (let TMP_97 \def (ty3 g c0 TMP_96 t2) in (let TMP_130 \def 
+t0))))))).(ex3_3_ind C T T (\lambda (e: C).(\lambda (u1: T).(\lambda (_: 
+T).(getl n c0 (CHead e (Bind Abbr) u1))))) (\lambda (e: C).(\lambda (u1: 
+T).(\lambda (t0: T).(sty0 g e u1 t0)))) (\lambda (_: C).(\lambda (_: 
+T).(\lambda (t0: T).(eq T t2 (lift (S n) O t0))))) (ty3 g c0 (TLRef n) t2) 
+(\lambda (x0: C).(\lambda (x1: T).(\lambda (x2: T).(\lambda (H6: (getl n c0 
+(CHead x0 (Bind Abbr) x1))).(\lambda (H7: (sty0 g x0 x1 x2)).(\lambda (H8: 
+(eq T t2 (lift (S n) O x2))).(let H9 \def (f_equal T T (\lambda (e: T).e) t2 
+(lift (S n) O x2) H8) in (eq_ind_r T (lift (S n) O x2) (\lambda (t0: T).(ty3 
+g c0 (TLRef n) t0)) (let H10 \def (eq_ind C (CHead d (Bind Abbr) u0) (\lambda 
+(c1: C).(getl n c0 c1)) H0 (CHead x0 (Bind Abbr) x1) (getl_mono c0 (CHead d 
+(Bind Abbr) u0) n H0 (CHead x0 (Bind Abbr) x1) H6)) in (let H11 \def (f_equal 
+C C (\lambda (e: C).(match e with [(CSort _) \Rightarrow d | (CHead c1 _ _) 
+\Rightarrow c1])) (CHead d (Bind Abbr) u0) (CHead x0 (Bind Abbr) x1) 
+(getl_mono c0 (CHead d (Bind Abbr) u0) n H0 (CHead x0 (Bind Abbr) x1) H6)) in 
+((let H12 \def (f_equal C T (\lambda (e: C).(match e with [(CSort _) 
+\Rightarrow u0 | (CHead _ _ t0) \Rightarrow t0])) (CHead d (Bind Abbr) u0) 
+(CHead x0 (Bind Abbr) x1) (getl_mono c0 (CHead d (Bind Abbr) u0) n H0 (CHead 
+x0 (Bind Abbr) x1) H6)) in (\lambda (H13: (eq C d x0)).(let H14 \def 
+(eq_ind_r T x1 (\lambda (t0: T).(getl n c0 (CHead x0 (Bind Abbr) t0))) H10 u0 
+H12) in (let H15 \def (eq_ind_r T x1 (\lambda (t0: T).(sty0 g x0 t0 x2)) H7 
+u0 H12) in (let H16 \def (eq_ind_r C x0 (\lambda (c1: C).(getl n c0 (CHead c1 
+(Bind Abbr) u0))) H14 d H13) in (let H17 \def (eq_ind_r C x0 (\lambda (c1: 
+C).(sty0 g c1 u0 x2)) H15 d H13) in (ty3_abbr g n c0 d u0 H16 x2 (H2 x2 
+H17)))))))) H11))) t2 H9)))))))) H5)) (\lambda (H5: (ex3_3 C T T (\lambda (e: 
+C).(\lambda (u1: T).(\lambda (_: T).(getl n c0 (CHead e (Bind Abst) u1))))) 
+(\lambda (e: C).(\lambda (u1: T).(\lambda (t0: T).(sty0 g e u1 t0)))) 
+(\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(eq T t2 (lift (S n) O 
+u1))))))).(ex3_3_ind C T T (\lambda (e: C).(\lambda (u1: T).(\lambda (_: 
+T).(getl n c0 (CHead e (Bind Abst) u1))))) (\lambda (e: C).(\lambda (u1: 
+T).(\lambda (t0: T).(sty0 g e u1 t0)))) (\lambda (_: C).(\lambda (u1: 
+T).(\lambda (_: T).(eq T t2 (lift (S n) O u1))))) (ty3 g c0 (TLRef n) t2) 
 (\lambda (x0: C).(\lambda (x1: T).(\lambda (x2: T).(\lambda (H6: (getl n c0 
 (CHead x0 (Bind Abst) x1))).(\lambda (_: (sty0 g x0 x1 x2)).(\lambda (H8: (eq 
-T t2 (lift (S n) O x1))).(let TMP_98 \def (\lambda (e: T).e) in (let TMP_99 
-\def (S n) in (let TMP_100 \def (lift TMP_99 O x1) in (let H9 \def (f_equal T 
-T TMP_98 t2 TMP_100 H8) in (let TMP_101 \def (S n) in (let TMP_102 \def (lift 
-TMP_101 O x1) in (let TMP_104 \def (\lambda (t0: T).(let TMP_103 \def (TLRef 
-n) in (ty3 g c0 TMP_103 t0))) in (let TMP_105 \def (Bind Abbr) in (let 
-TMP_106 \def (CHead d TMP_105 u0) in (let TMP_107 \def (\lambda (c1: C).(getl 
-n c0 c1)) in (let TMP_108 \def (Bind Abst) in (let TMP_109 \def (CHead x0 
-TMP_108 x1) in (let TMP_110 \def (Bind Abbr) in (let TMP_111 \def (CHead d 
-TMP_110 u0) in (let TMP_112 \def (Bind Abst) in (let TMP_113 \def (CHead x0 
-TMP_112 x1) in (let TMP_114 \def (getl_mono c0 TMP_111 n H0 TMP_113 H6) in 
-(let H10 \def (eq_ind C TMP_106 TMP_107 H0 TMP_109 TMP_114) in (let TMP_115 
-\def (Bind Abbr) in (let TMP_116 \def (CHead d TMP_115 u0) in (let TMP_117 
-\def (\lambda (ee: C).(match ee with [(CSort _) \Rightarrow False | (CHead _ 
-k _) \Rightarrow (match k with [(Bind b) \Rightarrow (match b with [Abbr 
-\Rightarrow True | Abst \Rightarrow False | Void \Rightarrow False]) | (Flat 
-_) \Rightarrow False])])) in (let TMP_118 \def (Bind Abst) in (let TMP_119 
-\def (CHead x0 TMP_118 x1) in (let TMP_120 \def (Bind Abbr) in (let TMP_121 
-\def (CHead d TMP_120 u0) in (let TMP_122 \def (Bind Abst) in (let TMP_123 
-\def (CHead x0 TMP_122 x1) in (let TMP_124 \def (getl_mono c0 TMP_121 n H0 
-TMP_123 H6) in (let H11 \def (eq_ind C TMP_116 TMP_117 I TMP_119 TMP_124) in 
-(let TMP_125 \def (TLRef n) in (let TMP_126 \def (S n) in (let TMP_127 \def 
-(lift TMP_126 O x1) in (let TMP_128 \def (ty3 g c0 TMP_125 TMP_127) in (let 
-TMP_129 \def (False_ind TMP_128 H11) in (eq_ind_r T TMP_102 TMP_104 TMP_129 
-t2 H9))))))))))))))))))))))))))))))))))))))))) in (ex3_3_ind C T T TMP_91 
-TMP_92 TMP_95 TMP_97 TMP_130 H5)))))))) in (or_ind TMP_19 TMP_27 TMP_29 
-TMP_88 TMP_131 H4))))))))))))))))))))))))) in (let TMP_257 \def (\lambda (n: 
-nat).(\lambda (c0: C).(\lambda (d: C).(\lambda (u0: T).(\lambda (H0: (getl n 
-c0 (CHead d (Bind Abst) u0))).(\lambda (t: T).(\lambda (H1: (ty3 g d u0 
-t)).(\lambda (_: ((\forall (t2: T).((sty0 g d u0 t2) \to (ty3 g d u0 
-t2))))).(\lambda (t2: T).(\lambda (H3: (sty0 g c0 (TLRef n) t2)).(let H_x 
-\def (sty0_gen_lref g c0 t2 n H3) in (let H4 \def H_x in (let TMP_135 \def 
-(\lambda (e: C).(\lambda (u1: T).(\lambda (_: T).(let TMP_133 \def (Bind 
-Abbr) in (let TMP_134 \def (CHead e TMP_133 u1) in (getl n c0 TMP_134)))))) 
-in (let TMP_136 \def (\lambda (e: C).(\lambda (u1: T).(\lambda (t0: T).(sty0 
-g e u1 t0)))) in (let TMP_139 \def (\lambda (_: C).(\lambda (_: T).(\lambda 
-(t0: T).(let TMP_137 \def (S n) in (let TMP_138 \def (lift TMP_137 O t0) in 
-(eq T t2 TMP_138)))))) in (let TMP_140 \def (ex3_3 C T T TMP_135 TMP_136 
-TMP_139) in (let TMP_143 \def (\lambda (e: C).(\lambda (u1: T).(\lambda (_: 
-T).(let TMP_141 \def (Bind Abst) in (let TMP_142 \def (CHead e TMP_141 u1) in 
-(getl n c0 TMP_142)))))) in (let TMP_144 \def (\lambda (e: C).(\lambda (u1: 
-T).(\lambda (t0: T).(sty0 g e u1 t0)))) in (let TMP_147 \def (\lambda (_: 
-C).(\lambda (u1: T).(\lambda (_: T).(let TMP_145 \def (S n) in (let TMP_146 
-\def (lift TMP_145 O u1) in (eq T t2 TMP_146)))))) in (let TMP_148 \def 
-(ex3_3 C T T TMP_143 TMP_144 TMP_147) in (let TMP_149 \def (TLRef n) in (let 
-TMP_150 \def (ty3 g c0 TMP_149 t2) in (let TMP_193 \def (\lambda (H5: (ex3_3 
-C T T (\lambda (e: C).(\lambda (u1: T).(\lambda (_: T).(getl n c0 (CHead e 
-(Bind Abbr) u1))))) (\lambda (e: C).(\lambda (u1: T).(\lambda (t0: T).(sty0 g 
-e u1 t0)))) (\lambda (_: C).(\lambda (_: T).(\lambda (t0: T).(eq T t2 (lift 
-(S n) O t0))))))).(let TMP_153 \def (\lambda (e: C).(\lambda (u1: T).(\lambda 
-(_: T).(let TMP_151 \def (Bind Abbr) in (let TMP_152 \def (CHead e TMP_151 
-u1) in (getl n c0 TMP_152)))))) in (let TMP_154 \def (\lambda (e: C).(\lambda 
-(u1: T).(\lambda (t0: T).(sty0 g e u1 t0)))) in (let TMP_157 \def (\lambda 
-(_: C).(\lambda (_: T).(\lambda (t0: T).(let TMP_155 \def (S n) in (let 
-TMP_156 \def (lift TMP_155 O t0) in (eq T t2 TMP_156)))))) in (let TMP_158 
-\def (TLRef n) in (let TMP_159 \def (ty3 g c0 TMP_158 t2) in (let TMP_192 
-\def (\lambda (x0: C).(\lambda (x1: T).(\lambda (x2: T).(\lambda (H6: (getl n 
-c0 (CHead x0 (Bind Abbr) x1))).(\lambda (_: (sty0 g x0 x1 x2)).(\lambda (H8: 
-(eq T t2 (lift (S n) O x2))).(let TMP_160 \def (\lambda (e: T).e) in (let 
-TMP_161 \def (S n) in (let TMP_162 \def (lift TMP_161 O x2) in (let H9 \def 
-(f_equal T T TMP_160 t2 TMP_162 H8) in (let TMP_163 \def (S n) in (let 
-TMP_164 \def (lift TMP_163 O x2) in (let TMP_166 \def (\lambda (t0: T).(let 
-TMP_165 \def (TLRef n) in (ty3 g c0 TMP_165 t0))) in (let TMP_167 \def (Bind 
-Abst) in (let TMP_168 \def (CHead d TMP_167 u0) in (let TMP_169 \def (\lambda 
-(c1: C).(getl n c0 c1)) in (let TMP_170 \def (Bind Abbr) in (let TMP_171 \def 
-(CHead x0 TMP_170 x1) in (let TMP_172 \def (Bind Abst) in (let TMP_173 \def 
-(CHead d TMP_172 u0) in (let TMP_174 \def (Bind Abbr) in (let TMP_175 \def 
-(CHead x0 TMP_174 x1) in (let TMP_176 \def (getl_mono c0 TMP_173 n H0 TMP_175 
-H6) in (let H10 \def (eq_ind C TMP_168 TMP_169 H0 TMP_171 TMP_176) in (let 
-TMP_177 \def (Bind Abst) in (let TMP_178 \def (CHead d TMP_177 u0) in (let 
-TMP_179 \def (\lambda (ee: C).(match ee with [(CSort _) \Rightarrow False | 
-(CHead _ k _) \Rightarrow (match k with [(Bind b) \Rightarrow (match b with 
-[Abbr \Rightarrow False | Abst \Rightarrow True | Void \Rightarrow False]) | 
-(Flat _) \Rightarrow False])])) in (let TMP_180 \def (Bind Abbr) in (let 
-TMP_181 \def (CHead x0 TMP_180 x1) in (let TMP_182 \def (Bind Abst) in (let 
-TMP_183 \def (CHead d TMP_182 u0) in (let TMP_184 \def (Bind Abbr) in (let 
-TMP_185 \def (CHead x0 TMP_184 x1) in (let TMP_186 \def (getl_mono c0 TMP_183 
-n H0 TMP_185 H6) in (let H11 \def (eq_ind C TMP_178 TMP_179 I TMP_181 
-TMP_186) in (let TMP_187 \def (TLRef n) in (let TMP_188 \def (S n) in (let 
-TMP_189 \def (lift TMP_188 O x2) in (let TMP_190 \def (ty3 g c0 TMP_187 
-TMP_189) in (let TMP_191 \def (False_ind TMP_190 H11) in (eq_ind_r T TMP_164 
-TMP_166 TMP_191 t2 H9))))))))))))))))))))))))))))))))))))))))) in (ex3_3_ind 
-C T T TMP_153 TMP_154 TMP_157 TMP_159 TMP_192 H5)))))))) in (let TMP_256 \def 
-(\lambda (H5: (ex3_3 C T T (\lambda (e: C).(\lambda (u1: T).(\lambda (_: 
+T t2 (lift (S n) O x1))).(let H9 \def (f_equal T T (\lambda (e: T).e) t2 
+(lift (S n) O x1) H8) in (eq_ind_r T (lift (S n) O x1) (\lambda (t0: T).(ty3 
+g c0 (TLRef n) t0)) (let H10 \def (eq_ind C (CHead d (Bind Abbr) u0) (\lambda 
+(c1: C).(getl n c0 c1)) H0 (CHead x0 (Bind Abst) x1) (getl_mono c0 (CHead d 
+(Bind Abbr) u0) n H0 (CHead x0 (Bind Abst) x1) H6)) in (let H11 \def (eq_ind 
+C (CHead d (Bind Abbr) u0) (\lambda (ee: C).(match ee with [(CSort _) 
+\Rightarrow False | (CHead _ k _) \Rightarrow (match k with [(Bind b) 
+\Rightarrow (match b with [Abbr \Rightarrow True | Abst \Rightarrow False | 
+Void \Rightarrow False]) | (Flat _) \Rightarrow False])])) I (CHead x0 (Bind 
+Abst) x1) (getl_mono c0 (CHead d (Bind Abbr) u0) n H0 (CHead x0 (Bind Abst) 
+x1) H6)) in (False_ind (ty3 g c0 (TLRef n) (lift (S n) O x1)) H11))) t2 
+H9)))))))) H5)) H4))))))))))))) (\lambda (n: nat).(\lambda (c0: C).(\lambda 
+(d: C).(\lambda (u0: T).(\lambda (H0: (getl n c0 (CHead d (Bind Abst) 
+u0))).(\lambda (t: T).(\lambda (H1: (ty3 g d u0 t)).(\lambda (_: ((\forall 
+(t2: T).((sty0 g d u0 t2) \to (ty3 g d u0 t2))))).(\lambda (t2: T).(\lambda 
+(H3: (sty0 g c0 (TLRef n) t2)).(let H_x \def (sty0_gen_lref g c0 t2 n H3) in 
+(let H4 \def H_x in (or_ind (ex3_3 C T T (\lambda (e: C).(\lambda (u1: 
+T).(\lambda (_: T).(getl n c0 (CHead e (Bind Abbr) u1))))) (\lambda (e: 
+C).(\lambda (u1: T).(\lambda (t0: T).(sty0 g e u1 t0)))) (\lambda (_: 
+C).(\lambda (_: T).(\lambda (t0: T).(eq T t2 (lift (S n) O t0)))))) (ex3_3 C 
+T T (\lambda (e: C).(\lambda (u1: T).(\lambda (_: T).(getl n c0 (CHead e 
+(Bind Abst) u1))))) (\lambda (e: C).(\lambda (u1: T).(\lambda (t0: T).(sty0 g 
+e u1 t0)))) (\lambda (_: C).(\lambda (u1: T).(\lambda (_: T).(eq T t2 (lift 
+(S n) O u1)))))) (ty3 g c0 (TLRef n) t2) (\lambda (H5: (ex3_3 C T T (\lambda 
+(e: C).(\lambda (u1: T).(\lambda (_: T).(getl n c0 (CHead e (Bind Abbr) 
+u1))))) (\lambda (e: C).(\lambda (u1: T).(\lambda (t0: T).(sty0 g e u1 t0)))) 
+(\lambda (_: C).(\lambda (_: T).(\lambda (t0: T).(eq T t2 (lift (S n) O 
+t0))))))).(ex3_3_ind C T T (\lambda (e: C).(\lambda (u1: T).(\lambda (_: 
+T).(getl n c0 (CHead e (Bind Abbr) u1))))) (\lambda (e: C).(\lambda (u1: 
+T).(\lambda (t0: T).(sty0 g e u1 t0)))) (\lambda (_: C).(\lambda (_: 
+T).(\lambda (t0: T).(eq T t2 (lift (S n) O t0))))) (ty3 g c0 (TLRef n) t2) 
+(\lambda (x0: C).(\lambda (x1: T).(\lambda (x2: T).(\lambda (H6: (getl n c0 
+(CHead x0 (Bind Abbr) x1))).(\lambda (_: (sty0 g x0 x1 x2)).(\lambda (H8: (eq 
+T t2 (lift (S n) O x2))).(let H9 \def (f_equal T T (\lambda (e: T).e) t2 
+(lift (S n) O x2) H8) in (eq_ind_r T (lift (S n) O x2) (\lambda (t0: T).(ty3 
+g c0 (TLRef n) t0)) (let H10 \def (eq_ind C (CHead d (Bind Abst) u0) (\lambda 
+(c1: C).(getl n c0 c1)) H0 (CHead x0 (Bind Abbr) x1) (getl_mono c0 (CHead d 
+(Bind Abst) u0) n H0 (CHead x0 (Bind Abbr) x1) H6)) in (let H11 \def (eq_ind 
+C (CHead d (Bind Abst) u0) (\lambda (ee: C).(match ee with [(CSort _) 
+\Rightarrow False | (CHead _ k _) \Rightarrow (match k with [(Bind b) 
+\Rightarrow (match b with [Abbr \Rightarrow False | Abst \Rightarrow True | 
+Void \Rightarrow False]) | (Flat _) \Rightarrow False])])) I (CHead x0 (Bind 
+Abbr) x1) (getl_mono c0 (CHead d (Bind Abst) u0) n H0 (CHead x0 (Bind Abbr) 
+x1) H6)) in (False_ind (ty3 g c0 (TLRef n) (lift (S n) O x2)) H11))) t2 
+H9)))))))) H5)) (\lambda (H5: (ex3_3 C T T (\lambda (e: C).(\lambda (u1: 
+T).(\lambda (_: T).(getl n c0 (CHead e (Bind Abst) u1))))) (\lambda (e: 
+C).(\lambda (u1: T).(\lambda (t0: T).(sty0 g e u1 t0)))) (\lambda (_: 
+C).(\lambda (u1: T).(\lambda (_: T).(eq T t2 (lift (S n) O 
+u1))))))).(ex3_3_ind C T T (\lambda (e: C).(\lambda (u1: T).(\lambda (_: 
 T).(getl n c0 (CHead e (Bind Abst) u1))))) (\lambda (e: C).(\lambda (u1: 
 T).(\lambda (t0: T).(sty0 g e u1 t0)))) (\lambda (_: C).(\lambda (u1: 
-T).(\lambda (_: T).(eq T t2 (lift (S n) O u1))))))).(let TMP_196 \def 
-(\lambda (e: C).(\lambda (u1: T).(\lambda (_: T).(let TMP_194 \def (Bind 
-Abst) in (let TMP_195 \def (CHead e TMP_194 u1) in (getl n c0 TMP_195)))))) 
-in (let TMP_197 \def (\lambda (e: C).(\lambda (u1: T).(\lambda (t0: T).(sty0 
-g e u1 t0)))) in (let TMP_200 \def (\lambda (_: C).(\lambda (u1: T).(\lambda 
-(_: T).(let TMP_198 \def (S n) in (let TMP_199 \def (lift TMP_198 O u1) in 
-(eq T t2 TMP_199)))))) in (let TMP_201 \def (TLRef n) in (let TMP_202 \def 
-(ty3 g c0 TMP_201 t2) in (let TMP_255 \def (\lambda (x0: C).(\lambda (x1: 
-T).(\lambda (x2: T).(\lambda (H6: (getl n c0 (CHead x0 (Bind Abst) 
-x1))).(\lambda (H7: (sty0 g x0 x1 x2)).(\lambda (H8: (eq T t2 (lift (S n) O 
-x1))).(let TMP_203 \def (\lambda (e: T).e) in (let TMP_204 \def (S n) in (let 
-TMP_205 \def (lift TMP_204 O x1) in (let H9 \def (f_equal T T TMP_203 t2 
-TMP_205 H8) in (let TMP_206 \def (S n) in (let TMP_207 \def (lift TMP_206 O 
-x1) in (let TMP_209 \def (\lambda (t0: T).(let TMP_208 \def (TLRef n) in (ty3 
-g c0 TMP_208 t0))) in (let TMP_210 \def (Bind Abst) in (let TMP_211 \def 
-(CHead d TMP_210 u0) in (let TMP_212 \def (\lambda (c1: C).(getl n c0 c1)) in 
-(let TMP_213 \def (Bind Abst) in (let TMP_214 \def (CHead x0 TMP_213 x1) in 
-(let TMP_215 \def (Bind Abst) in (let TMP_216 \def (CHead d TMP_215 u0) in 
-(let TMP_217 \def (Bind Abst) in (let TMP_218 \def (CHead x0 TMP_217 x1) in 
-(let TMP_219 \def (getl_mono c0 TMP_216 n H0 TMP_218 H6) in (let H10 \def 
-(eq_ind C TMP_211 TMP_212 H0 TMP_214 TMP_219) in (let TMP_220 \def (\lambda 
-(e: C).(match e with [(CSort _) \Rightarrow d | (CHead c1 _ _) \Rightarrow 
-c1])) in (let TMP_221 \def (Bind Abst) in (let TMP_222 \def (CHead d TMP_221 
-u0) in (let TMP_223 \def (Bind Abst) in (let TMP_224 \def (CHead x0 TMP_223 
-x1) in (let TMP_225 \def (Bind Abst) in (let TMP_226 \def (CHead d TMP_225 
-u0) in (let TMP_227 \def (Bind Abst) in (let TMP_228 \def (CHead x0 TMP_227 
-x1) in (let TMP_229 \def (getl_mono c0 TMP_226 n H0 TMP_228 H6) in (let H11 
-\def (f_equal C C TMP_220 TMP_222 TMP_224 TMP_229) in (let TMP_230 \def 
-(\lambda (e: C).(match e with [(CSort _) \Rightarrow u0 | (CHead _ _ t0) 
-\Rightarrow t0])) in (let TMP_231 \def (Bind Abst) in (let TMP_232 \def 
-(CHead d TMP_231 u0) in (let TMP_233 \def (Bind Abst) in (let TMP_234 \def 
-(CHead x0 TMP_233 x1) in (let TMP_235 \def (Bind Abst) in (let TMP_236 \def 
-(CHead d TMP_235 u0) in (let TMP_237 \def (Bind Abst) in (let TMP_238 \def 
-(CHead x0 TMP_237 x1) in (let TMP_239 \def (getl_mono c0 TMP_236 n H0 TMP_238 
-H6) in (let H12 \def (f_equal C T TMP_230 TMP_232 TMP_234 TMP_239) in (let 
-TMP_253 \def (\lambda (H13: (eq C d x0)).(let TMP_242 \def (\lambda (t0: 
-T).(let TMP_240 \def (Bind Abst) in (let TMP_241 \def (CHead x0 TMP_240 t0) 
-in (getl n c0 TMP_241)))) in (let H14 \def (eq_ind_r T x1 TMP_242 H10 u0 H12) 
-in (let TMP_243 \def (\lambda (t0: T).(sty0 g x0 t0 x2)) in (let H15 \def 
-(eq_ind_r T x1 TMP_243 H7 u0 H12) in (let TMP_247 \def (\lambda (t0: T).(let 
-TMP_244 \def (TLRef n) in (let TMP_245 \def (S n) in (let TMP_246 \def (lift 
-TMP_245 O t0) in (ty3 g c0 TMP_244 TMP_246))))) in (let TMP_250 \def (\lambda 
-(c1: C).(let TMP_248 \def (Bind Abst) in (let TMP_249 \def (CHead c1 TMP_248 
-u0) in (getl n c0 TMP_249)))) in (let H16 \def (eq_ind_r C x0 TMP_250 H14 d 
-H13) in (let TMP_251 \def (\lambda (c1: C).(sty0 g c1 u0 x2)) in (let H17 
-\def (eq_ind_r C x0 TMP_251 H15 d H13) in (let TMP_252 \def (ty3_abst g n c0 
-d u0 H16 t H1) in (eq_ind T u0 TMP_247 TMP_252 x1 H12)))))))))))) in (let 
-TMP_254 \def (TMP_253 H11) in (eq_ind_r T TMP_207 TMP_209 TMP_254 t2 
-H9))))))))))))))))))))))))))))))))))))))))))))))))) in (ex3_3_ind C T T 
-TMP_196 TMP_197 TMP_200 TMP_202 TMP_255 H5)))))))) in (or_ind TMP_140 TMP_148 
-TMP_150 TMP_193 TMP_256 H4))))))))))))))))))))))))) in (let TMP_278 \def 
-(\lambda (c0: C).(\lambda (u0: T).(\lambda (t: T).(\lambda (H0: (ty3 g c0 u0 
-t)).(\lambda (_: ((\forall (t2: T).((sty0 g c0 u0 t2) \to (ty3 g c0 u0 
-t2))))).(\lambda (b: B).(\lambda (t2: T).(\lambda (t3: T).(\lambda (_: (ty3 g 
-(CHead c0 (Bind b) u0) t2 t3)).(\lambda (H3: ((\forall (t4: T).((sty0 g 
-(CHead c0 (Bind b) u0) t2 t4) \to (ty3 g (CHead c0 (Bind b) u0) t2 
-t4))))).(\lambda (t0: T).(\lambda (H4: (sty0 g c0 (THead (Bind b) u0 t2) 
-t0)).(let H_x \def (sty0_gen_bind g b c0 u0 t2 t0 H4) in (let H5 \def H_x in 
-(let TMP_260 \def (\lambda (t4: T).(let TMP_258 \def (Bind b) in (let TMP_259 
-\def (CHead c0 TMP_258 u0) in (sty0 g TMP_259 t2 t4)))) in (let TMP_263 \def 
-(\lambda (t4: T).(let TMP_261 \def (Bind b) in (let TMP_262 \def (THead 
-TMP_261 u0 t4) in (eq T t0 TMP_262)))) in (let TMP_264 \def (Bind b) in (let 
-TMP_265 \def (THead TMP_264 u0 t2) in (let TMP_266 \def (ty3 g c0 TMP_265 t0) 
-in (let TMP_277 \def (\lambda (x: T).(\lambda (H6: (sty0 g (CHead c0 (Bind b) 
-u0) t2 x)).(\lambda (H7: (eq T t0 (THead (Bind b) u0 x))).(let TMP_267 \def 
-(\lambda (e: T).e) in (let TMP_268 \def (Bind b) in (let TMP_269 \def (THead 
-TMP_268 u0 x) in (let H8 \def (f_equal T T TMP_267 t0 TMP_269 H7) in (let 
-TMP_270 \def (Bind b) in (let TMP_271 \def (THead TMP_270 u0 x) in (let 
-TMP_274 \def (\lambda (t4: T).(let TMP_272 \def (Bind b) in (let TMP_273 \def 
-(THead TMP_272 u0 t2) in (ty3 g c0 TMP_273 t4)))) in (let TMP_275 \def (H3 x 
-H6) in (let TMP_276 \def (ty3_bind g c0 u0 t H0 b t2 x TMP_275) in (eq_ind_r 
-T TMP_271 TMP_274 TMP_276 t0 H8))))))))))))) in (ex2_ind T TMP_260 TMP_263 
-TMP_266 TMP_277 H5))))))))))))))))))))) in (let TMP_366 \def (\lambda (c0: 
-C).(\lambda (w: T).(\lambda (u0: T).(\lambda (H0: (ty3 g c0 w u0)).(\lambda 
-(_: ((\forall (t2: T).((sty0 g c0 w t2) \to (ty3 g c0 w t2))))).(\lambda (v: 
-T).(\lambda (t: T).(\lambda (H2: (ty3 g c0 v (THead (Bind Abst) u0 
-t))).(\lambda (H3: ((\forall (t2: T).((sty0 g c0 v t2) \to (ty3 g c0 v 
-t2))))).(\lambda (t2: T).(\lambda (H4: (sty0 g c0 (THead (Flat Appl) w v) 
-t2)).(let H_x \def (sty0_gen_appl g c0 w v t2 H4) in (let H5 \def H_x in (let 
-TMP_279 \def (\lambda (t3: T).(sty0 g c0 v t3)) in (let TMP_282 \def (\lambda 
-(t3: T).(let TMP_280 \def (Flat Appl) in (let TMP_281 \def (THead TMP_280 w 
-t3) in (eq T t2 TMP_281)))) in (let TMP_283 \def (Flat Appl) in (let TMP_284 
-\def (THead TMP_283 w v) in (let TMP_285 \def (ty3 g c0 TMP_284 t2) in (let 
-TMP_365 \def (\lambda (x: T).(\lambda (H6: (sty0 g c0 v x)).(\lambda (H7: (eq 
-T t2 (THead (Flat Appl) w x))).(let TMP_286 \def (\lambda (e: T).e) in (let 
-TMP_287 \def (Flat Appl) in (let TMP_288 \def (THead TMP_287 w x) in (let H8 
-\def (f_equal T T TMP_286 t2 TMP_288 H7) in (let TMP_289 \def (Flat Appl) in 
-(let TMP_290 \def (THead TMP_289 w x) in (let TMP_293 \def (\lambda (t0: 
-T).(let TMP_291 \def (Flat Appl) in (let TMP_292 \def (THead TMP_291 w v) in 
-(ty3 g c0 TMP_292 t0)))) in (let H_y \def (H3 x H6) in (let TMP_294 \def 
-(Bind Abst) in (let TMP_295 \def (THead TMP_294 u0 t) in (let H9 \def 
-(ty3_unique g c0 v x H_y TMP_295 H2) in (let TMP_296 \def (\lambda (t0: 
-T).(ty3 g c0 x t0)) in (let TMP_297 \def (Flat Appl) in (let TMP_298 \def 
-(THead TMP_297 w v) in (let TMP_299 \def (Flat Appl) in (let TMP_300 \def 
-(THead TMP_299 w x) in (let TMP_301 \def (ty3 g c0 TMP_298 TMP_300) in (let 
-TMP_362 \def (\lambda (x0: T).(\lambda (H10: (ty3 g c0 x x0)).(let TMP_302 
-\def (\lambda (t0: T).(ty3 g c0 u0 t0)) in (let TMP_303 \def (Flat Appl) in 
-(let TMP_304 \def (THead TMP_303 w v) in (let TMP_305 \def (Flat Appl) in 
-(let TMP_306 \def (THead TMP_305 w x) in (let TMP_307 \def (ty3 g c0 TMP_304 
-TMP_306) in (let TMP_360 \def (\lambda (x1: T).(\lambda (_: (ty3 g c0 u0 
-x1)).(let TMP_310 \def (\lambda (t0: T).(let TMP_308 \def (Bind Abst) in (let 
-TMP_309 \def (THead TMP_308 u0 t) in (ty3 g c0 TMP_309 t0)))) in (let TMP_311 
-\def (Flat Appl) in (let TMP_312 \def (THead TMP_311 w v) in (let TMP_313 
-\def (Flat Appl) in (let TMP_314 \def (THead TMP_313 w x) in (let TMP_315 
-\def (ty3 g c0 TMP_312 TMP_314) in (let TMP_356 \def (\lambda (x2: 
-T).(\lambda (H12: (ty3 g c0 (THead (Bind Abst) u0 t) x2)).(let TMP_318 \def 
-(\lambda (t3: T).(\lambda (_: T).(let TMP_316 \def (Bind Abst) in (let 
-TMP_317 \def (THead TMP_316 u0 t3) in (pc3 c0 TMP_317 x2))))) in (let TMP_319 
-\def (\lambda (_: T).(\lambda (t0: T).(ty3 g c0 u0 t0))) in (let TMP_322 \def 
-(\lambda (t3: T).(\lambda (_: T).(let TMP_320 \def (Bind Abst) in (let 
-TMP_321 \def (CHead c0 TMP_320 u0) in (ty3 g TMP_321 t t3))))) in (let 
-TMP_323 \def (Flat Appl) in (let TMP_324 \def (THead TMP_323 w v) in (let 
-TMP_325 \def (Flat Appl) in (let TMP_326 \def (THead TMP_325 w x) in (let 
-TMP_327 \def (ty3 g c0 TMP_324 TMP_326) in (let TMP_354 \def (\lambda (x3: 
-T).(\lambda (x4: T).(\lambda (_: (pc3 c0 (THead (Bind Abst) u0 x3) 
-x2)).(\lambda (H14: (ty3 g c0 u0 x4)).(\lambda (H15: (ty3 g (CHead c0 (Bind 
-Abst) u0) t x3)).(let TMP_328 \def (Flat Appl) in (let TMP_329 \def (THead 
-TMP_328 w x) in (let TMP_330 \def (Flat Appl) in (let TMP_331 \def (Bind 
-Abst) in (let TMP_332 \def (THead TMP_331 u0 x3) in (let TMP_333 \def (THead 
-TMP_330 w TMP_332) in (let TMP_334 \def (Bind Abst) in (let TMP_335 \def 
-(THead TMP_334 u0 t) in (let TMP_336 \def (Bind Abst) in (let TMP_337 \def 
-(THead TMP_336 u0 x3) in (let TMP_338 \def (ty3_bind g c0 u0 x4 H14 Abst t x3 
-H15) in (let TMP_339 \def (ty3_sconv g c0 x x0 H10 TMP_335 TMP_337 TMP_338 
-H9) in (let TMP_340 \def (ty3_appl g c0 w u0 H0 x x3 TMP_339) in (let TMP_341 
-\def (Flat Appl) in (let TMP_342 \def (THead TMP_341 w v) in (let TMP_343 
-\def (Flat Appl) in (let TMP_344 \def (Bind Abst) in (let TMP_345 \def (THead 
-TMP_344 u0 t) in (let TMP_346 \def (THead TMP_343 w TMP_345) in (let TMP_347 
-\def (ty3_appl g c0 w u0 H0 v t H2) in (let TMP_348 \def (Bind Abst) in (let 
-TMP_349 \def (THead TMP_348 u0 t) in (let TMP_350 \def (Bind Abst) in (let 
-TMP_351 \def (THead TMP_350 u0 t) in (let TMP_352 \def (ty3_unique g c0 v 
-TMP_351 H2 x H_y) in (let TMP_353 \def (pc3_thin_dx c0 TMP_349 x TMP_352 w 
-Appl) in (ty3_conv g c0 TMP_329 TMP_333 TMP_340 TMP_342 TMP_346 TMP_347 
-TMP_353)))))))))))))))))))))))))))))))) in (let TMP_355 \def (ty3_gen_bind g 
-Abst c0 u0 t x2 H12) in (ex3_2_ind T T TMP_318 TMP_319 TMP_322 TMP_327 
-TMP_354 TMP_355))))))))))))) in (let TMP_357 \def (Bind Abst) in (let TMP_358 
-\def (THead TMP_357 u0 t) in (let TMP_359 \def (ty3_correct g c0 v TMP_358 
-H2) in (ex_ind T TMP_310 TMP_315 TMP_356 TMP_359))))))))))))) in (let TMP_361 
-\def (ty3_correct g c0 w u0 H0) in (ex_ind T TMP_302 TMP_307 TMP_360 
-TMP_361))))))))))) in (let TMP_363 \def (ty3_correct g c0 v x H_y) in (let 
-TMP_364 \def (ex_ind T TMP_296 TMP_301 TMP_362 TMP_363) in (eq_ind_r T 
-TMP_290 TMP_293 TMP_364 t2 H8)))))))))))))))))))))))) in (ex2_ind T TMP_279 
-TMP_282 TMP_285 TMP_365 H5)))))))))))))))))))) in (let TMP_414 \def (\lambda 
-(c0: C).(\lambda (t2: T).(\lambda (t3: T).(\lambda (H0: (ty3 g c0 t2 
+T).(\lambda (_: T).(eq T t2 (lift (S n) O u1))))) (ty3 g c0 (TLRef n) t2) 
+(\lambda (x0: C).(\lambda (x1: T).(\lambda (x2: T).(\lambda (H6: (getl n c0 
+(CHead x0 (Bind Abst) x1))).(\lambda (H7: (sty0 g x0 x1 x2)).(\lambda (H8: 
+(eq T t2 (lift (S n) O x1))).(let H9 \def (f_equal T T (\lambda (e: T).e) t2 
+(lift (S n) O x1) H8) in (eq_ind_r T (lift (S n) O x1) (\lambda (t0: T).(ty3 
+g c0 (TLRef n) t0)) (let H10 \def (eq_ind C (CHead d (Bind Abst) u0) (\lambda 
+(c1: C).(getl n c0 c1)) H0 (CHead x0 (Bind Abst) x1) (getl_mono c0 (CHead d 
+(Bind Abst) u0) n H0 (CHead x0 (Bind Abst) x1) H6)) in (let H11 \def (f_equal 
+C C (\lambda (e: C).(match e with [(CSort _) \Rightarrow d | (CHead c1 _ _) 
+\Rightarrow c1])) (CHead d (Bind Abst) u0) (CHead x0 (Bind Abst) x1) 
+(getl_mono c0 (CHead d (Bind Abst) u0) n H0 (CHead x0 (Bind Abst) x1) H6)) in 
+((let H12 \def (f_equal C T (\lambda (e: C).(match e with [(CSort _) 
+\Rightarrow u0 | (CHead _ _ t0) \Rightarrow t0])) (CHead d (Bind Abst) u0) 
+(CHead x0 (Bind Abst) x1) (getl_mono c0 (CHead d (Bind Abst) u0) n H0 (CHead 
+x0 (Bind Abst) x1) H6)) in (\lambda (H13: (eq C d x0)).(let H14 \def 
+(eq_ind_r T x1 (\lambda (t0: T).(getl n c0 (CHead x0 (Bind Abst) t0))) H10 u0 
+H12) in (let H15 \def (eq_ind_r T x1 (\lambda (t0: T).(sty0 g x0 t0 x2)) H7 
+u0 H12) in (eq_ind T u0 (\lambda (t0: T).(ty3 g c0 (TLRef n) (lift (S n) O 
+t0))) (let H16 \def (eq_ind_r C x0 (\lambda (c1: C).(getl n c0 (CHead c1 
+(Bind Abst) u0))) H14 d H13) in (let H17 \def (eq_ind_r C x0 (\lambda (c1: 
+C).(sty0 g c1 u0 x2)) H15 d H13) in (ty3_abst g n c0 d u0 H16 t H1))) x1 
+H12))))) H11))) t2 H9)))))))) H5)) H4))))))))))))) (\lambda (c0: C).(\lambda 
+(u0: T).(\lambda (t: T).(\lambda (H0: (ty3 g c0 u0 t)).(\lambda (_: ((\forall 
+(t2: T).((sty0 g c0 u0 t2) \to (ty3 g c0 u0 t2))))).(\lambda (b: B).(\lambda 
+(t2: T).(\lambda (t3: T).(\lambda (_: (ty3 g (CHead c0 (Bind b) u0) t2 
+t3)).(\lambda (H3: ((\forall (t4: T).((sty0 g (CHead c0 (Bind b) u0) t2 t4) 
+\to (ty3 g (CHead c0 (Bind b) u0) t2 t4))))).(\lambda (t0: T).(\lambda (H4: 
+(sty0 g c0 (THead (Bind b) u0 t2) t0)).(let H_x \def (sty0_gen_bind g b c0 u0 
+t2 t0 H4) in (let H5 \def H_x in (ex2_ind T (\lambda (t4: T).(sty0 g (CHead 
+c0 (Bind b) u0) t2 t4)) (\lambda (t4: T).(eq T t0 (THead (Bind b) u0 t4))) 
+(ty3 g c0 (THead (Bind b) u0 t2) t0) (\lambda (x: T).(\lambda (H6: (sty0 g 
+(CHead c0 (Bind b) u0) t2 x)).(\lambda (H7: (eq T t0 (THead (Bind b) u0 
+x))).(let H8 \def (f_equal T T (\lambda (e: T).e) t0 (THead (Bind b) u0 x) 
+H7) in (eq_ind_r T (THead (Bind b) u0 x) (\lambda (t4: T).(ty3 g c0 (THead 
+(Bind b) u0 t2) t4)) (ty3_bind g c0 u0 t H0 b t2 x (H3 x H6)) t0 H8))))) 
+H5))))))))))))))) (\lambda (c0: C).(\lambda (w: T).(\lambda (u0: T).(\lambda 
+(H0: (ty3 g c0 w u0)).(\lambda (_: ((\forall (t2: T).((sty0 g c0 w t2) \to 
+(ty3 g c0 w t2))))).(\lambda (v: T).(\lambda (t: T).(\lambda (H2: (ty3 g c0 v 
+(THead (Bind Abst) u0 t))).(\lambda (H3: ((\forall (t2: T).((sty0 g c0 v t2) 
+\to (ty3 g c0 v t2))))).(\lambda (t2: T).(\lambda (H4: (sty0 g c0 (THead 
+(Flat Appl) w v) t2)).(let H_x \def (sty0_gen_appl g c0 w v t2 H4) in (let H5 
+\def H_x in (ex2_ind T (\lambda (t3: T).(sty0 g c0 v t3)) (\lambda (t3: 
+T).(eq T t2 (THead (Flat Appl) w t3))) (ty3 g c0 (THead (Flat Appl) w v) t2) 
+(\lambda (x: T).(\lambda (H6: (sty0 g c0 v x)).(\lambda (H7: (eq T t2 (THead 
+(Flat Appl) w x))).(let H8 \def (f_equal T T (\lambda (e: T).e) t2 (THead 
+(Flat Appl) w x) H7) in (eq_ind_r T (THead (Flat Appl) w x) (\lambda (t0: 
+T).(ty3 g c0 (THead (Flat Appl) w v) t0)) (let H_y \def (H3 x H6) in (let H9 
+\def (ty3_unique g c0 v x H_y (THead (Bind Abst) u0 t) H2) in (ex_ind T 
+(\lambda (t0: T).(ty3 g c0 x t0)) (ty3 g c0 (THead (Flat Appl) w v) (THead 
+(Flat Appl) w x)) (\lambda (x0: T).(\lambda (H10: (ty3 g c0 x x0)).(ex_ind T 
+(\lambda (t0: T).(ty3 g c0 u0 t0)) (ty3 g c0 (THead (Flat Appl) w v) (THead 
+(Flat Appl) w x)) (\lambda (x1: T).(\lambda (_: (ty3 g c0 u0 x1)).(ex_ind T 
+(\lambda (t0: T).(ty3 g c0 (THead (Bind Abst) u0 t) t0)) (ty3 g c0 (THead 
+(Flat Appl) w v) (THead (Flat Appl) w x)) (\lambda (x2: T).(\lambda (H12: 
+(ty3 g c0 (THead (Bind Abst) u0 t) x2)).(ex3_2_ind T T (\lambda (t3: 
+T).(\lambda (_: T).(pc3 c0 (THead (Bind Abst) u0 t3) x2))) (\lambda (_: 
+T).(\lambda (t0: T).(ty3 g c0 u0 t0))) (\lambda (t3: T).(\lambda (_: T).(ty3 
+g (CHead c0 (Bind Abst) u0) t t3))) (ty3 g c0 (THead (Flat Appl) w v) (THead 
+(Flat Appl) w x)) (\lambda (x3: T).(\lambda (x4: T).(\lambda (_: (pc3 c0 
+(THead (Bind Abst) u0 x3) x2)).(\lambda (H14: (ty3 g c0 u0 x4)).(\lambda 
+(H15: (ty3 g (CHead c0 (Bind Abst) u0) t x3)).(ty3_conv g c0 (THead (Flat 
+Appl) w x) (THead (Flat Appl) w (THead (Bind Abst) u0 x3)) (ty3_appl g c0 w 
+u0 H0 x x3 (ty3_sconv g c0 x x0 H10 (THead (Bind Abst) u0 t) (THead (Bind 
+Abst) u0 x3) (ty3_bind g c0 u0 x4 H14 Abst t x3 H15) H9)) (THead (Flat Appl) 
+w v) (THead (Flat Appl) w (THead (Bind Abst) u0 t)) (ty3_appl g c0 w u0 H0 v 
+t H2) (pc3_thin_dx c0 (THead (Bind Abst) u0 t) x (ty3_unique g c0 v (THead 
+(Bind Abst) u0 t) H2 x H_y) w Appl))))))) (ty3_gen_bind g Abst c0 u0 t x2 
+H12)))) (ty3_correct g c0 v (THead (Bind Abst) u0 t) H2)))) (ty3_correct g c0 
+w u0 H0)))) (ty3_correct g c0 v x H_y)))) t2 H8))))) H5)))))))))))))) 
+(\lambda (c0: C).(\lambda (t2: T).(\lambda (t3: T).(\lambda (H0: (ty3 g c0 t2 
 t3)).(\lambda (H1: ((\forall (t4: T).((sty0 g c0 t2 t4) \to (ty3 g c0 t2 
 t4))))).(\lambda (t0: T).(\lambda (_: (ty3 g c0 t3 t0)).(\lambda (H3: 
 ((\forall (t4: T).((sty0 g c0 t3 t4) \to (ty3 g c0 t3 t4))))).(\lambda (t4: 
 T).(\lambda (H4: (sty0 g c0 (THead (Flat Cast) t3 t2) t4)).(let H_x \def 
-(sty0_gen_cast g c0 t3 t2 t4 H4) in (let H5 \def H_x in (let TMP_367 \def 
-(\lambda (v2: T).(\lambda (_: T).(sty0 g c0 t3 v2))) in (let TMP_368 \def 
-(\lambda (_: T).(\lambda (t5: T).(sty0 g c0 t2 t5))) in (let TMP_371 \def 
-(\lambda (v2: T).(\lambda (t5: T).(let TMP_369 \def (Flat Cast) in (let 
-TMP_370 \def (THead TMP_369 v2 t5) in (eq T t4 TMP_370))))) in (let TMP_372 
-\def (Flat Cast) in (let TMP_373 \def (THead TMP_372 t3 t2) in (let TMP_374 
-\def (ty3 g c0 TMP_373 t4) in (let TMP_413 \def (\lambda (x0: T).(\lambda 
-(x1: T).(\lambda (H6: (sty0 g c0 t3 x0)).(\lambda (H7: (sty0 g c0 t2 
-x1)).(\lambda (H8: (eq T t4 (THead (Flat Cast) x0 x1))).(let TMP_375 \def 
-(\lambda (e: T).e) in (let TMP_376 \def (Flat Cast) in (let TMP_377 \def 
-(THead TMP_376 x0 x1) in (let H9 \def (f_equal T T TMP_375 t4 TMP_377 H8) in 
-(let TMP_378 \def (Flat Cast) in (let TMP_379 \def (THead TMP_378 x0 x1) in 
-(let TMP_382 \def (\lambda (t: T).(let TMP_380 \def (Flat Cast) in (let 
-TMP_381 \def (THead TMP_380 t3 t2) in (ty3 g c0 TMP_381 t)))) in (let H_y 
-\def (H1 x1 H7) in (let H_y0 \def (H3 x0 H6) in (let H10 \def (ty3_unique g 
-c0 t2 x1 H_y t3 H0) in (let TMP_383 \def (\lambda (t: T).(ty3 g c0 x0 t)) in 
-(let TMP_384 \def (Flat Cast) in (let TMP_385 \def (THead TMP_384 t3 t2) in 
-(let TMP_386 \def (Flat Cast) in (let TMP_387 \def (THead TMP_386 x0 x1) in 
-(let TMP_388 \def (ty3 g c0 TMP_385 TMP_387) in (let TMP_410 \def (\lambda 
-(x: T).(\lambda (H11: (ty3 g c0 x0 x)).(let TMP_389 \def (\lambda (t: T).(ty3 
-g c0 x1 t)) in (let TMP_390 \def (Flat Cast) in (let TMP_391 \def (THead 
-TMP_390 t3 t2) in (let TMP_392 \def (Flat Cast) in (let TMP_393 \def (THead 
-TMP_392 x0 x1) in (let TMP_394 \def (ty3 g c0 TMP_391 TMP_393) in (let 
-TMP_408 \def (\lambda (x2: T).(\lambda (H12: (ty3 g c0 x1 x2)).(let TMP_395 
-\def (Flat Cast) in (let TMP_396 \def (THead TMP_395 x0 x1) in (let TMP_397 
-\def (Flat Cast) in (let TMP_398 \def (THead TMP_397 x x0) in (let TMP_399 
-\def (ty3_sconv g c0 x1 x2 H12 t3 x0 H_y0 H10) in (let TMP_400 \def (ty3_cast 
-g c0 x1 x0 TMP_399 x H11) in (let TMP_401 \def (Flat Cast) in (let TMP_402 
-\def (THead TMP_401 t3 t2) in (let TMP_403 \def (Flat Cast) in (let TMP_404 
-\def (THead TMP_403 x0 t3) in (let TMP_405 \def (ty3_cast g c0 t2 t3 H0 x0 
-H_y0) in (let TMP_406 \def (ty3_unique g c0 t2 t3 H0 x1 H_y) in (let TMP_407 
-\def (pc3_thin_dx c0 t3 x1 TMP_406 x0 Cast) in (ty3_conv g c0 TMP_396 TMP_398 
-TMP_400 TMP_402 TMP_404 TMP_405 TMP_407)))))))))))))))) in (let TMP_409 \def 
-(ty3_correct g c0 t2 x1 H_y) in (ex_ind T TMP_389 TMP_394 TMP_408 
-TMP_409))))))))))) in (let TMP_411 \def (ty3_correct g c0 t3 x0 H_y0) in (let 
-TMP_412 \def (ex_ind T TMP_383 TMP_388 TMP_410 TMP_411) in (eq_ind_r T 
-TMP_379 TMP_382 TMP_412 t4 H9))))))))))))))))))))))))) in (ex3_2_ind T T 
-TMP_367 TMP_368 TMP_371 TMP_374 TMP_413 H5)))))))))))))))))))) in (ty3_ind g 
-TMP_1 TMP_2 TMP_11 TMP_132 TMP_257 TMP_278 TMP_366 TMP_414 c u t1 
-H))))))))))))).
+(sty0_gen_cast g c0 t3 t2 t4 H4) in (let H5 \def H_x in (ex3_2_ind T T 
+(\lambda (v2: T).(\lambda (_: T).(sty0 g c0 t3 v2))) (\lambda (_: T).(\lambda 
+(t5: T).(sty0 g c0 t2 t5))) (\lambda (v2: T).(\lambda (t5: T).(eq T t4 (THead 
+(Flat Cast) v2 t5)))) (ty3 g c0 (THead (Flat Cast) t3 t2) t4) (\lambda (x0: 
+T).(\lambda (x1: T).(\lambda (H6: (sty0 g c0 t3 x0)).(\lambda (H7: (sty0 g c0 
+t2 x1)).(\lambda (H8: (eq T t4 (THead (Flat Cast) x0 x1))).(let H9 \def 
+(f_equal T T (\lambda (e: T).e) t4 (THead (Flat Cast) x0 x1) H8) in (eq_ind_r 
+T (THead (Flat Cast) x0 x1) (\lambda (t: T).(ty3 g c0 (THead (Flat Cast) t3 
+t2) t)) (let H_y \def (H1 x1 H7) in (let H_y0 \def (H3 x0 H6) in (let H10 
+\def (ty3_unique g c0 t2 x1 H_y t3 H0) in (ex_ind T (\lambda (t: T).(ty3 g c0 
+x0 t)) (ty3 g c0 (THead (Flat Cast) t3 t2) (THead (Flat Cast) x0 x1)) 
+(\lambda (x: T).(\lambda (H11: (ty3 g c0 x0 x)).(ex_ind T (\lambda (t: 
+T).(ty3 g c0 x1 t)) (ty3 g c0 (THead (Flat Cast) t3 t2) (THead (Flat Cast) x0 
+x1)) (\lambda (x2: T).(\lambda (H12: (ty3 g c0 x1 x2)).(ty3_conv g c0 (THead 
+(Flat Cast) x0 x1) (THead (Flat Cast) x x0) (ty3_cast g c0 x1 x0 (ty3_sconv g 
+c0 x1 x2 H12 t3 x0 H_y0 H10) x H11) (THead (Flat Cast) t3 t2) (THead (Flat 
+Cast) x0 t3) (ty3_cast g c0 t2 t3 H0 x0 H_y0) (pc3_thin_dx c0 t3 x1 
+(ty3_unique g c0 t2 t3 H0 x1 H_y) x0 Cast)))) (ty3_correct g c0 t2 x1 H_y)))) 
+(ty3_correct g c0 t3 x0 H_y0))))) t4 H9))))))) H5))))))))))))) c u t1 H))))).
 
index deda207baf6bf3e0ed2d7c80e8864c5e4e8ee5a4..31c65c5b2d2eb5ac37504e3019b6750cdb0be77a 100644 (file)
@@ -21,33 +21,26 @@ let rec wcpr0_ind (P: (C \to (C \to Prop))) (f: (\forall (c: C).(P c c)))
 (\forall (u1: T).(\forall (u2: T).((pr0 u1 u2) \to (\forall (k: K).(P (CHead 
 c1 k u1) (CHead c2 k u2))))))))))) (c: C) (c0: C) (w: wcpr0 c c0) on w: P c 
 c0 \def match w with [(wcpr0_refl c1) \Rightarrow (f c1) | (wcpr0_comp c1 c2 
-w0 u1 u2 p k) \Rightarrow (let TMP_1 \def ((wcpr0_ind P f f0) c1 c2 w0) in 
-(f0 c1 c2 w0 TMP_1 u1 u2 p k))].
+w0 u1 u2 p k) \Rightarrow (f0 c1 c2 w0 ((wcpr0_ind P f f0) c1 c2 w0) u1 u2 p 
+k)].
 
 theorem wcpr0_gen_sort:
  \forall (x: C).(\forall (n: nat).((wcpr0 (CSort n) x) \to (eq C x (CSort 
 n))))
 \def
- \lambda (x: C).(\lambda (n: nat).(\lambda (H: (wcpr0 (CSort n) x)).(let 
-TMP_1 \def (CSort n) in (let TMP_2 \def (\lambda (c: C).(wcpr0 c x)) in (let 
-TMP_3 \def (\lambda (c: C).(eq C x c)) in (let TMP_19 \def (\lambda (y: 
-C).(\lambda (H0: (wcpr0 y x)).(let TMP_4 \def (\lambda (c: C).(\lambda (c0: 
-C).((eq C c (CSort n)) \to (eq C c0 c)))) in (let TMP_11 \def (\lambda (c: 
-C).(\lambda (H1: (eq C c (CSort n))).(let TMP_5 \def (\lambda (e: C).e) in 
-(let TMP_6 \def (CSort n) in (let H2 \def (f_equal C C TMP_5 c TMP_6 H1) in 
-(let TMP_7 \def (CSort n) in (let TMP_8 \def (\lambda (c0: C).(eq C c0 c0)) 
-in (let TMP_9 \def (CSort n) in (let TMP_10 \def (refl_equal C TMP_9) in 
-(eq_ind_r C TMP_7 TMP_8 TMP_10 c H2)))))))))) in (let TMP_18 \def (\lambda 
-(c1: C).(\lambda (c2: C).(\lambda (_: (wcpr0 c1 c2)).(\lambda (_: (((eq C c1 
-(CSort n)) \to (eq C c2 c1)))).(\lambda (u1: T).(\lambda (u2: T).(\lambda (_: 
-(pr0 u1 u2)).(\lambda (k: K).(\lambda (H4: (eq C (CHead c1 k u1) (CSort 
-n))).(let TMP_12 \def (CHead c1 k u1) in (let TMP_13 \def (\lambda (ee: 
-C).(match ee with [(CSort _) \Rightarrow False | (CHead _ _ _) \Rightarrow 
-True])) in (let TMP_14 \def (CSort n) in (let H5 \def (eq_ind C TMP_12 TMP_13 
-I TMP_14 H4) in (let TMP_15 \def (CHead c2 k u2) in (let TMP_16 \def (CHead 
-c1 k u1) in (let TMP_17 \def (eq C TMP_15 TMP_16) in (False_ind TMP_17 
-H5))))))))))))))))) in (wcpr0_ind TMP_4 TMP_11 TMP_18 y x H0)))))) in 
-(insert_eq C TMP_1 TMP_2 TMP_3 TMP_19 H))))))).
+ \lambda (x: C).(\lambda (n: nat).(\lambda (H: (wcpr0 (CSort n) 
+x)).(insert_eq C (CSort n) (\lambda (c: C).(wcpr0 c x)) (\lambda (c: C).(eq C 
+x c)) (\lambda (y: C).(\lambda (H0: (wcpr0 y x)).(wcpr0_ind (\lambda (c: 
+C).(\lambda (c0: C).((eq C c (CSort n)) \to (eq C c0 c)))) (\lambda (c: 
+C).(\lambda (H1: (eq C c (CSort n))).(let H2 \def (f_equal C C (\lambda (e: 
+C).e) c (CSort n) H1) in (eq_ind_r C (CSort n) (\lambda (c0: C).(eq C c0 c0)) 
+(refl_equal C (CSort n)) c H2)))) (\lambda (c1: C).(\lambda (c2: C).(\lambda 
+(_: (wcpr0 c1 c2)).(\lambda (_: (((eq C c1 (CSort n)) \to (eq C c2 
+c1)))).(\lambda (u1: T).(\lambda (u2: T).(\lambda (_: (pr0 u1 u2)).(\lambda 
+(k: K).(\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 with [(CSort _) \Rightarrow False 
+| (CHead _ _ _) \Rightarrow True])) I (CSort n) H4) in (False_ind (eq C 
+(CHead c2 k u2) (CHead c1 k u1)) H5))))))))))) y x H0))) H))).
 
 theorem wcpr0_gen_head:
  \forall (k: K).(\forall (c1: C).(\forall (x: C).(\forall (u1: T).((wcpr0 
@@ -56,99 +49,57 @@ C).(\lambda (u2: T).(eq C x (CHead c2 k u2)))) (\lambda (c2: C).(\lambda (_:
 T).(wcpr0 c1 c2))) (\lambda (_: C).(\lambda (u2: T).(pr0 u1 u2)))))))))
 \def
  \lambda (k: K).(\lambda (c1: C).(\lambda (x: C).(\lambda (u1: T).(\lambda 
-(H: (wcpr0 (CHead c1 k u1) x)).(let TMP_1 \def (CHead c1 k u1) in (let TMP_2 
-\def (\lambda (c: C).(wcpr0 c x)) in (let TMP_9 \def (\lambda (c: C).(let 
-TMP_3 \def (eq C x c) in (let TMP_5 \def (\lambda (c2: C).(\lambda (u2: 
-T).(let TMP_4 \def (CHead c2 k u2) in (eq C x TMP_4)))) in (let TMP_6 \def 
-(\lambda (c2: C).(\lambda (_: T).(wcpr0 c1 c2))) in (let TMP_7 \def (\lambda 
-(_: C).(\lambda (u2: T).(pr0 u1 u2))) in (let TMP_8 \def (ex3_2 C T TMP_5 
-TMP_6 TMP_7) in (or TMP_3 TMP_8))))))) in (let TMP_111 \def (\lambda (y: 
-C).(\lambda (H0: (wcpr0 y x)).(let TMP_16 \def (\lambda (c: C).(\lambda (c0: 
-C).((eq C c (CHead c1 k u1)) \to (let TMP_10 \def (eq C c0 c) in (let TMP_12 
-\def (\lambda (c2: C).(\lambda (u2: T).(let TMP_11 \def (CHead c2 k u2) in 
-(eq C c0 TMP_11)))) in (let TMP_13 \def (\lambda (c2: C).(\lambda (_: 
-T).(wcpr0 c1 c2))) in (let TMP_14 \def (\lambda (_: C).(\lambda (u2: T).(pr0 
-u1 u2))) in (let TMP_15 \def (ex3_2 C T TMP_12 TMP_13 TMP_14) in (or TMP_10 
-TMP_15))))))))) in (let TMP_39 \def (\lambda (c: C).(\lambda (H1: (eq C c 
-(CHead c1 k u1))).(let TMP_17 \def (\lambda (e: C).e) in (let TMP_18 \def 
-(CHead c1 k u1) in (let H2 \def (f_equal C C TMP_17 c TMP_18 H1) in (let 
-TMP_19 \def (CHead c1 k u1) in (let TMP_26 \def (\lambda (c0: C).(let TMP_20 
-\def (eq C c0 c0) in (let TMP_22 \def (\lambda (c2: C).(\lambda (u2: T).(let 
-TMP_21 \def (CHead c2 k u2) in (eq C c0 TMP_21)))) in (let TMP_23 \def 
-(\lambda (c2: C).(\lambda (_: T).(wcpr0 c1 c2))) in (let TMP_24 \def (\lambda 
-(_: C).(\lambda (u2: T).(pr0 u1 u2))) in (let TMP_25 \def (ex3_2 C T TMP_22 
-TMP_23 TMP_24) in (or TMP_20 TMP_25))))))) in (let TMP_27 \def (CHead c1 k 
-u1) in (let TMP_28 \def (CHead c1 k u1) in (let TMP_29 \def (eq C TMP_27 
-TMP_28) in (let TMP_32 \def (\lambda (c2: C).(\lambda (u2: T).(let TMP_30 
-\def (CHead c1 k u1) in (let TMP_31 \def (CHead c2 k u2) in (eq C TMP_30 
-TMP_31))))) in (let TMP_33 \def (\lambda (c2: C).(\lambda (_: T).(wcpr0 c1 
-c2))) in (let TMP_34 \def (\lambda (_: C).(\lambda (u2: T).(pr0 u1 u2))) in 
-(let TMP_35 \def (ex3_2 C T TMP_32 TMP_33 TMP_34) in (let TMP_36 \def (CHead 
-c1 k u1) in (let TMP_37 \def (refl_equal C TMP_36) in (let TMP_38 \def 
-(or_introl TMP_29 TMP_35 TMP_37) in (eq_ind_r C TMP_19 TMP_26 TMP_38 c 
-H2)))))))))))))))))) in (let TMP_110 \def (\lambda (c0: C).(\lambda (c2: 
+(H: (wcpr0 (CHead c1 k u1) x)).(insert_eq C (CHead c1 k u1) (\lambda (c: 
+C).(wcpr0 c x)) (\lambda (c: C).(or (eq C x c) (ex3_2 C T (\lambda (c2: 
+C).(\lambda (u2: T).(eq C x (CHead c2 k u2)))) (\lambda (c2: C).(\lambda (_: 
+T).(wcpr0 c1 c2))) (\lambda (_: C).(\lambda (u2: T).(pr0 u1 u2)))))) (\lambda 
+(y: C).(\lambda (H0: (wcpr0 y x)).(wcpr0_ind (\lambda (c: C).(\lambda (c0: 
+C).((eq C c (CHead c1 k u1)) \to (or (eq C c0 c) (ex3_2 C T (\lambda (c2: 
+C).(\lambda (u2: T).(eq C c0 (CHead c2 k u2)))) (\lambda (c2: C).(\lambda (_: 
+T).(wcpr0 c1 c2))) (\lambda (_: C).(\lambda (u2: T).(pr0 u1 u2)))))))) 
+(\lambda (c: C).(\lambda (H1: (eq C c (CHead c1 k u1))).(let H2 \def (f_equal 
+C C (\lambda (e: C).e) c (CHead c1 k u1) H1) in (eq_ind_r C (CHead c1 k u1) 
+(\lambda (c0: C).(or (eq C c0 c0) (ex3_2 C T (\lambda (c2: C).(\lambda (u2: 
+T).(eq C c0 (CHead c2 k u2)))) (\lambda (c2: C).(\lambda (_: T).(wcpr0 c1 
+c2))) (\lambda (_: C).(\lambda (u2: T).(pr0 u1 u2)))))) (or_introl (eq C 
+(CHead c1 k u1) (CHead c1 k u1)) (ex3_2 C T (\lambda (c2: C).(\lambda (u2: 
+T).(eq C (CHead c1 k u1) (CHead c2 k u2)))) (\lambda (c2: C).(\lambda (_: 
+T).(wcpr0 c1 c2))) (\lambda (_: C).(\lambda (u2: T).(pr0 u1 u2)))) 
+(refl_equal C (CHead c1 k u1))) c H2)))) (\lambda (c0: C).(\lambda (c2: 
 C).(\lambda (H1: (wcpr0 c0 c2)).(\lambda (H2: (((eq C c0 (CHead c1 k u1)) \to 
 (or (eq C c2 c0) (ex3_2 C T (\lambda (c3: C).(\lambda (u2: T).(eq C c2 (CHead 
 c3 k u2)))) (\lambda (c3: C).(\lambda (_: T).(wcpr0 c1 c3))) (\lambda (_: 
 C).(\lambda (u2: T).(pr0 u1 u2)))))))).(\lambda (u0: T).(\lambda (u2: 
 T).(\lambda (H3: (pr0 u0 u2)).(\lambda (k0: K).(\lambda (H4: (eq C (CHead c0 
-k0 u0) (CHead c1 k u1))).(let TMP_40 \def (\lambda (e: C).(match e with 
-[(CSort _) \Rightarrow c0 | (CHead c _ _) \Rightarrow c])) in (let TMP_41 
-\def (CHead c0 k0 u0) in (let TMP_42 \def (CHead c1 k u1) in (let H5 \def 
-(f_equal C C TMP_40 TMP_41 TMP_42 H4) in (let TMP_43 \def (\lambda (e: 
-C).(match e with [(CSort _) \Rightarrow k0 | (CHead _ k1 _) \Rightarrow k1])) 
-in (let TMP_44 \def (CHead c0 k0 u0) in (let TMP_45 \def (CHead c1 k u1) in 
-(let H6 \def (f_equal C K TMP_43 TMP_44 TMP_45 H4) in (let TMP_46 \def 
-(\lambda (e: C).(match e with [(CSort _) \Rightarrow u0 | (CHead _ _ t) 
-\Rightarrow t])) in (let TMP_47 \def (CHead c0 k0 u0) in (let TMP_48 \def 
-(CHead c1 k u1) in (let H7 \def (f_equal C T TMP_46 TMP_47 TMP_48 H4) in (let 
-TMP_108 \def (\lambda (H8: (eq K k0 k)).(\lambda (H9: (eq C c0 c1)).(let 
-TMP_58 \def (\lambda (k1: K).(let TMP_49 \def (CHead c2 k1 u2) in (let TMP_50 
-\def (CHead c0 k1 u0) in (let TMP_51 \def (eq C TMP_49 TMP_50) in (let TMP_54 
-\def (\lambda (c3: C).(\lambda (u3: T).(let TMP_52 \def (CHead c2 k1 u2) in 
-(let TMP_53 \def (CHead c3 k u3) in (eq C TMP_52 TMP_53))))) in (let TMP_55 
-\def (\lambda (c3: C).(\lambda (_: T).(wcpr0 c1 c3))) in (let TMP_56 \def 
-(\lambda (_: C).(\lambda (u3: T).(pr0 u1 u3))) in (let TMP_57 \def (ex3_2 C T 
-TMP_54 TMP_55 TMP_56) in (or TMP_51 TMP_57))))))))) in (let TMP_59 \def 
-(\lambda (t: T).(pr0 t u2)) in (let H10 \def (eq_ind T u0 TMP_59 H3 u1 H7) in 
-(let TMP_69 \def (\lambda (t: T).(let TMP_60 \def (CHead c2 k u2) in (let 
-TMP_61 \def (CHead c0 k t) in (let TMP_62 \def (eq C TMP_60 TMP_61) in (let 
-TMP_65 \def (\lambda (c3: C).(\lambda (u3: T).(let TMP_63 \def (CHead c2 k 
-u2) in (let TMP_64 \def (CHead c3 k u3) in (eq C TMP_63 TMP_64))))) in (let 
-TMP_66 \def (\lambda (c3: C).(\lambda (_: T).(wcpr0 c1 c3))) in (let TMP_67 
-\def (\lambda (_: C).(\lambda (u3: T).(pr0 u1 u3))) in (let TMP_68 \def 
-(ex3_2 C T TMP_65 TMP_66 TMP_67) in (or TMP_62 TMP_68))))))))) in (let TMP_76 
-\def (\lambda (c: C).((eq C c (CHead c1 k u1)) \to (let TMP_70 \def (eq C c2 
-c) in (let TMP_72 \def (\lambda (c3: C).(\lambda (u3: T).(let TMP_71 \def 
-(CHead c3 k u3) in (eq C c2 TMP_71)))) in (let TMP_73 \def (\lambda (c3: 
-C).(\lambda (_: T).(wcpr0 c1 c3))) in (let TMP_74 \def (\lambda (_: 
-C).(\lambda (u3: T).(pr0 u1 u3))) in (let TMP_75 \def (ex3_2 C T TMP_72 
-TMP_73 TMP_74) in (or TMP_70 TMP_75)))))))) in (let H11 \def (eq_ind C c0 
-TMP_76 H2 c1 H9) in (let TMP_77 \def (\lambda (c: C).(wcpr0 c c2)) in (let 
-H12 \def (eq_ind C c0 TMP_77 H1 c1 H9) in (let TMP_87 \def (\lambda (c: 
-C).(let TMP_78 \def (CHead c2 k u2) in (let TMP_79 \def (CHead c k u1) in 
-(let TMP_80 \def (eq C TMP_78 TMP_79) in (let TMP_83 \def (\lambda (c3: 
-C).(\lambda (u3: T).(let TMP_81 \def (CHead c2 k u2) in (let TMP_82 \def 
-(CHead c3 k u3) in (eq C TMP_81 TMP_82))))) in (let TMP_84 \def (\lambda (c3: 
-C).(\lambda (_: T).(wcpr0 c1 c3))) in (let TMP_85 \def (\lambda (_: 
-C).(\lambda (u3: T).(pr0 u1 u3))) in (let TMP_86 \def (ex3_2 C T TMP_83 
-TMP_84 TMP_85) in (or TMP_80 TMP_86))))))))) in (let TMP_88 \def (CHead c2 k 
-u2) in (let TMP_89 \def (CHead c1 k u1) in (let TMP_90 \def (eq C TMP_88 
-TMP_89) in (let TMP_93 \def (\lambda (c3: C).(\lambda (u3: T).(let TMP_91 
-\def (CHead c2 k u2) in (let TMP_92 \def (CHead c3 k u3) in (eq C TMP_91 
-TMP_92))))) in (let TMP_94 \def (\lambda (c3: C).(\lambda (_: T).(wcpr0 c1 
-c3))) in (let TMP_95 \def (\lambda (_: C).(\lambda (u3: T).(pr0 u1 u3))) in 
-(let TMP_96 \def (ex3_2 C T TMP_93 TMP_94 TMP_95) in (let TMP_99 \def 
-(\lambda (c3: C).(\lambda (u3: T).(let TMP_97 \def (CHead c2 k u2) in (let 
-TMP_98 \def (CHead c3 k u3) in (eq C TMP_97 TMP_98))))) in (let TMP_100 \def 
-(\lambda (c3: C).(\lambda (_: T).(wcpr0 c1 c3))) in (let TMP_101 \def 
-(\lambda (_: C).(\lambda (u3: T).(pr0 u1 u3))) in (let TMP_102 \def (CHead c2 
-k u2) in (let TMP_103 \def (refl_equal C TMP_102) in (let TMP_104 \def 
-(ex3_2_intro C T TMP_99 TMP_100 TMP_101 c2 u2 TMP_103 H12 H10) in (let 
-TMP_105 \def (or_intror TMP_90 TMP_96 TMP_104) in (let TMP_106 \def (eq_ind_r 
-C c1 TMP_87 TMP_105 c0 H9) in (let TMP_107 \def (eq_ind_r T u1 TMP_69 TMP_106 
-u0 H7) in (eq_ind_r K k TMP_58 TMP_107 k0 H8)))))))))))))))))))))))))))) in 
-(let TMP_109 \def (TMP_108 H6) in (TMP_109 H5)))))))))))))))))))))))) in 
-(wcpr0_ind TMP_16 TMP_39 TMP_110 y x H0)))))) in (insert_eq C TMP_1 TMP_2 
-TMP_9 TMP_111 H))))))))).
+k0 u0) (CHead c1 k u1))).(let H5 \def (f_equal C C (\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)).(eq_ind_r K k (\lambda (k1: K).(or (eq C (CHead c2 k1 u2) 
+(CHead c0 k1 u0)) (ex3_2 C T (\lambda (c3: C).(\lambda (u3: T).(eq C (CHead 
+c2 k1 u2) (CHead c3 k u3)))) (\lambda (c3: C).(\lambda (_: T).(wcpr0 c1 c3))) 
+(\lambda (_: C).(\lambda (u3: T).(pr0 u1 u3)))))) (let H10 \def (eq_ind T u0 
+(\lambda (t: T).(pr0 t u2)) H3 u1 H7) in (eq_ind_r T u1 (\lambda (t: T).(or 
+(eq C (CHead c2 k u2) (CHead c0 k t)) (ex3_2 C T (\lambda (c3: C).(\lambda 
+(u3: T).(eq C (CHead c2 k u2) (CHead c3 k u3)))) (\lambda (c3: C).(\lambda 
+(_: T).(wcpr0 c1 c3))) (\lambda (_: C).(\lambda (u3: T).(pr0 u1 u3)))))) (let 
+H11 \def (eq_ind C c0 (\lambda (c: C).((eq C c (CHead c1 k u1)) \to (or (eq C 
+c2 c) (ex3_2 C T (\lambda (c3: C).(\lambda (u3: T).(eq C c2 (CHead c3 k 
+u3)))) (\lambda (c3: C).(\lambda (_: T).(wcpr0 c1 c3))) (\lambda (_: 
+C).(\lambda (u3: T).(pr0 u1 u3))))))) H2 c1 H9) in (let H12 \def (eq_ind C c0 
+(\lambda (c: C).(wcpr0 c c2)) H1 c1 H9) in (eq_ind_r C c1 (\lambda (c: C).(or 
+(eq C (CHead c2 k u2) (CHead c k u1)) (ex3_2 C T (\lambda (c3: C).(\lambda 
+(u3: T).(eq C (CHead c2 k u2) (CHead c3 k u3)))) (\lambda (c3: C).(\lambda 
+(_: T).(wcpr0 c1 c3))) (\lambda (_: C).(\lambda (u3: T).(pr0 u1 u3)))))) 
+(or_intror (eq C (CHead c2 k u2) (CHead c1 k u1)) (ex3_2 C T (\lambda (c3: 
+C).(\lambda (u3: T).(eq C (CHead c2 k u2) (CHead c3 k u3)))) (\lambda (c3: 
+C).(\lambda (_: T).(wcpr0 c1 c3))) (\lambda (_: C).(\lambda (u3: T).(pr0 u1 
+u3)))) (ex3_2_intro C T (\lambda (c3: C).(\lambda (u3: T).(eq C (CHead c2 k 
+u2) (CHead c3 k u3)))) (\lambda (c3: C).(\lambda (_: T).(wcpr0 c1 c3))) 
+(\lambda (_: C).(\lambda (u3: T).(pr0 u1 u3))) c2 u2 (refl_equal C (CHead c2 
+k u2)) H12 H10)) c0 H9))) u0 H7)) k0 H8)))) H6)) H5))))))))))) y x H0))) 
+H))))).
 
index 4eb36afbe06d94811e5b34a9f864414e86a9a092..7afd013f996fa7774675011c36142dc34289ccee 100644 (file)
@@ -25,146 +25,96 @@ e1 k u1)) \to (ex3_2 C T (\lambda (e2: C).(\lambda (u2: T).(drop h O c2
 (CHead e2 k u2)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 e1 e2))) (\lambda 
 (_: C).(\lambda (u2: T).(pr0 u1 u2)))))))))))
 \def
- \lambda (c1: C).(\lambda (c2: C).(\lambda (H: (wcpr0 c1 c2)).(let TMP_5 \def 
+ \lambda (c1: C).(\lambda (c2: C).(\lambda (H: (wcpr0 c1 c2)).(wcpr0_ind 
 (\lambda (c: C).(\lambda (c0: C).(\forall (h: nat).(\forall (e1: C).(\forall 
-(u1: T).(\forall (k: K).((drop h O c (CHead e1 k u1)) \to (let TMP_2 \def 
-(\lambda (e2: C).(\lambda (u2: T).(let TMP_1 \def (CHead e2 k u2) in (drop h 
-O c0 TMP_1)))) in (let TMP_3 \def (\lambda (e2: C).(\lambda (_: T).(wcpr0 e1 
-e2))) in (let TMP_4 \def (\lambda (_: C).(\lambda (u2: T).(pr0 u1 u2))) in 
-(ex3_2 C T TMP_2 TMP_3 TMP_4))))))))))) in (let TMP_12 \def (\lambda (c: 
-C).(\lambda (h: nat).(\lambda (e1: C).(\lambda (u1: T).(\lambda (k: 
-K).(\lambda (H0: (drop h O c (CHead e1 k u1))).(let TMP_7 \def (\lambda (e2: 
-C).(\lambda (u2: T).(let TMP_6 \def (CHead e2 k u2) in (drop h O c TMP_6)))) 
-in (let TMP_8 \def (\lambda (e2: C).(\lambda (_: T).(wcpr0 e1 e2))) in (let 
-TMP_9 \def (\lambda (_: C).(\lambda (u2: T).(pr0 u1 u2))) in (let TMP_10 \def 
-(wcpr0_refl e1) in (let TMP_11 \def (pr0_refl u1) in (ex3_2_intro C T TMP_7 
-TMP_8 TMP_9 e1 u1 H0 TMP_10 TMP_11)))))))))))) in (let TMP_132 \def (\lambda 
-(c3: C).(\lambda (c4: C).(\lambda (H0: (wcpr0 c3 c4)).(\lambda (H1: ((\forall 
-(h: nat).(\forall (e1: C).(\forall (u1: T).(\forall (k: K).((drop h O c3 
-(CHead e1 k u1)) \to (ex3_2 C T (\lambda (e2: C).(\lambda (u2: T).(drop h O 
-c4 (CHead e2 k u2)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 e1 e2))) 
-(\lambda (_: C).(\lambda (u2: T).(pr0 u1 u2))))))))))).(\lambda (u1: 
-T).(\lambda (u2: T).(\lambda (H2: (pr0 u1 u2)).(\lambda (k: K).(\lambda (h: 
-nat).(let TMP_18 \def (\lambda (n: nat).(\forall (e1: C).(\forall (u3: 
-T).(\forall (k0: K).((drop n O (CHead c3 k u1) (CHead e1 k0 u3)) \to (let 
-TMP_15 \def (\lambda (e2: C).(\lambda (u4: T).(let TMP_13 \def (CHead c4 k 
-u2) in (let TMP_14 \def (CHead e2 k0 u4) in (drop n O TMP_13 TMP_14))))) in 
-(let TMP_16 \def (\lambda (e2: C).(\lambda (_: T).(wcpr0 e1 e2))) in (let 
-TMP_17 \def (\lambda (_: C).(\lambda (u4: T).(pr0 u3 u4))) in (ex3_2 C T 
-TMP_15 TMP_16 TMP_17))))))))) in (let TMP_67 \def (\lambda (e1: C).(\lambda 
-(u0: T).(\lambda (k0: K).(\lambda (H3: (drop O O (CHead c3 k u1) (CHead e1 k0 
-u0))).(let TMP_19 \def (\lambda (e: C).(match e with [(CSort _) \Rightarrow 
-c3 | (CHead c _ _) \Rightarrow c])) in (let TMP_20 \def (CHead c3 k u1) in 
-(let TMP_21 \def (CHead e1 k0 u0) in (let TMP_22 \def (CHead c3 k u1) in (let 
-TMP_23 \def (CHead e1 k0 u0) in (let TMP_24 \def (drop_gen_refl TMP_22 TMP_23 
-H3) in (let H4 \def (f_equal C C TMP_19 TMP_20 TMP_21 TMP_24) in (let TMP_25 
-\def (\lambda (e: C).(match e with [(CSort _) \Rightarrow k | (CHead _ k1 _) 
-\Rightarrow k1])) in (let TMP_26 \def (CHead c3 k u1) in (let TMP_27 \def 
-(CHead e1 k0 u0) in (let TMP_28 \def (CHead c3 k u1) in (let TMP_29 \def 
-(CHead e1 k0 u0) in (let TMP_30 \def (drop_gen_refl TMP_28 TMP_29 H3) in (let 
-H5 \def (f_equal C K TMP_25 TMP_26 TMP_27 TMP_30) in (let TMP_31 \def 
-(\lambda (e: C).(match e with [(CSort _) \Rightarrow u1 | (CHead _ _ t) 
-\Rightarrow t])) in (let TMP_32 \def (CHead c3 k u1) in (let TMP_33 \def 
-(CHead e1 k0 u0) in (let TMP_34 \def (CHead c3 k u1) in (let TMP_35 \def 
-(CHead e1 k0 u0) in (let TMP_36 \def (drop_gen_refl TMP_34 TMP_35 H3) in (let 
-H6 \def (f_equal C T TMP_31 TMP_32 TMP_33 TMP_36) in (let TMP_65 \def 
-(\lambda (H7: (eq K k k0)).(\lambda (H8: (eq C c3 e1)).(let TMP_42 \def 
-(\lambda (k1: K).(let TMP_39 \def (\lambda (e2: C).(\lambda (u3: T).(let 
-TMP_37 \def (CHead c4 k u2) in (let TMP_38 \def (CHead e2 k1 u3) in (drop O O 
-TMP_37 TMP_38))))) in (let TMP_40 \def (\lambda (e2: C).(\lambda (_: 
-T).(wcpr0 e1 e2))) in (let TMP_41 \def (\lambda (_: C).(\lambda (u3: T).(pr0 
-u0 u3))) in (ex3_2 C T TMP_39 TMP_40 TMP_41))))) in (let TMP_48 \def (\lambda 
-(t: T).(let TMP_45 \def (\lambda (e2: C).(\lambda (u3: T).(let TMP_43 \def 
-(CHead c4 k u2) in (let TMP_44 \def (CHead e2 k u3) in (drop O O TMP_43 
-TMP_44))))) in (let TMP_46 \def (\lambda (e2: C).(\lambda (_: T).(wcpr0 e1 
-e2))) in (let TMP_47 \def (\lambda (_: C).(\lambda (u3: T).(pr0 t u3))) in 
-(ex3_2 C T TMP_45 TMP_46 TMP_47))))) in (let TMP_54 \def (\lambda (c: C).(let 
-TMP_51 \def (\lambda (e2: C).(\lambda (u3: T).(let TMP_49 \def (CHead c4 k 
-u2) in (let TMP_50 \def (CHead e2 k u3) in (drop O O TMP_49 TMP_50))))) in 
-(let TMP_52 \def (\lambda (e2: C).(\lambda (_: T).(wcpr0 c e2))) in (let 
-TMP_53 \def (\lambda (_: C).(\lambda (u3: T).(pr0 u1 u3))) in (ex3_2 C T 
-TMP_51 TMP_52 TMP_53))))) in (let TMP_57 \def (\lambda (e2: C).(\lambda (u3: 
-T).(let TMP_55 \def (CHead c4 k u2) in (let TMP_56 \def (CHead e2 k u3) in 
-(drop O O TMP_55 TMP_56))))) in (let TMP_58 \def (\lambda (e2: C).(\lambda 
-(_: T).(wcpr0 c3 e2))) in (let TMP_59 \def (\lambda (_: C).(\lambda (u3: 
-T).(pr0 u1 u3))) in (let TMP_60 \def (CHead c4 k u2) in (let TMP_61 \def 
-(drop_refl TMP_60) in (let TMP_62 \def (ex3_2_intro C T TMP_57 TMP_58 TMP_59 
-c4 u2 TMP_61 H0 H2) in (let TMP_63 \def (eq_ind C c3 TMP_54 TMP_62 e1 H8) in 
-(let TMP_64 \def (eq_ind T u1 TMP_48 TMP_63 u0 H6) in (eq_ind K k TMP_42 
-TMP_64 k0 H7)))))))))))))) in (let TMP_66 \def (TMP_65 H5) in (TMP_66 
-H4)))))))))))))))))))))))))))) in (let TMP_74 \def (\lambda (k0: K).(\forall 
-(n: nat).(((\forall (e1: C).(\forall (u3: T).(\forall (k1: K).((drop n O 
-(CHead c3 k0 u1) (CHead e1 k1 u3)) \to (ex3_2 C T (\lambda (e2: C).(\lambda 
-(u4: T).(drop n O (CHead c4 k0 u2) (CHead e2 k1 u4)))) (\lambda (e2: 
+(u1: T).(\forall (k: K).((drop h O c (CHead e1 k u1)) \to (ex3_2 C T (\lambda 
+(e2: C).(\lambda (u2: T).(drop h O c0 (CHead e2 k u2)))) (\lambda (e2: 
+C).(\lambda (_: T).(wcpr0 e1 e2))) (\lambda (_: C).(\lambda (u2: T).(pr0 u1 
+u2))))))))))) (\lambda (c: C).(\lambda (h: nat).(\lambda (e1: C).(\lambda 
+(u1: T).(\lambda (k: K).(\lambda (H0: (drop h O c (CHead e1 k 
+u1))).(ex3_2_intro C T (\lambda (e2: C).(\lambda (u2: T).(drop h O c (CHead 
+e2 k u2)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 e1 e2))) (\lambda (_: 
+C).(\lambda (u2: T).(pr0 u1 u2))) e1 u1 H0 (wcpr0_refl e1) (pr0_refl 
+u1)))))))) (\lambda (c3: C).(\lambda (c4: C).(\lambda (H0: (wcpr0 c3 
+c4)).(\lambda (H1: ((\forall (h: nat).(\forall (e1: C).(\forall (u1: 
+T).(\forall (k: K).((drop h O c3 (CHead e1 k u1)) \to (ex3_2 C T (\lambda 
+(e2: C).(\lambda (u2: T).(drop h O c4 (CHead e2 k u2)))) (\lambda (e2: 
+C).(\lambda (_: T).(wcpr0 e1 e2))) (\lambda (_: C).(\lambda (u2: T).(pr0 u1 
+u2))))))))))).(\lambda (u1: T).(\lambda (u2: T).(\lambda (H2: (pr0 u1 
+u2)).(\lambda (k: K).(\lambda (h: nat).(nat_ind (\lambda (n: nat).(\forall 
+(e1: C).(\forall (u3: T).(\forall (k0: K).((drop n O (CHead c3 k u1) (CHead 
+e1 k0 u3)) \to (ex3_2 C T (\lambda (e2: C).(\lambda (u4: T).(drop n O (CHead 
+c4 k u2) (CHead e2 k0 u4)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 e1 e2))) 
+(\lambda (_: C).(\lambda (u4: T).(pr0 u3 u4))))))))) (\lambda (e1: 
+C).(\lambda (u0: T).(\lambda (k0: K).(\lambda (H3: (drop O O (CHead c3 k u1) 
+(CHead e1 k0 u0))).(let H4 \def (f_equal C C (\lambda (e: C).(match e with 
+[(CSort _) \Rightarrow c3 | (CHead c _ _) \Rightarrow c])) (CHead c3 k u1) 
+(CHead e1 k0 u0) (drop_gen_refl (CHead c3 k u1) (CHead e1 k0 u0) H3)) in 
+((let H5 \def (f_equal C K (\lambda (e: C).(match e with [(CSort _) 
+\Rightarrow k | (CHead _ k1 _) \Rightarrow k1])) (CHead c3 k u1) (CHead e1 k0 
+u0) (drop_gen_refl (CHead c3 k u1) (CHead e1 k0 u0) H3)) in ((let H6 \def 
+(f_equal C T (\lambda (e: C).(match e with [(CSort _) \Rightarrow u1 | (CHead 
+_ _ t) \Rightarrow t])) (CHead c3 k u1) (CHead e1 k0 u0) (drop_gen_refl 
+(CHead c3 k u1) (CHead e1 k0 u0) H3)) in (\lambda (H7: (eq K k k0)).(\lambda 
+(H8: (eq C c3 e1)).(eq_ind K k (\lambda (k1: K).(ex3_2 C T (\lambda (e2: 
+C).(\lambda (u3: T).(drop O O (CHead c4 k u2) (CHead e2 k1 u3)))) (\lambda 
+(e2: C).(\lambda (_: T).(wcpr0 e1 e2))) (\lambda (_: C).(\lambda (u3: T).(pr0 
+u0 u3))))) (eq_ind T u1 (\lambda (t: T).(ex3_2 C T (\lambda (e2: C).(\lambda 
+(u3: T).(drop O O (CHead c4 k u2) (CHead e2 k u3)))) (\lambda (e2: 
+C).(\lambda (_: T).(wcpr0 e1 e2))) (\lambda (_: C).(\lambda (u3: T).(pr0 t 
+u3))))) (eq_ind C c3 (\lambda (c: C).(ex3_2 C T (\lambda (e2: C).(\lambda 
+(u3: T).(drop O O (CHead c4 k u2) (CHead e2 k u3)))) (\lambda (e2: 
+C).(\lambda (_: T).(wcpr0 c e2))) (\lambda (_: C).(\lambda (u3: T).(pr0 u1 
+u3))))) (ex3_2_intro C T (\lambda (e2: C).(\lambda (u3: T).(drop O O (CHead 
+c4 k u2) (CHead e2 k u3)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 c3 e2))) 
+(\lambda (_: C).(\lambda (u3: T).(pr0 u1 u3))) c4 u2 (drop_refl (CHead c4 k 
+u2)) H0 H2) e1 H8) u0 H6) k0 H7)))) H5)) H4)))))) (K_ind (\lambda (k0: 
+K).(\forall (n: nat).(((\forall (e1: C).(\forall (u3: T).(\forall (k1: 
+K).((drop n O (CHead c3 k0 u1) (CHead e1 k1 u3)) \to (ex3_2 C T (\lambda (e2: 
+C).(\lambda (u4: T).(drop n O (CHead c4 k0 u2) (CHead e2 k1 u4)))) (\lambda 
+(e2: C).(\lambda (_: T).(wcpr0 e1 e2))) (\lambda (_: C).(\lambda (u4: T).(pr0 
+u3 u4))))))))) \to (\forall (e1: C).(\forall (u3: T).(\forall (k1: K).((drop 
+(S n) O (CHead c3 k0 u1) (CHead e1 k1 u3)) \to (ex3_2 C T (\lambda (e2: 
+C).(\lambda (u4: T).(drop (S n) O (CHead c4 k0 u2) (CHead e2 k1 u4)))) 
+(\lambda (e2: C).(\lambda (_: T).(wcpr0 e1 e2))) (\lambda (_: C).(\lambda 
+(u4: T).(pr0 u3 u4))))))))))) (\lambda (b: B).(\lambda (n: nat).(\lambda (_: 
+((\forall (e1: C).(\forall (u3: T).(\forall (k0: K).((drop n O (CHead c3 
+(Bind b) u1) (CHead e1 k0 u3)) \to (ex3_2 C T (\lambda (e2: C).(\lambda (u4: 
+T).(drop n O (CHead c4 (Bind b) u2) (CHead e2 k0 u4)))) (\lambda (e2: 
 C).(\lambda (_: T).(wcpr0 e1 e2))) (\lambda (_: C).(\lambda (u4: T).(pr0 u3 
-u4))))))))) \to (\forall (e1: C).(\forall (u3: T).(\forall (k1: K).((drop (S 
-n) O (CHead c3 k0 u1) (CHead e1 k1 u3)) \to (let TMP_71 \def (\lambda (e2: 
-C).(\lambda (u4: T).(let TMP_68 \def (S n) in (let TMP_69 \def (CHead c4 k0 
-u2) in (let TMP_70 \def (CHead e2 k1 u4) in (drop TMP_68 O TMP_69 
-TMP_70)))))) in (let TMP_72 \def (\lambda (e2: C).(\lambda (_: T).(wcpr0 e1 
-e2))) in (let TMP_73 \def (\lambda (_: C).(\lambda (u4: T).(pr0 u3 u4))) in 
-(ex3_2 C T TMP_71 TMP_72 TMP_73))))))))))) in (let TMP_101 \def (\lambda (b: 
-B).(\lambda (n: nat).(\lambda (_: ((\forall (e1: C).(\forall (u3: T).(\forall 
-(k0: K).((drop n O (CHead c3 (Bind b) u1) (CHead e1 k0 u3)) \to (ex3_2 C T 
-(\lambda (e2: C).(\lambda (u4: T).(drop n O (CHead c4 (Bind b) u2) (CHead e2 
-k0 u4)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 e1 e2))) (\lambda (_: 
-C).(\lambda (u4: T).(pr0 u3 u4)))))))))).(\lambda (e1: C).(\lambda (u0: 
-T).(\lambda (k0: K).(\lambda (H4: (drop (S n) O (CHead c3 (Bind b) u1) (CHead 
-e1 k0 u0))).(let TMP_75 \def (Bind b) in (let TMP_76 \def (CHead e1 k0 u0) in 
-(let TMP_77 \def (drop_gen_drop TMP_75 c3 TMP_76 u1 n H4) in (let H5 \def (H1 
-n e1 u0 k0 TMP_77) in (let TMP_79 \def (\lambda (e2: C).(\lambda (u3: T).(let 
-TMP_78 \def (CHead e2 k0 u3) in (drop n O c4 TMP_78)))) in (let TMP_80 \def 
-(\lambda (e2: C).(\lambda (_: T).(wcpr0 e1 e2))) in (let TMP_81 \def (\lambda 
-(_: C).(\lambda (u3: T).(pr0 u0 u3))) in (let TMP_86 \def (\lambda (e2: 
-C).(\lambda (u3: T).(let TMP_82 \def (S n) in (let TMP_83 \def (Bind b) in 
-(let TMP_84 \def (CHead c4 TMP_83 u2) in (let TMP_85 \def (CHead e2 k0 u3) in 
-(drop TMP_82 O TMP_84 TMP_85))))))) in (let TMP_87 \def (\lambda (e2: 
-C).(\lambda (_: T).(wcpr0 e1 e2))) in (let TMP_88 \def (\lambda (_: 
-C).(\lambda (u3: T).(pr0 u0 u3))) in (let TMP_89 \def (ex3_2 C T TMP_86 
-TMP_87 TMP_88) in (let TMP_100 \def (\lambda (x0: C).(\lambda (x1: 
-T).(\lambda (H6: (drop n O c4 (CHead x0 k0 x1))).(\lambda (H7: (wcpr0 e1 
-x0)).(\lambda (H8: (pr0 u0 x1)).(let TMP_94 \def (\lambda (e2: C).(\lambda 
-(u3: T).(let TMP_90 \def (S n) in (let TMP_91 \def (Bind b) in (let TMP_92 
-\def (CHead c4 TMP_91 u2) in (let TMP_93 \def (CHead e2 k0 u3) in (drop 
-TMP_90 O TMP_92 TMP_93))))))) in (let TMP_95 \def (\lambda (e2: C).(\lambda 
-(_: T).(wcpr0 e1 e2))) in (let TMP_96 \def (\lambda (_: C).(\lambda (u3: 
-T).(pr0 u0 u3))) in (let TMP_97 \def (Bind b) in (let TMP_98 \def (CHead x0 
-k0 x1) in (let TMP_99 \def (drop_drop TMP_97 n c4 TMP_98 H6 u2) in 
-(ex3_2_intro C T TMP_94 TMP_95 TMP_96 x0 x1 TMP_99 H7 H8)))))))))))) in 
-(ex3_2_ind C T TMP_79 TMP_80 TMP_81 TMP_89 TMP_100 H5)))))))))))))))))))) in 
-(let TMP_130 \def (\lambda (f: F).(\lambda (n: nat).(\lambda (_: ((\forall 
-(e1: C).(\forall (u3: T).(\forall (k0: K).((drop n O (CHead c3 (Flat f) u1) 
-(CHead e1 k0 u3)) \to (ex3_2 C T (\lambda (e2: C).(\lambda (u4: T).(drop n O 
-(CHead c4 (Flat f) u2) (CHead e2 k0 u4)))) (\lambda (e2: C).(\lambda (_: 
-T).(wcpr0 e1 e2))) (\lambda (_: C).(\lambda (u4: T).(pr0 u3 
 u4)))))))))).(\lambda (e1: C).(\lambda (u0: T).(\lambda (k0: K).(\lambda (H4: 
-(drop (S n) O (CHead c3 (Flat f) u1) (CHead e1 k0 u0))).(let TMP_102 \def (S 
-n) in (let TMP_103 \def (Flat f) in (let TMP_104 \def (CHead e1 k0 u0) in 
-(let TMP_105 \def (drop_gen_drop TMP_103 c3 TMP_104 u1 n H4) in (let H5 \def 
-(H1 TMP_102 e1 u0 k0 TMP_105) in (let TMP_108 \def (\lambda (e2: C).(\lambda 
-(u3: T).(let TMP_106 \def (S n) in (let TMP_107 \def (CHead e2 k0 u3) in 
-(drop TMP_106 O c4 TMP_107))))) in (let TMP_109 \def (\lambda (e2: 
-C).(\lambda (_: T).(wcpr0 e1 e2))) in (let TMP_110 \def (\lambda (_: 
-C).(\lambda (u3: T).(pr0 u0 u3))) in (let TMP_115 \def (\lambda (e2: 
-C).(\lambda (u3: T).(let TMP_111 \def (S n) in (let TMP_112 \def (Flat f) in 
-(let TMP_113 \def (CHead c4 TMP_112 u2) in (let TMP_114 \def (CHead e2 k0 u3) 
-in (drop TMP_111 O TMP_113 TMP_114))))))) in (let TMP_116 \def (\lambda (e2: 
-C).(\lambda (_: T).(wcpr0 e1 e2))) in (let TMP_117 \def (\lambda (_: 
-C).(\lambda (u3: T).(pr0 u0 u3))) in (let TMP_118 \def (ex3_2 C T TMP_115 
-TMP_116 TMP_117) in (let TMP_129 \def (\lambda (x0: C).(\lambda (x1: 
-T).(\lambda (H6: (drop (S n) O c4 (CHead x0 k0 x1))).(\lambda (H7: (wcpr0 e1 
-x0)).(\lambda (H8: (pr0 u0 x1)).(let TMP_123 \def (\lambda (e2: C).(\lambda 
-(u3: T).(let TMP_119 \def (S n) in (let TMP_120 \def (Flat f) in (let TMP_121 
-\def (CHead c4 TMP_120 u2) in (let TMP_122 \def (CHead e2 k0 u3) in (drop 
-TMP_119 O TMP_121 TMP_122))))))) in (let TMP_124 \def (\lambda (e2: 
-C).(\lambda (_: T).(wcpr0 e1 e2))) in (let TMP_125 \def (\lambda (_: 
-C).(\lambda (u3: T).(pr0 u0 u3))) in (let TMP_126 \def (Flat f) in (let 
-TMP_127 \def (CHead x0 k0 x1) in (let TMP_128 \def (drop_drop TMP_126 n c4 
-TMP_127 H6 u2) in (ex3_2_intro C T TMP_123 TMP_124 TMP_125 x0 x1 TMP_128 H7 
-H8)))))))))))) in (ex3_2_ind C T TMP_108 TMP_109 TMP_110 TMP_118 TMP_129 
-H5))))))))))))))))))))) in (let TMP_131 \def (K_ind TMP_74 TMP_101 TMP_130 k) 
-in (nat_ind TMP_18 TMP_67 TMP_131 h)))))))))))))))) in (wcpr0_ind TMP_5 
-TMP_12 TMP_132 c1 c2 H)))))).
+(drop (S n) O (CHead c3 (Bind b) u1) (CHead e1 k0 u0))).(let H5 \def (H1 n e1 
+u0 k0 (drop_gen_drop (Bind b) c3 (CHead e1 k0 u0) u1 n H4)) in (ex3_2_ind C T 
+(\lambda (e2: C).(\lambda (u3: T).(drop n O c4 (CHead e2 k0 u3)))) (\lambda 
+(e2: C).(\lambda (_: T).(wcpr0 e1 e2))) (\lambda (_: C).(\lambda (u3: T).(pr0 
+u0 u3))) (ex3_2 C T (\lambda (e2: C).(\lambda (u3: T).(drop (S n) O (CHead c4 
+(Bind b) u2) (CHead e2 k0 u3)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 e1 
+e2))) (\lambda (_: C).(\lambda (u3: T).(pr0 u0 u3)))) (\lambda (x0: 
+C).(\lambda (x1: T).(\lambda (H6: (drop n O c4 (CHead x0 k0 x1))).(\lambda 
+(H7: (wcpr0 e1 x0)).(\lambda (H8: (pr0 u0 x1)).(ex3_2_intro C T (\lambda (e2: 
+C).(\lambda (u3: T).(drop (S n) O (CHead c4 (Bind b) u2) (CHead e2 k0 u3)))) 
+(\lambda (e2: C).(\lambda (_: T).(wcpr0 e1 e2))) (\lambda (_: C).(\lambda 
+(u3: T).(pr0 u0 u3))) x0 x1 (drop_drop (Bind b) n c4 (CHead x0 k0 x1) H6 u2) 
+H7 H8)))))) H5))))))))) (\lambda (f: F).(\lambda (n: nat).(\lambda (_: 
+((\forall (e1: C).(\forall (u3: T).(\forall (k0: K).((drop n O (CHead c3 
+(Flat f) u1) (CHead e1 k0 u3)) \to (ex3_2 C T (\lambda (e2: C).(\lambda (u4: 
+T).(drop n O (CHead c4 (Flat f) u2) (CHead e2 k0 u4)))) (\lambda (e2: 
+C).(\lambda (_: T).(wcpr0 e1 e2))) (\lambda (_: C).(\lambda (u4: T).(pr0 u3 
+u4)))))))))).(\lambda (e1: C).(\lambda (u0: T).(\lambda (k0: K).(\lambda (H4: 
+(drop (S n) O (CHead c3 (Flat f) u1) (CHead e1 k0 u0))).(let H5 \def (H1 (S 
+n) e1 u0 k0 (drop_gen_drop (Flat f) c3 (CHead e1 k0 u0) u1 n H4)) in 
+(ex3_2_ind C T (\lambda (e2: C).(\lambda (u3: T).(drop (S n) O c4 (CHead e2 
+k0 u3)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 e1 e2))) (\lambda (_: 
+C).(\lambda (u3: T).(pr0 u0 u3))) (ex3_2 C T (\lambda (e2: C).(\lambda (u3: 
+T).(drop (S n) O (CHead c4 (Flat f) u2) (CHead e2 k0 u3)))) (\lambda (e2: 
+C).(\lambda (_: T).(wcpr0 e1 e2))) (\lambda (_: C).(\lambda (u3: T).(pr0 u0 
+u3)))) (\lambda (x0: C).(\lambda (x1: T).(\lambda (H6: (drop (S n) O c4 
+(CHead x0 k0 x1))).(\lambda (H7: (wcpr0 e1 x0)).(\lambda (H8: (pr0 u0 
+x1)).(ex3_2_intro C T (\lambda (e2: C).(\lambda (u3: T).(drop (S n) O (CHead 
+c4 (Flat f) u2) (CHead e2 k0 u3)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 
+e1 e2))) (\lambda (_: C).(\lambda (u3: T).(pr0 u0 u3))) x0 x1 (drop_drop 
+(Flat f) n c4 (CHead x0 k0 x1) H6 u2) H7 H8)))))) H5))))))))) k) h)))))))))) 
+c1 c2 H))).
 
 theorem wcpr0_drop_back:
  \forall (c1: C).(\forall (c2: C).((wcpr0 c2 c1) \to (\forall (h: 
@@ -173,146 +123,96 @@ e1 k u1)) \to (ex3_2 C T (\lambda (e2: C).(\lambda (u2: T).(drop h O c2
 (CHead e2 k u2)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 e2 e1))) (\lambda 
 (_: C).(\lambda (u2: T).(pr0 u2 u1)))))))))))
 \def
- \lambda (c1: C).(\lambda (c2: C).(\lambda (H: (wcpr0 c2 c1)).(let TMP_5 \def 
+ \lambda (c1: C).(\lambda (c2: C).(\lambda (H: (wcpr0 c2 c1)).(wcpr0_ind 
 (\lambda (c: C).(\lambda (c0: C).(\forall (h: nat).(\forall (e1: C).(\forall 
-(u1: T).(\forall (k: K).((drop h O c0 (CHead e1 k u1)) \to (let TMP_2 \def 
-(\lambda (e2: C).(\lambda (u2: T).(let TMP_1 \def (CHead e2 k u2) in (drop h 
-O c TMP_1)))) in (let TMP_3 \def (\lambda (e2: C).(\lambda (_: T).(wcpr0 e2 
-e1))) in (let TMP_4 \def (\lambda (_: C).(\lambda (u2: T).(pr0 u2 u1))) in 
-(ex3_2 C T TMP_2 TMP_3 TMP_4))))))))))) in (let TMP_12 \def (\lambda (c: 
-C).(\lambda (h: nat).(\lambda (e1: C).(\lambda (u1: T).(\lambda (k: 
-K).(\lambda (H0: (drop h O c (CHead e1 k u1))).(let TMP_7 \def (\lambda (e2: 
-C).(\lambda (u2: T).(let TMP_6 \def (CHead e2 k u2) in (drop h O c TMP_6)))) 
-in (let TMP_8 \def (\lambda (e2: C).(\lambda (_: T).(wcpr0 e2 e1))) in (let 
-TMP_9 \def (\lambda (_: C).(\lambda (u2: T).(pr0 u2 u1))) in (let TMP_10 \def 
-(wcpr0_refl e1) in (let TMP_11 \def (pr0_refl u1) in (ex3_2_intro C T TMP_7 
-TMP_8 TMP_9 e1 u1 H0 TMP_10 TMP_11)))))))))))) in (let TMP_132 \def (\lambda 
-(c3: C).(\lambda (c4: C).(\lambda (H0: (wcpr0 c3 c4)).(\lambda (H1: ((\forall 
-(h: nat).(\forall (e1: C).(\forall (u1: T).(\forall (k: K).((drop h O c4 
-(CHead e1 k u1)) \to (ex3_2 C T (\lambda (e2: C).(\lambda (u2: T).(drop h O 
-c3 (CHead e2 k u2)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 e2 e1))) 
-(\lambda (_: C).(\lambda (u2: T).(pr0 u2 u1))))))))))).(\lambda (u1: 
-T).(\lambda (u2: T).(\lambda (H2: (pr0 u1 u2)).(\lambda (k: K).(\lambda (h: 
-nat).(let TMP_18 \def (\lambda (n: nat).(\forall (e1: C).(\forall (u3: 
-T).(\forall (k0: K).((drop n O (CHead c4 k u2) (CHead e1 k0 u3)) \to (let 
-TMP_15 \def (\lambda (e2: C).(\lambda (u4: T).(let TMP_13 \def (CHead c3 k 
-u1) in (let TMP_14 \def (CHead e2 k0 u4) in (drop n O TMP_13 TMP_14))))) in 
-(let TMP_16 \def (\lambda (e2: C).(\lambda (_: T).(wcpr0 e2 e1))) in (let 
-TMP_17 \def (\lambda (_: C).(\lambda (u4: T).(pr0 u4 u3))) in (ex3_2 C T 
-TMP_15 TMP_16 TMP_17))))))))) in (let TMP_67 \def (\lambda (e1: C).(\lambda 
-(u0: T).(\lambda (k0: K).(\lambda (H3: (drop O O (CHead c4 k u2) (CHead e1 k0 
-u0))).(let TMP_19 \def (\lambda (e: C).(match e with [(CSort _) \Rightarrow 
-c4 | (CHead c _ _) \Rightarrow c])) in (let TMP_20 \def (CHead c4 k u2) in 
-(let TMP_21 \def (CHead e1 k0 u0) in (let TMP_22 \def (CHead c4 k u2) in (let 
-TMP_23 \def (CHead e1 k0 u0) in (let TMP_24 \def (drop_gen_refl TMP_22 TMP_23 
-H3) in (let H4 \def (f_equal C C TMP_19 TMP_20 TMP_21 TMP_24) in (let TMP_25 
-\def (\lambda (e: C).(match e with [(CSort _) \Rightarrow k | (CHead _ k1 _) 
-\Rightarrow k1])) in (let TMP_26 \def (CHead c4 k u2) in (let TMP_27 \def 
-(CHead e1 k0 u0) in (let TMP_28 \def (CHead c4 k u2) in (let TMP_29 \def 
-(CHead e1 k0 u0) in (let TMP_30 \def (drop_gen_refl TMP_28 TMP_29 H3) in (let 
-H5 \def (f_equal C K TMP_25 TMP_26 TMP_27 TMP_30) in (let TMP_31 \def 
-(\lambda (e: C).(match e with [(CSort _) \Rightarrow u2 | (CHead _ _ t) 
-\Rightarrow t])) in (let TMP_32 \def (CHead c4 k u2) in (let TMP_33 \def 
-(CHead e1 k0 u0) in (let TMP_34 \def (CHead c4 k u2) in (let TMP_35 \def 
-(CHead e1 k0 u0) in (let TMP_36 \def (drop_gen_refl TMP_34 TMP_35 H3) in (let 
-H6 \def (f_equal C T TMP_31 TMP_32 TMP_33 TMP_36) in (let TMP_65 \def 
-(\lambda (H7: (eq K k k0)).(\lambda (H8: (eq C c4 e1)).(let TMP_42 \def 
-(\lambda (k1: K).(let TMP_39 \def (\lambda (e2: C).(\lambda (u3: T).(let 
-TMP_37 \def (CHead c3 k u1) in (let TMP_38 \def (CHead e2 k1 u3) in (drop O O 
-TMP_37 TMP_38))))) in (let TMP_40 \def (\lambda (e2: C).(\lambda (_: 
-T).(wcpr0 e2 e1))) in (let TMP_41 \def (\lambda (_: C).(\lambda (u3: T).(pr0 
-u3 u0))) in (ex3_2 C T TMP_39 TMP_40 TMP_41))))) in (let TMP_48 \def (\lambda 
-(t: T).(let TMP_45 \def (\lambda (e2: C).(\lambda (u3: T).(let TMP_43 \def 
-(CHead c3 k u1) in (let TMP_44 \def (CHead e2 k u3) in (drop O O TMP_43 
-TMP_44))))) in (let TMP_46 \def (\lambda (e2: C).(\lambda (_: T).(wcpr0 e2 
-e1))) in (let TMP_47 \def (\lambda (_: C).(\lambda (u3: T).(pr0 u3 t))) in 
-(ex3_2 C T TMP_45 TMP_46 TMP_47))))) in (let TMP_54 \def (\lambda (c: C).(let 
-TMP_51 \def (\lambda (e2: C).(\lambda (u3: T).(let TMP_49 \def (CHead c3 k 
-u1) in (let TMP_50 \def (CHead e2 k u3) in (drop O O TMP_49 TMP_50))))) in 
-(let TMP_52 \def (\lambda (e2: C).(\lambda (_: T).(wcpr0 e2 c))) in (let 
-TMP_53 \def (\lambda (_: C).(\lambda (u3: T).(pr0 u3 u2))) in (ex3_2 C T 
-TMP_51 TMP_52 TMP_53))))) in (let TMP_57 \def (\lambda (e2: C).(\lambda (u3: 
-T).(let TMP_55 \def (CHead c3 k u1) in (let TMP_56 \def (CHead e2 k u3) in 
-(drop O O TMP_55 TMP_56))))) in (let TMP_58 \def (\lambda (e2: C).(\lambda 
-(_: T).(wcpr0 e2 c4))) in (let TMP_59 \def (\lambda (_: C).(\lambda (u3: 
-T).(pr0 u3 u2))) in (let TMP_60 \def (CHead c3 k u1) in (let TMP_61 \def 
-(drop_refl TMP_60) in (let TMP_62 \def (ex3_2_intro C T TMP_57 TMP_58 TMP_59 
-c3 u1 TMP_61 H0 H2) in (let TMP_63 \def (eq_ind C c4 TMP_54 TMP_62 e1 H8) in 
-(let TMP_64 \def (eq_ind T u2 TMP_48 TMP_63 u0 H6) in (eq_ind K k TMP_42 
-TMP_64 k0 H7)))))))))))))) in (let TMP_66 \def (TMP_65 H5) in (TMP_66 
-H4)))))))))))))))))))))))))))) in (let TMP_74 \def (\lambda (k0: K).(\forall 
+(u1: T).(\forall (k: K).((drop h O c0 (CHead e1 k u1)) \to (ex3_2 C T 
+(\lambda (e2: C).(\lambda (u2: T).(drop h O c (CHead e2 k u2)))) (\lambda 
+(e2: C).(\lambda (_: T).(wcpr0 e2 e1))) (\lambda (_: C).(\lambda (u2: T).(pr0 
+u2 u1))))))))))) (\lambda (c: C).(\lambda (h: nat).(\lambda (e1: C).(\lambda 
+(u1: T).(\lambda (k: K).(\lambda (H0: (drop h O c (CHead e1 k 
+u1))).(ex3_2_intro C T (\lambda (e2: C).(\lambda (u2: T).(drop h O c (CHead 
+e2 k u2)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 e2 e1))) (\lambda (_: 
+C).(\lambda (u2: T).(pr0 u2 u1))) e1 u1 H0 (wcpr0_refl e1) (pr0_refl 
+u1)))))))) (\lambda (c3: C).(\lambda (c4: C).(\lambda (H0: (wcpr0 c3 
+c4)).(\lambda (H1: ((\forall (h: nat).(\forall (e1: C).(\forall (u1: 
+T).(\forall (k: K).((drop h O c4 (CHead e1 k u1)) \to (ex3_2 C T (\lambda 
+(e2: C).(\lambda (u2: T).(drop h O c3 (CHead e2 k u2)))) (\lambda (e2: 
+C).(\lambda (_: T).(wcpr0 e2 e1))) (\lambda (_: C).(\lambda (u2: T).(pr0 u2 
+u1))))))))))).(\lambda (u1: T).(\lambda (u2: T).(\lambda (H2: (pr0 u1 
+u2)).(\lambda (k: K).(\lambda (h: nat).(nat_ind (\lambda (n: nat).(\forall 
+(e1: C).(\forall (u3: T).(\forall (k0: K).((drop n O (CHead c4 k u2) (CHead 
+e1 k0 u3)) \to (ex3_2 C T (\lambda (e2: C).(\lambda (u4: T).(drop n O (CHead 
+c3 k u1) (CHead e2 k0 u4)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 e2 e1))) 
+(\lambda (_: C).(\lambda (u4: T).(pr0 u4 u3))))))))) (\lambda (e1: 
+C).(\lambda (u0: T).(\lambda (k0: K).(\lambda (H3: (drop O O (CHead c4 k u2) 
+(CHead e1 k0 u0))).(let H4 \def (f_equal C C (\lambda (e: C).(match e with 
+[(CSort _) \Rightarrow c4 | (CHead c _ _) \Rightarrow c])) (CHead c4 k u2) 
+(CHead e1 k0 u0) (drop_gen_refl (CHead c4 k u2) (CHead e1 k0 u0) H3)) in 
+((let H5 \def (f_equal C K (\lambda (e: C).(match e with [(CSort _) 
+\Rightarrow k | (CHead _ k1 _) \Rightarrow k1])) (CHead c4 k u2) (CHead e1 k0 
+u0) (drop_gen_refl (CHead c4 k u2) (CHead e1 k0 u0) H3)) in ((let H6 \def 
+(f_equal C T (\lambda (e: C).(match e with [(CSort _) \Rightarrow u2 | (CHead 
+_ _ t) \Rightarrow t])) (CHead c4 k u2) (CHead e1 k0 u0) (drop_gen_refl 
+(CHead c4 k u2) (CHead e1 k0 u0) H3)) in (\lambda (H7: (eq K k k0)).(\lambda 
+(H8: (eq C c4 e1)).(eq_ind K k (\lambda (k1: K).(ex3_2 C T (\lambda (e2: 
+C).(\lambda (u3: T).(drop O O (CHead c3 k u1) (CHead e2 k1 u3)))) (\lambda 
+(e2: C).(\lambda (_: T).(wcpr0 e2 e1))) (\lambda (_: C).(\lambda (u3: T).(pr0 
+u3 u0))))) (eq_ind T u2 (\lambda (t: T).(ex3_2 C T (\lambda (e2: C).(\lambda 
+(u3: T).(drop O O (CHead c3 k u1) (CHead e2 k u3)))) (\lambda (e2: 
+C).(\lambda (_: T).(wcpr0 e2 e1))) (\lambda (_: C).(\lambda (u3: T).(pr0 u3 
+t))))) (eq_ind C c4 (\lambda (c: C).(ex3_2 C T (\lambda (e2: C).(\lambda (u3: 
+T).(drop O O (CHead c3 k u1) (CHead e2 k u3)))) (\lambda (e2: C).(\lambda (_: 
+T).(wcpr0 e2 c))) (\lambda (_: C).(\lambda (u3: T).(pr0 u3 u2))))) 
+(ex3_2_intro C T (\lambda (e2: C).(\lambda (u3: T).(drop O O (CHead c3 k u1) 
+(CHead e2 k u3)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 e2 c4))) (\lambda 
+(_: C).(\lambda (u3: T).(pr0 u3 u2))) c3 u1 (drop_refl (CHead c3 k u1)) H0 
+H2) e1 H8) u0 H6) k0 H7)))) H5)) H4)))))) (K_ind (\lambda (k0: K).(\forall 
 (n: nat).(((\forall (e1: C).(\forall (u3: T).(\forall (k1: K).((drop n O 
 (CHead c4 k0 u2) (CHead e1 k1 u3)) \to (ex3_2 C T (\lambda (e2: C).(\lambda 
 (u4: T).(drop n O (CHead c3 k0 u1) (CHead e2 k1 u4)))) (\lambda (e2: 
 C).(\lambda (_: T).(wcpr0 e2 e1))) (\lambda (_: C).(\lambda (u4: T).(pr0 u4 
 u3))))))))) \to (\forall (e1: C).(\forall (u3: T).(\forall (k1: K).((drop (S 
-n) O (CHead c4 k0 u2) (CHead e1 k1 u3)) \to (let TMP_71 \def (\lambda (e2: 
-C).(\lambda (u4: T).(let TMP_68 \def (S n) in (let TMP_69 \def (CHead c3 k0 
-u1) in (let TMP_70 \def (CHead e2 k1 u4) in (drop TMP_68 O TMP_69 
-TMP_70)))))) in (let TMP_72 \def (\lambda (e2: C).(\lambda (_: T).(wcpr0 e2 
-e1))) in (let TMP_73 \def (\lambda (_: C).(\lambda (u4: T).(pr0 u4 u3))) in 
-(ex3_2 C T TMP_71 TMP_72 TMP_73))))))))))) in (let TMP_101 \def (\lambda (b: 
-B).(\lambda (n: nat).(\lambda (_: ((\forall (e1: C).(\forall (u3: T).(\forall 
-(k0: K).((drop n O (CHead c4 (Bind b) u2) (CHead e1 k0 u3)) \to (ex3_2 C T 
-(\lambda (e2: C).(\lambda (u4: T).(drop n O (CHead c3 (Bind b) u1) (CHead e2 
-k0 u4)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 e2 e1))) (\lambda (_: 
-C).(\lambda (u4: T).(pr0 u4 u3)))))))))).(\lambda (e1: C).(\lambda (u0: 
-T).(\lambda (k0: K).(\lambda (H4: (drop (S n) O (CHead c4 (Bind b) u2) (CHead 
-e1 k0 u0))).(let TMP_75 \def (Bind b) in (let TMP_76 \def (CHead e1 k0 u0) in 
-(let TMP_77 \def (drop_gen_drop TMP_75 c4 TMP_76 u2 n H4) in (let H5 \def (H1 
-n e1 u0 k0 TMP_77) in (let TMP_79 \def (\lambda (e2: C).(\lambda (u3: T).(let 
-TMP_78 \def (CHead e2 k0 u3) in (drop n O c3 TMP_78)))) in (let TMP_80 \def 
-(\lambda (e2: C).(\lambda (_: T).(wcpr0 e2 e1))) in (let TMP_81 \def (\lambda 
-(_: C).(\lambda (u3: T).(pr0 u3 u0))) in (let TMP_86 \def (\lambda (e2: 
-C).(\lambda (u3: T).(let TMP_82 \def (S n) in (let TMP_83 \def (Bind b) in 
-(let TMP_84 \def (CHead c3 TMP_83 u1) in (let TMP_85 \def (CHead e2 k0 u3) in 
-(drop TMP_82 O TMP_84 TMP_85))))))) in (let TMP_87 \def (\lambda (e2: 
-C).(\lambda (_: T).(wcpr0 e2 e1))) in (let TMP_88 \def (\lambda (_: 
-C).(\lambda (u3: T).(pr0 u3 u0))) in (let TMP_89 \def (ex3_2 C T TMP_86 
-TMP_87 TMP_88) in (let TMP_100 \def (\lambda (x0: C).(\lambda (x1: 
-T).(\lambda (H6: (drop n O c3 (CHead x0 k0 x1))).(\lambda (H7: (wcpr0 x0 
-e1)).(\lambda (H8: (pr0 x1 u0)).(let TMP_94 \def (\lambda (e2: C).(\lambda 
-(u3: T).(let TMP_90 \def (S n) in (let TMP_91 \def (Bind b) in (let TMP_92 
-\def (CHead c3 TMP_91 u1) in (let TMP_93 \def (CHead e2 k0 u3) in (drop 
-TMP_90 O TMP_92 TMP_93))))))) in (let TMP_95 \def (\lambda (e2: C).(\lambda 
-(_: T).(wcpr0 e2 e1))) in (let TMP_96 \def (\lambda (_: C).(\lambda (u3: 
-T).(pr0 u3 u0))) in (let TMP_97 \def (Bind b) in (let TMP_98 \def (CHead x0 
-k0 x1) in (let TMP_99 \def (drop_drop TMP_97 n c3 TMP_98 H6 u1) in 
-(ex3_2_intro C T TMP_94 TMP_95 TMP_96 x0 x1 TMP_99 H7 H8)))))))))))) in 
-(ex3_2_ind C T TMP_79 TMP_80 TMP_81 TMP_89 TMP_100 H5)))))))))))))))))))) in 
-(let TMP_130 \def (\lambda (f: F).(\lambda (n: nat).(\lambda (_: ((\forall 
-(e1: C).(\forall (u3: T).(\forall (k0: K).((drop n O (CHead c4 (Flat f) u2) 
-(CHead e1 k0 u3)) \to (ex3_2 C T (\lambda (e2: C).(\lambda (u4: T).(drop n O 
-(CHead c3 (Flat f) u1) (CHead e2 k0 u4)))) (\lambda (e2: C).(\lambda (_: 
-T).(wcpr0 e2 e1))) (\lambda (_: C).(\lambda (u4: T).(pr0 u4 
+n) O (CHead c4 k0 u2) (CHead e1 k1 u3)) \to (ex3_2 C T (\lambda (e2: 
+C).(\lambda (u4: T).(drop (S n) O (CHead c3 k0 u1) (CHead e2 k1 u4)))) 
+(\lambda (e2: C).(\lambda (_: T).(wcpr0 e2 e1))) (\lambda (_: C).(\lambda 
+(u4: T).(pr0 u4 u3))))))))))) (\lambda (b: B).(\lambda (n: nat).(\lambda (_: 
+((\forall (e1: C).(\forall (u3: T).(\forall (k0: K).((drop n O (CHead c4 
+(Bind b) u2) (CHead e1 k0 u3)) \to (ex3_2 C T (\lambda (e2: C).(\lambda (u4: 
+T).(drop n O (CHead c3 (Bind b) u1) (CHead e2 k0 u4)))) (\lambda (e2: 
+C).(\lambda (_: T).(wcpr0 e2 e1))) (\lambda (_: C).(\lambda (u4: T).(pr0 u4 
 u3)))))))))).(\lambda (e1: C).(\lambda (u0: T).(\lambda (k0: K).(\lambda (H4: 
-(drop (S n) O (CHead c4 (Flat f) u2) (CHead e1 k0 u0))).(let TMP_102 \def (S 
-n) in (let TMP_103 \def (Flat f) in (let TMP_104 \def (CHead e1 k0 u0) in 
-(let TMP_105 \def (drop_gen_drop TMP_103 c4 TMP_104 u2 n H4) in (let H5 \def 
-(H1 TMP_102 e1 u0 k0 TMP_105) in (let TMP_108 \def (\lambda (e2: C).(\lambda 
-(u3: T).(let TMP_106 \def (S n) in (let TMP_107 \def (CHead e2 k0 u3) in 
-(drop TMP_106 O c3 TMP_107))))) in (let TMP_109 \def (\lambda (e2: 
-C).(\lambda (_: T).(wcpr0 e2 e1))) in (let TMP_110 \def (\lambda (_: 
-C).(\lambda (u3: T).(pr0 u3 u0))) in (let TMP_115 \def (\lambda (e2: 
-C).(\lambda (u3: T).(let TMP_111 \def (S n) in (let TMP_112 \def (Flat f) in 
-(let TMP_113 \def (CHead c3 TMP_112 u1) in (let TMP_114 \def (CHead e2 k0 u3) 
-in (drop TMP_111 O TMP_113 TMP_114))))))) in (let TMP_116 \def (\lambda (e2: 
-C).(\lambda (_: T).(wcpr0 e2 e1))) in (let TMP_117 \def (\lambda (_: 
-C).(\lambda (u3: T).(pr0 u3 u0))) in (let TMP_118 \def (ex3_2 C T TMP_115 
-TMP_116 TMP_117) in (let TMP_129 \def (\lambda (x0: C).(\lambda (x1: 
-T).(\lambda (H6: (drop (S n) O c3 (CHead x0 k0 x1))).(\lambda (H7: (wcpr0 x0 
-e1)).(\lambda (H8: (pr0 x1 u0)).(let TMP_123 \def (\lambda (e2: C).(\lambda 
-(u3: T).(let TMP_119 \def (S n) in (let TMP_120 \def (Flat f) in (let TMP_121 
-\def (CHead c3 TMP_120 u1) in (let TMP_122 \def (CHead e2 k0 u3) in (drop 
-TMP_119 O TMP_121 TMP_122))))))) in (let TMP_124 \def (\lambda (e2: 
-C).(\lambda (_: T).(wcpr0 e2 e1))) in (let TMP_125 \def (\lambda (_: 
-C).(\lambda (u3: T).(pr0 u3 u0))) in (let TMP_126 \def (Flat f) in (let 
-TMP_127 \def (CHead x0 k0 x1) in (let TMP_128 \def (drop_drop TMP_126 n c3 
-TMP_127 H6 u1) in (ex3_2_intro C T TMP_123 TMP_124 TMP_125 x0 x1 TMP_128 H7 
-H8)))))))))))) in (ex3_2_ind C T TMP_108 TMP_109 TMP_110 TMP_118 TMP_129 
-H5))))))))))))))))))))) in (let TMP_131 \def (K_ind TMP_74 TMP_101 TMP_130 k) 
-in (nat_ind TMP_18 TMP_67 TMP_131 h)))))))))))))))) in (wcpr0_ind TMP_5 
-TMP_12 TMP_132 c2 c1 H)))))).
+(drop (S n) O (CHead c4 (Bind b) u2) (CHead e1 k0 u0))).(let H5 \def (H1 n e1 
+u0 k0 (drop_gen_drop (Bind b) c4 (CHead e1 k0 u0) u2 n H4)) in (ex3_2_ind C T 
+(\lambda (e2: C).(\lambda (u3: T).(drop n O c3 (CHead e2 k0 u3)))) (\lambda 
+(e2: C).(\lambda (_: T).(wcpr0 e2 e1))) (\lambda (_: C).(\lambda (u3: T).(pr0 
+u3 u0))) (ex3_2 C T (\lambda (e2: C).(\lambda (u3: T).(drop (S n) O (CHead c3 
+(Bind b) u1) (CHead e2 k0 u3)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 e2 
+e1))) (\lambda (_: C).(\lambda (u3: T).(pr0 u3 u0)))) (\lambda (x0: 
+C).(\lambda (x1: T).(\lambda (H6: (drop n O c3 (CHead x0 k0 x1))).(\lambda 
+(H7: (wcpr0 x0 e1)).(\lambda (H8: (pr0 x1 u0)).(ex3_2_intro C T (\lambda (e2: 
+C).(\lambda (u3: T).(drop (S n) O (CHead c3 (Bind b) u1) (CHead e2 k0 u3)))) 
+(\lambda (e2: C).(\lambda (_: T).(wcpr0 e2 e1))) (\lambda (_: C).(\lambda 
+(u3: T).(pr0 u3 u0))) x0 x1 (drop_drop (Bind b) n c3 (CHead x0 k0 x1) H6 u1) 
+H7 H8)))))) H5))))))))) (\lambda (f: F).(\lambda (n: nat).(\lambda (_: 
+((\forall (e1: C).(\forall (u3: T).(\forall (k0: K).((drop n O (CHead c4 
+(Flat f) u2) (CHead e1 k0 u3)) \to (ex3_2 C T (\lambda (e2: C).(\lambda (u4: 
+T).(drop n O (CHead c3 (Flat f) u1) (CHead e2 k0 u4)))) (\lambda (e2: 
+C).(\lambda (_: T).(wcpr0 e2 e1))) (\lambda (_: C).(\lambda (u4: T).(pr0 u4 
+u3)))))))))).(\lambda (e1: C).(\lambda (u0: T).(\lambda (k0: K).(\lambda (H4: 
+(drop (S n) O (CHead c4 (Flat f) u2) (CHead e1 k0 u0))).(let H5 \def (H1 (S 
+n) e1 u0 k0 (drop_gen_drop (Flat f) c4 (CHead e1 k0 u0) u2 n H4)) in 
+(ex3_2_ind C T (\lambda (e2: C).(\lambda (u3: T).(drop (S n) O c3 (CHead e2 
+k0 u3)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 e2 e1))) (\lambda (_: 
+C).(\lambda (u3: T).(pr0 u3 u0))) (ex3_2 C T (\lambda (e2: C).(\lambda (u3: 
+T).(drop (S n) O (CHead c3 (Flat f) u1) (CHead e2 k0 u3)))) (\lambda (e2: 
+C).(\lambda (_: T).(wcpr0 e2 e1))) (\lambda (_: C).(\lambda (u3: T).(pr0 u3 
+u0)))) (\lambda (x0: C).(\lambda (x1: T).(\lambda (H6: (drop (S n) O c3 
+(CHead x0 k0 x1))).(\lambda (H7: (wcpr0 x0 e1)).(\lambda (H8: (pr0 x1 
+u0)).(ex3_2_intro C T (\lambda (e2: C).(\lambda (u3: T).(drop (S n) O (CHead 
+c3 (Flat f) u1) (CHead e2 k0 u3)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 
+e2 e1))) (\lambda (_: C).(\lambda (u3: T).(pr0 u3 u0))) x0 x1 (drop_drop 
+(Flat f) n c3 (CHead x0 k0 x1) H6 u1) H7 H8)))))) H5))))))))) k) h)))))))))) 
+c2 c1 H))).
 
 theorem wcpr0_getl:
  \forall (c1: C).(\forall (c2: C).((wcpr0 c1 c2) \to (\forall (h: 
@@ -321,180 +221,114 @@ k u1)) \to (ex3_2 C T (\lambda (e2: C).(\lambda (u2: T).(getl h c2 (CHead e2
 k u2)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 e1 e2))) (\lambda (_: 
 C).(\lambda (u2: T).(pr0 u1 u2)))))))))))
 \def
- \lambda (c1: C).(\lambda (c2: C).(\lambda (H: (wcpr0 c1 c2)).(let TMP_5 \def 
+ \lambda (c1: C).(\lambda (c2: C).(\lambda (H: (wcpr0 c1 c2)).(wcpr0_ind 
 (\lambda (c: C).(\lambda (c0: C).(\forall (h: nat).(\forall (e1: C).(\forall 
-(u1: T).(\forall (k: K).((getl h c (CHead e1 k u1)) \to (let TMP_2 \def 
-(\lambda (e2: C).(\lambda (u2: T).(let TMP_1 \def (CHead e2 k u2) in (getl h 
-c0 TMP_1)))) in (let TMP_3 \def (\lambda (e2: C).(\lambda (_: T).(wcpr0 e1 
-e2))) in (let TMP_4 \def (\lambda (_: C).(\lambda (u2: T).(pr0 u1 u2))) in 
-(ex3_2 C T TMP_2 TMP_3 TMP_4))))))))))) in (let TMP_12 \def (\lambda (c: 
-C).(\lambda (h: nat).(\lambda (e1: C).(\lambda (u1: T).(\lambda (k: 
-K).(\lambda (H0: (getl h c (CHead e1 k u1))).(let TMP_7 \def (\lambda (e2: 
-C).(\lambda (u2: T).(let TMP_6 \def (CHead e2 k u2) in (getl h c TMP_6)))) in 
-(let TMP_8 \def (\lambda (e2: C).(\lambda (_: T).(wcpr0 e1 e2))) in (let 
-TMP_9 \def (\lambda (_: C).(\lambda (u2: T).(pr0 u1 u2))) in (let TMP_10 \def 
-(wcpr0_refl e1) in (let TMP_11 \def (pr0_refl u1) in (ex3_2_intro C T TMP_7 
-TMP_8 TMP_9 e1 u1 H0 TMP_10 TMP_11)))))))))))) in (let TMP_175 \def (\lambda 
-(c3: C).(\lambda (c4: C).(\lambda (H0: (wcpr0 c3 c4)).(\lambda (H1: ((\forall 
-(h: nat).(\forall (e1: C).(\forall (u1: T).(\forall (k: K).((getl h c3 (CHead 
-e1 k u1)) \to (ex3_2 C T (\lambda (e2: C).(\lambda (u2: T).(getl h c4 (CHead 
-e2 k u2)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 e1 e2))) (\lambda (_: 
-C).(\lambda (u2: T).(pr0 u1 u2))))))))))).(\lambda (u1: T).(\lambda (u2: 
-T).(\lambda (H2: (pr0 u1 u2)).(\lambda (k: K).(\lambda (h: nat).(let TMP_18 
-\def (\lambda (n: nat).(\forall (e1: C).(\forall (u3: T).(\forall (k0: 
-K).((getl n (CHead c3 k u1) (CHead e1 k0 u3)) \to (let TMP_15 \def (\lambda 
-(e2: C).(\lambda (u4: T).(let TMP_13 \def (CHead c4 k u2) in (let TMP_14 \def 
-(CHead e2 k0 u4) in (getl n TMP_13 TMP_14))))) in (let TMP_16 \def (\lambda 
-(e2: C).(\lambda (_: T).(wcpr0 e1 e2))) in (let TMP_17 \def (\lambda (_: 
-C).(\lambda (u4: T).(pr0 u3 u4))) in (ex3_2 C T TMP_15 TMP_16 TMP_17))))))))) 
-in (let TMP_110 \def (\lambda (e1: C).(\lambda (u0: T).(\lambda (k0: 
-K).(\lambda (H3: (getl O (CHead c3 k u1) (CHead e1 k0 u0))).(let TMP_24 \def 
-(\lambda (k1: K).((clear (CHead c3 k1 u1) (CHead e1 k0 u0)) \to (let TMP_21 
-\def (\lambda (e2: C).(\lambda (u3: T).(let TMP_19 \def (CHead c4 k1 u2) in 
-(let TMP_20 \def (CHead e2 k0 u3) in (getl O TMP_19 TMP_20))))) in (let 
-TMP_22 \def (\lambda (e2: C).(\lambda (_: T).(wcpr0 e1 e2))) in (let TMP_23 
-\def (\lambda (_: C).(\lambda (u3: T).(pr0 u0 u3))) in (ex3_2 C T TMP_21 
-TMP_22 TMP_23)))))) in (let TMP_80 \def (\lambda (b: B).(\lambda (H4: (clear 
-(CHead c3 (Bind b) u1) (CHead e1 k0 u0))).(let TMP_25 \def (\lambda (e: 
-C).(match e with [(CSort _) \Rightarrow e1 | (CHead c _ _) \Rightarrow c])) 
-in (let TMP_26 \def (CHead e1 k0 u0) in (let TMP_27 \def (Bind b) in (let 
-TMP_28 \def (CHead c3 TMP_27 u1) in (let TMP_29 \def (CHead e1 k0 u0) in (let 
-TMP_30 \def (clear_gen_bind b c3 TMP_29 u1 H4) in (let H5 \def (f_equal C C 
-TMP_25 TMP_26 TMP_28 TMP_30) in (let TMP_31 \def (\lambda (e: C).(match e 
-with [(CSort _) \Rightarrow k0 | (CHead _ k1 _) \Rightarrow k1])) in (let 
-TMP_32 \def (CHead e1 k0 u0) in (let TMP_33 \def (Bind b) in (let TMP_34 \def 
-(CHead c3 TMP_33 u1) in (let TMP_35 \def (CHead e1 k0 u0) in (let TMP_36 \def 
-(clear_gen_bind b c3 TMP_35 u1 H4) in (let H6 \def (f_equal C K TMP_31 TMP_32 
-TMP_34 TMP_36) in (let TMP_37 \def (\lambda (e: C).(match e with [(CSort _) 
-\Rightarrow u0 | (CHead _ _ t) \Rightarrow t])) in (let TMP_38 \def (CHead e1 
-k0 u0) in (let TMP_39 \def (Bind b) in (let TMP_40 \def (CHead c3 TMP_39 u1) 
-in (let TMP_41 \def (CHead e1 k0 u0) in (let TMP_42 \def (clear_gen_bind b c3 
-TMP_41 u1 H4) in (let H7 \def (f_equal C T TMP_37 TMP_38 TMP_40 TMP_42) in 
-(let TMP_78 \def (\lambda (H8: (eq K k0 (Bind b))).(\lambda (H9: (eq C e1 
-c3)).(let TMP_43 \def (Bind b) in (let TMP_50 \def (\lambda (k1: K).(let 
-TMP_47 \def (\lambda (e2: C).(\lambda (u3: T).(let TMP_44 \def (Bind b) in 
-(let TMP_45 \def (CHead c4 TMP_44 u2) in (let TMP_46 \def (CHead e2 k1 u3) in 
-(getl O TMP_45 TMP_46)))))) in (let TMP_48 \def (\lambda (e2: C).(\lambda (_: 
-T).(wcpr0 e1 e2))) in (let TMP_49 \def (\lambda (_: C).(\lambda (u3: T).(pr0 
-u0 u3))) in (ex3_2 C T TMP_47 TMP_48 TMP_49))))) in (let TMP_58 \def (\lambda 
-(t: T).(let TMP_55 \def (\lambda (e2: C).(\lambda (u3: T).(let TMP_51 \def 
-(Bind b) in (let TMP_52 \def (CHead c4 TMP_51 u2) in (let TMP_53 \def (Bind 
-b) in (let TMP_54 \def (CHead e2 TMP_53 u3) in (getl O TMP_52 TMP_54))))))) 
-in (let TMP_56 \def (\lambda (e2: C).(\lambda (_: T).(wcpr0 e1 e2))) in (let 
-TMP_57 \def (\lambda (_: C).(\lambda (u3: T).(pr0 t u3))) in (ex3_2 C T 
-TMP_55 TMP_56 TMP_57))))) in (let TMP_66 \def (\lambda (c: C).(let TMP_63 
-\def (\lambda (e2: C).(\lambda (u3: T).(let TMP_59 \def (Bind b) in (let 
-TMP_60 \def (CHead c4 TMP_59 u2) in (let TMP_61 \def (Bind b) in (let TMP_62 
-\def (CHead e2 TMP_61 u3) in (getl O TMP_60 TMP_62))))))) in (let TMP_64 \def 
-(\lambda (e2: C).(\lambda (_: T).(wcpr0 c e2))) in (let TMP_65 \def (\lambda 
-(_: C).(\lambda (u3: T).(pr0 u1 u3))) in (ex3_2 C T TMP_63 TMP_64 TMP_65))))) 
-in (let TMP_71 \def (\lambda (e2: C).(\lambda (u3: T).(let TMP_67 \def (Bind 
-b) in (let TMP_68 \def (CHead c4 TMP_67 u2) in (let TMP_69 \def (Bind b) in 
-(let TMP_70 \def (CHead e2 TMP_69 u3) in (getl O TMP_68 TMP_70))))))) in (let 
-TMP_72 \def (\lambda (e2: C).(\lambda (_: T).(wcpr0 c3 e2))) in (let TMP_73 
-\def (\lambda (_: C).(\lambda (u3: T).(pr0 u1 u3))) in (let TMP_74 \def 
-(getl_refl b c4 u2) in (let TMP_75 \def (ex3_2_intro C T TMP_71 TMP_72 TMP_73 
-c4 u2 TMP_74 H0 H2) in (let TMP_76 \def (eq_ind_r C c3 TMP_66 TMP_75 e1 H9) 
-in (let TMP_77 \def (eq_ind_r T u1 TMP_58 TMP_76 u0 H7) in (eq_ind_r K TMP_43 
-TMP_50 TMP_77 k0 H8)))))))))))))) in (let TMP_79 \def (TMP_78 H6) in (TMP_79 
-H5)))))))))))))))))))))))))) in (let TMP_106 \def (\lambda (f: F).(\lambda 
-(H4: (clear (CHead c3 (Flat f) u1) (CHead e1 k0 u0))).(let TMP_81 \def (CHead 
-e1 k0 u0) in (let TMP_82 \def (drop_refl c3) in (let TMP_83 \def (CHead e1 k0 
-u0) in (let TMP_84 \def (clear_gen_flat f c3 TMP_83 u1 H4) in (let TMP_85 
-\def (getl_intro O c3 TMP_81 c3 TMP_82 TMP_84) in (let H5 \def (H1 O e1 u0 k0 
-TMP_85) in (let TMP_87 \def (\lambda (e2: C).(\lambda (u3: T).(let TMP_86 
-\def (CHead e2 k0 u3) in (getl O c4 TMP_86)))) in (let TMP_88 \def (\lambda 
-(e2: C).(\lambda (_: T).(wcpr0 e1 e2))) in (let TMP_89 \def (\lambda (_: 
-C).(\lambda (u3: T).(pr0 u0 u3))) in (let TMP_93 \def (\lambda (e2: 
-C).(\lambda (u3: T).(let TMP_90 \def (Flat f) in (let TMP_91 \def (CHead c4 
-TMP_90 u2) in (let TMP_92 \def (CHead e2 k0 u3) in (getl O TMP_91 
-TMP_92)))))) in (let TMP_94 \def (\lambda (e2: C).(\lambda (_: T).(wcpr0 e1 
-e2))) in (let TMP_95 \def (\lambda (_: C).(\lambda (u3: T).(pr0 u0 u3))) in 
-(let TMP_96 \def (ex3_2 C T TMP_93 TMP_94 TMP_95) in (let TMP_105 \def 
-(\lambda (x0: C).(\lambda (x1: T).(\lambda (H6: (getl O c4 (CHead x0 k0 
-x1))).(\lambda (H7: (wcpr0 e1 x0)).(\lambda (H8: (pr0 u0 x1)).(let TMP_100 
-\def (\lambda (e2: C).(\lambda (u3: T).(let TMP_97 \def (Flat f) in (let 
-TMP_98 \def (CHead c4 TMP_97 u2) in (let TMP_99 \def (CHead e2 k0 u3) in 
-(getl O TMP_98 TMP_99)))))) in (let TMP_101 \def (\lambda (e2: C).(\lambda 
-(_: T).(wcpr0 e1 e2))) in (let TMP_102 \def (\lambda (_: C).(\lambda (u3: 
-T).(pr0 u0 u3))) in (let TMP_103 \def (CHead x0 k0 x1) in (let TMP_104 \def 
-(getl_flat c4 TMP_103 O H6 f u2) in (ex3_2_intro C T TMP_100 TMP_101 TMP_102 
-x0 x1 TMP_104 H7 H8))))))))))) in (ex3_2_ind C T TMP_87 TMP_88 TMP_89 TMP_96 
-TMP_105 H5))))))))))))))))) in (let TMP_107 \def (CHead c3 k u1) in (let 
-TMP_108 \def (CHead e1 k0 u0) in (let TMP_109 \def (getl_gen_O TMP_107 
-TMP_108 H3) in (K_ind TMP_24 TMP_80 TMP_106 k TMP_109))))))))))) in (let 
-TMP_117 \def (\lambda (k0: K).(\forall (n: nat).(((\forall (e1: C).(\forall 
-(u3: T).(\forall (k1: K).((getl n (CHead c3 k0 u1) (CHead e1 k1 u3)) \to 
-(ex3_2 C T (\lambda (e2: C).(\lambda (u4: T).(getl n (CHead c4 k0 u2) (CHead 
-e2 k1 u4)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 e1 e2))) (\lambda (_: 
-C).(\lambda (u4: T).(pr0 u3 u4))))))))) \to (\forall (e1: C).(\forall (u3: 
-T).(\forall (k1: K).((getl (S n) (CHead c3 k0 u1) (CHead e1 k1 u3)) \to (let 
-TMP_114 \def (\lambda (e2: C).(\lambda (u4: T).(let TMP_111 \def (S n) in 
-(let TMP_112 \def (CHead c4 k0 u2) in (let TMP_113 \def (CHead e2 k1 u4) in 
-(getl TMP_111 TMP_112 TMP_113)))))) in (let TMP_115 \def (\lambda (e2: 
-C).(\lambda (_: T).(wcpr0 e1 e2))) in (let TMP_116 \def (\lambda (_: 
-C).(\lambda (u4: T).(pr0 u3 u4))) in (ex3_2 C T TMP_114 TMP_115 
-TMP_116))))))))))) in (let TMP_144 \def (\lambda (b: B).(\lambda (n: 
+(u1: T).(\forall (k: K).((getl h c (CHead e1 k u1)) \to (ex3_2 C T (\lambda 
+(e2: C).(\lambda (u2: T).(getl h c0 (CHead e2 k u2)))) (\lambda (e2: 
+C).(\lambda (_: T).(wcpr0 e1 e2))) (\lambda (_: C).(\lambda (u2: T).(pr0 u1 
+u2))))))))))) (\lambda (c: C).(\lambda (h: nat).(\lambda (e1: C).(\lambda 
+(u1: T).(\lambda (k: K).(\lambda (H0: (getl h c (CHead e1 k 
+u1))).(ex3_2_intro C T (\lambda (e2: C).(\lambda (u2: T).(getl h c (CHead e2 
+k u2)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 e1 e2))) (\lambda (_: 
+C).(\lambda (u2: T).(pr0 u1 u2))) e1 u1 H0 (wcpr0_refl e1) (pr0_refl 
+u1)))))))) (\lambda (c3: C).(\lambda (c4: C).(\lambda (H0: (wcpr0 c3 
+c4)).(\lambda (H1: ((\forall (h: nat).(\forall (e1: C).(\forall (u1: 
+T).(\forall (k: K).((getl h c3 (CHead e1 k u1)) \to (ex3_2 C T (\lambda (e2: 
+C).(\lambda (u2: T).(getl h c4 (CHead e2 k u2)))) (\lambda (e2: C).(\lambda 
+(_: T).(wcpr0 e1 e2))) (\lambda (_: C).(\lambda (u2: T).(pr0 u1 
+u2))))))))))).(\lambda (u1: T).(\lambda (u2: T).(\lambda (H2: (pr0 u1 
+u2)).(\lambda (k: K).(\lambda (h: nat).(nat_ind (\lambda (n: nat).(\forall 
+(e1: C).(\forall (u3: T).(\forall (k0: K).((getl n (CHead c3 k u1) (CHead e1 
+k0 u3)) \to (ex3_2 C T (\lambda (e2: C).(\lambda (u4: T).(getl n (CHead c4 k 
+u2) (CHead e2 k0 u4)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 e1 e2))) 
+(\lambda (_: C).(\lambda (u4: T).(pr0 u3 u4))))))))) (\lambda (e1: 
+C).(\lambda (u0: T).(\lambda (k0: K).(\lambda (H3: (getl O (CHead c3 k u1) 
+(CHead e1 k0 u0))).(K_ind (\lambda (k1: K).((clear (CHead c3 k1 u1) (CHead e1 
+k0 u0)) \to (ex3_2 C T (\lambda (e2: C).(\lambda (u3: T).(getl O (CHead c4 k1 
+u2) (CHead e2 k0 u3)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 e1 e2))) 
+(\lambda (_: C).(\lambda (u3: T).(pr0 u0 u3)))))) (\lambda (b: B).(\lambda 
+(H4: (clear (CHead c3 (Bind b) u1) (CHead e1 k0 u0))).(let H5 \def (f_equal C 
+C (\lambda (e: C).(match e with [(CSort _) \Rightarrow e1 | (CHead c _ _) 
+\Rightarrow c])) (CHead e1 k0 u0) (CHead c3 (Bind b) u1) (clear_gen_bind b c3 
+(CHead e1 k0 u0) u1 H4)) in ((let H6 \def (f_equal C K (\lambda (e: C).(match 
+e with [(CSort _) \Rightarrow k0 | (CHead _ k1 _) \Rightarrow k1])) (CHead e1 
+k0 u0) (CHead c3 (Bind b) u1) (clear_gen_bind b c3 (CHead e1 k0 u0) u1 H4)) 
+in ((let H7 \def (f_equal C T (\lambda (e: C).(match e with [(CSort _) 
+\Rightarrow u0 | (CHead _ _ t) \Rightarrow t])) (CHead e1 k0 u0) (CHead c3 
+(Bind b) u1) (clear_gen_bind b c3 (CHead e1 k0 u0) u1 H4)) in (\lambda (H8: 
+(eq K k0 (Bind b))).(\lambda (H9: (eq C e1 c3)).(eq_ind_r K (Bind b) (\lambda 
+(k1: K).(ex3_2 C T (\lambda (e2: C).(\lambda (u3: T).(getl O (CHead c4 (Bind 
+b) u2) (CHead e2 k1 u3)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 e1 e2))) 
+(\lambda (_: C).(\lambda (u3: T).(pr0 u0 u3))))) (eq_ind_r T u1 (\lambda (t: 
+T).(ex3_2 C T (\lambda (e2: C).(\lambda (u3: T).(getl O (CHead c4 (Bind b) 
+u2) (CHead e2 (Bind b) u3)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 e1 
+e2))) (\lambda (_: C).(\lambda (u3: T).(pr0 t u3))))) (eq_ind_r C c3 (\lambda 
+(c: C).(ex3_2 C T (\lambda (e2: C).(\lambda (u3: T).(getl O (CHead c4 (Bind 
+b) u2) (CHead e2 (Bind b) u3)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 c 
+e2))) (\lambda (_: C).(\lambda (u3: T).(pr0 u1 u3))))) (ex3_2_intro C T 
+(\lambda (e2: C).(\lambda (u3: T).(getl O (CHead c4 (Bind b) u2) (CHead e2 
+(Bind b) u3)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 c3 e2))) (\lambda (_: 
+C).(\lambda (u3: T).(pr0 u1 u3))) c4 u2 (getl_refl b c4 u2) H0 H2) e1 H9) u0 
+H7) k0 H8)))) H6)) H5)))) (\lambda (f: F).(\lambda (H4: (clear (CHead c3 
+(Flat f) u1) (CHead e1 k0 u0))).(let H5 \def (H1 O e1 u0 k0 (getl_intro O c3 
+(CHead e1 k0 u0) c3 (drop_refl c3) (clear_gen_flat f c3 (CHead e1 k0 u0) u1 
+H4))) in (ex3_2_ind C T (\lambda (e2: C).(\lambda (u3: T).(getl O c4 (CHead 
+e2 k0 u3)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 e1 e2))) (\lambda (_: 
+C).(\lambda (u3: T).(pr0 u0 u3))) (ex3_2 C T (\lambda (e2: C).(\lambda (u3: 
+T).(getl O (CHead c4 (Flat f) u2) (CHead e2 k0 u3)))) (\lambda (e2: 
+C).(\lambda (_: T).(wcpr0 e1 e2))) (\lambda (_: C).(\lambda (u3: T).(pr0 u0 
+u3)))) (\lambda (x0: C).(\lambda (x1: T).(\lambda (H6: (getl O c4 (CHead x0 
+k0 x1))).(\lambda (H7: (wcpr0 e1 x0)).(\lambda (H8: (pr0 u0 x1)).(ex3_2_intro 
+C T (\lambda (e2: C).(\lambda (u3: T).(getl O (CHead c4 (Flat f) u2) (CHead 
+e2 k0 u3)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 e1 e2))) (\lambda (_: 
+C).(\lambda (u3: T).(pr0 u0 u3))) x0 x1 (getl_flat c4 (CHead x0 k0 x1) O H6 f 
+u2) H7 H8)))))) H5)))) k (getl_gen_O (CHead c3 k u1) (CHead e1 k0 u0) 
+H3)))))) (K_ind (\lambda (k0: K).(\forall (n: nat).(((\forall (e1: 
+C).(\forall (u3: T).(\forall (k1: K).((getl n (CHead c3 k0 u1) (CHead e1 k1 
+u3)) \to (ex3_2 C T (\lambda (e2: C).(\lambda (u4: T).(getl n (CHead c4 k0 
+u2) (CHead e2 k1 u4)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 e1 e2))) 
+(\lambda (_: C).(\lambda (u4: T).(pr0 u3 u4))))))))) \to (\forall (e1: 
+C).(\forall (u3: T).(\forall (k1: K).((getl (S n) (CHead c3 k0 u1) (CHead e1 
+k1 u3)) \to (ex3_2 C T (\lambda (e2: C).(\lambda (u4: T).(getl (S n) (CHead 
+c4 k0 u2) (CHead e2 k1 u4)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 e1 
+e2))) (\lambda (_: C).(\lambda (u4: T).(pr0 u3 u4))))))))))) (\lambda (b: 
+B).(\lambda (n: nat).(\lambda (_: ((\forall (e1: C).(\forall (u3: T).(\forall 
+(k0: K).((getl n (CHead c3 (Bind b) u1) (CHead e1 k0 u3)) \to (ex3_2 C T 
+(\lambda (e2: C).(\lambda (u4: T).(getl n (CHead c4 (Bind b) u2) (CHead e2 k0 
+u4)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 e1 e2))) (\lambda (_: 
+C).(\lambda (u4: T).(pr0 u3 u4)))))))))).(\lambda (e1: C).(\lambda (u0: 
+T).(\lambda (k0: K).(\lambda (H4: (getl (S n) (CHead c3 (Bind b) u1) (CHead 
+e1 k0 u0))).(let H5 \def (H1 n e1 u0 k0 (getl_gen_S (Bind b) c3 (CHead e1 k0 
+u0) u1 n H4)) in (ex3_2_ind C T (\lambda (e2: C).(\lambda (u3: T).(getl n c4 
+(CHead e2 k0 u3)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 e1 e2))) (\lambda 
+(_: C).(\lambda (u3: T).(pr0 u0 u3))) (ex3_2 C T (\lambda (e2: C).(\lambda 
+(u3: T).(getl (S n) (CHead c4 (Bind b) u2) (CHead e2 k0 u3)))) (\lambda (e2: 
+C).(\lambda (_: T).(wcpr0 e1 e2))) (\lambda (_: C).(\lambda (u3: T).(pr0 u0 
+u3)))) (\lambda (x0: C).(\lambda (x1: T).(\lambda (H6: (getl n c4 (CHead x0 
+k0 x1))).(\lambda (H7: (wcpr0 e1 x0)).(\lambda (H8: (pr0 u0 x1)).(ex3_2_intro 
+C T (\lambda (e2: C).(\lambda (u3: T).(getl (S n) (CHead c4 (Bind b) u2) 
+(CHead e2 k0 u3)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 e1 e2))) (\lambda 
+(_: C).(\lambda (u3: T).(pr0 u0 u3))) x0 x1 (getl_head (Bind b) n c4 (CHead 
+x0 k0 x1) H6 u2) H7 H8)))))) H5))))))))) (\lambda (f: F).(\lambda (n: 
 nat).(\lambda (_: ((\forall (e1: C).(\forall (u3: T).(\forall (k0: K).((getl 
-n (CHead c3 (Bind b) u1) (CHead e1 k0 u3)) \to (ex3_2 C T (\lambda (e2: 
-C).(\lambda (u4: T).(getl n (CHead c4 (Bind b) u2) (CHead e2 k0 u4)))) 
+n (CHead c3 (Flat f) u1) (CHead e1 k0 u3)) \to (ex3_2 C T (\lambda (e2: 
+C).(\lambda (u4: T).(getl n (CHead c4 (Flat f) u2) (CHead e2 k0 u4)))) 
 (\lambda (e2: C).(\lambda (_: T).(wcpr0 e1 e2))) (\lambda (_: C).(\lambda 
 (u4: T).(pr0 u3 u4)))))))))).(\lambda (e1: C).(\lambda (u0: T).(\lambda (k0: 
-K).(\lambda (H4: (getl (S n) (CHead c3 (Bind b) u1) (CHead e1 k0 u0))).(let 
-TMP_118 \def (Bind b) in (let TMP_119 \def (CHead e1 k0 u0) in (let TMP_120 
-\def (getl_gen_S TMP_118 c3 TMP_119 u1 n H4) in (let H5 \def (H1 n e1 u0 k0 
-TMP_120) in (let TMP_122 \def (\lambda (e2: C).(\lambda (u3: T).(let TMP_121 
-\def (CHead e2 k0 u3) in (getl n c4 TMP_121)))) in (let TMP_123 \def (\lambda 
-(e2: C).(\lambda (_: T).(wcpr0 e1 e2))) in (let TMP_124 \def (\lambda (_: 
-C).(\lambda (u3: T).(pr0 u0 u3))) in (let TMP_129 \def (\lambda (e2: 
-C).(\lambda (u3: T).(let TMP_125 \def (S n) in (let TMP_126 \def (Bind b) in 
-(let TMP_127 \def (CHead c4 TMP_126 u2) in (let TMP_128 \def (CHead e2 k0 u3) 
-in (getl TMP_125 TMP_127 TMP_128))))))) in (let TMP_130 \def (\lambda (e2: 
-C).(\lambda (_: T).(wcpr0 e1 e2))) in (let TMP_131 \def (\lambda (_: 
-C).(\lambda (u3: T).(pr0 u0 u3))) in (let TMP_132 \def (ex3_2 C T TMP_129 
-TMP_130 TMP_131) in (let TMP_143 \def (\lambda (x0: C).(\lambda (x1: 
-T).(\lambda (H6: (getl n c4 (CHead x0 k0 x1))).(\lambda (H7: (wcpr0 e1 
-x0)).(\lambda (H8: (pr0 u0 x1)).(let TMP_137 \def (\lambda (e2: C).(\lambda 
-(u3: T).(let TMP_133 \def (S n) in (let TMP_134 \def (Bind b) in (let TMP_135 
-\def (CHead c4 TMP_134 u2) in (let TMP_136 \def (CHead e2 k0 u3) in (getl 
-TMP_133 TMP_135 TMP_136))))))) in (let TMP_138 \def (\lambda (e2: C).(\lambda 
-(_: T).(wcpr0 e1 e2))) in (let TMP_139 \def (\lambda (_: C).(\lambda (u3: 
-T).(pr0 u0 u3))) in (let TMP_140 \def (Bind b) in (let TMP_141 \def (CHead x0 
-k0 x1) in (let TMP_142 \def (getl_head TMP_140 n c4 TMP_141 H6 u2) in 
-(ex3_2_intro C T TMP_137 TMP_138 TMP_139 x0 x1 TMP_142 H7 H8)))))))))))) in 
-(ex3_2_ind C T TMP_122 TMP_123 TMP_124 TMP_132 TMP_143 H5)))))))))))))))))))) 
-in (let TMP_173 \def (\lambda (f: F).(\lambda (n: nat).(\lambda (_: ((\forall 
-(e1: C).(\forall (u3: T).(\forall (k0: K).((getl n (CHead c3 (Flat f) u1) 
-(CHead e1 k0 u3)) \to (ex3_2 C T (\lambda (e2: C).(\lambda (u4: T).(getl n 
-(CHead c4 (Flat f) u2) (CHead e2 k0 u4)))) (\lambda (e2: C).(\lambda (_: 
-T).(wcpr0 e1 e2))) (\lambda (_: C).(\lambda (u4: T).(pr0 u3 
-u4)))))))))).(\lambda (e1: C).(\lambda (u0: T).(\lambda (k0: K).(\lambda (H4: 
-(getl (S n) (CHead c3 (Flat f) u1) (CHead e1 k0 u0))).(let TMP_145 \def (S n) 
-in (let TMP_146 \def (Flat f) in (let TMP_147 \def (CHead e1 k0 u0) in (let 
-TMP_148 \def (getl_gen_S TMP_146 c3 TMP_147 u1 n H4) in (let H5 \def (H1 
-TMP_145 e1 u0 k0 TMP_148) in (let TMP_151 \def (\lambda (e2: C).(\lambda (u3: 
-T).(let TMP_149 \def (S n) in (let TMP_150 \def (CHead e2 k0 u3) in (getl 
-TMP_149 c4 TMP_150))))) in (let TMP_152 \def (\lambda (e2: C).(\lambda (_: 
-T).(wcpr0 e1 e2))) in (let TMP_153 \def (\lambda (_: C).(\lambda (u3: T).(pr0 
-u0 u3))) in (let TMP_158 \def (\lambda (e2: C).(\lambda (u3: T).(let TMP_154 
-\def (S n) in (let TMP_155 \def (Flat f) in (let TMP_156 \def (CHead c4 
-TMP_155 u2) in (let TMP_157 \def (CHead e2 k0 u3) in (getl TMP_154 TMP_156 
-TMP_157))))))) in (let TMP_159 \def (\lambda (e2: C).(\lambda (_: T).(wcpr0 
-e1 e2))) in (let TMP_160 \def (\lambda (_: C).(\lambda (u3: T).(pr0 u0 u3))) 
-in (let TMP_161 \def (ex3_2 C T TMP_158 TMP_159 TMP_160) in (let TMP_172 \def 
-(\lambda (x0: C).(\lambda (x1: T).(\lambda (H6: (getl (S n) c4 (CHead x0 k0 
-x1))).(\lambda (H7: (wcpr0 e1 x0)).(\lambda (H8: (pr0 u0 x1)).(let TMP_166 
-\def (\lambda (e2: C).(\lambda (u3: T).(let TMP_162 \def (S n) in (let 
-TMP_163 \def (Flat f) in (let TMP_164 \def (CHead c4 TMP_163 u2) in (let 
-TMP_165 \def (CHead e2 k0 u3) in (getl TMP_162 TMP_164 TMP_165))))))) in (let 
-TMP_167 \def (\lambda (e2: C).(\lambda (_: T).(wcpr0 e1 e2))) in (let TMP_168 
-\def (\lambda (_: C).(\lambda (u3: T).(pr0 u0 u3))) in (let TMP_169 \def 
-(Flat f) in (let TMP_170 \def (CHead x0 k0 x1) in (let TMP_171 \def 
-(getl_head TMP_169 n c4 TMP_170 H6 u2) in (ex3_2_intro C T TMP_166 TMP_167 
-TMP_168 x0 x1 TMP_171 H7 H8)))))))))))) in (ex3_2_ind C T TMP_151 TMP_152 
-TMP_153 TMP_161 TMP_172 H5))))))))))))))))))))) in (let TMP_174 \def (K_ind 
-TMP_117 TMP_144 TMP_173 k) in (nat_ind TMP_18 TMP_110 TMP_174 
-h)))))))))))))))) in (wcpr0_ind TMP_5 TMP_12 TMP_175 c1 c2 H)))))).
+K).(\lambda (H4: (getl (S n) (CHead c3 (Flat f) u1) (CHead e1 k0 u0))).(let 
+H5 \def (H1 (S n) e1 u0 k0 (getl_gen_S (Flat f) c3 (CHead e1 k0 u0) u1 n H4)) 
+in (ex3_2_ind C T (\lambda (e2: C).(\lambda (u3: T).(getl (S n) c4 (CHead e2 
+k0 u3)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 e1 e2))) (\lambda (_: 
+C).(\lambda (u3: T).(pr0 u0 u3))) (ex3_2 C T (\lambda (e2: C).(\lambda (u3: 
+T).(getl (S n) (CHead c4 (Flat f) u2) (CHead e2 k0 u3)))) (\lambda (e2: 
+C).(\lambda (_: T).(wcpr0 e1 e2))) (\lambda (_: C).(\lambda (u3: T).(pr0 u0 
+u3)))) (\lambda (x0: C).(\lambda (x1: T).(\lambda (H6: (getl (S n) c4 (CHead 
+x0 k0 x1))).(\lambda (H7: (wcpr0 e1 x0)).(\lambda (H8: (pr0 u0 
+x1)).(ex3_2_intro C T (\lambda (e2: C).(\lambda (u3: T).(getl (S n) (CHead c4 
+(Flat f) u2) (CHead e2 k0 u3)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 e1 
+e2))) (\lambda (_: C).(\lambda (u3: T).(pr0 u0 u3))) x0 x1 (getl_head (Flat 
+f) n c4 (CHead x0 k0 x1) H6 u2) H7 H8)))))) H5))))))))) k) h)))))))))) c1 c2 
+H))).
 
 theorem wcpr0_getl_back:
  \forall (c1: C).(\forall (c2: C).((wcpr0 c2 c1) \to (\forall (h: 
@@ -503,178 +337,112 @@ k u1)) \to (ex3_2 C T (\lambda (e2: C).(\lambda (u2: T).(getl h c2 (CHead e2
 k u2)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 e2 e1))) (\lambda (_: 
 C).(\lambda (u2: T).(pr0 u2 u1)))))))))))
 \def
- \lambda (c1: C).(\lambda (c2: C).(\lambda (H: (wcpr0 c2 c1)).(let TMP_5 \def 
+ \lambda (c1: C).(\lambda (c2: C).(\lambda (H: (wcpr0 c2 c1)).(wcpr0_ind 
 (\lambda (c: C).(\lambda (c0: C).(\forall (h: nat).(\forall (e1: C).(\forall 
-(u1: T).(\forall (k: K).((getl h c0 (CHead e1 k u1)) \to (let TMP_2 \def 
-(\lambda (e2: C).(\lambda (u2: T).(let TMP_1 \def (CHead e2 k u2) in (getl h 
-c TMP_1)))) in (let TMP_3 \def (\lambda (e2: C).(\lambda (_: T).(wcpr0 e2 
-e1))) in (let TMP_4 \def (\lambda (_: C).(\lambda (u2: T).(pr0 u2 u1))) in 
-(ex3_2 C T TMP_2 TMP_3 TMP_4))))))))))) in (let TMP_12 \def (\lambda (c: 
-C).(\lambda (h: nat).(\lambda (e1: C).(\lambda (u1: T).(\lambda (k: 
-K).(\lambda (H0: (getl h c (CHead e1 k u1))).(let TMP_7 \def (\lambda (e2: 
-C).(\lambda (u2: T).(let TMP_6 \def (CHead e2 k u2) in (getl h c TMP_6)))) in 
-(let TMP_8 \def (\lambda (e2: C).(\lambda (_: T).(wcpr0 e2 e1))) in (let 
-TMP_9 \def (\lambda (_: C).(\lambda (u2: T).(pr0 u2 u1))) in (let TMP_10 \def 
-(wcpr0_refl e1) in (let TMP_11 \def (pr0_refl u1) in (ex3_2_intro C T TMP_7 
-TMP_8 TMP_9 e1 u1 H0 TMP_10 TMP_11)))))))))))) in (let TMP_175 \def (\lambda 
-(c3: C).(\lambda (c4: C).(\lambda (H0: (wcpr0 c3 c4)).(\lambda (H1: ((\forall 
-(h: nat).(\forall (e1: C).(\forall (u1: T).(\forall (k: K).((getl h c4 (CHead 
-e1 k u1)) \to (ex3_2 C T (\lambda (e2: C).(\lambda (u2: T).(getl h c3 (CHead 
-e2 k u2)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 e2 e1))) (\lambda (_: 
-C).(\lambda (u2: T).(pr0 u2 u1))))))))))).(\lambda (u1: T).(\lambda (u2: 
-T).(\lambda (H2: (pr0 u1 u2)).(\lambda (k: K).(\lambda (h: nat).(let TMP_18 
-\def (\lambda (n: nat).(\forall (e1: C).(\forall (u3: T).(\forall (k0: 
-K).((getl n (CHead c4 k u2) (CHead e1 k0 u3)) \to (let TMP_15 \def (\lambda 
-(e2: C).(\lambda (u4: T).(let TMP_13 \def (CHead c3 k u1) in (let TMP_14 \def 
-(CHead e2 k0 u4) in (getl n TMP_13 TMP_14))))) in (let TMP_16 \def (\lambda 
-(e2: C).(\lambda (_: T).(wcpr0 e2 e1))) in (let TMP_17 \def (\lambda (_: 
-C).(\lambda (u4: T).(pr0 u4 u3))) in (ex3_2 C T TMP_15 TMP_16 TMP_17))))))))) 
-in (let TMP_110 \def (\lambda (e1: C).(\lambda (u0: T).(\lambda (k0: 
-K).(\lambda (H3: (getl O (CHead c4 k u2) (CHead e1 k0 u0))).(let TMP_24 \def 
-(\lambda (k1: K).((clear (CHead c4 k1 u2) (CHead e1 k0 u0)) \to (let TMP_21 
-\def (\lambda (e2: C).(\lambda (u3: T).(let TMP_19 \def (CHead c3 k1 u1) in 
-(let TMP_20 \def (CHead e2 k0 u3) in (getl O TMP_19 TMP_20))))) in (let 
-TMP_22 \def (\lambda (e2: C).(\lambda (_: T).(wcpr0 e2 e1))) in (let TMP_23 
-\def (\lambda (_: C).(\lambda (u3: T).(pr0 u3 u0))) in (ex3_2 C T TMP_21 
-TMP_22 TMP_23)))))) in (let TMP_80 \def (\lambda (b: B).(\lambda (H4: (clear 
-(CHead c4 (Bind b) u2) (CHead e1 k0 u0))).(let TMP_25 \def (\lambda (e: 
-C).(match e with [(CSort _) \Rightarrow e1 | (CHead c _ _) \Rightarrow c])) 
-in (let TMP_26 \def (CHead e1 k0 u0) in (let TMP_27 \def (Bind b) in (let 
-TMP_28 \def (CHead c4 TMP_27 u2) in (let TMP_29 \def (CHead e1 k0 u0) in (let 
-TMP_30 \def (clear_gen_bind b c4 TMP_29 u2 H4) in (let H5 \def (f_equal C C 
-TMP_25 TMP_26 TMP_28 TMP_30) in (let TMP_31 \def (\lambda (e: C).(match e 
-with [(CSort _) \Rightarrow k0 | (CHead _ k1 _) \Rightarrow k1])) in (let 
-TMP_32 \def (CHead e1 k0 u0) in (let TMP_33 \def (Bind b) in (let TMP_34 \def 
-(CHead c4 TMP_33 u2) in (let TMP_35 \def (CHead e1 k0 u0) in (let TMP_36 \def 
-(clear_gen_bind b c4 TMP_35 u2 H4) in (let H6 \def (f_equal C K TMP_31 TMP_32 
-TMP_34 TMP_36) in (let TMP_37 \def (\lambda (e: C).(match e with [(CSort _) 
-\Rightarrow u0 | (CHead _ _ t) \Rightarrow t])) in (let TMP_38 \def (CHead e1 
-k0 u0) in (let TMP_39 \def (Bind b) in (let TMP_40 \def (CHead c4 TMP_39 u2) 
-in (let TMP_41 \def (CHead e1 k0 u0) in (let TMP_42 \def (clear_gen_bind b c4 
-TMP_41 u2 H4) in (let H7 \def (f_equal C T TMP_37 TMP_38 TMP_40 TMP_42) in 
-(let TMP_78 \def (\lambda (H8: (eq K k0 (Bind b))).(\lambda (H9: (eq C e1 
-c4)).(let TMP_43 \def (Bind b) in (let TMP_50 \def (\lambda (k1: K).(let 
-TMP_47 \def (\lambda (e2: C).(\lambda (u3: T).(let TMP_44 \def (Bind b) in 
-(let TMP_45 \def (CHead c3 TMP_44 u1) in (let TMP_46 \def (CHead e2 k1 u3) in 
-(getl O TMP_45 TMP_46)))))) in (let TMP_48 \def (\lambda (e2: C).(\lambda (_: 
-T).(wcpr0 e2 e1))) in (let TMP_49 \def (\lambda (_: C).(\lambda (u3: T).(pr0 
-u3 u0))) in (ex3_2 C T TMP_47 TMP_48 TMP_49))))) in (let TMP_58 \def (\lambda 
-(t: T).(let TMP_55 \def (\lambda (e2: C).(\lambda (u3: T).(let TMP_51 \def 
-(Bind b) in (let TMP_52 \def (CHead c3 TMP_51 u1) in (let TMP_53 \def (Bind 
-b) in (let TMP_54 \def (CHead e2 TMP_53 u3) in (getl O TMP_52 TMP_54))))))) 
-in (let TMP_56 \def (\lambda (e2: C).(\lambda (_: T).(wcpr0 e2 e1))) in (let 
-TMP_57 \def (\lambda (_: C).(\lambda (u3: T).(pr0 u3 t))) in (ex3_2 C T 
-TMP_55 TMP_56 TMP_57))))) in (let TMP_66 \def (\lambda (c: C).(let TMP_63 
-\def (\lambda (e2: C).(\lambda (u3: T).(let TMP_59 \def (Bind b) in (let 
-TMP_60 \def (CHead c3 TMP_59 u1) in (let TMP_61 \def (Bind b) in (let TMP_62 
-\def (CHead e2 TMP_61 u3) in (getl O TMP_60 TMP_62))))))) in (let TMP_64 \def 
-(\lambda (e2: C).(\lambda (_: T).(wcpr0 e2 c))) in (let TMP_65 \def (\lambda 
-(_: C).(\lambda (u3: T).(pr0 u3 u2))) in (ex3_2 C T TMP_63 TMP_64 TMP_65))))) 
-in (let TMP_71 \def (\lambda (e2: C).(\lambda (u3: T).(let TMP_67 \def (Bind 
-b) in (let TMP_68 \def (CHead c3 TMP_67 u1) in (let TMP_69 \def (Bind b) in 
-(let TMP_70 \def (CHead e2 TMP_69 u3) in (getl O TMP_68 TMP_70))))))) in (let 
-TMP_72 \def (\lambda (e2: C).(\lambda (_: T).(wcpr0 e2 c4))) in (let TMP_73 
-\def (\lambda (_: C).(\lambda (u3: T).(pr0 u3 u2))) in (let TMP_74 \def 
-(getl_refl b c3 u1) in (let TMP_75 \def (ex3_2_intro C T TMP_71 TMP_72 TMP_73 
-c3 u1 TMP_74 H0 H2) in (let TMP_76 \def (eq_ind_r C c4 TMP_66 TMP_75 e1 H9) 
-in (let TMP_77 \def (eq_ind_r T u2 TMP_58 TMP_76 u0 H7) in (eq_ind_r K TMP_43 
-TMP_50 TMP_77 k0 H8)))))))))))))) in (let TMP_79 \def (TMP_78 H6) in (TMP_79 
-H5)))))))))))))))))))))))))) in (let TMP_106 \def (\lambda (f: F).(\lambda 
-(H4: (clear (CHead c4 (Flat f) u2) (CHead e1 k0 u0))).(let TMP_81 \def (CHead 
-e1 k0 u0) in (let TMP_82 \def (drop_refl c4) in (let TMP_83 \def (CHead e1 k0 
-u0) in (let TMP_84 \def (clear_gen_flat f c4 TMP_83 u2 H4) in (let TMP_85 
-\def (getl_intro O c4 TMP_81 c4 TMP_82 TMP_84) in (let H5 \def (H1 O e1 u0 k0 
-TMP_85) in (let TMP_87 \def (\lambda (e2: C).(\lambda (u3: T).(let TMP_86 
-\def (CHead e2 k0 u3) in (getl O c3 TMP_86)))) in (let TMP_88 \def (\lambda 
-(e2: C).(\lambda (_: T).(wcpr0 e2 e1))) in (let TMP_89 \def (\lambda (_: 
-C).(\lambda (u3: T).(pr0 u3 u0))) in (let TMP_93 \def (\lambda (e2: 
-C).(\lambda (u3: T).(let TMP_90 \def (Flat f) in (let TMP_91 \def (CHead c3 
-TMP_90 u1) in (let TMP_92 \def (CHead e2 k0 u3) in (getl O TMP_91 
-TMP_92)))))) in (let TMP_94 \def (\lambda (e2: C).(\lambda (_: T).(wcpr0 e2 
-e1))) in (let TMP_95 \def (\lambda (_: C).(\lambda (u3: T).(pr0 u3 u0))) in 
-(let TMP_96 \def (ex3_2 C T TMP_93 TMP_94 TMP_95) in (let TMP_105 \def 
-(\lambda (x0: C).(\lambda (x1: T).(\lambda (H6: (getl O c3 (CHead x0 k0 
-x1))).(\lambda (H7: (wcpr0 x0 e1)).(\lambda (H8: (pr0 x1 u0)).(let TMP_100 
-\def (\lambda (e2: C).(\lambda (u3: T).(let TMP_97 \def (Flat f) in (let 
-TMP_98 \def (CHead c3 TMP_97 u1) in (let TMP_99 \def (CHead e2 k0 u3) in 
-(getl O TMP_98 TMP_99)))))) in (let TMP_101 \def (\lambda (e2: C).(\lambda 
-(_: T).(wcpr0 e2 e1))) in (let TMP_102 \def (\lambda (_: C).(\lambda (u3: 
-T).(pr0 u3 u0))) in (let TMP_103 \def (CHead x0 k0 x1) in (let TMP_104 \def 
-(getl_flat c3 TMP_103 O H6 f u1) in (ex3_2_intro C T TMP_100 TMP_101 TMP_102 
-x0 x1 TMP_104 H7 H8))))))))))) in (ex3_2_ind C T TMP_87 TMP_88 TMP_89 TMP_96 
-TMP_105 H5))))))))))))))))) in (let TMP_107 \def (CHead c4 k u2) in (let 
-TMP_108 \def (CHead e1 k0 u0) in (let TMP_109 \def (getl_gen_O TMP_107 
-TMP_108 H3) in (K_ind TMP_24 TMP_80 TMP_106 k TMP_109))))))))))) in (let 
-TMP_117 \def (\lambda (k0: K).(\forall (n: nat).(((\forall (e1: C).(\forall 
-(u3: T).(\forall (k1: K).((getl n (CHead c4 k0 u2) (CHead e1 k1 u3)) \to 
-(ex3_2 C T (\lambda (e2: C).(\lambda (u4: T).(getl n (CHead c3 k0 u1) (CHead 
-e2 k1 u4)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 e2 e1))) (\lambda (_: 
-C).(\lambda (u4: T).(pr0 u4 u3))))))))) \to (\forall (e1: C).(\forall (u3: 
-T).(\forall (k1: K).((getl (S n) (CHead c4 k0 u2) (CHead e1 k1 u3)) \to (let 
-TMP_114 \def (\lambda (e2: C).(\lambda (u4: T).(let TMP_111 \def (S n) in 
-(let TMP_112 \def (CHead c3 k0 u1) in (let TMP_113 \def (CHead e2 k1 u4) in 
-(getl TMP_111 TMP_112 TMP_113)))))) in (let TMP_115 \def (\lambda (e2: 
-C).(\lambda (_: T).(wcpr0 e2 e1))) in (let TMP_116 \def (\lambda (_: 
-C).(\lambda (u4: T).(pr0 u4 u3))) in (ex3_2 C T TMP_114 TMP_115 
-TMP_116))))))))))) in (let TMP_144 \def (\lambda (b: B).(\lambda (n: 
+(u1: T).(\forall (k: K).((getl h c0 (CHead e1 k u1)) \to (ex3_2 C T (\lambda 
+(e2: C).(\lambda (u2: T).(getl h c (CHead e2 k u2)))) (\lambda (e2: 
+C).(\lambda (_: T).(wcpr0 e2 e1))) (\lambda (_: C).(\lambda (u2: T).(pr0 u2 
+u1))))))))))) (\lambda (c: C).(\lambda (h: nat).(\lambda (e1: C).(\lambda 
+(u1: T).(\lambda (k: K).(\lambda (H0: (getl h c (CHead e1 k 
+u1))).(ex3_2_intro C T (\lambda (e2: C).(\lambda (u2: T).(getl h c (CHead e2 
+k u2)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 e2 e1))) (\lambda (_: 
+C).(\lambda (u2: T).(pr0 u2 u1))) e1 u1 H0 (wcpr0_refl e1) (pr0_refl 
+u1)))))))) (\lambda (c3: C).(\lambda (c4: C).(\lambda (H0: (wcpr0 c3 
+c4)).(\lambda (H1: ((\forall (h: nat).(\forall (e1: C).(\forall (u1: 
+T).(\forall (k: K).((getl h c4 (CHead e1 k u1)) \to (ex3_2 C T (\lambda (e2: 
+C).(\lambda (u2: T).(getl h c3 (CHead e2 k u2)))) (\lambda (e2: C).(\lambda 
+(_: T).(wcpr0 e2 e1))) (\lambda (_: C).(\lambda (u2: T).(pr0 u2 
+u1))))))))))).(\lambda (u1: T).(\lambda (u2: T).(\lambda (H2: (pr0 u1 
+u2)).(\lambda (k: K).(\lambda (h: nat).(nat_ind (\lambda (n: nat).(\forall 
+(e1: C).(\forall (u3: T).(\forall (k0: K).((getl n (CHead c4 k u2) (CHead e1 
+k0 u3)) \to (ex3_2 C T (\lambda (e2: C).(\lambda (u4: T).(getl n (CHead c3 k 
+u1) (CHead e2 k0 u4)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 e2 e1))) 
+(\lambda (_: C).(\lambda (u4: T).(pr0 u4 u3))))))))) (\lambda (e1: 
+C).(\lambda (u0: T).(\lambda (k0: K).(\lambda (H3: (getl O (CHead c4 k u2) 
+(CHead e1 k0 u0))).(K_ind (\lambda (k1: K).((clear (CHead c4 k1 u2) (CHead e1 
+k0 u0)) \to (ex3_2 C T (\lambda (e2: C).(\lambda (u3: T).(getl O (CHead c3 k1 
+u1) (CHead e2 k0 u3)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 e2 e1))) 
+(\lambda (_: C).(\lambda (u3: T).(pr0 u3 u0)))))) (\lambda (b: B).(\lambda 
+(H4: (clear (CHead c4 (Bind b) u2) (CHead e1 k0 u0))).(let H5 \def (f_equal C 
+C (\lambda (e: C).(match e with [(CSort _) \Rightarrow e1 | (CHead c _ _) 
+\Rightarrow c])) (CHead e1 k0 u0) (CHead c4 (Bind b) u2) (clear_gen_bind b c4 
+(CHead e1 k0 u0) u2 H4)) in ((let H6 \def (f_equal C K (\lambda (e: C).(match 
+e with [(CSort _) \Rightarrow k0 | (CHead _ k1 _) \Rightarrow k1])) (CHead e1 
+k0 u0) (CHead c4 (Bind b) u2) (clear_gen_bind b c4 (CHead e1 k0 u0) u2 H4)) 
+in ((let H7 \def (f_equal C T (\lambda (e: C).(match e with [(CSort _) 
+\Rightarrow u0 | (CHead _ _ t) \Rightarrow t])) (CHead e1 k0 u0) (CHead c4 
+(Bind b) u2) (clear_gen_bind b c4 (CHead e1 k0 u0) u2 H4)) in (\lambda (H8: 
+(eq K k0 (Bind b))).(\lambda (H9: (eq C e1 c4)).(eq_ind_r K (Bind b) (\lambda 
+(k1: K).(ex3_2 C T (\lambda (e2: C).(\lambda (u3: T).(getl O (CHead c3 (Bind 
+b) u1) (CHead e2 k1 u3)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 e2 e1))) 
+(\lambda (_: C).(\lambda (u3: T).(pr0 u3 u0))))) (eq_ind_r T u2 (\lambda (t: 
+T).(ex3_2 C T (\lambda (e2: C).(\lambda (u3: T).(getl O (CHead c3 (Bind b) 
+u1) (CHead e2 (Bind b) u3)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 e2 
+e1))) (\lambda (_: C).(\lambda (u3: T).(pr0 u3 t))))) (eq_ind_r C c4 (\lambda 
+(c: C).(ex3_2 C T (\lambda (e2: C).(\lambda (u3: T).(getl O (CHead c3 (Bind 
+b) u1) (CHead e2 (Bind b) u3)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 e2 
+c))) (\lambda (_: C).(\lambda (u3: T).(pr0 u3 u2))))) (ex3_2_intro C T 
+(\lambda (e2: C).(\lambda (u3: T).(getl O (CHead c3 (Bind b) u1) (CHead e2 
+(Bind b) u3)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 e2 c4))) (\lambda (_: 
+C).(\lambda (u3: T).(pr0 u3 u2))) c3 u1 (getl_refl b c3 u1) H0 H2) e1 H9) u0 
+H7) k0 H8)))) H6)) H5)))) (\lambda (f: F).(\lambda (H4: (clear (CHead c4 
+(Flat f) u2) (CHead e1 k0 u0))).(let H5 \def (H1 O e1 u0 k0 (getl_intro O c4 
+(CHead e1 k0 u0) c4 (drop_refl c4) (clear_gen_flat f c4 (CHead e1 k0 u0) u2 
+H4))) in (ex3_2_ind C T (\lambda (e2: C).(\lambda (u3: T).(getl O c3 (CHead 
+e2 k0 u3)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 e2 e1))) (\lambda (_: 
+C).(\lambda (u3: T).(pr0 u3 u0))) (ex3_2 C T (\lambda (e2: C).(\lambda (u3: 
+T).(getl O (CHead c3 (Flat f) u1) (CHead e2 k0 u3)))) (\lambda (e2: 
+C).(\lambda (_: T).(wcpr0 e2 e1))) (\lambda (_: C).(\lambda (u3: T).(pr0 u3 
+u0)))) (\lambda (x0: C).(\lambda (x1: T).(\lambda (H6: (getl O c3 (CHead x0 
+k0 x1))).(\lambda (H7: (wcpr0 x0 e1)).(\lambda (H8: (pr0 x1 u0)).(ex3_2_intro 
+C T (\lambda (e2: C).(\lambda (u3: T).(getl O (CHead c3 (Flat f) u1) (CHead 
+e2 k0 u3)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 e2 e1))) (\lambda (_: 
+C).(\lambda (u3: T).(pr0 u3 u0))) x0 x1 (getl_flat c3 (CHead x0 k0 x1) O H6 f 
+u1) H7 H8)))))) H5)))) k (getl_gen_O (CHead c4 k u2) (CHead e1 k0 u0) 
+H3)))))) (K_ind (\lambda (k0: K).(\forall (n: nat).(((\forall (e1: 
+C).(\forall (u3: T).(\forall (k1: K).((getl n (CHead c4 k0 u2) (CHead e1 k1 
+u3)) \to (ex3_2 C T (\lambda (e2: C).(\lambda (u4: T).(getl n (CHead c3 k0 
+u1) (CHead e2 k1 u4)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 e2 e1))) 
+(\lambda (_: C).(\lambda (u4: T).(pr0 u4 u3))))))))) \to (\forall (e1: 
+C).(\forall (u3: T).(\forall (k1: K).((getl (S n) (CHead c4 k0 u2) (CHead e1 
+k1 u3)) \to (ex3_2 C T (\lambda (e2: C).(\lambda (u4: T).(getl (S n) (CHead 
+c3 k0 u1) (CHead e2 k1 u4)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 e2 
+e1))) (\lambda (_: C).(\lambda (u4: T).(pr0 u4 u3))))))))))) (\lambda (b: 
+B).(\lambda (n: nat).(\lambda (_: ((\forall (e1: C).(\forall (u3: T).(\forall 
+(k0: K).((getl n (CHead c4 (Bind b) u2) (CHead e1 k0 u3)) \to (ex3_2 C T 
+(\lambda (e2: C).(\lambda (u4: T).(getl n (CHead c3 (Bind b) u1) (CHead e2 k0 
+u4)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 e2 e1))) (\lambda (_: 
+C).(\lambda (u4: T).(pr0 u4 u3)))))))))).(\lambda (e1: C).(\lambda (u0: 
+T).(\lambda (k0: K).(\lambda (H4: (getl (S n) (CHead c4 (Bind b) u2) (CHead 
+e1 k0 u0))).(let H5 \def (H1 n e1 u0 k0 (getl_gen_S (Bind b) c4 (CHead e1 k0 
+u0) u2 n H4)) in (ex3_2_ind C T (\lambda (e2: C).(\lambda (u3: T).(getl n c3 
+(CHead e2 k0 u3)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 e2 e1))) (\lambda 
+(_: C).(\lambda (u3: T).(pr0 u3 u0))) (ex3_2 C T (\lambda (e2: C).(\lambda 
+(u3: T).(getl (S n) (CHead c3 (Bind b) u1) (CHead e2 k0 u3)))) (\lambda (e2: 
+C).(\lambda (_: T).(wcpr0 e2 e1))) (\lambda (_: C).(\lambda (u3: T).(pr0 u3 
+u0)))) (\lambda (x0: C).(\lambda (x1: T).(\lambda (H6: (getl n c3 (CHead x0 
+k0 x1))).(\lambda (H7: (wcpr0 x0 e1)).(\lambda (H8: (pr0 x1 u0)).(ex3_2_intro 
+C T (\lambda (e2: C).(\lambda (u3: T).(getl (S n) (CHead c3 (Bind b) u1) 
+(CHead e2 k0 u3)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 e2 e1))) (\lambda 
+(_: C).(\lambda (u3: T).(pr0 u3 u0))) x0 x1 (getl_head (Bind b) n c3 (CHead 
+x0 k0 x1) H6 u1) H7 H8)))))) H5))))))))) (\lambda (f: F).(\lambda (n: 
 nat).(\lambda (_: ((\forall (e1: C).(\forall (u3: T).(\forall (k0: K).((getl 
-n (CHead c4 (Bind b) u2) (CHead e1 k0 u3)) \to (ex3_2 C T (\lambda (e2: 
-C).(\lambda (u4: T).(getl n (CHead c3 (Bind b) u1) (CHead e2 k0 u4)))) 
+n (CHead c4 (Flat f) u2) (CHead e1 k0 u3)) \to (ex3_2 C T (\lambda (e2: 
+C).(\lambda (u4: T).(getl n (CHead c3 (Flat f) u1) (CHead e2 k0 u4)))) 
 (\lambda (e2: C).(\lambda (_: T).(wcpr0 e2 e1))) (\lambda (_: C).(\lambda 
 (u4: T).(pr0 u4 u3)))))))))).(\lambda (e1: C).(\lambda (u0: T).(\lambda (k0: 
-K).(\lambda (H4: (getl (S n) (CHead c4 (Bind b) u2) (CHead e1 k0 u0))).(let 
-TMP_118 \def (Bind b) in (let TMP_119 \def (CHead e1 k0 u0) in (let TMP_120 
-\def (getl_gen_S TMP_118 c4 TMP_119 u2 n H4) in (let H5 \def (H1 n e1 u0 k0 
-TMP_120) in (let TMP_122 \def (\lambda (e2: C).(\lambda (u3: T).(let TMP_121 
-\def (CHead e2 k0 u3) in (getl n c3 TMP_121)))) in (let TMP_123 \def (\lambda 
-(e2: C).(\lambda (_: T).(wcpr0 e2 e1))) in (let TMP_124 \def (\lambda (_: 
-C).(\lambda (u3: T).(pr0 u3 u0))) in (let TMP_129 \def (\lambda (e2: 
-C).(\lambda (u3: T).(let TMP_125 \def (S n) in (let TMP_126 \def (Bind b) in 
-(let TMP_127 \def (CHead c3 TMP_126 u1) in (let TMP_128 \def (CHead e2 k0 u3) 
-in (getl TMP_125 TMP_127 TMP_128))))))) in (let TMP_130 \def (\lambda (e2: 
-C).(\lambda (_: T).(wcpr0 e2 e1))) in (let TMP_131 \def (\lambda (_: 
-C).(\lambda (u3: T).(pr0 u3 u0))) in (let TMP_132 \def (ex3_2 C T TMP_129 
-TMP_130 TMP_131) in (let TMP_143 \def (\lambda (x0: C).(\lambda (x1: 
-T).(\lambda (H6: (getl n c3 (CHead x0 k0 x1))).(\lambda (H7: (wcpr0 x0 
-e1)).(\lambda (H8: (pr0 x1 u0)).(let TMP_137 \def (\lambda (e2: C).(\lambda 
-(u3: T).(let TMP_133 \def (S n) in (let TMP_134 \def (Bind b) in (let TMP_135 
-\def (CHead c3 TMP_134 u1) in (let TMP_136 \def (CHead e2 k0 u3) in (getl 
-TMP_133 TMP_135 TMP_136))))))) in (let TMP_138 \def (\lambda (e2: C).(\lambda 
-(_: T).(wcpr0 e2 e1))) in (let TMP_139 \def (\lambda (_: C).(\lambda (u3: 
-T).(pr0 u3 u0))) in (let TMP_140 \def (Bind b) in (let TMP_141 \def (CHead x0 
-k0 x1) in (let TMP_142 \def (getl_head TMP_140 n c3 TMP_141 H6 u1) in 
-(ex3_2_intro C T TMP_137 TMP_138 TMP_139 x0 x1 TMP_142 H7 H8)))))))))))) in 
-(ex3_2_ind C T TMP_122 TMP_123 TMP_124 TMP_132 TMP_143 H5)))))))))))))))))))) 
-in (let TMP_173 \def (\lambda (f: F).(\lambda (n: nat).(\lambda (_: ((\forall 
-(e1: C).(\forall (u3: T).(\forall (k0: K).((getl n (CHead c4 (Flat f) u2) 
-(CHead e1 k0 u3)) \to (ex3_2 C T (\lambda (e2: C).(\lambda (u4: T).(getl n 
-(CHead c3 (Flat f) u1) (CHead e2 k0 u4)))) (\lambda (e2: C).(\lambda (_: 
-T).(wcpr0 e2 e1))) (\lambda (_: C).(\lambda (u4: T).(pr0 u4 
-u3)))))))))).(\lambda (e1: C).(\lambda (u0: T).(\lambda (k0: K).(\lambda (H4: 
-(getl (S n) (CHead c4 (Flat f) u2) (CHead e1 k0 u0))).(let TMP_145 \def (S n) 
-in (let TMP_146 \def (Flat f) in (let TMP_147 \def (CHead e1 k0 u0) in (let 
-TMP_148 \def (getl_gen_S TMP_146 c4 TMP_147 u2 n H4) in (let H5 \def (H1 
-TMP_145 e1 u0 k0 TMP_148) in (let TMP_151 \def (\lambda (e2: C).(\lambda (u3: 
-T).(let TMP_149 \def (S n) in (let TMP_150 \def (CHead e2 k0 u3) in (getl 
-TMP_149 c3 TMP_150))))) in (let TMP_152 \def (\lambda (e2: C).(\lambda (_: 
-T).(wcpr0 e2 e1))) in (let TMP_153 \def (\lambda (_: C).(\lambda (u3: T).(pr0 
-u3 u0))) in (let TMP_158 \def (\lambda (e2: C).(\lambda (u3: T).(let TMP_154 
-\def (S n) in (let TMP_155 \def (Flat f) in (let TMP_156 \def (CHead c3 
-TMP_155 u1) in (let TMP_157 \def (CHead e2 k0 u3) in (getl TMP_154 TMP_156 
-TMP_157))))))) in (let TMP_159 \def (\lambda (e2: C).(\lambda (_: T).(wcpr0 
-e2 e1))) in (let TMP_160 \def (\lambda (_: C).(\lambda (u3: T).(pr0 u3 u0))) 
-in (let TMP_161 \def (ex3_2 C T TMP_158 TMP_159 TMP_160) in (let TMP_172 \def 
-(\lambda (x0: C).(\lambda (x1: T).(\lambda (H6: (getl (S n) c3 (CHead x0 k0 
-x1))).(\lambda (H7: (wcpr0 x0 e1)).(\lambda (H8: (pr0 x1 u0)).(let TMP_166 
-\def (\lambda (e2: C).(\lambda (u3: T).(let TMP_162 \def (S n) in (let 
-TMP_163 \def (Flat f) in (let TMP_164 \def (CHead c3 TMP_163 u1) in (let 
-TMP_165 \def (CHead e2 k0 u3) in (getl TMP_162 TMP_164 TMP_165))))))) in (let 
-TMP_167 \def (\lambda (e2: C).(\lambda (_: T).(wcpr0 e2 e1))) in (let TMP_168 
-\def (\lambda (_: C).(\lambda (u3: T).(pr0 u3 u0))) in (let TMP_169 \def 
-(Flat f) in (let TMP_170 \def (CHead x0 k0 x1) in (let TMP_171 \def 
-(getl_head TMP_169 n c3 TMP_170 H6 u1) in (ex3_2_intro C T TMP_166 TMP_167 
-TMP_168 x0 x1 TMP_171 H7 H8)))))))))))) in (ex3_2_ind C T TMP_151 TMP_152 
-TMP_153 TMP_161 TMP_172 H5))))))))))))))))))))) in (let TMP_174 \def (K_ind 
-TMP_117 TMP_144 TMP_173 k) in (nat_ind TMP_18 TMP_110 TMP_174 
-h)))))))))))))))) in (wcpr0_ind TMP_5 TMP_12 TMP_175 c2 c1 H)))))).
+K).(\lambda (H4: (getl (S n) (CHead c4 (Flat f) u2) (CHead e1 k0 u0))).(let 
+H5 \def (H1 (S n) e1 u0 k0 (getl_gen_S (Flat f) c4 (CHead e1 k0 u0) u2 n H4)) 
+in (ex3_2_ind C T (\lambda (e2: C).(\lambda (u3: T).(getl (S n) c3 (CHead e2 
+k0 u3)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 e2 e1))) (\lambda (_: 
+C).(\lambda (u3: T).(pr0 u3 u0))) (ex3_2 C T (\lambda (e2: C).(\lambda (u3: 
+T).(getl (S n) (CHead c3 (Flat f) u1) (CHead e2 k0 u3)))) (\lambda (e2: 
+C).(\lambda (_: T).(wcpr0 e2 e1))) (\lambda (_: C).(\lambda (u3: T).(pr0 u3 
+u0)))) (\lambda (x0: C).(\lambda (x1: T).(\lambda (H6: (getl (S n) c3 (CHead 
+x0 k0 x1))).(\lambda (H7: (wcpr0 x0 e1)).(\lambda (H8: (pr0 x1 
+u0)).(ex3_2_intro C T (\lambda (e2: C).(\lambda (u3: T).(getl (S n) (CHead c3 
+(Flat f) u1) (CHead e2 k0 u3)))) (\lambda (e2: C).(\lambda (_: T).(wcpr0 e2 
+e1))) (\lambda (_: C).(\lambda (u3: T).(pr0 u3 u0))) x0 x1 (getl_head (Flat 
+f) n c3 (CHead x0 k0 x1) H6 u1) H7 H8)))))) H5))))))))) k) h)))))))))) c2 c1 
+H))).
 
index 4eb5de99c50a6446f33428d608e088c59f32bba7..b894fc6789b6bd91dffa1c60215e3c4727f58153 100644 (file)
@@ -22,105 +22,66 @@ theorem wf3_clear_conf:
  \forall (c1: C).(\forall (c: C).((clear c1 c) \to (\forall (g: G).(\forall 
 (c2: C).((wf3 g c1 c2) \to (wf3 g c c2))))))
 \def
- \lambda (c1: C).(\lambda (c: C).(\lambda (H: (clear c1 c)).(let TMP_1 \def 
+ \lambda (c1: C).(\lambda (c: C).(\lambda (H: (clear c1 c)).(clear_ind 
 (\lambda (c0: C).(\lambda (c2: C).(\forall (g: G).(\forall (c3: C).((wf3 g c0 
-c3) \to (wf3 g c2 c3)))))) in (let TMP_2 \def (\lambda (b: B).(\lambda (e: 
-C).(\lambda (u: T).(\lambda (g: G).(\lambda (c2: C).(\lambda (H0: (wf3 g 
-(CHead e (Bind b) u) c2)).H0)))))) in (let TMP_3 \def (\lambda (e: 
-C).(\lambda (c0: C).(\lambda (_: (clear e c0)).(\lambda (H1: ((\forall (g: 
-G).(\forall (c2: C).((wf3 g e c2) \to (wf3 g c0 c2)))))).(\lambda (f: 
-F).(\lambda (u: T).(\lambda (g: G).(\lambda (c2: C).(\lambda (H2: (wf3 g 
-(CHead e (Flat f) u) c2)).(let H_y \def (wf3_gen_flat1 g e c2 u f H2) in (H1 
-g c2 H_y))))))))))) in (clear_ind TMP_1 TMP_2 TMP_3 c1 c H)))))).
+c3) \to (wf3 g c2 c3)))))) (\lambda (b: B).(\lambda (e: C).(\lambda (u: 
+T).(\lambda (g: G).(\lambda (c2: C).(\lambda (H0: (wf3 g (CHead e (Bind b) u) 
+c2)).H0)))))) (\lambda (e: C).(\lambda (c0: C).(\lambda (_: (clear e 
+c0)).(\lambda (H1: ((\forall (g: G).(\forall (c2: C).((wf3 g e c2) \to (wf3 g 
+c0 c2)))))).(\lambda (f: F).(\lambda (u: T).(\lambda (g: G).(\lambda (c2: 
+C).(\lambda (H2: (wf3 g (CHead e (Flat f) u) c2)).(let H_y \def 
+(wf3_gen_flat1 g e c2 u f H2) in (H1 g c2 H_y))))))))))) c1 c H))).
 
 theorem clear_wf3_trans:
  \forall (c1: C).(\forall (d1: C).((clear c1 d1) \to (\forall (g: G).(\forall 
 (d2: C).((wf3 g d1 d2) \to (ex2 C (\lambda (c2: C).(wf3 g c1 c2)) (\lambda 
 (c2: C).(clear c2 d2))))))))
 \def
- \lambda (c1: C).(\lambda (d1: C).(\lambda (H: (clear c1 d1)).(let TMP_3 \def 
+ \lambda (c1: C).(\lambda (d1: C).(\lambda (H: (clear c1 d1)).(clear_ind 
 (\lambda (c: C).(\lambda (c0: C).(\forall (g: G).(\forall (d2: C).((wf3 g c0 
-d2) \to (let TMP_1 \def (\lambda (c2: C).(wf3 g c c2)) in (let TMP_2 \def 
-(\lambda (c2: C).(clear c2 d2)) in (ex2 C TMP_1 TMP_2)))))))) in (let TMP_87 
-\def (\lambda (b: B).(\lambda (e: C).(\lambda (u: T).(\lambda (g: G).(\lambda 
-(d2: C).(\lambda (H0: (wf3 g (CHead e (Bind b) u) d2)).(let H_x \def 
-(wf3_gen_bind1 g e d2 u b H0) in (let H1 \def H_x in (let TMP_6 \def (\lambda 
-(c2: C).(\lambda (_: T).(let TMP_4 \def (Bind b) in (let TMP_5 \def (CHead c2 
-TMP_4 u) in (eq C d2 TMP_5))))) in (let TMP_7 \def (\lambda (c2: C).(\lambda 
-(_: T).(wf3 g e c2))) in (let TMP_8 \def (\lambda (_: C).(\lambda (w: T).(ty3 
-g e u w))) in (let TMP_9 \def (ex3_2 C T TMP_6 TMP_7 TMP_8) in (let TMP_13 
-\def (\lambda (c2: C).(let TMP_10 \def (Bind Void) in (let TMP_11 \def (TSort 
-O) in (let TMP_12 \def (CHead c2 TMP_10 TMP_11) in (eq C d2 TMP_12))))) in 
-(let TMP_14 \def (\lambda (c2: C).(wf3 g e c2)) in (let TMP_15 \def (\lambda 
-(_: C).(\forall (w: T).((ty3 g e u w) \to False))) in (let TMP_16 \def (ex3 C 
-TMP_13 TMP_14 TMP_15) in (let TMP_19 \def (\lambda (c2: C).(let TMP_17 \def 
-(Bind b) in (let TMP_18 \def (CHead e TMP_17 u) in (wf3 g TMP_18 c2)))) in 
-(let TMP_20 \def (\lambda (c2: C).(clear c2 d2)) in (let TMP_21 \def (ex2 C 
-TMP_19 TMP_20) in (let TMP_51 \def (\lambda (H2: (ex3_2 C T (\lambda (c2: 
+d2) \to (ex2 C (\lambda (c2: C).(wf3 g c c2)) (\lambda (c2: C).(clear c2 
+d2)))))))) (\lambda (b: B).(\lambda (e: C).(\lambda (u: T).(\lambda (g: 
+G).(\lambda (d2: C).(\lambda (H0: (wf3 g (CHead e (Bind b) u) d2)).(let H_x 
+\def (wf3_gen_bind1 g e d2 u b H0) in (let H1 \def H_x in (or_ind (ex3_2 C T 
+(\lambda (c2: C).(\lambda (_: T).(eq C d2 (CHead c2 (Bind b) u)))) (\lambda 
+(c2: C).(\lambda (_: T).(wf3 g e c2))) (\lambda (_: C).(\lambda (w: T).(ty3 g 
+e u w)))) (ex3 C (\lambda (c2: C).(eq C d2 (CHead c2 (Bind Void) (TSort O)))) 
+(\lambda (c2: C).(wf3 g e c2)) (\lambda (_: C).(\forall (w: T).((ty3 g e u w) 
+\to False)))) (ex2 C (\lambda (c2: C).(wf3 g (CHead e (Bind b) u) c2)) 
+(\lambda (c2: C).(clear c2 d2))) (\lambda (H2: (ex3_2 C T (\lambda (c2: 
 C).(\lambda (_: T).(eq C d2 (CHead c2 (Bind b) u)))) (\lambda (c2: 
 C).(\lambda (_: T).(wf3 g e c2))) (\lambda (_: C).(\lambda (w: T).(ty3 g e u 
-w))))).(let TMP_24 \def (\lambda (c2: C).(\lambda (_: T).(let TMP_22 \def 
-(Bind b) in (let TMP_23 \def (CHead c2 TMP_22 u) in (eq C d2 TMP_23))))) in 
-(let TMP_25 \def (\lambda (c2: C).(\lambda (_: T).(wf3 g e c2))) in (let 
-TMP_26 \def (\lambda (_: C).(\lambda (w: T).(ty3 g e u w))) in (let TMP_29 
-\def (\lambda (c2: C).(let TMP_27 \def (Bind b) in (let TMP_28 \def (CHead e 
-TMP_27 u) in (wf3 g TMP_28 c2)))) in (let TMP_30 \def (\lambda (c2: C).(clear 
-c2 d2)) in (let TMP_31 \def (ex2 C TMP_29 TMP_30) in (let TMP_50 \def 
-(\lambda (x0: C).(\lambda (x1: T).(\lambda (H3: (eq C d2 (CHead x0 (Bind b) 
-u))).(\lambda (H4: (wf3 g e x0)).(\lambda (H5: (ty3 g e u x1)).(let TMP_32 
-\def (Bind b) in (let TMP_33 \def (CHead x0 TMP_32 u) in (let TMP_38 \def 
-(\lambda (c: C).(let TMP_36 \def (\lambda (c2: C).(let TMP_34 \def (Bind b) 
-in (let TMP_35 \def (CHead e TMP_34 u) in (wf3 g TMP_35 c2)))) in (let TMP_37 
-\def (\lambda (c2: C).(clear c2 c)) in (ex2 C TMP_36 TMP_37)))) in (let 
-TMP_41 \def (\lambda (c2: C).(let TMP_39 \def (Bind b) in (let TMP_40 \def 
-(CHead e TMP_39 u) in (wf3 g TMP_40 c2)))) in (let TMP_44 \def (\lambda (c2: 
-C).(let TMP_42 \def (Bind b) in (let TMP_43 \def (CHead x0 TMP_42 u) in 
-(clear c2 TMP_43)))) in (let TMP_45 \def (Bind b) in (let TMP_46 \def (CHead 
-x0 TMP_45 u) in (let TMP_47 \def (wf3_bind g e x0 H4 u x1 H5 b) in (let 
-TMP_48 \def (clear_bind b x0 u) in (let TMP_49 \def (ex_intro2 C TMP_41 
-TMP_44 TMP_46 TMP_47 TMP_48) in (eq_ind_r C TMP_33 TMP_38 TMP_49 d2 
-H3)))))))))))))))) in (ex3_2_ind C T TMP_24 TMP_25 TMP_26 TMP_31 TMP_50 
-H2))))))))) in (let TMP_86 \def (\lambda (H2: (ex3 C (\lambda (c2: C).(eq C 
-d2 (CHead c2 (Bind Void) (TSort O)))) (\lambda (c2: C).(wf3 g e c2)) (\lambda 
-(_: C).(\forall (w: T).((ty3 g e u w) \to False))))).(let TMP_55 \def 
-(\lambda (c2: C).(let TMP_52 \def (Bind Void) in (let TMP_53 \def (TSort O) 
-in (let TMP_54 \def (CHead c2 TMP_52 TMP_53) in (eq C d2 TMP_54))))) in (let 
-TMP_56 \def (\lambda (c2: C).(wf3 g e c2)) in (let TMP_57 \def (\lambda (_: 
-C).(\forall (w: T).((ty3 g e u w) \to False))) in (let TMP_60 \def (\lambda 
-(c2: C).(let TMP_58 \def (Bind b) in (let TMP_59 \def (CHead e TMP_58 u) in 
-(wf3 g TMP_59 c2)))) in (let TMP_61 \def (\lambda (c2: C).(clear c2 d2)) in 
-(let TMP_62 \def (ex2 C TMP_60 TMP_61) in (let TMP_85 \def (\lambda (x0: 
-C).(\lambda (H3: (eq C d2 (CHead x0 (Bind Void) (TSort O)))).(\lambda (H4: 
-(wf3 g e x0)).(\lambda (H5: ((\forall (w: T).((ty3 g e u w) \to 
-False)))).(let TMP_63 \def (Bind Void) in (let TMP_64 \def (TSort O) in (let 
-TMP_65 \def (CHead x0 TMP_63 TMP_64) in (let TMP_70 \def (\lambda (c: C).(let 
-TMP_68 \def (\lambda (c2: C).(let TMP_66 \def (Bind b) in (let TMP_67 \def 
-(CHead e TMP_66 u) in (wf3 g TMP_67 c2)))) in (let TMP_69 \def (\lambda (c2: 
-C).(clear c2 c)) in (ex2 C TMP_68 TMP_69)))) in (let TMP_73 \def (\lambda 
-(c2: C).(let TMP_71 \def (Bind b) in (let TMP_72 \def (CHead e TMP_71 u) in 
-(wf3 g TMP_72 c2)))) in (let TMP_77 \def (\lambda (c2: C).(let TMP_74 \def 
-(Bind Void) in (let TMP_75 \def (TSort O) in (let TMP_76 \def (CHead x0 
-TMP_74 TMP_75) in (clear c2 TMP_76))))) in (let TMP_78 \def (Bind Void) in 
-(let TMP_79 \def (TSort O) in (let TMP_80 \def (CHead x0 TMP_78 TMP_79) in 
-(let TMP_81 \def (wf3_void g e x0 H4 u H5 b) in (let TMP_82 \def (TSort O) in 
-(let TMP_83 \def (clear_bind Void x0 TMP_82) in (let TMP_84 \def (ex_intro2 C 
-TMP_73 TMP_77 TMP_80 TMP_81 TMP_83) in (eq_ind_r C TMP_65 TMP_70 TMP_84 d2 
-H3)))))))))))))))))) in (ex3_ind C TMP_55 TMP_56 TMP_57 TMP_62 TMP_85 
-H2))))))))) in (or_ind TMP_9 TMP_16 TMP_21 TMP_51 TMP_86 
-H1)))))))))))))))))))))) in (let TMP_101 \def (\lambda (e: C).(\lambda (c: 
-C).(\lambda (_: (clear e c)).(\lambda (H1: ((\forall (g: G).(\forall (d2: 
-C).((wf3 g c d2) \to (ex2 C (\lambda (c2: C).(wf3 g e c2)) (\lambda (c2: 
-C).(clear c2 d2)))))))).(\lambda (f: F).(\lambda (u: T).(\lambda (g: 
-G).(\lambda (d2: C).(\lambda (H2: (wf3 g c d2)).(let H_x \def (H1 g d2 H2) in 
-(let H3 \def H_x in (let TMP_88 \def (\lambda (c2: C).(wf3 g e c2)) in (let 
-TMP_89 \def (\lambda (c2: C).(clear c2 d2)) in (let TMP_92 \def (\lambda (c2: 
-C).(let TMP_90 \def (Flat f) in (let TMP_91 \def (CHead e TMP_90 u) in (wf3 g 
-TMP_91 c2)))) in (let TMP_93 \def (\lambda (c2: C).(clear c2 d2)) in (let 
-TMP_94 \def (ex2 C TMP_92 TMP_93) in (let TMP_100 \def (\lambda (x: 
-C).(\lambda (H4: (wf3 g e x)).(\lambda (H5: (clear x d2)).(let TMP_97 \def 
-(\lambda (c2: C).(let TMP_95 \def (Flat f) in (let TMP_96 \def (CHead e 
-TMP_95 u) in (wf3 g TMP_96 c2)))) in (let TMP_98 \def (\lambda (c2: C).(clear 
-c2 d2)) in (let TMP_99 \def (wf3_flat g e x H4 u f) in (ex_intro2 C TMP_97 
-TMP_98 x TMP_99 H5))))))) in (ex2_ind C TMP_88 TMP_89 TMP_94 TMP_100 
-H3)))))))))))))))))) in (clear_ind TMP_3 TMP_87 TMP_101 c1 d1 H)))))).
+w))))).(ex3_2_ind C T (\lambda (c2: C).(\lambda (_: T).(eq C d2 (CHead c2 
+(Bind b) u)))) (\lambda (c2: C).(\lambda (_: T).(wf3 g e c2))) (\lambda (_: 
+C).(\lambda (w: T).(ty3 g e u w))) (ex2 C (\lambda (c2: C).(wf3 g (CHead e 
+(Bind b) u) c2)) (\lambda (c2: C).(clear c2 d2))) (\lambda (x0: C).(\lambda 
+(x1: T).(\lambda (H3: (eq C d2 (CHead x0 (Bind b) u))).(\lambda (H4: (wf3 g e 
+x0)).(\lambda (H5: (ty3 g e u x1)).(eq_ind_r C (CHead x0 (Bind b) u) (\lambda 
+(c: C).(ex2 C (\lambda (c2: C).(wf3 g (CHead e (Bind b) u) c2)) (\lambda (c2: 
+C).(clear c2 c)))) (ex_intro2 C (\lambda (c2: C).(wf3 g (CHead e (Bind b) u) 
+c2)) (\lambda (c2: C).(clear c2 (CHead x0 (Bind b) u))) (CHead x0 (Bind b) u) 
+(wf3_bind g e x0 H4 u x1 H5 b) (clear_bind b x0 u)) d2 H3)))))) H2)) (\lambda 
+(H2: (ex3 C (\lambda (c2: C).(eq C d2 (CHead c2 (Bind Void) (TSort O)))) 
+(\lambda (c2: C).(wf3 g e c2)) (\lambda (_: C).(\forall (w: T).((ty3 g e u w) 
+\to False))))).(ex3_ind C (\lambda (c2: C).(eq C d2 (CHead c2 (Bind Void) 
+(TSort O)))) (\lambda (c2: C).(wf3 g e c2)) (\lambda (_: C).(\forall (w: 
+T).((ty3 g e u w) \to False))) (ex2 C (\lambda (c2: C).(wf3 g (CHead e (Bind 
+b) u) c2)) (\lambda (c2: C).(clear c2 d2))) (\lambda (x0: C).(\lambda (H3: 
+(eq C d2 (CHead x0 (Bind Void) (TSort O)))).(\lambda (H4: (wf3 g e 
+x0)).(\lambda (H5: ((\forall (w: T).((ty3 g e u w) \to False)))).(eq_ind_r C 
+(CHead x0 (Bind Void) (TSort O)) (\lambda (c: C).(ex2 C (\lambda (c2: C).(wf3 
+g (CHead e (Bind b) u) c2)) (\lambda (c2: C).(clear c2 c)))) (ex_intro2 C 
+(\lambda (c2: C).(wf3 g (CHead e (Bind b) u) c2)) (\lambda (c2: C).(clear c2 
+(CHead x0 (Bind Void) (TSort O)))) (CHead x0 (Bind Void) (TSort O)) (wf3_void 
+g e x0 H4 u H5 b) (clear_bind Void x0 (TSort O))) d2 H3))))) H2)) H1))))))))) 
+(\lambda (e: C).(\lambda (c: C).(\lambda (_: (clear e c)).(\lambda (H1: 
+((\forall (g: G).(\forall (d2: C).((wf3 g c d2) \to (ex2 C (\lambda (c2: 
+C).(wf3 g e c2)) (\lambda (c2: C).(clear c2 d2)))))))).(\lambda (f: 
+F).(\lambda (u: T).(\lambda (g: G).(\lambda (d2: C).(\lambda (H2: (wf3 g c 
+d2)).(let H_x \def (H1 g d2 H2) in (let H3 \def H_x in (ex2_ind C (\lambda 
+(c2: C).(wf3 g e c2)) (\lambda (c2: C).(clear c2 d2)) (ex2 C (\lambda (c2: 
+C).(wf3 g (CHead e (Flat f) u) c2)) (\lambda (c2: C).(clear c2 d2))) (\lambda 
+(x: C).(\lambda (H4: (wf3 g e x)).(\lambda (H5: (clear x d2)).(ex_intro2 C 
+(\lambda (c2: C).(wf3 g (CHead e (Flat f) u) c2)) (\lambda (c2: C).(clear c2 
+d2)) x (wf3_flat g e x H4 u f) H5)))) H3)))))))))))) c1 d1 H))).
 
index 62ecb8cc0e5c45111809b4cc716fdff50020b1cf..c1ade018f1b4c5fcb88f98be6acc9f2496e49b7d 100644 (file)
@@ -26,59 +26,42 @@ let rec wf3_ind (g: G) (P: (C \to (C \to Prop))) (f: (\forall (m: nat).(P
 (c1: C).(\forall (c2: C).((wf3 g c1 c2) \to ((P c1 c2) \to (\forall (u: 
 T).(\forall (f2: F).(P (CHead c1 (Flat f2) u) c2)))))))) (c: C) (c0: C) (w: 
 wf3 g c c0) on w: P c c0 \def match w with [(wf3_sort m) \Rightarrow (f m) | 
-(wf3_bind c1 c2 w0 u t t0 b) \Rightarrow (let TMP_3 \def ((wf3_ind g P f f0 
-f1 f2) c1 c2 w0) in (f0 c1 c2 w0 TMP_3 u t t0 b)) | (wf3_void c1 c2 w0 u f3 
-b) \Rightarrow (let TMP_2 \def ((wf3_ind g P f f0 f1 f2) c1 c2 w0) in (f1 c1 
-c2 w0 TMP_2 u f3 b)) | (wf3_flat c1 c2 w0 u f3) \Rightarrow (let TMP_1 \def 
-((wf3_ind g P f f0 f1 f2) c1 c2 w0) in (f2 c1 c2 w0 TMP_1 u f3))].
+(wf3_bind c1 c2 w0 u t t0 b) \Rightarrow (f0 c1 c2 w0 ((wf3_ind g P f f0 f1 
+f2) c1 c2 w0) u t t0 b) | (wf3_void c1 c2 w0 u f3 b) \Rightarrow (f1 c1 c2 w0 
+((wf3_ind g P f f0 f1 f2) c1 c2 w0) u f3 b) | (wf3_flat c1 c2 w0 u f3) 
+\Rightarrow (f2 c1 c2 w0 ((wf3_ind g P f f0 f1 f2) c1 c2 w0) u f3)].
 
 theorem wf3_gen_sort1:
  \forall (g: G).(\forall (x: C).(\forall (m: nat).((wf3 g (CSort m) x) \to 
 (eq C x (CSort m)))))
 \def
  \lambda (g: G).(\lambda (x: C).(\lambda (m: nat).(\lambda (H: (wf3 g (CSort 
-m) x)).(let TMP_1 \def (CSort m) in (let TMP_2 \def (\lambda (c: C).(wf3 g c 
-x)) in (let TMP_3 \def (\lambda (c: C).(eq C x c)) in (let TMP_43 \def 
-(\lambda (y: C).(\lambda (H0: (wf3 g y x)).(let TMP_4 \def (\lambda (c: 
-C).(\lambda (c0: C).((eq C c (CSort m)) \to (eq C c0 c)))) in (let TMP_13 
-\def (\lambda (m0: nat).(\lambda (H1: (eq C (CSort m0) (CSort m))).(let TMP_5 
-\def (\lambda (e: C).(match e with [(CSort n) \Rightarrow n | (CHead _ _ _) 
-\Rightarrow m0])) in (let TMP_6 \def (CSort m0) in (let TMP_7 \def (CSort m) 
-in (let H2 \def (f_equal C nat TMP_5 TMP_6 TMP_7 H1) in (let TMP_10 \def 
-(\lambda (n: nat).(let TMP_8 \def (CSort n) in (let TMP_9 \def (CSort n) in 
-(eq C TMP_8 TMP_9)))) in (let TMP_11 \def (CSort m) in (let TMP_12 \def 
-(refl_equal C TMP_11) in (eq_ind_r nat m TMP_10 TMP_12 m0 H2)))))))))) in 
-(let TMP_23 \def (\lambda (c1: C).(\lambda (c2: C).(\lambda (_: (wf3 g c1 
-c2)).(\lambda (_: (((eq C c1 (CSort m)) \to (eq C c2 c1)))).(\lambda (u: 
-T).(\lambda (t: T).(\lambda (_: (ty3 g c1 u t)).(\lambda (b: B).(\lambda (H4: 
-(eq C (CHead c1 (Bind b) u) (CSort m))).(let TMP_14 \def (Bind b) in (let 
-TMP_15 \def (CHead c1 TMP_14 u) in (let TMP_16 \def (\lambda (ee: C).(match 
-ee with [(CSort _) \Rightarrow False | (CHead _ _ _) \Rightarrow True])) in 
-(let TMP_17 \def (CSort m) in (let H5 \def (eq_ind C TMP_15 TMP_16 I TMP_17 
-H4) in (let TMP_18 \def (Bind b) in (let TMP_19 \def (CHead c2 TMP_18 u) in 
-(let TMP_20 \def (Bind b) in (let TMP_21 \def (CHead c1 TMP_20 u) in (let 
-TMP_22 \def (eq C TMP_19 TMP_21) in (False_ind TMP_22 H5)))))))))))))))))))) 
-in (let TMP_34 \def (\lambda (c1: C).(\lambda (c2: C).(\lambda (_: (wf3 g c1 
-c2)).(\lambda (_: (((eq C c1 (CSort m)) \to (eq C c2 c1)))).(\lambda (u: 
-T).(\lambda (_: ((\forall (t: T).((ty3 g c1 u t) \to False)))).(\lambda (b: 
-B).(\lambda (H4: (eq C (CHead c1 (Bind b) u) (CSort m))).(let TMP_24 \def 
-(Bind b) in (let TMP_25 \def (CHead c1 TMP_24 u) in (let TMP_26 \def (\lambda 
-(ee: C).(match ee with [(CSort _) \Rightarrow False | (CHead _ _ _) 
-\Rightarrow True])) in (let TMP_27 \def (CSort m) in (let H5 \def (eq_ind C 
-TMP_25 TMP_26 I TMP_27 H4) in (let TMP_28 \def (Bind Void) in (let TMP_29 
-\def (TSort O) in (let TMP_30 \def (CHead c2 TMP_28 TMP_29) in (let TMP_31 
-\def (Bind b) in (let TMP_32 \def (CHead c1 TMP_31 u) in (let TMP_33 \def (eq 
-C TMP_30 TMP_32) in (False_ind TMP_33 H5)))))))))))))))))))) in (let TMP_42 
-\def (\lambda (c1: C).(\lambda (c2: C).(\lambda (_: (wf3 g c1 c2)).(\lambda 
-(_: (((eq C c1 (CSort m)) \to (eq C c2 c1)))).(\lambda (u: T).(\lambda (f: 
-F).(\lambda (H3: (eq C (CHead c1 (Flat f) u) (CSort m))).(let TMP_35 \def 
-(Flat f) in (let TMP_36 \def (CHead c1 TMP_35 u) in (let TMP_37 \def (\lambda 
-(ee: C).(match ee with [(CSort _) \Rightarrow False | (CHead _ _ _) 
-\Rightarrow True])) in (let TMP_38 \def (CSort m) in (let H4 \def (eq_ind C 
-TMP_36 TMP_37 I TMP_38 H3) in (let TMP_39 \def (Flat f) in (let TMP_40 \def 
-(CHead c1 TMP_39 u) in (let TMP_41 \def (eq C c2 TMP_40) in (False_ind TMP_41 
-H4)))))))))))))))) in (wf3_ind g TMP_4 TMP_13 TMP_23 TMP_34 TMP_42 y x 
-H0)))))))) in (insert_eq C TMP_1 TMP_2 TMP_3 TMP_43 H)))))))).
+m) x)).(insert_eq C (CSort m) (\lambda (c: C).(wf3 g c x)) (\lambda (c: 
+C).(eq C x c)) (\lambda (y: C).(\lambda (H0: (wf3 g y x)).(wf3_ind g (\lambda 
+(c: C).(\lambda (c0: C).((eq C c (CSort m)) \to (eq C c0 c)))) (\lambda (m0: 
+nat).(\lambda (H1: (eq C (CSort m0) (CSort m))).(let H2 \def (f_equal C nat 
+(\lambda (e: C).(match e with [(CSort n) \Rightarrow n | (CHead _ _ _) 
+\Rightarrow m0])) (CSort m0) (CSort m) H1) in (eq_ind_r nat m (\lambda (n: 
+nat).(eq C (CSort n) (CSort n))) (refl_equal C (CSort m)) m0 H2)))) (\lambda 
+(c1: C).(\lambda (c2: C).(\lambda (_: (wf3 g c1 c2)).(\lambda (_: (((eq C c1 
+(CSort m)) \to (eq C c2 c1)))).(\lambda (u: T).(\lambda (t: T).(\lambda (_: 
+(ty3 g c1 u t)).(\lambda (b: B).(\lambda (H4: (eq C (CHead c1 (Bind b) u) 
+(CSort m))).(let H5 \def (eq_ind C (CHead c1 (Bind b) u) (\lambda (ee: 
+C).(match ee with [(CSort _) \Rightarrow False | (CHead _ _ _) \Rightarrow 
+True])) I (CSort m) H4) in (False_ind (eq C (CHead c2 (Bind b) u) (CHead c1 
+(Bind b) u)) H5))))))))))) (\lambda (c1: C).(\lambda (c2: C).(\lambda (_: 
+(wf3 g c1 c2)).(\lambda (_: (((eq C c1 (CSort m)) \to (eq C c2 
+c1)))).(\lambda (u: T).(\lambda (_: ((\forall (t: T).((ty3 g c1 u t) \to 
+False)))).(\lambda (b: B).(\lambda (H4: (eq C (CHead c1 (Bind b) u) (CSort 
+m))).(let H5 \def (eq_ind C (CHead c1 (Bind b) u) (\lambda (ee: C).(match ee 
+with [(CSort _) \Rightarrow False | (CHead _ _ _) \Rightarrow True])) I 
+(CSort m) H4) in (False_ind (eq C (CHead c2 (Bind Void) (TSort O)) (CHead c1 
+(Bind b) u)) H5)))))))))) (\lambda (c1: C).(\lambda (c2: C).(\lambda (_: (wf3 
+g c1 c2)).(\lambda (_: (((eq C c1 (CSort m)) \to (eq C c2 c1)))).(\lambda (u: 
+T).(\lambda (f: F).(\lambda (H3: (eq C (CHead c1 (Flat f) u) (CSort m))).(let 
+H4 \def (eq_ind C (CHead c1 (Flat f) u) (\lambda (ee: C).(match ee with 
+[(CSort _) \Rightarrow False | (CHead _ _ _) \Rightarrow True])) I (CSort m) 
+H3) in (False_ind (eq C c2 (CHead c1 (Flat f) u)) H4))))))))) y x H0))) H)))).
 
 theorem wf3_gen_bind1:
  \forall (g: G).(\forall (c1: C).(\forall (x: C).(\forall (v: T).(\forall (b: 
@@ -90,509 +73,305 @@ C).(wf3 g c1 c2)) (\lambda (_: C).(\forall (w: T).((ty3 g c1 v w) \to
 False))))))))))
 \def
  \lambda (g: G).(\lambda (c1: C).(\lambda (x: C).(\lambda (v: T).(\lambda (b: 
-B).(\lambda (H: (wf3 g (CHead c1 (Bind b) v) x)).(let TMP_1 \def (Bind b) in 
-(let TMP_2 \def (CHead c1 TMP_1 v) in (let TMP_3 \def (\lambda (c: C).(wf3 g 
-c x)) in (let TMP_17 \def (\lambda (_: C).(let TMP_6 \def (\lambda (c2: 
-C).(\lambda (_: T).(let TMP_4 \def (Bind b) in (let TMP_5 \def (CHead c2 
-TMP_4 v) in (eq C x TMP_5))))) in (let TMP_7 \def (\lambda (c2: C).(\lambda 
-(_: T).(wf3 g c1 c2))) in (let TMP_8 \def (\lambda (_: C).(\lambda (w: 
-T).(ty3 g c1 v w))) in (let TMP_9 \def (ex3_2 C T TMP_6 TMP_7 TMP_8) in (let 
-TMP_13 \def (\lambda (c2: C).(let TMP_10 \def (Bind Void) in (let TMP_11 \def 
-(TSort O) in (let TMP_12 \def (CHead c2 TMP_10 TMP_11) in (eq C x TMP_12))))) 
-in (let TMP_14 \def (\lambda (c2: C).(wf3 g c1 c2)) in (let TMP_15 \def 
-(\lambda (_: C).(\forall (w: T).((ty3 g c1 v w) \to False))) in (let TMP_16 
-\def (ex3 C TMP_13 TMP_14 TMP_15) in (or TMP_9 TMP_16)))))))))) in (let 
-TMP_242 \def (\lambda (y: C).(\lambda (H0: (wf3 g y x)).(let TMP_31 \def 
-(\lambda (c: C).(\lambda (c0: C).((eq C c (CHead c1 (Bind b) v)) \to (let 
-TMP_20 \def (\lambda (c2: C).(\lambda (_: T).(let TMP_18 \def (Bind b) in 
-(let TMP_19 \def (CHead c2 TMP_18 v) in (eq C c0 TMP_19))))) in (let TMP_21 
-\def (\lambda (c2: C).(\lambda (_: T).(wf3 g c1 c2))) in (let TMP_22 \def 
-(\lambda (_: C).(\lambda (w: T).(ty3 g c1 v w))) in (let TMP_23 \def (ex3_2 C 
-T TMP_20 TMP_21 TMP_22) in (let TMP_27 \def (\lambda (c2: C).(let TMP_24 \def 
-(Bind Void) in (let TMP_25 \def (TSort O) in (let TMP_26 \def (CHead c2 
-TMP_24 TMP_25) in (eq C c0 TMP_26))))) in (let TMP_28 \def (\lambda (c2: 
-C).(wf3 g c1 c2)) in (let TMP_29 \def (\lambda (_: C).(\forall (w: T).((ty3 g 
-c1 v w) \to False))) in (let TMP_30 \def (ex3 C TMP_27 TMP_28 TMP_29) in (or 
-TMP_23 TMP_30)))))))))))) in (let TMP_52 \def (\lambda (m: nat).(\lambda (H1: 
-(eq C (CSort m) (CHead c1 (Bind b) v))).(let TMP_32 \def (CSort m) in (let 
-TMP_33 \def (\lambda (ee: C).(match ee with [(CSort _) \Rightarrow True | 
-(CHead _ _ _) \Rightarrow False])) in (let TMP_34 \def (Bind b) in (let 
-TMP_35 \def (CHead c1 TMP_34 v) in (let H2 \def (eq_ind C TMP_32 TMP_33 I 
-TMP_35 H1) in (let TMP_39 \def (\lambda (c2: C).(\lambda (_: T).(let TMP_36 
-\def (CSort m) in (let TMP_37 \def (Bind b) in (let TMP_38 \def (CHead c2 
-TMP_37 v) in (eq C TMP_36 TMP_38)))))) in (let TMP_40 \def (\lambda (c2: 
-C).(\lambda (_: T).(wf3 g c1 c2))) in (let TMP_41 \def (\lambda (_: 
-C).(\lambda (w: T).(ty3 g c1 v w))) in (let TMP_42 \def (ex3_2 C T TMP_39 
-TMP_40 TMP_41) in (let TMP_47 \def (\lambda (c2: C).(let TMP_43 \def (CSort 
-m) in (let TMP_44 \def (Bind Void) in (let TMP_45 \def (TSort O) in (let 
-TMP_46 \def (CHead c2 TMP_44 TMP_45) in (eq C TMP_43 TMP_46)))))) in (let 
-TMP_48 \def (\lambda (c2: C).(wf3 g c1 c2)) in (let TMP_49 \def (\lambda (_: 
-C).(\forall (w: T).((ty3 g c1 v w) \to False))) in (let TMP_50 \def (ex3 C 
-TMP_47 TMP_48 TMP_49) in (let TMP_51 \def (or TMP_42 TMP_50) in (False_ind 
-TMP_51 H2))))))))))))))))) in (let TMP_153 \def (\lambda (c0: C).(\lambda 
-(c2: C).(\lambda (H1: (wf3 g c0 c2)).(\lambda (H2: (((eq C c0 (CHead c1 (Bind 
-b) v)) \to (or (ex3_2 C T (\lambda (c3: C).(\lambda (_: T).(eq C c2 (CHead c3 
+B).(\lambda (H: (wf3 g (CHead c1 (Bind b) v) x)).(insert_eq C (CHead c1 (Bind 
+b) v) (\lambda (c: C).(wf3 g c x)) (\lambda (_: C).(or (ex3_2 C T (\lambda 
+(c2: C).(\lambda (_: T).(eq C x (CHead c2 (Bind b) v)))) (\lambda (c2: 
+C).(\lambda (_: T).(wf3 g c1 c2))) (\lambda (_: C).(\lambda (w: T).(ty3 g c1 
+v w)))) (ex3 C (\lambda (c2: C).(eq C x (CHead c2 (Bind Void) (TSort O)))) 
+(\lambda (c2: C).(wf3 g c1 c2)) (\lambda (_: C).(\forall (w: T).((ty3 g c1 v 
+w) \to False)))))) (\lambda (y: C).(\lambda (H0: (wf3 g y x)).(wf3_ind g 
+(\lambda (c: C).(\lambda (c0: C).((eq C c (CHead c1 (Bind b) v)) \to (or 
+(ex3_2 C T (\lambda (c2: C).(\lambda (_: T).(eq C c0 (CHead c2 (Bind b) v)))) 
+(\lambda (c2: C).(\lambda (_: T).(wf3 g c1 c2))) (\lambda (_: C).(\lambda (w: 
+T).(ty3 g c1 v w)))) (ex3 C (\lambda (c2: C).(eq C c0 (CHead c2 (Bind Void) 
+(TSort O)))) (\lambda (c2: C).(wf3 g c1 c2)) (\lambda (_: C).(\forall (w: 
+T).((ty3 g c1 v w) \to False)))))))) (\lambda (m: nat).(\lambda (H1: (eq C 
+(CSort m) (CHead c1 (Bind b) v))).(let H2 \def (eq_ind C (CSort m) (\lambda 
+(ee: C).(match ee with [(CSort _) \Rightarrow True | (CHead _ _ _) 
+\Rightarrow False])) I (CHead c1 (Bind b) v) H1) in (False_ind (or (ex3_2 C T 
+(\lambda (c2: C).(\lambda (_: T).(eq C (CSort m) (CHead c2 (Bind b) v)))) 
+(\lambda (c2: C).(\lambda (_: T).(wf3 g c1 c2))) (\lambda (_: C).(\lambda (w: 
+T).(ty3 g c1 v w)))) (ex3 C (\lambda (c2: C).(eq C (CSort m) (CHead c2 (Bind 
+Void) (TSort O)))) (\lambda (c2: C).(wf3 g c1 c2)) (\lambda (_: C).(\forall 
+(w: T).((ty3 g c1 v w) \to False))))) H2)))) (\lambda (c0: C).(\lambda (c2: 
+C).(\lambda (H1: (wf3 g c0 c2)).(\lambda (H2: (((eq C c0 (CHead c1 (Bind b) 
+v)) \to (or (ex3_2 C T (\lambda (c3: C).(\lambda (_: T).(eq C c2 (CHead c3 
 (Bind b) v)))) (\lambda (c3: C).(\lambda (_: T).(wf3 g c1 c3))) (\lambda (_: 
 C).(\lambda (w: T).(ty3 g c1 v w)))) (ex3 C (\lambda (c3: C).(eq C c2 (CHead 
 c3 (Bind Void) (TSort O)))) (\lambda (c3: C).(wf3 g c1 c3)) (\lambda (_: 
 C).(\forall (w: T).((ty3 g c1 v w) \to False)))))))).(\lambda (u: T).(\lambda 
 (t: T).(\lambda (H3: (ty3 g c0 u t)).(\lambda (b0: B).(\lambda (H4: (eq C 
-(CHead c0 (Bind b0) u) (CHead c1 (Bind b) v))).(let TMP_53 \def (\lambda (e: 
-C).(match e with [(CSort _) \Rightarrow c0 | (CHead c _ _) \Rightarrow c])) 
-in (let TMP_54 \def (Bind b0) in (let TMP_55 \def (CHead c0 TMP_54 u) in (let 
-TMP_56 \def (Bind b) in (let TMP_57 \def (CHead c1 TMP_56 v) in (let H5 \def 
-(f_equal C C TMP_53 TMP_55 TMP_57 H4) in (let TMP_58 \def (\lambda (e: 
-C).(match e with [(CSort _) \Rightarrow b0 | (CHead _ k _) \Rightarrow (match 
-k with [(Bind b1) \Rightarrow b1 | (Flat _) \Rightarrow b0])])) in (let 
-TMP_59 \def (Bind b0) in (let TMP_60 \def (CHead c0 TMP_59 u) in (let TMP_61 
-\def (Bind b) in (let TMP_62 \def (CHead c1 TMP_61 v) in (let H6 \def 
-(f_equal C B TMP_58 TMP_60 TMP_62 H4) in (let TMP_63 \def (\lambda (e: 
-C).(match e with [(CSort _) \Rightarrow u | (CHead _ _ t0) \Rightarrow t0])) 
-in (let TMP_64 \def (Bind b0) in (let TMP_65 \def (CHead c0 TMP_64 u) in (let 
-TMP_66 \def (Bind b) in (let TMP_67 \def (CHead c1 TMP_66 v) in (let H7 \def 
-(f_equal C T TMP_63 TMP_65 TMP_67 H4) in (let TMP_151 \def (\lambda (H8: (eq 
-B b0 b)).(\lambda (H9: (eq C c0 c1)).(let TMP_85 \def (\lambda (b1: B).(let 
-TMP_72 \def (\lambda (c3: C).(\lambda (_: T).(let TMP_68 \def (Bind b1) in 
-(let TMP_69 \def (CHead c2 TMP_68 u) in (let TMP_70 \def (Bind b) in (let 
-TMP_71 \def (CHead c3 TMP_70 v) in (eq C TMP_69 TMP_71))))))) in (let TMP_73 
-\def (\lambda (c3: C).(\lambda (_: T).(wf3 g c1 c3))) in (let TMP_74 \def 
-(\lambda (_: C).(\lambda (w: T).(ty3 g c1 v w))) in (let TMP_75 \def (ex3_2 C 
-T TMP_72 TMP_73 TMP_74) in (let TMP_81 \def (\lambda (c3: C).(let TMP_76 \def 
-(Bind b1) in (let TMP_77 \def (CHead c2 TMP_76 u) in (let TMP_78 \def (Bind 
-Void) in (let TMP_79 \def (TSort O) in (let TMP_80 \def (CHead c3 TMP_78 
-TMP_79) in (eq C TMP_77 TMP_80))))))) in (let TMP_82 \def (\lambda (c3: 
-C).(wf3 g c1 c3)) in (let TMP_83 \def (\lambda (_: C).(\forall (w: T).((ty3 g 
-c1 v w) \to False))) in (let TMP_84 \def (ex3 C TMP_81 TMP_82 TMP_83) in (or 
-TMP_75 TMP_84)))))))))) in (let TMP_86 \def (\lambda (t0: T).(ty3 g c0 t0 t)) 
-in (let H10 \def (eq_ind T u TMP_86 H3 v H7) in (let TMP_104 \def (\lambda 
-(t0: T).(let TMP_91 \def (\lambda (c3: C).(\lambda (_: T).(let TMP_87 \def 
-(Bind b) in (let TMP_88 \def (CHead c2 TMP_87 t0) in (let TMP_89 \def (Bind 
-b) in (let TMP_90 \def (CHead c3 TMP_89 v) in (eq C TMP_88 TMP_90))))))) in 
-(let TMP_92 \def (\lambda (c3: C).(\lambda (_: T).(wf3 g c1 c3))) in (let 
-TMP_93 \def (\lambda (_: C).(\lambda (w: T).(ty3 g c1 v w))) in (let TMP_94 
-\def (ex3_2 C T TMP_91 TMP_92 TMP_93) in (let TMP_100 \def (\lambda (c3: 
-C).(let TMP_95 \def (Bind b) in (let TMP_96 \def (CHead c2 TMP_95 t0) in (let 
-TMP_97 \def (Bind Void) in (let TMP_98 \def (TSort O) in (let TMP_99 \def 
-(CHead c3 TMP_97 TMP_98) in (eq C TMP_96 TMP_99))))))) in (let TMP_101 \def 
-(\lambda (c3: C).(wf3 g c1 c3)) in (let TMP_102 \def (\lambda (_: C).(\forall 
-(w: T).((ty3 g c1 v w) \to False))) in (let TMP_103 \def (ex3 C TMP_100 
-TMP_101 TMP_102) in (or TMP_94 TMP_103)))))))))) in (let TMP_105 \def 
-(\lambda (c: C).(ty3 g c v t)) in (let H11 \def (eq_ind C c0 TMP_105 H10 c1 
-H9) in (let TMP_119 \def (\lambda (c: C).((eq C c (CHead c1 (Bind b) v)) \to 
-(let TMP_108 \def (\lambda (c3: C).(\lambda (_: T).(let TMP_106 \def (Bind b) 
-in (let TMP_107 \def (CHead c3 TMP_106 v) in (eq C c2 TMP_107))))) in (let 
-TMP_109 \def (\lambda (c3: C).(\lambda (_: T).(wf3 g c1 c3))) in (let TMP_110 
-\def (\lambda (_: C).(\lambda (w: T).(ty3 g c1 v w))) in (let TMP_111 \def 
-(ex3_2 C T TMP_108 TMP_109 TMP_110) in (let TMP_115 \def (\lambda (c3: 
-C).(let TMP_112 \def (Bind Void) in (let TMP_113 \def (TSort O) in (let 
-TMP_114 \def (CHead c3 TMP_112 TMP_113) in (eq C c2 TMP_114))))) in (let 
-TMP_116 \def (\lambda (c3: C).(wf3 g c1 c3)) in (let TMP_117 \def (\lambda 
-(_: C).(\forall (w: T).((ty3 g c1 v w) \to False))) in (let TMP_118 \def (ex3 
-C TMP_115 TMP_116 TMP_117) in (or TMP_111 TMP_118))))))))))) in (let H12 \def 
-(eq_ind C c0 TMP_119 H2 c1 H9) in (let TMP_120 \def (\lambda (c: C).(wf3 g c 
-c2)) in (let H13 \def (eq_ind C c0 TMP_120 H1 c1 H9) in (let TMP_125 \def 
-(\lambda (c3: C).(\lambda (_: T).(let TMP_121 \def (Bind b) in (let TMP_122 
-\def (CHead c2 TMP_121 v) in (let TMP_123 \def (Bind b) in (let TMP_124 \def 
-(CHead c3 TMP_123 v) in (eq C TMP_122 TMP_124))))))) in (let TMP_126 \def 
-(\lambda (c3: C).(\lambda (_: T).(wf3 g c1 c3))) in (let TMP_127 \def 
-(\lambda (_: C).(\lambda (w: T).(ty3 g c1 v w))) in (let TMP_128 \def (ex3_2 
-C T TMP_125 TMP_126 TMP_127) in (let TMP_134 \def (\lambda (c3: C).(let 
-TMP_129 \def (Bind b) in (let TMP_130 \def (CHead c2 TMP_129 v) in (let 
-TMP_131 \def (Bind Void) in (let TMP_132 \def (TSort O) in (let TMP_133 \def 
-(CHead c3 TMP_131 TMP_132) in (eq C TMP_130 TMP_133))))))) in (let TMP_135 
-\def (\lambda (c3: C).(wf3 g c1 c3)) in (let TMP_136 \def (\lambda (_: 
-C).(\forall (w: T).((ty3 g c1 v w) \to False))) in (let TMP_137 \def (ex3 C 
-TMP_134 TMP_135 TMP_136) in (let TMP_142 \def (\lambda (c3: C).(\lambda (_: 
-T).(let TMP_138 \def (Bind b) in (let TMP_139 \def (CHead c2 TMP_138 v) in 
-(let TMP_140 \def (Bind b) in (let TMP_141 \def (CHead c3 TMP_140 v) in (eq C 
-TMP_139 TMP_141))))))) in (let TMP_143 \def (\lambda (c3: C).(\lambda (_: 
-T).(wf3 g c1 c3))) in (let TMP_144 \def (\lambda (_: C).(\lambda (w: T).(ty3 
-g c1 v w))) in (let TMP_145 \def (Bind b) in (let TMP_146 \def (CHead c2 
-TMP_145 v) in (let TMP_147 \def (refl_equal C TMP_146) in (let TMP_148 \def 
-(ex3_2_intro C T TMP_142 TMP_143 TMP_144 c2 t TMP_147 H13 H11) in (let 
-TMP_149 \def (or_introl TMP_128 TMP_137 TMP_148) in (let TMP_150 \def 
-(eq_ind_r T v TMP_104 TMP_149 u H7) in (eq_ind_r B b TMP_85 TMP_150 b0 
-H8)))))))))))))))))))))))))))))) in (let TMP_152 \def (TMP_151 H6) in 
-(TMP_152 H5)))))))))))))))))))))))))))))) in (let TMP_221 \def (\lambda (c0: 
-C).(\lambda (c2: C).(\lambda (H1: (wf3 g c0 c2)).(\lambda (H2: (((eq C c0 
-(CHead c1 (Bind b) v)) \to (or (ex3_2 C T (\lambda (c3: C).(\lambda (_: 
-T).(eq C c2 (CHead c3 (Bind b) v)))) (\lambda (c3: C).(\lambda (_: T).(wf3 g 
-c1 c3))) (\lambda (_: C).(\lambda (w: T).(ty3 g c1 v w)))) (ex3 C (\lambda 
-(c3: C).(eq C c2 (CHead c3 (Bind Void) (TSort O)))) (\lambda (c3: C).(wf3 g 
-c1 c3)) (\lambda (_: C).(\forall (w: T).((ty3 g c1 v w) \to 
-False)))))))).(\lambda (u: T).(\lambda (H3: ((\forall (t: T).((ty3 g c0 u t) 
-\to False)))).(\lambda (b0: B).(\lambda (H4: (eq C (CHead c0 (Bind b0) u) 
-(CHead c1 (Bind b) v))).(let TMP_154 \def (\lambda (e: C).(match e with 
-[(CSort _) \Rightarrow c0 | (CHead c _ _) \Rightarrow c])) in (let TMP_155 
-\def (Bind b0) in (let TMP_156 \def (CHead c0 TMP_155 u) in (let TMP_157 \def 
-(Bind b) in (let TMP_158 \def (CHead c1 TMP_157 v) in (let H5 \def (f_equal C 
-C TMP_154 TMP_156 TMP_158 H4) in (let TMP_159 \def (\lambda (e: C).(match e 
-with [(CSort _) \Rightarrow b0 | (CHead _ k _) \Rightarrow (match k with 
-[(Bind b1) \Rightarrow b1 | (Flat _) \Rightarrow b0])])) in (let TMP_160 \def 
-(Bind b0) in (let TMP_161 \def (CHead c0 TMP_160 u) in (let TMP_162 \def 
-(Bind b) in (let TMP_163 \def (CHead c1 TMP_162 v) in (let H6 \def (f_equal C 
-B TMP_159 TMP_161 TMP_163 H4) in (let TMP_164 \def (\lambda (e: C).(match e 
-with [(CSort _) \Rightarrow u | (CHead _ _ t) \Rightarrow t])) in (let 
-TMP_165 \def (Bind b0) in (let TMP_166 \def (CHead c0 TMP_165 u) in (let 
-TMP_167 \def (Bind b) in (let TMP_168 \def (CHead c1 TMP_167 v) in (let H7 
-\def (f_equal C T TMP_164 TMP_166 TMP_168 H4) in (let TMP_219 \def (\lambda 
-(_: (eq B b0 b)).(\lambda (H9: (eq C c0 c1)).(let TMP_169 \def (\lambda (t: 
-T).(\forall (t0: T).((ty3 g c0 t t0) \to False))) in (let H10 \def (eq_ind T 
-u TMP_169 H3 v H7) in (let TMP_170 \def (\lambda (c: C).(\forall (t: T).((ty3 
-g c v t) \to False))) in (let H11 \def (eq_ind C c0 TMP_170 H10 c1 H9) in 
-(let TMP_184 \def (\lambda (c: C).((eq C c (CHead c1 (Bind b) v)) \to (let 
-TMP_173 \def (\lambda (c3: C).(\lambda (_: T).(let TMP_171 \def (Bind b) in 
-(let TMP_172 \def (CHead c3 TMP_171 v) in (eq C c2 TMP_172))))) in (let 
-TMP_174 \def (\lambda (c3: C).(\lambda (_: T).(wf3 g c1 c3))) in (let TMP_175 
-\def (\lambda (_: C).(\lambda (w: T).(ty3 g c1 v w))) in (let TMP_176 \def 
-(ex3_2 C T TMP_173 TMP_174 TMP_175) in (let TMP_180 \def (\lambda (c3: 
-C).(let TMP_177 \def (Bind Void) in (let TMP_178 \def (TSort O) in (let 
-TMP_179 \def (CHead c3 TMP_177 TMP_178) in (eq C c2 TMP_179))))) in (let 
-TMP_181 \def (\lambda (c3: C).(wf3 g c1 c3)) in (let TMP_182 \def (\lambda 
-(_: C).(\forall (w: T).((ty3 g c1 v w) \to False))) in (let TMP_183 \def (ex3 
-C TMP_180 TMP_181 TMP_182) in (or TMP_176 TMP_183))))))))))) in (let H12 \def 
-(eq_ind C c0 TMP_184 H2 c1 H9) in (let TMP_185 \def (\lambda (c: C).(wf3 g c 
-c2)) in (let H13 \def (eq_ind C c0 TMP_185 H1 c1 H9) in (let TMP_191 \def 
-(\lambda (c3: C).(\lambda (_: T).(let TMP_186 \def (Bind Void) in (let 
-TMP_187 \def (TSort O) in (let TMP_188 \def (CHead c2 TMP_186 TMP_187) in 
-(let TMP_189 \def (Bind b) in (let TMP_190 \def (CHead c3 TMP_189 v) in (eq C 
-TMP_188 TMP_190)))))))) in (let TMP_192 \def (\lambda (c3: C).(\lambda (_: 
-T).(wf3 g c1 c3))) in (let TMP_193 \def (\lambda (_: C).(\lambda (w: T).(ty3 
-g c1 v w))) in (let TMP_194 \def (ex3_2 C T TMP_191 TMP_192 TMP_193) in (let 
-TMP_201 \def (\lambda (c3: C).(let TMP_195 \def (Bind Void) in (let TMP_196 
-\def (TSort O) in (let TMP_197 \def (CHead c2 TMP_195 TMP_196) in (let 
-TMP_198 \def (Bind Void) in (let TMP_199 \def (TSort O) in (let TMP_200 \def 
-(CHead c3 TMP_198 TMP_199) in (eq C TMP_197 TMP_200)))))))) in (let TMP_202 
-\def (\lambda (c3: C).(wf3 g c1 c3)) in (let TMP_203 \def (\lambda (_: 
-C).(\forall (w: T).((ty3 g c1 v w) \to False))) in (let TMP_204 \def (ex3 C 
-TMP_201 TMP_202 TMP_203) in (let TMP_211 \def (\lambda (c3: C).(let TMP_205 
-\def (Bind Void) in (let TMP_206 \def (TSort O) in (let TMP_207 \def (CHead 
-c2 TMP_205 TMP_206) in (let TMP_208 \def (Bind Void) in (let TMP_209 \def 
-(TSort O) in (let TMP_210 \def (CHead c3 TMP_208 TMP_209) in (eq C TMP_207 
-TMP_210)))))))) in (let TMP_212 \def (\lambda (c3: C).(wf3 g c1 c3)) in (let 
-TMP_213 \def (\lambda (_: C).(\forall (w: T).((ty3 g c1 v w) \to False))) in 
-(let TMP_214 \def (Bind Void) in (let TMP_215 \def (TSort O) in (let TMP_216 
-\def (CHead c2 TMP_214 TMP_215) in (let TMP_217 \def (refl_equal C TMP_216) 
-in (let TMP_218 \def (ex3_intro C TMP_211 TMP_212 TMP_213 c2 TMP_217 H13 H11) 
-in (or_intror TMP_194 TMP_204 TMP_218))))))))))))))))))))))))))) in (let 
-TMP_220 \def (TMP_219 H6) in (TMP_220 H5))))))))))))))))))))))))))))) in (let 
-TMP_241 \def (\lambda (c0: C).(\lambda (c2: C).(\lambda (_: (wf3 g c0 
-c2)).(\lambda (_: (((eq C c0 (CHead c1 (Bind b) v)) \to (or (ex3_2 C T 
-(\lambda (c3: C).(\lambda (_: T).(eq C c2 (CHead c3 (Bind b) v)))) (\lambda 
-(c3: C).(\lambda (_: T).(wf3 g c1 c3))) (\lambda (_: C).(\lambda (w: T).(ty3 
-g c1 v w)))) (ex3 C (\lambda (c3: C).(eq C c2 (CHead c3 (Bind Void) (TSort 
+(CHead c0 (Bind b0) u) (CHead c1 (Bind b) v))).(let H5 \def (f_equal C C 
+(\lambda (e: C).(match e with [(CSort _) \Rightarrow c0 | (CHead c _ _) 
+\Rightarrow c])) (CHead c0 (Bind b0) u) (CHead c1 (Bind b) v) H4) in ((let H6 
+\def (f_equal C B (\lambda (e: C).(match e with [(CSort _) \Rightarrow b0 | 
+(CHead _ k _) \Rightarrow (match k with [(Bind b1) \Rightarrow b1 | (Flat _) 
+\Rightarrow b0])])) (CHead c0 (Bind b0) u) (CHead c1 (Bind b) v) H4) in ((let 
+H7 \def (f_equal C T (\lambda (e: C).(match e with [(CSort _) \Rightarrow u | 
+(CHead _ _ t0) \Rightarrow t0])) (CHead c0 (Bind b0) u) (CHead c1 (Bind b) v) 
+H4) in (\lambda (H8: (eq B b0 b)).(\lambda (H9: (eq C c0 c1)).(eq_ind_r B b 
+(\lambda (b1: B).(or (ex3_2 C T (\lambda (c3: C).(\lambda (_: T).(eq C (CHead 
+c2 (Bind b1) u) (CHead c3 (Bind b) v)))) (\lambda (c3: C).(\lambda (_: 
+T).(wf3 g c1 c3))) (\lambda (_: C).(\lambda (w: T).(ty3 g c1 v w)))) (ex3 C 
+(\lambda (c3: C).(eq C (CHead c2 (Bind b1) u) (CHead c3 (Bind Void) (TSort 
 O)))) (\lambda (c3: C).(wf3 g c1 c3)) (\lambda (_: C).(\forall (w: T).((ty3 g 
-c1 v w) \to False)))))))).(\lambda (u: T).(\lambda (f: F).(\lambda (H3: (eq C 
-(CHead c0 (Flat f) u) (CHead c1 (Bind b) v))).(let TMP_222 \def (Flat f) in 
-(let TMP_223 \def (CHead c0 TMP_222 u) in (let TMP_224 \def (\lambda (ee: 
-C).(match ee with [(CSort _) \Rightarrow False | (CHead _ k _) \Rightarrow 
-(match k with [(Bind _) \Rightarrow False | (Flat _) \Rightarrow True])])) in 
-(let TMP_225 \def (Bind b) in (let TMP_226 \def (CHead c1 TMP_225 v) in (let 
-H4 \def (eq_ind C TMP_223 TMP_224 I TMP_226 H3) in (let TMP_229 \def (\lambda 
-(c3: C).(\lambda (_: T).(let TMP_227 \def (Bind b) in (let TMP_228 \def 
-(CHead c3 TMP_227 v) in (eq C c2 TMP_228))))) in (let TMP_230 \def (\lambda 
-(c3: C).(\lambda (_: T).(wf3 g c1 c3))) in (let TMP_231 \def (\lambda (_: 
-C).(\lambda (w: T).(ty3 g c1 v w))) in (let TMP_232 \def (ex3_2 C T TMP_229 
-TMP_230 TMP_231) in (let TMP_236 \def (\lambda (c3: C).(let TMP_233 \def 
-(Bind Void) in (let TMP_234 \def (TSort O) in (let TMP_235 \def (CHead c3 
-TMP_233 TMP_234) in (eq C c2 TMP_235))))) in (let TMP_237 \def (\lambda (c3: 
-C).(wf3 g c1 c3)) in (let TMP_238 \def (\lambda (_: C).(\forall (w: T).((ty3 
-g c1 v w) \to False))) in (let TMP_239 \def (ex3 C TMP_236 TMP_237 TMP_238) 
-in (let TMP_240 \def (or TMP_232 TMP_239) in (False_ind TMP_240 
-H4))))))))))))))))))))))) in (wf3_ind g TMP_31 TMP_52 TMP_153 TMP_221 TMP_241 
-y x H0)))))))) in (insert_eq C TMP_2 TMP_3 TMP_17 TMP_242 H))))))))))).
+c1 v w) \to False)))))) (let H10 \def (eq_ind T u (\lambda (t0: T).(ty3 g c0 
+t0 t)) H3 v H7) in (eq_ind_r T v (\lambda (t0: T).(or (ex3_2 C T (\lambda 
+(c3: C).(\lambda (_: T).(eq C (CHead c2 (Bind b) t0) (CHead c3 (Bind b) v)))) 
+(\lambda (c3: C).(\lambda (_: T).(wf3 g c1 c3))) (\lambda (_: C).(\lambda (w: 
+T).(ty3 g c1 v w)))) (ex3 C (\lambda (c3: C).(eq C (CHead c2 (Bind b) t0) 
+(CHead c3 (Bind Void) (TSort O)))) (\lambda (c3: C).(wf3 g c1 c3)) (\lambda 
+(_: C).(\forall (w: T).((ty3 g c1 v w) \to False)))))) (let H11 \def (eq_ind 
+C c0 (\lambda (c: C).(ty3 g c v t)) H10 c1 H9) in (let H12 \def (eq_ind C c0 
+(\lambda (c: C).((eq C c (CHead c1 (Bind b) v)) \to (or (ex3_2 C T (\lambda 
+(c3: C).(\lambda (_: T).(eq C c2 (CHead c3 (Bind b) v)))) (\lambda (c3: 
+C).(\lambda (_: T).(wf3 g c1 c3))) (\lambda (_: C).(\lambda (w: T).(ty3 g c1 
+v w)))) (ex3 C (\lambda (c3: C).(eq C c2 (CHead c3 (Bind Void) (TSort O)))) 
+(\lambda (c3: C).(wf3 g c1 c3)) (\lambda (_: C).(\forall (w: T).((ty3 g c1 v 
+w) \to False))))))) H2 c1 H9) in (let H13 \def (eq_ind C c0 (\lambda (c: 
+C).(wf3 g c c2)) H1 c1 H9) in (or_introl (ex3_2 C T (\lambda (c3: C).(\lambda 
+(_: T).(eq C (CHead c2 (Bind b) v) (CHead c3 (Bind b) v)))) (\lambda (c3: 
+C).(\lambda (_: T).(wf3 g c1 c3))) (\lambda (_: C).(\lambda (w: T).(ty3 g c1 
+v w)))) (ex3 C (\lambda (c3: C).(eq C (CHead c2 (Bind b) v) (CHead c3 (Bind 
+Void) (TSort O)))) (\lambda (c3: C).(wf3 g c1 c3)) (\lambda (_: C).(\forall 
+(w: T).((ty3 g c1 v w) \to False)))) (ex3_2_intro C T (\lambda (c3: 
+C).(\lambda (_: T).(eq C (CHead c2 (Bind b) v) (CHead c3 (Bind b) v)))) 
+(\lambda (c3: C).(\lambda (_: T).(wf3 g c1 c3))) (\lambda (_: C).(\lambda (w: 
+T).(ty3 g c1 v w))) c2 t (refl_equal C (CHead c2 (Bind b) v)) H13 H11))))) u 
+H7)) b0 H8)))) H6)) H5))))))))))) (\lambda (c0: C).(\lambda (c2: C).(\lambda 
+(H1: (wf3 g c0 c2)).(\lambda (H2: (((eq C c0 (CHead c1 (Bind b) v)) \to (or 
+(ex3_2 C T (\lambda (c3: C).(\lambda (_: T).(eq C c2 (CHead c3 (Bind b) v)))) 
+(\lambda (c3: C).(\lambda (_: T).(wf3 g c1 c3))) (\lambda (_: C).(\lambda (w: 
+T).(ty3 g c1 v w)))) (ex3 C (\lambda (c3: C).(eq C c2 (CHead c3 (Bind Void) 
+(TSort O)))) (\lambda (c3: C).(wf3 g c1 c3)) (\lambda (_: C).(\forall (w: 
+T).((ty3 g c1 v w) \to False)))))))).(\lambda (u: T).(\lambda (H3: ((\forall 
+(t: T).((ty3 g c0 u t) \to False)))).(\lambda (b0: B).(\lambda (H4: (eq C 
+(CHead c0 (Bind b0) u) (CHead c1 (Bind b) v))).(let H5 \def (f_equal C C 
+(\lambda (e: C).(match e with [(CSort _) \Rightarrow c0 | (CHead c _ _) 
+\Rightarrow c])) (CHead c0 (Bind b0) u) (CHead c1 (Bind b) v) H4) in ((let H6 
+\def (f_equal C B (\lambda (e: C).(match e with [(CSort _) \Rightarrow b0 | 
+(CHead _ k _) \Rightarrow (match k with [(Bind b1) \Rightarrow b1 | (Flat _) 
+\Rightarrow b0])])) (CHead c0 (Bind b0) u) (CHead c1 (Bind b) v) H4) in ((let 
+H7 \def (f_equal C T (\lambda (e: C).(match e with [(CSort _) \Rightarrow u | 
+(CHead _ _ t) \Rightarrow t])) (CHead c0 (Bind b0) u) (CHead c1 (Bind b) v) 
+H4) in (\lambda (_: (eq B b0 b)).(\lambda (H9: (eq C c0 c1)).(let H10 \def 
+(eq_ind T u (\lambda (t: T).(\forall (t0: T).((ty3 g c0 t t0) \to False))) H3 
+v H7) in (let H11 \def (eq_ind C c0 (\lambda (c: C).(\forall (t: T).((ty3 g c 
+v t) \to False))) H10 c1 H9) in (let H12 \def (eq_ind C c0 (\lambda (c: 
+C).((eq C c (CHead c1 (Bind b) v)) \to (or (ex3_2 C T (\lambda (c3: 
+C).(\lambda (_: T).(eq C c2 (CHead c3 (Bind b) v)))) (\lambda (c3: 
+C).(\lambda (_: T).(wf3 g c1 c3))) (\lambda (_: C).(\lambda (w: T).(ty3 g c1 
+v w)))) (ex3 C (\lambda (c3: C).(eq C c2 (CHead c3 (Bind Void) (TSort O)))) 
+(\lambda (c3: C).(wf3 g c1 c3)) (\lambda (_: C).(\forall (w: T).((ty3 g c1 v 
+w) \to False))))))) H2 c1 H9) in (let H13 \def (eq_ind C c0 (\lambda (c: 
+C).(wf3 g c c2)) H1 c1 H9) in (or_intror (ex3_2 C T (\lambda (c3: C).(\lambda 
+(_: T).(eq C (CHead c2 (Bind Void) (TSort O)) (CHead c3 (Bind b) v)))) 
+(\lambda (c3: C).(\lambda (_: T).(wf3 g c1 c3))) (\lambda (_: C).(\lambda (w: 
+T).(ty3 g c1 v w)))) (ex3 C (\lambda (c3: C).(eq C (CHead c2 (Bind Void) 
+(TSort O)) (CHead c3 (Bind Void) (TSort O)))) (\lambda (c3: C).(wf3 g c1 c3)) 
+(\lambda (_: C).(\forall (w: T).((ty3 g c1 v w) \to False)))) (ex3_intro C 
+(\lambda (c3: C).(eq C (CHead c2 (Bind Void) (TSort O)) (CHead c3 (Bind Void) 
+(TSort O)))) (\lambda (c3: C).(wf3 g c1 c3)) (\lambda (_: C).(\forall (w: 
+T).((ty3 g c1 v w) \to False))) c2 (refl_equal C (CHead c2 (Bind Void) (TSort 
+O))) H13 H11))))))))) H6)) H5)))))))))) (\lambda (c0: C).(\lambda (c2: 
+C).(\lambda (_: (wf3 g c0 c2)).(\lambda (_: (((eq C c0 (CHead c1 (Bind b) v)) 
+\to (or (ex3_2 C T (\lambda (c3: C).(\lambda (_: T).(eq C c2 (CHead c3 (Bind 
+b) v)))) (\lambda (c3: C).(\lambda (_: T).(wf3 g c1 c3))) (\lambda (_: 
+C).(\lambda (w: T).(ty3 g c1 v w)))) (ex3 C (\lambda (c3: C).(eq C c2 (CHead 
+c3 (Bind Void) (TSort O)))) (\lambda (c3: C).(wf3 g c1 c3)) (\lambda (_: 
+C).(\forall (w: T).((ty3 g c1 v w) \to False)))))))).(\lambda (u: T).(\lambda 
+(f: F).(\lambda (H3: (eq C (CHead c0 (Flat f) u) (CHead c1 (Bind b) v))).(let 
+H4 \def (eq_ind C (CHead c0 (Flat f) u) (\lambda (ee: C).(match ee with 
+[(CSort _) \Rightarrow False | (CHead _ k _) \Rightarrow (match k with [(Bind 
+_) \Rightarrow False | (Flat _) \Rightarrow True])])) I (CHead c1 (Bind b) v) 
+H3) in (False_ind (or (ex3_2 C T (\lambda (c3: C).(\lambda (_: T).(eq C c2 
+(CHead c3 (Bind b) v)))) (\lambda (c3: C).(\lambda (_: T).(wf3 g c1 c3))) 
+(\lambda (_: C).(\lambda (w: T).(ty3 g c1 v w)))) (ex3 C (\lambda (c3: C).(eq 
+C c2 (CHead c3 (Bind Void) (TSort O)))) (\lambda (c3: C).(wf3 g c1 c3)) 
+(\lambda (_: C).(\forall (w: T).((ty3 g c1 v w) \to False))))) H4))))))))) y 
+x H0))) H)))))).
 
 theorem wf3_gen_flat1:
  \forall (g: G).(\forall (c1: C).(\forall (x: C).(\forall (v: T).(\forall (f: 
 F).((wf3 g (CHead c1 (Flat f) v) x) \to (wf3 g c1 x))))))
 \def
  \lambda (g: G).(\lambda (c1: C).(\lambda (x: C).(\lambda (v: T).(\lambda (f: 
-F).(\lambda (H: (wf3 g (CHead c1 (Flat f) v) x)).(let TMP_1 \def (Flat f) in 
-(let TMP_2 \def (CHead c1 TMP_1 v) in (let TMP_3 \def (\lambda (c: C).(wf3 g 
-c x)) in (let TMP_4 \def (\lambda (_: C).(wf3 g c1 x)) in (let TMP_52 \def 
-(\lambda (y: C).(\lambda (H0: (wf3 g y x)).(let TMP_5 \def (\lambda (c: 
-C).(\lambda (c0: C).((eq C c (CHead c1 (Flat f) v)) \to (wf3 g c1 c0)))) in 
-(let TMP_12 \def (\lambda (m: nat).(\lambda (H1: (eq C (CSort m) (CHead c1 
-(Flat f) v))).(let TMP_6 \def (CSort m) in (let TMP_7 \def (\lambda (ee: 
-C).(match ee with [(CSort _) \Rightarrow True | (CHead _ _ _) \Rightarrow 
-False])) in (let TMP_8 \def (Flat f) in (let TMP_9 \def (CHead c1 TMP_8 v) in 
-(let H2 \def (eq_ind C TMP_6 TMP_7 I TMP_9 H1) in (let TMP_10 \def (CSort m) 
-in (let TMP_11 \def (wf3 g c1 TMP_10) in (False_ind TMP_11 H2)))))))))) in 
-(let TMP_21 \def (\lambda (c0: C).(\lambda (c2: C).(\lambda (_: (wf3 g c0 
-c2)).(\lambda (_: (((eq C c0 (CHead c1 (Flat f) v)) \to (wf3 g c1 
-c2)))).(\lambda (u: T).(\lambda (t: T).(\lambda (_: (ty3 g c0 u t)).(\lambda 
-(b: B).(\lambda (H4: (eq C (CHead c0 (Bind b) u) (CHead c1 (Flat f) v))).(let 
-TMP_13 \def (Bind b) in (let TMP_14 \def (CHead c0 TMP_13 u) in (let TMP_15 
-\def (\lambda (ee: C).(match ee with [(CSort _) \Rightarrow False | (CHead _ 
-k _) \Rightarrow (match k with [(Bind _) \Rightarrow True | (Flat _) 
-\Rightarrow False])])) in (let TMP_16 \def (Flat f) in (let TMP_17 \def 
-(CHead c1 TMP_16 v) in (let H5 \def (eq_ind C TMP_14 TMP_15 I TMP_17 H4) in 
-(let TMP_18 \def (Bind b) in (let TMP_19 \def (CHead c2 TMP_18 u) in (let 
-TMP_20 \def (wf3 g c1 TMP_19) in (False_ind TMP_20 H5))))))))))))))))))) in 
-(let TMP_31 \def (\lambda (c0: C).(\lambda (c2: C).(\lambda (_: (wf3 g c0 
-c2)).(\lambda (_: (((eq C c0 (CHead c1 (Flat f) v)) \to (wf3 g c1 
-c2)))).(\lambda (u: T).(\lambda (_: ((\forall (t: T).((ty3 g c0 u t) \to 
-False)))).(\lambda (b: B).(\lambda (H4: (eq C (CHead c0 (Bind b) u) (CHead c1 
-(Flat f) v))).(let TMP_22 \def (Bind b) in (let TMP_23 \def (CHead c0 TMP_22 
-u) in (let TMP_24 \def (\lambda (ee: C).(match ee with [(CSort _) \Rightarrow 
-False | (CHead _ k _) \Rightarrow (match k with [(Bind _) \Rightarrow True | 
-(Flat _) \Rightarrow False])])) in (let TMP_25 \def (Flat f) in (let TMP_26 
-\def (CHead c1 TMP_25 v) in (let H5 \def (eq_ind C TMP_23 TMP_24 I TMP_26 H4) 
-in (let TMP_27 \def (Bind Void) in (let TMP_28 \def (TSort O) in (let TMP_29 
-\def (CHead c2 TMP_27 TMP_28) in (let TMP_30 \def (wf3 g c1 TMP_29) in 
-(False_ind TMP_30 H5))))))))))))))))))) in (let TMP_51 \def (\lambda (c0: 
-C).(\lambda (c2: C).(\lambda (H1: (wf3 g c0 c2)).(\lambda (H2: (((eq C c0 
-(CHead c1 (Flat f) v)) \to (wf3 g c1 c2)))).(\lambda (u: T).(\lambda (f0: 
-F).(\lambda (H3: (eq C (CHead c0 (Flat f0) u) (CHead c1 (Flat f) v))).(let 
-TMP_32 \def (\lambda (e: C).(match e with [(CSort _) \Rightarrow c0 | (CHead 
-c _ _) \Rightarrow c])) in (let TMP_33 \def (Flat f0) in (let TMP_34 \def 
-(CHead c0 TMP_33 u) in (let TMP_35 \def (Flat f) in (let TMP_36 \def (CHead 
-c1 TMP_35 v) in (let H4 \def (f_equal C C TMP_32 TMP_34 TMP_36 H3) in (let 
-TMP_37 \def (\lambda (e: C).(match e with [(CSort _) \Rightarrow f0 | (CHead 
-_ k _) \Rightarrow (match k with [(Bind _) \Rightarrow f0 | (Flat f1) 
-\Rightarrow f1])])) in (let TMP_38 \def (Flat f0) in (let TMP_39 \def (CHead 
-c0 TMP_38 u) in (let TMP_40 \def (Flat f) in (let TMP_41 \def (CHead c1 
-TMP_40 v) in (let H5 \def (f_equal C F TMP_37 TMP_39 TMP_41 H3) in (let 
-TMP_42 \def (\lambda (e: C).(match e with [(CSort _) \Rightarrow u | (CHead _ 
-_ t) \Rightarrow t])) in (let TMP_43 \def (Flat f0) in (let TMP_44 \def 
-(CHead c0 TMP_43 u) in (let TMP_45 \def (Flat f) in (let TMP_46 \def (CHead 
-c1 TMP_45 v) in (let H6 \def (f_equal C T TMP_42 TMP_44 TMP_46 H3) in (let 
-TMP_49 \def (\lambda (_: (eq F f0 f)).(\lambda (H8: (eq C c0 c1)).(let TMP_47 
-\def (\lambda (c: C).((eq C c (CHead c1 (Flat f) v)) \to (wf3 g c1 c2))) in 
-(let H9 \def (eq_ind C c0 TMP_47 H2 c1 H8) in (let TMP_48 \def (\lambda (c: 
-C).(wf3 g c c2)) in (let H10 \def (eq_ind C c0 TMP_48 H1 c1 H8) in H10)))))) 
-in (let TMP_50 \def (TMP_49 H5) in (TMP_50 H4)))))))))))))))))))))))))))) in 
-(wf3_ind g TMP_5 TMP_12 TMP_21 TMP_31 TMP_51 y x H0)))))))) in (insert_eq C 
-TMP_2 TMP_3 TMP_4 TMP_52 H))))))))))).
+F).(\lambda (H: (wf3 g (CHead c1 (Flat f) v) x)).(insert_eq C (CHead c1 (Flat 
+f) v) (\lambda (c: C).(wf3 g c x)) (\lambda (_: C).(wf3 g c1 x)) (\lambda (y: 
+C).(\lambda (H0: (wf3 g y x)).(wf3_ind g (\lambda (c: C).(\lambda (c0: 
+C).((eq C c (CHead c1 (Flat f) v)) \to (wf3 g c1 c0)))) (\lambda (m: 
+nat).(\lambda (H1: (eq C (CSort m) (CHead c1 (Flat f) v))).(let H2 \def 
+(eq_ind C (CSort m) (\lambda (ee: C).(match ee with [(CSort _) \Rightarrow 
+True | (CHead _ _ _) \Rightarrow False])) I (CHead c1 (Flat f) v) H1) in 
+(False_ind (wf3 g c1 (CSort m)) H2)))) (\lambda (c0: C).(\lambda (c2: 
+C).(\lambda (_: (wf3 g c0 c2)).(\lambda (_: (((eq C c0 (CHead c1 (Flat f) v)) 
+\to (wf3 g c1 c2)))).(\lambda (u: T).(\lambda (t: T).(\lambda (_: (ty3 g c0 u 
+t)).(\lambda (b: B).(\lambda (H4: (eq C (CHead c0 (Bind b) u) (CHead c1 (Flat 
+f) v))).(let H5 \def (eq_ind C (CHead c0 (Bind b) u) (\lambda (ee: C).(match 
+ee with [(CSort _) \Rightarrow False | (CHead _ k _) \Rightarrow (match k 
+with [(Bind _) \Rightarrow True | (Flat _) \Rightarrow False])])) I (CHead c1 
+(Flat f) v) H4) in (False_ind (wf3 g c1 (CHead c2 (Bind b) u)) H5))))))))))) 
+(\lambda (c0: C).(\lambda (c2: C).(\lambda (_: (wf3 g c0 c2)).(\lambda (_: 
+(((eq C c0 (CHead c1 (Flat f) v)) \to (wf3 g c1 c2)))).(\lambda (u: 
+T).(\lambda (_: ((\forall (t: T).((ty3 g c0 u t) \to False)))).(\lambda (b: 
+B).(\lambda (H4: (eq C (CHead c0 (Bind b) u) (CHead c1 (Flat f) v))).(let H5 
+\def (eq_ind C (CHead c0 (Bind b) u) (\lambda (ee: C).(match ee with [(CSort 
+_) \Rightarrow False | (CHead _ k _) \Rightarrow (match k with [(Bind _) 
+\Rightarrow True | (Flat _) \Rightarrow False])])) I (CHead c1 (Flat f) v) 
+H4) in (False_ind (wf3 g c1 (CHead c2 (Bind Void) (TSort O))) H5)))))))))) 
+(\lambda (c0: C).(\lambda (c2: C).(\lambda (H1: (wf3 g c0 c2)).(\lambda (H2: 
+(((eq C c0 (CHead c1 (Flat f) v)) \to (wf3 g c1 c2)))).(\lambda (u: 
+T).(\lambda (f0: F).(\lambda (H3: (eq C (CHead c0 (Flat f0) u) (CHead c1 
+(Flat f) v))).(let H4 \def (f_equal C C (\lambda (e: C).(match e with [(CSort 
+_) \Rightarrow c0 | (CHead c _ _) \Rightarrow c])) (CHead c0 (Flat f0) u) 
+(CHead c1 (Flat f) v) H3) in ((let H5 \def (f_equal C F (\lambda (e: 
+C).(match e with [(CSort _) \Rightarrow f0 | (CHead _ k _) \Rightarrow (match 
+k with [(Bind _) \Rightarrow f0 | (Flat f1) \Rightarrow f1])])) (CHead c0 
+(Flat f0) u) (CHead c1 (Flat f) v) H3) in ((let H6 \def (f_equal C T (\lambda 
+(e: C).(match e with [(CSort _) \Rightarrow u | (CHead _ _ t) \Rightarrow 
+t])) (CHead c0 (Flat f0) u) (CHead c1 (Flat f) v) H3) in (\lambda (_: (eq F 
+f0 f)).(\lambda (H8: (eq C c0 c1)).(let H9 \def (eq_ind C c0 (\lambda (c: 
+C).((eq C c (CHead c1 (Flat f) v)) \to (wf3 g c1 c2))) H2 c1 H8) in (let H10 
+\def (eq_ind C c0 (\lambda (c: C).(wf3 g c c2)) H1 c1 H8) in H10))))) H5)) 
+H4))))))))) y x H0))) H)))))).
 
 theorem wf3_gen_head2:
  \forall (g: G).(\forall (x: C).(\forall (c: C).(\forall (v: T).(\forall (k: 
 K).((wf3 g x (CHead c k v)) \to (ex B (\lambda (b: B).(eq K k (Bind b)))))))))
 \def
  \lambda (g: G).(\lambda (x: C).(\lambda (c: C).(\lambda (v: T).(\lambda (k: 
-K).(\lambda (H: (wf3 g x (CHead c k v))).(let TMP_1 \def (CHead c k v) in 
-(let TMP_2 \def (\lambda (c0: C).(wf3 g x c0)) in (let TMP_5 \def (\lambda 
-(_: C).(let TMP_4 \def (\lambda (b: B).(let TMP_3 \def (Bind b) in (eq K k 
-TMP_3))) in (ex B TMP_4))) in (let TMP_102 \def (\lambda (y: C).(\lambda (H0: 
-(wf3 g x y)).(let TMP_8 \def (\lambda (_: C).(\lambda (c1: C).((eq C c1 
-(CHead c k v)) \to (let TMP_7 \def (\lambda (b: B).(let TMP_6 \def (Bind b) 
-in (eq K k TMP_6))) in (ex B TMP_7))))) in (let TMP_15 \def (\lambda (m: 
-nat).(\lambda (H1: (eq C (CSort m) (CHead c k v))).(let TMP_9 \def (CSort m) 
-in (let TMP_10 \def (\lambda (ee: C).(match ee with [(CSort _) \Rightarrow 
-True | (CHead _ _ _) \Rightarrow False])) in (let TMP_11 \def (CHead c k v) 
-in (let H2 \def (eq_ind C TMP_9 TMP_10 I TMP_11 H1) in (let TMP_13 \def 
-(\lambda (b: B).(let TMP_12 \def (Bind b) in (eq K k TMP_12))) in (let TMP_14 
-\def (ex B TMP_13) in (False_ind TMP_14 H2))))))))) in (let TMP_49 \def 
-(\lambda (c1: C).(\lambda (c2: C).(\lambda (H1: (wf3 g c1 c2)).(\lambda (H2: 
-(((eq C c2 (CHead c k v)) \to (ex B (\lambda (b: B).(eq K k (Bind 
-b))))))).(\lambda (u: T).(\lambda (t: T).(\lambda (H3: (ty3 g c1 u 
-t)).(\lambda (b: B).(\lambda (H4: (eq C (CHead c2 (Bind b) u) (CHead c k 
-v))).(let TMP_16 \def (\lambda (e: C).(match e with [(CSort _) \Rightarrow c2 
-| (CHead c0 _ _) \Rightarrow c0])) in (let TMP_17 \def (Bind b) in (let 
-TMP_18 \def (CHead c2 TMP_17 u) in (let TMP_19 \def (CHead c k v) in (let H5 
-\def (f_equal C C TMP_16 TMP_18 TMP_19 H4) in (let TMP_20 \def (\lambda (e: 
-C).(match e with [(CSort _) \Rightarrow (Bind b) | (CHead _ k0 _) \Rightarrow 
-k0])) in (let TMP_21 \def (Bind b) in (let TMP_22 \def (CHead c2 TMP_21 u) in 
-(let TMP_23 \def (CHead c k v) in (let H6 \def (f_equal C K TMP_20 TMP_22 
-TMP_23 H4) in (let TMP_24 \def (\lambda (e: C).(match e with [(CSort _) 
-\Rightarrow u | (CHead _ _ t0) \Rightarrow t0])) in (let TMP_25 \def (Bind b) 
-in (let TMP_26 \def (CHead c2 TMP_25 u) in (let TMP_27 \def (CHead c k v) in 
-(let H7 \def (f_equal C T TMP_24 TMP_26 TMP_27 H4) in (let TMP_47 \def 
-(\lambda (H8: (eq K (Bind b) k)).(\lambda (H9: (eq C c2 c)).(let TMP_28 \def 
-(\lambda (t0: T).(ty3 g c1 t0 t)) in (let H10 \def (eq_ind T u TMP_28 H3 v 
-H7) in (let TMP_31 \def (\lambda (c0: C).((eq C c0 (CHead c k v)) \to (let 
-TMP_30 \def (\lambda (b0: B).(let TMP_29 \def (Bind b0) in (eq K k TMP_29))) 
-in (ex B TMP_30)))) in (let H11 \def (eq_ind C c2 TMP_31 H2 c H9) in (let 
-TMP_32 \def (\lambda (c0: C).(wf3 g c1 c0)) in (let H12 \def (eq_ind C c2 
-TMP_32 H1 c H9) in (let TMP_35 \def (\lambda (k0: K).((eq C c (CHead c k0 v)) 
-\to (let TMP_34 \def (\lambda (b0: B).(let TMP_33 \def (Bind b0) in (eq K k0 
-TMP_33))) in (ex B TMP_34)))) in (let TMP_36 \def (Bind b) in (let H13 \def 
-(eq_ind_r K k TMP_35 H11 TMP_36 H8) in (let TMP_37 \def (Bind b) in (let 
-TMP_40 \def (\lambda (k0: K).(let TMP_39 \def (\lambda (b0: B).(let TMP_38 
-\def (Bind b0) in (eq K k0 TMP_38))) in (ex B TMP_39))) in (let TMP_43 \def 
-(\lambda (b0: B).(let TMP_41 \def (Bind b) in (let TMP_42 \def (Bind b0) in 
-(eq K TMP_41 TMP_42)))) in (let TMP_44 \def (Bind b) in (let TMP_45 \def 
-(refl_equal K TMP_44) in (let TMP_46 \def (ex_intro B TMP_43 b TMP_45) in 
-(eq_ind K TMP_37 TMP_40 TMP_46 k H8)))))))))))))))))) in (let TMP_48 \def 
-(TMP_47 H6) in (TMP_48 H5))))))))))))))))))))))))))) in (let TMP_90 \def 
-(\lambda (c1: C).(\lambda (c2: C).(\lambda (H1: (wf3 g c1 c2)).(\lambda (H2: 
-(((eq C c2 (CHead c k v)) \to (ex B (\lambda (b: B).(eq K k (Bind 
-b))))))).(\lambda (u: T).(\lambda (_: ((\forall (t: T).((ty3 g c1 u t) \to 
-False)))).(\lambda (_: B).(\lambda (H4: (eq C (CHead c2 (Bind Void) (TSort 
-O)) (CHead c k v))).(let TMP_50 \def (\lambda (e: C).(match e with [(CSort _) 
-\Rightarrow c2 | (CHead c0 _ _) \Rightarrow c0])) in (let TMP_51 \def (Bind 
-Void) in (let TMP_52 \def (TSort O) in (let TMP_53 \def (CHead c2 TMP_51 
-TMP_52) in (let TMP_54 \def (CHead c k v) in (let H5 \def (f_equal C C TMP_50 
-TMP_53 TMP_54 H4) in (let TMP_55 \def (\lambda (e: C).(match e with [(CSort 
-_) \Rightarrow (Bind Void) | (CHead _ k0 _) \Rightarrow k0])) in (let TMP_56 
-\def (Bind Void) in (let TMP_57 \def (TSort O) in (let TMP_58 \def (CHead c2 
-TMP_56 TMP_57) in (let TMP_59 \def (CHead c k v) in (let H6 \def (f_equal C K 
-TMP_55 TMP_58 TMP_59 H4) in (let TMP_60 \def (\lambda (e: C).(match e with 
-[(CSort _) \Rightarrow (TSort O) | (CHead _ _ t) \Rightarrow t])) in (let 
-TMP_61 \def (Bind Void) in (let TMP_62 \def (TSort O) in (let TMP_63 \def 
-(CHead c2 TMP_61 TMP_62) in (let TMP_64 \def (CHead c k v) in (let H7 \def 
-(f_equal C T TMP_60 TMP_63 TMP_64 H4) in (let TMP_88 \def (\lambda (H8: (eq K 
-(Bind Void) k)).(\lambda (H9: (eq C c2 c)).(let TMP_67 \def (\lambda (c0: 
-C).((eq C c0 (CHead c k v)) \to (let TMP_66 \def (\lambda (b0: B).(let TMP_65 
-\def (Bind b0) in (eq K k TMP_65))) in (ex B TMP_66)))) in (let H10 \def 
-(eq_ind C c2 TMP_67 H2 c H9) in (let TMP_68 \def (\lambda (c0: C).(wf3 g c1 
-c0)) in (let H11 \def (eq_ind C c2 TMP_68 H1 c H9) in (let TMP_71 \def 
-(\lambda (k0: K).((eq C c (CHead c k0 v)) \to (let TMP_70 \def (\lambda (b0: 
-B).(let TMP_69 \def (Bind b0) in (eq K k0 TMP_69))) in (ex B TMP_70)))) in 
-(let TMP_72 \def (Bind Void) in (let H12 \def (eq_ind_r K k TMP_71 H10 TMP_72 
-H8) in (let TMP_73 \def (Bind Void) in (let TMP_76 \def (\lambda (k0: K).(let 
-TMP_75 \def (\lambda (b0: B).(let TMP_74 \def (Bind b0) in (eq K k0 TMP_74))) 
-in (ex B TMP_75))) in (let TMP_80 \def (\lambda (t: T).((eq C c (CHead c 
-(Bind Void) t)) \to (let TMP_79 \def (\lambda (b0: B).(let TMP_77 \def (Bind 
-Void) in (let TMP_78 \def (Bind b0) in (eq K TMP_77 TMP_78)))) in (ex B 
-TMP_79)))) in (let TMP_81 \def (TSort O) in (let H13 \def (eq_ind_r T v 
-TMP_80 H12 TMP_81 H7) in (let TMP_84 \def (\lambda (b0: B).(let TMP_82 \def 
-(Bind Void) in (let TMP_83 \def (Bind b0) in (eq K TMP_82 TMP_83)))) in (let 
-TMP_85 \def (Bind Void) in (let TMP_86 \def (refl_equal K TMP_85) in (let 
-TMP_87 \def (ex_intro B TMP_84 Void TMP_86) in (eq_ind K TMP_73 TMP_76 TMP_87 
-k H8))))))))))))))))))) in (let TMP_89 \def (TMP_88 H6) in (TMP_89 
-H5))))))))))))))))))))))))))))) in (let TMP_101 \def (\lambda (c1: 
+K).(\lambda (H: (wf3 g x (CHead c k v))).(insert_eq C (CHead c k v) (\lambda 
+(c0: C).(wf3 g x c0)) (\lambda (_: C).(ex B (\lambda (b: B).(eq K k (Bind 
+b))))) (\lambda (y: C).(\lambda (H0: (wf3 g x y)).(wf3_ind g (\lambda (_: 
+C).(\lambda (c1: C).((eq C c1 (CHead c k v)) \to (ex B (\lambda (b: B).(eq K 
+k (Bind b))))))) (\lambda (m: nat).(\lambda (H1: (eq C (CSort m) (CHead c k 
+v))).(let H2 \def (eq_ind C (CSort m) (\lambda (ee: C).(match ee with [(CSort 
+_) \Rightarrow True | (CHead _ _ _) \Rightarrow False])) I (CHead c k v) H1) 
+in (False_ind (ex B (\lambda (b: B).(eq K k (Bind b)))) H2)))) (\lambda (c1: 
+C).(\lambda (c2: C).(\lambda (H1: (wf3 g c1 c2)).(\lambda (H2: (((eq C c2 
+(CHead c k v)) \to (ex B (\lambda (b: B).(eq K k (Bind b))))))).(\lambda (u: 
+T).(\lambda (t: T).(\lambda (H3: (ty3 g c1 u t)).(\lambda (b: B).(\lambda 
+(H4: (eq C (CHead c2 (Bind b) u) (CHead c k v))).(let H5 \def (f_equal C C 
+(\lambda (e: C).(match e with [(CSort _) \Rightarrow c2 | (CHead c0 _ _) 
+\Rightarrow c0])) (CHead c2 (Bind b) u) (CHead c k v) H4) in ((let H6 \def 
+(f_equal C K (\lambda (e: C).(match e with [(CSort _) \Rightarrow (Bind b) | 
+(CHead _ k0 _) \Rightarrow k0])) (CHead c2 (Bind b) u) (CHead c k v) H4) in 
+((let H7 \def (f_equal C T (\lambda (e: C).(match e with [(CSort _) 
+\Rightarrow u | (CHead _ _ t0) \Rightarrow t0])) (CHead c2 (Bind b) u) (CHead 
+c k v) H4) in (\lambda (H8: (eq K (Bind b) k)).(\lambda (H9: (eq C c2 
+c)).(let H10 \def (eq_ind T u (\lambda (t0: T).(ty3 g c1 t0 t)) H3 v H7) in 
+(let H11 \def (eq_ind C c2 (\lambda (c0: C).((eq C c0 (CHead c k v)) \to (ex 
+B (\lambda (b0: B).(eq K k (Bind b0)))))) H2 c H9) in (let H12 \def (eq_ind C 
+c2 (\lambda (c0: C).(wf3 g c1 c0)) H1 c H9) in (let H13 \def (eq_ind_r K k 
+(\lambda (k0: K).((eq C c (CHead c k0 v)) \to (ex B (\lambda (b0: B).(eq K k0 
+(Bind b0)))))) H11 (Bind b) H8) in (eq_ind K (Bind b) (\lambda (k0: K).(ex B 
+(\lambda (b0: B).(eq K k0 (Bind b0))))) (ex_intro B (\lambda (b0: B).(eq K 
+(Bind b) (Bind b0))) b (refl_equal K (Bind b))) k H8)))))))) H6)) 
+H5))))))))))) (\lambda (c1: C).(\lambda (c2: C).(\lambda (H1: (wf3 g c1 
+c2)).(\lambda (H2: (((eq C c2 (CHead c k v)) \to (ex B (\lambda (b: B).(eq K 
+k (Bind b))))))).(\lambda (u: T).(\lambda (_: ((\forall (t: T).((ty3 g c1 u 
+t) \to False)))).(\lambda (_: B).(\lambda (H4: (eq C (CHead c2 (Bind Void) 
+(TSort O)) (CHead c k v))).(let H5 \def (f_equal C C (\lambda (e: C).(match e 
+with [(CSort _) \Rightarrow c2 | (CHead c0 _ _) \Rightarrow c0])) (CHead c2 
+(Bind Void) (TSort O)) (CHead c k v) H4) in ((let H6 \def (f_equal C K 
+(\lambda (e: C).(match e with [(CSort _) \Rightarrow (Bind Void) | (CHead _ 
+k0 _) \Rightarrow k0])) (CHead c2 (Bind Void) (TSort O)) (CHead c k v) H4) in 
+((let H7 \def (f_equal C T (\lambda (e: C).(match e with [(CSort _) 
+\Rightarrow (TSort O) | (CHead _ _ t) \Rightarrow t])) (CHead c2 (Bind Void) 
+(TSort O)) (CHead c k v) H4) in (\lambda (H8: (eq K (Bind Void) k)).(\lambda 
+(H9: (eq C c2 c)).(let H10 \def (eq_ind C c2 (\lambda (c0: C).((eq C c0 
+(CHead c k v)) \to (ex B (\lambda (b0: B).(eq K k (Bind b0)))))) H2 c H9) in 
+(let H11 \def (eq_ind C c2 (\lambda (c0: C).(wf3 g c1 c0)) H1 c H9) in (let 
+H12 \def (eq_ind_r K k (\lambda (k0: K).((eq C c (CHead c k0 v)) \to (ex B 
+(\lambda (b0: B).(eq K k0 (Bind b0)))))) H10 (Bind Void) H8) in (eq_ind K 
+(Bind Void) (\lambda (k0: K).(ex B (\lambda (b0: B).(eq K k0 (Bind b0))))) 
+(let H13 \def (eq_ind_r T v (\lambda (t: T).((eq C c (CHead c (Bind Void) t)) 
+\to (ex B (\lambda (b0: B).(eq K (Bind Void) (Bind b0)))))) H12 (TSort O) H7) 
+in (ex_intro B (\lambda (b0: B).(eq K (Bind Void) (Bind b0))) Void 
+(refl_equal K (Bind Void)))) k H8))))))) H6)) H5)))))))))) (\lambda (c1: 
 C).(\lambda (c2: C).(\lambda (H1: (wf3 g c1 c2)).(\lambda (H2: (((eq C c2 
 (CHead c k v)) \to (ex B (\lambda (b: B).(eq K k (Bind b))))))).(\lambda (_: 
-T).(\lambda (_: F).(\lambda (H3: (eq C c2 (CHead c k v))).(let TMP_91 \def 
-(\lambda (e: C).e) in (let TMP_92 \def (CHead c k v) in (let H4 \def (f_equal 
-C C TMP_91 c2 TMP_92 H3) in (let TMP_95 \def (\lambda (c0: C).((eq C c0 
-(CHead c k v)) \to (let TMP_94 \def (\lambda (b: B).(let TMP_93 \def (Bind b) 
-in (eq K k TMP_93))) in (ex B TMP_94)))) in (let TMP_96 \def (CHead c k v) in 
-(let H5 \def (eq_ind C c2 TMP_95 H2 TMP_96 H4) in (let TMP_97 \def (\lambda 
-(c0: C).(wf3 g c1 c0)) in (let TMP_98 \def (CHead c k v) in (let H6 \def 
-(eq_ind C c2 TMP_97 H1 TMP_98 H4) in (let TMP_99 \def (CHead c k v) in (let 
-TMP_100 \def (refl_equal C TMP_99) in (H5 TMP_100))))))))))))))))))) in 
-(wf3_ind g TMP_8 TMP_15 TMP_49 TMP_90 TMP_101 x y H0)))))))) in (insert_eq C 
-TMP_1 TMP_2 TMP_5 TMP_102 H)))))))))).
+T).(\lambda (_: F).(\lambda (H3: (eq C c2 (CHead c k v))).(let H4 \def 
+(f_equal C C (\lambda (e: C).e) c2 (CHead c k v) H3) in (let H5 \def (eq_ind 
+C c2 (\lambda (c0: C).((eq C c0 (CHead c k v)) \to (ex B (\lambda (b: B).(eq 
+K k (Bind b)))))) H2 (CHead c k v) H4) in (let H6 \def (eq_ind C c2 (\lambda 
+(c0: C).(wf3 g c1 c0)) H1 (CHead c k v) H4) in (H5 (refl_equal C (CHead c k 
+v))))))))))))) x y H0))) H)))))).
 
 theorem wf3_mono:
  \forall (g: G).(\forall (c: C).(\forall (c1: C).((wf3 g c c1) \to (\forall 
 (c2: C).((wf3 g c c2) \to (eq C c1 c2))))))
 \def
  \lambda (g: G).(\lambda (c: C).(\lambda (c1: C).(\lambda (H: (wf3 g c 
-c1)).(let TMP_1 \def (\lambda (c0: C).(\lambda (c2: C).(\forall (c3: C).((wf3 
-g c0 c3) \to (eq C c2 c3))))) in (let TMP_7 \def (\lambda (m: nat).(\lambda 
-(c2: C).(\lambda (H0: (wf3 g (CSort m) c2)).(let H_y \def (wf3_gen_sort1 g c2 
-m H0) in (let TMP_2 \def (CSort m) in (let TMP_4 \def (\lambda (c0: C).(let 
-TMP_3 \def (CSort m) in (eq C TMP_3 c0))) in (let TMP_5 \def (CSort m) in 
-(let TMP_6 \def (refl_equal C TMP_5) in (eq_ind_r C TMP_2 TMP_4 TMP_6 c2 
-H_y))))))))) in (let TMP_70 \def (\lambda (c2: C).(\lambda (c3: C).(\lambda 
-(_: (wf3 g c2 c3)).(\lambda (H1: ((\forall (c4: C).((wf3 g c2 c4) \to (eq C 
-c3 c4))))).(\lambda (u: T).(\lambda (t: T).(\lambda (H2: (ty3 g c2 u 
+c1)).(wf3_ind g (\lambda (c0: C).(\lambda (c2: C).(\forall (c3: C).((wf3 g c0 
+c3) \to (eq C c2 c3))))) (\lambda (m: nat).(\lambda (c2: C).(\lambda (H0: 
+(wf3 g (CSort m) c2)).(let H_y \def (wf3_gen_sort1 g c2 m H0) in (eq_ind_r C 
+(CSort m) (\lambda (c0: C).(eq C (CSort m) c0)) (refl_equal C (CSort m)) c2 
+H_y))))) (\lambda (c2: C).(\lambda (c3: C).(\lambda (_: (wf3 g c2 
+c3)).(\lambda (H1: ((\forall (c4: C).((wf3 g c2 c4) \to (eq C c3 
+c4))))).(\lambda (u: T).(\lambda (t: T).(\lambda (H2: (ty3 g c2 u 
 t)).(\lambda (b: B).(\lambda (c0: C).(\lambda (H3: (wf3 g (CHead c2 (Bind b) 
 u) c0)).(let H_x \def (wf3_gen_bind1 g c2 c0 u b H3) in (let H4 \def H_x in 
-(let TMP_10 \def (\lambda (c4: C).(\lambda (_: T).(let TMP_8 \def (Bind b) in 
-(let TMP_9 \def (CHead c4 TMP_8 u) in (eq C c0 TMP_9))))) in (let TMP_11 \def 
-(\lambda (c4: C).(\lambda (_: T).(wf3 g c2 c4))) in (let TMP_12 \def (\lambda 
-(_: C).(\lambda (w: T).(ty3 g c2 u w))) in (let TMP_13 \def (ex3_2 C T TMP_10 
-TMP_11 TMP_12) in (let TMP_17 \def (\lambda (c4: C).(let TMP_14 \def (Bind 
-Void) in (let TMP_15 \def (TSort O) in (let TMP_16 \def (CHead c4 TMP_14 
-TMP_15) in (eq C c0 TMP_16))))) in (let TMP_18 \def (\lambda (c4: C).(wf3 g 
-c2 c4)) in (let TMP_19 \def (\lambda (_: C).(\forall (w: T).((ty3 g c2 u w) 
-\to False))) in (let TMP_20 \def (ex3 C TMP_17 TMP_18 TMP_19) in (let TMP_21 
-\def (Bind b) in (let TMP_22 \def (CHead c3 TMP_21 u) in (let TMP_23 \def (eq 
-C TMP_22 c0) in (let TMP_45 \def (\lambda (H5: (ex3_2 C T (\lambda (c4: 
+(or_ind (ex3_2 C T (\lambda (c4: C).(\lambda (_: T).(eq C c0 (CHead c4 (Bind 
+b) u)))) (\lambda (c4: C).(\lambda (_: T).(wf3 g c2 c4))) (\lambda (_: 
+C).(\lambda (w: T).(ty3 g c2 u w)))) (ex3 C (\lambda (c4: C).(eq C c0 (CHead 
+c4 (Bind Void) (TSort O)))) (\lambda (c4: C).(wf3 g c2 c4)) (\lambda (_: 
+C).(\forall (w: T).((ty3 g c2 u w) \to False)))) (eq C (CHead c3 (Bind b) u) 
+c0) (\lambda (H5: (ex3_2 C T (\lambda (c4: C).(\lambda (_: T).(eq C c0 (CHead 
+c4 (Bind b) u)))) (\lambda (c4: C).(\lambda (_: T).(wf3 g c2 c4))) (\lambda 
+(_: C).(\lambda (w: T).(ty3 g c2 u w))))).(ex3_2_ind C T (\lambda (c4: 
 C).(\lambda (_: T).(eq C c0 (CHead c4 (Bind b) u)))) (\lambda (c4: 
 C).(\lambda (_: T).(wf3 g c2 c4))) (\lambda (_: C).(\lambda (w: T).(ty3 g c2 
-u w))))).(let TMP_26 \def (\lambda (c4: C).(\lambda (_: T).(let TMP_24 \def 
-(Bind b) in (let TMP_25 \def (CHead c4 TMP_24 u) in (eq C c0 TMP_25))))) in 
-(let TMP_27 \def (\lambda (c4: C).(\lambda (_: T).(wf3 g c2 c4))) in (let 
-TMP_28 \def (\lambda (_: C).(\lambda (w: T).(ty3 g c2 u w))) in (let TMP_29 
-\def (Bind b) in (let TMP_30 \def (CHead c3 TMP_29 u) in (let TMP_31 \def (eq 
-C TMP_30 c0) in (let TMP_44 \def (\lambda (x0: C).(\lambda (x1: T).(\lambda 
-(H6: (eq C c0 (CHead x0 (Bind b) u))).(\lambda (H7: (wf3 g c2 x0)).(\lambda 
-(_: (ty3 g c2 u x1)).(let TMP_32 \def (Bind b) in (let TMP_33 \def (CHead x0 
-TMP_32 u) in (let TMP_36 \def (\lambda (c4: C).(let TMP_34 \def (Bind b) in 
-(let TMP_35 \def (CHead c3 TMP_34 u) in (eq C TMP_35 c4)))) in (let TMP_37 
-\def (Bind b) in (let TMP_38 \def (Bind b) in (let TMP_39 \def (H1 x0 H7) in 
-(let TMP_40 \def (Bind b) in (let TMP_41 \def (refl_equal K TMP_40) in (let 
-TMP_42 \def (refl_equal T u) in (let TMP_43 \def (f_equal3 C K T C CHead c3 
-x0 TMP_37 TMP_38 u u TMP_39 TMP_41 TMP_42) in (eq_ind_r C TMP_33 TMP_36 
-TMP_43 c0 H6)))))))))))))))) in (ex3_2_ind C T TMP_26 TMP_27 TMP_28 TMP_31 
-TMP_44 H5))))))))) in (let TMP_69 \def (\lambda (H5: (ex3 C (\lambda (c4: 
-C).(eq C c0 (CHead c4 (Bind Void) (TSort O)))) (\lambda (c4: C).(wf3 g c2 
-c4)) (\lambda (_: C).(\forall (w: T).((ty3 g c2 u w) \to False))))).(let 
-TMP_49 \def (\lambda (c4: C).(let TMP_46 \def (Bind Void) in (let TMP_47 \def 
-(TSort O) in (let TMP_48 \def (CHead c4 TMP_46 TMP_47) in (eq C c0 
-TMP_48))))) in (let TMP_50 \def (\lambda (c4: C).(wf3 g c2 c4)) in (let 
-TMP_51 \def (\lambda (_: C).(\forall (w: T).((ty3 g c2 u w) \to False))) in 
-(let TMP_52 \def (Bind b) in (let TMP_53 \def (CHead c3 TMP_52 u) in (let 
-TMP_54 \def (eq C TMP_53 c0) in (let TMP_68 \def (\lambda (x0: C).(\lambda 
-(H6: (eq C c0 (CHead x0 (Bind Void) (TSort O)))).(\lambda (_: (wf3 g c2 
-x0)).(\lambda (H8: ((\forall (w: T).((ty3 g c2 u w) \to False)))).(let TMP_55 
-\def (Bind Void) in (let TMP_56 \def (TSort O) in (let TMP_57 \def (CHead x0 
-TMP_55 TMP_56) in (let TMP_60 \def (\lambda (c4: C).(let TMP_58 \def (Bind b) 
-in (let TMP_59 \def (CHead c3 TMP_58 u) in (eq C TMP_59 c4)))) in (let H_x0 
-\def (H8 t H2) in (let H9 \def H_x0 in (let TMP_61 \def (Bind b) in (let 
-TMP_62 \def (CHead c3 TMP_61 u) in (let TMP_63 \def (Bind Void) in (let 
-TMP_64 \def (TSort O) in (let TMP_65 \def (CHead x0 TMP_63 TMP_64) in (let 
-TMP_66 \def (eq C TMP_62 TMP_65) in (let TMP_67 \def (False_ind TMP_66 H9) in 
-(eq_ind_r C TMP_57 TMP_60 TMP_67 c0 H6)))))))))))))))))) in (ex3_ind C TMP_49 
-TMP_50 TMP_51 TMP_54 TMP_68 H5))))))))) in (or_ind TMP_13 TMP_20 TMP_23 
-TMP_45 TMP_69 H4)))))))))))))))))))))))))) in (let TMP_141 \def (\lambda (c2: 
-C).(\lambda (c3: C).(\lambda (_: (wf3 g c2 c3)).(\lambda (H1: ((\forall (c4: 
-C).((wf3 g c2 c4) \to (eq C c3 c4))))).(\lambda (u: T).(\lambda (H2: 
-((\forall (t: T).((ty3 g c2 u t) \to False)))).(\lambda (b: B).(\lambda (c0: 
-C).(\lambda (H3: (wf3 g (CHead c2 (Bind b) u) c0)).(let H_x \def 
-(wf3_gen_bind1 g c2 c0 u b H3) in (let H4 \def H_x in (let TMP_73 \def 
-(\lambda (c4: C).(\lambda (_: T).(let TMP_71 \def (Bind b) in (let TMP_72 
-\def (CHead c4 TMP_71 u) in (eq C c0 TMP_72))))) in (let TMP_74 \def (\lambda 
-(c4: C).(\lambda (_: T).(wf3 g c2 c4))) in (let TMP_75 \def (\lambda (_: 
-C).(\lambda (w: T).(ty3 g c2 u w))) in (let TMP_76 \def (ex3_2 C T TMP_73 
-TMP_74 TMP_75) in (let TMP_80 \def (\lambda (c4: C).(let TMP_77 \def (Bind 
-Void) in (let TMP_78 \def (TSort O) in (let TMP_79 \def (CHead c4 TMP_77 
-TMP_78) in (eq C c0 TMP_79))))) in (let TMP_81 \def (\lambda (c4: C).(wf3 g 
-c2 c4)) in (let TMP_82 \def (\lambda (_: C).(\forall (w: T).((ty3 g c2 u w) 
-\to False))) in (let TMP_83 \def (ex3 C TMP_80 TMP_81 TMP_82) in (let TMP_84 
-\def (Bind Void) in (let TMP_85 \def (TSort O) in (let TMP_86 \def (CHead c3 
-TMP_84 TMP_85) in (let TMP_87 \def (eq C TMP_86 c0) in (let TMP_111 \def 
-(\lambda (H5: (ex3_2 C T (\lambda (c4: C).(\lambda (_: T).(eq C c0 (CHead c4 
+u w))) (eq C (CHead c3 (Bind b) u) c0) (\lambda (x0: C).(\lambda (x1: 
+T).(\lambda (H6: (eq C c0 (CHead x0 (Bind b) u))).(\lambda (H7: (wf3 g c2 
+x0)).(\lambda (_: (ty3 g c2 u x1)).(eq_ind_r C (CHead x0 (Bind b) u) (\lambda 
+(c4: C).(eq C (CHead c3 (Bind b) u) c4)) (f_equal3 C K T C CHead c3 x0 (Bind 
+b) (Bind b) u u (H1 x0 H7) (refl_equal K (Bind b)) (refl_equal T u)) c0 
+H6)))))) H5)) (\lambda (H5: (ex3 C (\lambda (c4: C).(eq C c0 (CHead c4 (Bind 
+Void) (TSort O)))) (\lambda (c4: C).(wf3 g c2 c4)) (\lambda (_: C).(\forall 
+(w: T).((ty3 g c2 u w) \to False))))).(ex3_ind C (\lambda (c4: C).(eq C c0 
+(CHead c4 (Bind Void) (TSort O)))) (\lambda (c4: C).(wf3 g c2 c4)) (\lambda 
+(_: C).(\forall (w: T).((ty3 g c2 u w) \to False))) (eq C (CHead c3 (Bind b) 
+u) c0) (\lambda (x0: C).(\lambda (H6: (eq C c0 (CHead x0 (Bind Void) (TSort 
+O)))).(\lambda (_: (wf3 g c2 x0)).(\lambda (H8: ((\forall (w: T).((ty3 g c2 u 
+w) \to False)))).(eq_ind_r C (CHead x0 (Bind Void) (TSort O)) (\lambda (c4: 
+C).(eq C (CHead c3 (Bind b) u) c4)) (let H_x0 \def (H8 t H2) in (let H9 \def 
+H_x0 in (False_ind (eq C (CHead c3 (Bind b) u) (CHead x0 (Bind Void) (TSort 
+O))) H9))) c0 H6))))) H5)) H4))))))))))))) (\lambda (c2: C).(\lambda (c3: 
+C).(\lambda (_: (wf3 g c2 c3)).(\lambda (H1: ((\forall (c4: C).((wf3 g c2 c4) 
+\to (eq C c3 c4))))).(\lambda (u: T).(\lambda (H2: ((\forall (t: T).((ty3 g 
+c2 u t) \to False)))).(\lambda (b: B).(\lambda (c0: C).(\lambda (H3: (wf3 g 
+(CHead c2 (Bind b) u) c0)).(let H_x \def (wf3_gen_bind1 g c2 c0 u b H3) in 
+(let H4 \def H_x in (or_ind (ex3_2 C T (\lambda (c4: C).(\lambda (_: T).(eq C 
+c0 (CHead c4 (Bind b) u)))) (\lambda (c4: C).(\lambda (_: T).(wf3 g c2 c4))) 
+(\lambda (_: C).(\lambda (w: T).(ty3 g c2 u w)))) (ex3 C (\lambda (c4: C).(eq 
+C c0 (CHead c4 (Bind Void) (TSort O)))) (\lambda (c4: C).(wf3 g c2 c4)) 
+(\lambda (_: C).(\forall (w: T).((ty3 g c2 u w) \to False)))) (eq C (CHead c3 
+(Bind Void) (TSort O)) c0) (\lambda (H5: (ex3_2 C T (\lambda (c4: C).(\lambda 
+(_: T).(eq C c0 (CHead c4 (Bind b) u)))) (\lambda (c4: C).(\lambda (_: 
+T).(wf3 g c2 c4))) (\lambda (_: C).(\lambda (w: T).(ty3 g c2 u 
+w))))).(ex3_2_ind C T (\lambda (c4: C).(\lambda (_: T).(eq C c0 (CHead c4 
 (Bind b) u)))) (\lambda (c4: C).(\lambda (_: T).(wf3 g c2 c4))) (\lambda (_: 
-C).(\lambda (w: T).(ty3 g c2 u w))))).(let TMP_90 \def (\lambda (c4: 
-C).(\lambda (_: T).(let TMP_88 \def (Bind b) in (let TMP_89 \def (CHead c4 
-TMP_88 u) in (eq C c0 TMP_89))))) in (let TMP_91 \def (\lambda (c4: 
-C).(\lambda (_: T).(wf3 g c2 c4))) in (let TMP_92 \def (\lambda (_: 
-C).(\lambda (w: T).(ty3 g c2 u w))) in (let TMP_93 \def (Bind Void) in (let 
-TMP_94 \def (TSort O) in (let TMP_95 \def (CHead c3 TMP_93 TMP_94) in (let 
-TMP_96 \def (eq C TMP_95 c0) in (let TMP_110 \def (\lambda (x0: C).(\lambda 
-(x1: T).(\lambda (H6: (eq C c0 (CHead x0 (Bind b) u))).(\lambda (_: (wf3 g c2 
-x0)).(\lambda (H8: (ty3 g c2 u x1)).(let TMP_97 \def (Bind b) in (let TMP_98 
-\def (CHead x0 TMP_97 u) in (let TMP_102 \def (\lambda (c4: C).(let TMP_99 
-\def (Bind Void) in (let TMP_100 \def (TSort O) in (let TMP_101 \def (CHead 
-c3 TMP_99 TMP_100) in (eq C TMP_101 c4))))) in (let H_x0 \def (H2 x1 H8) in 
-(let H9 \def H_x0 in (let TMP_103 \def (Bind Void) in (let TMP_104 \def 
-(TSort O) in (let TMP_105 \def (CHead c3 TMP_103 TMP_104) in (let TMP_106 
-\def (Bind b) in (let TMP_107 \def (CHead x0 TMP_106 u) in (let TMP_108 \def 
-(eq C TMP_105 TMP_107) in (let TMP_109 \def (False_ind TMP_108 H9) in 
-(eq_ind_r C TMP_98 TMP_102 TMP_109 c0 H6)))))))))))))))))) in (ex3_2_ind C T 
-TMP_90 TMP_91 TMP_92 TMP_96 TMP_110 H5)))))))))) in (let TMP_140 \def 
-(\lambda (H5: (ex3 C (\lambda (c4: C).(eq C c0 (CHead c4 (Bind Void) (TSort 
-O)))) (\lambda (c4: C).(wf3 g c2 c4)) (\lambda (_: C).(\forall (w: T).((ty3 g 
-c2 u w) \to False))))).(let TMP_115 \def (\lambda (c4: C).(let TMP_112 \def 
-(Bind Void) in (let TMP_113 \def (TSort O) in (let TMP_114 \def (CHead c4 
-TMP_112 TMP_113) in (eq C c0 TMP_114))))) in (let TMP_116 \def (\lambda (c4: 
-C).(wf3 g c2 c4)) in (let TMP_117 \def (\lambda (_: C).(\forall (w: T).((ty3 
-g c2 u w) \to False))) in (let TMP_118 \def (Bind Void) in (let TMP_119 \def 
-(TSort O) in (let TMP_120 \def (CHead c3 TMP_118 TMP_119) in (let TMP_121 
-\def (eq C TMP_120 c0) in (let TMP_139 \def (\lambda (x0: C).(\lambda (H6: 
-(eq C c0 (CHead x0 (Bind Void) (TSort O)))).(\lambda (H7: (wf3 g c2 
-x0)).(\lambda (_: ((\forall (w: T).((ty3 g c2 u w) \to False)))).(let TMP_122 
-\def (Bind Void) in (let TMP_123 \def (TSort O) in (let TMP_124 \def (CHead 
-x0 TMP_122 TMP_123) in (let TMP_128 \def (\lambda (c4: C).(let TMP_125 \def 
-(Bind Void) in (let TMP_126 \def (TSort O) in (let TMP_127 \def (CHead c3 
-TMP_125 TMP_126) in (eq C TMP_127 c4))))) in (let TMP_129 \def (Bind Void) in 
-(let TMP_130 \def (Bind Void) in (let TMP_131 \def (TSort O) in (let TMP_132 
-\def (TSort O) in (let TMP_133 \def (H1 x0 H7) in (let TMP_134 \def (Bind 
-Void) in (let TMP_135 \def (refl_equal K TMP_134) in (let TMP_136 \def (TSort 
-O) in (let TMP_137 \def (refl_equal T TMP_136) in (let TMP_138 \def (f_equal3 
-C K T C CHead c3 x0 TMP_129 TMP_130 TMP_131 TMP_132 TMP_133 TMP_135 TMP_137) 
-in (eq_ind_r C TMP_124 TMP_128 TMP_138 c0 H6))))))))))))))))))) in (ex3_ind C 
-TMP_115 TMP_116 TMP_117 TMP_121 TMP_139 H5)))))))))) in (or_ind TMP_76 TMP_83 
-TMP_87 TMP_111 TMP_140 H4)))))))))))))))))))))))))) in (let TMP_142 \def 
+C).(\lambda (w: T).(ty3 g c2 u w))) (eq C (CHead c3 (Bind Void) (TSort O)) 
+c0) (\lambda (x0: C).(\lambda (x1: T).(\lambda (H6: (eq C c0 (CHead x0 (Bind 
+b) u))).(\lambda (_: (wf3 g c2 x0)).(\lambda (H8: (ty3 g c2 u x1)).(eq_ind_r 
+C (CHead x0 (Bind b) u) (\lambda (c4: C).(eq C (CHead c3 (Bind Void) (TSort 
+O)) c4)) (let H_x0 \def (H2 x1 H8) in (let H9 \def H_x0 in (False_ind (eq C 
+(CHead c3 (Bind Void) (TSort O)) (CHead x0 (Bind b) u)) H9))) c0 H6)))))) 
+H5)) (\lambda (H5: (ex3 C (\lambda (c4: C).(eq C c0 (CHead c4 (Bind Void) 
+(TSort O)))) (\lambda (c4: C).(wf3 g c2 c4)) (\lambda (_: C).(\forall (w: 
+T).((ty3 g c2 u w) \to False))))).(ex3_ind C (\lambda (c4: C).(eq C c0 (CHead 
+c4 (Bind Void) (TSort O)))) (\lambda (c4: C).(wf3 g c2 c4)) (\lambda (_: 
+C).(\forall (w: T).((ty3 g c2 u w) \to False))) (eq C (CHead c3 (Bind Void) 
+(TSort O)) c0) (\lambda (x0: C).(\lambda (H6: (eq C c0 (CHead x0 (Bind Void) 
+(TSort O)))).(\lambda (H7: (wf3 g c2 x0)).(\lambda (_: ((\forall (w: T).((ty3 
+g c2 u w) \to False)))).(eq_ind_r C (CHead x0 (Bind Void) (TSort O)) (\lambda 
+(c4: C).(eq C (CHead c3 (Bind Void) (TSort O)) c4)) (f_equal3 C K T C CHead 
+c3 x0 (Bind Void) (Bind Void) (TSort O) (TSort O) (H1 x0 H7) (refl_equal K 
+(Bind Void)) (refl_equal T (TSort O))) c0 H6))))) H5)) H4)))))))))))) 
 (\lambda (c2: C).(\lambda (c3: C).(\lambda (_: (wf3 g c2 c3)).(\lambda (H1: 
 ((\forall (c4: C).((wf3 g c2 c4) \to (eq C c3 c4))))).(\lambda (u: 
 T).(\lambda (f: F).(\lambda (c0: C).(\lambda (H2: (wf3 g (CHead c2 (Flat f) 
 u) c0)).(let H_y \def (wf3_gen_flat1 g c2 c0 u f H2) in (H1 c0 H_y)))))))))) 
-in (wf3_ind g TMP_1 TMP_7 TMP_70 TMP_141 TMP_142 c c1 H))))))))).
+c c1 H)))).
 
index d73b1f2763ac46779de15f621a05718ffca6f04c..c8a7aa3116546643316b7be34f6b3ffb23a4da17 100644 (file)
@@ -25,302 +25,175 @@ C).((wf3 g c1 c2) \to (\forall (w: T).((ty3 g d1 v w) \to (ex2 C (\lambda
 (d2: C).(getl i c2 (CHead d2 (Bind b) v))) (\lambda (d2: C).(wf3 g d1 
 d2)))))))))))))
 \def
- \lambda (b: B).(\lambda (i: nat).(let TMP_5 \def (\lambda (n: nat).(\forall 
-(c1: C).(\forall (d1: C).(\forall (v: T).((getl n c1 (CHead d1 (Bind b) v)) 
-\to (\forall (g: G).(\forall (c2: C).((wf3 g c1 c2) \to (\forall (w: T).((ty3 
-g d1 v w) \to (let TMP_3 \def (\lambda (d2: C).(let TMP_1 \def (Bind b) in 
-(let TMP_2 \def (CHead d2 TMP_1 v) in (getl n c2 TMP_2)))) in (let TMP_4 \def 
-(\lambda (d2: C).(wf3 g d1 d2)) in (ex2 C TMP_3 TMP_4))))))))))))) in (let 
-TMP_86 \def (\lambda (c1: C).(\lambda (d1: C).(\lambda (v: T).(\lambda (H: 
-(getl O c1 (CHead d1 (Bind b) v))).(\lambda (g: G).(\lambda (c2: C).(\lambda 
-(H0: (wf3 g c1 c2)).(\lambda (w: T).(\lambda (H1: (ty3 g d1 v w)).(let TMP_6 
-\def (Bind b) in (let TMP_7 \def (CHead d1 TMP_6 v) in (let TMP_8 \def (Bind 
-b) in (let TMP_9 \def (CHead d1 TMP_8 v) in (let TMP_10 \def (getl_gen_O c1 
-TMP_9 H) in (let H_y \def (wf3_clear_conf c1 TMP_7 TMP_10 g c2 H0) in (let 
-H_x \def (wf3_gen_bind1 g d1 c2 v b H_y) in (let H2 \def H_x in (let TMP_13 
-\def (\lambda (c3: C).(\lambda (_: T).(let TMP_11 \def (Bind b) in (let 
-TMP_12 \def (CHead c3 TMP_11 v) in (eq C c2 TMP_12))))) in (let TMP_14 \def 
-(\lambda (c3: C).(\lambda (_: T).(wf3 g d1 c3))) in (let TMP_15 \def (\lambda 
-(_: C).(\lambda (w0: T).(ty3 g d1 v w0))) in (let TMP_16 \def (ex3_2 C T 
-TMP_13 TMP_14 TMP_15) in (let TMP_20 \def (\lambda (c3: C).(let TMP_17 \def 
-(Bind Void) in (let TMP_18 \def (TSort O) in (let TMP_19 \def (CHead c3 
-TMP_17 TMP_18) in (eq C c2 TMP_19))))) in (let TMP_21 \def (\lambda (c3: 
-C).(wf3 g d1 c3)) in (let TMP_22 \def (\lambda (_: C).(\forall (w0: T).((ty3 
-g d1 v w0) \to False))) in (let TMP_23 \def (ex3 C TMP_20 TMP_21 TMP_22) in 
-(let TMP_26 \def (\lambda (d2: C).(let TMP_24 \def (Bind b) in (let TMP_25 
-\def (CHead d2 TMP_24 v) in (getl O c2 TMP_25)))) in (let TMP_27 \def 
-(\lambda (d2: C).(wf3 g d1 d2)) in (let TMP_28 \def (ex2 C TMP_26 TMP_27) in 
-(let TMP_55 \def (\lambda (H3: (ex3_2 C T (\lambda (c3: C).(\lambda (_: 
-T).(eq C c2 (CHead c3 (Bind b) v)))) (\lambda (c3: C).(\lambda (_: T).(wf3 g 
-d1 c3))) (\lambda (_: C).(\lambda (w0: T).(ty3 g d1 v w0))))).(let TMP_31 
-\def (\lambda (c3: C).(\lambda (_: T).(let TMP_29 \def (Bind b) in (let 
-TMP_30 \def (CHead c3 TMP_29 v) in (eq C c2 TMP_30))))) in (let TMP_32 \def 
-(\lambda (c3: C).(\lambda (_: T).(wf3 g d1 c3))) in (let TMP_33 \def (\lambda 
-(_: C).(\lambda (w0: T).(ty3 g d1 v w0))) in (let TMP_36 \def (\lambda (d2: 
-C).(let TMP_34 \def (Bind b) in (let TMP_35 \def (CHead d2 TMP_34 v) in (getl 
-O c2 TMP_35)))) in (let TMP_37 \def (\lambda (d2: C).(wf3 g d1 d2)) in (let 
-TMP_38 \def (ex2 C TMP_36 TMP_37) in (let TMP_54 \def (\lambda (x0: 
+ \lambda (b: B).(\lambda (i: nat).(nat_ind (\lambda (n: nat).(\forall (c1: 
+C).(\forall (d1: C).(\forall (v: T).((getl n c1 (CHead d1 (Bind b) v)) \to 
+(\forall (g: G).(\forall (c2: C).((wf3 g c1 c2) \to (\forall (w: T).((ty3 g 
+d1 v w) \to (ex2 C (\lambda (d2: C).(getl n c2 (CHead d2 (Bind b) v))) 
+(\lambda (d2: C).(wf3 g d1 d2))))))))))))) (\lambda (c1: C).(\lambda (d1: 
+C).(\lambda (v: T).(\lambda (H: (getl O c1 (CHead d1 (Bind b) v))).(\lambda 
+(g: G).(\lambda (c2: C).(\lambda (H0: (wf3 g c1 c2)).(\lambda (w: T).(\lambda 
+(H1: (ty3 g d1 v w)).(let H_y \def (wf3_clear_conf c1 (CHead d1 (Bind b) v) 
+(getl_gen_O c1 (CHead d1 (Bind b) v) H) g c2 H0) in (let H_x \def 
+(wf3_gen_bind1 g d1 c2 v b H_y) in (let H2 \def H_x in (or_ind (ex3_2 C T 
+(\lambda (c3: C).(\lambda (_: T).(eq C c2 (CHead c3 (Bind b) v)))) (\lambda 
+(c3: C).(\lambda (_: T).(wf3 g d1 c3))) (\lambda (_: C).(\lambda (w0: T).(ty3 
+g d1 v w0)))) (ex3 C (\lambda (c3: C).(eq C c2 (CHead c3 (Bind Void) (TSort 
+O)))) (\lambda (c3: C).(wf3 g d1 c3)) (\lambda (_: C).(\forall (w0: T).((ty3 
+g d1 v w0) \to False)))) (ex2 C (\lambda (d2: C).(getl O c2 (CHead d2 (Bind 
+b) v))) (\lambda (d2: C).(wf3 g d1 d2))) (\lambda (H3: (ex3_2 C T (\lambda 
+(c3: C).(\lambda (_: T).(eq C c2 (CHead c3 (Bind b) v)))) (\lambda (c3: 
+C).(\lambda (_: T).(wf3 g d1 c3))) (\lambda (_: C).(\lambda (w0: T).(ty3 g d1 
+v w0))))).(ex3_2_ind C T (\lambda (c3: C).(\lambda (_: T).(eq C c2 (CHead c3 
+(Bind b) v)))) (\lambda (c3: C).(\lambda (_: T).(wf3 g d1 c3))) (\lambda (_: 
+C).(\lambda (w0: T).(ty3 g d1 v w0))) (ex2 C (\lambda (d2: C).(getl O c2 
+(CHead d2 (Bind b) v))) (\lambda (d2: C).(wf3 g d1 d2))) (\lambda (x0: 
 C).(\lambda (x1: T).(\lambda (H4: (eq C c2 (CHead x0 (Bind b) v))).(\lambda 
-(H5: (wf3 g d1 x0)).(\lambda (_: (ty3 g d1 v x1)).(let TMP_39 \def (Bind b) 
-in (let TMP_40 \def (CHead x0 TMP_39 v) in (let TMP_45 \def (\lambda (c: 
-C).(let TMP_43 \def (\lambda (d2: C).(let TMP_41 \def (Bind b) in (let TMP_42 
-\def (CHead d2 TMP_41 v) in (getl O c TMP_42)))) in (let TMP_44 \def (\lambda 
-(d2: C).(wf3 g d1 d2)) in (ex2 C TMP_43 TMP_44)))) in (let TMP_50 \def 
-(\lambda (d2: C).(let TMP_46 \def (Bind b) in (let TMP_47 \def (CHead x0 
-TMP_46 v) in (let TMP_48 \def (Bind b) in (let TMP_49 \def (CHead d2 TMP_48 
-v) in (getl O TMP_47 TMP_49)))))) in (let TMP_51 \def (\lambda (d2: C).(wf3 g 
-d1 d2)) in (let TMP_52 \def (getl_refl b x0 v) in (let TMP_53 \def (ex_intro2 
-C TMP_50 TMP_51 x0 TMP_52 H5) in (eq_ind_r C TMP_40 TMP_45 TMP_53 c2 
-H4))))))))))))) in (ex3_2_ind C T TMP_31 TMP_32 TMP_33 TMP_38 TMP_54 
-H3))))))))) in (let TMP_85 \def (\lambda (H3: (ex3 C (\lambda (c3: C).(eq C 
-c2 (CHead c3 (Bind Void) (TSort O)))) (\lambda (c3: C).(wf3 g d1 c3)) 
-(\lambda (_: C).(\forall (w0: T).((ty3 g d1 v w0) \to False))))).(let TMP_59 
-\def (\lambda (c3: C).(let TMP_56 \def (Bind Void) in (let TMP_57 \def (TSort 
-O) in (let TMP_58 \def (CHead c3 TMP_56 TMP_57) in (eq C c2 TMP_58))))) in 
-(let TMP_60 \def (\lambda (c3: C).(wf3 g d1 c3)) in (let TMP_61 \def (\lambda 
-(_: C).(\forall (w0: T).((ty3 g d1 v w0) \to False))) in (let TMP_64 \def 
-(\lambda (d2: C).(let TMP_62 \def (Bind b) in (let TMP_63 \def (CHead d2 
-TMP_62 v) in (getl O c2 TMP_63)))) in (let TMP_65 \def (\lambda (d2: C).(wf3 
-g d1 d2)) in (let TMP_66 \def (ex2 C TMP_64 TMP_65) in (let TMP_84 \def 
-(\lambda (x0: C).(\lambda (H4: (eq C c2 (CHead x0 (Bind Void) (TSort 
-O)))).(\lambda (_: (wf3 g d1 x0)).(\lambda (H6: ((\forall (w0: T).((ty3 g d1 
-v w0) \to False)))).(let TMP_67 \def (Bind Void) in (let TMP_68 \def (TSort 
-O) in (let TMP_69 \def (CHead x0 TMP_67 TMP_68) in (let TMP_74 \def (\lambda 
-(c: C).(let TMP_72 \def (\lambda (d2: C).(let TMP_70 \def (Bind b) in (let 
-TMP_71 \def (CHead d2 TMP_70 v) in (getl O c TMP_71)))) in (let TMP_73 \def 
-(\lambda (d2: C).(wf3 g d1 d2)) in (ex2 C TMP_72 TMP_73)))) in (let H_x0 \def 
-(H6 w H1) in (let H7 \def H_x0 in (let TMP_80 \def (\lambda (d2: C).(let 
-TMP_75 \def (Bind Void) in (let TMP_76 \def (TSort O) in (let TMP_77 \def 
-(CHead x0 TMP_75 TMP_76) in (let TMP_78 \def (Bind b) in (let TMP_79 \def 
-(CHead d2 TMP_78 v) in (getl O TMP_77 TMP_79))))))) in (let TMP_81 \def 
-(\lambda (d2: C).(wf3 g d1 d2)) in (let TMP_82 \def (ex2 C TMP_80 TMP_81) in 
-(let TMP_83 \def (False_ind TMP_82 H7) in (eq_ind_r C TMP_69 TMP_74 TMP_83 c2 
-H4))))))))))))))) in (ex3_ind C TMP_59 TMP_60 TMP_61 TMP_66 TMP_84 
-H3))))))))) in (or_ind TMP_16 TMP_23 TMP_28 TMP_55 TMP_85 
-H2))))))))))))))))))))))))))))))) in (let TMP_231 \def (\lambda (n: 
-nat).(\lambda (H: ((\forall (c1: C).(\forall (d1: C).(\forall (v: T).((getl n 
-c1 (CHead d1 (Bind b) v)) \to (\forall (g: G).(\forall (c2: C).((wf3 g c1 c2) 
-\to (\forall (w: T).((ty3 g d1 v w) \to (ex2 C (\lambda (d2: C).(getl n c2 
-(CHead d2 (Bind b) v))) (\lambda (d2: C).(wf3 g d1 d2)))))))))))))).(\lambda 
-(c1: C).(let TMP_92 \def (\lambda (c: C).(\forall (d1: C).(\forall (v: 
-T).((getl (S n) c (CHead d1 (Bind b) v)) \to (\forall (g: G).(\forall (c2: 
-C).((wf3 g c c2) \to (\forall (w: T).((ty3 g d1 v w) \to (let TMP_90 \def 
-(\lambda (d2: C).(let TMP_87 \def (S n) in (let TMP_88 \def (Bind b) in (let 
-TMP_89 \def (CHead d2 TMP_88 v) in (getl TMP_87 c2 TMP_89))))) in (let TMP_91 
-\def (\lambda (d2: C).(wf3 g d1 d2)) in (ex2 C TMP_90 TMP_91)))))))))))) in 
-(let TMP_102 \def (\lambda (n0: nat).(\lambda (d1: C).(\lambda (v: 
-T).(\lambda (H0: (getl (S n) (CSort n0) (CHead d1 (Bind b) v))).(\lambda (g: 
-G).(\lambda (c2: C).(\lambda (_: (wf3 g (CSort n0) c2)).(\lambda (w: 
-T).(\lambda (_: (ty3 g d1 v w)).(let TMP_93 \def (S n) in (let TMP_94 \def 
-(Bind b) in (let TMP_95 \def (CHead d1 TMP_94 v) in (let TMP_99 \def (\lambda 
-(d2: C).(let TMP_96 \def (S n) in (let TMP_97 \def (Bind b) in (let TMP_98 
-\def (CHead d2 TMP_97 v) in (getl TMP_96 c2 TMP_98))))) in (let TMP_100 \def 
-(\lambda (d2: C).(wf3 g d1 d2)) in (let TMP_101 \def (ex2 C TMP_99 TMP_100) 
-in (getl_gen_sort n0 TMP_93 TMP_95 H0 TMP_101)))))))))))))))) in (let TMP_230 
-\def (\lambda (c: C).(\lambda (H0: ((\forall (d1: C).(\forall (v: T).((getl 
-(S n) c (CHead d1 (Bind b) v)) \to (\forall (g: G).(\forall (c2: C).((wf3 g c 
-c2) \to (\forall (w: T).((ty3 g d1 v w) \to (ex2 C (\lambda (d2: C).(getl (S 
-n) c2 (CHead d2 (Bind b) v))) (\lambda (d2: C).(wf3 g d1 
-d2))))))))))))).(\lambda (k: K).(\lambda (t: T).(\lambda (d1: C).(\lambda (v: 
-T).(\lambda (H1: (getl (S n) (CHead c k t) (CHead d1 (Bind b) v))).(\lambda 
-(g: G).(\lambda (c2: C).(\lambda (H2: (wf3 g (CHead c k t) c2)).(\lambda (w: 
-T).(\lambda (H3: (ty3 g d1 v w)).(let TMP_108 \def (\lambda (k0: K).((wf3 g 
-(CHead c k0 t) c2) \to ((getl (r k0 n) c (CHead d1 (Bind b) v)) \to (let 
-TMP_106 \def (\lambda (d2: C).(let TMP_103 \def (S n) in (let TMP_104 \def 
-(Bind b) in (let TMP_105 \def (CHead d2 TMP_104 v) in (getl TMP_103 c2 
-TMP_105))))) in (let TMP_107 \def (\lambda (d2: C).(wf3 g d1 d2)) in (ex2 C 
-TMP_106 TMP_107)))))) in (let TMP_225 \def (\lambda (b0: B).(\lambda (H4: 
-(wf3 g (CHead c (Bind b0) t) c2)).(\lambda (H5: (getl (r (Bind b0) n) c 
-(CHead d1 (Bind b) v))).(let H_x \def (wf3_gen_bind1 g c c2 t b0 H4) in (let 
-H6 \def H_x in (let TMP_111 \def (\lambda (c3: C).(\lambda (_: T).(let 
-TMP_109 \def (Bind b0) in (let TMP_110 \def (CHead c3 TMP_109 t) in (eq C c2 
-TMP_110))))) in (let TMP_112 \def (\lambda (c3: C).(\lambda (_: T).(wf3 g c 
-c3))) in (let TMP_113 \def (\lambda (_: C).(\lambda (w0: T).(ty3 g c t w0))) 
-in (let TMP_114 \def (ex3_2 C T TMP_111 TMP_112 TMP_113) in (let TMP_118 \def 
-(\lambda (c3: C).(let TMP_115 \def (Bind Void) in (let TMP_116 \def (TSort O) 
-in (let TMP_117 \def (CHead c3 TMP_115 TMP_116) in (eq C c2 TMP_117))))) in 
-(let TMP_119 \def (\lambda (c3: C).(wf3 g c c3)) in (let TMP_120 \def 
-(\lambda (_: C).(\forall (w0: T).((ty3 g c t w0) \to False))) in (let TMP_121 
-\def (ex3 C TMP_118 TMP_119 TMP_120) in (let TMP_125 \def (\lambda (d2: 
-C).(let TMP_122 \def (S n) in (let TMP_123 \def (Bind b) in (let TMP_124 \def 
-(CHead d2 TMP_123 v) in (getl TMP_122 c2 TMP_124))))) in (let TMP_126 \def 
-(\lambda (d2: C).(wf3 g d1 d2)) in (let TMP_127 \def (ex2 C TMP_125 TMP_126) 
-in (let TMP_173 \def (\lambda (H7: (ex3_2 C T (\lambda (c3: C).(\lambda (_: 
-T).(eq C c2 (CHead c3 (Bind b0) t)))) (\lambda (c3: C).(\lambda (_: T).(wf3 g 
-c c3))) (\lambda (_: C).(\lambda (w0: T).(ty3 g c t w0))))).(let TMP_130 \def 
-(\lambda (c3: C).(\lambda (_: T).(let TMP_128 \def (Bind b0) in (let TMP_129 
-\def (CHead c3 TMP_128 t) in (eq C c2 TMP_129))))) in (let TMP_131 \def 
-(\lambda (c3: C).(\lambda (_: T).(wf3 g c c3))) in (let TMP_132 \def (\lambda 
-(_: C).(\lambda (w0: T).(ty3 g c t w0))) in (let TMP_136 \def (\lambda (d2: 
-C).(let TMP_133 \def (S n) in (let TMP_134 \def (Bind b) in (let TMP_135 \def 
-(CHead d2 TMP_134 v) in (getl TMP_133 c2 TMP_135))))) in (let TMP_137 \def 
-(\lambda (d2: C).(wf3 g d1 d2)) in (let TMP_138 \def (ex2 C TMP_136 TMP_137) 
-in (let TMP_172 \def (\lambda (x0: C).(\lambda (x1: T).(\lambda (H8: (eq C c2 
-(CHead x0 (Bind b0) t))).(\lambda (H9: (wf3 g c x0)).(\lambda (_: (ty3 g c t 
-x1)).(let TMP_139 \def (Bind b0) in (let TMP_140 \def (CHead x0 TMP_139 t) in 
-(let TMP_146 \def (\lambda (c0: C).(let TMP_144 \def (\lambda (d2: C).(let 
-TMP_141 \def (S n) in (let TMP_142 \def (Bind b) in (let TMP_143 \def (CHead 
-d2 TMP_142 v) in (getl TMP_141 c0 TMP_143))))) in (let TMP_145 \def (\lambda 
-(d2: C).(wf3 g d1 d2)) in (ex2 C TMP_144 TMP_145)))) in (let H_x0 \def (H c 
-d1 v H5 g x0 H9 w H3) in (let H11 \def H_x0 in (let TMP_149 \def (\lambda 
-(d2: C).(let TMP_147 \def (Bind b) in (let TMP_148 \def (CHead d2 TMP_147 v) 
-in (getl n x0 TMP_148)))) in (let TMP_150 \def (\lambda (d2: C).(wf3 g d1 
-d2)) in (let TMP_156 \def (\lambda (d2: C).(let TMP_151 \def (S n) in (let 
-TMP_152 \def (Bind b0) in (let TMP_153 \def (CHead x0 TMP_152 t) in (let 
-TMP_154 \def (Bind b) in (let TMP_155 \def (CHead d2 TMP_154 v) in (getl 
-TMP_151 TMP_153 TMP_155))))))) in (let TMP_157 \def (\lambda (d2: C).(wf3 g 
-d1 d2)) in (let TMP_158 \def (ex2 C TMP_156 TMP_157) in (let TMP_170 \def 
-(\lambda (x: C).(\lambda (H12: (getl n x0 (CHead x (Bind b) v))).(\lambda 
-(H13: (wf3 g d1 x)).(let TMP_164 \def (\lambda (d2: C).(let TMP_159 \def (S 
-n) in (let TMP_160 \def (Bind b0) in (let TMP_161 \def (CHead x0 TMP_160 t) 
-in (let TMP_162 \def (Bind b) in (let TMP_163 \def (CHead d2 TMP_162 v) in 
-(getl TMP_159 TMP_161 TMP_163))))))) in (let TMP_165 \def (\lambda (d2: 
-C).(wf3 g d1 d2)) in (let TMP_166 \def (Bind b0) in (let TMP_167 \def (Bind 
-b) in (let TMP_168 \def (CHead x TMP_167 v) in (let TMP_169 \def (getl_head 
-TMP_166 n x0 TMP_168 H12 t) in (ex_intro2 C TMP_164 TMP_165 x TMP_169 
-H13)))))))))) in (let TMP_171 \def (ex2_ind C TMP_149 TMP_150 TMP_158 TMP_170 
-H11) in (eq_ind_r C TMP_140 TMP_146 TMP_171 c2 H8)))))))))))))))))) in 
-(ex3_2_ind C T TMP_130 TMP_131 TMP_132 TMP_138 TMP_172 H7))))))))) in (let 
-TMP_224 \def (\lambda (H7: (ex3 C (\lambda (c3: C).(eq C c2 (CHead c3 (Bind 
-Void) (TSort O)))) (\lambda (c3: C).(wf3 g c c3)) (\lambda (_: C).(\forall 
-(w0: T).((ty3 g c t w0) \to False))))).(let TMP_177 \def (\lambda (c3: 
-C).(let TMP_174 \def (Bind Void) in (let TMP_175 \def (TSort O) in (let 
-TMP_176 \def (CHead c3 TMP_174 TMP_175) in (eq C c2 TMP_176))))) in (let 
-TMP_178 \def (\lambda (c3: C).(wf3 g c c3)) in (let TMP_179 \def (\lambda (_: 
-C).(\forall (w0: T).((ty3 g c t w0) \to False))) in (let TMP_183 \def 
-(\lambda (d2: C).(let TMP_180 \def (S n) in (let TMP_181 \def (Bind b) in 
-(let TMP_182 \def (CHead d2 TMP_181 v) in (getl TMP_180 c2 TMP_182))))) in 
-(let TMP_184 \def (\lambda (d2: C).(wf3 g d1 d2)) in (let TMP_185 \def (ex2 C 
-TMP_183 TMP_184) in (let TMP_223 \def (\lambda (x0: C).(\lambda (H8: (eq C c2 
-(CHead x0 (Bind Void) (TSort O)))).(\lambda (H9: (wf3 g c x0)).(\lambda (_: 
-((\forall (w0: T).((ty3 g c t w0) \to False)))).(let TMP_186 \def (Bind Void) 
-in (let TMP_187 \def (TSort O) in (let TMP_188 \def (CHead x0 TMP_186 
-TMP_187) in (let TMP_194 \def (\lambda (c0: C).(let TMP_192 \def (\lambda 
-(d2: C).(let TMP_189 \def (S n) in (let TMP_190 \def (Bind b) in (let TMP_191 
-\def (CHead d2 TMP_190 v) in (getl TMP_189 c0 TMP_191))))) in (let TMP_193 
-\def (\lambda (d2: C).(wf3 g d1 d2)) in (ex2 C TMP_192 TMP_193)))) in (let 
-H_x0 \def (H c d1 v H5 g x0 H9 w H3) in (let H11 \def H_x0 in (let TMP_197 
-\def (\lambda (d2: C).(let TMP_195 \def (Bind b) in (let TMP_196 \def (CHead 
-d2 TMP_195 v) in (getl n x0 TMP_196)))) in (let TMP_198 \def (\lambda (d2: 
-C).(wf3 g d1 d2)) in (let TMP_205 \def (\lambda (d2: C).(let TMP_199 \def (S 
-n) in (let TMP_200 \def (Bind Void) in (let TMP_201 \def (TSort O) in (let 
-TMP_202 \def (CHead x0 TMP_200 TMP_201) in (let TMP_203 \def (Bind b) in (let 
-TMP_204 \def (CHead d2 TMP_203 v) in (getl TMP_199 TMP_202 TMP_204)))))))) in 
-(let TMP_206 \def (\lambda (d2: C).(wf3 g d1 d2)) in (let TMP_207 \def (ex2 C 
-TMP_205 TMP_206) in (let TMP_221 \def (\lambda (x: C).(\lambda (H12: (getl n 
-x0 (CHead x (Bind b) v))).(\lambda (H13: (wf3 g d1 x)).(let TMP_214 \def 
-(\lambda (d2: C).(let TMP_208 \def (S n) in (let TMP_209 \def (Bind Void) in 
-(let TMP_210 \def (TSort O) in (let TMP_211 \def (CHead x0 TMP_209 TMP_210) 
-in (let TMP_212 \def (Bind b) in (let TMP_213 \def (CHead d2 TMP_212 v) in 
-(getl TMP_208 TMP_211 TMP_213)))))))) in (let TMP_215 \def (\lambda (d2: 
-C).(wf3 g d1 d2)) in (let TMP_216 \def (Bind Void) in (let TMP_217 \def (Bind 
-b) in (let TMP_218 \def (CHead x TMP_217 v) in (let TMP_219 \def (TSort O) in 
-(let TMP_220 \def (getl_head TMP_216 n x0 TMP_218 H12 TMP_219) in (ex_intro2 
-C TMP_214 TMP_215 x TMP_220 H13))))))))))) in (let TMP_222 \def (ex2_ind C 
-TMP_197 TMP_198 TMP_207 TMP_221 H11) in (eq_ind_r C TMP_188 TMP_194 TMP_222 
-c2 H8)))))))))))))))))) in (ex3_ind C TMP_177 TMP_178 TMP_179 TMP_185 TMP_223 
-H7))))))))) in (or_ind TMP_114 TMP_121 TMP_127 TMP_173 TMP_224 
-H6))))))))))))))))))) in (let TMP_226 \def (\lambda (f: F).(\lambda (H4: (wf3 
-g (CHead c (Flat f) t) c2)).(\lambda (H5: (getl (r (Flat f) n) c (CHead d1 
-(Bind b) v))).(let H_y \def (wf3_gen_flat1 g c c2 t f H4) in (H0 d1 v H5 g c2 
-H_y w H3))))) in (let TMP_227 \def (Bind b) in (let TMP_228 \def (CHead d1 
-TMP_227 v) in (let TMP_229 \def (getl_gen_S k c TMP_228 t n H1) in (K_ind 
-TMP_108 TMP_225 TMP_226 k H2 TMP_229))))))))))))))))))) in (C_ind TMP_92 
-TMP_102 TMP_230 c1))))))) in (nat_ind TMP_5 TMP_86 TMP_231 i))))).
+(H5: (wf3 g d1 x0)).(\lambda (_: (ty3 g d1 v x1)).(eq_ind_r C (CHead x0 (Bind 
+b) v) (\lambda (c: C).(ex2 C (\lambda (d2: C).(getl O c (CHead d2 (Bind b) 
+v))) (\lambda (d2: C).(wf3 g d1 d2)))) (ex_intro2 C (\lambda (d2: C).(getl O 
+(CHead x0 (Bind b) v) (CHead d2 (Bind b) v))) (\lambda (d2: C).(wf3 g d1 d2)) 
+x0 (getl_refl b x0 v) H5) c2 H4)))))) H3)) (\lambda (H3: (ex3 C (\lambda (c3: 
+C).(eq C c2 (CHead c3 (Bind Void) (TSort O)))) (\lambda (c3: C).(wf3 g d1 
+c3)) (\lambda (_: C).(\forall (w0: T).((ty3 g d1 v w0) \to 
+False))))).(ex3_ind C (\lambda (c3: C).(eq C c2 (CHead c3 (Bind Void) (TSort 
+O)))) (\lambda (c3: C).(wf3 g d1 c3)) (\lambda (_: C).(\forall (w0: T).((ty3 
+g d1 v w0) \to False))) (ex2 C (\lambda (d2: C).(getl O c2 (CHead d2 (Bind b) 
+v))) (\lambda (d2: C).(wf3 g d1 d2))) (\lambda (x0: C).(\lambda (H4: (eq C c2 
+(CHead x0 (Bind Void) (TSort O)))).(\lambda (_: (wf3 g d1 x0)).(\lambda (H6: 
+((\forall (w0: T).((ty3 g d1 v w0) \to False)))).(eq_ind_r C (CHead x0 (Bind 
+Void) (TSort O)) (\lambda (c: C).(ex2 C (\lambda (d2: C).(getl O c (CHead d2 
+(Bind b) v))) (\lambda (d2: C).(wf3 g d1 d2)))) (let H_x0 \def (H6 w H1) in 
+(let H7 \def H_x0 in (False_ind (ex2 C (\lambda (d2: C).(getl O (CHead x0 
+(Bind Void) (TSort O)) (CHead d2 (Bind b) v))) (\lambda (d2: C).(wf3 g d1 
+d2))) H7))) c2 H4))))) H3)) H2))))))))))))) (\lambda (n: nat).(\lambda (H: 
+((\forall (c1: C).(\forall (d1: C).(\forall (v: T).((getl n c1 (CHead d1 
+(Bind b) v)) \to (\forall (g: G).(\forall (c2: C).((wf3 g c1 c2) \to (\forall 
+(w: T).((ty3 g d1 v w) \to (ex2 C (\lambda (d2: C).(getl n c2 (CHead d2 (Bind 
+b) v))) (\lambda (d2: C).(wf3 g d1 d2)))))))))))))).(\lambda (c1: C).(C_ind 
+(\lambda (c: C).(\forall (d1: C).(\forall (v: T).((getl (S n) c (CHead d1 
+(Bind b) v)) \to (\forall (g: G).(\forall (c2: C).((wf3 g c c2) \to (\forall 
+(w: T).((ty3 g d1 v w) \to (ex2 C (\lambda (d2: C).(getl (S n) c2 (CHead d2 
+(Bind b) v))) (\lambda (d2: C).(wf3 g d1 d2)))))))))))) (\lambda (n0: 
+nat).(\lambda (d1: C).(\lambda (v: T).(\lambda (H0: (getl (S n) (CSort n0) 
+(CHead d1 (Bind b) v))).(\lambda (g: G).(\lambda (c2: C).(\lambda (_: (wf3 g 
+(CSort n0) c2)).(\lambda (w: T).(\lambda (_: (ty3 g d1 v w)).(getl_gen_sort 
+n0 (S n) (CHead d1 (Bind b) v) H0 (ex2 C (\lambda (d2: C).(getl (S n) c2 
+(CHead d2 (Bind b) v))) (\lambda (d2: C).(wf3 g d1 d2))))))))))))) (\lambda 
+(c: C).(\lambda (H0: ((\forall (d1: C).(\forall (v: T).((getl (S n) c (CHead 
+d1 (Bind b) v)) \to (\forall (g: G).(\forall (c2: C).((wf3 g c c2) \to 
+(\forall (w: T).((ty3 g d1 v w) \to (ex2 C (\lambda (d2: C).(getl (S n) c2 
+(CHead d2 (Bind b) v))) (\lambda (d2: C).(wf3 g d1 d2))))))))))))).(\lambda 
+(k: K).(\lambda (t: T).(\lambda (d1: C).(\lambda (v: T).(\lambda (H1: (getl 
+(S n) (CHead c k t) (CHead d1 (Bind b) v))).(\lambda (g: G).(\lambda (c2: 
+C).(\lambda (H2: (wf3 g (CHead c k t) c2)).(\lambda (w: T).(\lambda (H3: (ty3 
+g d1 v w)).(K_ind (\lambda (k0: K).((wf3 g (CHead c k0 t) c2) \to ((getl (r 
+k0 n) c (CHead d1 (Bind b) v)) \to (ex2 C (\lambda (d2: C).(getl (S n) c2 
+(CHead d2 (Bind b) v))) (\lambda (d2: C).(wf3 g d1 d2)))))) (\lambda (b0: 
+B).(\lambda (H4: (wf3 g (CHead c (Bind b0) t) c2)).(\lambda (H5: (getl (r 
+(Bind b0) n) c (CHead d1 (Bind b) v))).(let H_x \def (wf3_gen_bind1 g c c2 t 
+b0 H4) in (let H6 \def H_x in (or_ind (ex3_2 C T (\lambda (c3: C).(\lambda 
+(_: T).(eq C c2 (CHead c3 (Bind b0) t)))) (\lambda (c3: C).(\lambda (_: 
+T).(wf3 g c c3))) (\lambda (_: C).(\lambda (w0: T).(ty3 g c t w0)))) (ex3 C 
+(\lambda (c3: C).(eq C c2 (CHead c3 (Bind Void) (TSort O)))) (\lambda (c3: 
+C).(wf3 g c c3)) (\lambda (_: C).(\forall (w0: T).((ty3 g c t w0) \to 
+False)))) (ex2 C (\lambda (d2: C).(getl (S n) c2 (CHead d2 (Bind b) v))) 
+(\lambda (d2: C).(wf3 g d1 d2))) (\lambda (H7: (ex3_2 C T (\lambda (c3: 
+C).(\lambda (_: T).(eq C c2 (CHead c3 (Bind b0) t)))) (\lambda (c3: 
+C).(\lambda (_: T).(wf3 g c c3))) (\lambda (_: C).(\lambda (w0: T).(ty3 g c t 
+w0))))).(ex3_2_ind C T (\lambda (c3: C).(\lambda (_: T).(eq C c2 (CHead c3 
+(Bind b0) t)))) (\lambda (c3: C).(\lambda (_: T).(wf3 g c c3))) (\lambda (_: 
+C).(\lambda (w0: T).(ty3 g c t w0))) (ex2 C (\lambda (d2: C).(getl (S n) c2 
+(CHead d2 (Bind b) v))) (\lambda (d2: C).(wf3 g d1 d2))) (\lambda (x0: 
+C).(\lambda (x1: T).(\lambda (H8: (eq C c2 (CHead x0 (Bind b0) t))).(\lambda 
+(H9: (wf3 g c x0)).(\lambda (_: (ty3 g c t x1)).(eq_ind_r C (CHead x0 (Bind 
+b0) t) (\lambda (c0: C).(ex2 C (\lambda (d2: C).(getl (S n) c0 (CHead d2 
+(Bind b) v))) (\lambda (d2: C).(wf3 g d1 d2)))) (let H_x0 \def (H c d1 v H5 g 
+x0 H9 w H3) in (let H11 \def H_x0 in (ex2_ind C (\lambda (d2: C).(getl n x0 
+(CHead d2 (Bind b) v))) (\lambda (d2: C).(wf3 g d1 d2)) (ex2 C (\lambda (d2: 
+C).(getl (S n) (CHead x0 (Bind b0) t) (CHead d2 (Bind b) v))) (\lambda (d2: 
+C).(wf3 g d1 d2))) (\lambda (x: C).(\lambda (H12: (getl n x0 (CHead x (Bind 
+b) v))).(\lambda (H13: (wf3 g d1 x)).(ex_intro2 C (\lambda (d2: C).(getl (S 
+n) (CHead x0 (Bind b0) t) (CHead d2 (Bind b) v))) (\lambda (d2: C).(wf3 g d1 
+d2)) x (getl_head (Bind b0) n x0 (CHead x (Bind b) v) H12 t) H13)))) H11))) 
+c2 H8)))))) H7)) (\lambda (H7: (ex3 C (\lambda (c3: C).(eq C c2 (CHead c3 
+(Bind Void) (TSort O)))) (\lambda (c3: C).(wf3 g c c3)) (\lambda (_: 
+C).(\forall (w0: T).((ty3 g c t w0) \to False))))).(ex3_ind C (\lambda (c3: 
+C).(eq C c2 (CHead c3 (Bind Void) (TSort O)))) (\lambda (c3: C).(wf3 g c c3)) 
+(\lambda (_: C).(\forall (w0: T).((ty3 g c t w0) \to False))) (ex2 C (\lambda 
+(d2: C).(getl (S n) c2 (CHead d2 (Bind b) v))) (\lambda (d2: C).(wf3 g d1 
+d2))) (\lambda (x0: C).(\lambda (H8: (eq C c2 (CHead x0 (Bind Void) (TSort 
+O)))).(\lambda (H9: (wf3 g c x0)).(\lambda (_: ((\forall (w0: T).((ty3 g c t 
+w0) \to False)))).(eq_ind_r C (CHead x0 (Bind Void) (TSort O)) (\lambda (c0: 
+C).(ex2 C (\lambda (d2: C).(getl (S n) c0 (CHead d2 (Bind b) v))) (\lambda 
+(d2: C).(wf3 g d1 d2)))) (let H_x0 \def (H c d1 v H5 g x0 H9 w H3) in (let 
+H11 \def H_x0 in (ex2_ind C (\lambda (d2: C).(getl n x0 (CHead d2 (Bind b) 
+v))) (\lambda (d2: C).(wf3 g d1 d2)) (ex2 C (\lambda (d2: C).(getl (S n) 
+(CHead x0 (Bind Void) (TSort O)) (CHead d2 (Bind b) v))) (\lambda (d2: 
+C).(wf3 g d1 d2))) (\lambda (x: C).(\lambda (H12: (getl n x0 (CHead x (Bind 
+b) v))).(\lambda (H13: (wf3 g d1 x)).(ex_intro2 C (\lambda (d2: C).(getl (S 
+n) (CHead x0 (Bind Void) (TSort O)) (CHead d2 (Bind b) v))) (\lambda (d2: 
+C).(wf3 g d1 d2)) x (getl_head (Bind Void) n x0 (CHead x (Bind b) v) H12 
+(TSort O)) H13)))) H11))) c2 H8))))) H7)) H6)))))) (\lambda (f: F).(\lambda 
+(H4: (wf3 g (CHead c (Flat f) t) c2)).(\lambda (H5: (getl (r (Flat f) n) c 
+(CHead d1 (Bind b) v))).(let H_y \def (wf3_gen_flat1 g c c2 t f H4) in (H0 d1 
+v H5 g c2 H_y w H3))))) k H2 (getl_gen_S k c (CHead d1 (Bind b) v) t n 
+H1)))))))))))))) c1)))) i)).
 
 theorem getl_wf3_trans:
  \forall (i: nat).(\forall (c1: C).(\forall (d1: C).((getl i c1 d1) \to 
 (\forall (g: G).(\forall (d2: C).((wf3 g d1 d2) \to (ex2 C (\lambda (c2: 
 C).(wf3 g c1 c2)) (\lambda (c2: C).(getl i c2 d2)))))))))
 \def
- \lambda (i: nat).(let TMP_3 \def (\lambda (n: nat).(\forall (c1: C).(\forall 
-(d1: C).((getl n c1 d1) \to (\forall (g: G).(\forall (d2: C).((wf3 g d1 d2) 
-\to (let TMP_1 \def (\lambda (c2: C).(wf3 g c1 c2)) in (let TMP_2 \def 
-(\lambda (c2: C).(getl n c2 d2)) in (ex2 C TMP_1 TMP_2)))))))))) in (let 
-TMP_15 \def (\lambda (c1: C).(\lambda (d1: C).(\lambda (H: (getl O c1 
-d1)).(\lambda (g: G).(\lambda (d2: C).(\lambda (H0: (wf3 g d1 d2)).(let TMP_4 
-\def (getl_gen_O c1 d1 H) in (let H_x \def (clear_wf3_trans c1 d1 TMP_4 g d2 
-H0) in (let H1 \def H_x in (let TMP_5 \def (\lambda (c2: C).(wf3 g c1 c2)) in 
-(let TMP_6 \def (\lambda (c2: C).(clear c2 d2)) in (let TMP_7 \def (\lambda 
-(c2: C).(wf3 g c1 c2)) in (let TMP_8 \def (\lambda (c2: C).(getl O c2 d2)) in 
-(let TMP_9 \def (ex2 C TMP_7 TMP_8) in (let TMP_14 \def (\lambda (x: 
-C).(\lambda (H2: (wf3 g c1 x)).(\lambda (H3: (clear x d2)).(let TMP_10 \def 
-(\lambda (c2: C).(wf3 g c1 c2)) in (let TMP_11 \def (\lambda (c2: C).(getl O 
-c2 d2)) in (let TMP_12 \def (drop_refl x) in (let TMP_13 \def (getl_intro O x 
-d2 x TMP_12 H3) in (ex_intro2 C TMP_10 TMP_11 x H2 TMP_13)))))))) in (ex2_ind 
-C TMP_5 TMP_6 TMP_9 TMP_14 H1)))))))))))))))) in (let TMP_102 \def (\lambda 
-(n: nat).(\lambda (H: ((\forall (c1: C).(\forall (d1: C).((getl n c1 d1) \to 
+ \lambda (i: nat).(nat_ind (\lambda (n: nat).(\forall (c1: C).(\forall (d1: 
+C).((getl n c1 d1) \to (\forall (g: G).(\forall (d2: C).((wf3 g d1 d2) \to 
+(ex2 C (\lambda (c2: C).(wf3 g c1 c2)) (\lambda (c2: C).(getl n c2 
+d2)))))))))) (\lambda (c1: C).(\lambda (d1: C).(\lambda (H: (getl O c1 
+d1)).(\lambda (g: G).(\lambda (d2: C).(\lambda (H0: (wf3 g d1 d2)).(let H_x 
+\def (clear_wf3_trans c1 d1 (getl_gen_O c1 d1 H) g d2 H0) in (let H1 \def H_x 
+in (ex2_ind C (\lambda (c2: C).(wf3 g c1 c2)) (\lambda (c2: C).(clear c2 d2)) 
+(ex2 C (\lambda (c2: C).(wf3 g c1 c2)) (\lambda (c2: C).(getl O c2 d2))) 
+(\lambda (x: C).(\lambda (H2: (wf3 g c1 x)).(\lambda (H3: (clear x 
+d2)).(ex_intro2 C (\lambda (c2: C).(wf3 g c1 c2)) (\lambda (c2: C).(getl O c2 
+d2)) x H2 (getl_intro O x d2 x (drop_refl x) H3))))) H1))))))))) (\lambda (n: 
+nat).(\lambda (H: ((\forall (c1: C).(\forall (d1: C).((getl n c1 d1) \to 
 (\forall (g: G).(\forall (d2: C).((wf3 g d1 d2) \to (ex2 C (\lambda (c2: 
 C).(wf3 g c1 c2)) (\lambda (c2: C).(getl n c2 d2))))))))))).(\lambda (c1: 
-C).(let TMP_19 \def (\lambda (c: C).(\forall (d1: C).((getl (S n) c d1) \to 
-(\forall (g: G).(\forall (d2: C).((wf3 g d1 d2) \to (let TMP_16 \def (\lambda 
-(c2: C).(wf3 g c c2)) in (let TMP_18 \def (\lambda (c2: C).(let TMP_17 \def 
-(S n) in (getl TMP_17 c2 d2))) in (ex2 C TMP_16 TMP_18))))))))) in (let 
-TMP_26 \def (\lambda (n0: nat).(\lambda (d1: C).(\lambda (H0: (getl (S n) 
-(CSort n0) d1)).(\lambda (g: G).(\lambda (d2: C).(\lambda (_: (wf3 g d1 
-d2)).(let TMP_20 \def (S n) in (let TMP_22 \def (\lambda (c2: C).(let TMP_21 
-\def (CSort n0) in (wf3 g TMP_21 c2))) in (let TMP_24 \def (\lambda (c2: 
-C).(let TMP_23 \def (S n) in (getl TMP_23 c2 d2))) in (let TMP_25 \def (ex2 C 
-TMP_22 TMP_24) in (getl_gen_sort n0 TMP_20 d1 H0 TMP_25))))))))))) in (let 
-TMP_101 \def (\lambda (c: C).(\lambda (H0: ((\forall (d1: C).((getl (S n) c 
+C).(C_ind (\lambda (c: C).(\forall (d1: C).((getl (S n) c d1) \to (\forall 
+(g: G).(\forall (d2: C).((wf3 g d1 d2) \to (ex2 C (\lambda (c2: C).(wf3 g c 
+c2)) (\lambda (c2: C).(getl (S n) c2 d2))))))))) (\lambda (n0: nat).(\lambda 
+(d1: C).(\lambda (H0: (getl (S n) (CSort n0) d1)).(\lambda (g: G).(\lambda 
+(d2: C).(\lambda (_: (wf3 g d1 d2)).(getl_gen_sort n0 (S n) d1 H0 (ex2 C 
+(\lambda (c2: C).(wf3 g (CSort n0) c2)) (\lambda (c2: C).(getl (S n) c2 
+d2)))))))))) (\lambda (c: C).(\lambda (H0: ((\forall (d1: C).((getl (S n) c 
 d1) \to (\forall (g: G).(\forall (d2: C).((wf3 g d1 d2) \to (ex2 C (\lambda 
 (c2: C).(wf3 g c c2)) (\lambda (c2: C).(getl (S n) c2 d2)))))))))).(\lambda 
 (k: K).(\lambda (t: T).(\lambda (d1: C).(\lambda (H1: (getl (S n) (CHead c k 
-t) d1)).(\lambda (g: G).(\lambda (d2: C).(\lambda (H2: (wf3 g d1 d2)).(let 
-TMP_31 \def (\lambda (k0: K).((getl (r k0 n) c d1) \to (let TMP_28 \def 
-(\lambda (c2: C).(let TMP_27 \def (CHead c k0 t) in (wf3 g TMP_27 c2))) in 
-(let TMP_30 \def (\lambda (c2: C).(let TMP_29 \def (S n) in (getl TMP_29 c2 
-d2))) in (ex2 C TMP_28 TMP_30))))) in (let TMP_82 \def (\lambda (b: 
+t) d1)).(\lambda (g: G).(\lambda (d2: C).(\lambda (H2: (wf3 g d1 d2)).(K_ind 
+(\lambda (k0: K).((getl (r k0 n) c d1) \to (ex2 C (\lambda (c2: C).(wf3 g 
+(CHead c k0 t) c2)) (\lambda (c2: C).(getl (S n) c2 d2))))) (\lambda (b: 
 B).(\lambda (H3: (getl (r (Bind b) n) c d1)).(let H_x \def (H c d1 H3 g d2 
-H2) in (let H4 \def H_x in (let TMP_32 \def (\lambda (c2: C).(wf3 g c c2)) in 
-(let TMP_33 \def (\lambda (c2: C).(getl n c2 d2)) in (let TMP_36 \def 
-(\lambda (c2: C).(let TMP_34 \def (Bind b) in (let TMP_35 \def (CHead c 
-TMP_34 t) in (wf3 g TMP_35 c2)))) in (let TMP_38 \def (\lambda (c2: C).(let 
-TMP_37 \def (S n) in (getl TMP_37 c2 d2))) in (let TMP_39 \def (ex2 C TMP_36 
-TMP_38) in (let TMP_81 \def (\lambda (x: C).(\lambda (H5: (wf3 g c 
-x)).(\lambda (H6: (getl n x d2)).(let H_x0 \def (ty3_inference g c t) in (let 
-H7 \def H_x0 in (let TMP_40 \def (\lambda (t2: T).(ty3 g c t t2)) in (let 
-TMP_41 \def (ex T TMP_40) in (let TMP_42 \def (\forall (t2: T).((ty3 g c t 
-t2) \to False)) in (let TMP_45 \def (\lambda (c2: C).(let TMP_43 \def (Bind 
-b) in (let TMP_44 \def (CHead c TMP_43 t) in (wf3 g TMP_44 c2)))) in (let 
-TMP_47 \def (\lambda (c2: C).(let TMP_46 \def (S n) in (getl TMP_46 c2 d2))) 
-in (let TMP_48 \def (ex2 C TMP_45 TMP_47) in (let TMP_67 \def (\lambda (H8: 
-(ex T (\lambda (t2: T).(ty3 g c t t2)))).(let TMP_49 \def (\lambda (t2: 
-T).(ty3 g c t t2)) in (let TMP_52 \def (\lambda (c2: C).(let TMP_50 \def 
-(Bind b) in (let TMP_51 \def (CHead c TMP_50 t) in (wf3 g TMP_51 c2)))) in 
-(let TMP_54 \def (\lambda (c2: C).(let TMP_53 \def (S n) in (getl TMP_53 c2 
-d2))) in (let TMP_55 \def (ex2 C TMP_52 TMP_54) in (let TMP_66 \def (\lambda 
-(x0: T).(\lambda (H9: (ty3 g c t x0)).(let TMP_58 \def (\lambda (c2: C).(let 
-TMP_56 \def (Bind b) in (let TMP_57 \def (CHead c TMP_56 t) in (wf3 g TMP_57 
-c2)))) in (let TMP_60 \def (\lambda (c2: C).(let TMP_59 \def (S n) in (getl 
-TMP_59 c2 d2))) in (let TMP_61 \def (Bind b) in (let TMP_62 \def (CHead x 
-TMP_61 t) in (let TMP_63 \def (wf3_bind g c x H5 t x0 H9 b) in (let TMP_64 
-\def (Bind b) in (let TMP_65 \def (getl_head TMP_64 n x d2 H6 t) in 
-(ex_intro2 C TMP_58 TMP_60 TMP_62 TMP_63 TMP_65)))))))))) in (ex_ind T TMP_49 
-TMP_55 TMP_66 H8))))))) in (let TMP_80 \def (\lambda (H8: ((\forall (t2: 
-T).((ty3 g c t t2) \to False)))).(let TMP_70 \def (\lambda (c2: C).(let 
-TMP_68 \def (Bind b) in (let TMP_69 \def (CHead c TMP_68 t) in (wf3 g TMP_69 
-c2)))) in (let TMP_72 \def (\lambda (c2: C).(let TMP_71 \def (S n) in (getl 
-TMP_71 c2 d2))) in (let TMP_73 \def (Bind Void) in (let TMP_74 \def (TSort O) 
-in (let TMP_75 \def (CHead x TMP_73 TMP_74) in (let TMP_76 \def (wf3_void g c 
-x H5 t H8 b) in (let TMP_77 \def (Bind Void) in (let TMP_78 \def (TSort O) in 
-(let TMP_79 \def (getl_head TMP_77 n x d2 H6 TMP_78) in (ex_intro2 C TMP_70 
-TMP_72 TMP_75 TMP_76 TMP_79))))))))))) in (or_ind TMP_41 TMP_42 TMP_48 TMP_67 
-TMP_80 H7)))))))))))))) in (ex2_ind C TMP_32 TMP_33 TMP_39 TMP_81 
-H4))))))))))) in (let TMP_99 \def (\lambda (f: F).(\lambda (H3: (getl (r 
-(Flat f) n) c d1)).(let H_x \def (H0 d1 H3 g d2 H2) in (let H4 \def H_x in 
-(let TMP_83 \def (\lambda (c2: C).(wf3 g c c2)) in (let TMP_85 \def (\lambda 
-(c2: C).(let TMP_84 \def (S n) in (getl TMP_84 c2 d2))) in (let TMP_88 \def 
-(\lambda (c2: C).(let TMP_86 \def (Flat f) in (let TMP_87 \def (CHead c 
-TMP_86 t) in (wf3 g TMP_87 c2)))) in (let TMP_90 \def (\lambda (c2: C).(let 
-TMP_89 \def (S n) in (getl TMP_89 c2 d2))) in (let TMP_91 \def (ex2 C TMP_88 
-TMP_90) in (let TMP_98 \def (\lambda (x: C).(\lambda (H5: (wf3 g c 
-x)).(\lambda (H6: (getl (S n) x d2)).(let TMP_94 \def (\lambda (c2: C).(let 
-TMP_92 \def (Flat f) in (let TMP_93 \def (CHead c TMP_92 t) in (wf3 g TMP_93 
-c2)))) in (let TMP_96 \def (\lambda (c2: C).(let TMP_95 \def (S n) in (getl 
-TMP_95 c2 d2))) in (let TMP_97 \def (wf3_flat g c x H5 t f) in (ex_intro2 C 
-TMP_94 TMP_96 x TMP_97 H6))))))) in (ex2_ind C TMP_83 TMP_85 TMP_91 TMP_98 
-H4))))))))))) in (let TMP_100 \def (getl_gen_S k c d1 t n H1) in (K_ind 
-TMP_31 TMP_82 TMP_99 k TMP_100)))))))))))))) in (C_ind TMP_19 TMP_26 TMP_101 
-c1))))))) in (nat_ind TMP_3 TMP_15 TMP_102 i)))).
+H2) in (let H4 \def H_x in (ex2_ind C (\lambda (c2: C).(wf3 g c c2)) (\lambda 
+(c2: C).(getl n c2 d2)) (ex2 C (\lambda (c2: C).(wf3 g (CHead c (Bind b) t) 
+c2)) (\lambda (c2: C).(getl (S n) c2 d2))) (\lambda (x: C).(\lambda (H5: (wf3 
+g c x)).(\lambda (H6: (getl n x d2)).(let H_x0 \def (ty3_inference g c t) in 
+(let H7 \def H_x0 in (or_ind (ex T (\lambda (t2: T).(ty3 g c t t2))) (\forall 
+(t2: T).((ty3 g c t t2) \to False)) (ex2 C (\lambda (c2: C).(wf3 g (CHead c 
+(Bind b) t) c2)) (\lambda (c2: C).(getl (S n) c2 d2))) (\lambda (H8: (ex T 
+(\lambda (t2: T).(ty3 g c t t2)))).(ex_ind T (\lambda (t2: T).(ty3 g c t t2)) 
+(ex2 C (\lambda (c2: C).(wf3 g (CHead c (Bind b) t) c2)) (\lambda (c2: 
+C).(getl (S n) c2 d2))) (\lambda (x0: T).(\lambda (H9: (ty3 g c t 
+x0)).(ex_intro2 C (\lambda (c2: C).(wf3 g (CHead c (Bind b) t) c2)) (\lambda 
+(c2: C).(getl (S n) c2 d2)) (CHead x (Bind b) t) (wf3_bind g c x H5 t x0 H9 
+b) (getl_head (Bind b) n x d2 H6 t)))) H8)) (\lambda (H8: ((\forall (t2: 
+T).((ty3 g c t t2) \to False)))).(ex_intro2 C (\lambda (c2: C).(wf3 g (CHead 
+c (Bind b) t) c2)) (\lambda (c2: C).(getl (S n) c2 d2)) (CHead x (Bind Void) 
+(TSort O)) (wf3_void g c x H5 t H8 b) (getl_head (Bind Void) n x d2 H6 (TSort 
+O)))) H7)))))) H4))))) (\lambda (f: F).(\lambda (H3: (getl (r (Flat f) n) c 
+d1)).(let H_x \def (H0 d1 H3 g d2 H2) in (let H4 \def H_x in (ex2_ind C 
+(\lambda (c2: C).(wf3 g c c2)) (\lambda (c2: C).(getl (S n) c2 d2)) (ex2 C 
+(\lambda (c2: C).(wf3 g (CHead c (Flat f) t) c2)) (\lambda (c2: C).(getl (S 
+n) c2 d2))) (\lambda (x: C).(\lambda (H5: (wf3 g c x)).(\lambda (H6: (getl (S 
+n) x d2)).(ex_intro2 C (\lambda (c2: C).(wf3 g (CHead c (Flat f) t) c2)) 
+(\lambda (c2: C).(getl (S n) c2 d2)) x (wf3_flat g c x H5 t f) H6)))) H4))))) 
+k (getl_gen_S k c d1 t n H1))))))))))) c1)))) i).
 
index 4aabeb81eb53face819fb837ec20af1ca5922ebd..9d7b3374a15b48a63afc152b235e7d8ec1d53ad5 100644 (file)
@@ -21,214 +21,123 @@ include "basic_1/app/defs.ma".
 theorem wf3_total:
  \forall (g: G).(\forall (c1: C).(ex C (\lambda (c2: C).(wf3 g c1 c2))))
 \def
- \lambda (g: G).(\lambda (c1: C).(let TMP_2 \def (\lambda (c: C).(let TMP_1 
-\def (\lambda (c2: C).(wf3 g c c2)) in (ex C TMP_1))) in (let TMP_7 \def 
-(\lambda (n: nat).(let TMP_4 \def (\lambda (c2: C).(let TMP_3 \def (CSort n) 
-in (wf3 g TMP_3 c2))) in (let TMP_5 \def (CSort n) in (let TMP_6 \def 
-(wf3_sort g n) in (ex_intro C TMP_4 TMP_5 TMP_6))))) in (let TMP_50 \def 
-(\lambda (c: C).(\lambda (H: (ex C (\lambda (c2: C).(wf3 g c c2)))).(\lambda 
-(k: K).(\lambda (t: T).(let H0 \def H in (let TMP_8 \def (\lambda (c2: 
-C).(wf3 g c c2)) in (let TMP_10 \def (\lambda (c2: C).(let TMP_9 \def (CHead 
-c k t) in (wf3 g TMP_9 c2))) in (let TMP_11 \def (ex C TMP_10) in (let TMP_49 
-\def (\lambda (x: C).(\lambda (H1: (wf3 g c x)).(let TMP_14 \def (\lambda 
-(k0: K).(let TMP_13 \def (\lambda (c2: C).(let TMP_12 \def (CHead c k0 t) in 
-(wf3 g TMP_12 c2))) in (ex C TMP_13))) in (let TMP_43 \def (\lambda (b: 
-B).(let H_x \def (ty3_inference g c t) in (let H2 \def H_x in (let TMP_15 
-\def (\lambda (t2: T).(ty3 g c t t2)) in (let TMP_16 \def (ex T TMP_15) in 
-(let TMP_17 \def (\forall (t2: T).((ty3 g c t t2) \to False)) in (let TMP_20 
-\def (\lambda (c2: C).(let TMP_18 \def (Bind b) in (let TMP_19 \def (CHead c 
-TMP_18 t) in (wf3 g TMP_19 c2)))) in (let TMP_21 \def (ex C TMP_20) in (let 
-TMP_34 \def (\lambda (H3: (ex T (\lambda (t2: T).(ty3 g c t t2)))).(let 
-TMP_22 \def (\lambda (t2: T).(ty3 g c t t2)) in (let TMP_25 \def (\lambda 
-(c2: C).(let TMP_23 \def (Bind b) in (let TMP_24 \def (CHead c TMP_23 t) in 
-(wf3 g TMP_24 c2)))) in (let TMP_26 \def (ex C TMP_25) in (let TMP_33 \def 
-(\lambda (x0: T).(\lambda (H4: (ty3 g c t x0)).(let TMP_29 \def (\lambda (c2: 
-C).(let TMP_27 \def (Bind b) in (let TMP_28 \def (CHead c TMP_27 t) in (wf3 g 
-TMP_28 c2)))) in (let TMP_30 \def (Bind b) in (let TMP_31 \def (CHead x 
-TMP_30 t) in (let TMP_32 \def (wf3_bind g c x H1 t x0 H4 b) in (ex_intro C 
-TMP_29 TMP_31 TMP_32))))))) in (ex_ind T TMP_22 TMP_26 TMP_33 H3)))))) in 
-(let TMP_42 \def (\lambda (H3: ((\forall (t2: T).((ty3 g c t t2) \to 
-False)))).(let TMP_37 \def (\lambda (c2: C).(let TMP_35 \def (Bind b) in (let 
-TMP_36 \def (CHead c TMP_35 t) in (wf3 g TMP_36 c2)))) in (let TMP_38 \def 
-(Bind Void) in (let TMP_39 \def (TSort O) in (let TMP_40 \def (CHead x TMP_38 
-TMP_39) in (let TMP_41 \def (wf3_void g c x H1 t H3 b) in (ex_intro C TMP_37 
-TMP_40 TMP_41))))))) in (or_ind TMP_16 TMP_17 TMP_21 TMP_34 TMP_42 
-H2))))))))))) in (let TMP_48 \def (\lambda (f: F).(let TMP_46 \def (\lambda 
-(c2: C).(let TMP_44 \def (Flat f) in (let TMP_45 \def (CHead c TMP_44 t) in 
-(wf3 g TMP_45 c2)))) in (let TMP_47 \def (wf3_flat g c x H1 t f) in (ex_intro 
-C TMP_46 x TMP_47)))) in (K_ind TMP_14 TMP_43 TMP_48 k)))))) in (ex_ind C 
-TMP_8 TMP_11 TMP_49 H0)))))))))) in (C_ind TMP_2 TMP_7 TMP_50 c1))))).
+ \lambda (g: G).(\lambda (c1: C).(C_ind (\lambda (c: C).(ex C (\lambda (c2: 
+C).(wf3 g c c2)))) (\lambda (n: nat).(ex_intro C (\lambda (c2: C).(wf3 g 
+(CSort n) c2)) (CSort n) (wf3_sort g n))) (\lambda (c: C).(\lambda (H: (ex C 
+(\lambda (c2: C).(wf3 g c c2)))).(\lambda (k: K).(\lambda (t: T).(let H0 \def 
+H in (ex_ind C (\lambda (c2: C).(wf3 g c c2)) (ex C (\lambda (c2: C).(wf3 g 
+(CHead c k t) c2))) (\lambda (x: C).(\lambda (H1: (wf3 g c x)).(K_ind 
+(\lambda (k0: K).(ex C (\lambda (c2: C).(wf3 g (CHead c k0 t) c2)))) (\lambda 
+(b: B).(let H_x \def (ty3_inference g c t) in (let H2 \def H_x in (or_ind (ex 
+T (\lambda (t2: T).(ty3 g c t t2))) (\forall (t2: T).((ty3 g c t t2) \to 
+False)) (ex C (\lambda (c2: C).(wf3 g (CHead c (Bind b) t) c2))) (\lambda 
+(H3: (ex T (\lambda (t2: T).(ty3 g c t t2)))).(ex_ind T (\lambda (t2: T).(ty3 
+g c t t2)) (ex C (\lambda (c2: C).(wf3 g (CHead c (Bind b) t) c2))) (\lambda 
+(x0: T).(\lambda (H4: (ty3 g c t x0)).(ex_intro C (\lambda (c2: C).(wf3 g 
+(CHead c (Bind b) t) c2)) (CHead x (Bind b) t) (wf3_bind g c x H1 t x0 H4 
+b)))) H3)) (\lambda (H3: ((\forall (t2: T).((ty3 g c t t2) \to 
+False)))).(ex_intro C (\lambda (c2: C).(wf3 g (CHead c (Bind b) t) c2)) 
+(CHead x (Bind Void) (TSort O)) (wf3_void g c x H1 t H3 b))) H2)))) (\lambda 
+(f: F).(ex_intro C (\lambda (c2: C).(wf3 g (CHead c (Flat f) t) c2)) x 
+(wf3_flat g c x H1 t f))) k))) H0)))))) c1)).
 
 theorem ty3_shift1:
  \forall (g: G).(\forall (c: C).((wf3 g c c) \to (\forall (t1: T).(\forall 
 (t2: T).((ty3 g c t1 t2) \to (ty3 g (CSort (cbk c)) (app1 c t1) (app1 c 
 t2)))))))
 \def
- \lambda (g: G).(\lambda (c: C).(\lambda (H: (wf3 g c c)).(let TMP_1 \def 
-(\lambda (c0: C).(wf3 g c0 c)) in (let TMP_6 \def (\lambda (c0: C).(\forall 
-(t1: T).(\forall (t2: T).((ty3 g c0 t1 t2) \to (let TMP_2 \def (cbk c0) in 
-(let TMP_3 \def (CSort TMP_2) in (let TMP_4 \def (app1 c0 t1) in (let TMP_5 
-\def (app1 c0 t2) in (ty3 g TMP_3 TMP_4 TMP_5))))))))) in (let TMP_180 \def 
-(\lambda (y: C).(\lambda (H0: (wf3 g y c)).(let TMP_11 \def (\lambda (c0: 
+ \lambda (g: G).(\lambda (c: C).(\lambda (H: (wf3 g c c)).(insert_eq C c 
+(\lambda (c0: C).(wf3 g c0 c)) (\lambda (c0: C).(\forall (t1: T).(\forall 
+(t2: T).((ty3 g c0 t1 t2) \to (ty3 g (CSort (cbk c0)) (app1 c0 t1) (app1 c0 
+t2)))))) (\lambda (y: C).(\lambda (H0: (wf3 g y c)).(wf3_ind g (\lambda (c0: 
 C).(\lambda (c1: C).((eq C c0 c1) \to (\forall (t1: T).(\forall (t2: T).((ty3 
-g c0 t1 t2) \to (let TMP_7 \def (cbk c0) in (let TMP_8 \def (CSort TMP_7) in 
-(let TMP_9 \def (app1 c0 t1) in (let TMP_10 \def (app1 c0 t2) in (ty3 g TMP_8 
-TMP_9 TMP_10))))))))))) in (let TMP_12 \def (\lambda (m: nat).(\lambda (_: 
-(eq C (CSort m) (CSort m))).(\lambda (t1: T).(\lambda (t2: T).(\lambda (H2: 
-(ty3 g (CSort m) t1 t2)).H2))))) in (let TMP_46 \def (\lambda (c1: 
-C).(\lambda (c2: C).(\lambda (H1: (wf3 g c1 c2)).(\lambda (H2: (((eq C c1 c2) 
-\to (\forall (t1: T).(\forall (t2: T).((ty3 g c1 t1 t2) \to (ty3 g (CSort 
-(cbk c1)) (app1 c1 t1) (app1 c1 t2)))))))).(\lambda (u: T).(\lambda (t: 
-T).(\lambda (H3: (ty3 g c1 u t)).(\lambda (b: B).(\lambda (H4: (eq C (CHead 
-c1 (Bind b) u) (CHead c2 (Bind b) u))).(\lambda (t1: T).(\lambda (t2: 
-T).(\lambda (H5: (ty3 g (CHead c1 (Bind b) u) t1 t2)).(let TMP_13 \def 
-(\lambda (e: C).(match e with [(CSort _) \Rightarrow c1 | (CHead c0 _ _) 
-\Rightarrow c0])) in (let TMP_14 \def (Bind b) in (let TMP_15 \def (CHead c1 
-TMP_14 u) in (let TMP_16 \def (Bind b) in (let TMP_17 \def (CHead c2 TMP_16 
-u) in (let H6 \def (f_equal C C TMP_13 TMP_15 TMP_17 H4) in (let TMP_22 \def 
-(\lambda (c0: C).((eq C c1 c0) \to (\forall (t3: T).(\forall (t4: T).((ty3 g 
-c1 t3 t4) \to (let TMP_18 \def (cbk c1) in (let TMP_19 \def (CSort TMP_18) in 
-(let TMP_20 \def (app1 c1 t3) in (let TMP_21 \def (app1 c1 t4) in (ty3 g 
-TMP_19 TMP_20 TMP_21)))))))))) in (let H7 \def (eq_ind_r C c2 TMP_22 H2 c1 
-H6) in (let TMP_23 \def (\lambda (c0: C).(wf3 g c1 c0)) in (let H8 \def 
-(eq_ind_r C c2 TMP_23 H1 c1 H6) in (let TMP_26 \def (\lambda (t0: T).(let 
-TMP_24 \def (Bind b) in (let TMP_25 \def (CHead c1 TMP_24 u) in (ty3 g TMP_25 
-t2 t0)))) in (let TMP_27 \def (cbk c1) in (let TMP_28 \def (CSort TMP_27) in 
-(let TMP_29 \def (Bind b) in (let TMP_30 \def (THead TMP_29 u t1) in (let 
-TMP_31 \def (app1 c1 TMP_30) in (let TMP_32 \def (Bind b) in (let TMP_33 \def 
-(THead TMP_32 u t2) in (let TMP_34 \def (app1 c1 TMP_33) in (let TMP_35 \def 
-(ty3 g TMP_28 TMP_31 TMP_34) in (let TMP_42 \def (\lambda (x: T).(\lambda (_: 
-(ty3 g (CHead c1 (Bind b) u) t2 x)).(let TMP_36 \def (refl_equal C c1) in 
-(let TMP_37 \def (Bind b) in (let TMP_38 \def (THead TMP_37 u t1) in (let 
-TMP_39 \def (Bind b) in (let TMP_40 \def (THead TMP_39 u t2) in (let TMP_41 
-\def (ty3_bind g c1 u t H3 b t1 t2 H5) in (H7 TMP_36 TMP_38 TMP_40 
-TMP_41))))))))) in (let TMP_43 \def (Bind b) in (let TMP_44 \def (CHead c1 
-TMP_43 u) in (let TMP_45 \def (ty3_correct g TMP_44 t1 t2 H5) in (ex_ind T 
-TMP_26 TMP_35 TMP_42 TMP_45))))))))))))))))))))))))))))))))))))) in (let 
-TMP_139 \def (\lambda (c1: C).(\lambda (c2: C).(\lambda (H1: (wf3 g c1 
-c2)).(\lambda (H2: (((eq C c1 c2) \to (\forall (t1: T).(\forall (t2: T).((ty3 
-g c1 t1 t2) \to (ty3 g (CSort (cbk c1)) (app1 c1 t1) (app1 c1 
-t2)))))))).(\lambda (u: T).(\lambda (H3: ((\forall (t: T).((ty3 g c1 u t) \to 
-False)))).(\lambda (b: B).(\lambda (H4: (eq C (CHead c1 (Bind b) u) (CHead c2 
-(Bind Void) (TSort O)))).(\lambda (t1: T).(\lambda (t2: T).(\lambda (H5: (ty3 
-g (CHead c1 (Bind b) u) t1 t2)).(let TMP_47 \def (\lambda (e: C).(match e 
-with [(CSort _) \Rightarrow c1 | (CHead c0 _ _) \Rightarrow c0])) in (let 
-TMP_48 \def (Bind b) in (let TMP_49 \def (CHead c1 TMP_48 u) in (let TMP_50 
-\def (Bind Void) in (let TMP_51 \def (TSort O) in (let TMP_52 \def (CHead c2 
-TMP_50 TMP_51) in (let H6 \def (f_equal C C TMP_47 TMP_49 TMP_52 H4) in (let 
-TMP_53 \def (\lambda (e: C).(match e with [(CSort _) \Rightarrow b | (CHead _ 
-k _) \Rightarrow (match k with [(Bind b0) \Rightarrow b0 | (Flat _) 
-\Rightarrow b])])) in (let TMP_54 \def (Bind b) in (let TMP_55 \def (CHead c1 
-TMP_54 u) in (let TMP_56 \def (Bind Void) in (let TMP_57 \def (TSort O) in 
-(let TMP_58 \def (CHead c2 TMP_56 TMP_57) in (let H7 \def (f_equal C B TMP_53 
-TMP_55 TMP_58 H4) in (let TMP_59 \def (\lambda (e: C).(match e with [(CSort 
-_) \Rightarrow u | (CHead _ _ t) \Rightarrow t])) in (let TMP_60 \def (Bind 
-b) in (let TMP_61 \def (CHead c1 TMP_60 u) in (let TMP_62 \def (Bind Void) in 
-(let TMP_63 \def (TSort O) in (let TMP_64 \def (CHead c2 TMP_62 TMP_63) in 
-(let H8 \def (f_equal C T TMP_59 TMP_61 TMP_64 H4) in (let TMP_137 \def 
-(\lambda (H9: (eq B b Void)).(\lambda (H10: (eq C c1 c2)).(let TMP_67 \def 
-(\lambda (b0: B).(let TMP_65 \def (Bind b0) in (let TMP_66 \def (CHead c1 
-TMP_65 u) in (ty3 g TMP_66 t1 t2)))) in (let H11 \def (eq_ind B b TMP_67 H5 
-Void H9) in (let TMP_78 \def (\lambda (b0: B).(let TMP_68 \def (Bind b0) in 
-(let TMP_69 \def (CHead c1 TMP_68 u) in (let TMP_70 \def (cbk TMP_69) in (let 
-TMP_71 \def (CSort TMP_70) in (let TMP_72 \def (Bind b0) in (let TMP_73 \def 
-(CHead c1 TMP_72 u) in (let TMP_74 \def (app1 TMP_73 t1) in (let TMP_75 \def 
-(Bind b0) in (let TMP_76 \def (CHead c1 TMP_75 u) in (let TMP_77 \def (app1 
-TMP_76 t2) in (ty3 g TMP_71 TMP_74 TMP_77)))))))))))) in (let TMP_81 \def 
-(\lambda (t: T).(let TMP_79 \def (Bind Void) in (let TMP_80 \def (CHead c1 
-TMP_79 t) in (ty3 g TMP_80 t1 t2)))) in (let TMP_82 \def (TSort O) in (let 
-H12 \def (eq_ind T u TMP_81 H11 TMP_82 H8) in (let TMP_83 \def (\lambda (t: 
-T).(\forall (t0: T).((ty3 g c1 t t0) \to False))) in (let TMP_84 \def (TSort 
-O) in (let H13 \def (eq_ind T u TMP_83 H3 TMP_84 H8) in (let TMP_85 \def 
-(TSort O) in (let TMP_96 \def (\lambda (t: T).(let TMP_86 \def (Bind Void) in 
-(let TMP_87 \def (CHead c1 TMP_86 t) in (let TMP_88 \def (cbk TMP_87) in (let 
-TMP_89 \def (CSort TMP_88) in (let TMP_90 \def (Bind Void) in (let TMP_91 
-\def (CHead c1 TMP_90 t) in (let TMP_92 \def (app1 TMP_91 t1) in (let TMP_93 
-\def (Bind Void) in (let TMP_94 \def (CHead c1 TMP_93 t) in (let TMP_95 \def 
-(app1 TMP_94 t2) in (ty3 g TMP_89 TMP_92 TMP_95)))))))))))) in (let TMP_101 
-\def (\lambda (c0: C).((eq C c1 c0) \to (\forall (t3: T).(\forall (t4: 
-T).((ty3 g c1 t3 t4) \to (let TMP_97 \def (cbk c1) in (let TMP_98 \def (CSort 
-TMP_97) in (let TMP_99 \def (app1 c1 t3) in (let TMP_100 \def (app1 c1 t4) in 
-(ty3 g TMP_98 TMP_99 TMP_100)))))))))) in (let H14 \def (eq_ind_r C c2 
-TMP_101 H2 c1 H10) in (let TMP_102 \def (\lambda (c0: C).(wf3 g c1 c0)) in 
-(let H15 \def (eq_ind_r C c2 TMP_102 H1 c1 H10) in (let TMP_106 \def (\lambda 
-(t: T).(let TMP_103 \def (Bind Void) in (let TMP_104 \def (TSort O) in (let 
-TMP_105 \def (CHead c1 TMP_103 TMP_104) in (ty3 g TMP_105 t2 t))))) in (let 
-TMP_107 \def (cbk c1) in (let TMP_108 \def (CSort TMP_107) in (let TMP_109 
-\def (Bind Void) in (let TMP_110 \def (TSort O) in (let TMP_111 \def (THead 
-TMP_109 TMP_110 t1) in (let TMP_112 \def (app1 c1 TMP_111) in (let TMP_113 
-\def (Bind Void) in (let TMP_114 \def (TSort O) in (let TMP_115 \def (THead 
-TMP_113 TMP_114 t2) in (let TMP_116 \def (app1 c1 TMP_115) in (let TMP_117 
-\def (ty3 g TMP_108 TMP_112 TMP_116) in (let TMP_130 \def (\lambda (x: 
-T).(\lambda (_: (ty3 g (CHead c1 (Bind Void) (TSort O)) t2 x)).(let TMP_118 
-\def (refl_equal C c1) in (let TMP_119 \def (Bind Void) in (let TMP_120 \def 
-(TSort O) in (let TMP_121 \def (THead TMP_119 TMP_120 t1) in (let TMP_122 
-\def (Bind Void) in (let TMP_123 \def (TSort O) in (let TMP_124 \def (THead 
-TMP_122 TMP_123 t2) in (let TMP_125 \def (TSort O) in (let TMP_126 \def (next 
-g O) in (let TMP_127 \def (TSort TMP_126) in (let TMP_128 \def (ty3_sort g c1 
-O) in (let TMP_129 \def (ty3_bind g c1 TMP_125 TMP_127 TMP_128 Void t1 t2 
-H12) in (H14 TMP_118 TMP_121 TMP_124 TMP_129))))))))))))))) in (let TMP_131 
-\def (Bind Void) in (let TMP_132 \def (TSort O) in (let TMP_133 \def (CHead 
-c1 TMP_131 TMP_132) in (let TMP_134 \def (ty3_correct g TMP_133 t1 t2 H12) in 
-(let TMP_135 \def (ex_ind T TMP_106 TMP_117 TMP_130 TMP_134) in (let TMP_136 
-\def (eq_ind_r T TMP_85 TMP_96 TMP_135 u H8) in (eq_ind_r B Void TMP_78 
-TMP_136 b H9))))))))))))))))))))))))))))))))))))) in (let TMP_138 \def 
-(TMP_137 H7) in (TMP_138 H6))))))))))))))))))))))))))))))))))) in (let 
-TMP_179 \def (\lambda (c1: C).(\lambda (c2: C).(\lambda (H1: (wf3 g c1 
-c2)).(\lambda (H2: (((eq C c1 c2) \to (\forall (t1: T).(\forall (t2: T).((ty3 
-g c1 t1 t2) \to (ty3 g (CSort (cbk c1)) (app1 c1 t1) (app1 c1 
+g c0 t1 t2) \to (ty3 g (CSort (cbk c0)) (app1 c0 t1) (app1 c0 t2)))))))) 
+(\lambda (m: nat).(\lambda (_: (eq C (CSort m) (CSort m))).(\lambda (t1: 
+T).(\lambda (t2: T).(\lambda (H2: (ty3 g (CSort m) t1 t2)).H2))))) (\lambda 
+(c1: C).(\lambda (c2: C).(\lambda (H1: (wf3 g c1 c2)).(\lambda (H2: (((eq C 
+c1 c2) \to (\forall (t1: T).(\forall (t2: T).((ty3 g c1 t1 t2) \to (ty3 g 
+(CSort (cbk c1)) (app1 c1 t1) (app1 c1 t2)))))))).(\lambda (u: T).(\lambda 
+(t: T).(\lambda (H3: (ty3 g c1 u t)).(\lambda (b: B).(\lambda (H4: (eq C 
+(CHead c1 (Bind b) u) (CHead c2 (Bind b) u))).(\lambda (t1: T).(\lambda (t2: 
+T).(\lambda (H5: (ty3 g (CHead c1 (Bind b) u) t1 t2)).(let H6 \def (f_equal C 
+C (\lambda (e: C).(match e with [(CSort _) \Rightarrow c1 | (CHead c0 _ _) 
+\Rightarrow c0])) (CHead c1 (Bind b) u) (CHead c2 (Bind b) u) H4) in (let H7 
+\def (eq_ind_r C c2 (\lambda (c0: C).((eq C c1 c0) \to (\forall (t3: 
+T).(\forall (t4: T).((ty3 g c1 t3 t4) \to (ty3 g (CSort (cbk c1)) (app1 c1 
+t3) (app1 c1 t4))))))) H2 c1 H6) in (let H8 \def (eq_ind_r C c2 (\lambda (c0: 
+C).(wf3 g c1 c0)) H1 c1 H6) in (ex_ind T (\lambda (t0: T).(ty3 g (CHead c1 
+(Bind b) u) t2 t0)) (ty3 g (CSort (cbk c1)) (app1 c1 (THead (Bind b) u t1)) 
+(app1 c1 (THead (Bind b) u t2))) (\lambda (x: T).(\lambda (_: (ty3 g (CHead 
+c1 (Bind b) u) t2 x)).(H7 (refl_equal C c1) (THead (Bind b) u t1) (THead 
+(Bind b) u t2) (ty3_bind g c1 u t H3 b t1 t2 H5)))) (ty3_correct g (CHead c1 
+(Bind b) u) t1 t2 H5))))))))))))))))) (\lambda (c1: C).(\lambda (c2: 
+C).(\lambda (H1: (wf3 g c1 c2)).(\lambda (H2: (((eq C c1 c2) \to (\forall 
+(t1: T).(\forall (t2: T).((ty3 g c1 t1 t2) \to (ty3 g (CSort (cbk c1)) (app1 
+c1 t1) (app1 c1 t2)))))))).(\lambda (u: T).(\lambda (H3: ((\forall (t: 
+T).((ty3 g c1 u t) \to False)))).(\lambda (b: B).(\lambda (H4: (eq C (CHead 
+c1 (Bind b) u) (CHead c2 (Bind Void) (TSort O)))).(\lambda (t1: T).(\lambda 
+(t2: T).(\lambda (H5: (ty3 g (CHead c1 (Bind b) u) t1 t2)).(let H6 \def 
+(f_equal C C (\lambda (e: C).(match e with [(CSort _) \Rightarrow c1 | (CHead 
+c0 _ _) \Rightarrow c0])) (CHead c1 (Bind b) u) (CHead c2 (Bind Void) (TSort 
+O)) H4) in ((let H7 \def (f_equal C B (\lambda (e: C).(match e with [(CSort 
+_) \Rightarrow b | (CHead _ k _) \Rightarrow (match k with [(Bind b0) 
+\Rightarrow b0 | (Flat _) \Rightarrow b])])) (CHead c1 (Bind b) u) (CHead c2 
+(Bind Void) (TSort O)) H4) in ((let H8 \def (f_equal C T (\lambda (e: 
+C).(match e with [(CSort _) \Rightarrow u | (CHead _ _ t) \Rightarrow t])) 
+(CHead c1 (Bind b) u) (CHead c2 (Bind Void) (TSort O)) H4) in (\lambda (H9: 
+(eq B b Void)).(\lambda (H10: (eq C c1 c2)).(let H11 \def (eq_ind B b 
+(\lambda (b0: B).(ty3 g (CHead c1 (Bind b0) u) t1 t2)) H5 Void H9) in 
+(eq_ind_r B Void (\lambda (b0: B).(ty3 g (CSort (cbk (CHead c1 (Bind b0) u))) 
+(app1 (CHead c1 (Bind b0) u) t1) (app1 (CHead c1 (Bind b0) u) t2))) (let H12 
+\def (eq_ind T u (\lambda (t: T).(ty3 g (CHead c1 (Bind Void) t) t1 t2)) H11 
+(TSort O) H8) in (let H13 \def (eq_ind T u (\lambda (t: T).(\forall (t0: 
+T).((ty3 g c1 t t0) \to False))) H3 (TSort O) H8) in (eq_ind_r T (TSort O) 
+(\lambda (t: T).(ty3 g (CSort (cbk (CHead c1 (Bind Void) t))) (app1 (CHead c1 
+(Bind Void) t) t1) (app1 (CHead c1 (Bind Void) t) t2))) (let H14 \def 
+(eq_ind_r C c2 (\lambda (c0: C).((eq C c1 c0) \to (\forall (t3: T).(\forall 
+(t4: T).((ty3 g c1 t3 t4) \to (ty3 g (CSort (cbk c1)) (app1 c1 t3) (app1 c1 
+t4))))))) H2 c1 H10) in (let H15 \def (eq_ind_r C c2 (\lambda (c0: C).(wf3 g 
+c1 c0)) H1 c1 H10) in (ex_ind T (\lambda (t: T).(ty3 g (CHead c1 (Bind Void) 
+(TSort O)) t2 t)) (ty3 g (CSort (cbk c1)) (app1 c1 (THead (Bind Void) (TSort 
+O) t1)) (app1 c1 (THead (Bind Void) (TSort O) t2))) (\lambda (x: T).(\lambda 
+(_: (ty3 g (CHead c1 (Bind Void) (TSort O)) t2 x)).(H14 (refl_equal C c1) 
+(THead (Bind Void) (TSort O) t1) (THead (Bind Void) (TSort O) t2) (ty3_bind g 
+c1 (TSort O) (TSort (next g O)) (ty3_sort g c1 O) Void t1 t2 H12)))) 
+(ty3_correct g (CHead c1 (Bind Void) (TSort O)) t1 t2 H12)))) u H8))) b 
+H9))))) H7)) H6))))))))))))) (\lambda (c1: C).(\lambda (c2: C).(\lambda (H1: 
+(wf3 g c1 c2)).(\lambda (H2: (((eq C c1 c2) \to (\forall (t1: T).(\forall 
+(t2: T).((ty3 g c1 t1 t2) \to (ty3 g (CSort (cbk c1)) (app1 c1 t1) (app1 c1 
 t2)))))))).(\lambda (u: T).(\lambda (f: F).(\lambda (H3: (eq C (CHead c1 
 (Flat f) u) c2)).(\lambda (t1: T).(\lambda (t2: T).(\lambda (_: (ty3 g (CHead 
-c1 (Flat f) u) t1 t2)).(let TMP_140 \def (\lambda (e: C).e) in (let TMP_141 
-\def (Flat f) in (let TMP_142 \def (CHead c1 TMP_141 u) in (let H5 \def 
-(f_equal C C TMP_140 TMP_142 c2 H3) in (let TMP_147 \def (\lambda (c0: 
-C).((eq C c1 c0) \to (\forall (t3: T).(\forall (t4: T).((ty3 g c1 t3 t4) \to 
-(let TMP_143 \def (cbk c1) in (let TMP_144 \def (CSort TMP_143) in (let 
-TMP_145 \def (app1 c1 t3) in (let TMP_146 \def (app1 c1 t4) in (ty3 g TMP_144 
-TMP_145 TMP_146)))))))))) in (let TMP_148 \def (Flat f) in (let TMP_149 \def 
-(CHead c1 TMP_148 u) in (let H6 \def (eq_ind_r C c2 TMP_147 H2 TMP_149 H5) in 
-(let TMP_150 \def (\lambda (c0: C).(wf3 g c1 c0)) in (let TMP_151 \def (Flat 
-f) in (let TMP_152 \def (CHead c1 TMP_151 u) in (let H7 \def (eq_ind_r C c2 
-TMP_150 H1 TMP_152 H5) in (let TMP_153 \def (Flat f) in (let H_x \def 
-(wf3_gen_head2 g c1 c1 u TMP_153 H7) in (let H8 \def H_x in (let TMP_156 \def 
-(\lambda (b: B).(let TMP_154 \def (Flat f) in (let TMP_155 \def (Bind b) in 
-(eq K TMP_154 TMP_155)))) in (let TMP_157 \def (cbk c1) in (let TMP_158 \def 
-(CSort TMP_157) in (let TMP_159 \def (Flat f) in (let TMP_160 \def (THead 
-TMP_159 u t1) in (let TMP_161 \def (app1 c1 TMP_160) in (let TMP_162 \def 
-(Flat f) in (let TMP_163 \def (THead TMP_162 u t2) in (let TMP_164 \def (app1 
-c1 TMP_163) in (let TMP_165 \def (ty3 g TMP_158 TMP_161 TMP_164) in (let 
-TMP_178 \def (\lambda (x: B).(\lambda (H9: (eq K (Flat f) (Bind x))).(let 
-TMP_166 \def (Flat f) in (let TMP_167 \def (\lambda (ee: K).(match ee with 
-[(Bind _) \Rightarrow False | (Flat _) \Rightarrow True])) in (let TMP_168 
-\def (Bind x) in (let H10 \def (eq_ind K TMP_166 TMP_167 I TMP_168 H9) in 
-(let TMP_169 \def (cbk c1) in (let TMP_170 \def (CSort TMP_169) in (let 
-TMP_171 \def (Flat f) in (let TMP_172 \def (THead TMP_171 u t1) in (let 
-TMP_173 \def (app1 c1 TMP_172) in (let TMP_174 \def (Flat f) in (let TMP_175 
-\def (THead TMP_174 u t2) in (let TMP_176 \def (app1 c1 TMP_175) in (let 
-TMP_177 \def (ty3 g TMP_170 TMP_173 TMP_176) in (False_ind TMP_177 
-H10)))))))))))))))) in (ex_ind B TMP_156 TMP_165 TMP_178 
-H8))))))))))))))))))))))))))))))))))))) in (wf3_ind g TMP_11 TMP_12 TMP_46 
-TMP_139 TMP_179 y c H0)))))))) in (insert_eq C c TMP_1 TMP_6 TMP_180 H)))))).
+c1 (Flat f) u) t1 t2)).(let H5 \def (f_equal C C (\lambda (e: C).e) (CHead c1 
+(Flat f) u) c2 H3) in (let H6 \def (eq_ind_r C c2 (\lambda (c0: C).((eq C c1 
+c0) \to (\forall (t3: T).(\forall (t4: T).((ty3 g c1 t3 t4) \to (ty3 g (CSort 
+(cbk c1)) (app1 c1 t3) (app1 c1 t4))))))) H2 (CHead c1 (Flat f) u) H5) in 
+(let H7 \def (eq_ind_r C c2 (\lambda (c0: C).(wf3 g c1 c0)) H1 (CHead c1 
+(Flat f) u) H5) in (let H_x \def (wf3_gen_head2 g c1 c1 u (Flat f) H7) in 
+(let H8 \def H_x in (ex_ind B (\lambda (b: B).(eq K (Flat f) (Bind b))) (ty3 
+g (CSort (cbk c1)) (app1 c1 (THead (Flat f) u t1)) (app1 c1 (THead (Flat f) u 
+t2))) (\lambda (x: B).(\lambda (H9: (eq K (Flat f) (Bind x))).(let H10 \def 
+(eq_ind K (Flat f) (\lambda (ee: K).(match ee with [(Bind _) \Rightarrow 
+False | (Flat _) \Rightarrow True])) I (Bind x) H9) in (False_ind (ty3 g 
+(CSort (cbk c1)) (app1 c1 (THead (Flat f) u t1)) (app1 c1 (THead (Flat f) u 
+t2))) H10)))) H8)))))))))))))))) y c H0))) H))).
 
 theorem wf3_idem:
  \forall (g: G).(\forall (c1: C).(\forall (c2: C).((wf3 g c1 c2) \to (wf3 g 
 c2 c2))))
 \def
  \lambda (g: G).(\lambda (c1: C).(\lambda (c2: C).(\lambda (H: (wf3 g c1 
-c2)).(let TMP_1 \def (\lambda (_: C).(\lambda (c0: C).(wf3 g c0 c0))) in (let 
-TMP_2 \def (\lambda (m: nat).(wf3_sort g m)) in (let TMP_4 \def (\lambda (c3: 
-C).(\lambda (c4: C).(\lambda (H0: (wf3 g c3 c4)).(\lambda (H1: (wf3 g c4 
-c4)).(\lambda (u: T).(\lambda (t: T).(\lambda (H2: (ty3 g c3 u t)).(\lambda 
-(b: B).(let TMP_3 \def (wf3_ty3_conf g c3 u t H2 c4 H0) in (wf3_bind g c4 c4 
-H1 u t TMP_3 b)))))))))) in (let TMP_9 \def (\lambda (c3: C).(\lambda (c4: 
-C).(\lambda (_: (wf3 g c3 c4)).(\lambda (H1: (wf3 g c4 c4)).(\lambda (u: 
-T).(\lambda (_: ((\forall (t: T).((ty3 g c3 u t) \to False)))).(\lambda (_: 
-B).(let TMP_5 \def (TSort O) in (let TMP_6 \def (next g O) in (let TMP_7 \def 
-(TSort TMP_6) in (let TMP_8 \def (ty3_sort g c4 O) in (wf3_bind g c4 c4 H1 
-TMP_5 TMP_7 TMP_8 Void)))))))))))) in (let TMP_10 \def (\lambda (c3: 
-C).(\lambda (c4: C).(\lambda (_: (wf3 g c3 c4)).(\lambda (H1: (wf3 g c4 
-c4)).(\lambda (_: T).(\lambda (_: F).H1)))))) in (wf3_ind g TMP_1 TMP_2 TMP_4 
-TMP_9 TMP_10 c1 c2 H))))))))).
+c2)).(wf3_ind g (\lambda (_: C).(\lambda (c0: C).(wf3 g c0 c0))) (\lambda (m: 
+nat).(wf3_sort g m)) (\lambda (c3: C).(\lambda (c4: C).(\lambda (H0: (wf3 g 
+c3 c4)).(\lambda (H1: (wf3 g c4 c4)).(\lambda (u: T).(\lambda (t: T).(\lambda 
+(H2: (ty3 g c3 u t)).(\lambda (b: B).(wf3_bind g c4 c4 H1 u t (wf3_ty3_conf g 
+c3 u t H2 c4 H0) b))))))))) (\lambda (c3: C).(\lambda (c4: C).(\lambda (_: 
+(wf3 g c3 c4)).(\lambda (H1: (wf3 g c4 c4)).(\lambda (u: T).(\lambda (_: 
+((\forall (t: T).((ty3 g c3 u t) \to False)))).(\lambda (_: B).(wf3_bind g c4 
+c4 H1 (TSort O) (TSort (next g O)) (ty3_sort g c4 O) Void)))))))) (\lambda 
+(c3: C).(\lambda (c4: C).(\lambda (_: (wf3 g c3 c4)).(\lambda (H1: (wf3 g c4 
+c4)).(\lambda (_: T).(\lambda (_: F).H1)))))) c1 c2 H)))).
 
 theorem wf3_ty3:
  \forall (g: G).(\forall (c1: C).(\forall (t: T).(\forall (u: T).((ty3 g c1 t 
@@ -236,12 +145,9 @@ u) \to (ex2 C (\lambda (c2: C).(wf3 g c1 c2)) (\lambda (c2: C).(ty3 g c2 t
 u)))))))
 \def
  \lambda (g: G).(\lambda (c1: C).(\lambda (t: T).(\lambda (u: T).(\lambda (H: 
-(ty3 g c1 t u)).(let H_x \def (wf3_total g c1) in (let H0 \def H_x in (let 
-TMP_1 \def (\lambda (c2: C).(wf3 g c1 c2)) in (let TMP_2 \def (\lambda (c2: 
-C).(wf3 g c1 c2)) in (let TMP_3 \def (\lambda (c2: C).(ty3 g c2 t u)) in (let 
-TMP_4 \def (ex2 C TMP_2 TMP_3) in (let TMP_8 \def (\lambda (x: C).(\lambda 
-(H1: (wf3 g c1 x)).(let TMP_5 \def (\lambda (c2: C).(wf3 g c1 c2)) in (let 
-TMP_6 \def (\lambda (c2: C).(ty3 g c2 t u)) in (let TMP_7 \def (wf3_ty3_conf 
-g c1 t u H x H1) in (ex_intro2 C TMP_5 TMP_6 x H1 TMP_7)))))) in (ex_ind C 
-TMP_1 TMP_4 TMP_8 H0)))))))))))).
+(ty3 g c1 t u)).(let H_x \def (wf3_total g c1) in (let H0 \def H_x in (ex_ind 
+C (\lambda (c2: C).(wf3 g c1 c2)) (ex2 C (\lambda (c2: C).(wf3 g c1 c2)) 
+(\lambda (c2: C).(ty3 g c2 t u))) (\lambda (x: C).(\lambda (H1: (wf3 g c1 
+x)).(ex_intro2 C (\lambda (c2: C).(wf3 g c1 c2)) (\lambda (c2: C).(ty3 g c2 t 
+u)) x H1 (wf3_ty3_conf g c1 t u H x H1)))) H0))))))).
 
index 70dc78087d77cd9b17871f7102cc2c0688932d36..be4d21960d552ed59a1a6c72b5e2e50964632cae 100644 (file)
@@ -22,28 +22,24 @@ t1 t2) \to (\forall (c2: C).((wf3 g c1 c2) \to (\forall (u: T).((ty3 g c1 t1
 u) \to (pr2 c2 t1 t2)))))))))
 \def
  \lambda (g: G).(\lambda (c1: C).(\lambda (t1: T).(\lambda (t2: T).(\lambda 
-(H: (pr2 c1 t1 t2)).(let TMP_1 \def (\lambda (c: C).(\lambda (t: T).(\lambda 
-(t0: T).(\forall (c2: C).((wf3 g c c2) \to (\forall (u: T).((ty3 g c t u) \to 
-(pr2 c2 t t0)))))))) in (let TMP_2 \def (\lambda (c: C).(\lambda (t3: 
-T).(\lambda (t4: T).(\lambda (H0: (pr0 t3 t4)).(\lambda (c2: C).(\lambda (_: 
-(wf3 g c c2)).(\lambda (u: T).(\lambda (_: (ty3 g c t3 u)).(pr2_free c2 t3 t4 
-H0))))))))) in (let TMP_12 \def (\lambda (c: C).(\lambda (d: C).(\lambda (u: 
-T).(\lambda (i: nat).(\lambda (H0: (getl i c (CHead d (Bind Abbr) 
-u))).(\lambda (t3: T).(\lambda (t4: T).(\lambda (H1: (pr0 t3 t4)).(\lambda 
-(t: T).(\lambda (H2: (subst0 i u t4 t)).(\lambda (c2: C).(\lambda (H3: (wf3 g 
-c c2)).(\lambda (u0: T).(\lambda (H4: (ty3 g c t3 u0)).(let H_y \def 
-(ty3_sred_pr0 t3 t4 H1 g c u0 H4) in (let H_x \def (ty3_getl_subst0 g c t4 u0 
-H_y u t i H2 Abbr d u H0) in (let H5 \def H_x in (let TMP_3 \def (\lambda (w: 
-T).(ty3 g d u w)) in (let TMP_4 \def (pr2 c2 t3 t) in (let TMP_11 \def 
-(\lambda (x: T).(\lambda (H6: (ty3 g d u x)).(let H_x0 \def (wf3_getl_conf 
-Abbr i c d u H0 g c2 H3 x H6) in (let H7 \def H_x0 in (let TMP_7 \def 
-(\lambda (d2: C).(let TMP_5 \def (Bind Abbr) in (let TMP_6 \def (CHead d2 
-TMP_5 u) in (getl i c2 TMP_6)))) in (let TMP_8 \def (\lambda (d2: C).(wf3 g d 
-d2)) in (let TMP_9 \def (pr2 c2 t3 t) in (let TMP_10 \def (\lambda (x0: 
-C).(\lambda (H8: (getl i c2 (CHead x0 (Bind Abbr) u))).(\lambda (_: (wf3 g d 
-x0)).(pr2_delta c2 x0 u i H8 t3 t4 H1 t H2)))) in (ex2_ind C TMP_7 TMP_8 
-TMP_9 TMP_10 H7))))))))) in (ex_ind T TMP_3 TMP_4 TMP_11 
-H5))))))))))))))))))))) in (pr2_ind TMP_1 TMP_2 TMP_12 c1 t1 t2 H)))))))).
+(H: (pr2 c1 t1 t2)).(pr2_ind (\lambda (c: C).(\lambda (t: T).(\lambda (t0: 
+T).(\forall (c2: C).((wf3 g c c2) \to (\forall (u: T).((ty3 g c t u) \to (pr2 
+c2 t t0)))))))) (\lambda (c: C).(\lambda (t3: T).(\lambda (t4: T).(\lambda 
+(H0: (pr0 t3 t4)).(\lambda (c2: C).(\lambda (_: (wf3 g c c2)).(\lambda (u: 
+T).(\lambda (_: (ty3 g c t3 u)).(pr2_free c2 t3 t4 H0))))))))) (\lambda (c: 
+C).(\lambda (d: C).(\lambda (u: T).(\lambda (i: nat).(\lambda (H0: (getl i c 
+(CHead d (Bind Abbr) u))).(\lambda (t3: T).(\lambda (t4: T).(\lambda (H1: 
+(pr0 t3 t4)).(\lambda (t: T).(\lambda (H2: (subst0 i u t4 t)).(\lambda (c2: 
+C).(\lambda (H3: (wf3 g c c2)).(\lambda (u0: T).(\lambda (H4: (ty3 g c t3 
+u0)).(let H_y \def (ty3_sred_pr0 t3 t4 H1 g c u0 H4) in (let H_x \def 
+(ty3_getl_subst0 g c t4 u0 H_y u t i H2 Abbr d u H0) in (let H5 \def H_x in 
+(ex_ind T (\lambda (w: T).(ty3 g d u w)) (pr2 c2 t3 t) (\lambda (x: 
+T).(\lambda (H6: (ty3 g d u x)).(let H_x0 \def (wf3_getl_conf Abbr i c d u H0 
+g c2 H3 x H6) in (let H7 \def H_x0 in (ex2_ind C (\lambda (d2: C).(getl i c2 
+(CHead d2 (Bind Abbr) u))) (\lambda (d2: C).(wf3 g d d2)) (pr2 c2 t3 t) 
+(\lambda (x0: C).(\lambda (H8: (getl i c2 (CHead x0 (Bind Abbr) u))).(\lambda 
+(_: (wf3 g d x0)).(pr2_delta c2 x0 u i H8 t3 t4 H1 t H2)))) H7))))) 
+H5)))))))))))))))))) c1 t1 t2 H))))).
 
 theorem wf3_pr3_conf:
  \forall (g: G).(\forall (c1: C).(\forall (t1: T).(\forall (t2: T).((pr3 c1 
@@ -51,18 +47,16 @@ t1 t2) \to (\forall (c2: C).((wf3 g c1 c2) \to (\forall (u: T).((ty3 g c1 t1
 u) \to (pr3 c2 t1 t2)))))))))
 \def
  \lambda (g: G).(\lambda (c1: C).(\lambda (t1: T).(\lambda (t2: T).(\lambda 
-(H: (pr3 c1 t1 t2)).(let TMP_1 \def (\lambda (t: T).(\lambda (t0: T).(\forall 
+(H: (pr3 c1 t1 t2)).(pr3_ind c1 (\lambda (t: T).(\lambda (t0: T).(\forall 
 (c2: C).((wf3 g c1 c2) \to (\forall (u: T).((ty3 g c1 t u) \to (pr3 c2 t 
-t0))))))) in (let TMP_2 \def (\lambda (t: T).(\lambda (c2: C).(\lambda (_: 
-(wf3 g c1 c2)).(\lambda (u: T).(\lambda (_: (ty3 g c1 t u)).(pr3_refl c2 
-t)))))) in (let TMP_6 \def (\lambda (t3: T).(\lambda (t4: T).(\lambda (H0: 
-(pr2 c1 t4 t3)).(\lambda (t5: T).(\lambda (_: (pr3 c1 t3 t5)).(\lambda (H2: 
-((\forall (c2: C).((wf3 g c1 c2) \to (\forall (u: T).((ty3 g c1 t3 u) \to 
-(pr3 c2 t3 t5))))))).(\lambda (c2: C).(\lambda (H3: (wf3 g c1 c2)).(\lambda 
-(u: T).(\lambda (H4: (ty3 g c1 t4 u)).(let TMP_3 \def (wf3_pr2_conf g c1 t4 
-t3 H0 c2 H3 u H4) in (let TMP_4 \def (ty3_sred_pr2 c1 t4 t3 H0 g u H4) in 
-(let TMP_5 \def (H2 c2 H3 u TMP_4) in (pr3_sing c2 t3 t4 TMP_3 t5 
-TMP_5)))))))))))))) in (pr3_ind c1 TMP_1 TMP_2 TMP_6 t1 t2 H)))))))).
+t0))))))) (\lambda (t: T).(\lambda (c2: C).(\lambda (_: (wf3 g c1 
+c2)).(\lambda (u: T).(\lambda (_: (ty3 g c1 t u)).(pr3_refl c2 t)))))) 
+(\lambda (t3: T).(\lambda (t4: T).(\lambda (H0: (pr2 c1 t4 t3)).(\lambda (t5: 
+T).(\lambda (_: (pr3 c1 t3 t5)).(\lambda (H2: ((\forall (c2: C).((wf3 g c1 
+c2) \to (\forall (u: T).((ty3 g c1 t3 u) \to (pr3 c2 t3 t5))))))).(\lambda 
+(c2: C).(\lambda (H3: (wf3 g c1 c2)).(\lambda (u: T).(\lambda (H4: (ty3 g c1 
+t4 u)).(pr3_sing c2 t3 t4 (wf3_pr2_conf g c1 t4 t3 H0 c2 H3 u H4) t5 (H2 c2 
+H3 u (ty3_sred_pr2 c1 t4 t3 H0 g u H4))))))))))))) t1 t2 H))))).
 
 theorem wf3_pc3_conf:
  \forall (g: G).(\forall (c1: C).(\forall (t1: T).(\forall (t2: T).((pc3 c1 
@@ -72,79 +66,61 @@ u1) \to (\forall (u2: T).((ty3 g c1 t2 u2) \to (pc3 c2 t1 t2)))))))))))
  \lambda (g: G).(\lambda (c1: C).(\lambda (t1: T).(\lambda (t2: T).(\lambda 
 (H: (pc3 c1 t1 t2)).(\lambda (c2: C).(\lambda (H0: (wf3 g c1 c2)).(\lambda 
 (u1: T).(\lambda (H1: (ty3 g c1 t1 u1)).(\lambda (u2: T).(\lambda (H2: (ty3 g 
-c1 t2 u2)).(let H3 \def H in (let TMP_1 \def (\lambda (t: T).(pr3 c1 t1 t)) 
-in (let TMP_2 \def (\lambda (t: T).(pr3 c1 t2 t)) in (let TMP_3 \def (pc3 c2 
-t1 t2) in (let TMP_6 \def (\lambda (x: T).(\lambda (H4: (pr3 c1 t1 
-x)).(\lambda (H5: (pr3 c1 t2 x)).(let TMP_4 \def (wf3_pr3_conf g c1 t1 x H4 
-c2 H0 u1 H1) in (let TMP_5 \def (wf3_pr3_conf g c1 t2 x H5 c2 H0 u2 H2) in 
-(pc3_pr3_t c2 t1 x TMP_4 t2 TMP_5)))))) in (ex2_ind T TMP_1 TMP_2 TMP_3 TMP_6 
-H3)))))))))))))))).
+c1 t2 u2)).(let H3 \def H in (ex2_ind T (\lambda (t: T).(pr3 c1 t1 t)) 
+(\lambda (t: T).(pr3 c1 t2 t)) (pc3 c2 t1 t2) (\lambda (x: T).(\lambda (H4: 
+(pr3 c1 t1 x)).(\lambda (H5: (pr3 c1 t2 x)).(pc3_pr3_t c2 t1 x (wf3_pr3_conf 
+g c1 t1 x H4 c2 H0 u1 H1) t2 (wf3_pr3_conf g c1 t2 x H5 c2 H0 u2 H2))))) 
+H3)))))))))))).
 
 theorem wf3_ty3_conf:
  \forall (g: G).(\forall (c1: C).(\forall (t1: T).(\forall (t2: T).((ty3 g c1 
 t1 t2) \to (\forall (c2: C).((wf3 g c1 c2) \to (ty3 g c2 t1 t2)))))))
 \def
  \lambda (g: G).(\lambda (c1: C).(\lambda (t1: T).(\lambda (t2: T).(\lambda 
-(H: (ty3 g c1 t1 t2)).(let TMP_1 \def (\lambda (c: C).(\lambda (t: 
-T).(\lambda (t0: T).(\forall (c2: C).((wf3 g c c2) \to (ty3 g c2 t t0)))))) 
-in (let TMP_9 \def (\lambda (c: C).(\lambda (t3: T).(\lambda (t: T).(\lambda 
-(H0: (ty3 g c t3 t)).(\lambda (H1: ((\forall (c2: C).((wf3 g c c2) \to (ty3 g 
-c2 t3 t))))).(\lambda (u: T).(\lambda (t4: T).(\lambda (H2: (ty3 g c u 
-t4)).(\lambda (H3: ((\forall (c2: C).((wf3 g c c2) \to (ty3 g c2 u 
-t4))))).(\lambda (H4: (pc3 c t4 t3)).(\lambda (c2: C).(\lambda (H5: (wf3 g c 
-c2)).(let TMP_2 \def (\lambda (t0: T).(ty3 g c t4 t0)) in (let TMP_3 \def 
-(ty3 g c2 u t3) in (let TMP_7 \def (\lambda (x: T).(\lambda (H6: (ty3 g c t4 
-x)).(let TMP_4 \def (H1 c2 H5) in (let TMP_5 \def (H3 c2 H5) in (let TMP_6 
-\def (wf3_pc3_conf g c t4 t3 H4 c2 H5 x H6 t H0) in (ty3_conv g c2 t3 t TMP_4 
-u t4 TMP_5 TMP_6)))))) in (let TMP_8 \def (ty3_correct g c u t4 H2) in 
-(ex_ind T TMP_2 TMP_3 TMP_7 TMP_8))))))))))))))))) in (let TMP_10 \def 
-(\lambda (c: C).(\lambda (m: nat).(\lambda (c2: C).(\lambda (_: (wf3 g c 
-c2)).(ty3_sort g c2 m))))) in (let TMP_21 \def (\lambda (n: nat).(\lambda (c: 
-C).(\lambda (d: C).(\lambda (u: T).(\lambda (H0: (getl n c (CHead d (Bind 
-Abbr) u))).(\lambda (t: T).(\lambda (H1: (ty3 g d u t)).(\lambda (H2: 
-((\forall (c2: C).((wf3 g d c2) \to (ty3 g c2 u t))))).(\lambda (c2: 
-C).(\lambda (H3: (wf3 g c c2)).(let H_x \def (wf3_getl_conf Abbr n c d u H0 g 
-c2 H3 t H1) in (let H4 \def H_x in (let TMP_13 \def (\lambda (d2: C).(let 
-TMP_11 \def (Bind Abbr) in (let TMP_12 \def (CHead d2 TMP_11 u) in (getl n c2 
-TMP_12)))) in (let TMP_14 \def (\lambda (d2: C).(wf3 g d d2)) in (let TMP_15 
-\def (TLRef n) in (let TMP_16 \def (S n) in (let TMP_17 \def (lift TMP_16 O 
-t) in (let TMP_18 \def (ty3 g c2 TMP_15 TMP_17) in (let TMP_20 \def (\lambda 
-(x: C).(\lambda (H5: (getl n c2 (CHead x (Bind Abbr) u))).(\lambda (H6: (wf3 
-g d x)).(let TMP_19 \def (H2 x H6) in (ty3_abbr g n c2 x u H5 t TMP_19))))) 
-in (ex2_ind C TMP_13 TMP_14 TMP_18 TMP_20 H4)))))))))))))))))))) in (let 
-TMP_32 \def (\lambda (n: nat).(\lambda (c: C).(\lambda (d: C).(\lambda (u: 
-T).(\lambda (H0: (getl n c (CHead d (Bind Abst) u))).(\lambda (t: T).(\lambda 
+(H: (ty3 g c1 t1 t2)).(ty3_ind g (\lambda (c: C).(\lambda (t: T).(\lambda 
+(t0: T).(\forall (c2: C).((wf3 g c c2) \to (ty3 g c2 t t0)))))) (\lambda (c: 
+C).(\lambda (t3: T).(\lambda (t: T).(\lambda (H0: (ty3 g c t3 t)).(\lambda 
+(H1: ((\forall (c2: C).((wf3 g c c2) \to (ty3 g c2 t3 t))))).(\lambda (u: 
+T).(\lambda (t4: T).(\lambda (H2: (ty3 g c u t4)).(\lambda (H3: ((\forall 
+(c2: C).((wf3 g c c2) \to (ty3 g c2 u t4))))).(\lambda (H4: (pc3 c t4 
+t3)).(\lambda (c2: C).(\lambda (H5: (wf3 g c c2)).(ex_ind T (\lambda (t0: 
+T).(ty3 g c t4 t0)) (ty3 g c2 u t3) (\lambda (x: T).(\lambda (H6: (ty3 g c t4 
+x)).(ty3_conv g c2 t3 t (H1 c2 H5) u t4 (H3 c2 H5) (wf3_pc3_conf g c t4 t3 H4 
+c2 H5 x H6 t H0)))) (ty3_correct g c u t4 H2)))))))))))))) (\lambda (c: 
+C).(\lambda (m: nat).(\lambda (c2: C).(\lambda (_: (wf3 g c c2)).(ty3_sort g 
+c2 m))))) (\lambda (n: nat).(\lambda (c: C).(\lambda (d: C).(\lambda (u: 
+T).(\lambda (H0: (getl n c (CHead d (Bind Abbr) u))).(\lambda (t: T).(\lambda 
 (H1: (ty3 g d u t)).(\lambda (H2: ((\forall (c2: C).((wf3 g d c2) \to (ty3 g 
 c2 u t))))).(\lambda (c2: C).(\lambda (H3: (wf3 g c c2)).(let H_x \def 
-(wf3_getl_conf Abst n c d u H0 g c2 H3 t H1) in (let H4 \def H_x in (let 
-TMP_24 \def (\lambda (d2: C).(let TMP_22 \def (Bind Abst) in (let TMP_23 \def 
-(CHead d2 TMP_22 u) in (getl n c2 TMP_23)))) in (let TMP_25 \def (\lambda 
-(d2: C).(wf3 g d d2)) in (let TMP_26 \def (TLRef n) in (let TMP_27 \def (S n) 
-in (let TMP_28 \def (lift TMP_27 O u) in (let TMP_29 \def (ty3 g c2 TMP_26 
-TMP_28) in (let TMP_31 \def (\lambda (x: C).(\lambda (H5: (getl n c2 (CHead x 
-(Bind Abst) u))).(\lambda (H6: (wf3 g d x)).(let TMP_30 \def (H2 x H6) in 
-(ty3_abst g n c2 x u H5 t TMP_30))))) in (ex2_ind C TMP_24 TMP_25 TMP_29 
-TMP_31 H4)))))))))))))))))))) in (let TMP_38 \def (\lambda (c: C).(\lambda 
-(u: T).(\lambda (t: T).(\lambda (H0: (ty3 g c u t)).(\lambda (H1: ((\forall 
-(c2: C).((wf3 g c c2) \to (ty3 g c2 u t))))).(\lambda (b: B).(\lambda (t3: 
-T).(\lambda (t4: T).(\lambda (_: (ty3 g (CHead c (Bind b) u) t3 t4)).(\lambda 
-(H3: ((\forall (c2: C).((wf3 g (CHead c (Bind b) u) c2) \to (ty3 g c2 t3 
-t4))))).(\lambda (c2: C).(\lambda (H4: (wf3 g c c2)).(let TMP_33 \def (H1 c2 
-H4) in (let TMP_34 \def (Bind b) in (let TMP_35 \def (CHead c2 TMP_34 u) in 
-(let TMP_36 \def (wf3_bind g c c2 H4 u t H0 b) in (let TMP_37 \def (H3 TMP_35 
-TMP_36) in (ty3_bind g c2 u t TMP_33 b t3 t4 TMP_37)))))))))))))))))) in (let 
-TMP_41 \def (\lambda (c: C).(\lambda (w: T).(\lambda (u: T).(\lambda (_: (ty3 
-g c w u)).(\lambda (H1: ((\forall (c2: C).((wf3 g c c2) \to (ty3 g c2 w 
-u))))).(\lambda (v: T).(\lambda (t: T).(\lambda (_: (ty3 g c v (THead (Bind 
-Abst) u t))).(\lambda (H3: ((\forall (c2: C).((wf3 g c c2) \to (ty3 g c2 v 
-(THead (Bind Abst) u t)))))).(\lambda (c2: C).(\lambda (H4: (wf3 g c 
-c2)).(let TMP_39 \def (H1 c2 H4) in (let TMP_40 \def (H3 c2 H4) in (ty3_appl 
-g c2 w u TMP_39 v t TMP_40)))))))))))))) in (let TMP_44 \def (\lambda (c: 
+(wf3_getl_conf Abbr n c d u H0 g c2 H3 t H1) in (let H4 \def H_x in (ex2_ind 
+C (\lambda (d2: C).(getl n c2 (CHead d2 (Bind Abbr) u))) (\lambda (d2: 
+C).(wf3 g d d2)) (ty3 g c2 (TLRef n) (lift (S n) O t)) (\lambda (x: 
+C).(\lambda (H5: (getl n c2 (CHead x (Bind Abbr) u))).(\lambda (H6: (wf3 g d 
+x)).(ty3_abbr g n c2 x u H5 t (H2 x H6))))) H4))))))))))))) (\lambda (n: 
+nat).(\lambda (c: C).(\lambda (d: C).(\lambda (u: T).(\lambda (H0: (getl n c 
+(CHead d (Bind Abst) u))).(\lambda (t: T).(\lambda (H1: (ty3 g d u 
+t)).(\lambda (H2: ((\forall (c2: C).((wf3 g d c2) \to (ty3 g c2 u 
+t))))).(\lambda (c2: C).(\lambda (H3: (wf3 g c c2)).(let H_x \def 
+(wf3_getl_conf Abst n c d u H0 g c2 H3 t H1) in (let H4 \def H_x in (ex2_ind 
+C (\lambda (d2: C).(getl n c2 (CHead d2 (Bind Abst) u))) (\lambda (d2: 
+C).(wf3 g d d2)) (ty3 g c2 (TLRef n) (lift (S n) O u)) (\lambda (x: 
+C).(\lambda (H5: (getl n c2 (CHead x (Bind Abst) u))).(\lambda (H6: (wf3 g d 
+x)).(ty3_abst g n c2 x u H5 t (H2 x H6))))) H4))))))))))))) (\lambda (c: 
+C).(\lambda (u: T).(\lambda (t: T).(\lambda (H0: (ty3 g c u t)).(\lambda (H1: 
+((\forall (c2: C).((wf3 g c c2) \to (ty3 g c2 u t))))).(\lambda (b: 
+B).(\lambda (t3: T).(\lambda (t4: T).(\lambda (_: (ty3 g (CHead c (Bind b) u) 
+t3 t4)).(\lambda (H3: ((\forall (c2: C).((wf3 g (CHead c (Bind b) u) c2) \to 
+(ty3 g c2 t3 t4))))).(\lambda (c2: C).(\lambda (H4: (wf3 g c c2)).(ty3_bind g 
+c2 u t (H1 c2 H4) b t3 t4 (H3 (CHead c2 (Bind b) u) (wf3_bind g c c2 H4 u t 
+H0 b))))))))))))))) (\lambda (c: C).(\lambda (w: T).(\lambda (u: T).(\lambda 
+(_: (ty3 g c w u)).(\lambda (H1: ((\forall (c2: C).((wf3 g c c2) \to (ty3 g 
+c2 w u))))).(\lambda (v: T).(\lambda (t: T).(\lambda (_: (ty3 g c v (THead 
+(Bind Abst) u t))).(\lambda (H3: ((\forall (c2: C).((wf3 g c c2) \to (ty3 g 
+c2 v (THead (Bind Abst) u t)))))).(\lambda (c2: C).(\lambda (H4: (wf3 g c 
+c2)).(ty3_appl g c2 w u (H1 c2 H4) v t (H3 c2 H4))))))))))))) (\lambda (c: 
 C).(\lambda (t3: T).(\lambda (t4: T).(\lambda (_: (ty3 g c t3 t4)).(\lambda 
 (H1: ((\forall (c2: C).((wf3 g c c2) \to (ty3 g c2 t3 t4))))).(\lambda (t0: 
 T).(\lambda (_: (ty3 g c t4 t0)).(\lambda (H3: ((\forall (c2: C).((wf3 g c 
 c2) \to (ty3 g c2 t4 t0))))).(\lambda (c2: C).(\lambda (H4: (wf3 g c 
-c2)).(let TMP_42 \def (H1 c2 H4) in (let TMP_43 \def (H3 c2 H4) in (ty3_cast 
-g c2 t3 t4 TMP_42 t0 TMP_43))))))))))))) in (ty3_ind g TMP_1 TMP_9 TMP_10 
-TMP_21 TMP_32 TMP_38 TMP_41 TMP_44 c1 t1 t2 H))))))))))))).
+c2)).(ty3_cast g c2 t3 t4 (H1 c2 H4) t0 (H3 c2 H4)))))))))))) c1 t1 t2 H))))).
 
index 2b189447ef62219c0597513702bb5120558cdb90..327b93fdbc6568894c31889a66e0c7065401e81b 100644 (file)
@@ -19,102 +19,72 @@ include "ground_1/blt/defs.ma".
 theorem lt_blt:
  \forall (x: nat).(\forall (y: nat).((lt y x) \to (eq bool (blt y x) true)))
 \def
- \lambda (x: nat).(let TMP_2 \def (\lambda (n: nat).(\forall (y: nat).((lt y 
-n) \to (let TMP_1 \def (blt y n) in (eq bool TMP_1 true))))) in (let TMP_13 
-\def (\lambda (y: nat).(\lambda (H: (lt y O)).(let H0 \def (match H with 
-[le_n \Rightarrow (\lambda (H0: (eq nat (S y) O)).(let TMP_8 \def (S y) in 
-(let TMP_9 \def (\lambda (e: nat).(match e with [O \Rightarrow False | (S _) 
-\Rightarrow True])) in (let H1 \def (eq_ind nat TMP_8 TMP_9 I O H0) in (let 
-TMP_10 \def (blt y O) in (let TMP_11 \def (eq bool TMP_10 true) in (False_ind 
-TMP_11 H1))))))) | (le_S m H0) \Rightarrow (\lambda (H1: (eq nat (S m) 
-O)).(let TMP_3 \def (S m) in (let TMP_4 \def (\lambda (e: nat).(match e with 
-[O \Rightarrow False | (S _) \Rightarrow True])) in (let H2 \def (eq_ind nat 
-TMP_3 TMP_4 I O H1) in (let TMP_6 \def ((le (S y) m) \to (let TMP_5 \def (blt 
-y O) in (eq bool TMP_5 true))) in (let TMP_7 \def (False_ind TMP_6 H2) in 
-(TMP_7 H0)))))))]) in (let TMP_12 \def (refl_equal nat O) in (H0 TMP_12))))) 
-in (let TMP_21 \def (\lambda (n: nat).(\lambda (H: ((\forall (y: nat).((lt y 
-n) \to (eq bool (blt y n) true))))).(\lambda (y: nat).(let TMP_16 \def 
-(\lambda (n0: nat).((lt n0 (S n)) \to (let TMP_14 \def (S n) in (let TMP_15 
-\def (blt n0 TMP_14) in (eq bool TMP_15 true))))) in (let TMP_17 \def 
-(\lambda (_: (lt O (S n))).(refl_equal bool true)) in (let TMP_20 \def 
-(\lambda (n0: nat).(\lambda (_: (((lt n0 (S n)) \to (eq bool (match n0 with 
-[O \Rightarrow true | (S m) \Rightarrow (blt m n)]) true)))).(\lambda (H1: 
-(lt (S n0) (S n))).(let TMP_18 \def (S n0) in (let TMP_19 \def (le_S_n TMP_18 
-n H1) in (H n0 TMP_19)))))) in (nat_ind TMP_16 TMP_17 TMP_20 y))))))) in 
-(nat_ind TMP_2 TMP_13 TMP_21 x)))).
+ \lambda (x: nat).(nat_ind (\lambda (n: nat).(\forall (y: nat).((lt y n) \to 
+(eq bool (blt y n) true)))) (\lambda (y: nat).(\lambda (H: (lt y O)).(let H0 
+\def (match H with [le_n \Rightarrow (\lambda (H0: (eq nat (S y) O)).(let H1 
+\def (eq_ind nat (S y) (\lambda (e: nat).(match e with [O \Rightarrow False | 
+(S _) \Rightarrow True])) I O H0) in (False_ind (eq bool (blt y O) true) 
+H1))) | (le_S m H0) \Rightarrow (\lambda (H1: (eq nat (S m) O)).((let H2 \def 
+(eq_ind nat (S m) (\lambda (e: nat).(match e with [O \Rightarrow False | (S 
+_) \Rightarrow True])) I O H1) in (False_ind ((le (S y) m) \to (eq bool (blt 
+y O) true)) H2)) H0))]) in (H0 (refl_equal nat O))))) (\lambda (n: 
+nat).(\lambda (H: ((\forall (y: nat).((lt y n) \to (eq bool (blt y n) 
+true))))).(\lambda (y: nat).(nat_ind (\lambda (n0: nat).((lt n0 (S n)) \to 
+(eq bool (blt n0 (S n)) true))) (\lambda (_: (lt O (S n))).(refl_equal bool 
+true)) (\lambda (n0: nat).(\lambda (_: (((lt n0 (S n)) \to (eq bool (match n0 
+with [O \Rightarrow true | (S m) \Rightarrow (blt m n)]) true)))).(\lambda 
+(H1: (lt (S n0) (S n))).(H n0 (le_S_n (S n0) n H1))))) y)))) x).
 
 theorem le_bge:
  \forall (x: nat).(\forall (y: nat).((le x y) \to (eq bool (blt y x) false)))
 \def
- \lambda (x: nat).(let TMP_2 \def (\lambda (n: nat).(\forall (y: nat).((le n 
-y) \to (let TMP_1 \def (blt y n) in (eq bool TMP_1 false))))) in (let TMP_3 
-\def (\lambda (y: nat).(\lambda (_: (le O y)).(refl_equal bool false))) in 
-(let TMP_22 \def (\lambda (n: nat).(\lambda (H: ((\forall (y: nat).((le n y) 
-\to (eq bool (blt y n) false))))).(\lambda (y: nat).(let TMP_6 \def (\lambda 
-(n0: nat).((le (S n) n0) \to (let TMP_4 \def (S n) in (let TMP_5 \def (blt n0 
-TMP_4) in (eq bool TMP_5 false))))) in (let TMP_19 \def (\lambda (H0: (le (S 
-n) O)).(let H1 \def (match H0 with [le_n \Rightarrow (\lambda (H1: (eq nat (S 
-n) O)).(let TMP_13 \def (S n) in (let TMP_14 \def (\lambda (e: nat).(match e 
-with [O \Rightarrow False | (S _) \Rightarrow True])) in (let H2 \def (eq_ind 
-nat TMP_13 TMP_14 I O H1) in (let TMP_15 \def (S n) in (let TMP_16 \def (blt 
-O TMP_15) in (let TMP_17 \def (eq bool TMP_16 false) in (False_ind TMP_17 
-H2)))))))) | (le_S m H1) \Rightarrow (\lambda (H2: (eq nat (S m) O)).(let 
-TMP_7 \def (S m) in (let TMP_8 \def (\lambda (e: nat).(match e with [O 
-\Rightarrow False | (S _) \Rightarrow True])) in (let H3 \def (eq_ind nat 
-TMP_7 TMP_8 I O H2) in (let TMP_11 \def ((le (S n) m) \to (let TMP_9 \def (S 
-n) in (let TMP_10 \def (blt O TMP_9) in (eq bool TMP_10 false)))) in (let 
-TMP_12 \def (False_ind TMP_11 H3) in (TMP_12 H1)))))))]) in (let TMP_18 \def 
-(refl_equal nat O) in (H1 TMP_18)))) in (let TMP_21 \def (\lambda (n0: 
-nat).(\lambda (_: (((le (S n) n0) \to (eq bool (blt n0 (S n)) 
-false)))).(\lambda (H1: (le (S n) (S n0))).(let TMP_20 \def (le_S_n n n0 H1) 
-in (H n0 TMP_20))))) in (nat_ind TMP_6 TMP_19 TMP_21 y))))))) in (nat_ind 
-TMP_2 TMP_3 TMP_22 x)))).
+ \lambda (x: nat).(nat_ind (\lambda (n: nat).(\forall (y: nat).((le n y) \to 
+(eq bool (blt y n) false)))) (\lambda (y: nat).(\lambda (_: (le O 
+y)).(refl_equal bool false))) (\lambda (n: nat).(\lambda (H: ((\forall (y: 
+nat).((le n y) \to (eq bool (blt y n) false))))).(\lambda (y: nat).(nat_ind 
+(\lambda (n0: nat).((le (S n) n0) \to (eq bool (blt n0 (S n)) false))) 
+(\lambda (H0: (le (S n) O)).(let H1 \def (match H0 with [le_n \Rightarrow 
+(\lambda (H1: (eq nat (S n) O)).(let H2 \def (eq_ind nat (S n) (\lambda (e: 
+nat).(match e with [O \Rightarrow False | (S _) \Rightarrow True])) I O H1) 
+in (False_ind (eq bool (blt O (S n)) false) H2))) | (le_S m H1) \Rightarrow 
+(\lambda (H2: (eq nat (S m) O)).((let H3 \def (eq_ind nat (S m) (\lambda (e: 
+nat).(match e with [O \Rightarrow False | (S _) \Rightarrow True])) I O H2) 
+in (False_ind ((le (S n) m) \to (eq bool (blt O (S n)) false)) H3)) H1))]) in 
+(H1 (refl_equal nat O)))) (\lambda (n0: nat).(\lambda (_: (((le (S n) n0) \to 
+(eq bool (blt n0 (S n)) false)))).(\lambda (H1: (le (S n) (S n0))).(H n0 
+(le_S_n n n0 H1))))) y)))) x).
 
 theorem blt_lt:
  \forall (x: nat).(\forall (y: nat).((eq bool (blt y x) true) \to (lt y x)))
 \def
- \lambda (x: nat).(let TMP_1 \def (\lambda (n: nat).(\forall (y: nat).((eq 
-bool (blt y n) true) \to (lt y n)))) in (let TMP_6 \def (\lambda (y: 
-nat).(\lambda (H: (eq bool (blt y O) true)).(let H0 \def (match H with 
-[refl_equal \Rightarrow (\lambda (H0: (eq bool (blt y O) true)).(let TMP_2 
-\def (blt y O) in (let TMP_3 \def (\lambda (e: bool).(match e with [true 
-\Rightarrow False | false \Rightarrow True])) in (let H1 \def (eq_ind bool 
-TMP_2 TMP_3 I true H0) in (let TMP_4 \def (lt y O) in (False_ind TMP_4 
-H1))))))]) in (let TMP_5 \def (refl_equal bool true) in (H0 TMP_5))))) in 
-(let TMP_19 \def (\lambda (n: nat).(\lambda (H: ((\forall (y: nat).((eq bool 
-(blt y n) true) \to (lt y n))))).(\lambda (y: nat).(let TMP_8 \def (\lambda 
-(n0: nat).((eq bool (blt n0 (S n)) true) \to (let TMP_7 \def (S n) in (lt n0 
-TMP_7)))) in (let TMP_16 \def (\lambda (_: (eq bool true true)).(let TMP_9 
-\def (S O) in (let TMP_10 \def (S n) in (let TMP_11 \def (S O) in (let TMP_12 
-\def (S n) in (let TMP_13 \def (le_O_n n) in (let TMP_14 \def (le_n_S O n 
-TMP_13) in (let TMP_15 \def (le_n_S TMP_11 TMP_12 TMP_14) in (le_S_n TMP_9 
-TMP_10 TMP_15))))))))) in (let TMP_18 \def (\lambda (n0: nat).(\lambda (_: 
-(((eq bool (match n0 with [O \Rightarrow true | (S m) \Rightarrow (blt m n)]) 
-true) \to (lt n0 (S n))))).(\lambda (H1: (eq bool (blt n0 n) true)).(let 
-TMP_17 \def (H n0 H1) in (lt_n_S n0 n TMP_17))))) in (nat_ind TMP_8 TMP_16 
-TMP_18 y))))))) in (nat_ind TMP_1 TMP_6 TMP_19 x)))).
+ \lambda (x: nat).(nat_ind (\lambda (n: nat).(\forall (y: nat).((eq bool (blt 
+y n) true) \to (lt y n)))) (\lambda (y: nat).(\lambda (H: (eq bool (blt y O) 
+true)).(let H0 \def (match H with [refl_equal \Rightarrow (\lambda (H0: (eq 
+bool (blt y O) true)).(let H1 \def (eq_ind bool (blt y O) (\lambda (e: 
+bool).(match e with [true \Rightarrow False | false \Rightarrow True])) I 
+true H0) in (False_ind (lt y O) H1)))]) in (H0 (refl_equal bool true))))) 
+(\lambda (n: nat).(\lambda (H: ((\forall (y: nat).((eq bool (blt y n) true) 
+\to (lt y n))))).(\lambda (y: nat).(nat_ind (\lambda (n0: nat).((eq bool (blt 
+n0 (S n)) true) \to (lt n0 (S n)))) (\lambda (_: (eq bool true true)).(le_S_n 
+(S O) (S n) (le_n_S (S O) (S n) (le_n_S O n (le_O_n n))))) (\lambda (n0: 
+nat).(\lambda (_: (((eq bool (match n0 with [O \Rightarrow true | (S m) 
+\Rightarrow (blt m n)]) true) \to (lt n0 (S n))))).(\lambda (H1: (eq bool 
+(blt n0 n) true)).(lt_n_S n0 n (H n0 H1))))) y)))) x).
 
 theorem bge_le:
  \forall (x: nat).(\forall (y: nat).((eq bool (blt y x) false) \to (le x y)))
 \def
- \lambda (x: nat).(let TMP_1 \def (\lambda (n: nat).(\forall (y: nat).((eq 
-bool (blt y n) false) \to (le n y)))) in (let TMP_2 \def (\lambda (y: 
-nat).(\lambda (_: (eq bool (blt y O) false)).(le_O_n y))) in (let TMP_20 \def 
-(\lambda (n: nat).(\lambda (H: ((\forall (y: nat).((eq bool (blt y n) false) 
-\to (le n y))))).(\lambda (y: nat).(let TMP_4 \def (\lambda (n0: nat).((eq 
-bool (blt n0 (S n)) false) \to (let TMP_3 \def (S n) in (le TMP_3 n0)))) in 
-(let TMP_11 \def (\lambda (H0: (eq bool (blt O (S n)) false)).(let H1 \def 
-(match H0 with [refl_equal \Rightarrow (\lambda (H1: (eq bool (blt O (S n)) 
-false)).(let TMP_5 \def (S n) in (let TMP_6 \def (blt O TMP_5) in (let TMP_7 
-\def (\lambda (e: bool).(match e with [true \Rightarrow True | false 
-\Rightarrow False])) in (let H2 \def (eq_ind bool TMP_6 TMP_7 I false H1) in 
-(let TMP_8 \def (S n) in (let TMP_9 \def (le TMP_8 O) in (False_ind TMP_9 
-H2))))))))]) in (let TMP_10 \def (refl_equal bool false) in (H1 TMP_10)))) in 
-(let TMP_19 \def (\lambda (n0: nat).(\lambda (_: (((eq bool (blt n0 (S n)) 
-false) \to (le (S n) n0)))).(\lambda (H1: (eq bool (blt (S n0) (S n)) 
-false)).(let TMP_12 \def (S n) in (let TMP_13 \def (S n0) in (let TMP_14 \def 
-(S n) in (let TMP_15 \def (S n0) in (let TMP_16 \def (H n0 H1) in (let TMP_17 
-\def (le_n_S n n0 TMP_16) in (let TMP_18 \def (le_n_S TMP_14 TMP_15 TMP_17) 
-in (le_S_n TMP_12 TMP_13 TMP_18))))))))))) in (nat_ind TMP_4 TMP_11 TMP_19 
-y))))))) in (nat_ind TMP_1 TMP_2 TMP_20 x)))).
+ \lambda (x: nat).(nat_ind (\lambda (n: nat).(\forall (y: nat).((eq bool (blt 
+y n) false) \to (le n y)))) (\lambda (y: nat).(\lambda (_: (eq bool (blt y O) 
+false)).(le_O_n y))) (\lambda (n: nat).(\lambda (H: ((\forall (y: nat).((eq 
+bool (blt y n) false) \to (le n y))))).(\lambda (y: nat).(nat_ind (\lambda 
+(n0: nat).((eq bool (blt n0 (S n)) false) \to (le (S n) n0))) (\lambda (H0: 
+(eq bool (blt O (S n)) false)).(let H1 \def (match H0 with [refl_equal 
+\Rightarrow (\lambda (H1: (eq bool (blt O (S n)) false)).(let H2 \def (eq_ind 
+bool (blt O (S n)) (\lambda (e: bool).(match e with [true \Rightarrow True | 
+false \Rightarrow False])) I false H1) in (False_ind (le (S n) O) H2)))]) in 
+(H1 (refl_equal bool false)))) (\lambda (n0: nat).(\lambda (_: (((eq bool 
+(blt n0 (S n)) false) \to (le (S n) n0)))).(\lambda (H1: (eq bool (blt (S n0) 
+(S n)) false)).(le_S_n (S n) (S n0) (le_n_S (S n) (S n0) (le_n_S n n0 (H n0 
+H1))))))) y)))) x).
 
index 637a865983c21346706b1fcb04c711d5c1c8fe93..d9c7d049cbd7d3825cb67c211b6d57827248ea7d 100644 (file)
@@ -20,204 +20,121 @@ theorem nat_dec:
  \forall (n1: nat).(\forall (n2: nat).(or (eq nat n1 n2) ((eq nat n1 n2) \to 
 (\forall (P: Prop).P))))
 \def
- \lambda (n1: nat).(let TMP_3 \def (\lambda (n: nat).(\forall (n2: nat).(let 
-TMP_1 \def (eq nat n n2) in (let TMP_2 \def ((eq nat n n2) \to (\forall (P: 
-Prop).P)) in (or TMP_1 TMP_2))))) in (let TMP_18 \def (\lambda (n2: nat).(let 
-TMP_6 \def (\lambda (n: nat).(let TMP_4 \def (eq nat O n) in (let TMP_5 \def 
-((eq nat O n) \to (\forall (P: Prop).P)) in (or TMP_4 TMP_5)))) in (let TMP_7 
-\def (eq nat O O) in (let TMP_8 \def ((eq nat O O) \to (\forall (P: Prop).P)) 
-in (let TMP_9 \def (refl_equal nat O) in (let TMP_10 \def (or_introl TMP_7 
-TMP_8 TMP_9) in (let TMP_17 \def (\lambda (n: nat).(\lambda (_: (or (eq nat O 
-n) ((eq nat O n) \to (\forall (P: Prop).P)))).(let TMP_11 \def (S n) in (let 
-TMP_12 \def (eq nat O TMP_11) in (let TMP_13 \def ((eq nat O (S n)) \to 
-(\forall (P: Prop).P)) in (let TMP_16 \def (\lambda (H0: (eq nat O (S 
-n))).(\lambda (P: Prop).(let TMP_14 \def (\lambda (ee: nat).(match ee with [O 
-\Rightarrow True | (S _) \Rightarrow False])) in (let TMP_15 \def (S n) in 
-(let H1 \def (eq_ind nat O TMP_14 I TMP_15 H0) in (False_ind P H1)))))) in 
-(or_intror TMP_12 TMP_13 TMP_16))))))) in (nat_ind TMP_6 TMP_10 TMP_17 
-n2)))))))) in (let TMP_71 \def (\lambda (n: nat).(\lambda (H: ((\forall (n2: 
+ \lambda (n1: nat).(nat_ind (\lambda (n: nat).(\forall (n2: nat).(or (eq nat 
+n n2) ((eq nat n n2) \to (\forall (P: Prop).P))))) (\lambda (n2: 
+nat).(nat_ind (\lambda (n: nat).(or (eq nat O n) ((eq nat O n) \to (\forall 
+(P: Prop).P)))) (or_introl (eq nat O O) ((eq nat O O) \to (\forall (P: 
+Prop).P)) (refl_equal nat O)) (\lambda (n: nat).(\lambda (_: (or (eq nat O n) 
+((eq nat O n) \to (\forall (P: Prop).P)))).(or_intror (eq nat O (S n)) ((eq 
+nat O (S n)) \to (\forall (P: Prop).P)) (\lambda (H0: (eq nat O (S 
+n))).(\lambda (P: Prop).(let H1 \def (eq_ind nat O (\lambda (ee: nat).(match 
+ee with [O \Rightarrow True | (S _) \Rightarrow False])) I (S n) H0) in 
+(False_ind P H1))))))) n2)) (\lambda (n: nat).(\lambda (H: ((\forall (n2: 
 nat).(or (eq nat n n2) ((eq nat n n2) \to (\forall (P: Prop).P)))))).(\lambda 
-(n2: nat).(let TMP_22 \def (\lambda (n0: nat).(let TMP_19 \def (S n) in (let 
-TMP_20 \def (eq nat TMP_19 n0) in (let TMP_21 \def ((eq nat (S n) n0) \to 
-(\forall (P: Prop).P)) in (or TMP_20 TMP_21))))) in (let TMP_23 \def (S n) in 
-(let TMP_24 \def (eq nat TMP_23 O) in (let TMP_25 \def ((eq nat (S n) O) \to 
-(\forall (P: Prop).P)) in (let TMP_28 \def (\lambda (H0: (eq nat (S n) 
-O)).(\lambda (P: Prop).(let TMP_26 \def (S n) in (let TMP_27 \def (\lambda 
-(ee: nat).(match ee with [O \Rightarrow False | (S _) \Rightarrow True])) in 
-(let H1 \def (eq_ind nat TMP_26 TMP_27 I O H0) in (False_ind P H1)))))) in 
-(let TMP_29 \def (or_intror TMP_24 TMP_25 TMP_28) in (let TMP_70 \def 
+(n2: nat).(nat_ind (\lambda (n0: nat).(or (eq nat (S n) n0) ((eq nat (S n) 
+n0) \to (\forall (P: Prop).P)))) (or_intror (eq nat (S n) O) ((eq nat (S n) 
+O) \to (\forall (P: Prop).P)) (\lambda (H0: (eq nat (S n) O)).(\lambda (P: 
+Prop).(let H1 \def (eq_ind nat (S n) (\lambda (ee: nat).(match ee with [O 
+\Rightarrow False | (S _) \Rightarrow True])) I O H0) in (False_ind P H1))))) 
 (\lambda (n0: nat).(\lambda (H0: (or (eq nat (S n) n0) ((eq nat (S n) n0) \to 
-(\forall (P: Prop).P)))).(let TMP_30 \def (eq nat n n0) in (let TMP_31 \def 
-((eq nat n n0) \to (\forall (P: Prop).P)) in (let TMP_32 \def (S n) in (let 
-TMP_33 \def (S n0) in (let TMP_34 \def (eq nat TMP_32 TMP_33) in (let TMP_35 
-\def ((eq nat (S n) (S n0)) \to (\forall (P: Prop).P)) in (let TMP_36 \def 
-(or TMP_34 TMP_35) in (let TMP_53 \def (\lambda (H1: (eq nat n n0)).(let 
-TMP_40 \def (\lambda (n3: nat).(let TMP_37 \def (S n) in (let TMP_38 \def (eq 
-nat TMP_37 n3) in (let TMP_39 \def ((eq nat (S n) n3) \to (\forall (P: 
-Prop).P)) in (or TMP_38 TMP_39))))) in (let H2 \def (eq_ind_r nat n0 TMP_40 
-H0 n H1) in (let TMP_45 \def (\lambda (n3: nat).(let TMP_41 \def (S n) in 
-(let TMP_42 \def (S n3) in (let TMP_43 \def (eq nat TMP_41 TMP_42) in (let 
-TMP_44 \def ((eq nat (S n) (S n3)) \to (\forall (P: Prop).P)) in (or TMP_43 
-TMP_44)))))) in (let TMP_46 \def (S n) in (let TMP_47 \def (S n) in (let 
-TMP_48 \def (eq nat TMP_46 TMP_47) in (let TMP_49 \def ((eq nat (S n) (S n)) 
-\to (\forall (P: Prop).P)) in (let TMP_50 \def (S n) in (let TMP_51 \def 
-(refl_equal nat TMP_50) in (let TMP_52 \def (or_introl TMP_48 TMP_49 TMP_51) 
-in (eq_ind nat n TMP_45 TMP_52 n0 H1)))))))))))) in (let TMP_68 \def (\lambda 
-(H1: (((eq nat n n0) \to (\forall (P: Prop).P)))).(let TMP_54 \def (S n) in 
-(let TMP_55 \def (S n0) in (let TMP_56 \def (eq nat TMP_54 TMP_55) in (let 
-TMP_57 \def ((eq nat (S n) (S n0)) \to (\forall (P: Prop).P)) in (let TMP_67 
-\def (\lambda (H2: (eq nat (S n) (S n0))).(\lambda (P: Prop).(let TMP_58 \def 
-(\lambda (e: nat).(match e with [O \Rightarrow n | (S n3) \Rightarrow n3])) 
-in (let TMP_59 \def (S n) in (let TMP_60 \def (S n0) in (let H3 \def (f_equal 
-nat nat TMP_58 TMP_59 TMP_60 H2) in (let TMP_61 \def (\lambda (n3: nat).((eq 
-nat n n3) \to (\forall (P0: Prop).P0))) in (let H4 \def (eq_ind_r nat n0 
-TMP_61 H1 n H3) in (let TMP_65 \def (\lambda (n3: nat).(let TMP_62 \def (S n) 
-in (let TMP_63 \def (eq nat TMP_62 n3) in (let TMP_64 \def ((eq nat (S n) n3) 
-\to (\forall (P0: Prop).P0)) in (or TMP_63 TMP_64))))) in (let H5 \def 
-(eq_ind_r nat n0 TMP_65 H0 n H3) in (let TMP_66 \def (refl_equal nat n) in 
-(H4 TMP_66 P)))))))))))) in (or_intror TMP_56 TMP_57 TMP_67))))))) in (let 
-TMP_69 \def (H n0) in (or_ind TMP_30 TMP_31 TMP_36 TMP_53 TMP_68 
-TMP_69))))))))))))) in (nat_ind TMP_22 TMP_29 TMP_70 n2))))))))))) in 
-(nat_ind TMP_3 TMP_18 TMP_71 n1)))).
+(\forall (P: Prop).P)))).(or_ind (eq nat n n0) ((eq nat n n0) \to (\forall 
+(P: Prop).P)) (or (eq nat (S n) (S n0)) ((eq nat (S n) (S n0)) \to (\forall 
+(P: Prop).P))) (\lambda (H1: (eq nat n n0)).(let H2 \def (eq_ind_r nat n0 
+(\lambda (n3: nat).(or (eq nat (S n) n3) ((eq nat (S n) n3) \to (\forall (P: 
+Prop).P)))) H0 n H1) in (eq_ind nat n (\lambda (n3: nat).(or (eq nat (S n) (S 
+n3)) ((eq nat (S n) (S n3)) \to (\forall (P: Prop).P)))) (or_introl (eq nat 
+(S n) (S n)) ((eq nat (S n) (S n)) \to (\forall (P: Prop).P)) (refl_equal nat 
+(S n))) n0 H1))) (\lambda (H1: (((eq nat n n0) \to (\forall (P: 
+Prop).P)))).(or_intror (eq nat (S n) (S n0)) ((eq nat (S n) (S n0)) \to 
+(\forall (P: Prop).P)) (\lambda (H2: (eq nat (S n) (S n0))).(\lambda (P: 
+Prop).(let H3 \def (f_equal nat nat (\lambda (e: nat).(match e with [O 
+\Rightarrow n | (S n3) \Rightarrow n3])) (S n) (S n0) H2) in (let H4 \def 
+(eq_ind_r nat n0 (\lambda (n3: nat).((eq nat n n3) \to (\forall (P0: 
+Prop).P0))) H1 n H3) in (let H5 \def (eq_ind_r nat n0 (\lambda (n3: nat).(or 
+(eq nat (S n) n3) ((eq nat (S n) n3) \to (\forall (P0: Prop).P0)))) H0 n H3) 
+in (H4 (refl_equal nat n) P)))))))) (H n0)))) n2)))) n1).
 
 theorem simpl_plus_r:
  \forall (n: nat).(\forall (m: nat).(\forall (p: nat).((eq nat (plus m n) 
 (plus p n)) \to (eq nat m p))))
 \def
  \lambda (n: nat).(\lambda (m: nat).(\lambda (p: nat).(\lambda (H: (eq nat 
-(plus m n) (plus p n))).(let TMP_1 \def (plus m n) in (let TMP_3 \def 
-(\lambda (n0: nat).(let TMP_2 \def (plus n p) in (eq nat n0 TMP_2))) in (let 
-TMP_4 \def (plus p n) in (let TMP_6 \def (\lambda (n0: nat).(let TMP_5 \def 
-(plus n p) in (eq nat n0 TMP_5))) in (let TMP_7 \def (plus_sym p n) in (let 
-TMP_8 \def (plus m n) in (let TMP_9 \def (eq_ind_r nat TMP_4 TMP_6 TMP_7 
-TMP_8 H) in (let TMP_10 \def (plus n m) in (let TMP_11 \def (plus_sym n m) in 
-(let TMP_12 \def (eq_ind_r nat TMP_1 TMP_3 TMP_9 TMP_10 TMP_11) in 
-(simpl_plus_l n m p TMP_12)))))))))))))).
+(plus m n) (plus p n))).(simpl_plus_l n m p (eq_ind_r nat (plus m n) (\lambda 
+(n0: nat).(eq nat n0 (plus n p))) (eq_ind_r nat (plus p n) (\lambda (n0: 
+nat).(eq nat n0 (plus n p))) (plus_sym p n) (plus m n) H) (plus n m) 
+(plus_sym n m)))))).
 
 theorem minus_Sx_Sy:
  \forall (x: nat).(\forall (y: nat).(eq nat (minus (S x) (S y)) (minus x y)))
 \def
- \lambda (x: nat).(\lambda (y: nat).(let TMP_1 \def (minus x y) in 
-(refl_equal nat TMP_1))).
+ \lambda (x: nat).(\lambda (y: nat).(refl_equal nat (minus x y))).
 
 theorem minus_plus_r:
  \forall (m: nat).(\forall (n: nat).(eq nat (minus (plus m n) n) m))
 \def
- \lambda (m: nat).(\lambda (n: nat).(let TMP_1 \def (plus n m) in (let TMP_3 
-\def (\lambda (n0: nat).(let TMP_2 \def (minus n0 n) in (eq nat TMP_2 m))) in 
-(let TMP_4 \def (minus_plus n m) in (let TMP_5 \def (plus m n) in (let TMP_6 
-\def (plus_sym m n) in (eq_ind_r nat TMP_1 TMP_3 TMP_4 TMP_5 TMP_6))))))).
+ \lambda (m: nat).(\lambda (n: nat).(eq_ind_r nat (plus n m) (\lambda (n0: 
+nat).(eq nat (minus n0 n) m)) (minus_plus n m) (plus m n) (plus_sym m n))).
 
 theorem plus_permute_2_in_3:
  \forall (x: nat).(\forall (y: nat).(\forall (z: nat).(eq nat (plus (plus x 
 y) z) (plus (plus x z) y))))
 \def
- \lambda (x: nat).(\lambda (y: nat).(\lambda (z: nat).(let TMP_1 \def (plus y 
-z) in (let TMP_2 \def (plus x TMP_1) in (let TMP_5 \def (\lambda (n: 
-nat).(let TMP_3 \def (plus x z) in (let TMP_4 \def (plus TMP_3 y) in (eq nat 
-n TMP_4)))) in (let TMP_6 \def (plus z y) in (let TMP_10 \def (\lambda (n: 
-nat).(let TMP_7 \def (plus x n) in (let TMP_8 \def (plus x z) in (let TMP_9 
-\def (plus TMP_8 y) in (eq nat TMP_7 TMP_9))))) in (let TMP_11 \def (plus x 
-z) in (let TMP_12 \def (plus TMP_11 y) in (let TMP_15 \def (\lambda (n: 
-nat).(let TMP_13 \def (plus x z) in (let TMP_14 \def (plus TMP_13 y) in (eq 
-nat n TMP_14)))) in (let TMP_16 \def (plus x z) in (let TMP_17 \def (plus 
-TMP_16 y) in (let TMP_18 \def (refl_equal nat TMP_17) in (let TMP_19 \def 
-(plus z y) in (let TMP_20 \def (plus x TMP_19) in (let TMP_21 \def 
-(plus_assoc_r x z y) in (let TMP_22 \def (eq_ind nat TMP_12 TMP_15 TMP_18 
-TMP_20 TMP_21) in (let TMP_23 \def (plus y z) in (let TMP_24 \def (plus_sym y 
-z) in (let TMP_25 \def (eq_ind_r nat TMP_6 TMP_10 TMP_22 TMP_23 TMP_24) in 
-(let TMP_26 \def (plus x y) in (let TMP_27 \def (plus TMP_26 z) in (let 
-TMP_28 \def (plus_assoc_r x y z) in (eq_ind_r nat TMP_2 TMP_5 TMP_25 TMP_27 
-TMP_28)))))))))))))))))))))))).
+ \lambda (x: nat).(\lambda (y: nat).(\lambda (z: nat).(eq_ind_r nat (plus x 
+(plus y z)) (\lambda (n: nat).(eq nat n (plus (plus x z) y))) (eq_ind_r nat 
+(plus z y) (\lambda (n: nat).(eq nat (plus x n) (plus (plus x z) y))) (eq_ind 
+nat (plus (plus x z) y) (\lambda (n: nat).(eq nat n (plus (plus x z) y))) 
+(refl_equal nat (plus (plus x z) y)) (plus x (plus z y)) (plus_assoc_r x z 
+y)) (plus y z) (plus_sym y z)) (plus (plus x y) z) (plus_assoc_r x y z)))).
 
 theorem plus_permute_2_in_3_assoc:
  \forall (n: nat).(\forall (h: nat).(\forall (k: nat).(eq nat (plus (plus n 
 h) k) (plus n (plus k h)))))
 \def
- \lambda (n: nat).(\lambda (h: nat).(\lambda (k: nat).(let TMP_1 \def (plus n 
-k) in (let TMP_2 \def (plus TMP_1 h) in (let TMP_5 \def (\lambda (n0: 
-nat).(let TMP_3 \def (plus k h) in (let TMP_4 \def (plus n TMP_3) in (eq nat 
-n0 TMP_4)))) in (let TMP_6 \def (plus n k) in (let TMP_7 \def (plus TMP_6 h) 
-in (let TMP_10 \def (\lambda (n0: nat).(let TMP_8 \def (plus n k) in (let 
-TMP_9 \def (plus TMP_8 h) in (eq nat TMP_9 n0)))) in (let TMP_11 \def (plus n 
-k) in (let TMP_12 \def (plus TMP_11 h) in (let TMP_13 \def (refl_equal nat 
-TMP_12) in (let TMP_14 \def (plus k h) in (let TMP_15 \def (plus n TMP_14) in 
-(let TMP_16 \def (plus_assoc_l n k h) in (let TMP_17 \def (eq_ind_r nat TMP_7 
-TMP_10 TMP_13 TMP_15 TMP_16) in (let TMP_18 \def (plus n h) in (let TMP_19 
-\def (plus TMP_18 k) in (let TMP_20 \def (plus_permute_2_in_3 n h k) in 
-(eq_ind_r nat TMP_2 TMP_5 TMP_17 TMP_19 TMP_20))))))))))))))))))).
+ \lambda (n: nat).(\lambda (h: nat).(\lambda (k: nat).(eq_ind_r nat (plus 
+(plus n k) h) (\lambda (n0: nat).(eq nat n0 (plus n (plus k h)))) (eq_ind_r 
+nat (plus (plus n k) h) (\lambda (n0: nat).(eq nat (plus (plus n k) h) n0)) 
+(refl_equal nat (plus (plus n k) h)) (plus n (plus k h)) (plus_assoc_l n k 
+h)) (plus (plus n h) k) (plus_permute_2_in_3 n h k)))).
 
 theorem plus_O:
  \forall (x: nat).(\forall (y: nat).((eq nat (plus x y) O) \to (land (eq nat 
 x O) (eq nat y O))))
 \def
- \lambda (x: nat).(let TMP_3 \def (\lambda (n: nat).(\forall (y: nat).((eq 
-nat (plus n y) O) \to (let TMP_1 \def (eq nat n O) in (let TMP_2 \def (eq nat 
-y O) in (land TMP_1 TMP_2)))))) in (let TMP_7 \def (\lambda (y: nat).(\lambda 
-(H: (eq nat (plus O y) O)).(let TMP_4 \def (eq nat O O) in (let TMP_5 \def 
-(eq nat y O) in (let TMP_6 \def (refl_equal nat O) in (conj TMP_4 TMP_5 TMP_6 
-H)))))) in (let TMP_16 \def (\lambda (n: nat).(\lambda (_: ((\forall (y: 
-nat).((eq nat (plus n y) O) \to (land (eq nat n O) (eq nat y O)))))).(\lambda 
-(y: nat).(\lambda (H0: (eq nat (plus (S n) y) O)).(let H1 \def (match H0 with 
-[refl_equal \Rightarrow (\lambda (H1: (eq nat (plus (S n) y) O)).(let TMP_8 
-\def (S n) in (let TMP_9 \def (plus TMP_8 y) in (let TMP_10 \def (\lambda (e: 
-nat).(match e with [O \Rightarrow False | (S _) \Rightarrow True])) in (let 
-H2 \def (eq_ind nat TMP_9 TMP_10 I O H1) in (let TMP_11 \def (S n) in (let 
-TMP_12 \def (eq nat TMP_11 O) in (let TMP_13 \def (eq nat y O) in (let TMP_14 
-\def (land TMP_12 TMP_13) in (False_ind TMP_14 H2))))))))))]) in (let TMP_15 
-\def (refl_equal nat O) in (H1 TMP_15))))))) in (nat_ind TMP_3 TMP_7 TMP_16 
-x)))).
+ \lambda (x: nat).(nat_ind (\lambda (n: nat).(\forall (y: nat).((eq nat (plus 
+n y) O) \to (land (eq nat n O) (eq nat y O))))) (\lambda (y: nat).(\lambda 
+(H: (eq nat (plus O y) O)).(conj (eq nat O O) (eq nat y O) (refl_equal nat O) 
+H))) (\lambda (n: nat).(\lambda (_: ((\forall (y: nat).((eq nat (plus n y) O) 
+\to (land (eq nat n O) (eq nat y O)))))).(\lambda (y: nat).(\lambda (H0: (eq 
+nat (plus (S n) y) O)).(let H1 \def (match H0 with [refl_equal \Rightarrow 
+(\lambda (H1: (eq nat (plus (S n) y) O)).(let H2 \def (eq_ind nat (plus (S n) 
+y) (\lambda (e: nat).(match e with [O \Rightarrow False | (S _) \Rightarrow 
+True])) I O H1) in (False_ind (land (eq nat (S n) O) (eq nat y O)) H2)))]) in 
+(H1 (refl_equal nat O))))))) x).
 
 theorem minus_Sx_SO:
  \forall (x: nat).(eq nat (minus (S x) (S O)) x)
 \def
- \lambda (x: nat).(let TMP_1 \def (\lambda (n: nat).(eq nat n x)) in (let 
-TMP_2 \def (refl_equal nat x) in (let TMP_3 \def (minus x O) in (let TMP_4 
-\def (minus_n_O x) in (eq_ind nat x TMP_1 TMP_2 TMP_3 TMP_4))))).
+ \lambda (x: nat).(eq_ind nat x (\lambda (n: nat).(eq nat n x)) (refl_equal 
+nat x) (minus x O) (minus_n_O x)).
 
 theorem nat_dec_neg:
  \forall (i: nat).(\forall (j: nat).(or (not (eq nat i j)) (eq nat i j)))
 \def
- \lambda (i: nat).(let TMP_4 \def (\lambda (n: nat).(\forall (j: nat).(let 
-TMP_1 \def (eq nat n j) in (let TMP_2 \def (not TMP_1) in (let TMP_3 \def (eq 
-nat n j) in (or TMP_2 TMP_3)))))) in (let TMP_21 \def (\lambda (j: nat).(let 
-TMP_8 \def (\lambda (n: nat).(let TMP_5 \def (eq nat O n) in (let TMP_6 \def 
-(not TMP_5) in (let TMP_7 \def (eq nat O n) in (or TMP_6 TMP_7))))) in (let 
-TMP_9 \def (eq nat O O) in (let TMP_10 \def (not TMP_9) in (let TMP_11 \def 
-(eq nat O O) in (let TMP_12 \def (refl_equal nat O) in (let TMP_13 \def 
-(or_intror TMP_10 TMP_11 TMP_12) in (let TMP_20 \def (\lambda (n: 
-nat).(\lambda (_: (or (not (eq nat O n)) (eq nat O n))).(let TMP_14 \def (S 
-n) in (let TMP_15 \def (eq nat O TMP_14) in (let TMP_16 \def (not TMP_15) in 
-(let TMP_17 \def (S n) in (let TMP_18 \def (eq nat O TMP_17) in (let TMP_19 
-\def (O_S n) in (or_introl TMP_16 TMP_18 TMP_19))))))))) in (nat_ind TMP_8 
-TMP_13 TMP_20 j))))))))) in (let TMP_68 \def (\lambda (n: nat).(\lambda (H: 
-((\forall (j: nat).(or (not (eq nat n j)) (eq nat n j))))).(\lambda (j: 
-nat).(let TMP_27 \def (\lambda (n0: nat).(let TMP_22 \def (S n) in (let 
-TMP_23 \def (eq nat TMP_22 n0) in (let TMP_24 \def (not TMP_23) in (let 
-TMP_25 \def (S n) in (let TMP_26 \def (eq nat TMP_25 n0) in (or TMP_24 
-TMP_26))))))) in (let TMP_28 \def (S n) in (let TMP_29 \def (eq nat TMP_28 O) 
-in (let TMP_30 \def (not TMP_29) in (let TMP_31 \def (S n) in (let TMP_32 
-\def (eq nat TMP_31 O) in (let TMP_33 \def (S n) in (let TMP_34 \def (O_S n) 
-in (let TMP_35 \def (sym_not_eq nat O TMP_33 TMP_34) in (let TMP_36 \def 
-(or_introl TMP_30 TMP_32 TMP_35) in (let TMP_67 \def (\lambda (n0: 
-nat).(\lambda (_: (or (not (eq nat (S n) n0)) (eq nat (S n) n0))).(let TMP_37 
-\def (eq nat n n0) in (let TMP_38 \def (not TMP_37) in (let TMP_39 \def (eq 
-nat n n0) in (let TMP_40 \def (S n) in (let TMP_41 \def (S n0) in (let TMP_42 
-\def (eq nat TMP_40 TMP_41) in (let TMP_43 \def (not TMP_42) in (let TMP_44 
-\def (S n) in (let TMP_45 \def (S n0) in (let TMP_46 \def (eq nat TMP_44 
-TMP_45) in (let TMP_47 \def (or TMP_43 TMP_46) in (let TMP_56 \def (\lambda 
-(H1: (not (eq nat n n0))).(let TMP_48 \def (S n) in (let TMP_49 \def (S n0) 
-in (let TMP_50 \def (eq nat TMP_48 TMP_49) in (let TMP_51 \def (not TMP_50) 
-in (let TMP_52 \def (S n) in (let TMP_53 \def (S n0) in (let TMP_54 \def (eq 
-nat TMP_52 TMP_53) in (let TMP_55 \def (not_eq_S n n0 H1) in (or_introl 
-TMP_51 TMP_54 TMP_55)))))))))) in (let TMP_65 \def (\lambda (H1: (eq nat n 
-n0)).(let TMP_57 \def (S n) in (let TMP_58 \def (S n0) in (let TMP_59 \def 
-(eq nat TMP_57 TMP_58) in (let TMP_60 \def (not TMP_59) in (let TMP_61 \def 
-(S n) in (let TMP_62 \def (S n0) in (let TMP_63 \def (eq nat TMP_61 TMP_62) 
-in (let TMP_64 \def (f_equal nat nat S n n0 H1) in (or_intror TMP_60 TMP_63 
-TMP_64)))))))))) in (let TMP_66 \def (H n0) in (or_ind TMP_38 TMP_39 TMP_47 
-TMP_56 TMP_65 TMP_66))))))))))))))))) in (nat_ind TMP_27 TMP_36 TMP_67 
-j))))))))))))))) in (nat_ind TMP_4 TMP_21 TMP_68 i)))).
+ \lambda (i: nat).(nat_ind (\lambda (n: nat).(\forall (j: nat).(or (not (eq 
+nat n j)) (eq nat n j)))) (\lambda (j: nat).(nat_ind (\lambda (n: nat).(or 
+(not (eq nat O n)) (eq nat O n))) (or_intror (not (eq nat O O)) (eq nat O O) 
+(refl_equal nat O)) (\lambda (n: nat).(\lambda (_: (or (not (eq nat O n)) (eq 
+nat O n))).(or_introl (not (eq nat O (S n))) (eq nat O (S n)) (O_S n)))) j)) 
+(\lambda (n: nat).(\lambda (H: ((\forall (j: nat).(or (not (eq nat n j)) (eq 
+nat n j))))).(\lambda (j: nat).(nat_ind (\lambda (n0: nat).(or (not (eq nat 
+(S n) n0)) (eq nat (S n) n0))) (or_introl (not (eq nat (S n) O)) (eq nat (S 
+n) O) (sym_not_eq nat O (S n) (O_S n))) (\lambda (n0: nat).(\lambda (_: (or 
+(not (eq nat (S n) n0)) (eq nat (S n) n0))).(or_ind (not (eq nat n n0)) (eq 
+nat n n0) (or (not (eq nat (S n) (S n0))) (eq nat (S n) (S n0))) (\lambda 
+(H1: (not (eq nat n n0))).(or_introl (not (eq nat (S n) (S n0))) (eq nat (S 
+n) (S n0)) (not_eq_S n n0 H1))) (\lambda (H1: (eq nat n n0)).(or_intror (not 
+(eq nat (S n) (S n0))) (eq nat (S n) (S n0)) (f_equal nat nat S n n0 H1))) (H 
+n0)))) j)))) i).
 
 theorem neq_eq_e:
  \forall (i: nat).(\forall (j: nat).(\forall (P: Prop).((((not (eq nat i j)) 
@@ -225,337 +142,233 @@ theorem neq_eq_e:
 \def
  \lambda (i: nat).(\lambda (j: nat).(\lambda (P: Prop).(\lambda (H: (((not 
 (eq nat i j)) \to P))).(\lambda (H0: (((eq nat i j) \to P))).(let o \def 
-(nat_dec_neg i j) in (let TMP_1 \def (eq nat i j) in (let TMP_2 \def (not 
-TMP_1) in (let TMP_3 \def (eq nat i j) in (or_ind TMP_2 TMP_3 P H H0 
-o))))))))).
+(nat_dec_neg i j) in (or_ind (not (eq nat i j)) (eq nat i j) P H H0 o)))))).
 
 theorem le_false:
  \forall (m: nat).(\forall (n: nat).(\forall (P: Prop).((le m n) \to ((le (S 
 n) m) \to P))))
 \def
- \lambda (m: nat).(let TMP_1 \def (\lambda (n: nat).(\forall (n0: 
-nat).(\forall (P: Prop).((le n n0) \to ((le (S n0) n) \to P))))) in (let 
-TMP_9 \def (\lambda (n: nat).(\lambda (P: Prop).(\lambda (_: (le O 
-n)).(\lambda (H0: (le (S n) O)).(let H1 \def (match H0 with [le_n \Rightarrow 
-(\lambda (H1: (eq nat (S n) O)).(let TMP_6 \def (S n) in (let TMP_7 \def 
+ \lambda (m: nat).(nat_ind (\lambda (n: nat).(\forall (n0: nat).(\forall (P: 
+Prop).((le n n0) \to ((le (S n0) n) \to P))))) (\lambda (n: nat).(\lambda (P: 
+Prop).(\lambda (_: (le O n)).(\lambda (H0: (le (S n) O)).(let H1 \def (match 
+H0 with [le_n \Rightarrow (\lambda (H1: (eq nat (S n) O)).(let H2 \def 
+(eq_ind nat (S n) (\lambda (e: nat).(match e with [O \Rightarrow False | (S 
+_) \Rightarrow True])) I O H1) in (False_ind P H2))) | (le_S m0 H1) 
+\Rightarrow (\lambda (H2: (eq nat (S m0) O)).((let H3 \def (eq_ind nat (S m0) 
 (\lambda (e: nat).(match e with [O \Rightarrow False | (S _) \Rightarrow 
-True])) in (let H2 \def (eq_ind nat TMP_6 TMP_7 I O H1) in (False_ind P 
-H2))))) | (le_S m0 H1) \Rightarrow (\lambda (H2: (eq nat (S m0) O)).(let 
-TMP_2 \def (S m0) in (let TMP_3 \def (\lambda (e: nat).(match e with [O 
-\Rightarrow False | (S _) \Rightarrow True])) in (let H3 \def (eq_ind nat 
-TMP_2 TMP_3 I O H2) in (let TMP_4 \def ((le (S n) m0) \to P) in (let TMP_5 
-\def (False_ind TMP_4 H3) in (TMP_5 H1)))))))]) in (let TMP_8 \def 
-(refl_equal nat O) in (H1 TMP_8))))))) in (let TMP_23 \def (\lambda (n: 
-nat).(\lambda (H: ((\forall (n0: nat).(\forall (P: Prop).((le n n0) \to ((le 
-(S n0) n) \to P)))))).(\lambda (n0: nat).(let TMP_10 \def (\lambda (n1: 
-nat).(\forall (P: Prop).((le (S n) n1) \to ((le (S n1) (S n)) \to P)))) in 
-(let TMP_18 \def (\lambda (P: Prop).(\lambda (H0: (le (S n) O)).(\lambda (_: 
-(le (S O) (S n))).(let H2 \def (match H0 with [le_n \Rightarrow (\lambda (H2: 
-(eq nat (S n) O)).(let TMP_15 \def (S n) in (let TMP_16 \def (\lambda (e: 
-nat).(match e with [O \Rightarrow False | (S _) \Rightarrow True])) in (let 
-H3 \def (eq_ind nat TMP_15 TMP_16 I O H2) in (False_ind P H3))))) | (le_S m0 
-H2) \Rightarrow (\lambda (H3: (eq nat (S m0) O)).(let TMP_11 \def (S m0) in 
-(let TMP_12 \def (\lambda (e: nat).(match e with [O \Rightarrow False | (S _) 
-\Rightarrow True])) in (let H4 \def (eq_ind nat TMP_11 TMP_12 I O H3) in (let 
-TMP_13 \def ((le (S n) m0) \to P) in (let TMP_14 \def (False_ind TMP_13 H4) 
-in (TMP_14 H2)))))))]) in (let TMP_17 \def (refl_equal nat O) in (H2 
-TMP_17)))))) in (let TMP_22 \def (\lambda (n1: nat).(\lambda (_: ((\forall 
-(P: Prop).((le (S n) n1) \to ((le (S n1) (S n)) \to P))))).(\lambda (P: 
-Prop).(\lambda (H1: (le (S n) (S n1))).(\lambda (H2: (le (S (S n1)) (S 
-n))).(let TMP_19 \def (le_S_n n n1 H1) in (let TMP_20 \def (S n1) in (let 
-TMP_21 \def (le_S_n TMP_20 n H2) in (H n1 P TMP_19 TMP_21))))))))) in 
-(nat_ind TMP_10 TMP_18 TMP_22 n0))))))) in (nat_ind TMP_1 TMP_9 TMP_23 m)))).
+True])) I O H2) in (False_ind ((le (S n) m0) \to P) H3)) H1))]) in (H1 
+(refl_equal nat O))))))) (\lambda (n: nat).(\lambda (H: ((\forall (n0: 
+nat).(\forall (P: Prop).((le n n0) \to ((le (S n0) n) \to P)))))).(\lambda 
+(n0: nat).(nat_ind (\lambda (n1: nat).(\forall (P: Prop).((le (S n) n1) \to 
+((le (S n1) (S n)) \to P)))) (\lambda (P: Prop).(\lambda (H0: (le (S n) 
+O)).(\lambda (_: (le (S O) (S n))).(let H2 \def (match H0 with [le_n 
+\Rightarrow (\lambda (H2: (eq nat (S n) O)).(let H3 \def (eq_ind nat (S n) 
+(\lambda (e: nat).(match e with [O \Rightarrow False | (S _) \Rightarrow 
+True])) I O H2) in (False_ind P H3))) | (le_S m0 H2) \Rightarrow (\lambda 
+(H3: (eq nat (S m0) O)).((let H4 \def (eq_ind nat (S m0) (\lambda (e: 
+nat).(match e with [O \Rightarrow False | (S _) \Rightarrow True])) I O H3) 
+in (False_ind ((le (S n) m0) \to P) H4)) H2))]) in (H2 (refl_equal nat 
+O)))))) (\lambda (n1: nat).(\lambda (_: ((\forall (P: Prop).((le (S n) n1) 
+\to ((le (S n1) (S n)) \to P))))).(\lambda (P: Prop).(\lambda (H1: (le (S n) 
+(S n1))).(\lambda (H2: (le (S (S n1)) (S n))).(H n1 P (le_S_n n n1 H1) 
+(le_S_n (S n1) n H2))))))) n0)))) m).
 
 theorem le_Sx_x:
  \forall (x: nat).((le (S x) x) \to (\forall (P: Prop).P))
 \def
  \lambda (x: nat).(\lambda (H: (le (S x) x)).(\lambda (P: Prop).(let H0 \def 
-le_Sn_n in (let TMP_1 \def (H0 x H) in (False_ind P TMP_1))))).
+le_Sn_n in (False_ind P (H0 x H))))).
 
 theorem le_n_pred:
  \forall (n: nat).(\forall (m: nat).((le n m) \to (le (pred n) (pred m))))
 \def
- \lambda (n: nat).(\lambda (m: nat).(\lambda (H: (le n m)).(let TMP_3 \def 
-(\lambda (n0: nat).(let TMP_1 \def (pred n) in (let TMP_2 \def (pred n0) in 
-(le TMP_1 TMP_2)))) in (let TMP_4 \def (pred n) in (let TMP_5 \def (le_n 
-TMP_4) in (let TMP_9 \def (\lambda (m0: nat).(\lambda (_: (le n m0)).(\lambda 
-(H1: (le (pred n) (pred m0))).(let TMP_6 \def (pred n) in (let TMP_7 \def 
-(pred m0) in (let TMP_8 \def (le_pred_n m0) in (le_trans TMP_6 TMP_7 m0 H1 
-TMP_8))))))) in (le_ind n TMP_3 TMP_5 TMP_9 m H))))))).
+ \lambda (n: nat).(\lambda (m: nat).(\lambda (H: (le n m)).(le_ind n (\lambda 
+(n0: nat).(le (pred n) (pred n0))) (le_n (pred n)) (\lambda (m0: 
+nat).(\lambda (_: (le n m0)).(\lambda (H1: (le (pred n) (pred m0))).(le_trans 
+(pred n) (pred m0) m0 H1 (le_pred_n m0))))) m H))).
 
 theorem minus_le:
  \forall (x: nat).(\forall (y: nat).(le (minus x y) x))
 \def
- \lambda (x: nat).(let TMP_2 \def (\lambda (n: nat).(\forall (y: nat).(let 
-TMP_1 \def (minus n y) in (le TMP_1 n)))) in (let TMP_3 \def (\lambda (_: 
-nat).(le_O_n O)) in (let TMP_13 \def (\lambda (n: nat).(\lambda (H: ((\forall 
-(y: nat).(le (minus n y) n)))).(\lambda (y: nat).(let TMP_7 \def (\lambda 
-(n0: nat).(let TMP_4 \def (S n) in (let TMP_5 \def (minus TMP_4 n0) in (let 
-TMP_6 \def (S n) in (le TMP_5 TMP_6))))) in (let TMP_8 \def (S n) in (let 
-TMP_9 \def (le_n TMP_8) in (let TMP_12 \def (\lambda (n0: nat).(\lambda (_: 
-(le (match n0 with [O \Rightarrow (S n) | (S l) \Rightarrow (minus n l)]) (S 
-n))).(let TMP_10 \def (minus n n0) in (let TMP_11 \def (H n0) in (le_S TMP_10 
-n TMP_11))))) in (nat_ind TMP_7 TMP_9 TMP_12 y)))))))) in (nat_ind TMP_2 
-TMP_3 TMP_13 x)))).
+ \lambda (x: nat).(nat_ind (\lambda (n: nat).(\forall (y: nat).(le (minus n 
+y) n))) (\lambda (_: nat).(le_O_n O)) (\lambda (n: nat).(\lambda (H: 
+((\forall (y: nat).(le (minus n y) n)))).(\lambda (y: nat).(nat_ind (\lambda 
+(n0: nat).(le (minus (S n) n0) (S n))) (le_n (S n)) (\lambda (n0: 
+nat).(\lambda (_: (le (match n0 with [O \Rightarrow (S n) | (S l) \Rightarrow 
+(minus n l)]) (S n))).(le_S (minus n n0) n (H n0)))) y)))) x).
 
 theorem le_plus_minus_sym:
  \forall (n: nat).(\forall (m: nat).((le n m) \to (eq nat m (plus (minus m n) 
 n))))
 \def
- \lambda (n: nat).(\lambda (m: nat).(\lambda (H: (le n m)).(let TMP_1 \def 
-(minus m n) in (let TMP_2 \def (plus n TMP_1) in (let TMP_3 \def (\lambda 
-(n0: nat).(eq nat m n0)) in (let TMP_4 \def (le_plus_minus n m H) in (let 
-TMP_5 \def (minus m n) in (let TMP_6 \def (plus TMP_5 n) in (let TMP_7 \def 
-(minus m n) in (let TMP_8 \def (plus_sym TMP_7 n) in (eq_ind_r nat TMP_2 
-TMP_3 TMP_4 TMP_6 TMP_8))))))))))).
+ \lambda (n: nat).(\lambda (m: nat).(\lambda (H: (le n m)).(eq_ind_r nat 
+(plus n (minus m n)) (\lambda (n0: nat).(eq nat m n0)) (le_plus_minus n m H) 
+(plus (minus m n) n) (plus_sym (minus m n) n)))).
 
 theorem le_minus_minus:
  \forall (x: nat).(\forall (y: nat).((le x y) \to (\forall (z: nat).((le y z) 
 \to (le (minus y x) (minus z x))))))
 \def
  \lambda (x: nat).(\lambda (y: nat).(\lambda (H: (le x y)).(\lambda (z: 
-nat).(\lambda (H0: (le y z)).(let TMP_1 \def (minus y x) in (let TMP_2 \def 
-(minus z x) in (let TMP_5 \def (\lambda (n: nat).(let TMP_3 \def (minus z x) 
-in (let TMP_4 \def (plus x TMP_3) in (le n TMP_4)))) in (let TMP_6 \def 
-(\lambda (n: nat).(le y n)) in (let TMP_7 \def (minus z x) in (let TMP_8 \def 
-(plus x TMP_7) in (let TMP_9 \def (le_trans x y z H H0) in (let TMP_10 \def 
-(le_plus_minus_r x z TMP_9) in (let TMP_11 \def (eq_ind_r nat z TMP_6 H0 
-TMP_8 TMP_10) in (let TMP_12 \def (minus y x) in (let TMP_13 \def (plus x 
-TMP_12) in (let TMP_14 \def (le_plus_minus_r x y H) in (let TMP_15 \def 
-(eq_ind_r nat y TMP_5 TMP_11 TMP_13 TMP_14) in (simpl_le_plus_l x TMP_1 TMP_2 
-TMP_15)))))))))))))))))).
+nat).(\lambda (H0: (le y z)).(simpl_le_plus_l x (minus y x) (minus z x) 
+(eq_ind_r nat y (\lambda (n: nat).(le n (plus x (minus z x)))) (eq_ind_r nat 
+z (\lambda (n: nat).(le y n)) H0 (plus x (minus z x)) (le_plus_minus_r x z 
+(le_trans x y z H H0))) (plus x (minus y x)) (le_plus_minus_r x y H))))))).
 
 theorem le_minus_plus:
  \forall (z: nat).(\forall (x: nat).((le z x) \to (\forall (y: nat).(eq nat 
 (minus (plus x y) z) (plus (minus x z) y)))))
 \def
- \lambda (z: nat).(let TMP_5 \def (\lambda (n: nat).(\forall (x: nat).((le n 
-x) \to (\forall (y: nat).(let TMP_1 \def (plus x y) in (let TMP_2 \def (minus 
-TMP_1 n) in (let TMP_3 \def (minus x n) in (let TMP_4 \def (plus TMP_3 y) in 
-(eq nat TMP_2 TMP_4))))))))) in (let TMP_29 \def (\lambda (x: nat).(\lambda 
-(H: (le O x)).(let H0 \def (match H with [le_n \Rightarrow (\lambda (H0: (eq 
-nat O x)).(let TMP_20 \def (\lambda (n: nat).(\forall (y: nat).(let TMP_16 
-\def (plus n y) in (let TMP_17 \def (minus TMP_16 O) in (let TMP_18 \def 
-(minus n O) in (let TMP_19 \def (plus TMP_18 y) in (eq nat TMP_17 
-TMP_19))))))) in (let TMP_27 \def (\lambda (y: nat).(let TMP_21 \def (minus O 
-O) in (let TMP_22 \def (plus TMP_21 y) in (let TMP_23 \def (plus O y) in (let 
-TMP_24 \def (minus TMP_23 O) in (let TMP_25 \def (plus O y) in (let TMP_26 
-\def (minus_n_O TMP_25) in (sym_eq nat TMP_22 TMP_24 TMP_26)))))))) in 
-(eq_ind nat O TMP_20 TMP_27 x H0)))) | (le_S m H0) \Rightarrow (\lambda (H1: 
-(eq nat (S m) x)).(let TMP_6 \def (S m) in (let TMP_11 \def (\lambda (n: 
-nat).((le O m) \to (\forall (y: nat).(let TMP_7 \def (plus n y) in (let TMP_8 
-\def (minus TMP_7 O) in (let TMP_9 \def (minus n O) in (let TMP_10 \def (plus 
-TMP_9 y) in (eq nat TMP_8 TMP_10)))))))) in (let TMP_15 \def (\lambda (_: (le 
-O m)).(\lambda (y: nat).(let TMP_12 \def (S m) in (let TMP_13 \def (minus 
-TMP_12 O) in (let TMP_14 \def (plus TMP_13 y) in (refl_equal nat TMP_14)))))) 
-in (eq_ind nat TMP_6 TMP_11 TMP_15 x H1 H0)))))]) in (let TMP_28 \def 
-(refl_equal nat x) in (H0 TMP_28))))) in (let TMP_60 \def (\lambda (z0: 
-nat).(\lambda (H: ((\forall (x: nat).((le z0 x) \to (\forall (y: nat).(eq nat 
-(minus (plus x y) z0) (plus (minus x z0) y))))))).(\lambda (x: nat).(let 
-TMP_36 \def (\lambda (n: nat).((le (S z0) n) \to (\forall (y: nat).(let 
-TMP_30 \def (plus n y) in (let TMP_31 \def (S z0) in (let TMP_32 \def (minus 
-TMP_30 TMP_31) in (let TMP_33 \def (S z0) in (let TMP_34 \def (minus n 
-TMP_33) in (let TMP_35 \def (plus TMP_34 y) in (eq nat TMP_32 
-TMP_35)))))))))) in (let TMP_57 \def (\lambda (H0: (le (S z0) O)).(\lambda 
-(y: nat).(let H1 \def (match H0 with [le_n \Rightarrow (\lambda (H1: (eq nat 
-(S z0) O)).(let TMP_47 \def (S z0) in (let TMP_48 \def (\lambda (e: 
-nat).(match e with [O \Rightarrow False | (S _) \Rightarrow True])) in (let 
-H2 \def (eq_ind nat TMP_47 TMP_48 I O H1) in (let TMP_49 \def (plus O y) in 
-(let TMP_50 \def (S z0) in (let TMP_51 \def (minus TMP_49 TMP_50) in (let 
-TMP_52 \def (S z0) in (let TMP_53 \def (minus O TMP_52) in (let TMP_54 \def 
-(plus TMP_53 y) in (let TMP_55 \def (eq nat TMP_51 TMP_54) in (False_ind 
-TMP_55 H2)))))))))))) | (le_S m H1) \Rightarrow (\lambda (H2: (eq nat (S m) 
-O)).(let TMP_37 \def (S m) in (let TMP_38 \def (\lambda (e: nat).(match e 
-with [O \Rightarrow False | (S _) \Rightarrow True])) in (let H3 \def (eq_ind 
-nat TMP_37 TMP_38 I O H2) in (let TMP_45 \def ((le (S z0) m) \to (let TMP_39 
-\def (plus O y) in (let TMP_40 \def (S z0) in (let TMP_41 \def (minus TMP_39 
-TMP_40) in (let TMP_42 \def (S z0) in (let TMP_43 \def (minus O TMP_42) in 
-(let TMP_44 \def (plus TMP_43 y) in (eq nat TMP_41 TMP_44)))))))) in (let 
-TMP_46 \def (False_ind TMP_45 H3) in (TMP_46 H1)))))))]) in (let TMP_56 \def 
-(refl_equal nat O) in (H1 TMP_56))))) in (let TMP_59 \def (\lambda (n: 
+ \lambda (z: nat).(nat_ind (\lambda (n: nat).(\forall (x: nat).((le n x) \to 
+(\forall (y: nat).(eq nat (minus (plus x y) n) (plus (minus x n) y)))))) 
+(\lambda (x: nat).(\lambda (H: (le O x)).(let H0 \def (match H with [le_n 
+\Rightarrow (\lambda (H0: (eq nat O x)).(eq_ind nat O (\lambda (n: 
+nat).(\forall (y: nat).(eq nat (minus (plus n y) O) (plus (minus n O) y)))) 
+(\lambda (y: nat).(sym_eq nat (plus (minus O O) y) (minus (plus O y) O) 
+(minus_n_O (plus O y)))) x H0)) | (le_S m H0) \Rightarrow (\lambda (H1: (eq 
+nat (S m) x)).(eq_ind nat (S m) (\lambda (n: nat).((le O m) \to (\forall (y: 
+nat).(eq nat (minus (plus n y) O) (plus (minus n O) y))))) (\lambda (_: (le O 
+m)).(\lambda (y: nat).(refl_equal nat (plus (minus (S m) O) y)))) x H1 H0))]) 
+in (H0 (refl_equal nat x))))) (\lambda (z0: nat).(\lambda (H: ((\forall (x: 
+nat).((le z0 x) \to (\forall (y: nat).(eq nat (minus (plus x y) z0) (plus 
+(minus x z0) y))))))).(\lambda (x: nat).(nat_ind (\lambda (n: nat).((le (S 
+z0) n) \to (\forall (y: nat).(eq nat (minus (plus n y) (S z0)) (plus (minus n 
+(S z0)) y))))) (\lambda (H0: (le (S z0) O)).(\lambda (y: nat).(let H1 \def 
+(match H0 with [le_n \Rightarrow (\lambda (H1: (eq nat (S z0) O)).(let H2 
+\def (eq_ind nat (S z0) (\lambda (e: nat).(match e with [O \Rightarrow False 
+| (S _) \Rightarrow True])) I O H1) in (False_ind (eq nat (minus (plus O y) 
+(S z0)) (plus (minus O (S z0)) y)) H2))) | (le_S m H1) \Rightarrow (\lambda 
+(H2: (eq nat (S m) O)).((let H3 \def (eq_ind nat (S m) (\lambda (e: 
+nat).(match e with [O \Rightarrow False | (S _) \Rightarrow True])) I O H2) 
+in (False_ind ((le (S z0) m) \to (eq nat (minus (plus O y) (S z0)) (plus 
+(minus O (S z0)) y))) H3)) H1))]) in (H1 (refl_equal nat O))))) (\lambda (n: 
 nat).(\lambda (_: (((le (S z0) n) \to (\forall (y: nat).(eq nat (minus (plus 
 n y) (S z0)) (plus (minus n (S z0)) y)))))).(\lambda (H1: (le (S z0) (S 
-n))).(\lambda (y: nat).(let TMP_58 \def (le_S_n z0 n H1) in (H n TMP_58 
-y)))))) in (nat_ind TMP_36 TMP_57 TMP_59 x))))))) in (nat_ind TMP_5 TMP_29 
-TMP_60 z)))).
+n))).(\lambda (y: nat).(H n (le_S_n z0 n H1) y))))) x)))) z).
 
 theorem le_minus:
  \forall (x: nat).(\forall (z: nat).(\forall (y: nat).((le (plus x y) z) \to 
 (le x (minus z y)))))
 \def
  \lambda (x: nat).(\lambda (z: nat).(\lambda (y: nat).(\lambda (H: (le (plus 
-x y) z)).(let TMP_1 \def (plus x y) in (let TMP_2 \def (minus TMP_1 y) in 
-(let TMP_4 \def (\lambda (n: nat).(let TMP_3 \def (minus z y) in (le n 
-TMP_3))) in (let TMP_5 \def (plus x y) in (let TMP_6 \def (le_plus_r x y) in 
-(let TMP_7 \def (le_minus_minus y TMP_5 TMP_6 z H) in (let TMP_8 \def 
-(minus_plus_r x y) in (eq_ind nat TMP_2 TMP_4 TMP_7 x TMP_8))))))))))).
+x y) z)).(eq_ind nat (minus (plus x y) y) (\lambda (n: nat).(le n (minus z 
+y))) (le_minus_minus y (plus x y) (le_plus_r x y) z H) x (minus_plus_r x 
+y))))).
 
 theorem le_trans_plus_r:
  \forall (x: nat).(\forall (y: nat).(\forall (z: nat).((le (plus x y) z) \to 
 (le y z))))
 \def
  \lambda (x: nat).(\lambda (y: nat).(\lambda (z: nat).(\lambda (H: (le (plus 
-x y) z)).(let TMP_1 \def (plus x y) in (let TMP_2 \def (le_plus_r x y) in 
-(le_trans y TMP_1 z TMP_2 H)))))).
+x y) z)).(le_trans y (plus x y) z (le_plus_r x y) H)))).
 
 theorem lt_x_O:
  \forall (x: nat).((lt x O) \to (\forall (P: Prop).P))
 \def
- \lambda (x: nat).(\lambda (H: (le (S x) O)).(\lambda (P: Prop).(let TMP_1 
-\def (S x) in (let H_y \def (le_n_O_eq TMP_1 H) in (let TMP_2 \def (\lambda 
-(ee: nat).(match ee with [O \Rightarrow True | (S _) \Rightarrow False])) in 
-(let TMP_3 \def (S x) in (let H0 \def (eq_ind nat O TMP_2 I TMP_3 H_y) in 
-(False_ind P H0)))))))).
+ \lambda (x: nat).(\lambda (H: (le (S x) O)).(\lambda (P: Prop).(let H_y \def 
+(le_n_O_eq (S x) H) in (let H0 \def (eq_ind nat O (\lambda (ee: nat).(match 
+ee with [O \Rightarrow True | (S _) \Rightarrow False])) I (S x) H_y) in 
+(False_ind P H0))))).
 
 theorem le_gen_S:
  \forall (m: nat).(\forall (x: nat).((le (S m) x) \to (ex2 nat (\lambda (n: 
 nat).(eq nat x (S n))) (\lambda (n: nat).(le m n)))))
 \def
  \lambda (m: nat).(\lambda (x: nat).(\lambda (H: (le (S m) x)).(let H0 \def 
-(match H with [le_n \Rightarrow (\lambda (H0: (eq nat (S m) x)).(let TMP_16 
-\def (S m) in (let TMP_20 \def (\lambda (n: nat).(let TMP_18 \def (\lambda 
-(n0: nat).(let TMP_17 \def (S n0) in (eq nat n TMP_17))) in (let TMP_19 \def 
-(\lambda (n0: nat).(le m n0)) in (ex2 nat TMP_18 TMP_19)))) in (let TMP_23 
-\def (\lambda (n: nat).(let TMP_21 \def (S m) in (let TMP_22 \def (S n) in 
-(eq nat TMP_21 TMP_22)))) in (let TMP_24 \def (\lambda (n: nat).(le m n)) in 
-(let TMP_25 \def (S m) in (let TMP_26 \def (refl_equal nat TMP_25) in (let 
-TMP_27 \def (le_n m) in (let TMP_28 \def (ex_intro2 nat TMP_23 TMP_24 m 
-TMP_26 TMP_27) in (eq_ind nat TMP_16 TMP_20 TMP_28 x H0)))))))))) | (le_S m0 
-H0) \Rightarrow (\lambda (H1: (eq nat (S m0) x)).(let TMP_1 \def (S m0) in 
-(let TMP_5 \def (\lambda (n: nat).((le (S m) m0) \to (let TMP_3 \def (\lambda 
-(n0: nat).(let TMP_2 \def (S n0) in (eq nat n TMP_2))) in (let TMP_4 \def 
-(\lambda (n0: nat).(le m n0)) in (ex2 nat TMP_3 TMP_4))))) in (let TMP_15 
-\def (\lambda (H2: (le (S m) m0)).(let TMP_8 \def (\lambda (n: nat).(let 
-TMP_6 \def (S m0) in (let TMP_7 \def (S n) in (eq nat TMP_6 TMP_7)))) in (let 
-TMP_9 \def (\lambda (n: nat).(le m n)) in (let TMP_10 \def (S m0) in (let 
-TMP_11 \def (refl_equal nat TMP_10) in (let TMP_12 \def (S m) in (let TMP_13 
-\def (le_S TMP_12 m0 H2) in (let TMP_14 \def (le_S_n m m0 TMP_13) in 
-(ex_intro2 nat TMP_8 TMP_9 m0 TMP_11 TMP_14))))))))) in (eq_ind nat TMP_1 
-TMP_5 TMP_15 x H1 H0)))))]) in (let TMP_29 \def (refl_equal nat x) in (H0 
-TMP_29))))).
+(match H with [le_n \Rightarrow (\lambda (H0: (eq nat (S m) x)).(eq_ind nat 
+(S m) (\lambda (n: nat).(ex2 nat (\lambda (n0: nat).(eq nat n (S n0))) 
+(\lambda (n0: nat).(le m n0)))) (ex_intro2 nat (\lambda (n: nat).(eq nat (S 
+m) (S n))) (\lambda (n: nat).(le m n)) m (refl_equal nat (S m)) (le_n m)) x 
+H0)) | (le_S m0 H0) \Rightarrow (\lambda (H1: (eq nat (S m0) x)).(eq_ind nat 
+(S m0) (\lambda (n: nat).((le (S m) m0) \to (ex2 nat (\lambda (n0: nat).(eq 
+nat n (S n0))) (\lambda (n0: nat).(le m n0))))) (\lambda (H2: (le (S m) 
+m0)).(ex_intro2 nat (\lambda (n: nat).(eq nat (S m0) (S n))) (\lambda (n: 
+nat).(le m n)) m0 (refl_equal nat (S m0)) (le_S_n m m0 (le_S (S m) m0 H2)))) 
+x H1 H0))]) in (H0 (refl_equal nat x))))).
 
 theorem lt_x_plus_x_Sy:
  \forall (x: nat).(\forall (y: nat).(lt x (plus x (S y))))
 \def
- \lambda (x: nat).(\lambda (y: nat).(let TMP_1 \def (S y) in (let TMP_2 \def 
-(plus TMP_1 x) in (let TMP_3 \def (\lambda (n: nat).(lt x n)) in (let TMP_4 
-\def (S x) in (let TMP_5 \def (plus y x) in (let TMP_6 \def (S TMP_5) in (let 
-TMP_7 \def (S x) in (let TMP_8 \def (plus y x) in (let TMP_9 \def (S TMP_8) 
-in (let TMP_10 \def (plus y x) in (let TMP_11 \def (le_plus_r y x) in (let 
-TMP_12 \def (le_n_S x TMP_10 TMP_11) in (let TMP_13 \def (le_n_S TMP_7 TMP_9 
-TMP_12) in (let TMP_14 \def (le_S_n TMP_4 TMP_6 TMP_13) in (let TMP_15 \def 
-(S y) in (let TMP_16 \def (plus x TMP_15) in (let TMP_17 \def (S y) in (let 
-TMP_18 \def (plus_sym x TMP_17) in (eq_ind_r nat TMP_2 TMP_3 TMP_14 TMP_16 
-TMP_18)))))))))))))))))))).
+ \lambda (x: nat).(\lambda (y: nat).(eq_ind_r nat (plus (S y) x) (\lambda (n: 
+nat).(lt x n)) (le_S_n (S x) (S (plus y x)) (le_n_S (S x) (S (plus y x)) 
+(le_n_S x (plus y x) (le_plus_r y x)))) (plus x (S y)) (plus_sym x (S y)))).
 
 theorem simpl_lt_plus_r:
  \forall (p: nat).(\forall (n: nat).(\forall (m: nat).((lt (plus n p) (plus m 
 p)) \to (lt n m))))
 \def
  \lambda (p: nat).(\lambda (n: nat).(\lambda (m: nat).(\lambda (H: (lt (plus 
-n p) (plus m p))).(let TMP_1 \def (plus n p) in (let TMP_3 \def (\lambda (n0: 
-nat).(let TMP_2 \def (plus m p) in (lt n0 TMP_2))) in (let TMP_4 \def (plus p 
-n) in (let TMP_5 \def (plus_sym n p) in (let H0 \def (eq_ind nat TMP_1 TMP_3 
-H TMP_4 TMP_5) in (let TMP_6 \def (plus m p) in (let TMP_8 \def (\lambda (n0: 
-nat).(let TMP_7 \def (plus p n) in (lt TMP_7 n0))) in (let TMP_9 \def (plus p 
-m) in (let TMP_10 \def (plus_sym m p) in (let H1 \def (eq_ind nat TMP_6 TMP_8 
-H0 TMP_9 TMP_10) in (simpl_lt_plus_l n m p H1)))))))))))))).
+n p) (plus m p))).(simpl_lt_plus_l n m p (let H0 \def (eq_ind nat (plus n p) 
+(\lambda (n0: nat).(lt n0 (plus m p))) H (plus p n) (plus_sym n p)) in (let 
+H1 \def (eq_ind nat (plus m p) (\lambda (n0: nat).(lt (plus p n) n0)) H0 
+(plus p m) (plus_sym m p)) in H1)))))).
 
 theorem minus_x_Sy:
  \forall (x: nat).(\forall (y: nat).((lt y x) \to (eq nat (minus x y) (S 
 (minus x (S y))))))
 \def
- \lambda (x: nat).(let TMP_5 \def (\lambda (n: nat).(\forall (y: nat).((lt y 
-n) \to (let TMP_1 \def (minus n y) in (let TMP_2 \def (S y) in (let TMP_3 
-\def (minus n TMP_2) in (let TMP_4 \def (S TMP_3) in (eq nat TMP_1 
-TMP_4)))))))) in (let TMP_22 \def (\lambda (y: nat).(\lambda (H: (lt y 
-O)).(let H0 \def (match H with [le_n \Rightarrow (\lambda (H0: (eq nat (S y) 
-O)).(let TMP_14 \def (S y) in (let TMP_15 \def (\lambda (e: nat).(match e 
-with [O \Rightarrow False | (S _) \Rightarrow True])) in (let H1 \def (eq_ind 
-nat TMP_14 TMP_15 I O H0) in (let TMP_16 \def (minus O y) in (let TMP_17 \def 
-(S y) in (let TMP_18 \def (minus O TMP_17) in (let TMP_19 \def (S TMP_18) in 
-(let TMP_20 \def (eq nat TMP_16 TMP_19) in (False_ind TMP_20 H1)))))))))) | 
-(le_S m H0) \Rightarrow (\lambda (H1: (eq nat (S m) O)).(let TMP_6 \def (S m) 
-in (let TMP_7 \def (\lambda (e: nat).(match e with [O \Rightarrow False | (S 
-_) \Rightarrow True])) in (let H2 \def (eq_ind nat TMP_6 TMP_7 I O H1) in 
-(let TMP_12 \def ((le (S y) m) \to (let TMP_8 \def (minus O y) in (let TMP_9 
-\def (S y) in (let TMP_10 \def (minus O TMP_9) in (let TMP_11 \def (S TMP_10) 
-in (eq nat TMP_8 TMP_11)))))) in (let TMP_13 \def (False_ind TMP_12 H2) in 
-(TMP_13 H0)))))))]) in (let TMP_21 \def (refl_equal nat O) in (H0 TMP_21))))) 
-in (let TMP_40 \def (\lambda (n: nat).(\lambda (H: ((\forall (y: nat).((lt y 
-n) \to (eq nat (minus n y) (S (minus n (S y)))))))).(\lambda (y: nat).(let 
-TMP_29 \def (\lambda (n0: nat).((lt n0 (S n)) \to (let TMP_23 \def (S n) in 
-(let TMP_24 \def (minus TMP_23 n0) in (let TMP_25 \def (S n) in (let TMP_26 
-\def (S n0) in (let TMP_27 \def (minus TMP_25 TMP_26) in (let TMP_28 \def (S 
-TMP_27) in (eq nat TMP_24 TMP_28))))))))) in (let TMP_37 \def (\lambda (_: 
-(lt O (S n))).(let TMP_32 \def (\lambda (n0: nat).(let TMP_30 \def (S n) in 
-(let TMP_31 \def (S n0) in (eq nat TMP_30 TMP_31)))) in (let TMP_33 \def (S 
-n) in (let TMP_34 \def (refl_equal nat TMP_33) in (let TMP_35 \def (minus n 
-O) in (let TMP_36 \def (minus_n_O n) in (eq_ind nat n TMP_32 TMP_34 TMP_35 
-TMP_36))))))) in (let TMP_39 \def (\lambda (n0: nat).(\lambda (_: (((lt n0 (S 
-n)) \to (eq nat (minus (S n) n0) (S (minus (S n) (S n0))))))).(\lambda (H1: 
-(lt (S n0) (S n))).(let TMP_38 \def (S n0) in (let H2 \def (le_S_n TMP_38 n 
-H1) in (H n0 H2)))))) in (nat_ind TMP_29 TMP_37 TMP_39 y))))))) in (nat_ind 
-TMP_5 TMP_22 TMP_40 x)))).
+ \lambda (x: nat).(nat_ind (\lambda (n: nat).(\forall (y: nat).((lt y n) \to 
+(eq nat (minus n y) (S (minus n (S y))))))) (\lambda (y: nat).(\lambda (H: 
+(lt y O)).(let H0 \def (match H with [le_n \Rightarrow (\lambda (H0: (eq nat 
+(S y) O)).(let H1 \def (eq_ind nat (S y) (\lambda (e: nat).(match e with [O 
+\Rightarrow False | (S _) \Rightarrow True])) I O H0) in (False_ind (eq nat 
+(minus O y) (S (minus O (S y)))) H1))) | (le_S m H0) \Rightarrow (\lambda 
+(H1: (eq nat (S m) O)).((let H2 \def (eq_ind nat (S m) (\lambda (e: 
+nat).(match e with [O \Rightarrow False | (S _) \Rightarrow True])) I O H1) 
+in (False_ind ((le (S y) m) \to (eq nat (minus O y) (S (minus O (S y))))) 
+H2)) H0))]) in (H0 (refl_equal nat O))))) (\lambda (n: nat).(\lambda (H: 
+((\forall (y: nat).((lt y n) \to (eq nat (minus n y) (S (minus n (S 
+y)))))))).(\lambda (y: nat).(nat_ind (\lambda (n0: nat).((lt n0 (S n)) \to 
+(eq nat (minus (S n) n0) (S (minus (S n) (S n0)))))) (\lambda (_: (lt O (S 
+n))).(eq_ind nat n (\lambda (n0: nat).(eq nat (S n) (S n0))) (refl_equal nat 
+(S n)) (minus n O) (minus_n_O n))) (\lambda (n0: nat).(\lambda (_: (((lt n0 
+(S n)) \to (eq nat (minus (S n) n0) (S (minus (S n) (S n0))))))).(\lambda 
+(H1: (lt (S n0) (S n))).(let H2 \def (le_S_n (S n0) n H1) in (H n0 H2))))) 
+y)))) x).
 
 theorem lt_plus_minus:
  \forall (x: nat).(\forall (y: nat).((lt x y) \to (eq nat y (S (plus x (minus 
 y (S x)))))))
 \def
- \lambda (x: nat).(\lambda (y: nat).(\lambda (H: (lt x y)).(let TMP_1 \def (S 
-x) in (le_plus_minus TMP_1 y H)))).
+ \lambda (x: nat).(\lambda (y: nat).(\lambda (H: (lt x y)).(le_plus_minus (S 
+x) y H))).
 
 theorem lt_plus_minus_r:
  \forall (x: nat).(\forall (y: nat).((lt x y) \to (eq nat y (S (plus (minus y 
 (S x)) x)))))
 \def
- \lambda (x: nat).(\lambda (y: nat).(\lambda (H: (lt x y)).(let TMP_1 \def (S 
-x) in (let TMP_2 \def (minus y TMP_1) in (let TMP_3 \def (plus x TMP_2) in 
-(let TMP_5 \def (\lambda (n: nat).(let TMP_4 \def (S n) in (eq nat y TMP_4))) 
-in (let TMP_6 \def (lt_plus_minus x y H) in (let TMP_7 \def (S x) in (let 
-TMP_8 \def (minus y TMP_7) in (let TMP_9 \def (plus TMP_8 x) in (let TMP_10 
-\def (S x) in (let TMP_11 \def (minus y TMP_10) in (let TMP_12 \def (plus_sym 
-TMP_11 x) in (eq_ind_r nat TMP_3 TMP_5 TMP_6 TMP_9 TMP_12)))))))))))))).
+ \lambda (x: nat).(\lambda (y: nat).(\lambda (H: (lt x y)).(eq_ind_r nat 
+(plus x (minus y (S x))) (\lambda (n: nat).(eq nat y (S n))) (lt_plus_minus x 
+y H) (plus (minus y (S x)) x) (plus_sym (minus y (S x)) x)))).
 
 theorem minus_x_SO:
  \forall (x: nat).((lt O x) \to (eq nat x (S (minus x (S O)))))
 \def
- \lambda (x: nat).(\lambda (H: (lt O x)).(let TMP_1 \def (minus x O) in (let 
-TMP_2 \def (\lambda (n: nat).(eq nat x n)) in (let TMP_3 \def (\lambda (n: 
-nat).(eq nat x n)) in (let TMP_4 \def (refl_equal nat x) in (let TMP_5 \def 
-(minus x O) in (let TMP_6 \def (minus_n_O x) in (let TMP_7 \def (eq_ind nat x 
-TMP_3 TMP_4 TMP_5 TMP_6) in (let TMP_8 \def (S O) in (let TMP_9 \def (minus x 
-TMP_8) in (let TMP_10 \def (S TMP_9) in (let TMP_11 \def (minus_x_Sy x O H) 
-in (eq_ind nat TMP_1 TMP_2 TMP_7 TMP_10 TMP_11))))))))))))).
+ \lambda (x: nat).(\lambda (H: (lt O x)).(eq_ind nat (minus x O) (\lambda (n: 
+nat).(eq nat x n)) (eq_ind nat x (\lambda (n: nat).(eq nat x n)) (refl_equal 
+nat x) (minus x O) (minus_n_O x)) (S (minus x (S O))) (minus_x_Sy x O H))).
 
 theorem le_x_pred_y:
  \forall (y: nat).(\forall (x: nat).((lt x y) \to (le x (pred y))))
 \def
- \lambda (y: nat).(let TMP_2 \def (\lambda (n: nat).(\forall (x: nat).((lt x 
-n) \to (let TMP_1 \def (pred n) in (le x TMP_1))))) in (let TMP_11 \def 
-(\lambda (x: nat).(\lambda (H: (lt x O)).(let H0 \def (match H with [le_n 
-\Rightarrow (\lambda (H0: (eq nat (S x) O)).(let TMP_7 \def (S x) in (let 
-TMP_8 \def (\lambda (e: nat).(match e with [O \Rightarrow False | (S _) 
-\Rightarrow True])) in (let H1 \def (eq_ind nat TMP_7 TMP_8 I O H0) in (let 
-TMP_9 \def (le x O) in (False_ind TMP_9 H1)))))) | (le_S m H0) \Rightarrow 
-(\lambda (H1: (eq nat (S m) O)).(let TMP_3 \def (S m) in (let TMP_4 \def 
+ \lambda (y: nat).(nat_ind (\lambda (n: nat).(\forall (x: nat).((lt x n) \to 
+(le x (pred n))))) (\lambda (x: nat).(\lambda (H: (lt x O)).(let H0 \def 
+(match H with [le_n \Rightarrow (\lambda (H0: (eq nat (S x) O)).(let H1 \def 
+(eq_ind nat (S x) (\lambda (e: nat).(match e with [O \Rightarrow False | (S 
+_) \Rightarrow True])) I O H0) in (False_ind (le x O) H1))) | (le_S m H0) 
+\Rightarrow (\lambda (H1: (eq nat (S m) O)).((let H2 \def (eq_ind nat (S m) 
 (\lambda (e: nat).(match e with [O \Rightarrow False | (S _) \Rightarrow 
-True])) in (let H2 \def (eq_ind nat TMP_3 TMP_4 I O H1) in (let TMP_5 \def 
-((le (S x) m) \to (le x O)) in (let TMP_6 \def (False_ind TMP_5 H2) in (TMP_6 
-H0)))))))]) in (let TMP_10 \def (refl_equal nat O) in (H0 TMP_10))))) in (let 
-TMP_12 \def (\lambda (n: nat).(\lambda (_: ((\forall (x: nat).((lt x n) \to 
-(le x (pred n)))))).(\lambda (x: nat).(\lambda (H0: (lt x (S n))).(le_S_n x n 
-H0))))) in (nat_ind TMP_2 TMP_11 TMP_12 y)))).
+True])) I O H1) in (False_ind ((le (S x) m) \to (le x O)) H2)) H0))]) in (H0 
+(refl_equal nat O))))) (\lambda (n: nat).(\lambda (_: ((\forall (x: nat).((lt 
+x n) \to (le x (pred n)))))).(\lambda (x: nat).(\lambda (H0: (lt x (S 
+n))).(le_S_n x n H0))))) y).
 
 theorem lt_le_minus:
  \forall (x: nat).(\forall (y: nat).((lt x y) \to (le x (minus y (S O)))))
 \def
- \lambda (x: nat).(\lambda (y: nat).(\lambda (H: (lt x y)).(let TMP_1 \def (S 
-O) in (let TMP_2 \def (S O) in (let TMP_3 \def (plus TMP_2 x) in (let TMP_4 
-\def (\lambda (n: nat).(le n y)) in (let TMP_5 \def (S O) in (let TMP_6 \def 
-(plus x TMP_5) in (let TMP_7 \def (S O) in (let TMP_8 \def (plus_sym x TMP_7) 
-in (let TMP_9 \def (eq_ind_r nat TMP_3 TMP_4 H TMP_6 TMP_8) in (le_minus x y 
-TMP_1 TMP_9)))))))))))).
+ \lambda (x: nat).(\lambda (y: nat).(\lambda (H: (lt x y)).(le_minus x y (S 
+O) (eq_ind_r nat (plus (S O) x) (\lambda (n: nat).(le n y)) H (plus x (S O)) 
+(plus_sym x (S O)))))).
 
 theorem lt_le_e:
  \forall (n: nat).(\forall (d: nat).(\forall (P: Prop).((((lt n d) \to P)) 
@@ -563,8 +376,7 @@ theorem lt_le_e:
 \def
  \lambda (n: nat).(\lambda (d: nat).(\lambda (P: Prop).(\lambda (H: (((lt n 
 d) \to P))).(\lambda (H0: (((le d n) \to P))).(let H1 \def (le_or_lt d n) in 
-(let TMP_1 \def (le d n) in (let TMP_2 \def (lt n d) in (or_ind TMP_1 TMP_2 P 
-H0 H H1)))))))).
+(or_ind (le d n) (lt n d) P H0 H H1)))))).
 
 theorem lt_eq_e:
  \forall (x: nat).(\forall (y: nat).(\forall (P: Prop).((((lt x y) \to P)) 
@@ -572,8 +384,7 @@ theorem lt_eq_e:
 \def
  \lambda (x: nat).(\lambda (y: nat).(\lambda (P: Prop).(\lambda (H: (((lt x 
 y) \to P))).(\lambda (H0: (((eq nat x y) \to P))).(\lambda (H1: (le x 
-y)).(let TMP_1 \def (lt x y) in (let TMP_2 \def (eq nat x y) in (let TMP_3 
-\def (le_lt_or_eq x y H1) in (or_ind TMP_1 TMP_2 P H H0 TMP_3))))))))).
+y)).(or_ind (lt x y) (eq nat x y) P H H0 (le_lt_or_eq x y H1))))))).
 
 theorem lt_eq_gt_e:
  \forall (x: nat).(\forall (y: nat).(\forall (P: Prop).((((lt x y) \to P)) 
@@ -581,289 +392,201 @@ theorem lt_eq_gt_e:
 \def
  \lambda (x: nat).(\lambda (y: nat).(\lambda (P: Prop).(\lambda (H: (((lt x 
 y) \to P))).(\lambda (H0: (((eq nat x y) \to P))).(\lambda (H1: (((lt y x) 
-\to P))).(let TMP_3 \def (\lambda (H2: (le y x)).(let TMP_2 \def (\lambda 
-(H3: (eq nat y x)).(let TMP_1 \def (sym_eq nat y x H3) in (H0 TMP_1))) in 
-(lt_eq_e y x P H1 TMP_2 H2))) in (lt_le_e x y P H TMP_3))))))).
+\to P))).(lt_le_e x y P H (\lambda (H2: (le y x)).(lt_eq_e y x P H1 (\lambda 
+(H3: (eq nat y x)).(H0 (sym_eq nat y x H3))) H2)))))))).
 
 theorem lt_gen_xS:
  \forall (x: nat).(\forall (n: nat).((lt x (S n)) \to (or (eq nat x O) (ex2 
 nat (\lambda (m: nat).(eq nat x (S m))) (\lambda (m: nat).(lt m n))))))
 \def
- \lambda (x: nat).(let TMP_6 \def (\lambda (n: nat).(\forall (n0: nat).((lt n 
-(S n0)) \to (let TMP_1 \def (eq nat n O) in (let TMP_3 \def (\lambda (m: 
-nat).(let TMP_2 \def (S m) in (eq nat n TMP_2))) in (let TMP_4 \def (\lambda 
-(m: nat).(lt m n0)) in (let TMP_5 \def (ex2 nat TMP_3 TMP_4) in (or TMP_1 
-TMP_5)))))))) in (let TMP_13 \def (\lambda (n: nat).(\lambda (_: (lt O (S 
-n))).(let TMP_7 \def (eq nat O O) in (let TMP_9 \def (\lambda (m: nat).(let 
-TMP_8 \def (S m) in (eq nat O TMP_8))) in (let TMP_10 \def (\lambda (m: 
-nat).(lt m n)) in (let TMP_11 \def (ex2 nat TMP_9 TMP_10) in (let TMP_12 \def 
-(refl_equal nat O) in (or_introl TMP_7 TMP_11 TMP_12)))))))) in (let TMP_30 
-\def (\lambda (n: nat).(\lambda (_: ((\forall (n0: nat).((lt n (S n0)) \to 
-(or (eq nat n O) (ex2 nat (\lambda (m: nat).(eq nat n (S m))) (\lambda (m: 
-nat).(lt m n0)))))))).(\lambda (n0: nat).(\lambda (H0: (lt (S n) (S 
-n0))).(let TMP_14 \def (S n) in (let TMP_15 \def (eq nat TMP_14 O) in (let 
-TMP_18 \def (\lambda (m: nat).(let TMP_16 \def (S n) in (let TMP_17 \def (S 
-m) in (eq nat TMP_16 TMP_17)))) in (let TMP_19 \def (\lambda (m: nat).(lt m 
-n0)) in (let TMP_20 \def (ex2 nat TMP_18 TMP_19) in (let TMP_23 \def (\lambda 
-(m: nat).(let TMP_21 \def (S n) in (let TMP_22 \def (S m) in (eq nat TMP_21 
-TMP_22)))) in (let TMP_24 \def (\lambda (m: nat).(lt m n0)) in (let TMP_25 
-\def (S n) in (let TMP_26 \def (refl_equal nat TMP_25) in (let TMP_27 \def (S 
-n) in (let TMP_28 \def (le_S_n TMP_27 n0 H0) in (let TMP_29 \def (ex_intro2 
-nat TMP_23 TMP_24 n TMP_26 TMP_28) in (or_intror TMP_15 TMP_20 
-TMP_29))))))))))))))))) in (nat_ind TMP_6 TMP_13 TMP_30 x)))).
+ \lambda (x: nat).(nat_ind (\lambda (n: nat).(\forall (n0: nat).((lt n (S 
+n0)) \to (or (eq nat n O) (ex2 nat (\lambda (m: nat).(eq nat n (S m))) 
+(\lambda (m: nat).(lt m n0))))))) (\lambda (n: nat).(\lambda (_: (lt O (S 
+n))).(or_introl (eq nat O O) (ex2 nat (\lambda (m: nat).(eq nat O (S m))) 
+(\lambda (m: nat).(lt m n))) (refl_equal nat O)))) (\lambda (n: nat).(\lambda 
+(_: ((\forall (n0: nat).((lt n (S n0)) \to (or (eq nat n O) (ex2 nat (\lambda 
+(m: nat).(eq nat n (S m))) (\lambda (m: nat).(lt m n0)))))))).(\lambda (n0: 
+nat).(\lambda (H0: (lt (S n) (S n0))).(or_intror (eq nat (S n) O) (ex2 nat 
+(\lambda (m: nat).(eq nat (S n) (S m))) (\lambda (m: nat).(lt m n0))) 
+(ex_intro2 nat (\lambda (m: nat).(eq nat (S n) (S m))) (\lambda (m: nat).(lt 
+m n0)) n (refl_equal nat (S n)) (le_S_n (S n) n0 H0))))))) x).
 
 theorem le_lt_false:
  \forall (x: nat).(\forall (y: nat).((le x y) \to ((lt y x) \to (\forall (P: 
 Prop).P))))
 \def
  \lambda (x: nat).(\lambda (y: nat).(\lambda (H: (le x y)).(\lambda (H0: (lt 
-y x)).(\lambda (P: Prop).(let TMP_1 \def (le_not_lt x y H H0) in (False_ind P 
-TMP_1)))))).
+y x)).(\lambda (P: Prop).(False_ind P (le_not_lt x y H H0)))))).
 
 theorem lt_neq:
  \forall (x: nat).(\forall (y: nat).((lt x y) \to (not (eq nat x y))))
 \def
  \lambda (x: nat).(\lambda (y: nat).(\lambda (H: (lt x y)).(\lambda (H0: (eq 
-nat x y)).(let TMP_1 \def (\lambda (n: nat).(lt n y)) in (let H1 \def (eq_ind 
-nat x TMP_1 H y H0) in (lt_n_n y H1)))))).
+nat x y)).(let H1 \def (eq_ind nat x (\lambda (n: nat).(lt n y)) H y H0) in 
+(lt_n_n y H1))))).
 
 theorem arith0:
  \forall (h2: nat).(\forall (d2: nat).(\forall (n: nat).((le (plus d2 h2) n) 
 \to (\forall (h1: nat).(le (plus d2 h1) (minus (plus n h1) h2))))))
 \def
  \lambda (h2: nat).(\lambda (d2: nat).(\lambda (n: nat).(\lambda (H: (le 
-(plus d2 h2) n)).(\lambda (h1: nat).(let TMP_1 \def (plus d2 h1) in (let 
-TMP_2 \def (plus h2 TMP_1) in (let TMP_3 \def (minus TMP_2 h2) in (let TMP_6 
-\def (\lambda (n0: nat).(let TMP_4 \def (plus n h1) in (let TMP_5 \def (minus 
-TMP_4 h2) in (le n0 TMP_5)))) in (let TMP_7 \def (plus d2 h1) in (let TMP_8 
-\def (plus h2 TMP_7) in (let TMP_9 \def (plus d2 h1) in (let TMP_10 \def 
-(le_plus_l h2 TMP_9) in (let TMP_11 \def (plus n h1) in (let TMP_12 \def 
-(plus h2 d2) in (let TMP_13 \def (plus TMP_12 h1) in (let TMP_15 \def 
-(\lambda (n0: nat).(let TMP_14 \def (plus n h1) in (le n0 TMP_14))) in (let 
-TMP_16 \def (plus d2 h2) in (let TMP_19 \def (\lambda (n0: nat).(let TMP_17 
-\def (plus n0 h1) in (let TMP_18 \def (plus n h1) in (le TMP_17 TMP_18)))) in 
-(let TMP_20 \def (plus d2 h2) in (let TMP_21 \def (plus TMP_20 h1) in (let 
-TMP_22 \def (plus n h1) in (let TMP_23 \def (plus d2 h2) in (let TMP_24 \def 
-(plus TMP_23 h1) in (let TMP_25 \def (plus n h1) in (let TMP_26 \def (plus d2 
-h2) in (let TMP_27 \def (le_n h1) in (let TMP_28 \def (le_plus_plus TMP_26 n 
-h1 h1 H TMP_27) in (let TMP_29 \def (le_n_S TMP_24 TMP_25 TMP_28) in (let 
-TMP_30 \def (le_S_n TMP_21 TMP_22 TMP_29) in (let TMP_31 \def (plus h2 d2) in 
-(let TMP_32 \def (plus_sym h2 d2) in (let TMP_33 \def (eq_ind_r nat TMP_16 
-TMP_19 TMP_30 TMP_31 TMP_32) in (let TMP_34 \def (plus d2 h1) in (let TMP_35 
-\def (plus h2 TMP_34) in (let TMP_36 \def (plus_assoc_l h2 d2 h1) in (let 
-TMP_37 \def (eq_ind_r nat TMP_13 TMP_15 TMP_33 TMP_35 TMP_36) in (let TMP_38 
-\def (le_minus_minus h2 TMP_8 TMP_10 TMP_11 TMP_37) in (let TMP_39 \def (plus 
-d2 h1) in (let TMP_40 \def (plus d2 h1) in (let TMP_41 \def (minus_plus h2 
-TMP_40) in (eq_ind nat TMP_3 TMP_6 TMP_38 TMP_39 
-TMP_41))))))))))))))))))))))))))))))))))))))))).
+(plus d2 h2) n)).(\lambda (h1: nat).(eq_ind nat (minus (plus h2 (plus d2 h1)) 
+h2) (\lambda (n0: nat).(le n0 (minus (plus n h1) h2))) (le_minus_minus h2 
+(plus h2 (plus d2 h1)) (le_plus_l h2 (plus d2 h1)) (plus n h1) (eq_ind_r nat 
+(plus (plus h2 d2) h1) (\lambda (n0: nat).(le n0 (plus n h1))) (eq_ind_r nat 
+(plus d2 h2) (\lambda (n0: nat).(le (plus n0 h1) (plus n h1))) (le_S_n (plus 
+(plus d2 h2) h1) (plus n h1) (le_n_S (plus (plus d2 h2) h1) (plus n h1) 
+(le_plus_plus (plus d2 h2) n h1 h1 H (le_n h1)))) (plus h2 d2) (plus_sym h2 
+d2)) (plus h2 (plus d2 h1)) (plus_assoc_l h2 d2 h1))) (plus d2 h1) 
+(minus_plus h2 (plus d2 h1))))))).
 
 theorem O_minus:
  \forall (x: nat).(\forall (y: nat).((le x y) \to (eq nat (minus x y) O)))
 \def
- \lambda (x: nat).(let TMP_2 \def (\lambda (n: nat).(\forall (y: nat).((le n 
-y) \to (let TMP_1 \def (minus n y) in (eq nat TMP_1 O))))) in (let TMP_3 \def 
-(\lambda (y: nat).(\lambda (_: (le O y)).(refl_equal nat O))) in (let TMP_20 
-\def (\lambda (x0: nat).(\lambda (H: ((\forall (y: nat).((le x0 y) \to (eq 
-nat (minus x0 y) O))))).(\lambda (y: nat).(let TMP_5 \def (\lambda (n: 
-nat).((le (S x0) n) \to (let TMP_4 \def (match n with [O \Rightarrow (S x0) | 
-(S l) \Rightarrow (minus x0 l)]) in (eq nat TMP_4 O)))) in (let TMP_17 \def 
-(\lambda (H0: (le (S x0) O)).(let TMP_7 \def (\lambda (n: nat).(let TMP_6 
-\def (S n) in (eq nat O TMP_6))) in (let TMP_8 \def (\lambda (n: nat).(le x0 
-n)) in (let TMP_9 \def (S x0) in (let TMP_10 \def (eq nat TMP_9 O) in (let 
-TMP_15 \def (\lambda (x1: nat).(\lambda (H1: (eq nat O (S x1))).(\lambda (_: 
-(le x0 x1)).(let TMP_11 \def (\lambda (ee: nat).(match ee with [O \Rightarrow 
-True | (S _) \Rightarrow False])) in (let TMP_12 \def (S x1) in (let H3 \def 
-(eq_ind nat O TMP_11 I TMP_12 H1) in (let TMP_13 \def (S x0) in (let TMP_14 
-\def (eq nat TMP_13 O) in (False_ind TMP_14 H3))))))))) in (let TMP_16 \def 
-(le_gen_S x0 O H0) in (ex2_ind nat TMP_7 TMP_8 TMP_10 TMP_15 TMP_16)))))))) 
-in (let TMP_19 \def (\lambda (n: nat).(\lambda (_: (((le (S x0) n) \to (eq 
-nat (match n with [O \Rightarrow (S x0) | (S l) \Rightarrow (minus x0 l)]) 
-O)))).(\lambda (H1: (le (S x0) (S n))).(let TMP_18 \def (le_S_n x0 n H1) in 
-(H n TMP_18))))) in (nat_ind TMP_5 TMP_17 TMP_19 y))))))) in (nat_ind TMP_2 
-TMP_3 TMP_20 x)))).
+ \lambda (x: nat).(nat_ind (\lambda (n: nat).(\forall (y: nat).((le n y) \to 
+(eq nat (minus n y) O)))) (\lambda (y: nat).(\lambda (_: (le O 
+y)).(refl_equal nat O))) (\lambda (x0: nat).(\lambda (H: ((\forall (y: 
+nat).((le x0 y) \to (eq nat (minus x0 y) O))))).(\lambda (y: nat).(nat_ind 
+(\lambda (n: nat).((le (S x0) n) \to (eq nat (match n with [O \Rightarrow (S 
+x0) | (S l) \Rightarrow (minus x0 l)]) O))) (\lambda (H0: (le (S x0) 
+O)).(ex2_ind nat (\lambda (n: nat).(eq nat O (S n))) (\lambda (n: nat).(le x0 
+n)) (eq nat (S x0) O) (\lambda (x1: nat).(\lambda (H1: (eq nat O (S 
+x1))).(\lambda (_: (le x0 x1)).(let H3 \def (eq_ind nat O (\lambda (ee: 
+nat).(match ee with [O \Rightarrow True | (S _) \Rightarrow False])) I (S x1) 
+H1) in (False_ind (eq nat (S x0) O) H3))))) (le_gen_S x0 O H0))) (\lambda (n: 
+nat).(\lambda (_: (((le (S x0) n) \to (eq nat (match n with [O \Rightarrow (S 
+x0) | (S l) \Rightarrow (minus x0 l)]) O)))).(\lambda (H1: (le (S x0) (S 
+n))).(H n (le_S_n x0 n H1))))) y)))) x).
 
 theorem minus_minus:
  \forall (z: nat).(\forall (x: nat).(\forall (y: nat).((le z x) \to ((le z y) 
 \to ((eq nat (minus x z) (minus y z)) \to (eq nat x y))))))
 \def
- \lambda (z: nat).(let TMP_1 \def (\lambda (n: nat).(\forall (x: 
-nat).(\forall (y: nat).((le n x) \to ((le n y) \to ((eq nat (minus x n) 
-(minus y n)) \to (eq nat x y))))))) in (let TMP_9 \def (\lambda (x: 
-nat).(\lambda (y: nat).(\lambda (_: (le O x)).(\lambda (_: (le O y)).(\lambda 
-(H1: (eq nat (minus x O) (minus y O))).(let TMP_2 \def (minus x O) in (let 
-TMP_4 \def (\lambda (n: nat).(let TMP_3 \def (minus y O) in (eq nat n 
-TMP_3))) in (let TMP_5 \def (minus_n_O x) in (let H2 \def (eq_ind_r nat TMP_2 
-TMP_4 H1 x TMP_5) in (let TMP_6 \def (minus y O) in (let TMP_7 \def (\lambda 
-(n: nat).(eq nat x n)) in (let TMP_8 \def (minus_n_O y) in (let H3 \def 
-(eq_ind_r nat TMP_6 TMP_7 H2 y TMP_8) in H3))))))))))))) in (let TMP_40 \def 
-(\lambda (z0: nat).(\lambda (IH: ((\forall (x: nat).(\forall (y: nat).((le z0 
-x) \to ((le z0 y) \to ((eq nat (minus x z0) (minus y z0)) \to (eq nat x 
-y)))))))).(\lambda (x: nat).(let TMP_10 \def (\lambda (n: nat).(\forall (y: 
-nat).((le (S z0) n) \to ((le (S z0) y) \to ((eq nat (minus n (S z0)) (minus y 
-(S z0))) \to (eq nat n y)))))) in (let TMP_20 \def (\lambda (y: nat).(\lambda 
-(H: (le (S z0) O)).(\lambda (_: (le (S z0) y)).(\lambda (_: (eq nat (minus O 
-(S z0)) (minus y (S z0)))).(let TMP_12 \def (\lambda (n: nat).(let TMP_11 
-\def (S n) in (eq nat O TMP_11))) in (let TMP_13 \def (\lambda (n: nat).(le 
-z0 n)) in (let TMP_14 \def (eq nat O y) in (let TMP_18 \def (\lambda (x0: 
-nat).(\lambda (H2: (eq nat O (S x0))).(\lambda (_: (le z0 x0)).(let TMP_15 
-\def (\lambda (ee: nat).(match ee with [O \Rightarrow True | (S _) 
-\Rightarrow False])) in (let TMP_16 \def (S x0) in (let H4 \def (eq_ind nat O 
-TMP_15 I TMP_16 H2) in (let TMP_17 \def (eq nat O y) in (False_ind TMP_17 
-H4)))))))) in (let TMP_19 \def (le_gen_S z0 O H) in (ex2_ind nat TMP_12 
-TMP_13 TMP_14 TMP_18 TMP_19)))))))))) in (let TMP_39 \def (\lambda (x0: 
+ \lambda (z: nat).(nat_ind (\lambda (n: nat).(\forall (x: nat).(\forall (y: 
+nat).((le n x) \to ((le n y) \to ((eq nat (minus x n) (minus y n)) \to (eq 
+nat x y))))))) (\lambda (x: nat).(\lambda (y: nat).(\lambda (_: (le O 
+x)).(\lambda (_: (le O y)).(\lambda (H1: (eq nat (minus x O) (minus y 
+O))).(let H2 \def (eq_ind_r nat (minus x O) (\lambda (n: nat).(eq nat n 
+(minus y O))) H1 x (minus_n_O x)) in (let H3 \def (eq_ind_r nat (minus y O) 
+(\lambda (n: nat).(eq nat x n)) H2 y (minus_n_O y)) in H3))))))) (\lambda 
+(z0: nat).(\lambda (IH: ((\forall (x: nat).(\forall (y: nat).((le z0 x) \to 
+((le z0 y) \to ((eq nat (minus x z0) (minus y z0)) \to (eq nat x 
+y)))))))).(\lambda (x: nat).(nat_ind (\lambda (n: nat).(\forall (y: nat).((le 
+(S z0) n) \to ((le (S z0) y) \to ((eq nat (minus n (S z0)) (minus y (S z0))) 
+\to (eq nat n y)))))) (\lambda (y: nat).(\lambda (H: (le (S z0) O)).(\lambda 
+(_: (le (S z0) y)).(\lambda (_: (eq nat (minus O (S z0)) (minus y (S 
+z0)))).(ex2_ind nat (\lambda (n: nat).(eq nat O (S n))) (\lambda (n: nat).(le 
+z0 n)) (eq nat O y) (\lambda (x0: nat).(\lambda (H2: (eq nat O (S 
+x0))).(\lambda (_: (le z0 x0)).(let H4 \def (eq_ind nat O (\lambda (ee: 
+nat).(match ee with [O \Rightarrow True | (S _) \Rightarrow False])) I (S x0) 
+H2) in (False_ind (eq nat O y) H4))))) (le_gen_S z0 O H)))))) (\lambda (x0: 
 nat).(\lambda (_: ((\forall (y: nat).((le (S z0) x0) \to ((le (S z0) y) \to 
 ((eq nat (minus x0 (S z0)) (minus y (S z0))) \to (eq nat x0 y))))))).(\lambda 
-(y: nat).(let TMP_22 \def (\lambda (n: nat).((le (S z0) (S x0)) \to ((le (S 
-z0) n) \to ((eq nat (minus (S x0) (S z0)) (minus n (S z0))) \to (let TMP_21 
-\def (S x0) in (eq nat TMP_21 n)))))) in (let TMP_34 \def (\lambda (H: (le (S 
-z0) (S x0))).(\lambda (H0: (le (S z0) O)).(\lambda (_: (eq nat (minus (S x0) 
-(S z0)) (minus O (S z0)))).(let H_y \def (le_S_n z0 x0 H) in (let TMP_24 \def 
-(\lambda (n: nat).(let TMP_23 \def (S n) in (eq nat O TMP_23))) in (let 
-TMP_25 \def (\lambda (n: nat).(le z0 n)) in (let TMP_26 \def (S x0) in (let 
-TMP_27 \def (eq nat TMP_26 O) in (let TMP_32 \def (\lambda (x1: nat).(\lambda 
-(H2: (eq nat O (S x1))).(\lambda (_: (le z0 x1)).(let TMP_28 \def (\lambda 
-(ee: nat).(match ee with [O \Rightarrow True | (S _) \Rightarrow False])) in 
-(let TMP_29 \def (S x1) in (let H4 \def (eq_ind nat O TMP_28 I TMP_29 H2) in 
-(let TMP_30 \def (S x0) in (let TMP_31 \def (eq nat TMP_30 O) in (False_ind 
-TMP_31 H4))))))))) in (let TMP_33 \def (le_gen_S z0 O H0) in (ex2_ind nat 
-TMP_24 TMP_25 TMP_27 TMP_32 TMP_33))))))))))) in (let TMP_38 \def (\lambda 
+(y: nat).(nat_ind (\lambda (n: nat).((le (S z0) (S x0)) \to ((le (S z0) n) 
+\to ((eq nat (minus (S x0) (S z0)) (minus n (S z0))) \to (eq nat (S x0) 
+n))))) (\lambda (H: (le (S z0) (S x0))).(\lambda (H0: (le (S z0) O)).(\lambda 
+(_: (eq nat (minus (S x0) (S z0)) (minus O (S z0)))).(let H_y \def (le_S_n z0 
+x0 H) in (ex2_ind nat (\lambda (n: nat).(eq nat O (S n))) (\lambda (n: 
+nat).(le z0 n)) (eq nat (S x0) O) (\lambda (x1: nat).(\lambda (H2: (eq nat O 
+(S x1))).(\lambda (_: (le z0 x1)).(let H4 \def (eq_ind nat O (\lambda (ee: 
+nat).(match ee with [O \Rightarrow True | (S _) \Rightarrow False])) I (S x1) 
+H2) in (False_ind (eq nat (S x0) O) H4))))) (le_gen_S z0 O H0)))))) (\lambda 
 (y0: nat).(\lambda (_: (((le (S z0) (S x0)) \to ((le (S z0) y0) \to ((eq nat 
 (minus (S x0) (S z0)) (minus y0 (S z0))) \to (eq nat (S x0) y0)))))).(\lambda 
 (H: (le (S z0) (S x0))).(\lambda (H0: (le (S z0) (S y0))).(\lambda (H1: (eq 
-nat (minus (S x0) (S z0)) (minus (S y0) (S z0)))).(let TMP_35 \def (le_S_n z0 
-x0 H) in (let TMP_36 \def (le_S_n z0 y0 H0) in (let TMP_37 \def (IH x0 y0 
-TMP_35 TMP_36 H1) in (f_equal nat nat S x0 y0 TMP_37))))))))) in (nat_ind 
-TMP_22 TMP_34 TMP_38 y))))))) in (nat_ind TMP_10 TMP_20 TMP_39 x))))))) in 
-(nat_ind TMP_1 TMP_9 TMP_40 z)))).
+nat (minus (S x0) (S z0)) (minus (S y0) (S z0)))).(f_equal nat nat S x0 y0 
+(IH x0 y0 (le_S_n z0 x0 H) (le_S_n z0 y0 H0) H1))))))) y)))) x)))) z).
 
 theorem plus_plus:
  \forall (z: nat).(\forall (x1: nat).(\forall (x2: nat).(\forall (y1: 
 nat).(\forall (y2: nat).((le x1 z) \to ((le x2 z) \to ((eq nat (plus (minus z 
 x1) y1) (plus (minus z x2) y2)) \to (eq nat (plus x1 y2) (plus x2 y1)))))))))
 \def
- \lambda (z: nat).(let TMP_3 \def (\lambda (n: nat).(\forall (x1: 
-nat).(\forall (x2: nat).(\forall (y1: nat).(\forall (y2: nat).((le x1 n) \to 
-((le x2 n) \to ((eq nat (plus (minus n x1) y1) (plus (minus n x2) y2)) \to 
-(let TMP_1 \def (plus x1 y2) in (let TMP_2 \def (plus x2 y1) in (eq nat TMP_1 
-TMP_2))))))))))) in (let TMP_17 \def (\lambda (x1: nat).(\lambda (x2: 
-nat).(\lambda (y1: nat).(\lambda (y2: nat).(\lambda (H: (le x1 O)).(\lambda 
-(H0: (le x2 O)).(\lambda (H1: (eq nat y1 y2)).(let TMP_6 \def (\lambda (n: 
-nat).(let TMP_4 \def (plus x1 n) in (let TMP_5 \def (plus x2 y1) in (eq nat 
-TMP_4 TMP_5)))) in (let H_y \def (le_n_O_eq x2 H0) in (let TMP_9 \def 
-(\lambda (n: nat).(let TMP_7 \def (plus x1 y1) in (let TMP_8 \def (plus n y1) 
-in (eq nat TMP_7 TMP_8)))) in (let H_y0 \def (le_n_O_eq x1 H) in (let TMP_12 
-\def (\lambda (n: nat).(let TMP_10 \def (plus n y1) in (let TMP_11 \def (plus 
-O y1) in (eq nat TMP_10 TMP_11)))) in (let TMP_13 \def (plus O y1) in (let 
-TMP_14 \def (refl_equal nat TMP_13) in (let TMP_15 \def (eq_ind nat O TMP_12 
-TMP_14 x1 H_y0) in (let TMP_16 \def (eq_ind nat O TMP_9 TMP_15 x2 H_y) in 
-(eq_ind nat y1 TMP_6 TMP_16 y2 H1))))))))))))))))) in (let TMP_91 \def 
+ \lambda (z: nat).(nat_ind (\lambda (n: nat).(\forall (x1: nat).(\forall (x2: 
+nat).(\forall (y1: nat).(\forall (y2: nat).((le x1 n) \to ((le x2 n) \to ((eq 
+nat (plus (minus n x1) y1) (plus (minus n x2) y2)) \to (eq nat (plus x1 y2) 
+(plus x2 y1)))))))))) (\lambda (x1: nat).(\lambda (x2: nat).(\lambda (y1: 
+nat).(\lambda (y2: nat).(\lambda (H: (le x1 O)).(\lambda (H0: (le x2 
+O)).(\lambda (H1: (eq nat y1 y2)).(eq_ind nat y1 (\lambda (n: nat).(eq nat 
+(plus x1 n) (plus x2 y1))) (let H_y \def (le_n_O_eq x2 H0) in (eq_ind nat O 
+(\lambda (n: nat).(eq nat (plus x1 y1) (plus n y1))) (let H_y0 \def 
+(le_n_O_eq x1 H) in (eq_ind nat O (\lambda (n: nat).(eq nat (plus n y1) (plus 
+O y1))) (refl_equal nat (plus O y1)) x1 H_y0)) x2 H_y)) y2 H1)))))))) 
 (\lambda (z0: nat).(\lambda (IH: ((\forall (x1: nat).(\forall (x2: 
 nat).(\forall (y1: nat).(\forall (y2: nat).((le x1 z0) \to ((le x2 z0) \to 
 ((eq nat (plus (minus z0 x1) y1) (plus (minus z0 x2) y2)) \to (eq nat (plus 
-x1 y2) (plus x2 y1))))))))))).(\lambda (x1: nat).(let TMP_20 \def (\lambda 
-(n: nat).(\forall (x2: nat).(\forall (y1: nat).(\forall (y2: nat).((le n (S 
-z0)) \to ((le x2 (S z0)) \to ((eq nat (plus (minus (S z0) n) y1) (plus (minus 
-(S z0) x2) y2)) \to (let TMP_18 \def (plus n y2) in (let TMP_19 \def (plus x2 
-y1) in (eq nat TMP_18 TMP_19)))))))))) in (let TMP_56 \def (\lambda (x2: 
-nat).(let TMP_23 \def (\lambda (n: nat).(\forall (y1: nat).(\forall (y2: 
-nat).((le O (S z0)) \to ((le n (S z0)) \to ((eq nat (plus (minus (S z0) O) 
-y1) (plus (minus (S z0) n) y2)) \to (let TMP_21 \def (plus O y2) in (let 
-TMP_22 \def (plus n y1) in (eq nat TMP_21 TMP_22))))))))) in (let TMP_32 \def 
-(\lambda (y1: nat).(\lambda (y2: nat).(\lambda (_: (le O (S z0))).(\lambda 
-(_: (le O (S z0))).(\lambda (H1: (eq nat (S (plus z0 y1)) (S (plus z0 
-y2)))).(let H_y \def (IH O O) in (let TMP_24 \def (minus z0 O) in (let TMP_25 
-\def (\lambda (n: nat).(\forall (y3: nat).(\forall (y4: nat).((le O z0) \to 
-((le O z0) \to ((eq nat (plus n y3) (plus n y4)) \to (eq nat y4 y3))))))) in 
-(let TMP_26 \def (minus_n_O z0) in (let H2 \def (eq_ind_r nat TMP_24 TMP_25 
-H_y z0 TMP_26) in (let TMP_27 \def (le_O_n z0) in (let TMP_28 \def (le_O_n 
-z0) in (let TMP_29 \def (plus z0 y1) in (let TMP_30 \def (plus z0 y2) in (let 
-TMP_31 \def (eq_add_S TMP_29 TMP_30 H1) in (H2 y1 y2 TMP_27 TMP_28 
-TMP_31)))))))))))))))) in (let TMP_55 \def (\lambda (x3: nat).(\lambda (_: 
-((\forall (y1: nat).(\forall (y2: nat).((le O (S z0)) \to ((le x3 (S z0)) \to 
-((eq nat (S (plus z0 y1)) (plus (match x3 with [O \Rightarrow (S z0) | (S l) 
-\Rightarrow (minus z0 l)]) y2)) \to (eq nat y2 (plus x3 y1))))))))).(\lambda 
-(y1: nat).(\lambda (y2: nat).(\lambda (_: (le O (S z0))).(\lambda (H0: (le (S 
-x3) (S z0))).(\lambda (H1: (eq nat (S (plus z0 y1)) (plus (minus z0 x3) 
-y2))).(let TMP_33 \def (S y1) in (let H_y \def (IH O x3 TMP_33) in (let 
-TMP_34 \def (minus z0 O) in (let TMP_37 \def (\lambda (n: nat).(\forall (y3: 
-nat).((le O z0) \to ((le x3 z0) \to ((eq nat (plus n (S y1)) (plus (minus z0 
-x3) y3)) \to (let TMP_35 \def (S y1) in (let TMP_36 \def (plus x3 TMP_35) in 
-(eq nat y3 TMP_36)))))))) in (let TMP_38 \def (minus_n_O z0) in (let H2 \def 
-(eq_ind_r nat TMP_34 TMP_37 H_y z0 TMP_38) in (let TMP_39 \def (S y1) in (let 
-TMP_40 \def (plus z0 TMP_39) in (let TMP_43 \def (\lambda (n: nat).(\forall 
-(y3: nat).((le O z0) \to ((le x3 z0) \to ((eq nat n (plus (minus z0 x3) y3)) 
-\to (let TMP_41 \def (S y1) in (let TMP_42 \def (plus x3 TMP_41) in (eq nat 
-y3 TMP_42)))))))) in (let TMP_44 \def (plus z0 y1) in (let TMP_45 \def (S 
-TMP_44) in (let TMP_46 \def (plus_n_Sm z0 y1) in (let H3 \def (eq_ind_r nat 
-TMP_40 TMP_43 H2 TMP_45 TMP_46) in (let TMP_47 \def (S y1) in (let TMP_48 
-\def (plus x3 TMP_47) in (let TMP_49 \def (\lambda (n: nat).(\forall (y3: 
-nat).((le O z0) \to ((le x3 z0) \to ((eq nat (S (plus z0 y1)) (plus (minus z0 
-x3) y3)) \to (eq nat y3 n)))))) in (let TMP_50 \def (plus x3 y1) in (let 
-TMP_51 \def (S TMP_50) in (let TMP_52 \def (plus_n_Sm x3 y1) in (let H4 \def 
-(eq_ind_r nat TMP_48 TMP_49 H3 TMP_51 TMP_52) in (let TMP_53 \def (le_O_n z0) 
-in (let TMP_54 \def (le_S_n x3 z0 H0) in (H4 y2 TMP_53 TMP_54 
-H1)))))))))))))))))))))))))))))) in (nat_ind TMP_23 TMP_32 TMP_55 x2))))) in 
-(let TMP_90 \def (\lambda (x2: nat).(\lambda (_: ((\forall (x3: nat).(\forall 
-(y1: nat).(\forall (y2: nat).((le x2 (S z0)) \to ((le x3 (S z0)) \to ((eq nat 
+x1 y2) (plus x2 y1))))))))))).(\lambda (x1: nat).(nat_ind (\lambda (n: 
+nat).(\forall (x2: nat).(\forall (y1: nat).(\forall (y2: nat).((le n (S z0)) 
+\to ((le x2 (S z0)) \to ((eq nat (plus (minus (S z0) n) y1) (plus (minus (S 
+z0) x2) y2)) \to (eq nat (plus n y2) (plus x2 y1))))))))) (\lambda (x2: 
+nat).(nat_ind (\lambda (n: nat).(\forall (y1: nat).(\forall (y2: nat).((le O 
+(S z0)) \to ((le n (S z0)) \to ((eq nat (plus (minus (S z0) O) y1) (plus 
+(minus (S z0) n) y2)) \to (eq nat (plus O y2) (plus n y1)))))))) (\lambda 
+(y1: nat).(\lambda (y2: nat).(\lambda (_: (le O (S z0))).(\lambda (_: (le O 
+(S z0))).(\lambda (H1: (eq nat (S (plus z0 y1)) (S (plus z0 y2)))).(let H_y 
+\def (IH O O) in (let H2 \def (eq_ind_r nat (minus z0 O) (\lambda (n: 
+nat).(\forall (y3: nat).(\forall (y4: nat).((le O z0) \to ((le O z0) \to ((eq 
+nat (plus n y3) (plus n y4)) \to (eq nat y4 y3))))))) H_y z0 (minus_n_O z0)) 
+in (H2 y1 y2 (le_O_n z0) (le_O_n z0) (eq_add_S (plus z0 y1) (plus z0 y2) 
+H1))))))))) (\lambda (x3: nat).(\lambda (_: ((\forall (y1: nat).(\forall (y2: 
+nat).((le O (S z0)) \to ((le x3 (S z0)) \to ((eq nat (S (plus z0 y1)) (plus 
+(match x3 with [O \Rightarrow (S z0) | (S l) \Rightarrow (minus z0 l)]) y2)) 
+\to (eq nat y2 (plus x3 y1))))))))).(\lambda (y1: nat).(\lambda (y2: 
+nat).(\lambda (_: (le O (S z0))).(\lambda (H0: (le (S x3) (S z0))).(\lambda 
+(H1: (eq nat (S (plus z0 y1)) (plus (minus z0 x3) y2))).(let H_y \def (IH O 
+x3 (S y1)) in (let H2 \def (eq_ind_r nat (minus z0 O) (\lambda (n: 
+nat).(\forall (y3: nat).((le O z0) \to ((le x3 z0) \to ((eq nat (plus n (S 
+y1)) (plus (minus z0 x3) y3)) \to (eq nat y3 (plus x3 (S y1)))))))) H_y z0 
+(minus_n_O z0)) in (let H3 \def (eq_ind_r nat (plus z0 (S y1)) (\lambda (n: 
+nat).(\forall (y3: nat).((le O z0) \to ((le x3 z0) \to ((eq nat n (plus 
+(minus z0 x3) y3)) \to (eq nat y3 (plus x3 (S y1)))))))) H2 (S (plus z0 y1)) 
+(plus_n_Sm z0 y1)) in (let H4 \def (eq_ind_r nat (plus x3 (S y1)) (\lambda 
+(n: nat).(\forall (y3: nat).((le O z0) \to ((le x3 z0) \to ((eq nat (S (plus 
+z0 y1)) (plus (minus z0 x3) y3)) \to (eq nat y3 n)))))) H3 (S (plus x3 y1)) 
+(plus_n_Sm x3 y1)) in (H4 y2 (le_O_n z0) (le_S_n x3 z0 H0) H1)))))))))))) 
+x2)) (\lambda (x2: nat).(\lambda (_: ((\forall (x3: nat).(\forall (y1: 
+nat).(\forall (y2: nat).((le x2 (S z0)) \to ((le x3 (S z0)) \to ((eq nat 
 (plus (minus (S z0) x2) y1) (plus (minus (S z0) x3) y2)) \to (eq nat (plus x2 
-y2) (plus x3 y1)))))))))).(\lambda (x3: nat).(let TMP_60 \def (\lambda (n: 
+y2) (plus x3 y1)))))))))).(\lambda (x3: nat).(nat_ind (\lambda (n: 
 nat).(\forall (y1: nat).(\forall (y2: nat).((le (S x2) (S z0)) \to ((le n (S 
 z0)) \to ((eq nat (plus (minus (S z0) (S x2)) y1) (plus (minus (S z0) n) y2)) 
-\to (let TMP_57 \def (S x2) in (let TMP_58 \def (plus TMP_57 y2) in (let 
-TMP_59 \def (plus n y1) in (eq nat TMP_58 TMP_59)))))))))) in (let TMP_83 
-\def (\lambda (y1: nat).(\lambda (y2: nat).(\lambda (H: (le (S x2) (S 
-z0))).(\lambda (_: (le O (S z0))).(\lambda (H1: (eq nat (plus (minus z0 x2) 
-y1) (S (plus z0 y2)))).(let TMP_61 \def (S y2) in (let H_y \def (IH x2 O y1 
-TMP_61) in (let TMP_62 \def (minus z0 O) in (let TMP_65 \def (\lambda (n: 
-nat).((le x2 z0) \to ((le O z0) \to ((eq nat (plus (minus z0 x2) y1) (plus n 
-(S y2))) \to (let TMP_63 \def (S y2) in (let TMP_64 \def (plus x2 TMP_63) in 
-(eq nat TMP_64 y1))))))) in (let TMP_66 \def (minus_n_O z0) in (let H2 \def 
-(eq_ind_r nat TMP_62 TMP_65 H_y z0 TMP_66) in (let TMP_67 \def (S y2) in (let 
-TMP_68 \def (plus z0 TMP_67) in (let TMP_71 \def (\lambda (n: nat).((le x2 
-z0) \to ((le O z0) \to ((eq nat (plus (minus z0 x2) y1) n) \to (let TMP_69 
-\def (S y2) in (let TMP_70 \def (plus x2 TMP_69) in (eq nat TMP_70 y1))))))) 
-in (let TMP_72 \def (plus z0 y2) in (let TMP_73 \def (S TMP_72) in (let 
-TMP_74 \def (plus_n_Sm z0 y2) in (let H3 \def (eq_ind_r nat TMP_68 TMP_71 H2 
-TMP_73 TMP_74) in (let TMP_75 \def (S y2) in (let TMP_76 \def (plus x2 
-TMP_75) in (let TMP_77 \def (\lambda (n: nat).((le x2 z0) \to ((le O z0) \to 
-((eq nat (plus (minus z0 x2) y1) (S (plus z0 y2))) \to (eq nat n y1))))) in 
-(let TMP_78 \def (plus x2 y2) in (let TMP_79 \def (S TMP_78) in (let TMP_80 
-\def (plus_n_Sm x2 y2) in (let H4 \def (eq_ind_r nat TMP_76 TMP_77 H3 TMP_79 
-TMP_80) in (let TMP_81 \def (le_S_n x2 z0 H) in (let TMP_82 \def (le_O_n z0) 
-in (H4 TMP_81 TMP_82 H1)))))))))))))))))))))))))))) in (let TMP_89 \def 
-(\lambda (x4: nat).(\lambda (_: ((\forall (y1: nat).(\forall (y2: nat).((le 
-(S x2) (S z0)) \to ((le x4 (S z0)) \to ((eq nat (plus (minus z0 x2) y1) (plus 
-(match x4 with [O \Rightarrow (S z0) | (S l) \Rightarrow (minus z0 l)]) y2)) 
-\to (eq nat (S (plus x2 y2)) (plus x4 y1))))))))).(\lambda (y1: nat).(\lambda 
-(y2: nat).(\lambda (H: (le (S x2) (S z0))).(\lambda (H0: (le (S x4) (S 
-z0))).(\lambda (H1: (eq nat (plus (minus z0 x2) y1) (plus (minus z0 x4) 
-y2))).(let TMP_84 \def (plus x2 y2) in (let TMP_85 \def (plus x4 y1) in (let 
-TMP_86 \def (le_S_n x2 z0 H) in (let TMP_87 \def (le_S_n x4 z0 H0) in (let 
-TMP_88 \def (IH x2 x4 y1 y2 TMP_86 TMP_87 H1) in (f_equal nat nat S TMP_84 
-TMP_85 TMP_88))))))))))))) in (nat_ind TMP_60 TMP_83 TMP_89 x3))))))) in 
-(nat_ind TMP_20 TMP_56 TMP_90 x1))))))) in (nat_ind TMP_3 TMP_17 TMP_91 z)))).
+\to (eq nat (plus (S x2) y2) (plus n y1)))))))) (\lambda (y1: nat).(\lambda 
+(y2: nat).(\lambda (H: (le (S x2) (S z0))).(\lambda (_: (le O (S 
+z0))).(\lambda (H1: (eq nat (plus (minus z0 x2) y1) (S (plus z0 y2)))).(let 
+H_y \def (IH x2 O y1 (S y2)) in (let H2 \def (eq_ind_r nat (minus z0 O) 
+(\lambda (n: nat).((le x2 z0) \to ((le O z0) \to ((eq nat (plus (minus z0 x2) 
+y1) (plus n (S y2))) \to (eq nat (plus x2 (S y2)) y1))))) H_y z0 (minus_n_O 
+z0)) in (let H3 \def (eq_ind_r nat (plus z0 (S y2)) (\lambda (n: nat).((le x2 
+z0) \to ((le O z0) \to ((eq nat (plus (minus z0 x2) y1) n) \to (eq nat (plus 
+x2 (S y2)) y1))))) H2 (S (plus z0 y2)) (plus_n_Sm z0 y2)) in (let H4 \def 
+(eq_ind_r nat (plus x2 (S y2)) (\lambda (n: nat).((le x2 z0) \to ((le O z0) 
+\to ((eq nat (plus (minus z0 x2) y1) (S (plus z0 y2))) \to (eq nat n y1))))) 
+H3 (S (plus x2 y2)) (plus_n_Sm x2 y2)) in (H4 (le_S_n x2 z0 H) (le_O_n z0) 
+H1)))))))))) (\lambda (x4: nat).(\lambda (_: ((\forall (y1: nat).(\forall 
+(y2: nat).((le (S x2) (S z0)) \to ((le x4 (S z0)) \to ((eq nat (plus (minus 
+z0 x2) y1) (plus (match x4 with [O \Rightarrow (S z0) | (S l) \Rightarrow 
+(minus z0 l)]) y2)) \to (eq nat (S (plus x2 y2)) (plus x4 
+y1))))))))).(\lambda (y1: nat).(\lambda (y2: nat).(\lambda (H: (le (S x2) (S 
+z0))).(\lambda (H0: (le (S x4) (S z0))).(\lambda (H1: (eq nat (plus (minus z0 
+x2) y1) (plus (minus z0 x4) y2))).(f_equal nat nat S (plus x2 y2) (plus x4 
+y1) (IH x2 x4 y1 y2 (le_S_n x2 z0 H) (le_S_n x4 z0 H0) H1))))))))) x3)))) 
+x1)))) z).
 
 theorem le_S_minus:
  \forall (d: nat).(\forall (h: nat).(\forall (n: nat).((le (plus d h) n) \to 
 (le d (S (minus n h))))))
 \def
  \lambda (d: nat).(\lambda (h: nat).(\lambda (n: nat).(\lambda (H: (le (plus 
-d h) n)).(let TMP_1 \def (plus d h) in (let TMP_2 \def (le_plus_l d h) in 
-(let H0 \def (le_trans d TMP_1 n TMP_2 H) in (let TMP_3 \def (\lambda (n0: 
-nat).(le d n0)) in (let TMP_4 \def (minus n h) in (let TMP_5 \def (plus TMP_4 
-h) in (let TMP_6 \def (plus d h) in (let TMP_7 \def (le_plus_r d h) in (let 
-TMP_8 \def (le_trans h TMP_6 n TMP_7 H) in (let TMP_9 \def (le_plus_minus_sym 
-h n TMP_8) in (let H1 \def (eq_ind nat n TMP_3 H0 TMP_5 TMP_9) in (let TMP_10 
-\def (minus n h) in (let TMP_11 \def (le_minus d n h H) in (le_S d TMP_10 
-TMP_11))))))))))))))))).
+d h) n)).(let H0 \def (le_trans d (plus d h) n (le_plus_l d h) H) in (let H1 
+\def (eq_ind nat n (\lambda (n0: nat).(le d n0)) H0 (plus (minus n h) h) 
+(le_plus_minus_sym h n (le_trans h (plus d h) n (le_plus_r d h) H))) in (le_S 
+d (minus n h) (le_minus d n h H))))))).
 
 theorem lt_x_pred_y:
  \forall (x: nat).(\forall (y: nat).((lt x (pred y)) \to (lt (S x) y)))
 \def
- \lambda (x: nat).(\lambda (y: nat).(let TMP_2 \def (\lambda (n: nat).((lt x 
-(pred n)) \to (let TMP_1 \def (S x) in (lt TMP_1 n)))) in (let TMP_5 \def 
-(\lambda (H: (lt x O)).(let TMP_3 \def (S x) in (let TMP_4 \def (lt TMP_3 O) 
-in (lt_x_O x H TMP_4)))) in (let TMP_6 \def (\lambda (n: nat).(\lambda (_: 
-(((lt x (pred n)) \to (lt (S x) n)))).(\lambda (H0: (lt x n)).(lt_n_S x n 
-H0)))) in (nat_ind TMP_2 TMP_5 TMP_6 y))))).
+ \lambda (x: nat).(\lambda (y: nat).(nat_ind (\lambda (n: nat).((lt x (pred 
+n)) \to (lt (S x) n))) (\lambda (H: (lt x O)).(lt_x_O x H (lt (S x) O))) 
+(\lambda (n: nat).(\lambda (_: (((lt x (pred n)) \to (lt (S x) n)))).(\lambda 
+(H0: (lt x n)).(lt_n_S x n H0)))) y)).
 
index ef7d48075c148b5adf6db4c302b34026f16b0bca..e6e1faf02c1f8af3e9af95cdf704e46c7e2c06b8 100644 (file)
@@ -23,8 +23,7 @@ theorem insert_eq:
 \def
  \lambda (S: Type[0]).(\lambda (x: S).(\lambda (P: ((S \to Prop))).(\lambda 
 (G: ((S \to Prop))).(\lambda (H: ((\forall (y: S).((P y) \to ((eq S y x) \to 
-(G y)))))).(\lambda (H0: (P x)).(let TMP_1 \def (refl_equal S x) in (H x H0 
-TMP_1))))))).
+(G y)))))).(\lambda (H0: (P x)).(H x H0 (refl_equal S x))))))).
 
 theorem unintro:
  \forall (A: Type[0]).(\forall (a: A).(\forall (P: ((A \to Prop))).(((\forall 
@@ -38,6 +37,5 @@ theorem xinduction:
 (x: A).((eq A t x) \to (P x)))) \to (P t))))
 \def
  \lambda (A: Type[0]).(\lambda (t: A).(\lambda (P: ((A \to Prop))).(\lambda 
-(H: ((\forall (x: A).((eq A t x) \to (P x))))).(let TMP_1 \def (refl_equal A 
-t) in (H t TMP_1))))).
+(H: ((\forall (x: A).((eq A t x) \to (P x))))).(H t (refl_equal A t))))).
 
index fb5163dde66c142ddb6df118b42bc2800769f16c..cfb67e1fffce3b3dfac7a5fb11077672a1f31af3 100644 (file)
@@ -22,14 +22,12 @@ inductive PList: Type[0] \def
 
 let rec PConsTail (hds: PList) on hds: nat \to (nat \to PList) \def \lambda 
 (h0: nat).(\lambda (d0: nat).(match hds with [PNil \Rightarrow (PCons h0 d0 
-PNil) | (PCons h d hds0) \Rightarrow (let TMP_1 \def (PConsTail hds0 h0 d0) 
-in (PCons h d TMP_1))])).
+PNil) | (PCons h d hds0) \Rightarrow (PCons h d (PConsTail hds0 h0 d0))])).
 
 let rec Ss (hds: PList) on hds: PList \def match hds with [PNil \Rightarrow 
-PNil | (PCons h d hds0) \Rightarrow (let TMP_1 \def (S d) in (let TMP_2 \def 
-(Ss hds0) in (PCons h TMP_1 TMP_2)))].
+PNil | (PCons h d hds0) \Rightarrow (PCons h (S d) (Ss hds0))].
 
 let rec papp (a: PList) on a: PList \to PList \def \lambda (b: PList).(match 
-a with [PNil \Rightarrow b | (PCons h d a0) \Rightarrow (let TMP_1 \def (papp 
-a0 b) in (PCons h d TMP_1))]).
+a with [PNil \Rightarrow b | (PCons h d a0) \Rightarrow (PCons h d (papp a0 
+b))]).
 
index 81bf3f928c3a103191f71568a42167c77a87fdff..ce17a3c12f47c52679db85e9ac0182490df65953 100644 (file)
@@ -20,22 +20,12 @@ theorem papp_ss:
  \forall (is1: PList).(\forall (is2: PList).(eq PList (papp (Ss is1) (Ss 
 is2)) (Ss (papp is1 is2))))
 \def
- \lambda (is1: PList).(let TMP_6 \def (\lambda (p: PList).(\forall (is2: 
-PList).(let TMP_1 \def (Ss p) in (let TMP_2 \def (Ss is2) in (let TMP_3 \def 
-(papp TMP_1 TMP_2) in (let TMP_4 \def (papp p is2) in (let TMP_5 \def (Ss 
-TMP_4) in (eq PList TMP_3 TMP_5)))))))) in (let TMP_8 \def (\lambda (is2: 
-PList).(let TMP_7 \def (Ss is2) in (refl_equal PList TMP_7))) in (let TMP_27 
-\def (\lambda (n: nat).(\lambda (n0: nat).(\lambda (p: PList).(\lambda (H: 
-((\forall (is2: PList).(eq PList (papp (Ss p) (Ss is2)) (Ss (papp p 
-is2)))))).(\lambda (is2: PList).(let TMP_9 \def (papp p is2) in (let TMP_10 
-\def (Ss TMP_9) in (let TMP_17 \def (\lambda (p0: PList).(let TMP_11 \def (S 
-n0) in (let TMP_12 \def (PCons n TMP_11 p0) in (let TMP_13 \def (S n0) in 
-(let TMP_14 \def (papp p is2) in (let TMP_15 \def (Ss TMP_14) in (let TMP_16 
-\def (PCons n TMP_13 TMP_15) in (eq PList TMP_12 TMP_16)))))))) in (let 
-TMP_18 \def (S n0) in (let TMP_19 \def (papp p is2) in (let TMP_20 \def (Ss 
-TMP_19) in (let TMP_21 \def (PCons n TMP_18 TMP_20) in (let TMP_22 \def 
-(refl_equal PList TMP_21) in (let TMP_23 \def (Ss p) in (let TMP_24 \def (Ss 
-is2) in (let TMP_25 \def (papp TMP_23 TMP_24) in (let TMP_26 \def (H is2) in 
-(eq_ind_r PList TMP_10 TMP_17 TMP_22 TMP_25 TMP_26)))))))))))))))))) in 
-(PList_ind TMP_6 TMP_8 TMP_27 is1)))).
+ \lambda (is1: PList).(PList_ind (\lambda (p: PList).(\forall (is2: 
+PList).(eq PList (papp (Ss p) (Ss is2)) (Ss (papp p is2))))) (\lambda (is2: 
+PList).(refl_equal PList (Ss is2))) (\lambda (n: nat).(\lambda (n0: 
+nat).(\lambda (p: PList).(\lambda (H: ((\forall (is2: PList).(eq PList (papp 
+(Ss p) (Ss is2)) (Ss (papp p is2)))))).(\lambda (is2: PList).(eq_ind_r PList 
+(Ss (papp p is2)) (\lambda (p0: PList).(eq PList (PCons n (S n0) p0) (PCons n 
+(S n0) (Ss (papp p is2))))) (refl_equal PList (PCons n (S n0) (Ss (papp p 
+is2)))) (papp (Ss p) (Ss is2)) (H is2))))))) is1).
 
index 1948116a6c62a0a22143c15711222cc0a32661bc..7eabcfdb5fa947f5baa5b69c7c17eef58cdc5f8d 100644 (file)
@@ -23,11 +23,8 @@ Prop))).((ex2 A (\lambda (x: A).(P x)) (\lambda (x: A).(Q x))) \to (ex2 A
 \def
  \lambda (A: Type[0]).(\lambda (P: ((A \to Prop))).(\lambda (Q: ((A \to 
 Prop))).(\lambda (H: (ex2 A (\lambda (x: A).(P x)) (\lambda (x: A).(Q 
-x)))).(let TMP_1 \def (\lambda (x: A).(P x)) in (let TMP_2 \def (\lambda (x: 
-A).(Q x)) in (let TMP_3 \def (\lambda (x: A).(Q x)) in (let TMP_4 \def 
-(\lambda (x: A).(P x)) in (let TMP_5 \def (ex2 A TMP_3 TMP_4) in (let TMP_8 
-\def (\lambda (x: A).(\lambda (H0: (P x)).(\lambda (H1: (Q x)).(let TMP_6 
-\def (\lambda (x0: A).(Q x0)) in (let TMP_7 \def (\lambda (x0: A).(P x0)) in 
-(ex_intro2 A TMP_6 TMP_7 x H1 H0)))))) in (ex2_ind A TMP_1 TMP_2 TMP_5 TMP_8 
-H)))))))))).
+x)))).(ex2_ind A (\lambda (x: A).(P x)) (\lambda (x: A).(Q x)) (ex2 A 
+(\lambda (x: A).(Q x)) (\lambda (x: A).(P x))) (\lambda (x: A).(\lambda (H0: 
+(P x)).(\lambda (H1: (Q x)).(ex_intro2 A (\lambda (x0: A).(Q x0)) (\lambda 
+(x0: A).(P x0)) x H1 H0)))) H)))).
 
index d9e9f05e876e0a11068f1647e422c6513067c556..75e58b0364f93ac5077e8fb475a8ce0d70517b29 100644 (file)
@@ -55,7 +55,7 @@ inductive le (n: nat): nat \to Prop \def
 definition lt:
  nat \to (nat \to Prop)
 \def
- \lambda (n: nat).(\lambda (m: nat).(let TMP_1 \def (S n) in (le TMP_1 m))).
+ \lambda (n: nat).(\lambda (m: nat).(le (S n) m)).
 
 definition IsSucc:
  nat \to Prop
@@ -69,8 +69,7 @@ definition pred:
  \lambda (n: nat).(match n with [O \Rightarrow O | (S u) \Rightarrow u]).
 
 let rec plus (n: nat) on n: nat \to nat \def \lambda (m: nat).(match n with 
-[O \Rightarrow m | (S p) \Rightarrow (let TMP_1 \def (plus p m) in (S 
-TMP_1))]).
+[O \Rightarrow m | (S p) \Rightarrow (S (plus p m))]).
 
 let rec minus (n: nat) on n: nat \to nat \def \lambda (m: nat).(match n with 
 [O \Rightarrow O | (S k) \Rightarrow (match m with [O \Rightarrow (S k) | (S 
@@ -90,6 +89,5 @@ definition ltof:
  \forall (A: Type[0]).(((A \to nat)) \to (A \to (A \to Prop)))
 \def
  \lambda (A: Type[0]).(\lambda (f: ((A \to nat))).(\lambda (a: A).(\lambda 
-(b: A).(let TMP_1 \def (f a) in (let TMP_2 \def (f b) in (lt TMP_1 
-TMP_2)))))).
+(b: A).(lt (f a) (f b))))).
 
index 5e19eab759ecf1f7baf246d7b39b71bc2a390e86..8738e723477753937d43b49254e1449b438b7f0d 100644 (file)
@@ -83,13 +83,12 @@ x P))).
 
 let rec le_ind (n: nat) (P: (nat \to Prop)) (f: P n) (f0: (\forall (m: 
 nat).((le n m) \to ((P m) \to (P (S m)))))) (n0: nat) (l: le n n0) on l: P n0 
-\def match l with [le_n \Rightarrow f | (le_S m l0) \Rightarrow (let TMP_1 
-\def ((le_ind n P f f0) m l0) in (f0 m l0 TMP_1))].
+\def match l with [le_n \Rightarrow f | (le_S m l0) \Rightarrow (f0 m l0 
+((le_ind n P f f0) m l0))].
 
 let rec Acc_ind (A: Type[0]) (R: (A \to (A \to Prop))) (P: (A \to Prop)) (f: 
 (\forall (x: A).(((\forall (y: A).((R y x) \to (Acc A R y)))) \to (((\forall 
 (y: A).((R y x) \to (P y)))) \to (P x))))) (a: A) (a0: Acc A R a) on a0: P a 
-\def match a0 with [(Acc_intro x a1) \Rightarrow (let TMP_2 \def (\lambda (y: 
-A).(\lambda (r: (R y x)).(let TMP_1 \def (a1 y r) in ((Acc_ind A R P f) y 
-TMP_1)))) in (f x a1 TMP_2))].
+\def match a0 with [(Acc_intro x a1) \Rightarrow (f x a1 (\lambda (y: 
+A).(\lambda (r: (R y x)).((Acc_ind A R P f) y (a1 y r)))))].
 
index a9223f1b14f63fea039caaf1cfbf3f9d7ec2a245..4022de81674c0b2bf540c92f43409d909a8ae814 100644 (file)
@@ -21,10 +21,8 @@ theorem f_equal:
 B))).(\forall (x: A).(\forall (y: A).((eq A x y) \to (eq B (f x) (f y)))))))
 \def
  \lambda (A: Type[0]).(\lambda (B: Type[0]).(\lambda (f: ((A \to 
-B))).(\lambda (x: A).(\lambda (y: A).(\lambda (H: (eq A x y)).(let TMP_3 \def 
-(\lambda (a: A).(let TMP_1 \def (f x) in (let TMP_2 \def (f a) in (eq B TMP_1 
-TMP_2)))) in (let TMP_4 \def (f x) in (let TMP_5 \def (refl_equal B TMP_4) in 
-(eq_ind A x TMP_3 TMP_5 y H))))))))).
+B))).(\lambda (x: A).(\lambda (y: A).(\lambda (H: (eq A x y)).(eq_ind A x 
+(\lambda (a: A).(eq B (f x) (f a))) (refl_equal B (f x)) y H)))))).
 
 theorem f_equal2:
  \forall (A1: Type[0]).(\forall (A2: Type[0]).(\forall (B: Type[0]).(\forall 
@@ -34,13 +32,10 @@ A2).(\forall (y2: A2).((eq A1 x1 y1) \to ((eq A2 x2 y2) \to (eq B (f x1 x2)
 \def
  \lambda (A1: Type[0]).(\lambda (A2: Type[0]).(\lambda (B: Type[0]).(\lambda 
 (f: ((A1 \to (A2 \to B)))).(\lambda (x1: A1).(\lambda (y1: A1).(\lambda (x2: 
-A2).(\lambda (y2: A2).(\lambda (H: (eq A1 x1 y1)).(let TMP_3 \def (\lambda 
-(a: A1).((eq A2 x2 y2) \to (let TMP_1 \def (f x1 x2) in (let TMP_2 \def (f a 
-y2) in (eq B TMP_1 TMP_2))))) in (let TMP_9 \def (\lambda (H0: (eq A2 x2 
-y2)).(let TMP_6 \def (\lambda (a: A2).(let TMP_4 \def (f x1 x2) in (let TMP_5 
-\def (f x1 a) in (eq B TMP_4 TMP_5)))) in (let TMP_7 \def (f x1 x2) in (let 
-TMP_8 \def (refl_equal B TMP_7) in (eq_ind A2 x2 TMP_6 TMP_8 y2 H0))))) in 
-(eq_ind A1 x1 TMP_3 TMP_9 y1 H))))))))))).
+A2).(\lambda (y2: A2).(\lambda (H: (eq A1 x1 y1)).(eq_ind A1 x1 (\lambda (a: 
+A1).((eq A2 x2 y2) \to (eq B (f x1 x2) (f a y2)))) (\lambda (H0: (eq A2 x2 
+y2)).(eq_ind A2 x2 (\lambda (a: A2).(eq B (f x1 x2) (f x1 a))) (refl_equal B 
+(f x1 x2)) y2 H0)) y1 H))))))))).
 
 theorem f_equal3:
  \forall (A1: Type[0]).(\forall (A2: Type[0]).(\forall (A3: Type[0]).(\forall 
@@ -52,50 +47,43 @@ A3).(\forall (y3: A3).((eq A1 x1 y1) \to ((eq A2 x2 y2) \to ((eq A3 x3 y3)
  \lambda (A1: Type[0]).(\lambda (A2: Type[0]).(\lambda (A3: Type[0]).(\lambda 
 (B: Type[0]).(\lambda (f: ((A1 \to (A2 \to (A3 \to B))))).(\lambda (x1: 
 A1).(\lambda (y1: A1).(\lambda (x2: A2).(\lambda (y2: A2).(\lambda (x3: 
-A3).(\lambda (y3: A3).(\lambda (H: (eq A1 x1 y1)).(let TMP_3 \def (\lambda 
-(a: A1).((eq A2 x2 y2) \to ((eq A3 x3 y3) \to (let TMP_1 \def (f x1 x2 x3) in 
-(let TMP_2 \def (f a y2 y3) in (eq B TMP_1 TMP_2)))))) in (let TMP_13 \def 
-(\lambda (H0: (eq A2 x2 y2)).(let TMP_6 \def (\lambda (a: A2).((eq A3 x3 y3) 
-\to (let TMP_4 \def (f x1 x2 x3) in (let TMP_5 \def (f x1 a y3) in (eq B 
-TMP_4 TMP_5))))) in (let TMP_12 \def (\lambda (H1: (eq A3 x3 y3)).(let TMP_9 
-\def (\lambda (a: A3).(let TMP_7 \def (f x1 x2 x3) in (let TMP_8 \def (f x1 
-x2 a) in (eq B TMP_7 TMP_8)))) in (let TMP_10 \def (f x1 x2 x3) in (let 
-TMP_11 \def (refl_equal B TMP_10) in (eq_ind A3 x3 TMP_9 TMP_11 y3 H1))))) in 
-(eq_ind A2 x2 TMP_6 TMP_12 y2 H0)))) in (eq_ind A1 x1 TMP_3 TMP_13 y1 
-H)))))))))))))).
+A3).(\lambda (y3: A3).(\lambda (H: (eq A1 x1 y1)).(eq_ind A1 x1 (\lambda (a: 
+A1).((eq A2 x2 y2) \to ((eq A3 x3 y3) \to (eq B (f x1 x2 x3) (f a y2 y3))))) 
+(\lambda (H0: (eq A2 x2 y2)).(eq_ind A2 x2 (\lambda (a: A2).((eq A3 x3 y3) 
+\to (eq B (f x1 x2 x3) (f x1 a y3)))) (\lambda (H1: (eq A3 x3 y3)).(eq_ind A3 
+x3 (\lambda (a: A3).(eq B (f x1 x2 x3) (f x1 x2 a))) (refl_equal B (f x1 x2 
+x3)) y3 H1)) y2 H0)) y1 H)))))))))))).
 
 theorem sym_eq:
  \forall (A: Type[0]).(\forall (x: A).(\forall (y: A).((eq A x y) \to (eq A y 
 x))))
 \def
  \lambda (A: Type[0]).(\lambda (x: A).(\lambda (y: A).(\lambda (H: (eq A x 
-y)).(let TMP_1 \def (\lambda (a: A).(eq A a x)) in (let TMP_2 \def 
-(refl_equal A x) in (eq_ind A x TMP_1 TMP_2 y H)))))).
+y)).(eq_ind A x (\lambda (a: A).(eq A a x)) (refl_equal A x) y H)))).
 
 theorem eq_ind_r:
  \forall (A: Type[0]).(\forall (x: A).(\forall (P: ((A \to Prop))).((P x) \to 
 (\forall (y: A).((eq A y x) \to (P y))))))
 \def
  \lambda (A: Type[0]).(\lambda (x: A).(\lambda (P: ((A \to Prop))).(\lambda 
-(H: (P x)).(\lambda (y: A).(\lambda (H0: (eq A y x)).(let TMP_1 \def (sym_eq 
-A y x H0) in (match TMP_1 with [refl_equal \Rightarrow H]))))))).
+(H: (P x)).(\lambda (y: A).(\lambda (H0: (eq A y x)).(match (sym_eq A y x H0) 
+with [refl_equal \Rightarrow H])))))).
 
 theorem trans_eq:
  \forall (A: Type[0]).(\forall (x: A).(\forall (y: A).(\forall (z: A).((eq A 
 x y) \to ((eq A y z) \to (eq A x z))))))
 \def
  \lambda (A: Type[0]).(\lambda (x: A).(\lambda (y: A).(\lambda (z: 
-A).(\lambda (H: (eq A x y)).(\lambda (H0: (eq A y z)).(let TMP_1 \def 
-(\lambda (a: A).(eq A x a)) in (eq_ind A y TMP_1 H z H0))))))).
+A).(\lambda (H: (eq A x y)).(\lambda (H0: (eq A y z)).(eq_ind A y (\lambda 
+(a: A).(eq A x a)) H z H0)))))).
 
 theorem sym_not_eq:
  \forall (A: Type[0]).(\forall (x: A).(\forall (y: A).((not (eq A x y)) \to 
 (not (eq A y x)))))
 \def
  \lambda (A: Type[0]).(\lambda (x: A).(\lambda (y: A).(\lambda (h1: (not (eq 
-A x y))).(\lambda (h2: (eq A y x)).(let TMP_1 \def (\lambda (a: A).(eq A a 
-y)) in (let TMP_2 \def (refl_equal A y) in (let TMP_3 \def (eq_ind A y TMP_1 
-TMP_2 x h2) in (h1 TMP_3)))))))).
+A x y))).(\lambda (h2: (eq A y x)).(h1 (eq_ind A y (\lambda (a: A).(eq A a 
+y)) (refl_equal A y) x h2)))))).
 
 theorem nat_double_ind:
  \forall (R: ((nat \to (nat \to Prop)))).(((\forall (n: nat).(R O n))) \to 
@@ -106,136 +94,108 @@ nat).(R n m))))))
  \lambda (R: ((nat \to (nat \to Prop)))).(\lambda (H: ((\forall (n: nat).(R O 
 n)))).(\lambda (H0: ((\forall (n: nat).(R (S n) O)))).(\lambda (H1: ((\forall 
 (n: nat).(\forall (m: nat).((R n m) \to (R (S n) (S m))))))).(\lambda (n: 
-nat).(let TMP_1 \def (\lambda (n0: nat).(\forall (m: nat).(R n0 m))) in (let 
-TMP_7 \def (\lambda (n0: nat).(\lambda (H2: ((\forall (m: nat).(R n0 
-m)))).(\lambda (m: nat).(let TMP_3 \def (\lambda (n1: nat).(let TMP_2 \def (S 
-n0) in (R TMP_2 n1))) in (let TMP_4 \def (H0 n0) in (let TMP_6 \def (\lambda 
-(n1: nat).(\lambda (_: (R (S n0) n1)).(let TMP_5 \def (H2 n1) in (H1 n0 n1 
-TMP_5)))) in (nat_ind TMP_3 TMP_4 TMP_6 m))))))) in (nat_ind TMP_1 H TMP_7 
-n))))))).
+nat).(nat_ind (\lambda (n0: nat).(\forall (m: nat).(R n0 m))) H (\lambda (n0: 
+nat).(\lambda (H2: ((\forall (m: nat).(R n0 m)))).(\lambda (m: nat).(nat_ind 
+(\lambda (n1: nat).(R (S n0) n1)) (H0 n0) (\lambda (n1: nat).(\lambda (_: (R 
+(S n0) n1)).(H1 n0 n1 (H2 n1)))) m)))) n))))).
 
 theorem eq_add_S:
  \forall (n: nat).(\forall (m: nat).((eq nat (S n) (S m)) \to (eq nat n m)))
 \def
- \lambda (n: nat).(\lambda (m: nat).(\lambda (H: (eq nat (S n) (S m))).(let 
-TMP_1 \def (S n) in (let TMP_2 \def (S m) in (f_equal nat nat pred TMP_1 
-TMP_2 H))))).
+ \lambda (n: nat).(\lambda (m: nat).(\lambda (H: (eq nat (S n) (S 
+m))).(f_equal nat nat pred (S n) (S m) H))).
 
 theorem O_S:
  \forall (n: nat).(not (eq nat O (S n)))
 \def
- \lambda (n: nat).(\lambda (H: (eq nat O (S n))).(let TMP_1 \def (S n) in 
-(let TMP_2 \def (\lambda (n0: nat).(IsSucc n0)) in (let TMP_3 \def (S n) in 
-(let TMP_4 \def (sym_eq nat O TMP_3 H) in (eq_ind nat TMP_1 TMP_2 I O 
-TMP_4)))))).
+ \lambda (n: nat).(\lambda (H: (eq nat O (S n))).(eq_ind nat (S n) (\lambda 
+(n0: nat).(IsSucc n0)) I O (sym_eq nat O (S n) H))).
 
 theorem not_eq_S:
  \forall (n: nat).(\forall (m: nat).((not (eq nat n m)) \to (not (eq nat (S 
 n) (S m)))))
 \def
  \lambda (n: nat).(\lambda (m: nat).(\lambda (H: (not (eq nat n m))).(\lambda 
-(H0: (eq nat (S n) (S m))).(let TMP_1 \def (eq_add_S n m H0) in (H TMP_1))))).
+(H0: (eq nat (S n) (S m))).(H (eq_add_S n m H0))))).
 
 theorem pred_Sn:
  \forall (m: nat).(eq nat m (pred (S m)))
 \def
- \lambda (m: nat).(let TMP_1 \def (S m) in (let TMP_2 \def (pred TMP_1) in 
-(refl_equal nat TMP_2))).
+ \lambda (m: nat).(refl_equal nat (pred (S m))).
 
 theorem S_pred:
  \forall (n: nat).(\forall (m: nat).((lt m n) \to (eq nat n (S (pred n)))))
 \def
- \lambda (n: nat).(\lambda (m: nat).(\lambda (H: (lt m n)).(let TMP_1 \def (S 
-m) in (let TMP_4 \def (\lambda (n0: nat).(let TMP_2 \def (pred n0) in (let 
-TMP_3 \def (S TMP_2) in (eq nat n0 TMP_3)))) in (let TMP_5 \def (S m) in (let 
-TMP_6 \def (pred TMP_5) in (let TMP_7 \def (S TMP_6) in (let TMP_8 \def 
-(refl_equal nat TMP_7) in (let TMP_12 \def (\lambda (m0: nat).(\lambda (_: 
-(le (S m) m0)).(\lambda (_: (eq nat m0 (S (pred m0)))).(let TMP_9 \def (S m0) 
-in (let TMP_10 \def (pred TMP_9) in (let TMP_11 \def (S TMP_10) in 
-(refl_equal nat TMP_11))))))) in (le_ind TMP_1 TMP_4 TMP_8 TMP_12 n 
-H)))))))))).
+ \lambda (n: nat).(\lambda (m: nat).(\lambda (H: (lt m n)).(le_ind (S m) 
+(\lambda (n0: nat).(eq nat n0 (S (pred n0)))) (refl_equal nat (S (pred (S 
+m)))) (\lambda (m0: nat).(\lambda (_: (le (S m) m0)).(\lambda (_: (eq nat m0 
+(S (pred m0)))).(refl_equal nat (S (pred (S m0))))))) n H))).
 
 theorem le_trans:
  \forall (n: nat).(\forall (m: nat).(\forall (p: nat).((le n m) \to ((le m p) 
 \to (le n p)))))
 \def
  \lambda (n: nat).(\lambda (m: nat).(\lambda (p: nat).(\lambda (H: (le n 
-m)).(\lambda (H0: (le m p)).(let TMP_1 \def (\lambda (n0: nat).(le n n0)) in 
-(let TMP_2 \def (\lambda (m0: nat).(\lambda (_: (le m m0)).(\lambda (IHle: 
-(le n m0)).(le_S n m0 IHle)))) in (le_ind m TMP_1 H TMP_2 p H0))))))).
+m)).(\lambda (H0: (le m p)).(le_ind m (\lambda (n0: nat).(le n n0)) H 
+(\lambda (m0: nat).(\lambda (_: (le m m0)).(\lambda (IHle: (le n m0)).(le_S n 
+m0 IHle)))) p H0))))).
 
 theorem le_trans_S:
  \forall (n: nat).(\forall (m: nat).((le (S n) m) \to (le n m)))
 \def
- \lambda (n: nat).(\lambda (m: nat).(\lambda (H: (le (S n) m)).(let TMP_1 
-\def (S n) in (let TMP_2 \def (le_n n) in (let TMP_3 \def (le_S n n TMP_2) in 
-(le_trans n TMP_1 m TMP_3 H)))))).
+ \lambda (n: nat).(\lambda (m: nat).(\lambda (H: (le (S n) m)).(le_trans n (S 
+n) m (le_S n n (le_n n)) H))).
 
 theorem le_n_S:
  \forall (n: nat).(\forall (m: nat).((le n m) \to (le (S n) (S m))))
 \def
- \lambda (n: nat).(\lambda (m: nat).(\lambda (H: (le n m)).(let TMP_3 \def 
-(\lambda (n0: nat).(let TMP_1 \def (S n) in (let TMP_2 \def (S n0) in (le 
-TMP_1 TMP_2)))) in (let TMP_4 \def (S n) in (let TMP_5 \def (le_n TMP_4) in 
-(let TMP_8 \def (\lambda (m0: nat).(\lambda (_: (le n m0)).(\lambda (IHle: 
-(le (S n) (S m0))).(let TMP_6 \def (S n) in (let TMP_7 \def (S m0) in (le_S 
-TMP_6 TMP_7 IHle)))))) in (le_ind n TMP_3 TMP_5 TMP_8 m H))))))).
+ \lambda (n: nat).(\lambda (m: nat).(\lambda (H: (le n m)).(le_ind n (\lambda 
+(n0: nat).(le (S n) (S n0))) (le_n (S n)) (\lambda (m0: nat).(\lambda (_: (le 
+n m0)).(\lambda (IHle: (le (S n) (S m0))).(le_S (S n) (S m0) IHle)))) m H))).
 
 theorem le_O_n:
  \forall (n: nat).(le O n)
 \def
- \lambda (n: nat).(let TMP_1 \def (\lambda (n0: nat).(le O n0)) in (let TMP_2 
-\def (le_n O) in (let TMP_3 \def (\lambda (n0: nat).(\lambda (IHn: (le O 
-n0)).(le_S O n0 IHn))) in (nat_ind TMP_1 TMP_2 TMP_3 n)))).
+ \lambda (n: nat).(nat_ind (\lambda (n0: nat).(le O n0)) (le_n O) (\lambda 
+(n0: nat).(\lambda (IHn: (le O n0)).(le_S O n0 IHn))) n).
 
 theorem le_S_n:
  \forall (n: nat).(\forall (m: nat).((le (S n) (S m)) \to (le n m)))
 \def
- \lambda (n: nat).(\lambda (m: nat).(\lambda (H: (le (S n) (S m))).(let TMP_1 
-\def (S n) in (let TMP_5 \def (\lambda (n0: nat).(let TMP_2 \def (S n) in 
-(let TMP_3 \def (pred TMP_2) in (let TMP_4 \def (pred n0) in (le TMP_3 
-TMP_4))))) in (let TMP_6 \def (le_n n) in (let TMP_7 \def (\lambda (m0: 
+ \lambda (n: nat).(\lambda (m: nat).(\lambda (H: (le (S n) (S m))).(le_ind (S 
+n) (\lambda (n0: nat).(le (pred (S n)) (pred n0))) (le_n n) (\lambda (m0: 
 nat).(\lambda (H0: (le (S n) m0)).(\lambda (_: (le n (pred m0))).(le_trans_S 
-n m0 H0)))) in (let TMP_8 \def (S m) in (le_ind TMP_1 TMP_5 TMP_6 TMP_7 TMP_8 
-H)))))))).
+n m0 H0)))) (S m) H))).
 
 theorem le_Sn_O:
  \forall (n: nat).(not (le (S n) O))
 \def
- \lambda (n: nat).(\lambda (H: (le (S n) O)).(let TMP_1 \def (S n) in (let 
-TMP_2 \def (\lambda (n0: nat).(IsSucc n0)) in (let TMP_3 \def (\lambda (m: 
-nat).(\lambda (_: (le (S n) m)).(\lambda (_: (IsSucc m)).I))) in (le_ind 
-TMP_1 TMP_2 I TMP_3 O H))))).
+ \lambda (n: nat).(\lambda (H: (le (S n) O)).(le_ind (S n) (\lambda (n0: 
+nat).(IsSucc n0)) I (\lambda (m: nat).(\lambda (_: (le (S n) m)).(\lambda (_: 
+(IsSucc m)).I))) O H)).
 
 theorem le_Sn_n:
  \forall (n: nat).(not (le (S n) n))
 \def
- \lambda (n: nat).(let TMP_3 \def (\lambda (n0: nat).(let TMP_1 \def (S n0) 
-in (let TMP_2 \def (le TMP_1 n0) in (not TMP_2)))) in (let TMP_4 \def 
-(le_Sn_O O) in (let TMP_7 \def (\lambda (n0: nat).(\lambda (IHn: (not (le (S 
-n0) n0))).(\lambda (H: (le (S (S n0)) (S n0))).(let TMP_5 \def (S n0) in (let 
-TMP_6 \def (le_S_n TMP_5 n0 H) in (IHn TMP_6)))))) in (nat_ind TMP_3 TMP_4 
-TMP_7 n)))).
+ \lambda (n: nat).(nat_ind (\lambda (n0: nat).(not (le (S n0) n0))) (le_Sn_O 
+O) (\lambda (n0: nat).(\lambda (IHn: (not (le (S n0) n0))).(\lambda (H: (le 
+(S (S n0)) (S n0))).(IHn (le_S_n (S n0) n0 H))))) n).
 
 theorem le_antisym:
  \forall (n: nat).(\forall (m: nat).((le n m) \to ((le m n) \to (eq nat n 
 m))))
 \def
- \lambda (n: nat).(\lambda (m: nat).(\lambda (h: (le n m)).(let TMP_1 \def 
-(\lambda (n0: nat).((le n0 n) \to (eq nat n n0))) in (let TMP_2 \def (\lambda 
-(_: (le n n)).(refl_equal nat n)) in (let TMP_8 \def (\lambda (m0: 
-nat).(\lambda (H: (le n m0)).(\lambda (_: (((le m0 n) \to (eq nat n 
-m0)))).(\lambda (H1: (le (S m0) n)).(let TMP_3 \def (S m0) in (let TMP_4 \def 
-(eq nat n TMP_3) in (let TMP_5 \def (S m0) in (let H2 \def (le_trans TMP_5 n 
-m0 H1 H) in (let H3 \def (le_Sn_n m0) in (let TMP_6 \def (\lambda (H4: (le (S 
-m0) m0)).(H3 H4)) in (let TMP_7 \def (TMP_6 H2) in (False_ind TMP_4 
-TMP_7)))))))))))) in (le_ind n TMP_1 TMP_2 TMP_8 m h)))))).
+ \lambda (n: nat).(\lambda (m: nat).(\lambda (h: (le n m)).(le_ind n (\lambda 
+(n0: nat).((le n0 n) \to (eq nat n n0))) (\lambda (_: (le n n)).(refl_equal 
+nat n)) (\lambda (m0: nat).(\lambda (H: (le n m0)).(\lambda (_: (((le m0 n) 
+\to (eq nat n m0)))).(\lambda (H1: (le (S m0) n)).(False_ind (eq nat n (S 
+m0)) (let H2 \def (le_trans (S m0) n m0 H1 H) in ((let H3 \def (le_Sn_n m0) 
+in (\lambda (H4: (le (S m0) m0)).(H3 H4))) H2))))))) m h))).
 
 theorem le_n_O_eq:
  \forall (n: nat).((le n O) \to (eq nat O n))
 \def
- \lambda (n: nat).(\lambda (H: (le n O)).(let TMP_1 \def (le_O_n n) in 
-(le_antisym O n TMP_1 H))).
+ \lambda (n: nat).(\lambda (H: (le n O)).(le_antisym O n (le_O_n n) H)).
 
 theorem le_elim_rel:
  \forall (P: ((nat \to (nat \to Prop)))).(((\forall (p: nat).(P O p))) \to 
@@ -244,19 +204,14 @@ q))))))) \to (\forall (n: nat).(\forall (m: nat).((le n m) \to (P n m))))))
 \def
  \lambda (P: ((nat \to (nat \to Prop)))).(\lambda (H: ((\forall (p: nat).(P O 
 p)))).(\lambda (H0: ((\forall (p: nat).(\forall (q: nat).((le p q) \to ((P p 
-q) \to (P (S p) (S q)))))))).(\lambda (n: nat).(let TMP_1 \def (\lambda (n0: 
-nat).(\forall (m: nat).((le n0 m) \to (P n0 m)))) in (let TMP_2 \def (\lambda 
-(m: nat).(\lambda (_: (le O m)).(H m))) in (let TMP_14 \def (\lambda (n0: 
-nat).(\lambda (IHn: ((\forall (m: nat).((le n0 m) \to (P n0 m))))).(\lambda 
-(m: nat).(\lambda (Le: (le (S n0) m)).(let TMP_3 \def (S n0) in (let TMP_5 
-\def (\lambda (n1: nat).(let TMP_4 \def (S n0) in (P TMP_4 n1))) in (let 
-TMP_6 \def (le_n n0) in (let TMP_7 \def (le_n n0) in (let TMP_8 \def (IHn n0 
-TMP_7) in (let TMP_9 \def (H0 n0 n0 TMP_6 TMP_8) in (let TMP_13 \def (\lambda 
-(m0: nat).(\lambda (H1: (le (S n0) m0)).(\lambda (_: (P (S n0) m0)).(let 
-TMP_10 \def (le_trans_S n0 m0 H1) in (let TMP_11 \def (le_trans_S n0 m0 H1) 
-in (let TMP_12 \def (IHn m0 TMP_11) in (H0 n0 m0 TMP_10 TMP_12))))))) in 
-(le_ind TMP_3 TMP_5 TMP_9 TMP_13 m Le)))))))))))) in (nat_ind TMP_1 TMP_2 
-TMP_14 n))))))).
+q) \to (P (S p) (S q)))))))).(\lambda (n: nat).(nat_ind (\lambda (n0: 
+nat).(\forall (m: nat).((le n0 m) \to (P n0 m)))) (\lambda (m: nat).(\lambda 
+(_: (le O m)).(H m))) (\lambda (n0: nat).(\lambda (IHn: ((\forall (m: 
+nat).((le n0 m) \to (P n0 m))))).(\lambda (m: nat).(\lambda (Le: (le (S n0) 
+m)).(le_ind (S n0) (\lambda (n1: nat).(P (S n0) n1)) (H0 n0 n0 (le_n n0) (IHn 
+n0 (le_n n0))) (\lambda (m0: nat).(\lambda (H1: (le (S n0) m0)).(\lambda (_: 
+(P (S n0) m0)).(H0 n0 m0 (le_trans_S n0 m0 H1) (IHn m0 (le_trans_S n0 m0 
+H1)))))) m Le))))) n)))).
 
 theorem lt_n_n:
  \forall (n: nat).(not (lt n n))
@@ -266,19 +221,19 @@ theorem lt_n_n:
 theorem lt_n_S:
  \forall (n: nat).(\forall (m: nat).((lt n m) \to (lt (S n) (S m))))
 \def
- \lambda (n: nat).(\lambda (m: nat).(\lambda (H: (lt n m)).(let TMP_1 \def (S 
-n) in (le_n_S TMP_1 m H)))).
+ \lambda (n: nat).(\lambda (m: nat).(\lambda (H: (lt n m)).(le_n_S (S n) m 
+H))).
 
 theorem lt_n_Sn:
  \forall (n: nat).(lt n (S n))
 \def
- \lambda (n: nat).(let TMP_1 \def (S n) in (le_n TMP_1)).
+ \lambda (n: nat).(le_n (S n)).
 
 theorem lt_S_n:
  \forall (n: nat).(\forall (m: nat).((lt (S n) (S m)) \to (lt n m)))
 \def
- \lambda (n: nat).(\lambda (m: nat).(\lambda (H: (lt (S n) (S m))).(let TMP_1 
-\def (S n) in (le_S_n TMP_1 m H)))).
+ \lambda (n: nat).(\lambda (m: nat).(\lambda (H: (lt (S n) (S m))).(le_S_n (S 
+n) m H))).
 
 theorem lt_n_O:
  \forall (n: nat).(not (lt n O))
@@ -290,16 +245,14 @@ theorem lt_trans:
 \to (lt n p)))))
 \def
  \lambda (n: nat).(\lambda (m: nat).(\lambda (p: nat).(\lambda (H: (lt n 
-m)).(\lambda (H0: (lt m p)).(let TMP_1 \def (S m) in (let TMP_2 \def (\lambda 
-(n0: nat).(lt n n0)) in (let TMP_3 \def (S n) in (let TMP_4 \def (le_S TMP_3 
-m H) in (let TMP_6 \def (\lambda (m0: nat).(\lambda (_: (le (S m) 
-m0)).(\lambda (IHle: (lt n m0)).(let TMP_5 \def (S n) in (le_S TMP_5 m0 
-IHle))))) in (le_ind TMP_1 TMP_2 TMP_4 TMP_6 p H0)))))))))).
+m)).(\lambda (H0: (lt m p)).(le_ind (S m) (\lambda (n0: nat).(lt n n0)) (le_S 
+(S n) m H) (\lambda (m0: nat).(\lambda (_: (le (S m) m0)).(\lambda (IHle: (lt 
+n m0)).(le_S (S n) m0 IHle)))) p H0))))).
 
 theorem lt_O_Sn:
  \forall (n: nat).(lt O (S n))
 \def
- \lambda (n: nat).(let TMP_1 \def (le_O_n n) in (le_n_S O n TMP_1)).
+ \lambda (n: nat).(le_n_S O n (le_O_n n)).
 
 theorem lt_le_S:
  \forall (n: nat).(\forall (p: nat).((lt n p) \to (le (S n) p)))
@@ -309,12 +262,10 @@ theorem lt_le_S:
 theorem le_not_lt:
  \forall (n: nat).(\forall (m: nat).((le n m) \to (not (lt m n))))
 \def
- \lambda (n: nat).(\lambda (m: nat).(\lambda (H: (le n m)).(let TMP_2 \def 
-(\lambda (n0: nat).(let TMP_1 \def (lt n0 n) in (not TMP_1))) in (let TMP_3 
-\def (lt_n_n n) in (let TMP_6 \def (\lambda (m0: nat).(\lambda (_: (le n 
-m0)).(\lambda (IHle: (not (lt m0 n))).(\lambda (H1: (lt (S m0) n)).(let TMP_4 
-\def (S m0) in (let TMP_5 \def (le_trans_S TMP_4 n H1) in (IHle TMP_5))))))) 
-in (le_ind n TMP_2 TMP_3 TMP_6 m H)))))).
+ \lambda (n: nat).(\lambda (m: nat).(\lambda (H: (le n m)).(le_ind n (\lambda 
+(n0: nat).(not (lt n0 n))) (lt_n_n n) (\lambda (m0: nat).(\lambda (_: (le n 
+m0)).(\lambda (IHle: (not (lt m0 n))).(\lambda (H1: (lt (S m0) n)).(IHle 
+(le_trans_S (S m0) n H1)))))) m H))).
 
 theorem le_lt_n_Sm:
  \forall (n: nat).(\forall (m: nat).((le n m) \to (lt n (S m))))
@@ -326,21 +277,18 @@ theorem le_lt_trans:
 \to (lt n p)))))
 \def
  \lambda (n: nat).(\lambda (m: nat).(\lambda (p: nat).(\lambda (H: (le n 
-m)).(\lambda (H0: (lt m p)).(let TMP_1 \def (S m) in (let TMP_2 \def (\lambda 
-(n0: nat).(lt n n0)) in (let TMP_3 \def (le_n_S n m H) in (let TMP_5 \def 
-(\lambda (m0: nat).(\lambda (_: (le (S m) m0)).(\lambda (IHle: (lt n 
-m0)).(let TMP_4 \def (S n) in (le_S TMP_4 m0 IHle))))) in (le_ind TMP_1 TMP_2 
-TMP_3 TMP_5 p H0))))))))).
+m)).(\lambda (H0: (lt m p)).(le_ind (S m) (\lambda (n0: nat).(lt n n0)) 
+(le_n_S n m H) (\lambda (m0: nat).(\lambda (_: (le (S m) m0)).(\lambda (IHle: 
+(lt n m0)).(le_S (S n) m0 IHle)))) p H0))))).
 
 theorem lt_le_trans:
  \forall (n: nat).(\forall (m: nat).(\forall (p: nat).((lt n m) \to ((le m p) 
 \to (lt n p)))))
 \def
  \lambda (n: nat).(\lambda (m: nat).(\lambda (p: nat).(\lambda (H: (lt n 
-m)).(\lambda (H0: (le m p)).(let TMP_1 \def (\lambda (n0: nat).(lt n n0)) in 
-(let TMP_3 \def (\lambda (m0: nat).(\lambda (_: (le m m0)).(\lambda (IHle: 
-(lt n m0)).(let TMP_2 \def (S n) in (le_S TMP_2 m0 IHle))))) in (le_ind m 
-TMP_1 H TMP_3 p H0))))))).
+m)).(\lambda (H0: (le m p)).(le_ind m (\lambda (n0: nat).(lt n n0)) H 
+(\lambda (m0: nat).(\lambda (_: (le m m0)).(\lambda (IHle: (lt n m0)).(le_S 
+(S n) m0 IHle)))) p H0))))).
 
 theorem lt_le_weak:
  \forall (n: nat).(\forall (m: nat).((lt n m) \to (le n m)))
@@ -357,392 +305,293 @@ H))).
 theorem le_lt_or_eq:
  \forall (n: nat).(\forall (m: nat).((le n m) \to (or (lt n m) (eq nat n m))))
 \def
- \lambda (n: nat).(\lambda (m: nat).(\lambda (H: (le n m)).(let TMP_3 \def 
-(\lambda (n0: nat).(let TMP_1 \def (lt n n0) in (let TMP_2 \def (eq nat n n0) 
-in (or TMP_1 TMP_2)))) in (let TMP_4 \def (lt n n) in (let TMP_5 \def (eq nat 
-n n) in (let TMP_6 \def (refl_equal nat n) in (let TMP_7 \def (or_intror 
-TMP_4 TMP_5 TMP_6) in (let TMP_13 \def (\lambda (m0: nat).(\lambda (H0: (le n 
-m0)).(\lambda (_: (or (lt n m0) (eq nat n m0))).(let TMP_8 \def (S m0) in 
-(let TMP_9 \def (lt n TMP_8) in (let TMP_10 \def (S m0) in (let TMP_11 \def 
-(eq nat n TMP_10) in (let TMP_12 \def (le_n_S n m0 H0) in (or_introl TMP_9 
-TMP_11 TMP_12))))))))) in (le_ind n TMP_3 TMP_7 TMP_13 m H))))))))).
+ \lambda (n: nat).(\lambda (m: nat).(\lambda (H: (le n m)).(le_ind n (\lambda 
+(n0: nat).(or (lt n n0) (eq nat n n0))) (or_intror (lt n n) (eq nat n n) 
+(refl_equal nat n)) (\lambda (m0: nat).(\lambda (H0: (le n m0)).(\lambda (_: 
+(or (lt n m0) (eq nat n m0))).(or_introl (lt n (S m0)) (eq nat n (S m0)) 
+(le_n_S n m0 H0))))) m H))).
 
 theorem le_or_lt:
  \forall (n: nat).(\forall (m: nat).(or (le n m) (lt m n)))
 \def
- \lambda (n: nat).(\lambda (m: nat).(let TMP_3 \def (\lambda (n0: 
-nat).(\lambda (n1: nat).(let TMP_1 \def (le n0 n1) in (let TMP_2 \def (lt n1 
-n0) in (or TMP_1 TMP_2))))) in (let TMP_7 \def (\lambda (n0: nat).(let TMP_4 
-\def (le O n0) in (let TMP_5 \def (lt n0 O) in (let TMP_6 \def (le_O_n n0) in 
-(or_introl TMP_4 TMP_5 TMP_6))))) in (let TMP_15 \def (\lambda (n0: nat).(let 
-TMP_8 \def (S n0) in (let TMP_9 \def (le TMP_8 O) in (let TMP_10 \def (S n0) 
-in (let TMP_11 \def (lt O TMP_10) in (let TMP_12 \def (S n0) in (let TMP_13 
-\def (lt_O_Sn n0) in (let TMP_14 \def (lt_le_S O TMP_12 TMP_13) in (or_intror 
-TMP_9 TMP_11 TMP_14))))))))) in (let TMP_42 \def (\lambda (n0: nat).(\lambda 
-(m0: nat).(\lambda (H: (or (le n0 m0) (lt m0 n0))).(let TMP_16 \def (le n0 
-m0) in (let TMP_17 \def (lt m0 n0) in (let TMP_18 \def (S n0) in (let TMP_19 
-\def (S m0) in (let TMP_20 \def (le TMP_18 TMP_19) in (let TMP_21 \def (S m0) 
-in (let TMP_22 \def (S n0) in (let TMP_23 \def (lt TMP_21 TMP_22) in (let 
-TMP_24 \def (or TMP_20 TMP_23) in (let TMP_32 \def (\lambda (H0: (le n0 
-m0)).(let TMP_25 \def (S n0) in (let TMP_26 \def (S m0) in (let TMP_27 \def 
-(le TMP_25 TMP_26) in (let TMP_28 \def (S m0) in (let TMP_29 \def (S n0) in 
-(let TMP_30 \def (lt TMP_28 TMP_29) in (let TMP_31 \def (le_n_S n0 m0 H0) in 
-(or_introl TMP_27 TMP_30 TMP_31))))))))) in (let TMP_41 \def (\lambda (H0: 
-(lt m0 n0)).(let TMP_33 \def (S n0) in (let TMP_34 \def (S m0) in (let TMP_35 
-\def (le TMP_33 TMP_34) in (let TMP_36 \def (S m0) in (let TMP_37 \def (S n0) 
-in (let TMP_38 \def (lt TMP_36 TMP_37) in (let TMP_39 \def (S m0) in (let 
-TMP_40 \def (le_n_S TMP_39 n0 H0) in (or_intror TMP_35 TMP_38 
-TMP_40)))))))))) in (or_ind TMP_16 TMP_17 TMP_24 TMP_32 TMP_41 
-H))))))))))))))) in (nat_double_ind TMP_3 TMP_7 TMP_15 TMP_42 n m)))))).
+ \lambda (n: nat).(\lambda (m: nat).(nat_double_ind (\lambda (n0: 
+nat).(\lambda (n1: nat).(or (le n0 n1) (lt n1 n0)))) (\lambda (n0: 
+nat).(or_introl (le O n0) (lt n0 O) (le_O_n n0))) (\lambda (n0: 
+nat).(or_intror (le (S n0) O) (lt O (S n0)) (lt_le_S O (S n0) (lt_O_Sn n0)))) 
+(\lambda (n0: nat).(\lambda (m0: nat).(\lambda (H: (or (le n0 m0) (lt m0 
+n0))).(or_ind (le n0 m0) (lt m0 n0) (or (le (S n0) (S m0)) (lt (S m0) (S 
+n0))) (\lambda (H0: (le n0 m0)).(or_introl (le (S n0) (S m0)) (lt (S m0) (S 
+n0)) (le_n_S n0 m0 H0))) (\lambda (H0: (lt m0 n0)).(or_intror (le (S n0) (S 
+m0)) (lt (S m0) (S n0)) (le_n_S (S m0) n0 H0))) H)))) n m)).
 
 theorem plus_n_O:
  \forall (n: nat).(eq nat n (plus n O))
 \def
- \lambda (n: nat).(let TMP_2 \def (\lambda (n0: nat).(let TMP_1 \def (plus n0 
-O) in (eq nat n0 TMP_1))) in (let TMP_3 \def (refl_equal nat O) in (let TMP_5 
-\def (\lambda (n0: nat).(\lambda (H: (eq nat n0 (plus n0 O))).(let TMP_4 \def 
-(plus n0 O) in (f_equal nat nat S n0 TMP_4 H)))) in (nat_ind TMP_2 TMP_3 
-TMP_5 n)))).
+ \lambda (n: nat).(nat_ind (\lambda (n0: nat).(eq nat n0 (plus n0 O))) 
+(refl_equal nat O) (\lambda (n0: nat).(\lambda (H: (eq nat n0 (plus n0 
+O))).(f_equal nat nat S n0 (plus n0 O) H))) n).
 
 theorem plus_n_Sm:
  \forall (n: nat).(\forall (m: nat).(eq nat (S (plus n m)) (plus n (S m))))
 \def
- \lambda (m: nat).(\lambda (n: nat).(let TMP_5 \def (\lambda (n0: nat).(let 
-TMP_1 \def (plus n0 n) in (let TMP_2 \def (S TMP_1) in (let TMP_3 \def (S n) 
-in (let TMP_4 \def (plus n0 TMP_3) in (eq nat TMP_2 TMP_4)))))) in (let TMP_6 
-\def (S n) in (let TMP_7 \def (refl_equal nat TMP_6) in (let TMP_12 \def 
-(\lambda (n0: nat).(\lambda (H: (eq nat (S (plus n0 n)) (plus n0 (S 
-n)))).(let TMP_8 \def (plus n0 n) in (let TMP_9 \def (S TMP_8) in (let TMP_10 
-\def (S n) in (let TMP_11 \def (plus n0 TMP_10) in (f_equal nat nat S TMP_9 
-TMP_11 H))))))) in (nat_ind TMP_5 TMP_7 TMP_12 m)))))).
+ \lambda (m: nat).(\lambda (n: nat).(nat_ind (\lambda (n0: nat).(eq nat (S 
+(plus n0 n)) (plus n0 (S n)))) (refl_equal nat (S n)) (\lambda (n0: 
+nat).(\lambda (H: (eq nat (S (plus n0 n)) (plus n0 (S n)))).(f_equal nat nat 
+S (S (plus n0 n)) (plus n0 (S n)) H))) m)).
 
 theorem plus_sym:
  \forall (n: nat).(\forall (m: nat).(eq nat (plus n m) (plus m n)))
 \def
- \lambda (n: nat).(\lambda (m: nat).(let TMP_3 \def (\lambda (n0: nat).(let 
-TMP_1 \def (plus n0 m) in (let TMP_2 \def (plus m n0) in (eq nat TMP_1 
-TMP_2)))) in (let TMP_4 \def (plus_n_O m) in (let TMP_16 \def (\lambda (y: 
-nat).(\lambda (H: (eq nat (plus y m) (plus m y))).(let TMP_5 \def (plus m y) 
-in (let TMP_6 \def (S TMP_5) in (let TMP_9 \def (\lambda (n0: nat).(let TMP_7 
-\def (plus y m) in (let TMP_8 \def (S TMP_7) in (eq nat TMP_8 n0)))) in (let 
-TMP_10 \def (plus y m) in (let TMP_11 \def (plus m y) in (let TMP_12 \def 
-(f_equal nat nat S TMP_10 TMP_11 H) in (let TMP_13 \def (S y) in (let TMP_14 
-\def (plus m TMP_13) in (let TMP_15 \def (plus_n_Sm m y) in (eq_ind nat TMP_6 
-TMP_9 TMP_12 TMP_14 TMP_15)))))))))))) in (nat_ind TMP_3 TMP_4 TMP_16 n))))).
+ \lambda (n: nat).(\lambda (m: nat).(nat_ind (\lambda (n0: nat).(eq nat (plus 
+n0 m) (plus m n0))) (plus_n_O m) (\lambda (y: nat).(\lambda (H: (eq nat (plus 
+y m) (plus m y))).(eq_ind nat (S (plus m y)) (\lambda (n0: nat).(eq nat (S 
+(plus y m)) n0)) (f_equal nat nat S (plus y m) (plus m y) H) (plus m (S y)) 
+(plus_n_Sm m y)))) n)).
 
 theorem plus_Snm_nSm:
  \forall (n: nat).(\forall (m: nat).(eq nat (plus (S n) m) (plus n (S m))))
 \def
- \lambda (n: nat).(\lambda (m: nat).(let TMP_1 \def (plus m n) in (let TMP_5 
-\def (\lambda (n0: nat).(let TMP_2 \def (S n0) in (let TMP_3 \def (S m) in 
-(let TMP_4 \def (plus n TMP_3) in (eq nat TMP_2 TMP_4))))) in (let TMP_6 \def 
-(S m) in (let TMP_7 \def (plus TMP_6 n) in (let TMP_10 \def (\lambda (n0: 
-nat).(let TMP_8 \def (plus m n) in (let TMP_9 \def (S TMP_8) in (eq nat TMP_9 
-n0)))) in (let TMP_11 \def (S m) in (let TMP_12 \def (plus TMP_11 n) in (let 
-TMP_13 \def (refl_equal nat TMP_12) in (let TMP_14 \def (S m) in (let TMP_15 
-\def (plus n TMP_14) in (let TMP_16 \def (S m) in (let TMP_17 \def (plus_sym 
-n TMP_16) in (let TMP_18 \def (eq_ind_r nat TMP_7 TMP_10 TMP_13 TMP_15 
-TMP_17) in (let TMP_19 \def (plus n m) in (let TMP_20 \def (plus_sym n m) in 
-(eq_ind_r nat TMP_1 TMP_5 TMP_18 TMP_19 TMP_20))))))))))))))))).
+ \lambda (n: nat).(\lambda (m: nat).(eq_ind_r nat (plus m n) (\lambda (n0: 
+nat).(eq nat (S n0) (plus n (S m)))) (eq_ind_r nat (plus (S m) n) (\lambda 
+(n0: nat).(eq nat (S (plus m n)) n0)) (refl_equal nat (plus (S m) n)) (plus n 
+(S m)) (plus_sym n (S m))) (plus n m) (plus_sym n m))).
 
 theorem plus_assoc_l:
  \forall (n: nat).(\forall (m: nat).(\forall (p: nat).(eq nat (plus n (plus m 
 p)) (plus (plus n m) p))))
 \def
- \lambda (n: nat).(\lambda (m: nat).(\lambda (p: nat).(let TMP_5 \def 
-(\lambda (n0: nat).(let TMP_1 \def (plus m p) in (let TMP_2 \def (plus n0 
-TMP_1) in (let TMP_3 \def (plus n0 m) in (let TMP_4 \def (plus TMP_3 p) in 
-(eq nat TMP_2 TMP_4)))))) in (let TMP_6 \def (plus m p) in (let TMP_7 \def 
-(refl_equal nat TMP_6) in (let TMP_12 \def (\lambda (n0: nat).(\lambda (H: 
-(eq nat (plus n0 (plus m p)) (plus (plus n0 m) p))).(let TMP_8 \def (plus m 
-p) in (let TMP_9 \def (plus n0 TMP_8) in (let TMP_10 \def (plus n0 m) in (let 
-TMP_11 \def (plus TMP_10 p) in (f_equal nat nat S TMP_9 TMP_11 H))))))) in 
-(nat_ind TMP_5 TMP_7 TMP_12 n))))))).
+ \lambda (n: nat).(\lambda (m: nat).(\lambda (p: nat).(nat_ind (\lambda (n0: 
+nat).(eq nat (plus n0 (plus m p)) (plus (plus n0 m) p))) (refl_equal nat 
+(plus m p)) (\lambda (n0: nat).(\lambda (H: (eq nat (plus n0 (plus m p)) 
+(plus (plus n0 m) p))).(f_equal nat nat S (plus n0 (plus m p)) (plus (plus n0 
+m) p) H))) n))).
 
 theorem plus_assoc_r:
  \forall (n: nat).(\forall (m: nat).(\forall (p: nat).(eq nat (plus (plus n 
 m) p) (plus n (plus m p)))))
 \def
- \lambda (n: nat).(\lambda (m: nat).(\lambda (p: nat).(let TMP_1 \def (plus m 
-p) in (let TMP_2 \def (plus n TMP_1) in (let TMP_3 \def (plus n m) in (let 
-TMP_4 \def (plus TMP_3 p) in (let TMP_5 \def (plus_assoc_l n m p) in (sym_eq 
-nat TMP_2 TMP_4 TMP_5)))))))).
+ \lambda (n: nat).(\lambda (m: nat).(\lambda (p: nat).(sym_eq nat (plus n 
+(plus m p)) (plus (plus n m) p) (plus_assoc_l n m p)))).
 
 theorem simpl_plus_l:
  \forall (n: nat).(\forall (m: nat).(\forall (p: nat).((eq nat (plus n m) 
 (plus n p)) \to (eq nat m p))))
 \def
- \lambda (n: nat).(let TMP_1 \def (\lambda (n0: nat).(\forall (m: 
-nat).(\forall (p: nat).((eq nat (plus n0 m) (plus n0 p)) \to (eq nat m p))))) 
-in (let TMP_2 \def (\lambda (m: nat).(\lambda (p: nat).(\lambda (H: (eq nat m 
-p)).H))) in (let TMP_13 \def (\lambda (n0: nat).(\lambda (IHn: ((\forall (m: 
-nat).(\forall (p: nat).((eq nat (plus n0 m) (plus n0 p)) \to (eq nat m 
-p)))))).(\lambda (m: nat).(\lambda (p: nat).(\lambda (H: (eq nat (S (plus n0 
-m)) (S (plus n0 p)))).(let TMP_3 \def (plus n0 m) in (let TMP_4 \def (plus n0 
-p) in (let TMP_5 \def (plus n0) in (let TMP_6 \def (plus n0 m) in (let TMP_7 
-\def (plus n0 p) in (let TMP_8 \def (plus n0 m) in (let TMP_9 \def (plus n0 
-p) in (let TMP_10 \def (eq_add_S TMP_8 TMP_9 H) in (let TMP_11 \def (f_equal 
-nat nat TMP_5 TMP_6 TMP_7 TMP_10) in (let TMP_12 \def (IHn TMP_3 TMP_4 
-TMP_11) in (IHn m p TMP_12)))))))))))))))) in (nat_ind TMP_1 TMP_2 TMP_13 
-n)))).
+ \lambda (n: nat).(nat_ind (\lambda (n0: nat).(\forall (m: nat).(\forall (p: 
+nat).((eq nat (plus n0 m) (plus n0 p)) \to (eq nat m p))))) (\lambda (m: 
+nat).(\lambda (p: nat).(\lambda (H: (eq nat m p)).H))) (\lambda (n0: 
+nat).(\lambda (IHn: ((\forall (m: nat).(\forall (p: nat).((eq nat (plus n0 m) 
+(plus n0 p)) \to (eq nat m p)))))).(\lambda (m: nat).(\lambda (p: 
+nat).(\lambda (H: (eq nat (S (plus n0 m)) (S (plus n0 p)))).(IHn m p (IHn 
+(plus n0 m) (plus n0 p) (f_equal nat nat (plus n0) (plus n0 m) (plus n0 p) 
+(eq_add_S (plus n0 m) (plus n0 p) H))))))))) n).
 
 theorem minus_n_O:
  \forall (n: nat).(eq nat n (minus n O))
 \def
- \lambda (n: nat).(let TMP_2 \def (\lambda (n0: nat).(let TMP_1 \def (minus 
-n0 O) in (eq nat n0 TMP_1))) in (let TMP_3 \def (refl_equal nat O) in (let 
-TMP_5 \def (\lambda (n0: nat).(\lambda (_: (eq nat n0 (minus n0 O))).(let 
-TMP_4 \def (S n0) in (refl_equal nat TMP_4)))) in (nat_ind TMP_2 TMP_3 TMP_5 
-n)))).
+ \lambda (n: nat).(nat_ind (\lambda (n0: nat).(eq nat n0 (minus n0 O))) 
+(refl_equal nat O) (\lambda (n0: nat).(\lambda (_: (eq nat n0 (minus n0 
+O))).(refl_equal nat (S n0)))) n).
 
 theorem minus_n_n:
  \forall (n: nat).(eq nat O (minus n n))
 \def
- \lambda (n: nat).(let TMP_2 \def (\lambda (n0: nat).(let TMP_1 \def (minus 
-n0 n0) in (eq nat O TMP_1))) in (let TMP_3 \def (refl_equal nat O) in (let 
-TMP_4 \def (\lambda (n0: nat).(\lambda (IHn: (eq nat O (minus n0 n0))).IHn)) 
-in (nat_ind TMP_2 TMP_3 TMP_4 n)))).
+ \lambda (n: nat).(nat_ind (\lambda (n0: nat).(eq nat O (minus n0 n0))) 
+(refl_equal nat O) (\lambda (n0: nat).(\lambda (IHn: (eq nat O (minus n0 
+n0))).IHn)) n).
 
 theorem minus_Sn_m:
  \forall (n: nat).(\forall (m: nat).((le m n) \to (eq nat (S (minus n m)) 
 (minus (S n) m))))
 \def
- \lambda (n: nat).(\lambda (m: nat).(\lambda (Le: (le m n)).(let TMP_5 \def 
-(\lambda (n0: nat).(\lambda (n1: nat).(let TMP_1 \def (minus n1 n0) in (let 
-TMP_2 \def (S TMP_1) in (let TMP_3 \def (S n1) in (let TMP_4 \def (minus 
-TMP_3 n0) in (eq nat TMP_2 TMP_4))))))) in (let TMP_10 \def (\lambda (p: 
-nat).(let TMP_6 \def (minus p O) in (let TMP_7 \def (minus p O) in (let TMP_8 
-\def (minus_n_O p) in (let TMP_9 \def (sym_eq nat p TMP_7 TMP_8) in (f_equal 
-nat nat S TMP_6 p TMP_9)))))) in (let TMP_11 \def (\lambda (p: nat).(\lambda 
-(q: nat).(\lambda (_: (le p q)).(\lambda (H0: (eq nat (S (minus q p)) (match 
-p with [O \Rightarrow (S q) | (S l) \Rightarrow (minus q l)]))).H0)))) in 
-(le_elim_rel TMP_5 TMP_10 TMP_11 m n Le)))))).
+ \lambda (n: nat).(\lambda (m: nat).(\lambda (Le: (le m n)).(le_elim_rel 
+(\lambda (n0: nat).(\lambda (n1: nat).(eq nat (S (minus n1 n0)) (minus (S n1) 
+n0)))) (\lambda (p: nat).(f_equal nat nat S (minus p O) p (sym_eq nat p 
+(minus p O) (minus_n_O p)))) (\lambda (p: nat).(\lambda (q: nat).(\lambda (_: 
+(le p q)).(\lambda (H0: (eq nat (S (minus q p)) (match p with [O \Rightarrow 
+(S q) | (S l) \Rightarrow (minus q l)]))).H0)))) m n Le))).
 
 theorem plus_minus:
  \forall (n: nat).(\forall (m: nat).(\forall (p: nat).((eq nat n (plus m p)) 
 \to (eq nat p (minus n m)))))
 \def
- \lambda (n: nat).(\lambda (m: nat).(\lambda (p: nat).(let TMP_2 \def 
-(\lambda (n0: nat).(\lambda (n1: nat).((eq nat n1 (plus n0 p)) \to (let TMP_1 
-\def (minus n1 n0) in (eq nat p TMP_1))))) in (let TMP_7 \def (\lambda (n0: 
-nat).(\lambda (H: (eq nat n0 p)).(let TMP_3 \def (\lambda (n1: nat).(eq nat p 
-n1)) in (let TMP_4 \def (sym_eq nat n0 p H) in (let TMP_5 \def (minus n0 O) 
-in (let TMP_6 \def (minus_n_O n0) in (eq_ind nat n0 TMP_3 TMP_4 TMP_5 
-TMP_6))))))) in (let TMP_12 \def (\lambda (n0: nat).(\lambda (H: (eq nat O (S 
-(plus n0 p)))).(let TMP_8 \def (eq nat p O) in (let H0 \def H in (let TMP_9 
-\def (plus n0 p) in (let H1 \def (O_S TMP_9) in (let TMP_10 \def (\lambda 
-(H2: (eq nat O (S (plus n0 p)))).(H1 H2)) in (let TMP_11 \def (TMP_10 H0) in 
-(False_ind TMP_8 TMP_11))))))))) in (let TMP_15 \def (\lambda (n0: 
-nat).(\lambda (m0: nat).(\lambda (H: (((eq nat m0 (plus n0 p)) \to (eq nat p 
-(minus m0 n0))))).(\lambda (H0: (eq nat (S m0) (S (plus n0 p)))).(let TMP_13 
-\def (plus n0 p) in (let TMP_14 \def (eq_add_S m0 TMP_13 H0) in (H 
-TMP_14))))))) in (nat_double_ind TMP_2 TMP_7 TMP_12 TMP_15 m n))))))).
+ \lambda (n: nat).(\lambda (m: nat).(\lambda (p: nat).(nat_double_ind 
+(\lambda (n0: nat).(\lambda (n1: nat).((eq nat n1 (plus n0 p)) \to (eq nat p 
+(minus n1 n0))))) (\lambda (n0: nat).(\lambda (H: (eq nat n0 p)).(eq_ind nat 
+n0 (\lambda (n1: nat).(eq nat p n1)) (sym_eq nat n0 p H) (minus n0 O) 
+(minus_n_O n0)))) (\lambda (n0: nat).(\lambda (H: (eq nat O (S (plus n0 
+p)))).(False_ind (eq nat p O) (let H0 \def H in ((let H1 \def (O_S (plus n0 
+p)) in (\lambda (H2: (eq nat O (S (plus n0 p)))).(H1 H2))) H0))))) (\lambda 
+(n0: nat).(\lambda (m0: nat).(\lambda (H: (((eq nat m0 (plus n0 p)) \to (eq 
+nat p (minus m0 n0))))).(\lambda (H0: (eq nat (S m0) (S (plus n0 p)))).(H 
+(eq_add_S m0 (plus n0 p) H0)))))) m n))).
 
 theorem minus_plus:
  \forall (n: nat).(\forall (m: nat).(eq nat (minus (plus n m) n) m))
 \def
- \lambda (n: nat).(\lambda (m: nat).(let TMP_1 \def (plus n m) in (let TMP_2 
-\def (minus TMP_1 n) in (let TMP_3 \def (plus n m) in (let TMP_4 \def (plus n 
-m) in (let TMP_5 \def (refl_equal nat TMP_4) in (let TMP_6 \def (plus_minus 
-TMP_3 n m TMP_5) in (sym_eq nat m TMP_2 TMP_6)))))))).
+ \lambda (n: nat).(\lambda (m: nat).(sym_eq nat m (minus (plus n m) n) 
+(plus_minus (plus n m) n m (refl_equal nat (plus n m))))).
 
 theorem le_pred_n:
  \forall (n: nat).(le (pred n) n)
 \def
- \lambda (n: nat).(let TMP_2 \def (\lambda (n0: nat).(let TMP_1 \def (pred 
-n0) in (le TMP_1 n0))) in (let TMP_3 \def (le_n O) in (let TMP_7 \def 
-(\lambda (n0: nat).(\lambda (_: (le (pred n0) n0)).(let TMP_4 \def (S n0) in 
-(let TMP_5 \def (pred TMP_4) in (let TMP_6 \def (le_n n0) in (le_S TMP_5 n0 
-TMP_6)))))) in (nat_ind TMP_2 TMP_3 TMP_7 n)))).
+ \lambda (n: nat).(nat_ind (\lambda (n0: nat).(le (pred n0) n0)) (le_n O) 
+(\lambda (n0: nat).(\lambda (_: (le (pred n0) n0)).(le_S (pred (S n0)) n0 
+(le_n n0)))) n).
 
 theorem le_plus_l:
  \forall (n: nat).(\forall (m: nat).(le n (plus n m)))
 \def
- \lambda (n: nat).(let TMP_2 \def (\lambda (n0: nat).(\forall (m: nat).(let 
-TMP_1 \def (plus n0 m) in (le n0 TMP_1)))) in (let TMP_3 \def (\lambda (m: 
-nat).(le_O_n m)) in (let TMP_6 \def (\lambda (n0: nat).(\lambda (IHn: 
-((\forall (m: nat).(le n0 (plus n0 m))))).(\lambda (m: nat).(let TMP_4 \def 
-(plus n0 m) in (let TMP_5 \def (IHn m) in (le_n_S n0 TMP_4 TMP_5)))))) in 
-(nat_ind TMP_2 TMP_3 TMP_6 n)))).
+ \lambda (n: nat).(nat_ind (\lambda (n0: nat).(\forall (m: nat).(le n0 (plus 
+n0 m)))) (\lambda (m: nat).(le_O_n m)) (\lambda (n0: nat).(\lambda (IHn: 
+((\forall (m: nat).(le n0 (plus n0 m))))).(\lambda (m: nat).(le_n_S n0 (plus 
+n0 m) (IHn m))))) n).
 
 theorem le_plus_r:
  \forall (n: nat).(\forall (m: nat).(le m (plus n m)))
 \def
- \lambda (n: nat).(\lambda (m: nat).(let TMP_2 \def (\lambda (n0: nat).(let 
-TMP_1 \def (plus n0 m) in (le m TMP_1))) in (let TMP_3 \def (le_n m) in (let 
-TMP_5 \def (\lambda (n0: nat).(\lambda (H: (le m (plus n0 m))).(let TMP_4 
-\def (plus n0 m) in (le_S m TMP_4 H)))) in (nat_ind TMP_2 TMP_3 TMP_5 n))))).
+ \lambda (n: nat).(\lambda (m: nat).(nat_ind (\lambda (n0: nat).(le m (plus 
+n0 m))) (le_n m) (\lambda (n0: nat).(\lambda (H: (le m (plus n0 m))).(le_S m 
+(plus n0 m) H))) n)).
 
 theorem simpl_le_plus_l:
  \forall (p: nat).(\forall (n: nat).(\forall (m: nat).((le (plus p n) (plus p 
 m)) \to (le n m))))
 \def
- \lambda (p: nat).(let TMP_1 \def (\lambda (n: nat).(\forall (n0: 
-nat).(\forall (m: nat).((le (plus n n0) (plus n m)) \to (le n0 m))))) in (let 
-TMP_2 \def (\lambda (n: nat).(\lambda (m: nat).(\lambda (H: (le n m)).H))) in 
-(let TMP_6 \def (\lambda (p0: nat).(\lambda (IHp: ((\forall (n: nat).(\forall 
-(m: nat).((le (plus p0 n) (plus p0 m)) \to (le n m)))))).(\lambda (n: 
-nat).(\lambda (m: nat).(\lambda (H: (le (S (plus p0 n)) (S (plus p0 
-m)))).(let TMP_3 \def (plus p0 n) in (let TMP_4 \def (plus p0 m) in (let 
-TMP_5 \def (le_S_n TMP_3 TMP_4 H) in (IHp n m TMP_5))))))))) in (nat_ind 
-TMP_1 TMP_2 TMP_6 p)))).
+ \lambda (p: nat).(nat_ind (\lambda (n: nat).(\forall (n0: nat).(\forall (m: 
+nat).((le (plus n n0) (plus n m)) \to (le n0 m))))) (\lambda (n: 
+nat).(\lambda (m: nat).(\lambda (H: (le n m)).H))) (\lambda (p0: 
+nat).(\lambda (IHp: ((\forall (n: nat).(\forall (m: nat).((le (plus p0 n) 
+(plus p0 m)) \to (le n m)))))).(\lambda (n: nat).(\lambda (m: nat).(\lambda 
+(H: (le (S (plus p0 n)) (S (plus p0 m)))).(IHp n m (le_S_n (plus p0 n) (plus 
+p0 m) H))))))) p).
 
 theorem le_plus_trans:
  \forall (n: nat).(\forall (m: nat).(\forall (p: nat).((le n m) \to (le n 
 (plus m p)))))
 \def
  \lambda (n: nat).(\lambda (m: nat).(\lambda (p: nat).(\lambda (H: (le n 
-m)).(let TMP_1 \def (plus m p) in (let TMP_2 \def (le_plus_l m p) in 
-(le_trans n m TMP_1 H TMP_2)))))).
+m)).(le_trans n m (plus m p) H (le_plus_l m p))))).
 
 theorem le_reg_l:
  \forall (n: nat).(\forall (m: nat).(\forall (p: nat).((le n m) \to (le (plus 
 p n) (plus p m)))))
 \def
- \lambda (n: nat).(\lambda (m: nat).(\lambda (p: nat).(let TMP_3 \def 
-(\lambda (n0: nat).((le n m) \to (let TMP_1 \def (plus n0 n) in (let TMP_2 
-\def (plus n0 m) in (le TMP_1 TMP_2))))) in (let TMP_4 \def (\lambda (H: (le 
-n m)).H) in (let TMP_8 \def (\lambda (p0: nat).(\lambda (IHp: (((le n m) \to 
-(le (plus p0 n) (plus p0 m))))).(\lambda (H: (le n m)).(let TMP_5 \def (plus 
-p0 n) in (let TMP_6 \def (plus p0 m) in (let TMP_7 \def (IHp H) in (le_n_S 
-TMP_5 TMP_6 TMP_7))))))) in (nat_ind TMP_3 TMP_4 TMP_8 p)))))).
+ \lambda (n: nat).(\lambda (m: nat).(\lambda (p: nat).(nat_ind (\lambda (n0: 
+nat).((le n m) \to (le (plus n0 n) (plus n0 m)))) (\lambda (H: (le n m)).H) 
+(\lambda (p0: nat).(\lambda (IHp: (((le n m) \to (le (plus p0 n) (plus p0 
+m))))).(\lambda (H: (le n m)).(le_n_S (plus p0 n) (plus p0 m) (IHp H))))) 
+p))).
 
 theorem le_plus_plus:
  \forall (n: nat).(\forall (m: nat).(\forall (p: nat).(\forall (q: nat).((le 
 n m) \to ((le p q) \to (le (plus n p) (plus m q)))))))
 \def
  \lambda (n: nat).(\lambda (m: nat).(\lambda (p: nat).(\lambda (q: 
-nat).(\lambda (H: (le n m)).(\lambda (H0: (le p q)).(let TMP_3 \def (\lambda 
-(n0: nat).(let TMP_1 \def (plus n p) in (let TMP_2 \def (plus n0 q) in (le 
-TMP_1 TMP_2)))) in (let TMP_4 \def (le_reg_l p q n H0) in (let TMP_7 \def 
-(\lambda (m0: nat).(\lambda (_: (le n m0)).(\lambda (H2: (le (plus n p) (plus 
-m0 q))).(let TMP_5 \def (plus n p) in (let TMP_6 \def (plus m0 q) in (le_S 
-TMP_5 TMP_6 H2)))))) in (le_ind n TMP_3 TMP_4 TMP_7 m H))))))))).
+nat).(\lambda (H: (le n m)).(\lambda (H0: (le p q)).(le_ind n (\lambda (n0: 
+nat).(le (plus n p) (plus n0 q))) (le_reg_l p q n H0) (\lambda (m0: 
+nat).(\lambda (_: (le n m0)).(\lambda (H2: (le (plus n p) (plus m0 q))).(le_S 
+(plus n p) (plus m0 q) H2)))) m H)))))).
 
 theorem le_plus_minus:
  \forall (n: nat).(\forall (m: nat).((le n m) \to (eq nat m (plus n (minus m 
 n)))))
 \def
- \lambda (n: nat).(\lambda (m: nat).(\lambda (Le: (le n m)).(let TMP_3 \def 
-(\lambda (n0: nat).(\lambda (n1: nat).(let TMP_1 \def (minus n1 n0) in (let 
-TMP_2 \def (plus n0 TMP_1) in (eq nat n1 TMP_2))))) in (let TMP_4 \def 
-(\lambda (p: nat).(minus_n_O p)) in (let TMP_7 \def (\lambda (p: 
-nat).(\lambda (q: nat).(\lambda (_: (le p q)).(\lambda (H0: (eq nat q (plus p 
-(minus q p)))).(let TMP_5 \def (minus q p) in (let TMP_6 \def (plus p TMP_5) 
-in (f_equal nat nat S q TMP_6 H0))))))) in (le_elim_rel TMP_3 TMP_4 TMP_7 n m 
-Le)))))).
+ \lambda (n: nat).(\lambda (m: nat).(\lambda (Le: (le n m)).(le_elim_rel 
+(\lambda (n0: nat).(\lambda (n1: nat).(eq nat n1 (plus n0 (minus n1 n0))))) 
+(\lambda (p: nat).(minus_n_O p)) (\lambda (p: nat).(\lambda (q: nat).(\lambda 
+(_: (le p q)).(\lambda (H0: (eq nat q (plus p (minus q p)))).(f_equal nat nat 
+S q (plus p (minus q p)) H0))))) n m Le))).
 
 theorem le_plus_minus_r:
  \forall (n: nat).(\forall (m: nat).((le n m) \to (eq nat (plus n (minus m 
 n)) m)))
 \def
- \lambda (n: nat).(\lambda (m: nat).(\lambda (H: (le n m)).(let TMP_1 \def 
-(minus m n) in (let TMP_2 \def (plus n TMP_1) in (let TMP_3 \def 
-(le_plus_minus n m H) in (sym_eq nat m TMP_2 TMP_3)))))).
+ \lambda (n: nat).(\lambda (m: nat).(\lambda (H: (le n m)).(sym_eq nat m 
+(plus n (minus m n)) (le_plus_minus n m H)))).
 
 theorem simpl_lt_plus_l:
  \forall (n: nat).(\forall (m: nat).(\forall (p: nat).((lt (plus p n) (plus p 
 m)) \to (lt n m))))
 \def
- \lambda (n: nat).(\lambda (m: nat).(\lambda (p: nat).(let TMP_1 \def 
-(\lambda (n0: nat).((lt (plus n0 n) (plus n0 m)) \to (lt n m))) in (let TMP_2 
-\def (\lambda (H: (lt n m)).H) in (let TMP_7 \def (\lambda (p0: nat).(\lambda 
-(IHp: (((lt (plus p0 n) (plus p0 m)) \to (lt n m)))).(\lambda (H: (lt (S 
-(plus p0 n)) (S (plus p0 m)))).(let TMP_3 \def (plus p0 n) in (let TMP_4 \def 
-(S TMP_3) in (let TMP_5 \def (plus p0 m) in (let TMP_6 \def (le_S_n TMP_4 
-TMP_5 H) in (IHp TMP_6)))))))) in (nat_ind TMP_1 TMP_2 TMP_7 p)))))).
+ \lambda (n: nat).(\lambda (m: nat).(\lambda (p: nat).(nat_ind (\lambda (n0: 
+nat).((lt (plus n0 n) (plus n0 m)) \to (lt n m))) (\lambda (H: (lt n m)).H) 
+(\lambda (p0: nat).(\lambda (IHp: (((lt (plus p0 n) (plus p0 m)) \to (lt n 
+m)))).(\lambda (H: (lt (S (plus p0 n)) (S (plus p0 m)))).(IHp (le_S_n (S 
+(plus p0 n)) (plus p0 m) H))))) p))).
 
 theorem lt_reg_l:
  \forall (n: nat).(\forall (m: nat).(\forall (p: nat).((lt n m) \to (lt (plus 
 p n) (plus p m)))))
 \def
- \lambda (n: nat).(\lambda (m: nat).(\lambda (p: nat).(let TMP_3 \def 
-(\lambda (n0: nat).((lt n m) \to (let TMP_1 \def (plus n0 n) in (let TMP_2 
-\def (plus n0 m) in (lt TMP_1 TMP_2))))) in (let TMP_4 \def (\lambda (H: (lt 
-n m)).H) in (let TMP_8 \def (\lambda (p0: nat).(\lambda (IHp: (((lt n m) \to 
-(lt (plus p0 n) (plus p0 m))))).(\lambda (H: (lt n m)).(let TMP_5 \def (plus 
-p0 n) in (let TMP_6 \def (plus p0 m) in (let TMP_7 \def (IHp H) in (lt_n_S 
-TMP_5 TMP_6 TMP_7))))))) in (nat_ind TMP_3 TMP_4 TMP_8 p)))))).
+ \lambda (n: nat).(\lambda (m: nat).(\lambda (p: nat).(nat_ind (\lambda (n0: 
+nat).((lt n m) \to (lt (plus n0 n) (plus n0 m)))) (\lambda (H: (lt n m)).H) 
+(\lambda (p0: nat).(\lambda (IHp: (((lt n m) \to (lt (plus p0 n) (plus p0 
+m))))).(\lambda (H: (lt n m)).(lt_n_S (plus p0 n) (plus p0 m) (IHp H))))) 
+p))).
 
 theorem lt_reg_r:
  \forall (n: nat).(\forall (m: nat).(\forall (p: nat).((lt n m) \to (lt (plus 
 n p) (plus m p)))))
 \def
  \lambda (n: nat).(\lambda (m: nat).(\lambda (p: nat).(\lambda (H: (lt n 
-m)).(let TMP_1 \def (plus p n) in (let TMP_3 \def (\lambda (n0: nat).(let 
-TMP_2 \def (plus m p) in (lt n0 TMP_2))) in (let TMP_4 \def (plus p m) in 
-(let TMP_6 \def (\lambda (n0: nat).(let TMP_5 \def (plus p n) in (lt TMP_5 
-n0))) in (let TMP_9 \def (\lambda (n0: nat).(let TMP_7 \def (plus n0 n) in 
-(let TMP_8 \def (plus n0 m) in (lt TMP_7 TMP_8)))) in (let TMP_11 \def 
-(\lambda (n0: nat).(\lambda (_: (lt (plus n0 n) (plus n0 m))).(let TMP_10 
-\def (S n0) in (lt_reg_l n m TMP_10 H)))) in (let TMP_12 \def (nat_ind TMP_9 
-H TMP_11 p) in (let TMP_13 \def (plus m p) in (let TMP_14 \def (plus_sym m p) 
-in (let TMP_15 \def (eq_ind_r nat TMP_4 TMP_6 TMP_12 TMP_13 TMP_14) in (let 
-TMP_16 \def (plus n p) in (let TMP_17 \def (plus_sym n p) in (eq_ind_r nat 
-TMP_1 TMP_3 TMP_15 TMP_16 TMP_17)))))))))))))))).
+m)).(eq_ind_r nat (plus p n) (\lambda (n0: nat).(lt n0 (plus m p))) (eq_ind_r 
+nat (plus p m) (\lambda (n0: nat).(lt (plus p n) n0)) (nat_ind (\lambda (n0: 
+nat).(lt (plus n0 n) (plus n0 m))) H (\lambda (n0: nat).(\lambda (_: (lt 
+(plus n0 n) (plus n0 m))).(lt_reg_l n m (S n0) H))) p) (plus m p) (plus_sym m 
+p)) (plus n p) (plus_sym n p))))).
 
 theorem le_lt_plus_plus:
  \forall (n: nat).(\forall (m: nat).(\forall (p: nat).(\forall (q: nat).((le 
 n m) \to ((lt p q) \to (lt (plus n p) (plus m q)))))))
 \def
  \lambda (n: nat).(\lambda (m: nat).(\lambda (p: nat).(\lambda (q: 
-nat).(\lambda (H: (le n m)).(\lambda (H0: (le (S p) q)).(let TMP_1 \def (S p) 
-in (let TMP_2 \def (plus n TMP_1) in (let TMP_4 \def (\lambda (n0: nat).(let 
-TMP_3 \def (plus m q) in (le n0 TMP_3))) in (let TMP_5 \def (S p) in (let 
-TMP_6 \def (le_plus_plus n m TMP_5 q H H0) in (let TMP_7 \def (S n) in (let 
-TMP_8 \def (plus TMP_7 p) in (let TMP_9 \def (plus_Snm_nSm n p) in (eq_ind_r 
-nat TMP_2 TMP_4 TMP_6 TMP_8 TMP_9)))))))))))))).
+nat).(\lambda (H: (le n m)).(\lambda (H0: (le (S p) q)).(eq_ind_r nat (plus n 
+(S p)) (\lambda (n0: nat).(le n0 (plus m q))) (le_plus_plus n m (S p) q H H0) 
+(plus (S n) p) (plus_Snm_nSm n p))))))).
 
 theorem lt_le_plus_plus:
  \forall (n: nat).(\forall (m: nat).(\forall (p: nat).(\forall (q: nat).((lt 
 n m) \to ((le p q) \to (lt (plus n p) (plus m q)))))))
 \def
  \lambda (n: nat).(\lambda (m: nat).(\lambda (p: nat).(\lambda (q: 
-nat).(\lambda (H: (le (S n) m)).(\lambda (H0: (le p q)).(let TMP_1 \def (S n) 
-in (le_plus_plus TMP_1 m p q H H0))))))).
+nat).(\lambda (H: (le (S n) m)).(\lambda (H0: (le p q)).(le_plus_plus (S n) m 
+p q H H0)))))).
 
 theorem lt_plus_plus:
  \forall (n: nat).(\forall (m: nat).(\forall (p: nat).(\forall (q: nat).((lt 
 n m) \to ((lt p q) \to (lt (plus n p) (plus m q)))))))
 \def
  \lambda (n: nat).(\lambda (m: nat).(\lambda (p: nat).(\lambda (q: 
-nat).(\lambda (H: (lt n m)).(\lambda (H0: (lt p q)).(let TMP_1 \def 
-(lt_le_weak p q H0) in (lt_le_plus_plus n m p q H TMP_1))))))).
+nat).(\lambda (H: (lt n m)).(\lambda (H0: (lt p q)).(lt_le_plus_plus n m p q 
+H (lt_le_weak p q H0))))))).
 
 theorem well_founded_ltof:
  \forall (A: Type[0]).(\forall (f: ((A \to nat))).(well_founded A (ltof A f)))
 \def
  \lambda (A: Type[0]).(\lambda (f: ((A \to nat))).(let H \def (\lambda (n: 
-nat).(let TMP_2 \def (\lambda (n0: nat).(\forall (a: A).((lt (f a) n0) \to 
-(let TMP_1 \def (ltof A f) in (Acc A TMP_1 a))))) in (let TMP_8 \def (\lambda 
-(a: A).(\lambda (H: (lt (f a) O)).(let TMP_3 \def (ltof A f) in (let TMP_4 
-\def (Acc A TMP_3 a) in (let H0 \def H in (let TMP_5 \def (f a) in (let H1 
-\def (lt_n_O TMP_5) in (let TMP_6 \def (\lambda (H2: (lt (f a) O)).(H1 H2)) 
-in (let TMP_7 \def (TMP_6 H0) in (False_ind TMP_4 TMP_7)))))))))) in (let 
-TMP_16 \def (\lambda (n0: nat).(\lambda (IHn: ((\forall (a: A).((lt (f a) n0) 
-\to (Acc A (ltof A f) a))))).(\lambda (a: A).(\lambda (ltSma: (lt (f a) (S 
-n0))).(let TMP_9 \def (ltof A f) in (let TMP_15 \def (\lambda (b: A).(\lambda 
-(ltfafb: (lt (f b) (f a))).(let TMP_10 \def (f b) in (let TMP_11 \def (f a) 
-in (let TMP_12 \def (f a) in (let TMP_13 \def (lt_n_Sm_le TMP_12 n0 ltSma) in 
-(let TMP_14 \def (lt_le_trans TMP_10 TMP_11 n0 ltfafb TMP_13) in (IHn b 
-TMP_14)))))))) in (Acc_intro A TMP_9 a TMP_15))))))) in (nat_ind TMP_2 TMP_8 
-TMP_16 n))))) in (\lambda (a: A).(let TMP_17 \def (f a) in (let TMP_18 \def 
-(S TMP_17) in (let TMP_19 \def (f a) in (let TMP_20 \def (S TMP_19) in (let 
-TMP_21 \def (le_n TMP_20) in (H TMP_18 a TMP_21))))))))).
+nat).(nat_ind (\lambda (n0: nat).(\forall (a: A).((lt (f a) n0) \to (Acc A 
+(ltof A f) a)))) (\lambda (a: A).(\lambda (H: (lt (f a) O)).(False_ind (Acc A 
+(ltof A f) a) (let H0 \def H in ((let H1 \def (lt_n_O (f a)) in (\lambda (H2: 
+(lt (f a) O)).(H1 H2))) H0))))) (\lambda (n0: nat).(\lambda (IHn: ((\forall 
+(a: A).((lt (f a) n0) \to (Acc A (ltof A f) a))))).(\lambda (a: A).(\lambda 
+(ltSma: (lt (f a) (S n0))).(Acc_intro A (ltof A f) a (\lambda (b: A).(\lambda 
+(ltfafb: (lt (f b) (f a))).(IHn b (lt_le_trans (f b) (f a) n0 ltfafb 
+(lt_n_Sm_le (f a) n0 ltSma)))))))))) n)) in (\lambda (a: A).(H (S (f a)) a 
+(le_n (S (f a))))))).
 
 theorem lt_wf:
  well_founded nat lt
 \def
let TMP_1 \def (\lambda (m: nat).m) in (well_founded_ltof nat TMP_1).
well_founded_ltof nat (\lambda (m: nat).m).
 
 theorem lt_wf_ind:
  \forall (p: nat).(\forall (P: ((nat \to Prop))).(((\forall (n: 
 nat).(((\forall (m: nat).((lt m n) \to (P m)))) \to (P n)))) \to (P p)))
 \def
  \lambda (p: nat).(\lambda (P: ((nat \to Prop))).(\lambda (H: ((\forall (n: 
-nat).(((\forall (m: nat).((lt m n) \to (P m)))) \to (P n))))).(let TMP_1 \def 
-(\lambda (n: nat).(P n)) in (let TMP_2 \def (\lambda (x: nat).(\lambda (_: 
-((\forall (y: nat).((lt y x) \to (Acc nat lt y))))).(\lambda (H1: ((\forall 
-(y: nat).((lt y x) \to (P y))))).(H x H1)))) in (let TMP_3 \def (lt_wf p) in 
-(Acc_ind nat lt TMP_1 TMP_2 p TMP_3)))))).
+nat).(((\forall (m: nat).((lt m n) \to (P m)))) \to (P n))))).(Acc_ind nat lt 
+(\lambda (n: nat).(P n)) (\lambda (x: nat).(\lambda (_: ((\forall (y: 
+nat).((lt y x) \to (Acc nat lt y))))).(\lambda (H1: ((\forall (y: nat).((lt y 
+x) \to (P y))))).(H x H1)))) p (lt_wf p)))).