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