~ubuntu-branches/ubuntu/hardy/coq-doc/hardy

« back to all changes in this revision

Viewing changes to library/Coq.Sets.Multiset.html

  • Committer: Bazaar Package Importer
  • Author(s): Samuel Mimram
  • Date: 2004-09-18 13:28:22 UTC
  • mfrom: (1.1.1 upstream)
  • Revision ID: james.westby@ubuntu.com-20040918132822-ees5mb8qmzd6a0fw
Tags: 8.0pl1.0-1
* Added the Coq faq, moved the tutorial to the root directory and added
  doc-base files for both, closes: #272204.
* Set dh_compat to level 4.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<html xmlns="http://www.w3.org/1999/xhtml">
 
2
<head>
 
3
<meta http-equiv="Content-Type" content="text/html; charset="><link rel="stylesheet" href="style.css" type="text/css"><title>Coq.Sets.Multiset</title>
 
4
</head>
 
5
 
 
6
<body>
 
7
 
 
8
<h1>Library Coq.Sets.Multiset</h1>
 
9
 
 
10
<code>
 
11
<code class="keyword">Require</code> <code class="keyword">Import</code> Permut.<br/>
 
12
 
 
13
<br/>
 
14
Set <code class="keyword">Implicit</code> Arguments.<br/>
 
15
 
 
16
<br/>
 
17
<code class="keyword">Section</code> multiset_defs.<br/>
 
18
 
 
19
<br/>
 
20
<code class="keyword">Variable</code> A : Set.<br/>
 
21
<code class="keyword">Variable</code> eqA : A -&gt; A -&gt; Prop.<br/>
 
22
<code class="keyword">Hypothesis</code> Aeq_dec : forall x y:A, {eqA x y} + {~ eqA x y}.<br/>
 
23
 
 
24
<br/>
 
25
<code class="keyword">Inductive</code> <a name="multiset"></a>multiset : Set :=<br/>
 
26
&nbsp;&nbsp;&nbsp;&nbsp;<a name="Bag"></a>Bag : (A -&gt; <a href="Coq.Init.Datatypes.html#nat">nat</a>) -&gt; multiset.<br/>
 
27
 
 
28
<br/>
 
29
<code class="keyword">Definition</code> <a name="EmptyBag"></a>EmptyBag := <a href="Coq.Sets.Multiset.html#Bag">Bag</a> (fun a:A =&gt; 0).<br/>
 
30
<code class="keyword">Definition</code> <a name="SingletonBag"></a>SingletonBag (a:A) :=<br/>
 
31
&nbsp;&nbsp;<a href="Coq.Sets.Multiset.html#Bag">Bag</a> (fun a':A =&gt; match Aeq_dec a a' with<br/>
 
32
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| <a href="Coq.Init.Specif.html#left">left</a> _ =&gt; 1<br/>
 
33
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| <a href="Coq.Init.Specif.html#right">right</a> _ =&gt; 0<br/>
 
34
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end).<br/>
 
35
 
 
36
<br/>
 
37
<code class="keyword">Definition</code> <a name="multiplicity"></a>multiplicity (m:<a href="Coq.Sets.Multiset.html#multiset">multiset</a>) (a:A) : <a href="Coq.Init.Datatypes.html#nat">nat</a> := let (f) := m in f a.<br/>
 
38
 
 
39
<br/>
 
40
</code>
 
41
 
 
42
<table width="100%"><tr class="doc"><td>
 
43
multiset equality 
 
44
</td></tr></table>
 
45
<code>
 
46
<code class="keyword">Definition</code> <a name="meq"></a>meq (m1 m2:<a href="Coq.Sets.Multiset.html#multiset">multiset</a>) :=<br/>
 
47
&nbsp;&nbsp;forall a:A, <a href="Coq.Sets.Multiset.html#multiplicity">multiplicity</a> m1 a = <a href="Coq.Sets.Multiset.html#multiplicity">multiplicity</a> m2 a.<br/>
 
48
 
 
49
<br/>
 
50
<code class="keyword">Hint</code> Unfold meq multiplicity.<br/>
 
51
 
 
52
<br/>
 
53
<code class="keyword">Lemma</code> <a name="meq_refl"></a>meq_refl : forall x:<a href="Coq.Sets.Multiset.html#multiset">multiset</a>, <a href="Coq.Sets.Multiset.html#meq">meq</a> x x.<br/>
 
54
<code class="keyword">Proof</code>.<br/>
 
55
destruct x; auto.<br/>
 
56
<code class="keyword">Qed</code>.<br/>
 
57
<code class="keyword">Hint</code> Resolve <a href="Coq.Sets.Multiset.html#meq_refl">meq_refl</a>.<br/>
 
58
 
 
59
<br/>
 
60
<code class="keyword">Lemma</code> <a name="meq_trans"></a>meq_trans : forall x y z:<a href="Coq.Sets.Multiset.html#multiset">multiset</a>, <a href="Coq.Sets.Multiset.html#meq">meq</a> x y -&gt; <a href="Coq.Sets.Multiset.html#meq">meq</a> y z -&gt; <a href="Coq.Sets.Multiset.html#meq">meq</a> x z.<br/>
 
61
<code class="keyword">Proof</code>.<br/>
 
62
unfold meq in |- *.<br/>
 
63
destruct x; destruct y; destruct z.<br/>
 
64
intros; rewrite H; auto.<br/>
 
65
<code class="keyword">Qed</code>.<br/>
 
66
 
 
67
<br/>
 
68
<code class="keyword">Lemma</code> <a name="meq_sym"></a>meq_sym : forall x y:<a href="Coq.Sets.Multiset.html#multiset">multiset</a>, <a href="Coq.Sets.Multiset.html#meq">meq</a> x y -&gt; <a href="Coq.Sets.Multiset.html#meq">meq</a> y x.<br/>
 
69
<code class="keyword">Proof</code>.<br/>
 
70
unfold meq in |- *.<br/>
 
71
destruct x; destruct y; auto.<br/>
 
72
<code class="keyword">Qed</code>.<br/>
 
73
<code class="keyword">Hint</code> <code class="keyword">Immediate</code> <a href="Coq.Sets.Multiset.html#meq_sym">meq_sym</a>.<br/>
 
74
 
 
75
<br/>
 
76
</code>
 
77
 
 
78
<table width="100%"><tr class="doc"><td>
 
79
multiset union 
 
80
</td></tr></table>
 
81
<code>
 
82
<code class="keyword">Definition</code> <a name="munion"></a>munion (m1 m2:<a href="Coq.Sets.Multiset.html#multiset">multiset</a>) :=<br/>
 
83
&nbsp;&nbsp;<a href="Coq.Sets.Multiset.html#Bag">Bag</a> (fun a:A =&gt; <a href="Coq.Sets.Multiset.html#multiplicity">multiplicity</a> m1 a + <a href="Coq.Sets.Multiset.html#multiplicity">multiplicity</a> m2 a).<br/>
 
84
 
 
85
<br/>
 
86
<code class="keyword">Lemma</code> <a name="munion_empty_left"></a>munion_empty_left : forall x:<a href="Coq.Sets.Multiset.html#multiset">multiset</a>, <a href="Coq.Sets.Multiset.html#meq">meq</a> x (<a href="Coq.Sets.Multiset.html#munion">munion</a> <a href="Coq.Sets.Multiset.html#EmptyBag">EmptyBag</a> x).<br/>
 
87
<code class="keyword">Proof</code>.<br/>
 
88
unfold meq in |- *; unfold munion in |- *; simpl in |- *; auto.<br/>
 
89
<code class="keyword">Qed</code>.<br/>
 
90
<code class="keyword">Hint</code> Resolve <a href="Coq.Sets.Multiset.html#munion_empty_left">munion_empty_left</a>.<br/>
 
91
 
 
92
<br/>
 
93
<code class="keyword">Lemma</code> <a name="munion_empty_right"></a>munion_empty_right : forall x:<a href="Coq.Sets.Multiset.html#multiset">multiset</a>, <a href="Coq.Sets.Multiset.html#meq">meq</a> x (<a href="Coq.Sets.Multiset.html#munion">munion</a> x <a href="Coq.Sets.Multiset.html#EmptyBag">EmptyBag</a>).<br/>
 
94
<code class="keyword">Proof</code>.<br/>
 
95
unfold meq in |- *; unfold munion in |- *; simpl in |- *; auto.<br/>
 
96
<code class="keyword">Qed</code>.<br/>
 
97
 
 
98
<br/>
 
99
<code class="keyword">Require</code> <code class="keyword">Import</code> Plus. <code class="keyword">Lemma</code> <a name="munion_comm"></a>munion_comm : forall x y:<a href="Coq.Sets.Multiset.html#multiset">multiset</a>, <a href="Coq.Sets.Multiset.html#meq">meq</a> (<a href="Coq.Sets.Multiset.html#munion">munion</a> x y) (<a href="Coq.Sets.Multiset.html#munion">munion</a> y x).<br/>
 
100
<code class="keyword">Proof</code>.<br/>
 
101
unfold meq in |- *; unfold multiplicity in |- *; unfold munion in |- *.<br/>
 
102
destruct x; destruct y; auto with arith.<br/>
 
103
<code class="keyword">Qed</code>.<br/>
 
104
<code class="keyword">Hint</code> Resolve <a href="Coq.Sets.Multiset.html#munion_comm">munion_comm</a>.<br/>
 
105
 
 
106
<br/>
 
107
<code class="keyword">Lemma</code> <a name="munion_ass"></a>munion_ass :<br/>
 
108
&nbsp;forall x y z:<a href="Coq.Sets.Multiset.html#multiset">multiset</a>, <a href="Coq.Sets.Multiset.html#meq">meq</a> (<a href="Coq.Sets.Multiset.html#munion">munion</a> (<a href="Coq.Sets.Multiset.html#munion">munion</a> x y) z) (<a href="Coq.Sets.Multiset.html#munion">munion</a> x (<a href="Coq.Sets.Multiset.html#munion">munion</a> y z)).<br/>
 
109
<code class="keyword">Proof</code>.<br/>
 
110
unfold meq in |- *; unfold munion in |- *; unfold multiplicity in |- *.<br/>
 
111
destruct x; destruct y; destruct z; auto with arith.<br/>
 
112
<code class="keyword">Qed</code>.<br/>
 
113
<code class="keyword">Hint</code> Resolve <a href="Coq.Sets.Multiset.html#munion_ass">munion_ass</a>.<br/>
 
114
 
 
115
<br/>
 
116
<code class="keyword">Lemma</code> <a name="meq_left"></a>meq_left :<br/>
 
117
&nbsp;forall x y z:<a href="Coq.Sets.Multiset.html#multiset">multiset</a>, <a href="Coq.Sets.Multiset.html#meq">meq</a> x y -&gt; <a href="Coq.Sets.Multiset.html#meq">meq</a> (<a href="Coq.Sets.Multiset.html#munion">munion</a> x z) (<a href="Coq.Sets.Multiset.html#munion">munion</a> y z).<br/>
 
118
<code class="keyword">Proof</code>.<br/>
 
119
unfold meq in |- *; unfold munion in |- *; unfold multiplicity in |- *.<br/>
 
120
destruct x; destruct y; destruct z.<br/>
 
121
intros; elim H; auto with arith.<br/>
 
122
<code class="keyword">Qed</code>.<br/>
 
123
<code class="keyword">Hint</code> Resolve <a href="Coq.Sets.Multiset.html#meq_left">meq_left</a>.<br/>
 
124
 
 
125
<br/>
 
126
<code class="keyword">Lemma</code> <a name="meq_right"></a>meq_right :<br/>
 
127
&nbsp;forall x y z:<a href="Coq.Sets.Multiset.html#multiset">multiset</a>, <a href="Coq.Sets.Multiset.html#meq">meq</a> x y -&gt; <a href="Coq.Sets.Multiset.html#meq">meq</a> (<a href="Coq.Sets.Multiset.html#munion">munion</a> z x) (<a href="Coq.Sets.Multiset.html#munion">munion</a> z y).<br/>
 
128
<code class="keyword">Proof</code>.<br/>
 
129
unfold meq in |- *; unfold munion in |- *; unfold multiplicity in |- *.<br/>
 
130
destruct x; destruct y; destruct z.<br/>
 
131
intros; elim H; auto.<br/>
 
132
<code class="keyword">Qed</code>.<br/>
 
133
<code class="keyword">Hint</code> Resolve <a href="Coq.Sets.Multiset.html#meq_right">meq_right</a>.<br/>
 
134
 
 
135
<br/>
 
136
</code>
 
137
 
 
138
<table width="100%"><tr class="doc"><td>
 
139
Here we should make multiset an abstract datatype, by hiding <code>Bag</code>,
 
140
    <code>munion</code>, <code>multiplicity</code>; all further properties are proved abstractly 
 
141
</td></tr></table>
 
142
<code>
 
143
 
 
144
<br/>
 
145
<code class="keyword">Lemma</code> <a name="munion_rotate"></a>munion_rotate :<br/>
 
146
&nbsp;forall x y z:<a href="Coq.Sets.Multiset.html#multiset">multiset</a>, <a href="Coq.Sets.Multiset.html#meq">meq</a> (<a href="Coq.Sets.Multiset.html#munion">munion</a> x (<a href="Coq.Sets.Multiset.html#munion">munion</a> y z)) (<a href="Coq.Sets.Multiset.html#munion">munion</a> z (<a href="Coq.Sets.Multiset.html#munion">munion</a> x y)).<br/>
 
147
<code class="keyword">Proof</code>.<br/>
 
148
intros; apply (<a href="Coq.Sets.Permut.html#op_rotate">op_rotate</a> <a href="Coq.Sets.Multiset.html#multiset">multiset</a> <a href="Coq.Sets.Multiset.html#munion">munion</a> <a href="Coq.Sets.Multiset.html#meq">meq</a>); auto.<br/>
 
149
exact <a href="Coq.Sets.Multiset.html#meq_trans">meq_trans</a>.<br/>
 
150
<code class="keyword">Qed</code>.<br/>
 
151
 
 
152
<br/>
 
153
<code class="keyword">Lemma</code> <a name="meq_congr"></a>meq_congr :<br/>
 
154
&nbsp;forall x y z t:<a href="Coq.Sets.Multiset.html#multiset">multiset</a>, <a href="Coq.Sets.Multiset.html#meq">meq</a> x y -&gt; <a href="Coq.Sets.Multiset.html#meq">meq</a> z t -&gt; <a href="Coq.Sets.Multiset.html#meq">meq</a> (<a href="Coq.Sets.Multiset.html#munion">munion</a> x z) (<a href="Coq.Sets.Multiset.html#munion">munion</a> y t).<br/>
 
155
<code class="keyword">Proof</code>.<br/>
 
156
intros; apply (<a href="Coq.Sets.Permut.html#cong_congr">cong_congr</a> <a href="Coq.Sets.Multiset.html#multiset">multiset</a> <a href="Coq.Sets.Multiset.html#munion">munion</a> <a href="Coq.Sets.Multiset.html#meq">meq</a>); auto.<br/>
 
157
exact <a href="Coq.Sets.Multiset.html#meq_trans">meq_trans</a>.<br/>
 
158
<code class="keyword">Qed</code>.<br/>
 
159
 
 
160
<br/>
 
161
<code class="keyword">Lemma</code> <a name="munion_perm_left"></a>munion_perm_left :<br/>
 
162
&nbsp;forall x y z:<a href="Coq.Sets.Multiset.html#multiset">multiset</a>, <a href="Coq.Sets.Multiset.html#meq">meq</a> (<a href="Coq.Sets.Multiset.html#munion">munion</a> x (<a href="Coq.Sets.Multiset.html#munion">munion</a> y z)) (<a href="Coq.Sets.Multiset.html#munion">munion</a> y (<a href="Coq.Sets.Multiset.html#munion">munion</a> x z)).<br/>
 
163
<code class="keyword">Proof</code>.<br/>
 
164
intros; apply (<a href="Coq.Sets.Permut.html#perm_left">perm_left</a> <a href="Coq.Sets.Multiset.html#multiset">multiset</a> <a href="Coq.Sets.Multiset.html#munion">munion</a> <a href="Coq.Sets.Multiset.html#meq">meq</a>); auto.<br/>
 
165
exact <a href="Coq.Sets.Multiset.html#meq_trans">meq_trans</a>.<br/>
 
166
<code class="keyword">Qed</code>.<br/>
 
167
 
 
168
<br/>
 
169
<code class="keyword">Lemma</code> <a name="multiset_twist1"></a>multiset_twist1 :<br/>
 
170
&nbsp;forall x y z t:<a href="Coq.Sets.Multiset.html#multiset">multiset</a>,<br/>
 
171
&nbsp;&nbsp;&nbsp;<a href="Coq.Sets.Multiset.html#meq">meq</a> (<a href="Coq.Sets.Multiset.html#munion">munion</a> x (<a href="Coq.Sets.Multiset.html#munion">munion</a> (<a href="Coq.Sets.Multiset.html#munion">munion</a> y z) t)) (<a href="Coq.Sets.Multiset.html#munion">munion</a> (<a href="Coq.Sets.Multiset.html#munion">munion</a> y (<a href="Coq.Sets.Multiset.html#munion">munion</a> x t)) z).<br/>
 
172
<code class="keyword">Proof</code>.<br/>
 
173
intros; apply (<a href="Coq.Sets.Permut.html#twist">twist</a> <a href="Coq.Sets.Multiset.html#multiset">multiset</a> <a href="Coq.Sets.Multiset.html#munion">munion</a> <a href="Coq.Sets.Multiset.html#meq">meq</a>); auto.<br/>
 
174
exact <a href="Coq.Sets.Multiset.html#meq_trans">meq_trans</a>.<br/>
 
175
<code class="keyword">Qed</code>.<br/>
 
176
 
 
177
<br/>
 
178
<code class="keyword">Lemma</code> <a name="multiset_twist2"></a>multiset_twist2 :<br/>
 
179
&nbsp;forall x y z t:<a href="Coq.Sets.Multiset.html#multiset">multiset</a>,<br/>
 
180
&nbsp;&nbsp;&nbsp;<a href="Coq.Sets.Multiset.html#meq">meq</a> (<a href="Coq.Sets.Multiset.html#munion">munion</a> x (<a href="Coq.Sets.Multiset.html#munion">munion</a> (<a href="Coq.Sets.Multiset.html#munion">munion</a> y z) t)) (<a href="Coq.Sets.Multiset.html#munion">munion</a> (<a href="Coq.Sets.Multiset.html#munion">munion</a> y (<a href="Coq.Sets.Multiset.html#munion">munion</a> x z)) t).<br/>
 
181
<code class="keyword">Proof</code>.<br/>
 
182
intros; apply <a href="Coq.Sets.Multiset.html#meq_trans">meq_trans</a> with (<a href="Coq.Sets.Multiset.html#munion">munion</a> (<a href="Coq.Sets.Multiset.html#munion">munion</a> x (<a href="Coq.Sets.Multiset.html#munion">munion</a> y z)) t).<br/>
 
183
apply <a href="Coq.Sets.Multiset.html#meq_sym">meq_sym</a>; apply <a href="Coq.Sets.Multiset.html#munion_ass">munion_ass</a>.<br/>
 
184
apply <a href="Coq.Sets.Multiset.html#meq_left">meq_left</a>; apply <a href="Coq.Sets.Multiset.html#munion_perm_left">munion_perm_left</a>.<br/>
 
185
<code class="keyword">Qed</code>.<br/>
 
186
 
 
187
<br/>
 
188
</code>
 
189
 
 
190
<table width="100%"><tr class="doc"><td>
 
191
specific for treesort 
 
192
</td></tr></table>
 
193
<code>
 
194
 
 
195
<br/>
 
196
<code class="keyword">Lemma</code> <a name="treesort_twist1"></a>treesort_twist1 :<br/>
 
197
&nbsp;forall x y z t u:<a href="Coq.Sets.Multiset.html#multiset">multiset</a>,<br/>
 
198
&nbsp;&nbsp;&nbsp;<a href="Coq.Sets.Multiset.html#meq">meq</a> u (<a href="Coq.Sets.Multiset.html#munion">munion</a> y z) -&gt;<br/>
 
199
&nbsp;&nbsp;&nbsp;<a href="Coq.Sets.Multiset.html#meq">meq</a> (<a href="Coq.Sets.Multiset.html#munion">munion</a> x (<a href="Coq.Sets.Multiset.html#munion">munion</a> u t)) (<a href="Coq.Sets.Multiset.html#munion">munion</a> (<a href="Coq.Sets.Multiset.html#munion">munion</a> y (<a href="Coq.Sets.Multiset.html#munion">munion</a> x t)) z).<br/>
 
200
<code class="keyword">Proof</code>.<br/>
 
201
intros; apply <a href="Coq.Sets.Multiset.html#meq_trans">meq_trans</a> with (<a href="Coq.Sets.Multiset.html#munion">munion</a> x (<a href="Coq.Sets.Multiset.html#munion">munion</a> (<a href="Coq.Sets.Multiset.html#munion">munion</a> y z) t)).<br/>
 
202
apply <a href="Coq.Sets.Multiset.html#meq_right">meq_right</a>; apply <a href="Coq.Sets.Multiset.html#meq_left">meq_left</a>; trivial.<br/>
 
203
apply <a href="Coq.Sets.Multiset.html#multiset_twist1">multiset_twist1</a>.<br/>
 
204
<code class="keyword">Qed</code>.<br/>
 
205
 
 
206
<br/>
 
207
<code class="keyword">Lemma</code> <a name="treesort_twist2"></a>treesort_twist2 :<br/>
 
208
&nbsp;forall x y z t u:<a href="Coq.Sets.Multiset.html#multiset">multiset</a>,<br/>
 
209
&nbsp;&nbsp;&nbsp;<a href="Coq.Sets.Multiset.html#meq">meq</a> u (<a href="Coq.Sets.Multiset.html#munion">munion</a> y z) -&gt;<br/>
 
210
&nbsp;&nbsp;&nbsp;<a href="Coq.Sets.Multiset.html#meq">meq</a> (<a href="Coq.Sets.Multiset.html#munion">munion</a> x (<a href="Coq.Sets.Multiset.html#munion">munion</a> u t)) (<a href="Coq.Sets.Multiset.html#munion">munion</a> (<a href="Coq.Sets.Multiset.html#munion">munion</a> y (<a href="Coq.Sets.Multiset.html#munion">munion</a> x z)) t).<br/>
 
211
<code class="keyword">Proof</code>.<br/>
 
212
intros; apply <a href="Coq.Sets.Multiset.html#meq_trans">meq_trans</a> with (<a href="Coq.Sets.Multiset.html#munion">munion</a> x (<a href="Coq.Sets.Multiset.html#munion">munion</a> (<a href="Coq.Sets.Multiset.html#munion">munion</a> y z) t)).<br/>
 
213
apply <a href="Coq.Sets.Multiset.html#meq_right">meq_right</a>; apply <a href="Coq.Sets.Multiset.html#meq_left">meq_left</a>; trivial.<br/>
 
214
apply <a href="Coq.Sets.Multiset.html#multiset_twist2">multiset_twist2</a>.<br/>
 
215
<code class="keyword">Qed</code>.<br/>
 
216
 
 
217
<br/>
 
218
<code class="keyword">End</code> multiset_defs.<br/>
 
219
 
 
220
<br/>
 
221
<code class="keyword">Unset</code> <code class="keyword">Implicit</code> Arguments.<br/>
 
222
 
 
223
<br/>
 
224
<code class="keyword">Hint</code> Unfold meq multiplicity: v62 datatypes.<br/>
 
225
<code class="keyword">Hint</code> Resolve <a href="Coq.Sets.Multiset.html#munion_empty_right">munion_empty_right</a> <a href="Coq.Sets.Multiset.html#munion_comm">munion_comm</a> <a href="Coq.Sets.Multiset.html#munion_ass">munion_ass</a> <a href="Coq.Sets.Multiset.html#meq_left">meq_left</a> <a href="Coq.Sets.Multiset.html#meq_right">meq_right</a><br/>
 
226
&nbsp;&nbsp;<a href="Coq.Sets.Multiset.html#munion_empty_left">munion_empty_left</a>: v62 datatypes.<br/>
 
227
<code class="keyword">Hint</code> <code class="keyword">Immediate</code> <a href="Coq.Sets.Multiset.html#meq_sym">meq_sym</a>: v62 datatypes.</code>
 
228
<hr/><a href="index.html">Index</a><hr/><font size="-1">This page has been generated by <a href="http://www.lri.fr/~filliatr/coqdoc/">coqdoc</a></font>
 
229
</body>
 
230
</html>
 
 
b'\\ No newline at end of file'