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

Closed
wants to merge 22 commits into from
Closed
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
21 changes: 21 additions & 0 deletions docs/oscar_references.bib
Original file line number Diff line number Diff line change
Expand Up @@ -2261,6 +2261,16 @@ @Article{Tra04
doi = {10.1016/j.cagd.2004.07.001}
}

@Article{Tur18,
author = {Turkalj, I.},
title = {Reflective Lorentzian lattices of signature (5, 1)},
journal = {Journal of Algebra},
volume = {513},
pages = {516--544},
year = {2018},
doi = {10.1016/j.algebra.2018.06.013}
}

@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 +2280,17 @@ @Misc{VE22
url = {https://gap-packages.github.io/sglppow/}
}

@InCollection{Vin75,
author = {Vinberg, E. B.},
title = {Some arithmetical discrete groups in Lobacevsky 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},
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 [Tur18](@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