Ideals of Orders#
Construction of Ideals#
- lideal<O | E>: AlgAssVOrd, [AlgAssVOrdElt] -> AlgAssVOrdIdl#
- rideal<O | E>: AlgAssVOrd, [AlgAssVOrdElt] -> AlgAssVOrdIdl#
- ideal<O | E>: AlgAssVOrd, [AlgAssVOrdElt] -> AlgAssVOrdIdl#
For an associative order \(O\), this constructs the left, right or two sided \(O\)-ideal generated by the elements in the given sequence \(E\) (these elements should be coercible into \(O\)).
- lideal<O | M>: AlgAssVOrd, PMat -> AlgAssVOrdIdl#
- lideal<O | M>: AlgAssVOrd, Mtrx -> AlgAssVOrdIdl#
- rideal<O | M>: AlgAssVOrd, PMat -> AlgAssVOrdIdl#
- rideal<O | M>: AlgAssVOrd, Mtrx -> AlgAssVOrdIdl#
- ideal<O | M>: AlgAssVOrd, PMat -> AlgAssVOrdIdl#
- ideal<O | M>: AlgAssVOrd, Mtrx -> AlgAssVOrdIdl#
Constructs a left, right or two sided ideal of the associative order \(O\) whose basis is given by \(M\), which may be either a matrix or a pseudo matrix.
Attributes of Ideals#
In this section, \(I\) is an ideal of some order in an associative algebra.
- Order(I): AlgAssVOrdIdl -> AlgAssVOrd#
For an ideal \(I\) created as an ideal of an order \(O\), this returns \(O\).
- Algebra(I): AlgAssVOrdIdl -> AlgAssV#
This returns
Algebra(Order(I)).
- LeftOrder(I): AlgAssVOrdIdl -> AlgAssVOrd#
- RightOrder(I): AlgAssVOrdIdl -> AlgAssVOrd#
For an ideal \(I\), this returns the (full) order in
Algebra(I)which stabilizes \(I\) under multiplication on the left or right respectively. Explicitly, the left order of \(I\) is defined as \(\{ x : x I \subseteq I \}\).
- ArithmeticRadical(O, p): AlgAssVOrd[RngOrd], RngOrdIdl -> AlgAssVOrdIdl#
- ArithmeticRadical(O, p): AlgQuat, RngElt -> AlgQuatOrdIdl#
Given an order \(O\) over a number ring \(R\) and a prime ideal \(p\) in \(R\), return the Arithmetic Radical of \(O\) over \(p\). This is the unique two-sided ideal \(J\) of \(O\) over \(pO\) such that \(J/pO\) is the Jacobson radical of \(O/pO\).
- RadicalIdealizer(O, p): AlgAssVOrd[RngOrd], RngOrdIdl -> AlgAssVOrd#
- RadicalIdealizer(O, p): AlgQuat, RngElt -> AlgQuat#
Side: MonStgElt Default: "Intersection"
Returns either the left or right order of the arithmetical radical of \(O\) at \(p\) or the intersection of these two orders, depending on whether
Sideis"Left","Right"or"Intersection".
- Neighbors(I, p): AlgAssVOrdIdl, RngOrdIdl -> SeqEnum[AlgAssVOrdIdl]#
- Neighbors(I, p): AlgQuatOrdIdl, RngInt -> SeqEnum[AlgQuatOrdIdl]#
Returns the \(p\)-neighbors of the ideal \(I\), namely the ideals \(J \subseteq I\) such that \({\rm Nm}(J) = p {\rm Nm}(I)\). Currently, only implemented for squarefree ideals \(p\) coprime to \({\rm Disc}(O) {\rm Nm}(I)\), where \(O\) is
Order(I).
- ElementsOfNorm(I, n): AlgAssVOrdIdl, RngElt -> SeqEnum#
ModUnits: BoolElt Default: false
Returns the elements in \(I\) of norm \(n\). Currently, only implemented when \(I\) is an ideal in a definite quaternion algebra. If
ModUnitsis set totrue, returns only one representative from every orbit under the action of the group of units of norm \(1\) in \(O\), where \(O\) isOrder(I).
Bases of Ideals#
In this section, \(I\) is an ideal of an order \(O\) in an associative algebra.
- Denominator(I): AlgAssVOrdIdl -> RngElt#
This returns an element \(d\) of
BaseRing(O)such that \(d I \subseteq O\), where \(O\) isOrder(I).
- PseudoBasis(I): AlgAssVOrdIdl[RngOrd] -> SeqEnum#
Given an ideal \(I\) of an order over \(R\), where \(R\) is an order in a number field, this returns data describing \(I\) as an \(R\)-module. It returns a sequence of tuples \(\langle I_i, b_i \rangle\) where \(I_i\) is an ideal of \(R\) and \(b_i\) is an element of
Algebra(I), such that \(I\) is the direct sum of the \(R\)-modules \(I_i b_i\). In particular, the \(b_i\) form a basis ofAlgebra(I)as a vector space over the field of fractions of \(R\). Note that the \(b_i\) may not lie in \(I\).
- PseudoMatrix(I): AlgAssVOrdIdl[RngOrd] -> PMat#
- PseudoMatrix(I): AlgAssVOrdIdl[RngFunOrd] -> PMat#
Returns the pseudomatrix corresponding to
PseudoBasis(I).
- Basis(I): AlgAssVOrdIdl -> SeqEnum#
When \(I\) is an ideal of an order over \({\mathbb{Z}}\), this returns a \({\mathbb{Z}}\)-module basis of \(I\).
When the base ring of
Order(I)is an extension of \({\mathbb{Z}}\), this returns part of the data returned byPseudoBasis(I): it returns a basis ofAlgebra(I). Note that this determines nothing about \(I\), while the full data returned byPseudoBasis(I)determines \(I\).
- BasisMatrix(I): AlgAssVOrdIdl -> AlgMatElt#
This returns
Basis(I)as a row matrix.
- ZBasis(I): AlgAssVOrdIdl[RngOrd] -> [AlgAssVOrdElt]#
Returns a \({\mathbb{Z}}\)-module basis for the ideal \(I\).
- Generators(I): AlgAssVOrdIdl[RngOrd] -> [AlgAssVOrdElt]#
Returns a sequence of generators for the ideal \(I\) as a module over its base ring.
- LocalBasis(I, p): AlgAssVOrdIdl, RngOrdIdl -> [AlgAssElt]#
Type: MonStgElt Default: ""
Given an ideal \(I\) of an \(R\)-order in an algebra \(A\), this function returns a basis of a free \(R\)-module \(F\) in \(A\) such that \(I\) and \(F\) agree at the completion at the prime ideal \(p\) of \(R\). If
Typeis specified, it must either be"Submodule"or"Supermodule". In which case \(F\) is either a sub- or supermodule of \(I\).
- PseudoBasis(I, R): AlgAssVOrdIdl[RngOrd], Str -> SeqEnum#
- PseudoMatrix(I, R): AlgAssVOrdIdl[RngOrd], Str -> PMat#
- Basis(I, R): AlgAssVOrdIdl, Str -> SeqEnum#
- BasisMatrix(I, R): AlgAssVOrdIdl, Str -> AlgMatElt#
In these variants of the functions described above, the elements of the basis are expressed with respect to the basis of \(R\), where \(R\) is some ring contained in \(A =\)
Algebra(I)such that \(R \otimes F = A\) where \(F\) is the base field of \(A\).
Arithmetic for Ideals#
- I + J: AlgAssVOrdIdl, AlgAssVOrdIdl -> AlgAssVOrdIdl#
The sum of the ideals \(I\) and \(J\), which are ideals which share a side in equal orders.
- I * J: AlgAssVOrdIdl, AlgAssVOrdIdl -> AlgAssVOrdIdl, AlgAssVOrdIdl#
- I * J: AlgAssVOrdIdl[RngOrd], AlgAssVOrdIdl[RngOrd] -> AlgAssVOrdIdl, AlgAssVOrdIdl#
The product of the ideals \(I\) and \(J\), where \(I\) is a right ideal and \(J\) is a left ideal of the same order \(O\). Returns the product given the structure of left and right ideal.
- a * I: RngElt, AlgAssVOrdIdl -> AlgAssVOrdIdl#
- I * a: AlgAssVOrdIdl, RngElt -> AlgAssVOrdIdl#
- a * I: RngElt, AlgQuatOrdIdl -> AlgQuatOrdIdl#
- I * a: AlgQuatOrdIdl, RngElt -> AlgQuatOrdIdl#
Returns the product of \(a\) and \(I\) as an ideal.
- A * I: RngOrdFracIdl, AlgAssVOrdIdl[RngOrd]) -> AlgAssVOrdIdl#
- I * A: RngOrdFracIdl, AlgAssVOrdIdl[RngOrd]) -> AlgAssVOrdIdl#
Returns the product of a fractional ideal \(A\) of the base ring with \(I\) as an ideal.
- Colon(J, I): AlgAssVOrdIdl[RngOrd], AlgAssVOrdIdl[RngOrd] -> PMat#
If \(I,J\) are left ideals, returns the colon \((J:I)=\{x \in A: xI \subset J\}\), similarly defined if \(I,J\) are right ideals.
- MultiplicatorRing(I): AlgAssVOrdIdl -> AlgAssVOrd#
Returns the colon \((I:I)\) of the ideal \(I\), the set of all elements which multiply \(I\) into \(I\).
Predicates on Ideals#
- IsLeftIdeal(I): AlgAssVOrdIdl -> BoolElt#
- IsRightIdeal(I): AlgAssVOrdIdl -> BoolElt#
- IsTwoSidedIdeal(I): AlgAssVOrdIdl -> BoolElt#
Return
trueif the associative ideal \(I\) is a left, right or two sided ideal (respectively).
- I eq J: AlgAssVOrdIdl, AlgAssVOrdIdl -> BoolElt#
Return
trueif the associative ideals \(I\) and \(J\) are equal.
- I subset J: AlgAssVOrdIdl, AlgAssVOrdIdl -> BoolElt#
Returns
trueif and only if the ideal \(I\) is contained in the ideal \(J\).
Other Operations on Ideals#
- Norm(I): AlgAssVOrdIdl[RngOrd] -> RngOrdIdl#
Returns the norm of the ideal \(I\), the ideal of the base number ring of \(I\) generated by the norms of the elements in \(I\).
- Example: sumandadjoin (ex-d618e7)#
> F<w> := CyclotomicField(3); %%> // MaximalOrder is random > R := MaximalOrder(F); > A := Algebra(FPAlgebra<F, x, y | x^3-3, y^3+5, y*x-w*x*y>); > O := Order([A.i : i in [1..9]]); > MinimalPolynomial(O.2); $.1^3 + 5/1*R.1 > I := rideal<O | O.2>; > IsLeftIdeal(I), IsRightIdeal(I), IsTwoSidedIdeal(I); false true false > MultiplicatorRing(I) eq O; true > PseudoBasis(I); [ <Principal Ideal of R Generator: R.1, (0 R.1 0 0 0 0 0 0 0)>, <Principal Ideal of R Generator: R.1, (0 0 0 R.1 0 0 0 0 0)>, <Principal Ideal of R Generator: R.1, (0 0 0 0 -R.1 - R.2 0 0 0 0)>, <Principal Ideal of R Generator: R.1, (-5/1*R.1 0 0 0 0 0 0 0 0)>, <Principal Ideal of R Generator: R.1, (0 0 0 0 0 0 -R.1 - R.2 0 0)>, <Principal Ideal of R Generator: R.1, (0 0 0 0 0 0 0 R.2 0)>, <Principal Ideal of R Generator: R.1, (0 0 5/1*R.1 + 5/1*R.2 0 0 0 0 0 0)>, <Principal Ideal of R Generator: R.1, (0 0 0 0 0 0 0 0 R.2)>, <Principal Ideal of R Generator: R.1, (0 0 0 0 0 -5/1*R.2 0 0 0)> ] > ZBasis(I); [ [0 R.1 0 0 0 0 0 0 0], [0 R.2 0 0 0 0 0 0 0], [0 0 0 R.1 0 0 0 0 0], [0 0 0 R.2 0 0 0 0 0], [0 0 0 0 -R.1 - R.2 0 0 0 0], [0 0 0 0 R.1 0 0 0 0], [-5/1*R.1 0 0 0 0 0 0 0 0], [-5/1*R.2 0 0 0 0 0 0 0 0] ] > Norm(I); Principal Ideal of R Generator: 15625/1*R.1 > J := rideal<O | O.3>; > Norm(J); Principal Ideal of R Generator: 729/1*R.1 > A!1 in I+J; false > Denominator(1/6*I); [1, 0] > Colon(J,I); Pseudo-matrix over Maximal Equation Order with defining polynomial x^2 + x + 1 over its ground order Principal Ideal of R Generator: 3/1*R.1 * ( R.1 0 0 0 0 0 0 0 0 ) Principal Ideal of R Generator: 3/1*R.1 * ( 0 R.1 0 0 0 0 0 0 0 ) Principal Ideal of R Generator: R.1 * ( 0 0 R.1 0 0 0 0 0 0 ) Fractional Principal Ideal of R Generator: 3/5*R.1 * ( 0 0 0 R.1 0 0 0 0 0 ) Principal Ideal of R Generator: R.1 * ( 0 0 0 0 R.1 0 0 0 0 ) Principal Ideal of R Generator: R.1 * ( 0 0 0 0 0 R.1 0 0 0 ) Fractional Principal Ideal of R Generator: -1/5*R.1 * ( 0 0 0 0 0 0 R.1 0 0 ) Principal Ideal of R Generator: R.1 * ( 0 0 0 0 0 0 0 R.1 0 ) Fractional Principal Ideal of R Generator: 1/5*R.1 * ( 0 0 0 0 0 0 0 0 R.1 )