[Next][Prev] [Right] [Left] [Up] [Index] [Root]

Orders

Subsections

Creation of Structures

EquationOrderFinite(F) : FldFun -> RngFunOrd
Create the `finite' equation order of the function field F/k(x), i.e. k[x, d alpha] where d in k[x] is chosen such that d alpha is integral over k[x].
MaximalOrderFinite(F) : FldFun -> RngFunOrd
Create the `finite' maximal order of the function field F/k(x). This is the integral closure of k[x] in F.
EquationOrderInfinite(F) : FldFun -> RngFunOrd
Create the `infinite' equation order of the function field F/k(x), i.e. o_(Infinity)[beta] where o_(Infinity) denotes the valuation ring of the degree valuation in k(x) and beta is a primitive element of F/k(x) which is integral over o_(Infinity).
MaximalOrderInfinite(F) : FldFun -> RngFunOrd
Create the `infinite' maximal order of the function field F/k(x). This is the integral closure of o_(Infinity) in F.
IntegralClosure(R, F) : Rng, FldFun -> RngFunOrd
The integral closure of the subring R of the function field F in itself.
MaximalOrder(O) : RngFunOrd -> RngFunOrd
The maximal order of the order O of an algebraic function field.

Creation of Elements

An order can be viewed as a free R-module of rank n where R is its coefficient ring (a polynomial ring or the degree valuation ring of k(x)) and n equals the degree F/k(x). It has a basis consisting of n elements. Within Magma, function field order elements are printed as an R-linear combination of such a basis.

One(F) : RngFunOrd -> RngFunOrdElt
Identity(F) : RngFunOrd -> RngFunOrdElt
Zero(F) : RngFunOrd -> RngFunOrdElt
Representative(F) : RngFunOrd -> RngFunOrdElt
These generic functions (cf. Chapter INTRODUCTION) create 1, 1, 0, and 0 respectively.
O ! a : RngFunOrd, . -> RngFunOrdElt
elt<O | a> : RngFunOrdElt, . -> RngFunOrdElt
Create the element of O specified by a; here a is allowed to be an element coercible into O, which means that mathematically a in O and that a may be any of:
elt< O | a_1, a_2, ..., a_(n)> : RngFunOrd, RngElt , ..., RngElt -> RngFunOrdElt
Create the element a_1 omega_1 + a_2 omega_2 + ... + a_(n) omega_n where a_1, ..., a_(n) are coercible into k(x), n equals the rank of O over k[x] and omega_1, omega_2, ..., omega_n is the basis of O as returned by Basis(O).
Random(O, m) : RngFunOrd, RngIntElt -> RngFunOrdElt
A random element of O with size of its coefficients determined by m. The function field must be global.

Creation of Ideals

Ideals for function field orders O are O-modules I subseteq F for which there is a d in F such that dI subseteq O is a non-zero ideal of O, that is they are fractional ideals of O. Over the coefficient ring of O they are also free modules of rank n, where n equals the degree [F:k(x)].

ideal< O | a_1, a_2, ... , a_m > : RngFunOrd, RngElt, ..., RngElt -> RngFunOrdIdl
Given an order O, as well as elements a_1, a_2, ..., a_m coercible into the field of fractions F of O, create the fractional ideal of O generated by these elements.

Note that, contrary to the general case for the constructors, the right hand side elements are not necessarily contained in the left hand side.

x * O : RngElt, RngFunOrd -> RngFunOrdIdl
O * x : RngFunOrd, RngElt -> RngFunOrdIdl
Create the ideal x * O where x is coercible into the function field F.
Ideal(P) : PlcFunElt -> RngFunOrdIdl
Create a prime ideal corresponding to the place P.
Ideals(D) : DivFunElt -> RngFunOrdIdl, RngFunOrdIdl
Create two ideals of the `finite' and `infinite' maximal order respectively corresponding to the divisorD.

Related Structures

Parent and Category

Function fields orders form the Magma category RngFunOrd. The notional power structure exists as parent of function field orders but allows no operations.

Category(F) : RngFunOrd -> Cat
Parent(F) : RngFunOrd -> Pow
Other Related Structures
PrimeRing(F) : RngFunOrd -> Rng
The prime ring of the order O which is a field.
BaseRing(F) : RngFunOrd -> Rng
CoefficientRing(F) : RngFunOrd -> Rng
The coefficient ring of the order O (either k[x] or the degree valuation ring of k(x)).
FieldOfFractions(O) : RngFunOrd -> FldFun
Given an order O, this function returns the function field F to which O belongs.
Reduce(O) : RngFunOrd -> RngFunOrd
Given an order O belonging to a function field F, this function returns the order obtained by applying size-reduction to the basis of O.

General Structure Invariants

Characteristic(O) : RngFunOrd -> RngIntElt
The characteristic of the order O.
Degree(O) : RngFunOrd -> RngIntElt
Given an order O, this function returns the rank of O as a module over its coefficient ring. Note that this rank is equal to the degree [F:k(x)].
DefiningPolynomial(O) : RngFunOrd -> RngUPolElt
Given an order O belonging to a function field F, this function returns the defining polynomial of O, which may be different from that of F/k(x).
Basis(O) : RngFunOrd -> SeqEnum[FldFunElt]
Given an order O belonging to a function field F, this function returns the basis of O in the form of function field elements.

Discriminant(O) : RngFunOrd -> RngElt
The discriminant of the order O, up to a unit in its coefficient ring.

Global Function Fields

UnitRank(O) : RngFunOrd -> RngIntElt
Given a maximal `finite' order O in a global function field, return the unit rank of O.
UnitGroup(O) : RngFunOrd -> GrpAb, Map
The unit group of a `finite' maximal order O as an Abelian group and the map from the unit group into O. Also see tttRef{Orders:Elements:IsUnitWithPreimage}.
Regulator(O) : RngFunOrd -> RngIntElt
The regulator of the unit group of the `finite' maximal order O.
PrincipalIdealMap(O) : RngFunOrd -> Map
The map from the multiplicative group of the field of fractions of O to the group of fractional ideals of O where O is a `finite' maximal order.
ClassGroup(O) : RngFunOrd -> GrpAb, Map
The ideal class group of the `finite' maximal order O as an Abelian group and the map from the group of fractional ideals onto the ideal class group.
ClassGroupExactSequence(O) : RngFunOrd -> Map, Map, Map
-> U -> F^ x -> Id -> Cl -> 0 where U is the unit group of O, F^ x is the multiplicative group of the field of fractions of O, Id is the group of fractional ideals of O and Cl is the class group of O for a `finite' maximal order O.where U is the unit group of O, F^ x is the multiplicative group of the field of fractions of O, Id is the group of fractional ideals of O and Cl is the class group of O for a `finite' maximal order O.
ClassGroupAbelianInvariants(O) : RngFunOrd -> SeqEnum
Computes a sequence of integers containing the Abelian invariants of the ideal class group of the `finite' maximal order O.

ClassNumber(O) : RngFunOrd -> RngIntElt
The order of the ideal class group of the `finite' maximal order O.
IndependentUnits(O) : RngFunOrd -> SeqEnum[RngFunOrdElt]
A sequence of independent units of the `finite' maximal order O.
FundamentalUnits(O) : RngFunOrd -> SeqEnum[RngFunOrdElt]
A sequence of fundamental units of the `finite' maximal order O.

Example FldFunG_orders (H57E9)

> R<x> := FunctionField(GF(3));
> P<y> := PolynomialRing(R);
> f := y^4 + x*y + x^4 + x + 1;
> F<a> := FunctionField(f);
> O := MaximalOrderFinite(F);
> Basis(O);
[ 1, a, a^2, a^3 ]
> Discriminant(O);
x^12 + x^3 + 1
> UnitRank(O);
1
> U := FundamentalUnits(O);
> U;
[ (2) ^ 3 * (x + 1) ^ -4 * ((x^2 + x + 2)*a^3 + (2*x^3 + 2*x^2 + x + 2)*a^2 + 
    (2*x^4 + 2*x^3 + 2)*a + x) ^ 1 * ((x^13 + x^10 + 2*x^9 + x^7 + x^6 + x^5 + 
    x^4 + x^2 + x)*a^3 + (x^14 + x^11 + 2*x^10 + 2*x^9 + x^8 + 2*x^7 + x^6 + 
    2*x^4 + 2*x^3 + x + 2)*a^2 + (2*x^13 + x^12 + 2*x^11 + x^10 + 2*x^9 + 2*x^8 
    + x^7 + x^6 + x^5 + x^3 + 2*x)*a + x^16 + x^14 + 2*x^13 + x^12 + 2*x^10 + 
    2*x^9 + 2*x^7 + x^4 + x^3 + 2*x^2 + 2) ^ 2 ]
> Norm(U[1]);
1
> Regulator(O);
33

Structure Predicates

IsCommutative(O) : RngFunOrd -> BoolElt
IsUnitary(O) : RngFunOrd -> BoolElt
IsFinite(O) : RngFunOrd -> BoolElt
IsOrdered(O) : RngFunOrd -> BoolElt
IsField(O) : RngFunOrd -> BoolElt
IsEuclideanDomain(O) : RngFunOrd -> BoolElt
IsPID(O) : RngFunOrd -> BoolElt
IsUFD(O) : RngFunOrd -> BoolElt
IsDivisionRing(O) : RngFunOrd -> BoolElt
IsEuclideanRing(O) : RngFunOrd -> BoolElt
IsPrincipalIdealRing(O) : RngFunOrd -> BoolElt
IsDomain(O) : RngFunOrd -> BoolElt
O1 eq O2 : RngFunOrd, Rng -> BoolElt
O1 ne O2 : RngFunOrd, Rng -> BoolElt
IsFiniteOrder(O) : RngFunOrd -> BoolElt
Given an order O of a function field, return true if and only if the coefficient ring of O is a polynomial ring.
IsEquationOrder(O) : RngFunOrd -> BoolElt
Given an order O of a function field, return true if and only if the order O is an equation order (defined by a polynomial, it then has a power basis).
IsMaximal(O) : RngFunOrd -> BoolElt
Given an order O of a function field, return true if and only if the order O is maximal in its field of fractions.

Element Operations

Parent and Category
Parent(a) : RngFunOrdElt -> RngFunOrd
Category(a) : RngFunOrdElt -> Cat
Sequence Conversions

The sequence conversions refer to an order O of the function field F which is given as a free module of rank n over its coefficient ring, where n equals [F:k(x)].

ElementToSequence(a) : RngFunOrdElt -> SeqEnum[RngElt]
Eltseq(a) : RngFunOrdElt -> SeqEnum[RngElt]
The sequence [a_1, ..., a_(n)] of elements of the coefficient ring of the order O such that a = a_1 omega_1 + a_2 omega_2 + ... + a_(n) omega_n where omega_1, omega_2, ..., omega_n is a basis of O.
O ! [ a_1, a_2, ..., a_(n) ] : RngFunOrd, SeqEnum -> RngFunOrdElt
The element a = a_1 omega_1 + a_2 omega_2 + ... + a_(n) omega_n where omega_1, omega_2, ..., omega_n is a basis of the order O and the a_i are coercible into k[x].
Arithmetic Operators

The following binary arithmetic operations may also be performed in the case where one operand is an element of O and the other operand is a ring element which can naturally be mapped into O.

+ a : RngFunOrdElt -> RngFunOrdElt
- a : RngFunOrdElt -> RngFunOrdElt
a + b : RngFunOrdElt, RngFunOrdElt -> RngFunOrdElt
a - b : RngFunOrdElt, RngFunOrdElt -> RngFunOrdElt
a * b : RngFunOrdElt, RngFunOrdElt -> RngFunOrdElt
a div b : RngFunOrdElt, RngFunOrdElt -> RngFunOrdElt
a / b : RngFunOrdElt, RngFunOrdElt -> FldFunGElt
a ^ k : RngFunOrdElt, RngIntElt -> RngFunOrdElt
Equality and Membership

The following binary arithmetic operations may also be performed in the case where one operand is an element of O and the other operand is a ring element which can naturally be mapped into O.

a eq b : RngFunOrdElt, RngFunOrdElt -> BoolElt
a ne b : RngFunOrdElt, RngFunOrdElt -> BoolElt
a in O : RngElt, RngFunOrdElt -> BoolElt
a notin O : RngElt, RngFunOrdElt -> BoolElt
Predicates on Elements

The functions in this section list the general ring element predicates that apply to orders of a function field.

IsZero(f) : RngFunOrdElt -> BoolElt
IsOne(f) : RngFunOrdElt -> BoolElt
IsMinusOne(f) : RngFunOrdElt -> BoolElt
IsNilpotent(f) : RngFunOrdElt -> BoolElt
IsIdempotent(f) : RngFunOrdElt -> BoolElt
IsUnit(f) : RngFunOrdElt -> BoolElt
IsZeroDivisor(f) : RngFunOrdElt -> BoolElt
IsRegular(f) : RngFunOrdElt -> BoolElt
IsIrreducible(f) : RngFunOrdElt -> BoolElt
IsPrime(f) : RngFunOrdElt -> BoolElt
IsDivisibleBy(a, b) : RngFunOrdElt, RngFunOrdElt -> BoolElt, RngFunOrdElt
Given elements a and b belonging to an order O, returns true if there exists c in O such that a = bc, provided that b=0.

IsConstant(a) : RngFunOrdElt -> BoolElt, RngElt
Whether the algebraic function a is constant; if so it is returned as an element of the exact constant field.
IsUnitWithPreimage(a) : RngFunOrdElt -> BoolElt, GrpAbElt
Returns true and the preimage of a in the unit group of O if a is a unit, false otherwise. The function field has to be global.
Functions related to Norm and Trace

Multiplication by a in F defines a k(x)-linear map of the k(x)-vector space F where F is an extension of k(x). The following functions work with respect to this mapping. Since we will also have a in O, the results are defined over the coefficient ring of the order O.

Trace(a) : RngFunOrdElt -> RngElt
Norm(a) : RngFunOrdElt -> RngElt
MinimalPolynomial(a) : RngFunOrdElt -> RngUPolElt
CharacteristicPolynomial(a) : RngFunOrdElt -> RngUPolElt
RepresentationMatrix(a) : RngFunOrdElt -> AlgMatElt
Returns the matrix M in R^(n x n) such that a (omega_1, omega_2, ..., omega_(n)) = (omega_1, omega_2, ..., omega_(n)) M, where omega_1, omega_2, ..., omega_n is a R-basis of O and R is the coefficient ring of O.
Functions related to Places and Divisors
Evaluate(a, P) : RngFunOrdElt, PlcFunElt -> RngElt
Evaluate the algebraic function a at the place P. If it is not defined at P, infinity is returned.
Valuation(a, P) : RngFunOrdElt, PlcFunElt -> RngIntElt
The valuation of the element a at the place P.
Divisor(a) : RngFunOrdElt -> DivFunElt
PrincipalDivisor(a) : RngFunOrdElt -> DivFunElt
The (principal) divisor (a) of a.
Zeros(a) : RngFunOrdElt -> SeqEnum[PlcFunElt]
Zeroes(a) : RngFunOrdElt -> [PlcFunElt]
A sequence containing the zeros of the algebraic function a.
Poles(a) : RngFunOrdElt -> SeqEnum[PlcFunElt]
A sequence containing the poles of the algebraic function a.
Degree(a) : RngFunOrdElt -> RngIntElt
The degree of the algebraic function a, which is defined as the degree of the pole (or zero) divisor of a.
Other Operations on Elements
IntegralSplit(a, O) : RngFunOrdElt, RngFunOrd -> RngFunOrdElt, RngElt
Split the element a into a numerator and denominator with respect to O.
Minimum(a, O) : RngFunOrdElt, RngFunOrd -> RngElt, RngElt
A generator of the ideal R intersect (d x a x O) where R is the coefficient ring of O and d is the denominator of a wrt O (d is the second return value).
ProductRepresentation(a) : RngFunOrdElt -> [RngElt], [RngIntElt]
Return a representation of a as a product.

Ideal Operations

Parent and Category
Parent(I) : RngFunOrdIdl -> PowerIdeal
Category(I) : RngFunOrdIdl -> Cat
Arithmetic Operators

I + J : RngFunOrdIdl, RngFunOrdIdl -> RngFunOrdIdl
I * J : RngFunOrdIdl, RngFunOrdIdl -> RngFunOrdIdl
I / J : RngFunOrdIdl, RngFunOrdIdl -> RngFunOrdIdl
I ^ k : RngFunOrdIdl, RngIntElt -> RngFunOrdIdl
J is required to be invertible. I is required to be invertible for negative k.
c * I : RngElt, RngFunOrdIdl -> RngFunOrdIdl
I * c : RngFunOrdIdl, RngElt -> RngFunOrdIdl
I / c : RngFunOrdIdl, RngElt -> RngFunOrdIdl
c / I : RngElt, RngFunOrdIdl -> RngFunOrdIdl
The principal ideal generated by c divided by I.
Equality and Membership

I eq J : RngFunOrdIdl, RngFunOrdIdl -> BoolElt
I ne J : RngFunOrdIdl, RngFunOrdIdl -> BoolElt
I in S: RngFunOrdIdl, PowerIdeal -> BoolElt
I notin S: RngFunOrdIdl, PowerIdeal -> BoolElt
Predicates on Ideals
IsZero(I) : RngFunOrdIdl -> BoolElt
Returns true if and only if the ideal I is the zero ideal of the order O.
IsOne(I) : RngFunOrdIdl -> BoolElt
Returns true if and only if the ideal I is the identity ideal of the order O, i.e. I = O.
IsInvertible(I) : RngFunOrdIdl -> BoolElt
Returns true if and only if the ideal I is invertible.
IsIntegral(I) : RngFunOrdIdl -> BoolElt
Returns true if and only if the ideal I is integral (a true ideal of its order).
IsPrime(I) : RngFunOrdIdl -> BoolElt
Returns true if and only if the ideal I is prime (the order of the ideal must be maximal).
IsPrincipal(I) : RngFunOrdIdl -> BoolElt, FldFunElt
Returns true and a generator if the fractional ideal I is principal, false otherwise. The function field has to be global.
Further Ideal Operations
I + J : RngFunOrdIdl, RngFunOrdIdl -> RngFunOrdIdl
I meet J : RngFunOrdIdl, RngFunOrdIdl -> RngFunOrdIdl
The sum of the ideals I and J. The intersection of the ideals I and J.
Gcd(I, J) : RngFunOrdIdl, RngFunOrdIdl -> RngFunOrdIdl
Given invertible ideals of an order O, returns the greatest common divisor of the ideals I and J.
Lcm(I, J) : RngFunOrdIdl, RngFunOrdIdl -> RngFunOrdIdl
Given invertible ideals of an order O, returns the least common multiple of the ideals I and J.
Factorization(I) : RngFunOrdIdl -> [ <RngFunOrdIdl, RngIntElt> ]
Factorisation(I) : RngFunOrdIdl -> [<RngFunOrdIdl, RngIntElt>]
Factorization of the ideal I (as sequence of prime ideal, exponent pairs. The order must be maximal).
Decomposition(O, p) : RngFunOrd, RngElt -> [ RngFunOrdIdl ]
A sequence containing all prime ideals of the order O lying above the prime element p of the coefficient ring of O.
Decomposition(O) : RngFunOrd -> [ RngFunOrdIdl ]
A sequence containing all prime ideals of the `infinite' maximal order O.
DecompositionType(O, p) : RngFunOrd, RngElt -> [ <RngIntElt, RngIntElt> ]
Sequence of tuples of ramification indices and residue degrees of the prime ideals of the order O lying over the prime polynomial p.
DecompositionType(O) : RngFunOrd -> [ <RngIntElt, RngIntElt> ]
Sequence of tuples of ramification indices and residue degrees of the prime ideals of the `infinite' maximal order O.
MultiplicatorRing(I) : RngFunOrdIdl -> RngFunOrd
Returns the multiplicator ring of the ideal I of the order O, that is, the subring of elements of the field of fractions of O that multiply I into itself.
Valuation(a, P) : RngElt, RngFunOrdIdl -> RngIntElt
Valuation(I, P) : RngFunOrdIdl, RngFunOrdIdl -> RngIntElt
The valuation of a or I at the prime ideal P. The element a must be coercible into the field of fractions of P's order.
Order(I) : RngFunOrdIdl -> RngFunOrd
The order of the ideal I.
Denominator(I) : RngFunOrdIdl -> RngElt
The "smallest" element d of the coefficient ring of the ideal's order O such that dI subseteq O.
Minimum(I) : RngFunOrdIdl -> RngElt, RngElt
A generator m of the ideal R intersect dI where R is the coefficient ring of the ideal's order and d is the denominator of the ideal I (d is is the second return value).
IntegralSplit(I) : RngFunOrdIdl -> RngFunOrdIdl, RngElt
The integral ideal dI and d, where d is the denominator of I.
Norm(I) : RngFunOrdIdl -> RngElt
The norm of the ideal I, as element of the coefficient field of the algebraic function field to which I belongs.
TwoElement(I) : RngFunOrdIdl -> RngElt, RngElt
Given an ideal I with function field F as the field of fractions of its order O, returns two elements a, b in F such that I = aO + bO.
Generators(I) : RngFunOrdIdl -> [ RngFunOrdElt ]
Given a (fractional) ideal I of the order O, return a sequence of elements of the function field F that generate I as an ideal.
Basis(I) : RngFunOrdIdl -> [FldFunElt]
A basis of the ideal I as a free module over the coefficient ring of it's order.
BasisMatrix(I) : RngFunOrdIdl -> AlgMatElt
Let (b_1, ..., b_n) be the basis of I and let (omega_1, ..., omega_n) be the basis of the order O. A matrix B with coefficients in the rational function field is returned such that (b_1, ..., b_n) = (omega_1, ..., omega_n) B^t.
TransformationMatrix(I) : RngFunOrdIdl -> AlgMatElt, RngElt
Let (b_1, ..., b_n) be the basis of I and let (omega_1, ..., omega_n) be the basis of the order O. A matrix T with coefficients in the coefficient ring of O and a denominator d are returned such that (b_1, ..., b_n) = (omega_1, ..., omega_n) T^t / d.
RamificationIndex(I) : RngFunOrdIdl -> RngIntElt
RamificationDegree(I) : RngFunOrdIdl -> RngIntElt
The ramification index of the prime ideal I over the corresponding prime of its coefficient ring.
Degree(I) : RngFunOrdIdl -> RngIntElt
InertiaDegree(I) : RngFunOrdIdl -> RngIntElt
ResidueClassDegree(I) : RngFunOrdIdl -> RngIntElt
The residue class degree (inertia degree) of the prime ideal I over the corresponding prime of its coefficient ring.
ResidueClassField(I) : RngFunOrdIdl -> Rng, Map
The residue class field of the prime ideal I and the residue class mapping.
Place(I) : RngFunOrdIdl -> PlcFunElt
The place corresponding to the prime ideal I, where I is defined over the `finite' or `infinite' maximal order.
Divisor(I) : RngFunOrdIdl -> DivFunElt
The divisor corresponding to the ideal factorization of I.
Divisor(I, J) : RngFunOrdIdl, RngFunOrdIdl -> DivFunElt
The divisor corresponding to the ideal factorization of the ideals I and J belonging to the `finite' and `infinite' maximal order.

Example FldFunG_order-ideals (H57E10)

> R<x> := FunctionField(GF(3));
> P<y> := PolynomialRing(R);
> f := y^4 + x*y + x^4 + x + 1;
> F<a> := FunctionField(f);
> O := MaximalOrderFinite(F);
> x*O;
Ideal of O
Generator:
x
> L := Factorization(x*O);
> L;
[ <Ideal of O
Generators:
x
a^2 + a + 2, 1>, <Ideal of O
Generators:
x
a^2 + 2*a + 2, 1> ]
> P1 := L[1][1];
> P2 := L[2][1];
> BasisMatrix(P1);
[x 0 0 0]
[0 x 0 0]
[2 1 1 0]
[1 1 0 1]
> P1 meet P2 eq x*O;
true
> IsPrime(P1);
true
> Place(P1);
(x, a^2 + a + 2)

 [Next][Prev] [Right] [Left] [Up] [Index] [Root]