SpinS: Extending LTSmin with Promela through SpinJa

  • Authors:
  • Freark Van Der Berg;Alfons Laarman

  • Affiliations:
  • -;-

  • Venue:
  • Electronic Notes in Theoretical Computer Science (ENTCS)
  • Year:
  • 2013

Quantified Score

Hi-index 0.00

Visualization

Abstract

We show how Promela can be supported by the high-performance generic model checker LTSmin. The success of the Spin model checker has made Promela an important modeling language. SpinJa was created as a Java implementation of Spin, in an effort to make the model checker easily extendible and reusable while maintaining some of its efficiency. While these goals were certainly met, the downside of SpinJa remained its dependability on Java, degrading performance by a factor 5 and obstructing support for embedded C code in Promela models. LTSmin aims at language-independence through the definition of the generic Partitioned Next-State Interface (pins). The toolset has shown that a generic model checker can indeed be competitive in terms of efficiency by supporting several languages from different paradigms and implementing many analysis algorithms that compete with other state-of-the-art model checkers. We extended SpinJa to emit C code that implements the pins interface. Our new version of SpinJa, called SpinS (Spin + pins), also improves Promela support, greatly extending the support of models beyond toy and academic examples. In this paper, we demonstrate the usage of LTSmin@?s analysis algorithms: multi-core model checking of assertion violations, deadlocks and never claims (full LTL), inspection of error trails, partial order reduction (POR), state compression, symbolic reachability using (multi-core) decision diagrams and distributed reachability. Our experiments show that the performance of these methods beats other leading model checkers.