Verifiable C is a useful tool for proving correctness of C programs, including lock-based concurrent programs. But surprisingly, the straightforward extension of separation logic to concurrency is not strong enough to prove interesting properties of concurrent programs: we cannot even prove that 1 + 1 = 2! The standard solution to this problem is to add ghost state, which allows threads to remember information about shared state. In this talk, I will explain the general mechanism of ghost state in concurrent separation logic, and show how it turns CSL’s local reasoning into a technique for proving global properties like linearizability. With the recent addition of ghost state to VST, we can now prove the correctness of C implementations of concurrent data structures.

Tue 19 Jun

Displayed time zone: Eastern Time (US & Canada) change

14:00 - 15:40
Concurrency and Concurrent Operating SystemsDeepSpec at Columbus Ballroom B
14:00
30m
Talk
Multicore and Multithreaded Linking for Concurrent CertiKOS
DeepSpec
Jieung Kim Yale University, USA
14:30
30m
Talk
Verifying seL4 towards Concurrency
DeepSpec
Thomas Sewell UNSW, Australia
15:00
30m
Talk
Specifying and Verifying Concurrent Programs with Ghost State
DeepSpec
William Mansky Princeton University