Documentation

Mathlib.Order.SupClosed

Sets closed under join/meet #

This file defines predicates for sets closed under and shows that each set in a join-semilattice generates a join-closed set and that a semilattice where every directed set has a least upper bound is automatically complete. All dually for .

Main declarations #

def SupClosed {α : Type u_3} [SemilatticeSup α] (s : Set α) :

A set s is sup-closed if a ⊔ b ∈ s for all a ∈ s, b ∈ s.

Equations
@[simp]
@[simp]
theorem supClosed_singleton {α : Type u_3} [SemilatticeSup α] {a : α} :
@[simp]
theorem SupClosed.inter {α : Type u_3} [SemilatticeSup α] {s t : Set α} (hs : SupClosed s) (ht : SupClosed t) :
theorem supClosed_sInter {α : Type u_3} [SemilatticeSup α] {S : Set (Set α)} (hS : sS, SupClosed s) :
theorem supClosed_iInter {α : Type u_3} [SemilatticeSup α] {ι : Sort u_5} {f : ιSet α} (hf : ∀ (i : ι), SupClosed (f i)) :
SupClosed (⋂ (i : ι), f i)
theorem SupClosed.directedOn {α : Type u_3} [SemilatticeSup α] {s : Set α} (hs : SupClosed s) :
DirectedOn (fun (x1 x2 : α) => x1 x2) s
theorem IsUpperSet.supClosed {α : Type u_3} [SemilatticeSup α] {s : Set α} (hs : IsUpperSet s) :
theorem SupClosed.preimage {F : Type u_2} {α : Type u_3} {β : Type u_4} [SemilatticeSup α] [SemilatticeSup β] {s : Set α} [FunLike F β α] [SupHomClass F β α] (hs : SupClosed s) (f : F) :
SupClosed (f ⁻¹' s)
theorem SupClosed.image {F : Type u_2} {α : Type u_3} {β : Type u_4} [SemilatticeSup α] [SemilatticeSup β] {s : Set α} [FunLike F α β] [SupHomClass F α β] (hs : SupClosed s) (f : F) :
SupClosed (f '' s)
theorem supClosed_range {F : Type u_2} {α : Type u_3} {β : Type u_4} [SemilatticeSup α] [SemilatticeSup β] [FunLike F α β] [SupHomClass F α β] (f : F) :
theorem SupClosed.prod {α : Type u_3} {β : Type u_4} [SemilatticeSup α] [SemilatticeSup β] {s : Set α} {t : Set β} (hs : SupClosed s) (ht : SupClosed t) :
theorem supClosed_pi {ι : Type u_6} {α : ιType u_7} [(i : ι) → SemilatticeSup (α i)] {s : Set ι} {t : (i : ι) → Set (α i)} (ht : is, SupClosed (t i)) :
theorem SupClosed.insert_upperBounds {α : Type u_3} [SemilatticeSup α] {s : Set α} {a : α} (hs : SupClosed s) (ha : a upperBounds s) :
theorem SupClosed.insert_lowerBounds {α : Type u_3} [SemilatticeSup α] {s : Set α} {a : α} (h : SupClosed s) (ha : a lowerBounds s) :
theorem SupClosed.finsetSup'_mem {α : Type u_3} [SemilatticeSup α] {ι : Type u_5} {f : ια} {s : Set α} {t : Finset ι} (hs : SupClosed s) (ht : t.Nonempty) :
(∀ it, f i s)t.sup' ht f s
theorem SupClosed.finsetSup_mem {α : Type u_3} [SemilatticeSup α] {ι : Type u_5} {f : ια} {s : Set α} {t : Finset ι} [OrderBot α] (hs : SupClosed s) (ht : t.Nonempty) :
(∀ it, f i s)t.sup f s
def InfClosed {α : Type u_3} [SemilatticeInf α] (s : Set α) :

A set s is inf-closed if a ⊓ b ∈ s for all a ∈ s, b ∈ s.

Equations
@[simp]
@[simp]
theorem infClosed_singleton {α : Type u_3} [SemilatticeInf α] {a : α} :
@[simp]
theorem InfClosed.inter {α : Type u_3} [SemilatticeInf α] {s t : Set α} (hs : InfClosed s) (ht : InfClosed t) :
theorem infClosed_sInter {α : Type u_3} [SemilatticeInf α] {S : Set (Set α)} (hS : sS, InfClosed s) :
theorem infClosed_iInter {α : Type u_3} [SemilatticeInf α] {ι : Sort u_5} {f : ιSet α} (hf : ∀ (i : ι), InfClosed (f i)) :
InfClosed (⋂ (i : ι), f i)
theorem InfClosed.codirectedOn {α : Type u_3} [SemilatticeInf α] {s : Set α} (hs : InfClosed s) :
DirectedOn (fun (x1 x2 : α) => x1 x2) s
theorem IsLowerSet.infClosed {α : Type u_3} [SemilatticeInf α] {s : Set α} (hs : IsLowerSet s) :
theorem InfClosed.preimage {F : Type u_2} {α : Type u_3} {β : Type u_4} [SemilatticeInf α] [SemilatticeInf β] {s : Set α} [FunLike F β α] [InfHomClass F β α] (hs : InfClosed s) (f : F) :
InfClosed (f ⁻¹' s)
theorem InfClosed.image {F : Type u_2} {α : Type u_3} {β : Type u_4} [SemilatticeInf α] [SemilatticeInf β] {s : Set α} [FunLike F α β] [InfHomClass F α β] (hs : InfClosed s) (f : F) :
InfClosed (f '' s)
theorem infClosed_range {F : Type u_2} {α : Type u_3} {β : Type u_4} [SemilatticeInf α] [SemilatticeInf β] [FunLike F α β] [InfHomClass F α β] (f : F) :
theorem InfClosed.prod {α : Type u_3} {β : Type u_4} [SemilatticeInf α] [SemilatticeInf β] {s : Set α} {t : Set β} (hs : InfClosed s) (ht : InfClosed t) :
theorem infClosed_pi {ι : Type u_6} {α : ιType u_7} [(i : ι) → SemilatticeInf (α i)] {s : Set ι} {t : (i : ι) → Set (α i)} (ht : is, InfClosed (t i)) :
theorem InfClosed.insert_upperBounds {α : Type u_3} [SemilatticeInf α] {s : Set α} {a : α} (hs : InfClosed s) (ha : a upperBounds s) :
theorem InfClosed.insert_lowerBounds {α : Type u_3} [SemilatticeInf α] {s : Set α} {a : α} (h : InfClosed s) (ha : a lowerBounds s) :
theorem InfClosed.finsetInf'_mem {α : Type u_3} [SemilatticeInf α] {ι : Type u_5} {f : ια} {s : Set α} {t : Finset ι} (hs : InfClosed s) (ht : t.Nonempty) :
(∀ it, f i s)t.inf' ht f s
theorem InfClosed.finsetInf_mem {α : Type u_3} [SemilatticeInf α] {ι : Type u_5} {f : ια} {s : Set α} {t : Finset ι} [OrderTop α] (hs : InfClosed s) (ht : t.Nonempty) :
(∀ it, f i s)t.inf f s
structure IsSublattice {α : Type u_3} [Lattice α] (s : Set α) :

A set s is a sublattice if a ⊔ b ∈ s and a ⊓ b ∈ s for all a ∈ s, b ∈ s. Note: This is not the preferred way to declare a sublattice. One should instead use Sublattice. TODO: Define Sublattice.

@[simp]
@[simp]
theorem isSublattice_singleton {α : Type u_3} [Lattice α] {a : α} :
@[simp]
theorem IsSublattice.inter {α : Type u_3} [Lattice α] {s t : Set α} (hs : IsSublattice s) (ht : IsSublattice t) :
theorem isSublattice_sInter {α : Type u_3} [Lattice α] {S : Set (Set α)} (hS : sS, IsSublattice s) :
theorem isSublattice_iInter {α : Type u_3} {ι : Sort u_5} [Lattice α] {f : ιSet α} (hf : ∀ (i : ι), IsSublattice (f i)) :
IsSublattice (⋂ (i : ι), f i)
theorem IsSublattice.preimage {F : Type u_2} {α : Type u_3} {β : Type u_4} [Lattice α] [Lattice β] {s : Set α} [FunLike F β α] [LatticeHomClass F β α] (hs : IsSublattice s) (f : F) :
theorem IsSublattice.image {F : Type u_2} {α : Type u_3} {β : Type u_4} [Lattice α] [Lattice β] {s : Set α} [FunLike F α β] [LatticeHomClass F α β] (hs : IsSublattice s) (f : F) :
IsSublattice (f '' s)
theorem IsSublattice_range {F : Type u_2} {α : Type u_3} {β : Type u_4} [Lattice α] [Lattice β] [FunLike F α β] [LatticeHomClass F α β] (f : F) :
theorem IsSublattice.prod {α : Type u_3} {β : Type u_4} [Lattice α] [Lattice β] {s : Set α} {t : Set β} (hs : IsSublattice s) (ht : IsSublattice t) :
theorem isSublattice_pi {ι : Type u_6} {α : ιType u_7} [(i : ι) → Lattice (α i)] {s : Set ι} {t : (i : ι) → Set (α i)} (ht : is, IsSublattice (t i)) :
@[simp]
@[simp]
theorem InfClosed.dual {α : Type u_3} [Lattice α] {s : Set α} :

Alias of the reverse direction of supClosed_preimage_ofDual.

theorem SupClosed.dual {α : Type u_3} [Lattice α] {s : Set α} :

Alias of the reverse direction of infClosed_preimage_ofDual.

theorem IsSublattice.dual {α : Type u_3} [Lattice α] {s : Set α} :

Alias of the reverse direction of isSublattice_preimage_ofDual.

Alias of the reverse direction of isSublattice_preimage_toDual.

@[simp]
theorem LinearOrder.supClosed {α : Type u_3} [LinearOrder α] (s : Set α) :
@[simp]
theorem LinearOrder.infClosed {α : Type u_3} [LinearOrder α] (s : Set α) :
@[simp]
theorem LinearOrder.isSublattice {α : Type u_3} [LinearOrder α] (s : Set α) :

Closure #

Every set in a join-semilattice generates a set closed under join.

Equations
@[simp]
@[simp]
theorem subset_supClosure {α : Type u_3} [SemilatticeSup α] {s : Set α} :
@[simp]
theorem supClosed_supClosure {α : Type u_3} [SemilatticeSup α] {s : Set α} :
@[simp]
theorem supClosure_eq_self {α : Type u_3} [SemilatticeSup α] {s : Set α} :
theorem SupClosed.supClosure_eq {α : Type u_3} [SemilatticeSup α] {s : Set α} :

Alias of the reverse direction of supClosure_eq_self.

@[simp]
@[simp]
theorem supClosure_singleton {α : Type u_3} [SemilatticeSup α] {a : α} :
@[simp]
@[simp]
theorem isLUB_supClosure {α : Type u_3} [SemilatticeSup α] {s : Set α} {a : α} :
theorem sup_mem_supClosure {α : Type u_3} [SemilatticeSup α] {s : Set α} {a b : α} (ha : a s) (hb : b s) :
theorem finsetSup'_mem_supClosure {α : Type u_3} [SemilatticeSup α] {s : Set α} {ι : Type u_5} {t : Finset ι} (ht : t.Nonempty) {f : ια} (hf : it, f i s) :
theorem supClosure_min {α : Type u_3} [SemilatticeSup α] {s t : Set α} :
s tSupClosed tsupClosure s t
theorem Set.Finite.supClosure {α : Type u_3} [SemilatticeSup α] {s : Set α} (hs : s.Finite) :

The semilatice generated by a finite set is finite.

@[simp]
theorem supClosure_prod {α : Type u_3} {β : Type u_4} [SemilatticeSup α] [SemilatticeSup β] (s : Set α) (t : Set β) :

Every set in a join-semilattice generates a set closed under join.

Equations
@[simp]
@[simp]
theorem subset_infClosure {α : Type u_3} [SemilatticeInf α] {s : Set α} :
@[simp]
theorem infClosed_infClosure {α : Type u_3} [SemilatticeInf α] {s : Set α} :
@[simp]
theorem infClosure_eq_self {α : Type u_3} [SemilatticeInf α] {s : Set α} :
theorem InfClosed.infClosure_eq {α : Type u_3} [SemilatticeInf α] {s : Set α} :

Alias of the reverse direction of infClosure_eq_self.

@[simp]
@[simp]
theorem infClosure_singleton {α : Type u_3} [SemilatticeInf α] {a : α} :
@[simp]
@[simp]
theorem isGLB_infClosure {α : Type u_3} [SemilatticeInf α] {s : Set α} {a : α} :
theorem inf_mem_infClosure {α : Type u_3} [SemilatticeInf α] {s : Set α} {a b : α} (ha : a s) (hb : b s) :
theorem finsetInf'_mem_infClosure {α : Type u_3} [SemilatticeInf α] {s : Set α} {ι : Type u_5} {t : Finset ι} (ht : t.Nonempty) {f : ια} (hf : it, f i s) :
theorem infClosure_min {α : Type u_3} [SemilatticeInf α] {s t : Set α} :
s tInfClosed tinfClosure s t
theorem Set.Finite.infClosure {α : Type u_3} [SemilatticeInf α] {s : Set α} (hs : s.Finite) :

The semilatice generated by a finite set is finite.

@[simp]
theorem infClosure_prod {α : Type u_3} {β : Type u_4} [SemilatticeInf α] [SemilatticeInf β] (s : Set α) (t : Set β) :
def latticeClosure {α : Type u_3} [Lattice α] :

Every set in a join-semilattice generates a set closed under join.

Equations
@[simp]
@[simp]
theorem subset_latticeClosure {α : Type u_3} [Lattice α] {s : Set α} :
@[simp]
theorem latticeClosure_min {α : Type u_3} [Lattice α] {s t : Set α} :
@[simp]
theorem latticeClosure_eq_self {α : Type u_3} [Lattice α] {s : Set α} :
theorem IsSublattice.latticeClosure_eq {α : Type u_3} [Lattice α] {s : Set α} :

Alias of the reverse direction of latticeClosure_eq_self.

@[simp]
@[simp]
theorem latticeClosure_singleton {α : Type u_3} [Lattice α] (a : α) :
theorem SupClosed.infClosure {α : Type u_3} [DistribLattice α] {s : Set α} (hs : SupClosed s) :
theorem InfClosed.supClosure {α : Type u_3} [DistribLattice α] {s : Set α} (hs : InfClosed s) :
@[simp]
theorem latticeClosure_prod {α : Type u_3} {β : Type u_4} [DistribLattice α] [DistribLattice β] (s : Set α) (t : Set β) :
def SemilatticeSup.toCompleteSemilatticeSup {α : Type u_3} [SemilatticeSup α] (sSup : Set αα) (h : ∀ (s : Set α), SupClosed sIsLUB s (sSup s)) :

A join-semilattice where every sup-closed set has a least upper bound is automatically complete.

Equations
def SemilatticeInf.toCompleteSemilatticeInf {α : Type u_3} [SemilatticeInf α] (sInf : Set αα) (h : ∀ (s : Set α), InfClosed sIsGLB s (sInf s)) :

A meet-semilattice where every inf-closed set has a greatest lower bound is automatically complete.

Equations
theorem SupClosed.iSup_mem_of_nonempty {ι : Sort u_1} {α : Type u_3} [ConditionallyCompleteLattice α] {f : ια} {s : Set α} [Finite ι] [Nonempty ι] (hs : SupClosed s) (hf : ∀ (i : ι), f i s) :
⨆ (i : ι), f i s
theorem InfClosed.iInf_mem_of_nonempty {ι : Sort u_1} {α : Type u_3} [ConditionallyCompleteLattice α] {f : ια} {s : Set α} [Finite ι] [Nonempty ι] (hs : InfClosed s) (hf : ∀ (i : ι), f i s) :
⨅ (i : ι), f i s
theorem SupClosed.sSup_mem_of_nonempty {α : Type u_3} [ConditionallyCompleteLattice α] {s t : Set α} (hs : SupClosed s) (ht : t.Finite) (ht' : t.Nonempty) (hts : t s) :
sSup t s
theorem InfClosed.sInf_mem_of_nonempty {α : Type u_3} [ConditionallyCompleteLattice α] {s t : Set α} (hs : InfClosed s) (ht : t.Finite) (ht' : t.Nonempty) (hts : t s) :
sInf t s
theorem SupClosed.biSup_mem_of_nonempty {α : Type u_3} [CompleteLattice α] {s : Set α} {ι : Type u_5} {t : Set ι} {f : ια} (hs : SupClosed s) (ht : t.Finite) (ht' : t.Nonempty) (hf : it, f i s) :
it, f i s
theorem InfClosed.biInf_mem_of_nonempty {α : Type u_3} [CompleteLattice α] {s : Set α} {ι : Type u_5} {t : Set ι} {f : ια} (hs : InfClosed s) (ht : t.Finite) (ht' : t.Nonempty) (hf : it, f i s) :
it, f i s
theorem SupClosed.iSup_mem {ι : Sort u_1} {α : Type u_3} [CompleteLattice α] {f : ια} {s : Set α} [Finite ι] (hs : SupClosed s) (hbot : s) (hf : ∀ (i : ι), f i s) :
⨆ (i : ι), f i s
theorem InfClosed.iInf_mem {ι : Sort u_1} {α : Type u_3} [CompleteLattice α] {f : ια} {s : Set α} [Finite ι] (hs : InfClosed s) (htop : s) (hf : ∀ (i : ι), f i s) :
⨅ (i : ι), f i s
theorem SupClosed.sSup_mem {α : Type u_3} [CompleteLattice α] {s t : Set α} (hs : SupClosed s) (ht : t.Finite) (hbot : s) (hts : t s) :
sSup t s
theorem InfClosed.sInf_mem {α : Type u_3} [CompleteLattice α] {s t : Set α} (hs : InfClosed s) (ht : t.Finite) (htop : s) (hts : t s) :
sInf t s
theorem SupClosed.biSup_mem {α : Type u_3} [CompleteLattice α] {s : Set α} {ι : Type u_5} {t : Set ι} {f : ια} (hs : SupClosed s) (ht : t.Finite) (hbot : s) (hf : it, f i s) :
it, f i s
theorem InfClosed.biInf_mem {α : Type u_3} [CompleteLattice α] {s : Set α} {ι : Type u_5} {t : Set ι} {f : ια} (hs : InfClosed s) (ht : t.Finite) (htop : s) (hf : it, f i s) :
it, f i s