The degree i is a multi-degree, represented as a list of integers. If the degree rank is 1, then i may be provided as an integer. The algorithm depends on the Heft, Adjust, and Repair options having been set correctly when the ring was created to ensure that, internally, the first component of the multidegree of each variable is positive.
i1 : R = ZZ/101[a..c];
|
i2 : basis(2, R)
o2 = | a2 ab ac b2 bc c2 |
1 6
o2 : Matrix R <--- R
|
i3 : M = ideal(a,b,c)/ideal(a^2,b^2,c^2)
o3 = subquotient (| a b c |, | a2 b2 c2 |)
1
o3 : R-module, subquotient of R
|
i4 : f = basis(2,M)
o4 = {1} | b c 0 |
{1} | 0 0 c |
{1} | 0 0 0 |
o4 : Matrix
|
Notice that the matrix of
f above is expressed in terms of the generators of
M. The reason is that the module
M is the target of the map
f, and matrices of maps such as
f are always expressed in terms of the generators of the source and target.
i5 : target f
o5 = subquotient (| a b c |, | a2 b2 c2 |)
1
o5 : R-module, subquotient of R
|
The command
super is useful for rewriting
f in terms of the generators of module of which
M is a submodule.
i6 : super f
o6 = | ab ac bc |
o6 : Matrix
|
When a ring is multi-graded, we specify the degree as a list of integers.
i7 : S = ZZ/101[x,y,z,Degrees=>{{1,3},{1,4},{1,-1}}];
|
i8 : basis({7,24}, S)
o8 = | x4y3 |
1 1
o8 : Matrix S <--- S
|
Synopsis
-
- Inputs:
- Outputs:
- a map from a free module to M which sends the basis elements to a basis, over the coefficient field, of M
i9 : R = QQ[x,y,z]/(x^2,y^3,z^5)
o9 = R
o9 : QuotientRing
|
i10 : basis R
o10 = | 1 x xy xy2 xy2z xy2z2 xy2z3 xy2z4 xyz xyz2 xyz3 xyz4 xz xz2 xz3 xz4 y
-----------------------------------------------------------------------
y2 y2z y2z2 y2z3 y2z4 yz yz2 yz3 yz4 z z2 z3 z4 |
1 30
o10 : Matrix R <--- R
|
Synopsis
-
- Inputs:
- Outputs:
- a map from a free module to R which sends the basis elements to a basis, over the ground field, of the part of M spanned by elements of degrees between lo and hi. The degree rank must be 1.
i11 : R = QQ[x,y,z]/(x^3,y^2,z^5);
|
i12 : basis R
o12 = | 1 x x2 x2y x2yz x2yz2 x2yz3 x2yz4 x2z x2z2 x2z3 x2z4 xy xyz xyz2 xyz3
-----------------------------------------------------------------------
xyz4 xz xz2 xz3 xz4 y yz yz2 yz3 yz4 z z2 z3 z4 |
1 30
o12 : Matrix R <--- R
|
i13 : basis(-infinity,4,R)
o13 = | 1 x x2 x2y x2yz x2z x2z2 xy xyz xyz2 xz xz2 xz3 y yz yz2 yz3 z z2 z3
-----------------------------------------------------------------------
z4 |
1 21
o13 : Matrix R <--- R
|
i14 : basis(5,infinity,R)
o14 = | x2yz2 x2yz3 x2yz4 x2z3 x2z4 xyz3 xyz4 xz4 yz4 |
1 9
o14 : Matrix R <--- R
|
i15 : basis(2,4,R)
o15 = | x2 x2y x2yz x2z x2z2 xy xyz xyz2 xz xz2 xz3 yz yz2 yz3 z2 z3 z4 |
1 17
o15 : Matrix R <--- R
|