module Algebra.Group.Concrete.Semidirect {β„“} where

Semidirect products of concrete groupsπŸ”—

The construction of the semidirect product for concrete groups is quite natural: given a concrete group and an action of on we simply define as the

pointed at

  H : ConcreteGroup β„“
  H = Ο† (pt G)

  Semidirect-concrete : ConcreteGroup β„“
  Semidirect-concrete .B .fst = Ξ£ ⌞ B G ⌟ Ξ» g β†’ ⌞ B (Ο† g) ⌟
  Semidirect-concrete .B .snd = pt G , pt H

That this is a connected groupoid follows from standard results.

  Semidirect-concrete .has-is-connected = is-connectedβ†’is-connectedβˆ™ $
    Ξ£-is-n-connected 2
      (is-connectedβˆ™β†’is-connected (G .has-is-connected))
      (Ξ» a β†’ is-connectedβˆ™β†’is-connected (Ο† a .has-is-connected))
  Semidirect-concrete .has-is-groupoid = Ξ£-is-hlevel 3
    (G .has-is-groupoid)
    (Ξ» a β†’ Ο† a .has-is-groupoid)

In order to relate this with the definition of semidirect products for abstract groups, we show that the fundamental group is the semidirect product

To that end, we start by defining the action of on induced by Given a loop we can apply the function to it to get a loop which we then turn into an automorphism.

  π₁-Ο† : Action (Groups β„“) (π₁B G) (π₁B H)
  π₁-Ο† .hom p = pathβ†’iso (ap (π₁B βŠ™ Ο†) p)
  π₁-Ο† .preserves .pres-⋆ p q =
    pathβ†’iso (ap (π₁B βŠ™ Ο†) (p βˆ™ q))                          β‰‘βŸ¨ ap pathβ†’iso (ap-βˆ™ (π₁B βŠ™ Ο†) p q) βŸ©β‰‘
    pathβ†’iso (ap (π₁B βŠ™ Ο†) p βˆ™ ap (π₁B βŠ™ Ο†) q)               β‰‘βŸ¨ pathβ†’iso-βˆ™ (Groups β„“) _ _ βŸ©β‰‘
    pathβ†’iso (ap (π₁B βŠ™ Ο†) p) βˆ™Iso pathβ†’iso (ap (π₁B βŠ™ Ο†) q) ∎

  π₁BG⋉π₁BH : Group β„“
  π₁BG⋉π₁BH = Semidirect-product (π₁B G) (π₁B H) π₁-Ο†

  private module ⋉ = Group-on (π₁BG⋉π₁BH .snd)
Source

The following proof is adapted from Symmetry (2023, sec. 4.14).

The first step is to construct an equivalence between the underlying sets of and Since is a its loops consist of pairs where the second component is a dependent path over in the total space of What we actually want is a pair of non-dependent loops, so we need to β€œrealign” the second component by transporting one of its endpoints along we do this by generalising on the endpoints and using path induction.

Note that we have a type a type family and a function given by The following constructions work in this general setting.

    align
      : βˆ€ {a a' : A} (p : a ≑ a')
      β†’ PathP (Ξ» i β†’ B (p i)) (f a) (f a') ≃ (f a' ≑ f a')
    align {a} =
      J (Ξ» a' p β†’ PathP (Ξ» i β†’ B (p i)) (f a) (f a') ≃ (f a' ≑ f a')) id≃

    align-refl
      : βˆ€ {a : A} (q : f a ≑ f a)
      β†’ align (Ξ» _ β†’ a) # q ≑ q
    align-refl {a} = unext $
      J-refl (Ξ» a' p β†’ PathP (Ξ» i β†’ B (p i)) (f a) (f a') ≃ (f a' ≑ f a')) id≃

    Ξ£-align
      : βˆ€ {a a' : A}
      β†’ ((a , f a) ≑ (a' , f a')) ≃ ((a ≑ a') Γ— (f a' ≑ f a'))
    Ξ£-align = Isoβ†’Equiv Ξ£-pathp-iso e⁻¹ βˆ™e Ξ£-ap-snd align

It remains to show that this equivalence is a group homomorphism β€” or rather a groupoid homomorphism, since we’ve generalised the endpoints. First, note that we can describe the action of on paths using a kind of dependent conjugation operation.

    conjP : βˆ€ {a a' : A} β†’ (p : a ≑ a') β†’ f a ≑ f a β†’ f a' ≑ f a'
    conjP {a} p = transport (Ξ» i β†’ f a ≑ f a β†’ f (p i) ≑ f (p i)) Ξ» q β†’ q

    conjP-refl : βˆ€ {a : A} β†’ (q : f a ≑ f a) β†’ conjP refl q ≑ q
    conjP-refl {a} = unext $ transport-refl {A = f a ≑ f a β†’ _} Ξ» q β†’ q

Thus we have a composition operation on pairs of paths that generalises the multiplication in

    _βˆ™β‹‰_
      : βˆ€ {aβ‚€ a₁ aβ‚‚ : A}
      β†’ (aβ‚€ ≑ a₁) Γ— (f a₁ ≑ f a₁)
      β†’ (a₁ ≑ aβ‚‚) Γ— (f aβ‚‚ ≑ f aβ‚‚)
      β†’ (aβ‚€ ≑ aβ‚‚) Γ— (f aβ‚‚ ≑ f aβ‚‚)
    (p , q) βˆ™β‹‰ (p' , q') = p βˆ™ p' , conjP p' q βˆ™ q'

We can then show that Ξ£-align preserves the group(oid) operations by double path induction.

    Ξ£-align-βˆ™
      : βˆ€ {aβ‚€ a₁ aβ‚‚ : A}
      β†’ (p  : (aβ‚€ , f aβ‚€) ≑ (a₁ , f a₁))
      β†’ (p' : (a₁ , f a₁) ≑ (aβ‚‚ , f aβ‚‚))
      β†’ Ξ£-align # (p βˆ™ p')
      ≑ Ξ£-align # p βˆ™β‹‰ Ξ£-align # p'
    Ξ£-align-βˆ™ {aβ‚€} {a₁} {aβ‚‚} p p' = Jβ‚‚
      (Ξ» aβ‚€ aβ‚‚ p⁻¹ p' β†’
        βˆ€ (q : PathP (Ξ» i β†’ B (p⁻¹ (~ i))) (f aβ‚€) (f a₁))
        β†’ (q' : PathP (Ξ» i β†’ B (p' i)) (f a₁) (f aβ‚‚))
        β†’ Ξ£-align # ((sym p⁻¹ ,β‚š q) βˆ™ (p' ,β‚š q'))
        ≑ Ξ£-align # (sym p⁻¹ ,β‚š q) βˆ™β‹‰ Ξ£-align # (p' ,β‚š q'))
      (Ξ» q q' β†’
        Ξ£-align # ((refl ,β‚š q) βˆ™ (refl ,β‚š q'))                      β‰‘Λ˜βŸ¨ ap# Ξ£-align (ap-βˆ™ (a₁ ,_) q q') βŸ©β‰‘Λ˜
        Ξ£-align # (refl ,β‚š q βˆ™ q')                                  β‰‘βŸ¨βŸ©
        refl        , align refl # (q βˆ™ q')                         β‰‘βŸ¨ refl ,β‚š align-refl (q βˆ™ q') βŸ©β‰‘
        refl        , q βˆ™ q'                                        β‰‘Λ˜βŸ¨ refl ,β‚š apβ‚‚ _βˆ™_ (align-refl q) (align-refl q') βŸ©β‰‘Λ˜
        refl        , align refl # q βˆ™ align refl # q'              β‰‘Λ˜βŸ¨ βˆ™-idl _ ,β‚š ap (_βˆ™ align refl # q') (conjP-refl (align refl # q)) βŸ©β‰‘Λ˜
        refl βˆ™ refl , conjP refl (align refl # q) βˆ™ align refl # q' ∎)
      (ap fst (sym p)) (ap fst p') (ap snd p) (ap snd p')

This concludes the proof that the constructions of the semidirect product of abstract and concrete groups agree over the equivalence between abstract and concrete groups.

  Semidirect-concrete-abstract : π₁B Semidirect-concrete ≑ π₁BG⋉π₁BH
  Semidirect-concrete-abstract = ∫-Path
    (total-hom (Ξ£-align (pt βŠ™ Ο†) .fst)
      (record { pres-⋆ = Ξ£-align-βˆ™ (pt βŠ™ Ο†) }))
    (Ξ£-align (pt βŠ™ Ο†) .snd)

References