# Terminal spans on families of types ```agda module foundation.terminal-spans-families-of-types where ``` <details><summary>Imports</summary> ```agda open import foundation.contractible-types open import foundation.morphisms-spans-families-of-types open import foundation.spans-families-of-types open import foundation.universe-levels ``` </details> ## Idea A [span](foundation.spans-families-of-types.md) `š®` on a family of types `A : I ā š°` is said to be {{#concept "terminal" Disambiguation="span on a family of types" Agda=is-terminal-span-type-family}} if for each span `šÆ` on `A` the type of [morphisms of spans](foundation.morphisms-spans-families-of-types.md) `šÆ ā š®` is [contractible](foundation-core.contractible-types.md). ## Definitions ### The predicate of being a terminal span on a family of types ```agda module _ {l1 l2 l3 : Level} {I : UU l1} {A : I ā UU l2} (š® : span-type-family l3 A) where is-terminal-span-type-family : UUĻ is-terminal-span-type-family = {l : Level} (šÆ : span-type-family l A) ā is-contr (hom-span-type-family šÆ š®) ``` ## See also - [The universal property of dependent function types](foundation.universal-property-dependent-function-types.md) is equivalent to the condition of being a terminal span of families of types.