We first describe the various constructors for Brandt modules and their elements.
ComputeGrams: BoolElt Default: true
Given a product D of an odd number of primes, and a integer m which has valuation at most one at each prime divisor p of D, return a Brandt module of level (D, m) over the integers. If not specified, then the conductor m is taken to be 1.The parameter ComputeGrams can be set to false in order to not compute the h x h array, where h is the left class number of level (D, m), of reduced Gram matrices of the quaternion ideal norm forms. Instead the basis of quaternion ideals is stored and the collection of degree p ideal homomorphisms is then computed in order to find the Hecke operator Tp for each prime p.
For very large levels, setting ComputeGrams to false is more space efficient. For moderate sized levels for which one wants to compute many Hecke operators, it is preferable to compute the Gram matrices and determine the Hecke operators using theta series.
ComputeGrams: BoolElt Default: true
Given a definite order A in a quaternion algebra over Q, returns the Brandt module on the left ideals classes for A, as a module over R. If not specified, the ring R is taken to be the integers. The parameter ComputeGrams is as previously described.
Forms the Brandt module with coefficient ring base extended to R.
This constructor is an alternative to BrandtModule(D, N) above, and uses a different algorithm which is preferable in the case where N is not very small.It constructs the Brandt module attached to an Eichler order of level N inside the maximal order M. The algorithm avoids explicitly working with the Eichler order.
> 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 X14910(1) is isogenous to the new factor of J0(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.
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.
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.
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.
> 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).
> 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