Verifying Red-Black Trees
Paolo Baldan (1) -
A. Corradini (2) -
Javier Esparza(3) -
Tobias Heindel(3) -
Barbara König(3) -
Vitali Kozioura(3)
(1) Dipartimento di Informatica, Università Ca' Foscari di Venezia, Italia.
(1) Dipartimento di Informatica, Università di Pisa, Italia.
(3)Institut für Formale Methoden der Informatik, Universität
Stuttgart, Germany.
Abstract:
We show how to verify the correctness of insertion of elements into red-black
trees--a form of balanced search trees--using analysis techniques
developed for graph rewriting. We first model red-black trees
and operations on them using hypergraph rewriting. Then
we use the tool AUGUR, which computes approximated
unfoldings, in order to show that insertion preserves the property
that there are no two consecutive red nodes in a tree, a requirement
for red-black trees. Furthermore, we prove that the tree remains balanced
by exploiting a type system that can be obtained as an instance of a
general framework.