Base Change for Schemes

Let A be some ambient space in Magma. For example, think of A as being the affine plane. Let k be its base ring and RA its coordinate ring. If m: k -> L is a map of rings (a coercion map, for instance) then there is a new ambient space denoted AL and called the base change of A to L which has coordinate ring RAL with coefficient ring L instead of k. (Mathematically, one simply tensors RA with L over k. In Magma the equivalent function at the level of polynomial rings is ChangeRing.) There is a base change function described below which takes A and L (or the map k -> L) as arguments and creates this new space AL. Note that there is a map from the coordinate ring of A to that of AL determined by the map m.

This operation is called base extension since one often thinks of the map m as being an extension of fields. Of course, the map m could be many other things. One key example where the name extension is a little unusual would be when m is the map from the integers to some finite field.

Now let X be a scheme in Magma. Thus X is defined by some polynomials f1, ..., fr on some ambient space A. Given a ring map k -> L there is a base change operation for X which returns the base change of X to L, denoted XL. This is done by first making the base change of A to L and then using the map from the coordinate ring of A to that of AL to translate the polynomials fi into polynomials defined on AL. These polynomials can then be used to define a scheme in AL. It is this resulting scheme which is the base change of X to L.

If one has a number of schemes in the same ambient space and wants to base change them all at the same time, a little care is required. The function which takes a scheme and a map of rings as argument will create a new ambient space each time so is unsuitable. Better would be to base change the ambient space and then use the base change function which takes the scheme and the desired new ambient space as argument. (This latter base change function appears to be different from the other ones. In fact it is not. We described base change above as a function of maps of rings. Of course, there is a natural extension to maps of schemes. With that extension, this final base change intrinsic really is base change with respect to map of ambient spaces.)

BaseChange(A,K) : Sch,Rng -> Sch
BaseExtend(A,K) : Sch, Rng -> Sch
If A is a scheme defined over a field k and K is an extension into which elements of k can be automatically coerced then this returns a new scheme AK defined over K. No cached data about A will be transferred to AK and coordinate names will have to be defined again on AK if needed.

BaseChange(A,m) : Sch, Map -> Sch
BaseExtend(A,m) : Sch, Map -> Sch
If m is a map of rings whose domain is the base ring of the scheme A, this returns the base change of A to the codomain of m. The equations of A, if any, are mapped to the new ambient coordinate ring using m.
BaseChange(F,K) : SeqEnum,Rng -> SeqEnum
BaseExtend(F,K) : SeqEnum,Rng -> SeqEnum
BaseChange(F,m) : SeqEnum,Rng -> SeqEnum
BaseExtend(F,m) : SeqEnum,Rng -> SeqEnum
If F is a sequence of schemes lying in a common ambient space whose base ring admits automatic coercion to K or is the domain of a ring map m then this returns the base change of the elements of F as a new sequence.

BaseChange(X,A) : Sch,Sch -> Sch
BaseExtend(X,A) : Sch,Sch -> Sch
BaseChange(X,A,m) : Sch,Sch,Map -> Sch
BaseExtend(X,A,m) : Sch,Sch,Map -> Sch
If X is any scheme whose ambient space B is of the same type (affine or projective) and dimension as the ambient space A but either has a base ring which admits coercion to that of A or the map m is a ring map from the base ring of B to that of A then this returns a scheme with the equations of X as a subscheme of A. The equations are transferred to A using coercion or the map m.
BaseChange(X, n) : Sch, RngIntElt -> Sch
BaseExtend(X, n) : Sch, RngIntElt -> Sch
The base change of the scheme X, where the base ring of X is a finite field to the finite field which is a degree n extension of the base field of X.

Example Scheme_base-change-schemes (H119E22)

Here are two curves whose intersection points are not defined over the rationals and one of which only splits after a field extension. The basic function to calculate intersection points only searches for them over the current field of definition so misses them at first. But with an extra argument it is able to search over an extension of the base without actually changing base of the schemes. This contrasts with finding higher dimensional components of schemes which always requires the base change.
> A<x,y> := AffineSpace(Rationals(),2);
> C := Curve(A,x^2 + y^2);
> IsIrreducible(C);
true
> D := Curve(A,x - 1);
> IntersectionPoints(C,D);
> Qi<i> := QuadraticField(-1);
> IntersectionPoints(C,D,Qi);
{ (0, i), (0, -i) }
So we have found the intersection points (although we haven't explained how we chose the right field extension). Now we do the same calculation again but by making the base change of all schemes to the field Qi. Over this field the intersection points are immediately visible, but also the curve C splits into two components.
> B<u,v> := BaseChange(A,Qi);
> C1 := BaseChange(C,B);
> D1 := BaseChange(D,B);
> IsIrreducible(C1);
false
> IntersectionPoints(C1,D1);
{ (0, i), (0, -i) }
> PrimeComponents(C1);
[
    Scheme over Qi defined by u + i*v,
    Scheme over Qi defined by u - i*v
]
V2.28, 13 July 2023