Product Types #
This file formalizes definitions and results about permutations and supports for product types.
Permutations #
instance
NominalSets.Prod.instPermActionProd
{𝔸 : Type u_1}
{X : Type u_2}
{Y : Type u_3}
[PermAction 𝔸 X]
[PermAction 𝔸 Y]
:
PermAction 𝔸 (X × Y)
Equations
- NominalSets.Prod.instPermActionProd = { perm := fun (π : NominalSets.Perm 𝔸) (x : X × Y) => (NominalSets.perm π x.1, NominalSets.perm π x.2), perm_one := ⋯, perm_mul := ⋯ }
@[simp]
theorem
NominalSets.Prod.perm_fst
{𝔸 : Type u_1}
{X : Type u_2}
{Y : Type u_3}
[PermAction 𝔸 X]
[PermAction 𝔸 Y]
(π : Perm 𝔸)
(x : X × Y)
:
@[simp]
theorem
NominalSets.Prod.perm_snd
{𝔸 : Type u_1}
{X : Type u_2}
{Y : Type u_3}
[PermAction 𝔸 X]
[PermAction 𝔸 Y]
(π : Perm 𝔸)
(x : X × Y)
:
instance
NominalSets.Prod.instDiscretePermActionProd
{𝔸 : Type u_1}
{X : Type u_2}
{Y : Type u_3}
[PermAction 𝔸 X]
[PermAction 𝔸 Y]
[DiscretePermAction 𝔸 X]
[DiscretePermAction 𝔸 Y]
:
DiscretePermAction 𝔸 (X × Y)
Supports #
@[simp]
theorem
NominalSets.Prod.isSupportOf_mk
{𝔸 : Type u_1}
{X : Type u_2}
{Y : Type u_3}
[PermAction 𝔸 X]
[PermAction 𝔸 Y]
(A : Finset 𝔸)
(x : X)
(y : Y)
:
@[simp]
theorem
NominalSets.Prod.isSupported_mk
{𝔸 : Type u_1}
{X : Type u_2}
{Y : Type u_3}
[PermAction 𝔸 X]
[PermAction 𝔸 Y]
(x : X)
(y : Y)
:
instance
NominalSets.Prod.instNominalProd
{𝔸 : Type u_1}
{X : Type u_2}
{Y : Type u_3}
[PermAction 𝔸 X]
[PermAction 𝔸 Y]
[Nominal 𝔸 X]
[Nominal 𝔸 Y]
:
@[simp]
theorem
NominalSets.Prod.supp_mk
{𝔸 : Type u_1}
{X : Type u_2}
{Y : Type u_3}
[PermAction 𝔸 X]
[PermAction 𝔸 Y]
[DecidableEq 𝔸]
[Nominal 𝔸 X]
[Nominal 𝔸 Y]
(x : X)
(y : Y)
:
@[simp]
theorem
NominalSets.Prod.isSupportedF_fst
{𝔸 : Type u_1}
{X : Type u_2}
{Y : Type u_3}
[PermAction 𝔸 X]
[PermAction 𝔸 Y]
:
@[simp]
theorem
NominalSets.Prod.isSupportedF_snd
{𝔸 : Type u_1}
{X : Type u_2}
{Y : Type u_3}
[PermAction 𝔸 X]
[PermAction 𝔸 Y]
:
theorem
NominalSets.Prod.isSupportedF_mk
{𝔸 : Type u_1}
{X : Type u_2}
{Y : Type u_3}
{Z : Type u_4}
[PermAction 𝔸 X]
[PermAction 𝔸 Y]
[PermAction 𝔸 Z]
{f : X → Y}
(hf : IsSupportedF 𝔸 f)
{g : X → Z}
(hg : IsSupportedF 𝔸 g)
:
IsSupportedF 𝔸 fun (x : X) => (f x, g x)
Equivariance #
@[simp]
theorem
NominalSets.Prod.equivariant_fst
{𝔸 : Type u_1}
{X : Type u_2}
{Y : Type u_3}
[PermAction 𝔸 X]
[PermAction 𝔸 Y]
:
@[simp]
theorem
NominalSets.Prod.equivariant_snd
{𝔸 : Type u_1}
{X : Type u_2}
{Y : Type u_3}
[PermAction 𝔸 X]
[PermAction 𝔸 Y]
:
theorem
NominalSets.Prod.equivariant_mk
{𝔸 : Type u_1}
{X : Type u_2}
{Y : Type u_3}
{Z : Type u_4}
[PermAction 𝔸 X]
[PermAction 𝔸 Y]
[PermAction 𝔸 Z]
{f : X → Y}
(hf : Equivariant 𝔸 f)
{g : X → Z}
(hg : Equivariant 𝔸 g)
:
Equivariant 𝔸 fun (x : X) => (f x, g x)