# Morphisms of spans ```agda module foundation.morphisms-spans where ``` <details><summary>Imports</summary> ```agda open import foundation.dependent-pair-types open import foundation.spans open import foundation.universe-levels open import foundation-core.cartesian-product-types open import foundation-core.commuting-squares-of-maps open import foundation-core.commuting-triangles-of-maps open import foundation-core.operations-spans ``` </details> ## Idea A {{#concept "morphism of spans" Agda=hom-span}} from a [span](foundation.spans.md) `A <-f- S -g-> B` to a span `A <-h- T -k-> B` consists of a map `w : S → T` [equipped](foundation.structure.md) with two [homotopies](foundation-core.homotopies.md) witnessing that the diagram ```text S / | \ f / | \ h ∨ | ∨ A |w B ∧ | ∧ h \ | / k \ ∨ / T ``` [commutes](foundation.commuting-triangles-of-maps.md). ## Definitions ### Morphisms between spans ```agda module _ {l1 l2 l3 l4 : Level} {A : UU l1} {B : UU l2} (s : span l3 A B) (t : span l4 A B) where left-coherence-hom-span : (spanning-type-span s → spanning-type-span t) → UU (l1 ⊔ l3) left-coherence-hom-span = coherence-triangle-maps (left-map-span s) (left-map-span t) right-coherence-hom-span : (spanning-type-span s → spanning-type-span t) → UU (l2 ⊔ l3) right-coherence-hom-span = coherence-triangle-maps (right-map-span s) (right-map-span t) coherence-hom-span : (spanning-type-span s → spanning-type-span t) → UU (l1 ⊔ l2 ⊔ l3) coherence-hom-span f = left-coherence-hom-span f × right-coherence-hom-span f hom-span : UU (l1 ⊔ l2 ⊔ l3 ⊔ l4) hom-span = Σ (spanning-type-span s → spanning-type-span t) coherence-hom-span module _ {l1 l2 l3 l4 : Level} {A : UU l1} {B : UU l2} (s : span l3 A B) (t : span l4 A B) (f : hom-span s t) where map-hom-span : spanning-type-span s → spanning-type-span t map-hom-span = pr1 f left-triangle-hom-span : left-coherence-hom-span s t map-hom-span left-triangle-hom-span = pr1 (pr2 f) right-triangle-hom-span : right-coherence-hom-span s t map-hom-span right-triangle-hom-span = pr2 (pr2 f) ```