Sections

{-# OPTIONS --safe #-}
module foundation-core.sections where
Imports
open import foundation-core.dependent-pair-types
open import foundation-core.functions
open import foundation-core.homotopies
open import foundation-core.universe-levels

Idea

A section is a map that has a left inverse, i.e. a retraction. Thus, s : B → A is a section of f : A → B if the composition f ∘ s is homotopic to the identity at B.

For example, every dependent function induces a section of the projection map.

Definition

module _
  {l1 l2 : Level} {A : UU l1} {B : UU l2}
  where

  sec : (A  B)  UU (l1  l2)
  sec f = Σ (B  A)  s  (f  s) ~ id)

Properties

If g ∘ f has a section then g has a section

module _
  {l1 l2 l3 : Level} {A : UU l1} {B : UU l2} {X : UU l3}
  where

  section-left-factor :
    (g : B  X) (h : A  B)  sec (g  h)  sec g
  pr1 (section-left-factor g h sec-gh) = h  (pr1 sec-gh)
  pr2 (section-left-factor g h sec-gh) = pr2 sec-gh

  section-left-factor-htpy' :
    (f : A  X) (g : B  X) (h : A  B) (H' : (g  h) ~ f) 
    sec f  sec g
  pr1 (section-left-factor-htpy' f g h H' sec-f) =
    h  (pr1 sec-f)
  pr2 (section-left-factor-htpy' f g h H' sec-f) =
    (H' ·r pr1 sec-f) ∙h (pr2 sec-f)

  section-left-factor-htpy :
    (f : A  X) (g : B  X) (h : A  B) (H : f ~ (g  h)) 
    sec f  sec g
  section-left-factor-htpy f g h H sec-f =
    section-left-factor-htpy' f g h (inv-htpy H) sec-f

Composites of sections are sections

  section-comp :
    (g : B  X) (h : A  B)  sec h  sec g  sec (g  h)
  pr1 (section-comp g h sec-h sec-g) = pr1 sec-h  pr1 sec-g
  pr2 (section-comp g h sec-h sec-g) =
    (g ·l (pr2 sec-h ·r (pr1 sec-g))) ∙h (pr2 sec-g)

  section-comp-htpy :
    (f : A  X) (g : B  X) (h : A  B) (H : f ~ (g  h)) 
    sec h  sec g  sec f
  pr1 (section-comp-htpy f g h H sec-h sec-g) =
    pr1 (section-comp g h sec-h sec-g)
  pr2 (section-comp-htpy f g h H sec-h sec-g) =
    (H ·r pr1 (section-comp g h sec-h sec-g)) ∙h
    (pr2 (section-comp g h sec-h sec-g))

  inv-triangle-section :
    (f : A  X) (g : B  X) (h : A  B) (H : f ~ (g  h))
    (sec-h : sec h)  (f  (pr1 sec-h)) ~ g
  inv-triangle-section h g f H sec-h =
    (H ·r (pr1 sec-h)) ∙h (g ·l (pr2 sec-h))

  triangle-section :
    (f : A  X) (g : B  X) (h : A  B) (H : f ~ (g  h))
    (sec-h : sec h)  g ~ (f  (pr1 sec-h))
  triangle-section h g f H sec-h =
    inv-htpy (inv-triangle-section h g f H sec-h)