Documentation

Mathlib.GroupTheory.FreeGroup.CyclicallyReduced

This file defines some extra lemmas for free groups, in particular about cyclically reduced words.

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)
      def FreeGroup.reduceCyclically {α : Type u} [DecidableEq α] :
      List (α × Bool)List (α × Bool)

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

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For

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

        Equations
        • One or more equations did not get rendered due to their size.
        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]

          Partner function to reduceCyclically. See reduceCyclically.conjugation.

          Equations
          • One or more equations did not get rendered due to their size.
          Instances For

            Partner function to reduceCyclically. See reduceCyclically.conjugation.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              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 []
              theorem FreeAddGroup.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 []