mirror of
https://git8.cs.fau.de/theses/bsc-leon-vatthauer.git
synced 2024-05-31 07:28:34 +02:00
Proof that KX is freeElgot (still assuming compositionality)
This commit is contained in:
parent
13450c1d23
commit
a877cd3f25
1 changed files with 20 additions and 0 deletions
|
@ -15,7 +15,12 @@ module Monad.Instance.K.Compositionality {o ℓ e} (ambient : Ambient o ℓ e) (
|
||||||
open MonadK MK
|
open MonadK MK
|
||||||
|
|
||||||
open import Algebra.UniformIterationAlgebra ambient
|
open import Algebra.UniformIterationAlgebra ambient
|
||||||
|
open import Category.Construction.UniformIterationAlgebras ambient
|
||||||
|
open import Category.Construction.ElgotAlgebras ambient
|
||||||
open import Algebra.ElgotAlgebra ambient
|
open import Algebra.ElgotAlgebra ambient
|
||||||
|
open import Algebra.Properties ambient
|
||||||
|
open import Categories.Functor.Core
|
||||||
|
open Functor using (F₀; F₁)
|
||||||
|
|
||||||
elgot : ∀ (A : Obj) → Elgot-Algebra-on (K.₀ A)
|
elgot : ∀ (A : Obj) → Elgot-Algebra-on (K.₀ A)
|
||||||
elgot A = record
|
elgot A = record
|
||||||
|
@ -27,4 +32,19 @@ module Monad.Instance.K.Compositionality {o ℓ e} (ambient : Ambient o ℓ e) (
|
||||||
}
|
}
|
||||||
where
|
where
|
||||||
open Uniform-Iteration-Algebra (algebras A) using (_#; #-Fixpoint; #-Uniformity; #-resp-≈)
|
open Uniform-Iteration-Algebra (algebras A) using (_#; #-Fixpoint; #-Uniformity; #-resp-≈)
|
||||||
|
|
||||||
|
freeElgot : ∀ (A : Obj) → FreeElgotAlgebra A
|
||||||
|
freeElgot A = record
|
||||||
|
{ FX = record { A = K.₀ A ; algebra = elgot A }
|
||||||
|
; η = η (freealgebras A)
|
||||||
|
; _* = λ {X} f → record
|
||||||
|
{ h = Uniform-Iteration-Algebra-Morphism.h (_* (freealgebras A) {A = F₀ elgot-to-uniformF X} f)
|
||||||
|
; preserves = λ {Y} {g} → Uniform-Iteration-Algebra-Morphism.preserves (((freealgebras A) *) f)
|
||||||
|
}
|
||||||
|
; *-lift = *-lift (freealgebras A)
|
||||||
|
; *-uniq = λ {X} f g eq → *-uniq (freealgebras A) f (F₁ elgot-to-uniformF g) eq
|
||||||
|
}
|
||||||
|
where
|
||||||
|
open FreeObject using (η; _*; *-lift; *-uniq)
|
||||||
```
|
```
|
||||||
|
2
|
||||||
|
|
Loading…
Reference in a new issue