• Publications
  • Influence
Abstraction for concurrent objects
This study formally shows that these conditions can be characterized in terms of observational refinement and provides a new understanding of sequential consistency and linearizability in Terms of abstraction of dependency between computation steps of client programs. Expand
Online detection of effectively callback free objects with applications to smart contracts
By running the history of all execution traces in Ethereum, it is verified that virtually all existing contract executions, excluding these of the DAO or of contracts with similar known vulnerabilities, are ECF, which enables modular reasoning about objects with encapsulated state. Expand
Local Reasoning for Storable Locks and Threads
We present a resource oriented program logic that is able to reason about concurrent heap-manipulating programs with unbounded numbers of dynamically-allocated locks and threads. The logic isExpand
Verifying linearizability with hindsight
The Hindsight Lemma allows us to unlock a perhaps-surprising intuition: a high degree of interference makes non-trivial highly-concurrent algorithms in some cases much easier to verify than less concurrent ones. Expand
A semantics for procedure local heaps and its abstractions
An analysis method is presented that uses a characterization of a procedure's behavior in which parts of the heap not relevant to the procedure are ignored and a new static-analysis algorithm is developed using canonical abstraction. Expand
Comparison Under Abstraction for Verifying Linearizability
A static analysis for verifying linearizability of concurrent unbounded linked data structures is presented and the ability to prove that two (unboundedsize) memory layouts of two programs are isomorphic in the presence of abstraction is proved. Expand
Interprocedural Shape Analysis for Cutpoint-Free Programs
A framework for interprocedural shape analysis, which is context- and flow-sensitive with the ability to perform destructive pointer updates and makes the analysis modular in the heap and thus allows reusing the effect of a procedure at different call-sites and even between different contexts occurring at the same call-site. Expand
Towards an object store
A detailed description of how an object store works is presented and the design of Antara, the prototype object store, is described, which is able to service roughly 14000 4K I/O requests per second. Expand
Interprocedural Shape Analysis for Recursive Programs
A novel technique for shape analysis of recursive programs that can verify the absence of memory leaks in many recursive programs; this is beyond the capabilities of existing algorithms. Expand
Modular Verification of Concurrency-Aware Linearizability
A thread- and procedure-modular verification technique for reasoning about CA-objects and their clients is developed and the first proof of linearizability of the elimination stack is presented, in which the stack's elimination subcomponent is specified and verified independently of its particular usage by the stack. Expand