I would like to define a JuMP optimization program with a vector of variables `x`

that is ordered, i.e. `x[1] < x[2] < x[3] ...`

. Is there any elegant way to do this in lieu of manually adding constraints for every pair of elements in `x`

?

# [JuMP] Defining Ordinal Parameters

**shoshievass**#1

**ExpandingMan**#2

While I agree that loops are ugly and ideally should not appear in optimization code, this looks like a case where one is appropriate. If all your are doing is x_{i}<x_{i+1}, your loop would simply look like

```
for i ∈ 1:(length(x)-1)
@constraint(m, x[i] < x[i+1])
end
```

**daschw**#3

Essentially the same as @ExpandingMan’s proposal, but in one line:

```
@constraint(m, [i in 1:(length(x) - 1)], x[i] <= x[i + 1])
```