Skip to content
This repository was archived by the owner on Feb 1, 2023. It is now read-only.

Commit 930dc0c

Browse files
author
Release Manager
committed
Trac #31178: inverse_image of element fails for morphism of quotient rings
Reported in [https://ask.sagemath.org/question/55099/inverse-image- under-ring-homomorphism/ Ask SageMath question #55099]: {{{ sage: R.<x, y> = QQ[] sage: R1 = R.quotient(R.ideal(y^2 - x^3)) sage: R2 = R.quotient(R.ideal(x)) sage: h = R1.hom([R2(y^2), R2(y^3)], R2) sage: h(R1(x)) ybar^2 sage: h.inverse_image(R2(y^2)) ... ValueError: element ybar^2 does not have preimage }}} URL: https://trac.sagemath.org/31178 Reported by: rburing Ticket author(s): Markus Wageringel Reviewer(s): Ricardo Buring
2 parents dc06683 + 1e5b979 commit 930dc0c

File tree

3 files changed

+25
-6
lines changed

3 files changed

+25
-6
lines changed

build/pkgs/configure/checksums.ini

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
tarball=configure-VERSION.tar.gz
2-
sha1=4913bd4c0630ad8756ddeb26a2efa33b6295b23f
3-
md5=6846b5857be492f8090bc00da88d9943
4-
cksum=223562041
2+
sha1=52f6e81ca1a215877ab83b5621d61ed93a428b11
3+
md5=cbb4222eb79ecc5637a81b3d57be6ca7
4+
cksum=2870898122
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
f14a482e2d5c81ecdc938ac65a5c24ddb9d65bc1
1+
3c618df00987db8f541521227d669f4d141fac27

src/sage/rings/morphism.pyx

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1053,11 +1053,30 @@ cdef class RingHomomorphism(RingMap):
10531053
sage: f = R.hom([y, x], R)
10541054
sage: f.inverse_image(x), f.inverse_image(y) # indirect doctest
10551055
(0, 0)
1056+
1057+
Check cases involving quotient rings in which a generator is constant
1058+
(:trac:`31178`)::
1059+
1060+
sage: R.<x,y> = QQ[]
1061+
sage: B.<c,d> = R.quotient(R.ideal(x))
1062+
sage: g = R.hom([d^2, d^3], B)
1063+
sage: g.inverse_image(d)
1064+
Traceback (most recent call last):
1065+
...
1066+
ValueError: element d does not have preimage
1067+
sage: g.inverse_image(d^2)
1068+
x
1069+
sage: g.inverse_image(d^3)
1070+
y
1071+
sage: A.<a,b> = R.quotient(R.ideal(y^2 - x^3))
1072+
sage: h = A.hom([d^2, d^3], B)
1073+
sage: h.inverse_image(d^2)
1074+
a
10561075
"""
10571076
graph, from_B, to_A = self._graph_ideal()
1058-
gens_B = graph.ring().gens()[:self.codomain().ngens()]
1077+
gens_A = graph.ring().gens()[-self.domain().ngens():]
10591078
a = graph.reduce(from_B(b))
1060-
if not (a.lm() < min(gens_B)) and not a.is_zero():
1079+
if not all(x in gens_A for x in a.lm().variables()):
10611080
raise ValueError(f"element {b} does not have preimage")
10621081
return to_A(a)
10631082

0 commit comments

Comments
 (0)