.. _SectRSProp:

.. _properties-root-system:

Properties of Root Systems
==========================

.. magma:function:: IsIrreducible(R)
   :input_types: RootSys
   :output_types: BoolElt
   :label: IsIrreducible_RootSys

   Returns ``true`` if, and only if, the root system :math:`R` is irreducible.

.. magma:function:: IsProjectivelyIrreducible(R)
   :input_types: RootSys
   :output_types: BoolElt
   :label: IsProjectivelyIrreducible_RootSys

   Returns ``true`` if, and only if, the root system :math:`R` is a direct sum of a
   simple system and a toral system. This is equivalent to :math:`R` having a
   connected Coxeter diagram.

.. magma:function:: IsReduced(R)
   :input_types: RootSys
   :output_types: BoolElt
   :label: IsReduced_RootSys

   Returns ``true`` if, and only if, the root system :math:`R` is reduced.

.. magma:function:: IsSemisimple(R)
   :input_types: RootSys
   :output_types: BoolElt
   :label: IsSemisimple_RootSys

   Returns ``true`` if, and only if, the root system :math:`R` is semisimple,
   i.e. its rank is equal to its dimension.

.. magma:function:: IsCrystallographic(R)
   :input_types: RootSys
   :output_types: BoolElt
   :label: IsCrystallographic_RootSys

   Returns ``true`` if, and only if, the root system :math:`R` is crystallographic,
   i.e. its Cartan matrix is integral.

.. magma:function:: IsSimplyLaced(R)
   :input_types: RootSys
   :output_types: BoolElt
   :label: IsSimplyLaced_RootSys

   Returns ``true`` if, and only if, the root system :math:`R` is simply laced,
   i.e. its Coxeter graph contains no labelled edges.

.. magma:example:: Example: Properties
   :label: Properties

   .. code-block:: magma

      > R := RootSystem("A5 B2");
      > IsIrreducible(R);
      false
      %%a> assert not $1;
      > IsSemisimple(R);
      true
      %%a> assert $1;
      > IsCrystallographic(R);
      true
      %%a> assert $1;
      > IsSimplyLaced(R);
      false
      %%a> assert not $1;
