.. _SectGrpCoxBraid:

.. _group-braid:

Braid Groups
============

.. magma:function:: BraidGroup(W)
   :input_types: GrpFPCox
   :output_types: GrpFP, Map
   :label: BraidGroup_GrpFPCox

   The braid group :math:`B` of the Coxeter group :math:`W` as a finitely presented
   group, together with the natural map :math:`W\to B`. Words in the braid group
   are not automatically normalised. However, the braid group of type :math:`A_n`
   with normalisation can be constructed with the command ``BraidGroup(n+1)`` (see
   Chapter :ref:`ChapGrpBrd`).

.. magma:function:: PureBraidGroup(W)
   :input_types: GrpFPCox
   :output_types: GrpFP, Map
   :label: PureBraidGroup_GrpFPCox

   Returns the pure braid group of the Coxeter group :math:`W`, ie. the kernel of
   the epimorphism from the braid group of :math:`W` to :math:`W`. Words in the
   pure braid group are not automatically normalised.

.. magma:example:: Example: Braid Groups
   :label: BraidGroups

   .. code-block:: magma

      > W<a,b,c> := CoxeterGroup(GrpFPCox, "B3");
      > W;
      Coxeter group: Finitely presented group on 3 generators
      Relations
          a * b * a = b * a * b
          a * c = c * a
          (b * c)^2 = (c * b)^2
          a^2 = Id($)
          b^2 = Id($)
          c^2 = Id($)
      > B<x,y,z> := BraidGroup(W);
      > B;
      Finitely presented group B on 3 generators
      Relations
          x * y * x = y * x * y
          x * z = z * x
          (y * z)^2 = (z * y)^2
      > P := PureBraidGroup(W);
      > P;
      Finitely presented group P on 3 generators
      Generators as words in group B
          P.1 = x^2
          P.2 = y^2
          P.3 = z^2
