From a set of choices and a weak order on that set you can partition the set into equivalence classes: define: X/~ == { {x} : x in X, forall y in {x} y~x } This partitions the choice set into a set of disjoint subsets. Union of subsets = X. Furthermore, you can introduce a strict order on X/~. This is because: forall a in {x} and b in {y}: a > b <=> x>y