let build_increasing_index_cstrs_of_c_n iof_c_n_vars =
let _, incr_cstrs =
match Integer_var_set.min_elt iof_c_n_vars with
| Size _ -> assert false
| Iof (c_n, j) ->
Integer_var_set.fold
(fun var ((c_n, j), acc) ->
match var with
| Iof (c_n', j') when c_n = c_n' && j <> j' ->
assert (j < j');
((c_n', j'),
Ge ([ 1, Iof (c_n, j');
-1, Iof (c_n, j); ],
j' - j) :: acc)
| Iof (c_n', j') when c_n = c_n' && j = j' -> ((c_n', j'), acc)
| _ -> assert false)
iof_c_n_vars ((c_n, j), [])
in
List.rev incr_cstrs