Basic Properties

BaseRing(M): ModFrmAlg -> Rng
CoefficientRing(M): ModFrmAlg -> Rng

The ring of coefficients of the space \(M\).

FieldOfDefinition(M): ModFrmAlg -> FldOrd

The field on which the space \(M\) was defined.

InnerForm(M): ModFrmAlg -> AlgMatElt

The inner form associated with the space \(M\).

Weight(M): ModFrmAlg -> GrpRep

The weight of the space \(M\).

Level(M): ModFrmAlg -> LatNF

The level of the space \(M\).

IsOrthogonal(M): ModFrmAlg -> BoolElt

Returns true if \(M\) is the space of algebraic modular forms for a group isogenous to an orthogonal group. (i.e of type B or D).

IsSpecialOrthogonal(M): ModFrmAlg -> BoolElt

Returns true if \(M\) is the space of algebraic modular forms for a special orthogonal group (\({\operatorname{SO}}(V)\) for some quadratic space \(V\)).

Dimension(M): ModFrmAlg -> RngIntElt
DimensionsOfDirectSummands(M): ModFrmAlg -> [RngIntElt]
ThetaPrec: RngIntElt                    Default: 25

The dimension of the space \(M\) of algebraic modular forms, or the dimensions of the direct summands \(W^{\Gamma_i}\). The dimension is determined by explicitly constructing the space. ThetaPrec determines the precision to which one computes the theta series of lattices for isometry testing in the process.

VectorSpace(M): ModFrmAlg -> ModTupFld
Representation(M): ModFrmAlg -> ModTupFld

The underlying vector space of \(M\).

Example: Level, Weight, and Dimension (ex-b1aea0)

Run in calculator (opens in a new tab)

We continue with the first example above.

> Q := SymmetricMatrix([6,0,2,-4,-1,12,3,1,6,12]);
> M := OrthogonalModularForms(Q);
> Level(M);
lattice whose discriminant has norm 193
> Norm(Discriminant(Level(M)));
193
> Weight(M);
free module of rank 1 over Rational Field with an action of GL(4,
RationalField())
> IsTrivial(Weight(M));
true
> time Dimension(M);
9
Time: 0.200
> IsOrthogonal(M);
true
> IsSpecialOrthogonal(M);
false

This indicates that \(M\) is a space of algebraic modular forms for \({\rm O}(Q)\), rather than \({\operatorname{SO}}(Q)\).

> M_SO := OrthogonalModularForms(Q : Special);
> time Dimension(M_SO);
10
Time: 0.110
> IsOrthogonal(M_SO);
true
> IsSpecialOrthogonal(M_SO);
true

Run in calculator (opens in a new tab)

Genus(M): ModFrmAlg -> SymGen
UseAuto  : BoolElt                      Default: true
ThetaPrec: RngIntElt                    Default: 25

The genus of the level lattice. If UseAuto is true, uses the action of the automorphism group to check only one lattice of each orbit. ThetaPrec determines the precision of the theta series of lattices to keep track of when checking for isometry.

GenusReps(M): ModFrmAlg -> [ Lat ]
GenusReps(M): ModFrmAlg -> [ LatNF ]
UseAuto  : BoolElt                      Default: true
ThetaPrec: RngIntElt                    Default: 25

The genus representatives of the level lattice. If UseAuto is true, uses the action of the automorphism group to check only one lattice of each orbit. ThetaPrec determines the precision of the theta series of lattices to keep track of when checking for isometry.

SetGenus(M, reps): ModFrmAlg, [ Lat ]
GramFactor: RngIntElt                    Default: 2

Set the genus representatives of \(M\) to be the lattices in reps. GramFactor Determines the scaling between the bilinear form and the quadratic / unitary form.

AutomorphismGroups(M): ModFrmAlg -> [GrpMat]
NaturalAction: BoolElt                    Default: false

The automorphism groups \(\Gamma_i\) stabilizing each of the genus representatives of \(M\). If NaturalAction is true, returns the groups embedded in the automorphism group of the ambient polar space.

SetAutomorphismGroups(M, groups): ModFrmAlg, [GrpMat]

Set the automorphism groups \(\Gamma_i\) stabilizing each of the genus representatives of \(M\) to groups.