|
[Next][Prev] [Right] [Left] [Up] [Index] [Root]
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 QQ := NumberField(Rationals()); and define
the algebra over QQ instead of Rationals().
Subsections
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.
Order(A, m, I) : AlgAssV[FldNum], AlgMatElt[FldNum], SeqEnum[RngOrdFracIdl] -> AlgAssVOrd, Map
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.
Order(A, pm) : AlgAssV[FldNum], PMat -> AlgAssVOrd, Map
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.
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.
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 );
1
> T :=MultiplicationTable(O);
> T[3][7];
[ -16583482050411285785256, 5672389828626293786946, 1059868937213366777403,
55245368126632733561175, -41598423838438078787076, 1726223870812049536260,
66694491159819102489072, 76373181201401217517416, -114928189655490866071212 ]
CoefficientRing(O) : AlgAssVOrd -> Rng
The base ring of the associative order O.
The container algebra of the associative order O.
Dimension(O) : AlgAssVOrd -> RngIntElt
Returns the dimension (or degree) of the order O, equivalently
the dimension of its parent algebra as a vector space over its ground
field.
Discriminant(O) : AlgAssVOrd[RngInt] -> RngIntElt
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.
We compute an order and show how a basis and a pseudobasis can differ.
> 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.
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]
|