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

« back to all changes in this revision

Viewing changes to library/Coq.Sets.Constructive_sets.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.Constructive_sets</title>
 
4
</head>
 
5
 
 
6
<body>
 
7
 
 
8
<h1>Library Coq.Sets.Constructive_sets</h1>
 
9
 
 
10
<code>
 
11
<code class="keyword">Require</code> <code class="keyword">Export</code> <a href="Coq.Sets.Ensembles.html">Ensembles</a>.<br/>
 
12
 
 
13
<br/>
 
14
<code class="keyword">Section</code> Ensembles_facts.<br/>
 
15
<code class="keyword">Variable</code> U : Type.<br/>
 
16
 
 
17
<br/>
 
18
<code class="keyword">Lemma</code> <a name="Extension"></a>Extension : forall B C:<a href="Coq.Sets.Ensembles.html#Ensemble">Ensemble</a> U, B = C -&gt; <a href="Coq.Sets.Ensembles.html#Same_set">Same_set</a> U B C.<br/>
 
19
<code class="keyword">Proof</code>.<br/>
 
20
intros B C H'; rewrite H'; auto with sets.<br/>
 
21
<code class="keyword">Qed</code>.<br/>
 
22
 
 
23
<br/>
 
24
<code class="keyword">Lemma</code> <a name="Noone_in_empty"></a>Noone_in_empty : forall x:U, ~ <a href="Coq.Sets.Ensembles.html#In">In</a> U (<a href="Coq.Sets.Ensembles.html#Empty_set">Empty_set</a> U) x.<br/>
 
25
<code class="keyword">Proof</code>.<br/>
 
26
red in |- *; destruct 1.<br/>
 
27
<code class="keyword">Qed</code>.<br/>
 
28
<code class="keyword">Hint</code> Resolve <a href="Coq.Sets.Constructive_sets.html#Noone_in_empty">Noone_in_empty</a>.<br/>
 
29
 
 
30
<br/>
 
31
<code class="keyword">Lemma</code> <a name="Included_Empty"></a>Included_Empty : forall A:<a href="Coq.Sets.Ensembles.html#Ensemble">Ensemble</a> U, <a href="Coq.Sets.Ensembles.html#Included">Included</a> U (<a href="Coq.Sets.Ensembles.html#Empty_set">Empty_set</a> U) A.<br/>
 
32
<code class="keyword">Proof</code>.<br/>
 
33
intro; red in |- *.<br/>
 
34
intros x H; elim (<a href="Coq.Sets.Constructive_sets.html#Noone_in_empty">Noone_in_empty</a> x); auto with sets.<br/>
 
35
<code class="keyword">Qed</code>.<br/>
 
36
<code class="keyword">Hint</code> Resolve <a href="Coq.Sets.Constructive_sets.html#Included_Empty">Included_Empty</a>.<br/>
 
37
 
 
38
<br/>
 
39
<code class="keyword">Lemma</code> <a name="Add_intro1"></a>Add_intro1 :<br/>
 
40
&nbsp;forall (A:<a href="Coq.Sets.Ensembles.html#Ensemble">Ensemble</a> U) (x y:U), <a href="Coq.Sets.Ensembles.html#In">In</a> U A y -&gt; <a href="Coq.Sets.Ensembles.html#In">In</a> U (<code class="keyword">Add</code> U A x) y.<br/>
 
41
<code class="keyword">Proof</code>.<br/>
 
42
unfold <code class="keyword">Add</code> at 1 in |- *; auto with sets.<br/>
 
43
<code class="keyword">Qed</code>.<br/>
 
44
<code class="keyword">Hint</code> Resolve <a href="Coq.Sets.Constructive_sets.html#Add_intro1">Add_intro1</a>.<br/>
 
45
 
 
46
<br/>
 
47
<code class="keyword">Lemma</code> <a name="Add_intro2"></a>Add_intro2 : forall (A:<a href="Coq.Sets.Ensembles.html#Ensemble">Ensemble</a> U) (x:U), <a href="Coq.Sets.Ensembles.html#In">In</a> U (<code class="keyword">Add</code> U A x) x.<br/>
 
48
<code class="keyword">Proof</code>.<br/>
 
49
unfold <code class="keyword">Add</code> at 1 in |- *; auto with sets.<br/>
 
50
<code class="keyword">Qed</code>.<br/>
 
51
<code class="keyword">Hint</code> Resolve <a href="Coq.Sets.Constructive_sets.html#Add_intro2">Add_intro2</a>.<br/>
 
52
 
 
53
<br/>
 
54
<code class="keyword">Lemma</code> <a name="Inhabited_add"></a>Inhabited_add : forall (A:<a href="Coq.Sets.Ensembles.html#Ensemble">Ensemble</a> U) (x:U), <a href="Coq.Sets.Ensembles.html#Inhabited">Inhabited</a> U (<code class="keyword">Add</code> U A x).<br/>
 
55
<code class="keyword">Proof</code>.<br/>
 
56
intros A x.<br/>
 
57
apply <a href="Coq.Sets.Ensembles.html#Inhabited_intro">Inhabited_intro</a> with (x:= x); auto with sets.<br/>
 
58
<code class="keyword">Qed</code>.<br/>
 
59
<code class="keyword">Hint</code> Resolve <a href="Coq.Sets.Constructive_sets.html#Inhabited_add">Inhabited_add</a>.<br/>
 
60
 
 
61
<br/>
 
62
<code class="keyword">Lemma</code> <a name="Inhabited_not_empty"></a>Inhabited_not_empty :<br/>
 
63
&nbsp;forall X:<a href="Coq.Sets.Ensembles.html#Ensemble">Ensemble</a> U, <a href="Coq.Sets.Ensembles.html#Inhabited">Inhabited</a> U X -&gt; X &lt;&gt; <a href="Coq.Sets.Ensembles.html#Empty_set">Empty_set</a> U.<br/>
 
64
<code class="keyword">Proof</code>.<br/>
 
65
intros X H'; elim H'.<br/>
 
66
intros x H'0; red in |- *; intro H'1.<br/>
 
67
absurd (<a href="Coq.Sets.Ensembles.html#In">In</a> U X x); auto with sets.<br/>
 
68
rewrite H'1; auto with sets.<br/>
 
69
<code class="keyword">Qed</code>.<br/>
 
70
<code class="keyword">Hint</code> Resolve <a href="Coq.Sets.Constructive_sets.html#Inhabited_not_empty">Inhabited_not_empty</a>.<br/>
 
71
 
 
72
<br/>
 
73
<code class="keyword">Lemma</code> <a name="Add_not_Empty"></a>Add_not_Empty : forall (A:<a href="Coq.Sets.Ensembles.html#Ensemble">Ensemble</a> U) (x:U), <code class="keyword">Add</code> U A x &lt;&gt; <a href="Coq.Sets.Ensembles.html#Empty_set">Empty_set</a> U.<br/>
 
74
<code class="keyword">Proof</code>.<br/>
 
75
auto with sets.<br/>
 
76
<code class="keyword">Qed</code>.<br/>
 
77
<code class="keyword">Hint</code> Resolve <a href="Coq.Sets.Constructive_sets.html#Add_not_Empty">Add_not_Empty</a>.<br/>
 
78
 
 
79
<br/>
 
80
<code class="keyword">Lemma</code> <a name="not_Empty_Add"></a>not_Empty_Add : forall (A:<a href="Coq.Sets.Ensembles.html#Ensemble">Ensemble</a> U) (x:U), <a href="Coq.Sets.Ensembles.html#Empty_set">Empty_set</a> U &lt;&gt; <code class="keyword">Add</code> U A x.<br/>
 
81
<code class="keyword">Proof</code>.<br/>
 
82
intros; red in |- *; intro H; generalize (<a href="Coq.Sets.Constructive_sets.html#Add_not_Empty">Add_not_Empty</a> A x); auto with sets.<br/>
 
83
<code class="keyword">Qed</code>.<br/>
 
84
<code class="keyword">Hint</code> Resolve <a href="Coq.Sets.Constructive_sets.html#not_Empty_Add">not_Empty_Add</a>.<br/>
 
85
 
 
86
<br/>
 
87
<code class="keyword">Lemma</code> <a name="Singleton_inv"></a>Singleton_inv : forall x y:U, <a href="Coq.Sets.Ensembles.html#In">In</a> U (<a href="Coq.Sets.Ensembles.html#Singleton">Singleton</a> U x) y -&gt; x = y.<br/>
 
88
<code class="keyword">Proof</code>.<br/>
 
89
intros x y H'; elim H'; trivial with sets.<br/>
 
90
<code class="keyword">Qed</code>.<br/>
 
91
<code class="keyword">Hint</code> Resolve <a href="Coq.Sets.Constructive_sets.html#Singleton_inv">Singleton_inv</a>.<br/>
 
92
 
 
93
<br/>
 
94
<code class="keyword">Lemma</code> <a name="Singleton_intro"></a>Singleton_intro : forall x y:U, x = y -&gt; <a href="Coq.Sets.Ensembles.html#In">In</a> U (<a href="Coq.Sets.Ensembles.html#Singleton">Singleton</a> U x) y.<br/>
 
95
<code class="keyword">Proof</code>.<br/>
 
96
intros x y H'; rewrite H'; trivial with sets.<br/>
 
97
<code class="keyword">Qed</code>.<br/>
 
98
<code class="keyword">Hint</code> Resolve <a href="Coq.Sets.Constructive_sets.html#Singleton_intro">Singleton_intro</a>.<br/>
 
99
 
 
100
<br/>
 
101
<code class="keyword">Lemma</code> <a name="Union_inv"></a>Union_inv :<br/>
 
102
&nbsp;forall (B C:<a href="Coq.Sets.Ensembles.html#Ensemble">Ensemble</a> U) (x:U), <a href="Coq.Sets.Ensembles.html#In">In</a> U (<a href="Coq.Sets.Ensembles.html#Union">Union</a> U B C) x -&gt; <a href="Coq.Sets.Ensembles.html#In">In</a> U B x \/ <a href="Coq.Sets.Ensembles.html#In">In</a> U C x.<br/>
 
103
<code class="keyword">Proof</code>.<br/>
 
104
intros B C x H'; elim H'; auto with sets.<br/>
 
105
<code class="keyword">Qed</code>.<br/>
 
106
 
 
107
<br/>
 
108
<code class="keyword">Lemma</code> <a name="Add_inv"></a>Add_inv :<br/>
 
109
&nbsp;forall (A:<a href="Coq.Sets.Ensembles.html#Ensemble">Ensemble</a> U) (x y:U), <a href="Coq.Sets.Ensembles.html#In">In</a> U (<code class="keyword">Add</code> U A x) y -&gt; <a href="Coq.Sets.Ensembles.html#In">In</a> U A y \/ x = y.<br/>
 
110
<code class="keyword">Proof</code>.<br/>
 
111
intros A x y H'; elim H'; auto with sets.<br/>
 
112
<code class="keyword">Qed</code>.<br/>
 
113
 
 
114
<br/>
 
115
<code class="keyword">Lemma</code> <a name="Intersection_inv"></a>Intersection_inv :<br/>
 
116
&nbsp;forall (B C:<a href="Coq.Sets.Ensembles.html#Ensemble">Ensemble</a> U) (x:U),<br/>
 
117
&nbsp;&nbsp;&nbsp;<a href="Coq.Sets.Ensembles.html#In">In</a> U (<a href="Coq.Sets.Ensembles.html#Intersection">Intersection</a> U B C) x -&gt; <a href="Coq.Sets.Ensembles.html#In">In</a> U B x /\ <a href="Coq.Sets.Ensembles.html#In">In</a> U C x.<br/>
 
118
<code class="keyword">Proof</code>.<br/>
 
119
intros B C x H'; elim H'; auto with sets.<br/>
 
120
<code class="keyword">Qed</code>.<br/>
 
121
<code class="keyword">Hint</code> Resolve <a href="Coq.Sets.Constructive_sets.html#Intersection_inv">Intersection_inv</a>.<br/>
 
122
 
 
123
<br/>
 
124
<code class="keyword">Lemma</code> <a name="Couple_inv"></a>Couple_inv : forall x y z:U, <a href="Coq.Sets.Ensembles.html#In">In</a> U (<a href="Coq.Sets.Ensembles.html#Couple">Couple</a> U x y) z -&gt; z = x \/ z = y.<br/>
 
125
<code class="keyword">Proof</code>.<br/>
 
126
intros x y z H'; elim H'; auto with sets.<br/>
 
127
<code class="keyword">Qed</code>.<br/>
 
128
<code class="keyword">Hint</code> Resolve <a href="Coq.Sets.Constructive_sets.html#Couple_inv">Couple_inv</a>.<br/>
 
129
 
 
130
<br/>
 
131
<code class="keyword">Lemma</code> <a name="Setminus_intro"></a>Setminus_intro :<br/>
 
132
&nbsp;forall (A B:<a href="Coq.Sets.Ensembles.html#Ensemble">Ensemble</a> U) (x:U),<br/>
 
133
&nbsp;&nbsp;&nbsp;<a href="Coq.Sets.Ensembles.html#In">In</a> U A x -&gt; ~ <a href="Coq.Sets.Ensembles.html#In">In</a> U B x -&gt; <a href="Coq.Sets.Ensembles.html#In">In</a> U (<a href="Coq.Sets.Ensembles.html#Setminus">Setminus</a> U A B) x.<br/>
 
134
<code class="keyword">Proof</code>.<br/>
 
135
unfold Setminus at 1 in |- *; red in |- *; auto with sets.<br/>
 
136
<code class="keyword">Qed</code>.<br/>
 
137
<code class="keyword">Hint</code> Resolve <a href="Coq.Sets.Constructive_sets.html#Setminus_intro">Setminus_intro</a>.<br/>
 
138
&nbsp;<br/>
 
139
<code class="keyword">Lemma</code> <a name="Strict_Included_intro"></a>Strict_Included_intro :<br/>
 
140
&nbsp;forall X Y:<a href="Coq.Sets.Ensembles.html#Ensemble">Ensemble</a> U, <a href="Coq.Sets.Ensembles.html#Included">Included</a> U X Y /\ X &lt;&gt; Y -&gt; <a href="Coq.Sets.Ensembles.html#Strict_Included">Strict_Included</a> U X Y.<br/>
 
141
<code class="keyword">Proof</code>.<br/>
 
142
auto with sets.<br/>
 
143
<code class="keyword">Qed</code>.<br/>
 
144
<code class="keyword">Hint</code> Resolve <a href="Coq.Sets.Constructive_sets.html#Strict_Included_intro">Strict_Included_intro</a>.<br/>
 
145
 
 
146
<br/>
 
147
<code class="keyword">Lemma</code> <a name="Strict_Included_strict"></a>Strict_Included_strict : forall X:<a href="Coq.Sets.Ensembles.html#Ensemble">Ensemble</a> U, ~ <a href="Coq.Sets.Ensembles.html#Strict_Included">Strict_Included</a> U X X.<br/>
 
148
<code class="keyword">Proof</code>.<br/>
 
149
intro X; red in |- *; intro H'; elim H'.<br/>
 
150
intros H'0 H'1; elim H'1; auto with sets.<br/>
 
151
<code class="keyword">Qed</code>.<br/>
 
152
<code class="keyword">Hint</code> Resolve <a href="Coq.Sets.Constructive_sets.html#Strict_Included_strict">Strict_Included_strict</a>.<br/>
 
153
 
 
154
<br/>
 
155
<code class="keyword">End</code> Ensembles_facts.<br/>
 
156
 
 
157
<br/>
 
158
<code class="keyword">Hint</code> Resolve <a href="Coq.Sets.Constructive_sets.html#Singleton_inv">Singleton_inv</a> <a href="Coq.Sets.Constructive_sets.html#Singleton_intro">Singleton_intro</a> <a href="Coq.Sets.Constructive_sets.html#Add_intro1">Add_intro1</a> <a href="Coq.Sets.Constructive_sets.html#Add_intro2">Add_intro2</a><br/>
 
159
&nbsp;&nbsp;<a href="Coq.Sets.Constructive_sets.html#Intersection_inv">Intersection_inv</a> <a href="Coq.Sets.Constructive_sets.html#Couple_inv">Couple_inv</a> <a href="Coq.Sets.Constructive_sets.html#Setminus_intro">Setminus_intro</a> <a href="Coq.Sets.Constructive_sets.html#Strict_Included_intro">Strict_Included_intro</a><br/>
 
160
&nbsp;&nbsp;<a href="Coq.Sets.Constructive_sets.html#Strict_Included_strict">Strict_Included_strict</a> <a href="Coq.Sets.Constructive_sets.html#Noone_in_empty">Noone_in_empty</a> <a href="Coq.Sets.Constructive_sets.html#Inhabited_not_empty">Inhabited_not_empty</a> <a href="Coq.Sets.Constructive_sets.html#Add_not_Empty">Add_not_Empty</a><br/>
 
161
&nbsp;&nbsp;<a href="Coq.Sets.Constructive_sets.html#not_Empty_Add">not_Empty_Add</a> <a href="Coq.Sets.Constructive_sets.html#Inhabited_add">Inhabited_add</a> <a href="Coq.Sets.Constructive_sets.html#Included_Empty">Included_Empty</a>: sets v62.</code>
 
162
<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>
 
163
</body>
 
164
</html>
 
 
b'\\ No newline at end of file'