This file introduces Uniform-Iteration Algebras
module UniformIterationAlgebra {o ℓ e} (D : ExtensiveDistributiveCategory o ℓ e) where open ExtensiveDistributiveCategory D renaming (U to C; id to idC) open Cocartesian (Extensive.cocartesian extensive)
record Uniform-Iteration-Algebra-on (A : Obj) : Set (o ⊔ ℓ ⊔ e) where -- iteration operator field _# : ∀ {X} → (X ⇒ A + X) → (X ⇒ A) -- _# properties field #-Fixpoint : ∀ {X} {f : X ⇒ A + X } → f # ≈ [ idC , f # ] ∘ f #-Uniformity : ∀ {X Y} {f : X ⇒ A + X} {g : Y ⇒ A + Y} {h : X ⇒ Y} → (idC +₁ h) ∘ f ≈ g ∘ h → f # ≈ g # ∘ h #-resp-≈ : ∀ {X} {f g : X ⇒ A + X} → f ≈ g → (f #) ≈ (g #) record Uniform-Iteration-Algebra : Set (o ⊔ ℓ ⊔ e) where field A : Obj algebra : Uniform-Iteration-Algebra-on A open Uniform-Iteration-Algebra-on algebra public