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.
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.