# Postcomposition of dependent functions ```agda module foundation-core.postcomposition-dependent-functions where ``` <details><summary>Imports</summary> ```agda open import foundation.universe-levels open import foundation-core.function-types ``` </details> ## Idea Given a type `A` and a family of maps `f : {a : A} → X a → Y a`, the {{#concept "postcomposition function" Disambiguation="of dependent functions by a family of maps" Agda=postcomp-Π}} of dependent functions `(a : A) → X a` by the family of maps `f` ```text postcomp-Π A f : ((a : A) → X a) → ((a : A) → Y a) ``` is defined by `λ h x → f (h x)`. Note that, since the definition of the family of maps `f` depends on the base `A`, postcomposition of dependent functions does not generalize [postcomposition of functions](foundation-core.postcomposition-functions.md) in the same way that [precomposition of dependent functions](foundation-core.precomposition-dependent-functions.md) generalizes [precomposition of functions](foundation-core.precomposition-functions.md). If `A` can vary while keeping `f` fixed, we have necessarily reduced to the case of [postcomposition of functions](foundation-core.postcomposition-functions.md). ## Definitions ### Postcomposition of dependent functions ```agda module _ {l1 l2 l3 : Level} (A : UU l1) {X : A → UU l2} {Y : A → UU l3} where postcomp-Π : ({a : A} → X a → Y a) → ((a : A) → X a) → ((a : A) → Y a) postcomp-Π f = f ∘_ ```