Gives an overview of the SPADE toolset:End:
 

Praxis High Integrity Systems logo

Praxis High Integrity Systems
arrowPraxis home arrowSPARKAda home arrowSPARK Language and Toolset arrowSPADE
Photo


The SPADE Static Analysis Toolset

The SPADE static analysis suite is the oldest of Praxis High Integrity System's products but one that continues to be used on critical software systems written in languages other than Ada/SPARK.

The SPADE tools provide flow analysis and verification facilities based on a model of the program being analysed. The model is generated by automatic translators which operate on the original source code.

Translators are available for a Pascal subset and for the following assemblers: 68020, 8096 and Z8002.

The SPADE Proof Tools

The SPADE proof tools consist of the Automatic Simplifier and the Proof Checker.

The SPADE Automatic Simplifier discharges many of the more trivial verification conditions generated by SPADE or the SPARK Examiner, simplifying the remainder to make them easier to understand and reason about. For verification conditions to prove the absence of run-time exceptions generated by the SPARK Examiner, the Simplifier's success rate is typically in excess of 75%, reaching over 90% for well-written code which makes good use of types, subtypes and appropriate defensive programming measures.

The SPADE Proof Checker is typically used to discharge the verification conditions which remain to be proved after the Simplifier has been applied. It is a "short-rein" proof assistant, which polices the construction of a valid proof, employing a number of built-in tools and techniques to do so. These include:

  • an inference engine, with built-in heuristics for common automatic strategies (for instance, infer A >= C from A >= B and B >= C [transitivity], infer X + N >= Y from X >= Y, N >= 0 [addition of inequalities], etc.);
  • a library of several hundred standard proof rules, encapsulating properties of the standard data types appearing in formulae generated for proof of code (such as integers, booleans and enumerated types, arrays, records);
  • a range of natural deduction strategies, such as proof by cases, proof by contradiction, proof by induction and subgoaling;
  • powerful rule-search and pattern matching facilities, making it easy to select and investigate subexpressions of complex formulae; and
  • automatic generation of proof and command logs, allowing the review and replay of proofs, and recording the rules and reasoning employed in the proof of each verification condition.

Releases of the SPADE proof tools have been in industrial use since 1987 and have been employed in the formal verification of a range of high-integrity software systems since that time.

For more information please email us.

 
 

© Website Content Praxis High Integrity Systems 2008

arrowNormal text arrowLarge text

 

corner Site index
cornerSitesearch

corner

bulletSPARKAda home
bulletNews and Events
bulletSPARK for Beginners
bulletSPARK Language & Toolset
bulletSPARK Philosophy
bulletTechnical Overview
bulletThe Examiner
bulletSPARK Language
bulletSPADE
bulletSPARK and Compilers
bulletSPARK and Standards
bulletMISRA-C
bulletUsing SPARK
bulletPress
bulletDownloads and Publications

bulletContact SPARK Team

bulletSPARK Book (latest tools)

bulletTraining in SPARK



line

Photo
Contact Us +44 01225 466991
bulletOffice contact details, maps
bulletRecruitment and vacancies