|
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().
Order(R, S) : RngFunOrd, SeqEnum[AlgAssVElt[FldFunG]] -> AlgAssVOrd
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.
Order(S) : SeqEnum[AlgAssVElt[FldFun]] -> AlgAssVOrd
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.
Order(S, I) : SeqEnum[AlgAssVElt[FldFunG]], SeqEnum[RngFunOrdIdl] -> AlgAssVOrd
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.
Order(A, m, I) : AlgAssV[FldNum], AlgMatElt[FldNum], SeqEnum[RngOrdFracIdl] -> AlgAssVOrd, Map
Order(A, m, I) : AlgAssV[FldFun], AlgMatElt[FldFun], SeqEnum[RngFunOrdIdl] -> AlgAssVOrd
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.
Order(A, pm) : AlgAssV[FldNum], PMat -> AlgAssVOrd, Map
Order(A, pm) : AlgAssV[FldFun], PMat -> AlgAssVOrd
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.
We begin by illustrating three methods for creating an associative order.
> 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
Here we give two other examples of order creation.
> 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.
MaximalOrder(O) : AlgAssVOrd[RngOrd] -> AlgAssVOrd
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.
MaximalOrderInfinite(A) : AlgAssV[FldFun] -> AlgAssVOrd
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.
MaximalOrder(O) : AlgAssVOrd[RngVal] -> AlgAssVOrd
MaximalOrder(O) : AlgAssVOrd[RngFunOrd] -> AlgAssVOrd
Given an order O of an associative algebra A over a function field
return the maximal order of A which contains O.
First we define two 9 x 9-matrices that generate a 9-dimensional
associative algebra. We check that its Jacobson radical is zero, and then
we compute a maximal order.
> 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 ]
We show a maximal order computation for an algebra over a number field.
> 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 )
RestrictionOfScalars(O) : AlgAssVOrd[RngFunOrd] -> AlgAssVOrd, Map
RestrictionOfScalars(O, C) : AlgAssVOrd[RngOrd], Rng -> AlgAssVOrd, Map
RestrictionOfScalars(O, C) : AlgAssVOrd[RngFunOrd], Rng -> AlgAssVOrd, Map
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.
We give an example showing a RestrictionOfScalars computation of an order
over an order of an algebraic field.
> 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]
CoefficientRing(O) : AlgAssVOrd -> Rng
The base ring of the associative order O.
The container algebra of the associative order O.
Dimension(O) : AlgAssVOrd -> RngIntElt
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.
Discriminant(O) : AlgAssVOrd[RngFunOrd] -> RngOrdIdl
Discriminant(O) : AlgAssVOrd[RngInt] -> RngIntElt
Discriminant(O) : AlgAssVOrd[RngUPol] -> RngIntElt
Discriminant(O) : AlgAssVOrd[RngVal] -> RngIntElt
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.)
PseudoBasis(O) : AlgAssVOrd[RngFunOrd] -> SeqEnum
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.
PseudoMatrix(O) : AlgAssVOrd[RngFunOrd]> -> PMat
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.
ZBasis(O) : AlgAssVOrd[RngFunOrd] -> [AlgAssVElt]
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.
This example demonstrates use of PseudoBasis of an order.
> 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 Z F-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.
x notin O : AlgAssVElt, AlgAssVOrd -> BoolElt
Return true (respectively, false) if the element x of an associative
algebra is in the associative order O.
Adjoin(O, x, I) : AlgAssVOrd, AlgAssVElt, RngOrdFracIdl -> AlgAssVOrd
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]
[Next][Prev] [Right] [Left] [Up] [Index] [Root]
|