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