TorchLean API

FloatLib.Floats.ExecFloat.Spec.Arithmetic

Reference arithmetic for ExecFloat #

Names for the six reference operations supplied by arithmetic capabilities. Use them with the refinement equations in ExecFloat.Proof to reason about an executable arithmetic expression.

Each reference operation is the spec field of the format's Capability, and Capability is indexed by the planning policy [Backend.PolicyFor F] because the same class also stores the selected implementation. Each refinement theorem refers to the specification in the current instance. Policy independence across distinct instances requires them to supply the same specification; the capability class imposes no separate law relating those instances. The default PolicyFor instance is normally inferred at use sites.

Reference definition of addition for this format.

Proofs use this definition to state the required result. Numerical code should normally call ExecFloat.add or use +.

Instances For

    Reference definition of subtraction for this format.

    Proofs use this definition to state the required result. Numerical code should normally call ExecFloat.sub or use -.

    Instances For

      Reference definition of multiplication for this format.

      Proofs use this definition to state the required result. Numerical code should normally call ExecFloat.mul or use *.

      Instances For

        Reference definition of division for this format.

        Proofs use this definition to state the required result. Numerical code should normally call ExecFloat.div or use /.

        Instances For

          Reference definition of square root for this format.

          Proofs use this definition to state the required result. Numerical code should normally call ExecFloat.sqrt or use .sqrt.

          Instances For

            Reference definition of fused multiply-add for this format.

            Proofs use this definition to state the result required by the installed capability. Numerical code should normally call ExecFloat.fma.

            Instances For