Skip to main content

Practical Stutter-Invariance Checks for \(\omega \)-Regular Languages

  • Conference paper
  • First Online:

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 9232))

Abstract

An \(\omega \)-regular language is stutter-invariant if it is closed by the operation that duplicates some letter in a word or that removes some duplicate letter. Model checkers can use powerful reduction techniques when the specification is stutter-invariant.

We propose several automata-based constructions that check whether a specification is stutter-invariant. These constructions assume that a specification and its negation can be translated into Büchi automata, but aside from that, they are independent of the specification formalism. These transformations were inspired by a construction due to Holzmann and Kupferman, but that we broke down into two operations that can have different realizations, and that can be combined in different ways. As it turns out, implementing only one of these operations is needed to obtain a functional stutter-invariant check.

Finally we have implemented these techniques in a tool so that users can easily check whether an LTL or PSL formula is stutter-invariant.

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Notes

  1. 1.

    While testing our implementation we found Lemma 2 of [9] to be incorrect w.r.t. the \(\cap \) operator. A counterexample is the SERE \(r=a\cap (a;a)\) since \(L_\sharp (r)=\emptyset \) but \(L_\sharp (\kappa (r))=\{a\}\). Also Lemma 4 is incorrect w.r.t. the operator; a counterexample is the PSL formula a b which gets rewritten as \(a^+\) b: two stutter-invariant formulas with different languages. We are in contact with the authors. (Note that these lemmas are numbered 4 and 9 in the authors’ copy.).

  2. 2.

    \(A_1\), \(A_2\), and \(A_3\) are equivalent automata. The only reason we used two acceptance sets in \(A_1\) was to demonstrate how \(\mathsf {cl}\) deals with multiple acceptance sets.

  3. 3.

    Unlike automata-based constructions such as \(\mathsf {cl}(\mathsf {sl}(A))\), the formula \(\tau '(\varphi )\) is not necessarily an over-approximation of \(\varphi \), so the equivalence check between \(\varphi \) and \(\tau '(\varphi )\) cannot be replaced by a simple inclusion check.

  4. 4.

    The only actual implementation of a construction similar to the one of Holzmann and Kupferman [19] that we know about is in ltl2dstar[20], but it decides only stutter-invariance for one letter at a time, is used to improve Safra’s construction, and is not directly accessible to the user.

  5. 5.

    Measurements were done on a dedicated Intel Xeon E5-2620 2 GHz, running Debian GNU/Linux, with the memory limited to 32 GB (out of the 64 GB installed).

  6. 6.

    A better implementation of this check would be to construct the automaton for \(\varphi \leftrightarrow \tau '(\varphi )\) on-the-fly during its emptiness check, as done in dedicated satifiability checkers [27]. Alas, the implementation of our algorithm for translating LTL/PSL formulas into TGBA is not implemented in a way that would allow an on-the-fly construction. So this experiment should not be read as a dismissal of the idea of testing whether \(\mathscr {L}(A_{\lnot (\varphi \leftrightarrow \tau '(\varphi ))})=\emptyset \) but simply as a justification of why we used \(\mathscr {L}(A_{\tau '(\varphi )}\otimes A_{\lnot \varphi })=\emptyset \wedge \mathscr {L}(A_{\lnot \tau '(\varphi )}\otimes A_{\varphi })=\emptyset \) in our former implementation.

References

  1. Property specification language reference manual v1.1. Accellera (2004). http://www.eda.org/vfv/

  2. Babiak, T., Křetínský, M., Řehák, V., Strejček, J.: LTL to Büchi automata translation: fast and more deterministic. In: Flanagan, C., König, B. (eds.) TACAS 2012. LNCS, vol. 7214, pp. 95–109. Springer, Heidelberg (2012)

    Chapter  Google Scholar 

  3. Babiak, T., Blahoudek, F., Duret-Lutz, A., Klein, J., Křetínský, J., Müller, D., Parker, D., Strejček, J.: The Hanoi omega-automata format. In: Kroening, D., Păsăreanu, C.S. (eds.) CAV 2015. LNCS, vol. 9206, pp. 479–486. Springer, Heidelberg (2015)

    Chapter  Google Scholar 

  4. Baier, C., Katoen, J.-P.: Principles of Model Checking. The MIT Press, Cambridge (2008)

    MATH  Google Scholar 

  5. Barnat, J., Brim, L., Ročkai, P.: Parallel partial order reduction with topological sort proviso. In: SEFM 2010, pp. 222–231. IEEE Computer Society Press (2010)

    Google Scholar 

  6. Clarke, E.M., Grumberg, O., Peled, D.A.: Model Checking. The MIT Press, Cambridge (2000)

    Google Scholar 

  7. Couvreur, J.-M.: On-the-fly verification of linear temporal logic. In: Wing, J.M., Woodcock, J. (eds.) FM 1999. LNCS, vol. 1708, pp. 253–271. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  8. Dallien, J., MacCaull, W.: Automated recognition of stutter-invariant LTL formulas. Atlantic Electron. J. Math. 1, 56–74 (2006)

    MathSciNet  Google Scholar 

  9. Dax, C., Klaedtke, F., Leue, S.: Specification languages for stutter-invariant regular properties. In: Liu, Z., Ravn, A.P. (eds.) ATVA 2009. LNCS, vol. 5799, pp. 244–254. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

  10. Duret-Lutz, A.: Manipulating LTL formulas using Spot 1.0. In: Van Hung, D., Ogawa, M. (eds.) ATVA 2013. LNCS, vol. 8172, pp. 442–445. Springer, Heidelberg (2013)

    Chapter  Google Scholar 

  11. Duret-Lutz, A.: LTL translation improvements in Spot 1.0. Int. J. Crit. Comput.-Based Syst. 5(1/2), 31–54 (2014)

    Article  Google Scholar 

  12. Etessami, K.: Stutter-invariant languages, \(\omega \)-automata, and temporal logic. In: Halbwachs, N., Peled, D.A. (eds.) CAV 1999. LNCS, vol. 1633, pp. 236–248. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  13. Etessami, K.: A note on a question of Peled and Wilke regarding stutter-invariant LTL. Inf. Process. Lett. 75(6), 261–263 (2000)

    Article  MathSciNet  Google Scholar 

  14. Gastin, P., Oddoux, D.: Fast LTL to Büchi automata translation. In: Berry, G., Comon, H., Finkel, A. (eds.) CAV 2001. LNCS, vol. 2102, pp. 53–65. Springer, Heidelberg (2001)

    Chapter  Google Scholar 

  15. Geldenhuys, J., Hansen, H.: Larger automata and less work for LTL model checking. In: Valmari, A. (ed.) SPIN 2006. LNCS, vol. 3925, pp. 53–70. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  16. Giannakopoulou, D., Lerda, F.: From states to transitions: improving translation of LTL formulæ to Büchi automata. In: Peled, D.A., Vardi, M.Y. (eds.) FORTE 2002. LNCS, vol. 2529, pp. 308–326. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  17. Hansen, H., Penczek, W., Valmari, A.: Stuttering-insensitive automata for on-the-fly detection of livelock properties. In: FMICS 2002, vol. 66(2) of ENTCS. Elsevier (2002)

    Google Scholar 

  18. Holzmann, G.J.: The Spin Model Checker: Primer and Reference Manual. Addison-Wesley, Boston (2003)

    Google Scholar 

  19. Holzmann, G.J., Kupferman, O.: Not checking for closure under stuttering. In: SPIN 1996, pp. 17–22. American Mathematical Society (1996)

    Google Scholar 

  20. Klein, J., Baier, C.: On-the-fly stuttering in the construction of deterministic \(\omega \)-automata. In: Holub, J., Žďárek, J. (eds.) CIAA 2007. LNCS, vol. 4783, pp. 51–61. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  21. Laarman, A., Pater, E., van de Pol, J., Hansen, H.: Guard-based partial-order reduction. In: STTT, pp. 1–22 (2014)

    Google Scholar 

  22. Michel, M.: Algèbre de machines et logique temporelle. In: Fontet, M., Mehlhorn, K. (eds.) STACS 1984. LNCS, vol. 166, pp. 287–298. Springer, Heidelberg (1984)

    Google Scholar 

  23. Păun, D.O., Chechik, M.: On closure under stuttering. Formal Aspects Comput. 14(4), 342–368 (2003)

    Article  Google Scholar 

  24. Peled, D., Wilke, T.: Stutter-invariant temporal properties are expressible without the next-time operator. Inf. Process. Lett. 63(5), 243–246 (1997)

    Article  MathSciNet  Google Scholar 

  25. Peled, D., Wilke, T., Wolper, P.: An algorithmic approach for checking closure properties of temporal logic specifications and \(\omega \)-regular languages. Theor. Comput. Sci. 195(2), 183–203 (1998)

    Article  MATH  MathSciNet  Google Scholar 

  26. Renault, E., Duret-Lutz, A., Kordon, F., Poitrenaud, D.: Three SCC-based emptiness checks for generalized Büchi automata. In: McMillan, K., Middeldorp, A., Voronkov, A. (eds.) LPAR-19 2013. LNCS, vol. 8312, pp. 668–682. Springer, Heidelberg (2013)

    Chapter  Google Scholar 

  27. Schuppan, V., Darmawan, L.: Evaluating LTL satisfiability solvers. In: Bultan, T., Hsiung, P.-A. (eds.) ATVA 2011. LNCS, vol. 6996, pp. 397–413. Springer, Heidelberg (2011)

    Chapter  Google Scholar 

  28. Tauriainen, H.: Nested emptiness search for generalized Büchi automata. In: ACSD 2004, pp. 165–174. IEEE Computer Society (2004)

    Google Scholar 

  29. Tian, C., Duan, Z.: A note on stutter-invariant PLTL. Inf. Process. Lett. 109(13), 663–667 (2009)

    Article  MATH  MathSciNet  Google Scholar 

Download references

Acknowledgments

The authors are indebted to Joachim Klein and Akim Demaille for some influencing comments on the first drafts of this article, and to Etienne Renault, Souheib Baarir and the anonymous reviewers of ICALP’15 and SPIN’15 from some valuable feedback on earlier versions.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Alexandre Duret-Lutz .

Editor information

Editors and Affiliations

A Tool Support

A Tool Support

All the checks described in this article are implemented in Spot 1.99.1 which can be obtained from https://spot.lrde.epita.fr/.

Stutter-invariance of LTL or PSL formulas can be tested on-line without installing anything:

  1. 1.

    Load https://spot.lrde.epita.fr/trans.html.

  2. 2.

    Type an LTL or PSL formula.

  3. 3.

    Select “Desired Output: Formula” and then “property information”.

  4. 4.

    Scan the resulting properties for “syntactic stutter invariant” (this means the formula belongs to LTL\(\setminus \mathsf {X}\)or siPSL), “stutter invariant” or “stutter sensitive”. In the latter two cases, the automata-based check had to be performed.

If Spot is installed, the tool ltlfilt can be used from the command-line to make the same decision. For instance ltlfilt -f  ’\(\varphi \)--stutter-invariant will print \(\varphi \) back iff \(\varphi \) is stutter-invariant.

Similarly the tool autfilt can be used to apply the operations \(\mathsf {cl}\), \(\mathsf {sl}\), and \(\mathsf {sl}_2\) to any automaton (with any acceptance condition). The corresponding options are --destut, --instut, and --instut=2 respectively.

Rights and permissions

Reprints and permissions

Copyright information

© 2015 Springer International Publishing Switzerland

About this paper

Cite this paper

Michaud, T., Duret-Lutz, A. (2015). Practical Stutter-Invariance Checks for \(\omega \)-Regular Languages. In: Fischer, B., Geldenhuys, J. (eds) Model Checking Software. SPIN 2015. Lecture Notes in Computer Science(), vol 9232. Springer, Cham. https://doi.org/10.1007/978-3-319-23404-5_7

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-23404-5_7

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-23403-8

  • Online ISBN: 978-3-319-23404-5

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics