scilib documentation

order.compactly_generated

Compactness properties for complete lattices #

THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4.

For complete lattices, there are numerous equivalent ways to express the fact that the relation > is well-founded. In this file we define three especially-useful characterisations and provide proofs that they are indeed equivalent to well-foundedness.

Main definitions #

Main results #

The main result is that the following four conditions are equivalent for a complete lattice:

This is demonstrated by means of the following four lemmas:

We also show well-founded lattices are compactly generated (complete_lattice.compactly_generated_of_well_founded).

References #

Tags #

complete lattice, well-founded, compact

@[protected]
theorem directed.directed_on_range {α : Type u} {ι : Sort w} {r : α → α → Prop} {f : ι → α} :

Alias of the forward direction of directed_on_range.

def complete_lattice.is_sup_closed_compact (α : Type u_2) [complete_lattice α] :
Prop

A compactness property for a complete lattice is that any sup-closed non-empty subset contains its Sup.

Equations
def complete_lattice.is_Sup_finite_compact (α : Type u_2) [complete_lattice α] :
Prop

A compactness property for a complete lattice is that any subset has a finite subset with the same Sup.

Equations
def complete_lattice.is_compact_element {α : Type u_1} [complete_lattice α] (k : α) :
Prop

An element k of a complete lattice is said to be compact if any set with Sup above k has a finite subset with Sup above k. Such an element is also called "finite" or "S-compact".

Equations
theorem complete_lattice.is_compact_element_iff {α : Type u} [complete_lattice α] (k : α) :
complete_lattice.is_compact_element k ↔ ∀ (ι : Type u) (s : ι → α), k ≤ supr s → (∃ (t : finset ι), k ≤ t.sup s)

An element k is compact if and only if any directed set with Sup above k already got above k at some point in the set.

theorem complete_lattice.is_compact_element.exists_finset_of_le_supr (α : Type u_2) [complete_lattice α] {k : α} (hk : complete_lattice.is_compact_element k) {ι : Type u_1} (f : ι → α) (h : k ≤ ⨆ (i : ι), f i) :
∃ (s : finset ι), k ≤ ⨆ (i : ι) (H : i ∈ s), f i
theorem complete_lattice.is_compact_element.directed_Sup_lt_of_lt {α : Type u_1} [complete_lattice α] {k : α} (hk : complete_lattice.is_compact_element k) {s : set α} (hemp : s.nonempty) (hdir : directed_on has_le.le s) (hbelow : ∀ (x : α), x ∈ s → x < k) :

A compact element k has the property that any directed set lying strictly below k has its Sup strictly below k.

theorem complete_lattice.finset_sup_compact_of_compact {α : Type u_1} {β : Type u_2} [complete_lattice α] {f : β → α} (s : finset β) (h : ∀ (x : β), x ∈ s → complete_lattice.is_compact_element (f x)) :
theorem complete_lattice.well_founded.finite_of_independent {α : Type u_2} [complete_lattice α] (hwf : well_founded gt) {ι : Type u_1} {t : ι → α} (ht : complete_lattice.independent t) (h_ne_bot : ∀ (i : ι), t i ≠ ⊥) :
@[class]
structure is_compactly_generated (α : Type u_3) [complete_lattice α] :
Prop

A complete lattice is said to be compactly generated if any element is the Sup of compact elements.

Instances of this typeclass
@[simp]
theorem Sup_compact_le_eq {α : Type u_2} [complete_lattice α] [is_compactly_generated α] (b : α) :
theorem le_iff_compact_le_imp {α : Type u_2} [complete_lattice α] [is_compactly_generated α] {a b : α} :
a ≤ b ↔ ∀ (c : α), complete_lattice.is_compact_element c → c ≤ a → c ≤ b
theorem directed_on.inf_Sup_eq {α : Type u_2} [complete_lattice α] [is_compactly_generated α] {a : α} {s : set α} (h : directed_on has_le.le s) :
a ⊓ has_Sup.Sup s = ⨆ (b : α) (H : b ∈ s), a ⊓ b

This property is sometimes referred to as α being upper continuous.

@[protected]
theorem directed_on.Sup_inf_eq {α : Type u_2} [complete_lattice α] [is_compactly_generated α] {a : α} {s : set α} (h : directed_on has_le.le s) :
has_Sup.Sup s ⊓ a = ⨆ (b : α) (H : b ∈ s), b ⊓ a

This property is sometimes referred to as α being upper continuous.

@[protected]
theorem directed.inf_supr_eq {ι : Sort u_1} {α : Type u_2} [complete_lattice α] {f : ι → α} [is_compactly_generated α] {a : α} (h : directed has_le.le f) :
(a ⊓ ⨆ (i : ι), f i) = ⨆ (i : ι), a ⊓ f i
@[protected]
theorem directed.supr_inf_eq {ι : Sort u_1} {α : Type u_2} [complete_lattice α] {f : ι → α} [is_compactly_generated α] {a : α} (h : directed has_le.le f) :
(⨆ (i : ι), f i) ⊓ a = ⨆ (i : ι), f i ⊓ a
@[protected]
theorem directed_on.disjoint_Sup_right {α : Type u_2} [complete_lattice α] [is_compactly_generated α] {a : α} {s : set α} (h : directed_on has_le.le s) :
disjoint a (has_Sup.Sup s) ↔ ∀ ⦃b : α⦄, b ∈ s → disjoint a b
@[protected]
theorem directed_on.disjoint_Sup_left {α : Type u_2} [complete_lattice α] [is_compactly_generated α] {a : α} {s : set α} (h : directed_on has_le.le s) :
disjoint (has_Sup.Sup s) a ↔ ∀ ⦃b : α⦄, b ∈ s → disjoint b a
@[protected]
theorem directed.disjoint_supr_right {ι : Sort u_1} {α : Type u_2} [complete_lattice α] {f : ι → α} [is_compactly_generated α] {a : α} (h : directed has_le.le f) :
disjoint a (⨆ (i : ι), f i) ↔ ∀ (i : ι), disjoint a (f i)
@[protected]
theorem directed.disjoint_supr_left {ι : Sort u_1} {α : Type u_2} [complete_lattice α] {f : ι → α} [is_compactly_generated α] {a : α} (h : directed has_le.le f) :
disjoint (⨆ (i : ι), f i) a ↔ ∀ (i : ι), disjoint (f i) a
theorem inf_Sup_eq_supr_inf_sup_finset {α : Type u_2} [complete_lattice α] [is_compactly_generated α] {a : α} {s : set α} :
a ⊓ has_Sup.Sup s = ⨆ (t : finset α) (H : ↑t ⊆ s), a ⊓ t.sup id

This property is equivalent to α being upper continuous.

theorem complete_lattice.set_independent_Union_of_directed {α : Type u_2} [complete_lattice α] [is_compactly_generated α] {η : Type u_1} {s : η → set α} (hs : directed has_subset.subset s) (h : ∀ (i : η), complete_lattice.set_independent (s i)) :

A compact element k has the property that any b < k lies below a "maximal element below k", which is to say [⊥, k] is coatomic.

Now we will prove that a compactly generated modular atomistic lattice is a complemented lattice. Most explicitly, every element is the complement of a supremum of indepedendent atoms.

theorem exists_set_independent_is_compl_Sup_atoms {α : Type u_2} [complete_lattice α] [is_modular_lattice α] [is_compactly_generated α] (h : has_Sup.Sup {a : α | is_atom a} = ⊤) (b : α) :
∃ (s : set α), complete_lattice.set_independent s ∧ is_compl b (has_Sup.Sup s) ∧ ∀ ⦃a : α⦄, a ∈ s → is_atom a

In an atomic lattice, every element b has a complement of the form Sup s, where each element of s is an atom. See also complemented_lattice_of_Sup_atoms_eq_top.