|
[Next][Prev] [Right] [Left] [Up] [Index] [Root]
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'=x - 1 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[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.
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.
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, 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.
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.
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
]
Returns an order of level N inside the maximal quaternion order O.
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.
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.
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 ]
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.
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.
For O an order of a quaternion algebra defined over a number ring,
returns a maximal order containing O.
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.
Returns true if and only if the order O is maximal.
Returns true if and only if the order O is maximal at the ideal p.
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]
|