Jon Sterling and Mike Shulman, September 2023. \begin{code} {-# OPTIONS --safe --without-K #-} module WildCategories.Idempotents where open import MLTT.Spartan open import WildCategories.Base module _ {𝓤 𝓥} (C : WildCategory 𝓤 𝓥) where open WildCategory C record QuasiIdempotence (x : ob) (m : hom x x) : 𝓥 ̇ where field Q0 : m << m = m Q1 : assoc m m m ∙ ap (_<< m) Q0 = ap (m <<_) Q0 record Splitting (x : ob) (m : hom x x) : 𝓤 ⊔ 𝓥 ̇ where field mid : ob sec : hom mid x ret : hom x mid sec-is-section : ret << sec = idn mid splitting : sec << ret = m quasi-idempotents-split : 𝓤 ⊔ 𝓥 ̇ quasi-idempotents-split = (x : ob) (m : hom x x) → QuasiIdempotence x m → Splitting x m \end{code}