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 6<br />
Experiments on <strong>Presburger</strong> <strong>Arithmetic</strong><br />
This chapter is organized as a series of experiments on different aspects of <strong>Presburger</strong><br />
<strong>Arithmetic</strong>. The chapter starts with discussion of generat<strong>in</strong>g various <strong>Presburger</strong><br />
fragments. These formulas are used as <strong>in</strong>puts for test<strong>in</strong>g different algorithms later<br />
on. The next part deals with simplification of <strong>Presburger</strong> formulas; it pops up<br />
from the fact that side-condition <strong>Presburger</strong> fragments are complex <strong>and</strong> able to be<br />
reduced by some cheap quantifier elim<strong>in</strong>ation. After that, we discuss design <strong>and</strong><br />
implementation of Cooper’s algorithm <strong>in</strong> a sequential manner. Some design choices<br />
are made which have <strong>in</strong>fluence on both sequential <strong>and</strong> parallel versions, <strong>and</strong> we<br />
attempt to do a benchmark to decide which option is good for the procedure.<br />
6.1 Generation of <strong>Presburger</strong> fragments<br />
Our ma<strong>in</strong> source of <strong>Presburger</strong> formulas is from the model checker of Duration<br />
Calculus. However, as discussed <strong>in</strong> Chapter 5, generated <strong>Presburger</strong> fragments<br />
are <strong>in</strong> a huge size even for a very small model-check<strong>in</strong>g problem, <strong>and</strong> test<strong>in</strong>g <strong>and</strong><br />
optimiz<strong>in</strong>g decision procedures on those formulas are pretty difficult. Also there<br />
is no common benchmark suite for <strong>Presburger</strong> formulas; therefore, we attempt to<br />
generate test formulas which are controllable <strong>in</strong> terms of size <strong>and</strong> complexity <strong>and</strong><br />
postpone work<strong>in</strong>g on the real-world formulas until a later phase. Our test formulas<br />
are from two sources:<br />
• H<strong>and</strong>-annotated <strong>Presburger</strong> formulas: <strong>in</strong> most of the cases, these formulas<br />
are able to be quickly solved by h<strong>and</strong>. They serve the purpose of ensur<strong>in</strong>g<br />
the correctness of decision procedures <strong>and</strong> test<strong>in</strong>g some facets of <strong>Presburger</strong><br />
formulas which are easier to be constructed by h<strong>and</strong>.<br />
• Automatically-generated <strong>Presburger</strong> formulas: we generate these formulas by<br />
formulation of Pigeon Hole Pr<strong>in</strong>ciple, <strong>and</strong> the detailed procedure is presented<br />
later <strong>in</strong> this section. We use this formulation to generate formulas whose sizes<br />
are controllable <strong>and</strong> satisfiability is predeterm<strong>in</strong>ed. These formulas allow us<br />
43