Ticket #13: sca.quotient.buggy.log

File sca.quotient.buggy.log, 26.4 KB (added by Oleksandr , 16 years ago)

output on test

Line 
1Singular for x86_64-Linux version 3-0-4 (3042-2008041619)  Apr 16 2008 19:12:07
2with
3        factory(@(#) factoryVersion = 3.0.4),libfac(3.0.4,Mar 2008),
4        GMP(4.1),NTL(5.4.1),static readline,Plural,DBM,
5        namespaces,dynamic modules,dynamic p_Procs,OM_CHECK=0,OM_TRACK=0,random=1208520167
6        CC= gcc -O3 -w -fomit-frame-pointer -pipe -DNDEBUG -DOM_NDEBUG -Dx86_64_Linux -DHAVE_CONFIG_H,
7        CXX= g++ -O3 -w -fomit-frame-pointer --no-rtti -pipe -DNDEBUG -DOM_NDEBUG -Dx86_64_Linux -DHAVE_CONFIG_H (3.3.4 20040623 (Gentoo Linux 3.3.4-r2, ssp-3.3.2-2, pie-8.7.6))
8argv[0]   :     ./Singular
9SearchPath:     /home/motsak/NFS/MY.Math/16AprilCVS/LIB
10Singular  :     /home/motsak/NFS/MY.Math/16AprilCVS/x86_64-Linux/Singular-3-0-4
11BinDir    :     /home/motsak/NFS/MY.Math/16AprilCVS/x86_64-Linux
12RootDir   :     /home/motsak/NFS/MY.Math/16AprilCVS
13DefaultDir:     /home/motsak/NFS/MY.Math/16AprilCVS
14InfoFile  :     
15IdxFile   :     
16HtmlDir   :     
17ManualUrl :     http://www.singular.uni-kl.de/Manual/3-0-4
18ExDir     :     
19Path      :     /home/motsak/NFS/MY.Math/16AprilCVS/x86_64-Linux:.:/bin:/usr/bin:/usr/bin/X11:/usr/local/bin:/home/motsak/myroot/bin:/home/motsak/bin
20EmacsDir  :     /home/motsak/NFS/MY.Math/16AprilCVS/emacs
21Available HelpBrowsers: dummy, emacs,
22Current HelpBrowser: dummy
23sca.quotient.bug.sing   1> /*
24sca.quotient.bug.sing   2. Guten Tag!
25sca.quotient.bug.sing   3.
26sca.quotient.bug.sing   4. Im Anhang definiere ich zunächst wieder einen superkommutativen Ring R mit
27sca.quotient.bug.sing   5. einer Matrix-Ordnung und einem Ideal I.
28sca.quotient.bug.sing   6. Da twostd(I) leider nicht funktioniert, ich aber weiß, dass groebner(I)
29sca.quotient.bug.sing   7. hier ein zweiseitiges Ideal liefert, definiere ich
30sca.quotient.bug.sing   8.  qring Q = groebner(I);
31sca.quotient.bug.sing   9. und ignoriere die Warnung.
32sca.quotient.bug.sing  10.
33sca.quotient.bug.sing  11. Dann habe ich ein Ideal FRS, welches eine filter-reguläre Folge definiert.
34sca.quotient.bug.sing  12. Um nachzuweisen, dass die Folge filter-regulär ist, muss ich Quotienten
35sca.quotient.bug.sing  13. berechnen. quotient(ideal(0),ideal(FRS[1])) klappt, aber
36sca.quotient.bug.sing  14. quotient(ideal(FRS[1]),ideal(FRS[2])) verabschiedet sich mit der Meldung
37sca.quotient.bug.sing  15.
38sca.quotient.bug.sing  16.    ? sca_mm_Mult_p: exponent mismatch 1 and 1
39sca.quotient.bug.sing  17.
40sca.quotient.bug.sing  18.    ? sca_mm_Mult_p: exponent mismatch 1 and 1
41sca.quotient.bug.sing  19.
42sca.quotient.bug.sing  20.    ? sca_mm_Mult_pp: exponent mismatch 1 and 1
43sca.quotient.bug.sing  21.
44sca.quotient.bug.sing  22.    ? sca_mm_Mult_pp: exponent mismatch 1 and 1
45sca.quotient.bug.sing  23.
46sca.quotient.bug.sing  24.    ? error occurred in Bsp125gp3.txt line 71: `def q2 = quotient(ideal(FRS[1]),ideal(FRS[2]));
47sca.quotient.bug.sing  25.
48sca.quotient.bug.sing  26. Was ist da passiert? Habe ich quotient falsch verwendet? Gibt es
49sca.quotient.bug.sing  27. Beschränkungen, die ich nicht kannte? Ist es ein Bug?
50sca.quotient.bug.sing  28.
51sca.quotient.bug.sing  29. Gruß
52sca.quotient.bug.sing  30.      Simon
53sca.quotient.bug.sing  31. */
54sca.quotient.bug.sing  32.
55sca.quotient.bug.sing  33. LIB "ncall.lib";
56sca.quotient.bug.sing  34>
57sca.quotient.bug.sing  35. intmat m [12][12]=
58sca.quotient.bug.sing  36.      2,     2,     2,     2,     8,    10,     1,     1,     3,     3,     7,     9,
59sca.quotient.bug.sing  37.      0,     0,     0,     0,     0,    -1,     0,     0,     0,     0,     0,     0,
60sca.quotient.bug.sing  38.     -1,    -1,     0,     0,     0,     0,    -1,    -1,    -1,    -1,    -1,    -1,
61sca.quotient.bug.sing  39.     -1,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
62sca.quotient.bug.sing  40.      0,    -1,     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
63sca.quotient.bug.sing  41.      0,     0,    -1,     0,     0,     0,     0,     0,     0,     0,     0,     0,
64sca.quotient.bug.sing  42.      0,     0,     0,    -1,     0,     0,     0,     0,     0,     0,     0,     0,
65sca.quotient.bug.sing  43.      0,     0,     0,     0,    -1,     0,     0,     0,     0,     0,     0,     0,
66sca.quotient.bug.sing  44.      0,     0,     0,     0,     0,     0,    -1,     0,     0,     0,     0,     0,
67sca.quotient.bug.sing  45.      0,     0,     0,     0,     0,     0,     0,    -1,     0,     0,     0,     0,
68sca.quotient.bug.sing  46.      0,     0,     0,     0,     0,     0,     0,     0,    -1,     0,     0,     0,
69sca.quotient.bug.sing  47.      0,     0,     0,     0,     0,     0,     0,     0,     0,    -1,     0,     0;
70sca.quotient.bug.sing  48>
71sca.quotient.bug.sing  49.
72sca.quotient.bug.sing  50. ring r = 5, (a_2_0, a_2_1, b_2_2, b_2_3, b_8_9, c_10_12, a_1_0, a_1_1, a_3_4, a_3_5, a_7_8, a_9_11),(M(m));
73sca.quotient.bug.sing  51> def R = SuperCommutative(7,12);
74nctools.lib::SuperCommutative 730. parameter list #; 
75nctools.lib::SuperCommutative 731>
76nctools.lib::SuperCommutative 732. // NOTE: as a side effect the basering will be changed (if not in a commutative case) to bo the ground G-algebra (without factor).
77nctools.lib::SuperCommutative 733.   int fprot = (find(option(),"prot") != 0);
78nctools.lib::SuperCommutative 734>   
79nctools.lib::SuperCommutative 735.   string rname=nameof(basering);
80nctools.lib::SuperCommutative 736>   
81nctools.lib::SuperCommutative 737.   if ( rname == "basering") // i.e. no ring has been set yet
82nctools.lib::SuperCommutative 738.   {
83nctools.lib::SuperCommutative 741.     ERROR("You have to call the procedure from the ring");
84nctools.lib::SuperCommutative 742>
85nctools.lib::SuperCommutative 743.   def saveRing = basering;
86nctools.lib::SuperCommutative 744>   
87nctools.lib::SuperCommutative 745.   int N = nvars(saveRing);
88nctools.lib::SuperCommutative 746>   int b = 1;
89nctools.lib::SuperCommutative 747>   int e = N;
90nctools.lib::SuperCommutative 748>   int flag = 0;
91nctools.lib::SuperCommutative 749>   
92nctools.lib::SuperCommutative 750.   ideal Q = 0;
93nctools.lib::SuperCommutative 751>
94nctools.lib::SuperCommutative 752.   if(size(#)>0)
95nctools.lib::SuperCommutative 753.   {
96nctools.lib::SuperCommutative 758.     if(typeof(#[1]) != "int")
97nctools.lib::SuperCommutative 768.
98nctools.lib::SuperCommutative 769.   if(size(#)>1)
99nctools.lib::SuperCommutative 770.   {
100nctools.lib::SuperCommutative 775.     if(typeof(#[2]) != "int")
101nctools.lib::SuperCommutative 790.
102nctools.lib::SuperCommutative 791.   if(size(#)>2)
103nctools.lib::SuperCommutative 792.   {
104nctools.lib::SuperCommutative 797.     if(typeof(#[3]) != "ideal")
105nctools.lib::SuperCommutative 800>   
106nctools.lib::SuperCommutative 801.   if(size(#)>3)
107nctools.lib::SuperCommutative 802.   {
108nctools.lib::SuperCommutative 807.     if(typeof(#[4]) != "int")
109nctools.lib::SuperCommutative 810>
110nctools.lib::SuperCommutative 811.   int iSavedDegBoung = degBound;
111nctools.lib::SuperCommutative 812>
112nctools.lib::SuperCommutative 813.   if( (b == e) && (flag == 0) ) // commutative ring!!!
113nctools.lib::SuperCommutative 814.   {
114nctools.lib::SuperCommutative 818.     if( fprot == 1)
115nctools.lib::SuperCommutative 828>
116nctools.lib::SuperCommutative 829. /*
117nctools.lib::SuperCommutative 830.   // Singular'(H.S.) politics: no ring copies!
118nctools.lib::SuperCommutative 831.   // in future nc_algebra() should return a new ring!!!
119nctools.lib::SuperCommutative 832.   list CurrRing = ringlist(basering);
120nctools.lib::SuperCommutative 833.   def @R = ring(CurrRing);
121nctools.lib::SuperCommutative 834.   setring @R; // @R;
122nctools.lib::SuperCommutative 835. */
123nctools.lib::SuperCommutative 836.
124nctools.lib::SuperCommutative 837.   if( (char(basering)==2) && (flag == 0) )// commutative ring!!!
125nctools.lib::SuperCommutative 838.   {
126nctools.lib::SuperCommutative 842.     if( fprot == 1)
127nctools.lib::SuperCommutative 858>   
128nctools.lib::SuperCommutative 859.
129nctools.lib::SuperCommutative 860.   int i, j;
130nctools.lib::SuperCommutative 861>   
131nctools.lib::SuperCommutative 862.   if( (b == 1) && (e == N) ) // just an exterior algebra?
132nctools.lib::SuperCommutative 863.   { 
133nctools.lib::SuperCommutative 866.     def S = nc_algebra(-1, 0); // define ground G-algebra!
134nctools.lib::SuperCommutative 867>   {
135nctools.lib::SuperCommutative 875.     matrix @E = UpOneMatrix(N);
136nctools.lib::SuperCommutative 880.
137nctools.lib::SuperCommutative 881.   ideal @Q = fetch(saveRing, Q);
138nctools.lib::SuperCommutative 882>   
139nctools.lib::SuperCommutative 883.   j = ncols(@Q) + 1;
140nctools.lib::SuperCommutative 884>
141nctools.lib::SuperCommutative 885.   for ( i=e; i>=b; i--, j++ )
142nctools.lib::SuperCommutative 886.   {
143nctools.lib::SuperCommutative 888.     @Q[j] = var(i)^2;
144nctools.lib::SuperCommutative 889>
145nctools.lib::SuperCommutative 890.   if( (fprot == 1) and (attrib(basering, "global") != 1) )
146nctools.lib::SuperCommutative 891.   {
147nctools.lib::SuperCommutative 894.     print("Warning: Since the current ordering is not global there might be problems computing twostd(Q)!");
148nctools.lib::SuperCommutative 895>
149nctools.lib::SuperCommutative 896.   degBound=0;   
150nctools.lib::SuperCommutative 897>   @Q = twostd(@Q); // must be computed within the ground G-algebra => problems with local orderings!
151nctools.lib::SuperCommutative 898>   degBound = iSavedDegBoung;
152nctools.lib::SuperCommutative 899>   
153nctools.lib::SuperCommutative 900.   qring @EA = @Q;
154nctools.lib::SuperCommutative 901>
155nctools.lib::SuperCommutative 902. //   "Alternating variables: [", AltVarStart(), ",", AltVarEnd(), "].";
156nctools.lib::SuperCommutative 903.   return(@EA);
157sca.quotient.bug.sing  52> setring R;
158sca.quotient.bug.sing  53>
159sca.quotient.bug.sing  54. ideal I = -a_1_0*a_1_1,
160sca.quotient.bug.sing  55.  a_2_0*a_1_0,
161sca.quotient.bug.sing  56.  a_2_1*a_1_1,
162sca.quotient.bug.sing  57.  a_2_1*a_1_0-a_2_0*a_1_1,
163sca.quotient.bug.sing  58.  b_2_3*a_1_0-b_2_2*a_1_1,
164sca.quotient.bug.sing  59.  a_2_0^2,
165sca.quotient.bug.sing  60.  a_2_0*a_2_1,
166sca.quotient.bug.sing  61.  a_2_1^2,
167sca.quotient.bug.sing  62.  -2*a_2_1*b_2_2-a_2_0*b_2_3+a_1_1*a_3_4,
168sca.quotient.bug.sing  63.  a_2_0*b_2_2+a_1_0*a_3_4,
169sca.quotient.bug.sing  64.  -a_2_1*b_2_3+a_1_1*a_3_5,
170sca.quotient.bug.sing  65.  a_2_1*b_2_2+2*a_2_0*b_2_3+a_1_0*a_3_5,
171sca.quotient.bug.sing  66.  a_2_0*a_3_4,
172sca.quotient.bug.sing  67.  -b_2_3*a_3_4+b_2_2*a_3_5+2*b_2_2*b_2_3*a_1_1+2*b_2_2^2*a_1_1,
173sca.quotient.bug.sing  68.  -a_2_1*a_3_4+a_2_0*a_3_5,
174sca.quotient.bug.sing  69.  a_2_1*a_3_5,
175sca.quotient.bug.sing  70.  a_1_1*a_7_8+2*b_2_2*b_2_3*a_1_1*a_3_5+b_2_2^2*a_1_1*a_3_5-2*b_2_2^2*a_1_0*a_3_5,
176sca.quotient.bug.sing  71.  a_1_0*a_7_8+2*b_2_2^2*a_1_1*a_3_5+b_2_2^2*a_1_0*a_3_5-2*b_2_2^2*a_1_0*a_3_4,
177sca.quotient.bug.sing  72.  b_2_2*a_7_8+b_2_2*b_2_3^3*a_1_1+2*b_2_2^2*b_2_3*a_3_5+b_2_2^3*a_3_5-2*b_2_2^3*a_3_4+2*b_2_2^3*b_2_3*a_1_1+2*b_2_2^4*a_1_1,
178sca.quotient.bug.sing  73.  a_2_0*a_7_8,
179sca.quotient.bug.sing  74.  a_2_1*a_7_8,
180sca.quotient.bug.sing  75.  b_2_3*a_7_8+2*b_2_2*b_2_3^2*a_3_5+b_2_2^2*b_2_3*a_3_5+2*b_2_2^2*b_2_3^2*a_1_1-2*b_2_2^3*a_3_5-2*b_2_2^3*b_2_3*a_1_1+2*b_2_2^4*a_1_1,
181sca.quotient.bug.sing  76.  b_8_9*a_1_1+b_2_2*b_2_3^3*a_1_1+2*b_2_2^3*b_2_3*a_1_1-b_2_2^4*a_1_1,
182sca.quotient.bug.sing  77.  b_8_9*a_1_0-b_2_2*b_2_3^3*a_1_1+b_2_2^2*b_2_3^2*a_1_1+2*b_2_2^4*a_1_1,
183sca.quotient.bug.sing  78.  a_3_5*a_7_8-2*b_2_2^2*b_2_3*a_1_1*a_3_5+2*b_2_2^3*a_1_1*a_3_5-2*b_2_2^3*a_1_0*a_3_5,
184sca.quotient.bug.sing  79.  a_3_4*a_7_8-b_2_2*b_2_3^2*a_1_1*a_3_5-b_2_2^2*b_2_3*a_1_1*a_3_5-b_2_2^3*a_1_1*a_3_5,
185sca.quotient.bug.sing  80.  b_2_2*b_8_9-b_2_2*b_2_3^4+b_2_2^2*b_2_3^3+2*b_2_2^4*b_2_3-2*b_2_2*b_2_3^2*a_1_1*a_3_5-b_2_2^2*b_2_3*a_1_1*a_3_5,
186sca.quotient.bug.sing  81.  a_2_0*b_8_9+b_2_2*b_2_3^2*a_1_1*a_3_5-b_2_2^2*b_2_3*a_1_1*a_3_5-2*b_2_2^3*a_1_0*a_3_5,
187sca.quotient.bug.sing  82.  a_2_1*b_8_9+b_2_2*b_2_3^2*a_1_1*a_3_5+2*b_2_2^3*a_1_1*a_3_5-b_2_2^3*a_1_0*a_3_5,
188sca.quotient.bug.sing  83.  b_2_3*b_8_9+b_2_2*b_2_3^4+2*b_2_2^3*b_2_3^2-b_2_2^4*b_2_3-2*b_2_3^3*a_1_1*a_3_5-b_2_2*b_2_3^2*a_1_1*a_3_5,
189sca.quotient.bug.sing  84.  a_1_1*a_9_11-b_2_3^3*a_1_1*a_3_5+2*b_2_2*b_2_3^2*a_1_1*a_3_5+b_2_2^2*b_2_3*a_1_1*a_3_5-b_2_2^3*a_1_1*a_3_5-b_2_2^3*a_1_0*a_3_5,
190sca.quotient.bug.sing  85.  a_1_0*a_9_11+2*b_2_2*b_2_3^2*a_1_1*a_3_5+2*b_2_2^2*b_2_3*a_1_1*a_3_5+b_2_2^3*a_1_1*a_3_5-b_2_2^3*a_1_0*a_3_5+b_2_2^3*a_1_0*a_3_4,
191sca.quotient.bug.sing  86.  b_8_9*a_3_5+b_2_2*b_2_3^3*a_3_5+2*b_2_2^3*b_2_3*a_3_5-b_2_2^4*a_3_5,
192sca.quotient.bug.sing  87.  b_8_9*a_3_4-b_2_2*b_2_3^3*a_3_5+b_2_2^2*b_2_3^2*a_3_5+2*b_2_2^3*b_2_3^2*a_1_1+2*b_2_2^4*a_3_5-b_2_2^4*b_2_3*a_1_1+2*b_2_2^5*a_1_1,
193sca.quotient.bug.sing  88.  b_2_2*a_9_11+2*b_2_2*b_2_3^3*a_3_5+2*b_2_2^2*b_2_3^2*a_3_5-b_2_2^2*b_2_3^3*a_1_1+b_2_2^3*b_2_3*a_3_5-b_2_2^4*a_3_5+b_2_2^4*a_3_4+2*b_2_2^4*b_2_3*a_1_1,
194sca.quotient.bug.sing  89.  a_2_0*a_9_11,
195sca.quotient.bug.sing  90.  a_2_1*a_9_11,
196sca.quotient.bug.sing  91.  b_2_3*a_9_11-b_2_3^4*a_3_5+2*b_2_2*b_2_3^3*a_3_5+b_2_2^2*b_2_3^2*a_3_5-b_2_2^3*b_2_3*a_3_5+2*b_2_2^3*b_2_3^2*a_1_1-b_2_2^4*a_3_5+2*b_2_2^4*b_2_3*a_1_1+b_2_2^5*a_1_1,
197sca.quotient.bug.sing  92.  a_3_5*a_9_11-2*b_2_2^3*b_2_3*a_1_1*a_3_5-2*b_2_2^4*a_1_1*a_3_5-b_2_2^4*a_1_0*a_3_5,
198sca.quotient.bug.sing  93.  a_3_4*a_9_11-b_2_2^2*b_2_3^2*a_1_1*a_3_5+b_2_2^3*b_2_3*a_1_1*a_3_5-2*b_2_2^4*a_1_1*a_3_5+2*b_2_2^4*a_1_0*a_3_5,
199sca.quotient.bug.sing  94.  b_8_9*a_7_8+2*b_2_2^3*b_2_3^3*a_3_5-2*b_2_2^4*b_2_3^2*a_3_5-b_2_2^4*b_2_3^3*a_1_1-b_2_2^5*b_2_3^2*a_1_1-2*b_2_2^6*a_3_5+b_2_2^6*b_2_3*a_1_1+2*b_2_2^7*a_1_1,
200sca.quotient.bug.sing  95.  b_8_9^2+2*b_2_2^5*b_2_3^3-b_2_2^7*b_2_3+2*b_2_2^5*b_2_3*a_1_1*a_3_5+2*b_2_2^6*a_1_1*a_3_5-2*b_2_2^6*a_1_0*a_3_5,
201sca.quotient.bug.sing  96.  a_7_8*a_9_11-2*b_2_2^4*b_2_3^2*a_1_1*a_3_5+b_2_2^5*b_2_3*a_1_1*a_3_5+b_2_2^6*a_1_0*a_3_5,
202sca.quotient.bug.sing  97.  b_8_9*a_9_11+2*b_2_2^5*b_2_3^2*a_3_5-b_2_2^5*b_2_3^3*a_1_1+b_2_2^6*b_2_3*a_3_5+2*b_2_2^7*a_3_5-2*b_2_2^7*b_2_3*a_1_1-2*b_2_2^8*a_1_1;
203sca.quotient.bug.sing  98>
204sca.quotient.bug.sing  99.
205sca.quotient.bug.sing 100. qring Q = groebner(I);
206standard.lib::groebner 791. parameter def i_par; parameter  list #; 
207standard.lib::groebner 792> //Vorgabe einer Teilmenge aus {hilb,fglm,par2var,std,slimgb}
208standard.lib::groebner 793. //Aktuelle Einstellungen (Jan 2007):
209standard.lib::groebner 794. //---------------------------------
210standard.lib::groebner 795. //0. Immer Aufruf von std unabhaengig von der Vorgabe:
211standard.lib::groebner 796. //   gemischte Ordnungen, extra Gewichtsvektor, Matrix Ordnungen
212standard.lib::groebner 797.
213standard.lib::groebner 798. //1. Keine Vorgabe: es wirkt die aktuelle Heuristk:
214standard.lib::groebner 799. //   - Char p: std
215standard.lib::groebner 800. //   - Char = 0: slimgb (im qring wird Quotientenideal zum Input addiert)
216standard.lib::groebner 801. //   - 1-Block-Ordnungen/non-commutative: direkt Aufruf von std oder slimgb
217standard.lib::groebner 802. //   - Komplizierte Ordnungen (lp oder > 1 Block): hilb
218standard.lib::groebner 803. //   - Parameter werden grundsaetzlich nicht in Variable umgewandelt
219standard.lib::groebner 804. //   ? alternativ: more than 1 parameter will be converted to ring variable ?
220standard.lib::groebner 805. //   - fglm is keine Heuristik, da sonst vorher dim==0 peprueft werden muss
221standard.lib::groebner 806.
222standard.lib::groebner 807. //2. Vorgabe aus {std,slimgb}: es wird wo immer moeglich das angegebene
223standard.lib::groebner 808. //   gewaehlt (da slimgb keine Hilbertfunktion kennt, wird std verwendet).
224standard.lib::groebner 809. //   Bei slimgb im qring, wird das Quotientenideal zum Ideal addiert.
225standard.lib::groebner 810. //   Bei Angabe von std zusammen mit slimgb (aequivalent zur Angabe von
226standard.lib::groebner 811. //   keinem von beidem) wirkt obige Heuristik.
227standard.lib::groebner 812.
228standard.lib::groebner 813. //3. Nichtleere Vorgabe aus {hilb,fglm,std,slimgb}:
229standard.lib::groebner 814. //   es wird nur das angegebene und moegliche sowie das notwendige verwendet
230standard.lib::groebner 815. //   und bei Wahlmoeglickeit je nach Heuristik.
231standard.lib::groebner 816. //   Z.B. Vorgabe von {hilb} ist aequivalent zu {hilb,std,slimgb} und es wird
232standard.lib::groebner 817. //   hilb und nach Heuristik std oder slimgb verwendet, aber nicht par2var;
233standard.lib::groebner 818. //   bei Vorgabe von {hilb,slimgb} wird hilb und wo moeglich slimgb verwendet.
234standard.lib::groebner 819.
235standard.lib::groebner 820. //4. Bei Vorgabe von {par2var} wird par2var immer mit hilb und nach Heuristik
236standard.lib::groebner 821. //   std oder slimgb verwendet. Zu Variablen konvertierte Parameter haben
237standard.lib::groebner 822. //   extra letzten Block und Gewichte 1.
238standard.lib::groebner 823.
239standard.lib::groebner 824.
240standard.lib::groebner 825.   def P=basering;
241standard.lib::groebner 826>   if ((typeof(i_par)=="vector")||(typeof(i_par)=="module")) {module i=i_par;}
242standard.lib::groebner 827>   else {ideal i=i_par; }
243standard.lib::groebner 828.   kill i_par;
244standard.lib::groebner 829>
245standard.lib::groebner 830. //----------------------- save the given method ---------------------------
246standard.lib::groebner 831.   string method;
247standard.lib::groebner 832>   list Method;
248standard.lib::groebner 833>   int k;
249standard.lib::groebner 834>   for (k=1; k<=size(#); k++)
250standard.lib::groebner 835.   {
251standard.lib::groebner 839.      if (typeof(#[k]) == "int")
252standard.lib::groebner 846>
253standard.lib::groebner 847.  //======= we have an argument of type int -- try to use MPfork links =======
254standard.lib::groebner 848.   if ( defined(wait) == voice )
255standard.lib::groebner 849.   {
256standard.lib::groebner 869.     if ( system("with", "MP") )
257standard.lib::groebner 917>
258standard.lib::groebner 918.  //=========== we are still here -- do the actual computation =============
259standard.lib::groebner 919.
260standard.lib::groebner 920. //--------------------- save data from basering ---------------------------
261standard.lib::groebner 921.   poly Minpoly = minpoly;      //minimal polynomial
262standard.lib::groebner 922>   int was_minpoly;             //remembers if there was a minpoly in P
263standard.lib::groebner 923>   if (size(Minpoly) > 0)
264standard.lib::groebner 924.   {
265standard.lib::groebner 926.      was_minpoly = 1;
266standard.lib::groebner 927>
267standard.lib::groebner 928.   ideal Qideal = ideal(P);      //defining the quotient ideal if P is a qring
268standard.lib::groebner 929>   int was_qring;                //remembers if basering was a qring
269standard.lib::groebner 930>   //int is_homog = 1;
270standard.lib::groebner 931.   if (size(Qideal) > 0)
271standard.lib::groebner 932.   {
272standard.lib::groebner 935.      was_qring = 1;
273standard.lib::groebner 936.   list BRlist = ringlist(P);
274standard.lib::groebner 937>
275standard.lib::groebner 938.   // save ordering of basering P for later use
276standard.lib::groebner 939.   list ord_P = BRlist[3];       //should be available in all rings
277standard.lib::groebner 940>   string ordstr_P = ordstr(P);
278standard.lib::groebner 941>   int nvars_P = nvars(P);
279standard.lib::groebner 942>   int npars_P = npars(P);
280standard.lib::groebner 943>   intvec w;                     //for ringweights of basering P
281standard.lib::groebner 944>   for(k=1;  k<=nvars_P; k++)
282standard.lib::groebner 945.   {
283standard.lib::groebner 947.      w[k]=deg(var(k));
284standard.lib::groebner 948>   int neg=1-attrib (P,"global");
285standard.lib::groebner 949>
286standard.lib::groebner 950.   //save options:
287standard.lib::groebner 951.   intvec opt=option(get);
288standard.lib::groebner 952>   string s_opt = option();
289standard.lib::groebner 953>   int p_opt;
290standard.lib::groebner 954>   if (find(s_opt, "prot"))  { p_opt = 1; }
291standard.lib::groebner 955>
292standard.lib::groebner 956. //------------------ cases where std is always used ------------------------
293standard.lib::groebner 957. //If other methods are not implemented or do not make sense, i.e. for
294standard.lib::groebner 958. //local or mixed orderings, matrix orderings, extra weight vector and modules
295standard.lib::groebner 959.
296standard.lib::groebner 960.   if(  //( find(ordstr_P,"s") > 0 ) || // covered by neg
297standard.lib::groebner 961.        ( find(ordstr_P,"M") > 0 )
298standard.lib::groebner 962.     || ( find(ordstr_P,"a") > 0 )
299standard.lib::groebner 963.     || ( neg>0 ) )
300standard.lib::groebner 964.   {
301standard.lib::groebner 965.     if (p_opt) { "std in basering"; }
302// ** _ is no twosided standard basis
303sca.quotient.bug.sing 101> basering;
304//   characteristic : 5
305//   number of vars : 12
306//        block   1 : ordering M
307//                  : names    a_2_0 a_2_1 b_2_2 b_2_3 b_8_9 c_10_12 a_1_0 a_1_1 a_3_4 a_3_5 a_7_8 a_9_11
308//                  : weights       2      2      2      2      8     10      1      1      3      3      7      9
309//                  : weights       0      0      0      0      0     -1      0      0      0      0      0      0
310//                  : weights      -1     -1      0      0      0      0     -1     -1     -1     -1     -1     -1
311//                  : weights      -1      0      0      0      0      0      0      0      0      0      0      0
312//                  : weights       0     -1      0      0      0      0      0      0      0      0      0      0
313//                  : weights       0      0     -1      0      0      0      0      0      0      0      0      0
314//                  : weights       0      0      0     -1      0      0      0      0      0      0      0      0
315//                  : weights       0      0      0      0     -1      0      0      0      0      0      0      0
316//                  : weights       0      0      0      0      0      0     -1      0      0      0      0      0
317//                  : weights       0      0      0      0      0      0      0     -1      0      0      0      0
318//                  : weights       0      0      0      0      0      0      0      0     -1      0      0      0
319//                  : weights       0      0      0      0      0      0      0      0      0     -1      0      0
320//        block   2 : ordering C
321//   noncommutative relations:
322//    a_1_1a_1_0=-a_1_0*a_1_1
323//    a_3_4a_1_0=-a_1_0*a_3_4
324//    a_3_5a_1_0=-a_1_0*a_3_5
325//    a_7_8a_1_0=-a_1_0*a_7_8
326//    a_9_11a_1_0=-a_1_0*a_9_11
327//    a_3_4a_1_1=-a_1_1*a_3_4
328//    a_3_5a_1_1=-a_1_1*a_3_5
329//    a_7_8a_1_1=-a_1_1*a_7_8
330//    a_9_11a_1_1=-a_1_1*a_9_11
331//    a_3_5a_3_4=-a_3_4*a_3_5
332//    a_7_8a_3_4=-a_3_4*a_7_8
333//    a_9_11a_3_4=-a_3_4*a_9_11
334//    a_7_8a_3_5=-a_3_5*a_7_8
335//    a_9_11a_3_5=-a_3_5*a_9_11
336//    a_9_11a_7_8=-a_7_8*a_9_11
337// quotient ring from ideal
338_[1]=a_1_0*a_1_1
339_[2]=a_2_0*a_1_0
340_[3]=a_2_1*a_1_0-a_2_0*a_1_1
341_[4]=a_2_1*a_1_1
342_[5]=b_2_3*a_1_0-b_2_2*a_1_1
343_[6]=a_2_0^2
344_[7]=a_2_0*a_2_1
345_[8]=a_2_1^2
346_[9]=a_2_0*b_2_2+a_1_0*a_3_4
347_[10]=a_2_0*b_2_3+2*a_1_1*a_3_4-a_1_0*a_3_5
348_[11]=a_2_1*b_2_2+2*a_2_0*b_2_3+a_1_0*a_3_5
349_[12]=a_2_1*b_2_3-a_1_1*a_3_5
350_[13]=a_2_0*a_3_4
351_[14]=a_2_1*a_3_4-a_2_0*a_3_5
352_[15]=a_2_1*a_3_5
353_[16]=b_2_3*a_3_4-b_2_2*a_3_5-2*b_2_2*b_2_3*a_1_1-2*b_2_2^2*a_1_1
354_[17]=a_2_0*a_1_1*a_3_5
355_[18]=b_2_2*a_1_1*a_3_4-b_2_2*a_1_0*a_3_5
356_[19]=a_1_0*a_3_4*a_3_5
357_[20]=a_1_1*a_3_4*a_3_5
358_[21]=b_2_2*a_3_4*a_3_5-2*b_2_2^2*a_1_1*a_3_5-2*b_2_2^2*a_1_0*a_3_5
359_[22]=a_1_0*a_7_8+2*b_2_2^2*a_1_1*a_3_5+b_2_2^2*a_1_0*a_3_5-2*b_2_2^2*a_1_0*a_3_4
360_[23]=a_1_1*a_7_8+2*b_2_2*b_2_3*a_1_1*a_3_5+b_2_2^2*a_1_1*a_3_5-2*b_2_2^2*a_1_0*a_3_5
361_[24]=a_2_0*a_7_8
362_[25]=a_2_1*a_7_8
363_[26]=b_2_2*a_7_8+b_2_2*b_2_3^3*a_1_1+2*b_2_2^2*b_2_3*a_3_5+b_2_2^3*a_3_5-2*b_2_2^3*a_3_4+2*b_2_2^3*b_2_3*a_1_1+2*b_2_2^4*a_1_1
364_[27]=b_2_3*a_7_8+2*b_2_2*b_2_3^2*a_3_5+b_2_2^2*b_2_3*a_3_5+2*b_2_2^2*b_2_3^2*a_1_1-2*b_2_2^3*a_3_5-2*b_2_2^3*b_2_3*a_1_1+2*b_2_2^4*a_1_1
365_[28]=b_8_9*a_1_0-b_2_2*b_2_3^3*a_1_1+b_2_2^2*b_2_3^2*a_1_1+2*b_2_2^4*a_1_1
366_[29]=b_8_9*a_1_1+b_2_2*b_2_3^3*a_1_1+2*b_2_2^3*b_2_3*a_1_1-b_2_2^4*a_1_1
367_[30]=a_1_0*a_9_11+2*b_2_2*b_2_3^2*a_1_1*a_3_5+2*b_2_2^2*b_2_3*a_1_1*a_3_5+b_2_2^3*a_1_1*a_3_5-b_2_2^3*a_1_0*a_3_5+b_2_2^3*a_1_0*a_3_4
368_[31]=a_1_1*a_9_11-b_2_3^3*a_1_1*a_3_5+2*b_2_2*b_2_3^2*a_1_1*a_3_5+b_2_2^2*b_2_3*a_1_1*a_3_5-b_2_2^3*a_1_1*a_3_5-b_2_2^3*a_1_0*a_3_5
369_[32]=a_3_4*a_7_8-b_2_2*b_2_3^2*a_1_1*a_3_5-b_2_2^2*b_2_3*a_1_1*a_3_5-b_2_2^3*a_1_1*a_3_5
370_[33]=a_3_5*a_7_8-2*b_2_2^2*b_2_3*a_1_1*a_3_5+2*b_2_2^3*a_1_1*a_3_5-2*b_2_2^3*a_1_0*a_3_5
371_[34]=a_2_0*b_8_9+b_2_2*b_2_3^2*a_1_1*a_3_5-b_2_2^2*b_2_3*a_1_1*a_3_5-2*b_2_2^3*a_1_0*a_3_5
372_[35]=a_2_1*b_8_9+b_2_2*b_2_3^2*a_1_1*a_3_5+2*b_2_2^3*a_1_1*a_3_5-b_2_2^3*a_1_0*a_3_5
373_[36]=b_2_2*b_8_9-b_2_2*b_2_3^4+b_2_2^2*b_2_3^3+2*b_2_2^4*b_2_3-2*b_2_2*b_2_3^2*a_1_1*a_3_5-b_2_2^2*b_2_3*a_1_1*a_3_5
374_[37]=b_2_3*b_8_9+b_2_2*b_2_3^4+2*b_2_2^3*b_2_3^2-b_2_2^4*b_2_3-2*b_2_3^3*a_1_1*a_3_5-b_2_2*b_2_3^2*a_1_1*a_3_5
375_[38]=a_2_0*a_9_11
376_[39]=a_2_1*a_9_11
377_[40]=b_2_2*b_2_3^4*a_1_1-b_2_2^5*a_1_1
378_[41]=b_2_2*a_9_11+2*b_2_2*b_2_3^3*a_3_5+2*b_2_2^2*b_2_3^2*a_3_5-b_2_2^2*b_2_3^3*a_1_1+b_2_2^3*b_2_3*a_3_5-b_2_2^4*a_3_5+b_2_2^4*a_3_4+2*b_2_2^4*b_2_3*a_1_1
379_[42]=b_2_3*a_9_11-b_2_3^4*a_3_5+2*b_2_2*b_2_3^3*a_3_5+b_2_2^2*b_2_3^2*a_3_5-b_2_2^3*b_2_3*a_3_5+2*b_2_2^3*b_2_3^2*a_1_1-b_2_2^4*a_3_5+2*b_2_2^4*b_2_3*a_1_1+b_2_2^5*a_1_1
380_[43]=b_8_9*a_3_4-b_2_2*b_2_3^3*a_3_5+b_2_2^2*b_2_3^2*a_3_5+2*b_2_2^3*b_2_3^2*a_1_1+2*b_2_2^4*a_3_5-b_2_2^4*b_2_3*a_1_1+2*b_2_2^5*a_1_1
381_[44]=b_8_9*a_3_5+b_2_2*b_2_3^3*a_3_5+2*b_2_2^3*b_2_3*a_3_5-b_2_2^4*a_3_5
382_[45]=b_2_2*b_2_3^3*a_1_1*a_3_5-b_2_2^4*a_1_0*a_3_5
383_[46]=a_3_4*a_9_11-b_2_2^2*b_2_3^2*a_1_1*a_3_5+b_2_2^3*b_2_3*a_1_1*a_3_5-2*b_2_2^4*a_1_1*a_3_5+2*b_2_2^4*a_1_0*a_3_5
384_[47]=a_3_5*a_9_11-2*b_2_2^3*b_2_3*a_1_1*a_3_5-2*b_2_2^4*a_1_1*a_3_5-b_2_2^4*a_1_0*a_3_5
385_[48]=b_2_2*b_2_3^5-b_2_2^5*b_2_3
386_[49]=b_2_2*b_2_3^4*a_3_5-b_2_2^5*a_3_5
387_[50]=b_8_9*a_7_8+2*b_2_2^3*b_2_3^3*a_3_5-2*b_2_2^4*b_2_3^2*a_3_5-b_2_2^4*b_2_3^3*a_1_1-b_2_2^5*b_2_3^2*a_1_1-2*b_2_2^6*a_3_5+b_2_2^6*b_2_3*a_1_1+2*b_2_2^7*a_1_1
388_[51]=a_7_8*a_9_11-2*b_2_2^4*b_2_3^2*a_1_1*a_3_5+b_2_2^5*b_2_3*a_1_1*a_3_5+b_2_2^6*a_1_0*a_3_5
389_[52]=b_8_9^2+2*b_2_2^5*b_2_3^3-b_2_2^7*b_2_3+2*b_2_2^5*b_2_3*a_1_1*a_3_5+2*b_2_2^6*a_1_1*a_3_5-2*b_2_2^6*a_1_0*a_3_5
390_[53]=b_8_9*a_9_11+2*b_2_2^5*b_2_3^2*a_3_5-b_2_2^5*b_2_3^3*a_1_1+b_2_2^6*b_2_3*a_3_5+2*b_2_2^7*a_3_5-2*b_2_2^7*b_2_3*a_1_1-2*b_2_2^8*a_1_1
391_[54]=a_1_0^2
392_[55]=a_1_1^2
393_[56]=a_3_4^2
394_[57]=a_3_5^2
395_[58]=a_7_8^2
396_[59]=a_9_11^2
397sca.quotient.bug.sing 102>
398sca.quotient.bug.sing 103. ideal FRS = c_10_12, b_2_2^2-b_2_2*b_2_3+b_2_3^2;
399sca.quotient.bug.sing 104> quotient(ideal(0),ideal(FRS[1])); // q1
400_[1]=0
401sca.quotient.bug.sing 105>
402sca.quotient.bug.sing 106. FRS[1];
403c_10_12
404sca.quotient.bug.sing 107> FRS[2];
405b_2_3^2-b_2_2*b_2_3+b_2_2^2
406sca.quotient.bug.sing 108>
407sca.quotient.bug.sing 109. quotient(ideal(FRS[1]),ideal(FRS[2])); // q2
408   ? sca_mm_Mult_p: exponent mismatch 1 and 1
409
410   ? sca_mm_Mult_p: exponent mismatch 1 and 1
411
412   ? sca_mm_Mult_pp: exponent mismatch 1 and 1
413
414   ? sca_mm_Mult_pp: exponent mismatch 1 and 1
415
416   ? error occurred in sca.quotient.bug.sing line 109: `quotient(ideal(FRS[1]),ideal(FRS[2])); // q2`
417   ? wrong type declaration. type 'help ideal;'
418sca.quotient.bug.sing 110>
419sca.quotient.bug.sing 111.
420sca.quotient.bug.sing 112.
421sca.quotient.bug.sing 113. $$$$