Presburger Arithmetic and Its Use in Verification
Presburger Arithmetic and Its Use in Verification
Presburger Arithmetic and Its Use in Verification
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