Title :
Verification of recursive methods on tree-like data structures
Author :
Deshmukh, Jyotirmoy ; Emerson, E. Allen
Author_Institution :
Dept. of Electr. & Comput. Eng., Univ. of Texas at Austin, Austin, TX, USA
Abstract :
Programs that manipulate heap-allocated data structures present a formidable challenge for algorithmic verification. Recursive procedures (methods) in such software libraries are used for a large number of tasks ranging from simple traversals to complex structural transformations. Verification of such methods is undecidable in general. Hence, we present a programming language fragment with a syntax similar to that of C for which correctness can be algorithmically checked. For methods written in our fragment, and specifications in the form of tree automata, verification is efficient in most cases, as illustrated by our prototype tool. Our framework can be used to verify methods such as insertion and deletion of nodes in k-ary trees, binary search trees, linked lists, linked list reversal, and rotations in balanced trees, with respect to specifications such as acyclicity, sortedness, list-ness, tree-ness, and absence of null pointer dereferences.
Keywords :
automata theory; recursive functions; tree data structures; tree searching; trees (mathematics); acyclicity specification; algorithmic verification; balanced tree; binary search tree; heap allocated data structure; k-ary tree; linked lists reversal; listness specification; programming language fragment; recursive methods verification; sortedness specification; tree automata; tree like data structure; tree-ness specification; Automata; Binary search trees; Computer science; Data engineering; Data structures; Iterative algorithms; Iterative methods; Prototypes; Tree data structures; Tree graphs;
Conference_Titel :
Formal Methods in Computer-Aided Design, 2009. FMCAD 2009
Conference_Location :
Austin, TX
Print_ISBN :
978-1-4244-4966-8
Electronic_ISBN :
978-1-4244-4966-8
DOI :
10.1109/FMCAD.2009.5351144