Formal correctness of Result Checking for Priority Queues

Ružica Piskač, Harald Ganzinger, Andreas Podelski · 2005

We formally prove the correctness of the time super-efficient result checker for priority queues, which is implemented in LEDA [15]. A priority queue is a data structure that supports insertion, deletion and retrieval of the minimal element, relative to some order. A result checker for priority queues is a data structure that monitors the input and output of the priority queue. Whenever the user requests a minimal element, it checks that the returned element is indeed minimal. In order to do this, the checker makes use of a system of lower bounds. We have verified that, for every execution sequence in which the checker accepts the outputs, the priority queue returned the correct minimal elements. For the formal verification, we used the first-order theorem prover Saturate [25].

Read the paper · More papers on PaperTik