Abstract
We introduce a new software verification method based on plain linear programming. The problematic is being given a software S and a property P, to find whether there exists a path (i.e. a test sequence) of S satisfying P, or a proof that P is impossible to satisfy. The software S is modelized as a set of communicating automata which in turn is translated into a system of linear equations in positive numbers. Property P is then translated as extra linear equations added to this system.
We define the extended notion of flow-path (which includes the notion of path) permitting the automata to carry flows of data rather than undividable tokens. By applying linear programming in a sophisticated way to the linear system, it is possible, in time polynomial in the size of (S;P), either to display a flow-path of S satisfying P or to prove that P is impossible to satisfy.
The existence of a flow-path does not always imply the existence of a path, as it can be non-integer valued. Yet, on all our modelized examples, the study of the flow-path solution always permitted either to display a path satisfying P or to underscore a reason proving P to be impossible to satisfy.
The first part of this document introduces the theoretical background of our method. The second part sums up results of the use of our method on some systems of industrial size.
This work was partly supported by CNET under grant n#95 5B 046, by Region Basse-Normandie and CNRS under contract CON950207DR19
PhD Student, CNET and University of Caen
PhD Student, CNRS and University of Caen
Professor, University of Caen
Chapter PDF
Similar content being viewed by others
Keywords
References
J-R. Abrial. The B-book. Cambridge University Press, 1995.
James C. Corbett and Georges S. Avrunin. Using integer programming to verify general safety and liveness properties. Technical report, University of Hawaii at Manoa, 1995.
P. Cousot and R. Cousot. Abstract interpretation: A unified lattice model for static analysis of programs by construction of approximation of fixed points. In Proceedings of the 4th ACM Symposium on Principles of Programming Languages, Los Angeles, pages 238–252, New York, NY, 1977. ACM.
J.M. Couvreur, S. Haddad, and J.F. Peyre. parametrized resolution of families of linear systems. RAIRO Recherche Operationnelle, 26:183–206, 1992.
S. Dellacherie, S. Devulder, and J-L. Lambert. (technical version) software verification based on linear programming. Technical report, GREYC, university de Caen, 1999.
S. Dellacherie. A case study: specification and verification of an access control system using the lpv technology. Technical report, GREYC, University de Caen, 1999.
S. Dellacherie. Verification logicielle base sur la programmation linaire. PhD thesis, University de Caen, 1999. To appear.
S. Devulder. A comparison of lpv with other validation methods. Technical report, GREYC, University de Caen, 1998.
S. Devulder. Un modle de preuve de logiciels fond sur la programmation linaire. PhD thesis, Universit de Caen, 1999. To appear.
J. Esparza and M. Silva. A polynomial-time algorithm to decide liveness of bounded free choice nets. Theoretical Computer Science, 102:185–205, 1992.
http://www-unix.mcs.anl.gov/otc/Guide/faq/linear-programming-faq.html.
J.V. Guttag and J.J. Horning. Larch: languages and tools for formal specification. Springer-Verlag, 1993.
G.J. Holtzmann. The model checker spin. IEEE Transactions on Software Engineering, 23(5), May 1997.
Laeta Jategaonkar Jagadeesan, Carlos Puchol, and James E. Von Olnhausen. Safety property verification of esterel programs and applications to telecommunications software. In Seventh Conference on Computer-aided verification, 1995.
R. P. Kurshan. Automata-theoretic verification of coordinating processes. Technical report, ATT Bell Laboratories, 1992.
J.B. Lasserre and F. Mahey. Using linear programming in petri net analysis. RAIRO Recherche Operationnelle, 23:43–50, 1989.
K.L. McMillan. Symbolic Model Checking. Kluwer Academic Publishers, 1993.
S. Owre, S. Rajan, J.M. Rushby, N. Shankar, and M. Srivas. Pvs: Combining specification, proof checking, and model checking. In LNCS, volume 1102, pages 411–414. Springer Verlag, 1996.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1999 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Dellacherie, S., Devulder, S., Lambert, JL. (1999). Software verification based on linear programming. In: Wing, J.M., Woodcock, J., Davies, J. (eds) FM’99 — Formal Methods. FM 1999. Lecture Notes in Computer Science, vol 1709. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-48118-4_11
Download citation
DOI: https://doi.org/10.1007/3-540-48118-4_11
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-66588-5
Online ISBN: 978-3-540-48118-8
eBook Packages: Springer Book Archive