next up previous contents
Next: 5.2 HomR(M,N) Up: 5. Examples Previous: 5. Examples

5.1 Ext modules Ext(M,R)

Let M be given as Rm/Im(A0), where $R=K[x_1,\ldots , x_n]/(h_1,\ldots
, h_p)\,$. For each free resolution

\begin{displaymath}\ldots \longrightarrow F_k \stackrel{A_{k-1}}{\longrightarrow...
...}{\longrightarrow} F_0=R^m \longrightarrow M \longrightarrow 0
\end{displaymath}

is $Ext^j_R (M,R)=H^j(Hom(F_{\bullet },R))$.

Algorithm 5..1   ExtjR(M,R):

SINGULAR example: a complete version can be found in the SINGULAR library homog.lib.

proc qmod (module M, module N)
//USAGE:   qmod(<module_M>,<module_N>);
//         N a submodule of M, a submodule of a free one
//COMPUTE: presentation S of M/N, i.e. M/N<<--F<--[S],
//         F free of rank = size(M),
//RETURNS: module(S)
{
  return(lift(M,N)+syz(M));
}

proc ext (int n, ideal i)
// COMPUTES:  Ext^n(R/i,R);   i ideal in the basering R
// USAGE:     ext(<int>,<ideal>);
// SHOWS:     degree of Ext^n
// RETURN:    Ext as quotient of a free module
{
//-----------------  compute resulution of R/i ----------
//          0<--R/i<--L(0)<--[i]--L(1)<--[RE[2]]--- ...
   list RE=mres(i,n+1);
//-----------------  apply Hom(_,R) at n-th place -------
   module g = module(transpose(matrix(RE[n+1])));
   module f = module(transpose(matrix(RE[n])));
//-----------------  ker(g)/im(f) -----------------------
   module ext = qmod(syz(g),f);
//---- return Ext as quotient of a free module (std) ----
   return(std(ext));
}


| ZCA Home | Reports |