# The action on identifications of dependent functions

```agda
module foundation.action-on-identifications-dependent-functions where
```

<details><summary>Imports</summary>

```agda
open import foundation.universe-levels

open import foundation-core.dependent-identifications
open import foundation-core.identity-types
```

</details>

## Idea

Given a dependent function `f : (x : A) → B x` and an
[identification](foundation-core.identity-types.md) `p : x = y` in `A`, we
cannot directly compare the values `f x` and `f y`, since `f x` is an element of
type `B x` while `f y` is an element of type `B y`. However, we can
[transport](foundation-core.transport-along-identifications.md) the value `f x`
along `p` to obtain an element of type `B y` that is comparable to the value
`f y`. In other words, we can consider the type of
[dependent identifications](foundation-core.dependent-identifications.md) over
`p` from `f x` to `f y`. The **dependent action on identifications** of `f` on
`p` is a dependent identification

```text
  apd f p : dependent-identification B p (f x) (f y).
```

## Definition

### Functorial action of dependent functions on identity types

```agda
apd :
  {l1 l2 : Level} {A : UU l1} {B : A  UU l2} (f : (x : A)  B x) {x y : A}
  (p : x  y)  dependent-identification B p (f x) (f y)
apd f refl = refl
```