Affiliation:
1. University of Cambridge, Cambridge, UK
2. Microsoft Research, Cambridge, UK
Abstract
In this paper we address the problem of writing specifications for programs that use various forms of modularity, including procedures and Java-like classes. We build on the formalism of separation logic and introduce the new notion of an
abstract predicate
and, more generally, abstract predicate families. This provides a flexible mechanism for reasoning about the different forms of abstraction found in modern programming languages, such as abstract datatypes and objects. As well as demonstrating the soundness of our proof system, we illustrate its utility with a series of examples.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
91 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Sound Gradual Verification with Symbolic Execution;Proceedings of the ACM on Programming Languages;2024-01-05
2. Verification Algorithms for Automated Separation Logic Verifiers;Lecture Notes in Computer Science;2024
3. A Generic Methodology for the Modular Verification of Security Protocol Implementations;Proceedings of the 2023 ACM SIGSAC Conference on Computer and Communications Security;2023-11-15
4. Verifying C++ Dynamic Binding;Proceedings of the 25th ACM International Workshop on Formal Techniques for Java-like Programs;2023-07-18
5. CommCSL: Proving Information Flow Security for Concurrent Programs using Abstract Commutativity;Proceedings of the ACM on Programming Languages;2023-06-06