• Publications
  • Influence
Shape Analysis for Composite Data Structures
We propose a shape analysis that adapts to some of the complex composite data structures found in industrial systems-level programs. Examples of such data structures include "cyclic doubly-linkedExpand
  • 229
  • 21
Automating Separation Logic Using SMT
Separation logic (SL) has gained widespread popularity because of its ability to succinctly express complex invariants of a program's heap configurations. Several specialized provers have beenExpand
  • 103
  • 12
GRASShopper - Complete Heap Verification with Mixed Specifications
We present GRASShopper, a tool for compositional verification of heap-manipulating programs against user-provided specifications. What makes our tool unique is its decidable specification language,Expand
  • 50
  • 5
Finding minimum type error sources
Automatic type inference is a popular feature of functional programming languages. If a program cannot be typed, the compiler typically reports a single program location in its error message. ThisExpand
  • 30
  • 5
Boolean Heaps
We show that the idea of predicates on heap objects can be cast in the framework of predicate abstraction. This leads to an alternative view on the underlying concepts of three-valued shape analysisExpand
  • 82
  • 4
Complete Instantiation-Based Interpolation
Craig interpolation has been a valuable tool in program analysis and verification. Modern SMT solvers implement interpolation procedures for the theories that are most commonly used in theseExpand
  • 24
  • 4
Using First-Order Theorem Provers in the Jahob Data Structure Verification System
This paper presents our integration of efficient resolution-based theorem provers into the Jahob data structure verification system. Our experimental results show that this approach enables Jahob toExpand
  • 53
  • 3
Error Invariants
Localizing the cause of an error in an error trace is one of the most time-consuming aspects of debugging. We develop a novel technique to automate this task. For this purpose, we introduce theExpand
  • 37
  • 3
Full Accounting for Verifiable Outsourcing
Systems for verifiable outsourcing incur costs for a prover, a verifier, and precomputation; outsourcing makes sense when the combination of these costs is cheaper than not outsourcing. Yet, whenExpand
  • 33
  • 3
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 structures suchExpand
  • 60
  • 2