We use
Ring ^ ZZ to make a new free module.
i1 : R = ZZ/101[x,y,z];
|
i2 : M = R^4
4
o2 = R
o2 : R-module, free
|
Such modules are often made implicitly when constructing matrices.
i3 : m = matrix{{x,y,z},{y,z,0}}
o3 = | x y z |
| y z 0 |
2 3
o3 : Matrix R <--- R
|
i4 : target m == R^2
o4 = true
|
When a ring is graded, so are its free modules. By default, the degrees of the basis elements are taken to be 0.
i5 : degrees M
o5 = {{0}, {0}, {0}, {0}}
o5 : List
|
We can use
Ring ^ List to specify other degrees, or more precisely, their additive inverses.
i6 : F = R^{1,4:2,3,3:4}
9
o6 = R
o6 : R-module, free, degrees {-1, 4:-2, -3, 3:-4}
|
i7 : degrees F
o7 = {{-1}, {-2}, {-2}, {-2}, {-2}, {-3}, {-4}, {-4}, {-4}}
o7 : List
|
Notice the use of
: above to indicate repetition.
If the variables of the ring have multi-degrees represented by lists (vectors) of integers, then the degrees of a free module must also be multi-degrees.
i8 : S = ZZ[a,b,c, Degrees=>{{1,2},{2,0},{3,3}}]
o8 = S
o8 : PolynomialRing
|
i9 : N = S ^ {{-1,-1},{-4,4},{0,0}}
3
o9 = S
o9 : S-module, free, degrees {{1, 1}, {4, -4}, {0, 0}}
|
i10 : degree N_0
o10 = {1, 1}
o10 : List
|
i11 : degree (a*b*N_1)
o11 = {7, -2}
o11 : List
|