Formal Validation of Data-Parallel Programs : a Two-Component Assertional Proof System for a Simple Language
Abstract
We present a proof system for a simple data-parallel kernel language called \L. This proof system is based on a two-component assertion language. We define a weakest preconditions calculus and analyse its definability properties. This calculus is used to prove the completeness of the proof system. We also present a two-phase proof methodology, yielding proofs similar to those for scalar languages. We finally discuss other approaches.