# Difference between revisions of "ApCoCoA-1:NC.SetOrdering"

Line 15: | Line 15: | ||

<itemize> | <itemize> | ||

<item><quotes>LLEX</quotes>: for two words <tt>W1, W2</tt> in <tt><X></tt>, we say <tt>W1>_{LLEX}W2</tt> if <tt>len(W1)>len(W2)</tt>, or <tt>len(W1)=len(W2)</tt> and <tt>W1</tt> is lexicographically larger than <tt>W2</tt>.</item> | <item><quotes>LLEX</quotes>: for two words <tt>W1, W2</tt> in <tt><X></tt>, we say <tt>W1>_{LLEX}W2</tt> if <tt>len(W1)>len(W2)</tt>, or <tt>len(W1)=len(W2)</tt> and <tt>W1</tt> is lexicographically larger than <tt>W2</tt>.</item> | ||

− | <item><quotes>ELIM</quotes>: for two words <tt>W1, W2</tt> in <tt><X></tt>, we say <tt>W1>_{ELIM}W2</tt> if <tt>W1</tt> is lexicographically larger than <tt>W2</tt> by considering <tt>W1, W2</tt> as two terms in the commutative case, or <tt>W1=W2</tt> by considering <tt>W1, W2</tt> as two terms in the commutative case and <tt>W1>_{Lex}W2</tt> (<tt>W1</tt> is left-to-right lexicographically larger than <tt>W2</tt> by considering <tt>W1, W2</tt> as two words in the non-commutative case). Thus, the elimination ordering <quotes>ELIM</quotes> first eliminates the letter <tt>x_{1}</tt>, and then <tt>x_{2}</tt>, and then <tt>x_{3}</tt>, and so on and so forth.</item> | + | <item><quotes>ELIM</quotes>: it first compares the associated commutative terms lexicographically and then breaks ties using the non-commutative lexicographic orderin with respect to <tt>x_{1}>...>x_{n}</tt>. That is, for two words <tt>W1, W2</tt> in <tt><X></tt>, we say <tt>W1>_{ELIM}W2</tt> if <tt>W1</tt> is lexicographically larger than <tt>W2</tt> by considering <tt>W1, W2</tt> as two terms in the commutative case, or <tt>W1=W2</tt> by considering <tt>W1, W2</tt> as two terms in the commutative case and <tt>W1>_{Lex}W2</tt> (<tt>W1</tt> is left-to-right lexicographically larger than <tt>W2</tt> by considering <tt>W1, W2</tt> as two words in the non-commutative case). Thus, the elimination ordering <quotes>ELIM</quotes> first eliminates the letter <tt>x_{1}</tt>, and then <tt>x_{2}</tt>, and then <tt>x_{3}</tt>, and so on and so forth.</item> |

<item><quotes>LRLEX</quotes>: for two words <tt>W1, W2</tt> in <tt><X></tt>, we say <tt>W1>_{LRLEX}W2</tt> if <tt>len(W1)>len(W2)</tt>, or <tt>len(W1)=len(W2)</tt> and <tt>W1</tt> is larger than <tt>W2</tt> by right-to-left lexicographic ordering.</item> | <item><quotes>LRLEX</quotes>: for two words <tt>W1, W2</tt> in <tt><X></tt>, we say <tt>W1>_{LRLEX}W2</tt> if <tt>len(W1)>len(W2)</tt>, or <tt>len(W1)=len(W2)</tt> and <tt>W1</tt> is larger than <tt>W2</tt> by right-to-left lexicographic ordering.</item> | ||

</itemize> | </itemize> |

## Revision as of 13:28, 8 August 2012

## NC.SetOrdering

Set an admissible ordering on `<X>`.

### Syntax

NC.SetOrdering(Ordering:STRING)

### Description

Note that the default ordering is "LLEX" (length-lexicographic ordering).

@param

*Ordering*: a string which indicates an (admissible) ordering. For the time being, the package supports "LLEX" (length-lexicographic ordering), "ELIM" (elimination ordering) and "LRLEX" (length-reverse-lexicographic ordering).

Let `X=x_{1}x_{2}...x_{n}`. We define the (left-to-right) lexicographic ordering "LEX" on `<X>` as follows. For two words `W1, W2` in `<X>`, we say `W1>_{Lex}W2` if we have `W1=W2*W` for some non-empty word `W` in `<X>`, or if we have `W1=W*x_{i}*W3, W2=W*x_{j}*W4` for some words `W,W3,W4` in `<X>` and some letters `x_{i},x_{j}` in `X` such that `i<j`. Thus, we have `x_{1}>_{LEX}x_{2}>_{LEX}...>_{LEX}x_{n}`. Note that "LEX" is not an admissible ordering on `<X>`. We define admissible orderings "LLEX", "ELIM" and "LRLEX" on `<X>` as follows.

"LLEX": for two words

`W1, W2`in`<X>`, we say`W1>_{LLEX}W2`if`len(W1)>len(W2)`, or`len(W1)=len(W2)`and`W1`is lexicographically larger than`W2`."ELIM": it first compares the associated commutative terms lexicographically and then breaks ties using the non-commutative lexicographic orderin with respect to

`x_{1}>...>x_{n}`. That is, for two words`W1, W2`in`<X>`, we say`W1>_{ELIM}W2`if`W1`is lexicographically larger than`W2`by considering`W1, W2`as two terms in the commutative case, or`W1=W2`by considering`W1, W2`as two terms in the commutative case and`W1>_{Lex}W2`(`W1`is left-to-right lexicographically larger than`W2`by considering`W1, W2`as two words in the non-commutative case). Thus, the elimination ordering "ELIM" first eliminates the letter`x_{1}`, and then`x_{2}`, and then`x_{3}`, and so on and so forth."LRLEX": for two words

`W1, W2`in`<X>`, we say`W1>_{LRLEX}W2`if`len(W1)>len(W2)`, or`len(W1)=len(W2)`and`W1`is larger than`W2`by right-to-left lexicographic ordering.

An admissible ordering on is called *length compatible* if `len(W1)>len(W2)` implies `W1` is larger than `W2` for all `W1, W2` in `<X>`. For instance, "LLEX" and "LRLEX" are length compatible while "ELIM" is not.

#### Example

NC.RingEnv(); Coefficient ring : Q Ordering : LLEX ------------------------------- NC.SetOrdering(<quotes>ELIM</quotes>); NC.RingEnv(); Coefficient ring : Q Ordering : ELIM -------------------------------

### See also