# Strongly extensional maps
```agda
module foundation.strongly-extensional-maps where
```
<details><summary>Imports</summary>
```agda
open import foundation.apartness-relations
open import foundation.universe-levels
```
</details>
## Idea
Consider a function `f : A → B` between types equipped with apartness relations.
Then we say that `f` is **strongly extensional** if
```text
f x # f y → x # y
```
## Definition
```agda
strongly-extensional :
{l1 l2 l3 l4 : Level} (A : Type-With-Apartness l1 l2)
(B : Type-With-Apartness l3 l4) →
(type-Type-With-Apartness A → type-Type-With-Apartness B) → UU (l1 ⊔ l2 ⊔ l4)
strongly-extensional A B f =
(x y : type-Type-With-Apartness A) →
apart-Type-With-Apartness B (f x) (f y) → apart-Type-With-Apartness A x y
```
## Properties
```text
is-strongly-extensional :
{l1 l2 l3 l4 : Level} (A : Type-With-Apartness l1 l2)
(B : Type-With-Apartness l3 l4) →
(f : type-Type-With-Apartness A → type-Type-With-Apartness B) →
strongly-extensional A B f
is-strongly-extensional A B f x y H = {!!}
```