Finite configured arithmetic for reduction proofs #
FloatLib supplies the arithmetic kernels and their real rounding semantics. This module transports those theorems to configured values for any IEEE format and model codec. A finite add or multiply result implies finite operands, so their refinement statements need only result finiteness. The binary32 declarations specialize this shared bridge for existing reduction proofs. 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 NaN preserves its non-finite classification.
A selected IEEE NaN cannot be finite.
An IEEE invalid operation produces a non-finite value.
Overflow in an IEEE format produces a non-finite value with either sign.
A finite executable sum is one rounding in the selected IEEE format of the exact real sum.
A finite executable product is one rounding in the selected IEEE format of the exact real product.
Configured subtraction decodes to FloatLib’s proved model subtraction.
Finite subtraction refines one nearest-even rounding of the real difference.
The configured zero literal decodes to positive model zero.
The configured zero literal denotes real zero.
The configured zero literal is finite.
IEEE maximum agrees with real maximum on finite operands, including signed zeros.
Finite dyadic conversion refines rounding of the exact dyadic real value.
Configured addition decodes to FloatLib's proved model addition.
Quieting a binary32 NaN preserves its non-finite classification.
A selected binary32 NaN cannot be finite.
The invalid-operation result is a non-finite binary32 value.
Binary32 overflow produces a non-finite value with either sign.
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.
Effective representation of a finite executable product.