Iris: Monoids and Invariants as an Orthogonal Basis for Concurrent Reasoning

We present Iris, a concurrent separation logic with a simple premise: monoids and invariants are all you need. Partial commutative monoids enable us to express---and invariants enable us to enforce---user-defined *protocols* on shared state, which are at the conceptual core of most recent program logics for concurrency. Furthermore, through a novel extension of the concept of a *view shift*, Iris supports the encoding of *logically atomic specifications*, i.e., Hoare-style specs that permit the client of an operation to treat the operation essentially as if it were atomic, even if it is not.

[1]  Nir Shavit,et al.  A scalable lock-free stack algorithm , 2010, J. Parallel Distributed Comput..

[2]  François Pottier,et al.  The essence of monotonic state , 2011, TLDI '11.

[3]  Peter W. O'Hearn,et al.  Blaming the client: on data refinement in the presence of pointers , 2009, Formal Aspects of Computing.

[4]  Lars Birkedal,et al.  Fictional Separation Logic , 2012, ESOP.

[5]  Edward A. Ashcroft,et al.  Proving Assertions about Parallel Programs , 1975, J. Comput. Syst. Sci..

[6]  Hongseok Yang,et al.  Step-indexed kripke models over recursive worlds , 2011, POPL '11.

[7]  Robin Milner,et al.  Communicating and mobile systems - the Pi-calculus , 1999 .

[8]  Cliff B. Jones,et al.  Tentative steps toward a development method for interfering programs , 1983, TOPL.

[9]  Lars Birkedal,et al.  ModuRes: A Coq Library for Modular Reasoning About Concurrent Higher-Order Imperative Programming Languages , 2015, ITP.

[10]  Peter W. O'Hearn,et al.  Resources, concurrency, and local reasoning , 2007 .

[11]  Lars Birkedal,et al.  Unifying refinement and hoare-style reasoning in a logic for higher-order concurrency , 2013, ICFP.

[12]  Viktor Vafeiadis,et al.  Modular fine-grained concurrency verification , 2008 .

[13]  P ? ? ? ? ? ? ? % ? ? ? ? , 1991 .

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

[15]  Leslie Lamport,et al.  How to Make a Multiprocessor Computer That Correctly Executes Multiprocess Programs , 2016, IEEE Transactions on Computers.

[16]  永田 守男,et al.  Verifying Properties of Parallel Programs : An Axiomatic Approach , 1976 .

[17]  Mark A. Hillebrand,et al.  Invariants, Modularity, and Rights , 2009, Ershov Memorial Conference.

[18]  Philippa Gardner,et al.  TaDA: A Logic for Time and Data Abstraction , 2014, ECOOP.

[19]  Lars Birkedal,et al.  Impredicative Concurrent Abstract Predicates , 2014, ESOP.

[20]  Xinyu Feng,et al.  Modular verification of linearizability with non-fixed linearization points , 2013, PLDI 2013.

[21]  Lars Birkedal Modular reasoning about concurrent higher-order imperative programs , 2014, POPL.

[22]  Ilya Sergey,et al.  Communicating State Transition Systems for Fine-Grained Concurrent Resources , 2014, ESOP.

[23]  Xinyu Feng Local rely-guarantee reasoning , 2009, POPL '09.

[24]  P. Cochat,et al.  Et al , 2008, Archives de pediatrie : organe officiel de la Societe francaise de pediatrie.

[25]  Lars Birkedal,et al.  Logical relations for fine-grained concurrency , 2013, POPL.

[26]  Martín Abadi,et al.  The Existence of Refinement Mappings , 1988, LICS.

[27]  Davide Sangiorgi,et al.  Communicating and Mobile Systems: the π-calculus, , 2000 .

[28]  Aleksandar Nanevski,et al.  Subjective auxiliary state for coarse-grained concurrency , 2013, POPL.

[29]  Yu Zhang,et al.  Reasoning about Optimistic Concurrency Using a Program Logic for History , 2010, CONCUR.

[30]  Hongseok Yang,et al.  Views: compositional reasoning for concurrent programs , 2013, POPL.

[31]  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.

[32]  Viktor Vafeiadis,et al.  Concurrent Abstract Predicates , 2010, ECOOP.

[33]  Derek Dreyer,et al.  Superficially substructural types , 2012, ICFP '12.

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

[35]  Derek Dreyer,et al.  State-dependent representation independence , 2009, POPL '09.

[36]  Pierre America,et al.  Solving Reflexive Domain Equations in a Category of Complete Metric Spaces , 1987, J. Comput. Syst. Sci..

[37]  Frank Piessens,et al.  Expressive modular fine-grained concurrency specification , 2011, POPL '11.

[38]  Andrew W. Appel,et al.  A Fresh Look at Separation Algebras and Share Accounting , 2009, APLAS.

[39]  David Walker,et al.  Objects in the pi-Calculus , 1992, Inf. Comput..

[40]  Maurice Herlihy,et al.  Linearizability: a correctness condition for concurrent objects , 1990, TOPL.