Equifibered span diagrams
Content created by Fredrik Bakke.
Created on 2025-08-14.
Last modified on 2025-08-14.
module synthetic-homotopy-theory.equifibered-span-diagrams where
Imports
open import foundation.cartesian-product-types open import foundation.dependent-pair-types open import foundation.equivalences open import foundation.function-types open import foundation.span-diagrams open import foundation.transport-along-identifications open import foundation.universe-levels open import synthetic-homotopy-theory.cocones-under-spans open import synthetic-homotopy-theory.descent-data-pushouts
Idea
Given a span diagram 𝒮
of the form
f g
A <---- S ----> B,
an
equifibered span diagram¶
over 𝒮
is a triple of type families PA
, PB
, PS
over the vertices of 𝒮
,
𝒰 𝒱 𝒲
↑ ↑ ↑
A <---- S ----> B,
together with families of equivalences PS s ≃ PA (f s)
and PS s ≃ PB (g s)
for every s : S
.
The identity type of equifibered span
diagrams is characterized in
equivalences-equifibered-span-diagrams
.
Definitions
Equifibered span diagrams
module _ {l1 l2 l3 : Level} (𝒮 : span-diagram l1 l2 l3) where equifibered-span-diagram : (l4 l5 l6 : Level) → UU (l1 ⊔ l2 ⊔ l3 ⊔ lsuc l4 ⊔ lsuc l5 ⊔ lsuc l6) equifibered-span-diagram l4 l5 l6 = Σ ( domain-span-diagram 𝒮 → UU l4) ( λ PA → Σ ( codomain-span-diagram 𝒮 → UU l5) ( λ PB → Σ ( spanning-type-span-diagram 𝒮 → UU l6) ( λ PS → ( (s : spanning-type-span-diagram 𝒮) → PS s ≃ PA (left-map-span-diagram 𝒮 s)) × ( (s : spanning-type-span-diagram 𝒮) → PS s ≃ PB (right-map-span-diagram 𝒮 s)))))
Components of equifibered span diagrams
module _ {l1 l2 l3 l4 l5 l6 : Level} {𝒮 : span-diagram l1 l2 l3} (P : equifibered-span-diagram 𝒮 l4 l5 l6) where left-family-equifibered-span-diagram : domain-span-diagram 𝒮 → UU l4 left-family-equifibered-span-diagram = pr1 P right-family-equifibered-span-diagram : codomain-span-diagram 𝒮 → UU l5 right-family-equifibered-span-diagram = pr1 (pr2 P) spanning-type-family-equifibered-span-diagram : spanning-type-span-diagram 𝒮 → UU l6 spanning-type-family-equifibered-span-diagram = pr1 (pr2 (pr2 P)) equiv-left-family-equifibered-span-diagram : (s : spanning-type-span-diagram 𝒮) → spanning-type-family-equifibered-span-diagram s ≃ left-family-equifibered-span-diagram (left-map-span-diagram 𝒮 s) equiv-left-family-equifibered-span-diagram = pr1 (pr2 (pr2 (pr2 P))) equiv-right-family-equifibered-span-diagram : (s : spanning-type-span-diagram 𝒮) → spanning-type-family-equifibered-span-diagram s ≃ right-family-equifibered-span-diagram (right-map-span-diagram 𝒮 s) equiv-right-family-equifibered-span-diagram = pr2 (pr2 (pr2 (pr2 P))) map-left-family-equifibered-span-diagram : (s : spanning-type-span-diagram 𝒮) → spanning-type-family-equifibered-span-diagram s → left-family-equifibered-span-diagram (left-map-span-diagram 𝒮 s) map-left-family-equifibered-span-diagram = map-equiv ∘ equiv-left-family-equifibered-span-diagram map-right-family-equifibered-span-diagram : (s : spanning-type-span-diagram 𝒮) → spanning-type-family-equifibered-span-diagram s → right-family-equifibered-span-diagram (right-map-span-diagram 𝒮 s) map-right-family-equifibered-span-diagram = map-equiv ∘ equiv-right-family-equifibered-span-diagram map-inv-left-family-equifibered-span-diagram : (s : spanning-type-span-diagram 𝒮) → left-family-equifibered-span-diagram (left-map-span-diagram 𝒮 s) → spanning-type-family-equifibered-span-diagram s map-inv-left-family-equifibered-span-diagram = map-inv-equiv ∘ equiv-left-family-equifibered-span-diagram map-inv-right-family-equifibered-span-diagram : (s : spanning-type-span-diagram 𝒮) → right-family-equifibered-span-diagram ( right-map-span-diagram 𝒮 s) → spanning-type-family-equifibered-span-diagram s map-inv-right-family-equifibered-span-diagram = map-inv-equiv ∘ equiv-right-family-equifibered-span-diagram is-equiv-map-left-family-equifibered-span-diagram : (s : spanning-type-span-diagram 𝒮) → is-equiv (map-left-family-equifibered-span-diagram s) is-equiv-map-left-family-equifibered-span-diagram s = is-equiv-map-equiv (equiv-left-family-equifibered-span-diagram s) is-equiv-map-right-family-equifibered-span-diagram : (s : spanning-type-span-diagram 𝒮) → is-equiv (map-right-family-equifibered-span-diagram s) is-equiv-map-right-family-equifibered-span-diagram s = is-equiv-map-equiv (equiv-right-family-equifibered-span-diagram s) equiv-left-right-family-equifibered-span-diagram : (s : spanning-type-span-diagram 𝒮) → left-family-equifibered-span-diagram (left-map-span-diagram 𝒮 s) ≃ right-family-equifibered-span-diagram (right-map-span-diagram 𝒮 s) equiv-left-right-family-equifibered-span-diagram s = equiv-right-family-equifibered-span-diagram s ∘e inv-equiv (equiv-left-family-equifibered-span-diagram s) map-left-right-family-equifibered-span-diagram : (s : spanning-type-span-diagram 𝒮) → left-family-equifibered-span-diagram (left-map-span-diagram 𝒮 s) → right-family-equifibered-span-diagram (right-map-span-diagram 𝒮 s) map-left-right-family-equifibered-span-diagram = map-equiv ∘ equiv-left-right-family-equifibered-span-diagram equiv-right-left-family-equifibered-span-diagram : (s : spanning-type-span-diagram 𝒮) → right-family-equifibered-span-diagram ( right-map-span-diagram 𝒮 s) ≃ left-family-equifibered-span-diagram ( left-map-span-diagram 𝒮 s) equiv-right-left-family-equifibered-span-diagram s = equiv-left-family-equifibered-span-diagram s ∘e inv-equiv (equiv-right-family-equifibered-span-diagram s) map-right-left-family-equifibered-span-diagram : (s : spanning-type-span-diagram 𝒮) → right-family-equifibered-span-diagram ( right-map-span-diagram 𝒮 s) → left-family-equifibered-span-diagram ( left-map-span-diagram 𝒮 s) map-right-left-family-equifibered-span-diagram = map-equiv ∘ equiv-right-left-family-equifibered-span-diagram descent-data-pushout-equifibered-span-diagram : descent-data-pushout 𝒮 l4 l5 descent-data-pushout-equifibered-span-diagram = ( left-family-equifibered-span-diagram , right-family-equifibered-span-diagram , equiv-left-right-family-equifibered-span-diagram)
Equifibered span diagrams induced by descent data for pushouts
module _ {l1 l2 l3 l4 l5 : Level} {𝒮 : span-diagram l1 l2 l3} (P : descent-data-pushout 𝒮 l4 l5) where equifibered-span-diagram-descent-data-pushout : equifibered-span-diagram 𝒮 l4 l5 l4 equifibered-span-diagram-descent-data-pushout = ( left-family-descent-data-pushout P) , ( right-family-descent-data-pushout P) , ( left-family-descent-data-pushout P ∘ left-map-span-diagram 𝒮) , ( λ _ → id-equiv) , ( equiv-family-descent-data-pushout P)
Equifibered span diagrams induced by families over cocones
module _ {l1 l2 l3 l4 : Level} {𝒮 : span-diagram l1 l2 l3} {X : UU l4} (c : cocone-span-diagram 𝒮 X) where equifibered-span-diagram-family-cocone-span-diagram : {l5 : Level} → (X → UU l5) → equifibered-span-diagram 𝒮 l5 l5 l5 equifibered-span-diagram-family-cocone-span-diagram P = equifibered-span-diagram-descent-data-pushout ( descent-data-family-cocone-span-diagram c P)
See also
- Descent data for pushouts is a variant of equifibered span diagrams where a type family over the middle vertex is not specified.