Top
Back: modulo
Forward: ncalgebra
FastBack: Functions
FastForward: Mathematical background
Up: Functions
Top: Plural Manual
Contents: Table of Contents
Index: Index
About: About this document

3.14 mres

Syntax:
mres ( ideal_expression, int_expression )
mres ( module_expression, int_expression )
Type:
resolution
Purpose:
computes a minimal free resolution of an ideal or module M with the Groebner basis method. More precisely, let A=matrix(M), then mres computes a free resolution of $coker(A)=F_0/M$

\begin{displaymath}...\longrightarrow F_2 \buildrel{A_2}\over{\longrightarrow} F...
...er{\longrightarrow} F_0\longrightarrow F_0/M
\longrightarrow 0,\end{displaymath}

where the columns of the matrix $A_1$are a (possibly) minimal set of generators of M. If the int expression k is not zero then the computation stops after k steps and returns a list of modules $M_i={\tt module}(A_i)$, i=1...k.
mres(M,0) returns a resolution consisting of at most n+2 modules, where n is the number of variables of the basering. Let list L=mres(M,0); then L[1] consists of a minimal set of generators of the input, L[2] consists of a minimal set of generators for the first syzygy module of L[1], etc., until L[p+1], such that ${\tt L[i]}\neq 0$ for $i \le p$, but L[p+1], the first syzygy module of L[p], is 0 (if the basering is not a qring).
Note:
Accessing single elements of a resolution may require that some partial computations have to be finished and may therefore take some time.
Example:
 
LIB "poly.lib";
ring A=0,(x,y,z),Dp;
matrix d[3][3];
d[1,2]=-z;
d[1,3]=2x;
d[2,3]=-2y;
ncalgebra(1,d);
ideal i=x,y,z;
i=std(i);
resolution M=mres(i,0);
// now we print the resolution out, pretty print its components
// and check that F is indeed exact
M;
==>  1      2      2      1      
==> A <--  A <--  A <--  A
==> 
==> 0      1      2      3      
==> 
for (int a=1;a<=size(list(M));a++)
{ 
  printf("Module: %s",a);
  print(matrix(M[a]));
  if (a>1)
  {
    printf("The defect of exactness at: (%s,%s)",a-1,a);
    std(flatten(transpose(M[a])*transpose(M[a-1])));
  }
}
==> Module: 1
==> y,x
==> Module: 2
==> xy-2z-2,x2,    
==> -y2,    -xy-z+2
==> The defect of exactness at: (1,2)
==> _[1]=0
==> Module: 3
==> x,
==> -y
==> The defect of exactness at: (2,3)
==> _[1]=0

See ideal; minres; module; nres.


Top Back: modulo Forward: ncalgebra FastBack: Functions FastForward: Mathematical background Up: Functions Top: Plural Manual Contents: Table of Contents Index: Index About: About this document
            User manual for Singular version 2-1-99, August 2004, generated by texi2html.