Finite binary32 arithmetic for reduction proofs #
FloatLib supplies the arithmetic kernels and their real rounding semantics. This module transports those theorems to FloatLib's configured binary32 values. A finite add or multiply result implies finite operands, so the public refinement statements need only the original result-finiteness hypothesis. No global relative-error assumption is made at subnormal values.
Configured addition decodes to FloatLib's proved model addition.
Configured multiplication decodes to FloatLib's proved model multiplication.
Quieting a binary32 NaN preserves its non-finite classification.
A selected binary32 NaN cannot be finite.
Nearest-even real rounding with binary32 gradual underflow and no upper exponent bound.
Instances For
FloatLib's binary32 real rounding is TorchLean's gradual-underflow rounding grid.
A finite executable sum is one binary32 rounding of the exact real sum.
A finite executable product is one binary32 rounding of the exact real product.
The rounded value has FloatLib's effective mantissa/exponent representation.
Effective representation of a finite executable product.