Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit 3b8d217

Browse files
committed
refactor(order/upper_lower): Use rather than Sup (#12644)
Turn `Sup (coe '' S)` into `⋃ s ∈ S, ↑s` and other similar changes. This greatly simplifies the proofs.
1 parent cd94287 commit 3b8d217

File tree

5 files changed

+144
-143
lines changed

5 files changed

+144
-143
lines changed

src/order/complete_boolean_algebra.lean

Lines changed: 16 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -211,41 +211,29 @@ section lift
211211
@[reducible] -- See note [reducible non-instances]
212212
protected def function.injective.frame [has_sup α] [has_inf α] [has_Sup α] [has_Inf α] [has_top α]
213213
[has_bot α] [frame β] (f : α → β) (hf : injective f) (map_sup : ∀ a b, f (a ⊔ b) = f a ⊔ f b)
214-
(map_inf : ∀ a b, f (a ⊓ b) = f a ⊓ f b) (map_Sup : ∀ s, f (Sup s) = Sup (f '' s))
215-
(map_Inf : ∀ s, f (Inf s) = Inf (f '' s)) (map_top : f ⊤ = ⊤) (map_bot : f ⊥ = ⊥) :
214+
(map_inf : ∀ a b, f (a ⊓ b) = f a ⊓ f b) (map_Sup : ∀ s, f (Sup s) = ⨆ a ∈ s, f a)
215+
(map_Inf : ∀ s, f (Inf s) = ⨅ a ∈ s, f a) (map_top : f ⊤ = ⊤) (map_bot : f ⊥ = ⊥) :
216216
frame α :=
217217
{ inf_Sup_le_supr_inf := λ a s, begin
218-
change f (a ⊓ Sup s) ≤ f (Sup $ range $ λ b, Sup _),
219-
rw [map_inf, map_Sup, map_Sup, Sup_image, inf_bsupr_eq, ←range_comp],
220-
refine le_of_eq _,
221-
congr',
222-
ext b,
223-
refine eq.trans _ (map_Sup _).symm,
224-
rw [←range_comp, supr],
225-
congr',
226-
ext h,
227-
exact (map_inf _ _).symm,
218+
change f (a ⊓ Sup s) ≤ f _,
219+
rw [←Sup_image, map_inf, map_Sup s, inf_bsupr_eq],
220+
simp_rw ←map_inf,
221+
exact ((map_Sup _).trans supr_image).ge,
228222
end,
229223
..hf.complete_lattice f map_sup map_inf map_Sup map_Inf map_top map_bot }
230224

231225
/-- Pullback an `order.coframe` along an injection. -/
232226
@[reducible] -- See note [reducible non-instances]
233227
protected def function.injective.coframe [has_sup α] [has_inf α] [has_Sup α] [has_Inf α] [has_top α]
234228
[has_bot α] [coframe β] (f : α → β) (hf : injective f) (map_sup : ∀ a b, f (a ⊔ b) = f a ⊔ f b)
235-
(map_inf : ∀ a b, f (a ⊓ b) = f a ⊓ f b) (map_Sup : ∀ s, f (Sup s) = Sup (f '' s))
236-
(map_Inf : ∀ s, f (Inf s) = Inf (f '' s)) (map_top : f ⊤ = ⊤) (map_bot : f ⊥ = ⊥) :
229+
(map_inf : ∀ a b, f (a ⊓ b) = f a ⊓ f b) (map_Sup : ∀ s, f (Sup s) = ⨆ a ∈ s, f a)
230+
(map_Inf : ∀ s, f (Inf s) = ⨅ a ∈ s, f a) (map_top : f ⊤ = ⊤) (map_bot : f ⊥ = ⊥) :
237231
coframe α :=
238232
{ infi_sup_le_sup_Inf := λ a s, begin
239-
change f (Inf $ range $ λ b, Inf _) ≤ f (a ⊔ Inf s),
240-
rw [map_sup, map_Inf s, Inf_image, map_Inf, ←range_comp],
241-
refine ((sup_binfi_eq _).trans _ ).ge,
242-
congr',
243-
ext b,
244-
refine eq.trans _ (map_Inf _).symm,
245-
rw [←range_comp, infi],
246-
congr',
247-
ext h,
248-
exact (map_sup _ _).symm,
233+
change f _ ≤ f (a ⊔ Inf s),
234+
rw [←Inf_image, map_sup, map_Inf s, sup_binfi_eq],
235+
simp_rw ←map_sup,
236+
exact ((map_Inf _).trans infi_image).le,
249237
end,
250238
..hf.complete_lattice f map_sup map_inf map_Sup map_Inf map_top map_bot }
251239

@@ -254,8 +242,8 @@ protected def function.injective.coframe [has_sup α] [has_inf α] [has_Sup α]
254242
protected def function.injective.complete_distrib_lattice [has_sup α] [has_inf α] [has_Sup α]
255243
[has_Inf α] [has_top α] [has_bot α] [complete_distrib_lattice β]
256244
(f : α → β) (hf : function.injective f) (map_sup : ∀ a b, f (a ⊔ b) = f a ⊔ f b)
257-
(map_inf : ∀ a b, f (a ⊓ b) = f a ⊓ f b) (map_Sup : ∀ s, f (Sup s) = Sup (f '' s))
258-
(map_Inf : ∀ s, f (Inf s) = Inf (f '' s)) (map_top : f ⊤ = ⊤) (map_bot : f ⊥ = ⊥) :
245+
(map_inf : ∀ a b, f (a ⊓ b) = f a ⊓ f b) (map_Sup : ∀ s, f (Sup s) = ⨆ a ∈ s, f a)
246+
(map_Inf : ∀ s, f (Inf s) = ⨅ a ∈ s, f a) (map_top : f ⊤ = ⊤) (map_bot : f ⊥ = ⊥) :
259247
complete_distrib_lattice α :=
260248
{ ..hf.frame f map_sup map_inf map_Sup map_Inf map_top map_bot,
261249
..hf.coframe f map_sup map_inf map_Sup map_Inf map_top map_bot }
@@ -265,8 +253,8 @@ protected def function.injective.complete_distrib_lattice [has_sup α] [has_inf
265253
protected def function.injective.complete_boolean_algebra [has_sup α] [has_inf α] [has_Sup α]
266254
[has_Inf α] [has_top α] [has_bot α] [has_compl α] [has_sdiff α] [complete_boolean_algebra β]
267255
(f : α → β) (hf : function.injective f) (map_sup : ∀ a b, f (a ⊔ b) = f a ⊔ f b)
268-
(map_inf : ∀ a b, f (a ⊓ b) = f a ⊓ f b) (map_Sup : ∀ s, f (Sup s) = Sup (f '' s))
269-
(map_Inf : ∀ s, f (Inf s) = Inf (f '' s)) (map_top : f ⊤ = ⊤) (map_bot : f ⊥ = ⊥)
256+
(map_inf : ∀ a b, f (a ⊓ b) = f a ⊓ f b) (map_Sup : ∀ s, f (Sup s) = ⨆ a ∈ s, f a)
257+
(map_Inf : ∀ s, f (Inf s) = ⨅ a ∈ s, f a) (map_top : f ⊤ = ⊤) (map_bot : f ⊥ = ⊥)
270258
(map_compl : ∀ a, f aᶜ = (f a)ᶜ) (map_sdiff : ∀ a b, f (a \ b) = f a \ f b) :
271259
complete_boolean_algebra α :=
272260
{ ..hf.complete_distrib_lattice f map_sup map_inf map_Sup map_Inf map_top map_bot,

src/order/complete_lattice.lean

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1309,19 +1309,18 @@ end complete_lattice
13091309
protected def function.injective.complete_lattice [has_sup α] [has_inf α] [has_Sup α]
13101310
[has_Inf α] [has_top α] [has_bot α] [complete_lattice β]
13111311
(f : α → β) (hf : function.injective f) (map_sup : ∀ a b, f (a ⊔ b) = f a ⊔ f b)
1312-
(map_inf : ∀ a b, f (a ⊓ b) = f a ⊓ f b) (map_Sup : ∀ s, f (Sup s) = Sup (f '' s))
1313-
(map_Inf : ∀ s, f (Inf s) = Inf (f '' s)) (map_top : f ⊤ = ⊤) (map_bot : f ⊥ = ⊥) :
1312+
(map_inf : ∀ a b, f (a ⊓ b) = f a ⊓ f b) (map_Sup : ∀ s, f (Sup s) = ⨆ a ∈ s, f a)
1313+
(map_Inf : ∀ s, f (Inf s) = ⨅ a ∈ s, f a) (map_top : f ⊤ = ⊤) (map_bot : f ⊥ = ⊥) :
13141314
complete_lattice α :=
13151315
{ Sup := Sup,
1316-
le_Sup := λ s a h, (le_Sup $ mem_image_of_mem f h).trans (map_Sup _).ge,
1317-
Sup_le := λ s a h, (map_Sup _).le.trans $ Sup_le $ set.ball_image_of_ball $ by exact h,
1316+
le_Sup := λ s a h, (le_bsupr a h).trans (map_Sup _).ge,
1317+
Sup_le := λ s a h, (map_Sup _).trans_le $ bsupr_le h,
13181318
Inf := Inf,
1319-
Inf_le := λ s a h, (map_Inf _).le.trans $ Inf_le $ mem_image_of_mem f h,
1320-
le_Inf := λ s a h, (le_Inf $ set.ball_image_of_ball $ by exact h).trans (map_Inf _).ge,
1319+
Inf_le := λ s a h, (map_Inf _).trans_le $ binfi_le a h,
1320+
le_Inf := λ s a h, (le_binfi h).trans (map_Inf _).ge,
13211321
-- we cannot use bounded_order.lift here as the `has_le` instance doesn't exist yet
13221322
top := ⊤,
13231323
le_top := λ a, (@le_top β _ _ _).trans map_top.ge,
13241324
bot := ⊥,
13251325
bot_le := λ a, map_bot.le.trans bot_le,
13261326
..hf.lattice f map_sup map_inf }
1327-

src/order/upper_lower.lean

Lines changed: 51 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ end unbundled
119119

120120
/-! ### Bundled upper/lower sets -/
121121

122-
section bundled
122+
section has_le
123123
variables [has_le α]
124124

125125
/-- The type of upper sets of an order. -/
@@ -134,12 +134,14 @@ structure lower_set (α : Type*) [has_le α] :=
134134

135135
namespace upper_set
136136

137-
instance upper_set.set_like : set_like (upper_set α) α :=
137+
instance : set_like (upper_set α) α :=
138138
{ coe := upper_set.carrier,
139139
coe_injective' := λ s t h, by { cases s, cases t, congr' } }
140140

141141
@[ext] lemma ext {s t : upper_set α} : (s : set α) = t → s = t := set_like.ext'
142142

143+
@[simp] lemma carrier_eq_coe (s : upper_set α) : s.carrier = s := rfl
144+
143145
protected lemma upper (s : upper_set α) : is_upper_set (s : set α) := s.upper'
144146

145147
end upper_set
@@ -152,22 +154,25 @@ instance : set_like (lower_set α) α :=
152154

153155
@[ext] lemma ext {s t : lower_set α} : (s : set α) = t → s = t := set_like.ext'
154156

157+
@[simp] lemma carrier_eq_coe (s : lower_set α) : s.carrier = s := rfl
158+
155159
protected lemma lower (s : lower_set α) : is_lower_set (s : set α) := s.lower'
156160

157161
end lower_set
158162

159163
/-! #### Order -/
160164

161165
namespace upper_set
166+
variables {S : set (upper_set α)} {s t : upper_set α} {a : α}
162167

163168
instance : has_sup (upper_set α) := ⟨λ s t, ⟨s ∪ t, s.upper.union t.upper⟩⟩
164169
instance : has_inf (upper_set α) := ⟨λ s t, ⟨s ∩ t, s.upper.inter t.upper⟩⟩
165170
instance : has_top (upper_set α) := ⟨⟨univ, is_upper_set_univ⟩⟩
166171
instance : has_bot (upper_set α) := ⟨⟨∅, is_upper_set_empty⟩⟩
167172
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⟩⟩
169174
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⟩⟩
171176

172177
instance : complete_distrib_lattice (upper_set α) :=
173178
set_like.coe_injective.complete_distrib_lattice _
@@ -179,29 +184,26 @@ instance : inhabited (upper_set α) := ⟨⊥⟩
179184
@[simp] lemma coe_bot : ((⊥ : upper_set α) : set α) = ∅ := rfl
180185
@[simp] lemma coe_sup (s t : upper_set α) : (↑(s ⊔ t) : set α) = s ∪ t := rfl
181186
@[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 :=
189192
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 :=
191194
by simp_rw coe_infi
192195

193196
end upper_set
194197

195198
namespace lower_set
199+
variables {S : set (lower_set α)} {s t : lower_set α} {a : α}
196200

197201
instance : has_sup (lower_set α) := ⟨λ s t, ⟨s ∪ t, λ a b h, or.imp (s.lower h) (t.lower h)⟩⟩
198202
instance : has_inf (lower_set α) := ⟨λ s t, ⟨s ∩ t, λ a b h, and.imp (s.lower h) (t.lower h)⟩⟩
199203
instance : has_top (lower_set α) := ⟨⟨univ, λ a b h, id⟩⟩
200204
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⟩⟩
205207

206208
instance : complete_distrib_lattice (lower_set α) :=
207209
set_like.coe_injective.complete_distrib_lattice _
@@ -213,15 +215,15 @@ instance : inhabited (lower_set α) := ⟨⊥⟩
213215
@[simp] lemma coe_bot : ((⊥ : lower_set α) : set α) = ∅ := rfl
214216
@[simp] lemma coe_sup (s t : lower_set α) : (↑(s ⊔ t) : set α) = s ∪ t := rfl
215217
@[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 :=
223225
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 :=
225227
by simp_rw coe_infi
226228

227229
end lower_set
@@ -235,31 +237,31 @@ def upper_set.compl (s : upper_set α) : lower_set α := ⟨sᶜ, s.upper.compl
235237
def lower_set.compl (s : lower_set α) : upper_set α := ⟨sᶜ, s.lower.compl⟩
236238

237239
namespace upper_set
240+
variables {s : upper_set α} {a : α}
238241

239242
@[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
240244
@[simp] lemma compl_compl (s : upper_set α) : s.compl.compl = s := upper_set.ext $ compl_compl _
241245

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 :=
243247
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 :=
245249
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₂]
251255

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₂]
255259

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]
259262

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]
263265

264266
@[simp] lemma compl_supr₂ (f : Π i, κ i → upper_set α) :
265267
(⨆ i j, f i j).compl = ⨅ i j, (f i j).compl :=
@@ -272,8 +274,10 @@ by simp_rw upper_set.compl_infi
272274
end upper_set
273275

274276
namespace lower_set
277+
variables {s : lower_set α} {a : α}
275278

276279
@[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
277281
@[simp] lemma compl_compl (s : lower_set α) : s.compl.compl = s := lower_set.ext $ compl_compl _
278282

279283
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
282286
upper_set.ext compl_inf
283287
protected lemma compl_top : (⊤ : lower_set α).compl = ⊥ := upper_set.ext compl_univ
284288
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₂]
288291

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₂]
292294

293295
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]
296297

297298
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]
300300

301301
@[simp] lemma compl_supr₂ (f : Π i, κ i → lower_set α) :
302302
(⨆ i j, f i j).compl = ⨅ i j, (f i j).compl :=
@@ -307,4 +307,4 @@ by simp_rw lower_set.compl_supr
307307
by simp_rw lower_set.compl_infi
308308

309309
end lower_set
310-
end bundled
310+
end has_le

0 commit comments

Comments
 (0)