Common category for Generalized Coxeter Groups or Complex Reflection Groups¶
-
sage.categories.complex_reflection_or_generalized_coxeter_groups.
ComplexReflectionOrGeneralizedCoxeterGroups
¶ The category of complex reflection groups or generalized Coxeter groups.
Finite Coxeter groups can be defined equivalently as groups generated by reflections, or by presentations. Over the last decades, the theory has been generalized in both directions, leading to the study of (finite) complex reflection groups on the one hand, and (finite) generalized Coxeter groups on the other hand. Many of the features remain similar, yet, in the current state of the art, there is no general theory covering both directions.
This is reflected by the name of this category which is about factoring out the common code, tests, and declarations.
A group in this category has:
- A distinguished finite set of generators \((s_i)_I\), called simple reflections. The set \(I\) is called the index set. The name “reflection” is somewhat of an abuse as they can have higher order; still, they are all of finite order: \(s_i^k=1\) for some \(k\).
- A collection of distinguished reflections which are the conjugates of the simple reflections. For complex reflection groups, they are in one-to-one correspondence with the reflection hyperplanes and share the same index set.
- A collection of reflections which are the conjugates of all the non trivial powers of the simple reflections.
The usual notions of reduced words, length, irreducibility, etc can be canonically defined from the above.
The following methods must be implemented:
ComplexReflectionOrGeneralizedCoxeterGroups.ParentMethods.index_set()
ComplexReflectionOrGeneralizedCoxeterGroups.ParentMethods.simple_reflection()
Optionally one can define analog methods for distinguished reflections and reflections (see below).
At least one of the following methods must be implemented:
ComplexReflectionOrGeneralizedCoxeterGroups.ElementMethods.apply_simple_reflection()
ComplexReflectionOrGeneralizedCoxeterGroups.ElementMethods.apply_simple_reflection_left()
ComplexReflectionOrGeneralizedCoxeterGroups.ElementMethods.apply_simple_reflection_right()
ComplexReflectionOrGeneralizedCoxeterGroups.ElementMethods._mul_()
It’s recommended to implement either
_mul_
or bothapply_simple_reflection_left
andapply_simple_reflection_right
.See also
complex_reflection_groups.ComplexReflectionGroups
generalized_coxeter_groups.GeneralizedCoxeterGroups
EXAMPLES:
sage: from sage.categories.complex_reflection_or_generalized_coxeter_groups import ComplexReflectionOrGeneralizedCoxeterGroups sage: C = ComplexReflectionOrGeneralizedCoxeterGroups(); C Category of complex reflection or generalized coxeter groups sage: C.super_categories() [Category of finitely generated enumerated groups] sage: C.required_methods() {'element': {'optional': ['reflection_length'], 'required': []}, 'parent': {'optional': ['distinguished_reflection', 'hyperplane_index_set', 'irreducible_components', 'reflection', 'reflection_index_set'], 'required': ['__contains__', 'index_set']}}