]> 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 
 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 
 
 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: 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
 
 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
 
 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) 
 
 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) | 
 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 
 
 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) 
  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) 
 
 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) 
  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
 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 
 
 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) 
 \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 
 
 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 
 
 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
 
 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
 
 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
 
 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 
 
 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: 
 \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
  \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) 
 
 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
 
 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
 
 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
 
 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 
 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 _) 
 (\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
 
 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: 
 (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
 
 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 
 | 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
 
 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: (\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 
 
 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
  \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 
 \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)) 
 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
 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
 
 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
 
 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
 
 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
 
 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
 
 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 
 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: 
 \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
 
 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
 
 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
 
 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
 
 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
 
 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
 
 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
 
 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
 
 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
 
 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 
 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
 
 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 
 (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 
 (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: 
 
 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 
 
 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 
 
 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 
 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 
 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 
 
 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: 
 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 
 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).(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 
 (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 
 (\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 
 (\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 
 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 
 (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 (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: 
 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 
 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: 
 (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
 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 
 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
  \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 
 
 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: 
 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 
 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).((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: 
 
 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 
  \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 
 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: 
 
 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: 
 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: 
 
 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: 
 \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: 
 
 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 
 \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) 
 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 
 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) 
 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
 (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
 
 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 _ _) 
 (\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) 
 (\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 
  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) 
 \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 
 (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) 
 
 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 
 \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 
 
 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 
 (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 
 
 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 
 (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 
 (\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 
 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
 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: 
 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
 
 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 
 
 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
 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 
 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 
 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 
 (\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 
 (\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 
 
 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: 
 
 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 
 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: 
 
 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: 
 
 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
 
 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) 
 (\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
 
 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
 
 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
 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 
 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
 
 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) 
 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
 
 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) 
 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 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 | 
 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
  \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 
 
 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 
 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 _ _) 
 (\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 
 ((\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) 
 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 
 (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)) 
 (\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 
 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 
 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
  \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: 
 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: 
 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 
 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: 
 ((\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: 
 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 
 
 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: 
 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 
 (\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: 
 (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 
 (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 
 (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 
 
 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 
 \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) 
 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 
 (\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: 
 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 
 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 
 
 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 
 (\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: 
 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
 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 
 (\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 
 
 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 
 \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 
 (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 
 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).(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 
 (\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 
 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
 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) 
 (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 
 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
 
 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 
 (\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 (_: 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
 
 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
 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
 
 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
  \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
 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 
 (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 
 
 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 
 (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 
 
 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: 
 \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) 
 \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: 
 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 
 
 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).(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)) 
 (\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 
 
 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: 
 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 
 
 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
 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 
 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 
 
 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: 
 \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 
 
 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: 
 \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 
 (\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: 
 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 
 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 
 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
 (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) 
 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 
 
 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
 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)) 
 (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 
 (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 
 
 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
 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 
 (\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 
 (\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 
 (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 
 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))) 
 (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 
 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) 
 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 
 
 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 
 (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 
 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 
 
 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 
 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) 
 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 
 (\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 
 
 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 
 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 
 
 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 
 (\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 _ _ _) 
 (\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) 
 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 
 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 
 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 
 
 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 
 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 
 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])) 
 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: 
 (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).(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: 
 (\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 
 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 
 
 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
 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 
 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 
 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 
 (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 
 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 
 
 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 
 \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
 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 
 (\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) 
 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 
 \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: 
 
 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 
 \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: 
 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
 
 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 
 \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: 
 
 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)) 
 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: 
 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
 
 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 
 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 
 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: 
 
 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)) 
 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 
 (\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 
 
 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) 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: 
 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 
 
 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 
 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 
 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
 
 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 
 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
 
 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 
 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: 
 (\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) 
 (((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 
 (\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 
 (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 
 
 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 
 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
 
 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: 
 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 
 
 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
 (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: 
 (\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) 
 (\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 
 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
 
 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: 
 (\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 
 (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: 
 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
 
 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 
 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 
 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 
 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 
 (\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 
 
 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
 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)) 
 (\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
 
 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 
 (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: 
 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 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 
 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
 
 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 
 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: 
 
 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: 
 (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
 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 
 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 
 (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
 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 
 
 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: 
 (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
 
 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).(\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 
 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 
 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
  \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 
 (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
 
 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
 
 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
 
 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 _) 
 [(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
 
 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
 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
 
 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
 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) 
  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 
 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 
 
 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
 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
 
 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: 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: 
 
 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))))) 
 (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
  \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
 
 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
 
 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
 
 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 
 
 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 (_: 
 \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 
 
 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 
 \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 
 
 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 
 \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 
 
 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: 
 \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 
 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
  \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 
 (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 
 
 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 
 \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
 
 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 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
 
 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
 (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 
 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
  \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 
 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 
 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 
 
 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 
 
 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: 
 
 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 
 
 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 
 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: 
 
 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: 
 
 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: 
 (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 
 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 
 
 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 
 \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 
 \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 
 
 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 
 \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
  \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 
 
 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 
 
 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 
 \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: 
 
 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 
 \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
  \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 
 (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
 
 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 
 
 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 
 (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 
 (\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 _) 
 [(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 
 
 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 
 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 
 
 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 
 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)) 
 (\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
 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
 
 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 
 (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 
 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) 
 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 
 \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
 
 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 
 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 
 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 
 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 
 (\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 
 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 
 (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
 
 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
 
 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 
 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 
 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
 
 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 
 (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) 
 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 
 
 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: 
 (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: 
 (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 
 
 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 
 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 
 (\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 
 (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 
 
 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: 
 (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 
 (\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 
 
 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 
 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 
 (\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 
 (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 
 
 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 
 (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
 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 
 
 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 
 
 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 
 
 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) 
 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
 
 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 
 (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: 
 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
 
 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) 
 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 
 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: 
 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 
 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
 
 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 
 
 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
  \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 
 \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 
 \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
 
 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 
 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 
 (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 
 
 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
  \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 
 
 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 
  \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 
 
 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 
 \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: 
 
 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
 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) 
 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 
 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 
 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 
 (\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: 
 
 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 
 \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 
 (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: 
 
 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 
 \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
 
 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 
 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)) 
 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: 
 
 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
 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 
 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 
 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 
 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
 
 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 
 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) 
 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 
 (\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
  \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 
 
 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 
 
 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 
 
 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 
 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 
 
 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 
 (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 
 
 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 
 (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
 
 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) 
 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
 
 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
 
 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
 
 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
 
 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
 
 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: 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 
 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: 
 
 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 
 \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
 
 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: 
 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
 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 
 (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) 
 (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
 
 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: 
 
 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
 (((\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 
 (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 
 
 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 
 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 
 
 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 
 
 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 
 
 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 
 
 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
  \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
 
 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
 
 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
 
 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
 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 
 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
 
 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
 
 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
 
 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: 
 
 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: 
 
 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: 
 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
 
 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: 
 
 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 
 (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 
 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
 
 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) 
  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 
 
 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) 
  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 
 (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 
 
 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 
 
 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
 
 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
 
 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 
 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
  \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
 
 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
 
 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
  \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 
 (\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 _) 
 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 
 (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 
 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 
 \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 
 
 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) 
 \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 
 
 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 
 
 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: 
  \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 
 
 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) 
 \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
 
 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 
 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) | 
 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 
 
 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 
  \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 
 
 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 
 \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 
 (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 
 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)) 
 (\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 
 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 
 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 
 (\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 
 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).(\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
  \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 
 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) 
 
 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 
 \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 
  \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 
 
 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: 
 
 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) 
 \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 
 
 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 
 \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
 
 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 
 (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 
 
 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 
 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 
 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 
 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: 
 
 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 
 
 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 
 \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: 
 
 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 
  \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
 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
 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
 
 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
 
 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: 
 
 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 
 
 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: 
 
 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: 
 
 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: 
 
 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: 
 
 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 
 
 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: 
 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 
  \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) 
 (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 
 
 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 
  \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 
 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
 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)
 
 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 
 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 
 [(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 
 (\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 
 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) 
 (\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 
 (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: 
 (\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 
 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) 
 (\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 
 
 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 
 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])) 
 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 
 [(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 
 (\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 
 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) 
 (\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 
 (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 
 (\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 
 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) 
 (\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 
 
 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 
 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 
 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: 
 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) | 
 (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 
 
 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 
 
 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 
 
 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 
 
 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 
 
 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 
 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 
 
 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 
 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 
 \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 
 
 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: 
 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 
 (\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 
 
 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 
 
 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 
 
 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 
 
 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 
 
 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
 
 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 
 
 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 
 
 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)))))))
 \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 
 
 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 
 
 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 
 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 
 
 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 
 
 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 
 
 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 
 
 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 
 
 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 
 \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 
 
 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 
 \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 
 
 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 
 \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 
 
 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 
 (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 
 
 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 
 (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 
 
 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 
 (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 
 (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 
 
 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 
 \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 
 
 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 
 \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 
 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 
 \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 
 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
 
 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 
 (\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: 
 
 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
  \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) 
 (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 
 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 
 
 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 
 (\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 
 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: 
 (\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 
 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)) 
 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 
 (\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 
 (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 
 
 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 
 (_: 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 
 (\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 
 (\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) 
 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 
 \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 (_: 
 (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: 
 \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 
 
 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 
 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 
 
 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 
 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 
 
 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: 
 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 
 (\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
  \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
 
 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
 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
 
 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: 
 
 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: 
 
 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
 
 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
 
 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 
 (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 
 
 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 
 (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 
 
 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 
 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 
 
 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 
  \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 
 
 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 
 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 
 
 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: 
  \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 
 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) | 
 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 
 
 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 
 
 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 
 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 
 (\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 
 
 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 
 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 
 (\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 
 
 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 
 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: 
 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 
 
 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 
 (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 
 (\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
  \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 
 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 
 
 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 
 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: 
 \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 
 
 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 
 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
  \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 
 (\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
 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
 
 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
 
 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: 
 
 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
 
 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
 
 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
 
 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
 
 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
 
 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
 
 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
 
 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
 
 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 
 (\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
 
 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
 
 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
  \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
 
 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
 
 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
 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
 
 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
 
 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
 
 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
 
 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
 
 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
 
 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
 
 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
 
 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
 
 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: 
 (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).(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 
 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: 
 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 
 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: 
 
 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: 
 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
  \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 
 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
 
 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 
 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 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 
 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
 
 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: 
 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 
 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
 
 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: 
 
 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
 (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 
 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 
 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 
 (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 
 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 
 
 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
 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 
 (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) 
 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) 
 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 
 
 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
 (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 
 (\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 
 (\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 
 (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 
 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 
 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 
 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) 
 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 
 
 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 
 \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 
 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 
 
 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 
  \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: 
 
 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 
 (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 
 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) 
 \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: 
 (\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) 
 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: 
 
 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
 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 
 (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 
 (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 
 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: 
 
 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 
 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 
 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: 
 
 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 
 (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
 
 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: 
 
 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 
 
 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
  \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
 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 
 (\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
 
 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 
 (\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: 
 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 
 (\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 
 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 
 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) 
 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
  \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 
 
 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
 
 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 
 
 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: 
 
 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: 
 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
 
 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 
 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 
 
 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 
 (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
 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 
 
 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
  \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) 
 [(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 
 
 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 
 (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 
 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) 
 (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 
 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 
 
 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 
 (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 
 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 
 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 
 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 
 
 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 
 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 
 
 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 
 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 
 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 
 (\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 
 ((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 
 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 
 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 
 (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 
 (\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 
 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 
 (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 
 ((\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 
 
 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 
 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 
 ((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 
 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 
 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 
 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 
 (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 
 (\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 
 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 
 (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 
 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 
 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 
 
 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 
 
 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 
 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 
 
 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 
 (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 
 
 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 
 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 
 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).(\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 
 
 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 
 \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 
 
 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 
 \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 
 
 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) 
 \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 
 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 
 
 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 
 (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 
 
 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 
 (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
 
 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
 
 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: 
 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 
 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 
 
 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 
 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 
 
 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 
 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: 
 
 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: 
 (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) 
 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 
 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 
 
 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 
 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 
 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 
 
 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 
 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 
 | 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 
 
 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 | 
 
 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
 
 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 
  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: 
 
 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).((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: 
 
 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 
 \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
  \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
 
 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 
 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 
 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
 
 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
 
 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) 
  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) 
 
 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) 
  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: 
 \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: 
 
 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: 
 \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
 
 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
 
 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)))) 
 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 
 \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) 
 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 
 \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 
 \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 
 
 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 
 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
 
 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
 
 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) 
 
 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
 
 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
 
 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 
 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 
 (\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 
 (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 
 \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: 
 
 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 
  \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 
 
 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 
  \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 
 
 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 
 \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).(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 
 
 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 
 ((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 
 (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: 
 (\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) 
 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) 
 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 
 
 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: 
 \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: 
 
 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
 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 
 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 
 
 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 
 \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 
  \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 
 
 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) 
 \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 
 (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 
 
 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 
 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 
 (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 (_: 
 (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 
 
 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 
 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: 
 
 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 
  \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).(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: 
 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: 
 (\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)) 
 (\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 
 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 
 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: 
 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 
 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: 
 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 
 
 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 
 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: 
 
 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: 
 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 | 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 
 (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 
 
 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 
 \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: 
 
 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 
 
 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: 
 (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 
 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: 
 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 
 (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 
 (_: ((\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).(\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 
 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 
 (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 
 (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 (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 
 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: 
 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 
 (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 
 (\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).(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 
 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 
 (\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
 
 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 
 
 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 
 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 
 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
 (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 
 (\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 
 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: 
 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: 
 
 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
 (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 
 (\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: 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: 
 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: 
 
 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
 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 
 (\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 
 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: 
 (\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: 
 
 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
 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 
 (\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 
 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: 
 (\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
  \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 
 (\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
 
 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 
 (\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 
 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) | 
 (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 
 
 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: 
 
 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: 
 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 
 (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 
 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: 
 
 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: 
 
 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 (_: 
 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 
 
 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 
 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 
 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 (_: 
 (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)))))))))) 
 (\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
 (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 
 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
 
 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: 
 (\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 
 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 
 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
 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
 
 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 
 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 
 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 
 
 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 
 
 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: 
 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 
 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 
 
 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 
 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 
 (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 
 
 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 
  \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 
 
 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 
 (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 
 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
 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
 
 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
 
 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
 
 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
  \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 
 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 
 (\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 
 
 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
 
 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
 
 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
 
 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
 
 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
 
 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
 
 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
 
 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)) 
 
 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 
 \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
 
 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 
 (\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 
 
 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
 
 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
 
 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
 
 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: 
 
 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
 
 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 
 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 
 
 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 
 
 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
 
 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 
 
 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
 
 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 
 
 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
 
 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
 
 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
 
 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
 
 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
 
 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 
 (\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
 
 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)) 
 
 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 
 \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)) 
 
 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 
 \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)) 
 
 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) 
 \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
 
 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 
 
 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 
 
 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 
 
 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
 
 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
 
 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 
 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 
 (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
 
 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 
 (\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 
 (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)) 
 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 
 
 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
 
 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 
 \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 
 
 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 
 (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 
 
 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 
 
 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 
 
 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
  \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 
 \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
 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
 
 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 
  \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 
 
 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 
  \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 
 
 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 
 
 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))).(\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 
 
 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: 
 \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 
 
 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: 
  \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 
 
 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 
 
 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: 
 
 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 
 
 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 
 
 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: 
  \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
 
 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
 
 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 
 
 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
 
 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
 
 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 
 
 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
 
 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
 
 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
 
 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
 
 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 
 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
 
 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
 
 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
 
 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
 
 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 
 
 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 
 \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))
 
 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
 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
 
 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
 
 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))
 
 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 
 \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
 
 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)))
 
 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
 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))))
 
 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 
 \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 
 
 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)))
 
 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
 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
 
 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
 
 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
 
 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
 
 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
 
 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
 
 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
 
 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
 
 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
 
 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
 
 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
 
 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
 
 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
 
 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
 
 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
 
 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
 
 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
 
 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 
 
 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
 
 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: 
 
 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
 
 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
 
 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
 
 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
 
 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 
 
 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: 
 
 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: 
 
 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: 
 
 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: 
 
 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
 
 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: 
 
 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)))).