A Strategy for the Production of Verifiable Code Using the B Method

The purpose of this paper is to describe extensions to the B Method in order to facilitate the generation of provably correct SPARK Ada code. Two strategies are provided. Firstly, a process model for the B Method is stated that allows the semi-automatic production of refinements through the use of standard library machines. Secondly, transformation rules are given for the automatic generation of SPARK Ada code from these refinements. Finally, an overview is given of how the semantics of Abstract Machine Notation and SPARK Ada can be used in order to verify these transformation rules.