• Publications
  • Influence
NV-Heaps: making persistent objects fast and safe with next-generation, non-volatile memories
TLDR
We present a lightweight, high-performance persistent object system called NV-heaps that provides transactional semantics while preventing these errors and providing a model for persistence that is easy to use and reason about. Expand
  • 590
  • 100
  • PDF
Lazy abstraction
TLDR
An algorithm for model checking safety properties using lazy abstraction to integrate and optimize the three phases of the abstract-check-refine loop. Expand
  • 1,198
  • 91
  • PDF
The software model checker Blast
TLDR
Blast is an automatic verification tool for checking temporal safety properties of C programs based on lazy predicate abstraction and interpolation-based predicate discovery. Expand
  • 415
  • 35
  • PDF
Software Verification with BLAST
TLDR
Blast (the Berkeley Lazy Abstraction Software verification Tool) is a verification system for checking safety properties of C programs using automatic property-driven construction and model checking of software abstractions. Expand
  • 503
  • 26
  • PDF
RELAY: static race detection on millions of lines of code
TLDR
Data races occur when multiple threads are about to access the same piece of memory, and at least one of those accesses is a write. Expand
  • 299
  • 24
  • PDF
A Practical and Complete Approach to Predicate Refinement
TLDR
Predicate abstraction is a method of synthesizing the strongest inductive invariant of a system expressible as Boolean combination of a given set of atomic predicates. Expand
  • 184
  • 23
  • PDF
The software model checker B last : Applications to software engineering
TLDR
This paper gives an introduction to Blast and demonstrates, through two case studies, how it can be applied to program verification and test-case generation. Expand
  • 413
  • 21
Abstractions from proofs
TLDR
We use Craig interpolation to efficiently construct, from a given abstract error trace which cannot be concretized, a parsominous abstraction that removes the trace. Expand
  • 286
  • 20
  • PDF
Life, death, and the critical transition: finding liveness bugs in systems code
TLDR
We present heuristics to find a large class of liveness violations and the critical transition of the execution in PASTRY, CHORD, a reliable transport protocol and an overlay tree. Expand
  • 218
  • 20
Mace: language support for building distributed systems
TLDR
A C++ language extension and source-to-source compiler that translates a concise but expressive distributed system specification into a C++ implementation. Expand
  • 227
  • 19
  • PDF