#### D.4.8.1 canonMap

Procedure from library `homolog.lib` (see homolog_lib).

Usage:
  canonMap(id); id= ideal/module,

Return:
  a list L, the kernel in two different representations and
  the cokernel of the canonical map
  M ---> Ext^c_R(Ext^c_R(M,R),R) given by presentations
  Here M is the R-module (R=basering) given by the presentation
  defined by id, i.e. M=R/id resp. M=R^n/id
  c is the codimension of M
  L[1] is the preimage of the kernel in R resp. R^n
  L[2] is a presentation of the kernel
  L[3] is a presentation of the cokernel

Example:

    LIB "homolog.lib";
    ring s=0,(x,y),dp;
    ideal i = x,y;
    canonMap(i);
    ==> [1]:
    ==>    _[1]=y*gen(1)
    ==>    _[2]=x*gen(1)
    ==> [2]:
    ==>    _[1]=0
    ==> [3]:
    ==>    _[1]=0
    ring R = 0,(x,y,z,w),dp;
    ideal I1 = x,y;
    ideal I2 = z,w;
    ideal I = intersect(I1,I2);
    canonMap(I);
    ==> [1]:
    ==>    _[1]=yw*gen(1)
    ==>    _[2]=xw*gen(1)
    ==>    _[3]=yz*gen(1)
    ==>    _[4]=xz*gen(1)
    ==> [2]:
    ==>    _[1]=0
    ==> [3]:
    ==>    _[1]=-w*gen(1)
    ==>    _[2]=-z*gen(1)
    ==>    _[3]=-y*gen(1)
    ==>    _[4]=-x*gen(1)
    module M = syz(I);
    canonMap(M);
    ==> [1]:
    ==>    _[1]=z*gen(1)-w*gen(3)
    ==>    _[2]=z*gen(2)-w*gen(4)
    ==>    _[3]=x*gen(1)-y*gen(2)
    ==>    _[4]=x*gen(3)-y*gen(4)
    ==> [2]:
    ==>    _[1]=0
    ==> [3]:
    ==>    _[1]=yw*gen(1)
    ==>    _[2]=xw*gen(1)
    ==>    _[3]=yz*gen(1)
    ==>    _[4]=xz*gen(1)
    ring S = 0,(x,y,z,t),Wp(3,4,5,1);
    ideal I = x-t3,y-t4,z-t5;
    ideal J = eliminate(I,t);
    ring T = 0,(x,y,z),Wp(3,4,5);
    ideal p = imap(S,J);
    ideal p2 = p^2;
    canonMap(p2);
    ==> [1]:
    ==>    _[1]=x5*gen(1)-3x2yz*gen(1)+xy3*gen(1)+z3*gen(1)
    ==>    _[2]=x2z2*gen(1)-2xy2z*gen(1)+y4*gen(1)
    ==>    _[3]=x4z*gen(1)-x3y2*gen(1)-xyz2*gen(1)+y3z*gen(1)
    ==>    _[4]=x3yz*gen(1)-x2y3*gen(1)-xz3*gen(1)+y2z2*gen(1)
    ==>    _[5]=x4y2*gen(1)-4xy3z*gen(1)+2y5*gen(1)+z4*gen(1)
    ==> [2]:
    ==>    _[1]=x*gen(1)
    ==>    _[2]=y*gen(1)
    ==>    _[3]=z*gen(1)
    ==> [3]:
    ==>    _[1]=0

User manual for Singular version 4-0-3, 2016, generated by texi2html.