Fixed Points of Functors #
We construct fixed points of continuous (i.e., colimit-preserving) functors and provide a quasi-Borel space instance.
Instances For
@[instance_reducible]
noncomputable instance
QuasiBorelSpace.Fix.inst
{F : Type u_1 → Type u_1}
[Functor F]
:
QuasiBorelSpace (Fix F)
noncomputable def
QuasiBorelSpace.Fix.roll
{F : Type u_1 → Type u_1}
[Functor F]
[Cocontinuous F]
(x : F (Fix F))
:
Fix F
Equations
- One or more equations did not get rendered due to their size.
Instances For
@[simp]
@[simp]
theorem
QuasiBorelSpace.Fix.unroll_roll
{F : Type u_1 → Type u_1}
[Functor F]
[Cocontinuous F]
(x : F (Fix F))
:
@[simp]
theorem
QuasiBorelSpace.Fix.roll_unroll
{F : Type u_1 → Type u_1}
[Functor F]
[Cocontinuous F]
(x : Fix F)
:
noncomputable def
QuasiBorelSpace.Fix.fold₀
{F : Type u_1 → Type u_1}
{A : Type u_1}
[Functor F]
[QuasiBorelSpace A]
(f : F A → A)
(i : ℕ)
:
Sequence.Iterate F i → A
Equations
- QuasiBorelSpace.Fix.fold₀ f 0 x_2 = x_2.elim
- QuasiBorelSpace.Fix.fold₀ f n.succ x_2 = f (QuasiBorelSpace.Functor.map (QuasiBorelSpace.Fix.fold₀ f n) x_2.unroll)
Instances For
@[simp]
theorem
QuasiBorelSpace.Fix.fold₀_eq
{A : Type u_1}
[QuasiBorelSpace A]
{F : Type u_1 → Type u_1}
[Functor F]
{f : F A → A}
(hf : IsHom f)
⦃i j : ℕ⦄
(h : i ≤ j)
(x : Sequence.Iterate F i)
:
noncomputable def
QuasiBorelSpace.Fix.fold
{F : Type u_1 → Type u_1}
{A : Type u_1}
[Functor F]
[QuasiBorelSpace A]
(f : F A → A)
(x : Fix F)
:
A
Equations
Instances For
@[simp]
theorem
QuasiBorelSpace.Fix.isHom_fold
{F : Type u_1 → Type u_1}
{A : Type u_1}
[Functor F]
[QuasiBorelSpace A]
(f : F A → A)
:
@[simp]
theorem
QuasiBorelSpace.Fix.fold_roll
{F : Type u_1 → Type u_1}
{A : Type u_1}
[Functor F]
[QuasiBorelSpace A]
[Cocontinuous F]
(f : F A → A)
(hf : IsHom f)
(x : F (Fix F))
: