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.

7.1. A PARALLEL VERSION OF COOPER’S ALGORITHM<br />

Figure 7.1. Task graph of an elim<strong>in</strong>ation step <strong>in</strong> Cooper’s algorithm.<br />

elim<strong>in</strong>ation step, a big disjunct consists of 1 + |B| <strong>in</strong>ner formulas which are subject<br />

to parallel elim<strong>in</strong>ation. Aga<strong>in</strong> good concurrency requires a big number of terms.<br />

7.1.2 Design <strong>and</strong> Implementation<br />

The algorithm we use follows ideas of Cooper’s algorithm discussed <strong>in</strong> Section 4.2<br />

<strong>and</strong> there are some differences related to elim<strong>in</strong>at<strong>in</strong>g blocks of quantifiers <strong>and</strong> us<strong>in</strong>g<br />

heterogeneous coefficients as discussed <strong>in</strong> Section 6.3. Here we focus on data<br />

representation which will be shown to have a big <strong>in</strong>fluence on performance later on.<br />

The type Term is employed to represent a l<strong>in</strong>ear term c + Σ i a i x i :<br />

•Itconsistsofaconstantc <strong>and</strong> a collection of variables x i <strong>and</strong> correspond<strong>in</strong>g<br />

coefficients a i .<br />

•Variablescannotbeduplicated,<strong>and</strong>eachvariablehasexactlyonecoefficient.<br />

•<strong>Arithmetic</strong>operationssuchasaddition,subtractionbetweenTerms, unary<br />

m<strong>in</strong>us of Terms;multiplication<strong>and</strong>divisionbyaconstantarealsosupported.<br />

AnaturalrepresentationofTerm <strong>in</strong> F# is the follow<strong>in</strong>g type:<br />

type Term = struct<br />

val Vars: Map<br />

val Const: <strong>in</strong>t<br />

end<br />

51

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

Saved successfully!

Ooh no, something went wrong!