Function Fields and their Elements

Since the function field of an irreducible variety is a birational invariant, function fields in Magma are associated with the projectively closed varieties. For an affine scheme X, the fields returned by FunctionField(X) and FunctionField(ProjectiveClosure(X)) are identical. Currently, only function fields of projective spaces of dimension 1 (and therefore of affine spaces of dimension 1) and curves are supported.

The following functions are provided for working with function fields and their elements. Some of these functions are concerned with converting function field elements into elements of the field of fractions of the coordinate ring of (an affine patch of) the scheme of the function field.

Additionally, function field elements may be used in the definition of scheme maps (see Section Maps between Schemes) from the projective or affine schemes on which they are defined to other schemes and may be evaluated at points as described earlier.

Function fields of schemes have type FldFunFracSch and their elements have type FldFunFracSchElt. These types inherit from RngFunFracSch, RngFunFrac, RngMPolRes and RngFunFracSchElt, RngFunFracElt, RngMPolResElt respectively.

f * g : RngFracElt, RngFracElt -> RngFracElt
f + g : RngFracElt, RngFracElt -> RngFracElt
f - g : RngFracElt, RngFracElt -> RngFracElt
- f : RngFracElt -> RngFracElt
f / g : RngFracElt, RngFracElt -> RngFracElt
f ^ n : RngFracElt, RngIntElt -> RngFracElt
f eq g : RngFracElt, RngFracElt -> BoolElt
IsZero(f) : RngFracElt -> BoolElt
IsOne(f) : RngFracElt -> BoolElt
IsMinusOne(f) : RngFracElt -> BoolElt
IsUnit(f) : RngFracElt -> BoolElt
Scheme(F) : FldFunFracSch -> Sch
Return the (projective) scheme F is the function field of.
IntegerRing(F) : RngFrac -> Rng
Integers(F) : RngFrac -> Rng
The integer ring of the function field F. This will be the coordinate ring of one of the patches of the scheme of F.
AssignNames(~F, S) : RngFrac, [MonStgElt] ->
Assign the strings in S to be the names of the integer ring of F.
F ! g : FldFunFracSch, RngElt -> FldFunFracSchElt
Coerce the element g into the function field F of a scheme where g is some function on the scheme of F, for example, g may be an element of the field of fractions of the coordinate ring of a scheme having F as its function field.
F . i : FldFunFracSch, RngIntElt -> FldFunFracSchElt
Return the ith indeterminate of the coordinate ring of the scheme of F as an element of the function field F.
ProjectiveFunction(f) : FldFunFracSchElt -> FldFracElt
Given an element f of a function field of a scheme, return f as an element of the field of fractions of the coordinate ring of the scheme f is a function on.
ProjectiveRationalFunction(f) : FldFunFracSchElt -> FldFunRatMElt
Given an element f of a function field of a (projective) scheme X, returns an element of the field of fractions of the coordinate ring of the ambient of X whose restriction to X as a rational function is f.
RestrictionToPatch(f, Xi) : FldFunFracSchElt, Sch -> FldFracElt
Given an element f of a function field of a (projective) scheme X return f as an element of the field of fractions of the coordinate ring of the scheme Xi which must be a patch of X.
Numerator(f) : RngFracElt -> RngElt
Denominator(f) : RngFracElt -> RngElt
Given an element f of a function field of a scheme, return the numerator or denominator of f.
IntegralSplit(f, X) : FldFunFracSchElt, Sch -> RngMPolElt, RngMPolElt
Given a function f on the (projective) scheme X return the numerator and the denominator of g, where g is some rational function on the ambient P of X restricting to f and considered as an element of the field of fractions of the coordinate ring of P.
Numerator(f, X) : FldFunFracSchElt, Sch -> MPolElt
The first return value of IntegralSplit(f, X).
Denominator(f, X) : FldFunFracSchElt, Sch -> MPolElt
The second return value of IntegralSplit(f, X).

Example Scheme_scheme_fld_fun_elt (H119E15)

Some conversion of function field elements are shown.
> P2<X, Y, Z>:=ProjectiveSpace(Rationals(), 2);
> C := Curve(P2, X^2+Y^2-Z^2);
> K<xK, yK> := FunctionField(C);
> aC1<x1,y1> := AffinePatch(C, 1);
> aC2<x2,z2> := AffinePatch(C, 2);
> aC3<y3,z3> := AffinePatch(C, 3);
>
> f := (xK + yK)/(yK);
> K!f;
(xK + yK)/yK
> ProjectiveFunction($1);
(X + Y)/Y
> IntegralSplit(f, C);
X + Y
Y
> RestrictionToPatch(f, aC1);
($.1 + $.2)/$.2
> IntegralSplit(f, aC1);
x1 + y1
y1
> IntegralSplit(f, P2);
x2 + 1
1
Restriction(f, Y) : FldFunFracSchElt, Sch -> FldFunFracSchElt
Given f in the function field of the scheme X and Y a subscheme of X with a function field, returns g in the function field of Y obtained by restricting f to Y. If f has a pole along Y, then Infinity is returned. An error occurs if f is not defined along Y. Presently, the only nontrivial application of this routine is when Y is a curve and X is the ambient of Y.
GenericPoint(X) : Sch -> Pt
Returns a point in the pointset X(FunctionField(X)) of the scheme X, whose coordinates generate FunctionField(X).
V2.28, 13 July 2023