An executable left action with laws for every group element. Its argument is a permutation value with membership evidence, independent of word programs.
- act : Element G → α → α
Instances For
@[simp]
def
Hex.PermGroup.Action.restrict
{n : Nat}
{G : Group n}
{α : Type u}
(a : Action G α)
(H : Group n)
(h : H.IsSubgroup G)
:
Action H α
Restrict an action to a checked subgroup, without changing its values.
Equations
Instances For
Componentwise action on fixed-length tuples; repeated entries are retained.
Equations
- a.vectors k = { act := fun (p : Hex.PermGroup.Element G) (xs : Vector α k) => Vector.map (a.act p) xs, id_act := ⋯, comp_act := ⋯ }
Instances For
The natural action on the declared point domain, including degree zero.
Equations
- Hex.PermGroup.Action.natural G = { act := fun (p : Hex.PermGroup.Element G) (x : Fin n) => p.val.get x, id_act := ⋯, comp_act := ⋯ }
Instances For
Equations
Instances For
Bit vectors represent subsets. Moving points forward reads their membership at inverse images, so this obeys the same left-action composition convention.
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
Hex.PermGroup.Action.invariant
{n : Nat}
{G : Group n}
{α : Type u}
(a : Action G α)
(P : α → Prop)
(h : ∀ (i : Fin G.generators.size) (x : α), P x ↔ P (a.act ⟨G.generators[↑i], ⋯⟩ x))
(p : Element G)
(x : α)
:
A predicate invariant under the signed input generators is invariant under every group element. This also applies when the action has a nontrivial kernel.