You had discussed this in Avoiding PartialOrd problems by introducing fast finite floating-point types - #45 by johannesvollmer and I'm still wondering if specific floats with limited range could not meet your expectation (although unfortunately not @LateNiteMartyParty's). @Ixrec reminded that:
But there are interesting subsets that could be made closed under lacunary basic arithmetic. Floats inside [+0.0, +Inf]
are closed under addition and can be made closed under multiplication and division (by adapting some rules like +0.0 / +0.0 == +0.0 * +Inf == +Inf / +Inf = +Inf
). Floats inside [+0.0, +1.0]
are closed under multiplication and are generally a boolean algebra.
Edit: typo [+0.0, +Inf]
=> [+0.0, +1.0]