# Precomposition of dependent functions
```agda
module foundation-core.precomposition-dependent-functions where
```
<details><summary>Imports</summary>
```agda
open import foundation.action-on-identifications-dependent-functions
open import foundation.dependent-homotopies
open import foundation.universe-levels
open import foundation-core.homotopies
```
</details>
## Idea
Given a function `f : A → B` and a type family `X` over `B`, the
**precomposition function**
```text
- ∘ f : ((y : B) → X b) → ((x : A) → X (f x))
```
is defined by `λ h x → h (f x)`.
## Definitions
### The precomposition operation on dependent function
```agda
module _
{l1 l2 l3 : Level} {A : UU l1} {B : UU l2} (f : A → B) (C : B → UU l3)
where
precomp-Π : ((b : B) → C b) → ((a : A) → C (f a))
precomp-Π h a = h (f a)
```
## Properties
### The action of dependent precomposition on homotopies
```agda
module _
{l1 l2 l3 : Level} {A : UU l1} {B : UU l2}
{f g : A → B} (H : f ~ g) (C : B → UU l3) (h : (y : B) → C y)
where
htpy-precomp-Π :
dependent-homotopy (λ _ → C) H (precomp-Π f C h) (precomp-Π g C h)
htpy-precomp-Π x = apd h (H x)
```