An axiomatic basis for computer programming
Communications of the ACM
An assertion language for data structures
POPL '75 Proceedings of the 2nd ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Automatic program verification I: a logical basis and its implementation.
Automatic program verification I: a logical basis and its implementation.
On logic and program verification.
On logic and program verification.
Assignment Commands with Array References
Journal of the ACM (JACM)
Semantic analysis of pointer aliasing, allocation and disposal in Hoare logic
Proceedings of the 2nd ACM SIGPLAN international conference on Principles and practice of declarative programming
An Introduction to Proving the Correctness of Programs
ACM Computing Surveys (CSUR)
Ten Years of Hoare's Logic: A Survey—Part I
ACM Transactions on Programming Languages and Systems (TOPLAS)
BI as an assertion language for mutable data structures
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Modular Verification of Data Abstractions with Shared Realizations
IEEE Transactions on Software Engineering
FoSSaCS '01 Proceedings of the 4th International Conference on Foundations of Software Science and Computation Structures
Program logic and equivalence in the presence of garbage collection
Theoretical Computer Science - Foundations of software science and computation structures
A Mechanical Analysis of Program Verification Strategies
Journal of Automated Reasoning
BI as an assertion language for mutable data structures
ACM SIGPLAN Notices
Verifying low-level implementations of high-level datatypes
CAV'10 Proceedings of the 22nd international conference on Computer Aided Verification
Hi-index | 0.00 |
In this paper we wish to consider the problem of proving assertions about programs that construct and alter data structures. Our method will be to define a suitable assertion language L for data structures, to define a simple programming language L' for constructing and altering data structures, to give axioms and rules of inference (in the style of [Hoare 1969]) which specify the effect of program segments on data structures (described by formulas in L) and finally to prove that these axioms are correct (relative to a formal definition of the semantics of L') and, in a reasonable sense, complete. Thus our intention is to provide a complete theoretical framework for describing arbitrary data structures and proving assertions about programs that manipulate them.