def
definition
quotientEventMap
show as:
view math explainer →
open explainer
Read the cached plain-language explainer.
open lean source
IndisputableMonolith.RecogGeom.Quotient on GitHub at line 56.
browse module
All declarations in this module, on Recognition.
explainer page
depends on
used by
formal source
53/-! ## Event Map on Quotient -/
54
55/-- The event map factors through the quotient: R = R̄ ∘ π -/
56def quotientEventMap : RecognitionQuotient r → E :=
57 Quotient.lift r.R (fun _ _ h => h)
58
59/-- The quotient event map makes the diagram commute -/
60theorem quotientEventMap_spec (c : C) :
61 quotientEventMap r (recognitionQuotientMk r c) = r.R c := rfl
62
63/-- The quotient event map is injective -/
64theorem quotientEventMap_injective :
65 Function.Injective (quotientEventMap r) := by
66 intro q₁ q₂ h
67 obtain ⟨c₁, hc₁⟩ := Quotient.exists_rep q₁
68 obtain ⟨c₂, hc₂⟩ := Quotient.exists_rep q₂
69 simp only [← hc₁, ← hc₂] at h ⊢
70 -- h : quotientEventMap r ⟦c₁⟧ = quotientEventMap r ⟦c₂⟧
71 -- which means r.R c₁ = r.R c₂
72 apply Quotient.sound
73 exact h
74
75/-- The quotient is isomorphic to the image of R -/
76noncomputable def quotient_equiv_image :
77 RecognitionQuotient r ≃ Set.range r.R :=
78 Equiv.ofBijective
79 (fun q => ⟨quotientEventMap r q,
80 Quotient.inductionOn q (fun c => ⟨c, rfl⟩)⟩)
81 ⟨fun q₁ q₂ h => by
82 simp only [Subtype.mk.injEq] at h
83 exact quotientEventMap_injective r h,
84 fun ⟨e, c, hc⟩ => ⟨recognitionQuotientMk r c, by simp [quotientEventMap_spec, hc]⟩⟩
85
86/-! ## Lifting Functions to Quotient -/