# Total partial functions
```agda
module foundation.total-partial-functions where
```
<details><summary>Imports</summary>
```agda
open import foundation.dependent-pair-types
open import foundation.partial-functions
open import foundation.universe-levels
open import foundation-core.propositions
```
</details>
## Idea
A [partial function](foundation.partial-functions.md) `f : A → B` is said to be
{{#concept "total" Disambiguation="partial function" Agda=is-total-partial-function}}
if the [partial element](foundation.partial-elements.md) `f a` of `B` is defined
for every `a : A`. The type of total partial functions from `A` to `B` is
[equivalent](foundation-core.equivalences.md) to the type of
[functions](foundation-core.function-types.md) from `A` to `B`.
## Definitions
### The predicate of being a total partial function
```agda
module _
{l1 l2 l3 : Level} {A : UU l1} {B : UU l2} (f : partial-function l3 A B)
where
is-total-prop-partial-function : Prop (l1 ⊔ l3)
is-total-prop-partial-function =
Π-Prop A (is-defined-prop-partial-function f)
is-total-partial-function : UU (l1 ⊔ l3)
is-total-partial-function = type-Prop is-total-prop-partial-function
```
### The type of total partial functions
```agda
total-partial-function :
{l1 l2 : Level} (l3 : Level) → UU l1 → UU l2 → UU (l1 ⊔ l2 ⊔ lsuc l3)
total-partial-function l3 A B =
Σ (partial-function l3 A B) is-total-partial-function
```