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