Sections
Content created by Fredrik Bakke, Egbert Rijke, Jonathan Prieto-Cubides, Julian KG, fernabnor and louismntnu.
Created on 2022-02-04.
Last modified on 2024-04-25.
module foundation-core.sections where
Imports
open import foundation.dependent-pair-types open import foundation.universe-levels open import foundation.whiskering-homotopies-composition open import foundation-core.function-types open import foundation-core.homotopies
Idea
A section of a map f : A → B
consists of a map s : B → A
equipped with a
homotopy f ∘ s ~ id
. In other words, a section of a map f
is a right inverse
of f
. For example, every dependent function induces a section of the
projection map.
Note that unlike retractions, sections don’t induce sections on identity types.
A map f
equipped with a section such that all
actions on identifications
ap f : (x = y) → (f x = f y)
come equipped with sections is called a
path split map. The condition of being
path split is equivalent to being an
equivalence.
Definition
The predicate of being a section of a map
module _ {l1 l2 : Level} {A : UU l1} {B : UU l2} (f : A → B) where is-section : (B → A) → UU l2 is-section g = f ∘ g ~ id
The type of sections of a map
module _ {l1 l2 : Level} {A : UU l1} {B : UU l2} (f : A → B) where section : UU (l1 ⊔ l2) section = Σ (B → A) (is-section f) map-section : section → B → A map-section = pr1 is-section-map-section : (s : section) → is-section f (map-section s) is-section-map-section = pr2
Properties
If g ∘ h
has a section then g
has a section
module _ {l1 l2 l3 : Level} {A : UU l1} {B : UU l2} {X : UU l3} (g : B → X) (h : A → B) (s : section (g ∘ h)) where map-section-left-factor : X → B map-section-left-factor = h ∘ map-section (g ∘ h) s is-section-map-section-left-factor : is-section g map-section-left-factor is-section-map-section-left-factor = pr2 s section-left-factor : section g pr1 section-left-factor = map-section-left-factor pr2 section-left-factor = is-section-map-section-left-factor
Composites of sections are sections of composites
module _ {l1 l2 l3 : Level} {A : UU l1} {B : UU l2} {X : UU l3} (g : B → X) (h : A → B) (t : section h) (s : section g) where map-section-comp : X → A map-section-comp = map-section h t ∘ map-section g s is-section-map-section-comp : is-section (g ∘ h) map-section-comp is-section-map-section-comp = ( g ·l (is-section-map-section h t ·r map-section g s)) ∙h ( is-section-map-section g s) section-comp : section (g ∘ h) pr1 section-comp = map-section-comp pr2 section-comp = is-section-map-section-comp
In a commuting triangle g ∘ h ~ f
, any section of f
induces a section of g
In a commuting triangle of the form
h
A ------> B
\ /
f\ /g
\ /
∨ ∨
X,
if s : X → A
is a section of the map f
on the left, then h ∘ s
is a
section of the map g
on the right.
Note: In this file we are unable to use the definition of commuting triangles, because that would result in a cyclic module dependency.
We state two versions: one with a homotopy g ∘ h ~ f
, and the other with a
homotopy f ~ g ∘ h
. Our convention for commuting triangles of maps is that the
homotopy is specified in the second way, i.e., as f ~ g ∘ h
.
First version, with the commutativity of the triangle opposite to our convention
module _ {l1 l2 l3 : Level} {A : UU l1} {B : UU l2} {X : UU l3} (f : A → X) (g : B → X) (h : A → B) (H' : g ∘ h ~ f) (s : section f) where map-section-right-map-triangle' : X → B map-section-right-map-triangle' = h ∘ map-section f s is-section-map-section-right-map-triangle' : is-section g map-section-right-map-triangle' is-section-map-section-right-map-triangle' = (H' ·r map-section f s) ∙h is-section-map-section f s section-right-map-triangle' : section g pr1 section-right-map-triangle' = map-section-right-map-triangle' pr2 section-right-map-triangle' = is-section-map-section-right-map-triangle'
Second version, with the commutativity of the triangle accoring to our convention
We state the same result as the previous result, only with the homotopy witnessing the commutativity of the triangle inverted.
module _ {l1 l2 l3 : Level} {A : UU l1} {B : UU l2} {X : UU l3} (f : A → X) (g : B → X) (h : A → B) (H : f ~ g ∘ h) (s : section f) where map-section-right-map-triangle : X → B map-section-right-map-triangle = map-section-right-map-triangle' f g h (inv-htpy H) s is-section-map-section-right-map-triangle : is-section g map-section-right-map-triangle is-section-map-section-right-map-triangle = is-section-map-section-right-map-triangle' f g h (inv-htpy H) s section-right-map-triangle : section g section-right-map-triangle = section-right-map-triangle' f g h (inv-htpy H) s
Composites of sections in commuting triangles are sections
In a commuting triangle of the form
h
A ------> B
\ /
f\ /g
\ /
∨ ∨
X,
if s : X → B
is a section of the map g
on the right and t : B → A
is a
section of the map h
on top, then t ∘ s
is a section of the map f
on the
left.
module _ {l1 l2 l3 : Level} {A : UU l1} {B : UU l2} {X : UU l3} (f : A → X) (g : B → X) (h : A → B) (H : f ~ g ∘ h) (t : section h) where map-section-left-map-triangle : section g → X → A map-section-left-map-triangle s = map-section-comp g h t s is-section-map-section-left-map-triangle : (s : section g) → is-section f (map-section-left-map-triangle s) is-section-map-section-left-map-triangle s = ( H ·r map-section-comp g h t s) ∙h ( is-section-map-section-comp g h t s) section-left-map-triangle : section g → section f pr1 (section-left-map-triangle s) = map-section-left-map-triangle s pr2 (section-left-map-triangle s) = is-section-map-section-left-map-triangle s
Recent changes
- 2024-04-25. Fredrik Bakke. chore: Fix arrowheads in character diagrams (#1124).
- 2024-02-06. Egbert Rijke and Fredrik Bakke. Refactor files about identity types and homotopies (#1014).
- 2023-11-09. Egbert Rijke and Fredrik Bakke. Refactoring of retractions, sections, and equivalences, and adding the 6-for-2 property of equivalences (#903).
- 2023-09-12. Egbert Rijke. Factoring out whiskering (#756).
- 2023-08-07. Egbert Rijke. Normalizers, normal closures, normal cores, and centralizers (#693).