Check: BoolElt Default: true
Given a monic irreducible polynomial f of degree n>1 which is separable over its coefficient ring K = F_q(x), create the function field F=K(alpha) obtained by adjoining a root alpha of f to K. The polynomial f is allowed to have either polynomial coefficients or coefficients from the rational function field, but in the latter case, denominators must be 1.The optional parameter Check may be used to prevent the conditions on the polynomial f from being tested. The default is Check := true, so that f is checked to be monic, irreducible, and separable.
The angle bracket notation may be used to assign the root alpha to an identifier: K<w> := FunctionField(f).
Procedure to change the name of the generating element in the function field K (a in K) to the contents of the sequence of strings s, which must have length 1 in this case.This procedure only changes the name used in printing the elements of K. It does not assign to any identifier the value of the generator in K; to do this, use an assignment statement, or use angle brackets when creating the field.
Note that since this is a procedure that modifies K, it is necessary to have a reference ~K to K in the call to this function.
Given a function field K, return the element which has the name attached to it, that is, return the element K.1 of K.
> H<x> := FunctionField(GF(5)); > R<y> := PolynomialRing(H); > f := y^3 + (4*x^3 + 4*x^2 + 2*x + 2)*y^2 + (3*x + 3)*y + 2; > F := FunctionField(f);
Create the `finite' equation order of the function field F.
Create the `finite' maximal order of the function field F. This is the integral closure of F_q[x] in K.
Create the `infinite' equation order of the function field F.
Create the `infinite' maximal order of the function field F. This is the integral closure of O_(Infinity) (the infinite valuation ring) in K.
> EF := EquationOrderFinite(F); > EF; Finite order over Finite field of size 5 defined by y^3 + (4*.1^3 + 4 *.1^2 + 2*.1 + 2) * y^2 + (3 *.1 + 3)*y + 2 > MF := MaximalOrderFinite(F); > MF; Finite order over Finite field of size 5 defined by y^3 + (4*.1^3 + 4 *.1^2 + 2*.1 + 2) * y^2 + (3 *.1 + 3)*y + 2 > EI := EquationOrderInfinite(F); > EI; Infinite order over Finite field of size 5 defined by y^3 + (4*x^3 + 4*x^2 + 2*x + 2)/x^3*y^2 + (3*x + 3)/x^6*y + 2/x^9 > MI := MaximalOrderInfinite(F); > MI; Infinite order over Finite field of size 5 defined by y^3 + (4*x^3 + 4*x^2 + 2*x + 2)/x^3*y^2 + (3*x + 3)/x^6*y + 2/x^9 and transformation matrix [1/x^4 0 0] [0 1/x^4 (4*x^3 + 4*x^2 + 2*x + 2)/x^3] [0 0 1] den: 1/x^4
Elements of function fields and of orders are (or at least WILL BE) displayed quite differently. Function field elements are always printed as a polynomial (of degree less than the degree of the field) with rational function field coefficients in the primitive element of the field, that is, as an element of F_q(x)[y]/f, where f was the defining polynomial of the field, over the rational funtion field F_q(x).
Elements of orders are displayed as sequences of polynomial (in the finite case) or rational function (in the infinite case) coefficients, referring to the basis of the order. To convert this basis representation to a polynomial expression (in the primitive element of the field of fractions), the element should be coerced into the field (using !).
Coerce a into the field K. Here a may be an integer, finite field element, polynomial, rational function, or an element from an order of K.
Given the function field, K=G(alpha) of degree m and a sequence [a_0, ..., a_(m - 1)] of elements of G, construct the element a_0 + a_1alpha + ... a_(m - 1)alpha^(m - 1) of K.
Coerce a into the order O. Here a is allowed to be an integer, or an integral element of the field of fractions of O.
Given the order O of a function field K of degree m and elements a_0, a_(1), ..., a_(m - 1) in the ground order of O, construct the element a_0alpha_0 + a_1 * alpha_1 + ... a_(m - 1) * alpha_(m - 1) of O, where alpha_0, ..., alpha_(m - 1) is the integral basis for the order.
> O := MaximalOrderFinite(F); > e := O ! (x - 3); > f := elt< O | [x - 3, 0, 0]>; > f eq e; true
A random element of a function field or order. The coefficients chosen will have degree less than or equal to n.
The general ideal constructor can be used to create ideals in
orders of function fields, as described below. It should be noted
that ideals in orders are allowed to be fractional ideals,
so we allow any rational function field elements as generators.
ideal< O | a_1, a_2, ... , a_m > : RngFunOrd, FldFunElt, ..., FldFunElt -> RngFunOrdIdl
Given an order O, as well as elements a_1, a_2, ..., a_n coercible into the field of fractions K 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.
The denominator of the ideal will be the smallest positive integer d such that all d.a_i are contained in O; the ideal will then be 1/d times the integral ideal generated by the d.a_i, i=1, ..., m.
> G<u> := ext< FF | PolynomialRing(FF)![3, 6, 1] > where FF is GF(7); > H<x> := PolynomialRing(G); > R<y> := PolynomialRing(H); > f := y^3 + (3*x^2 + 2*x + 6)*y^2 + (2*x + 3)*y + 1; > F := FunctionField(f); > O := EquationOrderFinite(F); > r := Random(O, 2); > r; [ u^20*x^2 + u^19*x + u^14, u^38*x + u^33, u^19 ] > I := ideal< O | r >; > I; Ideal of the function field order Finite order over Finite field of size 7^2 defined by y^3 + (3*x^2 + 2*x + 6)*y^2 + (2*x + 3)*y + 1