Abstract
We present a method for the verification of safety properties of concurrent systems which consist of finite sets of infinite state processes. Systems and properties are specified by using constraint logic programs, and the inference engine for verifying properties is provided by a technique based on unfold/fold program transformations. We deal with properties of finite sets of processes of arbitrary cardinality, and in order to do so, we consider constraint logic programs where the constraint theory is the Weak Monadic Second Order Theory of k Successors. Our verification method consists in transforming the programs that specify the properties of interest into equivalent programs where the truth of these properties can be checked by simple inspection in constant time. We present a strategy for guiding the application of the unfold/fold rules and realizing the transformations in a semiautomatic way.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
G. R. Andrews. Concurrent programming: principles and practice. Addison-Wesley, 1991.
K. R. Apt and R. N. Bol. Logic programming and negation: A survey. Journal of Logic Programming, 19, 20:9–71, 1994.
K. R. Apt and D. C. Kozen. Limits for automatic verification of finite-state concurrent systems. Information Processing Letters, 22(6):307–309, 1986.
M. Bozzano and G. Delzanno. Beyond parameterized verification. In Proceedings of the Eighth International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS’02)”, Lecture Notes in Computer Science 2280, pages 221–235. Springer, 2002.
R. M. Burstall and J. Darlington. A transformation system for developing recursive programs. Journal of the ACM, 24(1):44–67, January 1977.
E. M. Clarke, O. Grumberg, and D. Peled. Model Checking. MIT Press, 2000.
G. Delzanno and A. Podelski. Model checking in CLP. In R. Cleaveland, editor, 5th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS’99), Lecture Notes in Computer Science 1579, pages 223–239. Springer-Verlag, 1999.
H. Enderton. A Mathematical Introduction to Logic. Academic Press, 1972.
S. Etalle and M. Gabbrielli. Transformations of CLP modules. Theoretical Computer Science, 166:101–146, 1996.
F. Fioravanti. MAP: A system for transforming constraint logic programs. available at http://www.iasi.rm.cnr.it/~fioravan , 2001.
F. Fioravanti. Transformation of Constraint Logic Programs for Software Specialization and Verification. PhD thesis, Università di Roma “La Sapienza”, Italy, 2002.
F. Fioravanti, A. Pettorossi, and M. Proietti. Verifying CTL properties of infinite state systems by specializing constraint logic programs. In Proceedings of the ACM Sigplan Workshop on Verification and Computational Logic VCL’01, Florence (Italy), Technical Report DSSE-TR-2001-3, pages 85–96. University of Southampton, UK, 2001.
L. Fribourg and H. Olsén. A decompositional approach for computing least fixed-points of Datalog programs with z-counters. Constraints, 2(3/4):305–335, 1997.
J. Jaffar and M. Maher. Constraint logic programming: A survey. Journal of Logic Programming, 19/20:503–581, 1994.
N. Klarlund and A. Møller. MONA Version 1.4 User Manual. BRICS Notes Series NS-01-1, Department of Computer Science, University of Aarhus, January 2001.
L. Lamport. A new solution of Dijkstra’s concurrent programming problem. Communications of the ACM, 17(8):453–455, 1974.
M. Leuschel and T. Massart. Infinite state model checking by abstract interpretation and program specialization. In A. Bossi, editor, Proceedings of LOPSTR’ 99, Venice, Italy, Lecture Notes in Computer Science 1817, pages 63–82. Springer, 1999.
K. L. McMillan, S. Qadeer, and J. B. Saxe. Induction in compositional model checking. In CAV 2000, Lecture Notes in Computer Science 1855, pages 312–327. Springer, 2000.
U. Nilsson and J. Lübcke. Constraint logic programming for local and symbolic model-checking. In J. W. Lloyd, editor, CL 2000: Computational Logic, Lecture Notes in Artificial Intelligence 1861, pages 384–398, 2000.
A. Pettorossi and M. Proietti. Transformation of logic programs: Foundations and techniques. Journal of Logic Programming, 19,20:261–320, 1994.
L. Prensa-Nieto. Completeness of the Owicki-Gries system for parameterized parallel programs. In Formal Methods for Parallel Programming: Theory and Applications, FMPPTA 2001. IEEE Computer Society Press, 2001.
Y. S. Ramakrishna, C. R. Ramakrishnan, I. V. Ramakrishnan, S. A. Smolka, T. Swift, and D. S. Warren. Efficient model checking using tabled resolution. In CAV’ 97, Lecture Notes in Computer Science 1254, pages 143–154. Springer-Verlag, 1997.
A. Roychoudhury and I.V. Ramakrishnan. Automated inductive verification of parameterized protocols. In CAV 2001, pages 25–37, 2001.
H. Seki. Unfold/fold transformation of stratified programs. Theoretical Computer Science, 86:107–139, 1991.
N. Shankar. Combining theorem proving and model checking through symbolic analysis. In CONCUR 2000: Concurrency Theory, number 1877 in Lecture Notes in Computer Science, pages 1–16, State College, PA, August 2000. Springer-Verlag.
H. Tamaki and T. Sato. Unfold/fold transformation of logic programs. In S.-Å. Tärnlund, editor, Proceedings of the Second International Conference on Logic Programming, Uppsala, Sweden, pages 127–138. Uppsala University, 1984.
J. W. Thatcher and J. B. Wright. Generalized finite automata with an application to a decision problem of second-order logic. Mathematical System Theory, 2:57–82, 1968.
W. Thomas. Languages, automata, and logic. In G. Rozenberg and A. Salomaa, editors, Handbook of Formal Languages, volume 3, pages 389–455. Springer, 1997.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2002 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Fioravanti, F., Pettorossi, A., Proietti, M. (2002). Verification of Sets of Infinite State Processes Using Program Transformation. In: Pettorossi, A. (eds) Logic Based Program Synthesis and Transformation. LOPSTR 2001. Lecture Notes in Computer Science, vol 2372. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45607-4_7
Download citation
DOI: https://doi.org/10.1007/3-540-45607-4_7
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-43915-8
Online ISBN: 978-3-540-45607-0
eBook Packages: Springer Book Archive