--------------------------------------------------------------------------------
Ettore Aldrovandi ealdrovandi@fsu.edu
Keri D'Angelo kd349@cornell.edu
March 15, 2022
--------------------------------------------------------------------------------
Following P. Aluffi, "Algebra: Chapter 0," we consider
equivalence relations that are left- and right-invariant.
If $X$ is a group, the quotient by such an equivalence
relation is again a group.
In particular this is true for the equivalence relation arising from
the standard condition that the image of a group homomorphism be
normal in the target. The quotient is then the cokernel of the
homomorphism (see cokernel.lagda)
TODO: adapt to use (small) quotients defined in UF-Quotient
\begin{code}
{-# OPTIONS --safe --without-K #-}
open import MLTT.Spartan
open import Quotient.Type
open import UF.FunExt
open import UF.PropTrunc
open import UF.Sets
module Groups.Quotient
(pt : propositional-truncations-exist)
(fe : Fun-Ext)
(sq : set-quotients-exist)
where
open general-set-quotients-exist sq
open import UF.ImageAndSurjection pt
open import Groups.Type renaming (_≅_ to _≣_)
\end{code}
A relation ≈ on the underlying space ⟨ X ⟩ is left-invariant if
∀ g → a ≈ b → ga ≈ gb
Similarly, it is right-invariant if
∀ g → a ≈ b → ag ≈ bg
\begin{code}
module _ {𝓤 𝓥 : Universe} (X : Group 𝓤) ((_≈_ , ≈p , ≈r , ≈s , ≈t) : EqRel {𝓤} {𝓥} ⟨ X ⟩ ) where
open PropositionalTruncation pt
≈left-invariant : _
≈left-invariant = (a b g : ⟨ X ⟩) → a ≈ b → (g · a) ≈ (g · b)
where
_·_ = multiplication X
≈left-invariant₁ : _
≈left-invariant₁ = {a b g : ⟨ X ⟩} → a ≈ b → (g · a) ≈ (g · b)
where
_·_ = multiplication X
≈right-invariant : _
≈right-invariant = (a b g : ⟨ X ⟩) → a ≈ b → (a · g) ≈ (b · g)
where
_·_ = multiplication X
≈right-invariant₁ : _
≈right-invariant₁ = {a b g : ⟨ X ⟩} → a ≈ b → (a · g) ≈ (b · g)
where
_·_ = multiplication X
\end{code}
Relations that are both left- and right-invariant permit the
definition of quotient group under the given equivalence relation. The
left and right invariance conditions together imply that the relation
is compatible with the product and with taking the inverse.
\begin{code}
module GroupQuotient (≈li : ≈left-invariant)
(≈ri : ≈right-invariant) where
private
≋ : EqRel ⟨ X ⟩
≋ = (_≈_ , ≈p , ≈r , ≈s , ≈t)
binop-cong : {x₁ x₂ x₁' x₂' : ⟨ X ⟩}
→ x₁ ≈ x₁' → x₂ ≈ x₂'
→ (x₁ ·⟨ X ⟩ x₂) ≈ (x₁' ·⟨ X ⟩ x₂')
binop-cong {x₁} {x₂} {x₁'} {x₂'} u₁ u₂ = ≈t (x₁ · x₂) (x₁ · x₂') (x₁' · x₂') p₁ p₂
where
_·_ = multiplication X
p₁ : (x₁ · x₂) ≈ (x₁ · x₂')
p₁ = ≈li _ _ x₁ u₂
p₂ : (x₁ · x₂') ≈ (x₁' · x₂')
p₂ = ≈ri _ _ x₂' u₁
\end{code}
\texttt{id-implies-related} below says that two equal terms must be
related. It should be part of \texttt{GeneralNotation.lagda}, or
closer to general facts about equivalence relations.
\begin{code}
inv-cong : {x y : ⟨ X ⟩} → x ≈ y → inv X x ≈ inv X y
inv-cong {x} {y} p = ≈t x' (x' ·⟨ X ⟩ (y ·⟨ X ⟩ y')) y'
I' (≈t (x' ·⟨ X ⟩ (y ·⟨ X ⟩ y')) ((x' ·⟨ X ⟩ y) ·⟨ X ⟩ y') y' III II')
where
id-implies-related : ∀ {x y} → x = y → x ≈ y
id-implies-related {x} {.x} refl = ≈r x
x' y' e : ⟨ X ⟩
x' = inv X x
y' = inv X y
e = unit X
I : e ≈ (y ·⟨ X ⟩ y')
I = id-implies-related ((inv-right X y) ⁻¹)
I' : x' ≈ (x' ·⟨ X ⟩ (y ·⟨ X ⟩ y'))
I' = ≈t x' (x' ·⟨ X ⟩ e) ((x' ·⟨ X ⟩ (y ·⟨ X ⟩ y'))) (id-implies-related ((unit-right X x') ⁻¹)) (≈li _ _ _ I)
II : (x' ·⟨ X ⟩ y) ≈ e
II = ≈t (x' ·⟨ X ⟩ y) (x' ·⟨ X ⟩ x) e (≈li _ _ _ (≈s _ _ p)) (id-implies-related (inv-left X x))
II' : ((x' ·⟨ X ⟩ y) ·⟨ X ⟩ y') ≈ y'
II' = ≈t ((x' ·⟨ X ⟩ y) ·⟨ X ⟩ y') (e ·⟨ X ⟩ y') y' (≈ri _ _ _ II) (id-implies-related (unit-left X y'))
III : (x' ·⟨ X ⟩ (y ·⟨ X ⟩ y')) ≈ ((x' ·⟨ X ⟩ y) ·⟨ X ⟩ y')
III = id-implies-related ((assoc X _ _ _) ⁻¹)
quotient-gr : Group _
quotient-gr = X≈ , _·_ , is-set-X≈ , assoc≈ , e≈ , ln≈ , rn≈ , λ x → inv≈ x , (inv-left≈ x , inv-right≈ x)
where
X≈ : _
X≈ = ⟨ X ⟩ / ≋
π≈ : _
π≈ = η/ ≋
π≈-is-surjection : is-surjection π≈
π≈-is-surjection = η/-is-surjection ≋ pt
_·_ : group-structure X≈
_·_ = extension₂/ ≋ (multiplication X) binop-cong
·-natural : (x y : ⟨ X ⟩) → π≈ x · π≈ y = π≈ (x ·⟨ X ⟩ y)
·-natural = λ x y → naturality₂/ ≋ (multiplication X) binop-cong x y
is-set-X≈ : is-set X≈
is-set-X≈ = /-is-set ≋
assoc≈ : associative _·_
assoc≈ = /-induction₃ fe ≋ (λ x' y' z' → is-set-X≈) γ
where
γ : (s t z : ⟨ X ⟩) → ((π≈ s · π≈ t) · π≈ z) = (π≈ s · (π≈ t · π≈ z))
γ s t z = ((π≈ s · π≈ t) · π≈ z) =⟨ ap (λ v → v · π≈ z) (·-natural s t) ⟩
π≈ (s ·⟨ X ⟩ t) · π≈ z =⟨ ·-natural (s ·⟨ X ⟩ t) z ⟩
π≈ ((s ·⟨ X ⟩ t) ·⟨ X ⟩ z) =⟨ ap π≈ (assoc X s t z) ⟩
π≈ (s ·⟨ X ⟩ (t ·⟨ X ⟩ z)) =⟨ ·-natural s (t ·⟨ X ⟩ z) ⁻¹ ⟩
π≈ s · π≈ (t ·⟨ X ⟩ z) =⟨ ap (λ v → π≈ s · v) (·-natural t z ⁻¹) ⟩
(π≈ s · (π≈ t · π≈ z)) ∎
e≈ : X≈
e≈ = π≈ (unit X)
ln≈ : left-neutral e≈ _·_
ln≈ = /-induction ≋ (λ _ → /-is-set ≋) γ
where
γ : (x : ⟨ X ⟩) → π≈ (unit X) · π≈ x = π≈ x
γ x = π≈ (unit X) · π≈ x =⟨ ·-natural (unit X) x ⟩
π≈ ((unit X) ·⟨ X ⟩ x) =⟨ ap π≈ (unit-left X x) ⟩
π≈ x ∎
rn≈ : right-neutral e≈ _·_
rn≈ = /-induction ≋ (λ _ → /-is-set ≋) γ
where
γ : (x : ⟨ X ⟩) → π≈ x · π≈ (unit X) = π≈ x
γ x = π≈ x · π≈ (unit X) =⟨ ·-natural x (unit X) ⟩
π≈ (x ·⟨ X ⟩ (unit X)) =⟨ ap π≈ (unit-right X x) ⟩
π≈ x ∎
inv≈ : X≈ → X≈
inv≈ = extension₁/ ≋ (inv X) inv-cong
inv-left≈ : (x : X≈) → (inv≈ x · x) = e≈
inv-left≈ = /-induction ≋ (λ _ → /-is-set ≋) γ
where
γ : (x : ⟨ X ⟩) → (inv≈ (π≈ x) · π≈ x) = e≈
γ x = inv≈ (π≈ x) · π≈ x =⟨ ap (λ v → v · π≈ x) (naturality/ ≋ (inv X) inv-cong x) ⟩
π≈ (inv X x) · π≈ x =⟨ ·-natural (inv X x) x ⟩
π≈ (inv X x ·⟨ X ⟩ x) =⟨ ap π≈ (inv-left X x) ⟩
e≈ ∎
inv-right≈ : (x : X≈) → (x · inv≈ x) = e≈
inv-right≈ = /-induction ≋ (λ _ → /-is-set ≋) γ
where
γ : (x : ⟨ X ⟩) → (π≈ x · inv≈ (π≈ x)) = e≈
γ x = π≈ x · inv≈ (π≈ x) =⟨ ap (λ v → π≈ x · v) (naturality/ ≋ (inv X) inv-cong x) ⟩
π≈ x · π≈ (inv X x) =⟨ ·-natural x (inv X x) ⟩
π≈ (x ·⟨ X ⟩ inv X x) =⟨ ap π≈ (inv-right X x) ⟩
e≈ ∎
\end{code}
The quotient map π≈ is a homomorphism.
FIXME: This fact has been already proven within the definition of the
quotient, so we just repeat that. We should rewrite this in a more
economical/elegant way, without repeating the proof.
\begin{code}
quotient-map-is-hom : is-hom X quotient-gr (η/ ≋)
quotient-map-is-hom {x} {y} = (naturality₂/ ≋ (multiplication X) binop-cong x y ) ⁻¹
\end{code}
On possible formulation of the universal property of quotients is that
if
φ : X → G
is a homomorphism such that φ (x) = φ (y) whenever x ≈ y, then there
is a unique factorization with a homomorphism
φ≈ : X≈ → G
So we prove the map in the universality triangle is a homomorphism.
\begin{code}
module _ {𝓦 : Universe}
(G : Group 𝓦)
(φ : ⟨ X ⟩ → ⟨ G ⟩)
(i : is-hom X G φ)
(p : identifies-related-points ≋ φ)
where
φ≈ : ⟨ quotient-gr ⟩ → ⟨ G ⟩
φ≈ = mediating-map/ ≋ (groups-are-sets G) φ p
mediating-map-is-hom : is-hom quotient-gr G φ≈
mediating-map-is-hom {x} {y} = δ x y
where
X≈ : _
X≈ = ⟨ quotient-gr ⟩
π≈ : _
π≈ = η/ ≋
β : (s : ⟨ X ⟩) → φ≈ (π≈ s) = φ (s)
β s = universality-triangle/ ≋ _ φ _ s
γ : (s t : ⟨ X ⟩) → φ≈ ((π≈ s) ·⟨ quotient-gr ⟩ (π≈ t)) = (φ≈ (π≈ s) ·⟨ G ⟩ φ≈ (π≈ t))
γ s t = φ≈ ((π≈ s) ·⟨ quotient-gr ⟩ (π≈ t)) =⟨ ap φ≈ (quotient-map-is-hom) ⁻¹ ⟩
φ≈ (π≈ (s ·⟨ X ⟩ t)) =⟨ β _ ⟩
φ (s ·⟨ X ⟩ t) =⟨ i ⟩
φ (s) ·⟨ G ⟩ φ (t) =⟨ ap (λ v → v ·⟨ G ⟩ φ (t)) (β s) ⁻¹ ⟩
φ≈ (π≈ s) ·⟨ G ⟩ φ (t) =⟨ ap (λ v → φ≈ (π≈ s) ·⟨ G ⟩ v) (β t) ⁻¹ ⟩
φ≈ (π≈ s) ·⟨ G ⟩ φ≈ (π≈ t) ∎
δ : (x y : X≈) → φ≈ (x ·⟨ quotient-gr ⟩ y) = (φ≈ x) ·⟨ G ⟩ (φ≈ y)
δ = /-induction₂ fe ≋ (λ x' y' → groups-are-sets G) γ
\end{code}