Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Vinberg's algorithm #4023

Open
wants to merge 19 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion docs/doc.main
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,8 @@
"Hecke/manual/quad_forms/genusherm.md",
"Hecke/manual/quad_forms/integer_lattices.md",
"Hecke/manual/quad_forms/Zgenera.md",
"Hecke/manual/quad_forms/discriminant_group.md"
"Hecke/manual/quad_forms/discriminant_group.md",
"LinearAlgebra/vinberg.md",
],
],

Expand Down
18 changes: 18 additions & 0 deletions docs/oscar_references.bib
Original file line number Diff line number Diff line change
Expand Up @@ -2261,6 +2261,13 @@ @Article{Tra04
doi = {10.1016/j.cagd.2004.07.001}
}

@PhDThesis{Tur17,
author = {Turkalj, I.},
title = {Reflective Lorentzian lattices of signature (5, 1)},
year = {2017},
school = {TU Dortmund}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is also a paper, could that be cited instead? See https://doi.org/10.1016/j.jalgebra.2018.06.013

If not, a URL or better a DOI to the thesis would be great

}

@Misc{VE22,
author = {Vaughan-Lee, Michael and Eick, Bettina},
title = {SglPPow, Database of groups of prime-power order for some prime-powers, Version 2.3},
Expand All @@ -2270,6 +2277,17 @@ @Misc{VE22
url = {https://gap-packages.github.io/sglppow/}
}

@InCollection{Vin75,
author = {Vinberg, E. B.},
title = {Some arithmetical discrete groups in Lobacevskii spaces},
booktitle = {Discrete subgroups of Lie groups and applications to moduli (Internat. Colloq., Bombay, 1973)},
series = {Tata Inst. Fundam. Res. Stud. Math.},
volume = {No. 7},
pages = {323--348},
publisher = {Published for the Tata Institute of Fundamental Research, Bombay by Oxford University Press, Bombay},
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, did you run bibtool as described here?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also, if there is a DOI available, please add it as well.

year = {1975}
}

@MastersThesis{Vol23,
author = {Volz, Sebastian},
title = {Design and implementation of efficient algorithms for operations on partitions of sets},
Expand Down
52 changes: 52 additions & 0 deletions docs/src/LinearAlgebra/vinberg.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
```@meta
CurrentModule = Oscar
DocTestSetup = Oscar.doctestsetup()
```

# Vinberg's algorithm

A $\textit{Lorentzian lattice} L$ is an integral $\Z$-lattice of signature $(s_+, s_-)$ with $s_+=1$ and $s_->0$.
A $\textit{root}$ of $r \in L$ is a primitive vector s.t. reflection in the hyperplane $r^\perp$ maps $L$ to itself.
$L$ is called $\textit{reflective} if the set of fundamental roots $\~{R}(L)$ is finite.

See for example [Tur17](@cite) for the theory of Arithmetic Reflection Groups and Reflective Lorentzian Lattices.

## Description
The algorithm constructs a fundamental polyhedron $P$ for a Lorentzian lattice $L$ by computing its $\textit{fundamental roots} $r$, i.e. the roots $r$ which are perpendicular to the faces of $P$ and which have inner product at least 0 with the elements of $P$.
Choose $v_0$ in $L$ primitive with $v_0^2 > 0$ as a point that $P$ should contain.

Let $Q$ be the corresponding Gram matrix of $L$ with standard basis. A vector $r$ is a fundamental root, if
- the vector $r$ is primitive,
- reflection by $r$ preserves the lattice, i.e. $\frac{2}{r^2}*r*Q$ is an integer matrix,
- the pair $(r, v_0)$ is positive oriented, i.e. $(r, v_0) > 0$,
- the product $(r, \~{r}) \geq \ 0$ for all roots $\~{r}$ already found.
This implies that $r^2$ divides $2*i$ for $i$ being the level of $Q$, i.e. the last invariant of the Smith normal form of $Q$.

$P$ can be constructed by solving $(r, v_0) = n$ and $r^2 = k$ by increasing order of the value $\frac{n^2}{k}$ and $r$ satisfying the above conditions.

If $v_0$ lies on a root hyperplane, then $P$ is not uniquely determined.
In that case we need a direction vector $v_1$ which satisfies $(\~{v}, v_1) \neq 0$
for all possible roots $\~{v}$ with $(v_0, \~{v}) = 0$

With $v_0$ and $v_1$ fixed $P$ is uniquely determined for any choice of root lengths and maximal distance $(v_0, r)$.
We choose the first roots $r$ by increasing order of the value $\frac{(\~{r}, v_1)}{r^2}$ for all possible roots $\~{v}$ with $(v_0, \~{v}) = 0$.
For any other root length we continue as stated above.

For proofs of the statements above and further explanations see [Vin75](@cite).

## Function

```@docs
vinberg_algorithm(Q::ZZMatrix, upper_bound::ZZRingElem)
```


## Contact

Please direct questions about this part of OSCAR to the following people:
* [Simon Brandhorst](https://www.math.uni-sb.de/ag/brandhorst/index.php?lang=en).
* [Stevell Muller](https://www.math.uni-sb.de/ag/brandhorst/index.php?option=com_content&view=article&id=30:muller&catid=10&lang=de&Itemid=104),

You can ask questions in the [OSCAR Slack](https://www.oscar-system.org/community/#slack).

Alternatively, you can [raise an issue on github](https://www.oscar-system.org/community/#how-to-report-issues).
Loading
Loading