next | previous | forward | backward | up | top | index | toc | Macaulay2 website
Depth :: systemOfParameters

systemOfParameters -- finds a relatively sparse homogeneous system of parameters of minimal degree in an ideal



First sorts the generators of trim ideal gens gb I by ascending degree, ascending monomial order. Looks first for as much of a system of parameters among the generators as possible, then tries up to Attempts sparse random combinations of given Density. The default value of Density is (1+codim I)/(numgens trim I).

If the option Seed is not null then it should be an ideal of ring I generated by a part of a sop in I, and it is used as the beginning of the system of parameters constructed.

If no sop is found after Attempts tries, and the Density is < 1 then the Density is increased by .1, and 20 more attempts are made. If the Density is already == 1, then the program stops with an error.

i1 : S = ZZ/101[a,b,c,d]

o1 = S

o1 : PolynomialRing
i2 : I = ideal"ab,bc,cd,da"

o2 = ideal (a*b, b*c, c*d, a*d)

o2 : Ideal of S
i3 : codim I

o3 = 2
i4 : setRandomSeed 0

o4 = 0
i5 : inhomogeneousSystemOfParameters I

o5 = | bc+cd bc+ad |

             1       2
o5 : Matrix S  <--- S
i6 : systemOfParameters I

o6 = ideal (a*b, c*d)

o6 : Ideal of S
i7 : systemOfParameters(I, Density => .1, Attempts => 1000, Verbose => true)
Attempts: 1000 Density: .1 Seed: null

o7 = ideal (a*b, c*d)

o7 : Ideal of S


Could be rewritten to take into account the codimensions of the sub ideals generated by the elements of degree up to d for each d.

The routine tries to find generators among linear combinations, with field coefficients, of generators of I; but over very small fields there may not be any! For example there is no linear form that is a parameter in the 1-dimensional ring R = ZZ/2[x,y]/intersect(ideal"x", ideal"x+y", ideal"y")

See also

Ways to use systemOfParameters :

For the programmer

The object systemOfParameters is a method function with options.