Creation Functions

Contents

Creation of Structures

FunctionField(R) : Rng -> FldFunRat
RationalFunctionField(R) : Rng -> FldFunRat
    Global: BoolElt                     Default: true
Create the field F of rational functions in 1 indeterminate (consisting of quotients of univariate polynomials) over the integral domain R. The angle bracket notation may be used to assign names to the indeterminates, just as in the case of polynomial rings, e.g.: K<t> := FunctionField(IntegerRing());.

By default, the unique global univariate function field over R will be returned; if the parameter Global is set to false, then a non-global univariate function field over R will be returned (to which a separate name for the indeterminate can be assigned).

FunctionField(R, r) : Rng, RngIntElt -> FldFunRat
RationalFunctionField(R, r) : Rng, RngIntElt -> FldFunRat
    Global: BoolElt                     Default: false
Create the field F of rational functions in r indeterminates over the integral domain R. may be used to assign names to the indeterminates, just as in the case of polynomial rings, e.g.: K<a,b,c> := FunctionField(IntegerRing(), 3);.

By default, a non-global function field will be returned; if the parameter Global is set to true, then the unique global function field over R with n variables will be returned. This may be useful in some contexts, but a non-global result is returned by default since one often wishes to have several function fields with the same numbers of variables but with different variable names (and create mappings between them, for example). Explicit coercion is always allowed between function fields having the same number of variables (and suitable base rings), whether they are global or not, and the coercion maps the i-variable of one function field to the i-th variable of the other function field.

FieldOfFractions(P) : RngUPol -> FldFunRat
Given a polynomial ring P, return its field of fractions F, consisting of quotients f/g, with f, g∈P. The angle bracket notation may be used to assign names to the indeterminates, just as in the case of polynomial rings: K<t> := FieldOfFractions(P);. If this function is called more than once for a fixed P, then the identical function field will be returned each time.

Names

AssignNames(~F, s) : FldFunRat, [ MonStgElt ]) ->
Procedure to change the name of the indeterminates of a function field F. The i-th indeterminate will be given the name of the i-th element of the sequence of strings s (for 1≤i≤#s); the sequence may have length less than the number of indeterminates of F, in which case the remaining indeterminate names remain unchanged.

This procedure only changes the name used in printing the elements of F. It does not assign to identifiers corresponding to the strings the indeterminates in F; to do this, use an assignment statement, or use angle brackets when creating the field.

Note that since this is a procedure that modifies F, it is necessary to have a reference ~F to F in the call to this function.

Name(F, i) : FldFunRat, RngIntElt -> FldFunRatElt
Given a function field F, return the i-th indeterminate of F (as an element of F).

Creation of Elements

One(F) : FldFunRat -> FldFunRatElt
Identity(F) : FldFunRat -> FldFunRatElt
Zero(F) : FldFunRat -> FldFunRatElt
Representative(F) : FldFunRat -> FldFunRatElt
F ! [a, b] : FldFunRat, RngUPolElt, RngUPolElt -> FldFunRatElt
elt< F | a, b > : FldFunRat, RngUPolElt, RngUPolElt -> FldFunRatElt
Given the rational function field F (which is the field of fractions of the polynomial ring R), and polynomials a, b in R (with b != 0), construct the rational function a / b.
F ! a : FldFunRat, FldElt -> FldFunRatElt
Given the rational function field F as a field of fractions of R, and a polynomial a∈R, create the rational function a=a/1 in F.
K . i : FldFunRat, RngIntElt -> FldFunRatElt
The i-th generator for the field of fractions K of R over the coefficient ring of R.

Example FldFunRat_FunctionField (H44E1)

We create the field of rational functions over the integers in a single variable w.
> R<x> := PolynomialRing(Integers());
> F<w> := FieldOfFractions(R);
> F ! x+3;
w + 3
> F ! [ x, x-1 ];
w/(w - 1)
V2.28, 13 July 2023