Rooting for Efficiency: Mechanised Reasoning about Array-Based Trees in Separation Logicdistinguished paper
Array-based encodings of tree structures are often preferable to linked or abstract data type-based representations for efficiency reasons. Compared to the more traditional encodings, array-based trees do not immediately offer convenient induction principles, and the programs that manipulate them often implement traversals non-recursively, requiring complex loop invariants for their correctness proofs.
In this work, we provide a set of definitions, lemmas, and reasoning principles that streamline proofs about array-based trees and programs that work with them. We showcase our proof techniques via a series of small but characteristic examples, culminating with a large case study: verification of a C implementation of a recently published tree clock data structure in a Separation Logic embedded into Coq.
Tue 16 JanDisplayed time zone: London change
14:00 - 15:30 | |||
14:00 30mTalk | Compositional Verification of Concurrent C Programs with Search Structure Templates CPP Duc-Than Nguyen University of Illinois at Chicago, Lennart Beringer Princeton University, William Mansky University of Illinois Chicago, Shengyi Wang Princeton University, USA Pre-print | ||
14:30 30mTalk | Rooting for Efficiency: Mechanised Reasoning about Array-Based Trees in Separation Logicdistinguished paper CPP Qiyuan Zhao National University of Singapore, George Pîrlea National University of Singapore, Zhendong Ang National University of Singapore, Umang Mathur National University of Singapore, Ilya Sergey National University of Singapore Pre-print | ||
15:00 30mTalk | Unification for Subformula Linking under Quantifiers CPP Pre-print |