Finite real reflection groups


Let \(V\) be a finite-dimensional real vector space. A reflection of \(V\) is an operator \(r \in \operatorname{GL}(V)\) that has order \(2\) and fixes pointwise a hyperplane in \(V\). In the present implementation, finite real reflection groups are tied with a root system.

Finite real reflection groups with root systems have been classified according to finite Cartan-Killing types. For more definitions and classification types of finite complex reflection groups, see Wikipedia article Complex_reflection_group.

The point of entry to work with reflection groups is ReflectionGroup() which can be used with finite Cartan-Killing types:

sage: ReflectionGroup(['A',2])                                      # optional - gap3
Irreducible real reflection group of rank 2 and type A2
sage: ReflectionGroup(['F',4])                                      # optional - gap3
Irreducible real reflection group of rank 4 and type F4
sage: ReflectionGroup(['H',3])                                      # optional - gap3
Irreducible real reflection group of rank 3 and type H3

AUTHORS:

  • Christian Stump (initial version 2011–2015)

Warning

Uses the GAP3 package Chevie which is available as an experimental package (installed by sage -i gap3) or to download by hand from Jean Michel’s website.

class sage.combinat.root_system.reflection_group_real.IrreducibleRealReflectionGroup(W_types, index_set=None, hyperplane_index_set=None, reflection_index_set=None)

Bases: sage.combinat.root_system.reflection_group_real.RealReflectionGroup, sage.combinat.root_system.reflection_group_complex.IrreducibleComplexReflectionGroup

class Element

Bases: sage.combinat.root_system.reflection_group_real.RealReflectionGroup.Element, sage.combinat.root_system.reflection_group_complex.IrreducibleComplexReflectionGroup.Element

sage.combinat.root_system.reflection_group_real.RealReflectionGroup

A real reflection group given as a permutation group.

sage.combinat.root_system.reflection_group_real.ReflectionGroup(*args, **kwds)

Construct a finite (complex or real) reflection group as a Sage permutation group by fetching the permutation representation of the generators from chevie’s database.

INPUT:

can be one or multiple of the following:

  • a triple \((r, p, n)\) with \(p\) divides \(r\), which denotes the group \(G(r, p, n)\)
  • an integer between \(4\) and \(37\), which denotes an exceptional irreducible complex reflection group
  • a finite Cartan-Killing type

EXAMPLES:

Finite reflection groups can be constructed from

Cartan-Killing classification types:

sage: W = ReflectionGroup(['A',3]); W                           # optional - gap3
 Irreducible real reflection group of rank 3 and type A3

sage: W = ReflectionGroup(['H',4]); W                           # optional - gap3
 Irreducible real reflection group of rank 4 and type H4

sage: W = ReflectionGroup(['I',5]); W                           # optional - gap3
 Irreducible real reflection group of rank 2 and type I2(5)

the complex infinite family \(G(r,p,n)\) with \(p\) divides \(r\):

sage: W = ReflectionGroup((1,1,4)); W                           # optional - gap3
Irreducible real reflection group of rank 3 and type A3

sage: W = ReflectionGroup((2,1,3)); W                           # optional - gap3
Irreducible real reflection group of rank 3 and type B3

Chevalley-Shepard-Todd exceptional classification types:

sage: W = ReflectionGroup(23); W                                # optional - gap3
Irreducible real reflection group of rank 3 and type H3

Cartan types and matrices:

sage: ReflectionGroup(CartanType(['A',2]))                      # optional - gap3
Irreducible real reflection group of rank 2 and type A2

sage: ReflectionGroup(CartanType((['A',2],['A',2])))            # optional - gap3
Reducible real reflection group of rank 4 and type A2 x A2

sage: C = CartanMatrix(['A',2])                                 # optional - gap3
sage: ReflectionGroup(C)                                        # optional - gap3
Irreducible real reflection group of rank 2 and type A2

multiples of the above:

sage: W = ReflectionGroup(['A',2],['B',2]); W                   # optional - gap3
Reducible real reflection group of rank 4 and type A2 x B2

sage: W = ReflectionGroup(['A',2],4); W                         # optional - gap3
Reducible complex reflection group of rank 4 and type A2 x ST4

sage: W = ReflectionGroup((4,2,2),4); W                         # optional - gap3
Reducible complex reflection group of rank 4 and type G(4,2,2) x ST4
sage.combinat.root_system.reflection_group_real.is_chevie_available()

Test whether the GAP3 Chevie package is available.

EXAMPLES:

sage: from sage.combinat.root_system.reflection_group_real import is_chevie_available
sage: is_chevie_available() # random
False
sage: is_chevie_available() in [True, False]
True