Coxeter Groups#
- sage.combinat.root_system.coxeter_group.CoxeterGroup(data, implementation='reflection', base_ring=None, index_set=None)[source]#
Return an implementation of the Coxeter group given by
data
.INPUT:
data
– a Cartan type (or coercible into; seeCartanType
) or a Coxeter matrix or graphimplementation
– (default:'reflection'
) can be one of the following:'permutation'
– as a permutation representation'matrix'
– as a Weyl group (as a matrix group acting on the root space); if this is not implemented, this uses the “reflection” implementation'coxeter3'
– using the coxeter3 package'reflection'
– as elements in the reflection representation; seeCoxeterMatrixGroup
base_ring
– (optional) the base ring for the'reflection'
implementationindex_set
– (optional) the index set for the'reflection'
implementation
EXAMPLES:
Now assume that
data
represents a Cartan type. Ifimplementation
is not specified, the reflection representation is returned:sage: W = CoxeterGroup(["A",2]); W # needs sage.libs.gap Finite Coxeter group over Integer Ring with Coxeter matrix: [1 3] [3 1] sage: W = CoxeterGroup(["A",3,1]); W # needs sage.libs.gap Coxeter group over Integer Ring with Coxeter matrix: [1 3 2 3] [3 1 3 2] [2 3 1 3] [3 2 3 1] sage: W = CoxeterGroup(['H',3]); W # needs sage.libs.gap Finite Coxeter group over Number Field in a with defining polynomial x^2 - 5 with a = 2.236067977499790? with Coxeter matrix: [1 3 2] [3 1 5] [2 5 1]
>>> from sage.all import * >>> W = CoxeterGroup(["A",Integer(2)]); W # needs sage.libs.gap Finite Coxeter group over Integer Ring with Coxeter matrix: [1 3] [3 1] >>> W = CoxeterGroup(["A",Integer(3),Integer(1)]); W # needs sage.libs.gap Coxeter group over Integer Ring with Coxeter matrix: [1 3 2 3] [3 1 3 2] [2 3 1 3] [3 2 3 1] >>> W = CoxeterGroup(['H',Integer(3)]); W # needs sage.libs.gap Finite Coxeter group over Number Field in a with defining polynomial x^2 - 5 with a = 2.236067977499790? with Coxeter matrix: [1 3 2] [3 1 5] [2 5 1]
We now use the
implementation
option:sage: W = CoxeterGroup(["A",2], implementation="permutation"); W # optional - gap3 Permutation Group with generators [(1,4)(2,3)(5,6), (1,3)(2,5)(4,6)] sage: W.category() # optional - gap3 Join of Category of finite enumerated permutation groups and Category of finite Weyl groups and Category of well generated finite irreducible complex reflection groups sage: W = CoxeterGroup(["A",2], implementation="matrix"); W # needs sage.libs.gap Weyl Group of type ['A', 2] (as a matrix group acting on the ambient space) sage: W = CoxeterGroup(["H",3], implementation="matrix"); W # needs sage.libs.gap sage.rings.number_field Finite Coxeter group over Number Field in a with defining polynomial x^2 - 5 with a = 2.236067977499790? with Coxeter matrix: [1 3 2] [3 1 5] [2 5 1] sage: W = CoxeterGroup(["H",3], implementation="reflection"); W # needs sage.libs.gap sage.rings.number_field Finite Coxeter group over Number Field in a with defining polynomial x^2 - 5 with a = 2.236067977499790? with Coxeter matrix: [1 3 2] [3 1 5] [2 5 1] sage: W = CoxeterGroup(["A",4,1], implementation="permutation") # needs sage.libs.gap Traceback (most recent call last): ... ValueError: the type must be finite sage: W = CoxeterGroup(["A",4], implementation="chevie"); W # optional - gap3 Irreducible real reflection group of rank 4 and type A4
>>> from sage.all import * >>> W = CoxeterGroup(["A",Integer(2)], implementation="permutation"); W # optional - gap3 Permutation Group with generators [(1,4)(2,3)(5,6), (1,3)(2,5)(4,6)] >>> W.category() # optional - gap3 Join of Category of finite enumerated permutation groups and Category of finite Weyl groups and Category of well generated finite irreducible complex reflection groups >>> W = CoxeterGroup(["A",Integer(2)], implementation="matrix"); W # needs sage.libs.gap Weyl Group of type ['A', 2] (as a matrix group acting on the ambient space) >>> W = CoxeterGroup(["H",Integer(3)], implementation="matrix"); W # needs sage.libs.gap sage.rings.number_field Finite Coxeter group over Number Field in a with defining polynomial x^2 - 5 with a = 2.236067977499790? with Coxeter matrix: [1 3 2] [3 1 5] [2 5 1] >>> W = CoxeterGroup(["H",Integer(3)], implementation="reflection"); W # needs sage.libs.gap sage.rings.number_field Finite Coxeter group over Number Field in a with defining polynomial x^2 - 5 with a = 2.236067977499790? with Coxeter matrix: [1 3 2] [3 1 5] [2 5 1] >>> W = CoxeterGroup(["A",Integer(4),Integer(1)], implementation="permutation") # needs sage.libs.gap Traceback (most recent call last): ... ValueError: the type must be finite >>> W = CoxeterGroup(["A",Integer(4)], implementation="chevie"); W # optional - gap3 Irreducible real reflection group of rank 4 and type A4
We use the different options for the “reflection” implementation:
sage: W = CoxeterGroup(["H",3], implementation="reflection", base_ring=RR); W # needs sage.libs.gap Finite Coxeter group over Real Field with 53 bits of precision with Coxeter matrix: [1 3 2] [3 1 5] [2 5 1] sage: W = CoxeterGroup([[1,10],[10,1]], implementation="reflection", # needs sage.symbolics ....: index_set=['a','b'], base_ring=SR); W Finite Coxeter group over Symbolic Ring with Coxeter matrix: [ 1 10] [10 1]
>>> from sage.all import * >>> W = CoxeterGroup(["H",Integer(3)], implementation="reflection", base_ring=RR); W # needs sage.libs.gap Finite Coxeter group over Real Field with 53 bits of precision with Coxeter matrix: [1 3 2] [3 1 5] [2 5 1] >>> W = CoxeterGroup([[Integer(1),Integer(10)],[Integer(10),Integer(1)]], implementation="reflection", # needs sage.symbolics ... index_set=['a','b'], base_ring=SR); W Finite Coxeter group over Symbolic Ring with Coxeter matrix: [ 1 10] [10 1]