For any w : α × bool, FreeGroup.startsWith w is the set of all elemenents of FreeGroup α that
start with w.
The main theorem Orbit.duplicate proves that applying w⁻¹ to the orbit of x under the action
of FreeGroup.startsWith w yields the orbit of x under the action of FreeGroup.startsWith v
for every v ≠ w⁻¹ (and the point x).
theorem
FreeGroup.startsWith.ne_one
{α : Type u_1}
[DecidableEq α]
{w : α × Bool}
(g : FreeGroup α)
(h : g ∈ startsWith w)
:
The neutral element is not contained in one of the startsWith sets.
@[simp]
theorem
FreeGroup.startsWith_mk_mul
{α : Type u_1}
[DecidableEq α]
{w : α × Bool}
(g : FreeGroup α)
(h : g ∉ startsWith (w.1, !w.2))
:
instance
FreeGroup.instSMulElemStartsWith
{α : Type u_1}
{X : Type u_2}
[DecidableEq α]
[MulAction (FreeGroup α) X]
{w : α × Bool}
:
SMul (↑(startsWith w)) X
Equations
- FreeGroup.instSMulElemStartsWith = { smul := fun (g : ↑(FreeGroup.startsWith w)) (x : X) => ↑g • x }
@[simp]
theorem
FreeGroup.startsWith.smul_def
{α : Type u_1}
{X : Type u_2}
[DecidableEq α]
[MulAction (FreeGroup α) X]
{w : α × Bool}
{g : ↑(startsWith w)}
{x : X}
:
theorem
FreeGroup.Orbit.duplicate
{α : Type u_1}
{X : Type u_2}
[DecidableEq α]
[MulAction (FreeGroup α) X]
(x : X)
(w : α × Bool)
:
Applying w⁻¹ to the orbit generated by all elements of a free group that start with w yields
the orbit generated by all the words that start with every letter except w⁻¹
(and the original point).