# Lexicographical order

In mathematics, the **lexicographic** or **lexicographical order** (also known as **lexical order**, **dictionary order**, **alphabetical order** or **lexicographic(al) product**) is a generalization of the way words are alphabetically ordered based on the alphabetical order of their component letters. This generalization consists primarily in defining a total order over the sequences (often called strings in computer science) of elements of a finite totally ordered set, often called an alphabet.

There are several variants and generalizations of the lexicographical ordering. One variant widely used in combinatorics orders subsets of a given finite set by assigning a total order to the finite set, and converting subsets into increasing sequences, to which the lexicographical order is applied. Another generalization defines an order on a Cartesian product of partially ordered sets; this order is a total order if and only if the factors of the Cartesian product are totally ordered.

## Motivation and definition

The word *lexicographic* is derived from lexicon, the set of words that are used in some language and appear in dictionaries and encyclopedias. The lexicographic order has thus been introduced for sorting the entries of dictionaries and encyclopedias. This has been formalized in the following way.

Consider a finite set *A*, often called alphabet, which is totally ordered. In dictionaries, this is the common alphabet, ordered by the alphabetical order. In book indexes, the alphabet is generally extended to all alphanumeric characters; it is the object of a specific convention whether a digit is considered as smaller or larger than a letter. The lexicographic order is a total order on the sequences of elements of *A*, often called words on *A*, which is defined as follows.

Given two different sequences of the same length, *a*_{1}*a*_{2}...*a*_{k} and *b*_{1}*b*_{2}...*b*_{k}, the first one is smaller than the second one for the lexicographical order, if *a _{i}*<

*b*(for the order of

_{i}*A*), for the first

*i*where

*a*and

_{i}*b*differ.

_{i}To compare sequences of different lengths, the shorter sequence is usually padded at the end with enough "blanks" (a special symbol that is treated as smaller than every element of *A*). This way of comparing sequences of different lengths is always used in dictionaries. However, in combinatorics, another convention is frequently used, whereby a shorter sequence is always smaller than a longer sequence. This variant of the lexicographical order is sometimes called *shortlex order*.

In dictionary order, the word "Thomas" appears before "Thompson" because the letter 'a' comes before the letter 'p' in the alphabet. The 5th letter is the first that is different in the two words; the first four letters are "Thom" in both. Because it is the first difference, the 5th letter is the most significant difference for the alphabetical ordering.

An important property of the lexicographical order on words of a fixed length on a finite alphabet is that it is a well-order; that is, every decreasing sequence of words is finite.[1][2]

## Numeral systems and dates

The lexicographical order is used not only in dictionaries, but also commonly for numbers and dates.

One of the drawbacks of the Roman numeral system is that it is not always immediately obvious which of two numbers is the smaller. On the other hand, with the positional notation of the Hindu–Arabic numeral system, comparing numbers is easy, because the natural order on nonnegative integers is the same as the variant shortlex of the lexicographic order. In fact, with positional notation, a nonnegative integer is represented by a sequence of numerical digits, and an integer is larger than another one if either it has more digits (ignoring leading zeroes) or the number of digits is the same and the first digit which differs is larger.

For real numbers written in decimal notation, a slightly different variant of the lexicographical order is used: the parts on the left of the decimal point are compared as before; if they are equal, the parts at the right of the decimal point are compared with the lexicographical order.

When negative numbers are also considered, one has to reverse the order for comparing negative numbers. This is not usually a problem for humans, but it may be for computers (testing the sign takes some time). This is one of the reasons for adopting two's complement representation for representing signed integers in computers.

Another example of a non-dictionary use of lexicographical ordering appears in the ISO 8601 standard for dates, which expresses a date as YYYY-MM-DD. This formatting scheme has the advantage that the lexicographical order on sequences of characters that represent dates coincides with the chronological order: an earlier date is smaller in the lexicographical order than a later date. This date ordering makes computerized sorting of dates easier by avoiding the need for a separate sorting algorithm.

## Monoid of words

The *monoid of words* over an alphabet *A* is the free monoid over *A*. That is, the elements of the monoid are the finite sequences (words) of elements of *A* (including the empty sequence, of length 0), and the operation (multiplication) is the concatenation of words. A word *u* is a prefix of another word *v* if there exists a word *w* such that *v* = *uw*.

With this terminology, the above definition of the lexicographical order becomes more concise: Given a partially or totally ordered set *A*, and two words *a* and *b* over *A*, then one has *a* < *b* for the lexicographical order, if

- either
*a*is a prefix of*b* - or there exists words
*u*,*v*,*w*(possibly empty) and elements*x*and*y*of*A*such that

*x*<*y**a*=*uxv**b*=*uyw*

If < is a total order on *A*, then so is the lexicographic order on the words of *A*. However, in general this is not a well-order, even if the alphabet *A* is well-ordered. For instance, if *A* = {*a*, *b*}, the language {*a*^{n}*b* | *n* ≥ 0} has no least element in the lexicographical order: ... < *aab* < *ab* < *b*.

Since many applications require well orders, a variant of the lexicographical orders is often used. This well-order, sometimes called *shortlex* or *quasi-lexicographical order*, consists in considering first the lengths of the words (if length(*a*) < length(*b*), then *a* < *b*), and, if the lengths are equal, using the lexicographical order. If the order on *A* is a well-order, the same is true for the shortlex order.[2][3]

## Cartesian products

The lexicographical order defines an order on a Cartesian product of ordered sets, which is a total order when all these sets are themselves totally ordered. An element of a Cartesian product *E*_{1}× ... ×*E*_{n} is a sequence whose *i*th element belongs to *E*_{i} for every *i*. As evaluating the lexicographical order of sequences compares only elements which have the same rank in the sequences, the lexicographical order extends to Cartesian products of ordered sets.

Specifically, given two partially ordered sets *A* and *B*, the lexicographical order on the Cartesian product *A* × *B* is defined as

- (
*a*,*b*) ≤ (*a*′,*b*′) if and only if*a*<*a*′ or (*a*=*a*′ and*b*≤*b*′).

The result is a partial order. If *A* and *B* are each totally ordered, then the result is a total order as well. The lexicographical order of two totally ordered sets is thus a linear extension of their product order.

One can define similarly the lexicographic order on the Cartesian product of an infinite family of ordered sets, if the family is indexed by the nonnegative integers, or more generally by a well-ordered set. This generalized lexicographical order is a total order if each factor set is totally ordered.

Unlike the finite case, an infinite product of well-orders is not necessarily well-ordered by the lexicographical order. For instance, the set of countably infinite binary sequences (by definition, the set of functions from non-negative integers to {0, 1}, also known as the Cantor space {0, 1}^{ω}) is not well-ordered; the subset of sequences that have precisely one 1 (i.e. { 100000..., 010000..., 001000..., ... }) does not have a least element under the lexicographical order induced by 0 < 1, because 100000... > 010000... > 001000... > ... is an infinite descending chain.[1] Similarly, the infinite lexicographic product is not Noetherian either because 011111... < 101111... < 110111 ... < ... is an infinite ascending chain.

## Functions over a well-ordered set

The functions from a well-ordered set *X* to a totally ordered set *Y* may be identified with sequences indexed by *X* of elements of *Y*. They can thus be ordered by the lexicographical order, and for two such functions *f* and *g*, the lexicographical order is thus determined by their values for the smallest *x* such that *f*(*x*) ≠ *g*(*x*).

If *Y* is also well-ordered and *X* is finite, then the resulting order is a well-order. As shown above, if *X* is infinite this is not the case.

## Finite subsets

In combinatorics, one has often to enumerate, and therefore to order the finite subsets of a given set *S*. For this, one usually chooses an order on *S*. Then, sorting a subset of *S* is equivalent to convert it into an increasing sequence. The lexicographic order on the resulting sequences induces thus an order on the subsets, which is also called the *lexicographical order*.

In this context, one generally prefer to sort first the subsets by cardinality, such as in the shortlex order. Therefore, in the following, we will consider only orders on subsets of fixed cardinal.

For example, using the natural order of the integers, the lexicographical ordering on the subsets of three elements of *S* = {1, 2, 3, 4, 5, 6} is

- 123 < 124 < 125 < 126 < 134 < 135 < 136 < 145 < 146 < 156 <
- 234 < 235 < 236 < 245 < 246 < 256 < 345 < 346 < 356 < 456.

For ordering finite subsets of a given cardinality of the natural numbers, the *colexicographical* order (see below) is often more convenient, because all initial segments are finite, and thus the colexicographical order defines an order isomorphism between the natural numbers and the set of sets of *n* natural numbers. This is not the case for the lexicographical order, as, with the lexicographical order, we have, for example, 12*n* < 134 for every *n* > 2.

## Group orders of

Let
be the free Abelian group of rank *n*, whose elements are sequences of *n* integers, and operation is the addition. A group order on
is a total order, which is compatible with addition, that is

The lexicographical ordering is a group order on

The lexicographical ordering may also be used to characterize all group orders on
[4][5] In fact, *n* linear forms with real coefficients, define a map from
into
which is injective if the forms are linearly independent (it may be also injective if the forms are dependent, see below). The lexicographic order on the image of this map induces a group order on
Robbiano's theorem is that every group order may be obtained in this way.

More precisely, given a group order on
there exist an integer *s* ≤ *n* and *s* linear forms with real coefficients, such that the induced map
from
into
has the following properties;

- is injective;
- the resulting isomorphism from to the image of is an order isomorphism when the image is equipped with the lexicographical order on

## Colexicographic order

The **colexicographic** or **colex order** is a variant of the lexicographical order that is obtained by reading finite sequences from the right to the left instead of reading them from the left to the right. More precisely, whereas the lexicographical order between two sequences is defined by

*a*_{1}*a*_{2}...*a*_{k}<^{lex}*b*_{1}*b*_{2}...*b*_{k}if*a*<_{i}*b*for the first_{i}*i*where*a*and_{i}*b*differ,_{i}

the colexicographical order is defined by

*a*_{1}*a*_{2}...*a*_{k}<^{colex}*b*_{1}*b*_{2}...*b*_{k}if*a*<_{i}*b*for the last_{i}*i*where*a*and_{i}*b*differ_{i}

In general, the difference between the colexicographical order and the lexicographical order is not very significant. However, when considering increasing sequences, typically for coding subsets, the two orders differ significantly.

For example, for ordering the increasing sequences (or the sets) of two natural integers, the lexicographical order begins by

- 12 < 13 < 14 < 15 < ... < 23 < 24 < 25 < ... < 34 < 35 < ... < 45 < ...,

and the colexicographic order begins by

- 12 < 13 < 23 < 14 < 24 < 34 < 15 < 25 < 35 < 45 < ....

The main property of the colexicographical order for increasing sequences of a given length is that every initial segment is finite. In other words, the colexicographical order for increasing sequences of a given length induces an order isomorphism with the natural numbers, and allows enumerating these sequences. This is frequently used in combinatorics, for example in the proof of the Kruskal-Katona theorem.

## Monomials

When considering polynomials, the order of the terms does not matter in general, as the addition is commutative. However, some algorithms, such as polynomial long division, require the terms to be in a specific order. Many of the main algorithms for multivariate polynomials are related with Gröbner bases, concept that requires the choice of a monomial order, that is a total order, which is compatible with the monoid structure of the monomials. Here "compatible" means that , if the monoid operation is denoted multiplicatively. This compatibility implies that the product of a polynomial by a monomial does not change the order of the terms. For Gröbner bases, a further condition must be satisfied, namely that every non constant monomial is greater than the monomial 1. However this condition is not needed for other related algorithms, such as the algorithms for the computation of the tangent cone.

As Gröbner bases are defined for polynomials in a fixed number of variables, it is common to identify monomials (for example
) with their exponent vectors (here [1, 3, 0, 1, 2]). If *n* is the number of variables, every monomial order is thus the restriction to
of a monomial order of
(see above § Group orders of
, for a classification).

One of these admissible orders is the lexicographical order. It is, historically, the first to have been used for defining Gröbner bases, and is sometimes called *pure lexicographical order* for distinguishing it from other orders that are also related to a lexicographical order.

Another one consists in comparing first the total degrees, and then resolving the conflicts by using the lexicographical order. This order is not widely used, as either the lexicographical order or the degree reverse lexicographical order have generally better properties.

The *degree reverse lexicographical order* consists also in comparing first the total degrees, and, in case of equality of the total degrees, using the reverse of the colexicographical order. That is, given two exponent vectors, one has

if either

or

For this ordering, the monomials of degree one have the same order as the corresponding indeterminates (this would not be the case if the reverse lexicographical order would be used). For comparing monomials in two variables of the same total degree, this order is the same as the lexicographic order. This is not the case with more variables. For example, for exponent vectors of monomials of degree two in three variables, one has for the degree reverse lexicographic order:

For the lexicographical order, the same exponent vectors are ordered as

A useful property of the degree reverse lexicographical order is that a homogeneous polynomial is a multiple of the least indeterminate if and only if its leading monomial (its greater monomial) is a multiple of this least indeterminate.

## See also

- Collation
- Kleene–Brouwer order
- Lexicographic preferences
- Orders on the Cartesian product of totally ordered sets
- Lexicographic order on
**R**^{n} - Lexicographic order topology on the unit square
- Lexicographic ordering in tensor abstract index notation
- Long line (topology)
- Lyndon word
- Lexicographically minimal string rotation
Lexicographic and colexicographic order - Star product, a different way of combining partial orders

## References

- Egbert Harzheim (2006).
*Ordered Sets*. Springer. pp. 88–89. ISBN 978-0-387-24222-4. - Franz Baader; Tobias Nipkow (1999).
*Term Rewriting and All That*. Cambridge University Press. pp. 18–19. ISBN 978-0-521-77920-3. - Calude, Cristian (1994).
*Information and randomness. An algorithmic perspective*. EATCS Monographs on Theoretical Computer Science. Springer-Verlag. p. 1. ISBN 3-540-57456-5. Zbl 0922.68073. - Robbiano, L. (1985). Term orderings on the polynomial ring. In
*European Conference on Computer Algebra*(pp. 513-517). Springer Berlin Heidelberg. - Weispfenning, Volker (May 1987), "Admissible Orders and Linear Forms",
*SIGSAM Bulletin*, New York, NY, USA: ACM,**21**(2): 16–18, doi:10.1145/24554.24557.