# Singular

#### D.5.10.1 truncate

Procedure from library `sheafcoh.lib` (see sheafcoh_lib).

Usage:
truncate(M,d); M module, d int

Assume:
`M` is graded, and it comes assigned with an admissible degree vector as an attribute

Return:
module

Note:
Output is a presentation matrix for the truncation of coker(M) at degree d.

Example:
 ```LIB "sheafcoh.lib"; ring R=0,(x,y,z),dp; module M=maxideal(3); homog(M); ==> 1 // compute presentation matrix for truncated module (R/^3)_(>=2) module M2=truncate(M,2); print(M2); ==> z,0,0,0,0,0,y, 0, 0,0, 0,0,x, 0, 0, 0, 0, 0, ==> 0,z,0,0,0,0,-z,y, 0,0, 0,0,0, x, 0, 0, 0, 0, ==> 0,0,z,0,0,0,0, -z,y,0, 0,0,0, 0, x, 0, 0, 0, ==> 0,0,0,z,0,0,0, 0, 0,y, 0,0,-z,0, 0, x, 0, 0, ==> 0,0,0,0,z,0,0, 0, 0,-z,y,0,0, -z,-y,0, x, 0, ==> 0,0,0,0,0,z,0, 0, 0,0, 0,y,0, 0, 0, -z,-y,x dimGradedPart(M2,1); ==> 0 dimGradedPart(M2,2); ==> 6 // this should coincide with: dimGradedPart(M,2); ==> 6 // shift grading by 1: intvec v=1; attrib(M,"isHomog",v); M2=truncate(M,2); print(M2); ==> 0, -y,-z,z2,0, 0, yz,0, xz,y2,0, xy,x2, ==> -z,x, 0, 0, z2,0, 0, yz,0, 0, y2,0, 0, ==> y, 0, x, 0, 0, z2,0, 0, 0, 0, 0, 0, 0 dimGradedPart(M2,3); ==> 6 ```