# minimalPresentation(Ring) -- compute a minimal presentation of a quotient ring

## Synopsis

• Function: minimalPresentation
• Usage:
S = minimalPresentation R
S = prune R
• Inputs:
• R, a ring, a quotient ring
• Optional inputs:
• Exclude => ..., default value {}
• 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

## Description

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.
 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
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).
 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