Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: arxiv.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (8.9%) to scientific vocabulary
Last synced: 10 months ago · JSON representation ·

Repository

Basic Info
  • Host: GitHub
  • Owner: Robbie-H
  • License: gpl-3.0
  • Language: Python
  • Default Branch: main
  • Size: 782 KB
Statistics
  • Stars: 2
  • Watchers: 2
  • Forks: 2
  • Open Issues: 1
  • Releases: 0
Created over 1 year ago · Last pushed 11 months ago
Metadata Files
Readme License Citation

README.md

Computational GIT

The CompGIT package is a tool for computing Geometric Invariant Theory (GIT) quotients in algebraic geometry. In a nutshell, GIT is a theory to model orbit spaces of algebraic varieties. Given an action of a simple complex reductive group $G$ on a projective space $\mathbb{P}^n$, CompGIT gives a description of the $G$-orbits of $\mathbb{P}^n$, called unstable/non-stable/strictly polystable orbits, that need to be removed/treated specially to form a well-behaved quotient.

Paradigmatic example of GIT quotient

As an example of the kind of problem being considered, let the 1-dimensional algebraic group of non-zero complex numbers $G=\mathbb C^$, acting on two dimensional complex space $\mathbb C^2$ by $\lambda · (x, y) = (x\lambda^{-1}, \lambda y)$. This affine example is not considered by our code, but described here for pedagogical purposes. The orbits of the action are: * Conics parametrised by $xy = c$, $c\in \mathbb C^$. These are stable orbits (they are closed and their stabilisers are finite). * the origin $(x, y) = (0, 0)$. This is a strictly polystable orbit: it is semistable and it is closed in the set of semistable orbits, but it is not stable as its stabiliser is not finite (it is $\mathbb C^* $). * The punctured axes ${x = 0, y\neq 0}$ ${y = 0, x\neq 0}$. These are strictly semistable orbits which are neither polystable nor stable (they are not closed).

We have a quotient map $\mathbb C^2 \rightarrow \mathbb C^2//\mathbb C^* \cong \mathbb C$ to the GIT quotient, where the fibre at any $c\neq 0$ is the smooth conic $xy=c$. At $0\in \mathbb C$, the fibre is the union of the two punctured axes and the origin. In this example, the quotient parametrises polystable orbits, whereas projective GIT quotients also have unstable orbits that need to be removed when taking GIT quotients (unstable orbits on $V$ are the orbits that contain $0\in V$ in their closure).

References

Several simplifications and observations can be carried out to reduce the problem to analysing torus actions on projective space. For a description of these, and the algorithms used, we refer the user to the paper Computing GIT Quotients of Semisimple Groups by Patricio Gallardo, Jesus Martinez Garcia, Han-Bom Moon, and David Swinarski, to which this code is a companion of and where several examples are also discussed. Further modifications to the code, its packaging and documentation have been led by Robert Hanson, with help by Martinez-Garcia and the Sagemath community, most notably Fréderic Chapoton.

For a quick introduction to GIT we recommend notes by Richard Thomas.

The aforementioned paper by Gallardo et.al. considers the more general case of projective varieties by a reductive group. However, in most applications the group is simple or semisimple. This has the advantage that we can use existing libraries in Sagemath for simple groups.

Credit and citations

Please consider citing the following references if you use this software for your own projects/papers: * P. Gallardo, J. Martinez-Garcia, H-B Moon, and D. Swinarski. “Computation of GIT quotients of semisimple groups”. arXiv:2308.08049 (2023). * R. Hanson and J. Martinez-Garcia. The CompGIT GitHub homepage. https://github.com/Robbie-H/CompGIT.

Dependencies

  • SageMath version 9.0 or later and the SageMath standard library,
  • Python version 3.9 or later

The Sage installation guide is available here

Commands are run within a console, such as the SageMath Shell on linux or terminal on MacOS. Once a sage session is launched, we include the prompt ‘sage:’ in our code.

Installation with pip

To add CompGIT to your SageMath installation, first download CompGIT as a .zip file from the CompGIT GitHub homepage and then run the console command

sage -pip install (location of CompGIT)

Example

To use CompGIT, start a sage session and type

sage: from CompGIT import *

One could begin by choosing a simple group by specifying the Dynkin type and rank:

sage: G=SimpleGroup("A", 2)

The following computations print some basic properties of the group:

sage: G.Dynkin_type 'A' sage: G.max_torus_dim 2 sage: G.cone_basis # rays of the fundamental chamber [2 1] [1 2]

The main output of CompGIT is the solution to a GIT problem. We fix a representation. In the case below, $SL_3$ acts on a 3 dimensional weight system with weights $(3,0,0)$.

``` sage: Phi = WeylCharacterRing("A2") sage: representation= Phi(3,0,0) sage: P=GITProblem(representation,label="Plane cubics") sage: P.solvenonstable(Weyloptimisation=True) {{(1, 2), (2, 1), (0, 0), (-1, 1), (0, 3), (1, -1), (3, 0)}, {(1, 2), (-1, -2), (2, 1), (0, 0), (1, -1), (3, 0)}} sage: P.printsolution_nonstable()


SOLUTION TO GIT PROBLEM: NONSTABLE LOCI


Group: A2 Representation A2(3,0,0) Set of maximal non-stable states: (1) 1-PS = (1, 1, -2) yields a state with 7 characters Maximal nonstable state={ (1, 2, 0), (2, 1, 0), (1, 1, 1), (0, 2, 1), (0, 3, 0), (2, 0, 1), (3, 0, 0) } (2) 1-PS = (1, -1/2, -1/2) yields a state with 6 characters Maximal nonstable state={ (1, 2, 0), (1, 0, 2), (2, 1, 0), (1, 1, 1), (2, 0, 1), (3, 0, 0) } ```

Outputs

The output states the Dynkin type by the notation Xn, where X is either A, B, C, D, E, F or G, and n is a positive integer. In the example above, A2 corresponds to the special linear group $SL3$. The output will also state the highest weight(s) of the group action. In the example above, $SL3$ acts on a 3-dimensional weight system, with highest weight 3𝜔_1.

Outputs can also state a list of unstable and strictly polystable loci. Essentially, this is a list of one-parameter subgroups in 𝐺, presented by their weights up to multiplication by scalar. For each one-parameter subgroup, a state is listed. This state will contain all the weights of the representation which are non-stable, unstable or strictly polystable with respect to the one-parameter subgroup. The program (and the results in the paper) guarantee that any 𝑇-non-stable (or unstable, strictly polystable, respectively) point in 𝑋 must belong to one of these states.

An example for cubic surfaces is worked out in the paper. In it, one can read how to interpret this output to find all stable and strictly polystable points. More examples can be found at https://jesusmartinezgarcia.net/git/ or https://faculty.fordham.edu/dswinarski/ComputationalGIT/

Running doctests

To run doctests for CompGIT, extract the files from the .zip into some folder.

Then, from the CompGIT subfolder (where GIT.py is stored) run

sage -t .

See also the sagemath documentation on doctests available here. If doctests pass, you will receive the message

```

All tests passed!

```

License

CompGIT is distributed under the terms of the GNU General Public License v3.0.

Owner

  • Name: Robbie
  • Login: Robbie-H
  • Kind: user

Citation (citations)

CITATION.cff

R. Hanson and J. Martinez-Garcia. The CompGIT GitHub homepage. https://github.com/Robbie-H/CompGIT.

@misc {GHMGMS,
    AUTHOR = {Hanson, R. and Martinez-Garcia, J.},
     TITLE = {The CompGIT GitHub homepage},
       YEAR = {2025},
howpublished = {\url{https://github.com/Robbie-H/CompGIT}},
}

GitHub Events

Total
  • Create event: 9
  • Commit comment event: 2
  • Issues event: 12
  • Delete event: 8
  • Member event: 1
  • Issue comment event: 24
  • Push event: 172
  • Public event: 1
  • Pull request review event: 2
  • Pull request event: 33
  • Fork event: 1
Last Year
  • Create event: 9
  • Commit comment event: 2
  • Issues event: 12
  • Delete event: 8
  • Member event: 1
  • Issue comment event: 24
  • Push event: 172
  • Public event: 1
  • Pull request review event: 2
  • Pull request event: 33
  • Fork event: 1

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 7
  • Total pull requests: 18
  • Average time to close issues: 20 days
  • Average time to close pull requests: 5 days
  • Total issue authors: 3
  • Total pull request authors: 4
  • Average comments per issue: 1.29
  • Average comments per pull request: 0.17
  • Merged pull requests: 13
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 7
  • Pull requests: 18
  • Average time to close issues: 20 days
  • Average time to close pull requests: 5 days
  • Issue authors: 3
  • Pull request authors: 4
  • Average comments per issue: 1.29
  • Average comments per pull request: 0.17
  • Merged pull requests: 13
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • Robbie-H (4)
  • fchapoton (2)
  • dimpase (1)
Pull Request Authors
  • fchapoton (8)
  • Robbie-H (4)
  • jesusmartinez-garcia (3)
  • mkoeppe (3)
Top Labels
Issue Labels
Pull Request Labels