# Coherently idempotent maps

```agda
module foundation.coherently-idempotent-maps where
```

<details><summary>Imports</summary>

```agda
open import elementary-number-theory.natural-numbers

open import foundation.dependent-pair-types
open import foundation.homotopy-algebra
open import foundation.quasicoherently-idempotent-maps
open import foundation.split-idempotent-maps
open import foundation.universe-levels
open import foundation.whiskering-homotopies-composition

open import foundation-core.function-types
open import foundation-core.homotopies
open import foundation-core.propositions
open import foundation-core.retractions
open import foundation-core.sets
```

</details>

## Idea

A
{{#concept "coherently idempotent map" Disambiguation="of types" Agda=is-coherently-idempotent}}
is an [idempotent](foundation.idempotent-maps.md) map `f : A → A`
[equipped](foundation.structure.md) with an infinitely coherent hierarchy of
[homotopies](foundation-core.homotopies.md) making it a "homotopy-correct"
definition of an idempotent map in Homotopy Type Theory.

The infinite coherence condition is given by taking the
[sequential limit](foundation.sequential-limits.md) of iterated application of
the splitting construction on
[quasicoherently idempotent maps](foundation.quasicoherently-idempotent-maps.md)
given in {{#cite Shu17}}:

```text
  is-coherently-idempotent f :=
    Σ (a : ℕ → is-quasicoherently-idempotent f), (Π (n : ℕ), split(aₙ₊₁) ~ aₙ)
```

**Terminology.** Our definition of a _coherently idempotent map_ corresponds to
the definition of a _(fully coherent) idempotent map_ in {{#reference Shu17}}
and {{#reference Shu14SplittingIdempotents}}. Our definition of an _idempotent
map_ corresponds in their terminology to a _pre-idempotent map_.

## Definitions

### The structure on a map of coherent idempotence

```agda
is-coherently-idempotent : {l : Level} {A : UU l}  (A  A)  UU l
is-coherently-idempotent f =
  Σ (   is-quasicoherently-idempotent f)
    ( λ a 
      (n : ) 
      htpy-is-quasicoherently-idempotent
        ( is-quasicoherently-idempotent-is-split-idempotent
          ( is-split-idempotent-is-quasicoherently-idempotent
            ( a (succ-ℕ n))))
        ( a n))
```

## See also

- [Split idempotent maps](foundation.split-idempotent-maps.md)

## References

{{#bibliography}} {{#reference Shu17}} {{#reference Shu14SplittingIdempotents}}