# Commuting triangles of morphisms of arrows ```agda module foundation.commuting-triangles-of-morphisms-arrows where ``` <details><summary>Imports</summary> ```agda open import foundation.homotopies-morphisms-arrows open import foundation.morphisms-arrows open import foundation.universe-levels ``` </details> ## Idea Consider a triangle of [morphisms of arrows](foundation.morphisms-arrows.md) ```text top f ----> g \ / left \ / right ∨ ∨ h ``` then we can ask that the triangle {{#concept "commutes" Disambiguation="triangle of morphisms of arrows"}} by asking for a [homotopy](foundation.homotopies-morphisms-arrows.md) of morphisms of arrows ```text left ~ right ∘ top. ``` This is [equivalent](foundation-core.equivalences.md) to asking for a [commuting prism of maps](foundation-core.commuting-prisms-of-maps.md), given the square faces in the diagram ```text f ∙ ---------> ∙ |\ |\ | \ | \ | \ | \ | ∨ | ∨ | ∙ --- g ---> ∙ | / | / | / | / | / | / ∨∨ ∨∨ ∙ ---------> ∙. h ``` ## Definition ```agda module _ {l1 l2 l3 l4 l5 l6 : Level} {A : UU l1} {A' : UU l2} {B : UU l3} {B' : UU l4} {C : UU l5} {C' : UU l6} (f : A → A') (g : B → B') (h : C → C') (left : hom-arrow f h) (right : hom-arrow g h) (top : hom-arrow f g) where coherence-triangle-hom-arrow : UU (l1 ⊔ l2 ⊔ l5 ⊔ l6) coherence-triangle-hom-arrow = htpy-hom-arrow f h left (comp-hom-arrow f g h right top) coherence-triangle-hom-arrow' : UU (l1 ⊔ l2 ⊔ l5 ⊔ l6) coherence-triangle-hom-arrow' = htpy-hom-arrow f h (comp-hom-arrow f g h right top) left ```