Magma includes functions for working with maps between multivariate polynomial rings. Let R=K1[x1, ..., xn] and S=K2[y1, ..., ym] be a polynomial rings over the fields K1, K2, and f : R to S a ring homomorphism.
Return the kernel of the map f as an ideal in the domain R, i.e., the set { a ∈R | f(a) = 0 }. This is basically the computation of the relation ideal for the polynomials defining the map and is as described in RelationIdeal.
Given a polynomial p in S, return whether p is in the image of the map f. The algorithm is the one described on p. 82 of [AL94].
Return whether the map f is surjective. Uses the function above to check whether each codomain variable lies in the image.
The extension of the ideal I by φ, where φ is a homomorphism from the generic of I. That is, the ideal generated by the image of I under φ.
Suppose the polynomial map φ: Kn to Km is a parametrization of a variety V, i.e., V is the image of φ in Km. This function constructs the ideal of S corresponding to V.The map φ maps (z1, ..., zn) |-> (f1(z1), ..., fm(zm)) where the zi are the coordinates of Kn. Let f: S to R be the map of polynomial rings defined by (y1, ..., ym) |-> (f1(y1), ..., fm(ym)). Then Implicitization(f) is the ideal of S corresponding to V.
If V is not a true variety, the function returns the smallest variety containing V (the Zariski closure of V).
The algorithm used is given on p. 97 of [CLO96]
> R<x, y> := PolynomialRing(Rationals(), 2);
> S<r, u, v, w> := PolynomialRing(Rationals(), 4);
> f := hom<S -> R |x^4, x^3*y, x*y^3, y^4>;
> Implicitization(f);
Ideal of Polynomial ring of rank 4 over Rational Field
Lexicographical Order
Variables: r, u, v, w
Basis:
[
-r^2*v + u^3,
r*v^2 - u^2*w,
-u*w^2 + v^3,
-r*w + u*v
]