PKind: A parallel k-induction based model checker

Reading time: 5 minute
...

📝 Original Info

  • Title: PKind: A parallel k-induction based model checker
  • ArXiv ID: 1111.0372
  • Date: 2011-11-03
  • Authors: Temesghen Kahsai (The University of Iowa), Cesare Tinelli (The University of Iowa)

📝 Abstract

PKind is a novel parallel k-induction-based model checker of invariant properties for finite- or infinite-state Lustre programs. Its architecture, which is strictly message-based, is designed to minimize synchronization delays and easily accommodate the incorporation of incremental invariant generators to enhance basic k-induction. We describe PKind's functionality and main features, and present experimental evidence that PKind significantly speeds up the verification of safety properties and, due to incremental invariant generation, also considerably increases the number of provable ones.

💡 Deep Analysis

📄 Full Content

Jiri Barnat and Keijo Heljanko (Eds.) 10th International Workshop on Parallel and Distributed Methods in verifiCation (PDMC 2011) EPTCS 72, 2011, pp. 55–62, doi:10.4204/EPTCS.72.6 c⃝T. Kahsai & C. Tinelli This work is licensed under the Creative Commons Attribution License. PKIND: A parallel k-induction based model checker∗ Temesghen Kahsai The University of Iowa temesghen-kahsaiazene@uiowa.edu Cesare Tinelli The University of Iowa cesare-tinelli@uiowa.edu PKIND is a novel parallel k-induction-based model checker of invariant properties for finite- or infinite-state Lustre programs. Its architecture, which is strictly message-based, is designed to min- imize synchronization delays and easily accommodate the incorporation of incremental invariant generators to enhance basic k-induction. We describe PKIND’s functionality and main features, and present experimental evidence that PKIND significantly speeds up the verification of safety proper- ties and, due to incremental invariant generation, also considerably increases the number of provable ones. 1 Introduction PKIND is a parallel model checker based on the k-induction principle, used to verify invariant properties of programs written in the specification/programming language Lustre [8]. Lustre is a synchronous data- flow language that operates on infinite streams of values of three basic types: bool, int (finite precision integers), and real (floating point numbers). PKIND assumes an idealized version of Lustre, which treats int as the type of mathematical integers, and real as the type of rational numbers. Its reasoning about Lustre programs is done in the context of a first-order quantifier-free logic that includes uninterpreted functions and mixed real-integer linear arithmetic. Idealized Lustre programs can be faithfully and read- ily encoded as transition systems in this logic (see [7] for more details). PKIND relies on the SMT solvers CVC3 [3] and Yices [5], in alternative, as satisfiability solvers for this logic. PKIND’s architecture is strictly message-based and designed to minimize synchronization delays and easily accommodate the concurrent automatic generation of invariants to bolster basic k-induction. A first level of parallelism is introduced in the k-induction procedure itself by executing the base and the inductive steps concurrently. A second level allows the addition of one or more independent processes that incrementally generate auxiliary invariants for the system being verified. These invariants are fed to the k-induction loop as soon as they are produced and used to strengthen the induction hypothesis. To the best of our knowledge, this sort of parallel architecture has not been presented in previous work on parallel model checking. Our approach is orthogonal to those in previous work [2] that focus on other sources of parallelism, including parallelization across the processes of an asynchronous transition system. Most closely related to ours is the work by E´en et al. [6] who describe a sequential imple- mentation of SAT-based k-induction in which a Bounded Model Checking loop is interleaved with one performing just the inductive step of k-induction. Our approach goes beyond that work, not only in using a genuinely parallel architecture, but also by incorporating concurrent invariant generation processes. Another line of related work is exemplified by [1, 13, 4], which discuss a different type of parallelism in the BMC algorithm. There, satisfiability checks are done concurrently within the SAT solver. This too is orthogonal to our approach, as the parallelism we exploit is not at the level of the underlying solver, but at the level of the k-induction procedure. ∗Work partially supported by AFOSR grant #FA9550-09-1-0517 and NSF grant #1049674. 56 PKind In the current version of PKIND, invariant generation is achieved using a novel incremental version of an offline invariant discovery scheme we developed in previous work [9]. This general scheme consists in sifting through a large set of formulas generated automatically from a transition system’s description, looking for possible invariants. The formulas in the set, the candidate invariants, are all instances of a template encoding a decidable relation over the system’s data types. In [9], a single invariant is generated at the end of the process as a conjunction of template instances, each of which is k-inductive for some k. In contrast, in the version developed for PKIND, instances that are k-inductive for the same k are discovered and returned before instances that are k′-inductive for some k′ > k. Before describing PKIND’s architecture, we briefly recall the definition of k-induction [12]. Assume a logic L and a transition system S specified in the logic by an initial state condition I(x) and a two-state transition relation T(x,x′) where x,x′ are vectors of state variables. A state property P(x) is invariant for S, i.e., satisfied by every reachable state of S, if the following entailments hold in L f

Reference

This content is AI-processed based on open access ArXiv data.

Start searching

Enter keywords to search articles

↑↓
ESC
⌘K Shortcut