Bit-Precise Reasoning with Affine Functions

Kettle, N. and King, A.M. (2008) Bit-Precise Reasoning with Affine Functions. Electronic Notes in Theoretical Computer Science . ISSN 1571-0661.

PDF
Download (193Kb)
[img]
Preview

Abstract

The class of affine Boolean functions is rich enough to express constant bits and dependencies between different bits of different words. For example, the function <span class='mathrm'>(x<sub>0</sub>)∧(neg y<sub>1</sub>)∧(x<sub>4</sub>ıff y<sub>7</sub>)∧(x<sub>5</sub>ıffneg y<sub>9</sub>)</span> is affine and expresses the invariant that the low bit (bit <span class='mathrm'>0</span>) of the variable <span class='mathrm'>x</span> is true, that bit <span class='mathrm'>1</span> of <span class='mathrm'>y</span> is false, that the bits <span class='mathrm'>4</span> and <span class='mathrm'>7</span> of <span class='mathrm'>x</span> and <span class='mathrm'>y</span> coincide whereas bits <span class='mathrm'>5</span> and <span class='mathrm'>9</span> of <span class='mathrm'>x</span> and <span class='mathrm'>y</span> differ. This class of Boolean function is amenable to bit-precise reasoning since it satisfies strong chain properties which bound the number of times a system of semantic fixpoint equations need to be reapplied when reasoning about loops. This paper address the key problem of abstracting an arbitrary Boolean function to either a general affine function or a so-called affine function of width 2, when the function is represented as an ROBDD. Novel algorithms are presented for this task: one that manipulates Boolean vectors and another which is inspired by anti-unification. The speed and precision of both algorithms are compared on benchmark circuits, to draw conclusions on the tractability of affine abstraction.

Item Type: Article
Additional information: Revised, Selected papers from the Bit-Precise Reasoning (BPR'08) workshop in Princetown.
Uncontrolled keywords: abstract interpretation, boolean functions, closure operators, code obfuscation, sub-word parallelisation
Subjects: Q Science > QA Mathematics (inc Computing science) > QA 76 Software, computer programming,
Divisions: Faculties > Science Technology and Medical Studies > School of Computing > Theoretical Computing Group
Depositing User: Mark Wheadon
Date Deposited: 29 Mar 2010 12:09
Last Modified: 30 Jul 2012 08:45
Resource URI: http://kar.kent.ac.uk/id/eprint/23985 (The current URI for this page, for reference purposes)
  • Depositors only (login required):