def
Hex.PermGroup.Action.Orbit.schreier
{n : Nat}
{G : Group n}
{α : Type u}
[DecidableEq α]
{a : Action G α}
{x : α}
{c : Orbit G α}
(h : Valid a x c)
(p : Element G)
(i : Fin c.objects.size)
:
Element G
Schreier elements stay in the original permutation group. The action on objects is used only to select the representative at the new orbit index.
Equations
Instances For
theorem
Hex.PermGroup.Action.Orbit.schreier_mem
{n : Nat}
{G : Group n}
{α : Type u}
[DecidableEq α]
{a : Action G α}
{x : α}
{c : Orbit G α}
(h : Valid a x c)
{T : Array (Perm n)}
(hs : ∀ (j : Fin G.generators.size) (i : Fin c.objects.size), Generated T (schreier h ⟨G.generators[↑j], ⋯⟩ i).val)
(p : Element G)
(i : Fin c.objects.size)
:
Generator Schreier elements suffice for all elements, by the multiplication and inverse identities above. This proof does not assume a faithful action.
def
Hex.PermGroup.Action.Orbit.stabilizerGens
{n : Nat}
{G : Group n}
{α : Type u}
[DecidableEq α]
{a : Action G α}
{x : α}
{c : Orbit G α}
(h : Valid a x c)
:
Full Schreier family, in original-generator then orbit-discovery order.
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
Hex.PermGroup.Action.Orbit.stabilizerGens_spec
{n : Nat}
{G : Group n}
{α : Type u}
[DecidableEq α]
{a : Action G α}
{x : α}
{c : Orbit G α}
(h : Valid a x c)
(p : Perm n)
:
The Schreier family generates exactly the object stabilizer in the original group, including every element in the action kernel.
def
Hex.PermGroup.Action.Orbit.stabilizer
{n : Nat}
{G : Group n}
{α : Type u}
[DecidableEq α]
{a : Action G α}
{x : α}
{c : Orbit G α}
(h : Valid a x c)
:
Group n
Rebuild a checked chain for the complete object stabilizer, keeping only the Schreier generators that are not generated by earlier ones.
Equations
Instances For
theorem
Hex.PermGroup.Action.Orbit.mem_stabilizer
{n : Nat}
{G : Group n}
{α : Type u}
[DecidableEq α]
{a : Action G α}
{x : α}
{c : Orbit G α}
(h : Valid a x c)
(p : Perm n)
:
theorem
Hex.PermGroup.Action.Orbit.stabilizer_subgroup
{n : Nat}
{G : Group n}
{α : Type u}
[DecidableEq α]
{a : Action G α}
{x : α}
{c : Orbit G α}
(h : Valid a x c)
:
(stabilizer h).IsSubgroup G
def
Hex.PermGroup.Action.Orbit.schreierWord
{n : Nat}
{G : Group n}
{α : Type u}
[DecidableEq α]
{a : Action G α}
{x : α}
{c : Orbit G α}
(h : Valid a x c)
(j : Fin G.generators.size)
(i : Fin c.objects.size)
:
A Schreier generator has a checked program in the original inputs.
Equations
Instances For
theorem
Hex.PermGroup.Action.Orbit.check_schreierWord
{n : Nat}
{G : Group n}
{α : Type u}
[DecidableEq α]
{a : Action G α}
{x : α}
{c : Orbit G α}
(h : Valid a x c)
(j : Fin G.generators.size)
(i : Fin c.objects.size)
: