Perfect Forms and Normalizers

PerfectForms(G) : GrpMat[RngInt] -> SeqEnum
    Limit: RngIntElt                    Default: ∞
A positive definite symmetric G-invariant form F is called G-perfect if for every nonzero symmetric G-invariant form F' there exists some shortest vector x of F such that F'xtrx has nonzero trace.

The normalizer of the Bravais group of G in GLn(Z) acts on the set of integral G-perfect forms whose entries have GCD 1 and the number of orbits is finite. This function returns a sequence of representatives of these orbits.

If Limit is set to a positive integer m, then the algorithm stops after m orbits have been enumerated.

NormalizerGLZ(G) : GrpMat[RngInt] -> GrpMat[RngInt]
CentralizerGLZ(G) : GrpMat[RngInt] -> GrpMat[RngInt]
    IsBravais: BoolElt                  Default: false
Given a finite subgroup G of GLn(Z), returns the normalizer or centralizer of G in GLn(Z).

If G is know to be equal to its Bravais group, one can set IsBravais to true to speed up the computation.

The algorithm employed is a variation of Opgenorth's normalizer algorithm [Opg01].

V2.28, 13 July 2023