Correctness of native binary32 product rounding #
The binary32 product path keeps the unrounded product and all rounding decisions in native words. The refinement covers normal, subnormal, carry, overflow, and signed-zero branches and relates each one to the generic exact-dyadic rounder.
roundProduct_eq_roundDyadic applies to every UInt64 magnitude at a scale of at most 506,
covering multiplication, aligned addition, and fused multiply-add. Runtime clients import
Rounding.Runtime independently of these proofs.
An aligned remainder below half an ulp leaves a normal binary32 mantissa unchanged by rounding.
Native word rounding agrees with the generic dyadic rounder.
The scale bound covers binary32 multiplication and aligned addition. The magnitude needs no
separate hypothesis because every UInt64 value is below 2^64.