Transitive concrete group actions

module group-theory.transitive-concrete-group-actions where
Imports
open import foundation.0-connected-types
open import foundation.1-types
open import foundation.dependent-pair-types
open import foundation.equality-dependent-pair-types
open import foundation.equivalences
open import foundation.existential-quantification
open import foundation.functions
open import foundation.identity-types
open import foundation.inhabited-types
open import foundation.propositional-truncations
open import foundation.propositions
open import foundation.sets
open import foundation.subtypes
open import foundation.universe-levels

open import group-theory.concrete-group-actions
open import group-theory.concrete-groups
open import group-theory.equivalences-concrete-group-actions
open import group-theory.orbits-concrete-group-actions

Definition

is-transitive-action-Concrete-Group-Prop :
  {l1 l2 : Level} (G : Concrete-Group l1)  action-Concrete-Group l2 G 
  Prop (l1  l2)
is-transitive-action-Concrete-Group-Prop G X =
  is-0-connected-Prop (orbit-action-Concrete-Group G X)

is-transitive-action-Concrete-Group :
  {l1 l2 : Level} (G : Concrete-Group l1)  action-Concrete-Group l2 G 
  UU (l1  l2)
is-transitive-action-Concrete-Group G X =
  type-Prop (is-transitive-action-Concrete-Group-Prop G X)

is-prop-is-transitive-action-Concrete-Group :
  {l1 l2 : Level} (G : Concrete-Group l1) (X : action-Concrete-Group l2 G) 
  is-prop (is-transitive-action-Concrete-Group G X)
is-prop-is-transitive-action-Concrete-Group G X =
  is-prop-type-Prop (is-transitive-action-Concrete-Group-Prop G X)

transitive-action-Concrete-Group :
  {l1 : Level} (l2 : Level) (G : Concrete-Group l1)  UU (l1  lsuc l2)
transitive-action-Concrete-Group l2 G =
  type-subtype (is-transitive-action-Concrete-Group-Prop {l2 = l2} G)

module _
  {l1 l2 : Level} (G : Concrete-Group l1)
  (X : transitive-action-Concrete-Group l2 G)
  where

  action-transitive-action-Concrete-Group :
    action-Concrete-Group l2 G
  action-transitive-action-Concrete-Group = pr1 X

  is-transitive-transitive-action-Concrete-Group :
    is-transitive-action-Concrete-Group G
      action-transitive-action-Concrete-Group
  is-transitive-transitive-action-Concrete-Group = pr2 X

  set-transitive-action-Concrete-Group : Set l2
  set-transitive-action-Concrete-Group =
    set-action-Concrete-Group G action-transitive-action-Concrete-Group

  type-transitive-action-Concrete-Group : UU l2
  type-transitive-action-Concrete-Group =
    type-action-Concrete-Group G action-transitive-action-Concrete-Group

  is-set-type-transitive-action-Concrete-Group :
    is-set type-transitive-action-Concrete-Group
  is-set-type-transitive-action-Concrete-Group =
    is-set-type-action-Concrete-Group G action-transitive-action-Concrete-Group

  is-inhabited-type-transitive-action-Concrete-Group :
    is-inhabited type-transitive-action-Concrete-Group
  is-inhabited-type-transitive-action-Concrete-Group =
    apply-universal-property-trunc-Prop
      ( is-inhabited-is-0-connected
        ( is-transitive-transitive-action-Concrete-Group))
      ( is-inhabited-Prop type-transitive-action-Concrete-Group)
      ( λ t 
        apply-universal-property-trunc-Prop
          ( mere-eq-is-0-connected
            ( is-0-connected-classifying-type-Concrete-Group G)
            ( pr1 t)
            ( shape-Concrete-Group G))
          ( is-inhabited-Prop type-transitive-action-Concrete-Group)
          ( λ p 
            unit-trunc-Prop
              ( tr
                ( type-Set  action-transitive-action-Concrete-Group)
                ( p)
                ( pr2 t))))

  mul-transitive-action-Concrete-Group :
    type-Concrete-Group G  type-transitive-action-Concrete-Group 
    type-transitive-action-Concrete-Group
  mul-transitive-action-Concrete-Group =
    mul-action-Concrete-Group G action-transitive-action-Concrete-Group

  is-transitive-mul-transitive-action-Concrete-Group :
    ( x y : type-transitive-action-Concrete-Group) 
     ( type-Concrete-Group G)
      ( λ g  mul-transitive-action-Concrete-Group g x  y)
  is-transitive-mul-transitive-action-Concrete-Group x y =
    apply-universal-property-trunc-Prop
      ( mere-eq-is-0-connected
        ( is-transitive-transitive-action-Concrete-Group)
        ( pair (shape-Concrete-Group G) x)
        ( pair (shape-Concrete-Group G) y))
      ( ∃-Prop
        ( type-Concrete-Group G)
        ( λ g  mul-transitive-action-Concrete-Group g x  y))
      ( λ p  unit-trunc-Prop (pair-eq-Σ p))

Properties

Characterization of the identity type of transitive actions of a concrete group

module _
  {l1 l2 : Level} (G : Concrete-Group l1)
  (X : transitive-action-Concrete-Group l2 G)
  where

  equiv-transitive-action-Concrete-Group :
    {l3 : Level} (Y : transitive-action-Concrete-Group l3 G)  UU (l1  l2  l3)
  equiv-transitive-action-Concrete-Group Y =
    equiv-action-Concrete-Group G
      ( action-transitive-action-Concrete-Group G X)
      ( action-transitive-action-Concrete-Group G Y)

  map-equiv-transitive-action-Concrete-Group :
    {l3 : Level} (Y : transitive-action-Concrete-Group l3 G) 
    equiv-transitive-action-Concrete-Group Y 
    type-transitive-action-Concrete-Group G X 
    type-transitive-action-Concrete-Group G Y
  map-equiv-transitive-action-Concrete-Group Y =
    map-equiv-action-Concrete-Group G
      ( action-transitive-action-Concrete-Group G X)
      ( action-transitive-action-Concrete-Group G Y)

  preserves-mul-equiv-transitive-action-Concrete-Group :
    {l3 : Level} (Y : transitive-action-Concrete-Group l3 G) 
    (e : equiv-transitive-action-Concrete-Group Y) (g : type-Concrete-Group G)
    (x : type-transitive-action-Concrete-Group G X) 
    ( map-equiv-transitive-action-Concrete-Group Y e
      ( mul-transitive-action-Concrete-Group G X g x)) 
    ( mul-transitive-action-Concrete-Group G Y g
      ( map-equiv-transitive-action-Concrete-Group Y e x))
  preserves-mul-equiv-transitive-action-Concrete-Group Y =
    preserves-mul-equiv-action-Concrete-Group G
      ( action-transitive-action-Concrete-Group G X)
      ( action-transitive-action-Concrete-Group G Y)

  id-equiv-transitive-action-Concrete-Group :
    equiv-transitive-action-Concrete-Group X
  id-equiv-transitive-action-Concrete-Group =
    id-equiv-action-Concrete-Group G
      ( action-transitive-action-Concrete-Group G X)

  extensionality-transitive-action-Concrete-Group :
    (Y : transitive-action-Concrete-Group l2 G) 
    (X  Y)  equiv-transitive-action-Concrete-Group Y
  extensionality-transitive-action-Concrete-Group Y =
    ( extensionality-action-Concrete-Group G
      ( action-transitive-action-Concrete-Group G X)
      ( action-transitive-action-Concrete-Group G Y)) ∘e
    ( extensionality-type-subtype'
      ( is-transitive-action-Concrete-Group-Prop G)
      ( X)
      ( Y))

Properties

Two equivalences of transitive concrete group actions are homotopic if there exists a point on which they have the same value

module _
  {l1 l2 l3 : Level} (G : Concrete-Group l1)
  (X : transitive-action-Concrete-Group l2 G)
  (Y : transitive-action-Concrete-Group l3 G)
  (e f : equiv-transitive-action-Concrete-Group G X Y)
  where

  htpy-equiv-transitive-action-Concrete-Group : UU (l2  l3)
  htpy-equiv-transitive-action-Concrete-Group =
    htpy-equiv-action-Concrete-Group G
      ( action-transitive-action-Concrete-Group G X)
      ( action-transitive-action-Concrete-Group G Y)
      ( e)
      ( f)

  htpy-equiv-transitive-action-Concrete-Group-Prop : Prop (l2  l3)
  htpy-equiv-transitive-action-Concrete-Group-Prop =
    htpy-equiv-action-Concrete-Group-Prop G
      ( action-transitive-action-Concrete-Group G X)
      ( action-transitive-action-Concrete-Group G Y)
      ( e)
      ( f)

  htpy-exists-equiv-transitive-action-Concrete-Group :
     ( type-transitive-action-Concrete-Group G X)
      ( λ x 
      map-equiv-transitive-action-Concrete-Group G X Y e x 
      map-equiv-transitive-action-Concrete-Group G X Y f x) 
    htpy-equiv-transitive-action-Concrete-Group
  htpy-exists-equiv-transitive-action-Concrete-Group H =
    apply-universal-property-trunc-Prop H
      ( htpy-equiv-transitive-action-Concrete-Group-Prop)
      ( λ (pair x p) y 
        apply-universal-property-trunc-Prop
          ( is-transitive-mul-transitive-action-Concrete-Group G X x y)
          ( Id-Prop
            ( set-transitive-action-Concrete-Group G Y)
            ( map-equiv-transitive-action-Concrete-Group G X Y e y)
            ( map-equiv-transitive-action-Concrete-Group G X Y f y))
          ( λ (pair g q) 
            ( ap (map-equiv-transitive-action-Concrete-Group G X Y e) (inv q)) 
            ( ( ( preserves-mul-equiv-transitive-action-Concrete-Group
                  G X Y e g x) 
                ( ( ap
                    ( mul-transitive-action-Concrete-Group G Y g)
                    ( p)) 
                  ( inv
                    ( preserves-mul-equiv-transitive-action-Concrete-Group
                      G X Y f g x)))) 
              ( ap (map-equiv-transitive-action-Concrete-Group G X Y f) q))))

The type of transitive concrete group actions is a 1-type

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

  is-1-type-transitive-action-Concrete-Group :
    is-1-type (transitive-action-Concrete-Group l2 G)
  is-1-type-transitive-action-Concrete-Group =
    is-1-type-type-subtype
      ( is-transitive-action-Concrete-Group-Prop G)
      ( is-1-type-action-Concrete-Group G)

  transitive-action-Concrete-Group-1-Type : 1-Type (l1  lsuc l2)
  pr1 transitive-action-Concrete-Group-1-Type =
    transitive-action-Concrete-Group l2 G
  pr2 transitive-action-Concrete-Group-1-Type =
    is-1-type-transitive-action-Concrete-Group