next | previous | forward | backward | up | top | index | toc | home

fine control of a Groebner basis computation

Sometimes a Groebner basis computation doesn't finish quickly enough. If so then this section might be of use. THIS PAGE IS UNDER CONSTRUCTION.

Partially computed Groebner bases

Suppose that you have computed part of a Groebner basis. For example, you may have interrupted the computation using CTRL-C (typing 'c' while holding the CTRL key down, in emacs, you have to type CTRL-C twice), or you may have given options requesting only partial computation.
i1 : R = ZZ/32003[a..e];
i2 : I = ideal(random(3,R),random(3,R),random(3,R))

                    3        2            2         3         2              
o2 = ideal (- 11904a  - 5021a b + 11918a*b  - 13724b  - 12715a c + 10116a*b*c
     ------------------------------------------------------------------------
            2           2          2        3        2               
     + 6067b c - 4787a*c  - 1572b*c  + 3309c  + 8400a d + 4269a*b*d +
     ------------------------------------------------------------------------
           2                                   2           2          2  
     11645b d - 13655a*c*d - 13670b*c*d - 5323c d - 8114a*d  + 5899b*d  -
     ------------------------------------------------------------------------
            2         3         2                     2             
     7945c*d  - 11563d  + 15120a e + 4190a*b*e - 6662b e + 43a*c*e +
     ------------------------------------------------------------------------
                      2                                             2   
     8384b*c*e - 9864c e + 9015a*d*e + 8814b*d*e - 8383c*d*e + 5863d e +
     ------------------------------------------------------------------------
            2          2          2          2        3       3        2   
     7050a*e  - 5806b*e  - 1749c*e  + 8852d*e  - 8015e , 2861a  + 3660a b -
     ------------------------------------------------------------------------
           2        3         2                      2           2  
     159a*b  - 4125b  + 15778a c + 6275a*b*c - 12822b c - 4978a*c  +
     ------------------------------------------------------------------------
             2         3         2                      2               
     12446b*c  + 15490c  + 14628a d - 1580a*b*d + 11995b d - 3794a*c*d +
     ------------------------------------------------------------------------
                       2           2          2           2        3  
     13721b*c*d + 6434c d - 7146a*d  + 1063b*d  - 12850c*d  - 1285d  +
     ------------------------------------------------------------------------
          2                    2                                   2   
     2847a e + 469a*b*e + 2611b e + 12318a*c*e - 10727b*c*e - 9987c e -
     ------------------------------------------------------------------------
                                              2            2          2  
     8567a*d*e + 12023b*d*e - 264c*d*e - 5577d e - 13444a*e  + 3928b*e  -
     ------------------------------------------------------------------------
            2          2        3       3        2            2        3  
     1207c*e  + 7425d*e  - 1747e , 2874a  + 8647a b - 12307a*b  + 4754b  -
     ------------------------------------------------------------------------
          2                     2          2           2         3        2 
     5896a c + 7633a*b*c - 6290b c - 415a*c  - 12017b*c  + 13889c  - 3295a d
     ------------------------------------------------------------------------
                      2                                 2            2  
     + 19a*b*d - 1921b d - 6574a*c*d - 3242b*c*d + 5620c d + 10590a*d  -
     ------------------------------------------------------------------------
             2           2        3         2                     2   
     14000b*d  + 13027c*d  + 9810d  + 15759a e + 15447a*b*e - 903b e -
     ------------------------------------------------------------------------
                                    2                                      
     11520a*c*e + 14327b*c*e + 4110c e + 8304a*d*e + 802b*d*e + 7340c*d*e +
     ------------------------------------------------------------------------
          2           2           2           2          2         3
     7579d e + 4916a*e  - 10640b*e  + 11182c*e  + 9646d*e  + 14662e )

o2 : Ideal of R
i3 : gens gb(I,PairLimit=>7);

             1       11
o3 : Matrix R  <--- R
Get the Groebner basis object:
i4 : g = gb(I,StopBeforeComputation => true);
i5 : leadTerm gens g

o5 = | ab2 a2b a3 b3c b4 b2c3 abc3 a2c3 bc5 ac5 c7 |

             1       11
o5 : Matrix R  <--- R
We can make a Groebner basis snapshot by using StopBeforeComputation:
i6 : gbSnapshot = (I) -> gens gb(I,StopBeforeComputation => true);
i7 : leadTerm gbSnapshot(I)

o7 = | ab2 a2b a3 b3c b4 b2c3 abc3 a2c3 bc5 ac5 c7 |

             1       11
o7 : Matrix R  <--- R