]> matita.cs.unibo.it Git - helm.git/blob - matita/contribs/LAMBDA-TYPES/LambdaDelta-1/pr0/pr0.ma
tagged 0.5.0-rc1
[helm.git] / matita / contribs / LAMBDA-TYPES / LambdaDelta-1 / pr0 / pr0.ma
1 (**************************************************************************)
2 (*       ___                                                              *)
3 (*      ||M||                                                             *)
4 (*      ||A||       A project by Andrea Asperti                           *)
5 (*      ||T||                                                             *)
6 (*      ||I||       Developers:                                           *)
7 (*      ||T||         The HELM team.                                      *)
8 (*      ||A||         http://helm.cs.unibo.it                             *)
9 (*      \   /                                                             *)
10 (*       \ /        This file is distributed under the terms of the       *)
11 (*        v         GNU General Public License Version 2                  *)
12 (*                                                                        *)
13 (**************************************************************************)
14
15 (* This file was automatically generated: do not edit *********************)
16
17 include "LambdaDelta-1/pr0/fwd.ma".
18
19 include "LambdaDelta-1/lift/tlt.ma".
20
21 theorem pr0_confluence__pr0_cong_upsilon_refl:
22  \forall (b: B).((not (eq B b Abst)) \to (\forall (u0: T).(\forall (u3: 
23 T).((pr0 u0 u3) \to (\forall (t4: T).(\forall (t5: T).((pr0 t4 t5) \to 
24 (\forall (u2: T).(\forall (v2: T).(\forall (x: T).((pr0 u2 x) \to ((pr0 v2 x) 
25 \to (ex2 T (\lambda (t: T).(pr0 (THead (Flat Appl) u2 (THead (Bind b) u0 t4)) 
26 t)) (\lambda (t: T).(pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O 
27 v2) t5)) t)))))))))))))))
28 \def
29  \lambda (b: B).(\lambda (H: (not (eq B b Abst))).(\lambda (u0: T).(\lambda 
30 (u3: T).(\lambda (H0: (pr0 u0 u3)).(\lambda (t4: T).(\lambda (t5: T).(\lambda 
31 (H1: (pr0 t4 t5)).(\lambda (u2: T).(\lambda (v2: T).(\lambda (x: T).(\lambda 
32 (H2: (pr0 u2 x)).(\lambda (H3: (pr0 v2 x)).(ex_intro2 T (\lambda (t: T).(pr0 
33 (THead (Flat Appl) u2 (THead (Bind b) u0 t4)) t)) (\lambda (t: T).(pr0 (THead 
34 (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t5)) t)) (THead (Bind b) u3 
35 (THead (Flat Appl) (lift (S O) O x) t5)) (pr0_upsilon b H u2 x H2 u0 u3 H0 t4 
36 t5 H1) (pr0_comp u3 u3 (pr0_refl u3) (THead (Flat Appl) (lift (S O) O v2) t5) 
37 (THead (Flat Appl) (lift (S O) O x) t5) (pr0_comp (lift (S O) O v2) (lift (S 
38 O) O x) (pr0_lift v2 x H3 (S O) O) t5 t5 (pr0_refl t5) (Flat Appl)) (Bind 
39 b))))))))))))))).
40
41 theorem pr0_confluence__pr0_cong_upsilon_cong:
42  \forall (b: B).((not (eq B b Abst)) \to (\forall (u2: T).(\forall (v2: 
43 T).(\forall (x: T).((pr0 u2 x) \to ((pr0 v2 x) \to (\forall (t2: T).(\forall 
44 (t5: T).(\forall (x0: T).((pr0 t2 x0) \to ((pr0 t5 x0) \to (\forall (u5: 
45 T).(\forall (u3: T).(\forall (x1: T).((pr0 u5 x1) \to ((pr0 u3 x1) \to (ex2 T 
46 (\lambda (t: T).(pr0 (THead (Flat Appl) u2 (THead (Bind b) u5 t2)) t)) 
47 (\lambda (t: T).(pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) 
48 t5)) t)))))))))))))))))))
49 \def
50  \lambda (b: B).(\lambda (H: (not (eq B b Abst))).(\lambda (u2: T).(\lambda 
51 (v2: T).(\lambda (x: T).(\lambda (H0: (pr0 u2 x)).(\lambda (H1: (pr0 v2 
52 x)).(\lambda (t2: T).(\lambda (t5: T).(\lambda (x0: T).(\lambda (H2: (pr0 t2 
53 x0)).(\lambda (H3: (pr0 t5 x0)).(\lambda (u5: T).(\lambda (u3: T).(\lambda 
54 (x1: T).(\lambda (H4: (pr0 u5 x1)).(\lambda (H5: (pr0 u3 x1)).(ex_intro2 T 
55 (\lambda (t: T).(pr0 (THead (Flat Appl) u2 (THead (Bind b) u5 t2)) t)) 
56 (\lambda (t: T).(pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) 
57 t5)) t)) (THead (Bind b) x1 (THead (Flat Appl) (lift (S O) O x) x0)) 
58 (pr0_upsilon b H u2 x H0 u5 x1 H4 t2 x0 H2) (pr0_comp u3 x1 H5 (THead (Flat 
59 Appl) (lift (S O) O v2) t5) (THead (Flat Appl) (lift (S O) O x) x0) (pr0_comp 
60 (lift (S O) O v2) (lift (S O) O x) (pr0_lift v2 x H1 (S O) O) t5 x0 H3 (Flat 
61 Appl)) (Bind b))))))))))))))))))).
62
63 theorem pr0_confluence__pr0_cong_upsilon_delta:
64  (not (eq B Abbr Abst)) \to (\forall (u5: T).(\forall (t2: T).(\forall (w: 
65 T).((subst0 O u5 t2 w) \to (\forall (u2: T).(\forall (v2: T).(\forall (x: 
66 T).((pr0 u2 x) \to ((pr0 v2 x) \to (\forall (t5: T).(\forall (x0: T).((pr0 t2 
67 x0) \to ((pr0 t5 x0) \to (\forall (u3: T).(\forall (x1: T).((pr0 u5 x1) \to 
68 ((pr0 u3 x1) \to (ex2 T (\lambda (t: T).(pr0 (THead (Flat Appl) u2 (THead 
69 (Bind Abbr) u5 w)) t)) (\lambda (t: T).(pr0 (THead (Bind Abbr) u3 (THead 
70 (Flat Appl) (lift (S O) O v2) t5)) t))))))))))))))))))))
71 \def
72  \lambda (H: (not (eq B Abbr Abst))).(\lambda (u5: T).(\lambda (t2: 
73 T).(\lambda (w: T).(\lambda (H0: (subst0 O u5 t2 w)).(\lambda (u2: 
74 T).(\lambda (v2: T).(\lambda (x: T).(\lambda (H1: (pr0 u2 x)).(\lambda (H2: 
75 (pr0 v2 x)).(\lambda (t5: T).(\lambda (x0: T).(\lambda (H3: (pr0 t2 
76 x0)).(\lambda (H4: (pr0 t5 x0)).(\lambda (u3: T).(\lambda (x1: T).(\lambda 
77 (H5: (pr0 u5 x1)).(\lambda (H6: (pr0 u3 x1)).(or_ind (pr0 w x0) (ex2 T 
78 (\lambda (w2: T).(pr0 w w2)) (\lambda (w2: T).(subst0 O x1 x0 w2))) (ex2 T 
79 (\lambda (t: T).(pr0 (THead (Flat Appl) u2 (THead (Bind Abbr) u5 w)) t)) 
80 (\lambda (t: T).(pr0 (THead (Bind Abbr) u3 (THead (Flat Appl) (lift (S O) O 
81 v2) t5)) t))) (\lambda (H7: (pr0 w x0)).(ex_intro2 T (\lambda (t: T).(pr0 
82 (THead (Flat Appl) u2 (THead (Bind Abbr) u5 w)) t)) (\lambda (t: T).(pr0 
83 (THead (Bind Abbr) u3 (THead (Flat Appl) (lift (S O) O v2) t5)) t)) (THead 
84 (Bind Abbr) x1 (THead (Flat Appl) (lift (S O) O x) x0)) (pr0_upsilon Abbr H 
85 u2 x H1 u5 x1 H5 w x0 H7) (pr0_comp u3 x1 H6 (THead (Flat Appl) (lift (S O) O 
86 v2) t5) (THead (Flat Appl) (lift (S O) O x) x0) (pr0_comp (lift (S O) O v2) 
87 (lift (S O) O x) (pr0_lift v2 x H2 (S O) O) t5 x0 H4 (Flat Appl)) (Bind 
88 Abbr)))) (\lambda (H7: (ex2 T (\lambda (w2: T).(pr0 w w2)) (\lambda (w2: 
89 T).(subst0 O x1 x0 w2)))).(ex2_ind T (\lambda (w2: T).(pr0 w w2)) (\lambda 
90 (w2: T).(subst0 O x1 x0 w2)) (ex2 T (\lambda (t: T).(pr0 (THead (Flat Appl) 
91 u2 (THead (Bind Abbr) u5 w)) t)) (\lambda (t: T).(pr0 (THead (Bind Abbr) u3 
92 (THead (Flat Appl) (lift (S O) O v2) t5)) t))) (\lambda (x2: T).(\lambda (H8: 
93 (pr0 w x2)).(\lambda (H9: (subst0 O x1 x0 x2)).(ex_intro2 T (\lambda (t: 
94 T).(pr0 (THead (Flat Appl) u2 (THead (Bind Abbr) u5 w)) t)) (\lambda (t: 
95 T).(pr0 (THead (Bind Abbr) u3 (THead (Flat Appl) (lift (S O) O v2) t5)) t)) 
96 (THead (Bind Abbr) x1 (THead (Flat Appl) (lift (S O) O x) x2)) (pr0_upsilon 
97 Abbr H u2 x H1 u5 x1 H5 w x2 H8) (pr0_delta u3 x1 H6 (THead (Flat Appl) (lift 
98 (S O) O v2) t5) (THead (Flat Appl) (lift (S O) O x) x0) (pr0_comp (lift (S O) 
99 O v2) (lift (S O) O x) (pr0_lift v2 x H2 (S O) O) t5 x0 H4 (Flat Appl)) 
100 (THead (Flat Appl) (lift (S O) O x) x2) (subst0_snd (Flat Appl) x1 x2 x0 O H9 
101 (lift (S O) O x))))))) H7)) (pr0_subst0 t2 x0 H3 u5 w O H0 x1 
102 H5))))))))))))))))))).
103
104 theorem pr0_confluence__pr0_cong_upsilon_zeta:
105  \forall (b: B).((not (eq B b Abst)) \to (\forall (u0: T).(\forall (u3: 
106 T).((pr0 u0 u3) \to (\forall (u2: T).(\forall (v2: T).(\forall (x0: T).((pr0 
107 u2 x0) \to ((pr0 v2 x0) \to (\forall (x: T).(\forall (t3: T).(\forall (x1: 
108 T).((pr0 x x1) \to ((pr0 t3 x1) \to (ex2 T (\lambda (t: T).(pr0 (THead (Flat 
109 Appl) u2 t3) t)) (\lambda (t: T).(pr0 (THead (Bind b) u3 (THead (Flat Appl) 
110 (lift (S O) O v2) (lift (S O) O x))) t)))))))))))))))))
111 \def
112  \lambda (b: B).(\lambda (H: (not (eq B b Abst))).(\lambda (u0: T).(\lambda 
113 (u3: T).(\lambda (_: (pr0 u0 u3)).(\lambda (u2: T).(\lambda (v2: T).(\lambda 
114 (x0: T).(\lambda (H1: (pr0 u2 x0)).(\lambda (H2: (pr0 v2 x0)).(\lambda (x: 
115 T).(\lambda (t3: T).(\lambda (x1: T).(\lambda (H3: (pr0 x x1)).(\lambda (H4: 
116 (pr0 t3 x1)).(eq_ind T (lift (S O) O (THead (Flat Appl) v2 x)) (\lambda (t: 
117 T).(ex2 T (\lambda (t0: T).(pr0 (THead (Flat Appl) u2 t3) t0)) (\lambda (t0: 
118 T).(pr0 (THead (Bind b) u3 t) t0)))) (ex_intro2 T (\lambda (t: T).(pr0 (THead 
119 (Flat Appl) u2 t3) t)) (\lambda (t: T).(pr0 (THead (Bind b) u3 (lift (S O) O 
120 (THead (Flat Appl) v2 x))) t)) (THead (Flat Appl) x0 x1) (pr0_comp u2 x0 H1 
121 t3 x1 H4 (Flat Appl)) (pr0_zeta b H (THead (Flat Appl) v2 x) (THead (Flat 
122 Appl) x0 x1) (pr0_comp v2 x0 H2 x x1 H3 (Flat Appl)) u3)) (THead (Flat Appl) 
123 (lift (S O) O v2) (lift (S O) O x)) (lift_flat Appl v2 x (S O) 
124 O)))))))))))))))).
125
126 theorem pr0_confluence__pr0_cong_delta:
127  \forall (u3: T).(\forall (t5: T).(\forall (w: T).((subst0 O u3 t5 w) \to 
128 (\forall (u2: T).(\forall (x: T).((pr0 u2 x) \to ((pr0 u3 x) \to (\forall 
129 (t3: T).(\forall (x0: T).((pr0 t3 x0) \to ((pr0 t5 x0) \to (ex2 T (\lambda 
130 (t: T).(pr0 (THead (Bind Abbr) u2 t3) t)) (\lambda (t: T).(pr0 (THead (Bind 
131 Abbr) u3 w) t))))))))))))))
132 \def
133  \lambda (u3: T).(\lambda (t5: T).(\lambda (w: T).(\lambda (H: (subst0 O u3 
134 t5 w)).(\lambda (u2: T).(\lambda (x: T).(\lambda (H0: (pr0 u2 x)).(\lambda 
135 (H1: (pr0 u3 x)).(\lambda (t3: T).(\lambda (x0: T).(\lambda (H2: (pr0 t3 
136 x0)).(\lambda (H3: (pr0 t5 x0)).(or_ind (pr0 w x0) (ex2 T (\lambda (w2: 
137 T).(pr0 w w2)) (\lambda (w2: T).(subst0 O x x0 w2))) (ex2 T (\lambda (t: 
138 T).(pr0 (THead (Bind Abbr) u2 t3) t)) (\lambda (t: T).(pr0 (THead (Bind Abbr) 
139 u3 w) t))) (\lambda (H4: (pr0 w x0)).(ex_intro2 T (\lambda (t: T).(pr0 (THead 
140 (Bind Abbr) u2 t3) t)) (\lambda (t: T).(pr0 (THead (Bind Abbr) u3 w) t)) 
141 (THead (Bind Abbr) x x0) (pr0_comp u2 x H0 t3 x0 H2 (Bind Abbr)) (pr0_comp u3 
142 x H1 w x0 H4 (Bind Abbr)))) (\lambda (H4: (ex2 T (\lambda (w2: T).(pr0 w w2)) 
143 (\lambda (w2: T).(subst0 O x x0 w2)))).(ex2_ind T (\lambda (w2: T).(pr0 w 
144 w2)) (\lambda (w2: T).(subst0 O x x0 w2)) (ex2 T (\lambda (t: T).(pr0 (THead 
145 (Bind Abbr) u2 t3) t)) (\lambda (t: T).(pr0 (THead (Bind Abbr) u3 w) t))) 
146 (\lambda (x1: T).(\lambda (H5: (pr0 w x1)).(\lambda (H6: (subst0 O x x0 
147 x1)).(ex_intro2 T (\lambda (t: T).(pr0 (THead (Bind Abbr) u2 t3) t)) (\lambda 
148 (t: T).(pr0 (THead (Bind Abbr) u3 w) t)) (THead (Bind Abbr) x x1) (pr0_delta 
149 u2 x H0 t3 x0 H2 x1 H6) (pr0_comp u3 x H1 w x1 H5 (Bind Abbr)))))) H4)) 
150 (pr0_subst0 t5 x0 H3 u3 w O H x H1))))))))))))).
151
152 theorem pr0_confluence__pr0_upsilon_upsilon:
153  \forall (b: B).((not (eq B b Abst)) \to (\forall (v1: T).(\forall (v2: 
154 T).(\forall (x0: T).((pr0 v1 x0) \to ((pr0 v2 x0) \to (\forall (u1: 
155 T).(\forall (u2: T).(\forall (x1: T).((pr0 u1 x1) \to ((pr0 u2 x1) \to 
156 (\forall (t1: T).(\forall (t2: T).(\forall (x2: T).((pr0 t1 x2) \to ((pr0 t2 
157 x2) \to (ex2 T (\lambda (t: T).(pr0 (THead (Bind b) u1 (THead (Flat Appl) 
158 (lift (S O) O v1) t1)) t)) (\lambda (t: T).(pr0 (THead (Bind b) u2 (THead 
159 (Flat Appl) (lift (S O) O v2) t2)) t)))))))))))))))))))
160 \def
161  \lambda (b: B).(\lambda (_: (not (eq B b Abst))).(\lambda (v1: T).(\lambda 
162 (v2: T).(\lambda (x0: T).(\lambda (H0: (pr0 v1 x0)).(\lambda (H1: (pr0 v2 
163 x0)).(\lambda (u1: T).(\lambda (u2: T).(\lambda (x1: T).(\lambda (H2: (pr0 u1 
164 x1)).(\lambda (H3: (pr0 u2 x1)).(\lambda (t1: T).(\lambda (t2: T).(\lambda 
165 (x2: T).(\lambda (H4: (pr0 t1 x2)).(\lambda (H5: (pr0 t2 x2)).(ex_intro2 T 
166 (\lambda (t: T).(pr0 (THead (Bind b) u1 (THead (Flat Appl) (lift (S O) O v1) 
167 t1)) t)) (\lambda (t: T).(pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S 
168 O) O v2) t2)) t)) (THead (Bind b) x1 (THead (Flat Appl) (lift (S O) O x0) 
169 x2)) (pr0_comp u1 x1 H2 (THead (Flat Appl) (lift (S O) O v1) t1) (THead (Flat 
170 Appl) (lift (S O) O x0) x2) (pr0_comp (lift (S O) O v1) (lift (S O) O x0) 
171 (pr0_lift v1 x0 H0 (S O) O) t1 x2 H4 (Flat Appl)) (Bind b)) (pr0_comp u2 x1 
172 H3 (THead (Flat Appl) (lift (S O) O v2) t2) (THead (Flat Appl) (lift (S O) O 
173 x0) x2) (pr0_comp (lift (S O) O v2) (lift (S O) O x0) (pr0_lift v2 x0 H1 (S 
174 O) O) t2 x2 H5 (Flat Appl)) (Bind b))))))))))))))))))).
175
176 theorem pr0_confluence__pr0_delta_delta:
177  \forall (u2: T).(\forall (t3: T).(\forall (w: T).((subst0 O u2 t3 w) \to 
178 (\forall (u3: T).(\forall (t5: T).(\forall (w0: T).((subst0 O u3 t5 w0) \to 
179 (\forall (x: T).((pr0 u2 x) \to ((pr0 u3 x) \to (\forall (x0: T).((pr0 t3 x0) 
180 \to ((pr0 t5 x0) \to (ex2 T (\lambda (t: T).(pr0 (THead (Bind Abbr) u2 w) t)) 
181 (\lambda (t: T).(pr0 (THead (Bind Abbr) u3 w0) t))))))))))))))))
182 \def
183  \lambda (u2: T).(\lambda (t3: T).(\lambda (w: T).(\lambda (H: (subst0 O u2 
184 t3 w)).(\lambda (u3: T).(\lambda (t5: T).(\lambda (w0: T).(\lambda (H0: 
185 (subst0 O u3 t5 w0)).(\lambda (x: T).(\lambda (H1: (pr0 u2 x)).(\lambda (H2: 
186 (pr0 u3 x)).(\lambda (x0: T).(\lambda (H3: (pr0 t3 x0)).(\lambda (H4: (pr0 t5 
187 x0)).(or_ind (pr0 w0 x0) (ex2 T (\lambda (w2: T).(pr0 w0 w2)) (\lambda (w2: 
188 T).(subst0 O x x0 w2))) (ex2 T (\lambda (t: T).(pr0 (THead (Bind Abbr) u2 w) 
189 t)) (\lambda (t: T).(pr0 (THead (Bind Abbr) u3 w0) t))) (\lambda (H5: (pr0 w0 
190 x0)).(or_ind (pr0 w x0) (ex2 T (\lambda (w2: T).(pr0 w w2)) (\lambda (w2: 
191 T).(subst0 O x x0 w2))) (ex2 T (\lambda (t: T).(pr0 (THead (Bind Abbr) u2 w) 
192 t)) (\lambda (t: T).(pr0 (THead (Bind Abbr) u3 w0) t))) (\lambda (H6: (pr0 w 
193 x0)).(ex_intro2 T (\lambda (t: T).(pr0 (THead (Bind Abbr) u2 w) t)) (\lambda 
194 (t: T).(pr0 (THead (Bind Abbr) u3 w0) t)) (THead (Bind Abbr) x x0) (pr0_comp 
195 u2 x H1 w x0 H6 (Bind Abbr)) (pr0_comp u3 x H2 w0 x0 H5 (Bind Abbr)))) 
196 (\lambda (H6: (ex2 T (\lambda (w2: T).(pr0 w w2)) (\lambda (w2: T).(subst0 O 
197 x x0 w2)))).(ex2_ind T (\lambda (w2: T).(pr0 w w2)) (\lambda (w2: T).(subst0 
198 O x x0 w2)) (ex2 T (\lambda (t: T).(pr0 (THead (Bind Abbr) u2 w) t)) (\lambda 
199 (t: T).(pr0 (THead (Bind Abbr) u3 w0) t))) (\lambda (x1: T).(\lambda (H7: 
200 (pr0 w x1)).(\lambda (H8: (subst0 O x x0 x1)).(ex_intro2 T (\lambda (t: 
201 T).(pr0 (THead (Bind Abbr) u2 w) t)) (\lambda (t: T).(pr0 (THead (Bind Abbr) 
202 u3 w0) t)) (THead (Bind Abbr) x x1) (pr0_comp u2 x H1 w x1 H7 (Bind Abbr)) 
203 (pr0_delta u3 x H2 w0 x0 H5 x1 H8))))) H6)) (pr0_subst0 t3 x0 H3 u2 w O H x 
204 H1))) (\lambda (H5: (ex2 T (\lambda (w2: T).(pr0 w0 w2)) (\lambda (w2: 
205 T).(subst0 O x x0 w2)))).(ex2_ind T (\lambda (w2: T).(pr0 w0 w2)) (\lambda 
206 (w2: T).(subst0 O x x0 w2)) (ex2 T (\lambda (t: T).(pr0 (THead (Bind Abbr) u2 
207 w) t)) (\lambda (t: T).(pr0 (THead (Bind Abbr) u3 w0) t))) (\lambda (x1: 
208 T).(\lambda (H6: (pr0 w0 x1)).(\lambda (H7: (subst0 O x x0 x1)).(or_ind (pr0 
209 w x0) (ex2 T (\lambda (w2: T).(pr0 w w2)) (\lambda (w2: T).(subst0 O x x0 
210 w2))) (ex2 T (\lambda (t: T).(pr0 (THead (Bind Abbr) u2 w) t)) (\lambda (t: 
211 T).(pr0 (THead (Bind Abbr) u3 w0) t))) (\lambda (H8: (pr0 w x0)).(ex_intro2 T 
212 (\lambda (t: T).(pr0 (THead (Bind Abbr) u2 w) t)) (\lambda (t: T).(pr0 (THead 
213 (Bind Abbr) u3 w0) t)) (THead (Bind Abbr) x x1) (pr0_delta u2 x H1 w x0 H8 x1 
214 H7) (pr0_comp u3 x H2 w0 x1 H6 (Bind Abbr)))) (\lambda (H8: (ex2 T (\lambda 
215 (w2: T).(pr0 w w2)) (\lambda (w2: T).(subst0 O x x0 w2)))).(ex2_ind T 
216 (\lambda (w2: T).(pr0 w w2)) (\lambda (w2: T).(subst0 O x x0 w2)) (ex2 T 
217 (\lambda (t: T).(pr0 (THead (Bind Abbr) u2 w) t)) (\lambda (t: T).(pr0 (THead 
218 (Bind Abbr) u3 w0) t))) (\lambda (x2: T).(\lambda (H9: (pr0 w x2)).(\lambda 
219 (H10: (subst0 O x x0 x2)).(or4_ind (eq T x2 x1) (ex2 T (\lambda (t: 
220 T).(subst0 O x x2 t)) (\lambda (t: T).(subst0 O x x1 t))) (subst0 O x x2 x1) 
221 (subst0 O x x1 x2) (ex2 T (\lambda (t: T).(pr0 (THead (Bind Abbr) u2 w) t)) 
222 (\lambda (t: T).(pr0 (THead (Bind Abbr) u3 w0) t))) (\lambda (H11: (eq T x2 
223 x1)).(let H12 \def (eq_ind T x2 (\lambda (t: T).(pr0 w t)) H9 x1 H11) in 
224 (ex_intro2 T (\lambda (t: T).(pr0 (THead (Bind Abbr) u2 w) t)) (\lambda (t: 
225 T).(pr0 (THead (Bind Abbr) u3 w0) t)) (THead (Bind Abbr) x x1) (pr0_comp u2 x 
226 H1 w x1 H12 (Bind Abbr)) (pr0_comp u3 x H2 w0 x1 H6 (Bind Abbr))))) (\lambda 
227 (H11: (ex2 T (\lambda (t: T).(subst0 O x x2 t)) (\lambda (t: T).(subst0 O x 
228 x1 t)))).(ex2_ind T (\lambda (t: T).(subst0 O x x2 t)) (\lambda (t: 
229 T).(subst0 O x x1 t)) (ex2 T (\lambda (t: T).(pr0 (THead (Bind Abbr) u2 w) 
230 t)) (\lambda (t: T).(pr0 (THead (Bind Abbr) u3 w0) t))) (\lambda (x3: 
231 T).(\lambda (H12: (subst0 O x x2 x3)).(\lambda (H13: (subst0 O x x1 
232 x3)).(ex_intro2 T (\lambda (t: T).(pr0 (THead (Bind Abbr) u2 w) t)) (\lambda 
233 (t: T).(pr0 (THead (Bind Abbr) u3 w0) t)) (THead (Bind Abbr) x x3) (pr0_delta 
234 u2 x H1 w x2 H9 x3 H12) (pr0_delta u3 x H2 w0 x1 H6 x3 H13))))) H11)) 
235 (\lambda (H11: (subst0 O x x2 x1)).(ex_intro2 T (\lambda (t: T).(pr0 (THead 
236 (Bind Abbr) u2 w) t)) (\lambda (t: T).(pr0 (THead (Bind Abbr) u3 w0) t)) 
237 (THead (Bind Abbr) x x1) (pr0_delta u2 x H1 w x2 H9 x1 H11) (pr0_comp u3 x H2 
238 w0 x1 H6 (Bind Abbr)))) (\lambda (H11: (subst0 O x x1 x2)).(ex_intro2 T 
239 (\lambda (t: T).(pr0 (THead (Bind Abbr) u2 w) t)) (\lambda (t: T).(pr0 (THead 
240 (Bind Abbr) u3 w0) t)) (THead (Bind Abbr) x x2) (pr0_comp u2 x H1 w x2 H9 
241 (Bind Abbr)) (pr0_delta u3 x H2 w0 x1 H6 x2 H11))) (subst0_confluence_eq x0 
242 x2 x O H10 x1 H7))))) H8)) (pr0_subst0 t3 x0 H3 u2 w O H x H1))))) H5)) 
243 (pr0_subst0 t5 x0 H4 u3 w0 O H0 x H2))))))))))))))).
244
245 theorem pr0_confluence__pr0_delta_tau:
246  \forall (u2: T).(\forall (t3: T).(\forall (w: T).((subst0 O u2 t3 w) \to 
247 (\forall (t4: T).((pr0 (lift (S O) O t4) t3) \to (\forall (t2: T).(ex2 T 
248 (\lambda (t: T).(pr0 (THead (Bind Abbr) u2 w) t)) (\lambda (t: T).(pr0 t2 
249 t)))))))))
250 \def
251  \lambda (u2: T).(\lambda (t3: T).(\lambda (w: T).(\lambda (H: (subst0 O u2 
252 t3 w)).(\lambda (t4: T).(\lambda (H0: (pr0 (lift (S O) O t4) t3)).(\lambda 
253 (t2: T).(ex2_ind T (\lambda (t5: T).(eq T t3 (lift (S O) O t5))) (\lambda 
254 (t5: T).(pr0 t4 t5)) (ex2 T (\lambda (t: T).(pr0 (THead (Bind Abbr) u2 w) t)) 
255 (\lambda (t: T).(pr0 t2 t))) (\lambda (x: T).(\lambda (H1: (eq T t3 (lift (S 
256 O) O x))).(\lambda (_: (pr0 t4 x)).(let H3 \def (eq_ind T t3 (\lambda (t: 
257 T).(subst0 O u2 t w)) H (lift (S O) O x) H1) in (subst0_gen_lift_false x u2 w 
258 (S O) O O (le_n O) (eq_ind_r nat (plus (S O) O) (\lambda (n: nat).(lt O n)) 
259 (le_n (plus (S O) O)) (plus O (S O)) (plus_sym O (S O))) H3 (ex2 T (\lambda 
260 (t: T).(pr0 (THead (Bind Abbr) u2 w) t)) (\lambda (t: T).(pr0 t2 t)))))))) 
261 (pr0_gen_lift t4 t3 (S O) O H0)))))))).
262
263 theorem pr0_confluence:
264  \forall (t0: T).(\forall (t1: T).((pr0 t0 t1) \to (\forall (t2: T).((pr0 t0 
265 t2) \to (ex2 T (\lambda (t: T).(pr0 t1 t)) (\lambda (t: T).(pr0 t2 t)))))))
266 \def
267  \lambda (t0: T).(tlt_wf_ind (\lambda (t: T).(\forall (t1: T).((pr0 t t1) \to 
268 (\forall (t2: T).((pr0 t t2) \to (ex2 T (\lambda (t3: T).(pr0 t1 t3)) 
269 (\lambda (t3: T).(pr0 t2 t3)))))))) (\lambda (t: T).(\lambda (H: ((\forall 
270 (v: T).((tlt v t) \to (\forall (t1: T).((pr0 v t1) \to (\forall (t2: T).((pr0 
271 v t2) \to (ex2 T (\lambda (t3: T).(pr0 t1 t3)) (\lambda (t3: T).(pr0 t2 
272 t3))))))))))).(\lambda (t1: T).(\lambda (H0: (pr0 t t1)).(\lambda (t2: 
273 T).(\lambda (H1: (pr0 t t2)).(let H2 \def (match H0 in pr0 return (\lambda 
274 (t3: T).(\lambda (t4: T).(\lambda (_: (pr0 t3 t4)).((eq T t3 t) \to ((eq T t4 
275 t1) \to (ex2 T (\lambda (t5: T).(pr0 t1 t5)) (\lambda (t5: T).(pr0 t2 
276 t5)))))))) with [(pr0_refl t3) \Rightarrow (\lambda (H2: (eq T t3 
277 t)).(\lambda (H3: (eq T t3 t1)).(eq_ind T t (\lambda (t4: T).((eq T t4 t1) 
278 \to (ex2 T (\lambda (t5: T).(pr0 t1 t5)) (\lambda (t5: T).(pr0 t2 t5))))) 
279 (\lambda (H4: (eq T t t1)).(eq_ind T t1 (\lambda (_: T).(ex2 T (\lambda (t5: 
280 T).(pr0 t1 t5)) (\lambda (t5: T).(pr0 t2 t5)))) (let H5 \def (match H1 in pr0 
281 return (\lambda (t4: T).(\lambda (t5: T).(\lambda (_: (pr0 t4 t5)).((eq T t4 
282 t) \to ((eq T t5 t2) \to (ex2 T (\lambda (t6: T).(pr0 t1 t6)) (\lambda (t6: 
283 T).(pr0 t2 t6)))))))) with [(pr0_refl t4) \Rightarrow (\lambda (H5: (eq T t4 
284 t)).(\lambda (H6: (eq T t4 t2)).(eq_ind T t (\lambda (t5: T).((eq T t5 t2) 
285 \to (ex2 T (\lambda (t6: T).(pr0 t1 t6)) (\lambda (t6: T).(pr0 t2 t6))))) 
286 (\lambda (H7: (eq T t t2)).(eq_ind T t2 (\lambda (_: T).(ex2 T (\lambda (t6: 
287 T).(pr0 t1 t6)) (\lambda (t6: T).(pr0 t2 t6)))) (let H8 \def (eq_ind T t 
288 (\lambda (t5: T).(eq T t4 t5)) H5 t2 H7) in (let H9 \def (eq_ind T t (\lambda 
289 (t5: T).(eq T t5 t1)) H4 t2 H7) in (let H10 \def (eq_ind T t (\lambda (t5: 
290 T).(eq T t3 t5)) H2 t2 H7) in (let H11 \def (eq_ind T t (\lambda (t5: 
291 T).(\forall (v: T).((tlt v t5) \to (\forall (t6: T).((pr0 v t6) \to (\forall 
292 (t7: T).((pr0 v t7) \to (ex2 T (\lambda (t8: T).(pr0 t6 t8)) (\lambda (t8: 
293 T).(pr0 t7 t8)))))))))) H t2 H7) in (let H12 \def (eq_ind T t2 (\lambda (t5: 
294 T).(\forall (v: T).((tlt v t5) \to (\forall (t6: T).((pr0 v t6) \to (\forall 
295 (t7: T).((pr0 v t7) \to (ex2 T (\lambda (t8: T).(pr0 t6 t8)) (\lambda (t8: 
296 T).(pr0 t7 t8)))))))))) H11 t1 H9) in (eq_ind_r T t1 (\lambda (t5: T).(ex2 T 
297 (\lambda (t6: T).(pr0 t1 t6)) (\lambda (t6: T).(pr0 t5 t6)))) (let H13 \def 
298 (eq_ind T t2 (\lambda (t5: T).(eq T t3 t5)) H10 t1 H9) in (ex_intro2 T 
299 (\lambda (t5: T).(pr0 t1 t5)) (\lambda (t5: T).(pr0 t1 t5)) t1 (pr0_refl t1) 
300 (pr0_refl t1))) t2 H9)))))) t (sym_eq T t t2 H7))) t4 (sym_eq T t4 t H5) 
301 H6))) | (pr0_comp u1 u2 H5 t4 t5 H6 k) \Rightarrow (\lambda (H7: (eq T (THead 
302 k u1 t4) t)).(\lambda (H8: (eq T (THead k u2 t5) t2)).(eq_ind T (THead k u1 
303 t4) (\lambda (_: T).((eq T (THead k u2 t5) t2) \to ((pr0 u1 u2) \to ((pr0 t4 
304 t5) \to (ex2 T (\lambda (t7: T).(pr0 t1 t7)) (\lambda (t7: T).(pr0 t2 
305 t7))))))) (\lambda (H9: (eq T (THead k u2 t5) t2)).(eq_ind T (THead k u2 t5) 
306 (\lambda (t6: T).((pr0 u1 u2) \to ((pr0 t4 t5) \to (ex2 T (\lambda (t7: 
307 T).(pr0 t1 t7)) (\lambda (t7: T).(pr0 t6 t7)))))) (\lambda (H10: (pr0 u1 
308 u2)).(\lambda (H11: (pr0 t4 t5)).(let H12 \def (eq_ind_r T t (\lambda (t6: 
309 T).(eq T t6 t1)) H4 (THead k u1 t4) H7) in (eq_ind T (THead k u1 t4) (\lambda 
310 (t6: T).(ex2 T (\lambda (t7: T).(pr0 t6 t7)) (\lambda (t7: T).(pr0 (THead k 
311 u2 t5) t7)))) (let H13 \def (eq_ind_r T t (\lambda (t6: T).(eq T t3 t6)) H2 
312 (THead k u1 t4) H7) in (let H14 \def (eq_ind_r T t (\lambda (t6: T).(\forall 
313 (v: T).((tlt v t6) \to (\forall (t7: T).((pr0 v t7) \to (\forall (t8: 
314 T).((pr0 v t8) \to (ex2 T (\lambda (t9: T).(pr0 t7 t9)) (\lambda (t9: T).(pr0 
315 t8 t9)))))))))) H (THead k u1 t4) H7) in (ex_intro2 T (\lambda (t6: T).(pr0 
316 (THead k u1 t4) t6)) (\lambda (t6: T).(pr0 (THead k u2 t5) t6)) (THead k u2 
317 t5) (pr0_comp u1 u2 H10 t4 t5 H11 k) (pr0_refl (THead k u2 t5))))) t1 H12)))) 
318 t2 H9)) t H7 H8 H5 H6))) | (pr0_beta u v1 v2 H5 t4 t5 H6) \Rightarrow 
319 (\lambda (H7: (eq T (THead (Flat Appl) v1 (THead (Bind Abst) u t4)) 
320 t)).(\lambda (H8: (eq T (THead (Bind Abbr) v2 t5) t2)).(eq_ind T (THead (Flat 
321 Appl) v1 (THead (Bind Abst) u t4)) (\lambda (_: T).((eq T (THead (Bind Abbr) 
322 v2 t5) t2) \to ((pr0 v1 v2) \to ((pr0 t4 t5) \to (ex2 T (\lambda (t7: T).(pr0 
323 t1 t7)) (\lambda (t7: T).(pr0 t2 t7))))))) (\lambda (H9: (eq T (THead (Bind 
324 Abbr) v2 t5) t2)).(eq_ind T (THead (Bind Abbr) v2 t5) (\lambda (t6: T).((pr0 
325 v1 v2) \to ((pr0 t4 t5) \to (ex2 T (\lambda (t7: T).(pr0 t1 t7)) (\lambda 
326 (t7: T).(pr0 t6 t7)))))) (\lambda (H10: (pr0 v1 v2)).(\lambda (H11: (pr0 t4 
327 t5)).(let H12 \def (eq_ind_r T t (\lambda (t6: T).(eq T t6 t1)) H4 (THead 
328 (Flat Appl) v1 (THead (Bind Abst) u t4)) H7) in (eq_ind T (THead (Flat Appl) 
329 v1 (THead (Bind Abst) u t4)) (\lambda (t6: T).(ex2 T (\lambda (t7: T).(pr0 t6 
330 t7)) (\lambda (t7: T).(pr0 (THead (Bind Abbr) v2 t5) t7)))) (let H13 \def 
331 (eq_ind_r T t (\lambda (t6: T).(eq T t3 t6)) H2 (THead (Flat Appl) v1 (THead 
332 (Bind Abst) u t4)) H7) in (let H14 \def (eq_ind_r T t (\lambda (t6: 
333 T).(\forall (v: T).((tlt v t6) \to (\forall (t7: T).((pr0 v t7) \to (\forall 
334 (t8: T).((pr0 v t8) \to (ex2 T (\lambda (t9: T).(pr0 t7 t9)) (\lambda (t9: 
335 T).(pr0 t8 t9)))))))))) H (THead (Flat Appl) v1 (THead (Bind Abst) u t4)) H7) 
336 in (ex_intro2 T (\lambda (t6: T).(pr0 (THead (Flat Appl) v1 (THead (Bind 
337 Abst) u t4)) t6)) (\lambda (t6: T).(pr0 (THead (Bind Abbr) v2 t5) t6)) (THead 
338 (Bind Abbr) v2 t5) (pr0_beta u v1 v2 H10 t4 t5 H11) (pr0_refl (THead (Bind 
339 Abbr) v2 t5))))) t1 H12)))) t2 H9)) t H7 H8 H5 H6))) | (pr0_upsilon b H5 v1 
340 v2 H6 u1 u2 H7 t4 t5 H8) \Rightarrow (\lambda (H9: (eq T (THead (Flat Appl) 
341 v1 (THead (Bind b) u1 t4)) t)).(\lambda (H10: (eq T (THead (Bind b) u2 (THead 
342 (Flat Appl) (lift (S O) O v2) t5)) t2)).(eq_ind T (THead (Flat Appl) v1 
343 (THead (Bind b) u1 t4)) (\lambda (_: T).((eq T (THead (Bind b) u2 (THead 
344 (Flat Appl) (lift (S O) O v2) t5)) t2) \to ((not (eq B b Abst)) \to ((pr0 v1 
345 v2) \to ((pr0 u1 u2) \to ((pr0 t4 t5) \to (ex2 T (\lambda (t7: T).(pr0 t1 
346 t7)) (\lambda (t7: T).(pr0 t2 t7))))))))) (\lambda (H11: (eq T (THead (Bind 
347 b) u2 (THead (Flat Appl) (lift (S O) O v2) t5)) t2)).(eq_ind T (THead (Bind 
348 b) u2 (THead (Flat Appl) (lift (S O) O v2) t5)) (\lambda (t6: T).((not (eq B 
349 b Abst)) \to ((pr0 v1 v2) \to ((pr0 u1 u2) \to ((pr0 t4 t5) \to (ex2 T 
350 (\lambda (t7: T).(pr0 t1 t7)) (\lambda (t7: T).(pr0 t6 t7)))))))) (\lambda 
351 (H12: (not (eq B b Abst))).(\lambda (H13: (pr0 v1 v2)).(\lambda (H14: (pr0 u1 
352 u2)).(\lambda (H15: (pr0 t4 t5)).(let H16 \def (eq_ind_r T t (\lambda (t6: 
353 T).(eq T t6 t1)) H4 (THead (Flat Appl) v1 (THead (Bind b) u1 t4)) H9) in 
354 (eq_ind T (THead (Flat Appl) v1 (THead (Bind b) u1 t4)) (\lambda (t6: T).(ex2 
355 T (\lambda (t7: T).(pr0 t6 t7)) (\lambda (t7: T).(pr0 (THead (Bind b) u2 
356 (THead (Flat Appl) (lift (S O) O v2) t5)) t7)))) (let H17 \def (eq_ind_r T t 
357 (\lambda (t6: T).(eq T t3 t6)) H2 (THead (Flat Appl) v1 (THead (Bind b) u1 
358 t4)) H9) in (let H18 \def (eq_ind_r T t (\lambda (t6: T).(\forall (v: 
359 T).((tlt v t6) \to (\forall (t7: T).((pr0 v t7) \to (\forall (t8: T).((pr0 v 
360 t8) \to (ex2 T (\lambda (t9: T).(pr0 t7 t9)) (\lambda (t9: T).(pr0 t8 
361 t9)))))))))) H (THead (Flat Appl) v1 (THead (Bind b) u1 t4)) H9) in 
362 (pr0_confluence__pr0_cong_upsilon_refl b H12 u1 u2 H14 t4 t5 H15 v1 v2 v2 H13 
363 (pr0_refl v2)))) t1 H16)))))) t2 H11)) t H9 H10 H5 H6 H7 H8))) | (pr0_delta 
364 u1 u2 H5 t4 t5 H6 w H7) \Rightarrow (\lambda (H8: (eq T (THead (Bind Abbr) u1 
365 t4) t)).(\lambda (H9: (eq T (THead (Bind Abbr) u2 w) t2)).(eq_ind T (THead 
366 (Bind Abbr) u1 t4) (\lambda (_: T).((eq T (THead (Bind Abbr) u2 w) t2) \to 
367 ((pr0 u1 u2) \to ((pr0 t4 t5) \to ((subst0 O u2 t5 w) \to (ex2 T (\lambda 
368 (t7: T).(pr0 t1 t7)) (\lambda (t7: T).(pr0 t2 t7)))))))) (\lambda (H10: (eq T 
369 (THead (Bind Abbr) u2 w) t2)).(eq_ind T (THead (Bind Abbr) u2 w) (\lambda 
370 (t6: T).((pr0 u1 u2) \to ((pr0 t4 t5) \to ((subst0 O u2 t5 w) \to (ex2 T 
371 (\lambda (t7: T).(pr0 t1 t7)) (\lambda (t7: T).(pr0 t6 t7))))))) (\lambda 
372 (H11: (pr0 u1 u2)).(\lambda (H12: (pr0 t4 t5)).(\lambda (H13: (subst0 O u2 t5 
373 w)).(let H14 \def (eq_ind_r T t (\lambda (t6: T).(eq T t6 t1)) H4 (THead 
374 (Bind Abbr) u1 t4) H8) in (eq_ind T (THead (Bind Abbr) u1 t4) (\lambda (t6: 
375 T).(ex2 T (\lambda (t7: T).(pr0 t6 t7)) (\lambda (t7: T).(pr0 (THead (Bind 
376 Abbr) u2 w) t7)))) (let H15 \def (eq_ind_r T t (\lambda (t6: T).(eq T t3 t6)) 
377 H2 (THead (Bind Abbr) u1 t4) H8) in (let H16 \def (eq_ind_r T t (\lambda (t6: 
378 T).(\forall (v: T).((tlt v t6) \to (\forall (t7: T).((pr0 v t7) \to (\forall 
379 (t8: T).((pr0 v t8) \to (ex2 T (\lambda (t9: T).(pr0 t7 t9)) (\lambda (t9: 
380 T).(pr0 t8 t9)))))))))) H (THead (Bind Abbr) u1 t4) H8) in (ex_intro2 T 
381 (\lambda (t6: T).(pr0 (THead (Bind Abbr) u1 t4) t6)) (\lambda (t6: T).(pr0 
382 (THead (Bind Abbr) u2 w) t6)) (THead (Bind Abbr) u2 w) (pr0_delta u1 u2 H11 
383 t4 t5 H12 w H13) (pr0_refl (THead (Bind Abbr) u2 w))))) t1 H14))))) t2 H10)) 
384 t H8 H9 H5 H6 H7))) | (pr0_zeta b H5 t4 t5 H6 u) \Rightarrow (\lambda (H7: 
385 (eq T (THead (Bind b) u (lift (S O) O t4)) t)).(\lambda (H8: (eq T t5 
386 t2)).(eq_ind T (THead (Bind b) u (lift (S O) O t4)) (\lambda (_: T).((eq T t5 
387 t2) \to ((not (eq B b Abst)) \to ((pr0 t4 t5) \to (ex2 T (\lambda (t7: 
388 T).(pr0 t1 t7)) (\lambda (t7: T).(pr0 t2 t7))))))) (\lambda (H9: (eq T t5 
389 t2)).(eq_ind T t2 (\lambda (t6: T).((not (eq B b Abst)) \to ((pr0 t4 t6) \to 
390 (ex2 T (\lambda (t7: T).(pr0 t1 t7)) (\lambda (t7: T).(pr0 t2 t7)))))) 
391 (\lambda (H10: (not (eq B b Abst))).(\lambda (H11: (pr0 t4 t2)).(let H12 \def 
392 (eq_ind_r T t (\lambda (t6: T).(eq T t6 t1)) H4 (THead (Bind b) u (lift (S O) 
393 O t4)) H7) in (eq_ind T (THead (Bind b) u (lift (S O) O t4)) (\lambda (t6: 
394 T).(ex2 T (\lambda (t7: T).(pr0 t6 t7)) (\lambda (t7: T).(pr0 t2 t7)))) (let 
395 H13 \def (eq_ind_r T t (\lambda (t6: T).(eq T t3 t6)) H2 (THead (Bind b) u 
396 (lift (S O) O t4)) H7) in (let H14 \def (eq_ind_r T t (\lambda (t6: 
397 T).(\forall (v: T).((tlt v t6) \to (\forall (t7: T).((pr0 v t7) \to (\forall 
398 (t8: T).((pr0 v t8) \to (ex2 T (\lambda (t9: T).(pr0 t7 t9)) (\lambda (t9: 
399 T).(pr0 t8 t9)))))))))) H (THead (Bind b) u (lift (S O) O t4)) H7) in 
400 (ex_intro2 T (\lambda (t6: T).(pr0 (THead (Bind b) u (lift (S O) O t4)) t6)) 
401 (\lambda (t6: T).(pr0 t2 t6)) t2 (pr0_zeta b H10 t4 t2 H11 u) (pr0_refl 
402 t2)))) t1 H12)))) t5 (sym_eq T t5 t2 H9))) t H7 H8 H5 H6))) | (pr0_tau t4 t5 
403 H5 u) \Rightarrow (\lambda (H6: (eq T (THead (Flat Cast) u t4) t)).(\lambda 
404 (H7: (eq T t5 t2)).(eq_ind T (THead (Flat Cast) u t4) (\lambda (_: T).((eq T 
405 t5 t2) \to ((pr0 t4 t5) \to (ex2 T (\lambda (t7: T).(pr0 t1 t7)) (\lambda 
406 (t7: T).(pr0 t2 t7)))))) (\lambda (H8: (eq T t5 t2)).(eq_ind T t2 (\lambda 
407 (t6: T).((pr0 t4 t6) \to (ex2 T (\lambda (t7: T).(pr0 t1 t7)) (\lambda (t7: 
408 T).(pr0 t2 t7))))) (\lambda (H9: (pr0 t4 t2)).(let H10 \def (eq_ind_r T t 
409 (\lambda (t6: T).(eq T t6 t1)) H4 (THead (Flat Cast) u t4) H6) in (eq_ind T 
410 (THead (Flat Cast) u t4) (\lambda (t6: T).(ex2 T (\lambda (t7: T).(pr0 t6 
411 t7)) (\lambda (t7: T).(pr0 t2 t7)))) (let H11 \def (eq_ind_r T t (\lambda 
412 (t6: T).(eq T t3 t6)) H2 (THead (Flat Cast) u t4) H6) in (let H12 \def 
413 (eq_ind_r T t (\lambda (t6: T).(\forall (v: T).((tlt v t6) \to (\forall (t7: 
414 T).((pr0 v t7) \to (\forall (t8: T).((pr0 v t8) \to (ex2 T (\lambda (t9: 
415 T).(pr0 t7 t9)) (\lambda (t9: T).(pr0 t8 t9)))))))))) H (THead (Flat Cast) u 
416 t4) H6) in (ex_intro2 T (\lambda (t6: T).(pr0 (THead (Flat Cast) u t4) t6)) 
417 (\lambda (t6: T).(pr0 t2 t6)) t2 (pr0_tau t4 t2 H9 u) (pr0_refl t2)))) t1 
418 H10))) t5 (sym_eq T t5 t2 H8))) t H6 H7 H5)))]) in (H5 (refl_equal T t) 
419 (refl_equal T t2))) t (sym_eq T t t1 H4))) t3 (sym_eq T t3 t H2) H3))) | 
420 (pr0_comp u1 u2 H2 t3 t4 H3 k) \Rightarrow (\lambda (H4: (eq T (THead k u1 
421 t3) t)).(\lambda (H5: (eq T (THead k u2 t4) t1)).(eq_ind T (THead k u1 t3) 
422 (\lambda (_: T).((eq T (THead k u2 t4) t1) \to ((pr0 u1 u2) \to ((pr0 t3 t4) 
423 \to (ex2 T (\lambda (t6: T).(pr0 t1 t6)) (\lambda (t6: T).(pr0 t2 t6))))))) 
424 (\lambda (H6: (eq T (THead k u2 t4) t1)).(eq_ind T (THead k u2 t4) (\lambda 
425 (t5: T).((pr0 u1 u2) \to ((pr0 t3 t4) \to (ex2 T (\lambda (t6: T).(pr0 t5 
426 t6)) (\lambda (t6: T).(pr0 t2 t6)))))) (\lambda (H7: (pr0 u1 u2)).(\lambda 
427 (H8: (pr0 t3 t4)).(let H9 \def (match H1 in pr0 return (\lambda (t5: 
428 T).(\lambda (t6: T).(\lambda (_: (pr0 t5 t6)).((eq T t5 t) \to ((eq T t6 t2) 
429 \to (ex2 T (\lambda (t7: T).(pr0 (THead k u2 t4) t7)) (\lambda (t7: T).(pr0 
430 t2 t7)))))))) with [(pr0_refl t5) \Rightarrow (\lambda (H9: (eq T t5 
431 t)).(\lambda (H10: (eq T t5 t2)).(eq_ind T t (\lambda (t6: T).((eq T t6 t2) 
432 \to (ex2 T (\lambda (t7: T).(pr0 (THead k u2 t4) t7)) (\lambda (t7: T).(pr0 
433 t2 t7))))) (\lambda (H11: (eq T t t2)).(eq_ind T t2 (\lambda (_: T).(ex2 T 
434 (\lambda (t7: T).(pr0 (THead k u2 t4) t7)) (\lambda (t7: T).(pr0 t2 t7)))) 
435 (let H12 \def (eq_ind_r T t (\lambda (t6: T).(eq T t6 t2)) H11 (THead k u1 
436 t3) H4) in (eq_ind T (THead k u1 t3) (\lambda (t6: T).(ex2 T (\lambda (t7: 
437 T).(pr0 (THead k u2 t4) t7)) (\lambda (t7: T).(pr0 t6 t7)))) (let H13 \def 
438 (eq_ind_r T t (\lambda (t6: T).(eq T t5 t6)) H9 (THead k u1 t3) H4) in (let 
439 H14 \def (eq_ind_r T t (\lambda (t6: T).(\forall (v: T).((tlt v t6) \to 
440 (\forall (t7: T).((pr0 v t7) \to (\forall (t8: T).((pr0 v t8) \to (ex2 T 
441 (\lambda (t9: T).(pr0 t7 t9)) (\lambda (t9: T).(pr0 t8 t9)))))))))) H (THead 
442 k u1 t3) H4) in (ex_intro2 T (\lambda (t6: T).(pr0 (THead k u2 t4) t6)) 
443 (\lambda (t6: T).(pr0 (THead k u1 t3) t6)) (THead k u2 t4) (pr0_refl (THead k 
444 u2 t4)) (pr0_comp u1 u2 H7 t3 t4 H8 k)))) t2 H12)) t (sym_eq T t t2 H11))) t5 
445 (sym_eq T t5 t H9) H10))) | (pr0_comp u0 u3 H9 t5 t6 H10 k0) \Rightarrow 
446 (\lambda (H11: (eq T (THead k0 u0 t5) t)).(\lambda (H12: (eq T (THead k0 u3 
447 t6) t2)).(eq_ind T (THead k0 u0 t5) (\lambda (_: T).((eq T (THead k0 u3 t6) 
448 t2) \to ((pr0 u0 u3) \to ((pr0 t5 t6) \to (ex2 T (\lambda (t8: T).(pr0 (THead 
449 k u2 t4) t8)) (\lambda (t8: T).(pr0 t2 t8))))))) (\lambda (H13: (eq T (THead 
450 k0 u3 t6) t2)).(eq_ind T (THead k0 u3 t6) (\lambda (t7: T).((pr0 u0 u3) \to 
451 ((pr0 t5 t6) \to (ex2 T (\lambda (t8: T).(pr0 (THead k u2 t4) t8)) (\lambda 
452 (t8: T).(pr0 t7 t8)))))) (\lambda (H14: (pr0 u0 u3)).(\lambda (H15: (pr0 t5 
453 t6)).(let H16 \def (eq_ind_r T t (\lambda (t7: T).(eq T (THead k u1 t3) t7)) 
454 H4 (THead k0 u0 t5) H11) in (let H17 \def (f_equal T K (\lambda (e: T).(match 
455 e in T return (\lambda (_: T).K) with [(TSort _) \Rightarrow k | (TLRef _) 
456 \Rightarrow k | (THead k1 _ _) \Rightarrow k1])) (THead k u1 t3) (THead k0 u0 
457 t5) H16) in ((let H18 \def (f_equal T T (\lambda (e: T).(match e in T return 
458 (\lambda (_: T).T) with [(TSort _) \Rightarrow u1 | (TLRef _) \Rightarrow u1 
459 | (THead _ t7 _) \Rightarrow t7])) (THead k u1 t3) (THead k0 u0 t5) H16) in 
460 ((let H19 \def (f_equal T T (\lambda (e: T).(match e in T return (\lambda (_: 
461 T).T) with [(TSort _) \Rightarrow t3 | (TLRef _) \Rightarrow t3 | (THead _ _ 
462 t7) \Rightarrow t7])) (THead k u1 t3) (THead k0 u0 t5) H16) in (\lambda (H20: 
463 (eq T u1 u0)).(\lambda (H21: (eq K k k0)).(let H22 \def (eq_ind_r T t 
464 (\lambda (t7: T).(\forall (v: T).((tlt v t7) \to (\forall (t8: T).((pr0 v t8) 
465 \to (\forall (t9: T).((pr0 v t9) \to (ex2 T (\lambda (t10: T).(pr0 t8 t10)) 
466 (\lambda (t10: T).(pr0 t9 t10)))))))))) H (THead k0 u0 t5) H11) in (eq_ind_r 
467 K k0 (\lambda (k1: K).(ex2 T (\lambda (t7: T).(pr0 (THead k1 u2 t4) t7)) 
468 (\lambda (t7: T).(pr0 (THead k0 u3 t6) t7)))) (let H23 \def (eq_ind T u1 
469 (\lambda (t7: T).(pr0 t7 u2)) H7 u0 H20) in (let H24 \def (eq_ind T t3 
470 (\lambda (t7: T).(pr0 t7 t4)) H8 t5 H19) in (ex2_ind T (\lambda (t7: T).(pr0 
471 t4 t7)) (\lambda (t7: T).(pr0 t6 t7)) (ex2 T (\lambda (t7: T).(pr0 (THead k0 
472 u2 t4) t7)) (\lambda (t7: T).(pr0 (THead k0 u3 t6) t7))) (\lambda (x: 
473 T).(\lambda (H25: (pr0 t4 x)).(\lambda (H26: (pr0 t6 x)).(ex2_ind T (\lambda 
474 (t7: T).(pr0 u2 t7)) (\lambda (t7: T).(pr0 u3 t7)) (ex2 T (\lambda (t7: 
475 T).(pr0 (THead k0 u2 t4) t7)) (\lambda (t7: T).(pr0 (THead k0 u3 t6) t7))) 
476 (\lambda (x0: T).(\lambda (H27: (pr0 u2 x0)).(\lambda (H28: (pr0 u3 
477 x0)).(ex_intro2 T (\lambda (t7: T).(pr0 (THead k0 u2 t4) t7)) (\lambda (t7: 
478 T).(pr0 (THead k0 u3 t6) t7)) (THead k0 x0 x) (pr0_comp u2 x0 H27 t4 x H25 
479 k0) (pr0_comp u3 x0 H28 t6 x H26 k0))))) (H22 u0 (tlt_head_sx k0 u0 t5) u2 
480 H23 u3 H14))))) (H22 t5 (tlt_head_dx k0 u0 t5) t4 H24 t6 H15)))) k H21))))) 
481 H18)) H17))))) t2 H13)) t H11 H12 H9 H10))) | (pr0_beta u v1 v2 H9 t5 t6 H10) 
482 \Rightarrow (\lambda (H11: (eq T (THead (Flat Appl) v1 (THead (Bind Abst) u 
483 t5)) t)).(\lambda (H12: (eq T (THead (Bind Abbr) v2 t6) t2)).(eq_ind T (THead 
484 (Flat Appl) v1 (THead (Bind Abst) u t5)) (\lambda (_: T).((eq T (THead (Bind 
485 Abbr) v2 t6) t2) \to ((pr0 v1 v2) \to ((pr0 t5 t6) \to (ex2 T (\lambda (t8: 
486 T).(pr0 (THead k u2 t4) t8)) (\lambda (t8: T).(pr0 t2 t8))))))) (\lambda 
487 (H13: (eq T (THead (Bind Abbr) v2 t6) t2)).(eq_ind T (THead (Bind Abbr) v2 
488 t6) (\lambda (t7: T).((pr0 v1 v2) \to ((pr0 t5 t6) \to (ex2 T (\lambda (t8: 
489 T).(pr0 (THead k u2 t4) t8)) (\lambda (t8: T).(pr0 t7 t8)))))) (\lambda (H14: 
490 (pr0 v1 v2)).(\lambda (H15: (pr0 t5 t6)).(let H16 \def (eq_ind_r T t (\lambda 
491 (t7: T).(eq T (THead k u1 t3) t7)) H4 (THead (Flat Appl) v1 (THead (Bind 
492 Abst) u t5)) H11) in (let H17 \def (f_equal T K (\lambda (e: T).(match e in T 
493 return (\lambda (_: T).K) with [(TSort _) \Rightarrow k | (TLRef _) 
494 \Rightarrow k | (THead k0 _ _) \Rightarrow k0])) (THead k u1 t3) (THead (Flat 
495 Appl) v1 (THead (Bind Abst) u t5)) H16) in ((let H18 \def (f_equal T T 
496 (\lambda (e: T).(match e in T return (\lambda (_: T).T) with [(TSort _) 
497 \Rightarrow u1 | (TLRef _) \Rightarrow u1 | (THead _ t7 _) \Rightarrow t7])) 
498 (THead k u1 t3) (THead (Flat Appl) v1 (THead (Bind Abst) u t5)) H16) in ((let 
499 H19 \def (f_equal T T (\lambda (e: T).(match e in T return (\lambda (_: T).T) 
500 with [(TSort _) \Rightarrow t3 | (TLRef _) \Rightarrow t3 | (THead _ _ t7) 
501 \Rightarrow t7])) (THead k u1 t3) (THead (Flat Appl) v1 (THead (Bind Abst) u 
502 t5)) H16) in (\lambda (H20: (eq T u1 v1)).(\lambda (H21: (eq K k (Flat 
503 Appl))).(let H22 \def (eq_ind_r T t (\lambda (t7: T).(\forall (v: T).((tlt v 
504 t7) \to (\forall (t8: T).((pr0 v t8) \to (\forall (t9: T).((pr0 v t9) \to 
505 (ex2 T (\lambda (t10: T).(pr0 t8 t10)) (\lambda (t10: T).(pr0 t9 
506 t10)))))))))) H (THead (Flat Appl) v1 (THead (Bind Abst) u t5)) H11) in 
507 (eq_ind_r K (Flat Appl) (\lambda (k0: K).(ex2 T (\lambda (t7: T).(pr0 (THead 
508 k0 u2 t4) t7)) (\lambda (t7: T).(pr0 (THead (Bind Abbr) v2 t6) t7)))) (let 
509 H23 \def (eq_ind T u1 (\lambda (t7: T).(pr0 t7 u2)) H7 v1 H20) in (let H24 
510 \def (eq_ind T t3 (\lambda (t7: T).(pr0 t7 t4)) H8 (THead (Bind Abst) u t5) 
511 H19) in (let H25 \def (match H24 in pr0 return (\lambda (t7: T).(\lambda (t8: 
512 T).(\lambda (_: (pr0 t7 t8)).((eq T t7 (THead (Bind Abst) u t5)) \to ((eq T 
513 t8 t4) \to (ex2 T (\lambda (t9: T).(pr0 (THead (Flat Appl) u2 t4) t9)) 
514 (\lambda (t9: T).(pr0 (THead (Bind Abbr) v2 t6) t9)))))))) with [(pr0_refl 
515 t7) \Rightarrow (\lambda (H25: (eq T t7 (THead (Bind Abst) u t5))).(\lambda 
516 (H26: (eq T t7 t4)).(eq_ind T (THead (Bind Abst) u t5) (\lambda (t8: T).((eq 
517 T t8 t4) \to (ex2 T (\lambda (t9: T).(pr0 (THead (Flat Appl) u2 t4) t9)) 
518 (\lambda (t9: T).(pr0 (THead (Bind Abbr) v2 t6) t9))))) (\lambda (H27: (eq T 
519 (THead (Bind Abst) u t5) t4)).(eq_ind T (THead (Bind Abst) u t5) (\lambda 
520 (t8: T).(ex2 T (\lambda (t9: T).(pr0 (THead (Flat Appl) u2 t8) t9)) (\lambda 
521 (t9: T).(pr0 (THead (Bind Abbr) v2 t6) t9)))) (ex2_ind T (\lambda (t8: 
522 T).(pr0 u2 t8)) (\lambda (t8: T).(pr0 v2 t8)) (ex2 T (\lambda (t8: T).(pr0 
523 (THead (Flat Appl) u2 (THead (Bind Abst) u t5)) t8)) (\lambda (t8: T).(pr0 
524 (THead (Bind Abbr) v2 t6) t8))) (\lambda (x: T).(\lambda (H28: (pr0 u2 
525 x)).(\lambda (H29: (pr0 v2 x)).(ex_intro2 T (\lambda (t8: T).(pr0 (THead 
526 (Flat Appl) u2 (THead (Bind Abst) u t5)) t8)) (\lambda (t8: T).(pr0 (THead 
527 (Bind Abbr) v2 t6) t8)) (THead (Bind Abbr) x t6) (pr0_beta u u2 x H28 t5 t6 
528 H15) (pr0_comp v2 x H29 t6 t6 (pr0_refl t6) (Bind Abbr)))))) (H22 v1 
529 (tlt_head_sx (Flat Appl) v1 (THead (Bind Abst) u t5)) u2 H23 v2 H14)) t4 
530 H27)) t7 (sym_eq T t7 (THead (Bind Abst) u t5) H25) H26))) | (pr0_comp u0 u3 
531 H25 t7 t8 H26 k0) \Rightarrow (\lambda (H27: (eq T (THead k0 u0 t7) (THead 
532 (Bind Abst) u t5))).(\lambda (H28: (eq T (THead k0 u3 t8) t4)).((let H29 \def 
533 (f_equal T T (\lambda (e: T).(match e in T return (\lambda (_: T).T) with 
534 [(TSort _) \Rightarrow t7 | (TLRef _) \Rightarrow t7 | (THead _ _ t9) 
535 \Rightarrow t9])) (THead k0 u0 t7) (THead (Bind Abst) u t5) H27) in ((let H30 
536 \def (f_equal T T (\lambda (e: T).(match e in T return (\lambda (_: T).T) 
537 with [(TSort _) \Rightarrow u0 | (TLRef _) \Rightarrow u0 | (THead _ t9 _) 
538 \Rightarrow t9])) (THead k0 u0 t7) (THead (Bind Abst) u t5) H27) in ((let H31 
539 \def (f_equal T K (\lambda (e: T).(match e in T return (\lambda (_: T).K) 
540 with [(TSort _) \Rightarrow k0 | (TLRef _) \Rightarrow k0 | (THead k1 _ _) 
541 \Rightarrow k1])) (THead k0 u0 t7) (THead (Bind Abst) u t5) H27) in (eq_ind K 
542 (Bind Abst) (\lambda (k1: K).((eq T u0 u) \to ((eq T t7 t5) \to ((eq T (THead 
543 k1 u3 t8) t4) \to ((pr0 u0 u3) \to ((pr0 t7 t8) \to (ex2 T (\lambda (t9: 
544 T).(pr0 (THead (Flat Appl) u2 t4) t9)) (\lambda (t9: T).(pr0 (THead (Bind 
545 Abbr) v2 t6) t9))))))))) (\lambda (H32: (eq T u0 u)).(eq_ind T u (\lambda 
546 (t9: T).((eq T t7 t5) \to ((eq T (THead (Bind Abst) u3 t8) t4) \to ((pr0 t9 
547 u3) \to ((pr0 t7 t8) \to (ex2 T (\lambda (t10: T).(pr0 (THead (Flat Appl) u2 
548 t4) t10)) (\lambda (t10: T).(pr0 (THead (Bind Abbr) v2 t6) t10)))))))) 
549 (\lambda (H33: (eq T t7 t5)).(eq_ind T t5 (\lambda (t9: T).((eq T (THead 
550 (Bind Abst) u3 t8) t4) \to ((pr0 u u3) \to ((pr0 t9 t8) \to (ex2 T (\lambda 
551 (t10: T).(pr0 (THead (Flat Appl) u2 t4) t10)) (\lambda (t10: T).(pr0 (THead 
552 (Bind Abbr) v2 t6) t10))))))) (\lambda (H34: (eq T (THead (Bind Abst) u3 t8) 
553 t4)).(eq_ind T (THead (Bind Abst) u3 t8) (\lambda (t9: T).((pr0 u u3) \to 
554 ((pr0 t5 t8) \to (ex2 T (\lambda (t10: T).(pr0 (THead (Flat Appl) u2 t9) 
555 t10)) (\lambda (t10: T).(pr0 (THead (Bind Abbr) v2 t6) t10)))))) (\lambda (_: 
556 (pr0 u u3)).(\lambda (H36: (pr0 t5 t8)).(ex2_ind T (\lambda (t9: T).(pr0 t8 
557 t9)) (\lambda (t9: T).(pr0 t6 t9)) (ex2 T (\lambda (t9: T).(pr0 (THead (Flat 
558 Appl) u2 (THead (Bind Abst) u3 t8)) t9)) (\lambda (t9: T).(pr0 (THead (Bind 
559 Abbr) v2 t6) t9))) (\lambda (x: T).(\lambda (H37: (pr0 t8 x)).(\lambda (H38: 
560 (pr0 t6 x)).(ex2_ind T (\lambda (t9: T).(pr0 u2 t9)) (\lambda (t9: T).(pr0 v2 
561 t9)) (ex2 T (\lambda (t9: T).(pr0 (THead (Flat Appl) u2 (THead (Bind Abst) u3 
562 t8)) t9)) (\lambda (t9: T).(pr0 (THead (Bind Abbr) v2 t6) t9))) (\lambda (x0: 
563 T).(\lambda (H39: (pr0 u2 x0)).(\lambda (H40: (pr0 v2 x0)).(ex_intro2 T 
564 (\lambda (t9: T).(pr0 (THead (Flat Appl) u2 (THead (Bind Abst) u3 t8)) t9)) 
565 (\lambda (t9: T).(pr0 (THead (Bind Abbr) v2 t6) t9)) (THead (Bind Abbr) x0 x) 
566 (pr0_beta u3 u2 x0 H39 t8 x H37) (pr0_comp v2 x0 H40 t6 x H38 (Bind 
567 Abbr)))))) (H22 v1 (tlt_head_sx (Flat Appl) v1 (THead (Bind Abst) u t5)) u2 
568 H23 v2 H14))))) (H22 t5 (tlt_trans (THead (Bind Abst) u t5) t5 (THead (Flat 
569 Appl) v1 (THead (Bind Abst) u t5)) (tlt_head_dx (Bind Abst) u t5) 
570 (tlt_head_dx (Flat Appl) v1 (THead (Bind Abst) u t5))) t8 H36 t6 H15)))) t4 
571 H34)) t7 (sym_eq T t7 t5 H33))) u0 (sym_eq T u0 u H32))) k0 (sym_eq K k0 
572 (Bind Abst) H31))) H30)) H29)) H28 H25 H26))) | (pr0_beta u0 v0 v3 H25 t7 t8 
573 H26) \Rightarrow (\lambda (H27: (eq T (THead (Flat Appl) v0 (THead (Bind 
574 Abst) u0 t7)) (THead (Bind Abst) u t5))).(\lambda (H28: (eq T (THead (Bind 
575 Abbr) v3 t8) t4)).((let H29 \def (eq_ind T (THead (Flat Appl) v0 (THead (Bind 
576 Abst) u0 t7)) (\lambda (e: T).(match e in T return (\lambda (_: T).Prop) with 
577 [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | (THead k0 _ _) 
578 \Rightarrow (match k0 in K return (\lambda (_: K).Prop) with [(Bind _) 
579 \Rightarrow False | (Flat _) \Rightarrow True])])) I (THead (Bind Abst) u t5) 
580 H27) in (False_ind ((eq T (THead (Bind Abbr) v3 t8) t4) \to ((pr0 v0 v3) \to 
581 ((pr0 t7 t8) \to (ex2 T (\lambda (t9: T).(pr0 (THead (Flat Appl) u2 t4) t9)) 
582 (\lambda (t9: T).(pr0 (THead (Bind Abbr) v2 t6) t9)))))) H29)) H28 H25 H26))) 
583 | (pr0_upsilon b H25 v0 v3 H26 u0 u3 H27 t7 t8 H28) \Rightarrow (\lambda 
584 (H29: (eq T (THead (Flat Appl) v0 (THead (Bind b) u0 t7)) (THead (Bind Abst) 
585 u t5))).(\lambda (H30: (eq T (THead (Bind b) u3 (THead (Flat Appl) (lift (S 
586 O) O v3) t8)) t4)).((let H31 \def (eq_ind T (THead (Flat Appl) v0 (THead 
587 (Bind b) u0 t7)) (\lambda (e: T).(match e in T return (\lambda (_: T).Prop) 
588 with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | (THead k0 _ 
589 _) \Rightarrow (match k0 in K return (\lambda (_: K).Prop) with [(Bind _) 
590 \Rightarrow False | (Flat _) \Rightarrow True])])) I (THead (Bind Abst) u t5) 
591 H29) in (False_ind ((eq T (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O 
592 v3) t8)) t4) \to ((not (eq B b Abst)) \to ((pr0 v0 v3) \to ((pr0 u0 u3) \to 
593 ((pr0 t7 t8) \to (ex2 T (\lambda (t9: T).(pr0 (THead (Flat Appl) u2 t4) t9)) 
594 (\lambda (t9: T).(pr0 (THead (Bind Abbr) v2 t6) t9)))))))) H31)) H30 H25 H26 
595 H27 H28))) | (pr0_delta u0 u3 H25 t7 t8 H26 w H27) \Rightarrow (\lambda (H28: 
596 (eq T (THead (Bind Abbr) u0 t7) (THead (Bind Abst) u t5))).(\lambda (H29: (eq 
597 T (THead (Bind Abbr) u3 w) t4)).((let H30 \def (eq_ind T (THead (Bind Abbr) 
598 u0 t7) (\lambda (e: T).(match e in T return (\lambda (_: T).Prop) with 
599 [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | (THead k0 _ _) 
600 \Rightarrow (match k0 in K return (\lambda (_: K).Prop) with [(Bind b) 
601 \Rightarrow (match b in B return (\lambda (_: B).Prop) with [Abbr \Rightarrow 
602 True | Abst \Rightarrow False | Void \Rightarrow False]) | (Flat _) 
603 \Rightarrow False])])) I (THead (Bind Abst) u t5) H28) in (False_ind ((eq T 
604 (THead (Bind Abbr) u3 w) t4) \to ((pr0 u0 u3) \to ((pr0 t7 t8) \to ((subst0 O 
605 u3 t8 w) \to (ex2 T (\lambda (t9: T).(pr0 (THead (Flat Appl) u2 t4) t9)) 
606 (\lambda (t9: T).(pr0 (THead (Bind Abbr) v2 t6) t9))))))) H30)) H29 H25 H26 
607 H27))) | (pr0_zeta b H25 t7 t8 H26 u0) \Rightarrow (\lambda (H27: (eq T 
608 (THead (Bind b) u0 (lift (S O) O t7)) (THead (Bind Abst) u t5))).(\lambda 
609 (H28: (eq T t8 t4)).((let H29 \def (f_equal T T (\lambda (e: T).(match e in T 
610 return (\lambda (_: T).T) with [(TSort _) \Rightarrow ((let rec lref_map (f: 
611 ((nat \to nat))) (d: nat) (t9: T) on t9: T \def (match t9 with [(TSort n) 
612 \Rightarrow (TSort n) | (TLRef i) \Rightarrow (TLRef (match (blt i d) with 
613 [true \Rightarrow i | false \Rightarrow (f i)])) | (THead k0 u3 t10) 
614 \Rightarrow (THead k0 (lref_map f d u3) (lref_map f (s k0 d) t10))]) in 
615 lref_map) (\lambda (x: nat).(plus x (S O))) O t7) | (TLRef _) \Rightarrow 
616 ((let rec lref_map (f: ((nat \to nat))) (d: nat) (t9: T) on t9: T \def (match 
617 t9 with [(TSort n) \Rightarrow (TSort n) | (TLRef i) \Rightarrow (TLRef 
618 (match (blt i d) with [true \Rightarrow i | false \Rightarrow (f i)])) | 
619 (THead k0 u3 t10) \Rightarrow (THead k0 (lref_map f d u3) (lref_map f (s k0 
620 d) t10))]) in lref_map) (\lambda (x: nat).(plus x (S O))) O t7) | (THead _ _ 
621 t9) \Rightarrow t9])) (THead (Bind b) u0 (lift (S O) O t7)) (THead (Bind 
622 Abst) u t5) H27) in ((let H30 \def (f_equal T T (\lambda (e: T).(match e in T 
623 return (\lambda (_: T).T) with [(TSort _) \Rightarrow u0 | (TLRef _) 
624 \Rightarrow u0 | (THead _ t9 _) \Rightarrow t9])) (THead (Bind b) u0 (lift (S 
625 O) O t7)) (THead (Bind Abst) u t5) H27) in ((let H31 \def (f_equal T B 
626 (\lambda (e: T).(match e in T return (\lambda (_: T).B) with [(TSort _) 
627 \Rightarrow b | (TLRef _) \Rightarrow b | (THead k0 _ _) \Rightarrow (match 
628 k0 in K return (\lambda (_: K).B) with [(Bind b0) \Rightarrow b0 | (Flat _) 
629 \Rightarrow b])])) (THead (Bind b) u0 (lift (S O) O t7)) (THead (Bind Abst) u 
630 t5) H27) in (eq_ind B Abst (\lambda (b0: B).((eq T u0 u) \to ((eq T (lift (S 
631 O) O t7) t5) \to ((eq T t8 t4) \to ((not (eq B b0 Abst)) \to ((pr0 t7 t8) \to 
632 (ex2 T (\lambda (t9: T).(pr0 (THead (Flat Appl) u2 t4) t9)) (\lambda (t9: 
633 T).(pr0 (THead (Bind Abbr) v2 t6) t9))))))))) (\lambda (H32: (eq T u0 
634 u)).(eq_ind T u (\lambda (_: T).((eq T (lift (S O) O t7) t5) \to ((eq T t8 
635 t4) \to ((not (eq B Abst Abst)) \to ((pr0 t7 t8) \to (ex2 T (\lambda (t10: 
636 T).(pr0 (THead (Flat Appl) u2 t4) t10)) (\lambda (t10: T).(pr0 (THead (Bind 
637 Abbr) v2 t6) t10)))))))) (\lambda (H33: (eq T (lift (S O) O t7) t5)).(eq_ind 
638 T (lift (S O) O t7) (\lambda (_: T).((eq T t8 t4) \to ((not (eq B Abst Abst)) 
639 \to ((pr0 t7 t8) \to (ex2 T (\lambda (t10: T).(pr0 (THead (Flat Appl) u2 t4) 
640 t10)) (\lambda (t10: T).(pr0 (THead (Bind Abbr) v2 t6) t10))))))) (\lambda 
641 (H34: (eq T t8 t4)).(eq_ind T t4 (\lambda (t9: T).((not (eq B Abst Abst)) \to 
642 ((pr0 t7 t9) \to (ex2 T (\lambda (t10: T).(pr0 (THead (Flat Appl) u2 t4) 
643 t10)) (\lambda (t10: T).(pr0 (THead (Bind Abbr) v2 t6) t10)))))) (\lambda 
644 (H35: (not (eq B Abst Abst))).(\lambda (_: (pr0 t7 t4)).(let H37 \def (match 
645 (H35 (refl_equal B Abst)) in False return (\lambda (_: False).(ex2 T (\lambda 
646 (t9: T).(pr0 (THead (Flat Appl) u2 t4) t9)) (\lambda (t9: T).(pr0 (THead 
647 (Bind Abbr) v2 t6) t9)))) with []) in H37))) t8 (sym_eq T t8 t4 H34))) t5 
648 H33)) u0 (sym_eq T u0 u H32))) b (sym_eq B b Abst H31))) H30)) H29)) H28 H25 
649 H26))) | (pr0_tau t7 t8 H25 u0) \Rightarrow (\lambda (H26: (eq T (THead (Flat 
650 Cast) u0 t7) (THead (Bind Abst) u t5))).(\lambda (H27: (eq T t8 t4)).((let 
651 H28 \def (eq_ind T (THead (Flat Cast) u0 t7) (\lambda (e: T).(match e in T 
652 return (\lambda (_: T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) 
653 \Rightarrow False | (THead k0 _ _) \Rightarrow (match k0 in K return (\lambda 
654 (_: K).Prop) with [(Bind _) \Rightarrow False | (Flat _) \Rightarrow 
655 True])])) I (THead (Bind Abst) u t5) H26) in (False_ind ((eq T t8 t4) \to 
656 ((pr0 t7 t8) \to (ex2 T (\lambda (t9: T).(pr0 (THead (Flat Appl) u2 t4) t9)) 
657 (\lambda (t9: T).(pr0 (THead (Bind Abbr) v2 t6) t9))))) H28)) H27 H25)))]) in 
658 (H25 (refl_equal T (THead (Bind Abst) u t5)) (refl_equal T t4))))) k H21))))) 
659 H18)) H17))))) t2 H13)) t H11 H12 H9 H10))) | (pr0_upsilon b H9 v1 v2 H10 u0 
660 u3 H11 t5 t6 H12) \Rightarrow (\lambda (H13: (eq T (THead (Flat Appl) v1 
661 (THead (Bind b) u0 t5)) t)).(\lambda (H14: (eq T (THead (Bind b) u3 (THead 
662 (Flat Appl) (lift (S O) O v2) t6)) t2)).(eq_ind T (THead (Flat Appl) v1 
663 (THead (Bind b) u0 t5)) (\lambda (_: T).((eq T (THead (Bind b) u3 (THead 
664 (Flat Appl) (lift (S O) O v2) t6)) t2) \to ((not (eq B b Abst)) \to ((pr0 v1 
665 v2) \to ((pr0 u0 u3) \to ((pr0 t5 t6) \to (ex2 T (\lambda (t8: T).(pr0 (THead 
666 k u2 t4) t8)) (\lambda (t8: T).(pr0 t2 t8))))))))) (\lambda (H15: (eq T 
667 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t2)).(eq_ind T 
668 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) (\lambda (t7: 
669 T).((not (eq B b Abst)) \to ((pr0 v1 v2) \to ((pr0 u0 u3) \to ((pr0 t5 t6) 
670 \to (ex2 T (\lambda (t8: T).(pr0 (THead k u2 t4) t8)) (\lambda (t8: T).(pr0 
671 t7 t8)))))))) (\lambda (H16: (not (eq B b Abst))).(\lambda (H17: (pr0 v1 
672 v2)).(\lambda (H18: (pr0 u0 u3)).(\lambda (H19: (pr0 t5 t6)).(let H20 \def 
673 (eq_ind_r T t (\lambda (t7: T).(eq T (THead k u1 t3) t7)) H4 (THead (Flat 
674 Appl) v1 (THead (Bind b) u0 t5)) H13) in (let H21 \def (f_equal T K (\lambda 
675 (e: T).(match e in T return (\lambda (_: T).K) with [(TSort _) \Rightarrow k 
676 | (TLRef _) \Rightarrow k | (THead k0 _ _) \Rightarrow k0])) (THead k u1 t3) 
677 (THead (Flat Appl) v1 (THead (Bind b) u0 t5)) H20) in ((let H22 \def (f_equal 
678 T T (\lambda (e: T).(match e in T return (\lambda (_: T).T) with [(TSort _) 
679 \Rightarrow u1 | (TLRef _) \Rightarrow u1 | (THead _ t7 _) \Rightarrow t7])) 
680 (THead k u1 t3) (THead (Flat Appl) v1 (THead (Bind b) u0 t5)) H20) in ((let 
681 H23 \def (f_equal T T (\lambda (e: T).(match e in T return (\lambda (_: T).T) 
682 with [(TSort _) \Rightarrow t3 | (TLRef _) \Rightarrow t3 | (THead _ _ t7) 
683 \Rightarrow t7])) (THead k u1 t3) (THead (Flat Appl) v1 (THead (Bind b) u0 
684 t5)) H20) in (\lambda (H24: (eq T u1 v1)).(\lambda (H25: (eq K k (Flat 
685 Appl))).(let H26 \def (eq_ind_r T t (\lambda (t7: T).(\forall (v: T).((tlt v 
686 t7) \to (\forall (t8: T).((pr0 v t8) \to (\forall (t9: T).((pr0 v t9) \to 
687 (ex2 T (\lambda (t10: T).(pr0 t8 t10)) (\lambda (t10: T).(pr0 t9 
688 t10)))))))))) H (THead (Flat Appl) v1 (THead (Bind b) u0 t5)) H13) in 
689 (eq_ind_r K (Flat Appl) (\lambda (k0: K).(ex2 T (\lambda (t7: T).(pr0 (THead 
690 k0 u2 t4) t7)) (\lambda (t7: T).(pr0 (THead (Bind b) u3 (THead (Flat Appl) 
691 (lift (S O) O v2) t6)) t7)))) (let H27 \def (eq_ind T u1 (\lambda (t7: 
692 T).(pr0 t7 u2)) H7 v1 H24) in (let H28 \def (eq_ind T t3 (\lambda (t7: 
693 T).(pr0 t7 t4)) H8 (THead (Bind b) u0 t5) H23) in (let H29 \def (match H28 in 
694 pr0 return (\lambda (t7: T).(\lambda (t8: T).(\lambda (_: (pr0 t7 t8)).((eq T 
695 t7 (THead (Bind b) u0 t5)) \to ((eq T t8 t4) \to (ex2 T (\lambda (t9: T).(pr0 
696 (THead (Flat Appl) u2 t4) t9)) (\lambda (t9: T).(pr0 (THead (Bind b) u3 
697 (THead (Flat Appl) (lift (S O) O v2) t6)) t9)))))))) with [(pr0_refl t7) 
698 \Rightarrow (\lambda (H29: (eq T t7 (THead (Bind b) u0 t5))).(\lambda (H30: 
699 (eq T t7 t4)).(eq_ind T (THead (Bind b) u0 t5) (\lambda (t8: T).((eq T t8 t4) 
700 \to (ex2 T (\lambda (t9: T).(pr0 (THead (Flat Appl) u2 t4) t9)) (\lambda (t9: 
701 T).(pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9))))) 
702 (\lambda (H31: (eq T (THead (Bind b) u0 t5) t4)).(eq_ind T (THead (Bind b) u0 
703 t5) (\lambda (t8: T).(ex2 T (\lambda (t9: T).(pr0 (THead (Flat Appl) u2 t8) 
704 t9)) (\lambda (t9: T).(pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) 
705 O v2) t6)) t9)))) (ex2_ind T (\lambda (t8: T).(pr0 u2 t8)) (\lambda (t8: 
706 T).(pr0 v2 t8)) (ex2 T (\lambda (t8: T).(pr0 (THead (Flat Appl) u2 (THead 
707 (Bind b) u0 t5)) t8)) (\lambda (t8: T).(pr0 (THead (Bind b) u3 (THead (Flat 
708 Appl) (lift (S O) O v2) t6)) t8))) (\lambda (x: T).(\lambda (H32: (pr0 u2 
709 x)).(\lambda (H33: (pr0 v2 x)).(pr0_confluence__pr0_cong_upsilon_refl b H16 
710 u0 u3 H18 t5 t6 H19 u2 v2 x H32 H33)))) (H26 v1 (tlt_head_sx (Flat Appl) v1 
711 (THead (Bind b) u0 t5)) u2 H27 v2 H17)) t4 H31)) t7 (sym_eq T t7 (THead (Bind 
712 b) u0 t5) H29) H30))) | (pr0_comp u4 u5 H29 t7 t8 H30 k0) \Rightarrow 
713 (\lambda (H31: (eq T (THead k0 u4 t7) (THead (Bind b) u0 t5))).(\lambda (H32: 
714 (eq T (THead k0 u5 t8) t4)).((let H33 \def (f_equal T T (\lambda (e: 
715 T).(match e in T return (\lambda (_: T).T) with [(TSort _) \Rightarrow t7 | 
716 (TLRef _) \Rightarrow t7 | (THead _ _ t9) \Rightarrow t9])) (THead k0 u4 t7) 
717 (THead (Bind b) u0 t5) H31) in ((let H34 \def (f_equal T T (\lambda (e: 
718 T).(match e in T return (\lambda (_: T).T) with [(TSort _) \Rightarrow u4 | 
719 (TLRef _) \Rightarrow u4 | (THead _ t9 _) \Rightarrow t9])) (THead k0 u4 t7) 
720 (THead (Bind b) u0 t5) H31) in ((let H35 \def (f_equal T K (\lambda (e: 
721 T).(match e in T return (\lambda (_: T).K) with [(TSort _) \Rightarrow k0 | 
722 (TLRef _) \Rightarrow k0 | (THead k1 _ _) \Rightarrow k1])) (THead k0 u4 t7) 
723 (THead (Bind b) u0 t5) H31) in (eq_ind K (Bind b) (\lambda (k1: K).((eq T u4 
724 u0) \to ((eq T t7 t5) \to ((eq T (THead k1 u5 t8) t4) \to ((pr0 u4 u5) \to 
725 ((pr0 t7 t8) \to (ex2 T (\lambda (t9: T).(pr0 (THead (Flat Appl) u2 t4) t9)) 
726 (\lambda (t9: T).(pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) 
727 t6)) t9))))))))) (\lambda (H36: (eq T u4 u0)).(eq_ind T u0 (\lambda (t9: 
728 T).((eq T t7 t5) \to ((eq T (THead (Bind b) u5 t8) t4) \to ((pr0 t9 u5) \to 
729 ((pr0 t7 t8) \to (ex2 T (\lambda (t10: T).(pr0 (THead (Flat Appl) u2 t4) 
730 t10)) (\lambda (t10: T).(pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S 
731 O) O v2) t6)) t10)))))))) (\lambda (H37: (eq T t7 t5)).(eq_ind T t5 (\lambda 
732 (t9: T).((eq T (THead (Bind b) u5 t8) t4) \to ((pr0 u0 u5) \to ((pr0 t9 t8) 
733 \to (ex2 T (\lambda (t10: T).(pr0 (THead (Flat Appl) u2 t4) t10)) (\lambda 
734 (t10: T).(pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) 
735 t10))))))) (\lambda (H38: (eq T (THead (Bind b) u5 t8) t4)).(eq_ind T (THead 
736 (Bind b) u5 t8) (\lambda (t9: T).((pr0 u0 u5) \to ((pr0 t5 t8) \to (ex2 T 
737 (\lambda (t10: T).(pr0 (THead (Flat Appl) u2 t9) t10)) (\lambda (t10: T).(pr0 
738 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t10)))))) 
739 (\lambda (H39: (pr0 u0 u5)).(\lambda (H40: (pr0 t5 t8)).(ex2_ind T (\lambda 
740 (t9: T).(pr0 t8 t9)) (\lambda (t9: T).(pr0 t6 t9)) (ex2 T (\lambda (t9: 
741 T).(pr0 (THead (Flat Appl) u2 (THead (Bind b) u5 t8)) t9)) (\lambda (t9: 
742 T).(pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9))) 
743 (\lambda (x: T).(\lambda (H41: (pr0 t8 x)).(\lambda (H42: (pr0 t6 
744 x)).(ex2_ind T (\lambda (t9: T).(pr0 u5 t9)) (\lambda (t9: T).(pr0 u3 t9)) 
745 (ex2 T (\lambda (t9: T).(pr0 (THead (Flat Appl) u2 (THead (Bind b) u5 t8)) 
746 t9)) (\lambda (t9: T).(pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) 
747 O v2) t6)) t9))) (\lambda (x0: T).(\lambda (H43: (pr0 u5 x0)).(\lambda (H44: 
748 (pr0 u3 x0)).(ex2_ind T (\lambda (t9: T).(pr0 u2 t9)) (\lambda (t9: T).(pr0 
749 v2 t9)) (ex2 T (\lambda (t9: T).(pr0 (THead (Flat Appl) u2 (THead (Bind b) u5 
750 t8)) t9)) (\lambda (t9: T).(pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift 
751 (S O) O v2) t6)) t9))) (\lambda (x1: T).(\lambda (H45: (pr0 u2 x1)).(\lambda 
752 (H46: (pr0 v2 x1)).(pr0_confluence__pr0_cong_upsilon_cong b H16 u2 v2 x1 H45 
753 H46 t8 t6 x H41 H42 u5 u3 x0 H43 H44)))) (H26 v1 (tlt_head_sx (Flat Appl) v1 
754 (THead (Bind b) u0 t5)) u2 H27 v2 H17))))) (H26 u0 (tlt_trans (THead (Bind b) 
755 u0 t5) u0 (THead (Flat Appl) v1 (THead (Bind b) u0 t5)) (tlt_head_sx (Bind b) 
756 u0 t5) (tlt_head_dx (Flat Appl) v1 (THead (Bind b) u0 t5))) u5 H39 u3 
757 H18))))) (H26 t5 (tlt_trans (THead (Bind b) u0 t5) t5 (THead (Flat Appl) v1 
758 (THead (Bind b) u0 t5)) (tlt_head_dx (Bind b) u0 t5) (tlt_head_dx (Flat Appl) 
759 v1 (THead (Bind b) u0 t5))) t8 H40 t6 H19)))) t4 H38)) t7 (sym_eq T t7 t5 
760 H37))) u4 (sym_eq T u4 u0 H36))) k0 (sym_eq K k0 (Bind b) H35))) H34)) H33)) 
761 H32 H29 H30))) | (pr0_beta u v0 v3 H29 t7 t8 H30) \Rightarrow (\lambda (H31: 
762 (eq T (THead (Flat Appl) v0 (THead (Bind Abst) u t7)) (THead (Bind b) u0 
763 t5))).(\lambda (H32: (eq T (THead (Bind Abbr) v3 t8) t4)).((let H33 \def 
764 (eq_ind T (THead (Flat Appl) v0 (THead (Bind Abst) u t7)) (\lambda (e: 
765 T).(match e in T return (\lambda (_: T).Prop) with [(TSort _) \Rightarrow 
766 False | (TLRef _) \Rightarrow False | (THead k0 _ _) \Rightarrow (match k0 in 
767 K return (\lambda (_: K).Prop) with [(Bind _) \Rightarrow False | (Flat _) 
768 \Rightarrow True])])) I (THead (Bind b) u0 t5) H31) in (False_ind ((eq T 
769 (THead (Bind Abbr) v3 t8) t4) \to ((pr0 v0 v3) \to ((pr0 t7 t8) \to (ex2 T 
770 (\lambda (t9: T).(pr0 (THead (Flat Appl) u2 t4) t9)) (\lambda (t9: T).(pr0 
771 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9)))))) H33)) 
772 H32 H29 H30))) | (pr0_upsilon b0 H29 v0 v3 H30 u4 u5 H31 t7 t8 H32) 
773 \Rightarrow (\lambda (H33: (eq T (THead (Flat Appl) v0 (THead (Bind b0) u4 
774 t7)) (THead (Bind b) u0 t5))).(\lambda (H34: (eq T (THead (Bind b0) u5 (THead 
775 (Flat Appl) (lift (S O) O v3) t8)) t4)).((let H35 \def (eq_ind T (THead (Flat 
776 Appl) v0 (THead (Bind b0) u4 t7)) (\lambda (e: T).(match e in T return 
777 (\lambda (_: T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) 
778 \Rightarrow False | (THead k0 _ _) \Rightarrow (match k0 in K return (\lambda 
779 (_: K).Prop) with [(Bind _) \Rightarrow False | (Flat _) \Rightarrow 
780 True])])) I (THead (Bind b) u0 t5) H33) in (False_ind ((eq T (THead (Bind b0) 
781 u5 (THead (Flat Appl) (lift (S O) O v3) t8)) t4) \to ((not (eq B b0 Abst)) 
782 \to ((pr0 v0 v3) \to ((pr0 u4 u5) \to ((pr0 t7 t8) \to (ex2 T (\lambda (t9: 
783 T).(pr0 (THead (Flat Appl) u2 t4) t9)) (\lambda (t9: T).(pr0 (THead (Bind b) 
784 u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9)))))))) H35)) H34 H29 H30 H31 
785 H32))) | (pr0_delta u4 u5 H29 t7 t8 H30 w H31) \Rightarrow (\lambda (H32: (eq 
786 T (THead (Bind Abbr) u4 t7) (THead (Bind b) u0 t5))).(\lambda (H33: (eq T 
787 (THead (Bind Abbr) u5 w) t4)).((let H34 \def (f_equal T T (\lambda (e: 
788 T).(match e in T return (\lambda (_: T).T) with [(TSort _) \Rightarrow t7 | 
789 (TLRef _) \Rightarrow t7 | (THead _ _ t9) \Rightarrow t9])) (THead (Bind 
790 Abbr) u4 t7) (THead (Bind b) u0 t5) H32) in ((let H35 \def (f_equal T T 
791 (\lambda (e: T).(match e in T return (\lambda (_: T).T) with [(TSort _) 
792 \Rightarrow u4 | (TLRef _) \Rightarrow u4 | (THead _ t9 _) \Rightarrow t9])) 
793 (THead (Bind Abbr) u4 t7) (THead (Bind b) u0 t5) H32) in ((let H36 \def 
794 (f_equal T B (\lambda (e: T).(match e in T return (\lambda (_: T).B) with 
795 [(TSort _) \Rightarrow Abbr | (TLRef _) \Rightarrow Abbr | (THead k0 _ _) 
796 \Rightarrow (match k0 in K return (\lambda (_: K).B) with [(Bind b0) 
797 \Rightarrow b0 | (Flat _) \Rightarrow Abbr])])) (THead (Bind Abbr) u4 t7) 
798 (THead (Bind b) u0 t5) H32) in (eq_ind B Abbr (\lambda (b0: B).((eq T u4 u0) 
799 \to ((eq T t7 t5) \to ((eq T (THead (Bind Abbr) u5 w) t4) \to ((pr0 u4 u5) 
800 \to ((pr0 t7 t8) \to ((subst0 O u5 t8 w) \to (ex2 T (\lambda (t9: T).(pr0 
801 (THead (Flat Appl) u2 t4) t9)) (\lambda (t9: T).(pr0 (THead (Bind b0) u3 
802 (THead (Flat Appl) (lift (S O) O v2) t6)) t9)))))))))) (\lambda (H37: (eq T 
803 u4 u0)).(eq_ind T u0 (\lambda (t9: T).((eq T t7 t5) \to ((eq T (THead (Bind 
804 Abbr) u5 w) t4) \to ((pr0 t9 u5) \to ((pr0 t7 t8) \to ((subst0 O u5 t8 w) \to 
805 (ex2 T (\lambda (t10: T).(pr0 (THead (Flat Appl) u2 t4) t10)) (\lambda (t10: 
806 T).(pr0 (THead (Bind Abbr) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) 
807 t10))))))))) (\lambda (H38: (eq T t7 t5)).(eq_ind T t5 (\lambda (t9: T).((eq 
808 T (THead (Bind Abbr) u5 w) t4) \to ((pr0 u0 u5) \to ((pr0 t9 t8) \to ((subst0 
809 O u5 t8 w) \to (ex2 T (\lambda (t10: T).(pr0 (THead (Flat Appl) u2 t4) t10)) 
810 (\lambda (t10: T).(pr0 (THead (Bind Abbr) u3 (THead (Flat Appl) (lift (S O) O 
811 v2) t6)) t10)))))))) (\lambda (H39: (eq T (THead (Bind Abbr) u5 w) 
812 t4)).(eq_ind T (THead (Bind Abbr) u5 w) (\lambda (t9: T).((pr0 u0 u5) \to 
813 ((pr0 t5 t8) \to ((subst0 O u5 t8 w) \to (ex2 T (\lambda (t10: T).(pr0 (THead 
814 (Flat Appl) u2 t9) t10)) (\lambda (t10: T).(pr0 (THead (Bind Abbr) u3 (THead 
815 (Flat Appl) (lift (S O) O v2) t6)) t10))))))) (\lambda (H40: (pr0 u0 
816 u5)).(\lambda (H41: (pr0 t5 t8)).(\lambda (H42: (subst0 O u5 t8 w)).(let H43 
817 \def (eq_ind_r B b (\lambda (b0: B).(\forall (v: T).((tlt v (THead (Flat 
818 Appl) v1 (THead (Bind b0) u0 t5))) \to (\forall (t9: T).((pr0 v t9) \to 
819 (\forall (t10: T).((pr0 v t10) \to (ex2 T (\lambda (t11: T).(pr0 t9 t11)) 
820 (\lambda (t11: T).(pr0 t10 t11)))))))))) H26 Abbr H36) in (let H44 \def 
821 (eq_ind_r B b (\lambda (b0: B).(eq T t3 (THead (Bind b0) u0 t5))) H23 Abbr 
822 H36) in (let H45 \def (eq_ind_r B b (\lambda (b0: B).(not (eq B b0 Abst))) 
823 H16 Abbr H36) in (ex2_ind T (\lambda (t9: T).(pr0 t8 t9)) (\lambda (t9: 
824 T).(pr0 t6 t9)) (ex2 T (\lambda (t9: T).(pr0 (THead (Flat Appl) u2 (THead 
825 (Bind Abbr) u5 w)) t9)) (\lambda (t9: T).(pr0 (THead (Bind Abbr) u3 (THead 
826 (Flat Appl) (lift (S O) O v2) t6)) t9))) (\lambda (x: T).(\lambda (H46: (pr0 
827 t8 x)).(\lambda (H47: (pr0 t6 x)).(ex2_ind T (\lambda (t9: T).(pr0 u5 t9)) 
828 (\lambda (t9: T).(pr0 u3 t9)) (ex2 T (\lambda (t9: T).(pr0 (THead (Flat Appl) 
829 u2 (THead (Bind Abbr) u5 w)) t9)) (\lambda (t9: T).(pr0 (THead (Bind Abbr) u3 
830 (THead (Flat Appl) (lift (S O) O v2) t6)) t9))) (\lambda (x0: T).(\lambda 
831 (H48: (pr0 u5 x0)).(\lambda (H49: (pr0 u3 x0)).(ex2_ind T (\lambda (t9: 
832 T).(pr0 u2 t9)) (\lambda (t9: T).(pr0 v2 t9)) (ex2 T (\lambda (t9: T).(pr0 
833 (THead (Flat Appl) u2 (THead (Bind Abbr) u5 w)) t9)) (\lambda (t9: T).(pr0 
834 (THead (Bind Abbr) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9))) 
835 (\lambda (x1: T).(\lambda (H50: (pr0 u2 x1)).(\lambda (H51: (pr0 v2 
836 x1)).(pr0_confluence__pr0_cong_upsilon_delta H45 u5 t8 w H42 u2 v2 x1 H50 H51 
837 t6 x H46 H47 u3 x0 H48 H49)))) (H43 v1 (tlt_head_sx (Flat Appl) v1 (THead 
838 (Bind Abbr) u0 t5)) u2 H27 v2 H17))))) (H43 u0 (tlt_trans (THead (Bind Abbr) 
839 u0 t5) u0 (THead (Flat Appl) v1 (THead (Bind Abbr) u0 t5)) (tlt_head_sx (Bind 
840 Abbr) u0 t5) (tlt_head_dx (Flat Appl) v1 (THead (Bind Abbr) u0 t5))) u5 H40 
841 u3 H18))))) (H43 t5 (tlt_trans (THead (Bind Abbr) u0 t5) t5 (THead (Flat 
842 Appl) v1 (THead (Bind Abbr) u0 t5)) (tlt_head_dx (Bind Abbr) u0 t5) 
843 (tlt_head_dx (Flat Appl) v1 (THead (Bind Abbr) u0 t5))) t8 H41 t6 H19)))))))) 
844 t4 H39)) t7 (sym_eq T t7 t5 H38))) u4 (sym_eq T u4 u0 H37))) b H36)) H35)) 
845 H34)) H33 H29 H30 H31))) | (pr0_zeta b0 H29 t7 t8 H30 u) \Rightarrow (\lambda 
846 (H31: (eq T (THead (Bind b0) u (lift (S O) O t7)) (THead (Bind b) u0 
847 t5))).(\lambda (H32: (eq T t8 t4)).((let H33 \def (f_equal T T (\lambda (e: 
848 T).(match e in T return (\lambda (_: T).T) with [(TSort _) \Rightarrow ((let 
849 rec lref_map (f: ((nat \to nat))) (d: nat) (t9: T) on t9: T \def (match t9 
850 with [(TSort n) \Rightarrow (TSort n) | (TLRef i) \Rightarrow (TLRef (match 
851 (blt i d) with [true \Rightarrow i | false \Rightarrow (f i)])) | (THead k0 
852 u4 t10) \Rightarrow (THead k0 (lref_map f d u4) (lref_map f (s k0 d) t10))]) 
853 in lref_map) (\lambda (x: nat).(plus x (S O))) O t7) | (TLRef _) \Rightarrow 
854 ((let rec lref_map (f: ((nat \to nat))) (d: nat) (t9: T) on t9: T \def (match 
855 t9 with [(TSort n) \Rightarrow (TSort n) | (TLRef i) \Rightarrow (TLRef 
856 (match (blt i d) with [true \Rightarrow i | false \Rightarrow (f i)])) | 
857 (THead k0 u4 t10) \Rightarrow (THead k0 (lref_map f d u4) (lref_map f (s k0 
858 d) t10))]) in lref_map) (\lambda (x: nat).(plus x (S O))) O t7) | (THead _ _ 
859 t9) \Rightarrow t9])) (THead (Bind b0) u (lift (S O) O t7)) (THead (Bind b) 
860 u0 t5) H31) in ((let H34 \def (f_equal T T (\lambda (e: T).(match e in T 
861 return (\lambda (_: T).T) with [(TSort _) \Rightarrow u | (TLRef _) 
862 \Rightarrow u | (THead _ t9 _) \Rightarrow t9])) (THead (Bind b0) u (lift (S 
863 O) O t7)) (THead (Bind b) u0 t5) H31) in ((let H35 \def (f_equal T B (\lambda 
864 (e: T).(match e in T return (\lambda (_: T).B) with [(TSort _) \Rightarrow b0 
865 | (TLRef _) \Rightarrow b0 | (THead k0 _ _) \Rightarrow (match k0 in K return 
866 (\lambda (_: K).B) with [(Bind b1) \Rightarrow b1 | (Flat _) \Rightarrow 
867 b0])])) (THead (Bind b0) u (lift (S O) O t7)) (THead (Bind b) u0 t5) H31) in 
868 (eq_ind B b (\lambda (b1: B).((eq T u u0) \to ((eq T (lift (S O) O t7) t5) 
869 \to ((eq T t8 t4) \to ((not (eq B b1 Abst)) \to ((pr0 t7 t8) \to (ex2 T 
870 (\lambda (t9: T).(pr0 (THead (Flat Appl) u2 t4) t9)) (\lambda (t9: T).(pr0 
871 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t9))))))))) 
872 (\lambda (H36: (eq T u u0)).(eq_ind T u0 (\lambda (_: T).((eq T (lift (S O) O 
873 t7) t5) \to ((eq T t8 t4) \to ((not (eq B b Abst)) \to ((pr0 t7 t8) \to (ex2 
874 T (\lambda (t10: T).(pr0 (THead (Flat Appl) u2 t4) t10)) (\lambda (t10: 
875 T).(pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) 
876 t10)))))))) (\lambda (H37: (eq T (lift (S O) O t7) t5)).(eq_ind T (lift (S O) 
877 O t7) (\lambda (_: T).((eq T t8 t4) \to ((not (eq B b Abst)) \to ((pr0 t7 t8) 
878 \to (ex2 T (\lambda (t10: T).(pr0 (THead (Flat Appl) u2 t4) t10)) (\lambda 
879 (t10: T).(pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t6)) 
880 t10))))))) (\lambda (H38: (eq T t8 t4)).(eq_ind T t4 (\lambda (t9: T).((not 
881 (eq B b Abst)) \to ((pr0 t7 t9) \to (ex2 T (\lambda (t10: T).(pr0 (THead 
882 (Flat Appl) u2 t4) t10)) (\lambda (t10: T).(pr0 (THead (Bind b) u3 (THead 
883 (Flat Appl) (lift (S O) O v2) t6)) t10)))))) (\lambda (H39: (not (eq B b 
884 Abst))).(\lambda (H40: (pr0 t7 t4)).(let H41 \def (eq_ind_r T t5 (\lambda 
885 (t9: T).(\forall (v: T).((tlt v (THead (Flat Appl) v1 (THead (Bind b) u0 
886 t9))) \to (\forall (t10: T).((pr0 v t10) \to (\forall (t11: T).((pr0 v t11) 
887 \to (ex2 T (\lambda (t12: T).(pr0 t10 t12)) (\lambda (t12: T).(pr0 t11 
888 t12)))))))))) H26 (lift (S O) O t7) H37) in (let H42 \def (eq_ind_r T t5 
889 (\lambda (t9: T).(eq T t3 (THead (Bind b) u0 t9))) H23 (lift (S O) O t7) H37) 
890 in (let H43 \def (eq_ind_r T t5 (\lambda (t9: T).(pr0 t9 t6)) H19 (lift (S O) 
891 O t7) H37) in (ex2_ind T (\lambda (t9: T).(eq T t6 (lift (S O) O t9))) 
892 (\lambda (t9: T).(pr0 t7 t9)) (ex2 T (\lambda (t9: T).(pr0 (THead (Flat Appl) 
893 u2 t4) t9)) (\lambda (t9: T).(pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift 
894 (S O) O v2) t6)) t9))) (\lambda (x: T).(\lambda (H44: (eq T t6 (lift (S O) O 
895 x))).(\lambda (H45: (pr0 t7 x)).(eq_ind_r T (lift (S O) O x) (\lambda (t9: 
896 T).(ex2 T (\lambda (t10: T).(pr0 (THead (Flat Appl) u2 t4) t10)) (\lambda 
897 (t10: T).(pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) t9)) 
898 t10)))) (ex2_ind T (\lambda (t9: T).(pr0 x t9)) (\lambda (t9: T).(pr0 t4 t9)) 
899 (ex2 T (\lambda (t9: T).(pr0 (THead (Flat Appl) u2 t4) t9)) (\lambda (t9: 
900 T).(pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) (lift (S O) O 
901 x))) t9))) (\lambda (x0: T).(\lambda (H46: (pr0 x x0)).(\lambda (H47: (pr0 t4 
902 x0)).(ex2_ind T (\lambda (t9: T).(pr0 u2 t9)) (\lambda (t9: T).(pr0 v2 t9)) 
903 (ex2 T (\lambda (t9: T).(pr0 (THead (Flat Appl) u2 t4) t9)) (\lambda (t9: 
904 T).(pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) (lift (S O) O 
905 x))) t9))) (\lambda (x1: T).(\lambda (H48: (pr0 u2 x1)).(\lambda (H49: (pr0 
906 v2 x1)).(pr0_confluence__pr0_cong_upsilon_zeta b H39 u0 u3 H18 u2 v2 x1 H48 
907 H49 x t4 x0 H46 H47)))) (H41 v1 (tlt_head_sx (Flat Appl) v1 (THead (Bind b) 
908 u0 (lift (S O) O t7))) u2 H27 v2 H17))))) (H41 t7 (tlt_trans (THead (Bind b) 
909 u0 (lift (S O) O t7)) t7 (THead (Flat Appl) v1 (THead (Bind b) u0 (lift (S O) 
910 O t7))) (lift_tlt_dx (Bind b) u0 t7 (S O) O) (tlt_head_dx (Flat Appl) v1 
911 (THead (Bind b) u0 (lift (S O) O t7)))) x H45 t4 H40)) t6 H44)))) 
912 (pr0_gen_lift t7 t6 (S O) O H43))))))) t8 (sym_eq T t8 t4 H38))) t5 H37)) u 
913 (sym_eq T u u0 H36))) b0 (sym_eq B b0 b H35))) H34)) H33)) H32 H29 H30))) | 
914 (pr0_tau t7 t8 H29 u) \Rightarrow (\lambda (H30: (eq T (THead (Flat Cast) u 
915 t7) (THead (Bind b) u0 t5))).(\lambda (H31: (eq T t8 t4)).((let H32 \def 
916 (eq_ind T (THead (Flat Cast) u t7) (\lambda (e: T).(match e in T return 
917 (\lambda (_: T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) 
918 \Rightarrow False | (THead k0 _ _) \Rightarrow (match k0 in K return (\lambda 
919 (_: K).Prop) with [(Bind _) \Rightarrow False | (Flat _) \Rightarrow 
920 True])])) I (THead (Bind b) u0 t5) H30) in (False_ind ((eq T t8 t4) \to ((pr0 
921 t7 t8) \to (ex2 T (\lambda (t9: T).(pr0 (THead (Flat Appl) u2 t4) t9)) 
922 (\lambda (t9: T).(pr0 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v2) 
923 t6)) t9))))) H32)) H31 H29)))]) in (H29 (refl_equal T (THead (Bind b) u0 t5)) 
924 (refl_equal T t4))))) k H25))))) H22)) H21))))))) t2 H15)) t H13 H14 H9 H10 
925 H11 H12))) | (pr0_delta u0 u3 H9 t5 t6 H10 w H11) \Rightarrow (\lambda (H12: 
926 (eq T (THead (Bind Abbr) u0 t5) t)).(\lambda (H13: (eq T (THead (Bind Abbr) 
927 u3 w) t2)).(eq_ind T (THead (Bind Abbr) u0 t5) (\lambda (_: T).((eq T (THead 
928 (Bind Abbr) u3 w) t2) \to ((pr0 u0 u3) \to ((pr0 t5 t6) \to ((subst0 O u3 t6 
929 w) \to (ex2 T (\lambda (t8: T).(pr0 (THead k u2 t4) t8)) (\lambda (t8: 
930 T).(pr0 t2 t8)))))))) (\lambda (H14: (eq T (THead (Bind Abbr) u3 w) 
931 t2)).(eq_ind T (THead (Bind Abbr) u3 w) (\lambda (t7: T).((pr0 u0 u3) \to 
932 ((pr0 t5 t6) \to ((subst0 O u3 t6 w) \to (ex2 T (\lambda (t8: T).(pr0 (THead 
933 k u2 t4) t8)) (\lambda (t8: T).(pr0 t7 t8))))))) (\lambda (H15: (pr0 u0 
934 u3)).(\lambda (H16: (pr0 t5 t6)).(\lambda (H17: (subst0 O u3 t6 w)).(let H18 
935 \def (eq_ind_r T t (\lambda (t7: T).(eq T (THead k u1 t3) t7)) H4 (THead 
936 (Bind Abbr) u0 t5) H12) in (let H19 \def (f_equal T K (\lambda (e: T).(match 
937 e in T return (\lambda (_: T).K) with [(TSort _) \Rightarrow k | (TLRef _) 
938 \Rightarrow k | (THead k0 _ _) \Rightarrow k0])) (THead k u1 t3) (THead (Bind 
939 Abbr) u0 t5) H18) in ((let H20 \def (f_equal T T (\lambda (e: T).(match e in 
940 T return (\lambda (_: T).T) with [(TSort _) \Rightarrow u1 | (TLRef _) 
941 \Rightarrow u1 | (THead _ t7 _) \Rightarrow t7])) (THead k u1 t3) (THead 
942 (Bind Abbr) u0 t5) H18) in ((let H21 \def (f_equal T T (\lambda (e: T).(match 
943 e in T return (\lambda (_: T).T) with [(TSort _) \Rightarrow t3 | (TLRef _) 
944 \Rightarrow t3 | (THead _ _ t7) \Rightarrow t7])) (THead k u1 t3) (THead 
945 (Bind Abbr) u0 t5) H18) in (\lambda (H22: (eq T u1 u0)).(\lambda (H23: (eq K 
946 k (Bind Abbr))).(let H24 \def (eq_ind_r T t (\lambda (t7: T).(\forall (v: 
947 T).((tlt v t7) \to (\forall (t8: T).((pr0 v t8) \to (\forall (t9: T).((pr0 v 
948 t9) \to (ex2 T (\lambda (t10: T).(pr0 t8 t10)) (\lambda (t10: T).(pr0 t9 
949 t10)))))))))) H (THead (Bind Abbr) u0 t5) H12) in (eq_ind_r K (Bind Abbr) 
950 (\lambda (k0: K).(ex2 T (\lambda (t7: T).(pr0 (THead k0 u2 t4) t7)) (\lambda 
951 (t7: T).(pr0 (THead (Bind Abbr) u3 w) t7)))) (let H25 \def (eq_ind T u1 
952 (\lambda (t7: T).(pr0 t7 u2)) H7 u0 H22) in (let H26 \def (eq_ind T t3 
953 (\lambda (t7: T).(pr0 t7 t4)) H8 t5 H21) in (ex2_ind T (\lambda (t7: T).(pr0 
954 t4 t7)) (\lambda (t7: T).(pr0 t6 t7)) (ex2 T (\lambda (t7: T).(pr0 (THead 
955 (Bind Abbr) u2 t4) t7)) (\lambda (t7: T).(pr0 (THead (Bind Abbr) u3 w) t7))) 
956 (\lambda (x: T).(\lambda (H27: (pr0 t4 x)).(\lambda (H28: (pr0 t6 
957 x)).(ex2_ind T (\lambda (t7: T).(pr0 u2 t7)) (\lambda (t7: T).(pr0 u3 t7)) 
958 (ex2 T (\lambda (t7: T).(pr0 (THead (Bind Abbr) u2 t4) t7)) (\lambda (t7: 
959 T).(pr0 (THead (Bind Abbr) u3 w) t7))) (\lambda (x0: T).(\lambda (H29: (pr0 
960 u2 x0)).(\lambda (H30: (pr0 u3 x0)).(pr0_confluence__pr0_cong_delta u3 t6 w 
961 H17 u2 x0 H29 H30 t4 x H27 H28)))) (H24 u0 (tlt_head_sx (Bind Abbr) u0 t5) u2 
962 H25 u3 H15))))) (H24 t5 (tlt_head_dx (Bind Abbr) u0 t5) t4 H26 t6 H16)))) k 
963 H23))))) H20)) H19)))))) t2 H14)) t H12 H13 H9 H10 H11))) | (pr0_zeta b H9 t5 
964 t6 H10 u) \Rightarrow (\lambda (H11: (eq T (THead (Bind b) u (lift (S O) O 
965 t5)) t)).(\lambda (H12: (eq T t6 t2)).(eq_ind T (THead (Bind b) u (lift (S O) 
966 O t5)) (\lambda (_: T).((eq T t6 t2) \to ((not (eq B b Abst)) \to ((pr0 t5 
967 t6) \to (ex2 T (\lambda (t8: T).(pr0 (THead k u2 t4) t8)) (\lambda (t8: 
968 T).(pr0 t2 t8))))))) (\lambda (H13: (eq T t6 t2)).(eq_ind T t2 (\lambda (t7: 
969 T).((not (eq B b Abst)) \to ((pr0 t5 t7) \to (ex2 T (\lambda (t8: T).(pr0 
970 (THead k u2 t4) t8)) (\lambda (t8: T).(pr0 t2 t8)))))) (\lambda (H14: (not 
971 (eq B b Abst))).(\lambda (H15: (pr0 t5 t2)).(let H16 \def (eq_ind_r T t 
972 (\lambda (t7: T).(eq T (THead k u1 t3) t7)) H4 (THead (Bind b) u (lift (S O) 
973 O t5)) H11) in (let H17 \def (f_equal T K (\lambda (e: T).(match e in T 
974 return (\lambda (_: T).K) with [(TSort _) \Rightarrow k | (TLRef _) 
975 \Rightarrow k | (THead k0 _ _) \Rightarrow k0])) (THead k u1 t3) (THead (Bind 
976 b) u (lift (S O) O t5)) H16) in ((let H18 \def (f_equal T T (\lambda (e: 
977 T).(match e in T return (\lambda (_: T).T) with [(TSort _) \Rightarrow u1 | 
978 (TLRef _) \Rightarrow u1 | (THead _ t7 _) \Rightarrow t7])) (THead k u1 t3) 
979 (THead (Bind b) u (lift (S O) O t5)) H16) in ((let H19 \def (f_equal T T 
980 (\lambda (e: T).(match e in T return (\lambda (_: T).T) with [(TSort _) 
981 \Rightarrow t3 | (TLRef _) \Rightarrow t3 | (THead _ _ t7) \Rightarrow t7])) 
982 (THead k u1 t3) (THead (Bind b) u (lift (S O) O t5)) H16) in (\lambda (H20: 
983 (eq T u1 u)).(\lambda (H21: (eq K k (Bind b))).(let H22 \def (eq_ind_r T t 
984 (\lambda (t7: T).(\forall (v: T).((tlt v t7) \to (\forall (t8: T).((pr0 v t8) 
985 \to (\forall (t9: T).((pr0 v t9) \to (ex2 T (\lambda (t10: T).(pr0 t8 t10)) 
986 (\lambda (t10: T).(pr0 t9 t10)))))))))) H (THead (Bind b) u (lift (S O) O 
987 t5)) H11) in (eq_ind_r K (Bind b) (\lambda (k0: K).(ex2 T (\lambda (t7: 
988 T).(pr0 (THead k0 u2 t4) t7)) (\lambda (t7: T).(pr0 t2 t7)))) (let H23 \def 
989 (eq_ind T u1 (\lambda (t7: T).(pr0 t7 u2)) H7 u H20) in (let H24 \def (eq_ind 
990 T t3 (\lambda (t7: T).(pr0 t7 t4)) H8 (lift (S O) O t5) H19) in (ex2_ind T 
991 (\lambda (t7: T).(eq T t4 (lift (S O) O t7))) (\lambda (t7: T).(pr0 t5 t7)) 
992 (ex2 T (\lambda (t7: T).(pr0 (THead (Bind b) u2 t4) t7)) (\lambda (t7: 
993 T).(pr0 t2 t7))) (\lambda (x: T).(\lambda (H25: (eq T t4 (lift (S O) O 
994 x))).(\lambda (H26: (pr0 t5 x)).(eq_ind_r T (lift (S O) O x) (\lambda (t7: 
995 T).(ex2 T (\lambda (t8: T).(pr0 (THead (Bind b) u2 t7) t8)) (\lambda (t8: 
996 T).(pr0 t2 t8)))) (ex2_ind T (\lambda (t7: T).(pr0 x t7)) (\lambda (t7: 
997 T).(pr0 t2 t7)) (ex2 T (\lambda (t7: T).(pr0 (THead (Bind b) u2 (lift (S O) O 
998 x)) t7)) (\lambda (t7: T).(pr0 t2 t7))) (\lambda (x0: T).(\lambda (H27: (pr0 
999 x x0)).(\lambda (H28: (pr0 t2 x0)).(ex_intro2 T (\lambda (t7: T).(pr0 (THead 
1000 (Bind b) u2 (lift (S O) O x)) t7)) (\lambda (t7: T).(pr0 t2 t7)) x0 (pr0_zeta 
1001 b H14 x x0 H27 u2) H28)))) (H22 t5 (lift_tlt_dx (Bind b) u t5 (S O) O) x H26 
1002 t2 H15)) t4 H25)))) (pr0_gen_lift t5 t4 (S O) O H24)))) k H21))))) H18)) 
1003 H17))))) t6 (sym_eq T t6 t2 H13))) t H11 H12 H9 H10))) | (pr0_tau t5 t6 H9 u) 
1004 \Rightarrow (\lambda (H10: (eq T (THead (Flat Cast) u t5) t)).(\lambda (H11: 
1005 (eq T t6 t2)).(eq_ind T (THead (Flat Cast) u t5) (\lambda (_: T).((eq T t6 
1006 t2) \to ((pr0 t5 t6) \to (ex2 T (\lambda (t8: T).(pr0 (THead k u2 t4) t8)) 
1007 (\lambda (t8: T).(pr0 t2 t8)))))) (\lambda (H12: (eq T t6 t2)).(eq_ind T t2 
1008 (\lambda (t7: T).((pr0 t5 t7) \to (ex2 T (\lambda (t8: T).(pr0 (THead k u2 
1009 t4) t8)) (\lambda (t8: T).(pr0 t2 t8))))) (\lambda (H13: (pr0 t5 t2)).(let 
1010 H14 \def (eq_ind_r T t (\lambda (t7: T).(eq T (THead k u1 t3) t7)) H4 (THead 
1011 (Flat Cast) u t5) H10) in (let H15 \def (f_equal T K (\lambda (e: T).(match e 
1012 in T return (\lambda (_: T).K) with [(TSort _) \Rightarrow k | (TLRef _) 
1013 \Rightarrow k | (THead k0 _ _) \Rightarrow k0])) (THead k u1 t3) (THead (Flat 
1014 Cast) u t5) H14) in ((let H16 \def (f_equal T T (\lambda (e: T).(match e in T 
1015 return (\lambda (_: T).T) with [(TSort _) \Rightarrow u1 | (TLRef _) 
1016 \Rightarrow u1 | (THead _ t7 _) \Rightarrow t7])) (THead k u1 t3) (THead 
1017 (Flat Cast) u t5) H14) in ((let H17 \def (f_equal T T (\lambda (e: T).(match 
1018 e in T return (\lambda (_: T).T) with [(TSort _) \Rightarrow t3 | (TLRef _) 
1019 \Rightarrow t3 | (THead _ _ t7) \Rightarrow t7])) (THead k u1 t3) (THead 
1020 (Flat Cast) u t5) H14) in (\lambda (H18: (eq T u1 u)).(\lambda (H19: (eq K k 
1021 (Flat Cast))).(let H20 \def (eq_ind_r T t (\lambda (t7: T).(\forall (v: 
1022 T).((tlt v t7) \to (\forall (t8: T).((pr0 v t8) \to (\forall (t9: T).((pr0 v 
1023 t9) \to (ex2 T (\lambda (t10: T).(pr0 t8 t10)) (\lambda (t10: T).(pr0 t9 
1024 t10)))))))))) H (THead (Flat Cast) u t5) H10) in (eq_ind_r K (Flat Cast) 
1025 (\lambda (k0: K).(ex2 T (\lambda (t7: T).(pr0 (THead k0 u2 t4) t7)) (\lambda 
1026 (t7: T).(pr0 t2 t7)))) (let H21 \def (eq_ind T u1 (\lambda (t7: T).(pr0 t7 
1027 u2)) H7 u H18) in (let H22 \def (eq_ind T t3 (\lambda (t7: T).(pr0 t7 t4)) H8 
1028 t5 H17) in (ex2_ind T (\lambda (t7: T).(pr0 t4 t7)) (\lambda (t7: T).(pr0 t2 
1029 t7)) (ex2 T (\lambda (t7: T).(pr0 (THead (Flat Cast) u2 t4) t7)) (\lambda 
1030 (t7: T).(pr0 t2 t7))) (\lambda (x: T).(\lambda (H23: (pr0 t4 x)).(\lambda 
1031 (H24: (pr0 t2 x)).(ex_intro2 T (\lambda (t7: T).(pr0 (THead (Flat Cast) u2 
1032 t4) t7)) (\lambda (t7: T).(pr0 t2 t7)) x (pr0_tau t4 x H23 u2) H24)))) (H20 
1033 t5 (tlt_head_dx (Flat Cast) u t5) t4 H22 t2 H13)))) k H19))))) H16)) H15)))) 
1034 t6 (sym_eq T t6 t2 H12))) t H10 H11 H9)))]) in (H9 (refl_equal T t) 
1035 (refl_equal T t2))))) t1 H6)) t H4 H5 H2 H3))) | (pr0_beta u v1 v2 H2 t3 t4 
1036 H3) \Rightarrow (\lambda (H4: (eq T (THead (Flat Appl) v1 (THead (Bind Abst) 
1037 u t3)) t)).(\lambda (H5: (eq T (THead (Bind Abbr) v2 t4) t1)).(eq_ind T 
1038 (THead (Flat Appl) v1 (THead (Bind Abst) u t3)) (\lambda (_: T).((eq T (THead 
1039 (Bind Abbr) v2 t4) t1) \to ((pr0 v1 v2) \to ((pr0 t3 t4) \to (ex2 T (\lambda 
1040 (t6: T).(pr0 t1 t6)) (\lambda (t6: T).(pr0 t2 t6))))))) (\lambda (H6: (eq T 
1041 (THead (Bind Abbr) v2 t4) t1)).(eq_ind T (THead (Bind Abbr) v2 t4) (\lambda 
1042 (t5: T).((pr0 v1 v2) \to ((pr0 t3 t4) \to (ex2 T (\lambda (t6: T).(pr0 t5 
1043 t6)) (\lambda (t6: T).(pr0 t2 t6)))))) (\lambda (H7: (pr0 v1 v2)).(\lambda 
1044 (H8: (pr0 t3 t4)).(let H9 \def (match H1 in pr0 return (\lambda (t5: 
1045 T).(\lambda (t6: T).(\lambda (_: (pr0 t5 t6)).((eq T t5 t) \to ((eq T t6 t2) 
1046 \to (ex2 T (\lambda (t7: T).(pr0 (THead (Bind Abbr) v2 t4) t7)) (\lambda (t7: 
1047 T).(pr0 t2 t7)))))))) with [(pr0_refl t5) \Rightarrow (\lambda (H9: (eq T t5 
1048 t)).(\lambda (H10: (eq T t5 t2)).(eq_ind T t (\lambda (t6: T).((eq T t6 t2) 
1049 \to (ex2 T (\lambda (t7: T).(pr0 (THead (Bind Abbr) v2 t4) t7)) (\lambda (t7: 
1050 T).(pr0 t2 t7))))) (\lambda (H11: (eq T t t2)).(eq_ind T t2 (\lambda (_: 
1051 T).(ex2 T (\lambda (t7: T).(pr0 (THead (Bind Abbr) v2 t4) t7)) (\lambda (t7: 
1052 T).(pr0 t2 t7)))) (let H12 \def (eq_ind_r T t (\lambda (t6: T).(eq T t6 t2)) 
1053 H11 (THead (Flat Appl) v1 (THead (Bind Abst) u t3)) H4) in (eq_ind T (THead 
1054 (Flat Appl) v1 (THead (Bind Abst) u t3)) (\lambda (t6: T).(ex2 T (\lambda 
1055 (t7: T).(pr0 (THead (Bind Abbr) v2 t4) t7)) (\lambda (t7: T).(pr0 t6 t7)))) 
1056 (let H13 \def (eq_ind_r T t (\lambda (t6: T).(eq T t5 t6)) H9 (THead (Flat 
1057 Appl) v1 (THead (Bind Abst) u t3)) H4) in (let H14 \def (eq_ind_r T t 
1058 (\lambda (t6: T).(\forall (v: T).((tlt v t6) \to (\forall (t7: T).((pr0 v t7) 
1059 \to (\forall (t8: T).((pr0 v t8) \to (ex2 T (\lambda (t9: T).(pr0 t7 t9)) 
1060 (\lambda (t9: T).(pr0 t8 t9)))))))))) H (THead (Flat Appl) v1 (THead (Bind 
1061 Abst) u t3)) H4) in (ex_intro2 T (\lambda (t6: T).(pr0 (THead (Bind Abbr) v2 
1062 t4) t6)) (\lambda (t6: T).(pr0 (THead (Flat Appl) v1 (THead (Bind Abst) u 
1063 t3)) t6)) (THead (Bind Abbr) v2 t4) (pr0_refl (THead (Bind Abbr) v2 t4)) 
1064 (pr0_beta u v1 v2 H7 t3 t4 H8)))) t2 H12)) t (sym_eq T t t2 H11))) t5 (sym_eq 
1065 T t5 t H9) H10))) | (pr0_comp u1 u2 H9 t5 t6 H10 k) \Rightarrow (\lambda 
1066 (H11: (eq T (THead k u1 t5) t)).(\lambda (H12: (eq T (THead k u2 t6) 
1067 t2)).(eq_ind T (THead k u1 t5) (\lambda (_: T).((eq T (THead k u2 t6) t2) \to 
1068 ((pr0 u1 u2) \to ((pr0 t5 t6) \to (ex2 T (\lambda (t8: T).(pr0 (THead (Bind 
1069 Abbr) v2 t4) t8)) (\lambda (t8: T).(pr0 t2 t8))))))) (\lambda (H13: (eq T 
1070 (THead k u2 t6) t2)).(eq_ind T (THead k u2 t6) (\lambda (t7: T).((pr0 u1 u2) 
1071 \to ((pr0 t5 t6) \to (ex2 T (\lambda (t8: T).(pr0 (THead (Bind Abbr) v2 t4) 
1072 t8)) (\lambda (t8: T).(pr0 t7 t8)))))) (\lambda (H14: (pr0 u1 u2)).(\lambda 
1073 (H15: (pr0 t5 t6)).(let H16 \def (eq_ind_r T t (\lambda (t7: T).(eq T (THead 
1074 (Flat Appl) v1 (THead (Bind Abst) u t3)) t7)) H4 (THead k u1 t5) H11) in (let 
1075 H17 \def (f_equal T K (\lambda (e: T).(match e in T return (\lambda (_: T).K) 
1076 with [(TSort _) \Rightarrow (Flat Appl) | (TLRef _) \Rightarrow (Flat Appl) | 
1077 (THead k0 _ _) \Rightarrow k0])) (THead (Flat Appl) v1 (THead (Bind Abst) u 
1078 t3)) (THead k u1 t5) H16) in ((let H18 \def (f_equal T T (\lambda (e: 
1079 T).(match e in T return (\lambda (_: T).T) with [(TSort _) \Rightarrow v1 | 
1080 (TLRef _) \Rightarrow v1 | (THead _ t7 _) \Rightarrow t7])) (THead (Flat 
1081 Appl) v1 (THead (Bind Abst) u t3)) (THead k u1 t5) H16) in ((let H19 \def 
1082 (f_equal T T (\lambda (e: T).(match e in T return (\lambda (_: T).T) with 
1083 [(TSort _) \Rightarrow (THead (Bind Abst) u t3) | (TLRef _) \Rightarrow 
1084 (THead (Bind Abst) u t3) | (THead _ _ t7) \Rightarrow t7])) (THead (Flat 
1085 Appl) v1 (THead (Bind Abst) u t3)) (THead k u1 t5) H16) in (\lambda (H20: (eq 
1086 T v1 u1)).(\lambda (H21: (eq K (Flat Appl) k)).(eq_ind K (Flat Appl) (\lambda 
1087 (k0: K).(ex2 T (\lambda (t7: T).(pr0 (THead (Bind Abbr) v2 t4) t7)) (\lambda 
1088 (t7: T).(pr0 (THead k0 u2 t6) t7)))) (let H22 \def (eq_ind_r K k (\lambda 
1089 (k0: K).(eq T (THead k0 u1 t5) t)) H11 (Flat Appl) H21) in (let H23 \def 
1090 (eq_ind_r T t5 (\lambda (t7: T).(pr0 t7 t6)) H15 (THead (Bind Abst) u t3) 
1091 H19) in (let H24 \def (match H23 in pr0 return (\lambda (t7: T).(\lambda (t8: 
1092 T).(\lambda (_: (pr0 t7 t8)).((eq T t7 (THead (Bind Abst) u t3)) \to ((eq T 
1093 t8 t6) \to (ex2 T (\lambda (t9: T).(pr0 (THead (Bind Abbr) v2 t4) t9)) 
1094 (\lambda (t9: T).(pr0 (THead (Flat Appl) u2 t6) t9)))))))) with [(pr0_refl 
1095 t7) \Rightarrow (\lambda (H24: (eq T t7 (THead (Bind Abst) u t3))).(\lambda 
1096 (H25: (eq T t7 t6)).(eq_ind T (THead (Bind Abst) u t3) (\lambda (t8: T).((eq 
1097 T t8 t6) \to (ex2 T (\lambda (t9: T).(pr0 (THead (Bind Abbr) v2 t4) t9)) 
1098 (\lambda (t9: T).(pr0 (THead (Flat Appl) u2 t6) t9))))) (\lambda (H26: (eq T 
1099 (THead (Bind Abst) u t3) t6)).(eq_ind T (THead (Bind Abst) u t3) (\lambda 
1100 (t8: T).(ex2 T (\lambda (t9: T).(pr0 (THead (Bind Abbr) v2 t4) t9)) (\lambda 
1101 (t9: T).(pr0 (THead (Flat Appl) u2 t8) t9)))) (let H27 \def (eq_ind_r T t5 
1102 (\lambda (t8: T).(eq T (THead (Flat Appl) u1 t8) t)) H22 (THead (Bind Abst) u 
1103 t3) H19) in (let H28 \def (eq_ind_r T t (\lambda (t8: T).(\forall (v: 
1104 T).((tlt v t8) \to (\forall (t9: T).((pr0 v t9) \to (\forall (t10: T).((pr0 v 
1105 t10) \to (ex2 T (\lambda (t11: T).(pr0 t9 t11)) (\lambda (t11: T).(pr0 t10 
1106 t11)))))))))) H (THead (Flat Appl) u1 (THead (Bind Abst) u t3)) H27) in (let 
1107 H29 \def (eq_ind T v1 (\lambda (t8: T).(pr0 t8 v2)) H7 u1 H20) in (ex2_ind T 
1108 (\lambda (t8: T).(pr0 v2 t8)) (\lambda (t8: T).(pr0 u2 t8)) (ex2 T (\lambda 
1109 (t8: T).(pr0 (THead (Bind Abbr) v2 t4) t8)) (\lambda (t8: T).(pr0 (THead 
1110 (Flat Appl) u2 (THead (Bind Abst) u t3)) t8))) (\lambda (x: T).(\lambda (H30: 
1111 (pr0 v2 x)).(\lambda (H31: (pr0 u2 x)).(ex_intro2 T (\lambda (t8: T).(pr0 
1112 (THead (Bind Abbr) v2 t4) t8)) (\lambda (t8: T).(pr0 (THead (Flat Appl) u2 
1113 (THead (Bind Abst) u t3)) t8)) (THead (Bind Abbr) x t4) (pr0_comp v2 x H30 t4 
1114 t4 (pr0_refl t4) (Bind Abbr)) (pr0_beta u u2 x H31 t3 t4 H8))))) (H28 u1 
1115 (tlt_head_sx (Flat Appl) u1 (THead (Bind Abst) u t3)) v2 H29 u2 H14))))) t6 
1116 H26)) t7 (sym_eq T t7 (THead (Bind Abst) u t3) H24) H25))) | (pr0_comp u0 u3 
1117 H24 t7 t8 H25 k0) \Rightarrow (\lambda (H26: (eq T (THead k0 u0 t7) (THead 
1118 (Bind Abst) u t3))).(\lambda (H27: (eq T (THead k0 u3 t8) t6)).((let H28 \def 
1119 (f_equal T T (\lambda (e: T).(match e in T return (\lambda (_: T).T) with 
1120 [(TSort _) \Rightarrow t7 | (TLRef _) \Rightarrow t7 | (THead _ _ t9) 
1121 \Rightarrow t9])) (THead k0 u0 t7) (THead (Bind Abst) u t3) H26) in ((let H29 
1122 \def (f_equal T T (\lambda (e: T).(match e in T return (\lambda (_: T).T) 
1123 with [(TSort _) \Rightarrow u0 | (TLRef _) \Rightarrow u0 | (THead _ t9 _) 
1124 \Rightarrow t9])) (THead k0 u0 t7) (THead (Bind Abst) u t3) H26) in ((let H30 
1125 \def (f_equal T K (\lambda (e: T).(match e in T return (\lambda (_: T).K) 
1126 with [(TSort _) \Rightarrow k0 | (TLRef _) \Rightarrow k0 | (THead k1 _ _) 
1127 \Rightarrow k1])) (THead k0 u0 t7) (THead (Bind Abst) u t3) H26) in (eq_ind K 
1128 (Bind Abst) (\lambda (k1: K).((eq T u0 u) \to ((eq T t7 t3) \to ((eq T (THead 
1129 k1 u3 t8) t6) \to ((pr0 u0 u3) \to ((pr0 t7 t8) \to (ex2 T (\lambda (t9: 
1130 T).(pr0 (THead (Bind Abbr) v2 t4) t9)) (\lambda (t9: T).(pr0 (THead (Flat 
1131 Appl) u2 t6) t9))))))))) (\lambda (H31: (eq T u0 u)).(eq_ind T u (\lambda 
1132 (t9: T).((eq T t7 t3) \to ((eq T (THead (Bind Abst) u3 t8) t6) \to ((pr0 t9 
1133 u3) \to ((pr0 t7 t8) \to (ex2 T (\lambda (t10: T).(pr0 (THead (Bind Abbr) v2 
1134 t4) t10)) (\lambda (t10: T).(pr0 (THead (Flat Appl) u2 t6) t10)))))))) 
1135 (\lambda (H32: (eq T t7 t3)).(eq_ind T t3 (\lambda (t9: T).((eq T (THead 
1136 (Bind Abst) u3 t8) t6) \to ((pr0 u u3) \to ((pr0 t9 t8) \to (ex2 T (\lambda 
1137 (t10: T).(pr0 (THead (Bind Abbr) v2 t4) t10)) (\lambda (t10: T).(pr0 (THead 
1138 (Flat Appl) u2 t6) t10))))))) (\lambda (H33: (eq T (THead (Bind Abst) u3 t8) 
1139 t6)).(eq_ind T (THead (Bind Abst) u3 t8) (\lambda (t9: T).((pr0 u u3) \to 
1140 ((pr0 t3 t8) \to (ex2 T (\lambda (t10: T).(pr0 (THead (Bind Abbr) v2 t4) 
1141 t10)) (\lambda (t10: T).(pr0 (THead (Flat Appl) u2 t9) t10)))))) (\lambda (_: 
1142 (pr0 u u3)).(\lambda (H35: (pr0 t3 t8)).(let H36 \def (eq_ind_r T t5 (\lambda 
1143 (t9: T).(eq T (THead (Flat Appl) u1 t9) t)) H22 (THead (Bind Abst) u t3) H19) 
1144 in (let H37 \def (eq_ind_r T t (\lambda (t9: T).(\forall (v: T).((tlt v t9) 
1145 \to (\forall (t10: T).((pr0 v t10) \to (\forall (t11: T).((pr0 v t11) \to 
1146 (ex2 T (\lambda (t12: T).(pr0 t10 t12)) (\lambda (t12: T).(pr0 t11 
1147 t12)))))))))) H (THead (Flat Appl) u1 (THead (Bind Abst) u t3)) H36) in (let 
1148 H38 \def (eq_ind T v1 (\lambda (t9: T).(pr0 t9 v2)) H7 u1 H20) in (ex2_ind T 
1149 (\lambda (t9: T).(pr0 v2 t9)) (\lambda (t9: T).(pr0 u2 t9)) (ex2 T (\lambda 
1150 (t9: T).(pr0 (THead (Bind Abbr) v2 t4) t9)) (\lambda (t9: T).(pr0 (THead 
1151 (Flat Appl) u2 (THead (Bind Abst) u3 t8)) t9))) (\lambda (x: T).(\lambda 
1152 (H39: (pr0 v2 x)).(\lambda (H40: (pr0 u2 x)).(ex2_ind T (\lambda (t9: T).(pr0 
1153 t8 t9)) (\lambda (t9: T).(pr0 t4 t9)) (ex2 T (\lambda (t9: T).(pr0 (THead 
1154 (Bind Abbr) v2 t4) t9)) (\lambda (t9: T).(pr0 (THead (Flat Appl) u2 (THead 
1155 (Bind Abst) u3 t8)) t9))) (\lambda (x0: T).(\lambda (H41: (pr0 t8 
1156 x0)).(\lambda (H42: (pr0 t4 x0)).(ex_intro2 T (\lambda (t9: T).(pr0 (THead 
1157 (Bind Abbr) v2 t4) t9)) (\lambda (t9: T).(pr0 (THead (Flat Appl) u2 (THead 
1158 (Bind Abst) u3 t8)) t9)) (THead (Bind Abbr) x x0) (pr0_comp v2 x H39 t4 x0 
1159 H42 (Bind Abbr)) (pr0_beta u3 u2 x H40 t8 x0 H41))))) (H37 t3 (tlt_trans 
1160 (THead (Bind Abst) u t3) t3 (THead (Flat Appl) u1 (THead (Bind Abst) u t3)) 
1161 (tlt_head_dx (Bind Abst) u t3) (tlt_head_dx (Flat Appl) u1 (THead (Bind Abst) 
1162 u t3))) t8 H35 t4 H8))))) (H37 u1 (tlt_head_sx (Flat Appl) u1 (THead (Bind 
1163 Abst) u t3)) v2 H38 u2 H14))))))) t6 H33)) t7 (sym_eq T t7 t3 H32))) u0 
1164 (sym_eq T u0 u H31))) k0 (sym_eq K k0 (Bind Abst) H30))) H29)) H28)) H27 H24 
1165 H25))) | (pr0_beta u0 v0 v3 H24 t7 t8 H25) \Rightarrow (\lambda (H26: (eq T 
1166 (THead (Flat Appl) v0 (THead (Bind Abst) u0 t7)) (THead (Bind Abst) u 
1167 t3))).(\lambda (H27: (eq T (THead (Bind Abbr) v3 t8) t6)).((let H28 \def 
1168 (eq_ind T (THead (Flat Appl) v0 (THead (Bind Abst) u0 t7)) (\lambda (e: 
1169 T).(match e in T return (\lambda (_: T).Prop) with [(TSort _) \Rightarrow 
1170 False | (TLRef _) \Rightarrow False | (THead k0 _ _) \Rightarrow (match k0 in 
1171 K return (\lambda (_: K).Prop) with [(Bind _) \Rightarrow False | (Flat _) 
1172 \Rightarrow True])])) I (THead (Bind Abst) u t3) H26) in (False_ind ((eq T 
1173 (THead (Bind Abbr) v3 t8) t6) \to ((pr0 v0 v3) \to ((pr0 t7 t8) \to (ex2 T 
1174 (\lambda (t9: T).(pr0 (THead (Bind Abbr) v2 t4) t9)) (\lambda (t9: T).(pr0 
1175 (THead (Flat Appl) u2 t6) t9)))))) H28)) H27 H24 H25))) | (pr0_upsilon b H24 
1176 v0 v3 H25 u0 u3 H26 t7 t8 H27) \Rightarrow (\lambda (H28: (eq T (THead (Flat 
1177 Appl) v0 (THead (Bind b) u0 t7)) (THead (Bind Abst) u t3))).(\lambda (H29: 
1178 (eq T (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v3) t8)) t6)).((let 
1179 H30 \def (eq_ind T (THead (Flat Appl) v0 (THead (Bind b) u0 t7)) (\lambda (e: 
1180 T).(match e in T return (\lambda (_: T).Prop) with [(TSort _) \Rightarrow 
1181 False | (TLRef _) \Rightarrow False | (THead k0 _ _) \Rightarrow (match k0 in 
1182 K return (\lambda (_: K).Prop) with [(Bind _) \Rightarrow False | (Flat _) 
1183 \Rightarrow True])])) I (THead (Bind Abst) u t3) H28) in (False_ind ((eq T 
1184 (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O v3) t8)) t6) \to ((not 
1185 (eq B b Abst)) \to ((pr0 v0 v3) \to ((pr0 u0 u3) \to ((pr0 t7 t8) \to (ex2 T 
1186 (\lambda (t9: T).(pr0 (THead (Bind Abbr) v2 t4) t9)) (\lambda (t9: T).(pr0 
1187 (THead (Flat Appl) u2 t6) t9)))))))) H30)) H29 H24 H25 H26 H27))) | 
1188 (pr0_delta u0 u3 H24 t7 t8 H25 w H26) \Rightarrow (\lambda (H27: (eq T (THead 
1189 (Bind Abbr) u0 t7) (THead (Bind Abst) u t3))).(\lambda (H28: (eq T (THead 
1190 (Bind Abbr) u3 w) t6)).((let H29 \def (eq_ind T (THead (Bind Abbr) u0 t7) 
1191 (\lambda (e: T).(match e in T return (\lambda (_: T).Prop) with [(TSort _) 
1192 \Rightarrow False | (TLRef _) \Rightarrow False | (THead k0 _ _) \Rightarrow 
1193 (match k0 in K return (\lambda (_: K).Prop) with [(Bind b) \Rightarrow (match 
1194 b in B return (\lambda (_: B).Prop) with [Abbr \Rightarrow True | Abst 
1195 \Rightarrow False | Void \Rightarrow False]) | (Flat _) \Rightarrow 
1196 False])])) I (THead (Bind Abst) u t3) H27) in (False_ind ((eq T (THead (Bind 
1197 Abbr) u3 w) t6) \to ((pr0 u0 u3) \to ((pr0 t7 t8) \to ((subst0 O u3 t8 w) \to 
1198 (ex2 T (\lambda (t9: T).(pr0 (THead (Bind Abbr) v2 t4) t9)) (\lambda (t9: 
1199 T).(pr0 (THead (Flat Appl) u2 t6) t9))))))) H29)) H28 H24 H25 H26))) | 
1200 (pr0_zeta b H24 t7 t8 H25 u0) \Rightarrow (\lambda (H26: (eq T (THead (Bind 
1201 b) u0 (lift (S O) O t7)) (THead (Bind Abst) u t3))).(\lambda (H27: (eq T t8 
1202 t6)).((let H28 \def (f_equal T T (\lambda (e: T).(match e in T return 
1203 (\lambda (_: T).T) with [(TSort _) \Rightarrow ((let rec lref_map (f: ((nat 
1204 \to nat))) (d: nat) (t9: T) on t9: T \def (match t9 with [(TSort n) 
1205 \Rightarrow (TSort n) | (TLRef i) \Rightarrow (TLRef (match (blt i d) with 
1206 [true \Rightarrow i | false \Rightarrow (f i)])) | (THead k0 u3 t10) 
1207 \Rightarrow (THead k0 (lref_map f d u3) (lref_map f (s k0 d) t10))]) in 
1208 lref_map) (\lambda (x: nat).(plus x (S O))) O t7) | (TLRef _) \Rightarrow 
1209 ((let rec lref_map (f: ((nat \to nat))) (d: nat) (t9: T) on t9: T \def (match 
1210 t9 with [(TSort n) \Rightarrow (TSort n) | (TLRef i) \Rightarrow (TLRef 
1211 (match (blt i d) with [true \Rightarrow i | false \Rightarrow (f i)])) | 
1212 (THead k0 u3 t10) \Rightarrow (THead k0 (lref_map f d u3) (lref_map f (s k0 
1213 d) t10))]) in lref_map) (\lambda (x: nat).(plus x (S O))) O t7) | (THead _ _ 
1214 t9) \Rightarrow t9])) (THead (Bind b) u0 (lift (S O) O t7)) (THead (Bind 
1215 Abst) u t3) H26) in ((let H29 \def (f_equal T T (\lambda (e: T).(match e in T 
1216 return (\lambda (_: T).T) with [(TSort _) \Rightarrow u0 | (TLRef _) 
1217 \Rightarrow u0 | (THead _ t9 _) \Rightarrow t9])) (THead (Bind b) u0 (lift (S 
1218 O) O t7)) (THead (Bind Abst) u t3) H26) in ((let H30 \def (f_equal T B 
1219 (\lambda (e: T).(match e in T return (\lambda (_: T).B) with [(TSort _) 
1220 \Rightarrow b | (TLRef _) \Rightarrow b | (THead k0 _ _) \Rightarrow (match 
1221 k0 in K return (\lambda (_: K).B) with [(Bind b0) \Rightarrow b0 | (Flat _) 
1222 \Rightarrow b])])) (THead (Bind b) u0 (lift (S O) O t7)) (THead (Bind Abst) u 
1223 t3) H26) in (eq_ind B Abst (\lambda (b0: B).((eq T u0 u) \to ((eq T (lift (S 
1224 O) O t7) t3) \to ((eq T t8 t6) \to ((not (eq B b0 Abst)) \to ((pr0 t7 t8) \to 
1225 (ex2 T (\lambda (t9: T).(pr0 (THead (Bind Abbr) v2 t4) t9)) (\lambda (t9: 
1226 T).(pr0 (THead (Flat Appl) u2 t6) t9))))))))) (\lambda (H31: (eq T u0 
1227 u)).(eq_ind T u (\lambda (_: T).((eq T (lift (S O) O t7) t3) \to ((eq T t8 
1228 t6) \to ((not (eq B Abst Abst)) \to ((pr0 t7 t8) \to (ex2 T (\lambda (t10: 
1229 T).(pr0 (THead (Bind Abbr) v2 t4) t10)) (\lambda (t10: T).(pr0 (THead (Flat 
1230 Appl) u2 t6) t10)))))))) (\lambda (H32: (eq T (lift (S O) O t7) t3)).(eq_ind 
1231 T (lift (S O) O t7) (\lambda (_: T).((eq T t8 t6) \to ((not (eq B Abst Abst)) 
1232 \to ((pr0 t7 t8) \to (ex2 T (\lambda (t10: T).(pr0 (THead (Bind Abbr) v2 t4) 
1233 t10)) (\lambda (t10: T).(pr0 (THead (Flat Appl) u2 t6) t10))))))) (\lambda 
1234 (H33: (eq T t8 t6)).(eq_ind T t6 (\lambda (t9: T).((not (eq B Abst Abst)) \to 
1235 ((pr0 t7 t9) \to (ex2 T (\lambda (t10: T).(pr0 (THead (Bind Abbr) v2 t4) 
1236 t10)) (\lambda (t10: T).(pr0 (THead (Flat Appl) u2 t6) t10)))))) (\lambda 
1237 (H34: (not (eq B Abst Abst))).(\lambda (_: (pr0 t7 t6)).(let H36 \def (match 
1238 (H34 (refl_equal B Abst)) in False return (\lambda (_: False).(ex2 T (\lambda 
1239 (t9: T).(pr0 (THead (Bind Abbr) v2 t4) t9)) (\lambda (t9: T).(pr0 (THead 
1240 (Flat Appl) u2 t6) t9)))) with []) in H36))) t8 (sym_eq T t8 t6 H33))) t3 
1241 H32)) u0 (sym_eq T u0 u H31))) b (sym_eq B b Abst H30))) H29)) H28)) H27 H24 
1242 H25))) | (pr0_tau t7 t8 H24 u0) \Rightarrow (\lambda (H25: (eq T (THead (Flat 
1243 Cast) u0 t7) (THead (Bind Abst) u t3))).(\lambda (H26: (eq T t8 t6)).((let 
1244 H27 \def (eq_ind T (THead (Flat Cast) u0 t7) (\lambda (e: T).(match e in T 
1245 return (\lambda (_: T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) 
1246 \Rightarrow False | (THead k0 _ _) \Rightarrow (match k0 in K return (\lambda 
1247 (_: K).Prop) with [(Bind _) \Rightarrow False | (Flat _) \Rightarrow 
1248 True])])) I (THead (Bind Abst) u t3) H25) in (False_ind ((eq T t8 t6) \to 
1249 ((pr0 t7 t8) \to (ex2 T (\lambda (t9: T).(pr0 (THead (Bind Abbr) v2 t4) t9)) 
1250 (\lambda (t9: T).(pr0 (THead (Flat Appl) u2 t6) t9))))) H27)) H26 H24)))]) in 
1251 (H24 (refl_equal T (THead (Bind Abst) u t3)) (refl_equal T t6))))) k H21)))) 
1252 H18)) H17))))) t2 H13)) t H11 H12 H9 H10))) | (pr0_beta u0 v0 v3 H9 t5 t6 
1253 H10) \Rightarrow (\lambda (H11: (eq T (THead (Flat Appl) v0 (THead (Bind 
1254 Abst) u0 t5)) t)).(\lambda (H12: (eq T (THead (Bind Abbr) v3 t6) t2)).(eq_ind 
1255 T (THead (Flat Appl) v0 (THead (Bind Abst) u0 t5)) (\lambda (_: T).((eq T 
1256 (THead (Bind Abbr) v3 t6) t2) \to ((pr0 v0 v3) \to ((pr0 t5 t6) \to (ex2 T 
1257 (\lambda (t8: T).(pr0 (THead (Bind Abbr) v2 t4) t8)) (\lambda (t8: T).(pr0 t2 
1258 t8))))))) (\lambda (H13: (eq T (THead (Bind Abbr) v3 t6) t2)).(eq_ind T 
1259 (THead (Bind Abbr) v3 t6) (\lambda (t7: T).((pr0 v0 v3) \to ((pr0 t5 t6) \to 
1260 (ex2 T (\lambda (t8: T).(pr0 (THead (Bind Abbr) v2 t4) t8)) (\lambda (t8: 
1261 T).(pr0 t7 t8)))))) (\lambda (H14: (pr0 v0 v3)).(\lambda (H15: (pr0 t5 
1262 t6)).(let H16 \def (eq_ind_r T t (\lambda (t7: T).(eq T (THead (Flat Appl) v1 
1263 (THead (Bind Abst) u t3)) t7)) H4 (THead (Flat Appl) v0 (THead (Bind Abst) u0 
1264 t5)) H11) in (let H17 \def (f_equal T T (\lambda (e: T).(match e in T return 
1265 (\lambda (_: T).T) with [(TSort _) \Rightarrow v1 | (TLRef _) \Rightarrow v1 
1266 | (THead _ t7 _) \Rightarrow t7])) (THead (Flat Appl) v1 (THead (Bind Abst) u 
1267 t3)) (THead (Flat Appl) v0 (THead (Bind Abst) u0 t5)) H16) in ((let H18 \def 
1268 (f_equal T T (\lambda (e: T).(match e in T return (\lambda (_: T).T) with 
1269 [(TSort _) \Rightarrow u | (TLRef _) \Rightarrow u | (THead _ _ t7) 
1270 \Rightarrow (match t7 in T return (\lambda (_: T).T) with [(TSort _) 
1271 \Rightarrow u | (TLRef _) \Rightarrow u | (THead _ t8 _) \Rightarrow t8])])) 
1272 (THead (Flat Appl) v1 (THead (Bind Abst) u t3)) (THead (Flat Appl) v0 (THead 
1273 (Bind Abst) u0 t5)) H16) in ((let H19 \def (f_equal T T (\lambda (e: 
1274 T).(match e in T return (\lambda (_: T).T) with [(TSort _) \Rightarrow t3 | 
1275 (TLRef _) \Rightarrow t3 | (THead _ _ t7) \Rightarrow (match t7 in T return 
1276 (\lambda (_: T).T) with [(TSort _) \Rightarrow t3 | (TLRef _) \Rightarrow t3 
1277 | (THead _ _ t8) \Rightarrow t8])])) (THead (Flat Appl) v1 (THead (Bind Abst) 
1278 u t3)) (THead (Flat Appl) v0 (THead (Bind Abst) u0 t5)) H16) in (\lambda (_: 
1279 (eq T u u0)).(\lambda (H21: (eq T v1 v0)).(let H22 \def (eq_ind_r T t 
1280 (\lambda (t7: T).(\forall (v: T).((tlt v t7) \to (\forall (t8: T).((pr0 v t8) 
1281 \to (\forall (t9: T).((pr0 v t9) \to (ex2 T (\lambda (t10: T).(pr0 t8 t10)) 
1282 (\lambda (t10: T).(pr0 t9 t10)))))))))) H (THead (Flat Appl) v0 (THead (Bind 
1283 Abst) u0 t5)) H11) in (let H23 \def (eq_ind T v1 (\lambda (t7: T).(pr0 t7 
1284 v2)) H7 v0 H21) in (let H24 \def (eq_ind T t3 (\lambda (t7: T).(pr0 t7 t4)) 
1285 H8 t5 H19) in (ex2_ind T (\lambda (t7: T).(pr0 t4 t7)) (\lambda (t7: T).(pr0 
1286 t6 t7)) (ex2 T (\lambda (t7: T).(pr0 (THead (Bind Abbr) v2 t4) t7)) (\lambda 
1287 (t7: T).(pr0 (THead (Bind Abbr) v3 t6) t7))) (\lambda (x: T).(\lambda (H25: 
1288 (pr0 t4 x)).(\lambda (H26: (pr0 t6 x)).(ex2_ind T (\lambda (t7: T).(pr0 v2 
1289 t7)) (\lambda (t7: T).(pr0 v3 t7)) (ex2 T (\lambda (t7: T).(pr0 (THead (Bind 
1290 Abbr) v2 t4) t7)) (\lambda (t7: T).(pr0 (THead (Bind Abbr) v3 t6) t7))) 
1291 (\lambda (x0: T).(\lambda (H27: (pr0 v2 x0)).(\lambda (H28: (pr0 v3 
1292 x0)).(ex_intro2 T (\lambda (t7: T).(pr0 (THead (Bind Abbr) v2 t4) t7)) 
1293 (\lambda (t7: T).(pr0 (THead (Bind Abbr) v3 t6) t7)) (THead (Bind Abbr) x0 x) 
1294 (pr0_comp v2 x0 H27 t4 x H25 (Bind Abbr)) (pr0_comp v3 x0 H28 t6 x H26 (Bind 
1295 Abbr)))))) (H22 v0 (tlt_head_sx (Flat Appl) v0 (THead (Bind Abst) u0 t5)) v2 
1296 H23 v3 H14))))) (H22 t5 (tlt_trans (THead (Bind Abst) u0 t5) t5 (THead (Flat 
1297 Appl) v0 (THead (Bind Abst) u0 t5)) (tlt_head_dx (Bind Abst) u0 t5) 
1298 (tlt_head_dx (Flat Appl) v0 (THead (Bind Abst) u0 t5))) t4 H24 t6 H15)))))))) 
1299 H18)) H17))))) t2 H13)) t H11 H12 H9 H10))) | (pr0_upsilon b H9 v0 v3 H10 u1 
1300 u2 H11 t5 t6 H12) \Rightarrow (\lambda (H13: (eq T (THead (Flat Appl) v0 
1301 (THead (Bind b) u1 t5)) t)).(\lambda (H14: (eq T (THead (Bind b) u2 (THead 
1302 (Flat Appl) (lift (S O) O v3) t6)) t2)).(eq_ind T (THead (Flat Appl) v0 
1303 (THead (Bind b) u1 t5)) (\lambda (_: T).((eq T (THead (Bind b) u2 (THead 
1304 (Flat Appl) (lift (S O) O v3) t6)) t2) \to ((not (eq B b Abst)) \to ((pr0 v0 
1305 v3) \to ((pr0 u1 u2) \to ((pr0 t5 t6) \to (ex2 T (\lambda (t8: T).(pr0 (THead 
1306 (Bind Abbr) v2 t4) t8)) (\lambda (t8: T).(pr0 t2 t8))))))))) (\lambda (H15: 
1307 (eq T (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v3) t6)) 
1308 t2)).(eq_ind T (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v3) t6)) 
1309 (\lambda (t7: T).((not (eq B b Abst)) \to ((pr0 v0 v3) \to ((pr0 u1 u2) \to 
1310 ((pr0 t5 t6) \to (ex2 T (\lambda (t8: T).(pr0 (THead (Bind Abbr) v2 t4) t8)) 
1311 (\lambda (t8: T).(pr0 t7 t8)))))))) (\lambda (H16: (not (eq B b 
1312 Abst))).(\lambda (_: (pr0 v0 v3)).(\lambda (_: (pr0 u1 u2)).(\lambda (_: (pr0 
1313 t5 t6)).(let H20 \def (eq_ind_r T t (\lambda (t7: T).(eq T (THead (Flat Appl) 
1314 v1 (THead (Bind Abst) u t3)) t7)) H4 (THead (Flat Appl) v0 (THead (Bind b) u1 
1315 t5)) H13) in (let H21 \def (f_equal T T (\lambda (e: T).(match e in T return 
1316 (\lambda (_: T).T) with [(TSort _) \Rightarrow v1 | (TLRef _) \Rightarrow v1 
1317 | (THead _ t7 _) \Rightarrow t7])) (THead (Flat Appl) v1 (THead (Bind Abst) u 
1318 t3)) (THead (Flat Appl) v0 (THead (Bind b) u1 t5)) H20) in ((let H22 \def 
1319 (f_equal T B (\lambda (e: T).(match e in T return (\lambda (_: T).B) with 
1320 [(TSort _) \Rightarrow Abst | (TLRef _) \Rightarrow Abst | (THead _ _ t7) 
1321 \Rightarrow (match t7 in T return (\lambda (_: T).B) with [(TSort _) 
1322 \Rightarrow Abst | (TLRef _) \Rightarrow Abst | (THead k _ _) \Rightarrow 
1323 (match k in K return (\lambda (_: K).B) with [(Bind b0) \Rightarrow b0 | 
1324 (Flat _) \Rightarrow Abst])])])) (THead (Flat Appl) v1 (THead (Bind Abst) u 
1325 t3)) (THead (Flat Appl) v0 (THead (Bind b) u1 t5)) H20) in ((let H23 \def 
1326 (f_equal T T (\lambda (e: T).(match e in T return (\lambda (_: T).T) with 
1327 [(TSort _) \Rightarrow u | (TLRef _) \Rightarrow u | (THead _ _ t7) 
1328 \Rightarrow (match t7 in T return (\lambda (_: T).T) with [(TSort _) 
1329 \Rightarrow u | (TLRef _) \Rightarrow u | (THead _ t8 _) \Rightarrow t8])])) 
1330 (THead (Flat Appl) v1 (THead (Bind Abst) u t3)) (THead (Flat Appl) v0 (THead 
1331 (Bind b) u1 t5)) H20) in ((let H24 \def (f_equal T T (\lambda (e: T).(match e 
1332 in T return (\lambda (_: T).T) with [(TSort _) \Rightarrow t3 | (TLRef _) 
1333 \Rightarrow t3 | (THead _ _ t7) \Rightarrow (match t7 in T return (\lambda 
1334 (_: T).T) with [(TSort _) \Rightarrow t3 | (TLRef _) \Rightarrow t3 | (THead 
1335 _ _ t8) \Rightarrow t8])])) (THead (Flat Appl) v1 (THead (Bind Abst) u t3)) 
1336 (THead (Flat Appl) v0 (THead (Bind b) u1 t5)) H20) in (\lambda (_: (eq T u 
1337 u1)).(\lambda (H26: (eq B Abst b)).(\lambda (_: (eq T v1 v0)).(eq_ind B Abst 
1338 (\lambda (b0: B).(ex2 T (\lambda (t7: T).(pr0 (THead (Bind Abbr) v2 t4) t7)) 
1339 (\lambda (t7: T).(pr0 (THead (Bind b0) u2 (THead (Flat Appl) (lift (S O) O 
1340 v3) t6)) t7)))) (let H28 \def (eq_ind_r B b (\lambda (b0: B).(not (eq B b0 
1341 Abst))) H16 Abst H26) in (let H29 \def (match (H28 (refl_equal B Abst)) in 
1342 False return (\lambda (_: False).(ex2 T (\lambda (t7: T).(pr0 (THead (Bind 
1343 Abbr) v2 t4) t7)) (\lambda (t7: T).(pr0 (THead (Bind Abst) u2 (THead (Flat 
1344 Appl) (lift (S O) O v3) t6)) t7)))) with []) in H29)) b H26))))) H23)) H22)) 
1345 H21))))))) t2 H15)) t H13 H14 H9 H10 H11 H12))) | (pr0_delta u1 u2 H9 t5 t6 
1346 H10 w H11) \Rightarrow (\lambda (H12: (eq T (THead (Bind Abbr) u1 t5) 
1347 t)).(\lambda (H13: (eq T (THead (Bind Abbr) u2 w) t2)).(eq_ind T (THead (Bind 
1348 Abbr) u1 t5) (\lambda (_: T).((eq T (THead (Bind Abbr) u2 w) t2) \to ((pr0 u1 
1349 u2) \to ((pr0 t5 t6) \to ((subst0 O u2 t6 w) \to (ex2 T (\lambda (t8: T).(pr0 
1350 (THead (Bind Abbr) v2 t4) t8)) (\lambda (t8: T).(pr0 t2 t8)))))))) (\lambda 
1351 (H14: (eq T (THead (Bind Abbr) u2 w) t2)).(eq_ind T (THead (Bind Abbr) u2 w) 
1352 (\lambda (t7: T).((pr0 u1 u2) \to ((pr0 t5 t6) \to ((subst0 O u2 t6 w) \to 
1353 (ex2 T (\lambda (t8: T).(pr0 (THead (Bind Abbr) v2 t4) t8)) (\lambda (t8: 
1354 T).(pr0 t7 t8))))))) (\lambda (_: (pr0 u1 u2)).(\lambda (_: (pr0 t5 
1355 t6)).(\lambda (_: (subst0 O u2 t6 w)).(let H18 \def (eq_ind_r T t (\lambda 
1356 (t7: T).(eq T (THead (Flat Appl) v1 (THead (Bind Abst) u t3)) t7)) H4 (THead 
1357 (Bind Abbr) u1 t5) H12) in (let H19 \def (eq_ind T (THead (Flat Appl) v1 
1358 (THead (Bind Abst) u t3)) (\lambda (ee: T).(match ee in T return (\lambda (_: 
1359 T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | 
1360 (THead k _ _) \Rightarrow (match k in K return (\lambda (_: K).Prop) with 
1361 [(Bind _) \Rightarrow False | (Flat _) \Rightarrow True])])) I (THead (Bind 
1362 Abbr) u1 t5) H18) in (False_ind (ex2 T (\lambda (t7: T).(pr0 (THead (Bind 
1363 Abbr) v2 t4) t7)) (\lambda (t7: T).(pr0 (THead (Bind Abbr) u2 w) t7))) 
1364 H19)))))) t2 H14)) t H12 H13 H9 H10 H11))) | (pr0_zeta b H9 t5 t6 H10 u0) 
1365 \Rightarrow (\lambda (H11: (eq T (THead (Bind b) u0 (lift (S O) O t5)) 
1366 t)).(\lambda (H12: (eq T t6 t2)).(eq_ind T (THead (Bind b) u0 (lift (S O) O 
1367 t5)) (\lambda (_: T).((eq T t6 t2) \to ((not (eq B b Abst)) \to ((pr0 t5 t6) 
1368 \to (ex2 T (\lambda (t8: T).(pr0 (THead (Bind Abbr) v2 t4) t8)) (\lambda (t8: 
1369 T).(pr0 t2 t8))))))) (\lambda (H13: (eq T t6 t2)).(eq_ind T t2 (\lambda (t7: 
1370 T).((not (eq B b Abst)) \to ((pr0 t5 t7) \to (ex2 T (\lambda (t8: T).(pr0 
1371 (THead (Bind Abbr) v2 t4) t8)) (\lambda (t8: T).(pr0 t2 t8)))))) (\lambda (_: 
1372 (not (eq B b Abst))).(\lambda (_: (pr0 t5 t2)).(let H16 \def (eq_ind_r T t 
1373 (\lambda (t7: T).(eq T (THead (Flat Appl) v1 (THead (Bind Abst) u t3)) t7)) 
1374 H4 (THead (Bind b) u0 (lift (S O) O t5)) H11) in (let H17 \def (eq_ind T 
1375 (THead (Flat Appl) v1 (THead (Bind Abst) u t3)) (\lambda (ee: T).(match ee in 
1376 T return (\lambda (_: T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) 
1377 \Rightarrow False | (THead k _ _) \Rightarrow (match k in K return (\lambda 
1378 (_: K).Prop) with [(Bind _) \Rightarrow False | (Flat _) \Rightarrow 
1379 True])])) I (THead (Bind b) u0 (lift (S O) O t5)) H16) in (False_ind (ex2 T 
1380 (\lambda (t7: T).(pr0 (THead (Bind Abbr) v2 t4) t7)) (\lambda (t7: T).(pr0 t2 
1381 t7))) H17))))) t6 (sym_eq T t6 t2 H13))) t H11 H12 H9 H10))) | (pr0_tau t5 t6 
1382 H9 u0) \Rightarrow (\lambda (H10: (eq T (THead (Flat Cast) u0 t5) 
1383 t)).(\lambda (H11: (eq T t6 t2)).(eq_ind T (THead (Flat Cast) u0 t5) (\lambda 
1384 (_: T).((eq T t6 t2) \to ((pr0 t5 t6) \to (ex2 T (\lambda (t8: T).(pr0 (THead 
1385 (Bind Abbr) v2 t4) t8)) (\lambda (t8: T).(pr0 t2 t8)))))) (\lambda (H12: (eq 
1386 T t6 t2)).(eq_ind T t2 (\lambda (t7: T).((pr0 t5 t7) \to (ex2 T (\lambda (t8: 
1387 T).(pr0 (THead (Bind Abbr) v2 t4) t8)) (\lambda (t8: T).(pr0 t2 t8))))) 
1388 (\lambda (_: (pr0 t5 t2)).(let H14 \def (eq_ind_r T t (\lambda (t7: T).(eq T 
1389 (THead (Flat Appl) v1 (THead (Bind Abst) u t3)) t7)) H4 (THead (Flat Cast) u0 
1390 t5) H10) in (let H15 \def (eq_ind T (THead (Flat Appl) v1 (THead (Bind Abst) 
1391 u t3)) (\lambda (ee: T).(match ee in T return (\lambda (_: T).Prop) with 
1392 [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _) 
1393 \Rightarrow (match k in K return (\lambda (_: K).Prop) with [(Bind _) 
1394 \Rightarrow False | (Flat f) \Rightarrow (match f in F return (\lambda (_: 
1395 F).Prop) with [Appl \Rightarrow True | Cast \Rightarrow False])])])) I (THead 
1396 (Flat Cast) u0 t5) H14) in (False_ind (ex2 T (\lambda (t7: T).(pr0 (THead 
1397 (Bind Abbr) v2 t4) t7)) (\lambda (t7: T).(pr0 t2 t7))) H15)))) t6 (sym_eq T 
1398 t6 t2 H12))) t H10 H11 H9)))]) in (H9 (refl_equal T t) (refl_equal T t2))))) 
1399 t1 H6)) t H4 H5 H2 H3))) | (pr0_upsilon b H2 v1 v2 H3 u1 u2 H4 t3 t4 H5) 
1400 \Rightarrow (\lambda (H6: (eq T (THead (Flat Appl) v1 (THead (Bind b) u1 t3)) 
1401 t)).(\lambda (H7: (eq T (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O 
1402 v2) t4)) t1)).(eq_ind T (THead (Flat Appl) v1 (THead (Bind b) u1 t3)) 
1403 (\lambda (_: T).((eq T (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O 
1404 v2) t4)) t1) \to ((not (eq B b Abst)) \to ((pr0 v1 v2) \to ((pr0 u1 u2) \to 
1405 ((pr0 t3 t4) \to (ex2 T (\lambda (t6: T).(pr0 t1 t6)) (\lambda (t6: T).(pr0 
1406 t2 t6))))))))) (\lambda (H8: (eq T (THead (Bind b) u2 (THead (Flat Appl) 
1407 (lift (S O) O v2) t4)) t1)).(eq_ind T (THead (Bind b) u2 (THead (Flat Appl) 
1408 (lift (S O) O v2) t4)) (\lambda (t5: T).((not (eq B b Abst)) \to ((pr0 v1 v2) 
1409 \to ((pr0 u1 u2) \to ((pr0 t3 t4) \to (ex2 T (\lambda (t6: T).(pr0 t5 t6)) 
1410 (\lambda (t6: T).(pr0 t2 t6)))))))) (\lambda (H9: (not (eq B b 
1411 Abst))).(\lambda (H10: (pr0 v1 v2)).(\lambda (H11: (pr0 u1 u2)).(\lambda 
1412 (H12: (pr0 t3 t4)).(let H13 \def (match H1 in pr0 return (\lambda (t5: 
1413 T).(\lambda (t6: T).(\lambda (_: (pr0 t5 t6)).((eq T t5 t) \to ((eq T t6 t2) 
1414 \to (ex2 T (\lambda (t7: T).(pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift 
1415 (S O) O v2) t4)) t7)) (\lambda (t7: T).(pr0 t2 t7)))))))) with [(pr0_refl t5) 
1416 \Rightarrow (\lambda (H13: (eq T t5 t)).(\lambda (H14: (eq T t5 t2)).(eq_ind 
1417 T t (\lambda (t6: T).((eq T t6 t2) \to (ex2 T (\lambda (t7: T).(pr0 (THead 
1418 (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7)) (\lambda (t7: 
1419 T).(pr0 t2 t7))))) (\lambda (H15: (eq T t t2)).(eq_ind T t2 (\lambda (_: 
1420 T).(ex2 T (\lambda (t7: T).(pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift 
1421 (S O) O v2) t4)) t7)) (\lambda (t7: T).(pr0 t2 t7)))) (let H16 \def (eq_ind_r 
1422 T t (\lambda (t6: T).(eq T t6 t2)) H15 (THead (Flat Appl) v1 (THead (Bind b) 
1423 u1 t3)) H6) in (eq_ind T (THead (Flat Appl) v1 (THead (Bind b) u1 t3)) 
1424 (\lambda (t6: T).(ex2 T (\lambda (t7: T).(pr0 (THead (Bind b) u2 (THead (Flat 
1425 Appl) (lift (S O) O v2) t4)) t7)) (\lambda (t7: T).(pr0 t6 t7)))) (let H17 
1426 \def (eq_ind_r T t (\lambda (t6: T).(eq T t5 t6)) H13 (THead (Flat Appl) v1 
1427 (THead (Bind b) u1 t3)) H6) in (let H18 \def (eq_ind_r T t (\lambda (t6: 
1428 T).(\forall (v: T).((tlt v t6) \to (\forall (t7: T).((pr0 v t7) \to (\forall 
1429 (t8: T).((pr0 v t8) \to (ex2 T (\lambda (t9: T).(pr0 t7 t9)) (\lambda (t9: 
1430 T).(pr0 t8 t9)))))))))) H (THead (Flat Appl) v1 (THead (Bind b) u1 t3)) H6) 
1431 in (ex2_sym T (pr0 (THead (Flat Appl) v1 (THead (Bind b) u1 t3))) (pr0 (THead 
1432 (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4))) 
1433 (pr0_confluence__pr0_cong_upsilon_refl b H9 u1 u2 H11 t3 t4 H12 v1 v2 v2 H10 
1434 (pr0_refl v2))))) t2 H16)) t (sym_eq T t t2 H15))) t5 (sym_eq T t5 t H13) 
1435 H14))) | (pr0_comp u0 u3 H13 t5 t6 H14 k) \Rightarrow (\lambda (H15: (eq T 
1436 (THead k u0 t5) t)).(\lambda (H16: (eq T (THead k u3 t6) t2)).(eq_ind T 
1437 (THead k u0 t5) (\lambda (_: T).((eq T (THead k u3 t6) t2) \to ((pr0 u0 u3) 
1438 \to ((pr0 t5 t6) \to (ex2 T (\lambda (t8: T).(pr0 (THead (Bind b) u2 (THead 
1439 (Flat Appl) (lift (S O) O v2) t4)) t8)) (\lambda (t8: T).(pr0 t2 t8))))))) 
1440 (\lambda (H17: (eq T (THead k u3 t6) t2)).(eq_ind T (THead k u3 t6) (\lambda 
1441 (t7: T).((pr0 u0 u3) \to ((pr0 t5 t6) \to (ex2 T (\lambda (t8: T).(pr0 (THead 
1442 (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t8)) (\lambda (t8: 
1443 T).(pr0 t7 t8)))))) (\lambda (H18: (pr0 u0 u3)).(\lambda (H19: (pr0 t5 
1444 t6)).(let H20 \def (eq_ind_r T t (\lambda (t7: T).(eq T (THead (Flat Appl) v1 
1445 (THead (Bind b) u1 t3)) t7)) H6 (THead k u0 t5) H15) in (let H21 \def 
1446 (f_equal T K (\lambda (e: T).(match e in T return (\lambda (_: T).K) with 
1447 [(TSort _) \Rightarrow (Flat Appl) | (TLRef _) \Rightarrow (Flat Appl) | 
1448 (THead k0 _ _) \Rightarrow k0])) (THead (Flat Appl) v1 (THead (Bind b) u1 
1449 t3)) (THead k u0 t5) H20) in ((let H22 \def (f_equal T T (\lambda (e: 
1450 T).(match e in T return (\lambda (_: T).T) with [(TSort _) \Rightarrow v1 | 
1451 (TLRef _) \Rightarrow v1 | (THead _ t7 _) \Rightarrow t7])) (THead (Flat 
1452 Appl) v1 (THead (Bind b) u1 t3)) (THead k u0 t5) H20) in ((let H23 \def 
1453 (f_equal T T (\lambda (e: T).(match e in T return (\lambda (_: T).T) with 
1454 [(TSort _) \Rightarrow (THead (Bind b) u1 t3) | (TLRef _) \Rightarrow (THead 
1455 (Bind b) u1 t3) | (THead _ _ t7) \Rightarrow t7])) (THead (Flat Appl) v1 
1456 (THead (Bind b) u1 t3)) (THead k u0 t5) H20) in (\lambda (H24: (eq T v1 
1457 u0)).(\lambda (H25: (eq K (Flat Appl) k)).(eq_ind K (Flat Appl) (\lambda (k0: 
1458 K).(ex2 T (\lambda (t7: T).(pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift 
1459 (S O) O v2) t4)) t7)) (\lambda (t7: T).(pr0 (THead k0 u3 t6) t7)))) (let H26 
1460 \def (eq_ind_r K k (\lambda (k0: K).(eq T (THead k0 u0 t5) t)) H15 (Flat 
1461 Appl) H25) in (let H27 \def (eq_ind_r T t5 (\lambda (t7: T).(pr0 t7 t6)) H19 
1462 (THead (Bind b) u1 t3) H23) in (let H28 \def (match H27 in pr0 return 
1463 (\lambda (t7: T).(\lambda (t8: T).(\lambda (_: (pr0 t7 t8)).((eq T t7 (THead 
1464 (Bind b) u1 t3)) \to ((eq T t8 t6) \to (ex2 T (\lambda (t9: T).(pr0 (THead 
1465 (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9)) (\lambda (t9: 
1466 T).(pr0 (THead (Flat Appl) u3 t6) t9)))))))) with [(pr0_refl t7) \Rightarrow 
1467 (\lambda (H28: (eq T t7 (THead (Bind b) u1 t3))).(\lambda (H29: (eq T t7 
1468 t6)).(eq_ind T (THead (Bind b) u1 t3) (\lambda (t8: T).((eq T t8 t6) \to (ex2 
1469 T (\lambda (t9: T).(pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O 
1470 v2) t4)) t9)) (\lambda (t9: T).(pr0 (THead (Flat Appl) u3 t6) t9))))) 
1471 (\lambda (H30: (eq T (THead (Bind b) u1 t3) t6)).(eq_ind T (THead (Bind b) u1 
1472 t3) (\lambda (t8: T).(ex2 T (\lambda (t9: T).(pr0 (THead (Bind b) u2 (THead 
1473 (Flat Appl) (lift (S O) O v2) t4)) t9)) (\lambda (t9: T).(pr0 (THead (Flat 
1474 Appl) u3 t8) t9)))) (let H31 \def (eq_ind_r T t5 (\lambda (t8: T).(eq T 
1475 (THead (Flat Appl) u0 t8) t)) H26 (THead (Bind b) u1 t3) H23) in (let H32 
1476 \def (eq_ind_r T t (\lambda (t8: T).(\forall (v: T).((tlt v t8) \to (\forall 
1477 (t9: T).((pr0 v t9) \to (\forall (t10: T).((pr0 v t10) \to (ex2 T (\lambda 
1478 (t11: T).(pr0 t9 t11)) (\lambda (t11: T).(pr0 t10 t11)))))))))) H (THead 
1479 (Flat Appl) u0 (THead (Bind b) u1 t3)) H31) in (let H33 \def (eq_ind T v1 
1480 (\lambda (t8: T).(pr0 t8 v2)) H10 u0 H24) in (ex2_ind T (\lambda (t8: T).(pr0 
1481 v2 t8)) (\lambda (t8: T).(pr0 u3 t8)) (ex2 T (\lambda (t8: T).(pr0 (THead 
1482 (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t8)) (\lambda (t8: 
1483 T).(pr0 (THead (Flat Appl) u3 (THead (Bind b) u1 t3)) t8))) (\lambda (x: 
1484 T).(\lambda (H34: (pr0 v2 x)).(\lambda (H35: (pr0 u3 x)).(ex2_sym T (pr0 
1485 (THead (Flat Appl) u3 (THead (Bind b) u1 t3))) (pr0 (THead (Bind b) u2 (THead 
1486 (Flat Appl) (lift (S O) O v2) t4))) (pr0_confluence__pr0_cong_upsilon_refl b 
1487 H9 u1 u2 H11 t3 t4 H12 u3 v2 x H35 H34))))) (H32 u0 (tlt_head_sx (Flat Appl) 
1488 u0 (THead (Bind b) u1 t3)) v2 H33 u3 H18))))) t6 H30)) t7 (sym_eq T t7 (THead 
1489 (Bind b) u1 t3) H28) H29))) | (pr0_comp u4 u5 H28 t7 t8 H29 k0) \Rightarrow 
1490 (\lambda (H30: (eq T (THead k0 u4 t7) (THead (Bind b) u1 t3))).(\lambda (H31: 
1491 (eq T (THead k0 u5 t8) t6)).((let H32 \def (f_equal T T (\lambda (e: 
1492 T).(match e in T return (\lambda (_: T).T) with [(TSort _) \Rightarrow t7 | 
1493 (TLRef _) \Rightarrow t7 | (THead _ _ t9) \Rightarrow t9])) (THead k0 u4 t7) 
1494 (THead (Bind b) u1 t3) H30) in ((let H33 \def (f_equal T T (\lambda (e: 
1495 T).(match e in T return (\lambda (_: T).T) with [(TSort _) \Rightarrow u4 | 
1496 (TLRef _) \Rightarrow u4 | (THead _ t9 _) \Rightarrow t9])) (THead k0 u4 t7) 
1497 (THead (Bind b) u1 t3) H30) in ((let H34 \def (f_equal T K (\lambda (e: 
1498 T).(match e in T return (\lambda (_: T).K) with [(TSort _) \Rightarrow k0 | 
1499 (TLRef _) \Rightarrow k0 | (THead k1 _ _) \Rightarrow k1])) (THead k0 u4 t7) 
1500 (THead (Bind b) u1 t3) H30) in (eq_ind K (Bind b) (\lambda (k1: K).((eq T u4 
1501 u1) \to ((eq T t7 t3) \to ((eq T (THead k1 u5 t8) t6) \to ((pr0 u4 u5) \to 
1502 ((pr0 t7 t8) \to (ex2 T (\lambda (t9: T).(pr0 (THead (Bind b) u2 (THead (Flat 
1503 Appl) (lift (S O) O v2) t4)) t9)) (\lambda (t9: T).(pr0 (THead (Flat Appl) u3 
1504 t6) t9))))))))) (\lambda (H35: (eq T u4 u1)).(eq_ind T u1 (\lambda (t9: 
1505 T).((eq T t7 t3) \to ((eq T (THead (Bind b) u5 t8) t6) \to ((pr0 t9 u5) \to 
1506 ((pr0 t7 t8) \to (ex2 T (\lambda (t10: T).(pr0 (THead (Bind b) u2 (THead 
1507 (Flat Appl) (lift (S O) O v2) t4)) t10)) (\lambda (t10: T).(pr0 (THead (Flat 
1508 Appl) u3 t6) t10)))))))) (\lambda (H36: (eq T t7 t3)).(eq_ind T t3 (\lambda 
1509 (t9: T).((eq T (THead (Bind b) u5 t8) t6) \to ((pr0 u1 u5) \to ((pr0 t9 t8) 
1510 \to (ex2 T (\lambda (t10: T).(pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift 
1511 (S O) O v2) t4)) t10)) (\lambda (t10: T).(pr0 (THead (Flat Appl) u3 t6) 
1512 t10))))))) (\lambda (H37: (eq T (THead (Bind b) u5 t8) t6)).(eq_ind T (THead 
1513 (Bind b) u5 t8) (\lambda (t9: T).((pr0 u1 u5) \to ((pr0 t3 t8) \to (ex2 T 
1514 (\lambda (t10: T).(pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O 
1515 v2) t4)) t10)) (\lambda (t10: T).(pr0 (THead (Flat Appl) u3 t9) t10)))))) 
1516 (\lambda (H38: (pr0 u1 u5)).(\lambda (H39: (pr0 t3 t8)).(let H40 \def 
1517 (eq_ind_r T t5 (\lambda (t9: T).(eq T (THead (Flat Appl) u0 t9) t)) H26 
1518 (THead (Bind b) u1 t3) H23) in (let H41 \def (eq_ind_r T t (\lambda (t9: 
1519 T).(\forall (v: T).((tlt v t9) \to (\forall (t10: T).((pr0 v t10) \to 
1520 (\forall (t11: T).((pr0 v t11) \to (ex2 T (\lambda (t12: T).(pr0 t10 t12)) 
1521 (\lambda (t12: T).(pr0 t11 t12)))))))))) H (THead (Flat Appl) u0 (THead (Bind 
1522 b) u1 t3)) H40) in (let H42 \def (eq_ind T v1 (\lambda (t9: T).(pr0 t9 v2)) 
1523 H10 u0 H24) in (ex2_ind T (\lambda (t9: T).(pr0 v2 t9)) (\lambda (t9: T).(pr0 
1524 u3 t9)) (ex2 T (\lambda (t9: T).(pr0 (THead (Bind b) u2 (THead (Flat Appl) 
1525 (lift (S O) O v2) t4)) t9)) (\lambda (t9: T).(pr0 (THead (Flat Appl) u3 
1526 (THead (Bind b) u5 t8)) t9))) (\lambda (x: T).(\lambda (H43: (pr0 v2 
1527 x)).(\lambda (H44: (pr0 u3 x)).(ex2_ind T (\lambda (t9: T).(pr0 t8 t9)) 
1528 (\lambda (t9: T).(pr0 t4 t9)) (ex2 T (\lambda (t9: T).(pr0 (THead (Bind b) u2 
1529 (THead (Flat Appl) (lift (S O) O v2) t4)) t9)) (\lambda (t9: T).(pr0 (THead 
1530 (Flat Appl) u3 (THead (Bind b) u5 t8)) t9))) (\lambda (x0: T).(\lambda (H45: 
1531 (pr0 t8 x0)).(\lambda (H46: (pr0 t4 x0)).(ex2_ind T (\lambda (t9: T).(pr0 u5 
1532 t9)) (\lambda (t9: T).(pr0 u2 t9)) (ex2 T (\lambda (t9: T).(pr0 (THead (Bind 
1533 b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9)) (\lambda (t9: T).(pr0 
1534 (THead (Flat Appl) u3 (THead (Bind b) u5 t8)) t9))) (\lambda (x1: T).(\lambda 
1535 (H47: (pr0 u5 x1)).(\lambda (H48: (pr0 u2 x1)).(ex2_sym T (pr0 (THead (Flat 
1536 Appl) u3 (THead (Bind b) u5 t8))) (pr0 (THead (Bind b) u2 (THead (Flat Appl) 
1537 (lift (S O) O v2) t4))) (pr0_confluence__pr0_cong_upsilon_cong b H9 u3 v2 x 
1538 H44 H43 t8 t4 x0 H45 H46 u5 u2 x1 H47 H48))))) (H41 u1 (tlt_trans (THead 
1539 (Bind b) u1 t3) u1 (THead (Flat Appl) u0 (THead (Bind b) u1 t3)) (tlt_head_sx 
1540 (Bind b) u1 t3) (tlt_head_dx (Flat Appl) u0 (THead (Bind b) u1 t3))) u5 H38 
1541 u2 H11))))) (H41 t3 (tlt_trans (THead (Bind b) u1 t3) t3 (THead (Flat Appl) 
1542 u0 (THead (Bind b) u1 t3)) (tlt_head_dx (Bind b) u1 t3) (tlt_head_dx (Flat 
1543 Appl) u0 (THead (Bind b) u1 t3))) t8 H39 t4 H12))))) (H41 u0 (tlt_head_sx 
1544 (Flat Appl) u0 (THead (Bind b) u1 t3)) v2 H42 u3 H18))))))) t6 H37)) t7 
1545 (sym_eq T t7 t3 H36))) u4 (sym_eq T u4 u1 H35))) k0 (sym_eq K k0 (Bind b) 
1546 H34))) H33)) H32)) H31 H28 H29))) | (pr0_beta u v0 v3 H28 t7 t8 H29) 
1547 \Rightarrow (\lambda (H30: (eq T (THead (Flat Appl) v0 (THead (Bind Abst) u 
1548 t7)) (THead (Bind b) u1 t3))).(\lambda (H31: (eq T (THead (Bind Abbr) v3 t8) 
1549 t6)).((let H32 \def (eq_ind T (THead (Flat Appl) v0 (THead (Bind Abst) u t7)) 
1550 (\lambda (e: T).(match e in T return (\lambda (_: T).Prop) with [(TSort _) 
1551 \Rightarrow False | (TLRef _) \Rightarrow False | (THead k0 _ _) \Rightarrow 
1552 (match k0 in K return (\lambda (_: K).Prop) with [(Bind _) \Rightarrow False 
1553 | (Flat _) \Rightarrow True])])) I (THead (Bind b) u1 t3) H30) in (False_ind 
1554 ((eq T (THead (Bind Abbr) v3 t8) t6) \to ((pr0 v0 v3) \to ((pr0 t7 t8) \to 
1555 (ex2 T (\lambda (t9: T).(pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S 
1556 O) O v2) t4)) t9)) (\lambda (t9: T).(pr0 (THead (Flat Appl) u3 t6) t9)))))) 
1557 H32)) H31 H28 H29))) | (pr0_upsilon b0 H28 v0 v3 H29 u4 u5 H30 t7 t8 H31) 
1558 \Rightarrow (\lambda (H32: (eq T (THead (Flat Appl) v0 (THead (Bind b0) u4 
1559 t7)) (THead (Bind b) u1 t3))).(\lambda (H33: (eq T (THead (Bind b0) u5 (THead 
1560 (Flat Appl) (lift (S O) O v3) t8)) t6)).((let H34 \def (eq_ind T (THead (Flat 
1561 Appl) v0 (THead (Bind b0) u4 t7)) (\lambda (e: T).(match e in T return 
1562 (\lambda (_: T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) 
1563 \Rightarrow False | (THead k0 _ _) \Rightarrow (match k0 in K return (\lambda 
1564 (_: K).Prop) with [(Bind _) \Rightarrow False | (Flat _) \Rightarrow 
1565 True])])) I (THead (Bind b) u1 t3) H32) in (False_ind ((eq T (THead (Bind b0) 
1566 u5 (THead (Flat Appl) (lift (S O) O v3) t8)) t6) \to ((not (eq B b0 Abst)) 
1567 \to ((pr0 v0 v3) \to ((pr0 u4 u5) \to ((pr0 t7 t8) \to (ex2 T (\lambda (t9: 
1568 T).(pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9)) 
1569 (\lambda (t9: T).(pr0 (THead (Flat Appl) u3 t6) t9)))))))) H34)) H33 H28 H29 
1570 H30 H31))) | (pr0_delta u4 u5 H28 t7 t8 H29 w H30) \Rightarrow (\lambda (H31: 
1571 (eq T (THead (Bind Abbr) u4 t7) (THead (Bind b) u1 t3))).(\lambda (H32: (eq T 
1572 (THead (Bind Abbr) u5 w) t6)).((let H33 \def (f_equal T T (\lambda (e: 
1573 T).(match e in T return (\lambda (_: T).T) with [(TSort _) \Rightarrow t7 | 
1574 (TLRef _) \Rightarrow t7 | (THead _ _ t9) \Rightarrow t9])) (THead (Bind 
1575 Abbr) u4 t7) (THead (Bind b) u1 t3) H31) in ((let H34 \def (f_equal T T 
1576 (\lambda (e: T).(match e in T return (\lambda (_: T).T) with [(TSort _) 
1577 \Rightarrow u4 | (TLRef _) \Rightarrow u4 | (THead _ t9 _) \Rightarrow t9])) 
1578 (THead (Bind Abbr) u4 t7) (THead (Bind b) u1 t3) H31) in ((let H35 \def 
1579 (f_equal T B (\lambda (e: T).(match e in T return (\lambda (_: T).B) with 
1580 [(TSort _) \Rightarrow Abbr | (TLRef _) \Rightarrow Abbr | (THead k0 _ _) 
1581 \Rightarrow (match k0 in K return (\lambda (_: K).B) with [(Bind b0) 
1582 \Rightarrow b0 | (Flat _) \Rightarrow Abbr])])) (THead (Bind Abbr) u4 t7) 
1583 (THead (Bind b) u1 t3) H31) in (eq_ind B Abbr (\lambda (b0: B).((eq T u4 u1) 
1584 \to ((eq T t7 t3) \to ((eq T (THead (Bind Abbr) u5 w) t6) \to ((pr0 u4 u5) 
1585 \to ((pr0 t7 t8) \to ((subst0 O u5 t8 w) \to (ex2 T (\lambda (t9: T).(pr0 
1586 (THead (Bind b0) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9)) (\lambda 
1587 (t9: T).(pr0 (THead (Flat Appl) u3 t6) t9)))))))))) (\lambda (H36: (eq T u4 
1588 u1)).(eq_ind T u1 (\lambda (t9: T).((eq T t7 t3) \to ((eq T (THead (Bind 
1589 Abbr) u5 w) t6) \to ((pr0 t9 u5) \to ((pr0 t7 t8) \to ((subst0 O u5 t8 w) \to 
1590 (ex2 T (\lambda (t10: T).(pr0 (THead (Bind Abbr) u2 (THead (Flat Appl) (lift 
1591 (S O) O v2) t4)) t10)) (\lambda (t10: T).(pr0 (THead (Flat Appl) u3 t6) 
1592 t10))))))))) (\lambda (H37: (eq T t7 t3)).(eq_ind T t3 (\lambda (t9: T).((eq 
1593 T (THead (Bind Abbr) u5 w) t6) \to ((pr0 u1 u5) \to ((pr0 t9 t8) \to ((subst0 
1594 O u5 t8 w) \to (ex2 T (\lambda (t10: T).(pr0 (THead (Bind Abbr) u2 (THead 
1595 (Flat Appl) (lift (S O) O v2) t4)) t10)) (\lambda (t10: T).(pr0 (THead (Flat 
1596 Appl) u3 t6) t10)))))))) (\lambda (H38: (eq T (THead (Bind Abbr) u5 w) 
1597 t6)).(eq_ind T (THead (Bind Abbr) u5 w) (\lambda (t9: T).((pr0 u1 u5) \to 
1598 ((pr0 t3 t8) \to ((subst0 O u5 t8 w) \to (ex2 T (\lambda (t10: T).(pr0 (THead 
1599 (Bind Abbr) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t10)) (\lambda (t10: 
1600 T).(pr0 (THead (Flat Appl) u3 t9) t10))))))) (\lambda (H39: (pr0 u1 
1601 u5)).(\lambda (H40: (pr0 t3 t8)).(\lambda (H41: (subst0 O u5 t8 w)).(let H42 
1602 \def (eq_ind_r B b (\lambda (b0: B).(eq T (THead (Bind b0) u1 t3) t5)) H23 
1603 Abbr H35) in (let H43 \def (eq_ind_r B b (\lambda (b0: B).(not (eq B b0 
1604 Abst))) H9 Abbr H35) in (let H44 \def (eq_ind_r B b (\lambda (b0: B).(eq T 
1605 (THead (Bind b0) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t1)) H8 Abbr 
1606 H35) in (let H45 \def (eq_ind_r T t5 (\lambda (t9: T).(eq T (THead (Flat 
1607 Appl) u0 t9) t)) H26 (THead (Bind Abbr) u1 t3) H42) in (let H46 \def 
1608 (eq_ind_r T t (\lambda (t9: T).(\forall (v: T).((tlt v t9) \to (\forall (t10: 
1609 T).((pr0 v t10) \to (\forall (t11: T).((pr0 v t11) \to (ex2 T (\lambda (t12: 
1610 T).(pr0 t10 t12)) (\lambda (t12: T).(pr0 t11 t12)))))))))) H (THead (Flat 
1611 Appl) u0 (THead (Bind Abbr) u1 t3)) H45) in (let H47 \def (eq_ind T v1 
1612 (\lambda (t9: T).(pr0 t9 v2)) H10 u0 H24) in (ex2_ind T (\lambda (t9: T).(pr0 
1613 v2 t9)) (\lambda (t9: T).(pr0 u3 t9)) (ex2 T (\lambda (t9: T).(pr0 (THead 
1614 (Bind Abbr) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9)) (\lambda (t9: 
1615 T).(pr0 (THead (Flat Appl) u3 (THead (Bind Abbr) u5 w)) t9))) (\lambda (x: 
1616 T).(\lambda (H48: (pr0 v2 x)).(\lambda (H49: (pr0 u3 x)).(ex2_ind T (\lambda 
1617 (t9: T).(pr0 t8 t9)) (\lambda (t9: T).(pr0 t4 t9)) (ex2 T (\lambda (t9: 
1618 T).(pr0 (THead (Bind Abbr) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t9)) 
1619 (\lambda (t9: T).(pr0 (THead (Flat Appl) u3 (THead (Bind Abbr) u5 w)) t9))) 
1620 (\lambda (x0: T).(\lambda (H50: (pr0 t8 x0)).(\lambda (H51: (pr0 t4 
1621 x0)).(ex2_ind T (\lambda (t9: T).(pr0 u5 t9)) (\lambda (t9: T).(pr0 u2 t9)) 
1622 (ex2 T (\lambda (t9: T).(pr0 (THead (Bind Abbr) u2 (THead (Flat Appl) (lift 
1623 (S O) O v2) t4)) t9)) (\lambda (t9: T).(pr0 (THead (Flat Appl) u3 (THead 
1624 (Bind Abbr) u5 w)) t9))) (\lambda (x1: T).(\lambda (H52: (pr0 u5 
1625 x1)).(\lambda (H53: (pr0 u2 x1)).(ex2_sym T (pr0 (THead (Flat Appl) u3 (THead 
1626 (Bind Abbr) u5 w))) (pr0 (THead (Bind Abbr) u2 (THead (Flat Appl) (lift (S O) 
1627 O v2) t4))) (pr0_confluence__pr0_cong_upsilon_delta H43 u5 t8 w H41 u3 v2 x 
1628 H49 H48 t4 x0 H50 H51 u2 x1 H52 H53))))) (H46 u1 (tlt_trans (THead (Bind 
1629 Abbr) u1 t3) u1 (THead (Flat Appl) u0 (THead (Bind Abbr) u1 t3)) (tlt_head_sx 
1630 (Bind Abbr) u1 t3) (tlt_head_dx (Flat Appl) u0 (THead (Bind Abbr) u1 t3))) u5 
1631 H39 u2 H11))))) (H46 t3 (tlt_trans (THead (Bind Abbr) u1 t3) t3 (THead (Flat 
1632 Appl) u0 (THead (Bind Abbr) u1 t3)) (tlt_head_dx (Bind Abbr) u1 t3) 
1633 (tlt_head_dx (Flat Appl) u0 (THead (Bind Abbr) u1 t3))) t8 H40 t4 H12))))) 
1634 (H46 u0 (tlt_head_sx (Flat Appl) u0 (THead (Bind Abbr) u1 t3)) v2 H47 u3 
1635 H18))))))))))) t6 H38)) t7 (sym_eq T t7 t3 H37))) u4 (sym_eq T u4 u1 H36))) b 
1636 H35)) H34)) H33)) H32 H28 H29 H30))) | (pr0_zeta b0 H28 t7 t8 H29 u) 
1637 \Rightarrow (\lambda (H30: (eq T (THead (Bind b0) u (lift (S O) O t7)) (THead 
1638 (Bind b) u1 t3))).(\lambda (H31: (eq T t8 t6)).((let H32 \def (f_equal T T 
1639 (\lambda (e: T).(match e in T return (\lambda (_: T).T) with [(TSort _) 
1640 \Rightarrow ((let rec lref_map (f: ((nat \to nat))) (d: nat) (t9: T) on t9: T 
1641 \def (match t9 with [(TSort n) \Rightarrow (TSort n) | (TLRef i) \Rightarrow 
1642 (TLRef (match (blt i d) with [true \Rightarrow i | false \Rightarrow (f i)])) 
1643 | (THead k0 u4 t10) \Rightarrow (THead k0 (lref_map f d u4) (lref_map f (s k0 
1644 d) t10))]) in lref_map) (\lambda (x: nat).(plus x (S O))) O t7) | (TLRef _) 
1645 \Rightarrow ((let rec lref_map (f: ((nat \to nat))) (d: nat) (t9: T) on t9: T 
1646 \def (match t9 with [(TSort n) \Rightarrow (TSort n) | (TLRef i) \Rightarrow 
1647 (TLRef (match (blt i d) with [true \Rightarrow i | false \Rightarrow (f i)])) 
1648 | (THead k0 u4 t10) \Rightarrow (THead k0 (lref_map f d u4) (lref_map f (s k0 
1649 d) t10))]) in lref_map) (\lambda (x: nat).(plus x (S O))) O t7) | (THead _ _ 
1650 t9) \Rightarrow t9])) (THead (Bind b0) u (lift (S O) O t7)) (THead (Bind b) 
1651 u1 t3) H30) in ((let H33 \def (f_equal T T (\lambda (e: T).(match e in T 
1652 return (\lambda (_: T).T) with [(TSort _) \Rightarrow u | (TLRef _) 
1653 \Rightarrow u | (THead _ t9 _) \Rightarrow t9])) (THead (Bind b0) u (lift (S 
1654 O) O t7)) (THead (Bind b) u1 t3) H30) in ((let H34 \def (f_equal T B (\lambda 
1655 (e: T).(match e in T return (\lambda (_: T).B) with [(TSort _) \Rightarrow b0 
1656 | (TLRef _) \Rightarrow b0 | (THead k0 _ _) \Rightarrow (match k0 in K return 
1657 (\lambda (_: K).B) with [(Bind b1) \Rightarrow b1 | (Flat _) \Rightarrow 
1658 b0])])) (THead (Bind b0) u (lift (S O) O t7)) (THead (Bind b) u1 t3) H30) in 
1659 (eq_ind B b (\lambda (b1: B).((eq T u u1) \to ((eq T (lift (S O) O t7) t3) 
1660 \to ((eq T t8 t6) \to ((not (eq B b1 Abst)) \to ((pr0 t7 t8) \to (ex2 T 
1661 (\lambda (t9: T).(pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) 
1662 t4)) t9)) (\lambda (t9: T).(pr0 (THead (Flat Appl) u3 t6) t9))))))))) 
1663 (\lambda (H35: (eq T u u1)).(eq_ind T u1 (\lambda (_: T).((eq T (lift (S O) O 
1664 t7) t3) \to ((eq T t8 t6) \to ((not (eq B b Abst)) \to ((pr0 t7 t8) \to (ex2 
1665 T (\lambda (t10: T).(pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O 
1666 v2) t4)) t10)) (\lambda (t10: T).(pr0 (THead (Flat Appl) u3 t6) t10)))))))) 
1667 (\lambda (H36: (eq T (lift (S O) O t7) t3)).(eq_ind T (lift (S O) O t7) 
1668 (\lambda (_: T).((eq T t8 t6) \to ((not (eq B b Abst)) \to ((pr0 t7 t8) \to 
1669 (ex2 T (\lambda (t10: T).(pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S 
1670 O) O v2) t4)) t10)) (\lambda (t10: T).(pr0 (THead (Flat Appl) u3 t6) 
1671 t10))))))) (\lambda (H37: (eq T t8 t6)).(eq_ind T t6 (\lambda (t9: T).((not 
1672 (eq B b Abst)) \to ((pr0 t7 t9) \to (ex2 T (\lambda (t10: T).(pr0 (THead 
1673 (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t10)) (\lambda (t10: 
1674 T).(pr0 (THead (Flat Appl) u3 t6) t10)))))) (\lambda (H38: (not (eq B b 
1675 Abst))).(\lambda (H39: (pr0 t7 t6)).(let H40 \def (eq_ind_r T t3 (\lambda 
1676 (t9: T).(eq T (THead (Bind b) u1 t9) t5)) H23 (lift (S O) O t7) H36) in (let 
1677 H41 \def (eq_ind_r T t5 (\lambda (t9: T).(eq T (THead (Flat Appl) u0 t9) t)) 
1678 H26 (THead (Bind b) u1 (lift (S O) O t7)) H40) in (let H42 \def (eq_ind_r T t 
1679 (\lambda (t9: T).(\forall (v: T).((tlt v t9) \to (\forall (t10: T).((pr0 v 
1680 t10) \to (\forall (t11: T).((pr0 v t11) \to (ex2 T (\lambda (t12: T).(pr0 t10 
1681 t12)) (\lambda (t12: T).(pr0 t11 t12)))))))))) H (THead (Flat Appl) u0 (THead 
1682 (Bind b) u1 (lift (S O) O t7))) H41) in (let H43 \def (eq_ind_r T t3 (\lambda 
1683 (t9: T).(pr0 t9 t4)) H12 (lift (S O) O t7) H36) in (ex2_ind T (\lambda (t9: 
1684 T).(eq T t4 (lift (S O) O t9))) (\lambda (t9: T).(pr0 t7 t9)) (ex2 T (\lambda 
1685 (t9: T).(pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) 
1686 t9)) (\lambda (t9: T).(pr0 (THead (Flat Appl) u3 t6) t9))) (\lambda (x: 
1687 T).(\lambda (H44: (eq T t4 (lift (S O) O x))).(\lambda (H45: (pr0 t7 
1688 x)).(eq_ind_r T (lift (S O) O x) (\lambda (t9: T).(ex2 T (\lambda (t10: 
1689 T).(pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t9)) t10)) 
1690 (\lambda (t10: T).(pr0 (THead (Flat Appl) u3 t6) t10)))) (let H46 \def 
1691 (eq_ind T v1 (\lambda (t9: T).(pr0 t9 v2)) H10 u0 H24) in (ex2_ind T (\lambda 
1692 (t9: T).(pr0 v2 t9)) (\lambda (t9: T).(pr0 u3 t9)) (ex2 T (\lambda (t9: 
1693 T).(pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) (lift (S O) O 
1694 x))) t9)) (\lambda (t9: T).(pr0 (THead (Flat Appl) u3 t6) t9))) (\lambda (x0: 
1695 T).(\lambda (H47: (pr0 v2 x0)).(\lambda (H48: (pr0 u3 x0)).(ex2_ind T 
1696 (\lambda (t9: T).(pr0 x t9)) (\lambda (t9: T).(pr0 t6 t9)) (ex2 T (\lambda 
1697 (t9: T).(pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) (lift (S 
1698 O) O x))) t9)) (\lambda (t9: T).(pr0 (THead (Flat Appl) u3 t6) t9))) (\lambda 
1699 (x1: T).(\lambda (H49: (pr0 x x1)).(\lambda (H50: (pr0 t6 x1)).(ex2_sym T 
1700 (pr0 (THead (Flat Appl) u3 t6)) (pr0 (THead (Bind b) u2 (THead (Flat Appl) 
1701 (lift (S O) O v2) (lift (S O) O x)))) (pr0_confluence__pr0_cong_upsilon_zeta 
1702 b H38 u1 u2 H11 u3 v2 x0 H48 H47 x t6 x1 H49 H50))))) (H42 t7 (tlt_trans 
1703 (THead (Bind b) u1 (lift (S O) O t7)) t7 (THead (Flat Appl) u0 (THead (Bind 
1704 b) u1 (lift (S O) O t7))) (lift_tlt_dx (Bind b) u1 t7 (S O) O) (tlt_head_dx 
1705 (Flat Appl) u0 (THead (Bind b) u1 (lift (S O) O t7)))) x H45 t6 H39))))) (H42 
1706 u0 (tlt_head_sx (Flat Appl) u0 (THead (Bind b) u1 (lift (S O) O t7))) v2 H46 
1707 u3 H18))) t4 H44)))) (pr0_gen_lift t7 t4 (S O) O H43)))))))) t8 (sym_eq T t8 
1708 t6 H37))) t3 H36)) u (sym_eq T u u1 H35))) b0 (sym_eq B b0 b H34))) H33)) 
1709 H32)) H31 H28 H29))) | (pr0_tau t7 t8 H28 u) \Rightarrow (\lambda (H29: (eq T 
1710 (THead (Flat Cast) u t7) (THead (Bind b) u1 t3))).(\lambda (H30: (eq T t8 
1711 t6)).((let H31 \def (eq_ind T (THead (Flat Cast) u t7) (\lambda (e: T).(match 
1712 e in T return (\lambda (_: T).Prop) with [(TSort _) \Rightarrow False | 
1713 (TLRef _) \Rightarrow False | (THead k0 _ _) \Rightarrow (match k0 in K 
1714 return (\lambda (_: K).Prop) with [(Bind _) \Rightarrow False | (Flat _) 
1715 \Rightarrow True])])) I (THead (Bind b) u1 t3) H29) in (False_ind ((eq T t8 
1716 t6) \to ((pr0 t7 t8) \to (ex2 T (\lambda (t9: T).(pr0 (THead (Bind b) u2 
1717 (THead (Flat Appl) (lift (S O) O v2) t4)) t9)) (\lambda (t9: T).(pr0 (THead 
1718 (Flat Appl) u3 t6) t9))))) H31)) H30 H28)))]) in (H28 (refl_equal T (THead 
1719 (Bind b) u1 t3)) (refl_equal T t6))))) k H25)))) H22)) H21))))) t2 H17)) t 
1720 H15 H16 H13 H14))) | (pr0_beta u v0 v3 H13 t5 t6 H14) \Rightarrow (\lambda 
1721 (H15: (eq T (THead (Flat Appl) v0 (THead (Bind Abst) u t5)) t)).(\lambda 
1722 (H16: (eq T (THead (Bind Abbr) v3 t6) t2)).(eq_ind T (THead (Flat Appl) v0 
1723 (THead (Bind Abst) u t5)) (\lambda (_: T).((eq T (THead (Bind Abbr) v3 t6) 
1724 t2) \to ((pr0 v0 v3) \to ((pr0 t5 t6) \to (ex2 T (\lambda (t8: T).(pr0 (THead 
1725 (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t8)) (\lambda (t8: 
1726 T).(pr0 t2 t8))))))) (\lambda (H17: (eq T (THead (Bind Abbr) v3 t6) 
1727 t2)).(eq_ind T (THead (Bind Abbr) v3 t6) (\lambda (t7: T).((pr0 v0 v3) \to 
1728 ((pr0 t5 t6) \to (ex2 T (\lambda (t8: T).(pr0 (THead (Bind b) u2 (THead (Flat 
1729 Appl) (lift (S O) O v2) t4)) t8)) (\lambda (t8: T).(pr0 t7 t8)))))) (\lambda 
1730 (_: (pr0 v0 v3)).(\lambda (_: (pr0 t5 t6)).(let H20 \def (eq_ind_r T t 
1731 (\lambda (t7: T).(eq T (THead (Flat Appl) v1 (THead (Bind b) u1 t3)) t7)) H6 
1732 (THead (Flat Appl) v0 (THead (Bind Abst) u t5)) H15) in (let H21 \def 
1733 (f_equal T T (\lambda (e: T).(match e in T return (\lambda (_: T).T) with 
1734 [(TSort _) \Rightarrow v1 | (TLRef _) \Rightarrow v1 | (THead _ t7 _) 
1735 \Rightarrow t7])) (THead (Flat Appl) v1 (THead (Bind b) u1 t3)) (THead (Flat 
1736 Appl) v0 (THead (Bind Abst) u t5)) H20) in ((let H22 \def (f_equal T B 
1737 (\lambda (e: T).(match e in T return (\lambda (_: T).B) with [(TSort _) 
1738 \Rightarrow b | (TLRef _) \Rightarrow b | (THead _ _ t7) \Rightarrow (match 
1739 t7 in T return (\lambda (_: T).B) with [(TSort _) \Rightarrow b | (TLRef _) 
1740 \Rightarrow b | (THead k _ _) \Rightarrow (match k in K return (\lambda (_: 
1741 K).B) with [(Bind b0) \Rightarrow b0 | (Flat _) \Rightarrow b])])])) (THead 
1742 (Flat Appl) v1 (THead (Bind b) u1 t3)) (THead (Flat Appl) v0 (THead (Bind 
1743 Abst) u t5)) H20) in ((let H23 \def (f_equal T T (\lambda (e: T).(match e in 
1744 T return (\lambda (_: T).T) with [(TSort _) \Rightarrow u1 | (TLRef _) 
1745 \Rightarrow u1 | (THead _ _ t7) \Rightarrow (match t7 in T return (\lambda 
1746 (_: T).T) with [(TSort _) \Rightarrow u1 | (TLRef _) \Rightarrow u1 | (THead 
1747 _ t8 _) \Rightarrow t8])])) (THead (Flat Appl) v1 (THead (Bind b) u1 t3)) 
1748 (THead (Flat Appl) v0 (THead (Bind Abst) u t5)) H20) in ((let H24 \def 
1749 (f_equal T T (\lambda (e: T).(match e in T return (\lambda (_: T).T) with 
1750 [(TSort _) \Rightarrow t3 | (TLRef _) \Rightarrow t3 | (THead _ _ t7) 
1751 \Rightarrow (match t7 in T return (\lambda (_: T).T) with [(TSort _) 
1752 \Rightarrow t3 | (TLRef _) \Rightarrow t3 | (THead _ _ t8) \Rightarrow 
1753 t8])])) (THead (Flat Appl) v1 (THead (Bind b) u1 t3)) (THead (Flat Appl) v0 
1754 (THead (Bind Abst) u t5)) H20) in (\lambda (_: (eq T u1 u)).(\lambda (H26: 
1755 (eq B b Abst)).(\lambda (H27: (eq T v1 v0)).(let H28 \def (eq_ind_r T t 
1756 (\lambda (t7: T).(\forall (v: T).((tlt v t7) \to (\forall (t8: T).((pr0 v t8) 
1757 \to (\forall (t9: T).((pr0 v t9) \to (ex2 T (\lambda (t10: T).(pr0 t8 t10)) 
1758 (\lambda (t10: T).(pr0 t9 t10)))))))))) H (THead (Flat Appl) v0 (THead (Bind 
1759 Abst) u t5)) H15) in (let H29 \def (eq_ind T v1 (\lambda (t7: T).(pr0 t7 v2)) 
1760 H10 v0 H27) in (eq_ind_r B Abst (\lambda (b0: B).(ex2 T (\lambda (t7: T).(pr0 
1761 (THead (Bind b0) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7)) (\lambda 
1762 (t7: T).(pr0 (THead (Bind Abbr) v3 t6) t7)))) (let H30 \def (eq_ind B b 
1763 (\lambda (b0: B).(not (eq B b0 Abst))) H9 Abst H26) in (let H31 \def (match 
1764 (H30 (refl_equal B Abst)) in False return (\lambda (_: False).(ex2 T (\lambda 
1765 (t7: T).(pr0 (THead (Bind Abst) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) 
1766 t7)) (\lambda (t7: T).(pr0 (THead (Bind Abbr) v3 t6) t7)))) with []) in H31)) 
1767 b H26))))))) H23)) H22)) H21))))) t2 H17)) t H15 H16 H13 H14))) | 
1768 (pr0_upsilon b0 H13 v0 v3 H14 u0 u3 H15 t5 t6 H16) \Rightarrow (\lambda (H17: 
1769 (eq T (THead (Flat Appl) v0 (THead (Bind b0) u0 t5)) t)).(\lambda (H18: (eq T 
1770 (THead (Bind b0) u3 (THead (Flat Appl) (lift (S O) O v3) t6)) t2)).(eq_ind T 
1771 (THead (Flat Appl) v0 (THead (Bind b0) u0 t5)) (\lambda (_: T).((eq T (THead 
1772 (Bind b0) u3 (THead (Flat Appl) (lift (S O) O v3) t6)) t2) \to ((not (eq B b0 
1773 Abst)) \to ((pr0 v0 v3) \to ((pr0 u0 u3) \to ((pr0 t5 t6) \to (ex2 T (\lambda 
1774 (t8: T).(pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) 
1775 t8)) (\lambda (t8: T).(pr0 t2 t8))))))))) (\lambda (H19: (eq T (THead (Bind 
1776 b0) u3 (THead (Flat Appl) (lift (S O) O v3) t6)) t2)).(eq_ind T (THead (Bind 
1777 b0) u3 (THead (Flat Appl) (lift (S O) O v3) t6)) (\lambda (t7: T).((not (eq B 
1778 b0 Abst)) \to ((pr0 v0 v3) \to ((pr0 u0 u3) \to ((pr0 t5 t6) \to (ex2 T 
1779 (\lambda (t8: T).(pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) 
1780 t4)) t8)) (\lambda (t8: T).(pr0 t7 t8)))))))) (\lambda (_: (not (eq B b0 
1781 Abst))).(\lambda (H21: (pr0 v0 v3)).(\lambda (H22: (pr0 u0 u3)).(\lambda 
1782 (H23: (pr0 t5 t6)).(let H24 \def (eq_ind_r T t (\lambda (t7: T).(eq T (THead 
1783 (Flat Appl) v1 (THead (Bind b) u1 t3)) t7)) H6 (THead (Flat Appl) v0 (THead 
1784 (Bind b0) u0 t5)) H17) in (let H25 \def (f_equal T T (\lambda (e: T).(match e 
1785 in T return (\lambda (_: T).T) with [(TSort _) \Rightarrow v1 | (TLRef _) 
1786 \Rightarrow v1 | (THead _ t7 _) \Rightarrow t7])) (THead (Flat Appl) v1 
1787 (THead (Bind b) u1 t3)) (THead (Flat Appl) v0 (THead (Bind b0) u0 t5)) H24) 
1788 in ((let H26 \def (f_equal T B (\lambda (e: T).(match e in T return (\lambda 
1789 (_: T).B) with [(TSort _) \Rightarrow b | (TLRef _) \Rightarrow b | (THead _ 
1790 _ t7) \Rightarrow (match t7 in T return (\lambda (_: T).B) with [(TSort _) 
1791 \Rightarrow b | (TLRef _) \Rightarrow b | (THead k _ _) \Rightarrow (match k 
1792 in K return (\lambda (_: K).B) with [(Bind b1) \Rightarrow b1 | (Flat _) 
1793 \Rightarrow b])])])) (THead (Flat Appl) v1 (THead (Bind b) u1 t3)) (THead 
1794 (Flat Appl) v0 (THead (Bind b0) u0 t5)) H24) in ((let H27 \def (f_equal T T 
1795 (\lambda (e: T).(match e in T return (\lambda (_: T).T) with [(TSort _) 
1796 \Rightarrow u1 | (TLRef _) \Rightarrow u1 | (THead _ _ t7) \Rightarrow (match 
1797 t7 in T return (\lambda (_: T).T) with [(TSort _) \Rightarrow u1 | (TLRef _) 
1798 \Rightarrow u1 | (THead _ t8 _) \Rightarrow t8])])) (THead (Flat Appl) v1 
1799 (THead (Bind b) u1 t3)) (THead (Flat Appl) v0 (THead (Bind b0) u0 t5)) H24) 
1800 in ((let H28 \def (f_equal T T (\lambda (e: T).(match e in T return (\lambda 
1801 (_: T).T) with [(TSort _) \Rightarrow t3 | (TLRef _) \Rightarrow t3 | (THead 
1802 _ _ t7) \Rightarrow (match t7 in T return (\lambda (_: T).T) with [(TSort _) 
1803 \Rightarrow t3 | (TLRef _) \Rightarrow t3 | (THead _ _ t8) \Rightarrow 
1804 t8])])) (THead (Flat Appl) v1 (THead (Bind b) u1 t3)) (THead (Flat Appl) v0 
1805 (THead (Bind b0) u0 t5)) H24) in (\lambda (H29: (eq T u1 u0)).(\lambda (H30: 
1806 (eq B b b0)).(\lambda (H31: (eq T v1 v0)).(let H32 \def (eq_ind_r T t 
1807 (\lambda (t7: T).(\forall (v: T).((tlt v t7) \to (\forall (t8: T).((pr0 v t8) 
1808 \to (\forall (t9: T).((pr0 v t9) \to (ex2 T (\lambda (t10: T).(pr0 t8 t10)) 
1809 (\lambda (t10: T).(pr0 t9 t10)))))))))) H (THead (Flat Appl) v0 (THead (Bind 
1810 b0) u0 t5)) H17) in (let H33 \def (eq_ind T v1 (\lambda (t7: T).(pr0 t7 v2)) 
1811 H10 v0 H31) in (eq_ind_r B b0 (\lambda (b1: B).(ex2 T (\lambda (t7: T).(pr0 
1812 (THead (Bind b1) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7)) (\lambda 
1813 (t7: T).(pr0 (THead (Bind b0) u3 (THead (Flat Appl) (lift (S O) O v3) t6)) 
1814 t7)))) (let H34 \def (eq_ind B b (\lambda (b1: B).(not (eq B b1 Abst))) H9 b0 
1815 H30) in (let H35 \def (eq_ind T u1 (\lambda (t7: T).(pr0 t7 u2)) H11 u0 H29) 
1816 in (let H36 \def (eq_ind T t3 (\lambda (t7: T).(pr0 t7 t4)) H12 t5 H28) in 
1817 (ex2_ind T (\lambda (t7: T).(pr0 t4 t7)) (\lambda (t7: T).(pr0 t6 t7)) (ex2 T 
1818 (\lambda (t7: T).(pr0 (THead (Bind b0) u2 (THead (Flat Appl) (lift (S O) O 
1819 v2) t4)) t7)) (\lambda (t7: T).(pr0 (THead (Bind b0) u3 (THead (Flat Appl) 
1820 (lift (S O) O v3) t6)) t7))) (\lambda (x: T).(\lambda (H37: (pr0 t4 
1821 x)).(\lambda (H38: (pr0 t6 x)).(ex2_ind T (\lambda (t7: T).(pr0 u2 t7)) 
1822 (\lambda (t7: T).(pr0 u3 t7)) (ex2 T (\lambda (t7: T).(pr0 (THead (Bind b0) 
1823 u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7)) (\lambda (t7: T).(pr0 
1824 (THead (Bind b0) u3 (THead (Flat Appl) (lift (S O) O v3) t6)) t7))) (\lambda 
1825 (x0: T).(\lambda (H39: (pr0 u2 x0)).(\lambda (H40: (pr0 u3 x0)).(ex2_ind T 
1826 (\lambda (t7: T).(pr0 v2 t7)) (\lambda (t7: T).(pr0 v3 t7)) (ex2 T (\lambda 
1827 (t7: T).(pr0 (THead (Bind b0) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) 
1828 t7)) (\lambda (t7: T).(pr0 (THead (Bind b0) u3 (THead (Flat Appl) (lift (S O) 
1829 O v3) t6)) t7))) (\lambda (x1: T).(\lambda (H41: (pr0 v2 x1)).(\lambda (H42: 
1830 (pr0 v3 x1)).(pr0_confluence__pr0_upsilon_upsilon b0 H34 v2 v3 x1 H41 H42 u2 
1831 u3 x0 H39 H40 t4 t6 x H37 H38)))) (H32 v0 (tlt_head_sx (Flat Appl) v0 (THead 
1832 (Bind b0) u0 t5)) v2 H33 v3 H21))))) (H32 u0 (tlt_trans (THead (Bind b0) u0 
1833 t5) u0 (THead (Flat Appl) v0 (THead (Bind b0) u0 t5)) (tlt_head_sx (Bind b0) 
1834 u0 t5) (tlt_head_dx (Flat Appl) v0 (THead (Bind b0) u0 t5))) u2 H35 u3 
1835 H22))))) (H32 t5 (tlt_trans (THead (Bind b0) u0 t5) t5 (THead (Flat Appl) v0 
1836 (THead (Bind b0) u0 t5)) (tlt_head_dx (Bind b0) u0 t5) (tlt_head_dx (Flat 
1837 Appl) v0 (THead (Bind b0) u0 t5))) t4 H36 t6 H23))))) b H30))))))) H27)) 
1838 H26)) H25))))))) t2 H19)) t H17 H18 H13 H14 H15 H16))) | (pr0_delta u0 u3 H13 
1839 t5 t6 H14 w H15) \Rightarrow (\lambda (H16: (eq T (THead (Bind Abbr) u0 t5) 
1840 t)).(\lambda (H17: (eq T (THead (Bind Abbr) u3 w) t2)).(eq_ind T (THead (Bind 
1841 Abbr) u0 t5) (\lambda (_: T).((eq T (THead (Bind Abbr) u3 w) t2) \to ((pr0 u0 
1842 u3) \to ((pr0 t5 t6) \to ((subst0 O u3 t6 w) \to (ex2 T (\lambda (t8: T).(pr0 
1843 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t8)) (\lambda 
1844 (t8: T).(pr0 t2 t8)))))))) (\lambda (H18: (eq T (THead (Bind Abbr) u3 w) 
1845 t2)).(eq_ind T (THead (Bind Abbr) u3 w) (\lambda (t7: T).((pr0 u0 u3) \to 
1846 ((pr0 t5 t6) \to ((subst0 O u3 t6 w) \to (ex2 T (\lambda (t8: T).(pr0 (THead 
1847 (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t8)) (\lambda (t8: 
1848 T).(pr0 t7 t8))))))) (\lambda (_: (pr0 u0 u3)).(\lambda (_: (pr0 t5 
1849 t6)).(\lambda (_: (subst0 O u3 t6 w)).(let H22 \def (eq_ind_r T t (\lambda 
1850 (t7: T).(eq T (THead (Flat Appl) v1 (THead (Bind b) u1 t3)) t7)) H6 (THead 
1851 (Bind Abbr) u0 t5) H16) in (let H23 \def (eq_ind T (THead (Flat Appl) v1 
1852 (THead (Bind b) u1 t3)) (\lambda (ee: T).(match ee in T return (\lambda (_: 
1853 T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | 
1854 (THead k _ _) \Rightarrow (match k in K return (\lambda (_: K).Prop) with 
1855 [(Bind _) \Rightarrow False | (Flat _) \Rightarrow True])])) I (THead (Bind 
1856 Abbr) u0 t5) H22) in (False_ind (ex2 T (\lambda (t7: T).(pr0 (THead (Bind b) 
1857 u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t7)) (\lambda (t7: T).(pr0 
1858 (THead (Bind Abbr) u3 w) t7))) H23)))))) t2 H18)) t H16 H17 H13 H14 H15))) | 
1859 (pr0_zeta b0 H13 t5 t6 H14 u) \Rightarrow (\lambda (H15: (eq T (THead (Bind 
1860 b0) u (lift (S O) O t5)) t)).(\lambda (H16: (eq T t6 t2)).(eq_ind T (THead 
1861 (Bind b0) u (lift (S O) O t5)) (\lambda (_: T).((eq T t6 t2) \to ((not (eq B 
1862 b0 Abst)) \to ((pr0 t5 t6) \to (ex2 T (\lambda (t8: T).(pr0 (THead (Bind b) 
1863 u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t8)) (\lambda (t8: T).(pr0 t2 
1864 t8))))))) (\lambda (H17: (eq T t6 t2)).(eq_ind T t2 (\lambda (t7: T).((not 
1865 (eq B b0 Abst)) \to ((pr0 t5 t7) \to (ex2 T (\lambda (t8: T).(pr0 (THead 
1866 (Bind b) u2 (THead (Flat Appl) (lift (S O) O v2) t4)) t8)) (\lambda (t8: 
1867 T).(pr0 t2 t8)))))) (\lambda (_: (not (eq B b0 Abst))).(\lambda (_: (pr0 t5 
1868 t2)).(let H20 \def (eq_ind_r T t (\lambda (t7: T).(eq T (THead (Flat Appl) v1 
1869 (THead (Bind b) u1 t3)) t7)) H6 (THead (Bind b0) u (lift (S O) O t5)) H15) in 
1870 (let H21 \def (eq_ind T (THead (Flat Appl) v1 (THead (Bind b) u1 t3)) 
1871 (\lambda (ee: T).(match ee in T return (\lambda (_: T).Prop) with [(TSort _) 
1872 \Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow 
1873 (match k in K return (\lambda (_: K).Prop) with [(Bind _) \Rightarrow False | 
1874 (Flat _) \Rightarrow True])])) I (THead (Bind b0) u (lift (S O) O t5)) H20) 
1875 in (False_ind (ex2 T (\lambda (t7: T).(pr0 (THead (Bind b) u2 (THead (Flat 
1876 Appl) (lift (S O) O v2) t4)) t7)) (\lambda (t7: T).(pr0 t2 t7))) H21))))) t6 
1877 (sym_eq T t6 t2 H17))) t H15 H16 H13 H14))) | (pr0_tau t5 t6 H13 u) 
1878 \Rightarrow (\lambda (H14: (eq T (THead (Flat Cast) u t5) t)).(\lambda (H15: 
1879 (eq T t6 t2)).(eq_ind T (THead (Flat Cast) u t5) (\lambda (_: T).((eq T t6 
1880 t2) \to ((pr0 t5 t6) \to (ex2 T (\lambda (t8: T).(pr0 (THead (Bind b) u2 
1881 (THead (Flat Appl) (lift (S O) O v2) t4)) t8)) (\lambda (t8: T).(pr0 t2 
1882 t8)))))) (\lambda (H16: (eq T t6 t2)).(eq_ind T t2 (\lambda (t7: T).((pr0 t5 
1883 t7) \to (ex2 T (\lambda (t8: T).(pr0 (THead (Bind b) u2 (THead (Flat Appl) 
1884 (lift (S O) O v2) t4)) t8)) (\lambda (t8: T).(pr0 t2 t8))))) (\lambda (_: 
1885 (pr0 t5 t2)).(let H18 \def (eq_ind_r T t (\lambda (t7: T).(eq T (THead (Flat 
1886 Appl) v1 (THead (Bind b) u1 t3)) t7)) H6 (THead (Flat Cast) u t5) H14) in 
1887 (let H19 \def (eq_ind T (THead (Flat Appl) v1 (THead (Bind b) u1 t3)) 
1888 (\lambda (ee: T).(match ee in T return (\lambda (_: T).Prop) with [(TSort _) 
1889 \Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow 
1890 (match k in K return (\lambda (_: K).Prop) with [(Bind _) \Rightarrow False | 
1891 (Flat f) \Rightarrow (match f in F return (\lambda (_: F).Prop) with [Appl 
1892 \Rightarrow True | Cast \Rightarrow False])])])) I (THead (Flat Cast) u t5) 
1893 H18) in (False_ind (ex2 T (\lambda (t7: T).(pr0 (THead (Bind b) u2 (THead 
1894 (Flat Appl) (lift (S O) O v2) t4)) t7)) (\lambda (t7: T).(pr0 t2 t7))) 
1895 H19)))) t6 (sym_eq T t6 t2 H16))) t H14 H15 H13)))]) in (H13 (refl_equal T t) 
1896 (refl_equal T t2))))))) t1 H8)) t H6 H7 H2 H3 H4 H5))) | (pr0_delta u1 u2 H2 
1897 t3 t4 H3 w H4) \Rightarrow (\lambda (H5: (eq T (THead (Bind Abbr) u1 t3) 
1898 t)).(\lambda (H6: (eq T (THead (Bind Abbr) u2 w) t1)).(eq_ind T (THead (Bind 
1899 Abbr) u1 t3) (\lambda (_: T).((eq T (THead (Bind Abbr) u2 w) t1) \to ((pr0 u1 
1900 u2) \to ((pr0 t3 t4) \to ((subst0 O u2 t4 w) \to (ex2 T (\lambda (t6: T).(pr0 
1901 t1 t6)) (\lambda (t6: T).(pr0 t2 t6)))))))) (\lambda (H7: (eq T (THead (Bind 
1902 Abbr) u2 w) t1)).(eq_ind T (THead (Bind Abbr) u2 w) (\lambda (t5: T).((pr0 u1 
1903 u2) \to ((pr0 t3 t4) \to ((subst0 O u2 t4 w) \to (ex2 T (\lambda (t6: T).(pr0 
1904 t5 t6)) (\lambda (t6: T).(pr0 t2 t6))))))) (\lambda (H8: (pr0 u1 
1905 u2)).(\lambda (H9: (pr0 t3 t4)).(\lambda (H10: (subst0 O u2 t4 w)).(let H11 
1906 \def (match H1 in pr0 return (\lambda (t5: T).(\lambda (t6: T).(\lambda (_: 
1907 (pr0 t5 t6)).((eq T t5 t) \to ((eq T t6 t2) \to (ex2 T (\lambda (t7: T).(pr0 
1908 (THead (Bind Abbr) u2 w) t7)) (\lambda (t7: T).(pr0 t2 t7)))))))) with 
1909 [(pr0_refl t5) \Rightarrow (\lambda (H11: (eq T t5 t)).(\lambda (H12: (eq T 
1910 t5 t2)).(eq_ind T t (\lambda (t6: T).((eq T t6 t2) \to (ex2 T (\lambda (t7: 
1911 T).(pr0 (THead (Bind Abbr) u2 w) t7)) (\lambda (t7: T).(pr0 t2 t7))))) 
1912 (\lambda (H13: (eq T t t2)).(eq_ind T t2 (\lambda (_: T).(ex2 T (\lambda (t7: 
1913 T).(pr0 (THead (Bind Abbr) u2 w) t7)) (\lambda (t7: T).(pr0 t2 t7)))) (let 
1914 H14 \def (eq_ind_r T t (\lambda (t6: T).(eq T t6 t2)) H13 (THead (Bind Abbr) 
1915 u1 t3) H5) in (eq_ind T (THead (Bind Abbr) u1 t3) (\lambda (t6: T).(ex2 T 
1916 (\lambda (t7: T).(pr0 (THead (Bind Abbr) u2 w) t7)) (\lambda (t7: T).(pr0 t6 
1917 t7)))) (let H15 \def (eq_ind_r T t (\lambda (t6: T).(eq T t5 t6)) H11 (THead 
1918 (Bind Abbr) u1 t3) H5) in (let H16 \def (eq_ind_r T t (\lambda (t6: 
1919 T).(\forall (v: T).((tlt v t6) \to (\forall (t7: T).((pr0 v t7) \to (\forall 
1920 (t8: T).((pr0 v t8) \to (ex2 T (\lambda (t9: T).(pr0 t7 t9)) (\lambda (t9: 
1921 T).(pr0 t8 t9)))))))))) H (THead (Bind Abbr) u1 t3) H5) in (ex_intro2 T 
1922 (\lambda (t6: T).(pr0 (THead (Bind Abbr) u2 w) t6)) (\lambda (t6: T).(pr0 
1923 (THead (Bind Abbr) u1 t3) t6)) (THead (Bind Abbr) u2 w) (pr0_refl (THead 
1924 (Bind Abbr) u2 w)) (pr0_delta u1 u2 H8 t3 t4 H9 w H10)))) t2 H14)) t (sym_eq 
1925 T t t2 H13))) t5 (sym_eq T t5 t H11) H12))) | (pr0_comp u0 u3 H11 t5 t6 H12 
1926 k) \Rightarrow (\lambda (H13: (eq T (THead k u0 t5) t)).(\lambda (H14: (eq T 
1927 (THead k u3 t6) t2)).(eq_ind T (THead k u0 t5) (\lambda (_: T).((eq T (THead 
1928 k u3 t6) t2) \to ((pr0 u0 u3) \to ((pr0 t5 t6) \to (ex2 T (\lambda (t8: 
1929 T).(pr0 (THead (Bind Abbr) u2 w) t8)) (\lambda (t8: T).(pr0 t2 t8))))))) 
1930 (\lambda (H15: (eq T (THead k u3 t6) t2)).(eq_ind T (THead k u3 t6) (\lambda 
1931 (t7: T).((pr0 u0 u3) \to ((pr0 t5 t6) \to (ex2 T (\lambda (t8: T).(pr0 (THead 
1932 (Bind Abbr) u2 w) t8)) (\lambda (t8: T).(pr0 t7 t8)))))) (\lambda (H16: (pr0 
1933 u0 u3)).(\lambda (H17: (pr0 t5 t6)).(let H18 \def (eq_ind_r T t (\lambda (t7: 
1934 T).(eq T (THead (Bind Abbr) u1 t3) t7)) H5 (THead k u0 t5) H13) in (let H19 
1935 \def (f_equal T K (\lambda (e: T).(match e in T return (\lambda (_: T).K) 
1936 with [(TSort _) \Rightarrow (Bind Abbr) | (TLRef _) \Rightarrow (Bind Abbr) | 
1937 (THead k0 _ _) \Rightarrow k0])) (THead (Bind Abbr) u1 t3) (THead k u0 t5) 
1938 H18) in ((let H20 \def (f_equal T T (\lambda (e: T).(match e in T return 
1939 (\lambda (_: T).T) with [(TSort _) \Rightarrow u1 | (TLRef _) \Rightarrow u1 
1940 | (THead _ t7 _) \Rightarrow t7])) (THead (Bind Abbr) u1 t3) (THead k u0 t5) 
1941 H18) in ((let H21 \def (f_equal T T (\lambda (e: T).(match e in T return 
1942 (\lambda (_: T).T) with [(TSort _) \Rightarrow t3 | (TLRef _) \Rightarrow t3 
1943 | (THead _ _ t7) \Rightarrow t7])) (THead (Bind Abbr) u1 t3) (THead k u0 t5) 
1944 H18) in (\lambda (H22: (eq T u1 u0)).(\lambda (H23: (eq K (Bind Abbr) 
1945 k)).(eq_ind K (Bind Abbr) (\lambda (k0: K).(ex2 T (\lambda (t7: T).(pr0 
1946 (THead (Bind Abbr) u2 w) t7)) (\lambda (t7: T).(pr0 (THead k0 u3 t6) t7)))) 
1947 (let H24 \def (eq_ind_r K k (\lambda (k0: K).(eq T (THead k0 u0 t5) t)) H13 
1948 (Bind Abbr) H23) in (let H25 \def (eq_ind_r T t (\lambda (t7: T).(\forall (v: 
1949 T).((tlt v t7) \to (\forall (t8: T).((pr0 v t8) \to (\forall (t9: T).((pr0 v 
1950 t9) \to (ex2 T (\lambda (t10: T).(pr0 t8 t10)) (\lambda (t10: T).(pr0 t9 
1951 t10)))))))))) H (THead (Bind Abbr) u0 t5) H24) in (let H26 \def (eq_ind T u1 
1952 (\lambda (t7: T).(pr0 t7 u2)) H8 u0 H22) in (let H27 \def (eq_ind T t3 
1953 (\lambda (t7: T).(pr0 t7 t4)) H9 t5 H21) in (ex2_ind T (\lambda (t7: T).(pr0 
1954 t4 t7)) (\lambda (t7: T).(pr0 t6 t7)) (ex2 T (\lambda (t7: T).(pr0 (THead 
1955 (Bind Abbr) u2 w) t7)) (\lambda (t7: T).(pr0 (THead (Bind Abbr) u3 t6) t7))) 
1956 (\lambda (x: T).(\lambda (H28: (pr0 t4 x)).(\lambda (H29: (pr0 t6 
1957 x)).(ex2_ind T (\lambda (t7: T).(pr0 u2 t7)) (\lambda (t7: T).(pr0 u3 t7)) 
1958 (ex2 T (\lambda (t7: T).(pr0 (THead (Bind Abbr) u2 w) t7)) (\lambda (t7: 
1959 T).(pr0 (THead (Bind Abbr) u3 t6) t7))) (\lambda (x0: T).(\lambda (H30: (pr0 
1960 u2 x0)).(\lambda (H31: (pr0 u3 x0)).(ex2_sym T (pr0 (THead (Bind Abbr) u3 
1961 t6)) (pr0 (THead (Bind Abbr) u2 w)) (pr0_confluence__pr0_cong_delta u2 t4 w 
1962 H10 u3 x0 H31 H30 t6 x H29 H28))))) (H25 u0 (tlt_head_sx (Bind Abbr) u0 t5) 
1963 u2 H26 u3 H16))))) (H25 t5 (tlt_head_dx (Bind Abbr) u0 t5) t4 H27 t6 
1964 H17)))))) k H23)))) H20)) H19))))) t2 H15)) t H13 H14 H11 H12))) | (pr0_beta 
1965 u v1 v2 H11 t5 t6 H12) \Rightarrow (\lambda (H13: (eq T (THead (Flat Appl) v1 
1966 (THead (Bind Abst) u t5)) t)).(\lambda (H14: (eq T (THead (Bind Abbr) v2 t6) 
1967 t2)).(eq_ind T (THead (Flat Appl) v1 (THead (Bind Abst) u t5)) (\lambda (_: 
1968 T).((eq T (THead (Bind Abbr) v2 t6) t2) \to ((pr0 v1 v2) \to ((pr0 t5 t6) \to 
1969 (ex2 T (\lambda (t8: T).(pr0 (THead (Bind Abbr) u2 w) t8)) (\lambda (t8: 
1970 T).(pr0 t2 t8))))))) (\lambda (H15: (eq T (THead (Bind Abbr) v2 t6) 
1971 t2)).(eq_ind T (THead (Bind Abbr) v2 t6) (\lambda (t7: T).((pr0 v1 v2) \to 
1972 ((pr0 t5 t6) \to (ex2 T (\lambda (t8: T).(pr0 (THead (Bind Abbr) u2 w) t8)) 
1973 (\lambda (t8: T).(pr0 t7 t8)))))) (\lambda (_: (pr0 v1 v2)).(\lambda (_: (pr0 
1974 t5 t6)).(let H18 \def (eq_ind_r T t (\lambda (t7: T).(eq T (THead (Bind Abbr) 
1975 u1 t3) t7)) H5 (THead (Flat Appl) v1 (THead (Bind Abst) u t5)) H13) in (let 
1976 H19 \def (eq_ind T (THead (Bind Abbr) u1 t3) (\lambda (ee: T).(match ee in T 
1977 return (\lambda (_: T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) 
1978 \Rightarrow False | (THead k _ _) \Rightarrow (match k in K return (\lambda 
1979 (_: K).Prop) with [(Bind _) \Rightarrow True | (Flat _) \Rightarrow 
1980 False])])) I (THead (Flat Appl) v1 (THead (Bind Abst) u t5)) H18) in 
1981 (False_ind (ex2 T (\lambda (t7: T).(pr0 (THead (Bind Abbr) u2 w) t7)) 
1982 (\lambda (t7: T).(pr0 (THead (Bind Abbr) v2 t6) t7))) H19))))) t2 H15)) t H13 
1983 H14 H11 H12))) | (pr0_upsilon b H11 v1 v2 H12 u0 u3 H13 t5 t6 H14) 
1984 \Rightarrow (\lambda (H15: (eq T (THead (Flat Appl) v1 (THead (Bind b) u0 
1985 t5)) t)).(\lambda (H16: (eq T (THead (Bind b) u3 (THead (Flat Appl) (lift (S 
1986 O) O v2) t6)) t2)).(eq_ind T (THead (Flat Appl) v1 (THead (Bind b) u0 t5)) 
1987 (\lambda (_: T).((eq T (THead (Bind b) u3 (THead (Flat Appl) (lift (S O) O 
1988 v2) t6)) t2) \to ((not (eq B b Abst)) \to ((pr0 v1 v2) \to ((pr0 u0 u3) \to 
1989 ((pr0 t5 t6) \to (ex2 T (\lambda (t8: T).(pr0 (THead (Bind Abbr) u2 w) t8)) 
1990 (\lambda (t8: T).(pr0 t2 t8))))))))) (\lambda (H17: (eq T (THead (Bind b) u3 
1991 (THead (Flat Appl) (lift (S O) O v2) t6)) t2)).(eq_ind T (THead (Bind b) u3 
1992 (THead (Flat Appl) (lift (S O) O v2) t6)) (\lambda (t7: T).((not (eq B b 
1993 Abst)) \to ((pr0 v1 v2) \to ((pr0 u0 u3) \to ((pr0 t5 t6) \to (ex2 T (\lambda 
1994 (t8: T).(pr0 (THead (Bind Abbr) u2 w) t8)) (\lambda (t8: T).(pr0 t7 
1995 t8)))))))) (\lambda (_: (not (eq B b Abst))).(\lambda (_: (pr0 v1 
1996 v2)).(\lambda (_: (pr0 u0 u3)).(\lambda (_: (pr0 t5 t6)).(let H22 \def 
1997 (eq_ind_r T t (\lambda (t7: T).(eq T (THead (Bind Abbr) u1 t3) t7)) H5 (THead 
1998 (Flat Appl) v1 (THead (Bind b) u0 t5)) H15) in (let H23 \def (eq_ind T (THead 
1999 (Bind Abbr) u1 t3) (\lambda (ee: T).(match ee in T return (\lambda (_: 
2000 T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | 
2001 (THead k _ _) \Rightarrow (match k in K return (\lambda (_: K).Prop) with 
2002 [(Bind _) \Rightarrow True | (Flat _) \Rightarrow False])])) I (THead (Flat 
2003 Appl) v1 (THead (Bind b) u0 t5)) H22) in (False_ind (ex2 T (\lambda (t7: 
2004 T).(pr0 (THead (Bind Abbr) u2 w) t7)) (\lambda (t7: T).(pr0 (THead (Bind b) 
2005 u3 (THead (Flat Appl) (lift (S O) O v2) t6)) t7))) H23))))))) t2 H17)) t H15 
2006 H16 H11 H12 H13 H14))) | (pr0_delta u0 u3 H11 t5 t6 H12 w0 H13) \Rightarrow 
2007 (\lambda (H14: (eq T (THead (Bind Abbr) u0 t5) t)).(\lambda (H15: (eq T 
2008 (THead (Bind Abbr) u3 w0) t2)).(eq_ind T (THead (Bind Abbr) u0 t5) (\lambda 
2009 (_: T).((eq T (THead (Bind Abbr) u3 w0) t2) \to ((pr0 u0 u3) \to ((pr0 t5 t6) 
2010 \to ((subst0 O u3 t6 w0) \to (ex2 T (\lambda (t8: T).(pr0 (THead (Bind Abbr) 
2011 u2 w) t8)) (\lambda (t8: T).(pr0 t2 t8)))))))) (\lambda (H16: (eq T (THead 
2012 (Bind Abbr) u3 w0) t2)).(eq_ind T (THead (Bind Abbr) u3 w0) (\lambda (t7: 
2013 T).((pr0 u0 u3) \to ((pr0 t5 t6) \to ((subst0 O u3 t6 w0) \to (ex2 T (\lambda 
2014 (t8: T).(pr0 (THead (Bind Abbr) u2 w) t8)) (\lambda (t8: T).(pr0 t7 t8))))))) 
2015 (\lambda (H17: (pr0 u0 u3)).(\lambda (H18: (pr0 t5 t6)).(\lambda (H19: 
2016 (subst0 O u3 t6 w0)).(let H20 \def (eq_ind_r T t (\lambda (t7: T).(eq T 
2017 (THead (Bind Abbr) u1 t3) t7)) H5 (THead (Bind Abbr) u0 t5) H14) in (let H21 
2018 \def (f_equal T T (\lambda (e: T).(match e in T return (\lambda (_: T).T) 
2019 with [(TSort _) \Rightarrow u1 | (TLRef _) \Rightarrow u1 | (THead _ t7 _) 
2020 \Rightarrow t7])) (THead (Bind Abbr) u1 t3) (THead (Bind Abbr) u0 t5) H20) in 
2021 ((let H22 \def (f_equal T T (\lambda (e: T).(match e in T return (\lambda (_: 
2022 T).T) with [(TSort _) \Rightarrow t3 | (TLRef _) \Rightarrow t3 | (THead _ _ 
2023 t7) \Rightarrow t7])) (THead (Bind Abbr) u1 t3) (THead (Bind Abbr) u0 t5) 
2024 H20) in (\lambda (H23: (eq T u1 u0)).(let H24 \def (eq_ind_r T t (\lambda 
2025 (t7: T).(\forall (v: T).((tlt v t7) \to (\forall (t8: T).((pr0 v t8) \to 
2026 (\forall (t9: T).((pr0 v t9) \to (ex2 T (\lambda (t10: T).(pr0 t8 t10)) 
2027 (\lambda (t10: T).(pr0 t9 t10)))))))))) H (THead (Bind Abbr) u0 t5) H14) in 
2028 (let H25 \def (eq_ind T u1 (\lambda (t7: T).(pr0 t7 u2)) H8 u0 H23) in (let 
2029 H26 \def (eq_ind T t3 (\lambda (t7: T).(pr0 t7 t4)) H9 t5 H22) in (ex2_ind T 
2030 (\lambda (t7: T).(pr0 t4 t7)) (\lambda (t7: T).(pr0 t6 t7)) (ex2 T (\lambda 
2031 (t7: T).(pr0 (THead (Bind Abbr) u2 w) t7)) (\lambda (t7: T).(pr0 (THead (Bind 
2032 Abbr) u3 w0) t7))) (\lambda (x: T).(\lambda (H27: (pr0 t4 x)).(\lambda (H28: 
2033 (pr0 t6 x)).(ex2_ind T (\lambda (t7: T).(pr0 u2 t7)) (\lambda (t7: T).(pr0 u3 
2034 t7)) (ex2 T (\lambda (t7: T).(pr0 (THead (Bind Abbr) u2 w) t7)) (\lambda (t7: 
2035 T).(pr0 (THead (Bind Abbr) u3 w0) t7))) (\lambda (x0: T).(\lambda (H29: (pr0 
2036 u2 x0)).(\lambda (H30: (pr0 u3 x0)).(pr0_confluence__pr0_delta_delta u2 t4 w 
2037 H10 u3 t6 w0 H19 x0 H29 H30 x H27 H28)))) (H24 u0 (tlt_head_sx (Bind Abbr) u0 
2038 t5) u2 H25 u3 H17))))) (H24 t5 (tlt_head_dx (Bind Abbr) u0 t5) t4 H26 t6 
2039 H18))))))) H21)))))) t2 H16)) t H14 H15 H11 H12 H13))) | (pr0_zeta b H11 t5 
2040 t6 H12 u) \Rightarrow (\lambda (H13: (eq T (THead (Bind b) u (lift (S O) O 
2041 t5)) t)).(\lambda (H14: (eq T t6 t2)).(eq_ind T (THead (Bind b) u (lift (S O) 
2042 O t5)) (\lambda (_: T).((eq T t6 t2) \to ((not (eq B b Abst)) \to ((pr0 t5 
2043 t6) \to (ex2 T (\lambda (t8: T).(pr0 (THead (Bind Abbr) u2 w) t8)) (\lambda 
2044 (t8: T).(pr0 t2 t8))))))) (\lambda (H15: (eq T t6 t2)).(eq_ind T t2 (\lambda 
2045 (t7: T).((not (eq B b Abst)) \to ((pr0 t5 t7) \to (ex2 T (\lambda (t8: 
2046 T).(pr0 (THead (Bind Abbr) u2 w) t8)) (\lambda (t8: T).(pr0 t2 t8)))))) 
2047 (\lambda (H16: (not (eq B b Abst))).(\lambda (H17: (pr0 t5 t2)).(let H18 \def 
2048 (eq_ind_r T t (\lambda (t7: T).(eq T (THead (Bind Abbr) u1 t3) t7)) H5 (THead 
2049 (Bind b) u (lift (S O) O t5)) H13) in (let H19 \def (f_equal T B (\lambda (e: 
2050 T).(match e in T return (\lambda (_: T).B) with [(TSort _) \Rightarrow Abbr | 
2051 (TLRef _) \Rightarrow Abbr | (THead k _ _) \Rightarrow (match k in K return 
2052 (\lambda (_: K).B) with [(Bind b0) \Rightarrow b0 | (Flat _) \Rightarrow 
2053 Abbr])])) (THead (Bind Abbr) u1 t3) (THead (Bind b) u (lift (S O) O t5)) H18) 
2054 in ((let H20 \def (f_equal T T (\lambda (e: T).(match e in T return (\lambda 
2055 (_: T).T) with [(TSort _) \Rightarrow u1 | (TLRef _) \Rightarrow u1 | (THead 
2056 _ t7 _) \Rightarrow t7])) (THead (Bind Abbr) u1 t3) (THead (Bind b) u (lift 
2057 (S O) O t5)) H18) in ((let H21 \def (f_equal T T (\lambda (e: T).(match e in 
2058 T return (\lambda (_: T).T) with [(TSort _) \Rightarrow t3 | (TLRef _) 
2059 \Rightarrow t3 | (THead _ _ t7) \Rightarrow t7])) (THead (Bind Abbr) u1 t3) 
2060 (THead (Bind b) u (lift (S O) O t5)) H18) in (\lambda (H22: (eq T u1 
2061 u)).(\lambda (H23: (eq B Abbr b)).(let H24 \def (eq_ind_r B b (\lambda (b0: 
2062 B).(not (eq B b0 Abst))) H16 Abbr H23) in (let H25 \def (eq_ind_r B b 
2063 (\lambda (b0: B).(eq T (THead (Bind b0) u (lift (S O) O t5)) t)) H13 Abbr 
2064 H23) in (let H26 \def (eq_ind_r T t (\lambda (t7: T).(\forall (v: T).((tlt v 
2065 t7) \to (\forall (t8: T).((pr0 v t8) \to (\forall (t9: T).((pr0 v t9) \to 
2066 (ex2 T (\lambda (t10: T).(pr0 t8 t10)) (\lambda (t10: T).(pr0 t9 
2067 t10)))))))))) H (THead (Bind Abbr) u (lift (S O) O t5)) H25) in (let H27 \def 
2068 (eq_ind T u1 (\lambda (t7: T).(pr0 t7 u2)) H8 u H22) in (let H28 \def (eq_ind 
2069 T t3 (\lambda (t7: T).(pr0 t7 t4)) H9 (lift (S O) O t5) H21) in (ex2_ind T 
2070 (\lambda (t7: T).(eq T t4 (lift (S O) O t7))) (\lambda (t7: T).(pr0 t5 t7)) 
2071 (ex2 T (\lambda (t7: T).(pr0 (THead (Bind Abbr) u2 w) t7)) (\lambda (t7: 
2072 T).(pr0 t2 t7))) (\lambda (x: T).(\lambda (H29: (eq T t4 (lift (S O) O 
2073 x))).(\lambda (H30: (pr0 t5 x)).(let H31 \def (eq_ind T t4 (\lambda (t7: 
2074 T).(subst0 O u2 t7 w)) H10 (lift (S O) O x) H29) in (ex2_ind T (\lambda (t7: 
2075 T).(pr0 x t7)) (\lambda (t7: T).(pr0 t2 t7)) (ex2 T (\lambda (t7: T).(pr0 
2076 (THead (Bind Abbr) u2 w) t7)) (\lambda (t7: T).(pr0 t2 t7))) (\lambda (x0: 
2077 T).(\lambda (_: (pr0 x x0)).(\lambda (_: (pr0 t2 
2078 x0)).(pr0_confluence__pr0_delta_tau u2 (lift (S O) O x) w H31 x (pr0_refl 
2079 (lift (S O) O x)) t2)))) (H26 t5 (lift_tlt_dx (Bind Abbr) u t5 (S O) O) x H30 
2080 t2 H17)))))) (pr0_gen_lift t5 t4 (S O) O H28)))))))))) H20)) H19))))) t6 
2081 (sym_eq T t6 t2 H15))) t H13 H14 H11 H12))) | (pr0_tau t5 t6 H11 u) 
2082 \Rightarrow (\lambda (H12: (eq T (THead (Flat Cast) u t5) t)).(\lambda (H13: 
2083 (eq T t6 t2)).(eq_ind T (THead (Flat Cast) u t5) (\lambda (_: T).((eq T t6 
2084 t2) \to ((pr0 t5 t6) \to (ex2 T (\lambda (t8: T).(pr0 (THead (Bind Abbr) u2 
2085 w) t8)) (\lambda (t8: T).(pr0 t2 t8)))))) (\lambda (H14: (eq T t6 
2086 t2)).(eq_ind T t2 (\lambda (t7: T).((pr0 t5 t7) \to (ex2 T (\lambda (t8: 
2087 T).(pr0 (THead (Bind Abbr) u2 w) t8)) (\lambda (t8: T).(pr0 t2 t8))))) 
2088 (\lambda (_: (pr0 t5 t2)).(let H16 \def (eq_ind_r T t (\lambda (t7: T).(eq T 
2089 (THead (Bind Abbr) u1 t3) t7)) H5 (THead (Flat Cast) u t5) H12) in (let H17 
2090 \def (eq_ind T (THead (Bind Abbr) u1 t3) (\lambda (ee: T).(match ee in T 
2091 return (\lambda (_: T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) 
2092 \Rightarrow False | (THead k _ _) \Rightarrow (match k in K return (\lambda 
2093 (_: K).Prop) with [(Bind _) \Rightarrow True | (Flat _) \Rightarrow 
2094 False])])) I (THead (Flat Cast) u t5) H16) in (False_ind (ex2 T (\lambda (t7: 
2095 T).(pr0 (THead (Bind Abbr) u2 w) t7)) (\lambda (t7: T).(pr0 t2 t7))) H17)))) 
2096 t6 (sym_eq T t6 t2 H14))) t H12 H13 H11)))]) in (H11 (refl_equal T t) 
2097 (refl_equal T t2)))))) t1 H7)) t H5 H6 H2 H3 H4))) | (pr0_zeta b H2 t3 t4 H3 
2098 u) \Rightarrow (\lambda (H4: (eq T (THead (Bind b) u (lift (S O) O t3)) 
2099 t)).(\lambda (H5: (eq T t4 t1)).(eq_ind T (THead (Bind b) u (lift (S O) O 
2100 t3)) (\lambda (_: T).((eq T t4 t1) \to ((not (eq B b Abst)) \to ((pr0 t3 t4) 
2101 \to (ex2 T (\lambda (t6: T).(pr0 t1 t6)) (\lambda (t6: T).(pr0 t2 t6))))))) 
2102 (\lambda (H6: (eq T t4 t1)).(eq_ind T t1 (\lambda (t5: T).((not (eq B b 
2103 Abst)) \to ((pr0 t3 t5) \to (ex2 T (\lambda (t6: T).(pr0 t1 t6)) (\lambda 
2104 (t6: T).(pr0 t2 t6)))))) (\lambda (H7: (not (eq B b Abst))).(\lambda (H8: 
2105 (pr0 t3 t1)).(let H9 \def (match H1 in pr0 return (\lambda (t5: T).(\lambda 
2106 (t6: T).(\lambda (_: (pr0 t5 t6)).((eq T t5 t) \to ((eq T t6 t2) \to (ex2 T 
2107 (\lambda (t7: T).(pr0 t1 t7)) (\lambda (t7: T).(pr0 t2 t7)))))))) with 
2108 [(pr0_refl t5) \Rightarrow (\lambda (H9: (eq T t5 t)).(\lambda (H10: (eq T t5 
2109 t2)).(eq_ind T t (\lambda (t6: T).((eq T t6 t2) \to (ex2 T (\lambda (t7: 
2110 T).(pr0 t1 t7)) (\lambda (t7: T).(pr0 t2 t7))))) (\lambda (H11: (eq T t 
2111 t2)).(eq_ind T t2 (\lambda (_: T).(ex2 T (\lambda (t7: T).(pr0 t1 t7)) 
2112 (\lambda (t7: T).(pr0 t2 t7)))) (let H12 \def (eq_ind_r T t (\lambda (t6: 
2113 T).(eq T t6 t2)) H11 (THead (Bind b) u (lift (S O) O t3)) H4) in (eq_ind T 
2114 (THead (Bind b) u (lift (S O) O t3)) (\lambda (t6: T).(ex2 T (\lambda (t7: 
2115 T).(pr0 t1 t7)) (\lambda (t7: T).(pr0 t6 t7)))) (let H13 \def (eq_ind_r T t 
2116 (\lambda (t6: T).(eq T t5 t6)) H9 (THead (Bind b) u (lift (S O) O t3)) H4) in 
2117 (let H14 \def (eq_ind_r T t (\lambda (t6: T).(\forall (v: T).((tlt v t6) \to 
2118 (\forall (t7: T).((pr0 v t7) \to (\forall (t8: T).((pr0 v t8) \to (ex2 T 
2119 (\lambda (t9: T).(pr0 t7 t9)) (\lambda (t9: T).(pr0 t8 t9)))))))))) H (THead 
2120 (Bind b) u (lift (S O) O t3)) H4) in (ex_intro2 T (\lambda (t6: T).(pr0 t1 
2121 t6)) (\lambda (t6: T).(pr0 (THead (Bind b) u (lift (S O) O t3)) t6)) t1 
2122 (pr0_refl t1) (pr0_zeta b H7 t3 t1 H8 u)))) t2 H12)) t (sym_eq T t t2 H11))) 
2123 t5 (sym_eq T t5 t H9) H10))) | (pr0_comp u1 u2 H9 t5 t6 H10 k) \Rightarrow 
2124 (\lambda (H11: (eq T (THead k u1 t5) t)).(\lambda (H12: (eq T (THead k u2 t6) 
2125 t2)).(eq_ind T (THead k u1 t5) (\lambda (_: T).((eq T (THead k u2 t6) t2) \to 
2126 ((pr0 u1 u2) \to ((pr0 t5 t6) \to (ex2 T (\lambda (t8: T).(pr0 t1 t8)) 
2127 (\lambda (t8: T).(pr0 t2 t8))))))) (\lambda (H13: (eq T (THead k u2 t6) 
2128 t2)).(eq_ind T (THead k u2 t6) (\lambda (t7: T).((pr0 u1 u2) \to ((pr0 t5 t6) 
2129 \to (ex2 T (\lambda (t8: T).(pr0 t1 t8)) (\lambda (t8: T).(pr0 t7 t8)))))) 
2130 (\lambda (_: (pr0 u1 u2)).(\lambda (H15: (pr0 t5 t6)).(let H16 \def (eq_ind_r 
2131 T t (\lambda (t7: T).(eq T (THead (Bind b) u (lift (S O) O t3)) t7)) H4 
2132 (THead k u1 t5) H11) in (let H17 \def (f_equal T K (\lambda (e: T).(match e 
2133 in T return (\lambda (_: T).K) with [(TSort _) \Rightarrow (Bind b) | (TLRef 
2134 _) \Rightarrow (Bind b) | (THead k0 _ _) \Rightarrow k0])) (THead (Bind b) u 
2135 (lift (S O) O t3)) (THead k u1 t5) H16) in ((let H18 \def (f_equal T T 
2136 (\lambda (e: T).(match e in T return (\lambda (_: T).T) with [(TSort _) 
2137 \Rightarrow u | (TLRef _) \Rightarrow u | (THead _ t7 _) \Rightarrow t7])) 
2138 (THead (Bind b) u (lift (S O) O t3)) (THead k u1 t5) H16) in ((let H19 \def 
2139 (f_equal T T (\lambda (e: T).(match e in T return (\lambda (_: T).T) with 
2140 [(TSort _) \Rightarrow ((let rec lref_map (f: ((nat \to nat))) (d: nat) (t7: 
2141 T) on t7: T \def (match t7 with [(TSort n) \Rightarrow (TSort n) | (TLRef i) 
2142 \Rightarrow (TLRef (match (blt i d) with [true \Rightarrow i | false 
2143 \Rightarrow (f i)])) | (THead k0 u0 t8) \Rightarrow (THead k0 (lref_map f d 
2144 u0) (lref_map f (s k0 d) t8))]) in lref_map) (\lambda (x: nat).(plus x (S 
2145 O))) O t3) | (TLRef _) \Rightarrow ((let rec lref_map (f: ((nat \to nat))) 
2146 (d: nat) (t7: T) on t7: T \def (match t7 with [(TSort n) \Rightarrow (TSort 
2147 n) | (TLRef i) \Rightarrow (TLRef (match (blt i d) with [true \Rightarrow i | 
2148 false \Rightarrow (f i)])) | (THead k0 u0 t8) \Rightarrow (THead k0 (lref_map 
2149 f d u0) (lref_map f (s k0 d) t8))]) in lref_map) (\lambda (x: nat).(plus x (S 
2150 O))) O t3) | (THead _ _ t7) \Rightarrow t7])) (THead (Bind b) u (lift (S O) O 
2151 t3)) (THead k u1 t5) H16) in (\lambda (_: (eq T u u1)).(\lambda (H21: (eq K 
2152 (Bind b) k)).(eq_ind K (Bind b) (\lambda (k0: K).(ex2 T (\lambda (t7: T).(pr0 
2153 t1 t7)) (\lambda (t7: T).(pr0 (THead k0 u2 t6) t7)))) (let H22 \def (eq_ind_r 
2154 K k (\lambda (k0: K).(eq T (THead k0 u1 t5) t)) H11 (Bind b) H21) in (let H23 
2155 \def (eq_ind_r T t5 (\lambda (t7: T).(pr0 t7 t6)) H15 (lift (S O) O t3) H19) 
2156 in (ex2_ind T (\lambda (t7: T).(eq T t6 (lift (S O) O t7))) (\lambda (t7: 
2157 T).(pr0 t3 t7)) (ex2 T (\lambda (t7: T).(pr0 t1 t7)) (\lambda (t7: T).(pr0 
2158 (THead (Bind b) u2 t6) t7))) (\lambda (x: T).(\lambda (H24: (eq T t6 (lift (S 
2159 O) O x))).(\lambda (H25: (pr0 t3 x)).(let H26 \def (eq_ind_r T t5 (\lambda 
2160 (t7: T).(eq T (THead (Bind b) u1 t7) t)) H22 (lift (S O) O t3) H19) in (let 
2161 H27 \def (eq_ind_r T t (\lambda (t7: T).(\forall (v: T).((tlt v t7) \to 
2162 (\forall (t8: T).((pr0 v t8) \to (\forall (t9: T).((pr0 v t9) \to (ex2 T 
2163 (\lambda (t10: T).(pr0 t8 t10)) (\lambda (t10: T).(pr0 t9 t10)))))))))) H 
2164 (THead (Bind b) u1 (lift (S O) O t3)) H26) in (eq_ind_r T (lift (S O) O x) 
2165 (\lambda (t7: T).(ex2 T (\lambda (t8: T).(pr0 t1 t8)) (\lambda (t8: T).(pr0 
2166 (THead (Bind b) u2 t7) t8)))) (ex2_ind T (\lambda (t7: T).(pr0 x t7)) 
2167 (\lambda (t7: T).(pr0 t1 t7)) (ex2 T (\lambda (t7: T).(pr0 t1 t7)) (\lambda 
2168 (t7: T).(pr0 (THead (Bind b) u2 (lift (S O) O x)) t7))) (\lambda (x0: 
2169 T).(\lambda (H28: (pr0 x x0)).(\lambda (H29: (pr0 t1 x0)).(ex_intro2 T 
2170 (\lambda (t7: T).(pr0 t1 t7)) (\lambda (t7: T).(pr0 (THead (Bind b) u2 (lift 
2171 (S O) O x)) t7)) x0 H29 (pr0_zeta b H7 x x0 H28 u2))))) (H27 t3 (lift_tlt_dx 
2172 (Bind b) u1 t3 (S O) O) x H25 t1 H8)) t6 H24)))))) (pr0_gen_lift t3 t6 (S O) 
2173 O H23)))) k H21)))) H18)) H17))))) t2 H13)) t H11 H12 H9 H10))) | (pr0_beta 
2174 u0 v1 v2 H9 t5 t6 H10) \Rightarrow (\lambda (H11: (eq T (THead (Flat Appl) v1 
2175 (THead (Bind Abst) u0 t5)) t)).(\lambda (H12: (eq T (THead (Bind Abbr) v2 t6) 
2176 t2)).(eq_ind T (THead (Flat Appl) v1 (THead (Bind Abst) u0 t5)) (\lambda (_: 
2177 T).((eq T (THead (Bind Abbr) v2 t6) t2) \to ((pr0 v1 v2) \to ((pr0 t5 t6) \to 
2178 (ex2 T (\lambda (t8: T).(pr0 t1 t8)) (\lambda (t8: T).(pr0 t2 t8))))))) 
2179 (\lambda (H13: (eq T (THead (Bind Abbr) v2 t6) t2)).(eq_ind T (THead (Bind 
2180 Abbr) v2 t6) (\lambda (t7: T).((pr0 v1 v2) \to ((pr0 t5 t6) \to (ex2 T 
2181 (\lambda (t8: T).(pr0 t1 t8)) (\lambda (t8: T).(pr0 t7 t8)))))) (\lambda (_: 
2182 (pr0 v1 v2)).(\lambda (_: (pr0 t5 t6)).(let H16 \def (eq_ind_r T t (\lambda 
2183 (t7: T).(eq T (THead (Bind b) u (lift (S O) O t3)) t7)) H4 (THead (Flat Appl) 
2184 v1 (THead (Bind Abst) u0 t5)) H11) in (let H17 \def (eq_ind T (THead (Bind b) 
2185 u (lift (S O) O t3)) (\lambda (ee: T).(match ee in T return (\lambda (_: 
2186 T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | 
2187 (THead k _ _) \Rightarrow (match k in K return (\lambda (_: K).Prop) with 
2188 [(Bind _) \Rightarrow True | (Flat _) \Rightarrow False])])) I (THead (Flat 
2189 Appl) v1 (THead (Bind Abst) u0 t5)) H16) in (False_ind (ex2 T (\lambda (t7: 
2190 T).(pr0 t1 t7)) (\lambda (t7: T).(pr0 (THead (Bind Abbr) v2 t6) t7))) 
2191 H17))))) t2 H13)) t H11 H12 H9 H10))) | (pr0_upsilon b0 H9 v1 v2 H10 u1 u2 
2192 H11 t5 t6 H12) \Rightarrow (\lambda (H13: (eq T (THead (Flat Appl) v1 (THead 
2193 (Bind b0) u1 t5)) t)).(\lambda (H14: (eq T (THead (Bind b0) u2 (THead (Flat 
2194 Appl) (lift (S O) O v2) t6)) t2)).(eq_ind T (THead (Flat Appl) v1 (THead 
2195 (Bind b0) u1 t5)) (\lambda (_: T).((eq T (THead (Bind b0) u2 (THead (Flat 
2196 Appl) (lift (S O) O v2) t6)) t2) \to ((not (eq B b0 Abst)) \to ((pr0 v1 v2) 
2197 \to ((pr0 u1 u2) \to ((pr0 t5 t6) \to (ex2 T (\lambda (t8: T).(pr0 t1 t8)) 
2198 (\lambda (t8: T).(pr0 t2 t8))))))))) (\lambda (H15: (eq T (THead (Bind b0) u2 
2199 (THead (Flat Appl) (lift (S O) O v2) t6)) t2)).(eq_ind T (THead (Bind b0) u2 
2200 (THead (Flat Appl) (lift (S O) O v2) t6)) (\lambda (t7: T).((not (eq B b0 
2201 Abst)) \to ((pr0 v1 v2) \to ((pr0 u1 u2) \to ((pr0 t5 t6) \to (ex2 T (\lambda 
2202 (t8: T).(pr0 t1 t8)) (\lambda (t8: T).(pr0 t7 t8)))))))) (\lambda (_: (not 
2203 (eq B b0 Abst))).(\lambda (_: (pr0 v1 v2)).(\lambda (_: (pr0 u1 u2)).(\lambda 
2204 (_: (pr0 t5 t6)).(let H20 \def (eq_ind_r T t (\lambda (t7: T).(eq T (THead 
2205 (Bind b) u (lift (S O) O t3)) t7)) H4 (THead (Flat Appl) v1 (THead (Bind b0) 
2206 u1 t5)) H13) in (let H21 \def (eq_ind T (THead (Bind b) u (lift (S O) O t3)) 
2207 (\lambda (ee: T).(match ee in T return (\lambda (_: T).Prop) with [(TSort _) 
2208 \Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow 
2209 (match k in K return (\lambda (_: K).Prop) with [(Bind _) \Rightarrow True | 
2210 (Flat _) \Rightarrow False])])) I (THead (Flat Appl) v1 (THead (Bind b0) u1 
2211 t5)) H20) in (False_ind (ex2 T (\lambda (t7: T).(pr0 t1 t7)) (\lambda (t7: 
2212 T).(pr0 (THead (Bind b0) u2 (THead (Flat Appl) (lift (S O) O v2) t6)) t7))) 
2213 H21))))))) t2 H15)) t H13 H14 H9 H10 H11 H12))) | (pr0_delta u1 u2 H9 t5 t6 
2214 H10 w H11) \Rightarrow (\lambda (H12: (eq T (THead (Bind Abbr) u1 t5) 
2215 t)).(\lambda (H13: (eq T (THead (Bind Abbr) u2 w) t2)).(eq_ind T (THead (Bind 
2216 Abbr) u1 t5) (\lambda (_: T).((eq T (THead (Bind Abbr) u2 w) t2) \to ((pr0 u1 
2217 u2) \to ((pr0 t5 t6) \to ((subst0 O u2 t6 w) \to (ex2 T (\lambda (t8: T).(pr0 
2218 t1 t8)) (\lambda (t8: T).(pr0 t2 t8)))))))) (\lambda (H14: (eq T (THead (Bind 
2219 Abbr) u2 w) t2)).(eq_ind T (THead (Bind Abbr) u2 w) (\lambda (t7: T).((pr0 u1 
2220 u2) \to ((pr0 t5 t6) \to ((subst0 O u2 t6 w) \to (ex2 T (\lambda (t8: T).(pr0 
2221 t1 t8)) (\lambda (t8: T).(pr0 t7 t8))))))) (\lambda (_: (pr0 u1 u2)).(\lambda 
2222 (H16: (pr0 t5 t6)).(\lambda (H17: (subst0 O u2 t6 w)).(let H18 \def (eq_ind_r 
2223 T t (\lambda (t7: T).(eq T (THead (Bind b) u (lift (S O) O t3)) t7)) H4 
2224 (THead (Bind Abbr) u1 t5) H12) in (let H19 \def (f_equal T B (\lambda (e: 
2225 T).(match e in T return (\lambda (_: T).B) with [(TSort _) \Rightarrow b | 
2226 (TLRef _) \Rightarrow b | (THead k _ _) \Rightarrow (match k in K return 
2227 (\lambda (_: K).B) with [(Bind b0) \Rightarrow b0 | (Flat _) \Rightarrow 
2228 b])])) (THead (Bind b) u (lift (S O) O t3)) (THead (Bind Abbr) u1 t5) H18) in 
2229 ((let H20 \def (f_equal T T (\lambda (e: T).(match e in T return (\lambda (_: 
2230 T).T) with [(TSort _) \Rightarrow u | (TLRef _) \Rightarrow u | (THead _ t7 
2231 _) \Rightarrow t7])) (THead (Bind b) u (lift (S O) O t3)) (THead (Bind Abbr) 
2232 u1 t5) H18) in ((let H21 \def (f_equal T T (\lambda (e: T).(match e in T 
2233 return (\lambda (_: T).T) with [(TSort _) \Rightarrow ((let rec lref_map (f: 
2234 ((nat \to nat))) (d: nat) (t7: T) on t7: T \def (match t7 with [(TSort n) 
2235 \Rightarrow (TSort n) | (TLRef i) \Rightarrow (TLRef (match (blt i d) with 
2236 [true \Rightarrow i | false \Rightarrow (f i)])) | (THead k u0 t8) 
2237 \Rightarrow (THead k (lref_map f d u0) (lref_map f (s k d) t8))]) in 
2238 lref_map) (\lambda (x: nat).(plus x (S O))) O t3) | (TLRef _) \Rightarrow 
2239 ((let rec lref_map (f: ((nat \to nat))) (d: nat) (t7: T) on t7: T \def (match 
2240 t7 with [(TSort n) \Rightarrow (TSort n) | (TLRef i) \Rightarrow (TLRef 
2241 (match (blt i d) with [true \Rightarrow i | false \Rightarrow (f i)])) | 
2242 (THead k u0 t8) \Rightarrow (THead k (lref_map f d u0) (lref_map f (s k d) 
2243 t8))]) in lref_map) (\lambda (x: nat).(plus x (S O))) O t3) | (THead _ _ t7) 
2244 \Rightarrow t7])) (THead (Bind b) u (lift (S O) O t3)) (THead (Bind Abbr) u1 
2245 t5) H18) in (\lambda (_: (eq T u u1)).(\lambda (H23: (eq B b Abbr)).(let H24 
2246 \def (eq_ind_r T t5 (\lambda (t7: T).(pr0 t7 t6)) H16 (lift (S O) O t3) H21) 
2247 in (ex2_ind T (\lambda (t7: T).(eq T t6 (lift (S O) O t7))) (\lambda (t7: 
2248 T).(pr0 t3 t7)) (ex2 T (\lambda (t7: T).(pr0 t1 t7)) (\lambda (t7: T).(pr0 
2249 (THead (Bind Abbr) u2 w) t7))) (\lambda (x: T).(\lambda (H25: (eq T t6 (lift 
2250 (S O) O x))).(\lambda (H26: (pr0 t3 x)).(let H27 \def (eq_ind_r T t5 (\lambda 
2251 (t7: T).(eq T (THead (Bind Abbr) u1 t7) t)) H12 (lift (S O) O t3) H21) in 
2252 (let H28 \def (eq_ind_r T t (\lambda (t7: T).(\forall (v: T).((tlt v t7) \to 
2253 (\forall (t8: T).((pr0 v t8) \to (\forall (t9: T).((pr0 v t9) \to (ex2 T 
2254 (\lambda (t10: T).(pr0 t8 t10)) (\lambda (t10: T).(pr0 t9 t10)))))))))) H 
2255 (THead (Bind Abbr) u1 (lift (S O) O t3)) H27) in (let H29 \def (eq_ind T t6 
2256 (\lambda (t7: T).(subst0 O u2 t7 w)) H17 (lift (S O) O x) H25) in (let H30 
2257 \def (eq_ind B b (\lambda (b0: B).(not (eq B b0 Abst))) H7 Abbr H23) in 
2258 (ex2_ind T (\lambda (t7: T).(pr0 x t7)) (\lambda (t7: T).(pr0 t1 t7)) (ex2 T 
2259 (\lambda (t7: T).(pr0 t1 t7)) (\lambda (t7: T).(pr0 (THead (Bind Abbr) u2 w) 
2260 t7))) (\lambda (x0: T).(\lambda (_: (pr0 x x0)).(\lambda (_: (pr0 t1 
2261 x0)).(ex2_sym T (pr0 (THead (Bind Abbr) u2 w)) (pr0 t1) 
2262 (pr0_confluence__pr0_delta_tau u2 (lift (S O) O x) w H29 x (pr0_refl (lift (S 
2263 O) O x)) t1))))) (H28 t3 (lift_tlt_dx (Bind Abbr) u1 t3 (S O) O) x H26 t1 
2264 H8))))))))) (pr0_gen_lift t3 t6 (S O) O H24)))))) H20)) H19)))))) t2 H14)) t 
2265 H12 H13 H9 H10 H11))) | (pr0_zeta b0 H9 t5 t6 H10 u0) \Rightarrow (\lambda 
2266 (H11: (eq T (THead (Bind b0) u0 (lift (S O) O t5)) t)).(\lambda (H12: (eq T 
2267 t6 t2)).(eq_ind T (THead (Bind b0) u0 (lift (S O) O t5)) (\lambda (_: T).((eq 
2268 T t6 t2) \to ((not (eq B b0 Abst)) \to ((pr0 t5 t6) \to (ex2 T (\lambda (t8: 
2269 T).(pr0 t1 t8)) (\lambda (t8: T).(pr0 t2 t8))))))) (\lambda (H13: (eq T t6 
2270 t2)).(eq_ind T t2 (\lambda (t7: T).((not (eq B b0 Abst)) \to ((pr0 t5 t7) \to 
2271 (ex2 T (\lambda (t8: T).(pr0 t1 t8)) (\lambda (t8: T).(pr0 t2 t8)))))) 
2272 (\lambda (_: (not (eq B b0 Abst))).(\lambda (H15: (pr0 t5 t2)).(let H16 \def 
2273 (eq_ind_r T t (\lambda (t7: T).(eq T (THead (Bind b) u (lift (S O) O t3)) 
2274 t7)) H4 (THead (Bind b0) u0 (lift (S O) O t5)) H11) in (let H17 \def (f_equal 
2275 T B (\lambda (e: T).(match e in T return (\lambda (_: T).B) with [(TSort _) 
2276 \Rightarrow b | (TLRef _) \Rightarrow b | (THead k _ _) \Rightarrow (match k 
2277 in K return (\lambda (_: K).B) with [(Bind b1) \Rightarrow b1 | (Flat _) 
2278 \Rightarrow b])])) (THead (Bind b) u (lift (S O) O t3)) (THead (Bind b0) u0 
2279 (lift (S O) O t5)) H16) in ((let H18 \def (f_equal T T (\lambda (e: T).(match 
2280 e in T return (\lambda (_: T).T) with [(TSort _) \Rightarrow u | (TLRef _) 
2281 \Rightarrow u | (THead _ t7 _) \Rightarrow t7])) (THead (Bind b) u (lift (S 
2282 O) O t3)) (THead (Bind b0) u0 (lift (S O) O t5)) H16) in ((let H19 \def 
2283 (f_equal T T (\lambda (e: T).(match e in T return (\lambda (_: T).T) with 
2284 [(TSort _) \Rightarrow ((let rec lref_map (f: ((nat \to nat))) (d: nat) (t7: 
2285 T) on t7: T \def (match t7 with [(TSort n) \Rightarrow (TSort n) | (TLRef i) 
2286 \Rightarrow (TLRef (match (blt i d) with [true \Rightarrow i | false 
2287 \Rightarrow (f i)])) | (THead k u1 t8) \Rightarrow (THead k (lref_map f d u1) 
2288 (lref_map f (s k d) t8))]) in lref_map) (\lambda (x: nat).(plus x (S O))) O 
2289 t3) | (TLRef _) \Rightarrow ((let rec lref_map (f: ((nat \to nat))) (d: nat) 
2290 (t7: T) on t7: T \def (match t7 with [(TSort n) \Rightarrow (TSort n) | 
2291 (TLRef i) \Rightarrow (TLRef (match (blt i d) with [true \Rightarrow i | 
2292 false \Rightarrow (f i)])) | (THead k u1 t8) \Rightarrow (THead k (lref_map f 
2293 d u1) (lref_map f (s k d) t8))]) in lref_map) (\lambda (x: nat).(plus x (S 
2294 O))) O t3) | (THead _ _ t7) \Rightarrow t7])) (THead (Bind b) u (lift (S O) O 
2295 t3)) (THead (Bind b0) u0 (lift (S O) O t5)) H16) in (\lambda (_: (eq T u 
2296 u0)).(\lambda (H21: (eq B b b0)).(let H22 \def (eq_ind_r T t (\lambda (t7: 
2297 T).(\forall (v: T).((tlt v t7) \to (\forall (t8: T).((pr0 v t8) \to (\forall 
2298 (t9: T).((pr0 v t9) \to (ex2 T (\lambda (t10: T).(pr0 t8 t10)) (\lambda (t10: 
2299 T).(pr0 t9 t10)))))))))) H (THead (Bind b0) u0 (lift (S O) O t5)) H11) in 
2300 (let H23 \def (eq_ind T t3 (\lambda (t7: T).(pr0 t7 t1)) H8 t5 (lift_inj t3 
2301 t5 (S O) O H19)) in (let H24 \def (eq_ind B b (\lambda (b1: B).(not (eq B b1 
2302 Abst))) H7 b0 H21) in (ex2_ind T (\lambda (t7: T).(pr0 t1 t7)) (\lambda (t7: 
2303 T).(pr0 t2 t7)) (ex2 T (\lambda (t7: T).(pr0 t1 t7)) (\lambda (t7: T).(pr0 t2 
2304 t7))) (\lambda (x: T).(\lambda (H25: (pr0 t1 x)).(\lambda (H26: (pr0 t2 
2305 x)).(ex_intro2 T (\lambda (t7: T).(pr0 t1 t7)) (\lambda (t7: T).(pr0 t2 t7)) 
2306 x H25 H26)))) (H22 t5 (lift_tlt_dx (Bind b0) u0 t5 (S O) O) t1 H23 t2 
2307 H15)))))))) H18)) H17))))) t6 (sym_eq T t6 t2 H13))) t H11 H12 H9 H10))) | 
2308 (pr0_tau t5 t6 H9 u0) \Rightarrow (\lambda (H10: (eq T (THead (Flat Cast) u0 
2309 t5) t)).(\lambda (H11: (eq T t6 t2)).(eq_ind T (THead (Flat Cast) u0 t5) 
2310 (\lambda (_: T).((eq T t6 t2) \to ((pr0 t5 t6) \to (ex2 T (\lambda (t8: 
2311 T).(pr0 t1 t8)) (\lambda (t8: T).(pr0 t2 t8)))))) (\lambda (H12: (eq T t6 
2312 t2)).(eq_ind T t2 (\lambda (t7: T).((pr0 t5 t7) \to (ex2 T (\lambda (t8: 
2313 T).(pr0 t1 t8)) (\lambda (t8: T).(pr0 t2 t8))))) (\lambda (_: (pr0 t5 
2314 t2)).(let H14 \def (eq_ind_r T t (\lambda (t7: T).(eq T (THead (Bind b) u 
2315 (lift (S O) O t3)) t7)) H4 (THead (Flat Cast) u0 t5) H10) in (let H15 \def 
2316 (eq_ind T (THead (Bind b) u (lift (S O) O t3)) (\lambda (ee: T).(match ee in 
2317 T return (\lambda (_: T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) 
2318 \Rightarrow False | (THead k _ _) \Rightarrow (match k in K return (\lambda 
2319 (_: K).Prop) with [(Bind _) \Rightarrow True | (Flat _) \Rightarrow 
2320 False])])) I (THead (Flat Cast) u0 t5) H14) in (False_ind (ex2 T (\lambda 
2321 (t7: T).(pr0 t1 t7)) (\lambda (t7: T).(pr0 t2 t7))) H15)))) t6 (sym_eq T t6 
2322 t2 H12))) t H10 H11 H9)))]) in (H9 (refl_equal T t) (refl_equal T t2))))) t4 
2323 (sym_eq T t4 t1 H6))) t H4 H5 H2 H3))) | (pr0_tau t3 t4 H2 u) \Rightarrow 
2324 (\lambda (H3: (eq T (THead (Flat Cast) u t3) t)).(\lambda (H4: (eq T t4 
2325 t1)).(eq_ind T (THead (Flat Cast) u t3) (\lambda (_: T).((eq T t4 t1) \to 
2326 ((pr0 t3 t4) \to (ex2 T (\lambda (t6: T).(pr0 t1 t6)) (\lambda (t6: T).(pr0 
2327 t2 t6)))))) (\lambda (H5: (eq T t4 t1)).(eq_ind T t1 (\lambda (t5: T).((pr0 
2328 t3 t5) \to (ex2 T (\lambda (t6: T).(pr0 t1 t6)) (\lambda (t6: T).(pr0 t2 
2329 t6))))) (\lambda (H6: (pr0 t3 t1)).(let H7 \def (match H1 in pr0 return 
2330 (\lambda (t5: T).(\lambda (t6: T).(\lambda (_: (pr0 t5 t6)).((eq T t5 t) \to 
2331 ((eq T t6 t2) \to (ex2 T (\lambda (t7: T).(pr0 t1 t7)) (\lambda (t7: T).(pr0 
2332 t2 t7)))))))) with [(pr0_refl t5) \Rightarrow (\lambda (H7: (eq T t5 
2333 t)).(\lambda (H8: (eq T t5 t2)).(eq_ind T t (\lambda (t6: T).((eq T t6 t2) 
2334 \to (ex2 T (\lambda (t7: T).(pr0 t1 t7)) (\lambda (t7: T).(pr0 t2 t7))))) 
2335 (\lambda (H9: (eq T t t2)).(eq_ind T t2 (\lambda (_: T).(ex2 T (\lambda (t7: 
2336 T).(pr0 t1 t7)) (\lambda (t7: T).(pr0 t2 t7)))) (let H10 \def (eq_ind_r T t 
2337 (\lambda (t6: T).(eq T t6 t2)) H9 (THead (Flat Cast) u t3) H3) in (eq_ind T 
2338 (THead (Flat Cast) u t3) (\lambda (t6: T).(ex2 T (\lambda (t7: T).(pr0 t1 
2339 t7)) (\lambda (t7: T).(pr0 t6 t7)))) (let H11 \def (eq_ind_r T t (\lambda 
2340 (t6: T).(eq T t5 t6)) H7 (THead (Flat Cast) u t3) H3) in (let H12 \def 
2341 (eq_ind_r T t (\lambda (t6: T).(\forall (v: T).((tlt v t6) \to (\forall (t7: 
2342 T).((pr0 v t7) \to (\forall (t8: T).((pr0 v t8) \to (ex2 T (\lambda (t9: 
2343 T).(pr0 t7 t9)) (\lambda (t9: T).(pr0 t8 t9)))))))))) H (THead (Flat Cast) u 
2344 t3) H3) in (ex_intro2 T (\lambda (t6: T).(pr0 t1 t6)) (\lambda (t6: T).(pr0 
2345 (THead (Flat Cast) u t3) t6)) t1 (pr0_refl t1) (pr0_tau t3 t1 H6 u)))) t2 
2346 H10)) t (sym_eq T t t2 H9))) t5 (sym_eq T t5 t H7) H8))) | (pr0_comp u1 u2 H7 
2347 t5 t6 H8 k) \Rightarrow (\lambda (H9: (eq T (THead k u1 t5) t)).(\lambda 
2348 (H10: (eq T (THead k u2 t6) t2)).(eq_ind T (THead k u1 t5) (\lambda (_: 
2349 T).((eq T (THead k u2 t6) t2) \to ((pr0 u1 u2) \to ((pr0 t5 t6) \to (ex2 T 
2350 (\lambda (t8: T).(pr0 t1 t8)) (\lambda (t8: T).(pr0 t2 t8))))))) (\lambda 
2351 (H11: (eq T (THead k u2 t6) t2)).(eq_ind T (THead k u2 t6) (\lambda (t7: 
2352 T).((pr0 u1 u2) \to ((pr0 t5 t6) \to (ex2 T (\lambda (t8: T).(pr0 t1 t8)) 
2353 (\lambda (t8: T).(pr0 t7 t8)))))) (\lambda (_: (pr0 u1 u2)).(\lambda (H13: 
2354 (pr0 t5 t6)).(let H14 \def (eq_ind_r T t (\lambda (t7: T).(eq T (THead (Flat 
2355 Cast) u t3) t7)) H3 (THead k u1 t5) H9) in (let H15 \def (f_equal T K 
2356 (\lambda (e: T).(match e in T return (\lambda (_: T).K) with [(TSort _) 
2357 \Rightarrow (Flat Cast) | (TLRef _) \Rightarrow (Flat Cast) | (THead k0 _ _) 
2358 \Rightarrow k0])) (THead (Flat Cast) u t3) (THead k u1 t5) H14) in ((let H16 
2359 \def (f_equal T T (\lambda (e: T).(match e in T return (\lambda (_: T).T) 
2360 with [(TSort _) \Rightarrow u | (TLRef _) \Rightarrow u | (THead _ t7 _) 
2361 \Rightarrow t7])) (THead (Flat Cast) u t3) (THead k u1 t5) H14) in ((let H17 
2362 \def (f_equal T T (\lambda (e: T).(match e in T return (\lambda (_: T).T) 
2363 with [(TSort _) \Rightarrow t3 | (TLRef _) \Rightarrow t3 | (THead _ _ t7) 
2364 \Rightarrow t7])) (THead (Flat Cast) u t3) (THead k u1 t5) H14) in (\lambda 
2365 (_: (eq T u u1)).(\lambda (H19: (eq K (Flat Cast) k)).(eq_ind K (Flat Cast) 
2366 (\lambda (k0: K).(ex2 T (\lambda (t7: T).(pr0 t1 t7)) (\lambda (t7: T).(pr0 
2367 (THead k0 u2 t6) t7)))) (let H20 \def (eq_ind_r K k (\lambda (k0: K).(eq T 
2368 (THead k0 u1 t5) t)) H9 (Flat Cast) H19) in (let H21 \def (eq_ind_r T t 
2369 (\lambda (t7: T).(\forall (v: T).((tlt v t7) \to (\forall (t8: T).((pr0 v t8) 
2370 \to (\forall (t9: T).((pr0 v t9) \to (ex2 T (\lambda (t10: T).(pr0 t8 t10)) 
2371 (\lambda (t10: T).(pr0 t9 t10)))))))))) H (THead (Flat Cast) u1 t5) H20) in 
2372 (let H22 \def (eq_ind T t3 (\lambda (t7: T).(pr0 t7 t1)) H6 t5 H17) in 
2373 (ex2_ind T (\lambda (t7: T).(pr0 t1 t7)) (\lambda (t7: T).(pr0 t6 t7)) (ex2 T 
2374 (\lambda (t7: T).(pr0 t1 t7)) (\lambda (t7: T).(pr0 (THead (Flat Cast) u2 t6) 
2375 t7))) (\lambda (x: T).(\lambda (H23: (pr0 t1 x)).(\lambda (H24: (pr0 t6 
2376 x)).(ex_intro2 T (\lambda (t7: T).(pr0 t1 t7)) (\lambda (t7: T).(pr0 (THead 
2377 (Flat Cast) u2 t6) t7)) x H23 (pr0_tau t6 x H24 u2))))) (H21 t5 (tlt_head_dx 
2378 (Flat Cast) u1 t5) t1 H22 t6 H13))))) k H19)))) H16)) H15))))) t2 H11)) t H9 
2379 H10 H7 H8))) | (pr0_beta u0 v1 v2 H7 t5 t6 H8) \Rightarrow (\lambda (H9: (eq 
2380 T (THead (Flat Appl) v1 (THead (Bind Abst) u0 t5)) t)).(\lambda (H10: (eq T 
2381 (THead (Bind Abbr) v2 t6) t2)).(eq_ind T (THead (Flat Appl) v1 (THead (Bind 
2382 Abst) u0 t5)) (\lambda (_: T).((eq T (THead (Bind Abbr) v2 t6) t2) \to ((pr0 
2383 v1 v2) \to ((pr0 t5 t6) \to (ex2 T (\lambda (t8: T).(pr0 t1 t8)) (\lambda 
2384 (t8: T).(pr0 t2 t8))))))) (\lambda (H11: (eq T (THead (Bind Abbr) v2 t6) 
2385 t2)).(eq_ind T (THead (Bind Abbr) v2 t6) (\lambda (t7: T).((pr0 v1 v2) \to 
2386 ((pr0 t5 t6) \to (ex2 T (\lambda (t8: T).(pr0 t1 t8)) (\lambda (t8: T).(pr0 
2387 t7 t8)))))) (\lambda (_: (pr0 v1 v2)).(\lambda (_: (pr0 t5 t6)).(let H14 \def 
2388 (eq_ind_r T t (\lambda (t7: T).(eq T (THead (Flat Cast) u t3) t7)) H3 (THead 
2389 (Flat Appl) v1 (THead (Bind Abst) u0 t5)) H9) in (let H15 \def (eq_ind T 
2390 (THead (Flat Cast) u t3) (\lambda (ee: T).(match ee in T return (\lambda (_: 
2391 T).Prop) with [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | 
2392 (THead k _ _) \Rightarrow (match k in K return (\lambda (_: K).Prop) with 
2393 [(Bind _) \Rightarrow False | (Flat f) \Rightarrow (match f in F return 
2394 (\lambda (_: F).Prop) with [Appl \Rightarrow False | Cast \Rightarrow 
2395 True])])])) I (THead (Flat Appl) v1 (THead (Bind Abst) u0 t5)) H14) in 
2396 (False_ind (ex2 T (\lambda (t7: T).(pr0 t1 t7)) (\lambda (t7: T).(pr0 (THead 
2397 (Bind Abbr) v2 t6) t7))) H15))))) t2 H11)) t H9 H10 H7 H8))) | (pr0_upsilon b 
2398 H7 v1 v2 H8 u1 u2 H9 t5 t6 H10) \Rightarrow (\lambda (H11: (eq T (THead (Flat 
2399 Appl) v1 (THead (Bind b) u1 t5)) t)).(\lambda (H12: (eq T (THead (Bind b) u2 
2400 (THead (Flat Appl) (lift (S O) O v2) t6)) t2)).(eq_ind T (THead (Flat Appl) 
2401 v1 (THead (Bind b) u1 t5)) (\lambda (_: T).((eq T (THead (Bind b) u2 (THead 
2402 (Flat Appl) (lift (S O) O v2) t6)) t2) \to ((not (eq B b Abst)) \to ((pr0 v1 
2403 v2) \to ((pr0 u1 u2) \to ((pr0 t5 t6) \to (ex2 T (\lambda (t8: T).(pr0 t1 
2404 t8)) (\lambda (t8: T).(pr0 t2 t8))))))))) (\lambda (H13: (eq T (THead (Bind 
2405 b) u2 (THead (Flat Appl) (lift (S O) O v2) t6)) t2)).(eq_ind T (THead (Bind 
2406 b) u2 (THead (Flat Appl) (lift (S O) O v2) t6)) (\lambda (t7: T).((not (eq B 
2407 b Abst)) \to ((pr0 v1 v2) \to ((pr0 u1 u2) \to ((pr0 t5 t6) \to (ex2 T 
2408 (\lambda (t8: T).(pr0 t1 t8)) (\lambda (t8: T).(pr0 t7 t8)))))))) (\lambda 
2409 (_: (not (eq B b Abst))).(\lambda (_: (pr0 v1 v2)).(\lambda (_: (pr0 u1 
2410 u2)).(\lambda (_: (pr0 t5 t6)).(let H18 \def (eq_ind_r T t (\lambda (t7: 
2411 T).(eq T (THead (Flat Cast) u t3) t7)) H3 (THead (Flat Appl) v1 (THead (Bind 
2412 b) u1 t5)) H11) in (let H19 \def (eq_ind T (THead (Flat Cast) u t3) (\lambda 
2413 (ee: T).(match ee in T return (\lambda (_: T).Prop) with [(TSort _) 
2414 \Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow 
2415 (match k in K return (\lambda (_: K).Prop) with [(Bind _) \Rightarrow False | 
2416 (Flat f) \Rightarrow (match f in F return (\lambda (_: F).Prop) with [Appl 
2417 \Rightarrow False | Cast \Rightarrow True])])])) I (THead (Flat Appl) v1 
2418 (THead (Bind b) u1 t5)) H18) in (False_ind (ex2 T (\lambda (t7: T).(pr0 t1 
2419 t7)) (\lambda (t7: T).(pr0 (THead (Bind b) u2 (THead (Flat Appl) (lift (S O) 
2420 O v2) t6)) t7))) H19))))))) t2 H13)) t H11 H12 H7 H8 H9 H10))) | (pr0_delta 
2421 u1 u2 H7 t5 t6 H8 w H9) \Rightarrow (\lambda (H10: (eq T (THead (Bind Abbr) 
2422 u1 t5) t)).(\lambda (H11: (eq T (THead (Bind Abbr) u2 w) t2)).(eq_ind T 
2423 (THead (Bind Abbr) u1 t5) (\lambda (_: T).((eq T (THead (Bind Abbr) u2 w) t2) 
2424 \to ((pr0 u1 u2) \to ((pr0 t5 t6) \to ((subst0 O u2 t6 w) \to (ex2 T (\lambda 
2425 (t8: T).(pr0 t1 t8)) (\lambda (t8: T).(pr0 t2 t8)))))))) (\lambda (H12: (eq T 
2426 (THead (Bind Abbr) u2 w) t2)).(eq_ind T (THead (Bind Abbr) u2 w) (\lambda 
2427 (t7: T).((pr0 u1 u2) \to ((pr0 t5 t6) \to ((subst0 O u2 t6 w) \to (ex2 T 
2428 (\lambda (t8: T).(pr0 t1 t8)) (\lambda (t8: T).(pr0 t7 t8))))))) (\lambda (_: 
2429 (pr0 u1 u2)).(\lambda (_: (pr0 t5 t6)).(\lambda (_: (subst0 O u2 t6 w)).(let 
2430 H16 \def (eq_ind_r T t (\lambda (t7: T).(eq T (THead (Flat Cast) u t3) t7)) 
2431 H3 (THead (Bind Abbr) u1 t5) H10) in (let H17 \def (eq_ind T (THead (Flat 
2432 Cast) u t3) (\lambda (ee: T).(match ee in T return (\lambda (_: T).Prop) with 
2433 [(TSort _) \Rightarrow False | (TLRef _) \Rightarrow False | (THead k _ _) 
2434 \Rightarrow (match k in K return (\lambda (_: K).Prop) with [(Bind _) 
2435 \Rightarrow False | (Flat _) \Rightarrow True])])) I (THead (Bind Abbr) u1 
2436 t5) H16) in (False_ind (ex2 T (\lambda (t7: T).(pr0 t1 t7)) (\lambda (t7: 
2437 T).(pr0 (THead (Bind Abbr) u2 w) t7))) H17)))))) t2 H12)) t H10 H11 H7 H8 
2438 H9))) | (pr0_zeta b H7 t5 t6 H8 u0) \Rightarrow (\lambda (H9: (eq T (THead 
2439 (Bind b) u0 (lift (S O) O t5)) t)).(\lambda (H10: (eq T t6 t2)).(eq_ind T 
2440 (THead (Bind b) u0 (lift (S O) O t5)) (\lambda (_: T).((eq T t6 t2) \to ((not 
2441 (eq B b Abst)) \to ((pr0 t5 t6) \to (ex2 T (\lambda (t8: T).(pr0 t1 t8)) 
2442 (\lambda (t8: T).(pr0 t2 t8))))))) (\lambda (H11: (eq T t6 t2)).(eq_ind T t2 
2443 (\lambda (t7: T).((not (eq B b Abst)) \to ((pr0 t5 t7) \to (ex2 T (\lambda 
2444 (t8: T).(pr0 t1 t8)) (\lambda (t8: T).(pr0 t2 t8)))))) (\lambda (_: (not (eq 
2445 B b Abst))).(\lambda (_: (pr0 t5 t2)).(let H14 \def (eq_ind_r T t (\lambda 
2446 (t7: T).(eq T (THead (Flat Cast) u t3) t7)) H3 (THead (Bind b) u0 (lift (S O) 
2447 O t5)) H9) in (let H15 \def (eq_ind T (THead (Flat Cast) u t3) (\lambda (ee: 
2448 T).(match ee in T return (\lambda (_: T).Prop) with [(TSort _) \Rightarrow 
2449 False | (TLRef _) \Rightarrow False | (THead k _ _) \Rightarrow (match k in K 
2450 return (\lambda (_: K).Prop) with [(Bind _) \Rightarrow False | (Flat _) 
2451 \Rightarrow True])])) I (THead (Bind b) u0 (lift (S O) O t5)) H14) in 
2452 (False_ind (ex2 T (\lambda (t7: T).(pr0 t1 t7)) (\lambda (t7: T).(pr0 t2 
2453 t7))) H15))))) t6 (sym_eq T t6 t2 H11))) t H9 H10 H7 H8))) | (pr0_tau t5 t6 
2454 H7 u0) \Rightarrow (\lambda (H8: (eq T (THead (Flat Cast) u0 t5) t)).(\lambda 
2455 (H9: (eq T t6 t2)).(eq_ind T (THead (Flat Cast) u0 t5) (\lambda (_: T).((eq T 
2456 t6 t2) \to ((pr0 t5 t6) \to (ex2 T (\lambda (t8: T).(pr0 t1 t8)) (\lambda 
2457 (t8: T).(pr0 t2 t8)))))) (\lambda (H10: (eq T t6 t2)).(eq_ind T t2 (\lambda 
2458 (t7: T).((pr0 t5 t7) \to (ex2 T (\lambda (t8: T).(pr0 t1 t8)) (\lambda (t8: 
2459 T).(pr0 t2 t8))))) (\lambda (H11: (pr0 t5 t2)).(let H12 \def (eq_ind_r T t 
2460 (\lambda (t7: T).(eq T (THead (Flat Cast) u t3) t7)) H3 (THead (Flat Cast) u0 
2461 t5) H8) in (let H13 \def (f_equal T T (\lambda (e: T).(match e in T return 
2462 (\lambda (_: T).T) with [(TSort _) \Rightarrow u | (TLRef _) \Rightarrow u | 
2463 (THead _ t7 _) \Rightarrow t7])) (THead (Flat Cast) u t3) (THead (Flat Cast) 
2464 u0 t5) H12) in ((let H14 \def (f_equal T T (\lambda (e: T).(match e in T 
2465 return (\lambda (_: T).T) with [(TSort _) \Rightarrow t3 | (TLRef _) 
2466 \Rightarrow t3 | (THead _ _ t7) \Rightarrow t7])) (THead (Flat Cast) u t3) 
2467 (THead (Flat Cast) u0 t5) H12) in (\lambda (_: (eq T u u0)).(let H16 \def 
2468 (eq_ind_r T t (\lambda (t7: T).(\forall (v: T).((tlt v t7) \to (\forall (t8: 
2469 T).((pr0 v t8) \to (\forall (t9: T).((pr0 v t9) \to (ex2 T (\lambda (t10: 
2470 T).(pr0 t8 t10)) (\lambda (t10: T).(pr0 t9 t10)))))))))) H (THead (Flat Cast) 
2471 u0 t5) H8) in (let H17 \def (eq_ind T t3 (\lambda (t7: T).(pr0 t7 t1)) H6 t5 
2472 H14) in (ex2_ind T (\lambda (t7: T).(pr0 t1 t7)) (\lambda (t7: T).(pr0 t2 
2473 t7)) (ex2 T (\lambda (t7: T).(pr0 t1 t7)) (\lambda (t7: T).(pr0 t2 t7))) 
2474 (\lambda (x: T).(\lambda (H18: (pr0 t1 x)).(\lambda (H19: (pr0 t2 
2475 x)).(ex_intro2 T (\lambda (t7: T).(pr0 t1 t7)) (\lambda (t7: T).(pr0 t2 t7)) 
2476 x H18 H19)))) (H16 t5 (tlt_head_dx (Flat Cast) u0 t5) t1 H17 t2 H11)))))) 
2477 H13)))) t6 (sym_eq T t6 t2 H10))) t H8 H9 H7)))]) in (H7 (refl_equal T t) 
2478 (refl_equal T t2)))) t4 (sym_eq T t4 t1 H5))) t H3 H4 H2)))]) in (H2 
2479 (refl_equal T t) (refl_equal T t1))))))))) t0).
2480