@@ -119,7 +119,7 @@ end unbundled
119
119
120
120
/-! ### Bundled upper/lower sets -/
121
121
122
- section bundled
122
+ section has_le
123
123
variables [has_le α]
124
124
125
125
/-- The type of upper sets of an order. -/
@@ -134,12 +134,14 @@ structure lower_set (α : Type*) [has_le α] :=
134
134
135
135
namespace upper_set
136
136
137
- instance upper_set.set_like : set_like (upper_set α) α :=
137
+ instance : set_like (upper_set α) α :=
138
138
{ coe := upper_set.carrier,
139
139
coe_injective' := λ s t h, by { cases s, cases t, congr' } }
140
140
141
141
@[ext] lemma ext {s t : upper_set α} : (s : set α) = t → s = t := set_like.ext'
142
142
143
+ @[simp] lemma carrier_eq_coe (s : upper_set α) : s.carrier = s := rfl
144
+
143
145
protected lemma upper (s : upper_set α) : is_upper_set (s : set α) := s.upper'
144
146
145
147
end upper_set
@@ -152,22 +154,25 @@ instance : set_like (lower_set α) α :=
152
154
153
155
@[ext] lemma ext {s t : lower_set α} : (s : set α) = t → s = t := set_like.ext'
154
156
157
+ @[simp] lemma carrier_eq_coe (s : lower_set α) : s.carrier = s := rfl
158
+
155
159
protected lemma lower (s : lower_set α) : is_lower_set (s : set α) := s.lower'
156
160
157
161
end lower_set
158
162
159
163
/-! #### Order -/
160
164
161
165
namespace upper_set
166
+ variables {S : set (upper_set α)} {s t : upper_set α} {a : α}
162
167
163
168
instance : has_sup (upper_set α) := ⟨λ s t, ⟨s ∪ t, s.upper.union t.upper⟩⟩
164
169
instance : has_inf (upper_set α) := ⟨λ s t, ⟨s ∩ t, s.upper.inter t.upper⟩⟩
165
170
instance : has_top (upper_set α) := ⟨⟨univ, is_upper_set_univ⟩⟩
166
171
instance : has_bot (upper_set α) := ⟨⟨∅, is_upper_set_empty⟩⟩
167
172
instance : has_Sup (upper_set α) :=
168
- ⟨λ S, ⟨Sup (coe '' S), is_upper_set_sUnion $ ball_image_iff. 2 $ λ s _, s.upper⟩⟩
173
+ ⟨λ S, ⟨⋃ s ∈ S, ↑s, is_upper_set_Union₂ $ λ s _, s.upper⟩⟩
169
174
instance : has_Inf (upper_set α) :=
170
- ⟨λ S, ⟨Inf (coe '' S), is_upper_set_sInter $ ball_image_iff. 2 $ λ s _, s.upper⟩⟩
175
+ ⟨λ S, ⟨⋂ s ∈ S, ↑s, is_upper_set_Inter₂ $ λ s _, s.upper⟩⟩
171
176
172
177
instance : complete_distrib_lattice (upper_set α) :=
173
178
set_like.coe_injective.complete_distrib_lattice _
@@ -179,29 +184,26 @@ instance : inhabited (upper_set α) := ⟨⊥⟩
179
184
@[simp] lemma coe_bot : ((⊥ : upper_set α) : set α) = ∅ := rfl
180
185
@[simp] lemma coe_sup (s t : upper_set α) : (↑(s ⊔ t) : set α) = s ∪ t := rfl
181
186
@[simp] lemma coe_inf (s t : upper_set α) : (↑(s ⊓ t) : set α) = s ∩ t := rfl
182
- @[simp] lemma coe_Sup (S : set (upper_set α)) : (↑(Sup S) : set α) = Sup (coe '' S) := rfl
183
- @[simp] lemma coe_Inf (S : set (upper_set α)) : (↑(Inf S) : set α) = Inf (coe '' S) := rfl
184
- @[simp] lemma coe_supr (f : ι → upper_set α) : (↑(⨆ i, f i) : set α) = ⨆ i, f i :=
185
- congr_arg Sup (range_comp _ _).symm
186
- @[simp] lemma coe_infi (f : ι → upper_set α) : (↑(⨅ i, f i) : set α) = ⨅ i, f i :=
187
- congr_arg Inf (range_comp _ _).symm
188
- @[simp] lemma coe_supr₂ (f : Π i, κ i → upper_set α) : (↑(⨆ i j, f i j) : set α) = ⨆ i j, f i j :=
187
+ @[simp] lemma coe_Sup (S : set (upper_set α)) : (↑(Sup S) : set α) = ⋃ s ∈ S, ↑s := rfl
188
+ @[simp] lemma coe_Inf (S : set (upper_set α)) : (↑(Inf S) : set α) = ⋂ s ∈ S, ↑s := rfl
189
+ @[simp] lemma coe_supr (f : ι → upper_set α) : (↑(⨆ i, f i) : set α) = ⋃ i, f i := by simp [supr]
190
+ @[simp] lemma coe_infi (f : ι → upper_set α) : (↑(⨅ i, f i) : set α) = ⋂ i, f i := by simp [infi]
191
+ @[simp] lemma coe_supr₂ (f : Π i, κ i → upper_set α) : (↑(⨆ i j, f i j) : set α) = ⋃ i j, f i j :=
189
192
by simp_rw coe_supr
190
- @[simp] lemma coe_infi₂ (f : Π i, κ i → upper_set α) : (↑(⨅ i j, f i j) : set α) = ⨅ i j, f i j :=
193
+ @[simp] lemma coe_infi₂ (f : Π i, κ i → upper_set α) : (↑(⨅ i j, f i j) : set α) = ⋂ i j, f i j :=
191
194
by simp_rw coe_infi
192
195
193
196
end upper_set
194
197
195
198
namespace lower_set
199
+ variables {S : set (lower_set α)} {s t : lower_set α} {a : α}
196
200
197
201
instance : has_sup (lower_set α) := ⟨λ s t, ⟨s ∪ t, λ a b h, or.imp (s.lower h) (t.lower h)⟩⟩
198
202
instance : has_inf (lower_set α) := ⟨λ s t, ⟨s ∩ t, λ a b h, and.imp (s.lower h) (t.lower h)⟩⟩
199
203
instance : has_top (lower_set α) := ⟨⟨univ, λ a b h, id⟩⟩
200
204
instance : has_bot (lower_set α) := ⟨⟨∅, λ a b h, id⟩⟩
201
- instance : has_Sup (lower_set α) :=
202
- ⟨λ S, ⟨Sup (coe '' S), is_lower_set_sUnion $ ball_image_iff.2 $ λ s _, s.lower⟩⟩
203
- instance : has_Inf (lower_set α) :=
204
- ⟨λ S, ⟨Inf (coe '' S), is_lower_set_sInter $ ball_image_iff.2 $ λ s _, s.lower⟩⟩
205
+ instance : has_Sup (lower_set α) := ⟨λ S, ⟨⋃ s ∈ S, ↑s, is_lower_set_Union₂ $ λ s _, s.lower⟩⟩
206
+ instance : has_Inf (lower_set α) := ⟨λ S, ⟨⋂ s ∈ S, ↑s, is_lower_set_Inter₂ $ λ s _, s.lower⟩⟩
205
207
206
208
instance : complete_distrib_lattice (lower_set α) :=
207
209
set_like.coe_injective.complete_distrib_lattice _
@@ -213,15 +215,15 @@ instance : inhabited (lower_set α) := ⟨⊥⟩
213
215
@[simp] lemma coe_bot : ((⊥ : lower_set α) : set α) = ∅ := rfl
214
216
@[simp] lemma coe_sup (s t : lower_set α) : (↑(s ⊔ t) : set α) = s ∪ t := rfl
215
217
@[simp] lemma coe_inf (s t : lower_set α) : (↑(s ⊓ t) : set α) = s ∩ t := rfl
216
- @[simp] lemma coe_Sup (S : set (lower_set α)) : (↑(Sup S) : set α) = Sup (coe '' S) := rfl
217
- @[simp] lemma coe_Inf (S : set (lower_set α)) : (↑(Inf S) : set α) = Inf (coe '' S) := rfl
218
- @[simp] lemma coe_supr (f : ι → lower_set α) : (↑(⨆ i, f i) : set α) = ⨆ i, f i :=
219
- congr_arg Sup (range_comp _ _).symm
220
- @[simp] lemma coe_infi (f : ι → lower_set α) : (↑(⨅ i, f i) : set α) = ⨅ i, f i :=
221
- congr_arg Inf (range_comp _ _).symm
222
- @[simp] lemma coe_supr₂ (f : Π i, κ i → lower_set α) : (↑(⨆ i j, f i j) : set α) = ⨆ i j, f i j :=
218
+ @[simp] lemma coe_Sup (S : set (lower_set α)) : (↑(Sup S) : set α) = ⋃ s ∈ S, ↑s := rfl
219
+ @[simp] lemma coe_Inf (S : set (lower_set α)) : (↑(Inf S) : set α) = ⋂ s ∈ S, ↑s := rfl
220
+ @[simp] lemma coe_supr (f : ι → lower_set α) : (↑(⨆ i, f i) : set α) = ⋃ i, f i :=
221
+ by simp_rw [supr, coe_Sup, mem_range, Union_exists, Union_Union_eq']
222
+ @[simp] lemma coe_infi (f : ι → lower_set α) : (↑(⨅ i, f i) : set α) = ⋂ i, f i :=
223
+ by simp_rw [infi, coe_Inf, mem_range, Inter_exists, Inter_Inter_eq']
224
+ @[simp] lemma coe_supr₂ (f : Π i, κ i → lower_set α) : (↑(⨆ i j, f i j) : set α) = ⋃ i j, f i j :=
223
225
by simp_rw coe_supr
224
- @[simp] lemma coe_infi₂ (f : Π i, κ i → lower_set α) : (↑(⨅ i j, f i j) : set α) = ⨅ i j, f i j :=
226
+ @[simp] lemma coe_infi₂ (f : Π i, κ i → lower_set α) : (↑(⨅ i j, f i j) : set α) = ⋂ i j, f i j :=
225
227
by simp_rw coe_infi
226
228
227
229
end lower_set
@@ -235,31 +237,31 @@ def upper_set.compl (s : upper_set α) : lower_set α := ⟨sᶜ, s.upper.compl
235
237
def lower_set.compl (s : lower_set α) : upper_set α := ⟨sᶜ, s.lower.compl⟩
236
238
237
239
namespace upper_set
240
+ variables {s : upper_set α} {a : α}
238
241
239
242
@[simp] lemma coe_compl (s : upper_set α) : (s.compl : set α) = sᶜ := rfl
243
+ @[simp] lemma mem_compl_iff : a ∈ s.compl ↔ a ∉ s := iff.rfl
240
244
@[simp] lemma compl_compl (s : upper_set α) : s.compl.compl = s := upper_set.ext $ compl_compl _
241
245
242
- protected lemma compl_sup (s t : upper_set α) : (s ⊔ t).compl = s.compl ⊓ t.compl :=
246
+ @[simp] protected lemma compl_sup (s t : upper_set α) : (s ⊔ t).compl = s.compl ⊓ t.compl :=
243
247
lower_set.ext compl_sup
244
- protected lemma compl_inf (s t : upper_set α) : (s ⊓ t).compl = s.compl ⊔ t.compl :=
248
+ @[simp] protected lemma compl_inf (s t : upper_set α) : (s ⊓ t).compl = s.compl ⊔ t.compl :=
245
249
lower_set.ext compl_inf
246
- protected lemma compl_top : (⊤ : upper_set α).compl = ⊥ := lower_set.ext compl_univ
247
- protected lemma compl_bot : (⊥ : upper_set α).compl = ⊤ := lower_set.ext compl_empty
248
- protected lemma compl_Sup (S : set (upper_set α)) : (Sup S).compl = Inf (upper_set.compl '' S) :=
249
- lower_set.ext $ compl_Sup'.trans $
250
- by { congr' 1 , ext, simp only [mem_image, exists_exists_and_eq_and, coe_compl] }
250
+ @[simp] protected lemma compl_top : (⊤ : upper_set α).compl = ⊥ := lower_set.ext compl_univ
251
+ @[simp] protected lemma compl_bot : (⊥ : upper_set α).compl = ⊤ := lower_set.ext compl_empty
252
+ @[simp] protected lemma compl_Sup (S : set (upper_set α)) :
253
+ (Sup S).compl = ⨅ s ∈ S, upper_set.compl s :=
254
+ lower_set.ext $ by simp only [coe_compl, coe_Sup, compl_Union₂, lower_set.coe_infi₂]
251
255
252
- protected lemma compl_Inf (S : set (upper_set α)) : (Inf S).compl = Sup (upper_set.compl '' S) :=
253
- lower_set.ext $ compl_Inf'.trans $
254
- by { congr' 1 , ext, simp only [mem_image, exists_exists_and_eq_and, coe_compl] }
256
+ @[simp] protected lemma compl_Inf (S : set (upper_set α)) :
257
+ (Inf S).compl = ⨆ s ∈ S, upper_set.compl s :=
258
+ lower_set.ext $ by simp only [coe_compl, coe_Inf, compl_Inter₂, lower_set.coe_supr₂]
255
259
256
- protected lemma compl_supr (f : ι → upper_set α) : (⨆ i, f i).compl = ⨅ i, (f i).compl :=
257
- lower_set.ext $
258
- by simp only [coe_compl, coe_supr, supr_eq_Union, compl_Union, lower_set.coe_infi, infi_eq_Inter]
260
+ @[simp] protected lemma compl_supr (f : ι → upper_set α) : (⨆ i, f i).compl = ⨅ i, (f i).compl :=
261
+ lower_set.ext $ by simp only [coe_compl, coe_supr, compl_Union, lower_set.coe_infi]
259
262
260
- protected lemma compl_infi (f : ι → upper_set α) : (⨅ i, f i).compl = ⨆ i, (f i).compl :=
261
- lower_set.ext $
262
- by simp only [coe_compl, coe_infi, infi_eq_Inter, compl_Inter, lower_set.coe_supr, supr_eq_Union]
263
+ @[simp] protected lemma compl_infi (f : ι → upper_set α) : (⨅ i, f i).compl = ⨆ i, (f i).compl :=
264
+ lower_set.ext $ by simp only [coe_compl, coe_infi, compl_Inter, lower_set.coe_supr]
263
265
264
266
@[simp] lemma compl_supr₂ (f : Π i, κ i → upper_set α) :
265
267
(⨆ i j, f i j).compl = ⨅ i j, (f i j).compl :=
@@ -272,8 +274,10 @@ by simp_rw upper_set.compl_infi
272
274
end upper_set
273
275
274
276
namespace lower_set
277
+ variables {s : lower_set α} {a : α}
275
278
276
279
@[simp] lemma coe_compl (s : lower_set α) : (s.compl : set α) = sᶜ := rfl
280
+ @[simp] lemma mem_compl_iff : a ∈ s.compl ↔ a ∉ s := iff.rfl
277
281
@[simp] lemma compl_compl (s : lower_set α) : s.compl.compl = s := lower_set.ext $ compl_compl _
278
282
279
283
protected lemma compl_sup (s t : lower_set α) : (s ⊔ t).compl = s.compl ⊓ t.compl :=
@@ -282,21 +286,17 @@ protected lemma compl_inf (s t : lower_set α) : (s ⊓ t).compl = s.compl ⊔ t
282
286
upper_set.ext compl_inf
283
287
protected lemma compl_top : (⊤ : lower_set α).compl = ⊥ := upper_set.ext compl_univ
284
288
protected lemma compl_bot : (⊥ : lower_set α).compl = ⊤ := upper_set.ext compl_empty
285
- protected lemma compl_Sup (S : set (lower_set α)) : (Sup S).compl = Inf (lower_set.compl '' S) :=
286
- upper_set.ext $ compl_Sup'.trans $
287
- by { congr' 1 , ext, simp only [mem_image, exists_exists_and_eq_and, coe_compl] }
289
+ protected lemma compl_Sup (S : set (lower_set α)) : (Sup S).compl = ⨅ s ∈ S, lower_set.compl s :=
290
+ upper_set.ext $ by simp only [coe_compl, coe_Sup, compl_Union₂, upper_set.coe_infi₂]
288
291
289
- protected lemma compl_Inf (S : set (lower_set α)) : (Inf S).compl = Sup (lower_set.compl '' S) :=
290
- upper_set.ext $ compl_Inf'.trans $
291
- by { congr' 1 , ext, simp only [mem_image, exists_exists_and_eq_and, coe_compl] }
292
+ protected lemma compl_Inf (S : set (lower_set α)) : (Inf S).compl = ⨆ s ∈ S, lower_set.compl s :=
293
+ upper_set.ext $ by simp only [coe_compl, coe_Inf, compl_Inter₂, upper_set.coe_supr₂]
292
294
293
295
protected lemma compl_supr (f : ι → lower_set α) : (⨆ i, f i).compl = ⨅ i, (f i).compl :=
294
- upper_set.ext $
295
- by simp only [coe_compl, coe_supr, supr_eq_Union, compl_Union, upper_set.coe_infi, infi_eq_Inter]
296
+ upper_set.ext $ by simp only [coe_compl, coe_supr, compl_Union, upper_set.coe_infi]
296
297
297
298
protected lemma compl_infi (f : ι → lower_set α) : (⨅ i, f i).compl = ⨆ i, (f i).compl :=
298
- upper_set.ext $
299
- by simp only [coe_compl, coe_infi, infi_eq_Inter, compl_Inter, upper_set.coe_supr, supr_eq_Union]
299
+ upper_set.ext $ by simp only [coe_compl, coe_infi, compl_Inter, upper_set.coe_supr]
300
300
301
301
@[simp] lemma compl_supr₂ (f : Π i, κ i → lower_set α) :
302
302
(⨆ i j, f i j).compl = ⨅ i j, (f i j).compl :=
@@ -307,4 +307,4 @@ by simp_rw lower_set.compl_supr
307
307
by simp_rw lower_set.compl_infi
308
308
309
309
end lower_set
310
- end bundled
310
+ end has_le
0 commit comments