Let F be a number field with ring of integers R, and let A be a associative algebra over F (finite-dimensional, with 1). An associative order O of A is a subring O ⊂A which is a projective R-module such that O.F = A. We will also refer to an associative order simply as an order.
In Magma, associative orders have the type AlgAssVOrd, and may be declared for any associative algebra of type AlgAssV, namely, AlgAss, AlgMat, AlgQuat and AlgGrp. Orders have ideals of type AlgAssVOrdIdl, and elements of type AlgAssVOrdElt. In the special case where A is a quaternion algebra over the rationals, A has type AlgQuat and orders in A have type AlgQuatOrd.
Orders, like modules over Dedekind domains, are represented by a pseudobasis, see Section Pseudo Matrices. Currently, only basic arithmetic functions and procedures are available for general associative orders. Most of the nontrivial functionality currently available is designed for orders in quaternion algebras (over the rationals or number fields). The specialised functions for quaternionic orders are described in Chapter QUATERNION ALGEBRAS.
IMPORTANT WARNING for algebras over the rationals: In Magma, the rationals are not considered to be a number field (the type FldRat is not a subtype of FldNum). Currently, much of the functionality here is designed primarily for algebras whose base field is a FldNum (while some of it, but not all, also works for algebras over the FldRat). To compute with algebras over Q, in many cases the best solution is to create Q as a number field at the outset, using RationalsAsNumberField(), and create the algebra over this field instead of Rationals().
Given a ring R and sequence S of elements of an associative algebra A, returns the order of A generated freely over R by the sequence S. The ring R must be a number ring or Z.
Given a sequence of elements S of an associative algebra A, returns the order of A generated by the sequence S. The algebra A must be defined over a number field F.
Given a sequence of elements S of an associative algebra A and a sequence I of ideals of a number ring R, returns the order of A generated by the sequence S with coefficient ideals I. The algebra A must be defined over a number field F and have ring of integers R.
Given an associative algebra A, a matrix m, and a sequence I of ideals of a number ring R, returns the order of A generated by the sequence of elements specified by the rows of m in the basis of A with coefficient ideals I. The algebra A must be defined over a number field F and have ring of integers R.
Given an associative algebra A and a pseudomatrix pm, returns the order of A specified by the pseudomatrix pm. The basis of the order is specified by the rows of pm which have coefficients with respect to the basis of A. The algebra A must be defined over a number field with ring of integers R which is the base ring of the pseudomatrix pm.
> P<x> := PolynomialRing(Rationals()); > F<b> := NumberField(x^3-3*x-1); > Z_F := MaximalOrder(F); > A<alpha,beta,alphabeta> := QuaternionAlgebra<F | -3,b>;
First type of constructor takes an algebra, a matrix representing the basis elements, and coefficient ideals.
> M := MatrixAlgebra(F,4) ! 1; > I := [ideal<Z_F | 1> : i in [1..4]]; > O := Order(A, M, I); > O; Order of Quaternion Algebra with base ring Field of Fractions of Z_F with coefficient ring Maximal Equation Order with defining polynomial x^3 - 3*x - 1 over its ground order
The second type takes an algebra and a pseudomatrix.
> P := PseudoMatrix(I, M); > O := Order(A, P); > O; Order of Quaternion Algebra with base ring Field of Fractions of Z_F with coefficient ring Maximal Equation Order with defining polynomial x^3 - 3*x - 1 over its ground order
The third takes simply a sequence of elements.
> O := Order([alpha,beta]); > O; Order of Quaternion Algebra with base ring Field of Fractions of Z_F with coefficient ring Maximal Equation Order with defining polynomial x^3 - 3*x - 1 over its ground order
> F<w> := CyclotomicField(3); > A := FPAlgebra<F, x,y | x^3-3, y^3+5, y*x-w*x*y>; > Aass, f := Algebra(A); > Aass; Associative Algebra of dimension 9 with base ring F > f; Mapping from: AlgFP: A to AlgAss: Aass > S := [f(A.i) : i in [1..2]]; > S; [ (0 0 1 0 0 0 0 0 0), (0 1 0 0 0 0 0 0 0) ] > O := Order(S); > O; Order of Associative Algebra of dimension 9 with base ring Field of Fractions of R with coefficient ring Maximal Equation Order with defining polynomial x^2 + x + 1 over its ground order > > A := GroupAlgebra(F, DihedralGroup(6)); > Aass := Algebra(A); > O := Order([g : g in Generators(Aass)]); > O; Order of Associative Algebra of dimension 12 with base ring Field of Fractions of R with coefficient ring Maximal Equation Order with defining polynomial x^2 + x + 1 over its ground order
Computes a maximal Z-order in the semisimple associative algebra A, which must be defined over the rational numbers. The algorithm can be found in [Fri00], Para 3.5. We refer to [IR93] for a very similar approach.
> a1 := Matrix( [ > [-184174/80137, -325/80137, 71/2163699, 0, 0, 0, 0, 0, 0], > [17713719/80137, 92087/80137, -325/80137, 0, 0, 0, 0, 0, 0], > [-2189265975/80137, -16429806/80137, 92087/80137, 0, 0, 0, 0, 0, 0], > [0, 0, 0, 64850/80137, 1472/240411, -25/2163699, 0, 0, 0], > [0, 0, 0, -6237225/80137, -32425/80137, 1472/240411, 0, 0, 0], > [0, 0, 0, 3305230272/80137, 45310743/80137, -32425/80137, 0, 0, 0], > [0, 0, 0, 0, 0, 0, 119324/80137, -497/240411, -46/2163699], > [0, 0, 0, 0, 0, 0, -11476494/80137, -59662/80137, -497/240411], > [0, 0, 0, 0, 0, 0, -1115964297/80137, -28880937/80137, -59662/80137] ] ); > a2:= Matrix( [ > [0, 0, 0, 282469/240411, 956/2163699, -26/2163699, 0, 0, 0], > [0, 0, 0, -6486714/80137, -21029/240411, 956/2163699, 0, 0, 0], > [0, 0, 0, 238511484/80137, -2766918/80137, -21029/240411, 0, 0, 0], > [0, 0, 0, 0, 0, 0, -85879/240411, -4894/2163699, 64/6491097], > [0, 0, 0, 0, 0, 0, 5322432/80137, 163145/240411, -4894/2163699], > [0, 0, 0, 0, 0, 0, -1220999166/80137, -13720122/80137, 163145/240411], > [-1183167/80137, -11814/80137, -14/80137, 0, 0, 0, 0, 0, 0], > [-94306842/80137, -2653965/80137, -11814/80137, 0, 0, 0, 0, 0, 0], > [-79581502242/80137, -1335450240/80137, -2653965/80137, 0, 0, 0, 0, 0, 0] ] ); > M := MatrixAlgebra( Rationals(), 9 ); > A := sub< M | [ a1, a2 ] >; > Dimension(A); 9 > JacobsonRadical( A ); Matrix Algebra [ideal of A] of degree 9 and dimension 0 with 0 generators over Rational Field > O := MaximalOrder( A ); > Discriminant( O ); 1 > T :=MultiplicationTable(O); > T[3][7]; [ -16583482050411285785256, 5672389828626293786946, 1059868937213366777403, 55245368126632733561175, -41598423838438078787076, 1726223870812049536260, 66694491159819102489072, 76373181201401217517416, -114928189655490866071212 ]
The base ring of the associative order O.
The container algebra of the associative order O.
Returns the dimension (or degree) of the order O, equivalently the dimension of its parent algebra as a vector space over its ground field.
Returns the discriminant of the order O. If O is a quaternion order, returns the reduced discriminant which is the square root of the usual discriminant.
Returns the factorization of the discriminant of the order O. If O is a quaternion order, returns the factorization of the reduced discriminant which is the square root of the usual discriminant.
Returns the multiplication table of the maximal order O. This is a three dimensional table of structure constants. If T denotes this table, then T[i][j] is a sequence of integers containing the coefficients of the product of the i-th and j-th basis elements with respect to the basis of the order.
Return the pseudo matrix describing the basis of the associative order O over a number ring.
Given an order O in a quaternion algebra, this computes the submodule of elements with trace 0. A basis or a pseudo-basis for this submodule is returned, depending whether the base field of the quaternion algebra is Q or a number field. (The base ring of O is, respectively, either Z or an order in that number field.)
Returns a basis of the order O. All other elements of the order are integral linear combinations of elements of this basis. Note that the elements of a basis will only be elements of the parent algebra A and may not be elements of O because of the existence of coefficient ideals.
Returns the pseudobasis of the associative order O over a number ring.
Returns the pseudomatrix describing the pseudobasis of the associative order O over a number ring.
Returns a Z-basis for the order O.
Returns a sequence of generators of O as a module over its base ring.
> P<x> := PolynomialRing(Rationals()); > F<b> := NumberField(x^3-3*x-1); > Z_F := MaximalOrder(F); > A := QuaternionAlgebra<F | -3,b>; > O := Order([1/3*A.1, A.2], [ideal<Z_F | b^2+b+1>, ideal<Z_F | 1>]); > O; Order of Quaternion Algebra with base ring Field of Fractions of Z_F with coefficient ring Maximal Equation Order with defining polynomial x^3 - 3*x - 1 over its ground order > Basis(O); [ Z_F.1, i, j, k ] > PseudoBasis(O); [ <Principal Ideal of Z_F Generator: Z_F.1, Z_F.1>, <Fractional Principal Ideal of Z_F Generator: 1/3*Z_F.1 + 1/3*Z_F.2 + 1/3*Z_F.3, i>, <Principal Ideal of Z_F Generator: Z_F.1, j>, <Fractional Principal Ideal of Z_F Generator: 1/3*Z_F.1 + 1/3*Z_F.2 + 1/3*Z_F.3, k> ] > PseudoMatrix(O); Pseudo-matrix over Maximal Equation Order with defining polynomial x^3 - 3*x - 1 over its ground order Principal Ideal of Z_F Generator: Z_F.1 * ( Z_F.1 0 0 0 ) Fractional Principal Ideal of Z_F Generator: 1/3*Z_F.1 + 1/3*Z_F.2 + 1/3*Z_F.3 * ( 0 Z_F.1 0 0 ) Principal Ideal of Z_F Generator: Z_F.1 * ( 0 0 Z_F.1 0 ) Fractional Principal Ideal of Z_F Generator: 1/3*Z_F.1 + 1/3*Z_F.2 + 1/3*Z_F.3 * ( 0 0 0 Z_F.1 ) > ZBasis(O); [ Z_F.1, Z_F.2, Z_F.3, (1/3*Z_F.1 + 1/3*Z_F.2 + 1/3*Z_F.3)*i, (1/3*Z_F.1 + 4/3*Z_F.2 + 1/3*Z_F.3)*i, (1/3*Z_F.1 + 4/3*Z_F.2 + 4/3*Z_F.3)*i, j, Z_F.2*j, Z_F.3*j, (1/3*Z_F.1 + 1/3*Z_F.2 + 1/3*Z_F.3)*k, (1/3*Z_F.1 + 4/3*Z_F.2 + 1/3*Z_F.3)*k, (1/3*Z_F.1 + 4/3*Z_F.2 + 4/3*Z_F.3)*k ]Note that the basis of O does not generate O---one needs to include the coefficient ideals.
Return true if and only if the orders O1 and O2 are equal as subrings of the same algebra.
Return true (respectively, false) if the element x of an associative algebra is in the associative order O.
Returns the order obtained by adjoining the element x to the order O, optionally with coefficient ideal I.
Returns the sum of the orders O1 and O2.
Returns the intersection of the orders O1 and O2.
Returns the conjugate order x - 1 O x.
> P<x> := PolynomialRing(Rationals()); > F<b> := NumberField(x^3-3*x-1); > Z_F := MaximalOrder(F); > F := FieldOfFractions(Z_F); > A<alpha,beta,alphabeta> := QuaternionAlgebra<F | -3,b>; > O := Order([alpha,beta]); > O1 := Order([1/3*alpha,beta], [ideal<Z_F | b^2+b+1>, ideal<Z_F | 1>]); > Discriminant(O1); Principal Ideal of Z_F Generator: 4/1*F.1 + 12/1*F.2 + 8/1*F.3 > xi := (1 + alpha + (7+5*b+6*b^2)*beta + (3+b+6*b^2)*alphabeta)/2; > zeta := (-6-25*b-5*b^2)*alpha - 3*beta; > O2 := Adjoin(O, xi); > O := O1+O2; > Discriminant(O); Ideal of Z_F Basis: [2 0 4] [0 2 4] [0 0 6]