#### D.4.11.15 hom_kernel

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

Usage:
  hom_kernel(A,M,N);

Compute:
  Let M and N be submodules of R^m and R^n, presenting M'=R^m/M, N'=R^n/N (R=basering), and let A:R^m-->R^n be a matrix inducing a map A':M'-->N'. Then ker(A,M,N); computes a presentation K of ker(A') as in the commutative diagram:

                ker(A') --->  M' --A'--> N'
                   |^         |^         |^
                   |          |          |
                   R^r  ---> R^m --A--> R^n
                   |^         |^         |^
                   |K         |M         |N
                   |          |          |
                   R^s  ---> R^p -----> R^q

Return:
  module K, a presentation of ker(A':coker(M)->coker(N)).

Example:

    LIB "homolog.lib";
    ring r;
    module N=[2x,x],[0,y];
    module M=maxideal(1)*freemodule(2);
    matrix A[2][3]=2x,0,x,y,z2,y;
    module K=hom_kernel(A,M,N);
    // dimension of kernel:
    dim(std(K));
    ==> 3
    // vector space dimension of kernel:
    vdim(std(K));
    ==> -1
    print(K);
    ==> 0,0,0,
    ==> 1,0,0,
    ==> 0,1,0,
    ==> 0,0,1

User manual for Singular version 4.4.1, 2025, generated by texi2html.