Let's suppose to have three integer variables for integer programming, thus:
a \in {1,2,3}
b \in {1,2,3}
c \in {1,2,3}
Now I want to model that all variables are different. Obviously I can do the following for every combination (three in this case). I show it with a and b.
a <= b - 1 + bin1 * bigM
a >= b + 1 - (1 - bin1) * bigM
bin1 \in {0, 1}
Is there an easier way without producing lots of new constraints, bigMs, and binary variables?