Partial equivalence relations and IEEE 754

29 January 2023

Written as post nine of #100DaysToOffload.

Today I learned about one of those mathematical concepts that is a seemingly arbitrary extension of another. A partial equivalence relation is just an equivalence relation that need not be reflexive.

The best example of a partial equivalence relation is IEEE 754 floats, since NaN != NaN. This is why, in Rust, floats implement PartialEq but not Eq.

I spent some time trying to chase down some old mathematical references that describe partial equivalence relations under that name. Most of them were in Russian journals on semigroup theory, which I am sadly ignorant of.