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
Proving pointer programs in higher-order logic
Information and Computation - Special issue: 19th international conference on automated deduction (CADE-19)
A case study of C source code verification: the Schorr-Waite algorithm
SEFM '05 Proceedings of the Third IEEE International Conference on Software Engineering and Formal Methods
TPHOLs '08 Proceedings of the 21st International Conference on Theorem Proving in Higher Order Logics
Data Refinement of Invariant Based Programs
Electronic Notes in Theoretical Computer Science (ENTCS)
Proving pointer programs in higher-order logic
Information and Computation - Special issue: 19th international conference on automated deduction (CADE-19)
Operational reasoning for concurrent caml programs and weak memory models
TPHOLs'07 Proceedings of the 20th international conference on Theorem proving in higher order logics
Reasoning about memory layouts
Formal Methods in System Design
Dafny: an automatic program verifier for functional correctness
LPAR'10 Proceedings of the 16th international conference on Logic for programming, artificial intelligence, and reasoning
Reasoning about assignments in recursive data structures
SBMF'10 Proceedings of the 13th Brazilian conference on Formal methods: foundations and applications
Verification of the Schorr-Waite algorithm - from trees to graphs
LOPSTR'10 Proceedings of the 20th international conference on Logic-based program synthesis and transformation
Characteristic formulae for the verification of imperative programs
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
Developer-oriented correctness proofs a case study of Cheney's algorithm
ICFEM'11 Proceedings of the 13th international conference on Formal methods and software engineering
A machine-checked framework for relational separation logic
SEFM'11 Proceedings of the 9th international conference on Software engineering and formal methods
A unified memory model for pointers
LPAR'05 Proceedings of the 12th international conference on Logic for Programming, Artificial Intelligence, and Reasoning
Formal verification of the heap manager of an operating system using separation logic
ICFEM'06 Proceedings of the 8th international conference on Formal Methods and Software Engineering
Certifying assembly with formal security proofs: The case of BBS
Science of Computer Programming
The ramifications of sharing in data structures
POPL '13 Proceedings of the 40th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
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 Schorr-Waite graph marking algorithm and present part of its readable proof in Isabelle/HOL.