TY - JOUR
T1 - Isabelle Theories for Machine Words
AU - Dawson, Jeremy
PY - 2009/9/1
Y1 - 2009/9/1
N2 - We describe a collection of Isabelle theories which facilitate reasoning about machine words. For each possible word length, the words of that length form a type, and most of our work consists of generic theorems which can be applied to any such type. We develop the relationships between these words and integers (signed and unsigned), lists of booleans and functions from index to value, noting how these relationships are similar to those between an abstract type and its representing set. We discuss how we used Isabelle's bin type, before and after it was changed from a datatype to an abstract type, and the techniques we used to retain, as nearly as possible, the convenience of primitive recursive definitions. We describe other useful techniques, such as encoding the word length in the type.
AB - We describe a collection of Isabelle theories which facilitate reasoning about machine words. For each possible word length, the words of that length form a type, and most of our work consists of generic theorems which can be applied to any such type. We develop the relationships between these words and integers (signed and unsigned), lists of booleans and functions from index to value, noting how these relationships are similar to those between an abstract type and its representing set. We discuss how we used Isabelle's bin type, before and after it was changed from a datatype to an abstract type, and the techniques we used to retain, as nearly as possible, the convenience of primitive recursive definitions. We describe other useful techniques, such as encoding the word length in the type.
KW - machine words
KW - mechanised reasoning
KW - twos-complement
UR - http://www.scopus.com/inward/record.url?scp=69249217868&partnerID=8YFLogxK
U2 - 10.1016/j.entcs.2009.08.005
DO - 10.1016/j.entcs.2009.08.005
M3 - Article
SN - 1571-0661
VL - 250
SP - 55
EP - 70
JO - Electronic Notes in Theoretical Computer Science
JF - Electronic Notes in Theoretical Computer Science
IS - 1
ER -