.. _SectRSRel:

.. _related-structures:

Related Structures
==================

In this section functions for creating other structures from a root system are
briefly listed. The reader is referred to the appropriate chapters of the
Handbook for more details.

.. magma:function:: RootDatum(R)
   :input_types: RootSys
   :output_types: RootDtm
   :label: RootDatum_RootSys

   The (split) root datum corresponding to the root system :math:`R`. The
   coefficients of the simple roots and coroots must be integral; otherwise an
   error is signalled. See Chapter :ref:`ChapRootDtm`

.. magma:function:: CoxeterGroup(grpcat,R)
   :input_types: Cat, RootSys
   :output_types: grpcat
   :label: CoxeterGroup_Cat_RootSys

   The Coxeter group (of type ``grpcat``) of a root system :math:`R`. There are
   variations of this signature. The first argument can be ``GrpMat``,
   ``GrpPermCox``, ``GrpPerm``, ``GrpFPCox`` or ``GrpFP`` and the second argument
   can be a root system or root datum. See Chapter :ref:`ChapGrpCox`.
   If the first argument is ``GrpFPCox`` the braid group and pure braid group can
   be computed from the Coxeter group using the commands in
   Section :ref:`SectGrpCoxBraid`.

.. magma:function:: CoxeterGroup(R)
   :input_types: RootSys
   :output_types: GrpPermCox
   :label: CoxeterGroup_RootSys

.. magma:function:: WeylGroup(R)
   :input_types: RootSys
   :output_types: GrpPermCox
   :label: WeylGroup_RootSys

   The permutation Coxeter group with root system :math:`R`. See
   Chapter :ref:`ChapGrpCox`.

.. magma:function:: CoxeterGroup(GrpPermCox, R)
   :input_types: Cat, RootSys
   :output_types: RngIntElt
   :label: CoxeterGroup_Cat_RootSys_2

.. magma:function:: ReflectionGroup(R)
   :input_types: RootSys
   :output_types: GrpMat
   :label: ReflectionGroup_RootSys

   The reflection group of the root system :math:`R`. See
   Chapter :ref:`ChapGrpRfl`.

.. magma:function:: CoxeterGroup(GrpPermCox, W)
   :input_types: Cat, RootSys
   :output_types: GrpPermCox
   :label: CoxeterGroup_Cat_RootSys_3

.. magma:function:: LieAlgebra(R, k)
   :input_types: RootSys, Rng
   :output_types: AlgLie
   :label: LieAlgebra_RootSys_Rng

   The Lie algebra of the root system :math:`R` over the base ring :math:`k`. See
   Chapter :ref:`ChapAlgLie`.

.. magma:function:: MatrixLieAlgebra(R, k)
   :input_types: RootSys
   :output_types: GrpMat
   :label: MatrixLieAlgebra_RootSys

   The matrix Lie algebra of the root system :math:`R` over the base ring
   :math:`k`. See Chapter :ref:`ChapAlgLie`.

.. magma:example:: Example: Related
   :label: Related

   .. code-block:: magma

      > R := RootSystem("b3");
      > SemisimpleType(LieAlgebra(R, Rationals()));
      B3
      > #CoxeterGroup(R);
      48
      %%a> assert $1 eq 48;
