The algorithms explained in my PhD thesis for classifying (extremal) p-modular lattices with an automorphism of order p have been implemented in Magma and can be downloaded here.


Construction of the pairs (piF(L),F(L))

ComputeAllX( p, f, m ) : RngIntElt, RngIntElt, RngIntElt -> SeqEnum

    det: RngIntElt                  Default: -1
    Iso: BoolElt                    Default: true
Constructs all p-elementary lattices of determinant det, dimension f and minimum m/p which contain a p-elementary lattice of determinant p^(f/2). If det is defined as -1, all determinants are being considered. The parameter Iso determines if the isomorphism classes of the calculated lattices are returned or the whole list.

LiftXtoPiFL( X, m ) : RngIntElt, RngIntElt -> SeqEnum

    det: RngIntElt                  Default: -1
Given an admissible lattice X, construct all possible lattices piF(L) of determinant det, such that the minimum of F(L^#) is at least m/p. If det is defined as -1, all determinants are being considered.

ComputeFLinPiFL( PiFL, m ) : Lat, RngIntElt -> SeqEnum

    s: RngIntElt                    Default: -1
Given a lattice PiFL, construct all admissible sublattices F(L) of minimum m and index p^s. If s is defined as -1, all indices are being considered.

ComputeAllPairsF( p, f, m ) : RngIntElt, RngIntElt, RngIntElt -> SeqEnum

    detX: RngIntElt                 Default: -1
    detPiFL: RngIntElt              Default: -1
    s: RngIntElt                    Default: -1
This combines all the above algorithms and returns all possible pairs (PiFL,FL)

Construction of the pairs (PiZL,ZL,sigma)

ComputeAllXhat( p, z, m ) : RngIntElt, RngIntElt, RngIntElt -> SeqEnum

    det: RngIntElt                  Default: -1

LiftXhatToPiZL( Xhat, sigma, m ) : Lat, AlgMatElt, RngIntElt -> SeqEnum

    det: RngIntElt                  Default: -1
Given a possible lattice Xhat and an automorphism sigma (acting as pth root of unity from the right), all possible superlattices PiZL of determinant det are constructed, such that the minimum of Z(L^#) is at least m/p. If det is defined as -1, all determinants are being considered.

ComputeZLinPiZL( PiZL, sigma, m ) : Lat, AlgMatElt, RngIntElt -> SeqEnum

    s: RngIntElt                    Default: -1
Given a possible lattice PiZL and an automorphism sigma (acting as pth root of unity from the right), all possible sublattices ZL of index s and minimum at least m are constructed. If s is defined as -1, all indices are being considered.

ComputeAllPairsZ( p, z, m ) : RngIntElt, RngIntElt, RngIntElt -> SeqEnum

    detX: RngIntElt                 Default: -1
    detPiZL: RngIntElt              Default: -1
    s: RngIntElt                    Default: -1
This combines all the above algorithms and returns all possible pairs (PiZL,ZL,sigma)

Glueing of the pairs

GluePairs( PairF, PairZ, m ) : Tup, Tup, RngIntElt -> SeqEnum

Given two pairs PairF = (PiFL,FL) and PairZ = (PiZL,ZL,sigma), all lattices as glueings of the quadratic spaces PiFL/FL and PiZL/ZL with minimum m are constructed.