# minimalPresentation(Module) -- minimal presentation of a module

## Synopsis

• Function: minimalPresentation
• Usage:
N = minimalPresentation M
• Inputs:
• M,
• Optional inputs:
• Exclude => ..., default value {}, compute a minimal presentation of a quotient ring
• Outputs:
• N, , isomorphic to M
• Consequences:
• The isomorphism from N to M as g = N.cache.pruningMap unless M.cache.pruningMap already exists, in which case N is the same as M. The inverse isomorphism can be obtained as g^-1

## Description

If the Module M is graded then the module N is a minimal presentation of M. If not, then an attempt is made to improve the presentation of M. An example follows.
 i1 : R = ZZ/32003[a..d]; i2 : M = coker matrix {{a,1,b},{c,3,b+d}} o2 = cokernel | a 1 b | | c 3 b+d | 2 o2 : R-module, quotient of R i3 : N = minimalPresentation M o3 = cokernel | b+16001d a-10668c | 1 o3 : R-module, quotient of R i4 : peek N.cache o4 = CacheTable{cache => MutableHashTable{}} pruningMap => | -10668 | | 0 | i5 : g = N.cache.pruningMap o5 = | -10668 | | 0 | o5 : Matrix i6 : g^-1 o6 = | -3 1 | o6 : Matrix
This function also works when M is , , or , by acting on the modules and maps within it.
 i7 : I = ideal(a^2,b^3,c^4,d^7) 2 3 4 7 o7 = ideal (a , b , c , d ) o7 : Ideal of R i8 : X = Proj R o8 = X o8 : ProjectiveVariety i9 : J = (module I)~ o9 = image | a2 b3 c4 d7 | 1 o9 : coherent sheaf on X, subsheaf of OO X i10 : minimalPresentation J 1 o10 = OO X o10 : coherent sheaf on X