Mark Lewis <mark.lewis@xxxxxxxx> writes: > I think we're actually on the same page here; you're right that the > constraint above ( f(a)==f(b) iff a==b ) can't be extended to data types > with more than 32 bits of value space. But the constraint I listed was > actually: > if a==b then f(a)==f(b) I believe Martijn had it right: the important constraint is f(a) > f(b) implies a > b which implies by commutativity f(a) < f(b) implies a < b and these two together imply a == b implies f(a) == f(b) Now you can't do any sorting if you only have the equality rule, you need the inequality rule. regards, tom lane