Skip to content

Commit

Permalink
Vinbergs Algorithm (#4152)
Browse files Browse the repository at this point in the history
* Add Vinberg's algorithm
---------

Co-authored-by: Elias Merkel <[email protected]>
Co-authored-by: Max Horn <[email protected]>
Co-authored-by: Lars Göttgens <[email protected]>
  • Loading branch information
4 people authored Sep 27, 2024
1 parent a55be56 commit 615af44
Show file tree
Hide file tree
Showing 7 changed files with 487 additions and 1 deletion.
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",
"NumberTheory/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 @@ -2305,6 +2305,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 @@ -2314,6 +2324,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},
publisher = {Published for the Tata Institute of Fundamental Research, Bombay by Oxford University Press, Bombay},
pages = {323--348},
year = {1975}
}

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

# Vinberg's algorithm

A *Lorentzian lattice* $L$ is an integral $\Z$-lattice of signature $(s_+, s_-)$ with $s_+=1$ and $s_->0$.
A *root* of $r \in L$ is a primitive vector s.t. reflection in the hyperplane $r^\perp$ maps $L$ to itself.
Let $W(L)\leq O(L)$ be the Weyl group, that is the group generated by reflections in the root hyperplanes of $L$.
We say that $L$ is *reflective* if $W(L)$ is of finite index in $O(L)$.
For $x,y \in L$ we write $x.y:=\Phi(x,y)$ and $x^2:=\Phi(x,x)$ for the symmetric bilinear form in $L$.

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

## Description
Vinberg's algorithm constructs a fundamental polyhedron $P$ for a Lorentzian lattice $L$ by computing its *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 Gram matrix of $L$ with respect to some 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
```

## 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

0 comments on commit 615af44

Please sign in to comment.