'Full Functional Verification of Linked Data Structures', Zee, Kuncak and Rinard
- đ¤ Speaker: Viktor Vafeiadis (Microsoft Research Cambridge)
- đ Date & Time: Wednesday 07 October 2009, 11:00 - 12:30
- đ Venue: FW11, Computer Laboratory, William Gates Building
Abstract
This talk will cover two papers:
Full Functional Verification of Linked Data Structures
http://lara.epfl.ch/kuncak/papers/ZeeETAL08FullFunctionalVerification
An Integrated Proof Language for Imperative Programs
http://lara.epfl.ch/kuncak/papers/ZeeETAL09IntegratedProofLanguageforImperativePrograms.pdf
We present the first verification of full functional correctness for a range of linked data structure implementations, including mutable lists, trees, graphs, and hash tables. Specifically, we present the use of the Jahob verification system to verify formal specifications, written in classical higher-order logic, that completely capture the desired behavior of the Java data structure implementations (with the exception of properties involving execution time and/or memory consumption). Given that the desired correctness properties include intractable constructs such as quantifiers, transitive closure, and lambda abstraction, it is a challenge to successfully prove the generated verification conditions.
Our Jahob verification system uses integrated reasoning to split each verification condition into a conjunction of simpler subformulas, then apply a diverse collection of specialized decision procedures, first-order theorem provers, and, in the worst case, interactive theorem provers to prove each subformula. Techniques such as replacing complex subformulas with stronger but simpler alterna- tives, exploiting structure inherently present in the verification con- ditions, and, when necessary, inserting verified lemmas and proof hints into the imperative source code make it possible to seamlessly integrate all of the specialized decision procedures and theorem provers into a single powerful integrated reasoning system. By appropriately applying multiple proof techniques to discharge different subformulas, this reasoning system can effectively prove the complex and challenging verification conditions that arise in this context.
Series This talk is part of the Program verification reading group. series.
Included in Lists
Note: Ex-directory lists are not shown.
![[Talks.cam]](/static/images/talkslogosmall.gif)


Wednesday 07 October 2009, 11:00-12:30