Unifying refinement and hoare-style reasoning in a logic for higher-order concurrency

Aaron Turon, Derek Dreyer, Lars Birkedal
2013 SIGPLAN notices  
Modular programming and modular verification go hand in hand, but most existing logics for concurrency ignore two crucial forms of modularity: higher-order functions, which are essential for building reusable components, and granularity abstraction, a key technique for hiding the intricacies of fine-grained concurrent data structures from the clients of those data structures. In this paper, we present CaReSL, the first logic to support the use of granularity abstraction for modular verification
more » ... of higher-order concurrent programs. After motivating the features of CaReSL through a variety of illustrative examples, we demonstrate its effectiveness by using it to tackle a significant case study: the first formal proof of (partial) correctness for Hendler et al.'s "flat combining" algorithm.
doi:10.1145/2544174.2500600 fatcat:v2zxoi27gjgvzjqavp6tg24rfm