pith. machine review for the scientific record. sign in
def

ChainInfClosed

definition
show as:
view math explainer →
module
IndisputableMonolith.RecogGeom.ZornRefinement
domain
RecogGeom
line
153 · github
papers citing
none yet

open explainer

Read the cached plain-language explainer.

open lean source

IndisputableMonolith.RecogGeom.ZornRefinement on GitHub at line 153.

browse module

All declarations in this module, on Recognition.

explainer page

A cached Ask Recognition explainer exists for this declaration.

open explainer

depends on

formal source

 150
 151    If a family P is closed under chain infima, then for any chain in P,
 152    the infimum is in P. -/
 153def ChainInfClosed (P : Set (Setoid C)) : Prop :=
 154  ∀ (chain : Set (Setoid C)), chain ⊆ P → chain.Nonempty → IsChain (· ≤ ·) chain →
 155    sInf chain ∈ P
 156
 157/-- **Theorem (Zorn for Recognizers)**: Let P be a nonempty family of setoids
 158    on C that is closed under chain infima. Then P contains a minimal element—
 159    a finest recognizer-induced equivalence relation.
 160
 161    Formally: ∃ m ∈ P such that no s ∈ P is strictly finer than m.
 162
 163    This is the dual of Zorn's Lemma (existence of minimal elements):
 164    every chain has a lower bound (the infimum) ⟹ minimal element exists. -/
 165theorem maximal_recognizer_setoid_exists
 166    (P : Set (Setoid C))
 167    (hne : P.Nonempty)
 168    (hchain : ∀ (chain : Set (Setoid C)), chain ⊆ P → chain.Nonempty →
 169      IsChain (· ≤ ·) chain → ∃ lb ∈ P, ∀ s ∈ chain, lb ≤ s) :
 170    ∃ m ∈ P, ∀ s ∈ P, s ≤ m → m ≤ s := by
 171  -- Apply Zorn's Lemma in the ≤ order (where ≤ = "finer")
 172  -- We need: every chain has a lower bound → minimal element exists
 173  -- This is the standard dual Zorn formulation
 174  obtain ⟨m, hmP, hm⟩ := zorn_nonempty_partialOrder₀ P
 175    (fun chain hchain_sub hne_chain hchain_chain => by
 176      obtain ⟨lb, hlb_mem, hlb_bound⟩ := hchain chain.toSet hchain_sub
 177        ⟨hne_chain.some, hne_chain.some.2⟩
 178        (fun a ha b hb hab => hchain_chain ha.2 hb.2 (Subtype.coe_injective.ne hab))
 179      exact ⟨⟨lb, hlb_mem⟩, fun ⟨s, hs⟩ hs_chain => hlb_bound s hs_chain⟩)
 180    hne
 181  exact ⟨m, hmP, fun s hs hle => hm ⟨s, hs⟩ hle⟩
 182
 183/-! ## Section 6: Properties of Maximal Recognizers -/