Isomorphisms of groups

module group-theory.isomorphisms-groups where
Imports
open import category-theory.isomorphisms-large-precategories

open import foundation.contractible-types
open import foundation.dependent-pair-types
open import foundation.equivalences
open import foundation.functoriality-dependent-pair-types
open import foundation.identity-types
open import foundation.subtypes
open import foundation.universe-levels

open import group-theory.category-of-semigroups
open import group-theory.equivalences-semigroups
open import group-theory.groups
open import group-theory.homomorphisms-groups
open import group-theory.isomorphisms-semigroups
open import group-theory.precategory-of-groups

Definitions

Group isomorphisms

module _
  {l1 l2 : Level} (G : Group l1) (H : Group l2)
  where

  is-iso-hom-Group : type-hom-Group G H  UU (l1  l2)
  is-iso-hom-Group =
    is-iso-Large-Precategory Group-Large-Precategory {X = G} {Y = H}

  type-iso-Group : UU (l1  l2)
  type-iso-Group = iso-Large-Precategory Group-Large-Precategory G H

  hom-iso-Group : type-iso-Group  type-hom-Group G H
  hom-iso-Group = hom-iso-Large-Precategory Group-Large-Precategory G H

  is-iso-hom-iso-Group :
    (f : type-iso-Group)  is-iso-hom-Group (hom-iso-Group f)
  is-iso-hom-iso-Group =
    is-iso-hom-iso-Large-Precategory Group-Large-Precategory G H

  hom-inv-iso-Group : type-iso-Group  type-hom-Group H G
  hom-inv-iso-Group = hom-inv-iso-Large-Precategory Group-Large-Precategory G H

  is-equiv-hom-Group : type-hom-Group G H  UU (l1  l2)
  is-equiv-hom-Group =
    is-equiv-hom-Semigroup (semigroup-Group G) (semigroup-Group H)

  equiv-Group : UU (l1  l2)
  equiv-Group = equiv-Semigroup (semigroup-Group G) (semigroup-Group H)

  is-iso-is-equiv-hom-Group :
    (f : type-hom-Group G H)  is-equiv-hom-Group f  is-iso-hom-Group f
  is-iso-is-equiv-hom-Group =
    is-iso-is-equiv-hom-Semigroup (semigroup-Group G) (semigroup-Group H)

  is-equiv-is-iso-hom-Group :
    (f : type-hom-Group G H)  is-iso-hom-Group f  is-equiv-hom-Group f
  is-equiv-is-iso-hom-Group =
    is-equiv-is-iso-hom-Semigroup (semigroup-Group G) (semigroup-Group H)

  equiv-iso-equiv-Group : equiv-Group  type-iso-Group
  equiv-iso-equiv-Group =
    equiv-iso-equiv-Semigroup (semigroup-Group G) (semigroup-Group H)

  iso-equiv-Group : equiv-Group  type-iso-Group
  iso-equiv-Group = map-equiv equiv-iso-equiv-Group

The identity isomorphism

module _
  {l : Level} (G : Group l)
  where

  id-iso-Group : type-iso-Group G G
  id-iso-Group = id-iso-Large-Precategory Group-Large-Precategory {X = G}

Properties

The total space of group isomorphisms from a given group G is contractible

module _
  {l : Level} (G : Group l)
  where

  iso-eq-Group : (H : Group l)  Id G H  type-iso-Group G H
  iso-eq-Group = iso-eq-Large-Precategory Group-Large-Precategory G

  abstract
    extensionality-Group' : (H : Group l)  Id G H  type-iso-Group G H
    extensionality-Group' H =
      ( extensionality-Semigroup
        ( semigroup-Group G)
        ( semigroup-Group H)) ∘e
      ( equiv-ap-inclusion-subtype is-group-Prop {s = G} {t = H})

  abstract
    is-contr-total-iso-Group : is-contr (Σ (Group l) (type-iso-Group G))
    is-contr-total-iso-Group =
      is-contr-equiv'
        ( Σ (Group l) (Id G))
        ( equiv-tot extensionality-Group')
        ( is-contr-total-path G)

Group isomorphisms are stable by composition

module _
  {l1 l2 l3 : Level} (G : Group l1) (H : Group l2) (K : Group l3)
  where

  comp-iso-Group :
    type-iso-Group H K  type-iso-Group G H  type-iso-Group G K
  comp-iso-Group = comp-iso-Large-Precategory Group-Large-Precategory G H K

Group isomorphisms are stable by inversion

module _
  {l1 l2 : Level} (G : Group l1) (H : Group l2)
  where

  inv-iso-Group : type-iso-Group G H  type-iso-Group H G
  inv-iso-Group = inv-iso-Large-Precategory Group-Large-Precategory G H