]> matita.cs.unibo.it Git - helm.git/blobdiff - matita/matita/contribs/lambdadelta/basic_1/subst1/props.ma
update in basic_2
[helm.git] / matita / matita / contribs / lambdadelta / basic_1 / subst1 / props.ma
index 637b5017f634ea3823033c5186bb840d31706411..f7bf1d15cdc3c14635c2374e49a90cdaaf6de2ad 100644 (file)
@@ -24,333 +24,142 @@ i v u1 u2) \to (\forall (k: K).(\forall (t1: T).(\forall (t2: T).((subst1 (s
 k i) v t1 t2) \to (subst1 i v (THead k u1 t1) (THead k u2 t2))))))))))
 \def
  \lambda (v: T).(\lambda (u1: T).(\lambda (u2: T).(\lambda (i: nat).(\lambda 
-(H: (subst1 i v u1 u2)).(let TMP_3 \def (\lambda (t: T).(\forall (k: 
-K).(\forall (t1: T).(\forall (t2: T).((subst1 (s k i) v t1 t2) \to (let TMP_1 
-\def (THead k u1 t1) in (let TMP_2 \def (THead k t t2) in (subst1 i v TMP_1 
-TMP_2)))))))) in (let TMP_14 \def (\lambda (k: K).(\lambda (t1: T).(\lambda 
-(t2: T).(\lambda (H0: (subst1 (s k i) v t1 t2)).(let TMP_4 \def (s k i) in 
-(let TMP_7 \def (\lambda (t: T).(let TMP_5 \def (THead k u1 t1) in (let TMP_6 
-\def (THead k u1 t) in (subst1 i v TMP_5 TMP_6)))) in (let TMP_8 \def (THead 
-k u1 t1) in (let TMP_9 \def (subst1_refl i v TMP_8) in (let TMP_13 \def 
-(\lambda (t3: T).(\lambda (H1: (subst0 (s k i) v t1 t3)).(let TMP_10 \def 
-(THead k u1 t1) in (let TMP_11 \def (THead k u1 t3) in (let TMP_12 \def 
-(subst0_snd k v t3 t1 i H1 u1) in (subst1_single i v TMP_10 TMP_11 
-TMP_12)))))) in (subst1_ind TMP_4 v t1 TMP_7 TMP_9 TMP_13 t2 H0)))))))))) in 
-(let TMP_27 \def (\lambda (t2: T).(\lambda (H0: (subst0 i v u1 t2)).(\lambda 
-(k: K).(\lambda (t1: T).(\lambda (t0: T).(\lambda (H1: (subst1 (s k i) v t1 
-t0)).(let TMP_15 \def (s k i) in (let TMP_18 \def (\lambda (t: T).(let TMP_16 
-\def (THead k u1 t1) in (let TMP_17 \def (THead k t2 t) in (subst1 i v TMP_16 
-TMP_17)))) in (let TMP_19 \def (THead k u1 t1) in (let TMP_20 \def (THead k 
-t2 t1) in (let TMP_21 \def (subst0_fst v t2 u1 i H0 t1 k) in (let TMP_22 \def 
-(subst1_single i v TMP_19 TMP_20 TMP_21) in (let TMP_26 \def (\lambda (t3: 
-T).(\lambda (H2: (subst0 (s k i) v t1 t3)).(let TMP_23 \def (THead k u1 t1) 
-in (let TMP_24 \def (THead k t2 t3) in (let TMP_25 \def (subst0_both v u1 t2 
-i H0 k t1 t3 H2) in (subst1_single i v TMP_23 TMP_24 TMP_25)))))) in 
-(subst1_ind TMP_15 v t1 TMP_18 TMP_22 TMP_26 t0 H1)))))))))))))) in 
-(subst1_ind i v u1 TMP_3 TMP_14 TMP_27 u2 H)))))))).
+(H: (subst1 i v u1 u2)).(subst1_ind i v u1 (\lambda (t: T).(\forall (k: 
+K).(\forall (t1: T).(\forall (t2: T).((subst1 (s k i) v t1 t2) \to (subst1 i 
+v (THead k u1 t1) (THead k t t2))))))) (\lambda (k: K).(\lambda (t1: 
+T).(\lambda (t2: T).(\lambda (H0: (subst1 (s k i) v t1 t2)).(subst1_ind (s k 
+i) v t1 (\lambda (t: T).(subst1 i v (THead k u1 t1) (THead k u1 t))) 
+(subst1_refl i v (THead k u1 t1)) (\lambda (t3: T).(\lambda (H1: (subst0 (s k 
+i) v t1 t3)).(subst1_single i v (THead k u1 t1) (THead k u1 t3) (subst0_snd k 
+v t3 t1 i H1 u1)))) t2 H0))))) (\lambda (t2: T).(\lambda (H0: (subst0 i v u1 
+t2)).(\lambda (k: K).(\lambda (t1: T).(\lambda (t0: T).(\lambda (H1: (subst1 
+(s k i) v t1 t0)).(subst1_ind (s k i) v t1 (\lambda (t: T).(subst1 i v (THead 
+k u1 t1) (THead k t2 t))) (subst1_single i v (THead k u1 t1) (THead k t2 t1) 
+(subst0_fst v t2 u1 i H0 t1 k)) (\lambda (t3: T).(\lambda (H2: (subst0 (s k 
+i) v t1 t3)).(subst1_single i v (THead k u1 t1) (THead k t2 t3) (subst0_both 
+v u1 t2 i H0 k t1 t3 H2)))) t0 H1))))))) u2 H))))).
 
-theorem subst1_lift_lt:
+lemma subst1_lift_lt:
  \forall (t1: T).(\forall (t2: T).(\forall (u: T).(\forall (i: nat).((subst1 
 i u t1 t2) \to (\forall (d: nat).((lt i d) \to (\forall (h: nat).(subst1 i 
 (lift h (minus d (S i)) u) (lift h d t1) (lift h d t2)))))))))
 \def
  \lambda (t1: T).(\lambda (t2: T).(\lambda (u: T).(\lambda (i: nat).(\lambda 
-(H: (subst1 i u t1 t2)).(let TMP_6 \def (\lambda (t: T).(\forall (d: 
-nat).((lt i d) \to (\forall (h: nat).(let TMP_1 \def (S i) in (let TMP_2 \def 
-(minus d TMP_1) in (let TMP_3 \def (lift h TMP_2 u) in (let TMP_4 \def (lift 
-h d t1) in (let TMP_5 \def (lift h d t) in (subst1 i TMP_3 TMP_4 
-TMP_5)))))))))) in (let TMP_11 \def (\lambda (d: nat).(\lambda (_: (lt i 
-d)).(\lambda (h: nat).(let TMP_7 \def (S i) in (let TMP_8 \def (minus d 
-TMP_7) in (let TMP_9 \def (lift h TMP_8 u) in (let TMP_10 \def (lift h d t1) 
-in (subst1_refl i TMP_9 TMP_10)))))))) in (let TMP_18 \def (\lambda (t3: 
-T).(\lambda (H0: (subst0 i u t1 t3)).(\lambda (d: nat).(\lambda (H1: (lt i 
-d)).(\lambda (h: nat).(let TMP_12 \def (S i) in (let TMP_13 \def (minus d 
-TMP_12) in (let TMP_14 \def (lift h TMP_13 u) in (let TMP_15 \def (lift h d 
-t1) in (let TMP_16 \def (lift h d t3) in (let TMP_17 \def (subst0_lift_lt t1 
-t3 u i H0 d H1 h) in (subst1_single i TMP_14 TMP_15 TMP_16 TMP_17)))))))))))) 
-in (subst1_ind i u t1 TMP_6 TMP_11 TMP_18 t2 H)))))))).
+(H: (subst1 i u t1 t2)).(subst1_ind i u t1 (\lambda (t: T).(\forall (d: 
+nat).((lt i d) \to (\forall (h: nat).(subst1 i (lift h (minus d (S i)) u) 
+(lift h d t1) (lift h d t)))))) (\lambda (d: nat).(\lambda (_: (lt i 
+d)).(\lambda (h: nat).(subst1_refl i (lift h (minus d (S i)) u) (lift h d 
+t1))))) (\lambda (t3: T).(\lambda (H0: (subst0 i u t1 t3)).(\lambda (d: 
+nat).(\lambda (H1: (lt i d)).(\lambda (h: nat).(subst1_single i (lift h 
+(minus d (S i)) u) (lift h d t1) (lift h d t3) (subst0_lift_lt t1 t3 u i H0 d 
+H1 h))))))) t2 H))))).
 
-theorem subst1_lift_ge:
+lemma subst1_lift_ge:
  \forall (t1: T).(\forall (t2: T).(\forall (u: T).(\forall (i: nat).(\forall 
 (h: nat).((subst1 i u t1 t2) \to (\forall (d: nat).((le d i) \to (subst1 
 (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:
+lemma 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:
+lemma subst1_lift_S:
  \forall (u: T).(\forall (i: nat).(\forall (h: nat).((le h i) \to (subst1 i 
 (TLRef h) (lift (S h) (S i) u) (lift (S h) i u)))))
 \def
- \lambda (u: T).(let TMP_7 \def (\lambda (t: T).(\forall (i: nat).(\forall 
-(h: nat).((le h i) \to (let TMP_1 \def (TLRef h) in (let TMP_2 \def (S h) in 
-(let TMP_3 \def (S i) in (let TMP_4 \def (lift TMP_2 TMP_3 t) in (let TMP_5 
-\def (S h) in (let TMP_6 \def (lift TMP_5 i t) in (subst1 i TMP_1 TMP_4 
-TMP_6))))))))))) in (let TMP_34 \def (\lambda (n: nat).(\lambda (i: 
-nat).(\lambda (h: nat).(\lambda (_: (le h i)).(let TMP_8 \def (TSort n) in 
-(let TMP_13 \def (\lambda (t: T).(let TMP_9 \def (TLRef h) in (let TMP_10 
-\def (S h) in (let TMP_11 \def (TSort n) in (let TMP_12 \def (lift TMP_10 i 
-TMP_11) in (subst1 i TMP_9 t TMP_12)))))) in (let TMP_14 \def (TSort n) in 
-(let TMP_17 \def (\lambda (t: T).(let TMP_15 \def (TLRef h) in (let TMP_16 
-\def (TSort n) in (subst1 i TMP_15 TMP_16 t)))) in (let TMP_18 \def (TLRef h) 
-in (let TMP_19 \def (TSort n) in (let TMP_20 \def (subst1_refl i TMP_18 
-TMP_19) in (let TMP_21 \def (S h) in (let TMP_22 \def (TSort n) in (let 
-TMP_23 \def (lift TMP_21 i TMP_22) in (let TMP_24 \def (S h) in (let TMP_25 
-\def (lift_sort n TMP_24 i) in (let TMP_26 \def (eq_ind_r T TMP_14 TMP_17 
-TMP_20 TMP_23 TMP_25) in (let TMP_27 \def (S h) in (let TMP_28 \def (S i) in 
-(let TMP_29 \def (TSort n) in (let TMP_30 \def (lift TMP_27 TMP_28 TMP_29) in 
-(let TMP_31 \def (S h) in (let TMP_32 \def (S i) in (let TMP_33 \def 
-(lift_sort n TMP_31 TMP_32) in (eq_ind_r T TMP_8 TMP_13 TMP_26 TMP_30 
-TMP_33))))))))))))))))))))))))) in (let TMP_220 \def (\lambda (n: 
-nat).(\lambda (i: nat).(\lambda (h: nat).(\lambda (H: (le h i)).(let TMP_35 
-\def (TLRef h) in (let TMP_36 \def (S h) in (let TMP_37 \def (S i) in (let 
-TMP_38 \def (TLRef n) in (let TMP_39 \def (lift TMP_36 TMP_37 TMP_38) in (let 
-TMP_40 \def (S h) in (let TMP_41 \def (TLRef n) in (let TMP_42 \def (lift 
-TMP_40 i TMP_41) in (let TMP_43 \def (subst1 i TMP_35 TMP_39 TMP_42) in (let 
-TMP_79 \def (\lambda (H0: (lt n i)).(let TMP_44 \def (TLRef n) in (let TMP_49 
-\def (\lambda (t: T).(let TMP_45 \def (TLRef h) in (let TMP_46 \def (S h) in 
-(let TMP_47 \def (TLRef n) in (let TMP_48 \def (lift TMP_46 i TMP_47) in 
-(subst1 i TMP_45 t TMP_48)))))) in (let TMP_50 \def (TLRef n) in (let TMP_53 
-\def (\lambda (t: T).(let TMP_51 \def (TLRef h) in (let TMP_52 \def (TLRef n) 
-in (subst1 i TMP_51 TMP_52 t)))) in (let TMP_54 \def (TLRef h) in (let TMP_55 
-\def (TLRef n) in (let TMP_56 \def (subst1_refl i TMP_54 TMP_55) in (let 
-TMP_57 \def (S h) in (let TMP_58 \def (TLRef n) in (let TMP_59 \def (lift 
-TMP_57 i TMP_58) in (let TMP_60 \def (S h) in (let TMP_61 \def (lift_lref_lt 
-n TMP_60 i H0) in (let TMP_62 \def (eq_ind_r T TMP_50 TMP_53 TMP_56 TMP_59 
-TMP_61) in (let TMP_63 \def (S h) in (let TMP_64 \def (S i) in (let TMP_65 
-\def (TLRef n) in (let TMP_66 \def (lift TMP_63 TMP_64 TMP_65) in (let TMP_67 
-\def (S h) in (let TMP_68 \def (S i) in (let TMP_69 \def (S n) in (let TMP_70 
-\def (S i) in (let TMP_71 \def (S n) in (let TMP_72 \def (S TMP_71) in (let 
-TMP_73 \def (S i) in (let TMP_74 \def (S n) in (let TMP_75 \def (le_n_S 
-TMP_74 i H0) in (let TMP_76 \def (le_S TMP_72 TMP_73 TMP_75) in (let TMP_77 
-\def (le_S_n TMP_69 TMP_70 TMP_76) in (let TMP_78 \def (lift_lref_lt n TMP_67 
-TMP_68 TMP_77) in (eq_ind_r T TMP_44 TMP_49 TMP_62 TMP_66 
-TMP_78))))))))))))))))))))))))))))))) in (let TMP_174 \def (\lambda (H0: (eq 
-nat n i)).(let TMP_80 \def (\lambda (n0: nat).(le h n0)) in (let H1 \def 
-(eq_ind_r nat i TMP_80 H n H0) in (let TMP_89 \def (\lambda (n0: nat).(let 
-TMP_81 \def (TLRef h) in (let TMP_82 \def (S h) in (let TMP_83 \def (S n0) in 
-(let TMP_84 \def (TLRef n) in (let TMP_85 \def (lift TMP_82 TMP_83 TMP_84) in 
-(let TMP_86 \def (S h) in (let TMP_87 \def (TLRef n) in (let TMP_88 \def 
-(lift TMP_86 n0 TMP_87) in (subst1 n0 TMP_81 TMP_85 TMP_88)))))))))) in (let 
-TMP_90 \def (TLRef n) in (let TMP_95 \def (\lambda (t: T).(let TMP_91 \def 
-(TLRef h) in (let TMP_92 \def (S h) in (let TMP_93 \def (TLRef n) in (let 
-TMP_94 \def (lift TMP_92 n TMP_93) in (subst1 n TMP_91 t TMP_94)))))) in (let 
-TMP_96 \def (S h) in (let TMP_97 \def (plus n TMP_96) in (let TMP_98 \def 
-(TLRef TMP_97) in (let TMP_101 \def (\lambda (t: T).(let TMP_99 \def (TLRef 
-h) in (let TMP_100 \def (TLRef n) in (subst1 n TMP_99 TMP_100 t)))) in (let 
-TMP_102 \def (plus n h) in (let TMP_103 \def (S TMP_102) in (let TMP_107 \def 
-(\lambda (n0: nat).(let TMP_104 \def (TLRef h) in (let TMP_105 \def (TLRef n) 
-in (let TMP_106 \def (TLRef n0) in (subst1 n TMP_104 TMP_105 TMP_106))))) in 
-(let TMP_108 \def (plus h n) in (let TMP_113 \def (\lambda (n0: nat).(let 
-TMP_109 \def (TLRef h) in (let TMP_110 \def (TLRef n) in (let TMP_111 \def (S 
-n0) in (let TMP_112 \def (TLRef TMP_111) in (subst1 n TMP_109 TMP_110 
-TMP_112)))))) in (let TMP_114 \def (S n) in (let TMP_115 \def (plus h 
-TMP_114) in (let TMP_119 \def (\lambda (n0: nat).(let TMP_116 \def (TLRef h) 
-in (let TMP_117 \def (TLRef n) in (let TMP_118 \def (TLRef n0) in (subst1 n 
-TMP_116 TMP_117 TMP_118))))) in (let TMP_120 \def (S n) in (let TMP_121 \def 
-(TLRef h) in (let TMP_122 \def (lift TMP_120 O TMP_121) in (let TMP_125 \def 
-(\lambda (t: T).(let TMP_123 \def (TLRef h) in (let TMP_124 \def (TLRef n) in 
-(subst1 n TMP_123 TMP_124 t)))) in (let TMP_126 \def (TLRef h) in (let 
-TMP_127 \def (TLRef n) in (let TMP_128 \def (S n) in (let TMP_129 \def (TLRef 
-h) in (let TMP_130 \def (lift TMP_128 O TMP_129) in (let TMP_131 \def (TLRef 
-h) in (let TMP_132 \def (subst0_lref TMP_131 n) in (let TMP_133 \def 
-(subst1_single n TMP_126 TMP_127 TMP_130 TMP_132) in (let TMP_134 \def (S n) 
-in (let TMP_135 \def (plus h TMP_134) in (let TMP_136 \def (TLRef TMP_135) in 
-(let TMP_137 \def (S n) in (let TMP_138 \def (le_O_n h) in (let TMP_139 \def 
-(lift_lref_ge h TMP_137 O TMP_138) in (let TMP_140 \def (eq_ind T TMP_122 
-TMP_125 TMP_133 TMP_136 TMP_139) in (let TMP_141 \def (plus h n) in (let 
-TMP_142 \def (S TMP_141) in (let TMP_143 \def (plus h n) in (let TMP_144 \def 
-(S TMP_143) in (let TMP_145 \def (S n) in (let TMP_146 \def (plus h TMP_145) 
-in (let TMP_147 \def (plus_n_Sm h n) in (let TMP_148 \def (sym_eq nat TMP_144 
-TMP_146 TMP_147) in (let TMP_149 \def (eq_ind nat TMP_115 TMP_119 TMP_140 
-TMP_142 TMP_148) in (let TMP_150 \def (plus n h) in (let TMP_151 \def 
-(plus_sym n h) in (let TMP_152 \def (eq_ind_r nat TMP_108 TMP_113 TMP_149 
-TMP_150 TMP_151) in (let TMP_153 \def (S h) in (let TMP_154 \def (plus n 
-TMP_153) in (let TMP_155 \def (plus_n_Sm n h) in (let TMP_156 \def (eq_ind 
-nat TMP_103 TMP_107 TMP_152 TMP_154 TMP_155) in (let TMP_157 \def (S h) in 
-(let TMP_158 \def (TLRef n) in (let TMP_159 \def (lift TMP_157 n TMP_158) in 
-(let TMP_160 \def (S h) in (let TMP_161 \def (le_n n) in (let TMP_162 \def 
-(lift_lref_ge n TMP_160 n TMP_161) in (let TMP_163 \def (eq_ind_r T TMP_98 
-TMP_101 TMP_156 TMP_159 TMP_162) in (let TMP_164 \def (S h) in (let TMP_165 
-\def (S n) in (let TMP_166 \def (TLRef n) in (let TMP_167 \def (lift TMP_164 
-TMP_165 TMP_166) in (let TMP_168 \def (S h) in (let TMP_169 \def (S n) in 
-(let TMP_170 \def (S n) in (let TMP_171 \def (le_n TMP_170) in (let TMP_172 
-\def (lift_lref_lt n TMP_168 TMP_169 TMP_171) in (let TMP_173 \def (eq_ind_r 
-T TMP_90 TMP_95 TMP_163 TMP_167 TMP_172) in (eq_ind nat n TMP_89 TMP_173 i 
-H0))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) in 
-(let TMP_219 \def (\lambda (H0: (lt i n)).(let TMP_175 \def (S h) in (let 
-TMP_176 \def (plus n TMP_175) in (let TMP_177 \def (TLRef TMP_176) in (let 
-TMP_182 \def (\lambda (t: T).(let TMP_178 \def (TLRef h) in (let TMP_179 \def 
-(S h) in (let TMP_180 \def (TLRef n) in (let TMP_181 \def (lift TMP_179 i 
-TMP_180) in (subst1 i TMP_178 t TMP_181)))))) in (let TMP_183 \def (S h) in 
-(let TMP_184 \def (plus n TMP_183) in (let TMP_185 \def (TLRef TMP_184) in 
-(let TMP_190 \def (\lambda (t: T).(let TMP_186 \def (TLRef h) in (let TMP_187 
-\def (S h) in (let TMP_188 \def (plus n TMP_187) in (let TMP_189 \def (TLRef 
-TMP_188) in (subst1 i TMP_186 TMP_189 t)))))) in (let TMP_191 \def (TLRef h) 
-in (let TMP_192 \def (S h) in (let TMP_193 \def (plus n TMP_192) in (let 
-TMP_194 \def (TLRef TMP_193) in (let TMP_195 \def (subst1_refl i TMP_191 
-TMP_194) in (let TMP_196 \def (S h) in (let TMP_197 \def (TLRef n) in (let 
-TMP_198 \def (lift TMP_196 i TMP_197) in (let TMP_199 \def (S h) in (let 
-TMP_200 \def (S i) in (let TMP_201 \def (S n) in (let TMP_202 \def (S i) in 
-(let TMP_203 \def (S TMP_202) in (let TMP_204 \def (S n) in (let TMP_205 \def 
-(S i) in (let TMP_206 \def (le_n_S TMP_205 n H0) in (let TMP_207 \def (le_S 
-TMP_203 TMP_204 TMP_206) in (let TMP_208 \def (le_S_n TMP_200 TMP_201 
-TMP_207) in (let TMP_209 \def (le_S_n i n TMP_208) in (let TMP_210 \def 
-(lift_lref_ge n TMP_199 i TMP_209) in (let TMP_211 \def (eq_ind_r T TMP_185 
-TMP_190 TMP_195 TMP_198 TMP_210) in (let TMP_212 \def (S h) in (let TMP_213 
-\def (S i) in (let TMP_214 \def (TLRef n) in (let TMP_215 \def (lift TMP_212 
-TMP_213 TMP_214) in (let TMP_216 \def (S h) in (let TMP_217 \def (S i) in 
-(let TMP_218 \def (lift_lref_ge n TMP_216 TMP_217 H0) in (eq_ind_r T TMP_177 
-TMP_182 TMP_211 TMP_215 TMP_218)))))))))))))))))))))))))))))))))))))) in 
-(lt_eq_gt_e n i TMP_43 TMP_79 TMP_174 TMP_219))))))))))))))))) in (let 
-TMP_297 \def (\lambda (k: K).(\lambda (t: T).(\lambda (H: ((\forall (i: 
+ \lambda (u: T).(T_ind (\lambda (t: T).(\forall (i: nat).(\forall (h: 
+nat).((le h i) \to (subst1 i (TLRef h) (lift (S h) (S i) t) (lift (S h) i 
+t)))))) (\lambda (n: nat).(\lambda (i: nat).(\lambda (h: nat).(\lambda (_: 
+(le h i)).(eq_ind_r T (TSort n) (\lambda (t: T).(subst1 i (TLRef h) t (lift 
+(S h) i (TSort n)))) (eq_ind_r T (TSort n) (\lambda (t: T).(subst1 i (TLRef 
+h) (TSort n) t)) (subst1_refl i (TLRef h) (TSort n)) (lift (S h) i (TSort n)) 
+(lift_sort n (S h) i)) (lift (S h) (S i) (TSort n)) (lift_sort n (S h) (S 
+i))))))) (\lambda (n: nat).(\lambda (i: nat).(\lambda (h: nat).(\lambda (H: 
+(le h i)).(lt_eq_gt_e n i (subst1 i (TLRef h) (lift (S h) (S i) (TLRef n)) 
+(lift (S h) i (TLRef n))) (\lambda (H0: (lt n i)).(eq_ind_r T (TLRef n) 
+(\lambda (t: T).(subst1 i (TLRef h) t (lift (S h) i (TLRef n)))) (eq_ind_r T 
+(TLRef n) (\lambda (t: T).(subst1 i (TLRef h) (TLRef n) t)) (subst1_refl i 
+(TLRef h) (TLRef n)) (lift (S h) i (TLRef n)) (lift_lref_lt n (S h) i H0)) 
+(lift (S h) (S i) (TLRef n)) (lift_lref_lt n (S h) (S i) (le_S_n (S n) (S i) 
+(le_S (S (S n)) (S i) (le_n_S (S n) i H0)))))) (\lambda (H0: (eq nat n 
+i)).(let H1 \def (eq_ind_r nat i (\lambda (n0: nat).(le h n0)) H n H0) in 
+(eq_ind nat n (\lambda (n0: nat).(subst1 n0 (TLRef h) (lift (S h) (S n0) 
+(TLRef n)) (lift (S h) n0 (TLRef n)))) (eq_ind_r T (TLRef n) (\lambda (t: 
+T).(subst1 n (TLRef h) t (lift (S h) n (TLRef n)))) (eq_ind_r T (TLRef (plus 
+n (S h))) (\lambda (t: T).(subst1 n (TLRef h) (TLRef n) t)) (eq_ind nat (S 
+(plus n h)) (\lambda (n0: nat).(subst1 n (TLRef h) (TLRef n) (TLRef n0))) 
+(eq_ind_r nat (plus h n) (\lambda (n0: nat).(subst1 n (TLRef h) (TLRef n) 
+(TLRef (S n0)))) (eq_ind nat (plus h (S n)) (\lambda (n0: nat).(subst1 n 
+(TLRef h) (TLRef n) (TLRef n0))) (eq_ind T (lift (S n) O (TLRef h)) (\lambda 
+(t: T).(subst1 n (TLRef h) (TLRef n) t)) (subst1_single n (TLRef h) (TLRef n) 
+(lift (S n) O (TLRef h)) (subst0_lref (TLRef h) n)) (TLRef (plus h (S n))) 
+(lift_lref_ge h (S n) O (le_O_n h))) (S (plus h n)) (sym_eq nat (S (plus h 
+n)) (plus h (S n)) (plus_n_Sm h n))) (plus n h) (plus_sym n h)) (plus n (S 
+h)) (plus_n_Sm n h)) (lift (S h) n (TLRef n)) (lift_lref_ge n (S h) n (le_n 
+n))) (lift (S h) (S n) (TLRef n)) (lift_lref_lt n (S h) (S n) (le_n (S n)))) 
+i H0))) (\lambda (H0: (lt i n)).(eq_ind_r T (TLRef (plus n (S h))) (\lambda 
+(t: T).(subst1 i (TLRef h) t (lift (S h) i (TLRef n)))) (eq_ind_r T (TLRef 
+(plus n (S h))) (\lambda (t: T).(subst1 i (TLRef h) (TLRef (plus n (S h))) 
+t)) (subst1_refl i (TLRef h) (TLRef (plus n (S h)))) (lift (S h) i (TLRef n)) 
+(lift_lref_ge n (S h) i (le_S_n i n (le_S_n (S i) (S n) (le_S (S (S i)) (S n) 
+(le_n_S (S i) n H0)))))) (lift (S h) (S i) (TLRef n)) (lift_lref_ge n (S h) 
+(S i) H0)))))))) (\lambda (k: K).(\lambda (t: T).(\lambda (H: ((\forall (i: 
 nat).(\forall (h: nat).((le h i) \to (subst1 i (TLRef h) (lift (S h) (S i) t) 
 (lift (S h) i t))))))).(\lambda (t0: T).(\lambda (H0: ((\forall (i: 
 nat).(\forall (h: nat).((le h i) \to (subst1 i (TLRef h) (lift (S h) (S i) 
 t0) (lift (S h) i t0))))))).(\lambda (i: nat).(\lambda (h: nat).(\lambda (H1: 
-(le h i)).(let TMP_221 \def (S h) in (let TMP_222 \def (S i) in (let TMP_223 
-\def (lift TMP_221 TMP_222 t) in (let TMP_224 \def (S h) in (let TMP_225 \def 
-(S i) in (let TMP_226 \def (s k TMP_225) in (let TMP_227 \def (lift TMP_224 
-TMP_226 t0) in (let TMP_228 \def (THead k TMP_223 TMP_227) in (let TMP_233 
-\def (\lambda (t1: T).(let TMP_229 \def (TLRef h) in (let TMP_230 \def (S h) 
-in (let TMP_231 \def (THead k t t0) in (let TMP_232 \def (lift TMP_230 i 
-TMP_231) in (subst1 i TMP_229 t1 TMP_232)))))) in (let TMP_234 \def (S h) in 
-(let TMP_235 \def (lift TMP_234 i t) in (let TMP_236 \def (S h) in (let 
-TMP_237 \def (s k i) in (let TMP_238 \def (lift TMP_236 TMP_237 t0) in (let 
-TMP_239 \def (THead k TMP_235 TMP_238) in (let TMP_249 \def (\lambda (t1: 
-T).(let TMP_240 \def (TLRef h) in (let TMP_241 \def (S h) in (let TMP_242 
-\def (S i) in (let TMP_243 \def (lift TMP_241 TMP_242 t) in (let TMP_244 \def 
-(S h) in (let TMP_245 \def (S i) in (let TMP_246 \def (s k TMP_245) in (let 
-TMP_247 \def (lift TMP_244 TMP_246 t0) in (let TMP_248 \def (THead k TMP_243 
-TMP_247) in (subst1 i TMP_240 TMP_248 t1))))))))))) in (let TMP_250 \def 
-(TLRef h) in (let TMP_251 \def (S h) in (let TMP_252 \def (S i) in (let 
-TMP_253 \def (lift TMP_251 TMP_252 t) in (let TMP_254 \def (S h) in (let 
-TMP_255 \def (lift TMP_254 i t) in (let TMP_256 \def (H i h H1) in (let 
-TMP_257 \def (S h) in (let TMP_258 \def (S i) in (let TMP_259 \def (s k 
-TMP_258) in (let TMP_260 \def (lift TMP_257 TMP_259 t0) in (let TMP_261 \def 
-(S h) in (let TMP_262 \def (s k i) in (let TMP_263 \def (lift TMP_261 TMP_262 
-t0) in (let TMP_264 \def (s k i) in (let TMP_265 \def (S TMP_264) in (let 
-TMP_273 \def (\lambda (n: nat).(let TMP_266 \def (s k i) in (let TMP_267 \def 
-(TLRef h) in (let TMP_268 \def (S h) in (let TMP_269 \def (lift TMP_268 n t0) 
-in (let TMP_270 \def (S h) in (let TMP_271 \def (s k i) in (let TMP_272 \def 
-(lift TMP_270 TMP_271 t0) in (subst1 TMP_266 TMP_267 TMP_269 TMP_272))))))))) 
-in (let TMP_274 \def (s k i) in (let TMP_275 \def (s k i) in (let TMP_276 
-\def (s_inc k i) in (let TMP_277 \def (le_trans h i TMP_275 H1 TMP_276) in 
-(let TMP_278 \def (H0 TMP_274 h TMP_277) in (let TMP_279 \def (S i) in (let 
-TMP_280 \def (s k TMP_279) in (let TMP_281 \def (s_S k i) in (let TMP_282 
-\def (eq_ind_r nat TMP_265 TMP_273 TMP_278 TMP_280 TMP_281) in (let TMP_283 
-\def (subst1_head TMP_250 TMP_253 TMP_255 i TMP_256 k TMP_260 TMP_263 
-TMP_282) in (let TMP_284 \def (S h) in (let TMP_285 \def (THead k t t0) in 
-(let TMP_286 \def (lift TMP_284 i TMP_285) in (let TMP_287 \def (S h) in (let 
-TMP_288 \def (lift_head k t t0 TMP_287 i) in (let TMP_289 \def (eq_ind_r T 
-TMP_239 TMP_249 TMP_283 TMP_286 TMP_288) in (let TMP_290 \def (S h) in (let 
-TMP_291 \def (S i) in (let TMP_292 \def (THead k t t0) in (let TMP_293 \def 
-(lift TMP_290 TMP_291 TMP_292) in (let TMP_294 \def (S h) in (let TMP_295 
-\def (S i) in (let TMP_296 \def (lift_head k t t0 TMP_294 TMP_295) in 
-(eq_ind_r T TMP_228 TMP_233 TMP_289 TMP_293 
-TMP_296))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) in 
-(T_ind TMP_7 TMP_34 TMP_220 TMP_297 u))))).
+(le h i)).(eq_ind_r T (THead k (lift (S h) (S i) t) (lift (S h) (s k (S i)) 
+t0)) (\lambda (t1: T).(subst1 i (TLRef h) t1 (lift (S h) i (THead k t t0)))) 
+(eq_ind_r T (THead k (lift (S h) i t) (lift (S h) (s k i) t0)) (\lambda (t1: 
+T).(subst1 i (TLRef h) (THead k (lift (S h) (S i) t) (lift (S h) (s k (S i)) 
+t0)) t1)) (subst1_head (TLRef h) (lift (S h) (S i) t) (lift (S h) i t) i (H i 
+h H1) k (lift (S h) (s k (S i)) t0) (lift (S h) (s k i) t0) (eq_ind_r nat (S 
+(s k i)) (\lambda (n: nat).(subst1 (s k i) (TLRef h) (lift (S h) n t0) (lift 
+(S h) (s k i) t0))) (H0 (s k i) h (le_trans h i (s k i) H1 (s_inc k i))) (s k 
+(S i)) (s_S k i))) (lift (S h) i (THead k t t0)) (lift_head k t t0 (S h) i)) 
+(lift (S h) (S i) (THead k t t0)) (lift_head k t t0 (S h) (S i))))))))))) u).