TorchLean API

FloatLib.Floats.ExecFloat.Backends.WideLimb.Multiplication.Proof

Verified wide-limb multiplication #

An accepted normal product is the compact finite kernel FiniteKernel.mul? on the models of the operands (mulNormal?_refines): the operands decode to their limb significands (Core.Proof.decode?_toModel), the schoolbook product is exact (LimbArray.toNat_mul), and the limb rounder is the exact rounder (Round.Proof). The total operation then equals Model.Spec.mul because both its branches do: the accepted branch through Finite.Proof.spec_mul_of_mul?_eq_some, the declined branch through the codec laws.

An accepted normal product is the compact finite multiplication of the operand models.

Wide-limb multiplication is the reference multiplication of the operand models.