Opened 4 years ago
Last modified 4 years ago
#16381 needs_info defect
primary decomposition doesn't work when ideal is in a quotient polynomial ring
Reported by:  was  Owned by:  malb 

Priority:  minor  Milestone:  sage6.4 
Component:  commutative algebra  Keywords:  sd59 
Cc:  Merged in:  
Authors:  Martin Albrecht  Reviewers:  
Report Upstream:  Reported upstream. Developers acknowledge bug.  Work issues:  
Branch:  u/malb/trac_16381 (Commits)  Commit:  c237b07be5568f9f19b2333f12dc46efe8a82ea5 
Dependencies:  Stopgaps: 
Description
I was trying to do a simple example on page 51 of AtiyahMacdonald using Sage, and it fails:
R.<x,y,z> = QQ[] I = R.ideal([x*y  z^2]) A.<xbar,ybar,zbar> = R.quotient(I) p = A.ideal([x,z]) p.primary_decomposition()
boom! 
Error in lines 55 Traceback (most recent call last): File "/projects/71755b5afde145bc9ca8d06d5b9749f1/.sagemathcloud/sage_server.py", line 733, in execute exec compile(block+'\n', '', 'single') in namespace, locals File "", line 1, in <module> File "/usr/local/sage/sage6.2.rc0/local/lib/python2.7/sitepackages/sage/rings/polynomial/multi_polynomial_ideal.py", line 604, in __call__ return self.f(self._instance, *args, **kwds) File "/usr/local/sage/sage6.2.rc0/local/lib/python2.7/sitepackages/sage/rings/polynomial/multi_polynomial_ideal.py", line 1146, in primary_decomposition return [I for I, _ in self.complete_primary_decomposition(algorithm)] File "/usr/local/sage/sage6.2.rc0/local/lib/python2.7/sitepackages/sage/rings/polynomial/multi_polynomial_ideal.py", line 604, in __call__ return self.f(self._instance, *args, **kwds) File "/usr/local/sage/sage6.2.rc0/local/lib/python2.7/sitepackages/sage/rings/polynomial/multi_polynomial_ideal.py", line 505, in wrapper return func(*args, **kwds) File "/usr/local/sage/sage6.2.rc0/local/lib/python2.7/sitepackages/sage/rings/polynomial/multi_polynomial_ideal.py", line 1068, in complete_primary_decomposition P = primdecSY(self) File "function.pyx", line 1285, in sage.libs.singular.function.SingularFunction.__call__ (sage/libs/singular/function.cpp:13025) TypeError: Cannot call Singular function 'primdecSY' with ring parameter of type '<class 'sage.rings.quotient_ring.QuotientRing_generic_with_category'>'
Change History (9)
comment:1 Changed 4 years ago by
comment:2 Changed 4 years ago by
 Status changed from new to needs_review
comment:3 Changed 4 years ago by
 Keywords sd59 added
comment:4 Changed 4 years ago by
 Branch set to u/malb/trac_16381
 Commit set to c237b07be5568f9f19b2333f12dc46efe8a82ea5
New commits:
c237b07  fixing #16381: primary decomposition for quotient rings

comment:5 Changed 4 years ago by
Am i missing something or singular can give incorrect anwers in this case? :
SINGULAR / Development A Computer Algebra System for Polynomial Computations / version 316 0< by: W. Decker, G.M. Greuel, G. Pfister, H. Schoenemann \ Dec 2012 FB Mathematik der Universitaet, D67653 Kaiserslautern \ > ring r=0,(x,y,z),dp; > ideal i=z2x2y2; > qring q = i; > setring q; > ideal j0=y2; > ideal j1=xz; > ideal j2=x+z; > LIB "primdec.lib"; // ** loaded /home/mmarco/sage/local/share/singular/primdec.lib (14732,20120330) // ** loaded /home/mmarco/sage/local/share/singular/ring.lib (15322,20121012) // ** loaded /home/mmarco/sage/local/share/singular/absfact.lib (14191,20110504) // ** loaded /home/mmarco/sage/local/share/singular/triang.lib (13499,20101015) // ** loaded /home/mmarco/sage/local/share/singular/matrix.lib (13658,20101116) // ** loaded /home/mmarco/sage/local/share/singular/nctools.lib (14246,20110526) // ** loaded /home/mmarco/sage/local/share/singular/inout.lib (13499,20101015) // ** loaded /home/mmarco/sage/local/share/singular/random.lib (14661,20120305) // ** loaded /home/mmarco/sage/local/share/singular/poly.lib (14852,20120430) // ** loaded /home/mmarco/sage/local/share/singular/elim.lib (14661,20120305) // ** loaded /home/mmarco/sage/local/share/singular/general.lib (14191,20110504) > primdecGTZ(j0); [1]: [1]: _[1]=y2 [2]: _[1]=y
but j0 is the inttersection of j1 and j2, which are prime ideals:
> intersect(j1,j2); _[1]=x2z2 _[2]=xy2+y2z > factorize(xy2+y2z); [1]: _[1]=1 _[2]=x+z _[3]=y [2]: 1,1,2 > primdecGTZ(j1); [1]: [1]: _[1]=xz [2]: _[1]=xz > primdecGTZ(j2); [1]: [1]: _[1]=x+z [2]: _[1]=x+z
comment:6 Changed 4 years ago by
 Report Upstream changed from N/A to Reported upstream. No feedback yet.
 Status changed from needs_review to needs_info
comment:7 Changed 4 years ago by
 Report Upstream changed from Reported upstream. No feedback yet. to Reported upstream. Developers acknowledge bug.
It's confirmed as a bug in upstream.
comment:8 Changed 4 years ago by
 Milestone changed from sage6.3 to sage6.4
comment:9 Changed 4 years ago by
Primary decomposition in quotient rings is not yet supported by Singular, see documentation.
Consider that Singular usually never checks if used parameters are valid or allowed!! Their philosophy is/was that the user should know what he is doing, a very unfortunate one from my point of view.
Parameter check is now (since ver 4.0 ) done for primary decomposition. Maybe I will add support for primary decomposition in quotient rings, so bug me continuously to get this done.
So we'd want somthing like this?