Dear GAP Forum,
John Murray wrote
Is there a way of getting GAP to regard
a vector space as an abelian group, and
a matrix as a homomorphism of the
underlying vector space abelian group?Also, has anyone got a construction of
Holomorph(G) where G is a finite group?What I want is a natural way of working
with the affine group V . GL(V), where V
is a finite dimensional vector space over a
finite field. By natural, I mean describing
the group as ordered pairs (v,m), where
v is a vector and m is a nonsingular matrix,
and (v,1)^{(1,m)} = (v*m,1), where v*m is
the image of the (row) vector v under m.Clearly this can be done using
affine:=SemidirectProduct(v,hom,gl); where
v := CyclicGroup(q)^n; and
gl := AutomorphismGroup(v); and
hom is the identity homomorphism gl->gl,
q the size of the underlying field and n is
the dimension of V. But this is not natural.More generally I'd like a construction for
V . H, where H is a subgroup of GL(V),
or indeed H has a factor group which is
isomorphic to a subgroup of GL(V).
Since groups (and thus in particular abelian groups) in GAP
are always written multiplicatively,
a vector space itself is not regarded as a group,
and vice versa.
Matrices can be regarded as homomorphisms between vector spaces
in the sense that they describe linear mappings,
but these are not group homomorphisms for GAP.
A quite natural way to deal with affine groups in GAP
would be to use the embedding of (GF(q)^n).GL(n,q) into GL(n+1,q);
then there is an easy translation between a pair (v,m)
and the corresponding element g of this group,
via m = g{ [ 1 .. n ] }{ [ 1 .. n ] } and v = g[ n+1 ]{ [ 1 .. n ] }.
This allows one to avoid the technical overhead of the
general `SemidirectProduct' construction,
and the matrix group acting on the vector space may be any
subgroup of GL(n,q).
For the more general case that a linear action of a given group H
on a vector space is not faithful, it may be still useful to
work with the extended matrices, and to use an explicit
epimorphism from H onto the matrix group in question.
I hope this helps.
Kind regards,
Thomas Breuer