# findWeightConstraints -- returns a matrix of weight constraints

## Synopsis

• Usage:
constraints = findWeightConstraints(M, L)
• Inputs:
• M, an ideal, M should be a monomial ideal
• L, a list, a list of lists of tail monomials
• Outputs:
• , with the constraints on a weight vector for $M$ to be the lead monomial considering the given tail monomials in $L$. The number of rows of the matrix is the number of variables in the ring of $M$, The number of columms is the total size of $L$

## Description

 i1 : R = ZZ/32003[a,b,c, d]; i2 : M = ideal (a^2, a*b, b^2); o2 : Ideal of R i3 : L = smallerMonomials M; i4 : mat = findWeightConstraints(M,L) o4 = | 1 2 2 1 2 2 2 0 1 1 0 1 1 1 -1 0 0 -1 0 0 0 | | 0 -1 0 0 -1 0 0 1 0 1 1 0 1 1 2 1 2 2 1 2 2 | | -1 -1 -2 0 0 -1 0 -1 -1 -2 0 0 -1 0 -1 -1 -2 0 0 -1 0 | | 0 0 0 -1 -1 -1 -2 0 0 0 -1 -1 -1 -2 0 0 0 -1 -1 -1 -2 | 4 21 o4 : Matrix ZZ <--- ZZ i5 : needsPackage "Polyhedra" o5 = Polyhedra o5 : Package i6 : dualCone posHull (-mat) o6 = Cone{...2...} o6 : Cone i7 : rays oo o7 = | 0 0 0 0 | | 0 0 -1 1 | | 1 0 1 2 | | 0 1 1 2 | 4 4 o7 : Matrix ZZ <--- ZZ i8 : posHull mat -- seems wrong? o8 = Cone{...1...} o8 : Cone i9 : coneFromHData transpose mat o9 = Cone{...1...} o9 : Cone i10 : rays mat o10 = 0 1 o10 : Matrix ZZ <--- 0 i11 : findWeightVector(M,L) o11 = ({2, 2, 1, 1}, {1, 1, 2, 1, 1, 2, 2, 1, 1, 2, 1, 1, 2, 2, 1, 1, 2, 1, ----------------------------------------------------------------------- 1, 2, 2}) o11 : Sequence

TO BE FINISHED!! Note that the first generator listed for $M$ is $a^2$, and the first corresponding standard monomial is $a*c$. The difference of these two monomials exponent vectors is $(1,0,-1,0)$. This vector dotted with the weight vector $(2,2,1,1)$ gives the value $1$, which is the first value in the second list.

Note that the desired term ordering, and hence weight vector, may not exist. In this case, null is returned.

 i12 : M = ideal"ab" o12 = ideal(a*b) o12 : Ideal of R i13 : L1 = standardMonomials M 2 2 2 2 o13 = {{a , b , a*c, b*c, c , a*d, b*d, c*d, d }} o13 : List i14 : findWeightVector(M,L1)

This command is used in the groebnerFamily routine.