Dear Gap Forum,
David Joyner asked:
> Does anyone know an easy way to construct a matrix group over a
> ring such as Z/p^nZ in GAP? For example, I've tried constructing the
> ring R of 2x2 matrices
> over Z/9Z, for example, using something like
[...]
> Eventually, I'd like to convert such a group into a permutation group
At the moment, GAP has problems with inverting matrices over rings, which
are not integral domains (the default inversion routines do a gaussian
elimination which assumes no zero divisors occur).
Ultimately, this is also the reason for `Units' failing (though I don't get
a result as you do, but an error message or even a crash).
We are working on correcting these shortcomings, but as the fixes involve
interaction with some of the more inner setup of matrix arithmetic, I would
expect a correction will not make it in a bugfix, but only in the
next release.
Coming back to your original problem:
To create a permutation representation, one can already use the following
(slightly convoluted) method:
r:=Integers mod 9; o:=One(r); m1:=[[1,2],[3,4]]*o; m2:=[[5,6],[7,8]]*o; g:=GroupWithGenerators([m1,m2]); # does not test invertability v:=AsSSortedList(r^2); act:=Action(g,v,OnRight);
(The problem of finding generators for the full GL(n,Z/9) still remains,
however.)
Apologies for these complications,
Alexander Hulpke