]> matita.cs.unibo.it Git - helm.git/blob - helm/software/matita/contribs/procedural/Coq/Lists/List.mma
Preparing for 0.5.9 release.
[helm.git] / helm / software / matita / contribs / procedural / Coq / Lists / List.mma
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 "Coq.ma".
18
19 (*#***********************************************************************)
20
21 (*  v      *   The Coq Proof Assistant  /  The Coq Development Team     *)
22
23 (* <O___,, * CNRS-Ecole Polytechnique-INRIA Futurs-Universite Paris Sud *)
24
25 (*   \VV/  **************************************************************)
26
27 (*    //   *      This file is distributed under the terms of the       *)
28
29 (*         *       GNU Lesser General Public License Version 2.1        *)
30
31 (*#***********************************************************************)
32
33 (*i $Id: List.v,v 1.9.2.1 2004/07/16 19:31:05 herbelin Exp $ i*)
34
35 include "Arith/Le.ma".
36
37 (* UNEXPORTED
38 Section Lists
39 *)
40
41 (* UNEXPORTED
42 cic:/Coq/Lists/List/Lists/A.var
43 *)
44
45 (* UNEXPORTED
46 Set Implicit Arguments.
47 *)
48
49 inline procedural "cic:/Coq/Lists/List/list.ind".
50
51 (* NOTATION
52 Infix "::" := cons (at level 60, right associativity) : list_scope.
53 *)
54
55 (* UNEXPORTED
56 Open Scope list_scope.
57 *)
58
59 (*#************************)
60
61 (*#* Discrimination       *)
62
63 (*#************************)
64
65 inline procedural "cic:/Coq/Lists/List/nil_cons.con" as lemma.
66
67 (*#************************)
68
69 (*#* Concatenation        *)
70
71 (*#************************)
72
73 inline procedural "cic:/Coq/Lists/List/app.con" as definition.
74
75 (* NOTATION
76 Infix "++" := app (right associativity, at level 60) : list_scope.
77 *)
78
79 inline procedural "cic:/Coq/Lists/List/app_nil_end.con" as lemma.
80
81 (* UNEXPORTED
82 Hint Resolve app_nil_end.
83 *)
84
85 (* UNEXPORTED
86 Ltac now_show c := change c in |- *.
87 *)
88
89 inline procedural "cic:/Coq/Lists/List/app_ass.con" as lemma.
90
91 (* UNEXPORTED
92 Hint Resolve app_ass.
93 *)
94
95 inline procedural "cic:/Coq/Lists/List/ass_app.con" as lemma.
96
97 (* UNEXPORTED
98 Hint Resolve ass_app.
99 *)
100
101 inline procedural "cic:/Coq/Lists/List/app_comm_cons.con" as lemma.
102
103 inline procedural "cic:/Coq/Lists/List/app_eq_nil.con" as lemma.
104
105 inline procedural "cic:/Coq/Lists/List/app_cons_not_nil.con" as lemma.
106
107 inline procedural "cic:/Coq/Lists/List/app_eq_unit.con" as lemma.
108
109 inline procedural "cic:/Coq/Lists/List/app_inj_tail.con" as lemma.
110
111 (*#************************)
112
113 (*#* Head and tail        *)
114
115 (*#************************)
116
117 inline procedural "cic:/Coq/Lists/List/head.con" as definition.
118
119 inline procedural "cic:/Coq/Lists/List/tail.con" as definition.
120
121 (*#***************************************)
122
123 (*#* Length of lists                     *)
124
125 (*#***************************************)
126
127 inline procedural "cic:/Coq/Lists/List/length.con" as definition.
128
129 (*#*****************************)
130
131 (*#* Length order of lists     *)
132
133 (*#*****************************)
134
135 (* UNEXPORTED
136 Section length_order
137 *)
138
139 inline procedural "cic:/Coq/Lists/List/lel.con" as definition.
140
141 (* UNEXPORTED
142 cic:/Coq/Lists/List/Lists/length_order/a.var
143 *)
144
145 (* UNEXPORTED
146 cic:/Coq/Lists/List/Lists/length_order/b.var
147 *)
148
149 (* UNEXPORTED
150 cic:/Coq/Lists/List/Lists/length_order/l.var
151 *)
152
153 (* UNEXPORTED
154 cic:/Coq/Lists/List/Lists/length_order/m.var
155 *)
156
157 (* UNEXPORTED
158 cic:/Coq/Lists/List/Lists/length_order/n.var
159 *)
160
161 inline procedural "cic:/Coq/Lists/List/lel_refl.con" as lemma.
162
163 inline procedural "cic:/Coq/Lists/List/lel_trans.con" as lemma.
164
165 inline procedural "cic:/Coq/Lists/List/lel_cons_cons.con" as lemma.
166
167 inline procedural "cic:/Coq/Lists/List/lel_cons.con" as lemma.
168
169 inline procedural "cic:/Coq/Lists/List/lel_tail.con" as lemma.
170
171 inline procedural "cic:/Coq/Lists/List/lel_nil.con" as lemma.
172
173 (* UNEXPORTED
174 End length_order
175 *)
176
177 (* UNEXPORTED
178 Hint Resolve lel_refl lel_cons_cons lel_cons lel_nil lel_nil nil_cons.
179 *)
180
181 (*#********************************)
182
183 (*#* The [In] predicate           *)
184
185 (*#********************************)
186
187 inline procedural "cic:/Coq/Lists/List/In.con" as definition.
188
189 inline procedural "cic:/Coq/Lists/List/in_eq.con" as lemma.
190
191 (* UNEXPORTED
192 Hint Resolve in_eq.
193 *)
194
195 inline procedural "cic:/Coq/Lists/List/in_cons.con" as lemma.
196
197 (* UNEXPORTED
198 Hint Resolve in_cons.
199 *)
200
201 inline procedural "cic:/Coq/Lists/List/in_nil.con" as lemma.
202
203 inline procedural "cic:/Coq/Lists/List/in_inv.con" as lemma.
204
205 inline procedural "cic:/Coq/Lists/List/In_dec.con" as lemma.
206
207 inline procedural "cic:/Coq/Lists/List/in_app_or.con" as lemma.
208
209 (* UNEXPORTED
210 Hint Immediate in_app_or.
211 *)
212
213 inline procedural "cic:/Coq/Lists/List/in_or_app.con" as lemma.
214
215 (* UNEXPORTED
216 Hint Resolve in_or_app.
217 *)
218
219 (*#**************************)
220
221 (*#* Set inclusion on list  *)
222
223 (*#**************************)
224
225 inline procedural "cic:/Coq/Lists/List/incl.con" as definition.
226
227 (* UNEXPORTED
228 Hint Unfold incl.
229 *)
230
231 inline procedural "cic:/Coq/Lists/List/incl_refl.con" as lemma.
232
233 (* UNEXPORTED
234 Hint Resolve incl_refl.
235 *)
236
237 inline procedural "cic:/Coq/Lists/List/incl_tl.con" as lemma.
238
239 (* UNEXPORTED
240 Hint Immediate incl_tl.
241 *)
242
243 inline procedural "cic:/Coq/Lists/List/incl_tran.con" as lemma.
244
245 inline procedural "cic:/Coq/Lists/List/incl_appl.con" as lemma.
246
247 (* UNEXPORTED
248 Hint Immediate incl_appl.
249 *)
250
251 inline procedural "cic:/Coq/Lists/List/incl_appr.con" as lemma.
252
253 (* UNEXPORTED
254 Hint Immediate incl_appr.
255 *)
256
257 inline procedural "cic:/Coq/Lists/List/incl_cons.con" as lemma.
258
259 (* UNEXPORTED
260 Hint Resolve incl_cons.
261 *)
262
263 inline procedural "cic:/Coq/Lists/List/incl_app.con" as lemma.
264
265 (* UNEXPORTED
266 Hint Resolve incl_app.
267 *)
268
269 (*#*************************)
270
271 (*#* Nth element of a list *)
272
273 (*#*************************)
274
275 inline procedural "cic:/Coq/Lists/List/nth.con" as definition.
276
277 inline procedural "cic:/Coq/Lists/List/nth_ok.con" as definition.
278
279 inline procedural "cic:/Coq/Lists/List/nth_in_or_default.con" as lemma.
280
281 inline procedural "cic:/Coq/Lists/List/nth_S_cons.con" as lemma.
282
283 inline procedural "cic:/Coq/Lists/List/nth_error.con" as definition.
284
285 inline procedural "cic:/Coq/Lists/List/nth_default.con" as definition.
286
287 inline procedural "cic:/Coq/Lists/List/nth_In.con" as lemma.
288
289 (*#*******************************)
290
291 (*#* Decidable equality on lists *)
292
293 (*#*******************************)
294
295 inline procedural "cic:/Coq/Lists/List/list_eq_dec.con" as lemma.
296
297 (*#************************)
298
299 (*#*  Reverse             *)
300
301 (*#************************)
302
303 inline procedural "cic:/Coq/Lists/List/rev.con" as definition.
304
305 inline procedural "cic:/Coq/Lists/List/distr_rev.con" as lemma.
306
307 inline procedural "cic:/Coq/Lists/List/rev_unit.con" as remark.
308
309 inline procedural "cic:/Coq/Lists/List/rev_involutive.con" as lemma.
310
311 (*#********************************************)
312
313 (*#*  Reverse Induction Principle on Lists    *)
314
315 (*#********************************************)
316
317 (* UNEXPORTED
318 Section Reverse_Induction
319 *)
320
321 (* UNEXPORTED
322 Unset Implicit Arguments.
323 *)
324
325 inline procedural "cic:/Coq/Lists/List/rev_list_ind.con" as remark.
326
327 (* UNEXPORTED
328 Set Implicit Arguments.
329 *)
330
331 inline procedural "cic:/Coq/Lists/List/rev_ind.con" as lemma.
332
333 (* UNEXPORTED
334 End Reverse_Induction
335 *)
336
337 (* UNEXPORTED
338 End Lists
339 *)
340
341 (* UNEXPORTED
342 Implicit Arguments nil [A].
343 *)
344
345 (* UNEXPORTED
346 Hint Resolve nil_cons app_nil_end ass_app app_ass: datatypes v62.
347 *)
348
349 (* UNEXPORTED
350 Hint Resolve app_comm_cons app_cons_not_nil: datatypes v62.
351 *)
352
353 (* UNEXPORTED
354 Hint Immediate app_eq_nil: datatypes v62.
355 *)
356
357 (* UNEXPORTED
358 Hint Resolve app_eq_unit app_inj_tail: datatypes v62.
359 *)
360
361 (* UNEXPORTED
362 Hint Resolve lel_refl lel_cons_cons lel_cons lel_nil lel_nil nil_cons:
363   datatypes v62.
364 *)
365
366 (* UNEXPORTED
367 Hint Resolve in_eq in_cons in_inv in_nil in_app_or in_or_app: datatypes v62.
368 *)
369
370 (* UNEXPORTED
371 Hint Resolve incl_refl incl_tl incl_tran incl_appl incl_appr incl_cons
372   incl_app: datatypes v62.
373 *)
374
375 (* UNEXPORTED
376 Section Functions_on_lists
377 *)
378
379 (*#***************************************************************)
380
381 (*#* Some generic functions on lists and basic functions of them *)
382
383 (*#***************************************************************)
384
385 (* UNEXPORTED
386 Section Map
387 *)
388
389 (* UNEXPORTED
390 cic:/Coq/Lists/List/Functions_on_lists/Map/A.var
391 *)
392
393 (* UNEXPORTED
394 cic:/Coq/Lists/List/Functions_on_lists/Map/B.var
395 *)
396
397 (* UNEXPORTED
398 cic:/Coq/Lists/List/Functions_on_lists/Map/f.var
399 *)
400
401 inline procedural "cic:/Coq/Lists/List/map.con" as definition.
402
403 (* UNEXPORTED
404 End Map
405 *)
406
407 inline procedural "cic:/Coq/Lists/List/in_map.con" as lemma.
408
409 inline procedural "cic:/Coq/Lists/List/flat_map.con" as definition.
410
411 inline procedural "cic:/Coq/Lists/List/list_prod.con" as definition.
412
413 inline procedural "cic:/Coq/Lists/List/in_prod_aux.con" as lemma.
414
415 inline procedural "cic:/Coq/Lists/List/in_prod.con" as lemma.
416
417 (*#* [(list_power x y)] is [y^x], or the set of sequences of elts of [y]
418     indexed by elts of [x], sorted in lexicographic order. *)
419
420 inline procedural "cic:/Coq/Lists/List/list_power.con" as definition.
421
422 (*#***********************************)
423
424 (*#* Left-to-right iterator on lists *)
425
426 (*#***********************************)
427
428 (* UNEXPORTED
429 Section Fold_Left_Recursor
430 *)
431
432 (* UNEXPORTED
433 cic:/Coq/Lists/List/Functions_on_lists/Fold_Left_Recursor/A.var
434 *)
435
436 (* UNEXPORTED
437 cic:/Coq/Lists/List/Functions_on_lists/Fold_Left_Recursor/B.var
438 *)
439
440 (* UNEXPORTED
441 cic:/Coq/Lists/List/Functions_on_lists/Fold_Left_Recursor/f.var
442 *)
443
444 inline procedural "cic:/Coq/Lists/List/fold_left.con" as definition.
445
446 (* UNEXPORTED
447 End Fold_Left_Recursor
448 *)
449
450 (*#***********************************)
451
452 (*#* Right-to-left iterator on lists *)
453
454 (*#***********************************)
455
456 (* UNEXPORTED
457 Section Fold_Right_Recursor
458 *)
459
460 (* UNEXPORTED
461 cic:/Coq/Lists/List/Functions_on_lists/Fold_Right_Recursor/A.var
462 *)
463
464 (* UNEXPORTED
465 cic:/Coq/Lists/List/Functions_on_lists/Fold_Right_Recursor/B.var
466 *)
467
468 (* UNEXPORTED
469 cic:/Coq/Lists/List/Functions_on_lists/Fold_Right_Recursor/f.var
470 *)
471
472 (* UNEXPORTED
473 cic:/Coq/Lists/List/Functions_on_lists/Fold_Right_Recursor/a0.var
474 *)
475
476 inline procedural "cic:/Coq/Lists/List/fold_right.con" as definition.
477
478 (* UNEXPORTED
479 End Fold_Right_Recursor
480 *)
481
482 inline procedural "cic:/Coq/Lists/List/fold_symmetric.con" as theorem.
483
484 (* UNEXPORTED
485 End Functions_on_lists
486 *)
487
488 (*#* Exporting list notations *)
489
490 (* NOTATION
491 Infix "::" := cons (at level 60, right associativity) : list_scope.
492 *)
493
494 (* NOTATION
495 Infix "++" := app (right associativity, at level 60) : list_scope.
496 *)
497
498 (* UNEXPORTED
499 Open Scope list_scope.
500 *)
501
502 (*#* Declare Scope list_scope with key list *)
503
504 (* UNEXPORTED
505 Delimit Scope list_scope with list.
506 *)
507
508 (* UNEXPORTED
509 Bind Scope list_scope with list.
510 *)
511