The foundations of program verification (2nd ed.)
The foundations of program verification (2nd ed.)
Programming: the derivation of algorithms
Programming: the derivation of algorithms
Mechanizing programming logics in higher order logic
Current trends in hardware verification and automated theorem proving
Methods and logics for proving programs
Handbook of theoretical computer science (vol. B)
The formal semantics of programming languages: an introduction
The formal semantics of programming languages: an introduction
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Theories of programming languages
Theories of programming languages
Ten Years of Hoare's Logic: A Survey—Part I
ACM Transactions on Programming Languages and Systems (TOPLAS)
Communications of the ACM
Avoiding exponential explosion: generating compact verification conditions
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
An axiomatic basis for computer programming
Communications of the ACM
JML (poster session): notations and tools supporting detailed design in Java
OOPSLA '00 Addendum to the 2000 proceedings of the conference on Object-oriented programming, systems, languages, and applications (Addendum)
Dynamically Discovering Likely Program Invariants to Support Program Evolution
IEEE Transactions on Software Engineering - Special issue on 1999 international conference on software engineering
Chaff: engineering an efficient SAT solver
Proceedings of the 38th annual Design Automation Conference
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
Implementation of an array bound checker
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
The Science of Programming
A Discipline of Programming
Computer
On the Frame Problem in Procedure Specifications
IEEE Transactions on Software Engineering
A Logic for the Java Modeling Language JML
FASE '01 Proceedings of the 4th International Conference on Fundamental Approaches to Software Engineering
A Programming Logic for Sequential Java
ESOP '99 Proceedings of the 8th European Symposium on Programming Languages and Systems
Separation Logic: A Logic for Shared Mutable Data Structures
LICS '02 Proceedings of the 17th Annual IEEE Symposium on Logic in Computer Science
Checking Java Programs via Guarded Commands
Proceedings of the Workshop on Object-Oriented Technology
Hoare Logic for Mutual Recursion and Local Variables
Proceedings of the 19th Conference on Foundations of Software Technology and Theoretical Computer Science
A Dynamic Logic for the Formal Verification of Java Card Programs
JavaCard '00 Revised Papers from the First International Workshop on Java on Smart Cards: Programming and Security
Extended Static Checking: A Ten-Year Perspective
Informatics - 10 Years Back. 10 Years Ahead.
Local Reasoning about Programs that Alter Data Structures
CSL '01 Proceedings of the 15th International Workshop on Computer Science Logic
Proving Pointer Programs in Hoare Logic
MPC '00 Proceedings of the 5th International Conference on Mathematics of Program Construction
PVS: A Prototype Verification System
CADE-11 Proceedings of the 11th International Conference on Automated Deduction: Automated Deduction
Mechanical Verification of Mutually Recursive Procedures
CADE-13 Proceedings of the 13th International Conference on Automated Deduction: Automated Deduction
Inference rules for program annotation
ICSE '78 Proceedings of the 3rd international conference on Software engineering
The Early Search for Tractable Ways of Reasoning about Programs
IEEE Annals of the History of Computing
Program Construction: Calculating Implementations from Specifications
Program Construction: Calculating Implementations from Specifications
Secure Information Flow by Self-Composition
CSFW '04 Proceedings of the 17th IEEE workshop on Computer Security Foundations
Simplify: a theorem prover for program checking
Journal of the ACM (JACM)
Weakest-precondition of unstructured programs
PASTE '05 Proceedings of the 6th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Formal Software Analysis Emerging Trends in Software Model Checking
FOSE '07 2007 Future of Software Engineering
Specification and verification challenges for sequential object-oriented programs
Formal Aspects of Computing
A synthesizer of inductive assertions
AFIPS '75 Proceedings of the May 19-22, 1975, national computer conference and exposition
Automated deduction for verification
ACM Computing Surveys (CSUR)
ACM Computing Surveys (CSUR)
Satisfiability Modulo Theories: An Appetizer
Formal Methods: Foundations and Applications
Efficient weakest preconditions
Information Processing Letters
A tutorial on satisfiability modulo theories
CAV'07 Proceedings of the 19th international conference on Computer aided verification
The Why/Krakatoa/Caduceus platform for deductive program verification
CAV'07 Proceedings of the 19th international conference on Computer aided verification
CAV'07 Proceedings of the 19th international conference on Computer aided verification
TACAS'08/ETAPS'08 Proceedings of the Theory and practice of software, 14th international conference on Tools and algorithms for the construction and analysis of systems
Boogie: a modular reusable verifier for object-oriented programs
FMCO'05 Proceedings of the 4th international conference on Formal Methods for Components and Objects
Verification conditions for single-assignment programs
Proceedings of the 27th Annual ACM Symposium on Applied Computing
Effectively-Propositional reasoning about reachability in linked data structures
CAV'13 Proceedings of the 25th international conference on Computer Aided Verification
Hi-index | 0.00 |
This paper is a systematic study of verification conditions and their use in the context of program verification. We take Hoare logic as a starting point and study in detail how a verification conditions generator can be obtained from it. The notion of program annotation is essential in this process. Weakest preconditions and the use of updates are also studied as alternative approaches to verification conditions. Our study is carried on in the context of a While language. Important extensions to this language are considered toward the end of the paper. We also briefly survey modern program verification tools and their approaches to the generation of verification conditions.