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

## Synopsis

• Usage:
J = systemOfParameters I
J = systemOfParameters (i,I)
• Inputs:
• I, an ideal, generated by homogeneous elements
• i, an integer,
• Optional inputs:
• Verbose => , default value false
• Attempts => an integer, default value 100
• Density => , default value 0, or QQ or ZZ; will be converted to RR
• Seed => ..., default value null
• Seed => an ideal, default value null
• Outputs:
• J, an ideal, generated by a homogeneous system of parameters of length i contained in I

## Description

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

## Caveat

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