.. _SectGrpCoxProp:

.. _group-prop:

Properties of Coxeter Groups
============================

.. magma:function:: IsFinite(W)
   :input_types: GrpFPCox
   :output_types: BoolElt
   :label: IsFinite_GrpFPCox

   Returns ``true`` if, and only if, the Coxeter group :math:`W` is finite.

.. magma:function:: IsAffine(W)
   :input_types: GrpFPCox
   :output_types: BoolElt
   :label: IsAffine_GrpFPCox

   Returns ``true`` if, and only if, the Coxeter group :math:`W` is affine
   (Section :ref:`SectCartanFinAff`).

.. magma:function:: IsHyperbolic(W)
   :input_types: GrpFPCox
   :output_types: BoolElt
   :label: IsHyperbolic_GrpFPCox

   Returns ``true`` if, and only if, the Coxeter group :math:`W` is hyperbolic
   (Section :ref:`SectCartanHyperbolic`).

.. magma:function:: IsCompactHyperbolic(W)
   :input_types: GrpFPCox
   :output_types: BoolElt
   :label: IsCompactHyperbolic_GrpFPCox

   Returns ``true`` if, and only if, the Coxeter group :math:`W` is compact
   hyperbolic (Section :ref:`SectCartanHyperbolic`).

.. magma:function:: IsIrreducible(W)
   :input_types: GrpFPCox
   :output_types: BoolElt
   :label: IsIrreducible_GrpFPCox

.. magma:function:: IsIrreducible(W)
   :input_types: GrpPermCox
   :output_types: BoolElt
   :label: IsIrreducible_GrpPermCox

   Returns ``true`` if, and only if, the Coxeter group :math:`W` is irreducible.

.. magma:function:: IsSemisimple(W)
   :input_types: GrpPermCox
   :output_types: BoolElt
   :label: IsSemisimple_GrpPermCox

   Returns ``true`` if, and only if, the permutation Coxeter group :math:`W` is
   semisimple, i.e. its rank is equal to its dimension.

.. magma:function:: IsCrystallographic(W)
   :input_types: GrpPermCox
   :output_types: BoolElt
   :label: IsCrystallographic_GrpPermCox

   Returns ``true`` if, and only if, the permutation Coxeter group :math:`W` is
   crystallographic, i.e. if the corresponding reflection representation is defined
   over the integers.

.. magma:function:: IsSimplyLaced(W)
   :input_types: GrpPermCox
   :output_types: BoolElt
   :label: IsSimplyLaced_GrpPermCox

.. magma:function:: IsSimplyLaced(W)
   :input_types: GrpFPCox
   :output_types: BoolElt
   :label: IsSimplyLaced_GrpFPCox

   Returns ``true`` if, and only if, the Coxeter group :math:`W` is simply laced,
   i.e. its Coxeter graph has no labels.

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

   .. code-block:: magma

      > W := CoxeterGroup(GrpFPCox, HyperbolicCoxeterMatrix(22));
      > IsFinite(W);
      false
      %%a> assert not $1;
      > IsAffine(W);
      false
      %%a> assert not $1;
      > IsHyperbolic(W);
      true
      %%a> assert $1;
      > IsCompactHyperbolic(W);
      false
      %%a> assert not $1;
      > IsIrreducible(W);
      true
      %%a> assert $1;
      > IsSimplyLaced(W);
      true
      %%a> assert $1;
      > W := CoxeterGroup("A2 D4");
      > IsIrreducible(W);
      false
      %%a> assert not $1;
      > IsSemisimple(W);
      true
      %%a> assert $1;
      > IsCrystallographic(W);
      true
      %%a> assert $1;
      > IsSimplyLaced(W);
      true
      %%a> assert $1;
