We first describe the various constructors for Brandt modules and their
elements.
In the following example we create the Brandt module of level 101
over the field of 7 elements and decompose it into its invariant
subspaces.
> A := QuaternionOrder(101);
> FF := FiniteField(7);
> M := BrandtModule(A,FF);
> Decomposition(M,13);
[
Brandt module of level (101,1), dimension 1, and degree 9 over Finite
field of size 7,
Brandt module of level (101,1), dimension 1, and degree 9 over Finite
field of size 7,
Brandt module of level (101,1), dimension 1, and degree 9 over Finite
field of size 7,
Brandt module of level (101,1), dimension 6, and degree 9 over Finite
field of size 7
]
We note that Brandt modules of non-prime discriminant can be useful
for studying isogeny factors of modular curves, since it is possible
to describe exactly the piece of cohomology of interest, without
first computing a much larger space. In this example we see that the
space of weight 2 cusp forms for Γ
0(1491), where 1491 =
3.7.71, is of dimension 189 (plus an Eisenstein space
of dimension 7), while the newspace has dimension 71.
The Jacobian of the Shimura curve X
14910(1) is isogenous to
the new factor of J
0(1491), so that we can study the newspace
directly via the Brandt module.
> DimensionCuspFormsGamma0(3*7*71,2);
189
> DimensionNewCuspFormsGamma0(3*7*71,2);
71
> BrandtModuleDimension(3*7*71,1);
72
> M := BrandtModule(3*7*71 : ComputeGrams := false);
> S := CuspidalSubspace(M);
> Dimension(S);
71
> [ Dimension(N) : N in Decomposition(S,13 : Sort := true) ];
[ 6, 6, 6, 6, 11, 12, 12, 12 ]
In this example by setting
ComputeGrams equal to
false
we obtain the Brandt module much faster, but the decomposition is
much more expensive. For most applications the default computation
of Gram matrices is preferable.
Given a sequence or module element x compatible with the Brandt module M, forms the
corresponding element in M.
For a Brandt module M and integer i, returns the i-th basis element.
Brandt module elements support standard operations.
x * a : ModBrdtElt, RngElt -> ModBrdtElt
The scalar multiplication of a Brandt module element x by an element
a in the base ring.
Given a Brandt module element x and an element T of the algebra of
Hecke operators of degree compatible with the parent of x or of its
ambient module, returns the image of x under T.
Returns the sum of two Brandt module elements.
Returns the difference of two Brandt module elements.
Returns true if x and y are equal elements of the same Brandt module.
Returns the sequence of coefficients of the Brandt module element x.
Returns the inner product of the Brandt module elements
x and y with respect to the canonical
pairing on their common parent.
Returns the inner product of the Brandt module element
x with itself.
Brandt modules belong to the category ModBrdt, with elements of
type ModBrdtElt, involved in the type checking of arguments in
Magma programming. The Parent of an element is the space to
which it belongs.
Category(M) : ModBrdt -> Cat
Type(M) : ModBrdt -> Cat
Category(x) : ModBrdtElt -> Cat
Type(x) : ModBrdtElt -> Cat
The category, ModBrdt or ModBrdtElt, of the
Brandt module M or of the Brandt module element x.
The parent module M of a Brandt module element x.
Returns true if M is the parent of x.
Here we describe the elementary invariants of the Brandt module, defined
with respect to a definite quaternion order A in a quaternion algebra
Hh over Q. The level of M is defined to be the reduced
discriminant of A, the discriminant is defined to be the
discriminant of the algebra Hh, and the conductor to be the index
of A in any maximal order of Hh which contains it. We note that the
discriminant of M is just the product of the ramified primes of Hh,
and the product of the conductor and discriminant of M is the reduced
discriminant of A.
Returns the level of the Brandt module, which is the product of the
discriminant and the conductor, and equal to the reduced discriminant
of its defining quaternion order.
Returns the discriminant of the quaternion algebra Hh with respect to
which the Brandt module M is defined (equal to the product of the primes which ramify
in Hh).
Returns the conductor or index of the defining quaternion order of the Brandt module M
in a maximal order of its quaternion algebra.
The ring over which the Brandt module M is defined.
Returns the basis of the Brandt module M.
The following give structures associated to Brandt modules. In particular
we note the definition of the AmbientModule, which is the full module
containing a given Brandt module whose basis corresponds to the left
quaternion ideals. Elements of every submodule of the ambient module are
displayed with respect to the basis of the ambient module.
The full module of level (D, m) containing a given module of this level.
Returns true if and only if the Brandt module M is its own ambient module.
Rank(M) : ModBrdt -> RngIntElt
Returns the rank of the Brandt module M over its base ring.
Returns the degree of the Brandt module M, defined to be the dimension
of its ambient module.
The matrix (< (ui, uj) >) defined with respect to the basis
{ ui } of the Brandt module M.
Returns the Gram matrix of the ambient module of the Brandt module M.
The following example demonstrates the use of
AmbientModule to get
back to the original Brandt module.
> M := BrandtModule(3,17);
> S := CuspidalSubspace(M);
> M eq AmbientModule(M);
true
This constructs the quaternionic ideals which correspond to the basis
of the Brandt module M. It is only implemented when M was constructed
using BrandtModule(M, N) -- the case where the new algorithm is used,
which avoids constructing these ideals explicitly.
The verbose level for Brandt modules is set with the command
SetVerbose("Brandt",n). Since the construction of a Brandt
module requires intensive quaternion algebra machinery for ideal
enumeration, the Quaternion verbose flag is also relevant.
In both cases, the value of n can be 0 (silent), 1 (verbose),
or 2 (very verbose).
In the following example we show the verbose output from the quaternion
ideal enumeration in the creation of the Brandt module of level (37, 1).
> SetVerbose("Quaternion",2);
> BrandtModule(37);
Ideal number 1, right order module
Full RSpace of degree 4 over Integer Ring
Inner Product Matrix:
[ 2 0 1 1]
[ 0 4 -1 2]
[ 1 -1 10 0]
[ 1 2 0 20]
Frontier at 2-depth 1 has 3 elements.
Number of ideals = 1
Ideal number 2, new right order module
Full RSpace of degree 4 over Integer Ring
Inner Product Matrix:
[ 2 -1 0 1]
[-1 8 -1 -4]
[ 0 -1 10 -2]
[ 1 -4 -2 12]
Ideal number 3, new right order module
Full RSpace of degree 4 over Integer Ring
Inner Product Matrix:
[ 2 1 0 -1]
[ 1 8 1 3]
[ 0 1 10 -2]
[-1 3 -2 12]
Frontier at 2-depth 2 has 4 elements.
Number of ideals = 3
Brandt module of level (37,1), dimension 3, and degree 3 over Integer Ring
[Next][Prev] [Right] [Left] [Up] [Index] [Root]