Verification of B+ Trees: An Experiment Combining Shape Analysis and Interactive Theorem Proving

Gidon Ernst, Gerhard Schellhorn, Wolfgang Reif

Interactive proofs of correctness of pointer-manipulating programs tend to be difficult. We propose an approach that integrates shape analysis and interactive theorem proving, namely TVLA and KIV. The approach uses shape analysis to automatically discharge proof obligations for various data structure properties, such as “acyclicity”. We verify the main operations of B+ trees by decomposition of the problem into three layers. At the top level is an interac- tive proof of the main recursive procedures. The actual modifications of the data structure are verified with shape analysis. To this purpose we define a mapping of typed algebraic heaps to TVLA. TVLA itself relies on various constraints and lemmas, that were proven in KIV as a foundation for an overall correct analysis.
published 2011 In Proc. of Software Engineering and Formal Methods (SEFM), pp 188-203

Publisher: Springer (LNCS)

DOI: SpringerLink