+ \forall (t0: T).(\forall (t1: T).((pr0 t0 t1) \to (\forall (t2: T).((pr0 t0
+t2) \to (ex2 T (\lambda (t: T).(pr0 t1 t)) (\lambda (t: T).(pr0 t2 t)))))))
+\def
+ \lambda (t0: T).(tlt_wf_ind (\lambda (t: T).(\forall (t1: T).((pr0 t t1) \to
+(\forall (t2: T).((pr0 t t2) \to (ex2 T (\lambda (t3: T).(pr0 t1 t3))
+(\lambda (t3: T).(pr0 t2 t3)))))))) (\lambda (t: T).(\lambda (H: ((\forall
+(v: T).((tlt v t) \to (\forall (t1: T).((pr0 v t1) \to (\forall (t2: T).((pr0
+v t2) \to (ex2 T (\lambda (t: T).(pr0 t1 t)) (\lambda (t: T).(pr0 t2
+t))))))))))).(\lambda (t1: T).(\lambda (H0: (pr0 t t1)).(\lambda (t2:
+T).(\lambda (H1: (pr0 t t2)).(let H2 \def (match H0 return (\lambda (t0:
+T).(\lambda (t3: T).(\lambda (_: (pr0 t0 t3)).((eq T t0 t) \to ((eq T t3 t1)
+\to (ex2 T (\lambda (t: T).(pr0 t1 t)) (\lambda (t: T).(pr0 t2 t)))))))) with
+[(pr0_refl t0) \Rightarrow (\lambda (H2: (eq T t0 t)).(\lambda (H3: (eq T t0
+t1)).(eq_ind T t (\lambda (t: T).((eq T t t1) \to (ex2 T (\lambda (t2:
+T).(pr0 t1 t2)) (\lambda (t1: T).(pr0 t2 t1))))) (\lambda (H4: (eq T t
+t1)).(eq_ind T t1 (\lambda (_: T).(ex2 T (\lambda (t2: T).(pr0 t1 t2))
+(\lambda (t1: T).(pr0 t2 t1)))) (let H5 \def (match H1 return (\lambda (t0:
+T).(\lambda (t3: T).(\lambda (_: (pr0 t0 t3)).((eq T t0 t) \to ((eq T t3 t2)
+\to (ex2 T (\lambda (t: T).(pr0 t1 t)) (\lambda (t: T).(pr0 t2 t)))))))) with
+[(pr0_refl t3) \Rightarrow (\lambda (H5: (eq T t3 t)).(\lambda (H6: (eq T t3
+t2)).(eq_ind T t (\lambda (t: T).((eq T t t2) \to (ex2 T (\lambda (t0:
+T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 t2 t0))))) (\lambda (H7: (eq T t
+t2)).(eq_ind T t2 (\lambda (_: T).(ex2 T (\lambda (t0: T).(pr0 t1 t0))
+(\lambda (t0: T).(pr0 t2 t0)))) (let H0 \def (eq_ind T t (\lambda (t: T).(eq
+T t3 t)) H5 t2 H7) in (let H1 \def (eq_ind T t (\lambda (t: T).(eq T t t1))
+H4 t2 H7) in (let H2 \def (eq_ind T t (\lambda (t: T).(eq T t0 t)) H2 t2 H7)
+in (let H3 \def (eq_ind T t (\lambda (t: T).(\forall (v: T).((tlt v t) \to
+(\forall (t1: T).((pr0 v t1) \to (\forall (t2: T).((pr0 v t2) \to (ex2 T
+(\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 t2 t0)))))))))) H t2 H7)
+in (let H4 \def (eq_ind T t2 (\lambda (t: T).(\forall (v: T).((tlt v t) \to
+(\forall (t1: T).((pr0 v t1) \to (\forall (t2: T).((pr0 v t2) \to (ex2 T
+(\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 t2 t0)))))))))) H3 t1 H1)
+in (eq_ind_r T t1 (\lambda (t: T).(ex2 T (\lambda (t0: T).(pr0 t1 t0))
+(\lambda (t0: T).(pr0 t t0)))) (let H8 \def (eq_ind T t2 (\lambda (t: T).(eq
+T t0 t)) H2 t1 H1) in (ex_intro2 T (\lambda (t: T).(pr0 t1 t)) (\lambda (t:
+T).(pr0 t1 t)) t1 (pr0_refl t1) (pr0_refl t1))) t2 H1)))))) t (sym_eq T t t2
+H7))) t3 (sym_eq T t3 t H5) H6))) | (pr0_comp u1 u2 H4 t3 t4 H5 k)
+\Rightarrow (\lambda (H6: (eq T (THead k u1 t3) t)).(\lambda (H7: (eq T
+(THead k u2 t4) t2)).(eq_ind T (THead k u1 t3) (\lambda (_: T).((eq T (THead
+k u2 t4) t2) \to ((pr0 u1 u2) \to ((pr0 t3 t4) \to (ex2 T (\lambda (t0:
+T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 t2 t0))))))) (\lambda (H8: (eq T (THead
+k u2 t4) t2)).(eq_ind T (THead k u2 t4) (\lambda (t: T).((pr0 u1 u2) \to
+((pr0 t3 t4) \to (ex2 T (\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 t
+t0)))))) (\lambda (H9: (pr0 u1 u2)).(\lambda (H10: (pr0 t3 t4)).(let H0 \def
+(eq_ind_r T t (\lambda (t: T).(eq T t t1)) H4 (THead k u1 t3) H6) in (eq_ind
+T (THead k u1 t3) (\lambda (t: T).(ex2 T (\lambda (t0: T).(pr0 t t0))
+(\lambda (t0: T).(pr0 (THead k u2 t4) t0)))) (let H1 \def (eq_ind_r T t
+(\lambda (t: T).(eq T t0 t)) H2 (THead k u1 t3) H6) in (let H2 \def (eq_ind_r
+T t (\lambda (t: T).(\forall (v: T).((tlt v t) \to (\forall (t1: T).((pr0 v
+t1) \to (\forall (t2: T).((pr0 v t2) \to (ex2 T (\lambda (t0: T).(pr0 t1 t0))
+(\lambda (t0: T).(pr0 t2 t0)))))))))) H (THead k u1 t3) H6) in (ex_intro2 T
+(\lambda (t: T).(pr0 (THead k u1 t3) t)) (\lambda (t: T).(pr0 (THead k u2 t4)
+t)) (THead k u2 t4) (pr0_comp u1 u2 H9 t3 t4 H10 k) (pr0_refl (THead k u2
+t4))))) t1 H0)))) t2 H8)) t H6 H7 H4 H5))) | (pr0_beta u v1 v2 H4 t3 t4 H5)
+\Rightarrow (\lambda (H6: (eq T (THead (Flat Appl) v1 (THead (Bind Abst) u
+t3)) t)).(\lambda (H7: (eq T (THead (Bind Abbr) v2 t4) t2)).(eq_ind T (THead
+(Flat Appl) v1 (THead (Bind Abst) u t3)) (\lambda (_: T).((eq T (THead (Bind
+Abbr) v2 t4) t2) \to ((pr0 v1 v2) \to ((pr0 t3 t4) \to (ex2 T (\lambda (t0:
+T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 t2 t0))))))) (\lambda (H8: (eq T (THead
+(Bind Abbr) v2 t4) t2)).(eq_ind T (THead (Bind Abbr) v2 t4) (\lambda (t:
+T).((pr0 v1 v2) \to ((pr0 t3 t4) \to (ex2 T (\lambda (t0: T).(pr0 t1 t0))
+(\lambda (t0: T).(pr0 t t0)))))) (\lambda (H9: (pr0 v1 v2)).(\lambda (H10:
+(pr0 t3 t4)).(let H0 \def (eq_ind_r T t (\lambda (t: T).(eq T t t1)) H4
+(THead (Flat Appl) v1 (THead (Bind Abst) u t3)) H6) in (eq_ind T (THead (Flat
+Appl) v1 (THead (Bind Abst) u t3)) (\lambda (t: T).(ex2 T (\lambda (t0:
+T).(pr0 t t0)) (\lambda (t0: T).(pr0 (THead (Bind Abbr) v2 t4) t0)))) (let H1
+\def (eq_ind_r T t (\lambda (t: T).(eq T t0 t)) H2 (THead (Flat Appl) v1
+(THead (Bind Abst) u t3)) H6) in (let H2 \def (eq_ind_r T t (\lambda (t:
+T).(\forall (v: T).((tlt v t) \to (\forall (t1: T).((pr0 v t1) \to (\forall
+(t2: T).((pr0 v t2) \to (ex2 T (\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0:
+T).(pr0 t2 t0)))))))))) H (THead (Flat Appl) v1 (THead (Bind Abst) u t3)) H6)
+in (ex_intro2 T (\lambda (t: T).(pr0 (THead (Flat Appl) v1 (THead (Bind Abst)
+u t3)) t)) (\lambda (t: T).(pr0 (THead (Bind Abbr) v2 t4) t)) (THead (Bind
+Abbr) v2 t4) (pr0_beta u v1 v2 H9 t3 t4 H10) (pr0_refl (THead (Bind Abbr) v2
+t4))))) t1 H0)))) t2 H8)) t H6 H7 H4 H5))) | (pr0_upsilon b H4 v1 v2 H5 u1 u2
+H6 t3 t4 H7) \Rightarrow (\lambda (H8: (eq T (THead (Flat Appl) v1 (THead
+(Bind b) u1 t3)) t)).(\lambda (H9: (eq T (THead (Bind b) u2 (THead (Flat
+Appl) (lift (S O) O v2) t4)) t2)).(eq_ind T (THead (Flat Appl) v1 (THead
+(Bind b) u1 t3)) (\lambda (_: T).((eq T (THead (Bind b) u2 (THead (Flat Appl)
+(lift (S O) O v2) t4)) t2) \to ((not (eq B b Abst)) \to ((pr0 v1 v2) \to
+((pr0 u1 u2) \to ((pr0 t3 t4) \to (ex2 T (\lambda (t0: T).(pr0 t1 t0))
+(\lambda (t0: T).(pr0 t2 t0))))))))) (\lambda (H10: (eq T (THead (Bind b) u2
+(THead (Flat Appl) (lift (S O) O v2) t4)) t2)).(eq_ind T (THead (Bind b) u2
+(THead (Flat Appl) (lift (S O) O v2) t4)) (\lambda (t: T).((not (eq B b
+Abst)) \to ((pr0 v1 v2) \to ((pr0 u1 u2) \to ((pr0 t3 t4) \to (ex2 T (\lambda
+(t0: T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 t t0)))))))) (\lambda (H11: (not
+(eq B b Abst))).(\lambda (H12: (pr0 v1 v2)).(\lambda (H13: (pr0 u1
+u2)).(\lambda (H14: (pr0 t3 t4)).(let H0 \def (eq_ind_r T t (\lambda (t:
+T).(eq T t t1)) H4 (THead (Flat Appl) v1 (THead (Bind b) u1 t3)) H8) in
+(eq_ind T (THead (Flat Appl) v1 (THead (Bind b) u1 t3)) (\lambda (t: T).(ex2
+T (\lambda (t0: T).(pr0 t t0)) (\lambda (t0: T).(pr0 (THead (Bind b) u2
+(THead (Flat Appl) (lift (S O) O v2) t4)) t0)))) (let H1 \def (eq_ind_r T t
+(\lambda (t: T).(eq T t0 t)) H2 (THead (Flat Appl) v1 (THead (Bind b) u1 t3))
+H8) in (let H2 \def (eq_ind_r T t (\lambda (t: T).(\forall (v: T).((tlt v t)
+\to (\forall (t1: T).((pr0 v t1) \to (\forall (t2: T).((pr0 v t2) \to (ex2 T
+(\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 t2 t0)))))))))) H (THead
+(Flat Appl) v1 (THead (Bind b) u1 t3)) H8) in
+(pr0_confluence__pr0_cong_upsilon_refl b H11 u1 u2 H13 t3 t4 H14 v1 v2 v2 H12
+(pr0_refl v2)))) t1 H0)))))) t2 H10)) t H8 H9 H4 H5 H6 H7))) | (pr0_delta u1
+u2 H4 t3 t4 H5 w H6) \Rightarrow (\lambda (H7: (eq T (THead (Bind Abbr) u1
+t3) t)).(\lambda (H8: (eq T (THead (Bind Abbr) u2 w) t2)).(eq_ind T (THead
+(Bind Abbr) u1 t3) (\lambda (_: T).((eq T (THead (Bind Abbr) u2 w) t2) \to
+((pr0 u1 u2) \to ((pr0 t3 t4) \to ((subst0 O u2 t4 w) \to (ex2 T (\lambda
+(t0: T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 t2 t0)))))))) (\lambda (H9: (eq T
+(THead (Bind Abbr) u2 w) t2)).(eq_ind T (THead (Bind Abbr) u2 w) (\lambda (t:
+T).((pr0 u1 u2) \to ((pr0 t3 t4) \to ((subst0 O u2 t4 w) \to (ex2 T (\lambda
+(t0: T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 t t0))))))) (\lambda (H10: (pr0 u1
+u2)).(\lambda (H11: (pr0 t3 t4)).(\lambda (H12: (subst0 O u2 t4 w)).(let H0
+\def (eq_ind_r T t (\lambda (t: T).(eq T t t1)) H4 (THead (Bind Abbr) u1 t3)
+H7) in (eq_ind T (THead (Bind Abbr) u1 t3) (\lambda (t: T).(ex2 T (\lambda
+(t0: T).(pr0 t t0)) (\lambda (t0: T).(pr0 (THead (Bind Abbr) u2 w) t0))))
+(let H1 \def (eq_ind_r T t (\lambda (t: T).(eq T t0 t)) H2 (THead (Bind Abbr)
+u1 t3) H7) in (let H2 \def (eq_ind_r T t (\lambda (t: T).(\forall (v:
+T).((tlt v t) \to (\forall (t1: T).((pr0 v t1) \to (\forall (t2: T).((pr0 v
+t2) \to (ex2 T (\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 t2
+t0)))))))))) H (THead (Bind Abbr) u1 t3) H7) in (ex_intro2 T (\lambda (t:
+T).(pr0 (THead (Bind Abbr) u1 t3) t)) (\lambda (t: T).(pr0 (THead (Bind Abbr)
+u2 w) t)) (THead (Bind Abbr) u2 w) (pr0_delta u1 u2 H10 t3 t4 H11 w H12)
+(pr0_refl (THead (Bind Abbr) u2 w))))) t1 H0))))) t2 H9)) t H7 H8 H4 H5 H6)))
+| (pr0_zeta b H4 t3 t4 H5 u) \Rightarrow (\lambda (H6: (eq T (THead (Bind b)
+u (lift (S O) O t3)) t)).(\lambda (H7: (eq T t4 t2)).(eq_ind T (THead (Bind
+b) u (lift (S O) O t3)) (\lambda (_: T).((eq T t4 t2) \to ((not (eq B b
+Abst)) \to ((pr0 t3 t4) \to (ex2 T (\lambda (t0: T).(pr0 t1 t0)) (\lambda
+(t0: T).(pr0 t2 t0))))))) (\lambda (H8: (eq T t4 t2)).(eq_ind T t2 (\lambda
+(t: T).((not (eq B b Abst)) \to ((pr0 t3 t) \to (ex2 T (\lambda (t0: T).(pr0
+t1 t0)) (\lambda (t0: T).(pr0 t2 t0)))))) (\lambda (H9: (not (eq B b
+Abst))).(\lambda (H10: (pr0 t3 t2)).(let H0 \def (eq_ind_r T t (\lambda (t:
+T).(eq T t t1)) H4 (THead (Bind b) u (lift (S O) O t3)) H6) in (eq_ind T
+(THead (Bind b) u (lift (S O) O t3)) (\lambda (t: T).(ex2 T (\lambda (t0:
+T).(pr0 t t0)) (\lambda (t0: T).(pr0 t2 t0)))) (let H1 \def (eq_ind_r T t
+(\lambda (t: T).(eq T t0 t)) H2 (THead (Bind b) u (lift (S O) O t3)) H6) in
+(let H2 \def (eq_ind_r T t (\lambda (t: T).(\forall (v: T).((tlt v t) \to
+(\forall (t1: T).((pr0 v t1) \to (\forall (t2: T).((pr0 v t2) \to (ex2 T
+(\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 t2 t0)))))))))) H (THead
+(Bind b) u (lift (S O) O t3)) H6) in (ex_intro2 T (\lambda (t: T).(pr0 (THead
+(Bind b) u (lift (S O) O t3)) t)) (\lambda (t: T).(pr0 t2 t)) t2 (pr0_zeta b
+H9 t3 t2 H10 u) (pr0_refl t2)))) t1 H0)))) t4 (sym_eq T t4 t2 H8))) t H6 H7
+H4 H5))) | (pr0_epsilon t3 t4 H4 u) \Rightarrow (\lambda (H5: (eq T (THead
+(Flat Cast) u t3) t)).(\lambda (H6: (eq T t4 t2)).(eq_ind T (THead (Flat
+Cast) u t3) (\lambda (_: T).((eq T t4 t2) \to ((pr0 t3 t4) \to (ex2 T
+(\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 t2 t0)))))) (\lambda (H7:
+(eq T t4 t2)).(eq_ind T t2 (\lambda (t: T).((pr0 t3 t) \to (ex2 T (\lambda
+(t0: T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 t2 t0))))) (\lambda (H8: (pr0 t3
+t2)).(let H0 \def (eq_ind_r T t (\lambda (t: T).(eq T t t1)) H4 (THead (Flat
+Cast) u t3) H5) in (eq_ind T (THead (Flat Cast) u t3) (\lambda (t: T).(ex2 T
+(\lambda (t0: T).(pr0 t t0)) (\lambda (t0: T).(pr0 t2 t0)))) (let H1 \def
+(eq_ind_r T t (\lambda (t: T).(eq T t0 t)) H2 (THead (Flat Cast) u t3) H5) in
+(let H2 \def (eq_ind_r T t (\lambda (t: T).(\forall (v: T).((tlt v t) \to
+(\forall (t1: T).((pr0 v t1) \to (\forall (t2: T).((pr0 v t2) \to (ex2 T
+(\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 t2 t0)))))))))) H (THead
+(Flat Cast) u t3) H5) in (ex_intro2 T (\lambda (t: T).(pr0 (THead (Flat Cast)
+u t3) t)) (\lambda (t: T).(pr0 t2 t)) t2 (pr0_epsilon t3 t2 H8 u) (pr0_refl
+t2)))) t1 H0))) t4 (sym_eq T t4 t2 H7))) t H5 H6 H4)))]) in (H5 (refl_equal T
+t) (refl_equal T t2))) t (sym_eq T t t1 H4))) t0 (sym_eq T t0 t H2) H3))) |
+(pr0_comp u1 u2 H2 t0 t3 H3 k) \Rightarrow (\lambda (H4: (eq T (THead k u1
+t0) t)).(\lambda (H5: (eq T (THead k u2 t3) t1)).(eq_ind T (THead k u1 t0)
+(\lambda (_: T).((eq T (THead k u2 t3) t1) \to ((pr0 u1 u2) \to ((pr0 t0 t3)
+\to (ex2 T (\lambda (t2: T).(pr0 t1 t2)) (\lambda (t1: T).(pr0 t2 t1)))))))
+(\lambda (H6: (eq T (THead k u2 t3) t1)).(eq_ind T (THead k u2 t3) (\lambda
+(t: T).((pr0 u1 u2) \to ((pr0 t0 t3) \to (ex2 T (\lambda (t1: T).(pr0 t t1))
+(\lambda (t1: T).(pr0 t2 t1)))))) (\lambda (H7: (pr0 u1 u2)).(\lambda (H8:
+(pr0 t0 t3)).(let H9 \def (match H1 return (\lambda (t0: T).(\lambda (t1:
+T).(\lambda (_: (pr0 t0 t1)).((eq T t0 t) \to ((eq T t1 t2) \to (ex2 T
+(\lambda (t: T).(pr0 (THead k u2 t3) t)) (\lambda (t: T).(pr0 t2 t))))))))
+with [(pr0_refl t4) \Rightarrow (\lambda (H6: (eq T t4 t)).(\lambda (H9: (eq
+T t4 t2)).(eq_ind T t (\lambda (t: T).((eq T t t2) \to (ex2 T (\lambda (t0:
+T).(pr0 (THead k u2 t3) t0)) (\lambda (t0: T).(pr0 t2 t0))))) (\lambda (H10:
+(eq T t t2)).(eq_ind T t2 (\lambda (_: T).(ex2 T (\lambda (t0: T).(pr0 (THead
+k u2 t3) t0)) (\lambda (t0: T).(pr0 t2 t0)))) (let H0 \def (eq_ind_r T t
+(\lambda (t: T).(eq T t t2)) H10 (THead k u1 t0) H4) in (eq_ind T (THead k u1
+t0) (\lambda (t: T).(ex2 T (\lambda (t0: T).(pr0 (THead k u2 t3) t0))
+(\lambda (t0: T).(pr0 t t0)))) (let H1 \def (eq_ind_r T t (\lambda (t: T).(eq
+T t4 t)) H6 (THead k u1 t0) H4) in (let H2 \def (eq_ind_r T t (\lambda (t:
+T).(\forall (v: T).((tlt v t) \to (\forall (t1: T).((pr0 v t1) \to (\forall
+(t2: T).((pr0 v t2) \to (ex2 T (\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0:
+T).(pr0 t2 t0)))))))))) H (THead k u1 t0) H4) in (ex_intro2 T (\lambda (t:
+T).(pr0 (THead k u2 t3) t)) (\lambda (t: T).(pr0 (THead k u1 t0) t)) (THead k
+u2 t3) (pr0_refl (THead k u2 t3)) (pr0_comp u1 u2 H7 t0 t3 H8 k)))) t2 H0)) t
+(sym_eq T t t2 H10))) t4 (sym_eq T t4 t H6) H9))) | (pr0_comp u0 u3 H6 t4 t5
+H7 k0) \Rightarrow (\lambda (H9: (eq T (THead k0 u0 t4) t)).(\lambda (H10:
+(eq T (THead k0 u3 t5) t2)).(eq_ind T (THead k0 u0 t4) (\lambda (_: T).((eq T
+(THead k0 u3 t5) t2) \to ((pr0 u0 u3) \to ((pr0 t4 t5) \to (ex2 T (\lambda
+(t0: T).(pr0 (THead k u2 t3) t0)) (\lambda (t0: T).(pr0 t2 t0))))))) (\lambda
+(H11: (eq T (THead k0 u3 t5) t2)).(eq_ind T (THead k0 u3 t5) (\lambda (t:
+T).((pr0 u0 u3) \to ((pr0 t4 t5) \to (ex2 T (\lambda (t0: T).(pr0 (THead k u2
+t3) t0)) (\lambda (t0: T).(pr0 t t0)))))) (\lambda (H12: (pr0 u0
+u3)).(\lambda (H13: (pr0 t4 t5)).(let H0 \def (eq_ind_r T t (\lambda (t:
+T).(eq T (THead k u1 t0) t)) H4 (THead k0 u0 t4) H9) in (let H1 \def (match
+H0 return (\lambda (t: T).(\lambda (_: (eq ? ? t)).((eq T t (THead k0 u0 t4))
+\to (ex2 T (\lambda (t0: T).(pr0 (THead k u2 t3) t0)) (\lambda (t0: T).(pr0
+(THead k0 u3 t5) t0)))))) with [refl_equal \Rightarrow (\lambda (H0: (eq T
+(THead k u1 t0) (THead k0 u0 t4))).(let H1 \def (f_equal T T (\lambda (e:
+T).(match e return (\lambda (_: T).T) with [(TSort _) \Rightarrow t0 | (TLRef
+_) \Rightarrow t0 | (THead _ _ t) \Rightarrow t])) (THead k u1 t0) (THead k0
+u0 t4) H0) in ((let H2 \def (f_equal T T (\lambda (e: T).(match e return
+(\lambda (_: T).T) with [(TSort _) \Rightarrow u1 | (TLRef _) \Rightarrow u1
+| (THead _ t _) \Rightarrow t])) (THead k u1 t0) (THead k0 u0 t4) H0) in
+((let H3 \def (f_equal T K (\lambda (e: T).(match e return (\lambda (_: T).K)
+with [(TSort _) \Rightarrow k | (TLRef _) \Rightarrow k | (THead k _ _)
+\Rightarrow k])) (THead k u1 t0) (THead k0 u0 t4) H0) in (eq_ind K k0
+(\lambda (k: K).((eq T u1 u0) \to ((eq T t0 t4) \to (ex2 T (\lambda (t:
+T).(pr0 (THead k u2 t3) t)) (\lambda (t: T).(pr0 (THead k0 u3 t5) t))))))
+(\lambda (H10: (eq T u1 u0)).(eq_ind T u0 (\lambda (_: T).((eq T t0 t4) \to
+(ex2 T (\lambda (t0: T).(pr0 (THead k0 u2 t3) t0)) (\lambda (t0: T).(pr0
+(THead k0 u3 t5) t0))))) (\lambda (H11: (eq T t0 t4)).(eq_ind T t4 (\lambda
+(_: T).(ex2 T (\lambda (t0: T).(pr0 (THead k0 u2 t3) t0)) (\lambda (t0:
+T).(pr0 (THead k0 u3 t5) t0)))) (let H4 \def (eq_ind_r T t (\lambda (t:
+T).(\forall (v: T).((tlt v t) \to (\forall (t1: T).((pr0 v t1) \to (\forall
+(t2: T).((pr0 v t2) \to (ex2 T (\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0:
+T).(pr0 t2 t0)))))))))) H (THead k0 u0 t4) H9) in (let H5 \def (eq_ind T t0
+(\lambda (t: T).(pr0 t t3)) H8 t4 H11) in (let H6 \def (eq_ind T u1 (\lambda
+(t: T).(pr0 t u2)) H7 u0 H10) in (ex2_ind T (\lambda (t: T).(pr0 u2 t))
+(\lambda (t: T).(pr0 u3 t)) (ex2 T (\lambda (t: T).(pr0 (THead k0 u2 t3) t))
+(\lambda (t: T).(pr0 (THead k0 u3 t5) t))) (\lambda (x: T).(\lambda (H7: (pr0
+u2 x)).(\lambda (H8: (pr0 u3 x)).(ex2_ind T (\lambda (t: T).(pr0 t3 t))
+(\lambda (t: T).(pr0 t5 t)) (ex2 T (\lambda (t: T).(pr0 (THead k0 u2 t3) t))
+(\lambda (t: T).(pr0 (THead k0 u3 t5) t))) (\lambda (x0: T).(\lambda (H9:
+(pr0 t3 x0)).(\lambda (H12: (pr0 t5 x0)).(ex_intro2 T (\lambda (t: T).(pr0
+(THead k0 u2 t3) t)) (\lambda (t: T).(pr0 (THead k0 u3 t5) t)) (THead k0 x
+x0) (pr0_comp u2 x H7 t3 x0 H9 k0) (pr0_comp u3 x H8 t5 x0 H12 k0))))) (H4 t4
+(tlt_head_dx k0 u0 t4) t3 H5 t5 H13))))) (H4 u0 (tlt_head_sx k0 u0 t4) u2 H6
+u3 H12))))) t0 (sym_eq T t0 t4 H11))) u1 (sym_eq T u1 u0 H10))) k (sym_eq K k
+k0 H3))) H2)) H1)))]) in (H1 (refl_equal T (THead k0 u0 t4))))))) t2 H11)) t
+H9 H10 H6 H7))) | (pr0_beta u v1 v2 H6 t4 t5 H7) \Rightarrow (\lambda (H9:
+(eq T (THead (Flat Appl) v1 (THead (Bind Abst) u t4)) t)).(\lambda (H10: (eq
+T (THead (Bind Abbr) v2 t5) t2)).(eq_ind T (THead (Flat Appl) v1 (THead (Bind
+Abst) u t4)) (\lambda (_: T).((eq T (THead (Bind Abbr) v2 t5) t2) \to ((pr0
+v1 v2) \to ((pr0 t4 t5) \to (ex2 T (\lambda (t0: T).(pr0 (THead k u2 t3) t0))
+(\lambda (t0: T).(pr0 t2 t0))))))) (\lambda (H11: (eq T (THead (Bind Abbr) v2
+t5) t2)).(eq_ind T (THead (Bind Abbr) v2 t5) (\lambda (t: T).((pr0 v1 v2) \to
+((pr0 t4 t5) \to (ex2 T (\lambda (t0: T).(pr0 (THead k u2 t3) t0)) (\lambda
+(t0: T).(pr0 t t0)))))) (\lambda (H12: (pr0 v1 v2)).(\lambda (H13: (pr0 t4
+t5)).(let H0 \def (eq_ind_r T t (\lambda (t: T).(eq T (THead k u1 t0) t)) H4
+(THead (Flat Appl) v1 (THead (Bind Abst) u t4)) H9) in (let H1 \def (match H0
+return (\lambda (t: T).(\lambda (_: (eq ? ? t)).((eq T t (THead (Flat Appl)
+v1 (THead (Bind Abst) u t4))) \to (ex2 T (\lambda (t0: T).(pr0 (THead k u2
+t3) t0)) (\lambda (t0: T).(pr0 (THead (Bind Abbr) v2 t5) t0)))))) with
+[refl_equal \Rightarrow (\lambda (H0: (eq T (THead k u1 t0) (THead (Flat
+Appl) v1 (THead (Bind Abst) u t4)))).(let H1 \def (f_equal T T (\lambda (e:
+T).(match e return (\lambda (_: T).T) with [(TSort _) \Rightarrow t0 | (TLRef
+_) \Rightarrow t0 | (THead _ _ t) \Rightarrow t])) (THead k u1 t0) (THead
+(Flat Appl) v1 (THead (Bind Abst) u t4)) H0) in ((let H2 \def (f_equal T T
+(\lambda (e: T).(match e return (\lambda (_: T).T) with [(TSort _)
+\Rightarrow u1 | (TLRef _) \Rightarrow u1 | (THead _ t _) \Rightarrow t]))
+(THead k u1 t0) (THead (Flat Appl) v1 (THead (Bind Abst) u t4)) H0) in ((let
+H3 \def (f_equal T K (\lambda (e: T).(match e return (\lambda (_: T).K) with
+[(TSort _) \Rightarrow k | (TLRef _) \Rightarrow k | (THead k _ _)
+\Rightarrow k])) (THead k u1 t0) (THead (Flat Appl) v1 (THead (Bind Abst) u
+t4)) H0) in (eq_ind K (Flat Appl) (\lambda (k: K).((eq T u1 v1) \to ((eq T t0
+(THead (Bind Abst) u t4)) \to (ex2 T (\lambda (t: T).(pr0 (THead k u2 t3) t))
+(\lambda (t: T).(pr0 (THead (Bind Abbr) v2 t5) t)))))) (\lambda (H10: (eq T
+u1 v1)).(eq_ind T v1 (\lambda (_: T).((eq T t0 (THead (Bind Abst) u t4)) \to
+(ex2 T (\lambda (t0: T).(pr0 (THead (Flat Appl) u2 t3) t0)) (\lambda (t0:
+T).(pr0 (THead (Bind Abbr) v2 t5) t0))))) (\lambda (H11: (eq T t0 (THead
+(Bind Abst) u t4))).(eq_ind T (THead (Bind Abst) u t4) (\lambda (_: T).(ex2 T
+(\lambda (t0: T).(pr0 (THead (Flat Appl) u2 t3) t0)) (\lambda (t0: T).(pr0
+(THead (Bind Abbr) v2 t5) t0)))) (let H4 \def (eq_ind_r T t (\lambda (t:
+T).(\forall (v: T).((tlt v t) \to (\forall (t1: T).((pr0 v t1) \to (\forall
+(t2: T).((pr0 v t2) \to (ex2 T (\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0:
+T).(pr0 t2 t0)))))))))) H (THead (Flat Appl) v1 (THead (Bind Abst) u t4)) H9)
+in (let H5 \def (eq_ind T t0 (\lambda (t: T).(pr0 t t3)) H8 (THead (Bind
+Abst) u t4) H11) in (let H6 \def (match H5 return (\lambda (t: T).(\lambda
+(t0: T).(\lambda (_: (pr0 t t0)).((eq T t (THead (Bind Abst) u t4)) \to ((eq
+T t0 t3) \to (ex2 T (\lambda (t1: T).(pr0 (THead (Flat Appl) u2 t3) t1))
+(\lambda (t1: T).(pr0 (THead (Bind Abbr) v2 t5) t1)))))))) with [(pr0_refl t)
+\Rightarrow (\lambda (H0: (eq T t (THead (Bind Abst) u t4))).(\lambda (H5:
+(eq T t t3)).(eq_ind T (THead (Bind Abst) u t4) (\lambda (t0: T).((eq T t0
+t3) \to (ex2 T (\lambda (t1: T).(pr0 (THead (Flat Appl) u2 t3) t1)) (\lambda
+(t1: T).(pr0 (THead (Bind Abbr) v2 t5) t1))))) (\lambda (H6: (eq T (THead
+(Bind Abst) u t4) t3)).(eq_ind T (THead (Bind Abst) u t4) (\lambda (t0:
+T).(ex2 T (\lambda (t1: T).(pr0 (THead (Flat Appl) u2 t0) t1)) (\lambda (t1:
+T).(pr0 (THead (Bind Abbr) v2 t5) t1)))) (let H1 \def (eq_ind T u1 (\lambda
+(t: T).(pr0 t u2)) H7 v1 H10) in (ex2_ind T (\lambda (t0: T).(pr0 u2 t0))
+(\lambda (t0: T).(pr0 v2 t0)) (ex2 T (\lambda (t0: T).(pr0 (THead (Flat Appl)
+u2 (THead (Bind Abst) u t4)) t0)) (\lambda (t0: T).(pr0 (THead (Bind Abbr) v2
+t5) t0))) (\lambda (x: T).(\lambda (H2: (pr0 u2 x)).(\lambda (H3: (pr0 v2
+x)).(ex_intro2 T (\lambda (t0: T).(pr0 (THead (Flat Appl) u2 (THead (Bind
+Abst) u t4)) t0)) (\lambda (t0: T).(pr0 (THead (Bind Abbr) v2 t5) t0)) (THead
+(Bind Abbr) x t5) (pr0_beta u u2 x H2 t4 t5 H13) (pr0_comp v2 x H3 t5 t5
+(pr0_refl t5) (Bind Abbr)))))) (H4 v1 (tlt_head_sx (Flat Appl) v1 (THead
+(Bind Abst) u t4)) u2 H1 v2 H12))) t3 H6)) t (sym_eq T t (THead (Bind Abst) u
+t4) H0) H5))) | (pr0_comp u0 u3 H0 t1 t2 H4 k0) \Rightarrow (\lambda (H5: (eq
+T (THead k0 u0 t1) (THead (Bind Abst) u t4))).(\lambda (H8: (eq T (THead k0
+u3 t2) t3)).((let H1 \def (f_equal T T (\lambda (e: T).(match e return
+(\lambda (_: T).T) with [(TSort _) \Rightarrow t1 | (TLRef _) \Rightarrow t1
+| (THead _ _ t) \Rightarrow t])) (THead k0 u0 t1) (THead (Bind Abst) u t4)
+H5) in ((let H2 \def (f_equal T T (\lambda (e: T).(match e return (\lambda
+(_: T).T) with [(TSort _) \Rightarrow u0 | (TLRef _) \Rightarrow u0 | (THead
+_ t _) \Rightarrow t])) (THead k0 u0 t1) (THead (Bind Abst) u t4) H5) in
+((let H3 \def (f_equal T K (\lambda (e: T).(match e return (\lambda (_: T).K)
+with [(TSort _) \Rightarrow k0 | (TLRef _) \Rightarrow k0 | (THead k _ _)
+\Rightarrow k])) (THead k0 u0 t1) (THead (Bind Abst) u t4) H5) in (eq_ind K
+(Bind Abst) (\lambda (k: K).((eq T u0 u) \to ((eq T t1 t4) \to ((eq T (THead
+k u3 t2) t3) \to ((pr0 u0 u3) \to ((pr0 t1 t2) \to (ex2 T (\lambda (t:
+T).(pr0 (THead (Flat Appl) u2 t3) t)) (\lambda (t: T).(pr0 (THead (Bind Abbr)
+v2 t5) t))))))))) (\lambda (H6: (eq T u0 u)).(eq_ind T u (\lambda (t: T).((eq
+T t1 t4) \to ((eq T (THead (Bind Abst) u3 t2) t3) \to ((pr0 t u3) \to ((pr0
+t1 t2) \to (ex2 T (\lambda (t0: T).(pr0 (THead (Flat Appl) u2 t3) t0))
+(\lambda (t0: T).(pr0 (THead (Bind Abbr) v2 t5) t0)))))))) (\lambda (H9: (eq
+T t1 t4)).(eq_ind T t4 (\lambda (t: T).((eq T (THead (Bind Abst) u3 t2) t3)
+\to ((pr0 u u3) \to ((pr0 t t2) \to (ex2 T (\lambda (t0: T).(pr0 (THead (Flat
+Appl) u2 t3) t0)) (\lambda (t0: T).(pr0 (THead (Bind Abbr) v2 t5) t0)))))))
+(\lambda (H11: (eq T (THead (Bind Abst) u3 t2) t3)).(eq_ind T (THead (Bind
+Abst) u3 t2) (\lambda (t: T).((pr0 u u3) \to ((pr0 t4 t2) \to (ex2 T (\lambda
+(t0: T).(pr0 (THead (Flat Appl) u2 t) t0)) (\lambda (t0: T).(pr0 (THead (Bind
+Abbr) v2 t5) t0)))))) (\lambda (_: (pr0 u u3)).(\lambda (H15: (pr0 t4
+t2)).(let H7 \def (eq_ind T u1 (\lambda (t: T).(pr0 t u2)) H7 v1 H10) in
+(ex2_ind T (\lambda (t: T).(pr0 u2 t)) (\lambda (t: T).(pr0 v2 t)) (ex2 T
+(\lambda (t: T).(pr0 (THead (Flat Appl) u2 (THead (Bind Abst) u3 t2)) t))
+(\lambda (t: T).(pr0 (THead (Bind Abbr) v2 t5) t))) (\lambda (x: T).(\lambda
+(H10: (pr0 u2 x)).(\lambda (H12: (pr0 v2 x)).(ex2_ind T (\lambda (t: T).(pr0
+t2 t)) (\lambda (t: T).(pr0 t5 t)) (ex2 T (\lambda (t: T).(pr0 (THead (Flat
+Appl) u2 (THead (Bind Abst) u3 t2)) t)) (\lambda (t: T).(pr0 (THead (Bind
+Abbr) v2 t5) t))) (\lambda (x0: T).(\lambda (H13: (pr0 t2 x0)).(\lambda (H16:
+(pr0 t5 x0)).(ex_intro2 T (\lambda (t: T).(pr0 (THead (Flat Appl) u2 (THead
+(Bind Abst) u3 t2)) t)) (\lambda (t: T).(pr0 (THead (Bind Abbr) v2 t5) t))
+(THead (Bind Abbr) x x0) (pr0_beta u3 u2 x H10 t2 x0 H13) (pr0_comp v2 x H12
+t5 x0 H16 (Bind Abbr)))))) (H4 t4 (tlt_trans (THead (Bind Abst) u t4) t4
+(THead (Flat Appl) v1 (THead (Bind Abst) u t4)) (tlt_head_dx (Bind Abst) u
+t4) (tlt_head_dx (Flat Appl) v1 (THead (Bind Abst) u t4))) t2 H15 t5 H13)))))
+(H4 v1 (tlt_head_sx (Flat Appl) v1 (THead (Bind Abst) u t4)) u2 H7 v2
+H12))))) t3 H11)) t1 (sym_eq T t1 t4 H9))) u0 (sym_eq T u0 u H6))) k0 (sym_eq
+K k0 (Bind Abst) H3))) H2)) H1)) H8 H0 H4))) | (pr0_beta u0 v0 v3 H0 t1 t2
+H4) \Rightarrow (\lambda (H5: (eq T (THead (Flat Appl) v0 (THead (Bind Abst)
+u0 t1)) (THead (Bind Abst) u t4))).(\lambda (H8: (eq T (THead (Bind Abbr) v3
+t2) t3)).((let H1 \def (eq_ind T (THead (Flat Appl) v0 (THead (Bind Abst) u0
+t1)) (\lambda (e: T).(match e return (\lambda (_: T).Prop) with [(TSort _)
+\Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow
+(match k return (\lambda (_: K).Prop) with [(Bind _) \Rightarrow False |
+(Flat _) \Rightarrow True])])) I (THead (Bind Abst) u t4) H5) in (False_ind
+((eq T (THead (Bind Abbr) v3 t2) t3) \to ((pr0 v0 v3) \to ((pr0 t1 t2) \to
+(ex2 T (\lambda (t: T).(pr0 (THead (Flat Appl) u2 t3) t)) (\lambda (t:
+T).(pr0 (THead (Bind Abbr) v2 t5) t)))))) H1)) H8 H0 H4))) | (pr0_upsilon b
+H0 v0 v3 H4 u0 u3 H5 t1 t2 H8) \Rightarrow (\lambda (H11: (eq T (THead (Flat
+Appl) v0 (THead (Bind b) u0 t1)) (THead (Bind Abst) u t4))).(\lambda (H12:
+(eq T (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v3) t2)) t3)).((let
+H1 \def (eq_ind T (THead (Flat Appl) v0 (THead (Bind b) u0 t1)) (\lambda (e:
+T).(match e return (\lambda (_: T).Prop) with [(TSort _) \Rightarrow False |
+(TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow (match k return
+(\lambda (_: K).Prop) with [(Bind _) \Rightarrow False | (Flat _) \Rightarrow
+True])])) I (THead (Bind Abst) u t4) H11) in (False_ind ((eq T (THead (Bind
+b) u3 (THead (Flat Appl) (lift (S O) O v3) t2)) t3) \to ((not (eq B b Abst))
+\to ((pr0 v0 v3) \to ((pr0 u0 u3) \to ((pr0 t1 t2) \to (ex2 T (\lambda (t:
+T).(pr0 (THead (Flat Appl) u2 t3) t)) (\lambda (t: T).(pr0 (THead (Bind Abbr)
+v2 t5) t)))))))) H1)) H12 H0 H4 H5 H8))) | (pr0_delta u0 u3 H0 t1 t2 H4 w H5)
+\Rightarrow (\lambda (H8: (eq T (THead (Bind Abbr) u0 t1) (THead (Bind Abst)
+u t4))).(\lambda (H11: (eq T (THead (Bind Abbr) u3 w) t3)).((let H1 \def
+(eq_ind T (THead (Bind Abbr) u0 t1) (\lambda (e: T).(match e return (\lambda
+(_: T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False
+| (THead k _ _) \Rightarrow (match k return (\lambda (_: K).Prop) with [(Bind
+b) \Rightarrow (match b return (\lambda (_: B).Prop) with [Abbr \Rightarrow
+True | Abst \Rightarrow False | Void \Rightarrow False]) | (Flat _)
+\Rightarrow False])])) I (THead (Bind Abst) u t4) H8) in (False_ind ((eq T
+(THead (Bind Abbr) u3 w) t3) \to ((pr0 u0 u3) \to ((pr0 t1 t2) \to ((subst0 O
+u3 t2 w) \to (ex2 T (\lambda (t: T).(pr0 (THead (Flat Appl) u2 t3) t))
+(\lambda (t: T).(pr0 (THead (Bind Abbr) v2 t5) t))))))) H1)) H11 H0 H4 H5)))
+| (pr0_zeta b H0 t1 t2 H4 u0) \Rightarrow (\lambda (H5: (eq T (THead (Bind b)
+u0 (lift (S O) O t1)) (THead (Bind Abst) u t4))).(\lambda (H8: (eq T t2
+t3)).((let H1 \def (f_equal T T (\lambda (e: T).(match e return (\lambda (_:
+T).T) with [(TSort _) \Rightarrow ((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 (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))]) in lref_map) (\lambda (x: nat).(plus x (S
+O))) O t1) | (TLRef _) \Rightarrow ((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 (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))]) in lref_map) (\lambda (x: nat).(plus x (S
+O))) O t1) | (THead _ _ t) \Rightarrow t])) (THead (Bind b) u0 (lift (S O) O
+t1)) (THead (Bind Abst) u t4) H5) in ((let H2 \def (f_equal T T (\lambda (e:
+T).(match e return (\lambda (_: T).T) with [(TSort _) \Rightarrow u0 | (TLRef
+_) \Rightarrow u0 | (THead _ t _) \Rightarrow t])) (THead (Bind b) u0 (lift
+(S O) O t1)) (THead (Bind Abst) u t4) H5) in ((let H3 \def (f_equal T B
+(\lambda (e: T).(match e return (\lambda (_: T).B) with [(TSort _)
+\Rightarrow b | (TLRef _) \Rightarrow b | (THead k _ _) \Rightarrow (match k
+return (\lambda (_: K).B) with [(Bind b) \Rightarrow b | (Flat _) \Rightarrow
+b])])) (THead (Bind b) u0 (lift (S O) O t1)) (THead (Bind Abst) u t4) H5) in
+(eq_ind B Abst (\lambda (b0: B).((eq T u0 u) \to ((eq T (lift (S O) O t1) t4)
+\to ((eq T t2 t3) \to ((not (eq B b0 Abst)) \to ((pr0 t1 t2) \to (ex2 T
+(\lambda (t: T).(pr0 (THead (Flat Appl) u2 t3) t)) (\lambda (t: T).(pr0
+(THead (Bind Abbr) v2 t5) t))))))))) (\lambda (H6: (eq T u0 u)).(eq_ind T u
+(\lambda (_: T).((eq T (lift (S O) O t1) t4) \to ((eq T t2 t3) \to ((not (eq
+B Abst Abst)) \to ((pr0 t1 t2) \to (ex2 T (\lambda (t0: T).(pr0 (THead (Flat
+Appl) u2 t3) t0)) (\lambda (t0: T).(pr0 (THead (Bind Abbr) v2 t5) t0))))))))
+(\lambda (H9: (eq T (lift (S O) O t1) t4)).(eq_ind T (lift (S O) O t1)
+(\lambda (_: T).((eq T t2 t3) \to ((not (eq B Abst Abst)) \to ((pr0 t1 t2)
+\to (ex2 T (\lambda (t0: T).(pr0 (THead (Flat Appl) u2 t3) t0)) (\lambda (t0:
+T).(pr0 (THead (Bind Abbr) v2 t5) t0))))))) (\lambda (H7: (eq T t2
+t3)).(eq_ind T t3 (\lambda (t: T).((not (eq B Abst Abst)) \to ((pr0 t1 t) \to
+(ex2 T (\lambda (t0: T).(pr0 (THead (Flat Appl) u2 t3) t0)) (\lambda (t0:
+T).(pr0 (THead (Bind Abbr) v2 t5) t0)))))) (\lambda (H11: (not (eq B Abst
+Abst))).(\lambda (_: (pr0 t1 t3)).(let H10 \def (match (H11 (refl_equal B
+Abst)) return (\lambda (_: False).(ex2 T (\lambda (t: T).(pr0 (THead (Flat
+Appl) u2 t3) t)) (\lambda (t: T).(pr0 (THead (Bind Abbr) v2 t5) t)))) with
+[]) in H10))) t2 (sym_eq T t2 t3 H7))) t4 H9)) u0 (sym_eq T u0 u H6))) b
+(sym_eq B b Abst H3))) H2)) H1)) H8 H0 H4))) | (pr0_epsilon t1 t2 H0 u0)
+\Rightarrow (\lambda (H4: (eq T (THead (Flat Cast) u0 t1) (THead (Bind Abst)
+u t4))).(\lambda (H5: (eq T t2 t3)).((let H1 \def (eq_ind T (THead (Flat
+Cast) u0 t1) (\lambda (e: T).(match e return (\lambda (_: T).Prop) with
+[(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _)
+\Rightarrow (match k return (\lambda (_: K).Prop) with [(Bind _) \Rightarrow
+False | (Flat _) \Rightarrow True])])) I (THead (Bind Abst) u t4) H4) in
+(False_ind ((eq T t2 t3) \to ((pr0 t1 t2) \to (ex2 T (\lambda (t: T).(pr0
+(THead (Flat Appl) u2 t3) t)) (\lambda (t: T).(pr0 (THead (Bind Abbr) v2 t5)
+t))))) H1)) H5 H0)))]) in (H6 (refl_equal T (THead (Bind Abst) u t4))
+(refl_equal T t3))))) t0 (sym_eq T t0 (THead (Bind Abst) u t4) H11))) u1
+(sym_eq T u1 v1 H10))) k (sym_eq K k (Flat Appl) H3))) H2)) H1)))]) in (H1
+(refl_equal T (THead (Flat Appl) v1 (THead (Bind Abst) u t4)))))))) t2 H11))
+t H9 H10 H6 H7))) | (pr0_upsilon b H6 v1 v2 H7 u0 u3 H8 t4 t5 H9) \Rightarrow
+(\lambda (H10: (eq T (THead (Flat Appl) v1 (THead (Bind b) u0 t4))
+t)).(\lambda (H11: (eq T (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O
+v2) t5)) t2)).(eq_ind T (THead (Flat Appl) v1 (THead (Bind b) u0 t4))
+(\lambda (_: T).((eq T (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O
+v2) t5)) t2) \to ((not (eq B b Abst)) \to ((pr0 v1 v2) \to ((pr0 u0 u3) \to
+((pr0 t4 t5) \to (ex2 T (\lambda (t0: T).(pr0 (THead k u2 t3) t0)) (\lambda
+(t0: T).(pr0 t2 t0))))))))) (\lambda (H12: (eq T (THead (Bind b) u3 (THead
+(Flat Appl) (lift (S O) O v2) t5)) t2)).(eq_ind T (THead (Bind b) u3 (THead
+(Flat Appl) (lift (S O) O v2) t5)) (\lambda (t: T).((not (eq B b Abst)) \to
+((pr0 v1 v2) \to ((pr0 u0 u3) \to ((pr0 t4 t5) \to (ex2 T (\lambda (t0:
+T).(pr0 (THead k u2 t3) t0)) (\lambda (t0: T).(pr0 t t0)))))))) (\lambda
+(H13: (not (eq B b Abst))).(\lambda (H14: (pr0 v1 v2)).(\lambda (H15: (pr0 u0
+u3)).(\lambda (H16: (pr0 t4 t5)).(let H0 \def (eq_ind_r T t (\lambda (t:
+T).(eq T (THead k u1 t0) t)) H4 (THead (Flat Appl) v1 (THead (Bind b) u0 t4))
+H10) in (let H1 \def (match H0 return (\lambda (t: T).(\lambda (_: (eq ? ?
+t)).((eq T t (THead (Flat Appl) v1 (THead (Bind b) u0 t4))) \to (ex2 T
+(\lambda (t0: T).(pr0 (THead k u2 t3) t0)) (\lambda (t0: T).(pr0 (THead (Bind
+b) u3 (THead (Flat Appl) (lift (S O) O v2) t5)) t0)))))) with [refl_equal
+\Rightarrow (\lambda (H0: (eq T (THead k u1 t0) (THead (Flat Appl) v1 (THead
+(Bind b) u0 t4)))).(let H1 \def (f_equal T T (\lambda (e: T).(match e return
+(\lambda (_: T).T) with [(TSort _) \Rightarrow t0 | (TLRef _) \Rightarrow t0
+| (THead _ _ t) \Rightarrow t])) (THead k u1 t0) (THead (Flat Appl) v1 (THead
+(Bind b) u0 t4)) H0) in ((let H2 \def (f_equal T T (\lambda (e: T).(match e
+return (\lambda (_: T).T) with [(TSort _) \Rightarrow u1 | (TLRef _)
+\Rightarrow u1 | (THead _ t _) \Rightarrow t])) (THead k u1 t0) (THead (Flat
+Appl) v1 (THead (Bind b) u0 t4)) H0) in ((let H3 \def (f_equal T K (\lambda
+(e: T).(match e return (\lambda (_: T).K) with [(TSort _) \Rightarrow k |
+(TLRef _) \Rightarrow k | (THead k _ _) \Rightarrow k])) (THead k u1 t0)
+(THead (Flat Appl) v1 (THead (Bind b) u0 t4)) H0) in (eq_ind K (Flat Appl)
+(\lambda (k: K).((eq T u1 v1) \to ((eq T t0 (THead (Bind b) u0 t4)) \to (ex2
+T (\lambda (t: T).(pr0 (THead k u2 t3) t)) (\lambda (t: T).(pr0 (THead (Bind
+b) u3 (THead (Flat Appl) (lift (S O) O v2) t5)) t)))))) (\lambda (H11: (eq T
+u1 v1)).(eq_ind T v1 (\lambda (_: T).((eq T t0 (THead (Bind b) u0 t4)) \to
+(ex2 T (\lambda (t0: T).(pr0 (THead (Flat Appl) u2 t3) t0)) (\lambda (t0:
+T).(pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t5)) t0)))))
+(\lambda (H12: (eq T t0 (THead (Bind b) u0 t4))).(eq_ind T (THead (Bind b) u0
+t4) (\lambda (_: T).(ex2 T (\lambda (t0: T).(pr0 (THead (Flat Appl) u2 t3)
+t0)) (\lambda (t0: T).(pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O)
+O v2) t5)) t0)))) (let H4 \def (eq_ind_r T t (\lambda (t: T).(\forall (v:
+T).((tlt v t) \to (\forall (t1: T).((pr0 v t1) \to (\forall (t2: T).((pr0 v
+t2) \to (ex2 T (\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 t2
+t0)))))))))) H (THead (Flat Appl) v1 (THead (Bind b) u0 t4)) H10) in (let H5
+\def (eq_ind T t0 (\lambda (t: T).(pr0 t t3)) H8 (THead (Bind b) u0 t4) H12)
+in (let H6 \def (match H5 return (\lambda (t: T).(\lambda (t0: T).(\lambda
+(_: (pr0 t t0)).((eq T t (THead (Bind b) u0 t4)) \to ((eq T t0 t3) \to (ex2 T
+(\lambda (t1: T).(pr0 (THead (Flat Appl) u2 t3) t1)) (\lambda (t1: T).(pr0
+(THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t5)) t1)))))))) with
+[(pr0_refl t) \Rightarrow (\lambda (H0: (eq T t (THead (Bind b) u0
+t4))).(\lambda (H5: (eq T t t3)).(eq_ind T (THead (Bind b) u0 t4) (\lambda
+(t0: T).((eq T t0 t3) \to (ex2 T (\lambda (t1: T).(pr0 (THead (Flat Appl) u2
+t3) t1)) (\lambda (t1: T).(pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S
+O) O v2) t5)) t1))))) (\lambda (H6: (eq T (THead (Bind b) u0 t4) t3)).(eq_ind
+T (THead (Bind b) u0 t4) (\lambda (t0: T).(ex2 T (\lambda (t1: T).(pr0 (THead
+(Flat Appl) u2 t0) t1)) (\lambda (t1: T).(pr0 (THead (Bind b) u3 (THead (Flat
+Appl) (lift (S O) O v2) t5)) t1)))) (let H1 \def (eq_ind T u1 (\lambda (t:
+T).(pr0 t u2)) H7 v1 H11) in (ex2_ind T (\lambda (t0: T).(pr0 u2 t0))
+(\lambda (t0: T).(pr0 v2 t0)) (ex2 T (\lambda (t0: T).(pr0 (THead (Flat Appl)
+u2 (THead (Bind b) u0 t4)) t0)) (\lambda (t0: T).(pr0 (THead (Bind b) u3
+(THead (Flat Appl) (lift (S O) O v2) t5)) t0))) (\lambda (x: T).(\lambda (H2:
+(pr0 u2 x)).(\lambda (H3: (pr0 v2 x)).(pr0_confluence__pr0_cong_upsilon_refl
+b H13 u0 u3 H15 t4 t5 H16 u2 v2 x H2 H3)))) (H4 v1 (tlt_head_sx (Flat Appl)
+v1 (THead (Bind b) u0 t4)) u2 H1 v2 H14))) t3 H6)) t (sym_eq T t (THead (Bind
+b) u0 t4) H0) H5))) | (pr0_comp u4 u5 H0 t1 t2 H4 k0) \Rightarrow (\lambda
+(H5: (eq T (THead k0 u4 t1) (THead (Bind b) u0 t4))).(\lambda (H10: (eq T
+(THead k0 u5 t2) t3)).((let H1 \def (f_equal T T (\lambda (e: T).(match e
+return (\lambda (_: T).T) with [(TSort _) \Rightarrow t1 | (TLRef _)
+\Rightarrow t1 | (THead _ _ t) \Rightarrow t])) (THead k0 u4 t1) (THead (Bind
+b) u0 t4) H5) in ((let H2 \def (f_equal T T (\lambda (e: T).(match e return
+(\lambda (_: T).T) with [(TSort _) \Rightarrow u4 | (TLRef _) \Rightarrow u4
+| (THead _ t _) \Rightarrow t])) (THead k0 u4 t1) (THead (Bind b) u0 t4) H5)
+in ((let H3 \def (f_equal T K (\lambda (e: T).(match e return (\lambda (_:
+T).K) with [(TSort _) \Rightarrow k0 | (TLRef _) \Rightarrow k0 | (THead k _
+_) \Rightarrow k])) (THead k0 u4 t1) (THead (Bind b) u0 t4) H5) in (eq_ind K
+(Bind b) (\lambda (k: K).((eq T u4 u0) \to ((eq T t1 t4) \to ((eq T (THead k
+u5 t2) t3) \to ((pr0 u4 u5) \to ((pr0 t1 t2) \to (ex2 T (\lambda (t: T).(pr0
+(THead (Flat Appl) u2 t3) t)) (\lambda (t: T).(pr0 (THead (Bind b) u3 (THead
+(Flat Appl) (lift (S O) O v2) t5)) t))))))))) (\lambda (H6: (eq T u4
+u0)).(eq_ind T u0 (\lambda (t: T).((eq T t1 t4) \to ((eq T (THead (Bind b) u5
+t2) t3) \to ((pr0 t u5) \to ((pr0 t1 t2) \to (ex2 T (\lambda (t0: T).(pr0
+(THead (Flat Appl) u2 t3) t0)) (\lambda (t0: T).(pr0 (THead (Bind b) u3
+(THead (Flat Appl) (lift (S O) O v2) t5)) t0)))))))) (\lambda (H12: (eq T t1
+t4)).(eq_ind T t4 (\lambda (t: T).((eq T (THead (Bind b) u5 t2) t3) \to ((pr0
+u0 u5) \to ((pr0 t t2) \to (ex2 T (\lambda (t0: T).(pr0 (THead (Flat Appl) u2
+t3) t0)) (\lambda (t0: T).(pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S
+O) O v2) t5)) t0))))))) (\lambda (H8: (eq T (THead (Bind b) u5 t2)
+t3)).(eq_ind T (THead (Bind b) u5 t2) (\lambda (t: T).((pr0 u0 u5) \to ((pr0
+t4 t2) \to (ex2 T (\lambda (t0: T).(pr0 (THead (Flat Appl) u2 t) t0))
+(\lambda (t0: T).(pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2)
+t5)) t0)))))) (\lambda (H17: (pr0 u0 u5)).(\lambda (H18: (pr0 t4 t2)).(let H7
+\def (eq_ind T u1 (\lambda (t: T).(pr0 t u2)) H7 v1 H11) in (ex2_ind T
+(\lambda (t: T).(pr0 u2 t)) (\lambda (t: T).(pr0 v2 t)) (ex2 T (\lambda (t:
+T).(pr0 (THead (Flat Appl) u2 (THead (Bind b) u5 t2)) t)) (\lambda (t:
+T).(pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t5)) t)))
+(\lambda (x: T).(\lambda (H9: (pr0 u2 x)).(\lambda (H11: (pr0 v2 x)).(ex2_ind
+T (\lambda (t: T).(pr0 t2 t)) (\lambda (t: T).(pr0 t5 t)) (ex2 T (\lambda (t:
+T).(pr0 (THead (Flat Appl) u2 (THead (Bind b) u5 t2)) t)) (\lambda (t:
+T).(pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t5)) t)))
+(\lambda (x0: T).(\lambda (H14: (pr0 t2 x0)).(\lambda (H16: (pr0 t5
+x0)).(ex2_ind T (\lambda (t: T).(pr0 u5 t)) (\lambda (t: T).(pr0 u3 t)) (ex2
+T (\lambda (t: T).(pr0 (THead (Flat Appl) u2 (THead (Bind b) u5 t2)) t))
+(\lambda (t: T).(pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2)
+t5)) t))) (\lambda (x1: T).(\lambda (H15: (pr0 u5 x1)).(\lambda (H19: (pr0 u3
+x1)).(pr0_confluence__pr0_cong_upsilon_cong b H13 u2 v2 x H9 H11 t2 t5 x0 H14
+H16 u5 u3 x1 H15 H19)))) (H4 u0 (tlt_trans (THead (Bind b) u0 t4) u0 (THead
+(Flat Appl) v1 (THead (Bind b) u0 t4)) (tlt_head_sx (Bind b) u0 t4)
+(tlt_head_dx (Flat Appl) v1 (THead (Bind b) u0 t4))) u5 H17 u3 H15))))) (H4
+t4 (tlt_trans (THead (Bind b) u0 t4) t4 (THead (Flat Appl) v1 (THead (Bind b)
+u0 t4)) (tlt_head_dx (Bind b) u0 t4) (tlt_head_dx (Flat Appl) v1 (THead (Bind
+b) u0 t4))) t2 H18 t5 H16))))) (H4 v1 (tlt_head_sx (Flat Appl) v1 (THead
+(Bind b) u0 t4)) u2 H7 v2 H14))))) t3 H8)) t1 (sym_eq T t1 t4 H12))) u4
+(sym_eq T u4 u0 H6))) k0 (sym_eq K k0 (Bind b) H3))) H2)) H1)) H10 H0 H4))) |
+(pr0_beta u v0 v3 H0 t1 t2 H4) \Rightarrow (\lambda (H5: (eq T (THead (Flat
+Appl) v0 (THead (Bind Abst) u t1)) (THead (Bind b) u0 t4))).(\lambda (H10:
+(eq T (THead (Bind Abbr) v3 t2) t3)).((let H1 \def (eq_ind T (THead (Flat
+Appl) v0 (THead (Bind Abst) u t1)) (\lambda (e: T).(match e return (\lambda
+(_: T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False
+| (THead k _ _) \Rightarrow (match k return (\lambda (_: K).Prop) with [(Bind
+_) \Rightarrow False | (Flat _) \Rightarrow True])])) I (THead (Bind b) u0
+t4) H5) in (False_ind ((eq T (THead (Bind Abbr) v3 t2) t3) \to ((pr0 v0 v3)
+\to ((pr0 t1 t2) \to (ex2 T (\lambda (t: T).(pr0 (THead (Flat Appl) u2 t3)
+t)) (\lambda (t: T).(pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O
+v2) t5)) t)))))) H1)) H10 H0 H4))) | (pr0_upsilon b0 H0 v0 v3 H4 u4 u5 H5 t1
+t2 H10) \Rightarrow (\lambda (H13: (eq T (THead (Flat Appl) v0 (THead (Bind
+b0) u4 t1)) (THead (Bind b) u0 t4))).(\lambda (H14: (eq T (THead (Bind b0) u5
+(THead (Flat Appl) (lift (S O) O v3) t2)) t3)).((let H1 \def (eq_ind T (THead
+(Flat Appl) v0 (THead (Bind b0) u4 t1)) (\lambda (e: T).(match e return
+(\lambda (_: T).Prop) with [(TSort _) \Rightarrow False | (TLRef _)
+\Rightarrow False | (THead k _ _) \Rightarrow (match k return (\lambda (_:
+K).Prop) with [(Bind _) \Rightarrow False | (Flat _) \Rightarrow True])])) I
+(THead (Bind b) u0 t4) H13) in (False_ind ((eq T (THead (Bind b0) u5 (THead
+(Flat Appl) (lift (S O) O v3) t2)) t3) \to ((not (eq B b0 Abst)) \to ((pr0 v0
+v3) \to ((pr0 u4 u5) \to ((pr0 t1 t2) \to (ex2 T (\lambda (t: T).(pr0 (THead
+(Flat Appl) u2 t3) t)) (\lambda (t: T).(pr0 (THead (Bind b) u3 (THead (Flat
+Appl) (lift (S O) O v2) t5)) t)))))))) H1)) H14 H0 H4 H5 H10))) | (pr0_delta
+u4 u5 H0 t1 t2 H4 w H5) \Rightarrow (\lambda (H10: (eq T (THead (Bind Abbr)
+u4 t1) (THead (Bind b) u0 t4))).(\lambda (H17: (eq T (THead (Bind Abbr) u5 w)
+t3)).((let H1 \def (f_equal T T (\lambda (e: T).(match e return (\lambda (_:
+T).T) with [(TSort _) \Rightarrow t1 | (TLRef _) \Rightarrow t1 | (THead _ _
+t) \Rightarrow t])) (THead (Bind Abbr) u4 t1) (THead (Bind b) u0 t4) H10) in
+((let H2 \def (f_equal T T (\lambda (e: T).(match e return (\lambda (_: T).T)
+with [(TSort _) \Rightarrow u4 | (TLRef _) \Rightarrow u4 | (THead _ t _)
+\Rightarrow t])) (THead (Bind Abbr) u4 t1) (THead (Bind b) u0 t4) H10) in
+((let H3 \def (f_equal T B (\lambda (e: T).(match e return (\lambda (_: T).B)
+with [(TSort _) \Rightarrow Abbr | (TLRef _) \Rightarrow Abbr | (THead k _ _)
+\Rightarrow (match k return (\lambda (_: K).B) with [(Bind b) \Rightarrow b |
+(Flat _) \Rightarrow Abbr])])) (THead (Bind Abbr) u4 t1) (THead (Bind b) u0
+t4) H10) in (eq_ind B Abbr (\lambda (b: B).((eq T u4 u0) \to ((eq T t1 t4)
+\to ((eq T (THead (Bind Abbr) u5 w) t3) \to ((pr0 u4 u5) \to ((pr0 t1 t2) \to
+((subst0 O u5 t2 w) \to (ex2 T (\lambda (t: T).(pr0 (THead (Flat Appl) u2 t3)
+t)) (\lambda (t: T).(pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O
+v2) t5)) t)))))))))) (\lambda (H6: (eq T u4 u0)).(eq_ind T u0 (\lambda (t:
+T).((eq T t1 t4) \to ((eq T (THead (Bind Abbr) u5 w) t3) \to ((pr0 t u5) \to
+((pr0 t1 t2) \to ((subst0 O u5 t2 w) \to (ex2 T (\lambda (t0: T).(pr0 (THead
+(Flat Appl) u2 t3) t0)) (\lambda (t0: T).(pr0 (THead (Bind Abbr) u3 (THead
+(Flat Appl) (lift (S O) O v2) t5)) t0))))))))) (\lambda (H8: (eq T t1
+t4)).(eq_ind T t4 (\lambda (t: T).((eq T (THead (Bind Abbr) u5 w) t3) \to
+((pr0 u0 u5) \to ((pr0 t t2) \to ((subst0 O u5 t2 w) \to (ex2 T (\lambda (t0:
+T).(pr0 (THead (Flat Appl) u2 t3) t0)) (\lambda (t0: T).(pr0 (THead (Bind
+Abbr) u3 (THead (Flat Appl) (lift (S O) O v2) t5)) t0)))))))) (\lambda (H18:
+(eq T (THead (Bind Abbr) u5 w) t3)).(eq_ind T (THead (Bind Abbr) u5 w)
+(\lambda (t: T).((pr0 u0 u5) \to ((pr0 t4 t2) \to ((subst0 O u5 t2 w) \to
+(ex2 T (\lambda (t0: T).(pr0 (THead (Flat Appl) u2 t) t0)) (\lambda (t0:
+T).(pr0 (THead (Bind Abbr) u3 (THead (Flat Appl) (lift (S O) O v2) t5))
+t0))))))) (\lambda (H19: (pr0 u0 u5)).(\lambda (H20: (pr0 t4 t2)).(\lambda
+(H21: (subst0 O u5 t2 w)).(let H9 \def (eq_ind_r B b (\lambda (b: B).(\forall
+(v: T).((tlt v (THead (Flat Appl) v1 (THead (Bind b) u0 t4))) \to (\forall
+(t1: T).((pr0 v t1) \to (\forall (t2: T).((pr0 v t2) \to (ex2 T (\lambda (t:
+T).(pr0 t1 t)) (\lambda (t: T).(pr0 t2 t)))))))))) H4 Abbr H3) in (let H12
+\def (eq_ind_r B b (\lambda (b: B).(eq T t0 (THead (Bind b) u0 t4))) H12 Abbr
+H3) in (let H13 \def (eq_ind_r B b (\lambda (b: B).(not (eq B b Abst))) H13
+Abbr H3) in (let H7 \def (eq_ind T u1 (\lambda (t: T).(pr0 t u2)) H7 v1 H11)
+in (ex2_ind T (\lambda (t: T).(pr0 u2 t)) (\lambda (t: T).(pr0 v2 t)) (ex2 T
+(\lambda (t: T).(pr0 (THead (Flat Appl) u2 (THead (Bind Abbr) u5 w)) t))
+(\lambda (t: T).(pr0 (THead (Bind Abbr) u3 (THead (Flat Appl) (lift (S O) O
+v2) t5)) t))) (\lambda (x: T).(\lambda (H11: (pr0 u2 x)).(\lambda (H14: (pr0
+v2 x)).(ex2_ind T (\lambda (t: T).(pr0 t2 t)) (\lambda (t: T).(pr0 t5 t))
+(ex2 T (\lambda (t: T).(pr0 (THead (Flat Appl) u2 (THead (Bind Abbr) u5 w))
+t)) (\lambda (t: T).(pr0 (THead (Bind Abbr) u3 (THead (Flat Appl) (lift (S O)
+O v2) t5)) t))) (\lambda (x0: T).(\lambda (H16: (pr0 t2 x0)).(\lambda (H22:
+(pr0 t5 x0)).(ex2_ind T (\lambda (t: T).(pr0 u5 t)) (\lambda (t: T).(pr0 u3
+t)) (ex2 T (\lambda (t: T).(pr0 (THead (Flat Appl) u2 (THead (Bind Abbr) u5
+w)) t)) (\lambda (t: T).(pr0 (THead (Bind Abbr) u3 (THead (Flat Appl) (lift
+(S O) O v2) t5)) t))) (\lambda (x1: T).(\lambda (H15: (pr0 u5 x1)).(\lambda
+(H23: (pr0 u3 x1)).(pr0_confluence__pr0_cong_upsilon_delta H13 u5 t2 w H21 u2
+v2 x H11 H14 t5 x0 H16 H22 u3 x1 H15 H23)))) (H9 u0 (tlt_trans (THead (Bind
+Abbr) u0 t4) u0 (THead (Flat Appl) v1 (THead (Bind Abbr) u0 t4)) (tlt_head_sx
+(Bind Abbr) u0 t4) (tlt_head_dx (Flat Appl) v1 (THead (Bind Abbr) u0 t4))) u5
+H19 u3 H15))))) (H9 t4 (tlt_trans (THead (Bind Abbr) u0 t4) t4 (THead (Flat
+Appl) v1 (THead (Bind Abbr) u0 t4)) (tlt_head_dx (Bind Abbr) u0 t4)
+(tlt_head_dx (Flat Appl) v1 (THead (Bind Abbr) u0 t4))) t2 H20 t5 H16)))))
+(H9 v1 (tlt_head_sx (Flat Appl) v1 (THead (Bind Abbr) u0 t4)) u2 H7 v2
+H14))))))))) t3 H18)) t1 (sym_eq T t1 t4 H8))) u4 (sym_eq T u4 u0 H6))) b
+H3)) H2)) H1)) H17 H0 H4 H5))) | (pr0_zeta b0 H0 t1 t2 H4 u) \Rightarrow
+(\lambda (H5: (eq T (THead (Bind b0) u (lift (S O) O t1)) (THead (Bind b) u0
+t4))).(\lambda (H10: (eq T t2 t3)).((let H1 \def (f_equal T T (\lambda (e:
+T).(match e return (\lambda (_: T).T) with [(TSort _) \Rightarrow ((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 (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))]) in lref_map)
+(\lambda (x: nat).(plus x (S O))) O t1) | (TLRef _) \Rightarrow ((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 (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))]) in lref_map)
+(\lambda (x: nat).(plus x (S O))) O t1) | (THead _ _ t) \Rightarrow t]))
+(THead (Bind b0) u (lift (S O) O t1)) (THead (Bind b) u0 t4) H5) in ((let H2
+\def (f_equal T T (\lambda (e: T).(match e return (\lambda (_: T).T) with
+[(TSort _) \Rightarrow u | (TLRef _) \Rightarrow u | (THead _ t _)
+\Rightarrow t])) (THead (Bind b0) u (lift (S O) O t1)) (THead (Bind b) u0 t4)
+H5) in ((let H3 \def (f_equal T B (\lambda (e: T).(match e return (\lambda
+(_: T).B) with [(TSort _) \Rightarrow b0 | (TLRef _) \Rightarrow b0 | (THead
+k _ _) \Rightarrow (match k return (\lambda (_: K).B) with [(Bind b)
+\Rightarrow b | (Flat _) \Rightarrow b0])])) (THead (Bind b0) u (lift (S O) O
+t1)) (THead (Bind b) u0 t4) H5) in (eq_ind B b (\lambda (b1: B).((eq T u u0)
+\to ((eq T (lift (S O) O t1) t4) \to ((eq T t2 t3) \to ((not (eq B b1 Abst))
+\to ((pr0 t1 t2) \to (ex2 T (\lambda (t: T).(pr0 (THead (Flat Appl) u2 t3)
+t)) (\lambda (t: T).(pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O
+v2) t5)) t))))))))) (\lambda (H6: (eq T u u0)).(eq_ind T u0 (\lambda (_:
+T).((eq T (lift (S O) O t1) t4) \to ((eq T t2 t3) \to ((not (eq B b Abst))
+\to ((pr0 t1 t2) \to (ex2 T (\lambda (t0: T).(pr0 (THead (Flat Appl) u2 t3)
+t0)) (\lambda (t0: T).(pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O)
+O v2) t5)) t0)))))))) (\lambda (H13: (eq T (lift (S O) O t1) t4)).(eq_ind T
+(lift (S O) O t1) (\lambda (_: T).((eq T t2 t3) \to ((not (eq B b Abst)) \to
+((pr0 t1 t2) \to (ex2 T (\lambda (t0: T).(pr0 (THead (Flat Appl) u2 t3) t0))
+(\lambda (t0: T).(pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2)
+t5)) t0))))))) (\lambda (H8: (eq T t2 t3)).(eq_ind T t3 (\lambda (t: T).((not
+(eq B b Abst)) \to ((pr0 t1 t) \to (ex2 T (\lambda (t0: T).(pr0 (THead (Flat
+Appl) u2 t3) t0)) (\lambda (t0: T).(pr0 (THead (Bind b) u3 (THead (Flat Appl)
+(lift (S O) O v2) t5)) t0)))))) (\lambda (H17: (not (eq B b Abst))).(\lambda
+(H18: (pr0 t1 t3)).(let H9 \def (eq_ind_r T t4 (\lambda (t: T).(\forall (v:
+T).((tlt v (THead (Flat Appl) v1 (THead (Bind b) u0 t))) \to (\forall (t1:
+T).((pr0 v t1) \to (\forall (t2: T).((pr0 v t2) \to (ex2 T (\lambda (t0:
+T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 t2 t0)))))))))) H4 (lift (S O) O t1)
+H13) in (let H12 \def (eq_ind_r T t4 (\lambda (t: T).(eq T t0 (THead (Bind b)
+u0 t))) H12 (lift (S O) O t1) H13) in (let H16 \def (eq_ind_r T t4 (\lambda
+(t: T).(pr0 t t5)) H16 (lift (S O) O t1) H13) in (ex2_ind T (\lambda (t3:
+T).(eq T t5 (lift (S O) O t3))) (\lambda (t3: T).(pr0 t1 t3)) (ex2 T (\lambda
+(t: T).(pr0 (THead (Flat Appl) u2 t3) t)) (\lambda (t: T).(pr0 (THead (Bind
+b) u3 (THead (Flat Appl) (lift (S O) O v2) t5)) t))) (\lambda (x: T).(\lambda
+(H19: (eq T t5 (lift (S O) O x))).(\lambda (H20: (pr0 t1 x)).(eq_ind_r T
+(lift (S O) O x) (\lambda (t: T).(ex2 T (\lambda (t0: T).(pr0 (THead (Flat
+Appl) u2 t3) t0)) (\lambda (t0: T).(pr0 (THead (Bind b) u3 (THead (Flat Appl)
+(lift (S O) O v2) t)) t0)))) (let H7 \def (eq_ind T u1 (\lambda (t: T).(pr0 t
+u2)) H7 v1 H11) in (ex2_ind T (\lambda (t: T).(pr0 u2 t)) (\lambda (t:
+T).(pr0 v2 t)) (ex2 T (\lambda (t: T).(pr0 (THead (Flat Appl) u2 t3) t))
+(\lambda (t: T).(pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2)
+(lift (S O) O x))) t))) (\lambda (x0: T).(\lambda (H11: (pr0 u2 x0)).(\lambda
+(H14: (pr0 v2 x0)).(ex2_ind T (\lambda (t: T).(pr0 x t)) (\lambda (t: T).(pr0
+t3 t)) (ex2 T (\lambda (t: T).(pr0 (THead (Flat Appl) u2 t3) t)) (\lambda (t:
+T).(pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) (lift (S O) O
+x))) t))) (\lambda (x1: T).(\lambda (H21: (pr0 x x1)).(\lambda (H22: (pr0 t3
+x1)).(pr0_confluence__pr0_cong_upsilon_zeta b H17 u0 u3 H15 u2 v2 x0 H11 H14
+x t3 x1 H21 H22)))) (H9 t1 (tlt_trans (THead (Bind b) u0 (lift (S O) O t1))
+t1 (THead (Flat Appl) v1 (THead (Bind b) u0 (lift (S O) O t1))) (lift_tlt_dx
+(Bind b) u0 t1 (S O) O) (tlt_head_dx (Flat Appl) v1 (THead (Bind b) u0 (lift
+(S O) O t1)))) x H20 t3 H18))))) (H9 v1 (tlt_head_sx (Flat Appl) v1 (THead
+(Bind b) u0 (lift (S O) O t1))) u2 H7 v2 H14))) t5 H19)))) (pr0_gen_lift t1
+t5 (S O) O H16))))))) t2 (sym_eq T t2 t3 H8))) t4 H13)) u (sym_eq T u u0
+H6))) b0 (sym_eq B b0 b H3))) H2)) H1)) H10 H0 H4))) | (pr0_epsilon t1 t2 H0
+u) \Rightarrow (\lambda (H4: (eq T (THead (Flat Cast) u t1) (THead (Bind b)
+u0 t4))).(\lambda (H5: (eq T t2 t3)).((let H1 \def (eq_ind T (THead (Flat
+Cast) u t1) (\lambda (e: T).(match e return (\lambda (_: T).Prop) with
+[(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _)
+\Rightarrow (match k return (\lambda (_: K).Prop) with [(Bind _) \Rightarrow
+False | (Flat _) \Rightarrow True])])) I (THead (Bind b) u0 t4) H4) in
+(False_ind ((eq T t2 t3) \to ((pr0 t1 t2) \to (ex2 T (\lambda (t: T).(pr0
+(THead (Flat Appl) u2 t3) t)) (\lambda (t: T).(pr0 (THead (Bind b) u3 (THead
+(Flat Appl) (lift (S O) O v2) t5)) t))))) H1)) H5 H0)))]) in (H6 (refl_equal
+T (THead (Bind b) u0 t4)) (refl_equal T t3))))) t0 (sym_eq T t0 (THead (Bind
+b) u0 t4) H12))) u1 (sym_eq T u1 v1 H11))) k (sym_eq K k (Flat Appl) H3)))
+H2)) H1)))]) in (H1 (refl_equal T (THead (Flat Appl) v1 (THead (Bind b) u0
+t4)))))))))) t2 H12)) t H10 H11 H6 H7 H8 H9))) | (pr0_delta u0 u3 H6 t4 t5 H7
+w H8) \Rightarrow (\lambda (H9: (eq T (THead (Bind Abbr) u0 t4) t)).(\lambda
+(H10: (eq T (THead (Bind Abbr) u3 w) t2)).(eq_ind T (THead (Bind Abbr) u0 t4)
+(\lambda (_: T).((eq T (THead (Bind Abbr) u3 w) t2) \to ((pr0 u0 u3) \to
+((pr0 t4 t5) \to ((subst0 O u3 t5 w) \to (ex2 T (\lambda (t0: T).(pr0 (THead
+k u2 t3) t0)) (\lambda (t0: T).(pr0 t2 t0)))))))) (\lambda (H11: (eq T (THead
+(Bind Abbr) u3 w) t2)).(eq_ind T (THead (Bind Abbr) u3 w) (\lambda (t:
+T).((pr0 u0 u3) \to ((pr0 t4 t5) \to ((subst0 O u3 t5 w) \to (ex2 T (\lambda
+(t0: T).(pr0 (THead k u2 t3) t0)) (\lambda (t0: T).(pr0 t t0))))))) (\lambda
+(H12: (pr0 u0 u3)).(\lambda (H13: (pr0 t4 t5)).(\lambda (H14: (subst0 O u3 t5
+w)).(let H0 \def (eq_ind_r T t (\lambda (t: T).(eq T (THead k u1 t0) t)) H4
+(THead (Bind Abbr) u0 t4) H9) in (let H1 \def (match H0 return (\lambda (t:
+T).(\lambda (_: (eq ? ? t)).((eq T t (THead (Bind Abbr) u0 t4)) \to (ex2 T
+(\lambda (t0: T).(pr0 (THead k u2 t3) t0)) (\lambda (t0: T).(pr0 (THead (Bind
+Abbr) u3 w) t0)))))) with [refl_equal \Rightarrow (\lambda (H0: (eq T (THead
+k u1 t0) (THead (Bind Abbr) u0 t4))).(let H1 \def (f_equal T T (\lambda (e:
+T).(match e return (\lambda (_: T).T) with [(TSort _) \Rightarrow t0 | (TLRef
+_) \Rightarrow t0 | (THead _ _ t) \Rightarrow t])) (THead k u1 t0) (THead
+(Bind Abbr) u0 t4) H0) in ((let H2 \def (f_equal T T (\lambda (e: T).(match e
+return (\lambda (_: T).T) with [(TSort _) \Rightarrow u1 | (TLRef _)
+\Rightarrow u1 | (THead _ t _) \Rightarrow t])) (THead k u1 t0) (THead (Bind
+Abbr) u0 t4) H0) in ((let H3 \def (f_equal T K (\lambda (e: T).(match e
+return (\lambda (_: T).K) with [(TSort _) \Rightarrow k | (TLRef _)
+\Rightarrow k | (THead k _ _) \Rightarrow k])) (THead k u1 t0) (THead (Bind
+Abbr) u0 t4) H0) in (eq_ind K (Bind Abbr) (\lambda (k: K).((eq T u1 u0) \to
+((eq T t0 t4) \to (ex2 T (\lambda (t: T).(pr0 (THead k u2 t3) t)) (\lambda
+(t: T).(pr0 (THead (Bind Abbr) u3 w) t)))))) (\lambda (H10: (eq T u1
+u0)).(eq_ind T u0 (\lambda (_: T).((eq T t0 t4) \to (ex2 T (\lambda (t0:
+T).(pr0 (THead (Bind Abbr) u2 t3) t0)) (\lambda (t0: T).(pr0 (THead (Bind
+Abbr) u3 w) t0))))) (\lambda (H11: (eq T t0 t4)).(eq_ind T t4 (\lambda (_:
+T).(ex2 T (\lambda (t0: T).(pr0 (THead (Bind Abbr) u2 t3) t0)) (\lambda (t0:
+T).(pr0 (THead (Bind Abbr) u3 w) t0)))) (let H4 \def (eq_ind_r T t (\lambda
+(t: T).(\forall (v: T).((tlt v t) \to (\forall (t1: T).((pr0 v t1) \to
+(\forall (t2: T).((pr0 v t2) \to (ex2 T (\lambda (t0: T).(pr0 t1 t0))
+(\lambda (t0: T).(pr0 t2 t0)))))))))) H (THead (Bind Abbr) u0 t4) H9) in (let
+H5 \def (eq_ind T t0 (\lambda (t: T).(pr0 t t3)) H8 t4 H11) in (let H6 \def
+(eq_ind T u1 (\lambda (t: T).(pr0 t u2)) H7 u0 H10) in (ex2_ind T (\lambda
+(t: T).(pr0 u2 t)) (\lambda (t: T).(pr0 u3 t)) (ex2 T (\lambda (t: T).(pr0
+(THead (Bind Abbr) u2 t3) t)) (\lambda (t: T).(pr0 (THead (Bind Abbr) u3 w)
+t))) (\lambda (x: T).(\lambda (H7: (pr0 u2 x)).(\lambda (H8: (pr0 u3
+x)).(ex2_ind T (\lambda (t: T).(pr0 t3 t)) (\lambda (t: T).(pr0 t5 t)) (ex2 T
+(\lambda (t: T).(pr0 (THead (Bind Abbr) u2 t3) t)) (\lambda (t: T).(pr0
+(THead (Bind Abbr) u3 w) t))) (\lambda (x0: T).(\lambda (H9: (pr0 t3
+x0)).(\lambda (H12: (pr0 t5 x0)).(pr0_confluence__pr0_cong_delta u3 t5 w H14
+u2 x H7 H8 t3 x0 H9 H12)))) (H4 t4 (tlt_head_dx (Bind Abbr) u0 t4) t3 H5 t5
+H13))))) (H4 u0 (tlt_head_sx (Bind Abbr) u0 t4) u2 H6 u3 H12))))) t0 (sym_eq
+T t0 t4 H11))) u1 (sym_eq T u1 u0 H10))) k (sym_eq K k (Bind Abbr) H3))) H2))
+H1)))]) in (H1 (refl_equal T (THead (Bind Abbr) u0 t4)))))))) t2 H11)) t H9
+H10 H6 H7 H8))) | (pr0_zeta b H6 t4 t5 H7 u) \Rightarrow (\lambda (H9: (eq T
+(THead (Bind b) u (lift (S O) O t4)) t)).(\lambda (H10: (eq T t5 t2)).(eq_ind
+T (THead (Bind b) u (lift (S O) O t4)) (\lambda (_: T).((eq T t5 t2) \to
+((not (eq B b Abst)) \to ((pr0 t4 t5) \to (ex2 T (\lambda (t0: T).(pr0 (THead
+k u2 t3) t0)) (\lambda (t0: T).(pr0 t2 t0))))))) (\lambda (H11: (eq T t5
+t2)).(eq_ind T t2 (\lambda (t: T).((not (eq B b Abst)) \to ((pr0 t4 t) \to
+(ex2 T (\lambda (t0: T).(pr0 (THead k u2 t3) t0)) (\lambda (t0: T).(pr0 t2
+t0)))))) (\lambda (H12: (not (eq B b Abst))).(\lambda (H13: (pr0 t4 t2)).(let
+H0 \def (eq_ind_r T t (\lambda (t: T).(eq T (THead k u1 t0) t)) H4 (THead
+(Bind b) u (lift (S O) O t4)) H9) in (let H1 \def (match H0 return (\lambda
+(t: T).(\lambda (_: (eq ? ? t)).((eq T t (THead (Bind b) u (lift (S O) O
+t4))) \to (ex2 T (\lambda (t0: T).(pr0 (THead k u2 t3) t0)) (\lambda (t0:
+T).(pr0 t2 t0)))))) with [refl_equal \Rightarrow (\lambda (H0: (eq T (THead k
+u1 t0) (THead (Bind b) u (lift (S O) O t4)))).(let H1 \def (f_equal T T
+(\lambda (e: T).(match e return (\lambda (_: T).T) with [(TSort _)
+\Rightarrow t0 | (TLRef _) \Rightarrow t0 | (THead _ _ t) \Rightarrow t]))
+(THead k u1 t0) (THead (Bind b) u (lift (S O) O t4)) H0) in ((let H2 \def
+(f_equal T T (\lambda (e: T).(match e return (\lambda (_: T).T) with [(TSort
+_) \Rightarrow u1 | (TLRef _) \Rightarrow u1 | (THead _ t _) \Rightarrow t]))
+(THead k u1 t0) (THead (Bind b) u (lift (S O) O t4)) H0) in ((let H3 \def
+(f_equal T K (\lambda (e: T).(match e return (\lambda (_: T).K) with [(TSort
+_) \Rightarrow k | (TLRef _) \Rightarrow k | (THead k _ _) \Rightarrow k]))
+(THead k u1 t0) (THead (Bind b) u (lift (S O) O t4)) H0) in (eq_ind K (Bind
+b) (\lambda (k: K).((eq T u1 u) \to ((eq T t0 (lift (S O) O t4)) \to (ex2 T
+(\lambda (t: T).(pr0 (THead k u2 t3) t)) (\lambda (t: T).(pr0 t2 t))))))
+(\lambda (H10: (eq T u1 u)).(eq_ind T u (\lambda (_: T).((eq T t0 (lift (S O)
+O t4)) \to (ex2 T (\lambda (t0: T).(pr0 (THead (Bind b) u2 t3) t0)) (\lambda
+(t0: T).(pr0 t2 t0))))) (\lambda (H11: (eq T t0 (lift (S O) O t4))).(eq_ind T
+(lift (S O) O t4) (\lambda (_: T).(ex2 T (\lambda (t0: T).(pr0 (THead (Bind
+b) u2 t3) t0)) (\lambda (t0: T).(pr0 t2 t0)))) (let H4 \def (eq_ind_r T t
+(\lambda (t: T).(\forall (v: T).((tlt v t) \to (\forall (t1: T).((pr0 v t1)
+\to (\forall (t2: T).((pr0 v t2) \to (ex2 T (\lambda (t0: T).(pr0 t1 t0))
+(\lambda (t0: T).(pr0 t2 t0)))))))))) H (THead (Bind b) u (lift (S O) O t4))
+H9) in (let H5 \def (eq_ind T t0 (\lambda (t: T).(pr0 t t3)) H8 (lift (S O) O
+t4) H11) in (ex2_ind T (\lambda (t2: T).(eq T t3 (lift (S O) O t2))) (\lambda
+(t2: T).(pr0 t4 t2)) (ex2 T (\lambda (t: T).(pr0 (THead (Bind b) u2 t3) t))
+(\lambda (t: T).(pr0 t2 t))) (\lambda (x: T).(\lambda (H6: (eq T t3 (lift (S
+O) O x))).(\lambda (H8: (pr0 t4 x)).(eq_ind_r T (lift (S O) O x) (\lambda (t:
+T).(ex2 T (\lambda (t0: T).(pr0 (THead (Bind b) u2 t) t0)) (\lambda (t0:
+T).(pr0 t2 t0)))) (let H7 \def (eq_ind T u1 (\lambda (t: T).(pr0 t u2)) H7 u
+H10) in (ex2_ind T (\lambda (t: T).(pr0 x t)) (\lambda (t: T).(pr0 t2 t))
+(ex2 T (\lambda (t: T).(pr0 (THead (Bind b) u2 (lift (S O) O x)) t)) (\lambda
+(t: T).(pr0 t2 t))) (\lambda (x0: T).(\lambda (H9: (pr0 x x0)).(\lambda (H13:
+(pr0 t2 x0)).(ex_intro2 T (\lambda (t: T).(pr0 (THead (Bind b) u2 (lift (S O)
+O x)) t)) (\lambda (t: T).(pr0 t2 t)) x0 (pr0_zeta b H12 x x0 H9 u2) H13))))
+(H4 t4 (lift_tlt_dx (Bind b) u t4 (S O) O) x H8 t2 H13))) t3 H6))))
+(pr0_gen_lift t4 t3 (S O) O H5)))) t0 (sym_eq T t0 (lift (S O) O t4) H11)))
+u1 (sym_eq T u1 u H10))) k (sym_eq K k (Bind b) H3))) H2)) H1)))]) in (H1
+(refl_equal T (THead (Bind b) u (lift (S O) O t4)))))))) t5 (sym_eq T t5 t2
+H11))) t H9 H10 H6 H7))) | (pr0_epsilon t4 t5 H6 u) \Rightarrow (\lambda (H9:
+(eq T (THead (Flat Cast) u t4) t)).(\lambda (H10: (eq T t5 t2)).(eq_ind T
+(THead (Flat Cast) u t4) (\lambda (_: T).((eq T t5 t2) \to ((pr0 t4 t5) \to
+(ex2 T (\lambda (t0: T).(pr0 (THead k u2 t3) t0)) (\lambda (t0: T).(pr0 t2
+t0)))))) (\lambda (H11: (eq T t5 t2)).(eq_ind T t2 (\lambda (t: T).((pr0 t4
+t) \to (ex2 T (\lambda (t0: T).(pr0 (THead k u2 t3) t0)) (\lambda (t0:
+T).(pr0 t2 t0))))) (\lambda (H12: (pr0 t4 t2)).(let H0 \def (eq_ind_r T t
+(\lambda (t: T).(eq T (THead k u1 t0) t)) H4 (THead (Flat Cast) u t4) H9) in
+(let H1 \def (match H0 return (\lambda (t: T).(\lambda (_: (eq ? ? t)).((eq T
+t (THead (Flat Cast) u t4)) \to (ex2 T (\lambda (t0: T).(pr0 (THead k u2 t3)
+t0)) (\lambda (t0: T).(pr0 t2 t0)))))) with [refl_equal \Rightarrow (\lambda
+(H0: (eq T (THead k u1 t0) (THead (Flat Cast) u t4))).(let H1 \def (f_equal T
+T (\lambda (e: T).(match e return (\lambda (_: T).T) with [(TSort _)
+\Rightarrow t0 | (TLRef _) \Rightarrow t0 | (THead _ _ t) \Rightarrow t]))
+(THead k u1 t0) (THead (Flat Cast) u t4) H0) in ((let H2 \def (f_equal T T
+(\lambda (e: T).(match e return (\lambda (_: T).T) with [(TSort _)
+\Rightarrow u1 | (TLRef _) \Rightarrow u1 | (THead _ t _) \Rightarrow t]))
+(THead k u1 t0) (THead (Flat Cast) u t4) H0) in ((let H3 \def (f_equal T K
+(\lambda (e: T).(match e return (\lambda (_: T).K) with [(TSort _)
+\Rightarrow k | (TLRef _) \Rightarrow k | (THead k _ _) \Rightarrow k]))
+(THead k u1 t0) (THead (Flat Cast) u t4) H0) in (eq_ind K (Flat Cast)
+(\lambda (k: K).((eq T u1 u) \to ((eq T t0 t4) \to (ex2 T (\lambda (t:
+T).(pr0 (THead k u2 t3) t)) (\lambda (t: T).(pr0 t2 t)))))) (\lambda (H10:
+(eq T u1 u)).(eq_ind T u (\lambda (_: T).((eq T t0 t4) \to (ex2 T (\lambda
+(t0: T).(pr0 (THead (Flat Cast) u2 t3) t0)) (\lambda (t0: T).(pr0 t2 t0)))))
+(\lambda (H11: (eq T t0 t4)).(eq_ind T t4 (\lambda (_: T).(ex2 T (\lambda
+(t0: T).(pr0 (THead (Flat Cast) u2 t3) t0)) (\lambda (t0: T).(pr0 t2 t0))))
+(let H4 \def (eq_ind_r T t (\lambda (t: T).(\forall (v: T).((tlt v t) \to
+(\forall (t1: T).((pr0 v t1) \to (\forall (t2: T).((pr0 v t2) \to (ex2 T
+(\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 t2 t0)))))))))) H (THead
+(Flat Cast) u t4) H9) in (let H5 \def (eq_ind T t0 (\lambda (t: T).(pr0 t
+t3)) H8 t4 H11) in (let H6 \def (eq_ind T u1 (\lambda (t: T).(pr0 t u2)) H7 u
+H10) in (ex2_ind T (\lambda (t: T).(pr0 t3 t)) (\lambda (t: T).(pr0 t2 t))
+(ex2 T (\lambda (t: T).(pr0 (THead (Flat Cast) u2 t3) t)) (\lambda (t:
+T).(pr0 t2 t))) (\lambda (x: T).(\lambda (H7: (pr0 t3 x)).(\lambda (H8: (pr0
+t2 x)).(ex_intro2 T (\lambda (t: T).(pr0 (THead (Flat Cast) u2 t3) t))
+(\lambda (t: T).(pr0 t2 t)) x (pr0_epsilon t3 x H7 u2) H8)))) (H4 t4
+(tlt_head_dx (Flat Cast) u t4) t3 H5 t2 H12))))) t0 (sym_eq T t0 t4 H11))) u1
+(sym_eq T u1 u H10))) k (sym_eq K k (Flat Cast) H3))) H2)) H1)))]) in (H1
+(refl_equal T (THead (Flat Cast) u t4)))))) t5 (sym_eq T t5 t2 H11))) t H9
+H10 H6)))]) in (H9 (refl_equal T t) (refl_equal T t2))))) t1 H6)) t H4 H5 H2
+H3))) | (pr0_beta u v1 v2 H2 t0 t3 H3) \Rightarrow (\lambda (H4: (eq T (THead
+(Flat Appl) v1 (THead (Bind Abst) u t0)) t)).(\lambda (H5: (eq T (THead (Bind
+Abbr) v2 t3) t1)).(eq_ind T (THead (Flat Appl) v1 (THead (Bind Abst) u t0))
+(\lambda (_: T).((eq T (THead (Bind Abbr) v2 t3) t1) \to ((pr0 v1 v2) \to
+((pr0 t0 t3) \to (ex2 T (\lambda (t2: T).(pr0 t1 t2)) (\lambda (t1: T).(pr0
+t2 t1))))))) (\lambda (H6: (eq T (THead (Bind Abbr) v2 t3) t1)).(eq_ind T
+(THead (Bind Abbr) v2 t3) (\lambda (t: T).((pr0 v1 v2) \to ((pr0 t0 t3) \to
+(ex2 T (\lambda (t1: T).(pr0 t t1)) (\lambda (t1: T).(pr0 t2 t1))))))
+(\lambda (H7: (pr0 v1 v2)).(\lambda (H8: (pr0 t0 t3)).(let H9 \def (match H1
+return (\lambda (t0: T).(\lambda (t1: T).(\lambda (_: (pr0 t0 t1)).((eq T t0
+t) \to ((eq T t1 t2) \to (ex2 T (\lambda (t: T).(pr0 (THead (Bind Abbr) v2
+t3) t)) (\lambda (t: T).(pr0 t2 t)))))))) with [(pr0_refl t4) \Rightarrow
+(\lambda (H6: (eq T t4 t)).(\lambda (H9: (eq T t4 t2)).(eq_ind T t (\lambda
+(t: T).((eq T t t2) \to (ex2 T (\lambda (t0: T).(pr0 (THead (Bind Abbr) v2
+t3) t0)) (\lambda (t0: T).(pr0 t2 t0))))) (\lambda (H10: (eq T t t2)).(eq_ind
+T t2 (\lambda (_: T).(ex2 T (\lambda (t0: T).(pr0 (THead (Bind Abbr) v2 t3)
+t0)) (\lambda (t0: T).(pr0 t2 t0)))) (let H0 \def (eq_ind_r T t (\lambda (t:
+T).(eq T t t2)) H10 (THead (Flat Appl) v1 (THead (Bind Abst) u t0)) H4) in
+(eq_ind T (THead (Flat Appl) v1 (THead (Bind Abst) u t0)) (\lambda (t:
+T).(ex2 T (\lambda (t0: T).(pr0 (THead (Bind Abbr) v2 t3) t0)) (\lambda (t0:
+T).(pr0 t t0)))) (let H1 \def (eq_ind_r T t (\lambda (t: T).(eq T t4 t)) H6
+(THead (Flat Appl) v1 (THead (Bind Abst) u t0)) H4) in (let H2 \def (eq_ind_r
+T t (\lambda (t: T).(\forall (v: T).((tlt v t) \to (\forall (t1: T).((pr0 v
+t1) \to (\forall (t2: T).((pr0 v t2) \to (ex2 T (\lambda (t0: T).(pr0 t1 t0))
+(\lambda (t0: T).(pr0 t2 t0)))))))))) H (THead (Flat Appl) v1 (THead (Bind
+Abst) u t0)) H4) in (ex_intro2 T (\lambda (t: T).(pr0 (THead (Bind Abbr) v2
+t3) t)) (\lambda (t: T).(pr0 (THead (Flat Appl) v1 (THead (Bind Abst) u t0))
+t)) (THead (Bind Abbr) v2 t3) (pr0_refl (THead (Bind Abbr) v2 t3)) (pr0_beta
+u v1 v2 H7 t0 t3 H8)))) t2 H0)) t (sym_eq T t t2 H10))) t4 (sym_eq T t4 t H6)
+H9))) | (pr0_comp u1 u2 H6 t4 t5 H7 k) \Rightarrow (\lambda (H9: (eq T (THead
+k u1 t4) t)).(\lambda (H10: (eq T (THead k u2 t5) t2)).(eq_ind T (THead k u1
+t4) (\lambda (_: T).((eq T (THead k u2 t5) t2) \to ((pr0 u1 u2) \to ((pr0 t4
+t5) \to (ex2 T (\lambda (t0: T).(pr0 (THead (Bind Abbr) v2 t3) t0)) (\lambda
+(t0: T).(pr0 t2 t0))))))) (\lambda (H11: (eq T (THead k u2 t5) t2)).(eq_ind T
+(THead k u2 t5) (\lambda (t: T).((pr0 u1 u2) \to ((pr0 t4 t5) \to (ex2 T
+(\lambda (t0: T).(pr0 (THead (Bind Abbr) v2 t3) t0)) (\lambda (t0: T).(pr0 t
+t0)))))) (\lambda (H12: (pr0 u1 u2)).(\lambda (H13: (pr0 t4 t5)).(let H0 \def
+(eq_ind_r T t (\lambda (t: T).(eq T (THead (Flat Appl) v1 (THead (Bind Abst)
+u t0)) t)) H4 (THead k u1 t4) H9) in (let H1 \def (match H0 return (\lambda
+(t: T).(\lambda (_: (eq ? ? t)).((eq T t (THead k u1 t4)) \to (ex2 T (\lambda
+(t0: T).(pr0 (THead (Bind Abbr) v2 t3) t0)) (\lambda (t0: T).(pr0 (THead k u2
+t5) t0)))))) with [refl_equal \Rightarrow (\lambda (H0: (eq T (THead (Flat
+Appl) v1 (THead (Bind Abst) u t0)) (THead k u1 t4))).(let H1 \def (f_equal T
+T (\lambda (e: T).(match e return (\lambda (_: T).T) with [(TSort _)
+\Rightarrow (THead (Bind Abst) u t0) | (TLRef _) \Rightarrow (THead (Bind
+Abst) u t0) | (THead _ _ t) \Rightarrow t])) (THead (Flat Appl) v1 (THead
+(Bind Abst) u t0)) (THead k u1 t4) H0) in ((let H2 \def (f_equal T T (\lambda
+(e: T).(match e return (\lambda (_: T).T) with [(TSort _) \Rightarrow v1 |
+(TLRef _) \Rightarrow v1 | (THead _ t _) \Rightarrow t])) (THead (Flat Appl)
+v1 (THead (Bind Abst) u t0)) (THead k u1 t4) H0) in ((let H3 \def (f_equal T
+K (\lambda (e: T).(match e return (\lambda (_: T).K) with [(TSort _)
+\Rightarrow (Flat Appl) | (TLRef _) \Rightarrow (Flat Appl) | (THead k _ _)
+\Rightarrow k])) (THead (Flat Appl) v1 (THead (Bind Abst) u t0)) (THead k u1
+t4) H0) in (eq_ind K (Flat Appl) (\lambda (k: K).((eq T v1 u1) \to ((eq T
+(THead (Bind Abst) u t0) t4) \to (ex2 T (\lambda (t: T).(pr0 (THead (Bind
+Abbr) v2 t3) t)) (\lambda (t: T).(pr0 (THead k u2 t5) t)))))) (\lambda (H10:
+(eq T v1 u1)).(eq_ind T u1 (\lambda (_: T).((eq T (THead (Bind Abst) u t0)
+t4) \to (ex2 T (\lambda (t0: T).(pr0 (THead (Bind Abbr) v2 t3) t0)) (\lambda
+(t0: T).(pr0 (THead (Flat Appl) u2 t5) t0))))) (\lambda (H11: (eq T (THead
+(Bind Abst) u t0) t4)).(eq_ind T (THead (Bind Abst) u t0) (\lambda (_:
+T).(ex2 T (\lambda (t0: T).(pr0 (THead (Bind Abbr) v2 t3) t0)) (\lambda (t0:
+T).(pr0 (THead (Flat Appl) u2 t5) t0)))) (let H4 \def (eq_ind_r K k (\lambda
+(k: K).(eq T (THead k u1 t4) t)) H9 (Flat Appl) H3) in (let H5 \def (eq_ind_r
+T t4 (\lambda (t: T).(pr0 t t5)) H13 (THead (Bind Abst) u t0) H11) in (let H6
+\def (match H5 return (\lambda (t: T).(\lambda (t1: T).(\lambda (_: (pr0 t
+t1)).((eq T t (THead (Bind Abst) u t0)) \to ((eq T t1 t5) \to (ex2 T (\lambda
+(t0: T).(pr0 (THead (Bind Abbr) v2 t3) t0)) (\lambda (t0: T).(pr0 (THead
+(Flat Appl) u2 t5) t0)))))))) with [(pr0_refl t2) \Rightarrow (\lambda (H0:
+(eq T t2 (THead (Bind Abst) u t0))).(\lambda (H1: (eq T t2 t5)).(eq_ind T
+(THead (Bind Abst) u t0) (\lambda (t: T).((eq T t t5) \to (ex2 T (\lambda
+(t0: T).(pr0 (THead (Bind Abbr) v2 t3) t0)) (\lambda (t0: T).(pr0 (THead
+(Flat Appl) u2 t5) t0))))) (\lambda (H2: (eq T (THead (Bind Abst) u t0)
+t5)).(eq_ind T (THead (Bind Abst) u t0) (\lambda (t: T).(ex2 T (\lambda (t0:
+T).(pr0 (THead (Bind Abbr) v2 t3) t0)) (\lambda (t0: T).(pr0 (THead (Flat
+Appl) u2 t) t0)))) (let H3 \def (eq_ind_r T t4 (\lambda (t0: T).(eq T (THead
+(Flat Appl) u1 t0) t)) H4 (THead (Bind Abst) u t0) H11) in (let H4 \def
+(eq_ind_r T t (\lambda (t: T).(\forall (v: T).((tlt v t) \to (\forall (t1:
+T).((pr0 v t1) \to (\forall (t2: T).((pr0 v t2) \to (ex2 T (\lambda (t0:
+T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 t2 t0)))))))))) H (THead (Flat Appl) u1
+(THead (Bind Abst) u t0)) H3) in (let H5 \def (eq_ind T v1 (\lambda (t:
+T).(pr0 t v2)) H7 u1 H10) in (ex2_ind T (\lambda (t: T).(pr0 v2 t)) (\lambda
+(t: T).(pr0 u2 t)) (ex2 T (\lambda (t: T).(pr0 (THead (Bind Abbr) v2 t3) t))
+(\lambda (t: T).(pr0 (THead (Flat Appl) u2 (THead (Bind Abst) u t0)) t)))
+(\lambda (x: T).(\lambda (H6: (pr0 v2 x)).(\lambda (H7: (pr0 u2
+x)).(ex_intro2 T (\lambda (t: T).(pr0 (THead (Bind Abbr) v2 t3) t)) (\lambda
+(t: T).(pr0 (THead (Flat Appl) u2 (THead (Bind Abst) u t0)) t)) (THead (Bind
+Abbr) x t3) (pr0_comp v2 x H6 t3 t3 (pr0_refl t3) (Bind Abbr)) (pr0_beta u u2
+x H7 t0 t3 H8))))) (H4 u1 (tlt_head_sx (Flat Appl) u1 (THead (Bind Abst) u
+t0)) v2 H5 u2 H12))))) t5 H2)) t2 (sym_eq T t2 (THead (Bind Abst) u t0) H0)
+H1))) | (pr0_comp u0 u3 H0 t2 t6 H1 k) \Rightarrow (\lambda (H5: (eq T (THead
+k u0 t2) (THead (Bind Abst) u t0))).(\lambda (H13: (eq T (THead k u3 t6)
+t5)).((let H2 \def (f_equal T T (\lambda (e: T).(match e return (\lambda (_:
+T).T) with [(TSort _) \Rightarrow t2 | (TLRef _) \Rightarrow t2 | (THead _ _
+t) \Rightarrow t])) (THead k u0 t2) (THead (Bind Abst) u t0) H5) in ((let H3
+\def (f_equal T T (\lambda (e: T).(match e return (\lambda (_: T).T) with
+[(TSort _) \Rightarrow u0 | (TLRef _) \Rightarrow u0 | (THead _ t _)
+\Rightarrow t])) (THead k u0 t2) (THead (Bind Abst) u t0) H5) in ((let H6
+\def (f_equal T K (\lambda (e: T).(match e return (\lambda (_: T).K) with
+[(TSort _) \Rightarrow k | (TLRef _) \Rightarrow k | (THead k _ _)
+\Rightarrow k])) (THead k u0 t2) (THead (Bind Abst) u t0) H5) in (eq_ind K
+(Bind Abst) (\lambda (k0: K).((eq T u0 u) \to ((eq T t2 t0) \to ((eq T (THead
+k0 u3 t6) t5) \to ((pr0 u0 u3) \to ((pr0 t2 t6) \to (ex2 T (\lambda (t:
+T).(pr0 (THead (Bind Abbr) v2 t3) t)) (\lambda (t: T).(pr0 (THead (Flat Appl)
+u2 t5) t))))))))) (\lambda (H9: (eq T u0 u)).(eq_ind T u (\lambda (t: T).((eq
+T t2 t0) \to ((eq T (THead (Bind Abst) u3 t6) t5) \to ((pr0 t u3) \to ((pr0
+t2 t6) \to (ex2 T (\lambda (t0: T).(pr0 (THead (Bind Abbr) v2 t3) t0))
+(\lambda (t0: T).(pr0 (THead (Flat Appl) u2 t5) t0)))))))) (\lambda (H14: (eq
+T t2 t0)).(eq_ind T t0 (\lambda (t: T).((eq T (THead (Bind Abst) u3 t6) t5)
+\to ((pr0 u u3) \to ((pr0 t t6) \to (ex2 T (\lambda (t0: T).(pr0 (THead (Bind
+Abbr) v2 t3) t0)) (\lambda (t0: T).(pr0 (THead (Flat Appl) u2 t5) t0)))))))
+(\lambda (H15: (eq T (THead (Bind Abst) u3 t6) t5)).(eq_ind T (THead (Bind
+Abst) u3 t6) (\lambda (t: T).((pr0 u u3) \to ((pr0 t0 t6) \to (ex2 T (\lambda
+(t0: T).(pr0 (THead (Bind Abbr) v2 t3) t0)) (\lambda (t0: T).(pr0 (THead
+(Flat Appl) u2 t) t0)))))) (\lambda (_: (pr0 u u3)).(\lambda (H17: (pr0 t0
+t6)).(let H4 \def (eq_ind_r T t4 (\lambda (t0: T).(eq T (THead (Flat Appl) u1
+t0) t)) H4 (THead (Bind Abst) u t0) H11) in (let H11 \def (eq_ind_r T t
+(\lambda (t: T).(\forall (v: T).((tlt v t) \to (\forall (t1: T).((pr0 v t1)
+\to (\forall (t2: T).((pr0 v t2) \to (ex2 T (\lambda (t0: T).(pr0 t1 t0))
+(\lambda (t0: T).(pr0 t2 t0)))))))))) H (THead (Flat Appl) u1 (THead (Bind
+Abst) u t0)) H4) in (let H7 \def (eq_ind T v1 (\lambda (t: T).(pr0 t v2)) H7
+u1 H10) in (ex2_ind T (\lambda (t: T).(pr0 v2 t)) (\lambda (t: T).(pr0 u2 t))
+(ex2 T (\lambda (t: T).(pr0 (THead (Bind Abbr) v2 t3) t)) (\lambda (t:
+T).(pr0 (THead (Flat Appl) u2 (THead (Bind Abst) u3 t6)) t))) (\lambda (x:
+T).(\lambda (H10: (pr0 v2 x)).(\lambda (H12: (pr0 u2 x)).(ex2_ind T (\lambda
+(t: T).(pr0 t6 t)) (\lambda (t: T).(pr0 t3 t)) (ex2 T (\lambda (t: T).(pr0
+(THead (Bind Abbr) v2 t3) t)) (\lambda (t: T).(pr0 (THead (Flat Appl) u2
+(THead (Bind Abst) u3 t6)) t))) (\lambda (x0: T).(\lambda (H8: (pr0 t6
+x0)).(\lambda (H18: (pr0 t3 x0)).(ex_intro2 T (\lambda (t: T).(pr0 (THead
+(Bind Abbr) v2 t3) t)) (\lambda (t: T).(pr0 (THead (Flat Appl) u2 (THead
+(Bind Abst) u3 t6)) t)) (THead (Bind Abbr) x x0) (pr0_comp v2 x H10 t3 x0 H18
+(Bind Abbr)) (pr0_beta u3 u2 x H12 t6 x0 H8))))) (H11 t0 (tlt_trans (THead
+(Bind Abst) u t0) t0 (THead (Flat Appl) u1 (THead (Bind Abst) u t0))
+(tlt_head_dx (Bind Abst) u t0) (tlt_head_dx (Flat Appl) u1 (THead (Bind Abst)
+u t0))) t6 H17 t3 H8))))) (H11 u1 (tlt_head_sx (Flat Appl) u1 (THead (Bind
+Abst) u t0)) v2 H7 u2 H12))))))) t5 H15)) t2 (sym_eq T t2 t0 H14))) u0
+(sym_eq T u0 u H9))) k (sym_eq K k (Bind Abst) H6))) H3)) H2)) H13 H0 H1))) |
+(pr0_beta u0 v0 v3 H0 t2 t6 H1) \Rightarrow (\lambda (H4: (eq T (THead (Flat
+Appl) v0 (THead (Bind Abst) u0 t2)) (THead (Bind Abst) u t0))).(\lambda (H11:
+(eq T (THead (Bind Abbr) v3 t6) t5)).((let H2 \def (eq_ind T (THead (Flat
+Appl) v0 (THead (Bind Abst) u0 t2)) (\lambda (e: T).(match e return (\lambda
+(_: T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False
+| (THead k _ _) \Rightarrow (match k return (\lambda (_: K).Prop) with [(Bind
+_) \Rightarrow False | (Flat _) \Rightarrow True])])) I (THead (Bind Abst) u
+t0) H4) in (False_ind ((eq T (THead (Bind Abbr) v3 t6) t5) \to ((pr0 v0 v3)
+\to ((pr0 t2 t6) \to (ex2 T (\lambda (t: T).(pr0 (THead (Bind Abbr) v2 t3)
+t)) (\lambda (t: T).(pr0 (THead (Flat Appl) u2 t5) t)))))) H2)) H11 H0 H1)))
+| (pr0_upsilon b H0 v0 v3 H1 u0 u3 H4 t2 t6 H11) \Rightarrow (\lambda (H12:
+(eq T (THead (Flat Appl) v0 (THead (Bind b) u0 t2)) (THead (Bind Abst) u
+t0))).(\lambda (H13: (eq T (THead (Bind b) u3 (THead (Flat Appl) (lift (S O)
+O v3) t6)) t5)).((let H2 \def (eq_ind T (THead (Flat Appl) v0 (THead (Bind b)
+u0 t2)) (\lambda (e: T).(match e return (\lambda (_: T).Prop) with [(TSort _)
+\Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow
+(match k return (\lambda (_: K).Prop) with [(Bind _) \Rightarrow False |
+(Flat _) \Rightarrow True])])) I (THead (Bind Abst) u t0) H12) in (False_ind
+((eq T (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v3) t6)) t5) \to
+((not (eq B b Abst)) \to ((pr0 v0 v3) \to ((pr0 u0 u3) \to ((pr0 t2 t6) \to
+(ex2 T (\lambda (t: T).(pr0 (THead (Bind Abbr) v2 t3) t)) (\lambda (t:
+T).(pr0 (THead (Flat Appl) u2 t5) t)))))))) H2)) H13 H0 H1 H4 H11))) |
+(pr0_delta u0 u3 H0 t2 t6 H1 w H4) \Rightarrow (\lambda (H11: (eq T (THead
+(Bind Abbr) u0 t2) (THead (Bind Abst) u t0))).(\lambda (H12: (eq T (THead
+(Bind Abbr) u3 w) t5)).((let H2 \def (eq_ind T (THead (Bind Abbr) u0 t2)
+(\lambda (e: T).(match e return (\lambda (_: T).Prop) with [(TSort _)
+\Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow
+(match k return (\lambda (_: K).Prop) with [(Bind b) \Rightarrow (match b
+return (\lambda (_: B).Prop) with [Abbr \Rightarrow True | Abst \Rightarrow
+False | Void \Rightarrow False]) | (Flat _) \Rightarrow False])])) I (THead
+(Bind Abst) u t0) H11) in (False_ind ((eq T (THead (Bind Abbr) u3 w) t5) \to
+((pr0 u0 u3) \to ((pr0 t2 t6) \to ((subst0 O u3 t6 w) \to (ex2 T (\lambda (t:
+T).(pr0 (THead (Bind Abbr) v2 t3) t)) (\lambda (t: T).(pr0 (THead (Flat Appl)
+u2 t5) t))))))) H2)) H12 H0 H1 H4))) | (pr0_zeta b H0 t2 t6 H1 u0)
+\Rightarrow (\lambda (H4: (eq T (THead (Bind b) u0 (lift (S O) O t2)) (THead
+(Bind Abst) u t0))).(\lambda (H11: (eq T t6 t5)).((let H2 \def (f_equal T T
+(\lambda (e: T).(match e return (\lambda (_: T).T) with [(TSort _)
+\Rightarrow ((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
+(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))]) in lref_map) (\lambda (x: nat).(plus x (S O))) O t2) | (TLRef _)
+\Rightarrow ((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
+(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))]) in lref_map) (\lambda (x: nat).(plus x (S O))) O t2) | (THead _ _ t)
+\Rightarrow t])) (THead (Bind b) u0 (lift (S O) O t2)) (THead (Bind Abst) u
+t0) H4) in ((let H3 \def (f_equal T T (\lambda (e: T).(match e return
+(\lambda (_: T).T) with [(TSort _) \Rightarrow u0 | (TLRef _) \Rightarrow u0
+| (THead _ t _) \Rightarrow t])) (THead (Bind b) u0 (lift (S O) O t2)) (THead
+(Bind Abst) u t0) H4) in ((let H5 \def (f_equal T B (\lambda (e: T).(match e
+return (\lambda (_: T).B) with [(TSort _) \Rightarrow b | (TLRef _)
+\Rightarrow b | (THead k _ _) \Rightarrow (match k return (\lambda (_: K).B)
+with [(Bind b) \Rightarrow b | (Flat _) \Rightarrow b])])) (THead (Bind b) u0
+(lift (S O) O t2)) (THead (Bind Abst) u t0) H4) in (eq_ind B Abst (\lambda
+(b0: B).((eq T u0 u) \to ((eq T (lift (S O) O t2) t0) \to ((eq T t6 t5) \to
+((not (eq B b0 Abst)) \to ((pr0 t2 t6) \to (ex2 T (\lambda (t: T).(pr0 (THead
+(Bind Abbr) v2 t3) t)) (\lambda (t: T).(pr0 (THead (Flat Appl) u2 t5)
+t))))))))) (\lambda (H6: (eq T u0 u)).(eq_ind T u (\lambda (_: T).((eq T
+(lift (S O) O t2) t0) \to ((eq T t6 t5) \to ((not (eq B Abst Abst)) \to ((pr0
+t2 t6) \to (ex2 T (\lambda (t0: T).(pr0 (THead (Bind Abbr) v2 t3) t0))
+(\lambda (t0: T).(pr0 (THead (Flat Appl) u2 t5) t0)))))))) (\lambda (H12: (eq
+T (lift (S O) O t2) t0)).(eq_ind T (lift (S O) O t2) (\lambda (_: T).((eq T
+t6 t5) \to ((not (eq B Abst Abst)) \to ((pr0 t2 t6) \to (ex2 T (\lambda (t0:
+T).(pr0 (THead (Bind Abbr) v2 t3) t0)) (\lambda (t0: T).(pr0 (THead (Flat
+Appl) u2 t5) t0))))))) (\lambda (H7: (eq T t6 t5)).(eq_ind T t5 (\lambda (t:
+T).((not (eq B Abst Abst)) \to ((pr0 t2 t) \to (ex2 T (\lambda (t0: T).(pr0
+(THead (Bind Abbr) v2 t3) t0)) (\lambda (t0: T).(pr0 (THead (Flat Appl) u2
+t5) t0)))))) (\lambda (H13: (not (eq B Abst Abst))).(\lambda (_: (pr0 t2
+t5)).(let H8 \def (match (H13 (refl_equal B Abst)) return (\lambda (_:
+False).(ex2 T (\lambda (t: T).(pr0 (THead (Bind Abbr) v2 t3) t)) (\lambda (t:
+T).(pr0 (THead (Flat Appl) u2 t5) t)))) with []) in H8))) t6 (sym_eq T t6 t5
+H7))) t0 H12)) u0 (sym_eq T u0 u H6))) b (sym_eq B b Abst H5))) H3)) H2)) H11
+H0 H1))) | (pr0_epsilon t2 t6 H0 u0) \Rightarrow (\lambda (H1: (eq T (THead
+(Flat Cast) u0 t2) (THead (Bind Abst) u t0))).(\lambda (H4: (eq T t6
+t5)).((let H2 \def (eq_ind T (THead (Flat Cast) u0 t2) (\lambda (e: T).(match
+e return (\lambda (_: T).Prop) with [(TSort _) \Rightarrow False | (TLRef _)
+\Rightarrow False | (THead k _ _) \Rightarrow (match k return (\lambda (_:
+K).Prop) with [(Bind _) \Rightarrow False | (Flat _) \Rightarrow True])])) I
+(THead (Bind Abst) u t0) H1) in (False_ind ((eq T t6 t5) \to ((pr0 t2 t6) \to
+(ex2 T (\lambda (t: T).(pr0 (THead (Bind Abbr) v2 t3) t)) (\lambda (t:
+T).(pr0 (THead (Flat Appl) u2 t5) t))))) H2)) H4 H0)))]) in (H6 (refl_equal T
+(THead (Bind Abst) u t0)) (refl_equal T t5))))) t4 H11)) v1 (sym_eq T v1 u1
+H10))) k H3)) H2)) H1)))]) in (H1 (refl_equal T (THead k u1 t4))))))) t2
+H11)) t H9 H10 H6 H7))) | (pr0_beta u0 v0 v3 H6 t4 t5 H7) \Rightarrow
+(\lambda (H9: (eq T (THead (Flat Appl) v0 (THead (Bind Abst) u0 t4))
+t)).(\lambda (H10: (eq T (THead (Bind Abbr) v3 t5) t2)).(eq_ind T (THead
+(Flat Appl) v0 (THead (Bind Abst) u0 t4)) (\lambda (_: T).((eq T (THead (Bind
+Abbr) v3 t5) t2) \to ((pr0 v0 v3) \to ((pr0 t4 t5) \to (ex2 T (\lambda (t0:
+T).(pr0 (THead (Bind Abbr) v2 t3) t0)) (\lambda (t0: T).(pr0 t2 t0)))))))
+(\lambda (H11: (eq T (THead (Bind Abbr) v3 t5) t2)).(eq_ind T (THead (Bind
+Abbr) v3 t5) (\lambda (t: T).((pr0 v0 v3) \to ((pr0 t4 t5) \to (ex2 T
+(\lambda (t0: T).(pr0 (THead (Bind Abbr) v2 t3) t0)) (\lambda (t0: T).(pr0 t
+t0)))))) (\lambda (H12: (pr0 v0 v3)).(\lambda (H13: (pr0 t4 t5)).(let H0 \def
+(eq_ind_r T t (\lambda (t: T).(eq T (THead (Flat Appl) v1 (THead (Bind Abst)
+u t0)) t)) H4 (THead (Flat Appl) v0 (THead (Bind Abst) u0 t4)) H9) in (let H1
+\def (match H0 return (\lambda (t: T).(\lambda (_: (eq ? ? t)).((eq T t
+(THead (Flat Appl) v0 (THead (Bind Abst) u0 t4))) \to (ex2 T (\lambda (t0:
+T).(pr0 (THead (Bind Abbr) v2 t3) t0)) (\lambda (t0: T).(pr0 (THead (Bind
+Abbr) v3 t5) t0)))))) with [refl_equal \Rightarrow (\lambda (H0: (eq T (THead
+(Flat Appl) v1 (THead (Bind Abst) u t0)) (THead (Flat Appl) v0 (THead (Bind
+Abst) u0 t4)))).(let H1 \def (f_equal T T (\lambda (e: T).(match e return
+(\lambda (_: T).T) with [(TSort _) \Rightarrow t0 | (TLRef _) \Rightarrow t0
+| (THead _ _ t) \Rightarrow (match t return (\lambda (_: T).T) with [(TSort
+_) \Rightarrow t0 | (TLRef _) \Rightarrow t0 | (THead _ _ t0) \Rightarrow
+t0])])) (THead (Flat Appl) v1 (THead (Bind Abst) u t0)) (THead (Flat Appl) v0
+(THead (Bind Abst) u0 t4)) H0) in ((let H2 \def (f_equal T T (\lambda (e:
+T).(match e return (\lambda (_: T).T) with [(TSort _) \Rightarrow u | (TLRef
+_) \Rightarrow u | (THead _ _ t) \Rightarrow (match t return (\lambda (_:
+T).T) with [(TSort _) \Rightarrow u | (TLRef _) \Rightarrow u | (THead _ t0
+_) \Rightarrow t0])])) (THead (Flat Appl) v1 (THead (Bind Abst) u t0)) (THead
+(Flat Appl) v0 (THead (Bind Abst) u0 t4)) H0) in ((let H3 \def (f_equal T T
+(\lambda (e: T).(match e return (\lambda (_: T).T) with [(TSort _)
+\Rightarrow v1 | (TLRef _) \Rightarrow v1 | (THead _ t _) \Rightarrow t]))
+(THead (Flat Appl) v1 (THead (Bind Abst) u t0)) (THead (Flat Appl) v0 (THead
+(Bind Abst) u0 t4)) H0) in (eq_ind T v0 (\lambda (_: T).((eq T u u0) \to ((eq
+T t0 t4) \to (ex2 T (\lambda (t0: T).(pr0 (THead (Bind Abbr) v2 t3) t0))
+(\lambda (t0: T).(pr0 (THead (Bind Abbr) v3 t5) t0)))))) (\lambda (H10: (eq T
+u u0)).(eq_ind T u0 (\lambda (_: T).((eq T t0 t4) \to (ex2 T (\lambda (t0:
+T).(pr0 (THead (Bind Abbr) v2 t3) t0)) (\lambda (t0: T).(pr0 (THead (Bind
+Abbr) v3 t5) t0))))) (\lambda (H11: (eq T t0 t4)).(eq_ind T t4 (\lambda (_:
+T).(ex2 T (\lambda (t0: T).(pr0 (THead (Bind Abbr) v2 t3) t0)) (\lambda (t0:
+T).(pr0 (THead (Bind Abbr) v3 t5) t0)))) (let H4 \def (eq_ind_r T t (\lambda
+(t: T).(\forall (v: T).((tlt v t) \to (\forall (t1: T).((pr0 v t1) \to
+(\forall (t2: T).((pr0 v t2) \to (ex2 T (\lambda (t0: T).(pr0 t1 t0))
+(\lambda (t0: T).(pr0 t2 t0)))))))))) H (THead (Flat Appl) v0 (THead (Bind
+Abst) u0 t4)) H9) in (let H5 \def (eq_ind T t0 (\lambda (t: T).(pr0 t t3)) H8
+t4 H11) in (let H6 \def (eq_ind T v1 (\lambda (t: T).(pr0 t v2)) H7 v0 H3) in
+(ex2_ind T (\lambda (t: T).(pr0 v2 t)) (\lambda (t: T).(pr0 v3 t)) (ex2 T
+(\lambda (t: T).(pr0 (THead (Bind Abbr) v2 t3) t)) (\lambda (t: T).(pr0
+(THead (Bind Abbr) v3 t5) t))) (\lambda (x: T).(\lambda (H7: (pr0 v2
+x)).(\lambda (H8: (pr0 v3 x)).(ex2_ind T (\lambda (t: T).(pr0 t3 t)) (\lambda
+(t: T).(pr0 t5 t)) (ex2 T (\lambda (t: T).(pr0 (THead (Bind Abbr) v2 t3) t))
+(\lambda (t: T).(pr0 (THead (Bind Abbr) v3 t5) t))) (\lambda (x0: T).(\lambda
+(H9: (pr0 t3 x0)).(\lambda (H12: (pr0 t5 x0)).(ex_intro2 T (\lambda (t:
+T).(pr0 (THead (Bind Abbr) v2 t3) t)) (\lambda (t: T).(pr0 (THead (Bind Abbr)
+v3 t5) t)) (THead (Bind Abbr) x x0) (pr0_comp v2 x H7 t3 x0 H9 (Bind Abbr))
+(pr0_comp v3 x H8 t5 x0 H12 (Bind Abbr)))))) (H4 t4 (tlt_trans (THead (Bind
+Abst) u0 t4) t4 (THead (Flat Appl) v0 (THead (Bind Abst) u0 t4)) (tlt_head_dx
+(Bind Abst) u0 t4) (tlt_head_dx (Flat Appl) v0 (THead (Bind Abst) u0 t4))) t3
+H5 t5 H13))))) (H4 v0 (tlt_head_sx (Flat Appl) v0 (THead (Bind Abst) u0 t4))
+v2 H6 v3 H12))))) t0 (sym_eq T t0 t4 H11))) u (sym_eq T u u0 H10))) v1
+(sym_eq T v1 v0 H3))) H2)) H1)))]) in (H1 (refl_equal T (THead (Flat Appl) v0
+(THead (Bind Abst) u0 t4)))))))) t2 H11)) t H9 H10 H6 H7))) | (pr0_upsilon b
+H6 v0 v3 H7 u1 u2 H8 t4 t5 H9) \Rightarrow (\lambda (H10: (eq T (THead (Flat
+Appl) v0 (THead (Bind b) u1 t4)) t)).(\lambda (H11: (eq T (THead (Bind b) u2
+(THead (Flat Appl) (lift (S O) O v3) t5)) t2)).(eq_ind T (THead (Flat Appl)
+v0 (THead (Bind b) u1 t4)) (\lambda (_: T).((eq T (THead (Bind b) u2 (THead
+(Flat Appl) (lift (S O) O v3) t5)) t2) \to ((not (eq B b Abst)) \to ((pr0 v0
+v3) \to ((pr0 u1 u2) \to ((pr0 t4 t5) \to (ex2 T (\lambda (t0: T).(pr0 (THead
+(Bind Abbr) v2 t3) t0)) (\lambda (t0: T).(pr0 t2 t0))))))))) (\lambda (H12:
+(eq T (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v3) t5))
+t2)).(eq_ind T (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v3) t5))
+(\lambda (t: T).((not (eq B b Abst)) \to ((pr0 v0 v3) \to ((pr0 u1 u2) \to
+((pr0 t4 t5) \to (ex2 T (\lambda (t0: T).(pr0 (THead (Bind Abbr) v2 t3) t0))
+(\lambda (t0: T).(pr0 t t0)))))))) (\lambda (H13: (not (eq B b
+Abst))).(\lambda (_: (pr0 v0 v3)).(\lambda (_: (pr0 u1 u2)).(\lambda (_: (pr0
+t4 t5)).(let H0 \def (eq_ind_r T t (\lambda (t: T).(eq T (THead (Flat Appl)
+v1 (THead (Bind Abst) u t0)) t)) H4 (THead (Flat Appl) v0 (THead (Bind b) u1
+t4)) H10) in (let H1 \def (match H0 return (\lambda (t: T).(\lambda (_: (eq ?
+? t)).((eq T t (THead (Flat Appl) v0 (THead (Bind b) u1 t4))) \to (ex2 T
+(\lambda (t0: T).(pr0 (THead (Bind Abbr) v2 t3) t0)) (\lambda (t0: T).(pr0
+(THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v3) t5)) t0)))))) with
+[refl_equal \Rightarrow (\lambda (H0: (eq T (THead (Flat Appl) v1 (THead
+(Bind Abst) u t0)) (THead (Flat Appl) v0 (THead (Bind b) u1 t4)))).(let H1
+\def (f_equal T T (\lambda (e: T).(match e return (\lambda (_: T).T) with
+[(TSort _) \Rightarrow t0 | (TLRef _) \Rightarrow t0 | (THead _ _ t)
+\Rightarrow (match t return (\lambda (_: T).T) with [(TSort _) \Rightarrow t0
+| (TLRef _) \Rightarrow t0 | (THead _ _ t0) \Rightarrow t0])])) (THead (Flat
+Appl) v1 (THead (Bind Abst) u t0)) (THead (Flat Appl) v0 (THead (Bind b) u1
+t4)) H0) in ((let H2 \def (f_equal T T (\lambda (e: T).(match e return
+(\lambda (_: T).T) with [(TSort _) \Rightarrow u | (TLRef _) \Rightarrow u |
+(THead _ _ t) \Rightarrow (match t return (\lambda (_: T).T) with [(TSort _)
+\Rightarrow u | (TLRef _) \Rightarrow u | (THead _ t0 _) \Rightarrow t0])]))
+(THead (Flat Appl) v1 (THead (Bind Abst) u t0)) (THead (Flat Appl) v0 (THead
+(Bind b) u1 t4)) H0) in ((let H3 \def (f_equal T B (\lambda (e: T).(match e
+return (\lambda (_: T).B) with [(TSort _) \Rightarrow Abst | (TLRef _)
+\Rightarrow Abst | (THead _ _ t) \Rightarrow (match t return (\lambda (_:
+T).B) with [(TSort _) \Rightarrow Abst | (TLRef _) \Rightarrow Abst | (THead
+k _ _) \Rightarrow (match k return (\lambda (_: K).B) with [(Bind b)
+\Rightarrow b | (Flat _) \Rightarrow Abst])])])) (THead (Flat Appl) v1 (THead
+(Bind Abst) u t0)) (THead (Flat Appl) v0 (THead (Bind b) u1 t4)) H0) in ((let
+H4 \def (f_equal T T (\lambda (e: T).(match e return (\lambda (_: T).T) with
+[(TSort _) \Rightarrow v1 | (TLRef _) \Rightarrow v1 | (THead _ t _)
+\Rightarrow t])) (THead (Flat Appl) v1 (THead (Bind Abst) u t0)) (THead (Flat
+Appl) v0 (THead (Bind b) u1 t4)) H0) in (eq_ind T v0 (\lambda (_: T).((eq B
+Abst b) \to ((eq T u u1) \to ((eq T t0 t4) \to (ex2 T (\lambda (t0: T).(pr0
+(THead (Bind Abbr) v2 t3) t0)) (\lambda (t0: T).(pr0 (THead (Bind b) u2
+(THead (Flat Appl) (lift (S O) O v3) t5)) t0))))))) (\lambda (H11: (eq B Abst
+b)).(eq_ind B Abst (\lambda (b: B).((eq T u u1) \to ((eq T t0 t4) \to (ex2 T
+(\lambda (t: T).(pr0 (THead (Bind Abbr) v2 t3) t)) (\lambda (t: T).(pr0
+(THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v3) t5)) t)))))) (\lambda
+(H12: (eq T u u1)).(eq_ind T u1 (\lambda (_: T).((eq T t0 t4) \to (ex2 T
+(\lambda (t0: T).(pr0 (THead (Bind Abbr) v2 t3) t0)) (\lambda (t0: T).(pr0
+(THead (Bind Abst) u2 (THead (Flat Appl) (lift (S O) O v3) t5)) t0)))))
+(\lambda (H14: (eq T t0 t4)).(eq_ind T t4 (\lambda (_: T).(ex2 T (\lambda
+(t0: T).(pr0 (THead (Bind Abbr) v2 t3) t0)) (\lambda (t0: T).(pr0 (THead
+(Bind Abst) u2 (THead (Flat Appl) (lift (S O) O v3) t5)) t0)))) (let H5 \def
+(eq_ind_r B b (\lambda (b: B).(not (eq B b Abst))) H13 Abst H11) in (let H6
+\def (match (H5 (refl_equal B Abst)) return (\lambda (_: False).(ex2 T
+(\lambda (t: T).(pr0 (THead (Bind Abbr) v2 t3) t)) (\lambda (t: T).(pr0
+(THead (Bind Abst) u2 (THead (Flat Appl) (lift (S O) O v3) t5)) t)))) with
+[]) in H6)) t0 (sym_eq T t0 t4 H14))) u (sym_eq T u u1 H12))) b H11)) v1
+(sym_eq T v1 v0 H4))) H3)) H2)) H1)))]) in (H1 (refl_equal T (THead (Flat
+Appl) v0 (THead (Bind b) u1 t4)))))))))) t2 H12)) t H10 H11 H6 H7 H8 H9))) |
+(pr0_delta u1 u2 H6 t4 t5 H7 w H8) \Rightarrow (\lambda (H9: (eq T (THead
+(Bind Abbr) u1 t4) t)).(\lambda (H10: (eq T (THead (Bind Abbr) u2 w)
+t2)).(eq_ind T (THead (Bind Abbr) u1 t4) (\lambda (_: T).((eq T (THead (Bind
+Abbr) u2 w) t2) \to ((pr0 u1 u2) \to ((pr0 t4 t5) \to ((subst0 O u2 t5 w) \to
+(ex2 T (\lambda (t0: T).(pr0 (THead (Bind Abbr) v2 t3) t0)) (\lambda (t0:
+T).(pr0 t2 t0)))))))) (\lambda (H11: (eq T (THead (Bind Abbr) u2 w)
+t2)).(eq_ind T (THead (Bind Abbr) u2 w) (\lambda (t: T).((pr0 u1 u2) \to
+((pr0 t4 t5) \to ((subst0 O u2 t5 w) \to (ex2 T (\lambda (t0: T).(pr0 (THead
+(Bind Abbr) v2 t3) t0)) (\lambda (t0: T).(pr0 t t0))))))) (\lambda (_: (pr0
+u1 u2)).(\lambda (_: (pr0 t4 t5)).(\lambda (_: (subst0 O u2 t5 w)).(let H0
+\def (eq_ind_r T t (\lambda (t: T).(eq T (THead (Flat Appl) v1 (THead (Bind
+Abst) u t0)) t)) H4 (THead (Bind Abbr) u1 t4) H9) in (let H1 \def (match H0
+return (\lambda (t: T).(\lambda (_: (eq ? ? t)).((eq T t (THead (Bind Abbr)
+u1 t4)) \to (ex2 T (\lambda (t0: T).(pr0 (THead (Bind Abbr) v2 t3) t0))
+(\lambda (t0: T).(pr0 (THead (Bind Abbr) u2 w) t0)))))) with [refl_equal
+\Rightarrow (\lambda (H0: (eq T (THead (Flat Appl) v1 (THead (Bind Abst) u
+t0)) (THead (Bind Abbr) u1 t4))).(let H1 \def (eq_ind T (THead (Flat Appl) v1
+(THead (Bind Abst) u t0)) (\lambda (e: T).(match e return (\lambda (_:
+T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False |
+(THead k _ _) \Rightarrow (match k return (\lambda (_: K).Prop) with [(Bind
+_) \Rightarrow False | (Flat _) \Rightarrow True])])) I (THead (Bind Abbr) u1
+t4) H0) in (False_ind (ex2 T (\lambda (t: T).(pr0 (THead (Bind Abbr) v2 t3)
+t)) (\lambda (t: T).(pr0 (THead (Bind Abbr) u2 w) t))) H1)))]) in (H1
+(refl_equal T (THead (Bind Abbr) u1 t4)))))))) t2 H11)) t H9 H10 H6 H7 H8)))
+| (pr0_zeta b H6 t4 t5 H7 u0) \Rightarrow (\lambda (H8: (eq T (THead (Bind b)
+u0 (lift (S O) O t4)) t)).(\lambda (H9: (eq T t5 t2)).(eq_ind T (THead (Bind
+b) u0 (lift (S O) O t4)) (\lambda (_: T).((eq T t5 t2) \to ((not (eq B b
+Abst)) \to ((pr0 t4 t5) \to (ex2 T (\lambda (t0: T).(pr0 (THead (Bind Abbr)
+v2 t3) t0)) (\lambda (t0: T).(pr0 t2 t0))))))) (\lambda (H10: (eq T t5
+t2)).(eq_ind T t2 (\lambda (t: T).((not (eq B b Abst)) \to ((pr0 t4 t) \to
+(ex2 T (\lambda (t0: T).(pr0 (THead (Bind Abbr) v2 t3) t0)) (\lambda (t0:
+T).(pr0 t2 t0)))))) (\lambda (_: (not (eq B b Abst))).(\lambda (_: (pr0 t4
+t2)).(let H0 \def (eq_ind_r T t (\lambda (t: T).(eq T (THead (Flat Appl) v1
+(THead (Bind Abst) u t0)) t)) H4 (THead (Bind b) u0 (lift (S O) O t4)) H8) in
+(let H1 \def (match H0 return (\lambda (t: T).(\lambda (_: (eq ? ? t)).((eq T
+t (THead (Bind b) u0 (lift (S O) O t4))) \to (ex2 T (\lambda (t0: T).(pr0
+(THead (Bind Abbr) v2 t3) t0)) (\lambda (t0: T).(pr0 t2 t0)))))) with
+[refl_equal \Rightarrow (\lambda (H0: (eq T (THead (Flat Appl) v1 (THead
+(Bind Abst) u t0)) (THead (Bind b) u0 (lift (S O) O t4)))).(let H1 \def
+(eq_ind T (THead (Flat Appl) v1 (THead (Bind Abst) u t0)) (\lambda (e:
+T).(match e return (\lambda (_: T).Prop) with [(TSort _) \Rightarrow False |
+(TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow (match k return
+(\lambda (_: K).Prop) with [(Bind _) \Rightarrow False | (Flat _) \Rightarrow
+True])])) I (THead (Bind b) u0 (lift (S O) O t4)) H0) in (False_ind (ex2 T
+(\lambda (t: T).(pr0 (THead (Bind Abbr) v2 t3) t)) (\lambda (t: T).(pr0 t2
+t))) H1)))]) in (H1 (refl_equal T (THead (Bind b) u0 (lift (S O) O t4))))))))
+t5 (sym_eq T t5 t2 H10))) t H8 H9 H6 H7))) | (pr0_epsilon t4 t5 H6 u0)
+\Rightarrow (\lambda (H7: (eq T (THead (Flat Cast) u0 t4) t)).(\lambda (H8:
+(eq T t5 t2)).(eq_ind T (THead (Flat Cast) u0 t4) (\lambda (_: T).((eq T t5
+t2) \to ((pr0 t4 t5) \to (ex2 T (\lambda (t0: T).(pr0 (THead (Bind Abbr) v2
+t3) t0)) (\lambda (t0: T).(pr0 t2 t0)))))) (\lambda (H9: (eq T t5
+t2)).(eq_ind T t2 (\lambda (t: T).((pr0 t4 t) \to (ex2 T (\lambda (t0:
+T).(pr0 (THead (Bind Abbr) v2 t3) t0)) (\lambda (t0: T).(pr0 t2 t0)))))
+(\lambda (_: (pr0 t4 t2)).(let H0 \def (eq_ind_r T t (\lambda (t: T).(eq T
+(THead (Flat Appl) v1 (THead (Bind Abst) u t0)) t)) H4 (THead (Flat Cast) u0
+t4) H7) in (let H1 \def (match H0 return (\lambda (t: T).(\lambda (_: (eq ? ?
+t)).((eq T t (THead (Flat Cast) u0 t4)) \to (ex2 T (\lambda (t0: T).(pr0
+(THead (Bind Abbr) v2 t3) t0)) (\lambda (t0: T).(pr0 t2 t0)))))) with
+[refl_equal \Rightarrow (\lambda (H0: (eq T (THead (Flat Appl) v1 (THead
+(Bind Abst) u t0)) (THead (Flat Cast) u0 t4))).(let H1 \def (eq_ind T (THead
+(Flat Appl) v1 (THead (Bind Abst) u t0)) (\lambda (e: T).(match e return
+(\lambda (_: T).Prop) with [(TSort _) \Rightarrow False | (TLRef _)
+\Rightarrow False | (THead k _ _) \Rightarrow (match k return (\lambda (_:
+K).Prop) with [(Bind _) \Rightarrow False | (Flat f) \Rightarrow (match f
+return (\lambda (_: F).Prop) with [Appl \Rightarrow True | Cast \Rightarrow
+False])])])) I (THead (Flat Cast) u0 t4) H0) in (False_ind (ex2 T (\lambda
+(t: T).(pr0 (THead (Bind Abbr) v2 t3) t)) (\lambda (t: T).(pr0 t2 t)))
+H1)))]) in (H1 (refl_equal T (THead (Flat Cast) u0 t4)))))) t5 (sym_eq T t5
+t2 H9))) t H7 H8 H6)))]) in (H9 (refl_equal T t) (refl_equal T t2))))) t1
+H6)) t H4 H5 H2 H3))) | (pr0_upsilon b H2 v1 v2 H3 u1 u2 H4 t0 t3 H5)
+\Rightarrow (\lambda (H6: (eq T (THead (Flat Appl) v1 (THead (Bind b) u1 t0))
+t)).(\lambda (H7: (eq T (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O
+v2) t3)) t1)).(eq_ind T (THead (Flat Appl) v1 (THead (Bind b) u1 t0))
+(\lambda (_: T).((eq T (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O
+v2) t3)) t1) \to ((not (eq B b Abst)) \to ((pr0 v1 v2) \to ((pr0 u1 u2) \to
+((pr0 t0 t3) \to (ex2 T (\lambda (t2: T).(pr0 t1 t2)) (\lambda (t1: T).(pr0
+t2 t1))))))))) (\lambda (H8: (eq T (THead (Bind b) u2 (THead (Flat Appl)
+(lift (S O) O v2) t3)) t1)).(eq_ind T (THead (Bind b) u2 (THead (Flat Appl)
+(lift (S O) O v2) t3)) (\lambda (t: T).((not (eq B b Abst)) \to ((pr0 v1 v2)
+\to ((pr0 u1 u2) \to ((pr0 t0 t3) \to (ex2 T (\lambda (t1: T).(pr0 t t1))
+(\lambda (t1: T).(pr0 t2 t1)))))))) (\lambda (H9: (not (eq B b
+Abst))).(\lambda (H10: (pr0 v1 v2)).(\lambda (H11: (pr0 u1 u2)).(\lambda
+(H12: (pr0 t0 t3)).(let H13 \def (match H1 return (\lambda (t0: T).(\lambda
+(t1: T).(\lambda (_: (pr0 t0 t1)).((eq T t0 t) \to ((eq T t1 t2) \to (ex2 T
+(\lambda (t: T).(pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2)
+t3)) t)) (\lambda (t: T).(pr0 t2 t)))))))) with [(pr0_refl t4) \Rightarrow
+(\lambda (H8: (eq T t4 t)).(\lambda (H13: (eq T t4 t2)).(eq_ind T t (\lambda
+(t: T).((eq T t t2) \to (ex2 T (\lambda (t0: T).(pr0 (THead (Bind b) u2
+(THead (Flat Appl) (lift (S O) O v2) t3)) t0)) (\lambda (t0: T).(pr0 t2
+t0))))) (\lambda (H14: (eq T t t2)).(eq_ind T t2 (\lambda (_: T).(ex2 T
+(\lambda (t0: T).(pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2)
+t3)) t0)) (\lambda (t0: T).(pr0 t2 t0)))) (let H0 \def (eq_ind_r T t (\lambda
+(t: T).(eq T t t2)) H14 (THead (Flat Appl) v1 (THead (Bind b) u1 t0)) H6) in
+(eq_ind T (THead (Flat Appl) v1 (THead (Bind b) u1 t0)) (\lambda (t: T).(ex2
+T (\lambda (t0: T).(pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O
+v2) t3)) t0)) (\lambda (t0: T).(pr0 t t0)))) (let H1 \def (eq_ind_r T t
+(\lambda (t: T).(eq T t4 t)) H8 (THead (Flat Appl) v1 (THead (Bind b) u1 t0))
+H6) in (let H2 \def (eq_ind_r T t (\lambda (t: T).(\forall (v: T).((tlt v t)
+\to (\forall (t1: T).((pr0 v t1) \to (\forall (t2: T).((pr0 v t2) \to (ex2 T
+(\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 t2 t0)))))))))) H (THead
+(Flat Appl) v1 (THead (Bind b) u1 t0)) H6) in (ex2_sym T (pr0 (THead (Flat
+Appl) v1 (THead (Bind b) u1 t0))) (pr0 (THead (Bind b) u2 (THead (Flat Appl)
+(lift (S O) O v2) t3))) (pr0_confluence__pr0_cong_upsilon_refl b H9 u1 u2 H11
+t0 t3 H12 v1 v2 v2 H10 (pr0_refl v2))))) t2 H0)) t (sym_eq T t t2 H14))) t4
+(sym_eq T t4 t H8) H13))) | (pr0_comp u0 u3 H8 t4 t5 H9 k) \Rightarrow
+(\lambda (H13: (eq T (THead k u0 t4) t)).(\lambda (H14: (eq T (THead k u3 t5)
+t2)).(eq_ind T (THead k u0 t4) (\lambda (_: T).((eq T (THead k u3 t5) t2) \to
+((pr0 u0 u3) \to ((pr0 t4 t5) \to (ex2 T (\lambda (t0: T).(pr0 (THead (Bind
+b) u2 (THead (Flat Appl) (lift (S O) O v2) t3)) t0)) (\lambda (t0: T).(pr0 t2
+t0))))))) (\lambda (H15: (eq T (THead k u3 t5) t2)).(eq_ind T (THead k u3 t5)
+(\lambda (t: T).((pr0 u0 u3) \to ((pr0 t4 t5) \to (ex2 T (\lambda (t0:
+T).(pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t3)) t0))
+(\lambda (t0: T).(pr0 t t0)))))) (\lambda (H16: (pr0 u0 u3)).(\lambda (H17:
+(pr0 t4 t5)).(let H0 \def (eq_ind_r T t (\lambda (t: T).(eq T (THead (Flat
+Appl) v1 (THead (Bind b) u1 t0)) t)) H6 (THead k u0 t4) H13) in (let H1 \def
+(match H0 return (\lambda (t: T).(\lambda (_: (eq ? ? t)).((eq T t (THead k
+u0 t4)) \to (ex2 T (\lambda (t0: T).(pr0 (THead (Bind b) u2 (THead (Flat
+Appl) (lift (S O) O v2) t3)) t0)) (\lambda (t0: T).(pr0 (THead k u3 t5)
+t0)))))) with [refl_equal \Rightarrow (\lambda (H0: (eq T (THead (Flat Appl)
+v1 (THead (Bind b) u1 t0)) (THead k u0 t4))).(let H1 \def (f_equal T T
+(\lambda (e: T).(match e return (\lambda (_: T).T) with [(TSort _)
+\Rightarrow (THead (Bind b) u1 t0) | (TLRef _) \Rightarrow (THead (Bind b) u1
+t0) | (THead _ _ t) \Rightarrow t])) (THead (Flat Appl) v1 (THead (Bind b) u1
+t0)) (THead k u0 t4) H0) in ((let H2 \def (f_equal T T (\lambda (e: T).(match
+e return (\lambda (_: T).T) with [(TSort _) \Rightarrow v1 | (TLRef _)
+\Rightarrow v1 | (THead _ t _) \Rightarrow t])) (THead (Flat Appl) v1 (THead
+(Bind b) u1 t0)) (THead k u0 t4) H0) in ((let H3 \def (f_equal T K (\lambda
+(e: T).(match e return (\lambda (_: T).K) with [(TSort _) \Rightarrow (Flat
+Appl) | (TLRef _) \Rightarrow (Flat Appl) | (THead k _ _) \Rightarrow k]))
+(THead (Flat Appl) v1 (THead (Bind b) u1 t0)) (THead k u0 t4) H0) in (eq_ind
+K (Flat Appl) (\lambda (k: K).((eq T v1 u0) \to ((eq T (THead (Bind b) u1 t0)
+t4) \to (ex2 T (\lambda (t: T).(pr0 (THead (Bind b) u2 (THead (Flat Appl)
+(lift (S O) O v2) t3)) t)) (\lambda (t: T).(pr0 (THead k u3 t5) t))))))
+(\lambda (H14: (eq T v1 u0)).(eq_ind T u0 (\lambda (_: T).((eq T (THead (Bind
+b) u1 t0) t4) \to (ex2 T (\lambda (t0: T).(pr0 (THead (Bind b) u2 (THead
+(Flat Appl) (lift (S O) O v2) t3)) t0)) (\lambda (t0: T).(pr0 (THead (Flat
+Appl) u3 t5) t0))))) (\lambda (H15: (eq T (THead (Bind b) u1 t0) t4)).(eq_ind
+T (THead (Bind b) u1 t0) (\lambda (_: T).(ex2 T (\lambda (t0: T).(pr0 (THead
+(Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t3)) t0)) (\lambda (t0:
+T).(pr0 (THead (Flat Appl) u3 t5) t0)))) (let H4 \def (eq_ind_r K k (\lambda
+(k: K).(eq T (THead k u0 t4) t)) H13 (Flat Appl) H3) in (let H5 \def
+(eq_ind_r T t4 (\lambda (t: T).(pr0 t t5)) H17 (THead (Bind b) u1 t0) H15) in
+(let H6 \def (match H5 return (\lambda (t: T).(\lambda (t1: T).(\lambda (_:
+(pr0 t t1)).((eq T t (THead (Bind b) u1 t0)) \to ((eq T t1 t5) \to (ex2 T
+(\lambda (t0: T).(pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2)
+t3)) t0)) (\lambda (t0: T).(pr0 (THead (Flat Appl) u3 t5) t0)))))))) with
+[(pr0_refl t2) \Rightarrow (\lambda (H0: (eq T t2 (THead (Bind b) u1
+t0))).(\lambda (H1: (eq T t2 t5)).(eq_ind T (THead (Bind b) u1 t0) (\lambda
+(t: T).((eq T t t5) \to (ex2 T (\lambda (t0: T).(pr0 (THead (Bind b) u2
+(THead (Flat Appl) (lift (S O) O v2) t3)) t0)) (\lambda (t0: T).(pr0 (THead
+(Flat Appl) u3 t5) t0))))) (\lambda (H2: (eq T (THead (Bind b) u1 t0)
+t5)).(eq_ind T (THead (Bind b) u1 t0) (\lambda (t: T).(ex2 T (\lambda (t0:
+T).(pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t3)) t0))
+(\lambda (t0: T).(pr0 (THead (Flat Appl) u3 t) t0)))) (let H3 \def (eq_ind_r
+T t4 (\lambda (t0: T).(eq T (THead (Flat Appl) u0 t0) t)) H4 (THead (Bind b)
+u1 t0) H15) in (let H4 \def (eq_ind_r T t (\lambda (t: T).(\forall (v:
+T).((tlt v t) \to (\forall (t1: T).((pr0 v t1) \to (\forall (t2: T).((pr0 v
+t2) \to (ex2 T (\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 t2
+t0)))))))))) H (THead (Flat Appl) u0 (THead (Bind b) u1 t0)) H3) in (let H5
+\def (eq_ind T v1 (\lambda (t: T).(pr0 t v2)) H10 u0 H14) in (ex2_ind T
+(\lambda (t: T).(pr0 v2 t)) (\lambda (t: T).(pr0 u3 t)) (ex2 T (\lambda (t:
+T).(pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t3)) t))
+(\lambda (t: T).(pr0 (THead (Flat Appl) u3 (THead (Bind b) u1 t0)) t)))
+(\lambda (x: T).(\lambda (H6: (pr0 v2 x)).(\lambda (H7: (pr0 u3 x)).(ex2_sym
+T (pr0 (THead (Flat Appl) u3 (THead (Bind b) u1 t0))) (pr0 (THead (Bind b) u2
+(THead (Flat Appl) (lift (S O) O v2) t3)))
+(pr0_confluence__pr0_cong_upsilon_refl b H9 u1 u2 H11 t0 t3 H12 u3 v2 x H7
+H6))))) (H4 u0 (tlt_head_sx (Flat Appl) u0 (THead (Bind b) u1 t0)) v2 H5 u3
+H16))))) t5 H2)) t2 (sym_eq T t2 (THead (Bind b) u1 t0) H0) H1))) | (pr0_comp
+u4 u5 H0 t2 t6 H1 k) \Rightarrow (\lambda (H6: (eq T (THead k u4 t2) (THead
+(Bind b) u1 t0))).(\lambda (H13: (eq T (THead k u5 t6) t5)).((let H2 \def
+(f_equal T T (\lambda (e: T).(match e return (\lambda (_: T).T) with [(TSort
+_) \Rightarrow t2 | (TLRef _) \Rightarrow t2 | (THead _ _ t) \Rightarrow t]))
+(THead k u4 t2) (THead (Bind b) u1 t0) H6) in ((let H3 \def (f_equal T T
+(\lambda (e: T).(match e return (\lambda (_: T).T) with [(TSort _)
+\Rightarrow u4 | (TLRef _) \Rightarrow u4 | (THead _ t _) \Rightarrow t]))
+(THead k u4 t2) (THead (Bind b) u1 t0) H6) in ((let H5 \def (f_equal T K
+(\lambda (e: T).(match e return (\lambda (_: T).K) with [(TSort _)
+\Rightarrow k | (TLRef _) \Rightarrow k | (THead k _ _) \Rightarrow k]))
+(THead k u4 t2) (THead (Bind b) u1 t0) H6) in (eq_ind K (Bind b) (\lambda
+(k0: K).((eq T u4 u1) \to ((eq T t2 t0) \to ((eq T (THead k0 u5 t6) t5) \to
+((pr0 u4 u5) \to ((pr0 t2 t6) \to (ex2 T (\lambda (t: T).(pr0 (THead (Bind b)
+u2 (THead (Flat Appl) (lift (S O) O v2) t3)) t)) (\lambda (t: T).(pr0 (THead
+(Flat Appl) u3 t5) t))))))))) (\lambda (H7: (eq T u4 u1)).(eq_ind T u1
+(\lambda (t: T).((eq T t2 t0) \to ((eq T (THead (Bind b) u5 t6) t5) \to ((pr0
+t u5) \to ((pr0 t2 t6) \to (ex2 T (\lambda (t0: T).(pr0 (THead (Bind b) u2
+(THead (Flat Appl) (lift (S O) O v2) t3)) t0)) (\lambda (t0: T).(pr0 (THead
+(Flat Appl) u3 t5) t0)))))))) (\lambda (H17: (eq T t2 t0)).(eq_ind T t0
+(\lambda (t: T).((eq T (THead (Bind b) u5 t6) t5) \to ((pr0 u1 u5) \to ((pr0
+t t6) \to (ex2 T (\lambda (t0: T).(pr0 (THead (Bind b) u2 (THead (Flat Appl)
+(lift (S O) O v2) t3)) t0)) (\lambda (t0: T).(pr0 (THead (Flat Appl) u3 t5)
+t0))))))) (\lambda (H8: (eq T (THead (Bind b) u5 t6) t5)).(eq_ind T (THead
+(Bind b) u5 t6) (\lambda (t: T).((pr0 u1 u5) \to ((pr0 t0 t6) \to (ex2 T
+(\lambda (t0: T).(pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2)
+t3)) t0)) (\lambda (t0: T).(pr0 (THead (Flat Appl) u3 t) t0)))))) (\lambda
+(H18: (pr0 u1 u5)).(\lambda (H19: (pr0 t0 t6)).(let H15 \def (eq_ind_r T t4
+(\lambda (t0: T).(eq T (THead (Flat Appl) u0 t0) t)) H4 (THead (Bind b) u1
+t0) H15) in (let H20 \def (eq_ind_r T t (\lambda (t: T).(\forall (v: T).((tlt
+v t) \to (\forall (t1: T).((pr0 v t1) \to (\forall (t2: T).((pr0 v t2) \to
+(ex2 T (\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 t2 t0)))))))))) H
+(THead (Flat Appl) u0 (THead (Bind b) u1 t0)) H15) in (let H4 \def (eq_ind T
+v1 (\lambda (t: T).(pr0 t v2)) H10 u0 H14) in (ex2_ind T (\lambda (t: T).(pr0
+v2 t)) (\lambda (t: T).(pr0 u3 t)) (ex2 T (\lambda (t: T).(pr0 (THead (Bind
+b) u2 (THead (Flat Appl) (lift (S O) O v2) t3)) t)) (\lambda (t: T).(pr0
+(THead (Flat Appl) u3 (THead (Bind b) u5 t6)) t))) (\lambda (x: T).(\lambda
+(H10: (pr0 v2 x)).(\lambda (H14: (pr0 u3 x)).(ex2_ind T (\lambda (t: T).(pr0
+t6 t)) (\lambda (t: T).(pr0 t3 t)) (ex2 T (\lambda (t: T).(pr0 (THead (Bind
+b) u2 (THead (Flat Appl) (lift (S O) O v2) t3)) t)) (\lambda (t: T).(pr0
+(THead (Flat Appl) u3 (THead (Bind b) u5 t6)) t))) (\lambda (x0: T).(\lambda
+(H12: (pr0 t6 x0)).(\lambda (H16: (pr0 t3 x0)).(ex2_ind T (\lambda (t:
+T).(pr0 u5 t)) (\lambda (t: T).(pr0 u2 t)) (ex2 T (\lambda (t: T).(pr0 (THead
+(Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t3)) t)) (\lambda (t:
+T).(pr0 (THead (Flat Appl) u3 (THead (Bind b) u5 t6)) t))) (\lambda (x1:
+T).(\lambda (H11: (pr0 u5 x1)).(\lambda (H21: (pr0 u2 x1)).(ex2_sym T (pr0
+(THead (Flat Appl) u3 (THead (Bind b) u5 t6))) (pr0 (THead (Bind b) u2 (THead
+(Flat Appl) (lift (S O) O v2) t3))) (pr0_confluence__pr0_cong_upsilon_cong b
+H9 u3 v2 x H14 H10 t6 t3 x0 H12 H16 u5 u2 x1 H11 H21))))) (H20 u1 (tlt_trans
+(THead (Bind b) u1 t0) u1 (THead (Flat Appl) u0 (THead (Bind b) u1 t0))
+(tlt_head_sx (Bind b) u1 t0) (tlt_head_dx (Flat Appl) u0 (THead (Bind b) u1
+t0))) u5 H18 u2 H11))))) (H20 t0 (tlt_trans (THead (Bind b) u1 t0) t0 (THead
+(Flat Appl) u0 (THead (Bind b) u1 t0)) (tlt_head_dx (Bind b) u1 t0)
+(tlt_head_dx (Flat Appl) u0 (THead (Bind b) u1 t0))) t6 H19 t3 H12))))) (H20
+u0 (tlt_head_sx (Flat Appl) u0 (THead (Bind b) u1 t0)) v2 H4 u3 H16))))))) t5
+H8)) t2 (sym_eq T t2 t0 H17))) u4 (sym_eq T u4 u1 H7))) k (sym_eq K k (Bind
+b) H5))) H3)) H2)) H13 H0 H1))) | (pr0_beta u v0 v3 H0 t2 t6 H1) \Rightarrow
+(\lambda (H6: (eq T (THead (Flat Appl) v0 (THead (Bind Abst) u t2)) (THead
+(Bind b) u1 t0))).(\lambda (H13: (eq T (THead (Bind Abbr) v3 t6) t5)).((let
+H2 \def (eq_ind T (THead (Flat Appl) v0 (THead (Bind Abst) u t2)) (\lambda
+(e: T).(match e return (\lambda (_: T).Prop) with [(TSort _) \Rightarrow
+False | (TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow (match k
+return (\lambda (_: K).Prop) with [(Bind _) \Rightarrow False | (Flat _)
+\Rightarrow True])])) I (THead (Bind b) u1 t0) H6) in (False_ind ((eq T
+(THead (Bind Abbr) v3 t6) t5) \to ((pr0 v0 v3) \to ((pr0 t2 t6) \to (ex2 T
+(\lambda (t: T).(pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2)
+t3)) t)) (\lambda (t: T).(pr0 (THead (Flat Appl) u3 t5) t)))))) H2)) H13 H0
+H1))) | (pr0_upsilon b0 H0 v0 v3 H1 u4 u5 H6 t2 t6 H13) \Rightarrow (\lambda
+(H14: (eq T (THead (Flat Appl) v0 (THead (Bind b0) u4 t2)) (THead (Bind b) u1
+t0))).(\lambda (H15: (eq T (THead (Bind b0) u5 (THead (Flat Appl) (lift (S O)
+O v3) t6)) t5)).((let H2 \def (eq_ind T (THead (Flat Appl) v0 (THead (Bind
+b0) u4 t2)) (\lambda (e: T).(match e return (\lambda (_: T).Prop) with
+[(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _)
+\Rightarrow (match k return (\lambda (_: K).Prop) with [(Bind _) \Rightarrow
+False | (Flat _) \Rightarrow True])])) I (THead (Bind b) u1 t0) H14) in
+(False_ind ((eq T (THead (Bind b0) u5 (THead (Flat Appl) (lift (S O) O v3)
+t6)) t5) \to ((not (eq B b0 Abst)) \to ((pr0 v0 v3) \to ((pr0 u4 u5) \to
+((pr0 t2 t6) \to (ex2 T (\lambda (t: T).(pr0 (THead (Bind b) u2 (THead (Flat
+Appl) (lift (S O) O v2) t3)) t)) (\lambda (t: T).(pr0 (THead (Flat Appl) u3
+t5) t)))))))) H2)) H15 H0 H1 H6 H13))) | (pr0_delta u4 u5 H0 t2 t6 H1 w H6)
+\Rightarrow (\lambda (H13: (eq T (THead (Bind Abbr) u4 t2) (THead (Bind b) u1
+t0))).(\lambda (H17: (eq T (THead (Bind Abbr) u5 w) t5)).((let H2 \def
+(f_equal T T (\lambda (e: T).(match e return (\lambda (_: T).T) with [(TSort
+_) \Rightarrow t2 | (TLRef _) \Rightarrow t2 | (THead _ _ t) \Rightarrow t]))
+(THead (Bind Abbr) u4 t2) (THead (Bind b) u1 t0) H13) in ((let H3 \def
+(f_equal T T (\lambda (e: T).(match e return (\lambda (_: T).T) with [(TSort
+_) \Rightarrow u4 | (TLRef _) \Rightarrow u4 | (THead _ t _) \Rightarrow t]))
+(THead (Bind Abbr) u4 t2) (THead (Bind b) u1 t0) H13) in ((let H5 \def
+(f_equal T B (\lambda (e: T).(match e return (\lambda (_: T).B) with [(TSort
+_) \Rightarrow Abbr | (TLRef _) \Rightarrow Abbr | (THead k _ _) \Rightarrow
+(match k return (\lambda (_: K).B) with [(Bind b) \Rightarrow b | (Flat _)
+\Rightarrow Abbr])])) (THead (Bind Abbr) u4 t2) (THead (Bind b) u1 t0) H13)
+in (eq_ind B Abbr (\lambda (b: B).((eq T u4 u1) \to ((eq T t2 t0) \to ((eq T
+(THead (Bind Abbr) u5 w) t5) \to ((pr0 u4 u5) \to ((pr0 t2 t6) \to ((subst0 O
+u5 t6 w) \to (ex2 T (\lambda (t: T).(pr0 (THead (Bind b) u2 (THead (Flat
+Appl) (lift (S O) O v2) t3)) t)) (\lambda (t: T).(pr0 (THead (Flat Appl) u3
+t5) t)))))))))) (\lambda (H7: (eq T u4 u1)).(eq_ind T u1 (\lambda (t: T).((eq
+T t2 t0) \to ((eq T (THead (Bind Abbr) u5 w) t5) \to ((pr0 t u5) \to ((pr0 t2
+t6) \to ((subst0 O u5 t6 w) \to (ex2 T (\lambda (t0: T).(pr0 (THead (Bind
+Abbr) u2 (THead (Flat Appl) (lift (S O) O v2) t3)) t0)) (\lambda (t0: T).(pr0
+(THead (Flat Appl) u3 t5) t0))))))))) (\lambda (H18: (eq T t2 t0)).(eq_ind T
+t0 (\lambda (t: T).((eq T (THead (Bind Abbr) u5 w) t5) \to ((pr0 u1 u5) \to
+((pr0 t t6) \to ((subst0 O u5 t6 w) \to (ex2 T (\lambda (t0: T).(pr0 (THead
+(Bind Abbr) u2 (THead (Flat Appl) (lift (S O) O v2) t3)) t0)) (\lambda (t0:
+T).(pr0 (THead (Flat Appl) u3 t5) t0)))))))) (\lambda (H19: (eq T (THead
+(Bind Abbr) u5 w) t5)).(eq_ind T (THead (Bind Abbr) u5 w) (\lambda (t:
+T).((pr0 u1 u5) \to ((pr0 t0 t6) \to ((subst0 O u5 t6 w) \to (ex2 T (\lambda
+(t0: T).(pr0 (THead (Bind Abbr) u2 (THead (Flat Appl) (lift (S O) O v2) t3))
+t0)) (\lambda (t0: T).(pr0 (THead (Flat Appl) u3 t) t0))))))) (\lambda (H20:
+(pr0 u1 u5)).(\lambda (H21: (pr0 t0 t6)).(\lambda (H22: (subst0 O u5 t6
+w)).(let H15 \def (eq_ind_r B b (\lambda (b: B).(eq T (THead (Bind b) u1 t0)
+t4)) H15 Abbr H5) in (let H9 \def (eq_ind_r B b (\lambda (b: B).(not (eq B b
+Abst))) H9 Abbr H5) in (let H23 \def (eq_ind_r B b (\lambda (b: B).(eq T
+(THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t3)) t1)) H8 Abbr H5)
+in (let H4 \def (eq_ind_r T t4 (\lambda (t0: T).(eq T (THead (Flat Appl) u0
+t0) t)) H4 (THead (Bind Abbr) u1 t0) H15) in (let H8 \def (eq_ind_r T t
+(\lambda (t: T).(\forall (v: T).((tlt v t) \to (\forall (t1: T).((pr0 v t1)
+\to (\forall (t2: T).((pr0 v t2) \to (ex2 T (\lambda (t0: T).(pr0 t1 t0))
+(\lambda (t0: T).(pr0 t2 t0)))))))))) H (THead (Flat Appl) u0 (THead (Bind
+Abbr) u1 t0)) H4) in (let H10 \def (eq_ind T v1 (\lambda (t: T).(pr0 t v2))
+H10 u0 H14) in (ex2_ind T (\lambda (t: T).(pr0 v2 t)) (\lambda (t: T).(pr0 u3
+t)) (ex2 T (\lambda (t: T).(pr0 (THead (Bind Abbr) u2 (THead (Flat Appl)
+(lift (S O) O v2) t3)) t)) (\lambda (t: T).(pr0 (THead (Flat Appl) u3 (THead
+(Bind Abbr) u5 w)) t))) (\lambda (x: T).(\lambda (H14: (pr0 v2 x)).(\lambda
+(H16: (pr0 u3 x)).(ex2_ind T (\lambda (t: T).(pr0 t6 t)) (\lambda (t: T).(pr0
+t3 t)) (ex2 T (\lambda (t: T).(pr0 (THead (Bind Abbr) u2 (THead (Flat Appl)
+(lift (S O) O v2) t3)) t)) (\lambda (t: T).(pr0 (THead (Flat Appl) u3 (THead
+(Bind Abbr) u5 w)) t))) (\lambda (x0: T).(\lambda (H12: (pr0 t6 x0)).(\lambda
+(H24: (pr0 t3 x0)).(ex2_ind T (\lambda (t: T).(pr0 u5 t)) (\lambda (t:
+T).(pr0 u2 t)) (ex2 T (\lambda (t: T).(pr0 (THead (Bind Abbr) u2 (THead (Flat
+Appl) (lift (S O) O v2) t3)) t)) (\lambda (t: T).(pr0 (THead (Flat Appl) u3
+(THead (Bind Abbr) u5 w)) t))) (\lambda (x1: T).(\lambda (H11: (pr0 u5
+x1)).(\lambda (H25: (pr0 u2 x1)).(ex2_sym T (pr0 (THead (Flat Appl) u3 (THead
+(Bind Abbr) u5 w))) (pr0 (THead (Bind Abbr) u2 (THead (Flat Appl) (lift (S O)
+O v2) t3))) (pr0_confluence__pr0_cong_upsilon_delta H9 u5 t6 w H22 u3 v2 x
+H16 H14 t3 x0 H12 H24 u2 x1 H11 H25))))) (H8 u1 (tlt_trans (THead (Bind Abbr)
+u1 t0) u1 (THead (Flat Appl) u0 (THead (Bind Abbr) u1 t0)) (tlt_head_sx (Bind
+Abbr) u1 t0) (tlt_head_dx (Flat Appl) u0 (THead (Bind Abbr) u1 t0))) u5 H20
+u2 H11))))) (H8 t0 (tlt_trans (THead (Bind Abbr) u1 t0) t0 (THead (Flat Appl)
+u0 (THead (Bind Abbr) u1 t0)) (tlt_head_dx (Bind Abbr) u1 t0) (tlt_head_dx
+(Flat Appl) u0 (THead (Bind Abbr) u1 t0))) t6 H21 t3 H12))))) (H8 u0
+(tlt_head_sx (Flat Appl) u0 (THead (Bind Abbr) u1 t0)) v2 H10 u3
+H16))))))))))) t5 H19)) t2 (sym_eq T t2 t0 H18))) u4 (sym_eq T u4 u1 H7))) b
+H5)) H3)) H2)) H17 H0 H1 H6))) | (pr0_zeta b0 H0 t2 t6 H1 u) \Rightarrow
+(\lambda (H6: (eq T (THead (Bind b0) u (lift (S O) O t2)) (THead (Bind b) u1
+t0))).(\lambda (H13: (eq T t6 t5)).((let H2 \def (f_equal T T (\lambda (e:
+T).(match e return (\lambda (_: T).T) with [(TSort _) \Rightarrow ((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 (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))]) in lref_map)
+(\lambda (x: nat).(plus x (S O))) O t2) | (TLRef _) \Rightarrow ((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 (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))]) in lref_map)
+(\lambda (x: nat).(plus x (S O))) O t2) | (THead _ _ t) \Rightarrow t]))
+(THead (Bind b0) u (lift (S O) O t2)) (THead (Bind b) u1 t0) H6) in ((let H3
+\def (f_equal T T (\lambda (e: T).(match e return (\lambda (_: T).T) with
+[(TSort _) \Rightarrow u | (TLRef _) \Rightarrow u | (THead _ t _)
+\Rightarrow t])) (THead (Bind b0) u (lift (S O) O t2)) (THead (Bind b) u1 t0)
+H6) in ((let H5 \def (f_equal T B (\lambda (e: T).(match e return (\lambda
+(_: T).B) with [(TSort _) \Rightarrow b0 | (TLRef _) \Rightarrow b0 | (THead
+k _ _) \Rightarrow (match k return (\lambda (_: K).B) with [(Bind b)
+\Rightarrow b | (Flat _) \Rightarrow b0])])) (THead (Bind b0) u (lift (S O) O
+t2)) (THead (Bind b) u1 t0) H6) in (eq_ind B b (\lambda (b1: B).((eq T u u1)
+\to ((eq T (lift (S O) O t2) t0) \to ((eq T t6 t5) \to ((not (eq B b1 Abst))
+\to ((pr0 t2 t6) \to (ex2 T (\lambda (t: T).(pr0 (THead (Bind b) u2 (THead
+(Flat Appl) (lift (S O) O v2) t3)) t)) (\lambda (t: T).(pr0 (THead (Flat
+Appl) u3 t5) t))))))))) (\lambda (H7: (eq T u u1)).(eq_ind T u1 (\lambda (_:
+T).((eq T (lift (S O) O t2) t0) \to ((eq T t6 t5) \to ((not (eq B b Abst))
+\to ((pr0 t2 t6) \to (ex2 T (\lambda (t0: T).(pr0 (THead (Bind b) u2 (THead
+(Flat Appl) (lift (S O) O v2) t3)) t0)) (\lambda (t0: T).(pr0 (THead (Flat
+Appl) u3 t5) t0)))))))) (\lambda (H17: (eq T (lift (S O) O t2) t0)).(eq_ind T
+(lift (S O) O t2) (\lambda (_: T).((eq T t6 t5) \to ((not (eq B b Abst)) \to
+((pr0 t2 t6) \to (ex2 T (\lambda (t0: T).(pr0 (THead (Bind b) u2 (THead (Flat
+Appl) (lift (S O) O v2) t3)) t0)) (\lambda (t0: T).(pr0 (THead (Flat Appl) u3
+t5) t0))))))) (\lambda (H8: (eq T t6 t5)).(eq_ind T t5 (\lambda (t: T).((not
+(eq B b Abst)) \to ((pr0 t2 t) \to (ex2 T (\lambda (t0: T).(pr0 (THead (Bind
+b) u2 (THead (Flat Appl) (lift (S O) O v2) t3)) t0)) (\lambda (t0: T).(pr0
+(THead (Flat Appl) u3 t5) t0)))))) (\lambda (H18: (not (eq B b
+Abst))).(\lambda (H19: (pr0 t2 t5)).(let H9 \def (eq_ind_r T t0 (\lambda (t:
+T).(eq T (THead (Bind b) u1 t) t4)) H15 (lift (S O) O t2) H17) in (let H15
+\def (eq_ind_r T t4 (\lambda (t0: T).(eq T (THead (Flat Appl) u0 t0) t)) H4
+(THead (Bind b) u1 (lift (S O) O t2)) H9) in (let H20 \def (eq_ind_r T t
+(\lambda (t: T).(\forall (v: T).((tlt v t) \to (\forall (t1: T).((pr0 v t1)
+\to (\forall (t2: T).((pr0 v t2) \to (ex2 T (\lambda (t0: T).(pr0 t1 t0))
+(\lambda (t0: T).(pr0 t2 t0)))))))))) H (THead (Flat Appl) u0 (THead (Bind b)
+u1 (lift (S O) O t2))) H15) in (let H12 \def (eq_ind_r T t0 (\lambda (t:
+T).(pr0 t t3)) H12 (lift (S O) O t2) H17) in (ex2_ind T (\lambda (t4: T).(eq
+T t3 (lift (S O) O t4))) (\lambda (t3: T).(pr0 t2 t3)) (ex2 T (\lambda (t:
+T).(pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t3)) t))
+(\lambda (t: T).(pr0 (THead (Flat Appl) u3 t5) t))) (\lambda (x: T).(\lambda
+(H21: (eq T t3 (lift (S O) O x))).(\lambda (H22: (pr0 t2 x)).(eq_ind_r T
+(lift (S O) O x) (\lambda (t: T).(ex2 T (\lambda (t0: T).(pr0 (THead (Bind b)
+u2 (THead (Flat Appl) (lift (S O) O v2) t)) t0)) (\lambda (t0: T).(pr0 (THead
+(Flat Appl) u3 t5) t0)))) (let H4 \def (eq_ind T v1 (\lambda (t: T).(pr0 t
+v2)) H10 u0 H14) in (ex2_ind T (\lambda (t: T).(pr0 v2 t)) (\lambda (t:
+T).(pr0 u3 t)) (ex2 T (\lambda (t: T).(pr0 (THead (Bind b) u2 (THead (Flat
+Appl) (lift (S O) O v2) (lift (S O) O x))) t)) (\lambda (t: T).(pr0 (THead
+(Flat Appl) u3 t5) t))) (\lambda (x0: T).(\lambda (H10: (pr0 v2 x0)).(\lambda
+(H14: (pr0 u3 x0)).(ex2_ind T (\lambda (t: T).(pr0 x t)) (\lambda (t: T).(pr0
+t5 t)) (ex2 T (\lambda (t: T).(pr0 (THead (Bind b) u2 (THead (Flat Appl)
+(lift (S O) O v2) (lift (S O) O x))) t)) (\lambda (t: T).(pr0 (THead (Flat
+Appl) u3 t5) t))) (\lambda (x1: T).(\lambda (H16: (pr0 x x1)).(\lambda (H23:
+(pr0 t5 x1)).(ex2_sym T (pr0 (THead (Flat Appl) u3 t5)) (pr0 (THead (Bind b)
+u2 (THead (Flat Appl) (lift (S O) O v2) (lift (S O) O x))))
+(pr0_confluence__pr0_cong_upsilon_zeta b H18 u1 u2 H11 u3 v2 x0 H14 H10 x t5
+x1 H16 H23))))) (H20 t2 (tlt_trans (THead (Bind b) u1 (lift (S O) O t2)) t2
+(THead (Flat Appl) u0 (THead (Bind b) u1 (lift (S O) O t2))) (lift_tlt_dx
+(Bind b) u1 t2 (S O) O) (tlt_head_dx (Flat Appl) u0 (THead (Bind b) u1 (lift
+(S O) O t2)))) x H22 t5 H19))))) (H20 u0 (tlt_head_sx (Flat Appl) u0 (THead
+(Bind b) u1 (lift (S O) O t2))) v2 H4 u3 H16))) t3 H21)))) (pr0_gen_lift t2
+t3 (S O) O H12)))))))) t6 (sym_eq T t6 t5 H8))) t0 H17)) u (sym_eq T u u1
+H7))) b0 (sym_eq B b0 b H5))) H3)) H2)) H13 H0 H1))) | (pr0_epsilon t2 t6 H0
+u) \Rightarrow (\lambda (H1: (eq T (THead (Flat Cast) u t2) (THead (Bind b)
+u1 t0))).(\lambda (H6: (eq T t6 t5)).((let H2 \def (eq_ind T (THead (Flat
+Cast) u t2) (\lambda (e: T).(match e return (\lambda (_: T).Prop) with
+[(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _)
+\Rightarrow (match k return (\lambda (_: K).Prop) with [(Bind _) \Rightarrow
+False | (Flat _) \Rightarrow True])])) I (THead (Bind b) u1 t0) H1) in
+(False_ind ((eq T t6 t5) \to ((pr0 t2 t6) \to (ex2 T (\lambda (t: T).(pr0
+(THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t3)) t)) (\lambda (t:
+T).(pr0 (THead (Flat Appl) u3 t5) t))))) H2)) H6 H0)))]) in (H6 (refl_equal T
+(THead (Bind b) u1 t0)) (refl_equal T t5))))) t4 H15)) v1 (sym_eq T v1 u0
+H14))) k H3)) H2)) H1)))]) in (H1 (refl_equal T (THead k u0 t4))))))) t2
+H15)) t H13 H14 H8 H9))) | (pr0_beta u v0 v3 H8 t4 t5 H9) \Rightarrow
+(\lambda (H10: (eq T (THead (Flat Appl) v0 (THead (Bind Abst) u t4))
+t)).(\lambda (H13: (eq T (THead (Bind Abbr) v3 t5) t2)).(eq_ind T (THead
+(Flat Appl) v0 (THead (Bind Abst) u t4)) (\lambda (_: T).((eq T (THead (Bind
+Abbr) v3 t5) t2) \to ((pr0 v0 v3) \to ((pr0 t4 t5) \to (ex2 T (\lambda (t0:
+T).(pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t3)) t0))
+(\lambda (t0: T).(pr0 t2 t0))))))) (\lambda (H14: (eq T (THead (Bind Abbr) v3
+t5) t2)).(eq_ind T (THead (Bind Abbr) v3 t5) (\lambda (t: T).((pr0 v0 v3) \to
+((pr0 t4 t5) \to (ex2 T (\lambda (t0: T).(pr0 (THead (Bind b) u2 (THead (Flat
+Appl) (lift (S O) O v2) t3)) t0)) (\lambda (t0: T).(pr0 t t0)))))) (\lambda
+(_: (pr0 v0 v3)).(\lambda (_: (pr0 t4 t5)).(let H0 \def (eq_ind_r T t
+(\lambda (t: T).(eq T (THead (Flat Appl) v1 (THead (Bind b) u1 t0)) t)) H6
+(THead (Flat Appl) v0 (THead (Bind Abst) u t4)) H10) in (let H1 \def (match
+H0 return (\lambda (t: T).(\lambda (_: (eq ? ? t)).((eq T t (THead (Flat
+Appl) v0 (THead (Bind Abst) u t4))) \to (ex2 T (\lambda (t0: T).(pr0 (THead
+(Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t3)) t0)) (\lambda (t0:
+T).(pr0 (THead (Bind Abbr) v3 t5) t0)))))) with [refl_equal \Rightarrow
+(\lambda (H0: (eq T (THead (Flat Appl) v1 (THead (Bind b) u1 t0)) (THead
+(Flat Appl) v0 (THead (Bind Abst) u t4)))).(let H1 \def (f_equal T T (\lambda
+(e: T).(match e return (\lambda (_: T).T) with [(TSort _) \Rightarrow t0 |
+(TLRef _) \Rightarrow t0 | (THead _ _ t) \Rightarrow (match t return (\lambda
+(_: T).T) with [(TSort _) \Rightarrow t0 | (TLRef _) \Rightarrow t0 | (THead
+_ _ t0) \Rightarrow t0])])) (THead (Flat Appl) v1 (THead (Bind b) u1 t0))
+(THead (Flat Appl) v0 (THead (Bind Abst) u t4)) H0) in ((let H2 \def (f_equal
+T T (\lambda (e: T).(match e return (\lambda (_: T).T) with [(TSort _)
+\Rightarrow u1 | (TLRef _) \Rightarrow u1 | (THead _ _ t) \Rightarrow (match
+t return (\lambda (_: T).T) with [(TSort _) \Rightarrow u1 | (TLRef _)
+\Rightarrow u1 | (THead _ t0 _) \Rightarrow t0])])) (THead (Flat Appl) v1
+(THead (Bind b) u1 t0)) (THead (Flat Appl) v0 (THead (Bind Abst) u t4)) H0)
+in ((let H3 \def (f_equal T B (\lambda (e: T).(match e return (\lambda (_:
+T).B) with [(TSort _) \Rightarrow b | (TLRef _) \Rightarrow b | (THead _ _ t)
+\Rightarrow (match t return (\lambda (_: T).B) with [(TSort _) \Rightarrow b
+| (TLRef _) \Rightarrow b | (THead k _ _) \Rightarrow (match k return
+(\lambda (_: K).B) with [(Bind b) \Rightarrow b | (Flat _) \Rightarrow
+b])])])) (THead (Flat Appl) v1 (THead (Bind b) u1 t0)) (THead (Flat Appl) v0
+(THead (Bind Abst) u t4)) H0) in ((let H4 \def (f_equal T T (\lambda (e:
+T).(match e return (\lambda (_: T).T) with [(TSort _) \Rightarrow v1 | (TLRef
+_) \Rightarrow v1 | (THead _ t _) \Rightarrow t])) (THead (Flat Appl) v1
+(THead (Bind b) u1 t0)) (THead (Flat Appl) v0 (THead (Bind Abst) u t4)) H0)
+in (eq_ind T v0 (\lambda (_: T).((eq B b Abst) \to ((eq T u1 u) \to ((eq T t0
+t4) \to (ex2 T (\lambda (t0: T).(pr0 (THead (Bind b) u2 (THead (Flat Appl)
+(lift (S O) O v2) t3)) t0)) (\lambda (t0: T).(pr0 (THead (Bind Abbr) v3 t5)
+t0))))))) (\lambda (H13: (eq B b Abst)).(eq_ind B Abst (\lambda (b: B).((eq T
+u1 u) \to ((eq T t0 t4) \to (ex2 T (\lambda (t: T).(pr0 (THead (Bind b) u2
+(THead (Flat Appl) (lift (S O) O v2) t3)) t)) (\lambda (t: T).(pr0 (THead
+(Bind Abbr) v3 t5) t)))))) (\lambda (H14: (eq T u1 u)).(eq_ind T u (\lambda
+(_: T).((eq T t0 t4) \to (ex2 T (\lambda (t0: T).(pr0 (THead (Bind Abst) u2
+(THead (Flat Appl) (lift (S O) O v2) t3)) t0)) (\lambda (t0: T).(pr0 (THead
+(Bind Abbr) v3 t5) t0))))) (\lambda (H15: (eq T t0 t4)).(eq_ind T t4 (\lambda
+(_: T).(ex2 T (\lambda (t0: T).(pr0 (THead (Bind Abst) u2 (THead (Flat Appl)
+(lift (S O) O v2) t3)) t0)) (\lambda (t0: T).(pr0 (THead (Bind Abbr) v3 t5)
+t0)))) (let H5 \def (eq_ind_r T t (\lambda (t: T).(\forall (v: T).((tlt v t)
+\to (\forall (t1: T).((pr0 v t1) \to (\forall (t2: T).((pr0 v t2) \to (ex2 T
+(\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 t2 t0)))))))))) H (THead
+(Flat Appl) v0 (THead (Bind Abst) u t4)) H10) in (let H6 \def (eq_ind T t0
+(\lambda (t: T).(pr0 t t3)) H12 t4 H15) in (let H7 \def (eq_ind T u1 (\lambda
+(t: T).(pr0 t u2)) H11 u H14) in (let H8 \def (eq_ind B b (\lambda (b:
+B).(not (eq B b Abst))) H9 Abst H13) in (let H9 \def (match (H8 (refl_equal B
+Abst)) return (\lambda (_: False).(ex2 T (\lambda (t: T).(pr0 (THead (Bind
+Abst) u2 (THead (Flat Appl) (lift (S O) O v2) t3)) t)) (\lambda (t: T).(pr0
+(THead (Bind Abbr) v3 t5) t)))) with []) in H9))))) t0 (sym_eq T t0 t4 H15)))
+u1 (sym_eq T u1 u H14))) b (sym_eq B b Abst H13))) v1 (sym_eq T v1 v0 H4)))
+H3)) H2)) H1)))]) in (H1 (refl_equal T (THead (Flat Appl) v0 (THead (Bind
+Abst) u t4)))))))) t2 H14)) t H10 H13 H8 H9))) | (pr0_upsilon b0 H8 v0 v3 H9
+u0 u3 H10 t4 t5 H11) \Rightarrow (\lambda (H13: (eq T (THead (Flat Appl) v0
+(THead (Bind b0) u0 t4)) t)).(\lambda (H14: (eq T (THead (Bind b0) u3 (THead
+(Flat Appl) (lift (S O) O v3) t5)) t2)).(eq_ind T (THead (Flat Appl) v0
+(THead (Bind b0) u0 t4)) (\lambda (_: T).((eq T (THead (Bind b0) u3 (THead
+(Flat Appl) (lift (S O) O v3) t5)) t2) \to ((not (eq B b0 Abst)) \to ((pr0 v0
+v3) \to ((pr0 u0 u3) \to ((pr0 t4 t5) \to (ex2 T (\lambda (t0: T).(pr0 (THead
+(Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t3)) t0)) (\lambda (t0:
+T).(pr0 t2 t0))))))))) (\lambda (H15: (eq T (THead (Bind b0) u3 (THead (Flat
+Appl) (lift (S O) O v3) t5)) t2)).(eq_ind T (THead (Bind b0) u3 (THead (Flat
+Appl) (lift (S O) O v3) t5)) (\lambda (t: T).((not (eq B b0 Abst)) \to ((pr0
+v0 v3) \to ((pr0 u0 u3) \to ((pr0 t4 t5) \to (ex2 T (\lambda (t0: T).(pr0
+(THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t3)) t0)) (\lambda
+(t0: T).(pr0 t t0)))))))) (\lambda (_: (not (eq B b0 Abst))).(\lambda (H17:
+(pr0 v0 v3)).(\lambda (H18: (pr0 u0 u3)).(\lambda (H19: (pr0 t4 t5)).(let H0
+\def (eq_ind_r T t (\lambda (t: T).(eq T (THead (Flat Appl) v1 (THead (Bind
+b) u1 t0)) t)) H6 (THead (Flat Appl) v0 (THead (Bind b0) u0 t4)) H13) in (let
+H1 \def (match H0 return (\lambda (t: T).(\lambda (_: (eq ? ? t)).((eq T t
+(THead (Flat Appl) v0 (THead (Bind b0) u0 t4))) \to (ex2 T (\lambda (t0:
+T).(pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t3)) t0))
+(\lambda (t0: T).(pr0 (THead (Bind b0) u3 (THead (Flat Appl) (lift (S O) O
+v3) t5)) t0)))))) with [refl_equal \Rightarrow (\lambda (H0: (eq T (THead
+(Flat Appl) v1 (THead (Bind b) u1 t0)) (THead (Flat Appl) v0 (THead (Bind b0)
+u0 t4)))).(let H1 \def (f_equal T T (\lambda (e: T).(match e return (\lambda
+(_: T).T) with [(TSort _) \Rightarrow t0 | (TLRef _) \Rightarrow t0 | (THead
+_ _ t) \Rightarrow (match t return (\lambda (_: T).T) with [(TSort _)
+\Rightarrow t0 | (TLRef _) \Rightarrow t0 | (THead _ _ t0) \Rightarrow
+t0])])) (THead (Flat Appl) v1 (THead (Bind b) u1 t0)) (THead (Flat Appl) v0
+(THead (Bind b0) u0 t4)) H0) in ((let H2 \def (f_equal T T (\lambda (e:
+T).(match e return (\lambda (_: T).T) with [(TSort _) \Rightarrow u1 | (TLRef
+_) \Rightarrow u1 | (THead _ _ t) \Rightarrow (match t return (\lambda (_:
+T).T) with [(TSort _) \Rightarrow u1 | (TLRef _) \Rightarrow u1 | (THead _ t0
+_) \Rightarrow t0])])) (THead (Flat Appl) v1 (THead (Bind b) u1 t0)) (THead
+(Flat Appl) v0 (THead (Bind b0) u0 t4)) H0) in ((let H3 \def (f_equal T B
+(\lambda (e: T).(match e return (\lambda (_: T).B) with [(TSort _)
+\Rightarrow b | (TLRef _) \Rightarrow b | (THead _ _ t) \Rightarrow (match t
+return (\lambda (_: T).B) with [(TSort _) \Rightarrow b | (TLRef _)
+\Rightarrow b | (THead k _ _) \Rightarrow (match k return (\lambda (_: K).B)
+with [(Bind b) \Rightarrow b | (Flat _) \Rightarrow b])])])) (THead (Flat
+Appl) v1 (THead (Bind b) u1 t0)) (THead (Flat Appl) v0 (THead (Bind b0) u0
+t4)) H0) in ((let H4 \def (f_equal T T (\lambda (e: T).(match e return
+(\lambda (_: T).T) with [(TSort _) \Rightarrow v1 | (TLRef _) \Rightarrow v1
+| (THead _ t _) \Rightarrow t])) (THead (Flat Appl) v1 (THead (Bind b) u1
+t0)) (THead (Flat Appl) v0 (THead (Bind b0) u0 t4)) H0) in (eq_ind T v0
+(\lambda (_: T).((eq B b b0) \to ((eq T u1 u0) \to ((eq T t0 t4) \to (ex2 T
+(\lambda (t0: T).(pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2)
+t3)) t0)) (\lambda (t0: T).(pr0 (THead (Bind b0) u3 (THead (Flat Appl) (lift
+(S O) O v3) t5)) t0))))))) (\lambda (H14: (eq B b b0)).(eq_ind B b0 (\lambda
+(b: B).((eq T u1 u0) \to ((eq T t0 t4) \to (ex2 T (\lambda (t: T).(pr0 (THead
+(Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t3)) t)) (\lambda (t:
+T).(pr0 (THead (Bind b0) u3 (THead (Flat Appl) (lift (S O) O v3) t5)) t))))))
+(\lambda (H15: (eq T u1 u0)).(eq_ind T u0 (\lambda (_: T).((eq T t0 t4) \to
+(ex2 T (\lambda (t0: T).(pr0 (THead (Bind b0) u2 (THead (Flat Appl) (lift (S
+O) O v2) t3)) t0)) (\lambda (t0: T).(pr0 (THead (Bind b0) u3 (THead (Flat
+Appl) (lift (S O) O v3) t5)) t0))))) (\lambda (H16: (eq T t0 t4)).(eq_ind T
+t4 (\lambda (_: T).(ex2 T (\lambda (t0: T).(pr0 (THead (Bind b0) u2 (THead
+(Flat Appl) (lift (S O) O v2) t3)) t0)) (\lambda (t0: T).(pr0 (THead (Bind
+b0) u3 (THead (Flat Appl) (lift (S O) O v3) t5)) t0)))) (let H5 \def
+(eq_ind_r T t (\lambda (t: T).(\forall (v: T).((tlt v t) \to (\forall (t1:
+T).((pr0 v t1) \to (\forall (t2: T).((pr0 v t2) \to (ex2 T (\lambda (t0:
+T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 t2 t0)))))))))) H (THead (Flat Appl) v0
+(THead (Bind b0) u0 t4)) H13) in (let H6 \def (eq_ind T t0 (\lambda (t:
+T).(pr0 t t3)) H12 t4 H16) in (let H7 \def (eq_ind T u1 (\lambda (t: T).(pr0
+t u2)) H11 u0 H15) in (let H8 \def (eq_ind B b (\lambda (b: B).(not (eq B b
+Abst))) H9 b0 H14) in (let H9 \def (eq_ind T v1 (\lambda (t: T).(pr0 t v2))
+H10 v0 H4) in (ex2_ind T (\lambda (t: T).(pr0 v2 t)) (\lambda (t: T).(pr0 v3
+t)) (ex2 T (\lambda (t: T).(pr0 (THead (Bind b0) u2 (THead (Flat Appl) (lift
+(S O) O v2) t3)) t)) (\lambda (t: T).(pr0 (THead (Bind b0) u3 (THead (Flat
+Appl) (lift (S O) O v3) t5)) t))) (\lambda (x: T).(\lambda (H10: (pr0 v2
+x)).(\lambda (H11: (pr0 v3 x)).(ex2_ind T (\lambda (t: T).(pr0 u2 t))
+(\lambda (t: T).(pr0 u3 t)) (ex2 T (\lambda (t: T).(pr0 (THead (Bind b0) u2
+(THead (Flat Appl) (lift (S O) O v2) t3)) t)) (\lambda (t: T).(pr0 (THead
+(Bind b0) u3 (THead (Flat Appl) (lift (S O) O v3) t5)) t))) (\lambda (x0:
+T).(\lambda (H12: (pr0 u2 x0)).(\lambda (H13: (pr0 u3 x0)).(ex2_ind T
+(\lambda (t: T).(pr0 t3 t)) (\lambda (t: T).(pr0 t5 t)) (ex2 T (\lambda (t:
+T).(pr0 (THead (Bind b0) u2 (THead (Flat Appl) (lift (S O) O v2) t3)) t))
+(\lambda (t: T).(pr0 (THead (Bind b0) u3 (THead (Flat Appl) (lift (S O) O v3)
+t5)) t))) (\lambda (x1: T).(\lambda (H17: (pr0 t3 x1)).(\lambda (H18: (pr0 t5
+x1)).(pr0_confluence__pr0_upsilon_upsilon b0 H8 v2 v3 x H10 H11 u2 u3 x0 H12
+H13 t3 t5 x1 H17 H18)))) (H5 t4 (tlt_trans (THead (Bind b0) u0 t4) t4 (THead
+(Flat Appl) v0 (THead (Bind b0) u0 t4)) (tlt_head_dx (Bind b0) u0 t4)
+(tlt_head_dx (Flat Appl) v0 (THead (Bind b0) u0 t4))) t3 H6 t5 H19))))) (H5
+u0 (tlt_trans (THead (Bind b0) u0 t4) u0 (THead (Flat Appl) v0 (THead (Bind
+b0) u0 t4)) (tlt_head_sx (Bind b0) u0 t4) (tlt_head_dx (Flat Appl) v0 (THead
+(Bind b0) u0 t4))) u2 H7 u3 H18))))) (H5 v0 (tlt_head_sx (Flat Appl) v0
+(THead (Bind b0) u0 t4)) v2 H9 v3 H17))))))) t0 (sym_eq T t0 t4 H16))) u1
+(sym_eq T u1 u0 H15))) b (sym_eq B b b0 H14))) v1 (sym_eq T v1 v0 H4))) H3))
+H2)) H1)))]) in (H1 (refl_equal T (THead (Flat Appl) v0 (THead (Bind b0) u0
+t4)))))))))) t2 H15)) t H13 H14 H8 H9 H10 H11))) | (pr0_delta u0 u3 H8 t4 t5
+H9 w H10) \Rightarrow (\lambda (H11: (eq T (THead (Bind Abbr) u0 t4)
+t)).(\lambda (H12: (eq T (THead (Bind Abbr) u3 w) t2)).(eq_ind T (THead (Bind
+Abbr) u0 t4) (\lambda (_: T).((eq T (THead (Bind Abbr) u3 w) t2) \to ((pr0 u0
+u3) \to ((pr0 t4 t5) \to ((subst0 O u3 t5 w) \to (ex2 T (\lambda (t0: T).(pr0
+(THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t3)) t0)) (\lambda
+(t0: T).(pr0 t2 t0)))))))) (\lambda (H13: (eq T (THead (Bind Abbr) u3 w)
+t2)).(eq_ind T (THead (Bind Abbr) u3 w) (\lambda (t: T).((pr0 u0 u3) \to
+((pr0 t4 t5) \to ((subst0 O u3 t5 w) \to (ex2 T (\lambda (t0: T).(pr0 (THead
+(Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t3)) t0)) (\lambda (t0:
+T).(pr0 t t0))))))) (\lambda (_: (pr0 u0 u3)).(\lambda (_: (pr0 t4
+t5)).(\lambda (_: (subst0 O u3 t5 w)).(let H0 \def (eq_ind_r T t (\lambda (t:
+T).(eq T (THead (Flat Appl) v1 (THead (Bind b) u1 t0)) t)) H6 (THead (Bind
+Abbr) u0 t4) H11) in (let H1 \def (match H0 return (\lambda (t: T).(\lambda
+(_: (eq ? ? t)).((eq T t (THead (Bind Abbr) u0 t4)) \to (ex2 T (\lambda (t0:
+T).(pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t3)) t0))
+(\lambda (t0: T).(pr0 (THead (Bind Abbr) u3 w) t0)))))) with [refl_equal
+\Rightarrow (\lambda (H0: (eq T (THead (Flat Appl) v1 (THead (Bind b) u1 t0))
+(THead (Bind Abbr) u0 t4))).(let H1 \def (eq_ind T (THead (Flat Appl) v1
+(THead (Bind b) u1 t0)) (\lambda (e: T).(match e return (\lambda (_: T).Prop)
+with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | (THead k _
+_) \Rightarrow (match k return (\lambda (_: K).Prop) with [(Bind _)
+\Rightarrow False | (Flat _) \Rightarrow True])])) I (THead (Bind Abbr) u0
+t4) H0) in (False_ind (ex2 T (\lambda (t: T).(pr0 (THead (Bind b) u2 (THead
+(Flat Appl) (lift (S O) O v2) t3)) t)) (\lambda (t: T).(pr0 (THead (Bind
+Abbr) u3 w) t))) H1)))]) in (H1 (refl_equal T (THead (Bind Abbr) u0
+t4)))))))) t2 H13)) t H11 H12 H8 H9 H10))) | (pr0_zeta b0 H8 t4 t5 H9 u)
+\Rightarrow (\lambda (H10: (eq T (THead (Bind b0) u (lift (S O) O t4))
+t)).(\lambda (H11: (eq T t5 t2)).(eq_ind T (THead (Bind b0) u (lift (S O) O
+t4)) (\lambda (_: T).((eq T t5 t2) \to ((not (eq B b0 Abst)) \to ((pr0 t4 t5)
+\to (ex2 T (\lambda (t0: T).(pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift
+(S O) O v2) t3)) t0)) (\lambda (t0: T).(pr0 t2 t0))))))) (\lambda (H12: (eq T
+t5 t2)).(eq_ind T t2 (\lambda (t: T).((not (eq B b0 Abst)) \to ((pr0 t4 t)
+\to (ex2 T (\lambda (t0: T).(pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift
+(S O) O v2) t3)) t0)) (\lambda (t0: T).(pr0 t2 t0)))))) (\lambda (_: (not (eq
+B b0 Abst))).(\lambda (_: (pr0 t4 t2)).(let H0 \def (eq_ind_r T t (\lambda
+(t: T).(eq T (THead (Flat Appl) v1 (THead (Bind b) u1 t0)) t)) H6 (THead
+(Bind b0) u (lift (S O) O t4)) H10) in (let H1 \def (match H0 return (\lambda
+(t: T).(\lambda (_: (eq ? ? t)).((eq T t (THead (Bind b0) u (lift (S O) O
+t4))) \to (ex2 T (\lambda (t0: T).(pr0 (THead (Bind b) u2 (THead (Flat Appl)
+(lift (S O) O v2) t3)) t0)) (\lambda (t0: T).(pr0 t2 t0)))))) with
+[refl_equal \Rightarrow (\lambda (H0: (eq T (THead (Flat Appl) v1 (THead
+(Bind b) u1 t0)) (THead (Bind b0) u (lift (S O) O t4)))).(let H1 \def (eq_ind
+T (THead (Flat Appl) v1 (THead (Bind b) u1 t0)) (\lambda (e: T).(match e
+return (\lambda (_: T).Prop) with [(TSort _) \Rightarrow False | (TLRef _)
+\Rightarrow False | (THead k _ _) \Rightarrow (match k return (\lambda (_:
+K).Prop) with [(Bind _) \Rightarrow False | (Flat _) \Rightarrow True])])) I
+(THead (Bind b0) u (lift (S O) O t4)) H0) in (False_ind (ex2 T (\lambda (t:
+T).(pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t3)) t))
+(\lambda (t: T).(pr0 t2 t))) H1)))]) in (H1 (refl_equal T (THead (Bind b0) u
+(lift (S O) O t4)))))))) t5 (sym_eq T t5 t2 H12))) t H10 H11 H8 H9))) |
+(pr0_epsilon t4 t5 H8 u) \Rightarrow (\lambda (H9: (eq T (THead (Flat Cast) u
+t4) t)).(\lambda (H10: (eq T t5 t2)).(eq_ind T (THead (Flat Cast) u t4)
+(\lambda (_: T).((eq T t5 t2) \to ((pr0 t4 t5) \to (ex2 T (\lambda (t0:
+T).(pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t3)) t0))
+(\lambda (t0: T).(pr0 t2 t0)))))) (\lambda (H11: (eq T t5 t2)).(eq_ind T t2
+(\lambda (t: T).((pr0 t4 t) \to (ex2 T (\lambda (t0: T).(pr0 (THead (Bind b)
+u2 (THead (Flat Appl) (lift (S O) O v2) t3)) t0)) (\lambda (t0: T).(pr0 t2
+t0))))) (\lambda (_: (pr0 t4 t2)).(let H0 \def (eq_ind_r T t (\lambda (t:
+T).(eq T (THead (Flat Appl) v1 (THead (Bind b) u1 t0)) t)) H6 (THead (Flat
+Cast) u t4) H9) in (let H1 \def (match H0 return (\lambda (t: T).(\lambda (_:
+(eq ? ? t)).((eq T t (THead (Flat Cast) u t4)) \to (ex2 T (\lambda (t0:
+T).(pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t3)) t0))
+(\lambda (t0: T).(pr0 t2 t0)))))) with [refl_equal \Rightarrow (\lambda (H0:
+(eq T (THead (Flat Appl) v1 (THead (Bind b) u1 t0)) (THead (Flat Cast) u
+t4))).(let H1 \def (eq_ind T (THead (Flat Appl) v1 (THead (Bind b) u1 t0))
+(\lambda (e: T).(match e return (\lambda (_: T).Prop) with [(TSort _)
+\Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow
+(match k return (\lambda (_: K).Prop) with [(Bind _) \Rightarrow False |
+(Flat f) \Rightarrow (match f return (\lambda (_: F).Prop) with [Appl
+\Rightarrow True | Cast \Rightarrow False])])])) I (THead (Flat Cast) u t4)
+H0) in (False_ind (ex2 T (\lambda (t: T).(pr0 (THead (Bind b) u2 (THead (Flat
+Appl) (lift (S O) O v2) t3)) t)) (\lambda (t: T).(pr0 t2 t))) H1)))]) in (H1
+(refl_equal T (THead (Flat Cast) u t4)))))) t5 (sym_eq T t5 t2 H11))) t H9
+H10 H8)))]) in (H13 (refl_equal T t) (refl_equal T t2))))))) t1 H8)) t H6 H7
+H2 H3 H4 H5))) | (pr0_delta u1 u2 H2 t0 t3 H3 w H4) \Rightarrow (\lambda (H5:
+(eq T (THead (Bind Abbr) u1 t0) t)).(\lambda (H6: (eq T (THead (Bind Abbr) u2
+w) t1)).(eq_ind T (THead (Bind Abbr) u1 t0) (\lambda (_: T).((eq T (THead
+(Bind Abbr) u2 w) t1) \to ((pr0 u1 u2) \to ((pr0 t0 t3) \to ((subst0 O u2 t3
+w) \to (ex2 T (\lambda (t2: T).(pr0 t1 t2)) (\lambda (t1: T).(pr0 t2
+t1)))))))) (\lambda (H7: (eq T (THead (Bind Abbr) u2 w) t1)).(eq_ind T (THead
+(Bind Abbr) u2 w) (\lambda (t: T).((pr0 u1 u2) \to ((pr0 t0 t3) \to ((subst0
+O u2 t3 w) \to (ex2 T (\lambda (t1: T).(pr0 t t1)) (\lambda (t1: T).(pr0 t2
+t1))))))) (\lambda (H8: (pr0 u1 u2)).(\lambda (H9: (pr0 t0 t3)).(\lambda
+(H10: (subst0 O u2 t3 w)).(let H11 \def (match H1 return (\lambda (t0:
+T).(\lambda (t1: T).(\lambda (_: (pr0 t0 t1)).((eq T t0 t) \to ((eq T t1 t2)
+\to (ex2 T (\lambda (t: T).(pr0 (THead (Bind Abbr) u2 w) t)) (\lambda (t:
+T).(pr0 t2 t)))))))) with [(pr0_refl t4) \Rightarrow (\lambda (H7: (eq T t4
+t)).(\lambda (H11: (eq T t4 t2)).(eq_ind T t (\lambda (t: T).((eq T t t2) \to
+(ex2 T (\lambda (t0: T).(pr0 (THead (Bind Abbr) u2 w) t0)) (\lambda (t0:
+T).(pr0 t2 t0))))) (\lambda (H12: (eq T t t2)).(eq_ind T t2 (\lambda (_:
+T).(ex2 T (\lambda (t0: T).(pr0 (THead (Bind Abbr) u2 w) t0)) (\lambda (t0:
+T).(pr0 t2 t0)))) (let H0 \def (eq_ind_r T t (\lambda (t: T).(eq T t t2)) H12
+(THead (Bind Abbr) u1 t0) H5) in (eq_ind T (THead (Bind Abbr) u1 t0) (\lambda
+(t: T).(ex2 T (\lambda (t0: T).(pr0 (THead (Bind Abbr) u2 w) t0)) (\lambda
+(t0: T).(pr0 t t0)))) (let H1 \def (eq_ind_r T t (\lambda (t: T).(eq T t4 t))
+H7 (THead (Bind Abbr) u1 t0) H5) in (let H2 \def (eq_ind_r T t (\lambda (t:
+T).(\forall (v: T).((tlt v t) \to (\forall (t1: T).((pr0 v t1) \to (\forall
+(t2: T).((pr0 v t2) \to (ex2 T (\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0:
+T).(pr0 t2 t0)))))))))) H (THead (Bind Abbr) u1 t0) H5) in (ex_intro2 T
+(\lambda (t: T).(pr0 (THead (Bind Abbr) u2 w) t)) (\lambda (t: T).(pr0 (THead
+(Bind Abbr) u1 t0) t)) (THead (Bind Abbr) u2 w) (pr0_refl (THead (Bind Abbr)
+u2 w)) (pr0_delta u1 u2 H8 t0 t3 H9 w H10)))) t2 H0)) t (sym_eq T t t2 H12)))
+t4 (sym_eq T t4 t H7) H11))) | (pr0_comp u0 u3 H7 t4 t5 H8 k) \Rightarrow
+(\lambda (H11: (eq T (THead k u0 t4) t)).(\lambda (H12: (eq T (THead k u3 t5)
+t2)).(eq_ind T (THead k u0 t4) (\lambda (_: T).((eq T (THead k u3 t5) t2) \to
+((pr0 u0 u3) \to ((pr0 t4 t5) \to (ex2 T (\lambda (t0: T).(pr0 (THead (Bind
+Abbr) u2 w) t0)) (\lambda (t0: T).(pr0 t2 t0))))))) (\lambda (H13: (eq T
+(THead k u3 t5) t2)).(eq_ind T (THead k u3 t5) (\lambda (t: T).((pr0 u0 u3)
+\to ((pr0 t4 t5) \to (ex2 T (\lambda (t0: T).(pr0 (THead (Bind Abbr) u2 w)
+t0)) (\lambda (t0: T).(pr0 t t0)))))) (\lambda (H14: (pr0 u0 u3)).(\lambda
+(H15: (pr0 t4 t5)).(let H0 \def (eq_ind_r T t (\lambda (t: T).(eq T (THead
+(Bind Abbr) u1 t0) t)) H5 (THead k u0 t4) H11) in (let H1 \def (match H0
+return (\lambda (t: T).(\lambda (_: (eq ? ? t)).((eq T t (THead k u0 t4)) \to
+(ex2 T (\lambda (t0: T).(pr0 (THead (Bind Abbr) u2 w) t0)) (\lambda (t0:
+T).(pr0 (THead k u3 t5) t0)))))) with [refl_equal \Rightarrow (\lambda (H0:
+(eq T (THead (Bind Abbr) u1 t0) (THead k u0 t4))).(let H1 \def (f_equal T T
+(\lambda (e: T).(match e return (\lambda (_: T).T) with [(TSort _)
+\Rightarrow t0 | (TLRef _) \Rightarrow t0 | (THead _ _ t) \Rightarrow t]))
+(THead (Bind Abbr) u1 t0) (THead k u0 t4) H0) in ((let H2 \def (f_equal T T
+(\lambda (e: T).(match e return (\lambda (_: T).T) with [(TSort _)
+\Rightarrow u1 | (TLRef _) \Rightarrow u1 | (THead _ t _) \Rightarrow t]))
+(THead (Bind Abbr) u1 t0) (THead k u0 t4) H0) in ((let H3 \def (f_equal T K
+(\lambda (e: T).(match e return (\lambda (_: T).K) with [(TSort _)
+\Rightarrow (Bind Abbr) | (TLRef _) \Rightarrow (Bind Abbr) | (THead k _ _)
+\Rightarrow k])) (THead (Bind Abbr) u1 t0) (THead k u0 t4) H0) in (eq_ind K
+(Bind Abbr) (\lambda (k: K).((eq T u1 u0) \to ((eq T t0 t4) \to (ex2 T
+(\lambda (t: T).(pr0 (THead (Bind Abbr) u2 w) t)) (\lambda (t: T).(pr0 (THead
+k u3 t5) t)))))) (\lambda (H12: (eq T u1 u0)).(eq_ind T u0 (\lambda (_:
+T).((eq T t0 t4) \to (ex2 T (\lambda (t0: T).(pr0 (THead (Bind Abbr) u2 w)
+t0)) (\lambda (t0: T).(pr0 (THead (Bind Abbr) u3 t5) t0))))) (\lambda (H13:
+(eq T t0 t4)).(eq_ind T t4 (\lambda (_: T).(ex2 T (\lambda (t0: T).(pr0
+(THead (Bind Abbr) u2 w) t0)) (\lambda (t0: T).(pr0 (THead (Bind Abbr) u3 t5)
+t0)))) (let H4 \def (eq_ind_r K k (\lambda (k: K).(eq T (THead k u0 t4) t))
+H11 (Bind Abbr) H3) in (let H5 \def (eq_ind_r T t (\lambda (t: T).(\forall
+(v: T).((tlt v t) \to (\forall (t1: T).((pr0 v t1) \to (\forall (t2: T).((pr0
+v t2) \to (ex2 T (\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 t2
+t0)))))))))) H (THead (Bind Abbr) u0 t4) H4) in (let H6 \def (eq_ind T t0
+(\lambda (t: T).(pr0 t t3)) H9 t4 H13) in (let H7 \def (eq_ind T u1 (\lambda
+(t: T).(pr0 t u2)) H8 u0 H12) in (ex2_ind T (\lambda (t: T).(pr0 u2 t))
+(\lambda (t: T).(pr0 u3 t)) (ex2 T (\lambda (t: T).(pr0 (THead (Bind Abbr) u2
+w) t)) (\lambda (t: T).(pr0 (THead (Bind Abbr) u3 t5) t))) (\lambda (x:
+T).(\lambda (H8: (pr0 u2 x)).(\lambda (H9: (pr0 u3 x)).(ex2_ind T (\lambda
+(t: T).(pr0 t3 t)) (\lambda (t: T).(pr0 t5 t)) (ex2 T (\lambda (t: T).(pr0
+(THead (Bind Abbr) u2 w) t)) (\lambda (t: T).(pr0 (THead (Bind Abbr) u3 t5)
+t))) (\lambda (x0: T).(\lambda (H11: (pr0 t3 x0)).(\lambda (H14: (pr0 t5
+x0)).(ex2_sym T (pr0 (THead (Bind Abbr) u3 t5)) (pr0 (THead (Bind Abbr) u2
+w)) (pr0_confluence__pr0_cong_delta u2 t3 w H10 u3 x H9 H8 t5 x0 H14 H11)))))
+(H5 t4 (tlt_head_dx (Bind Abbr) u0 t4) t3 H6 t5 H15))))) (H5 u0 (tlt_head_sx
+(Bind Abbr) u0 t4) u2 H7 u3 H14)))))) t0 (sym_eq T t0 t4 H13))) u1 (sym_eq T
+u1 u0 H12))) k H3)) H2)) H1)))]) in (H1 (refl_equal T (THead k u0 t4)))))))
+t2 H13)) t H11 H12 H7 H8))) | (pr0_beta u v1 v2 H7 t4 t5 H8) \Rightarrow
+(\lambda (H9: (eq T (THead (Flat Appl) v1 (THead (Bind Abst) u t4))
+t)).(\lambda (H10: (eq T (THead (Bind Abbr) v2 t5) t2)).(eq_ind T (THead
+(Flat Appl) v1 (THead (Bind Abst) u t4)) (\lambda (_: T).((eq T (THead (Bind
+Abbr) v2 t5) t2) \to ((pr0 v1 v2) \to ((pr0 t4 t5) \to (ex2 T (\lambda (t0:
+T).(pr0 (THead (Bind Abbr) u2 w) t0)) (\lambda (t0: T).(pr0 t2 t0)))))))
+(\lambda (H11: (eq T (THead (Bind Abbr) v2 t5) t2)).(eq_ind T (THead (Bind
+Abbr) v2 t5) (\lambda (t: T).((pr0 v1 v2) \to ((pr0 t4 t5) \to (ex2 T
+(\lambda (t0: T).(pr0 (THead (Bind Abbr) u2 w) t0)) (\lambda (t0: T).(pr0 t
+t0)))))) (\lambda (_: (pr0 v1 v2)).(\lambda (_: (pr0 t4 t5)).(let H0 \def
+(eq_ind_r T t (\lambda (t: T).(eq T (THead (Bind Abbr) u1 t0) t)) H5 (THead
+(Flat Appl) v1 (THead (Bind Abst) u t4)) H9) in (let H1 \def (match H0 return
+(\lambda (t: T).(\lambda (_: (eq ? ? t)).((eq T t (THead (Flat Appl) v1
+(THead (Bind Abst) u t4))) \to (ex2 T (\lambda (t0: T).(pr0 (THead (Bind
+Abbr) u2 w) t0)) (\lambda (t0: T).(pr0 (THead (Bind Abbr) v2 t5) t0))))))
+with [refl_equal \Rightarrow (\lambda (H0: (eq T (THead (Bind Abbr) u1 t0)
+(THead (Flat Appl) v1 (THead (Bind Abst) u t4)))).(let H1 \def (eq_ind T
+(THead (Bind Abbr) u1 t0) (\lambda (e: T).(match e return (\lambda (_:
+T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False |
+(THead k _ _) \Rightarrow (match k return (\lambda (_: K).Prop) with [(Bind
+_) \Rightarrow True | (Flat _) \Rightarrow False])])) I (THead (Flat Appl) v1
+(THead (Bind Abst) u t4)) H0) in (False_ind (ex2 T (\lambda (t: T).(pr0
+(THead (Bind Abbr) u2 w) t)) (\lambda (t: T).(pr0 (THead (Bind Abbr) v2 t5)
+t))) H1)))]) in (H1 (refl_equal T (THead (Flat Appl) v1 (THead (Bind Abst) u
+t4)))))))) t2 H11)) t H9 H10 H7 H8))) | (pr0_upsilon b H7 v1 v2 H8 u0 u3 H9
+t4 t5 H10) \Rightarrow (\lambda (H11: (eq T (THead (Flat Appl) v1 (THead
+(Bind b) u0 t4)) t)).(\lambda (H12: (eq T (THead (Bind b) u3 (THead (Flat
+Appl) (lift (S O) O v2) t5)) t2)).(eq_ind T (THead (Flat Appl) v1 (THead
+(Bind b) u0 t4)) (\lambda (_: T).((eq T (THead (Bind b) u3 (THead (Flat Appl)
+(lift (S O) O v2) t5)) t2) \to ((not (eq B b Abst)) \to ((pr0 v1 v2) \to
+((pr0 u0 u3) \to ((pr0 t4 t5) \to (ex2 T (\lambda (t0: T).(pr0 (THead (Bind
+Abbr) u2 w) t0)) (\lambda (t0: T).(pr0 t2 t0))))))))) (\lambda (H13: (eq T
+(THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t5)) t2)).(eq_ind T
+(THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t5)) (\lambda (t:
+T).((not (eq B b Abst)) \to ((pr0 v1 v2) \to ((pr0 u0 u3) \to ((pr0 t4 t5)
+\to (ex2 T (\lambda (t0: T).(pr0 (THead (Bind Abbr) u2 w) t0)) (\lambda (t0:
+T).(pr0 t t0)))))))) (\lambda (_: (not (eq B b Abst))).(\lambda (_: (pr0 v1
+v2)).(\lambda (_: (pr0 u0 u3)).(\lambda (_: (pr0 t4 t5)).(let H0 \def
+(eq_ind_r T t (\lambda (t: T).(eq T (THead (Bind Abbr) u1 t0) t)) H5 (THead
+(Flat Appl) v1 (THead (Bind b) u0 t4)) H11) in (let H1 \def (match H0 return
+(\lambda (t: T).(\lambda (_: (eq ? ? t)).((eq T t (THead (Flat Appl) v1
+(THead (Bind b) u0 t4))) \to (ex2 T (\lambda (t0: T).(pr0 (THead (Bind Abbr)
+u2 w) t0)) (\lambda (t0: T).(pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift
+(S O) O v2) t5)) t0)))))) with [refl_equal \Rightarrow (\lambda (H0: (eq T
+(THead (Bind Abbr) u1 t0) (THead (Flat Appl) v1 (THead (Bind b) u0
+t4)))).(let H1 \def (eq_ind T (THead (Bind Abbr) u1 t0) (\lambda (e:
+T).(match e return (\lambda (_: T).Prop) with [(TSort _) \Rightarrow False |
+(TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow (match k return
+(\lambda (_: K).Prop) with [(Bind _) \Rightarrow True | (Flat _) \Rightarrow
+False])])) I (THead (Flat Appl) v1 (THead (Bind b) u0 t4)) H0) in (False_ind
+(ex2 T (\lambda (t: T).(pr0 (THead (Bind Abbr) u2 w) t)) (\lambda (t: T).(pr0
+(THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t5)) t))) H1)))]) in
+(H1 (refl_equal T (THead (Flat Appl) v1 (THead (Bind b) u0 t4)))))))))) t2
+H13)) t H11 H12 H7 H8 H9 H10))) | (pr0_delta u0 u3 H7 t4 t5 H8 w0 H9)
+\Rightarrow (\lambda (H11: (eq T (THead (Bind Abbr) u0 t4) t)).(\lambda (H12:
+(eq T (THead (Bind Abbr) u3 w0) t2)).(eq_ind T (THead (Bind Abbr) u0 t4)
+(\lambda (_: T).((eq T (THead (Bind Abbr) u3 w0) t2) \to ((pr0 u0 u3) \to
+((pr0 t4 t5) \to ((subst0 O u3 t5 w0) \to (ex2 T (\lambda (t0: T).(pr0 (THead
+(Bind Abbr) u2 w) t0)) (\lambda (t0: T).(pr0 t2 t0)))))))) (\lambda (H13: (eq
+T (THead (Bind Abbr) u3 w0) t2)).(eq_ind T (THead (Bind Abbr) u3 w0) (\lambda
+(t: T).((pr0 u0 u3) \to ((pr0 t4 t5) \to ((subst0 O u3 t5 w0) \to (ex2 T
+(\lambda (t0: T).(pr0 (THead (Bind Abbr) u2 w) t0)) (\lambda (t0: T).(pr0 t
+t0))))))) (\lambda (H14: (pr0 u0 u3)).(\lambda (H15: (pr0 t4 t5)).(\lambda
+(H16: (subst0 O u3 t5 w0)).(let H0 \def (eq_ind_r T t (\lambda (t: T).(eq T
+(THead (Bind Abbr) u1 t0) t)) H5 (THead (Bind Abbr) u0 t4) H11) in (let H1
+\def (match H0 return (\lambda (t: T).(\lambda (_: (eq ? ? t)).((eq T t
+(THead (Bind Abbr) u0 t4)) \to (ex2 T (\lambda (t0: T).(pr0 (THead (Bind
+Abbr) u2 w) t0)) (\lambda (t0: T).(pr0 (THead (Bind Abbr) u3 w0) t0))))))
+with [refl_equal \Rightarrow (\lambda (H0: (eq T (THead (Bind Abbr) u1 t0)
+(THead (Bind Abbr) u0 t4))).(let H1 \def (f_equal T T (\lambda (e: T).(match
+e return (\lambda (_: T).T) with [(TSort _) \Rightarrow t0 | (TLRef _)
+\Rightarrow t0 | (THead _ _ t) \Rightarrow t])) (THead (Bind Abbr) u1 t0)
+(THead (Bind Abbr) u0 t4) H0) in ((let H2 \def (f_equal T T (\lambda (e:
+T).(match e return (\lambda (_: T).T) with [(TSort _) \Rightarrow u1 | (TLRef
+_) \Rightarrow u1 | (THead _ t _) \Rightarrow t])) (THead (Bind Abbr) u1 t0)
+(THead (Bind Abbr) u0 t4) H0) in (eq_ind T u0 (\lambda (_: T).((eq T t0 t4)
+\to (ex2 T (\lambda (t0: T).(pr0 (THead (Bind Abbr) u2 w) t0)) (\lambda (t0:
+T).(pr0 (THead (Bind Abbr) u3 w0) t0))))) (\lambda (H12: (eq T t0
+t4)).(eq_ind T t4 (\lambda (_: T).(ex2 T (\lambda (t0: T).(pr0 (THead (Bind
+Abbr) u2 w) t0)) (\lambda (t0: T).(pr0 (THead (Bind Abbr) u3 w0) t0)))) (let
+H3 \def (eq_ind_r T t (\lambda (t: T).(\forall (v: T).((tlt v t) \to (\forall
+(t1: T).((pr0 v t1) \to (\forall (t2: T).((pr0 v t2) \to (ex2 T (\lambda (t0:
+T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 t2 t0)))))))))) H (THead (Bind Abbr) u0
+t4) H11) in (let H4 \def (eq_ind T t0 (\lambda (t: T).(pr0 t t3)) H9 t4 H12)
+in (let H5 \def (eq_ind T u1 (\lambda (t: T).(pr0 t u2)) H8 u0 H2) in
+(ex2_ind T (\lambda (t: T).(pr0 u2 t)) (\lambda (t: T).(pr0 u3 t)) (ex2 T
+(\lambda (t: T).(pr0 (THead (Bind Abbr) u2 w) t)) (\lambda (t: T).(pr0 (THead
+(Bind Abbr) u3 w0) t))) (\lambda (x: T).(\lambda (H6: (pr0 u2 x)).(\lambda
+(H7: (pr0 u3 x)).(ex2_ind T (\lambda (t: T).(pr0 t3 t)) (\lambda (t: T).(pr0
+t5 t)) (ex2 T (\lambda (t: T).(pr0 (THead (Bind Abbr) u2 w) t)) (\lambda (t:
+T).(pr0 (THead (Bind Abbr) u3 w0) t))) (\lambda (x0: T).(\lambda (H8: (pr0 t3
+x0)).(\lambda (H9: (pr0 t5 x0)).(pr0_confluence__pr0_delta_delta u2 t3 w H10
+u3 t5 w0 H16 x H6 H7 x0 H8 H9)))) (H3 t4 (tlt_head_dx (Bind Abbr) u0 t4) t3
+H4 t5 H15))))) (H3 u0 (tlt_head_sx (Bind Abbr) u0 t4) u2 H5 u3 H14))))) t0
+(sym_eq T t0 t4 H12))) u1 (sym_eq T u1 u0 H2))) H1)))]) in (H1 (refl_equal T
+(THead (Bind Abbr) u0 t4)))))))) t2 H13)) t H11 H12 H7 H8 H9))) | (pr0_zeta b
+H7 t4 t5 H8 u) \Rightarrow (\lambda (H11: (eq T (THead (Bind b) u (lift (S O)
+O t4)) t)).(\lambda (H12: (eq T t5 t2)).(eq_ind T (THead (Bind b) u (lift (S
+O) O t4)) (\lambda (_: T).((eq T t5 t2) \to ((not (eq B b Abst)) \to ((pr0 t4
+t5) \to (ex2 T (\lambda (t0: T).(pr0 (THead (Bind Abbr) u2 w) t0)) (\lambda
+(t0: T).(pr0 t2 t0))))))) (\lambda (H13: (eq T t5 t2)).(eq_ind T t2 (\lambda
+(t: T).((not (eq B b Abst)) \to ((pr0 t4 t) \to (ex2 T (\lambda (t0: T).(pr0
+(THead (Bind Abbr) u2 w) t0)) (\lambda (t0: T).(pr0 t2 t0)))))) (\lambda
+(H14: (not (eq B b Abst))).(\lambda (H15: (pr0 t4 t2)).(let H0 \def (eq_ind_r
+T t (\lambda (t: T).(eq T (THead (Bind Abbr) u1 t0) t)) H5 (THead (Bind b) u
+(lift (S O) O t4)) H11) in (let H1 \def (match H0 return (\lambda (t:
+T).(\lambda (_: (eq ? ? t)).((eq T t (THead (Bind b) u (lift (S O) O t4)))
+\to (ex2 T (\lambda (t0: T).(pr0 (THead (Bind Abbr) u2 w) t0)) (\lambda (t0:
+T).(pr0 t2 t0)))))) with [refl_equal \Rightarrow (\lambda (H0: (eq T (THead
+(Bind Abbr) u1 t0) (THead (Bind b) u (lift (S O) O t4)))).(let H1 \def
+(f_equal T T (\lambda (e: T).(match e return (\lambda (_: T).T) with [(TSort
+_) \Rightarrow t0 | (TLRef _) \Rightarrow t0 | (THead _ _ t) \Rightarrow t]))
+(THead (Bind Abbr) u1 t0) (THead (Bind b) u (lift (S O) O t4)) H0) in ((let
+H2 \def (f_equal T T (\lambda (e: T).(match e return (\lambda (_: T).T) with
+[(TSort _) \Rightarrow u1 | (TLRef _) \Rightarrow u1 | (THead _ t _)
+\Rightarrow t])) (THead (Bind Abbr) u1 t0) (THead (Bind b) u (lift (S O) O
+t4)) H0) in ((let H3 \def (f_equal T B (\lambda (e: T).(match e return
+(\lambda (_: T).B) with [(TSort _) \Rightarrow Abbr | (TLRef _) \Rightarrow
+Abbr | (THead k _ _) \Rightarrow (match k return (\lambda (_: K).B) with
+[(Bind b) \Rightarrow b | (Flat _) \Rightarrow Abbr])])) (THead (Bind Abbr)
+u1 t0) (THead (Bind b) u (lift (S O) O t4)) H0) in (eq_ind B Abbr (\lambda
+(_: B).((eq T u1 u) \to ((eq T t0 (lift (S O) O t4)) \to (ex2 T (\lambda (t:
+T).(pr0 (THead (Bind Abbr) u2 w) t)) (\lambda (t: T).(pr0 t2 t)))))) (\lambda
+(H12: (eq T u1 u)).(eq_ind T u (\lambda (_: T).((eq T t0 (lift (S O) O t4))
+\to (ex2 T (\lambda (t0: T).(pr0 (THead (Bind Abbr) u2 w) t0)) (\lambda (t0:
+T).(pr0 t2 t0))))) (\lambda (H13: (eq T t0 (lift (S O) O t4))).(eq_ind T
+(lift (S O) O t4) (\lambda (_: T).(ex2 T (\lambda (t0: T).(pr0 (THead (Bind
+Abbr) u2 w) t0)) (\lambda (t0: T).(pr0 t2 t0)))) (let H4 \def (eq_ind_r B b
+(\lambda (b: B).(not (eq B b Abst))) H14 Abbr H3) in (let H5 \def (eq_ind_r B
+b (\lambda (b: B).(eq T (THead (Bind b) u (lift (S O) O t4)) t)) H11 Abbr H3)
+in (let H6 \def (eq_ind_r T t (\lambda (t: T).(\forall (v: T).((tlt v t) \to
+(\forall (t1: T).((pr0 v t1) \to (\forall (t2: T).((pr0 v t2) \to (ex2 T
+(\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 t2 t0)))))))))) H (THead
+(Bind Abbr) u (lift (S O) O t4)) H5) in (let H7 \def (eq_ind T t0 (\lambda
+(t: T).(pr0 t t3)) H9 (lift (S O) O t4) H13) in (ex2_ind T (\lambda (t2:
+T).(eq T t3 (lift (S O) O t2))) (\lambda (t2: T).(pr0 t4 t2)) (ex2 T (\lambda
+(t: T).(pr0 (THead (Bind Abbr) u2 w) t)) (\lambda (t: T).(pr0 t2 t)))
+(\lambda (x: T).(\lambda (H9: (eq T t3 (lift (S O) O x))).(\lambda (H11: (pr0
+t4 x)).(let H10 \def (eq_ind T t3 (\lambda (t: T).(subst0 O u2 t w)) H10
+(lift (S O) O x) H9) in (let H8 \def (eq_ind T u1 (\lambda (t: T).(pr0 t u2))
+H8 u H12) in (ex2_ind T (\lambda (t: T).(pr0 x t)) (\lambda (t: T).(pr0 t2
+t)) (ex2 T (\lambda (t: T).(pr0 (THead (Bind Abbr) u2 w) t)) (\lambda (t:
+T).(pr0 t2 t))) (\lambda (x0: T).(\lambda (_: (pr0 x x0)).(\lambda (_: (pr0
+t2 x0)).(pr0_confluence__pr0_delta_epsilon u2 (lift (S O) O x) w H10 x
+(pr0_refl (lift (S O) O x)) t2)))) (H6 t4 (lift_tlt_dx (Bind Abbr) u t4 (S O)
+O) x H11 t2 H15))))))) (pr0_gen_lift t4 t3 (S O) O H7)))))) t0 (sym_eq T t0
+(lift (S O) O t4) H13))) u1 (sym_eq T u1 u H12))) b H3)) H2)) H1)))]) in (H1
+(refl_equal T (THead (Bind b) u (lift (S O) O t4)))))))) t5 (sym_eq T t5 t2
+H13))) t H11 H12 H7 H8))) | (pr0_epsilon t4 t5 H7 u) \Rightarrow (\lambda
+(H8: (eq T (THead (Flat Cast) u t4) t)).(\lambda (H9: (eq T t5 t2)).(eq_ind T
+(THead (Flat Cast) u t4) (\lambda (_: T).((eq T t5 t2) \to ((pr0 t4 t5) \to
+(ex2 T (\lambda (t0: T).(pr0 (THead (Bind Abbr) u2 w) t0)) (\lambda (t0:
+T).(pr0 t2 t0)))))) (\lambda (H10: (eq T t5 t2)).(eq_ind T t2 (\lambda (t:
+T).((pr0 t4 t) \to (ex2 T (\lambda (t0: T).(pr0 (THead (Bind Abbr) u2 w) t0))
+(\lambda (t0: T).(pr0 t2 t0))))) (\lambda (_: (pr0 t4 t2)).(let H0 \def
+(eq_ind_r T t (\lambda (t: T).(eq T (THead (Bind Abbr) u1 t0) t)) H5 (THead
+(Flat Cast) u t4) H8) in (let H1 \def (match H0 return (\lambda (t:
+T).(\lambda (_: (eq ? ? t)).((eq T t (THead (Flat Cast) u t4)) \to (ex2 T
+(\lambda (t0: T).(pr0 (THead (Bind Abbr) u2 w) t0)) (\lambda (t0: T).(pr0 t2
+t0)))))) with [refl_equal \Rightarrow (\lambda (H0: (eq T (THead (Bind Abbr)
+u1 t0) (THead (Flat Cast) u t4))).(let H1 \def (eq_ind T (THead (Bind Abbr)
+u1 t0) (\lambda (e: T).(match e return (\lambda (_: T).Prop) with [(TSort _)
+\Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow
+(match k return (\lambda (_: K).Prop) with [(Bind _) \Rightarrow True | (Flat
+_) \Rightarrow False])])) I (THead (Flat Cast) u t4) H0) in (False_ind (ex2 T
+(\lambda (t: T).(pr0 (THead (Bind Abbr) u2 w) t)) (\lambda (t: T).(pr0 t2
+t))) H1)))]) in (H1 (refl_equal T (THead (Flat Cast) u t4)))))) t5 (sym_eq T
+t5 t2 H10))) t H8 H9 H7)))]) in (H11 (refl_equal T t) (refl_equal T t2))))))
+t1 H7)) t H5 H6 H2 H3 H4))) | (pr0_zeta b H2 t0 t3 H3 u) \Rightarrow (\lambda
+(H4: (eq T (THead (Bind b) u (lift (S O) O t0)) t)).(\lambda (H5: (eq T t3
+t1)).(eq_ind T (THead (Bind b) u (lift (S O) O t0)) (\lambda (_: T).((eq T t3
+t1) \to ((not (eq B b Abst)) \to ((pr0 t0 t3) \to (ex2 T (\lambda (t2:
+T).(pr0 t1 t2)) (\lambda (t1: T).(pr0 t2 t1))))))) (\lambda (H6: (eq T t3
+t1)).(eq_ind T t1 (\lambda (t: T).((not (eq B b Abst)) \to ((pr0 t0 t) \to
+(ex2 T (\lambda (t2: T).(pr0 t1 t2)) (\lambda (t1: T).(pr0 t2 t1))))))
+(\lambda (H7: (not (eq B b Abst))).(\lambda (H8: (pr0 t0 t1)).(let H9 \def
+(match H1 return (\lambda (t0: T).(\lambda (t3: T).(\lambda (_: (pr0 t0
+t3)).((eq T t0 t) \to ((eq T t3 t2) \to (ex2 T (\lambda (t: T).(pr0 t1 t))
+(\lambda (t: T).(pr0 t2 t)))))))) with [(pr0_refl t4) \Rightarrow (\lambda
+(H6: (eq T t4 t)).(\lambda (H9: (eq T t4 t2)).(eq_ind T t (\lambda (t:
+T).((eq T t t2) \to (ex2 T (\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0:
+T).(pr0 t2 t0))))) (\lambda (H10: (eq T t t2)).(eq_ind T t2 (\lambda (_:
+T).(ex2 T (\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 t2 t0)))) (let
+H0 \def (eq_ind_r T t (\lambda (t: T).(eq T t t2)) H10 (THead (Bind b) u
+(lift (S O) O t0)) H4) in (eq_ind T (THead (Bind b) u (lift (S O) O t0))
+(\lambda (t: T).(ex2 T (\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 t
+t0)))) (let H1 \def (eq_ind_r T t (\lambda (t: T).(eq T t4 t)) H6 (THead
+(Bind b) u (lift (S O) O t0)) H4) in (let H2 \def (eq_ind_r T t (\lambda (t:
+T).(\forall (v: T).((tlt v t) \to (\forall (t1: T).((pr0 v t1) \to (\forall
+(t2: T).((pr0 v t2) \to (ex2 T (\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0:
+T).(pr0 t2 t0)))))))))) H (THead (Bind b) u (lift (S O) O t0)) H4) in
+(ex_intro2 T (\lambda (t: T).(pr0 t1 t)) (\lambda (t: T).(pr0 (THead (Bind b)
+u (lift (S O) O t0)) t)) t1 (pr0_refl t1) (pr0_zeta b H7 t0 t1 H8 u)))) t2
+H0)) t (sym_eq T t t2 H10))) t4 (sym_eq T t4 t H6) H9))) | (pr0_comp u1 u2 H6
+t4 t5 H7 k) \Rightarrow (\lambda (H9: (eq T (THead k u1 t4) t)).(\lambda
+(H10: (eq T (THead k u2 t5) t2)).(eq_ind T (THead k u1 t4) (\lambda (_:
+T).((eq T (THead k u2 t5) t2) \to ((pr0 u1 u2) \to ((pr0 t4 t5) \to (ex2 T
+(\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 t2 t0))))))) (\lambda
+(H11: (eq T (THead k u2 t5) t2)).(eq_ind T (THead k u2 t5) (\lambda (t:
+T).((pr0 u1 u2) \to ((pr0 t4 t5) \to (ex2 T (\lambda (t0: T).(pr0 t1 t0))
+(\lambda (t0: T).(pr0 t t0)))))) (\lambda (_: (pr0 u1 u2)).(\lambda (H13:
+(pr0 t4 t5)).(let H0 \def (eq_ind_r T t (\lambda (t: T).(eq T (THead (Bind b)
+u (lift (S O) O t0)) t)) H4 (THead k u1 t4) H9) in (let H1 \def (match H0
+return (\lambda (t: T).(\lambda (_: (eq ? ? t)).((eq T t (THead k u1 t4)) \to
+(ex2 T (\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 (THead k u2 t5)
+t0)))))) with [refl_equal \Rightarrow (\lambda (H0: (eq T (THead (Bind b) u
+(lift (S O) O t0)) (THead k u1 t4))).(let H1 \def (f_equal T T (\lambda (e:
+T).(match e return (\lambda (_: T).T) with [(TSort _) \Rightarrow ((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 (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))]) in lref_map)
+(\lambda (x: nat).(plus x (S O))) O t0) | (TLRef _) \Rightarrow ((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 (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))]) in lref_map)
+(\lambda (x: nat).(plus x (S O))) O t0) | (THead _ _ t) \Rightarrow t]))
+(THead (Bind b) u (lift (S O) O t0)) (THead k u1 t4) H0) in ((let H2 \def
+(f_equal T T (\lambda (e: T).(match e return (\lambda (_: T).T) with [(TSort
+_) \Rightarrow u | (TLRef _) \Rightarrow u | (THead _ t _) \Rightarrow t]))
+(THead (Bind b) u (lift (S O) O t0)) (THead k u1 t4) H0) in ((let H3 \def
+(f_equal T K (\lambda (e: T).(match e return (\lambda (_: T).K) with [(TSort
+_) \Rightarrow (Bind b) | (TLRef _) \Rightarrow (Bind b) | (THead k _ _)
+\Rightarrow k])) (THead (Bind b) u (lift (S O) O t0)) (THead k u1 t4) H0) in
+(eq_ind K (Bind b) (\lambda (k: K).((eq T u u1) \to ((eq T (lift (S O) O t0)
+t4) \to (ex2 T (\lambda (t: T).(pr0 t1 t)) (\lambda (t: T).(pr0 (THead k u2
+t5) t)))))) (\lambda (H10: (eq T u u1)).(eq_ind T u1 (\lambda (_: T).((eq T
+(lift (S O) O t0) t4) \to (ex2 T (\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0:
+T).(pr0 (THead (Bind b) u2 t5) t0))))) (\lambda (H11: (eq T (lift (S O) O t0)
+t4)).(eq_ind T (lift (S O) O t0) (\lambda (_: T).(ex2 T (\lambda (t0: T).(pr0
+t1 t0)) (\lambda (t0: T).(pr0 (THead (Bind b) u2 t5) t0)))) (let H4 \def
+(eq_ind_r K k (\lambda (k: K).(eq T (THead k u1 t4) t)) H9 (Bind b) H3) in
+(let H5 \def (eq_ind_r T t4 (\lambda (t: T).(pr0 t t5)) H13 (lift (S O) O t0)
+H11) in (ex2_ind T (\lambda (t2: T).(eq T t5 (lift (S O) O t2))) (\lambda
+(t2: T).(pr0 t0 t2)) (ex2 T (\lambda (t: T).(pr0 t1 t)) (\lambda (t: T).(pr0
+(THead (Bind b) u2 t5) t))) (\lambda (x: T).(\lambda (H6: (eq T t5 (lift (S
+O) O x))).(\lambda (H9: (pr0 t0 x)).(let H12 \def (eq_ind_r T t4 (\lambda
+(t0: T).(eq T (THead (Bind b) u1 t0) t)) H4 (lift (S O) O t0) H11) in (let
+H13 \def (eq_ind_r T t (\lambda (t: T).(\forall (v: T).((tlt v t) \to
+(\forall (t1: T).((pr0 v t1) \to (\forall (t2: T).((pr0 v t2) \to (ex2 T
+(\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 t2 t0)))))))))) H (THead
+(Bind b) u1 (lift (S O) O t0)) H12) in (eq_ind_r T (lift (S O) O x) (\lambda
+(t: T).(ex2 T (\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 (THead
+(Bind b) u2 t) t0)))) (ex2_ind T (\lambda (t: T).(pr0 x t)) (\lambda (t:
+T).(pr0 t1 t)) (ex2 T (\lambda (t: T).(pr0 t1 t)) (\lambda (t: T).(pr0 (THead
+(Bind b) u2 (lift (S O) O x)) t))) (\lambda (x0: T).(\lambda (H8: (pr0 x
+x0)).(\lambda (H14: (pr0 t1 x0)).(ex_intro2 T (\lambda (t: T).(pr0 t1 t))
+(\lambda (t: T).(pr0 (THead (Bind b) u2 (lift (S O) O x)) t)) x0 H14
+(pr0_zeta b H7 x x0 H8 u2))))) (H13 t0 (lift_tlt_dx (Bind b) u1 t0 (S O) O) x
+H9 t1 H8)) t5 H6)))))) (pr0_gen_lift t0 t5 (S O) O H5)))) t4 H11)) u (sym_eq
+T u u1 H10))) k H3)) H2)) H1)))]) in (H1 (refl_equal T (THead k u1 t4)))))))
+t2 H11)) t H9 H10 H6 H7))) | (pr0_beta u0 v1 v2 H6 t4 t5 H7) \Rightarrow
+(\lambda (H8: (eq T (THead (Flat Appl) v1 (THead (Bind Abst) u0 t4))
+t)).(\lambda (H9: (eq T (THead (Bind Abbr) v2 t5) t2)).(eq_ind T (THead (Flat
+Appl) v1 (THead (Bind Abst) u0 t4)) (\lambda (_: T).((eq T (THead (Bind Abbr)
+v2 t5) t2) \to ((pr0 v1 v2) \to ((pr0 t4 t5) \to (ex2 T (\lambda (t0: T).(pr0
+t1 t0)) (\lambda (t0: T).(pr0 t2 t0))))))) (\lambda (H10: (eq T (THead (Bind
+Abbr) v2 t5) t2)).(eq_ind T (THead (Bind Abbr) v2 t5) (\lambda (t: T).((pr0
+v1 v2) \to ((pr0 t4 t5) \to (ex2 T (\lambda (t0: T).(pr0 t1 t0)) (\lambda
+(t0: T).(pr0 t t0)))))) (\lambda (_: (pr0 v1 v2)).(\lambda (_: (pr0 t4
+t5)).(let H0 \def (eq_ind_r T t (\lambda (t: T).(eq T (THead (Bind b) u (lift
+(S O) O t0)) t)) H4 (THead (Flat Appl) v1 (THead (Bind Abst) u0 t4)) H8) in
+(let H1 \def (match H0 return (\lambda (t: T).(\lambda (_: (eq ? ? t)).((eq T
+t (THead (Flat Appl) v1 (THead (Bind Abst) u0 t4))) \to (ex2 T (\lambda (t0:
+T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 (THead (Bind Abbr) v2 t5) t0)))))) with
+[refl_equal \Rightarrow (\lambda (H0: (eq T (THead (Bind b) u (lift (S O) O
+t0)) (THead (Flat Appl) v1 (THead (Bind Abst) u0 t4)))).(let H1 \def (eq_ind
+T (THead (Bind b) u (lift (S O) O t0)) (\lambda (e: T).(match e return
+(\lambda (_: T).Prop) with [(TSort _) \Rightarrow False | (TLRef _)
+\Rightarrow False | (THead k _ _) \Rightarrow (match k return (\lambda (_:
+K).Prop) with [(Bind _) \Rightarrow True | (Flat _) \Rightarrow False])])) I
+(THead (Flat Appl) v1 (THead (Bind Abst) u0 t4)) H0) in (False_ind (ex2 T
+(\lambda (t: T).(pr0 t1 t)) (\lambda (t: T).(pr0 (THead (Bind Abbr) v2 t5)
+t))) H1)))]) in (H1 (refl_equal T (THead (Flat Appl) v1 (THead (Bind Abst) u0
+t4)))))))) t2 H10)) t H8 H9 H6 H7))) | (pr0_upsilon b0 H6 v1 v2 H7 u1 u2 H8
+t4 t5 H9) \Rightarrow (\lambda (H10: (eq T (THead (Flat Appl) v1 (THead (Bind
+b0) u1 t4)) t)).(\lambda (H11: (eq T (THead (Bind b0) u2 (THead (Flat Appl)
+(lift (S O) O v2) t5)) t2)).(eq_ind T (THead (Flat Appl) v1 (THead (Bind b0)
+u1 t4)) (\lambda (_: T).((eq T (THead (Bind b0) u2 (THead (Flat Appl) (lift
+(S O) O v2) t5)) t2) \to ((not (eq B b0 Abst)) \to ((pr0 v1 v2) \to ((pr0 u1
+u2) \to ((pr0 t4 t5) \to (ex2 T (\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0:
+T).(pr0 t2 t0))))))))) (\lambda (H12: (eq T (THead (Bind b0) u2 (THead (Flat
+Appl) (lift (S O) O v2) t5)) t2)).(eq_ind T (THead (Bind b0) u2 (THead (Flat
+Appl) (lift (S O) O v2) t5)) (\lambda (t: T).((not (eq B b0 Abst)) \to ((pr0
+v1 v2) \to ((pr0 u1 u2) \to ((pr0 t4 t5) \to (ex2 T (\lambda (t0: T).(pr0 t1
+t0)) (\lambda (t0: T).(pr0 t t0)))))))) (\lambda (_: (not (eq B b0
+Abst))).(\lambda (_: (pr0 v1 v2)).(\lambda (_: (pr0 u1 u2)).(\lambda (_: (pr0
+t4 t5)).(let H0 \def (eq_ind_r T t (\lambda (t: T).(eq T (THead (Bind b) u
+(lift (S O) O t0)) t)) H4 (THead (Flat Appl) v1 (THead (Bind b0) u1 t4)) H10)
+in (let H1 \def (match H0 return (\lambda (t: T).(\lambda (_: (eq ? ?
+t)).((eq T t (THead (Flat Appl) v1 (THead (Bind b0) u1 t4))) \to (ex2 T
+(\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 (THead (Bind b0) u2
+(THead (Flat Appl) (lift (S O) O v2) t5)) t0)))))) with [refl_equal
+\Rightarrow (\lambda (H0: (eq T (THead (Bind b) u (lift (S O) O t0)) (THead
+(Flat Appl) v1 (THead (Bind b0) u1 t4)))).(let H1 \def (eq_ind T (THead (Bind
+b) u (lift (S O) O t0)) (\lambda (e: T).(match e return (\lambda (_: T).Prop)
+with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | (THead k _
+_) \Rightarrow (match k return (\lambda (_: K).Prop) with [(Bind _)
+\Rightarrow True | (Flat _) \Rightarrow False])])) I (THead (Flat Appl) v1
+(THead (Bind b0) u1 t4)) H0) in (False_ind (ex2 T (\lambda (t: T).(pr0 t1 t))
+(\lambda (t: T).(pr0 (THead (Bind b0) u2 (THead (Flat Appl) (lift (S O) O v2)
+t5)) t))) H1)))]) in (H1 (refl_equal T (THead (Flat Appl) v1 (THead (Bind b0)
+u1 t4)))))))))) t2 H12)) t H10 H11 H6 H7 H8 H9))) | (pr0_delta u1 u2 H6 t4 t5
+H7 w H8) \Rightarrow (\lambda (H9: (eq T (THead (Bind Abbr) u1 t4)
+t)).(\lambda (H10: (eq T (THead (Bind Abbr) u2 w) t2)).(eq_ind T (THead (Bind
+Abbr) u1 t4) (\lambda (_: T).((eq T (THead (Bind Abbr) u2 w) t2) \to ((pr0 u1
+u2) \to ((pr0 t4 t5) \to ((subst0 O u2 t5 w) \to (ex2 T (\lambda (t0: T).(pr0
+t1 t0)) (\lambda (t0: T).(pr0 t2 t0)))))))) (\lambda (H11: (eq T (THead (Bind
+Abbr) u2 w) t2)).(eq_ind T (THead (Bind Abbr) u2 w) (\lambda (t: T).((pr0 u1
+u2) \to ((pr0 t4 t5) \to ((subst0 O u2 t5 w) \to (ex2 T (\lambda (t0: T).(pr0
+t1 t0)) (\lambda (t0: T).(pr0 t t0))))))) (\lambda (_: (pr0 u1 u2)).(\lambda
+(H13: (pr0 t4 t5)).(\lambda (H14: (subst0 O u2 t5 w)).(let H0 \def (eq_ind_r
+T t (\lambda (t: T).(eq T (THead (Bind b) u (lift (S O) O t0)) t)) H4 (THead
+(Bind Abbr) u1 t4) H9) in (let H1 \def (match H0 return (\lambda (t:
+T).(\lambda (_: (eq ? ? t)).((eq T t (THead (Bind Abbr) u1 t4)) \to (ex2 T
+(\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 (THead (Bind Abbr) u2 w)
+t0)))))) with [refl_equal \Rightarrow (\lambda (H0: (eq T (THead (Bind b) u
+(lift (S O) O t0)) (THead (Bind Abbr) u1 t4))).(let H1 \def (f_equal T T
+(\lambda (e: T).(match e return (\lambda (_: T).T) with [(TSort _)
+\Rightarrow ((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
+(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))]) in lref_map) (\lambda (x: nat).(plus x (S O))) O t0) | (TLRef _)
+\Rightarrow ((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
+(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))]) in lref_map) (\lambda (x: nat).(plus x (S O))) O t0) | (THead _ _ t)
+\Rightarrow t])) (THead (Bind b) u (lift (S O) O t0)) (THead (Bind Abbr) u1
+t4) H0) in ((let H2 \def (f_equal T T (\lambda (e: T).(match e return
+(\lambda (_: T).T) with [(TSort _) \Rightarrow u | (TLRef _) \Rightarrow u |
+(THead _ t _) \Rightarrow t])) (THead (Bind b) u (lift (S O) O t0)) (THead
+(Bind Abbr) u1 t4) H0) in ((let H3 \def (f_equal T B (\lambda (e: T).(match e
+return (\lambda (_: T).B) with [(TSort _) \Rightarrow b | (TLRef _)
+\Rightarrow b | (THead k _ _) \Rightarrow (match k return (\lambda (_: K).B)
+with [(Bind b) \Rightarrow b | (Flat _) \Rightarrow b])])) (THead (Bind b) u
+(lift (S O) O t0)) (THead (Bind Abbr) u1 t4) H0) in (eq_ind B Abbr (\lambda
+(_: B).((eq T u u1) \to ((eq T (lift (S O) O t0) t4) \to (ex2 T (\lambda (t:
+T).(pr0 t1 t)) (\lambda (t: T).(pr0 (THead (Bind Abbr) u2 w) t)))))) (\lambda
+(H10: (eq T u u1)).(eq_ind T u1 (\lambda (_: T).((eq T (lift (S O) O t0) t4)
+\to (ex2 T (\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 (THead (Bind
+Abbr) u2 w) t0))))) (\lambda (H11: (eq T (lift (S O) O t0) t4)).(eq_ind T
+(lift (S O) O t0) (\lambda (_: T).(ex2 T (\lambda (t0: T).(pr0 t1 t0))
+(\lambda (t0: T).(pr0 (THead (Bind Abbr) u2 w) t0)))) (let H4 \def (eq_ind_r
+T t4 (\lambda (t: T).(pr0 t t5)) H13 (lift (S O) O t0) H11) in (ex2_ind T
+(\lambda (t2: T).(eq T t5 (lift (S O) O t2))) (\lambda (t2: T).(pr0 t0 t2))
+(ex2 T (\lambda (t: T).(pr0 t1 t)) (\lambda (t: T).(pr0 (THead (Bind Abbr) u2
+w) t))) (\lambda (x: T).(\lambda (H5: (eq T t5 (lift (S O) O x))).(\lambda
+(H6: (pr0 t0 x)).(let H9 \def (eq_ind_r T t4 (\lambda (t0: T).(eq T (THead
+(Bind Abbr) u1 t0) t)) H9 (lift (S O) O t0) H11) in (let H12 \def (eq_ind_r T
+t (\lambda (t: T).(\forall (v: T).((tlt v t) \to (\forall (t1: T).((pr0 v t1)
+\to (\forall (t2: T).((pr0 v t2) \to (ex2 T (\lambda (t0: T).(pr0 t1 t0))
+(\lambda (t0: T).(pr0 t2 t0)))))))))) H (THead (Bind Abbr) u1 (lift (S O) O
+t0)) H9) in (let H13 \def (eq_ind T t5 (\lambda (t: T).(subst0 O u2 t w)) H14
+(lift (S O) O x) H5) in (let H7 \def (eq_ind B b (\lambda (b: B).(not (eq B b
+Abst))) H7 Abbr H3) in (ex2_ind T (\lambda (t: T).(pr0 x t)) (\lambda (t:
+T).(pr0 t1 t)) (ex2 T (\lambda (t: T).(pr0 t1 t)) (\lambda (t: T).(pr0 (THead
+(Bind Abbr) u2 w) t))) (\lambda (x0: T).(\lambda (_: (pr0 x x0)).(\lambda (_:
+(pr0 t1 x0)).(ex2_sym T (pr0 (THead (Bind Abbr) u2 w)) (pr0 t1)
+(pr0_confluence__pr0_delta_epsilon u2 (lift (S O) O x) w H13 x (pr0_refl
+(lift (S O) O x)) t1))))) (H12 t0 (lift_tlt_dx (Bind Abbr) u1 t0 (S O) O) x
+H6 t1 H8))))))))) (pr0_gen_lift t0 t5 (S O) O H4))) t4 H11)) u (sym_eq T u u1
+H10))) b (sym_eq B b Abbr H3))) H2)) H1)))]) in (H1 (refl_equal T (THead
+(Bind Abbr) u1 t4)))))))) t2 H11)) t H9 H10 H6 H7 H8))) | (pr0_zeta b0 H6 t4
+t5 H7 u0) \Rightarrow (\lambda (H9: (eq T (THead (Bind b0) u0 (lift (S O) O
+t4)) t)).(\lambda (H10: (eq T t5 t2)).(eq_ind T (THead (Bind b0) u0 (lift (S
+O) O t4)) (\lambda (_: T).((eq T t5 t2) \to ((not (eq B b0 Abst)) \to ((pr0
+t4 t5) \to (ex2 T (\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 t2
+t0))))))) (\lambda (H11: (eq T t5 t2)).(eq_ind T t2 (\lambda (t: T).((not (eq
+B b0 Abst)) \to ((pr0 t4 t) \to (ex2 T (\lambda (t0: T).(pr0 t1 t0)) (\lambda
+(t0: T).(pr0 t2 t0)))))) (\lambda (_: (not (eq B b0 Abst))).(\lambda (H13:
+(pr0 t4 t2)).(let H0 \def (eq_ind_r T t (\lambda (t: T).(eq T (THead (Bind b)
+u (lift (S O) O t0)) t)) H4 (THead (Bind b0) u0 (lift (S O) O t4)) H9) in
+(let H1 \def (match H0 return (\lambda (t: T).(\lambda (_: (eq ? ? t)).((eq T
+t (THead (Bind b0) u0 (lift (S O) O t4))) \to (ex2 T (\lambda (t0: T).(pr0 t1
+t0)) (\lambda (t0: T).(pr0 t2 t0)))))) with [refl_equal \Rightarrow (\lambda
+(H0: (eq T (THead (Bind b) u (lift (S O) O t0)) (THead (Bind b0) u0 (lift (S
+O) O t4)))).(let H1 \def (f_equal T T (\lambda (e: T).(match e return
+(\lambda (_: T).T) with [(TSort _) \Rightarrow ((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 (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))]) in lref_map) (\lambda
+(x: nat).(plus x (S O))) O t0) | (TLRef _) \Rightarrow ((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 (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))]) in lref_map) (\lambda
+(x: nat).(plus x (S O))) O t0) | (THead _ _ t) \Rightarrow t])) (THead (Bind
+b) u (lift (S O) O t0)) (THead (Bind b0) u0 (lift (S O) O t4)) H0) in ((let
+H2 \def (f_equal T T (\lambda (e: T).(match e return (\lambda (_: T).T) with
+[(TSort _) \Rightarrow u | (TLRef _) \Rightarrow u | (THead _ t _)
+\Rightarrow t])) (THead (Bind b) u (lift (S O) O t0)) (THead (Bind b0) u0
+(lift (S O) O t4)) H0) in ((let H3 \def (f_equal T B (\lambda (e: T).(match e
+return (\lambda (_: T).B) with [(TSort _) \Rightarrow b | (TLRef _)
+\Rightarrow b | (THead k _ _) \Rightarrow (match k return (\lambda (_: K).B)
+with [(Bind b) \Rightarrow b | (Flat _) \Rightarrow b])])) (THead (Bind b) u
+(lift (S O) O t0)) (THead (Bind b0) u0 (lift (S O) O t4)) H0) in (eq_ind B b0
+(\lambda (_: B).((eq T u u0) \to ((eq T (lift (S O) O t0) (lift (S O) O t4))
+\to (ex2 T (\lambda (t: T).(pr0 t1 t)) (\lambda (t: T).(pr0 t2 t))))))
+(\lambda (H10: (eq T u u0)).(eq_ind T u0 (\lambda (_: T).((eq T (lift (S O) O
+t0) (lift (S O) O t4)) \to (ex2 T (\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0:
+T).(pr0 t2 t0))))) (\lambda (H11: (eq T (lift (S O) O t0) (lift (S O) O
+t4))).(eq_ind T (lift (S O) O t0) (\lambda (_: T).(ex2 T (\lambda (t0:
+T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 t2 t0)))) (let H4 \def (eq_ind_r T t
+(\lambda (t: T).(\forall (v: T).((tlt v t) \to (\forall (t1: T).((pr0 v t1)
+\to (\forall (t2: T).((pr0 v t2) \to (ex2 T (\lambda (t0: T).(pr0 t1 t0))
+(\lambda (t0: T).(pr0 t2 t0)))))))))) H (THead (Bind b0) u0 (lift (S O) O
+t4)) H9) in (let H5 \def (eq_ind T t0 (\lambda (t: T).(pr0 t t1)) H8 t4
+(lift_inj t0 t4 (S O) O H11)) in (let H6 \def (eq_ind B b (\lambda (b:
+B).(not (eq B b Abst))) H7 b0 H3) in (ex2_ind T (\lambda (t: T).(pr0 t1 t))
+(\lambda (t: T).(pr0 t2 t)) (ex2 T (\lambda (t: T).(pr0 t1 t)) (\lambda (t:
+T).(pr0 t2 t))) (\lambda (x: T).(\lambda (H7: (pr0 t1 x)).(\lambda (H8: (pr0
+t2 x)).(ex_intro2 T (\lambda (t: T).(pr0 t1 t)) (\lambda (t: T).(pr0 t2 t)) x
+H7 H8)))) (H4 t4 (lift_tlt_dx (Bind b0) u0 t4 (S O) O) t1 H5 t2 H13)))))
+(lift (S O) O t4) H11)) u (sym_eq T u u0 H10))) b (sym_eq B b b0 H3))) H2))
+H1)))]) in (H1 (refl_equal T (THead (Bind b0) u0 (lift (S O) O t4)))))))) t5
+(sym_eq T t5 t2 H11))) t H9 H10 H6 H7))) | (pr0_epsilon t4 t5 H6 u0)
+\Rightarrow (\lambda (H7: (eq T (THead (Flat Cast) u0 t4) t)).(\lambda (H8:
+(eq T t5 t2)).(eq_ind T (THead (Flat Cast) u0 t4) (\lambda (_: T).((eq T t5
+t2) \to ((pr0 t4 t5) \to (ex2 T (\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0:
+T).(pr0 t2 t0)))))) (\lambda (H9: (eq T t5 t2)).(eq_ind T t2 (\lambda (t:
+T).((pr0 t4 t) \to (ex2 T (\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0: T).(pr0
+t2 t0))))) (\lambda (_: (pr0 t4 t2)).(let H0 \def (eq_ind_r T t (\lambda (t:
+T).(eq T (THead (Bind b) u (lift (S O) O t0)) t)) H4 (THead (Flat Cast) u0
+t4) H7) in (let H1 \def (match H0 return (\lambda (t: T).(\lambda (_: (eq ? ?
+t)).((eq T t (THead (Flat Cast) u0 t4)) \to (ex2 T (\lambda (t0: T).(pr0 t1
+t0)) (\lambda (t0: T).(pr0 t2 t0)))))) with [refl_equal \Rightarrow (\lambda
+(H0: (eq T (THead (Bind b) u (lift (S O) O t0)) (THead (Flat Cast) u0
+t4))).(let H1 \def (eq_ind T (THead (Bind b) u (lift (S O) O t0)) (\lambda
+(e: T).(match e return (\lambda (_: T).Prop) with [(TSort _) \Rightarrow
+False | (TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow (match k
+return (\lambda (_: K).Prop) with [(Bind _) \Rightarrow True | (Flat _)
+\Rightarrow False])])) I (THead (Flat Cast) u0 t4) H0) in (False_ind (ex2 T
+(\lambda (t: T).(pr0 t1 t)) (\lambda (t: T).(pr0 t2 t))) H1)))]) in (H1
+(refl_equal T (THead (Flat Cast) u0 t4)))))) t5 (sym_eq T t5 t2 H9))) t H7 H8
+H6)))]) in (H9 (refl_equal T t) (refl_equal T t2))))) t3 (sym_eq T t3 t1
+H6))) t H4 H5 H2 H3))) | (pr0_epsilon t0 t3 H2 u) \Rightarrow (\lambda (H3:
+(eq T (THead (Flat Cast) u t0) t)).(\lambda (H4: (eq T t3 t1)).(eq_ind T
+(THead (Flat Cast) u t0) (\lambda (_: T).((eq T t3 t1) \to ((pr0 t0 t3) \to
+(ex2 T (\lambda (t2: T).(pr0 t1 t2)) (\lambda (t1: T).(pr0 t2 t1))))))
+(\lambda (H5: (eq T t3 t1)).(eq_ind T t1 (\lambda (t: T).((pr0 t0 t) \to (ex2
+T (\lambda (t2: T).(pr0 t1 t2)) (\lambda (t1: T).(pr0 t2 t1))))) (\lambda
+(H6: (pr0 t0 t1)).(let H7 \def (match H1 return (\lambda (t0: T).(\lambda
+(t3: T).(\lambda (_: (pr0 t0 t3)).((eq T t0 t) \to ((eq T t3 t2) \to (ex2 T
+(\lambda (t: T).(pr0 t1 t)) (\lambda (t: T).(pr0 t2 t)))))))) with [(pr0_refl
+t4) \Rightarrow (\lambda (H5: (eq T t4 t)).(\lambda (H7: (eq T t4
+t2)).(eq_ind T t (\lambda (t: T).((eq T t t2) \to (ex2 T (\lambda (t0:
+T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 t2 t0))))) (\lambda (H8: (eq T t
+t2)).(eq_ind T t2 (\lambda (_: T).(ex2 T (\lambda (t0: T).(pr0 t1 t0))
+(\lambda (t0: T).(pr0 t2 t0)))) (let H0 \def (eq_ind_r T t (\lambda (t:
+T).(eq T t t2)) H8 (THead (Flat Cast) u t0) H3) in (eq_ind T (THead (Flat
+Cast) u t0) (\lambda (t: T).(ex2 T (\lambda (t0: T).(pr0 t1 t0)) (\lambda
+(t0: T).(pr0 t t0)))) (let H1 \def (eq_ind_r T t (\lambda (t: T).(eq T t4 t))
+H5 (THead (Flat Cast) u t0) H3) in (let H2 \def (eq_ind_r T t (\lambda (t:
+T).(\forall (v: T).((tlt v t) \to (\forall (t1: T).((pr0 v t1) \to (\forall
+(t2: T).((pr0 v t2) \to (ex2 T (\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0:
+T).(pr0 t2 t0)))))))))) H (THead (Flat Cast) u t0) H3) in (ex_intro2 T
+(\lambda (t: T).(pr0 t1 t)) (\lambda (t: T).(pr0 (THead (Flat Cast) u t0) t))
+t1 (pr0_refl t1) (pr0_epsilon t0 t1 H6 u)))) t2 H0)) t (sym_eq T t t2 H8)))
+t4 (sym_eq T t4 t H5) H7))) | (pr0_comp u1 u2 H5 t4 t5 H6 k) \Rightarrow
+(\lambda (H7: (eq T (THead k u1 t4) t)).(\lambda (H8: (eq T (THead k u2 t5)
+t2)).(eq_ind T (THead k u1 t4) (\lambda (_: T).((eq T (THead k u2 t5) t2) \to
+((pr0 u1 u2) \to ((pr0 t4 t5) \to (ex2 T (\lambda (t0: T).(pr0 t1 t0))
+(\lambda (t0: T).(pr0 t2 t0))))))) (\lambda (H9: (eq T (THead k u2 t5)
+t2)).(eq_ind T (THead k u2 t5) (\lambda (t: T).((pr0 u1 u2) \to ((pr0 t4 t5)
+\to (ex2 T (\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 t t0))))))
+(\lambda (_: (pr0 u1 u2)).(\lambda (H11: (pr0 t4 t5)).(let H0 \def (eq_ind_r
+T t (\lambda (t: T).(eq T (THead (Flat Cast) u t0) t)) H3 (THead k u1 t4) H7)
+in (let H1 \def (match H0 return (\lambda (t: T).(\lambda (_: (eq ? ?
+t)).((eq T t (THead k u1 t4)) \to (ex2 T (\lambda (t0: T).(pr0 t1 t0))
+(\lambda (t0: T).(pr0 (THead k u2 t5) t0)))))) with [refl_equal \Rightarrow
+(\lambda (H0: (eq T (THead (Flat Cast) u t0) (THead k u1 t4))).(let H1 \def
+(f_equal T T (\lambda (e: T).(match e return (\lambda (_: T).T) with [(TSort
+_) \Rightarrow t0 | (TLRef _) \Rightarrow t0 | (THead _ _ t) \Rightarrow t]))
+(THead (Flat Cast) u t0) (THead k u1 t4) H0) in ((let H2 \def (f_equal T T
+(\lambda (e: T).(match e return (\lambda (_: T).T) with [(TSort _)
+\Rightarrow u | (TLRef _) \Rightarrow u | (THead _ t _) \Rightarrow t]))
+(THead (Flat Cast) u t0) (THead k u1 t4) H0) in ((let H3 \def (f_equal T K
+(\lambda (e: T).(match e return (\lambda (_: T).K) with [(TSort _)
+\Rightarrow (Flat Cast) | (TLRef _) \Rightarrow (Flat Cast) | (THead k _ _)
+\Rightarrow k])) (THead (Flat Cast) u t0) (THead k u1 t4) H0) in (eq_ind K
+(Flat Cast) (\lambda (k: K).((eq T u u1) \to ((eq T t0 t4) \to (ex2 T
+(\lambda (t: T).(pr0 t1 t)) (\lambda (t: T).(pr0 (THead k u2 t5) t))))))
+(\lambda (H8: (eq T u u1)).(eq_ind T u1 (\lambda (_: T).((eq T t0 t4) \to
+(ex2 T (\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 (THead (Flat Cast)
+u2 t5) t0))))) (\lambda (H9: (eq T t0 t4)).(eq_ind T t4 (\lambda (_: T).(ex2
+T (\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 (THead (Flat Cast) u2
+t5) t0)))) (let H4 \def (eq_ind_r K k (\lambda (k: K).(eq T (THead k u1 t4)
+t)) H7 (Flat Cast) H3) in (let H5 \def (eq_ind_r T t (\lambda (t: T).(\forall
+(v: T).((tlt v t) \to (\forall (t1: T).((pr0 v t1) \to (\forall (t2: T).((pr0
+v t2) \to (ex2 T (\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 t2
+t0)))))))))) H (THead (Flat Cast) u1 t4) H4) in (let H6 \def (eq_ind T t0
+(\lambda (t: T).(pr0 t t1)) H6 t4 H9) in (ex2_ind T (\lambda (t: T).(pr0 t1
+t)) (\lambda (t: T).(pr0 t5 t)) (ex2 T (\lambda (t: T).(pr0 t1 t)) (\lambda
+(t: T).(pr0 (THead (Flat Cast) u2 t5) t))) (\lambda (x: T).(\lambda (H7: (pr0
+t1 x)).(\lambda (H10: (pr0 t5 x)).(ex_intro2 T (\lambda (t: T).(pr0 t1 t))
+(\lambda (t: T).(pr0 (THead (Flat Cast) u2 t5) t)) x H7 (pr0_epsilon t5 x H10
+u2))))) (H5 t4 (tlt_head_dx (Flat Cast) u1 t4) t1 H6 t5 H11))))) t0 (sym_eq T
+t0 t4 H9))) u (sym_eq T u u1 H8))) k H3)) H2)) H1)))]) in (H1 (refl_equal T
+(THead k u1 t4))))))) t2 H9)) t H7 H8 H5 H6))) | (pr0_beta u0 v1 v2 H5 t4 t5
+H6) \Rightarrow (\lambda (H7: (eq T (THead (Flat Appl) v1 (THead (Bind Abst)
+u0 t4)) t)).(\lambda (H8: (eq T (THead (Bind Abbr) v2 t5) t2)).(eq_ind T
+(THead (Flat Appl) v1 (THead (Bind Abst) u0 t4)) (\lambda (_: T).((eq T
+(THead (Bind Abbr) v2 t5) t2) \to ((pr0 v1 v2) \to ((pr0 t4 t5) \to (ex2 T
+(\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 t2 t0))))))) (\lambda
+(H9: (eq T (THead (Bind Abbr) v2 t5) t2)).(eq_ind T (THead (Bind Abbr) v2 t5)
+(\lambda (t: T).((pr0 v1 v2) \to ((pr0 t4 t5) \to (ex2 T (\lambda (t0:
+T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 t t0)))))) (\lambda (_: (pr0 v1
+v2)).(\lambda (_: (pr0 t4 t5)).(let H0 \def (eq_ind_r T t (\lambda (t: T).(eq
+T (THead (Flat Cast) u t0) t)) H3 (THead (Flat Appl) v1 (THead (Bind Abst) u0
+t4)) H7) in (let H1 \def (match H0 return (\lambda (t: T).(\lambda (_: (eq ?
+? t)).((eq T t (THead (Flat Appl) v1 (THead (Bind Abst) u0 t4))) \to (ex2 T
+(\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 (THead (Bind Abbr) v2 t5)
+t0)))))) with [refl_equal \Rightarrow (\lambda (H0: (eq T (THead (Flat Cast)
+u t0) (THead (Flat Appl) v1 (THead (Bind Abst) u0 t4)))).(let H1 \def (eq_ind
+T (THead (Flat Cast) u t0) (\lambda (e: T).(match e return (\lambda (_:
+T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False |
+(THead k _ _) \Rightarrow (match k return (\lambda (_: K).Prop) with [(Bind
+_) \Rightarrow False | (Flat f) \Rightarrow (match f return (\lambda (_:
+F).Prop) with [Appl \Rightarrow False | Cast \Rightarrow True])])])) I (THead
+(Flat Appl) v1 (THead (Bind Abst) u0 t4)) H0) in (False_ind (ex2 T (\lambda
+(t: T).(pr0 t1 t)) (\lambda (t: T).(pr0 (THead (Bind Abbr) v2 t5) t)))
+H1)))]) in (H1 (refl_equal T (THead (Flat Appl) v1 (THead (Bind Abst) u0
+t4)))))))) t2 H9)) t H7 H8 H5 H6))) | (pr0_upsilon b H5 v1 v2 H6 u1 u2 H7 t4
+t5 H8) \Rightarrow (\lambda (H9: (eq T (THead (Flat Appl) v1 (THead (Bind b)
+u1 t4)) t)).(\lambda (H10: (eq T (THead (Bind b) u2 (THead (Flat Appl) (lift
+(S O) O v2) t5)) t2)).(eq_ind T (THead (Flat Appl) v1 (THead (Bind b) u1 t4))
+(\lambda (_: T).((eq T (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O
+v2) t5)) t2) \to ((not (eq B b Abst)) \to ((pr0 v1 v2) \to ((pr0 u1 u2) \to
+((pr0 t4 t5) \to (ex2 T (\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0: T).(pr0
+t2 t0))))))))) (\lambda (H11: (eq T (THead (Bind b) u2 (THead (Flat Appl)
+(lift (S O) O v2) t5)) t2)).(eq_ind T (THead (Bind b) u2 (THead (Flat Appl)
+(lift (S O) O v2) t5)) (\lambda (t: T).((not (eq B b Abst)) \to ((pr0 v1 v2)
+\to ((pr0 u1 u2) \to ((pr0 t4 t5) \to (ex2 T (\lambda (t0: T).(pr0 t1 t0))
+(\lambda (t0: T).(pr0 t t0)))))))) (\lambda (_: (not (eq B b Abst))).(\lambda
+(_: (pr0 v1 v2)).(\lambda (_: (pr0 u1 u2)).(\lambda (_: (pr0 t4 t5)).(let H0
+\def (eq_ind_r T t (\lambda (t: T).(eq T (THead (Flat Cast) u t0) t)) H3
+(THead (Flat Appl) v1 (THead (Bind b) u1 t4)) H9) in (let H1 \def (match H0
+return (\lambda (t: T).(\lambda (_: (eq ? ? t)).((eq T t (THead (Flat Appl)
+v1 (THead (Bind b) u1 t4))) \to (ex2 T (\lambda (t0: T).(pr0 t1 t0)) (\lambda
+(t0: T).(pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t5))
+t0)))))) with [refl_equal \Rightarrow (\lambda (H0: (eq T (THead (Flat Cast)
+u t0) (THead (Flat Appl) v1 (THead (Bind b) u1 t4)))).(let H1 \def (eq_ind T
+(THead (Flat Cast) u t0) (\lambda (e: T).(match e return (\lambda (_:
+T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False |
+(THead k _ _) \Rightarrow (match k return (\lambda (_: K).Prop) with [(Bind
+_) \Rightarrow False | (Flat f) \Rightarrow (match f return (\lambda (_:
+F).Prop) with [Appl \Rightarrow False | Cast \Rightarrow True])])])) I (THead
+(Flat Appl) v1 (THead (Bind b) u1 t4)) H0) in (False_ind (ex2 T (\lambda (t:
+T).(pr0 t1 t)) (\lambda (t: T).(pr0 (THead (Bind b) u2 (THead (Flat Appl)
+(lift (S O) O v2) t5)) t))) H1)))]) in (H1 (refl_equal T (THead (Flat Appl)
+v1 (THead (Bind b) u1 t4)))))))))) t2 H11)) t H9 H10 H5 H6 H7 H8))) |
+(pr0_delta u1 u2 H5 t4 t5 H6 w H7) \Rightarrow (\lambda (H8: (eq T (THead
+(Bind Abbr) u1 t4) t)).(\lambda (H9: (eq T (THead (Bind Abbr) u2 w)
+t2)).(eq_ind T (THead (Bind Abbr) u1 t4) (\lambda (_: T).((eq T (THead (Bind
+Abbr) u2 w) t2) \to ((pr0 u1 u2) \to ((pr0 t4 t5) \to ((subst0 O u2 t5 w) \to
+(ex2 T (\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 t2 t0))))))))
+(\lambda (H10: (eq T (THead (Bind Abbr) u2 w) t2)).(eq_ind T (THead (Bind
+Abbr) u2 w) (\lambda (t: T).((pr0 u1 u2) \to ((pr0 t4 t5) \to ((subst0 O u2
+t5 w) \to (ex2 T (\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 t
+t0))))))) (\lambda (_: (pr0 u1 u2)).(\lambda (_: (pr0 t4 t5)).(\lambda (_:
+(subst0 O u2 t5 w)).(let H0 \def (eq_ind_r T t (\lambda (t: T).(eq T (THead
+(Flat Cast) u t0) t)) H3 (THead (Bind Abbr) u1 t4) H8) in (let H1 \def (match
+H0 return (\lambda (t: T).(\lambda (_: (eq ? ? t)).((eq T t (THead (Bind
+Abbr) u1 t4)) \to (ex2 T (\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0: T).(pr0
+(THead (Bind Abbr) u2 w) t0)))))) with [refl_equal \Rightarrow (\lambda (H0:
+(eq T (THead (Flat Cast) u t0) (THead (Bind Abbr) u1 t4))).(let H1 \def
+(eq_ind T (THead (Flat Cast) u t0) (\lambda (e: T).(match e return (\lambda
+(_: T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False
+| (THead k _ _) \Rightarrow (match k return (\lambda (_: K).Prop) with [(Bind
+_) \Rightarrow False | (Flat _) \Rightarrow True])])) I (THead (Bind Abbr) u1
+t4) H0) in (False_ind (ex2 T (\lambda (t: T).(pr0 t1 t)) (\lambda (t: T).(pr0
+(THead (Bind Abbr) u2 w) t))) H1)))]) in (H1 (refl_equal T (THead (Bind Abbr)
+u1 t4)))))))) t2 H10)) t H8 H9 H5 H6 H7))) | (pr0_zeta b H5 t4 t5 H6 u0)
+\Rightarrow (\lambda (H7: (eq T (THead (Bind b) u0 (lift (S O) O t4))
+t)).(\lambda (H8: (eq T t5 t2)).(eq_ind T (THead (Bind b) u0 (lift (S O) O
+t4)) (\lambda (_: T).((eq T t5 t2) \to ((not (eq B b Abst)) \to ((pr0 t4 t5)
+\to (ex2 T (\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 t2 t0)))))))
+(\lambda (H9: (eq T t5 t2)).(eq_ind T t2 (\lambda (t: T).((not (eq B b Abst))
+\to ((pr0 t4 t) \to (ex2 T (\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0:
+T).(pr0 t2 t0)))))) (\lambda (_: (not (eq B b Abst))).(\lambda (_: (pr0 t4
+t2)).(let H0 \def (eq_ind_r T t (\lambda (t: T).(eq T (THead (Flat Cast) u
+t0) t)) H3 (THead (Bind b) u0 (lift (S O) O t4)) H7) in (let H1 \def (match
+H0 return (\lambda (t: T).(\lambda (_: (eq ? ? t)).((eq T t (THead (Bind b)
+u0 (lift (S O) O t4))) \to (ex2 T (\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0:
+T).(pr0 t2 t0)))))) with [refl_equal \Rightarrow (\lambda (H0: (eq T (THead
+(Flat Cast) u t0) (THead (Bind b) u0 (lift (S O) O t4)))).(let H1 \def
+(eq_ind T (THead (Flat Cast) u t0) (\lambda (e: T).(match e return (\lambda
+(_: T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False
+| (THead k _ _) \Rightarrow (match k return (\lambda (_: K).Prop) with [(Bind
+_) \Rightarrow False | (Flat _) \Rightarrow True])])) I (THead (Bind b) u0
+(lift (S O) O t4)) H0) in (False_ind (ex2 T (\lambda (t: T).(pr0 t1 t))
+(\lambda (t: T).(pr0 t2 t))) H1)))]) in (H1 (refl_equal T (THead (Bind b) u0
+(lift (S O) O t4)))))))) t5 (sym_eq T t5 t2 H9))) t H7 H8 H5 H6))) |
+(pr0_epsilon t4 t5 H5 u0) \Rightarrow (\lambda (H7: (eq T (THead (Flat Cast)
+u0 t4) t)).(\lambda (H8: (eq T t5 t2)).(eq_ind T (THead (Flat Cast) u0 t4)
+(\lambda (_: T).((eq T t5 t2) \to ((pr0 t4 t5) \to (ex2 T (\lambda (t0:
+T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 t2 t0)))))) (\lambda (H9: (eq T t5
+t2)).(eq_ind T t2 (\lambda (t: T).((pr0 t4 t) \to (ex2 T (\lambda (t0:
+T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 t2 t0))))) (\lambda (H10: (pr0 t4
+t2)).(let H0 \def (eq_ind_r T t (\lambda (t: T).(eq T (THead (Flat Cast) u
+t0) t)) H3 (THead (Flat Cast) u0 t4) H7) in (let H1 \def (match H0 return
+(\lambda (t: T).(\lambda (_: (eq ? ? t)).((eq T t (THead (Flat Cast) u0 t4))
+\to (ex2 T (\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 t2 t0))))))
+with [refl_equal \Rightarrow (\lambda (H0: (eq T (THead (Flat Cast) u t0)
+(THead (Flat Cast) u0 t4))).(let H1 \def (f_equal T T (\lambda (e: T).(match
+e return (\lambda (_: T).T) with [(TSort _) \Rightarrow t0 | (TLRef _)
+\Rightarrow t0 | (THead _ _ t) \Rightarrow t])) (THead (Flat Cast) u t0)
+(THead (Flat Cast) u0 t4) H0) in ((let H2 \def (f_equal T T (\lambda (e:
+T).(match e return (\lambda (_: T).T) with [(TSort _) \Rightarrow u | (TLRef
+_) \Rightarrow u | (THead _ t _) \Rightarrow t])) (THead (Flat Cast) u t0)
+(THead (Flat Cast) u0 t4) H0) in (eq_ind T u0 (\lambda (_: T).((eq T t0 t4)
+\to (ex2 T (\lambda (t0: T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 t2 t0)))))
+(\lambda (H8: (eq T t0 t4)).(eq_ind T t4 (\lambda (_: T).(ex2 T (\lambda (t0:
+T).(pr0 t1 t0)) (\lambda (t0: T).(pr0 t2 t0)))) (let H3 \def (eq_ind_r T t
+(\lambda (t: T).(\forall (v: T).((tlt v t) \to (\forall (t1: T).((pr0 v t1)
+\to (\forall (t2: T).((pr0 v t2) \to (ex2 T (\lambda (t0: T).(pr0 t1 t0))
+(\lambda (t0: T).(pr0 t2 t0)))))))))) H (THead (Flat Cast) u0 t4) H7) in (let
+H4 \def (eq_ind T t0 (\lambda (t: T).(pr0 t t1)) H6 t4 H8) in (ex2_ind T
+(\lambda (t: T).(pr0 t1 t)) (\lambda (t: T).(pr0 t2 t)) (ex2 T (\lambda (t:
+T).(pr0 t1 t)) (\lambda (t: T).(pr0 t2 t))) (\lambda (x: T).(\lambda (H5:
+(pr0 t1 x)).(\lambda (H6: (pr0 t2 x)).(ex_intro2 T (\lambda (t: T).(pr0 t1
+t)) (\lambda (t: T).(pr0 t2 t)) x H5 H6)))) (H3 t4 (tlt_head_dx (Flat Cast)
+u0 t4) t1 H4 t2 H10)))) t0 (sym_eq T t0 t4 H8))) u (sym_eq T u u0 H2)))
+H1)))]) in (H1 (refl_equal T (THead (Flat Cast) u0 t4)))))) t5 (sym_eq T t5
+t2 H9))) t H7 H8 H5)))]) in (H7 (refl_equal T t) (refl_equal T t2)))) t3
+(sym_eq T t3 t1 H5))) t H3 H4 H2)))]) in (H2 (refl_equal T t) (refl_equal T
+t1))))))))) t0).