Gilles Barthe - CÚsar Kunz - Jorge Luis Sacchini
Abstract. Parallel programming is rapidly gaining importance as a vector to develop high performance applications that exploit the improved capabilities of modern computer architectures. In consequence, there is a need to develop analysis and verification methods for parallel programs. Sequoia is a language designed to program parallel divide-and-conquer programs over a hierarchical, tree-structured, and explicitly managed memory. Using abstract interpretation, we develop a compositional proof system to analyze Sequoia programs and reason about them. Then, we show that common program optimizations transform provably correct Sequoia programs into provably correct Sequoia programs, provided the specification and the proof of the original program are strengthened by certifying analyzers, an extension of program analyzers that produce a derivation that the results of the analysis are correct.