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