Abstract
This paper presents a complete example of the use of the synchronous declarative language LUSTRE for the specification, description and verification of a resource arbiter, which is a regular network of hardware devices. The fact that both programs and properties may be expressed in LUSTRE is used to perform an inductive verification. An invariant property of the network is found, and merged with the description program. Verification is performed by model checking.
Similar content being viewed by others
References
[AK86] Apt, K.R., Kozen, D.C.: Limits for automatic verification of finite-state concurrent system. Inf. Process. Lett.22, 307–309 (1986)
[BCM+89] Burch, J.R., Clarke, E.M., McMillan, K.L., Dill, D.L., Hwang, J.: Symbolic model checking: 1020 states and beyond. Technical report, Carnegie Mellon University, 1989
[BFH90] Bouajjani, A., Fernandez, J.C., Halbwachs, N.: On the verification of safety properties. Technical Report SPECTRE L12, IMAG, Grenoble, March 1990
[Bry86] Bryant, R.E.: Graph-based algorithms for boolean function manipulation. IEEE Trans. Comput.C-35(8), 677–691 (1986)
[CBM89] Coudert, O., Berthet, C., Madre, J.C.: Verification of synchronous sequential machines based on symbolic execution. International Workshop on Automatic Verification Methods for Finite Sate Systems. (Lect. Notes Comput. Sci., vol. 407) Berlin Heidelberg New York: Springer 1989
[CES86] Clarke, E.M., Emerson, E.A., Sistla, A.P.: Automatic verification of finite-state concurrent systems using temporal logic specifications. TOPLAS8(2), 244–263 (1986)
[CGB86] Clarke, E.M., Grumberg, O., Browne, M.C.: Reasonning about networks with many identical finite-state processes. ACM Symposium on Principles of Distributed Computing, Calgary (Alberta), p. 240–248, August 1986
[CLM89] Clarke, E.M., Long, D.E., Mc Millan, K.L.: Compositional model checking. In: Fourth IEEE Symposium on Logic in Computer Science, June 1989
[CMB90] Coudert, O., Madre, J.C., Berthet, C.: Verifying temporal properties of sequential machines without building their state diagrams. International Workshop on Computer-Aided Verification, June 1990
[CPHP87] Caspi, P., Pilaud, D., Halbwachs, N., Plaice, J.: LUSTRE: a declarative language for programming synchronous systems. 14th ACM Symposium on Principles of Programming Languages, January 1987
[FM91] Fernandez, J.C., Mounier, L.: On the fly verification of behavioural equivalences and preorders. Workshop on Computer-Aided Verification, Aalborg (Denmark), June 1991
[GS90] Graf, S., Steffen, B.: Compositional minimization of finite state systems. Workshop on Computer-Aided Verification, June 1990
[HCRP91] Halbwachs, N., Caspi, P., Raymond, P., Pilaud, D.: The synchronous dataflow programming language LUSTRE. Proceedings of the IEEE79(9): 1305–1320, September 1991
[Hol87] Holzmann, G.J.: Automated protocol validation in ARGOS: Assertion proving and scatter searching. IEEE Trans. Software EngSE-13(6), 683–696 (1987)
[HPOG89] Halbwachs, N., Pilaud, D., Ouabdesselam, F., Glory, A.C.: Specifying, programming and verifying real-time systems, using a synchronous declarative language. Workshop on Automatic Verification Methods for Finite State Systems. (Lect. Notes Comput. Sci., vol. 407, pp. 213–231). Berlin Heidelberg New York: Springer 1989
[JJ89] Jard, C., Jéron, Th.: On-line model checking for finite linear temporal logic specifications. International Workshop on Automatic Verification Methods for Finite State Systems. (Lect. Notes Comput. Sci., vol. 407). Berlin Heidelberg New York: Springer 1989
[KM89] Kurshan, R.P., McMillan, K.: A structural induction theorem for processes. 8th AC Symposium on Principles of Distributed Computing, Edmonton (Alberta), p. 239–247, August 1989
[LPZ85] Lichtenstein, O., Pnueli, A., Zuck, L.: The glory of the past. Conference on Logics of Programs. (Lect. Notes Comput. Sci., vol. 194, pp. 196–218). Berlin Heidelberg New York: Springer 1985
[MP88] Manna, Z., Pnueli, A.: The anchored version of the temporal framework. In: Roever W.P. de, Bakker, J.W. de, Rozenberg, G. (eds.) Linear time, branching time and partial orders in logics and models for concurrency. (Lect. Notes Comput. Sci., vol. 354, pp. 201–284). Berlin Heidelberg New York: Springer 1988
[QS82] Queille, J.P., Sifakis, J.: Specification and verification of concurrent systems in CESAR. International Symposium on Programming. (Lect. Notes Comput. Sci., vol. 137, pp. 337–351. Berlin Heidelberg New York: Springer 1982
[RHR91] Ratel, C., Halbwachs, N., Raymond, P.: Programming and verifying critical systems by means of the synchronous data-flow programming language LUSTRE. ACMSIGSOFT'91 Conference on Software for Critical Systems. New Orleans, December 1991
[RRSV87] Richier, J.L., Rodriguez, C., Sifakis, J., Voiron, J.: Verification in XESAR of the sliding window protocol. IFIP WG-6.1 7th. International Conference on Protocol Specification, Testing and Verification. Amsterdam: North Holland 1987
[SG87] Sistla, A.P., German, S.M.: Reasoning with many processes. Symposium on Logic in Computer Science, Ithaca, p. 138–152, June 1987
[Suz88] Suzuki, I.: Proving properties of a ring of finite-state machines. Int. Process. Lett.28, 213–214 (1988)
[WL89] Wolper, P., Lovinfosse, V.: Verifying properties of large sets of processes with network invariants. International Workshop on Automatic Verification Methods for Finite State Systems. (Lect. Notes Comput. Sci., vol. 407, pp. 68–80). Berlin Heidelberg New York: Springer 1989
Author information
Authors and Affiliations
Additional information
This work was partially supported by ESPRIT Basic Research Action “SPEC” and by a grant from the French Department of Research and Technology
Rights and permissions
About this article
Cite this article
Halbwachs, N., Lagnier, F. & Ratel, C. An experience in proving regular networks of processes by modular model checking. Acta Informatica 29, 523–543 (1992). https://doi.org/10.1007/BF01185559
Issue Date:
DOI: https://doi.org/10.1007/BF01185559