Verification condition generation for permission logics with abstract predicates and abstraction functions

14Citations
Citations of this article
20Readers
Mendeley users who have this article in their library.
Get full text

Abstract

Abstract predicates are the primary abstraction mechanism for program logics based on access permissions, such as separation logic and implicit dynamic frames. In addition to abstract predicates, it is useful to also support classical abstraction functions, for instance, to encode side-effect-free methods of the program and use them in specifications. However, combining abstract predicates and abstraction functions in a verification condition generator leads to subtle interactions, which complicate reasoning about heap modifications. Such complications may compromise soundness or cause divergence of the prover in the context of automated verification. In this paper, we present an encoding of abstract predicates and abstraction functions in the verification condition generator Boogie. Our encoding is sound and handles recursion in a way that is suitable for automatic verification using SMT solvers. It is implemented in the automatic verifier Chalice. © 2013 Springer-Verlag Berlin Heidelberg.

Cite

CITATION STYLE

APA

Heule, S., Kassios, I. T., Müller, P., & Summers, A. J. (2013). Verification condition generation for permission logics with abstract predicates and abstraction functions. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 7920 LNCS, pp. 451–476). Springer Verlag. https://doi.org/10.1007/978-3-642-39038-8_19

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free