1 (**************************************************************************)
4 (* ||A|| A project by Andrea Asperti *)
6 (* ||I|| Developers: *)
7 (* ||T|| The HELM team. *)
8 (* ||A|| http://helm.cs.unibo.it *)
10 (* \ / This file is distributed under the terms of the *)
11 (* v GNU General Public License Version 2 *)
13 (**************************************************************************)
15 (* This file was automatically generated: do not edit *********************)
17 include "basic_1/csubc/defs.ma".
19 implied rec lemma csubc_ind (g: G) (P: (C \to (C \to Prop))) (f: (\forall (n:
20 nat).(P (CSort n) (CSort n)))) (f0: (\forall (c1: C).(\forall (c2: C).((csubc
21 g c1 c2) \to ((P c1 c2) \to (\forall (k: K).(\forall (v: T).(P (CHead c1 k v)
22 (CHead c2 k v))))))))) (f1: (\forall (c1: C).(\forall (c2: C).((csubc g c1
23 c2) \to ((P c1 c2) \to (\forall (b: B).((not (eq B b Void)) \to (\forall (u1:
24 T).(\forall (u2: T).(P (CHead c1 (Bind Void) u1) (CHead c2 (Bind b)
25 u2))))))))))) (f2: (\forall (c1: C).(\forall (c2: C).((csubc g c1 c2) \to ((P
26 c1 c2) \to (\forall (v: T).(\forall (a: A).((sc3 g (asucc g a) c1 v) \to
27 (\forall (w: T).((sc3 g a c2 w) \to (P (CHead c1 (Bind Abst) v) (CHead c2
28 (Bind Abbr) w)))))))))))) (c: C) (c0: C) (c1: csubc g c c0) on c1: P c c0
29 \def match c1 with [(csubc_sort n) \Rightarrow (f n) | (csubc_head c2 c3 c4 k
30 v) \Rightarrow (f0 c2 c3 c4 ((csubc_ind g P f f0 f1 f2) c2 c3 c4) k v) |
31 (csubc_void c2 c3 c4 b n u1 u2) \Rightarrow (f1 c2 c3 c4 ((csubc_ind g P f f0
32 f1 f2) c2 c3 c4) b n u1 u2) | (csubc_abst c2 c3 c4 v a s0 w s1) \Rightarrow
33 (f2 c2 c3 c4 ((csubc_ind g P f f0 f1 f2) c2 c3 c4) v a s0 w s1)].
35 lemma csubc_gen_sort_l:
36 \forall (g: G).(\forall (x: C).(\forall (n: nat).((csubc g (CSort n) x) \to
39 \lambda (g: G).(\lambda (x: C).(\lambda (n: nat).(\lambda (H: (csubc g
40 (CSort n) x)).(insert_eq C (CSort n) (\lambda (c: C).(csubc g c x)) (\lambda
41 (c: C).(eq C x c)) (\lambda (y: C).(\lambda (H0: (csubc g y x)).(csubc_ind g
42 (\lambda (c: C).(\lambda (c0: C).((eq C c (CSort n)) \to (eq C c0 c))))
43 (\lambda (n0: nat).(\lambda (H1: (eq C (CSort n0) (CSort n))).(let H2 \def
44 (f_equal C nat (\lambda (e: C).(match e with [(CSort n1) \Rightarrow n1 |
45 (CHead _ _ _) \Rightarrow n0])) (CSort n0) (CSort n) H1) in (eq_ind_r nat n
46 (\lambda (n1: nat).(eq C (CSort n1) (CSort n1))) (refl_equal C (CSort n)) n0
47 H2)))) (\lambda (c1: C).(\lambda (c2: C).(\lambda (_: (csubc g c1
48 c2)).(\lambda (_: (((eq C c1 (CSort n)) \to (eq C c2 c1)))).(\lambda (k:
49 K).(\lambda (v: T).(\lambda (H3: (eq C (CHead c1 k v) (CSort n))).(let H4
50 \def (eq_ind C (CHead c1 k v) (\lambda (ee: C).(match ee with [(CSort _)
51 \Rightarrow False | (CHead _ _ _) \Rightarrow True])) I (CSort n) H3) in
52 (False_ind (eq C (CHead c2 k v) (CHead c1 k v)) H4))))))))) (\lambda (c1:
53 C).(\lambda (c2: C).(\lambda (_: (csubc g c1 c2)).(\lambda (_: (((eq C c1
54 (CSort n)) \to (eq C c2 c1)))).(\lambda (b: B).(\lambda (_: (not (eq B b
55 Void))).(\lambda (u1: T).(\lambda (u2: T).(\lambda (H4: (eq C (CHead c1 (Bind
56 Void) u1) (CSort n))).(let H5 \def (eq_ind C (CHead c1 (Bind Void) u1)
57 (\lambda (ee: C).(match ee with [(CSort _) \Rightarrow False | (CHead _ _ _)
58 \Rightarrow True])) I (CSort n) H4) in (False_ind (eq C (CHead c2 (Bind b)
59 u2) (CHead c1 (Bind Void) u1)) H5))))))))))) (\lambda (c1: C).(\lambda (c2:
60 C).(\lambda (_: (csubc g c1 c2)).(\lambda (_: (((eq C c1 (CSort n)) \to (eq C
61 c2 c1)))).(\lambda (v: T).(\lambda (a: A).(\lambda (_: (sc3 g (asucc g a) c1
62 v)).(\lambda (w: T).(\lambda (_: (sc3 g a c2 w)).(\lambda (H5: (eq C (CHead
63 c1 (Bind Abst) v) (CSort n))).(let H6 \def (eq_ind C (CHead c1 (Bind Abst) v)
64 (\lambda (ee: C).(match ee with [(CSort _) \Rightarrow False | (CHead _ _ _)
65 \Rightarrow True])) I (CSort n) H5) in (False_ind (eq C (CHead c2 (Bind Abbr)
66 w) (CHead c1 (Bind Abst) v)) H6)))))))))))) y x H0))) H)))).
68 lemma csubc_gen_head_l:
69 \forall (g: G).(\forall (c1: C).(\forall (x: C).(\forall (v: T).(\forall (k:
70 K).((csubc g (CHead c1 k v) x) \to (or3 (ex2 C (\lambda (c2: C).(eq C x
71 (CHead c2 k v))) (\lambda (c2: C).(csubc g c1 c2))) (ex5_3 C T A (\lambda (_:
72 C).(\lambda (_: T).(\lambda (_: A).(eq K k (Bind Abst))))) (\lambda (c2:
73 C).(\lambda (w: T).(\lambda (_: A).(eq C x (CHead c2 (Bind Abbr) w)))))
74 (\lambda (c2: C).(\lambda (_: T).(\lambda (_: A).(csubc g c1 c2)))) (\lambda
75 (_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g (asucc g a) c1 v)))) (\lambda
76 (c2: C).(\lambda (w: T).(\lambda (a: A).(sc3 g a c2 w))))) (ex4_3 B C T
77 (\lambda (b: B).(\lambda (c2: C).(\lambda (v2: T).(eq C x (CHead c2 (Bind b)
78 v2))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: T).(eq K k (Bind
79 Void))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b
80 Void))))) (\lambda (_: B).(\lambda (c2: C).(\lambda (_: T).(csubc g c1
83 \lambda (g: G).(\lambda (c1: C).(\lambda (x: C).(\lambda (v: T).(\lambda (k:
84 K).(\lambda (H: (csubc g (CHead c1 k v) x)).(insert_eq C (CHead c1 k v)
85 (\lambda (c: C).(csubc g c x)) (\lambda (_: C).(or3 (ex2 C (\lambda (c2:
86 C).(eq C x (CHead c2 k v))) (\lambda (c2: C).(csubc g c1 c2))) (ex5_3 C T A
87 (\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(eq K k (Bind Abst)))))
88 (\lambda (c2: C).(\lambda (w: T).(\lambda (_: A).(eq C x (CHead c2 (Bind
89 Abbr) w))))) (\lambda (c2: C).(\lambda (_: T).(\lambda (_: A).(csubc g c1
90 c2)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g (asucc g a) c1
91 v)))) (\lambda (c2: C).(\lambda (w: T).(\lambda (a: A).(sc3 g a c2 w)))))
92 (ex4_3 B C T (\lambda (b: B).(\lambda (c2: C).(\lambda (v2: T).(eq C x (CHead
93 c2 (Bind b) v2))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: T).(eq K k
94 (Bind Void))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b
95 Void))))) (\lambda (_: B).(\lambda (c2: C).(\lambda (_: T).(csubc g c1
96 c2))))))) (\lambda (y: C).(\lambda (H0: (csubc g y x)).(csubc_ind g (\lambda
97 (c: C).(\lambda (c0: C).((eq C c (CHead c1 k v)) \to (or3 (ex2 C (\lambda
98 (c2: C).(eq C c0 (CHead c2 k v))) (\lambda (c2: C).(csubc g c1 c2))) (ex5_3 C
99 T A (\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(eq K k (Bind Abst)))))
100 (\lambda (c2: C).(\lambda (w: T).(\lambda (_: A).(eq C c0 (CHead c2 (Bind
101 Abbr) w))))) (\lambda (c2: C).(\lambda (_: T).(\lambda (_: A).(csubc g c1
102 c2)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g (asucc g a) c1
103 v)))) (\lambda (c2: C).(\lambda (w: T).(\lambda (a: A).(sc3 g a c2 w)))))
104 (ex4_3 B C T (\lambda (b: B).(\lambda (c2: C).(\lambda (v2: T).(eq C c0
105 (CHead c2 (Bind b) v2))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_:
106 T).(eq K k (Bind Void))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_:
107 T).(not (eq B b Void))))) (\lambda (_: B).(\lambda (c2: C).(\lambda (_:
108 T).(csubc g c1 c2))))))))) (\lambda (n: nat).(\lambda (H1: (eq C (CSort n)
109 (CHead c1 k v))).(let H2 \def (eq_ind C (CSort n) (\lambda (ee: C).(match ee
110 with [(CSort _) \Rightarrow True | (CHead _ _ _) \Rightarrow False])) I
111 (CHead c1 k v) H1) in (False_ind (or3 (ex2 C (\lambda (c2: C).(eq C (CSort n)
112 (CHead c2 k v))) (\lambda (c2: C).(csubc g c1 c2))) (ex5_3 C T A (\lambda (_:
113 C).(\lambda (_: T).(\lambda (_: A).(eq K k (Bind Abst))))) (\lambda (c2:
114 C).(\lambda (w: T).(\lambda (_: A).(eq C (CSort n) (CHead c2 (Bind Abbr)
115 w))))) (\lambda (c2: C).(\lambda (_: T).(\lambda (_: A).(csubc g c1 c2))))
116 (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g (asucc g a) c1 v))))
117 (\lambda (c2: C).(\lambda (w: T).(\lambda (a: A).(sc3 g a c2 w))))) (ex4_3 B
118 C T (\lambda (b: B).(\lambda (c2: C).(\lambda (v2: T).(eq C (CSort n) (CHead
119 c2 (Bind b) v2))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: T).(eq K k
120 (Bind Void))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b
121 Void))))) (\lambda (_: B).(\lambda (c2: C).(\lambda (_: T).(csubc g c1
122 c2)))))) H2)))) (\lambda (c0: C).(\lambda (c2: C).(\lambda (H1: (csubc g c0
123 c2)).(\lambda (H2: (((eq C c0 (CHead c1 k v)) \to (or3 (ex2 C (\lambda (c3:
124 C).(eq C c2 (CHead c3 k v))) (\lambda (c3: C).(csubc g c1 c3))) (ex5_3 C T A
125 (\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(eq K k (Bind Abst)))))
126 (\lambda (c3: C).(\lambda (w: T).(\lambda (_: A).(eq C c2 (CHead c3 (Bind
127 Abbr) w))))) (\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g c1
128 c3)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g (asucc g a) c1
129 v)))) (\lambda (c3: C).(\lambda (w: T).(\lambda (a: A).(sc3 g a c3 w)))))
130 (ex4_3 B C T (\lambda (b: B).(\lambda (c3: C).(\lambda (v2: T).(eq C c2
131 (CHead c3 (Bind b) v2))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_:
132 T).(eq K k (Bind Void))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_:
133 T).(not (eq B b Void))))) (\lambda (_: B).(\lambda (c3: C).(\lambda (_:
134 T).(csubc g c1 c3))))))))).(\lambda (k0: K).(\lambda (v0: T).(\lambda (H3:
135 (eq C (CHead c0 k0 v0) (CHead c1 k v))).(let H4 \def (f_equal C C (\lambda
136 (e: C).(match e with [(CSort _) \Rightarrow c0 | (CHead c _ _) \Rightarrow
137 c])) (CHead c0 k0 v0) (CHead c1 k v) H3) in ((let H5 \def (f_equal C K
138 (\lambda (e: C).(match e with [(CSort _) \Rightarrow k0 | (CHead _ k1 _)
139 \Rightarrow k1])) (CHead c0 k0 v0) (CHead c1 k v) H3) in ((let H6 \def
140 (f_equal C T (\lambda (e: C).(match e with [(CSort _) \Rightarrow v0 | (CHead
141 _ _ t) \Rightarrow t])) (CHead c0 k0 v0) (CHead c1 k v) H3) in (\lambda (H7:
142 (eq K k0 k)).(\lambda (H8: (eq C c0 c1)).(eq_ind_r T v (\lambda (t: T).(or3
143 (ex2 C (\lambda (c3: C).(eq C (CHead c2 k0 t) (CHead c3 k v))) (\lambda (c3:
144 C).(csubc g c1 c3))) (ex5_3 C T A (\lambda (_: C).(\lambda (_: T).(\lambda
145 (_: A).(eq K k (Bind Abst))))) (\lambda (c3: C).(\lambda (w: T).(\lambda (_:
146 A).(eq C (CHead c2 k0 t) (CHead c3 (Bind Abbr) w))))) (\lambda (c3:
147 C).(\lambda (_: T).(\lambda (_: A).(csubc g c1 c3)))) (\lambda (_:
148 C).(\lambda (_: T).(\lambda (a: A).(sc3 g (asucc g a) c1 v)))) (\lambda (c3:
149 C).(\lambda (w: T).(\lambda (a: A).(sc3 g a c3 w))))) (ex4_3 B C T (\lambda
150 (b: B).(\lambda (c3: C).(\lambda (v2: T).(eq C (CHead c2 k0 t) (CHead c3
151 (Bind b) v2))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: T).(eq K k
152 (Bind Void))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b
153 Void))))) (\lambda (_: B).(\lambda (c3: C).(\lambda (_: T).(csubc g c1
154 c3))))))) (eq_ind_r K k (\lambda (k1: K).(or3 (ex2 C (\lambda (c3: C).(eq C
155 (CHead c2 k1 v) (CHead c3 k v))) (\lambda (c3: C).(csubc g c1 c3))) (ex5_3 C
156 T A (\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(eq K k (Bind Abst)))))
157 (\lambda (c3: C).(\lambda (w: T).(\lambda (_: A).(eq C (CHead c2 k1 v) (CHead
158 c3 (Bind Abbr) w))))) (\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc
159 g c1 c3)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g (asucc g
160 a) c1 v)))) (\lambda (c3: C).(\lambda (w: T).(\lambda (a: A).(sc3 g a c3
161 w))))) (ex4_3 B C T (\lambda (b: B).(\lambda (c3: C).(\lambda (v2: T).(eq C
162 (CHead c2 k1 v) (CHead c3 (Bind b) v2))))) (\lambda (_: B).(\lambda (_:
163 C).(\lambda (_: T).(eq K k (Bind Void))))) (\lambda (b: B).(\lambda (_:
164 C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_: B).(\lambda (c3:
165 C).(\lambda (_: T).(csubc g c1 c3))))))) (let H9 \def (eq_ind C c0 (\lambda
166 (c: C).((eq C c (CHead c1 k v)) \to (or3 (ex2 C (\lambda (c3: C).(eq C c2
167 (CHead c3 k v))) (\lambda (c3: C).(csubc g c1 c3))) (ex5_3 C T A (\lambda (_:
168 C).(\lambda (_: T).(\lambda (_: A).(eq K k (Bind Abst))))) (\lambda (c3:
169 C).(\lambda (w: T).(\lambda (_: A).(eq C c2 (CHead c3 (Bind Abbr) w)))))
170 (\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g c1 c3)))) (\lambda
171 (_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g (asucc g a) c1 v)))) (\lambda
172 (c3: C).(\lambda (w: T).(\lambda (a: A).(sc3 g a c3 w))))) (ex4_3 B C T
173 (\lambda (b: B).(\lambda (c3: C).(\lambda (v2: T).(eq C c2 (CHead c3 (Bind b)
174 v2))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: T).(eq K k (Bind
175 Void))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b
176 Void))))) (\lambda (_: B).(\lambda (c3: C).(\lambda (_: T).(csubc g c1
177 c3)))))))) H2 c1 H8) in (let H10 \def (eq_ind C c0 (\lambda (c: C).(csubc g c
178 c2)) H1 c1 H8) in (or3_intro0 (ex2 C (\lambda (c3: C).(eq C (CHead c2 k v)
179 (CHead c3 k v))) (\lambda (c3: C).(csubc g c1 c3))) (ex5_3 C T A (\lambda (_:
180 C).(\lambda (_: T).(\lambda (_: A).(eq K k (Bind Abst))))) (\lambda (c3:
181 C).(\lambda (w: T).(\lambda (_: A).(eq C (CHead c2 k v) (CHead c3 (Bind Abbr)
182 w))))) (\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g c1 c3))))
183 (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g (asucc g a) c1 v))))
184 (\lambda (c3: C).(\lambda (w: T).(\lambda (a: A).(sc3 g a c3 w))))) (ex4_3 B
185 C T (\lambda (b: B).(\lambda (c3: C).(\lambda (v2: T).(eq C (CHead c2 k v)
186 (CHead c3 (Bind b) v2))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_:
187 T).(eq K k (Bind Void))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_:
188 T).(not (eq B b Void))))) (\lambda (_: B).(\lambda (c3: C).(\lambda (_:
189 T).(csubc g c1 c3))))) (ex_intro2 C (\lambda (c3: C).(eq C (CHead c2 k v)
190 (CHead c3 k v))) (\lambda (c3: C).(csubc g c1 c3)) c2 (refl_equal C (CHead c2
191 k v)) H10)))) k0 H7) v0 H6)))) H5)) H4))))))))) (\lambda (c0: C).(\lambda
192 (c2: C).(\lambda (H1: (csubc g c0 c2)).(\lambda (H2: (((eq C c0 (CHead c1 k
193 v)) \to (or3 (ex2 C (\lambda (c3: C).(eq C c2 (CHead c3 k v))) (\lambda (c3:
194 C).(csubc g c1 c3))) (ex5_3 C T A (\lambda (_: C).(\lambda (_: T).(\lambda
195 (_: A).(eq K k (Bind Abst))))) (\lambda (c3: C).(\lambda (w: T).(\lambda (_:
196 A).(eq C c2 (CHead c3 (Bind Abbr) w))))) (\lambda (c3: C).(\lambda (_:
197 T).(\lambda (_: A).(csubc g c1 c3)))) (\lambda (_: C).(\lambda (_:
198 T).(\lambda (a: A).(sc3 g (asucc g a) c1 v)))) (\lambda (c3: C).(\lambda (w:
199 T).(\lambda (a: A).(sc3 g a c3 w))))) (ex4_3 B C T (\lambda (b: B).(\lambda
200 (c3: C).(\lambda (v2: T).(eq C c2 (CHead c3 (Bind b) v2))))) (\lambda (_:
201 B).(\lambda (_: C).(\lambda (_: T).(eq K k (Bind Void))))) (\lambda (b:
202 B).(\lambda (_: C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_:
203 B).(\lambda (c3: C).(\lambda (_: T).(csubc g c1 c3))))))))).(\lambda (b:
204 B).(\lambda (H3: (not (eq B b Void))).(\lambda (u1: T).(\lambda (u2:
205 T).(\lambda (H4: (eq C (CHead c0 (Bind Void) u1) (CHead c1 k v))).(let H5
206 \def (f_equal C C (\lambda (e: C).(match e with [(CSort _) \Rightarrow c0 |
207 (CHead c _ _) \Rightarrow c])) (CHead c0 (Bind Void) u1) (CHead c1 k v) H4)
208 in ((let H6 \def (f_equal C K (\lambda (e: C).(match e with [(CSort _)
209 \Rightarrow (Bind Void) | (CHead _ k0 _) \Rightarrow k0])) (CHead c0 (Bind
210 Void) u1) (CHead c1 k v) H4) in ((let H7 \def (f_equal C T (\lambda (e:
211 C).(match e with [(CSort _) \Rightarrow u1 | (CHead _ _ t) \Rightarrow t]))
212 (CHead c0 (Bind Void) u1) (CHead c1 k v) H4) in (\lambda (H8: (eq K (Bind
213 Void) k)).(\lambda (H9: (eq C c0 c1)).(let H10 \def (eq_ind C c0 (\lambda (c:
214 C).((eq C c (CHead c1 k v)) \to (or3 (ex2 C (\lambda (c3: C).(eq C c2 (CHead
215 c3 k v))) (\lambda (c3: C).(csubc g c1 c3))) (ex5_3 C T A (\lambda (_:
216 C).(\lambda (_: T).(\lambda (_: A).(eq K k (Bind Abst))))) (\lambda (c3:
217 C).(\lambda (w: T).(\lambda (_: A).(eq C c2 (CHead c3 (Bind Abbr) w)))))
218 (\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g c1 c3)))) (\lambda
219 (_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g (asucc g a) c1 v)))) (\lambda
220 (c3: C).(\lambda (w: T).(\lambda (a: A).(sc3 g a c3 w))))) (ex4_3 B C T
221 (\lambda (b0: B).(\lambda (c3: C).(\lambda (v2: T).(eq C c2 (CHead c3 (Bind
222 b0) v2))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: T).(eq K k (Bind
223 Void))))) (\lambda (b0: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b0
224 Void))))) (\lambda (_: B).(\lambda (c3: C).(\lambda (_: T).(csubc g c1
225 c3)))))))) H2 c1 H9) in (let H11 \def (eq_ind C c0 (\lambda (c: C).(csubc g c
226 c2)) H1 c1 H9) in (let H12 \def (eq_ind_r K k (\lambda (k0: K).((eq C c1
227 (CHead c1 k0 v)) \to (or3 (ex2 C (\lambda (c3: C).(eq C c2 (CHead c3 k0 v)))
228 (\lambda (c3: C).(csubc g c1 c3))) (ex5_3 C T A (\lambda (_: C).(\lambda (_:
229 T).(\lambda (_: A).(eq K k0 (Bind Abst))))) (\lambda (c3: C).(\lambda (w:
230 T).(\lambda (_: A).(eq C c2 (CHead c3 (Bind Abbr) w))))) (\lambda (c3:
231 C).(\lambda (_: T).(\lambda (_: A).(csubc g c1 c3)))) (\lambda (_:
232 C).(\lambda (_: T).(\lambda (a: A).(sc3 g (asucc g a) c1 v)))) (\lambda (c3:
233 C).(\lambda (w: T).(\lambda (a: A).(sc3 g a c3 w))))) (ex4_3 B C T (\lambda
234 (b0: B).(\lambda (c3: C).(\lambda (v2: T).(eq C c2 (CHead c3 (Bind b0)
235 v2))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: T).(eq K k0 (Bind
236 Void))))) (\lambda (b0: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b0
237 Void))))) (\lambda (_: B).(\lambda (c3: C).(\lambda (_: T).(csubc g c1
238 c3)))))))) H10 (Bind Void) H8) in (eq_ind K (Bind Void) (\lambda (k0: K).(or3
239 (ex2 C (\lambda (c3: C).(eq C (CHead c2 (Bind b) u2) (CHead c3 k0 v)))
240 (\lambda (c3: C).(csubc g c1 c3))) (ex5_3 C T A (\lambda (_: C).(\lambda (_:
241 T).(\lambda (_: A).(eq K k0 (Bind Abst))))) (\lambda (c3: C).(\lambda (w:
242 T).(\lambda (_: A).(eq C (CHead c2 (Bind b) u2) (CHead c3 (Bind Abbr) w)))))
243 (\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g c1 c3)))) (\lambda
244 (_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g (asucc g a) c1 v)))) (\lambda
245 (c3: C).(\lambda (w: T).(\lambda (a: A).(sc3 g a c3 w))))) (ex4_3 B C T
246 (\lambda (b0: B).(\lambda (c3: C).(\lambda (v2: T).(eq C (CHead c2 (Bind b)
247 u2) (CHead c3 (Bind b0) v2))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_:
248 T).(eq K k0 (Bind Void))))) (\lambda (b0: B).(\lambda (_: C).(\lambda (_:
249 T).(not (eq B b0 Void))))) (\lambda (_: B).(\lambda (c3: C).(\lambda (_:
250 T).(csubc g c1 c3))))))) (or3_intro2 (ex2 C (\lambda (c3: C).(eq C (CHead c2
251 (Bind b) u2) (CHead c3 (Bind Void) v))) (\lambda (c3: C).(csubc g c1 c3)))
252 (ex5_3 C T A (\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(eq K (Bind
253 Void) (Bind Abst))))) (\lambda (c3: C).(\lambda (w: T).(\lambda (_: A).(eq C
254 (CHead c2 (Bind b) u2) (CHead c3 (Bind Abbr) w))))) (\lambda (c3: C).(\lambda
255 (_: T).(\lambda (_: A).(csubc g c1 c3)))) (\lambda (_: C).(\lambda (_:
256 T).(\lambda (a: A).(sc3 g (asucc g a) c1 v)))) (\lambda (c3: C).(\lambda (w:
257 T).(\lambda (a: A).(sc3 g a c3 w))))) (ex4_3 B C T (\lambda (b0: B).(\lambda
258 (c3: C).(\lambda (v2: T).(eq C (CHead c2 (Bind b) u2) (CHead c3 (Bind b0)
259 v2))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: T).(eq K (Bind Void)
260 (Bind Void))))) (\lambda (b0: B).(\lambda (_: C).(\lambda (_: T).(not (eq B
261 b0 Void))))) (\lambda (_: B).(\lambda (c3: C).(\lambda (_: T).(csubc g c1
262 c3))))) (ex4_3_intro B C T (\lambda (b0: B).(\lambda (c3: C).(\lambda (v2:
263 T).(eq C (CHead c2 (Bind b) u2) (CHead c3 (Bind b0) v2))))) (\lambda (_:
264 B).(\lambda (_: C).(\lambda (_: T).(eq K (Bind Void) (Bind Void))))) (\lambda
265 (b0: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b0 Void))))) (\lambda (_:
266 B).(\lambda (c3: C).(\lambda (_: T).(csubc g c1 c3)))) b c2 u2 (refl_equal C
267 (CHead c2 (Bind b) u2)) (refl_equal K (Bind Void)) H3 H11)) k H8))))))) H6))
268 H5))))))))))) (\lambda (c0: C).(\lambda (c2: C).(\lambda (H1: (csubc g c0
269 c2)).(\lambda (H2: (((eq C c0 (CHead c1 k v)) \to (or3 (ex2 C (\lambda (c3:
270 C).(eq C c2 (CHead c3 k v))) (\lambda (c3: C).(csubc g c1 c3))) (ex5_3 C T A
271 (\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(eq K k (Bind Abst)))))
272 (\lambda (c3: C).(\lambda (w: T).(\lambda (_: A).(eq C c2 (CHead c3 (Bind
273 Abbr) w))))) (\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g c1
274 c3)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g (asucc g a) c1
275 v)))) (\lambda (c3: C).(\lambda (w: T).(\lambda (a: A).(sc3 g a c3 w)))))
276 (ex4_3 B C T (\lambda (b: B).(\lambda (c3: C).(\lambda (v2: T).(eq C c2
277 (CHead c3 (Bind b) v2))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_:
278 T).(eq K k (Bind Void))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_:
279 T).(not (eq B b Void))))) (\lambda (_: B).(\lambda (c3: C).(\lambda (_:
280 T).(csubc g c1 c3))))))))).(\lambda (v0: T).(\lambda (a: A).(\lambda (H3:
281 (sc3 g (asucc g a) c0 v0)).(\lambda (w: T).(\lambda (H4: (sc3 g a c2
282 w)).(\lambda (H5: (eq C (CHead c0 (Bind Abst) v0) (CHead c1 k v))).(let H6
283 \def (f_equal C C (\lambda (e: C).(match e with [(CSort _) \Rightarrow c0 |
284 (CHead c _ _) \Rightarrow c])) (CHead c0 (Bind Abst) v0) (CHead c1 k v) H5)
285 in ((let H7 \def (f_equal C K (\lambda (e: C).(match e with [(CSort _)
286 \Rightarrow (Bind Abst) | (CHead _ k0 _) \Rightarrow k0])) (CHead c0 (Bind
287 Abst) v0) (CHead c1 k v) H5) in ((let H8 \def (f_equal C T (\lambda (e:
288 C).(match e with [(CSort _) \Rightarrow v0 | (CHead _ _ t) \Rightarrow t]))
289 (CHead c0 (Bind Abst) v0) (CHead c1 k v) H5) in (\lambda (H9: (eq K (Bind
290 Abst) k)).(\lambda (H10: (eq C c0 c1)).(let H11 \def (eq_ind T v0 (\lambda
291 (t: T).(sc3 g (asucc g a) c0 t)) H3 v H8) in (let H12 \def (eq_ind C c0
292 (\lambda (c: C).(sc3 g (asucc g a) c v)) H11 c1 H10) in (let H13 \def (eq_ind
293 C c0 (\lambda (c: C).((eq C c (CHead c1 k v)) \to (or3 (ex2 C (\lambda (c3:
294 C).(eq C c2 (CHead c3 k v))) (\lambda (c3: C).(csubc g c1 c3))) (ex5_3 C T A
295 (\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(eq K k (Bind Abst)))))
296 (\lambda (c3: C).(\lambda (w0: T).(\lambda (_: A).(eq C c2 (CHead c3 (Bind
297 Abbr) w0))))) (\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g c1
298 c3)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a0: A).(sc3 g (asucc g a0)
299 c1 v)))) (\lambda (c3: C).(\lambda (w0: T).(\lambda (a0: A).(sc3 g a0 c3
300 w0))))) (ex4_3 B C T (\lambda (b: B).(\lambda (c3: C).(\lambda (v2: T).(eq C
301 c2 (CHead c3 (Bind b) v2))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_:
302 T).(eq K k (Bind Void))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_:
303 T).(not (eq B b Void))))) (\lambda (_: B).(\lambda (c3: C).(\lambda (_:
304 T).(csubc g c1 c3)))))))) H2 c1 H10) in (let H14 \def (eq_ind C c0 (\lambda
305 (c: C).(csubc g c c2)) H1 c1 H10) in (let H15 \def (eq_ind_r K k (\lambda
306 (k0: K).((eq C c1 (CHead c1 k0 v)) \to (or3 (ex2 C (\lambda (c3: C).(eq C c2
307 (CHead c3 k0 v))) (\lambda (c3: C).(csubc g c1 c3))) (ex5_3 C T A (\lambda
308 (_: C).(\lambda (_: T).(\lambda (_: A).(eq K k0 (Bind Abst))))) (\lambda (c3:
309 C).(\lambda (w0: T).(\lambda (_: A).(eq C c2 (CHead c3 (Bind Abbr) w0)))))
310 (\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g c1 c3)))) (\lambda
311 (_: C).(\lambda (_: T).(\lambda (a0: A).(sc3 g (asucc g a0) c1 v)))) (\lambda
312 (c3: C).(\lambda (w0: T).(\lambda (a0: A).(sc3 g a0 c3 w0))))) (ex4_3 B C T
313 (\lambda (b: B).(\lambda (c3: C).(\lambda (v2: T).(eq C c2 (CHead c3 (Bind b)
314 v2))))) (\lambda (_: B).(\lambda (_: C).(\lambda (_: T).(eq K k0 (Bind
315 Void))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b
316 Void))))) (\lambda (_: B).(\lambda (c3: C).(\lambda (_: T).(csubc g c1
317 c3)))))))) H13 (Bind Abst) H9) in (eq_ind K (Bind Abst) (\lambda (k0: K).(or3
318 (ex2 C (\lambda (c3: C).(eq C (CHead c2 (Bind Abbr) w) (CHead c3 k0 v)))
319 (\lambda (c3: C).(csubc g c1 c3))) (ex5_3 C T A (\lambda (_: C).(\lambda (_:
320 T).(\lambda (_: A).(eq K k0 (Bind Abst))))) (\lambda (c3: C).(\lambda (w0:
321 T).(\lambda (_: A).(eq C (CHead c2 (Bind Abbr) w) (CHead c3 (Bind Abbr)
322 w0))))) (\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g c1 c3))))
323 (\lambda (_: C).(\lambda (_: T).(\lambda (a0: A).(sc3 g (asucc g a0) c1 v))))
324 (\lambda (c3: C).(\lambda (w0: T).(\lambda (a0: A).(sc3 g a0 c3 w0)))))
325 (ex4_3 B C T (\lambda (b: B).(\lambda (c3: C).(\lambda (v2: T).(eq C (CHead
326 c2 (Bind Abbr) w) (CHead c3 (Bind b) v2))))) (\lambda (_: B).(\lambda (_:
327 C).(\lambda (_: T).(eq K k0 (Bind Void))))) (\lambda (b: B).(\lambda (_:
328 C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_: B).(\lambda (c3:
329 C).(\lambda (_: T).(csubc g c1 c3))))))) (or3_intro1 (ex2 C (\lambda (c3:
330 C).(eq C (CHead c2 (Bind Abbr) w) (CHead c3 (Bind Abst) v))) (\lambda (c3:
331 C).(csubc g c1 c3))) (ex5_3 C T A (\lambda (_: C).(\lambda (_: T).(\lambda
332 (_: A).(eq K (Bind Abst) (Bind Abst))))) (\lambda (c3: C).(\lambda (w0:
333 T).(\lambda (_: A).(eq C (CHead c2 (Bind Abbr) w) (CHead c3 (Bind Abbr)
334 w0))))) (\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g c1 c3))))
335 (\lambda (_: C).(\lambda (_: T).(\lambda (a0: A).(sc3 g (asucc g a0) c1 v))))
336 (\lambda (c3: C).(\lambda (w0: T).(\lambda (a0: A).(sc3 g a0 c3 w0)))))
337 (ex4_3 B C T (\lambda (b: B).(\lambda (c3: C).(\lambda (v2: T).(eq C (CHead
338 c2 (Bind Abbr) w) (CHead c3 (Bind b) v2))))) (\lambda (_: B).(\lambda (_:
339 C).(\lambda (_: T).(eq K (Bind Abst) (Bind Void))))) (\lambda (b: B).(\lambda
340 (_: C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_: B).(\lambda (c3:
341 C).(\lambda (_: T).(csubc g c1 c3))))) (ex5_3_intro C T A (\lambda (_:
342 C).(\lambda (_: T).(\lambda (_: A).(eq K (Bind Abst) (Bind Abst))))) (\lambda
343 (c3: C).(\lambda (w0: T).(\lambda (_: A).(eq C (CHead c2 (Bind Abbr) w)
344 (CHead c3 (Bind Abbr) w0))))) (\lambda (c3: C).(\lambda (_: T).(\lambda (_:
345 A).(csubc g c1 c3)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a0: A).(sc3 g
346 (asucc g a0) c1 v)))) (\lambda (c3: C).(\lambda (w0: T).(\lambda (a0: A).(sc3
347 g a0 c3 w0)))) c2 w a (refl_equal K (Bind Abst)) (refl_equal C (CHead c2
348 (Bind Abbr) w)) H14 H12 H4)) k H9))))))))) H7)) H6)))))))))))) y x H0)))
351 lemma csubc_gen_sort_r:
352 \forall (g: G).(\forall (x: C).(\forall (n: nat).((csubc g x (CSort n)) \to
353 (eq C x (CSort n)))))
355 \lambda (g: G).(\lambda (x: C).(\lambda (n: nat).(\lambda (H: (csubc g x
356 (CSort n))).(insert_eq C (CSort n) (\lambda (c: C).(csubc g x c)) (\lambda
357 (c: C).(eq C x c)) (\lambda (y: C).(\lambda (H0: (csubc g x y)).(csubc_ind g
358 (\lambda (c: C).(\lambda (c0: C).((eq C c0 (CSort n)) \to (eq C c c0))))
359 (\lambda (n0: nat).(\lambda (H1: (eq C (CSort n0) (CSort n))).(let H2 \def
360 (f_equal C nat (\lambda (e: C).(match e with [(CSort n1) \Rightarrow n1 |
361 (CHead _ _ _) \Rightarrow n0])) (CSort n0) (CSort n) H1) in (eq_ind_r nat n
362 (\lambda (n1: nat).(eq C (CSort n1) (CSort n1))) (refl_equal C (CSort n)) n0
363 H2)))) (\lambda (c1: C).(\lambda (c2: C).(\lambda (_: (csubc g c1
364 c2)).(\lambda (_: (((eq C c2 (CSort n)) \to (eq C c1 c2)))).(\lambda (k:
365 K).(\lambda (v: T).(\lambda (H3: (eq C (CHead c2 k v) (CSort n))).(let H4
366 \def (eq_ind C (CHead c2 k v) (\lambda (ee: C).(match ee with [(CSort _)
367 \Rightarrow False | (CHead _ _ _) \Rightarrow True])) I (CSort n) H3) in
368 (False_ind (eq C (CHead c1 k v) (CHead c2 k v)) H4))))))))) (\lambda (c1:
369 C).(\lambda (c2: C).(\lambda (_: (csubc g c1 c2)).(\lambda (_: (((eq C c2
370 (CSort n)) \to (eq C c1 c2)))).(\lambda (b: B).(\lambda (_: (not (eq B b
371 Void))).(\lambda (u1: T).(\lambda (u2: T).(\lambda (H4: (eq C (CHead c2 (Bind
372 b) u2) (CSort n))).(let H5 \def (eq_ind C (CHead c2 (Bind b) u2) (\lambda
373 (ee: C).(match ee with [(CSort _) \Rightarrow False | (CHead _ _ _)
374 \Rightarrow True])) I (CSort n) H4) in (False_ind (eq C (CHead c1 (Bind Void)
375 u1) (CHead c2 (Bind b) u2)) H5))))))))))) (\lambda (c1: C).(\lambda (c2:
376 C).(\lambda (_: (csubc g c1 c2)).(\lambda (_: (((eq C c2 (CSort n)) \to (eq C
377 c1 c2)))).(\lambda (v: T).(\lambda (a: A).(\lambda (_: (sc3 g (asucc g a) c1
378 v)).(\lambda (w: T).(\lambda (_: (sc3 g a c2 w)).(\lambda (H5: (eq C (CHead
379 c2 (Bind Abbr) w) (CSort n))).(let H6 \def (eq_ind C (CHead c2 (Bind Abbr) w)
380 (\lambda (ee: C).(match ee with [(CSort _) \Rightarrow False | (CHead _ _ _)
381 \Rightarrow True])) I (CSort n) H5) in (False_ind (eq C (CHead c1 (Bind Abst)
382 v) (CHead c2 (Bind Abbr) w)) H6)))))))))))) x y H0))) H)))).
384 lemma csubc_gen_head_r:
385 \forall (g: G).(\forall (c2: C).(\forall (x: C).(\forall (w: T).(\forall (k:
386 K).((csubc g x (CHead c2 k w)) \to (or3 (ex2 C (\lambda (c1: C).(eq C x
387 (CHead c1 k w))) (\lambda (c1: C).(csubc g c1 c2))) (ex5_3 C T A (\lambda (_:
388 C).(\lambda (_: T).(\lambda (_: A).(eq K k (Bind Abbr))))) (\lambda (c1:
389 C).(\lambda (v: T).(\lambda (_: A).(eq C x (CHead c1 (Bind Abst) v)))))
390 (\lambda (c1: C).(\lambda (_: T).(\lambda (_: A).(csubc g c1 c2)))) (\lambda
391 (c1: C).(\lambda (v: T).(\lambda (a: A).(sc3 g (asucc g a) c1 v)))) (\lambda
392 (_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g a c2 w))))) (ex4_3 B C T
393 (\lambda (_: B).(\lambda (c1: C).(\lambda (v1: T).(eq C x (CHead c1 (Bind
394 Void) v1))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(eq K k (Bind
395 b))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b Void)))))
396 (\lambda (_: B).(\lambda (c1: C).(\lambda (_: T).(csubc g c1 c2)))))))))))
398 \lambda (g: G).(\lambda (c2: C).(\lambda (x: C).(\lambda (w: T).(\lambda (k:
399 K).(\lambda (H: (csubc g x (CHead c2 k w))).(insert_eq C (CHead c2 k w)
400 (\lambda (c: C).(csubc g x c)) (\lambda (_: C).(or3 (ex2 C (\lambda (c1:
401 C).(eq C x (CHead c1 k w))) (\lambda (c1: C).(csubc g c1 c2))) (ex5_3 C T A
402 (\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(eq K k (Bind Abbr)))))
403 (\lambda (c1: C).(\lambda (v: T).(\lambda (_: A).(eq C x (CHead c1 (Bind
404 Abst) v))))) (\lambda (c1: C).(\lambda (_: T).(\lambda (_: A).(csubc g c1
405 c2)))) (\lambda (c1: C).(\lambda (v: T).(\lambda (a: A).(sc3 g (asucc g a) c1
406 v)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g a c2 w)))))
407 (ex4_3 B C T (\lambda (_: B).(\lambda (c1: C).(\lambda (v1: T).(eq C x (CHead
408 c1 (Bind Void) v1))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(eq K
409 k (Bind b))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b
410 Void))))) (\lambda (_: B).(\lambda (c1: C).(\lambda (_: T).(csubc g c1
411 c2))))))) (\lambda (y: C).(\lambda (H0: (csubc g x y)).(csubc_ind g (\lambda
412 (c: C).(\lambda (c0: C).((eq C c0 (CHead c2 k w)) \to (or3 (ex2 C (\lambda
413 (c1: C).(eq C c (CHead c1 k w))) (\lambda (c1: C).(csubc g c1 c2))) (ex5_3 C
414 T A (\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(eq K k (Bind Abbr)))))
415 (\lambda (c1: C).(\lambda (v: T).(\lambda (_: A).(eq C c (CHead c1 (Bind
416 Abst) v))))) (\lambda (c1: C).(\lambda (_: T).(\lambda (_: A).(csubc g c1
417 c2)))) (\lambda (c1: C).(\lambda (v: T).(\lambda (a: A).(sc3 g (asucc g a) c1
418 v)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g a c2 w)))))
419 (ex4_3 B C T (\lambda (_: B).(\lambda (c1: C).(\lambda (v1: T).(eq C c (CHead
420 c1 (Bind Void) v1))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(eq K
421 k (Bind b))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b
422 Void))))) (\lambda (_: B).(\lambda (c1: C).(\lambda (_: T).(csubc g c1
423 c2))))))))) (\lambda (n: nat).(\lambda (H1: (eq C (CSort n) (CHead c2 k
424 w))).(let H2 \def (eq_ind C (CSort n) (\lambda (ee: C).(match ee with [(CSort
425 _) \Rightarrow True | (CHead _ _ _) \Rightarrow False])) I (CHead c2 k w) H1)
426 in (False_ind (or3 (ex2 C (\lambda (c1: C).(eq C (CSort n) (CHead c1 k w)))
427 (\lambda (c1: C).(csubc g c1 c2))) (ex5_3 C T A (\lambda (_: C).(\lambda (_:
428 T).(\lambda (_: A).(eq K k (Bind Abbr))))) (\lambda (c1: C).(\lambda (v:
429 T).(\lambda (_: A).(eq C (CSort n) (CHead c1 (Bind Abst) v))))) (\lambda (c1:
430 C).(\lambda (_: T).(\lambda (_: A).(csubc g c1 c2)))) (\lambda (c1:
431 C).(\lambda (v: T).(\lambda (a: A).(sc3 g (asucc g a) c1 v)))) (\lambda (_:
432 C).(\lambda (_: T).(\lambda (a: A).(sc3 g a c2 w))))) (ex4_3 B C T (\lambda
433 (_: B).(\lambda (c1: C).(\lambda (v1: T).(eq C (CSort n) (CHead c1 (Bind
434 Void) v1))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(eq K k (Bind
435 b))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b Void)))))
436 (\lambda (_: B).(\lambda (c1: C).(\lambda (_: T).(csubc g c1 c2)))))) H2))))
437 (\lambda (c1: C).(\lambda (c0: C).(\lambda (H1: (csubc g c1 c0)).(\lambda
438 (H2: (((eq C c0 (CHead c2 k w)) \to (or3 (ex2 C (\lambda (c3: C).(eq C c1
439 (CHead c3 k w))) (\lambda (c3: C).(csubc g c3 c2))) (ex5_3 C T A (\lambda (_:
440 C).(\lambda (_: T).(\lambda (_: A).(eq K k (Bind Abbr))))) (\lambda (c3:
441 C).(\lambda (v: T).(\lambda (_: A).(eq C c1 (CHead c3 (Bind Abst) v)))))
442 (\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g c3 c2)))) (\lambda
443 (c3: C).(\lambda (v: T).(\lambda (a: A).(sc3 g (asucc g a) c3 v)))) (\lambda
444 (_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g a c2 w))))) (ex4_3 B C T
445 (\lambda (_: B).(\lambda (c3: C).(\lambda (v1: T).(eq C c1 (CHead c3 (Bind
446 Void) v1))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(eq K k (Bind
447 b))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b Void)))))
448 (\lambda (_: B).(\lambda (c3: C).(\lambda (_: T).(csubc g c3
449 c2))))))))).(\lambda (k0: K).(\lambda (v: T).(\lambda (H3: (eq C (CHead c0 k0
450 v) (CHead c2 k w))).(let H4 \def (f_equal C C (\lambda (e: C).(match e with
451 [(CSort _) \Rightarrow c0 | (CHead c _ _) \Rightarrow c])) (CHead c0 k0 v)
452 (CHead c2 k w) H3) in ((let H5 \def (f_equal C K (\lambda (e: C).(match e
453 with [(CSort _) \Rightarrow k0 | (CHead _ k1 _) \Rightarrow k1])) (CHead c0
454 k0 v) (CHead c2 k w) H3) in ((let H6 \def (f_equal C T (\lambda (e: C).(match
455 e with [(CSort _) \Rightarrow v | (CHead _ _ t) \Rightarrow t])) (CHead c0 k0
456 v) (CHead c2 k w) H3) in (\lambda (H7: (eq K k0 k)).(\lambda (H8: (eq C c0
457 c2)).(eq_ind_r T w (\lambda (t: T).(or3 (ex2 C (\lambda (c3: C).(eq C (CHead
458 c1 k0 t) (CHead c3 k w))) (\lambda (c3: C).(csubc g c3 c2))) (ex5_3 C T A
459 (\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(eq K k (Bind Abbr)))))
460 (\lambda (c3: C).(\lambda (v0: T).(\lambda (_: A).(eq C (CHead c1 k0 t)
461 (CHead c3 (Bind Abst) v0))))) (\lambda (c3: C).(\lambda (_: T).(\lambda (_:
462 A).(csubc g c3 c2)))) (\lambda (c3: C).(\lambda (v0: T).(\lambda (a: A).(sc3
463 g (asucc g a) c3 v0)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(sc3
464 g a c2 w))))) (ex4_3 B C T (\lambda (_: B).(\lambda (c3: C).(\lambda (v1:
465 T).(eq C (CHead c1 k0 t) (CHead c3 (Bind Void) v1))))) (\lambda (b:
466 B).(\lambda (_: C).(\lambda (_: T).(eq K k (Bind b))))) (\lambda (b:
467 B).(\lambda (_: C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_:
468 B).(\lambda (c3: C).(\lambda (_: T).(csubc g c3 c2))))))) (eq_ind_r K k
469 (\lambda (k1: K).(or3 (ex2 C (\lambda (c3: C).(eq C (CHead c1 k1 w) (CHead c3
470 k w))) (\lambda (c3: C).(csubc g c3 c2))) (ex5_3 C T A (\lambda (_:
471 C).(\lambda (_: T).(\lambda (_: A).(eq K k (Bind Abbr))))) (\lambda (c3:
472 C).(\lambda (v0: T).(\lambda (_: A).(eq C (CHead c1 k1 w) (CHead c3 (Bind
473 Abst) v0))))) (\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g c3
474 c2)))) (\lambda (c3: C).(\lambda (v0: T).(\lambda (a: A).(sc3 g (asucc g a)
475 c3 v0)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g a c2 w)))))
476 (ex4_3 B C T (\lambda (_: B).(\lambda (c3: C).(\lambda (v1: T).(eq C (CHead
477 c1 k1 w) (CHead c3 (Bind Void) v1))))) (\lambda (b: B).(\lambda (_:
478 C).(\lambda (_: T).(eq K k (Bind b))))) (\lambda (b: B).(\lambda (_:
479 C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_: B).(\lambda (c3:
480 C).(\lambda (_: T).(csubc g c3 c2))))))) (let H9 \def (eq_ind C c0 (\lambda
481 (c: C).((eq C c (CHead c2 k w)) \to (or3 (ex2 C (\lambda (c3: C).(eq C c1
482 (CHead c3 k w))) (\lambda (c3: C).(csubc g c3 c2))) (ex5_3 C T A (\lambda (_:
483 C).(\lambda (_: T).(\lambda (_: A).(eq K k (Bind Abbr))))) (\lambda (c3:
484 C).(\lambda (v0: T).(\lambda (_: A).(eq C c1 (CHead c3 (Bind Abst) v0)))))
485 (\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g c3 c2)))) (\lambda
486 (c3: C).(\lambda (v0: T).(\lambda (a: A).(sc3 g (asucc g a) c3 v0))))
487 (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g a c2 w))))) (ex4_3 B C
488 T (\lambda (_: B).(\lambda (c3: C).(\lambda (v1: T).(eq C c1 (CHead c3 (Bind
489 Void) v1))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(eq K k (Bind
490 b))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(not (eq B b Void)))))
491 (\lambda (_: B).(\lambda (c3: C).(\lambda (_: T).(csubc g c3 c2)))))))) H2 c2
492 H8) in (let H10 \def (eq_ind C c0 (\lambda (c: C).(csubc g c1 c)) H1 c2 H8)
493 in (or3_intro0 (ex2 C (\lambda (c3: C).(eq C (CHead c1 k w) (CHead c3 k w)))
494 (\lambda (c3: C).(csubc g c3 c2))) (ex5_3 C T A (\lambda (_: C).(\lambda (_:
495 T).(\lambda (_: A).(eq K k (Bind Abbr))))) (\lambda (c3: C).(\lambda (v0:
496 T).(\lambda (_: A).(eq C (CHead c1 k w) (CHead c3 (Bind Abst) v0)))))
497 (\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g c3 c2)))) (\lambda
498 (c3: C).(\lambda (v0: T).(\lambda (a: A).(sc3 g (asucc g a) c3 v0))))
499 (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g a c2 w))))) (ex4_3 B C
500 T (\lambda (_: B).(\lambda (c3: C).(\lambda (v1: T).(eq C (CHead c1 k w)
501 (CHead c3 (Bind Void) v1))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_:
502 T).(eq K k (Bind b))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(not
503 (eq B b Void))))) (\lambda (_: B).(\lambda (c3: C).(\lambda (_: T).(csubc g
504 c3 c2))))) (ex_intro2 C (\lambda (c3: C).(eq C (CHead c1 k w) (CHead c3 k
505 w))) (\lambda (c3: C).(csubc g c3 c2)) c1 (refl_equal C (CHead c1 k w))
506 H10)))) k0 H7) v H6)))) H5)) H4))))))))) (\lambda (c1: C).(\lambda (c0:
507 C).(\lambda (H1: (csubc g c1 c0)).(\lambda (H2: (((eq C c0 (CHead c2 k w))
508 \to (or3 (ex2 C (\lambda (c3: C).(eq C c1 (CHead c3 k w))) (\lambda (c3:
509 C).(csubc g c3 c2))) (ex5_3 C T A (\lambda (_: C).(\lambda (_: T).(\lambda
510 (_: A).(eq K k (Bind Abbr))))) (\lambda (c3: C).(\lambda (v: T).(\lambda (_:
511 A).(eq C c1 (CHead c3 (Bind Abst) v))))) (\lambda (c3: C).(\lambda (_:
512 T).(\lambda (_: A).(csubc g c3 c2)))) (\lambda (c3: C).(\lambda (v:
513 T).(\lambda (a: A).(sc3 g (asucc g a) c3 v)))) (\lambda (_: C).(\lambda (_:
514 T).(\lambda (a: A).(sc3 g a c2 w))))) (ex4_3 B C T (\lambda (_: B).(\lambda
515 (c3: C).(\lambda (v1: T).(eq C c1 (CHead c3 (Bind Void) v1))))) (\lambda (b:
516 B).(\lambda (_: C).(\lambda (_: T).(eq K k (Bind b))))) (\lambda (b:
517 B).(\lambda (_: C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_:
518 B).(\lambda (c3: C).(\lambda (_: T).(csubc g c3 c2))))))))).(\lambda (b:
519 B).(\lambda (H3: (not (eq B b Void))).(\lambda (u1: T).(\lambda (u2:
520 T).(\lambda (H4: (eq C (CHead c0 (Bind b) u2) (CHead c2 k w))).(let H5 \def
521 (f_equal C C (\lambda (e: C).(match e with [(CSort _) \Rightarrow c0 | (CHead
522 c _ _) \Rightarrow c])) (CHead c0 (Bind b) u2) (CHead c2 k w) H4) in ((let H6
523 \def (f_equal C K (\lambda (e: C).(match e with [(CSort _) \Rightarrow (Bind
524 b) | (CHead _ k0 _) \Rightarrow k0])) (CHead c0 (Bind b) u2) (CHead c2 k w)
525 H4) in ((let H7 \def (f_equal C T (\lambda (e: C).(match e with [(CSort _)
526 \Rightarrow u2 | (CHead _ _ t) \Rightarrow t])) (CHead c0 (Bind b) u2) (CHead
527 c2 k w) H4) in (\lambda (H8: (eq K (Bind b) k)).(\lambda (H9: (eq C c0
528 c2)).(let H10 \def (eq_ind C c0 (\lambda (c: C).((eq C c (CHead c2 k w)) \to
529 (or3 (ex2 C (\lambda (c3: C).(eq C c1 (CHead c3 k w))) (\lambda (c3:
530 C).(csubc g c3 c2))) (ex5_3 C T A (\lambda (_: C).(\lambda (_: T).(\lambda
531 (_: A).(eq K k (Bind Abbr))))) (\lambda (c3: C).(\lambda (v: T).(\lambda (_:
532 A).(eq C c1 (CHead c3 (Bind Abst) v))))) (\lambda (c3: C).(\lambda (_:
533 T).(\lambda (_: A).(csubc g c3 c2)))) (\lambda (c3: C).(\lambda (v:
534 T).(\lambda (a: A).(sc3 g (asucc g a) c3 v)))) (\lambda (_: C).(\lambda (_:
535 T).(\lambda (a: A).(sc3 g a c2 w))))) (ex4_3 B C T (\lambda (_: B).(\lambda
536 (c3: C).(\lambda (v1: T).(eq C c1 (CHead c3 (Bind Void) v1))))) (\lambda (b0:
537 B).(\lambda (_: C).(\lambda (_: T).(eq K k (Bind b0))))) (\lambda (b0:
538 B).(\lambda (_: C).(\lambda (_: T).(not (eq B b0 Void))))) (\lambda (_:
539 B).(\lambda (c3: C).(\lambda (_: T).(csubc g c3 c2)))))))) H2 c2 H9) in (let
540 H11 \def (eq_ind C c0 (\lambda (c: C).(csubc g c1 c)) H1 c2 H9) in (let H12
541 \def (eq_ind_r K k (\lambda (k0: K).((eq C c2 (CHead c2 k0 w)) \to (or3 (ex2
542 C (\lambda (c3: C).(eq C c1 (CHead c3 k0 w))) (\lambda (c3: C).(csubc g c3
543 c2))) (ex5_3 C T A (\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(eq K k0
544 (Bind Abbr))))) (\lambda (c3: C).(\lambda (v: T).(\lambda (_: A).(eq C c1
545 (CHead c3 (Bind Abst) v))))) (\lambda (c3: C).(\lambda (_: T).(\lambda (_:
546 A).(csubc g c3 c2)))) (\lambda (c3: C).(\lambda (v: T).(\lambda (a: A).(sc3 g
547 (asucc g a) c3 v)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g a
548 c2 w))))) (ex4_3 B C T (\lambda (_: B).(\lambda (c3: C).(\lambda (v1: T).(eq
549 C c1 (CHead c3 (Bind Void) v1))))) (\lambda (b0: B).(\lambda (_: C).(\lambda
550 (_: T).(eq K k0 (Bind b0))))) (\lambda (b0: B).(\lambda (_: C).(\lambda (_:
551 T).(not (eq B b0 Void))))) (\lambda (_: B).(\lambda (c3: C).(\lambda (_:
552 T).(csubc g c3 c2)))))))) H10 (Bind b) H8) in (eq_ind K (Bind b) (\lambda
553 (k0: K).(or3 (ex2 C (\lambda (c3: C).(eq C (CHead c1 (Bind Void) u1) (CHead
554 c3 k0 w))) (\lambda (c3: C).(csubc g c3 c2))) (ex5_3 C T A (\lambda (_:
555 C).(\lambda (_: T).(\lambda (_: A).(eq K k0 (Bind Abbr))))) (\lambda (c3:
556 C).(\lambda (v: T).(\lambda (_: A).(eq C (CHead c1 (Bind Void) u1) (CHead c3
557 (Bind Abst) v))))) (\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g
558 c3 c2)))) (\lambda (c3: C).(\lambda (v: T).(\lambda (a: A).(sc3 g (asucc g a)
559 c3 v)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g a c2 w)))))
560 (ex4_3 B C T (\lambda (_: B).(\lambda (c3: C).(\lambda (v1: T).(eq C (CHead
561 c1 (Bind Void) u1) (CHead c3 (Bind Void) v1))))) (\lambda (b0: B).(\lambda
562 (_: C).(\lambda (_: T).(eq K k0 (Bind b0))))) (\lambda (b0: B).(\lambda (_:
563 C).(\lambda (_: T).(not (eq B b0 Void))))) (\lambda (_: B).(\lambda (c3:
564 C).(\lambda (_: T).(csubc g c3 c2))))))) (or3_intro2 (ex2 C (\lambda (c3:
565 C).(eq C (CHead c1 (Bind Void) u1) (CHead c3 (Bind b) w))) (\lambda (c3:
566 C).(csubc g c3 c2))) (ex5_3 C T A (\lambda (_: C).(\lambda (_: T).(\lambda
567 (_: A).(eq K (Bind b) (Bind Abbr))))) (\lambda (c3: C).(\lambda (v:
568 T).(\lambda (_: A).(eq C (CHead c1 (Bind Void) u1) (CHead c3 (Bind Abst)
569 v))))) (\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g c3 c2))))
570 (\lambda (c3: C).(\lambda (v: T).(\lambda (a: A).(sc3 g (asucc g a) c3 v))))
571 (\lambda (_: C).(\lambda (_: T).(\lambda (a: A).(sc3 g a c2 w))))) (ex4_3 B C
572 T (\lambda (_: B).(\lambda (c3: C).(\lambda (v1: T).(eq C (CHead c1 (Bind
573 Void) u1) (CHead c3 (Bind Void) v1))))) (\lambda (b0: B).(\lambda (_:
574 C).(\lambda (_: T).(eq K (Bind b) (Bind b0))))) (\lambda (b0: B).(\lambda (_:
575 C).(\lambda (_: T).(not (eq B b0 Void))))) (\lambda (_: B).(\lambda (c3:
576 C).(\lambda (_: T).(csubc g c3 c2))))) (ex4_3_intro B C T (\lambda (_:
577 B).(\lambda (c3: C).(\lambda (v1: T).(eq C (CHead c1 (Bind Void) u1) (CHead
578 c3 (Bind Void) v1))))) (\lambda (b0: B).(\lambda (_: C).(\lambda (_: T).(eq K
579 (Bind b) (Bind b0))))) (\lambda (b0: B).(\lambda (_: C).(\lambda (_: T).(not
580 (eq B b0 Void))))) (\lambda (_: B).(\lambda (c3: C).(\lambda (_: T).(csubc g
581 c3 c2)))) b c1 u1 (refl_equal C (CHead c1 (Bind Void) u1)) (refl_equal K
582 (Bind b)) H3 H11)) k H8))))))) H6)) H5))))))))))) (\lambda (c1: C).(\lambda
583 (c0: C).(\lambda (H1: (csubc g c1 c0)).(\lambda (H2: (((eq C c0 (CHead c2 k
584 w)) \to (or3 (ex2 C (\lambda (c3: C).(eq C c1 (CHead c3 k w))) (\lambda (c3:
585 C).(csubc g c3 c2))) (ex5_3 C T A (\lambda (_: C).(\lambda (_: T).(\lambda
586 (_: A).(eq K k (Bind Abbr))))) (\lambda (c3: C).(\lambda (v: T).(\lambda (_:
587 A).(eq C c1 (CHead c3 (Bind Abst) v))))) (\lambda (c3: C).(\lambda (_:
588 T).(\lambda (_: A).(csubc g c3 c2)))) (\lambda (c3: C).(\lambda (v:
589 T).(\lambda (a: A).(sc3 g (asucc g a) c3 v)))) (\lambda (_: C).(\lambda (_:
590 T).(\lambda (a: A).(sc3 g a c2 w))))) (ex4_3 B C T (\lambda (_: B).(\lambda
591 (c3: C).(\lambda (v1: T).(eq C c1 (CHead c3 (Bind Void) v1))))) (\lambda (b:
592 B).(\lambda (_: C).(\lambda (_: T).(eq K k (Bind b))))) (\lambda (b:
593 B).(\lambda (_: C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_:
594 B).(\lambda (c3: C).(\lambda (_: T).(csubc g c3 c2))))))))).(\lambda (v:
595 T).(\lambda (a: A).(\lambda (H3: (sc3 g (asucc g a) c1 v)).(\lambda (w0:
596 T).(\lambda (H4: (sc3 g a c0 w0)).(\lambda (H5: (eq C (CHead c0 (Bind Abbr)
597 w0) (CHead c2 k w))).(let H6 \def (f_equal C C (\lambda (e: C).(match e with
598 [(CSort _) \Rightarrow c0 | (CHead c _ _) \Rightarrow c])) (CHead c0 (Bind
599 Abbr) w0) (CHead c2 k w) H5) in ((let H7 \def (f_equal C K (\lambda (e:
600 C).(match e with [(CSort _) \Rightarrow (Bind Abbr) | (CHead _ k0 _)
601 \Rightarrow k0])) (CHead c0 (Bind Abbr) w0) (CHead c2 k w) H5) in ((let H8
602 \def (f_equal C T (\lambda (e: C).(match e with [(CSort _) \Rightarrow w0 |
603 (CHead _ _ t) \Rightarrow t])) (CHead c0 (Bind Abbr) w0) (CHead c2 k w) H5)
604 in (\lambda (H9: (eq K (Bind Abbr) k)).(\lambda (H10: (eq C c0 c2)).(let H11
605 \def (eq_ind T w0 (\lambda (t: T).(sc3 g a c0 t)) H4 w H8) in (let H12 \def
606 (eq_ind C c0 (\lambda (c: C).(sc3 g a c w)) H11 c2 H10) in (let H13 \def
607 (eq_ind C c0 (\lambda (c: C).((eq C c (CHead c2 k w)) \to (or3 (ex2 C
608 (\lambda (c3: C).(eq C c1 (CHead c3 k w))) (\lambda (c3: C).(csubc g c3 c2)))
609 (ex5_3 C T A (\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(eq K k (Bind
610 Abbr))))) (\lambda (c3: C).(\lambda (v0: T).(\lambda (_: A).(eq C c1 (CHead
611 c3 (Bind Abst) v0))))) (\lambda (c3: C).(\lambda (_: T).(\lambda (_:
612 A).(csubc g c3 c2)))) (\lambda (c3: C).(\lambda (v0: T).(\lambda (a0: A).(sc3
613 g (asucc g a0) c3 v0)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a0:
614 A).(sc3 g a0 c2 w))))) (ex4_3 B C T (\lambda (_: B).(\lambda (c3: C).(\lambda
615 (v1: T).(eq C c1 (CHead c3 (Bind Void) v1))))) (\lambda (b: B).(\lambda (_:
616 C).(\lambda (_: T).(eq K k (Bind b))))) (\lambda (b: B).(\lambda (_:
617 C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_: B).(\lambda (c3:
618 C).(\lambda (_: T).(csubc g c3 c2)))))))) H2 c2 H10) in (let H14 \def (eq_ind
619 C c0 (\lambda (c: C).(csubc g c1 c)) H1 c2 H10) in (let H15 \def (eq_ind_r K
620 k (\lambda (k0: K).((eq C c2 (CHead c2 k0 w)) \to (or3 (ex2 C (\lambda (c3:
621 C).(eq C c1 (CHead c3 k0 w))) (\lambda (c3: C).(csubc g c3 c2))) (ex5_3 C T A
622 (\lambda (_: C).(\lambda (_: T).(\lambda (_: A).(eq K k0 (Bind Abbr)))))
623 (\lambda (c3: C).(\lambda (v0: T).(\lambda (_: A).(eq C c1 (CHead c3 (Bind
624 Abst) v0))))) (\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g c3
625 c2)))) (\lambda (c3: C).(\lambda (v0: T).(\lambda (a0: A).(sc3 g (asucc g a0)
626 c3 v0)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a0: A).(sc3 g a0 c2
627 w))))) (ex4_3 B C T (\lambda (_: B).(\lambda (c3: C).(\lambda (v1: T).(eq C
628 c1 (CHead c3 (Bind Void) v1))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_:
629 T).(eq K k0 (Bind b))))) (\lambda (b: B).(\lambda (_: C).(\lambda (_: T).(not
630 (eq B b Void))))) (\lambda (_: B).(\lambda (c3: C).(\lambda (_: T).(csubc g
631 c3 c2)))))))) H13 (Bind Abbr) H9) in (eq_ind K (Bind Abbr) (\lambda (k0:
632 K).(or3 (ex2 C (\lambda (c3: C).(eq C (CHead c1 (Bind Abst) v) (CHead c3 k0
633 w))) (\lambda (c3: C).(csubc g c3 c2))) (ex5_3 C T A (\lambda (_: C).(\lambda
634 (_: T).(\lambda (_: A).(eq K k0 (Bind Abbr))))) (\lambda (c3: C).(\lambda
635 (v0: T).(\lambda (_: A).(eq C (CHead c1 (Bind Abst) v) (CHead c3 (Bind Abst)
636 v0))))) (\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g c3 c2))))
637 (\lambda (c3: C).(\lambda (v0: T).(\lambda (a0: A).(sc3 g (asucc g a0) c3
638 v0)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a0: A).(sc3 g a0 c2 w)))))
639 (ex4_3 B C T (\lambda (_: B).(\lambda (c3: C).(\lambda (v1: T).(eq C (CHead
640 c1 (Bind Abst) v) (CHead c3 (Bind Void) v1))))) (\lambda (b: B).(\lambda (_:
641 C).(\lambda (_: T).(eq K k0 (Bind b))))) (\lambda (b: B).(\lambda (_:
642 C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_: B).(\lambda (c3:
643 C).(\lambda (_: T).(csubc g c3 c2))))))) (or3_intro1 (ex2 C (\lambda (c3:
644 C).(eq C (CHead c1 (Bind Abst) v) (CHead c3 (Bind Abbr) w))) (\lambda (c3:
645 C).(csubc g c3 c2))) (ex5_3 C T A (\lambda (_: C).(\lambda (_: T).(\lambda
646 (_: A).(eq K (Bind Abbr) (Bind Abbr))))) (\lambda (c3: C).(\lambda (v0:
647 T).(\lambda (_: A).(eq C (CHead c1 (Bind Abst) v) (CHead c3 (Bind Abst)
648 v0))))) (\lambda (c3: C).(\lambda (_: T).(\lambda (_: A).(csubc g c3 c2))))
649 (\lambda (c3: C).(\lambda (v0: T).(\lambda (a0: A).(sc3 g (asucc g a0) c3
650 v0)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a0: A).(sc3 g a0 c2 w)))))
651 (ex4_3 B C T (\lambda (_: B).(\lambda (c3: C).(\lambda (v1: T).(eq C (CHead
652 c1 (Bind Abst) v) (CHead c3 (Bind Void) v1))))) (\lambda (b: B).(\lambda (_:
653 C).(\lambda (_: T).(eq K (Bind Abbr) (Bind b))))) (\lambda (b: B).(\lambda
654 (_: C).(\lambda (_: T).(not (eq B b Void))))) (\lambda (_: B).(\lambda (c3:
655 C).(\lambda (_: T).(csubc g c3 c2))))) (ex5_3_intro C T A (\lambda (_:
656 C).(\lambda (_: T).(\lambda (_: A).(eq K (Bind Abbr) (Bind Abbr))))) (\lambda
657 (c3: C).(\lambda (v0: T).(\lambda (_: A).(eq C (CHead c1 (Bind Abst) v)
658 (CHead c3 (Bind Abst) v0))))) (\lambda (c3: C).(\lambda (_: T).(\lambda (_:
659 A).(csubc g c3 c2)))) (\lambda (c3: C).(\lambda (v0: T).(\lambda (a0: A).(sc3
660 g (asucc g a0) c3 v0)))) (\lambda (_: C).(\lambda (_: T).(\lambda (a0:
661 A).(sc3 g a0 c2 w)))) c1 v a (refl_equal K (Bind Abbr)) (refl_equal C (CHead
662 c1 (Bind Abst) v)) H14 H3 H12)) k H9))))))))) H7)) H6)))))))))))) x y H0)))