Ideal Operations

pIntegralBasis(I, p) : OMIdl, RngElt -> SeqEnum
Given an ideal I in OM representation and a prime element p in the field containing I, compute a p-integral basis for I.
SIntegralBasis(I, S) : OMIdl, SeqEnum -> SeqEnum
SIntegralBasis(I, S) : RngOrdFracIdl, [RngIntElt] -> SeqEnum
SIntegralBasis(I, S) : RngFunOrdIdl, [RngUPolElt] -> SeqEnum
Given an ideal I in either representation and a sequence S of primes in the field containing I, compute an S-integral basis of I for the given set of primes S.
Basis(I) : OMIdl -> SeqEnum
    HNF: BoolElt                        Default: false
    Separated: BoolElt                  Default: false
Given an ideal I in OM representation, return a basis for I.

If HNF is set to true a triangular basis in Hermite form is returned.

If Separated is set to true the basis will be returned as a sequence of numerators and denominators.

Example FldFunG_om-ideal-op (H45E56)

> k := GF(13);
> A<t> := PolynomialRing(k);
> Ax<x> := PolynomialRing(A);
> f := x^4 + (4*t + 4)*x^3 + (6*t^2 + 12*t + 6)*x^2 + (4*t^3 + 12*t^2 + 12*t
>                            + 4)*x + t^4 + 5*t^3 + 6*t^2 + 4*t + 1;
> L := FunctionField(f);
> p := t;
> I := OMRepresentation(L,[L.1,p^12]);
> pIntegralBasis(I,p);
[
    1,
    L.1 + 1,
    1/t*L.1^2 + 2/t*L.1 + 1/t,
    1/t^2*L.1^3 + 3/t^2*L.1^2 + 3/t^2*L.1 + 1/t^2
]
> pIntegralBasis(I,p:HNF:=true); // In HNF
[
    1,
    L.1,
    1/t*L.1^2 + 2/t*L.1 + 1/t,
    1/t^2*L.1^3 + 3/t^2*L.1^2 + 3/t^2*L.1 + 1/t^2
]
The p-integral basis is already the global basis :
> Basis(I);
[
    1,
    L.1 + 1,
    1/t*L.1^2 + 2/t*L.1 + 1/t,
    1/t^2*L.1^3 + 3/t^2*L.1^2 + 3/t^2*L.1 + 1/t^2
]
> Basis(I : HNF := true);
[
    1,
    L.1,
    1/t*L.1^2 + 2/t*L.1 + 1/t,
    1/t^2*L.1^3 + 3/t^2*L.1^2 + 3/t^2*L.1 + 1/t^2
]
TwoElement(I) : OMIdl -> FldArithElt, FldArithElt
Given an ideal I in OM representation, return a, b such that e = a * e1 + b * e2 for some e1, e2 for all e ∈I.
Norm(I) : OMIdl -> RngElt
Given an ideal I in OM representation, compute the norm of I.
Valuation(alpha, P : parameters) : FldArithElt, OMIdl->RngIntElt,FldElt
Valuation(alpha, P : parameters) : FldRatElt, OMIdl->RngIntElt,FldElt
Valuation(alpha, P : parameters) : RngIntElt, OMIdl->RngIntElt,FldElt
Valuation(alpha, P : parameters) : RngUPolElt, OMIdl->RngIntElt,FldElt
    RED: BoolElt                        Default: false,
    MoreSFL: BoolElt                    Default: false
Compute the P-valuation v of α at the prime ideal P.

Setting the parameter MoreSFL to true selects a single factor lifting algorithm. Setting the parameter RED to true returns also the class of α in Pv/P(v + 1).

Valuation(I, P) : OMIdl, OMIdl -> RngIntElt
Given ideals I and P in OM representation, return the valuation of I at P.
a mod P : FldArithElt, OMIdl -> FldArithElt
Reduction(a, P) : FldArithElt, OMIdl -> FldArithElt
Reduction(a, P, m) : FldArithElt, OMIdl, RngIntElt -> [FldArithElt]
Given an element a of the field containing the prime ideal P, which is in OM representation, return a' such that a = a' + I and a' ∈P0/P.

If m > 0 is given then a sequence of length m of elements in P0/P is returned representing the local expansion of a at P up to precision m.

Factorization(I) : OMIdl -> SeqEnum
Factorisation(I) : OMIdl -> SeqEnum
Given an ideal I in OM representation returns a sequence of tuples of primes Pi and exponents ei such that I = ∏i Piei.

Example FldFunG_om-ideal-ops (H45E57)

> k := GF(13);
> A<t> := PolynomialRing(k);
> Ax<x> := PolynomialRing(A);
> f := x^5 + (t^2 + 2*t + 1)*x^4 + (t^4 + 4*t^3 + 6*t^2 + 4*t + 1)*x^3 + (t^3
>         + 3*t^2 + 3*t + 1)*x^2 + (t^4 + 4*t^3 + 6*t^2 + 4*t + 1)*x + t;
> L := FunctionField(f);
> I := OMRepresentation(L,[1/L.1^2,12]);
> I;
OM ideal of the field Algebraic function field defined over Univariate rational
function field over GF(13) by
x^5 + (t^2 + 2*t + 1)*x^4 + (t^4 + 4*t^3 + 6*t^2 + 4*t + 1)*x^3 + (t^3 + 3*t^2 +
3*t + 1)*x^2 + (t^4 + 4*t^3 + 6*t^2 + 4*t + 1)*x + t
generated by [
(t^4 + 4*t^3 + 6*t^2 + 4*t + 1)/t^2*$.1^4 + (t^6 + 6*t^5 + 2*t^4 + 7*t^3 + 2*t^2
+ 5*t + 1)/t^2*$.1^3 + (t^8 + 8*t^7 + 2*t^6 + 4*t^5 + 5*t^4 + 3*t^3 + 7*t +
1)/t^2*$.1^2 + (t^7 + 7*t^6 + 7*t^5 + 5*t^4 + 3*t^3 + 4*t^2 + 6*t + 1)/t^2*$.1 +
(t^8 + 8*t^7 + 2*t^6 + 4*t^5 + 4*t^4 + t^3 + 12*t^2 + 7*t + 1)/t^2,
12
]
> TwoElement(I);
1
(9*t^9 + t^7 + 3*t^6 + 11*t^4 + 2*t^3 + 9*t^2 + 4*t + 1)/t^2*L.1^4 + (4*t^12 +
    8*t^11 + 5*t^10 + 9*t^9 + 2*t^8 + 10*t^7 + 12*t^6 + 6*t^5 + 5*t^4 + 12*t^3 +
    4*t^2 + 5*t + 1)/t^2*L.1^3 + (4*t^11 + 10*t^9 + 11*t^8 + 6*t^7 + 7*t^6 +
    10*t^5 + 5*t^4 + 10*t^3 + 3*t^2 + 7*t + 1)/t^2*L.1^2 + (4*t^12 + 8*t^11 +
    5*t^10 + 2*t^8 + 3*t^7 + 5*t^6 + 8*t^5 + 10*t^4 + 6*t^3 + 7*t^2 + 6*t +
    1)/t^2*L.1 + (4*t^9 + 5*t^8 + 5*t^6 + 11*t^5 + 5*t^4 + 10*t^3 + 3*t^2 + 7*t
    + 1)/t^2
> Norm(I);
1/t^2
> Factorization(I);
[
    <OM prime ideal over   t
    of Algebraic function field defined over Univariate rational function field
    over GF(13) by
    x^5 + (t^2 + 2*t + 1)*x^4 + (t^4 + 4*t^3 + 6*t^2 + 4*t + 1)*x^3 + (t^3 +
    3*t^2 + 3*t + 1)*x^2 + (t^4 + 4*t^3 + 6*t^2 + 4*t + 1)*x + t
    having residual degree   1
    and ramification index   1
    Last phi polynomial is   x, -2>
]
> Montes(L, t+1);
> Valuation(I, L`PrimeIdeals[t][1]);
-2
> Valuation(I, L`PrimeIdeals[t+1][1]);
0
ResidueField(I) : OMIdl -> Fld
Given an ideal I in OM representation returns the field P0/P.
Degree(I) : OMIdl -> RngIntElt
Given a prime ideal I in OM representation, contained in a function field, return the degree of the residue field over the constant field of the function field.

If I is not prime then the degree of the first ideal in the factorization of I is returned.

Example FldFunG_om-ideals-deg-res (H45E58)

> F<t> := FunctionField(Rationals());
> P<x> := PolynomialRing(F);
> L<a> := ext<F | x^2 + t>;
> Montes(L, Numerator(t)^2+1);
> L`PrimeIdeals[Numerator(t)^2+1];
[
    OM prime ideal over t^2 + 1
    of Algebraic function field defined over Univariate rational function field
    over Rational Field by
    x^2 + t
    having residual degree   2
    and ramification index   1
    Last phi polynomial is x^2 + t
]
> Degree($1[1]);
4
> ResidueField($2[1]);
Number Field with defining polynomial y^2 + $.1 over its ground field
V2.28, 13 July 2023