# The univalence axiom implies function extensionality
```agda
module foundation.univalence-implies-function-extensionality where
```
<details><summary>Imports</summary>
```agda
open import foundation.dependent-pair-types
open import foundation.equivalence-induction
open import foundation.function-extensionality
open import foundation.postcomposition-functions
open import foundation.type-arithmetic-dependent-pair-types
open import foundation.universe-levels
open import foundation.weak-function-extensionality
open import foundation-core.contractible-maps
open import foundation-core.contractible-types
open import foundation-core.fibers-of-maps
open import foundation-core.function-types
open import foundation-core.homotopies
open import foundation-core.identity-types
open import foundation-core.transport-along-identifications
```
</details>
## Idea
The [univalence axiom](foundation-core.univalence.md) implies
[function extensionality](foundation.function-extensionality.md).
## Theorem
```agda
abstract
weak-funext-univalence : {l : Level} → weak-function-extensionality-Level l l
weak-funext-univalence A B is-contr-B =
is-contr-retract-of
( fiber (postcomp A pr1) id)
( ( λ f → ((λ x → (x , f x)) , refl)) ,
( λ h x → tr B (htpy-eq (pr2 h) x) (pr2 (pr1 h x))) ,
( refl-htpy))
( is-contr-map-is-equiv
( is-equiv-postcomp-univalence A (equiv-pr1 is-contr-B))
( id))
abstract
funext-univalence :
{l : Level} → function-extensionality-Level l l
funext-univalence f = funext-weak-funext weak-funext-univalence f
```