next | previous | forward | backward | up | top | index | toc | directory | Macaulay 2 web site

regularSequence -- generates a regular sequence

Synopsis

Description

Given a ring and an ideal, regularSequence attempts to generate a regular sequence contained in I.The algorithm is based on one found in Chapter 5.5 of W. Vasconcelos' book: Computational Methods in Commutative Algebra and Algebraic Geometry.
i1 : A = ZZ/5051[x, y, z];
i2 : I = ideal (x, x*y, y*z);

o2 : Ideal of A
i3 : X = regularSequence(I,A)

o3 = | xy+yz+x xy-yz+x |

             1       2
o3 : Matrix A  <--- A
i4 : isRegularSequence(X,A)

o4 = true
Here are examples with optional inputs:
i5 : A = ZZ/5051[x, y, z];
i6 : I = ideal (x, x*y, y*z);

o6 : Ideal of A
i7 : regularSequence(I,A,Attempts=>1,Bound=>100,Sparseness=>.9)
--warning: no maximal regular sequence found

o7 = 0

             1
o7 : Matrix A  <--- 0
Here are examples with the optional input Maximal => false:
i8 : x = symbol x; y = symbol y;
i10 : n = 2;
i11 : A = ZZ/101[x_(1,1)..x_(n,n),y_(1,1)..y_(n,n)];
i12 : X = transpose genericMatrix(A,n,n);

              2       2
o12 : Matrix A  <--- A
i13 : Y = transpose genericMatrix(A,y_(1,1),n,n);

              2       2
o13 : Matrix A  <--- A
i14 : bracket = ideal flatten (X*Y - Y*X);

o14 : Ideal of A
i15 : B = A/bracket;
i16 : m = ideal gens B;

o16 : Ideal of B
i17 : regularSequence(m,B,Attempts=>1,Maximal=>false)

o17 = | -x_(1,2)+x_(2,2)-y_(1,1)-y_(2,2)
      -----------------------------------------------------------------------
      -x_(1,2)+x_(2,1)-y_(1,2)-y_(2,1)+y_(2,2)
      -----------------------------------------------------------------------
      -x_(2,2)-y_(1,1)-y_(2,1)-y_(2,2) -x_(2,2)-y_(2,2)
      -----------------------------------------------------------------------
      x_(2,1)+x_(2,2)+y_(1,1)-y_(2,1)+y_(2,2) -x_(1,1)-x_(2,1)+y_(2,1) |

              1       6
o17 : Matrix B  <--- B
Note, considering the example above, we can compute a regular sequence faster than we can compute the depth:
i18 : n = 2;
i19 : A = ZZ/101[x_(1,1)..x_(n,n),y_(1,1)..y_(n,n)];
i20 : X = transpose genericMatrix(A,n,n);

              2       2
o20 : Matrix A  <--- A
i21 : Y = transpose genericMatrix(A,y_(1,1),n,n);

              2       2
o21 : Matrix A  <--- A
i22 : bracket = ideal flatten (X*Y - Y*X);

o22 : Ideal of A
i23 : B = A/bracket;
i24 : m = ideal gens B;

o24 : Ideal of B
i25 : time regularSequence(m,B)
     -- used 0.032902 seconds

o25 = | y_(1,1)+y_(2,2) -x_(1,2)-x_(2,2)+y_(1,1)-y_(2,1)
      -----------------------------------------------------------------------
      -x_(2,1)+y_(2,1)+y_(2,2) x_(1,1)-x_(1,2)+x_(2,2)-y_(1,2)+y_(2,2)
      -----------------------------------------------------------------------
      x_(1,1)-x_(1,2)-y_(2,2) -x_(2,2)+y_(2,1) |

              1       6
o25 : Matrix B  <--- B
i26 : time depth(m,B)
     -- used 2.68945 seconds

o26 = 6

This symbol is provided by the package Depth.

Ways to use regularSequence :