Given a matrix
m : F --> G, the Schreyer order on the monomials of F is given by: If
a ei and
b ej are monomials of
F, i.e.
a and
b are monomials in the ring, and
ei and
ej are unit column vectors of
F, then
a ei > b ej iff either
leadterm(m)(a ei) > leadterm(m)(b ej) or they are scalar multiples of the same monomial in
G, and
i > j.
If the base ring is a quotient ring, we think of
leadterm(m) as a matrix over the ambient polynomial ring for the purpose of this definition.
In the example below, the source of
f is endowed with a Schreyer order.
i1 : R = ZZ/101[a..d];
|
i2 : m = matrix{{a,b,c,d}};
1 4
o2 : Matrix R <--- R
|
i3 : f = schreyerOrder m
o3 = | a b c d |
1 4
o3 : Matrix R <--- R
|
i4 : g = syz f
o4 = {1} | 0 0 0 -b -c -d |
{1} | 0 -c -d a 0 0 |
{1} | -d b 0 0 a 0 |
{1} | c 0 b 0 0 a |
4 6
o4 : Matrix R <--- R
|
i5 : leadTerm g
o5 = {1} | 0 0 0 0 0 0 |
{1} | 0 0 0 a 0 0 |
{1} | 0 b 0 0 a 0 |
{1} | c 0 b 0 0 a |
4 6
o5 : Matrix R <--- R
|
i6 : hf = map(source f, 1, {{d},{c},{b},{a}})
o6 = {1} | d |
{1} | c |
{1} | b |
{1} | a |
4 1
o6 : Matrix R <--- R
|
i7 : hm = map(source m, 1, {{d},{c},{b},{a}})
o7 = {1} | d |
{1} | c |
{1} | b |
{1} | a |
4 1
o7 : Matrix R <--- R
|
i8 : leadTerm hf
o8 = {1} | 0 |
{1} | 0 |
{1} | b |
{1} | 0 |
4 1
o8 : Matrix R <--- R
|
i9 : leadTerm hm
o9 = {1} | 0 |
{1} | 0 |
{1} | 0 |
{1} | a |
4 1
o9 : Matrix R <--- R
|
Use
schreyerOrder(Module) to see if a free module is endowed with a Schreyer order.
i10 : schreyerOrder source m
o10 = 0
4
o10 : Matrix 0 <--- R
|
i11 : schreyerOrder source f
o11 = | a 0 0 0 |
| 0 b 0 0 |
| 0 0 c 0 |
| 0 0 0 d |
4 4
o11 : Matrix R <--- R
|