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