ReflectionSubgroup( W, r )
Returns the reflection subgroup of the real reflection group W generated by the reflections with roots specified by r. r is a list of indices specifying a subset of the roots of W.
A reflection subgroup H of W is a permutation subgroup, and otherwise has the same fields as a Coxeter group, with some new ones added which express the relationship with the parent W:
rootInclusion
:
parentN
:
rootRestriction
:2*H.parentN
with entries in
positions H.rootInclusion
bound to [1..2*H.N]
.
A Coxeter group which is not a subgroup actually also contains these
fields, set to the trivial values: rootInclusion = [ 1 .. 2*W.N ]
,
parentN = W.N
and rootRestriction = [ 1 .. 2*W.N ]
.
With these fields, you can, e.g., test if the i-th fundamental root of H root is left positive by the element w of H (given as a permutation of the roots of the parent) with
H.rootInclusion[ i ] ^ w <= H.parentN
Programs dealing with Coxeter groups should be written this way to work
for Coxeter subgroups (instead of just writing i^w <= H.N
).
ReflectionSubgroup
returns a subgroup of the parent group of the
argument (like the GAP function Subgroup
).
gap> W := CoxeterGroup( "F", 4 );; gap> H := ReflectionSubgroup( W, [ 1, 2, 11, 20 ] ); ReflectionSubgroup(CoxeterGroup("F", 4), [ 1, 2, 9, 16 ]) gap> CartanName( H ); "D4" # not a parabolic subgroup gap> H.rootRestriction; [ 1, 2,,, 5,,,, 3,, 6,,, 8,, 4,, 7,, 9,, 10, 11, 12, 13, 14,,, 17,,,, 15,, 18,,, 20,, 16,, 19,, 21,, 22, 23, 24 ] gap> ReflectionSubgroup( H, [ 1, 2, 6 ] ); ReflectionSubgroup(CoxeterGroup("F", 4), [ 1, 2, 3 ])
This function requires the package "chevie" (see RequirePackage).
GAP 3.4.4