# schreyerOrder(Matrix) -- create a matrix with the same entries whose source free module has a Schreyer monomial order

## Synopsis

• Function: schreyerOrder
• Usage:
schreyerOrder m
• Inputs:
• m, , G <-- F between free modules
• Outputs:
• , the same matrix as m, except that its source free module is endowed with a Schreyer, or induced, monomial order

## Description

Given a matrix $m : F --> G$, the Schreyer order on the monomials of F is given by: If $a e_i$ and $b e_j$ are monomials of $F$, i.e. $a$ and $b$ are monomials in the ring, and $e_i$ and $e_j$ are unit column vectors of $F$, then $a e_i > b e_j$ if and only if either $leadterm(m)(a e_i) > leadterm(m)(b e_j)$ 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} | -b 0 -c 0 0 -d | {1} | a -c 0 0 -d 0 | {1} | 0 b a -d 0 0 | {1} | 0 0 0 c b a | 4 6 o4 : Matrix R <--- R i5 : leadTerm g o5 = {1} | 0 0 0 0 0 0 | {1} | a 0 0 0 0 0 | {1} | 0 b a 0 0 0 | {1} | 0 0 0 c b 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