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
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsNotes
- 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.
\(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.
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.
- 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.
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
Property specification language reference manual v1.1. Accellera (2004). http://www.eda.org/vfv/
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)
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)
Baier, C., Katoen, J.-P.: Principles of Model Checking. The MIT Press, Cambridge (2008)
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)
Clarke, E.M., Grumberg, O., Peled, D.A.: Model Checking. The MIT Press, Cambridge (2000)
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)
Dallien, J., MacCaull, W.: Automated recognition of stutter-invariant LTL formulas. Atlantic Electron. J. Math. 1, 56–74 (2006)
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)
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)
Duret-Lutz, A.: LTL translation improvements in Spot 1.0. Int. J. Crit. Comput.-Based Syst. 5(1/2), 31–54 (2014)
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)
Etessami, K.: A note on a question of Peled and Wilke regarding stutter-invariant LTL. Inf. Process. Lett. 75(6), 261–263 (2000)
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)
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)
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)
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)
Holzmann, G.J.: The Spin Model Checker: Primer and Reference Manual. Addison-Wesley, Boston (2003)
Holzmann, G.J., Kupferman, O.: Not checking for closure under stuttering. In: SPIN 1996, pp. 17–22. American Mathematical Society (1996)
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)
Laarman, A., Pater, E., van de Pol, J., Hansen, H.: Guard-based partial-order reduction. In: STTT, pp. 1–22 (2014)
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)
Păun, D.O., Chechik, M.: On closure under stuttering. Formal Aspects Comput. 14(4), 342–368 (2003)
Peled, D., Wilke, T.: Stutter-invariant temporal properties are expressible without the next-time operator. Inf. Process. Lett. 63(5), 243–246 (1997)
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)
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)
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)
Tauriainen, H.: Nested emptiness search for generalized Büchi automata. In: ACSD 2004, pp. 165–174. IEEE Computer Society (2004)
Tian, C., Duan, Z.: A note on stutter-invariant PLTL. Inf. Process. Lett. 109(13), 663–667 (2009)
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
Corresponding author
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.
-
2.
Type an LTL or PSL formula.
-
3.
Select “Desired Output: Formula” and then “property information”.
-
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
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)