File: README

package info (click to toggle)
hol-light 20190729-4
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 42,676 kB
  • sloc: ml: 637,078; cpp: 439; makefile: 301; lisp: 286; java: 279; sh: 239; yacc: 108; perl: 78; ansic: 57; sed: 39; python: 13
file content (34 lines) | stat: -rw-r--r-- 1,167 bytes parent folder | download | duplicates (5)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
               FORMAL THEORY OF IEEE FLOATING-POINT NUMBERS

                      (c) Charlie Jacobsen, 2014

                           University of Utah

                Distributed under the same license as HOL Light

            Also available at https://github.com/skoobit/formal-ieee

Overview
--------

This repository contains a formalization of IEEE floating point numbers.
First, we formalize fixed point numbers so we can model IEEE subnormal
numbers (in fixed.hl and fixed_thms.hl). Next, we formalize
`generalized' floating point numbers to model IEEE normal numbers
(in float.hl and float_thms.hl; Cf. John Harrison's work and the Coq
formalization). Finally, we piece the two formalizations together to
formalize IEEE (ieee.hl and ieee_thms.hl).

In the process, we needed a formalization and basic theorems for raising
real numbers to an integer power; this is in common.hl.

IEEE floating point numbers are treated as a subset of the real numbers.
We can model mostly everything except signed zero and NaNs.

Usage
-----

To load the theorems and formalizations, load IEEE/make.ml after loading
base HOL Light, e.g.

        loadt "IEEE/make.ml";;