Subsequence Invariants

  • Klaus Dräger
  • Bernd Finkbeiner
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5201)


We introduce subsequence invariants, which characterize the behavior of a concurrent system in terms of the occurrences of synchronization events. Unlike state invariants, which refer to the state variables of the system, subsequence invariants are defined over auxiliary counter variables that reflect how often the event sequences from a given set have occurred so far. A subsequence invariant is a linear constraint over the possible counter values. We allow every occurrence of a subsequence to be interleaved arbitrarily with other events. As a result, subsequence invariants are preserved when a given process is composed with additional processes. Subsequence invariants can therefore be computed individually for each process and then be used to reason about the full system. We present an efficient algorithm for the synthesis of subsequence invariants. Our construction can be applied incrementally to obtain a growing set of invariants given a growing set of event sequences.


Event Sequence Concurrent System Synchronization Event Pivot Element Subsequence Occurrence 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Bensalem, S., Lakhnech, Y.: Automatic generation of invariants. Formal Methods in System Design 15(1), 75–92 (1999)CrossRefGoogle Scholar
  2. 2.
    Bjørner, N.S., Browne, A., Manna, Z.: Automatic generation of invariants and intermediate assertions. Theoretical Comput. Sci. 173(1), 49–87 (1997)CrossRefGoogle Scholar
  3. 3.
    Colón, M., Sankaranarayanan, S., Sipma, H.: Linear invariant generation using non-linear constraint solving. In: Hunt Jr., W.A., Somenzi, F. (eds.) CAV 2003. LNCS, vol. 2725, pp. 420–432. Springer, Heidelberg (2003)Google Scholar
  4. 4.
    Cousot, P., Halbwachs, N.: Automatic discovery of linear restraints among the variables of a program. In: Proc. POPL, pp. 84–97 (January 1978)Google Scholar
  5. 5.
    Şerbănuţă, V.N., Şerbănuţă, T.F.: Injectivity of the Parikh matrix mappings revisited. Fundam. Inf. 73(1,2), 265–283 (2006)zbMATHGoogle Scholar
  6. 6.
    Dräger, K., Finkbeiner, B.: Subsequence invariants. Technical Report 42, SFB/TR 14 AVACS (June 2008), ISSN: 1860-9821
  7. 7.
    German, S.M., Wegbreit, B.: A Synthesizer of Inductive Assertions. IEEE transactions on Software Engineering 1(1), 68–75 (1975)Google Scholar
  8. 8.
    Sakarovitch, J., Simon, I.: Subwords. In: Lothaire, M. (ed.) Combinatorics on Words, pp. 105–144. Addison-Wesley, Reading (1983)Google Scholar
  9. 9.
    Lodhi, H., Saunders, C., Shawe-Taylor, J., Cristianini, N., Watkins, C.: Text classification using string kernels. J. Mach. Learn. Res. 2, 419–444 (2002)zbMATHCrossRefGoogle Scholar
  10. 10.
    Mateescu, A., Salomaa, A., Yu, S.: Subword histories and Parikh matrices. J. Comput. Syst. Sci. 68(1), 1–21 (2004)zbMATHCrossRefMathSciNetGoogle Scholar
  11. 11.
    Murata, T.: Petri nets: Properties, analysis and applications. Proceedings of the IEEE 77(4), 541–580 (1989)CrossRefGoogle Scholar
  12. 12.
    Parikh, R.J.: On context-free languages. J. ACM 13(4), 570–581 (1966)zbMATHCrossRefMathSciNetGoogle Scholar
  13. 13.
    Salomaa, A., Yu, S.: Subword conditions and subword histories. Inf. Comput. 204(12), 1741–1755 (2006)zbMATHCrossRefMathSciNetGoogle Scholar
  14. 14.
    Tiwari, A., Rueß, H., Saïdi, H., Shankar, N.: A technique for invariant generation. In: Margaria, T., Yi, W. (eds.) TACAS 2001. LNCS, vol. 2031, pp. 113–127. Springer, Heidelberg (2001)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2008

Authors and Affiliations

  • Klaus Dräger
    • 1
  • Bernd Finkbeiner
    • 1
  1. 1.Universität des Saarlandes, Fachrichtung InformatikSaarbrückenGermany

Personalised recommendations