Agreement with Lean's floating-point arithmetic #
Model retains IEEE NaN payloads, while Lean's UnpackedFloat has a single canonical NaN.
The bridges in this module therefore compare the real semantics of finite results for descriptors
satisfying fmt.isIEEE = true. They connect Lean's arithmetic algorithms to the same independent
roundAt specification used for Model, without identifying representation policies that
deliberately differ.
Packing Lean's signed-integer normalizer has the independent nearest-even real semantics. The zero sign is intentionally absent from the conclusion because both signed zeros denote zero.
Lean's remainder classification locates the exact quotient relative to the integer quotient.
For finite operands and a finite result, Lean core's unpacked addition has the same independent
nearest-even real semantics as Model.add.
For finite operands satisfying Lean core's documented roundWithAccuracy precondition, unpacked
multiplication has the same independent nearest-even real semantics as Model.mul.
For finite nonzero operands satisfying Lean core's documented roundWithAccuracy precondition,
unpacked division has the same independent nearest-even real semantics as Model.div.
The nonzero provisional quotient premise records that divCore produced at least one significant
bit. It is the natural domain of the generic accuracy-to-rounding bridge.