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.