29.04.2014 Views

Presburger Arithmetic and Its Use in Verification

Presburger Arithmetic and Its Use in Verification

Presburger Arithmetic and Its Use in Verification

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Chapter 4<br />

Theory of <strong>Presburger</strong> <strong>Arithmetic</strong><br />

In this chapter, we discuss <strong>Presburger</strong> <strong>Arithmetic</strong> <strong>and</strong> its properties. A lot of research<br />

has been conducted to decide <strong>Presburger</strong> fragments. We present two decision<br />

procedures <strong>in</strong>clud<strong>in</strong>g Cooper’s algorithm <strong>and</strong> the Omega Test, <strong>and</strong> they play important<br />

roles <strong>in</strong> process<strong>in</strong>g <strong>Presburger</strong> fragments of our <strong>in</strong>terest later on.<br />

4.1 Overview<br />

<strong>Presburger</strong> <strong>Arithmetic</strong> <strong>in</strong>troduced by Mojzaesz <strong>Presburger</strong> <strong>in</strong> 1929 is a first-order<br />

theory of <strong>in</strong>tegers which accepts + as its only operation. An expression is considered<br />

to be a <strong>Presburger</strong> formula if it conta<strong>in</strong>s elements <strong>in</strong> the follow<strong>in</strong>g forms:<br />

• s = t, s ≠ t, s < t, s > t, s ≤ t, s ≥ t<br />

Comparison constra<strong>in</strong>ts<br />

• d | t<br />

• ⊤ (true), ⊥ (false)<br />

• F ∨ G, F ∧ G, ¬F<br />

• ∃ x. F , ∀ x. F<br />

Divisibility constra<strong>in</strong>ts<br />

Propositional constants<br />

Propositional connectives<br />

First-order fragments<br />

where s <strong>and</strong> t are terms, d is an <strong>in</strong>teger <strong>and</strong> x is a variable. Terms consist of<br />

<strong>in</strong>teger constants <strong>and</strong> variables, they accept addition (+), subtraction (-) <strong>and</strong> multiplication<br />

by constants. One adopted convention is abbreviation of Qx 1 .Qx 2 ...Q x n . F<br />

as Qx 1 x 2 ...x n . F.<br />

For example, a classic example of represent<strong>in</strong>g some amount of money by 3-cent<br />

co<strong>in</strong>s <strong>and</strong> 5-cent co<strong>in</strong>s appears <strong>in</strong> PA as follows:<br />

∀z.∃x ∃y. 3x + 5y = z<br />

∀z. z ≥ 8 ⇒∃x ∃y. 3x + 5y = z<br />

Or the clause shows existence of even numbers could be formulated:<br />

∃x. 2 | x<br />

27

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!