Invalid flags for adjacency and number-preferring extrema #
nextUp, nextDown, minimumNumber, and maximumNumber deliver a value without a status. With
status := true they add the invalid indicator required for a signaling NaN operand by IEEE
754-2019 (§5.3.1 for the adjacent-value operations, §9.6 for the number-preferring selections).
This module proves that the value is unchanged, that invalid is raised exactly for a signaling
operand, and that no other indicator is set.
nextUp with status := true delivers the value of nextUp.
nextUp raises invalid exactly for a signaling NaN input.
nextDown with status := true delivers the value of nextDown.
nextDown raises invalid exactly for a signaling NaN input.
minimumNumber with status := true delivers the value of minimumNumber.
minimumNumber raises invalid exactly when an operand is a signaling NaN.
minimumNumber raises no indicator other than invalid.
maximumNumber with status := true delivers the value of maximumNumber.
maximumNumber raises invalid exactly when an operand is a signaling NaN.
maximumNumber raises no indicator other than invalid.