TY - GEN
T1 - Recursive proofs for inductive tree data-structures
AU - Madhusudan, P.
AU - Qiu, Xiaokang
AU - Stefanescu, Andrei
PY - 2012
Y1 - 2012
N2 - We develop logical mechanisms and procedures to facilitate the verification of full functional properties of inductive tree datastructures using recursion that are sound, incomplete, but terminating. Our contribution rests in a new extension of first-order logic with recursive definitions called Dryad, a syntactical restriction on pre- and post-conditions of recursive imperative programs using Dryad, and a systematic methodology for accurately unfolding the footprint on the heap uncovered by the program that leads to finding simple recursive proofs using formula abstraction and calls to SMT solvers. We evaluate our methodology empirically and show that several complex tree data-structure algorithms can be checked against full functional specifications automatically, given pre- and post-conditions. This results in the first automatic terminating methodology for proving a wide variety of annotated algorithms on tree data-structures correct, including max-heaps, treaps, red-black trees, AVL trees, binomial heaps, and B-trees.
AB - We develop logical mechanisms and procedures to facilitate the verification of full functional properties of inductive tree datastructures using recursion that are sound, incomplete, but terminating. Our contribution rests in a new extension of first-order logic with recursive definitions called Dryad, a syntactical restriction on pre- and post-conditions of recursive imperative programs using Dryad, and a systematic methodology for accurately unfolding the footprint on the heap uncovered by the program that leads to finding simple recursive proofs using formula abstraction and calls to SMT solvers. We evaluate our methodology empirically and show that several complex tree data-structure algorithms can be checked against full functional specifications automatically, given pre- and post-conditions. This results in the first automatic terminating methodology for proving a wide variety of annotated algorithms on tree data-structures correct, including max-heaps, treaps, red-black trees, AVL trees, binomial heaps, and B-trees.
KW - Heap analysis
KW - Recursive program
KW - SMT solver
KW - Tree
UR - http://www.scopus.com/inward/record.url?scp=84857805008&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84857805008&partnerID=8YFLogxK
U2 - 10.1145/2103656.2103673
DO - 10.1145/2103656.2103673
M3 - Conference contribution
AN - SCOPUS:84857805008
SN - 9781450310833
T3 - Conference Record of the Annual ACM Symposium on Principles of Programming Languages
SP - 123
EP - 135
BT - POPL'12 - Proceedings of the 39th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
T2 - 39th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL'12
Y2 - 25 January 2012 through 27 January 2012
ER -