doc-next-gen

Mathlib.Order.ZornAtoms

Module docstring

{"# Zorn lemma for (co)atoms

In this file we use Zorn's lemma to prove that a partial order is atomic if every nonempty chain c, ⊥ ∉ c, has a lower bound not equal to . We also prove the order dual version of this statement. "}

IsCoatomic.of_isChain_bounded theorem
{α : Type*} [PartialOrder α] [OrderTop α] (h : ∀ c : Set α, IsChain (· ≤ ·) c → c.Nonempty → ⊤ ∉ c → ∃ x ≠ ⊤, x ∈ upperBounds c) : IsCoatomic α
Full source
/-- **Zorn's lemma**: A partial order is coatomic if every nonempty chain `c`, `⊤ ∉ c`, has an upper
bound not equal to `⊤`. -/
theorem IsCoatomic.of_isChain_bounded {α : Type*} [PartialOrder α] [OrderTop α]
    (h : ∀ c : Set α, IsChain (· ≤ ·) c → c.Nonempty⊤ ∉ c∃ x ≠ ⊤, x ∈ upperBounds c) :
    IsCoatomic α := by
  refine ⟨fun x => le_top.eq_or_lt.imp_right fun hx => ?_⟩
  have := zorn_le_nonempty₀ (Ico x ) (fun c hxc hc y hy => ?_) x (left_mem_Ico.2 hx)
  · obtain ⟨y, hxy, hmax⟩ := this
    refine ⟨y, ⟨hmax.prop.2.ne, fun z hyz ↦ le_top.eq_or_lt.resolve_right fun hz => ?_⟩, hxy⟩
    exact hyz.ne <| hmax.eq_of_le ⟨hxy.trans hyz.le, hz⟩ hyz.le
  rcases h c hc ⟨y, hy⟩ fun h => (hxc h).2.ne rfl with ⟨z, hz, hcz⟩
  exact ⟨z, ⟨le_trans (hxc hy).1 (hcz hy), hz.lt_top⟩, hcz⟩
Zorn's Lemma for Coatoms: Nonempty Chains with Upper Bounds Imply Coatoms Exist
Informal description
Let $\alpha$ be a partially ordered set with a greatest element $\top$. Suppose that for every nonempty chain $c \subseteq \alpha$ such that $\top \notin c$, there exists an element $x \neq \top$ that is an upper bound of $c$. Then $\alpha$ is coatomic (i.e., every element is either $\top$ or is below some coatom).
IsAtomic.of_isChain_bounded theorem
{α : Type*} [PartialOrder α] [OrderBot α] (h : ∀ c : Set α, IsChain (· ≤ ·) c → c.Nonempty → ⊥ ∉ c → ∃ x ≠ ⊥, x ∈ lowerBounds c) : IsAtomic α
Full source
/-- **Zorn's lemma**: A partial order is atomic if every nonempty chain `c`, `⊥ ∉ c`, has a lower
bound not equal to `⊥`. -/
theorem IsAtomic.of_isChain_bounded {α : Type*} [PartialOrder α] [OrderBot α]
    (h :
      ∀ c : Set α,
        IsChain (· ≤ ·) c → c.Nonempty⊥ ∉ c∃ x ≠ ⊥, x ∈ lowerBounds c) :
    IsAtomic α :=
  isCoatomic_dual_iff_isAtomic.mp <| IsCoatomic.of_isChain_bounded fun c hc => h c hc.symm
Zorn's Lemma for Atoms: Nonempty Chains with Lower Bounds Imply Atoms Exist
Informal description
Let $\alpha$ be a partially ordered set with a least element $\bot$. Suppose that for every nonempty chain $c \subseteq \alpha$ such that $\bot \notin c$, there exists an element $x \neq \bot$ that is a lower bound of $c$. Then $\alpha$ is atomic (i.e., every element is either $\bot$ or is above some atom).