]> matita.cs.unibo.it Git - helm.git/blob - helm/software/matita/contribs/procedural/Coq/IntMap/Map.mma
Preparing for 0.5.9 release.
[helm.git] / helm / software / matita / contribs / procedural / Coq / IntMap / Map.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: Map.v,v 1.7.2.1 2004/07/16 19:31:04 herbelin Exp $  i*)
34
35 (*#* Definition of finite sets as trees indexed by adresses *)
36
37 include "Bool/Bool.ma".
38
39 include "Bool/Sumbool.ma".
40
41 include "ZArith/ZArith.ma".
42
43 include "IntMap/Addr.ma".
44
45 include "IntMap/Adist.ma".
46
47 include "IntMap/Addec.ma".
48
49 (* UNEXPORTED
50 Section MapDefs
51 *)
52
53 (*#* We define maps from ad to A. *)
54
55 (* UNEXPORTED
56 cic:/Coq/IntMap/Map/MapDefs/A.var
57 *)
58
59 inline procedural "cic:/Coq/IntMap/Map/Map.ind".
60
61 inline procedural "cic:/Coq/IntMap/Map/option.ind".
62
63 inline procedural "cic:/Coq/IntMap/Map/option_sum.con" as lemma.
64
65 (*#* The semantics of maps is given by the function [MapGet].
66       The semantics of a map [m] is a partial, finite function from
67       [ad] to [A]: *)
68
69 inline procedural "cic:/Coq/IntMap/Map/MapGet.con" as definition.
70
71 inline procedural "cic:/Coq/IntMap/Map/newMap.con" as definition.
72
73 inline procedural "cic:/Coq/IntMap/Map/MapSingleton.con" as definition.
74
75 inline procedural "cic:/Coq/IntMap/Map/eqm.con" as definition.
76
77 inline procedural "cic:/Coq/IntMap/Map/newMap_semantics.con" as lemma.
78
79 inline procedural "cic:/Coq/IntMap/Map/MapSingleton_semantics.con" as lemma.
80
81 inline procedural "cic:/Coq/IntMap/Map/M1_semantics_1.con" as lemma.
82
83 inline procedural "cic:/Coq/IntMap/Map/M1_semantics_2.con" as lemma.
84
85 inline procedural "cic:/Coq/IntMap/Map/Map2_semantics_1.con" as lemma.
86
87 inline procedural "cic:/Coq/IntMap/Map/Map2_semantics_1_eq.con" as lemma.
88
89 inline procedural "cic:/Coq/IntMap/Map/Map2_semantics_2.con" as lemma.
90
91 inline procedural "cic:/Coq/IntMap/Map/Map2_semantics_2_eq.con" as lemma.
92
93 inline procedural "cic:/Coq/IntMap/Map/MapGet_M2_bit_0_0.con" as lemma.
94
95 inline procedural "cic:/Coq/IntMap/Map/MapGet_M2_bit_0_1.con" as lemma.
96
97 inline procedural "cic:/Coq/IntMap/Map/MapGet_M2_bit_0_if.con" as lemma.
98
99 inline procedural "cic:/Coq/IntMap/Map/MapGet_M2_bit_0.con" as lemma.
100
101 inline procedural "cic:/Coq/IntMap/Map/Map2_semantics_3.con" as lemma.
102
103 inline procedural "cic:/Coq/IntMap/Map/Map2_semantics_3_eq.con" as lemma.
104
105 inline procedural "cic:/Coq/IntMap/Map/MapPut1.con" as definition.
106
107 inline procedural "cic:/Coq/IntMap/Map/MapGet_if_commute.con" as lemma.
108
109 (*i
110   Lemma MapGet_M2_bit_0_1' : (m,m',m'',m''':Map)
111       (a:ad) (MapGet (if (ad_bit_0 a) then (M2 m m') else (M2 m'' m''')) a)=
112              (MapGet (if (ad_bit_0 a) then m' else m'') (ad_div_2 a)).
113   Proof.
114     Intros. Rewrite (MapGet_if_commute (ad_bit_0 a)). Rewrite (MapGet_if_commute (ad_bit_0 a)).
115     Cut (ad_bit_0 a)=false\/(ad_bit_0 a)=true. Intros. Elim H. Intros. Rewrite H0.
116     Apply MapGet_M2_bit_0_0. Assumption.
117     Intros. Rewrite H0. Apply MapGet_M2_bit_0_1. Assumption.
118     Case (ad_bit_0 a); Auto.
119   Qed.
120   i*)
121
122 inline procedural "cic:/Coq/IntMap/Map/MapGet_if_same.con" as lemma.
123
124 inline procedural "cic:/Coq/IntMap/Map/MapGet_M2_bit_0_2.con" as lemma.
125
126 inline procedural "cic:/Coq/IntMap/Map/MapPut1_semantics_1.con" as lemma.
127
128 inline procedural "cic:/Coq/IntMap/Map/MapPut1_semantics_2.con" as lemma.
129
130 inline procedural "cic:/Coq/IntMap/Map/MapGet_M2_both_NONE.con" as lemma.
131
132 inline procedural "cic:/Coq/IntMap/Map/MapPut1_semantics_3.con" as lemma.
133
134 inline procedural "cic:/Coq/IntMap/Map/MapPut1_semantics.con" as lemma.
135
136 inline procedural "cic:/Coq/IntMap/Map/MapPut1_semantics'.con" as lemma.
137
138 inline procedural "cic:/Coq/IntMap/Map/MapPut.con" as definition.
139
140 inline procedural "cic:/Coq/IntMap/Map/MapPut_semantics_1.con" as lemma.
141
142 inline procedural "cic:/Coq/IntMap/Map/MapPut_semantics_2_1.con" as lemma.
143
144 inline procedural "cic:/Coq/IntMap/Map/MapPut_semantics_2_2.con" as lemma.
145
146 inline procedural "cic:/Coq/IntMap/Map/MapPut_semantics_2.con" as lemma.
147
148 inline procedural "cic:/Coq/IntMap/Map/MapPut_semantics_3_1.con" as lemma.
149
150 inline procedural "cic:/Coq/IntMap/Map/MapPut_semantics.con" as lemma.
151
152 inline procedural "cic:/Coq/IntMap/Map/MapPut_behind.con" as definition.
153
154 inline procedural "cic:/Coq/IntMap/Map/MapPut_behind_semantics_3_1.con" as lemma.
155
156 inline procedural "cic:/Coq/IntMap/Map/MapPut_behind_as_before_1.con" as lemma.
157
158 inline procedural "cic:/Coq/IntMap/Map/MapPut_behind_as_before.con" as lemma.
159
160 inline procedural "cic:/Coq/IntMap/Map/MapPut_behind_new.con" as lemma.
161
162 inline procedural "cic:/Coq/IntMap/Map/MapPut_behind_semantics.con" as lemma.
163
164 inline procedural "cic:/Coq/IntMap/Map/makeM2.con" as definition.
165
166 inline procedural "cic:/Coq/IntMap/Map/makeM2_M2.con" as lemma.
167
168 inline procedural "cic:/Coq/IntMap/Map/MapRemove.con" as definition.
169
170 inline procedural "cic:/Coq/IntMap/Map/MapRemove_semantics.con" as lemma.
171
172 inline procedural "cic:/Coq/IntMap/Map/MapCard.con" as definition.
173
174 inline procedural "cic:/Coq/IntMap/Map/MapMerge.con" as definition.
175
176 inline procedural "cic:/Coq/IntMap/Map/MapMerge_semantics.con" as lemma.
177
178 (*#* [MapInter], [MapRngRestrTo], [MapRngRestrBy], [MapInverse] 
179       not implemented: need a decidable equality on [A]. *)
180
181 inline procedural "cic:/Coq/IntMap/Map/MapDelta.con" as definition.
182
183 inline procedural "cic:/Coq/IntMap/Map/MapDelta_semantics_comm.con" as lemma.
184
185 inline procedural "cic:/Coq/IntMap/Map/MapDelta_semantics_1_1.con" as lemma.
186
187 inline procedural "cic:/Coq/IntMap/Map/MapDelta_semantics_1.con" as lemma.
188
189 inline procedural "cic:/Coq/IntMap/Map/MapDelta_semantics_2_1.con" as lemma.
190
191 inline procedural "cic:/Coq/IntMap/Map/MapDelta_semantics_2_2.con" as lemma.
192
193 inline procedural "cic:/Coq/IntMap/Map/MapDelta_semantics_2.con" as lemma.
194
195 inline procedural "cic:/Coq/IntMap/Map/MapDelta_semantics_3_1.con" as lemma.
196
197 inline procedural "cic:/Coq/IntMap/Map/MapDelta_semantics_3.con" as lemma.
198
199 inline procedural "cic:/Coq/IntMap/Map/MapDelta_semantics.con" as lemma.
200
201 inline procedural "cic:/Coq/IntMap/Map/MapEmptyp.con" as definition.
202
203 inline procedural "cic:/Coq/IntMap/Map/MapEmptyp_correct.con" as lemma.
204
205 inline procedural "cic:/Coq/IntMap/Map/MapEmptyp_complete.con" as lemma.
206
207 (*#* [MapSplit] not implemented: not the preferred way of recursing over Maps
208       (use [MapSweep], [MapCollect], or [MapFold] in Mapiter.v. *)
209
210 (* UNEXPORTED
211 End MapDefs
212 *)
213