Magma

MAGMA Computational Algebra System

Magma
 •  How to get it
 •  Download
 •  Online Demo
 
Resources
 •  Online Help
 •  Discovering Mathematics with Magma
 •  Citations
 •  How to cite Magma
 •  Links
 •  Contact us
 
[Next][Prev] [Right] [Left] [Up] [Index] [Root]

Creation of Quaternion Orders

Let R be a ring with field of fractions K, and let A be a quaternion algebra over K. An R-order in A is a subring O ⊂A which is a R-submodule of A with O.K = A. An order is maximal if it is not properly contained in any other order.

One can create orders for number rings R or for R=k[x] with k a field. Unlike commutative orders, it is important to note that maximal orders O of quaternion algebras are no longer unique: for any x ∈A not in the normalizer of O, we have another maximal order given by O'=x1 O x != O.

When R=Z or R=k[x], the order O has type AlgQuatOrd. When R inherits from type RngOrd (a number ring), the order O has type AlgAssVOrd; see Section Orders for more information on constructors and general procedures for these orders.

See above (Introduction) for an important warning regarding quaternion algebras over the rationals.

The following general constructors permit the construction of quaternion orders over other rings. At present a polynomial ring over a field is the only other permitted base ring of an order. These constructors can be of use for specifying a particular basis for the order, or for constructing more general orders over Z than those given by the standard constructors.

Subsections
MaximalOrder(A) : AlgQuat[FldRat] -> AlgQuatOrd
MaximalOrder(A) : AlgQuat[FldOrd] -> AlgAssVOrd
MaximalOrder(A) : AlgQuat[FldNum] -> AlgAssVOrd
A maximal order in the quaternion algebra A. The algebra A must be defined over a field K where K is either a number field, Q, or the field of fractions of a number ring. The algorithm employed is a generalization of the algorithm used for number rings, optimized for the case of quaternion algebras. First, a factorization of the discriminant of a tame order (see below) is computed. Then, for each prime p dividing the discriminant, a p-maximal order is computed which is compatible with existing order.

Example AlgQuat_Quaternion_MaximalOrder (H88E5)

The following is an example of a quaternion algebra which is unramified at all finite primes.

> P<x> := PolynomialRing(Rationals());
> F<b> := NumberField(x^3-3*x-1);
> A<alpha,beta,alphabeta> := QuaternionAlgebra<F | -3,b>;
> O := MaximalOrder(A);
> Factorization(Discriminant(O));
[]

So indeed A has a maximal order of discriminant 1, or equivalently, A is unramified at all finite places of F.

Since we are working over a general order of a number field, we no longer can guarantee that an order will have a free basis, so we must use a pseudomatrix to represent it. For more on pseudomatrices, see Section Pseudo Matrices.

> Z_F := BaseRing(O);
> PseudoBasis(O);
[
    <Principal Ideal of Z_F
    Generator:
        Z_F.1, Z_F.1>,
    <Fractional Ideal of Z_F
    Two element generators:
        Z_F.1
        2/3*Z_F.1 + 1/6*Z_F.2 + 1/6*Z_F.3, 3/1*Z_F.1 + i>,
    <Principal Ideal of Z_F
    Generator:
        Z_F.1, j>,
    <Fractional Ideal of Z_F
    Two element generators:
        Z_F.1
        11/2*Z_F.1 + 1/6*Z_F.2 + 35/6*Z_F.3, 3/1*Z_F.1 - i + 3/1*Z_F.1*j + k>
]

To see the wide applicability of the above algorithm, we may even input a "random" quaternion algebra over a "random" quadratic number field.

> for c := 1 to 10 do
>   D := Random([d : d in [-100..100] | not IsSquare(d)]);
>   K<w> := NumberField(x^2-D);
>   Z_K := MaximalOrder(K);
>   K<K1,w> := FieldOfFractions(Z_K);
>   a := Random([i : i in [-50..50] | i ne 0]) + Random([-50..50])*w;
>   b := Random([i : i in [-50..50] | i ne 0]) + Random([-50..50])*w;
>   printf "D = %o, a = %o, b = %o n", D, a, b;
>   A := QuaternionAlgebra<K | a,b>;
>   O := MaximalOrder(A);
>   ds := [<pp[1],pp[2],HilbertSymbol(A,pp[1])> : >            pp in Factorization(Discriminant(O))];
>   print ds;
>   for d in ds do
>     if d[3] eq 1 then
>       break c;
>     end if;
>   end for;
> end for;
D = 5, a = -46/1*K1 + 25/1*w, b = -10/1*K1 - 7/1*w
[
    <Prime Ideal of Z_K
    Two element generators:
        [31, 0]
        [5, 2], 2, -1>,
    <Prime Ideal of Z_K
    Two element generators:
        [11, 0]
        [6, 2], 2, -1>
]
...

For each such "random" quaternion algebra, we verify that the Hilbert symbol evaluated at each prime dividing the discriminant of the maximal order is -1, indicating that the algebra is indeed ramified at the prime.


QuaternionOrder(A, M) : AlgQuat[FldRat], RngIntElt -> AlgQuatOrd
For M a positive integer, returns an order of index M in a maximal order of the quaternion algebra A defined over Q. The second argument M can have at most valuation 1 at any ramified prime of A.
QuaternionOrder(N) : RngIntElt -> AlgQuatOrd
QuaternionOrder(N, M) : RngIntElt, RngIntElt -> AlgQuatOrd
For positive integers N (and M), returns an order of index M in a maximal order of the rational quaternion algebra A of discriminant N. The discriminant N must be a product of an odd number of distinct primes, and the argument M can be at most of valuation 1 at any prime dividing N. When not provided, the integer M defaults to 1, i.e. the return value will be a maximal order.
QuaternionOrder(D1, D2, T) : RngIntElt, RngIntElt, RngIntElt -> AlgQuat
The quaternion order Z< x, y >, where Z[x] and Z[y] are quadratic subrings of discriminant D1 and D2, respectively, and Z[xy - yx] is a quadratic subring of discriminant D1 D2 - T2.

Example AlgQuat_Quaternion_Orders_over_the_Integers (H88E6)

The above constructors permit the construction of Eichler orders over Z, if the discriminant N and the index M are coprime; or more generally of some order whose index in an Eichler order divides the discriminant.

> A := QuaternionOrder(103,2);
> Discriminant(A);
206
> Factorization($1);
[ <2, 1>, <103, 1> ]
> _<x> := PolynomialRing(Rationals());
> [MinimalPolynomial(A.i) : i in [1..4]];
[
    x - 1,
    x^2 + 1,
    x^2 - x + 52,
    x^2 + 104
]

Order(O, N) : AlgAssVOrd, RngOrdIdl -> AlgAssVOrd
Returns an order of level N inside the maximal quaternion order O.
QuaternionOrder(S) : [AlgQuatElt[FldRat]] -> AlgQuatOrd
    IsBasis: BoolElt                    Default: false
For S a sequence of elements in a quaternion algebra defined over Q, returns the order generated by S. If the set S does not generate an order, an error will be returned. If the parameter IsBasis is set to true then S will be used as the basis of the order returned.
QuaternionOrder(R, S) : Rng, [AlgQuatElt] -> AlgQuatOrd
Order(R, S) : Rng, [AlgQuatElt] -> AlgQuatOrd
    Check: BoolElt                      Default: true
Given a ring R and a sequence S of elements of a quaternion algebra, returns the R-order with basis S. The sequence must have length four.

Example AlgQuat_Quaternion_Orders_over_Polynomial_Rings (H88E7)

The basis constructors of orders permit a more general class of orders. First we construct an order over a polynomial ring.

> K<t> := FunctionField(FiniteField(7));
> A<i,j,k> := QuaternionAlgebra< K | t, t^2+t+1 >;
> i^2;
t
> j^2;
(t^2 + t + 1)
Next we demonstrate how to construct orders in quaternion algebras generated by a given sequence of elements. When provided with a sequence of elements of a quaternion algebra over Q, the sequence is reduced to form a basis. When provided with the ring over which these elements are to be interpreted, the sequence must be a basis with initial element 1, and the order with this basis is constructed.

> A<i,j,k> := QuaternionAlgebra< RationalField() | -1, -3 >;
> B := [ 1, 1/2 + 1/2*j, i, 1/2*i + 1/2*k ];
> O := QuaternionOrder(B);
> Basis(O);
[ 1, 1/2*i + 1/2*k, 1/2 - 1/2*j, -1/2*i + 1/2*k ]
> S := QuaternionOrder(Integers(),B);
> Basis(S);
[ 1, 1/2 + 1/2*j, i, 1/2*i + 1/2*k ]

Creation of Quaternion Orders over Number Rings

In this section, we give supplementary functions for computing with maximal orders over number rings. For the creation of orders by sequences of elements of number rings, see Section Orders.

TameOrder(A) : AlgQuat[FldAlg] -> AlgAssVOrd
Computes an order O of the quaternion algebra A with the property that the odd reduced discriminant of O is squarefree. The algebra A must be defined over a number field or field of fractions of a number ring. The algorithm performs no tasks at even primes and does not test the remaining odd primes for maximality.
MaximalOrder(O) : AlgAssVOrd[RngOrd] -> AlgAssVOrd
For O an order of a quaternion algebra defined over a number ring, returns a maximal order containing O.
pMaximalOrder(O, p) : AlgAssVOrd, RngOrdIdl -> AlgAssVOrd, RngIntElt
For p a prime of a number ring R, computes a p-maximal order O' containing the order O defined over R. The order O' tensor R Rp is a maximal order in its container algebra, where Rp is the completion of R at p. Returns as a second argument the p-adic valuation of the discriminant of the new order, which is either 0 or 1.
IsMaximal(O) : AlgAssVOrd -> BoolElt
Returns true if and only if the order O is maximal.
IspMaximal(O, p) : AlgAssVOrd, RngOrdIdl -> BoolElt
Returns true if and only if the order O is maximal at the ideal p.
IsHereditary(O) : AlgAssVOrd -> BoolElt
Returns true if and only if the order O is a hereditary order in a quaternion algebra. By definition hereditary orders are those with squarefree discriminant; this holds for maximal orders and Eichler orders of squarefree level.
 [Next][Prev] [Right] [Left] [Up] [Index] [Root]
                       

Version: V2.15 of Tue Dec 23 15:17:23 EST 2008

Valid HTML 4.01! Valid CSS!