Macaulay2 » Documentation
Packages » Macaulay2Doc :: trim
next | previous | forward | backward | up | index | toc

trim -- minimize generators and relations

Synopsis

Description

There are two ways to present an $R$-module $M$. One way is to take a free module $F$ (whose generators are called the generators) and form the quotient $M = F/H$ by a submodule $H\subset F$ (whose generators are called the relations).

Another way is take a free module $F$, a submodule $G\subset F$ (whose generators are called the generators), a submodule $H\subset F$ (whose generators are called the relations), and form the subquotient module $M = (G+H)/H$, obtained also as the image of $G$ in $F/H$.

The purpose of trim is to minimize presentations of the latter type. This applies also to rings and ideals.

i1 : R = ZZ/101[x,y,z,u,w]

o1 = R

o1 : PolynomialRing
i2 : I = ideal(x^2-x^2-y^2, z^2+x*y, w^2-u^2, x^2-y^2)

              2         2     2    2   2    2
o2 = ideal (-y , x*y + z , - u  + w , x  - y )

o2 : Ideal of R
i3 : trim I

             2    2   2         2   2
o3 = ideal (u  - w , y , x*y + z , x )

o3 : Ideal of R
i4 : trim (R^1/I)

o4 = cokernel | u2-w2 y2 xy+z2 x2 |

                            1
o4 : R-module, quotient of R
i5 : R = ZZ/32003[a..d]

o5 = R

o5 : PolynomialRing
i6 : M = coker matrix {{a,1,b},{c,3,b+d}}

o6 = cokernel | a 1 b   |
              | c 3 b+d |

                            2
o6 : R-module, quotient of R
i7 : trim M

o7 = subquotient (| 1 |, | 10668 b+16001d a-10668c |)
                  | 0 |  | 1     0        0        |

                               2
o7 : R-module, subquotient of R
i8 : prune M

o8 = cokernel | b+16001d a-10668c |

                            1
o8 : R-module, quotient of R

See also

Ways to use trim :

For the programmer

The object trim is a method function with options.