]> matita.cs.unibo.it Git - helm.git/blob - matita/matita/contribs/lambdadelta/basic_1/tlt/props.ma
- matitac: now directories are allowed as command line arguments
[helm.git] / matita / matita / contribs / lambdadelta / basic_1 / tlt / props.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/T/fwd.ma".
18
19 include "basic_1/tlt/defs.ma".
20
21 theorem wadd_le:
22  \forall (f: ((nat \to nat))).(\forall (g: ((nat \to nat))).(((\forall (n: 
23 nat).(le (f n) (g n)))) \to (\forall (v: nat).(\forall (w: nat).((le v w) \to 
24 (\forall (n: nat).(le (wadd f v n) (wadd g w n))))))))
25 \def
26  \lambda (f: ((nat \to nat))).(\lambda (g: ((nat \to nat))).(\lambda (H: 
27 ((\forall (n: nat).(le (f n) (g n))))).(\lambda (v: nat).(\lambda (w: 
28 nat).(\lambda (H0: (le v w)).(\lambda (n: nat).(let TMP_3 \def (\lambda (n0: 
29 nat).(let TMP_1 \def (wadd f v n0) in (let TMP_2 \def (wadd g w n0) in (le 
30 TMP_1 TMP_2)))) in (let TMP_4 \def (\lambda (n0: nat).(\lambda (_: (le (wadd 
31 f v n0) (wadd g w n0))).(H n0))) in (nat_ind TMP_3 H0 TMP_4 n))))))))).
32
33 theorem wadd_lt:
34  \forall (f: ((nat \to nat))).(\forall (g: ((nat \to nat))).(((\forall (n: 
35 nat).(le (f n) (g n)))) \to (\forall (v: nat).(\forall (w: nat).((lt v w) \to 
36 (\forall (n: nat).(le (wadd f v n) (wadd g w n))))))))
37 \def
38  \lambda (f: ((nat \to nat))).(\lambda (g: ((nat \to nat))).(\lambda (H: 
39 ((\forall (n: nat).(le (f n) (g n))))).(\lambda (v: nat).(\lambda (w: 
40 nat).(\lambda (H0: (lt v w)).(\lambda (n: nat).(let TMP_3 \def (\lambda (n0: 
41 nat).(let TMP_1 \def (wadd f v n0) in (let TMP_2 \def (wadd g w n0) in (le 
42 TMP_1 TMP_2)))) in (let TMP_4 \def (S v) in (let TMP_5 \def (S w) in (let 
43 TMP_6 \def (S v) in (let TMP_7 \def (S TMP_6) in (let TMP_8 \def (S w) in 
44 (let TMP_9 \def (S v) in (let TMP_10 \def (le_n_S TMP_9 w H0) in (let TMP_11 
45 \def (le_S TMP_7 TMP_8 TMP_10) in (let TMP_12 \def (le_S_n TMP_4 TMP_5 
46 TMP_11) in (let TMP_13 \def (le_S_n v w TMP_12) in (let TMP_14 \def (\lambda 
47 (n0: nat).(\lambda (_: (le (wadd f v n0) (wadd g w n0))).(H n0))) in (nat_ind 
48 TMP_3 TMP_13 TMP_14 n))))))))))))))))))).
49
50 theorem wadd_O:
51  \forall (n: nat).(eq nat (wadd (\lambda (_: nat).O) O n) O)
52 \def
53  \lambda (n: nat).(let TMP_3 \def (\lambda (n0: nat).(let TMP_1 \def (\lambda 
54 (_: nat).O) in (let TMP_2 \def (wadd TMP_1 O n0) in (eq nat TMP_2 O)))) in 
55 (let TMP_4 \def (refl_equal nat O) in (let TMP_5 \def (\lambda (n0: 
56 nat).(\lambda (_: (eq nat (wadd (\lambda (_: nat).O) O n0) O)).(refl_equal 
57 nat O))) in (nat_ind TMP_3 TMP_4 TMP_5 n)))).
58
59 theorem weight_le:
60  \forall (t: T).(\forall (f: ((nat \to nat))).(\forall (g: ((nat \to 
61 nat))).(((\forall (n: nat).(le (f n) (g n)))) \to (le (weight_map f t) 
62 (weight_map g t)))))
63 \def
64  \lambda (t: T).(let TMP_3 \def (\lambda (t0: T).(\forall (f: ((nat \to 
65 nat))).(\forall (g: ((nat \to nat))).(((\forall (n: nat).(le (f n) (g n)))) 
66 \to (let TMP_1 \def (weight_map f t0) in (let TMP_2 \def (weight_map g t0) in 
67 (le TMP_1 TMP_2))))))) in (let TMP_6 \def (\lambda (n: nat).(\lambda (f: 
68 ((nat \to nat))).(\lambda (g: ((nat \to nat))).(\lambda (_: ((\forall (n0: 
69 nat).(le (f n0) (g n0))))).(let TMP_4 \def (TSort n) in (let TMP_5 \def 
70 (weight_map g TMP_4) in (le_O_n TMP_5))))))) in (let TMP_7 \def (\lambda (n: 
71 nat).(\lambda (f: ((nat \to nat))).(\lambda (g: ((nat \to nat))).(\lambda (H: 
72 ((\forall (n0: nat).(le (f n0) (g n0))))).(H n))))) in (let TMP_144 \def 
73 (\lambda (k: K).(let TMP_12 \def (\lambda (k0: K).(\forall (t0: T).(((\forall 
74 (f: ((nat \to nat))).(\forall (g: ((nat \to nat))).(((\forall (n: nat).(le (f 
75 n) (g n)))) \to (le (weight_map f t0) (weight_map g t0)))))) \to (\forall 
76 (t1: T).(((\forall (f: ((nat \to nat))).(\forall (g: ((nat \to 
77 nat))).(((\forall (n: nat).(le (f n) (g n)))) \to (le (weight_map f t1) 
78 (weight_map g t1)))))) \to (\forall (f: ((nat \to nat))).(\forall (g: ((nat 
79 \to nat))).(((\forall (n: nat).(le (f n) (g n)))) \to (let TMP_8 \def (THead 
80 k0 t0 t1) in (let TMP_9 \def (weight_map f TMP_8) in (let TMP_10 \def (THead 
81 k0 t0 t1) in (let TMP_11 \def (weight_map g TMP_10) in (le TMP_9 
82 TMP_11))))))))))))) in (let TMP_129 \def (\lambda (b: B).(let TMP_43 \def 
83 (\lambda (b0: B).(\forall (t0: T).(((\forall (f: ((nat \to nat))).(\forall 
84 (g: ((nat \to nat))).(((\forall (n: nat).(le (f n) (g n)))) \to (le 
85 (weight_map f t0) (weight_map g t0)))))) \to (\forall (t1: T).(((\forall (f: 
86 ((nat \to nat))).(\forall (g: ((nat \to nat))).(((\forall (n: nat).(le (f n) 
87 (g n)))) \to (le (weight_map f t1) (weight_map g t1)))))) \to (\forall (f: 
88 ((nat \to nat))).(\forall (g: ((nat \to nat))).(((\forall (n: nat).(le (f n) 
89 (g n)))) \to (let TMP_27 \def (match b0 with [Abbr \Rightarrow (let TMP_21 
90 \def (weight_map f t0) in (let TMP_22 \def (weight_map f t0) in (let TMP_23 
91 \def (S TMP_22) in (let TMP_24 \def (wadd f TMP_23) in (let TMP_25 \def 
92 (weight_map TMP_24 t1) in (let TMP_26 \def (plus TMP_21 TMP_25) in (S 
93 TMP_26))))))) | Abst \Rightarrow (let TMP_17 \def (weight_map f t0) in (let 
94 TMP_18 \def (wadd f O) in (let TMP_19 \def (weight_map TMP_18 t1) in (let 
95 TMP_20 \def (plus TMP_17 TMP_19) in (S TMP_20))))) | Void \Rightarrow (let 
96 TMP_13 \def (weight_map f t0) in (let TMP_14 \def (wadd f O) in (let TMP_15 
97 \def (weight_map TMP_14 t1) in (let TMP_16 \def (plus TMP_13 TMP_15) in (S 
98 TMP_16)))))]) in (let TMP_42 \def (match b0 with [Abbr \Rightarrow (let 
99 TMP_36 \def (weight_map g t0) in (let TMP_37 \def (weight_map g t0) in (let 
100 TMP_38 \def (S TMP_37) in (let TMP_39 \def (wadd g TMP_38) in (let TMP_40 
101 \def (weight_map TMP_39 t1) in (let TMP_41 \def (plus TMP_36 TMP_40) in (S 
102 TMP_41))))))) | Abst \Rightarrow (let TMP_32 \def (weight_map g t0) in (let 
103 TMP_33 \def (wadd g O) in (let TMP_34 \def (weight_map TMP_33 t1) in (let 
104 TMP_35 \def (plus TMP_32 TMP_34) in (S TMP_35))))) | Void \Rightarrow (let 
105 TMP_28 \def (weight_map g t0) in (let TMP_29 \def (wadd g O) in (let TMP_30 
106 \def (weight_map TMP_29 t1) in (let TMP_31 \def (plus TMP_28 TMP_30) in (S 
107 TMP_31)))))]) in (le TMP_27 TMP_42))))))))))) in (let TMP_84 \def (\lambda 
108 (t0: T).(\lambda (H: ((\forall (f: ((nat \to nat))).(\forall (g: ((nat \to 
109 nat))).(((\forall (n: nat).(le (f n) (g n)))) \to (le (weight_map f t0) 
110 (weight_map g t0))))))).(\lambda (t1: T).(\lambda (H0: ((\forall (f: ((nat 
111 \to nat))).(\forall (g: ((nat \to nat))).(((\forall (n: nat).(le (f n) (g 
112 n)))) \to (le (weight_map f t1) (weight_map g t1))))))).(\lambda (f: ((nat 
113 \to nat))).(\lambda (g: ((nat \to nat))).(\lambda (H1: ((\forall (n: nat).(le 
114 (f n) (g n))))).(let TMP_44 \def (weight_map f t0) in (let TMP_45 \def 
115 (weight_map f t0) in (let TMP_46 \def (S TMP_45) in (let TMP_47 \def (wadd f 
116 TMP_46) in (let TMP_48 \def (weight_map TMP_47 t1) in (let TMP_49 \def (plus 
117 TMP_44 TMP_48) in (let TMP_50 \def (weight_map g t0) in (let TMP_51 \def 
118 (weight_map g t0) in (let TMP_52 \def (S TMP_51) in (let TMP_53 \def (wadd g 
119 TMP_52) in (let TMP_54 \def (weight_map TMP_53 t1) in (let TMP_55 \def (plus 
120 TMP_50 TMP_54) in (let TMP_56 \def (weight_map f t0) in (let TMP_57 \def 
121 (weight_map g t0) in (let TMP_58 \def (weight_map f t0) in (let TMP_59 \def 
122 (S TMP_58) in (let TMP_60 \def (wadd f TMP_59) in (let TMP_61 \def 
123 (weight_map TMP_60 t1) in (let TMP_62 \def (weight_map g t0) in (let TMP_63 
124 \def (S TMP_62) in (let TMP_64 \def (wadd g TMP_63) in (let TMP_65 \def 
125 (weight_map TMP_64 t1) in (let TMP_66 \def (H f g H1) in (let TMP_67 \def 
126 (weight_map f t0) in (let TMP_68 \def (S TMP_67) in (let TMP_69 \def (wadd f 
127 TMP_68) in (let TMP_70 \def (weight_map g t0) in (let TMP_71 \def (S TMP_70) 
128 in (let TMP_72 \def (wadd g TMP_71) in (let TMP_81 \def (\lambda (n: 
129 nat).(let TMP_73 \def (weight_map f t0) in (let TMP_74 \def (S TMP_73) in 
130 (let TMP_75 \def (weight_map g t0) in (let TMP_76 \def (S TMP_75) in (let 
131 TMP_77 \def (weight_map f t0) in (let TMP_78 \def (weight_map g t0) in (let 
132 TMP_79 \def (H f g H1) in (let TMP_80 \def (le_n_S TMP_77 TMP_78 TMP_79) in 
133 (wadd_le f g H1 TMP_74 TMP_76 TMP_80 n)))))))))) in (let TMP_82 \def (H0 
134 TMP_69 TMP_72 TMP_81) in (let TMP_83 \def (le_plus_plus TMP_56 TMP_57 TMP_61 
135 TMP_65 TMP_66 TMP_82) in (le_n_S TMP_49 TMP_55 
136 TMP_83)))))))))))))))))))))))))))))))))))))))) in (let TMP_106 \def (\lambda 
137 (t0: T).(\lambda (H: ((\forall (f: ((nat \to nat))).(\forall (g: ((nat \to 
138 nat))).(((\forall (n: nat).(le (f n) (g n)))) \to (le (weight_map f t0) 
139 (weight_map g t0))))))).(\lambda (t1: T).(\lambda (H0: ((\forall (f: ((nat 
140 \to nat))).(\forall (g: ((nat \to nat))).(((\forall (n: nat).(le (f n) (g 
141 n)))) \to (le (weight_map f t1) (weight_map g t1))))))).(\lambda (f: ((nat 
142 \to nat))).(\lambda (g: ((nat \to nat))).(\lambda (H1: ((\forall (n: nat).(le 
143 (f n) (g n))))).(let TMP_85 \def (weight_map f t0) in (let TMP_86 \def (wadd 
144 f O) in (let TMP_87 \def (weight_map TMP_86 t1) in (let TMP_88 \def (plus 
145 TMP_85 TMP_87) in (let TMP_89 \def (weight_map g t0) in (let TMP_90 \def 
146 (wadd g O) in (let TMP_91 \def (weight_map TMP_90 t1) in (let TMP_92 \def 
147 (plus TMP_89 TMP_91) in (let TMP_93 \def (weight_map f t0) in (let TMP_94 
148 \def (weight_map g t0) in (let TMP_95 \def (wadd f O) in (let TMP_96 \def 
149 (weight_map TMP_95 t1) in (let TMP_97 \def (wadd g O) in (let TMP_98 \def 
150 (weight_map TMP_97 t1) in (let TMP_99 \def (H f g H1) in (let TMP_100 \def 
151 (wadd f O) in (let TMP_101 \def (wadd g O) in (let TMP_103 \def (\lambda (n: 
152 nat).(let TMP_102 \def (le_O_n O) in (wadd_le f g H1 O O TMP_102 n))) in (let 
153 TMP_104 \def (H0 TMP_100 TMP_101 TMP_103) in (let TMP_105 \def (le_plus_plus 
154 TMP_93 TMP_94 TMP_96 TMP_98 TMP_99 TMP_104) in (le_n_S TMP_88 TMP_92 
155 TMP_105)))))))))))))))))))))))))))) in (let TMP_128 \def (\lambda (t0: 
156 T).(\lambda (H: ((\forall (f: ((nat \to nat))).(\forall (g: ((nat \to 
157 nat))).(((\forall (n: nat).(le (f n) (g n)))) \to (le (weight_map f t0) 
158 (weight_map g t0))))))).(\lambda (t1: T).(\lambda (H0: ((\forall (f: ((nat 
159 \to nat))).(\forall (g: ((nat \to nat))).(((\forall (n: nat).(le (f n) (g 
160 n)))) \to (le (weight_map f t1) (weight_map g t1))))))).(\lambda (f: ((nat 
161 \to nat))).(\lambda (g: ((nat \to nat))).(\lambda (H1: ((\forall (n: nat).(le 
162 (f n) (g n))))).(let TMP_107 \def (weight_map f t0) in (let TMP_108 \def 
163 (wadd f O) in (let TMP_109 \def (weight_map TMP_108 t1) in (let TMP_110 \def 
164 (plus TMP_107 TMP_109) in (let TMP_111 \def (weight_map g t0) in (let TMP_112 
165 \def (wadd g O) in (let TMP_113 \def (weight_map TMP_112 t1) in (let TMP_114 
166 \def (plus TMP_111 TMP_113) in (let TMP_115 \def (weight_map f t0) in (let 
167 TMP_116 \def (weight_map g t0) in (let TMP_117 \def (wadd f O) in (let 
168 TMP_118 \def (weight_map TMP_117 t1) in (let TMP_119 \def (wadd g O) in (let 
169 TMP_120 \def (weight_map TMP_119 t1) in (let TMP_121 \def (H f g H1) in (let 
170 TMP_122 \def (wadd f O) in (let TMP_123 \def (wadd g O) in (let TMP_125 \def 
171 (\lambda (n: nat).(let TMP_124 \def (le_O_n O) in (wadd_le f g H1 O O TMP_124 
172 n))) in (let TMP_126 \def (H0 TMP_122 TMP_123 TMP_125) in (let TMP_127 \def 
173 (le_plus_plus TMP_115 TMP_116 TMP_118 TMP_120 TMP_121 TMP_126) in (le_n_S 
174 TMP_110 TMP_114 TMP_127)))))))))))))))))))))))))))) in (B_ind TMP_43 TMP_84 
175 TMP_106 TMP_128 b)))))) in (let TMP_143 \def (\lambda (_: F).(\lambda (t0: 
176 T).(\lambda (H: ((\forall (f0: ((nat \to nat))).(\forall (g: ((nat \to 
177 nat))).(((\forall (n: nat).(le (f0 n) (g n)))) \to (le (weight_map f0 t0) 
178 (weight_map g t0))))))).(\lambda (t1: T).(\lambda (H0: ((\forall (f0: ((nat 
179 \to nat))).(\forall (g: ((nat \to nat))).(((\forall (n: nat).(le (f0 n) (g 
180 n)))) \to (le (weight_map f0 t1) (weight_map g t1))))))).(\lambda (f0: ((nat 
181 \to nat))).(\lambda (g: ((nat \to nat))).(\lambda (H1: ((\forall (n: nat).(le 
182 (f0 n) (g n))))).(let TMP_130 \def (weight_map f0 t0) in (let TMP_131 \def 
183 (weight_map f0 t1) in (let TMP_132 \def (plus TMP_130 TMP_131) in (let 
184 TMP_133 \def (weight_map g t0) in (let TMP_134 \def (weight_map g t1) in (let 
185 TMP_135 \def (plus TMP_133 TMP_134) in (let TMP_136 \def (weight_map f0 t0) 
186 in (let TMP_137 \def (weight_map g t0) in (let TMP_138 \def (weight_map f0 
187 t1) in (let TMP_139 \def (weight_map g t1) in (let TMP_140 \def (H f0 g H1) 
188 in (let TMP_141 \def (H0 f0 g H1) in (let TMP_142 \def (le_plus_plus TMP_136 
189 TMP_137 TMP_138 TMP_139 TMP_140 TMP_141) in (le_n_S TMP_132 TMP_135 
190 TMP_142)))))))))))))))))))))) in (K_ind TMP_12 TMP_129 TMP_143 k))))) in 
191 (T_ind TMP_3 TMP_6 TMP_7 TMP_144 t))))).
192
193 theorem weight_eq:
194  \forall (t: T).(\forall (f: ((nat \to nat))).(\forall (g: ((nat \to 
195 nat))).(((\forall (n: nat).(eq nat (f n) (g n)))) \to (eq nat (weight_map f 
196 t) (weight_map g t)))))
197 \def
198  \lambda (t: T).(\lambda (f: ((nat \to nat))).(\lambda (g: ((nat \to 
199 nat))).(\lambda (H: ((\forall (n: nat).(eq nat (f n) (g n))))).(let TMP_1 
200 \def (weight_map f t) in (let TMP_2 \def (weight_map g t) in (let TMP_10 \def 
201 (\lambda (n: nat).(let TMP_3 \def (g n) in (let TMP_5 \def (\lambda (n0: 
202 nat).(let TMP_4 \def (g n) in (le n0 TMP_4))) in (let TMP_6 \def (g n) in 
203 (let TMP_7 \def (le_n TMP_6) in (let TMP_8 \def (f n) in (let TMP_9 \def (H 
204 n) in (eq_ind_r nat TMP_3 TMP_5 TMP_7 TMP_8 TMP_9)))))))) in (let TMP_11 \def 
205 (weight_le t f g TMP_10) in (let TMP_19 \def (\lambda (n: nat).(let TMP_12 
206 \def (g n) in (let TMP_14 \def (\lambda (n0: nat).(let TMP_13 \def (g n) in 
207 (le TMP_13 n0))) in (let TMP_15 \def (g n) in (let TMP_16 \def (le_n TMP_15) 
208 in (let TMP_17 \def (f n) in (let TMP_18 \def (H n) in (eq_ind_r nat TMP_12 
209 TMP_14 TMP_16 TMP_17 TMP_18)))))))) in (let TMP_20 \def (weight_le t g f 
210 TMP_19) in (le_antisym TMP_1 TMP_2 TMP_11 TMP_20)))))))))).
211
212 theorem weight_add_O:
213  \forall (t: T).(eq nat (weight_map (wadd (\lambda (_: nat).O) O) t) 
214 (weight_map (\lambda (_: nat).O) t))
215 \def
216  \lambda (t: T).(let TMP_1 \def (\lambda (_: nat).O) in (let TMP_2 \def (wadd 
217 TMP_1 O) in (let TMP_3 \def (\lambda (_: nat).O) in (let TMP_4 \def (\lambda 
218 (n: nat).(wadd_O n)) in (weight_eq t TMP_2 TMP_3 TMP_4))))).
219
220 theorem weight_add_S:
221  \forall (t: T).(\forall (m: nat).(le (weight_map (wadd (\lambda (_: nat).O) 
222 O) t) (weight_map (wadd (\lambda (_: nat).O) (S m)) t)))
223 \def
224  \lambda (t: T).(\lambda (m: nat).(let TMP_1 \def (\lambda (_: nat).O) in 
225 (let TMP_2 \def (wadd TMP_1 O) in (let TMP_3 \def (\lambda (_: nat).O) in 
226 (let TMP_4 \def (S m) in (let TMP_5 \def (wadd TMP_3 TMP_4) in (let TMP_12 
227 \def (\lambda (n: nat).(let TMP_6 \def (\lambda (_: nat).O) in (let TMP_7 
228 \def (\lambda (_: nat).O) in (let TMP_8 \def (\lambda (_: nat).(le_O_n O)) in 
229 (let TMP_9 \def (S m) in (let TMP_10 \def (S m) in (let TMP_11 \def (le_O_n 
230 TMP_10) in (wadd_le TMP_6 TMP_7 TMP_8 O TMP_9 TMP_11 n)))))))) in (weight_le 
231 t TMP_2 TMP_5 TMP_12)))))))).
232
233 theorem tlt_trans:
234  \forall (v: T).(\forall (u: T).(\forall (t: T).((tlt u v) \to ((tlt v t) \to 
235 (tlt u t)))))
236 \def
237  \lambda (v: T).(\lambda (u: T).(\lambda (t: T).(\lambda (H: (lt (weight u) 
238 (weight v))).(\lambda (H0: (lt (weight v) (weight t))).(let TMP_1 \def 
239 (weight u) in (let TMP_2 \def (weight v) in (let TMP_3 \def (weight t) in 
240 (lt_trans TMP_1 TMP_2 TMP_3 H H0)))))))).
241
242 theorem tlt_head_sx:
243  \forall (k: K).(\forall (u: T).(\forall (t: T).(tlt u (THead k u t))))
244 \def
245  \lambda (k: K).(let TMP_6 \def (\lambda (k0: K).(\forall (u: T).(\forall (t: 
246 T).(let TMP_1 \def (\lambda (_: nat).O) in (let TMP_2 \def (weight_map TMP_1 
247 u) in (let TMP_3 \def (\lambda (_: nat).O) in (let TMP_4 \def (THead k0 u t) 
248 in (let TMP_5 \def (weight_map TMP_3 TMP_4) in (lt TMP_2 TMP_5))))))))) in 
249 (let TMP_83 \def (\lambda (b: B).(let TMP_31 \def (\lambda (b0: B).(\forall 
250 (u: T).(\forall (t: T).(let TMP_7 \def (\lambda (_: nat).O) in (let TMP_8 
251 \def (weight_map TMP_7 u) in (let TMP_30 \def (match b0 with [Abbr 
252 \Rightarrow (let TMP_21 \def (\lambda (_: nat).O) in (let TMP_22 \def 
253 (weight_map TMP_21 u) in (let TMP_23 \def (\lambda (_: nat).O) in (let TMP_24 
254 \def (\lambda (_: nat).O) in (let TMP_25 \def (weight_map TMP_24 u) in (let 
255 TMP_26 \def (S TMP_25) in (let TMP_27 \def (wadd TMP_23 TMP_26) in (let 
256 TMP_28 \def (weight_map TMP_27 t) in (let TMP_29 \def (plus TMP_22 TMP_28) in 
257 (S TMP_29)))))))))) | Abst \Rightarrow (let TMP_15 \def (\lambda (_: nat).O) 
258 in (let TMP_16 \def (weight_map TMP_15 u) in (let TMP_17 \def (\lambda (_: 
259 nat).O) in (let TMP_18 \def (wadd TMP_17 O) in (let TMP_19 \def (weight_map 
260 TMP_18 t) in (let TMP_20 \def (plus TMP_16 TMP_19) in (S TMP_20))))))) | Void 
261 \Rightarrow (let TMP_9 \def (\lambda (_: nat).O) in (let TMP_10 \def 
262 (weight_map TMP_9 u) in (let TMP_11 \def (\lambda (_: nat).O) in (let TMP_12 
263 \def (wadd TMP_11 O) in (let TMP_13 \def (weight_map TMP_12 t) in (let TMP_14 
264 \def (plus TMP_10 TMP_13) in (S TMP_14)))))))]) in (lt TMP_8 TMP_30))))))) in 
265 (let TMP_52 \def (\lambda (u: T).(\lambda (t: T).(let TMP_32 \def (\lambda 
266 (_: nat).O) in (let TMP_33 \def (weight_map TMP_32 u) in (let TMP_34 \def 
267 (\lambda (_: nat).O) in (let TMP_35 \def (weight_map TMP_34 u) in (let TMP_36 
268 \def (\lambda (_: nat).O) in (let TMP_37 \def (\lambda (_: nat).O) in (let 
269 TMP_38 \def (weight_map TMP_37 u) in (let TMP_39 \def (S TMP_38) in (let 
270 TMP_40 \def (wadd TMP_36 TMP_39) in (let TMP_41 \def (weight_map TMP_40 t) in 
271 (let TMP_42 \def (plus TMP_35 TMP_41) in (let TMP_43 \def (\lambda (_: 
272 nat).O) in (let TMP_44 \def (weight_map TMP_43 u) in (let TMP_45 \def 
273 (\lambda (_: nat).O) in (let TMP_46 \def (\lambda (_: nat).O) in (let TMP_47 
274 \def (weight_map TMP_46 u) in (let TMP_48 \def (S TMP_47) in (let TMP_49 \def 
275 (wadd TMP_45 TMP_48) in (let TMP_50 \def (weight_map TMP_49 t) in (let TMP_51 
276 \def (le_plus_l TMP_44 TMP_50) in (le_n_S TMP_33 TMP_42 
277 TMP_51))))))))))))))))))))))) in (let TMP_67 \def (\lambda (u: T).(\lambda 
278 (t: T).(let TMP_53 \def (\lambda (_: nat).O) in (let TMP_54 \def (weight_map 
279 TMP_53 u) in (let TMP_55 \def (\lambda (_: nat).O) in (let TMP_56 \def 
280 (weight_map TMP_55 u) in (let TMP_57 \def (\lambda (_: nat).O) in (let TMP_58 
281 \def (wadd TMP_57 O) in (let TMP_59 \def (weight_map TMP_58 t) in (let TMP_60 
282 \def (plus TMP_56 TMP_59) in (let TMP_61 \def (\lambda (_: nat).O) in (let 
283 TMP_62 \def (weight_map TMP_61 u) in (let TMP_63 \def (\lambda (_: nat).O) in 
284 (let TMP_64 \def (wadd TMP_63 O) in (let TMP_65 \def (weight_map TMP_64 t) in 
285 (let TMP_66 \def (le_plus_l TMP_62 TMP_65) in (le_n_S TMP_54 TMP_60 
286 TMP_66))))))))))))))))) in (let TMP_82 \def (\lambda (u: T).(\lambda (t: 
287 T).(let TMP_68 \def (\lambda (_: nat).O) in (let TMP_69 \def (weight_map 
288 TMP_68 u) in (let TMP_70 \def (\lambda (_: nat).O) in (let TMP_71 \def 
289 (weight_map TMP_70 u) in (let TMP_72 \def (\lambda (_: nat).O) in (let TMP_73 
290 \def (wadd TMP_72 O) in (let TMP_74 \def (weight_map TMP_73 t) in (let TMP_75 
291 \def (plus TMP_71 TMP_74) in (let TMP_76 \def (\lambda (_: nat).O) in (let 
292 TMP_77 \def (weight_map TMP_76 u) in (let TMP_78 \def (\lambda (_: nat).O) in 
293 (let TMP_79 \def (wadd TMP_78 O) in (let TMP_80 \def (weight_map TMP_79 t) in 
294 (let TMP_81 \def (le_plus_l TMP_77 TMP_80) in (le_n_S TMP_69 TMP_75 
295 TMP_81))))))))))))))))) in (B_ind TMP_31 TMP_52 TMP_67 TMP_82 b)))))) in (let 
296 TMP_96 \def (\lambda (_: F).(\lambda (u: T).(\lambda (t: T).(let TMP_84 \def 
297 (\lambda (_: nat).O) in (let TMP_85 \def (weight_map TMP_84 u) in (let TMP_86 
298 \def (\lambda (_: nat).O) in (let TMP_87 \def (weight_map TMP_86 u) in (let 
299 TMP_88 \def (\lambda (_: nat).O) in (let TMP_89 \def (weight_map TMP_88 t) in 
300 (let TMP_90 \def (plus TMP_87 TMP_89) in (let TMP_91 \def (\lambda (_: 
301 nat).O) in (let TMP_92 \def (weight_map TMP_91 u) in (let TMP_93 \def 
302 (\lambda (_: nat).O) in (let TMP_94 \def (weight_map TMP_93 t) in (let TMP_95 
303 \def (le_plus_l TMP_92 TMP_94) in (le_n_S TMP_85 TMP_90 
304 TMP_95)))))))))))))))) in (K_ind TMP_6 TMP_83 TMP_96 k)))).
305
306 theorem tlt_head_dx:
307  \forall (k: K).(\forall (u: T).(\forall (t: T).(tlt t (THead k u t))))
308 \def
309  \lambda (k: K).(let TMP_6 \def (\lambda (k0: K).(\forall (u: T).(\forall (t: 
310 T).(let TMP_1 \def (\lambda (_: nat).O) in (let TMP_2 \def (weight_map TMP_1 
311 t) in (let TMP_3 \def (\lambda (_: nat).O) in (let TMP_4 \def (THead k0 u t) 
312 in (let TMP_5 \def (weight_map TMP_3 TMP_4) in (lt TMP_2 TMP_5))))))))) in 
313 (let TMP_161 \def (\lambda (b: B).(let TMP_31 \def (\lambda (b0: B).(\forall 
314 (u: T).(\forall (t: T).(let TMP_7 \def (\lambda (_: nat).O) in (let TMP_8 
315 \def (weight_map TMP_7 t) in (let TMP_30 \def (match b0 with [Abbr 
316 \Rightarrow (let TMP_21 \def (\lambda (_: nat).O) in (let TMP_22 \def 
317 (weight_map TMP_21 u) in (let TMP_23 \def (\lambda (_: nat).O) in (let TMP_24 
318 \def (\lambda (_: nat).O) in (let TMP_25 \def (weight_map TMP_24 u) in (let 
319 TMP_26 \def (S TMP_25) in (let TMP_27 \def (wadd TMP_23 TMP_26) in (let 
320 TMP_28 \def (weight_map TMP_27 t) in (let TMP_29 \def (plus TMP_22 TMP_28) in 
321 (S TMP_29)))))))))) | Abst \Rightarrow (let TMP_15 \def (\lambda (_: nat).O) 
322 in (let TMP_16 \def (weight_map TMP_15 u) in (let TMP_17 \def (\lambda (_: 
323 nat).O) in (let TMP_18 \def (wadd TMP_17 O) in (let TMP_19 \def (weight_map 
324 TMP_18 t) in (let TMP_20 \def (plus TMP_16 TMP_19) in (S TMP_20))))))) | Void 
325 \Rightarrow (let TMP_9 \def (\lambda (_: nat).O) in (let TMP_10 \def 
326 (weight_map TMP_9 u) in (let TMP_11 \def (\lambda (_: nat).O) in (let TMP_12 
327 \def (wadd TMP_11 O) in (let TMP_13 \def (weight_map TMP_12 t) in (let TMP_14 
328 \def (plus TMP_10 TMP_13) in (S TMP_14)))))))]) in (lt TMP_8 TMP_30))))))) in 
329 (let TMP_106 \def (\lambda (u: T).(\lambda (t: T).(let TMP_32 \def (\lambda 
330 (_: nat).O) in (let TMP_33 \def (weight_map TMP_32 t) in (let TMP_34 \def 
331 (\lambda (_: nat).O) in (let TMP_35 \def (weight_map TMP_34 t) in (let TMP_36 
332 \def (S TMP_35) in (let TMP_37 \def (\lambda (_: nat).O) in (let TMP_38 \def 
333 (weight_map TMP_37 u) in (let TMP_39 \def (\lambda (_: nat).O) in (let TMP_40 
334 \def (\lambda (_: nat).O) in (let TMP_41 \def (weight_map TMP_40 u) in (let 
335 TMP_42 \def (S TMP_41) in (let TMP_43 \def (wadd TMP_39 TMP_42) in (let 
336 TMP_44 \def (weight_map TMP_43 t) in (let TMP_45 \def (plus TMP_38 TMP_44) in 
337 (let TMP_46 \def (S TMP_45) in (let TMP_47 \def (\lambda (_: nat).O) in (let 
338 TMP_48 \def (weight_map TMP_47 t) in (let TMP_49 \def (lt_n_Sn TMP_48) in 
339 (let TMP_50 \def (\lambda (_: nat).O) in (let TMP_51 \def (weight_map TMP_50 
340 t) in (let TMP_52 \def (\lambda (_: nat).O) in (let TMP_53 \def (weight_map 
341 TMP_52 u) in (let TMP_54 \def (\lambda (_: nat).O) in (let TMP_55 \def 
342 (\lambda (_: nat).O) in (let TMP_56 \def (weight_map TMP_55 u) in (let TMP_57 
343 \def (S TMP_56) in (let TMP_58 \def (wadd TMP_54 TMP_57) in (let TMP_59 \def 
344 (weight_map TMP_58 t) in (let TMP_60 \def (plus TMP_53 TMP_59) in (let TMP_61 
345 \def (\lambda (_: nat).O) in (let TMP_62 \def (weight_map TMP_61 t) in (let 
346 TMP_63 \def (\lambda (_: nat).O) in (let TMP_64 \def (\lambda (_: nat).O) in 
347 (let TMP_65 \def (weight_map TMP_64 u) in (let TMP_66 \def (S TMP_65) in (let 
348 TMP_67 \def (wadd TMP_63 TMP_66) in (let TMP_68 \def (weight_map TMP_67 t) in 
349 (let TMP_69 \def (\lambda (_: nat).O) in (let TMP_70 \def (weight_map TMP_69 
350 u) in (let TMP_71 \def (\lambda (_: nat).O) in (let TMP_72 \def (\lambda (_: 
351 nat).O) in (let TMP_73 \def (weight_map TMP_72 u) in (let TMP_74 \def (S 
352 TMP_73) in (let TMP_75 \def (wadd TMP_71 TMP_74) in (let TMP_76 \def 
353 (weight_map TMP_75 t) in (let TMP_77 \def (plus TMP_70 TMP_76) in (let TMP_78 
354 \def (\lambda (_: nat).O) in (let TMP_79 \def (wadd TMP_78 O) in (let TMP_80 
355 \def (weight_map TMP_79 t) in (let TMP_87 \def (\lambda (n: nat).(let TMP_81 
356 \def (\lambda (_: nat).O) in (let TMP_82 \def (\lambda (_: nat).O) in (let 
357 TMP_83 \def (weight_map TMP_82 u) in (let TMP_84 \def (S TMP_83) in (let 
358 TMP_85 \def (wadd TMP_81 TMP_84) in (let TMP_86 \def (weight_map TMP_85 t) in 
359 (le n TMP_86)))))))) in (let TMP_88 \def (\lambda (_: nat).O) in (let TMP_89 
360 \def (weight_map TMP_88 u) in (let TMP_90 \def (weight_add_S t TMP_89) in 
361 (let TMP_91 \def (\lambda (_: nat).O) in (let TMP_92 \def (weight_map TMP_91 
362 t) in (let TMP_93 \def (weight_add_O t) in (let TMP_94 \def (eq_ind nat 
363 TMP_80 TMP_87 TMP_90 TMP_92 TMP_93) in (let TMP_95 \def (\lambda (_: nat).O) 
364 in (let TMP_96 \def (weight_map TMP_95 u) in (let TMP_97 \def (\lambda (_: 
365 nat).O) in (let TMP_98 \def (\lambda (_: nat).O) in (let TMP_99 \def 
366 (weight_map TMP_98 u) in (let TMP_100 \def (S TMP_99) in (let TMP_101 \def 
367 (wadd TMP_97 TMP_100) in (let TMP_102 \def (weight_map TMP_101 t) in (let 
368 TMP_103 \def (le_plus_r TMP_96 TMP_102) in (let TMP_104 \def (le_trans TMP_62 
369 TMP_68 TMP_77 TMP_94 TMP_103) in (let TMP_105 \def (le_n_S TMP_51 TMP_60 
370 TMP_104) in (lt_le_trans TMP_33 TMP_36 TMP_46 TMP_49 
371 TMP_105)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
372  in (let TMP_133 \def (\lambda (u: T).(\lambda (t: T).(let TMP_107 \def 
373 (\lambda (_: nat).O) in (let TMP_108 \def (weight_map TMP_107 t) in (let 
374 TMP_115 \def (\lambda (n: nat).(let TMP_109 \def (\lambda (_: nat).O) in (let 
375 TMP_110 \def (weight_map TMP_109 t) in (let TMP_111 \def (\lambda (_: nat).O) 
376 in (let TMP_112 \def (weight_map TMP_111 u) in (let TMP_113 \def (plus 
377 TMP_112 n) in (let TMP_114 \def (S TMP_113) in (lt TMP_110 TMP_114)))))))) in 
378 (let TMP_116 \def (\lambda (_: nat).O) in (let TMP_117 \def (weight_map 
379 TMP_116 t) in (let TMP_118 \def (\lambda (_: nat).O) in (let TMP_119 \def 
380 (weight_map TMP_118 u) in (let TMP_120 \def (\lambda (_: nat).O) in (let 
381 TMP_121 \def (weight_map TMP_120 t) in (let TMP_122 \def (plus TMP_119 
382 TMP_121) in (let TMP_123 \def (\lambda (_: nat).O) in (let TMP_124 \def 
383 (weight_map TMP_123 u) in (let TMP_125 \def (\lambda (_: nat).O) in (let 
384 TMP_126 \def (weight_map TMP_125 t) in (let TMP_127 \def (le_plus_r TMP_124 
385 TMP_126) in (let TMP_128 \def (le_n_S TMP_117 TMP_122 TMP_127) in (let 
386 TMP_129 \def (\lambda (_: nat).O) in (let TMP_130 \def (wadd TMP_129 O) in 
387 (let TMP_131 \def (weight_map TMP_130 t) in (let TMP_132 \def (weight_add_O 
388 t) in (eq_ind_r nat TMP_108 TMP_115 TMP_128 TMP_131 
389 TMP_132))))))))))))))))))))))) in (let TMP_160 \def (\lambda (u: T).(\lambda 
390 (t: T).(let TMP_134 \def (\lambda (_: nat).O) in (let TMP_135 \def 
391 (weight_map TMP_134 t) in (let TMP_142 \def (\lambda (n: nat).(let TMP_136 
392 \def (\lambda (_: nat).O) in (let TMP_137 \def (weight_map TMP_136 t) in (let 
393 TMP_138 \def (\lambda (_: nat).O) in (let TMP_139 \def (weight_map TMP_138 u) 
394 in (let TMP_140 \def (plus TMP_139 n) in (let TMP_141 \def (S TMP_140) in (lt 
395 TMP_137 TMP_141)))))))) in (let TMP_143 \def (\lambda (_: nat).O) in (let 
396 TMP_144 \def (weight_map TMP_143 t) in (let TMP_145 \def (\lambda (_: nat).O) 
397 in (let TMP_146 \def (weight_map TMP_145 u) in (let TMP_147 \def (\lambda (_: 
398 nat).O) in (let TMP_148 \def (weight_map TMP_147 t) in (let TMP_149 \def 
399 (plus TMP_146 TMP_148) in (let TMP_150 \def (\lambda (_: nat).O) in (let 
400 TMP_151 \def (weight_map TMP_150 u) in (let TMP_152 \def (\lambda (_: nat).O) 
401 in (let TMP_153 \def (weight_map TMP_152 t) in (let TMP_154 \def (le_plus_r 
402 TMP_151 TMP_153) in (let TMP_155 \def (le_n_S TMP_144 TMP_149 TMP_154) in 
403 (let TMP_156 \def (\lambda (_: nat).O) in (let TMP_157 \def (wadd TMP_156 O) 
404 in (let TMP_158 \def (weight_map TMP_157 t) in (let TMP_159 \def 
405 (weight_add_O t) in (eq_ind_r nat TMP_135 TMP_142 TMP_155 TMP_158 
406 TMP_159))))))))))))))))))))))) in (B_ind TMP_31 TMP_106 TMP_133 TMP_160 
407 b)))))) in (let TMP_174 \def (\lambda (_: F).(\lambda (u: T).(\lambda (t: 
408 T).(let TMP_162 \def (\lambda (_: nat).O) in (let TMP_163 \def (weight_map 
409 TMP_162 t) in (let TMP_164 \def (\lambda (_: nat).O) in (let TMP_165 \def 
410 (weight_map TMP_164 u) in (let TMP_166 \def (\lambda (_: nat).O) in (let 
411 TMP_167 \def (weight_map TMP_166 t) in (let TMP_168 \def (plus TMP_165 
412 TMP_167) in (let TMP_169 \def (\lambda (_: nat).O) in (let TMP_170 \def 
413 (weight_map TMP_169 u) in (let TMP_171 \def (\lambda (_: nat).O) in (let 
414 TMP_172 \def (weight_map TMP_171 t) in (let TMP_173 \def (le_plus_r TMP_170 
415 TMP_172) in (le_n_S TMP_163 TMP_168 TMP_173)))))))))))))))) in (K_ind TMP_6 
416 TMP_161 TMP_174 k)))).
417
418 theorem tle_r:
419  \forall (t: T).(tle t t)
420 \def
421  \lambda (t: T).(let TMP_3 \def (\lambda (t0: T).(let TMP_1 \def (tweight t0) 
422 in (let TMP_2 \def (tweight t0) in (le TMP_1 TMP_2)))) in (let TMP_5 \def 
423 (\lambda (_: nat).(let TMP_4 \def (S O) in (le_n TMP_4))) in (let TMP_7 \def 
424 (\lambda (_: nat).(let TMP_6 \def (S O) in (le_n TMP_6))) in (let TMP_12 \def 
425 (\lambda (_: K).(\lambda (t0: T).(\lambda (_: (le (tweight t0) (tweight 
426 t0))).(\lambda (t1: T).(\lambda (_: (le (tweight t1) (tweight t1))).(let 
427 TMP_8 \def (tweight t0) in (let TMP_9 \def (tweight t1) in (let TMP_10 \def 
428 (plus TMP_8 TMP_9) in (let TMP_11 \def (S TMP_10) in (le_n TMP_11)))))))))) 
429 in (T_ind TMP_3 TMP_5 TMP_7 TMP_12 t))))).
430