Compositional shape analysis by means of bi-abduction
This paper describes a compositional shape analysis, where each procedure is analyzed
independently of its callers. The analysis uses an abstract domain based on a restricted …
independently of its callers. The analysis uses an abstract domain based on a restricted …
Static automated program repair for heap properties
Static analysis tools have demonstrated effectiveness at finding bugs in real world code.
Such tools are increasingly widely adopted to improve software quality in practice …
Such tools are increasingly widely adopted to improve software quality in practice …
Automated verification of shape, size and bag properties via user-defined predicates in separation logic
Despite their popularity and importance, pointer-based programs remain a major challenge
for program verification. In recent years, separation logic has emerged as a contender for …
for program verification. In recent years, separation logic has emerged as a contender for …
Semantics-based program verifiers for all languages
We present a language-independent verification framework that can be instantiated with an
operational semantics to automatically generate a program verifier. The framework treats …
operational semantics to automatically generate a program verifier. The framework treats …
Full functional verification of linked data structures
We present the first verification of full functional correctness for a range of linked data
structure implementations, including mutable lists, trees, graphs, and hash tables …
structure implementations, including mutable lists, trees, graphs, and hash tables …
Relational inductive shape analysis
Shape analyses are concerned with precise abstractions of the heap to capture detailed
structural properties. To do so, they need to build and decompose summaries of disjoint …
structural properties. To do so, they need to build and decompose summaries of disjoint …
Structuring the synthesis of heap-manipulating programs
This paper describes a deductive approach to synthesizing imperative programs with
pointers from declarative specifications expressed in Separation Logic. Our synthesis …
pointers from declarative specifications expressed in Separation Logic. Our synthesis …
Automating separation logic with trees and data
Separation logic (SL) is a widely used formalism for verifying heap manipulating programs.
Existing SL solvers focus on decidable fragments for list-like structures. More complex data …
Existing SL solvers focus on decidable fragments for list-like structures. More complex data …
Synthesizing data structure manipulations from storyboards
We present the Storyboard Programming framework, a new synthesis system designed to
help programmers write imperative low-level data-structure manipulations. The goal of this …
help programmers write imperative low-level data-structure manipulations. The goal of this …
Decision procedures for algebraic data types with abstractions
We describe a family of decision procedures that extend the decision procedure for
quantifier-free constraints on recursive algebraic data types (term algebras) to support …
quantifier-free constraints on recursive algebraic data types (term algebras) to support …