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.
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 use RationalsAsNumberField().
Check: BoolElt Default: true
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 or function ring, Z, F[t] or F[1/t].If the parameter Check is set to true then the elements in the sequence S are checked to be a basis.
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 or function field F.
Given a sequence of elements S of an associative algebra A and a sequence I of ideals of a number or function 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 or function 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 or function 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 or function field F with 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 or function 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.
Given an associative algebra over an algebraic field compute the maximal order in A. This computation uses RestrictionOfScalars and the MaximalOrder computation of the isomorphic algebra over the rationals as described above.
Given an order O of an associative algebra A over the rationals or a number field return the maximal order of A which contains O.
Computes a maximal F[t] order in the semisimple associative algebra A, which must be defined over some rational function field F(t). The algorithm can be found in [Fri00], Para 3.5. We refer to [IR93] for a very similar approach.
Computes a maximal F[1/t] order in the semisimple associative algebra A, which must be defined over some rational function field F(t). The algorithm can be found in [Fri00], Para 3.5. We refer to [IR93] for a very similar approach.
Given an associative algebra over an algebraic function field K compute the maximal order in A containing the finite or infinite maximal order of K. This computation uses RestrictionOfScalars and one of the MaximalOrderFinite or MaximalOrderInfinite computations of the isomorphic algebra over the rational function field as described above.
Given an order O of an associative algebra A over a function field return the maximal order of A which contains O.
> 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); -19683 > Determinant(Matrix(9, [Trace(a*b) : a, b in Basis(O)])); -19683
> T :=MultiplicationTable(O); > T[3][7]; [ -16583482050411285785256, 5672389828626293786946, 1059868937213366777403, 55245368126632733561175, -41598423838438078787076, 1726223870812049536260, 66694491159819102489072, 76373181201401217517416, -114928189655490866071212 ]
> P<x> := PolynomialRing(Rationals()); > F<b> := NumberField(x^3-3*x-1); > Z_F := MaximalOrder(F); > A<alpha,beta,alphabeta> := QuaternionAlgebra<F | -3,b>; > AA := AssociativeAlgebra(A); > MAA := MaximalOrder(AA); > MAA; Order of Associative Algebra of dimension 4 with base ring F with coefficient ring Maximal Equation Order with defining polynomial x^3 - 3*x - 1 over Z > Discriminant(MAA); Ideal of Z_F Basis: [16 0 0] [ 0 16 0] [ 0 0 16]Below we give an example of a maximal order computation of an algebra defined over a number field in relative representation.
> P<x> := PolynomialRing(QuadraticField(23)); > F<b> := NumberField(x^3-3*x-1); > Z_F := MaximalOrder(F); > A<alpha,beta,alphabeta> := QuaternionAlgebra<F | -3,b>; > AA := AssociativeAlgebra(A); > MAA := MaximalOrder(AA); > Discriminant(MAA); Ideal of Z_F Basis: Pseudo-matrix over Maximal Equation Order of Quadratic Field with defining polynomial x^2 - 23 over the Rational Field Principal Ideal Generator: -2304/1*$.1 * ( $.1 0 0 ) Principal Ideal Generator: -2304/1*$.1 * ( 0 $.1 0 ) Principal Ideal Generator: -2304/1*$.1 * ( 0 0 $.1 )
Given an order O over an order R of an algebraic number or function field K of an associative algebra A over K and an optional coefficient ring C of R return the order isomorphic to O over C if given otherwise the coefficient ring of R.
> P<x> := PolynomialRing(QuadraticField(23)); > F<b> := NumberField(x^3-3*x-1); > Z_F := MaximalOrder(F); > A<alpha,beta,alphabeta> := QuaternionAlgebra<F | -3,b>; > A := AssociativeAlgebra(A); > O := Order([A | alpha, beta]); > RO, m := RestrictionOfScalars(O); > m(O.1); [$.1 0 0 0 0 0 0 0 0 0 0 0] > $1 @@ m; [Z_F.1 0 0 0] > RO; Order of Associative Algebra of dimension 12 with base ring Quadratic Field with defining polynomial x^2 - 23 over the Rational Field with coefficient ring Maximal Equation Order of Quadratic Field with defining polynomial x^2 - 23 over the Rational Field > m; Mapping from: AlgAssVOrd: O to AlgAssVOrd: RO given by a rule > RO.7 @@ m; [0 0 Z_F.1 0] > m($1); [0 0 0 0 0 0 $.1 0 0 0 0 0] > ROZ := RestrictionOfScalars(O, Integers()); > ROZ, mZ := RestrictionOfScalars(O, Integers()); > ROZ; Order of Associative Algebra of dimension 24 with base ring Rational Field with coefficient ring Integer Ring > mZ; Mapping from: AlgAssVOrd: O to AlgAssVOrd: ROZ given by a rule > mZ(O.1); [633707 -253386 -65276 -157853 -61885 -80837 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0] > $1 @@ mZ; [Z_F.1 0 0 0] > ROZ.22 @@ mZ; [0 0 0 ($.1 + 23/1*$.2)*Z_F.1 + 72/1*$.1*Z_F.2 + 3/1*$.2*Z_F.3] > mZ($1); [0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0]
The base ring of the associative order O.
The container algebra of the associative order O.
The rank of O over its base ring. Equivalently: O is an order of some algebra A, this returns the dimension of A over its base field.
For an order O in a quaternion algebra (with type AlgQuat), this returns the reduced discriminant of O. For all other types of algebra, it returns the discriminant of O defined in the most generic way, i.e the determinant of the trace form where trace is the generic trace.
This returns the factorization of Discriminant(O) (see above) for the order O.
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.)
Given an associative order O over R, where R is an order in a number or function field, this returns data describing O as an R-module. It returns a sequence of tuples < Ii, bi > where Ii is an ideal of R and bi is an element of Algebra(O), such that O is the direct sum of the R-modules Ii bi. In particular, the bi form a basis of Algebra(O) as a vector space over the field of fractions of R. Note that the bi may not lie in O.
Returns the pseudomatrix corresponding to PseudoBasis(O).
When O is an order over Z, this returns a Z-module basis of O.When the base ring of O is an extension of Z, this returns part of the data returned by PseudoBasis(O): it returns a basis of Algebra(O). Note that this determines nothing about O, while the full data returned by PseudoBasis(O) determines O.
Returns a Z-module basis for the order O.
Returns a sequence of generators of O as a module over its base ring.
Type: MonStgElt Default: ""
Given an order O over a ring R in an algebra A, this function returns a basis of a free R-module F in A such that O and F agree at the completion at the prime ideal p of R. If Type is specified, it must either be "Submodule" or "Supermodule". In which case F is either a sub- or supermodule of O.
> 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 ]This is a basis of Algebra(O) but not a basis of O itself. The structure of O as a ZF-module is given by this basis together with coefficient ideals, as returned by either of the following:
> 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 ]
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]