This is an archived version pinned as of the submission of my master's thesis. An up-to-date version may be found online.
Types equipped with endomorphisms
module structured-types.types-equipped-with-endomorphisms where
Imports
open import foundation.dependent-pair-types open import foundation.endomorphisms open import foundation.function-types open import foundation.unit-type open import foundation.universe-levels
Idea
A type equipped with an endomorphism consists of a type A
equipped with a map
A → A
.
Definitions
Types equipped with endomorphisms
Type-With-Endomorphism : (l : Level) → UU (lsuc l) Type-With-Endomorphism l = Σ (UU l) endo module _ {l : Level} (X : Type-With-Endomorphism l) where type-Type-With-Endomorphism : UU l type-Type-With-Endomorphism = pr1 X endomorphism-Type-With-Endomorphism : type-Type-With-Endomorphism → type-Type-With-Endomorphism endomorphism-Type-With-Endomorphism = pr2 X
Example
Unit type equipped with endomorphisms
trivial-Type-With-Endomorphism : {l : Level} → Type-With-Endomorphism l pr1 (trivial-Type-With-Endomorphism {l}) = raise-unit l pr2 trivial-Type-With-Endomorphism = id