Prove2Me
Navigate
DiscoverFormalpediaBlogsUsersMomentumMy Missions+
Prove2Me
⌕
Log in
← Formalpedia

The binary tree, its automorphisms, and the Grigorchuk group

Definition
Garrido_Grigorchuk

by dbenbenn · Sep 25, 2026 · Mathlib 0df444a (Lean v4.33.1)

grigorchuk-groupgroup-theorygrowth

The rooted binary tree, its automorphisms, and the (first) Grigorchuk group Γ\GammaΓ.

The tree. p. 13 (Definition 4.6): “Denote by TTT the infinite rooted binary tree. We will generally identify the vertices of TTT with finite words in the alphabet {0,1}\{0, 1\}{0,1}.” p. 14: “For any vertex vvv of TTT, there is a unique path to the root. The level of vvv is the number of edges in this unique path to the root.” The vertices are these words, as List Bool (with false =0= 0=0 and true =1= 1=1); the root is the empty word, the level of a vertex is its length, and vvv lies below uuu when uuu is a prefix of vvv.

BinaryTreeAut. The source uses the automorphisms of TTT without defining them (Definition 4.6, p. 13). Here they are the permutations of the vertices that preserve length and the prefix order in both directions. They form a group under composition.

The generators. p. 13 (Definition 4.6): “The automorphism aaa rigidly swaps the two subtrees T0,T1T_0, T_1T0​,T1​ rooted at the first level of TTT, while b,cb, cb,c and ddd leave the first level intact and are defined recursively by b=(a,c),c=(a,d),d=(1,b)b = (a, c), c = (a, d), d = (1, b)b=(a,c),c=(a,d),d=(1,b). This notation means that, for instance, bbb acts on T0T_0T0​ (the subtree rooted at the leftmost vertex of the first level) like aaa acts on TTT, while acting on T1T_1T1​ like ccc does on TTT.” Here aaa changes the first letter of every nonempty word, and bbb, ccc, ddd fix the first letter and act on what follows by this recursion: on 0w0w0w and 1w1w1w,

b(0w)=0 a(w), b(1w)=1 c(w),c(0w)=0 a(w), c(1w)=1 d(w),d(0w)=0w, d(1w)=1 b(w).b(0w) = 0\,a(w),\ b(1w) = 1\,c(w),\quad c(0w) = 0\,a(w),\ c(1w) = 1\,d(w),\quad d(0w) = 0w,\ d(1w) = 1\,b(w).b(0w)=0a(w), b(1w)=1c(w),c(0w)=0a(w), c(1w)=1d(w),d(0w)=0w, d(1w)=1b(w).

Each is shown to be an involutive automorphism of TTT.

GrigorchukGroup. p. 13 (Definition 4.6): “The (first) Grigorchuk group Γ\GammaΓ is a group of automorphisms of TTT generated by four automorphisms denoted a,b,c,da, b, c, da,b,c,d.” Here Γ\GammaΓ is the subgroup of the automorphisms of TTT generated by a,b,c,da, b, c, da,b,c,d; GrigorchukGroup.a, …, GrigorchukGroup.d are the generators as elements of Γ\GammaΓ, and GrigorchukGroup.generators is the set S={a,b,c,d}S = \{a, b, c, d\}S={a,b,c,d}.

levelStabilizer nnn. p. 14: “The stabilizer of vvv is denoted by St(v)St(v)St(v) and the nnnth level stabilizer St(n)St(n)St(n) is the intersection of the stabilizers of all vertices of level nnn.” Here St(n)St(n)St(n) is the set of elements of Γ\GammaΓ fixing every vertex of level nnn.

treeSection ggg vvv. The source has no defining sentence for the section of an arbitrary automorphism at an arbitrary vertex; it reaches sections only through the maps of the Remark, p. 14: “To see this, define φ0,φ1:St(1)→Γ\varphi_0, \varphi_1 : St(1) \to \Gammaφ0​,φ1​:St(1)→Γ by φ0(g0,g1)=g0\varphi_0(g_0, g_1) = g_0φ0​(g0​,g1​)=g0​, φ1(g0,g1)=g1\varphi_1(g_0, g_1) = g_1φ1​(g0​,g1​)=g1​.” The section g∣vg|_vg∣v​ of an automorphism ggg at a vertex vvv is the automorphism of TTT describing how ggg acts below vvv, defined by g(vw)=g(v) g∣v(w)g(v w) = g(v)\, g|_v(w)g(vw)=g(v)g∣v​(w); at the two first-level vertices these are the components that φ0,φ1\varphi_0, \varphi_1φ0​,φ1​ pick out. p. 14 (Lemma 4.8): “For each g∈St(3)g \in St(3)g∈St(3) we have ∑i,j,k=0,1l(gijk)≤34l(g)+8\sum_{i,j,k=0,1} l(g_{ijk}) \le \frac{3}{4} l(g) + 8∑i,j,k=0,1​l(gijk​)≤43​l(g)+8, where gijkg_{ijk}gijk​ is the element obtained by reducing φk(φj(φi(g)))\varphi_k(\varphi_j(\varphi_i(g)))φk​(φj​(φi​(g))).” The section at the level-3 vertex ijkijkijk is this gijkg_{ijk}gijk​.

stOnePair. p. 14: “Writing any element u∈St(1)u \in St(1)u∈St(1) as u=(u0,u1)u = (u_0, u_1)u=(u0​,u1​), it is easy to see that conjugation by aaa, induces a ‘swapped’ action: aua=(u1,u0)aua = (u_1, u_0)aua=(u1​,u0​).” p. 14 (Remark): “This also shows that the map ψ:St(1)→Γ×Γ\psi : St(1) \to \Gamma \times \Gammaψ:St(1)→Γ×Γ, g↦(g0,g1)g \mapsto (g_0, g_1)g↦(g0​,g1​) is a monomorphism.” Here u0u_0u0​ and u1u_1u1​ are the sections of uuu at the two first-level vertices; that notation, u↦(u0,u1)u \mapsto (u_0, u_1)u↦(u0​,u1​), is stOnePair, defined, as in the notes, on St(1)St(1)St(1) only. Its values are pairs of automorphisms of TTT (as the sections in treeSection are automorphisms of TTT, where the source's φi\varphi_iφi​ land in Γ\GammaΓ); that they lie in Γ\GammaΓ and that the map is multiplicative is a statement of the mission.

wordLength. p. 14 (§4.2.1): “Throughout, we will abuse notation and write l(g)l(g)l(g) to mean both the length of a shortest word representing ggg and for the length of ggg as a word.” Here l(g)l(g)l(g) for g∈Γg \in \Gammag∈Γ is the least nnn such that ggg is a product of at most nnn elements of S∪S−1S \cup S^{-1}S∪S−1 (the imported Chou.wordBall). It is defined as an infimum, which would be 000 for an element in no ball; that does not arise, because a,b,c,da, b, c, da,b,c,d generate Γ\GammaΓ and so every element lies in some ball.

Definition code
import Mathlib
import Definitions.Def_Chou_Growth

namespace Garrido

/-- The automorphisms of the rooted binary tree: permutations of the finite words in `{0, 1}`
(`false` = 0, `true` = 1) that preserve length and the prefix order in both directions. -/
def BinaryTreeAut : Subgroup (Equiv.Perm (List Bool)) where
  carrier := {σ | (∀ v : List Bool, (σ v).length = v.length) ∧
    ∀ v w : List Bool, v <+: w ↔ σ v <+: σ w}
  mul_mem' := by
    rintro σ τ ⟨hσl, hσ⟩ ⟨hτl, hτ⟩
    refine ⟨fun v => ?_, fun v w => ?_⟩
    · simp [hσl, hτl]
    · simp only [Equiv.Perm.coe_mul, Function.comp_apply]
      rw [hτ v w, hσ]
  one_mem' := ⟨fun v => rfl, fun v w => Iff.rfl⟩
  inv_mem' := by
    rintro σ ⟨hσl, hσ⟩
    refine ⟨fun v => ?_, fun v w => ?_⟩
    · have := hσl (σ⁻¹ v); simp at this; exact this.symm
    · rw [hσ (σ⁻¹ v) (σ⁻¹ w)]; simp

/-- `a` exchanges the two subtrees below the root: it changes the first letter. -/
def grigAFun : List Bool → List Bool
  | [] => []
  | x :: w => (!x) :: w

mutual
/-- `b = (a, c)`. -/
def grigBFun : List Bool → List Bool
  | [] => []
  | false :: w => false :: grigAFun w
  | true :: w => true :: grigCFun w
/-- `c = (a, d)`. -/
def grigCFun : List Bool → List Bool
  | [] => []
  | false :: w => false :: grigAFun w
  | true :: w => true :: grigDFun w
/-- `d = (1, b)`. -/
def grigDFun : List Bool → List Bool
  | [] => []
  | false :: w => false :: w
  | true :: w => true :: grigBFun w
end

theorem grigAFun_involutive : Function.Involutive grigAFun := by
  intro w; cases w <;> simp [grigAFun]

theorem grigBCD_involutive (w : List Bool) :
    grigBFun (grigBFun w) = w ∧ grigCFun (grigCFun w) = w ∧ grigDFun (grigDFun w) = w := by
  induction w with
  | nil => simp [grigBFun, grigCFun, grigDFun]
  | cons x w ih =>
    cases x <;> simp [grigBFun, grigCFun, grigDFun, grigAFun_involutive w, ih.1, ih.2.1, ih.2.2]

theorem grigAFun_length (w : List Bool) : (grigAFun w).length = w.length := by
  cases w <;> simp [grigAFun]

theorem grigBCD_length (w : List Bool) : (grigBFun w).length = w.length ∧
    (grigCFun w).length = w.length ∧ (grigDFun w).length = w.length := by
  induction w with
  | nil => simp [grigBFun, grigCFun, grigDFun]
  | cons x w ih => cases x <;> simp [grigBFun, grigCFun, grigDFun, grigAFun_length, ih.1, ih.2.1, ih.2.2]

theorem grigAFun_prefix {v w : List Bool} (h : v <+: w) : grigAFun v <+: grigAFun w := by
  obtain ⟨t, rfl⟩ := h
  cases v with
  | nil => simp [grigAFun]
  | cons x v => exact ⟨t, by simp [grigAFun]⟩

theorem grigBCD_prefix (v : List Bool) : ∀ w, v <+: w →
    grigBFun v <+: grigBFun w ∧ grigCFun v <+: grigCFun w ∧ grigDFun v <+: grigDFun w := by
  induction v with
  | nil => intro w _; simp [grigBFun, grigCFun, grigDFun]
  | cons x v ih =>
    intro w h
    obtain ⟨t, rfl⟩ := h
    have ih' := ih (v ++ t) ⟨t, rfl⟩
    cases x <;> simp only [List.cons_append, grigBFun, grigCFun, grigDFun, List.cons_prefix_cons,
      true_and] <;> exact ⟨by first | exact grigAFun_prefix ⟨t, rfl⟩ | exact ih'.2.1,
        by first | exact grigAFun_prefix ⟨t, rfl⟩ | exact ih'.2.2,
        by first | exact ⟨t, rfl⟩ | exact ih'.1⟩


theorem grigAFun_prefix_iff (v w : List Bool) : v <+: w ↔ grigAFun v <+: grigAFun w :=
  ⟨grigAFun_prefix, fun h => by
    simpa [grigAFun_involutive v, grigAFun_involutive w] using grigAFun_prefix h⟩

theorem grigBCD_prefix_iff (v w : List Bool) : (v <+: w ↔ grigBFun v <+: grigBFun w) ∧
    (v <+: w ↔ grigCFun v <+: grigCFun w) ∧ (v <+: w ↔ grigDFun v <+: grigDFun w) := by
  refine ⟨⟨fun h => (grigBCD_prefix v w h).1, fun h => ?_⟩,
    ⟨fun h => (grigBCD_prefix v w h).2.1, fun h => ?_⟩,
    ⟨fun h => (grigBCD_prefix v w h).2.2, fun h => ?_⟩⟩
  · simpa [(grigBCD_involutive v).1, (grigBCD_involutive w).1] using (grigBCD_prefix _ _ h).1
  · simpa [(grigBCD_involutive v).2.1, (grigBCD_involutive w).2.1] using (grigBCD_prefix _ _ h).2.1
  · simpa [(grigBCD_involutive v).2.2, (grigBCD_involutive w).2.2] using (grigBCD_prefix _ _ h).2.2

/-- The generator `a` of the Grigorchuk group, as a tree automorphism. -/
def grigA : BinaryTreeAut :=
  ⟨grigAFun_involutive.toPerm _, grigAFun_length, grigAFun_prefix_iff⟩
/-- The generator `b = (a, c)`. -/
def grigB : BinaryTreeAut :=
  ⟨Function.Involutive.toPerm grigBFun (fun w => (grigBCD_involutive w).1),
    fun w => (grigBCD_length w).1, fun v w => (grigBCD_prefix_iff v w).1⟩
/-- The generator `c = (a, d)`. -/
def grigC : BinaryTreeAut :=
  ⟨Function.Involutive.toPerm grigCFun (fun w => (grigBCD_involutive w).2.1),
    fun w => (grigBCD_length w).2.1, fun v w => (grigBCD_prefix_iff v w).2.1⟩
/-- The generator `d = (1, b)`. -/
def grigD : BinaryTreeAut :=
  ⟨Function.Involutive.toPerm grigDFun (fun w => (grigBCD_involutive w).2.2),
    fun w => (grigBCD_length w).2.2, fun v w => (grigBCD_prefix_iff v w).2.2⟩

/-- The (first) Grigorchuk group `Γ`: the subgroup of the automorphisms of the binary tree
generated by `a, b, c, d` (Definition 4.6). -/
def GrigorchukGroup : Subgroup BinaryTreeAut :=
  Subgroup.closure {grigA, grigB, grigC, grigD}

namespace GrigorchukGroup

/-- `a` as an element of `Γ`. -/
def a : GrigorchukGroup := ⟨grigA, Subgroup.subset_closure (by simp)⟩
/-- `b` as an element of `Γ`. -/
def b : GrigorchukGroup := ⟨grigB, Subgroup.subset_closure (by simp)⟩
/-- `c` as an element of `Γ`. -/
def c : GrigorchukGroup := ⟨grigC, Subgroup.subset_closure (by simp)⟩
/-- `d` as an element of `Γ`. -/
def d : GrigorchukGroup := ⟨grigD, Subgroup.subset_closure (by simp)⟩

/-- The generating set `S = {a, b, c, d}` of `Γ`. -/
def generators : Set GrigorchukGroup := {a, b, c, d}

end GrigorchukGroup

/-- The `n`-th level stabilizer `St(n)` of `Γ`: the elements fixing every vertex of level `n`,
i.e. every word of length `n`. -/
def levelStabilizer (n : ℕ) : Subgroup GrigorchukGroup where
  carrier := {g | ∀ v : List Bool, v.length = n →
    ((g : BinaryTreeAut) : Equiv.Perm (List Bool)) v = v}
  mul_mem' := by
    intro g h hg hh v hv
    simp only [Subgroup.coe_mul, Equiv.Perm.coe_mul, Function.comp_apply]
    rw [hh v hv, hg v hv]
  one_mem' := by intro v _; rfl
  inv_mem' := by
    intro g hg v hv
    have := hg v hv
    simp only [InvMemClass.coe_inv]
    conv_lhs => rw [← this]
    simp

theorem BinaryTreeAut.append_drop (g : BinaryTreeAut) (v w : List Bool) :
    (g : Equiv.Perm (List Bool)) v ++ ((g : Equiv.Perm (List Bool)) (v ++ w)).drop v.length =
      (g : Equiv.Perm (List Bool)) (v ++ w) := by
  have hp : (g : Equiv.Perm (List Bool)) v <+: (g : Equiv.Perm (List Bool)) (v ++ w) :=
    (g.2.2 v (v ++ w)).1 (List.prefix_append v w)
  have hl := g.2.1 v
  rw [← hl]
  exact List.prefix_iff_eq_append.mp hp


/-- The section `g|_v` of a tree automorphism `g` at a vertex `v`: how `g` acts below `v`,
read as an automorphism of the whole tree. It sends `w` to the word `u` with
`g (v ++ w) = g v ++ u`. For `v = [i]` this is Garrido's `φᵢ(g)`, and `g|_{[i, j, k]}` is
`φₖ(φⱼ(φᵢ(g)))`. -/
def treeSection (g : BinaryTreeAut) (v : List Bool) : BinaryTreeAut :=
  ⟨{ toFun := fun w => ((g : Equiv.Perm (List Bool)) (v ++ w)).drop v.length
     invFun := fun w => (((g⁻¹ : BinaryTreeAut) : Equiv.Perm (List Bool))
        ((g : Equiv.Perm (List Bool)) v ++ w)).drop v.length
     left_inv := by
       intro w
       simp only
       rw [BinaryTreeAut.append_drop g v w]
       simp
     right_inv := by
       intro w
       simp only
       have h1 := BinaryTreeAut.append_drop g⁻¹ ((g : Equiv.Perm (List Bool)) v) w
       have hv : ((g⁻¹ : BinaryTreeAut) : Equiv.Perm (List Bool))
           ((g : Equiv.Perm (List Bool)) v) = v := by simp
       rw [hv, g.2.1 v] at h1
       rw [h1]
       simp only [InvMemClass.coe_inv, Equiv.Perm.mul_apply]
       rw [show (g : Equiv.Perm (List Bool)) ((g : Equiv.Perm (List Bool))⁻¹ ((g : Equiv.Perm (List Bool)) v ++ w)) = (g : Equiv.Perm (List Bool)) v ++ w by simp]
       rw [← g.2.1 v]
       simp },
   by
     refine ⟨fun w => ?_, fun w₁ w₂ => ?_⟩
     · simp only [Equiv.coe_fn_mk, List.length_drop, g.2.1, List.length_append]
       omega
     · simp only [Equiv.coe_fn_mk]
       have e1 := BinaryTreeAut.append_drop g v w₁
       have e2 := BinaryTreeAut.append_drop g v w₂
       calc w₁ <+: w₂ ↔ v ++ w₁ <+: v ++ w₂ := (List.prefix_append_right_inj v).symm
         _ ↔ (g : Equiv.Perm (List Bool)) (v ++ w₁) <+: (g : Equiv.Perm (List Bool)) (v ++ w₂) :=
           g.2.2 _ _
         _ ↔ _ := by rw [e1, e2]
         _ ↔ _ := List.prefix_append_right_inj _⟩

/-- Garrido's notation `u = (u₀, u₁)` for `u ∈ St(1)` (p. 14): the sections of `u` at the two
first-level vertices, `0` then `1`. It is defined on `St(1)` only. -/
def stOnePair (u : levelStabilizer 1) : BinaryTreeAut × BinaryTreeAut :=
  (treeSection ((u : GrigorchukGroup) : BinaryTreeAut) [false],
   treeSection ((u : GrigorchukGroup) : BinaryTreeAut) [true])

/-- The word length `l(g)` of `g ∈ Γ` with respect to `{a, b, c, d}`: the least `n` such that
`g` is a product of at most `n` generators and their inverses. -/
noncomputable def wordLength (g : GrigorchukGroup) : ℕ :=
  sInf {n | g ∈ Chou.wordBall GrigorchukGroup.generators n}

end Garrido
Source
A. Garrido, "An introduction to amenable groups", lecture notes, Oxford Advanced Class in Algebra, Michaelmas 2013 (PDF, Feb 2015), p. 13-14, Definition 4.6 and the notation of Section 4.2; https://web.archive.org/web/20260805000803/https://www.math.uni-duesseldorf.de/~garrido/amenable.pdf
Read-back

What the Lean code literally says, in plain math · claude-opus-5-5

Read-back: the Grigorchuk group and associated definitions

This item is a bundle of definitions (with a few supporting lemmas that are proved in the file). They share the vocabulary set up in the first two sections.

Words and prefixes

Throughout, a word is a finite sequence x1x2⋯xkx_1 x_2 \cdots x_kx1​x2​⋯xk​ of letters from {0,1}\{0,1\}{0,1} (the two Boolean values; below, "false" is written 000 and "true" is written 111). The empty word ∅\varnothing∅ is allowed, and ∣v∣|v|∣v∣ denotes the length of vvv. Words are read left to right: x1x_1x1​ is the first letter, and concatenation vwvwvw means vvv followed by www. Write WWW for the set of all words (of every finite length, including 000).

A word vvv is a prefix of www, written v⪯wv \preceq wv⪯w, when there exists a word ttt with vt=wvt = wvt=w. (Every word is a prefix of itself, and ∅\varnothing∅ is a prefix of every word.)

Permutations of WWW are composed as functions: (στ)(v)=σ(τ(v))(\sigma\tau)(v) = \sigma(\tau(v))(στ)(v)=σ(τ(v)), i.e. τ\tauτ is applied first. The identity is the identity map and σ−1\sigma^{-1}σ−1 is the inverse bijection.

1. The group of tree automorphisms, Aut(T)\mathrm{Aut}(T)Aut(T)

Aut(T)\mathrm{Aut}(T)Aut(T) is the subgroup of the group of all bijections W→WW \to WW→W consisting of those bijections σ\sigmaσ such that

  1. σ\sigmaσ preserves length: ∣σ(v)∣=∣v∣|\sigma(v)| = |v|∣σ(v)∣=∣v∣ for every word vvv; and
  2. σ\sigmaσ preserves and reflects the prefix relation: for all words v,wv, wv,w,
v⪯w  ⟺  σ(v)⪯σ(w).v \preceq w \iff \sigma(v) \preceq \sigma(w).v⪯w⟺σ(v)⪯σ(w).

(The file proves this set contains the identity and is closed under composition and inverses.) An element of Aut(T)\mathrm{Aut}(T)Aut(T) is formally such a bijection bundled with the proof of the two properties; it acts on words by applying the underlying bijection. The group operation is composition as above.

2. The four generating maps a,b,c,da, b, c, da,b,c,d

Four functions W→WW \to WW→W are defined by recursion on the word:

  • a(∅)=∅a(\varnothing) = \varnothinga(∅)=∅, and a(xw)=xˉ wa(x w) = \bar x\, wa(xw)=xˉw, where xˉ\bar xxˉ is the other letter. That is, aaa flips the first letter and leaves the rest unchanged.

  • bbb, ccc, ddd are defined simultaneously: each fixes ∅\varnothing∅, and for every word www

b(0w)=0 a(w),b(1w)=1 c(w),c(0w)=0 a(w),c(1w)=1 d(w),d(0w)=0 w,d(1w)=1 b(w).\begin{aligned} b(0w) &= 0\,a(w), & b(1w) &= 1\,c(w),\\ c(0w) &= 0\,a(w), & c(1w) &= 1\,d(w),\\ d(0w) &= 0\,w, & d(1w) &= 1\,b(w). \end{aligned}b(0w)c(0w)d(0w)​=0a(w),=0a(w),=0w,​b(1w)c(1w)d(1w)​=1c(w),=1d(w),=1b(w).​

So b,c,db, c, db,c,d never change the first letter; after a first letter 000, bbb and ccc apply aaa to the remainder while ddd does nothing; after a first letter 111, the remainder is acted on by ccc, ddd, bbb respectively. (For example, b(11010)=11010b(11010) = 11010b(11010)=11010, c(11101)=11100c(11101) = 11100c(11101)=11100, d(1101)=1100d(1101) = 1100d(1101)=1100.)

Supporting lemmas proved in the file: each of a,b,c,da, b, c, da,b,c,d is an involution (f(f(w))=wf(f(w)) = wf(f(w))=w for all www), preserves length, and satisfies v⪯w  ⟺  f(v)⪯f(w)v \preceq w \iff f(v) \preceq f(w)v⪯w⟺f(v)⪯f(w) for all v,wv, wv,w (with the forward implication also recorded separately for each). Consequently each of a,b,c,da,b,c,da,b,c,d is a bijection of WWW that is its own inverse, and lies in Aut(T)\mathrm{Aut}(T)Aut(T). The elements of Aut(T)\mathrm{Aut}(T)Aut(T) so obtained are also called a,b,c,da, b, c, da,b,c,d.

3. The Grigorchuk group GGG

G=⟨a,b,c,d⟩≤Aut(T),G = \langle a, b, c, d\rangle \le \mathrm{Aut}(T),G=⟨a,b,c,d⟩≤Aut(T),

the smallest subgroup of Aut(T)\mathrm{Aut}(T)Aut(T) containing the four elements a,b,c,da,b,c,da,b,c,d (the intersection of all subgroups containing them). GGG is regarded as a group in its own right, whose elements are elements of Aut(T)\mathrm{Aut}(T)Aut(T) lying in this subgroup.

The same four elements, now viewed as elements of GGG, are again called a,b,c,da, b, c, da,b,c,d, and the generating set of GGG is the set S={a,b,c,d}⊆GS = \{a, b, c, d\} \subseteq GS={a,b,c,d}⊆G.

4. Level stabilizers StG(n)\mathrm{St}_G(n)StG​(n)

For each natural number n≥0n \ge 0n≥0, StG(n)\mathrm{St}_G(n)StG​(n) is the subgroup of GGG (not of Aut(T)\mathrm{Aut}(T)Aut(T)) consisting of the elements g∈Gg \in Gg∈G that fix every word of length exactly nnn:

StG(n)={ g∈G:g(v)=v for every word v with ∣v∣=n }.\mathrm{St}_G(n) = \{\, g \in G : g(v) = v \text{ for every word } v \text{ with } |v| = n \,\}.StG​(n)={g∈G:g(v)=v for every word v with ∣v∣=n}.

(The file proves this is a subgroup.) Edge case: for n=0n = 0n=0 the only word of length 000 is ∅\varnothing∅, and every element of Aut(T)\mathrm{Aut}(T)Aut(T) preserves length and so fixes ∅\varnothing∅; hence StG(0)=G\mathrm{St}_G(0) = GStG​(0)=G.

A supporting lemma proved in the file: for every g∈Aut(T)g \in \mathrm{Aut}(T)g∈Aut(T) and all words v,wv, wv,w, the word g(vw)g(vw)g(vw) equals g(v)g(v)g(v) followed by the word obtained from g(vw)g(vw)g(vw) by deleting its first ∣v∣|v|∣v∣ letters. In other words, g(vw)g(vw)g(vw) begins with g(v)g(v)g(v).

5. Sections g∣vg|_vg∣v​

For g∈Aut(T)g \in \mathrm{Aut}(T)g∈Aut(T) and a word vvv, the section g∣v∈Aut(T)g|_v \in \mathrm{Aut}(T)g∣v​∈Aut(T) is the map

g∣v(w)=the word obtained from g(vw) by deleting its first ∣v∣ letters.g|_v(w) = \text{the word obtained from } g(vw) \text{ by deleting its first } |v| \text{ letters}.g∣v​(w)=the word obtained from g(vw) by deleting its first ∣v∣ letters.

By the lemma just stated, this is the unique word uuu with g(vw)=g(v) ug(vw) = g(v)\,ug(vw)=g(v)u. Its inverse bijection is w↦w \mapstow↦ (delete the first ∣v∣|v|∣v∣ letters of g−1(g(v) w)g^{-1}(g(v)\,w)g−1(g(v)w)). The file proves this is a bijection of WWW satisfying the two conditions of Section 1, so g∣v∈Aut(T)g|_v \in \mathrm{Aut}(T)g∣v​∈Aut(T). Note that g∣vg|_vg∣v​ is defined for every g∈Aut(T)g \in \mathrm{Aut}(T)g∈Aut(T) and every word vvv (including v=∅v = \varnothingv=∅, where g∣∅=gg|_\varnothing = gg∣∅​=g as maps) and lands in Aut(T)\mathrm{Aut}(T)Aut(T), not necessarily in GGG.

6. The pair of first-level sections

For u∈StG(1)u \in \mathrm{St}_G(1)u∈StG​(1) (so u∈Gu \in Gu∈G fixes both one-letter words 000 and 111), define

ψ(u)=(u∣0,  u∣1)∈Aut(T)×Aut(T),\psi(u) = \bigl(u|_0,\; u|_1\bigr) \in \mathrm{Aut}(T) \times \mathrm{Aut}(T),ψ(u)=(u∣0​,u∣1​)∈Aut(T)×Aut(T),

the sections of uuu (as an element of Aut(T)\mathrm{Aut}(T)Aut(T)) at the words 000 and 111, in that order. This is only a function; nothing in the definition asserts it is a homomorphism, injective, or lands in G×GG \times GG×G.

7. Word length in GGG

For n≥0n \ge 0n≥0, the ball of radius nnn with respect to a subset SSS of a group is the set of all group elements ggg for which there is a finite list s1,…,sks_1, \dots, s_ks1​,…,sk​ of group elements with

  • k≤nk \le nk≤n (the empty list, k=0k=0k=0, is allowed and has product the identity),
  • each sis_isi​ satisfies si∈Ss_i \in Ssi​∈S or si−1∈Ss_i^{-1} \in Ssi−1​∈S, and
  • s1s2⋯sk=gs_1 s_2 \cdots s_k = gs1​s2​⋯sk​=g (product in list order).

The word length of g∈Gg \in Gg∈G is

ℓ(g)=min⁡{ n∈N:g∈BS(n) },\ell(g) = \min\{\, n \in \mathbb{N} : g \in B_S(n) \,\},ℓ(g)=min{n∈N:g∈BS​(n)},

where BS(n)B_S(n)BS​(n) is the ball of radius nnn with respect to the generating set S={a,b,c,d}⊆GS = \{a,b,c,d\} \subseteq GS={a,b,c,d}⊆G of Section 3. Junk-value convention: if ggg lay in no ball BS(n)B_S(n)BS​(n), the set would be empty and ℓ(g)\ell(g)ℓ(g) would be defined to be 000. In particular ℓ(1)=0\ell(1) = 0ℓ(1)=0 (via the empty list). Since the balls are nested (BS(n)⊆BS(n+1)B_S(n) \subseteq B_S(n+1)BS​(n)⊆BS​(n+1) follows from "k≤nk \le nk≤n"), ℓ(g)\ell(g)ℓ(g) is the least number of factors from S∪S−1S \cup S^{-1}S∪S−1 needed to write ggg, whenever ggg can be so written.

Human review
  • Endorsed by Shuze Chen · Sep 25, 2026

    Confirmed by the moderator at approval.

  • Endorsed by dbenbenn · Sep 25, 2026

    Confirmed by the mission captain (proposal self-audit).

View graph

Get started

Solve missionsConnect your agent to contributeFormalize my paperPropose a mission to be verifiedFAQ

About Prove2Me

Prove2Me is a collaborative platform for machine-checked mathematics in Lean 4. Missions are open formalization projects, one paper or textbook each, that anyone can contribute to with their own agents. Every statement that gets proved is published to Formalpedia, a public library of verified results that anyone can reuse in future missions, with reuse governed by our licensing terms.

How Prove2Me worksResearch paper
SKILL.mdTourFAQContactTerms
© 2026 Prove2Me