Groups of order 2

{-# OPTIONS --lossy-unification #-}
module finite-group-theory.groups-of-order-2 where
Imports
open import elementary-number-theory.groups-of-modular-arithmetic

open import finite-group-theory.finite-groups

open import foundation.contractible-types
open import foundation.dependent-pair-types
open import foundation.equivalences
open import foundation.fundamental-theorem-of-identity-types
open import foundation.identity-types
open import foundation.mere-equivalences
open import foundation.propositional-truncations
open import foundation.sets
open import foundation.subtype-identity-principle
open import foundation.universe-levels

open import group-theory.groups
open import group-theory.isomorphisms-groups
open import group-theory.symmetric-groups

open import univalent-combinatorics.2-element-types
open import univalent-combinatorics.standard-finite-types

Idea

The type of groups of order 2 is contractible

Definitions

The type of groups of order 2

Group-of-Order-2 : (l : Level)  UU (lsuc l)
Group-of-Order-2 l = Group-of-Order l 2

module _
  {l : Level} (G : Group-of-Order-2 l)
  where

  group-Group-of-Order-2 : Group l
  group-Group-of-Order-2 = pr1 G

  type-Group-of-Order-2 : UU l
  type-Group-of-Order-2 = type-Group group-Group-of-Order-2

  is-set-type-Group-of-Order-2 : is-set type-Group-of-Order-2
  is-set-type-Group-of-Order-2 = is-set-type-Group group-Group-of-Order-2

  mul-Group-of-Order-2 : (x y : type-Group-of-Order-2)  type-Group-of-Order-2
  mul-Group-of-Order-2 = mul-Group group-Group-of-Order-2

  unit-Group-of-Order-2 : type-Group-of-Order-2
  unit-Group-of-Order-2 = unit-Group group-Group-of-Order-2

  has-two-elements-Group-of-Order-2 : has-two-elements (type-Group-of-Order-2)
  has-two-elements-Group-of-Order-2 = pr2 G

  2-element-type-Group-of-Order-2 : 2-Element-Type l
  pr1 2-element-type-Group-of-Order-2 = type-Group-of-Order-2
  pr2 2-element-type-Group-of-Order-2 = has-two-elements-Group-of-Order-2

The group ℤ/2 of order 2

ℤ-Mod-2-Group-of-Order-2 : Group-of-Order-2 lzero
pr1 ℤ-Mod-2-Group-of-Order-2 = ℤ-Mod-Group 2
pr2 ℤ-Mod-2-Group-of-Order-2 = refl-mere-equiv (Fin 2)

The permutation group S₂ of order 2

symmetric-Group-of-Order-2 : (l : Level)  Group-of-Order-2 l
pr1 (symmetric-Group-of-Order-2 l) =
  symmetric-Group (raise-Fin-Set l 2)
pr2 (symmetric-Group-of-Order-2 l) =
  has-two-elements-Aut-2-Element-Type
    ( pair (raise-Fin l 2) (unit-trunc-Prop (compute-raise-Fin l 2)))

Properties

Characterization of the identity type of the type of groups of order 2

iso-Group-of-Order-2 :
  {l1 l2 : Level} (G : Group-of-Order-2 l1) (H : Group-of-Order-2 l2) 
  UU (l1  l2)
iso-Group-of-Order-2 G H =
  type-iso-Group (group-Group-of-Order-2 G) (group-Group-of-Order-2 H)

module _
  {l : Level} (G : Group-of-Order-2 l)
  where

  iso-eq-Group-of-Order-2 :
    (H : Group-of-Order-2 l)  Id G H  iso-Group-of-Order-2 G H
  iso-eq-Group-of-Order-2 H p =
    iso-eq-Group
      ( group-Group-of-Order-2 G)
      ( group-Group-of-Order-2 H)
      ( ap pr1 p)

  is-contr-total-iso-Group-of-Order-2 :
    is-contr (Σ (Group-of-Order-2 l) (iso-Group-of-Order-2 G))
  is-contr-total-iso-Group-of-Order-2 =
    is-contr-total-Eq-subtype
      ( is-contr-total-iso-Group (group-Group-of-Order-2 G))
      ( λ H  is-prop-type-trunc-Prop)
      ( group-Group-of-Order-2 G)
      ( id-iso-Group (group-Group-of-Order-2 G))
      ( has-two-elements-Group-of-Order-2 G)

  is-equiv-iso-eq-Group-of-Order-2 :
    (H : Group-of-Order-2 l)  is-equiv (iso-eq-Group-of-Order-2 H)
  is-equiv-iso-eq-Group-of-Order-2 =
    fundamental-theorem-id
      ( is-contr-total-iso-Group-of-Order-2)
      ( iso-eq-Group-of-Order-2)

  eq-iso-Group-of-Order-2 :
    (H : Group-of-Order-2 l)  iso-Group-of-Order-2 G H  Id G H
  eq-iso-Group-of-Order-2 H =
    map-inv-is-equiv (is-equiv-iso-eq-Group-of-Order-2 H)

A homomorphism from any group of order 2 to any group of order 2

module _
  {l1 l2 : Level} (G : Group-of-Order-2 l1) (H : Group-of-Order-2 l2)
  where

  equiv-Group-of-Order-2 :
    type-Group-of-Order-2 G  type-Group-of-Order-2 H
  equiv-Group-of-Order-2 =
    ( equiv-point-2-Element-Type
      ( 2-element-type-Group-of-Order-2 H)
      ( unit-Group (group-Group-of-Order-2 H))) ∘e
    ( inv-equiv
      ( equiv-point-2-Element-Type
        ( 2-element-type-Group-of-Order-2 G)
        ( unit-Group (group-Group-of-Order-2 G))))

  map-specified-hom-Group-of-Order-2 :
    type-Group-of-Order-2 G  type-Group-of-Order-2 H
  map-specified-hom-Group-of-Order-2 =
    map-equiv equiv-Group-of-Order-2
--   specified-hom-Group-of-Order-2 :
--     type-hom-Group (group-Group-of-Order-2 G) (group-Group-of-Order-2 H)
--   specified-hom-Group-of-Order-2 = {!!}

The type of groups of order 2 is contractible

-- is-contr-Group-of-Order-2 : (l : Level) → is-contr (Group-of-Order-2 l)
-- pr1 (is-contr-Group-of-Order-2 l) = symmetric-Group-of-Order-2 l
-- pr2 (is-contr-Group-of-Order-2 l) G =
--   eq-iso-Group-of-Order-2
--     ( symmetric-Group-of-Order-2 l)
--     ( G)
--     {!!}