instance
NominalSets.Rose.instPermActionRose
{𝔸 : Type u_1}
{X : Type u_2}
[PermAction 𝔸 X]
:
PermAction 𝔸 (Rose X)
Equations
- NominalSets.Rose.instPermActionRose = { perm := fun (π : NominalSets.Perm 𝔸) => Rose.map (NominalSets.perm π), perm_one := ⋯, perm_mul := ⋯ }
instance
NominalSets.Rose.instDiscretePermActionRose
{𝔸 : Type u_1}
{X : Type u_2}
[PermAction 𝔸 X]
[DiscretePermAction 𝔸 X]
:
DiscretePermAction 𝔸 (Rose X)
@[simp]
theorem
NominalSets.Rose.isSupportOf_mk
{𝔸 : Type u_1}
{X : Type u_2}
[PermAction 𝔸 X]
(A : Finset 𝔸)
(x : X)
(xs : List (Rose X))
:
@[simp]
theorem
NominalSets.Rose.isSupported_mk
{𝔸 : Type u_1}
{X : Type u_2}
[PermAction 𝔸 X]
(x : X)
(xs : List (Rose X))
:
instance
NominalSets.Rose.instNominalRose
{𝔸 : Type u_1}
{X : Type u_2}
[PermAction 𝔸 X]
[Nominal 𝔸 X]
:
@[simp]
theorem
NominalSets.Rose.isSupportedF_mk'
{𝔸 : Type u_1}
{X : Type u_2}
{Y : Type u_3}
[PermAction 𝔸 X]
[PermAction 𝔸 Y]
{f : X → Y}
(hf : IsSupportedF 𝔸 f)
{g : X → List (Rose Y)}
(hg : IsSupportedF 𝔸 g)
:
IsSupportedF 𝔸 fun (x : X) => { label := f x, children := g x }
theorem
NominalSets.Rose.isSupportedF_fold
{𝔸 : Type u_1}
{X : Type u_2}
{Y : Type u_3}
{Z : Type u_4}
[PermAction 𝔸 X]
[PermAction 𝔸 Y]
[PermAction 𝔸 Z]
{f : X → Y → List Z → Z}
(hf :
IsSupportedF 𝔸 fun (x : X × Y × List Z) =>
match x with
| (x, y, z) => f x y z)
{g : X → Rose Y}
(hg : IsSupportedF 𝔸 g)
:
IsSupportedF 𝔸 fun (x : X) => Rose.fold (f x) (g x)
@[simp]
@[simp]
@[simp]
theorem
NominalSets.Rose.isSupportedF_bind
{𝔸 : Type u_1}
{X : Type u_2}
{Y : Type u_3}
{Z : Type u_4}
[PermAction 𝔸 X]
[PermAction 𝔸 Y]
[PermAction 𝔸 Z]
{f : X → Y → Rose Z}
(hf :
IsSupportedF 𝔸 fun (x : X × Y) =>
match x with
| (x, y) => f x y)
{g : X → Rose Y}
(hg : IsSupportedF 𝔸 g)
:
IsSupportedF 𝔸 fun (x : X) => Rose.bind (f x) (g x)
@[simp]
theorem
NominalSets.Rose.isSupportedF_map
{𝔸 : Type u_1}
{X : Type u_2}
{Y : Type u_3}
{Z : Type u_4}
[PermAction 𝔸 X]
[PermAction 𝔸 Y]
[PermAction 𝔸 Z]
{f : X → Y → Rose Z}
(hf :
IsSupportedF 𝔸 fun (x : X × Y) =>
match x with
| (x, y) => f x y)
{g : X → Rose Y}
(hg : IsSupportedF 𝔸 g)
:
IsSupportedF 𝔸 fun (x : X) => Rose.map (f x) (g x)