let build_sufficient_index_cstrs prec_cstrs per_cstrs size_cstrs =
let ( ++ ) = Integer_var_set.union in
let vars_prec = vars_of_linear_constraints prec_cstrs in
let vars_per = vars_of_linear_constraints per_cstrs in
let vars_size = vars_of_linear_constraints size_cstrs in
let init =
Integer_var_set.fold
(fun var acc ->
match var with
| Size _ -> acc
| Iof _ -> build_sufficient_index_cstr var :: acc)
(vars_prec ++ vars_per ++ vars_size) []
in
List.rev init