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

Creation Functions

Subsections

Creation of Structures

FunctionField(R) : Rng -> FldFun
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: K<t> := FunctionField(IntegerRing());.
FunctionField(R, r) : Rng, RngIntElt -> FldFun
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: K<a,b,c> := FunctionField(IntegerRing(), 3);.
FieldOfFractions(P) : RngPol -> FldFun
Given a polynomial ring P, return its field of fractions F, consisting of quotients f/g, with f, g in 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);.

Names

AssignNames(~F, s) : FldFun, [ 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) : FldFun, RngIntElt -> FldFunElt
Given a function field F, return the i-th indeterminate of F (as an element of F).

Homomorphisms

In its general form a ring homomorphism taking a function field R(x_1, ..., x_n) as domain requires n + 1 pieces of information, namely, a map (homomorphism) telling how to map the coefficient ring R together with the images of the n indeterminates.

hom< P -> S | f, y_1, ..., y_n > : FldFun, Rng -> Map
hom< P -> S | y_1, ..., y_n > : FldFun, Rng -> Map
Given a function field F=R(x_1, ..., x_n), a ring S, a map f : F -> S and n elements y_1, ..., y_n in S, create the homomorphism g : F -> S by applying the rules that g(rx_1^(a_1) ... x_n^(a_n))=f(r)y_1^(a_1) ... y_n^(a_n) for monomials, linearity for polynomials, i.e., g(M + N)=g(M) + g(N), and respection of division for fractions, i.e., g(n/d)=g(n)/g(d).

The coefficient ring map may be omitted, in which case the coefficients are mapped into S by the unitary homomorphism sending 1_R to 1_S. Also, the images y_i are allowed to be from a structure that allows automatic coercion into S.


Example FldFun_Homomorphism (H31E1)

In this example we map Q(x, y) into the number field Q(root 3 of 2, sqrt(5)) by sending x to root 3 of 2 and y to sqrt(5) and the identity map on the coefficients (which we omit).

> Q := RationalField();
> F<x, y> := FunctionField(Q, 2);
> A<a> := PolynomialRing(IntegerRing());
> N<z, w> := NumberField([a^3-2, a^2+5]);
> h := hom< F -> N | z, w >;
> h(x^11*y^3-x+4/5*y-13/4);
-40*w*z^2 - z + 4/5*w - 13/4
> h(x/3);                  
1/3*z
> h(1/x);
1/2*z^2
> 1/z;
1/2*z^2

Creation of Elements

One(F) : FldFun -> FldFunElt
Identity(F) : FldFun -> FldFunElt
Zero(F) : FldFun -> FldFunElt
Representative(F) : FldFun -> FldFunElt
F ! [a, b] : FldFun, RngPolElt, RngPolElt -> FldFunElt
elt< F | a, b > : FldFun, RngPolElt, RngPolElt -> FldFunElt
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 : FldFun, FldElt -> FldFunElt
Given the rational function field F as a field of fractions of R, and a polynomial a in R, create the rational function a=a/1 in F.
K . i : FldFun, RngIntElt -> FldFunElt
The i-th generator for the field of fractions K of R over the coefficient ring of R.

Example FldFun_FunctionField (H31E2)

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)

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