Documentation

QuasiBorelSpaces.Rose

@[simp]
theorem Rose.Encoding.isHom_mk {A : Type u_1} [QuasiBorelSpace A] :
QuasiBorelSpace.IsHom fun (x : A × List (Encoding A)) => mk x.1 x.2
theorem Rose.Encoding.isHom_fold {A : Type u_1} {B : Type u_2} [QuasiBorelSpace A] [QuasiBorelSpace B] {mk : AList BB} (hmk : QuasiBorelSpace.IsHom fun (x : A × List B) => match x with | (x, y) => mk x y) :
theorem QuasiBorelSpace.Rose.isHom_mk {A : Type u_1} [QuasiBorelSpace A] :
IsHom fun (x : A × List (Rose A)) => { label := x.1, children := x.2 }
theorem QuasiBorelSpace.Rose.isHom_cons' {A : Type u_1} {B : Type u_2} [QuasiBorelSpace A] [QuasiBorelSpace B] {f : AB} (hf : IsHom f) {g : AList (Rose B)} (hg : IsHom g) :
IsHom fun (x : A) => { label := f x, children := g x }
theorem QuasiBorelSpace.Rose.isHom_fold {A : Type u_1} {B : Type u_2} [QuasiBorelSpace A] [QuasiBorelSpace B] {mk : AList BB} (hmk : IsHom fun (x : A × List B) => match x with | (x, xs) => mk x xs) :
theorem QuasiBorelSpace.Rose.isHom_fold' {A : Type u_1} {B : Type u_2} {C : Type u_3} [QuasiBorelSpace A] [QuasiBorelSpace B] [QuasiBorelSpace C] {mk : ABList CC} (hmk : IsHom fun (x : A × B × List C) => match x with | (x, y, z) => mk x y z) {f : ARose B} (hf : IsHom f) :
IsHom fun (x : A) => Rose.fold (mk x) (f x)
@[simp]
theorem QuasiBorelSpace.Rose.isHom_label {A : Type u_1} [QuasiBorelSpace A] :
IsHom fun (t : Rose A) => t.label
@[simp]
theorem QuasiBorelSpace.Rose.isHom_bind {A : Type u_1} {B : Type u_2} {C : Type u_3} [QuasiBorelSpace A] [QuasiBorelSpace B] [QuasiBorelSpace C] {f : ABRose C} (hf : IsHom fun (x : A × B) => match x with | (x, y) => f x y) {g : ARose B} (hg : IsHom g) :
IsHom fun (x : A) => Rose.bind (f x) (g x)