# The type theoretic replacement axiom

```agda
module foundation.replacement where
```

<details><summary>Imports</summary>

```agda
open import foundation.images
open import foundation.locally-small-types
open import foundation.universe-levels

open import foundation-core.small-types
```

</details>

## Idea

The **type theoretic replacement axiom** asserts that the
[image](foundation.images.md) of a map `f : A → B` from a
[small type](foundation-core.small-types.md) `A` into a
[locally small type](foundation.locally-small-types.md) `B` is small.

## Statement

```agda
instance-replacement :
  (l : Level) {l1 l2 : Level} {A : UU l1} {B : UU l2}  (A  B) 
  UU (lsuc l  l1  l2)
instance-replacement l {A = A} {B} f =
  is-small l A  is-locally-small l B  is-small l (im f)

replacement-axiom-Level : (l l1 l2 : Level)  UU (lsuc l  lsuc l1  lsuc l2)
replacement-axiom-Level l l1 l2 =
  {A : UU l1} {B : UU l2} (f : A  B)  instance-replacement l f

replacement-axiom : UUω
replacement-axiom = {l l1 l2 : Level}  replacement-axiom-Level l l1 l2
```

## Postulate

```agda
postulate
  replacement : replacement-axiom
```

```agda
replacement' :
  {l1 l2 : Level} {A : UU l1} {B : UU l2} (f : A  B) 
  is-locally-small l1 B  is-small l1 (im f)
replacement' f = replacement f is-small'
```

## References

- Theorem 4.6 in {{#cite Rij17}}.
- Section 2.19 in {{#cite SymmetryBook}}.

{{#bibliography}}