Dear GAP-Forum,
George McNinch wrote:
Except that GAP does seem to be able to decide invertibility:
gap> R := Integers mod 9; (Integers mod 9) gap> S := FullMatrixAlgebra(R,2); ( (Integers mod 9)^[ 2, 2 ] ) gap> one := Identity(R); zero := Zero(R); ZmodnZObj( 1, 9 ) ZmodnZObj( 0, 9 ) gap> x := [[one,one],[zero,one]]; [ [ ZmodnZObj( 1, 9 ), ZmodnZObj( 1, 9 ) ], [ ZmodnZObj( 0, 9 ), ZmodnZObj( 1, 9 ) ] ] gap> IsUnit(S,x); true
For this particular element x, but not for all (in particular if matrix
entries are zero divisors): With
gap> l:=AsList(S);;
l[28] cannot be inverted in GAP 4.2. (The matrix inversion routine assumes
all nonzero entries will be invertible.)
> And one can even generate SL(2,Z/9Z):
>
> gap> y := [[one,zero],[one,one]];
> [ [ ZmodnZObj( 1, 9 ), ZmodnZObj( 0, 9 ) ],
> [ ZmodnZObj( 1, 9 ), ZmodnZObj( 1, 9 ) ] ]
> gap> Order(Group(x,y));
> 648
Since the generators are invertible GAP forms a group. However there still
are group elements which (in GAP 4.2) for the same reasons cannot be
inverted.
Without doubt these will cause problems for further calculations.
(As mentioned before, it will work in the next release.)
Best wishes,
Alexander Hulpke
-- Colorado State University, Department of Mathematics,
Weber Building, Fort Collins, CO 80523, USA
email: hulpke@math.colostate.edu, Phone: ++1-970-4914288
http://www.math.colostate.edu/~hulpke