## 5.378. strict_lex2

Origin
Constraint

$\mathrm{𝚜𝚝𝚛𝚒𝚌𝚝}_\mathrm{𝚕𝚎𝚡}\mathtt{2}\left(\mathrm{𝙼𝙰𝚃𝚁𝙸𝚇}\right)$

Type
 $\mathrm{𝚅𝙴𝙲𝚃𝙾𝚁}$ $\mathrm{𝚌𝚘𝚕𝚕𝚎𝚌𝚝𝚒𝚘𝚗}\left(\mathrm{𝚟𝚊𝚛}-\mathrm{𝚍𝚟𝚊𝚛}\right)$
Argument
 $\mathrm{𝙼𝙰𝚃𝚁𝙸𝚇}$ $\mathrm{𝚌𝚘𝚕𝚕𝚎𝚌𝚝𝚒𝚘𝚗}\left(\mathrm{𝚟𝚎𝚌}-\mathrm{𝚅𝙴𝙲𝚃𝙾𝚁}\right)$
Restrictions
 $|\mathrm{𝚅𝙴𝙲𝚃𝙾𝚁}|\ge 1$ $\mathrm{𝚛𝚎𝚚𝚞𝚒𝚛𝚎𝚍}$$\left(\mathrm{𝚅𝙴𝙲𝚃𝙾𝚁},\mathrm{𝚟𝚊𝚛}\right)$ $\mathrm{𝚛𝚎𝚚𝚞𝚒𝚛𝚎𝚍}$$\left(\mathrm{𝙼𝙰𝚃𝚁𝙸𝚇},\mathrm{𝚟𝚎𝚌}\right)$ $\mathrm{𝚜𝚊𝚖𝚎}_\mathrm{𝚜𝚒𝚣𝚎}$$\left(\mathrm{𝙼𝙰𝚃𝚁𝙸𝚇},\mathrm{𝚟𝚎𝚌}\right)$
Purpose

Given a matrix of domain variables, enforces that both adjacent rows, and adjacent columns are lexicographically ordered (adjacent rows and adjacent columns cannot be equal).

Example
$\left(〈\mathrm{𝚟𝚎𝚌}-〈2,2,3〉,\mathrm{𝚟𝚎𝚌}-〈2,3,1〉〉\right)$

The $\mathrm{𝚜𝚝𝚛𝚒𝚌𝚝}_\mathrm{𝚕𝚎𝚡}\mathtt{2}$ constraint holds since:

• The first row $〈2,2,3〉$ is lexicographically strictly less than the second row $〈2,3,1〉$.

• The first column $〈2,2〉$ is lexicographically strictly less than the second column $〈2,3〉$.

• The second column $〈2,3〉$ is lexicographically strictly less than the third column $〈3,1〉$.

Typical
 $|\mathrm{𝚅𝙴𝙲𝚃𝙾𝚁}|>1$ $|\mathrm{𝙼𝙰𝚃𝚁𝙸𝚇}|>1$
Symmetry

One and the same constant can be added to the $\mathrm{𝚟𝚊𝚛}$ attribute of all items of $\mathrm{𝙼𝙰𝚃𝚁𝙸𝚇}.\mathrm{𝚟𝚎𝚌}$.

Usage

A symmetry-breaking constraint.

Reformulation

The $\mathrm{𝚜𝚝𝚛𝚒𝚌𝚝}_\mathrm{𝚕𝚎𝚡}\mathtt{2}$ constraint can be expressed as a conjunction of two $\mathrm{𝚕𝚎𝚡}_\mathrm{𝚌𝚑𝚊𝚒𝚗}_\mathrm{𝚕𝚎𝚜𝚜}$ constraints: A first $\mathrm{𝚕𝚎𝚡}_\mathrm{𝚌𝚑𝚊𝚒𝚗}_\mathrm{𝚕𝚎𝚜𝚜}$ constraint on the $\mathrm{𝙼𝙰𝚃𝚁𝙸𝚇}$ argument and a second $\mathrm{𝚕𝚎𝚡}_\mathrm{𝚌𝚑𝚊𝚒𝚗}_\mathrm{𝚕𝚎𝚜𝚜}$ constraint on the transpose of the $\mathrm{𝙼𝙰𝚃𝚁𝙸𝚇}$ argument.

Systems