Documentation

TauCeti.GroupTheory.SpecificGroups.Braid

The Artin braid group #

The braid group B n on n strands is the group generated by the elementary braids σ 0, …, σ (n - 2), where σ i crosses strand i over strand i + 1, subject to

These are exactly the Artin-Tits relations of the Coxeter matrix of type A, so TauCeti.BraidGroup n is defined as TauCeti.ArtinGroup (CoxeterMatrix.A (n - 1)) and inherits the presentation and exponent-sum homomorphism proved there. This file restates the universal property in the classical index form and adds the type-A bookkeeping: the two relations in their classical index form, and the permutation homomorphism B n →* Equiv.Perm (Fin n) recording where a braid sends its strands, which is what makes the presentation visibly non-degenerate.

Indexing follows the classical convention: BraidGroup n is the group on n strands, so its generators are indexed by Fin (n - 1) and it acts on the n strands Fin n. In particular BraidGroup 0 and BraidGroup 1 are trivial.

Two theorems keep the presentation honest. TauCeti.BraidGroup.permHom_surjective says that every permutation of the strands is realised by a braid, and TauCeti.BraidGroup.not_commute_sigma says that two generators sharing a strand do not commute, so BraidGroup n is nonabelian as soon as n ≥ 3. Together with TauCeti.BraidGroup.sigma_ne_one and TauCeti.BraidGroup.orderOf_sigma (each generator is nontrivial and has infinite order), they rule out the collapse that a mis-stated relator set would cause.

Main definitions #

Main results #

References #

This is Layer 4 ("knot theory, done properly") of the geometric-topology roadmap (TauCetiRoadmap/GeometricTopology/README.md), which lists "braid closures (over PresentedMonoid braid groups with the Artin relations)" among the presentations of a knot, with the closure of a braid word and Markov's theorem as the edge joining that presentation to the diagram hub.

@[reducible, inline]

The Artin braid group on n strands: the Artin-Tits group of the Coxeter matrix of type A (n - 1). This is motivated by the classical identification of the corresponding Coxeter group with the symmetric group on the n strands, which is not formalized here; permHom below is constructed directly from adjacent transpositions.

Equations
Instances For
    def TauCeti.BraidGroup.sigma {n : } (i : Fin (n - 1)) :

    The elementary braid σ i, crossing strand i over strand i + 1.

    Equations
    Instances For

      An elementary braid is a standard Artin-Tits generator. This is the bridge that carries the universal property TauCeti.ArtinGroup.lift and its computation rule over to BraidGroup.

      theorem TauCeti.BraidGroup.sigma_mul_sigma_comm {n : } {i j : Fin (n - 1)} (h : i + 2 j j + 2 i) :

      Disjoint crossings commute.

      theorem TauCeti.BraidGroup.sigma_braid {n : } {i j : Fin (n - 1)} (h : i + 1 = j j + 1 = i) :

      Crossings sharing a strand satisfy the braid relation.

      @[simp]
      theorem TauCeti.BraidGroup.sigma_ne_one {n : } (i : Fin (n - 1)) :

      Every elementary braid is nontrivial.

      @[simp]
      theorem TauCeti.BraidGroup.orderOf_sigma {n : } (i : Fin (n - 1)) :

      Every elementary braid has infinite order.

      @[simp]
      theorem TauCeti.BraidGroup.sigma_zpow_eq_one_iff {n : } (i : Fin (n - 1)) (k : ) :
      sigma i ^ k = 1 k = 0

      A power of an elementary braid is trivial only for the exponent 0.

      @[simp]
      theorem TauCeti.BraidGroup.sigma_pow_eq_one_iff {n : } (i : Fin (n - 1)) (k : ) :
      sigma i ^ k = 1 k = 0

      A natural-number power of an elementary braid is trivial only for the exponent 0.

      @[simp]

      The exponent sum of an elementary braid is one.

      @[simp]

      The elementary braids generate the braid group.

      theorem TauCeti.BraidGroup.sigma_induction_on {n : } {p : BraidGroup nProp} (b : BraidGroup n) (sigma : ∀ (i : Fin (n - 1)), p (sigma i)) (one : p 1) (mul : ∀ (b b' : BraidGroup n), p bp b'p (b * b')) (inv : ∀ (b : BraidGroup n), p bp b⁻¹) :
      p b

      To prove a predicate for every braid, it suffices to prove it for the identity and elementary braids and show that it is preserved by multiplication and inverse.

      def TauCeti.BraidGroup.lift {n : } {G : Type u_1} [Group G] (f : Fin (n - 1)G) (hcomm : ∀ {i j : Fin (n - 1)}, i + 2 j j + 2 if i * f j = f j * f i) (hbraid : ∀ {i j : Fin (n - 1)}, i + 1 = j j + 1 = if i * f j * f i = f j * f i * f j) :

      The universal property of the braid-group presentation: a family satisfying distant commutation and the adjacent braid relation extends to a homomorphism from BraidGroup n.

      Equations
      Instances For
        @[simp]
        theorem TauCeti.BraidGroup.lift_sigma {n : } {G : Type u_1} [Group G] (f : Fin (n - 1)G) (hcomm : ∀ {i j : Fin (n - 1)}, i + 2 j j + 2 if i * f j = f j * f i) (hbraid : ∀ {i j : Fin (n - 1)}, i + 1 = j j + 1 = if i * f j * f i = f j * f i * f j) (i : Fin (n - 1)) :
        (lift f hcomm hbraid) (sigma i) = f i

        The homomorphism constructed by BraidGroup.lift takes each elementary braid to its prescribed value.

        theorem TauCeti.BraidGroup.hom_ext {n : } {G : Type u_1} [Group G] {f g : BraidGroup n →* G} (h : ∀ (i : Fin (n - 1)), f (sigma i) = g (sigma i)) :
        f = g

        Two homomorphisms from a braid group are equal if they agree on every elementary braid. The generic ArtinGroup.hom_ext remains the registered extensionality theorem for this abbrev.

        def TauCeti.BraidGroup.strand {n : } (i : Fin (n - 1)) :
        Fin n

        The lower of the two strands crossed by sigma i.

        Equations
        Instances For
          def TauCeti.BraidGroup.strandSucc {n : } (i : Fin (n - 1)) :
          Fin n

          The upper of the two strands crossed by sigma i.

          Equations
          Instances For
            @[simp]
            theorem TauCeti.BraidGroup.val_strand {n : } (i : Fin (n - 1)) :
            (strand i) = i
            @[simp]
            theorem TauCeti.BraidGroup.val_strandSucc {n : } (i : Fin (n - 1)) :
            (strandSucc i) = i + 1

            The two strands crossed by an elementary braid are distinct.

            Distinct braid indices have distinct upper strands.

            theorem TauCeti.BraidGroup.strand_ne_strandSucc_of_succ {n : } {i j : Fin (n - 1)} (h : i + 1 = j) :

            If j follows i, the lower strand of i differs from the upper strand of j.

            theorem TauCeti.BraidGroup.strand_eq_strandSucc_of_succ {n : } {i j : Fin (n - 1)} (h : i + 1 = j) :

            If j follows i, its lower strand is the upper strand of i.

            The transposition of the two strands crossed by sigma i.

            Equations
            Instances For

              The transposition underlying an elementary braid is Mathlib's adjacent-swap generator.

              The adjacent transpositions underlying disjoint elementary braids commute.

              theorem TauCeti.BraidGroup.transposition_braid {n : } {i j : Fin (n - 1)} (h : i + 1 = j j + 1 = i) :

              The adjacent transpositions underlying neighbouring elementary braids satisfy the braid relation.

              The underlying permutation of the strands of a braid, obtained from the universal property TauCeti.BraidGroup.lift and the two relations satisfied by the adjacent transpositions.

              Equations
              Instances For
                @[simp]
                theorem TauCeti.BraidGroup.permHom_sigma {n : } (i : Fin (n - 1)) :

                Every permutation of the strands is realised by a braid.

                The homomorphism from BraidGroup (n + 1) to BraidGroup (n + 2) that adds one strand and leaves it uncrossed: each elementary braid is sent to the elementary braid of the same index, and the new top strand is never touched. This is the homomorphism the Markov stabilization move is built from.

                Equations
                Instances For
                  @[simp]
                  theorem TauCeti.BraidGroup.permHom_strandIncl_castSucc {n : } (b : BraidGroup (n + 1)) (i : Fin (n + 1)) :
                  ((permHom (n + 2)) (strandIncl b)) i.castSucc = (((permHom (n + 1)) b) i).castSucc

                  The added strand does not interfere: on the old strands, strandIncl b permutes exactly as b does.

                  The last elementary braid of BraidGroup (n + 2) transposes the last two strands.

                  @[simp]
                  theorem TauCeti.BraidGroup.permHom_strandIncl_last {n : } (b : BraidGroup (n + 1)) :
                  ((permHom (n + 2)) (strandIncl b)) (Fin.last (n + 1)) = Fin.last (n + 1)

                  The strand added by strandIncl is left where it is.

                  The pure braid group: the braids that return every strand to its own position.

                  Equations
                  Instances For

                    An integer power of an elementary braid is pure exactly when its exponent is even.

                    A natural-number power of an elementary braid is pure exactly when its exponent is even.

                    The square of an elementary braid is a pure braid: the two strands cross twice and end where they started.

                    An elementary braid is not pure: it exchanges the two strands that it crosses.

                    theorem TauCeti.BraidGroup.not_commute_sigma {n : } {i j : Fin (n - 1)} (h : i + 1 = j j + 1 = i) :

                    Two elementary braids sharing a strand do not commute.

                    theorem TauCeti.BraidGroup.exists_not_commute {n : } (h : 3 n) :
                    ∃ (a : BraidGroup n) (b : BraidGroup n), ¬Commute a b

                    The braid group on at least three strands is nonabelian: the first two elementary braids share a strand, so they do not commute.