29 if (constraint.has_indicator_id() &&
30 !variable_universe.
HasId(constraint.indicator_id())) {
32 <<
"Invalid indicator variable id in indicator constraint: "
33 << constraint.indicator_id();
37 {.allow_positive_infinity = false, .allow_negative_infinity = false}))
38 <<
"expression of implied constraint in indicator constraint";
39 for (
const int64_t var_id : constraint.expression().ids()) {
40 if (!variable_universe.
HasId(var_id)) {
42 <<
"Invalid variable id in implied constraint in indicator "
48 constraint.lower_bound(),
49 {.allow_positive_infinity = false, .allow_negative_infinity = true}))
50 <<
"invalid lower bound in indicator constraint: "
51 << constraint.lower_bound();
53 constraint.upper_bound(),
54 {.allow_positive_infinity = true, .allow_negative_infinity = false}))
55 <<
"invalid upper bound in indicator constraint: "
56 << constraint.upper_bound();
57 return absl::OkStatus();