Used with Strict=>false, the default, checkDegrees(N,M) returns (true, deg) if degrees M and degrees N are equal up to a shift d. With Strict => true the degree lists must be equal.
i1 : S = ZZ/101[a,b,Degrees => {{1,0},{0,1}}]
o1 = S
o1 : PolynomialRing
|
i2 : B = S^{{1,1}}
1
o2 = S
o2 : S-module, free, degrees {{-1, -1}}
|
i3 : B' = S^{{3,3}}**B
1
o3 = S
o3 : S-module, free, degrees {{-4, -4}}
|
i4 : d = checkDegrees(B',B)
o4 = (true, {-3, -3})
o4 : Sequence
|
i5 : degrees (S^{d_1}**B') == degrees B
o5 = true
|
i6 : degrees (B') == degrees (S^{-d_1}**B)
o6 = true
|
i7 : checkDegrees(B',B,Strict=>true)
o7 = (false, )
o7 : Sequence
|