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 (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Γ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 ModFrmAlg_basic-example (H151E2)

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 OO(Q), rather than SO(Q).

> M_SO := OrthogonalModularForms(Q : Special);
> time Dimension(M_SO);
10
Time: 0.110
> IsOrthogonal(M_SO);
true
> IsSpecialOrthogonal(M_SO);
true
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 Γ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 Γi stabilizing each of the genus representatives of M to groups.
V2.29, 21 October 2025