]> matita.cs.unibo.it Git - helm.git/blob - matita/matita/contribs/lambdadelta/basic_1/clear/fwd.ma
components: clear getl cimp
[helm.git] / matita / matita / contribs / lambdadelta / basic_1 / clear / fwd.ma
1 (**************************************************************************)
2 (*       ___                                                              *)
3 (*      ||M||                                                             *)
4 (*      ||A||       A project by Andrea Asperti                           *)
5 (*      ||T||                                                             *)
6 (*      ||I||       Developers:                                           *)
7 (*      ||T||         The HELM team.                                      *)
8 (*      ||A||         http://helm.cs.unibo.it                             *)
9 (*      \   /                                                             *)
10 (*       \ /        This file is distributed under the terms of the       *)
11 (*        v         GNU General Public License Version 2                  *)
12 (*                                                                        *)
13 (**************************************************************************)
14
15 (* This file was automatically generated: do not edit *********************)
16
17 include "basic_1/clear/defs.ma".
18
19 include "basic_1/C/fwd.ma".
20
21 let rec clear_ind (P: (C \to (C \to Prop))) (f: (\forall (b: B).(\forall (e: 
22 C).(\forall (u: T).(P (CHead e (Bind b) u) (CHead e (Bind b) u)))))) (f0: 
23 (\forall (e: C).(\forall (c: C).((clear e c) \to ((P e c) \to (\forall (f0: 
24 F).(\forall (u: T).(P (CHead e (Flat f0) u) c)))))))) (c: C) (c0: C) (c1: 
25 clear c c0) on c1: P c c0 \def match c1 with [(clear_bind b e u) \Rightarrow 
26 (f b e u) | (clear_flat e c2 c3 f1 u) \Rightarrow (let TMP_1 \def ((clear_ind 
27 P f f0) e c2 c3) in (f0 e c2 c3 TMP_1 f1 u))].
28
29 theorem clear_gen_sort:
30  \forall (x: C).(\forall (n: nat).((clear (CSort n) x) \to (\forall (P: 
31 Prop).P)))
32 \def
33  \lambda (x: C).(\lambda (n: nat).(\lambda (H: (clear (CSort n) x)).(\lambda 
34 (P: Prop).(let TMP_1 \def (CSort n) in (let TMP_2 \def (\lambda (c: C).(clear 
35 c x)) in (let TMP_3 \def (\lambda (_: C).P) in (let TMP_15 \def (\lambda (y: 
36 C).(\lambda (H0: (clear y x)).(let TMP_4 \def (\lambda (c: C).(\lambda (_: 
37 C).((eq C c (CSort n)) \to P))) in (let TMP_9 \def (\lambda (b: B).(\lambda 
38 (e: C).(\lambda (u: T).(\lambda (H1: (eq C (CHead e (Bind b) u) (CSort 
39 n))).(let TMP_5 \def (Bind b) in (let TMP_6 \def (CHead e TMP_5 u) in (let 
40 TMP_7 \def (\lambda (ee: C).(match ee with [(CSort _) \Rightarrow False | 
41 (CHead _ _ _) \Rightarrow True])) in (let TMP_8 \def (CSort n) in (let H2 
42 \def (eq_ind C TMP_6 TMP_7 I TMP_8 H1) in (False_ind P H2)))))))))) in (let 
43 TMP_14 \def (\lambda (e: C).(\lambda (c: C).(\lambda (_: (clear e 
44 c)).(\lambda (_: (((eq C e (CSort n)) \to P))).(\lambda (f: F).(\lambda (u: 
45 T).(\lambda (H3: (eq C (CHead e (Flat f) u) (CSort n))).(let TMP_10 \def 
46 (Flat f) in (let TMP_11 \def (CHead e TMP_10 u) in (let TMP_12 \def (\lambda 
47 (ee: C).(match ee with [(CSort _) \Rightarrow False | (CHead _ _ _) 
48 \Rightarrow True])) in (let TMP_13 \def (CSort n) in (let H4 \def (eq_ind C 
49 TMP_11 TMP_12 I TMP_13 H3) in (False_ind P H4))))))))))))) in (clear_ind 
50 TMP_4 TMP_9 TMP_14 y x H0)))))) in (insert_eq C TMP_1 TMP_2 TMP_3 TMP_15 
51 H)))))))).
52
53 theorem clear_gen_bind:
54  \forall (b: B).(\forall (e: C).(\forall (x: C).(\forall (u: T).((clear 
55 (CHead e (Bind b) u) x) \to (eq C x (CHead e (Bind b) u))))))
56 \def
57  \lambda (b: B).(\lambda (e: C).(\lambda (x: C).(\lambda (u: T).(\lambda (H: 
58 (clear (CHead e (Bind b) u) x)).(let TMP_1 \def (Bind b) in (let TMP_2 \def 
59 (CHead e TMP_1 u) in (let TMP_3 \def (\lambda (c: C).(clear c x)) in (let 
60 TMP_4 \def (\lambda (c: C).(eq C x c)) in (let TMP_53 \def (\lambda (y: 
61 C).(\lambda (H0: (clear y x)).(let TMP_5 \def (\lambda (c: C).(\lambda (c0: 
62 C).((eq C c (CHead e (Bind b) u)) \to (eq C c0 c)))) in (let TMP_43 \def 
63 (\lambda (b0: B).(\lambda (e0: C).(\lambda (u0: T).(\lambda (H1: (eq C (CHead 
64 e0 (Bind b0) u0) (CHead e (Bind b) u))).(let TMP_6 \def (\lambda (e1: 
65 C).(match e1 with [(CSort _) \Rightarrow e0 | (CHead c _ _) \Rightarrow c])) 
66 in (let TMP_7 \def (Bind b0) in (let TMP_8 \def (CHead e0 TMP_7 u0) in (let 
67 TMP_9 \def (Bind b) in (let TMP_10 \def (CHead e TMP_9 u) in (let H2 \def 
68 (f_equal C C TMP_6 TMP_8 TMP_10 H1) in (let TMP_11 \def (\lambda (e1: 
69 C).(match e1 with [(CSort _) \Rightarrow b0 | (CHead _ k _) \Rightarrow 
70 (match k with [(Bind b1) \Rightarrow b1 | (Flat _) \Rightarrow b0])])) in 
71 (let TMP_12 \def (Bind b0) in (let TMP_13 \def (CHead e0 TMP_12 u0) in (let 
72 TMP_14 \def (Bind b) in (let TMP_15 \def (CHead e TMP_14 u) in (let H3 \def 
73 (f_equal C B TMP_11 TMP_13 TMP_15 H1) in (let TMP_16 \def (\lambda (e1: 
74 C).(match e1 with [(CSort _) \Rightarrow u0 | (CHead _ _ t) \Rightarrow t])) 
75 in (let TMP_17 \def (Bind b0) in (let TMP_18 \def (CHead e0 TMP_17 u0) in 
76 (let TMP_19 \def (Bind b) in (let TMP_20 \def (CHead e TMP_19 u) in (let H4 
77 \def (f_equal C T TMP_16 TMP_18 TMP_20 H1) in (let TMP_41 \def (\lambda (H5: 
78 (eq B b0 b)).(\lambda (H6: (eq C e0 e)).(let TMP_25 \def (\lambda (t: T).(let 
79 TMP_21 \def (Bind b0) in (let TMP_22 \def (CHead e0 TMP_21 t) in (let TMP_23 
80 \def (Bind b0) in (let TMP_24 \def (CHead e0 TMP_23 t) in (eq C TMP_22 
81 TMP_24)))))) in (let TMP_30 \def (\lambda (c: C).(let TMP_26 \def (Bind b0) 
82 in (let TMP_27 \def (CHead c TMP_26 u) in (let TMP_28 \def (Bind b0) in (let 
83 TMP_29 \def (CHead c TMP_28 u) in (eq C TMP_27 TMP_29)))))) in (let TMP_35 
84 \def (\lambda (b1: B).(let TMP_31 \def (Bind b1) in (let TMP_32 \def (CHead e 
85 TMP_31 u) in (let TMP_33 \def (Bind b1) in (let TMP_34 \def (CHead e TMP_33 
86 u) in (eq C TMP_32 TMP_34)))))) in (let TMP_36 \def (Bind b) in (let TMP_37 
87 \def (CHead e TMP_36 u) in (let TMP_38 \def (refl_equal C TMP_37) in (let 
88 TMP_39 \def (eq_ind_r B b TMP_35 TMP_38 b0 H5) in (let TMP_40 \def (eq_ind_r 
89 C e TMP_30 TMP_39 e0 H6) in (eq_ind_r T u TMP_25 TMP_40 u0 H4))))))))))) in 
90 (let TMP_42 \def (TMP_41 H3) in (TMP_42 H2))))))))))))))))))))))))) in (let 
91 TMP_52 \def (\lambda (e0: C).(\lambda (c: C).(\lambda (_: (clear e0 
92 c)).(\lambda (_: (((eq C e0 (CHead e (Bind b) u)) \to (eq C c e0)))).(\lambda 
93 (f: F).(\lambda (u0: T).(\lambda (H3: (eq C (CHead e0 (Flat f) u0) (CHead e 
94 (Bind b) u))).(let TMP_44 \def (Flat f) in (let TMP_45 \def (CHead e0 TMP_44 
95 u0) in (let TMP_46 \def (\lambda (ee: C).(match ee with [(CSort _) 
96 \Rightarrow False | (CHead _ k _) \Rightarrow (match k with [(Bind _) 
97 \Rightarrow False | (Flat _) \Rightarrow True])])) in (let TMP_47 \def (Bind 
98 b) in (let TMP_48 \def (CHead e TMP_47 u) in (let H4 \def (eq_ind C TMP_45 
99 TMP_46 I TMP_48 H3) in (let TMP_49 \def (Flat f) in (let TMP_50 \def (CHead 
100 e0 TMP_49 u0) in (let TMP_51 \def (eq C c TMP_50) in (False_ind TMP_51 
101 H4))))))))))))))))) in (clear_ind TMP_5 TMP_43 TMP_52 y x H0)))))) in 
102 (insert_eq C TMP_2 TMP_3 TMP_4 TMP_53 H)))))))))).
103
104 theorem clear_gen_flat:
105  \forall (f: F).(\forall (e: C).(\forall (x: C).(\forall (u: T).((clear 
106 (CHead e (Flat f) u) x) \to (clear e x)))))
107 \def
108  \lambda (f: F).(\lambda (e: C).(\lambda (x: C).(\lambda (u: T).(\lambda (H: 
109 (clear (CHead e (Flat f) u) x)).(let TMP_1 \def (Flat f) in (let TMP_2 \def 
110 (CHead e TMP_1 u) in (let TMP_3 \def (\lambda (c: C).(clear c x)) in (let 
111 TMP_4 \def (\lambda (_: C).(clear e x)) in (let TMP_35 \def (\lambda (y: 
112 C).(\lambda (H0: (clear y x)).(let TMP_5 \def (\lambda (c: C).(\lambda (c0: 
113 C).((eq C c (CHead e (Flat f) u)) \to (clear e c0)))) in (let TMP_14 \def 
114 (\lambda (b: B).(\lambda (e0: C).(\lambda (u0: T).(\lambda (H1: (eq C (CHead 
115 e0 (Bind b) u0) (CHead e (Flat f) u))).(let TMP_6 \def (Bind b) in (let TMP_7 
116 \def (CHead e0 TMP_6 u0) in (let TMP_8 \def (\lambda (ee: C).(match ee with 
117 [(CSort _) \Rightarrow False | (CHead _ k _) \Rightarrow (match k with [(Bind 
118 _) \Rightarrow True | (Flat _) \Rightarrow False])])) in (let TMP_9 \def 
119 (Flat f) in (let TMP_10 \def (CHead e TMP_9 u) in (let H2 \def (eq_ind C 
120 TMP_7 TMP_8 I TMP_10 H1) in (let TMP_11 \def (Bind b) in (let TMP_12 \def 
121 (CHead e0 TMP_11 u0) in (let TMP_13 \def (clear e TMP_12) in (False_ind 
122 TMP_13 H2)))))))))))))) in (let TMP_34 \def (\lambda (e0: C).(\lambda (c: 
123 C).(\lambda (H1: (clear e0 c)).(\lambda (H2: (((eq C e0 (CHead e (Flat f) u)) 
124 \to (clear e c)))).(\lambda (f0: F).(\lambda (u0: T).(\lambda (H3: (eq C 
125 (CHead e0 (Flat f0) u0) (CHead e (Flat f) u))).(let TMP_15 \def (\lambda (e1: 
126 C).(match e1 with [(CSort _) \Rightarrow e0 | (CHead c0 _ _) \Rightarrow 
127 c0])) in (let TMP_16 \def (Flat f0) in (let TMP_17 \def (CHead e0 TMP_16 u0) 
128 in (let TMP_18 \def (Flat f) in (let TMP_19 \def (CHead e TMP_18 u) in (let 
129 H4 \def (f_equal C C TMP_15 TMP_17 TMP_19 H3) in (let TMP_20 \def (\lambda 
130 (e1: C).(match e1 with [(CSort _) \Rightarrow f0 | (CHead _ k _) \Rightarrow 
131 (match k with [(Bind _) \Rightarrow f0 | (Flat f1) \Rightarrow f1])])) in 
132 (let TMP_21 \def (Flat f0) in (let TMP_22 \def (CHead e0 TMP_21 u0) in (let 
133 TMP_23 \def (Flat f) in (let TMP_24 \def (CHead e TMP_23 u) in (let H5 \def 
134 (f_equal C F TMP_20 TMP_22 TMP_24 H3) in (let TMP_25 \def (\lambda (e1: 
135 C).(match e1 with [(CSort _) \Rightarrow u0 | (CHead _ _ t) \Rightarrow t])) 
136 in (let TMP_26 \def (Flat f0) in (let TMP_27 \def (CHead e0 TMP_26 u0) in 
137 (let TMP_28 \def (Flat f) in (let TMP_29 \def (CHead e TMP_28 u) in (let H6 
138 \def (f_equal C T TMP_25 TMP_27 TMP_29 H3) in (let TMP_32 \def (\lambda (_: 
139 (eq F f0 f)).(\lambda (H8: (eq C e0 e)).(let TMP_30 \def (\lambda (c0: 
140 C).((eq C c0 (CHead e (Flat f) u)) \to (clear e c))) in (let H9 \def (eq_ind 
141 C e0 TMP_30 H2 e H8) in (let TMP_31 \def (\lambda (c0: C).(clear c0 c)) in 
142 (let H10 \def (eq_ind C e0 TMP_31 H1 e H8) in H10)))))) in (let TMP_33 \def 
143 (TMP_32 H5) in (TMP_33 H4)))))))))))))))))))))))))))) in (clear_ind TMP_5 
144 TMP_14 TMP_34 y x H0)))))) in (insert_eq C TMP_2 TMP_3 TMP_4 TMP_35 
145 H)))))))))).
146
147 theorem clear_gen_flat_r:
148  \forall (f: F).(\forall (x: C).(\forall (e: C).(\forall (u: T).((clear x 
149 (CHead e (Flat f) u)) \to (\forall (P: Prop).P)))))
150 \def
151  \lambda (f: F).(\lambda (x: C).(\lambda (e: C).(\lambda (u: T).(\lambda (H: 
152 (clear x (CHead e (Flat f) u))).(\lambda (P: Prop).(let TMP_1 \def (Flat f) 
153 in (let TMP_2 \def (CHead e TMP_1 u) in (let TMP_3 \def (\lambda (c: 
154 C).(clear x c)) in (let TMP_4 \def (\lambda (_: C).P) in (let TMP_22 \def 
155 (\lambda (y: C).(\lambda (H0: (clear x y)).(let TMP_5 \def (\lambda (_: 
156 C).(\lambda (c0: C).((eq C c0 (CHead e (Flat f) u)) \to P))) in (let TMP_11 
157 \def (\lambda (b: B).(\lambda (e0: C).(\lambda (u0: T).(\lambda (H1: (eq C 
158 (CHead e0 (Bind b) u0) (CHead e (Flat f) u))).(let TMP_6 \def (Bind b) in 
159 (let TMP_7 \def (CHead e0 TMP_6 u0) in (let TMP_8 \def (\lambda (ee: 
160 C).(match ee with [(CSort _) \Rightarrow False | (CHead _ k _) \Rightarrow 
161 (match k with [(Bind _) \Rightarrow True | (Flat _) \Rightarrow False])])) in 
162 (let TMP_9 \def (Flat f) in (let TMP_10 \def (CHead e TMP_9 u) in (let H2 
163 \def (eq_ind C TMP_7 TMP_8 I TMP_10 H1) in (False_ind P H2))))))))))) in (let 
164 TMP_21 \def (\lambda (e0: C).(\lambda (c: C).(\lambda (H1: (clear e0 
165 c)).(\lambda (H2: (((eq C c (CHead e (Flat f) u)) \to P))).(\lambda (_: 
166 F).(\lambda (_: T).(\lambda (H3: (eq C c (CHead e (Flat f) u))).(let TMP_12 
167 \def (\lambda (c0: C).((eq C c0 (CHead e (Flat f) u)) \to P)) in (let TMP_13 
168 \def (Flat f) in (let TMP_14 \def (CHead e TMP_13 u) in (let H4 \def (eq_ind 
169 C c TMP_12 H2 TMP_14 H3) in (let TMP_15 \def (\lambda (c0: C).(clear e0 c0)) 
170 in (let TMP_16 \def (Flat f) in (let TMP_17 \def (CHead e TMP_16 u) in (let 
171 H5 \def (eq_ind C c TMP_15 H1 TMP_17 H3) in (let TMP_18 \def (Flat f) in (let 
172 TMP_19 \def (CHead e TMP_18 u) in (let TMP_20 \def (refl_equal C TMP_19) in 
173 (H4 TMP_20))))))))))))))))))) in (clear_ind TMP_5 TMP_11 TMP_21 x y H0)))))) 
174 in (insert_eq C TMP_2 TMP_3 TMP_4 TMP_22 H))))))))))).
175
176 theorem clear_gen_all:
177  \forall (c1: C).(\forall (c2: C).((clear c1 c2) \to (ex_3 B C T (\lambda (b: 
178 B).(\lambda (e: C).(\lambda (u: T).(eq C c2 (CHead e (Bind b) u))))))))
179 \def
180  \lambda (c1: C).(\lambda (c2: C).(\lambda (H: (clear c1 c2)).(let TMP_4 \def 
181 (\lambda (_: C).(\lambda (c0: C).(let TMP_3 \def (\lambda (b: B).(\lambda (e: 
182 C).(\lambda (u: T).(let TMP_1 \def (Bind b) in (let TMP_2 \def (CHead e TMP_1 
183 u) in (eq C c0 TMP_2)))))) in (ex_3 B C T TMP_3)))) in (let TMP_13 \def 
184 (\lambda (b: B).(\lambda (e: C).(\lambda (u: T).(let TMP_9 \def (\lambda (b0: 
185 B).(\lambda (e0: C).(\lambda (u0: T).(let TMP_5 \def (Bind b) in (let TMP_6 
186 \def (CHead e TMP_5 u) in (let TMP_7 \def (Bind b0) in (let TMP_8 \def (CHead 
187 e0 TMP_7 u0) in (eq C TMP_6 TMP_8)))))))) in (let TMP_10 \def (Bind b) in 
188 (let TMP_11 \def (CHead e TMP_10 u) in (let TMP_12 \def (refl_equal C TMP_11) 
189 in (ex_3_intro B C T TMP_9 b e u TMP_12)))))))) in (let TMP_40 \def (\lambda 
190 (e: C).(\lambda (c: C).(\lambda (H0: (clear e c)).(\lambda (H1: (ex_3 B C T 
191 (\lambda (b: B).(\lambda (e0: C).(\lambda (u: T).(eq C c (CHead e0 (Bind b) 
192 u))))))).(\lambda (_: F).(\lambda (_: T).(let H2 \def H1 in (let TMP_16 \def 
193 (\lambda (b: B).(\lambda (e0: C).(\lambda (u0: T).(let TMP_14 \def (Bind b) 
194 in (let TMP_15 \def (CHead e0 TMP_14 u0) in (eq C c TMP_15)))))) in (let 
195 TMP_19 \def (\lambda (b: B).(\lambda (e0: C).(\lambda (u0: T).(let TMP_17 
196 \def (Bind b) in (let TMP_18 \def (CHead e0 TMP_17 u0) in (eq C c 
197 TMP_18)))))) in (let TMP_20 \def (ex_3 B C T TMP_19) in (let TMP_39 \def 
198 (\lambda (x0: B).(\lambda (x1: C).(\lambda (x2: T).(\lambda (H3: (eq C c 
199 (CHead x1 (Bind x0) x2))).(let TMP_21 \def (\lambda (c0: C).(clear e c0)) in 
200 (let TMP_22 \def (Bind x0) in (let TMP_23 \def (CHead x1 TMP_22 x2) in (let 
201 H4 \def (eq_ind C c TMP_21 H0 TMP_23 H3) in (let TMP_24 \def (Bind x0) in 
202 (let TMP_25 \def (CHead x1 TMP_24 x2) in (let TMP_29 \def (\lambda (c0: 
203 C).(let TMP_28 \def (\lambda (b: B).(\lambda (e0: C).(\lambda (u0: T).(let 
204 TMP_26 \def (Bind b) in (let TMP_27 \def (CHead e0 TMP_26 u0) in (eq C c0 
205 TMP_27)))))) in (ex_3 B C T TMP_28))) in (let TMP_34 \def (\lambda (b: 
206 B).(\lambda (e0: C).(\lambda (u0: T).(let TMP_30 \def (Bind x0) in (let 
207 TMP_31 \def (CHead x1 TMP_30 x2) in (let TMP_32 \def (Bind b) in (let TMP_33 
208 \def (CHead e0 TMP_32 u0) in (eq C TMP_31 TMP_33)))))))) in (let TMP_35 \def 
209 (Bind x0) in (let TMP_36 \def (CHead x1 TMP_35 x2) in (let TMP_37 \def 
210 (refl_equal C TMP_36) in (let TMP_38 \def (ex_3_intro B C T TMP_34 x0 x1 x2 
211 TMP_37) in (eq_ind_r C TMP_25 TMP_29 TMP_38 c H3))))))))))))))))) in 
212 (ex_3_ind B C T TMP_16 TMP_20 TMP_39 H2)))))))))))) in (clear_ind TMP_4 
213 TMP_13 TMP_40 c1 c2 H)))))).
214
215 theorem clear_mono:
216  \forall (c: C).(\forall (c1: C).((clear c c1) \to (\forall (c2: C).((clear c 
217 c2) \to (eq C c1 c2)))))
218 \def
219  \lambda (c: C).(let TMP_1 \def (\lambda (c0: C).(\forall (c1: C).((clear c0 
220 c1) \to (\forall (c2: C).((clear c0 c2) \to (eq C c1 c2)))))) in (let TMP_3 
221 \def (\lambda (n: nat).(\lambda (c1: C).(\lambda (_: (clear (CSort n) 
222 c1)).(\lambda (c2: C).(\lambda (H0: (clear (CSort n) c2)).(let TMP_2 \def (eq 
223 C c1 c2) in (clear_gen_sort c2 n H0 TMP_2))))))) in (let TMP_23 \def (\lambda 
224 (c0: C).(\lambda (H: ((\forall (c1: C).((clear c0 c1) \to (\forall (c2: 
225 C).((clear c0 c2) \to (eq C c1 c2))))))).(\lambda (k: K).(\lambda (t: 
226 T).(\lambda (c1: C).(\lambda (H0: (clear (CHead c0 k t) c1)).(\lambda (c2: 
227 C).(\lambda (H1: (clear (CHead c0 k t) c2)).(let TMP_4 \def (\lambda (k0: 
228 K).((clear (CHead c0 k0 t) c1) \to ((clear (CHead c0 k0 t) c2) \to (eq C c1 
229 c2)))) in (let TMP_19 \def (\lambda (b: B).(\lambda (H2: (clear (CHead c0 
230 (Bind b) t) c1)).(\lambda (H3: (clear (CHead c0 (Bind b) t) c2)).(let TMP_5 
231 \def (Bind b) in (let TMP_6 \def (CHead c0 TMP_5 t) in (let TMP_7 \def 
232 (\lambda (c3: C).(eq C c1 c3)) in (let TMP_8 \def (Bind b) in (let TMP_9 \def 
233 (CHead c0 TMP_8 t) in (let TMP_12 \def (\lambda (c3: C).(let TMP_10 \def 
234 (Bind b) in (let TMP_11 \def (CHead c0 TMP_10 t) in (eq C c3 TMP_11)))) in 
235 (let TMP_13 \def (Bind b) in (let TMP_14 \def (CHead c0 TMP_13 t) in (let 
236 TMP_15 \def (refl_equal C TMP_14) in (let TMP_16 \def (clear_gen_bind b c0 c1 
237 t H2) in (let TMP_17 \def (eq_ind_r C TMP_9 TMP_12 TMP_15 c1 TMP_16) in (let 
238 TMP_18 \def (clear_gen_bind b c0 c2 t H3) in (eq_ind_r C TMP_6 TMP_7 TMP_17 
239 c2 TMP_18)))))))))))))))) in (let TMP_22 \def (\lambda (f: F).(\lambda (H2: 
240 (clear (CHead c0 (Flat f) t) c1)).(\lambda (H3: (clear (CHead c0 (Flat f) t) 
241 c2)).(let TMP_20 \def (clear_gen_flat f c0 c1 t H2) in (let TMP_21 \def 
242 (clear_gen_flat f c0 c2 t H3) in (H c1 TMP_20 c2 TMP_21)))))) in (K_ind TMP_4 
243 TMP_19 TMP_22 k H0 H1)))))))))))) in (C_ind TMP_1 TMP_3 TMP_23 c)))).
244
245 theorem clear_cle:
246  \forall (c1: C).(\forall (c2: C).((clear c1 c2) \to (cle c2 c1)))
247 \def
248  \lambda (c1: C).(let TMP_3 \def (\lambda (c: C).(\forall (c2: C).((clear c 
249 c2) \to (let TMP_1 \def (cweight c2) in (let TMP_2 \def (cweight c) in (le 
250 TMP_1 TMP_2)))))) in (let TMP_6 \def (\lambda (n: nat).(\lambda (c2: 
251 C).(\lambda (H: (clear (CSort n) c2)).(let TMP_4 \def (cweight c2) in (let 
252 TMP_5 \def (le TMP_4 O) in (clear_gen_sort c2 n H TMP_5)))))) in (let TMP_31 
253 \def (\lambda (c: C).(\lambda (H: ((\forall (c2: C).((clear c c2) \to (le 
254 (cweight c2) (cweight c)))))).(\lambda (k: K).(\lambda (t: T).(\lambda (c2: 
255 C).(\lambda (H0: (clear (CHead c k t) c2)).(let TMP_11 \def (\lambda (k0: 
256 K).((clear (CHead c k0 t) c2) \to (let TMP_7 \def (cweight c2) in (let TMP_8 
257 \def (cweight c) in (let TMP_9 \def (tweight t) in (let TMP_10 \def (plus 
258 TMP_8 TMP_9) in (le TMP_7 TMP_10))))))) in (let TMP_24 \def (\lambda (b: 
259 B).(\lambda (H1: (clear (CHead c (Bind b) t) c2)).(let TMP_12 \def (Bind b) 
260 in (let TMP_13 \def (CHead c TMP_12 t) in (let TMP_18 \def (\lambda (c0: 
261 C).(let TMP_14 \def (cweight c0) in (let TMP_15 \def (cweight c) in (let 
262 TMP_16 \def (tweight t) in (let TMP_17 \def (plus TMP_15 TMP_16) in (le 
263 TMP_14 TMP_17)))))) in (let TMP_19 \def (cweight c) in (let TMP_20 \def 
264 (tweight t) in (let TMP_21 \def (plus TMP_19 TMP_20) in (let TMP_22 \def 
265 (le_n TMP_21) in (let TMP_23 \def (clear_gen_bind b c c2 t H1) in (eq_ind_r C 
266 TMP_13 TMP_18 TMP_22 c2 TMP_23))))))))))) in (let TMP_30 \def (\lambda (f: 
267 F).(\lambda (H1: (clear (CHead c (Flat f) t) c2)).(let TMP_25 \def (cweight 
268 c2) in (let TMP_26 \def (cweight c) in (let TMP_27 \def (tweight t) in (let 
269 TMP_28 \def (clear_gen_flat f c c2 t H1) in (let TMP_29 \def (H c2 TMP_28) in 
270 (le_plus_trans TMP_25 TMP_26 TMP_27 TMP_29)))))))) in (K_ind TMP_11 TMP_24 
271 TMP_30 k H0)))))))))) in (C_ind TMP_3 TMP_6 TMP_31 c1)))).
272