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.
KeywordsEvent Sequence Concurrent System Synchronization Event Pivot Element Subsequence Occurrence
Unable to display preview. Download preview PDF.
- 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.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
- 6.Dräger, K., Finkbeiner, B.: Subsequence invariants. Technical Report 42, SFB/TR 14 AVACS (June 2008), http://www.avacs.org ISSN: 1860-9821
- 7.German, S.M., Wegbreit, B.: A Synthesizer of Inductive Assertions. IEEE transactions on Software Engineering 1(1), 68–75 (1975)Google Scholar
- 8.Sakarovitch, J., Simon, I.: Subwords. In: Lothaire, M. (ed.) Combinatorics on Words, pp. 105–144. Addison-Wesley, Reading (1983)Google Scholar