Checking and Spot-Checking the Correctness of Priority Queues
نویسندگان
چکیده
We revisit the problem of memory checking considered by Blum et al. [3]. In this model, a checker monitors the behavior of a data structure residing in unreliable memory given an arbitrary sequence of user defined operations. The checker is permitted a small amount of separate reliable memory and must fail a data structure if it is not behaving as specified and pass it otherwise. How much additional reliable memory is required by the checker? First, we present a checker for an implementation of a priority queue. The checker uses O( √ n logn) space where n is the number of operations performed. We then present a spotchecker using only O( −1 log δ−1 logn) space, that, with probability at least 1−δ, will fail the priority queue if it is -far (defined appropriately) from operating like a priority queue and pass the priority queue if it operates correctly. Finally, we then prove a range of lower bounds that complement our checkers.
منابع مشابه
Formal Correctness of Result Checking for Priority Queues
We formally prove the correctness of the time super-e cient result checker for priority queues, which is implemented in LEDA [17]. 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 ...
متن کاملChecking Linearizability of Concurrent Priority Queues
Efficient implementations of concurrent objects such as atomic collections are essential to modern computing. Programming such objects is error prone: in minimizing the synchronization overhead between concurrent object invocations, one risks the conformance to sequential specifications – or in formal terms, one risks violating linearizability. Unfortunately, verifying linearizability is undeci...
متن کاملApplications of Fuzzy Program Graph in Symbolic Checking of Fuzzy Flip-Flops
All practical digital circuits are usually a mixture of combinational and sequential logic. Flip–flops are essential to sequential logic therefore fuzzy flip–flops are considered to be among the most essential topics of fuzzy digital circuit. The concept of fuzzy digital circuit is among the most interesting applications of fuzzy sets and logic due to the fact that if there has to be an ultimat...
متن کاملReachability checking in complex and concurrent software systems using intelligent search methods
Software system verification is an efficient technique for ensuring the correctness of a software product, especially in safety-critical systems in which a small bug may have disastrous consequences. The goal of software verification is to ensure that the product fulfills the requirements. Studies show that the cost of finding and fixing errors in design time is less than finding and fixing the...
متن کاملModel Checking Generic Container Implementations
Model checking techniques have been successfully applied to the veriication of correctness properties of complex hardware systems and communication protocols. This success has fueled the application of these techniques to software systems. To date, those eeorts have been targeted at concurrent software whose complexity lies, primarily, in the large number of possible execution orderings of asyn...
متن کامل