this repo has no description
at develop 678 B view raw
1include "../std/fzn_lex_less_bool_reif.mzn"; 2 3predicate fzn_lex_less_bool_imp(array[int] of var bool: x, 4 array[int] of var bool: y, 5 var bool: c) = 6 let { int: lx = min(index_set(x)), 7 int: ux = max(index_set(x)), 8 int: ly = min(index_set(y)), 9 int: uy = max(index_set(y)), 10 int: size = max(ux - lx, uy - ly), 11 array[0..size+1] of var bool: b } 12 in 13 (c -> b[0]) 14 /\ 15 forall(i in 0..size) ( 16 b[i] = ( x[lx + i] <= y[ly + i] 17 /\ 18 (x[lx + i] < y[ly + i] \/ b[i+1]) ) 19 ) 20 /\ 21 b[size + 1] = (ux - lx < uy - ly);