Finding generators of matrix subgroups I am particularly interested in Sp$(2n,\mathbb{Z})$, but I think an answer for a more general set of matrices would help.
General question: Given a subgroup of a group of matrices, what tools or software are available to find generators?
Specific question: Given a matrix $D$, let $C(D)$ be the centralizer of $D$.  I am interested in finding a set of generators for $C(D)\cap\text{Sp}(2n,\mathbb{Z})$.  Neither transvections nor elementary symplectic matrices are in $C(D)$.  When $D$ is the specific matrix of interest, I can write all matrices in $C(D)$ in a explicit form in terms of 8 variables. 
I've looked for a method for finding generators, and it seems like a hard problem.  I was wondering if anyone had any ideas.
 A: This is essentially equivalent to finding the generators of the group of units in number fields, which is not an easy problem (google "fundamental unit"). The way you get there (I will do it for $SL(n, \mathbb{Z})$ for simplicity) from here, is that the matrix $A$ acts on $M^n$ by multiplication on the left by $A \otimes I,$ and on the right by $I \otimes A,$ so you are looking for the null space of $A \otimes I - I \otimes A.$ Over $\mathbb{Z}$ this will give you the centralizer in the matrix algebra $M^n(\mathbb{Z}),$ but you want invertible elements, that is, units.
A: For the specific example you mention there are these references:
MR0513734 (80k:20036)  Assion, Joachim . Einige endliche Faktorgruppen der Zopfgruppen.
(German)  Math. Z.  163  (1978),  no. 3, 291--302.
MR1177345 (93m:20053)  Wajnryb, Bronislaw . A braidlike presentation of Sp(n,p).
 Israel J. Math.  76  (1991),  no. 3, 265--288.
These give presentations for prime fields but I believe you can deduce presentations for the integers.
A: I know this is a bit of an old question, but you can actually find generators for many classical matrix groups on sage.
For example entering "SL(2,ZZ).gens()" in sage returns "[[1,1],[0,1]], [[0,1],[-1,0]]".


*

*will

