theorem
proved
isFinerThan_refl
show as:
view math explainer →
open explainer
Generate a durable explainer page for this declaration.
open lean source
IndisputableMonolith.RecogGeom.ZornRefinement on GitHub at line 105.
browse module
All declarations in this module, on Recognition.
explainer page
depends on
used by
formal source
102 ∀ c₁ c₂ : C, Indistinguishable r₁ c₁ c₂ → Indistinguishable r₂ c₁ c₂
103
104/-- Refinement is reflexive. -/
105theorem isFinerThan_refl {E : Type*} (r : Recognizer C E) : IsFinerThan r r :=
106 fun _ _ h => h
107
108/-- Refinement is transitive. -/
109theorem isFinerThan_trans {E₁ E₂ E₃ : Type*}
110 (r₁ : Recognizer C E₁) (r₂ : Recognizer C E₂) (r₃ : Recognizer C E₃)
111 (h₁₂ : IsFinerThan r₁ r₂) (h₂₃ : IsFinerThan r₂ r₃) :
112 IsFinerThan r₁ r₃ :=
113 fun c₁ c₂ h => h₂₃ c₁ c₂ (h₁₂ c₁ c₂ h)
114
115/-- The composite is finer than both components. -/
116theorem composite_isFinerThan_left {E₁ E₂ : Type*}
117 (r₁ : Recognizer C E₁) (r₂ : Recognizer C E₂) :
118 IsFinerThan (r₁ ⊗ r₂) r₁ :=
119 fun c₁ c₂ h => ((composite_indistinguishable_iff r₁ r₂ c₁ c₂).mp h).1
120
121theorem composite_isFinerThan_right {E₁ E₂ : Type*}
122 (r₁ : Recognizer C E₁) (r₂ : Recognizer C E₂) :
123 IsFinerThan (r₁ ⊗ r₂) r₂ :=
124 fun c₁ c₂ h => ((composite_indistinguishable_iff r₁ r₂ c₁ c₂).mp h).2
125
126/-- The composite is the coarsest recognizer finer than both components. -/
127theorem composite_isFinerThan_glb {E₁ E₂ E₃ : Type*}
128 (r₁ : Recognizer C E₁) (r₂ : Recognizer C E₂) (r₃ : Recognizer C E₃)
129 (h₁ : IsFinerThan r₃ r₁) (h₂ : IsFinerThan r₃ r₂) :
130 IsFinerThan r₃ (r₁ ⊗ r₂) :=
131 fun c₁ c₂ h => (composite_indistinguishable_iff r₁ r₂ c₁ c₂).mpr ⟨h₁ c₁ c₂ h, h₂ c₁ c₂ h⟩
132
133/-! ## Section 5: Zorn's Lemma — Existence of Maximal Recognizers
134
135We work in the lattice of setoids on C (which Mathlib provides).