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

noetherNormalization -- data for Noether normalization

Synopsis

Description

The computations performed in the routine noetherNormalization use a random linear change of coordinates, hence one should expect the output to change each time the routine is executed.
i1 : R = QQ[x_1..x_4];
i2 : I = ideal(x_2^2+x_1*x_2+1, x_1*x_2*x_3*x_4+1);

o2 : Ideal of R
i3 : (f,J,X) = noetherNormalization I

               2      5              7      9                       7  2  
o3 = (map(R,R,{-*x  + -*x  + x , x , -*x  + -*x  + x , x }), ideal (-*x  +
               5  1   4  2    4   1  6  1   2  2    3   2           5  1  
     ------------------------------------------------------------------------
     5                   7  3     391  2 2   45    3   2  2       5    2    
     -*x x  + x x  + 1, --*x x  + ---*x x  + --*x x  + -*x x x  + -*x x x  +
     4  1 2    1 4      15  1 2   120  1 2    8  1 2   5  1 2 3   4  1 2 3  
     ------------------------------------------------------------------------
     7  2       9    2
     -*x x x  + -*x x x  + x x x x  + 1), {x , x })
     6  1 2 4   2  1 2 4    1 2 3 4         4   3

o3 : Sequence
The next example shows how when we use the lexicographical ordering, we can see the integrality of R/ f I over the polynomial ring in dim(R/I) variables:
i4 : R = QQ[x_1..x_5, MonomialOrder => Lex];
i5 : I = ideal(x_2*x_1-x_5^3, x_5*x_1^3);

o5 : Ideal of R
i6 : (f,J,X) = noetherNormalization I

               1      7              10      6          7      3         
o6 = (map(R,R,{-*x  + -*x  + x , x , --*x  + -*x  + x , -*x  + -*x  + x ,
               4  1   6  2    5   1   3  1   5  2    4  4  1   4  2    3 
     ------------------------------------------------------------------------
                  1  2   7                3   1  3      7  2 2    3  2      
     x }), ideal (-*x  + -*x x  + x x  - x , --*x x  + --*x x  + --*x x x  +
      2           4  1   6  1 2    1 5    2  64  1 2   32  1 2   16  1 2 5  
     ------------------------------------------------------------------------
     49    3   7    2     3      2   343  4   49  3     7  2 2      3
     --*x x  + -*x x x  + -*x x x  + ---*x  + --*x x  + -*x x  + x x ), {x ,
     48  1 2   4  1 2 5   4  1 2 5   216  2   12  2 5   2  2 5    2 5     5 
     ------------------------------------------------------------------------
     x , x })
      4   3

o6 : Sequence
i7 : transpose gens gb J

o7 = {-10} | x_2^10                                                          
     {-10} | 7776x_1x_2x_5^6-15876x_2^9x_5-16807x_2^9+6804x_2^8x_5^2+14406x_2
     {-9}  | 28812x_1x_2^2x_5^3-11664x_1x_2x_5^5+24696x_1x_2x_5^4+23814x_2^9-
     {-9}  | 5931980229x_1x_2^3+2401451388x_1x_2^2x_5^2+10169108964x_1x_2^2x_
     {-3}  | 3x_1^2+14x_1x_2+12x_1x_5-12x_2^3                                
     ------------------------------------------------------------------------
                                                                       
     ^8x_5-1944x_2^7x_5^3-12348x_2^7x_5^2+10584x_2^6x_5^3-9072x_2^5x_5^
     10206x_2^8x_5-7203x_2^8+2916x_2^7x_5^2+12348x_2^7x_5-15876x_2^6x_5
     5+306110016x_1x_2x_5^5-324060912x_1x_2x_5^4+1372257936x_1x_2x_5^3+
                                                                       
     ------------------------------------------------------------------------
                                                                         
     4+7776x_2^4x_5^5+36288x_2^2x_5^6+31104x_2x_5^7                      
     ^2+13608x_2^5x_5^3-11664x_2^4x_5^4+24696x_2^4x_5^3+134456x_2^3x_5^3-
     4358189556x_1x_2x_5^2-624974616x_2^9+267846264x_2^8x_5+283553298x_2^
                                                                         
     ------------------------------------------------------------------------
                                                                             
                                                                             
     54432x_2^2x_5^5+230496x_2^2x_5^4-46656x_2x_5^6+98784x_2x_5^5            
     8-76527504x_2^7x_5^2-405076140x_2^7x_5+171532242x_2^7+416649744x_2^6x_5^
                                                                             
     ------------------------------------------------------------------------
                                                                             
                                                                             
                                                                             
     2-441082908x_2^6x_5-933897762x_2^6-357128352x_2^5x_5^3+378071064x_2^5x_5
                                                                             
     ------------------------------------------------------------------------
                                                                             
                                                                             
                                                                             
     ^2+800483796x_2^5x_5+5084554482x_2^5+306110016x_2^4x_5^4-324060912x_2^4x
                                                                             
     ------------------------------------------------------------------------
                                                                   
                                                                   
                                                                   
     _5^3+1372257936x_2^4x_5^2+4358189556x_2^4x_5+27682574402x_2^4+
                                                                   
     ------------------------------------------------------------------------
                                                                    
                                                                    
                                                                    
     11206773144x_2^3x_5^2+71183762748x_2^3x_5+1428513408x_2^2x_5^5-
                                                                    
     ------------------------------------------------------------------------
                                                                      
                                                                      
                                                                      
     1512284256x_2^2x_5^4+16009675920x_2^2x_5^3+61014653784x_2^2x_5^2+
                                                                      
     ------------------------------------------------------------------------
                                                                             
                                                                             
                                                                             
     1224440064x_2x_5^6-1296243648x_2x_5^5+5489031744x_2x_5^4+17432758224x_2x
                                                                             
     ------------------------------------------------------------------------
          |
          |
          |
     _5^3 |
          |

             5       1
o7 : Matrix R  <--- R
If noetherNormalization is unable to place the ideal into the desired position after a few tries, the following warning is given:
i8 : R = ZZ/2[a,b];
i9 : I = ideal(a^2*b+a*b^2+1);

o9 : Ideal of R
i10 : (f,J,X) = noetherNormalization I
--warning: no good linear transformation found by noetherNormalization

                                   2       2
o10 = (map(R,R,{a + b, a}), ideal(a b + a*b  + 1), {b})

o10 : Sequence
Here is an example with the option Verbose => true:
i11 : R = QQ[x_1..x_4];
i12 : I = ideal(x_2^2+x_1*x_2+1, x_1*x_2*x_3*x_4+1);

o12 : Ideal of R
i13 : (f,J,X) = noetherNormalization(I,Verbose => true)
--trying random transformation: 1
--trying with basis element limit: 5
--trying with basis element limit: 20

                9                    3      6                       17  2  
o13 = (map(R,R,{-*x  + 8x  + x , x , -*x  + -*x  + x , x }), ideal (--*x  +
                8  1     2    4   1  4  1   7  2    3   2            8  1  
      -----------------------------------------------------------------------
                        27  3     195  2 2   48    3   9  2           2    
      8x x  + x x  + 1, --*x x  + ---*x x  + --*x x  + -*x x x  + 8x x x  +
        1 2    1 4      32  1 2    28  1 2    7  1 2   8  1 2 3     1 2 3  
      -----------------------------------------------------------------------
      3  2       6    2
      -*x x x  + -*x x x  + x x x x  + 1), {x , x })
      4  1 2 4   7  1 2 4    1 2 3 4         4   3

o13 : Sequence
The first number in the output above gives the number of linear transformations performed by the routine while attempting to place I into the desired position. The second number tells which BasisElementLimit was used when computing the (partial) Groebner basis. By default, noetherNormalization tries to use a partial Groebner basis. It does this by sequentially computing a Groebner basis with the option BasisElementLimit set to predetermined values. The default values come from the following list:{5,20,40,60,80,infinity}. To set the values manually, use the option LimitSequence:
i14 : R = QQ[x_1..x_4];
i15 : I = ideal(x_2^2+x_1*x_2+1, x_1*x_2*x_3*x_4+1);

o15 : Ideal of R
i16 : (f,J,X) = noetherNormalization(I,Verbose => true,LimitSequence => {5,10})
--trying random transformation: 1
--trying with basis element limit: 5
--trying with basis element limit: 10

                4      8               9      1                       7  2  
o16 = (map(R,R,{-*x  + -*x  + x , x , --*x  + -*x  + x , x }), ideal (-*x  +
                3  1   7  2    4   1  10  1   2  2    3   2           3  1  
      -----------------------------------------------------------------------
      8                  6  3     178  2 2   4    3   4  2       8    2    
      -*x x  + x x  + 1, -*x x  + ---*x x  + -*x x  + -*x x x  + -*x x x  +
      7  1 2    1 4      5  1 2   105  1 2   7  1 2   3  1 2 3   7  1 2 3  
      -----------------------------------------------------------------------
       9  2       1    2
      --*x x x  + -*x x x  + x x x x  + 1), {x , x })
      10  1 2 4   2  1 2 4    1 2 3 4         4   3

o16 : Sequence
To limit the randomness of the coefficients, use the option RandomRange. Here is an example where the coefficients of the linear transformation are random integers from -1 to 2:
i17 : R = QQ[x_1..x_4];
i18 : I = ideal(x_2^2+x_1*x_2+1, x_1*x_2*x_3*x_4+1);

o18 : Ideal of R
i19 : (f,J,X) = noetherNormalization(I,Verbose => true,RandomRange => {-1,2})
--trying random transformation: 1
--trying with basis element limit: 5
--trying with basis element limit: 20

                                                                 2         
o19 = (map(R,R,{2x  - x  + x , x , x  + 2x  + x , x }), ideal (3x  - x x  +
                  1    2    4   1   1     2    3   2             1    1 2  
      -----------------------------------------------------------------------
                  3       2 2       3     2          2      2           2
      x x  + 1, 2x x  + 3x x  - 2x x  + 2x x x  - x x x  + x x x  + 2x x x  +
       1 4        1 2     1 2     1 2     1 2 3    1 2 3    1 2 4     1 2 4  
      -----------------------------------------------------------------------
      x x x x  + 1), {x , x })
       1 2 3 4         4   3

o19 : Sequence

This symbol is provided by the package NoetherNormalization.

Ways to use noetherNormalization :