# Evaluation of functions ```agda module foundation.evaluation-functions where ``` <details><summary>Imports</summary> ```agda open import foundation.action-on-identifications-functions open import foundation.universe-levels open import foundation-core.identity-types ``` </details> ## Idea Consider a family of types `B` over `A` and let `a : A` be an element. The {{#concept "evaluation function" Agda=ev}} at `a` ```text ev : ((x : A) → B x) → B a ``` is the map given by `f ↦ f a`, evaluating dependent functions at `a`. ## Definitions ### The evaluation function ```agda module _ {l1 l2 : Level} {A : UU l1} {B : A → UU l2} (a : A) where ev : ((x : A) → B x) → B a ev f = f a ``` ### The evaluation function with an explicit type family ```agda module _ {l1 l2 : Level} {A : UU l1} (B : A → UU l2) (a : A) where ev-dependent-function : ((x : A) → B x) → B a ev-dependent-function = ev a ``` ### The evaluation function for nondependent functions ```agda module _ {l1 l2 : Level} {A : UU l1} (B : UU l2) (a : A) where ev-function : (A → B) → B ev-function = ev a ``` ### The evaluation function of implicit functions ```agda module _ {l1 l2 : Level} {A : UU l1} {B : A → UU l2} (a : A) where ev-implicit-function : ({x : A} → B x) → B a ev-implicit-function f = f {a} ``` ### The evaluation function of implicit functions, specified with an explicit type family ```agda module _ {l1 l2 : Level} {A : UU l1} (B : A → UU l2) (a : A) where ev-implicit-function' : ({x : A} → B x) → B a ev-implicit-function' = ev-implicit-function a ``` ## See also - The [action on identifications](foundation.action-on-identifications-functions.md) of the evaluation map is the function `a ↦ λ p → htpy-eq p a` defined in [Function extensionality](foundation.function-extensionality.md).