Documentation

LeanPool.SmallUndecidableGroups.Presentation

Presentation #

Part of the dependency closure of the small undecidable group constructions.

@[reducible, inline]

A letter in a word on n generators. The Boolean records the sign.

Equations
Instances For
    @[reducible, inline]

    A word on n generators.

    Equations
    Instances For

      The empty word.

      Equations
      Instances For

        A positive generator as a one-letter word.

        Equations
        Instances For

          Formal inverse of a word.

          Equations
          Instances For

            Formal word inversion is primitive recursive for the standard word encoding.

            def Undecidability.Word.mul {n : ℕ} (u v : Word n) :

            Multiplication of words is concatenation.

            Equations
            Instances For
              def Undecidability.Word.product {n : ℕ} (ws : List (Word n)) :

              Concatenate a finite list of words.

              Equations
              Instances For
                def Undecidability.Word.pow {n : ℕ} (w : Word n) (k : ℕ) :

                A nonnegative power of a word.

                Equations
                Instances For
                  def Undecidability.Word.mapGenerators {n k : ℕ} (f : Fin n → Fin k) (w : Word n) :

                  Reindex the generators occurring in a word.

                  Equations
                  Instances For
                    def Undecidability.Word.substitutePositive {n : ℕ} (s₁ s₂ : Word n) (w : List (Fin 2)) :

                    Interpret a positive two-letter word by substituting two group words.

                    Equations
                    Instances For
                      def Undecidability.Word.substitute {n : ℕ} {A : Type u_1} (s : A → Word n) (w : List (A × Bool)) :

                      Substitute a word for every signed generator in a word.

                      Equations
                      Instances For
                        def Undecidability.Word.relation {n : ℕ} (lhs rhs : Word n) :

                        The relator corresponding to the equation lhs = rhs.

                        Equations
                        Instances For

                          The commutator convention [u,v] = u⁻¹v⁻¹uv used in the paper.

                          Equations
                          Instances For
                            @[simp]
                            @[simp]
                            theorem Undecidability.Word.substitute_append {n : ℕ} {A : Type u_1} (s : A → Word n) (u v : List (A × Bool)) :
                            substitute s (u ++ v) = (substitute s u).mul (substitute s v)
                            @[simp]
                            theorem Undecidability.Word.substitute_invRev {n : ℕ} {A : Type u_1} (s : A → Word n) (w : List (A × Bool)) :
                            @[simp]
                            theorem Undecidability.Word.substitute_flatten {n : ℕ} {A : Type u_1} (s : A → Word n) (ws : List (List (A × Bool))) :
                            def Undecidability.Word.eval {n : ℕ} {G : Type u_1} [Group G] (x : Fin n → G) (w : Word n) :
                            G

                            Evaluate a syntactic word after choosing values for its generators.

                            Equations
                            Instances For
                              @[simp]
                              theorem Undecidability.Word.eval_generator {n : ℕ} {G : Type u_1} [Group G] (x : Fin n → G) (i : Fin n) :
                              eval x (generator i) = x i
                              @[simp]
                              theorem Undecidability.Word.eval_mul {n : ℕ} {G : Type u_1} [Group G] (x : Fin n → G) (u v : Word n) :
                              eval x (u.mul v) = eval x u * eval x v
                              @[simp]
                              theorem Undecidability.Word.eval_append {n : ℕ} {G : Type u_1} [Group G] (x : Fin n → G) (u v : Word n) :
                              eval x (u ++ v) = eval x u * eval x v
                              @[simp]
                              theorem Undecidability.Word.eval_inverse {n : ℕ} {G : Type u_1} [Group G] (x : Fin n → G) (w : Word n) :
                              @[simp]
                              theorem Undecidability.Word.eval_pow {n : ℕ} {G : Type u_1} [Group G] (x : Fin n → G) (w : Word n) (k : ℕ) :
                              eval x (w.pow k) = eval x w ^ k
                              @[simp]
                              theorem Undecidability.Word.eval_product {n : ℕ} {G : Type u_1} [Group G] (x : Fin n → G) (ws : List (Word n)) :
                              eval x (product ws) = (List.map (eval x) ws).prod
                              @[simp]
                              theorem Undecidability.Word.eval_mapGenerators {k n : ℕ} {G : Type u_1} [Group G] (x : Fin k → G) (f : Fin n → Fin k) (w : Word n) :
                              eval x (mapGenerators f w) = eval (x ∘ f) w
                              theorem Undecidability.Word.map_eval {n : ℕ} {G : Type u_1} {H : Type u_2} [Group G] [Group H] (f : G →* H) (x : Fin n → G) (w : Word n) :
                              f (eval x w) = eval (⇑f ∘ x) w
                              @[simp]
                              theorem Undecidability.Word.eval_substitutePositive {n : ℕ} {G : Type u_1} [Group G] (x : Fin n → G) (s₁ s₂ : Word n) (w : List (Fin 2)) :
                              eval x (s₁.substitutePositive s₂ w) = (List.map (fun (i : Fin 2) => if i = 0 then eval x s₁ else eval x s₂) w).prod
                              @[simp]
                              theorem Undecidability.Word.eval_substitute {k n : ℕ} {G : Type u_1} [Group G] (x : Fin k → G) (s : Fin n → Word k) (w : Word n) :
                              eval x (substitute s w) = eval (fun (i : Fin n) => eval x (s i)) w
                              @[simp]
                              theorem Undecidability.Word.eval_relation {n : ℕ} {G : Type u_1} [Group G] (x : Fin n → G) (lhs rhs : Word n) :
                              eval x (lhs.relation rhs) = eval x lhs * (eval x rhs)⁻¹
                              theorem Undecidability.Word.eval_relation_eq_one_iff {n : ℕ} {G : Type u_1} [Group G] (x : Fin n → G) (lhs rhs : Word n) :
                              eval x (lhs.relation rhs) = 1 ↔ eval x lhs = eval x rhs
                              @[simp]
                              theorem Undecidability.Word.eval_commutator {n : ℕ} {G : Type u_1} [Group G] (x : Fin n → G) (u v : Word n) :
                              eval x (u.commutator v) = (eval x u)⁻¹ * (eval x v)⁻¹ * eval x u * eval x v
                              structure Undecidability.FP (n m : ℕ) :

                              Syntax for a finite group presentation with exactly n generator slots and exactly m relator slots.

                              • relator : Fin m → Word n

                                The indexed list of relator words in a finite group presentation.

                              Instances For
                                def Undecidability.FP.relSet {n m : ℕ} (P : FP n m) :

                                The relators of a finite presentation, interpreted in the free group.

                                Equations
                                Instances For
                                  @[reducible, inline]
                                  abbrev Undecidability.FP.Group {n m : ℕ} (P : FP n m) :

                                  The group defined by a finite presentation.

                                  Equations
                                  Instances For
                                    def Undecidability.FP.wordProblem {n m : ℕ} (P : FP n m) (w : Word n) :

                                    The word problem for a finite presentation.

                                    Equations
                                    Instances For
                                      def Undecidability.FP.evalWord {n m : ℕ} (P : FP n m) (w : Word n) :

                                      Evaluate a word in the group defined by a presentation.

                                      Equations
                                      Instances For
                                        theorem Undecidability.FP.relator_eq_one {n m : ℕ} (P : FP n m) (i : Fin m) :
                                        P.evalWord (P.relator i) = 1

                                        Every designated relator evaluates to one in the presented group.

                                        def Undecidability.FP.homOfRelators {n m : ℕ} {G : Type u_1} [_root_.Group G] (P : FP n m) (x : Fin n → G) (h : ∀ (i : Fin m), Word.eval x (P.relator i) = 1) :

                                        Map a presented group by choosing images of its generators and proving that the designated relators hold.

                                        Equations
                                        Instances For
                                          @[simp]
                                          theorem Undecidability.FP.homOfRelators_of {n m : ℕ} {G : Type u_1} [_root_.Group G] (P : FP n m) (x : Fin n → G) (h : ∀ (i : Fin m), Word.eval x (P.relator i) = 1) (i : Fin n) :
                                          @[simp]
                                          theorem Undecidability.FP.homOfRelators_evalWord {n m : ℕ} {G : Type u_1} [_root_.Group G] (P : FP n m) (x : Fin n → G) (h : ∀ (i : Fin m), Word.eval x (P.relator i) = 1) (w : Word n) :
                                          (P.homOfRelators x h) (P.evalWord w) = Word.eval x w

                                          A presentation presents the trivial group when every word represents 1.

                                          Equations
                                          Instances For
                                            def Undecidability.FP.NormallyGenerates {n m : ℕ} (P : FP n m) (z : Word n) :

                                            A word normally generates the group defined by P.

                                            Equations
                                            Instances For

                                              A finite presentation is trivial when all of its canonical generators are equal to one.

                                              def Undecidability.FP.Effective {n m : ℕ} (A : ℕ → FP n m) :

                                              A family of finite presentations is effective when one algorithm computes the ith relator of the jth presentation from j and i.

                                              Equations
                                              Instances For

                                                An effective Adian--Rabin family for triviality: there is no algorithm deciding which member of the family presents the trivial group.

                                                Equations
                                                Instances For