Total ordering of complete exact representations #
The key used by ExactValue.totalOrder is injective, so its order is antisymmetric on complete
data, not just on numerical denotations. Finite comparison agrees with rational order and breaks
numerical ties by sign and exponent. Separate theorems give the NaN class and payload rules.
Magnitude order is a total preorder: mutual comparison identifies complete data after clearing
their signs, including NaN class and payload.
At a fixed sign and exponent, the exact rational determines the complete dyadic.
Equality of ordering coordinates preserves every field of a complete exact value.
The executable Boolean is precisely the mathematical order on exact coordinates.
Every complete datum precedes itself, including signaling NaNs.
Any two complete data are comparable.
Exact total ordering is transitive, including all exceptional-value classes.
Mutual ordering identifies the complete datum, including NaN sign, class, and payload.
Mutual comparison is exactly equality of complete representations.
Finite total order agrees with numerical order. Ties place negative signs first, then order exponents upward for positive values and downward for negative values.
Strict numerical increase always gives total ordering.
Strict numerical decrease always fails total ordering.
For equal numerical values of the same sign, exponents break the tie.
Negative zero precedes positive zero.
Positive zero does not precede negative zero.
Every finite value lies strictly above negative infinity.
A finite value cannot precede negative infinity.
Every finite value lies strictly below positive infinity.
Positive infinity cannot precede a finite value.
Signed infinities follow their numerical order.
A NaN precedes every finite number exactly when the NaN has negative sign.
Every finite number precedes a NaN exactly when that NaN has positive sign.
NaN placement relative to infinity depends only on the NaN sign.
Infinity precedes precisely the positive NaNs.
Complete NaN rule: sign first, then signaling before quiet for positive NaNs and the reverse for negative NaNs, then FloatLib's ascending/descending payload convention.
Clearing a sign twice is the same as clearing it once.
Magnitude order is reflexive even on NaNs.
Every pair of magnitudes is comparable.
Magnitude ordering is transitive.
Mutual magnitude ordering identifies absolute data, retaining NaN class and payload.