Documentation

Mathlib.GroupTheory.FreeGroup.CyclicallyReduced

This file defines some extra lemmas for free groups, in particular about cyclically reduced words. We show that free groups are (strongly) torsion-free in the sense of IsMulTorsionFree, i.e., taking powers by every non-zero element n : ℕ is injective.

Main declarations #

Predicate asserting that the word L is cyclically reduced, i.e., it is reduced and furthermore the first and the last letter of the word do not cancel. The empty word is by convention also cyclically reduced.

Equations
    Instances For

      Predicate asserting that the word L is cyclically reduced, i.e., it is reduced and furthermore the first and the last letter of the word do not cancel. The empty word is by convention also cyclically reduced.

      Equations
        Instances For
          theorem FreeGroup.isCyclicallyReduced_iff {α : Type u} {L : List (α × Bool)} :
          IsCyclicallyReduced L IsReduced L aL.getLast?, bL.head?, a.1 = b.1a.2 = b.2
          theorem FreeAddGroup.isCyclicallyReduced_iff {α : Type u} {L : List (α × Bool)} :
          IsCyclicallyReduced L IsReduced L aL.getLast?, bL.head?, a.1 = b.1a.2 = b.2
          theorem FreeGroup.isCyclicallyReduced_cons_append_iff {α : Type u} {L : List (α × Bool)} {a b : α × Bool} :
          IsCyclicallyReduced (b :: L ++ [a]) IsReduced (b :: L ++ [a]) (a.1 = b.1a.2 = b.2)
          theorem FreeAddGroup.isCyclicallyReduced_cons_append_iff {α : Type u} {L : List (α × Bool)} {a b : α × Bool} :
          IsCyclicallyReduced (b :: L ++ [a]) IsReduced (b :: L ++ [a]) (a.1 = b.1a.2 = b.2)
          theorem FreeGroup.IsReduced.append_flatten_replicate_append {α : Type u} {L₁ L₂ L₃ : List (α × Bool)} (h₁ : IsCyclicallyReduced L₂) (h₂ : IsReduced (L₁ ++ L₂ ++ L₃)) {n : } (hn : n 0) :
          IsReduced (L₁ ++ (List.replicate n L₂).flatten ++ L₃)
          theorem FreeAddGroup.IsReduced.append_flatten_replicate_append {α : Type u} {L₁ L₂ L₃ : List (α × Bool)} (h₁ : IsCyclicallyReduced L₂) (h₂ : IsReduced (L₁ ++ L₂ ++ L₃)) {n : } (hn : n 0) :
          IsReduced (L₁ ++ (List.replicate n L₂).flatten ++ L₃)
          def FreeGroup.reduceCyclically {α : Type u} [DecidableEq α] :
          List (α × Bool)List (α × Bool)

          This function produces a subword of a word L by cancelling the first and last letters of L as long as possible. If L is reduced, the resulting word will be cyclically reduced.

          Equations
            Instances For

              This function produces a subword of a word L by cancelling the first and last letters of L as long as possible. If L is reduced, the resulting word will be cyclically reduced.

              Equations
                Instances For
                  theorem FreeGroup.reduceCyclically.cons_append {α : Type u} [DecidableEq α] {a b : α × Bool} (L : List (α × Bool)) :
                  reduceCyclically (a :: (L ++ [b])) = if b.1 = a.1 (!b.2) = a.2 then reduceCyclically L else a :: L ++ [b]
                  theorem FreeAddGroup.reduceCyclically.cons_append {α : Type u} [DecidableEq α] {a b : α × Bool} (L : List (α × Bool)) :
                  reduceCyclically (a :: (L ++ [b])) = if b.1 = a.1 (!b.2) = a.2 then reduceCyclically L else a :: L ++ [b]
                  theorem FreeGroup.reduceCyclically.conjugator.cons_append {α : Type u} [DecidableEq α] {a b : α × Bool} (L : List (α × Bool)) :
                  conjugator (a :: (L ++ [b])) = if b.1 = a.1 (!b.2) = a.2 then a :: conjugator L else []

                  Free groups are torsion-free, i.e., taking powers is injective. Our proof idea is as follows: if x ^ n = y ^ n, then also x ^ (2 * n) = y ^ (2 * n). We then compare the reduced words representing the powers in terms of the cyclic reductions of x.toWord and y.toWord using reduce_flatten_replicate. We conclude that the cyclic reductions of x.toWord and y.toWord must have the same length, and in fact they have to agree.

                  Free additive groups are torsion free, i.e., scalar multiplication by every non-zero element n : ℕ is injective. See the instance for free groups for an overview over the proof.