Top
Back: D.4.3.18 tensorMod
Forward: D.4.4 mprimdec_lib
FastBack: D. SINGULAR libraries
FastForward: E. Release Notes
Up: D.4.3 homolog_lib
Top: Singular 2-0-4 Manual
Contents: Table of Contents
Index: F. Index
About: About This Document

D.4.3.19 Tor

Procedure from library homolog.lib (see homolog_lib).

Compute:

a presentation of Tor_k(M’,N’), for k=v[1],v[2],... , where M’=coker(M) and N’=coker(N): let

 
       0 <-- M' <-- G0 <-M-- G1                
       0 <-- N' <-- F0 <--N- F1 <-- F2 <--...  

be a presentation of M’, resp. a free resolution of N’, and consider the commutative diagram

 
          0                    0                    0
          |^                   |^                   |^
  Tensor(M',Fk+1) -Ak+1-> Tensor(M',Fk) -Ak-> Tensor(M',Fk-1)
          |^                   |^                   |^
  Tensor(G0,Fk+1) -Ak+1-> Tensor(G0,Fk) -Ak-> Tensor(G0,Fk-1)
                               |^                   |^
                               |C                   |B
                          Tensor(G1,Fk) ----> Tensor(G1,Fk-1)

       (Ak,Ak+1 induced by N and B,C induced by M).

Let K=modulo(Ak,B), J=module(C)+module(Ak+1) and Tor=modulo(K,J), then we have exact sequences

 
    R^p  --K-> Tensor(G0,Fk) --Ak-> Tensor(G0,Fk-1)/im(B),

    R^q -Tor-> R^p --K-> Tensor(G0,Fk)/(im(C)+im(Ak+1)). 

Hence, Tor presents Tor_k(M’,N’).

Return:

- if v is of type int: module Tor, a presentation of Tor_k(M’,N’);
- if v is of type intvec: a list of Tor_k(M’,N’) (k=v[1],v[2],...);
- in case of a third argument of any type: list l with

 
     l[1] = module Tor/list of Tor_k(M’,N’),
     l[2] = SB of Tor/list of SB of Tor_k(M’,N’),
     l[3] = matrix/list of matrices, each representing a kbase of Tor_k(M’,N’)
                (if finite dimensional), or 0.
Display:

printlevel >=0: (affine) dimension of Tor_k for each k (default).
printlevel >=1: matrices Ak, Ak+1 and kbase of Tor_k in Tensor(G0,Fk) (if finite dimensional).

Note:

In order to compute Tor_k(M,N) use the command Tor(k,syz(M),syz(N)); or: list P=mres(M,2); list Q=mres(N,2); Tor(k,P[2],Q[2]);

Example:

 
LIB "homolog.lib";
int p      = printlevel;
printlevel = 1;
ring r     = 0,(x,y),dp;
ideal i    = x2,y;
ideal j    = x;
list E     = Tor(0..2,i,j);    // Tor_k(r/i,r/j) for k=0,1,2 over r
→ // dimension of Tor_0:  0
→ // vdim of Tor_0:       1
→ 
→ // Computing Tor_1 (help Tor; gives an explanation):
→ // Let 0 <- coker(M) <- G0 <-M- G1 be the present. of coker(M),
→ // and 0 <- coker(N) <- F0 <-N- F1 <- F2 <- ... a resolution of
→ // coker(N), then Tensor(G0,F1)-->Tensor(G0,F0) is given by:
→ x
→ // and Tensor(G0,F2) + Tensor(G1,F1)-->Tensor(G0,F1) is given by:
→ 0,x2,y
→ 
→ // dimension of Tor_1:  0
→ // vdim of Tor_1:       1
→ 
→ // Computing Tor_2 (help Tor; gives an explanation):
→ // Let 0 <- coker(M) <- G0 <-M- G1 be the present. of coker(M),
→ // and 0 <- coker(N) <- F0 <-N- F1 <- F2 <- ... a resolution of
→ // coker(N), then Tensor(G0,F2)-->Tensor(G0,F1) is given by:
→ 0
→ // and Tensor(G0,F3) + Tensor(G1,F2)-->Tensor(G0,F2) is given by:
→ 1,x2,y
→ 
→ // dimension of Tor_2:  -1
→ 
qring R    = std(i);
ideal j    = fetch(r,j);
module M   = [x,0],[0,x];
printlevel = 2;
module E1  = Tor(1,M,j);       // Tor_1(R^2/M,R/j) over R=r/i
→ // Computing Tor_1 (help Tor; gives an explanation):
→ // Let 0 <- coker(M) <- G0 <-M- G1 be the present. of coker(M),
→ // and 0 <- coker(N) <- F0 <-N- F1 <- F2 <- ... a resolution of
→ // coker(N), then Tensor(G0,F1)-->Tensor(G0,F0) is given by:
→ x,0,
→ 0,x 
→ // and Tensor(G0,F2) + Tensor(G1,F1)-->Tensor(G0,F1) is given by:
→ x,0,x,0,
→ 0,x,0,x 
→ 
→ // dimension of Tor_1:  0
→ // vdim of Tor_1:       2
→ 
list l     = Tor(3,M,M,1);     // Tor_3(R^2/M,R^2/M) over R=r/i
→ // Computing Tor_3 (help Tor; gives an explanation):
→ // Let 0 <- coker(M) <- G0 <-M- G1 be the present. of coker(M),
→ // and 0 <- coker(N) <- F0 <-N- F1 <- F2 <- ... a resolution of
→ // coker(N), then Tensor(G0,F3)-->Tensor(G0,F2) is given by:
→ x,0,0,0,
→ 0,x,0,0,
→ 0,0,x,0,
→ 0,0,0,x 
→ // and Tensor(G0,F4) + Tensor(G1,F3)-->Tensor(G0,F3) is given by:
→ x,0,0,0,x,0,0,0,
→ 0,x,0,0,0,x,0,0,
→ 0,0,x,0,0,0,x,0,
→ 0,0,0,x,0,0,0,x 
→ 
→ // dimension of Tor_3:  0
→ // vdim of Tor_3:       4
→ 
→ // columns of matrix are kbase of Tor_3 in Tensor(G0,F3)
→ 1,0,0,0,
→ 0,1,0,0,
→ 0,0,1,0,
→ 0,0,0,1 
→ 
printlevel = p;

Top Back: D.4.3.18 tensorMod Forward: D.4.4 mprimdec_lib FastBack: D. SINGULAR libraries FastForward: E. Release Notes Up: D.4.3 homolog_lib Top: Singular 2-0-4 Manual Contents: Table of Contents Index: F. Index About: About This Document
            User manual for Singular version 2-0-4, October 2002, generated by texi2html.