Normal submonoids of commutative monoids
module group-theory.normal-submonoids-commutative-monoids where
Imports
open import foundation.binary-relations open import foundation.dependent-pair-types open import foundation.equivalence-relations open import foundation.equivalences open import foundation.functions open import foundation.identity-types open import foundation.logical-equivalences open import foundation.propositions open import foundation.retractions open import foundation.sets open import foundation.subtype-identity-principle open import foundation.subtypes open import foundation.universe-levels open import group-theory.commutative-monoids open import group-theory.congruence-relations-commutative-monoids open import group-theory.monoids open import group-theory.saturated-congruence-relations-commutative-monoids open import group-theory.semigroups open import group-theory.submonoids-commutative-monoids open import group-theory.subsets-commutative-monoids
Idea
A normal submonoid N
of of a commutative monoid M
is a submonoid that
corresponds uniquely to a saturated congruence relation ~
on M
consisting of
the elements congruent to 1
. This is the case if and only if for all x : M
and u : N
we have
xu ∈ N → x ∈ N
Definitions
Normal submonoids of commutative monoids
module _ {l1 l2 : Level} (M : Commutative-Monoid l1) (N : Commutative-Submonoid l2 M) where is-normal-commutative-submonoid-Prop : Prop (l1 ⊔ l2) is-normal-commutative-submonoid-Prop = Π-Prop ( type-Commutative-Monoid M) ( λ x → Π-Prop ( type-Commutative-Monoid M) ( λ u → function-Prop ( is-in-Commutative-Submonoid M N u) ( function-Prop ( is-in-Commutative-Submonoid M N ( mul-Commutative-Monoid M x u)) ( subset-Commutative-Submonoid M N x)))) is-normal-Commutative-Submonoid : UU (l1 ⊔ l2) is-normal-Commutative-Submonoid = type-Prop is-normal-commutative-submonoid-Prop is-prop-is-normal-Commutative-Submonoid : is-prop is-normal-Commutative-Submonoid is-prop-is-normal-Commutative-Submonoid = is-prop-type-Prop is-normal-commutative-submonoid-Prop Normal-Commutative-Submonoid : {l1 : Level} (l2 : Level) → Commutative-Monoid l1 → UU (l1 ⊔ lsuc l2) Normal-Commutative-Submonoid l2 M = Σ (Commutative-Submonoid l2 M) (is-normal-Commutative-Submonoid M) module _ {l1 l2 : Level} (M : Commutative-Monoid l1) (N : Normal-Commutative-Submonoid l2 M) where submonoid-Normal-Commutative-Submonoid : Commutative-Submonoid l2 M submonoid-Normal-Commutative-Submonoid = pr1 N is-normal-Normal-Commutative-Submonoid : is-normal-Commutative-Submonoid M submonoid-Normal-Commutative-Submonoid is-normal-Normal-Commutative-Submonoid = pr2 N subset-Normal-Commutative-Submonoid : subtype l2 (type-Commutative-Monoid M) subset-Normal-Commutative-Submonoid = subset-Commutative-Submonoid M submonoid-Normal-Commutative-Submonoid is-submonoid-Normal-Commutative-Submonoid : is-submonoid-Commutative-Monoid M subset-Normal-Commutative-Submonoid is-submonoid-Normal-Commutative-Submonoid = is-submonoid-Commutative-Submonoid M submonoid-Normal-Commutative-Submonoid is-in-Normal-Commutative-Submonoid : type-Commutative-Monoid M → UU l2 is-in-Normal-Commutative-Submonoid = is-in-Commutative-Submonoid M submonoid-Normal-Commutative-Submonoid is-prop-is-in-Normal-Commutative-Submonoid : (x : type-Commutative-Monoid M) → is-prop (is-in-Normal-Commutative-Submonoid x) is-prop-is-in-Normal-Commutative-Submonoid = is-prop-is-in-Commutative-Submonoid M submonoid-Normal-Commutative-Submonoid is-closed-under-eq-Normal-Commutative-Submonoid : {x y : type-Commutative-Monoid M} → is-in-Normal-Commutative-Submonoid x → (x = y) → is-in-Normal-Commutative-Submonoid y is-closed-under-eq-Normal-Commutative-Submonoid = is-closed-under-eq-subtype subset-Normal-Commutative-Submonoid is-closed-under-eq-Normal-Commutative-Submonoid' : {x y : type-Commutative-Monoid M} → is-in-Normal-Commutative-Submonoid y → (x = y) → is-in-Normal-Commutative-Submonoid x is-closed-under-eq-Normal-Commutative-Submonoid' = is-closed-under-eq-subtype' subset-Normal-Commutative-Submonoid type-Normal-Commutative-Submonoid : UU (l1 ⊔ l2) type-Normal-Commutative-Submonoid = type-Commutative-Submonoid M submonoid-Normal-Commutative-Submonoid is-set-type-Normal-Commutative-Submonoid : is-set type-Normal-Commutative-Submonoid is-set-type-Normal-Commutative-Submonoid = is-set-type-Commutative-Submonoid M submonoid-Normal-Commutative-Submonoid set-Normal-Commutative-Submonoid : Set (l1 ⊔ l2) set-Normal-Commutative-Submonoid = set-Commutative-Submonoid M submonoid-Normal-Commutative-Submonoid inclusion-Normal-Commutative-Submonoid : type-Normal-Commutative-Submonoid → type-Commutative-Monoid M inclusion-Normal-Commutative-Submonoid = inclusion-Commutative-Submonoid M submonoid-Normal-Commutative-Submonoid ap-inclusion-Normal-Commutative-Submonoid : (x y : type-Normal-Commutative-Submonoid) → x = y → inclusion-Normal-Commutative-Submonoid x = inclusion-Normal-Commutative-Submonoid y ap-inclusion-Normal-Commutative-Submonoid = ap-inclusion-Commutative-Submonoid M submonoid-Normal-Commutative-Submonoid is-in-submonoid-inclusion-Normal-Commutative-Submonoid : (x : type-Normal-Commutative-Submonoid) → is-in-Normal-Commutative-Submonoid ( inclusion-Normal-Commutative-Submonoid x) is-in-submonoid-inclusion-Normal-Commutative-Submonoid = is-in-submonoid-inclusion-Commutative-Submonoid M submonoid-Normal-Commutative-Submonoid contains-unit-Normal-Commutative-Submonoid : is-in-Normal-Commutative-Submonoid (unit-Commutative-Monoid M) contains-unit-Normal-Commutative-Submonoid = contains-unit-Commutative-Submonoid M submonoid-Normal-Commutative-Submonoid unit-Normal-Commutative-Submonoid : type-Normal-Commutative-Submonoid unit-Normal-Commutative-Submonoid = unit-Commutative-Submonoid M submonoid-Normal-Commutative-Submonoid is-closed-under-mul-Normal-Commutative-Submonoid : {x y : type-Commutative-Monoid M} → is-in-Normal-Commutative-Submonoid x → is-in-Normal-Commutative-Submonoid y → is-in-Normal-Commutative-Submonoid (mul-Commutative-Monoid M x y) is-closed-under-mul-Normal-Commutative-Submonoid = is-closed-under-mul-Commutative-Submonoid M submonoid-Normal-Commutative-Submonoid mul-Normal-Commutative-Submonoid : (x y : type-Normal-Commutative-Submonoid) → type-Normal-Commutative-Submonoid mul-Normal-Commutative-Submonoid = mul-Commutative-Submonoid M submonoid-Normal-Commutative-Submonoid associative-mul-Normal-Commutative-Submonoid : (x y z : type-Normal-Commutative-Submonoid) → ( mul-Normal-Commutative-Submonoid ( mul-Normal-Commutative-Submonoid x y) ( z)) = ( mul-Normal-Commutative-Submonoid x ( mul-Normal-Commutative-Submonoid y z)) associative-mul-Normal-Commutative-Submonoid = associative-mul-Commutative-Submonoid M submonoid-Normal-Commutative-Submonoid semigroup-Normal-Commutative-Submonoid : Semigroup (l1 ⊔ l2) semigroup-Normal-Commutative-Submonoid = semigroup-Commutative-Submonoid M submonoid-Normal-Commutative-Submonoid left-unit-law-mul-Normal-Commutative-Submonoid : (x : type-Normal-Commutative-Submonoid) → mul-Normal-Commutative-Submonoid unit-Normal-Commutative-Submonoid x = x left-unit-law-mul-Normal-Commutative-Submonoid = left-unit-law-mul-Commutative-Submonoid M submonoid-Normal-Commutative-Submonoid right-unit-law-mul-Normal-Commutative-Submonoid : (x : type-Normal-Commutative-Submonoid) → mul-Normal-Commutative-Submonoid x unit-Normal-Commutative-Submonoid = x right-unit-law-mul-Normal-Commutative-Submonoid = right-unit-law-mul-Commutative-Submonoid M submonoid-Normal-Commutative-Submonoid commutative-mul-Normal-Commutative-Submonoid : (x y : type-Normal-Commutative-Submonoid) → mul-Normal-Commutative-Submonoid x y = mul-Normal-Commutative-Submonoid y x commutative-mul-Normal-Commutative-Submonoid = commutative-mul-Commutative-Submonoid M submonoid-Normal-Commutative-Submonoid monoid-Normal-Commutative-Submonoid : Monoid (l1 ⊔ l2) monoid-Normal-Commutative-Submonoid = monoid-Commutative-Submonoid M submonoid-Normal-Commutative-Submonoid commutative-monoid-Normal-Commutative-Submonoid : Commutative-Monoid (l1 ⊔ l2) commutative-monoid-Normal-Commutative-Submonoid = commutative-monoid-Commutative-Submonoid M submonoid-Normal-Commutative-Submonoid
Properties
Extensionality of the type of all normal submonoids
module _ {l1 l2 : Level} (M : Commutative-Monoid l1) (N : Normal-Commutative-Submonoid l2 M) where has-same-elements-Normal-Commutative-Submonoid : {l3 : Level} → Normal-Commutative-Submonoid l3 M → UU (l1 ⊔ l2 ⊔ l3) has-same-elements-Normal-Commutative-Submonoid K = has-same-elements-Commutative-Submonoid M ( submonoid-Normal-Commutative-Submonoid M N) ( submonoid-Normal-Commutative-Submonoid M K) extensionality-Normal-Commutative-Submonoid : (K : Normal-Commutative-Submonoid l2 M) → (N = K) ≃ has-same-elements-Normal-Commutative-Submonoid K extensionality-Normal-Commutative-Submonoid = extensionality-type-subtype ( is-normal-commutative-submonoid-Prop M) ( is-normal-Normal-Commutative-Submonoid M N) ( λ x → (id , id)) ( extensionality-Commutative-Submonoid M ( submonoid-Normal-Commutative-Submonoid M N)) eq-has-same-elements-Normal-Commutative-Submonoid : (K : Normal-Commutative-Submonoid l2 M) → has-same-elements-Normal-Commutative-Submonoid K → N = K eq-has-same-elements-Normal-Commutative-Submonoid K = map-inv-equiv (extensionality-Normal-Commutative-Submonoid K)
The congruence relation of a normal submonoid
module _ {l1 l2 : Level} (M : Commutative-Monoid l1) (N : Normal-Commutative-Submonoid l2 M) where rel-congruence-Normal-Commutative-Submonoid : Rel-Prop (l1 ⊔ l2) (type-Commutative-Monoid M) rel-congruence-Normal-Commutative-Submonoid x y = Π-Prop ( type-Commutative-Monoid M) ( λ u → iff-Prop ( subset-Normal-Commutative-Submonoid M N ( mul-Commutative-Monoid M u x)) ( subset-Normal-Commutative-Submonoid M N ( mul-Commutative-Monoid M u y))) sim-congruence-Normal-Commutative-Submonoid : (x y : type-Commutative-Monoid M) → UU (l1 ⊔ l2) sim-congruence-Normal-Commutative-Submonoid x y = type-Prop (rel-congruence-Normal-Commutative-Submonoid x y) refl-congruence-Normal-Commutative-Submonoid : is-reflexive-Rel-Prop rel-congruence-Normal-Commutative-Submonoid pr1 (refl-congruence-Normal-Commutative-Submonoid u) = id pr2 (refl-congruence-Normal-Commutative-Submonoid u) = id symmetric-congruence-Normal-Commutative-Submonoid : is-symmetric-Rel-Prop rel-congruence-Normal-Commutative-Submonoid pr1 (symmetric-congruence-Normal-Commutative-Submonoid H u) = pr2 (H u) pr2 (symmetric-congruence-Normal-Commutative-Submonoid H u) = pr1 (H u) transitive-congruence-Normal-Commutative-Submonoid : is-transitive-Rel-Prop rel-congruence-Normal-Commutative-Submonoid transitive-congruence-Normal-Commutative-Submonoid H K u = (K u) ∘iff (H u) eq-rel-congruence-Normal-Commutative-Submonoid : Eq-Rel (l1 ⊔ l2) (type-Commutative-Monoid M) pr1 eq-rel-congruence-Normal-Commutative-Submonoid = rel-congruence-Normal-Commutative-Submonoid pr1 (pr2 eq-rel-congruence-Normal-Commutative-Submonoid) = refl-congruence-Normal-Commutative-Submonoid pr1 (pr2 (pr2 eq-rel-congruence-Normal-Commutative-Submonoid)) = symmetric-congruence-Normal-Commutative-Submonoid pr2 (pr2 (pr2 eq-rel-congruence-Normal-Commutative-Submonoid)) = transitive-congruence-Normal-Commutative-Submonoid is-congruence-congruence-Normal-Commutative-Submonoid : is-congruence-Commutative-Monoid M eq-rel-congruence-Normal-Commutative-Submonoid pr1 ( is-congruence-congruence-Normal-Commutative-Submonoid {x} {x'} {y} {y'} H K u) ( L) = is-closed-under-eq-Normal-Commutative-Submonoid M N ( forward-implication ( K (mul-Commutative-Monoid M u x')) ( is-closed-under-eq-Normal-Commutative-Submonoid M N ( forward-implication ( H (mul-Commutative-Monoid M u y)) ( is-closed-under-eq-Normal-Commutative-Submonoid M N L ( ( inv (associative-mul-Commutative-Monoid M u x y)) ∙ ( right-swap-mul-Commutative-Monoid M u x y)))) ( right-swap-mul-Commutative-Monoid M u y x'))) ( associative-mul-Commutative-Monoid M u x' y') pr2 ( is-congruence-congruence-Normal-Commutative-Submonoid {x} {x'} {y} {y'} H K u) ( L) = is-closed-under-eq-Normal-Commutative-Submonoid M N ( backward-implication ( K (mul-Commutative-Monoid M u x)) ( is-closed-under-eq-Normal-Commutative-Submonoid M N ( backward-implication ( H (mul-Commutative-Monoid M u y')) ( is-closed-under-eq-Normal-Commutative-Submonoid M N L ( ( inv (associative-mul-Commutative-Monoid M u x' y')) ∙ ( right-swap-mul-Commutative-Monoid M u x' y')))) ( right-swap-mul-Commutative-Monoid M u y' x))) ( associative-mul-Commutative-Monoid M u x y) congruence-Normal-Commutative-Submonoid : congruence-Commutative-Monoid (l1 ⊔ l2) M pr1 congruence-Normal-Commutative-Submonoid = eq-rel-congruence-Normal-Commutative-Submonoid pr2 congruence-Normal-Commutative-Submonoid = is-congruence-congruence-Normal-Commutative-Submonoid
The normal submonoid obtained from a congruence relation
module _ {l1 l2 : Level} (M : Commutative-Monoid l1) (R : congruence-Commutative-Monoid l2 M) where subset-normal-submonoid-congruence-Commutative-Monoid : subtype l2 (type-Commutative-Monoid M) subset-normal-submonoid-congruence-Commutative-Monoid x = prop-congruence-Commutative-Monoid M R x (unit-Commutative-Monoid M) is-in-normal-submonoid-congruence-Commutative-Monoid : type-Commutative-Monoid M → UU l2 is-in-normal-submonoid-congruence-Commutative-Monoid = is-in-subtype subset-normal-submonoid-congruence-Commutative-Monoid contains-unit-normal-submonoid-congruence-Commutative-Monoid : is-in-normal-submonoid-congruence-Commutative-Monoid ( unit-Commutative-Monoid M) contains-unit-normal-submonoid-congruence-Commutative-Monoid = refl-congruence-Commutative-Monoid M R is-closed-under-multiplication-normal-submonoid-congruence-Commutative-Monoid : is-closed-under-multiplication-subset-Commutative-Monoid M subset-normal-submonoid-congruence-Commutative-Monoid is-closed-under-multiplication-normal-submonoid-congruence-Commutative-Monoid x y H K = concatenate-sim-eq-congruence-Commutative-Monoid M R ( mul-congruence-Commutative-Monoid M R H K) ( left-unit-law-mul-Commutative-Monoid M (unit-Commutative-Monoid M)) submonoid-congruence-Commutative-Monoid : Commutative-Submonoid l2 M pr1 submonoid-congruence-Commutative-Monoid = subset-normal-submonoid-congruence-Commutative-Monoid pr1 (pr2 submonoid-congruence-Commutative-Monoid) = contains-unit-normal-submonoid-congruence-Commutative-Monoid pr2 (pr2 submonoid-congruence-Commutative-Monoid) = is-closed-under-multiplication-normal-submonoid-congruence-Commutative-Monoid is-normal-submonoid-congruence-Commutative-Monoid : is-normal-Commutative-Submonoid M submonoid-congruence-Commutative-Monoid is-normal-submonoid-congruence-Commutative-Monoid x u H = trans-congruence-Commutative-Monoid M R ( symm-congruence-Commutative-Monoid M R ( concatenate-sim-eq-congruence-Commutative-Monoid M R ( mul-congruence-Commutative-Monoid M R ( refl-congruence-Commutative-Monoid M R) ( H)) ( right-unit-law-mul-Commutative-Monoid M x))) normal-submonoid-congruence-Commutative-Monoid : Normal-Commutative-Submonoid l2 M pr1 normal-submonoid-congruence-Commutative-Monoid = submonoid-congruence-Commutative-Monoid pr2 normal-submonoid-congruence-Commutative-Monoid = is-normal-submonoid-congruence-Commutative-Monoid
The normal submonoid obtained from the congruence relation of a normal submonoid has the same elements as the original normal submonoid
module _ {l1 l2 : Level} (M : Commutative-Monoid l1) (N : Normal-Commutative-Submonoid l2 M) where has-same-elements-normal-submonoid-congruence-Normal-Commutative-Submonoid : has-same-elements-Normal-Commutative-Submonoid M ( normal-submonoid-congruence-Commutative-Monoid M ( congruence-Normal-Commutative-Submonoid M N)) ( N) pr1 ( has-same-elements-normal-submonoid-congruence-Normal-Commutative-Submonoid x) ( H) = is-closed-under-eq-Normal-Commutative-Submonoid M N ( backward-implication ( H (unit-Commutative-Monoid M)) ( is-closed-under-eq-Normal-Commutative-Submonoid' M N ( contains-unit-Normal-Commutative-Submonoid M N) ( left-unit-law-mul-Commutative-Monoid M ( unit-Commutative-Monoid M)))) ( left-unit-law-mul-Commutative-Monoid M x) pr1 ( pr2 ( has-same-elements-normal-submonoid-congruence-Normal-Commutative-Submonoid ( x)) ( H) ( u)) ( K)= is-closed-under-eq-Normal-Commutative-Submonoid' M N ( is-normal-Normal-Commutative-Submonoid M N u x H K) ( right-unit-law-mul-Commutative-Monoid M u) pr2 ( pr2 ( has-same-elements-normal-submonoid-congruence-Normal-Commutative-Submonoid ( x)) ( H) ( u)) ( K) = is-closed-under-mul-Normal-Commutative-Submonoid M N ( is-closed-under-eq-Normal-Commutative-Submonoid M N K ( right-unit-law-mul-Commutative-Monoid M u)) ( H)
The congruence relation of a normal submonoid is saturated
module _ {l1 l2 : Level} (M : Commutative-Monoid l1) (N : Normal-Commutative-Submonoid l2 M) where is-saturated-congruence-Normal-Commutative-Submonoid : is-saturated-congruence-Commutative-Monoid M ( congruence-Normal-Commutative-Submonoid M N) is-saturated-congruence-Normal-Commutative-Submonoid x y H u = ( ( has-same-elements-normal-submonoid-congruence-Normal-Commutative-Submonoid ( M) ( N) ( mul-Commutative-Monoid M u y)) ∘iff ( H u)) ∘iff ( inv-iff ( has-same-elements-normal-submonoid-congruence-Normal-Commutative-Submonoid ( M) ( N) ( mul-Commutative-Monoid M u x))) saturated-congruence-Normal-Commutative-Submonoid : saturated-congruence-Commutative-Monoid (l1 ⊔ l2) M pr1 saturated-congruence-Normal-Commutative-Submonoid = congruence-Normal-Commutative-Submonoid M N pr2 saturated-congruence-Normal-Commutative-Submonoid = is-saturated-congruence-Normal-Commutative-Submonoid
The congruence relation of the normal submonoid associated to a congruence relation relates the same elements as the original congruence relation
module _ {l1 l2 : Level} (M : Commutative-Monoid l1) (R : saturated-congruence-Commutative-Monoid l2 M) where normal-submonoid-saturated-congruence-Commutative-Monoid : Normal-Commutative-Submonoid l2 M normal-submonoid-saturated-congruence-Commutative-Monoid = normal-submonoid-congruence-Commutative-Monoid M ( congruence-saturated-congruence-Commutative-Monoid M R) relate-same-elements-congruence-normal-submonoid-saturated-congruence-Commutative-Monoid : relate-same-elements-saturated-congruence-Commutative-Monoid M ( saturated-congruence-Normal-Commutative-Submonoid M ( normal-submonoid-saturated-congruence-Commutative-Monoid)) ( R) pr1 ( relate-same-elements-congruence-normal-submonoid-saturated-congruence-Commutative-Monoid ( x) ( y)) ( H) = is-saturated-saturated-congruence-Commutative-Monoid M R x y H pr1 ( pr2 ( relate-same-elements-congruence-normal-submonoid-saturated-congruence-Commutative-Monoid ( x) ( y)) ( H) ( u)) = trans-saturated-congruence-Commutative-Monoid M R ( mul-saturated-congruence-Commutative-Monoid M R ( refl-saturated-congruence-Commutative-Monoid M R) ( symm-saturated-congruence-Commutative-Monoid M R H)) pr2 ( pr2 ( relate-same-elements-congruence-normal-submonoid-saturated-congruence-Commutative-Monoid ( x) ( y)) ( H) ( u)) = trans-saturated-congruence-Commutative-Monoid M R ( mul-saturated-congruence-Commutative-Monoid M R ( refl-saturated-congruence-Commutative-Monoid M R) ( H))
The type of normal submonoids of M
is a retract of the type of congruence relations of M
issec-congruence-Normal-Commutative-Submonoid : {l1 : Level} (l2 : Level) (M : Commutative-Monoid l1) (N : Normal-Commutative-Submonoid (l1 ⊔ l2) M) → ( normal-submonoid-congruence-Commutative-Monoid M ( congruence-Normal-Commutative-Submonoid M N)) = ( N) issec-congruence-Normal-Commutative-Submonoid l2 M N = eq-has-same-elements-Normal-Commutative-Submonoid M ( normal-submonoid-congruence-Commutative-Monoid M ( congruence-Normal-Commutative-Submonoid M N)) ( N) ( has-same-elements-normal-submonoid-congruence-Normal-Commutative-Submonoid M N) normal-submonoid-retract-of-congruence-Commutative-Monoid : {l1 : Level} (l2 : Level) (M : Commutative-Monoid l1) → ( Normal-Commutative-Submonoid (l1 ⊔ l2) M) retract-of ( congruence-Commutative-Monoid (l1 ⊔ l2) M) pr1 (normal-submonoid-retract-of-congruence-Commutative-Monoid l2 M) = congruence-Normal-Commutative-Submonoid M pr1 (pr2 (normal-submonoid-retract-of-congruence-Commutative-Monoid l2 M)) = normal-submonoid-congruence-Commutative-Monoid M pr2 (pr2 (normal-submonoid-retract-of-congruence-Commutative-Monoid l2 M)) = issec-congruence-Normal-Commutative-Submonoid l2 M
The type of normal submonoids of M
is equivalent to the type of saturated congruence relations on M
issec-saturated-congruence-Normal-Commutative-Submonoid : {l1 : Level} (l2 : Level) (M : Commutative-Monoid l1) (N : Normal-Commutative-Submonoid (l1 ⊔ l2) M) → ( normal-submonoid-saturated-congruence-Commutative-Monoid M ( saturated-congruence-Normal-Commutative-Submonoid M N)) = ( N) issec-saturated-congruence-Normal-Commutative-Submonoid l2 M N = eq-has-same-elements-Normal-Commutative-Submonoid M ( normal-submonoid-saturated-congruence-Commutative-Monoid M ( saturated-congruence-Normal-Commutative-Submonoid M N)) ( N) ( has-same-elements-normal-submonoid-congruence-Normal-Commutative-Submonoid M N) isretr-saturated-congruence-Normal-Commutative-Submonoid : {l1 : Level} (l2 : Level) (M : Commutative-Monoid l1) (R : saturated-congruence-Commutative-Monoid (l1 ⊔ l2) M) → ( saturated-congruence-Normal-Commutative-Submonoid M ( normal-submonoid-saturated-congruence-Commutative-Monoid M R)) = ( R) isretr-saturated-congruence-Normal-Commutative-Submonoid l2 M R = eq-relate-same-elements-saturated-congruence-Commutative-Monoid M ( saturated-congruence-Normal-Commutative-Submonoid M ( normal-submonoid-saturated-congruence-Commutative-Monoid M R)) ( R) ( relate-same-elements-congruence-normal-submonoid-saturated-congruence-Commutative-Monoid ( M) ( R)) is-equiv-normal-submonoid-saturated-congruence-Commutative-Monoid : {l1 : Level} (l2 : Level) (M : Commutative-Monoid l1) → is-equiv ( normal-submonoid-saturated-congruence-Commutative-Monoid {l2 = l1 ⊔ l2} M) is-equiv-normal-submonoid-saturated-congruence-Commutative-Monoid l2 M = is-equiv-has-inverse ( saturated-congruence-Normal-Commutative-Submonoid M) ( issec-saturated-congruence-Normal-Commutative-Submonoid l2 M) ( isretr-saturated-congruence-Normal-Commutative-Submonoid l2 M) equiv-normal-submonoid-saturated-congruence-Commutative-Monoid : {l1 : Level} (l2 : Level) (M : Commutative-Monoid l1) → saturated-congruence-Commutative-Monoid (l1 ⊔ l2) M ≃ Normal-Commutative-Submonoid (l1 ⊔ l2) M pr1 (equiv-normal-submonoid-saturated-congruence-Commutative-Monoid l2 M) = normal-submonoid-saturated-congruence-Commutative-Monoid M pr2 (equiv-normal-submonoid-saturated-congruence-Commutative-Monoid l2 M) = is-equiv-normal-submonoid-saturated-congruence-Commutative-Monoid l2 M