mathlib documentation

order.​zorn

order.​zorn

def zorn.​chain {α : Type u} :
(α → α → Prop) → set α → Prop

A chain is a subset c satisfying x ≺ y ∨ x = y ∨ y ≺ x for all x y ∈ c.

Equations
theorem zorn.​chain.​total_of_refl {α : Type u} {r : α → α → Prop} [is_refl α r] {c : set α} (H : zorn.chain r c) {x y : α} :
x ∈ c → y ∈ c → r x y ∨ r y x

theorem zorn.​chain.​mono {α : Type u} {r : α → α → Prop} {c c' : set α} :
c' ⊆ c → zorn.chain r c → zorn.chain r c'

theorem zorn.​chain.​directed_on {α : Type u} {r : α → α → Prop} [is_refl α r] {c : set α} :

theorem zorn.​chain_insert {α : Type u} {r : α → α → Prop} {c : set α} {a : α} :
zorn.chain r c → (∀ (b : α), b ∈ c → b ≠ a → r a b ∨ r b a) → zorn.chain r (has_insert.insert a c)

def zorn.​super_chain {α : Type u} :
Π {r : α → α → Prop}, set α → set α → Prop

super_chain c₁ c₂ means that c₂ is a chain that strictly includesc₁`.

Equations
def zorn.​is_max_chain {α : Type u} :
Π {r : α → α → Prop}, set α → Prop

A chain c is a maximal chain if there does not exists a chain strictly including c.

Equations
def zorn.​succ_chain {α : Type u} :
Π {r : α → α → Prop}, set α → set α

Given a set c, if there exists a chain c' strictly including c, then succ_chain c is one of these chains. Otherwise it is c.

Equations
theorem zorn.​succ_spec {α : Type u} {r : α → α → Prop} {c : set α} :

theorem zorn.​chain_succ {α : Type u} {r : α → α → Prop} {c : set α} :

theorem zorn.​super_of_not_max {α : Type u} {r : α → α → Prop} {c : set α} :

theorem zorn.​succ_increasing {α : Type u} {r : α → α → Prop} {c : set α} :

inductive zorn.​chain_closure {α : Type u} :
Π {r : α → α → Prop}, set α → Prop

Set of sets reachable from ∅ using succ_chain and ⋃₀.

theorem zorn.​chain_closure_empty {α : Type u} {r : α → α → Prop} :

theorem zorn.​chain_closure_closure {α : Type u} {r : α → α → Prop} :

theorem zorn.​chain_closure_total {α : Type u} {r : α → α → Prop} {c₁ c₂ : set α} :
zorn.chain_closure c₁ → zorn.chain_closure c₂ → c₁ ⊆ c₂ ∨ c₂ ⊆ c₁

theorem zorn.​chain_closure_succ_fixpoint {α : Type u} {r : α → α → Prop} {c₁ c₂ : set α} :
zorn.chain_closure c₁ → zorn.chain_closure c₂ → zorn.succ_chain c₂ = c₂ → c₁ ⊆ c₂

theorem zorn.​chain_closure_succ_fixpoint_iff {α : Type u} {r : α → α → Prop} {c : set α} :

theorem zorn.​chain_chain_closure {α : Type u} {r : α → α → Prop} {c : set α} :

def zorn.​max_chain {α : Type u} :
Π {r : α → α → Prop}, set α

max_chain is the union of all sets in the chain closure.

Equations
theorem zorn.​max_chain_spec {α : Type u} {r : α → α → Prop} :

Hausdorff's maximality principle

There exists a maximal totally ordered subset of α. Note that we do not require α to be partially ordered by r.

theorem zorn.​exists_maximal_of_chains_bounded {α : Type u} {r : α → α → Prop} :
(∀ (c : set α), zorn.chain r c → (∃ (ub : α), ∀ (a : α), a ∈ c → r a ub)) → (∀ {a b c : α}, r a b → r b c → r a c) → (∃ (m : α), ∀ (a : α), r m a → r a m)

Zorn's lemma

If every chain has an upper bound, then there is a maximal element

theorem zorn.​zorn_partial_order {α : Type u} [partial_order α] :
(∀ (c : set α), zorn.chain has_le.le c → (∃ (ub : α), ∀ (a : α), a ∈ c → a ≤ ub)) → (∃ (m : α), ∀ (a : α), m ≤ a → a = m)

theorem zorn.​zorn_partial_order₀ {α : Type u} [partial_order α] (s : set α) (ih : ∀ (c : set α), c ⊆ s → zorn.chain has_le.le c → ∀ (y : α), y ∈ c → (∃ (ub : α) (H : ub ∈ s), ∀ (z : α), z ∈ c → z ≤ ub)) (x : α) :
x ∈ s → (∃ (m : α) (H : m ∈ s), x ≤ m ∧ ∀ (z : α), z ∈ s → m ≤ z → z = m)

theorem zorn.​zorn_subset {α : Type u} (S : set (set α)) :
(∀ (c : set (set α)), c ⊆ S → zorn.chain has_subset.subset c → (∃ (ub : set α) (H : ub ∈ S), ∀ (s : set α), s ∈ c → s ⊆ ub)) → (∃ (m : set α) (H : m ∈ S), ∀ (a : set α), a ∈ S → m ⊆ a → a = m)

theorem zorn.​zorn_subset₀ {α : Type u} (S : set (set α)) (H : ∀ (c : set (set α)), c ⊆ S → zorn.chain has_subset.subset c → c.nonempty → (∃ (ub : set α) (H : ub ∈ S), ∀ (s : set α), s ∈ c → s ⊆ ub)) (x : set α) :
x ∈ S → (∃ (m : set α) (H : m ∈ S), x ⊆ m ∧ ∀ (a : set α), a ∈ S → m ⊆ a → a = m)

theorem zorn.​chain.​total {α : Type u} [preorder α] {c : set α} (H : zorn.chain has_le.le c) {x y : α} :
x ∈ c → y ∈ c → x ≤ y ∨ y ≤ x

theorem zorn.​chain.​image {α : Type u_1} {β : Type u_2} (r : α → α → Prop) (s : β → β → Prop) (f : α → β) (h : ∀ (x y : α), r x y → s (f x) (f y)) {c : set α} :
zorn.chain r c → zorn.chain s (f '' c)

theorem directed_of_chain {α : Type u_1} {β : Type u_2} {r : β → β → Prop} [is_refl β r] {f : α → β} {c : set α} :
zorn.chain (f ⁻¹'o r) c → directed r (λ (x : {a // a ∈ c}), f ↑x)