diff --git a/src/constraint_solver/expr_array.cc b/src/constraint_solver/expr_array.cc index 500378ba32..e828c9cbf3 100644 --- a/src/constraint_solver/expr_array.cc +++ b/src/constraint_solver/expr_array.cc @@ -2174,6 +2174,10 @@ Constraint* Solver::MakeSumEquality(const std::vector& vars, const int size = vars.size(); if (AreAllBooleans(vars.data(), size) && size > 2) { return RevAlloc(new SumBooleanEqualToVar(this, vars.data(), size, var)); + } else if (size == 1) { + return MakeEquality(vars[0], var); + } else if (size == 2) { + return MakeEquality(MakeSum(vars[0], vars[1])->Var(), var); } else { if (DetectSumOverflow(vars)) { return RevAlloc(new SafeSumConstraint(this, vars, var));