{-
This file contains:
- the abelianization of groups as a HIT as proposed in https://arxiv.org/abs/2007.05833
The definition of the abelianization is not as a set-quotient, since the relation of abelianization is cumbersome to work with.
-}
{-# OPTIONS --safe #-}
module Cubical.Algebra.Group.Abelianization.Base where
open import Cubical.Data.Sigma
open import Cubical.Algebra.Group.Base
open import Cubical.Algebra.Group.Properties
private
variable
ℓ : Level
module _ (G : Group ℓ) where
open GroupStr {{...}}
open GroupTheory G
private
instance
_ = snd G
{-
The definition of the abelianization of a group as a higher inductive type.
The generality of the comm relation will be needed to define the group structure on the abelianization.
-}
data Abelianization : Type ℓ where
η : (g : fst G) → Abelianization
comm : (a b c : fst G) → η (a · (b · c)) ≡ η (a · (c · b))
isset : (x y : Abelianization) → (p q : x ≡ y) → p ≡ q