Litcius/Paper detail

Verifying concurrent search structure templates

Siddharth Krishna, Nisarg Patel, Dennis Shasha, Thomas Wies

202019 citationsDOI

Abstract

Concurrent separation logics have had great success reasoning about concurrent data structures. This success stems from their application of modularity on multiple levels, leading to proofs that are decomposed according to program structure, program state, and individual threads. Despite these advances, it remains difficult to achieve proof reuse across different data structure implementations. For the large class of search structures, we demonstrate how one can achieve further proof modularity by decoupling the proof of thread safety from the proof of structural integrity. We base our work on the template algorithms of Shasha and Goodman that dictate how threads interact but abstract from the concrete layout of nodes in memory. Building on the recently proposed flow framework of compositional abstractions and the separation logic Iris, we show how to prove correctness of template algorithms, and how to instantiate them to obtain multiple verified implementations.

Topics & Concepts

Computer scienceSeparation logicTemplateData structureCorrectnessMathematical proofGas meter proverProgramming languageImplementationThread (computing)Separation of concernsModularity (biology)Theoretical computer scienceReuseConcurrent data structureParallel computingGeneticsGeometrySoftwareBiologyMathematicsEcologyDistributed systems and fault toleranceLogic, programming, and type systemsSecurity and Verification in Computing