Description
The graded reverse lexicographic order is defined by: $x^A > x^B$ if either $degree(x^A) > degree(x^B)$ or $degree(x^A) = degree(x^B)$ and the LAST nonzero entry of the vector of integers $AB$ is NEGATIVE.
This is the default order in Macaulay2, in large part because it is often the most efficient order for use with GrÃ¶bner bases. By giving GRevLex a list of integers, one may change the definition of the order: $degree(x^A)$ is the dot product of $A$ with the argument of GRevLex.
i1 : R = QQ[a..d];

i2 : a^3 + b^2 + b*c
3 2
o2 = a + b + b*c
o2 : R

i3 : S = QQ[a..d, MonomialOrder => GRevLex => {1,2,3,4}];

i4 : a^3 + b^2 + b*c
2 3
o4 = b*c + b + a
o4 : S

The largest possible exponent of variables in the
GRevLex order is 2^311. For efficiency reasons, it is sometimes useful to limit the size of monomials (this often makes computations more efficient).Use
MonomialSize => 16, which allows maximal exponent 2^151, or
MonomialSize => 8, which allows maximal exponent 2^71.
i5 : B1 = QQ[a..d,MonomialSize=>16,MonomialOrder=>GRevLex];

i6 : B = QQ[a..d,MonomialSize=>16];

i7 : a^(2^151)
32767
o7 = a
o7 : B

i8 : C = QQ[a..d,MonomialSize=>8,MonomialOrder=>GRevLex];

i9 : try a^(2^151) else "failed"
o9 = failed

i10 : a^(2^71)
127
o10 = a
o10 : C
