A Certified Decision Procedure for Tree Shares

We develop a certified decision procedure for reasoning about systems of equations over the “tree share” fractional permission model of Dockins et al. Fractional permissions can reason about shared ownership of resources, e.g. in a concurrent program. We imported our certified procedure into the HIP/SLEEK verification system and found bugs in both the previous, uncertified, decision procedure and HIP/SLEEK itself. In addition to being certified, our new procedure improves previous work by correctly handling negative clauses and enjoys better performance.

[1]  João Lourenço,et al.  Dynamic Validation of Contracts in Concurrent Code , 2015, EUROCAST.

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

[3]  Lars Birkedal,et al.  Charge! - A Framework for Higher-Order Separation Logic in Coq , 2012, ITP.

[4]  Matthew J. Parkinson,et al.  Local reasoning for Java , 2005 .

[5]  Xuan Bach Le,et al.  Decidability and Complexity of Tree Share Formulas , 2016, FSTTCS.

[6]  Wei-Ngan Chin,et al.  Threads as Resource for Concurrency Verification , 2015, PEPM.

[7]  Qiang Liu,et al.  Thread-Modular Model Checking with Iterative Refinement , 2012, NASA Formal Methods.

[8]  John Tang Boyland,et al.  Checking Interference with Fractional Permissions , 2003, SAS.

[9]  Andrew W. Appel,et al.  Oracle Semantics for Concurrent Separation Logic , 2008, ESOP.

[10]  Jochen Hoenicke,et al.  Thread modularity at many levels: a pearl in compositional verification , 2017, POPL.

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

[12]  Andrew W. Appel Efficient Verified Red-Black Trees , 2011 .

[13]  Lars Birkedal,et al.  Caper - Automatic Verification for Fine-Grained Concurrency , 2017, ESOP.

[14]  Nicholas Pippenger,et al.  Pure versus impure Lisp , 1997, TOPL.

[15]  Aquinas Hobor,et al.  Barriers in Concurrent Separation Logic: Now With Tool Support! , 2012, Log. Methods Comput. Sci..

[16]  Nikolaj Bjørner,et al.  Z3: An Efficient SMT Solver , 2008, TACAS.

[17]  Shengchao Qin,et al.  Automated Verification of Shape and Size Properties Via Separation Logic , 2007, VMCAI.

[18]  Andrew W. Appel,et al.  Program Logics for Certified Compilers , 2014 .

[19]  Shengchao Qin,et al.  Automated Verification of CountDownLatch , 2019, ArXiv.

[20]  Xuan Bach Le,et al.  Decision Procedures over Sophisticated Fractional Permissions , 2012, APLAS.

[21]  Ilya Sergey,et al.  Mechanized verification of fine-grained concurrent programs , 2015, PLDI.

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

[23]  Tomás Vojnar,et al.  A platform for search-based testing of concurrent software , 2010, PADTAD '10.

[24]  Marieke Huisman,et al.  A Symbolic Approach to Permission Accounting for Concurrent Reasoning , 2015, 2015 14th International Symposium on Parallel and Distributed Computing.

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

[26]  Andrew W. Appel,et al.  Oracle semantics , 2008 .

[27]  John Tang Boyland,et al.  Constraint Semantics for Abstract Read Permissions , 2014, FTfJP@ECOOP.

[28]  Jules Villard,et al.  Heaps and Hops , 2011 .

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

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

[31]  Aquinas Hobor,et al.  Barriers in Concurrent Separation Logic , 2011, ESOP.

[32]  Ronald L. Rivest,et al.  Introduction to Algorithms, third edition , 2009 .

[33]  Lars Birkedal,et al.  Iris: Monoids and Invariants as an Orthogonal Basis for Concurrent Reasoning , 2015, POPL.

[34]  Peter Müller,et al.  Viper: A Verification Infrastructure for Permission-Based Reasoning , 2016, VMCAI.

[35]  Adam Chlipala,et al.  The bedrock structured programming system: combining generative metaprogramming and hoare logic in an extensible program verifier , 2013, ICFP.