Formalization of Fixed-Point Arithmetic in HOL

This paper addresses the formalization in higher-order logic of fixed-point arithmetic. We encoded the fixed-point number system and specified the different quantization modes in fixed-point arithmetic such as the directed and even quantization modes. We also considered the formalization of exceptions detection and their handling like overflow and invalid operation. An error analysis is then performed to check the correctness of the quantized result after carrying out basic arithmetic operations, such as addition, subtraction, multiplication and division against their mathematical counterparts. Finally, we showed by an example how this formalization can be used to enable the verification of the transition from floating-point to fixed-point algorithmic level in the signal processing design flow.

[1]  BarrettGeoff Formal Methods Applied to a Floating-Point Number System , 1989 .

[2]  Roope Kaivola,et al.  Proof Engineering in the Large: Formal Verification of Pentium® 4 Floating-Point Divider , 2001, CHARME.

[3]  John Harrison,et al.  Formal Verification of Floating Point Trigonometric Functions , 2000, FMCAD.

[4]  John Harrison Floating Point Verification in HOL Light: The Exponential Function , 1997, AMAST.

[5]  J. Strother Moore,et al.  A Mechanically Checked Proof of the AMD5K86TM Floating Point Division Program , 1998, IEEE Trans. Computers.

[6]  Mark Aagaard,et al.  Divider Circuit Verification with Model Checking and Theorem Proving , 2000, TPHOLs.

[7]  S Miner Paul,et al.  Defining the IEEE-854 Floating-Point Standard in PVS , 1995 .

[8]  Laurence Rideau,et al.  A Generic Library for Floating-Point Numbers and Its Application to Exact Computing , 2001, TPHOLs.

[9]  Sylvie Boldo,et al.  Properties of two’s complement floating point notations , 2004, International Journal on Software Tools for Technology Transfer.

[10]  J. Harrison Constructing the Real Numbers , 1998 .

[11]  Daniel Kroening,et al.  Instantiating Uninterpreted Functional Units and Memory System: Functional Verification of the VAMP , 2003, CHARME.

[12]  Roope Kaivola,et al.  Formal Verification of the Pentium® 4 Floating-Point Multiplier , 2002, DATE.

[13]  John Harrison,et al.  Formal Verification of IA-64 Division Algorithms , 2000, TPHOLs.

[14]  Christoph Berg,et al.  Formal Verification of the VAMP Floating Point Unit , 2001, Formal Methods Syst. Des..

[15]  Kimberly Ryan,et al.  Cadence Design Systems Inc. , 1993 .

[16]  E. L. Harder,et al.  The Institute of Electrical and Electronics Engineers, Inc. , 2019, 2019 IEEE International Conference on Software Architecture Companion (ICSA-C).

[17]  A Carreno Victor Interpretation of IEEE-854 Floating-Point Standard and Definition in the HOL System , 1995 .

[18]  Paul S. Miner,et al.  Verification of IEEE Compliant Subtractive Division Algorithms , 1996, FMCAD.

[19]  Roope Kaivola,et al.  Proof engineering in the large: formal verification of Pentium®4 floating-point divider , 2003, International Journal on Software Tools for Technology Transfer.

[20]  Jun Sawada,et al.  Mechanical Verification of a Square Root Algorithm Using Taylor's Theorem , 2002, FMCAD.

[21]  Heinrich Meyr,et al.  FRIDGE: a fixed-point design and simulation environment , 1998, Proceedings Design, Automation and Test in Europe.

[22]  Geoff Barrett,et al.  Formal Methods Applied to a Floating-Point Number System , 1989, IEEE Trans. Software Eng..

[23]  M. Gordon,et al.  Introduction to HOL: a theorem proving environment for higher order logic , 1993 .

[24]  Wai Wong,et al.  Modelling Bit Vectors in HOL: the word library , 1993, HUG.

[25]  W. Paul,et al.  Computer Architecture , 2000, Springer Berlin Heidelberg.

[26]  Tom Melham The HOL pred_sets Library , 1992 .

[27]  Wolfgang J. Paul,et al.  Computer architecture - complexity and correctness , 2000 .

[28]  Marius A. Cornea-Hasegan,et al.  Proving the IEEE Correctness of Iterative Floating-Point Square Root , Divide , and Remainder Algorithms , 1998 .

[29]  John Harrison,et al.  Floating Point Verification in HOL Light: The Exponential Function , 1997, Formal Methods Syst. Des..

[30]  C. Seger,et al.  Formally Verifying IEEE Compliance of Floating-Point Hardware , 2022 .

[31]  John Harrison,et al.  Constructing the real numbers in HOL , 1992, Formal Methods Syst. Des..

[32]  Carl-Johan H. Seger,et al.  The formal verification of a pipelined double-precision IEEE floating-point multiplier , 1995, Proceedings of IEEE International Conference on Computer Aided Design (ICCAD).

[33]  David M. Russinoff A Case Study in Fomal Verification of Register-Transfer Logic with ACL2: The Floating Point Adder of the AMD AthlonTM Processor , 2000, FMCAD.

[34]  Matt Kaufmann,et al.  A Mechanically Checked Proof of the , 1998 .

[35]  Randal E. Bryant,et al.  Verification of Floating-Point Adders , 1998, CAV.

[36]  Miriam Leeser,et al.  Verification of a subtractive radix-2 square root algorithm and implementation , 1995, Proceedings of ICCD '95 International Conference on Computer Design. VLSI in Computers and Processors.

[37]  J. S. Moore,et al.  A Mechanically Checked Proof of the Correctness of the Kernel of the Amd5 K 86 Tm Floating-point Division Algorithm , 1996 .

[38]  John Harrison,et al.  A Machine-Checked Theory of Floating Point Arithmetic , 1999, TPHOLs.