[Next][Prev] [Right] [Left] [Up] [Index] [Root]

Ideal Theory of Orders

The ideal theory for orders over a maximal order R in quaternion algebras over a number field K is analogous to the ideal theory for order in quadratic extensions of K. For sufficiently nice classes of orders and ideals, every 1 or 2-sided ideal will be generated by two elements, which can be taken to lie in some quadratic extension of the center, i.e. is just the image of an ideal in a commutative quadratic order. On the other hand the left and right-module structures and the left and right orders, must be differentiated.

In terms of structures in Magma, ideals are only weakly differentiated from orders. Since the category of associative algebras does not require that an algebra have a unit, ideals are valid objects in the category of associative algebras. With this view, orders and ideals share a common type AlgQuatOrd, while printing is differentiated, depending whether the structure contains the unity element, thus forms an order.

The ideal theory of definite orders over Z is highly developed, allowing enumeration of all classes of ideals locally free over an order S, which is assumed to be an Eichler order or for which the index in an Eichler order is of valuation at most 1 at each ramified prime of the algebra. More general orders are supported but may not give complete results in the enumeration of all ideal classes.

Subsections

Creation and Access Functions

LeftOrder(I) : AlgQuatOrd -> AlgQuatOrd
Given an ideal I, returns the left order of I, defined as the ring of all elements of the quaternion algebra of I mapping I to itself under left multiplication.
RightOrder(I) : AlgQuatOrd -> AlgQuatOrd
Given an ideal I, returns the right order of I, defined as the ring of all elements of the quaternion algebra of I mapping I to itself under right multiplication.
LeftIdeal(S, X) : AlgQuatOrd, [AlgQuatOrdElt] -> AlgQuatOrd
lideal<S | X> : AlgQuatOrd, [AlgQuatOrdElt] -> AlgQuatOrd
The left ideal of S generated by the sequence S of elements in a quaternion algebra or order. The constructor lideal< | > permits a variety of arguments on the right, from sequences of elements to one or more elements.
RightIdeal(S, X) : AlgQuatOrd, [AlgQuatOrdElt] -> AlgQuatOrd
rideal<S | X> : AlgQuatOrd, [AlgQuatOrdElt] -> AlgQuatOrd
The right ideal of S generated by the sequence X of elements in a quaternion algebra or order. The constructor rideal< | > permits a variety of arguments on the right, from sequences of elements to one or more elements.
ideal<S | X> : AlgQuatOrd, [AlgQuatOrdElt] -> AlgQuatOrd
The 2-sided ideal of S generated by the sequence X of elements in a quaternion algebra or order. The argument X can be a variety of data for elements, including a sequence of elements, a comma separated list of elements, or the coordinates of elements.
PrimeIdeal(S, p) : AlgQuatOrd, RngIntElt -> AlgQuatOrd
Given a quaternion order S over Z, returns the unique 2-sided prime ideal P of S over the prime pZ. If p is a ramified prime then P properly contains pS and need not be principal, and otherwise P is equal to pS.
CommutatorIdeal(S) : AlgQuatOrd -> AlgQuatOrd
The two-sided ideal of S generated by elements of the form xy - yx.

Example AlgQuat_Elementary_Ideals (H68E8)

We demonstrate the construction of the 2-sided prime ideals and the relation with the commutator ideal.

> S := QuaternionOrder(2*5*11);
> P := PrimeIdeal(S, 2);
> I := ideal< S | 2, [ x*y-y*x : x, y in Basis(S) ] >;
> P eq I;
true
> Q := PrimeIdeal(S, 5);
> R := PrimeIdeal(S, 11);
> P*Q*R eq CommutatorIdeal(S);
true
By way of explanation, we note that the ideal composition is well-defined, since each of these ideals is a 2-sided ideal for S, that is, a left ideal whose right order is also S. The collection of prime ideals over the ramified primes of a maximal order forms an elementary 2-abelian class group, and the commutator ideal is the product of these prime ideals.

Enumeration of Ideal Classes

LeftIdealClasses(S) : AlgQuatOrd -> [AlgQuatOrd]
A sequence of representatives for the left locally free ideal classes of S, where S is an order over Z in a definite quaternion algebra.
RightIdealClasses(S) : AlgQuatOrd -> [AlgQuatOrd]
A sequence of representatives for the right locally free ideal classes of S, where S is an order over Z in a definite quaternion algebra.
TwoSidedIdealClasses(S) : AlgQuatOrd -> [AlgQuatOrd]
Given an order over Z in a definite quaternion algebra, returns the sequence of 2-sided ideal class representatives.

Example AlgQuat_Ideal_Enumeration (H68E9)

In the following example we construct a maximal order in the quaternion algebra ramified at 37, and enumerate the left ideal classes.

> S := QuaternionOrder(37);
> ideals := LeftIdealClasses(S);
> ideals;
[
    Quaternion Order of level (37, 1) with base ring Integer Ring,
    Quaternion Ideal of level (37, 1) with base ring Integer Ring,
    Quaternion Ideal of level (37, 1) with base ring Integer Ring
]
> [ Basis(I) : I in ideals ];
[
    [ 1, i, j, k ],
    [ 1 + j + k, i + k, 2*j, 2*k ],
    [ 2, i + j, 2*j, k ]
]
Note that these coordinates and the embedding matrix are all defined over the base field of the algebra -- here the rationals. This is necessary, since even an integral basis of an order over Z can have arbitrary denominators in the algebra embedding, as is demonstrated by the example of the right orders of the computed ideal classes.

> _, I, J := Explode(ideals);
> R1 := RightOrder(I);
> Basis(R1);
[ 1, 1/2 - 1/2*j + 1/2*k, -1/2 - i + 1/2*j + 1/2*k, -i - j ]
> R2 := RightOrder(J);
> Basis(R2);
[ 1, 1/2*i - 1/2*j - 1/2*k, 1/2*i - 1/2*j + 1/2*k, i + j ]
> IsIsomorphic(R1,R2);
true
Note that the ideals I and J are nonisomorphic left ideals over S, yet also have isomorphic right orders. In the example following the next section we explore this phenomenon further.

Operations on Ideals

I * J : AlgQuatOrd, AlgQuatOrd -> AlgQuatOrd
Composite(I,J) : AlgQuatOrd, AlgQuatOrd -> AlgQuatOrd
The composite of I and J, where the right order of I equals the left order of J.
Conjugate(I) : AlgQuatOrd -> AlgQuatOrd
Given an ideal or order I, returns the conjugate ideal. In the base of an order this is tautologically the same object.
I meet J : AlgQuatOrd, AlgQuatOrd -> AlgQuatOrd
Given ideals or orders I and J, returns the intersection I intersect J.
Norm(I) : AlgQuatOrd -> RngIntElt
Given an ideal I over Z, returns the norm of the ideal, defined as the positive generator of the image of the norm map in Z.

Example AlgQuat_Ideal_Arithmetic (H68E10)

Let's begin by creating the ideals of the previous example. Then we find an isomorphism between the

> A := QuaternionAlgebra(37);
> S := MaximalOrder(A);
> ideals := LeftIdealClasses(S);
> _, I, J := Explode(ideals);
> R := RightOrder(I);
> Q := RightOrder(J);
> IsIsomorphic(R,Q);
true
> // Get the x which conjugates R to Q:
> _, pi := Isomorphism(R,Q);
> Norm(pi);
37
> J := lideal< S | [ x*pi : x in Basis(J) ] >;
> RightOrder(J) eq R;                        
true


 [Next][Prev] [Right] [Left] [Up] [Index] [Root]