Stack Exchange network consists of 183 Q&A communities including Stack Overflow, the largest, most trusted online community for developers to learn, share their knowledge, and build their careers.
@SamNead Note: $d \geq 4$ indeed $\operatorname{SL}_d(\mathbf{Z})$ is indeed not coherent (by embedding Mikhailova’s group $F_2 \times F_2$ by doubling the Sanov matrices). For $d=2$ it is obviously coherent, and for $d=3$ we don’t know. So as HJRW suggests there’s really no chance to do it even for quite small $d$.
@user491858 Nevertheless, using Corollary 4.4 of [1] it does follow that the abelianization is finite, but this is far from a trivial consequence of CSP (and if the abelianization were easy to compute, then surely the Corollary would not be phrased as partially as it is). Combining that with CSP does now give the formula — so I’ve weakened the phrasing a bit.
@user491858 Sure, if one knows that the first homology is finite then one can apply CSP as you say (although it’s certainly not required). But perhaps I am missing what your argument is for that the first homology is finite? And yes, for $p=2,3$ the answer was indeed well known.
@RyanBudney I imagined so too -- I already wrote to Graham! It is strange, but in any case the conclusion seems to be that no method exists implemented in GAP for computing the homology of $\operatorname{SL}_5(\mathbb{Z})$. It would be interesting if one could be implemented, even if not a practical one...
@RyanBudney I am running GAP4.12.2 on Ubuntu 22.04.3 LTS and get an error ("No method found...") every time copying your code verbatim, and HAP (version 1.47) is certainly loaded. Perhaps the issue is somewhere deeper, then.
For example, once one has defined some implemented $R$ (e.g. by running "R:=ResolutionArithmeticGroup("SL(2,Z)",2);") then it never objects. For example, we can compute your homology groups by setting "R:=ResolutionArithmeticGroup("ryanbudney",2);", and no error is produced... :-) This is why reading the documentation is always important!
Indeed, note that running your code actually produces an error (until one sets $R$ to be a resolution of some implemented group; and then runs the code again. Here, the package should return an error, but this is not done).
You might be interested in work by Gray & Kambites on semigroup actions on metric spaces; a good place to start is this article, giving a Schwarz-Milnor lemma for some semigroup actions.