This is NoetherNormalization.info, produced by Macaulay2, version 1.25.05

NoetherNormalization -- routines related to Noether normalization
*****************************************************************

Description
===========

NoetherNormalization is a package for computing ring homomorphisms which will
place ideals in Noether normal position. The algorithms used are based on
algorithms found in A. Logar's paper: A Computational Proof of the Noether
Normalization Lemma. In: Proceedings 6th AAEEC, Lecture Notes in Computer
Science 357, Springer, 1989, 259-273.

Authors
=======

  * Bart Snapp (see http://www.math.ohio-state.edu/~snapp/ )
    <snapp@math.ohio-state.edu>
  * Nathaniel Stapleton <nstaple2@math.uiuc.edu>

Version
=======

This documentation describes version 0.9.3 of NoetherNormalization.

Citation
========

If you have used this package in your research, please cite it as follows:

+-----------------------------------------------------------------------------+
|@misc{NoetherNormalizationSource,                                            |
|  title = {{NoetherNormalization: place an ideal in Noether normal position. |
|  author = {Bart Snapp and Nathaniel Stapleton},                             |
|  howpublished = {A \emph{Macaulay2} package available at                    |
|    \url{https://github.com/Macaulay2/M2/tree/master/M2/Macaulay2/packages}} |
|}                                                                            |
|-----------------------------------------------------------------------------|
|Version~0.9.3}},                                                             |
+-----------------------------------------------------------------------------+

Exports
=======

  * Functions and commands
      * noetherNormalization -- data for Noether
        normalization
  * Methods
      * "noetherNormalization(Ideal)" -- see noetherNormalization,
        -- data for Noether normalization
      * "noetherNormalization(PolynomialRing)" -- see
        noetherNormalization, -- data for Noether
        normalization
      * "noetherNormalization(QuotientRing)" -- see noetherNormalization,
        -- data for Noether normalization
  * Symbols
      * "LimitList" -- see noetherNormalization, --
        data for Noether normalization
      * "RandomRange" -- see noetherNormalization,
        -- data for Noether normalization

For the programmer
==================

The object NoetherNormalization, is a package (Macaulay2Doc),
defined in NoetherNormalization.m2.

-------------------------------------------------------------------------------

The source of this document is in NoetherNormalization.m2:235:0.

noetherNormalization -- data for Noether normalization
******************************************************

  * Usage:
        (f,J,X) = noetherNormalization C
  * Inputs:
      * C, which is either an ideal (Macaulay2Doc), I, or a
        quotient ring (Macaulay2Doc), R/I where R is a
        polynomial ring (Macaulay2Doc),
      * BasisElementLimit (Macaulay2Doc)
      * will take
  * Optional inputs (Macaulay2Doc),:
      * LimitList => a list (Macaulay2Doc), default value {5, 20,
        40, 60, 80, infinity}, gives the value which
      * RandomRange => an integer (Macaulay2Doc), default value 0, if
        not 0, gives a integer bound for the random coefficients. If 0, then
        chooses random elements from the coefficient field.
      * Verbose => ..., default value false
  * Outputs:
      * f, a ring map (Macaulay2Doc), an automorphism of R
      * J, an ideal (Macaulay2Doc), the image of I under f
      * X, a list (Macaulay2Doc), a list of variables which are
        algebraically independent in R/J

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                                        |
|                                                                             |
|                  3     9             7     9                      7 2       |
|o3 = (map (R, R, {-x  + -x  + x , x , -x  + -x  + x , x }), ideal (-x  +     |
|                  4 1   2 2    4   1  4 1   4 2    3   2           4 1       |
|     ------------------------------------------------------------------------|
|     9                 21 3     153 2 2   81   3   3 2       9   2           |
|     -x x  + x x  + 1, --x x  + ---x x  + --x x  + -x x x  + -x x x  +       |
|     2 1 2    1 4      16 1 2    16 1 2    8 1 2   4 1 2 3   2 1 2 3         |
|     ------------------------------------------------------------------------|
|     7 2       9   2                                                         |
|     -x x x  + -x x x  + x x x x  + 1), {x , x })                            |
|     4 1 2 4   4 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                                        |
|                                                                             |
|                  7     7                    7         3      7              |
|o6 = (map (R, R, {-x  + -x  + x , x , 7x  + --x  + x , -x  + --x  + x , x }),|
|                  3 1   9 2    5   1    1   10 2    4  7 1   10 2    3   2   |
|     ------------------------------------------------------------------------|
|            7 2   7               3  343 3     343 2 2   49 2       343   3  |
|     ideal (-x  + -x x  + x x  - x , ---x x  + ---x x  + --x x x  + ---x x  +|
|            3 1   9 1 2    1 5    2   27 1 2    27 1 2    3 1 2 5    81 1 2  |
|     ------------------------------------------------------------------------|
|     98   2           2   343 4   49 3     7 2 2      3                      |
|     --x x x  + 7x x x  + ---x  + --x x  + -x x  + x x ), {x , x , x })      |
|      9 1 2 5     1 2 5   729 2   27 2 5   3 2 5    2 5     5   4   3        |
|                                                                             |
|o6 : Sequence                                                                |
+-----------------------------------------------------------------------------+
|i7 : transpose gens gb J                                                     |
|                                                                             |
|o7 = {-10} | x_2^10                                                          |
|     {-10} | 413343x_1x_2x_5^6-3500658x_2^9x_5-117649x_2^9+2250423x_2^8x_5^2 |
|     {-9}  | 7203x_1x_2^2x_5^3-137781x_1x_2x_5^5+9261x_1x_2x_5^4+1166886x_2^ |
|     {-9}  | 121060821x_1x_2^3+2315685267x_1x_2^2x_5^2+311299254x_1x_2^2x_5+ |
|     {-3}  | 21x_1^2+7x_1x_2+9x_1x_5-9x_2^3                                  |
|     ------------------------------------------------------------------------|
|                                                                             |
|     +151263x_2^8x_5-964467x_2^7x_5^3-194481x_2^7x_5^2+250047x_2^6x_5^3-     |
|     9-750141x_2^8x_5-16807x_2^8+321489x_2^7x_5^2+43218x_2^7x_5-83349x_2     |
|     439334834526x_1x_2x_5^5-14765025303x_1x_2x_5^4+1984873086x_1x_2x_5^     |
|                                                                             |
|     ------------------------------------------------------------------------|
|                                                                             |
|     321489x_2^5x_5^4+413343x_2^4x_5^5+137781x_2^2x_5^6+177147x_2x_5^        |
|     ^6x_5^2+107163x_2^5x_5^3-137781x_2^4x_5^4+9261x_2^4x_5^3+2401x_2        |
|     3+200120949x_1x_2x_5^2-3720786376356x_2^9+2391934099086x_2^8x_5+        |
|                                                                             |
|     ------------------------------------------------------------------------|
|                                                                             |
|     7                                                                       |
|     ^3x_5^3-45927x_2^2x_5^5+6174x_2^2x_5^4-59049x_2x_5^6+3969x_2x_          |
|     80387359983x_2^8-1025114613894x_2^7x_5^2-172258628535x_2^7x_5+          |
|                                                                             |
|     ------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|     5^5                                                                     |
|     2315685267x_2^7+265770455454x_2^6x_5^2-8931928887x_2^6x_5-600362847x_2^6|
|                                                                             |
|     ------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|     -341704871298x_2^5x_5^3+11483908569x_2^5x_5^2+771895089x_2^5x_5+        |
|                                                                             |
|     ------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|     155649627x_2^5+439334834526x_2^4x_5^4-14765025303x_2^4x_5^3+1984873086x_|
|                                                                             |
|     ------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|     2^4x_5^2+200120949x_2^4x_5+40353607x_2^4+771895089x_2^3x_5^2+155649627x_|
|                                                                             |
|     ------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|     2^3x_5+146444944842x_2^2x_5^5-4921675101x_2^2x_5^4+1654060905x_2^2x_5^3+|
|                                                                             |
|     ------------------------------------------------------------------------|
|                                                                             |
|                                                                             |
|                                                                             |
|     200120949x_2^2x_5^2+188286357654x_2x_5^6-6327867987x_2x_5^5+850659894x_ |
|                                                                             |
|     ------------------------------------------------------------------------|
|                             |                                               |
|                             |                                               |
|                             |                                               |
|     2x_5^4+85766121x_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, {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                                        |
|                                                                             |
|                   1     7              9     5                      6 2     |
|o13 = (map (R, R, {-x  + -x  + x , x , --x  + -x  + x , x }), ideal (-x  +   |
|                   5 1   4 2    4   1  10 1   6 2    3   2           5 1     |
|      -----------------------------------------------------------------------|
|      7                  9 3     209 2 2   35   3   1 2       7   2          |
|      -x x  + x x  + 1, --x x  + ---x x  + --x x  + -x x x  + -x x x  +      |
|      4 1 2    1 4      50 1 2   120 1 2   24 1 2   5 1 2 3   4 1 2 3        |
|      -----------------------------------------------------------------------|
|       9 2       5   2                                                       |
|      --x x x  + -x x x  + x x x x  + 1), {x , x })                          |
|      10 1 2 4   6 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 (Macaulay2Doc),
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 (Macaulay2Doc), 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
LimitList:
+-----------------------------------------------------------------------------+
|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,LimitList => {5,10})  |
|--trying random transformation: 1                                            |
|--trying with basis element limit: 5                                         |
|--trying with basis element limit: 10                                        |
|                                                                             |
|                   7     2             7     10                      10 2    |
|o16 = (map (R, R, {-x  + -x  + x , x , -x  + --x  + x , x }), ideal (--x  +  |
|                   3 1   3 2    4   1  5 1    7 2    3   2            3 1    |
|      -----------------------------------------------------------------------|
|      2                 49 3     64 2 2   20   3   7 2       2   2           |
|      -x x  + x x  + 1, --x x  + --x x  + --x x  + -x x x  + -x x x  +       |
|      3 1 2    1 4      15 1 2   15 1 2   21 1 2   3 1 2 3   3 1 2 3         |
|      -----------------------------------------------------------------------|
|      7 2       10   2                                                       |
|      -x x x  + --x x x  + x x x x  + 1), {x , x })                          |
|      5 1 2 4    7 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 -2 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 => 2)     |
|--trying random transformation: 1                                            |
|--trying with basis element limit: 5                                         |
|--trying with basis element limit: 20                                        |
|                                                                             |
|                                                                       2     |
|o19 = (map (R, R, {- 2x  - 2x  + x , x , x  - x  + x , x }), ideal (- x  -   |
|                       1     2    4   1   1    2    3   2              1     |
|      -----------------------------------------------------------------------|
|                            3         3     2           2      2          2  |
|      2x x  + x x  + 1, - 2x x  + 2x x  - 2x x x  - 2x x x  + x x x  - x x x |
|        1 2    1 4          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:
=================================

  * "noetherNormalization(Ideal)"
  * "noetherNormalization(PolynomialRing)"
  * "noetherNormalization(QuotientRing)"

For the programmer
==================

The object noetherNormalization, is a method function with options (Macaulay2Doc).

-------------------------------------------------------------------------------

The source of this document is in NoetherNormalization.m2:313:0.