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 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

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

Saved successfully!

Ooh no, something went wrong!