Given Hongkai's explanation in the comment thread for `NonlinearProgram` line 4, we could create a separate constraint type (e.g. `BoundConstaint`) that encodes bounds on a subset of the decision variables. Then instead of adding a single constraint, one would add both the original constraint and the bound constraint, passing the subset of the decision variables to both.