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 ]