- Usage:
`S = minimalPresentation R``S = prune R`

- Function: minimalPresentation
- Inputs:
`R`, a ring, a quotient ring

- Outputs:
`S`, a ring, a quotient ring, minimally presented if`R`is homogeneous, isomorphic to`R`

- Consequences:
- the isomorphism from
`R`to`S`is stored as`R.minimalPresentationMap`and the inverse of this map is stored as`R.minimalPresentationMapInv`

- the isomorphism from

The computation is accomplished by considering the relations of `R`. If a variable occurs as a term of a relation of `R` and in no other terms of the same polynomial, then the variable is replaced by the remaining terms and removed from the ring. A minimal generating set for the resulting defining ideal is then computed and the new quotient ring is returned. If `R` is not homogeneous, then an attempt is made to improve the presentation.

If the Exclude option is present, then those variables with the given indices are not simplified away (remember that ring variable indices start at 0).

i1 : R = ZZ/101[x,y,z,u,w]/ideal(x-x^2-y,z+x*y,w^2-u^2); |

i2 : minimalPresentation(R) ZZ ---[x, u, w] 101 o2 = ------------ 2 2 - u + w o2 : QuotientRing |

i3 : R.minimalPresentationMap ZZ ---[x, u, w] 101 2 3 2 o3 = map(------------,R,{x, - x + x, x - x , u, w}) 2 2 - u + w ZZ ---[x, u, w] 101 o3 : RingMap ------------ <--- R 2 2 - u + w |

i4 : R.minimalPresentationMapInv ZZ ---[x, u, w] 101 o4 = map(R,------------,{x, u, w}) 2 2 - u + w ZZ ---[x, u, w] 101 o4 : RingMap R <--- ------------ 2 2 - u + w |

i5 : R = ZZ/101[x,y,z,u,w]/ideal(x-x^2-y,z+x*y,w^2-u^2); |

i6 : minimalPresentation(R, Exclude=>{1}) ZZ ---[x, y, u, w] 101 o6 = ------------------------- 2 2 2 (- x + x - y, - u + w ) o6 : QuotientRing |

- minimalPresentation(Ideal) -- compute a minimal presentation of the quotient ring defined by an ideal
- prune(Ideal) -- compute a minimal presentation of the quotient ring defined by an ideal
`trim(Ring)`(missing documentation)`trim(QuotientRing)`(missing documentation)