Replication details for "Non-vanishing unitary cohomology of low-rank integral special linear groups'' by B. Brück, S. Hughes, D. Kielak, and P. Mizerka
Description
This code can be used to replicate the results of ``Non-vanishing unitary cohomology of low-rank integral special linear groups'', arxiv:2410.22310. It provides the necessary computations to prove that the cohomology groups $H^2(\text{SL}_3(\mathbb{Z}),\pi_3)$ and $H^3(\text{SL}_4(\mathbb{Z}),\pi_4)$ are non-zero for some orthogonal representations $\pi_3$ and $\pi_4$ all of whose invariant vectors are trivial.
One can express the rank of the cohomology groups as the rank of specific Laplacians built up from the homological data obtained from Voronoi tesselations of the associated symmetric spaces. We compute the ranks of these Laplacians.
To ensure mathematical rigour, the matrices representing the Laplacians evaluated for particular representations are rationally-valued. For the same reason, we use the package LinearAlgebraX which provides a function to compute the rank of rationally-valued matrices exactly.
For the computations we used Julia in version `1.9.4`. On a Windows operating system, please use the Windows Subsystem for Linux.
The source code (together with replication instructions) is also available on the GitHub repository.
Getting Julia 1.9.4
In order to recompute the Laplacians, you need to use Julia in version `1.9.4`. (If you want to use the precomputed Laplacians that we provide in this repository, any later Julia version should work as well.)
To get the correct Julia version, first install Juliaup, a cross-platform installer for Julia.
After installing Juliaup, install Julia in version `1.9.4` by running
juliaup add 1.9.4
Setting the environment
Unpack first the "SLnCohomology.zip" file and open Julia by running the following command in the terminal in `SLnCohomology` folder
julia +1.9.4 --project=.
Next, to set up the proper environment for the replication run in Julia REPL the followingusing Pkg; Pkg.instantiate()
Remark: this step needs to be executed only once per installation.
Running the actual replication
First compute the Laplacian in the relevant degrees. For this, run the following command in the terminal in the `SLnCohomology` folder, replacing `n degree` by `3 3` or `4 6`.julia +1.9.4 --project=. ./scripts/laplacians_computation/sln_laplacians.jl n degree
For $(4,6)$, this needs around 8 GB of available RAM. You can also replace `degree` by a list of numbers, e.g. writing `2 3 4 5` computes the Laplacians in degrees 2, 3, 4 and 5. But be aware that for `n` equal to 4, degree 4 takes more than an hour to compute.
The Laplacians in the demanded degrees are saved in the "./scripts/laplacians_computation/precomputed_laplacians" directory. Precomputed versions of the Laplacians in all degrees are provided as well in "sl3_laplacians.sjl" and "sl4_laplacians.sjl" files - in order to use them, place the respective file in the "scripts/procomputed_laplacians" folder (to be created if it not exists) and proceed as below.
To compute the ranks of these Laplacians for the representations given in the paper, run the following command in the terminal in the `SLnCohomology` folder, replacing the parameter `n` by `3` or `4`.julia +1.9.4 --project=. ./scripts/sln_nontrivial_cohomology.jl n
The running time of the script will be approximately `3` and `8` minutes on a standard laptop computer for the cases $n=3$ and $n=4$ respectively.
There is also a possibility to run all the necessary operations in the "sln_non_trivial_cohomology.ipynb" notebook. The notebook contains procedures for $n=3,4$ and the homology degrees equal to $3$ and $6$ respectively (they correspond to the cohomologies of degrees $2$ and $3$ for $n=3$ and $n=4$). You can run it using IJulia.
Files
SLnCohomology.zip
Files
(820.8 MB)
Name | Size | Download all |
---|---|---|
md5:ad8a7be6afe84dd2ae92005f63721891
|
1.2 MB | Download |
md5:332440902aeffb3f179fabbfea4b7a47
|
817.7 MB | Download |
md5:75e015ca61ccc34de4420d0e8fad1a61
|
2.0 MB | Preview Download |