Information-flow and data-flow analysis of while-programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Experiments with proof plans for induction
Journal of Automated Reasoning
Rippling: a heuristic for guiding inductive proofs
Artificial Intelligence
Middle-out reasoning for logic program synthesis
ICLP'93 Proceedings of the tenth international conference on logic programming on Logic programming
Safety analysis of Hawk In Flight monitor
Proceedings of the 1999 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Communications of the ACM
An axiomatic basis for computer programming
Communications of the ACM
The SLAM project: debugging system software via static analysis
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Extended static checking for Java
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Automating proofs of the absence of common runtime errors
POPL '78 Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Principles of Program Analysis
Principles of Program Analysis
Industrial strength exception freedom
Proceedings of the 2002 annual ACM SIGAda international conference on Ada: The engineering of correct and reliable software for real-time & distributed systems using Ada and related technologies
Proof planning for strategy development
Annals of Mathematics and Artificial Intelligence
A General Setting for Flexibly Combining and Augmenting Decision Procedures
Journal of Automated Reasoning
Is Proof More Cost-Effective Than Testing?
IEEE Transactions on Software Engineering
The Use of Planning Critics in Mechanizing Inductive Proofs
LPAR '92 Proceedings of the International Conference on Logic Programming and Automated Reasoning
Proof Plans for the Correction of False Conjectures
LPAR '94 Proceedings of the 5th International Conference on Logic Programming and Automated Reasoning
CAVEAT: A Tool for Software Validation
DSN '02 Proceedings of the 2002 International Conference on Dependable Systems and Networks
The Use of Explicit Plans to Guide Inductive Proofs
Proceedings of the 9th International Conference on Automated Deduction
Proceedings of the 10th International Conference on Automated Deduction
Automatic synthesis of optimal invariant assertions: Mathematical foundations
Proceedings of the 1977 symposium on Artificial intelligence and programming languages
Finding Invariant assertions for proving programs
Proceedings of the international conference on Reliable software
High Integrity Software: The SPARK Approach to Safety and Security
High Integrity Software: The SPARK Approach to Safety and Security
AutoBayes: a system for generating data analysis programs from statistical models
Journal of Functional Programming
Automatic verification of functions with accumulating parameters
Journal of Functional Programming
Combining Proof Plans with Partial Order Planning for Imperative Program Synthesis
Automated Software Engineering
Rippling: meta-level guidance for mathematical reasoning
Rippling: meta-level guidance for mathematical reasoning
Cooperative reasoning for automatic software verification
Proceedings of the second workshop on Automated formal methods
Using SMT solvers to verify high-integrity programs
Proceedings of the second workshop on Automated formal methods
Tool Integration for Reasoned Programming
Verified Software: Theories, Tools, Experiments
Cooperating reasoning processes: more than just the sum of their parts
IJCAI'07 Proceedings of the 20th international joint conference on Artifical intelligence
European collaboration on automated reasoning
AI Communications - ECAI 2012 Turing and Anniversary Track
Hi-index | 0.00 |
Using automated reasoning techniques, we tackle the niche activity of proving that a program is free from run-time exceptions. Such a property is particularly valuable in high integrity software, for example, safety- or security-critical applications. The context for our work is the SPARK Approach for the development of high integrity software. The SPARK Approach provides a significant degree of automation in proving exception freedom. Where this automation fails, however, the programmer is burdened with the task of interactively constructing a proof and possibly also having to supply auxiliary program annotations. We minimize this burden by increasing the automation, through an integration of proof planning and a program analysis oracle. We advocate a `cooperative' integration, where proof-failure analysis directly constrains the search for auxiliary program annotations. The approach has been successfully tested on industrial data.