A theoretical basis for stepwise refinement and the programming calculus
Science of Computer Programming
ACM Transactions on Programming Languages and Systems (TOPLAS)
A generalization of Dijkstra's calculus
ACM Transactions on Programming Languages and Systems (TOPLAS)
Toward reliable modular programs
Toward reliable modular programs
Catching bugs in the web of program invariants
PLDI '96 Proceedings of the ACM SIGPLAN 1996 conference on Programming language design and implementation
IEEE Transactions on Software Engineering - Special issue on formal methods in software practice
Eraser: a dynamic data race detector for multithreaded programs
ACM Transactions on Computer Systems (TOCS)
Avoiding exponential explosion: generating compact verification conditions
POPL '01 Proceedings of the 28th 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
Automatic discovery of linear restraints among variables of a program
POPL '78 Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Symbolic Model Checking
A Discipline of Programming
Refinement Calculus: A Systematic Introduction
Refinement Calculus: A Systematic Introduction
From symptom to cause: localizing errors in counterexample traces
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Specification and verification of concurrent systems in CESAR
Proceedings of the 5th Colloquium on International Symposium on Programming
Design and Synthesis of Synchronization Skeletons Using Branching-Time Temporal Logic
Logic of Programs, Workshop
What went wrong: explaining counterexamples
SPIN'03 Proceedings of the 10th international conference on Model checking software
Proceedings of the 5th international conference on Generative programming and component engineering
Reachability analysis for annotated code
Proceedings of the 2007 conference on Specification and verification of component-based systems: 6th Joint Meeting of the European Conference on Software Engineering and the ACM SIGSOFT Symposium on the Foundations of Software Engineering
Explaining Verification Conditions
AMAST 2008 Proceedings of the 12th international conference on Algebraic Methodology and Software Technology
HOL-Boogie -- An Interactive Prover for the Boogie Program-Verifier
TPHOLs '08 Proceedings of the 21st International Conference on Theorem Proving in Higher Order Logics
CTL model update for system modifications
Journal of Artificial Intelligence Research
ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
Proceedings of the 7th International Workshop on Satisfiability Modulo Theories
HOL-Boogie--An Interactive Prover-Backend for the Verifying C Compiler
Journal of Automated Reasoning
Type reconstruction for general refinement types
ESOP'07 Proceedings of the 16th European conference on Programming
ExplainHoudini: making Houdini inference transparent
VMCAI'11 Proceedings of the 12th international conference on Verification, model checking, and abstract interpretation
The boogie verification debugger
SEFM'11 Proceedings of the 9th international conference on Software engineering and formal methods
Boogie: a modular reusable verifier for object-oriented programs
FMCO'05 Proceedings of the 4th international conference on Formal Methods for Components and Objects
Underspecified harnesses and interleaved bugs
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The spec# programming system: an overview
CASSIS'04 Proceedings of the 2004 international conference on Construction and Analysis of Safe, Secure, and Interoperable Smart Devices
ESC/Java2: uniting ESC/Java and JML
CASSIS'04 Proceedings of the 2004 international conference on Construction and Analysis of Safe, Secure, and Interoperable Smart Devices
Formal methods for smartcard security
Foundations of Security Analysis and Design III
Automatically verifying typing constraints for a data processing language
CPP'11 Proceedings of the First international conference on Certified Programs and Proofs
Bounded model checking of software using SMT solvers instead of SAT solvers
SPIN'06 Proceedings of the 13th international conference on Model Checking Software
Hi-index | 0.00 |
A technique for finding errors in computer programs is to translate a given program and its correctness criteria into a logical formula in mathematics and then let an automatic theorem prover check the validity of the formula. This approach gives the tool designer much flexibility in which conditions are to be checked, and the technique can reason about as many aspects of the given program as the underlying theorem prover allows. This paper describes a method for reconstructing, from the theorem prover's mathematical output, error traces that lead to the program errors that the theorem prover discovers.