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.

5.2 Simplification of <strong>Presburger</strong> formulas . . . . . . . . . . . . . . . . . . 38<br />

5.2.1 Guarded Normal Form . . . . . . . . . . . . . . . . . . . . . . 38<br />

5.2.2 Equation-based simplification . . . . . . . . . . . . . . . . . . 39<br />

5.3 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41<br />

6 Experiments on <strong>Presburger</strong> <strong>Arithmetic</strong> 43<br />

6.1 Generation of <strong>Presburger</strong> fragments . . . . . . . . . . . . . . . . . . 43<br />

6.2 Simplification of <strong>Presburger</strong> formulas . . . . . . . . . . . . . . . . . . 45<br />

6.3 Optimization of Cooper’s algorithm . . . . . . . . . . . . . . . . . . 46<br />

6.4 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47<br />

7 Parallel execution of decision procedures 49<br />

7.1 A parallel version of Cooper’s algorithm . . . . . . . . . . . . . . . . 49<br />

7.1.1 F<strong>in</strong>d<strong>in</strong>g concurrency . . . . . . . . . . . . . . . . . . . . . . . 49<br />

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

7.1.3 Experimental Results . . . . . . . . . . . . . . . . . . . . . . 53<br />

7.2 A parallel version of the Omega Test . . . . . . . . . . . . . . . . . . 55<br />

7.2.1 F<strong>in</strong>d<strong>in</strong>g concurrency . . . . . . . . . . . . . . . . . . . . . . . 56<br />

7.2.2 Design <strong>and</strong> Implementation . . . . . . . . . . . . . . . . . . . 57<br />

7.2.3 Experimental Results . . . . . . . . . . . . . . . . . . . . . . 58<br />

7.3 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60<br />

8 Conclusions 61<br />

References 63<br />

A Examples of multicore parallelism <strong>in</strong> F# 67<br />

A.1 Source code of π calculation . . . . . . . . . . . . . . . . . . . . . . . 67<br />

A.2 Source code of MergeSort . . . . . . . . . . . . . . . . . . . . . . . . 69<br />

B Source code of experiments 71<br />

B.1 Utilities.fs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71<br />

B.2 Term.fs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73<br />

B.3 Formula.fs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76<br />

B.4 PAGenerator.fs (excerpt) . . . . . . . . . . . . . . . . . . . . . . . . 77<br />

B.5 Cooper.fs (excerpt) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79<br />

B.6 OmegaTest.fs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86<br />

B.7 OmegaTestArray.fs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

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

Saved successfully!

Ooh no, something went wrong!