Dear Mrs. and Mr. Forum,
Bruce Kaskel asked
Is it possible to work with p-adics in GAP?
Elements of any representation of Z_p (or Q_p) would of course
be ``non-exact'' objects and perhaps as such are not part of the
GAP philosophy. Such a representation would necessarily require
a set limit of precision. So...
At the moment (that is, in GAP-3.4) there is no support for p-adic numbers.
Since this request has come up in our team as well as from outside before
we hope to provide p-adics in a future version of GAP-4 but it is too early
to promise any date for this, this is simply a question of manpower.
Anyhow, GAP-4 will not be released before next year.
How about rings of the form Z/p^nZ (or more generally Z/nZ)?
Does GAP make these rings available in any cases other
than when Z/nZ is a field?
GAP-3.4 does not support rings Z/nZ for non-primes n, but GAP-4 definitely
will do; this will include of course matrices, matrix groups etc. over these
rings.
At the moment, it would be at least *possible* to define elements of Z/nZ
using records; it would not be very efficient, just it would be possible.
An extensive description how to implement elements of the multiplicative
group of Z/nZ using records is given in section "About Defining New Group
Elements" of the GAP manual.
This method can be used to define elements of the ring Z/nZ.
If one is mainly interested in matrix rings over Z/nZ then it is possible
to define the vectors/matrices as records. Such a vector/matrix could
contain an integer vector/matrix and an 'operations' record that defines
addition, multiplication etc. using the usual matrix multiplication followed
by elementwise reduction modulo n.
Kind regards
Thomas Breuer