Predicates#

IsAmbientSpace(M): ModFrm -> BoolElt#

Returns true if and only if \(M\) is an ambient space. Ambient spaces are those space constructed in Section Ambient Spaces.

IsCuspidal(M): ModFrm -> BoolElt#

Returns true if \(M\) is contained in the cuspidal subspace of the ambient space.

IsEisenstein(M): ModFrm -> BoolElt#

Returns true if \(M\) is contained in the Eisenstein subspace of the ambient space.

IsEisensteinSeries(f): ModFrmElt -> BoolElt#

Returns true if \(f\) is an Eisenstein newform or was computed using the intrinsic EisensteinSeries. (See Section Eisenstein Series.)

IsGamma0(M): ModFrm -> BoolElt#

Returns true if \(M\) is a space of modular forms for \(\Gamma_0(N)\).

IsGamma1(M): ModFrm -> BoolElt#

Returns true if \(M\) was created explicitly as a space of modular forms for \(\Gamma_1(N)\), or if the AmbientSpace of \(M\) is such a space. (Note that IsGamma1 will return false for any space ModularForms(chars,k), even if chars consists of all mod \(N\) Dirichlet characters.)

IsNew(M): ModFrm -> BoolElt#

Returns true if \(M\) is contained in the new subspace of its AmbientSpace.

IsNewform(f): ModFrmElt -> BoolElt#

Returns true if \(f\) was created using Newforms. (Sometimes true in other cases in which \(f\) is obviously a newform. In number theory, “newform” means “normalized eigenform that lies in the new subspace”.)

IsRingOfAllModularForms(M): ModFrm -> BoolElt#

Returns true if and only if \(M\) is the ring of all modular forms over a given ring.

Example: Predicates (ex-830f17)#

We illustrate each of the above predicates with some simple computations in \(M_3(\Gamma_1(11))\).

> M := ModularForms(Gamma1(11),3);
> f := Newform(M,1);
> IsAmbientSpace(M);
true
> IsAmbientSpace(CuspidalSubspace(M));
false
> IsCuspidal(M);
false
> IsCuspidal(CuspidalSubspace(M));
true
> IsEisenstein(CuspidalSubspace(M));
false
> IsEisenstein(EisensteinSubspace(M));
true
> IsGamma1(M);
true
> IsNew(M);
true
> IsNewform(M.1);
false
> IsNewform(f);
true
> IsRingOfAllModularForms(M);
false
> Level(f);
11
> Level(M);
11
> Weight(f);
3
> Weight(M);
3
> Weight(M.1);
3

Run in calculator