# 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.