include "lex_chain_lesseq_bool.mzn"; include "lex_chain_lesseq_int.mzn"; /** @group globals.lexicographic Requires that the columns of matrix \a a are lexicographically sorted, non-decreasing. */ predicate lex_chain_lesseq(array[int, int] of var bool: a) = if 1>=card(index_set_2of2(a)) then true else lex_chain_lesseq_bool(a) endif; /** @group globals.lexicographic Requires that the columns of matrix \a a are lexicographically sorted, non-decreasing. */ predicate lex_chain_lesseq(array[int, int] of var int: a) = if 1>=card(index_set_2of2(a)) then true else lex_chain_lesseq_int(a) endif; /** @group globals.lexicographic Requires that the columns of matrix \a a are lexicographically sorted, non-decreasing. */ predicate lex_chain(array[int, int] of var bool: a) = lex_chain_lesseq(a); /** @group globals.lexicographic Requires that the columns of matrix \a a are lexicographically sorted, non-decreasing. */ predicate lex_chain(array[int, int] of var int: a) = lex_chain_lesseq(a);