File: Mathlib/Order/Zorn.lean

full_name: «_aux_Mathlib_Order_Zorn___macroRules_term_≺__1»
code: /-- Local notation for the relation being considered. -/
local infixl:50 " ≺ " => r
goal: Lean.Macro

full_name: exists_maximal_of_chains_bounded
code: /-- **Zorn's lemma**

If every chain has an upper bound, then there exists a maximal element. -/
theorem exists_maximal_of_chains_bounded (h : ∀ c, IsChain r c → ∃ ub, ∀ a ∈ c, a ≺ ub)
    (trans : ∀ {a b c}, a ≺ b → b ≺ c → a ≺ c) : ∃ m, ∀ a, m ≺ a → a ≺ m 
goal: ∃ m, ∀ (a : α), r m a → r a m

full_name: exists_maximal_of_nonempty_chains_bounded
code: /-- A variant of Zorn's lemma. If every nonempty chain of a nonempty type has an upper bound, then
there is a maximal element.
-/
theorem exists_maximal_of_nonempty_chains_bounded [Nonempty α]
    (h : ∀ c, IsChain r c → c.Nonempty → ∃ ub, ∀ a ∈ c, a ≺ ub)
    (trans : ∀ {a b c}, a ≺ b → b ≺ c → a ≺ c) : ∃ m, ∀ a, m ≺ a → a ≺ m 
goal: ∃ m, ∀ (a : α), r m a → r a m

full_name: zorn_preorder
code: theorem zorn_preorder (h : ∀ c : Set α, IsChain (· ≤ ·) c → BddAbove c) :
    ∃ m : α, ∀ a, m ≤ a → a ≤ m 
goal: ∃ m, ∀ (a : α), m ≤ a → a ≤ m

full_name: zorn_nonempty_preorder
code: theorem zorn_nonempty_preorder [Nonempty α]
    (h : ∀ c : Set α, IsChain (· ≤ ·) c → c.Nonempty → BddAbove c) : ∃ m : α, ∀ a, m ≤ a → a ≤ m 
goal: ∃ m, ∀ (a : α), m ≤ a → a ≤ m

full_name: zorn_preorder₀
code: theorem zorn_preorder₀ (s : Set α)
    (ih : ∀ c ⊆ s, IsChain (· ≤ ·) c → ∃ ub ∈ s, ∀ z ∈ c, z ≤ ub) :
    ∃ m ∈ s, ∀ z ∈ s, m ≤ z → z ≤ m 
goal: ∃ m ∈ s, ∀ z ∈ s, m ≤ z → z ≤ m

full_name: zorn_nonempty_preorder₀
code: theorem zorn_nonempty_preorder₀ (s : Set α)
    (ih : ∀ c ⊆ s, IsChain (· ≤ ·) c → ∀ y ∈ c, ∃ ub ∈ s, ∀ z ∈ c, z ≤ ub) (x : α)
    (hxs : x ∈ s) : ∃ m ∈ s, x ≤ m ∧ ∀ z ∈ s, m ≤ z → z ≤ m 
goal: ∃ m ∈ s, x ≤ m ∧ ∀ z ∈ s, m ≤ z → z ≤ m

full_name: zorn_nonempty_Ici₀
code: theorem zorn_nonempty_Ici₀ (a : α)
    (ih : ∀ c ⊆ Ici a, IsChain (· ≤ ·) c → ∀ y ∈ c, ∃ ub, ∀ z ∈ c, z ≤ ub)
    (x : α) (hax : a ≤ x) : ∃ m, x ≤ m ∧ ∀ z, m ≤ z → z ≤ m 
goal: ∃ m, x ≤ m ∧ ∀ (z : α), m ≤ z → z ≤ m

full_name: zorn_partialOrder
code: theorem zorn_partialOrder (h : ∀ c : Set α, IsChain (· ≤ ·) c → BddAbove c) :
    ∃ m : α, ∀ a, m ≤ a → a = m 
goal: ∃ m, ∀ (a : α), m ≤ a → a = m

full_name: zorn_nonempty_partialOrder
code: theorem zorn_nonempty_partialOrder [Nonempty α]
    (h : ∀ c : Set α, IsChain (· ≤ ·) c → c.Nonempty → BddAbove c) : ∃ m : α, ∀ a, m ≤ a → a = m 
goal: ∃ m, ∀ (a : α), m ≤ a → a = m

full_name: zorn_partialOrder₀
code: theorem zorn_partialOrder₀ (s : Set α)
    (ih : ∀ c ⊆ s, IsChain (· ≤ ·) c → ∃ ub ∈ s, ∀ z ∈ c, z ≤ ub) :
    ∃ m ∈ s, ∀ z ∈ s, m ≤ z → z = m 
goal: ∃ m ∈ s, ∀ z ∈ s, m ≤ z → z = m

full_name: zorn_nonempty_partialOrder₀
code: theorem zorn_nonempty_partialOrder₀ (s : Set α)
    (ih : ∀ c ⊆ s, IsChain (· ≤ ·) c → ∀ y ∈ c, ∃ ub ∈ s, ∀ z ∈ c, z ≤ ub) (x : α)
    (hxs : x ∈ s) : ∃ m ∈ s, x ≤ m ∧ ∀ z ∈ s, m ≤ z → z = m 
goal: ∃ m ∈ s, x ≤ m ∧ ∀ z ∈ s, m ≤ z → z = m

full_name: zorn_subset
code: theorem zorn_subset (S : Set (Set α))
    (h : ∀ c ⊆ S, IsChain (· ⊆ ·) c → ∃ ub ∈ S, ∀ s ∈ c, s ⊆ ub) :
    ∃ m ∈ S, ∀ a ∈ S, m ⊆ a → a = m 
goal: ∃ m ∈ S, ∀ a ∈ S, m ⊆ a → a = m

full_name: zorn_subset_nonempty
code: theorem zorn_subset_nonempty (S : Set (Set α))
    (H : ∀ c ⊆ S, IsChain (· ⊆ ·) c → c.Nonempty → ∃ ub ∈ S, ∀ s ∈ c, s ⊆ ub) (x)
    (hx : x ∈ S) : ∃ m ∈ S, x ⊆ m ∧ ∀ a ∈ S, m ⊆ a → a = m 
goal: ∃ m ∈ S, x ⊆ m ∧ ∀ a ∈ S, m ⊆ a → a = m

full_name: zorn_superset
code: theorem zorn_superset (S : Set (Set α))
    (h : ∀ c ⊆ S, IsChain (· ⊆ ·) c → ∃ lb ∈ S, ∀ s ∈ c, lb ⊆ s) :
    ∃ m ∈ S, ∀ a ∈ S, a ⊆ m → a = m 
goal: ∃ m ∈ S, ∀ a ∈ S, a ⊆ m → a = m

full_name: zorn_superset_nonempty
code: theorem zorn_superset_nonempty (S : Set (Set α))
    (H : ∀ c ⊆ S, IsChain (· ⊆ ·) c → c.Nonempty → ∃ lb ∈ S, ∀ s ∈ c, lb ⊆ s) (x)
    (hx : x ∈ S) : ∃ m ∈ S, m ⊆ x ∧ ∀ a ∈ S, a ⊆ m → a = m 
goal: ∃ m ∈ S, m ⊆ x ∧ ∀ a ∈ S, a ⊆ m → a = m

full_name: IsChain.exists_maxChain
code: /-- Every chain is contained in a maximal chain. This generalizes Hausdorff's maximality principle.
-/
theorem IsChain.exists_maxChain (hc : IsChain r c) : ∃ M, @IsMaxChain _ r M ∧ c ⊆ M 
goal: ∃ M, IsMaxChain r M ∧ c ⊆ M