Ideals

Ideal(S, gens): AlgEtQOrd, SeqEnum -> AlgEtQIdl

Creates an ideal of the order \(S\), generated by the elements of \(gens\).

Ideal(S, idls): AlgEtQOrd, Tup -> AlgEtQIdl

Given an order \(S\) which is a product of orders \(S_i\) in the number fields generating Algebra(S), and a tuple of ideals \(I_i\) of \(S_i\), returns the \(S\)-ideal corresponding to the direct sum of the \(I_i\).

Ideal(S, gen): AlgEtQOrd, Any -> AlgEtQIdl
S * gen: AlgEtQOrd, AlgEtQElt -> AlgEtQIdl
S * gen: AlgEtQOrd, RngIntElt -> AlgEtQIdl
S * gen: AlgEtQOrd, FldRatElt -> AlgEtQIdl
gen * S: AlgEtQElt, AlgEtQOrd -> AlgEtQIdl
gen * S: RngIntElt, AlgEtQOrd -> AlgEtQIdl
gen * S: FldRatElt, AlgEtQOrd -> AlgEtQIdl

Creates an ideal of \(S\), generated by \(gen\).

T !! I: AlgEtQOrd, AlgEtQIdl -> AlgEtQIdl

Given an \(S\)-ideal \(I\) and an order \(T\), returns the extension \(IT\) as a \(T\)-ideal. Note that if \(T\) is a subset of \(S\), then \(IT=I\).

Algebra(I): AlgEtQIdl -> AlgEtQ

Returns the étale algebra in which the ideal \(I\) lives.

Order(I): AlgEtQIdl -> AlgEtQOrd

Returns the order of definition of the ideal \(I\).

ZBasis(I): AlgEtQIdl -> SeqEnum[AlgEtQElt]

Returns a \({{\Z}}\)-basis of the ideal \(I\).

Generators(I): AlgEtQIdl -> SeqEnum[AlgEtQElt]

Returns the generators of the ideal \(I\).

I eq J: AlgEtQIdl, AlgEtQIdl -> BoolElt
I ne J: AlgEtQIdl, AlgEtQIdl -> BoolElt

Returns whether the ideals \(I\) and \(J\) are equal, respectively not equal.

Let \(I\) a fractional \(S\)-ideal in an étale algebra over \({{\Q}}\). Let \(P\) be the upper triangular Hermite normal form of the integer square matrix \(d\cdot M\) where \(M\) is the matrix whose rows are the coefficients of a \({{\Z}}\)-basis of \(I\) and \(d\) is the least common denominator of its entries. The Hash of \(I\) is defined to be the sequence consisting of the least common denominator of \({1\over d}\cdot P\) and the entries of the upper triangular part of \({1\over d}\cdot P\). This hashing method has no collisions and it is independent of the choice of \({{\Z}}\)-basis from which we start the procedure.

I eq S: AlgEtQIdl, AlgEtQOrd -> BoolElt
S eq I: AlgEtQOrd, AlgEtQIdl -> BoolElt

Return whether \(I\) is equal to \(S\) when \(I\) is an ideal of \(S\).

AbsoluteCoordinates(x, I): AlgEtQElt, AlgEtQIdl -> SeqEnum

Given an element \(x\) and an ideal \(I\), returns the coordinates of \(x\) with respect to the stored Z-basis of \(I\).

AbsoluteCoordinates(seq, I): SeqEnum[AlgEtQElt], AlgEtQIdl -> SeqEnum

Returns the coordinates of the elements in seq with respect to the stored Z-basis of \(I\).

x in I: AlgEtQElt, AlgEtQIdl -> BoolElt
x in I: RngIntElt, AlgEtQIdl -> BoolElt
x in I: FldRatElt, AlgEtQIdl -> BoolElt

Returns whether the element \(x\) is in the ideal \(I\).

S subset I: AlgEtQOrd, AlgEtQIdl -> BoolElt

Given an ideal \(I\) of an order \(S\), return whether \(S \subseteq I\).

I subset S: AlgEtQIdl, AlgEtQOrd -> BoolElt

Given an ideal \(I\) of an order \(S\), return whether \(I \subseteq S\).

I1 subset I2: AlgEtQIdl, AlgEtQIdl -> BoolElt

Checks if the ideal \(I1\) is inside the ideal \(I2\). The ideals need to be fractional.

Index(T): AlgEtQIdl -> FldRatElt

Given an ideal \(T\) computes its index with respect to the basis of the algebra of \(T\) as a free \({{\Q}}\)-module.

Index(J, I): AlgEtQIdl, AlgEtQIdl -> Any

Given fractional ideals \(J\) and \(I\) defined over the same order returns \([J:I] = [J:J \cap I]/[I : J \cap I]\).

Index(S, I): AlgEtQOrd, AlgEtQIdl -> Any

Given an ideal \(I\) of an order \(S\) returns \([S:I] = [S:S \cap I]/[I : S \cap I]\).

OneIdeal(S): AlgEtQOrd -> AlgEtQIdl

Given an order \(S\) returns the ideal \(1*S\) which will be cached.

Conductor(O): AlgEtQOrd -> AlgEtQOrdIdl

Computes the conductor of an order \(O\), defined as the colon ideal \((O:O_K)\), where \(O_K\) is the maximal order of the algebra.

I + J: AlgEtQIdl, AlgEtQIdl -> AlgEtQIdl

Returns the sum of two ideals.

I * J: AlgEtQIdl, AlgEtQIdl -> AlgEtQIdl

Product of two ideals.

I * x: AlgEtQIdl, AlgEtQElt -> AlgEtQIdl
I * x: AlgEtQIdl, RngIntElt -> AlgEtQIdl
I * x: AlgEtQIdl, FldRatElt -> AlgEtQIdl
x * I: AlgEtQElt, AlgEtQIdl -> AlgEtQIdl
x * I: RngIntElt, AlgEtQIdl -> AlgEtQIdl
x * I: FldRatElt, AlgEtQIdl -> AlgEtQIdl

Returns \(x*I\).

I ^ n: AlgEtQIdl, RngIntElt -> AlgEtQIdl

Returns the \(n\)th power of an ideal.

I meet S: AlgEtQIdl, AlgEtQOrd -> AlgEtQIdl
S meet I: AlgEtQOrd, AlgEtQIdl -> AlgEtQIdl

Given an ideal \(I\) of \(S\), return \(S \cap I\).

I meet J: AlgEtQIdl, AlgEtQIdl -> AlgEtQIdl

Given ideals \(I\) and \(J\), return \(J \cap I\).

&+ seq: SeqEnum[AlgEtQIdl] -> AlgEtQIdl

Returns the sum of the fractional ideals in the sequence.

ColonIdeal(I, J): AlgEtQIdl, AlgEtQIdl -> AlgEtQIdl

Computes the colon ideal \((I:J)\) (as an \(O\)-ideal) of two \(O\)-ideals, which is the set of elements \(x\) of the algebra such that \(x \cdot J \subset I\).

ColonIdeal(O, J): AlgEtQOrd, AlgEtQIdl -> AlgEtQIdl

Computes the colon ideal \((1 \cdot O:J)\) (as an \(O\)-ideal).

ColonIdeal(I, O): AlgEtQIdl, AlgEtQOrd -> AlgEtQIdl

Computes the colon ideal \((I:1 \cdot O)\) (as an \(O\)-ideal).

IsInvertible(I): AlgEtQIdl -> BoolElt

Checks if the ideal \(I\) is invertible in its order of definition \(O\).

Inverse(I): AlgEtQIdl -> AlgEtQIdl

Computes the inverse of an invertible ideal \(I\).

MultiplicatorRing(I): AlgEtQIdl -> AlgEtQOrd

Given a fractional ideal \(I\) computes its multiplicator ring \((I:I)\).

IsProductOfIdeals(I): AlgEtQIdl -> BoolElt, Tup

Return if the ideal \(I\) is a product of ideals in the number fields defining the algebra. If so, it returns also the sequence of these ideals (in the appropriate orders). Note: we require Order(I) to be MultiplicatorRing(I).

Random(I, bd): AlgEtQIdl, RngIntElt -> AlgEtQElt
ZeroDivisorsAllowed: BoolElt                    Default: false

Returns a random element of the ideal \(I\). The coefficients are bounded by the positive integer \(bd\). One can allow zero-divisors using the optional parameter ZeroDivisorsAllowed, which by default is set to false.

Random(I): AlgEtQIdl -> AlgEtQElt
CoeffRange         : RngIntElt                    Default: 3
ZeroDivisorsAllowed: BoolElt                      Default: false

Returns a random (small coefficient) element of the ideal \(I\). The range of the random coefficients can be increased by giving the optional parameter CoeffRange. One can allow zero-divisors using the optional parameter ZeroDivisorsAllowed, which by default is set to false.

IsCoprime(I, J): AlgEtQIdl, AlgEtQIdl -> BoolElt

Given two integral ideals \(I\) and \(J\) of an order \(S\), returns whether \(I+J=R\).

IsIntegral(I): AlgEtQIdl -> BoolElt

Returns whether the ideal \(I\) of \(S\) is integral, that is \(I \subseteq S\).

MakeIntegral(I): AlgEtQIdl -> AlgEtQIdl, RngIntElt

Given a fractional \(S\) ideal \(I\), returns the ideal \(d \cdot I, d\) when \(d\) is the smallest integer such that \(d \cdot I\) is integral in \(S\). Compare with SmallRepresentative.

MinimalInteger(I): AlgEtQIdl -> RngIntElt

Returns the smallest integer contained in the ideal \(I\).

CoprimeRepresentative(I, J): AlgEtQIdl, AlgEtQIdl -> AlgEtQElt, AlgEtQIdl

Returns an element \(x\) such that \(x \cdot I\) is an integral ideal coprime with \(J\), together with the product \(x \cdot I\). The first ideal must be invertible and the second should be integral.

ZBasisLLL(~S): AlgEtQOrd
ZBasisLLL(~S): AlgEtQIdl

A procedure that replaces the ZBasis with an LLL-reduced one. Note: the attribute inclusion matrix, which depends on the \({{\Z}}\)-Basis is modified as well.