Documentation

LeanPool.MarshallHall.MarshallHall.GrushkoGeneral

General free-product rank infrastructure #

This file records the factorwise part of the Grushko--Neumann argument for arbitrary groups. The free product of finitely generated groups is finitely generated, and the union of finite generating sets gives the upper bound.

For the lower bound, a tuple whose entries are already separated between the two factors can be projected back to each factor. The remaining, genuinely Grushko-specific step is to reduce an arbitrary generating tuple to this separated form without increasing its length.

Finite generation and the easy inequality #

The lower bound for separated generating tuples #

def MarshallHall.GeneralGrushko.separatedMap {G : Type u_1} {H : Type u_2} [Group G] [Group H] :
G ⊕ H → Monoid.Coprod G H

The natural embedding of a tagged factor element into the free product.

Equations
Instances For
    def MarshallHall.GeneralGrushko.leftIndex {G : Type u_1} {H : Type u_2} {n : ℕ} (s : Fin n → G ⊕ H) :

    The indices whose separated generator lies in the left factor.

    Equations
    Instances For
      def MarshallHall.GeneralGrushko.rightIndex {G : Type u_1} {H : Type u_2} {n : ℕ} (s : Fin n → G ⊕ H) :

      The indices whose separated generator lies in the right factor.

      Equations
      Instances For
        def MarshallHall.GeneralGrushko.leftValue {G : Type u_1} {H : Type u_2} [Group G] {n : ℕ} (s : Fin n → G ⊕ H) (i : leftIndex s) :
        G

        Extracts the left-factor value at an index known to carry a left label.

        Equations
        Instances For
          def MarshallHall.GeneralGrushko.rightValue {G : Type u_1} {H : Type u_2} [Group H] {n : ℕ} (s : Fin n → G ⊕ H) (i : rightIndex s) :
          H

          Extracts the right-factor value at an index known to carry a right label.

          Equations
          Instances For
            instance MarshallHall.GeneralGrushko.leftIndexFinite {G : Type u_1} {H : Type u_2} {n : ℕ} (s : Fin n → G ⊕ H) :
            instance MarshallHall.GeneralGrushko.rightIndexFinite {G : Type u_1} {H : Type u_2} {n : ℕ} (s : Fin n → G ⊕ H) :
            noncomputable def MarshallHall.GeneralGrushko.leftGenerators {G : Type u_1} {H : Type u_2} [Group G] {n : ℕ} (s : Fin n → G ⊕ H) :

            The finite set of left-factor generators occurring in a separated generating tuple.

            Equations
            Instances For
              noncomputable def MarshallHall.GeneralGrushko.rightGenerators {G : Type u_1} {H : Type u_2} [Group H] {n : ℕ} (s : Fin n → G ⊕ H) :

              The finite set of right-factor generators occurring in a separated generating tuple.

              Equations
              Instances For
                inductive MarshallHall.GeneralGrushko.NielsenStep {A : Type u_3} [Group A] {n : ℕ} (x y : Fin n → A) :

                One elementary Nielsen move on a finite generating tuple. Permutations, inversion of one entry, and multiplication of one entry by a different entry all preserve the subgroup generated by the tuple.

                Instances For

                  The subgroup generated by a tuple is unchanged by one Nielsen move.

                  def MarshallHall.GeneralGrushko.NielsenEquivalent {A : Type u_3} [Group A] {n : ℕ} (x y : Fin n → A) :

                  Finite sequences of elementary Nielsen moves.

                  Equations
                  Instances For

                    The generator-reduction statement in its stronger, classical form: every finite generating tuple is Nielsen-equivalent to a tuple separated between the two factors.

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

                      The generator-reduction statement needed for the lower bound in the general Grushko--Neumann theorem. It says that every finite generating tuple can be replaced, with the same number of entries, by a tuple whose entries lie in the two original factors. The fold/Nielsen argument is the substantive theorem still to be supplied; this definition keeps its exact interface separate from the rank bookkeeping.

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

                        Once the separated-generators theorem is available, the elementary factorwise bounds assemble into full rank additivity.

                        Rank additivity follows from the stronger Nielsen-equivalence form of generator reduction.

                        Finite indexed free products of free groups #

                        noncomputable def MarshallHall.GeneralGrushko.coprodIFreeGroupEquiv {ι : Type u_3} (α : ι → Type u_4) :
                        (Monoid.CoprodI fun (i : ι) => FreeGroup (α i)) ≃* FreeGroup ((i : ι) × α i)

                        A finite indexed free product of free groups is identified with the free group on the disjoint union of the bases. This is the finite-family version of the binary free-group calculation in MarshallHall.Grushko.

                        Equations
                        Instances For
                          instance MarshallHall.GeneralGrushko.coprodI_freeGroup_fg {ι : Type u_3} [Finite ι] (α : ι → Type u_4) [∀ (i : ι), Finite (α i)] :
                          Group.FG (Monoid.CoprodI fun (i : ι) => FreeGroup (α i))
                          theorem MarshallHall.GeneralGrushko.rank_coprodI_freeGroup {ι : Type u_3} [Fintype ι] (α : ι → Type u_4) [(i : ι) → Fintype (α i)] :
                          Group.rank (Monoid.CoprodI fun (i : ι) => FreeGroup (α i)) = ∑ i : ι, Fintype.card (α i)

                          Grushko rank additivity for a finite indexed free product of finite-rank free groups. The arbitrary-factor theorem still requires the separate generator-reduction theorem above; this result is the fully formalized free factor subcase.

                          A finite-word length for the binary free product #

                          The next step in the arbitrary-factor theorem is a reduction of a finite generating tuple. This gives the reduction argument an honest complexity measure without committing to a particular normal-form implementation. A word is a list of tagged factor elements, and its length is the least length of a word representing the given free-product element. The elementary calculus below is enough for induction on reductions: words concatenate, factor elements have length at most one, and multiplication is subadditive.

                          def MarshallHall.GeneralGrushko.factorWordProd {G : Type u_1} {H : Type u_2} [Group G] [Group H] :
                          List (G ⊕ H) → Monoid.Coprod G H

                          Evaluation of a finite alternating-free word in the binary free product. The list is not required to be reduced; factorWordLength takes the minimum over all such representatives.

                          Equations
                          Instances For

                            An element has a factor-word representation of the specified length.

                            Equations
                            Instances For
                              noncomputable def MarshallHall.GeneralGrushko.factorWordLength {G : Type u_1} {H : Type u_2} [Group G] [Group H] (x : Monoid.Coprod G H) :

                              The least number of factor letters needed to represent an element.

                              Equations
                              Instances For