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.
The object findWeightConstraints is a method function.