The complete lattice structure on UpperSet/LowerSet #
This file defines a completely distributive lattice structure on UpperSet and LowerSet,
pulled back across the canonical injection (UpperSet.carrier, LowerSet.carrier) into Set α.
Notes #
Upper sets are ordered by reverse inclusion. This convention is motivated by the fact that this
makes them order-isomorphic to lower sets and antichains, and matches the convention on Filter.
@[implicit_reducible]
@[implicit_reducible]
See Note [custom simps projection].
Instances For
See Note [custom simps projection].
Instances For
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[implicit_reducible]
@[implicit_reducible]
@[implicit_reducible]
@[implicit_reducible]
@[implicit_reducible]
@[implicit_reducible]
@[implicit_reducible]
@[implicit_reducible]
@[implicit_reducible]
@[implicit_reducible]
@[implicit_reducible]
@[implicit_reducible]
@[implicit_reducible]
@[implicit_reducible]
@[implicit_reducible]
@[implicit_reducible]
@[implicit_reducible]
@[implicit_reducible]
@[implicit_reducible]
@[implicit_reducible]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
theorem
UpperSet.coe_iSup
{α : Type u_1}
{ι : Sort u_4}
[LE α]
(f : ι → UpperSet α)
:
↑(⨆ (i : ι), f i) = ⋂ (i : ι), ↑(f i)
@[simp]
theorem
LowerSet.coe_iInf
{α : Type u_1}
{ι : Sort u_4}
[LE α]
(f : ι → LowerSet α)
:
↑(⨅ (i : ι), f i) = ⋂ (i : ι), ↑(f i)
@[simp]
theorem
UpperSet.coe_iInf
{α : Type u_1}
{ι : Sort u_4}
[LE α]
(f : ι → UpperSet α)
:
↑(⨅ (i : ι), f i) = ⋃ (i : ι), ↑(f i)
@[simp]
theorem
LowerSet.coe_iSup
{α : Type u_1}
{ι : Sort u_4}
[LE α]
(f : ι → LowerSet α)
:
↑(⨆ (i : ι), f i) = ⋃ (i : ι), ↑(f i)
theorem
UpperSet.coe_iSup₂
{α : Type u_1}
{ι : Sort u_4}
{κ : ι → Sort u_5}
[LE α]
(f : (i : ι) → κ i → UpperSet α)
:
↑(⨆ (i : ι), ⨆ (j : κ i), f i j) = ⋂ (i : ι), ⋂ (j : κ i), ↑(f i j)
theorem
LowerSet.coe_iInf₂
{α : Type u_1}
{ι : Sort u_4}
{κ : ι → Sort u_5}
[LE α]
(f : (i : ι) → κ i → LowerSet α)
:
↑(⨅ (i : ι), ⨅ (j : κ i), f i j) = ⋂ (i : ι), ⋂ (j : κ i), ↑(f i j)
theorem
UpperSet.coe_iInf₂
{α : Type u_1}
{ι : Sort u_4}
{κ : ι → Sort u_5}
[LE α]
(f : (i : ι) → κ i → UpperSet α)
:
↑(⨅ (i : ι), ⨅ (j : κ i), f i j) = ⋃ (i : ι), ⋃ (j : κ i), ↑(f i j)
theorem
LowerSet.coe_iSup₂
{α : Type u_1}
{ι : Sort u_4}
{κ : ι → Sort u_5}
[LE α]
(f : (i : ι) → κ i → LowerSet α)
:
↑(⨆ (i : ι), ⨆ (j : κ i), f i j) = ⋃ (i : ι), ⋃ (j : κ i), ↑(f i j)
@[simp]
theorem
UpperSet.mem_sup_iff
{α : Type u_1}
[LE α]
{s t : UpperSet α}
{a : α}
:
a ∈ s ⊔ t ↔ a ∈ s ∧ a ∈ t
@[simp]
theorem
LowerSet.mem_inf_iff
{α : Type u_1}
[LE α]
{s t : LowerSet α}
{a : α}
:
a ∈ s ⊓ t ↔ a ∈ s ∧ a ∈ t
@[simp]
theorem
UpperSet.mem_inf_iff
{α : Type u_1}
[LE α]
{s t : UpperSet α}
{a : α}
:
a ∈ s ⊓ t ↔ a ∈ s ∨ a ∈ t
@[simp]
theorem
LowerSet.mem_sup_iff
{α : Type u_1}
[LE α]
{s t : LowerSet α}
{a : α}
:
a ∈ s ⊔ t ↔ a ∈ s ∨ a ∈ t
@[simp]
theorem
UpperSet.mem_sSup_iff
{α : Type u_1}
[LE α]
{S : Set (UpperSet α)}
{a : α}
:
a ∈ sSup S ↔ ∀ s ∈ S, a ∈ s
@[simp]
theorem
LowerSet.mem_sInf_iff
{α : Type u_1}
[LE α]
{S : Set (LowerSet α)}
{a : α}
:
a ∈ sInf S ↔ ∀ s ∈ S, a ∈ s
@[simp]
theorem
UpperSet.mem_sInf_iff
{α : Type u_1}
[LE α]
{S : Set (UpperSet α)}
{a : α}
:
a ∈ sInf S ↔ ∃ s ∈ S, a ∈ s
@[simp]
theorem
LowerSet.mem_sSup_iff
{α : Type u_1}
[LE α]
{S : Set (LowerSet α)}
{a : α}
:
a ∈ sSup S ↔ ∃ s ∈ S, a ∈ s
@[simp]
theorem
UpperSet.mem_iSup_iff
{α : Type u_1}
{ι : Sort u_4}
[LE α]
{a : α}
{f : ι → UpperSet α}
:
a ∈ ⨆ (i : ι), f i ↔ ∀ (i : ι), a ∈ f i
@[simp]
theorem
LowerSet.mem_iInf_iff
{α : Type u_1}
{ι : Sort u_4}
[LE α]
{a : α}
{f : ι → LowerSet α}
:
a ∈ ⨅ (i : ι), f i ↔ ∀ (i : ι), a ∈ f i
@[simp]
theorem
UpperSet.mem_iInf_iff
{α : Type u_1}
{ι : Sort u_4}
[LE α]
{a : α}
{f : ι → UpperSet α}
:
a ∈ ⨅ (i : ι), f i ↔ ∃ (i : ι), a ∈ f i
@[simp]
theorem
LowerSet.mem_iSup_iff
{α : Type u_1}
{ι : Sort u_4}
[LE α]
{a : α}
{f : ι → LowerSet α}
:
a ∈ ⨆ (i : ι), f i ↔ ∃ (i : ι), a ∈ f i
theorem
UpperSet.mem_iSup₂_iff
{α : Type u_1}
{ι : Sort u_4}
{κ : ι → Sort u_5}
[LE α]
{a : α}
{f : (i : ι) → κ i → UpperSet α}
:
a ∈ ⨆ (i : ι), ⨆ (j : κ i), f i j ↔ ∀ (i : ι) (j : κ i), a ∈ f i j
theorem
LowerSet.mem_iInf₂_iff
{α : Type u_1}
{ι : Sort u_4}
{κ : ι → Sort u_5}
[LE α]
{a : α}
{f : (i : ι) → κ i → LowerSet α}
:
a ∈ ⨅ (i : ι), ⨅ (j : κ i), f i j ↔ ∀ (i : ι) (j : κ i), a ∈ f i j
theorem
UpperSet.mem_iInf₂_iff
{α : Type u_1}
{ι : Sort u_4}
{κ : ι → Sort u_5}
[LE α]
{a : α}
{f : (i : ι) → κ i → UpperSet α}
:
a ∈ ⨅ (i : ι), ⨅ (j : κ i), f i j ↔ ∃ (i : ι) (j : κ i), a ∈ f i j
theorem
LowerSet.mem_iSup₂_iff
{α : Type u_1}
{ι : Sort u_4}
{κ : ι → Sort u_5}
[LE α]
{a : α}
{f : (i : ι) → κ i → LowerSet α}
:
a ∈ ⨆ (i : ι), ⨆ (j : κ i), f i j ↔ ∃ (i : ι) (j : κ i), a ∈ f i j
@[simp]
theorem
UpperSet.codisjoint_coe
{α : Type u_1}
[LE α]
{s t : UpperSet α}
:
Codisjoint ↑s ↑t ↔ Disjoint s t
@[simp]
theorem
LowerSet.disjoint_coe
{α : Type u_1}
[LE α]
{s t : LowerSet α}
:
Codisjoint ↑s ↑t ↔ Codisjoint s t
Complement #
The complement of an upper set as a lower set.
Instances For
The complement of a lower set as an upper set.
Instances For
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
@[simp]
Upper sets are order-isomorphic to lower sets under complementation.
Instances For
@[simp]
theorem
upperSetIsoLowerSet_apply
{α : Type u_1}
[LE α]
(s : UpperSet α)
:
upperSetIsoLowerSet s = s.compl
@[simp]
theorem
upperSetIsoLowerSet_symm_apply
{α : Type u_1}
[LE α]
(s : LowerSet α)
:
(RelIso.symm upperSetIsoLowerSet) s = s.compl
@[implicit_reducible]
noncomputable instance
UpperSet.instLinearOrder
{α : Type u_1}
[LinearOrder α]
:
LinearOrder (UpperSet α)
@[implicit_reducible]
@[implicit_reducible]
noncomputable instance
LowerSet.instLinearOrder
{α : Type u_1}
[LinearOrder α]
:
LinearOrder (LowerSet α)
@[implicit_reducible]
@[simp]
theorem
LowerSet.coe_map_symm_apply
{α : Type u_1}
{β : Type u_2}
[Preorder α]
[Preorder β]
(f : α ≃o β)
(t : LowerSet β)
:
↑((RelIso.symm (map f)) t) = ⇑f ⁻¹' ↑t
@[simp]
theorem
UpperSet.coe_map_symm_apply
{α : Type u_1}
{β : Type u_2}
[Preorder α]
[Preorder β]
(f : α ≃o β)
(t : UpperSet β)
:
↑((RelIso.symm (map f)) t) = ⇑f ⁻¹' ↑t
@[simp]
theorem
UpperSet.map_refl
{α : Type u_1}
[Preorder α]
:
map (OrderIso.refl α) = OrderIso.refl (UpperSet α)
@[simp]
theorem
LowerSet.map_refl
{α : Type u_1}
[Preorder α]
:
map (OrderIso.refl α) = OrderIso.refl (LowerSet α)
@[simp]
@[simp]