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 is inspired by concurrent separation logic, but handles these more realistic concurrency primitives. We demonstrate that the proposed logic allows local reasoning about programs for which there exists a notion of dynamic ownership of heap parts by locks and threads.

[1]  Xinyu Feng,et al.  Modular verification of concurrent assembly code with dynamic thread creation and termination , 2005, ICFP '05.

[2]  Stephen Brookes A semantics for concurrent separation logic , 2007, Theor. Comput. Sci..

[3]  Xinyu Feng,et al.  On the Relationship Between Concurrent Separation Logic and Assume-Guarantee Reasoning , 2007, ESOP.

[4]  Richard Bornat,et al.  Variables as Resource in Hoare Logics , 2006, 21st Annual IEEE Symposium on Logic in Computer Science (LICS'06).

[5]  Glynn Winskel,et al.  Independence and Concurrent Separation Logic , 2006, 21st Annual IEEE Symposium on Logic in Computer Science (LICS'06).

[6]  Peter W. O'Hearn,et al.  Permission accounting in separation logic , 2005, POPL '05.

[7]  Peter W. O'Hearn,et al.  BI as an assertion language for mutable data structures , 2001, POPL '01.

[8]  Stephen D. Brookes,et al.  Variables as Resource for Shared-Memory Programs: Semantics and Soundness , 2006, MFPS.

[9]  John C. Reynolds,et al.  Separation logic: a logic for shared mutable data structures , 2002, Proceedings 17th Annual IEEE Symposium on Logic in Computer Science.

[10]  Gavin M. Bierman,et al.  Separation logic and abstraction , 2005, POPL '05.

[11]  Peter W. O'Hearn,et al.  Separation and information hiding , 2004, POPL.

[12]  Peter W. O'Hearn,et al.  Local Reasoning about Programs that Alter Data Structures , 2001, CSL.

[13]  Peter W. O'Hearn,et al.  Resources, Concurrency and Local Reasoning , 2004, CONCUR.

[14]  Stephen D. Brookes,et al.  A Semantics for Concurrent Separation Logic , 2004, CONCUR.

[15]  Viktor Vafeiadis,et al.  A Marriage of Rely/Guarantee and Separation Logic , 2007, CONCUR.

[16]  Maurice Herlihy,et al.  Proving correctness of highly-concurrent linearisable objects , 2006, PPoPP '06.

[17]  Peter Baumgartner,et al.  Workshop on Disproving: Non-Theorems, Non-Validity, Non-Provability , 2004 .

[18]  Anna Philippou,et al.  Tools and Algorithms for the Construction and Analysis of Systems , 2018, Lecture Notes in Computer Science.

[19]  Shmuel Sagiv Thread-Modular Shape Analysis , 2009, VMCAI.

[20]  Vincent Danos,et al.  Reversible Communicating Systems , 2004, CONCUR.

[21]  Peter W. O'Hearn,et al.  Local Action and Abstract Separation Logic , 2007, 22nd Annual IEEE Symposium on Logic in Computer Science (LICS 2007).