%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %% matgroups.tex IRREDSOL documentation Burkhard Hoefling %% %% @(#)$Id: matgroups.tex,v 1.5 2005/07/06 10:08:01 gap Exp $ %% %% Copyright (C) 2003-2005 by Burkhard Hoefling, %% Institut fuer Geometrie, Algebra und Diskrete Mathematik %% Technische Universitaet Braunschweig, Germany %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \Chapter{Additional functionality for matrix groups} This chapter explains some attributes, properties, and operations which may be useful for working with matrix groups. Some of these are part of the {\GAP} library and are listed for the sake of completeness, and some are provided by the package {\IRREDSOL}. Note that groups constructed by functions in {\IRREDSOL} already have the appropriate properties and attributes. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \Section{Basic attributes for matrix groups} \>DegreeOfMatrixGroup(<G>) A \>Degree(<G>)!{for matrix groups} O \>DimensionOfMatrixGroup(<G>) A \>Dimension(<G>)!{for matrix groups} A This is the degree of the matrix group or, equivalently, the dimension of the natural underlying vector space. See also "ref:DimensionOfMatrixGroup" in the {\GAP} reference manual. \>FieldOfMatrixGroup(<G>) A This is the field generated by the matrix entries of the elements of~<G>. See also "ref:FieldOfmatrixGroup" in the {\GAP} reference manual. \>DefaultFieldOfMatrixGroup(<G>) A This is a field containing all matrix entries of the elements of~<G>. See also "ref:DefaultFieldOfMatrixGroup" in the {\GAP} reference manual. \>SplittingField(<G>) A Let <G> be an irreducible subgroup of $GL(n, F)$, where $F = `FieldOfMatrixGroup(<G>)'$ is a finite field. This attribute stores the splitting field <E> for <G>, that is, the (unique) smallest field $E$ containing $F$ such that the natural $E G$-module $E^n$ is the direct sum of absolutely irreducible $E G$- submodules. The number of these absolutely irreducible summands equals the dimension of $E$ as an $F$-vector space. \>CharacteristicOfField(<G>) A \>Characteristic(<G>)!{for matrix groups} O This is the characteristic of `FieldOfMatrixGroup'(<G>) (see "FieldOfMatrixGroup"). \>RepresentationIsomorphism(<G>) A This attribute stores an isomorphism $<H> \to <G>$, where <H> is a group in which computations can be carried out more efficiently than in <G>, and the isomorphism can be evaluated easily. Every group in the {\IRREDSOL} library has such a representation isomorphism from a pc group <H> to <G>. In this way, computations which only depend on the isomorphism type of <G> can be carried out in the group <H> and translated back to the group <G> via the representation isomorphism. Possible applications are the conjugacy classes of <G>, Sylow subgroups, composition and chief series, normal subgroups, group theoretical properties of <G>, and many more. The concept of a representation isomorphism is related to nice monomorphisms; see Section "ref:Nice Monomorphisms" in the {\GAP} reference manual. However, unlike nice monomorphisms, `RepresentationIsomorphism' need not be efficient for computing preimages (and, indeed, will not usually be, in the case of the groups in the {\IRREDSOL} library). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \Section{Irreducibility and maximality of matrix groups} \>IsIrreducibleMatrixGroup(<G>) P \>IsIrreducibleMatrixGroup(<G>, <F>) O \>IsIrreducible(<G> [, <F>])!{for matrix groups} O The matrix group <G> of degree <d> is irreducible over the field <F> if no subspace of $<F>^d$ is invariant under the action of <G>. If <F> is not specified, $F = `FieldOfMatrixGroup'(<G>)$ is assumed. \beginexample gap> G := IrreducibleSolvableMatrixGroup (4, 2, 2, 3); <matrix group of size 10 with 2 generators> gap> IsIrreducibleMatrixGroup (G); true gap> IsIrreducibleMatrixGroup (G, GF(2)); true gap> IsIrreducibleMatrixGroup (G, GF(4)); false \endexample \>IsAbsolutelyIrreducibleMatrixGroup(<G>) P \>IsAbsolutelyIrreducible(<G>) O If present, this operation returns true if <G> is absolutely irreducible, i.~e., irreducible over any extension field of `FieldOfMatrixGroup'(<G>). \beginexample gap> G := IrreducibleSolvableMatrixGroup (4, 2, 2, 3); <matrix group of size 10 with 2 generators> gap> IsAbsolutelyIrreducibleMatrixGroup(G); false; \endexample \>`IsMaximalAbsolutelyIrreducibleSolvableMatrixGroup(<G>)'% {IsMaximalAbsolutelyIrreducibleSolvableMatrixGroup}% @{`IsMaximalAbsolutelyIrreducibleSolvable\\MatrixGroup'} P This property, if present, is `true' if, and only if, <G> is absolutely irreducible and maximal among the solvable subgroups of $GL(d, F)$, where $d = `DegreeOfMatrixGroup'(<G>)$ and $F = `FieldOfMatrixGroup'(<G>)$. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \Section{Primitivity of matrix groups} \>MinimalBlockDimensionOfMatrixGroup(<G>) A \>MinimalBlockDimensionOfMatrixGroup(<G>, <F>) O \>MinimalBlockDimension(<G> [, <F>])!{for matrix groups} O Let <G> be a matrix group of degree <d> over the field <F>. A decomposition $V_1 \oplus \cdots \oplus V_k$ of $<F>^d$ into <F>-subspaces $V_i$ is a block system of $<G>$ if the $V_i$ are permuted by the natural action of <G>. Obviously, all $V_i$ have the same dimension; this is the dimension of the block system $V_1 \oplus \cdots \oplus V_k$. The function `MinimalBlockDimensionOfMatrixGroup' returns the minimum of the dimensions of all block systems of <G>. If <F> is not specified, $F = `FieldOfMatrixGroup'(<G>)$ is assumed. At present, only methods for groups which are irreducible over <F> are available. \beginexample gap> G := AbsolutelyIrreducibleSolvableMatrixGroup (2,3,4);; gap> MinimalBlockDimension (G, GF(3)); 2 gap> MinimalBlockDimension (G, GF(9)); 1 \endexample \>IsPrimitiveMatrixGroup(<G>) P \>IsPrimitiveMatrixGroup(<G>, <F>) O \>IsPrimitive(<G> [, <F>])!{for matrix groups} O \>IsLinearlyPrimitive(<G> [, <F>]) O An irreducible matrix group <G> of degree <d> is primitive over the field <F> if it only has the trivial block system $<F>^d$ or, equivalently, if $`MinimalBlockDimensionOfMatrixGroup'(<G>, <F>) = d$. If <F> is not specified, $F = `FieldOfMatrixGroup'(<G>)$ is assumed. \beginexample gap> G := IrreducibleSolvableMatrixGroup (2,2,1,1); Group([ <an immutable 2x2 matrix over GF2>, <an immutable 2x2 matrix over GF2> ]) gap> IsPrimitiveMatrixGroup (G, GF(2)); true gap> IsIrreducibleMatrixGroup (G, GF(4)); true gap> IsPrimitiveMatrixGroup (G, GF(4)); false \endexample \>ImprimitivitySystems(<G> [, <F>]) O This function returns the list of all imprimitivity systems of the irreducible matrix group <G> over the field <F>. If <F> is not given, `FieldOfMatrixGroup(<G>)' is used. Each imprimitivity system is given by a record with the following entries: \beginitems `bases' & a list of the bases of the subspaces which form the imprimitivity system. Note that a basis here is just a list of vectors, not a basis in the sense of {\GAP} (see "ref:Basis" in the {\GAP} reference manual). Each basis is in Hermite normal form so that the action of <G> on the imprimitivity system can be determined by `OnSubspacesByCanonicalBasis' `stab1' & the subgroup of <G> stabilizing the subspace <W> spanned by `bases[1]' `min' & is true if the imprimitivity system is minimal, that is, if `stab1' acts primitively on <W>, and false otherwise \enditems \beginexample gap> G := IrreducibleSolvableMatrixGroup (6, 2, 1, 9); <matrix group of size 54 with 4 generators> gap> impr := ImprimitivitySystems(G, GF(2));; gap> List (ImprimitivitySystems(G, GF(2)), r -> Length (r.bases)); [ 3, 3, 1 ] gap> List (ImprimitivitySystems(G, GF(4)), > r -> Action (G, r.bases, OnSubspacesByCanonicalBasis)); [ Group([ (), (1,2)(3,6)(4,5), (1,3,4)(2,5,6), (1,4,3)(2,6,5) ]), Group([ (1,2,4)(3,5,6), (1,3)(2,5)(4,6), (), () ]), Group([ (1,2,4)(3,5,6), (1,3)(2,5)(4,6), (1,2,4)(3,6,5), (1,4,2)(3,5,6) ]), Group([ (1,2,4)(3,5,6), (1,3)(2,5)(4,6), (1,4,2)(3,5,6), (1,2,4)(3,6,5) ]), Group([ (), (1,2), (), () ]), Group([ (1,2,3), (), (), () ]), Group([ (), (2,3), (1,2,3), (1,3,2) ]), Group([ (), (2,3), (1,2,3), (1,3,2) ]), Group([ (), (2,3), (1,2,3), (1,3,2) ]), Group(()) ] \endexample %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \Section{Conjugating matrix groups into smaller fields} \>TraceField(<G>) A This is the field generated by the traces of the elements of the matrix group~<G>. If <G> is an irreducible matrix group over a finite field then, by a theorem of Brauer, <G> has a conjugate which is a matrix group over `TraceField'(<G>). \beginexample gap> repeat > G := IrreducibleSolvableMatrixGroup (8, 2, 2, 7)^RandomInvertibleMat (8, GF(8)); > until FieldOfMatrixGroup (G) = GF(8); gap> TraceField (G); GF(2) \endexample \>ConjugatingMatTraceField(<G>) A If bound, this is a matrix <x> over `FieldOfMatrixGroup'(<G>) such that $<G>^<x>$ is a matrix group over `TraceField'(<G>). Currently, there are only methods available for irreducible matrix groups <G> over finite fields and certain trivial cases. The method for absolutely irreducible groups is described in \cite{GH}. Note that, for matrix groups over infinite fields, such a matrix <x> need not exist. \beginexample gap> repeat > G := IrreducibleSolvableMatrixGroup (8, 2, 2, 7) ^ > RandomInvertibleMat (8, GF(8)); > until FieldOfMatrixGroup(G) = GF(8); gap> FieldOfMatrixGroup (G^ConjugatingMatTraceField (G)); GF(2) \endexample %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% %E %%