The SPARK User Group has announced the release of the SPARK Pro 11 software development and verification environment, providing a step forward for the developers of high-assurance systems.
A number of significant enhancements have been made to the way that functions and proof functions are handled in SPARK Pro 11. These changes will improve project efficiency by eliminating the vast majority of rules that were previously manually encoded. The main changes include a more powerful language for specifying proof functions and the ability to use the functions in any proof context. This greatly simplifies the task of writing and maintaining functional contracts for critical software, providing high-assurance at lower cost.
NOTE: SPARK is the only modern imperative programming language designed with the provision of sound static verification as the primary design goal. Through simplification of the language and the addition of contracts, SPARK also offers verification that is fast, deep, constructive, and exhibits a low false-alarm rate.
Proof is a powerful technique for achieving high levels of assurance in safety- or security-critical software. However, when performing proofs users typically spend much of their time inspecting undischarged "verification conditions" to determine whether they can indeed be proved.
Included with SPARK Pro 11, Riposte is a new tool that not only determines whether a verification condition is false, but can also generate a counter-example to demonstrate the conditions under which it is false. Riposte is a major improvement to the verification workflow, saving projects a significant amount of time previously spent analyzing improvable verification conditions and providing developers with intuitive explanations. Riposte was developed jointly by Altran Praxis and the University of Bath (UK).
The new assume contract in SPARK Pro 11 allows users to introduce system-level assumptions about programs into their proofs in a clear and concise format. Previously, these assumptions might have been captured by user rules or manual review.
SPARK Pro, a product jointly developed by Altran Praxis and AdaCore, provides a language, toolset, and design discipline for engineering high-assurance software. It combines Altran Praxis' SPARK language and verification tools, with the GNAT Programming Studio (GPS) and GNATbench Integrated Development Environments from AdaCore.
SPARK Pro is a language and toolset specifically designed for developing applications where correct operation is vital for safety or security. The SPARK Pro toolset generates evidence for correctness, including proofs of the absence of runtime errors, which can be used to meet the requirements of safety and security certification schemes such as DO-178B, DO-178C, and the Common Criteria. SPARK Pro is especially applicable in the context of the Formal Methods supplement to DO-178C.