< ^ From:

> ^ Subject:

Dear Forum:

Has anyone written a function which reduces integer matrices modulo

primes ?

For example, here are 5 generators for Sp(4, Z):

tw1 := [ [ 1, 0, 0, 0 ], [ 1, 1, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, 0, 0, 1 ] ]; tw2 := [ [ 1,-1, 0, 0 ], [ 0, 1, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, 0, 0, 1 ] ]; tw3 := [ [1, 0, 0, 0 ], [1, 1,-1, 0 ], [0, 0, 1, 0 ], [-1, 0,1, 1 ] ]; tw4 := [ [1, 0, 0, 0 ], [0, 1, 0, 0 ], [0, 0, 1, -1], [0, 0, 0, 1] ]; tw5 := [ [1, 0, 0, 0 ], [0, 1, 0, 0 ], [0, 0, 1, 0 ], [0, 0, 1, 1 ] ]; (As a matter of fact they correspond to the images in Sp(4, Z) of the

standard generators for the genus 2 mapping class group. But I

digress.)

It would be nice to have a built in function Reduce( , )

with the following behaviour:

a)It should only be defined for prime values of the second variable.

b) Reduce( n, p) yields n*Z(p)^0, if n is an integer.

c) Reduce(a/b, p) yields a * ( b*Z(p)^0 )^(-1), if b is coprime to p.

d) Reduce should also apply to vectors and matrices with rational

entries, to functions that return vectors and matrices with rational

entries, and so on.

I'd be very interested if anyone has already written a function with

some of this behaviour.

One could imagine extending Reduce still further to cyclotomic

fields, but then one would have to make some decisions about how to

deal with ramification.

Sincerely,

Geoffrey Mess

> < [top]