# Morphisms of twisted arrows ```agda module foundation.morphisms-twisted-arrows where ``` <details><summary>Imports</summary> ```agda open import foundation.dependent-pair-types open import foundation.universe-levels open import foundation-core.function-types open import foundation-core.homotopies ``` </details> ## Idea A **morphism of twisted arrows** from `f : A → B` to `g : X → Y` is a triple `(i , j , H)` consisting of - a map `i : X → A` - a map `j : B → Y`, and - a [homotopy](foundation-core.homotopies.md) `H : j ∘ f ∘ i ~ g` witnessing that the square ```text i A <----- X | | f | | g ∨ ∨ B -----> Y j ``` commutes. Thus, a morphism of twisted arrows can also be understood as _a factorization of `g` through `f`_. ## Definitions ```agda module _ {l1 l2 l3 l4 : Level} {A : UU l1} {B : UU l2} {X : UU l3} {Y : UU l4} (f : A → B) (g : X → Y) where coherence-hom-twisted-arrow : (X → A) → (B → Y) → UU (l3 ⊔ l4) coherence-hom-twisted-arrow i j = j ∘ f ∘ i ~ g hom-twisted-arrow : UU (l1 ⊔ l2 ⊔ l3 ⊔ l4) hom-twisted-arrow = Σ (X → A) (λ i → Σ (B → Y) (coherence-hom-twisted-arrow i)) module _ (α : hom-twisted-arrow) where map-domain-hom-twisted-arrow : X → A map-domain-hom-twisted-arrow = pr1 α map-codomain-hom-twisted-arrow : B → Y map-codomain-hom-twisted-arrow = pr1 (pr2 α) coh-hom-twisted-arrow : map-codomain-hom-twisted-arrow ∘ f ∘ map-domain-hom-twisted-arrow ~ g coh-hom-twisted-arrow = pr2 (pr2 α) ``` ## See also - [Morphisms of arrows](foundation.morphisms-arrows.md).