-
-
Notifications
You must be signed in to change notification settings - Fork 641
Description
For polynomial ring homomorphisms, this ticket implements the methods
inverse_image
(of both ideals and individual elements)kernel
is_injective
_graph_ideal
(This also works for homomorphisms of polynomial quotient rings, number fields and Galois fields.)
The implementation is based on the following:
Given a homomorphism f: K[x] -> K[y]
of (multivariate) polynomial rings that respects the K
-algebra structure, we can find preimages of y
by computing normal forms modulo the graph ideal (x-f(x))
in K[y,x]
with respect to an elimination order. More generally, this works for morphisms of quotient rings K[x]/I -> K[y]/J
, which allows to handle many types of ring homomorphisms in Sage.
References: e.g. [BW1993] Propositions 6.44, 7.71; or Decker-Schreyer, Proposition 2.5.12 and Exercise 2.5.13.
See also #29723 (inverses of ring homomorphisms) and related posts on the mailing list and at Ask-Sagemath.
Example:
sage: R.<s,t> = PolynomialRing(QQ)
sage: S.<x,y,z,w> = PolynomialRing(QQ)
sage: f = S.hom([s^4, s^3*t, s*t^3, t^4],R)
sage: f.inverse_image(R.ideal(0))
Ideal (y*z - x*w, z^3 - y*w^2, x*z^2 - y^2*w, y^3 - x^2*z) of Multivariate Polynomial Ring in x, y, z, w over Rational Field
sage: f.inverse_image(s^3*t^4*(s+t))
x*w + y*w
Note that the inverse image of ideals (but not of elements) could also be computed using Singular as follows:
sage: singular.eval('''
....: ring R=0,(s,t),dp;
....: ring S=0,(x,y,z,w),dp;
....: setring R;
....: map f=S,ideal(s^4,s^3*t,s*t^3,t^4);
....: setring S;
....: ideal ker=kernel(R,f)
....: ''');
sage: singular.get('ker')
'yz-xw,\nz3-yw2,\nxz2-y2w,\ny3-x2z'
sage: print(_)
yz-xw,
z3-yw2,
xz2-y2w,
y3-x2z
CC: @dimpase
Component: algebra
Author: Markus Wageringel
Branch/Commit: fd6dee6
Reviewer: Travis Scrimshaw
Issue created by migration from https://trac.sagemath.org/ticket/9792