Results 1  10
of
20
Implicit Dynamic Frames
, 2011
"... An important, challenging problem in the verification of imperative programs with shared, mutable state is the frame problem in the presence of data abstraction. That is, one must be able to specify and verify upper bounds on the set of memory locations a method can read and write without exposing t ..."
Abstract

Cited by 20 (6 self)
 Add to MetaCart
An important, challenging problem in the verification of imperative programs with shared, mutable state is the frame problem in the presence of data abstraction. That is, one must be able to specify and verify upper bounds on the set of memory locations a method can read and write without exposing that method’s implementation. Separation logic is now widely considered the most promising solution to this problem. However, unlike conventional verification approaches, separation logic assertions cannot mention heapdependent expressions from the host programming language such as method calls familiar to many developers. Moreover, separation logicbased verifiers are often based on symbolic execution. These symbolic executionbased verifiers typically do not support nonseparating conjunction, and some of them rely on the developer to explicitly fold and unfold predicate definitions. Furthermore, several researchers have wondered whether it is possible to use verification condition generation and standard firstorder provers instead of symbolic execution to automatically verify conformance with a separation logic specification. In this paper, we propose a variant of separation logic, called implicit dynamic frames, that supports heapdependent expressions inside assertions. Conformance with an implicit dynamic frames specification can be checked by proving validity of a number of firstorder verification conditions. To show that these verification
Automated cyclic entailment proofs in separation logic
 In CADE’11
, 2011
"... Abstract. We present a general automated proof procedure, based upon cyclic proof, for inductive entailments in separation logic. Our procedure has been implemented via a deep embedding of cyclic proofs in the HOL Light theorem prover. Experiments show that our mechanism is able to prove a number of ..."
Abstract

Cited by 7 (1 self)
 Add to MetaCart
(Show Context)
Abstract. We present a general automated proof procedure, based upon cyclic proof, for inductive entailments in separation logic. Our procedure has been implemented via a deep embedding of cyclic proofs in the HOL Light theorem prover. Experiments show that our mechanism is able to prove a number of nontrivial entailments involving inductive predicates. 1
Charge! A framework for higherorder separation logic in Coq
"... We present a comprehensive set of tactics for working with a shallow embedding of a higherorder separation logic for a subset of Java in Coq. The tactics make it possible to reason at a level of abstraction similar to penandpaper separationlogic proof outlines. In particular, the tactics allow t ..."
Abstract

Cited by 7 (3 self)
 Add to MetaCart
We present a comprehensive set of tactics for working with a shallow embedding of a higherorder separation logic for a subset of Java in Coq. The tactics make it possible to reason at a level of abstraction similar to penandpaper separationlogic proof outlines. In particular, the tactics allow the user to reason in the embedded logic rather than in the concrete model, where the stacks and heaps are exposed. The development is generic in the choice of heap model, and most of the development is also independent of the choice of programming language.
Mechanised separation algebra
 Interactive Theorem Proving (ITP 2012), LNCS
, 2012
"... We present a generic type class implementation of separation algebra for Isabelle/HOL as well as lemmas and generic tactics which can be used directly for any instantiation of the type class. The ex directory contains example instantiations that include structures such as a heap or virtual memory. T ..."
Abstract

Cited by 6 (2 self)
 Add to MetaCart
(Show Context)
We present a generic type class implementation of separation algebra for Isabelle/HOL as well as lemmas and generic tactics which can be used directly for any instantiation of the type class. The ex directory contains example instantiations that include structures such as a heap or virtual memory. The abstract separation algebra is based upon “Abstract Separation Logic ” by Calcagno et al. These theories are also the basis of “Mechanised Separation Algebra ” by the authors [1]. The aim of this work is to support and significantly reduce the effort for future separation logic developments in Isabelle/HOL by factoring out the part of separation logic that can be treated abstractly once and for all. This includes developing typical default rule sets for reasoning as well as automated tactic support for separation logic. Contents 0.1 Derivation of the proof rules and, most importantly, the VCG tactic............................... 5
Verified heap theorem prover by paramodulation. in preparation
, 2011
"... We present VeriStar, a verified theorem prover for a decidable subset of separation logic. Together with VeriSmall [2], a provedsound Smallfootstyle program analysis for C minor, VeriStar demonstrates that fully machinechecked static analyses equipped with efficient theorem provers are now within ..."
Abstract

Cited by 6 (1 self)
 Add to MetaCart
(Show Context)
We present VeriStar, a verified theorem prover for a decidable subset of separation logic. Together with VeriSmall [2], a provedsound Smallfootstyle program analysis for C minor, VeriStar demonstrates that fully machinechecked static analyses equipped with efficient theorem provers are now within the reach of formal methods. As a pair, VeriStar and VeriSmall represent the first application of the Verified Software Toolchain [3], a tightly integrated collection of machineverified program logics and compilers giving foundational correctness guarantees. VeriStar is (1) purely functional, (2) machinechecked, (3) endtoend, (4) efficient and (5) modular. By purely functional, we mean it is implemented in Gallina, the pure functional programming language embedded in the Coq theorem prover. By machinechecked, we mean it has a proof in Coq that when the prover says “valid”, the checked entailment holds in a provedsound separation logic for C minor. By endtoend, we mean that when the static analysis+theorem prover says a C minor program is safe, the program will be compiled to a semantically equivalent assembly program that runs on real hardware. By efficient, we mean that the prover implements a stateoftheart algorithm for deciding heap entailments and uses highly tuned verified functional data structures. By modular, we mean that VeriStar can be retrofitted to other static analyses as a plugcompatible entailment checker and its soundness proof can easily be ported to other separation logics.
Proof search for propositional abstract separation logics via labelled sequents
 In POPL’14. ACM
, 2014
"... ar ..."
(Show Context)
Local reasoning about whileloops
 In International Conference on Verified Software: Theories, Tools and Experiments  Theory Workshop (VSTheory
"... Abstract. Separation logic is an extension of Hoare logic that allows local reasoning. Local reasoning is a powerful feature that often allows simpler specifications and proofs. However, this power is not used to reason about whileloops. In this paper an inference rule is presented that allows usin ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
(Show Context)
Abstract. Separation logic is an extension of Hoare logic that allows local reasoning. Local reasoning is a powerful feature that often allows simpler specifications and proofs. However, this power is not used to reason about whileloops. In this paper an inference rule is presented that allows using local reasoning to verify the partial correctness of whileloops. Instead of loop invariants this inference rule uses pre and postconditions for loops. This provides a different view of whileloops that is even without local reasoning often beneficial. 1
VeriFast for Java: A Tutorial
"... Abstract. VeriFast is a separation logicbased program verifier for Java. This tutorial introduces the verifier’s features step by step. 1 ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
(Show Context)
Abstract. VeriFast is a separation logicbased program verifier for Java. This tutorial introduces the verifier’s features step by step. 1
A Primer on Separation Logic (and Automatic Program Verification and Analysis)
"... Abstract. These are the notes to accompany a course at the Marktoberdorf PhD summer school in 2011. The course consists of an introduction to separation logic, with a slant towards its use in automatic program verification and analysis. ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
(Show Context)
Abstract. These are the notes to accompany a course at the Marktoberdorf PhD summer school in 2011. The course consists of an introduction to separation logic, with a slant towards its use in automatic program verification and analysis.