Giter VIP home page Giter VIP logo

2306.12358's Introduction

Replication for 2306.12358

Current status: Replication

This repository contains notebooks and standalone code to replicate the computational results of Kazhdan constants for Chevalley groups over the integers by Marek Kaluba and Dawid Kielak.

Before exploring the notebooks you need to clone the main repository:

git clone https://github.com/kalmarek/2306.12358.git

The replicating notebooks are located in 2306.12358/notebooks subdirectory.

Installation

You should install julia from the official repository. Then while located in 2306/12358 directory run julia in terminal and execute the following commands in julias command-line (REPL) to instantiate the environment for computations.

using Pkg
Pkg.activate(".")
Pkg.instantiate()

Instantiation should install (among others):

The environment uses Groups.jl, StarAlgebras.jl, SymbolicWedderburn.jl and PropertyT.jl (unregistered) packages.

Replication

Notebooks

After instantiating the environment a jupyter server should be launched form 2306.12358 directory by issuing from julia command-line (REPL).

using Pkg
Pkg.activate(".")
using IJulia
notebook(dir=pwd())

During the first run, the user may be asked for installation of Jupyter program (a server for running this notebook) within miniconda environment, which will happen automatically after confirmation. To execute the commands in the notebook, one needs to navigate to notebooks subdirectory and click either of the notebooks.

Scripts

The following scripts are included in scripts subdirectory:

  • SLnZ_AdjA2.jl can be used to check that $\operatorname{Adj}{A_2} - \lambda \Delta$ is positive in $\mathbb{R} \operatorname{SL}{n}(\mathbb{Z})$. Note: this script, using the new language of gradings by root systems, reproves that $\operatorname{Adj}_n - \lambda \Delta \geqslant 0$ in $\mathbb{R} \operatorname{SL}_n(\mathbb{Z})$ (a result of Kaluba-Kielak-Nowak KKN).
  • Sp2nZ_AdjC2.jl can be used to check that $\operatorname{Adj}{C_2} - \lambda \Delta$ is positive in $\mathbb{R} \operatorname{Sp}{2n}(\mathbb{Z})$.
  • G2_Adj.jl can be used to check that $\operatorname{Adj}_{G_2} - \lambda \Delta$ is positive in $\mathbb{R} G_2$.

Additionally the two next scripts can be used to prove property T by computing sum of squares decomposition for $\Delta^2 - \lambda \Delta$:

  • Sp2nZ_has_T.jl for group $\operatorname{Sp}_{2n}(\mathbb{Z})$.
  • G2_has_T.jl for group $G_2$.

All of these scripts accept the command-line optional arguments:

  -N N                  the degree/genus/etc. parameter for a group
                        (type: Int64, default: 3)
  -R, --halfradius HALFRADIUS
                        the halfradius on which perform the sum of
                        squares decomposition (type: Int64, default: 2)
  -u, --upper_bound UPPER_BOUND
                        set upper bound for the optimization problem to
                        speed-up the convergence (type: Float64, default: Inf)
  -h, --help            show this help message and exit

Thus the following invocations can be used to reprove the computational results in the paper.

  • Theorem 3.6:
    • julia --project=@. scripts/SLnZ_AdjA2.jl -N 3 -R 2
    • julia --project=@. scripts/SLnZ_AdjA2.jl -N 3 -R 3 (Note: the default solvers parameters in the script are not suitable for -R 3; in particular one has to increase max_iters considerably.)
  • Theorem 3.10:
    • julia --project=@. scripts/Sp2nZ_AdjC2.jl -N 2 -R 3 (Note: this requires plenty of memory and computation time.)
  • Theorem 3.12:
    • julia --project=@. scripts/Sp2nZ_has_T.jl -N 2 -R 2
    • julia --project=@. scripts/Sp2nZ_has_T.jl -N 2 -R 3
  • Theorem 3.15:
    • julia --project=@. scripts/Sp2nZ_Level.jl -N 3 -R 2
  • Theorem 3.17:
    • julia --project=@. scripts/G2_has_T.jl -R 2 (option -N is ignored)
  • Theorem 3.18:
    • julia --project=@. scripts/G2_Adj.jl -R 3 (option -N is ignored)

Citing

If you find yourself using or studying code in this repository please cite

@misc{kaluba2023kazhdan,
      title={Kazhdan constants for Chevalley groups over the integers},
      author={Marek Kaluba and Dawid Kielak},
      year={2023},
      eprint={2306.12358},
      archivePrefix={arXiv},
      primaryClass={math.GR}
}

2306.12358's People

Contributors

kalmarek avatar

Watchers

James Cloos avatar  avatar  avatar

2306.12358's Issues

Roadmap

  • Prepare notebooks
  • Prepare scripts
  • some kind of ci (i.e. running scripts directly) (#2)
  • link repo to a zenodo dataset
  • figure out a way to redirect @infos from scripts to a file
  • create codeocean capsule

Running the notebooks

@kalmarek here are some things in noticed when running the notebooks.

  • In Simply laced diagrams it says "A jupyter server may then be launched within the directory Chevalley_replication ...". The directory Chevalley_replication is presumably the old name of the project and no longer exists?
  • In Simply laced diagrams in cell [24] and somewhere in the other notebooks: Under "Solving the problem numerically" I get "WARNING: could not import SCS_MKL_jll.MKL_jll into SCS" but the optimization still succeeds, so this probably doesn't mater.

Everything else worked as expected!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.