Legacy.Base.Homomorphisms.Noether¶
Homomorphism Theorems¶
This is the Legacy.Base.Homomorphisms.Noether module of the Agda Universal Algebra Library.
{-# OPTIONS --cubical-compatible --exact-split --safe #-} open import Overture using ( π ; π₯ ; Signature ) module Legacy.Base.Homomorphisms.Noether {π : Signature π π₯} where -- Imports from Agda and the Agda Standard Library --------------------------------------- open import Data.Product using ( Ξ£-syntax ; _,_ ; _Γ_ ) renaming ( projβ to fst ; projβ to snd ) open import Function using ( _β_ ; id ) open import Level using (Level ) open import Relation.Binary using ( IsEquivalence ) open import Relation.Binary.PropositionalEquality as β‘ using ( module β‘-Reasoning ; _β‘_ ) -- Imports from agda-algebras -------------------------------------------------------------- open import Legacy.Base.Relations using ( β_β ; mkblk ; βͺ_β« ) open import Overture using ( β£_β£ ; β₯_β₯ ; _β»ΒΉ ) open import Legacy.Base.Functions using ( Image_β_ ; IsInjective ; SurjInv ) using ( IsSurjective ; SurjInvIsInverseΚ³ ) open import Legacy.Base.Algebras {π = π} using ( Algebra ; _Μ_ ; Con ; IsCongruence ) open import Legacy.Base.Homomorphisms.Kernels {π = π} using ( kercon ; ker[_β_]_βΎ_ ; Οker ) open import Legacy.Base.Equality using ( swelldef ; is-set ; blk-uip ; is-embedding ; monic-is-embedding|Set ) using ( pred-ext ; block-ext|uip ) open import Legacy.Base.Homomorphisms.Basic {π = π} using ( hom ; is-homomorphism ; epi ; epiβhom ) private variable Ξ± Ξ² Ξ³ : Level
The First Homomorphism Theorem¶
Here we formalize a version of the first homomorphism theorem, sometimes called Noether's first homomorphism theorem, after Emmy Noether who was among the first proponents of the abstract approach to the subject that we now call "modern algebra").
Informally, the theorem states that every homomorphism from π¨ to π© (π-algebras)
factors through the quotient algebra π¨ β± ker h (π¨ modulo the kernel of the given
homomorphism). In other terms, given h : hom π¨ π© there exists Ο : hom (π¨ β± ker h) π©
which, when composed with the canonical projection Οker : π¨ β π¨ β± ker h, is equal to
h; that is, h = Ο β Οker. Moreover, Ο is a monomorphism (injective homomorphism)
and is unique.
Our formal proof of this theorem will require function extensionality, proposition
extensionality, and a couple of truncation assumptions. The extensionality
assumptions are postulated using swelldef and pred-ext which were defined
in Legacy.Base.Equality.Welldefined and Legacy.Base.Equality.Extensionality. As for
truncation, to prove that Ο is injective we require
buip: uniqueness of (block) identity proofs; given two blocks of the kernel there is at most one proof that the blocks are equal;
To prove that Ο is an embedding we require
Bset: uniqueness of identity proofs in the codomain; that is, the codomainβ£ π© β£is assumed to be a set.
Note that the classical, informal statement of the first homomorphism theorem does not
demand that Ο be an embedding (in our sense of having subsingleton fibers), and if
we left this out of the consequent of our formal theorem statement, then we could omit
from the antecedent the assumption that β£ π© β£ is a set.
Without further ado, we present our formalization of the first homomorphism theorem.
open β‘-Reasoning FirstHomTheorem|Set : (π¨ : Algebra Ξ±)(π© : Algebra Ξ²)(h : hom π¨ π©) {- extensionality assumptions -} (pe : pred-ext Ξ± Ξ²)(fe : swelldef π₯ Ξ²) {- truncation assumptions -} (Bset : is-set β£ π© β£) (buip : blk-uip β£ π¨ β£ β£ kercon fe {π©} h β£) ------------------------------------------------------------------------- β Ξ£[ Ο β hom (ker[ π¨ β π© ] h βΎ fe) π© ] ( β£ h β£ β‘ β£ Ο β£ β β£ Οker fe{π©}h β£ Γ IsInjective β£ Ο β£ Γ is-embedding β£ Ο β£ ) FirstHomTheorem|Set π¨ π© h pe fe Bset buip = (Ο , Οhom) , β‘.refl , Οmon , Οemb where ΞΈ : Con π¨ ΞΈ = kercon fe{π©} h ΞΎ : IsEquivalence β£ ΞΈ β£ ΞΎ = IsCongruence.is-equivalence β₯ ΞΈ β₯ Ο : β£ (ker[ π¨ β π© ] h βΎ fe) β£ β β£ π© β£ Ο a = β£ h β£ β a β Οhom : is-homomorphism (ker[ π¨ β π© ] h βΎ fe) π© Ο Οhom π a = β£ h β£ ( (π Μ π¨) (Ξ» x β β a x β) ) β‘β¨ β₯ h β₯ π (Ξ» x β β a x β) β© (π Μ π©) (β£ h β£ β (Ξ» x β β a x β)) β‘β¨ β‘.cong (π Μ π©) β‘.refl β© (π Μ π©) (Ξ» x β Ο (a x)) β Οmon : IsInjective Ο Οmon {_ , mkblk u β‘.refl} {_ , mkblk v β‘.refl} Οuv = block-ext|uip pe buip ΞΎ Οuv Οemb : is-embedding Ο Οemb = monic-is-embedding|Set Ο Bset Οmon
Below we will prove that the homomorphism Ο, whose existence we just proved, is
unique (see NoetherHomUnique), but first we show that if we add to the hypotheses
of the first homomorphism theorem the assumption that h is surjective, then we
obtain the so-called first isomorphism theorem. Naturally, we let
FirstHomTheorem|Set do most of the work.
FirstIsoTheorem|Set : (π¨ : Algebra Ξ±) (π© : Algebra Ξ²) (h : hom π¨ π©) {- extensionality assumptions -} (pe : pred-ext Ξ± Ξ²) (fe : swelldef π₯ Ξ²) {- truncation assumptions -} (Bset : is-set β£ π© β£) (buip : blk-uip β£ π¨ β£ β£ kercon fe{π©}h β£) β IsSurjective β£ h β£ β Ξ£[ f β (epi (ker[ π¨ β π© ] h βΎ fe) π©)] ( β£ h β£ β‘ β£ f β£ β β£ Οker fe{π©}h β£ Γ IsInjective β£ f β£ Γ is-embedding β£ f β£ ) FirstIsoTheorem|Set π¨ π© h pe fe Bset buip hE = (fmap , fhom , fepic) , β‘.refl , (snd β₯ FHT β₯) where FHT = FirstHomTheorem|Set π¨ π© h pe fe Bset buip fmap : β£ ker[ π¨ β π© ] h βΎ fe β£ β β£ π© β£ fmap = fst β£ FHT β£ fhom : is-homomorphism (ker[ π¨ β π© ] h βΎ fe) π© fmap fhom = snd β£ FHT β£ fepic : IsSurjective fmap fepic b = Goal where a : β£ π¨ β£ a = SurjInv β£ h β£ hE b bfa : b β‘ fmap βͺ a β« bfa = ((SurjInvIsInverseΚ³ β£ h β£ hE) b)β»ΒΉ Goal : Image fmap β b Goal = Image_β_.eq βͺ a β« bfa
Now we prove that the homomorphism Ο, whose existence is guaranteed by FirstHomTheorem|Set, is unique.
module _ {fe : swelldef π₯ Ξ²}(π¨ : Algebra Ξ±)(π© : Algebra Ξ²)(h : hom π¨ π©) where FirstHomUnique : (f g : hom (ker[ π¨ β π© ] h βΎ fe) π©) β β£ h β£ β‘ β£ f β£ β β£ Οker fe{π©}h β£ β β£ h β£ β‘ β£ g β£ β β£ Οker fe{π©}h β£ β β a β β£ f β£ a β‘ β£ g β£ a FirstHomUnique f g hfk hgk (_ , mkblk a β‘.refl) = β£ f β£ (_ , mkblk a β‘.refl) β‘β¨ β‘.cong-app(hfk β»ΒΉ)a β© β£ h β£ a β‘β¨ β‘.cong-app(hgk)a β© β£ g β£ (_ , mkblk a β‘.refl) β
If, in addition, we postulate extensionality of functions defined on the domain
ker[ π¨ β π© ] h, then we obtain the following variation of the last result.
(See Legacy.Base.Equality.Truncation for a discussion of truncation, sets,
and uniqueness of identity proofs.)
fe-FirstHomUnique : {fuww : funext (Ξ± β lsuc Ξ²) Ξ²}(f g : hom (ker[ π¨ β π© ] h βΎ fe) π©)
β β£ h β£ β‘ β£ f β£ β β£ Οker fe{π©}h β£
β β£ h β£ β‘ β£ g β£ β β£ Οker fe{π©}h β£
β β£ f β£ β‘ β£ g β£
fe-FirstHomUnique {fuww} f g hfk hgk = fuww (NoetherHomUnique f g hfk hgk)
The proof of NoetherHomUnique goes through for the special case of epimorphisms, as we now verify.
FirstIsoUnique : (f g : epi (ker[ π¨ β π© ] h βΎ fe) π©) β β£ h β£ β‘ β£ f β£ β β£ Οker fe{π©}h β£ β β£ h β£ β‘ β£ g β£ β β£ Οker fe{π©}h β£ β β a β β£ f β£ a β‘ β£ g β£ a FirstIsoUnique f g hfk hgk = FirstHomUnique (epiβhom π© f) (epiβhom π© g) hfk hgk