If R is a ring with field of fractions K, then an R-order S in an algebra A is an R-submodule whose rank over R is the same as the dimension of A/K. At present the rings R for which we can form quaternion orders are Z and k[x] where k is a field. Special constructors are available for orders over Z in a quaternion algebra over Q.
The constructor QuaternionAlgebra(D1,D2,T) is the function underlying the constructor QuaternionAlgebra(N), which returns a quaternion algebra over Q of discriminant N.
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.
A maximal order in A.
An order of index M in a maximal order of the rational quaternion algebra A. The second argument M can be at most of valuation 1 at any ramified prime of A.
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 product 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 D_1 and D_2, respectively, and Z[xy - yx] is a quadratic subring of discriminant D_1 D_2 - T^2.
> A := QuaternionOrder(103,2);
The order generated by the sequence S of elements in a quaternion algebra.
Given a ring R and a sequence S of elements of a quaternion algebra, returns the order with basis S. The sequence length must be 4 and the element 1 must be the first element.
> 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 ]