Mechanizing programming logics in higher order logic
Current trends in hardware verification and automated theorem proving
Automatic verification of pointer programs using monadic second-order logic
Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation
Automated reasoning and its applications
An efficient machine-independent procedure for garbage collection in various list structures
Communications of the ACM
Separation Logic: A Logic for Shared Mutable Data Structures
LICS '02 Proceedings of the 17th Annual IEEE Symposium on Logic in Computer Science
Proving Pointer Programs in Hoare Logic
MPC '00 Proceedings of the 5th International Conference on Mathematics of Program Construction
Automatic verification of programs with complex data structure.
Automatic verification of programs with complex data structure.
Local reasoning for stateful programs
Local reasoning for stateful programs
Proving pointer programs in higher-order logic
Information and Computation - Special issue: 19th international conference on automated deduction (CADE-19)
TYPES'02 Proceedings of the 2002 international conference on Types for proofs and programs
Isabelle/HOL: a proof assistant for higher-order logic
Isabelle/HOL: a proof assistant for higher-order logic
Types, bytes, and separation logic
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Formal Verification of a C-like Memory Model and Its Uses for Verifying Program Transformations
Journal of Automated Reasoning
Structured Types and Separation Logic
Electronic Notes in Theoretical Computer Science (ENTCS)
A Hoare Logic for Call-by-Value Functional Programs
MPC '08 Proceedings of the 9th international conference on Mathematics of Program Construction
Formal Verification of C Systems Code
Journal of Automated Reasoning
Practical Tactics for Separation Logic
TPHOLs '09 Proceedings of the 22nd International Conference on Theorem Proving in Higher Order Logics
State Spaces --- The Locale Way
Electronic Notes in Theoretical Computer Science (ENTCS)
Hi-index | 0.00 |
Building on the work of Burstall, this paper develops sound modelling and reasoning methods for imperative programs with pointers: heaps are modelled as mappings from addresses to values, and pointer structures are mapped to higher-level data types for verification. The programming language is embedded in higher-order logic. Its Hoare logic is derived. The whole development is purely definitional and thus sound. Apart from some smaller examples, the viability of this approach is demonstrated with a non-trivial case study. We show the correctness of the Schor-Waite graph marking algorithm and present part of its readable proof in Isabelle/HOL.