Opened 15 years ago
Closed 14 years ago
#159 closed bug (fixed)
bug in NF? (ring = sum of two quotient rings)
Reported by: | simon king | Owned by: | hannes |
---|---|---|---|
Priority: | major | Milestone: | 3-1-1 |
Component: | singular-kernel | Version: | 3-1-0 |
Keywords: | NF, quotient ring | Cc: | simon.king@… |
Description
Simon King wrote (Aug 22, 2009):
Ich habe glaube ich gerade einen Bug in NF entdeckt.
Der Anhang "kerneltest.sing" definiert zunaechst Quotientenringe Q1, Q2 mit Matrixordnung.
def Q = Q1+Q2;
In Q wird ein Ideal t definiert, wobei t einfach aus den Variablen von Q1 besteht, d.h. ideal t = a_1_0, b_1_1, b_2_1, b_2_2, b_2_3, b_3_4, b_3_5, c_4_8;
Und dann kommt der Hammer:
NF(b_2_1,std(t));
b_2_1
b_2_1==t[3];
1
Das heisst: Obwohl b_2_1 als Erzeuger in t vorkommt, wird es nicht wegreduziert!
Seltsamerweise klappt dies:
NF(b_2_1,std(ideal(t[3])));
0
NF(b_2_1,std(ideal(t[2..3])));
0
NF(b_2_1,std(ideal(t[1..3])));
0
Aber dies klappt nicht:
NF(b_2_1,std(ideal(t[3..5])));
b_2_1
Was passiert da? Sind Summen von Quotientenringen in Singular ein Problem?
Die Matrizen, welche die Matrixordnung definieren, sind jedenfalls von vollem Rang, das habe ich geprueft.
Viele Gruesse Simon
Attachments (1)
Change History (8)
Changed 15 years ago by
Attachment: | kerneltest.sing added |
---|
comment:1 Changed 15 years ago by
comment:2 follow-up: 5 Changed 15 years ago by
Cc: | simon.king@… added |
---|
This seems to be a very subtle issue: almost any change to the procedure eliminates the bug :( I'd assume this to be a rear side effect of an interplay between quotient structure, ring sum structure and matrix orderings...
As a workaround i'd suggest to simulate factor algebra e.g. as follows:
def R = R1 + R2; setring R; ideal I = std(imap(R1, I) + imap(R2, I) ); ideal t = a_1_0, b_1_1, b_2_1, b_2_2, b_2_3, b_3_4, b_3_5, c_4_8; NF( t[3], std( I + t ) ); // Zero!!! qring Q = I; ideal t = imap(R, t); NF( t[3], std(t) ); // BUG :(
Please let us know about your findings related to this issues.
Does this bug appears in any noncommutative setting?
comment:3 follow-up: 4 Changed 15 years ago by
btw: this issue may be connected to #160: http://www.singular.uni-kl.de:8002/trac/ticket/160
comment:4 Changed 15 years ago by
Replying to motsak:
btw: this issue may be connected to #160: http://www.singular.uni-kl.de:8002/trac/ticket/160
I doubt it, because here all variables are of positive degree. Regards, Simon
comment:5 Changed 15 years ago by
Replying to motsak:
As a workaround i'd suggest to simulate factor algebra e.g. as follows:
def R = R1 + R2; setring R; ideal I = std(imap(R1, I) + imap(R2, I) ); ideal t = a_1_0, b_1_1, b_2_1, b_2_2, b_2_3, b_3_4, b_3_5, c_4_8; NF( t[3], std( I + t ) ); // Zero!!! qring Q = I; ideal t = imap(R, t); NF( t[3], std(t) ); // BUG :(
This might be a way out. By the way, the solution in my application was as follows:
- I factor simply by an ideal generated by some variables.
- Hence, I can get the same result by applying a map that sends these variables to zero and is the identity on the remaining variables.
Cheers, Simon
comment:6 Changed 14 years ago by
Owner: | changed from somebody to hannes |
---|
abort ring def when adding two quotient rings; give hint to user that there is a (new) specialized command; create spezialized command and include in manual that this may take a while due to necessary std computation
comment:7 Changed 14 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
If Q1 and Q2 does not share variables, SB(ideal(Q1))+SB(ideal(Q2))==SB(ideal(Q)). Fixed for that case. Otherwise, throws an error
(perhaps better switch to English)
I forgot to indicate the Singular version I was using: It is Singular 3-1-0 as it comes with Sage 4.1.
Best regards, Simon