This project is a complement to the code about hermitian lattices available in Hecke. We aim here to connect Hecke and GAP to handle some algorithmic methods regarding quadratic forms with their isometries. In particular, the integration of this code within Oscar is necessary to benefit from all the performance of GAP with respect to computations with groups and automorphisms in general.
For now, the project covers methods regarding rational and integral quadratic forms.
We introduce two new structures
The former parametrizes pairs
We also provide some algorithms computing isomorphism classes of primitive
embeddings of integral lattices following Nikulin's theory. More precisely, the
function primitive_embeddings
offers, under certain conditions,
the possibility to compute representatives of primitive embeddings and classify
them in different ways. Note nonetheless that these functions are not efficient
in the case were the discriminant groups have a large number of subgroups.
Currently, the project features the following:
- enumeration of conjugacy classes of isometries of finite order for even lattices (in the case of at most 2 prime divisors);
- enumeration of conjugacy classes of isometries with irreducible and reciprocal minimal polynomial for integral lattices (with maximal equation order);
- primitive embeddings/extensions for integral lattices;
- equivariant primitive extensions for integral lattices;
- miscellaneous operations on integral/rational quadratic form endowed with an isometry.
The project was initiated by S. Brandhorst and T. Hofmann for classifying finite subgroups of automorphisms of K3 surfaces. Our current goal is to use this code, and further extensions of it, to classify finite subgroups of bimeromorphic self-maps of hyperkaehler manifolds, which are a higher dimensional analogues of K3 surface.
No tutorials available at the moment.
No examples available at the moment.
Since this project is still under development, feel free to try any feature and report all the bugs you may have found. Any suggestions for improvements or extensions are more than welcome. Refer to the next section to know who you should contact and how. Do not hesitate either to ask for new features - we will be glad to add anything you may need for your research.
One may expect many things to vary within the next months: name of the functions, available features, performance. This is due to the fact that the current version of the code is still at an experimental stage.
If you are working with some objects of type QuadSpaceWithIsom
or ZZLatWithIsom
and you need to report an issue, you can produce directly some lines of codes
helping to reconstruct your example. This can help the reviewers to understand
your issue and assist you. We have implemented a method to_oscar
which
prints few lines of codes for reconstructing your example.
using Oscar # hide
V = quadratic_space(QQ, 2);
Vf = quadratic_space_with_isometry(V, neg = true)
Oscar.to_oscar(Vf)
Lf = lattice(Vf)
Oscar.to_oscar(Lf)
Within the code, there are more hidden messages and testing which are disabled by default. If you plan to experiment with the codes with your favourite examples, you may want to be able to detect some issues to be reported, as well as knowing what the code is doing. Indeed, some functions might take time in term of compilation but also computations. For this, you can enable these extra tests and printings by setting:
Oscar.set_lwi_level(2)
Please direct questions about this part of OSCAR to the following people:
You can ask questions in the OSCAR Slack.
Alternatively, you can raise an issue on GitHub.