Indexed Predicate Discovery for Unbounded System Verification [chapter]

Shuvendu K. Lahiri, Randal E. Bryant
2004 Lecture Notes in Computer Science  
Predicate abstraction has been proven effective for verifying several infinite-state systems. In predicate abstraction, an abstract system is automatically constructed given a set of predicates. Predicate abstraction coupled with automatic predicate discovery provides for a completely automatic verification scheme. For systems with unbounded integer state variables (e.g. software), counterexample guided predicate discovery has been successful in identifying the neccessay predicates. For
more » ... g systems with function state variables, which include systems with unbounded memories (microprocessors), arrays in programs, and parameterized systems, an extension to predicate abstraction has been suggested which uses predicates with free (index) variables. Unfortunately, counterexample guided predicate discovery is not applicable to this method. In this paper, we propose some simple heuristics for discovering indexed predicates. We illustrate the effectiveness of the approach for verifying safety properties of two systems: (i) a version of the Bakery mutual exclusion protocol, and (ii) a directory-based cache coherence protocol with unbounded FIFO channels per client.
doi:10.1007/978-3-540-27813-9_11 fatcat:m3ujge5quffcznhfquyt4gesxq