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 *********************)
19 (*#***********************************************************************)
21 (* v * The Coq Proof Assistant / The Coq Development Team *)
23 (* <O___,, * CNRS-Ecole Polytechnique-INRIA Futurs-Universite Paris Sud *)
25 (* \VV/ **************************************************************)
27 (* // * This file is distributed under the terms of the *)
29 (* * GNU Lesser General Public License Version 2.1 *)
31 (*#***********************************************************************)
33 (*i $Id: ListSet.v,v 1.13.2.1 2004/07/16 19:31:05 herbelin Exp $ i*)
35 (*#* A Library for finite sets, implemented as lists
36 A Library with similar interface will soon be available under
37 the name TreeSet in the theories/Trees directory *)
39 (*#* PolyList is loaded, but not exported.
40 This allow to "hide" the definitions, functions and theorems of PolyList
41 and to see only the ones of ListSet *)
43 include "Lists/List.ma".
46 Set Implicit Arguments.
50 Section first_definitions
54 cic:/Coq/Lists/ListSet/first_definitions/A.var
58 cic:/Coq/Lists/ListSet/first_definitions/Aeq_dec.var
61 inline procedural "cic:/Coq/Lists/ListSet/set.con" as definition.
63 inline procedural "cic:/Coq/Lists/ListSet/empty_set.con" as definition.
65 inline procedural "cic:/Coq/Lists/ListSet/set_add.con" as definition.
67 inline procedural "cic:/Coq/Lists/ListSet/set_mem.con" as definition.
69 (*#* If [a] belongs to [x], removes [a] from [x]. If not, does nothing *)
71 inline procedural "cic:/Coq/Lists/ListSet/set_remove.con" as definition.
73 inline procedural "cic:/Coq/Lists/ListSet/set_inter.con" as definition.
75 inline procedural "cic:/Coq/Lists/ListSet/set_union.con" as definition.
77 (*#* returns the set of all els of [x] that does not belong to [y] *)
79 inline procedural "cic:/Coq/Lists/ListSet/set_diff.con" as definition.
81 inline procedural "cic:/Coq/Lists/ListSet/set_In.con" as definition.
83 inline procedural "cic:/Coq/Lists/ListSet/set_In_dec.con" as lemma.
85 inline procedural "cic:/Coq/Lists/ListSet/set_mem_ind.con" as lemma.
87 inline procedural "cic:/Coq/Lists/ListSet/set_mem_ind2.con" as lemma.
89 inline procedural "cic:/Coq/Lists/ListSet/set_mem_correct1.con" as lemma.
91 inline procedural "cic:/Coq/Lists/ListSet/set_mem_correct2.con" as lemma.
93 inline procedural "cic:/Coq/Lists/ListSet/set_mem_complete1.con" as lemma.
95 inline procedural "cic:/Coq/Lists/ListSet/set_mem_complete2.con" as lemma.
97 inline procedural "cic:/Coq/Lists/ListSet/set_add_intro1.con" as lemma.
99 inline procedural "cic:/Coq/Lists/ListSet/set_add_intro2.con" as lemma.
102 Hint Resolve set_add_intro1 set_add_intro2.
105 inline procedural "cic:/Coq/Lists/ListSet/set_add_intro.con" as lemma.
107 inline procedural "cic:/Coq/Lists/ListSet/set_add_elim.con" as lemma.
109 inline procedural "cic:/Coq/Lists/ListSet/set_add_elim2.con" as lemma.
112 Hint Resolve set_add_intro set_add_elim set_add_elim2.
115 inline procedural "cic:/Coq/Lists/ListSet/set_add_not_empty.con" as lemma.
117 inline procedural "cic:/Coq/Lists/ListSet/set_union_intro1.con" as lemma.
119 inline procedural "cic:/Coq/Lists/ListSet/set_union_intro2.con" as lemma.
122 Hint Resolve set_union_intro2 set_union_intro1.
125 inline procedural "cic:/Coq/Lists/ListSet/set_union_intro.con" as lemma.
127 inline procedural "cic:/Coq/Lists/ListSet/set_union_elim.con" as lemma.
129 inline procedural "cic:/Coq/Lists/ListSet/set_union_emptyL.con" as lemma.
131 inline procedural "cic:/Coq/Lists/ListSet/set_union_emptyR.con" as lemma.
133 inline procedural "cic:/Coq/Lists/ListSet/set_inter_intro.con" as lemma.
135 inline procedural "cic:/Coq/Lists/ListSet/set_inter_elim1.con" as lemma.
137 inline procedural "cic:/Coq/Lists/ListSet/set_inter_elim2.con" as lemma.
140 Hint Resolve set_inter_elim1 set_inter_elim2.
143 inline procedural "cic:/Coq/Lists/ListSet/set_inter_elim.con" as lemma.
145 inline procedural "cic:/Coq/Lists/ListSet/set_diff_intro.con" as lemma.
147 inline procedural "cic:/Coq/Lists/ListSet/set_diff_elim1.con" as lemma.
149 inline procedural "cic:/Coq/Lists/ListSet/set_diff_elim2.con" as lemma.
151 inline procedural "cic:/Coq/Lists/ListSet/set_diff_trivial.con" as lemma.
154 Hint Resolve set_diff_intro set_diff_trivial.
158 End first_definitions
162 Section other_definitions
166 cic:/Coq/Lists/ListSet/other_definitions/A.var
170 cic:/Coq/Lists/ListSet/other_definitions/B.var
173 inline procedural "cic:/Coq/Lists/ListSet/set_prod.con" as definition.
175 (*#* [B^A], set of applications from [A] to [B] *)
177 inline procedural "cic:/Coq/Lists/ListSet/set_power.con" as definition.
179 inline procedural "cic:/Coq/Lists/ListSet/set_map.con" as definition.
181 inline procedural "cic:/Coq/Lists/ListSet/set_fold_left.con" as definition.
183 inline procedural "cic:/Coq/Lists/ListSet/set_fold_right.con" as definition.
186 End other_definitions
190 Unset Implicit Arguments.